commit 3d71237d3af33efbcb17503f4118d6fbf69e6be8 Author: yeyangwen Date: Tue Jan 20 16:33:02 2026 +0800 feat:上传双路能耗检测设备固件 支持采集双路电压、电流、功率、能耗数据,定时上报电能参数 diff --git a/BLV_CS_AC100_V05/FLASHDOWN/APT32F102_FLASHDOWN.elf b/BLV_CS_AC100_V05/FLASHDOWN/APT32F102_FLASHDOWN.elf new file mode 100644 index 0000000..1472d1d Binary files /dev/null and b/BLV_CS_AC100_V05/FLASHDOWN/APT32F102_FLASHDOWN.elf differ diff --git a/BLV_CS_AC100_V05/Readme.txt b/BLV_CS_AC100_V05/Readme.txt new file mode 100644 index 0000000..f4258f2 --- /dev/null +++ b/BLV_CS_AC100_V05/Readme.txt @@ -0,0 +1,34 @@ +版本记录: +2025-12-30 叶阳文 + 软件版本:V05 + 硬件版本:BLV-CS-AC100-V03 + 1、数据重发间隔由200ms调整到400ms。 + 2、PA13引脚的串口状态灯调整到PB3引脚。 + 3、增加IIC通讯的铁电存储器,用于存储能耗设备的总能耗。 + 4、接收处理里添加接收长度处理。 + 5、校准系数默认都为1,不需要设置。 + 6、当前硬件版本,蓝牙模块使用不了。 + +2025-12-02 + 软件版本:V04 + 1、将蓝牙串口用来调试 + 2、去除脉冲常数的读取 + 3、注意脉冲常数的接收处理 + +2025-11-07 + 软件版本:V03 + 测试使用。 +2025-08-30 叶阳文 + 软件版本号:V01 校验码:0xD418229D + 硬件版本号:BLV-CS-AC100-V01 + 1、初步调通,送样。 + 2、有bootloader。 +2025-08-27 + 修改HLW能耗模块通讯串口为串口0,BT串口为串口2 + 初步调通主机通讯 + +2025-08-12 叶阳文 + 读取电压电流参数 + +2025-08-07 + 初步打通HLW8110模块通讯架构 \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.3263D3A011A853BD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.3263D3A011A853BD.idx new file mode 100644 index 0000000..7d5880e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.3263D3A011A853BD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.32A2C78F496BCC7E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.32A2C78F496BCC7E.idx new file mode 100644 index 0000000..c35c000 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.32A2C78F496BCC7E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.3D527AFF00500847.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.3D527AFF00500847.idx new file mode 100644 index 0000000..4af89b4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.3D527AFF00500847.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.AB75B4C61D4F7A24.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.AB75B4C61D4F7A24.idx new file mode 100644 index 0000000..a45fc7a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.AB75B4C61D4F7A24.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.E14E86176B1D9B56.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.E14E86176B1D9B56.idx new file mode 100644 index 0000000..8b88c82 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.c.E14E86176B1D9B56.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.2795D1333691DD4E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.2795D1333691DD4E.idx new file mode 100644 index 0000000..3e4fd04 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.2795D1333691DD4E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.29AF8FB884A735F8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.29AF8FB884A735F8.idx new file mode 100644 index 0000000..f878d24 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.29AF8FB884A735F8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.6808B0D2214E0B05.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.6808B0D2214E0B05.idx new file mode 100644 index 0000000..ed9e5d4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.6808B0D2214E0B05.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.6D3100C1D549A0E5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.6D3100C1D549A0E5.idx new file mode 100644 index 0000000..3d680d8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.6D3100C1D549A0E5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.CD48533A40330325.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.CD48533A40330325.idx new file mode 100644 index 0000000..ab365da Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.CD48533A40330325.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.DB6F084E28D41D6F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.DB6F084E28D41D6F.idx new file mode 100644 index 0000000..7882580 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/Bootload_fun.h.DB6F084E28D41D6F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx new file mode 100644 index 0000000..d21a981 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx new file mode 100644 index 0000000..c55c5c9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.02522E277F380AFB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.02522E277F380AFB.idx new file mode 100644 index 0000000..18d707b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.02522E277F380AFB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.141C6876FB1A8607.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.141C6876FB1A8607.idx new file mode 100644 index 0000000..4cacd72 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.141C6876FB1A8607.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.28116348C4C24C96.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.28116348C4C24C96.idx new file mode 100644 index 0000000..569a706 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.28116348C4C24C96.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.2C88295F5F1EBED9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.2C88295F5F1EBED9.idx new file mode 100644 index 0000000..538f8bf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.2C88295F5F1EBED9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.363E17A671CEBD3B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.363E17A671CEBD3B.idx new file mode 100644 index 0000000..860df78 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.363E17A671CEBD3B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.364950EFF166084C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.364950EFF166084C.idx new file mode 100644 index 0000000..c6f79d6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.364950EFF166084C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.39CAAA7FF11E322E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.39CAAA7FF11E322E.idx new file mode 100644 index 0000000..1e471d9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.39CAAA7FF11E322E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.3A8457B49CD41718.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.3A8457B49CD41718.idx new file mode 100644 index 0000000..13dd3a8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.3A8457B49CD41718.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.3DC2944021A7CBB9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.3DC2944021A7CBB9.idx new file mode 100644 index 0000000..bedbe95 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.3DC2944021A7CBB9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.53E2914F821C9787.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.53E2914F821C9787.idx new file mode 100644 index 0000000..a90c92f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.53E2914F821C9787.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.6145295376594E7F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.6145295376594E7F.idx new file mode 100644 index 0000000..3b14ab8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.6145295376594E7F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.669983BB376DBB8E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.669983BB376DBB8E.idx new file mode 100644 index 0000000..89435a7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.669983BB376DBB8E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.77236AB57FCB7936.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.77236AB57FCB7936.idx new file mode 100644 index 0000000..0142f23 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.77236AB57FCB7936.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.7987454B83F55BD5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.7987454B83F55BD5.idx new file mode 100644 index 0000000..766109c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.7987454B83F55BD5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.8FBB4440109F26CE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.8FBB4440109F26CE.idx new file mode 100644 index 0000000..1fc7288 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.8FBB4440109F26CE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.9EF5AEF031F2CC25.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.9EF5AEF031F2CC25.idx new file mode 100644 index 0000000..d07afd4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.9EF5AEF031F2CC25.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.A3BF0641EFD0F17C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.A3BF0641EFD0F17C.idx new file mode 100644 index 0000000..e9d51d7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.A3BF0641EFD0F17C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.AACC2253C4FE86D8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.AACC2253C4FE86D8.idx new file mode 100644 index 0000000..382ff47 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.AACC2253C4FE86D8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.B1CCB9CE8B1345FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.B1CCB9CE8B1345FE.idx new file mode 100644 index 0000000..f661e5e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.B1CCB9CE8B1345FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.B9C70D6BC8811885.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.B9C70D6BC8811885.idx new file mode 100644 index 0000000..aeb5a42 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.B9C70D6BC8811885.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.BCC40ECDC7D74F14.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.BCC40ECDC7D74F14.idx new file mode 100644 index 0000000..5d78d23 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.BCC40ECDC7D74F14.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.C2A21183C609DD9C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.C2A21183C609DD9C.idx new file mode 100644 index 0000000..1ce3235 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.C2A21183C609DD9C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.D06191CFEE685B0A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.D06191CFEE685B0A.idx new file mode 100644 index 0000000..0510ea8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.D06191CFEE685B0A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.D9FA3633D1215193.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.D9FA3633D1215193.idx new file mode 100644 index 0000000..5515b1a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.D9FA3633D1215193.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.DAB3AB75784CA323.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.DAB3AB75784CA323.idx new file mode 100644 index 0000000..3976554 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.DAB3AB75784CA323.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.E02D959C82FBED9A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.E02D959C82FBED9A.idx new file mode 100644 index 0000000..55e7938 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.E02D959C82FBED9A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.E853D14F8795DDE4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.E853D14F8795DDE4.idx new file mode 100644 index 0000000..11ab95d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.E853D14F8795DDE4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.FFE6F404B4C73A92.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.FFE6F404B4C73A92.idx new file mode 100644 index 0000000..a06302d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.c.FFE6F404B4C73A92.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1029A5DBB14181F1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1029A5DBB14181F1.idx new file mode 100644 index 0000000..a7884ef Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1029A5DBB14181F1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1A91F31110537B32.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1A91F31110537B32.idx new file mode 100644 index 0000000..a77cae2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1A91F31110537B32.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1E209A36891C2459.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1E209A36891C2459.idx new file mode 100644 index 0000000..9879fd4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.1E209A36891C2459.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.20524F8939872155.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.20524F8939872155.idx new file mode 100644 index 0000000..14d9cf9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.20524F8939872155.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.3F52736820431C0E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.3F52736820431C0E.idx new file mode 100644 index 0000000..0543500 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.3F52736820431C0E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.4ADC3237DFD6C74D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.4ADC3237DFD6C74D.idx new file mode 100644 index 0000000..a0a6396 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.4ADC3237DFD6C74D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.70CE0A670504510F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.70CE0A670504510F.idx new file mode 100644 index 0000000..2581087 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.70CE0A670504510F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8052344191CE4552.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8052344191CE4552.idx new file mode 100644 index 0000000..8d6b5a1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8052344191CE4552.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.887BCC5E6E050F8E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.887BCC5E6E050F8E.idx new file mode 100644 index 0000000..f5b61cd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.887BCC5E6E050F8E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8CD2ED9380F30884.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8CD2ED9380F30884.idx new file mode 100644 index 0000000..4918988 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8CD2ED9380F30884.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8E26CC35881DF381.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8E26CC35881DF381.idx new file mode 100644 index 0000000..801804a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8E26CC35881DF381.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8E27064ED69AAFAC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8E27064ED69AAFAC.idx new file mode 100644 index 0000000..97b051f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.8E27064ED69AAFAC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.969AC512A05569F3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.969AC512A05569F3.idx new file mode 100644 index 0000000..b6b3b4f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.969AC512A05569F3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.9D52DCCA30B6EB51.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.9D52DCCA30B6EB51.idx new file mode 100644 index 0000000..2df91c3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.9D52DCCA30B6EB51.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.A082F63CFFB48F96.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.A082F63CFFB48F96.idx new file mode 100644 index 0000000..b50ef2d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.A082F63CFFB48F96.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.AEDE220B4730B77A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.AEDE220B4730B77A.idx new file mode 100644 index 0000000..d013f39 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.AEDE220B4730B77A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.AF2493F46E0AD06D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.AF2493F46E0AD06D.idx new file mode 100644 index 0000000..6417c84 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.AF2493F46E0AD06D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B306A82E2598D81A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B306A82E2598D81A.idx new file mode 100644 index 0000000..d99a49e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B306A82E2598D81A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B4D9D2D32C2F147E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B4D9D2D32C2F147E.idx new file mode 100644 index 0000000..62ca2d7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B4D9D2D32C2F147E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B6E010E3E4F0D7BE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B6E010E3E4F0D7BE.idx new file mode 100644 index 0000000..a8d55f5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B6E010E3E4F0D7BE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B78A392721B7A604.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B78A392721B7A604.idx new file mode 100644 index 0000000..3d81d7c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B78A392721B7A604.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B8BAC5DB3B377C26.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B8BAC5DB3B377C26.idx new file mode 100644 index 0000000..ef80bc7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.B8BAC5DB3B377C26.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.CD6CA282F792E1E6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.CD6CA282F792E1E6.idx new file mode 100644 index 0000000..40dfddb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.CD6CA282F792E1E6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.D4DDCBA6893D8EB4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.D4DDCBA6893D8EB4.idx new file mode 100644 index 0000000..e71b6ea Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.D4DDCBA6893D8EB4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.D707749694BD9489.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.D707749694BD9489.idx new file mode 100644 index 0000000..50e6305 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.D707749694BD9489.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.DD304D1C11045389.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.DD304D1C11045389.idx new file mode 100644 index 0000000..1601f81 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.DD304D1C11045389.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.EEE50B467E7DD9B6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.EEE50B467E7DD9B6.idx new file mode 100644 index 0000000..06e6115 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.EEE50B467E7DD9B6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.FBEE528CE480009F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.FBEE528CE480009F.idx new file mode 100644 index 0000000..bc07ace Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102.h.FBEE528CE480009F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.015DC6D4090359F1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.015DC6D4090359F1.idx new file mode 100644 index 0000000..e13b35f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.015DC6D4090359F1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0703B7BF81E30440.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0703B7BF81E30440.idx new file mode 100644 index 0000000..9d4839c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0703B7BF81E30440.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0EA57D21BBD7A013.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0EA57D21BBD7A013.idx new file mode 100644 index 0000000..2ad3bb7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0EA57D21BBD7A013.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1A3858AAD2B97D8E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1A3858AAD2B97D8E.idx new file mode 100644 index 0000000..56aa053 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1A3858AAD2B97D8E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1E52910AC92A3C65.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1E52910AC92A3C65.idx new file mode 100644 index 0000000..e8bf898 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1E52910AC92A3C65.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2590DFFD7A57523C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2590DFFD7A57523C.idx new file mode 100644 index 0000000..57ce122 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2590DFFD7A57523C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3818381B33130B62.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3818381B33130B62.idx new file mode 100644 index 0000000..60c6c71 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3818381B33130B62.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3AA462419D7B6519.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3AA462419D7B6519.idx new file mode 100644 index 0000000..3b6b311 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3AA462419D7B6519.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3BE97CCD5F29DF28.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3BE97CCD5F29DF28.idx new file mode 100644 index 0000000..6d16399 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3BE97CCD5F29DF28.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4A17B952614A4F93.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4A17B952614A4F93.idx new file mode 100644 index 0000000..361509d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4A17B952614A4F93.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E595C9BB070A3A9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E595C9BB070A3A9.idx new file mode 100644 index 0000000..dfb52f2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E595C9BB070A3A9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.55BB6B2D2E4B4C51.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.55BB6B2D2E4B4C51.idx new file mode 100644 index 0000000..944576a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.55BB6B2D2E4B4C51.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.7DEA6E9ACA765E73.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.7DEA6E9ACA765E73.idx new file mode 100644 index 0000000..76297da Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.7DEA6E9ACA765E73.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.86E9E406DEECED16.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.86E9E406DEECED16.idx new file mode 100644 index 0000000..253414f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.86E9E406DEECED16.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.89BBAA6BC0CE3A0A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.89BBAA6BC0CE3A0A.idx new file mode 100644 index 0000000..8421b26 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.89BBAA6BC0CE3A0A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.8E451B0A867A214F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.8E451B0A867A214F.idx new file mode 100644 index 0000000..12b00aa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.8E451B0A867A214F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9576FF870EBE3FD3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9576FF870EBE3FD3.idx new file mode 100644 index 0000000..a615f10 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9576FF870EBE3FD3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9C098B04329E1448.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9C098B04329E1448.idx new file mode 100644 index 0000000..5a70280 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9C098B04329E1448.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9DA72276F536A37B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9DA72276F536A37B.idx new file mode 100644 index 0000000..dc1762b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9DA72276F536A37B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9F0FFA5430FC707E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9F0FFA5430FC707E.idx new file mode 100644 index 0000000..3e958bc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9F0FFA5430FC707E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A808DCDB6790BF2B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A808DCDB6790BF2B.idx new file mode 100644 index 0000000..b06831a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A808DCDB6790BF2B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A94B08826E9B5F1B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A94B08826E9B5F1B.idx new file mode 100644 index 0000000..f79bf3a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A94B08826E9B5F1B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.AEDE36E07B381B85.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.AEDE36E07B381B85.idx new file mode 100644 index 0000000..8fd6d52 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.AEDE36E07B381B85.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.C66BED53655416FA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.C66BED53655416FA.idx new file mode 100644 index 0000000..89fa317 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.C66BED53655416FA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E2327BD576018072.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E2327BD576018072.idx new file mode 100644 index 0000000..c67540c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E2327BD576018072.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E4CB82C377D696AC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E4CB82C377D696AC.idx new file mode 100644 index 0000000..b5f1ef8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E4CB82C377D696AC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FB1D987270725F9F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FB1D987270725F9F.idx new file mode 100644 index 0000000..dba7a55 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FB1D987270725F9F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FD5343DB8836162F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FD5343DB8836162F.idx new file mode 100644 index 0000000..05677a0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FD5343DB8836162F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.06A69C356FE921CA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.06A69C356FE921CA.idx new file mode 100644 index 0000000..f9f4d66 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.06A69C356FE921CA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.07D8CB439C6D47F2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.07D8CB439C6D47F2.idx new file mode 100644 index 0000000..f9705b2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.07D8CB439C6D47F2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0A3AE39B73FC4B05.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0A3AE39B73FC4B05.idx new file mode 100644 index 0000000..d153da5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0A3AE39B73FC4B05.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0DCD42CD7611731A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0DCD42CD7611731A.idx new file mode 100644 index 0000000..f929ece Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0DCD42CD7611731A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.11D0357632BA031C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.11D0357632BA031C.idx new file mode 100644 index 0000000..e716e89 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.11D0357632BA031C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.129F22AE0C81514F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.129F22AE0C81514F.idx new file mode 100644 index 0000000..d62841c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.129F22AE0C81514F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.135566D743962D78.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.135566D743962D78.idx new file mode 100644 index 0000000..961b262 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.135566D743962D78.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.164D4C31C206DAE3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.164D4C31C206DAE3.idx new file mode 100644 index 0000000..449989b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.164D4C31C206DAE3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.1BBF3B6A687CBC3F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.1BBF3B6A687CBC3F.idx new file mode 100644 index 0000000..f235c3c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.1BBF3B6A687CBC3F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.23D2C614287807E3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.23D2C614287807E3.idx new file mode 100644 index 0000000..59d5f6b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.23D2C614287807E3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.44E96125E44D993E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.44E96125E44D993E.idx new file mode 100644 index 0000000..e0fecb7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.44E96125E44D993E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.545F7AC0ECF6767D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.545F7AC0ECF6767D.idx new file mode 100644 index 0000000..cdf0fbb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.545F7AC0ECF6767D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.68B120DBA913E6B5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.68B120DBA913E6B5.idx new file mode 100644 index 0000000..cfd6b64 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.68B120DBA913E6B5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.72CEFDA42FDE0D03.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.72CEFDA42FDE0D03.idx new file mode 100644 index 0000000..a2bae60 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.72CEFDA42FDE0D03.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7926EBF474BC8282.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7926EBF474BC8282.idx new file mode 100644 index 0000000..72cb140 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7926EBF474BC8282.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8CF1683D80DE7787.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8CF1683D80DE7787.idx new file mode 100644 index 0000000..f5aa6a3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8CF1683D80DE7787.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.9183CEAD1C25DB68.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.9183CEAD1C25DB68.idx new file mode 100644 index 0000000..de1231d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.9183CEAD1C25DB68.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.958B85338F284859.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.958B85338F284859.idx new file mode 100644 index 0000000..c7dd9f8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.958B85338F284859.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A66FC31F51F54A1B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A66FC31F51F54A1B.idx new file mode 100644 index 0000000..8d4c01b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A66FC31F51F54A1B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A6D25A644366E956.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A6D25A644366E956.idx new file mode 100644 index 0000000..cd5faa4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A6D25A644366E956.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AFD3C0FC58183898.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AFD3C0FC58183898.idx new file mode 100644 index 0000000..723ac73 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AFD3C0FC58183898.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.B4F1360E7EBCEDE5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.B4F1360E7EBCEDE5.idx new file mode 100644 index 0000000..18dd017 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.B4F1360E7EBCEDE5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.BFE399A6CBAEE559.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.BFE399A6CBAEE559.idx new file mode 100644 index 0000000..1a6eb57 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.BFE399A6CBAEE559.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D077EA52A0ACBD8A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D077EA52A0ACBD8A.idx new file mode 100644 index 0000000..4f4e946 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D077EA52A0ACBD8A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.DE74616C724FABA0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.DE74616C724FABA0.idx new file mode 100644 index 0000000..029e970 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.DE74616C724FABA0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.E89CA72CC758BF53.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.E89CA72CC758BF53.idx new file mode 100644 index 0000000..41bef16 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.E89CA72CC758BF53.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F10DEDA69F92F9EA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F10DEDA69F92F9EA.idx new file mode 100644 index 0000000..a05110d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F10DEDA69F92F9EA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F1873E050DA32F8D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F1873E050DA32F8D.idx new file mode 100644 index 0000000..fd494ce Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F1873E050DA32F8D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.06679E4FF73C6355.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.06679E4FF73C6355.idx new file mode 100644 index 0000000..55a12a6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.06679E4FF73C6355.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.0901FE42D5AED6E3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.0901FE42D5AED6E3.idx new file mode 100644 index 0000000..737b6b9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.0901FE42D5AED6E3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.1452AE331EC5DD20.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.1452AE331EC5DD20.idx new file mode 100644 index 0000000..c6c207e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.1452AE331EC5DD20.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.304C646C5AFF53D1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.304C646C5AFF53D1.idx new file mode 100644 index 0000000..ae1ef5e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.304C646C5AFF53D1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.30797FB8ECF919A0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.30797FB8ECF919A0.idx new file mode 100644 index 0000000..35e1f53 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.30797FB8ECF919A0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.327D76D84A2EF599.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.327D76D84A2EF599.idx new file mode 100644 index 0000000..e76b654 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.327D76D84A2EF599.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.3DC884B003BAC7CA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.3DC884B003BAC7CA.idx new file mode 100644 index 0000000..3e04c82 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.3DC884B003BAC7CA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.478F4FDE44CFE04F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.478F4FDE44CFE04F.idx new file mode 100644 index 0000000..ab320d1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.478F4FDE44CFE04F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.47C841582F25922B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.47C841582F25922B.idx new file mode 100644 index 0000000..04ca0f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.47C841582F25922B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.498BB476D74C13B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.498BB476D74C13B0.idx new file mode 100644 index 0000000..615e7e9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.498BB476D74C13B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4C381B85C57B7FD9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4C381B85C57B7FD9.idx new file mode 100644 index 0000000..9386d71 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4C381B85C57B7FD9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5169EDEDECA33507.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5169EDEDECA33507.idx new file mode 100644 index 0000000..7910a83 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5169EDEDECA33507.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.59AB92BA32789653.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.59AB92BA32789653.idx new file mode 100644 index 0000000..17ffaf0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.59AB92BA32789653.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5E81847C3CF224D1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5E81847C3CF224D1.idx new file mode 100644 index 0000000..040bddf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5E81847C3CF224D1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.644DC866AFA67655.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.644DC866AFA67655.idx new file mode 100644 index 0000000..60d6612 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.644DC866AFA67655.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.64EFBCE8493C9E9B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.64EFBCE8493C9E9B.idx new file mode 100644 index 0000000..c690fef Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.64EFBCE8493C9E9B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7401F50412088661.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7401F50412088661.idx new file mode 100644 index 0000000..972e80e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7401F50412088661.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7B57E126C0AD3A77.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7B57E126C0AD3A77.idx new file mode 100644 index 0000000..1437776 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7B57E126C0AD3A77.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7EF1D5D5E9099307.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7EF1D5D5E9099307.idx new file mode 100644 index 0000000..edfd455 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7EF1D5D5E9099307.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.8F09A9B4CAEBFA41.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.8F09A9B4CAEBFA41.idx new file mode 100644 index 0000000..2adde33 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.8F09A9B4CAEBFA41.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.968D0817144C58F6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.968D0817144C58F6.idx new file mode 100644 index 0000000..36a855e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.968D0817144C58F6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D011BD85F7B9B322.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D011BD85F7B9B322.idx new file mode 100644 index 0000000..d0ae2aa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D011BD85F7B9B322.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D62756BD60AB9C69.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D62756BD60AB9C69.idx new file mode 100644 index 0000000..81a3bfd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D62756BD60AB9C69.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DB58F8B9427BF742.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DB58F8B9427BF742.idx new file mode 100644 index 0000000..544a773 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DB58F8B9427BF742.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DD5AA4CAB6BDA594.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DD5AA4CAB6BDA594.idx new file mode 100644 index 0000000..73ce58f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DD5AA4CAB6BDA594.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DE852D3D8D23C03D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DE852D3D8D23C03D.idx new file mode 100644 index 0000000..2606b1e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DE852D3D8D23C03D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E0C492B71F39D4BF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E0C492B71F39D4BF.idx new file mode 100644 index 0000000..0d84a8f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E0C492B71F39D4BF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.F3E2339426377677.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.F3E2339426377677.idx new file mode 100644 index 0000000..2e5b569 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.c.F3E2339426377677.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.051DCE78C351547D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.051DCE78C351547D.idx new file mode 100644 index 0000000..7e73804 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.051DCE78C351547D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.157B5DB322C978E9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.157B5DB322C978E9.idx new file mode 100644 index 0000000..9921d76 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.157B5DB322C978E9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1869416CA17E9693.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1869416CA17E9693.idx new file mode 100644 index 0000000..9555697 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1869416CA17E9693.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F0684BCBED24DEF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F0684BCBED24DEF.idx new file mode 100644 index 0000000..dfd5708 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F0684BCBED24DEF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.257C61A70DF14B97.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.257C61A70DF14B97.idx new file mode 100644 index 0000000..90cd49d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.257C61A70DF14B97.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.2CCB407D49DCF74E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.2CCB407D49DCF74E.idx new file mode 100644 index 0000000..cda0115 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.2CCB407D49DCF74E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3000F2B0FA9D2484.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3000F2B0FA9D2484.idx new file mode 100644 index 0000000..0bd371e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3000F2B0FA9D2484.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.309729D4373BFFA0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.309729D4373BFFA0.idx new file mode 100644 index 0000000..f9f33e4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.309729D4373BFFA0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.31B5B070EED73734.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.31B5B070EED73734.idx new file mode 100644 index 0000000..45e3735 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.31B5B070EED73734.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.48BCB94EEBFF0A38.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.48BCB94EEBFF0A38.idx new file mode 100644 index 0000000..8a3e4ab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.48BCB94EEBFF0A38.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.539B83DA3C3E63E2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.539B83DA3C3E63E2.idx new file mode 100644 index 0000000..b6540c9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.539B83DA3C3E63E2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.53B411AD780FAF26.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.53B411AD780FAF26.idx new file mode 100644 index 0000000..bb895e6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.53B411AD780FAF26.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5CCEB621385F09B7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5CCEB621385F09B7.idx new file mode 100644 index 0000000..5f1b208 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5CCEB621385F09B7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.66B614A9CF2411A2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.66B614A9CF2411A2.idx new file mode 100644 index 0000000..627d67e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.66B614A9CF2411A2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70F1C3CCDC8E5D1D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70F1C3CCDC8E5D1D.idx new file mode 100644 index 0000000..88a866b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70F1C3CCDC8E5D1D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.8F955B91DD4F731D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.8F955B91DD4F731D.idx new file mode 100644 index 0000000..64ba90c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.8F955B91DD4F731D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.944D12604913981D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.944D12604913981D.idx new file mode 100644 index 0000000..2c45e6c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.944D12604913981D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.A720CBBD84B1791E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.A720CBBD84B1791E.idx new file mode 100644 index 0000000..1444312 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.A720CBBD84B1791E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.B3B264910D9044BF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.B3B264910D9044BF.idx new file mode 100644 index 0000000..9b0c171 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.B3B264910D9044BF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.C60E4D18498BBBFE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.C60E4D18498BBBFE.idx new file mode 100644 index 0000000..979bab1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.C60E4D18498BBBFE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D4C742A97A4E8B5E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D4C742A97A4E8B5E.idx new file mode 100644 index 0000000..8d9dfd2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D4C742A97A4E8B5E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D78A7DAB0AE868EA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D78A7DAB0AE868EA.idx new file mode 100644 index 0000000..71b5166 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D78A7DAB0AE868EA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.E52D65CB21B3A5F1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.E52D65CB21B3A5F1.idx new file mode 100644 index 0000000..648399d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.E52D65CB21B3A5F1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.EE5B63DB23CE77A4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.EE5B63DB23CE77A4.idx new file mode 100644 index 0000000..261581f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.EE5B63DB23CE77A4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F0859B9CE8BD07F3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F0859B9CE8BD07F3.idx new file mode 100644 index 0000000..23c9d17 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F0859B9CE8BD07F3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F563E3A9E930217E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F563E3A9E930217E.idx new file mode 100644 index 0000000..39de147 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F563E3A9E930217E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FC3BF2F31C34CE08.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FC3BF2F31C34CE08.idx new file mode 100644 index 0000000..beecfc9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FC3BF2F31C34CE08.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FF446A2B276A8889.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FF446A2B276A8889.idx new file mode 100644 index 0000000..6ff223e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FF446A2B276A8889.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0A468CF303C4C28F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0A468CF303C4C28F.idx new file mode 100644 index 0000000..0546d86 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0A468CF303C4C28F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0BE606F18B9D2A23.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0BE606F18B9D2A23.idx new file mode 100644 index 0000000..5953019 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0BE606F18B9D2A23.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.121796336FFE0DAF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.121796336FFE0DAF.idx new file mode 100644 index 0000000..ae3c4fd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.121796336FFE0DAF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1333B6AABF35CFF6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1333B6AABF35CFF6.idx new file mode 100644 index 0000000..67adf4e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1333B6AABF35CFF6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1A1B5903E86C6FA2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1A1B5903E86C6FA2.idx new file mode 100644 index 0000000..a3b2f90 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1A1B5903E86C6FA2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1D817EA993B54A4C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1D817EA993B54A4C.idx new file mode 100644 index 0000000..4264163 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1D817EA993B54A4C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2A3D9C69CCFDDA2B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2A3D9C69CCFDDA2B.idx new file mode 100644 index 0000000..1abfe7c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2A3D9C69CCFDDA2B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2DE73E185889A19D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2DE73E185889A19D.idx new file mode 100644 index 0000000..958b63a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2DE73E185889A19D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2FAA6E6B3FC7AA43.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2FAA6E6B3FC7AA43.idx new file mode 100644 index 0000000..de03072 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2FAA6E6B3FC7AA43.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3876D99CA25F6CD9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3876D99CA25F6CD9.idx new file mode 100644 index 0000000..96a3489 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3876D99CA25F6CD9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3A2D1BF6373887EC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3A2D1BF6373887EC.idx new file mode 100644 index 0000000..4bafc8c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3A2D1BF6373887EC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3CD57EDEAFEB0964.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3CD57EDEAFEB0964.idx new file mode 100644 index 0000000..db1ee27 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3CD57EDEAFEB0964.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.49CCB08F223A12C6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.49CCB08F223A12C6.idx new file mode 100644 index 0000000..deac731 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.49CCB08F223A12C6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.4B51C3FADCDCC3F8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.4B51C3FADCDCC3F8.idx new file mode 100644 index 0000000..881e038 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.4B51C3FADCDCC3F8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5235167BA5D3A71E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5235167BA5D3A71E.idx new file mode 100644 index 0000000..2255dc0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5235167BA5D3A71E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.64390EB13EF992C9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.64390EB13EF992C9.idx new file mode 100644 index 0000000..b81fcdb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.64390EB13EF992C9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.68AC826C9BAA1A41.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.68AC826C9BAA1A41.idx new file mode 100644 index 0000000..9159f1c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.68AC826C9BAA1A41.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.7A18783F744636F0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.7A18783F744636F0.idx new file mode 100644 index 0000000..54e91a3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.7A18783F744636F0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8382889ED4E78E9E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8382889ED4E78E9E.idx new file mode 100644 index 0000000..36c5cd7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8382889ED4E78E9E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.885C4F6A06EFB7B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.885C4F6A06EFB7B1.idx new file mode 100644 index 0000000..5b243b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.885C4F6A06EFB7B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9821A39A09AE3641.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9821A39A09AE3641.idx new file mode 100644 index 0000000..3ba6579 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9821A39A09AE3641.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9EF78227DCD3F782.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9EF78227DCD3F782.idx new file mode 100644 index 0000000..3885d66 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9EF78227DCD3F782.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A586BEE1B1828D75.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A586BEE1B1828D75.idx new file mode 100644 index 0000000..309e680 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A586BEE1B1828D75.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.D5B281DA0BEB2225.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.D5B281DA0BEB2225.idx new file mode 100644 index 0000000..b604a35 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.D5B281DA0BEB2225.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E330A9E66224E740.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E330A9E66224E740.idx new file mode 100644 index 0000000..b1bf3b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E330A9E66224E740.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.EB3DE811611F84B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.EB3DE811611F84B0.idx new file mode 100644 index 0000000..4a91546 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.EB3DE811611F84B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.ED1A0BFA6F20830D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.ED1A0BFA6F20830D.idx new file mode 100644 index 0000000..0cdac0d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.ED1A0BFA6F20830D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.F0B7F3F4F10D2269.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.F0B7F3F4F10D2269.idx new file mode 100644 index 0000000..5e6c1e0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.F0B7F3F4F10D2269.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.04E13FDD8A0C7D4E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.04E13FDD8A0C7D4E.idx new file mode 100644 index 0000000..c73baf1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.04E13FDD8A0C7D4E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.075EFAE8BE70EAA0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.075EFAE8BE70EAA0.idx new file mode 100644 index 0000000..d1ff6c9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.075EFAE8BE70EAA0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.09083F557A7E0BCF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.09083F557A7E0BCF.idx new file mode 100644 index 0000000..daa5afb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.09083F557A7E0BCF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.288B9D9109466E93.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.288B9D9109466E93.idx new file mode 100644 index 0000000..ebbfe67 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.288B9D9109466E93.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.2E5171E99463225C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.2E5171E99463225C.idx new file mode 100644 index 0000000..89f8232 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.2E5171E99463225C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.39F8934C0D870BA5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.39F8934C0D870BA5.idx new file mode 100644 index 0000000..83c5d3e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.39F8934C0D870BA5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D878BD26E9BB4AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D878BD26E9BB4AB.idx new file mode 100644 index 0000000..c0c0ce0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D878BD26E9BB4AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.477A715249719026.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.477A715249719026.idx new file mode 100644 index 0000000..c2b75e0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.477A715249719026.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.494D8B44E28D2291.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.494D8B44E28D2291.idx new file mode 100644 index 0000000..31b8af4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.494D8B44E28D2291.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F41D7E81EB72C5D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F41D7E81EB72C5D.idx new file mode 100644 index 0000000..f72fda6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F41D7E81EB72C5D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F88B02EF09F80B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F88B02EF09F80B0.idx new file mode 100644 index 0000000..2e3598e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F88B02EF09F80B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.62D8DEF36F0B4757.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.62D8DEF36F0B4757.idx new file mode 100644 index 0000000..57880da Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.62D8DEF36F0B4757.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.62DEF9DD5DDBBCC6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.62DEF9DD5DDBBCC6.idx new file mode 100644 index 0000000..1384288 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.62DEF9DD5DDBBCC6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.79CF6B36F67AD25B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.79CF6B36F67AD25B.idx new file mode 100644 index 0000000..b240428 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.79CF6B36F67AD25B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7A759F834AA1456F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7A759F834AA1456F.idx new file mode 100644 index 0000000..3c8325a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7A759F834AA1456F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7B2A0C53097CE8B8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7B2A0C53097CE8B8.idx new file mode 100644 index 0000000..691e85b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7B2A0C53097CE8B8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7EE0C6AC6DC32DF7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7EE0C6AC6DC32DF7.idx new file mode 100644 index 0000000..e85595e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7EE0C6AC6DC32DF7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.85407A351142E419.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.85407A351142E419.idx new file mode 100644 index 0000000..ee9cc22 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.85407A351142E419.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.8F00D141DBFF385A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.8F00D141DBFF385A.idx new file mode 100644 index 0000000..49aca92 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.8F00D141DBFF385A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.A915D5EB0A4F91DA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.A915D5EB0A4F91DA.idx new file mode 100644 index 0000000..7064283 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.A915D5EB0A4F91DA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B2DA97779AE51FA8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B2DA97779AE51FA8.idx new file mode 100644 index 0000000..fb68d51 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B2DA97779AE51FA8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B54E75432E047C4A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B54E75432E047C4A.idx new file mode 100644 index 0000000..4808a74 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B54E75432E047C4A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B87E2FFB392DDDE3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B87E2FFB392DDDE3.idx new file mode 100644 index 0000000..a730639 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B87E2FFB392DDDE3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.D6FFE7AC6418A6B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.D6FFE7AC6418A6B1.idx new file mode 100644 index 0000000..e85f73e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.D6FFE7AC6418A6B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.ED63A958CF6ADAE1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.ED63A958CF6ADAE1.idx new file mode 100644 index 0000000..aed7d70 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.ED63A958CF6ADAE1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F19C1CE50D3E724E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F19C1CE50D3E724E.idx new file mode 100644 index 0000000..ceeec2d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F19C1CE50D3E724E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F7EB1E439D06FB72.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F7EB1E439D06FB72.idx new file mode 100644 index 0000000..0cefbb8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F7EB1E439D06FB72.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.FE5FA45ED680F43F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.FE5FA45ED680F43F.idx new file mode 100644 index 0000000..6aacb6c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.FE5FA45ED680F43F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.05357A1D1FBA1216.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.05357A1D1FBA1216.idx new file mode 100644 index 0000000..fb637d9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.05357A1D1FBA1216.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.15BD96A613BBE8B6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.15BD96A613BBE8B6.idx new file mode 100644 index 0000000..cda368b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.15BD96A613BBE8B6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.1951DD62466D21CA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.1951DD62466D21CA.idx new file mode 100644 index 0000000..5143231 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.1951DD62466D21CA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.202523AE5EF337E8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.202523AE5EF337E8.idx new file mode 100644 index 0000000..ad998de Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.202523AE5EF337E8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.4143FEE46073BD33.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.4143FEE46073BD33.idx new file mode 100644 index 0000000..9500e80 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.4143FEE46073BD33.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48ACDE107E50F242.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48ACDE107E50F242.idx new file mode 100644 index 0000000..136ea6f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48ACDE107E50F242.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.59FA7FFB423E5DA4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.59FA7FFB423E5DA4.idx new file mode 100644 index 0000000..8a3406c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.59FA7FFB423E5DA4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.67FE9CAB457844AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.67FE9CAB457844AB.idx new file mode 100644 index 0000000..2f6ee4a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.67FE9CAB457844AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.735559B362E80F63.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.735559B362E80F63.idx new file mode 100644 index 0000000..cc06022 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.735559B362E80F63.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.76324D017A35F790.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.76324D017A35F790.idx new file mode 100644 index 0000000..ef57cba Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.76324D017A35F790.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B0873138BC64408.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B0873138BC64408.idx new file mode 100644 index 0000000..a87b036 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B0873138BC64408.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.8BCA3AFB30950EB2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.8BCA3AFB30950EB2.idx new file mode 100644 index 0000000..70c9d53 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.8BCA3AFB30950EB2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.92C2699610CF0FAF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.92C2699610CF0FAF.idx new file mode 100644 index 0000000..a6cdc85 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.92C2699610CF0FAF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.9CAA228BA7C4CDE3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.9CAA228BA7C4CDE3.idx new file mode 100644 index 0000000..8104443 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.9CAA228BA7C4CDE3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.A460E508A52E01E4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.A460E508A52E01E4.idx new file mode 100644 index 0000000..4358511 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.A460E508A52E01E4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B8ED0E000F2A0543.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B8ED0E000F2A0543.idx new file mode 100644 index 0000000..4487334 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B8ED0E000F2A0543.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.BC2E9DE3EBAB2183.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.BC2E9DE3EBAB2183.idx new file mode 100644 index 0000000..4636940 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.BC2E9DE3EBAB2183.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C2E489E0ABA70004.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C2E489E0ABA70004.idx new file mode 100644 index 0000000..74f4b6f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C2E489E0ABA70004.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D63A1E61E10AD198.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D63A1E61E10AD198.idx new file mode 100644 index 0000000..3179b17 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D63A1E61E10AD198.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D73365B876C5C7A0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D73365B876C5C7A0.idx new file mode 100644 index 0000000..ea7d6cd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D73365B876C5C7A0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D8908B5DAC2EC2D3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D8908B5DAC2EC2D3.idx new file mode 100644 index 0000000..0265698 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D8908B5DAC2EC2D3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DEAD82286D7D0711.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DEAD82286D7D0711.idx new file mode 100644 index 0000000..2d0d0d1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DEAD82286D7D0711.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5A4B51156DF1EA9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5A4B51156DF1EA9.idx new file mode 100644 index 0000000..a528c6b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5A4B51156DF1EA9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5C8E7D6E4436647.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5C8E7D6E4436647.idx new file mode 100644 index 0000000..217ed0d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5C8E7D6E4436647.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F7868B19B044C0BA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F7868B19B044C0BA.idx new file mode 100644 index 0000000..154b6f3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F7868B19B044C0BA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FA88412E13F49470.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FA88412E13F49470.idx new file mode 100644 index 0000000..1ef8df4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FA88412E13F49470.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FD908235D9A6BFE2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FD908235D9A6BFE2.idx new file mode 100644 index 0000000..0cfd464 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FD908235D9A6BFE2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FEF920E6E4E52208.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FEF920E6E4E52208.idx new file mode 100644 index 0000000..4a4b097 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FEF920E6E4E52208.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.108B635342FF332D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.108B635342FF332D.idx new file mode 100644 index 0000000..d085425 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.108B635342FF332D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.141953B2E073A232.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.141953B2E073A232.idx new file mode 100644 index 0000000..50d5e43 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.141953B2E073A232.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.15DE53352957C94F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.15DE53352957C94F.idx new file mode 100644 index 0000000..b682309 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.15DE53352957C94F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.1EA2551F384E4ED2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.1EA2551F384E4ED2.idx new file mode 100644 index 0000000..b90fc22 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.1EA2551F384E4ED2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.23BAF8E67B70FE52.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.23BAF8E67B70FE52.idx new file mode 100644 index 0000000..b0cfa1d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.23BAF8E67B70FE52.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.25CFF427E4A937D7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.25CFF427E4A937D7.idx new file mode 100644 index 0000000..6019d5a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.25CFF427E4A937D7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2C4BD1DE571C1125.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2C4BD1DE571C1125.idx new file mode 100644 index 0000000..d6687f3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2C4BD1DE571C1125.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.3519D2AA15F84B78.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.3519D2AA15F84B78.idx new file mode 100644 index 0000000..40756ab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.3519D2AA15F84B78.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.440397EC2075F5E2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.440397EC2075F5E2.idx new file mode 100644 index 0000000..5f5c8fb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.440397EC2075F5E2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.525B8C5F50121CBE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.525B8C5F50121CBE.idx new file mode 100644 index 0000000..87bede0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.525B8C5F50121CBE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.5FEF048B5CE5E649.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.5FEF048B5CE5E649.idx new file mode 100644 index 0000000..c420016 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.5FEF048B5CE5E649.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.6A1E474155A77D0B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.6A1E474155A77D0B.idx new file mode 100644 index 0000000..cf9ae88 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.6A1E474155A77D0B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7038ED1F7B2925D6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7038ED1F7B2925D6.idx new file mode 100644 index 0000000..23ad6d6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7038ED1F7B2925D6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7050BB69BB363259.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7050BB69BB363259.idx new file mode 100644 index 0000000..ae0d68b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7050BB69BB363259.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7D35484337088092.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7D35484337088092.idx new file mode 100644 index 0000000..1014b39 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7D35484337088092.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7DF9E344AD9D4BE6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7DF9E344AD9D4BE6.idx new file mode 100644 index 0000000..fa14975 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7DF9E344AD9D4BE6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7F569EDC3B9535E5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7F569EDC3B9535E5.idx new file mode 100644 index 0000000..cf5c7d5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7F569EDC3B9535E5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.83B56C1C497273F6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.83B56C1C497273F6.idx new file mode 100644 index 0000000..26706d5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.83B56C1C497273F6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8AD5F8FCF21177AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8AD5F8FCF21177AB.idx new file mode 100644 index 0000000..5546c2f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8AD5F8FCF21177AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.94C09D81CFA3AA80.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.94C09D81CFA3AA80.idx new file mode 100644 index 0000000..c6a304c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.94C09D81CFA3AA80.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9821E2A449F0D744.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9821E2A449F0D744.idx new file mode 100644 index 0000000..49a9ed7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9821E2A449F0D744.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.99E54A494C686A67.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.99E54A494C686A67.idx new file mode 100644 index 0000000..99dd8a1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.99E54A494C686A67.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.A96F3BC8405B6FA3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.A96F3BC8405B6FA3.idx new file mode 100644 index 0000000..ff4a2cd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.A96F3BC8405B6FA3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.B5ADADAF0DFF7EB1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.B5ADADAF0DFF7EB1.idx new file mode 100644 index 0000000..03b5172 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.B5ADADAF0DFF7EB1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C049EECAE02405B3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C049EECAE02405B3.idx new file mode 100644 index 0000000..e7996d5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C049EECAE02405B3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.DA7940D1FB59E629.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.DA7940D1FB59E629.idx new file mode 100644 index 0000000..43c628b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.DA7940D1FB59E629.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E3A7471A44CB5B4C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E3A7471A44CB5B4C.idx new file mode 100644 index 0000000..cf8c6a3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E3A7471A44CB5B4C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E52337E87CE6FCF3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E52337E87CE6FCF3.idx new file mode 100644 index 0000000..0e75299 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E52337E87CE6FCF3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.070FF7A70485CD56.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.070FF7A70485CD56.idx new file mode 100644 index 0000000..fbea10b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.070FF7A70485CD56.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.073288DC28A0CE0C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.073288DC28A0CE0C.idx new file mode 100644 index 0000000..25f314f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.073288DC28A0CE0C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0855A0E6B59C56ED.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0855A0E6B59C56ED.idx new file mode 100644 index 0000000..978758d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0855A0E6B59C56ED.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0EA296B3577CAFE3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0EA296B3577CAFE3.idx new file mode 100644 index 0000000..b3fdd1b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0EA296B3577CAFE3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.18D169C0B86648BD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.18D169C0B86648BD.idx new file mode 100644 index 0000000..7472467 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.18D169C0B86648BD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2C0453EC75FE87F9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2C0453EC75FE87F9.idx new file mode 100644 index 0000000..678db6d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2C0453EC75FE87F9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2E5060B2F7C52C54.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2E5060B2F7C52C54.idx new file mode 100644 index 0000000..63b5b40 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2E5060B2F7C52C54.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.38E4518F2EB07789.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.38E4518F2EB07789.idx new file mode 100644 index 0000000..ec6853f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.38E4518F2EB07789.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3FB6DC2FC45F4947.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3FB6DC2FC45F4947.idx new file mode 100644 index 0000000..0076793 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3FB6DC2FC45F4947.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4010449A369F2FEA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4010449A369F2FEA.idx new file mode 100644 index 0000000..b607a3b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4010449A369F2FEA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4E0050EFD6D1C6CB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4E0050EFD6D1C6CB.idx new file mode 100644 index 0000000..085c9f4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4E0050EFD6D1C6CB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.52896AA0149138CD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.52896AA0149138CD.idx new file mode 100644 index 0000000..bb9993f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.52896AA0149138CD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.53B085C00461B42F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.53B085C00461B42F.idx new file mode 100644 index 0000000..dc4adeb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.53B085C00461B42F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5D8CCDDEC839B5FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5D8CCDDEC839B5FE.idx new file mode 100644 index 0000000..c7f76d5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5D8CCDDEC839B5FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.650FFD7397F6A91D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.650FFD7397F6A91D.idx new file mode 100644 index 0000000..6572e09 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.650FFD7397F6A91D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.773EDB7A4C48159B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.773EDB7A4C48159B.idx new file mode 100644 index 0000000..116c6db Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.773EDB7A4C48159B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A9F14D025564BC97.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A9F14D025564BC97.idx new file mode 100644 index 0000000..9f70fd4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A9F14D025564BC97.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB1B4E2FDB2717A2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB1B4E2FDB2717A2.idx new file mode 100644 index 0000000..2586538 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB1B4E2FDB2717A2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB22950836E2790B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB22950836E2790B.idx new file mode 100644 index 0000000..a6bbec9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB22950836E2790B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AFCF59F7FF6BCBDA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AFCF59F7FF6BCBDA.idx new file mode 100644 index 0000000..1b40ccb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AFCF59F7FF6BCBDA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.B272D1E8D4B37D36.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.B272D1E8D4B37D36.idx new file mode 100644 index 0000000..2010a5c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.B272D1E8D4B37D36.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C1A863BB932E1346.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C1A863BB932E1346.idx new file mode 100644 index 0000000..06cdaa2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C1A863BB932E1346.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C2A0BE6EE4485967.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C2A0BE6EE4485967.idx new file mode 100644 index 0000000..f43928d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C2A0BE6EE4485967.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C989F4E5B7D491B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C989F4E5B7D491B0.idx new file mode 100644 index 0000000..7b8e588 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C989F4E5B7D491B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.D2D4471ABED04AF6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.D2D4471ABED04AF6.idx new file mode 100644 index 0000000..77ff346 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.D2D4471ABED04AF6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.EFA4D0EE12AADC06.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.EFA4D0EE12AADC06.idx new file mode 100644 index 0000000..324ec18 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.EFA4D0EE12AADC06.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F6B5FB010F645ED3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F6B5FB010F645ED3.idx new file mode 100644 index 0000000..360792b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F6B5FB010F645ED3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.FB69D8EF671C1E19.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.FB69D8EF671C1E19.idx new file mode 100644 index 0000000..665557f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_coret.h.FB69D8EF671C1E19.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.1445D8C9353F0B8A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.1445D8C9353F0B8A.idx new file mode 100644 index 0000000..cc2b3df Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.1445D8C9353F0B8A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.161FA9CE61070106.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.161FA9CE61070106.idx new file mode 100644 index 0000000..7edffc4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.161FA9CE61070106.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.19112AB589EC28F2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.19112AB589EC28F2.idx new file mode 100644 index 0000000..9f0ab0d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.19112AB589EC28F2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.279A86DFAA193604.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.279A86DFAA193604.idx new file mode 100644 index 0000000..39b53fe Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.279A86DFAA193604.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.4BF235BC578EF5A6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.4BF235BC578EF5A6.idx new file mode 100644 index 0000000..ca98eb9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.4BF235BC578EF5A6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.50275BDBC47470AA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.50275BDBC47470AA.idx new file mode 100644 index 0000000..2655c1b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.50275BDBC47470AA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.51EC3F5EC6BDF96F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.51EC3F5EC6BDF96F.idx new file mode 100644 index 0000000..ac5eb67 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.51EC3F5EC6BDF96F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5461301B918EACC0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5461301B918EACC0.idx new file mode 100644 index 0000000..f3d88ff Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5461301B918EACC0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.569F7F0435E872D6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.569F7F0435E872D6.idx new file mode 100644 index 0000000..403b728 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.569F7F0435E872D6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.71BA44025B91DC4B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.71BA44025B91DC4B.idx new file mode 100644 index 0000000..230984d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.71BA44025B91DC4B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.86029214AF584C17.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.86029214AF584C17.idx new file mode 100644 index 0000000..ab304de Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.86029214AF584C17.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.8FFD050126C0FA78.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.8FFD050126C0FA78.idx new file mode 100644 index 0000000..f4aeeeb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.8FFD050126C0FA78.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.914B68114853D86E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.914B68114853D86E.idx new file mode 100644 index 0000000..f67b686 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.914B68114853D86E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.A975098A0EBDFC0E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.A975098A0EBDFC0E.idx new file mode 100644 index 0000000..62fcd7c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.A975098A0EBDFC0E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.AC248CDC38A0E1D8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.AC248CDC38A0E1D8.idx new file mode 100644 index 0000000..cdd8be8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.AC248CDC38A0E1D8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B71A42C094F0FA0E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B71A42C094F0FA0E.idx new file mode 100644 index 0000000..a4996be Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B71A42C094F0FA0E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B758D6F5F2BD1CE4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B758D6F5F2BD1CE4.idx new file mode 100644 index 0000000..3cd5360 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B758D6F5F2BD1CE4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.CB2E95820760ED88.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.CB2E95820760ED88.idx new file mode 100644 index 0000000..ad89fa3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.CB2E95820760ED88.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D00FA82FCE666C98.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D00FA82FCE666C98.idx new file mode 100644 index 0000000..4ac8a16 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D00FA82FCE666C98.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D10A68B76418423C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D10A68B76418423C.idx new file mode 100644 index 0000000..f272c9d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D10A68B76418423C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D4A6C7CD1502DA15.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D4A6C7CD1502DA15.idx new file mode 100644 index 0000000..6a347e1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D4A6C7CD1502DA15.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D546A8371201B099.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D546A8371201B099.idx new file mode 100644 index 0000000..9a7f6b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D546A8371201B099.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D8A8A4F4295DECFB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D8A8A4F4295DECFB.idx new file mode 100644 index 0000000..91bb6fb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D8A8A4F4295DECFB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.DD74C6E91C87A055.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.DD74C6E91C87A055.idx new file mode 100644 index 0000000..5b9b4e2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.DD74C6E91C87A055.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3F0BFE9B4CE3F08.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3F0BFE9B4CE3F08.idx new file mode 100644 index 0000000..7326dbf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3F0BFE9B4CE3F08.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3FFF4F111177042.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3FFF4F111177042.idx new file mode 100644 index 0000000..05316da Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3FFF4F111177042.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FAB049D061E45A4B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FAB049D061E45A4B.idx new file mode 100644 index 0000000..ab7a030 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FAB049D061E45A4B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FB3A4E8D41992AFB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FB3A4E8D41992AFB.idx new file mode 100644 index 0000000..e7d3ced Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FB3A4E8D41992AFB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.16E2D54BD7A77A28.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.16E2D54BD7A77A28.idx new file mode 100644 index 0000000..8d929ec Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.16E2D54BD7A77A28.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.182751928BAC7C4B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.182751928BAC7C4B.idx new file mode 100644 index 0000000..e60ddcf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.182751928BAC7C4B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.228CC12222AA0779.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.228CC12222AA0779.idx new file mode 100644 index 0000000..b157f39 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.228CC12222AA0779.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.27C826BBB0FF167C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.27C826BBB0FF167C.idx new file mode 100644 index 0000000..d9feeab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.27C826BBB0FF167C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.2F76920F98947761.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.2F76920F98947761.idx new file mode 100644 index 0000000..7adf802 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.2F76920F98947761.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.331504198E03E8C3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.331504198E03E8C3.idx new file mode 100644 index 0000000..a9faa71 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.331504198E03E8C3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.3F2F0FE237CDE7CA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.3F2F0FE237CDE7CA.idx new file mode 100644 index 0000000..68f359f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.3F2F0FE237CDE7CA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.40CD98C38DEC16DB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.40CD98C38DEC16DB.idx new file mode 100644 index 0000000..dd1c279 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.40CD98C38DEC16DB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4333DA1BFD675A44.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4333DA1BFD675A44.idx new file mode 100644 index 0000000..32cafb2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4333DA1BFD675A44.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4BB2D9C24AFAEE4C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4BB2D9C24AFAEE4C.idx new file mode 100644 index 0000000..56d62d1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4BB2D9C24AFAEE4C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.61F5CE4F2B5DB1C4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.61F5CE4F2B5DB1C4.idx new file mode 100644 index 0000000..7ff4295 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.61F5CE4F2B5DB1C4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.742700234F0CBF23.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.742700234F0CBF23.idx new file mode 100644 index 0000000..245b39c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.742700234F0CBF23.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BBE0892770F484D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BBE0892770F484D.idx new file mode 100644 index 0000000..3bc9e1b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BBE0892770F484D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BD83212A432B2F5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BD83212A432B2F5.idx new file mode 100644 index 0000000..207a308 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BD83212A432B2F5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7E96C2A9D4ABA774.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7E96C2A9D4ABA774.idx new file mode 100644 index 0000000..0ff80f9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7E96C2A9D4ABA774.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.827680BB7620AB9E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.827680BB7620AB9E.idx new file mode 100644 index 0000000..c6b9445 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.827680BB7620AB9E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.968145BB37D20849.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.968145BB37D20849.idx new file mode 100644 index 0000000..95fe090 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.968145BB37D20849.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.AC0EB58EB7416E4F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.AC0EB58EB7416E4F.idx new file mode 100644 index 0000000..65ee2f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.AC0EB58EB7416E4F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BE4B95F48C1A1D06.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BE4B95F48C1A1D06.idx new file mode 100644 index 0000000..3809e19 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BE4B95F48C1A1D06.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D0E46C8CA1E16823.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D0E46C8CA1E16823.idx new file mode 100644 index 0000000..9c562b8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D0E46C8CA1E16823.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D6045A9396C595C3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D6045A9396C595C3.idx new file mode 100644 index 0000000..cb6a926 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D6045A9396C595C3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D79CD7B329A8F544.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D79CD7B329A8F544.idx new file mode 100644 index 0000000..1bd7894 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D79CD7B329A8F544.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D8E8C0217740DE82.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D8E8C0217740DE82.idx new file mode 100644 index 0000000..8b25bd6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D8E8C0217740DE82.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E398367EE4D05DEB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E398367EE4D05DEB.idx new file mode 100644 index 0000000..bbc59ab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E398367EE4D05DEB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EA5BB4E46FFD0DDC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EA5BB4E46FFD0DDC.idx new file mode 100644 index 0000000..0221e97 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EA5BB4E46FFD0DDC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EB489A6AF27A7BC8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EB489A6AF27A7BC8.idx new file mode 100644 index 0000000..316bc8f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EB489A6AF27A7BC8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EF51EB34766AD56E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EF51EB34766AD56E.idx new file mode 100644 index 0000000..afb5f60 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EF51EB34766AD56E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.F7FEABE9D913D1CD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.F7FEABE9D913D1CD.idx new file mode 100644 index 0000000..d646b02 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_countera.h.F7FEABE9D913D1CD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.005B73DDD6CCDE02.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.005B73DDD6CCDE02.idx new file mode 100644 index 0000000..967c193 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.005B73DDD6CCDE02.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.1410C02D292C7427.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.1410C02D292C7427.idx new file mode 100644 index 0000000..61a9f3f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.1410C02D292C7427.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.145B928D521664F9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.145B928D521664F9.idx new file mode 100644 index 0000000..42c4374 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.145B928D521664F9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.146B9F663E2DB7E4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.146B9F663E2DB7E4.idx new file mode 100644 index 0000000..87663ab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.146B9F663E2DB7E4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2F8F7DACA0C2A029.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2F8F7DACA0C2A029.idx new file mode 100644 index 0000000..b0dc45f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2F8F7DACA0C2A029.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5A2ADDFFDA0BD3F3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5A2ADDFFDA0BD3F3.idx new file mode 100644 index 0000000..07e0abd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5A2ADDFFDA0BD3F3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5AE85034E87CDCA1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5AE85034E87CDCA1.idx new file mode 100644 index 0000000..cd2a057 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5AE85034E87CDCA1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5C90ADBF6912E1ED.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5C90ADBF6912E1ED.idx new file mode 100644 index 0000000..27448be Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5C90ADBF6912E1ED.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.7F3A2118F6A3175E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.7F3A2118F6A3175E.idx new file mode 100644 index 0000000..967187a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.7F3A2118F6A3175E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8AF09A65C5E538D6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8AF09A65C5E538D6.idx new file mode 100644 index 0000000..da0d22d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8AF09A65C5E538D6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8C10E380315F38C9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8C10E380315F38C9.idx new file mode 100644 index 0000000..26f0266 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8C10E380315F38C9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8E7CA0DA1179C7D3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8E7CA0DA1179C7D3.idx new file mode 100644 index 0000000..b58d3c1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8E7CA0DA1179C7D3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.91B943380C4E7946.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.91B943380C4E7946.idx new file mode 100644 index 0000000..f40bb99 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.91B943380C4E7946.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.994EFFADEA2502AC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.994EFFADEA2502AC.idx new file mode 100644 index 0000000..fae68b3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.994EFFADEA2502AC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.A23E587D29EBC5A7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.A23E587D29EBC5A7.idx new file mode 100644 index 0000000..0b3705f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.A23E587D29EBC5A7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.AC3E0C93CF5A8227.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.AC3E0C93CF5A8227.idx new file mode 100644 index 0000000..20fb7db Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.AC3E0C93CF5A8227.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.B8A590F170033C66.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.B8A590F170033C66.idx new file mode 100644 index 0000000..39cd4fa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.B8A590F170033C66.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.C423E9E907AA8AF7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.C423E9E907AA8AF7.idx new file mode 100644 index 0000000..c96860f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.C423E9E907AA8AF7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D4A967912A31FE4C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D4A967912A31FE4C.idx new file mode 100644 index 0000000..52df7ab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D4A967912A31FE4C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D9B9787A59589ACC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D9B9787A59589ACC.idx new file mode 100644 index 0000000..f9ec284 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D9B9787A59589ACC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DCBC35E2FBF277B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DCBC35E2FBF277B1.idx new file mode 100644 index 0000000..d5e6d2c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DCBC35E2FBF277B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DE738C4F10CA2EDB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DE738C4F10CA2EDB.idx new file mode 100644 index 0000000..4d0f565 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DE738C4F10CA2EDB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DFA1B16BD0CD2113.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DFA1B16BD0CD2113.idx new file mode 100644 index 0000000..51ec21e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DFA1B16BD0CD2113.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E11C72E2A5FF83B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E11C72E2A5FF83B1.idx new file mode 100644 index 0000000..0a3b62c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E11C72E2A5FF83B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EF2D84EF696559B7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EF2D84EF696559B7.idx new file mode 100644 index 0000000..2091ab4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EF2D84EF696559B7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F4DDF1970A02CEA4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F4DDF1970A02CEA4.idx new file mode 100644 index 0000000..1caf68a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F4DDF1970A02CEA4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F7A158F51C0D34CD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F7A158F51C0D34CD.idx new file mode 100644 index 0000000..4dc3e2f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F7A158F51C0D34CD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.FDCB6653BE0AA04A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.FDCB6653BE0AA04A.idx new file mode 100644 index 0000000..83d8e21 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.c.FDCB6653BE0AA04A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.0F29E172C3C8C8A2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.0F29E172C3C8C8A2.idx new file mode 100644 index 0000000..81e2b42 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.0F29E172C3C8C8A2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.13FA1F2765CAE749.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.13FA1F2765CAE749.idx new file mode 100644 index 0000000..a83c60a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.13FA1F2765CAE749.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.16C811709E62A522.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.16C811709E62A522.idx new file mode 100644 index 0000000..9659aaa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.16C811709E62A522.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.1B3333C2A8CA2C3E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.1B3333C2A8CA2C3E.idx new file mode 100644 index 0000000..b65c21a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.1B3333C2A8CA2C3E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.24B0C05B5745F24B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.24B0C05B5745F24B.idx new file mode 100644 index 0000000..6aeb589 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.24B0C05B5745F24B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.28F1A54DE716525D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.28F1A54DE716525D.idx new file mode 100644 index 0000000..f81648b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.28F1A54DE716525D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.3FF02616EEDCAC12.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.3FF02616EEDCAC12.idx new file mode 100644 index 0000000..aff2417 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.3FF02616EEDCAC12.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.6CB0E1219929F6A3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.6CB0E1219929F6A3.idx new file mode 100644 index 0000000..354c970 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.6CB0E1219929F6A3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.71283FC1B6D65E87.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.71283FC1B6D65E87.idx new file mode 100644 index 0000000..f3ecf18 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.71283FC1B6D65E87.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8E896A9CA85CB3F6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8E896A9CA85CB3F6.idx new file mode 100644 index 0000000..d72a067 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8E896A9CA85CB3F6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8ED22D0A79697F98.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8ED22D0A79697F98.idx new file mode 100644 index 0000000..9f0b708 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8ED22D0A79697F98.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.96A6D74EBA008E08.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.96A6D74EBA008E08.idx new file mode 100644 index 0000000..bfe6e97 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.96A6D74EBA008E08.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.9FFC35B7B6F367F9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.9FFC35B7B6F367F9.idx new file mode 100644 index 0000000..e751519 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.9FFC35B7B6F367F9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A186291CADAE9A06.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A186291CADAE9A06.idx new file mode 100644 index 0000000..bc38cf2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A186291CADAE9A06.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A26968C5C11172AA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A26968C5C11172AA.idx new file mode 100644 index 0000000..4d1de75 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A26968C5C11172AA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A729BC5ACC079F2F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A729BC5ACC079F2F.idx new file mode 100644 index 0000000..0b48547 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A729BC5ACC079F2F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD2C895C6166024D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD2C895C6166024D.idx new file mode 100644 index 0000000..e1970ec Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD2C895C6166024D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B578BE29520FB79F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B578BE29520FB79F.idx new file mode 100644 index 0000000..53c38c1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B578BE29520FB79F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.DA9CF51F2BF58566.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.DA9CF51F2BF58566.idx new file mode 100644 index 0000000..8dfa30f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.DA9CF51F2BF58566.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E23B7605E230BF61.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E23B7605E230BF61.idx new file mode 100644 index 0000000..15665e6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E23B7605E230BF61.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E74E65156BCB371B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E74E65156BCB371B.idx new file mode 100644 index 0000000..ff43131 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E74E65156BCB371B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E846284883DEFC23.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E846284883DEFC23.idx new file mode 100644 index 0000000..768ce7f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E846284883DEFC23.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E9B270D108DC5467.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E9B270D108DC5467.idx new file mode 100644 index 0000000..055627d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E9B270D108DC5467.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.EECC8009782A107C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.EECC8009782A107C.idx new file mode 100644 index 0000000..10343ff Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.EECC8009782A107C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F4E0180A7CD99EC8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F4E0180A7CD99EC8.idx new file mode 100644 index 0000000..83d959e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F4E0180A7CD99EC8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F629B4245A43F707.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F629B4245A43F707.idx new file mode 100644 index 0000000..c056ddf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F629B4245A43F707.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F9C3B5ECF1A02E34.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F9C3B5ECF1A02E34.idx new file mode 100644 index 0000000..3943981 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F9C3B5ECF1A02E34.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FDB0F4CF2313A565.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FDB0F4CF2313A565.idx new file mode 100644 index 0000000..f0e8f2a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FDB0F4CF2313A565.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04E0E7F99AAB4EA3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04E0E7F99AAB4EA3.idx new file mode 100644 index 0000000..de33c98 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04E0E7F99AAB4EA3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.062A9C038DD2DABC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.062A9C038DD2DABC.idx new file mode 100644 index 0000000..47e8237 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.062A9C038DD2DABC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.0684ADB3B37ADB13.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.0684ADB3B37ADB13.idx new file mode 100644 index 0000000..7c28df6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.0684ADB3B37ADB13.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.10667119A28D870F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.10667119A28D870F.idx new file mode 100644 index 0000000..ad444c0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.10667119A28D870F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.11940D923E9CCC0E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.11940D923E9CCC0E.idx new file mode 100644 index 0000000..d6ebd01 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.11940D923E9CCC0E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.1932A52A4AD1344C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.1932A52A4AD1344C.idx new file mode 100644 index 0000000..c96d29b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.1932A52A4AD1344C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.25086ADA1066F56E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.25086ADA1066F56E.idx new file mode 100644 index 0000000..ca4ee5b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.25086ADA1066F56E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.39449B5B499DDF62.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.39449B5B499DDF62.idx new file mode 100644 index 0000000..d027b0e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.39449B5B499DDF62.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.40F6608F951BC2EA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.40F6608F951BC2EA.idx new file mode 100644 index 0000000..d2d122f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.40F6608F951BC2EA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.43F126EE4DF9818B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.43F126EE4DF9818B.idx new file mode 100644 index 0000000..9f57b21 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.43F126EE4DF9818B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.46F3B5E748435B0F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.46F3B5E748435B0F.idx new file mode 100644 index 0000000..0307624 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.46F3B5E748435B0F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.506D1419474B3C32.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.506D1419474B3C32.idx new file mode 100644 index 0000000..2c039be Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.506D1419474B3C32.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.644A996EB36C1511.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.644A996EB36C1511.idx new file mode 100644 index 0000000..9323a90 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.644A996EB36C1511.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7653ADEAC6133731.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7653ADEAC6133731.idx new file mode 100644 index 0000000..029dff7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7653ADEAC6133731.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BCCB4F5D6881B84.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BCCB4F5D6881B84.idx new file mode 100644 index 0000000..282e2ca Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BCCB4F5D6881B84.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BF97D52A4B886E6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BF97D52A4B886E6.idx new file mode 100644 index 0000000..e57b563 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BF97D52A4B886E6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.90339E02663265B8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.90339E02663265B8.idx new file mode 100644 index 0000000..66e303a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.90339E02663265B8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.97764B45FEE7ADEA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.97764B45FEE7ADEA.idx new file mode 100644 index 0000000..5d4fde4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.97764B45FEE7ADEA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9939D6FF0D394162.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9939D6FF0D394162.idx new file mode 100644 index 0000000..77f4d11 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9939D6FF0D394162.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9D084DA3827229BB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9D084DA3827229BB.idx new file mode 100644 index 0000000..154abea Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9D084DA3827229BB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EBDB379FE9763D7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EBDB379FE9763D7.idx new file mode 100644 index 0000000..0c5263d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EBDB379FE9763D7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EDFACB7E77F9573.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EDFACB7E77F9573.idx new file mode 100644 index 0000000..de93fe1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EDFACB7E77F9573.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.BF72E4DE7DA9284E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.BF72E4DE7DA9284E.idx new file mode 100644 index 0000000..d3cb237 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.BF72E4DE7DA9284E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D34CEA7A5E0D51EE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D34CEA7A5E0D51EE.idx new file mode 100644 index 0000000..dcfc95d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D34CEA7A5E0D51EE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D5F23D986C1E0DBD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D5F23D986C1E0DBD.idx new file mode 100644 index 0000000..e2efadc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D5F23D986C1E0DBD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.EBB23353DA88DABB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.EBB23353DA88DABB.idx new file mode 100644 index 0000000..51c0c44 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.EBB23353DA88DABB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.F7DAFB3A4DA740AD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.F7DAFB3A4DA740AD.idx new file mode 100644 index 0000000..14991db Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.F7DAFB3A4DA740AD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.FDFBC7871B9C184A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.FDFBC7871B9C184A.idx new file mode 100644 index 0000000..afda46d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.c.FDFBC7871B9C184A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.03864487B8746668.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.03864487B8746668.idx new file mode 100644 index 0000000..c55057c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.03864487B8746668.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.08DBCCDD100582A1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.08DBCCDD100582A1.idx new file mode 100644 index 0000000..3eaf75f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.08DBCCDD100582A1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1DDE662B4790FD4D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1DDE662B4790FD4D.idx new file mode 100644 index 0000000..934fd0f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1DDE662B4790FD4D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.23656D67AFF7D230.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.23656D67AFF7D230.idx new file mode 100644 index 0000000..e3d955b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.23656D67AFF7D230.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.25E3032CF28025D9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.25E3032CF28025D9.idx new file mode 100644 index 0000000..de867e7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.25E3032CF28025D9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3A41DDF7EB1BDB56.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3A41DDF7EB1BDB56.idx new file mode 100644 index 0000000..5ccca05 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3A41DDF7EB1BDB56.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3AC002BC13EA15F9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3AC002BC13EA15F9.idx new file mode 100644 index 0000000..9c04476 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3AC002BC13EA15F9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.482FB5DC31203610.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.482FB5DC31203610.idx new file mode 100644 index 0000000..e456d2b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.482FB5DC31203610.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4E953121B2DEBA7B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4E953121B2DEBA7B.idx new file mode 100644 index 0000000..bba8aa2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4E953121B2DEBA7B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.501A7B0B16418C6D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.501A7B0B16418C6D.idx new file mode 100644 index 0000000..3ee30af Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.501A7B0B16418C6D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.56BEDDEB85E738C3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.56BEDDEB85E738C3.idx new file mode 100644 index 0000000..95f4ce1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.56BEDDEB85E738C3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5BE46603E6306629.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5BE46603E6306629.idx new file mode 100644 index 0000000..95181f2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5BE46603E6306629.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5CC7782FDA86A20E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5CC7782FDA86A20E.idx new file mode 100644 index 0000000..af23fae Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5CC7782FDA86A20E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.704F33E3E66AFE2C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.704F33E3E66AFE2C.idx new file mode 100644 index 0000000..2ddc07a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.704F33E3E66AFE2C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.86BB0F7028627F0F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.86BB0F7028627F0F.idx new file mode 100644 index 0000000..5745df8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.86BB0F7028627F0F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.89A2EB458EBD1A73.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.89A2EB458EBD1A73.idx new file mode 100644 index 0000000..bbd6e56 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.89A2EB458EBD1A73.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.9DCBA97C30457382.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.9DCBA97C30457382.idx new file mode 100644 index 0000000..7a7f2af Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.9DCBA97C30457382.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A2F20EFED1BDCD6A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A2F20EFED1BDCD6A.idx new file mode 100644 index 0000000..59319f0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A2F20EFED1BDCD6A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A5D1B68598752FAF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A5D1B68598752FAF.idx new file mode 100644 index 0000000..e30fcb2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A5D1B68598752FAF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8A2A3EFED8F2000.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8A2A3EFED8F2000.idx new file mode 100644 index 0000000..8ae7ae2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8A2A3EFED8F2000.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8AACACC54EBB8C5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8AACACC54EBB8C5.idx new file mode 100644 index 0000000..d358893 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8AACACC54EBB8C5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C2DDDEDA6390A16B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C2DDDEDA6390A16B.idx new file mode 100644 index 0000000..b106096 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C2DDDEDA6390A16B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C5F3386D9C947191.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C5F3386D9C947191.idx new file mode 100644 index 0000000..d3d8808 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C5F3386D9C947191.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C8D29D4F4839811E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C8D29D4F4839811E.idx new file mode 100644 index 0000000..adef2bd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C8D29D4F4839811E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.D022DF099BA7C909.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.D022DF099BA7C909.idx new file mode 100644 index 0000000..c62a17e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.D022DF099BA7C909.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E0A52E46C1AB968F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E0A52E46C1AB968F.idx new file mode 100644 index 0000000..b6796df Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E0A52E46C1AB968F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E929123D949D78C6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E929123D949D78C6.idx new file mode 100644 index 0000000..7f71e41 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E929123D949D78C6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.FCFEE034EE677C8F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.FCFEE034EE677C8F.idx new file mode 100644 index 0000000..8e012e9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ept.h.FCFEE034EE677C8F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.0FB0357761612566.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.0FB0357761612566.idx new file mode 100644 index 0000000..5f8d8a0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.0FB0357761612566.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.11523BF96BFCA5E0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.11523BF96BFCA5E0.idx new file mode 100644 index 0000000..f88235a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.11523BF96BFCA5E0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.23018013D38C2A23.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.23018013D38C2A23.idx new file mode 100644 index 0000000..716d6d2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.23018013D38C2A23.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.2831934A6C6350CE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.2831934A6C6350CE.idx new file mode 100644 index 0000000..ec371eb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.2831934A6C6350CE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.2E33D45137A954A9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.2E33D45137A954A9.idx new file mode 100644 index 0000000..ed12ca1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.2E33D45137A954A9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.3355DD4C7115885A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.3355DD4C7115885A.idx new file mode 100644 index 0000000..d631ebc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.3355DD4C7115885A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.363BE3721DB312F7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.363BE3721DB312F7.idx new file mode 100644 index 0000000..503d3e1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.363BE3721DB312F7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.388C54A7A3319C87.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.388C54A7A3319C87.idx new file mode 100644 index 0000000..702cfd1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.388C54A7A3319C87.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.410BAB59D8FAB405.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.410BAB59D8FAB405.idx new file mode 100644 index 0000000..76df385 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.410BAB59D8FAB405.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.564061339DD8C21D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.564061339DD8C21D.idx new file mode 100644 index 0000000..4225b39 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.564061339DD8C21D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.5BDC832B702D786D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.5BDC832B702D786D.idx new file mode 100644 index 0000000..cb089d0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.5BDC832B702D786D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.5D7427B4DACBDCED.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.5D7427B4DACBDCED.idx new file mode 100644 index 0000000..4d29517 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.5D7427B4DACBDCED.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.65A128CA60C7F097.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.65A128CA60C7F097.idx new file mode 100644 index 0000000..0aecdf3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.65A128CA60C7F097.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.68C25CFE481FA8ED.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.68C25CFE481FA8ED.idx new file mode 100644 index 0000000..37b1feb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.68C25CFE481FA8ED.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.6DF99B04FE614F0E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.6DF99B04FE614F0E.idx new file mode 100644 index 0000000..d837e8f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.6DF99B04FE614F0E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.83F13EED18FCA58B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.83F13EED18FCA58B.idx new file mode 100644 index 0000000..bec5fe7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.83F13EED18FCA58B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.88C474B934BBD66E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.88C474B934BBD66E.idx new file mode 100644 index 0000000..d890182 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.88C474B934BBD66E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.8C96938301790912.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.8C96938301790912.idx new file mode 100644 index 0000000..8f8ea52 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.8C96938301790912.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.91E194B8CE6472C8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.91E194B8CE6472C8.idx new file mode 100644 index 0000000..288136b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.91E194B8CE6472C8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.9E9531A04D0405AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.9E9531A04D0405AB.idx new file mode 100644 index 0000000..b3ba5d2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.9E9531A04D0405AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.A614548FB14E8E92.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.A614548FB14E8E92.idx new file mode 100644 index 0000000..1d8654c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.A614548FB14E8E92.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.B0F3BAF87405856F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.B0F3BAF87405856F.idx new file mode 100644 index 0000000..25798fa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.B0F3BAF87405856F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC4F31D2991EA7B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC4F31D2991EA7B0.idx new file mode 100644 index 0000000..bc799e0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC4F31D2991EA7B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC641F42A5E199FD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC641F42A5E199FD.idx new file mode 100644 index 0000000..7196bef Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC641F42A5E199FD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.C991435B10A92D13.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.C991435B10A92D13.idx new file mode 100644 index 0000000..0af3d70 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.C991435B10A92D13.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.D249661E612BE15D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.D249661E612BE15D.idx new file mode 100644 index 0000000..67e8bb7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.D249661E612BE15D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.DF4C961B246FCA92.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.DF4C961B246FCA92.idx new file mode 100644 index 0000000..6cdcff2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.DF4C961B246FCA92.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.E475807E2F07A147.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.E475807E2F07A147.idx new file mode 100644 index 0000000..34ca151 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.c.E475807E2F07A147.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.000796581FCA2488.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.000796581FCA2488.idx new file mode 100644 index 0000000..5356ebe Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.000796581FCA2488.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.046DE41863028F87.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.046DE41863028F87.idx new file mode 100644 index 0000000..9937fd4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.046DE41863028F87.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.0A5C1D9F9605A441.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.0A5C1D9F9605A441.idx new file mode 100644 index 0000000..27637ed Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.0A5C1D9F9605A441.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.0DD53FA1297F749E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.0DD53FA1297F749E.idx new file mode 100644 index 0000000..99176f6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.0DD53FA1297F749E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.12BCAD2320131E30.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.12BCAD2320131E30.idx new file mode 100644 index 0000000..89bfc36 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.12BCAD2320131E30.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.134D8F80FE8F45DE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.134D8F80FE8F45DE.idx new file mode 100644 index 0000000..6afd722 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.134D8F80FE8F45DE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.18116B621C04B9DF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.18116B621C04B9DF.idx new file mode 100644 index 0000000..1f07d34 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.18116B621C04B9DF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.1814A3AC3013D31E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.1814A3AC3013D31E.idx new file mode 100644 index 0000000..7d03ccb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.1814A3AC3013D31E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.26BCDE7FBBB294EF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.26BCDE7FBBB294EF.idx new file mode 100644 index 0000000..63dc965 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.26BCDE7FBBB294EF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.280A65664376A672.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.280A65664376A672.idx new file mode 100644 index 0000000..fad6d77 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.280A65664376A672.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.288D6D024326F041.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.288D6D024326F041.idx new file mode 100644 index 0000000..b4cfc5a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.288D6D024326F041.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.40098C2BD86F9518.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.40098C2BD86F9518.idx new file mode 100644 index 0000000..cd9d5d8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.40098C2BD86F9518.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.43C3F0D308790FC0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.43C3F0D308790FC0.idx new file mode 100644 index 0000000..44a97b9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.43C3F0D308790FC0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.47ABB6D2BD52B625.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.47ABB6D2BD52B625.idx new file mode 100644 index 0000000..2a77ea1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.47ABB6D2BD52B625.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.89D5B67C978EB7AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.89D5B67C978EB7AB.idx new file mode 100644 index 0000000..450f00a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.89D5B67C978EB7AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.98A9F10ECC88F3F3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.98A9F10ECC88F3F3.idx new file mode 100644 index 0000000..82e3e63 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.98A9F10ECC88F3F3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.9DD57FD3C19AA29C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.9DD57FD3C19AA29C.idx new file mode 100644 index 0000000..aadb7c4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.9DD57FD3C19AA29C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.B142441EAB6A95A3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.B142441EAB6A95A3.idx new file mode 100644 index 0000000..3d38f03 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.B142441EAB6A95A3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.B77B3FFDFE8FD608.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.B77B3FFDFE8FD608.idx new file mode 100644 index 0000000..2cd5a32 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.B77B3FFDFE8FD608.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C36FD2B626AB009B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C36FD2B626AB009B.idx new file mode 100644 index 0000000..d8109f4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C36FD2B626AB009B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C4C2887696C7B0C7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C4C2887696C7B0C7.idx new file mode 100644 index 0000000..0f9ba26 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C4C2887696C7B0C7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C566A5D0B6CB8D06.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C566A5D0B6CB8D06.idx new file mode 100644 index 0000000..a32d4c7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C566A5D0B6CB8D06.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C9F5233A0E9DE712.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C9F5233A0E9DE712.idx new file mode 100644 index 0000000..8ca3534 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.C9F5233A0E9DE712.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.DDB9B97635B97EB7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.DDB9B97635B97EB7.idx new file mode 100644 index 0000000..3cc5587 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.DDB9B97635B97EB7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.F082FAA261B0A7D0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.F082FAA261B0A7D0.idx new file mode 100644 index 0000000..d3ab191 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.F082FAA261B0A7D0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.F126F15F6215FB6E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.F126F15F6215FB6E.idx new file mode 100644 index 0000000..537dde9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.F126F15F6215FB6E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.FC2C3E32059CF31D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.FC2C3E32059CF31D.idx new file mode 100644 index 0000000..f9f7f16 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.FC2C3E32059CF31D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.FF2281A947B4353F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.FF2281A947B4353F.idx new file mode 100644 index 0000000..0ebfb68 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_et.h.FF2281A947B4353F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.01838824E4E59072.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.01838824E4E59072.idx new file mode 100644 index 0000000..cd0c461 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.01838824E4E59072.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.06714BDA9666EDD3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.06714BDA9666EDD3.idx new file mode 100644 index 0000000..49e66a7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.06714BDA9666EDD3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0A2CCC08F721F4FF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0A2CCC08F721F4FF.idx new file mode 100644 index 0000000..9fedfca Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0A2CCC08F721F4FF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0F3B8C644A79BBC4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0F3B8C644A79BBC4.idx new file mode 100644 index 0000000..b220516 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0F3B8C644A79BBC4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.201BCA703FCB6736.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.201BCA703FCB6736.idx new file mode 100644 index 0000000..9836ced Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.201BCA703FCB6736.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.207D1FD8A1A7292D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.207D1FD8A1A7292D.idx new file mode 100644 index 0000000..4a56595 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.207D1FD8A1A7292D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.292E036E8B19BEDD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.292E036E8B19BEDD.idx new file mode 100644 index 0000000..72f5a43 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.292E036E8B19BEDD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.2BCCD60B11AA0933.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.2BCCD60B11AA0933.idx new file mode 100644 index 0000000..6cca64b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.2BCCD60B11AA0933.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.3213DDD69295087E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.3213DDD69295087E.idx new file mode 100644 index 0000000..44f1426 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.3213DDD69295087E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.32F4C086254E152F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.32F4C086254E152F.idx new file mode 100644 index 0000000..0d7e1c4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.32F4C086254E152F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.4A34A7599746E8D2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.4A34A7599746E8D2.idx new file mode 100644 index 0000000..08a6eee Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.4A34A7599746E8D2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.4D32061D53C69ABE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.4D32061D53C69ABE.idx new file mode 100644 index 0000000..d3e8f91 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.4D32061D53C69ABE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.54EFB5C6442A589B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.54EFB5C6442A589B.idx new file mode 100644 index 0000000..3710f3b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.54EFB5C6442A589B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5C03140A9BBB25D7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5C03140A9BBB25D7.idx new file mode 100644 index 0000000..a62aa16 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5C03140A9BBB25D7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.62AFF9DCE977E183.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.62AFF9DCE977E183.idx new file mode 100644 index 0000000..6363401 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.62AFF9DCE977E183.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.796697AD1A06EABB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.796697AD1A06EABB.idx new file mode 100644 index 0000000..330948c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.796697AD1A06EABB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.802774FAE61B8FF7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.802774FAE61B8FF7.idx new file mode 100644 index 0000000..c1de1f8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.802774FAE61B8FF7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.82073595F68340DE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.82073595F68340DE.idx new file mode 100644 index 0000000..6fa1b7c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.82073595F68340DE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.88CA64BC156E499A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.88CA64BC156E499A.idx new file mode 100644 index 0000000..e437c97 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.88CA64BC156E499A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A57252E4CB283E34.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A57252E4CB283E34.idx new file mode 100644 index 0000000..c209e6f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A57252E4CB283E34.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B0755B75EBE7F28D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B0755B75EBE7F28D.idx new file mode 100644 index 0000000..4b025b3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B0755B75EBE7F28D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B72E4E2803063CC9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B72E4E2803063CC9.idx new file mode 100644 index 0000000..4ed1883 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B72E4E2803063CC9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BD6F2D0B0679CE33.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BD6F2D0B0679CE33.idx new file mode 100644 index 0000000..235cc50 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BD6F2D0B0679CE33.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E06CD08322AD8781.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E06CD08322AD8781.idx new file mode 100644 index 0000000..e7dc071 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E06CD08322AD8781.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E4ED1356EB4D6B89.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E4ED1356EB4D6B89.idx new file mode 100644 index 0000000..d0c0ad4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E4ED1356EB4D6B89.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.EC4E0D9974A69BE5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.EC4E0D9974A69BE5.idx new file mode 100644 index 0000000..16bfac3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.EC4E0D9974A69BE5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.F8C9CD3714C30742.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.F8C9CD3714C30742.idx new file mode 100644 index 0000000..a49076b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.F8C9CD3714C30742.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.FE73F585D80EDA73.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.FE73F585D80EDA73.idx new file mode 100644 index 0000000..071f158 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.FE73F585D80EDA73.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.0594261E5E8F4CCB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.0594261E5E8F4CCB.idx new file mode 100644 index 0000000..1ecda30 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.0594261E5E8F4CCB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.062F321B42EB07F2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.062F321B42EB07F2.idx new file mode 100644 index 0000000..70b4017 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.062F321B42EB07F2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.282CAFA496D31253.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.282CAFA496D31253.idx new file mode 100644 index 0000000..0d87021 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.282CAFA496D31253.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2974E6F28158D55E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2974E6F28158D55E.idx new file mode 100644 index 0000000..d23896b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2974E6F28158D55E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.3333C6E7B2A4A629.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.3333C6E7B2A4A629.idx new file mode 100644 index 0000000..06d156a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.3333C6E7B2A4A629.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.4E7A0FE1A0B8A364.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.4E7A0FE1A0B8A364.idx new file mode 100644 index 0000000..2d8dbcc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.4E7A0FE1A0B8A364.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5465484607212B95.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5465484607212B95.idx new file mode 100644 index 0000000..9356a5e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5465484607212B95.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.578DBF0D012FD302.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.578DBF0D012FD302.idx new file mode 100644 index 0000000..8f68d87 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.578DBF0D012FD302.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5D58AE656DE3E31F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5D58AE656DE3E31F.idx new file mode 100644 index 0000000..727cce6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5D58AE656DE3E31F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5F3DE400FA281F54.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5F3DE400FA281F54.idx new file mode 100644 index 0000000..5fef7c0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5F3DE400FA281F54.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.6E7FA0DAA036A9E0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.6E7FA0DAA036A9E0.idx new file mode 100644 index 0000000..ce197aa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.6E7FA0DAA036A9E0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.72C1691EAFD5B2CD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.72C1691EAFD5B2CD.idx new file mode 100644 index 0000000..524d791 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.72C1691EAFD5B2CD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.756B5FE8C26BC5DB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.756B5FE8C26BC5DB.idx new file mode 100644 index 0000000..ac25528 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.756B5FE8C26BC5DB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.7BA31BB75FBC0C67.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.7BA31BB75FBC0C67.idx new file mode 100644 index 0000000..a855dd8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.7BA31BB75FBC0C67.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.814B469AE863611E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.814B469AE863611E.idx new file mode 100644 index 0000000..f0b710d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.814B469AE863611E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8357EC76984A1536.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8357EC76984A1536.idx new file mode 100644 index 0000000..7fd2896 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8357EC76984A1536.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8B9DC2606316BE6A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8B9DC2606316BE6A.idx new file mode 100644 index 0000000..986f1fa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8B9DC2606316BE6A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.912727FEE267767C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.912727FEE267767C.idx new file mode 100644 index 0000000..1174882 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.912727FEE267767C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.97423204CA7D33D0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.97423204CA7D33D0.idx new file mode 100644 index 0000000..58f17ca Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.97423204CA7D33D0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.988AA59C20834B97.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.988AA59C20834B97.idx new file mode 100644 index 0000000..2fed87a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.988AA59C20834B97.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A151D6557F7E93BB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A151D6557F7E93BB.idx new file mode 100644 index 0000000..fbe6d07 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A151D6557F7E93BB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A50F23C7EF2FE318.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A50F23C7EF2FE318.idx new file mode 100644 index 0000000..8abd36a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A50F23C7EF2FE318.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A57184C9405E5932.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A57184C9405E5932.idx new file mode 100644 index 0000000..93bb1d2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A57184C9405E5932.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3D8121FCFFCF894.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3D8121FCFFCF894.idx new file mode 100644 index 0000000..7218967 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3D8121FCFFCF894.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.D82A35FD86BEFDAA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.D82A35FD86BEFDAA.idx new file mode 100644 index 0000000..a8589f4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.D82A35FD86BEFDAA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.F610752B4AEAAE5C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.F610752B4AEAAE5C.idx new file mode 100644 index 0000000..a0f7d52 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.F610752B4AEAAE5C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FED6872C230AF757.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FED6872C230AF757.idx new file mode 100644 index 0000000..cc5c5ee Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FED6872C230AF757.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FFD6EE6925D1150D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FFD6EE6925D1150D.idx new file mode 100644 index 0000000..25a91cb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FFD6EE6925D1150D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.1EC67A2028CFB76D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.1EC67A2028CFB76D.idx new file mode 100644 index 0000000..3f74362 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.1EC67A2028CFB76D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2B33E1777C53B5AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2B33E1777C53B5AB.idx new file mode 100644 index 0000000..ec2f45c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2B33E1777C53B5AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2F852D0352810AE8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2F852D0352810AE8.idx new file mode 100644 index 0000000..95cfcef Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2F852D0352810AE8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.31F8DAF641B694C1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.31F8DAF641B694C1.idx new file mode 100644 index 0000000..8a473ff Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.31F8DAF641B694C1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.3CAC661DC59BA376.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.3CAC661DC59BA376.idx new file mode 100644 index 0000000..97a8c57 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.3CAC661DC59BA376.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.46A67031525B3012.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.46A67031525B3012.idx new file mode 100644 index 0000000..7907cb7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.46A67031525B3012.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.4D814DDA8DDD515A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.4D814DDA8DDD515A.idx new file mode 100644 index 0000000..48a4984 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.4D814DDA8DDD515A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.52C5480646562228.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.52C5480646562228.idx new file mode 100644 index 0000000..c8f0d75 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.52C5480646562228.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.5EE02B9AAE563255.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.5EE02B9AAE563255.idx new file mode 100644 index 0000000..527363a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.5EE02B9AAE563255.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.60989AC7092FE927.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.60989AC7092FE927.idx new file mode 100644 index 0000000..a935f6d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.60989AC7092FE927.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.613203D0EDFE5AC2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.613203D0EDFE5AC2.idx new file mode 100644 index 0000000..ef83b9d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.613203D0EDFE5AC2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6FBED41F09437CF1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6FBED41F09437CF1.idx new file mode 100644 index 0000000..c184f00 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6FBED41F09437CF1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.914577D3F8798393.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.914577D3F8798393.idx new file mode 100644 index 0000000..fa53dbe Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.914577D3F8798393.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9291580DBB25F669.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9291580DBB25F669.idx new file mode 100644 index 0000000..d1ffd63 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9291580DBB25F669.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.95855139AFE0DA57.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.95855139AFE0DA57.idx new file mode 100644 index 0000000..083d89c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.95855139AFE0DA57.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.978BD573E157019E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.978BD573E157019E.idx new file mode 100644 index 0000000..9465c32 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.978BD573E157019E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9BF55937B340A105.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9BF55937B340A105.idx new file mode 100644 index 0000000..3dd9014 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9BF55937B340A105.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9D311FEE09EAC561.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9D311FEE09EAC561.idx new file mode 100644 index 0000000..1d10b4e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9D311FEE09EAC561.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9DB16E47F96F11B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9DB16E47F96F11B1.idx new file mode 100644 index 0000000..7324ac1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9DB16E47F96F11B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A18FBACF675F5EEB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A18FBACF675F5EEB.idx new file mode 100644 index 0000000..e4c8dab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A18FBACF675F5EEB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A3C4D3C5D6F9136C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A3C4D3C5D6F9136C.idx new file mode 100644 index 0000000..0f61ba2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A3C4D3C5D6F9136C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.ADB261E2B78E97F4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.ADB261E2B78E97F4.idx new file mode 100644 index 0000000..1221384 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.ADB261E2B78E97F4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.B3367128A6EE1E30.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.B3367128A6EE1E30.idx new file mode 100644 index 0000000..bdff561 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.B3367128A6EE1E30.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C0FE68C9F0A37C2E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C0FE68C9F0A37C2E.idx new file mode 100644 index 0000000..3ebcaa0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C0FE68C9F0A37C2E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C5B757D8891714DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C5B757D8891714DC.idx new file mode 100644 index 0000000..1878ede Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C5B757D8891714DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.CA2606BF698CAAB2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.CA2606BF698CAAB2.idx new file mode 100644 index 0000000..2fb5dcd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.CA2606BF698CAAB2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EADD639D9621F2FF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EADD639D9621F2FF.idx new file mode 100644 index 0000000..575366c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EADD639D9621F2FF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.F5747EDF3CC7349A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.F5747EDF3CC7349A.idx new file mode 100644 index 0000000..51657a4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.F5747EDF3CC7349A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.04421F342F2B29C1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.04421F342F2B29C1.idx new file mode 100644 index 0000000..eb07942 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.04421F342F2B29C1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.08119BFC3BD24B47.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.08119BFC3BD24B47.idx new file mode 100644 index 0000000..1662280 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.08119BFC3BD24B47.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.10B6D0297B1C3C6E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.10B6D0297B1C3C6E.idx new file mode 100644 index 0000000..2de4f04 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.10B6D0297B1C3C6E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.159E4EA0774FBCB0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.159E4EA0774FBCB0.idx new file mode 100644 index 0000000..328a1c1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.159E4EA0774FBCB0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.17FC61367B5BDF35.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.17FC61367B5BDF35.idx new file mode 100644 index 0000000..0d1b06f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.17FC61367B5BDF35.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.1F2F6C7DECB72042.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.1F2F6C7DECB72042.idx new file mode 100644 index 0000000..38fa035 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.1F2F6C7DECB72042.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.21FBEA0C5D465C30.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.21FBEA0C5D465C30.idx new file mode 100644 index 0000000..eb5232d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.21FBEA0C5D465C30.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.3C814766532174C3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.3C814766532174C3.idx new file mode 100644 index 0000000..5a631d6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.3C814766532174C3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.435DD976A571E700.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.435DD976A571E700.idx new file mode 100644 index 0000000..f1bd506 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.435DD976A571E700.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.43D6FEE600F98EB9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.43D6FEE600F98EB9.idx new file mode 100644 index 0000000..1b1f139 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.43D6FEE600F98EB9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4CDCDF1F976BB156.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4CDCDF1F976BB156.idx new file mode 100644 index 0000000..2a37c8f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4CDCDF1F976BB156.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4F23AE39150773FF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4F23AE39150773FF.idx new file mode 100644 index 0000000..1dadd84 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4F23AE39150773FF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.66CB3FBA4B694B1F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.66CB3FBA4B694B1F.idx new file mode 100644 index 0000000..2fbd493 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.66CB3FBA4B694B1F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6E5CCF069C2E488D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6E5CCF069C2E488D.idx new file mode 100644 index 0000000..ea41c5f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6E5CCF069C2E488D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84B7CCE471B4CB96.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84B7CCE471B4CB96.idx new file mode 100644 index 0000000..4d990fb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84B7CCE471B4CB96.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.8B5CD77086B91964.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.8B5CD77086B91964.idx new file mode 100644 index 0000000..9684203 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.8B5CD77086B91964.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A0F2B805EFA0805D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A0F2B805EFA0805D.idx new file mode 100644 index 0000000..10c46af Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A0F2B805EFA0805D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A18A9F3A11ED5B1F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A18A9F3A11ED5B1F.idx new file mode 100644 index 0000000..2af3827 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A18A9F3A11ED5B1F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B4402C910063E584.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B4402C910063E584.idx new file mode 100644 index 0000000..120837f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B4402C910063E584.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B5D2C1E846A17EE9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B5D2C1E846A17EE9.idx new file mode 100644 index 0000000..1bd82cb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B5D2C1E846A17EE9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BDB96DE6C72C0152.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BDB96DE6C72C0152.idx new file mode 100644 index 0000000..5180298 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BDB96DE6C72C0152.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C477FFF5B477514C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C477FFF5B477514C.idx new file mode 100644 index 0000000..b633a62 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C477FFF5B477514C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C5F4AEEEA98524A1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C5F4AEEEA98524A1.idx new file mode 100644 index 0000000..c1544bd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C5F4AEEEA98524A1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.CB9922331B0A4345.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.CB9922331B0A4345.idx new file mode 100644 index 0000000..7a598da Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.CB9922331B0A4345.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.D949F082E0F2B9C2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.D949F082E0F2B9C2.idx new file mode 100644 index 0000000..6d07405 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.D949F082E0F2B9C2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.E947BFD5F08A6F42.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.E947BFD5F08A6F42.idx new file mode 100644 index 0000000..5bc74b0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.E947BFD5F08A6F42.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.F4C5E1B652F014D0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.F4C5E1B652F014D0.idx new file mode 100644 index 0000000..b04c9cc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.F4C5E1B652F014D0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.FE2DF92B870AA699.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.FE2DF92B870AA699.idx new file mode 100644 index 0000000..80787c0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.FE2DF92B870AA699.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.0FF02BBBE836B29F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.0FF02BBBE836B29F.idx new file mode 100644 index 0000000..48ed253 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.0FF02BBBE836B29F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.12F2D5AE6998D6AA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.12F2D5AE6998D6AA.idx new file mode 100644 index 0000000..54d6244 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.12F2D5AE6998D6AA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.15D14E728B2CC3EA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.15D14E728B2CC3EA.idx new file mode 100644 index 0000000..00029be Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.15D14E728B2CC3EA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1B8E6F00409CF75E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1B8E6F00409CF75E.idx new file mode 100644 index 0000000..35d907e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1B8E6F00409CF75E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.352614BE5EAC45C3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.352614BE5EAC45C3.idx new file mode 100644 index 0000000..e8ec784 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.352614BE5EAC45C3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.46EC33B29B4DDBD1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.46EC33B29B4DDBD1.idx new file mode 100644 index 0000000..aad6867 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.46EC33B29B4DDBD1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4B85F5194CEE107E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4B85F5194CEE107E.idx new file mode 100644 index 0000000..52710fc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4B85F5194CEE107E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C55B824C2E8A7A6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C55B824C2E8A7A6.idx new file mode 100644 index 0000000..c63d35c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C55B824C2E8A7A6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.5F9026ED9583B276.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.5F9026ED9583B276.idx new file mode 100644 index 0000000..1e811d0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.5F9026ED9583B276.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.6D1F076CCDAE9BFA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.6D1F076CCDAE9BFA.idx new file mode 100644 index 0000000..da69055 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.6D1F076CCDAE9BFA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.73745189C90C159B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.73745189C90C159B.idx new file mode 100644 index 0000000..db2ad92 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.73745189C90C159B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.7EDB4F725DBA8D38.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.7EDB4F725DBA8D38.idx new file mode 100644 index 0000000..7780de6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.7EDB4F725DBA8D38.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.80C3CD81F9345A13.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.80C3CD81F9345A13.idx new file mode 100644 index 0000000..9988cd9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.80C3CD81F9345A13.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.84EAC5E48F2FE493.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.84EAC5E48F2FE493.idx new file mode 100644 index 0000000..6be4370 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.84EAC5E48F2FE493.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.8F85A274799926A5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.8F85A274799926A5.idx new file mode 100644 index 0000000..1c0936d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.8F85A274799926A5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9729079E477750D0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9729079E477750D0.idx new file mode 100644 index 0000000..d380fd2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9729079E477750D0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9931D9E0DD116E66.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9931D9E0DD116E66.idx new file mode 100644 index 0000000..32a5767 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9931D9E0DD116E66.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.A10FDA8C6A61316E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.A10FDA8C6A61316E.idx new file mode 100644 index 0000000..cebc231 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.A10FDA8C6A61316E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.B5B058D4AF3D54D3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.B5B058D4AF3D54D3.idx new file mode 100644 index 0000000..5e5c1a1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.B5B058D4AF3D54D3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.C0CAA2324306247E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.C0CAA2324306247E.idx new file mode 100644 index 0000000..a90562f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.C0CAA2324306247E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D301833D8CBB7166.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D301833D8CBB7166.idx new file mode 100644 index 0000000..b04b2c9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D301833D8CBB7166.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D5F19C41CC25F579.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D5F19C41CC25F579.idx new file mode 100644 index 0000000..8145ee8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D5F19C41CC25F579.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DB6D2BD9F77AC242.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DB6D2BD9F77AC242.idx new file mode 100644 index 0000000..840ec7e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DB6D2BD9F77AC242.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E495BC03824A3F29.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E495BC03824A3F29.idx new file mode 100644 index 0000000..b940167 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E495BC03824A3F29.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E4F47559AA967B7E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E4F47559AA967B7E.idx new file mode 100644 index 0000000..27f9f7b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E4F47559AA967B7E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E9AA6260A711730C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E9AA6260A711730C.idx new file mode 100644 index 0000000..5e4525b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E9AA6260A711730C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.EC85267183BA4739.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.EC85267183BA4739.idx new file mode 100644 index 0000000..b4ea423 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.EC85267183BA4739.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.FC50EC6024E8E696.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.FC50EC6024E8E696.idx new file mode 100644 index 0000000..f023e0e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.FC50EC6024E8E696.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0295B408ACFB310D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0295B408ACFB310D.idx new file mode 100644 index 0000000..43e80ff Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0295B408ACFB310D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0ACFF6DDBA8C6087.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0ACFF6DDBA8C6087.idx new file mode 100644 index 0000000..46cb43a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0ACFF6DDBA8C6087.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CAFC440D2752ED4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CAFC440D2752ED4.idx new file mode 100644 index 0000000..4f5528d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CAFC440D2752ED4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.16FE8A713DC8341E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.16FE8A713DC8341E.idx new file mode 100644 index 0000000..91a895c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.16FE8A713DC8341E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.17BE39D5C502AC74.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.17BE39D5C502AC74.idx new file mode 100644 index 0000000..275c7b8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.17BE39D5C502AC74.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1DAA7F636DEA1ECC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1DAA7F636DEA1ECC.idx new file mode 100644 index 0000000..608e74d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1DAA7F636DEA1ECC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.24FCB1CA4898DD85.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.24FCB1CA4898DD85.idx new file mode 100644 index 0000000..bfba507 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.24FCB1CA4898DD85.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.430B0588F82B11B6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.430B0588F82B11B6.idx new file mode 100644 index 0000000..f117da5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.430B0588F82B11B6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.447EF70A39008634.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.447EF70A39008634.idx new file mode 100644 index 0000000..a650314 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.447EF70A39008634.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4E4BA094C3B5958C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4E4BA094C3B5958C.idx new file mode 100644 index 0000000..d8fe58f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4E4BA094C3B5958C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.50A325F7EFFCCA13.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.50A325F7EFFCCA13.idx new file mode 100644 index 0000000..8802469 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.50A325F7EFFCCA13.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.5E123E6B3F1A7EF8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.5E123E6B3F1A7EF8.idx new file mode 100644 index 0000000..b6824a2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.5E123E6B3F1A7EF8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.62D36596A2B97151.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.62D36596A2B97151.idx new file mode 100644 index 0000000..2e83e9a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.62D36596A2B97151.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6C2F9C48044F717E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6C2F9C48044F717E.idx new file mode 100644 index 0000000..8b2a903 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6C2F9C48044F717E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6CB9566D81EEE046.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6CB9566D81EEE046.idx new file mode 100644 index 0000000..42fd763 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6CB9566D81EEE046.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6D08218FAF6FB0B9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6D08218FAF6FB0B9.idx new file mode 100644 index 0000000..06a1fc1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6D08218FAF6FB0B9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.867EE80105F48156.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.867EE80105F48156.idx new file mode 100644 index 0000000..0d7deb8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.867EE80105F48156.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.8FA8BCE339C0EF92.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.8FA8BCE339C0EF92.idx new file mode 100644 index 0000000..d851c2d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.8FA8BCE339C0EF92.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.936A4E412A3C5C81.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.936A4E412A3C5C81.idx new file mode 100644 index 0000000..7c9babd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.936A4E412A3C5C81.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A848C17439F5EC22.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A848C17439F5EC22.idx new file mode 100644 index 0000000..da3c745 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A848C17439F5EC22.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B0BF6AF822831F76.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B0BF6AF822831F76.idx new file mode 100644 index 0000000..df44e4c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B0BF6AF822831F76.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B8DBC1428E83F0BC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B8DBC1428E83F0BC.idx new file mode 100644 index 0000000..4c9deee Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B8DBC1428E83F0BC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BE0B0DC2DC6AC8E6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BE0B0DC2DC6AC8E6.idx new file mode 100644 index 0000000..9c49c0b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BE0B0DC2DC6AC8E6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BFD8F02541594309.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BFD8F02541594309.idx new file mode 100644 index 0000000..cd63b9e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BFD8F02541594309.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.C5570B20D17AEA63.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.C5570B20D17AEA63.idx new file mode 100644 index 0000000..15eb79e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.C5570B20D17AEA63.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.CEF9DC55FB896092.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.CEF9DC55FB896092.idx new file mode 100644 index 0000000..9d6390e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.CEF9DC55FB896092.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.DED7889B2C7F1DEB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.DED7889B2C7F1DEB.idx new file mode 100644 index 0000000..b0f355f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.DED7889B2C7F1DEB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.EAF06B11FF85053C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.EAF06B11FF85053C.idx new file mode 100644 index 0000000..0c17e82 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.EAF06B11FF85053C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0293D21037AFBEFB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0293D21037AFBEFB.idx new file mode 100644 index 0000000..cf87002 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0293D21037AFBEFB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0FF4EA9642B135BD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0FF4EA9642B135BD.idx new file mode 100644 index 0000000..ae780a0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0FF4EA9642B135BD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12C2BE085D212D97.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12C2BE085D212D97.idx new file mode 100644 index 0000000..eeb9142 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12C2BE085D212D97.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.1D93FFB988D3F5E6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.1D93FFB988D3F5E6.idx new file mode 100644 index 0000000..6d09a32 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.1D93FFB988D3F5E6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.422FBF2C4193F7CA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.422FBF2C4193F7CA.idx new file mode 100644 index 0000000..c1c4c90 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.422FBF2C4193F7CA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.46380D0DEF804F61.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.46380D0DEF804F61.idx new file mode 100644 index 0000000..220ddfa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.46380D0DEF804F61.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.48F2BB3EF222C37B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.48F2BB3EF222C37B.idx new file mode 100644 index 0000000..f6ded44 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.48F2BB3EF222C37B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.4B3B2D86C2119BA6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.4B3B2D86C2119BA6.idx new file mode 100644 index 0000000..4fd0ea6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.4B3B2D86C2119BA6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.50F760B747D27C10.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.50F760B747D27C10.idx new file mode 100644 index 0000000..f3757a3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.50F760B747D27C10.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5B7012A934E8225C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5B7012A934E8225C.idx new file mode 100644 index 0000000..e4d323e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5B7012A934E8225C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.68DAD09911B6114D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.68DAD09911B6114D.idx new file mode 100644 index 0000000..4a34195 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.68DAD09911B6114D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.7703D10A6DA6FD9B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.7703D10A6DA6FD9B.idx new file mode 100644 index 0000000..ebe52a9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.7703D10A6DA6FD9B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.7D2CCFB9BF9C30BE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.7D2CCFB9BF9C30BE.idx new file mode 100644 index 0000000..57f7610 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.7D2CCFB9BF9C30BE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.84267E0D689F3508.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.84267E0D689F3508.idx new file mode 100644 index 0000000..537fe1b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.84267E0D689F3508.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.892784B3B2532D43.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.892784B3B2532D43.idx new file mode 100644 index 0000000..79ab827 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.892784B3B2532D43.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.97C5CD89F86066AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.97C5CD89F86066AB.idx new file mode 100644 index 0000000..fc19014 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.97C5CD89F86066AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.9BEBB085CAA2F562.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.9BEBB085CAA2F562.idx new file mode 100644 index 0000000..49c02ac Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.9BEBB085CAA2F562.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A52F92294FF3B06A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A52F92294FF3B06A.idx new file mode 100644 index 0000000..3ccb08e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A52F92294FF3B06A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A68CBBBC088F9C9B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A68CBBBC088F9C9B.idx new file mode 100644 index 0000000..2780d4e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A68CBBBC088F9C9B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.BB6546F7F1AFEA1D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.BB6546F7F1AFEA1D.idx new file mode 100644 index 0000000..f49ea6a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.BB6546F7F1AFEA1D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C511108EF70A7F82.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C511108EF70A7F82.idx new file mode 100644 index 0000000..65221a3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C511108EF70A7F82.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C579BC94896D6329.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C579BC94896D6329.idx new file mode 100644 index 0000000..d61f49f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C579BC94896D6329.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C753836620400F12.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C753836620400F12.idx new file mode 100644 index 0000000..9618ec7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C753836620400F12.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.D279A52743E044E7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.D279A52743E044E7.idx new file mode 100644 index 0000000..620ca82 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.D279A52743E044E7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.DA57D864DD266B49.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.DA57D864DD266B49.idx new file mode 100644 index 0000000..cd82482 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.DA57D864DD266B49.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E211115AAC8F2E57.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E211115AAC8F2E57.idx new file mode 100644 index 0000000..e643955 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E211115AAC8F2E57.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E27F28C4992AD2A2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E27F28C4992AD2A2.idx new file mode 100644 index 0000000..2da816c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E27F28C4992AD2A2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.F3843DC992879CC1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.F3843DC992879CC1.idx new file mode 100644 index 0000000..a2a0c92 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.F3843DC992879CC1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.02B10859066D3A28.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.02B10859066D3A28.idx new file mode 100644 index 0000000..2db6ae9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.02B10859066D3A28.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.081C8FB30E94A43E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.081C8FB30E94A43E.idx new file mode 100644 index 0000000..2c81dfc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.081C8FB30E94A43E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0CE99A6792544C70.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0CE99A6792544C70.idx new file mode 100644 index 0000000..8e518f4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0CE99A6792544C70.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.13DEACA09F0F4BB0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.13DEACA09F0F4BB0.idx new file mode 100644 index 0000000..2276d31 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.13DEACA09F0F4BB0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.14269FCB38695F1A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.14269FCB38695F1A.idx new file mode 100644 index 0000000..846d9d8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.14269FCB38695F1A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.35212716A089719D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.35212716A089719D.idx new file mode 100644 index 0000000..93de7e8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.35212716A089719D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.4F7DC9CFD32867B6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.4F7DC9CFD32867B6.idx new file mode 100644 index 0000000..2b907dd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.4F7DC9CFD32867B6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.50B0F374B5237872.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.50B0F374B5237872.idx new file mode 100644 index 0000000..cba6bf4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.50B0F374B5237872.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.57A3000EB87953E1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.57A3000EB87953E1.idx new file mode 100644 index 0000000..c899c6b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.57A3000EB87953E1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.698AF6C91968F1EB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.698AF6C91968F1EB.idx new file mode 100644 index 0000000..73f313e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.698AF6C91968F1EB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7374B481C84A476E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7374B481C84A476E.idx new file mode 100644 index 0000000..b49bc4f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7374B481C84A476E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7AB54FD6D6362294.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7AB54FD6D6362294.idx new file mode 100644 index 0000000..b93d945 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7AB54FD6D6362294.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7C362E36BD0DF779.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7C362E36BD0DF779.idx new file mode 100644 index 0000000..05cc3e5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7C362E36BD0DF779.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AED2AB7A56B1C9E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AED2AB7A56B1C9E.idx new file mode 100644 index 0000000..e2b27bf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AED2AB7A56B1C9E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AF041E2E735AE69.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AF041E2E735AE69.idx new file mode 100644 index 0000000..c92767a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AF041E2E735AE69.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9EF6ED165EAE8B30.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9EF6ED165EAE8B30.idx new file mode 100644 index 0000000..edcd47b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9EF6ED165EAE8B30.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A359C88785324722.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A359C88785324722.idx new file mode 100644 index 0000000..1582120 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A359C88785324722.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A393B0BBA3B19B07.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A393B0BBA3B19B07.idx new file mode 100644 index 0000000..8a97e36 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A393B0BBA3B19B07.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AD4BB16BF0564EB0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AD4BB16BF0564EB0.idx new file mode 100644 index 0000000..960ce09 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AD4BB16BF0564EB0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AF7698750E0C7564.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AF7698750E0C7564.idx new file mode 100644 index 0000000..dbf7783 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AF7698750E0C7564.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.B3033AB6186227DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.B3033AB6186227DC.idx new file mode 100644 index 0000000..62f5bfb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.B3033AB6186227DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BF441770881F3699.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BF441770881F3699.idx new file mode 100644 index 0000000..ca0c64f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BF441770881F3699.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CB2C11239A744D21.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CB2C11239A744D21.idx new file mode 100644 index 0000000..0f6d2e5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CB2C11239A744D21.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBA299038A16F556.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBA299038A16F556.idx new file mode 100644 index 0000000..6642dad Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBA299038A16F556.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBD6D274BDE7297F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBD6D274BDE7297F.idx new file mode 100644 index 0000000..c3321c9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBD6D274BDE7297F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CD00C2F62737F4D6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CD00C2F62737F4D6.idx new file mode 100644 index 0000000..18bfedb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CD00C2F62737F4D6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.EE85993CC71AF0D5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.EE85993CC71AF0D5.idx new file mode 100644 index 0000000..f1b2c8a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.EE85993CC71AF0D5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.F239CFDAD3B7FD5E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.F239CFDAD3B7FD5E.idx new file mode 100644 index 0000000..6e300d7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.F239CFDAD3B7FD5E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.13B57F39386AB840.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.13B57F39386AB840.idx new file mode 100644 index 0000000..d52e956 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.13B57F39386AB840.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1ACF72793C066634.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1ACF72793C066634.idx new file mode 100644 index 0000000..d724aac Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1ACF72793C066634.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1B34FE6E3A4F3997.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1B34FE6E3A4F3997.idx new file mode 100644 index 0000000..9523019 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1B34FE6E3A4F3997.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1CB930F4FDC9CD54.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1CB930F4FDC9CD54.idx new file mode 100644 index 0000000..d5a5660 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1CB930F4FDC9CD54.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1F6913E22C446814.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1F6913E22C446814.idx new file mode 100644 index 0000000..16beb7a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1F6913E22C446814.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.2CA5A41D0A3DD49D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.2CA5A41D0A3DD49D.idx new file mode 100644 index 0000000..595577b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.2CA5A41D0A3DD49D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.3453271812402E77.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.3453271812402E77.idx new file mode 100644 index 0000000..1c146c5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.3453271812402E77.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.58779DC219F18DEF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.58779DC219F18DEF.idx new file mode 100644 index 0000000..224cd30 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.58779DC219F18DEF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.5ABE463AF0B1970C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.5ABE463AF0B1970C.idx new file mode 100644 index 0000000..24ef33e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.5ABE463AF0B1970C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7BCEFBB9F3927DCA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7BCEFBB9F3927DCA.idx new file mode 100644 index 0000000..0fda5e6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7BCEFBB9F3927DCA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7DE85784BE228279.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7DE85784BE228279.idx new file mode 100644 index 0000000..1938841 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7DE85784BE228279.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.887B4AD1170D229C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.887B4AD1170D229C.idx new file mode 100644 index 0000000..b7ee93d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.887B4AD1170D229C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.8ACE344AE065084A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.8ACE344AE065084A.idx new file mode 100644 index 0000000..bf677e8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.8ACE344AE065084A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.91838F52A6EE62BE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.91838F52A6EE62BE.idx new file mode 100644 index 0000000..6ef4c32 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.91838F52A6EE62BE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.A6C70D14CE510577.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.A6C70D14CE510577.idx new file mode 100644 index 0000000..d737ba5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.A6C70D14CE510577.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE1BBF4A569E1113.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE1BBF4A569E1113.idx new file mode 100644 index 0000000..24605d0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE1BBF4A569E1113.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE6A6680D73D4007.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE6A6680D73D4007.idx new file mode 100644 index 0000000..47736eb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE6A6680D73D4007.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B132F6E968B92537.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B132F6E968B92537.idx new file mode 100644 index 0000000..f1f9b46 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B132F6E968B92537.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B983F0A608830234.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B983F0A608830234.idx new file mode 100644 index 0000000..0bdf8a5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B983F0A608830234.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C3CC9C35878A0DC6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C3CC9C35878A0DC6.idx new file mode 100644 index 0000000..0a64503 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C3CC9C35878A0DC6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C74484AB2A9F9230.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C74484AB2A9F9230.idx new file mode 100644 index 0000000..3d63d94 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C74484AB2A9F9230.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.D4A2D5D81C663135.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.D4A2D5D81C663135.idx new file mode 100644 index 0000000..80eb7c9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.D4A2D5D81C663135.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA2C001009763615.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA2C001009763615.idx new file mode 100644 index 0000000..e30120b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA2C001009763615.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E75ED6B6F6DD2760.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E75ED6B6F6DD2760.idx new file mode 100644 index 0000000..39a2b07 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E75ED6B6F6DD2760.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.ED4B1B5DDC12B363.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.ED4B1B5DDC12B363.idx new file mode 100644 index 0000000..1d693df Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.ED4B1B5DDC12B363.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EEF9D542F8AE3729.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EEF9D542F8AE3729.idx new file mode 100644 index 0000000..914392f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EEF9D542F8AE3729.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.F92577448A817480.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.F92577448A817480.idx new file mode 100644 index 0000000..83ba885 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.F92577448A817480.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.FCEBAF7B082264A5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.FCEBAF7B082264A5.idx new file mode 100644 index 0000000..064ff6e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.FCEBAF7B082264A5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.02B5DCFF51B6C224.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.02B5DCFF51B6C224.idx new file mode 100644 index 0000000..8a1f181 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.02B5DCFF51B6C224.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.0B75FDADF7A0D64F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.0B75FDADF7A0D64F.idx new file mode 100644 index 0000000..37073cd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.0B75FDADF7A0D64F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.12AC1F286B8B924B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.12AC1F286B8B924B.idx new file mode 100644 index 0000000..a6b8908 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.12AC1F286B8B924B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.17EDD925359E25B6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.17EDD925359E25B6.idx new file mode 100644 index 0000000..21fea98 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.17EDD925359E25B6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.2D921DA4CDA1B06C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.2D921DA4CDA1B06C.idx new file mode 100644 index 0000000..813684b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.2D921DA4CDA1B06C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.31D240BE174A22B9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.31D240BE174A22B9.idx new file mode 100644 index 0000000..305e96b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.31D240BE174A22B9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4E5F137000C4CE71.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4E5F137000C4CE71.idx new file mode 100644 index 0000000..9f251b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4E5F137000C4CE71.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.5ADBA110D42F4B24.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.5ADBA110D42F4B24.idx new file mode 100644 index 0000000..fb94870 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.5ADBA110D42F4B24.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6B9F6D80D5D1ECDB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6B9F6D80D5D1ECDB.idx new file mode 100644 index 0000000..60171aa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6B9F6D80D5D1ECDB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6E8DB796CDE4BE19.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6E8DB796CDE4BE19.idx new file mode 100644 index 0000000..f0062ce Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6E8DB796CDE4BE19.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.7FC5C382E5253F6C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.7FC5C382E5253F6C.idx new file mode 100644 index 0000000..a99f9df Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.7FC5C382E5253F6C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.83C6EFDD85C3811F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.83C6EFDD85C3811F.idx new file mode 100644 index 0000000..eabc3c0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.83C6EFDD85C3811F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.8AFC89142C367F6C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.8AFC89142C367F6C.idx new file mode 100644 index 0000000..627c9f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.8AFC89142C367F6C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.97E07D9671A7A31E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.97E07D9671A7A31E.idx new file mode 100644 index 0000000..02331e4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.97E07D9671A7A31E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.989E7CA7977BA98A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.989E7CA7977BA98A.idx new file mode 100644 index 0000000..325e0c5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.989E7CA7977BA98A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9B3995B0EBB5AE31.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9B3995B0EBB5AE31.idx new file mode 100644 index 0000000..10b46fe Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9B3995B0EBB5AE31.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9D667A9682013643.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9D667A9682013643.idx new file mode 100644 index 0000000..f5bfd59 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9D667A9682013643.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9FAA0C35A898DE52.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9FAA0C35A898DE52.idx new file mode 100644 index 0000000..8220ca5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9FAA0C35A898DE52.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A8806E293180400D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A8806E293180400D.idx new file mode 100644 index 0000000..cd1b743 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A8806E293180400D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BAAB531BD1DE502B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BAAB531BD1DE502B.idx new file mode 100644 index 0000000..81e6263 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BAAB531BD1DE502B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BC1ECCF91BCA93CE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BC1ECCF91BCA93CE.idx new file mode 100644 index 0000000..e6bcccd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BC1ECCF91BCA93CE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C87C649C9DFE5F42.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C87C649C9DFE5F42.idx new file mode 100644 index 0000000..cad3fc7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C87C649C9DFE5F42.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.CD1EE03BBC71AF83.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.CD1EE03BBC71AF83.idx new file mode 100644 index 0000000..65f9e27 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.CD1EE03BBC71AF83.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D19685A7F0696866.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D19685A7F0696866.idx new file mode 100644 index 0000000..fe24dc3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D19685A7F0696866.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D91C1CC6905C4FCF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D91C1CC6905C4FCF.idx new file mode 100644 index 0000000..b570b4f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D91C1CC6905C4FCF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.EA42B688780196EC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.EA42B688780196EC.idx new file mode 100644 index 0000000..05a0114 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.EA42B688780196EC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA1946E33FD03BFE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA1946E33FD03BFE.idx new file mode 100644 index 0000000..1b5e00d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA1946E33FD03BFE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA9A6C631E36B50E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA9A6C631E36B50E.idx new file mode 100644 index 0000000..1fa3a10 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA9A6C631E36B50E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.006DEE119D8F18C3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.006DEE119D8F18C3.idx new file mode 100644 index 0000000..49f2eee Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.006DEE119D8F18C3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.04A187E737916B99.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.04A187E737916B99.idx new file mode 100644 index 0000000..276a54e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.04A187E737916B99.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.0F3B3ECFDF043B04.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.0F3B3ECFDF043B04.idx new file mode 100644 index 0000000..c3dfcaa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.0F3B3ECFDF043B04.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.263EBD27605F1D7B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.263EBD27605F1D7B.idx new file mode 100644 index 0000000..95568e0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.263EBD27605F1D7B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.2E069F2080E4AF4A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.2E069F2080E4AF4A.idx new file mode 100644 index 0000000..4f34c0f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.2E069F2080E4AF4A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C4D15A6B01D7FB7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C4D15A6B01D7FB7.idx new file mode 100644 index 0000000..7acd1ac Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C4D15A6B01D7FB7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.4E657D2F4DAF4D48.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.4E657D2F4DAF4D48.idx new file mode 100644 index 0000000..bb414ed Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.4E657D2F4DAF4D48.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.523E385F9ECB9D9A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.523E385F9ECB9D9A.idx new file mode 100644 index 0000000..b5ffe80 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.523E385F9ECB9D9A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.583337A673E7CC16.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.583337A673E7CC16.idx new file mode 100644 index 0000000..9defd7b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.583337A673E7CC16.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5913AA42BBE10AF7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5913AA42BBE10AF7.idx new file mode 100644 index 0000000..af752f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5913AA42BBE10AF7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61075F2613DAA5A7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61075F2613DAA5A7.idx new file mode 100644 index 0000000..934a9a8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61075F2613DAA5A7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61570EBC9415C99D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61570EBC9415C99D.idx new file mode 100644 index 0000000..f9ac2b5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61570EBC9415C99D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.63BE7DF8E17D95B9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.63BE7DF8E17D95B9.idx new file mode 100644 index 0000000..8f3c566 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.63BE7DF8E17D95B9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6743404ECE45185F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6743404ECE45185F.idx new file mode 100644 index 0000000..a48f4df Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6743404ECE45185F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.679E53222A423379.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.679E53222A423379.idx new file mode 100644 index 0000000..24827cc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.679E53222A423379.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6A6381494FD03A37.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6A6381494FD03A37.idx new file mode 100644 index 0000000..4f3f398 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6A6381494FD03A37.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6BDC64EFE7091878.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6BDC64EFE7091878.idx new file mode 100644 index 0000000..10168bb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6BDC64EFE7091878.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7641341ACAB94DBD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7641341ACAB94DBD.idx new file mode 100644 index 0000000..dc909f8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7641341ACAB94DBD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7965E6BEA1DA2B19.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7965E6BEA1DA2B19.idx new file mode 100644 index 0000000..c311891 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7965E6BEA1DA2B19.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.796726E45AA1246B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.796726E45AA1246B.idx new file mode 100644 index 0000000..b68b897 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.796726E45AA1246B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7B2022D17BA29FE3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7B2022D17BA29FE3.idx new file mode 100644 index 0000000..785e688 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7B2022D17BA29FE3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.8190D256A75B8012.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.8190D256A75B8012.idx new file mode 100644 index 0000000..2aa4022 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.8190D256A75B8012.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.9017A76F07A54881.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.9017A76F07A54881.idx new file mode 100644 index 0000000..d6275a9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.9017A76F07A54881.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CE8B364723DA39D5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CE8B364723DA39D5.idx new file mode 100644 index 0000000..67418c2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CE8B364723DA39D5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.D1F0AEB108085C00.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.D1F0AEB108085C00.idx new file mode 100644 index 0000000..85148d0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.D1F0AEB108085C00.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.DE99D8C375C8DD89.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.DE99D8C375C8DD89.idx new file mode 100644 index 0000000..b1675c0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.DE99D8C375C8DD89.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.ED7B4FB68AB95633.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.ED7B4FB68AB95633.idx new file mode 100644 index 0000000..2a03d96 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.ED7B4FB68AB95633.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.EEC598B7960485F1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.EEC598B7960485F1.idx new file mode 100644 index 0000000..c1dd4e6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.EEC598B7960485F1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.0FE1CA65E4550310.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.0FE1CA65E4550310.idx new file mode 100644 index 0000000..46f74fe Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.0FE1CA65E4550310.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.132765EB17024A6C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.132765EB17024A6C.idx new file mode 100644 index 0000000..845a6f9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.132765EB17024A6C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15452AF2A7414FB9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15452AF2A7414FB9.idx new file mode 100644 index 0000000..7e95165 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15452AF2A7414FB9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15981245BD70DDD7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15981245BD70DDD7.idx new file mode 100644 index 0000000..75719a8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15981245BD70DDD7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1A8B2F869FF84FDD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1A8B2F869FF84FDD.idx new file mode 100644 index 0000000..75ad4a2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1A8B2F869FF84FDD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1B4B3890C79ADE2C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1B4B3890C79ADE2C.idx new file mode 100644 index 0000000..67bc919 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1B4B3890C79ADE2C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1D2ECE70B94F5FD9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1D2ECE70B94F5FD9.idx new file mode 100644 index 0000000..2023fb3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1D2ECE70B94F5FD9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.252B7547065D6AC5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.252B7547065D6AC5.idx new file mode 100644 index 0000000..3aadc5f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.252B7547065D6AC5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3495BB69547DA05C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3495BB69547DA05C.idx new file mode 100644 index 0000000..229f8c7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3495BB69547DA05C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3F965096F3A23BD0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3F965096F3A23BD0.idx new file mode 100644 index 0000000..2d7a9b4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3F965096F3A23BD0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.51D9E587F0A11894.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.51D9E587F0A11894.idx new file mode 100644 index 0000000..6e1b8b6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.51D9E587F0A11894.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.559CE5F6F8474800.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.559CE5F6F8474800.idx new file mode 100644 index 0000000..5b9025e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.559CE5F6F8474800.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6B514C89B5B87F68.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6B514C89B5B87F68.idx new file mode 100644 index 0000000..8d9d34c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6B514C89B5B87F68.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6E2EBA30C4900AC8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6E2EBA30C4900AC8.idx new file mode 100644 index 0000000..df4ec98 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6E2EBA30C4900AC8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.76A4300C12056F56.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.76A4300C12056F56.idx new file mode 100644 index 0000000..28056ec Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.76A4300C12056F56.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8108CAEC40A01614.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8108CAEC40A01614.idx new file mode 100644 index 0000000..6cf63f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8108CAEC40A01614.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.87FDEEAF086EF218.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.87FDEEAF086EF218.idx new file mode 100644 index 0000000..dbd2702 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.87FDEEAF086EF218.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E2BA2697CDA42E9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E2BA2697CDA42E9.idx new file mode 100644 index 0000000..4a60e3c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E2BA2697CDA42E9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.93B917E5A9267ED3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.93B917E5A9267ED3.idx new file mode 100644 index 0000000..95976e0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.93B917E5A9267ED3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.9412431A97E3E61C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.9412431A97E3E61C.idx new file mode 100644 index 0000000..5875417 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.9412431A97E3E61C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A2BC6F0A09F63B7E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A2BC6F0A09F63B7E.idx new file mode 100644 index 0000000..eb87c62 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A2BC6F0A09F63B7E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A65BA0C503531B39.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A65BA0C503531B39.idx new file mode 100644 index 0000000..da713a1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A65BA0C503531B39.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CD2C1F18E50A8121.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CD2C1F18E50A8121.idx new file mode 100644 index 0000000..a7fbced Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CD2C1F18E50A8121.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE108E8B878C8B9D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE108E8B878C8B9D.idx new file mode 100644 index 0000000..1ef1e2e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE108E8B878C8B9D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE2956329B568F71.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE2956329B568F71.idx new file mode 100644 index 0000000..483da2c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE2956329B568F71.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F36C93C7CDC73185.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F36C93C7CDC73185.idx new file mode 100644 index 0000000..f9ff344 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F36C93C7CDC73185.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F577D3ECA8BD97A1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F577D3ECA8BD97A1.idx new file mode 100644 index 0000000..7cd9221 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F577D3ECA8BD97A1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.FBA169789AB5BF53.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.FBA169789AB5BF53.idx new file mode 100644 index 0000000..89a4a37 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.FBA169789AB5BF53.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0647D44C768478F7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0647D44C768478F7.idx new file mode 100644 index 0000000..e199b6e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0647D44C768478F7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0A3B73D9D5ACEF6E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0A3B73D9D5ACEF6E.idx new file mode 100644 index 0000000..7868cc8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0A3B73D9D5ACEF6E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0BD2B29111B1A92C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0BD2B29111B1A92C.idx new file mode 100644 index 0000000..dbddecb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0BD2B29111B1A92C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0D18E5EFE864EBB1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0D18E5EFE864EBB1.idx new file mode 100644 index 0000000..b609698 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0D18E5EFE864EBB1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1A096CBD220DDA21.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1A096CBD220DDA21.idx new file mode 100644 index 0000000..3f482b7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1A096CBD220DDA21.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2FC9A1ADF12508AC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2FC9A1ADF12508AC.idx new file mode 100644 index 0000000..7d95878 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2FC9A1ADF12508AC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.356112AC3ACD6EDE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.356112AC3ACD6EDE.idx new file mode 100644 index 0000000..e5cc6e4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.356112AC3ACD6EDE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.4386EE16C840DDBE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.4386EE16C840DDBE.idx new file mode 100644 index 0000000..9c3a17a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.4386EE16C840DDBE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5606249C69446478.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5606249C69446478.idx new file mode 100644 index 0000000..11f064d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5606249C69446478.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.57A7217C7ACF4FBD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.57A7217C7ACF4FBD.idx new file mode 100644 index 0000000..c9583ec Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.57A7217C7ACF4FBD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5AF12B87C45A6532.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5AF12B87C45A6532.idx new file mode 100644 index 0000000..b825da8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5AF12B87C45A6532.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6C5E776C15503ADD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6C5E776C15503ADD.idx new file mode 100644 index 0000000..b9e6fe8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6C5E776C15503ADD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.71E64F4C2D585807.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.71E64F4C2D585807.idx new file mode 100644 index 0000000..3213ea2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.71E64F4C2D585807.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7298A68C5C4B067C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7298A68C5C4B067C.idx new file mode 100644 index 0000000..57efecd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7298A68C5C4B067C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.82ED994EFCA4FEC3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.82ED994EFCA4FEC3.idx new file mode 100644 index 0000000..fb37c0f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.82ED994EFCA4FEC3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.8EFD43A0C9A9C7A2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.8EFD43A0C9A9C7A2.idx new file mode 100644 index 0000000..280e102 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.8EFD43A0C9A9C7A2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.9762832B3B802D3C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.9762832B3B802D3C.idx new file mode 100644 index 0000000..1969a19 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.9762832B3B802D3C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.B10B210519F4F0DE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.B10B210519F4F0DE.idx new file mode 100644 index 0000000..291f3b3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.B10B210519F4F0DE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.B424BDC207B1DC64.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.B424BDC207B1DC64.idx new file mode 100644 index 0000000..6f5692c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.B424BDC207B1DC64.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C408DF73D11E35E6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C408DF73D11E35E6.idx new file mode 100644 index 0000000..587054c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C408DF73D11E35E6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C52951EE85011D91.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C52951EE85011D91.idx new file mode 100644 index 0000000..e056541 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C52951EE85011D91.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C91E01B65D9FEB93.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C91E01B65D9FEB93.idx new file mode 100644 index 0000000..c10999f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C91E01B65D9FEB93.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C957F67C4939F9A8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C957F67C4939F9A8.idx new file mode 100644 index 0000000..d868d18 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C957F67C4939F9A8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.CB3E1B5C9A013919.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.CB3E1B5C9A013919.idx new file mode 100644 index 0000000..2a843d6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.CB3E1B5C9A013919.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D2BC1C258EE84177.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D2BC1C258EE84177.idx new file mode 100644 index 0000000..9778ae3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D2BC1C258EE84177.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D5465679B973F25E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D5465679B973F25E.idx new file mode 100644 index 0000000..f4b82fc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D5465679B973F25E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E61E07E1FF12D56F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E61E07E1FF12D56F.idx new file mode 100644 index 0000000..6070c39 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E61E07E1FF12D56F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E94477D469C9ECED.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E94477D469C9ECED.idx new file mode 100644 index 0000000..b61f7cb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E94477D469C9ECED.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.004BB878E4871745.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.004BB878E4871745.idx new file mode 100644 index 0000000..270d9ce Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.004BB878E4871745.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.066D0AFA36450C33.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.066D0AFA36450C33.idx new file mode 100644 index 0000000..da26f00 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.066D0AFA36450C33.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1202E59F24CCCB7C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1202E59F24CCCB7C.idx new file mode 100644 index 0000000..d54ded3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1202E59F24CCCB7C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.12B33C8031D3A854.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.12B33C8031D3A854.idx new file mode 100644 index 0000000..618787f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.12B33C8031D3A854.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.145E7A4992BBA308.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.145E7A4992BBA308.idx new file mode 100644 index 0000000..039c37d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.145E7A4992BBA308.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.15919291810148F3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.15919291810148F3.idx new file mode 100644 index 0000000..0e2f2a8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.15919291810148F3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1AE0E632985F89CC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1AE0E632985F89CC.idx new file mode 100644 index 0000000..7e81e5a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1AE0E632985F89CC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.342EC3D8FF9022AA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.342EC3D8FF9022AA.idx new file mode 100644 index 0000000..ebeb0a8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.342EC3D8FF9022AA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3B3A9B2CC64F1EEF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3B3A9B2CC64F1EEF.idx new file mode 100644 index 0000000..637794e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3B3A9B2CC64F1EEF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3C17EE90950A0EE1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3C17EE90950A0EE1.idx new file mode 100644 index 0000000..a13dc88 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3C17EE90950A0EE1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3CFD8297AAC5513D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3CFD8297AAC5513D.idx new file mode 100644 index 0000000..9476031 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3CFD8297AAC5513D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3D9D951F643C7474.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3D9D951F643C7474.idx new file mode 100644 index 0000000..78f8320 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3D9D951F643C7474.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.458520997E093A12.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.458520997E093A12.idx new file mode 100644 index 0000000..2b16bc4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.458520997E093A12.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4D151F5AD32916AF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4D151F5AD32916AF.idx new file mode 100644 index 0000000..c4f47ba Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4D151F5AD32916AF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.53645AEB15141F42.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.53645AEB15141F42.idx new file mode 100644 index 0000000..1e0343d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.53645AEB15141F42.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.54E1EB89C5FB1F12.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.54E1EB89C5FB1F12.idx new file mode 100644 index 0000000..a0a4274 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.54E1EB89C5FB1F12.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.5852B9A611C5BA21.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.5852B9A611C5BA21.idx new file mode 100644 index 0000000..ed70fbe Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.5852B9A611C5BA21.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.69B27BE471610F7E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.69B27BE471610F7E.idx new file mode 100644 index 0000000..44c2183 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.69B27BE471610F7E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.70A6DC20D8BF9E2E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.70A6DC20D8BF9E2E.idx new file mode 100644 index 0000000..8c06b3e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.70A6DC20D8BF9E2E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7AA6D00EE29961F3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7AA6D00EE29961F3.idx new file mode 100644 index 0000000..8717bd0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7AA6D00EE29961F3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7D6A6A94A459088C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7D6A6A94A459088C.idx new file mode 100644 index 0000000..1b2e8e7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7D6A6A94A459088C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.9847D84EA60015F0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.9847D84EA60015F0.idx new file mode 100644 index 0000000..6fa48ef Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.9847D84EA60015F0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.A6C11030876BE869.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.A6C11030876BE869.idx new file mode 100644 index 0000000..85c1069 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.A6C11030876BE869.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C01F122E81476210.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C01F122E81476210.idx new file mode 100644 index 0000000..5912625 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C01F122E81476210.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C9C69F6651420718.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C9C69F6651420718.idx new file mode 100644 index 0000000..64bd41a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C9C69F6651420718.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.D741D2F82940D411.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.D741D2F82940D411.idx new file mode 100644 index 0000000..98e672b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.D741D2F82940D411.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.F0B33DB0C7F16BE4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.F0B33DB0C7F16BE4.idx new file mode 100644 index 0000000..7c0ae5f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.F0B33DB0C7F16BE4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.FD74CF9B5023CF98.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.FD74CF9B5023CF98.idx new file mode 100644 index 0000000..d9d5f5f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.c.FD74CF9B5023CF98.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.176D35C403CFA0C5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.176D35C403CFA0C5.idx new file mode 100644 index 0000000..259cb9b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.176D35C403CFA0C5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.1F2F86B74925BE69.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.1F2F86B74925BE69.idx new file mode 100644 index 0000000..fa95576 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.1F2F86B74925BE69.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.29616DBE909303FC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.29616DBE909303FC.idx new file mode 100644 index 0000000..3e3456b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.29616DBE909303FC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.46EC6317A2CBC7B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.46EC6317A2CBC7B0.idx new file mode 100644 index 0000000..e8790a4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.46EC6317A2CBC7B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.5615D05F1B5D6C88.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.5615D05F1B5D6C88.idx new file mode 100644 index 0000000..1c28365 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.5615D05F1B5D6C88.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.61873A75853EA5FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.61873A75853EA5FE.idx new file mode 100644 index 0000000..7171d6e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.61873A75853EA5FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.65E471A7D918A784.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.65E471A7D918A784.idx new file mode 100644 index 0000000..035a421 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.65E471A7D918A784.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.669A7DDFA5E6A9BC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.669A7DDFA5E6A9BC.idx new file mode 100644 index 0000000..be7d918 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.669A7DDFA5E6A9BC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.6B12CEBBD765EEB1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.6B12CEBBD765EEB1.idx new file mode 100644 index 0000000..9a8ad0d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.6B12CEBBD765EEB1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8709B560D53C4B30.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8709B560D53C4B30.idx new file mode 100644 index 0000000..ca56a88 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8709B560D53C4B30.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.871CFC18D3A92915.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.871CFC18D3A92915.idx new file mode 100644 index 0000000..1296905 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.871CFC18D3A92915.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8B5E8292DD96B706.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8B5E8292DD96B706.idx new file mode 100644 index 0000000..0021fea Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8B5E8292DD96B706.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9A78E331BA9A8536.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9A78E331BA9A8536.idx new file mode 100644 index 0000000..2130b6e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9A78E331BA9A8536.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9C1D0967F2B1555A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9C1D0967F2B1555A.idx new file mode 100644 index 0000000..d7cb93e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9C1D0967F2B1555A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A30605AD7C64872B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A30605AD7C64872B.idx new file mode 100644 index 0000000..ed77391 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A30605AD7C64872B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A40E67096CCD55E7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A40E67096CCD55E7.idx new file mode 100644 index 0000000..07ed206 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A40E67096CCD55E7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.AA75024D3C3A9EF2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.AA75024D3C3A9EF2.idx new file mode 100644 index 0000000..9a90c98 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.AA75024D3C3A9EF2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B19A01F524A389C9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B19A01F524A389C9.idx new file mode 100644 index 0000000..b685021 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B19A01F524A389C9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B75FF3D0B8C654CB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B75FF3D0B8C654CB.idx new file mode 100644 index 0000000..405f655 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B75FF3D0B8C654CB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B875571F06C81146.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B875571F06C81146.idx new file mode 100644 index 0000000..7a15eac Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B875571F06C81146.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.BE099DA90132FDB4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.BE099DA90132FDB4.idx new file mode 100644 index 0000000..a314306 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.BE099DA90132FDB4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.C05AF157B9039B35.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.C05AF157B9039B35.idx new file mode 100644 index 0000000..c37d37a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.C05AF157B9039B35.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D549EDE7B9336122.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D549EDE7B9336122.idx new file mode 100644 index 0000000..a99b996 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D549EDE7B9336122.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E738A41999C4E7EA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E738A41999C4E7EA.idx new file mode 100644 index 0000000..2fb8b24 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E738A41999C4E7EA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E81D2653F6584463.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E81D2653F6584463.idx new file mode 100644 index 0000000..e2d6321 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E81D2653F6584463.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.EBF81434F3790B22.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.EBF81434F3790B22.idx new file mode 100644 index 0000000..b91a67a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.EBF81434F3790B22.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F6D678C5A638A85F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F6D678C5A638A85F.idx new file mode 100644 index 0000000..a744ca3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F6D678C5A638A85F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FDB742185CB088D4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FDB742185CB088D4.idx new file mode 100644 index 0000000..4b342eb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FDB742185CB088D4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0C705FE77537344D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0C705FE77537344D.idx new file mode 100644 index 0000000..01a3455 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0C705FE77537344D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.27EB1C3E1DBBD8E8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.27EB1C3E1DBBD8E8.idx new file mode 100644 index 0000000..03d3a09 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.27EB1C3E1DBBD8E8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.35EFB6A8F53F24C2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.35EFB6A8F53F24C2.idx new file mode 100644 index 0000000..c9ef767 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.35EFB6A8F53F24C2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4439A7ADE6AB6F1F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4439A7ADE6AB6F1F.idx new file mode 100644 index 0000000..ba0fb0a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4439A7ADE6AB6F1F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4F39844DDDE385EC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4F39844DDDE385EC.idx new file mode 100644 index 0000000..686db71 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4F39844DDDE385EC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5040D42B3FE5F7A7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5040D42B3FE5F7A7.idx new file mode 100644 index 0000000..91a5a6e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5040D42B3FE5F7A7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5C264C3DC937C4EF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5C264C3DC937C4EF.idx new file mode 100644 index 0000000..e63ba4b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5C264C3DC937C4EF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5D6A21A1097D90EF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5D6A21A1097D90EF.idx new file mode 100644 index 0000000..e610330 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5D6A21A1097D90EF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.6EA5D181088FB92A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.6EA5D181088FB92A.idx new file mode 100644 index 0000000..ad80e58 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.6EA5D181088FB92A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.7045C0EA902461CB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.7045C0EA902461CB.idx new file mode 100644 index 0000000..522004f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.7045C0EA902461CB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.71CE846331985D12.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.71CE846331985D12.idx new file mode 100644 index 0000000..affc1ef Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.71CE846331985D12.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.7BED39C8ACAAD4EF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.7BED39C8ACAAD4EF.idx new file mode 100644 index 0000000..9d919a0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.7BED39C8ACAAD4EF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8345213AD0483AB2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8345213AD0483AB2.idx new file mode 100644 index 0000000..6112132 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8345213AD0483AB2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8E4E6E2828D4E561.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8E4E6E2828D4E561.idx new file mode 100644 index 0000000..20c6763 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8E4E6E2828D4E561.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9308039605357D3E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9308039605357D3E.idx new file mode 100644 index 0000000..03797a2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9308039605357D3E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9B94CE6250EEEB02.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9B94CE6250EEEB02.idx new file mode 100644 index 0000000..2697da7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9B94CE6250EEEB02.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A639FB7ADBD58F9E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A639FB7ADBD58F9E.idx new file mode 100644 index 0000000..eeae077 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A639FB7ADBD58F9E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A8E6CB64EE9DF3F1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A8E6CB64EE9DF3F1.idx new file mode 100644 index 0000000..920a387 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A8E6CB64EE9DF3F1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B1ACED1F6C55956C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B1ACED1F6C55956C.idx new file mode 100644 index 0000000..8661a7e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B1ACED1F6C55956C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B327F7428683CD52.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B327F7428683CD52.idx new file mode 100644 index 0000000..2d079e2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B327F7428683CD52.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.C1730931D65A1B55.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.C1730931D65A1B55.idx new file mode 100644 index 0000000..4150d9e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.C1730931D65A1B55.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.D3526A9932F8258C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.D3526A9932F8258C.idx new file mode 100644 index 0000000..e75ccf5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.D3526A9932F8258C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E0DFDEE0C944631E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E0DFDEE0C944631E.idx new file mode 100644 index 0000000..bca04d7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E0DFDEE0C944631E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E287E7837B48CB97.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E287E7837B48CB97.idx new file mode 100644 index 0000000..e82869f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E287E7837B48CB97.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E9A96A6C4EE5BDD5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E9A96A6C4EE5BDD5.idx new file mode 100644 index 0000000..b26c5df Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E9A96A6C4EE5BDD5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.EF250D821B10F0B2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.EF250D821B10F0B2.idx new file mode 100644 index 0000000..d41506d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.EF250D821B10F0B2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.F7D9551B69A01AB1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.F7D9551B69A01AB1.idx new file mode 100644 index 0000000..7b7b007 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.F7D9551B69A01AB1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.FB675D8996D1BF21.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.FB675D8996D1BF21.idx new file mode 100644 index 0000000..7bec328 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.c.FB675D8996D1BF21.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.02D5C81E16C31BF0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.02D5C81E16C31BF0.idx new file mode 100644 index 0000000..97b6c3f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.02D5C81E16C31BF0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1062426E8E6DC805.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1062426E8E6DC805.idx new file mode 100644 index 0000000..0a34d89 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1062426E8E6DC805.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1B224749773DC9FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1B224749773DC9FE.idx new file mode 100644 index 0000000..4cfd07e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1B224749773DC9FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.20E41E19746A7053.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.20E41E19746A7053.idx new file mode 100644 index 0000000..fdfa9ae Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.20E41E19746A7053.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2A0A55718E869716.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2A0A55718E869716.idx new file mode 100644 index 0000000..17a01eb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2A0A55718E869716.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.384BFE9332C666C9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.384BFE9332C666C9.idx new file mode 100644 index 0000000..6bcf1fd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.384BFE9332C666C9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.3C0E158985E14937.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.3C0E158985E14937.idx new file mode 100644 index 0000000..b8bb2f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.3C0E158985E14937.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.549E8B5F058A176D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.549E8B5F058A176D.idx new file mode 100644 index 0000000..09f1bd3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.549E8B5F058A176D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.5A0DFE3310431D38.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.5A0DFE3310431D38.idx new file mode 100644 index 0000000..feb54ae Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.5A0DFE3310431D38.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6B1D2760311C3F40.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6B1D2760311C3F40.idx new file mode 100644 index 0000000..a805ea0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6B1D2760311C3F40.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.7F461CC17F1025BD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.7F461CC17F1025BD.idx new file mode 100644 index 0000000..8a8f2f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.7F461CC17F1025BD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.8AA0E1940E36438E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.8AA0E1940E36438E.idx new file mode 100644 index 0000000..3c29696 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.8AA0E1940E36438E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A3691F450B933B74.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A3691F450B933B74.idx new file mode 100644 index 0000000..8938cd9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A3691F450B933B74.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA37503FA181690D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA37503FA181690D.idx new file mode 100644 index 0000000..54e7580 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA37503FA181690D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA71F0E846800566.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA71F0E846800566.idx new file mode 100644 index 0000000..d30b3b4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA71F0E846800566.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B014C4C05CBFD077.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B014C4C05CBFD077.idx new file mode 100644 index 0000000..98c6596 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B014C4C05CBFD077.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B123CEC8A9A37CB0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B123CEC8A9A37CB0.idx new file mode 100644 index 0000000..690351a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B123CEC8A9A37CB0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B43E1209C098B2DD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B43E1209C098B2DD.idx new file mode 100644 index 0000000..5bb1524 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B43E1209C098B2DD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B76C8E5549649E41.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B76C8E5549649E41.idx new file mode 100644 index 0000000..b2e4be3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B76C8E5549649E41.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.BD18D90729E5E29C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.BD18D90729E5E29C.idx new file mode 100644 index 0000000..f146641 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.BD18D90729E5E29C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C3B0FE00CB48009F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C3B0FE00CB48009F.idx new file mode 100644 index 0000000..7c4f376 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C3B0FE00CB48009F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C4C14D0F7DC9E6C2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C4C14D0F7DC9E6C2.idx new file mode 100644 index 0000000..8a3c4ca Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C4C14D0F7DC9E6C2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CC00DA49FF7EC81A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CC00DA49FF7EC81A.idx new file mode 100644 index 0000000..3e81c32 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CC00DA49FF7EC81A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.D4B304519E0367DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.D4B304519E0367DC.idx new file mode 100644 index 0000000..eead8a6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.D4B304519E0367DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DD384915276155F4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DD384915276155F4.idx new file mode 100644 index 0000000..65b069c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DD384915276155F4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DDDDA281A0B47A03.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DDDDA281A0B47A03.idx new file mode 100644 index 0000000..7662d25 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DDDDA281A0B47A03.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F9A626211DE0B3B7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F9A626211DE0B3B7.idx new file mode 100644 index 0000000..819a844 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F9A626211DE0B3B7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.FB06D2D4E8BB5351.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.FB06D2D4E8BB5351.idx new file mode 100644 index 0000000..060fbf2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_spi.h.FB06D2D4E8BB5351.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.0AC78832897AFA50.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.0AC78832897AFA50.idx new file mode 100644 index 0000000..6d14d5d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.0AC78832897AFA50.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.43B0E6A21A1F59EE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.43B0E6A21A1F59EE.idx new file mode 100644 index 0000000..7954f39 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.43B0E6A21A1F59EE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58B628B9637F7C3A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58B628B9637F7C3A.idx new file mode 100644 index 0000000..cbb0329 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58B628B9637F7C3A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58E5CBE0CB3FE8FC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58E5CBE0CB3FE8FC.idx new file mode 100644 index 0000000..14b2c25 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58E5CBE0CB3FE8FC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.5DC9753618890872.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.5DC9753618890872.idx new file mode 100644 index 0000000..d0c1f37 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.5DC9753618890872.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.6484C99C04502745.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.6484C99C04502745.idx new file mode 100644 index 0000000..2fabc1d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.6484C99C04502745.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.6CCB77057E438A8E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.6CCB77057E438A8E.idx new file mode 100644 index 0000000..37e96be Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.6CCB77057E438A8E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7142F74520A31372.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7142F74520A31372.idx new file mode 100644 index 0000000..60b6da9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7142F74520A31372.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7170931667728880.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7170931667728880.idx new file mode 100644 index 0000000..cb6a3fa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7170931667728880.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.718DAC5A74B412FB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.718DAC5A74B412FB.idx new file mode 100644 index 0000000..992cbd6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.718DAC5A74B412FB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73534F337F2FF384.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73534F337F2FF384.idx new file mode 100644 index 0000000..137809b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73534F337F2FF384.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.77D33EEFCD32D5DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.77D33EEFCD32D5DC.idx new file mode 100644 index 0000000..df33dd4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.77D33EEFCD32D5DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78786F5BAFC9E101.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78786F5BAFC9E101.idx new file mode 100644 index 0000000..e41ac76 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78786F5BAFC9E101.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78A39C72368C554B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78A39C72368C554B.idx new file mode 100644 index 0000000..ccf89a6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78A39C72368C554B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7A0C577D1DE38EEE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7A0C577D1DE38EEE.idx new file mode 100644 index 0000000..9271782 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7A0C577D1DE38EEE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7DB368C2460BC431.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7DB368C2460BC431.idx new file mode 100644 index 0000000..d4efd3c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7DB368C2460BC431.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.8724163C2C9689F0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.8724163C2C9689F0.idx new file mode 100644 index 0000000..61845ee Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.8724163C2C9689F0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.9ABE18865CF4746E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.9ABE18865CF4746E.idx new file mode 100644 index 0000000..88c3140 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.9ABE18865CF4746E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A0702424D29F875B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A0702424D29F875B.idx new file mode 100644 index 0000000..4544d7e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A0702424D29F875B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.AF30A403FCC4F587.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.AF30A403FCC4F587.idx new file mode 100644 index 0000000..18f2d4a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.AF30A403FCC4F587.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B90E9E3E15BF5D8A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B90E9E3E15BF5D8A.idx new file mode 100644 index 0000000..b804e06 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B90E9E3E15BF5D8A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B935BEC6F79E3D37.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B935BEC6F79E3D37.idx new file mode 100644 index 0000000..fd479d0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B935BEC6F79E3D37.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B98C8728D6C2E884.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B98C8728D6C2E884.idx new file mode 100644 index 0000000..7ce27f7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B98C8728D6C2E884.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D39EE9C96C782EA0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D39EE9C96C782EA0.idx new file mode 100644 index 0000000..741beb8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D39EE9C96C782EA0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D8D751D6568C3A75.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D8D751D6568C3A75.idx new file mode 100644 index 0000000..90bf831 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D8D751D6568C3A75.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.DFF99E64F0397033.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.DFF99E64F0397033.idx new file mode 100644 index 0000000..ffd0e7d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.DFF99E64F0397033.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F3C082E30EE854A7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F3C082E30EE854A7.idx new file mode 100644 index 0000000..bb452ce Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F3C082E30EE854A7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.FB3C01B68F607168.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.FB3C01B68F607168.idx new file mode 100644 index 0000000..60aec6e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.FB3C01B68F607168.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.0F54DC74472D230F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.0F54DC74472D230F.idx new file mode 100644 index 0000000..5eaa614 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.0F54DC74472D230F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.159A95F33C7C3C0E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.159A95F33C7C3C0E.idx new file mode 100644 index 0000000..56971e3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.159A95F33C7C3C0E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.163473F524374EDA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.163473F524374EDA.idx new file mode 100644 index 0000000..e8b4c81 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.163473F524374EDA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.20367E5B4C2E59A5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.20367E5B4C2E59A5.idx new file mode 100644 index 0000000..b5ae535 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.20367E5B4C2E59A5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.29636515DA92B601.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.29636515DA92B601.idx new file mode 100644 index 0000000..fc77424 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.29636515DA92B601.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2C92E04B672E5E62.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2C92E04B672E5E62.idx new file mode 100644 index 0000000..c703e3f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2C92E04B672E5E62.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2FC52C20ADEF822E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2FC52C20ADEF822E.idx new file mode 100644 index 0000000..a384403 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2FC52C20ADEF822E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.31900674A347DC86.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.31900674A347DC86.idx new file mode 100644 index 0000000..f282a6f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.31900674A347DC86.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3B1F550120F74C76.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3B1F550120F74C76.idx new file mode 100644 index 0000000..13672b8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3B1F550120F74C76.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.472E8232D9C1EA9C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.472E8232D9C1EA9C.idx new file mode 100644 index 0000000..43328bb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.472E8232D9C1EA9C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.4AD23FAE0AEB2410.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.4AD23FAE0AEB2410.idx new file mode 100644 index 0000000..7b9f8a5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.4AD23FAE0AEB2410.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.5CB293F12C3ED0D2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.5CB293F12C3ED0D2.idx new file mode 100644 index 0000000..f38972c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.5CB293F12C3ED0D2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6760B4C90CD2309B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6760B4C90CD2309B.idx new file mode 100644 index 0000000..71d2657 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6760B4C90CD2309B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6B2F6D58DF3B4BB4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6B2F6D58DF3B4BB4.idx new file mode 100644 index 0000000..84f8f2f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6B2F6D58DF3B4BB4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6D05C2C4F129A2DA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6D05C2C4F129A2DA.idx new file mode 100644 index 0000000..a6a5bec Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6D05C2C4F129A2DA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6EE69A186624A4EC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6EE69A186624A4EC.idx new file mode 100644 index 0000000..464a477 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6EE69A186624A4EC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7359BFE95235C858.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7359BFE95235C858.idx new file mode 100644 index 0000000..c792dbc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7359BFE95235C858.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7865ABDA2BB5FDEF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7865ABDA2BB5FDEF.idx new file mode 100644 index 0000000..309866e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7865ABDA2BB5FDEF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.8451A2BA3422F7E0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.8451A2BA3422F7E0.idx new file mode 100644 index 0000000..cc47825 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.8451A2BA3422F7E0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.934296DC90575FBA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.934296DC90575FBA.idx new file mode 100644 index 0000000..70e01dd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.934296DC90575FBA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.AF59FEA5D1293364.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.AF59FEA5D1293364.idx new file mode 100644 index 0000000..6468f36 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.AF59FEA5D1293364.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B55CC2B8EE5FCCD6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B55CC2B8EE5FCCD6.idx new file mode 100644 index 0000000..8cbea71 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B55CC2B8EE5FCCD6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C124C8FD4C428F9D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C124C8FD4C428F9D.idx new file mode 100644 index 0000000..240e6c1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C124C8FD4C428F9D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C2AC84709F70B0A4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C2AC84709F70B0A4.idx new file mode 100644 index 0000000..b34514a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C2AC84709F70B0A4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D7C4DC1BE193C133.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D7C4DC1BE193C133.idx new file mode 100644 index 0000000..846b811 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D7C4DC1BE193C133.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DAA3C716D1AC0B7D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DAA3C716D1AC0B7D.idx new file mode 100644 index 0000000..1c46ef5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DAA3C716D1AC0B7D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.E9FCB798AEE5AE39.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.E9FCB798AEE5AE39.idx new file mode 100644 index 0000000..c740a47 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.E9FCB798AEE5AE39.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EF2D1BDB23FC93CF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EF2D1BDB23FC93CF.idx new file mode 100644 index 0000000..9319ae3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EF2D1BDB23FC93CF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.06C81F80754CDA90.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.06C81F80754CDA90.idx new file mode 100644 index 0000000..d61fac4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.06C81F80754CDA90.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.086E773D18C15E17.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.086E773D18C15E17.idx new file mode 100644 index 0000000..7171a7f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.086E773D18C15E17.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.0EFF20D4C22318C5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.0EFF20D4C22318C5.idx new file mode 100644 index 0000000..b96e611 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.0EFF20D4C22318C5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.13DC80AB7A213CE1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.13DC80AB7A213CE1.idx new file mode 100644 index 0000000..1c68954 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.13DC80AB7A213CE1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.15ECBF05EE97F8FF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.15ECBF05EE97F8FF.idx new file mode 100644 index 0000000..56ec080 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.15ECBF05EE97F8FF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2471B7DDED1B9E70.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2471B7DDED1B9E70.idx new file mode 100644 index 0000000..6a97100 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2471B7DDED1B9E70.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2CA96F1DBCFCD7F2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2CA96F1DBCFCD7F2.idx new file mode 100644 index 0000000..50415d0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2CA96F1DBCFCD7F2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42C1E008716751BC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42C1E008716751BC.idx new file mode 100644 index 0000000..b864c6c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42C1E008716751BC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.4CA30F1B0D46BC2D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.4CA30F1B0D46BC2D.idx new file mode 100644 index 0000000..b6fa84f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.4CA30F1B0D46BC2D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.551EE64C353129BC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.551EE64C353129BC.idx new file mode 100644 index 0000000..598994d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.551EE64C353129BC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5776361E06241EC7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5776361E06241EC7.idx new file mode 100644 index 0000000..cf863f9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5776361E06241EC7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.577E3A43DE881CC7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.577E3A43DE881CC7.idx new file mode 100644 index 0000000..b593f90 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.577E3A43DE881CC7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.69BE840C37E34806.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.69BE840C37E34806.idx new file mode 100644 index 0000000..a4ba6bd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.69BE840C37E34806.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.86476CCCF122D771.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.86476CCCF122D771.idx new file mode 100644 index 0000000..cec678e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.86476CCCF122D771.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.886B01D5BFA20EFA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.886B01D5BFA20EFA.idx new file mode 100644 index 0000000..453a232 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.886B01D5BFA20EFA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.9C6EEB6F5DDF37DA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.9C6EEB6F5DDF37DA.idx new file mode 100644 index 0000000..b54c059 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.9C6EEB6F5DDF37DA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A02D893621CCDB46.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A02D893621CCDB46.idx new file mode 100644 index 0000000..d33d1cc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A02D893621CCDB46.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A8D9CCBDA3034A47.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A8D9CCBDA3034A47.idx new file mode 100644 index 0000000..3a8b9ce Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A8D9CCBDA3034A47.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.AC33A34B8CDF46FA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.AC33A34B8CDF46FA.idx new file mode 100644 index 0000000..1868705 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.AC33A34B8CDF46FA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.B8FD1C9557B1CE0A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.B8FD1C9557B1CE0A.idx new file mode 100644 index 0000000..9c8aea0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.B8FD1C9557B1CE0A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BB93BFEC44C56B5E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BB93BFEC44C56B5E.idx new file mode 100644 index 0000000..d6f46e8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BB93BFEC44C56B5E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BEBF5ABB5E1DBC9C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BEBF5ABB5E1DBC9C.idx new file mode 100644 index 0000000..2a65e56 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BEBF5ABB5E1DBC9C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.C26199B9E700688E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.C26199B9E700688E.idx new file mode 100644 index 0000000..d4e3c5e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.C26199B9E700688E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CB453416D4CD252A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CB453416D4CD252A.idx new file mode 100644 index 0000000..5b54048 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CB453416D4CD252A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CC015267E756B719.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CC015267E756B719.idx new file mode 100644 index 0000000..ef65975 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CC015267E756B719.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D1B41E47CA39324E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D1B41E47CA39324E.idx new file mode 100644 index 0000000..bae7195 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D1B41E47CA39324E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E1E1205B21795344.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E1E1205B21795344.idx new file mode 100644 index 0000000..13fd34d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E1E1205B21795344.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E3C7CEA1F1AFBF83.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E3C7CEA1F1AFBF83.idx new file mode 100644 index 0000000..59b9542 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E3C7CEA1F1AFBF83.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.026A9577E54E1500.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.026A9577E54E1500.idx new file mode 100644 index 0000000..7dea6f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.026A9577E54E1500.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0E798CE6FABDEB7C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0E798CE6FABDEB7C.idx new file mode 100644 index 0000000..dbda03f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0E798CE6FABDEB7C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1842D63F81A39EEB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1842D63F81A39EEB.idx new file mode 100644 index 0000000..2eae52c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1842D63F81A39EEB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1F839B099BB355F0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1F839B099BB355F0.idx new file mode 100644 index 0000000..deb2d17 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1F839B099BB355F0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1FC2C185B99DC86F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1FC2C185B99DC86F.idx new file mode 100644 index 0000000..2f74b1f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1FC2C185B99DC86F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2E94602A2E3D8D63.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2E94602A2E3D8D63.idx new file mode 100644 index 0000000..a2688e6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2E94602A2E3D8D63.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2EA237C83D79CBE2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2EA237C83D79CBE2.idx new file mode 100644 index 0000000..5244362 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2EA237C83D79CBE2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.38E49A6E385194CE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.38E49A6E385194CE.idx new file mode 100644 index 0000000..9bb8666 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.38E49A6E385194CE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.4F030249BCEB17B7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.4F030249BCEB17B7.idx new file mode 100644 index 0000000..bb483f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.4F030249BCEB17B7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.50E8D3022EFE65B5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.50E8D3022EFE65B5.idx new file mode 100644 index 0000000..3b381b8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.50E8D3022EFE65B5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56591A6A68531918.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56591A6A68531918.idx new file mode 100644 index 0000000..b037019 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56591A6A68531918.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.5702AA32D9769BD7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.5702AA32D9769BD7.idx new file mode 100644 index 0000000..44b0f82 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.5702AA32D9769BD7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.610FC107A36F244A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.610FC107A36F244A.idx new file mode 100644 index 0000000..dfad264 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.610FC107A36F244A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.62F54B3A3A277C93.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.62F54B3A3A277C93.idx new file mode 100644 index 0000000..ad71f3e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.62F54B3A3A277C93.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7587C18808B17592.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7587C18808B17592.idx new file mode 100644 index 0000000..736df8c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7587C18808B17592.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7AB14C849155906A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7AB14C849155906A.idx new file mode 100644 index 0000000..706d66e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7AB14C849155906A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7F79F7861A81ACEB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7F79F7861A81ACEB.idx new file mode 100644 index 0000000..41aa826 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7F79F7861A81ACEB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.814864B21238D991.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.814864B21238D991.idx new file mode 100644 index 0000000..5046bd8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.814864B21238D991.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8199858FA5C0459E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8199858FA5C0459E.idx new file mode 100644 index 0000000..22ec9b9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8199858FA5C0459E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8FC67D4C33261644.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8FC67D4C33261644.idx new file mode 100644 index 0000000..7c8ca3f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8FC67D4C33261644.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A00D8026FB08F09F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A00D8026FB08F09F.idx new file mode 100644 index 0000000..59fc269 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A00D8026FB08F09F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A507CD418150EF04.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A507CD418150EF04.idx new file mode 100644 index 0000000..6ae52ab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A507CD418150EF04.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A9C60AAD6BC6BC53.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A9C60AAD6BC6BC53.idx new file mode 100644 index 0000000..fee2531 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A9C60AAD6BC6BC53.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.AA44D61F211EA77D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.AA44D61F211EA77D.idx new file mode 100644 index 0000000..b7580fd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.AA44D61F211EA77D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B64446F2580A11BF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B64446F2580A11BF.idx new file mode 100644 index 0000000..439e526 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B64446F2580A11BF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DD11CAA4DC2048DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DD11CAA4DC2048DC.idx new file mode 100644 index 0000000..efc45ef Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DD11CAA4DC2048DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DDCEF798435E4882.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DDCEF798435E4882.idx new file mode 100644 index 0000000..d6540ae Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DDCEF798435E4882.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.EF79C4AC2C329868.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.EF79C4AC2C329868.idx new file mode 100644 index 0000000..49bf75a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.EF79C4AC2C329868.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.0336C3C214DB8C68.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.0336C3C214DB8C68.idx new file mode 100644 index 0000000..eccb7e7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.0336C3C214DB8C68.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.112C9E10A9911927.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.112C9E10A9911927.idx new file mode 100644 index 0000000..85dde7d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.112C9E10A9911927.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1778EF537D39CC31.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1778EF537D39CC31.idx new file mode 100644 index 0000000..f37b1b0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1778EF537D39CC31.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.23D78DEA8360969E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.23D78DEA8360969E.idx new file mode 100644 index 0000000..270c864 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.23D78DEA8360969E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2C105D23E11E206A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2C105D23E11E206A.idx new file mode 100644 index 0000000..0507e2a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2C105D23E11E206A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.3830C4CD5A14DE2F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.3830C4CD5A14DE2F.idx new file mode 100644 index 0000000..987019e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.3830C4CD5A14DE2F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.4E33C699941B7BFA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.4E33C699941B7BFA.idx new file mode 100644 index 0000000..0019070 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.4E33C699941B7BFA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.50A755DECD28541A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.50A755DECD28541A.idx new file mode 100644 index 0000000..a8593c0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.50A755DECD28541A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.646BACB09B456864.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.646BACB09B456864.idx new file mode 100644 index 0000000..eb55b5a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.646BACB09B456864.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.6470DD63664605A1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.6470DD63664605A1.idx new file mode 100644 index 0000000..b7031ce Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.6470DD63664605A1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.7BF73E9491377639.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.7BF73E9491377639.idx new file mode 100644 index 0000000..93fd8cb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.7BF73E9491377639.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.819A00414FCD51AE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.819A00414FCD51AE.idx new file mode 100644 index 0000000..de70c48 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.819A00414FCD51AE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8215CEE3A3C44DCC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8215CEE3A3C44DCC.idx new file mode 100644 index 0000000..6e5101b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8215CEE3A3C44DCC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83977C2E9A32F6F5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83977C2E9A32F6F5.idx new file mode 100644 index 0000000..ed8de76 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83977C2E9A32F6F5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83BECC50CB83D47C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83BECC50CB83D47C.idx new file mode 100644 index 0000000..62fea5d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83BECC50CB83D47C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.846751DB22122745.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.846751DB22122745.idx new file mode 100644 index 0000000..f93b7a9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.846751DB22122745.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8FA76B6671985A41.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8FA76B6671985A41.idx new file mode 100644 index 0000000..95cfd95 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8FA76B6671985A41.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.A5310B6733C0F791.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.A5310B6733C0F791.idx new file mode 100644 index 0000000..27514e2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.A5310B6733C0F791.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B2BCC8C1751513EA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B2BCC8C1751513EA.idx new file mode 100644 index 0000000..ee0aaed Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B2BCC8C1751513EA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B5E41505AD1A3A40.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B5E41505AD1A3A40.idx new file mode 100644 index 0000000..b119a86 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B5E41505AD1A3A40.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.BE5797AA909FC6CA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.BE5797AA909FC6CA.idx new file mode 100644 index 0000000..306aaf3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.BE5797AA909FC6CA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C7DB60EDFA8D55D3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C7DB60EDFA8D55D3.idx new file mode 100644 index 0000000..4ae5dd6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C7DB60EDFA8D55D3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C83B333A9474B42D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C83B333A9474B42D.idx new file mode 100644 index 0000000..5f98908 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C83B333A9474B42D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CBDCC3A06C7FE58C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CBDCC3A06C7FE58C.idx new file mode 100644 index 0000000..3e8ae40 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CBDCC3A06C7FE58C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD68AE9C86338B4B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD68AE9C86338B4B.idx new file mode 100644 index 0000000..8c63de1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD68AE9C86338B4B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD959E7FC85CD03D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD959E7FC85CD03D.idx new file mode 100644 index 0000000..a541388 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD959E7FC85CD03D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DE574F010E0647E9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DE574F010E0647E9.idx new file mode 100644 index 0000000..c3b6c4a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DE574F010E0647E9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.E367594749CEA154.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.E367594749CEA154.idx new file mode 100644 index 0000000..5df7a3c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.E367594749CEA154.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03396AF59F1F3318.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03396AF59F1F3318.idx new file mode 100644 index 0000000..2e4ecc3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03396AF59F1F3318.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.035397EAA4FF5068.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.035397EAA4FF5068.idx new file mode 100644 index 0000000..e2820fb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.035397EAA4FF5068.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03897EEC204A9331.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03897EEC204A9331.idx new file mode 100644 index 0000000..bde11b8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03897EEC204A9331.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.075A4112B6A57C6A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.075A4112B6A57C6A.idx new file mode 100644 index 0000000..3da6056 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.075A4112B6A57C6A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.178C7C5C28A93A90.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.178C7C5C28A93A90.idx new file mode 100644 index 0000000..bf8dda3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.178C7C5C28A93A90.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.23649715A25CBB01.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.23649715A25CBB01.idx new file mode 100644 index 0000000..99f6d7c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.23649715A25CBB01.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2828772EF81C25AE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2828772EF81C25AE.idx new file mode 100644 index 0000000..25f9147 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2828772EF81C25AE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2EE0C9227F1AE23B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2EE0C9227F1AE23B.idx new file mode 100644 index 0000000..1326316 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2EE0C9227F1AE23B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.4160DFF1F8874FB5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.4160DFF1F8874FB5.idx new file mode 100644 index 0000000..7810084 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.4160DFF1F8874FB5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.558902A53E1894C4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.558902A53E1894C4.idx new file mode 100644 index 0000000..00fd4a9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.558902A53E1894C4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.5C85ED06BCC6CABE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.5C85ED06BCC6CABE.idx new file mode 100644 index 0000000..d46ef12 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.5C85ED06BCC6CABE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.67B9FEF36D93D97B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.67B9FEF36D93D97B.idx new file mode 100644 index 0000000..7811bf2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.67B9FEF36D93D97B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.74715CCD99336348.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.74715CCD99336348.idx new file mode 100644 index 0000000..6d95fc5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.74715CCD99336348.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7CF6562ACE441F9B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7CF6562ACE441F9B.idx new file mode 100644 index 0000000..cac3649 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7CF6562ACE441F9B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7E9D857371231945.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7E9D857371231945.idx new file mode 100644 index 0000000..c7bd32a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7E9D857371231945.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.89C6C67C86929301.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.89C6C67C86929301.idx new file mode 100644 index 0000000..71f2c8e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.89C6C67C86929301.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.968CA5B4100AF908.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.968CA5B4100AF908.idx new file mode 100644 index 0000000..fe4e066 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.968CA5B4100AF908.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.AC2C9D7FF8EA5E44.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.AC2C9D7FF8EA5E44.idx new file mode 100644 index 0000000..05db26e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.AC2C9D7FF8EA5E44.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B79D1BA529966C37.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B79D1BA529966C37.idx new file mode 100644 index 0000000..a186d98 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B79D1BA529966C37.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.BF9493E7A28AC023.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.BF9493E7A28AC023.idx new file mode 100644 index 0000000..e1950b7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.BF9493E7A28AC023.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C5516300BD872977.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C5516300BD872977.idx new file mode 100644 index 0000000..1747126 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C5516300BD872977.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C7E0C1929ECDEC90.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C7E0C1929ECDEC90.idx new file mode 100644 index 0000000..4d44fa0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C7E0C1929ECDEC90.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C9C8A5476EC72981.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C9C8A5476EC72981.idx new file mode 100644 index 0000000..f8788dd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C9C8A5476EC72981.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.CB90C80BF164C502.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.CB90C80BF164C502.idx new file mode 100644 index 0000000..5f8bf8a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.CB90C80BF164C502.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.DB9859C523176838.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.DB9859C523176838.idx new file mode 100644 index 0000000..3dee8ea Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.DB9859C523176838.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F137D2A35F398EA6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F137D2A35F398EA6.idx new file mode 100644 index 0000000..37a9217 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F137D2A35F398EA6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FB8547668EF8BB4F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FB8547668EF8BB4F.idx new file mode 100644 index 0000000..bea155f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FB8547668EF8BB4F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FFE925AA33143249.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FFE925AA33143249.idx new file mode 100644 index 0000000..81467ad Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FFE925AA33143249.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.099D37914ADEF08C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.099D37914ADEF08C.idx new file mode 100644 index 0000000..02fbb67 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.099D37914ADEF08C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2205657800759E2E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2205657800759E2E.idx new file mode 100644 index 0000000..cb7c16f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2205657800759E2E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.227F24D2E06829A8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.227F24D2E06829A8.idx new file mode 100644 index 0000000..db2ff7f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.227F24D2E06829A8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2941E9D300577A3D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2941E9D300577A3D.idx new file mode 100644 index 0000000..652ab9e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2941E9D300577A3D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.30CC5CEEC0F09253.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.30CC5CEEC0F09253.idx new file mode 100644 index 0000000..8b32136 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.30CC5CEEC0F09253.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.35272788F848A8BB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.35272788F848A8BB.idx new file mode 100644 index 0000000..fd98ec7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.35272788F848A8BB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3AAF0B9E68B9FF23.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3AAF0B9E68B9FF23.idx new file mode 100644 index 0000000..39c544b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3AAF0B9E68B9FF23.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3CEB2143C24E11B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3CEB2143C24E11B1.idx new file mode 100644 index 0000000..507a92b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3CEB2143C24E11B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4B4D563CF541D43C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4B4D563CF541D43C.idx new file mode 100644 index 0000000..b05c3d6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4B4D563CF541D43C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.53E24D130BBC4B9F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.53E24D130BBC4B9F.idx new file mode 100644 index 0000000..386c5c5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.53E24D130BBC4B9F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.66D4853A56C0A08F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.66D4853A56C0A08F.idx new file mode 100644 index 0000000..bf9457a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.66D4853A56C0A08F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.6B0B270A53DF6D4E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.6B0B270A53DF6D4E.idx new file mode 100644 index 0000000..261cba1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.6B0B270A53DF6D4E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.7FC36655D43980CA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.7FC36655D43980CA.idx new file mode 100644 index 0000000..91454f6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.7FC36655D43980CA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.8CA04E01AADD822B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.8CA04E01AADD822B.idx new file mode 100644 index 0000000..b6a57b9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.8CA04E01AADD822B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.98711B8D869E53E7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.98711B8D869E53E7.idx new file mode 100644 index 0000000..5ffd8a7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.98711B8D869E53E7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.9FFFD589F8DE8A3D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.9FFFD589F8DE8A3D.idx new file mode 100644 index 0000000..03f26f6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.9FFFD589F8DE8A3D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.B131A102D9A184B6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.B131A102D9A184B6.idx new file mode 100644 index 0000000..06a27b7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.B131A102D9A184B6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C1C1B09A6B83F2CF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C1C1B09A6B83F2CF.idx new file mode 100644 index 0000000..08ff2e1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C1C1B09A6B83F2CF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C3ED2FBE9027DCD6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C3ED2FBE9027DCD6.idx new file mode 100644 index 0000000..6cc572b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C3ED2FBE9027DCD6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C4BD364C351623C0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C4BD364C351623C0.idx new file mode 100644 index 0000000..01c5561 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C4BD364C351623C0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.D52AEE65F58D27CE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.D52AEE65F58D27CE.idx new file mode 100644 index 0000000..dc83302 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.D52AEE65F58D27CE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DAFAC32BD05E3938.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DAFAC32BD05E3938.idx new file mode 100644 index 0000000..ce56234 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DAFAC32BD05E3938.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.E71B8CC4CD66DBFF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.E71B8CC4CD66DBFF.idx new file mode 100644 index 0000000..45c7517 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.E71B8CC4CD66DBFF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F7EF4DBF7160D3D4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F7EF4DBF7160D3D4.idx new file mode 100644 index 0000000..15e5450 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F7EF4DBF7160D3D4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FA7DE4EC31C52B17.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FA7DE4EC31C52B17.idx new file mode 100644 index 0000000..9f9e500 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FA7DE4EC31C52B17.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FB54BA6008AFFB4C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FB54BA6008AFFB4C.idx new file mode 100644 index 0000000..336e0eb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FB54BA6008AFFB4C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF3CE67872FB3537.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF3CE67872FB3537.idx new file mode 100644 index 0000000..019e1c8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF3CE67872FB3537.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF6606F3A8CD04E1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF6606F3A8CD04E1.idx new file mode 100644 index 0000000..5d194ae Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF6606F3A8CD04E1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.16A10544547A7EDF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.16A10544547A7EDF.idx new file mode 100644 index 0000000..76977b0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.16A10544547A7EDF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.25FD117C52C1BCE1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.25FD117C52C1BCE1.idx new file mode 100644 index 0000000..7e93f51 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.25FD117C52C1BCE1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.2D6EAEEFCA5969BB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.2D6EAEEFCA5969BB.idx new file mode 100644 index 0000000..208e389 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.2D6EAEEFCA5969BB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.34807CC0F63DE798.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.34807CC0F63DE798.idx new file mode 100644 index 0000000..92c1abc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.34807CC0F63DE798.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.38C80C43864B05A3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.38C80C43864B05A3.idx new file mode 100644 index 0000000..e10840f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.38C80C43864B05A3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.43A0D617DD4BE229.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.43A0D617DD4BE229.idx new file mode 100644 index 0000000..d4ef436 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.43A0D617DD4BE229.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.46A7ED532EF3787C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.46A7ED532EF3787C.idx new file mode 100644 index 0000000..0c81c81 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.46A7ED532EF3787C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.48EFE547DE0C6523.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.48EFE547DE0C6523.idx new file mode 100644 index 0000000..c8310be Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.48EFE547DE0C6523.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4C88C13F982D4E27.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4C88C13F982D4E27.idx new file mode 100644 index 0000000..429607f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4C88C13F982D4E27.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4D705DE978964441.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4D705DE978964441.idx new file mode 100644 index 0000000..78339ab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4D705DE978964441.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4F70AB1A55A3DE02.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4F70AB1A55A3DE02.idx new file mode 100644 index 0000000..4e35c02 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4F70AB1A55A3DE02.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.56EFC0436ED23E0F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.56EFC0436ED23E0F.idx new file mode 100644 index 0000000..5205c72 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.56EFC0436ED23E0F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.68F904081A147007.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.68F904081A147007.idx new file mode 100644 index 0000000..a62b478 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.68F904081A147007.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6B2343357437D1FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6B2343357437D1FE.idx new file mode 100644 index 0000000..81d9cb5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6B2343357437D1FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6CEB9AA783C6A44A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6CEB9AA783C6A44A.idx new file mode 100644 index 0000000..a95b6d0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6CEB9AA783C6A44A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.7EE4CBAECD6A69F1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.7EE4CBAECD6A69F1.idx new file mode 100644 index 0000000..eb1055b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.7EE4CBAECD6A69F1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.8E2481DE095CEC2A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.8E2481DE095CEC2A.idx new file mode 100644 index 0000000..4e53b85 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.8E2481DE095CEC2A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9C1F14142D4EC7D3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9C1F14142D4EC7D3.idx new file mode 100644 index 0000000..b1c4e76 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9C1F14142D4EC7D3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9D56E2E14AEDC339.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9D56E2E14AEDC339.idx new file mode 100644 index 0000000..e65ecdf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9D56E2E14AEDC339.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9FEFFA62C1C55620.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9FEFFA62C1C55620.idx new file mode 100644 index 0000000..9b04f53 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9FEFFA62C1C55620.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A9101AF09EED8714.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A9101AF09EED8714.idx new file mode 100644 index 0000000..db93f90 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A9101AF09EED8714.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.AC75FA96F386D80A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.AC75FA96F386D80A.idx new file mode 100644 index 0000000..0c2111a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.AC75FA96F386D80A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.B7C26909C6E8FFB5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.B7C26909C6E8FFB5.idx new file mode 100644 index 0000000..7ce204e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.B7C26909C6E8FFB5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C341A0625F1C8075.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C341A0625F1C8075.idx new file mode 100644 index 0000000..cb2737a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C341A0625F1C8075.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C5E62419786D245D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C5E62419786D245D.idx new file mode 100644 index 0000000..ae1cff2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C5E62419786D245D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.CAC42485D8EC3F41.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.CAC42485D8EC3F41.idx new file mode 100644 index 0000000..e062a95 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.CAC42485D8EC3F41.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.DD6A930031648980.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.DD6A930031648980.idx new file mode 100644 index 0000000..187e055 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.DD6A930031648980.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E4CD31FCECD16D19.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E4CD31FCECD16D19.idx new file mode 100644 index 0000000..de13590 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E4CD31FCECD16D19.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.04BA228549F438A4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.04BA228549F438A4.idx new file mode 100644 index 0000000..c203015 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.04BA228549F438A4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0B936C0D798A6DE8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0B936C0D798A6DE8.idx new file mode 100644 index 0000000..d71d7d7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0B936C0D798A6DE8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0BDC5393B36417DA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0BDC5393B36417DA.idx new file mode 100644 index 0000000..766dad8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0BDC5393B36417DA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0E30B1E60CF9576B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0E30B1E60CF9576B.idx new file mode 100644 index 0000000..271b938 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0E30B1E60CF9576B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0FFEA2DFE5C0C724.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0FFEA2DFE5C0C724.idx new file mode 100644 index 0000000..587e273 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0FFEA2DFE5C0C724.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.26999E14D6762A14.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.26999E14D6762A14.idx new file mode 100644 index 0000000..8c5b335 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.26999E14D6762A14.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.44537710CAC108EB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.44537710CAC108EB.idx new file mode 100644 index 0000000..dbdb655 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.44537710CAC108EB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.51CD9AD64F26B5D5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.51CD9AD64F26B5D5.idx new file mode 100644 index 0000000..6c08f9e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.51CD9AD64F26B5D5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5A91465C95D85D12.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5A91465C95D85D12.idx new file mode 100644 index 0000000..d5d5d5a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5A91465C95D85D12.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5AB806803691B94D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5AB806803691B94D.idx new file mode 100644 index 0000000..77f028d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5AB806803691B94D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B612FC3CEA605AC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B612FC3CEA605AC.idx new file mode 100644 index 0000000..c9eef01 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B612FC3CEA605AC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.67963AD705C2F6BB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.67963AD705C2F6BB.idx new file mode 100644 index 0000000..261355c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.67963AD705C2F6BB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.6EB08B3F6763F05F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.6EB08B3F6763F05F.idx new file mode 100644 index 0000000..e7c8b64 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.6EB08B3F6763F05F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.79516B21839C7A24.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.79516B21839C7A24.idx new file mode 100644 index 0000000..dab7f4b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.79516B21839C7A24.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.81806E7866F8477F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.81806E7866F8477F.idx new file mode 100644 index 0000000..0cfd8b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.81806E7866F8477F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8DC9FBD9EC6732D3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8DC9FBD9EC6732D3.idx new file mode 100644 index 0000000..0a5eddd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8DC9FBD9EC6732D3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8F0EB339AB304658.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8F0EB339AB304658.idx new file mode 100644 index 0000000..83052e9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8F0EB339AB304658.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9078DEB23F78887A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9078DEB23F78887A.idx new file mode 100644 index 0000000..5a3c046 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9078DEB23F78887A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.A8988517DE3BA22B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.A8988517DE3BA22B.idx new file mode 100644 index 0000000..6629183 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.A8988517DE3BA22B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B2CD3D650F096C0C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B2CD3D650F096C0C.idx new file mode 100644 index 0000000..1a9f024 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B2CD3D650F096C0C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B7D20621466B544A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B7D20621466B544A.idx new file mode 100644 index 0000000..d5047f3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B7D20621466B544A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.BE30A9CF7A25CE12.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.BE30A9CF7A25CE12.idx new file mode 100644 index 0000000..fba1e93 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.BE30A9CF7A25CE12.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.C93CBF1FF087DEA1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.C93CBF1FF087DEA1.idx new file mode 100644 index 0000000..1833679 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.C93CBF1FF087DEA1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CFDD64CD23D26664.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CFDD64CD23D26664.idx new file mode 100644 index 0000000..34251e6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CFDD64CD23D26664.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.EEC3E4046B243F9B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.EEC3E4046B243F9B.idx new file mode 100644 index 0000000..ee30403 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.EEC3E4046B243F9B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F5A6B66C56FFC60A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F5A6B66C56FFC60A.idx new file mode 100644 index 0000000..27aef8b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F5A6B66C56FFC60A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F9D98658AFE65F30.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F9D98658AFE65F30.idx new file mode 100644 index 0000000..be64ea8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F9D98658AFE65F30.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.FB05BD33CE18F5CE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.FB05BD33CE18F5CE.idx new file mode 100644 index 0000000..e7f68e3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.FB05BD33CE18F5CE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.0AA1BAB7F8FEF62E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.0AA1BAB7F8FEF62E.idx new file mode 100644 index 0000000..80286ef Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.0AA1BAB7F8FEF62E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.23F7D81504217673.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.23F7D81504217673.idx new file mode 100644 index 0000000..01fb853 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.23F7D81504217673.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.27E26F6094DDA8D2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.27E26F6094DDA8D2.idx new file mode 100644 index 0000000..7925ee7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.27E26F6094DDA8D2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.2F3B4E5533155694.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.2F3B4E5533155694.idx new file mode 100644 index 0000000..050a67c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.2F3B4E5533155694.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.33527DCA34680AF0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.33527DCA34680AF0.idx new file mode 100644 index 0000000..93f0e25 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.33527DCA34680AF0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.3C18B4F82F34E31F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.3C18B4F82F34E31F.idx new file mode 100644 index 0000000..97fc96c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.3C18B4F82F34E31F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.47CD1367E790EBEA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.47CD1367E790EBEA.idx new file mode 100644 index 0000000..bf606a7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.47CD1367E790EBEA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.651AA1474E6FD8FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.651AA1474E6FD8FE.idx new file mode 100644 index 0000000..ae79399 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.651AA1474E6FD8FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.7012E33E34BCC183.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.7012E33E34BCC183.idx new file mode 100644 index 0000000..fee3f12 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.7012E33E34BCC183.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.7846EC240E6B628E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.7846EC240E6B628E.idx new file mode 100644 index 0000000..e970ac1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.7846EC240E6B628E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.81754CFC1C34DB71.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.81754CFC1C34DB71.idx new file mode 100644 index 0000000..6e1fab4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.81754CFC1C34DB71.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.840711E37CA3B55C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.840711E37CA3B55C.idx new file mode 100644 index 0000000..452380a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.840711E37CA3B55C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.8DDBEE95F46345B9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.8DDBEE95F46345B9.idx new file mode 100644 index 0000000..c76f1a4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.8DDBEE95F46345B9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.A5A9E63069E25187.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.A5A9E63069E25187.idx new file mode 100644 index 0000000..88ba0bb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.A5A9E63069E25187.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.AD99F1CF808502B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.AD99F1CF808502B0.idx new file mode 100644 index 0000000..efcb4b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.AD99F1CF808502B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.C446EE3EEADDDA41.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.C446EE3EEADDDA41.idx new file mode 100644 index 0000000..6fec070 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.C446EE3EEADDDA41.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.D25B22D4ED594976.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.D25B22D4ED594976.idx new file mode 100644 index 0000000..c030c27 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.D25B22D4ED594976.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.DCC8AE62930B112A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.DCC8AE62930B112A.idx new file mode 100644 index 0000000..e7b03fa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.DCC8AE62930B112A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.E60D952184ACED45.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.E60D952184ACED45.idx new file mode 100644 index 0000000..90d3951 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.c.E60D952184ACED45.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.06AE2429B07EEA0D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.06AE2429B07EEA0D.idx new file mode 100644 index 0000000..2c5d25d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.06AE2429B07EEA0D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.1A839B8B6E9DB9EB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.1A839B8B6E9DB9EB.idx new file mode 100644 index 0000000..a7624d3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.1A839B8B6E9DB9EB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.2523E9D79B7736C4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.2523E9D79B7736C4.idx new file mode 100644 index 0000000..8434504 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.2523E9D79B7736C4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.369A06C4B4CF5A49.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.369A06C4B4CF5A49.idx new file mode 100644 index 0000000..4ed8e51 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.369A06C4B4CF5A49.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.3E1A2B7CBEF9FDC6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.3E1A2B7CBEF9FDC6.idx new file mode 100644 index 0000000..6f3ecc4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.3E1A2B7CBEF9FDC6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.4C131E19AF48E32B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.4C131E19AF48E32B.idx new file mode 100644 index 0000000..e778f1a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.4C131E19AF48E32B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.684EFCDC6A00DBEA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.684EFCDC6A00DBEA.idx new file mode 100644 index 0000000..bd683af Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.684EFCDC6A00DBEA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.6A8475F853EFEDF9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.6A8475F853EFEDF9.idx new file mode 100644 index 0000000..acfcd2a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.6A8475F853EFEDF9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7784387F6D40681A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7784387F6D40681A.idx new file mode 100644 index 0000000..237d0d8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7784387F6D40681A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7BFCC7DFC6C4BB5F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7BFCC7DFC6C4BB5F.idx new file mode 100644 index 0000000..addfde1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7BFCC7DFC6C4BB5F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7F2764FD3D775A37.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7F2764FD3D775A37.idx new file mode 100644 index 0000000..da4bfa3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.7F2764FD3D775A37.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.90A17C6795B49AFE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.90A17C6795B49AFE.idx new file mode 100644 index 0000000..ab18502 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.90A17C6795B49AFE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.935009227618A658.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.935009227618A658.idx new file mode 100644 index 0000000..26abad0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.935009227618A658.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.AA8062A470C9FD38.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.AA8062A470C9FD38.idx new file mode 100644 index 0000000..6060a33 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.AA8062A470C9FD38.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.AECDD25A6499AA2C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.AECDD25A6499AA2C.idx new file mode 100644 index 0000000..a83a089 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.AECDD25A6499AA2C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.C04A39A3B3081522.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.C04A39A3B3081522.idx new file mode 100644 index 0000000..c9edd8e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.C04A39A3B3081522.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.C8DBCA16DCAD1E9C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.C8DBCA16DCAD1E9C.idx new file mode 100644 index 0000000..490d164 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.C8DBCA16DCAD1E9C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.D8D5177B945B6A00.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.D8D5177B945B6A00.idx new file mode 100644 index 0000000..5abedde Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.D8D5177B945B6A00.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.DC0FA19630293650.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.DC0FA19630293650.idx new file mode 100644 index 0000000..2e9003e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/button.h.DC0FA19630293650.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.c.B7BF61011B41B9BA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.c.B7BF61011B41B9BA.idx new file mode 100644 index 0000000..bbc75f9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.c.B7BF61011B41B9BA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.c.DF083705DF599114.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.c.DF083705DF599114.idx new file mode 100644 index 0000000..d33750d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.c.DF083705DF599114.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.1703BDE254CDEA3A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.1703BDE254CDEA3A.idx new file mode 100644 index 0000000..420515e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.1703BDE254CDEA3A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.2B4698007FD724FB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.2B4698007FD724FB.idx new file mode 100644 index 0000000..6bfe19f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.2B4698007FD724FB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.8B4B52E882D3A80E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.8B4B52E882D3A80E.idx new file mode 100644 index 0000000..bde282d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/control_rly.h.8B4B52E882D3A80E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.003D6C590E169399.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.003D6C590E169399.idx new file mode 100644 index 0000000..89ea4c0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.003D6C590E169399.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.0F90FC27597C1482.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.0F90FC27597C1482.idx new file mode 100644 index 0000000..89ea479 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.0F90FC27597C1482.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.10AD6F83405C4149.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.10AD6F83405C4149.idx new file mode 100644 index 0000000..625db45 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.10AD6F83405C4149.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.181ABB6D153D3A08.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.181ABB6D153D3A08.idx new file mode 100644 index 0000000..c47f3c2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.181ABB6D153D3A08.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.1FBFF025EFF4B999.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.1FBFF025EFF4B999.idx new file mode 100644 index 0000000..f649504 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.1FBFF025EFF4B999.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.2D1A0D4EDEE44BAF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.2D1A0D4EDEE44BAF.idx new file mode 100644 index 0000000..22b692f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.2D1A0D4EDEE44BAF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.32D6657ACA9049F6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.32D6657ACA9049F6.idx new file mode 100644 index 0000000..ee960a2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.32D6657ACA9049F6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3CA9FA7DF6B44253.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3CA9FA7DF6B44253.idx new file mode 100644 index 0000000..67b7504 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3CA9FA7DF6B44253.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3E1A82C8087F016A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3E1A82C8087F016A.idx new file mode 100644 index 0000000..02f1485 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3E1A82C8087F016A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3F128C30F477DA28.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3F128C30F477DA28.idx new file mode 100644 index 0000000..f3aac54 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3F128C30F477DA28.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3F63A65E8CE503FB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3F63A65E8CE503FB.idx new file mode 100644 index 0000000..e3e7649 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.3F63A65E8CE503FB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.4619C5030AFFCF8C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.4619C5030AFFCF8C.idx new file mode 100644 index 0000000..73afb8a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.4619C5030AFFCF8C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.4E1160F6D7C0D732.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.4E1160F6D7C0D732.idx new file mode 100644 index 0000000..939cf2b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.4E1160F6D7C0D732.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.6313863FBBA40D0E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.6313863FBBA40D0E.idx new file mode 100644 index 0000000..d1ab787 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.6313863FBBA40D0E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.67011A8CE37EA63D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.67011A8CE37EA63D.idx new file mode 100644 index 0000000..97499f2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.67011A8CE37EA63D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.817B688E05CB122F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.817B688E05CB122F.idx new file mode 100644 index 0000000..c6e9b31 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.817B688E05CB122F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.87284442D92573FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.87284442D92573FE.idx new file mode 100644 index 0000000..0256444 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.87284442D92573FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.9F19AFD3B1ABE953.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.9F19AFD3B1ABE953.idx new file mode 100644 index 0000000..7840ace Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.9F19AFD3B1ABE953.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.B6BC7FC1E5E93970.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.B6BC7FC1E5E93970.idx new file mode 100644 index 0000000..76773f1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.B6BC7FC1E5E93970.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.C41AD3D47F589DDA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.C41AD3D47F589DDA.idx new file mode 100644 index 0000000..f687a4e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.C41AD3D47F589DDA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.C71A9113B7337AF9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.C71A9113B7337AF9.idx new file mode 100644 index 0000000..e3c0f05 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.C71A9113B7337AF9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.CB224E360AE2A087.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.CB224E360AE2A087.idx new file mode 100644 index 0000000..35e1f06 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.CB224E360AE2A087.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.CD0E761E80361BF4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.CD0E761E80361BF4.idx new file mode 100644 index 0000000..a42492e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.CD0E761E80361BF4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.D52651181F313929.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.D52651181F313929.idx new file mode 100644 index 0000000..93ab0d1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.D52651181F313929.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.EA713E63D2AA25C1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.EA713E63D2AA25C1.idx new file mode 100644 index 0000000..b3c4196 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.EA713E63D2AA25C1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F5E560AF5B2CA720.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F5E560AF5B2CA720.idx new file mode 100644 index 0000000..08ec901 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F5E560AF5B2CA720.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F88EE93E093C463E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F88EE93E093C463E.idx new file mode 100644 index 0000000..16a4298 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F88EE93E093C463E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F97AC6D1B2F9A39A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F97AC6D1B2F9A39A.idx new file mode 100644 index 0000000..1216edd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/crt0.S.F97AC6D1B2F9A39A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.293AA48C039F5B3D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.293AA48C039F5B3D.idx new file mode 100644 index 0000000..a551ed0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.293AA48C039F5B3D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.62941EDA2FB90940.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.62941EDA2FB90940.idx new file mode 100644 index 0000000..239bc14 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.62941EDA2FB90940.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.658675461783206F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.658675461783206F.idx new file mode 100644 index 0000000..6b49017 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.658675461783206F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.6CAFFF41A045F9F0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.6CAFFF41A045F9F0.idx new file mode 100644 index 0000000..e170915 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.6CAFFF41A045F9F0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.86689FD30236AB6E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.86689FD30236AB6E.idx new file mode 100644 index 0000000..ecca96b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.86689FD30236AB6E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.E8EF7DDFE44AC74C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.E8EF7DDFE44AC74C.idx new file mode 100644 index 0000000..9c114dc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.E8EF7DDFE44AC74C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.FBD62CC523081DC4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.FBD62CC523081DC4.idx new file mode 100644 index 0000000..41e1d38 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.c.FBD62CC523081DC4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.085C51011B470B93.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.085C51011B470B93.idx new file mode 100644 index 0000000..b473d43 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.085C51011B470B93.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.1F8149A1D2C63DD7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.1F8149A1D2C63DD7.idx new file mode 100644 index 0000000..48b3d83 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.1F8149A1D2C63DD7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.39154DE6D0D9E3FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.39154DE6D0D9E3FE.idx new file mode 100644 index 0000000..4e853fb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.39154DE6D0D9E3FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.5FF23A3D4EF5EC35.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.5FF23A3D4EF5EC35.idx new file mode 100644 index 0000000..7f362e2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.5FF23A3D4EF5EC35.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.BF48520218470C8B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.BF48520218470C8B.idx new file mode 100644 index 0000000..7f22e92 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.BF48520218470C8B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.C25361F08560E35E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.C25361F08560E35E.idx new file mode 100644 index 0000000..21e1dcd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.C25361F08560E35E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.FBC84615363E9E85.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.FBC84615363E9E85.idx new file mode 100644 index 0000000..c3a171c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.FBC84615363E9E85.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.FEB9113AF64667F0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.FEB9113AF64667F0.idx new file mode 100644 index 0000000..bb38d32 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/det_energy.h.FEB9113AF64667F0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.0ADE168D10DC1B0E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.0ADE168D10DC1B0E.idx new file mode 100644 index 0000000..cfeafc9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.0ADE168D10DC1B0E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.2B77E87C2ADCC4DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.2B77E87C2ADCC4DC.idx new file mode 100644 index 0000000..551bcfc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.2B77E87C2ADCC4DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.569FBA354A46A1F0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.569FBA354A46A1F0.idx new file mode 100644 index 0000000..54d51e2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.569FBA354A46A1F0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.5A0C33FEA137CE18.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.5A0C33FEA137CE18.idx new file mode 100644 index 0000000..d3751a5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.5A0C33FEA137CE18.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.6C75781A563F14D1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.6C75781A563F14D1.idx new file mode 100644 index 0000000..76d42b7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.6C75781A563F14D1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.6C88A3B572BFDE47.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.6C88A3B572BFDE47.idx new file mode 100644 index 0000000..78678ce Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.6C88A3B572BFDE47.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.86631CBC0DB8CB71.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.86631CBC0DB8CB71.idx new file mode 100644 index 0000000..bc7117e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.86631CBC0DB8CB71.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.C0528A210CED426F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.C0528A210CED426F.idx new file mode 100644 index 0000000..5f6171a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.C0528A210CED426F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.DE7877D7E645C3BA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.DE7877D7E645C3BA.idx new file mode 100644 index 0000000..72f0dbb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.c.DE7877D7E645C3BA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.011E90C7D714997D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.011E90C7D714997D.idx new file mode 100644 index 0000000..9b875f3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.011E90C7D714997D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.04DD1678D83F30FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.04DD1678D83F30FE.idx new file mode 100644 index 0000000..2d3761c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.04DD1678D83F30FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.0DE433855512F32B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.0DE433855512F32B.idx new file mode 100644 index 0000000..53721bf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.0DE433855512F32B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.0DF6C7B8C7537814.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.0DF6C7B8C7537814.idx new file mode 100644 index 0000000..7c53a54 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.0DF6C7B8C7537814.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.5F0432680C6615DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.5F0432680C6615DC.idx new file mode 100644 index 0000000..d3adf98 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.5F0432680C6615DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.837A211F77ABEF95.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.837A211F77ABEF95.idx new file mode 100644 index 0000000..01ba82a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.837A211F77ABEF95.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.998EC9070005E3E9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.998EC9070005E3E9.idx new file mode 100644 index 0000000..0c9b2ba Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.998EC9070005E3E9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.B3B4AEF7A1319432.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.B3B4AEF7A1319432.idx new file mode 100644 index 0000000..e06db57 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.B3B4AEF7A1319432.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.D5ACFF64513B5CF2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.D5ACFF64513B5CF2.idx new file mode 100644 index 0000000..a6e544b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.D5ACFF64513B5CF2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.FC1C9295C03E3C27.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.FC1C9295C03E3C27.idx new file mode 100644 index 0000000..2428666 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/dip_switch.h.FC1C9295C03E3C27.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.1CA182CA54BADDCA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.1CA182CA54BADDCA.idx new file mode 100644 index 0000000..3e7fe27 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.1CA182CA54BADDCA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.3DF1AFF66B394365.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.3DF1AFF66B394365.idx new file mode 100644 index 0000000..4958a7a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.3DF1AFF66B394365.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.669D580574872417.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.669D580574872417.idx new file mode 100644 index 0000000..7f6c8b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.669D580574872417.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.844719D7B704DC1D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.844719D7B704DC1D.idx new file mode 100644 index 0000000..833a92c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.844719D7B704DC1D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.869F0AF5FBEE5C52.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.869F0AF5FBEE5C52.idx new file mode 100644 index 0000000..abd4d7c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.869F0AF5FBEE5C52.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.90AF1A05C6271DAF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.90AF1A05C6271DAF.idx new file mode 100644 index 0000000..d5df7be Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.90AF1A05C6271DAF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.9C74202A461F998E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.9C74202A461F998E.idx new file mode 100644 index 0000000..f85c419 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.9C74202A461F998E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.C69A03365CDB03A4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.C69A03365CDB03A4.idx new file mode 100644 index 0000000..2c7cbec Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.C69A03365CDB03A4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.EEE0587C8FF1925C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.EEE0587C8FF1925C.idx new file mode 100644 index 0000000..185c889 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.c.EEE0587C8FF1925C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.0726C1F157FCAED9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.0726C1F157FCAED9.idx new file mode 100644 index 0000000..1dbd60a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.0726C1F157FCAED9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.290F35D175242A26.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.290F35D175242A26.idx new file mode 100644 index 0000000..89964ed Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.290F35D175242A26.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.4554624349AF7BA8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.4554624349AF7BA8.idx new file mode 100644 index 0000000..e140426 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.4554624349AF7BA8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.4FB38A037764958F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.4FB38A037764958F.idx new file mode 100644 index 0000000..b304680 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.4FB38A037764958F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.8F56247967379772.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.8F56247967379772.idx new file mode 100644 index 0000000..28abf1f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.8F56247967379772.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.B0943F592E8E165F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.B0943F592E8E165F.idx new file mode 100644 index 0000000..9921a1e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.B0943F592E8E165F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.B5B44329A4DAF44F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.B5B44329A4DAF44F.idx new file mode 100644 index 0000000..c03622a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.B5B44329A4DAF44F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.C82DCE0628857A7F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.C82DCE0628857A7F.idx new file mode 100644 index 0000000..0375551 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.C82DCE0628857A7F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.D0B3B112B87F2B7F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.D0B3B112B87F2B7F.idx new file mode 100644 index 0000000..e51b439 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.D0B3B112B87F2B7F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.E7DC96DFA722DEB7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.E7DC96DFA722DEB7.idx new file mode 100644 index 0000000..3673844 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/eeprom.h.E7DC96DFA722DEB7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/endian.h.531AA9A4260A5B43.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/endian.h.531AA9A4260A5B43.idx new file mode 100644 index 0000000..3e3a50a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/endian.h.531AA9A4260A5B43.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx new file mode 100644 index 0000000..97450e2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx new file mode 100644 index 0000000..b8b78df Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx new file mode 100644 index 0000000..b9352fc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx new file mode 100644 index 0000000..9a16aed Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/fram_i2c.h.81F5F18AA36DAE46.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/fram_i2c.h.81F5F18AA36DAE46.idx new file mode 100644 index 0000000..5788cfa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/fram_i2c.h.81F5F18AA36DAE46.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.051BDA5544A6ECC0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.051BDA5544A6ECC0.idx new file mode 100644 index 0000000..6919d7d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.051BDA5544A6ECC0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.063DAEB7E7527CCA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.063DAEB7E7527CCA.idx new file mode 100644 index 0000000..c45f486 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.063DAEB7E7527CCA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.1443364CB9CED5B2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.1443364CB9CED5B2.idx new file mode 100644 index 0000000..b679282 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.1443364CB9CED5B2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.1A84F14E7FC133D6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.1A84F14E7FC133D6.idx new file mode 100644 index 0000000..820df3a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.1A84F14E7FC133D6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.22178D5DD09B8200.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.22178D5DD09B8200.idx new file mode 100644 index 0000000..5b35689 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.22178D5DD09B8200.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.35A6CBCE210EDB0F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.35A6CBCE210EDB0F.idx new file mode 100644 index 0000000..f75fb49 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.35A6CBCE210EDB0F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.376263CDC91F7D83.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.376263CDC91F7D83.idx new file mode 100644 index 0000000..bbbc18c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.376263CDC91F7D83.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.4D20A27BCF3666CC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.4D20A27BCF3666CC.idx new file mode 100644 index 0000000..3ed284b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.4D20A27BCF3666CC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.4E0DC4A32570C7DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.4E0DC4A32570C7DC.idx new file mode 100644 index 0000000..9e7e434 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.4E0DC4A32570C7DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.50735649337B2F00.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.50735649337B2F00.idx new file mode 100644 index 0000000..0250c03 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.50735649337B2F00.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.5DE8F0846E1CE261.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.5DE8F0846E1CE261.idx new file mode 100644 index 0000000..1dd7937 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.5DE8F0846E1CE261.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.5E9DB012B7403259.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.5E9DB012B7403259.idx new file mode 100644 index 0000000..f05931c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.5E9DB012B7403259.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.65EA8BC29D6BAB45.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.65EA8BC29D6BAB45.idx new file mode 100644 index 0000000..474af82 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.65EA8BC29D6BAB45.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.69B347FD9BD95B8C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.69B347FD9BD95B8C.idx new file mode 100644 index 0000000..33f5774 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.69B347FD9BD95B8C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.734DF342995E4BC8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.734DF342995E4BC8.idx new file mode 100644 index 0000000..e40ae2d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.734DF342995E4BC8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.834A5AC52B86F409.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.834A5AC52B86F409.idx new file mode 100644 index 0000000..89d3a20 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.834A5AC52B86F409.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.9627A83A5E2FBA10.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.9627A83A5E2FBA10.idx new file mode 100644 index 0000000..baabf8a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.9627A83A5E2FBA10.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.AFB2C4DE8AD77DB9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.AFB2C4DE8AD77DB9.idx new file mode 100644 index 0000000..d8ce975 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.AFB2C4DE8AD77DB9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.B4472209897B2A4B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.B4472209897B2A4B.idx new file mode 100644 index 0000000..8f714ed Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.B4472209897B2A4B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BA2309346E455D4D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BA2309346E455D4D.idx new file mode 100644 index 0000000..ed57639 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BA2309346E455D4D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BA70F78CC3CD7050.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BA70F78CC3CD7050.idx new file mode 100644 index 0000000..3ca01b4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BA70F78CC3CD7050.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BB4C96D8995FA3C7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BB4C96D8995FA3C7.idx new file mode 100644 index 0000000..498f770 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.BB4C96D8995FA3C7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.C05FA6A94D677483.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.C05FA6A94D677483.idx new file mode 100644 index 0000000..0d18244 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.C05FA6A94D677483.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DBC937F24F183EFE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DBC937F24F183EFE.idx new file mode 100644 index 0000000..ec69dc6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DBC937F24F183EFE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DBDA550D32595C95.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DBDA550D32595C95.idx new file mode 100644 index 0000000..e6fd4a5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DBDA550D32595C95.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DD922196F53BFBA4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DD922196F53BFBA4.idx new file mode 100644 index 0000000..50f3b7a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.DD922196F53BFBA4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.E20465E81F203D1F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.E20465E81F203D1F.idx new file mode 100644 index 0000000..b04583f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.E20465E81F203D1F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.EEF8F506EF4307FF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.EEF8F506EF4307FF.idx new file mode 100644 index 0000000..0ffaf2a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/includes.h.EEF8F506EF4307FF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx new file mode 100644 index 0000000..7ba36e3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx new file mode 100644 index 0000000..9c903fa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.023BDDC07570A89C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.023BDDC07570A89C.idx new file mode 100644 index 0000000..9d24aa6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.023BDDC07570A89C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.0654423D2F935DB0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.0654423D2F935DB0.idx new file mode 100644 index 0000000..3e9fce0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.0654423D2F935DB0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.06BB5748DEC09A05.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.06BB5748DEC09A05.idx new file mode 100644 index 0000000..88d28c3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.06BB5748DEC09A05.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.11F39B5088DAF83B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.11F39B5088DAF83B.idx new file mode 100644 index 0000000..a8b9922 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.11F39B5088DAF83B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.1716B6E241A65039.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.1716B6E241A65039.idx new file mode 100644 index 0000000..4b099ce Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.1716B6E241A65039.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.1860F86AECDD92E5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.1860F86AECDD92E5.idx new file mode 100644 index 0000000..a29ca27 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.1860F86AECDD92E5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.23466E5DB4FBF66A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.23466E5DB4FBF66A.idx new file mode 100644 index 0000000..e4d00de Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.23466E5DB4FBF66A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.2B69AA579439D479.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.2B69AA579439D479.idx new file mode 100644 index 0000000..adc7ca4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.2B69AA579439D479.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.2EEB0829E05FF996.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.2EEB0829E05FF996.idx new file mode 100644 index 0000000..ea4667c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.2EEB0829E05FF996.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.3961AA4E23DD6D13.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.3961AA4E23DD6D13.idx new file mode 100644 index 0000000..dc2c311 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.3961AA4E23DD6D13.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.4ABD461D43902A89.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.4ABD461D43902A89.idx new file mode 100644 index 0000000..8b5bd62 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.4ABD461D43902A89.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.5162D438F0FF6C90.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.5162D438F0FF6C90.idx new file mode 100644 index 0000000..f675e5e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.5162D438F0FF6C90.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.65263F13680F01C8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.65263F13680F01C8.idx new file mode 100644 index 0000000..606dafc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.65263F13680F01C8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.984296D15D1B622D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.984296D15D1B622D.idx new file mode 100644 index 0000000..1db6ed8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.984296D15D1B622D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.B607754CF334FA78.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.B607754CF334FA78.idx new file mode 100644 index 0000000..2770607 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.B607754CF334FA78.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.B88824D17D38547B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.B88824D17D38547B.idx new file mode 100644 index 0000000..d3452ab Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.B88824D17D38547B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.BD2EE4B3E20606C4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.BD2EE4B3E20606C4.idx new file mode 100644 index 0000000..3822afc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.BD2EE4B3E20606C4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.E4E99FCD812AC809.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.E4E99FCD812AC809.idx new file mode 100644 index 0000000..b5a39e2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.E4E99FCD812AC809.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.EDA051FB5CBEAAA1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.EDA051FB5CBEAAA1.idx new file mode 100644 index 0000000..9f2baf6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.c.EDA051FB5CBEAAA1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.087BF9BA3B918D26.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.087BF9BA3B918D26.idx new file mode 100644 index 0000000..cb2b0f9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.087BF9BA3B918D26.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.21387157C5ACFEDA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.21387157C5ACFEDA.idx new file mode 100644 index 0000000..a20dd40 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.21387157C5ACFEDA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.23028EBFAAC71FCE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.23028EBFAAC71FCE.idx new file mode 100644 index 0000000..1477e97 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.23028EBFAAC71FCE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.44C27F557CE748F3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.44C27F557CE748F3.idx new file mode 100644 index 0000000..76fadbd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.44C27F557CE748F3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.4792E8C23D7F2D6B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.4792E8C23D7F2D6B.idx new file mode 100644 index 0000000..ef7a74e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.4792E8C23D7F2D6B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.4BC10DC13760BC1E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.4BC10DC13760BC1E.idx new file mode 100644 index 0000000..9088510 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.4BC10DC13760BC1E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.60AFED4CF936FD94.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.60AFED4CF936FD94.idx new file mode 100644 index 0000000..c9bf27d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.60AFED4CF936FD94.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.6697271A315EBE9F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.6697271A315EBE9F.idx new file mode 100644 index 0000000..f22c5a9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.6697271A315EBE9F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.8168288B29F6C156.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.8168288B29F6C156.idx new file mode 100644 index 0000000..27b9476 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.8168288B29F6C156.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.85668F0E42D09196.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.85668F0E42D09196.idx new file mode 100644 index 0000000..b6661a9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.85668F0E42D09196.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.86B1CB9E61D247A4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.86B1CB9E61D247A4.idx new file mode 100644 index 0000000..8456078 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.86B1CB9E61D247A4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.88B085F3AE59CD82.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.88B085F3AE59CD82.idx new file mode 100644 index 0000000..8583ca9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.88B085F3AE59CD82.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.8F32D0E0B316D1D9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.8F32D0E0B316D1D9.idx new file mode 100644 index 0000000..c3b785b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.8F32D0E0B316D1D9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.A29F1EA97330FD25.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.A29F1EA97330FD25.idx new file mode 100644 index 0000000..79d79cf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.A29F1EA97330FD25.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.BB02D3C22988460C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.BB02D3C22988460C.idx new file mode 100644 index 0000000..76fe16b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.BB02D3C22988460C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.CE261400DB631E63.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.CE261400DB631E63.idx new file mode 100644 index 0000000..fea73b2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.CE261400DB631E63.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.CFD2FF0E4A7B8D4C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.CFD2FF0E4A7B8D4C.idx new file mode 100644 index 0000000..1dced09 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.CFD2FF0E4A7B8D4C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.E198FB89C5273208.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.E198FB89C5273208.idx new file mode 100644 index 0000000..eaef55a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.E198FB89C5273208.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.E9B7022C1CF2ECE2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.E9B7022C1CF2ECE2.idx new file mode 100644 index 0000000..7835f83 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/logic_ctrl.h.E9B7022C1CF2ECE2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.004E5857DD56D833.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.004E5857DD56D833.idx new file mode 100644 index 0000000..1e64e03 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.004E5857DD56D833.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.0112ED40803290F7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.0112ED40803290F7.idx new file mode 100644 index 0000000..3de9fb1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.0112ED40803290F7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.10D6BD1FF720E7FA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.10D6BD1FF720E7FA.idx new file mode 100644 index 0000000..6cefc58 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.10D6BD1FF720E7FA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.304961BB2513AD63.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.304961BB2513AD63.idx new file mode 100644 index 0000000..2637e5d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.304961BB2513AD63.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.31E2C35D8B385D14.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.31E2C35D8B385D14.idx new file mode 100644 index 0000000..41570af Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.31E2C35D8B385D14.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.4044664962E8DBB4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.4044664962E8DBB4.idx new file mode 100644 index 0000000..6386a92 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.4044664962E8DBB4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.449569339D1E31E4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.449569339D1E31E4.idx new file mode 100644 index 0000000..27e1416 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.449569339D1E31E4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.4AB50BFD8BD0231F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.4AB50BFD8BD0231F.idx new file mode 100644 index 0000000..bc10aa3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.4AB50BFD8BD0231F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6196A2D7E9E540F9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6196A2D7E9E540F9.idx new file mode 100644 index 0000000..7670ec1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6196A2D7E9E540F9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.65425DB2196D5D53.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.65425DB2196D5D53.idx new file mode 100644 index 0000000..33c7230 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.65425DB2196D5D53.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6B4240CAF4C062AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6B4240CAF4C062AB.idx new file mode 100644 index 0000000..65c0cd9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6B4240CAF4C062AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6C8C9FE9F7C6418E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6C8C9FE9F7C6418E.idx new file mode 100644 index 0000000..308c867 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6C8C9FE9F7C6418E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6F3B59014F29F05A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6F3B59014F29F05A.idx new file mode 100644 index 0000000..eb9750a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.6F3B59014F29F05A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.87E8BEAD0E967A86.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.87E8BEAD0E967A86.idx new file mode 100644 index 0000000..4c4ff72 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.87E8BEAD0E967A86.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.9056C77331ACB402.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.9056C77331ACB402.idx new file mode 100644 index 0000000..2edada7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.9056C77331ACB402.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.92D106D476029E46.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.92D106D476029E46.idx new file mode 100644 index 0000000..29db462 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.92D106D476029E46.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.9BFB4954FC633BE8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.9BFB4954FC633BE8.idx new file mode 100644 index 0000000..c1d1d93 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.9BFB4954FC633BE8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.A72807B7E51E7981.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.A72807B7E51E7981.idx new file mode 100644 index 0000000..4270262 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.A72807B7E51E7981.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.A80E80BF7A571CDD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.A80E80BF7A571CDD.idx new file mode 100644 index 0000000..1737b43 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.A80E80BF7A571CDD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.B64A44322588BE24.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.B64A44322588BE24.idx new file mode 100644 index 0000000..5cc07da Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.B64A44322588BE24.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.C2636C6182FCB0CC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.C2636C6182FCB0CC.idx new file mode 100644 index 0000000..b352712 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.C2636C6182FCB0CC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.CAD527B510F4E9E9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.CAD527B510F4E9E9.idx new file mode 100644 index 0000000..e045187 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.CAD527B510F4E9E9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.CDBA283B19A2C0D8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.CDBA283B19A2C0D8.idx new file mode 100644 index 0000000..2c1cc45 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.CDBA283B19A2C0D8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.DD710A1CF1BC0950.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.DD710A1CF1BC0950.idx new file mode 100644 index 0000000..b9b2c69 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.DD710A1CF1BC0950.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.ED14E317791A8C94.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.ED14E317791A8C94.idx new file mode 100644 index 0000000..36d49ee Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.ED14E317791A8C94.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.F06AB8EEA16F1BE8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.F06AB8EEA16F1BE8.idx new file mode 100644 index 0000000..40e6c4d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.F06AB8EEA16F1BE8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.F204C258301C0E5E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.F204C258301C0E5E.idx new file mode 100644 index 0000000..141a849 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.F204C258301C0E5E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.FB2ED354992BE2FF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.FB2ED354992BE2FF.idx new file mode 100644 index 0000000..c317f1d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/macro.h.FB2ED354992BE2FF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.064C8F9D5D8D74A5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.064C8F9D5D8D74A5.idx new file mode 100644 index 0000000..66e11ee Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.064C8F9D5D8D74A5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.07273B4E45B9BABD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.07273B4E45B9BABD.idx new file mode 100644 index 0000000..7f620aa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.07273B4E45B9BABD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.1111B6AFB282C0AF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.1111B6AFB282C0AF.idx new file mode 100644 index 0000000..5a2114f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.1111B6AFB282C0AF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.325417170E0582CD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.325417170E0582CD.idx new file mode 100644 index 0000000..a3a6734 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.325417170E0582CD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.3B45C3D495F12CEF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.3B45C3D495F12CEF.idx new file mode 100644 index 0000000..2dbe7cb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.3B45C3D495F12CEF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.3CE3FA86F4982DC7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.3CE3FA86F4982DC7.idx new file mode 100644 index 0000000..ba4c4bb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.3CE3FA86F4982DC7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.41DE9E0D2389A8F4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.41DE9E0D2389A8F4.idx new file mode 100644 index 0000000..00b890f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.41DE9E0D2389A8F4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.481808B27F16F481.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.481808B27F16F481.idx new file mode 100644 index 0000000..b046e7b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.481808B27F16F481.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.5E7725413AD872AB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.5E7725413AD872AB.idx new file mode 100644 index 0000000..a58fe3b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.5E7725413AD872AB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.61D71160A4B82BE2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.61D71160A4B82BE2.idx new file mode 100644 index 0000000..ee73111 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.61D71160A4B82BE2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.660E8E5D1FBBB7CE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.660E8E5D1FBBB7CE.idx new file mode 100644 index 0000000..c4a5c21 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.660E8E5D1FBBB7CE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.7030979A17FA45F6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.7030979A17FA45F6.idx new file mode 100644 index 0000000..3771bec Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.7030979A17FA45F6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.81EF166862839FE6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.81EF166862839FE6.idx new file mode 100644 index 0000000..43e803a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.81EF166862839FE6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.8AC3D5662245BFEE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.8AC3D5662245BFEE.idx new file mode 100644 index 0000000..16f13e6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.8AC3D5662245BFEE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.8EE8AEAA2BA09DAD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.8EE8AEAA2BA09DAD.idx new file mode 100644 index 0000000..1150c6b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.8EE8AEAA2BA09DAD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.95CC15AF16AEA2EE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.95CC15AF16AEA2EE.idx new file mode 100644 index 0000000..840af5c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.95CC15AF16AEA2EE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.9C11E5636BE269A4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.9C11E5636BE269A4.idx new file mode 100644 index 0000000..95cc088 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.9C11E5636BE269A4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.A01FB229C3E05DE2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.A01FB229C3E05DE2.idx new file mode 100644 index 0000000..42e53c7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.A01FB229C3E05DE2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.A1A3447AA0508078.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.A1A3447AA0508078.idx new file mode 100644 index 0000000..d137360 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.A1A3447AA0508078.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.ADFE8D64A1CC0623.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.ADFE8D64A1CC0623.idx new file mode 100644 index 0000000..b446d93 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.ADFE8D64A1CC0623.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.B3C4777A0FD610E9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.B3C4777A0FD610E9.idx new file mode 100644 index 0000000..3e5d80f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.B3C4777A0FD610E9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.C113BBBA14E28738.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.C113BBBA14E28738.idx new file mode 100644 index 0000000..d9318c2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.C113BBBA14E28738.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.CF062D34FC30E8B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.CF062D34FC30E8B0.idx new file mode 100644 index 0000000..efbdb41 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.CF062D34FC30E8B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.DB283774F0EE8FBD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.DB283774F0EE8FBD.idx new file mode 100644 index 0000000..bdc2b86 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.DB283774F0EE8FBD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.DEA561F88823A03F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.DEA561F88823A03F.idx new file mode 100644 index 0000000..6ee4e86 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.DEA561F88823A03F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E47F366C61575876.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E47F366C61575876.idx new file mode 100644 index 0000000..11857b2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E47F366C61575876.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E885BFE25BCC51F5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E885BFE25BCC51F5.idx new file mode 100644 index 0000000..44b7204 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E885BFE25BCC51F5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E8B4AEA44DB25E68.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E8B4AEA44DB25E68.idx new file mode 100644 index 0000000..2fe869a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/main.c.E8B4AEA44DB25E68.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math.h.4F29671821A35A0B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math.h.4F29671821A35A0B.idx new file mode 100644 index 0000000..d030cfb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math.h.4F29671821A35A0B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math.h.D1DB4FC8BA6938DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math.h.D1DB4FC8BA6938DC.idx new file mode 100644 index 0000000..af15b7d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math.h.D1DB4FC8BA6938DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math_private.h.9C9CE30E6188134D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math_private.h.9C9CE30E6188134D.idx new file mode 100644 index 0000000..e3626cf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/math_private.h.9C9CE30E6188134D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.01F81AB9E4F70F7B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.01F81AB9E4F70F7B.idx new file mode 100644 index 0000000..24f892b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.01F81AB9E4F70F7B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.03A3E53D0E1AF175.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.03A3E53D0E1AF175.idx new file mode 100644 index 0000000..e071fa7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.03A3E53D0E1AF175.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.05E0787F8922D159.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.05E0787F8922D159.idx new file mode 100644 index 0000000..9c6ecfb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.05E0787F8922D159.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.1CEBEF152B99145E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.1CEBEF152B99145E.idx new file mode 100644 index 0000000..4b3b36b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.1CEBEF152B99145E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.1DF1A4A21D05EF47.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.1DF1A4A21D05EF47.idx new file mode 100644 index 0000000..8cdd281 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.1DF1A4A21D05EF47.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.24EB574F1D91EDFE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.24EB574F1D91EDFE.idx new file mode 100644 index 0000000..e8ef290 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.24EB574F1D91EDFE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.271053046F23AC8F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.271053046F23AC8F.idx new file mode 100644 index 0000000..bf938fe Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.271053046F23AC8F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.2A38D94A61A3F5A8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.2A38D94A61A3F5A8.idx new file mode 100644 index 0000000..40d1880 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.2A38D94A61A3F5A8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.2D3A29C78F27EB13.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.2D3A29C78F27EB13.idx new file mode 100644 index 0000000..aa36abd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.2D3A29C78F27EB13.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.3091B3E25B8251E5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.3091B3E25B8251E5.idx new file mode 100644 index 0000000..cb8f6cd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.3091B3E25B8251E5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.3B0CDC4E2CAD60CD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.3B0CDC4E2CAD60CD.idx new file mode 100644 index 0000000..8f7ebe2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.3B0CDC4E2CAD60CD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.462131716461077D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.462131716461077D.idx new file mode 100644 index 0000000..f235f62 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.462131716461077D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.6229C2858DDE8E2B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.6229C2858DDE8E2B.idx new file mode 100644 index 0000000..c7be4c2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.6229C2858DDE8E2B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.6A43BF8E659DF200.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.6A43BF8E659DF200.idx new file mode 100644 index 0000000..ed3c3b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.6A43BF8E659DF200.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.737F02C91BF006EA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.737F02C91BF006EA.idx new file mode 100644 index 0000000..0d01e92 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.737F02C91BF006EA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.7D8B025E93621E5A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.7D8B025E93621E5A.idx new file mode 100644 index 0000000..6988c3c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.7D8B025E93621E5A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.9462D790D89F8BF7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.9462D790D89F8BF7.idx new file mode 100644 index 0000000..18c6e39 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.9462D790D89F8BF7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.957A6EF47AA221B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.957A6EF47AA221B1.idx new file mode 100644 index 0000000..a770f61 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.957A6EF47AA221B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.A8F589DC612CF352.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.A8F589DC612CF352.idx new file mode 100644 index 0000000..7a89155 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.A8F589DC612CF352.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.AE3A3B8269D3294E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.AE3A3B8269D3294E.idx new file mode 100644 index 0000000..4af4e09 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.AE3A3B8269D3294E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.B8F58434CB5F9AD8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.B8F58434CB5F9AD8.idx new file mode 100644 index 0000000..d6ad1bc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.B8F58434CB5F9AD8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.B9BC5A84C4785642.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.B9BC5A84C4785642.idx new file mode 100644 index 0000000..6e85d6a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.B9BC5A84C4785642.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.BFEED26C654F0A4E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.BFEED26C654F0A4E.idx new file mode 100644 index 0000000..d6d5a68 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.BFEED26C654F0A4E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.DD6B7886E5C85878.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.DD6B7886E5C85878.idx new file mode 100644 index 0000000..011e256 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.DD6B7886E5C85878.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.E89D5934A6828717.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.E89D5934A6828717.idx new file mode 100644 index 0000000..d5b39db Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.E89D5934A6828717.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.F94EA0E168C7AAAA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.F94EA0E168C7AAAA.idx new file mode 100644 index 0000000..35092d5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.F94EA0E168C7AAAA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.F9ECAE7DCE707C46.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.F9ECAE7DCE707C46.idx new file mode 100644 index 0000000..2ded21a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.F9ECAE7DCE707C46.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.FE41D8C30E1294ED.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.FE41D8C30E1294ED.idx new file mode 100644 index 0000000..008f236 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_initial.c.FE41D8C30E1294ED.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.00FB2FCA0BB5CE79.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.00FB2FCA0BB5CE79.idx new file mode 100644 index 0000000..5dfe76c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.00FB2FCA0BB5CE79.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.02FA989B3DF64EF2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.02FA989B3DF64EF2.idx new file mode 100644 index 0000000..9c66c50 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.02FA989B3DF64EF2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.13CF278CD4F30A4B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.13CF278CD4F30A4B.idx new file mode 100644 index 0000000..79cee43 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.13CF278CD4F30A4B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.14B74A3AB384B7FA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.14B74A3AB384B7FA.idx new file mode 100644 index 0000000..fe46c63 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.14B74A3AB384B7FA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.285B2A1FAA0458E2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.285B2A1FAA0458E2.idx new file mode 100644 index 0000000..b3fca00 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.285B2A1FAA0458E2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.29D47EDCB97DB705.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.29D47EDCB97DB705.idx new file mode 100644 index 0000000..419c682 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.29D47EDCB97DB705.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.34CD9CB1D8067840.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.34CD9CB1D8067840.idx new file mode 100644 index 0000000..7478767 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.34CD9CB1D8067840.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.3B705D7DA1B2FA90.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.3B705D7DA1B2FA90.idx new file mode 100644 index 0000000..2a40d3c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.3B705D7DA1B2FA90.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.447FE53B9394A8C2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.447FE53B9394A8C2.idx new file mode 100644 index 0000000..00b32c4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.447FE53B9394A8C2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.44F97E48D63E6329.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.44F97E48D63E6329.idx new file mode 100644 index 0000000..b110424 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.44F97E48D63E6329.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.46F5EE7174E44002.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.46F5EE7174E44002.idx new file mode 100644 index 0000000..57742d4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.46F5EE7174E44002.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.490E9EAAA96BE146.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.490E9EAAA96BE146.idx new file mode 100644 index 0000000..98cd577 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.490E9EAAA96BE146.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.50222A8ADF44C753.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.50222A8ADF44C753.idx new file mode 100644 index 0000000..41519d4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.50222A8ADF44C753.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5F42833FC47DD66F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5F42833FC47DD66F.idx new file mode 100644 index 0000000..799408f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5F42833FC47DD66F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.77310BB7D89D854D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.77310BB7D89D854D.idx new file mode 100644 index 0000000..e7f39a5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.77310BB7D89D854D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.807FA9DF4001A949.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.807FA9DF4001A949.idx new file mode 100644 index 0000000..76732f6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.807FA9DF4001A949.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.90CAEFCB143A8F00.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.90CAEFCB143A8F00.idx new file mode 100644 index 0000000..d89d0c1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.90CAEFCB143A8F00.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9D7125C052061C58.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9D7125C052061C58.idx new file mode 100644 index 0000000..796c2e1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9D7125C052061C58.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A123013415E1EAAF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A123013415E1EAAF.idx new file mode 100644 index 0000000..227fdc2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A123013415E1EAAF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A8158DD4739FAA9D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A8158DD4739FAA9D.idx new file mode 100644 index 0000000..474b0c8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A8158DD4739FAA9D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B17DAB009B1A7475.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B17DAB009B1A7475.idx new file mode 100644 index 0000000..4995d80 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B17DAB009B1A7475.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B67C5C0423E1983C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B67C5C0423E1983C.idx new file mode 100644 index 0000000..b829400 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B67C5C0423E1983C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CBEA10035F7D5350.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CBEA10035F7D5350.idx new file mode 100644 index 0000000..ad5ab71 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CBEA10035F7D5350.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CCC0F97094479B1A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CCC0F97094479B1A.idx new file mode 100644 index 0000000..ea4b5c5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CCC0F97094479B1A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CD7868A455C55890.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CD7868A455C55890.idx new file mode 100644 index 0000000..9864b5f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CD7868A455C55890.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8350BD2C16E04B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8350BD2C16E04B1.idx new file mode 100644 index 0000000..ceb128c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8350BD2C16E04B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8402B9C52596AD2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8402B9C52596AD2.idx new file mode 100644 index 0000000..95f0087 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8402B9C52596AD2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.E6132CE6A2687750.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.E6132CE6A2687750.idx new file mode 100644 index 0000000..6c3f6d3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mcu_interrupt.c.E6132CE6A2687750.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.02283420A19CD215.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.02283420A19CD215.idx new file mode 100644 index 0000000..a4d3a88 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.02283420A19CD215.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.045AF73673A8DEE0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.045AF73673A8DEE0.idx new file mode 100644 index 0000000..9066791 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.045AF73673A8DEE0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.098CA4B15309341E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.098CA4B15309341E.idx new file mode 100644 index 0000000..102923a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.098CA4B15309341E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.0DFB073D7B2FDEFE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.0DFB073D7B2FDEFE.idx new file mode 100644 index 0000000..165ea4e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.0DFB073D7B2FDEFE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.14D0371C38687884.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.14D0371C38687884.idx new file mode 100644 index 0000000..a7946cc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.14D0371C38687884.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.1F3924DF8578E1A7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.1F3924DF8578E1A7.idx new file mode 100644 index 0000000..718b8c6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.1F3924DF8578E1A7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.27D46D01BD916E49.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.27D46D01BD916E49.idx new file mode 100644 index 0000000..1522943 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.27D46D01BD916E49.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.439D107A49D46A44.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.439D107A49D46A44.idx new file mode 100644 index 0000000..0db8bca Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.439D107A49D46A44.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.49414D3CD5369705.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.49414D3CD5369705.idx new file mode 100644 index 0000000..71d0f2e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.49414D3CD5369705.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.4C584DCC3D3D3527.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.4C584DCC3D3D3527.idx new file mode 100644 index 0000000..c208bf6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.4C584DCC3D3D3527.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.4CEE21836D6F59BB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.4CEE21836D6F59BB.idx new file mode 100644 index 0000000..de46480 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.4CEE21836D6F59BB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.69F040FC8F251042.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.69F040FC8F251042.idx new file mode 100644 index 0000000..94ea2f5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.69F040FC8F251042.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.7965A02BD4C86FC2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.7965A02BD4C86FC2.idx new file mode 100644 index 0000000..5c8d37b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.7965A02BD4C86FC2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8082D5F5EBF0B6B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8082D5F5EBF0B6B1.idx new file mode 100644 index 0000000..f4cf547 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8082D5F5EBF0B6B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.84D8640DA56F74E7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.84D8640DA56F74E7.idx new file mode 100644 index 0000000..6386bbd Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.84D8640DA56F74E7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8A924AA0F2E6F8C3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8A924AA0F2E6F8C3.idx new file mode 100644 index 0000000..39c80ec Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8A924AA0F2E6F8C3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8D8447CCB94C20DC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8D8447CCB94C20DC.idx new file mode 100644 index 0000000..9f78673 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8D8447CCB94C20DC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8E9BD8003CFF6981.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8E9BD8003CFF6981.idx new file mode 100644 index 0000000..0bbd448 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.8E9BD8003CFF6981.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.94C8FD22DD8E77E9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.94C8FD22DD8E77E9.idx new file mode 100644 index 0000000..5e9b63c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.94C8FD22DD8E77E9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.9F5063E52C924F7E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.9F5063E52C924F7E.idx new file mode 100644 index 0000000..6f34848 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.9F5063E52C924F7E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.A42CF3B37E65A88B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.A42CF3B37E65A88B.idx new file mode 100644 index 0000000..3b797e4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.A42CF3B37E65A88B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.B0CAAF3730ED9B82.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.B0CAAF3730ED9B82.idx new file mode 100644 index 0000000..2996476 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.B0CAAF3730ED9B82.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.C1B2130AF14ED4AF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.C1B2130AF14ED4AF.idx new file mode 100644 index 0000000..d6a22c3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.C1B2130AF14ED4AF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.DDDF73223E65FEED.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.DDDF73223E65FEED.idx new file mode 100644 index 0000000..40e4fbb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.DDDF73223E65FEED.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.E821AF30FDA641AE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.E821AF30FDA641AE.idx new file mode 100644 index 0000000..0131e4d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.E821AF30FDA641AE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.EEB0F19293BD3CD0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.EEB0F19293BD3CD0.idx new file mode 100644 index 0000000..e4baa0d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.EEB0F19293BD3CD0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.F3916BE6003B54B4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.F3916BE6003B54B4.idx new file mode 100644 index 0000000..6c42632 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.F3916BE6003B54B4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.FD74EE0A619FCBA9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.FD74EE0A619FCBA9.idx new file mode 100644 index 0000000..72e83c6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/mem_init.c.FD74EE0A619FCBA9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.026785A8D2035E2E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.026785A8D2035E2E.idx new file mode 100644 index 0000000..023906b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.026785A8D2035E2E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.05457C3C942AAB89.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.05457C3C942AAB89.idx new file mode 100644 index 0000000..c2bc68a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.05457C3C942AAB89.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.05B57F7C8153A5C1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.05B57F7C8153A5C1.idx new file mode 100644 index 0000000..98f1227 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.05B57F7C8153A5C1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2B6E8233DD622BC8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2B6E8233DD622BC8.idx new file mode 100644 index 0000000..96bbb58 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2B6E8233DD622BC8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2BEFD8AC8A6B4367.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2BEFD8AC8A6B4367.idx new file mode 100644 index 0000000..1f51e2e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2BEFD8AC8A6B4367.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2DC7F0AFE797F378.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2DC7F0AFE797F378.idx new file mode 100644 index 0000000..67801cf Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.2DC7F0AFE797F378.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.565C4C7F4EB86681.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.565C4C7F4EB86681.idx new file mode 100644 index 0000000..32eafa8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.565C4C7F4EB86681.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.63A271163001C25C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.63A271163001C25C.idx new file mode 100644 index 0000000..446ff5a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.63A271163001C25C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.74CB6B1AA0FF9948.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.74CB6B1AA0FF9948.idx new file mode 100644 index 0000000..e0e1ba5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.74CB6B1AA0FF9948.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.833243B70D2426FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.833243B70D2426FE.idx new file mode 100644 index 0000000..44d849e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.833243B70D2426FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.8D1098B9B78BBD90.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.8D1098B9B78BBD90.idx new file mode 100644 index 0000000..7695239 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.8D1098B9B78BBD90.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.973ACB9D3728FFA0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.973ACB9D3728FFA0.idx new file mode 100644 index 0000000..087840b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.973ACB9D3728FFA0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.C39AEC07FF483C8B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.C39AEC07FF483C8B.idx new file mode 100644 index 0000000..d98cf59 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.C39AEC07FF483C8B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.CA0F0A7E13F673B1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.CA0F0A7E13F673B1.idx new file mode 100644 index 0000000..84d509b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.CA0F0A7E13F673B1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E407AD24825FEFEE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E407AD24825FEFEE.idx new file mode 100644 index 0000000..d5b701b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E407AD24825FEFEE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E581890D4698E220.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E581890D4698E220.idx new file mode 100644 index 0000000..1ced24e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E581890D4698E220.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E9A9B1A67FFABC33.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E9A9B1A67FFABC33.idx new file mode 100644 index 0000000..3a57f0f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.E9A9B1A67FFABC33.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.F6EF7BA369285CEB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.F6EF7BA369285CEB.idx new file mode 100644 index 0000000..af8754b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.F6EF7BA369285CEB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.F7EFB7BB1125CC51.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.F7EFB7BB1125CC51.idx new file mode 100644 index 0000000..f0917ff Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.c.F7EFB7BB1125CC51.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.183333D2B126037B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.183333D2B126037B.idx new file mode 100644 index 0000000..9589f99 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.183333D2B126037B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.2F40CBBD0C642E5F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.2F40CBBD0C642E5F.idx new file mode 100644 index 0000000..c9a98b4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.2F40CBBD0C642E5F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.303C7A3F73F37F41.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.303C7A3F73F37F41.idx new file mode 100644 index 0000000..a57d4b1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.303C7A3F73F37F41.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.3376AED3014840DB.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.3376AED3014840DB.idx new file mode 100644 index 0000000..0cdaec6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.3376AED3014840DB.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.3FE99C0FB5E07642.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.3FE99C0FB5E07642.idx new file mode 100644 index 0000000..d261a34 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.3FE99C0FB5E07642.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.409F74E75AD235B8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.409F74E75AD235B8.idx new file mode 100644 index 0000000..9c330ed Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.409F74E75AD235B8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.44019FD7DAF62C64.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.44019FD7DAF62C64.idx new file mode 100644 index 0000000..ae1cc8f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.44019FD7DAF62C64.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.4F913A760DB685E2.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.4F913A760DB685E2.idx new file mode 100644 index 0000000..3a121a7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.4F913A760DB685E2.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.566A6E1C459D9C3F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.566A6E1C459D9C3F.idx new file mode 100644 index 0000000..3411a86 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.566A6E1C459D9C3F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.5B62497A1604AA69.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.5B62497A1604AA69.idx new file mode 100644 index 0000000..e04a152 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.5B62497A1604AA69.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.7512BE00DA07F840.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.7512BE00DA07F840.idx new file mode 100644 index 0000000..f2a5249 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.7512BE00DA07F840.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.788ABC91A102E55F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.788ABC91A102E55F.idx new file mode 100644 index 0000000..caa3e61 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.788ABC91A102E55F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.8A62775C011BFFF5.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.8A62775C011BFFF5.idx new file mode 100644 index 0000000..7b344fc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.8A62775C011BFFF5.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.A1617ACE8794E5B7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.A1617ACE8794E5B7.idx new file mode 100644 index 0000000..63e8508 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.A1617ACE8794E5B7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.A666FEF7E36A825B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.A666FEF7E36A825B.idx new file mode 100644 index 0000000..61bce69 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.A666FEF7E36A825B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.D21737EA37763409.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.D21737EA37763409.idx new file mode 100644 index 0000000..516ed79 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.D21737EA37763409.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.D4A55C5EA3F6578E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.D4A55C5EA3F6578E.idx new file mode 100644 index 0000000..5ad477d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.D4A55C5EA3F6578E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.DD1F92969F707A46.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.DD1F92969F707A46.idx new file mode 100644 index 0000000..bcb7eb1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.DD1F92969F707A46.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.F8F7210DB9C2BB0D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.F8F7210DB9C2BB0D.idx new file mode 100644 index 0000000..1467455 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/rc522.h.F8F7210DB9C2BB0D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx new file mode 100644 index 0000000..7246716 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx new file mode 100644 index 0000000..1e6df1f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx new file mode 100644 index 0000000..06c4408 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx new file mode 100644 index 0000000..ce86ad5 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx new file mode 100644 index 0000000..0c8f0af Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx new file mode 100644 index 0000000..28f0331 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx new file mode 100644 index 0000000..cb4a88f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx new file mode 100644 index 0000000..e82138a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx new file mode 100644 index 0000000..721c66c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx new file mode 100644 index 0000000..bef02f7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdlib.h.5E38A6894AF5A1F0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdlib.h.5E38A6894AF5A1F0.idx new file mode 100644 index 0000000..f1f1c40 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdlib.h.5E38A6894AF5A1F0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdlib.h.775972F14DB852DD.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdlib.h.775972F14DB852DD.idx new file mode 100644 index 0000000..873b96c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/stdlib.h.775972F14DB852DD.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx new file mode 100644 index 0000000..99b902d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx new file mode 100644 index 0000000..f5ea380 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.01AC60CE4B7F18EF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.01AC60CE4B7F18EF.idx new file mode 100644 index 0000000..df76cc1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.01AC60CE4B7F18EF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.048A6E06EBB65C65.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.048A6E06EBB65C65.idx new file mode 100644 index 0000000..8ddb1f6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.048A6E06EBB65C65.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.0B3117737820566B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.0B3117737820566B.idx new file mode 100644 index 0000000..0377322 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.0B3117737820566B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1442EDD0F97D94C1.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1442EDD0F97D94C1.idx new file mode 100644 index 0000000..c444c16 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1442EDD0F97D94C1.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1500BACC76D165C3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1500BACC76D165C3.idx new file mode 100644 index 0000000..31dcf8f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1500BACC76D165C3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1C467F1B856CAA2C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1C467F1B856CAA2C.idx new file mode 100644 index 0000000..e5b4cfb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.1C467F1B856CAA2C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.27986D840BEEFC61.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.27986D840BEEFC61.idx new file mode 100644 index 0000000..8876289 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.27986D840BEEFC61.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.3FED1C48F9B53156.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.3FED1C48F9B53156.idx new file mode 100644 index 0000000..1b0d0dc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.3FED1C48F9B53156.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.46F621C41BDED688.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.46F621C41BDED688.idx new file mode 100644 index 0000000..2ecf333 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.46F621C41BDED688.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.5144C269CE2D69B0.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.5144C269CE2D69B0.idx new file mode 100644 index 0000000..060e8e1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.5144C269CE2D69B0.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.52193DFB84FB59C7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.52193DFB84FB59C7.idx new file mode 100644 index 0000000..7d357c1 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.52193DFB84FB59C7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.57D46C0621EBEF5D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.57D46C0621EBEF5D.idx new file mode 100644 index 0000000..a2f859c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.57D46C0621EBEF5D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.742566751F04AB53.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.742566751F04AB53.idx new file mode 100644 index 0000000..5e6dca7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.742566751F04AB53.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.782B9B5D63E7D3F4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.782B9B5D63E7D3F4.idx new file mode 100644 index 0000000..d3f523f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.782B9B5D63E7D3F4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.7DF2F429AC8AC73C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.7DF2F429AC8AC73C.idx new file mode 100644 index 0000000..425b792 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.7DF2F429AC8AC73C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.8D22CA835A6391F8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.8D22CA835A6391F8.idx new file mode 100644 index 0000000..b7320c0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.8D22CA835A6391F8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.A63ABDECFF70CB43.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.A63ABDECFF70CB43.idx new file mode 100644 index 0000000..47dd116 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.A63ABDECFF70CB43.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.B48F050D92371993.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.B48F050D92371993.idx new file mode 100644 index 0000000..ef06b0b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.B48F050D92371993.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.BA65E866C83814EC.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.BA65E866C83814EC.idx new file mode 100644 index 0000000..b3a0cc7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.BA65E866C83814EC.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.BD55C2FFABF8B966.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.BD55C2FFABF8B966.idx new file mode 100644 index 0000000..a3fc712 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.BD55C2FFABF8B966.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E223333820EA9846.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E223333820EA9846.idx new file mode 100644 index 0000000..e332ec6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E223333820EA9846.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E2900A472F6CE833.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E2900A472F6CE833.idx new file mode 100644 index 0000000..f278252 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E2900A472F6CE833.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E8C30C22A808D96E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E8C30C22A808D96E.idx new file mode 100644 index 0000000..e46784f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.E8C30C22A808D96E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.EA75C1A4A1ADD70F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.EA75C1A4A1ADD70F.idx new file mode 100644 index 0000000..52ed47d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.EA75C1A4A1ADD70F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.ED465F2121CE3586.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.ED465F2121CE3586.idx new file mode 100644 index 0000000..556187f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.ED465F2121CE3586.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.F640383CC7B8AAC7.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.F640383CC7B8AAC7.idx new file mode 100644 index 0000000..ff0d758 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.F640383CC7B8AAC7.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.F87029FEB925590E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.F87029FEB925590E.idx new file mode 100644 index 0000000..f573d13 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.F87029FEB925590E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.FD78E0FA8C017436.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.FD78E0FA8C017436.idx new file mode 100644 index 0000000..e28fb18 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.c.FD78E0FA8C017436.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0E49C1BA8E82ECD8.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0E49C1BA8E82ECD8.idx new file mode 100644 index 0000000..e4af408 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0E49C1BA8E82ECD8.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0EC63CE6823C9942.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0EC63CE6823C9942.idx new file mode 100644 index 0000000..9ca8bfb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0EC63CE6823C9942.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0FB1CC4F3BA47284.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0FB1CC4F3BA47284.idx new file mode 100644 index 0000000..6b94caa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.0FB1CC4F3BA47284.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.1F3CAD6B118420CA.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.1F3CAD6B118420CA.idx new file mode 100644 index 0000000..ae59ca8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.1F3CAD6B118420CA.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.213247103D34BEA3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.213247103D34BEA3.idx new file mode 100644 index 0000000..5a071fa Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.213247103D34BEA3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.26AE9F321541DB13.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.26AE9F321541DB13.idx new file mode 100644 index 0000000..e1d1480 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.26AE9F321541DB13.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.406DC35DB8B57F50.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.406DC35DB8B57F50.idx new file mode 100644 index 0000000..6c2db66 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.406DC35DB8B57F50.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.4339471157F0BD8E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.4339471157F0BD8E.idx new file mode 100644 index 0000000..1ed23e7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.4339471157F0BD8E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.486448BCCD0AE6FE.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.486448BCCD0AE6FE.idx new file mode 100644 index 0000000..87bf880 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.486448BCCD0AE6FE.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.4B2B3E2B13D96A33.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.4B2B3E2B13D96A33.idx new file mode 100644 index 0000000..d1c524b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.4B2B3E2B13D96A33.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.51A81A8F150A8BF4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.51A81A8F150A8BF4.idx new file mode 100644 index 0000000..599eb60 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.51A81A8F150A8BF4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.56112560B2F55BB3.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.56112560B2F55BB3.idx new file mode 100644 index 0000000..9fc2213 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.56112560B2F55BB3.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.648AAA945E178646.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.648AAA945E178646.idx new file mode 100644 index 0000000..ac8d2b9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.648AAA945E178646.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.71778EB5555B5A4C.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.71778EB5555B5A4C.idx new file mode 100644 index 0000000..99e0c05 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.71778EB5555B5A4C.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.8853B0AF2387FE05.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.8853B0AF2387FE05.idx new file mode 100644 index 0000000..abd62a6 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.8853B0AF2387FE05.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.8E62B44DCB4BA298.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.8E62B44DCB4BA298.idx new file mode 100644 index 0000000..fb7eea3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.8E62B44DCB4BA298.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.958772DFFE5F1386.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.958772DFFE5F1386.idx new file mode 100644 index 0000000..ac6dc6a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.958772DFFE5F1386.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.964B15D638BB28F4.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.964B15D638BB28F4.idx new file mode 100644 index 0000000..6ba76b9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.964B15D638BB28F4.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9CCDBF79DD64A4E9.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9CCDBF79DD64A4E9.idx new file mode 100644 index 0000000..1e2e213 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9CCDBF79DD64A4E9.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9E4BC5689D4B07BF.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9E4BC5689D4B07BF.idx new file mode 100644 index 0000000..2fd80fc Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9E4BC5689D4B07BF.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9F1E5143FF835A63.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9F1E5143FF835A63.idx new file mode 100644 index 0000000..4093bff Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9F1E5143FF835A63.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9F3EE407ED5BC49B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9F3EE407ED5BC49B.idx new file mode 100644 index 0000000..5f81da3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.9F3EE407ED5BC49B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.A562689E84E0BFC6.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.A562689E84E0BFC6.idx new file mode 100644 index 0000000..ddaa519 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.A562689E84E0BFC6.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.CF5DBEAC82B0306B.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.CF5DBEAC82B0306B.idx new file mode 100644 index 0000000..8491706 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.CF5DBEAC82B0306B.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.D673BC868746471D.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.D673BC868746471D.idx new file mode 100644 index 0000000..e8c9180 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.D673BC868746471D.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.F28B33308553A98E.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.F28B33308553A98E.idx new file mode 100644 index 0000000..1e7d04c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.F28B33308553A98E.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.F323996E07B1BF9F.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.F323996E07B1BF9F.idx new file mode 100644 index 0000000..6530a3b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.F323996E07B1BF9F.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.FFFE49E23E574034.idx b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.FFFE49E23E574034.idx new file mode 100644 index 0000000..fb75b56 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cache/.cache/clangd/index/uart.h.FFFE49E23E574034.idx differ diff --git a/BLV_CS_AC100_V05/Source/.cache/compile_commands.json b/BLV_CS_AC100_V05/Source/.cache/compile_commands.json new file mode 100644 index 0000000..33a375d --- /dev/null +++ b/BLV_CS_AC100_V05/Source/.cache/compile_commands.json @@ -0,0 +1,129 @@ +[{ + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\crt0.S", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CKCPU_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\crt0.S", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\crt0.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\mem_init.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\mem_init.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\mem_init.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\apt32f102_iostring.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\apt32f102_iostring.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\arch\\apt32f102_iostring.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_syscon.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_syscon.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_syscon.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_gpio.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_gpio.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_gpio.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_lpt.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_lpt.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_lpt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_crc.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_crc.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_crc.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_wwdt.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_wwdt.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_wwdt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_countera.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_countera.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_countera.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_et.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_et.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_et.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_bt.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_bt.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_bt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_gpt.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_gpt.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_gpt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_sio.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_sio.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_sio.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_spi.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_spi.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_spi.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_uart.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_uart.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_uart.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_i2c.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_i2c.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_i2c.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_ept.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_ept.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_ept.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_rtc.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_rtc.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_rtc.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_adc.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_adc.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_adc.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_ifc.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_ifc.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_ifc.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_tkey_parameter.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_tkey_parameter.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_tkey_parameter.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_coret.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_coret.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\FWlib\\apt32f102_coret.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\main.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\main.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\main.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\mcu_initial.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\mcu_initial.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\mcu_initial.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\mcu_interrupt.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\mcu_interrupt.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\mcu_interrupt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\drivers\\apt32f102.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\drivers\\apt32f102.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\drivers\\apt32f102.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\drivers\\apt32f102_ck801.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\drivers\\apt32f102_ck801.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\drivers\\apt32f102_ck801.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\uart.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\uart.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\uart.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\dip_switch.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\dip_switch.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\dip_switch.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\eeprom.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\eeprom.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\eeprom.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\det_energy.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\det_energy.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\det_energy.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\Bootload_fun.c", + "directory": "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\Bootload_fun.c", "-o", "G:\\WorkSpace_YYW2\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\SYSTEM\\Bootload_fun.o"] + }] \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/.cache/macro.h b/BLV_CS_AC100_V05/Source/.cache/macro.h new file mode 100644 index 0000000..1c2239e --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/.cache/project.conf b/BLV_CS_AC100_V05/Source/.cache/project.conf new file mode 100644 index 0000000..fa01823 --- /dev/null +++ b/BLV_CS_AC100_V05/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\\BLV_CS_AC100\\Project\\BLV_CS_AC100_V05\\Source\\.cache/" +} \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/.cdk/Project.cdkws.jane b/BLV_CS_AC100_V05/Source/.cdk/Project.cdkws.jane new file mode 100644 index 0000000..26bca8d --- /dev/null +++ b/BLV_CS_AC100_V05/Source/.cdk/Project.cdkws.jane @@ -0,0 +1,6 @@ + + + + + + diff --git a/BLV_CS_AC100_V05/Source/.cdk/Project.session b/BLV_CS_AC100_V05/Source/.cdk/Project.session new file mode 100644 index 0000000..25f7c75 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/.cdk/Project.session @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BLV_CS_AC100_V05/Source/.cdk/compilation.db b/BLV_CS_AC100_V05/Source/.cdk/compilation.db new file mode 100644 index 0000000..ffe8a39 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cdk/compilation.db differ diff --git a/BLV_CS_AC100_V05/Source/.cdk/refactoring.db b/BLV_CS_AC100_V05/Source/.cdk/refactoring.db new file mode 100644 index 0000000..c9efd16 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/.cdk/refactoring.db differ diff --git a/BLV_CS_AC100_V05/Source/FLASHDOWN/APT32F102_FLASHDOWN.elf b/BLV_CS_AC100_V05/Source/FLASHDOWN/APT32F102_FLASHDOWN.elf new file mode 100644 index 0000000..1472d1d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/FLASHDOWN/APT32F102_FLASHDOWN.elf differ diff --git a/BLV_CS_AC100_V05/Source/FWlib/apt32f102_adc.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_adc.c new file mode 100644 index 0000000..d59e771 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_bt.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_bt.c new file mode 100644 index 0000000..d560b42 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_coret.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_coret.c new file mode 100644 index 0000000..255e73c --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_countera.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_countera.c new file mode 100644 index 0000000..60dea0b --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_crc.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_crc.c new file mode 100644 index 0000000..b5d6ec3 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_et.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_et.c new file mode 100644 index 0000000..f633abc --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_gpio.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_gpio.c new file mode 100644 index 0000000..15c6744 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_hwdiv.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_hwdiv.c new file mode 100644 index 0000000..a9a7c91 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_i2c.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_i2c.c new file mode 100644 index 0000000..b6db4d8 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_ifc.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_ifc.c new file mode 100644 index 0000000..bd23380 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_iostring.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_iostring.c new file mode 100644 index 0000000..1a9420a --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_lpt.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_lpt.c new file mode 100644 index 0000000..1e5751c --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_rtc.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_rtc.c new file mode 100644 index 0000000..654813a --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_sio.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_sio.c new file mode 100644 index 0000000..48259f0 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_spi.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_spi.c new file mode 100644 index 0000000..48e9d4d --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_syscon.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_syscon.c new file mode 100644 index 0000000..efe2770 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_tkey_parameter.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_tkey_parameter.c new file mode 100644 index 0000000..29173cc --- /dev/null +++ b/BLV_CS_AC100_V05/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=0x0000; //TK IO ENABLE Bit16-->Bit0;0=DISABLE 1=ENABLE + + TK_senprd[0]=70; //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]=70; //TCH8 scan period = TCH8 sens + TK_senprd[9]=70; //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]=70; //TCH12 scan period = TCH12 sens + TK_senprd[13]=70; //TCH13 scan period = TCH13 sens + TK_senprd[14]=70; //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]=40; //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]=40; //TCH8 TK_Trigger level + TK_Triggerlevel[9]=40; //TCH9 TK_Trigger level + TK_Triggerlevel[10]=40; //TCH10 TK_Trigger level + TK_Triggerlevel[11]=40; //TCH11 TK_Trigger level + TK_Triggerlevel[12]=40; //TCH12 TK_Trigger level + TK_Triggerlevel[13]=40; //TCH13 TK_Trigger level + TK_Triggerlevel[14]=40; //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_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + TK_EC_LEVEL=TK_EC_3_6V; //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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_uart.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_uart.c new file mode 100644 index 0000000..bd81163 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/FWlib/apt32f102_wwdt.c b/BLV_CS_AC100_V05/Source/FWlib/apt32f102_wwdt.c new file mode 100644 index 0000000..35591a1 --- /dev/null +++ b/BLV_CS_AC100_V05/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/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01.asm b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01.asm new file mode 100644 index 0000000..e01354a --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01.asm @@ -0,0 +1,20131 @@ + +.//Obj/BLV_CS_AC100_V01.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00002800 : + 2800: 0000290c .long 0x0000290c + 2804: 0000748a .long 0x0000748a + 2808: 0000747a .long 0x0000747a + 280c: 00002984 .long 0x00002984 + 2810: 00007482 .long 0x00007482 + 2814: 00007440 .long 0x00007440 + 2818: 00002984 .long 0x00002984 + 281c: 00007472 .long 0x00007472 + 2820: 0000746a .long 0x0000746a + 2824: 00002984 .long 0x00002984 + 2828: 00002984 .long 0x00002984 + 282c: 00002984 .long 0x00002984 + 2830: 00002984 .long 0x00002984 + 2834: 00002984 .long 0x00002984 + 2838: 00002984 .long 0x00002984 + 283c: 00002984 .long 0x00002984 + 2840: 00007462 .long 0x00007462 + 2844: 0000745a .long 0x0000745a + 2848: 00007452 .long 0x00007452 + 284c: 0000744a .long 0x0000744a + 2850: 00002984 .long 0x00002984 + 2854: 00002984 .long 0x00002984 + 2858: 00002984 .long 0x00002984 + 285c: 00002984 .long 0x00002984 + 2860: 00002984 .long 0x00002984 + 2864: 00002984 .long 0x00002984 + 2868: 00002984 .long 0x00002984 + 286c: 00002984 .long 0x00002984 + 2870: 00002984 .long 0x00002984 + 2874: 00002984 .long 0x00002984 + 2878: 00002984 .long 0x00002984 + 287c: 00007442 .long 0x00007442 + 2880: 0000a850 .long 0x0000a850 + 2884: 00006afc .long 0x00006afc + 2888: 00006bec .long 0x00006bec + 288c: 00006c54 .long 0x00006c54 + 2890: 00006cbc .long 0x00006cbc + 2894: 00002984 .long 0x00002984 + 2898: 00006e68 .long 0x00006e68 + 289c: 0000721c .long 0x0000721c + 28a0: 0000724c .long 0x0000724c + 28a4: 00006e9c .long 0x00006e9c + 28a8: 00002984 .long 0x00002984 + 28ac: 00002984 .long 0x00002984 + 28b0: 00006f1c .long 0x00006f1c + 28b4: 00006f8c .long 0x00006f8c + 28b8: 00006fec .long 0x00006fec + 28bc: 00007080 .long 0x00007080 + 28c0: 00002984 .long 0x00002984 + 28c4: 0000749a .long 0x0000749a + 28c8: 00002984 .long 0x00002984 + 28cc: 000070e0 .long 0x000070e0 + 28d0: 000071c8 .long 0x000071c8 + 28d4: 0000727c .long 0x0000727c + 28d8: 000072c4 .long 0x000072c4 + 28dc: 000072e4 .long 0x000072e4 + 28e0: 00007492 .long 0x00007492 + 28e4: 0000a2c0 .long 0x0000a2c0 + 28e8: 00007350 .long 0x00007350 + 28ec: 00002984 .long 0x00002984 + 28f0: 00007384 .long 0x00007384 + 28f4: 000073d0 .long 0x000073d0 + 28f8: 00002984 .long 0x00002984 + 28fc: 00002984 .long 0x00002984 + 2900: 55aa0005 .long 0x55aa0005 + ... + +0000290c <__start>: +// .long __start +__start: + + + //initialize all registers + movi r0, 0 + 290c: 3000 movi r0, 0 + movi r1, 0 + 290e: 3100 movi r1, 0 + movi r2, 0 + 2910: 3200 movi r2, 0 + movi r3, 0 + 2912: 3300 movi r3, 0 + movi r4, 0 + 2914: 3400 movi r4, 0 + movi r5, 0 + 2916: 3500 movi r5, 0 + movi r6, 0 + 2918: 3600 movi r6, 0 + movi r7, 0 + 291a: 3700 movi r7, 0 + //movi r13, 0 + //movi r14, 0 + //movi r15, 0 + +//set VBR + lrw r2, vector_table + 291c: 105b lrw r2, 0x2800 // 2988 + mtcr r2, cr<1,0> + 291e: c0026421 mtcr r2, cr<1, 0> + +//enable EE bit of psr + mfcr r2, cr<0,0> + 2922: c0006022 mfcr r2, cr<0, 0> + bseti r2, r2, 8 + 2926: 3aa8 bseti r2, 8 + mtcr r2, cr<0,0> + 2928: 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 + 292c: 1038 lrw r1, 0xe000ef90 // 298c + movi r2, 0x0 + 292e: 3200 movi r2, 0 + st.w r2, (r1, 0x0) + 2930: b140 st.w r2, (r1, 0x0) + + + +//initialize kernel stack + lrw r7, __kernel_stack + 2932: 10f8 lrw r7, 0x20000ff8 // 2990 + mov r14,r7 + 2934: 6f9f mov r14, r7 + subi r6,r7,0x4 + 2936: 5fcf subi r6, r7, 4 + + //lrw r3, 0x40 + lrw r3, 0x04 + 2938: 3304 movi r3, 4 + + subu r4, r7, r3 + 293a: 5f8d subu r4, r7, r3 + lrw r5, 0x0 + 293c: 3500 movi r5, 0 + +0000293e : +INIT_KERLE_STACK: + addi r4, 0x4 + 293e: 2403 addi r4, 4 + st.w r5, (r4) + 2940: b4a0 st.w r5, (r4, 0x0) + //cmphs r7, r4 + cmphs r6, r4 + 2942: 6518 cmphs r6, r4 + bt INIT_KERLE_STACK + 2944: 0bfd bt 0x293e // 293e + +00002946 <__to_main>: + +__to_main: + lrw r0,__main + 2946: 1014 lrw r0, 0x5e78 // 2994 + jsr r0 + 2948: 7bc1 jsr r0 + mov r0, r0 + 294a: 6c03 mov r0, r0 + mov r0, r0 + 294c: 6c03 mov r0, r0 + + + + lrw r15, __exit + 294e: ea8f0013 lrw r15, 0x2960 // 2998 + lrw r0,main + 2952: 1013 lrw r0, 0x692c // 299c + jmp r0 + 2954: 7800 jmp r0 + mov r0, r0 + 2956: 6c03 mov r0, r0 + mov r0, r0 + 2958: 6c03 mov r0, r0 + mov r0, r0 + 295a: 6c03 mov r0, r0 + mov r0, r0 + 295c: 6c03 mov r0, r0 + mov r0, r0 + 295e: 6c03 mov r0, r0 + +00002960 <__exit>: + +.export __exit +__exit: + + lrw r4, 0x20003000 + 2960: 1090 lrw r4, 0x20003000 // 29a0 + //lrw r5, 0x0 + mov r5, r0 + 2962: 6d43 mov r5, r0 + st.w r5, (r4) + 2964: b4a0 st.w r5, (r4, 0x0) + + mfcr r1, cr<0,0> + 2966: c0006021 mfcr r1, cr<0, 0> + lrw r1, 0xFFFF + 296a: 102f lrw r1, 0xffff // 29a4 + mtcr r1, cr<11,0> + 296c: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xFFF + 2970: 102e lrw r1, 0xfff // 29a8 + movi r0, 0x0 + 2972: 3000 movi r0, 0 + st r1, (r0) + 2974: b020 st.w r1, (r0, 0x0) + +00002976 <__fail>: + +.export __fail +__fail: + lrw r1, 0xEEEE + 2976: 102e lrw r1, 0xeeee // 29ac + mtcr r1, cr<11,0> + 2978: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xEEE + 297c: 102d lrw r1, 0xeee // 29b0 + movi r0, 0x0 + 297e: 3000 movi r0, 0 + st r1, (r0) + 2980: b020 st.w r1, (r0, 0x0) + +00002982 <__dummy>: + +__dummy: + br __fail + 2982: 07fa br 0x2976 // 2976 <__fail> + +00002984 : + +.export DummyHandler +DummyHandler: + br __fail + 2984: 07f9 br 0x2976 // 2976 <__fail> + 2986: 0000 .short 0x0000 + 2988: 00002800 .long 0x00002800 + 298c: e000ef90 .long 0xe000ef90 + 2990: 20000ff8 .long 0x20000ff8 + 2994: 00005e78 .long 0x00005e78 + 2998: 00002960 .long 0x00002960 + 299c: 0000692c .long 0x0000692c + 29a0: 20003000 .long 0x20003000 + 29a4: 0000ffff .long 0x0000ffff + 29a8: 00000fff .long 0x00000fff + 29ac: 0000eeee .long 0x0000eeee + 29b0: 00000eee .long 0x00000eee + +000029b4 <__GI_pow>: + 29b4: 14d4 push r4-r7, r15 + 29b6: 142d subi r14, r14, 52 + 29b8: b860 st.w r3, (r14, 0x0) + 29ba: 4361 lsli r3, r3, 1 + 29bc: 4b81 lsri r4, r3, 1 + 29be: b842 st.w r2, (r14, 0x8) + 29c0: 6c90 or r2, r4 + 29c2: 3a40 cmpnei r2, 0 + 29c4: 6dc3 mov r7, r0 + 29c6: 6d87 mov r6, r1 + 29c8: 0803 bt 0x29ce // 29ce <__GI_pow+0x1a> + 29ca: e8000462 br 0x328e // 328e <__GI_pow+0x8da> + 29ce: 41a1 lsli r5, r1, 1 + 29d0: 4da1 lsri r5, r5, 1 + 29d2: 0055 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 29d4: 6549 cmplt r2, r5 + 29d6: 080c bt 0x29ee // 29ee <__GI_pow+0x3a> + 29d8: 6496 cmpne r5, r2 + 29da: 0803 bt 0x29e0 // 29e0 <__GI_pow+0x2c> + 29dc: 3840 cmpnei r0, 0 + 29de: 0808 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e0: 6509 cmplt r2, r4 + 29e2: 0806 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e4: 6492 cmpne r4, r2 + 29e6: 080e bt 0x2a02 // 2a02 <__GI_pow+0x4e> + 29e8: 9802 ld.w r0, (r14, 0x8) + 29ea: 3840 cmpnei r0, 0 + 29ec: 0c0b bf 0x2a02 // 2a02 <__GI_pow+0x4e> + 29ee: 9842 ld.w r2, (r14, 0x8) + 29f0: 9860 ld.w r3, (r14, 0x0) + 29f2: 6c1f mov r0, r7 + 29f4: 6c5b mov r1, r6 + 29f6: e000099f bsr 0x3d34 // 3d34 <__adddf3> + 29fa: 6d03 mov r4, r0 + 29fc: 6c13 mov r0, r4 + 29fe: 140d addi r14, r14, 52 + 2a00: 1494 pop r4-r7, r15 + 2a02: 3edf btsti r6, 31 + 2a04: 0c51 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a06: 0121 lrw r1, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2a08: 2900 subi r1, 1 + 2a0a: 6505 cmplt r1, r4 + 2a0c: 084b bt 0x2aa2 // 2aa2 <__GI_pow+0xee> + 2a0e: 0162 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a10: 2b00 subi r3, 1 + 2a12: 650d cmplt r3, r4 + 2a14: 0c49 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a16: 5454 asri r2, r4, 20 + 2a18: 0104 lrw r0, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2a1a: 6080 addu r2, r0 + 2a1c: 3a34 cmplti r2, 21 + 2a1e: 0821 bt 0x2a60 // 2a60 <__GI_pow+0xac> + 2a20: 3334 movi r3, 52 + 2a22: 60ca subu r3, r2 + 2a24: 9842 ld.w r2, (r14, 0x8) + 2a26: 708d lsr r2, r3 + 2a28: 6c4b mov r1, r2 + 2a2a: 704c lsl r1, r3 + 2a2c: 9802 ld.w r0, (r14, 0x8) + 2a2e: 6442 cmpne r0, r1 + 2a30: 083b bt 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a32: 3101 movi r1, 1 + 2a34: 6884 and r2, r1 + 2a36: 3302 movi r3, 2 + 2a38: 5b49 subu r2, r3, r2 + 2a3a: 9802 ld.w r0, (r14, 0x8) + 2a3c: 3840 cmpnei r0, 0 + 2a3e: b841 st.w r2, (r14, 0x4) + 2a40: 0862 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2a42: 0151 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 2a44: 6492 cmpne r4, r2 + 2a46: 081f bt 0x2a84 // 2a84 <__GI_pow+0xd0> + 2a48: 012f lrw r1, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2a4a: 6054 addu r1, r5 + 2a4c: 6dc4 or r7, r1 + 2a4e: 3f40 cmpnei r7, 0 + 2a50: 082d bt 0x2aaa // 2aaa <__GI_pow+0xf6> + 2a52: 9860 ld.w r3, (r14, 0x0) + 2a54: 3200 movi r2, 0 + 2a56: 6c4f mov r1, r3 + 2a58: 3000 movi r0, 0 + 2a5a: e0000985 bsr 0x3d64 // 3d64 <__subdf3> + 2a5e: 07ce br 0x29fa // 29fa <__GI_pow+0x46> + 2a60: 9822 ld.w r1, (r14, 0x8) + 2a62: 3940 cmpnei r1, 0 + 2a64: 084e bt 0x2b00 // 2b00 <__GI_pow+0x14c> + 2a66: 3114 movi r1, 20 + 2a68: 604a subu r1, r2 + 2a6a: 6c93 mov r2, r4 + 2a6c: 7086 asr r2, r1 + 2a6e: 6c0b mov r0, r2 + 2a70: 7004 lsl r0, r1 + 2a72: 6412 cmpne r4, r0 + 2a74: 0c03 bf 0x2a7a // 2a7a <__GI_pow+0xc6> + 2a76: e8000471 br 0x3358 // 3358 <__GI_pow+0x9a4> + 2a7a: 3101 movi r1, 1 + 2a7c: 6884 and r2, r1 + 2a7e: 3002 movi r0, 2 + 2a80: 5869 subu r3, r0, r2 + 2a82: b861 st.w r3, (r14, 0x4) + 2a84: 0220 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a86: 6452 cmpne r4, r1 + 2a88: 0825 bt 0x2ad2 // 2ad2 <__GI_pow+0x11e> + 2a8a: 9880 ld.w r4, (r14, 0x0) + 2a8c: 3cdf btsti r4, 31 + 2a8e: 0803 bt 0x2a94 // 2a94 <__GI_pow+0xe0> + 2a90: e8000407 br 0x329e // 329e <__GI_pow+0x8ea> + 2a94: 6c9f mov r2, r7 + 2a96: 6cdb mov r3, r6 + 2a98: 3000 movi r0, 0 + 2a9a: 0225 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a9c: e0000a9a bsr 0x3fd0 // 3fd0 <__divdf3> + 2aa0: 07ad br 0x29fa // 29fa <__GI_pow+0x46> + 2aa2: 3202 movi r2, 2 + 2aa4: 07cb br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aa6: 3200 movi r2, 0 + 2aa8: 07c9 br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aaa: 0269 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2aac: 2b00 subi r3, 1 + 2aae: 654d cmplt r3, r5 + 2ab0: 9800 ld.w r0, (r14, 0x0) + 2ab2: 0c08 bf 0x2ac2 // 2ac2 <__GI_pow+0x10e> + 2ab4: 38df btsti r0, 31 + 2ab6: 0803 bt 0x2abc // 2abc <__GI_pow+0x108> + 2ab8: e80003ef br 0x3296 // 3296 <__GI_pow+0x8e2> + 2abc: 3400 movi r4, 0 + 2abe: 3100 movi r1, 0 + 2ac0: 079e br 0x29fc // 29fc <__GI_pow+0x48> + 2ac2: 38df btsti r0, 31 + 2ac4: 0ffc bf 0x2abc // 2abc <__GI_pow+0x108> + 2ac6: 3400 movi r4, 0 + 2ac8: 6c43 mov r1, r0 + 2aca: 3280 movi r2, 128 + 2acc: 4278 lsli r3, r2, 24 + 2ace: 604c addu r1, r3 + 2ad0: 0796 br 0x29fc // 29fc <__GI_pow+0x48> + 2ad2: 3380 movi r3, 128 + 2ad4: 4317 lsli r0, r3, 23 + 2ad6: 9840 ld.w r2, (r14, 0x0) + 2ad8: 640a cmpne r2, r0 + 2ada: 0808 bt 0x2aea // 2aea <__GI_pow+0x136> + 2adc: 6c9f mov r2, r7 + 2ade: 6cdb mov r3, r6 + 2ae0: 6c1f mov r0, r7 + 2ae2: 6c5b mov r1, r6 + 2ae4: e000095c bsr 0x3d9c // 3d9c <__muldf3> + 2ae8: 0789 br 0x29fa // 29fa <__GI_pow+0x46> + 2aea: 0276 lrw r3, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2aec: 9820 ld.w r1, (r14, 0x0) + 2aee: 64c6 cmpne r1, r3 + 2af0: 080a bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af2: 3edf btsti r6, 31 + 2af4: 0808 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af6: 6c1f mov r0, r7 + 2af8: 6c5b mov r1, r6 + 2afa: e0000445 bsr 0x3384 // 3384 <__GI_sqrt> + 2afe: 077e br 0x29fa // 29fa <__GI_pow+0x46> + 2b00: 3300 movi r3, 0 + 2b02: b861 st.w r3, (r14, 0x4) + 2b04: 6c1f mov r0, r7 + 2b06: 6c5b mov r1, r6 + 2b08: b883 st.w r4, (r14, 0xc) + 2b0a: e000042a bsr 0x335e // 335e <__GI_fabs> + 2b0e: 3f40 cmpnei r7, 0 + 2b10: 6d03 mov r4, r0 + 2b12: 9863 ld.w r3, (r14, 0xc) + 2b14: 0826 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b16: 3d40 cmpnei r5, 0 + 2b18: 0c05 bf 0x2b22 // 2b22 <__GI_pow+0x16e> + 2b1a: 4642 lsli r2, r6, 2 + 2b1c: 0302 lrw r0, 0xffc00000 // 2d90 <__GI_pow+0x3dc> + 2b1e: 640a cmpne r2, r0 + 2b20: 0820 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b22: 9840 ld.w r2, (r14, 0x0) + 2b24: 3adf btsti r2, 31 + 2b26: 0c08 bf 0x2b36 // 2b36 <__GI_pow+0x182> + 2b28: 6c93 mov r2, r4 + 2b2a: 6cc7 mov r3, r1 + 2b2c: 3000 movi r0, 0 + 2b2e: 032a lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b30: e0000a50 bsr 0x3fd0 // 3fd0 <__divdf3> + 2b34: 6d03 mov r4, r0 + 2b36: 3edf btsti r6, 31 + 2b38: 0f62 bf 0x29fc // 29fc <__GI_pow+0x48> + 2b3a: 036b lrw r3, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2b3c: 614c addu r5, r3 + 2b3e: 9801 ld.w r0, (r14, 0x4) + 2b40: 6d40 or r5, r0 + 2b42: 3d40 cmpnei r5, 0 + 2b44: 080a bt 0x2b58 // 2b58 <__GI_pow+0x1a4> + 2b46: 6c93 mov r2, r4 + 2b48: 6cc7 mov r3, r1 + 2b4a: 6c0b mov r0, r2 + 2b4c: 6c4f mov r1, r3 + 2b4e: e000090b bsr 0x3d64 // 3d64 <__subdf3> + 2b52: 6c83 mov r2, r0 + 2b54: 6cc7 mov r3, r1 + 2b56: 07a3 br 0x2a9c // 2a9c <__GI_pow+0xe8> + 2b58: 9841 ld.w r2, (r14, 0x4) + 2b5a: 3a41 cmpnei r2, 1 + 2b5c: 0b50 bt 0x29fc // 29fc <__GI_pow+0x48> + 2b5e: 07b6 br 0x2aca // 2aca <__GI_pow+0x116> + 2b60: 4e5f lsri r2, r6, 31 + 2b62: 2a00 subi r2, 1 + 2b64: b847 st.w r2, (r14, 0x1c) + 2b66: 9807 ld.w r0, (r14, 0x1c) + 2b68: 9841 ld.w r2, (r14, 0x4) + 2b6a: 6c80 or r2, r0 + 2b6c: 3a40 cmpnei r2, 0 + 2b6e: 0804 bt 0x2b76 // 2b76 <__GI_pow+0x1c2> + 2b70: 6c9f mov r2, r7 + 2b72: 6cdb mov r3, r6 + 2b74: 07eb br 0x2b4a // 2b4a <__GI_pow+0x196> + 2b76: 0357 lrw r2, 0x41e00000 // 2d94 <__GI_pow+0x3e0> + 2b78: 64c9 cmplt r2, r3 + 2b7a: 0cbf bf 0x2cf8 // 2cf8 <__GI_pow+0x344> + 2b7c: 0358 lrw r2, 0x43f00000 // 2d98 <__GI_pow+0x3e4> + 2b7e: 64c9 cmplt r2, r3 + 2b80: 037f lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b82: 0c0c bf 0x2b9a // 2b9a <__GI_pow+0x1e6> + 2b84: 2b00 subi r3, 1 + 2b86: 654d cmplt r3, r5 + 2b88: 080f bt 0x2ba6 // 2ba6 <__GI_pow+0x1f2> + 2b8a: 9820 ld.w r1, (r14, 0x0) + 2b8c: 39df btsti r1, 31 + 2b8e: 0f97 bf 0x2abc // 2abc <__GI_pow+0x108> + 2b90: 035c lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2b92: 037b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2b94: 6c0b mov r0, r2 + 2b96: 6c4f mov r1, r3 + 2b98: 07a6 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2b9a: 2b01 subi r3, 2 + 2b9c: 654d cmplt r3, r5 + 2b9e: 0ff6 bf 0x2b8a // 2b8a <__GI_pow+0x1d6> + 2ba0: 1318 lrw r0, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2ba2: 6541 cmplt r0, r5 + 2ba4: 0c05 bf 0x2bae // 2bae <__GI_pow+0x1fa> + 2ba6: 9800 ld.w r0, (r14, 0x0) + 2ba8: 3820 cmplti r0, 1 + 2baa: 0ff3 bf 0x2b90 // 2b90 <__GI_pow+0x1dc> + 2bac: 0788 br 0x2abc // 2abc <__GI_pow+0x108> + 2bae: 3200 movi r2, 0 + 2bb0: 1374 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2bb2: 6c1f mov r0, r7 + 2bb4: 6c5b mov r1, r6 + 2bb6: 36c0 movi r6, 192 + 2bb8: e00008d6 bsr 0x3d64 // 3d64 <__subdf3> + 2bbc: 4657 lsli r2, r6, 23 + 2bbe: 137a lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2bc0: 6d43 mov r5, r0 + 2bc2: 6d07 mov r4, r1 + 2bc4: e00008ec bsr 0x3d9c // 3d9c <__muldf3> + 2bc8: 6dc3 mov r7, r0 + 2bca: 6d87 mov r6, r1 + 2bcc: 1357 lrw r2, 0xf85ddf44 // 2da8 <__GI_pow+0x3f4> + 2bce: 1378 lrw r3, 0x3e54ae0b // 2dac <__GI_pow+0x3f8> + 2bd0: 6c17 mov r0, r5 + 2bd2: 6c53 mov r1, r4 + 2bd4: e00008e4 bsr 0x3d9c // 3d9c <__muldf3> + 2bd8: b803 st.w r0, (r14, 0xc) + 2bda: b824 st.w r1, (r14, 0x10) + 2bdc: 3200 movi r2, 0 + 2bde: 1375 lrw r3, 0x3fd00000 // 2db0 <__GI_pow+0x3fc> + 2be0: 6c17 mov r0, r5 + 2be2: 6c53 mov r1, r4 + 2be4: e00008dc bsr 0x3d9c // 3d9c <__muldf3> + 2be8: 6c83 mov r2, r0 + 2bea: 6cc7 mov r3, r1 + 2bec: 1312 lrw r0, 0x55555555 // 2db4 <__GI_pow+0x400> + 2bee: 1333 lrw r1, 0x3fd55555 // 2db8 <__GI_pow+0x404> + 2bf0: e00008ba bsr 0x3d64 // 3d64 <__subdf3> + 2bf4: 6c97 mov r2, r5 + 2bf6: 6cd3 mov r3, r4 + 2bf8: e00008d2 bsr 0x3d9c // 3d9c <__muldf3> + 2bfc: 6c83 mov r2, r0 + 2bfe: 6cc7 mov r3, r1 + 2c00: 3000 movi r0, 0 + 2c02: 1323 lrw r1, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2c04: e00008b0 bsr 0x3d64 // 3d64 <__subdf3> + 2c08: b805 st.w r0, (r14, 0x14) + 2c0a: 6c97 mov r2, r5 + 2c0c: 6cd3 mov r3, r4 + 2c0e: b826 st.w r1, (r14, 0x18) + 2c10: 6c17 mov r0, r5 + 2c12: 6c53 mov r1, r4 + 2c14: e00008c4 bsr 0x3d9c // 3d9c <__muldf3> + 2c18: 6c83 mov r2, r0 + 2c1a: 6cc7 mov r3, r1 + 2c1c: 9805 ld.w r0, (r14, 0x14) + 2c1e: 9826 ld.w r1, (r14, 0x18) + 2c20: e00008be bsr 0x3d9c // 3d9c <__muldf3> + 2c24: 1346 lrw r2, 0x652b82fe // 2dbc <__GI_pow+0x408> + 2c26: 1360 lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2c28: e00008ba bsr 0x3d9c // 3d9c <__muldf3> + 2c2c: 6c83 mov r2, r0 + 2c2e: 6cc7 mov r3, r1 + 2c30: 9803 ld.w r0, (r14, 0xc) + 2c32: 9824 ld.w r1, (r14, 0x10) + 2c34: e0000898 bsr 0x3d64 // 3d64 <__subdf3> + 2c38: 6c83 mov r2, r0 + 2c3a: 6cc7 mov r3, r1 + 2c3c: 6d43 mov r5, r0 + 2c3e: 6d07 mov r4, r1 + 2c40: 6c1f mov r0, r7 + 2c42: 6c5b mov r1, r6 + 2c44: e0000878 bsr 0x3d34 // 3d34 <__adddf3> + 2c48: 6c9f mov r2, r7 + 2c4a: 6cdb mov r3, r6 + 2c4c: 3000 movi r0, 0 + 2c4e: b823 st.w r1, (r14, 0xc) + 2c50: e000088a bsr 0x3d64 // 3d64 <__subdf3> + 2c54: 6c83 mov r2, r0 + 2c56: 6cc7 mov r3, r1 + 2c58: 6c17 mov r0, r5 + 2c5a: 6c53 mov r1, r4 + 2c5c: e0000884 bsr 0x3d64 // 3d64 <__subdf3> + 2c60: 6d07 mov r4, r1 + 2c62: 9821 ld.w r1, (r14, 0x4) + 2c64: 2900 subi r1, 1 + 2c66: 9847 ld.w r2, (r14, 0x1c) + 2c68: 6c48 or r1, r2 + 2c6a: 3940 cmpnei r1, 0 + 2c6c: 6d43 mov r5, r0 + 2c6e: 0c02 bf 0x2c72 // 2c72 <__GI_pow+0x2be> + 2c70: 05f0 br 0x3050 // 3050 <__GI_pow+0x69c> + 2c72: 1274 lrw r3, 0xbff00000 // 2dc0 <__GI_pow+0x40c> + 2c74: b861 st.w r3, (r14, 0x4) + 2c76: 9860 ld.w r3, (r14, 0x0) + 2c78: 3200 movi r2, 0 + 2c7a: 9802 ld.w r0, (r14, 0x8) + 2c7c: 6c4f mov r1, r3 + 2c7e: e0000873 bsr 0x3d64 // 3d64 <__subdf3> + 2c82: 9863 ld.w r3, (r14, 0xc) + 2c84: 3200 movi r2, 0 + 2c86: e000088b bsr 0x3d9c // 3d9c <__muldf3> + 2c8a: 6dc3 mov r7, r0 + 2c8c: 6d87 mov r6, r1 + 2c8e: 9842 ld.w r2, (r14, 0x8) + 2c90: 9860 ld.w r3, (r14, 0x0) + 2c92: 6c17 mov r0, r5 + 2c94: 6c53 mov r1, r4 + 2c96: e0000883 bsr 0x3d9c // 3d9c <__muldf3> + 2c9a: 6c83 mov r2, r0 + 2c9c: 6cc7 mov r3, r1 + 2c9e: 6c1f mov r0, r7 + 2ca0: 6c5b mov r1, r6 + 2ca2: e0000849 bsr 0x3d34 // 3d34 <__adddf3> + 2ca6: 6dc3 mov r7, r0 + 2ca8: 9860 ld.w r3, (r14, 0x0) + 2caa: 6d87 mov r6, r1 + 2cac: 3200 movi r2, 0 + 2cae: 9823 ld.w r1, (r14, 0xc) + 2cb0: 3000 movi r0, 0 + 2cb2: e0000875 bsr 0x3d9c // 3d9c <__muldf3> + 2cb6: b802 st.w r0, (r14, 0x8) + 2cb8: b803 st.w r0, (r14, 0xc) + 2cba: b824 st.w r1, (r14, 0x10) + 2cbc: 6c83 mov r2, r0 + 2cbe: 6cc7 mov r3, r1 + 2cc0: 6d47 mov r5, r1 + 2cc2: 6c1f mov r0, r7 + 2cc4: 6c5b mov r1, r6 + 2cc6: e0000837 bsr 0x3d34 // 3d34 <__adddf3> + 2cca: 6d07 mov r4, r1 + 2ccc: 113e lrw r1, 0x40900000 // 2dc4 <__GI_pow+0x410> + 2cce: 2900 subi r1, 1 + 2cd0: 6505 cmplt r1, r4 + 2cd2: b800 st.w r0, (r14, 0x0) + 2cd4: 0803 bt 0x2cda // 2cda <__GI_pow+0x326> + 2cd6: e80002b3 br 0x323c // 323c <__GI_pow+0x888> + 2cda: 117c lrw r3, 0xbf700000 // 2dc8 <__GI_pow+0x414> + 2cdc: 60d0 addu r3, r4 + 2cde: 6cc0 or r3, r0 + 2ce0: 3b40 cmpnei r3, 0 + 2ce2: 0802 bt 0x2ce6 // 2ce6 <__GI_pow+0x332> + 2ce4: 05b8 br 0x3054 // 3054 <__GI_pow+0x6a0> + 2ce6: 114e lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2ce8: 116e lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cea: 3000 movi r0, 0 + 2cec: 9821 ld.w r1, (r14, 0x4) + 2cee: e0000857 bsr 0x3d9c // 3d9c <__muldf3> + 2cf2: 114b lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2cf4: 116b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cf6: 06f7 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2cf8: 11d5 lrw r6, 0xfffff // 2dcc <__GI_pow+0x418> + 2cfa: 6559 cmplt r6, r5 + 2cfc: 09a6 bt 0x3048 // 3048 <__GI_pow+0x694> + 2cfe: 6c13 mov r0, r4 + 2d00: 3200 movi r2, 0 + 2d02: 107f lrw r3, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2d04: e000084c bsr 0x3d9c // 3d9c <__muldf3> + 2d08: 3700 movi r7, 0 + 2d0a: 6d03 mov r4, r0 + 2d0c: 6d47 mov r5, r1 + 2d0e: 2f34 subi r7, 53 + 2d10: 5514 asri r0, r5, 20 + 2d12: 103d lrw r1, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2d14: 45ac lsli r5, r5, 12 + 2d16: 4d4c lsri r2, r5, 12 + 2d18: 6004 addu r0, r1 + 2d1a: 116e lrw r3, 0x3988e // 2dd0 <__GI_pow+0x41c> + 2d1c: 601c addu r0, r7 + 2d1e: 648d cmplt r3, r2 + 2d20: 10f8 lrw r7, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d22: b804 st.w r0, (r14, 0x10) + 2d24: 6dc8 or r7, r2 + 2d26: 0c09 bf 0x2d38 // 2d38 <__GI_pow+0x384> + 2d28: 11cb lrw r6, 0xbb679 // 2dd4 <__GI_pow+0x420> + 2d2a: 6499 cmplt r6, r2 + 2d2c: 0d90 bf 0x304c // 304c <__GI_pow+0x698> + 2d2e: 6c83 mov r2, r0 + 2d30: 2200 addi r2, 1 + 2d32: 110a lrw r0, 0xfff00000 // 2dd8 <__GI_pow+0x424> + 2d34: b844 st.w r2, (r14, 0x10) + 2d36: 61c0 addu r7, r0 + 2d38: 3500 movi r5, 0 + 2d3a: 45c3 lsli r6, r5, 3 + 2d3c: 1168 lrw r3, 0xab64 // 2ddc <__GI_pow+0x428> + 2d3e: 4523 lsli r1, r5, 3 + 2d40: 60d8 addu r3, r6 + 2d42: 9340 ld.w r2, (r3, 0x0) + 2d44: b828 st.w r1, (r14, 0x20) + 2d46: 9361 ld.w r3, (r3, 0x4) + 2d48: 6c13 mov r0, r4 + 2d4a: 6c5f mov r1, r7 + 2d4c: b845 st.w r2, (r14, 0x14) + 2d4e: b866 st.w r3, (r14, 0x18) + 2d50: e000080a bsr 0x3d64 // 3d64 <__subdf3> + 2d54: b809 st.w r0, (r14, 0x24) + 2d56: 9845 ld.w r2, (r14, 0x14) + 2d58: 9866 ld.w r3, (r14, 0x18) + 2d5a: b82a st.w r1, (r14, 0x28) + 2d5c: 6c13 mov r0, r4 + 2d5e: 6c5f mov r1, r7 + 2d60: e00007ea bsr 0x3d34 // 3d34 <__adddf3> + 2d64: 6c83 mov r2, r0 + 2d66: 6cc7 mov r3, r1 + 2d68: 3000 movi r0, 0 + 2d6a: 1026 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d6c: e0000932 bsr 0x3fd0 // 3fd0 <__divdf3> + 2d70: 6c83 mov r2, r0 + 2d72: 6cc7 mov r3, r1 + 2d74: 0436 br 0x2de0 // 2de0 <__GI_pow+0x42c> + 2d76: 0000 bkpt + 2d78: 7ff00000 .long 0x7ff00000 + 2d7c: 43400000 .long 0x43400000 + 2d80: 3ff00000 .long 0x3ff00000 + 2d84: fffffc01 .long 0xfffffc01 + 2d88: c0100000 .long 0xc0100000 + 2d8c: 3fe00000 .long 0x3fe00000 + 2d90: ffc00000 .long 0xffc00000 + 2d94: 41e00000 .long 0x41e00000 + 2d98: 43f00000 .long 0x43f00000 + 2d9c: 8800759c .long 0x8800759c + 2da0: 7e37e43c .long 0x7e37e43c + 2da4: 3ff71547 .long 0x3ff71547 + 2da8: f85ddf44 .long 0xf85ddf44 + 2dac: 3e54ae0b .long 0x3e54ae0b + 2db0: 3fd00000 .long 0x3fd00000 + 2db4: 55555555 .long 0x55555555 + 2db8: 3fd55555 .long 0x3fd55555 + 2dbc: 652b82fe .long 0x652b82fe + 2dc0: bff00000 .long 0xbff00000 + 2dc4: 40900000 .long 0x40900000 + 2dc8: bf700000 .long 0xbf700000 + 2dcc: 000fffff .long 0x000fffff + 2dd0: 0003988e .long 0x0003988e + 2dd4: 000bb679 .long 0x000bb679 + 2dd8: fff00000 .long 0xfff00000 + 2ddc: 0000ab64 .long 0x0000ab64 + 2de0: b80b st.w r0, (r14, 0x2c) + 2de2: b82c st.w r1, (r14, 0x30) + 2de4: 9809 ld.w r0, (r14, 0x24) + 2de6: 982a ld.w r1, (r14, 0x28) + 2de8: e00007da bsr 0x3d9c // 3d9c <__muldf3> + 2dec: b803 st.w r0, (r14, 0xc) + 2dee: 3280 movi r2, 128 + 2df0: 5701 asri r0, r7, 1 + 2df2: 6d87 mov r6, r1 + 2df4: 38bd bseti r0, 29 + 2df6: 422c lsli r1, r2, 12 + 2df8: 6004 addu r0, r1 + 2dfa: 45b2 lsli r5, r5, 18 + 2dfc: 6140 addu r5, r0 + 2dfe: 6cd7 mov r3, r5 + 2e00: 3200 movi r2, 0 + 2e02: 6c5b mov r1, r6 + 2e04: 3000 movi r0, 0 + 2e06: e00007cb bsr 0x3d9c // 3d9c <__muldf3> + 2e0a: 6c83 mov r2, r0 + 2e0c: 6cc7 mov r3, r1 + 2e0e: 9809 ld.w r0, (r14, 0x24) + 2e10: 982a ld.w r1, (r14, 0x28) + 2e12: e00007a9 bsr 0x3d64 // 3d64 <__subdf3> + 2e16: b809 st.w r0, (r14, 0x24) + 2e18: 9845 ld.w r2, (r14, 0x14) + 2e1a: 9866 ld.w r3, (r14, 0x18) + 2e1c: b82a st.w r1, (r14, 0x28) + 2e1e: 3000 movi r0, 0 + 2e20: 6c57 mov r1, r5 + 2e22: e00007a1 bsr 0x3d64 // 3d64 <__subdf3> + 2e26: 6c83 mov r2, r0 + 2e28: 6cc7 mov r3, r1 + 2e2a: 6c13 mov r0, r4 + 2e2c: 6c5f mov r1, r7 + 2e2e: e000079b bsr 0x3d64 // 3d64 <__subdf3> + 2e32: 6cdb mov r3, r6 + 2e34: 3200 movi r2, 0 + 2e36: e00007b3 bsr 0x3d9c // 3d9c <__muldf3> + 2e3a: 6c83 mov r2, r0 + 2e3c: 6cc7 mov r3, r1 + 2e3e: 9809 ld.w r0, (r14, 0x24) + 2e40: 982a ld.w r1, (r14, 0x28) + 2e42: e0000791 bsr 0x3d64 // 3d64 <__subdf3> + 2e46: 984b ld.w r2, (r14, 0x2c) + 2e48: 986c ld.w r3, (r14, 0x30) + 2e4a: e00007a9 bsr 0x3d9c // 3d9c <__muldf3> + 2e4e: 9843 ld.w r2, (r14, 0xc) + 2e50: 6cdb mov r3, r6 + 2e52: b805 st.w r0, (r14, 0x14) + 2e54: b826 st.w r1, (r14, 0x18) + 2e56: 6c0b mov r0, r2 + 2e58: 6c5b mov r1, r6 + 2e5a: e00007a1 bsr 0x3d9c // 3d9c <__muldf3> + 2e5e: ea820113 lrw r2, 0x4a454eef // 32a8 <__GI_pow+0x8f4> + 2e62: ea830113 lrw r3, 0x3fca7e28 // 32ac <__GI_pow+0x8f8> + 2e66: 6d43 mov r5, r0 + 2e68: 6d07 mov r4, r1 + 2e6a: e0000799 bsr 0x3d9c // 3d9c <__muldf3> + 2e6e: ea820111 lrw r2, 0x93c9db65 // 32b0 <__GI_pow+0x8fc> + 2e72: ea830111 lrw r3, 0x3fcd864a // 32b4 <__GI_pow+0x900> + 2e76: e000075f bsr 0x3d34 // 3d34 <__adddf3> + 2e7a: 6c97 mov r2, r5 + 2e7c: 6cd3 mov r3, r4 + 2e7e: e000078f bsr 0x3d9c // 3d9c <__muldf3> + 2e82: ea82010e lrw r2, 0xa91d4101 // 32b8 <__GI_pow+0x904> + 2e86: ea83010e lrw r3, 0x3fd17460 // 32bc <__GI_pow+0x908> + 2e8a: e0000755 bsr 0x3d34 // 3d34 <__adddf3> + 2e8e: 6c97 mov r2, r5 + 2e90: 6cd3 mov r3, r4 + 2e92: e0000785 bsr 0x3d9c // 3d9c <__muldf3> + 2e96: ea82010b lrw r2, 0x518f264d // 32c0 <__GI_pow+0x90c> + 2e9a: ea83010b lrw r3, 0x3fd55555 // 32c4 <__GI_pow+0x910> + 2e9e: e000074b bsr 0x3d34 // 3d34 <__adddf3> + 2ea2: 6c97 mov r2, r5 + 2ea4: 6cd3 mov r3, r4 + 2ea6: e000077b bsr 0x3d9c // 3d9c <__muldf3> + 2eaa: ea820108 lrw r2, 0xdb6fabff // 32c8 <__GI_pow+0x914> + 2eae: ea830108 lrw r3, 0x3fdb6db6 // 32cc <__GI_pow+0x918> + 2eb2: e0000741 bsr 0x3d34 // 3d34 <__adddf3> + 2eb6: 6c97 mov r2, r5 + 2eb8: 6cd3 mov r3, r4 + 2eba: e0000771 bsr 0x3d9c // 3d9c <__muldf3> + 2ebe: ea820105 lrw r2, 0x33333303 // 32d0 <__GI_pow+0x91c> + 2ec2: ea830105 lrw r3, 0x3fe33333 // 32d4 <__GI_pow+0x920> + 2ec6: e0000737 bsr 0x3d34 // 3d34 <__adddf3> + 2eca: 6dc3 mov r7, r0 + 2ecc: 6c97 mov r2, r5 + 2ece: 6cd3 mov r3, r4 + 2ed0: b829 st.w r1, (r14, 0x24) + 2ed2: 6c17 mov r0, r5 + 2ed4: 6c53 mov r1, r4 + 2ed6: e0000763 bsr 0x3d9c // 3d9c <__muldf3> + 2eda: 6c83 mov r2, r0 + 2edc: 6cc7 mov r3, r1 + 2ede: 6c1f mov r0, r7 + 2ee0: 9829 ld.w r1, (r14, 0x24) + 2ee2: e000075d bsr 0x3d9c // 3d9c <__muldf3> + 2ee6: 6d43 mov r5, r0 + 2ee8: 6d07 mov r4, r1 + 2eea: 6cdb mov r3, r6 + 2eec: 3200 movi r2, 0 + 2eee: 9803 ld.w r0, (r14, 0xc) + 2ef0: 6c5b mov r1, r6 + 2ef2: e0000721 bsr 0x3d34 // 3d34 <__adddf3> + 2ef6: 9845 ld.w r2, (r14, 0x14) + 2ef8: 9866 ld.w r3, (r14, 0x18) + 2efa: e0000751 bsr 0x3d9c // 3d9c <__muldf3> + 2efe: 6c97 mov r2, r5 + 2f00: 6cd3 mov r3, r4 + 2f02: e0000719 bsr 0x3d34 // 3d34 <__adddf3> + 2f06: 6d43 mov r5, r0 + 2f08: 6cdb mov r3, r6 + 2f0a: b829 st.w r1, (r14, 0x24) + 2f0c: 3200 movi r2, 0 + 2f0e: 6c5b mov r1, r6 + 2f10: 3000 movi r0, 0 + 2f12: e0000745 bsr 0x3d9c // 3d9c <__muldf3> + 2f16: 3200 movi r2, 0 + 2f18: 006f lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f1a: 6dc3 mov r7, r0 + 2f1c: b82a st.w r1, (r14, 0x28) + 2f1e: e000070b bsr 0x3d34 // 3d34 <__adddf3> + 2f22: 6c97 mov r2, r5 + 2f24: 9869 ld.w r3, (r14, 0x24) + 2f26: e0000707 bsr 0x3d34 // 3d34 <__adddf3> + 2f2a: 6d07 mov r4, r1 + 2f2c: 6cc7 mov r3, r1 + 2f2e: 3200 movi r2, 0 + 2f30: 6c5b mov r1, r6 + 2f32: 3000 movi r0, 0 + 2f34: e0000734 bsr 0x3d9c // 3d9c <__muldf3> + 2f38: b80b st.w r0, (r14, 0x2c) + 2f3a: b82c st.w r1, (r14, 0x30) + 2f3c: 3200 movi r2, 0 + 2f3e: 0078 lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f40: 6c53 mov r1, r4 + 2f42: 3000 movi r0, 0 + 2f44: e0000710 bsr 0x3d64 // 3d64 <__subdf3> + 2f48: 6c9f mov r2, r7 + 2f4a: 986a ld.w r3, (r14, 0x28) + 2f4c: e000070c bsr 0x3d64 // 3d64 <__subdf3> + 2f50: 6c83 mov r2, r0 + 2f52: 6cc7 mov r3, r1 + 2f54: 6c17 mov r0, r5 + 2f56: 9829 ld.w r1, (r14, 0x24) + 2f58: e0000706 bsr 0x3d64 // 3d64 <__subdf3> + 2f5c: 9843 ld.w r2, (r14, 0xc) + 2f5e: 6cdb mov r3, r6 + 2f60: e000071e bsr 0x3d9c // 3d9c <__muldf3> + 2f64: 6d83 mov r6, r0 + 2f66: 6d47 mov r5, r1 + 2f68: 6cd3 mov r3, r4 + 2f6a: 3200 movi r2, 0 + 2f6c: 9805 ld.w r0, (r14, 0x14) + 2f6e: 9826 ld.w r1, (r14, 0x18) + 2f70: e0000716 bsr 0x3d9c // 3d9c <__muldf3> + 2f74: 6c83 mov r2, r0 + 2f76: 6cc7 mov r3, r1 + 2f78: 6c1b mov r0, r6 + 2f7a: 6c57 mov r1, r5 + 2f7c: e00006dc bsr 0x3d34 // 3d34 <__adddf3> + 2f80: 6dc3 mov r7, r0 + 2f82: 6d87 mov r6, r1 + 2f84: 6c83 mov r2, r0 + 2f86: 6cc7 mov r3, r1 + 2f88: 980b ld.w r0, (r14, 0x2c) + 2f8a: 982c ld.w r1, (r14, 0x30) + 2f8c: e00006d4 bsr 0x3d34 // 3d34 <__adddf3> + 2f90: 33e0 movi r3, 224 + 2f92: 4358 lsli r2, r3, 24 + 2f94: 3000 movi r0, 0 + 2f96: 016d lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2f98: 6d07 mov r4, r1 + 2f9a: e0000701 bsr 0x3d9c // 3d9c <__muldf3> + 2f9e: b805 st.w r0, (r14, 0x14) + 2fa0: b826 st.w r1, (r14, 0x18) + 2fa2: 984b ld.w r2, (r14, 0x2c) + 2fa4: 986c ld.w r3, (r14, 0x30) + 2fa6: 6c53 mov r1, r4 + 2fa8: 3000 movi r0, 0 + 2faa: e00006dd bsr 0x3d64 // 3d64 <__subdf3> + 2fae: 6c83 mov r2, r0 + 2fb0: 6cc7 mov r3, r1 + 2fb2: 6c1f mov r0, r7 + 2fb4: 6c5b mov r1, r6 + 2fb6: e00006d7 bsr 0x3d64 // 3d64 <__subdf3> + 2fba: 0155 lrw r2, 0xdc3a03fd // 32e0 <__GI_pow+0x92c> + 2fbc: 0177 lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2fbe: e00006ef bsr 0x3d9c // 3d9c <__muldf3> + 2fc2: 6dc3 mov r7, r0 + 2fc4: 6d47 mov r5, r1 + 2fc6: 0157 lrw r2, 0x145b01f5 // 32e4 <__GI_pow+0x930> + 2fc8: 0177 lrw r3, 0xbe3e2fe0 // 32e8 <__GI_pow+0x934> + 2fca: 6c53 mov r1, r4 + 2fcc: 3000 movi r0, 0 + 2fce: e00006e7 bsr 0x3d9c // 3d9c <__muldf3> + 2fd2: 6c83 mov r2, r0 + 2fd4: 6cc7 mov r3, r1 + 2fd6: 6c1f mov r0, r7 + 2fd8: 6c57 mov r1, r5 + 2fda: e00006ad bsr 0x3d34 // 3d34 <__adddf3> + 2fde: 01db lrw r6, 0xab64 // 32ec <__GI_pow+0x938> + 2fe0: 9848 ld.w r2, (r14, 0x20) + 2fe2: 6188 addu r6, r2 + 2fe4: 9644 ld.w r2, (r6, 0x10) + 2fe6: 9665 ld.w r3, (r6, 0x14) + 2fe8: e00006a6 bsr 0x3d34 // 3d34 <__adddf3> + 2fec: b809 st.w r0, (r14, 0x24) + 2fee: 9804 ld.w r0, (r14, 0x10) + 2ff0: b82a st.w r1, (r14, 0x28) + 2ff2: e00008f3 bsr 0x41d8 // 41d8 <__floatsidf> + 2ff6: 6d83 mov r6, r0 + 2ff8: 0202 lrw r0, 0xab64 // 32ec <__GI_pow+0x938> + 2ffa: 6d47 mov r5, r1 + 2ffc: 201f addi r0, 32 + 2ffe: 9828 ld.w r1, (r14, 0x20) + 3000: 6004 addu r0, r1 + 3002: 9080 ld.w r4, (r0, 0x0) + 3004: 90e1 ld.w r7, (r0, 0x4) + 3006: 9849 ld.w r2, (r14, 0x24) + 3008: 986a ld.w r3, (r14, 0x28) + 300a: 9805 ld.w r0, (r14, 0x14) + 300c: 9826 ld.w r1, (r14, 0x18) + 300e: e0000693 bsr 0x3d34 // 3d34 <__adddf3> + 3012: 6c93 mov r2, r4 + 3014: 6cdf mov r3, r7 + 3016: e000068f bsr 0x3d34 // 3d34 <__adddf3> + 301a: 6c9b mov r2, r6 + 301c: 6cd7 mov r3, r5 + 301e: e000068b bsr 0x3d34 // 3d34 <__adddf3> + 3022: 6c9b mov r2, r6 + 3024: 6cd7 mov r3, r5 + 3026: 3000 movi r0, 0 + 3028: b823 st.w r1, (r14, 0xc) + 302a: e000069d bsr 0x3d64 // 3d64 <__subdf3> + 302e: 6c93 mov r2, r4 + 3030: 6cdf mov r3, r7 + 3032: e0000699 bsr 0x3d64 // 3d64 <__subdf3> + 3036: 9845 ld.w r2, (r14, 0x14) + 3038: 9866 ld.w r3, (r14, 0x18) + 303a: e0000695 bsr 0x3d64 // 3d64 <__subdf3> + 303e: 6c83 mov r2, r0 + 3040: 6cc7 mov r3, r1 + 3042: 9809 ld.w r0, (r14, 0x24) + 3044: 982a ld.w r1, (r14, 0x28) + 3046: 060b br 0x2c5c // 2c5c <__GI_pow+0x2a8> + 3048: 3700 movi r7, 0 + 304a: 0663 br 0x2d10 // 2d10 <__GI_pow+0x35c> + 304c: 3501 movi r5, 1 + 304e: 0676 br 0x2d3a // 2d3a <__GI_pow+0x386> + 3050: 0277 lrw r3, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3052: 0611 br 0x2c74 // 2c74 <__GI_pow+0x2c0> + 3054: 0257 lrw r2, 0x652b82fe // 32f4 <__GI_pow+0x940> + 3056: 0276 lrw r3, 0x3c971547 // 32f8 <__GI_pow+0x944> + 3058: 6c1f mov r0, r7 + 305a: 6c5b mov r1, r6 + 305c: e000066c bsr 0x3d34 // 3d34 <__adddf3> + 3060: b805 st.w r0, (r14, 0x14) + 3062: b826 st.w r1, (r14, 0x18) + 3064: 9842 ld.w r2, (r14, 0x8) + 3066: 6cd7 mov r3, r5 + 3068: 9800 ld.w r0, (r14, 0x0) + 306a: 6c53 mov r1, r4 + 306c: e000067c bsr 0x3d64 // 3d64 <__subdf3> + 3070: 6c83 mov r2, r0 + 3072: 6cc7 mov r3, r1 + 3074: 9805 ld.w r0, (r14, 0x14) + 3076: 9826 ld.w r1, (r14, 0x18) + 3078: e0000856 bsr 0x4124 // 4124 <__gtdf2> + 307c: 3820 cmplti r0, 1 + 307e: 0802 bt 0x3082 // 3082 <__GI_pow+0x6ce> + 3080: 0633 br 0x2ce6 // 2ce6 <__GI_pow+0x332> + 3082: 4421 lsli r1, r4, 1 + 3084: 4901 lsri r0, r1, 1 + 3086: 0361 lrw r3, 0x3fe00000 // 32fc <__GI_pow+0x948> + 3088: 640d cmplt r3, r0 + 308a: 0cfd bf 0x3284 // 3284 <__GI_pow+0x8d0> + 308c: 5034 asri r1, r0, 20 + 308e: 0342 lrw r2, 0xfffffc02 // 3300 <__GI_pow+0x94c> + 3090: 3080 movi r0, 128 + 3092: 6048 addu r1, r2 + 3094: 404d lsli r2, r0, 13 + 3096: 7086 asr r2, r1 + 3098: 6090 addu r2, r4 + 309a: 4261 lsli r3, r2, 1 + 309c: 4b35 lsri r1, r3, 21 + 309e: 0305 lrw r0, 0xfffffc01 // 3304 <__GI_pow+0x950> + 30a0: 6040 addu r1, r0 + 30a2: 0365 lrw r3, 0xfffff // 3308 <__GI_pow+0x954> + 30a4: 70c6 asr r3, r1 + 30a6: 6c0b mov r0, r2 + 30a8: 680d andn r0, r3 + 30aa: 424c lsli r2, r2, 12 + 30ac: 6cc3 mov r3, r0 + 30ae: 4a4c lsri r2, r2, 12 + 30b0: 3014 movi r0, 20 + 30b2: 3ab4 bseti r2, 20 + 30b4: 5825 subu r1, r0, r1 + 30b6: 7086 asr r2, r1 + 30b8: 3cdf btsti r4, 31 + 30ba: b840 st.w r2, (r14, 0x0) + 30bc: 0c05 bf 0x30c6 // 30c6 <__GI_pow+0x712> + 30be: 9840 ld.w r2, (r14, 0x0) + 30c0: 3400 movi r4, 0 + 30c2: 610a subu r4, r2 + 30c4: b880 st.w r4, (r14, 0x0) + 30c6: 3200 movi r2, 0 + 30c8: 9802 ld.w r0, (r14, 0x8) + 30ca: 6c57 mov r1, r5 + 30cc: e000064c bsr 0x3d64 // 3d64 <__subdf3> + 30d0: b803 st.w r0, (r14, 0xc) + 30d2: b824 st.w r1, (r14, 0x10) + 30d4: 9803 ld.w r0, (r14, 0xc) + 30d6: 6c9f mov r2, r7 + 30d8: 6cdb mov r3, r6 + 30da: 9824 ld.w r1, (r14, 0x10) + 30dc: e000062c bsr 0x3d34 // 3d34 <__adddf3> + 30e0: 3200 movi r2, 0 + 30e2: 0374 lrw r3, 0x3fe62e43 // 330c <__GI_pow+0x958> + 30e4: 3000 movi r0, 0 + 30e6: 6d07 mov r4, r1 + 30e8: e000065a bsr 0x3d9c // 3d9c <__muldf3> + 30ec: 6d47 mov r5, r1 + 30ee: 9843 ld.w r2, (r14, 0xc) + 30f0: 9864 ld.w r3, (r14, 0x10) + 30f2: b802 st.w r0, (r14, 0x8) + 30f4: 6c53 mov r1, r4 + 30f6: 3000 movi r0, 0 + 30f8: e0000636 bsr 0x3d64 // 3d64 <__subdf3> + 30fc: 6c83 mov r2, r0 + 30fe: 6cc7 mov r3, r1 + 3100: 6c1f mov r0, r7 + 3102: 6c5b mov r1, r6 + 3104: e0000630 bsr 0x3d64 // 3d64 <__subdf3> + 3108: 035d lrw r2, 0xfefa39ef // 3310 <__GI_pow+0x95c> + 310a: 037c lrw r3, 0x3fe62e42 // 3314 <__GI_pow+0x960> + 310c: e0000648 bsr 0x3d9c // 3d9c <__muldf3> + 3110: 6dc3 mov r7, r0 + 3112: 6d87 mov r6, r1 + 3114: 035e lrw r2, 0xca86c39 // 3318 <__GI_pow+0x964> + 3116: 037d lrw r3, 0xbe205c61 // 331c <__GI_pow+0x968> + 3118: 6c53 mov r1, r4 + 311a: 3000 movi r0, 0 + 311c: e0000640 bsr 0x3d9c // 3d9c <__muldf3> + 3120: 6c83 mov r2, r0 + 3122: 6cc7 mov r3, r1 + 3124: 6c1f mov r0, r7 + 3126: 6c5b mov r1, r6 + 3128: e0000606 bsr 0x3d34 // 3d34 <__adddf3> + 312c: 6d07 mov r4, r1 + 312e: 6c83 mov r2, r0 + 3130: 6cc7 mov r3, r1 + 3132: b803 st.w r0, (r14, 0xc) + 3134: 6c57 mov r1, r5 + 3136: 9802 ld.w r0, (r14, 0x8) + 3138: e00005fe bsr 0x3d34 // 3d34 <__adddf3> + 313c: 9842 ld.w r2, (r14, 0x8) + 313e: 6cd7 mov r3, r5 + 3140: 6dc3 mov r7, r0 + 3142: 6d87 mov r6, r1 + 3144: e0000610 bsr 0x3d64 // 3d64 <__subdf3> + 3148: 6c83 mov r2, r0 + 314a: 6cc7 mov r3, r1 + 314c: 9803 ld.w r0, (r14, 0xc) + 314e: 6c53 mov r1, r4 + 3150: e000060a bsr 0x3d64 // 3d64 <__subdf3> + 3154: b802 st.w r0, (r14, 0x8) + 3156: b823 st.w r1, (r14, 0xc) + 3158: 6c9f mov r2, r7 + 315a: 6cdb mov r3, r6 + 315c: 6c1f mov r0, r7 + 315e: 6c5b mov r1, r6 + 3160: e000061e bsr 0x3d9c // 3d9c <__muldf3> + 3164: 134f lrw r2, 0x72bea4d0 // 3320 <__GI_pow+0x96c> + 3166: 1370 lrw r3, 0x3e663769 // 3324 <__GI_pow+0x970> + 3168: 6d43 mov r5, r0 + 316a: 6d07 mov r4, r1 + 316c: e0000618 bsr 0x3d9c // 3d9c <__muldf3> + 3170: 134e lrw r2, 0xc5d26bf1 // 3328 <__GI_pow+0x974> + 3172: 136f lrw r3, 0x3ebbbd41 // 332c <__GI_pow+0x978> + 3174: e00005f8 bsr 0x3d64 // 3d64 <__subdf3> + 3178: 6c97 mov r2, r5 + 317a: 6cd3 mov r3, r4 + 317c: e0000610 bsr 0x3d9c // 3d9c <__muldf3> + 3180: 134c lrw r2, 0xaf25de2c // 3330 <__GI_pow+0x97c> + 3182: 136d lrw r3, 0x3f11566a // 3334 <__GI_pow+0x980> + 3184: e00005d8 bsr 0x3d34 // 3d34 <__adddf3> + 3188: 6c97 mov r2, r5 + 318a: 6cd3 mov r3, r4 + 318c: e0000608 bsr 0x3d9c // 3d9c <__muldf3> + 3190: 134a lrw r2, 0x16bebd93 // 3338 <__GI_pow+0x984> + 3192: 136b lrw r3, 0x3f66c16c // 333c <__GI_pow+0x988> + 3194: e00005e8 bsr 0x3d64 // 3d64 <__subdf3> + 3198: 6c97 mov r2, r5 + 319a: 6cd3 mov r3, r4 + 319c: e0000600 bsr 0x3d9c // 3d9c <__muldf3> + 31a0: 1348 lrw r2, 0x5555553e // 3340 <__GI_pow+0x98c> + 31a2: 1369 lrw r3, 0x3fc55555 // 3344 <__GI_pow+0x990> + 31a4: e00005c8 bsr 0x3d34 // 3d34 <__adddf3> + 31a8: 6c97 mov r2, r5 + 31aa: 6cd3 mov r3, r4 + 31ac: e00005f8 bsr 0x3d9c // 3d9c <__muldf3> + 31b0: 6c83 mov r2, r0 + 31b2: 6cc7 mov r3, r1 + 31b4: 6c1f mov r0, r7 + 31b6: 6c5b mov r1, r6 + 31b8: e00005d6 bsr 0x3d64 // 3d64 <__subdf3> + 31bc: 6d43 mov r5, r0 + 31be: 6d07 mov r4, r1 + 31c0: 6c83 mov r2, r0 + 31c2: 6cc7 mov r3, r1 + 31c4: 6c1f mov r0, r7 + 31c6: 6c5b mov r1, r6 + 31c8: e00005ea bsr 0x3d9c // 3d9c <__muldf3> + 31cc: 3380 movi r3, 128 + 31ce: b804 st.w r0, (r14, 0x10) + 31d0: b825 st.w r1, (r14, 0x14) + 31d2: 3200 movi r2, 0 + 31d4: 4377 lsli r3, r3, 23 + 31d6: 6c17 mov r0, r5 + 31d8: 6c53 mov r1, r4 + 31da: e00005c5 bsr 0x3d64 // 3d64 <__subdf3> + 31de: 6c83 mov r2, r0 + 31e0: 6cc7 mov r3, r1 + 31e2: 9804 ld.w r0, (r14, 0x10) + 31e4: 9825 ld.w r1, (r14, 0x14) + 31e6: e00006f5 bsr 0x3fd0 // 3fd0 <__divdf3> + 31ea: 6d07 mov r4, r1 + 31ec: 6d43 mov r5, r0 + 31ee: 9842 ld.w r2, (r14, 0x8) + 31f0: 9863 ld.w r3, (r14, 0xc) + 31f2: 6c1f mov r0, r7 + 31f4: 6c5b mov r1, r6 + 31f6: e00005d3 bsr 0x3d9c // 3d9c <__muldf3> + 31fa: 9842 ld.w r2, (r14, 0x8) + 31fc: 9863 ld.w r3, (r14, 0xc) + 31fe: e000059b bsr 0x3d34 // 3d34 <__adddf3> + 3202: 6c83 mov r2, r0 + 3204: 6cc7 mov r3, r1 + 3206: 6c17 mov r0, r5 + 3208: 6c53 mov r1, r4 + 320a: e00005ad bsr 0x3d64 // 3d64 <__subdf3> + 320e: 6c9f mov r2, r7 + 3210: 6cdb mov r3, r6 + 3212: e00005a9 bsr 0x3d64 // 3d64 <__subdf3> + 3216: 6c83 mov r2, r0 + 3218: 6cc7 mov r3, r1 + 321a: 3000 movi r0, 0 + 321c: 1135 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 321e: e00005a3 bsr 0x3d64 // 3d64 <__subdf3> + 3222: 9840 ld.w r2, (r14, 0x0) + 3224: 4274 lsli r3, r2, 20 + 3226: 60c4 addu r3, r1 + 3228: 5394 asri r4, r3, 20 + 322a: 3c20 cmplti r4, 1 + 322c: 0c2f bf 0x328a // 328a <__GI_pow+0x8d6> + 322e: 9840 ld.w r2, (r14, 0x0) + 3230: e000009a bsr 0x3364 // 3364 <__GI_scalbn> + 3234: 3200 movi r2, 0 + 3236: 9861 ld.w r3, (r14, 0x4) + 3238: e800fc56 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 323c: 4401 lsli r0, r4, 1 + 323e: 4861 lsri r3, r0, 1 + 3240: 1242 lrw r2, 0x4090cbff // 3348 <__GI_pow+0x994> + 3242: 64c9 cmplt r2, r3 + 3244: 0f1f bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3246: 1222 lrw r1, 0x3f6f3400 // 334c <__GI_pow+0x998> + 3248: 6050 addu r1, r4 + 324a: 9800 ld.w r0, (r14, 0x0) + 324c: 6c40 or r1, r0 + 324e: 3940 cmpnei r1, 0 + 3250: 0c0b bf 0x3266 // 3266 <__GI_pow+0x8b2> + 3252: 1240 lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3254: 1260 lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3256: 3000 movi r0, 0 + 3258: 9821 ld.w r1, (r14, 0x4) + 325a: e00005a1 bsr 0x3d9c // 3d9c <__muldf3> + 325e: 115d lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3260: 117d lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3262: e800fc41 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 3266: 9842 ld.w r2, (r14, 0x8) + 3268: 6cd7 mov r3, r5 + 326a: 9800 ld.w r0, (r14, 0x0) + 326c: 6c53 mov r1, r4 + 326e: e000057b bsr 0x3d64 // 3d64 <__subdf3> + 3272: 6c83 mov r2, r0 + 3274: 6cc7 mov r3, r1 + 3276: 6c1f mov r0, r7 + 3278: 6c5b mov r1, r6 + 327a: e0000791 bsr 0x419c // 419c <__ledf2> + 327e: 3820 cmplti r0, 1 + 3280: 0f01 bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3282: 07e8 br 0x3252 // 3252 <__GI_pow+0x89e> + 3284: 3500 movi r5, 0 + 3286: b8a0 st.w r5, (r14, 0x0) + 3288: 0726 br 0x30d4 // 30d4 <__GI_pow+0x720> + 328a: 6c4f mov r1, r3 + 328c: 07d4 br 0x3234 // 3234 <__GI_pow+0x880> + 328e: 3400 movi r4, 0 + 3290: 1038 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3292: e800fbb5 br 0x29fc // 29fc <__GI_pow+0x48> + 3296: 3400 movi r4, 0 + 3298: 9820 ld.w r1, (r14, 0x0) + 329a: e800fbb1 br 0x29fc // 29fc <__GI_pow+0x48> + 329e: 6d1f mov r4, r7 + 32a0: 6c5b mov r1, r6 + 32a2: e800fbad br 0x29fc // 29fc <__GI_pow+0x48> + 32a6: 0000 bkpt + 32a8: 4a454eef .long 0x4a454eef + 32ac: 3fca7e28 .long 0x3fca7e28 + 32b0: 93c9db65 .long 0x93c9db65 + 32b4: 3fcd864a .long 0x3fcd864a + 32b8: a91d4101 .long 0xa91d4101 + 32bc: 3fd17460 .long 0x3fd17460 + 32c0: 518f264d .long 0x518f264d + 32c4: 3fd55555 .long 0x3fd55555 + 32c8: db6fabff .long 0xdb6fabff + 32cc: 3fdb6db6 .long 0x3fdb6db6 + 32d0: 33333303 .long 0x33333303 + 32d4: 3fe33333 .long 0x3fe33333 + 32d8: 40080000 .long 0x40080000 + 32dc: 3feec709 .long 0x3feec709 + 32e0: dc3a03fd .long 0xdc3a03fd + 32e4: 145b01f5 .long 0x145b01f5 + 32e8: be3e2fe0 .long 0xbe3e2fe0 + 32ec: 0000ab64 .long 0x0000ab64 + 32f0: 3ff00000 .long 0x3ff00000 + 32f4: 652b82fe .long 0x652b82fe + 32f8: 3c971547 .long 0x3c971547 + 32fc: 3fe00000 .long 0x3fe00000 + 3300: fffffc02 .long 0xfffffc02 + 3304: fffffc01 .long 0xfffffc01 + 3308: 000fffff .long 0x000fffff + 330c: 3fe62e43 .long 0x3fe62e43 + 3310: fefa39ef .long 0xfefa39ef + 3314: 3fe62e42 .long 0x3fe62e42 + 3318: 0ca86c39 .long 0x0ca86c39 + 331c: be205c61 .long 0xbe205c61 + 3320: 72bea4d0 .long 0x72bea4d0 + 3324: 3e663769 .long 0x3e663769 + 3328: c5d26bf1 .long 0xc5d26bf1 + 332c: 3ebbbd41 .long 0x3ebbbd41 + 3330: af25de2c .long 0xaf25de2c + 3334: 3f11566a .long 0x3f11566a + 3338: 16bebd93 .long 0x16bebd93 + 333c: 3f66c16c .long 0x3f66c16c + 3340: 5555553e .long 0x5555553e + 3344: 3fc55555 .long 0x3fc55555 + 3348: 4090cbff .long 0x4090cbff + 334c: 3f6f3400 .long 0x3f6f3400 + 3350: c2f8f359 .long 0xc2f8f359 + 3354: 01a56e1f .long 0x01a56e1f + 3358: 3300 movi r3, 0 + 335a: e800fb94 br 0x2a82 // 2a82 <__GI_pow+0xce> + +0000335e <__GI_fabs>: + 335e: 4121 lsli r1, r1, 1 + 3360: 4921 lsri r1, r1, 1 + 3362: 783c jmp r15 + +00003364 <__GI_scalbn>: + 3364: 14c1 push r4 + 3366: 6cc7 mov r3, r1 + 3368: 6cc0 or r3, r0 + 336a: 3b40 cmpnei r3, 0 + 336c: 0c08 bf 0x337c // 337c <__GI_scalbn+0x18> + 336e: 1065 lrw r3, 0x7ff00000 // 3380 <__GI_scalbn+0x1c> + 3370: 6d07 mov r4, r1 + 3372: 690c and r4, r3 + 3374: 4254 lsli r2, r2, 20 + 3376: 6090 addu r2, r4 + 3378: 684d andn r1, r3 + 337a: 6c48 or r1, r2 + 337c: 1481 pop r4 + 337e: 0000 bkpt + 3380: 7ff00000 .long 0x7ff00000 + +00003384 <__GI_sqrt>: + 3384: 14d4 push r4-r7, r15 + 3386: 1423 subi r14, r14, 12 + 3388: 127a lrw r3, 0x7ff00000 // 34f0 <__GI_sqrt+0x16c> + 338a: 6d43 mov r5, r0 + 338c: 6d07 mov r4, r1 + 338e: 6c07 mov r0, r1 + 3390: 684c and r1, r3 + 3392: 64c6 cmpne r1, r3 + 3394: 6c97 mov r2, r5 + 3396: 0812 bt 0x33ba // 33ba <__GI_sqrt+0x36> + 3398: 6cd3 mov r3, r4 + 339a: 6c17 mov r0, r5 + 339c: 6c53 mov r1, r4 + 339e: e00004ff bsr 0x3d9c // 3d9c <__muldf3> + 33a2: 6c83 mov r2, r0 + 33a4: 6cc7 mov r3, r1 + 33a6: 6c17 mov r0, r5 + 33a8: 6c53 mov r1, r4 + 33aa: e00004c5 bsr 0x3d34 // 3d34 <__adddf3> + 33ae: 6d43 mov r5, r0 + 33b0: 6d07 mov r4, r1 + 33b2: 6c17 mov r0, r5 + 33b4: 6c53 mov r1, r4 + 33b6: 1403 addi r14, r14, 12 + 33b8: 1494 pop r4-r7, r15 + 33ba: 3c20 cmplti r4, 1 + 33bc: 0c13 bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33be: 4461 lsli r3, r4, 1 + 33c0: 4b21 lsri r1, r3, 1 + 33c2: 6c54 or r1, r5 + 33c4: 3940 cmpnei r1, 0 + 33c6: 0ff6 bf 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 33c8: 3c40 cmpnei r4, 0 + 33ca: 0c0c bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33cc: 6c97 mov r2, r5 + 33ce: 6cd3 mov r3, r4 + 33d0: 6c17 mov r0, r5 + 33d2: 6c53 mov r1, r4 + 33d4: e00004c8 bsr 0x3d64 // 3d64 <__subdf3> + 33d8: 6c83 mov r2, r0 + 33da: 6cc7 mov r3, r1 + 33dc: e00005fa bsr 0x3fd0 // 3fd0 <__divdf3> + 33e0: 07e7 br 0x33ae // 33ae <__GI_sqrt+0x2a> + 33e2: 5494 asri r4, r4, 20 + 33e4: 3c40 cmpnei r4, 0 + 33e6: 0812 bt 0x340a // 340a <__GI_sqrt+0x86> + 33e8: 3840 cmpnei r0, 0 + 33ea: 0c76 bf 0x34d6 // 34d6 <__GI_sqrt+0x152> + 33ec: 3580 movi r5, 128 + 33ee: 3300 movi r3, 0 + 33f0: 452d lsli r1, r5, 13 + 33f2: 6d83 mov r6, r0 + 33f4: 6984 and r6, r1 + 33f6: 3e40 cmpnei r6, 0 + 33f8: 0c73 bf 0x34de // 34de <__GI_sqrt+0x15a> + 33fa: 5b23 subi r1, r3, 1 + 33fc: 3620 movi r6, 32 + 33fe: 6106 subu r4, r1 + 3400: 618e subu r6, r3 + 3402: 6c4b mov r1, r2 + 3404: 7059 lsr r1, r6 + 3406: 6c04 or r0, r1 + 3408: 708c lsl r2, r3 + 340a: 117b lrw r3, 0xfffffc01 // 34f4 <__GI_sqrt+0x170> + 340c: 610c addu r4, r3 + 340e: 3601 movi r6, 1 + 3410: 400c lsli r0, r0, 12 + 3412: 6990 and r6, r4 + 3414: 480c lsri r0, r0, 12 + 3416: 3e40 cmpnei r6, 0 + 3418: 38b4 bseti r0, 20 + 341a: 0c05 bf 0x3424 // 3424 <__GI_sqrt+0xa0> + 341c: 4a3f lsri r1, r2, 31 + 341e: 40a1 lsli r5, r0, 1 + 3420: 5914 addu r0, r1, r5 + 3422: 4241 lsli r2, r2, 1 + 3424: 4a7f lsri r3, r2, 31 + 3426: 60c0 addu r3, r0 + 3428: 5481 asri r4, r4, 1 + 342a: 3680 movi r6, 128 + 342c: 3100 movi r1, 0 + 342e: 60c0 addu r3, r0 + 3430: b882 st.w r4, (r14, 0x8) + 3432: 4241 lsli r2, r2, 1 + 3434: 3516 movi r5, 22 + 3436: 460e lsli r0, r6, 14 + 3438: b820 st.w r1, (r14, 0x0) + 343a: 5980 addu r4, r1, r0 + 343c: 650d cmplt r3, r4 + 343e: 0806 bt 0x344a // 344a <__GI_sqrt+0xc6> + 3440: 98c0 ld.w r6, (r14, 0x0) + 3442: 6180 addu r6, r0 + 3444: 5c20 addu r1, r4, r0 + 3446: 60d2 subu r3, r4 + 3448: b8c0 st.w r6, (r14, 0x0) + 344a: 2d00 subi r5, 1 + 344c: 4a9f lsri r4, r2, 31 + 344e: 4361 lsli r3, r3, 1 + 3450: 3d40 cmpnei r5, 0 + 3452: 60d0 addu r3, r4 + 3454: 4241 lsli r2, r2, 1 + 3456: 4801 lsri r0, r0, 1 + 3458: 0bf1 bt 0x343a // 343a <__GI_sqrt+0xb6> + 345a: 3620 movi r6, 32 + 345c: 3480 movi r4, 128 + 345e: 3000 movi r0, 0 + 3460: b8c1 st.w r6, (r14, 0x4) + 3462: 4498 lsli r4, r4, 24 + 3464: 64c5 cmplt r1, r3 + 3466: 5cd4 addu r6, r4, r5 + 3468: 0805 bt 0x3472 // 3472 <__GI_sqrt+0xee> + 346a: 644e cmpne r3, r1 + 346c: 0810 bt 0x348c // 348c <__GI_sqrt+0x108> + 346e: 6588 cmphs r2, r6 + 3470: 0c0e bf 0x348c // 348c <__GI_sqrt+0x108> + 3472: 3edf btsti r6, 31 + 3474: 5eb0 addu r5, r6, r4 + 3476: 0c37 bf 0x34e4 // 34e4 <__GI_sqrt+0x160> + 3478: 3ddf btsti r5, 31 + 347a: 0835 bt 0x34e4 // 34e4 <__GI_sqrt+0x160> + 347c: 59e2 addi r7, r1, 1 + 347e: 6588 cmphs r2, r6 + 3480: 60c6 subu r3, r1 + 3482: 0802 bt 0x3486 // 3486 <__GI_sqrt+0x102> + 3484: 2b00 subi r3, 1 + 3486: 609a subu r2, r6 + 3488: 6010 addu r0, r4 + 348a: 6c5f mov r1, r7 + 348c: 4adf lsri r6, r2, 31 + 348e: 618c addu r6, r3 + 3490: 60d8 addu r3, r6 + 3492: 98c1 ld.w r6, (r14, 0x4) + 3494: 2e00 subi r6, 1 + 3496: 3e40 cmpnei r6, 0 + 3498: 4241 lsli r2, r2, 1 + 349a: 4c81 lsri r4, r4, 1 + 349c: b8c1 st.w r6, (r14, 0x4) + 349e: 0be3 bt 0x3464 // 3464 <__GI_sqrt+0xe0> + 34a0: 6cc8 or r3, r2 + 34a2: 3b40 cmpnei r3, 0 + 34a4: 0c09 bf 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34a6: 3300 movi r3, 0 + 34a8: 2b00 subi r3, 1 + 34aa: 64c2 cmpne r0, r3 + 34ac: 081e bt 0x34e8 // 34e8 <__GI_sqrt+0x164> + 34ae: 9800 ld.w r0, (r14, 0x0) + 34b0: 2000 addi r0, 1 + 34b2: b800 st.w r0, (r14, 0x0) + 34b4: 3000 movi r0, 0 + 34b6: 3401 movi r4, 1 + 34b8: 9860 ld.w r3, (r14, 0x0) + 34ba: 98a0 ld.w r5, (r14, 0x0) + 34bc: 690c and r4, r3 + 34be: 5541 asri r2, r5, 1 + 34c0: 102e lrw r1, 0x3fe00000 // 34f8 <__GI_sqrt+0x174> + 34c2: 3c40 cmpnei r4, 0 + 34c4: 6048 addu r1, r2 + 34c6: 4801 lsri r0, r0, 1 + 34c8: 0c02 bf 0x34cc // 34cc <__GI_sqrt+0x148> + 34ca: 38bf bseti r0, 31 + 34cc: 98a2 ld.w r5, (r14, 0x8) + 34ce: 4594 lsli r4, r5, 20 + 34d0: 6104 addu r4, r1 + 34d2: 6d43 mov r5, r0 + 34d4: 076f br 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 34d6: 4a0b lsri r0, r2, 11 + 34d8: 2c14 subi r4, 21 + 34da: 4255 lsli r2, r2, 21 + 34dc: 0786 br 0x33e8 // 33e8 <__GI_sqrt+0x64> + 34de: 4001 lsli r0, r0, 1 + 34e0: 2300 addi r3, 1 + 34e2: 0788 br 0x33f2 // 33f2 <__GI_sqrt+0x6e> + 34e4: 6dc7 mov r7, r1 + 34e6: 07cc br 0x347e // 347e <__GI_sqrt+0xfa> + 34e8: 2000 addi r0, 1 + 34ea: 3880 bclri r0, 0 + 34ec: 07e5 br 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34ee: 0000 bkpt + 34f0: 7ff00000 .long 0x7ff00000 + 34f4: fffffc01 .long 0xfffffc01 + 34f8: 3fe00000 .long 0x3fe00000 + +000034fc <___gnu_csky_case_uqi>: + 34fc: 1421 subi r14, r14, 4 + 34fe: b820 st.w r1, (r14, 0x0) + 3500: 6c7f mov r1, r15 + 3502: 6040 addu r1, r0 + 3504: 8120 ld.b r1, (r1, 0x0) + 3506: 4121 lsli r1, r1, 1 + 3508: 63c4 addu r15, r1 + 350a: 9820 ld.w r1, (r14, 0x0) + 350c: 1401 addi r14, r14, 4 + 350e: 783c jmp r15 + +00003510 <___gnu_csky_case_uhi>: + 3510: 1422 subi r14, r14, 8 + 3512: b801 st.w r0, (r14, 0x4) + 3514: b820 st.w r1, (r14, 0x0) + 3516: 6c7f mov r1, r15 + 3518: 4001 lsli r0, r0, 1 + 351a: 6040 addu r1, r0 + 351c: 8920 ld.h r1, (r1, 0x0) + 351e: 4121 lsli r1, r1, 1 + 3520: 63c4 addu r15, r1 + 3522: 9801 ld.w r0, (r14, 0x4) + 3524: 9820 ld.w r1, (r14, 0x0) + 3526: 1402 addi r14, r14, 8 + 3528: 783c jmp r15 + ... + +0000352c <__fixunssfsi>: + 352c: 14d1 push r4, r15 + 352e: 319e movi r1, 158 + 3530: 4137 lsli r1, r1, 23 + 3532: 6d03 mov r4, r0 + 3534: e000020c bsr 0x394c // 394c <__gesf2> + 3538: 38df btsti r0, 31 + 353a: 0c05 bf 0x3544 // 3544 <__fixunssfsi+0x18> + 353c: 6c13 mov r0, r4 + 353e: e0000255 bsr 0x39e8 // 39e8 <__fixsfsi> + 3542: 1491 pop r4, r15 + 3544: 319e movi r1, 158 + 3546: 4137 lsli r1, r1, 23 + 3548: 6c13 mov r0, r4 + 354a: e00000e1 bsr 0x370c // 370c <__subsf3> + 354e: e000024d bsr 0x39e8 // 39e8 <__fixsfsi> + 3552: 3380 movi r3, 128 + 3554: 4378 lsli r3, r3, 24 + 3556: 600c addu r0, r3 + 3558: 1491 pop r4, r15 + ... + +0000355c <__fixunsdfsi>: + 355c: 14d2 push r4-r5, r15 + 355e: 3200 movi r2, 0 + 3560: 106c lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 3562: 6d43 mov r5, r0 + 3564: 6d07 mov r4, r1 + 3566: e00005fd bsr 0x4160 // 4160 <__gedf2> + 356a: 38df btsti r0, 31 + 356c: 0c06 bf 0x3578 // 3578 <__fixunsdfsi+0x1c> + 356e: 6c17 mov r0, r5 + 3570: 6c53 mov r1, r4 + 3572: e000066b bsr 0x4248 // 4248 <__fixdfsi> + 3576: 1492 pop r4-r5, r15 + 3578: 3200 movi r2, 0 + 357a: 1066 lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 357c: 6c17 mov r0, r5 + 357e: 6c53 mov r1, r4 + 3580: e00003f2 bsr 0x3d64 // 3d64 <__subdf3> + 3584: e0000662 bsr 0x4248 // 4248 <__fixdfsi> + 3588: 3380 movi r3, 128 + 358a: 4378 lsli r3, r3, 24 + 358c: 600c addu r0, r3 + 358e: 1492 pop r4-r5, r15 + 3590: 41e00000 .long 0x41e00000 + +00003594 <_fpadd_parts>: + 3594: 14c4 push r4-r7 + 3596: 1421 subi r14, r14, 4 + 3598: 9060 ld.w r3, (r0, 0x0) + 359a: 3b01 cmphsi r3, 2 + 359c: 0c3b bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 359e: 9180 ld.w r4, (r1, 0x0) + 35a0: 3c01 cmphsi r4, 2 + 35a2: 0c3a bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35a4: 3b44 cmpnei r3, 4 + 35a6: 0c76 bf 0x3692 // 3692 <_fpadd_parts+0xfe> + 35a8: 3c44 cmpnei r4, 4 + 35aa: 0c36 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35ac: 3c42 cmpnei r4, 2 + 35ae: 0c5c bf 0x3666 // 3666 <_fpadd_parts+0xd2> + 35b0: 3b42 cmpnei r3, 2 + 35b2: 0c32 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35b4: 90a2 ld.w r5, (r0, 0x8) + 35b6: 91e2 ld.w r7, (r1, 0x8) + 35b8: 5d9d subu r4, r5, r7 + 35ba: 9063 ld.w r3, (r0, 0xc) + 35bc: 3cdf btsti r4, 31 + 35be: b860 st.w r3, (r14, 0x0) + 35c0: 6d93 mov r6, r4 + 35c2: 9163 ld.w r3, (r1, 0xc) + 35c4: 086f bt 0x36a2 // 36a2 <_fpadd_parts+0x10e> + 35c6: 3e3f cmplti r6, 32 + 35c8: 082a bt 0x361c // 361c <_fpadd_parts+0x88> + 35ca: 655d cmplt r7, r5 + 35cc: 0c5f bf 0x368a // 368a <_fpadd_parts+0xf6> + 35ce: 3300 movi r3, 0 + 35d0: 9001 ld.w r0, (r0, 0x4) + 35d2: 9121 ld.w r1, (r1, 0x4) + 35d4: 6442 cmpne r0, r1 + 35d6: 0c33 bf 0x363c // 363c <_fpadd_parts+0xa8> + 35d8: 3840 cmpnei r0, 0 + 35da: 9820 ld.w r1, (r14, 0x0) + 35dc: 0c54 bf 0x3684 // 3684 <_fpadd_parts+0xf0> + 35de: 60c6 subu r3, r1 + 35e0: 3bdf btsti r3, 31 + 35e2: 0863 bt 0x36a8 // 36a8 <_fpadd_parts+0x114> + 35e4: 3100 movi r1, 0 + 35e6: b221 st.w r1, (r2, 0x4) + 35e8: b2a2 st.w r5, (r2, 0x8) + 35ea: b263 st.w r3, (r2, 0xc) + 35ec: 5b23 subi r1, r3, 1 + 35ee: 119b lrw r4, 0x3fffffff // 36d8 <_fpadd_parts+0x144> + 35f0: 6504 cmphs r1, r4 + 35f2: 080b bt 0x3608 // 3608 <_fpadd_parts+0x74> + 35f4: 9222 ld.w r1, (r2, 0x8) + 35f6: 2900 subi r1, 1 + 35f8: 4361 lsli r3, r3, 1 + 35fa: 5b03 subi r0, r3, 1 + 35fc: 6410 cmphs r4, r0 + 35fe: 6d47 mov r5, r1 + 3600: 2900 subi r1, 1 + 3602: 0bfb bt 0x35f8 // 35f8 <_fpadd_parts+0x64> + 3604: b263 st.w r3, (r2, 0xc) + 3606: b2a2 st.w r5, (r2, 0x8) + 3608: 3103 movi r1, 3 + 360a: 3bdf btsti r3, 31 + 360c: b220 st.w r1, (r2, 0x0) + 360e: 0821 bt 0x3650 // 3650 <_fpadd_parts+0xbc> + 3610: 6c0b mov r0, r2 + 3612: 1401 addi r14, r14, 4 + 3614: 1484 pop r4-r7 + 3616: 6c07 mov r0, r1 + 3618: 1401 addi r14, r14, 4 + 361a: 1484 pop r4-r7 + 361c: 3c20 cmplti r4, 1 + 361e: 084c bt 0x36b6 // 36b6 <_fpadd_parts+0x122> + 3620: 3401 movi r4, 1 + 3622: 7118 lsl r4, r6 + 3624: 2c00 subi r4, 1 + 3626: 6dcf mov r7, r3 + 3628: 68d0 and r3, r4 + 362a: 3b40 cmpnei r3, 0 + 362c: 9001 ld.w r0, (r0, 0x4) + 362e: 3300 movi r3, 0 + 3630: 9121 ld.w r1, (r1, 0x4) + 3632: 60cd addc r3, r3 + 3634: 71d9 lsr r7, r6 + 3636: 6442 cmpne r0, r1 + 3638: 6cdc or r3, r7 + 363a: 0bcf bt 0x35d8 // 35d8 <_fpadd_parts+0x44> + 363c: 9820 ld.w r1, (r14, 0x0) + 363e: 604c addu r1, r3 + 3640: 6cc7 mov r3, r1 + 3642: b223 st.w r1, (r2, 0xc) + 3644: 3bdf btsti r3, 31 + 3646: 3103 movi r1, 3 + 3648: b201 st.w r0, (r2, 0x4) + 364a: b2a2 st.w r5, (r2, 0x8) + 364c: b220 st.w r1, (r2, 0x0) + 364e: 0fe1 bf 0x3610 // 3610 <_fpadd_parts+0x7c> + 3650: 3001 movi r0, 1 + 3652: 4b21 lsri r1, r3, 1 + 3654: 68c0 and r3, r0 + 3656: 6cc4 or r3, r1 + 3658: b263 st.w r3, (r2, 0xc) + 365a: 9262 ld.w r3, (r2, 0x8) + 365c: 2300 addi r3, 1 + 365e: 6c0b mov r0, r2 + 3660: b262 st.w r3, (r2, 0x8) + 3662: 1401 addi r14, r14, 4 + 3664: 1484 pop r4-r7 + 3666: 3b42 cmpnei r3, 2 + 3668: 0bd5 bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 366a: b260 st.w r3, (r2, 0x0) + 366c: 9061 ld.w r3, (r0, 0x4) + 366e: b261 st.w r3, (r2, 0x4) + 3670: 9062 ld.w r3, (r0, 0x8) + 3672: b262 st.w r3, (r2, 0x8) + 3674: 9063 ld.w r3, (r0, 0xc) + 3676: 9121 ld.w r1, (r1, 0x4) + 3678: b263 st.w r3, (r2, 0xc) + 367a: 9061 ld.w r3, (r0, 0x4) + 367c: 68c4 and r3, r1 + 367e: b261 st.w r3, (r2, 0x4) + 3680: 6c0b mov r0, r2 + 3682: 07c8 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 3684: 604e subu r1, r3 + 3686: 6cc7 mov r3, r1 + 3688: 07ac br 0x35e0 // 35e0 <_fpadd_parts+0x4c> + 368a: 3400 movi r4, 0 + 368c: 6d5f mov r5, r7 + 368e: b880 st.w r4, (r14, 0x0) + 3690: 07a0 br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 3692: 3c44 cmpnei r4, 4 + 3694: 0bbf bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 3696: 9041 ld.w r2, (r0, 0x4) + 3698: 9161 ld.w r3, (r1, 0x4) + 369a: 64ca cmpne r2, r3 + 369c: 0fbb bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 369e: 1010 lrw r0, 0xab94 // 36dc <_fpadd_parts+0x148> + 36a0: 07b9 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 36a2: 3600 movi r6, 0 + 36a4: 6192 subu r6, r4 + 36a6: 0790 br 0x35c6 // 35c6 <_fpadd_parts+0x32> + 36a8: 3101 movi r1, 1 + 36aa: b221 st.w r1, (r2, 0x4) + 36ac: 3100 movi r1, 0 + 36ae: 596d subu r3, r1, r3 + 36b0: b2a2 st.w r5, (r2, 0x8) + 36b2: b263 st.w r3, (r2, 0xc) + 36b4: 079c br 0x35ec // 35ec <_fpadd_parts+0x58> + 36b6: 3c40 cmpnei r4, 0 + 36b8: 0f8c bf 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36ba: 3401 movi r4, 1 + 36bc: 98e0 ld.w r7, (r14, 0x0) + 36be: 7118 lsl r4, r6 + 36c0: 71d9 lsr r7, r6 + 36c2: 6158 addu r5, r6 + 36c4: 2c00 subi r4, 1 + 36c6: 98c0 ld.w r6, (r14, 0x0) + 36c8: 6918 and r4, r6 + 36ca: 3c40 cmpnei r4, 0 + 36cc: 3400 movi r4, 0 + 36ce: 6111 addc r4, r4 + 36d0: 6dd0 or r7, r4 + 36d2: b8e0 st.w r7, (r14, 0x0) + 36d4: 077e br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36d6: 0000 bkpt + 36d8: 3fffffff .long 0x3fffffff + 36dc: 0000ab94 .long 0x0000ab94 + +000036e0 <__addsf3>: + 36e0: 14d0 push r15 + 36e2: 142e subi r14, r14, 56 + 36e4: b800 st.w r0, (r14, 0x0) + 36e6: b821 st.w r1, (r14, 0x4) + 36e8: 6c3b mov r0, r14 + 36ea: 1902 addi r1, r14, 8 + 36ec: e00006da bsr 0x44a0 // 44a0 <__unpack_f> + 36f0: 1906 addi r1, r14, 24 + 36f2: 1801 addi r0, r14, 4 + 36f4: e00006d6 bsr 0x44a0 // 44a0 <__unpack_f> + 36f8: 1a0a addi r2, r14, 40 + 36fa: 1906 addi r1, r14, 24 + 36fc: 1802 addi r0, r14, 8 + 36fe: e3ffff4b bsr 0x3594 // 3594 <_fpadd_parts> + 3702: e0000673 bsr 0x43e8 // 43e8 <__pack_f> + 3706: 140e addi r14, r14, 56 + 3708: 1490 pop r15 + ... + +0000370c <__subsf3>: + 370c: 14d0 push r15 + 370e: 142e subi r14, r14, 56 + 3710: b800 st.w r0, (r14, 0x0) + 3712: b821 st.w r1, (r14, 0x4) + 3714: 6c3b mov r0, r14 + 3716: 1902 addi r1, r14, 8 + 3718: e00006c4 bsr 0x44a0 // 44a0 <__unpack_f> + 371c: 1906 addi r1, r14, 24 + 371e: 1801 addi r0, r14, 4 + 3720: e00006c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3724: 9867 ld.w r3, (r14, 0x1c) + 3726: 3201 movi r2, 1 + 3728: 6cc9 xor r3, r2 + 372a: 1906 addi r1, r14, 24 + 372c: 1a0a addi r2, r14, 40 + 372e: 1802 addi r0, r14, 8 + 3730: b867 st.w r3, (r14, 0x1c) + 3732: e3ffff31 bsr 0x3594 // 3594 <_fpadd_parts> + 3736: e0000659 bsr 0x43e8 // 43e8 <__pack_f> + 373a: 140e addi r14, r14, 56 + 373c: 1490 pop r15 + ... + +00003740 <__mulsf3>: + 3740: 14d4 push r4-r7, r15 + 3742: 1430 subi r14, r14, 64 + 3744: b802 st.w r0, (r14, 0x8) + 3746: b823 st.w r1, (r14, 0xc) + 3748: 1802 addi r0, r14, 8 + 374a: 1904 addi r1, r14, 16 + 374c: e00006aa bsr 0x44a0 // 44a0 <__unpack_f> + 3750: 1908 addi r1, r14, 32 + 3752: 1803 addi r0, r14, 12 + 3754: e00006a6 bsr 0x44a0 // 44a0 <__unpack_f> + 3758: 9864 ld.w r3, (r14, 0x10) + 375a: 3b01 cmphsi r3, 2 + 375c: 0c4d bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 375e: 9848 ld.w r2, (r14, 0x20) + 3760: 3a01 cmphsi r2, 2 + 3762: 0c3d bf 0x37dc // 37dc <__mulsf3+0x9c> + 3764: 3b44 cmpnei r3, 4 + 3766: 0c46 bf 0x37f2 // 37f2 <__mulsf3+0xb2> + 3768: 3a44 cmpnei r2, 4 + 376a: 0c37 bf 0x37d8 // 37d8 <__mulsf3+0x98> + 376c: 3b42 cmpnei r3, 2 + 376e: 0c44 bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 3770: 3a42 cmpnei r2, 2 + 3772: 0c35 bf 0x37dc // 37dc <__mulsf3+0x9c> + 3774: 9867 ld.w r3, (r14, 0x1c) + 3776: b860 st.w r3, (r14, 0x0) + 3778: 986b ld.w r3, (r14, 0x2c) + 377a: 6c8f mov r2, r3 + 377c: b861 st.w r3, (r14, 0x4) + 377e: 9800 ld.w r0, (r14, 0x0) + 3780: 3300 movi r3, 0 + 3782: 3100 movi r1, 0 + 3784: e00005f0 bsr 0x4364 // 4364 <__muldi3> + 3788: 98c6 ld.w r6, (r14, 0x18) + 378a: 984a ld.w r2, (r14, 0x28) + 378c: 6098 addu r2, r6 + 378e: 5ac6 addi r6, r2, 2 + 3790: b8ce st.w r6, (r14, 0x38) + 3792: 98e5 ld.w r7, (r14, 0x14) + 3794: 98c9 ld.w r6, (r14, 0x24) + 3796: 659e cmpne r7, r6 + 3798: 3400 movi r4, 0 + 379a: 6111 addc r4, r4 + 379c: 39df btsti r1, 31 + 379e: 6cc7 mov r3, r1 + 37a0: 6d43 mov r5, r0 + 37a2: b88d st.w r4, (r14, 0x34) + 37a4: 0c3f bf 0x3822 // 3822 <__mulsf3+0xe2> + 37a6: 3301 movi r3, 1 + 37a8: 68c4 and r3, r1 + 37aa: 3b40 cmpnei r3, 0 + 37ac: 2202 addi r2, 3 + 37ae: 0811 bt 0x37d0 // 37d0 <__mulsf3+0x90> + 37b0: 4961 lsri r3, r1, 1 + 37b2: b84e st.w r2, (r14, 0x38) + 37b4: 317f movi r1, 127 + 37b6: 6c8f mov r2, r3 + 37b8: 6884 and r2, r1 + 37ba: 3040 movi r0, 64 + 37bc: 640a cmpne r2, r0 + 37be: 0c27 bf 0x380c // 380c <__mulsf3+0xcc> + 37c0: b86f st.w r3, (r14, 0x3c) + 37c2: 3303 movi r3, 3 + 37c4: b86c st.w r3, (r14, 0x30) + 37c6: 180c addi r0, r14, 48 + 37c8: e0000610 bsr 0x43e8 // 43e8 <__pack_f> + 37cc: 1410 addi r14, r14, 64 + 37ce: 1494 pop r4-r7, r15 + 37d0: 4801 lsri r0, r0, 1 + 37d2: 38bf bseti r0, 31 + 37d4: 6d43 mov r5, r0 + 37d6: 07ed br 0x37b0 // 37b0 <__mulsf3+0x70> + 37d8: 3b42 cmpnei r3, 2 + 37da: 0c22 bf 0x381e // 381e <__mulsf3+0xde> + 37dc: 9869 ld.w r3, (r14, 0x24) + 37de: 9845 ld.w r2, (r14, 0x14) + 37e0: 64ca cmpne r2, r3 + 37e2: 3300 movi r3, 0 + 37e4: 60cd addc r3, r3 + 37e6: 1808 addi r0, r14, 32 + 37e8: b869 st.w r3, (r14, 0x24) + 37ea: e00005ff bsr 0x43e8 // 43e8 <__pack_f> + 37ee: 1410 addi r14, r14, 64 + 37f0: 1494 pop r4-r7, r15 + 37f2: 3a42 cmpnei r2, 2 + 37f4: 0c15 bf 0x381e // 381e <__mulsf3+0xde> + 37f6: 9845 ld.w r2, (r14, 0x14) + 37f8: 9869 ld.w r3, (r14, 0x24) + 37fa: 64ca cmpne r2, r3 + 37fc: 3300 movi r3, 0 + 37fe: 60cd addc r3, r3 + 3800: 1804 addi r0, r14, 16 + 3802: b865 st.w r3, (r14, 0x14) + 3804: e00005f2 bsr 0x43e8 // 43e8 <__pack_f> + 3808: 1410 addi r14, r14, 64 + 380a: 1494 pop r4-r7, r15 + 380c: 3080 movi r0, 128 + 380e: 680c and r0, r3 + 3810: 3840 cmpnei r0, 0 + 3812: 0bd7 bt 0x37c0 // 37c0 <__mulsf3+0x80> + 3814: 3d40 cmpnei r5, 0 + 3816: 0fd5 bf 0x37c0 // 37c0 <__mulsf3+0x80> + 3818: 60c8 addu r3, r2 + 381a: 68c5 andn r3, r1 + 381c: 07d2 br 0x37c0 // 37c0 <__mulsf3+0x80> + 381e: 100d lrw r0, 0xab94 // 3850 <__mulsf3+0x110> + 3820: 07d4 br 0x37c8 // 37c8 <__mulsf3+0x88> + 3822: 108d lrw r4, 0x3fffffff // 3854 <__mulsf3+0x114> + 3824: 6450 cmphs r4, r1 + 3826: 0fc7 bf 0x37b4 // 37b4 <__mulsf3+0x74> + 3828: 2200 addi r2, 1 + 382a: 3001 movi r0, 1 + 382c: 6c53 mov r1, r4 + 382e: 0405 br 0x3838 // 3838 <__mulsf3+0xf8> + 3830: 64c4 cmphs r1, r3 + 3832: 45a1 lsli r5, r5, 1 + 3834: 2a00 subi r2, 1 + 3836: 0c0a bf 0x384a // 384a <__mulsf3+0x10a> + 3838: 3ddf btsti r5, 31 + 383a: 6d0b mov r4, r2 + 383c: 4361 lsli r3, r3, 1 + 383e: 0ff9 bf 0x3830 // 3830 <__mulsf3+0xf0> + 3840: 6cc0 or r3, r0 + 3842: 64c4 cmphs r1, r3 + 3844: 45a1 lsli r5, r5, 1 + 3846: 2a00 subi r2, 1 + 3848: 0bf8 bt 0x3838 // 3838 <__mulsf3+0xf8> + 384a: b88e st.w r4, (r14, 0x38) + 384c: 07b4 br 0x37b4 // 37b4 <__mulsf3+0x74> + 384e: 0000 bkpt + 3850: 0000ab94 .long 0x0000ab94 + 3854: 3fffffff .long 0x3fffffff + +00003858 <__divsf3>: + 3858: 14d1 push r4, r15 + 385a: 142a subi r14, r14, 40 + 385c: b800 st.w r0, (r14, 0x0) + 385e: b821 st.w r1, (r14, 0x4) + 3860: 6c3b mov r0, r14 + 3862: 1902 addi r1, r14, 8 + 3864: e000061e bsr 0x44a0 // 44a0 <__unpack_f> + 3868: 1906 addi r1, r14, 24 + 386a: 1801 addi r0, r14, 4 + 386c: e000061a bsr 0x44a0 // 44a0 <__unpack_f> + 3870: 9862 ld.w r3, (r14, 0x8) + 3872: 3b01 cmphsi r3, 2 + 3874: 0c2c bf 0x38cc // 38cc <__divsf3+0x74> + 3876: 9826 ld.w r1, (r14, 0x18) + 3878: 3901 cmphsi r1, 2 + 387a: 0c48 bf 0x390a // 390a <__divsf3+0xb2> + 387c: 9843 ld.w r2, (r14, 0xc) + 387e: 9807 ld.w r0, (r14, 0x1c) + 3880: 6c81 xor r2, r0 + 3882: 3b44 cmpnei r3, 4 + 3884: b843 st.w r2, (r14, 0xc) + 3886: 0c28 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 3888: 3b42 cmpnei r3, 2 + 388a: 0c26 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 388c: 3944 cmpnei r1, 4 + 388e: 0c2c bf 0x38e6 // 38e6 <__divsf3+0x8e> + 3890: 3942 cmpnei r1, 2 + 3892: 0c38 bf 0x3902 // 3902 <__divsf3+0xaa> + 3894: 9844 ld.w r2, (r14, 0x10) + 3896: 9868 ld.w r3, (r14, 0x20) + 3898: 608e subu r2, r3 + 389a: 9809 ld.w r0, (r14, 0x24) + 389c: 9865 ld.w r3, (r14, 0x14) + 389e: 640c cmphs r3, r0 + 38a0: b844 st.w r2, (r14, 0x10) + 38a2: 0c1e bf 0x38de // 38de <__divsf3+0x86> + 38a4: 3180 movi r1, 128 + 38a6: 321f movi r2, 31 + 38a8: 3400 movi r4, 0 + 38aa: 4137 lsli r1, r1, 23 + 38ac: 640c cmphs r3, r0 + 38ae: 0c03 bf 0x38b4 // 38b4 <__divsf3+0x5c> + 38b0: 6d04 or r4, r1 + 38b2: 60c2 subu r3, r0 + 38b4: 2a00 subi r2, 1 + 38b6: 3a40 cmpnei r2, 0 + 38b8: 4921 lsri r1, r1, 1 + 38ba: 4361 lsli r3, r3, 1 + 38bc: 0bf8 bt 0x38ac // 38ac <__divsf3+0x54> + 38be: 317f movi r1, 127 + 38c0: 6c93 mov r2, r4 + 38c2: 6884 and r2, r1 + 38c4: 3040 movi r0, 64 + 38c6: 640a cmpne r2, r0 + 38c8: 0c14 bf 0x38f0 // 38f0 <__divsf3+0x98> + 38ca: b885 st.w r4, (r14, 0x14) + 38cc: 1802 addi r0, r14, 8 + 38ce: e000058d bsr 0x43e8 // 43e8 <__pack_f> + 38d2: 140a addi r14, r14, 40 + 38d4: 1491 pop r4, r15 + 38d6: 644e cmpne r3, r1 + 38d8: 0bfa bt 0x38cc // 38cc <__divsf3+0x74> + 38da: 100e lrw r0, 0xab94 // 3910 <__divsf3+0xb8> + 38dc: 07f9 br 0x38ce // 38ce <__divsf3+0x76> + 38de: 2a00 subi r2, 1 + 38e0: 4361 lsli r3, r3, 1 + 38e2: b844 st.w r2, (r14, 0x10) + 38e4: 07e0 br 0x38a4 // 38a4 <__divsf3+0x4c> + 38e6: 3300 movi r3, 0 + 38e8: b865 st.w r3, (r14, 0x14) + 38ea: b864 st.w r3, (r14, 0x10) + 38ec: 1802 addi r0, r14, 8 + 38ee: 07f0 br 0x38ce // 38ce <__divsf3+0x76> + 38f0: 3080 movi r0, 128 + 38f2: 6810 and r0, r4 + 38f4: 3840 cmpnei r0, 0 + 38f6: 0bea bt 0x38ca // 38ca <__divsf3+0x72> + 38f8: 3b40 cmpnei r3, 0 + 38fa: 0fe8 bf 0x38ca // 38ca <__divsf3+0x72> + 38fc: 6108 addu r4, r2 + 38fe: 6905 andn r4, r1 + 3900: 07e5 br 0x38ca // 38ca <__divsf3+0x72> + 3902: 3304 movi r3, 4 + 3904: b862 st.w r3, (r14, 0x8) + 3906: 1802 addi r0, r14, 8 + 3908: 07e3 br 0x38ce // 38ce <__divsf3+0x76> + 390a: 1806 addi r0, r14, 24 + 390c: 07e1 br 0x38ce // 38ce <__divsf3+0x76> + 390e: 0000 bkpt + 3910: 0000ab94 .long 0x0000ab94 + +00003914 <__nesf2>: + 3914: 14d0 push r15 + 3916: 142a subi r14, r14, 40 + 3918: b800 st.w r0, (r14, 0x0) + 391a: b821 st.w r1, (r14, 0x4) + 391c: 6c3b mov r0, r14 + 391e: 1902 addi r1, r14, 8 + 3920: e00005c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3924: 1906 addi r1, r14, 24 + 3926: 1801 addi r0, r14, 4 + 3928: e00005bc bsr 0x44a0 // 44a0 <__unpack_f> + 392c: 9862 ld.w r3, (r14, 0x8) + 392e: 3b01 cmphsi r3, 2 + 3930: 0c0a bf 0x3944 // 3944 <__nesf2+0x30> + 3932: 9866 ld.w r3, (r14, 0x18) + 3934: 3b01 cmphsi r3, 2 + 3936: 0c07 bf 0x3944 // 3944 <__nesf2+0x30> + 3938: 1906 addi r1, r14, 24 + 393a: 1802 addi r0, r14, 8 + 393c: e00005f4 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3940: 140a addi r14, r14, 40 + 3942: 1490 pop r15 + 3944: 3001 movi r0, 1 + 3946: 140a addi r14, r14, 40 + 3948: 1490 pop r15 + ... + +0000394c <__gesf2>: + 394c: 14d0 push r15 + 394e: 142a subi r14, r14, 40 + 3950: b800 st.w r0, (r14, 0x0) + 3952: b821 st.w r1, (r14, 0x4) + 3954: 6c3b mov r0, r14 + 3956: 1902 addi r1, r14, 8 + 3958: e00005a4 bsr 0x44a0 // 44a0 <__unpack_f> + 395c: 1906 addi r1, r14, 24 + 395e: 1801 addi r0, r14, 4 + 3960: e00005a0 bsr 0x44a0 // 44a0 <__unpack_f> + 3964: 9862 ld.w r3, (r14, 0x8) + 3966: 3b01 cmphsi r3, 2 + 3968: 0c0a bf 0x397c // 397c <__gesf2+0x30> + 396a: 9866 ld.w r3, (r14, 0x18) + 396c: 3b01 cmphsi r3, 2 + 396e: 0c07 bf 0x397c // 397c <__gesf2+0x30> + 3970: 1906 addi r1, r14, 24 + 3972: 1802 addi r0, r14, 8 + 3974: e00005d8 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3978: 140a addi r14, r14, 40 + 397a: 1490 pop r15 + 397c: 3000 movi r0, 0 + 397e: 2800 subi r0, 1 + 3980: 140a addi r14, r14, 40 + 3982: 1490 pop r15 + +00003984 <__floatsisf>: + 3984: 14d1 push r4, r15 + 3986: 1424 subi r14, r14, 16 + 3988: 3303 movi r3, 3 + 398a: b860 st.w r3, (r14, 0x0) + 398c: 3840 cmpnei r0, 0 + 398e: 487f lsri r3, r0, 31 + 3990: b861 st.w r3, (r14, 0x4) + 3992: 0808 bt 0x39a2 // 39a2 <__floatsisf+0x1e> + 3994: 3302 movi r3, 2 + 3996: b860 st.w r3, (r14, 0x0) + 3998: 6c3b mov r0, r14 + 399a: e0000527 bsr 0x43e8 // 43e8 <__pack_f> + 399e: 1404 addi r14, r14, 16 + 39a0: 1491 pop r4, r15 + 39a2: 331e movi r3, 30 + 39a4: 38df btsti r0, 31 + 39a6: b862 st.w r3, (r14, 0x8) + 39a8: 080f bt 0x39c6 // 39c6 <__floatsisf+0x42> + 39aa: 6d03 mov r4, r0 + 39ac: 6c13 mov r0, r4 + 39ae: e00004fd bsr 0x43a8 // 43a8 <__clzsi2> + 39b2: 5863 subi r3, r0, 1 + 39b4: 3b40 cmpnei r3, 0 + 39b6: 0c14 bf 0x39de // 39de <__floatsisf+0x5a> + 39b8: 6c13 mov r0, r4 + 39ba: 321e movi r2, 30 + 39bc: 700c lsl r0, r3 + 39be: 5a6d subu r3, r2, r3 + 39c0: b803 st.w r0, (r14, 0xc) + 39c2: b862 st.w r3, (r14, 0x8) + 39c4: 07ea br 0x3998 // 3998 <__floatsisf+0x14> + 39c6: 3380 movi r3, 128 + 39c8: 4378 lsli r3, r3, 24 + 39ca: 64c2 cmpne r0, r3 + 39cc: 0c0b bf 0x39e2 // 39e2 <__floatsisf+0x5e> + 39ce: 3400 movi r4, 0 + 39d0: 6102 subu r4, r0 + 39d2: 6c13 mov r0, r4 + 39d4: e00004ea bsr 0x43a8 // 43a8 <__clzsi2> + 39d8: 5863 subi r3, r0, 1 + 39da: 3b40 cmpnei r3, 0 + 39dc: 0bee bt 0x39b8 // 39b8 <__floatsisf+0x34> + 39de: b883 st.w r4, (r14, 0xc) + 39e0: 07dc br 0x3998 // 3998 <__floatsisf+0x14> + 39e2: 30cf movi r0, 207 + 39e4: 4018 lsli r0, r0, 24 + 39e6: 07dc br 0x399e // 399e <__floatsisf+0x1a> + +000039e8 <__fixsfsi>: + 39e8: 14d0 push r15 + 39ea: 1425 subi r14, r14, 20 + 39ec: b800 st.w r0, (r14, 0x0) + 39ee: 1901 addi r1, r14, 4 + 39f0: 6c3b mov r0, r14 + 39f2: e0000557 bsr 0x44a0 // 44a0 <__unpack_f> + 39f6: 9861 ld.w r3, (r14, 0x4) + 39f8: 3b02 cmphsi r3, 3 + 39fa: 0c1b bf 0x3a30 // 3a30 <__fixsfsi+0x48> + 39fc: 3b44 cmpnei r3, 4 + 39fe: 0c06 bf 0x3a0a // 3a0a <__fixsfsi+0x22> + 3a00: 9863 ld.w r3, (r14, 0xc) + 3a02: 3bdf btsti r3, 31 + 3a04: 0816 bt 0x3a30 // 3a30 <__fixsfsi+0x48> + 3a06: 3b3e cmplti r3, 31 + 3a08: 0809 bt 0x3a1a // 3a1a <__fixsfsi+0x32> + 3a0a: 9862 ld.w r3, (r14, 0x8) + 3a0c: 3b40 cmpnei r3, 0 + 3a0e: 3000 movi r0, 0 + 3a10: 6001 addc r0, r0 + 3a12: 106a lrw r3, 0x7fffffff // 3a38 <__fixsfsi+0x50> + 3a14: 600c addu r0, r3 + 3a16: 1405 addi r14, r14, 20 + 3a18: 1490 pop r15 + 3a1a: 321e movi r2, 30 + 3a1c: 5a6d subu r3, r2, r3 + 3a1e: 9804 ld.w r0, (r14, 0x10) + 3a20: 700d lsr r0, r3 + 3a22: 9862 ld.w r3, (r14, 0x8) + 3a24: 3b40 cmpnei r3, 0 + 3a26: 0ff8 bf 0x3a16 // 3a16 <__fixsfsi+0x2e> + 3a28: 3300 movi r3, 0 + 3a2a: 5b01 subu r0, r3, r0 + 3a2c: 1405 addi r14, r14, 20 + 3a2e: 1490 pop r15 + 3a30: 3000 movi r0, 0 + 3a32: 1405 addi r14, r14, 20 + 3a34: 1490 pop r15 + 3a36: 0000 bkpt + 3a38: 7fffffff .long 0x7fffffff + +00003a3c <__extendsfdf2>: + 3a3c: 14d1 push r4, r15 + 3a3e: 1426 subi r14, r14, 24 + 3a40: b801 st.w r0, (r14, 0x4) + 3a42: 1902 addi r1, r14, 8 + 3a44: 1801 addi r0, r14, 4 + 3a46: e000052d bsr 0x44a0 // 44a0 <__unpack_f> + 3a4a: 9865 ld.w r3, (r14, 0x14) + 3a4c: 4b82 lsri r4, r3, 2 + 3a4e: 9844 ld.w r2, (r14, 0x10) + 3a50: 437e lsli r3, r3, 30 + 3a52: 9823 ld.w r1, (r14, 0xc) + 3a54: 9802 ld.w r0, (r14, 0x8) + 3a56: b880 st.w r4, (r14, 0x0) + 3a58: e0000430 bsr 0x42b8 // 42b8 <__make_dp> + 3a5c: 1406 addi r14, r14, 24 + 3a5e: 1491 pop r4, r15 + +00003a60 <_fpadd_parts>: + 3a60: 14c4 push r4-r7 + 3a62: 142a subi r14, r14, 40 + 3a64: 9060 ld.w r3, (r0, 0x0) + 3a66: 3b01 cmphsi r3, 2 + 3a68: 6dcb mov r7, r2 + 3a6a: 0c67 bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3a6c: 9140 ld.w r2, (r1, 0x0) + 3a6e: 3a01 cmphsi r2, 2 + 3a70: 0c66 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a72: 3b44 cmpnei r3, 4 + 3a74: 0cde bf 0x3c30 // 3c30 <_fpadd_parts+0x1d0> + 3a76: 3a44 cmpnei r2, 4 + 3a78: 0c62 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a7a: 3a42 cmpnei r2, 2 + 3a7c: 0cb7 bf 0x3bea // 3bea <_fpadd_parts+0x18a> + 3a7e: 3b42 cmpnei r3, 2 + 3a80: 0c5e bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a82: 9043 ld.w r2, (r0, 0xc) + 3a84: 9064 ld.w r3, (r0, 0x10) + 3a86: 9082 ld.w r4, (r0, 0x8) + 3a88: 91a2 ld.w r5, (r1, 0x8) + 3a8a: b842 st.w r2, (r14, 0x8) + 3a8c: b863 st.w r3, (r14, 0xc) + 3a8e: 9143 ld.w r2, (r1, 0xc) + 3a90: 9164 ld.w r3, (r1, 0x10) + 3a92: b840 st.w r2, (r14, 0x0) + 3a94: b861 st.w r3, (r14, 0x4) + 3a96: 5c75 subu r3, r4, r5 + 3a98: 3bdf btsti r3, 31 + 3a9a: 6c8f mov r2, r3 + 3a9c: 08d2 bt 0x3c40 // 3c40 <_fpadd_parts+0x1e0> + 3a9e: 363f movi r6, 63 + 3aa0: 6499 cmplt r6, r2 + 3aa2: 0c50 bf 0x3b42 // 3b42 <_fpadd_parts+0xe2> + 3aa4: 6515 cmplt r5, r4 + 3aa6: 0cbf bf 0x3c24 // 3c24 <_fpadd_parts+0x1c4> + 3aa8: 3200 movi r2, 0 + 3aaa: 3300 movi r3, 0 + 3aac: b840 st.w r2, (r14, 0x0) + 3aae: b861 st.w r3, (r14, 0x4) + 3ab0: 9061 ld.w r3, (r0, 0x4) + 3ab2: 9141 ld.w r2, (r1, 0x4) + 3ab4: 648e cmpne r3, r2 + 3ab6: 0c78 bf 0x3ba6 // 3ba6 <_fpadd_parts+0x146> + 3ab8: 3b40 cmpnei r3, 0 + 3aba: 0cad bf 0x3c14 // 3c14 <_fpadd_parts+0x1b4> + 3abc: 9800 ld.w r0, (r14, 0x0) + 3abe: 9821 ld.w r1, (r14, 0x4) + 3ac0: 9842 ld.w r2, (r14, 0x8) + 3ac2: 9863 ld.w r3, (r14, 0xc) + 3ac4: 6400 cmphs r0, r0 + 3ac6: 600b subc r0, r2 + 3ac8: 604f subc r1, r3 + 3aca: 39df btsti r1, 31 + 3acc: 08bd bt 0x3c46 // 3c46 <_fpadd_parts+0x1e6> + 3ace: 3300 movi r3, 0 + 3ad0: b761 st.w r3, (r7, 0x4) + 3ad2: b782 st.w r4, (r7, 0x8) + 3ad4: 6c83 mov r2, r0 + 3ad6: 6cc7 mov r3, r1 + 3ad8: b703 st.w r0, (r7, 0xc) + 3ada: b724 st.w r1, (r7, 0x10) + 3adc: 3000 movi r0, 0 + 3ade: 3100 movi r1, 0 + 3ae0: 2800 subi r0, 1 + 3ae2: 2900 subi r1, 1 + 3ae4: 6401 cmplt r0, r0 + 3ae6: 6009 addc r0, r2 + 3ae8: 604d addc r1, r3 + 3aea: 038f lrw r4, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3aec: 6450 cmphs r4, r1 + 3aee: 0c67 bf 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3af0: 6506 cmpne r1, r4 + 3af2: 0cfd bf 0x3cec // 3cec <_fpadd_parts+0x28c> + 3af4: 3000 movi r0, 0 + 3af6: 9722 ld.w r1, (r7, 0x8) + 3af8: 2801 subi r0, 2 + 3afa: 2900 subi r1, 1 + 3afc: 03d4 lrw r6, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3afe: b802 st.w r0, (r14, 0x8) + 3b00: b8e0 st.w r7, (r14, 0x0) + 3b02: 0403 br 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3b04: 6596 cmpne r5, r6 + 3b06: 0c83 bf 0x3c0c // 3c0c <_fpadd_parts+0x1ac> + 3b08: 4301 lsli r0, r3, 1 + 3b0a: 4a9f lsri r4, r2, 31 + 3b0c: 6d00 or r4, r0 + 3b0e: 42a1 lsli r5, r2, 1 + 3b10: 6c97 mov r2, r5 + 3b12: 6cd3 mov r3, r4 + 3b14: 3500 movi r5, 0 + 3b16: 3400 movi r4, 0 + 3b18: 2c00 subi r4, 1 + 3b1a: 2d00 subi r5, 1 + 3b1c: 6511 cmplt r4, r4 + 3b1e: 6109 addc r4, r2 + 3b20: 614d addc r5, r3 + 3b22: 6558 cmphs r6, r5 + 3b24: 6c07 mov r0, r1 + 3b26: 2900 subi r1, 1 + 3b28: 0bee bt 0x3b04 // 3b04 <_fpadd_parts+0xa4> + 3b2a: 98e0 ld.w r7, (r14, 0x0) + 3b2c: b743 st.w r2, (r7, 0xc) + 3b2e: b764 st.w r3, (r7, 0x10) + 3b30: 3303 movi r3, 3 + 3b32: b702 st.w r0, (r7, 0x8) + 3b34: b760 st.w r3, (r7, 0x0) + 3b36: 6c1f mov r0, r7 + 3b38: 140a addi r14, r14, 40 + 3b3a: 1484 pop r4-r7 + 3b3c: 6c07 mov r0, r1 + 3b3e: 140a addi r14, r14, 40 + 3b40: 1484 pop r4-r7 + 3b42: 3b20 cmplti r3, 1 + 3b44: 088c bt 0x3c5c // 3c5c <_fpadd_parts+0x1fc> + 3b46: 3300 movi r3, 0 + 3b48: 2b1f subi r3, 32 + 3b4a: 60c8 addu r3, r2 + 3b4c: 3bdf btsti r3, 31 + 3b4e: b866 st.w r3, (r14, 0x18) + 3b50: 08bb bt 0x3cc6 // 3cc6 <_fpadd_parts+0x266> + 3b52: 98a1 ld.w r5, (r14, 0x4) + 3b54: 714d lsr r5, r3 + 3b56: b8a4 st.w r5, (r14, 0x10) + 3b58: 3500 movi r5, 0 + 3b5a: b8a5 st.w r5, (r14, 0x14) + 3b5c: 9866 ld.w r3, (r14, 0x18) + 3b5e: 3bdf btsti r3, 31 + 3b60: 3500 movi r5, 0 + 3b62: 3600 movi r6, 0 + 3b64: 08ad bt 0x3cbe // 3cbe <_fpadd_parts+0x25e> + 3b66: 3201 movi r2, 1 + 3b68: 708c lsl r2, r3 + 3b6a: 6d8b mov r6, r2 + 3b6c: 3200 movi r2, 0 + 3b6e: 3300 movi r3, 0 + 3b70: 2a00 subi r2, 1 + 3b72: 2b00 subi r3, 1 + 3b74: 6489 cmplt r2, r2 + 3b76: 6095 addc r2, r5 + 3b78: 60d9 addc r3, r6 + 3b7a: 98a0 ld.w r5, (r14, 0x0) + 3b7c: 98c1 ld.w r6, (r14, 0x4) + 3b7e: 6948 and r5, r2 + 3b80: 698c and r6, r3 + 3b82: 6c97 mov r2, r5 + 3b84: 6cdb mov r3, r6 + 3b86: 6c8c or r2, r3 + 3b88: 3a40 cmpnei r2, 0 + 3b8a: 3500 movi r5, 0 + 3b8c: 6155 addc r5, r5 + 3b8e: 6c97 mov r2, r5 + 3b90: 3300 movi r3, 0 + 3b92: 98a4 ld.w r5, (r14, 0x10) + 3b94: 98c5 ld.w r6, (r14, 0x14) + 3b96: 6d48 or r5, r2 + 3b98: 6d8c or r6, r3 + 3b9a: 9061 ld.w r3, (r0, 0x4) + 3b9c: 9141 ld.w r2, (r1, 0x4) + 3b9e: 648e cmpne r3, r2 + 3ba0: b8a0 st.w r5, (r14, 0x0) + 3ba2: b8c1 st.w r6, (r14, 0x4) + 3ba4: 0b8a bt 0x3ab8 // 3ab8 <_fpadd_parts+0x58> + 3ba6: b761 st.w r3, (r7, 0x4) + 3ba8: 9800 ld.w r0, (r14, 0x0) + 3baa: 9821 ld.w r1, (r14, 0x4) + 3bac: 9842 ld.w r2, (r14, 0x8) + 3bae: 9863 ld.w r3, (r14, 0xc) + 3bb0: 6489 cmplt r2, r2 + 3bb2: 6081 addc r2, r0 + 3bb4: 60c5 addc r3, r1 + 3bb6: b782 st.w r4, (r7, 0x8) + 3bb8: b743 st.w r2, (r7, 0xc) + 3bba: b764 st.w r3, (r7, 0x10) + 3bbc: 3103 movi r1, 3 + 3bbe: b720 st.w r1, (r7, 0x0) + 3bc0: 123b lrw r1, 0x1fffffff // 3d2c <_fpadd_parts+0x2cc> + 3bc2: 64c4 cmphs r1, r3 + 3bc4: 0810 bt 0x3be4 // 3be4 <_fpadd_parts+0x184> + 3bc6: 439f lsli r4, r3, 31 + 3bc8: 4a01 lsri r0, r2, 1 + 3bca: 6c10 or r0, r4 + 3bcc: 3500 movi r5, 0 + 3bce: 3401 movi r4, 1 + 3bd0: 4b21 lsri r1, r3, 1 + 3bd2: 6890 and r2, r4 + 3bd4: 68d4 and r3, r5 + 3bd6: 6c80 or r2, r0 + 3bd8: 6cc4 or r3, r1 + 3bda: b743 st.w r2, (r7, 0xc) + 3bdc: b764 st.w r3, (r7, 0x10) + 3bde: 9762 ld.w r3, (r7, 0x8) + 3be0: 2300 addi r3, 1 + 3be2: b762 st.w r3, (r7, 0x8) + 3be4: 6c1f mov r0, r7 + 3be6: 140a addi r14, r14, 40 + 3be8: 1484 pop r4-r7 + 3bea: 3b42 cmpnei r3, 2 + 3bec: 0ba6 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3bee: b760 st.w r3, (r7, 0x0) + 3bf0: 9061 ld.w r3, (r0, 0x4) + 3bf2: b761 st.w r3, (r7, 0x4) + 3bf4: 9062 ld.w r3, (r0, 0x8) + 3bf6: b762 st.w r3, (r7, 0x8) + 3bf8: 9063 ld.w r3, (r0, 0xc) + 3bfa: b763 st.w r3, (r7, 0xc) + 3bfc: 9064 ld.w r3, (r0, 0x10) + 3bfe: 9141 ld.w r2, (r1, 0x4) + 3c00: b764 st.w r3, (r7, 0x10) + 3c02: 9061 ld.w r3, (r0, 0x4) + 3c04: 68c8 and r3, r2 + 3c06: b761 st.w r3, (r7, 0x4) + 3c08: 6c1f mov r0, r7 + 3c0a: 0797 br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c0c: 98e2 ld.w r7, (r14, 0x8) + 3c0e: 651c cmphs r7, r4 + 3c10: 0b7c bt 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3c12: 078c br 0x3b2a // 3b2a <_fpadd_parts+0xca> + 3c14: 9802 ld.w r0, (r14, 0x8) + 3c16: 9823 ld.w r1, (r14, 0xc) + 3c18: 9840 ld.w r2, (r14, 0x0) + 3c1a: 9861 ld.w r3, (r14, 0x4) + 3c1c: 6400 cmphs r0, r0 + 3c1e: 600b subc r0, r2 + 3c20: 604f subc r1, r3 + 3c22: 0754 br 0x3aca // 3aca <_fpadd_parts+0x6a> + 3c24: 3200 movi r2, 0 + 3c26: 3300 movi r3, 0 + 3c28: 6d17 mov r4, r5 + 3c2a: b842 st.w r2, (r14, 0x8) + 3c2c: b863 st.w r3, (r14, 0xc) + 3c2e: 0741 br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c30: 3a44 cmpnei r2, 4 + 3c32: 0b83 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c34: 9041 ld.w r2, (r0, 0x4) + 3c36: 9161 ld.w r3, (r1, 0x4) + 3c38: 64ca cmpne r2, r3 + 3c3a: 0f7f bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c3c: 111d lrw r0, 0xaba4 // 3d30 <_fpadd_parts+0x2d0> + 3c3e: 077d br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c40: 3200 movi r2, 0 + 3c42: 608e subu r2, r3 + 3c44: 072d br 0x3a9e // 3a9e <_fpadd_parts+0x3e> + 3c46: 3301 movi r3, 1 + 3c48: b761 st.w r3, (r7, 0x4) + 3c4a: 3200 movi r2, 0 + 3c4c: 3300 movi r3, 0 + 3c4e: 6488 cmphs r2, r2 + 3c50: 6083 subc r2, r0 + 3c52: 60c7 subc r3, r1 + 3c54: b782 st.w r4, (r7, 0x8) + 3c56: b743 st.w r2, (r7, 0xc) + 3c58: b764 st.w r3, (r7, 0x10) + 3c5a: 0741 br 0x3adc // 3adc <_fpadd_parts+0x7c> + 3c5c: 3b40 cmpnei r3, 0 + 3c5e: 0f29 bf 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c60: 3300 movi r3, 0 + 3c62: 2b1f subi r3, 32 + 3c64: 60c8 addu r3, r2 + 3c66: 3bdf btsti r3, 31 + 3c68: 6108 addu r4, r2 + 3c6a: b866 st.w r3, (r14, 0x18) + 3c6c: 0849 bt 0x3cfe // 3cfe <_fpadd_parts+0x29e> + 3c6e: 9863 ld.w r3, (r14, 0xc) + 3c70: 98a6 ld.w r5, (r14, 0x18) + 3c72: 70d5 lsr r3, r5 + 3c74: b864 st.w r3, (r14, 0x10) + 3c76: 3300 movi r3, 0 + 3c78: b865 st.w r3, (r14, 0x14) + 3c7a: 9866 ld.w r3, (r14, 0x18) + 3c7c: 3bdf btsti r3, 31 + 3c7e: 3500 movi r5, 0 + 3c80: 3600 movi r6, 0 + 3c82: 083a bt 0x3cf6 // 3cf6 <_fpadd_parts+0x296> + 3c84: 3201 movi r2, 1 + 3c86: 708c lsl r2, r3 + 3c88: 6d8b mov r6, r2 + 3c8a: 3200 movi r2, 0 + 3c8c: 3300 movi r3, 0 + 3c8e: 2a00 subi r2, 1 + 3c90: 2b00 subi r3, 1 + 3c92: 6489 cmplt r2, r2 + 3c94: 6095 addc r2, r5 + 3c96: 60d9 addc r3, r6 + 3c98: 98a2 ld.w r5, (r14, 0x8) + 3c9a: 98c3 ld.w r6, (r14, 0xc) + 3c9c: 6948 and r5, r2 + 3c9e: 698c and r6, r3 + 3ca0: 6c97 mov r2, r5 + 3ca2: 6cdb mov r3, r6 + 3ca4: 6c8c or r2, r3 + 3ca6: 3a40 cmpnei r2, 0 + 3ca8: 3500 movi r5, 0 + 3caa: 6155 addc r5, r5 + 3cac: 6c97 mov r2, r5 + 3cae: 3300 movi r3, 0 + 3cb0: 98a4 ld.w r5, (r14, 0x10) + 3cb2: 98c5 ld.w r6, (r14, 0x14) + 3cb4: 6d48 or r5, r2 + 3cb6: 6d8c or r6, r3 + 3cb8: b8a2 st.w r5, (r14, 0x8) + 3cba: b8c3 st.w r6, (r14, 0xc) + 3cbc: 06fa br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3cbe: 3301 movi r3, 1 + 3cc0: 70c8 lsl r3, r2 + 3cc2: 6d4f mov r5, r3 + 3cc4: 0754 br 0x3b6c // 3b6c <_fpadd_parts+0x10c> + 3cc6: 9861 ld.w r3, (r14, 0x4) + 3cc8: 361f movi r6, 31 + 3cca: 43a1 lsli r5, r3, 1 + 3ccc: 618a subu r6, r2 + 3cce: 7158 lsl r5, r6 + 3cd0: b8a9 st.w r5, (r14, 0x24) + 3cd2: 98a0 ld.w r5, (r14, 0x0) + 3cd4: 98c1 ld.w r6, (r14, 0x4) + 3cd6: b8a7 st.w r5, (r14, 0x1c) + 3cd8: b8c8 st.w r6, (r14, 0x20) + 3cda: 9867 ld.w r3, (r14, 0x1c) + 3cdc: 70c9 lsr r3, r2 + 3cde: 98a9 ld.w r5, (r14, 0x24) + 3ce0: 6cd4 or r3, r5 + 3ce2: b864 st.w r3, (r14, 0x10) + 3ce4: 9868 ld.w r3, (r14, 0x20) + 3ce6: 70c9 lsr r3, r2 + 3ce8: b865 st.w r3, (r14, 0x14) + 3cea: 0739 br 0x3b5c // 3b5c <_fpadd_parts+0xfc> + 3cec: 3100 movi r1, 0 + 3cee: 2901 subi r1, 2 + 3cf0: 6404 cmphs r1, r0 + 3cf2: 0b01 bt 0x3af4 // 3af4 <_fpadd_parts+0x94> + 3cf4: 0764 br 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3cf6: 3301 movi r3, 1 + 3cf8: 70c8 lsl r3, r2 + 3cfa: 6d4f mov r5, r3 + 3cfc: 07c7 br 0x3c8a // 3c8a <_fpadd_parts+0x22a> + 3cfe: 9863 ld.w r3, (r14, 0xc) + 3d00: 43c1 lsli r6, r3, 1 + 3d02: 351f movi r5, 31 + 3d04: 5d69 subu r3, r5, r2 + 3d06: 6d5b mov r5, r6 + 3d08: 714c lsl r5, r3 + 3d0a: b8a9 st.w r5, (r14, 0x24) + 3d0c: 98a2 ld.w r5, (r14, 0x8) + 3d0e: 98c3 ld.w r6, (r14, 0xc) + 3d10: b8a7 st.w r5, (r14, 0x1c) + 3d12: b8c8 st.w r6, (r14, 0x20) + 3d14: 9867 ld.w r3, (r14, 0x1c) + 3d16: 70c9 lsr r3, r2 + 3d18: 98a9 ld.w r5, (r14, 0x24) + 3d1a: 6cd4 or r3, r5 + 3d1c: b864 st.w r3, (r14, 0x10) + 3d1e: 9868 ld.w r3, (r14, 0x20) + 3d20: 70c9 lsr r3, r2 + 3d22: b865 st.w r3, (r14, 0x14) + 3d24: 07ab br 0x3c7a // 3c7a <_fpadd_parts+0x21a> + 3d26: 0000 bkpt + 3d28: 0fffffff .long 0x0fffffff + 3d2c: 1fffffff .long 0x1fffffff + 3d30: 0000aba4 .long 0x0000aba4 + +00003d34 <__adddf3>: + 3d34: 14d0 push r15 + 3d36: 1433 subi r14, r14, 76 + 3d38: b800 st.w r0, (r14, 0x0) + 3d3a: b821 st.w r1, (r14, 0x4) + 3d3c: 6c3b mov r0, r14 + 3d3e: 1904 addi r1, r14, 16 + 3d40: b863 st.w r3, (r14, 0xc) + 3d42: b842 st.w r2, (r14, 0x8) + 3d44: e0000506 bsr 0x4750 // 4750 <__unpack_d> + 3d48: 1909 addi r1, r14, 36 + 3d4a: 1802 addi r0, r14, 8 + 3d4c: e0000502 bsr 0x4750 // 4750 <__unpack_d> + 3d50: 1a0e addi r2, r14, 56 + 3d52: 1909 addi r1, r14, 36 + 3d54: 1804 addi r0, r14, 16 + 3d56: e3fffe85 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d5a: e000042d bsr 0x45b4 // 45b4 <__pack_d> + 3d5e: 1413 addi r14, r14, 76 + 3d60: 1490 pop r15 + ... + +00003d64 <__subdf3>: + 3d64: 14d0 push r15 + 3d66: 1433 subi r14, r14, 76 + 3d68: b800 st.w r0, (r14, 0x0) + 3d6a: b821 st.w r1, (r14, 0x4) + 3d6c: 6c3b mov r0, r14 + 3d6e: 1904 addi r1, r14, 16 + 3d70: b842 st.w r2, (r14, 0x8) + 3d72: b863 st.w r3, (r14, 0xc) + 3d74: e00004ee bsr 0x4750 // 4750 <__unpack_d> + 3d78: 1909 addi r1, r14, 36 + 3d7a: 1802 addi r0, r14, 8 + 3d7c: e00004ea bsr 0x4750 // 4750 <__unpack_d> + 3d80: 986a ld.w r3, (r14, 0x28) + 3d82: 3201 movi r2, 1 + 3d84: 6cc9 xor r3, r2 + 3d86: 1909 addi r1, r14, 36 + 3d88: 1a0e addi r2, r14, 56 + 3d8a: 1804 addi r0, r14, 16 + 3d8c: b86a st.w r3, (r14, 0x28) + 3d8e: e3fffe69 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d92: e0000411 bsr 0x45b4 // 45b4 <__pack_d> + 3d96: 1413 addi r14, r14, 76 + 3d98: 1490 pop r15 + ... + +00003d9c <__muldf3>: + 3d9c: 14d4 push r4-r7, r15 + 3d9e: 143b subi r14, r14, 108 + 3da0: b808 st.w r0, (r14, 0x20) + 3da2: b829 st.w r1, (r14, 0x24) + 3da4: 1808 addi r0, r14, 32 + 3da6: 190c addi r1, r14, 48 + 3da8: b86b st.w r3, (r14, 0x2c) + 3daa: b84a st.w r2, (r14, 0x28) + 3dac: e00004d2 bsr 0x4750 // 4750 <__unpack_d> + 3db0: 1911 addi r1, r14, 68 + 3db2: 180a addi r0, r14, 40 + 3db4: e00004ce bsr 0x4750 // 4750 <__unpack_d> + 3db8: 986c ld.w r3, (r14, 0x30) + 3dba: 3b01 cmphsi r3, 2 + 3dbc: 0cac bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dbe: 9851 ld.w r2, (r14, 0x44) + 3dc0: 3a01 cmphsi r2, 2 + 3dc2: 0c9c bf 0x3efa // 3efa <__muldf3+0x15e> + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0ca5 bf 0x3f10 // 3f10 <__muldf3+0x174> + 3dc8: 3a44 cmpnei r2, 4 + 3dca: 0c96 bf 0x3ef6 // 3ef6 <__muldf3+0x15a> + 3dcc: 3b42 cmpnei r3, 2 + 3dce: 0ca3 bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dd0: 3a42 cmpnei r2, 2 + 3dd2: 0c94 bf 0x3efa // 3efa <__muldf3+0x15e> + 3dd4: 98ef ld.w r7, (r14, 0x3c) + 3dd6: 98b4 ld.w r5, (r14, 0x50) + 3dd8: 9875 ld.w r3, (r14, 0x54) + 3dda: 6d8f mov r6, r3 + 3ddc: 6c9f mov r2, r7 + 3dde: 3300 movi r3, 0 + 3de0: 6c17 mov r0, r5 + 3de2: 3100 movi r1, 0 + 3de4: e00002c0 bsr 0x4364 // 4364 <__muldi3> + 3de8: b804 st.w r0, (r14, 0x10) + 3dea: b825 st.w r1, (r14, 0x14) + 3dec: 6c9f mov r2, r7 + 3dee: 3300 movi r3, 0 + 3df0: 6c1b mov r0, r6 + 3df2: 3100 movi r1, 0 + 3df4: 9890 ld.w r4, (r14, 0x40) + 3df6: b8c2 st.w r6, (r14, 0x8) + 3df8: e00002b6 bsr 0x4364 // 4364 <__muldi3> + 3dfc: 6d83 mov r6, r0 + 3dfe: 6dc7 mov r7, r1 + 3e00: 9842 ld.w r2, (r14, 0x8) + 3e02: 3300 movi r3, 0 + 3e04: 6c13 mov r0, r4 + 3e06: 3100 movi r1, 0 + 3e08: e00002ae bsr 0x4364 // 4364 <__muldi3> + 3e0c: b806 st.w r0, (r14, 0x18) + 3e0e: b827 st.w r1, (r14, 0x1c) + 3e10: 6c97 mov r2, r5 + 3e12: 3300 movi r3, 0 + 3e14: 6c13 mov r0, r4 + 3e16: 3100 movi r1, 0 + 3e18: e00002a6 bsr 0x4364 // 4364 <__muldi3> + 3e1c: 6401 cmplt r0, r0 + 3e1e: 6019 addc r0, r6 + 3e20: 605d addc r1, r7 + 3e22: 65c4 cmphs r1, r7 + 3e24: 0c91 bf 0x3f46 // 3f46 <__muldf3+0x1aa> + 3e26: 645e cmpne r7, r1 + 3e28: 0c8d bf 0x3f42 // 3f42 <__muldf3+0x1a6> + 3e2a: 3300 movi r3, 0 + 3e2c: 3400 movi r4, 0 + 3e2e: b862 st.w r3, (r14, 0x8) + 3e30: b883 st.w r4, (r14, 0xc) + 3e32: 9884 ld.w r4, (r14, 0x10) + 3e34: 98a5 ld.w r5, (r14, 0x14) + 3e36: 3600 movi r6, 0 + 3e38: 6dc3 mov r7, r0 + 3e3a: 6c93 mov r2, r4 + 3e3c: 6cd7 mov r3, r5 + 3e3e: 6489 cmplt r2, r2 + 3e40: 6099 addc r2, r6 + 3e42: 60dd addc r3, r7 + 3e44: 6d8b mov r6, r2 + 3e46: 6dcf mov r7, r3 + 3e48: 6c93 mov r2, r4 + 3e4a: 6cd7 mov r3, r5 + 3e4c: 64dc cmphs r7, r3 + 3e4e: 0c70 bf 0x3f2e // 3f2e <__muldf3+0x192> + 3e50: 65ce cmpne r3, r7 + 3e52: 0c6c bf 0x3f2a // 3f2a <__muldf3+0x18e> + 3e54: 6c87 mov r2, r1 + 3e56: 3300 movi r3, 0 + 3e58: 9806 ld.w r0, (r14, 0x18) + 3e5a: 9827 ld.w r1, (r14, 0x1c) + 3e5c: 6401 cmplt r0, r0 + 3e5e: 6009 addc r0, r2 + 3e60: 604d addc r1, r3 + 3e62: 6c83 mov r2, r0 + 3e64: 6cc7 mov r3, r1 + 3e66: 9802 ld.w r0, (r14, 0x8) + 3e68: 9823 ld.w r1, (r14, 0xc) + 3e6a: 6401 cmplt r0, r0 + 3e6c: 6009 addc r0, r2 + 3e6e: 604d addc r1, r3 + 3e70: 6c83 mov r2, r0 + 3e72: 6cc7 mov r3, r1 + 3e74: 988e ld.w r4, (r14, 0x38) + 3e76: 9833 ld.w r1, (r14, 0x4c) + 3e78: 6104 addu r4, r1 + 3e7a: 5c2e addi r1, r4, 4 + 3e7c: b838 st.w r1, (r14, 0x60) + 3e7e: 980d ld.w r0, (r14, 0x34) + 3e80: 9832 ld.w r1, (r14, 0x48) + 3e82: 6442 cmpne r0, r1 + 3e84: 12b0 lrw r5, 0x1fffffff // 3fc4 <__muldf3+0x228> + 3e86: 3100 movi r1, 0 + 3e88: 6045 addc r1, r1 + 3e8a: 64d4 cmphs r5, r3 + 3e8c: b837 st.w r1, (r14, 0x5c) + 3e8e: 0879 bt 0x3f80 // 3f80 <__muldf3+0x1e4> + 3e90: 2404 addi r4, 5 + 3e92: b8a4 st.w r5, (r14, 0x10) + 3e94: 3001 movi r0, 1 + 3e96: 3100 movi r1, 0 + 3e98: 6808 and r0, r2 + 3e9a: 684c and r1, r3 + 3e9c: 6c04 or r0, r1 + 3e9e: 3840 cmpnei r0, 0 + 3ea0: b882 st.w r4, (r14, 0x8) + 3ea2: 0c0e bf 0x3ebe // 3ebe <__muldf3+0x122> + 3ea4: 473f lsli r1, r7, 31 + 3ea6: 4e01 lsri r0, r6, 1 + 3ea8: 6c04 or r0, r1 + 3eaa: 4f21 lsri r1, r7, 1 + 3eac: b800 st.w r0, (r14, 0x0) + 3eae: b821 st.w r1, (r14, 0x4) + 3eb0: 3180 movi r1, 128 + 3eb2: 98c0 ld.w r6, (r14, 0x0) + 3eb4: 98e1 ld.w r7, (r14, 0x4) + 3eb6: 3000 movi r0, 0 + 3eb8: 4138 lsli r1, r1, 24 + 3eba: 6d80 or r6, r0 + 3ebc: 6dc4 or r7, r1 + 3ebe: 4b21 lsri r1, r3, 1 + 3ec0: 43bf lsli r5, r3, 31 + 3ec2: 4a01 lsri r0, r2, 1 + 3ec4: 6cc7 mov r3, r1 + 3ec6: 9824 ld.w r1, (r14, 0x10) + 3ec8: 6d40 or r5, r0 + 3eca: 64c4 cmphs r1, r3 + 3ecc: 6c97 mov r2, r5 + 3ece: 2400 addi r4, 1 + 3ed0: 0fe2 bf 0x3e94 // 3e94 <__muldf3+0xf8> + 3ed2: 9822 ld.w r1, (r14, 0x8) + 3ed4: b838 st.w r1, (r14, 0x60) + 3ed6: 30ff movi r0, 255 + 3ed8: 3100 movi r1, 0 + 3eda: 6808 and r0, r2 + 3edc: 684c and r1, r3 + 3ede: 3480 movi r4, 128 + 3ee0: 6502 cmpne r0, r4 + 3ee2: 0c37 bf 0x3f50 // 3f50 <__muldf3+0x1b4> + 3ee4: b859 st.w r2, (r14, 0x64) + 3ee6: b87a st.w r3, (r14, 0x68) + 3ee8: 3303 movi r3, 3 + 3eea: b876 st.w r3, (r14, 0x58) + 3eec: 1816 addi r0, r14, 88 + 3eee: e0000363 bsr 0x45b4 // 45b4 <__pack_d> + 3ef2: 141b addi r14, r14, 108 + 3ef4: 1494 pop r4-r7, r15 + 3ef6: 3b42 cmpnei r3, 2 + 3ef8: 0c42 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3efa: 9872 ld.w r3, (r14, 0x48) + 3efc: 984d ld.w r2, (r14, 0x34) + 3efe: 64ca cmpne r2, r3 + 3f00: 3300 movi r3, 0 + 3f02: 60cd addc r3, r3 + 3f04: 1811 addi r0, r14, 68 + 3f06: b872 st.w r3, (r14, 0x48) + 3f08: e0000356 bsr 0x45b4 // 45b4 <__pack_d> + 3f0c: 141b addi r14, r14, 108 + 3f0e: 1494 pop r4-r7, r15 + 3f10: 3a42 cmpnei r2, 2 + 3f12: 0c35 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3f14: 984d ld.w r2, (r14, 0x34) + 3f16: 9872 ld.w r3, (r14, 0x48) + 3f18: 64ca cmpne r2, r3 + 3f1a: 3300 movi r3, 0 + 3f1c: 60cd addc r3, r3 + 3f1e: 180c addi r0, r14, 48 + 3f20: b86d st.w r3, (r14, 0x34) + 3f22: e0000349 bsr 0x45b4 // 45b4 <__pack_d> + 3f26: 141b addi r14, r14, 108 + 3f28: 1494 pop r4-r7, r15 + 3f2a: 6498 cmphs r6, r2 + 3f2c: 0b94 bt 0x3e54 // 3e54 <__muldf3+0xb8> + 3f2e: 9882 ld.w r4, (r14, 0x8) + 3f30: 98a3 ld.w r5, (r14, 0xc) + 3f32: 3201 movi r2, 1 + 3f34: 3300 movi r3, 0 + 3f36: 6511 cmplt r4, r4 + 3f38: 6109 addc r4, r2 + 3f3a: 614d addc r5, r3 + 3f3c: b882 st.w r4, (r14, 0x8) + 3f3e: b8a3 st.w r5, (r14, 0xc) + 3f40: 078a br 0x3e54 // 3e54 <__muldf3+0xb8> + 3f42: 6580 cmphs r0, r6 + 3f44: 0b73 bt 0x3e2a // 3e2a <__muldf3+0x8e> + 3f46: 3300 movi r3, 0 + 3f48: 3401 movi r4, 1 + 3f4a: b862 st.w r3, (r14, 0x8) + 3f4c: b883 st.w r4, (r14, 0xc) + 3f4e: 0772 br 0x3e32 // 3e32 <__muldf3+0x96> + 3f50: 3940 cmpnei r1, 0 + 3f52: 0bc9 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f54: 3180 movi r1, 128 + 3f56: 4121 lsli r1, r1, 1 + 3f58: 6848 and r1, r2 + 3f5a: 3940 cmpnei r1, 0 + 3f5c: 0bc4 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f5e: 6c5b mov r1, r6 + 3f60: 6c5c or r1, r7 + 3f62: 3940 cmpnei r1, 0 + 3f64: 0fc0 bf 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f66: 3080 movi r0, 128 + 3f68: 3100 movi r1, 0 + 3f6a: 6401 cmplt r0, r0 + 3f6c: 6009 addc r0, r2 + 3f6e: 604d addc r1, r3 + 3f70: 34ff movi r4, 255 + 3f72: 6d43 mov r5, r0 + 3f74: 6951 andn r5, r4 + 3f76: 6c97 mov r2, r5 + 3f78: 6cc7 mov r3, r1 + 3f7a: 07b5 br 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f7c: 1013 lrw r0, 0xaba4 // 3fc8 <__muldf3+0x22c> + 3f7e: 07b8 br 0x3eee // 3eee <__muldf3+0x152> + 3f80: 1033 lrw r1, 0xfffffff // 3fcc <__muldf3+0x230> + 3f82: 64c4 cmphs r1, r3 + 3f84: 0fa9 bf 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3f86: 2402 addi r4, 3 + 3f88: b822 st.w r1, (r14, 0x8) + 3f8a: 4a1f lsri r0, r2, 31 + 3f8c: 4321 lsli r1, r3, 1 + 3f8e: 42a1 lsli r5, r2, 1 + 3f90: 6c04 or r0, r1 + 3f92: 3fdf btsti r7, 31 + 3f94: b880 st.w r4, (r14, 0x0) + 3f96: 6c97 mov r2, r5 + 3f98: 6cc3 mov r3, r0 + 3f9a: 0c07 bf 0x3fa8 // 3fa8 <__muldf3+0x20c> + 3f9c: 3001 movi r0, 1 + 3f9e: 3100 movi r1, 0 + 3fa0: 6c08 or r0, r2 + 3fa2: 6c4c or r1, r3 + 3fa4: 6c83 mov r2, r0 + 3fa6: 6cc7 mov r3, r1 + 3fa8: 4721 lsli r1, r7, 1 + 3faa: 4e1f lsri r0, r6, 31 + 3fac: 6c04 or r0, r1 + 3fae: 9822 ld.w r1, (r14, 0x8) + 3fb0: 46a1 lsli r5, r6, 1 + 3fb2: 64c4 cmphs r1, r3 + 3fb4: 6d97 mov r6, r5 + 3fb6: 6dc3 mov r7, r0 + 3fb8: 2c00 subi r4, 1 + 3fba: 0be8 bt 0x3f8a // 3f8a <__muldf3+0x1ee> + 3fbc: 9820 ld.w r1, (r14, 0x0) + 3fbe: b838 st.w r1, (r14, 0x60) + 3fc0: 078b br 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3fc2: 0000 bkpt + 3fc4: 1fffffff .long 0x1fffffff + 3fc8: 0000aba4 .long 0x0000aba4 + 3fcc: 0fffffff .long 0x0fffffff + +00003fd0 <__divdf3>: + 3fd0: 14d4 push r4-r7, r15 + 3fd2: 1432 subi r14, r14, 72 + 3fd4: b804 st.w r0, (r14, 0x10) + 3fd6: b825 st.w r1, (r14, 0x14) + 3fd8: 1804 addi r0, r14, 16 + 3fda: 1908 addi r1, r14, 32 + 3fdc: b867 st.w r3, (r14, 0x1c) + 3fde: b846 st.w r2, (r14, 0x18) + 3fe0: e00003b8 bsr 0x4750 // 4750 <__unpack_d> + 3fe4: 190d addi r1, r14, 52 + 3fe6: 1806 addi r0, r14, 24 + 3fe8: e00003b4 bsr 0x4750 // 4750 <__unpack_d> + 3fec: 9868 ld.w r3, (r14, 0x20) + 3fee: 3b01 cmphsi r3, 2 + 3ff0: 0c66 bf 0x40bc // 40bc <__divdf3+0xec> + 3ff2: 982d ld.w r1, (r14, 0x34) + 3ff4: 3901 cmphsi r1, 2 + 3ff6: 0c92 bf 0x411a // 411a <__divdf3+0x14a> + 3ff8: 9849 ld.w r2, (r14, 0x24) + 3ffa: 980e ld.w r0, (r14, 0x38) + 3ffc: 6c81 xor r2, r0 + 3ffe: 3b44 cmpnei r3, 4 + 4000: b849 st.w r2, (r14, 0x24) + 4002: 0c62 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4004: 3b42 cmpnei r3, 2 + 4006: 0c60 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4008: 3944 cmpnei r1, 4 + 400a: 0c62 bf 0x40ce // 40ce <__divdf3+0xfe> + 400c: 3942 cmpnei r1, 2 + 400e: 0c82 bf 0x4112 // 4112 <__divdf3+0x142> + 4010: 982a ld.w r1, (r14, 0x28) + 4012: 986f ld.w r3, (r14, 0x3c) + 4014: 604e subu r1, r3 + 4016: 9890 ld.w r4, (r14, 0x40) + 4018: 98b1 ld.w r5, (r14, 0x44) + 401a: 984b ld.w r2, (r14, 0x2c) + 401c: 986c ld.w r3, (r14, 0x30) + 401e: 654c cmphs r3, r5 + 4020: b82a st.w r1, (r14, 0x28) + 4022: 6d93 mov r6, r4 + 4024: 6dd7 mov r7, r5 + 4026: 0c05 bf 0x4030 // 4030 <__divdf3+0x60> + 4028: 64d6 cmpne r5, r3 + 402a: 080b bt 0x4040 // 4040 <__divdf3+0x70> + 402c: 6508 cmphs r2, r4 + 402e: 0809 bt 0x4040 // 4040 <__divdf3+0x70> + 4030: 4a9f lsri r4, r2, 31 + 4032: 4301 lsli r0, r3, 1 + 4034: 42a1 lsli r5, r2, 1 + 4036: 6d00 or r4, r0 + 4038: 2900 subi r1, 1 + 403a: 6c97 mov r2, r5 + 403c: 6cd3 mov r3, r4 + 403e: b82a st.w r1, (r14, 0x28) + 4040: 3000 movi r0, 0 + 4042: 3100 movi r1, 0 + 4044: b802 st.w r0, (r14, 0x8) + 4046: b823 st.w r1, (r14, 0xc) + 4048: 3180 movi r1, 128 + 404a: 343d movi r4, 61 + 404c: 3000 movi r0, 0 + 404e: 4135 lsli r1, r1, 21 + 4050: b8c0 st.w r6, (r14, 0x0) + 4052: b8e1 st.w r7, (r14, 0x4) + 4054: 98a0 ld.w r5, (r14, 0x0) + 4056: 98c1 ld.w r6, (r14, 0x4) + 4058: 658c cmphs r3, r6 + 405a: 0c10 bf 0x407a // 407a <__divdf3+0xaa> + 405c: 64da cmpne r6, r3 + 405e: 0803 bt 0x4064 // 4064 <__divdf3+0x94> + 4060: 6548 cmphs r2, r5 + 4062: 0c0c bf 0x407a // 407a <__divdf3+0xaa> + 4064: 98a2 ld.w r5, (r14, 0x8) + 4066: 98c3 ld.w r6, (r14, 0xc) + 4068: 6d40 or r5, r0 + 406a: 6d84 or r6, r1 + 406c: b8a2 st.w r5, (r14, 0x8) + 406e: b8c3 st.w r6, (r14, 0xc) + 4070: 98a0 ld.w r5, (r14, 0x0) + 4072: 98c1 ld.w r6, (r14, 0x4) + 4074: 6488 cmphs r2, r2 + 4076: 6097 subc r2, r5 + 4078: 60db subc r3, r6 + 407a: 41bf lsli r5, r1, 31 + 407c: 48e1 lsri r7, r0, 1 + 407e: 6d97 mov r6, r5 + 4080: 49a1 lsri r5, r1, 1 + 4082: 6d9c or r6, r7 + 4084: 6c57 mov r1, r5 + 4086: 4abf lsri r5, r2, 31 + 4088: 6c1b mov r0, r6 + 408a: 2c00 subi r4, 1 + 408c: 6d97 mov r6, r5 + 408e: 43a1 lsli r5, r3, 1 + 4090: 6d94 or r6, r5 + 4092: 4261 lsli r3, r2, 1 + 4094: 3c40 cmpnei r4, 0 + 4096: 6dcf mov r7, r3 + 4098: 6c8f mov r2, r3 + 409a: 6cdb mov r3, r6 + 409c: 0bdc bt 0x4054 // 4054 <__divdf3+0x84> + 409e: 30ff movi r0, 255 + 40a0: 3100 movi r1, 0 + 40a2: 9882 ld.w r4, (r14, 0x8) + 40a4: 98a3 ld.w r5, (r14, 0xc) + 40a6: 6900 and r4, r0 + 40a8: 6944 and r5, r1 + 40aa: 6c13 mov r0, r4 + 40ac: 6c57 mov r1, r5 + 40ae: 3480 movi r4, 128 + 40b0: 6502 cmpne r0, r4 + 40b2: 0c15 bf 0x40dc // 40dc <__divdf3+0x10c> + 40b4: 9862 ld.w r3, (r14, 0x8) + 40b6: 9883 ld.w r4, (r14, 0xc) + 40b8: b86b st.w r3, (r14, 0x2c) + 40ba: b88c st.w r4, (r14, 0x30) + 40bc: 1808 addi r0, r14, 32 + 40be: e000027b bsr 0x45b4 // 45b4 <__pack_d> + 40c2: 1412 addi r14, r14, 72 + 40c4: 1494 pop r4-r7, r15 + 40c6: 644e cmpne r3, r1 + 40c8: 0bfa bt 0x40bc // 40bc <__divdf3+0xec> + 40ca: 1016 lrw r0, 0xaba4 // 4120 <__divdf3+0x150> + 40cc: 07f9 br 0x40be // 40be <__divdf3+0xee> + 40ce: 3300 movi r3, 0 + 40d0: 3400 movi r4, 0 + 40d2: b86b st.w r3, (r14, 0x2c) + 40d4: b88c st.w r4, (r14, 0x30) + 40d6: b86a st.w r3, (r14, 0x28) + 40d8: 1808 addi r0, r14, 32 + 40da: 07f2 br 0x40be // 40be <__divdf3+0xee> + 40dc: 3940 cmpnei r1, 0 + 40de: 0beb bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40e0: 3180 movi r1, 128 + 40e2: 4121 lsli r1, r1, 1 + 40e4: 9882 ld.w r4, (r14, 0x8) + 40e6: 98a3 ld.w r5, (r14, 0xc) + 40e8: 6850 and r1, r4 + 40ea: 3940 cmpnei r1, 0 + 40ec: 0be4 bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40ee: 6c98 or r2, r6 + 40f0: 3a40 cmpnei r2, 0 + 40f2: 0fe1 bf 0x40b4 // 40b4 <__divdf3+0xe4> + 40f4: 3280 movi r2, 128 + 40f6: 3300 movi r3, 0 + 40f8: 6c13 mov r0, r4 + 40fa: 6c57 mov r1, r5 + 40fc: 6401 cmplt r0, r0 + 40fe: 6009 addc r0, r2 + 4100: 604d addc r1, r3 + 4102: 6c83 mov r2, r0 + 4104: 6cc7 mov r3, r1 + 4106: 6c0b mov r0, r2 + 4108: 31ff movi r1, 255 + 410a: 6805 andn r0, r1 + 410c: b802 st.w r0, (r14, 0x8) + 410e: b863 st.w r3, (r14, 0xc) + 4110: 07d2 br 0x40b4 // 40b4 <__divdf3+0xe4> + 4112: 3304 movi r3, 4 + 4114: b868 st.w r3, (r14, 0x20) + 4116: 1808 addi r0, r14, 32 + 4118: 07d3 br 0x40be // 40be <__divdf3+0xee> + 411a: 180d addi r0, r14, 52 + 411c: 07d1 br 0x40be // 40be <__divdf3+0xee> + 411e: 0000 bkpt + 4120: 0000aba4 .long 0x0000aba4 + +00004124 <__gtdf2>: + 4124: 14d0 push r15 + 4126: 142e subi r14, r14, 56 + 4128: b800 st.w r0, (r14, 0x0) + 412a: b821 st.w r1, (r14, 0x4) + 412c: 6c3b mov r0, r14 + 412e: 1904 addi r1, r14, 16 + 4130: b863 st.w r3, (r14, 0xc) + 4132: b842 st.w r2, (r14, 0x8) + 4134: e000030e bsr 0x4750 // 4750 <__unpack_d> + 4138: 1909 addi r1, r14, 36 + 413a: 1802 addi r0, r14, 8 + 413c: e000030a bsr 0x4750 // 4750 <__unpack_d> + 4140: 9864 ld.w r3, (r14, 0x10) + 4142: 3b01 cmphsi r3, 2 + 4144: 0c0a bf 0x4158 // 4158 <__gtdf2+0x34> + 4146: 9869 ld.w r3, (r14, 0x24) + 4148: 3b01 cmphsi r3, 2 + 414a: 0c07 bf 0x4158 // 4158 <__gtdf2+0x34> + 414c: 1909 addi r1, r14, 36 + 414e: 1804 addi r0, r14, 16 + 4150: e0000362 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4154: 140e addi r14, r14, 56 + 4156: 1490 pop r15 + 4158: 3000 movi r0, 0 + 415a: 2800 subi r0, 1 + 415c: 140e addi r14, r14, 56 + 415e: 1490 pop r15 + +00004160 <__gedf2>: + 4160: 14d0 push r15 + 4162: 142e subi r14, r14, 56 + 4164: b800 st.w r0, (r14, 0x0) + 4166: b821 st.w r1, (r14, 0x4) + 4168: 6c3b mov r0, r14 + 416a: 1904 addi r1, r14, 16 + 416c: b863 st.w r3, (r14, 0xc) + 416e: b842 st.w r2, (r14, 0x8) + 4170: e00002f0 bsr 0x4750 // 4750 <__unpack_d> + 4174: 1909 addi r1, r14, 36 + 4176: 1802 addi r0, r14, 8 + 4178: e00002ec bsr 0x4750 // 4750 <__unpack_d> + 417c: 9864 ld.w r3, (r14, 0x10) + 417e: 3b01 cmphsi r3, 2 + 4180: 0c0a bf 0x4194 // 4194 <__gedf2+0x34> + 4182: 9869 ld.w r3, (r14, 0x24) + 4184: 3b01 cmphsi r3, 2 + 4186: 0c07 bf 0x4194 // 4194 <__gedf2+0x34> + 4188: 1909 addi r1, r14, 36 + 418a: 1804 addi r0, r14, 16 + 418c: e0000344 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4190: 140e addi r14, r14, 56 + 4192: 1490 pop r15 + 4194: 3000 movi r0, 0 + 4196: 2800 subi r0, 1 + 4198: 140e addi r14, r14, 56 + 419a: 1490 pop r15 + +0000419c <__ledf2>: + 419c: 14d0 push r15 + 419e: 142e subi r14, r14, 56 + 41a0: b800 st.w r0, (r14, 0x0) + 41a2: b821 st.w r1, (r14, 0x4) + 41a4: 6c3b mov r0, r14 + 41a6: 1904 addi r1, r14, 16 + 41a8: b863 st.w r3, (r14, 0xc) + 41aa: b842 st.w r2, (r14, 0x8) + 41ac: e00002d2 bsr 0x4750 // 4750 <__unpack_d> + 41b0: 1909 addi r1, r14, 36 + 41b2: 1802 addi r0, r14, 8 + 41b4: e00002ce bsr 0x4750 // 4750 <__unpack_d> + 41b8: 9864 ld.w r3, (r14, 0x10) + 41ba: 3b01 cmphsi r3, 2 + 41bc: 0c0a bf 0x41d0 // 41d0 <__ledf2+0x34> + 41be: 9869 ld.w r3, (r14, 0x24) + 41c0: 3b01 cmphsi r3, 2 + 41c2: 0c07 bf 0x41d0 // 41d0 <__ledf2+0x34> + 41c4: 1909 addi r1, r14, 36 + 41c6: 1804 addi r0, r14, 16 + 41c8: e0000326 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 41cc: 140e addi r14, r14, 56 + 41ce: 1490 pop r15 + 41d0: 3001 movi r0, 1 + 41d2: 140e addi r14, r14, 56 + 41d4: 1490 pop r15 + ... + +000041d8 <__floatsidf>: + 41d8: 14d1 push r4, r15 + 41da: 1425 subi r14, r14, 20 + 41dc: 3303 movi r3, 3 + 41de: b860 st.w r3, (r14, 0x0) + 41e0: 3840 cmpnei r0, 0 + 41e2: 487f lsri r3, r0, 31 + 41e4: b861 st.w r3, (r14, 0x4) + 41e6: 0808 bt 0x41f6 // 41f6 <__floatsidf+0x1e> + 41e8: 3302 movi r3, 2 + 41ea: b860 st.w r3, (r14, 0x0) + 41ec: 6c3b mov r0, r14 + 41ee: e00001e3 bsr 0x45b4 // 45b4 <__pack_d> + 41f2: 1405 addi r14, r14, 20 + 41f4: 1491 pop r4, r15 + 41f6: 38df btsti r0, 31 + 41f8: 0812 bt 0x421c // 421c <__floatsidf+0x44> + 41fa: 6d03 mov r4, r0 + 41fc: 6c13 mov r0, r4 + 41fe: e00000d5 bsr 0x43a8 // 43a8 <__clzsi2> + 4202: 321d movi r2, 29 + 4204: 6080 addu r2, r0 + 4206: 2802 subi r0, 3 + 4208: 38df btsti r0, 31 + 420a: 0810 bt 0x422a // 422a <__floatsidf+0x52> + 420c: 7100 lsl r4, r0 + 420e: 3300 movi r3, 0 + 4210: b884 st.w r4, (r14, 0x10) + 4212: b863 st.w r3, (r14, 0xc) + 4214: 333c movi r3, 60 + 4216: 60ca subu r3, r2 + 4218: b862 st.w r3, (r14, 0x8) + 421a: 07e9 br 0x41ec // 41ec <__floatsidf+0x14> + 421c: 3380 movi r3, 128 + 421e: 4378 lsli r3, r3, 24 + 4220: 64c2 cmpne r0, r3 + 4222: 0c0d bf 0x423c // 423c <__floatsidf+0x64> + 4224: 3400 movi r4, 0 + 4226: 6102 subu r4, r0 + 4228: 07ea br 0x41fc // 41fc <__floatsidf+0x24> + 422a: 311f movi r1, 31 + 422c: 4c61 lsri r3, r4, 1 + 422e: 604a subu r1, r2 + 4230: 6c13 mov r0, r4 + 4232: 70c5 lsr r3, r1 + 4234: 7008 lsl r0, r2 + 4236: b864 st.w r3, (r14, 0x10) + 4238: b803 st.w r0, (r14, 0xc) + 423a: 07ed br 0x4214 // 4214 <__floatsidf+0x3c> + 423c: 3000 movi r0, 0 + 423e: 1022 lrw r1, 0xc1e00000 // 4244 <__floatsidf+0x6c> + 4240: 07d9 br 0x41f2 // 41f2 <__floatsidf+0x1a> + 4242: 0000 bkpt + 4244: c1e00000 .long 0xc1e00000 + +00004248 <__fixdfsi>: + 4248: 14d0 push r15 + 424a: 1427 subi r14, r14, 28 + 424c: b800 st.w r0, (r14, 0x0) + 424e: b821 st.w r1, (r14, 0x4) + 4250: 6c3b mov r0, r14 + 4252: 1902 addi r1, r14, 8 + 4254: e000027e bsr 0x4750 // 4750 <__unpack_d> + 4258: 9862 ld.w r3, (r14, 0x8) + 425a: 3b02 cmphsi r3, 3 + 425c: 0c20 bf 0x429c // 429c <__fixdfsi+0x54> + 425e: 3b44 cmpnei r3, 4 + 4260: 0c16 bf 0x428c // 428c <__fixdfsi+0x44> + 4262: 9864 ld.w r3, (r14, 0x10) + 4264: 3bdf btsti r3, 31 + 4266: 081b bt 0x429c // 429c <__fixdfsi+0x54> + 4268: 3b3e cmplti r3, 31 + 426a: 0c11 bf 0x428c // 428c <__fixdfsi+0x44> + 426c: 323c movi r2, 60 + 426e: 5a6d subu r3, r2, r3 + 4270: 3200 movi r2, 0 + 4272: 2a1f subi r2, 32 + 4274: 608c addu r2, r3 + 4276: 3adf btsti r2, 31 + 4278: 0815 bt 0x42a2 // 42a2 <__fixdfsi+0x5a> + 427a: 9806 ld.w r0, (r14, 0x18) + 427c: 7009 lsr r0, r2 + 427e: 9863 ld.w r3, (r14, 0xc) + 4280: 3b40 cmpnei r3, 0 + 4282: 0c0b bf 0x4298 // 4298 <__fixdfsi+0x50> + 4284: 3300 movi r3, 0 + 4286: 5b01 subu r0, r3, r0 + 4288: 1407 addi r14, r14, 28 + 428a: 1490 pop r15 + 428c: 9863 ld.w r3, (r14, 0xc) + 428e: 3b40 cmpnei r3, 0 + 4290: 3000 movi r0, 0 + 4292: 6001 addc r0, r0 + 4294: 1068 lrw r3, 0x7fffffff // 42b4 <__fixdfsi+0x6c> + 4296: 600c addu r0, r3 + 4298: 1407 addi r14, r14, 28 + 429a: 1490 pop r15 + 429c: 3000 movi r0, 0 + 429e: 1407 addi r14, r14, 28 + 42a0: 1490 pop r15 + 42a2: 9846 ld.w r2, (r14, 0x18) + 42a4: 311f movi r1, 31 + 42a6: 4241 lsli r2, r2, 1 + 42a8: 604e subu r1, r3 + 42aa: 9805 ld.w r0, (r14, 0x14) + 42ac: 7084 lsl r2, r1 + 42ae: 700d lsr r0, r3 + 42b0: 6c08 or r0, r2 + 42b2: 07e6 br 0x427e // 427e <__fixdfsi+0x36> + 42b4: 7fffffff .long 0x7fffffff + +000042b8 <__make_dp>: + 42b8: 1421 subi r14, r14, 4 + 42ba: 14d1 push r4, r15 + 42bc: 1425 subi r14, r14, 20 + 42be: b867 st.w r3, (r14, 0x1c) + 42c0: 9867 ld.w r3, (r14, 0x1c) + 42c2: 9888 ld.w r4, (r14, 0x20) + 42c4: b800 st.w r0, (r14, 0x0) + 42c6: 6c3b mov r0, r14 + 42c8: b821 st.w r1, (r14, 0x4) + 42ca: b842 st.w r2, (r14, 0x8) + 42cc: b863 st.w r3, (r14, 0xc) + 42ce: b884 st.w r4, (r14, 0x10) + 42d0: e0000172 bsr 0x45b4 // 45b4 <__pack_d> + 42d4: 1405 addi r14, r14, 20 + 42d6: d9ee2001 ld.w r15, (r14, 0x4) + 42da: 9880 ld.w r4, (r14, 0x0) + 42dc: 1403 addi r14, r14, 12 + 42de: 783c jmp r15 + +000042e0 <__truncdfsf2>: + 42e0: 14d0 push r15 + 42e2: 1427 subi r14, r14, 28 + 42e4: b800 st.w r0, (r14, 0x0) + 42e6: b821 st.w r1, (r14, 0x4) + 42e8: 6c3b mov r0, r14 + 42ea: 1902 addi r1, r14, 8 + 42ec: e0000232 bsr 0x4750 // 4750 <__unpack_d> + 42f0: 9845 ld.w r2, (r14, 0x14) + 42f2: 4a3e lsri r1, r2, 30 + 42f4: 9866 ld.w r3, (r14, 0x18) + 42f6: 4242 lsli r2, r2, 2 + 42f8: 4362 lsli r3, r3, 2 + 42fa: 3a40 cmpnei r2, 0 + 42fc: 6cc4 or r3, r1 + 42fe: 0c02 bf 0x4302 // 4302 <__truncdfsf2+0x22> + 4300: 3ba0 bseti r3, 0 + 4302: 9844 ld.w r2, (r14, 0x10) + 4304: 9823 ld.w r1, (r14, 0xc) + 4306: 9802 ld.w r0, (r14, 0x8) + 4308: e000014a bsr 0x459c // 459c <__make_fp> + 430c: 1407 addi r14, r14, 28 + 430e: 1490 pop r15 + +00004310 <__floatunsidf>: + 4310: 14d2 push r4-r5, r15 + 4312: 1425 subi r14, r14, 20 + 4314: 3840 cmpnei r0, 0 + 4316: 3500 movi r5, 0 + 4318: 6d03 mov r4, r0 + 431a: b8a1 st.w r5, (r14, 0x4) + 431c: 0c15 bf 0x4346 // 4346 <__floatunsidf+0x36> + 431e: 3303 movi r3, 3 + 4320: b860 st.w r3, (r14, 0x0) + 4322: e0000043 bsr 0x43a8 // 43a8 <__clzsi2> + 4326: 321d movi r2, 29 + 4328: 6080 addu r2, r0 + 432a: 2802 subi r0, 3 + 432c: 38df btsti r0, 31 + 432e: 0813 bt 0x4354 // 4354 <__floatunsidf+0x44> + 4330: 7100 lsl r4, r0 + 4332: b884 st.w r4, (r14, 0x10) + 4334: b8a3 st.w r5, (r14, 0xc) + 4336: 333c movi r3, 60 + 4338: 60ca subu r3, r2 + 433a: 6c3b mov r0, r14 + 433c: b862 st.w r3, (r14, 0x8) + 433e: e000013b bsr 0x45b4 // 45b4 <__pack_d> + 4342: 1405 addi r14, r14, 20 + 4344: 1492 pop r4-r5, r15 + 4346: 3302 movi r3, 2 + 4348: 6c3b mov r0, r14 + 434a: b860 st.w r3, (r14, 0x0) + 434c: e0000134 bsr 0x45b4 // 45b4 <__pack_d> + 4350: 1405 addi r14, r14, 20 + 4352: 1492 pop r4-r5, r15 + 4354: 311f movi r1, 31 + 4356: 4c61 lsri r3, r4, 1 + 4358: 604a subu r1, r2 + 435a: 70c5 lsr r3, r1 + 435c: 7108 lsl r4, r2 + 435e: b864 st.w r3, (r14, 0x10) + 4360: b883 st.w r4, (r14, 0xc) + 4362: 07ea br 0x4336 // 4336 <__floatunsidf+0x26> + +00004364 <__muldi3>: + 4364: 14c4 push r4-r7 + 4366: 1421 subi r14, r14, 4 + 4368: 7501 zexth r4, r0 + 436a: 48b0 lsri r5, r0, 16 + 436c: 75c9 zexth r7, r2 + 436e: 6d83 mov r6, r0 + 4370: b820 st.w r1, (r14, 0x0) + 4372: 6c13 mov r0, r4 + 4374: 4a30 lsri r1, r2, 16 + 4376: 7c1c mult r0, r7 + 4378: 7d04 mult r4, r1 + 437a: 7dd4 mult r7, r5 + 437c: 611c addu r4, r7 + 437e: 7d44 mult r5, r1 + 4380: 4830 lsri r1, r0, 16 + 4382: 6104 addu r4, r1 + 4384: 65d0 cmphs r4, r7 + 4386: 0804 bt 0x438e // 438e <__muldi3+0x2a> + 4388: 3180 movi r1, 128 + 438a: 4129 lsli r1, r1, 9 + 438c: 6144 addu r5, r1 + 438e: 4c30 lsri r1, r4, 16 + 4390: 7cd8 mult r3, r6 + 4392: 6144 addu r5, r1 + 4394: 6c4f mov r1, r3 + 4396: 9860 ld.w r3, (r14, 0x0) + 4398: 7cc8 mult r3, r2 + 439a: 4490 lsli r4, r4, 16 + 439c: 604c addu r1, r3 + 439e: 7401 zexth r0, r0 + 43a0: 6010 addu r0, r4 + 43a2: 6054 addu r1, r5 + 43a4: 1401 addi r14, r14, 4 + 43a6: 1484 pop r4-r7 + +000043a8 <__clzsi2>: + 43a8: 106d lrw r3, 0xffff // 43dc <__clzsi2+0x34> + 43aa: 640c cmphs r3, r0 + 43ac: 0c07 bf 0x43ba // 43ba <__clzsi2+0x12> + 43ae: 33ff movi r3, 255 + 43b0: 640c cmphs r3, r0 + 43b2: 0c0f bf 0x43d0 // 43d0 <__clzsi2+0x28> + 43b4: 3320 movi r3, 32 + 43b6: 3200 movi r2, 0 + 43b8: 0406 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43ba: 106a lrw r3, 0xffffff // 43e0 <__clzsi2+0x38> + 43bc: 640c cmphs r3, r0 + 43be: 080c bt 0x43d6 // 43d6 <__clzsi2+0x2e> + 43c0: 3308 movi r3, 8 + 43c2: 3218 movi r2, 24 + 43c4: 7009 lsr r0, r2 + 43c6: 1048 lrw r2, 0xabb8 // 43e4 <__clzsi2+0x3c> + 43c8: 6008 addu r0, r2 + 43ca: 8040 ld.b r2, (r0, 0x0) + 43cc: 5b09 subu r0, r3, r2 + 43ce: 783c jmp r15 + 43d0: 3318 movi r3, 24 + 43d2: 3208 movi r2, 8 + 43d4: 07f8 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43d6: 3310 movi r3, 16 + 43d8: 3210 movi r2, 16 + 43da: 07f5 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43dc: 0000ffff .long 0x0000ffff + 43e0: 00ffffff .long 0x00ffffff + 43e4: 0000abb8 .long 0x0000abb8 + +000043e8 <__pack_f>: + 43e8: 14c2 push r4-r5 + 43ea: 9040 ld.w r2, (r0, 0x0) + 43ec: 3a01 cmphsi r2, 2 + 43ee: 9063 ld.w r3, (r0, 0xc) + 43f0: 9021 ld.w r1, (r0, 0x4) + 43f2: 0c27 bf 0x4440 // 4440 <__pack_f+0x58> + 43f4: 3a44 cmpnei r2, 4 + 43f6: 0c22 bf 0x443a // 443a <__pack_f+0x52> + 43f8: 3a42 cmpnei r2, 2 + 43fa: 0c1d bf 0x4434 // 4434 <__pack_f+0x4c> + 43fc: 3b40 cmpnei r3, 0 + 43fe: 0c1b bf 0x4434 // 4434 <__pack_f+0x4c> + 4400: 3400 movi r4, 0 + 4402: 9042 ld.w r2, (r0, 0x8) + 4404: 2c7d subi r4, 126 + 4406: 6509 cmplt r2, r4 + 4408: 082a bt 0x445c // 445c <__pack_f+0x74> + 440a: 347f movi r4, 127 + 440c: 6491 cmplt r4, r2 + 440e: 0816 bt 0x443a // 443a <__pack_f+0x52> + 4410: 690c and r4, r3 + 4412: 3540 movi r5, 64 + 4414: 6552 cmpne r4, r5 + 4416: 0c1a bf 0x444a // 444a <__pack_f+0x62> + 4418: 233e addi r3, 63 + 441a: 3bdf btsti r3, 31 + 441c: 081d bt 0x4456 // 4456 <__pack_f+0x6e> + 441e: 227e addi r2, 127 + 4420: 4302 lsli r0, r3, 2 + 4422: 4809 lsri r0, r0, 9 + 4424: 74c8 zextb r3, r2 + 4426: 4009 lsli r0, r0, 9 + 4428: 4377 lsli r3, r3, 23 + 442a: 4809 lsri r0, r0, 9 + 442c: 413f lsli r1, r1, 31 + 442e: 6c0c or r0, r3 + 4430: 6c04 or r0, r1 + 4432: 1482 pop r4-r5 + 4434: 3300 movi r3, 0 + 4436: 3000 movi r0, 0 + 4438: 07f7 br 0x4426 // 4426 <__pack_f+0x3e> + 443a: 33ff movi r3, 255 + 443c: 3000 movi r0, 0 + 443e: 07f4 br 0x4426 // 4426 <__pack_f+0x3e> + 4440: 4303 lsli r0, r3, 3 + 4442: 480a lsri r0, r0, 10 + 4444: 38b6 bseti r0, 22 + 4446: 33ff movi r3, 255 + 4448: 07ef br 0x4426 // 4426 <__pack_f+0x3e> + 444a: 3080 movi r0, 128 + 444c: 680c and r0, r3 + 444e: 3840 cmpnei r0, 0 + 4450: 0fe5 bf 0x441a // 441a <__pack_f+0x32> + 4452: 60d0 addu r3, r4 + 4454: 07e3 br 0x441a // 441a <__pack_f+0x32> + 4456: 4b61 lsri r3, r3, 1 + 4458: 227f addi r2, 128 + 445a: 07e3 br 0x4420 // 4420 <__pack_f+0x38> + 445c: 610a subu r4, r2 + 445e: 3c39 cmplti r4, 26 + 4460: 0fea bf 0x4434 // 4434 <__pack_f+0x4c> + 4462: 3201 movi r2, 1 + 4464: 7090 lsl r2, r4 + 4466: 2a00 subi r2, 1 + 4468: 6c0f mov r0, r3 + 446a: 68c8 and r3, r2 + 446c: 3b40 cmpnei r3, 0 + 446e: 3300 movi r3, 0 + 4470: 7011 lsr r0, r4 + 4472: 60cd addc r3, r3 + 4474: 6cc0 or r3, r0 + 4476: 307f movi r0, 127 + 4478: 680c and r0, r3 + 447a: 3240 movi r2, 64 + 447c: 6482 cmpne r0, r2 + 447e: 080d bt 0x4498 // 4498 <__pack_f+0xb0> + 4480: 3280 movi r2, 128 + 4482: 688c and r2, r3 + 4484: 3a40 cmpnei r2, 0 + 4486: 0c02 bf 0x448a // 448a <__pack_f+0xa2> + 4488: 60c0 addu r3, r0 + 448a: 1045 lrw r2, 0x3fffffff // 449c <__pack_f+0xb4> + 448c: 64c8 cmphs r2, r3 + 448e: 4302 lsli r0, r3, 2 + 4490: 64c3 mvcv r3 + 4492: 4809 lsri r0, r0, 9 + 4494: 74cc zextb r3, r3 + 4496: 07c8 br 0x4426 // 4426 <__pack_f+0x3e> + 4498: 233e addi r3, 63 + 449a: 07f8 br 0x448a // 448a <__pack_f+0xa2> + 449c: 3fffffff .long 0x3fffffff + +000044a0 <__unpack_f>: + 44a0: 14c1 push r4 + 44a2: 8861 ld.h r3, (r0, 0x2) + 44a4: 4371 lsli r3, r3, 17 + 44a6: 9040 ld.w r2, (r0, 0x0) + 44a8: 4b78 lsri r3, r3, 24 + 44aa: 8003 ld.b r0, (r0, 0x3) + 44ac: 4249 lsli r2, r2, 9 + 44ae: 4807 lsri r0, r0, 7 + 44b0: 3b40 cmpnei r3, 0 + 44b2: 4a49 lsri r2, r2, 9 + 44b4: b101 st.w r0, (r1, 0x4) + 44b6: 0811 bt 0x44d8 // 44d8 <__unpack_f+0x38> + 44b8: 3a40 cmpnei r2, 0 + 44ba: 0c1a bf 0x44ee // 44ee <__unpack_f+0x4e> + 44bc: 3303 movi r3, 3 + 44be: b160 st.w r3, (r1, 0x0) + 44c0: 3300 movi r3, 0 + 44c2: 4247 lsli r2, r2, 7 + 44c4: 2b7e subi r3, 127 + 44c6: 1096 lrw r4, 0x3fffffff // 451c <__unpack_f+0x7c> + 44c8: 4241 lsli r2, r2, 1 + 44ca: 6490 cmphs r4, r2 + 44cc: 6c0f mov r0, r3 + 44ce: 2b00 subi r3, 1 + 44d0: 0bfc bt 0x44c8 // 44c8 <__unpack_f+0x28> + 44d2: b102 st.w r0, (r1, 0x8) + 44d4: b143 st.w r2, (r1, 0xc) + 44d6: 1481 pop r4 + 44d8: 30ff movi r0, 255 + 44da: 640e cmpne r3, r0 + 44dc: 0c0c bf 0x44f4 // 44f4 <__unpack_f+0x54> + 44de: 2b7e subi r3, 127 + 44e0: 4247 lsli r2, r2, 7 + 44e2: b162 st.w r3, (r1, 0x8) + 44e4: 3abe bseti r2, 30 + 44e6: 3303 movi r3, 3 + 44e8: b160 st.w r3, (r1, 0x0) + 44ea: b143 st.w r2, (r1, 0xc) + 44ec: 1481 pop r4 + 44ee: 3302 movi r3, 2 + 44f0: b160 st.w r3, (r1, 0x0) + 44f2: 1481 pop r4 + 44f4: 3a40 cmpnei r2, 0 + 44f6: 0c0d bf 0x4510 // 4510 <__unpack_f+0x70> + 44f8: 3380 movi r3, 128 + 44fa: 436f lsli r3, r3, 15 + 44fc: 68c8 and r3, r2 + 44fe: 3b40 cmpnei r3, 0 + 4500: 0c0b bf 0x4516 // 4516 <__unpack_f+0x76> + 4502: 3301 movi r3, 1 + 4504: b160 st.w r3, (r1, 0x0) + 4506: 1067 lrw r3, 0x2000007f // 4520 <__unpack_f+0x80> + 4508: 4247 lsli r2, r2, 7 + 450a: 688d andn r2, r3 + 450c: b143 st.w r2, (r1, 0xc) + 450e: 1481 pop r4 + 4510: 3304 movi r3, 4 + 4512: b160 st.w r3, (r1, 0x0) + 4514: 1481 pop r4 + 4516: b160 st.w r3, (r1, 0x0) + 4518: 07f7 br 0x4506 // 4506 <__unpack_f+0x66> + 451a: 0000 bkpt + 451c: 3fffffff .long 0x3fffffff + 4520: 2000007f .long 0x2000007f + +00004524 <__fpcmp_parts_f>: + 4524: 14c1 push r4 + 4526: 9060 ld.w r3, (r0, 0x0) + 4528: 3b01 cmphsi r3, 2 + 452a: 0c12 bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 452c: 9140 ld.w r2, (r1, 0x0) + 452e: 3a01 cmphsi r2, 2 + 4530: 0c0f bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 4532: 3b44 cmpnei r3, 4 + 4534: 0c17 bf 0x4562 // 4562 <__fpcmp_parts_f+0x3e> + 4536: 3a44 cmpnei r2, 4 + 4538: 0c0f bf 0x4556 // 4556 <__fpcmp_parts_f+0x32> + 453a: 3b42 cmpnei r3, 2 + 453c: 0c0b bf 0x4552 // 4552 <__fpcmp_parts_f+0x2e> + 453e: 3a42 cmpnei r2, 2 + 4540: 0c13 bf 0x4566 // 4566 <__fpcmp_parts_f+0x42> + 4542: 9061 ld.w r3, (r0, 0x4) + 4544: 9141 ld.w r2, (r1, 0x4) + 4546: 648e cmpne r3, r2 + 4548: 0c14 bf 0x4570 // 4570 <__fpcmp_parts_f+0x4c> + 454a: 3b40 cmpnei r3, 0 + 454c: 0808 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 454e: 3001 movi r0, 1 + 4550: 1481 pop r4 + 4552: 3a42 cmpnei r2, 2 + 4554: 0c1e bf 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4556: 9161 ld.w r3, (r1, 0x4) + 4558: 3b40 cmpnei r3, 0 + 455a: 0bfa bt 0x454e // 454e <__fpcmp_parts_f+0x2a> + 455c: 3000 movi r0, 0 + 455e: 2800 subi r0, 1 + 4560: 1481 pop r4 + 4562: 3a44 cmpnei r2, 4 + 4564: 0c18 bf 0x4594 // 4594 <__fpcmp_parts_f+0x70> + 4566: 9061 ld.w r3, (r0, 0x4) + 4568: 3b40 cmpnei r3, 0 + 456a: 0bf9 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 456c: 3001 movi r0, 1 + 456e: 07f1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4570: 9082 ld.w r4, (r0, 0x8) + 4572: 9142 ld.w r2, (r1, 0x8) + 4574: 6509 cmplt r2, r4 + 4576: 0bea bt 0x454a // 454a <__fpcmp_parts_f+0x26> + 4578: 6491 cmplt r4, r2 + 457a: 0807 bt 0x4588 // 4588 <__fpcmp_parts_f+0x64> + 457c: 9003 ld.w r0, (r0, 0xc) + 457e: 9143 ld.w r2, (r1, 0xc) + 4580: 6408 cmphs r2, r0 + 4582: 0fe4 bf 0x454a // 454a <__fpcmp_parts_f+0x26> + 4584: 6480 cmphs r0, r2 + 4586: 0805 bt 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4588: 3b40 cmpnei r3, 0 + 458a: 0fe9 bf 0x455c // 455c <__fpcmp_parts_f+0x38> + 458c: 3001 movi r0, 1 + 458e: 07e1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4590: 3000 movi r0, 0 + 4592: 1481 pop r4 + 4594: 9161 ld.w r3, (r1, 0x4) + 4596: 9041 ld.w r2, (r0, 0x4) + 4598: 5b09 subu r0, r3, r2 + 459a: 1481 pop r4 + +0000459c <__make_fp>: + 459c: 14d0 push r15 + 459e: 1424 subi r14, r14, 16 + 45a0: b800 st.w r0, (r14, 0x0) + 45a2: 6c3b mov r0, r14 + 45a4: b821 st.w r1, (r14, 0x4) + 45a6: b842 st.w r2, (r14, 0x8) + 45a8: b863 st.w r3, (r14, 0xc) + 45aa: e3ffff1f bsr 0x43e8 // 43e8 <__pack_f> + 45ae: 1404 addi r14, r14, 16 + 45b0: 1490 pop r15 + ... + +000045b4 <__pack_d>: + 45b4: 14c4 push r4-r7 + 45b6: 1422 subi r14, r14, 8 + 45b8: 9060 ld.w r3, (r0, 0x0) + 45ba: 3b01 cmphsi r3, 2 + 45bc: 90c3 ld.w r6, (r0, 0xc) + 45be: 90e4 ld.w r7, (r0, 0x10) + 45c0: 9021 ld.w r1, (r0, 0x4) + 45c2: 0c46 bf 0x464e // 464e <__pack_d+0x9a> + 45c4: 3b44 cmpnei r3, 4 + 45c6: 0c40 bf 0x4646 // 4646 <__pack_d+0x92> + 45c8: 3b42 cmpnei r3, 2 + 45ca: 0c27 bf 0x4618 // 4618 <__pack_d+0x64> + 45cc: 6cdb mov r3, r6 + 45ce: 6cdc or r3, r7 + 45d0: 3b40 cmpnei r3, 0 + 45d2: 0c23 bf 0x4618 // 4618 <__pack_d+0x64> + 45d4: 9062 ld.w r3, (r0, 0x8) + 45d6: 125a lrw r2, 0xfffffc02 // 473c <__pack_d+0x188> + 45d8: 648d cmplt r3, r2 + 45da: 0855 bt 0x4684 // 4684 <__pack_d+0xd0> + 45dc: 1259 lrw r2, 0x3ff // 4740 <__pack_d+0x18c> + 45de: 64c9 cmplt r2, r3 + 45e0: 0833 bt 0x4646 // 4646 <__pack_d+0x92> + 45e2: 34ff movi r4, 255 + 45e4: 3500 movi r5, 0 + 45e6: 6918 and r4, r6 + 45e8: 695c and r5, r7 + 45ea: 3280 movi r2, 128 + 45ec: 6492 cmpne r4, r2 + 45ee: 0c3f bf 0x466c // 466c <__pack_d+0xb8> + 45f0: 347f movi r4, 127 + 45f2: 3500 movi r5, 0 + 45f4: 6599 cmplt r6, r6 + 45f6: 6191 addc r6, r4 + 45f8: 61d5 addc r7, r5 + 45fa: 1253 lrw r2, 0x1fffffff // 4744 <__pack_d+0x190> + 45fc: 65c8 cmphs r2, r7 + 45fe: 0c1a bf 0x4632 // 4632 <__pack_d+0x7e> + 4600: 1290 lrw r4, 0x3ff // 4740 <__pack_d+0x18c> + 4602: 610c addu r4, r3 + 4604: 4718 lsli r0, r7, 24 + 4606: 4f68 lsri r3, r7, 8 + 4608: 4e48 lsri r2, r6, 8 + 460a: 6c80 or r2, r0 + 460c: 430c lsli r0, r3, 12 + 460e: 486c lsri r3, r0, 12 + 4610: 120e lrw r0, 0x7ff // 4748 <__pack_d+0x194> + 4612: 6d4b mov r5, r2 + 4614: 6900 and r4, r0 + 4616: 0404 br 0x461e // 461e <__pack_d+0x6a> + 4618: 3400 movi r4, 0 + 461a: 3200 movi r2, 0 + 461c: 3300 movi r3, 0 + 461e: 430c lsli r0, r3, 12 + 4620: 480c lsri r0, r0, 12 + 4622: 4474 lsli r3, r4, 20 + 4624: 419f lsli r4, r1, 31 + 4626: 6c43 mov r1, r0 + 4628: 6c4c or r1, r3 + 462a: 6c50 or r1, r4 + 462c: 6c0b mov r0, r2 + 462e: 1402 addi r14, r14, 8 + 4630: 1484 pop r4-r7 + 4632: 479f lsli r4, r7, 31 + 4634: 4e01 lsri r0, r6, 1 + 4636: 6d00 or r4, r0 + 4638: 6d93 mov r6, r4 + 463a: 3480 movi r4, 128 + 463c: 4f41 lsri r2, r7, 1 + 463e: 4483 lsli r4, r4, 3 + 4640: 6dcb mov r7, r2 + 4642: 610c addu r4, r3 + 4644: 07e0 br 0x4604 // 4604 <__pack_d+0x50> + 4646: 1281 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4648: 3200 movi r2, 0 + 464a: 3300 movi r3, 0 + 464c: 07e9 br 0x461e // 461e <__pack_d+0x6a> + 464e: 4e08 lsri r0, r6, 8 + 4650: 4798 lsli r4, r7, 24 + 4652: 6d00 or r4, r0 + 4654: 3580 movi r5, 128 + 4656: 4705 lsli r0, r7, 5 + 4658: 6c93 mov r2, r4 + 465a: 486d lsri r3, r0, 13 + 465c: 3400 movi r4, 0 + 465e: 45ac lsli r5, r5, 12 + 4660: 6c90 or r2, r4 + 4662: 6cd4 or r3, r5 + 4664: 430c lsli r0, r3, 12 + 4666: 486c lsri r3, r0, 12 + 4668: 1198 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 466a: 07da br 0x461e // 461e <__pack_d+0x6a> + 466c: 3d40 cmpnei r5, 0 + 466e: 0bc1 bt 0x45f0 // 45f0 <__pack_d+0x3c> + 4670: 4241 lsli r2, r2, 1 + 4672: 6898 and r2, r6 + 4674: 3a40 cmpnei r2, 0 + 4676: 0fc2 bf 0x45fa // 45fa <__pack_d+0x46> + 4678: 3480 movi r4, 128 + 467a: 3500 movi r5, 0 + 467c: 6599 cmplt r6, r6 + 467e: 6191 addc r6, r4 + 4680: 61d5 addc r7, r5 + 4682: 07bc br 0x45fa // 45fa <__pack_d+0x46> + 4684: 5a6d subu r3, r2, r3 + 4686: 3238 movi r2, 56 + 4688: 64c9 cmplt r2, r3 + 468a: 0bc7 bt 0x4618 // 4618 <__pack_d+0x64> + 468c: 3200 movi r2, 0 + 468e: 2a1f subi r2, 32 + 4690: 608c addu r2, r3 + 4692: 3adf btsti r2, 31 + 4694: 0848 bt 0x4724 // 4724 <__pack_d+0x170> + 4696: 6c1f mov r0, r7 + 4698: 7009 lsr r0, r2 + 469a: b800 st.w r0, (r14, 0x0) + 469c: 3000 movi r0, 0 + 469e: b801 st.w r0, (r14, 0x4) + 46a0: 3adf btsti r2, 31 + 46a2: 083c bt 0x471a // 471a <__pack_d+0x166> + 46a4: 3301 movi r3, 1 + 46a6: 70c8 lsl r3, r2 + 46a8: 6d4f mov r5, r3 + 46aa: 3300 movi r3, 0 + 46ac: 6d0f mov r4, r3 + 46ae: 3200 movi r2, 0 + 46b0: 3300 movi r3, 0 + 46b2: 2a00 subi r2, 1 + 46b4: 2b00 subi r3, 1 + 46b6: 6511 cmplt r4, r4 + 46b8: 6109 addc r4, r2 + 46ba: 614d addc r5, r3 + 46bc: 6990 and r6, r4 + 46be: 69d4 and r7, r5 + 46c0: 6d9c or r6, r7 + 46c2: 3e40 cmpnei r6, 0 + 46c4: 3000 movi r0, 0 + 46c6: 6001 addc r0, r0 + 46c8: 6c83 mov r2, r0 + 46ca: 3300 movi r3, 0 + 46cc: 9880 ld.w r4, (r14, 0x0) + 46ce: 98a1 ld.w r5, (r14, 0x4) + 46d0: 6d08 or r4, r2 + 46d2: 6d4c or r5, r3 + 46d4: 32ff movi r2, 255 + 46d6: 3300 movi r3, 0 + 46d8: 6890 and r2, r4 + 46da: 68d4 and r3, r5 + 46dc: 3080 movi r0, 128 + 46de: 640a cmpne r2, r0 + 46e0: 081b bt 0x4716 // 4716 <__pack_d+0x162> + 46e2: 3b40 cmpnei r3, 0 + 46e4: 0819 bt 0x4716 // 4716 <__pack_d+0x162> + 46e6: 3380 movi r3, 128 + 46e8: 4361 lsli r3, r3, 1 + 46ea: 68d0 and r3, r4 + 46ec: 3b40 cmpnei r3, 0 + 46ee: 0c06 bf 0x46fa // 46fa <__pack_d+0x146> + 46f0: 3280 movi r2, 128 + 46f2: 3300 movi r3, 0 + 46f4: 6511 cmplt r4, r4 + 46f6: 6109 addc r4, r2 + 46f8: 614d addc r5, r3 + 46fa: 4518 lsli r0, r5, 24 + 46fc: 4c48 lsri r2, r4, 8 + 46fe: 4d68 lsri r3, r5, 8 + 4700: 1093 lrw r4, 0xfffffff // 474c <__pack_d+0x198> + 4702: 6c80 or r2, r0 + 4704: 6550 cmphs r4, r5 + 4706: 430c lsli r0, r3, 12 + 4708: 486c lsri r3, r0, 12 + 470a: 3001 movi r0, 1 + 470c: 0c02 bf 0x4710 // 4710 <__pack_d+0x15c> + 470e: 3000 movi r0, 0 + 4710: 108e lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4712: 6900 and r4, r0 + 4714: 0785 br 0x461e // 461e <__pack_d+0x6a> + 4716: 327f movi r2, 127 + 4718: 07ed br 0x46f2 // 46f2 <__pack_d+0x13e> + 471a: 3201 movi r2, 1 + 471c: 708c lsl r2, r3 + 471e: 3500 movi r5, 0 + 4720: 6d0b mov r4, r2 + 4722: 07c6 br 0x46ae // 46ae <__pack_d+0xfa> + 4724: 341f movi r4, 31 + 4726: 610e subu r4, r3 + 4728: 4701 lsli r0, r7, 1 + 472a: 7010 lsl r0, r4 + 472c: 6d1b mov r4, r6 + 472e: 710d lsr r4, r3 + 4730: 6d00 or r4, r0 + 4732: 6c1f mov r0, r7 + 4734: 700d lsr r0, r3 + 4736: b880 st.w r4, (r14, 0x0) + 4738: b801 st.w r0, (r14, 0x4) + 473a: 07b3 br 0x46a0 // 46a0 <__pack_d+0xec> + 473c: fffffc02 .long 0xfffffc02 + 4740: 000003ff .long 0x000003ff + 4744: 1fffffff .long 0x1fffffff + 4748: 000007ff .long 0x000007ff + 474c: 0fffffff .long 0x0fffffff + +00004750 <__unpack_d>: + 4750: 1423 subi r14, r14, 12 + 4752: b880 st.w r4, (r14, 0x0) + 4754: b8c1 st.w r6, (r14, 0x4) + 4756: b8e2 st.w r7, (r14, 0x8) + 4758: 8843 ld.h r2, (r0, 0x6) + 475a: 4251 lsli r2, r2, 17 + 475c: 9061 ld.w r3, (r0, 0x4) + 475e: 9080 ld.w r4, (r0, 0x0) + 4760: 4a55 lsri r2, r2, 21 + 4762: 8007 ld.b r0, (r0, 0x7) + 4764: 436c lsli r3, r3, 12 + 4766: 4807 lsri r0, r0, 7 + 4768: 3a40 cmpnei r2, 0 + 476a: 4b6c lsri r3, r3, 12 + 476c: b101 st.w r0, (r1, 0x4) + 476e: 0819 bt 0x47a0 // 47a0 <__unpack_d+0x50> + 4770: 6c93 mov r2, r4 + 4772: 6c8c or r2, r3 + 4774: 3a40 cmpnei r2, 0 + 4776: 0c2d bf 0x47d0 // 47d0 <__unpack_d+0x80> + 4778: 4c58 lsri r2, r4, 24 + 477a: 4368 lsli r3, r3, 8 + 477c: 6cc8 or r3, r2 + 477e: 3203 movi r2, 3 + 4780: 4408 lsli r0, r4, 8 + 4782: b140 st.w r2, (r1, 0x0) + 4784: 1181 lrw r4, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 4786: 11c2 lrw r6, 0xfffffff // 480c <__unpack_d+0xbc> + 4788: 485f lsri r2, r0, 31 + 478a: 4361 lsli r3, r3, 1 + 478c: 6cc8 or r3, r2 + 478e: 64d8 cmphs r6, r3 + 4790: 6c93 mov r2, r4 + 4792: 4001 lsli r0, r0, 1 + 4794: 2c00 subi r4, 1 + 4796: 0bf9 bt 0x4788 // 4788 <__unpack_d+0x38> + 4798: b142 st.w r2, (r1, 0x8) + 479a: b103 st.w r0, (r1, 0xc) + 479c: b164 st.w r3, (r1, 0x10) + 479e: 0414 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47a0: 101c lrw r0, 0x7ff // 4810 <__unpack_d+0xc0> + 47a2: 640a cmpne r2, r0 + 47a4: 0c19 bf 0x47d6 // 47d6 <__unpack_d+0x86> + 47a6: 1019 lrw r0, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 47a8: 6080 addu r2, r0 + 47aa: b142 st.w r2, (r1, 0x8) + 47ac: 3203 movi r2, 3 + 47ae: 43e8 lsli r7, r3, 8 + 47b0: b140 st.w r2, (r1, 0x0) + 47b2: 3380 movi r3, 128 + 47b4: 4c58 lsri r2, r4, 24 + 47b6: 6dc8 or r7, r2 + 47b8: 44c8 lsli r6, r4, 8 + 47ba: 3200 movi r2, 0 + 47bc: 4375 lsli r3, r3, 21 + 47be: 6d88 or r6, r2 + 47c0: 6dcc or r7, r3 + 47c2: b1c3 st.w r6, (r1, 0xc) + 47c4: b1e4 st.w r7, (r1, 0x10) + 47c6: 98e2 ld.w r7, (r14, 0x8) + 47c8: 98c1 ld.w r6, (r14, 0x4) + 47ca: 9880 ld.w r4, (r14, 0x0) + 47cc: 1403 addi r14, r14, 12 + 47ce: 783c jmp r15 + 47d0: 3302 movi r3, 2 + 47d2: b160 st.w r3, (r1, 0x0) + 47d4: 07f9 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47d6: 6c93 mov r2, r4 + 47d8: 6c8c or r2, r3 + 47da: 3a40 cmpnei r2, 0 + 47dc: 0c10 bf 0x47fc // 47fc <__unpack_d+0xac> + 47de: 3280 movi r2, 128 + 47e0: 424c lsli r2, r2, 12 + 47e2: 688c and r2, r3 + 47e4: 3a40 cmpnei r2, 0 + 47e6: 0c0e bf 0x4802 // 4802 <__unpack_d+0xb2> + 47e8: 3201 movi r2, 1 + 47ea: b140 st.w r2, (r1, 0x0) + 47ec: 4c58 lsri r2, r4, 24 + 47ee: 4368 lsli r3, r3, 8 + 47f0: 6cc8 or r3, r2 + 47f2: 4408 lsli r0, r4, 8 + 47f4: 3b9b bclri r3, 27 + 47f6: b103 st.w r0, (r1, 0xc) + 47f8: b164 st.w r3, (r1, 0x10) + 47fa: 07e6 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47fc: 3304 movi r3, 4 + 47fe: b160 st.w r3, (r1, 0x0) + 4800: 07e3 br 0x47c6 // 47c6 <__unpack_d+0x76> + 4802: b140 st.w r2, (r1, 0x0) + 4804: 07f4 br 0x47ec // 47ec <__unpack_d+0x9c> + 4806: 0000 bkpt + 4808: fffffc01 .long 0xfffffc01 + 480c: 0fffffff .long 0x0fffffff + 4810: 000007ff .long 0x000007ff + +00004814 <__fpcmp_parts_d>: + 4814: 14c1 push r4 + 4816: 9060 ld.w r3, (r0, 0x0) + 4818: 3b01 cmphsi r3, 2 + 481a: 0c12 bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 481c: 9140 ld.w r2, (r1, 0x0) + 481e: 3a01 cmphsi r2, 2 + 4820: 0c0f bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 4822: 3b44 cmpnei r3, 4 + 4824: 0c17 bf 0x4852 // 4852 <__fpcmp_parts_d+0x3e> + 4826: 3a44 cmpnei r2, 4 + 4828: 0c0f bf 0x4846 // 4846 <__fpcmp_parts_d+0x32> + 482a: 3b42 cmpnei r3, 2 + 482c: 0c0b bf 0x4842 // 4842 <__fpcmp_parts_d+0x2e> + 482e: 3a42 cmpnei r2, 2 + 4830: 0c13 bf 0x4856 // 4856 <__fpcmp_parts_d+0x42> + 4832: 9061 ld.w r3, (r0, 0x4) + 4834: 9141 ld.w r2, (r1, 0x4) + 4836: 648e cmpne r3, r2 + 4838: 0c14 bf 0x4860 // 4860 <__fpcmp_parts_d+0x4c> + 483a: 3b40 cmpnei r3, 0 + 483c: 0808 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 483e: 3001 movi r0, 1 + 4840: 1481 pop r4 + 4842: 3a42 cmpnei r2, 2 + 4844: 0c28 bf 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4846: 9161 ld.w r3, (r1, 0x4) + 4848: 3b40 cmpnei r3, 0 + 484a: 0bfa bt 0x483e // 483e <__fpcmp_parts_d+0x2a> + 484c: 3000 movi r0, 0 + 484e: 2800 subi r0, 1 + 4850: 1481 pop r4 + 4852: 3a44 cmpnei r2, 4 + 4854: 0c22 bf 0x4898 // 4898 <__fpcmp_parts_d+0x84> + 4856: 9061 ld.w r3, (r0, 0x4) + 4858: 3b40 cmpnei r3, 0 + 485a: 0bf9 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 485c: 3001 movi r0, 1 + 485e: 07f1 br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 4860: 9082 ld.w r4, (r0, 0x8) + 4862: 9142 ld.w r2, (r1, 0x8) + 4864: 6509 cmplt r2, r4 + 4866: 0bea bt 0x483a // 483a <__fpcmp_parts_d+0x26> + 4868: 6491 cmplt r4, r2 + 486a: 080d bt 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 486c: 9044 ld.w r2, (r0, 0x10) + 486e: 9083 ld.w r4, (r0, 0xc) + 4870: 9103 ld.w r0, (r1, 0xc) + 4872: 9124 ld.w r1, (r1, 0x10) + 4874: 6484 cmphs r1, r2 + 4876: 0fe2 bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4878: 644a cmpne r2, r1 + 487a: 0803 bt 0x4880 // 4880 <__fpcmp_parts_d+0x6c> + 487c: 6500 cmphs r0, r4 + 487e: 0fde bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4880: 6448 cmphs r2, r1 + 4882: 0805 bt 0x488c // 488c <__fpcmp_parts_d+0x78> + 4884: 3b40 cmpnei r3, 0 + 4886: 0fe3 bf 0x484c // 484c <__fpcmp_parts_d+0x38> + 4888: 3001 movi r0, 1 + 488a: 07db br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 488c: 6486 cmpne r1, r2 + 488e: 0803 bt 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4890: 6410 cmphs r4, r0 + 4892: 0ff9 bf 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 4894: 3000 movi r0, 0 + 4896: 1481 pop r4 + 4898: 9161 ld.w r3, (r1, 0x4) + 489a: 9041 ld.w r2, (r0, 0x4) + 489c: 5b09 subu r0, r3, r2 + 489e: 1481 pop r4 + +000048a0 <__cskyvprintfsnprintf>: + 48a0: 1422 subi r14, r14, 8 + 48a2: b861 st.w r3, (r14, 0x4) + 48a4: b840 st.w r2, (r14, 0x0) + 48a6: 14d0 push r15 + 48a8: 1421 subi r14, r14, 4 + 48aa: 9862 ld.w r3, (r14, 0x8) + 48ac: b860 st.w r3, (r14, 0x0) + 48ae: 9840 ld.w r2, (r14, 0x0) + 48b0: 1b03 addi r3, r14, 12 + 48b2: e0000026 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + 48b6: 1401 addi r14, r14, 4 + 48b8: d9ee2000 ld.w r15, (r14, 0x0) + 48bc: 1403 addi r14, r14, 12 + 48be: 783c jmp r15 + +000048c0 : + 48c0: 14d3 push r4-r6, r15 + 48c2: 6d4b mov r5, r2 + 48c4: 9582 ld.w r4, (r5, 0x8) + 48c6: 9241 ld.w r2, (r2, 0x4) + 48c8: 610a subu r4, r2 + 48ca: 3c40 cmpnei r4, 0 + 48cc: 6d87 mov r6, r1 + 48ce: 0c16 bf 0x48fa // 48fa + 48d0: 6504 cmphs r1, r4 + 48d2: 0802 bt 0x48d6 // 48d6 + 48d4: 6d07 mov r4, r1 + 48d6: 9560 ld.w r3, (r5, 0x0) + 48d8: 3b40 cmpnei r3, 0 + 48da: 0c0d bf 0x48f4 // 48f4 + 48dc: 60c8 addu r3, r2 + 48de: 6c43 mov r1, r0 + 48e0: 6c93 mov r2, r4 + 48e2: 6c0f mov r0, r3 + 48e4: e000007e bsr 0x49e0 // 49e0 <__memcpy_fast> + 48e8: 9500 ld.w r0, (r5, 0x0) + 48ea: 9521 ld.w r1, (r5, 0x4) + 48ec: 6010 addu r0, r4 + 48ee: 6004 addu r0, r1 + 48f0: 3200 movi r2, 0 + 48f2: a040 st.b r2, (r0, 0x0) + 48f4: 9561 ld.w r3, (r5, 0x4) + 48f6: 610c addu r4, r3 + 48f8: b581 st.w r4, (r5, 0x4) + 48fa: 6c1b mov r0, r6 + 48fc: 1493 pop r4-r6, r15 + +000048fe <__cskyvprintfvsnprintf>: + 48fe: 14d3 push r4-r6, r15 + 4900: 1425 subi r14, r14, 20 + 4902: 6d07 mov r4, r1 + 4904: 6d43 mov r5, r0 + 4906: 6c4b mov r1, r2 + 4908: 1802 addi r0, r14, 8 + 490a: 3200 movi r2, 0 + 490c: 3c40 cmpnei r4, 0 + 490e: b0a0 st.w r5, (r0, 0x0) + 4910: b041 st.w r2, (r0, 0x4) + 4912: 0c1c bf 0x494a // 494a <__cskyvprintfvsnprintf+0x4c> + 4914: 5cc3 subi r6, r4, 1 + 4916: b0c2 st.w r6, (r0, 0x8) + 4918: b800 st.w r0, (r14, 0x0) + 491a: 6c8f mov r2, r3 + 491c: 100e lrw r0, 0x48c0 // 4954 <__cskyvprintfvsnprintf+0x56> + 491e: b801 st.w r0, (r14, 0x4) + 4920: 6c3b mov r0, r14 + 4922: e00000bf bsr 0x4aa0 // 4aa0 <__v2_printf> + 4926: 3d40 cmpnei r5, 0 + 4928: 0c0f bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492a: 3c40 cmpnei r4, 0 + 492c: 0c0d bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492e: 38df btsti r0, 31 + 4930: 080b bt 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 4932: 3300 movi r3, 0 + 4934: 2b00 subi r3, 1 + 4936: 64d2 cmpne r4, r3 + 4938: 0c0b bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493a: 6500 cmphs r0, r4 + 493c: 0c09 bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493e: 6114 addu r4, r5 + 4940: 2c00 subi r4, 1 + 4942: 3100 movi r1, 0 + 4944: a420 st.b r1, (r4, 0x0) + 4946: 1405 addi r14, r14, 20 + 4948: 1493 pop r4-r6, r15 + 494a: 3600 movi r6, 0 + 494c: 07e5 br 0x4916 // 4916 <__cskyvprintfvsnprintf+0x18> + 494e: 5d80 addu r4, r5, r0 + 4950: 07f9 br 0x4942 // 4942 <__cskyvprintfvsnprintf+0x44> + 4952: 0000 bkpt + 4954: 000048c0 .long 0x000048c0 + +00004958 <__memset_fast>: + 4958: 14c3 push r4-r6 + 495a: 7444 zextb r1, r1 + 495c: 3a40 cmpnei r2, 0 + 495e: 0c1f bf 0x499c // 499c <__memset_fast+0x44> + 4960: 6d43 mov r5, r0 + 4962: 6d03 mov r4, r0 + 4964: 3603 movi r6, 3 + 4966: 6918 and r4, r6 + 4968: 3c40 cmpnei r4, 0 + 496a: 0c1a bf 0x499e // 499e <__memset_fast+0x46> + 496c: a520 st.b r1, (r5, 0x0) + 496e: 2a00 subi r2, 1 + 4970: 3a40 cmpnei r2, 0 + 4972: 0c15 bf 0x499c // 499c <__memset_fast+0x44> + 4974: 2500 addi r5, 1 + 4976: 6d17 mov r4, r5 + 4978: 3603 movi r6, 3 + 497a: 6918 and r4, r6 + 497c: 3c40 cmpnei r4, 0 + 497e: 0c10 bf 0x499e // 499e <__memset_fast+0x46> + 4980: a520 st.b r1, (r5, 0x0) + 4982: 2a00 subi r2, 1 + 4984: 3a40 cmpnei r2, 0 + 4986: 0c0b bf 0x499c // 499c <__memset_fast+0x44> + 4988: 2500 addi r5, 1 + 498a: 6d17 mov r4, r5 + 498c: 3603 movi r6, 3 + 498e: 6918 and r4, r6 + 4990: 3c40 cmpnei r4, 0 + 4992: 0c06 bf 0x499e // 499e <__memset_fast+0x46> + 4994: a520 st.b r1, (r5, 0x0) + 4996: 2a00 subi r2, 1 + 4998: 2500 addi r5, 1 + 499a: 0402 br 0x499e // 499e <__memset_fast+0x46> + 499c: 1483 pop r4-r6 + 499e: 4168 lsli r3, r1, 8 + 49a0: 6c4c or r1, r3 + 49a2: 4170 lsli r3, r1, 16 + 49a4: 6c4c or r1, r3 + 49a6: 3a2f cmplti r2, 16 + 49a8: 0809 bt 0x49ba // 49ba <__memset_fast+0x62> + 49aa: b520 st.w r1, (r5, 0x0) + 49ac: b521 st.w r1, (r5, 0x4) + 49ae: b522 st.w r1, (r5, 0x8) + 49b0: b523 st.w r1, (r5, 0xc) + 49b2: 2a0f subi r2, 16 + 49b4: 250f addi r5, 16 + 49b6: 3a2f cmplti r2, 16 + 49b8: 0ff9 bf 0x49aa // 49aa <__memset_fast+0x52> + 49ba: 3a23 cmplti r2, 4 + 49bc: 0806 bt 0x49c8 // 49c8 <__memset_fast+0x70> + 49be: 2a03 subi r2, 4 + 49c0: b520 st.w r1, (r5, 0x0) + 49c2: 2503 addi r5, 4 + 49c4: 3a23 cmplti r2, 4 + 49c6: 0ffc bf 0x49be // 49be <__memset_fast+0x66> + 49c8: 3a40 cmpnei r2, 0 + 49ca: 0fe9 bf 0x499c // 499c <__memset_fast+0x44> + 49cc: 2a00 subi r2, 1 + 49ce: a520 st.b r1, (r5, 0x0) + 49d0: 3a40 cmpnei r2, 0 + 49d2: 0fe5 bf 0x499c // 499c <__memset_fast+0x44> + 49d4: 2a00 subi r2, 1 + 49d6: a521 st.b r1, (r5, 0x1) + 49d8: 3a40 cmpnei r2, 0 + 49da: 0fe1 bf 0x499c // 499c <__memset_fast+0x44> + 49dc: a522 st.b r1, (r5, 0x2) + 49de: 1483 pop r4-r6 + +000049e0 <__memcpy_fast>: + 49e0: 14c3 push r4-r6 + 49e2: 6d83 mov r6, r0 + 49e4: 6d07 mov r4, r1 + 49e6: 6d18 or r4, r6 + 49e8: 3303 movi r3, 3 + 49ea: 690c and r4, r3 + 49ec: 3c40 cmpnei r4, 0 + 49ee: 0c0b bf 0x4a04 // 4a04 <__memcpy_fast+0x24> + 49f0: 3a40 cmpnei r2, 0 + 49f2: 0c08 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 49f4: 8160 ld.b r3, (r1, 0x0) + 49f6: 2100 addi r1, 1 + 49f8: 2a00 subi r2, 1 + 49fa: a660 st.b r3, (r6, 0x0) + 49fc: 2600 addi r6, 1 + 49fe: 3a40 cmpnei r2, 0 + 4a00: 0bfa bt 0x49f4 // 49f4 <__memcpy_fast+0x14> + 4a02: 1483 pop r4-r6 + 4a04: 3a2f cmplti r2, 16 + 4a06: 080e bt 0x4a22 // 4a22 <__memcpy_fast+0x42> + 4a08: 91a0 ld.w r5, (r1, 0x0) + 4a0a: 9161 ld.w r3, (r1, 0x4) + 4a0c: 9182 ld.w r4, (r1, 0x8) + 4a0e: b6a0 st.w r5, (r6, 0x0) + 4a10: 91a3 ld.w r5, (r1, 0xc) + 4a12: b661 st.w r3, (r6, 0x4) + 4a14: b682 st.w r4, (r6, 0x8) + 4a16: b6a3 st.w r5, (r6, 0xc) + 4a18: 2a0f subi r2, 16 + 4a1a: 210f addi r1, 16 + 4a1c: 260f addi r6, 16 + 4a1e: 3a2f cmplti r2, 16 + 4a20: 0ff4 bf 0x4a08 // 4a08 <__memcpy_fast+0x28> + 4a22: 3a23 cmplti r2, 4 + 4a24: 0808 bt 0x4a34 // 4a34 <__memcpy_fast+0x54> + 4a26: 9160 ld.w r3, (r1, 0x0) + 4a28: 2a03 subi r2, 4 + 4a2a: 2103 addi r1, 4 + 4a2c: b660 st.w r3, (r6, 0x0) + 4a2e: 2603 addi r6, 4 + 4a30: 3a23 cmplti r2, 4 + 4a32: 0ffa bf 0x4a26 // 4a26 <__memcpy_fast+0x46> + 4a34: 3a40 cmpnei r2, 0 + 4a36: 0fe6 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 4a38: 8160 ld.b r3, (r1, 0x0) + 4a3a: 2100 addi r1, 1 + 4a3c: 2a00 subi r2, 1 + 4a3e: a660 st.b r3, (r6, 0x0) + 4a40: 2600 addi r6, 1 + 4a42: 07f9 br 0x4a34 // 4a34 <__memcpy_fast+0x54> + +00004a44 <__GI_strncmp>: + 4a44: 14c1 push r4 + 4a46: 6cc3 mov r3, r0 + 4a48: 6080 addu r2, r0 + 4a4a: 040c br 0x4a62 // 4a62 <__GI_strncmp+0x1e> + 4a4c: 8380 ld.b r4, (r3, 0x0) + 4a4e: 8100 ld.b r0, (r1, 0x0) + 4a50: 6012 subu r0, r4 + 4a52: 6c02 nor r0, r0 + 4a54: 2000 addi r0, 1 + 4a56: 3840 cmpnei r0, 0 + 4a58: 0808 bt 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5a: 3c40 cmpnei r4, 0 + 4a5c: 0c06 bf 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5e: 2300 addi r3, 1 + 4a60: 2100 addi r1, 1 + 4a62: 648c cmphs r3, r2 + 4a64: 0ff4 bf 0x4a4c // 4a4c <__GI_strncmp+0x8> + 4a66: 3000 movi r0, 0 + 4a68: 1481 pop r4 + ... + +00004a6c : + 4a6c: 14d4 push r4-r7, r15 + 4a6e: 3820 cmplti r0, 1 + 4a70: 6d03 mov r4, r0 + 4a72: 6d47 mov r5, r1 + 4a74: 6df7 mov r7, r13 + 4a76: 080d bt 0x4a90 // 4a90 + 4a78: 6d83 mov r6, r0 + 4a7a: 3e30 cmplti r6, 17 + 4a7c: 9700 ld.w r0, (r7, 0x0) + 4a7e: 0c0a bf 0x4a92 // 4a92 + 4a80: 5c63 subi r3, r4, 1 + 4a82: 4b24 lsri r1, r3, 4 + 4a84: 4164 lsli r3, r1, 4 + 4a86: 9040 ld.w r2, (r0, 0x0) + 4a88: 5c2d subu r1, r4, r3 + 4a8a: 9081 ld.w r4, (r0, 0x4) + 4a8c: 6c17 mov r0, r5 + 4a8e: 7bd1 jsr r4 + 4a90: 1494 pop r4-r7, r15 + 4a92: 9040 ld.w r2, (r0, 0x0) + 4a94: 9061 ld.w r3, (r0, 0x4) + 4a96: 3110 movi r1, 16 + 4a98: 6c17 mov r0, r5 + 4a9a: 7bcd jsr r3 + 4a9c: 2e0f subi r6, 16 + 4a9e: 07ee br 0x4a7a // 4a7a + +00004aa0 <__v2_printf>: + 4aa0: 14d4 push r4-r7, r15 + 4aa2: 143c subi r14, r14, 112 + 4aa4: b826 st.w r1, (r14, 0x18) + 4aa6: 1912 addi r1, r14, 72 + 4aa8: 1b21 addi r3, r14, 132 + 4aaa: b810 st.w r0, (r14, 0x40) + 4aac: 2100 addi r1, 1 + 4aae: 3000 movi r0, 0 + 4ab0: 6d4b mov r5, r2 + 4ab2: b871 st.w r3, (r14, 0x44) + 4ab4: b80a st.w r0, (r14, 0x28) + 4ab6: b809 st.w r0, (r14, 0x24) + 4ab8: b82d st.w r1, (r14, 0x34) + 4aba: 9886 ld.w r4, (r14, 0x18) + 4abc: 3325 movi r3, 37 + 4abe: 84c0 ld.b r6, (r4, 0x0) + 4ac0: 3e40 cmpnei r6, 0 + 4ac2: 0c03 bf 0x4ac8 // 4ac8 <__v2_printf+0x28> + 4ac4: 64da cmpne r6, r3 + 4ac6: 0845 bt 0x4b50 // 4b50 <__v2_printf+0xb0> + 4ac8: 9846 ld.w r2, (r14, 0x18) + 4aca: 5cc9 subu r6, r4, r2 + 4acc: 3e40 cmpnei r6, 0 + 4ace: 0c0a bf 0x4ae2 // 4ae2 <__v2_printf+0x42> + 4ad0: 9870 ld.w r3, (r14, 0x40) + 4ad2: 9340 ld.w r2, (r3, 0x0) + 4ad4: 6c5b mov r1, r6 + 4ad6: 9361 ld.w r3, (r3, 0x4) + 4ad8: 9806 ld.w r0, (r14, 0x18) + 4ada: 7bcd jsr r3 + 4adc: 9809 ld.w r0, (r14, 0x24) + 4ade: 6018 addu r0, r6 + 4ae0: b809 st.w r0, (r14, 0x24) + 4ae2: 8420 ld.b r1, (r4, 0x0) + 4ae4: 3940 cmpnei r1, 0 + 4ae6: 0803 bt 0x4aec // 4aec <__v2_printf+0x4c> + 4ae8: e8000367 br 0x51b6 // 51b6 <__v2_printf+0x716> + 4aec: 3637 movi r6, 55 + 4aee: 1a01 addi r2, r14, 4 + 4af0: 3700 movi r7, 0 + 4af2: 6188 addu r6, r2 + 4af4: a6e0 st.b r7, (r6, 0x0) + 4af6: 3300 movi r3, 0 + 4af8: 3600 movi r6, 0 + 4afa: 2400 addi r4, 1 + 4afc: 3000 movi r0, 0 + 4afe: 3100 movi r1, 0 + 4b00: 2e00 subi r6, 1 + 4b02: b867 st.w r3, (r14, 0x1c) + 4b04: 3700 movi r7, 0 + 4b06: 5c42 addi r2, r4, 1 + 4b08: b846 st.w r2, (r14, 0x18) + 4b0a: 8480 ld.b r4, (r4, 0x0) + 4b0c: 3364 movi r3, 100 + 4b0e: 64d2 cmpne r4, r3 + 4b10: 0d90 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4b12: 650d cmplt r3, r4 + 4b14: 084e bt 0x4bb0 // 4bb0 <__v2_printf+0x110> + 4b16: 322e movi r2, 46 + 4b18: 6492 cmpne r4, r2 + 4b1a: 0d41 bf 0x4d9c // 4d9c <__v2_printf+0x2fc> + 4b1c: 6509 cmplt r2, r4 + 4b1e: 0829 bt 0x4b70 // 4b70 <__v2_printf+0xd0> + 4b20: 332a movi r3, 42 + 4b22: 64d2 cmpne r4, r3 + 4b24: 0d31 bf 0x4d86 // 4d86 <__v2_printf+0x2e6> + 4b26: 650d cmplt r3, r4 + 4b28: 081c bt 0x4b60 // 4b60 <__v2_printf+0xc0> + 4b2a: 3220 movi r2, 32 + 4b2c: 6492 cmpne r4, r2 + 4b2e: 0d25 bf 0x4d78 // 4d78 <__v2_printf+0x2d8> + 4b30: 3323 movi r3, 35 + 4b32: 64d2 cmpne r4, r3 + 4b34: 0d27 bf 0x4d82 // 4d82 <__v2_printf+0x2e2> + 4b36: 3c40 cmpnei r4, 0 + 4b38: 0803 bt 0x4b3e // 4b3e <__v2_printf+0x9e> + 4b3a: e800033e br 0x51b6 // 51b6 <__v2_printf+0x716> + 4b3e: 1e12 addi r6, r14, 72 + 4b40: 3037 movi r0, 55 + 4b42: 1a01 addi r2, r14, 4 + 4b44: a680 st.b r4, (r6, 0x0) + 4b46: 6008 addu r0, r2 + 4b48: 3400 movi r4, 0 + 4b4a: a080 st.b r4, (r0, 0x0) + 4b4c: b8a5 st.w r5, (r14, 0x14) + 4b4e: 042c br 0x4ba6 // 4ba6 <__v2_printf+0x106> + 4b50: 2400 addi r4, 1 + 4b52: 07b6 br 0x4abe // 4abe <__v2_printf+0x1e> + 4b54: 3001 movi r0, 1 + 4b56: 312b movi r1, 43 + 4b58: 9886 ld.w r4, (r14, 0x18) + 4b5a: 07d6 br 0x4b06 // 4b06 <__v2_printf+0x66> + 4b5c: 6d4f mov r5, r3 + 4b5e: 07fd br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b60: 322b movi r2, 43 + 4b62: 6492 cmpne r4, r2 + 4b64: 0ff8 bf 0x4b54 // 4b54 <__v2_printf+0xb4> + 4b66: 332d movi r3, 45 + 4b68: 64d2 cmpne r4, r3 + 4b6a: 0be6 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b6c: 3fa2 bseti r7, 2 + 4b6e: 07f5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b70: 3339 movi r3, 57 + 4b72: 650d cmplt r3, r4 + 4b74: 0809 bt 0x4b86 // 4b86 <__v2_printf+0xe6> + 4b76: 3231 movi r2, 49 + 4b78: 6491 cmplt r4, r2 + 4b7a: 0d34 bf 0x4de2 // 4de2 <__v2_printf+0x342> + 4b7c: 3330 movi r3, 48 + 4b7e: 64d2 cmpne r4, r3 + 4b80: 0bdb bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b82: 3fa7 bseti r7, 7 + 4b84: 07ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b86: 3258 movi r2, 88 + 4b88: 6492 cmpne r4, r2 + 4b8a: 0cd3 bf 0x4d30 // 4d30 <__v2_printf+0x290> + 4b8c: 3063 movi r0, 99 + 4b8e: 6412 cmpne r4, r0 + 4b90: 0bd3 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b92: 3337 movi r3, 55 + 4b94: 1a01 addi r2, r14, 4 + 4b96: 5d2e addi r1, r5, 4 + 4b98: 85c0 ld.b r6, (r5, 0x0) + 4b9a: 3400 movi r4, 0 + 4b9c: 1d12 addi r5, r14, 72 + 4b9e: 60c8 addu r3, r2 + 4ba0: b825 st.w r1, (r14, 0x14) + 4ba2: a5c0 st.b r6, (r5, 0x0) + 4ba4: a380 st.b r4, (r3, 0x0) + 4ba6: 3601 movi r6, 1 + 4ba8: 3500 movi r5, 0 + 4baa: 1c12 addi r4, r14, 72 + 4bac: e8000295 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4bb0: 336d movi r3, 109 + 4bb2: 64d2 cmpne r4, r3 + 4bb4: 0d2d bf 0x4e0e // 4e0e <__v2_printf+0x36e> + 4bb6: 650d cmplt r3, r4 + 4bb8: 0883 bt 0x4cbe // 4cbe <__v2_printf+0x21e> + 4bba: 3268 movi r2, 104 + 4bbc: 6492 cmpne r4, r2 + 4bbe: 0d24 bf 0x4e06 // 4e06 <__v2_printf+0x366> + 4bc0: 6509 cmplt r2, r4 + 4bc2: 086f bt 0x4ca0 // 4ca0 <__v2_printf+0x200> + 4bc4: 3366 movi r3, 102 + 4bc6: 64d1 cmplt r4, r3 + 4bc8: 0bb7 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4bca: 3840 cmpnei r0, 0 + 4bcc: 0c05 bf 0x4bd6 // 4bd6 <__v2_printf+0x136> + 4bce: 3037 movi r0, 55 + 4bd0: 1a01 addi r2, r14, 4 + 4bd2: 6008 addu r0, r2 + 4bd4: a020 st.b r1, (r0, 0x0) + 4bd6: 5d3e addi r1, r5, 8 + 4bd8: b825 st.w r1, (r14, 0x14) + 4bda: 9500 ld.w r0, (r5, 0x0) + 4bdc: 9521 ld.w r1, (r5, 0x4) + 4bde: 98a7 ld.w r5, (r14, 0x1c) + 4be0: 3d40 cmpnei r5, 0 + 4be2: 0803 bt 0x4be8 // 4be8 <__v2_printf+0x148> + 4be4: 3301 movi r3, 1 + 4be6: b867 st.w r3, (r14, 0x1c) + 4be8: 3200 movi r2, 0 + 4bea: 2a00 subi r2, 1 + 4bec: 649a cmpne r6, r2 + 4bee: 0d58 bf 0x4e9e // 4e9e <__v2_printf+0x3fe> + 4bf0: 6d5b mov r5, r6 + 4bf2: 9867 ld.w r3, (r14, 0x1c) + 4bf4: b860 st.w r3, (r14, 0x0) + 4bf6: b8a1 st.w r5, (r14, 0x4) + 4bf8: 3328 movi r3, 40 + 4bfa: 1a12 addi r2, r14, 72 + 4bfc: e000069d bsr 0x5936 // 5936 <__GI___dtostr> + 4c00: 3100 movi r1, 0 + 4c02: 2900 subi r1, 1 + 4c04: 645a cmpne r6, r1 + 4c06: b808 st.w r0, (r14, 0x20) + 4c08: 0c1a bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4c0a: 312e movi r1, 46 + 4c0c: 980d ld.w r0, (r14, 0x34) + 4c0e: e00008c9 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c12: 3840 cmpnei r0, 0 + 4c14: 98c8 ld.w r6, (r14, 0x20) + 4c16: 0d48 bf 0x4ea6 // 4ea6 <__v2_printf+0x406> + 4c18: 3d40 cmpnei r5, 0 + 4c1a: 0805 bt 0x4c24 // 4c24 <__v2_printf+0x184> + 4c1c: 3101 movi r1, 1 + 4c1e: 685c and r1, r7 + 4c20: 3940 cmpnei r1, 0 + 4c22: 0d40 bf 0x4ea2 // 4ea2 <__v2_printf+0x402> + 4c24: 58c2 addi r6, r0, 1 + 4c26: 2500 addi r5, 1 + 4c28: 5d59 subu r2, r5, r6 + 4c2a: 6080 addu r2, r0 + 4c2c: 3a20 cmplti r2, 1 + 4c2e: 0805 bt 0x4c38 // 4c38 <__v2_printf+0x198> + 4c30: 2600 addi r6, 1 + 4c32: 8660 ld.b r3, (r6, 0x0) + 4c34: 3b40 cmpnei r3, 0 + 4c36: 0bf9 bt 0x4c28 // 4c28 <__v2_printf+0x188> + 4c38: 3500 movi r5, 0 + 4c3a: a6a0 st.b r5, (r6, 0x0) + 4c3c: 3067 movi r0, 103 + 4c3e: 6412 cmpne r4, r0 + 4c40: 0822 bt 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c42: 312e movi r1, 46 + 4c44: 1812 addi r0, r14, 72 + 4c46: e00008ad bsr 0x5da0 // 5da0 <__GI_strchr> + 4c4a: 3840 cmpnei r0, 0 + 4c4c: 6d03 mov r4, r0 + 4c4e: 0c1b bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c50: 3165 movi r1, 101 + 4c52: e00008a7 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c56: 6c43 mov r1, r0 + 4c58: 84c0 ld.b r6, (r4, 0x0) + 4c5a: 3e40 cmpnei r6, 0 + 4c5c: 0930 bt 0x4ebc // 4ebc <__v2_printf+0x41c> + 4c5e: 3940 cmpnei r1, 0 + 4c60: 0c02 bf 0x4c64 // 4c64 <__v2_printf+0x1c4> + 4c62: 6d07 mov r4, r1 + 4c64: 3630 movi r6, 48 + 4c66: 5c63 subi r3, r4, 1 + 4c68: 8340 ld.b r2, (r3, 0x0) + 4c6a: 658a cmpne r2, r6 + 4c6c: 0d2a bf 0x4ec0 // 4ec0 <__v2_printf+0x420> + 4c6e: 352e movi r5, 46 + 4c70: 654a cmpne r2, r5 + 4c72: 0802 bt 0x4c76 // 4c76 <__v2_printf+0x1d6> + 4c74: 6d0f mov r4, r3 + 4c76: 3000 movi r0, 0 + 4c78: 3940 cmpnei r1, 0 + 4c7a: a400 st.b r0, (r4, 0x0) + 4c7c: 0c04 bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c7e: 6c13 mov r0, r4 + 4c80: e0000838 bsr 0x5cf0 // 5cf0 <__strcpy_fast> + 4c84: 1912 addi r1, r14, 72 + 4c86: 81c0 ld.b r6, (r1, 0x0) + 4c88: 332d movi r3, 45 + 4c8a: 64da cmpne r6, r3 + 4c8c: 0c02 bf 0x4c90 // 4c90 <__v2_printf+0x1f0> + 4c8e: 05ef br 0x506c // 506c <__v2_printf+0x5cc> + 4c90: 3437 movi r4, 55 + 4c92: 1801 addi r0, r14, 4 + 4c94: 352d movi r5, 45 + 4c96: 6100 addu r4, r0 + 4c98: a4a0 st.b r5, (r4, 0x0) + 4c9a: 1912 addi r1, r14, 72 + 4c9c: 5982 addi r4, r1, 1 + 4c9e: 05ec br 0x5076 // 5076 <__v2_printf+0x5d6> + 4ca0: 3369 movi r3, 105 + 4ca2: 64d2 cmpne r4, r3 + 4ca4: 0cc6 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4ca6: 326c movi r2, 108 + 4ca8: 6492 cmpne r4, r2 + 4caa: 0b46 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cac: 9866 ld.w r3, (r14, 0x18) + 4cae: 8340 ld.b r2, (r3, 0x0) + 4cb0: 650a cmpne r2, r4 + 4cb2: 08ac bt 0x4e0a // 4e0a <__v2_printf+0x36a> + 4cb4: 9886 ld.w r4, (r14, 0x18) + 4cb6: 2400 addi r4, 1 + 4cb8: b886 st.w r4, (r14, 0x18) + 4cba: 3fa5 bseti r7, 5 + 4cbc: 074e br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4cbe: 3371 movi r3, 113 + 4cc0: 64d2 cmpne r4, r3 + 4cc2: 0ffc bf 0x4cba // 4cba <__v2_printf+0x21a> + 4cc4: 650d cmplt r3, r4 + 4cc6: 081a bt 0x4cfa // 4cfa <__v2_printf+0x25a> + 4cc8: 306f movi r0, 111 + 4cca: 6412 cmpne r4, r0 + 4ccc: 0cfc bf 0x4ec4 // 4ec4 <__v2_printf+0x424> + 4cce: 3170 movi r1, 112 + 4cd0: 6452 cmpne r4, r1 + 4cd2: 0b32 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cd4: 5d4e addi r2, r5, 4 + 4cd6: 3400 movi r4, 0 + 4cd8: 95a0 ld.w r5, (r5, 0x0) + 4cda: b845 st.w r2, (r14, 0x14) + 4cdc: 1901 addi r1, r14, 4 + 4cde: 3239 movi r2, 57 + 4ce0: b8a3 st.w r5, (r14, 0xc) + 4ce2: b884 st.w r4, (r14, 0x10) + 4ce4: 3330 movi r3, 48 + 4ce6: 180f addi r0, r14, 60 + 4ce8: 3578 movi r5, 120 + 4cea: 6084 addu r2, r1 + 4cec: 0195 lrw r4, 0xbab4 // 5014 <__v2_printf+0x574> + 4cee: 3fa1 bseti r7, 1 + 4cf0: a060 st.b r3, (r0, 0x0) + 4cf2: a2a0 st.b r5, (r2, 0x0) + 4cf4: b88a st.w r4, (r14, 0x28) + 4cf6: 3402 movi r4, 2 + 4cf8: 04f1 br 0x4eda // 4eda <__v2_printf+0x43a> + 4cfa: 3275 movi r2, 117 + 4cfc: 6492 cmpne r4, r2 + 4cfe: 0d28 bf 0x4f4e // 4f4e <__v2_printf+0x4ae> + 4d00: 3378 movi r3, 120 + 4d02: 64d2 cmpne r4, r3 + 4d04: 0d44 bf 0x4f8c // 4f8c <__v2_printf+0x4ec> + 4d06: 3173 movi r1, 115 + 4d08: 6452 cmpne r4, r1 + 4d0a: 0b16 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4d0c: 3200 movi r2, 0 + 4d0e: 3037 movi r0, 55 + 4d10: 1901 addi r1, r14, 4 + 4d12: 2a00 subi r2, 1 + 4d14: 5d6e addi r3, r5, 4 + 4d16: 9580 ld.w r4, (r5, 0x0) + 4d18: 6004 addu r0, r1 + 4d1a: 3500 movi r5, 0 + 4d1c: 649a cmpne r6, r2 + 4d1e: b865 st.w r3, (r14, 0x14) + 4d20: a0a0 st.b r5, (r0, 0x0) + 4d22: 090b bt 0x4f38 // 4f38 <__v2_printf+0x498> + 4d24: 6cd3 mov r3, r4 + 4d26: 83c0 ld.b r6, (r3, 0x0) + 4d28: 3e40 cmpnei r6, 0 + 4d2a: 0910 bt 0x4f4a // 4f4a <__v2_printf+0x4aa> + 4d2c: 5bd1 subu r6, r3, r4 + 4d2e: 047f br 0x4e2c // 4e2c <__v2_printf+0x38c> + 4d30: 3840 cmpnei r0, 0 + 4d32: 0c05 bf 0x4d3c // 4d3c <__v2_printf+0x29c> + 4d34: 3037 movi r0, 55 + 4d36: 1b01 addi r3, r14, 4 + 4d38: 600c addu r0, r3 + 4d3a: a020 st.b r1, (r0, 0x0) + 4d3c: 0228 lrw r1, 0xbaa3 // 5018 <__v2_printf+0x578> + 4d3e: 3020 movi r0, 32 + 4d40: 681c and r0, r7 + 4d42: 3840 cmpnei r0, 0 + 4d44: b82a st.w r1, (r14, 0x28) + 4d46: 0d2b bf 0x4f9c // 4f9c <__v2_printf+0x4fc> + 4d48: 5d5e addi r2, r5, 8 + 4d4a: b845 st.w r2, (r14, 0x14) + 4d4c: 9520 ld.w r1, (r5, 0x0) + 4d4e: 9541 ld.w r2, (r5, 0x4) + 4d50: b823 st.w r1, (r14, 0xc) + 4d52: b844 st.w r2, (r14, 0x10) + 4d54: 3001 movi r0, 1 + 4d56: 681c and r0, r7 + 4d58: 3840 cmpnei r0, 0 + 4d5a: 0fce bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d5c: 98a3 ld.w r5, (r14, 0xc) + 4d5e: 9864 ld.w r3, (r14, 0x10) + 4d60: 6d4c or r5, r3 + 4d62: 3d40 cmpnei r5, 0 + 4d64: 0fc9 bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d66: 3039 movi r0, 57 + 4d68: 1d01 addi r5, r14, 4 + 4d6a: 3130 movi r1, 48 + 4d6c: 1a0f addi r2, r14, 60 + 4d6e: 6014 addu r0, r5 + 4d70: a220 st.b r1, (r2, 0x0) + 4d72: a080 st.b r4, (r0, 0x0) + 4d74: 3fa1 bseti r7, 1 + 4d76: 07c0 br 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d78: 3940 cmpnei r1, 0 + 4d7a: 0aef bt 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d7c: 3001 movi r0, 1 + 4d7e: 3120 movi r1, 32 + 4d80: 06ec br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d82: 3fa0 bseti r7, 0 + 4d84: 06ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d86: 9580 ld.w r4, (r5, 0x0) + 4d88: 3cdf btsti r4, 31 + 4d8a: 5d6e addi r3, r5, 4 + 4d8c: b887 st.w r4, (r14, 0x1c) + 4d8e: 0ee7 bf 0x4b5c // 4b5c <__v2_printf+0xbc> + 4d90: 9847 ld.w r2, (r14, 0x1c) + 4d92: 3500 movi r5, 0 + 4d94: 614a subu r5, r2 + 4d96: b8a7 st.w r5, (r14, 0x1c) + 4d98: 6d4f mov r5, r3 + 4d9a: 06e9 br 0x4b6c // 4b6c <__v2_printf+0xcc> + 4d9c: 98c6 ld.w r6, (r14, 0x18) + 4d9e: 8680 ld.b r4, (r6, 0x0) + 4da0: 322a movi r2, 42 + 4da2: 9866 ld.w r3, (r14, 0x18) + 4da4: 6492 cmpne r4, r2 + 4da6: 2300 addi r3, 1 + 4da8: 0c0b bf 0x4dbe // 4dbe <__v2_printf+0x31e> + 4daa: b865 st.w r3, (r14, 0x14) + 4dac: 3600 movi r6, 0 + 4dae: 3300 movi r3, 0 + 4db0: 2b2f subi r3, 48 + 4db2: 60d0 addu r3, r4 + 4db4: 3b09 cmphsi r3, 10 + 4db6: 9845 ld.w r2, (r14, 0x14) + 4db8: 0c0c bf 0x4dd0 // 4dd0 <__v2_printf+0x330> + 4dba: b846 st.w r2, (r14, 0x18) + 4dbc: 06a8 br 0x4b0c // 4b0c <__v2_printf+0x6c> + 4dbe: 95c0 ld.w r6, (r5, 0x0) + 4dc0: 3edf btsti r6, 31 + 4dc2: 5d8e addi r4, r5, 4 + 4dc4: 0c03 bf 0x4dca // 4dca <__v2_printf+0x32a> + 4dc6: 3600 movi r6, 0 + 4dc8: 2e00 subi r6, 1 + 4dca: 6d53 mov r5, r4 + 4dcc: b866 st.w r3, (r14, 0x18) + 4dce: 06c5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4dd0: 340a movi r4, 10 + 4dd2: 7d18 mult r4, r6 + 4dd4: 9845 ld.w r2, (r14, 0x14) + 4dd6: 6d8f mov r6, r3 + 4dd8: 6190 addu r6, r4 + 4dda: 8280 ld.b r4, (r2, 0x0) + 4ddc: 2200 addi r2, 1 + 4dde: b845 st.w r2, (r14, 0x14) + 4de0: 07e7 br 0x4dae // 4dae <__v2_printf+0x30e> + 4de2: 3200 movi r2, 0 + 4de4: b847 st.w r2, (r14, 0x1c) + 4de6: 9867 ld.w r3, (r14, 0x1c) + 4de8: 320a movi r2, 10 + 4dea: 7cc8 mult r3, r2 + 4dec: 2c2f subi r4, 48 + 4dee: 610c addu r4, r3 + 4df0: b887 st.w r4, (r14, 0x1c) + 4df2: 3300 movi r3, 0 + 4df4: 9886 ld.w r4, (r14, 0x18) + 4df6: 5c42 addi r2, r4, 1 + 4df8: 2b2f subi r3, 48 + 4dfa: 8480 ld.b r4, (r4, 0x0) + 4dfc: 60d0 addu r3, r4 + 4dfe: 3b09 cmphsi r3, 10 + 4e00: b846 st.w r2, (r14, 0x18) + 4e02: 0ff2 bf 0x4de6 // 4de6 <__v2_printf+0x346> + 4e04: 07db br 0x4dba // 4dba <__v2_printf+0x31a> + 4e06: 3fa6 bseti r7, 6 + 4e08: 06a8 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0a: 3fa4 bseti r7, 4 + 4e0c: 06a6 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0e: 3840 cmpnei r0, 0 + 4e10: 0c05 bf 0x4e1a // 4e1a <__v2_printf+0x37a> + 4e12: 3637 movi r6, 55 + 4e14: 1b01 addi r3, r14, 4 + 4e16: 618c addu r6, r3 + 4e18: a620 st.b r1, (r6, 0x0) + 4e1a: 033e lrw r1, 0x20000af0 // 501c <__v2_printf+0x57c> + 4e1c: 9100 ld.w r0, (r1, 0x0) + 4e1e: e00007cb bsr 0x5db4 // 5db4 <__GI_strerror> + 4e22: 6d03 mov r4, r0 + 4e24: e000073c bsr 0x5c9c // 5c9c <__strlen_fast> + 4e28: 6d83 mov r6, r0 + 4e2a: b8a5 st.w r5, (r14, 0x14) + 4e2c: 3500 movi r5, 0 + 4e2e: 0554 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4e30: 3840 cmpnei r0, 0 + 4e32: 0c05 bf 0x4e3c // 4e3c <__v2_printf+0x39c> + 4e34: 3037 movi r0, 55 + 4e36: 1a01 addi r2, r14, 4 + 4e38: 6008 addu r0, r2 + 4e3a: a020 st.b r1, (r0, 0x0) + 4e3c: 3420 movi r4, 32 + 4e3e: 691c and r4, r7 + 4e40: 3c40 cmpnei r4, 0 + 4e42: 0c1a bf 0x4e76 // 4e76 <__v2_printf+0x3d6> + 4e44: 5d7e addi r3, r5, 8 + 4e46: 9520 ld.w r1, (r5, 0x0) + 4e48: 9541 ld.w r2, (r5, 0x4) + 4e4a: b865 st.w r3, (r14, 0x14) + 4e4c: b823 st.w r1, (r14, 0xc) + 4e4e: b844 st.w r2, (r14, 0x10) + 4e50: 9804 ld.w r0, (r14, 0x10) + 4e52: 38df btsti r0, 31 + 4e54: 0c0f bf 0x4e72 // 4e72 <__v2_printf+0x3d2> + 4e56: 9883 ld.w r4, (r14, 0xc) + 4e58: 98a4 ld.w r5, (r14, 0x10) + 4e5a: 3200 movi r2, 0 + 4e5c: 3300 movi r3, 0 + 4e5e: 6488 cmphs r2, r2 + 4e60: 6093 subc r2, r4 + 4e62: 60d7 subc r3, r5 + 4e64: b843 st.w r2, (r14, 0xc) + 4e66: b864 st.w r3, (r14, 0x10) + 4e68: 3237 movi r2, 55 + 4e6a: 1b01 addi r3, r14, 4 + 4e6c: 352d movi r5, 45 + 4e6e: 608c addu r2, r3 + 4e70: a2a0 st.b r5, (r2, 0x0) + 4e72: 3401 movi r4, 1 + 4e74: 0438 br 0x4ee4 // 4ee4 <__v2_printf+0x444> + 4e76: 3310 movi r3, 16 + 4e78: 68dc and r3, r7 + 4e7a: 3b40 cmpnei r3, 0 + 4e7c: 0c08 bf 0x4e8c // 4e8c <__v2_printf+0x3ec> + 4e7e: 5d4e addi r2, r5, 4 + 4e80: b845 st.w r2, (r14, 0x14) + 4e82: 95a0 ld.w r5, (r5, 0x0) + 4e84: 559f asri r4, r5, 31 + 4e86: b8a3 st.w r5, (r14, 0xc) + 4e88: b884 st.w r4, (r14, 0x10) + 4e8a: 07e3 br 0x4e50 // 4e50 <__v2_printf+0x3b0> + 4e8c: 3140 movi r1, 64 + 4e8e: 685c and r1, r7 + 4e90: 5d0e addi r0, r5, 4 + 4e92: 3940 cmpnei r1, 0 + 4e94: 95a0 ld.w r5, (r5, 0x0) + 4e96: b805 st.w r0, (r14, 0x14) + 4e98: 0ff6 bf 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9a: 7557 sexth r5, r5 + 4e9c: 07f4 br 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9e: 3506 movi r5, 6 + 4ea0: 06a9 br 0x4bf2 // 4bf2 <__v2_printf+0x152> + 4ea2: 6d83 mov r6, r0 + 4ea4: 06ca br 0x4c38 // 4c38 <__v2_printf+0x198> + 4ea6: 3201 movi r2, 1 + 4ea8: 689c and r2, r7 + 4eaa: 3a40 cmpnei r2, 0 + 4eac: 0ec8 bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4eae: 1d12 addi r5, r14, 72 + 4eb0: 6158 addu r5, r6 + 4eb2: 332e movi r3, 46 + 4eb4: 3000 movi r0, 0 + 4eb6: a560 st.b r3, (r5, 0x0) + 4eb8: a501 st.b r0, (r5, 0x1) + 4eba: 06c1 br 0x4c3c // 4c3c <__v2_printf+0x19c> + 4ebc: 2400 addi r4, 1 + 4ebe: 06cd br 0x4c58 // 4c58 <__v2_printf+0x1b8> + 4ec0: 6d0f mov r4, r3 + 4ec2: 06d2 br 0x4c66 // 4c66 <__v2_printf+0x1c6> + 4ec4: 3320 movi r3, 32 + 4ec6: 68dc and r3, r7 + 4ec8: 3b40 cmpnei r3, 0 + 4eca: 0c24 bf 0x4f12 // 4f12 <__v2_printf+0x472> + 4ecc: 5d7e addi r3, r5, 8 + 4ece: 9500 ld.w r0, (r5, 0x0) + 4ed0: 9521 ld.w r1, (r5, 0x4) + 4ed2: b865 st.w r3, (r14, 0x14) + 4ed4: b803 st.w r0, (r14, 0xc) + 4ed6: b824 st.w r1, (r14, 0x10) + 4ed8: 3400 movi r4, 0 + 4eda: 3537 movi r5, 55 + 4edc: 1801 addi r0, r14, 4 + 4ede: 3200 movi r2, 0 + 4ee0: 6140 addu r5, r0 + 4ee2: a540 st.b r2, (r5, 0x0) + 4ee4: 3100 movi r1, 0 + 4ee6: 2900 subi r1, 1 + 4ee8: 9803 ld.w r0, (r14, 0xc) + 4eea: 98a4 ld.w r5, (r14, 0x10) + 4eec: 645a cmpne r6, r1 + 4eee: 6c14 or r0, r5 + 4ef0: 0cc8 bf 0x5080 // 5080 <__v2_printf+0x5e0> + 4ef2: 6c9f mov r2, r7 + 4ef4: 3a87 bclri r2, 7 + 4ef6: 3840 cmpnei r0, 0 + 4ef8: b848 st.w r2, (r14, 0x20) + 4efa: 08c6 bt 0x5086 // 5086 <__v2_printf+0x5e6> + 4efc: 3e40 cmpnei r6, 0 + 4efe: 0cac bf 0x5056 // 5056 <__v2_printf+0x5b6> + 4f00: 3c41 cmpnei r4, 1 + 4f02: 0c68 bf 0x4fd2 // 4fd2 <__v2_printf+0x532> + 4f04: 3c42 cmpnei r4, 2 + 4f06: 0c8d bf 0x5020 // 5020 <__v2_printf+0x580> + 4f08: 3300 movi r3, 0 + 4f0a: 3400 movi r4, 0 + 4f0c: b863 st.w r3, (r14, 0xc) + 4f0e: b884 st.w r4, (r14, 0x10) + 4f10: 04bf br 0x508e // 508e <__v2_printf+0x5ee> + 4f12: 3010 movi r0, 16 + 4f14: 681c and r0, r7 + 4f16: 3840 cmpnei r0, 0 + 4f18: 0c05 bf 0x4f22 // 4f22 <__v2_printf+0x482> + 4f1a: 5d8e addi r4, r5, 4 + 4f1c: b885 st.w r4, (r14, 0x14) + 4f1e: 95a0 ld.w r5, (r5, 0x0) + 4f20: 0408 br 0x4f30 // 4f30 <__v2_printf+0x490> + 4f22: 3240 movi r2, 64 + 4f24: 689c and r2, r7 + 4f26: 5d2e addi r1, r5, 4 + 4f28: 3a40 cmpnei r2, 0 + 4f2a: b825 st.w r1, (r14, 0x14) + 4f2c: 0ff9 bf 0x4f1e // 4f1e <__v2_printf+0x47e> + 4f2e: 8da0 ld.h r5, (r5, 0x0) + 4f30: 3400 movi r4, 0 + 4f32: b8a3 st.w r5, (r14, 0xc) + 4f34: b884 st.w r4, (r14, 0x10) + 4f36: 07d2 br 0x4eda // 4eda <__v2_printf+0x43a> + 4f38: 5cb8 addu r5, r4, r6 + 4f3a: 6cd3 mov r3, r4 + 4f3c: 654e cmpne r3, r5 + 4f3e: 0f77 bf 0x4e2c // 4e2c <__v2_printf+0x38c> + 4f40: 8300 ld.b r0, (r3, 0x0) + 4f42: 3840 cmpnei r0, 0 + 4f44: 0ef4 bf 0x4d2c // 4d2c <__v2_printf+0x28c> + 4f46: 2300 addi r3, 1 + 4f48: 07fa br 0x4f3c // 4f3c <__v2_printf+0x49c> + 4f4a: 2300 addi r3, 1 + 4f4c: 06ed br 0x4d26 // 4d26 <__v2_printf+0x286> + 4f4e: 3420 movi r4, 32 + 4f50: 691c and r4, r7 + 4f52: 3c40 cmpnei r4, 0 + 4f54: 0c09 bf 0x4f66 // 4f66 <__v2_printf+0x4c6> + 4f56: 5d7e addi r3, r5, 8 + 4f58: 9520 ld.w r1, (r5, 0x0) + 4f5a: 9541 ld.w r2, (r5, 0x4) + 4f5c: b865 st.w r3, (r14, 0x14) + 4f5e: b823 st.w r1, (r14, 0xc) + 4f60: b844 st.w r2, (r14, 0x10) + 4f62: 3401 movi r4, 1 + 4f64: 07bb br 0x4eda // 4eda <__v2_printf+0x43a> + 4f66: 3310 movi r3, 16 + 4f68: 68dc and r3, r7 + 4f6a: 3b40 cmpnei r3, 0 + 4f6c: 0c05 bf 0x4f76 // 4f76 <__v2_printf+0x4d6> + 4f6e: 5d0e addi r0, r5, 4 + 4f70: b805 st.w r0, (r14, 0x14) + 4f72: 95a0 ld.w r5, (r5, 0x0) + 4f74: 0408 br 0x4f84 // 4f84 <__v2_printf+0x4e4> + 4f76: 3140 movi r1, 64 + 4f78: 685c and r1, r7 + 4f7a: 5d4e addi r2, r5, 4 + 4f7c: 3940 cmpnei r1, 0 + 4f7e: b845 st.w r2, (r14, 0x14) + 4f80: 0ff9 bf 0x4f72 // 4f72 <__v2_printf+0x4d2> + 4f82: 8da0 ld.h r5, (r5, 0x0) + 4f84: 3400 movi r4, 0 + 4f86: b8a3 st.w r5, (r14, 0xc) + 4f88: b884 st.w r4, (r14, 0x10) + 4f8a: 07ec br 0x4f62 // 4f62 <__v2_printf+0x4c2> + 4f8c: 3840 cmpnei r0, 0 + 4f8e: 0c05 bf 0x4f98 // 4f98 <__v2_printf+0x4f8> + 4f90: 3337 movi r3, 55 + 4f92: 1a01 addi r2, r14, 4 + 4f94: 60c8 addu r3, r2 + 4f96: a320 st.b r1, (r3, 0x0) + 4f98: 103f lrw r1, 0xbab4 // 5014 <__v2_printf+0x574> + 4f9a: 06d2 br 0x4d3e // 4d3e <__v2_printf+0x29e> + 4f9c: 3310 movi r3, 16 + 4f9e: 68dc and r3, r7 + 4fa0: 3b40 cmpnei r3, 0 + 4fa2: 0c05 bf 0x4fac // 4fac <__v2_printf+0x50c> + 4fa4: 5d0e addi r0, r5, 4 + 4fa6: b805 st.w r0, (r14, 0x14) + 4fa8: 95a0 ld.w r5, (r5, 0x0) + 4faa: 0408 br 0x4fba // 4fba <__v2_printf+0x51a> + 4fac: 3240 movi r2, 64 + 4fae: 689c and r2, r7 + 4fb0: 5d2e addi r1, r5, 4 + 4fb2: 3a40 cmpnei r2, 0 + 4fb4: b825 st.w r1, (r14, 0x14) + 4fb6: 0ff9 bf 0x4fa8 // 4fa8 <__v2_printf+0x508> + 4fb8: 8da0 ld.h r5, (r5, 0x0) + 4fba: 3300 movi r3, 0 + 4fbc: b8a3 st.w r5, (r14, 0xc) + 4fbe: b864 st.w r3, (r14, 0x10) + 4fc0: 06ca br 0x4d54 // 4d54 <__v2_printf+0x2b4> + 4fc2: 6cd3 mov r3, r4 + 4fc4: 0467 br 0x5092 // 5092 <__v2_printf+0x5f2> + 4fc6: 9884 ld.w r4, (r14, 0x10) + 4fc8: 3c40 cmpnei r4, 0 + 4fca: 080b bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fcc: 9843 ld.w r2, (r14, 0xc) + 4fce: 3a09 cmphsi r2, 10 + 4fd0: 0808 bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fd2: 9883 ld.w r4, (r14, 0xc) + 4fd4: 242f addi r4, 48 + 4fd6: 1f1a addi r7, r14, 104 + 4fd8: a787 st.b r4, (r7, 0x7) + 4fda: 1c12 addi r4, r14, 72 + 4fdc: 2426 addi r4, 39 + 4fde: 0478 br 0x50ce // 50ce <__v2_printf+0x62e> + 4fe0: 1c1c addi r4, r14, 112 + 4fe2: 3530 movi r5, 48 + 4fe4: 320a movi r2, 10 + 4fe6: 3300 movi r3, 0 + 4fe8: 9803 ld.w r0, (r14, 0xc) + 4fea: 9824 ld.w r1, (r14, 0x10) + 4fec: e00002c2 bsr 0x5570 // 5570 <__umoddi3> + 4ff0: 6014 addu r0, r5 + 4ff2: 2c00 subi r4, 1 + 4ff4: a400 st.b r0, (r4, 0x0) + 4ff6: 320a movi r2, 10 + 4ff8: 9803 ld.w r0, (r14, 0xc) + 4ffa: 9824 ld.w r1, (r14, 0x10) + 4ffc: 3300 movi r3, 0 + 4ffe: e00000e3 bsr 0x51c4 // 51c4 <__udivdi3> + 5002: b803 st.w r0, (r14, 0xc) + 5004: b824 st.w r1, (r14, 0x10) + 5006: 9823 ld.w r1, (r14, 0xc) + 5008: 98e4 ld.w r7, (r14, 0x10) + 500a: 6c5c or r1, r7 + 500c: 3940 cmpnei r1, 0 + 500e: 0beb bt 0x4fe4 // 4fe4 <__v2_printf+0x544> + 5010: 045f br 0x50ce // 50ce <__v2_printf+0x62e> + 5012: 0000 bkpt + 5014: 0000bab4 .long 0x0000bab4 + 5018: 0000baa3 .long 0x0000baa3 + 501c: 20000af0 .long 0x20000af0 + 5020: 3300 movi r3, 0 + 5022: 3400 movi r4, 0 + 5024: b863 st.w r3, (r14, 0xc) + 5026: b884 st.w r4, (r14, 0x10) + 5028: 1c1c addi r4, r14, 112 + 502a: 320f movi r2, 15 + 502c: 9803 ld.w r0, (r14, 0xc) + 502e: 982a ld.w r1, (r14, 0x28) + 5030: 6808 and r0, r2 + 5032: 6004 addu r0, r1 + 5034: 80a0 ld.b r5, (r0, 0x0) + 5036: 2c00 subi r4, 1 + 5038: 98e4 ld.w r7, (r14, 0x10) + 503a: a4a0 st.b r5, (r4, 0x0) + 503c: 98a4 ld.w r5, (r14, 0x10) + 503e: 9863 ld.w r3, (r14, 0xc) + 5040: 471c lsli r0, r7, 28 + 5042: 4de4 lsri r7, r5, 4 + 5044: 4b24 lsri r1, r3, 4 + 5046: b8e4 st.w r7, (r14, 0x10) + 5048: 6c04 or r0, r1 + 504a: 9864 ld.w r3, (r14, 0x10) + 504c: b803 st.w r0, (r14, 0xc) + 504e: 6c0c or r0, r3 + 5050: 3840 cmpnei r0, 0 + 5052: 0bed bt 0x502c // 502c <__v2_printf+0x58c> + 5054: 043d br 0x50ce // 50ce <__v2_printf+0x62e> + 5056: 3c40 cmpnei r4, 0 + 5058: 0808 bt 0x5068 // 5068 <__v2_printf+0x5c8> + 505a: 3301 movi r3, 1 + 505c: 68dc and r3, r7 + 505e: 3b40 cmpnei r3, 0 + 5060: 0c04 bf 0x5068 // 5068 <__v2_printf+0x5c8> + 5062: 1f1a addi r7, r14, 104 + 5064: 3430 movi r4, 48 + 5066: 07b9 br 0x4fd8 // 4fd8 <__v2_printf+0x538> + 5068: 1c1c addi r4, r14, 112 + 506a: 0432 br 0x50ce // 50ce <__v2_printf+0x62e> + 506c: 322b movi r2, 43 + 506e: 649a cmpne r6, r2 + 5070: 0802 bt 0x5074 // 5074 <__v2_printf+0x5d4> + 5072: 0614 br 0x4c9a // 4c9a <__v2_printf+0x1fa> + 5074: 1c12 addi r4, r14, 72 + 5076: 6c13 mov r0, r4 + 5078: e0000612 bsr 0x5c9c // 5c9c <__strlen_fast> + 507c: 6d83 mov r6, r0 + 507e: 06d7 br 0x4e2c // 4e2c <__v2_printf+0x38c> + 5080: 3840 cmpnei r0, 0 + 5082: b8e8 st.w r7, (r14, 0x20) + 5084: 0f3e bf 0x4f00 // 4f00 <__v2_printf+0x460> + 5086: 3c41 cmpnei r4, 1 + 5088: 0f9f bf 0x4fc6 // 4fc6 <__v2_printf+0x526> + 508a: 3c42 cmpnei r4, 2 + 508c: 0fce bf 0x5028 // 5028 <__v2_printf+0x588> + 508e: 1b1c addi r3, r14, 112 + 5090: 3707 movi r7, 7 + 5092: 9823 ld.w r1, (r14, 0xc) + 5094: 685c and r1, r7 + 5096: 212f addi r1, 48 + 5098: 9804 ld.w r0, (r14, 0x10) + 509a: 7484 zextb r2, r1 + 509c: 9823 ld.w r1, (r14, 0xc) + 509e: 40bd lsli r5, r0, 29 + 50a0: 4903 lsri r0, r1, 3 + 50a2: 9824 ld.w r1, (r14, 0x10) + 50a4: 4923 lsri r1, r1, 3 + 50a6: b824 st.w r1, (r14, 0x10) + 50a8: 6d40 or r5, r0 + 50aa: 9804 ld.w r0, (r14, 0x10) + 50ac: b8a3 st.w r5, (r14, 0xc) + 50ae: 6d40 or r5, r0 + 50b0: 5b83 subi r4, r3, 1 + 50b2: 3d40 cmpnei r5, 0 + 50b4: a440 st.b r2, (r4, 0x0) + 50b6: 0b86 bt 0x4fc2 // 4fc2 <__v2_printf+0x522> + 50b8: 3701 movi r7, 1 + 50ba: 9828 ld.w r1, (r14, 0x20) + 50bc: 69c4 and r7, r1 + 50be: 3f40 cmpnei r7, 0 + 50c0: 0c07 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c2: 3530 movi r5, 48 + 50c4: 654a cmpne r2, r5 + 50c6: 0c04 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c8: 5b87 subi r4, r3, 2 + 50ca: 3330 movi r3, 48 + 50cc: a460 st.b r3, (r4, 0x0) + 50ce: 6d5b mov r5, r6 + 50d0: 1e1c addi r6, r14, 112 + 50d2: 6192 subu r6, r4 + 50d4: 98e8 ld.w r7, (r14, 0x20) + 50d6: 6595 cmplt r5, r6 + 50d8: b8a8 st.w r5, (r14, 0x20) + 50da: 0c02 bf 0x50de // 50de <__v2_printf+0x63e> + 50dc: b8c8 st.w r6, (r14, 0x20) + 50de: 3037 movi r0, 55 + 50e0: 1b01 addi r3, r14, 4 + 50e2: 600c addu r0, r3 + 50e4: 8040 ld.b r2, (r0, 0x0) + 50e6: 3a40 cmpnei r2, 0 + 50e8: 0c04 bf 0x50f0 // 50f0 <__v2_printf+0x650> + 50ea: 9828 ld.w r1, (r14, 0x20) + 50ec: 2100 addi r1, 1 + 50ee: b828 st.w r1, (r14, 0x20) + 50f0: 3002 movi r0, 2 + 50f2: 681c and r0, r7 + 50f4: 3840 cmpnei r0, 0 + 50f6: b80b st.w r0, (r14, 0x2c) + 50f8: 0c04 bf 0x5100 // 5100 <__v2_printf+0x660> + 50fa: 9868 ld.w r3, (r14, 0x20) + 50fc: 2301 addi r3, 2 + 50fe: b868 st.w r3, (r14, 0x20) + 5100: 3284 movi r2, 132 + 5102: 689c and r2, r7 + 5104: 3a40 cmpnei r2, 0 + 5106: b84c st.w r2, (r14, 0x30) + 5108: 080b bt 0x511e // 511e <__v2_printf+0x67e> + 510a: 3310 movi r3, 16 + 510c: 1a0c addi r2, r14, 48 + 510e: 9827 ld.w r1, (r14, 0x1c) + 5110: 9808 ld.w r0, (r14, 0x20) + 5112: 60c8 addu r3, r2 + 5114: 5901 subu r0, r1, r0 + 5116: 6f4f mov r13, r3 + 5118: 1129 lrw r1, 0xacb8 // 51bc <__v2_printf+0x71c> + 511a: e3fffca9 bsr 0x4a6c // 4a6c + 511e: 3137 movi r1, 55 + 5120: 1801 addi r0, r14, 4 + 5122: 6040 addu r1, r0 + 5124: 8160 ld.b r3, (r1, 0x0) + 5126: 3b40 cmpnei r3, 0 + 5128: 0c0b bf 0x513e // 513e <__v2_printf+0x69e> + 512a: 9830 ld.w r1, (r14, 0x40) + 512c: 9101 ld.w r0, (r1, 0x4) + 512e: b802 st.w r0, (r14, 0x8) + 5130: 1b0c addi r3, r14, 48 + 5132: 300b movi r0, 11 + 5134: 9140 ld.w r2, (r1, 0x0) + 5136: 600c addu r0, r3 + 5138: 3101 movi r1, 1 + 513a: 9862 ld.w r3, (r14, 0x8) + 513c: 7bcd jsr r3 + 513e: 984b ld.w r2, (r14, 0x2c) + 5140: 3a40 cmpnei r2, 0 + 5142: 0c07 bf 0x5150 // 5150 <__v2_printf+0x6b0> + 5144: 9830 ld.w r1, (r14, 0x40) + 5146: 9140 ld.w r2, (r1, 0x0) + 5148: 9161 ld.w r3, (r1, 0x4) + 514a: 180f addi r0, r14, 60 + 514c: 3102 movi r1, 2 + 514e: 7bcd jsr r3 + 5150: 3080 movi r0, 128 + 5152: 984c ld.w r2, (r14, 0x30) + 5154: 640a cmpne r2, r0 + 5156: 080b bt 0x516c // 516c <__v2_printf+0x6cc> + 5158: 9827 ld.w r1, (r14, 0x1c) + 515a: 9868 ld.w r3, (r14, 0x20) + 515c: 590d subu r0, r1, r3 + 515e: 1a0c addi r2, r14, 48 + 5160: 3110 movi r1, 16 + 5162: 6048 addu r1, r2 + 5164: 6f47 mov r13, r1 + 5166: 1037 lrw r1, 0xacc8 // 51c0 <__v2_printf+0x720> + 5168: e3fffc82 bsr 0x4a6c // 4a6c + 516c: 5d19 subu r0, r5, r6 + 516e: 1b0c addi r3, r14, 48 + 5170: 3510 movi r5, 16 + 5172: 614c addu r5, r3 + 5174: 6f57 mov r13, r5 + 5176: 6d77 mov r5, r13 + 5178: 1032 lrw r1, 0xacc8 // 51c0 <__v2_printf+0x720> + 517a: e3fffc79 bsr 0x4a6c // 4a6c + 517e: 9500 ld.w r0, (r5, 0x0) + 5180: 9040 ld.w r2, (r0, 0x0) + 5182: 9061 ld.w r3, (r0, 0x4) + 5184: 6c13 mov r0, r4 + 5186: 3404 movi r4, 4 + 5188: 6c5b mov r1, r6 + 518a: 691c and r4, r7 + 518c: 7bcd jsr r3 + 518e: 3c40 cmpnei r4, 0 + 5190: 0c08 bf 0x51a0 // 51a0 <__v2_printf+0x700> + 5192: 9828 ld.w r1, (r14, 0x20) + 5194: 98c7 ld.w r6, (r14, 0x1c) + 5196: 5e05 subu r0, r6, r1 + 5198: 6f57 mov r13, r5 + 519a: 1029 lrw r1, 0xacb8 // 51bc <__v2_printf+0x71c> + 519c: e3fffc68 bsr 0x4a6c // 4a6c + 51a0: 98a7 ld.w r5, (r14, 0x1c) + 51a2: 9848 ld.w r2, (r14, 0x20) + 51a4: 6495 cmplt r5, r2 + 51a6: 0c02 bf 0x51aa // 51aa <__v2_printf+0x70a> + 51a8: 6d4b mov r5, r2 + 51aa: 9809 ld.w r0, (r14, 0x24) + 51ac: 6014 addu r0, r5 + 51ae: b809 st.w r0, (r14, 0x24) + 51b0: 98a5 ld.w r5, (r14, 0x14) + 51b2: e800fc84 br 0x4aba // 4aba <__v2_printf+0x1a> + 51b6: 9809 ld.w r0, (r14, 0x24) + 51b8: 141c addi r14, r14, 112 + 51ba: 1494 pop r4-r7, r15 + 51bc: 0000acb8 .long 0x0000acb8 + 51c0: 0000acc8 .long 0x0000acc8 + +000051c4 <__udivdi3>: + 51c4: 14d4 push r4-r7, r15 + 51c6: 1426 subi r14, r14, 24 + 51c8: 6dc7 mov r7, r1 + 51ca: 3b40 cmpnei r3, 0 + 51cc: 6d03 mov r4, r0 + 51ce: 6c4f mov r1, r3 + 51d0: 6d8b mov r6, r2 + 51d2: b800 st.w r0, (r14, 0x0) + 51d4: 6d5f mov r5, r7 + 51d6: 085b bt 0x528c // 528c <__udivdi3+0xc8> + 51d8: 649c cmphs r7, r2 + 51da: 0874 bt 0x52c2 // 52c2 <__udivdi3+0xfe> + 51dc: 003d lrw r1, 0xffff // 5564 <__udivdi3+0x3a0> + 51de: 6484 cmphs r1, r2 + 51e0: 0cdc bf 0x5398 // 5398 <__udivdi3+0x1d4> + 51e2: 31ff movi r1, 255 + 51e4: 6484 cmphs r1, r2 + 51e6: 0802 bt 0x51ea // 51ea <__udivdi3+0x26> + 51e8: 3308 movi r3, 8 + 51ea: 6c4b mov r1, r2 + 51ec: 704d lsr r1, r3 + 51ee: 0100 lrw r0, 0xabb8 // 5568 <__udivdi3+0x3a4> + 51f0: 6040 addu r1, r0 + 51f2: 8120 ld.b r1, (r1, 0x0) + 51f4: 60c4 addu r3, r1 + 51f6: 3120 movi r1, 32 + 51f8: 604e subu r1, r3 + 51fa: 3940 cmpnei r1, 0 + 51fc: 0c09 bf 0x520e // 520e <__udivdi3+0x4a> + 51fe: 6d53 mov r5, r4 + 5200: 7084 lsl r2, r1 + 5202: 71c4 lsl r7, r1 + 5204: 714d lsr r5, r3 + 5206: 7104 lsl r4, r1 + 5208: 6d8b mov r6, r2 + 520a: 6d5c or r5, r7 + 520c: b880 st.w r4, (r14, 0x0) + 520e: 4e90 lsri r4, r6, 16 + 5210: 6c53 mov r1, r4 + 5212: 6c17 mov r0, r5 + 5214: e000117e bsr 0x7510 // 7510 <__umodsi3> + 5218: b801 st.w r0, (r14, 0x4) + 521a: 6c53 mov r1, r4 + 521c: 6c17 mov r0, r5 + 521e: e0001155 bsr 0x74c8 // 74c8 <__udivsi3> + 5222: 75d9 zexth r7, r6 + 5224: 9861 ld.w r3, (r14, 0x4) + 5226: 9820 ld.w r1, (r14, 0x0) + 5228: 6c9f mov r2, r7 + 522a: 4370 lsli r3, r3, 16 + 522c: 4930 lsri r1, r1, 16 + 522e: 7c80 mult r2, r0 + 5230: 6cc4 or r3, r1 + 5232: 648c cmphs r3, r2 + 5234: 6d43 mov r5, r0 + 5236: 0808 bt 0x5246 // 5246 <__udivdi3+0x82> + 5238: 60d8 addu r3, r6 + 523a: 658c cmphs r3, r6 + 523c: 5823 subi r1, r0, 1 + 523e: 0c03 bf 0x5244 // 5244 <__udivdi3+0x80> + 5240: 648c cmphs r3, r2 + 5242: 0d8e bf 0x555e // 555e <__udivdi3+0x39a> + 5244: 6d47 mov r5, r1 + 5246: 60ca subu r3, r2 + 5248: 6c53 mov r1, r4 + 524a: 6c0f mov r0, r3 + 524c: b862 st.w r3, (r14, 0x8) + 524e: e0001161 bsr 0x7510 // 7510 <__umodsi3> + 5252: 9862 ld.w r3, (r14, 0x8) + 5254: b801 st.w r0, (r14, 0x4) + 5256: 6c53 mov r1, r4 + 5258: 6c0f mov r0, r3 + 525a: e0001137 bsr 0x74c8 // 74c8 <__udivsi3> + 525e: 9841 ld.w r2, (r14, 0x4) + 5260: d86e1000 ld.h r3, (r14, 0x0) + 5264: 4250 lsli r2, r2, 16 + 5266: 74cd zexth r3, r3 + 5268: 7dc0 mult r7, r0 + 526a: 6c8c or r2, r3 + 526c: 65c8 cmphs r2, r7 + 526e: 6d03 mov r4, r0 + 5270: 0808 bt 0x5280 // 5280 <__udivdi3+0xbc> + 5272: 6098 addu r2, r6 + 5274: 6588 cmphs r2, r6 + 5276: 5863 subi r3, r0, 1 + 5278: 0d4d bf 0x5512 // 5512 <__udivdi3+0x34e> + 527a: 65c8 cmphs r2, r7 + 527c: 094b bt 0x5512 // 5512 <__udivdi3+0x34e> + 527e: 2c01 subi r4, 2 + 5280: 4510 lsli r0, r5, 16 + 5282: 3700 movi r7, 0 + 5284: 6c10 or r0, r4 + 5286: 6c5f mov r1, r7 + 5288: 1406 addi r14, r14, 24 + 528a: 1494 pop r4-r7, r15 + 528c: 64dc cmphs r7, r3 + 528e: 0c76 bf 0x537a // 537a <__udivdi3+0x1b6> + 5290: 026a lrw r3, 0xffff // 5564 <__udivdi3+0x3a0> + 5292: 644c cmphs r3, r1 + 5294: 0878 bt 0x5384 // 5384 <__udivdi3+0x1c0> + 5296: 0269 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 5298: 644c cmphs r3, r1 + 529a: 0d48 bf 0x552a // 552a <__udivdi3+0x366> + 529c: 3610 movi r6, 16 + 529e: 6cc7 mov r3, r1 + 52a0: 70d9 lsr r3, r6 + 52a2: 020d lrw r0, 0xabb8 // 5568 <__udivdi3+0x3a4> + 52a4: 60c0 addu r3, r0 + 52a6: 8360 ld.b r3, (r3, 0x0) + 52a8: 618c addu r6, r3 + 52aa: 3020 movi r0, 32 + 52ac: 5879 subu r3, r0, r6 + 52ae: 3b40 cmpnei r3, 0 + 52b0: b860 st.w r3, (r14, 0x0) + 52b2: 0878 bt 0x53a2 // 53a2 <__udivdi3+0x1de> + 52b4: 65c4 cmphs r1, r7 + 52b6: 0d40 bf 0x5536 // 5536 <__udivdi3+0x372> + 52b8: 6490 cmphs r4, r2 + 52ba: 6c0f mov r0, r3 + 52bc: 600d addc r0, r3 + 52be: 3700 movi r7, 0 + 52c0: 045f br 0x537e // 537e <__udivdi3+0x1ba> + 52c2: 3a40 cmpnei r2, 0 + 52c4: 0808 bt 0x52d4 // 52d4 <__udivdi3+0x110> + 52c6: 3100 movi r1, 0 + 52c8: 3001 movi r0, 1 + 52ca: b861 st.w r3, (r14, 0x4) + 52cc: e00010fe bsr 0x74c8 // 74c8 <__udivsi3> + 52d0: 6d83 mov r6, r0 + 52d2: 9861 ld.w r3, (r14, 0x4) + 52d4: 025b lrw r2, 0xffff // 5564 <__udivdi3+0x3a0> + 52d6: 6588 cmphs r2, r6 + 52d8: 085b bt 0x538e // 538e <__udivdi3+0x1ca> + 52da: 027a lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 52dc: 658c cmphs r3, r6 + 52de: 0d28 bf 0x552e // 552e <__udivdi3+0x36a> + 52e0: 3310 movi r3, 16 + 52e2: 6c9b mov r2, r6 + 52e4: 023e lrw r1, 0xabb8 // 5568 <__udivdi3+0x3a4> + 52e6: 708d lsr r2, r3 + 52e8: 6084 addu r2, r1 + 52ea: 8240 ld.b r2, (r2, 0x0) + 52ec: 5a2c addu r1, r2, r3 + 52ee: 3220 movi r2, 32 + 52f0: 6086 subu r2, r1 + 52f2: 3a40 cmpnei r2, 0 + 52f4: 08c0 bt 0x5474 // 5474 <__udivdi3+0x2b0> + 52f6: 74d9 zexth r3, r6 + 52f8: 5f99 subu r4, r7, r6 + 52fa: 4eb0 lsri r5, r6, 16 + 52fc: b861 st.w r3, (r14, 0x4) + 52fe: 3701 movi r7, 1 + 5300: 6c57 mov r1, r5 + 5302: 6c13 mov r0, r4 + 5304: e0001106 bsr 0x7510 // 7510 <__umodsi3> + 5308: b802 st.w r0, (r14, 0x8) + 530a: 6c57 mov r1, r5 + 530c: 6c13 mov r0, r4 + 530e: e00010dd bsr 0x74c8 // 74c8 <__udivsi3> + 5312: 9862 ld.w r3, (r14, 0x8) + 5314: 4330 lsli r1, r3, 16 + 5316: 9860 ld.w r3, (r14, 0x0) + 5318: 9841 ld.w r2, (r14, 0x4) + 531a: 4b70 lsri r3, r3, 16 + 531c: 7c80 mult r2, r0 + 531e: 6cc4 or r3, r1 + 5320: 648c cmphs r3, r2 + 5322: 6d03 mov r4, r0 + 5324: 0808 bt 0x5334 // 5334 <__udivdi3+0x170> + 5326: 60d8 addu r3, r6 + 5328: 658c cmphs r3, r6 + 532a: 5823 subi r1, r0, 1 + 532c: 0c03 bf 0x5332 // 5332 <__udivdi3+0x16e> + 532e: 648c cmphs r3, r2 + 5330: 0d14 bf 0x5558 // 5558 <__udivdi3+0x394> + 5332: 6d07 mov r4, r1 + 5334: 60ca subu r3, r2 + 5336: 6c57 mov r1, r5 + 5338: 6c0f mov r0, r3 + 533a: b863 st.w r3, (r14, 0xc) + 533c: e00010ea bsr 0x7510 // 7510 <__umodsi3> + 5340: 9863 ld.w r3, (r14, 0xc) + 5342: 6c57 mov r1, r5 + 5344: b802 st.w r0, (r14, 0x8) + 5346: 6c0f mov r0, r3 + 5348: e00010c0 bsr 0x74c8 // 74c8 <__udivsi3> + 534c: 9842 ld.w r2, (r14, 0x8) + 534e: d86e1000 ld.h r3, (r14, 0x0) + 5352: 9821 ld.w r1, (r14, 0x4) + 5354: 4250 lsli r2, r2, 16 + 5356: 74cd zexth r3, r3 + 5358: 7c40 mult r1, r0 + 535a: 6cc8 or r3, r2 + 535c: 644c cmphs r3, r1 + 535e: 6d43 mov r5, r0 + 5360: 0808 bt 0x5370 // 5370 <__udivdi3+0x1ac> + 5362: 60d8 addu r3, r6 + 5364: 658c cmphs r3, r6 + 5366: 5843 subi r2, r0, 1 + 5368: 0cd3 bf 0x550e // 550e <__udivdi3+0x34a> + 536a: 644c cmphs r3, r1 + 536c: 08d1 bt 0x550e // 550e <__udivdi3+0x34a> + 536e: 2d01 subi r5, 2 + 5370: 4410 lsli r0, r4, 16 + 5372: 6c14 or r0, r5 + 5374: 6c5f mov r1, r7 + 5376: 1406 addi r14, r14, 24 + 5378: 1494 pop r4-r7, r15 + 537a: 3700 movi r7, 0 + 537c: 3000 movi r0, 0 + 537e: 6c5f mov r1, r7 + 5380: 1406 addi r14, r14, 24 + 5382: 1494 pop r4-r7, r15 + 5384: 33ff movi r3, 255 + 5386: 644c cmphs r3, r1 + 5388: 6583 mvcv r6 + 538a: 46c3 lsli r6, r6, 3 + 538c: 0789 br 0x529e // 529e <__udivdi3+0xda> + 538e: 32ff movi r2, 255 + 5390: 6588 cmphs r2, r6 + 5392: 0ba8 bt 0x52e2 // 52e2 <__udivdi3+0x11e> + 5394: 3308 movi r3, 8 + 5396: 07a6 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5398: 1375 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 539a: 648c cmphs r3, r2 + 539c: 0ccb bf 0x5532 // 5532 <__udivdi3+0x36e> + 539e: 3310 movi r3, 16 + 53a0: 0725 br 0x51ea // 51ea <__udivdi3+0x26> + 53a2: 9800 ld.w r0, (r14, 0x0) + 53a4: 6ccb mov r3, r2 + 53a6: 6d4b mov r5, r2 + 53a8: 7040 lsl r1, r0 + 53aa: 7140 lsl r5, r0 + 53ac: 70d9 lsr r3, r6 + 53ae: 6cc4 or r3, r1 + 53b0: b8a3 st.w r5, (r14, 0xc) + 53b2: 6d53 mov r5, r4 + 53b4: 6c4f mov r1, r3 + 53b6: 7159 lsr r5, r6 + 53b8: 6cdf mov r3, r7 + 53ba: 71c0 lsl r7, r0 + 53bc: 6d5c or r5, r7 + 53be: 70d9 lsr r3, r6 + 53c0: b8a1 st.w r5, (r14, 0x4) + 53c2: 49b0 lsri r5, r1, 16 + 53c4: b822 st.w r1, (r14, 0x8) + 53c6: 75c5 zexth r7, r1 + 53c8: 6c0f mov r0, r3 + 53ca: 6c57 mov r1, r5 + 53cc: b864 st.w r3, (r14, 0x10) + 53ce: e00010a1 bsr 0x7510 // 7510 <__umodsi3> + 53d2: 9864 ld.w r3, (r14, 0x10) + 53d4: 6d83 mov r6, r0 + 53d6: 6c57 mov r1, r5 + 53d8: 6c0f mov r0, r3 + 53da: e0001077 bsr 0x74c8 // 74c8 <__udivsi3> + 53de: 6c5f mov r1, r7 + 53e0: 7c40 mult r1, r0 + 53e2: 6c87 mov r2, r1 + 53e4: 4630 lsli r1, r6, 16 + 53e6: 98c1 ld.w r6, (r14, 0x4) + 53e8: 4ed0 lsri r6, r6, 16 + 53ea: 6d84 or r6, r1 + 53ec: 6498 cmphs r6, r2 + 53ee: 6cc3 mov r3, r0 + 53f0: 0807 bt 0x53fe // 53fe <__udivdi3+0x23a> + 53f2: 5823 subi r1, r0, 1 + 53f4: 9802 ld.w r0, (r14, 0x8) + 53f6: 6180 addu r6, r0 + 53f8: 6418 cmphs r6, r0 + 53fa: 08a6 bt 0x5546 // 5546 <__udivdi3+0x382> + 53fc: 6cc7 mov r3, r1 + 53fe: 618a subu r6, r2 + 5400: 6c57 mov r1, r5 + 5402: 6c1b mov r0, r6 + 5404: b865 st.w r3, (r14, 0x14) + 5406: e0001085 bsr 0x7510 // 7510 <__umodsi3> + 540a: b804 st.w r0, (r14, 0x10) + 540c: 6c57 mov r1, r5 + 540e: 6c1b mov r0, r6 + 5410: e000105c bsr 0x74c8 // 74c8 <__udivsi3> + 5414: 9864 ld.w r3, (r14, 0x10) + 5416: 6c9f mov r2, r7 + 5418: 43f0 lsli r7, r3, 16 + 541a: d86e1002 ld.h r3, (r14, 0x4) + 541e: 744d zexth r1, r3 + 5420: 7c80 mult r2, r0 + 5422: 6dc4 or r7, r1 + 5424: 649c cmphs r7, r2 + 5426: 9865 ld.w r3, (r14, 0x14) + 5428: 0807 bt 0x5436 // 5436 <__udivdi3+0x272> + 542a: 98a2 ld.w r5, (r14, 0x8) + 542c: 61d4 addu r7, r5 + 542e: 655c cmphs r7, r5 + 5430: 5823 subi r1, r0, 1 + 5432: 0885 bt 0x553c // 553c <__udivdi3+0x378> + 5434: 6c07 mov r0, r1 + 5436: 4370 lsli r3, r3, 16 + 5438: 6c0c or r0, r3 + 543a: 74c1 zexth r3, r0 + 543c: 61ca subu r7, r2 + 543e: 9843 ld.w r2, (r14, 0xc) + 5440: 7549 zexth r5, r2 + 5442: 4830 lsri r1, r0, 16 + 5444: 4a50 lsri r2, r2, 16 + 5446: 6d8f mov r6, r3 + 5448: 7d94 mult r6, r5 + 544a: 7cc8 mult r3, r2 + 544c: 7d44 mult r5, r1 + 544e: 60d4 addu r3, r5 + 5450: 7c48 mult r1, r2 + 5452: 4e50 lsri r2, r6, 16 + 5454: 60c8 addu r3, r2 + 5456: 654c cmphs r3, r5 + 5458: 0804 bt 0x5460 // 5460 <__udivdi3+0x29c> + 545a: 3280 movi r2, 128 + 545c: 4249 lsli r2, r2, 9 + 545e: 6048 addu r1, r2 + 5460: 4b50 lsri r2, r3, 16 + 5462: 6048 addu r1, r2 + 5464: 645c cmphs r7, r1 + 5466: 0c5f bf 0x5524 // 5524 <__udivdi3+0x360> + 5468: 645e cmpne r7, r1 + 546a: 0c56 bf 0x5516 // 5516 <__udivdi3+0x352> + 546c: 3700 movi r7, 0 + 546e: 6c5f mov r1, r7 + 5470: 1406 addi r14, r14, 24 + 5472: 1494 pop r4-r7, r15 + 5474: 6d53 mov r5, r4 + 5476: 6cdf mov r3, r7 + 5478: 7145 lsr r5, r1 + 547a: 71c8 lsl r7, r2 + 547c: 7188 lsl r6, r2 + 547e: 6d5c or r5, r7 + 5480: 70c5 lsr r3, r1 + 5482: 6dd7 mov r7, r5 + 5484: b8a3 st.w r5, (r14, 0xc) + 5486: 4eb0 lsri r5, r6, 16 + 5488: 7108 lsl r4, r2 + 548a: 6c57 mov r1, r5 + 548c: 7499 zexth r2, r6 + 548e: 6c0f mov r0, r3 + 5490: b841 st.w r2, (r14, 0x4) + 5492: b880 st.w r4, (r14, 0x0) + 5494: b862 st.w r3, (r14, 0x8) + 5496: e000103d bsr 0x7510 // 7510 <__umodsi3> + 549a: 9862 ld.w r3, (r14, 0x8) + 549c: 6d03 mov r4, r0 + 549e: 6c57 mov r1, r5 + 54a0: 6c0f mov r0, r3 + 54a2: e0001013 bsr 0x74c8 // 74c8 <__udivsi3> + 54a6: 6cc3 mov r3, r0 + 54a8: 7499 zexth r2, r6 + 54aa: 7cc8 mult r3, r2 + 54ac: 4450 lsli r2, r4, 16 + 54ae: 4f90 lsri r4, r7, 16 + 54b0: 6d08 or r4, r2 + 54b2: 64d0 cmphs r4, r3 + 54b4: 6c43 mov r1, r0 + 54b6: b802 st.w r0, (r14, 0x8) + 54b8: 080b bt 0x54ce // 54ce <__udivdi3+0x30a> + 54ba: 6118 addu r4, r6 + 54bc: 6c87 mov r2, r1 + 54be: 6590 cmphs r4, r6 + 54c0: 2a00 subi r2, 1 + 54c2: 0c49 bf 0x5554 // 5554 <__udivdi3+0x390> + 54c4: 64d0 cmphs r4, r3 + 54c6: 0847 bt 0x5554 // 5554 <__udivdi3+0x390> + 54c8: 2a00 subi r2, 1 + 54ca: b842 st.w r2, (r14, 0x8) + 54cc: 6118 addu r4, r6 + 54ce: 610e subu r4, r3 + 54d0: 6c57 mov r1, r5 + 54d2: 6c13 mov r0, r4 + 54d4: e000101e bsr 0x7510 // 7510 <__umodsi3> + 54d8: 6dc3 mov r7, r0 + 54da: 6c57 mov r1, r5 + 54dc: 6c13 mov r0, r4 + 54de: e0000ff5 bsr 0x74c8 // 74c8 <__udivsi3> + 54e2: d84e1006 ld.h r2, (r14, 0xc) + 54e6: 74d9 zexth r3, r6 + 54e8: 47f0 lsli r7, r7, 16 + 54ea: 7509 zexth r4, r2 + 54ec: 7cc0 mult r3, r0 + 54ee: 6dd0 or r7, r4 + 54f0: 64dc cmphs r7, r3 + 54f2: 0809 bt 0x5504 // 5504 <__udivdi3+0x340> + 54f4: 61d8 addu r7, r6 + 54f6: 659c cmphs r7, r6 + 54f8: 5843 subi r2, r0, 1 + 54fa: 0c2b bf 0x5550 // 5550 <__udivdi3+0x38c> + 54fc: 64dc cmphs r7, r3 + 54fe: 0829 bt 0x5550 // 5550 <__udivdi3+0x38c> + 5500: 2801 subi r0, 2 + 5502: 61d8 addu r7, r6 + 5504: 5f8d subu r4, r7, r3 + 5506: 9862 ld.w r3, (r14, 0x8) + 5508: 43f0 lsli r7, r3, 16 + 550a: 6dc0 or r7, r0 + 550c: 06fa br 0x5300 // 5300 <__udivdi3+0x13c> + 550e: 6d4b mov r5, r2 + 5510: 0730 br 0x5370 // 5370 <__udivdi3+0x1ac> + 5512: 6d0f mov r4, r3 + 5514: 06b6 br 0x5280 // 5280 <__udivdi3+0xbc> + 5516: 9840 ld.w r2, (r14, 0x0) + 5518: 4370 lsli r3, r3, 16 + 551a: 7599 zexth r6, r6 + 551c: 7108 lsl r4, r2 + 551e: 60d8 addu r3, r6 + 5520: 64d0 cmphs r4, r3 + 5522: 0ba5 bt 0x546c // 546c <__udivdi3+0x2a8> + 5524: 2800 subi r0, 1 + 5526: 3700 movi r7, 0 + 5528: 07a3 br 0x546e // 546e <__udivdi3+0x2aa> + 552a: 3618 movi r6, 24 + 552c: 06b9 br 0x529e // 529e <__udivdi3+0xda> + 552e: 3318 movi r3, 24 + 5530: 06d9 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5532: 3318 movi r3, 24 + 5534: 065b br 0x51ea // 51ea <__udivdi3+0x26> + 5536: 3700 movi r7, 0 + 5538: 3001 movi r0, 1 + 553a: 0722 br 0x537e // 537e <__udivdi3+0x1ba> + 553c: 649c cmphs r7, r2 + 553e: 0b7b bt 0x5434 // 5434 <__udivdi3+0x270> + 5540: 2801 subi r0, 2 + 5542: 61d4 addu r7, r5 + 5544: 0779 br 0x5436 // 5436 <__udivdi3+0x272> + 5546: 6498 cmphs r6, r2 + 5548: 0b5a bt 0x53fc // 53fc <__udivdi3+0x238> + 554a: 2b01 subi r3, 2 + 554c: 6180 addu r6, r0 + 554e: 0758 br 0x53fe // 53fe <__udivdi3+0x23a> + 5550: 6c0b mov r0, r2 + 5552: 07d9 br 0x5504 // 5504 <__udivdi3+0x340> + 5554: b842 st.w r2, (r14, 0x8) + 5556: 07bc br 0x54ce // 54ce <__udivdi3+0x30a> + 5558: 2c01 subi r4, 2 + 555a: 60d8 addu r3, r6 + 555c: 06ec br 0x5334 // 5334 <__udivdi3+0x170> + 555e: 2d01 subi r5, 2 + 5560: 60d8 addu r3, r6 + 5562: 0672 br 0x5246 // 5246 <__udivdi3+0x82> + 5564: 0000ffff .long 0x0000ffff + 5568: 0000abb8 .long 0x0000abb8 + 556c: 00ffffff .long 0x00ffffff + +00005570 <__umoddi3>: + 5570: 14d4 push r4-r7, r15 + 5572: 1427 subi r14, r14, 28 + 5574: 6d07 mov r4, r1 + 5576: 6c4f mov r1, r3 + 5578: 6d43 mov r5, r0 + 557a: 3940 cmpnei r1, 0 + 557c: 6dcf mov r7, r3 + 557e: 6c0b mov r0, r2 + 5580: b8a0 st.w r5, (r14, 0x0) + 5582: 6cd3 mov r3, r4 + 5584: 085a bt 0x5638 // 5638 <__umoddi3+0xc8> + 5586: 6490 cmphs r4, r2 + 5588: 0877 bt 0x5676 // 5676 <__umoddi3+0x106> + 558a: 0120 lrw r1, 0xffff // 5904 <__umoddi3+0x394> + 558c: 6484 cmphs r1, r2 + 558e: 0cd2 bf 0x5732 // 5732 <__umoddi3+0x1c2> + 5590: 31ff movi r1, 255 + 5592: 6484 cmphs r1, r2 + 5594: 0802 bt 0x5598 // 5598 <__umoddi3+0x28> + 5596: 3708 movi r7, 8 + 5598: 6c43 mov r1, r0 + 559a: 705d lsr r1, r7 + 559c: 01c4 lrw r6, 0xabb8 // 5908 <__umoddi3+0x398> + 559e: 6058 addu r1, r6 + 55a0: 8120 ld.b r1, (r1, 0x0) + 55a2: 61c4 addu r7, r1 + 55a4: 3120 movi r1, 32 + 55a6: 605e subu r1, r7 + 55a8: 3940 cmpnei r1, 0 + 55aa: b821 st.w r1, (r14, 0x4) + 55ac: 0c09 bf 0x55be // 55be <__umoddi3+0x4e> + 55ae: 6cd7 mov r3, r5 + 55b0: 6c83 mov r2, r0 + 55b2: 7104 lsl r4, r1 + 55b4: 70dd lsr r3, r7 + 55b6: 7144 lsl r5, r1 + 55b8: 7084 lsl r2, r1 + 55ba: 6cd0 or r3, r4 + 55bc: b8a0 st.w r5, (r14, 0x0) + 55be: 4a90 lsri r4, r2, 16 + 55c0: 6c53 mov r1, r4 + 55c2: 6c0f mov r0, r3 + 55c4: 75c9 zexth r7, r2 + 55c6: b843 st.w r2, (r14, 0xc) + 55c8: b862 st.w r3, (r14, 0x8) + 55ca: e0000fa3 bsr 0x7510 // 7510 <__umodsi3> + 55ce: 9862 ld.w r3, (r14, 0x8) + 55d0: 6d43 mov r5, r0 + 55d2: 6c53 mov r1, r4 + 55d4: 6c0f mov r0, r3 + 55d6: e0000f79 bsr 0x74c8 // 74c8 <__udivsi3> + 55da: 9840 ld.w r2, (r14, 0x0) + 55dc: 4570 lsli r3, r5, 16 + 55de: 4ab0 lsri r5, r2, 16 + 55e0: 7c1c mult r0, r7 + 55e2: 6cd4 or r3, r5 + 55e4: 640c cmphs r3, r0 + 55e6: 9843 ld.w r2, (r14, 0xc) + 55e8: 0806 bt 0x55f4 // 55f4 <__umoddi3+0x84> + 55ea: 60c8 addu r3, r2 + 55ec: 648c cmphs r3, r2 + 55ee: 0c03 bf 0x55f4 // 55f4 <__umoddi3+0x84> + 55f0: 640c cmphs r3, r0 + 55f2: 0d7d bf 0x58ec // 58ec <__umoddi3+0x37c> + 55f4: 60c2 subu r3, r0 + 55f6: 6c53 mov r1, r4 + 55f8: 6c0f mov r0, r3 + 55fa: b843 st.w r2, (r14, 0xc) + 55fc: b862 st.w r3, (r14, 0x8) + 55fe: e0000f89 bsr 0x7510 // 7510 <__umodsi3> + 5602: 9862 ld.w r3, (r14, 0x8) + 5604: 6d43 mov r5, r0 + 5606: 6c53 mov r1, r4 + 5608: 6c0f mov r0, r3 + 560a: e0000f5f bsr 0x74c8 // 74c8 <__udivsi3> + 560e: d86e1000 ld.h r3, (r14, 0x0) + 5612: 7dc0 mult r7, r0 + 5614: 45b0 lsli r5, r5, 16 + 5616: 740d zexth r0, r3 + 5618: 6d40 or r5, r0 + 561a: 65d4 cmphs r5, r7 + 561c: 0807 bt 0x562a // 562a <__umoddi3+0xba> + 561e: 9843 ld.w r2, (r14, 0xc) + 5620: 6148 addu r5, r2 + 5622: 6494 cmphs r5, r2 + 5624: 0c03 bf 0x562a // 562a <__umoddi3+0xba> + 5626: 65d4 cmphs r5, r7 + 5628: 0d5e bf 0x58e4 // 58e4 <__umoddi3+0x374> + 562a: 615e subu r5, r7 + 562c: 6c17 mov r0, r5 + 562e: 9861 ld.w r3, (r14, 0x4) + 5630: 700d lsr r0, r3 + 5632: 3100 movi r1, 0 + 5634: 1407 addi r14, r14, 28 + 5636: 1494 pop r4-r7, r15 + 5638: 6450 cmphs r4, r1 + 563a: 0c6e bf 0x5716 // 5716 <__umoddi3+0x1a6> + 563c: 024d lrw r2, 0xffff // 5904 <__umoddi3+0x394> + 563e: 6448 cmphs r2, r1 + 5640: 086f bt 0x571e // 571e <__umoddi3+0x1ae> + 5642: 024c lrw r2, 0xffffff // 590c <__umoddi3+0x39c> + 5644: 6448 cmphs r2, r1 + 5646: 0d3f bf 0x58c4 // 58c4 <__umoddi3+0x354> + 5648: 3610 movi r6, 16 + 564a: 6c87 mov r2, r1 + 564c: 7099 lsr r2, r6 + 564e: 02f0 lrw r7, 0xabb8 // 5908 <__umoddi3+0x398> + 5650: 609c addu r2, r7 + 5652: 8240 ld.b r2, (r2, 0x0) + 5654: 6188 addu r6, r2 + 5656: 3720 movi r7, 32 + 5658: 61da subu r7, r6 + 565a: 3f40 cmpnei r7, 0 + 565c: 0870 bt 0x573c // 573c <__umoddi3+0x1cc> + 565e: 6504 cmphs r1, r4 + 5660: 0c03 bf 0x5666 // 5666 <__umoddi3+0xf6> + 5662: 6414 cmphs r5, r0 + 5664: 0d46 bf 0x58f0 // 58f0 <__umoddi3+0x380> + 5666: 5d01 subu r0, r5, r0 + 5668: 6414 cmphs r5, r0 + 566a: 6106 subu r4, r1 + 566c: 6483 mvcv r2 + 566e: 5c69 subu r3, r4, r2 + 5670: 6c4f mov r1, r3 + 5672: 1407 addi r14, r14, 28 + 5674: 1494 pop r4-r7, r15 + 5676: 3a40 cmpnei r2, 0 + 5678: 0806 bt 0x5684 // 5684 <__umoddi3+0x114> + 567a: 3100 movi r1, 0 + 567c: 3001 movi r0, 1 + 567e: e0000f25 bsr 0x74c8 // 74c8 <__udivsi3> + 5682: 6c83 mov r2, r0 + 5684: 027f lrw r3, 0xffff // 5904 <__umoddi3+0x394> + 5686: 648c cmphs r3, r2 + 5688: 0850 bt 0x5728 // 5728 <__umoddi3+0x1b8> + 568a: 027e lrw r3, 0xffffff // 590c <__umoddi3+0x39c> + 568c: 648c cmphs r3, r2 + 568e: 0d1d bf 0x58c8 // 58c8 <__umoddi3+0x358> + 5690: 3710 movi r7, 16 + 5692: 6ccb mov r3, r2 + 5694: 70dd lsr r3, r7 + 5696: 0322 lrw r1, 0xabb8 // 5908 <__umoddi3+0x398> + 5698: 60c4 addu r3, r1 + 569a: 8360 ld.b r3, (r3, 0x0) + 569c: 61cc addu r7, r3 + 569e: 3320 movi r3, 32 + 56a0: 60de subu r3, r7 + 56a2: 3b40 cmpnei r3, 0 + 56a4: b861 st.w r3, (r14, 0x4) + 56a6: 08c2 bt 0x582a // 582a <__umoddi3+0x2ba> + 56a8: 74c9 zexth r3, r2 + 56aa: 610a subu r4, r2 + 56ac: 4af0 lsri r7, r2, 16 + 56ae: 6d8f mov r6, r3 + 56b0: 6c5f mov r1, r7 + 56b2: 6c13 mov r0, r4 + 56b4: b842 st.w r2, (r14, 0x8) + 56b6: e0000f2d bsr 0x7510 // 7510 <__umodsi3> + 56ba: 6d43 mov r5, r0 + 56bc: 6c5f mov r1, r7 + 56be: 6c13 mov r0, r4 + 56c0: e0000f04 bsr 0x74c8 // 74c8 <__udivsi3> + 56c4: 9860 ld.w r3, (r14, 0x0) + 56c6: 4590 lsli r4, r5, 16 + 56c8: 4bb0 lsri r5, r3, 16 + 56ca: 7c18 mult r0, r6 + 56cc: 6d14 or r4, r5 + 56ce: 6410 cmphs r4, r0 + 56d0: 9842 ld.w r2, (r14, 0x8) + 56d2: 0806 bt 0x56de // 56de <__umoddi3+0x16e> + 56d4: 6108 addu r4, r2 + 56d6: 6490 cmphs r4, r2 + 56d8: 0c03 bf 0x56de // 56de <__umoddi3+0x16e> + 56da: 6410 cmphs r4, r0 + 56dc: 0d06 bf 0x58e8 // 58e8 <__umoddi3+0x378> + 56de: 6102 subu r4, r0 + 56e0: 6c5f mov r1, r7 + 56e2: 6c13 mov r0, r4 + 56e4: b842 st.w r2, (r14, 0x8) + 56e6: e0000f15 bsr 0x7510 // 7510 <__umodsi3> + 56ea: 6d43 mov r5, r0 + 56ec: 6c5f mov r1, r7 + 56ee: 6c13 mov r0, r4 + 56f0: e0000eec bsr 0x74c8 // 74c8 <__udivsi3> + 56f4: d86e1000 ld.h r3, (r14, 0x0) + 56f8: 7c18 mult r0, r6 + 56fa: 45b0 lsli r5, r5, 16 + 56fc: 758d zexth r6, r3 + 56fe: 6d58 or r5, r6 + 5700: 6414 cmphs r5, r0 + 5702: 0808 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5704: 9842 ld.w r2, (r14, 0x8) + 5706: 6148 addu r5, r2 + 5708: 6494 cmphs r5, r2 + 570a: 0c04 bf 0x5712 // 5712 <__umoddi3+0x1a2> + 570c: 6414 cmphs r5, r0 + 570e: 0802 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5710: 6148 addu r5, r2 + 5712: 6142 subu r5, r0 + 5714: 078c br 0x562c // 562c <__umoddi3+0xbc> + 5716: 6c17 mov r0, r5 + 5718: 6c53 mov r1, r4 + 571a: 1407 addi r14, r14, 28 + 571c: 1494 pop r4-r7, r15 + 571e: 32ff movi r2, 255 + 5720: 6448 cmphs r2, r1 + 5722: 6583 mvcv r6 + 5724: 46c3 lsli r6, r6, 3 + 5726: 0792 br 0x564a // 564a <__umoddi3+0xda> + 5728: 33ff movi r3, 255 + 572a: 648c cmphs r3, r2 + 572c: 0bb3 bt 0x5692 // 5692 <__umoddi3+0x122> + 572e: 3708 movi r7, 8 + 5730: 07b1 br 0x5692 // 5692 <__umoddi3+0x122> + 5732: 1337 lrw r1, 0xffffff // 590c <__umoddi3+0x39c> + 5734: 6484 cmphs r1, r2 + 5736: 0ccb bf 0x58cc // 58cc <__umoddi3+0x35c> + 5738: 3710 movi r7, 16 + 573a: 072f br 0x5598 // 5598 <__umoddi3+0x28> + 573c: 6cc3 mov r3, r0 + 573e: 705c lsl r1, r7 + 5740: 70d9 lsr r3, r6 + 5742: 6cc4 or r3, r1 + 5744: 6c57 mov r1, r5 + 5746: 6c93 mov r2, r4 + 5748: 7059 lsr r1, r6 + 574a: 711c lsl r4, r7 + 574c: 7099 lsr r2, r6 + 574e: 6c50 or r1, r4 + 5750: 701c lsl r0, r7 + 5752: 4b90 lsri r4, r3, 16 + 5754: 715c lsl r5, r7 + 5756: b803 st.w r0, (r14, 0xc) + 5758: b820 st.w r1, (r14, 0x0) + 575a: b8a4 st.w r5, (r14, 0x10) + 575c: 6c53 mov r1, r4 + 575e: 754d zexth r5, r3 + 5760: 6c0b mov r0, r2 + 5762: b862 st.w r3, (r14, 0x8) + 5764: b8a1 st.w r5, (r14, 0x4) + 5766: b846 st.w r2, (r14, 0x18) + 5768: e0000ed4 bsr 0x7510 // 7510 <__umodsi3> + 576c: 9846 ld.w r2, (r14, 0x18) + 576e: b805 st.w r0, (r14, 0x14) + 5770: 6c53 mov r1, r4 + 5772: 6c0b mov r0, r2 + 5774: e0000eaa bsr 0x74c8 // 74c8 <__udivsi3> + 5778: 9841 ld.w r2, (r14, 0x4) + 577a: 7c80 mult r2, r0 + 577c: 9865 ld.w r3, (r14, 0x14) + 577e: 6d43 mov r5, r0 + 5780: 9800 ld.w r0, (r14, 0x0) + 5782: 4330 lsli r1, r3, 16 + 5784: 4870 lsri r3, r0, 16 + 5786: 6cc4 or r3, r1 + 5788: 648c cmphs r3, r2 + 578a: 0807 bt 0x5798 // 5798 <__umoddi3+0x228> + 578c: 9802 ld.w r0, (r14, 0x8) + 578e: 60c0 addu r3, r0 + 5790: 640c cmphs r3, r0 + 5792: 5d23 subi r1, r5, 1 + 5794: 08a3 bt 0x58da // 58da <__umoddi3+0x36a> + 5796: 6d47 mov r5, r1 + 5798: 60ca subu r3, r2 + 579a: 6c53 mov r1, r4 + 579c: 6c0f mov r0, r3 + 579e: b866 st.w r3, (r14, 0x18) + 57a0: e0000eb8 bsr 0x7510 // 7510 <__umodsi3> + 57a4: 9866 ld.w r3, (r14, 0x18) + 57a6: 6c53 mov r1, r4 + 57a8: b805 st.w r0, (r14, 0x14) + 57aa: 6c0f mov r0, r3 + 57ac: e0000e8e bsr 0x74c8 // 74c8 <__udivsi3> + 57b0: 9845 ld.w r2, (r14, 0x14) + 57b2: d86e1000 ld.h r3, (r14, 0x0) + 57b6: 9821 ld.w r1, (r14, 0x4) + 57b8: 4250 lsli r2, r2, 16 + 57ba: 750d zexth r4, r3 + 57bc: 7c40 mult r1, r0 + 57be: 6c90 or r2, r4 + 57c0: 6448 cmphs r2, r1 + 57c2: 0807 bt 0x57d0 // 57d0 <__umoddi3+0x260> + 57c4: 9882 ld.w r4, (r14, 0x8) + 57c6: 6090 addu r2, r4 + 57c8: 6508 cmphs r2, r4 + 57ca: 5863 subi r3, r0, 1 + 57cc: 0882 bt 0x58d0 // 58d0 <__umoddi3+0x360> + 57ce: 6c0f mov r0, r3 + 57d0: 45b0 lsli r5, r5, 16 + 57d2: 6d40 or r5, r0 + 57d4: 74d5 zexth r3, r5 + 57d6: 9803 ld.w r0, (r14, 0xc) + 57d8: 4db0 lsri r5, r5, 16 + 57da: 6d0f mov r4, r3 + 57dc: 6086 subu r2, r1 + 57de: 7441 zexth r1, r0 + 57e0: 4810 lsri r0, r0, 16 + 57e2: 7d04 mult r4, r1 + 57e4: 7cc0 mult r3, r0 + 57e6: 7c54 mult r1, r5 + 57e8: 60c4 addu r3, r1 + 57ea: 7d40 mult r5, r0 + 57ec: 4c10 lsri r0, r4, 16 + 57ee: 60c0 addu r3, r0 + 57f0: 644c cmphs r3, r1 + 57f2: 0804 bt 0x57fa // 57fa <__umoddi3+0x28a> + 57f4: 3180 movi r1, 128 + 57f6: 4129 lsli r1, r1, 9 + 57f8: 6144 addu r5, r1 + 57fa: 4b30 lsri r1, r3, 16 + 57fc: 6144 addu r5, r1 + 57fe: 4370 lsli r3, r3, 16 + 5800: 7511 zexth r4, r4 + 5802: 6548 cmphs r2, r5 + 5804: 60d0 addu r3, r4 + 5806: 0c56 bf 0x58b2 // 58b2 <__umoddi3+0x342> + 5808: 654a cmpne r2, r5 + 580a: 0c76 bf 0x58f6 // 58f6 <__umoddi3+0x386> + 580c: 5a35 subu r1, r2, r5 + 580e: 6c0f mov r0, r3 + 5810: 9864 ld.w r3, (r14, 0x10) + 5812: 5b01 subu r0, r3, r0 + 5814: 640c cmphs r3, r0 + 5816: 64c3 mvcv r3 + 5818: 598d subu r4, r1, r3 + 581a: 6d53 mov r5, r4 + 581c: 7158 lsl r5, r6 + 581e: 701d lsr r0, r7 + 5820: 6c53 mov r1, r4 + 5822: 6c14 or r0, r5 + 5824: 705d lsr r1, r7 + 5826: 1407 addi r14, r14, 28 + 5828: 1494 pop r4-r7, r15 + 582a: 9801 ld.w r0, (r14, 0x4) + 582c: 6c57 mov r1, r5 + 582e: 6cd3 mov r3, r4 + 5830: 705d lsr r1, r7 + 5832: 7100 lsl r4, r0 + 5834: 7080 lsl r2, r0 + 5836: 6c50 or r1, r4 + 5838: 70dd lsr r3, r7 + 583a: 6d07 mov r4, r1 + 583c: 4af0 lsri r7, r2, 16 + 583e: b822 st.w r1, (r14, 0x8) + 5840: 7449 zexth r1, r2 + 5842: 7140 lsl r5, r0 + 5844: 6d87 mov r6, r1 + 5846: 6c0f mov r0, r3 + 5848: 6c5f mov r1, r7 + 584a: b844 st.w r2, (r14, 0x10) + 584c: b8a0 st.w r5, (r14, 0x0) + 584e: b863 st.w r3, (r14, 0xc) + 5850: e0000e60 bsr 0x7510 // 7510 <__umodsi3> + 5854: 9863 ld.w r3, (r14, 0xc) + 5856: 6d43 mov r5, r0 + 5858: 6c5f mov r1, r7 + 585a: 6c0f mov r0, r3 + 585c: e0000e36 bsr 0x74c8 // 74c8 <__udivsi3> + 5860: 45b0 lsli r5, r5, 16 + 5862: 4c70 lsri r3, r4, 16 + 5864: 7c18 mult r0, r6 + 5866: 6d4c or r5, r3 + 5868: 6414 cmphs r5, r0 + 586a: 9844 ld.w r2, (r14, 0x10) + 586c: 0807 bt 0x587a // 587a <__umoddi3+0x30a> + 586e: 6148 addu r5, r2 + 5870: 6494 cmphs r5, r2 + 5872: 0c04 bf 0x587a // 587a <__umoddi3+0x30a> + 5874: 6414 cmphs r5, r0 + 5876: 0802 bt 0x587a // 587a <__umoddi3+0x30a> + 5878: 6148 addu r5, r2 + 587a: 6142 subu r5, r0 + 587c: 6c5f mov r1, r7 + 587e: 6c17 mov r0, r5 + 5880: b843 st.w r2, (r14, 0xc) + 5882: e0000e47 bsr 0x7510 // 7510 <__umodsi3> + 5886: 6d03 mov r4, r0 + 5888: 6c5f mov r1, r7 + 588a: 6c17 mov r0, r5 + 588c: e0000e1e bsr 0x74c8 // 74c8 <__udivsi3> + 5890: d86e1004 ld.h r3, (r14, 0x8) + 5894: 4490 lsli r4, r4, 16 + 5896: 744d zexth r1, r3 + 5898: 7c18 mult r0, r6 + 589a: 6d04 or r4, r1 + 589c: 6410 cmphs r4, r0 + 589e: 9843 ld.w r2, (r14, 0xc) + 58a0: 0807 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58a2: 6108 addu r4, r2 + 58a4: 6490 cmphs r4, r2 + 58a6: 0c04 bf 0x58ae // 58ae <__umoddi3+0x33e> + 58a8: 6410 cmphs r4, r0 + 58aa: 0802 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58ac: 6108 addu r4, r2 + 58ae: 6102 subu r4, r0 + 58b0: 0700 br 0x56b0 // 56b0 <__umoddi3+0x140> + 58b2: 9823 ld.w r1, (r14, 0xc) + 58b4: 5b05 subu r0, r3, r1 + 58b6: 640c cmphs r3, r0 + 58b8: 9822 ld.w r1, (r14, 0x8) + 58ba: 6146 subu r5, r1 + 58bc: 64c3 mvcv r3 + 58be: 614e subu r5, r3 + 58c0: 5a35 subu r1, r2, r5 + 58c2: 07a7 br 0x5810 // 5810 <__umoddi3+0x2a0> + 58c4: 3618 movi r6, 24 + 58c6: 06c2 br 0x564a // 564a <__umoddi3+0xda> + 58c8: 3718 movi r7, 24 + 58ca: 06e4 br 0x5692 // 5692 <__umoddi3+0x122> + 58cc: 3718 movi r7, 24 + 58ce: 0665 br 0x5598 // 5598 <__umoddi3+0x28> + 58d0: 6448 cmphs r2, r1 + 58d2: 0b7e bt 0x57ce // 57ce <__umoddi3+0x25e> + 58d4: 2801 subi r0, 2 + 58d6: 6090 addu r2, r4 + 58d8: 077c br 0x57d0 // 57d0 <__umoddi3+0x260> + 58da: 648c cmphs r3, r2 + 58dc: 0b5d bt 0x5796 // 5796 <__umoddi3+0x226> + 58de: 2d01 subi r5, 2 + 58e0: 60c0 addu r3, r0 + 58e2: 075b br 0x5798 // 5798 <__umoddi3+0x228> + 58e4: 6148 addu r5, r2 + 58e6: 06a2 br 0x562a // 562a <__umoddi3+0xba> + 58e8: 6108 addu r4, r2 + 58ea: 06fa br 0x56de // 56de <__umoddi3+0x16e> + 58ec: 60c8 addu r3, r2 + 58ee: 0683 br 0x55f4 // 55f4 <__umoddi3+0x84> + 58f0: 6c17 mov r0, r5 + 58f2: 6c4f mov r1, r3 + 58f4: 06bf br 0x5672 // 5672 <__umoddi3+0x102> + 58f6: 9824 ld.w r1, (r14, 0x10) + 58f8: 64c4 cmphs r1, r3 + 58fa: 0fdc bf 0x58b2 // 58b2 <__umoddi3+0x342> + 58fc: 6c0f mov r0, r3 + 58fe: 3100 movi r1, 0 + 5900: 0788 br 0x5810 // 5810 <__umoddi3+0x2a0> + 5902: 0000 bkpt + 5904: 0000ffff .long 0x0000ffff + 5908: 0000abb8 .long 0x0000abb8 + 590c: 00ffffff .long 0x00ffffff + +00005910 : + 5910: 14c2 push r4-r5 + 5912: 3300 movi r3, 0 + 5914: 644d cmplt r3, r1 + 5916: 0803 bt 0x591c // 591c + 5918: 6c0f mov r0, r3 + 591a: 1482 pop r4-r5 + 591c: 5aac addu r5, r2, r3 + 591e: 588c addu r4, r0, r3 + 5920: 2300 addi r3, 1 + 5922: 85a0 ld.b r5, (r5, 0x0) + 5924: 3b43 cmpnei r3, 3 + 5926: a4a0 st.b r5, (r4, 0x0) + 5928: 0bf6 bt 0x5914 // 5914 + 592a: 3923 cmplti r1, 4 + 592c: 0bf6 bt 0x5918 // 5918 + 592e: 3300 movi r3, 0 + 5930: a063 st.b r3, (r0, 0x3) + 5932: 3304 movi r3, 4 + 5934: 07f2 br 0x5918 // 5918 + +00005936 <__GI___dtostr>: + 5936: 14d4 push r4-r7, r15 + 5938: 142c subi r14, r14, 48 + 593a: 6d8f mov r6, r3 + 593c: 9871 ld.w r3, (r14, 0x44) + 593e: b80a st.w r0, (r14, 0x28) + 5940: b824 st.w r1, (r14, 0x10) + 5942: b842 st.w r2, (r14, 0x8) + 5944: b86b st.w r3, (r14, 0x2c) + 5946: 98f2 ld.w r7, (r14, 0x48) + 5948: e0000244 bsr 0x5dd0 // 5dd0 <__isinf> + 594c: 3840 cmpnei r0, 0 + 594e: 0c0a bf 0x5962 // 5962 <__GI___dtostr+0x2c> + 5950: 0244 lrw r2, 0xbac5 // 5c3c <__GI___dtostr+0x306> + 5952: 6c5b mov r1, r6 + 5954: 9802 ld.w r0, (r14, 0x8) + 5956: e3ffffdd bsr 0x5910 // 5910 + 595a: b809 st.w r0, (r14, 0x24) + 595c: 9809 ld.w r0, (r14, 0x24) + 595e: 140c addi r14, r14, 48 + 5960: 1494 pop r4-r7, r15 + 5962: 980a ld.w r0, (r14, 0x28) + 5964: 9824 ld.w r1, (r14, 0x10) + 5966: e0000185 bsr 0x5c70 // 5c70 <__isnan> + 596a: 3840 cmpnei r0, 0 + 596c: b809 st.w r0, (r14, 0x24) + 596e: 0c03 bf 0x5974 // 5974 <__GI___dtostr+0x3e> + 5970: 024b lrw r2, 0xbac9 // 5c40 <__GI___dtostr+0x30a> + 5972: 07f0 br 0x5952 // 5952 <__GI___dtostr+0x1c> + 5974: 3200 movi r2, 0 + 5976: 3300 movi r3, 0 + 5978: 980a ld.w r0, (r14, 0x28) + 597a: 9824 ld.w r1, (r14, 0x10) + 597c: e0000242 bsr 0x5e00 // 5e00 <__eqdf2> + 5980: 3840 cmpnei r0, 0 + 5982: 082d bt 0x59dc // 59dc <__GI___dtostr+0xa6> + 5984: 3f40 cmpnei r7, 0 + 5986: 0d57 bf 0x5c34 // 5c34 <__GI___dtostr+0x2fe> + 5988: 5fa6 addi r5, r7, 2 + 598a: 6558 cmphs r6, r5 + 598c: 0d56 bf 0x5c38 // 5c38 <__GI___dtostr+0x302> + 598e: 3d40 cmpnei r5, 0 + 5990: 0c0b bf 0x59a6 // 59a6 <__GI___dtostr+0x70> + 5992: 9824 ld.w r1, (r14, 0x10) + 5994: 39df btsti r1, 31 + 5996: 0c1a bf 0x59ca // 59ca <__GI___dtostr+0x94> + 5998: 9802 ld.w r0, (r14, 0x8) + 599a: 322d movi r2, 45 + 599c: a040 st.b r2, (r0, 0x0) + 599e: 5d02 addi r0, r5, 1 + 59a0: 3501 movi r5, 1 + 59a2: 6414 cmphs r5, r0 + 59a4: 0c16 bf 0x59d0 // 59d0 <__GI___dtostr+0x9a> + 59a6: 9882 ld.w r4, (r14, 0x8) + 59a8: 8420 ld.b r1, (r4, 0x0) + 59aa: 3330 movi r3, 48 + 59ac: 64c6 cmpne r1, r3 + 59ae: 3000 movi r0, 0 + 59b0: 6001 addc r0, r0 + 59b2: 9842 ld.w r2, (r14, 0x8) + 59b4: 9822 ld.w r1, (r14, 0x8) + 59b6: 6008 addu r0, r2 + 59b8: 342e movi r4, 46 + 59ba: 6054 addu r1, r5 + 59bc: 3300 movi r3, 0 + 59be: a081 st.b r4, (r0, 0x1) + 59c0: b8a9 st.w r5, (r14, 0x24) + 59c2: a160 st.b r3, (r1, 0x0) + 59c4: 07cc br 0x595c // 595c <__GI___dtostr+0x26> + 59c6: 3501 movi r5, 1 + 59c8: 07e5 br 0x5992 // 5992 <__GI___dtostr+0x5c> + 59ca: 6c17 mov r0, r5 + 59cc: 3500 movi r5, 0 + 59ce: 07ea br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59d0: 9842 ld.w r2, (r14, 0x8) + 59d2: 6094 addu r2, r5 + 59d4: 3430 movi r4, 48 + 59d6: a280 st.b r4, (r2, 0x0) + 59d8: 2500 addi r5, 1 + 59da: 07e4 br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59dc: 3200 movi r2, 0 + 59de: 3300 movi r3, 0 + 59e0: 980a ld.w r0, (r14, 0x28) + 59e2: 9824 ld.w r1, (r14, 0x10) + 59e4: e000022c bsr 0x5e3c // 5e3c <__ltdf2> + 59e8: 38df btsti r0, 31 + 59ea: 0c8e bf 0x5b06 // 5b06 <__GI___dtostr+0x1d0> + 59ec: 3180 movi r1, 128 + 59ee: 98a2 ld.w r5, (r14, 0x8) + 59f0: 9884 ld.w r4, (r14, 0x10) + 59f2: 4158 lsli r2, r1, 24 + 59f4: 332d movi r3, 45 + 59f6: a560 st.b r3, (r5, 0x0) + 59f8: 6108 addu r4, r2 + 59fa: 2e00 subi r6, 1 + 59fc: 2500 addi r5, 1 + 59fe: 3000 movi r0, 0 + 5a00: 032e lrw r1, 0x3fe00000 // 5c44 <__GI___dtostr+0x30e> + 5a02: 3300 movi r3, 0 + 5a04: b865 st.w r3, (r14, 0x14) + 5a06: 9845 ld.w r2, (r14, 0x14) + 5a08: 65ca cmpne r2, r7 + 5a0a: 0881 bt 0x5b0c // 5b0c <__GI___dtostr+0x1d6> + 5a0c: 6c83 mov r2, r0 + 5a0e: 6cc7 mov r3, r1 + 5a10: 980a ld.w r0, (r14, 0x28) + 5a12: 6c53 mov r1, r4 + 5a14: e3fff190 bsr 0x3d34 // 3d34 <__adddf3> + 5a18: 3200 movi r2, 0 + 5a1a: 0373 lrw r3, 0x3ff00000 // 5c48 <__GI___dtostr+0x312> + 5a1c: b806 st.w r0, (r14, 0x18) + 5a1e: b827 st.w r1, (r14, 0x1c) + 5a20: e000020e bsr 0x5e3c // 5e3c <__ltdf2> + 5a24: 38df btsti r0, 31 + 5a26: 0c05 bf 0x5a30 // 5a30 <__GI___dtostr+0xfa> + 5a28: 3430 movi r4, 48 + 5a2a: a580 st.b r4, (r5, 0x0) + 5a2c: 2e00 subi r6, 1 + 5a2e: 2500 addi r5, 1 + 5a30: 9804 ld.w r0, (r14, 0x10) + 5a32: 4021 lsli r1, r0, 1 + 5a34: 0379 lrw r3, 0xfffffc01 // 5c4c <__GI___dtostr+0x316> + 5a36: 4915 lsri r0, r1, 21 + 5a38: 600c addu r0, r3 + 5a3a: e3fff3cf bsr 0x41d8 // 41d8 <__floatsidf> + 5a3e: 035a lrw r2, 0x509f79ff // 5c50 <__GI___dtostr+0x31a> + 5a40: 037a lrw r3, 0x3fd34413 // 5c54 <__GI___dtostr+0x31e> + 5a42: e3fff1ad bsr 0x3d9c // 3d9c <__muldf3> + 5a46: e3fff401 bsr 0x4248 // 4248 <__fixdfsi> + 5a4a: 5842 addi r2, r0, 1 + 5a4c: 3a20 cmplti r2, 1 + 5a4e: b848 st.w r2, (r14, 0x20) + 5a50: 08e7 bt 0x5c1e // 5c1e <__GI___dtostr+0x2e8> + 5a52: 033d lrw r1, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5a54: 6dcb mov r7, r2 + 5a56: 3400 movi r4, 0 + 5a58: b823 st.w r1, (r14, 0xc) + 5a5a: 3f0a cmphsi r7, 11 + 5a5c: 085f bt 0x5b1a // 5b1a <__GI___dtostr+0x1e4> + 5a5e: 3f41 cmpnei r7, 1 + 5a60: 0868 bt 0x5b30 // 5b30 <__GI___dtostr+0x1fa> + 5a62: 135f lrw r2, 0xcccccccd // 5c5c <__GI___dtostr+0x326> + 5a64: 137f lrw r3, 0x3feccccc // 5c60 <__GI___dtostr+0x32a> + 5a66: 6c13 mov r0, r4 + 5a68: 9823 ld.w r1, (r14, 0xc) + 5a6a: e3fff35d bsr 0x4124 // 4124 <__gtdf2> + 5a6e: 3820 cmplti r0, 1 + 5a70: 0c6a bf 0x5b44 // 5b44 <__GI___dtostr+0x20e> + 5a72: 9862 ld.w r3, (r14, 0x8) + 5a74: 64d6 cmpne r5, r3 + 5a76: 0807 bt 0x5a84 // 5a84 <__GI___dtostr+0x14e> + 5a78: 3e40 cmpnei r6, 0 + 5a7a: 0f71 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a7c: 3230 movi r2, 48 + 5a7e: a540 st.b r2, (r5, 0x0) + 5a80: 2e00 subi r6, 1 + 5a82: 2500 addi r5, 1 + 5a84: 9805 ld.w r0, (r14, 0x14) + 5a86: 3840 cmpnei r0, 0 + 5a88: 08cf bt 0x5c26 // 5c26 <__GI___dtostr+0x2f0> + 5a8a: 9822 ld.w r1, (r14, 0x8) + 5a8c: 5d65 subu r3, r5, r1 + 5a8e: 2300 addi r3, 1 + 5a90: 984b ld.w r2, (r14, 0x2c) + 5a92: 648c cmphs r3, r2 + 5a94: 08a5 bt 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5a96: 3e40 cmpnei r6, 0 + 5a98: 0f62 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a9a: 372e movi r7, 46 + 5a9c: a5e0 st.b r7, (r5, 0x0) + 5a9e: 980b ld.w r0, (r14, 0x2c) + 5aa0: 5de2 addi r7, r5, 1 + 5aa2: 9822 ld.w r1, (r14, 0x8) + 5aa4: 2000 addi r0, 1 + 5aa6: 5f65 subu r3, r7, r1 + 5aa8: 584d subu r2, r0, r3 + 5aaa: 2e00 subi r6, 1 + 5aac: b845 st.w r2, (r14, 0x14) + 5aae: 9805 ld.w r0, (r14, 0x14) + 5ab0: 6418 cmphs r6, r0 + 5ab2: 0f55 bf 0x595c // 595c <__GI___dtostr+0x26> + 5ab4: 6d43 mov r5, r0 + 5ab6: 615c addu r5, r7 + 5ab8: 36ff movi r6, 255 + 5aba: 655e cmpne r7, r5 + 5abc: 0c91 bf 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5abe: 6c93 mov r2, r4 + 5ac0: 9863 ld.w r3, (r14, 0xc) + 5ac2: 9806 ld.w r0, (r14, 0x18) + 5ac4: 9827 ld.w r1, (r14, 0x1c) + 5ac6: e3fff285 bsr 0x3fd0 // 3fd0 <__divdf3> + 5aca: e3fff3bf bsr 0x4248 // 4248 <__fixdfsi> + 5ace: 3130 movi r1, 48 + 5ad0: 6040 addu r1, r0 + 5ad2: a720 st.b r1, (r7, 0x0) + 5ad4: 6818 and r0, r6 + 5ad6: e3fff381 bsr 0x41d8 // 41d8 <__floatsidf> + 5ada: 6c93 mov r2, r4 + 5adc: 9863 ld.w r3, (r14, 0xc) + 5ade: e3fff15f bsr 0x3d9c // 3d9c <__muldf3> + 5ae2: 6c83 mov r2, r0 + 5ae4: 6cc7 mov r3, r1 + 5ae6: 9806 ld.w r0, (r14, 0x18) + 5ae8: 9827 ld.w r1, (r14, 0x1c) + 5aea: e3fff13d bsr 0x3d64 // 3d64 <__subdf3> + 5aee: b806 st.w r0, (r14, 0x18) + 5af0: b827 st.w r1, (r14, 0x1c) + 5af2: 6c13 mov r0, r4 + 5af4: 9823 ld.w r1, (r14, 0xc) + 5af6: 3200 movi r2, 0 + 5af8: 1278 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5afa: e3fff26b bsr 0x3fd0 // 3fd0 <__divdf3> + 5afe: 2700 addi r7, 1 + 5b00: 6d03 mov r4, r0 + 5b02: b823 st.w r1, (r14, 0xc) + 5b04: 07db br 0x5aba // 5aba <__GI___dtostr+0x184> + 5b06: 98a2 ld.w r5, (r14, 0x8) + 5b08: 9884 ld.w r4, (r14, 0x10) + 5b0a: 077a br 0x59fe // 59fe <__GI___dtostr+0xc8> + 5b0c: 1276 lrw r3, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5b0e: 1257 lrw r2, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5b10: e3fff146 bsr 0x3d9c // 3d9c <__muldf3> + 5b14: 9865 ld.w r3, (r14, 0x14) + 5b16: 2300 addi r3, 1 + 5b18: 0776 br 0x5a04 // 5a04 <__GI___dtostr+0xce> + 5b1a: 3080 movi r0, 128 + 5b1c: 4056 lsli r2, r0, 22 + 5b1e: 9823 ld.w r1, (r14, 0xc) + 5b20: 6c13 mov r0, r4 + 5b22: 1273 lrw r3, 0x4202a05f // 5c6c <__GI___dtostr+0x336> + 5b24: e3fff13c bsr 0x3d9c // 3d9c <__muldf3> + 5b28: 6d03 mov r4, r0 + 5b2a: b823 st.w r1, (r14, 0xc) + 5b2c: 2f09 subi r7, 10 + 5b2e: 0796 br 0x5a5a // 5a5a <__GI___dtostr+0x124> + 5b30: 6c13 mov r0, r4 + 5b32: 9823 ld.w r1, (r14, 0xc) + 5b34: 3200 movi r2, 0 + 5b36: 1269 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5b38: e3fff132 bsr 0x3d9c // 3d9c <__muldf3> + 5b3c: 6d03 mov r4, r0 + 5b3e: b823 st.w r1, (r14, 0xc) + 5b40: 2f00 subi r7, 1 + 5b42: 078e br 0x5a5e // 5a5e <__GI___dtostr+0x128> + 5b44: 9863 ld.w r3, (r14, 0xc) + 5b46: 6c93 mov r2, r4 + 5b48: 9806 ld.w r0, (r14, 0x18) + 5b4a: 9827 ld.w r1, (r14, 0x1c) + 5b4c: e3fff242 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b50: e3fff37c bsr 0x4248 // 4248 <__fixdfsi> + 5b54: 3f40 cmpnei r7, 0 + 5b56: 74c0 zextb r3, r0 + 5b58: 0c03 bf 0x5b5e // 5b5e <__GI___dtostr+0x228> + 5b5a: 3b40 cmpnei r3, 0 + 5b5c: 0c58 bf 0x5c0c // 5c0c <__GI___dtostr+0x2d6> + 5b5e: 232f addi r3, 48 + 5b60: 3e40 cmpnei r6, 0 + 5b62: a560 st.b r3, (r5, 0x0) + 5b64: 2500 addi r5, 1 + 5b66: 0842 bt 0x5bea // 5bea <__GI___dtostr+0x2b4> + 5b68: 6c93 mov r2, r4 + 5b6a: 9863 ld.w r3, (r14, 0xc) + 5b6c: 980a ld.w r0, (r14, 0x28) + 5b6e: 9824 ld.w r1, (r14, 0x10) + 5b70: e3fff230 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b74: 9845 ld.w r2, (r14, 0x14) + 5b76: 988b ld.w r4, (r14, 0x2c) + 5b78: b841 st.w r2, (r14, 0x4) + 5b7a: b880 st.w r4, (r14, 0x0) + 5b7c: 3300 movi r3, 0 + 5b7e: 9842 ld.w r2, (r14, 0x8) + 5b80: e3fffedb bsr 0x5936 // 5936 <__GI___dtostr> + 5b84: 3840 cmpnei r0, 0 + 5b86: 0eeb bf 0x595c // 595c <__GI___dtostr+0x26> + 5b88: 5dc0 addu r6, r5, r0 + 5b8a: 37fa movi r7, 250 + 5b8c: 3565 movi r5, 101 + 5b8e: 6c02 nor r0, r0 + 5b90: a6a0 st.b r5, (r6, 0x0) + 5b92: 6d03 mov r4, r0 + 5b94: 5ea2 addi r5, r6, 1 + 5b96: 3101 movi r1, 1 + 5b98: 3604 movi r6, 4 + 5b9a: 47e2 lsli r7, r7, 2 + 5b9c: 9808 ld.w r0, (r14, 0x20) + 5b9e: 65c1 cmplt r0, r7 + 5ba0: 0c03 bf 0x5ba6 // 5ba6 <__GI___dtostr+0x270> + 5ba2: 3940 cmpnei r1, 0 + 5ba4: 0811 bt 0x5bc6 // 5bc6 <__GI___dtostr+0x290> + 5ba6: 3c40 cmpnei r4, 0 + 5ba8: 0c08 bf 0x5bb8 // 5bb8 <__GI___dtostr+0x282> + 5baa: 6c5f mov r1, r7 + 5bac: 9808 ld.w r0, (r14, 0x20) + 5bae: e0000c7b bsr 0x74a4 // 74a4 <__divsi3> + 5bb2: 202f addi r0, 48 + 5bb4: a500 st.b r0, (r5, 0x0) + 5bb6: 2500 addi r5, 1 + 5bb8: 6c5f mov r1, r7 + 5bba: 9808 ld.w r0, (r14, 0x20) + 5bbc: e0000c98 bsr 0x74ec // 74ec <__modsi3> + 5bc0: 2c00 subi r4, 1 + 5bc2: b808 st.w r0, (r14, 0x20) + 5bc4: 3100 movi r1, 0 + 5bc6: b823 st.w r1, (r14, 0xc) + 5bc8: 6c1f mov r0, r7 + 5bca: 310a movi r1, 10 + 5bcc: 2e00 subi r6, 1 + 5bce: e0000c6b bsr 0x74a4 // 74a4 <__divsi3> + 5bd2: 3e40 cmpnei r6, 0 + 5bd4: 6dc3 mov r7, r0 + 5bd6: 9823 ld.w r1, (r14, 0xc) + 5bd8: 0be2 bt 0x5b9c // 5b9c <__GI___dtostr+0x266> + 5bda: 3c40 cmpnei r4, 0 + 5bdc: 0ec0 bf 0x595c // 595c <__GI___dtostr+0x26> + 5bde: 9842 ld.w r2, (r14, 0x8) + 5be0: 3300 movi r3, 0 + 5be2: 5d89 subu r4, r5, r2 + 5be4: a560 st.b r3, (r5, 0x0) + 5be6: b889 st.w r4, (r14, 0x24) + 5be8: 06ba br 0x595c // 595c <__GI___dtostr+0x26> + 5bea: 7400 zextb r0, r0 + 5bec: e3fff2f6 bsr 0x41d8 // 41d8 <__floatsidf> + 5bf0: 6c93 mov r2, r4 + 5bf2: 9863 ld.w r3, (r14, 0xc) + 5bf4: e3fff0d4 bsr 0x3d9c // 3d9c <__muldf3> + 5bf8: 6c83 mov r2, r0 + 5bfa: 6cc7 mov r3, r1 + 5bfc: 9806 ld.w r0, (r14, 0x18) + 5bfe: 9827 ld.w r1, (r14, 0x1c) + 5c00: e3fff0b2 bsr 0x3d64 // 3d64 <__subdf3> + 5c04: b806 st.w r0, (r14, 0x18) + 5c06: b827 st.w r1, (r14, 0x1c) + 5c08: 2e00 subi r6, 1 + 5c0a: 3700 movi r7, 0 + 5c0c: 6c13 mov r0, r4 + 5c0e: 9823 ld.w r1, (r14, 0xc) + 5c10: 3200 movi r2, 0 + 5c12: 1072 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5c14: e3fff1de bsr 0x3fd0 // 3fd0 <__divdf3> + 5c18: 6d03 mov r4, r0 + 5c1a: b823 st.w r1, (r14, 0xc) + 5c1c: 0723 br 0x5a62 // 5a62 <__GI___dtostr+0x12c> + 5c1e: 1012 lrw r0, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5c20: 1092 lrw r4, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5c22: b803 st.w r0, (r14, 0xc) + 5c24: 0727 br 0x5a72 // 5a72 <__GI___dtostr+0x13c> + 5c26: 3e40 cmpnei r6, 0 + 5c28: 0e9a bf 0x595c // 595c <__GI___dtostr+0x26> + 5c2a: 372e movi r7, 46 + 5c2c: a5e0 st.b r7, (r5, 0x0) + 5c2e: 2e00 subi r6, 1 + 5c30: 5de2 addi r7, r5, 1 + 5c32: 073e br 0x5aae // 5aae <__GI___dtostr+0x178> + 5c34: 3e40 cmpnei r6, 0 + 5c36: 0ac8 bt 0x59c6 // 59c6 <__GI___dtostr+0x90> + 5c38: 3508 movi r5, 8 + 5c3a: 06ac br 0x5992 // 5992 <__GI___dtostr+0x5c> + 5c3c: 0000bac5 .long 0x0000bac5 + 5c40: 0000bac9 .long 0x0000bac9 + 5c44: 3fe00000 .long 0x3fe00000 + 5c48: 3ff00000 .long 0x3ff00000 + 5c4c: fffffc01 .long 0xfffffc01 + 5c50: 509f79ff .long 0x509f79ff + 5c54: 3fd34413 .long 0x3fd34413 + 5c58: 40240000 .long 0x40240000 + 5c5c: cccccccd .long 0xcccccccd + 5c60: 3feccccc .long 0x3feccccc + 5c64: 3fb99999 .long 0x3fb99999 + 5c68: 9999999a .long 0x9999999a + 5c6c: 4202a05f .long 0x4202a05f + +00005c70 <__isnan>: + 5c70: 416c lsli r3, r1, 12 + 5c72: 4b4c lsri r2, r3, 12 + 5c74: 6c08 or r0, r2 + 5c76: 3840 cmpnei r0, 0 + 5c78: 0c0e bf 0x5c94 // 5c94 <__isnan+0x24> + 5c7a: 1008 lrw r0, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c7c: 6840 and r1, r0 + 5c7e: 6cc7 mov r3, r1 + 5c80: 3000 movi r0, 0 + 5c82: 1026 lrw r1, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c84: 3200 movi r2, 0 + 5c86: 6c81 xor r2, r0 + 5c88: 6cc5 xor r3, r1 + 5c8a: 6c8c or r2, r3 + 5c8c: 3a40 cmpnei r2, 0 + 5c8e: 6443 mvcv r1 + 5c90: 7404 zextb r0, r1 + 5c92: 783c jmp r15 + 5c94: 3000 movi r0, 0 + 5c96: 07fe br 0x5c92 // 5c92 <__isnan+0x22> + 5c98: 7ff00000 .long 0x7ff00000 + +00005c9c <__strlen_fast>: + 5c9c: 6c43 mov r1, r0 + 5c9e: 3203 movi r2, 3 + 5ca0: 6808 and r0, r2 + 5ca2: 3840 cmpnei r0, 0 + 5ca4: 0c08 bf 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5ca6: 3000 movi r0, 0 + 5ca8: 8140 ld.b r2, (r1, 0x0) + 5caa: 3a40 cmpnei r2, 0 + 5cac: 0c20 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cae: 2100 addi r1, 1 + 5cb0: 2000 addi r0, 1 + 5cb2: 07fb br 0x5ca8 // 5ca8 <__strlen_fast+0xc> + 5cb4: 9140 ld.w r2, (r1, 0x0) + 5cb6: 680b tstnbz r2 + 5cb8: 0c04 bf 0x5cc0 // 5cc0 <__strlen_fast+0x24> + 5cba: 2103 addi r1, 4 + 5cbc: 2003 addi r0, 4 + 5cbe: 07fb br 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5cc0: 31ff movi r1, 255 + 5cc2: 6ccb mov r3, r2 + 5cc4: 68c4 and r3, r1 + 5cc6: 3b40 cmpnei r3, 0 + 5cc8: 0c12 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cca: 2000 addi r0, 1 + 5ccc: 3110 movi r1, 16 + 5cce: 6ccb mov r3, r2 + 5cd0: 70c4 lsl r3, r1 + 5cd2: 3118 movi r1, 24 + 5cd4: 70c5 lsr r3, r1 + 5cd6: 3b40 cmpnei r3, 0 + 5cd8: 0c0a bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cda: 2000 addi r0, 1 + 5cdc: 3108 movi r1, 8 + 5cde: 6ccb mov r3, r2 + 5ce0: 70c4 lsl r3, r1 + 5ce2: 3118 movi r1, 24 + 5ce4: 70c5 lsr r3, r1 + 5ce6: 3b40 cmpnei r3, 0 + 5ce8: 0c02 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cea: 2000 addi r0, 1 + 5cec: 783c jmp r15 + ... + +00005cf0 <__strcpy_fast>: + 5cf0: 14c1 push r4 + 5cf2: 6d03 mov r4, r0 + 5cf4: 6c87 mov r2, r1 + 5cf6: 6c90 or r2, r4 + 5cf8: 3303 movi r3, 3 + 5cfa: 688c and r2, r3 + 5cfc: 3a40 cmpnei r2, 0 + 5cfe: 0c08 bf 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d00: 8160 ld.b r3, (r1, 0x0) + 5d02: a460 st.b r3, (r4, 0x0) + 5d04: 2100 addi r1, 1 + 5d06: 2400 addi r4, 1 + 5d08: 3b40 cmpnei r3, 0 + 5d0a: 0bfb bt 0x5d00 // 5d00 <__strcpy_fast+0x10> + 5d0c: 1481 pop r4 + 5d0e: 9160 ld.w r3, (r1, 0x0) + 5d10: 680f tstnbz r3 + 5d12: 0c2e bf 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d14: b460 st.w r3, (r4, 0x0) + 5d16: 9161 ld.w r3, (r1, 0x4) + 5d18: 680f tstnbz r3 + 5d1a: 0c1d bf 0x5d54 // 5d54 <__strcpy_fast+0x64> + 5d1c: b461 st.w r3, (r4, 0x4) + 5d1e: 9162 ld.w r3, (r1, 0x8) + 5d20: 680f tstnbz r3 + 5d22: 0c1b bf 0x5d58 // 5d58 <__strcpy_fast+0x68> + 5d24: b462 st.w r3, (r4, 0x8) + 5d26: 9163 ld.w r3, (r1, 0xc) + 5d28: 680f tstnbz r3 + 5d2a: 0c19 bf 0x5d5c // 5d5c <__strcpy_fast+0x6c> + 5d2c: b463 st.w r3, (r4, 0xc) + 5d2e: 9164 ld.w r3, (r1, 0x10) + 5d30: 680f tstnbz r3 + 5d32: 0c17 bf 0x5d60 // 5d60 <__strcpy_fast+0x70> + 5d34: b464 st.w r3, (r4, 0x10) + 5d36: 9165 ld.w r3, (r1, 0x14) + 5d38: 680f tstnbz r3 + 5d3a: 0c15 bf 0x5d64 // 5d64 <__strcpy_fast+0x74> + 5d3c: b465 st.w r3, (r4, 0x14) + 5d3e: 9166 ld.w r3, (r1, 0x18) + 5d40: 680f tstnbz r3 + 5d42: 0c13 bf 0x5d68 // 5d68 <__strcpy_fast+0x78> + 5d44: b466 st.w r3, (r4, 0x18) + 5d46: 9167 ld.w r3, (r1, 0x1c) + 5d48: 680f tstnbz r3 + 5d4a: 0c11 bf 0x5d6c // 5d6c <__strcpy_fast+0x7c> + 5d4c: b467 st.w r3, (r4, 0x1c) + 5d4e: 241f addi r4, 32 + 5d50: 211f addi r1, 32 + 5d52: 07de br 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d54: 2403 addi r4, 4 + 5d56: 040c br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d58: 2407 addi r4, 8 + 5d5a: 040a br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d5c: 240b addi r4, 12 + 5d5e: 0408 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d60: 240f addi r4, 16 + 5d62: 0406 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d64: 2413 addi r4, 20 + 5d66: 0404 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d68: 2417 addi r4, 24 + 5d6a: 0402 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d6c: 241b addi r4, 28 + 5d6e: 3118 movi r1, 24 + 5d70: 6c8f mov r2, r3 + 5d72: 7084 lsl r2, r1 + 5d74: 7085 lsr r2, r1 + 5d76: a440 st.b r2, (r4, 0x0) + 5d78: 3a40 cmpnei r2, 0 + 5d7a: 0c12 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d7c: 3110 movi r1, 16 + 5d7e: 6c8f mov r2, r3 + 5d80: 7084 lsl r2, r1 + 5d82: 3118 movi r1, 24 + 5d84: 7085 lsr r2, r1 + 5d86: a441 st.b r2, (r4, 0x1) + 5d88: 3a40 cmpnei r2, 0 + 5d8a: 0c0a bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d8c: 3108 movi r1, 8 + 5d8e: 6c8f mov r2, r3 + 5d90: 7084 lsl r2, r1 + 5d92: 3118 movi r1, 24 + 5d94: 7085 lsr r2, r1 + 5d96: a442 st.b r2, (r4, 0x2) + 5d98: 3a40 cmpnei r2, 0 + 5d9a: 0c02 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d9c: b460 st.w r3, (r4, 0x0) + 5d9e: 1481 pop r4 + +00005da0 <__GI_strchr>: + 5da0: 8040 ld.b r2, (r0, 0x0) + 5da2: 644a cmpne r2, r1 + 5da4: 0c06 bf 0x5db0 // 5db0 <__GI_strchr+0x10> + 5da6: 3a40 cmpnei r2, 0 + 5da8: 0c03 bf 0x5dae // 5dae <__GI_strchr+0xe> + 5daa: 2000 addi r0, 1 + 5dac: 07fa br 0x5da0 // 5da0 <__GI_strchr> + 5dae: 6c0b mov r0, r2 + 5db0: 783c jmp r15 + ... + +00005db4 <__GI_strerror>: + 5db4: 338f movi r3, 143 + 5db6: 640c cmphs r3, r0 + 5db8: 0c06 bf 0x5dc4 // 5dc4 <__GI_strerror+0x10> + 5dba: 4002 lsli r0, r0, 2 + 5dbc: 1023 lrw r1, 0xacd8 // 5dc8 <__GI_strerror+0x14> + 5dbe: 6004 addu r0, r1 + 5dc0: 9000 ld.w r0, (r0, 0x0) + 5dc2: 783c jmp r15 + 5dc4: 1002 lrw r0, 0xaf55 // 5dcc <__GI_strerror+0x18> + 5dc6: 07fe br 0x5dc2 // 5dc2 <__GI_strerror+0xe> + 5dc8: 0000acd8 .long 0x0000acd8 + 5dcc: 0000af55 .long 0x0000af55 + +00005dd0 <__isinf>: + 5dd0: 3840 cmpnei r0, 0 + 5dd2: 6c83 mov r2, r0 + 5dd4: 6cc7 mov r3, r1 + 5dd6: 0804 bt 0x5dde // 5dde <__isinf+0xe> + 5dd8: 1028 lrw r1, 0x7ff00000 // 5df8 <__isinf+0x28> + 5dda: 644e cmpne r3, r1 + 5ddc: 0c0b bf 0x5df2 // 5df2 <__isinf+0x22> + 5dde: 3000 movi r0, 0 + 5de0: 1027 lrw r1, 0xfff00000 // 5dfc <__isinf+0x2c> + 5de2: 6c81 xor r2, r0 + 5de4: 6cc5 xor r3, r1 + 5de6: 6c8c or r2, r3 + 5de8: 3a40 cmpnei r2, 0 + 5dea: 64c3 mvcv r3 + 5dec: 3000 movi r0, 0 + 5dee: 600e subu r0, r3 + 5df0: 783c jmp r15 + 5df2: 3001 movi r0, 1 + 5df4: 07fe br 0x5df0 // 5df0 <__isinf+0x20> + 5df6: 0000 bkpt + 5df8: 7ff00000 .long 0x7ff00000 + 5dfc: fff00000 .long 0xfff00000 + +00005e00 <__eqdf2>: + 5e00: 14d0 push r15 + 5e02: 142e subi r14, r14, 56 + 5e04: b800 st.w r0, (r14, 0x0) + 5e06: b821 st.w r1, (r14, 0x4) + 5e08: 6c3b mov r0, r14 + 5e0a: 1904 addi r1, r14, 16 + 5e0c: b863 st.w r3, (r14, 0xc) + 5e0e: b842 st.w r2, (r14, 0x8) + 5e10: e3fff4a0 bsr 0x4750 // 4750 <__unpack_d> + 5e14: 1909 addi r1, r14, 36 + 5e16: 1802 addi r0, r14, 8 + 5e18: e3fff49c bsr 0x4750 // 4750 <__unpack_d> + 5e1c: 9864 ld.w r3, (r14, 0x10) + 5e1e: 3b01 cmphsi r3, 2 + 5e20: 0c0a bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e22: 9869 ld.w r3, (r14, 0x24) + 5e24: 3b01 cmphsi r3, 2 + 5e26: 0c07 bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e28: 1909 addi r1, r14, 36 + 5e2a: 1804 addi r0, r14, 16 + 5e2c: e3fff4f4 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e30: 140e addi r14, r14, 56 + 5e32: 1490 pop r15 + 5e34: 3001 movi r0, 1 + 5e36: 140e addi r14, r14, 56 + 5e38: 1490 pop r15 + ... + +00005e3c <__ltdf2>: + 5e3c: 14d0 push r15 + 5e3e: 142e subi r14, r14, 56 + 5e40: b800 st.w r0, (r14, 0x0) + 5e42: b821 st.w r1, (r14, 0x4) + 5e44: 6c3b mov r0, r14 + 5e46: 1904 addi r1, r14, 16 + 5e48: b863 st.w r3, (r14, 0xc) + 5e4a: b842 st.w r2, (r14, 0x8) + 5e4c: e3fff482 bsr 0x4750 // 4750 <__unpack_d> + 5e50: 1909 addi r1, r14, 36 + 5e52: 1802 addi r0, r14, 8 + 5e54: e3fff47e bsr 0x4750 // 4750 <__unpack_d> + 5e58: 9864 ld.w r3, (r14, 0x10) + 5e5a: 3b01 cmphsi r3, 2 + 5e5c: 0c0a bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e5e: 9869 ld.w r3, (r14, 0x24) + 5e60: 3b01 cmphsi r3, 2 + 5e62: 0c07 bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e64: 1909 addi r1, r14, 36 + 5e66: 1804 addi r0, r14, 16 + 5e68: e3fff4d6 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e6c: 140e addi r14, r14, 56 + 5e6e: 1490 pop r15 + 5e70: 3001 movi r0, 1 + 5e72: 140e addi r14, r14, 56 + 5e74: 1490 pop r15 + +Disassembly of section .text.__main: + +00005e78 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 5e78: 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 ) { + 5e7a: 1009 lrw r0, 0x20000000 // 5e9c <__main+0x24> + 5e7c: 1029 lrw r1, 0xc254 // 5ea0 <__main+0x28> + 5e7e: 6442 cmpne r0, r1 + 5e80: 0c05 bf 0x5e8a // 5e8a <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 5e82: 1049 lrw r2, 0x2000009c // 5ea4 <__main+0x2c> + 5e84: 6082 subu r2, r0 + 5e86: e3fff5ad bsr 0x49e0 // 49e0 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 5e8a: 1048 lrw r2, 0x20000af8 // 5ea8 <__main+0x30> + 5e8c: 1008 lrw r0, 0x200000bc // 5eac <__main+0x34> + 5e8e: 640a cmpne r2, r0 + 5e90: 0c05 bf 0x5e9a // 5e9a <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 5e92: 6082 subu r2, r0 + 5e94: 3100 movi r1, 0 + 5e96: e3fff561 bsr 0x4958 // 4958 <__memset_fast> + } + + +} + 5e9a: 1490 pop r15 + 5e9c: 20000000 .long 0x20000000 + 5ea0: 0000c254 .long 0x0000c254 + 5ea4: 2000009c .long 0x2000009c + 5ea8: 20000af8 .long 0x20000af8 + 5eac: 200000bc .long 0x200000bc + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00005eb0 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 5eb0: 3848 cmpnei r0, 8 + 5eb2: 080a bt 0x5ec6 // 5ec6 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 5eb4: 107a lrw r3, 0x2000004c // 5f1c + 5eb6: 32ff movi r2, 255 + 5eb8: 9320 ld.w r1, (r3, 0x0) + 5eba: 9160 ld.w r3, (r1, 0x0) + 5ebc: 424c lsli r2, r2, 12 + 5ebe: 68c9 andn r3, r2 + 5ec0: 3bae bseti r3, 14 + 5ec2: 3bb2 bseti r3, 18 + 5ec4: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 5ec6: 1077 lrw r3, 0x2000005c // 5f20 + 5ec8: 9360 ld.w r3, (r3, 0x0) + 5eca: 9341 ld.w r2, (r3, 0x4) + 5ecc: 6c80 or r2, r0 + 5ece: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 5ed0: 9343 ld.w r2, (r3, 0xc) + 5ed2: 6880 and r2, r0 + 5ed4: 3a40 cmpnei r2, 0 + 5ed6: 0ffd bf 0x5ed0 // 5ed0 + switch(ENDIS_X) + 5ed8: 3842 cmpnei r0, 2 + 5eda: 0807 bt 0x5ee8 // 5ee8 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 5edc: 3102 movi r1, 2 + 5ede: 9344 ld.w r2, (r3, 0x10) + 5ee0: 6884 and r2, r1 + 5ee2: 3a40 cmpnei r2, 0 + 5ee4: 0ffd bf 0x5ede // 5ede + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 5ee6: 783c jmp r15 + switch(ENDIS_X) + 5ee8: 3802 cmphsi r0, 3 + 5eea: 0809 bt 0x5efc // 5efc + 5eec: 3841 cmpnei r0, 1 + 5eee: 0bfc bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 5ef0: 3101 movi r1, 1 + 5ef2: 9344 ld.w r2, (r3, 0x10) + 5ef4: 6884 and r2, r1 + 5ef6: 3a40 cmpnei r2, 0 + 5ef8: 0ffd bf 0x5ef2 // 5ef2 + 5efa: 07f6 br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5efc: 3848 cmpnei r0, 8 + 5efe: 0807 bt 0x5f0c // 5f0c + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 5f00: 3108 movi r1, 8 + 5f02: 9344 ld.w r2, (r3, 0x10) + 5f04: 6884 and r2, r1 + 5f06: 3a40 cmpnei r2, 0 + 5f08: 0ffd bf 0x5f02 // 5f02 + 5f0a: 07ee br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5f0c: 3850 cmpnei r0, 16 + 5f0e: 0bec bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 5f10: 3110 movi r1, 16 + 5f12: 9344 ld.w r2, (r3, 0x10) + 5f14: 6884 and r2, r1 + 5f16: 3a40 cmpnei r2, 0 + 5f18: 0ffd bf 0x5f12 // 5f12 + 5f1a: 07e6 br 0x5ee6 // 5ee6 + 5f1c: 2000004c .long 0x2000004c + 5f20: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00005f24 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 5f24: 106c lrw r3, 0x2000005c // 5f54 + 5f26: 104d lrw r2, 0xffff // 5f58 + 5f28: 9360 ld.w r3, (r3, 0x0) + 5f2a: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 5f2c: 104c lrw r2, 0xffffff // 5f5c + 5f2e: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 5f30: 104c lrw r2, 0xd22d0000 // 5f60 + 5f32: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 5f34: 104c lrw r2, 0x70ff3bff // 5f64 + 5f36: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 5f38: 320a movi r2, 10 + 5f3a: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f3c: 102b lrw r1, 0x70c // 5f68 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 5f3e: 237f addi r3, 128 + 5f40: 3200 movi r2, 0 + 5f42: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 5f44: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f46: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 5f48: 1029 lrw r1, 0x3fe // 5f6c + 5f4a: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 5f4c: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 5f4e: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 5f50: b35f st.w r2, (r3, 0x7c) +} + 5f52: 783c jmp r15 + 5f54: 2000005c .long 0x2000005c + 5f58: 0000ffff .long 0x0000ffff + 5f5c: 00ffffff .long 0x00ffffff + 5f60: d22d0000 .long 0xd22d0000 + 5f64: 70ff3bff .long 0x70ff3bff + 5f68: 0000070c .long 0x0000070c + 5f6c: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00005f70 : +{ + 5f70: 14d0 push r15 + if (NewState != DISABLE) + 5f72: 3840 cmpnei r0, 0 + 5f74: 0c05 bf 0x5f7e // 5f7e + 5f76: 6c07 mov r0, r1 + 5f78: e3ffff9c bsr 0x5eb0 // 5eb0 +} + 5f7c: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 5f7e: 1068 lrw r3, 0x2000005c // 5f9c + 5f80: 9360 ld.w r3, (r3, 0x0) + 5f82: 9342 ld.w r2, (r3, 0x8) + 5f84: 6c84 or r2, r1 + 5f86: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 5f88: 9343 ld.w r2, (r3, 0xc) + 5f8a: 6884 and r2, r1 + 5f8c: 3a40 cmpnei r2, 0 + 5f8e: 0bfd bt 0x5f88 // 5f88 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 5f90: 237f addi r3, 128 + 5f92: 9301 ld.w r0, (r3, 0x4) + 5f94: 6c40 or r1, r0 + 5f96: b321 st.w r1, (r3, 0x4) +} + 5f98: 07f2 br 0x5f7c // 5f7c + 5f9a: 0000 bkpt + 5f9c: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00005fa0 : +//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 ) +{ + 5fa0: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 5fa2: 3b48 cmpnei r3, 8 + 5fa4: 0828 bt 0x5ff4 // 5ff4 + { + IFC->CEDR=0X01; //CLKEN + 5fa6: 109d lrw r4, 0x20000060 // 6018 + 5fa8: 3501 movi r5, 1 + 5faa: 9480 ld.w r4, (r4, 0x0) + 5fac: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 5fae: 3504 movi r5, 4 + 5fb0: 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)) + 5fb2: 5b83 subi r4, r3, 1 + 5fb4: 3c01 cmphsi r4, 2 + 5fb6: 0c2b bf 0x600c // 600c + { + 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)) + 5fb8: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 5fba: 3c04 cmphsi r4, 5 + 5fbc: 0c03 bf 0x5fc2 // 5fc2 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 5fbe: 3b4b cmpnei r3, 11 + 5fc0: 0807 bt 0x5fce // 5fce + { + IFC->CEDR=0X01; //CLKEN + 5fc2: 1076 lrw r3, 0x20000060 // 6018 + 5fc4: 3401 movi r4, 1 + 5fc6: 9360 ld.w r3, (r3, 0x0) + 5fc8: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 5fca: 3400 movi r4, 0 + 5fcc: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fce: 1094 lrw r4, 0xd22d0000 // 601c + 5fd0: 6c10 or r0, r4 + 5fd2: 1074 lrw r3, 0x2000005c // 6020 + 5fd4: 6c40 or r1, r0 + 5fd6: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fd8: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fda: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fdc: 4001 lsli r0, r0, 1 + 5fde: 9324 ld.w r1, (r3, 0x10) + 5fe0: 6840 and r1, r0 + 5fe2: 3940 cmpnei r1, 0 + 5fe4: 0ffd bf 0x5fde // 5fde + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 5fe6: 1030 lrw r1, 0xc33c0000 // 6024 + 5fe8: 6c48 or r1, r2 + 5fea: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 5fec: 9328 ld.w r1, (r3, 0x20) + 5fee: 644a cmpne r2, r1 + 5ff0: 0bfe bt 0x5fec // 5fec +} + 5ff2: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 5ff4: 3b40 cmpnei r3, 0 + 5ff6: 0c03 bf 0x5ffc // 5ffc + 5ff8: 3b49 cmpnei r3, 9 + 5ffa: 0807 bt 0x6008 // 6008 + IFC->CEDR=0X01; //CLKEN + 5ffc: 1087 lrw r4, 0x20000060 // 6018 + 5ffe: 3501 movi r5, 1 + 6000: 9480 ld.w r4, (r4, 0x0) + 6002: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 6004: 3502 movi r5, 2 + 6006: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 6008: 3b4a cmpnei r3, 10 + 600a: 0bd4 bt 0x5fb2 // 5fb2 + IFC->CEDR=0X01; //CLKEN + 600c: 1083 lrw r4, 0x20000060 // 6018 + 600e: 3501 movi r5, 1 + 6010: 9480 ld.w r4, (r4, 0x0) + 6012: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 6014: b4a5 st.w r5, (r4, 0x14) + 6016: 07d1 br 0x5fb8 // 5fb8 + 6018: 20000060 .long 0x20000060 + 601c: d22d0000 .long 0xd22d0000 + 6020: 2000005c .long 0x2000005c + 6024: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00006028 : +//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) +{ + 6028: 14d1 push r4, r15 + 602a: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 602c: 3110 movi r1, 16 + 602e: 3000 movi r0, 0 + 6030: e3ffffa0 bsr 0x5f70 // 5f70 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 6034: 1066 lrw r3, 0x2000005c // 604c + 6036: 9360 ld.w r3, (r3, 0x0) + 6038: 9319 ld.w r0, (r3, 0x64) + 603a: 3884 bclri r0, 4 + 603c: 3885 bclri r0, 5 + 603e: 6c10 or r0, r4 + 6040: b319 st.w r0, (r3, 0x64) + 6042: 3010 movi r0, 16 + 6044: e3ffff36 bsr 0x5eb0 // 5eb0 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 6048: 1491 pop r4, r15 + 604a: 0000 bkpt + 604c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00006050 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 6050: 106c lrw r3, 0x2000005c // 6080 + if(NewState != DISABLE) + 6052: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 6054: 9360 ld.w r3, (r3, 0x0) + 6056: 237f addi r3, 128 + if(NewState != DISABLE) + 6058: 0c0a bf 0x606c // 606c + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605a: 104b lrw r2, 0x78870000 // 6084 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 605c: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605e: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 6060: 4125 lsli r1, r1, 5 + 6062: 934d ld.w r2, (r3, 0x34) + 6064: 6884 and r2, r1 + 6066: 3a40 cmpnei r2, 0 + 6068: 0ffd bf 0x6062 // 6062 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 606a: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 606c: 1047 lrw r2, 0x788755aa // 6088 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 606e: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 6070: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 6072: 4125 lsli r1, r1, 5 + 6074: 934d ld.w r2, (r3, 0x34) + 6076: 6884 and r2, r1 + 6078: 3a40 cmpnei r2, 0 + 607a: 0bfd bt 0x6074 // 6074 + 607c: 07f7 br 0x606a // 606a + 607e: 0000 bkpt + 6080: 2000005c .long 0x2000005c + 6084: 78870000 .long 0x78870000 + 6088: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +0000608c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 608c: 1064 lrw r3, 0x2000005c // 609c + 608e: 32b4 movi r2, 180 + 6090: 9360 ld.w r3, (r3, 0x0) + 6092: 237f addi r3, 128 + 6094: 4257 lsli r2, r2, 23 + 6096: b34e st.w r2, (r3, 0x38) +} + 6098: 783c jmp r15 + 609a: 0000 bkpt + 609c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +000060a0 : +//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; + 60a0: 1044 lrw r2, 0x87780000 // 60b0 + 60a2: 1065 lrw r3, 0x2000005c // 60b4 + 60a4: 6c48 or r1, r2 + 60a6: 9360 ld.w r3, (r3, 0x0) + 60a8: 6c04 or r0, r1 + 60aa: 237f addi r3, 128 + 60ac: b30d st.w r0, (r3, 0x34) +} + 60ae: 783c jmp r15 + 60b0: 87780000 .long 0x87780000 + 60b4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +000060b8 : +//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) +{ + 60b8: 14c3 push r4-r6 + 60ba: 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; + 60bc: 10c5 lrw r6, 0xb44b0000 // 60d0 + 60be: 6d18 or r4, r6 + 60c0: 6cd0 or r3, r4 + 60c2: 6c8c or r2, r3 + 60c4: 6c48 or r1, r2 + 60c6: 10a4 lrw r5, 0x2000005c // 60d4 + 60c8: 6c04 or r0, r1 + 60ca: 95a0 ld.w r5, (r5, 0x0) + 60cc: b513 st.w r0, (r5, 0x4c) +} + 60ce: 1483 pop r4-r6 + 60d0: b44b0000 .long 0xb44b0000 + 60d4: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +000060d8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 60d8: 1066 lrw r3, 0x2000005c // 60f0 + 60da: 3180 movi r1, 128 + 60dc: 9360 ld.w r3, (r3, 0x0) + 60de: 3280 movi r2, 128 + 60e0: 604c addu r1, r3 + 60e2: 4244 lsli r2, r2, 4 + 60e4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 60e6: 935d ld.w r2, (r3, 0x74) + 60e8: 3aab bseti r2, 11 + 60ea: b35d st.w r2, (r3, 0x74) +} + 60ec: 783c jmp r15 + 60ee: 0000 bkpt + 60f0: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +000060f4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 60f4: 1066 lrw r3, 0x2000005c // 610c + 60f6: 3180 movi r1, 128 + 60f8: 9360 ld.w r3, (r3, 0x0) + 60fa: 3280 movi r2, 128 + 60fc: 604c addu r1, r3 + 60fe: 4241 lsli r2, r2, 1 + 6100: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 6102: 935d ld.w r2, (r3, 0x74) + 6104: 3aa8 bseti r2, 8 + 6106: b35d st.w r2, (r3, 0x74) +} + 6108: 783c jmp r15 + 610a: 0000 bkpt + 610c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00006110 : +//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) + 6110: 3a40 cmpnei r2, 0 + 6112: 0c04 bf 0x611a // 611a + 6114: 3a41 cmpnei r2, 1 + 6116: 0c0e bf 0x6132 // 6132 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 6118: 783c jmp r15 + 611a: 106d lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 611c: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 611e: 9360 ld.w r3, (r3, 0x0) + 6120: 237f addi r3, 128 + 6122: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 6124: 0c04 bf 0x612c // 612c + SYSCON->EXIRT |=EXIPIN; + 6126: 6c48 or r1, r2 + 6128: b325 st.w r1, (r3, 0x14) + 612a: 07f7 br 0x6118 // 6118 + SYSCON->EXIRT &=~EXIPIN; + 612c: 6885 andn r2, r1 + 612e: b345 st.w r2, (r3, 0x14) + 6130: 07f4 br 0x6118 // 6118 + 6132: 1067 lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 6134: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 6136: 9360 ld.w r3, (r3, 0x0) + 6138: 237f addi r3, 128 + 613a: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 613c: 0c04 bf 0x6144 // 6144 + SYSCON->EXIFT |=EXIPIN; + 613e: 6c48 or r1, r2 + 6140: b326 st.w r1, (r3, 0x18) + 6142: 07eb br 0x6118 // 6118 + SYSCON->EXIFT &=~EXIPIN; + 6144: 6885 andn r2, r1 + 6146: b346 st.w r2, (r3, 0x18) +} + 6148: 07e8 br 0x6118 // 6118 + 614a: 0000 bkpt + 614c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00006150 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 6150: 106b lrw r3, 0x2000005c // 617c + 6152: 104c lrw r2, 0x3fff // 6180 + 6154: 9360 ld.w r3, (r3, 0x0) + 6156: 237f addi r3, 128 + if(NewState != DISABLE) + 6158: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 615a: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 615c: 0c0c bf 0x6174 // 6174 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 615e: 9347 ld.w r2, (r3, 0x1c) + 6160: 6c84 or r2, r1 + 6162: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 6164: 9349 ld.w r2, (r3, 0x24) + 6166: 6884 and r2, r1 + 6168: 3a40 cmpnei r2, 0 + 616a: 0ffd bf 0x6164 // 6164 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 616c: 934b ld.w r2, (r3, 0x2c) + 616e: 6c48 or r1, r2 + 6170: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 6172: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 6174: 9348 ld.w r2, (r3, 0x20) + 6176: 6c48 or r1, r2 + 6178: b328 st.w r1, (r3, 0x20) +} + 617a: 07fc br 0x6172 // 6172 + 617c: 2000005c .long 0x2000005c + 6180: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00006184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 6184: b02b st.w r1, (r0, 0x2c) +} + 6186: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00006188 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 6188: 3380 movi r3, 128 + 618a: 4370 lsli r3, r3, 16 + 618c: 1042 lrw r2, 0xe000e100 // 6194 + 618e: b260 st.w r3, (r2, 0x0) +} + 6190: 783c jmp r15 + 6192: 0000 bkpt + 6194: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00006198 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 6198: 3202 movi r2, 2 + 619a: 1062 lrw r3, 0xe000e100 // 61a0 + 619c: b340 st.w r2, (r3, 0x0) +} + 619e: 783c jmp r15 + 61a0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +000061a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 61a4: 3202 movi r2, 2 + 61a6: 1062 lrw r3, 0xe000e180 // 61ac + 61a8: b340 st.w r2, (r3, 0x0) +} + 61aa: 783c jmp r15 + 61ac: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_Software_Reset: + +000061b0 : +//EntryParameter:None +//ReturnValue:MCU reset +/*************************************************************/ +void SYSCON_Software_Reset(void) +{ + SYSCON->IDCCR=IDCCR_KEY|SWRST; + 61b0: 1063 lrw r3, 0x2000005c // 61bc + 61b2: 1044 lrw r2, 0xe11e0080 // 61c0 + 61b4: 9360 ld.w r3, (r3, 0x0) + 61b6: b340 st.w r2, (r3, 0x0) +} + 61b8: 783c jmp r15 + 61ba: 0000 bkpt + 61bc: 2000005c .long 0x2000005c + 61c0: e11e0080 .long 0xe11e0080 + +Disassembly of section .text.SYSCON_INT_Priority: + +000061c4 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61c4: 1066 lrw r3, 0xe000e400 // 61dc + 61c6: 1047 lrw r2, 0xc0c0c0c0 // 61e0 + 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 + 61c8: 1027 lrw r1, 0xc0c000c0 // 61e4 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61ca: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 61cc: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 61ce: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 61d0: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 61d2: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 61d4: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 61d6: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 61d8: b347 st.w r2, (r3, 0x1c) +} + 61da: 783c jmp r15 + 61dc: e000e400 .long 0xe000e400 + 61e0: c0c0c0c0 .long 0xc0c0c0c0 + 61e4: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000061e8 : +//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) +{ + 61e8: 14c1 push r4 + 61ea: 4862 lsri r3, r0, 2 + 61ec: 4342 lsli r2, r3, 2 + 61ee: 106a lrw r3, 0x20000064 // 6214 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 61f0: 3403 movi r4, 3 + 61f2: 9360 ld.w r3, (r3, 0x0) + 61f4: 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)); + 6206: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 620a: 7040 lsl r1, r0 + 620c: 6c48 or r1, r2 + 620e: b320 st.w r1, (r3, 0x0) +} + 6210: 1481 pop r4 + 6212: 0000 bkpt + 6214: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +00006218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 6218: 1075 lrw r3, 0x2000004c // 626c + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 621a: 1036 lrw r1, 0x20000048 // 6270 + 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; + 621c: 1016 lrw r0, 0xffff // 6274 + GPIOA0->CONLR &= 0xFF000000; + 621e: 9340 ld.w r2, (r3, 0x0) + 6220: 9260 ld.w r3, (r2, 0x0) + 6222: 4b78 lsri r3, r3, 24 + 6224: 4378 lsli r3, r3, 24 + 6226: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 6228: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 622a: 3300 movi r3, 0 + 622c: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 622e: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 6230: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 6232: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 6234: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 6236: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 6238: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 623a: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 623c: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 623e: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 6240: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 6242: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 6244: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 6246: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 6248: 303f movi r0, 63 + 624a: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 624c: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 624e: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 6250: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 6252: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 6254: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 6256: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 6258: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 625a: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 625c: 1047 lrw r2, 0x20000044 // 6278 + 625e: 9240 ld.w r2, (r2, 0x0) + 6260: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 6262: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 6264: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 6266: 330f movi r3, 15 + 6268: b263 st.w r3, (r2, 0xc) +} + 626a: 783c jmp r15 + 626c: 2000004c .long 0x2000004c + 6270: 20000048 .long 0x20000048 + 6274: 0000ffff .long 0x0000ffff + 6278: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +0000627c : +//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) +{ + 627c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 627e: 3907 cmphsi r1, 8 +{ + 6280: 6d03 mov r4, r0 + if(PinNum<8) + 6282: 0830 bt 0x62e2 // 62e2 + { + switch (PinNum) + 6284: 5903 subi r0, r1, 1 + 6286: 3806 cmphsi r0, 7 + 6288: 0827 bt 0x62d6 // 62d6 + 628a: e3ffe939 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 628e: 1004 .short 0x1004 + 6290: 1d1a1613 .long 0x1d1a1613 + 6294: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 6296: 3300 movi r3, 0 + 6298: 3104 movi r1, 4 + 629a: 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) + 629c: 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< + 62b2: 07f5 br 0x629c // 629c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 62b4: 310c movi r1, 12 + 62b6: 1166 lrw r3, 0xffff0fff // 634c + 62b8: 07f2 br 0x629c // 629c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 62ba: 3110 movi r1, 16 + 62bc: 1165 lrw r3, 0xfff10000 // 6350 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62be: 2b00 subi r3, 1 + 62c0: 07ee br 0x629c // 629c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 62c2: 3114 movi r1, 20 + 62c4: 1164 lrw r3, 0xff100000 // 6354 + 62c6: 07fc br 0x62be // 62be + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62c8: 33f1 movi r3, 241 + 62ca: 3118 movi r1, 24 + 62cc: 4378 lsli r3, r3, 24 + 62ce: 07f8 br 0x62be // 62be + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 62d0: 311c movi r1, 28 + 62d2: 1162 lrw r3, 0xfffffff // 6358 + 62d4: 07e4 br 0x629c // 629c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 62d6: 3300 movi r3, 0 + 62d8: 3100 movi r1, 0 + 62da: 2b0f subi r3, 16 + 62dc: 07e0 br 0x629c // 629c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 62e2: 390f cmphsi r1, 16 + 62e4: 0be4 bt 0x62ac // 62ac + switch (PinNum) + 62e6: 2908 subi r1, 9 + 62e8: 3906 cmphsi r1, 7 + 62ea: 6c07 mov r0, r1 + 62ec: 0827 bt 0x633a // 633a + 62ee: e3ffe907 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 62f2: 1004 .short 0x1004 + 62f4: 1d1a1613 .long 0x1d1a1613 + 62f8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 62fa: 3300 movi r3, 0 + 62fc: 3104 movi r1, 4 + 62fe: 2bf0 subi r3, 241 + if (Dir) + 6300: 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; + 6312: 3108 movi r1, 8 + 6314: 106d lrw r3, 0xfffff0ff // 6348 + 6316: 07f5 br 0x6300 // 6300 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 6318: 310c movi r1, 12 + 631a: 106d lrw r3, 0xffff0fff // 634c + 631c: 07f2 br 0x6300 // 6300 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 631e: 3110 movi r1, 16 + 6320: 106c lrw r3, 0xfff10000 // 6350 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 6322: 2b00 subi r3, 1 + 6324: 07ee br 0x6300 // 6300 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 6326: 3114 movi r1, 20 + 6328: 106b lrw r3, 0xff100000 // 6354 + 632a: 07fc br 0x6322 // 6322 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 632c: 33f1 movi r3, 241 + 632e: 3118 movi r1, 24 + 6330: 4378 lsli r3, r3, 24 + 6332: 07f8 br 0x6322 // 6322 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 6334: 311c movi r1, 28 + 6336: 1069 lrw r3, 0xfffffff // 6358 + 6338: 07e4 br 0x6300 // 6300 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 633a: 3300 movi r3, 0 + 633c: 3100 movi r1, 0 + 633e: 2b0f subi r3, 16 + 6340: 07e0 br 0x6300 // 6300 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 6346: 0000 bkpt + 6348: fffff0ff .long 0xfffff0ff + 634c: ffff0fff .long 0xffff0fff + 6350: fff10000 .long 0xfff10000 + 6354: ff100000 .long 0xff100000 + 6358: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000635c : +//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)); + 635c: 4121 lsli r1, r1, 1 + 635e: 3203 movi r2, 3 + 6360: 9068 ld.w r3, (r0, 0x20) + 6362: 7084 lsl r2, r1 + 6364: 68c9 andn r3, r2 + 6366: 3201 movi r2, 1 + 6368: 7084 lsl r2, r1 + 636a: 6cc8 or r3, r2 + 636c: b068 st.w r3, (r0, 0x20) +} + 636e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00006370 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 6370: 4121 lsli r1, r1, 1 + 6372: 3301 movi r3, 1 + 6374: 9049 ld.w r2, (r0, 0x24) + 6376: 70c4 lsl r3, r1 + 6378: 6cc8 or r3, r2 + 637a: b069 st.w r3, (r0, 0x24) +} + 637c: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00006380 : +//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) +{ + 6380: 14c1 push r4 + 6382: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 6384: 3a0f cmphsi r2, 16 + 6386: 084f bt 0x6424 // 6424 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 6388: 6ccb mov r3, r2 + 638a: 3b83 bclri r3, 3 + 638c: 3b40 cmpnei r3, 0 + 638e: 0813 bt 0x63b4 // 63b4 + { + R_data_temp=0xfffffff0; + 6390: 2b0f subi r3, 16 + 6392: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 6394: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 6396: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 6398: dc6e0003 st.b r3, (r14, 0x3) + 639c: 1176 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x<8) + 639e: 0c38 bf 0x640e // 640e + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 63b4: 3b41 cmpnei r3, 1 + 63b6: 0806 bt 0x63c2 // 63c2 + R_data_temp=0xffffff0f; + 63b8: 3300 movi r3, 0 + 63ba: 2bf0 subi r3, 241 + 63bc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 63be: 3304 movi r3, 4 + 63c0: 07eb br 0x6396 // 6396 + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 63c2: 3b42 cmpnei r3, 2 + 63c4: 0805 bt 0x63ce // 63ce + R_data_temp=0xfffff0ff; + 63c6: 116d lrw r3, 0xfffff0ff // 6478 + 63c8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 63ca: 3308 movi r3, 8 + 63cc: 07e5 br 0x6396 // 6396 + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 63ce: 3b43 cmpnei r3, 3 + 63d0: 0805 bt 0x63da // 63da + R_data_temp=0xffff0fff; + 63d2: 116b lrw r3, 0xffff0fff // 647c + 63d4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 63d6: 330c movi r3, 12 + 63d8: 07df br 0x6396 // 6396 + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 63da: 3b44 cmpnei r3, 4 + 63dc: 0806 bt 0x63e8 // 63e8 + R_data_temp=0xfff0ffff; + 63de: 1169 lrw r3, 0xfff10000 // 6480 + 63e0: 2b00 subi r3, 1 + 63e2: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 63e4: 3310 movi r3, 16 + 63e6: 07d8 br 0x6396 // 6396 + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 63e8: 3b45 cmpnei r3, 5 + 63ea: 0806 bt 0x63f6 // 63f6 + R_data_temp=0xff0fffff; + 63ec: 1166 lrw r3, 0xff100000 // 6484 + 63ee: 2b00 subi r3, 1 + 63f0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 63f2: 3314 movi r3, 20 + 63f4: 07d1 br 0x6396 // 6396 + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 63f6: 3b46 cmpnei r3, 6 + 63f8: 0807 bt 0x6406 // 6406 + R_data_temp=0xf0ffffff; + 63fa: 33f1 movi r3, 241 + 63fc: 4378 lsli r3, r3, 24 + 63fe: 2b00 subi r3, 1 + 6400: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 6402: 3318 movi r3, 24 + 6404: 07c9 br 0x6396 // 6396 + R_data_temp=0x0fffffff; + 6406: 1161 lrw r3, 0xfffffff // 6488 + 6408: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 640a: 331c movi r3, 28 + 640c: 07c5 br 0x6396 // 6396 + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 6420: 1402 addi r14, r14, 8 + 6422: 1481 pop r4 + else if(Selete_EXI_x<20) + 6424: 3a13 cmphsi r2, 20 + 6426: 0bfd bt 0x6420 // 6420 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 6428: 3840 cmpnei r0, 0 + 642a: 0814 bt 0x6452 // 6452 + 642c: 3300 movi r3, 0 + 642e: 2b0f subi r3, 16 + 6430: 60c8 addu r3, r2 + 6432: 3b01 cmphsi r3, 2 + 6434: 0bf6 bt 0x6420 // 6420 + if(Selete_EXI_x==16) + 6436: 3a50 cmpnei r2, 16 + 6438: 106f lrw r3, 0x20000044 // 6474 + 643a: 0806 bt 0x6446 // 6446 + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 643c: 9340 ld.w r2, (r3, 0x0) + 643e: 9262 ld.w r3, (r2, 0x8) + 6440: 6c4c or r1, r3 + 6442: b222 st.w r1, (r2, 0x8) + 6444: 07ee br 0x6420 // 6420 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 6446: 9360 ld.w r3, (r3, 0x0) + 6448: 9342 ld.w r2, (r3, 0x8) + 644a: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 644c: 6c48 or r1, r2 + 644e: b322 st.w r1, (r3, 0x8) +} + 6450: 07e8 br 0x6420 // 6420 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 6452: 3842 cmpnei r0, 2 + 6454: 0be6 bt 0x6420 // 6420 + 6456: 3300 movi r3, 0 + 6458: 2b11 subi r3, 18 + 645a: 60c8 addu r3, r2 + 645c: 3b01 cmphsi r3, 2 + 645e: 0be1 bt 0x6420 // 6420 + 6460: 1065 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x==18) + 6462: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 6464: 9360 ld.w r3, (r3, 0x0) + 6466: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 6468: 0803 bt 0x646e // 646e + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 646a: 4128 lsli r1, r1, 8 + 646c: 07f0 br 0x644c // 644c + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 646e: 412c lsli r1, r1, 12 + 6470: 07ee br 0x644c // 644c + 6472: 0000 bkpt + 6474: 20000044 .long 0x20000044 + 6478: fffff0ff .long 0xfffff0ff + 647c: ffff0fff .long 0xffff0fff + 6480: fff10000 .long 0xfff10000 + 6484: ff100000 .long 0xff100000 + 6488: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +0000648c : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 648c: 14d0 push r15 + switch (EXI_IO) + 648e: 380f cmphsi r0, 16 + 6490: 0812 bt 0x64b4 // 64b4 + 6492: 117d lrw r3, 0x2000004c // 6584 + 6494: e3ffe834 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6498: 1d150f08 .long 0x1d150f08 + 649c: 39322b24 .long 0x39322b24 + 64a0: 544c463f .long 0x544c463f + 64a4: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 64a8: 9340 ld.w r2, (r3, 0x0) + 64aa: 9260 ld.w r3, (r2, 0x0) + 64ac: 310f movi r1, 15 + 64ae: 68c5 andn r3, r1 + 64b0: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b2: b260 st.w r3, (r2, 0x0) + 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; + } +} + 64b4: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b6: 9340 ld.w r2, (r3, 0x0) + 64b8: 9260 ld.w r3, (r2, 0x0) + 64ba: 31f0 movi r1, 240 + 64bc: 68c5 andn r3, r1 + 64be: 3ba4 bseti r3, 4 + 64c0: 07f9 br 0x64b2 // 64b2 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 64c2: 9320 ld.w r1, (r3, 0x0) + 64c4: 32f0 movi r2, 240 + 64c6: 9160 ld.w r3, (r1, 0x0) + 64c8: 4244 lsli r2, r2, 4 + 64ca: 68c9 andn r3, r2 + 64cc: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64ce: b160 st.w r3, (r1, 0x0) + 64d0: 07f2 br 0x64b4 // 64b4 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 64d2: 9320 ld.w r1, (r3, 0x0) + 64d4: 32f0 movi r2, 240 + 64d6: 9160 ld.w r3, (r1, 0x0) + 64d8: 4248 lsli r2, r2, 8 + 64da: 68c9 andn r3, r2 + 64dc: 3bac bseti r3, 12 + 64de: 07f8 br 0x64ce // 64ce + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 64e0: 9320 ld.w r1, (r3, 0x0) + 64e2: 32f0 movi r2, 240 + 64e4: 9160 ld.w r3, (r1, 0x0) + 64e6: 424c lsli r2, r2, 12 + 64e8: 68c9 andn r3, r2 + 64ea: 3bb0 bseti r3, 16 + 64ec: 07f1 br 0x64ce // 64ce + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 64ee: 9320 ld.w r1, (r3, 0x0) + 64f0: 32f0 movi r2, 240 + 64f2: 9160 ld.w r3, (r1, 0x0) + 64f4: 4250 lsli r2, r2, 16 + 64f6: 68c9 andn r3, r2 + 64f8: 3bb4 bseti r3, 20 + 64fa: 07ea br 0x64ce // 64ce + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64fc: 9320 ld.w r1, (r3, 0x0) + 64fe: 32f0 movi r2, 240 + 6500: 9160 ld.w r3, (r1, 0x0) + 6502: 4254 lsli r2, r2, 20 + 6504: 68c9 andn r3, r2 + 6506: 3bb8 bseti r3, 24 + 6508: 07e3 br 0x64ce // 64ce + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 650a: 9340 ld.w r2, (r3, 0x0) + 650c: 9260 ld.w r3, (r2, 0x0) + 650e: 4364 lsli r3, r3, 4 + 6510: 4b64 lsri r3, r3, 4 + 6512: 3bbc bseti r3, 28 + 6514: 07cf br 0x64b2 // 64b2 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 6516: 9340 ld.w r2, (r3, 0x0) + 6518: 9261 ld.w r3, (r2, 0x4) + 651a: 310f movi r1, 15 + 651c: 68c5 andn r3, r1 + 651e: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6520: b261 st.w r3, (r2, 0x4) +} + 6522: 07c9 br 0x64b4 // 64b4 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 6524: 9340 ld.w r2, (r3, 0x0) + 6526: 9261 ld.w r3, (r2, 0x4) + 6528: 31f0 movi r1, 240 + 652a: 68c5 andn r3, r1 + 652c: 3ba4 bseti r3, 4 + 652e: 07f9 br 0x6520 // 6520 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 6530: 9320 ld.w r1, (r3, 0x0) + 6532: 32f0 movi r2, 240 + 6534: 9161 ld.w r3, (r1, 0x4) + 6536: 4244 lsli r2, r2, 4 + 6538: 68c9 andn r3, r2 + 653a: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 653c: b161 st.w r3, (r1, 0x4) + 653e: 07bb br 0x64b4 // 64b4 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 6540: 9320 ld.w r1, (r3, 0x0) + 6542: 32f0 movi r2, 240 + 6544: 9161 ld.w r3, (r1, 0x4) + 6546: 4248 lsli r2, r2, 8 + 6548: 68c9 andn r3, r2 + 654a: 3bac bseti r3, 12 + 654c: 07f8 br 0x653c // 653c + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 654e: 9320 ld.w r1, (r3, 0x0) + 6550: 32f0 movi r2, 240 + 6552: 9161 ld.w r3, (r1, 0x4) + 6554: 424c lsli r2, r2, 12 + 6556: 68c9 andn r3, r2 + 6558: 3bb0 bseti r3, 16 + 655a: 07f1 br 0x653c // 653c + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 655c: 9320 ld.w r1, (r3, 0x0) + 655e: 32f0 movi r2, 240 + 6560: 9161 ld.w r3, (r1, 0x4) + 6562: 4250 lsli r2, r2, 16 + 6564: 68c9 andn r3, r2 + 6566: 3bb4 bseti r3, 20 + 6568: 07ea br 0x653c // 653c + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 656a: 9320 ld.w r1, (r3, 0x0) + 656c: 32f0 movi r2, 240 + 656e: 9161 ld.w r3, (r1, 0x4) + 6570: 4254 lsli r2, r2, 20 + 6572: 68c9 andn r3, r2 + 6574: 3bb8 bseti r3, 24 + 6576: 07e3 br 0x653c // 653c + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6578: 9340 ld.w r2, (r3, 0x0) + 657a: 9261 ld.w r3, (r2, 0x4) + 657c: 4364 lsli r3, r3, 4 + 657e: 4b64 lsri r3, r3, 4 + 6580: 3bbc bseti r3, 28 + 6582: 07cf br 0x6520 // 6520 + 6584: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +00006588 : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 6598: 9045 ld.w r2, (r0, 0x14) + 659a: 3301 movi r3, 1 + 659c: 7085 lsr r2, r1 + 659e: 688c and r2, r3 + { + if (dat==1) + 65a0: 3a40 cmpnei r2, 0 + 65a2: 70c4 lsl r3, r1 + 65a4: 0c03 bf 0x65aa // 65aa + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000065ae : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 65c0: 1064 lrw r3, 0x20000014 // 65d0 + 65c2: 9340 ld.w r2, (r3, 0x0) + 65c4: 9261 ld.w r3, (r2, 0x4) + 65c6: 3bac bseti r3, 12 + 65c8: 3bae bseti r3, 14 + 65ca: b261 st.w r3, (r2, 0x4) +} + 65cc: 783c jmp r15 + 65ce: 0000 bkpt + 65d0: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000065d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 65d4: 1063 lrw r3, 0x20000010 // 65e0 + 65d6: 9360 ld.w r3, (r3, 0x0) + 65d8: 9340 ld.w r2, (r3, 0x0) + 65da: 6c08 or r0, r2 + 65dc: b300 st.w r0, (r3, 0x0) +} + 65de: 783c jmp r15 + 65e0: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000065e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 65e4: 3300 movi r3, 0 + 65e6: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 65e8: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 65ea: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 65ec: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 65ee: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 65f0: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 65f2: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 65f4: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 65f6: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 65f8: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 65fa: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 65fc: b06d st.w r3, (r0, 0x34) +} + 65fe: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00006600 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 6600: 9060 ld.w r3, (r0, 0x0) + 6602: 3ba0 bseti r3, 0 + 6604: b060 st.w r3, (r0, 0x0) +} + 6606: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00006608 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 6608: 9060 ld.w r3, (r0, 0x0) + 660a: 3bac bseti r3, 12 + 660c: 3bae bseti r3, 14 + 660e: b060 st.w r3, (r0, 0x0) +} + 6610: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00006612 : +//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) +{ + 6612: 14c3 push r4-r6 + 6614: 98a4 ld.w r5, (r14, 0x10) + 6616: 6d97 mov r6, r5 + 6618: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 661a: 6d18 or r4, r6 + 661c: 6cd0 or r3, r4 + 661e: 90a1 ld.w r5, (r0, 0x4) + 6620: 6c4c or r1, r3 + 6622: 6c54 or r1, r5 + 6624: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 6626: b042 st.w r2, (r0, 0x8) +} + 6628: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000662a : +//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) +{ + 662a: 14c4 push r4-r7 + 662c: 1421 subi r14, r14, 4 + 662e: 9885 ld.w r4, (r14, 0x14) + 6630: 6dd3 mov r7, r4 + 6632: 9886 ld.w r4, (r14, 0x18) + 6634: b880 st.w r4, (r14, 0x0) + 6636: 9887 ld.w r4, (r14, 0x1c) + 6638: 6d93 mov r6, r4 + 663a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 663c: 6d58 or r5, r6 + 663e: 98c0 ld.w r6, (r14, 0x0) + 6640: 6d58 or r5, r6 + 6642: 6d5c or r5, r7 + 6644: 6cd4 or r3, r5 + 6646: 6c8c or r2, r3 + 6648: 9081 ld.w r4, (r0, 0x4) + 664a: 6c48 or r1, r2 + 664c: 6d04 or r4, r1 + 664e: 6d9f mov r6, r7 + 6650: b081 st.w r4, (r0, 0x4) +} + 6652: 1401 addi r14, r14, 4 + 6654: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00006656 : +//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; + 6656: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 6658: b044 st.w r2, (r0, 0x10) +} + 665a: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +0000665c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 665c: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 665e: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 6660: 0c04 bf 0x6668 // 6668 + BTx->IMCR |= BT_IMSCR_X; + 6662: 6c8c or r2, r3 + 6664: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 6666: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 6668: 68c9 andn r3, r2 + 666a: b06b st.w r3, (r0, 0x2c) +} + 666c: 07fd br 0x6666 // 6666 + +Disassembly of section .text.BT1_INT_ENABLE: + +00006670 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 6670: 3380 movi r3, 128 + 6672: 4376 lsli r3, r3, 22 + 6674: 1042 lrw r2, 0xe000e100 // 667c + 6676: b260 st.w r3, (r2, 0x0) +} + 6678: 783c jmp r15 + 667a: 0000 bkpt + 667c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00006680 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 6680: 1065 lrw r3, 0x20000040 // 6694 + 6682: 3200 movi r2, 0 + 6684: 9360 ld.w r3, (r3, 0x0) + 6686: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 6688: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 668a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 668c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 668e: b344 st.w r2, (r3, 0x10) +} + 6690: 783c jmp r15 + 6692: 0000 bkpt + 6694: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00006698 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 6698: 1065 lrw r3, 0x2000003c // 66ac + 669a: 3200 movi r2, 0 + 669c: 9360 ld.w r3, (r3, 0x0) + 669e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 66a0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 66a2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 66a4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 66a6: b344 st.w r2, (r3, 0x10) +} + 66a8: 783c jmp r15 + 66aa: 0000 bkpt + 66ac: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000066b0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 66b0: 1065 lrw r3, 0x20000038 // 66c4 + 66b2: 3200 movi r2, 0 + 66b4: 9360 ld.w r3, (r3, 0x0) + 66b6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 66b8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 66ba: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 66bc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 66be: b344 st.w r2, (r3, 0x10) +} + 66c0: 783c jmp r15 + 66c2: 0000 bkpt + 66c4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000066c8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 66c8: 1065 lrw r3, 0x20000040 // 66dc + 66ca: 320f movi r2, 15 + 66cc: 9360 ld.w r3, (r3, 0x0) + 66ce: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66d0: 3380 movi r3, 128 + 66d2: 4366 lsli r3, r3, 6 + 66d4: 1043 lrw r2, 0xe000e100 // 66e0 + 66d6: b260 st.w r3, (r2, 0x0) +} + 66d8: 783c jmp r15 + 66da: 0000 bkpt + 66dc: 20000040 .long 0x20000040 + 66e0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART1_Int_Enable: + +000066e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 66e4: 1065 lrw r3, 0x2000003c // 66f8 + 66e6: 320f movi r2, 15 + 66e8: 9360 ld.w r3, (r3, 0x0) + 66ea: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66ec: 3380 movi r3, 128 + 66ee: 4367 lsli r3, r3, 7 + 66f0: 1043 lrw r2, 0xe000e100 // 66fc + 66f2: b260 st.w r3, (r2, 0x0) +} + 66f4: 783c jmp r15 + 66f6: 0000 bkpt + 66f8: 2000003c .long 0x2000003c + 66fc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00006700 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 6700: 1065 lrw r3, 0x20000038 // 6714 + 6702: 320f movi r2, 15 + 6704: 9360 ld.w r3, (r3, 0x0) + 6706: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 6708: 3380 movi r3, 128 + 670a: 4368 lsli r3, r3, 8 + 670c: 1043 lrw r2, 0xe000e100 // 6718 + 670e: b260 st.w r3, (r2, 0x0) +} + 6710: 783c jmp r15 + 6712: 0000 bkpt + 6714: 20000038 .long 0x20000038 + 6718: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000671c : +//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) + 671c: 3840 cmpnei r0, 0 + 671e: 0821 bt 0x6760 // 6760 + { + if(UART_IO_G==0) + 6720: 3940 cmpnei r1, 0 + 6722: 080a bt 0x6736 // 6736 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 6724: 1177 lrw r3, 0x2000004c // 6800 + 6726: 31ff movi r1, 255 + 6728: 9340 ld.w r2, (r3, 0x0) + 672a: 9260 ld.w r3, (r2, 0x0) + 672c: 68c5 andn r3, r1 + 672e: 3ba2 bseti r3, 2 + 6730: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 6732: b260 st.w r3, (r2, 0x0) + 6734: 0415 br 0x675e // 675e + else if(UART_IO_G==1) + 6736: 3941 cmpnei r1, 1 + 6738: 0813 bt 0x675e // 675e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 673a: 1172 lrw r3, 0x2000004c // 6800 + 673c: 31f0 movi r1, 240 + 673e: 9340 ld.w r2, (r3, 0x0) + 6740: 9260 ld.w r3, (r2, 0x0) + 6742: 4130 lsli r1, r1, 16 + 6744: 68c5 andn r3, r1 + 6746: 31e0 movi r1, 224 + 6748: 412f lsli r1, r1, 15 + 674a: 6cc4 or r3, r1 + 674c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 674e: 31f0 movi r1, 240 + 6750: 9261 ld.w r3, (r2, 0x4) + 6752: 412c lsli r1, r1, 12 + 6754: 68c5 andn r3, r1 + 6756: 31e0 movi r1, 224 + 6758: 412b lsli r1, r1, 11 + 675a: 6cc4 or r3, r1 + 675c: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 675e: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 6760: 3841 cmpnei r0, 1 + 6762: 082d bt 0x67bc // 67bc + if(UART_IO_G==0) + 6764: 3940 cmpnei r1, 0 + 6766: 0814 bt 0x678e // 678e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 6768: 1167 lrw r3, 0x20000048 // 6804 + 676a: 310f movi r1, 15 + 676c: 9340 ld.w r2, (r3, 0x0) + 676e: 9260 ld.w r3, (r2, 0x0) + 6770: 68c5 andn r3, r1 + 6772: 3107 movi r1, 7 + 6774: 6cc4 or r3, r1 + 6776: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 6778: 32f0 movi r2, 240 + 677a: 1162 lrw r3, 0x2000004c // 6800 + 677c: 4250 lsli r2, r2, 16 + 677e: 9320 ld.w r1, (r3, 0x0) + 6780: 9161 ld.w r3, (r1, 0x4) + 6782: 68c9 andn r3, r2 + 6784: 32e0 movi r2, 224 + 6786: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 6788: 6cc8 or r3, r2 + 678a: b161 st.w r3, (r1, 0x4) + 678c: 07e9 br 0x675e // 675e + else if(UART_IO_G==1) + 678e: 3941 cmpnei r1, 1 + 6790: 080c bt 0x67a8 // 67a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 6792: 107c lrw r3, 0x2000004c // 6800 + 6794: 32ff movi r2, 255 + 6796: 9320 ld.w r1, (r3, 0x0) + 6798: 424c lsli r2, r2, 12 + 679a: 9160 ld.w r3, (r1, 0x0) + 679c: 68c9 andn r3, r2 + 679e: 32ee movi r2, 238 + 67a0: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67a2: 6cc8 or r3, r2 + 67a4: b160 st.w r3, (r1, 0x0) +} + 67a6: 07dc br 0x675e // 675e + else if(UART_IO_G==2) + 67a8: 3942 cmpnei r1, 2 + 67aa: 0bda bt 0x675e // 675e + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 67ac: 1075 lrw r3, 0x2000004c // 6800 + 67ae: 32ee movi r2, 238 + 67b0: 9320 ld.w r1, (r3, 0x0) + 67b2: 9161 ld.w r3, (r1, 0x4) + 67b4: 4368 lsli r3, r3, 8 + 67b6: 4b68 lsri r3, r3, 8 + 67b8: 4257 lsli r2, r2, 23 + 67ba: 07e7 br 0x6788 // 6788 + if (IO_UART_NUM==IO_UART2) + 67bc: 3842 cmpnei r0, 2 + 67be: 0bd0 bt 0x675e // 675e + if(UART_IO_G==0) + 67c0: 3940 cmpnei r1, 0 + 67c2: 0809 bt 0x67d4 // 67d4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 67c4: 106f lrw r3, 0x2000004c // 6800 + 67c6: 31ff movi r1, 255 + 67c8: 9340 ld.w r2, (r3, 0x0) + 67ca: 9260 ld.w r3, (r2, 0x0) + 67cc: 68c5 andn r3, r1 + 67ce: 3177 movi r1, 119 + 67d0: 6cc4 or r3, r1 + 67d2: 07b0 br 0x6732 // 6732 + else if(UART_IO_G==1) + 67d4: 3941 cmpnei r1, 1 + 67d6: 0809 bt 0x67e8 // 67e8 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 67d8: 106a lrw r3, 0x2000004c // 6800 + 67da: 32ee movi r2, 238 + 67dc: 9320 ld.w r1, (r3, 0x0) + 67de: 9160 ld.w r3, (r1, 0x0) + 67e0: 4368 lsli r3, r3, 8 + 67e2: 4b68 lsri r3, r3, 8 + 67e4: 4257 lsli r2, r2, 23 + 67e6: 07de br 0x67a2 // 67a2 + else if(UART_IO_G==2) + 67e8: 3942 cmpnei r1, 2 + 67ea: 0bba bt 0x675e // 675e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67ec: 1066 lrw r3, 0x20000048 // 6804 + 67ee: 32ff movi r2, 255 + 67f0: 9320 ld.w r1, (r3, 0x0) + 67f2: 4250 lsli r2, r2, 16 + 67f4: 9160 ld.w r3, (r1, 0x0) + 67f6: 68c9 andn r3, r2 + 67f8: 32cc movi r2, 204 + 67fa: 424f lsli r2, r2, 15 + 67fc: 07d3 br 0x67a2 // 67a2 + 67fe: 0000 bkpt + 6800: 2000004c .long 0x2000004c + 6804: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00006808 : +//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); + 6808: 1063 lrw r3, 0x8000f // 6814 + 680a: 6c8c or r2, r3 + 680c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 680e: b024 st.w r1, (r0, 0x10) +} + 6810: 783c jmp r15 + 6812: 0000 bkpt + 6814: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00006818 : +//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) +{ + 6818: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681a: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 681c: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681e: 5b85 subu r4, r3, r1 + 6820: 6490 cmphs r4, r2 + 6822: 0c02 bf 0x6826 // 6826 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 6824: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 6826: 8380 ld.b r4, (r3, 0x0) + 6828: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 682a: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 682c: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 682e: 3c40 cmpnei r4, 0 + 6830: 0bfd bt 0x682a // 682a + 6832: 2300 addi r3, 1 + 6834: 07f5 br 0x681e // 681e + +Disassembly of section .text.EPT_Stop: + +00006838 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 6838: 1068 lrw r3, 0x20000020 // 6858 + 683a: 3280 movi r2, 128 + 683c: 9360 ld.w r3, (r3, 0x0) + 683e: 608c addu r2, r3 + 6840: 1027 lrw r1, 0xa55ac73a // 685c + 6842: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 6844: 9341 ld.w r2, (r3, 0x4) + 6846: 31fe movi r1, 254 + 6848: 6884 and r2, r1 + 684a: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 684c: 3101 movi r1, 1 + 684e: 9341 ld.w r2, (r3, 0x4) + 6850: 6884 and r2, r1 + 6852: 3a40 cmpnei r2, 0 + 6854: 0bfd bt 0x684e // 684e +} + 6856: 783c jmp r15 + 6858: 20000020 .long 0x20000020 + 685c: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00006860 : + 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) +{ + 6860: 14c4 push r4-r7 + 6862: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 6864: 1165 lrw r3, 0x20000060 // 68f8 + 6866: 1186 lrw r4, 0x5a5a5a5a // 68fc + 6868: 9360 ld.w r3, (r3, 0x0) + 686a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 686c: 3407 movi r4, 7 + 686e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6870: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 6872: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 6874: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 6876: 9384 ld.w r4, (r3, 0x10) + 6878: 3c40 cmpnei r4, 0 + 687a: 0bfe bt 0x6876 // 6876 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 687c: 2102 addi r1, 3 + 687e: 4922 lsri r1, r1, 2 + 6880: 4122 lsli r1, r1, 2 + 6882: 6048 addu r1, r2 + 6884: b820 st.w r1, (r14, 0x0) + 6886: 5829 subu r1, r0, r2 + 6888: b821 st.w r1, (r14, 0x4) + 688a: 9820 ld.w r1, (r14, 0x0) + 688c: 644a cmpne r2, r1 + 688e: 0826 bt 0x68da // 68da + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 6890: 3106 movi r1, 6 + SetUserKey; + 6892: 105b lrw r2, 0x5a5a5a5a // 68fc + 6894: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 6896: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6898: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 689a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 689c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 689e: 9324 ld.w r1, (r3, 0x10) + 68a0: 3940 cmpnei r1, 0 + 68a2: 0bfe bt 0x689e // 689e + //Perform pre-programming 4 + SetUserKey; + 68a4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68a6: 3201 movi r2, 1 + 68a8: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68aa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ac: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 68ae: 934a ld.w r2, (r3, 0x28) + 68b0: 3a44 cmpnei r2, 4 + 68b2: 0bfe bt 0x68ae // 68ae + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 68b4: 3102 movi r1, 2 + SetUserKey; + 68b6: 1052 lrw r2, 0x5a5a5a5a // 68fc + 68b8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 68ba: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 68bc: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 68be: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68c0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 68c2: 932a ld.w r1, (r3, 0x28) + 68c4: 3941 cmpnei r1, 1 + 68c6: 0bfe bt 0x68c2 // 68c2 + //Write page cache data to flash memory 6 + SetUserKey; + 68c8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68ca: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68cc: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ce: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 68d0: 934a ld.w r2, (r3, 0x28) + 68d2: 3a42 cmpnei r2, 2 + 68d4: 0bfe bt 0x68d0 // 68d0 +} + 68d6: 1402 addi r14, r14, 8 + 68d8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 68da: 82e0 ld.b r7, (r2, 0x0) + 68dc: 8281 ld.b r4, (r2, 0x1) + 68de: 4488 lsli r4, r4, 8 + 68e0: 8222 ld.b r1, (r2, 0x2) + 68e2: 611c addu r4, r7 + 68e4: 82a3 ld.b r5, (r2, 0x3) + 68e6: 4130 lsli r1, r1, 16 + 68e8: 98c1 ld.w r6, (r14, 0x4) + 68ea: 6050 addu r1, r4 + 68ec: 45b8 lsli r5, r5, 24 + 68ee: 6188 addu r6, r2 + 68f0: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 68f2: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 68f4: 2203 addi r2, 4 + 68f6: 07ca br 0x688a // 688a + 68f8: 20000060 .long 0x20000060 + 68fc: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00006900 : +//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) +{ + 6900: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 690c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 690e: 3b40 cmpnei r3, 0 + 6910: 0c06 bf 0x691c // 691c + 6912: 6d0f mov r4, r3 + 6914: 6914 and r4, r5 + 6916: 3c40 cmpnei r4, 0 + 6918: 0802 bt 0x691c // 691c + RdStartAdd +=4; + 691a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 691c: 6d0f mov r4, r3 + 691e: 6914 and r4, r5 + 6920: 6100 addu r4, r0 + 6922: 8480 ld.b r4, (r4, 0x0) + 6924: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +0000692c
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 692c: 14d0 push r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 692e: e00000ab bsr 0x6a84 // 6a84 + + Dbg_Println(DBG_BIT_SYS_STATUS,"APP Run Start! 111 %s",Project_Boot_Support); + 6932: 102d lrw r1, 0xaf18 // 6964 + 6934: 3000 movi r0, 0 + 6936: 104d lrw r2, 0x2000009c // 6968 + 6938: e000087e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 693c: 102c lrw r1, 0xaf2e // 696c + 693e: 3000 movi r0, 0 + 6940: e000087a bsr 0x7a34 // 7a34 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 6944: e3fffba4 bsr 0x608c // 608c + + UART0_TASK(); + 6948: e00006da bsr 0x76fc // 76fc + + UART1_TASK(); + 694c: e0000988 bsr 0x7c5c // 7c5c + + UART2_TASK(); + 6950: e00009cc bsr 0x7ce8 // 7ce8 + + DIP_ScanTask(); + 6954: e0000aac bsr 0x7eac // 7eac + + BLV_EngDetect_Tack(); + 6958: e00017d8 bsr 0x9908 // 9908 + + BUS485Send_Task(); + 695c: e00008fc bsr 0x7b54 // 7b54 + 6960: 07f2 br 0x6944 // 6944 + 6962: 0000 bkpt + 6964: 0000af18 .long 0x0000af18 + 6968: 2000009c .long 0x2000009c + 696c: 0000af2e .long 0x0000af2e + +Disassembly of section .text.delay_nms: + +00006970 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 6970: 14d0 push r15 + 6972: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 6974: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 6976: 3300 movi r3, 0 + j = 50* t; + 6978: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 697a: b862 st.w r3, (r14, 0x8) + j = 50* t; + 697c: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 697e: b860 st.w r3, (r14, 0x0) + 6980: 9840 ld.w r2, (r14, 0x0) + 6982: 9861 ld.w r3, (r14, 0x4) + 6984: 64c8 cmphs r2, r3 + 6986: 0c03 bf 0x698c // 698c + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 6988: 1403 addi r14, r14, 12 + 698a: 1490 pop r15 + k++; + 698c: 9862 ld.w r3, (r14, 0x8) + 698e: 2300 addi r3, 1 + 6990: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 6992: e3fffb7d bsr 0x608c // 608c + for ( i = 0; i < j; i++ ) + 6996: 9860 ld.w r3, (r14, 0x0) + 6998: 2300 addi r3, 1 + 699a: 07f2 br 0x697e // 697e + +Disassembly of section .text.delay_nus: + +0000699c : +void delay_nus(unsigned int t) +{ + 699c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 699e: 3300 movi r3, 0 + 69a0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 69a2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 69a4: b860 st.w r3, (r14, 0x0) + 69a6: 9840 ld.w r2, (r14, 0x0) + 69a8: 9861 ld.w r3, (r14, 0x4) + 69aa: 64c8 cmphs r2, r3 + 69ac: 0c03 bf 0x69b2 // 69b2 + { + k++; + } +} + 69ae: 1403 addi r14, r14, 12 + 69b0: 783c jmp r15 + k++; + 69b2: 9862 ld.w r3, (r14, 0x8) + 69b4: 2300 addi r3, 1 + 69b6: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 69b8: 9860 ld.w r3, (r14, 0x0) + 69ba: 2300 addi r3, 1 + 69bc: 07f4 br 0x69a4 // 69a4 + +Disassembly of section .text.BT_CONFIG: + +000069c0 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 69c0: 14d2 push r4-r5, r15 + 69c2: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 69c4: 1095 lrw r4, 0x20000008 // 6a18 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69c6: 3500 movi r5, 0 + BT_DeInit(BT1); + 69c8: 9400 ld.w r0, (r4, 0x0) + 69ca: e3fffe0d bsr 0x65e4 // 65e4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69ce: 9400 ld.w r0, (r4, 0x0) + 69d0: b8a1 st.w r5, (r14, 0x4) + 69d2: b8a0 st.w r5, (r14, 0x0) + 69d4: 3308 movi r3, 8 + 69d6: 3200 movi r2, 0 + 69d8: 3101 movi r1, 1 + 69da: e3fffe1c bsr 0x6612 // 6612 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 69de: 3380 movi r3, 128 + 69e0: 4363 lsli r3, r3, 3 + 69e2: b861 st.w r3, (r14, 0x4) + 69e4: 9400 ld.w r0, (r4, 0x0) + 69e6: 3300 movi r3, 0 + 69e8: b8a3 st.w r5, (r14, 0xc) + 69ea: b8a2 st.w r5, (r14, 0x8) + 69ec: b8a0 st.w r5, (r14, 0x0) + 69ee: 3200 movi r2, 0 + 69f0: 3180 movi r1, 128 + 69f2: e3fffe1c bsr 0x662a // 662a + BT_Period_CMP_Write(BT1,4780,1); + 69f6: 3201 movi r2, 1 + 69f8: 1029 lrw r1, 0x12ac // 6a1c + 69fa: 9400 ld.w r0, (r4, 0x0) + 69fc: e3fffe2d bsr 0x6656 // 6656 + BT_Start(BT1); + 6a00: 9400 ld.w r0, (r4, 0x0) + 6a02: e3fffdff bsr 0x6600 // 6600 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 6a06: 9400 ld.w r0, (r4, 0x0) + 6a08: 3202 movi r2, 2 + 6a0a: 3101 movi r1, 1 + 6a0c: e3fffe28 bsr 0x665c // 665c + BT1_INT_ENABLE(); + 6a10: e3fffe30 bsr 0x6670 // 6670 + +} + 6a14: 1404 addi r14, r14, 16 + 6a16: 1492 pop r4-r5, r15 + 6a18: 20000008 .long 0x20000008 + 6a1c: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00006a20 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 6a20: 14d0 push r15 + 6a22: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 6a24: e3fffa80 bsr 0x5f24 // 5f24 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 6a28: 3101 movi r1, 1 + 6a2a: 3001 movi r0, 1 + 6a2c: e3fffaa2 bsr 0x5f70 // 5f70 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 6a30: 3000 movi r0, 0 + 6a32: e3fffafb bsr 0x6028 // 6028 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 6a36: 3180 movi r1, 128 + 6a38: 3308 movi r3, 8 + 6a3a: 3200 movi r2, 0 + 6a3c: 4121 lsli r1, r1, 1 + 6a3e: 3002 movi r0, 2 + 6a40: e3fffab0 bsr 0x5fa0 // 5fa0 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 6a44: 3080 movi r0, 128 + 6a46: 3118 movi r1, 24 + 6a48: 4002 lsli r0, r0, 2 + 6a4a: e3fffb2b bsr 0x60a0 // 60a0 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 6a4e: 3001 movi r0, 1 + 6a50: e3fffb00 bsr 0x6050 // 6050 + SYSCON_IWDCNT_Reload(); //reload WDT + 6a54: e3fffb1c bsr 0x608c // 608c + IWDT_Int_Enable(); + 6a58: e3fffb4e bsr 0x60f4 // 60f4 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 6a5c: 3340 movi r3, 64 + 6a5e: b860 st.w r3, (r14, 0x0) + 6a60: 31c0 movi r1, 192 + 6a62: 3380 movi r3, 128 + 6a64: 4364 lsli r3, r3, 4 + 6a66: 3200 movi r2, 0 + 6a68: 4123 lsli r1, r1, 3 + 6a6a: 3000 movi r0, 0 + 6a6c: e3fffb26 bsr 0x60b8 // 60b8 + LVD_Int_Enable(); + 6a70: e3fffb34 bsr 0x60d8 // 60d8 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 6a74: e3fffb92 bsr 0x6198 // 6198 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 6a78: 3000 movi r0, 0 + 6a7a: e0001f27 bsr 0xa8c8 // a8c8 + +} + 6a7e: 1401 addi r14, r14, 4 + 6a80: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00006a84 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 6a84: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a86: 1079 lrw r3, 0x2000005c // 6ae8 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a88: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a8a: 9340 ld.w r2, (r3, 0x0) + 6a8c: 1078 lrw r3, 0xfffffff // 6aec + 6a8e: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 6a90: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a92: 926c ld.w r3, (r2, 0x30) + 6a94: 68c4 and r3, r1 + 6a96: 3b40 cmpnei r3, 0 + 6a98: 0ffd bf 0x6a92 // 6a92 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 6a9a: e3ffffc3 bsr 0x6a20 // 6a20 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 6a9e: e000054b bsr 0x7534 // 7534 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 6aa2: e3fffb91 bsr 0x61c4 // 61c4 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART0_IRQ,1); + 6aa6: 3101 movi r1, 1 + 6aa8: 300d movi r0, 13 + 6aaa: e3fffb9f bsr 0x61e8 // 61e8 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 6aae: 3101 movi r1, 1 + 6ab0: 300e movi r0, 14 + 6ab2: e3fffb9b bsr 0x61e8 // 61e8 + + Set_INT_Priority(UART2_IRQ,1); + 6ab6: 3101 movi r1, 1 + 6ab8: 300f movi r0, 15 + 6aba: e3fffb97 bsr 0x61e8 // 61e8 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 6abe: e3fffbad bsr 0x6218 // 6218 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 6ac2: e3ffff7f bsr 0x69c0 // 69c0 + + UARTx_Init(UART_0,HLW8110_RecvData_Processing); + 6ac6: 102b lrw r1, 0x8ef8 // 6af0 + 6ac8: 3000 movi r0, 0 + 6aca: e000053b bsr 0x7540 // 7540 + + UARTx_Init(UART_1,HLW_485Recv_Processing); + 6ace: 102a lrw r1, 0x9c70 // 6af4 + 6ad0: 3001 movi r0, 1 + 6ad2: e0000537 bsr 0x7540 // 7540 + + UARTx_Init(UART_2,BT_Recv_Processing); + 6ad6: 1029 lrw r1, 0x9dd0 // 6af8 + 6ad8: 3002 movi r0, 2 + 6ada: e0000533 bsr 0x7540 // 7540 + + Boot_Function_Init(); + 6ade: e0001a05 bsr 0x9ee8 // 9ee8 + + DIP_Switch_Init(); + 6ae2: e000099b bsr 0x7e18 // 7e18 +} + 6ae6: 1490 pop r15 + 6ae8: 2000005c .long 0x2000005c + 6aec: 0fffffff .long 0x0fffffff + 6af0: 00008ef8 .long 0x00008ef8 + 6af4: 00009c70 .long 0x00009c70 + 6af8: 00009dd0 .long 0x00009dd0 + +Disassembly of section .text.SYSCONIntHandler: + +00006afc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 6afc: 1460 nie + 6afe: 1462 ipush + // ISR content ... + nop; + 6b00: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 6b02: 117a lrw r3, 0x2000005c // 6be8 + 6b04: 3280 movi r2, 128 + 6b06: 9360 ld.w r3, (r3, 0x0) + 6b08: 60c8 addu r3, r2 + 6b0a: 9323 ld.w r1, (r3, 0xc) + 6b0c: 3001 movi r0, 1 + 6b0e: 6840 and r1, r0 + 6b10: 3940 cmpnei r1, 0 + 6b12: 0c04 bf 0x6b1a // 6b1a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 6b14: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 6b16: 1463 ipop + 6b18: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 6b1a: 9323 ld.w r1, (r3, 0xc) + 6b1c: 3002 movi r0, 2 + 6b1e: 6840 and r1, r0 + 6b20: 3940 cmpnei r1, 0 + 6b22: 0bf9 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 6b24: 9323 ld.w r1, (r3, 0xc) + 6b26: 3008 movi r0, 8 + 6b28: 6840 and r1, r0 + 6b2a: 3940 cmpnei r1, 0 + 6b2c: 0bf4 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 6b2e: 9323 ld.w r1, (r3, 0xc) + 6b30: 3010 movi r0, 16 + 6b32: 6840 and r1, r0 + 6b34: 3940 cmpnei r1, 0 + 6b36: 0bef bt 0x6b14 // 6b14 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 6b38: 9323 ld.w r1, (r3, 0xc) + 6b3a: 6848 and r1, r2 + 6b3c: 3940 cmpnei r1, 0 + 6b3e: 0c03 bf 0x6b44 // 6b44 + SYSCON->ICR = CMD_ERR_ST; + 6b40: b341 st.w r2, (r3, 0x4) +} + 6b42: 07ea br 0x6b16 // 6b16 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 6b44: 3280 movi r2, 128 + 6b46: 9323 ld.w r1, (r3, 0xc) + 6b48: 4241 lsli r2, r2, 1 + 6b4a: 6848 and r1, r2 + 6b4c: 3940 cmpnei r1, 0 + 6b4e: 0bf9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 6b50: 3280 movi r2, 128 + 6b52: 9323 ld.w r1, (r3, 0xc) + 6b54: 4242 lsli r2, r2, 2 + 6b56: 6848 and r1, r2 + 6b58: 3940 cmpnei r1, 0 + 6b5a: 0bf3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 6b5c: 3280 movi r2, 128 + 6b5e: 9323 ld.w r1, (r3, 0xc) + 6b60: 4243 lsli r2, r2, 3 + 6b62: 6848 and r1, r2 + 6b64: 3940 cmpnei r1, 0 + 6b66: 0bed bt 0x6b40 // 6b40 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 6b68: 3280 movi r2, 128 + 6b6a: 9323 ld.w r1, (r3, 0xc) + 6b6c: 4244 lsli r2, r2, 4 + 6b6e: 6848 and r1, r2 + 6b70: 3940 cmpnei r1, 0 + 6b72: 0c03 bf 0x6b78 // 6b78 + nop; + 6b74: 6c03 mov r0, r0 + 6b76: 07e5 br 0x6b40 // 6b40 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 6b78: 3280 movi r2, 128 + 6b7a: 9323 ld.w r1, (r3, 0xc) + 6b7c: 4245 lsli r2, r2, 5 + 6b7e: 6848 and r1, r2 + 6b80: 3940 cmpnei r1, 0 + 6b82: 0bdf bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 6b84: 3280 movi r2, 128 + 6b86: 9323 ld.w r1, (r3, 0xc) + 6b88: 4246 lsli r2, r2, 6 + 6b8a: 6848 and r1, r2 + 6b8c: 3940 cmpnei r1, 0 + 6b8e: 0bd9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 6b90: 3280 movi r2, 128 + 6b92: 9323 ld.w r1, (r3, 0xc) + 6b94: 4247 lsli r2, r2, 7 + 6b96: 6848 and r1, r2 + 6b98: 3940 cmpnei r1, 0 + 6b9a: 0bd3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 6b9c: 3280 movi r2, 128 + 6b9e: 9323 ld.w r1, (r3, 0xc) + 6ba0: 424b lsli r2, r2, 11 + 6ba2: 6848 and r1, r2 + 6ba4: 3940 cmpnei r1, 0 + 6ba6: 0bcd bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 6ba8: 3280 movi r2, 128 + 6baa: 9323 ld.w r1, (r3, 0xc) + 6bac: 424c lsli r2, r2, 12 + 6bae: 6848 and r1, r2 + 6bb0: 3940 cmpnei r1, 0 + 6bb2: 0bc7 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 6bb4: 3280 movi r2, 128 + 6bb6: 9323 ld.w r1, (r3, 0xc) + 6bb8: 424d lsli r2, r2, 13 + 6bba: 6848 and r1, r2 + 6bbc: 3940 cmpnei r1, 0 + 6bbe: 0bc1 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 6bc0: 3280 movi r2, 128 + 6bc2: 9323 ld.w r1, (r3, 0xc) + 6bc4: 424e lsli r2, r2, 14 + 6bc6: 6848 and r1, r2 + 6bc8: 3940 cmpnei r1, 0 + 6bca: 0bbb bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 6bcc: 3280 movi r2, 128 + 6bce: 9323 ld.w r1, (r3, 0xc) + 6bd0: 424f lsli r2, r2, 15 + 6bd2: 6848 and r1, r2 + 6bd4: 3940 cmpnei r1, 0 + 6bd6: 0bb5 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 6bd8: 3280 movi r2, 128 + 6bda: 9323 ld.w r1, (r3, 0xc) + 6bdc: 4256 lsli r2, r2, 22 + 6bde: 6848 and r1, r2 + 6be0: 3940 cmpnei r1, 0 + 6be2: 0baf bt 0x6b40 // 6b40 + 6be4: 0799 br 0x6b16 // 6b16 + 6be6: 0000 bkpt + 6be8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00006bec : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 6bec: 1460 nie + 6bee: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 6bf0: 1078 lrw r3, 0x20000060 // 6c50 + 6bf2: 3101 movi r1, 1 + 6bf4: 9360 ld.w r3, (r3, 0x0) + 6bf6: 934b ld.w r2, (r3, 0x2c) + 6bf8: 6884 and r2, r1 + 6bfa: 3a40 cmpnei r2, 0 + 6bfc: 0c04 bf 0x6c04 // 6c04 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 6bfe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 6c00: 1463 ipop + 6c02: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 6c04: 934b ld.w r2, (r3, 0x2c) + 6c06: 3102 movi r1, 2 + 6c08: 6884 and r2, r1 + 6c0a: 3a40 cmpnei r2, 0 + 6c0c: 0bf9 bt 0x6bfe // 6bfe + else if(IFC->MISR&PEP_END_INT) + 6c0e: 934b ld.w r2, (r3, 0x2c) + 6c10: 3104 movi r1, 4 + 6c12: 6884 and r2, r1 + 6c14: 3a40 cmpnei r2, 0 + 6c16: 0bf4 bt 0x6bfe // 6bfe + else if(IFC->MISR&PROT_ERR_INT) + 6c18: 3280 movi r2, 128 + 6c1a: 932b ld.w r1, (r3, 0x2c) + 6c1c: 4245 lsli r2, r2, 5 + 6c1e: 6848 and r1, r2 + 6c20: 3940 cmpnei r1, 0 + 6c22: 0c03 bf 0x6c28 // 6c28 + IFC->ICR=OVW_ERR_INT; + 6c24: b34c st.w r2, (r3, 0x30) +} + 6c26: 07ed br 0x6c00 // 6c00 + else if(IFC->MISR&UDEF_ERR_INT) + 6c28: 3280 movi r2, 128 + 6c2a: 932b ld.w r1, (r3, 0x2c) + 6c2c: 4246 lsli r2, r2, 6 + 6c2e: 6848 and r1, r2 + 6c30: 3940 cmpnei r1, 0 + 6c32: 0bf9 bt 0x6c24 // 6c24 + else if(IFC->MISR&ADDR_ERR_INT) + 6c34: 3280 movi r2, 128 + 6c36: 932b ld.w r1, (r3, 0x2c) + 6c38: 4247 lsli r2, r2, 7 + 6c3a: 6848 and r1, r2 + 6c3c: 3940 cmpnei r1, 0 + 6c3e: 0bf3 bt 0x6c24 // 6c24 + else if(IFC->MISR&OVW_ERR_INT) + 6c40: 3280 movi r2, 128 + 6c42: 932b ld.w r1, (r3, 0x2c) + 6c44: 4248 lsli r2, r2, 8 + 6c46: 6848 and r1, r2 + 6c48: 3940 cmpnei r1, 0 + 6c4a: 0bed bt 0x6c24 // 6c24 + 6c4c: 07da br 0x6c00 // 6c00 + 6c4e: 0000 bkpt + 6c50: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00006c54 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 6c54: 1460 nie + 6c56: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 6c58: 1078 lrw r3, 0x20000050 // 6cb8 + 6c5a: 3101 movi r1, 1 + 6c5c: 9360 ld.w r3, (r3, 0x0) + 6c5e: 9348 ld.w r2, (r3, 0x20) + 6c60: 6884 and r2, r1 + 6c62: 3a40 cmpnei r2, 0 + 6c64: 0c04 bf 0x6c6c // 6c6c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 6c66: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 6c68: 1463 ipop + 6c6a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 6c6c: 9348 ld.w r2, (r3, 0x20) + 6c6e: 3102 movi r1, 2 + 6c70: 6884 and r2, r1 + 6c72: 3a40 cmpnei r2, 0 + 6c74: 0bf9 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 6c76: 9348 ld.w r2, (r3, 0x20) + 6c78: 3104 movi r1, 4 + 6c7a: 6884 and r2, r1 + 6c7c: 3a40 cmpnei r2, 0 + 6c7e: 0bf4 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 6c80: 9348 ld.w r2, (r3, 0x20) + 6c82: 3110 movi r1, 16 + 6c84: 6884 and r2, r1 + 6c86: 3a40 cmpnei r2, 0 + 6c88: 0bef bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 6c8a: 9348 ld.w r2, (r3, 0x20) + 6c8c: 3120 movi r1, 32 + 6c8e: 6884 and r2, r1 + 6c90: 3a40 cmpnei r2, 0 + 6c92: 0bea bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 6c94: 9348 ld.w r2, (r3, 0x20) + 6c96: 3140 movi r1, 64 + 6c98: 6884 and r2, r1 + 6c9a: 3a40 cmpnei r2, 0 + 6c9c: 0be5 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 6c9e: 9348 ld.w r2, (r3, 0x20) + 6ca0: 3180 movi r1, 128 + 6ca2: 6884 and r2, r1 + 6ca4: 3a40 cmpnei r2, 0 + 6ca6: 0be0 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 6ca8: 3280 movi r2, 128 + 6caa: 9328 ld.w r1, (r3, 0x20) + 6cac: 4249 lsli r2, r2, 9 + 6cae: 6848 and r1, r2 + 6cb0: 3940 cmpnei r1, 0 + 6cb2: 0fdb bf 0x6c68 // 6c68 + ADC0->CSR = ADC12_SEQ_END0; + 6cb4: b347 st.w r2, (r3, 0x1c) +} + 6cb6: 07d9 br 0x6c68 // 6c68 + 6cb8: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00006cbc : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 6cbc: 1460 nie + 6cbe: 1462 ipush + 6cc0: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 6cc2: 1387 lrw r4, 0x20000020 // 6e5c + 6cc4: 3280 movi r2, 128 + 6cc6: 9460 ld.w r3, (r4, 0x0) + 6cc8: 60c8 addu r3, r2 + 6cca: 9335 ld.w r1, (r3, 0x54) + 6ccc: 3001 movi r0, 1 + 6cce: 6840 and r1, r0 + 6cd0: 3940 cmpnei r1, 0 + 6cd2: 0c03 bf 0x6cd8 // 6cd8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 6cd4: b317 st.w r0, (r3, 0x5c) + 6cd6: 0424 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 6cd8: 9335 ld.w r1, (r3, 0x54) + 6cda: 3002 movi r0, 2 + 6cdc: 6840 and r1, r0 + 6cde: 3940 cmpnei r1, 0 + 6ce0: 0bfa bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 6ce2: 9335 ld.w r1, (r3, 0x54) + 6ce4: 3004 movi r0, 4 + 6ce6: 6840 and r1, r0 + 6ce8: 3940 cmpnei r1, 0 + 6cea: 0bf5 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 6cec: 9335 ld.w r1, (r3, 0x54) + 6cee: 3008 movi r0, 8 + 6cf0: 6840 and r1, r0 + 6cf2: 3940 cmpnei r1, 0 + 6cf4: 0bf0 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 6cf6: 9335 ld.w r1, (r3, 0x54) + 6cf8: 3010 movi r0, 16 + 6cfa: 6840 and r1, r0 + 6cfc: 3940 cmpnei r1, 0 + 6cfe: 0c1f bf 0x6d3c // 6d3c + EPT0->ICR=EPT_CAP_LD0; + 6d00: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 6d02: 3200 movi r2, 0 + 6d04: 3101 movi r1, 1 + 6d06: 3000 movi r0, 0 + 6d08: e3fffa04 bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 6d0c: 3201 movi r2, 1 + 6d0e: 3101 movi r1, 1 + 6d10: 3001 movi r0, 1 + 6d12: e3fff9ff bsr 0x6110 // 6110 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 6d16: 9460 ld.w r3, (r4, 0x0) + 6d18: 934b ld.w r2, (r3, 0x2c) + 6d1a: 1272 lrw r3, 0x2000020c // 6e60 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d1c: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 6d1e: 9460 ld.w r3, (r4, 0x0) + 6d20: 3280 movi r2, 128 + 6d22: 60c8 addu r3, r2 + 6d24: 932b ld.w r1, (r3, 0x2c) + 6d26: 3001 movi r0, 1 + 6d28: 6840 and r1, r0 + 6d2a: 3940 cmpnei r1, 0 + 6d2c: 0c61 bf 0x6dee // 6dee + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 6d2e: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 6d30: d9ee2001 ld.w r15, (r14, 0x4) + 6d34: 9880 ld.w r4, (r14, 0x0) + 6d36: 1402 addi r14, r14, 8 + 6d38: 1463 ipop + 6d3a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 6d3c: 9335 ld.w r1, (r3, 0x54) + 6d3e: 3020 movi r0, 32 + 6d40: 6840 and r1, r0 + 6d42: 3940 cmpnei r1, 0 + 6d44: 0c10 bf 0x6d64 // 6d64 + EPT0->ICR=EPT_CAP_LD1; + 6d46: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 6d48: 3200 movi r2, 0 + 6d4a: 3101 movi r1, 1 + 6d4c: 3001 movi r0, 1 + 6d4e: e3fff9e1 bsr 0x6110 // 6110 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 6d52: 3201 movi r2, 1 + 6d54: 3101 movi r1, 1 + 6d56: 3000 movi r0, 0 + 6d58: e3fff9dc bsr 0x6110 // 6110 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d5c: 9460 ld.w r3, (r4, 0x0) + 6d5e: 934c ld.w r2, (r3, 0x30) + 6d60: 1261 lrw r3, 0x20000208 // 6e64 + 6d62: 07dd br 0x6d1c // 6d1c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 6d64: 9335 ld.w r1, (r3, 0x54) + 6d66: 3040 movi r0, 64 + 6d68: 6840 and r1, r0 + 6d6a: 3940 cmpnei r1, 0 + 6d6c: 0bb4 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 6d6e: 9335 ld.w r1, (r3, 0x54) + 6d70: 6848 and r1, r2 + 6d72: 3940 cmpnei r1, 0 + 6d74: 0c03 bf 0x6d7a // 6d7a + EPT0->ICR=EPT_CDD; + 6d76: b357 st.w r2, (r3, 0x5c) + 6d78: 07d3 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 6d7a: 3280 movi r2, 128 + 6d7c: 9335 ld.w r1, (r3, 0x54) + 6d7e: 4241 lsli r2, r2, 1 + 6d80: 6848 and r1, r2 + 6d82: 3940 cmpnei r1, 0 + 6d84: 0bf9 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 6d86: 3280 movi r2, 128 + 6d88: 9335 ld.w r1, (r3, 0x54) + 6d8a: 4242 lsli r2, r2, 2 + 6d8c: 6848 and r1, r2 + 6d8e: 3940 cmpnei r1, 0 + 6d90: 0bf3 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 6d92: 3280 movi r2, 128 + 6d94: 9335 ld.w r1, (r3, 0x54) + 6d96: 4243 lsli r2, r2, 3 + 6d98: 6848 and r1, r2 + 6d9a: 3940 cmpnei r1, 0 + 6d9c: 0bed bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 6d9e: 3280 movi r2, 128 + 6da0: 9335 ld.w r1, (r3, 0x54) + 6da2: 4244 lsli r2, r2, 4 + 6da4: 6848 and r1, r2 + 6da6: 3940 cmpnei r1, 0 + 6da8: 0be7 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 6daa: 3280 movi r2, 128 + 6dac: 9335 ld.w r1, (r3, 0x54) + 6dae: 4245 lsli r2, r2, 5 + 6db0: 6848 and r1, r2 + 6db2: 3940 cmpnei r1, 0 + 6db4: 0be1 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 6db6: 3280 movi r2, 128 + 6db8: 9335 ld.w r1, (r3, 0x54) + 6dba: 4246 lsli r2, r2, 6 + 6dbc: 6848 and r1, r2 + 6dbe: 3940 cmpnei r1, 0 + 6dc0: 0bdb bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 6dc2: 3280 movi r2, 128 + 6dc4: 9335 ld.w r1, (r3, 0x54) + 6dc6: 4247 lsli r2, r2, 7 + 6dc8: 6848 and r1, r2 + 6dca: 3940 cmpnei r1, 0 + 6dcc: 0bd5 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 6dce: 3280 movi r2, 128 + 6dd0: 9335 ld.w r1, (r3, 0x54) + 6dd2: 4248 lsli r2, r2, 8 + 6dd4: 6848 and r1, r2 + 6dd6: 3940 cmpnei r1, 0 + 6dd8: 0bcf bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 6dda: 3280 movi r2, 128 + 6ddc: 9335 ld.w r1, (r3, 0x54) + 6dde: 4249 lsli r2, r2, 9 + 6de0: 6848 and r1, r2 + 6de2: 3940 cmpnei r1, 0 + 6de4: 0f9d bf 0x6d1e // 6d1e + EPT0->ICR=EPT_PEND; + 6de6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 6de8: e3fffd28 bsr 0x6838 // 6838 + 6dec: 0799 br 0x6d1e // 6d1e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 6dee: 932b ld.w r1, (r3, 0x2c) + 6df0: 3002 movi r0, 2 + 6df2: 6840 and r1, r0 + 6df4: 3940 cmpnei r1, 0 + 6df6: 0b9c bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 6df8: 932b ld.w r1, (r3, 0x2c) + 6dfa: 3004 movi r0, 4 + 6dfc: 6840 and r1, r0 + 6dfe: 3940 cmpnei r1, 0 + 6e00: 0b97 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 6e02: 932b ld.w r1, (r3, 0x2c) + 6e04: 3008 movi r0, 8 + 6e06: 6840 and r1, r0 + 6e08: 3940 cmpnei r1, 0 + 6e0a: 0b92 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 6e0c: 932b ld.w r1, (r3, 0x2c) + 6e0e: 3010 movi r0, 16 + 6e10: 6840 and r1, r0 + 6e12: 3940 cmpnei r1, 0 + 6e14: 0b8d bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 6e16: 932b ld.w r1, (r3, 0x2c) + 6e18: 3020 movi r0, 32 + 6e1a: 6840 and r1, r0 + 6e1c: 3940 cmpnei r1, 0 + 6e1e: 0b88 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 6e20: 932b ld.w r1, (r3, 0x2c) + 6e22: 3040 movi r0, 64 + 6e24: 6840 and r1, r0 + 6e26: 3940 cmpnei r1, 0 + 6e28: 0b83 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 6e2a: 932b ld.w r1, (r3, 0x2c) + 6e2c: 6848 and r1, r2 + 6e2e: 3940 cmpnei r1, 0 + 6e30: 0c03 bf 0x6e36 // 6e36 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 6e32: b34d st.w r2, (r3, 0x34) +} + 6e34: 077e br 0x6d30 // 6d30 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 6e36: 3280 movi r2, 128 + 6e38: 932b ld.w r1, (r3, 0x2c) + 6e3a: 4241 lsli r2, r2, 1 + 6e3c: 6848 and r1, r2 + 6e3e: 3940 cmpnei r1, 0 + 6e40: 0bf9 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 6e42: 3280 movi r2, 128 + 6e44: 932b ld.w r1, (r3, 0x2c) + 6e46: 4242 lsli r2, r2, 2 + 6e48: 6848 and r1, r2 + 6e4a: 3940 cmpnei r1, 0 + 6e4c: 0bf3 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 6e4e: 3280 movi r2, 128 + 6e50: 932b ld.w r1, (r3, 0x2c) + 6e52: 4243 lsli r2, r2, 3 + 6e54: 6848 and r1, r2 + 6e56: 3940 cmpnei r1, 0 + 6e58: 0bed bt 0x6e32 // 6e32 + 6e5a: 076b br 0x6d30 // 6d30 + 6e5c: 20000020 .long 0x20000020 + 6e60: 2000020c .long 0x2000020c + 6e64: 20000208 .long 0x20000208 + +Disassembly of section .text.WWDTHandler: + +00006e68 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 6e68: 1460 nie + 6e6a: 1462 ipush + 6e6c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 6e6e: 10ab lrw r5, 0x20000010 // 6e98 + 6e70: 3401 movi r4, 1 + 6e72: 9560 ld.w r3, (r5, 0x0) + 6e74: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 6e76: 30ff movi r0, 255 + 6e78: e3fffbae bsr 0x65d4 // 65d4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 6e7c: 9540 ld.w r2, (r5, 0x0) + 6e7e: 9263 ld.w r3, (r2, 0xc) + 6e80: 68d0 and r3, r4 + 6e82: 3b40 cmpnei r3, 0 + 6e84: 0c02 bf 0x6e88 // 6e88 + { + WWDT->ICR = WWDT_EVI; + 6e86: b285 st.w r4, (r2, 0x14) + } +} + 6e88: d9ee2002 ld.w r15, (r14, 0x8) + 6e8c: 98a1 ld.w r5, (r14, 0x4) + 6e8e: 9880 ld.w r4, (r14, 0x0) + 6e90: 1403 addi r14, r14, 12 + 6e92: 1463 ipop + 6e94: 1461 nir + 6e96: 0000 bkpt + 6e98: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00006e9c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 6e9c: 1460 nie + 6e9e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 6ea0: 107e lrw r3, 0x20000024 // 6f18 + 6ea2: 3101 movi r1, 1 + 6ea4: 9360 ld.w r3, (r3, 0x0) + 6ea6: 237f addi r3, 128 + 6ea8: 9355 ld.w r2, (r3, 0x54) + 6eaa: 6884 and r2, r1 + 6eac: 3a40 cmpnei r2, 0 + 6eae: 0c04 bf 0x6eb6 // 6eb6 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 6eb0: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 6eb2: 1463 ipop + 6eb4: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 6eb6: 9355 ld.w r2, (r3, 0x54) + 6eb8: 3102 movi r1, 2 + 6eba: 6884 and r2, r1 + 6ebc: 3a40 cmpnei r2, 0 + 6ebe: 0bf9 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 6ec0: 9355 ld.w r2, (r3, 0x54) + 6ec2: 3110 movi r1, 16 + 6ec4: 6884 and r2, r1 + 6ec6: 3a40 cmpnei r2, 0 + 6ec8: 0bf4 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 6eca: 9355 ld.w r2, (r3, 0x54) + 6ecc: 3120 movi r1, 32 + 6ece: 6884 and r2, r1 + 6ed0: 3a40 cmpnei r2, 0 + 6ed2: 0bef bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 6ed4: 3280 movi r2, 128 + 6ed6: 9335 ld.w r1, (r3, 0x54) + 6ed8: 4241 lsli r2, r2, 1 + 6eda: 6848 and r1, r2 + 6edc: 3940 cmpnei r1, 0 + 6ede: 0c03 bf 0x6ee4 // 6ee4 + GPT0->ICR = GPT_INT_PEND; + 6ee0: b357 st.w r2, (r3, 0x5c) +} + 6ee2: 07e8 br 0x6eb2 // 6eb2 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 6ee4: 3280 movi r2, 128 + 6ee6: 9335 ld.w r1, (r3, 0x54) + 6ee8: 4242 lsli r2, r2, 2 + 6eea: 6848 and r1, r2 + 6eec: 3940 cmpnei r1, 0 + 6eee: 0bf9 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 6ef0: 3280 movi r2, 128 + 6ef2: 9335 ld.w r1, (r3, 0x54) + 6ef4: 4243 lsli r2, r2, 3 + 6ef6: 6848 and r1, r2 + 6ef8: 3940 cmpnei r1, 0 + 6efa: 0bf3 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 6efc: 3280 movi r2, 128 + 6efe: 9335 ld.w r1, (r3, 0x54) + 6f00: 4244 lsli r2, r2, 4 + 6f02: 6848 and r1, r2 + 6f04: 3940 cmpnei r1, 0 + 6f06: 0bed bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 6f08: 3280 movi r2, 128 + 6f0a: 9335 ld.w r1, (r3, 0x54) + 6f0c: 4249 lsli r2, r2, 9 + 6f0e: 6848 and r1, r2 + 6f10: 3940 cmpnei r1, 0 + 6f12: 0be7 bt 0x6ee0 // 6ee0 + 6f14: 07cf br 0x6eb2 // 6eb2 + 6f16: 0000 bkpt + 6f18: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00006f1c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 6f1c: 1460 nie + 6f1e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 6f20: 1079 lrw r3, 0x20000018 // 6f84 + 6f22: 3101 movi r1, 1 + 6f24: 9360 ld.w r3, (r3, 0x0) + 6f26: 934a ld.w r2, (r3, 0x28) + 6f28: 6884 and r2, r1 + 6f2a: 3a40 cmpnei r2, 0 + 6f2c: 0c14 bf 0x6f54 // 6f54 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 6f2e: 1057 lrw r2, 0xca53 // 6f88 + RTC->ICR=ALRA_INT; + 6f30: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 6f32: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 6f34: 9342 ld.w r2, (r3, 0x8) + 6f36: 6c84 or r2, r1 + 6f38: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 6f3a: 3280 movi r2, 128 + 6f3c: 424d lsli r2, r2, 13 + 6f3e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 6f40: 3102 movi r1, 2 + 6f42: 9342 ld.w r2, (r3, 0x8) + 6f44: 6884 and r2, r1 + 6f46: 3a40 cmpnei r2, 0 + 6f48: 0bfd bt 0x6f42 // 6f42 + RTC->CR &= ~0x1; + 6f4a: 9342 ld.w r2, (r3, 0x8) + 6f4c: 3a80 bclri r2, 0 + 6f4e: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 6f50: 1463 ipop + 6f52: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 6f54: 934a ld.w r2, (r3, 0x28) + 6f56: 3102 movi r1, 2 + 6f58: 6884 and r2, r1 + 6f5a: 3a40 cmpnei r2, 0 + 6f5c: 0c03 bf 0x6f62 // 6f62 + RTC->ICR=RTC_TRGEV1_INT; + 6f5e: b32b st.w r1, (r3, 0x2c) +} + 6f60: 07f8 br 0x6f50 // 6f50 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 6f62: 934a ld.w r2, (r3, 0x28) + 6f64: 3104 movi r1, 4 + 6f66: 6884 and r2, r1 + 6f68: 3a40 cmpnei r2, 0 + 6f6a: 0bfa bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 6f6c: 934a ld.w r2, (r3, 0x28) + 6f6e: 3108 movi r1, 8 + 6f70: 6884 and r2, r1 + 6f72: 3a40 cmpnei r2, 0 + 6f74: 0bf5 bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 6f76: 934a ld.w r2, (r3, 0x28) + 6f78: 3110 movi r1, 16 + 6f7a: 6884 and r2, r1 + 6f7c: 3a40 cmpnei r2, 0 + 6f7e: 0bf0 bt 0x6f5e // 6f5e + 6f80: 07e8 br 0x6f50 // 6f50 + 6f82: 0000 bkpt + 6f84: 20000018 .long 0x20000018 + 6f88: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00006f8c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 6f8c: 1460 nie + 6f8e: 1462 ipush + 6f90: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6f92: 1076 lrw r3, 0x20000040 // 6fe8 + 6f94: 3102 movi r1, 2 + 6f96: 9360 ld.w r3, (r3, 0x0) + 6f98: 9343 ld.w r2, (r3, 0xc) + 6f9a: 6884 and r2, r1 + 6f9c: 3a40 cmpnei r2, 0 + 6f9e: 0c0b bf 0x6fb4 // 6fb4 + { + UART0->ISR=UART_RX_INT_S; + 6fa0: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 6fa2: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 6fa4: 7400 zextb r0, r0 + 6fa6: e0000391 bsr 0x76c8 // 76c8 + } + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } +} + 6faa: d9ee2000 ld.w r15, (r14, 0x0) + 6fae: 1401 addi r14, r14, 4 + 6fb0: 1463 ipop + 6fb2: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 6fb4: 9343 ld.w r2, (r3, 0xc) + 6fb6: 3101 movi r1, 1 + 6fb8: 6884 and r2, r1 + 6fba: 3a40 cmpnei r2, 0 + 6fbc: 0c03 bf 0x6fc2 // 6fc2 + UART0->ISR=UART_TX_IOV_S; + 6fbe: b323 st.w r1, (r3, 0xc) + 6fc0: 07f5 br 0x6faa // 6faa + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 6fc2: 9343 ld.w r2, (r3, 0xc) + 6fc4: 3108 movi r1, 8 + 6fc6: 6884 and r2, r1 + 6fc8: 3a40 cmpnei r2, 0 + 6fca: 0bfa bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 6fcc: 9343 ld.w r2, (r3, 0xc) + 6fce: 3104 movi r1, 4 + 6fd0: 6884 and r2, r1 + 6fd2: 3a40 cmpnei r2, 0 + 6fd4: 0bf5 bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 6fd6: 3280 movi r2, 128 + 6fd8: 9323 ld.w r1, (r3, 0xc) + 6fda: 424c lsli r2, r2, 12 + 6fdc: 6848 and r1, r2 + 6fde: 3940 cmpnei r1, 0 + 6fe0: 0fe5 bf 0x6faa // 6faa + UART0->ISR=UART_TX_DONE_S; + 6fe2: b343 st.w r2, (r3, 0xc) +} + 6fe4: 07e3 br 0x6faa // 6faa + 6fe6: 0000 bkpt + 6fe8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00006fec : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 6fec: 1460 nie + 6fee: 1462 ipush + 6ff0: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6ff2: 107f lrw r3, 0x2000003c // 706c + 6ff4: 3102 movi r1, 2 + 6ff6: 9360 ld.w r3, (r3, 0x0) + 6ff8: 9343 ld.w r2, (r3, 0xc) + 6ffa: 6884 and r2, r1 + 6ffc: 3a40 cmpnei r2, 0 + 6ffe: 0c0b bf 0x7014 // 7014 + { + UART1->ISR=UART_RX_INT_S; + 7000: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 7002: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 7004: 7400 zextb r0, r0 + 7006: e00003ab bsr 0x775c // 775c + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 700a: d9ee2000 ld.w r15, (r14, 0x0) + 700e: 1401 addi r14, r14, 4 + 7010: 1463 ipop + 7012: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 7014: 9323 ld.w r1, (r3, 0xc) + 7016: 3201 movi r2, 1 + 7018: 6848 and r1, r2 + 701a: 3940 cmpnei r1, 0 + 701c: 0c0d bf 0x7036 // 7036 + UART1->ISR=UART_TX_INT_S; + 701e: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 7020: 1074 lrw r3, 0x200000c8 // 7070 + 7022: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7024: 1074 lrw r3, 0x200000cc // 7074 + 7026: 9360 ld.w r3, (r3, 0x0) + 7028: 3b41 cmpnei r3, 1 + 702a: 0bf0 bt 0x700a // 700a + RS485_Comm_Start ++; + 702c: 1053 lrw r2, 0x200000d0 // 7078 + RS485_Comm_End ++; + 702e: 9260 ld.w r3, (r2, 0x0) + 7030: 2300 addi r3, 1 + 7032: b260 st.w r3, (r2, 0x0) +} + 7034: 07eb br 0x700a // 700a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 7036: 9343 ld.w r2, (r3, 0xc) + 7038: 3108 movi r1, 8 + 703a: 6884 and r2, r1 + 703c: 3a40 cmpnei r2, 0 + 703e: 0c03 bf 0x7044 // 7044 + UART1->ISR=UART_TX_IOV_S; + 7040: b323 st.w r1, (r3, 0xc) + 7042: 07e4 br 0x700a // 700a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 7044: 9343 ld.w r2, (r3, 0xc) + 7046: 3104 movi r1, 4 + 7048: 6884 and r2, r1 + 704a: 3a40 cmpnei r2, 0 + 704c: 0bfa bt 0x7040 // 7040 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 704e: 3180 movi r1, 128 + 7050: 9303 ld.w r0, (r3, 0xc) + 7052: 412c lsli r1, r1, 12 + 7054: 6804 and r0, r1 + 7056: 3840 cmpnei r0, 0 + 7058: 0fd9 bf 0x700a // 700a + UART1->ISR=UART_TX_DONE_S; + 705a: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 705c: 1065 lrw r3, 0x200000c8 // 7070 + 705e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7060: 1065 lrw r3, 0x200000cc // 7074 + 7062: 9360 ld.w r3, (r3, 0x0) + 7064: 3b41 cmpnei r3, 1 + 7066: 0bd2 bt 0x700a // 700a + RS485_Comm_End ++; + 7068: 1045 lrw r2, 0x200000d4 // 707c + 706a: 07e2 br 0x702e // 702e + 706c: 2000003c .long 0x2000003c + 7070: 200000c8 .long 0x200000c8 + 7074: 200000cc .long 0x200000cc + 7078: 200000d0 .long 0x200000d0 + 707c: 200000d4 .long 0x200000d4 + +Disassembly of section .text.UART2IntHandler: + +00007080 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 7080: 1460 nie + 7082: 1462 ipush + 7084: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 7086: 1076 lrw r3, 0x20000038 // 70dc + 7088: 3102 movi r1, 2 + 708a: 9360 ld.w r3, (r3, 0x0) + 708c: 9343 ld.w r2, (r3, 0xc) + 708e: 6884 and r2, r1 + 7090: 3a40 cmpnei r2, 0 + 7092: 0c0b bf 0x70a8 // 70a8 + { + UART2->ISR=UART_RX_INT_S; + 7094: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 7096: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 7098: 7400 zextb r0, r0 + 709a: e000037b bsr 0x7790 // 7790 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART2->ISR=UART_TX_DONE_S; + } + +} + 709e: d9ee2000 ld.w r15, (r14, 0x0) + 70a2: 1401 addi r14, r14, 4 + 70a4: 1463 ipop + 70a6: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 70a8: 9343 ld.w r2, (r3, 0xc) + 70aa: 3101 movi r1, 1 + 70ac: 6884 and r2, r1 + 70ae: 3a40 cmpnei r2, 0 + 70b0: 0c03 bf 0x70b6 // 70b6 + UART2->ISR=UART_TX_IOV_S; + 70b2: b323 st.w r1, (r3, 0xc) + 70b4: 07f5 br 0x709e // 709e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 70b6: 9343 ld.w r2, (r3, 0xc) + 70b8: 3108 movi r1, 8 + 70ba: 6884 and r2, r1 + 70bc: 3a40 cmpnei r2, 0 + 70be: 0bfa bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 70c0: 9343 ld.w r2, (r3, 0xc) + 70c2: 3104 movi r1, 4 + 70c4: 6884 and r2, r1 + 70c6: 3a40 cmpnei r2, 0 + 70c8: 0bf5 bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 70ca: 3280 movi r2, 128 + 70cc: 9323 ld.w r1, (r3, 0xc) + 70ce: 424c lsli r2, r2, 12 + 70d0: 6848 and r1, r2 + 70d2: 3940 cmpnei r1, 0 + 70d4: 0fe5 bf 0x709e // 709e + UART2->ISR=UART_TX_DONE_S; + 70d6: b343 st.w r2, (r3, 0xc) +} + 70d8: 07e3 br 0x709e // 709e + 70da: 0000 bkpt + 70dc: 20000038 .long 0x20000038 + +Disassembly of section .text.SPI0IntHandler: + +000070e0 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 70e0: 1460 nie + 70e2: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 70e4: 1178 lrw r3, 0x20000034 // 71c4 + 70e6: 3101 movi r1, 1 + 70e8: 9360 ld.w r3, (r3, 0x0) + 70ea: 9347 ld.w r2, (r3, 0x1c) + 70ec: 6884 and r2, r1 + 70ee: 3a40 cmpnei r2, 0 + 70f0: 0c03 bf 0x70f6 // 70f6 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 70f2: b328 st.w r1, (r3, 0x20) + } + +} + 70f4: 0407 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 70f6: 9347 ld.w r2, (r3, 0x1c) + 70f8: 3002 movi r0, 2 + 70fa: 6880 and r2, r0 + 70fc: 3a40 cmpnei r2, 0 + 70fe: 0c04 bf 0x7106 // 7106 + SPI0->ICR = SPI_RTIM; + 7100: b308 st.w r0, (r3, 0x20) +} + 7102: 1463 ipop + 7104: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 7106: 9347 ld.w r2, (r3, 0x1c) + 7108: 3004 movi r0, 4 + 710a: 6880 and r2, r0 + 710c: 3a40 cmpnei r2, 0 + 710e: 0c55 bf 0x71b8 // 71b8 + SPI0->ICR = SPI_RXIM; + 7110: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 7112: 9302 ld.w r0, (r3, 0x8) + 7114: 32aa movi r2, 170 + 7116: 6482 cmpne r0, r2 + 7118: 083e bt 0x7194 // 7194 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 711a: 3102 movi r1, 2 + 711c: 9343 ld.w r2, (r3, 0xc) + 711e: 6884 and r2, r1 + 7120: 3a40 cmpnei r2, 0 + 7122: 0ffd bf 0x711c // 711c + SPI0->DR = 0x11; + 7124: 3211 movi r2, 17 + 7126: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7128: 3110 movi r1, 16 + 712a: 9343 ld.w r2, (r3, 0xc) + 712c: 6884 and r2, r1 + 712e: 3a40 cmpnei r2, 0 + 7130: 0bfd bt 0x712a // 712a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7132: 3102 movi r1, 2 + 7134: 9343 ld.w r2, (r3, 0xc) + 7136: 6884 and r2, r1 + 7138: 3a40 cmpnei r2, 0 + 713a: 0ffd bf 0x7134 // 7134 + SPI0->DR = 0x12; + 713c: 3212 movi r2, 18 + 713e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7140: 3110 movi r1, 16 + 7142: 9343 ld.w r2, (r3, 0xc) + 7144: 6884 and r2, r1 + 7146: 3a40 cmpnei r2, 0 + 7148: 0bfd bt 0x7142 // 7142 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 714a: 3102 movi r1, 2 + 714c: 9343 ld.w r2, (r3, 0xc) + 714e: 6884 and r2, r1 + 7150: 3a40 cmpnei r2, 0 + 7152: 0ffd bf 0x714c // 714c + SPI0->DR = 0x13; + 7154: 3213 movi r2, 19 + 7156: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7158: 3110 movi r1, 16 + 715a: 9343 ld.w r2, (r3, 0xc) + 715c: 6884 and r2, r1 + 715e: 3a40 cmpnei r2, 0 + 7160: 0bfd bt 0x715a // 715a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7162: 3102 movi r1, 2 + 7164: 9343 ld.w r2, (r3, 0xc) + 7166: 6884 and r2, r1 + 7168: 3a40 cmpnei r2, 0 + 716a: 0ffd bf 0x7164 // 7164 + SPI0->DR = 0x14; + 716c: 3214 movi r2, 20 + 716e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7170: 3110 movi r1, 16 + 7172: 9343 ld.w r2, (r3, 0xc) + 7174: 6884 and r2, r1 + 7176: 3a40 cmpnei r2, 0 + 7178: 0bfd bt 0x7172 // 7172 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 717a: 3102 movi r1, 2 + 717c: 9343 ld.w r2, (r3, 0xc) + 717e: 6884 and r2, r1 + 7180: 3a40 cmpnei r2, 0 + 7182: 0ffd bf 0x717c // 717c + SPI0->DR = 0x15; + 7184: 3215 movi r2, 21 + 7186: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7188: 3110 movi r1, 16 + 718a: 9343 ld.w r2, (r3, 0xc) + 718c: 6884 and r2, r1 + 718e: 3a40 cmpnei r2, 0 + 7190: 0bfd bt 0x718a // 718a + 7192: 07b8 br 0x7102 // 7102 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 7194: 9343 ld.w r2, (r3, 0xc) + 7196: 6884 and r2, r1 + 7198: 3a40 cmpnei r2, 0 + 719a: 0bb4 bt 0x7102 // 7102 + SPI0->DR=0x0; //FIFO=0 + 719c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 719e: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 71a0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71aa: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71ac: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 71ae: 9343 ld.w r2, (r3, 0xc) + 71b0: 6884 and r2, r1 + 71b2: 3a40 cmpnei r2, 0 + 71b4: 0bfd bt 0x71ae // 71ae + 71b6: 07a6 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 71b8: 9347 ld.w r2, (r3, 0x1c) + 71ba: 3108 movi r1, 8 + 71bc: 6884 and r2, r1 + 71be: 3a40 cmpnei r2, 0 + 71c0: 0b99 bt 0x70f2 // 70f2 + 71c2: 07a0 br 0x7102 // 7102 + 71c4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000071c8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 71c8: 1460 nie + 71ca: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 71cc: 1073 lrw r3, 0x2000002c // 7218 + 71ce: 3104 movi r1, 4 + 71d0: 9360 ld.w r3, (r3, 0x0) + 71d2: 9349 ld.w r2, (r3, 0x24) + 71d4: 6884 and r2, r1 + 71d6: 3a40 cmpnei r2, 0 + 71d8: 0c02 bf 0x71dc // 71dc + { + SIO0->ICR=0X04; + 71da: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 71dc: 9349 ld.w r2, (r3, 0x24) + 71de: 3101 movi r1, 1 + 71e0: 6884 and r2, r1 + 71e2: 3a40 cmpnei r2, 0 + 71e4: 0c02 bf 0x71e8 // 71e8 + { + SIO0->ICR=0X01; + 71e6: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 71e8: 9349 ld.w r2, (r3, 0x24) + 71ea: 3102 movi r1, 2 + 71ec: 6884 and r2, r1 + 71ee: 3a40 cmpnei r2, 0 + 71f0: 0c03 bf 0x71f6 // 71f6 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 71f2: b32b st.w r1, (r3, 0x2c) + } +} + 71f4: 0410 br 0x7214 // 7214 + else if(SIO0->MISR&0X08) //RXBUFFULL + 71f6: 9349 ld.w r2, (r3, 0x24) + 71f8: 3108 movi r1, 8 + 71fa: 6884 and r2, r1 + 71fc: 3a40 cmpnei r2, 0 + 71fe: 0bfa bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X010) //BREAK + 7200: 9349 ld.w r2, (r3, 0x24) + 7202: 3110 movi r1, 16 + 7204: 6884 and r2, r1 + 7206: 3a40 cmpnei r2, 0 + 7208: 0bf5 bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X020) //TIMEOUT + 720a: 9349 ld.w r2, (r3, 0x24) + 720c: 3120 movi r1, 32 + 720e: 6884 and r2, r1 + 7210: 3a40 cmpnei r2, 0 + 7212: 0bf0 bt 0x71f2 // 71f2 +} + 7214: 1463 ipop + 7216: 1461 nir + 7218: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +0000721c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 721c: 1460 nie + 721e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 7220: 106a lrw r3, 0x2000005c // 7248 + 7222: 3101 movi r1, 1 + 7224: 9360 ld.w r3, (r3, 0x0) + 7226: 237f addi r3, 128 + 7228: 934c ld.w r2, (r3, 0x30) + 722a: 6884 and r2, r1 + 722c: 3a40 cmpnei r2, 0 + 722e: 0c04 bf 0x7236 // 7236 + { + SYSCON->EXICR = EXI_PIN0; + 7230: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 7232: 1463 ipop + 7234: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 7236: 3280 movi r2, 128 + 7238: 932c ld.w r1, (r3, 0x30) + 723a: 4249 lsli r2, r2, 9 + 723c: 6848 and r1, r2 + 723e: 3940 cmpnei r1, 0 + 7240: 0ff9 bf 0x7232 // 7232 + SYSCON->EXICR = EXI_PIN16; + 7242: b34b st.w r2, (r3, 0x2c) +} + 7244: 07f7 br 0x7232 // 7232 + 7246: 0000 bkpt + 7248: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +0000724c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 724c: 1460 nie + 724e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 7250: 106a lrw r3, 0x2000005c // 7278 + 7252: 3102 movi r1, 2 + 7254: 9360 ld.w r3, (r3, 0x0) + 7256: 237f addi r3, 128 + 7258: 934c ld.w r2, (r3, 0x30) + 725a: 6884 and r2, r1 + 725c: 3a40 cmpnei r2, 0 + 725e: 0c04 bf 0x7266 // 7266 + { + SYSCON->EXICR = EXI_PIN1; + 7260: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 7262: 1463 ipop + 7264: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 7266: 3280 movi r2, 128 + 7268: 932c ld.w r1, (r3, 0x30) + 726a: 424a lsli r2, r2, 10 + 726c: 6848 and r1, r2 + 726e: 3940 cmpnei r1, 0 + 7270: 0ff9 bf 0x7262 // 7262 + SYSCON->EXICR = EXI_PIN17; + 7272: b34b st.w r2, (r3, 0x2c) +} + 7274: 07f7 br 0x7262 // 7262 + 7276: 0000 bkpt + 7278: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +0000727c : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 727c: 1460 nie + 727e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 7280: 1070 lrw r3, 0x2000005c // 72c0 + 7282: 3104 movi r1, 4 + 7284: 9360 ld.w r3, (r3, 0x0) + 7286: 237f addi r3, 128 + 7288: 934c ld.w r2, (r3, 0x30) + 728a: 6884 and r2, r1 + 728c: 3a40 cmpnei r2, 0 + 728e: 0c04 bf 0x7296 // 7296 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 7290: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 7292: 1463 ipop + 7294: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 7296: 934c ld.w r2, (r3, 0x30) + 7298: 3108 movi r1, 8 + 729a: 6884 and r2, r1 + 729c: 3a40 cmpnei r2, 0 + 729e: 0bf9 bt 0x7290 // 7290 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 72a0: 3280 movi r2, 128 + 72a2: 932c ld.w r1, (r3, 0x30) + 72a4: 424b lsli r2, r2, 11 + 72a6: 6848 and r1, r2 + 72a8: 3940 cmpnei r1, 0 + 72aa: 0c03 bf 0x72b0 // 72b0 + SYSCON->EXICR = EXI_PIN19; + 72ac: b34b st.w r2, (r3, 0x2c) +} + 72ae: 07f2 br 0x7292 // 7292 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 72b0: 3280 movi r2, 128 + 72b2: 932c ld.w r1, (r3, 0x30) + 72b4: 424c lsli r2, r2, 12 + 72b6: 6848 and r1, r2 + 72b8: 3940 cmpnei r1, 0 + 72ba: 0bf9 bt 0x72ac // 72ac + 72bc: 07eb br 0x7292 // 7292 + 72be: 0000 bkpt + 72c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000072c4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 72c4: 1460 nie + 72c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 72c8: 1066 lrw r3, 0x2000005c // 72e0 + 72ca: 3110 movi r1, 16 + 72cc: 9360 ld.w r3, (r3, 0x0) + 72ce: 237f addi r3, 128 + 72d0: 934c ld.w r2, (r3, 0x30) + 72d2: 6884 and r2, r1 + 72d4: 3a40 cmpnei r2, 0 + 72d6: 0c02 bf 0x72da // 72da + { + SYSCON->EXICR = EXI_PIN4; + 72d8: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 72da: 1463 ipop + 72dc: 1461 nir + 72de: 0000 bkpt + 72e0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +000072e4 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 72e4: 1460 nie + 72e6: 1462 ipush + 72e8: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 72ea: 1079 lrw r3, 0x2000005c // 734c + 72ec: 3280 movi r2, 128 + 72ee: 9360 ld.w r3, (r3, 0x0) + 72f0: 237f addi r3, 128 + 72f2: 932c ld.w r1, (r3, 0x30) + 72f4: 4243 lsli r2, r2, 3 + 72f6: 6848 and r1, r2 + 72f8: 3940 cmpnei r1, 0 + 72fa: 0c07 bf 0x7308 // 7308 + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 72fc: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 72fe: d9ee2000 ld.w r15, (r14, 0x0) + 7302: 1401 addi r14, r14, 4 + 7304: 1463 ipop + 7306: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 7308: 3280 movi r2, 128 + 730a: 932c ld.w r1, (r3, 0x30) + 730c: 4244 lsli r2, r2, 4 + 730e: 6848 and r1, r2 + 7310: 3940 cmpnei r1, 0 + 7312: 0bf5 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 7314: 3280 movi r2, 128 + 7316: 932c ld.w r1, (r3, 0x30) + 7318: 4245 lsli r2, r2, 5 + 731a: 6848 and r1, r2 + 731c: 3940 cmpnei r1, 0 + 731e: 0bef bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 7320: 3280 movi r2, 128 + 7322: 932c ld.w r1, (r3, 0x30) + 7324: 4246 lsli r2, r2, 6 + 7326: 6848 and r1, r2 + 7328: 3940 cmpnei r1, 0 + 732a: 0be9 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 732c: 3280 movi r2, 128 + 732e: 932c ld.w r1, (r3, 0x30) + 7330: 4247 lsli r2, r2, 7 + 7332: 6848 and r1, r2 + 7334: 3940 cmpnei r1, 0 + 7336: 0be3 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 7338: 3280 movi r2, 128 + 733a: 932c ld.w r1, (r3, 0x30) + 733c: 4248 lsli r2, r2, 8 + 733e: 6848 and r1, r2 + 7340: 3940 cmpnei r1, 0 + 7342: 0fde bf 0x72fe // 72fe + SYSCON->EXICR = EXI_PIN15; + 7344: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 7346: e0000349 bsr 0x79d8 // 79d8 +} + 734a: 07da br 0x72fe // 72fe + 734c: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00007350 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 7350: 1460 nie + 7352: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 7354: 106b lrw r3, 0x20000014 // 7380 + 7356: 3101 movi r1, 1 + 7358: 9360 ld.w r3, (r3, 0x0) + 735a: 934e ld.w r2, (r3, 0x38) + 735c: 6884 and r2, r1 + 735e: 3a40 cmpnei r2, 0 + 7360: 0c03 bf 0x7366 // 7366 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 7362: b330 st.w r1, (r3, 0x40) + } +} + 7364: 040b br 0x737a // 737a + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 7366: 934e ld.w r2, (r3, 0x38) + 7368: 3102 movi r1, 2 + 736a: 6884 and r2, r1 + 736c: 3a40 cmpnei r2, 0 + 736e: 0bfa bt 0x7362 // 7362 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 7370: 934e ld.w r2, (r3, 0x38) + 7372: 3104 movi r1, 4 + 7374: 6884 and r2, r1 + 7376: 3a40 cmpnei r2, 0 + 7378: 0bf5 bt 0x7362 // 7362 +} + 737a: 1463 ipop + 737c: 1461 nir + 737e: 0000 bkpt + 7380: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00007384 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 7384: 1460 nie + 7386: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 7388: 1071 lrw r3, 0x2000000c // 73cc + 738a: 3101 movi r1, 1 + 738c: 9360 ld.w r3, (r3, 0x0) + 738e: 934c ld.w r2, (r3, 0x30) + 7390: 6884 and r2, r1 + 7392: 3a40 cmpnei r2, 0 + 7394: 0c0a bf 0x73a8 // 73a8 + { + BT0->ICR = BT_PEND; + 7396: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 7398: 9341 ld.w r2, (r3, 0x4) + 739a: 3a86 bclri r2, 6 + 739c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 739e: 9340 ld.w r2, (r3, 0x0) + 73a0: 3200 movi r2, 0 + 73a2: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 73a4: 1463 ipop + 73a6: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 73a8: 934c ld.w r2, (r3, 0x30) + 73aa: 3102 movi r1, 2 + 73ac: 6884 and r2, r1 + 73ae: 3a40 cmpnei r2, 0 + 73b0: 0c03 bf 0x73b6 // 73b6 + BT0->ICR = BT_EVTRG; + 73b2: b32d st.w r1, (r3, 0x34) +} + 73b4: 07f8 br 0x73a4 // 73a4 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 73b6: 934c ld.w r2, (r3, 0x30) + 73b8: 3104 movi r1, 4 + 73ba: 6884 and r2, r1 + 73bc: 3a40 cmpnei r2, 0 + 73be: 0bfa bt 0x73b2 // 73b2 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 73c0: 934c ld.w r2, (r3, 0x30) + 73c2: 3108 movi r1, 8 + 73c4: 6884 and r2, r1 + 73c6: 3a40 cmpnei r2, 0 + 73c8: 0bf5 bt 0x73b2 // 73b2 + 73ca: 07ed br 0x73a4 // 73a4 + 73cc: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000073d0 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 73d0: 1460 nie + 73d2: 1462 ipush + 73d4: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 73d6: 1079 lrw r3, 0x20000008 // 7438 + 73d8: 3101 movi r1, 1 + 73da: 9360 ld.w r3, (r3, 0x0) + 73dc: 934c ld.w r2, (r3, 0x30) + 73de: 6884 and r2, r1 + 73e0: 3a40 cmpnei r2, 0 + 73e2: 0c03 bf 0x73e8 // 73e8 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 73e4: b32d st.w r1, (r3, 0x34) + } +} + 73e6: 0418 br 0x7416 // 7416 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 73e8: 934c ld.w r2, (r3, 0x30) + 73ea: 3102 movi r1, 2 + 73ec: 6884 and r2, r1 + 73ee: 3a40 cmpnei r2, 0 + 73f0: 0c18 bf 0x7420 // 7420 + BT1->ICR = BT_CMP; + 73f2: b32d st.w r1, (r3, 0x34) + NUM++; + 73f4: 1072 lrw r3, 0x200000bc // 743c + 73f6: 8340 ld.b r2, (r3, 0x0) + 73f8: 2200 addi r2, 1 + 73fa: 7488 zextb r2, r2 + SysTick_100us++; + 73fc: 9321 ld.w r1, (r3, 0x4) + 73fe: 2100 addi r1, 1 + if(NUM >= 10){ + 7400: 3a09 cmphsi r2, 10 + NUM++; + 7402: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 7404: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 7406: 0c08 bf 0x7416 // 7416 + NUM = 0; + 7408: 3200 movi r2, 0 + 740a: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 740c: 9342 ld.w r2, (r3, 0x8) + 740e: 2200 addi r2, 1 + 7410: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 7412: e00002c3 bsr 0x7998 // 7998 +} + 7416: d9ee2000 ld.w r15, (r14, 0x0) + 741a: 1401 addi r14, r14, 4 + 741c: 1463 ipop + 741e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 7420: 934c ld.w r2, (r3, 0x30) + 7422: 3104 movi r1, 4 + 7424: 6884 and r2, r1 + 7426: 3a40 cmpnei r2, 0 + 7428: 0bde bt 0x73e4 // 73e4 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 742a: 934c ld.w r2, (r3, 0x30) + 742c: 3108 movi r1, 8 + 742e: 6884 and r2, r1 + 7430: 3a40 cmpnei r2, 0 + 7432: 0bd9 bt 0x73e4 // 73e4 + 7434: 07f1 br 0x7416 // 7416 + 7436: 0000 bkpt + 7438: 20000008 .long 0x20000008 + 743c: 200000bc .long 0x200000bc + +Disassembly of section .text.PriviledgeVioHandler: + +00007440 : + 7440: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00007442 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 7442: 1460 nie + 7444: 1462 ipush + // ISR content ... + +} + 7446: 1463 ipop + 7448: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000744a : + 744a: 1460 nie + 744c: 1462 ipush + 744e: 1463 ipop + 7450: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00007452 : + 7452: 1460 nie + 7454: 1462 ipush + 7456: 1463 ipop + 7458: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000745a : + 745a: 1460 nie + 745c: 1462 ipush + 745e: 1463 ipop + 7460: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00007462 : + 7462: 1460 nie + 7464: 1462 ipush + 7466: 1463 ipop + 7468: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000746a : + 746a: 1460 nie + 746c: 1462 ipush + 746e: 1463 ipop + 7470: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00007472 : + 7472: 1460 nie + 7474: 1462 ipush + 7476: 1463 ipop + 7478: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +0000747a : + 747a: 1460 nie + 747c: 1462 ipush + 747e: 1463 ipop + 7480: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00007482 : + 7482: 1460 nie + 7484: 1462 ipush + 7486: 1463 ipop + 7488: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +0000748a : + 748a: 1460 nie + 748c: 1462 ipush + 748e: 1463 ipop + 7490: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00007492 : + 7492: 1460 nie + 7494: 1462 ipush + 7496: 1463 ipop + 7498: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000749a : + 749a: 1460 nie + 749c: 1462 ipush + 749e: 1463 ipop + 74a0: 1461 nir + +Disassembly of section .text.__divsi3: + +000074a4 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 74a4: 14c1 push r4 + int PSR; + __asm volatile( + 74a6: c0006023 mfcr r3, cr<0, 0> + 74aa: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74ae: 1046 lrw r2, 0x20000000 // 74c4 <__divsi3+0x20> + 74b0: 3400 movi r4, 0 + 74b2: 9240 ld.w r2, (r2, 0x0) + 74b4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74b6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74b8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74ba: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74bc: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74c0: 9202 ld.w r0, (r2, 0x8) +} + 74c2: 1481 pop r4 + 74c4: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000074c8 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 74c8: 14c1 push r4 + int PSR; + __asm volatile( + 74ca: c0006023 mfcr r3, cr<0, 0> + 74ce: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 74d2: 1046 lrw r2, 0x20000000 // 74e8 <__udivsi3+0x20> + 74d4: 3401 movi r4, 1 + 74d6: 9240 ld.w r2, (r2, 0x0) + 74d8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74da: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74dc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74de: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74e0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74e4: 9202 ld.w r0, (r2, 0x8) +} + 74e6: 1481 pop r4 + 74e8: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +000074ec <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 74ec: 14c1 push r4 + int PSR; + __asm volatile( + 74ee: c0006023 mfcr r3, cr<0, 0> + 74f2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74f6: 1046 lrw r2, 0x20000000 // 750c <__modsi3+0x20> + 74f8: 3400 movi r4, 0 + 74fa: 9240 ld.w r2, (r2, 0x0) + 74fc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74fe: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7500: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7502: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7504: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 7508: 9203 ld.w r0, (r2, 0xc) +} + 750a: 1481 pop r4 + 750c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00007510 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 7510: 14c1 push r4 + int PSR; + __asm volatile( + 7512: c0006023 mfcr r3, cr<0, 0> + 7516: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 751a: 1046 lrw r2, 0x20000000 // 7530 <__umodsi3+0x20> + 751c: 3401 movi r4, 1 + 751e: 9240 ld.w r2, (r2, 0x0) + 7520: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 7522: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7524: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7526: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7528: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 752c: 9203 ld.w r0, (r2, 0xc) +} + 752e: 1481 pop r4 + 7530: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00007534 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 7534: c1807420 psrset ee, ie +} + 7538: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000753a : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 753a: c0807020 psrclr ie +} + 753e: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00007540 : +UART_t g_uart; +UART_t g_uart1; +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7540: 14d2 push r4-r5, r15 + switch((U8_T)uart_id){ + 7542: 7400 zextb r0, r0 + 7544: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7546: 6d47 mov r5, r1 + switch((U8_T)uart_id){ + 7548: 0c1f bf 0x7586 // 7586 + 754a: 3840 cmpnei r0, 0 + 754c: 0c04 bf 0x7554 // 7554 + 754e: 3842 cmpnei r0, 2 + 7550: 0c8c bf 0x7668 // 7668 + g_uart.RecvTimeout = Recv_9600_TimeOut; + g_uart.processing_cf = prt_cf; + + break; + } +} + 7552: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 7554: e3fff896 bsr 0x6680 // 6680 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 7558: 3100 movi r1, 0 + 755a: 3000 movi r0, 0 + 755c: e3fff8e0 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART0,5000,UART_PAR_EVEN); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 7560: 126d lrw r3, 0x20000040 // 7694 + 7562: 3280 movi r2, 128 + 7564: 9300 ld.w r0, (r3, 0x0) + 7566: 4243 lsli r2, r2, 3 + 7568: 122c lrw r1, 0x1388 // 7698 + 756a: e3fff94f bsr 0x6808 // 6808 + UART0_Int_Enable(); + 756e: e3fff8ad bsr 0x66c8 // 66c8 + memset(&g_uart0,0,sizeof(UART_t)); + 7572: 3294 movi r2, 148 + 7574: 3100 movi r1, 0 + 7576: 120a lrw r0, 0x200002cc // 769c + 7578: e3ffe9f0 bsr 0x4958 // 4958 <__memset_fast> + g_uart0.RecvTimeout = Recv_9600_TimeOut; + 757c: 1269 lrw r3, 0x2000034c // 76a0 + g_uart.RecvTimeout = Recv_9600_TimeOut; + 757e: 3203 movi r2, 3 + 7580: b342 st.w r2, (r3, 0x8) + g_uart.processing_cf = prt_cf; + 7582: b3a4 st.w r5, (r3, 0x10) +} + 7584: 07e7 br 0x7552 // 7552 + memset(&m_send,0,sizeof(MULIT_t)); + 7586: 1288 lrw r4, 0x200003f4 // 76a4 + memset(&g_uart1,0,sizeof(UART_t)); + 7588: 3294 movi r2, 148 + 758a: 3100 movi r1, 0 + 758c: 1207 lrw r0, 0x20000360 // 76a8 + 758e: e3ffe9e5 bsr 0x4958 // 4958 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 7592: 3288 movi r2, 136 + 7594: 3100 movi r1, 0 + 7596: 6c13 mov r0, r4 + 7598: e3ffe9e0 bsr 0x4958 // 4958 <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 759c: 1264 lrw r3, 0x200003e0 // 76ac + 759e: 3203 movi r2, 3 + 75a0: b342 st.w r2, (r3, 0x8) + g_uart1.processing_cf = prt_cf; + 75a2: b3a4 st.w r5, (r3, 0x10) + m_send.HighBit_Flag = 0x01; + 75a4: 245f addi r4, 96 + m_send.BusState_Tick = SysTick_1ms; + 75a6: 1263 lrw r3, 0x200000c4 // 76b0 + GPIO_PullHigh_Init(GPIOA0,15); + 75a8: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 75aa: 9360 ld.w r3, (r3, 0x0) + 75ac: b467 st.w r3, (r4, 0x1c) + m_send.HighBit_Flag = 0x01; + 75ae: 3301 movi r3, 1 + 75b0: a465 st.b r3, (r4, 0x5) + GPIO_PullHigh_Init(GPIOA0,15); + 75b2: 1281 lrw r4, 0x2000004c // 76b4 + 75b4: 9400 ld.w r0, (r4, 0x0) + 75b6: e3fff6d3 bsr 0x635c // 635c + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 75ba: 320f movi r2, 15 + 75bc: 310f movi r1, 15 + 75be: 3000 movi r0, 0 + 75c0: e3fff6e0 bsr 0x6380 // 6380 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 75c4: 300f movi r0, 15 + 75c6: e3fff763 bsr 0x648c // 648c + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 75ca: 3180 movi r1, 128 + 75cc: 3201 movi r2, 1 + 75ce: 4128 lsli r1, r1, 8 + 75d0: 3001 movi r0, 1 + 75d2: e3fff59f bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 75d6: 3180 movi r1, 128 + 75d8: 3200 movi r2, 0 + 75da: 4128 lsli r1, r1, 8 + 75dc: 3001 movi r0, 1 + 75de: e3fff599 bsr 0x6110 // 6110 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 75e2: 3180 movi r1, 128 + 75e4: 4128 lsli r1, r1, 8 + 75e6: 3001 movi r0, 1 + 75e8: e3fff5b4 bsr 0x6150 // 6150 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 75ec: 3180 movi r1, 128 + 75ee: 9400 ld.w r0, (r4, 0x0) + 75f0: 4128 lsli r1, r1, 8 + 75f2: e3fff5c9 bsr 0x6184 // 6184 + EXI4_Int_Enable(); + 75f6: e3fff5c9 bsr 0x6188 // 6188 + UART1_DeInit(); //clear all UART Register + 75fa: e3fff84f bsr 0x6698 // 6698 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 75fe: 3102 movi r1, 2 + 7600: 3001 movi r0, 1 + 7602: e3fff88d bsr 0x671c // 671c + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 7606: 116d lrw r3, 0x2000003c // 76b8 + 7608: 3200 movi r2, 0 + 760a: 9300 ld.w r0, (r3, 0x0) + 760c: 1123 lrw r1, 0x1388 // 7698 + 760e: e3fff8fd bsr 0x6808 // 6808 + UART1_Int_Enable(); + 7612: e3fff869 bsr 0x66e4 // 66e4 + GPIO_Init(GPIOA0,LED_HLW_PIN,Output); + 7616: 9400 ld.w r0, (r4, 0x0) + 7618: 3200 movi r2, 0 + 761a: 310b movi r1, 11 + 761c: e3fff630 bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_BUS_PIN,Output); + 7620: 9400 ld.w r0, (r4, 0x0) + 7622: 3200 movi r2, 0 + 7624: 310c movi r1, 12 + 7626: e3fff62b bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_STATUS_PIN,Output); + 762a: 3200 movi r2, 0 + 762c: 9400 ld.w r0, (r4, 0x0) + 762e: 310d movi r1, 13 + 7630: e3fff626 bsr 0x627c // 627c + HLW_LED_ON; + 7634: 9400 ld.w r0, (r4, 0x0) + 7636: 310b movi r1, 11 + 7638: e3fff7ac bsr 0x6590 // 6590 + BUS_LED_ON; + 763c: 9400 ld.w r0, (r4, 0x0) + 763e: 310c movi r1, 12 + 7640: e3fff7a8 bsr 0x6590 // 6590 + STATUS_LED_ON; + 7644: 9400 ld.w r0, (r4, 0x0) + 7646: 310d movi r1, 13 + 7648: e3fff7a4 bsr 0x6590 // 6590 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 764c: 3200 movi r2, 0 + 764e: 9400 ld.w r0, (r4, 0x0) + 7650: 3107 movi r1, 7 + 7652: e3fff615 bsr 0x627c // 627c + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 7656: 9400 ld.w r0, (r4, 0x0) + 7658: 3107 movi r1, 7 + 765a: e3fff68b bsr 0x6370 // 6370 + WRITE_LOW_DR; + 765e: 9400 ld.w r0, (r4, 0x0) + 7660: 3107 movi r1, 7 + 7662: e3fff797 bsr 0x6590 // 6590 + break; + 7666: 0776 br 0x7552 // 7552 + UART2_DeInit(); //clear all UART Register + 7668: e3fff824 bsr 0x66b0 // 66b0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 766c: 3102 movi r1, 2 + 766e: 3002 movi r0, 2 + 7670: e3fff856 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled , + 7674: 1072 lrw r3, 0x20000038 // 76bc + 7676: 3200 movi r2, 0 + 7678: 9300 ld.w r0, (r3, 0x0) + 767a: 1028 lrw r1, 0x1388 // 7698 + 767c: e3fff8c6 bsr 0x6808 // 6808 + UART2_Int_Enable(); + 7680: e3fff840 bsr 0x6700 // 6700 + memset(&g_uart,0,sizeof(UART_t)); + 7684: 3294 movi r2, 148 + 7686: 3100 movi r1, 0 + 7688: 100e lrw r0, 0x20000238 // 76c0 + 768a: e3ffe967 bsr 0x4958 // 4958 <__memset_fast> + g_uart.RecvTimeout = Recv_9600_TimeOut; + 768e: 106e lrw r3, 0x200002b8 // 76c4 + 7690: 0777 br 0x757e // 757e + 7692: 0000 bkpt + 7694: 20000040 .long 0x20000040 + 7698: 00001388 .long 0x00001388 + 769c: 200002cc .long 0x200002cc + 76a0: 2000034c .long 0x2000034c + 76a4: 200003f4 .long 0x200003f4 + 76a8: 20000360 .long 0x20000360 + 76ac: 200003e0 .long 0x200003e0 + 76b0: 200000c4 .long 0x200000c4 + 76b4: 2000004c .long 0x2000004c + 76b8: 2000003c .long 0x2000003c + 76bc: 20000038 .long 0x20000038 + 76c0: 20000238 .long 0x20000238 + 76c4: 200002b8 .long 0x200002b8 + +Disassembly of section .text.UART0_RecvINT_Processing: + +000076c8 : +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + if((g_uart0.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart0.RecvLen = 0; + 76c8: 106a lrw r3, 0x2000034c // 76f0 + 76ca: 8b22 ld.h r1, (r3, 0x4) + 76cc: 323e movi r2, 62 + 76ce: 6449 cmplt r2, r1 + 76d0: 0c03 bf 0x76d6 // 76d6 + 76d2: 3200 movi r2, 0 + 76d4: ab42 st.h r2, (r3, 0x4) + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + 76d6: 8b42 ld.h r2, (r3, 0x4) + 76d8: 5a22 addi r1, r2, 1 + 76da: ab22 st.h r1, (r3, 0x4) + 76dc: 1026 lrw r1, 0x200002cc // 76f4 + 76de: 6084 addu r2, r1 + 76e0: a200 st.b r0, (r2, 0x0) + + g_uart0.RecvIdleTiming = SysTick_1ms; + 76e2: 1046 lrw r2, 0x200000c4 // 76f8 + 76e4: 9240 ld.w r2, (r2, 0x0) + 76e6: b343 st.w r2, (r3, 0xc) + g_uart0.Receiving = 0x01; + 76e8: 3201 movi r2, 1 + 76ea: a340 st.b r2, (r3, 0x0) +} + 76ec: 783c jmp r15 + 76ee: 0000 bkpt + 76f0: 2000034c .long 0x2000034c + 76f4: 200002cc .long 0x200002cc + 76f8: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART0_TASK: + +000076fc : + +void UART0_TASK(void){ + 76fc: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart0.Receiving == 0x01){ + 76fe: 1094 lrw r4, 0x2000034c // 774c + 7700: 8460 ld.b r3, (r4, 0x0) + 7702: 3b41 cmpnei r3, 1 + 7704: 0823 bt 0x774a // 774a + if(SysTick_1ms - g_uart0.RecvIdleTiming > g_uart0.RecvTimeout){ + 7706: 10b3 lrw r5, 0x200000c4 // 7750 + 7708: 9560 ld.w r3, (r5, 0x0) + 770a: 9443 ld.w r2, (r4, 0xc) + 770c: 60ca subu r3, r2 + 770e: 9442 ld.w r2, (r4, 0x8) + 7710: 64c8 cmphs r2, r3 + 7712: 081c bt 0x774a // 774a + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7714: e3fff548 bsr 0x61a4 // 61a4 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7718: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 771a: 8c42 ld.h r2, (r4, 0x4) + 771c: 102e lrw r1, 0x200002cc // 7754 + 771e: 100f lrw r0, 0x2000030c // 7758 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7720: b463 st.w r3, (r4, 0xc) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 7722: e3ffe95f bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart0.DealLen = g_uart0.RecvLen; + 7726: 8c62 ld.h r3, (r4, 0x4) + 7728: ac61 st.h r3, (r4, 0x2) + g_uart0.RecvLen = 0; + 772a: 3300 movi r3, 0 + 772c: ac62 st.h r3, (r4, 0x4) + g_uart0.Receiving = 0; + 772e: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7730: e3fff534 bsr 0x6198 // 6198 + +#if DBG_LOG_EN + //Dbg_Println(DBG_BIT_SYS_STATUS, "UART0 revLen %d", g_uart0.DealLen); + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART0 buff",g_uart0.DealBuffer,g_uart0.DealLen); +#endif + if(g_uart0.processing_cf != NULL){ + 7734: 9464 ld.w r3, (r4, 0x10) + 7736: 3b40 cmpnei r3, 0 + 7738: 0c04 bf 0x7740 // 7740 + rev = g_uart0.processing_cf(g_uart0.DealBuffer,g_uart0.DealLen); + 773a: 8c21 ld.h r1, (r4, 0x2) + 773c: 1007 lrw r0, 0x2000030c // 7758 + 773e: 7bcd jsr r3 + } + + memset(g_uart0.DealBuffer,0,USART_BUFFER_SIZE); + 7740: 3240 movi r2, 64 + 7742: 3100 movi r1, 0 + 7744: 1005 lrw r0, 0x2000030c // 7758 + 7746: e3ffe909 bsr 0x4958 // 4958 <__memset_fast> + } + } +} + 774a: 1492 pop r4-r5, r15 + 774c: 2000034c .long 0x2000034c + 7750: 200000c4 .long 0x200000c4 + 7754: 200002cc .long 0x200002cc + 7758: 2000030c .long 0x2000030c + +Disassembly of section .text.UART1_RecvINT_Processing: + +0000775c : +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 775c: 106a lrw r3, 0x200003e0 // 7784 + 775e: 8b22 ld.h r1, (r3, 0x4) + 7760: 323e movi r2, 62 + 7762: 6449 cmplt r2, r1 + 7764: 0c03 bf 0x776a // 776a + 7766: 3200 movi r2, 0 + 7768: ab42 st.h r2, (r3, 0x4) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 776a: 8b42 ld.h r2, (r3, 0x4) + 776c: 5a22 addi r1, r2, 1 + 776e: ab22 st.h r1, (r3, 0x4) + 7770: 1026 lrw r1, 0x20000360 // 7788 + 7772: 6084 addu r2, r1 + 7774: a200 st.b r0, (r2, 0x0) + + g_uart1.RecvIdleTiming = SysTick_1ms; + 7776: 1046 lrw r2, 0x200000c4 // 778c + 7778: 9240 ld.w r2, (r2, 0x0) + 777a: b343 st.w r2, (r3, 0xc) + g_uart1.Receiving = 0x01; + 777c: 3201 movi r2, 1 + 777e: a340 st.b r2, (r3, 0x0) + +} + 7780: 783c jmp r15 + 7782: 0000 bkpt + 7784: 200003e0 .long 0x200003e0 + 7788: 20000360 .long 0x20000360 + 778c: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00007790 : +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 7790: 106a lrw r3, 0x200002b8 // 77b8 + 7792: 8b22 ld.h r1, (r3, 0x4) + 7794: 323e movi r2, 62 + 7796: 6449 cmplt r2, r1 + 7798: 0c03 bf 0x779e // 779e + 779a: 3200 movi r2, 0 + 779c: ab42 st.h r2, (r3, 0x4) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 779e: 8b42 ld.h r2, (r3, 0x4) + 77a0: 5a22 addi r1, r2, 1 + 77a2: ab22 st.h r1, (r3, 0x4) + 77a4: 1026 lrw r1, 0x20000238 // 77bc + 77a6: 6084 addu r2, r1 + 77a8: a200 st.b r0, (r2, 0x0) + + g_uart.RecvIdleTiming = SysTick_1ms; + 77aa: 1046 lrw r2, 0x200000c4 // 77c0 + 77ac: 9240 ld.w r2, (r2, 0x0) + 77ae: b343 st.w r2, (r3, 0xc) + g_uart.Receiving = 0x01; + 77b0: 3201 movi r2, 1 + 77b2: a340 st.b r2, (r3, 0x0) +} + 77b4: 783c jmp r15 + 77b6: 0000 bkpt + 77b8: 200002b8 .long 0x200002b8 + 77bc: 20000238 .long 0x20000238 + 77c0: 200000c4 .long 0x200000c4 + +Disassembly of section .text.MCU485_SendData: + +000077c4 : + }while(Dataval == 0x00); //发送完成 + uart->ISR=UART_TX_DONE_S; +} + +volatile int RS485_Comm_Flag = 0,RS485_Comm_Start = 0,RS485_Comm_End = 0,RS485_Comming = 0; +void MCU485_SendData(U8_T *buff,U16_T len){ + 77c4: 14d4 push r4-r7, r15 + 77c6: 1421 subi r14, r14, 4 + 77c8: b800 st.w r0, (r14, 0x0) + 77ca: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 77cc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 77ce: 109f lrw r4, 0x200000c8 // 7848 + 77d0: 10df lrw r6, 0x2000004c // 784c + 77d2: 9460 ld.w r3, (r4, 0x0) + 77d4: 3b41 cmpnei r3, 1 + 77d6: 0c2d bf 0x7830 // 7830 + } + + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + } + + CK_CPU_DisAllNormalIrq(); + 77d8: e3fffeb1 bsr 0x753a // 753a + + WRITE_HIGH_DR; //GPIO_Write_High(GPIOA0,7); + 77dc: 3107 movi r1, 7 + 77de: 9600 ld.w r0, (r6, 0x0) + 77e0: e3fff6d4 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 77e4: 3301 movi r3, 1 + 77e6: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 77e8: 3300 movi r3, 0 + 77ea: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 77ec: b463 st.w r3, (r4, 0xc) + CK_CPU_EnAllNormalIrq(); + 77ee: e3fffea3 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 77f2: 1078 lrw r3, 0x2000003c // 7850 + 77f4: 6c9f mov r2, r7 + 77f6: 9300 ld.w r0, (r3, 0x0) + 77f8: 9820 ld.w r1, (r14, 0x0) + 77fa: e3fff80f bsr 0x6818 // 6818 + + do{ + delay_nus(100); + 77fe: 3064 movi r0, 100 + 7800: e3fff8ce bsr 0x699c // 699c + + delay_cnt ++; + 7804: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7806: 3363 movi r3, 99 + 7808: 654c cmphs r3, r5 + 780a: 0c07 bf 0x7818 // 7818 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 780c: 9462 ld.w r3, (r4, 0x8) + 780e: 65cd cmplt r3, r7 + 7810: 0bf7 bt 0x77fe // 77fe + 7812: 9463 ld.w r3, (r4, 0xc) + 7814: 65cd cmplt r3, r7 + 7816: 0bf4 bt 0x77fe // 77fe + + CK_CPU_DisAllNormalIrq(); + 7818: e3fffe91 bsr 0x753a // 753a + WRITE_LOW_DR; //GPIO_Write_Low(GPIOA0,7); + 781c: 9600 ld.w r0, (r6, 0x0) + 781e: 3107 movi r1, 7 + 7820: e3fff6b8 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 7824: 3300 movi r3, 0 + 7826: b461 st.w r3, (r4, 0x4) + CK_CPU_EnAllNormalIrq(); + 7828: e3fffe86 bsr 0x7534 // 7534 +} + 782c: 1401 addi r14, r14, 4 + 782e: 1494 pop r4-r7, r15 + delay_nus(100); + 7830: 3064 movi r0, 100 + 7832: e3fff8b5 bsr 0x699c // 699c + delay_cnt ++; + 7836: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7838: 3364 movi r3, 100 + 783a: 64d6 cmpne r5, r3 + 783c: 0fce bf 0x77d8 // 77d8 + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + 783e: 3107 movi r1, 7 + 7840: 9600 ld.w r0, (r6, 0x0) + 7842: e3fff6ab bsr 0x6598 // 6598 + 7846: 07c6 br 0x77d2 // 77d2 + 7848: 200000c8 .long 0x200000c8 + 784c: 2000004c .long 0x2000004c + 7850: 2000003c .long 0x2000003c + +Disassembly of section .text.BUS485_Send: + +00007854 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 7854: 14d4 push r4-r7, r15 + 7856: 1423 subi r14, r14, 12 + 7858: b802 st.w r0, (r14, 0x8) + 785a: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 785c: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 785e: 1189 lrw r4, 0x200000c8 // 7900 + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 7860: 11c9 lrw r6, 0x2000004c // 7904 + while(RS485_Comming == 0x01){ + 7862: 9460 ld.w r3, (r4, 0x0) + 7864: 3b41 cmpnei r3, 1 + 7866: 0c3e bf 0x78e2 // 78e2 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 7868: 1168 lrw r3, 0x20000454 // 7908 + 786a: 83c4 ld.b r6, (r3, 0x4) + 786c: 3e40 cmpnei r6, 0 + 786e: b861 st.w r3, (r14, 0x4) + 7870: 0845 bt 0x78fa // 78fa + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //485_DR + 7872: 11e5 lrw r7, 0x2000004c // 7904 + CK_CPU_DisAllNormalIrq(); + 7874: e3fffe63 bsr 0x753a // 753a + WRITE_HIGH_DR; //485_DR + 7878: 3107 movi r1, 7 + 787a: 9700 ld.w r0, (r7, 0x0) + 787c: e3fff686 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 7880: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7882: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 7884: b441 st.w r2, (r4, 0x4) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7886: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 7888: b4c2 st.w r6, (r4, 0x8) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 788a: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 788c: b4c3 st.w r6, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 788e: e3fffe53 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 7892: 105f lrw r2, 0x2000003c // 790c + 7894: 9200 ld.w r0, (r2, 0x0) + 7896: 9822 ld.w r1, (r14, 0x8) + 7898: 9840 ld.w r2, (r14, 0x0) + 789a: e3fff7bf bsr 0x6818 // 6818 + do{ + delay_nus(100); + 789e: 3064 movi r0, 100 + 78a0: e3fff87e bsr 0x699c // 699c + delay_cnt ++; + 78a4: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78a6: 3363 movi r3, 99 + 78a8: 654c cmphs r3, r5 + 78aa: 0c08 bf 0x78ba // 78ba + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 78ac: 9462 ld.w r3, (r4, 0x8) + 78ae: 9840 ld.w r2, (r14, 0x0) + 78b0: 648d cmplt r3, r2 + 78b2: 0bf6 bt 0x789e // 789e + 78b4: 9463 ld.w r3, (r4, 0xc) + 78b6: 648d cmplt r3, r2 + 78b8: 0bf3 bt 0x789e // 789e + + CK_CPU_DisAllNormalIrq(); + 78ba: e3fffe40 bsr 0x753a // 753a + + WRITE_LOW_DR; //485_DR + 78be: 9700 ld.w r0, (r7, 0x0) + 78c0: 3107 movi r1, 7 + 78c2: e3fff667 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 78c6: 3300 movi r3, 0 + 78c8: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 78ca: 1072 lrw r3, 0x200000c4 // 7910 + 78cc: 9340 ld.w r2, (r3, 0x0) + 78ce: 1072 lrw r3, 0x200003f4 // 7914 + 78d0: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 78d2: 9861 ld.w r3, (r14, 0x4) + 78d4: 3200 movi r2, 0 + 78d6: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 78d8: e3fffe2e bsr 0x7534 // 7534 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 78dc: 6c1b mov r0, r6 + 78de: 1403 addi r14, r14, 12 + 78e0: 1494 pop r4-r7, r15 + delay_nus(100); + 78e2: 3064 movi r0, 100 + 78e4: e3fff85c bsr 0x699c // 699c + delay_cnt ++; + 78e8: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78ea: 3364 movi r3, 100 + 78ec: 64d6 cmpne r5, r3 + 78ee: 0fbd bf 0x7868 // 7868 + REVERISE_DR; //485_DR + 78f0: 3107 movi r1, 7 + 78f2: 9600 ld.w r0, (r6, 0x0) + 78f4: e3fff652 bsr 0x6598 // 6598 + 78f8: 07b5 br 0x7862 // 7862 + return UART_BUSBUSY; //发送失败 + 78fa: 3601 movi r6, 1 + 78fc: 07f0 br 0x78dc // 78dc + 78fe: 0000 bkpt + 7900: 200000c8 .long 0x200000c8 + 7904: 2000004c .long 0x2000004c + 7908: 20000454 .long 0x20000454 + 790c: 2000003c .long 0x2000003c + 7910: 200000c4 .long 0x200000c4 + 7914: 200003f4 .long 0x200003f4 + +Disassembly of section .text.Set_GroupSend: + +00007918 : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 7918: 14d4 push r4-r7, r15 + 791a: 1422 subi r14, r14, 8 + 791c: 6d8b mov r6, r2 + 791e: 9847 ld.w r2, (r14, 0x1c) + 7920: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7922: 5943 subi r2, r1, 1 +{ + 7924: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7926: 7489 zexth r2, r2 + 7928: 3163 movi r1, 99 + 792a: 6484 cmphs r1, r2 +{ + 792c: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 792e: 0c20 bf 0x796e // 796e + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 7930: 1091 lrw r4, 0x200003f4 // 7974 + 7932: 3264 movi r2, 100 + 7934: 3100 movi r1, 0 + 7936: 6c13 mov r0, r4 + 7938: b861 st.w r3, (r14, 0x4) + 793a: e3ffe80f bsr 0x4958 // 4958 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 793e: 6c97 mov r2, r5 + 7940: 6c13 mov r0, r4 + 7942: 6c5f mov r1, r7 + 7944: e3ffe84e bsr 0x49e0 // 49e0 <__memcpy_fast> + m_send.SendLen = sled; + 7948: 3240 movi r2, 64 + 794a: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 794c: 9861 ld.w r3, (r14, 0x4) + 794e: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 7950: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 7952: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7954: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 7956: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7958: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 795a: 3201 movi r2, 1 + 795c: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 795e: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 7960: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 7962: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 7964: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 7966: 247f addi r4, 128 + 7968: 1064 lrw r3, 0x200000c4 // 7978 + 796a: 9360 ld.w r3, (r3, 0x0) + 796c: b461 st.w r3, (r4, 0x4) +} + 796e: 1402 addi r14, r14, 8 + 7970: 1494 pop r4-r7, r15 + 7972: 0000 bkpt + 7974: 200003f4 .long 0x200003f4 + 7978: 200000c4 .long 0x200000c4 + +Disassembly of section .text.Clear_SendFlag: + +0000797c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 797c: 1063 lrw r3, 0x20000454 // 7988 + 797e: 3200 movi r2, 0 + 7980: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 7982: a347 st.b r2, (r3, 0x7) +} + 7984: 783c jmp r15 + 7986: 0000 bkpt + 7988: 20000454 .long 0x20000454 + +Disassembly of section .text.BUS485_Jump_Boot: + +0000798c : + +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 798c: 1062 lrw r3, 0x20000454 // 7994 + 798e: a30c st.b r0, (r3, 0xc) +} + 7990: 783c jmp r15 + 7992: 0000 bkpt + 7994: 20000454 .long 0x20000454 + +Disassembly of section .text.BusIdle_Task: + +00007998 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 7998: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 799a: 10ae lrw r5, 0x200003f4 // 79d0 + 799c: 3460 movi r4, 96 + 799e: 6114 addu r4, r5 + 79a0: 8464 ld.b r3, (r4, 0x4) + 79a2: 3b40 cmpnei r3, 0 + 79a4: 0c15 bf 0x79ce // 79ce + 79a6: 8466 ld.b r3, (r4, 0x6) + 79a8: 3b41 cmpnei r3, 1 + 79aa: 0c12 bf 0x79ce // 79ce + { + CK_CPU_DisAllNormalIrq(); + 79ac: e3fffdc7 bsr 0x753a // 753a + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 79b0: 8465 ld.b r3, (r4, 0x5) + 79b2: 3b41 cmpnei r3, 1 + 79b4: 080b bt 0x79ca // 79ca + 79b6: 1068 lrw r3, 0x200000c4 // 79d4 + 79b8: 9340 ld.w r2, (r3, 0x0) + 79ba: 957f ld.w r3, (r5, 0x7c) + 79bc: 608e subu r2, r3 + 79be: 957c ld.w r3, (r5, 0x70) + 79c0: 2305 addi r3, 6 + 79c2: 64c8 cmphs r2, r3 + 79c4: 0c03 bf 0x79ca // 79ca + { + m_send.BusState_Flag = UART_BUSIDLE; + 79c6: 3300 movi r3, 0 + 79c8: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 79ca: e3fffdb5 bsr 0x7534 // 7534 + } +} + 79ce: 1492 pop r4-r5, r15 + 79d0: 200003f4 .long 0x200003f4 + 79d4: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BusBusy_Task: + +000079d8 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 79d8: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 79da: 1094 lrw r4, 0x200003f4 // 7a28 + 79dc: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 79de: e3fffdae bsr 0x753a // 753a + m_send.BusState_Flag = UART_BUSBUSY; + 79e2: 6150 addu r5, r4 + 79e4: 3301 movi r3, 1 + 79e6: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79e8: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 79ea: 1071 lrw r3, 0x200000c4 // 7a2c + 79ec: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79ee: 9300 ld.w r0, (r3, 0x0) + 79f0: 3380 movi r3, 128 + 79f2: 60d0 addu r3, r4 + 79f4: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 79f6: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79f8: 600e subu r0, r3 + 79fa: e3fffd8b bsr 0x7510 // 7510 <__umodsi3> + 79fe: b41c st.w r0, (r4, 0x70) + + if(READ_RX_LEVEL_STATE == 0x01){ + 7a00: 310f movi r1, 15 + 7a02: 108c lrw r4, 0x2000004c // 7a30 + 7a04: 9400 ld.w r0, (r4, 0x0) + 7a06: e3fff5d4 bsr 0x65ae // 65ae + 7a0a: 3841 cmpnei r0, 1 + 7a0c: 0806 bt 0x7a18 // 7a18 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 7a0e: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 7a10: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 7a12: e3fffd91 bsr 0x7534 // 7534 +} + 7a16: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 7a18: 9400 ld.w r0, (r4, 0x0) + 7a1a: 310f movi r1, 15 + 7a1c: e3fff5c9 bsr 0x65ae // 65ae + 7a20: 3840 cmpnei r0, 0 + 7a22: 0bf8 bt 0x7a12 // 7a12 + m_send.HighBit_Flag = 0x00; //低电平 + 7a24: 3300 movi r3, 0 + 7a26: 07f5 br 0x7a10 // 7a10 + 7a28: 200003f4 .long 0x200003f4 + 7a2c: 200000c4 .long 0x200000c4 + 7a30: 2000004c .long 0x2000004c + +Disassembly of section .text.Dbg_Println: + +00007a34 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 7a34: 1423 subi r14, r14, 12 + 7a36: b862 st.w r3, (r14, 0x8) + 7a38: b841 st.w r2, (r14, 0x4) + 7a3a: b820 st.w r1, (r14, 0x0) + 7a3c: 14d1 push r4, r15 + 7a3e: 1422 subi r14, r14, 8 + 7a40: 9864 ld.w r3, (r14, 0x10) + 7a42: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7a44: 3301 movi r3, 1 + 7a46: 1098 lrw r4, 0x200000c8 // 7aa4 + 7a48: 70c0 lsl r3, r0 + 7a4a: 9444 ld.w r2, (r4, 0x10) + 7a4c: 68c8 and r3, r2 + 7a4e: 3b40 cmpnei r3, 0 + 7a50: 0c24 bf 0x7a98 // 7a98 + SysTick_Now = SysTick_1ms; + 7a52: 1076 lrw r3, 0x200000c4 // 7aa8 + 7a54: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a56: 9446 ld.w r2, (r4, 0x18) + 7a58: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7a5a: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a5c: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7a5e: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7a60: 3020 movi r0, 32 + 7a62: b840 st.w r2, (r14, 0x0) + 7a64: 3180 movi r1, 128 + 7a66: 1052 lrw r2, 0xaf45 // 7aac + 7a68: 6010 addu r0, r4 + 7a6a: e3ffe71b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7a6e: 7441 zexth r1, r0 + 7a70: 3020 movi r0, 32 + 7a72: 6010 addu r0, r4 + 7a74: e3fffea8 bsr 0x77c4 // 77c4 + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7a78: 3020 movi r0, 32 + 7a7a: 1b05 addi r3, r14, 20 + 7a7c: 9841 ld.w r2, (r14, 0x4) + 7a7e: 3180 movi r1, 128 + 7a80: 6010 addu r0, r4 + 7a82: e3ffe73e bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 7a86: 7441 zexth r1, r0 + 7a88: 6c13 mov r0, r4 + 7a8a: 201f addi r0, 32 + 7a8c: e3fffe9c bsr 0x77c4 // 77c4 + + DBG_Printf("\r\n",2); + 7a90: 3102 movi r1, 2 + 7a92: 1008 lrw r0, 0xaf53 // 7ab0 + 7a94: e3fffe98 bsr 0x77c4 // 77c4 + + + } + +#endif +} + 7a98: 1402 addi r14, r14, 8 + 7a9a: d9ee2001 ld.w r15, (r14, 0x4) + 7a9e: 9880 ld.w r4, (r14, 0x0) + 7aa0: 1405 addi r14, r14, 20 + 7aa2: 783c jmp r15 + 7aa4: 200000c8 .long 0x200000c8 + 7aa8: 200000c4 .long 0x200000c4 + 7aac: 0000af45 .long 0x0000af45 + 7ab0: 0000af53 .long 0x0000af53 + +Disassembly of section .text.MultSend_Task: + +00007ab4 : +{ + 7ab4: 14d4 push r4-r7, r15 + 7ab6: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ab8: 5963 subi r3, r1, 1 + 7aba: 74cd zexth r3, r3 + 7abc: 3463 movi r4, 99 + 7abe: 64d0 cmphs r4, r3 +{ + 7ac0: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ac2: 0c3c bf 0x7b3a // 7b3a + if(DatSd == 0x01) + 7ac4: 3a41 cmpnei r2, 1 + 7ac6: 0c05 bf 0x7ad0 // 7ad0 + return BUSSEND_WAIT;//等待 + 7ac8: 3601 movi r6, 1 +} + 7aca: 6c1b mov r0, r6 + 7acc: 1401 addi r14, r14, 4 + 7ace: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 7ad0: 107c lrw r3, 0x200003f4 // 7b40 + 7ad2: 3760 movi r7, 96 + 7ad4: 61cc addu r7, r3 + 7ad6: 8748 ld.b r2, (r7, 0x8) + 7ad8: 878a ld.b r4, (r7, 0xa) + 7ada: 6508 cmphs r2, r4 + 7adc: 0829 bt 0x7b2e // 7b2e + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 7ade: 3480 movi r4, 128 + 7ae0: 10b9 lrw r5, 0x200000c4 // 7b44 + 7ae2: 610c addu r4, r3 + 7ae4: 9401 ld.w r0, (r4, 0x4) + 7ae6: 95c0 ld.w r6, (r5, 0x0) + 7ae8: 6182 subu r6, r0 + 7aea: 931e ld.w r0, (r3, 0x78) + 7aec: 6418 cmphs r6, r0 + 7aee: 081a bt 0x7b22 // 7b22 + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 7af0: 3a40 cmpnei r2, 0 + 7af2: 0c07 bf 0x7b00 // 7b00 + 7af4: 9540 ld.w r2, (r5, 0x0) + 7af6: 94c0 ld.w r6, (r4, 0x0) + 7af8: 609a subu r2, r6 + 7afa: 937d ld.w r3, (r3, 0x74) + 7afc: 64c8 cmphs r2, r3 + 7afe: 0fe5 bf 0x7ac8 // 7ac8 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 7b00: 9800 ld.w r0, (r14, 0x0) + 7b02: e3fffea9 bsr 0x7854 // 7854 + 7b06: 3840 cmpnei r0, 0 + 7b08: 6d83 mov r6, r0 + 7b0a: 0bdf bt 0x7ac8 // 7ac8 + m_send.ResendCnt++; + 7b0c: 8748 ld.b r2, (r7, 0x8) + 7b0e: 2200 addi r2, 1 + m_send.ASend_Tick = SysTick_1ms; + 7b10: 9560 ld.w r3, (r5, 0x0) + m_send.ResendCnt++; + 7b12: 7488 zextb r2, r2 + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b14: 102d lrw r1, 0xaf56 // 7b48 + 7b16: 3002 movi r0, 2 + m_send.ASend_Tick = SysTick_1ms; + 7b18: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 7b1a: a748 st.b r2, (r7, 0x8) + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b1c: e3ffff8c bsr 0x7a34 // 7a34 + 7b20: 07d5 br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"data end"); + 7b22: 102b lrw r1, 0xaf69 // 7b4c + 7b24: 3002 movi r0, 2 + 7b26: e3ffff87 bsr 0x7a34 // 7a34 + return DATA_END;//数据有效期结束 + 7b2a: 3602 movi r6, 2 + 7b2c: 07cf br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + 7b2e: 1029 lrw r1, 0xaf72 // 7b50 + 7b30: 3002 movi r0, 2 + 7b32: e3ffff81 bsr 0x7a34 // 7a34 + return RETRY_END;//没有重发次数 + 7b36: 3603 movi r6, 3 + 7b38: 07c9 br 0x7aca // 7aca + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7b3a: 3604 movi r6, 4 + 7b3c: 07c7 br 0x7aca // 7aca + 7b3e: 0000 bkpt + 7b40: 200003f4 .long 0x200003f4 + 7b44: 200000c4 .long 0x200000c4 + 7b48: 0000af56 .long 0x0000af56 + 7b4c: 0000af69 .long 0x0000af69 + 7b50: 0000af72 .long 0x0000af72 + +Disassembly of section .text.BUS485Send_Task: + +00007b54 : +{ + 7b54: 14d1 push r4, r15 + if(m_send.ASend_Flag == 0x01) + 7b56: 1099 lrw r4, 0x20000454 // 7bb8 + 7b58: 8469 ld.b r3, (r4, 0x9) + 7b5a: 3b41 cmpnei r3, 1 + 7b5c: 082c bt 0x7bb4 // 7bb4 + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 7b5e: 1078 lrw r3, 0x20000434 // 7bbc + 7b60: 8b37 ld.h r1, (r3, 0x2e) + 7b62: 3201 movi r2, 1 + 7b64: 1017 lrw r0, 0x200003f4 // 7bc0 + 7b66: e3ffffa7 bsr 0x7ab4 // 7ab4 + 7b6a: a407 st.b r0, (r4, 0x7) + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 7b6c: 2801 subi r0, 2 + 7b6e: 7400 zextb r0, r0 + 7b70: 3801 cmphsi r0, 2 + 7b72: 0821 bt 0x7bb4 // 7bb4 + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + 7b74: 1034 lrw r1, 0xaf7f // 7bc4 + 7b76: 3002 movi r0, 2 + 7b78: e3ffff5e bsr 0x7a34 // 7a34 + m_send.ASend_Flag = 0x00; //清除发送标志位 + 7b7c: 3300 movi r3, 0 + 7b7e: a469 st.b r3, (r4, 0x9) + if(m_send.Jump_Flag == 0x01){ + 7b80: 846c ld.b r3, (r4, 0xc) + 7b82: 3b41 cmpnei r3, 1 + 7b84: 0818 bt 0x7bb4 // 7bb4 + Dbg_Println(DBG_BIT_Debug_STATUS,"Jump Boot"); + 7b86: 1031 lrw r1, 0xaf88 // 7bc8 + 7b88: 3002 movi r0, 2 + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 7b8a: 1091 lrw r4, 0x2000005c // 7bcc + Dbg_Println(DBG_BIT_Debug_STATUS,"Jump Boot"); + 7b8c: e3ffff54 bsr 0x7a34 // 7a34 + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 7b90: 9460 ld.w r3, (r4, 0x0) + 7b92: 1050 lrw r2, 0x200006ec // 7bd0 + 7b94: 924d ld.w r2, (r2, 0x34) + 7b96: 23ff addi r3, 256 + 7b98: b343 st.w r2, (r3, 0xc) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Appboot:%d",g_boot.bootTimeout); + 7b9a: 3001 movi r0, 1 + 7b9c: 102e lrw r1, 0xaf92 // 7bd4 + 7b9e: e3ffff4b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Appboot:%d",SYSCON->UREG3); + 7ba2: 9460 ld.w r3, (r4, 0x0) + 7ba4: 23ff addi r3, 256 + 7ba6: 9343 ld.w r2, (r3, 0xc) + 7ba8: 3001 movi r0, 1 + 7baa: 102b lrw r1, 0xaf92 // 7bd4 + 7bac: e3ffff44 bsr 0x7a34 // 7a34 + SYSCON_Software_Reset(); + 7bb0: e3fff300 bsr 0x61b0 // 61b0 +} + 7bb4: 1491 pop r4, r15 + 7bb6: 0000 bkpt + 7bb8: 20000454 .long 0x20000454 + 7bbc: 20000434 .long 0x20000434 + 7bc0: 200003f4 .long 0x200003f4 + 7bc4: 0000af7f .long 0x0000af7f + 7bc8: 0000af88 .long 0x0000af88 + 7bcc: 2000005c .long 0x2000005c + 7bd0: 200006ec .long 0x200006ec + 7bd4: 0000af92 .long 0x0000af92 + +Disassembly of section .text.Dbg_Print_Buff: + +00007bd8 : + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bd8: 14d4 push r4-r7, r15 + 7bda: 1422 subi r14, r14, 8 + 7bdc: 6dcf mov r7, r3 +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bde: 109b lrw r4, 0x200000c8 // 7c48 + 7be0: 3301 movi r3, 1 +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7be2: 6d8b mov r6, r2 + if (Dbg_Switch & (1 << DbgOptBit)) { + 7be4: 70c0 lsl r3, r0 + 7be6: 9444 ld.w r2, (r4, 0x10) + 7be8: 68c8 and r3, r2 + 7bea: 3b40 cmpnei r3, 0 + 7bec: 0c1f bf 0x7c2a // 7c2a + SysTick_Now = SysTick_1ms; + 7bee: 1078 lrw r3, 0x200000c4 // 7c4c + 7bf0: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bf2: 9446 ld.w r2, (r4, 0x18) + 7bf4: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7bf6: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bf8: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7bfa: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7bfc: 3020 movi r0, 32 + 7bfe: b840 st.w r2, (r14, 0x0) + 7c00: 3180 movi r1, 128 + 7c02: 1054 lrw r2, 0xaf45 // 7c50 + 7c04: 6010 addu r0, r4 + 7c06: e3ffe64d bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7c0a: 7441 zexth r1, r0 + 7c0c: 3020 movi r0, 32 + 7c0e: 6010 addu r0, r4 + 7c10: e3fffdda bsr 0x77c4 // 77c4 + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7c14: 1070 lrw r3, 0xaf9d // 7c54 + DBG_Printf(Dbg_Buffer,str_offset); + 7c16: 6d5b mov r5, r6 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7c18: b861 st.w r3, (r14, 0x4) + 7c1a: 241f addi r4, 32 + for (uint32_t i = 0; i < len; i++) { + 7c1c: 5d79 subu r3, r5, r6 + 7c1e: 65cc cmphs r3, r7 + 7c20: 0c07 bf 0x7c2e // 7c2e + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + 7c22: 3102 movi r1, 2 + 7c24: 100d lrw r0, 0xaf53 // 7c58 + 7c26: e3fffdcf bsr 0x77c4 // 77c4 + } + +#endif +} + 7c2a: 1402 addi r14, r14, 8 + 7c2c: 1494 pop r4-r7, r15 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7c2e: 8560 ld.b r3, (r5, 0x0) + 7c30: 9841 ld.w r2, (r14, 0x4) + 7c32: 3180 movi r1, 128 + 7c34: 6c13 mov r0, r4 + 7c36: e3ffe635 bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7c3a: 7441 zexth r1, r0 + 7c3c: 6c13 mov r0, r4 + 7c3e: e3fffdc3 bsr 0x77c4 // 77c4 + 7c42: 2500 addi r5, 1 + 7c44: 07ec br 0x7c1c // 7c1c + 7c46: 0000 bkpt + 7c48: 200000c8 .long 0x200000c8 + 7c4c: 200000c4 .long 0x200000c4 + 7c50: 0000af45 .long 0x0000af45 + 7c54: 0000af9d .long 0x0000af9d + 7c58: 0000af53 .long 0x0000af53 + +Disassembly of section .text.UART1_TASK: + +00007c5c : +void UART1_TASK(void){ + 7c5c: 14d2 push r4-r5, r15 + if(g_uart1.Receiving == 0x01){ + 7c5e: 109d lrw r4, 0x200003e0 // 7cd0 + 7c60: 8460 ld.b r3, (r4, 0x0) + 7c62: 3b41 cmpnei r3, 1 + 7c64: 082f bt 0x7cc2 // 7cc2 + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + 7c66: 10bc lrw r5, 0x200000c4 // 7cd4 + 7c68: 9560 ld.w r3, (r5, 0x0) + 7c6a: 9443 ld.w r2, (r4, 0xc) + 7c6c: 60ca subu r3, r2 + 7c6e: 9442 ld.w r2, (r4, 0x8) + 7c70: 64c8 cmphs r2, r3 + 7c72: 0828 bt 0x7cc2 // 7cc2 + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7c74: e3fff298 bsr 0x61a4 // 61a4 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c78: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c7a: 8c42 ld.h r2, (r4, 0x4) + 7c7c: 1037 lrw r1, 0x20000360 // 7cd8 + 7c7e: 1018 lrw r0, 0x200003a0 // 7cdc + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c80: b463 st.w r3, (r4, 0xc) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c82: e3ffe6af bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart1.DealLen = g_uart1.RecvLen; + 7c86: 8c62 ld.h r3, (r4, 0x4) + 7c88: ac61 st.h r3, (r4, 0x2) + g_uart1.RecvLen = 0; + 7c8a: 3300 movi r3, 0 + 7c8c: ac62 st.h r3, (r4, 0x4) + g_uart1.Receiving = 0; + 7c8e: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7c90: e3fff284 bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + 7c94: 8c41 ld.h r2, (r4, 0x2) + 7c96: 1033 lrw r1, 0xafa3 // 7ce0 + 7c98: 3000 movi r0, 0 + 7c9a: e3fffecd bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); + 7c9e: 8c61 ld.h r3, (r4, 0x2) + 7ca0: 104f lrw r2, 0x200003a0 // 7cdc + 7ca2: 1031 lrw r1, 0xafb5 // 7ce4 + 7ca4: 3000 movi r0, 0 + 7ca6: e3ffff99 bsr 0x7bd8 // 7bd8 + if(g_uart1.processing_cf != NULL){ + 7caa: 9464 ld.w r3, (r4, 0x10) + 7cac: 3b40 cmpnei r3, 0 + 7cae: 080b bt 0x7cc4 // 7cc4 + Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); + 7cb0: 8c21 ld.h r1, (r4, 0x2) + 7cb2: 100b lrw r0, 0x200003a0 // 7cdc + 7cb4: e00011cc bsr 0xa04c // a04c + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + 7cb8: 3240 movi r2, 64 + 7cba: 3100 movi r1, 0 + 7cbc: 1008 lrw r0, 0x200003a0 // 7cdc + 7cbe: e3ffe64d bsr 0x4958 // 4958 <__memset_fast> +} + 7cc2: 1492 pop r4-r5, r15 + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + 7cc4: 8c21 ld.h r1, (r4, 0x2) + 7cc6: 1006 lrw r0, 0x200003a0 // 7cdc + 7cc8: 7bcd jsr r3 + if(rev != 0x00) + 7cca: 3840 cmpnei r0, 0 + 7ccc: 0ff6 bf 0x7cb8 // 7cb8 + 7cce: 07f1 br 0x7cb0 // 7cb0 + 7cd0: 200003e0 .long 0x200003e0 + 7cd4: 200000c4 .long 0x200000c4 + 7cd8: 20000360 .long 0x20000360 + 7cdc: 200003a0 .long 0x200003a0 + 7ce0: 0000afa3 .long 0x0000afa3 + 7ce4: 0000afb5 .long 0x0000afb5 + +Disassembly of section .text.UART2_TASK: + +00007ce8 : +void UART2_TASK(void){ + 7ce8: 14d2 push r4-r5, r15 + if(g_uart.Receiving == 0x01){ + 7cea: 1180 lrw r4, 0x200002b8 // 7d68 + 7cec: 8460 ld.b r3, (r4, 0x0) + 7cee: 3b41 cmpnei r3, 1 + 7cf0: 0835 bt 0x7d5a // 7d5a + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 7cf2: 10bf lrw r5, 0x200000c4 // 7d6c + 7cf4: 9560 ld.w r3, (r5, 0x0) + 7cf6: 9443 ld.w r2, (r4, 0xc) + 7cf8: 60ca subu r3, r2 + 7cfa: 9442 ld.w r2, (r4, 0x8) + 7cfc: 64c8 cmphs r2, r3 + 7cfe: 082e bt 0x7d5a // 7d5a + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7d00: e3fff252 bsr 0x61a4 // 61a4 + g_uart.RecvIdleTiming = SysTick_1ms; + 7d04: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7d06: 8c42 ld.h r2, (r4, 0x4) + 7d08: 103a lrw r1, 0x20000238 // 7d70 + 7d0a: 101b lrw r0, 0x20000278 // 7d74 + g_uart.RecvIdleTiming = SysTick_1ms; + 7d0c: b463 st.w r3, (r4, 0xc) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7d0e: e3ffe669 bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart.DealLen = g_uart.RecvLen; + 7d12: 8c62 ld.h r3, (r4, 0x4) + 7d14: ac61 st.h r3, (r4, 0x2) + g_uart.RecvLen = 0; + 7d16: 3300 movi r3, 0 + 7d18: ac62 st.h r3, (r4, 0x4) + g_uart.Receiving = 0; + 7d1a: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7d1c: e3fff23e bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 revLen %d", g_uart.DealLen); + 7d20: 8c41 ld.h r2, (r4, 0x2) + 7d22: 1036 lrw r1, 0xafc0 // 7d78 + 7d24: 3000 movi r0, 0 + 7d26: e3fffe87 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 rev:%s", g_uart.DealBuffer); + 7d2a: 1053 lrw r2, 0x20000278 // 7d74 + 7d2c: 1034 lrw r1, 0xafd0 // 7d7c + 7d2e: 3000 movi r0, 0 + 7d30: e3fffe82 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart.DealBuffer,g_uart.DealLen); + 7d34: 8c61 ld.h r3, (r4, 0x2) + 7d36: 1050 lrw r2, 0x20000278 // 7d74 + 7d38: 1032 lrw r1, 0xafdd // 7d80 + 7d3a: 3000 movi r0, 0 + 7d3c: e3ffff4e bsr 0x7bd8 // 7bd8 + if(g_uart.processing_cf != NULL){ + 7d40: 9464 ld.w r3, (r4, 0x10) + 7d42: 3b40 cmpnei r3, 0 + 7d44: 080c bt 0x7d5c // 7d5c + BT_Uart_Packing(g_uart.DealBuffer,g_uart.DealLen,6); + 7d46: 8422 ld.b r1, (r4, 0x2) + 7d48: 3206 movi r2, 6 + 7d4a: 100b lrw r0, 0x20000278 // 7d74 + 7d4c: e0000c88 bsr 0x965c // 965c + memset(g_uart.DealBuffer,0,USART_BUFFER_SIZE); + 7d50: 3240 movi r2, 64 + 7d52: 3100 movi r1, 0 + 7d54: 1008 lrw r0, 0x20000278 // 7d74 + 7d56: e3ffe601 bsr 0x4958 // 4958 <__memset_fast> +} + 7d5a: 1492 pop r4-r5, r15 + rev = g_uart.processing_cf(g_uart.DealBuffer,g_uart.DealLen); + 7d5c: 8c21 ld.h r1, (r4, 0x2) + 7d5e: 1006 lrw r0, 0x20000278 // 7d74 + 7d60: 7bcd jsr r3 + if(rev != 0x00) + 7d62: 3840 cmpnei r0, 0 + 7d64: 0ff6 bf 0x7d50 // 7d50 + 7d66: 07f0 br 0x7d46 // 7d46 + 7d68: 200002b8 .long 0x200002b8 + 7d6c: 200000c4 .long 0x200000c4 + 7d70: 20000238 .long 0x20000238 + 7d74: 20000278 .long 0x20000278 + 7d78: 0000afc0 .long 0x0000afc0 + 7d7c: 0000afd0 .long 0x0000afd0 + 7d80: 0000afdd .long 0x0000afdd + +Disassembly of section .text.Dbg_BT_Println: + +00007d84 : + +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...){ + 7d84: 1423 subi r14, r14, 12 + 7d86: b862 st.w r3, (r14, 0x8) + 7d88: b841 st.w r2, (r14, 0x4) + 7d8a: b820 st.w r1, (r14, 0x0) + 7d8c: 14d2 push r4-r5, r15 + 7d8e: 1421 subi r14, r14, 4 + 7d90: 9864 ld.w r3, (r14, 0x10) + 7d92: b860 st.w r3, (r14, 0x0) +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7d94: 3301 movi r3, 1 + 7d96: 1091 lrw r4, 0x200000c8 // 7dd8 + 7d98: 70c0 lsl r3, r0 + 7d9a: 9444 ld.w r2, (r4, 0x10) + 7d9c: 68c8 and r3, r2 + 7d9e: 3b40 cmpnei r3, 0 + 7da0: 0c14 bf 0x7dc8 // 7dc8 + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7da2: 3020 movi r0, 32 + 7da4: 1b05 addi r3, r14, 20 + 7da6: 9840 ld.w r2, (r14, 0x0) + 7da8: 3180 movi r1, 128 + 7daa: 6010 addu r0, r4 + 7dac: e3ffe5a9 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_BTPrintf(Dbg_Buffer,str_offset); + 7db0: 10ab lrw r5, 0x20000038 // 7ddc + 7db2: 6c53 mov r1, r4 + 7db4: 7481 zexth r2, r0 + 7db6: 211f addi r1, 32 + 7db8: 9500 ld.w r0, (r5, 0x0) + 7dba: e3fff52f bsr 0x6818 // 6818 + + DBG_BTPrintf("\r\n",2); + 7dbe: 9500 ld.w r0, (r5, 0x0) + 7dc0: 3202 movi r2, 2 + 7dc2: 1028 lrw r1, 0xaf53 // 7de0 + 7dc4: e3fff52a bsr 0x6818 // 6818 + } + +#endif +} + 7dc8: 1401 addi r14, r14, 4 + 7dca: d9ee2002 ld.w r15, (r14, 0x8) + 7dce: 98a1 ld.w r5, (r14, 0x4) + 7dd0: 9880 ld.w r4, (r14, 0x0) + 7dd2: 1406 addi r14, r14, 24 + 7dd4: 783c jmp r15 + 7dd6: 0000 bkpt + 7dd8: 200000c8 .long 0x200000c8 + 7ddc: 20000038 .long 0x20000038 + 7de0: 0000af53 .long 0x0000af53 + +Disassembly of section .text.DIP_GetSwitchState: + +00007de4 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 7de4: 14d0 push r15 + U8_T val = 0; + + switch (i) + 7de6: 3841 cmpnei r0, 1 + 7de8: 0c0d bf 0x7e02 // 7e02 + 7dea: 3840 cmpnei r0, 0 + 7dec: 0c05 bf 0x7df6 // 7df6 + 7dee: 3842 cmpnei r0, 2 + 7df0: 0c0d bf 0x7e0a // 7e0a + U8_T val = 0; + 7df2: 3000 movi r0, 0 + 7df4: 0406 br 0x7e00 // 7e00 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 7df6: 1068 lrw r3, 0x2000004c // 7e14 + 7df8: 310a movi r1, 10 + 7dfa: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 7dfc: e3fff3d9 bsr 0x65ae // 65ae + break; + + } + return val; +} + 7e00: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 7e02: 1065 lrw r3, 0x2000004c // 7e14 + 7e04: 3109 movi r1, 9 + 7e06: 9300 ld.w r0, (r3, 0x0) + 7e08: 07fa br 0x7dfc // 7dfc + val = GPIO_Read_Status(GPIOA0,8); + 7e0a: 1063 lrw r3, 0x2000004c // 7e14 + 7e0c: 3108 movi r1, 8 + 7e0e: 9300 ld.w r0, (r3, 0x0) + 7e10: 07f6 br 0x7dfc // 7dfc + 7e12: 0000 bkpt + 7e14: 2000004c .long 0x2000004c + +Disassembly of section .text.DIP_Switch_Init: + +00007e18 : +void DIP_Switch_Init(void){ + 7e18: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 7e1a: 1182 lrw r4, 0x2000004c // 7ea0 + 7e1c: 3201 movi r2, 1 + 7e1e: 9400 ld.w r0, (r4, 0x0) + 7e20: 310a movi r1, 10 + 7e22: e3fff22d bsr 0x627c // 627c + GPIO_Init(GPIOA0,9,Intput); + 7e26: 9400 ld.w r0, (r4, 0x0) + 7e28: 3201 movi r2, 1 + 7e2a: 3109 movi r1, 9 + 7e2c: e3fff228 bsr 0x627c // 627c + GPIO_Init(GPIOA0,8,Intput); + 7e30: 3201 movi r2, 1 + 7e32: 9400 ld.w r0, (r4, 0x0) + 7e34: 3108 movi r1, 8 + 7e36: e3fff223 bsr 0x627c // 627c + GPIO_PullHigh_Init(GPIOA0,10); + 7e3a: 9400 ld.w r0, (r4, 0x0) + 7e3c: 310a movi r1, 10 + 7e3e: e3fff28f bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,9); + 7e42: 9400 ld.w r0, (r4, 0x0) + 7e44: 3109 movi r1, 9 + 7e46: e3fff28b bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,8); + 7e4a: 9400 ld.w r0, (r4, 0x0) + 7e4c: 3108 movi r1, 8 + 7e4e: e3fff287 bsr 0x635c // 635c + memset(&g_Dip,0,sizeof(DIP_t)); + 7e52: 3214 movi r2, 20 + 7e54: 3100 movi r1, 0 + 7e56: 1014 lrw r0, 0x2000047c // 7ea4 + 7e58: e3ffe580 bsr 0x4958 // 4958 <__memset_fast> + delay_nms(20); + 7e5c: 3014 movi r0, 20 + 7e5e: e3fff589 bsr 0x6970 // 6970 + 7e62: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e64: 10b0 lrw r5, 0x2000047c // 7ea4 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 7e66: 7410 zextb r0, r4 + 7e68: e3ffffbe bsr 0x7de4 // 7de4 + 7e6c: 3840 cmpnei r0, 0 + 7e6e: 0807 bt 0x7e7c // 7e7c + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e70: 3301 movi r3, 1 + 7e72: 70d0 lsl r3, r4 + 7e74: 6c8f mov r2, r3 + 7e76: 9563 ld.w r3, (r5, 0xc) + 7e78: 6cc8 or r3, r2 + 7e7a: b563 st.w r3, (r5, 0xc) + 7e7c: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 7e7e: 3c43 cmpnei r4, 3 + 7e80: 0bf3 bt 0x7e66 // 7e66 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e82: 1069 lrw r3, 0x2000047c // 7ea4 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e84: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e86: 9343 ld.w r2, (r3, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e88: 6848 and r1, r2 + 7e8a: a326 st.b r1, (r3, 0x6) + g_Dip.Dev_Port = Passive_Port; + 7e8c: 3100 movi r1, 0 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e8e: b344 st.w r2, (r3, 0x10) + g_Dip.Dev_Port = Passive_Port; + 7e90: a327 st.b r1, (r3, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); + 7e92: 3000 movi r0, 0 + 7e94: 3300 movi r3, 0 + 7e96: 1025 lrw r1, 0xafe8 // 7ea8 + 7e98: e3fffdce bsr 0x7a34 // 7a34 +} + 7e9c: 1492 pop r4-r5, r15 + 7e9e: 0000 bkpt + 7ea0: 2000004c .long 0x2000004c + 7ea4: 2000047c .long 0x2000047c + 7ea8: 0000afe8 .long 0x0000afe8 + +Disassembly of section .text.DIP_ScanTask: + +00007eac : + +void DIP_ScanTask(void) +{ + 7eac: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 7eae: 1122 lrw r1, 0x200000c4 // 7f34 + 7eb0: 1142 lrw r2, 0x20000168 // 7f38 + 7eb2: 11a3 lrw r5, 0x2000047c // 7f3c + 7eb4: 9200 ld.w r0, (r2, 0x0) + 7eb6: 9160 ld.w r3, (r1, 0x0) + 7eb8: 60c2 subu r3, r0 + 7eba: 3b14 cmphsi r3, 21 + 7ebc: 0806 bt 0x7ec8 // 7ec8 + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 7ebe: 9543 ld.w r2, (r5, 0xc) + 7ec0: 9564 ld.w r3, (r5, 0x10) + 7ec2: 64ca cmpne r2, r3 + 7ec4: 082e bt 0x7f20 // 7f20 + g_Dip.addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + } + +} + 7ec6: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 7ec8: 9160 ld.w r3, (r1, 0x0) + 7eca: b260 st.w r3, (r2, 0x0) + 7ecc: 6d17 mov r4, r5 + 7ece: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7ed0: 7418 zextb r0, r6 + 7ed2: e3ffff89 bsr 0x7de4 // 7de4 + 7ed6: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 7ed8: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7eda: 0814 bt 0x7f02 // 7f02 + g_Dip.delayCnt_OFF[i] = 0; + 7edc: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 7ede: 8460 ld.b r3, (r4, 0x0) + 7ee0: 3b04 cmphsi r3, 5 + 7ee2: 0808 bt 0x7ef2 // 7ef2 + g_Dip.delayCnt_ON[i]++; + 7ee4: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 7ee6: a460 st.b r3, (r4, 0x0) + 7ee8: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 7eea: 3e43 cmpnei r6, 3 + 7eec: 2400 addi r4, 1 + 7eee: 0bf1 bt 0x7ed0 // 7ed0 + 7ef0: 07e7 br 0x7ebe // 7ebe + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 7ef2: 3301 movi r3, 1 + 7ef4: 70d8 lsl r3, r6 + 7ef6: 6c8f mov r2, r3 + 7ef8: 9563 ld.w r3, (r5, 0xc) + 7efa: 6cc8 or r3, r2 + 7efc: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_ON[i] = 0; + 7efe: 3300 movi r3, 0 + 7f00: 07f3 br 0x7ee6 // 7ee6 + g_Dip.delayCnt_ON[i] = 0; + 7f02: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 7f04: 8463 ld.b r3, (r4, 0x3) + 7f06: 3b04 cmphsi r3, 5 + 7f08: 0804 bt 0x7f10 // 7f10 + g_Dip.delayCnt_OFF[i]++; + 7f0a: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 7f0c: a463 st.b r3, (r4, 0x3) + 7f0e: 07ed br 0x7ee8 // 7ee8 + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 7f10: 3300 movi r3, 0 + 7f12: 2b01 subi r3, 2 + 7f14: 9543 ld.w r2, (r5, 0xc) + 7f16: 70db rotl r3, r6 + 7f18: 68c8 and r3, r2 + 7f1a: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_OFF[i] = 0; + 7f1c: 3300 movi r3, 0 + 7f1e: 07f7 br 0x7f0c // 7f0c + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f20: 3307 movi r3, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7f22: b544 st.w r2, (r5, 0x10) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f24: 3000 movi r0, 0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f26: 688c and r2, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f28: 1026 lrw r1, 0xafff // 7f40 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f2a: a546 st.b r2, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f2c: e3fffd84 bsr 0x7a34 // 7a34 +} + 7f30: 07cb br 0x7ec6 // 7ec6 + 7f32: 0000 bkpt + 7f34: 200000c4 .long 0x200000c4 + 7f38: 20000168 .long 0x20000168 + 7f3c: 2000047c .long 0x2000047c + 7f40: 0000afff .long 0x0000afff + +Disassembly of section .text.EEPROM_CheckSum: + +00007f44 : +E_MCU_DEV_INFO g_mcu_dev; +ENERGY_SAVE_PARA e_save; +ENERGY_SAVE eng_info; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 7f44: 6cc3 mov r3, r0 + 7f46: 6040 addu r1, r0 + U8_T data_sum = 0; + 7f48: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 7f4e: 783c jmp r15 + data_sum += data[i]; + 7f50: 8340 ld.b r2, (r3, 0x0) + 7f52: 6008 addu r0, r2 + 7f54: 7400 zextb r0, r0 + 7f56: 2300 addi r3, 1 + 7f58: 07f9 br 0x7f4a // 7f4a + +Disassembly of section .text.EEOROM_ENERGY_ReadSet: + +00007f5c : +* Description : 读取电能检测参数 +* Parameter : +* info :读取参数指针 +*******************************************************************/ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info) +{ + 7f5c: 14d1 push r4, r15 + 7f5e: 142f subi r14, r14, 60 + 7f60: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 7f62: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 7f64: 3232 movi r2, 50 + 7f66: 3100 movi r1, 0 + 7f68: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7f6a: b860 st.w r3, (r14, 0x0) + 7f6c: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 7f70: e3ffe4f4 bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr,4,read_info); + 7f74: 6cbb mov r2, r14 + 7f76: 3104 movi r1, 4 + 7f78: 111f lrw r0, 0x10000180 // 8074 + 7f7a: e3fff4c3 bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_ENERGY_SAVE_FLAG){ + 7f7e: d84e0000 ld.b r2, (r14, 0x0) + 7f82: 33a6 movi r3, 166 + 7f84: 64ca cmpne r2, r3 + 7f86: 0c04 bf 0x7f8e // 7f8e + return 0x00; + } + } + } + + return 0x01; + 7f88: 3001 movi r0, 1 + +} + 7f8a: 140f addi r14, r14, 60 + 7f8c: 1491 pop r4, r15 + read_len |= read_info[1]; + 7f8e: d82e0002 ld.b r1, (r14, 0x2) + 7f92: d86e0001 ld.b r3, (r14, 0x1) + 7f96: 4128 lsli r1, r1, 8 + 7f98: 6c4c or r1, r3 + if(read_len <= EEPROM_ENERGY_SIZE){ + 7f9a: 3332 movi r3, 50 + 7f9c: 644c cmphs r3, r1 + 7f9e: 0ff5 bf 0x7f88 // 7f88 + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr+EEPROM_Offset_Data,read_len,para_data); + 7fa0: 1a02 addi r2, r14, 8 + 7fa2: 1116 lrw r0, 0x10000184 // 8078 + 7fa4: e3fff4ae bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE_PARA)) == read_info[3]){ + 7fa8: 312c movi r1, 44 + 7faa: 1802 addi r0, r14, 8 + 7fac: e3ffffcc bsr 0x7f44 // 7f44 + 7fb0: d86e0003 ld.b r3, (r14, 0x3) + 7fb4: 640e cmpne r3, r0 + 7fb6: 0be9 bt 0x7f88 // 7f88 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE_PARA)); + 7fb8: 322c movi r2, 44 + 7fba: 1902 addi r1, r14, 8 + 7fbc: 6c13 mov r0, r4 + 7fbe: e3ffe511 bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fc2: 118f lrw r4, 0x20000490 // 807c + SYSCON_IWDCNT_Reload(); + 7fc4: e3fff064 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fc8: 9400 ld.w r0, (r4, 0x0) + 7fca: e3ffdd39 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fce: 6c83 mov r2, r0 + 7fd0: 6cc7 mov r3, r1 + 7fd2: 3000 movi r0, 0 + 7fd4: 112b lrw r1, 0xb00b // 8080 + 7fd6: e3fffd2f bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K1:%f",e_save.i_k1_val); + 7fda: 9401 ld.w r0, (r4, 0x4) + 7fdc: e3ffdd30 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fe0: 6c83 mov r2, r0 + 7fe2: 6cc7 mov r3, r1 + 7fe4: 3000 movi r0, 0 + 7fe6: 1128 lrw r1, 0xb016 // 8084 + 7fe8: e3fffd26 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K2:%f",e_save.i_k2_val); + 7fec: 9402 ld.w r0, (r4, 0x8) + 7fee: e3ffdd27 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7ff2: 6c83 mov r2, r0 + 7ff4: 6cc7 mov r3, r1 + 7ff6: 3000 movi r0, 0 + 7ff8: 1124 lrw r1, 0xb022 // 8088 + 7ffa: e3fffd1d bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_K:%f",e_save.p_k_val); + 7ffe: 9403 ld.w r0, (r4, 0xc) + 8000: e3ffdd1e bsr 0x3a3c // 3a3c <__extendsfdf2> + 8004: 6c83 mov r2, r0 + 8006: 6cc7 mov r3, r1 + 8008: 3000 movi r0, 0 + 800a: 1121 lrw r1, 0xb02e // 808c + 800c: e3fffd14 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_OffSet:%f",e_save.i_OffSetVal); + 8010: 9404 ld.w r0, (r4, 0x10) + 8012: e3ffdd15 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8016: 6c83 mov r2, r0 + 8018: 6cc7 mov r3, r1 + 801a: 3000 movi r0, 0 + 801c: 103d lrw r1, 0xb039 // 8090 + 801e: e3fffd0b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_OffSet:%f",e_save.p_OffSetVal); + 8022: 9405 ld.w r0, (r4, 0x14) + 8024: e3ffdd0c bsr 0x3a3c // 3a3c <__extendsfdf2> + 8028: 6cc7 mov r3, r1 + 802a: 6c83 mov r2, r0 + 802c: 103a lrw r1, 0xb049 // 8094 + 802e: 3000 movi r0, 0 + 8030: e3fffd02 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 8034: e3fff02c bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_max:%d",e_save.eng_save_max); + 8038: 9446 ld.w r2, (r4, 0x18) + 803a: 3000 movi r0, 0 + 803c: 1037 lrw r1, 0xb059 // 8098 + 803e: e3fffcfb bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_offset:%d",e_save.eng_save_offset); + 8042: 9447 ld.w r2, (r4, 0x1c) + 8044: 3000 movi r0, 0 + 8046: 1036 lrw r1, 0xb069 // 809c + 8048: e3fffcf6 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Collect_Tim:%d",e_save.Collect_Tim); + 804c: 9448 ld.w r2, (r4, 0x20) + 804e: 3000 movi r0, 0 + 8050: 1034 lrw r1, 0xb07c // 80a0 + 8052: e3fffcf1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Report_Tim:%d",e_save.Report_Tim); + 8056: 9449 ld.w r2, (r4, 0x24) + 8058: 3000 movi r0, 0 + 805a: 1033 lrw r1, 0xb08f // 80a4 + 805c: e3fffcec bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 8060: 3000 movi r0, 0 + 8062: 944a ld.w r2, (r4, 0x28) + 8064: 1031 lrw r1, 0xb0a1 // 80a8 + 8066: e3fffce7 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 806a: e3fff011 bsr 0x608c // 608c + return 0x00; + 806e: 3000 movi r0, 0 + 8070: 078d br 0x7f8a // 7f8a + 8072: 0000 bkpt + 8074: 10000180 .long 0x10000180 + 8078: 10000184 .long 0x10000184 + 807c: 20000490 .long 0x20000490 + 8080: 0000b00b .long 0x0000b00b + 8084: 0000b016 .long 0x0000b016 + 8088: 0000b022 .long 0x0000b022 + 808c: 0000b02e .long 0x0000b02e + 8090: 0000b039 .long 0x0000b039 + 8094: 0000b049 .long 0x0000b049 + 8098: 0000b059 .long 0x0000b059 + 809c: 0000b069 .long 0x0000b069 + 80a0: 0000b07c .long 0x0000b07c + 80a4: 0000b08f .long 0x0000b08f + 80a8: 0000b0a1 .long 0x0000b0a1 + +Disassembly of section .text.EEOROM_ENERGY_WriteSet: + +000080ac : +/******************************************************************************* +* Function Name : EEOROM_ENERGY_WriteSet +* Description : 将电能设置参数写入到EEPROM中 +*******************************************************************************/ +U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info) +{ + 80ac: 14d0 push r15 + 80ae: 142e subi r14, r14, 56 + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(ENERGY_SAVE_PARA); + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 80b0: 3300 movi r3, 0 + 80b2: 2b59 subi r3, 90 + 80b4: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 80b8: 332c movi r3, 44 + 80ba: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 80be: 3300 movi r3, 0 + 80c0: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80c4: 1b01 addi r3, r14, 4 +{ + 80c6: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80c8: 322c movi r2, 44 + 80ca: 6c0f mov r0, r3 + 80cc: e3ffe48a bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 80d0: 312c movi r1, 44 + 80d2: e3ffff39 bsr 0x7f44 // 7f44 + 80d6: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ENERGE_PARA_SaveAddr,save_len,save_data); + 80da: 6cbb mov r2, r14 + 80dc: 3130 movi r1, 48 + 80de: 1004 lrw r0, 0x10000180 // 80ec + 80e0: e3fff3c0 bsr 0x6860 // 6860 + + return 0; +} + 80e4: 3000 movi r0, 0 + 80e6: 140e addi r14, r14, 56 + 80e8: 1490 pop r15 + 80ea: 0000 bkpt + 80ec: 10000180 .long 0x10000180 + +Disassembly of section .text.EEPROM_ENERGY_Validate: + +000080f0 : +/******************************************************************************* +* Function Name : EEPROM_ENERGY_Validate +* Description : 比对当前参数,确认是否有改变需要写入 +*******************************************************************************/ +void EEPROM_ENERGY_Validate(void) +{ + 80f0: 14d4 push r4-r7, r15 + U8_T save_flag = 0; + + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 80f2: 12a9 lrw r5, 0x20000574 // 8214 + 80f4: 1289 lrw r4, 0x20000490 // 8218 + 80f6: 95d4 ld.w r6, (r5, 0x50) + 80f8: 6c5b mov r1, r6 + 80fa: 9401 ld.w r0, (r4, 0x4) + 80fc: e3ffdc0c bsr 0x3914 // 3914 <__nesf2> + 8100: 3840 cmpnei r0, 0 + 8102: 0c80 bf 0x8202 // 8202 + { + e_save.i_k1_val = g_Eng.I_K1_Val; + 8104: b4c1 st.w r6, (r4, 0x4) + save_flag = 1; + 8106: 3601 movi r6, 1 + } + + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 8108: 95f5 ld.w r7, (r5, 0x54) + 810a: 6c5f mov r1, r7 + 810c: 9402 ld.w r0, (r4, 0x8) + 810e: e3ffdc03 bsr 0x3914 // 3914 <__nesf2> + 8112: 3840 cmpnei r0, 0 + 8114: 0c03 bf 0x811a // 811a + { + e_save.i_k2_val = g_Eng.I_K2_Val; + 8116: b4e2 st.w r7, (r4, 0x8) + save_flag = 1; + 8118: 3601 movi r6, 1 + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + 811a: 95f3 ld.w r7, (r5, 0x4c) + 811c: 6c5f mov r1, r7 + 811e: 9400 ld.w r0, (r4, 0x0) + 8120: e3ffdbfa bsr 0x3914 // 3914 <__nesf2> + 8124: 3840 cmpnei r0, 0 + 8126: 0c03 bf 0x812c // 812c + { + e_save.v_k_val = g_Eng.V_K_Val; + 8128: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 812a: 3601 movi r6, 1 + } + + if(e_save.p_k_val != g_Eng.P_K_Val) + 812c: 9536 ld.w r1, (r5, 0x58) + 812e: 9403 ld.w r0, (r4, 0xc) + 8130: e3ffdbf2 bsr 0x3914 // 3914 <__nesf2> + 8134: 3840 cmpnei r0, 0 + 8136: 0c03 bf 0x813c // 813c + { + e_save.v_k_val = g_Eng.V_K_Val; + 8138: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 813a: 3601 movi r6, 1 + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 813c: 9537 ld.w r1, (r5, 0x5c) + 813e: 9404 ld.w r0, (r4, 0x10) + 8140: e3ffdbea bsr 0x3914 // 3914 <__nesf2> + 8144: 3840 cmpnei r0, 0 + 8146: 0c03 bf 0x814c // 814c + { + e_save.v_k_val = g_Eng.V_K_Val; + 8148: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 814a: 3601 movi r6, 1 + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 814c: 9538 ld.w r1, (r5, 0x60) + 814e: 9405 ld.w r0, (r4, 0x14) + 8150: e3ffdbe2 bsr 0x3914 // 3914 <__nesf2> + 8154: 3840 cmpnei r0, 0 + 8156: 0c03 bf 0x815c // 815c + { + e_save.v_k_val = g_Eng.V_K_Val; + 8158: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 815a: 3601 movi r6, 1 + } + + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 815c: 9579 ld.w r3, (r5, 0x64) + 815e: 9448 ld.w r2, (r4, 0x20) + 8160: 64ca cmpne r2, r3 + 8162: 0c03 bf 0x8168 // 8168 + { + e_save.Collect_Tim = g_Eng.Collect_Tim; + 8164: b468 st.w r3, (r4, 0x20) + save_flag = 1; + 8166: 3601 movi r6, 1 + } + + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 8168: 957b ld.w r3, (r5, 0x6c) + 816a: 944a ld.w r2, (r4, 0x28) + 816c: 64ca cmpne r2, r3 + 816e: 0c03 bf 0x8174 // 8174 + { + e_save.SaveFlash_Tim = g_Eng.SaveFlash_Tim; + 8170: b46a st.w r3, (r4, 0x28) + save_flag = 1; + 8172: 3601 movi r6, 1 + } + + if(e_save.Report_Tim != g_Eng.Report_Tim) + 8174: 957a ld.w r3, (r5, 0x68) + 8176: 9449 ld.w r2, (r4, 0x24) + 8178: 64ca cmpne r2, r3 + 817a: 0c46 bf 0x8206 // 8206 + { + e_save.Report_Tim = g_Eng.Report_Tim; + 817c: b469 st.w r3, (r4, 0x24) + save_flag = 1; + } + + if(save_flag == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + 817e: 1107 lrw r0, 0x20000490 // 8218 + 8180: e3ffff96 bsr 0x80ac // 80ac + +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + 8184: e3ffef84 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Need Save Energy"); + 8188: 1125 lrw r1, 0xb0c9 // 821c + 818a: 3000 movi r0, 0 + 818c: e3fffc54 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"V_K:%f",e_save.v_k_val); + 8190: 9400 ld.w r0, (r4, 0x0) + 8192: e3ffdc55 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8196: 6c83 mov r2, r0 + 8198: 6cc7 mov r3, r1 + 819a: 3000 movi r0, 0 + 819c: 1121 lrw r1, 0xb00f // 8220 + 819e: e3fffc4b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K1:%f",e_save.i_k1_val); + 81a2: 9401 ld.w r0, (r4, 0x4) + 81a4: e3ffdc4c bsr 0x3a3c // 3a3c <__extendsfdf2> + 81a8: 6c83 mov r2, r0 + 81aa: 6cc7 mov r3, r1 + 81ac: 3000 movi r0, 0 + 81ae: 103e lrw r1, 0xb01a // 8224 + 81b0: e3fffc42 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K2:%f",e_save.i_k2_val); + 81b4: 9402 ld.w r0, (r4, 0x8) + 81b6: e3ffdc43 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81ba: 6c83 mov r2, r0 + 81bc: 6cc7 mov r3, r1 + 81be: 3000 movi r0, 0 + 81c0: 103a lrw r1, 0xb026 // 8228 + 81c2: e3fffc39 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_K:%f",e_save.p_k_val); + 81c6: 9403 ld.w r0, (r4, 0xc) + 81c8: e3ffdc3a bsr 0x3a3c // 3a3c <__extendsfdf2> + 81cc: 6c83 mov r2, r0 + 81ce: 6cc7 mov r3, r1 + 81d0: 3000 movi r0, 0 + 81d2: 1037 lrw r1, 0xb032 // 822c + 81d4: e3fffc30 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_OS:%f",e_save.i_OffSetVal); + 81d8: 9404 ld.w r0, (r4, 0x10) + 81da: e3ffdc31 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81de: 6c83 mov r2, r0 + 81e0: 6cc7 mov r3, r1 + 81e2: 3000 movi r0, 0 + 81e4: 1033 lrw r1, 0xb0b6 // 8230 + 81e6: e3fffc27 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_OS:%f",e_save.p_OffSetVal); + 81ea: 9405 ld.w r0, (r4, 0x14) + 81ec: e3ffdc28 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81f0: 6c83 mov r2, r0 + 81f2: 6cc7 mov r3, r1 + 81f4: 3000 movi r0, 0 + 81f6: 1030 lrw r1, 0xb0be // 8234 + 81f8: e3fffc1e bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 81fc: e3ffef48 bsr 0x608c // 608c +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + +#endif + } +} + 8200: 1494 pop r4-r7, r15 + U8_T save_flag = 0; + 8202: 3600 movi r6, 0 + 8204: 0782 br 0x8108 // 8108 + if(save_flag == 0x01) + 8206: 3e41 cmpnei r6, 1 + 8208: 0fbb bf 0x817e // 817e + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + 820a: 102c lrw r1, 0xb0c6 // 8238 + 820c: 3000 movi r0, 0 + 820e: e3fffc13 bsr 0x7a34 // 7a34 +} + 8212: 07f7 br 0x8200 // 8200 + 8214: 20000574 .long 0x20000574 + 8218: 20000490 .long 0x20000490 + 821c: 0000b0c9 .long 0x0000b0c9 + 8220: 0000b00f .long 0x0000b00f + 8224: 0000b01a .long 0x0000b01a + 8228: 0000b026 .long 0x0000b026 + 822c: 0000b032 .long 0x0000b032 + 8230: 0000b0b6 .long 0x0000b0b6 + 8234: 0000b0be .long 0x0000b0be + 8238: 0000b0c6 .long 0x0000b0c6 + +Disassembly of section .text.EEPROM_Default_ENERGY: + +0000823c : +/******************************************************************************* +* Function Name : EEPROM_Default_ENERGY +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info) +{ + 823c: 14d1 push r4, r15 + /*APP 区域*/ + info->i_k1_val = 1; + 823e: 33fe movi r3, 254 + 8240: 4376 lsli r3, r3, 22 + 8242: b061 st.w r3, (r0, 0x4) + info->i_k2_val = 1; + 8244: b062 st.w r3, (r0, 0x8) + info->v_k_val = 2; + info->p_k_val = 1; + 8246: b063 st.w r3, (r0, 0xc) + info->i_OffSetVal = 0; + 8248: 3300 movi r3, 0 + 824a: b064 st.w r3, (r0, 0x10) + info->p_OffSetVal = 0; + 824c: b065 st.w r3, (r0, 0x14) + info->eng_save_max = EEPROM_SAVEADDR_CNT; + 824e: 1176 lrw r3, 0x9c40 // 8324 + 8250: b066 st.w r3, (r0, 0x18) + info->eng_save_offset = 1; //存储偏移编号从1开始 + 8252: 3301 movi r3, 1 + 8254: b067 st.w r3, (r0, 0x1c) + info->SaveFlash_Tim = EEPROM_SAVETIME; + 8256: 1175 lrw r3, 0x36ee80 // 8328 + 8258: b06a st.w r3, (r0, 0x28) + info->Collect_Tim = EEPROM_COLLTIME; + 825a: 33fa movi r3, 250 + 825c: 4362 lsli r3, r3, 2 + info->v_k_val = 2; + 825e: 3280 movi r2, 128 + 8260: 4257 lsli r2, r2, 23 + info->Collect_Tim = EEPROM_COLLTIME; + 8262: b068 st.w r3, (r0, 0x20) + info->Report_Tim = EEPROM_REPTIME; + 8264: 1172 lrw r3, 0x927c0 // 832c + info->v_k_val = 2; + 8266: b040 st.w r2, (r0, 0x0) + info->Report_Tim = EEPROM_REPTIME; + 8268: b069 st.w r3, (r0, 0x24) + + + EEOROM_ENERGY_WriteSet(info); + 826a: e3ffff21 bsr 0x80ac // 80ac + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Energy Use Default Para"); + 826e: 1131 lrw r1, 0xb0da // 8330 + 8270: 3000 movi r0, 0 + 8272: e3fffbe1 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 8276: 1190 lrw r4, 0x20000490 // 8334 + SYSCON_IWDCNT_Reload(); + 8278: e3ffef0a bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 827c: 9400 ld.w r0, (r4, 0x0) + 827e: e3ffdbdf bsr 0x3a3c // 3a3c <__extendsfdf2> + 8282: 6c83 mov r2, r0 + 8284: 6cc7 mov r3, r1 + 8286: 3000 movi r0, 0 + 8288: 112c lrw r1, 0xb0f2 // 8338 + 828a: e3fffbd5 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K1:%f",e_save.i_k1_val); + 828e: 9401 ld.w r0, (r4, 0x4) + 8290: e3ffdbd6 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8294: 6c83 mov r2, r0 + 8296: 6cc7 mov r3, r1 + 8298: 3000 movi r0, 0 + 829a: 1129 lrw r1, 0xb101 // 833c + 829c: e3fffbcc bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K2:%f",e_save.i_k2_val); + 82a0: 9402 ld.w r0, (r4, 0x8) + 82a2: e3ffdbcd bsr 0x3a3c // 3a3c <__extendsfdf2> + 82a6: 6c83 mov r2, r0 + 82a8: 6cc7 mov r3, r1 + 82aa: 3000 movi r0, 0 + 82ac: 1125 lrw r1, 0xb111 // 8340 + 82ae: e3fffbc3 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_K:%f",e_save.p_k_val); + 82b2: 9403 ld.w r0, (r4, 0xc) + 82b4: e3ffdbc4 bsr 0x3a3c // 3a3c <__extendsfdf2> + 82b8: 6c83 mov r2, r0 + 82ba: 6cc7 mov r3, r1 + 82bc: 3000 movi r0, 0 + 82be: 1122 lrw r1, 0xb121 // 8344 + 82c0: e3fffbba bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_OffSet:%f",e_save.i_OffSetVal); + 82c4: 9404 ld.w r0, (r4, 0x10) + 82c6: e3ffdbbb bsr 0x3a3c // 3a3c <__extendsfdf2> + 82ca: 6c83 mov r2, r0 + 82cc: 6cc7 mov r3, r1 + 82ce: 3000 movi r0, 0 + 82d0: 103e lrw r1, 0xb130 // 8348 + 82d2: e3fffbb1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_OffSet:%f",e_save.p_OffSetVal); + 82d6: 9405 ld.w r0, (r4, 0x14) + 82d8: e3ffdbb2 bsr 0x3a3c // 3a3c <__extendsfdf2> + 82dc: 6cc7 mov r3, r1 + 82de: 6c83 mov r2, r0 + 82e0: 103b lrw r1, 0xb144 // 834c + 82e2: 3000 movi r0, 0 + 82e4: e3fffba8 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 82e8: e3ffeed2 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_max:%d",e_save.eng_save_max); + 82ec: 9446 ld.w r2, (r4, 0x18) + 82ee: 3000 movi r0, 0 + 82f0: 1038 lrw r1, 0xb158 // 8350 + 82f2: e3fffba1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_offset:%d",e_save.eng_save_offset); + 82f6: 9447 ld.w r2, (r4, 0x1c) + 82f8: 3000 movi r0, 0 + 82fa: 1037 lrw r1, 0xb16c // 8354 + 82fc: e3fffb9c bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Collect_Tim:%d",e_save.Collect_Tim); + 8300: 9448 ld.w r2, (r4, 0x20) + 8302: 3000 movi r0, 0 + 8304: 1035 lrw r1, 0xb183 // 8358 + 8306: e3fffb97 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Report_Tim:%d",e_save.Report_Tim); + 830a: 9449 ld.w r2, (r4, 0x24) + 830c: 3000 movi r0, 0 + 830e: 1034 lrw r1, 0xb19a // 835c + 8310: e3fffb92 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 8314: 944a ld.w r2, (r4, 0x28) + 8316: 3000 movi r0, 0 + 8318: 1032 lrw r1, 0xb1b0 // 8360 + 831a: e3fffb8d bsr 0x7a34 // 7a34 + + SYSCON_IWDCNT_Reload(); + 831e: e3ffeeb7 bsr 0x608c // 608c + +#endif + +} + 8322: 1491 pop r4, r15 + 8324: 00009c40 .long 0x00009c40 + 8328: 0036ee80 .long 0x0036ee80 + 832c: 000927c0 .long 0x000927c0 + 8330: 0000b0da .long 0x0000b0da + 8334: 20000490 .long 0x20000490 + 8338: 0000b0f2 .long 0x0000b0f2 + 833c: 0000b101 .long 0x0000b101 + 8340: 0000b111 .long 0x0000b111 + 8344: 0000b121 .long 0x0000b121 + 8348: 0000b130 .long 0x0000b130 + 834c: 0000b144 .long 0x0000b144 + 8350: 0000b158 .long 0x0000b158 + 8354: 0000b16c .long 0x0000b16c + 8358: 0000b183 .long 0x0000b183 + 835c: 0000b19a .long 0x0000b19a + 8360: 0000b1b0 .long 0x0000b1b0 + +Disassembly of section .text.EEPROM_ReadTotalEng: + +00008364 : +/********************************************************************* + * Function Name : EEPROM_ReadTotalEng + * Description : 读取总电量、存储总次数 + *********************************************************************/ +U8_T EEPROM_ReadTotalEng(ENERGY_SAVE *info) +{ + 8364: 14d2 push r4-r5, r15 + 8366: 1430 subi r14, r14, 64 + 8368: 6d43 mov r5, r0 + U8_T read_info[10]; //帧头 + U8_T para_data[EEPROM_ENERGY_SIZE]; //存储数据 + UINT16 read_len = 0; //存储数据长度 + uint32_t save_block = 0; //存储扇区编号 + + memset(read_info,0,sizeof(read_info)); + 836a: 320a movi r2, 10 + 836c: 3100 movi r1, 0 + 836e: 6c3b mov r0, r14 + 8370: e3ffe2f4 bsr 0x4958 // 4958 <__memset_fast> + memset(para_data,0,sizeof(para_data)); + 8374: 3232 movi r2, 50 + 8376: 3100 movi r1, 0 + 8378: 1803 addi r0, r14, 12 + 837a: e3ffe2ef bsr 0x4958 // 4958 <__memset_fast> + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 837e: 1163 lrw r3, 0x20000490 // 8408 + 8380: 9387 ld.w r4, (r3, 0x1c) + 8382: 3c40 cmpnei r4, 0 + 8384: 0c3b bf 0x83fa // 83fa + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + + temp_addr = EEPROM_EngSave_StartAddr + (save_block - 1) * EEPROM_OFFSET_ADDRSIZE; //通过扇区编号计算当前总能耗存储扇区地址 + 8386: 1162 lrw r3, 0x400008 // 840c + 8388: 610c addu r4, r3 + 838a: 4486 lsli r4, r4, 6 + + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 838c: 1141 lrw r2, 0xeffffdc0 // 8410 + 838e: 33b0 movi r3, 176 + 8390: 6090 addu r2, r4 + 8392: 4363 lsli r3, r3, 3 + 8394: 648c cmphs r3, r2 + 8396: 0c34 bf 0x83fe // 83fe + + ReadDataArry_U8(temp_addr,4,read_info); //读取目标地址的标志位和存储数据长度 + 8398: 6cbb mov r2, r14 + 839a: 3104 movi r1, 4 + 839c: 6c13 mov r0, r4 + 839e: e3fff2b1 bsr 0x6900 // 6900 + + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 83a2: d84e0000 ld.b r2, (r14, 0x0) + 83a6: 33a6 movi r3, 166 + 83a8: 64ca cmpne r2, r3 + 83aa: 082c bt 0x8402 // 8402 + + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 83ac: d82e0002 ld.b r1, (r14, 0x2) + 83b0: d86e0001 ld.b r3, (r14, 0x1) + 83b4: 4128 lsli r1, r1, 8 + 83b6: 6c4c or r1, r3 + + if(read_len <= EEPROM_ENERGY_SIZE){ + 83b8: 3332 movi r3, 50 + 83ba: 644c cmphs r3, r1 + 83bc: 0c16 bf 0x83e8 // 83e8 + + ReadDataArry_U8(temp_addr+EEPROM_Offset_Data,read_len,para_data); + 83be: 5c0e addi r0, r4, 4 + 83c0: 1a03 addi r2, r14, 12 + 83c2: e3fff29f bsr 0x6900 // 6900 + + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE)) == read_info[3]){ + 83c6: 310c movi r1, 12 + 83c8: 1803 addi r0, r14, 12 + 83ca: e3fffdbd bsr 0x7f44 // 7f44 + 83ce: d86e0003 ld.b r3, (r14, 0x3) + 83d2: 640e cmpne r3, r0 + 83d4: 080c bt 0x83ec // 83ec + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE)); + 83d6: 1903 addi r1, r14, 12 + 83d8: 320c movi r2, 12 + 83da: 6c17 mov r0, r5 + 83dc: e3ffe302 bsr 0x49e0 // 49e0 <__memcpy_fast> + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadSucc"); + 83e0: 102d lrw r1, 0xb1c9 // 8414 + 83e2: 3000 movi r0, 0 + 83e4: e3fffb28 bsr 0x7a34 // 7a34 + return 0x04; + } + + } + + return 0x00; + 83e8: 3000 movi r0, 0 + 83ea: 0406 br 0x83f6 // 83f6 + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadFail"); + 83ec: 3000 movi r0, 0 + 83ee: 102b lrw r1, 0xb1de // 8418 + 83f0: e3fffb22 bsr 0x7a34 // 7a34 + return 0x04; + 83f4: 3004 movi r0, 4 +} + 83f6: 1410 addi r14, r14, 64 + 83f8: 1492 pop r4-r5, r15 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 83fa: 3001 movi r0, 1 + 83fc: 07fd br 0x83f6 // 83f6 + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 83fe: 3002 movi r0, 2 + 8400: 07fb br 0x83f6 // 83f6 + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 8402: 3003 movi r0, 3 + 8404: 07f9 br 0x83f6 // 83f6 + 8406: 0000 bkpt + 8408: 20000490 .long 0x20000490 + 840c: 00400008 .long 0x00400008 + 8410: effffdc0 .long 0xeffffdc0 + 8414: 0000b1c9 .long 0x0000b1c9 + 8418: 0000b1de .long 0x0000b1de + +Disassembly of section .text.EEPROM_WriteTotalEng: + +0000841c : +/********************************************************************* + * Function Name : EEPROM_WriteTotalEng + * Description : 写入总电量 + *********************************************************************/ +U8_T EEPROM_WriteTotalEng(ENERGY_SAVE *info) +{ + 841c: 14d4 push r4-r7, r15 + 841e: 142f subi r14, r14, 60 + U8_T savepara_falg = 0x00; + U32_T temp_addr = EEPROM_EngSave_StartAddr; + U16_T save_len = sizeof(ENERGY_SAVE); + uint32_t save_block = 0,save_cnt = 0; + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 8420: 11c7 lrw r6, 0x20000490 // 84bc +{ + 8422: 6dc3 mov r7, r0 + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 8424: 9667 ld.w r3, (r6, 0x1c) + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8426: 3b40 cmpnei r3, 0 + 8428: 0c43 bf 0x84ae // 84ae + if(e_save.eng_save_max == 0) return 0x02; + 842a: 9626 ld.w r1, (r6, 0x18) + 842c: 3940 cmpnei r1, 0 + 842e: 0c42 bf 0x84b2 // 84b2 + + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 8430: 3200 movi r2, 0 + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + 8432: 9001 ld.w r0, (r0, 0x4) + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 8434: 2a00 subi r2, 1 + 8436: 6482 cmpne r0, r2 + 8438: 0c3f bf 0x84b6 // 84b6 + return 0x03; + } + info->eng_save_cnt++; + 843a: 2000 addi r0, 1 + + + if(info->eng_save_cnt > e_save.eng_save_max) + 843c: 6404 cmphs r1, r0 + info->eng_save_cnt++; + 843e: b701 st.w r0, (r7, 0x4) + if(info->eng_save_cnt > e_save.eng_save_max) + 8440: 0835 bt 0x84aa // 84aa + 8442: b860 st.w r3, (r14, 0x0) + { + e_save.eng_save_offset = (info->eng_save_cnt/e_save.eng_save_max)+1; //更新扇区编号 + 8444: e3fff842 bsr 0x74c8 // 74c8 <__udivsi3> + 8448: 2000 addi r0, 1 + 844a: b607 st.w r0, (r6, 0x1c) + savepara_falg = 0x01; + 844c: 3401 movi r4, 1 + 844e: 9860 ld.w r3, (r14, 0x0) + + } + + //通过扇区编号计算当前总能耗存储扇区地址 + temp_addr = EEPROM_EngSave_StartAddr + (e_save.eng_save_offset - 1) * EEPROM_OFFSET_ADDRSIZE; + 8450: 105c lrw r2, 0x400008 // 84c0 + 8452: 96a7 ld.w r5, (r6, 0x1c) + 8454: 6148 addu r5, r2 + 8456: 45a6 lsli r5, r5, 6 + + if(temp_addr > EEPROM_EngSave_EndAddr ) //超限,不再改变存储扇区 + 8458: 105b lrw r2, 0x100007c0 // 84c4 + 845a: 6548 cmphs r2, r5 + 845c: 0804 bt 0x8464 // 8464 + { + e_save.eng_save_offset = save_block; + 845e: b667 st.w r3, (r6, 0x1c) + savepara_falg = 0x00; + //info->eng_save_cnt = save_cnt; + temp_addr = EEPROM_EngSave_EndAddr; + 8460: 6d4b mov r5, r2 + savepara_falg = 0x00; + 8462: 3400 movi r4, 0 + } + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 8464: 3300 movi r3, 0 + 8466: 2b59 subi r3, 90 + 8468: dc6e0004 st.b r3, (r14, 0x4) + save_data[1] = save_len & 0xFF; + 846c: 330c movi r3, 12 + 846e: dc6e0005 st.b r3, (r14, 0x5) + save_data[2] = (save_len >> 8) & 0xFF; + 8472: 3300 movi r3, 0 + 8474: dc6e0006 st.b r3, (r14, 0x6) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8478: 1b02 addi r3, r14, 8 + 847a: 320c movi r2, 12 + 847c: 6c0f mov r0, r3 + 847e: 6c5f mov r1, r7 + 8480: e3ffe2b0 bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 8484: 310c movi r1, 12 + 8486: e3fffd5f bsr 0x7f44 // 7f44 + 848a: dc0e0007 st.b r0, (r14, 0x7) + + save_len+=4; + + Page_ProgramData(temp_addr,save_len,save_data); + 848e: 1a01 addi r2, r14, 4 + 8490: 3110 movi r1, 16 + 8492: 6c17 mov r0, r5 + 8494: e3fff1e6 bsr 0x6860 // 6860 + + + if(savepara_falg == 0x01) + 8498: 3c41 cmpnei r4, 1 + 849a: 0805 bt 0x84a4 // 84a4 + { + EEOROM_ENERGY_WriteSet(&e_save); + 849c: 1008 lrw r0, 0x20000490 // 84bc + 849e: e3fffe07 bsr 0x80ac // 80ac + } + + return 0; + 84a2: 3400 movi r4, 0 +} + 84a4: 6c13 mov r0, r4 + 84a6: 140f addi r14, r14, 60 + 84a8: 1494 pop r4-r7, r15 + U8_T savepara_falg = 0x00; + 84aa: 3400 movi r4, 0 + 84ac: 07d2 br 0x8450 // 8450 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 84ae: 3401 movi r4, 1 + 84b0: 07fa br 0x84a4 // 84a4 + if(e_save.eng_save_max == 0) return 0x02; + 84b2: 3402 movi r4, 2 + 84b4: 07f8 br 0x84a4 // 84a4 + return 0x03; + 84b6: 3403 movi r4, 3 + 84b8: 07f6 br 0x84a4 // 84a4 + 84ba: 0000 bkpt + 84bc: 20000490 .long 0x20000490 + 84c0: 00400008 .long 0x00400008 + 84c4: 100007c0 .long 0x100007c0 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +000084c8 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 84c8: 14d1 push r4, r15 + 84ca: 1432 subi r14, r14, 72 + 84cc: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 84ce: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 84d0: 3240 movi r2, 64 + 84d2: 3100 movi r1, 0 + 84d4: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 84d6: b860 st.w r3, (r14, 0x0) + 84d8: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 84dc: e3ffe23e bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 84e0: 3080 movi r0, 128 + 84e2: 6cbb mov r2, r14 + 84e4: 3104 movi r1, 4 + 84e6: 4015 lsli r0, r0, 21 + 84e8: e3fff20c bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 84ec: d84e0000 ld.b r2, (r14, 0x0) + 84f0: 33ae movi r3, 174 + 84f2: 64ca cmpne r2, r3 + 84f4: 0c04 bf 0x84fc // 84fc + return 0x00; + } + } + } + + return 0x01; + 84f6: 3001 movi r0, 1 +} + 84f8: 1412 addi r14, r14, 72 + 84fa: 1491 pop r4, r15 + read_len |= read_info[1]; + 84fc: d82e0002 ld.b r1, (r14, 0x2) + 8500: d86e0001 ld.b r3, (r14, 0x1) + 8504: 4128 lsli r1, r1, 8 + 8506: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 8508: 3340 movi r3, 64 + 850a: 644c cmphs r3, r1 + 850c: 0ff5 bf 0x84f6 // 84f6 + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 850e: 1a02 addi r2, r14, 8 + 8510: 101b lrw r0, 0x10000004 // 857c + 8512: e3fff1f7 bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 8516: 3125 movi r1, 37 + 8518: 1802 addi r0, r14, 8 + 851a: e3fffd15 bsr 0x7f44 // 7f44 + 851e: d86e0003 ld.b r3, (r14, 0x3) + 8522: 640e cmpne r3, r0 + 8524: 0be9 bt 0x84f6 // 84f6 + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 8526: 3225 movi r2, 37 + 8528: 1902 addi r1, r14, 8 + 852a: 6c13 mov r0, r4 + 852c: e3ffe25a bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 8530: 1094 lrw r4, 0x200004bc // 8580 + SYSCON_IWDCNT_Reload(); + 8532: e3ffedad bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 8536: 8440 ld.b r2, (r4, 0x0) + 8538: 1033 lrw r1, 0xb246 // 8584 + 853a: 3000 movi r0, 0 + 853c: e3fffa7c bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevType:%d",g_mcu_dev.dev_type); + 8540: 8441 ld.b r2, (r4, 0x1) + 8542: 1032 lrw r1, 0xb254 // 8588 + 8544: 3000 movi r0, 0 + 8546: e3fffa77 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 854a: 8442 ld.b r2, (r4, 0x2) + 854c: 1030 lrw r1, 0xb262 // 858c + 854e: 3000 movi r0, 0 + 8550: e3fffa72 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAppVer:%d",g_mcu_dev.dev_app_ver); + 8554: 8443 ld.b r2, (r4, 0x3) + 8556: 102f lrw r1, 0xb273 // 8590 + 8558: 3000 movi r0, 0 + 855a: e3fffa6d bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 855e: 8444 ld.b r2, (r4, 0x4) + 8560: 102d lrw r1, 0xb283 // 8594 + 8562: 3000 movi r0, 0 + 8564: e3fffa68 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8568: 3000 movi r0, 0 + 856a: 5c52 addi r2, r4, 5 + 856c: 102b lrw r1, 0xb294 // 8598 + 856e: e3fffa63 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 8572: e3ffed8d bsr 0x608c // 608c + return 0x00; + 8576: 3000 movi r0, 0 + 8578: 07c0 br 0x84f8 // 84f8 + 857a: 0000 bkpt + 857c: 10000004 .long 0x10000004 + 8580: 200004bc .long 0x200004bc + 8584: 0000b246 .long 0x0000b246 + 8588: 0000b254 .long 0x0000b254 + 858c: 0000b262 .long 0x0000b262 + 8590: 0000b273 .long 0x0000b273 + 8594: 0000b283 .long 0x0000b283 + 8598: 0000b294 .long 0x0000b294 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +0000859c : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 859c: 14d0 push r15 + 859e: 1432 subi r14, r14, 72 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 85a0: 3300 movi r3, 0 + 85a2: 2b51 subi r3, 82 + 85a4: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 85a8: 3325 movi r3, 37 + 85aa: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 85ae: 3300 movi r3, 0 + 85b0: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 85b4: 1b01 addi r3, r14, 4 +{ + 85b6: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 85b8: 3225 movi r2, 37 + 85ba: 6c0f mov r0, r3 + 85bc: e3ffe212 bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 85c0: 3125 movi r1, 37 + 85c2: e3fffcc1 bsr 0x7f44 // 7f44 + 85c6: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 85ca: 3080 movi r0, 128 + 85cc: 4015 lsli r0, r0, 21 + 85ce: 6cbb mov r2, r14 + 85d0: 3129 movi r1, 41 + 85d2: e3fff147 bsr 0x6860 // 6860 + + return 0; +} + 85d6: 3000 movi r0, 0 + 85d8: 1412 addi r14, r14, 72 + 85da: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +000085dc : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85dc: 14d2 push r4-r5, r15 + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + 85de: 3300 movi r3, 0 + 85e0: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 85e2: 3306 movi r3, 6 + 85e4: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 85e6: 3301 movi r3, 1 + 85e8: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85ea: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 85ec: 3311 movi r3, 17 + 85ee: a064 st.b r3, (r0, 0x4) +{ + 85f0: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85f2: 3220 movi r2, 32 + 85f4: 3100 movi r1, 0 + 85f6: 6c17 mov r0, r5 + 85f8: e3ffe1b0 bsr 0x4958 // 4958 <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 85fc: 3211 movi r2, 17 + 85fe: 1025 lrw r1, 0xb2a2 // 8610 + 8600: 6c17 mov r0, r5 + 8602: e3ffe1ef bsr 0x49e0 // 49e0 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 8606: 6c13 mov r0, r4 + 8608: e3ffffca bsr 0x859c // 859c +#endif +} + 860c: 1492 pop r4-r5, r15 + 860e: 0000 bkpt + 8610: 0000b2a2 .long 0x0000b2a2 + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +00008614 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 8614: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 8616: 8063 ld.b r3, (r0, 0x3) + 8618: 3b41 cmpnei r3, 1 +{ + 861a: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 861c: 0c21 bf 0x865e // 865e + { + info->dev_app_ver = Project_FW_Version; + 861e: 3301 movi r3, 1 + 8620: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 8622: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 8624: 8461 ld.b r3, (r4, 0x1) + 8626: 3b46 cmpnei r3, 6 + 8628: 0c04 bf 0x8630 // 8630 + { + info->dev_type = Project_Type; + 862a: 3306 movi r3, 6 + 862c: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 862e: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 8630: 8464 ld.b r3, (r4, 0x4) + 8632: 3b51 cmpnei r3, 17 + 8634: 0c04 bf 0x863c // 863c + { + info->dev_name_len = sizeof(Peoject_Name); + 8636: 3311 movi r3, 17 + 8638: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 863a: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 863c: 5cd2 addi r6, r4, 5 + 863e: 3211 movi r2, 17 + 8640: 102a lrw r1, 0xb2a2 // 8668 + 8642: 6c1b mov r0, r6 + 8644: e3ffe200 bsr 0x4a44 // 4a44 <__GI_strncmp> + 8648: 3840 cmpnei r0, 0 + 864a: 0c0c bf 0x8662 // 8662 + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 864c: 8444 ld.b r2, (r4, 0x4) + 864e: 1027 lrw r1, 0xb2a2 // 8668 + 8650: 6c1b mov r0, r6 + 8652: e3ffe1c7 bsr 0x49e0 // 49e0 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 8656: 6c13 mov r0, r4 + 8658: e3ffffa2 bsr 0x859c // 859c + } +#endif +} + 865c: 0405 br 0x8666 // 8666 + U8_T save_flag = 0; + 865e: 3500 movi r5, 0 + 8660: 07e2 br 0x8624 // 8624 + if(save_flag == 0x01) + 8662: 3d41 cmpnei r5, 1 + 8664: 0ff9 bf 0x8656 // 8656 +} + 8666: 1493 pop r4-r6, r15 + 8668: 0000b2a2 .long 0x0000b2a2 + +Disassembly of section .text.EEPROM_Init: + +0000866c : +{ + 866c: 14d2 push r4-r5, r15 + EnIFCClk; //使能 IFC 时钟 + 866e: 117b lrw r3, 0x20000060 // 8758 + 8670: 3201 movi r2, 1 + 8672: 9360 ld.w r3, (r3, 0x0) + 8674: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 8676: 9345 ld.w r2, (r3, 0x14) + 8678: 3aa1 bseti r2, 1 + 867a: 3ab0 bseti r2, 16 + 867c: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 867e: 300a movi r0, 10 + 8680: e3fff178 bsr 0x6970 // 6970 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 8684: 1196 lrw r4, 0x200004bc // 875c + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read MCU_DEV <*****************/"); + 8686: 1137 lrw r1, 0xb2b3 // 8760 + 8688: 3000 movi r0, 0 + 868a: e3fff9d5 bsr 0x7a34 // 7a34 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 868e: 3225 movi r2, 37 + 8690: 3100 movi r1, 0 + 8692: 6c13 mov r0, r4 + 8694: e3ffe162 bsr 0x4958 // 4958 <__memset_fast> + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 8698: 6c13 mov r0, r4 + 869a: e3ffff17 bsr 0x84c8 // 84c8 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 869e: 1172 lrw r3, 0x2000047c // 8764 + 86a0: 8366 ld.b r3, (r3, 0x6) + 86a2: 8440 ld.b r2, (r4, 0x0) + 86a4: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 86a6: 6d43 mov r5, r0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 86a8: 0c05 bf 0x86b2 // 86b2 + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 86aa: 6c13 mov r0, r4 + g_mcu_dev.dev_addr = g_Dip.addr; + 86ac: a460 st.b r3, (r4, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 86ae: e3ffff77 bsr 0x859c // 859c + if(rev == 0x00){ + 86b2: 3d40 cmpnei r5, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 86b4: 110a lrw r0, 0x200004bc // 875c + if(rev == 0x00){ + 86b6: 0837 bt 0x8724 // 8724 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 86b8: e3ffffae bsr 0x8614 // 8614 + BLV_DetEnergy_Init(); + 86bc: e000008e bsr 0x87d8 // 87d8 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read EngPara <*****************/"); + 86c0: 112a lrw r1, 0xb2fc // 8768 + 86c2: 3000 movi r0, 0 + 86c4: e3fff9b8 bsr 0x7a34 // 7a34 + memset(&e_save,0,sizeof(ENERGY_SAVE_PARA)); + 86c8: 322c movi r2, 44 + 86ca: 3100 movi r1, 0 + 86cc: 1108 lrw r0, 0x20000490 // 876c + 86ce: e3ffe145 bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEOROM_ENERGY_ReadSet(&e_save); //电能检测参数,读取 + 86d2: 1107 lrw r0, 0x20000490 // 876c + 86d4: e3fffc44 bsr 0x7f5c // 7f5c + 86d8: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init1 ReadEngPara Rev:%d",eng_rev); + 86da: 6c83 mov r2, r0 + 86dc: 1125 lrw r1, 0xb331 // 8770 + 86de: 3000 movi r0, 0 + 86e0: e3fff9aa bsr 0x7a34 // 7a34 + if(eng_rev == 0) + 86e4: 3c40 cmpnei r4, 0 + 86e6: 0c04 bf 0x86ee // 86ee + EEPROM_Default_ENERGY(&e_save); + 86e8: 1101 lrw r0, 0x20000490 // 876c + 86ea: e3fffda9 bsr 0x823c // 823c + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read TotalEng <*****************/"); + 86ee: 1122 lrw r1, 0xb34a // 8774 + 86f0: 3000 movi r0, 0 + 86f2: e3fff9a1 bsr 0x7a34 // 7a34 + memset(&eng_info,0,sizeof(ENERGY_SAVE)); + 86f6: 320c movi r2, 12 + 86f8: 3100 movi r1, 0 + 86fa: 1100 lrw r0, 0x200004e4 // 8778 + 86fc: e3ffe12e bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEPROM_ReadTotalEng(&eng_info); // + 8700: 101e lrw r0, 0x200004e4 // 8778 + 8702: e3fffe31 bsr 0x8364 // 8364 + 8706: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Rev:%d",eng_rev); + 8708: 6c83 mov r2, r0 + 870a: 103d lrw r1, 0xb380 // 877c + 870c: 3000 movi r0, 0 + 870e: e3fff993 bsr 0x7a34 // 7a34 + if(eng_rev == 0x00){ + 8712: 3c40 cmpnei r4, 0 + 8714: 0820 bt 0x8754 // 8754 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal SUCC"); + 8716: 103b lrw r1, 0xb397 // 8780 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 8718: 3000 movi r0, 0 + 871a: e3fff98d bsr 0x7a34 // 7a34 + BLV_DetEnergy_Default(); + 871e: e0000075 bsr 0x8808 // 8808 +} + 8722: 1492 pop r4-r5, r15 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 8724: e3ffff5c bsr 0x85dc // 85dc + SYSCON_IWDCNT_Reload(); + 8728: e3ffecb2 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE Use Defalut Para"); + 872c: 1036 lrw r1, 0xb2e8 // 8784 + 872e: 3000 movi r0, 0 + 8730: e3fff982 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 8734: 8442 ld.b r2, (r4, 0x2) + 8736: 1035 lrw r1, 0xb262 // 8788 + 8738: 3000 movi r0, 0 + 873a: e3fff97d bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 873e: 8444 ld.b r2, (r4, 0x4) + 8740: 1033 lrw r1, 0xb283 // 878c + 8742: 3000 movi r0, 0 + 8744: e3fff978 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8748: 1052 lrw r2, 0x200004c1 // 8790 + 874a: 1033 lrw r1, 0xb294 // 8794 + 874c: 3000 movi r0, 0 + 874e: e3fff973 bsr 0x7a34 // 7a34 + 8752: 07b5 br 0x86bc // 86bc + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 8754: 1031 lrw r1, 0xb3ac // 8798 + 8756: 07e1 br 0x8718 // 8718 + 8758: 20000060 .long 0x20000060 + 875c: 200004bc .long 0x200004bc + 8760: 0000b2b3 .long 0x0000b2b3 + 8764: 2000047c .long 0x2000047c + 8768: 0000b2fc .long 0x0000b2fc + 876c: 20000490 .long 0x20000490 + 8770: 0000b331 .long 0x0000b331 + 8774: 0000b34a .long 0x0000b34a + 8778: 200004e4 .long 0x200004e4 + 877c: 0000b380 .long 0x0000b380 + 8780: 0000b397 .long 0x0000b397 + 8784: 0000b2e8 .long 0x0000b2e8 + 8788: 0000b262 .long 0x0000b262 + 878c: 0000b283 .long 0x0000b283 + 8790: 200004c1 .long 0x200004c1 + 8794: 0000b294 .long 0x0000b294 + 8798: 0000b3ac .long 0x0000b3ac + +Disassembly of section .text.BT_Uart_Packing.part.3: + +0000879c : + +} + + +//组包发送,用于蓝牙设置的回复 +void BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag) + 879c: 14d4 push r4-r7, r15 + 879e: 3914 cmphsi r1, 21 + 87a0: 6d83 mov r6, r0 + 87a2: 6d4b mov r5, r2 + 87a4: 6d07 mov r4, r1 + 87a6: 0c02 bf 0x87aa // 87aa + 87a8: 3414 movi r4, 20 + 87aa: 75d0 zextb r7, r4 + + if(BT_Len > 20){ + BT_Len = 20; + } + + memset(g_Eng.BT_SdBuff,0,20); + 87ac: 3214 movi r2, 20 + 87ae: 3100 movi r1, 0 + 87b0: 1008 lrw r0, 0x20000579 // 87d0 + 87b2: e3ffe0d3 bsr 0x4958 // 4958 <__memset_fast> + memcpy(g_Eng.BT_SdBuff, data, BT_Len); + 87b6: 6c9f mov r2, r7 + 87b8: 6c5b mov r1, r6 + 87ba: 1006 lrw r0, 0x20000579 // 87d0 + 87bc: e3ffe112 bsr 0x49e0 // 49e0 <__memcpy_fast> + g_Eng.BT_SdLen = BT_Len; + 87c0: 1045 lrw r2, 0x20000574 // 87d4 + + g_Eng.BT_SendFlag |= (0x01 << flag); + 87c2: 3301 movi r3, 1 + 87c4: 8a2d ld.h r1, (r2, 0x1a) + 87c6: 70d4 lsl r3, r5 + 87c8: 6cc4 or r3, r1 + g_Eng.BT_SdLen = BT_Len; + 87ca: a299 st.b r4, (r2, 0x19) + g_Eng.BT_SendFlag |= (0x01 << flag); + 87cc: aa6d st.h r3, (r2, 0x1a) +} + 87ce: 1494 pop r4-r7, r15 + 87d0: 20000579 .long 0x20000579 + 87d4: 20000574 .long 0x20000574 + +Disassembly of section .text.BLV_DetEnergy_Init: + +000087d8 : +{ + 87d8: 14d0 push r15 + memset(&u_det,0,sizeof(DetUart_t)); + 87da: 3248 movi r2, 72 + 87dc: 3100 movi r1, 0 + 87de: 1008 lrw r0, 0x200004f0 // 87fc + 87e0: e3ffe0bc bsr 0x4958 // 4958 <__memset_fast> + memset(&g_CalFactor,0,sizeof(HLW8110_REG)); + 87e4: 323c movi r2, 60 + 87e6: 3100 movi r1, 0 + 87e8: 1006 lrw r0, 0x20000538 // 8800 + 87ea: e3ffe0b7 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_Eng,0,sizeof(DetEng_Info)); + 87ee: 3278 movi r2, 120 + 87f0: 3100 movi r1, 0 + 87f2: 1005 lrw r0, 0x20000574 // 8804 + 87f4: e3ffe0b2 bsr 0x4958 // 4958 <__memset_fast> +} + 87f8: 1490 pop r15 + 87fa: 0000 bkpt + 87fc: 200004f0 .long 0x200004f0 + 8800: 20000538 .long 0x20000538 + 8804: 20000574 .long 0x20000574 + +Disassembly of section .text.BLV_DetEnergy_Default: + +00008808 : +{ + 8808: 14d3 push r4-r6, r15 + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 880a: 11aa lrw r5, 0x20000490 // 88b0 + 880c: 118a lrw r4, 0x20000574 // 88b4 + 880e: 95c1 ld.w r6, (r5, 0x4) + 8810: 9434 ld.w r1, (r4, 0x50) + 8812: 6c1b mov r0, r6 + 8814: e3ffd880 bsr 0x3914 // 3914 <__nesf2> + 8818: 3840 cmpnei r0, 0 + 881a: 0c02 bf 0x881e // 881e + g_Eng.I_K1_Val = e_save.i_k1_val; + 881c: b4d4 st.w r6, (r4, 0x50) + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 881e: 95c2 ld.w r6, (r5, 0x8) + 8820: 9435 ld.w r1, (r4, 0x54) + 8822: 6c1b mov r0, r6 + 8824: e3ffd878 bsr 0x3914 // 3914 <__nesf2> + 8828: 3840 cmpnei r0, 0 + 882a: 0c02 bf 0x882e // 882e + g_Eng.I_K2_Val = e_save.i_k2_val; + 882c: b4d5 st.w r6, (r4, 0x54) + if(e_save.v_k_val != g_Eng.V_K_Val) + 882e: 95c0 ld.w r6, (r5, 0x0) + 8830: 9433 ld.w r1, (r4, 0x4c) + 8832: 6c1b mov r0, r6 + 8834: e3ffd870 bsr 0x3914 // 3914 <__nesf2> + 8838: 3840 cmpnei r0, 0 + 883a: 0c02 bf 0x883e // 883e + g_Eng.V_K_Val = e_save.v_k_val; + 883c: b4d3 st.w r6, (r4, 0x4c) + if(e_save.p_k_val != g_Eng.P_K_Val) + 883e: 95c3 ld.w r6, (r5, 0xc) + 8840: 9436 ld.w r1, (r4, 0x58) + 8842: 6c1b mov r0, r6 + 8844: e3ffd868 bsr 0x3914 // 3914 <__nesf2> + 8848: 3840 cmpnei r0, 0 + 884a: 0c02 bf 0x884e // 884e + g_Eng.P_K_Val = e_save.p_k_val; + 884c: b4d6 st.w r6, (r4, 0x58) + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 884e: 95c4 ld.w r6, (r5, 0x10) + 8850: 9437 ld.w r1, (r4, 0x5c) + 8852: 6c1b mov r0, r6 + 8854: e3ffd860 bsr 0x3914 // 3914 <__nesf2> + 8858: 3840 cmpnei r0, 0 + 885a: 0c02 bf 0x885e // 885e + g_Eng.I_OffSetVal = e_save.i_OffSetVal; + 885c: b4d7 st.w r6, (r4, 0x5c) + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 885e: 95c5 ld.w r6, (r5, 0x14) + 8860: 9438 ld.w r1, (r4, 0x60) + 8862: 6c1b mov r0, r6 + 8864: e3ffd858 bsr 0x3914 // 3914 <__nesf2> + 8868: 3840 cmpnei r0, 0 + 886a: 0c02 bf 0x886e // 886e + g_Eng.P_OffSetVal = e_save.p_OffSetVal; + 886c: b4d8 st.w r6, (r4, 0x60) + if(eng_info.eng_total != g_Eng.Total_Eng) + 886e: 1073 lrw r3, 0x200004e4 // 88b8 + 8870: 9340 ld.w r2, (r3, 0x0) + 8872: 9428 ld.w r1, (r4, 0x20) + 8874: 644a cmpne r2, r1 + 8876: 0c03 bf 0x887c // 887c + g_Eng.Total_Eng = eng_info.eng_total; + 8878: b448 st.w r2, (r4, 0x20) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 887a: b449 st.w r2, (r4, 0x24) + if(eng_info.U32_EnergyA_RegData != g_Eng.U32_EnergyA_RegData) + 887c: 9362 ld.w r3, (r3, 0x8) + 887e: 944f ld.w r2, (r4, 0x3c) + 8880: 648e cmpne r3, r2 + 8882: 0c02 bf 0x8886 // 8886 + g_Eng.U32_EnergyA_RegData = eng_info.U32_EnergyA_RegData; + 8884: b46f st.w r3, (r4, 0x3c) + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 8886: 9568 ld.w r3, (r5, 0x20) + 8888: 9459 ld.w r2, (r4, 0x64) + 888a: 648e cmpne r3, r2 + 888c: 0c02 bf 0x8890 // 8890 + g_Eng.Collect_Tim = e_save.Collect_Tim; + 888e: b479 st.w r3, (r4, 0x64) + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 8890: 956a ld.w r3, (r5, 0x28) + 8892: 945b ld.w r2, (r4, 0x6c) + 8894: 648e cmpne r3, r2 + 8896: 0c02 bf 0x889a // 889a + g_Eng.SaveFlash_Tim = e_save.SaveFlash_Tim; + 8898: b47b st.w r3, (r4, 0x6c) + if(e_save.Report_Tim != g_Eng.Report_Tim) + 889a: 9569 ld.w r3, (r5, 0x24) + 889c: 945a ld.w r2, (r4, 0x68) + 889e: 648e cmpne r3, r2 + 88a0: 0c02 bf 0x88a4 // 88a4 + g_Eng.Report_Tim = e_save.Report_Tim; + 88a2: b47a st.w r3, (r4, 0x68) + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_DetEnergy_Default Init"); + 88a4: 1026 lrw r1, 0xb3c1 // 88bc + 88a6: 3000 movi r0, 0 + 88a8: e3fff8c6 bsr 0x7a34 // 7a34 +} + 88ac: 1493 pop r4-r6, r15 + 88ae: 0000 bkpt + 88b0: 20000490 .long 0x20000490 + 88b4: 20000574 .long 0x20000574 + 88b8: 200004e4 .long 0x200004e4 + 88bc: 0000b3c1 .long 0x0000b3c1 + +Disassembly of section .text.HLW8110_CheckSum: + +000088c0 : +{ + 88c0: 6040 addu r1, r0 + U8_T data_sum = 0; + 88c2: 3300 movi r3, 0 + for(U16_T i = 0;i + return ~data_sum; + 88c8: 6cce nor r3, r3 + 88ca: 740c zextb r0, r3 +} + 88cc: 783c jmp r15 + data_sum += data[i]; + 88ce: 8040 ld.b r2, (r0, 0x0) + 88d0: 60c8 addu r3, r2 + 88d2: 74cc zextb r3, r3 + 88d4: 2000 addi r0, 1 + 88d6: 07f7 br 0x88c4 // 88c4 + +Disassembly of section .text.HLW8110_WriteREG_EN: + +000088d8 : +{ + 88d8: 14d0 push r15 + 88da: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 88dc: 3300 movi r3, 0 + 88de: b860 st.w r3, (r14, 0x0) + 88e0: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 88e4: 3300 movi r3, 0 + 88e6: 2b5a subi r3, 91 + 88e8: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 88ec: 3300 movi r3, 0 + 88ee: 2b15 subi r3, 22 + 88f0: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xE5; + 88f4: 3300 movi r3, 0 + 88f6: 2b1a subi r3, 27 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88f8: 3103 movi r1, 3 + 88fa: 6c3b mov r0, r14 + SendData[SendLen++] = 0xE5; + 88fc: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8900: e3ffffe0 bsr 0x88c0 // 88c0 + 8904: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_EN len %d:",SendLen); + 8908: 3204 movi r2, 4 + 890a: 102a lrw r1, 0xb3dc // 8930 + 890c: 3002 movi r0, 2 + 890e: e3fff893 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"WriteREG_EN:",SendData,SendLen); + 8912: 6cbb mov r2, r14 + 8914: 3304 movi r3, 4 + 8916: 1028 lrw r1, 0xb3f0 // 8934 + 8918: 3002 movi r0, 2 + 891a: e3fff95f bsr 0x7bd8 // 7bd8 + UARTTransmit(UART0,SendData,SendLen); + 891e: 1067 lrw r3, 0x20000040 // 8938 + 8920: 3204 movi r2, 4 + 8922: 9300 ld.w r0, (r3, 0x0) + 8924: 6c7b mov r1, r14 + 8926: e3ffef79 bsr 0x6818 // 6818 +} + 892a: 1402 addi r14, r14, 8 + 892c: 1490 pop r15 + 892e: 0000 bkpt + 8930: 0000b3dc .long 0x0000b3dc + 8934: 0000b3f0 .long 0x0000b3f0 + 8938: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_WriteREG_DIS: + +0000893c : +{ + 893c: 14d0 push r15 + 893e: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 8940: 3300 movi r3, 0 + 8942: b860 st.w r3, (r14, 0x0) + 8944: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 8948: 3300 movi r3, 0 + 894a: 2b5a subi r3, 91 + 894c: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 8950: 3300 movi r3, 0 + 8952: 2b15 subi r3, 22 + 8954: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xDC; + 8958: 3300 movi r3, 0 + 895a: 2b23 subi r3, 36 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 895c: 3103 movi r1, 3 + 895e: 6c3b mov r0, r14 + SendData[SendLen++] = 0xDC; + 8960: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8964: e3ffffae bsr 0x88c0 // 88c0 + 8968: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_DIS len%d:",SendLen); + 896c: 3204 movi r2, 4 + 896e: 102a lrw r1, 0xb3fd // 8994 + 8970: 3002 movi r0, 2 + 8972: e3fff861 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"WriteREG_DIS:",SendData,SendLen); + 8976: 6cbb mov r2, r14 + 8978: 3304 movi r3, 4 + 897a: 1028 lrw r1, 0xb411 // 8998 + 897c: 3002 movi r0, 2 + 897e: e3fff92d bsr 0x7bd8 // 7bd8 + UARTTransmit(UART0,SendData,SendLen); + 8982: 1067 lrw r3, 0x20000040 // 899c + 8984: 3204 movi r2, 4 + 8986: 9300 ld.w r0, (r3, 0x0) + 8988: 6c7b mov r1, r14 + 898a: e3ffef47 bsr 0x6818 // 6818 +} + 898e: 1402 addi r14, r14, 8 + 8990: 1490 pop r15 + 8992: 0000 bkpt + 8994: 0000b3fd .long 0x0000b3fd + 8998: 0000b411 .long 0x0000b411 + 899c: 20000040 .long 0x20000040 + +Disassembly of section .text.BLV_HLW8110_RWCMD_Packaging: + +000089a0 : +{ + 89a0: 14d4 push r4-r7, r15 + 89a2: 1421 subi r14, r14, 4 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 89a4: 1181 lrw r4, 0x200004f0 // 8a28 +{ + 89a6: 6dc3 mov r7, r0 + 89a8: 6d47 mov r5, r1 + 89aa: 6d8b mov r6, r2 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 89ac: 3100 movi r1, 0 + 89ae: 321e movi r2, 30 + 89b0: 6c13 mov r0, r4 + 89b2: e3ffdfd3 bsr 0x4958 // 4958 <__memset_fast> + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89b6: 3300 movi r3, 0 + 89b8: 2b5a subi r3, 91 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89ba: 3220 movi r2, 32 + 89bc: 6090 addu r2, r4 + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89be: a460 st.b r3, (r4, 0x0) + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89c0: 3302 movi r3, 2 + 89c2: a27c st.b r3, (r2, 0x1c) + 89c4: 3300 movi r3, 0 + 89c6: 2b7f subi r3, 128 + 89c8: 6dcc or r7, r3 + u_det.Resent = 0x00; + 89ca: 3340 movi r3, 64 + 89cc: 60d0 addu r3, r4 + 89ce: 3100 movi r1, 0 + if( len > 0) + 89d0: 3d40 cmpnei r5, 0 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89d2: a4e1 st.b r7, (r4, 0x1) + u_det.Resent = 0x00; + 89d4: a321 st.b r1, (r3, 0x1) + u_det.RevNum = 0x00; + 89d6: a322 st.b r1, (r3, 0x2) + 89d8: 6dcb mov r7, r2 + if( len > 0) + 89da: 0c22 bf 0x8a1e // 8a1e + u_det.State = 0x01; + 89dc: 3201 movi r2, 1 + 89de: a75e st.b r2, (r7, 0x1e) + u_det.WR_flag = SEND_W; + 89e0: 3202 movi r2, 2 + 89e2: a340 st.b r2, (r3, 0x0) + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89e4: 5d43 subi r2, r5, 1 + for (U8_T i = 0; i < len; i++) + 89e6: 3300 movi r3, 0 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89e8: b840 st.w r2, (r14, 0x0) + for (U8_T i = 0; i < len; i++) + 89ea: 654c cmphs r3, r5 + 89ec: 0c0f bf 0x8a0a // 8a0a + u_det.SendLen += len; + 89ee: 7554 zextb r5, r5 + 89f0: 5dc6 addi r6, r5, 2 + 89f2: 7598 zextb r6, r6 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 89f4: 7459 zexth r1, r6 + 89f6: 100d lrw r0, 0x200004f0 // 8a28 + 89f8: 6118 addu r4, r6 + u_det.SendLen += len; + 89fa: a7dc st.b r6, (r7, 0x1c) + u_det.SendLen += 1; + 89fc: 2502 addi r5, 3 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 89fe: e3ffff61 bsr 0x88c0 // 88c0 + 8a02: a400 st.b r0, (r4, 0x0) + u_det.SendLen += 1; + 8a04: a7bc st.b r5, (r7, 0x1c) +} + 8a06: 1401 addi r14, r14, 4 + 8a08: 1494 pop r4-r7, r15 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a0a: 9840 ld.w r2, (r14, 0x0) + 8a0c: 608e subu r2, r3 + 8a0e: 4243 lsli r2, r2, 3 + 8a10: 6c5b mov r1, r6 + 8a12: 5c0c addu r0, r4, r3 + 8a14: 7049 lsr r1, r2 + for (U8_T i = 0; i < len; i++) + 8a16: 2300 addi r3, 1 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a18: a022 st.b r1, (r0, 0x2) + for (U8_T i = 0; i < len; i++) + 8a1a: 74cc zextb r3, r3 + 8a1c: 07e7 br 0x89ea // 89ea + u_det.State = 0x01; + 8a1e: 3101 movi r1, 1 + 8a20: a23e st.b r1, (r2, 0x1e) + u_det.WR_flag = SEND_R; + 8a22: 3201 movi r2, 1 + 8a24: a340 st.b r2, (r3, 0x0) +} + 8a26: 07f0 br 0x8a06 // 8a06 + 8a28: 200004f0 .long 0x200004f0 + +Disassembly of section .text.HLW8110_RWCMD_Send: + +00008a2c : +{ + 8a2c: 14d1 push r4, r15 + 8a2e: 1428 subi r14, r14, 32 + if( (WR_SelFlag == SEND_W)&&(u_det.SendLen > 3) ) + 8a30: 3842 cmpnei r0, 2 + 8a32: 081f bt 0x8a70 // 8a70 + 8a34: 1079 lrw r3, 0x20000510 // 8a98 + 8a36: 839c ld.b r4, (r3, 0x1c) + 8a38: 3c03 cmphsi r4, 4 + 8a3a: 0c29 bf 0x8a8c // 8a8c + memcpy(SendData,u_det.SendBuff,u_det.SendLen); + 8a3c: 6c93 mov r2, r4 + 8a3e: 1038 lrw r1, 0x200004f0 // 8a9c + 8a40: 6c3b mov r0, r14 + 8a42: e3ffdfcf bsr 0x49e0 // 49e0 <__memcpy_fast> + SendLen = u_det.SendLen; + 8a46: 7511 zexth r4, r4 + Dbg_Println(DBG_BIT_Debug_STATUS,"Send len:%d,SendCnt:%d",SendLen,u_det.Resent); + 8a48: 1076 lrw r3, 0x20000530 // 8aa0 + 8a4a: 6c93 mov r2, r4 + 8a4c: 8361 ld.b r3, (r3, 0x1) + 8a4e: 1036 lrw r1, 0xb42c // 8aa4 + 8a50: 3002 movi r0, 2 + 8a52: e3fff7f1 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"SendBuff:",SendData,SendLen); + 8a56: 6cd3 mov r3, r4 + 8a58: 6cbb mov r2, r14 + 8a5a: 1034 lrw r1, 0xb443 // 8aa8 + 8a5c: 3002 movi r0, 2 + 8a5e: e3fff8bd bsr 0x7bd8 // 7bd8 + UARTTransmit(UART0,SendData,SendLen); + 8a62: 1073 lrw r3, 0x20000040 // 8aac + 8a64: 6c93 mov r2, r4 + 8a66: 9300 ld.w r0, (r3, 0x0) + 8a68: 6c7b mov r1, r14 + 8a6a: e3ffeed7 bsr 0x6818 // 6818 + 8a6e: 0413 br 0x8a94 // 8a94 + else if(WR_SelFlag == SEND_R) + 8a70: 3841 cmpnei r0, 1 + 8a72: 080d bt 0x8a8c // 8a8c + memcpy(SendData,u_det.SendBuff,2); + 8a74: 106a lrw r3, 0x200004f0 // 8a9c + 8a76: 8b40 ld.h r2, (r3, 0x0) + 8a78: 74c9 zexth r3, r2 + 8a7a: dc4e1000 st.h r2, (r14, 0x0) + SendData[1] = (SendData[1] &0x7f ); + 8a7e: 4b68 lsri r3, r3, 8 + 8a80: 327f movi r2, 127 + 8a82: 68c8 and r3, r2 + 8a84: dc6e0001 st.b r3, (r14, 0x1) + SendLen = 2; + 8a88: 3402 movi r4, 2 + 8a8a: 07df br 0x8a48 // 8a48 + Dbg_Println(DBG_BIT_Debug_STATUS,"Send Err!:%d"); + 8a8c: 1029 lrw r1, 0xb41f // 8ab0 + 8a8e: 3002 movi r0, 2 + 8a90: e3fff7d2 bsr 0x7a34 // 7a34 +} + 8a94: 1408 addi r14, r14, 32 + 8a96: 1491 pop r4, r15 + 8a98: 20000510 .long 0x20000510 + 8a9c: 200004f0 .long 0x200004f0 + 8aa0: 20000530 .long 0x20000530 + 8aa4: 0000b42c .long 0x0000b42c + 8aa8: 0000b443 .long 0x0000b443 + 8aac: 20000040 .long 0x20000040 + 8ab0: 0000b41f .long 0x0000b41f + +Disassembly of section .text.HLW8110_CleanSdFlag: + +00008ab4 : + u_det.WR_flag = SEND_NONE; + 8ab4: 1063 lrw r3, 0x20000530 // 8ac0 + 8ab6: 3200 movi r2, 0 + 8ab8: a340 st.b r2, (r3, 0x0) + u_det.RevNum = REV_NONE; + 8aba: a342 st.b r2, (r3, 0x2) +} + 8abc: 783c jmp r15 + 8abe: 0000 bkpt + 8ac0: 20000530 .long 0x20000530 + +Disassembly of section .text.Get_RevState: + +00008ac4 : + if(u_det.RevNum == REV_OK) + 8ac4: 1065 lrw r3, 0x20000530 // 8ad8 + 8ac6: 8302 ld.b r0, (r3, 0x2) + 8ac8: 3841 cmpnei r0, 1 + 8aca: 0804 bt 0x8ad2 // 8ad2 + u_det.RevNum = REV_NONE; + 8acc: 3200 movi r2, 0 + 8ace: a342 st.b r2, (r3, 0x2) +} + 8ad0: 783c jmp r15 + return REV_NONE; + 8ad2: 3000 movi r0, 0 + 8ad4: 07fe br 0x8ad0 // 8ad0 + 8ad6: 0000 bkpt + 8ad8: 20000530 .long 0x20000530 + +Disassembly of section .text.Get_SendState: + +00008adc : + if(u_det.SendState == SEND_STATE_SUCC) + 8adc: 1066 lrw r3, 0x20000530 // 8af4 + 8ade: 8303 ld.b r0, (r3, 0x3) + 8ae0: 3841 cmpnei r0, 1 + 8ae2: 0804 bt 0x8aea // 8aea + u_det.SendState = SEND_STATE_NONE; + 8ae4: 3200 movi r2, 0 + 8ae6: a343 st.b r2, (r3, 0x3) +} + 8ae8: 783c jmp r15 + else if(u_det.SendState == SEND_STATE_FAIL) + 8aea: 3842 cmpnei r0, 2 + 8aec: 0ffc bf 0x8ae4 // 8ae4 + return SEND_STATE_NONE; + 8aee: 3000 movi r0, 0 + 8af0: 07fc br 0x8ae8 // 8ae8 + 8af2: 0000 bkpt + 8af4: 20000530 .long 0x20000530 + +Disassembly of section .text.BLV_HLW8110_SendData_Tack: + +00008af8 : +{ + 8af8: 14d4 push r4-r7, r15 + 8afa: 1422 subi r14, r14, 8 + switch(u_det.State) + 8afc: 1392 lrw r4, 0x20000510 // 8cc4 + 8afe: 841e ld.b r0, (r4, 0x1e) + 8b00: 2800 subi r0, 1 + 8b02: 3808 cmphsi r0, 9 + 8b04: 0816 bt 0x8b30 // 8b30 + 8b06: e3ffd505 bsr 0x3510 // 3510 <___gnu_csky_case_uhi> + 8b0a: 0009 .short 0x0009 + 8b0c: 005b001d .long 0x005b001d + 8b10: 00730069 .long 0x00730069 + 8b14: 009f0082 .long 0x009f0082 + 8b18: 00ce00c0 .long 0x00ce00c0 + if(u_det.WR_flag == SEND_R) //读,需要等待回复校验 + 8b1c: 136b lrw r3, 0x20000530 // 8cc8 + 8b1e: 8360 ld.b r3, (r3, 0x0) + 8b20: 3b41 cmpnei r3, 1 + 8b22: 0809 bt 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b24: 136a lrw r3, 0x200000c4 // 8ccc + 8b26: 9340 ld.w r2, (r3, 0x0) + 8b28: 136a lrw r3, 0x2000016c // 8cd0 + 8b2a: b340 st.w r2, (r3, 0x0) + u_det.State = 0x02; + 8b2c: 3302 movi r3, 2 + u_det.State = 0x03; + 8b2e: a47e st.b r3, (r4, 0x1e) +} + 8b30: 1402 addi r14, r14, 8 + 8b32: 1494 pop r4-r7, r15 + else if(u_det.WR_flag == SEND_W) //写,需要先写使能 + 8b34: 3b42 cmpnei r3, 2 + 8b36: 0bfd bt 0x8b30 // 8b30 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b38: 1365 lrw r3, 0x200000c4 // 8ccc + 8b3a: 9340 ld.w r2, (r3, 0x0) + 8b3c: 1365 lrw r3, 0x2000016c // 8cd0 + 8b3e: b340 st.w r2, (r3, 0x0) + u_det.State = 0x03; + 8b40: 3303 movi r3, 3 + 8b42: 07f6 br 0x8b2e // 8b2e + if(u_det.WR_flag == SEND_R) + 8b44: 13c4 lrw r6, 0x200004f0 // 8cd4 + 8b46: 3540 movi r5, 64 + 8b48: 6158 addu r5, r6 + 8b4a: 8560 ld.b r3, (r5, 0x0) + 8b4c: 3b41 cmpnei r3, 1 + 8b4e: b8c1 st.w r6, (r14, 0x4) + 8b50: b8a0 st.w r5, (r14, 0x0) + 8b52: 0bef bt 0x8b30 // 8b30 + if((u_det.Resent == 0x00)||(SysTick_1ms - HLW8110_Sned_Tisk >= 80) ) + 8b54: 8541 ld.b r2, (r5, 0x1) + 8b56: 3a40 cmpnei r2, 0 + 8b58: 127d lrw r3, 0x200000c4 // 8ccc + 8b5a: 12fe lrw r7, 0x2000016c // 8cd0 + 8b5c: 0c07 bf 0x8b6a // 8b6a + 8b5e: 9700 ld.w r0, (r7, 0x0) + 8b60: 9320 ld.w r1, (r3, 0x0) + 8b62: 6042 subu r1, r0 + 8b64: 304f movi r0, 79 + 8b66: 6440 cmphs r0, r1 + 8b68: 081b bt 0x8b9e // 8b9e + HLW8110_Sned_Tisk = SysTick_1ms; + 8b6a: 9360 ld.w r3, (r3, 0x0) + if(u_det.Resent < 3) + 8b6c: 3a02 cmphsi r2, 3 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b6e: b760 st.w r3, (r7, 0x0) + if(u_det.Resent < 3) + 8b70: 080a bt 0x8b84 // 8b84 + HLW8110_RWCMD_Send(SEND_R); + 8b72: 3001 movi r0, 1 + 8b74: e3ffff5c bsr 0x8a2c // 8a2c + u_det.Resent++; + 8b78: 9860 ld.w r3, (r14, 0x0) + 8b7a: 8361 ld.b r3, (r3, 0x1) + 8b7c: 2300 addi r3, 1 + 8b7e: 9840 ld.w r2, (r14, 0x0) + u_det.Resent++; + 8b80: a261 st.b r3, (r2, 0x1) + break; + 8b82: 07d7 br 0x8b30 // 8b30 + u_det.SendState = SEND_STATE_FAIL; + 8b84: 9860 ld.w r3, (r14, 0x0) + 8b86: 3202 movi r2, 2 + 8b88: a343 st.b r2, (r3, 0x3) + u_det.State = HLW_WAIT; + 8b8a: 3309 movi r3, 9 + 8b8c: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8b8e: 3300 movi r3, 0 + 8b90: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8b92: 9841 ld.w r2, (r14, 0x4) + 8b94: 1271 lrw r3, 0xbb8 // 8cd8 + 8b96: b271 st.w r3, (r2, 0x44) + HLW8110_CleanSdFlag(); + 8b98: e3ffff8e bsr 0x8ab4 // 8ab4 + break; + 8b9c: 07ca br 0x8b30 // 8b30 + 8b9e: b860 st.w r3, (r14, 0x0) + if(Get_RevState() == REV_OK) + 8ba0: e3ffff92 bsr 0x8ac4 // 8ac4 + 8ba4: 3841 cmpnei r0, 1 + 8ba6: 9860 ld.w r3, (r14, 0x0) + 8ba8: 0bc4 bt 0x8b30 // 8b30 + HLW8110_Sned_Tisk = SysTick_1ms; + 8baa: 9360 ld.w r3, (r3, 0x0) + 8bac: b760 st.w r3, (r7, 0x0) + u_det.State = HLW_WAIT; + 8bae: 3309 movi r3, 9 + 8bb0: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bb2: 3300 movi r3, 0 + u_det.SendState = SEND_STATE_SUCC; + 8bb4: 3201 movi r2, 1 + u_det.Pub_NextState = NextState; + 8bb6: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bb8: 330a movi r3, 10 + u_det.SendState = SEND_STATE_SUCC; + 8bba: a543 st.b r2, (r5, 0x3) + u_det.Pub_WaitTim = WaitTime; + 8bbc: b671 st.w r3, (r6, 0x44) + 8bbe: 07ed br 0x8b98 // 8b98 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bc0: 1263 lrw r3, 0x200000c4 // 8ccc + 8bc2: 9340 ld.w r2, (r3, 0x0) + 8bc4: 1263 lrw r3, 0x2000016c // 8cd0 + 8bc6: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8bc8: 3309 movi r3, 9 + 8bca: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bcc: 3304 movi r3, 4 + 8bce: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bd0: 320a movi r2, 10 + 8bd2: 1261 lrw r3, 0x200004f0 // 8cd4 + 8bd4: b351 st.w r2, (r3, 0x44) + HLW8110_WriteREG_EN(); + 8bd6: e3fffe81 bsr 0x88d8 // 88d8 + break; + 8bda: 07ab br 0x8b30 // 8b30 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bdc: 117c lrw r3, 0x200000c4 // 8ccc + 8bde: 9340 ld.w r2, (r3, 0x0) + 8be0: 117c lrw r3, 0x2000016c // 8cd0 + 8be2: b340 st.w r2, (r3, 0x0) + u_det.Resent = 0x00; + 8be4: 1179 lrw r3, 0x20000530 // 8cc8 + 8be6: 3200 movi r2, 0 + 8be8: a341 st.b r2, (r3, 0x1) + u_det.RevNum = 0x00; + 8bea: a342 st.b r2, (r3, 0x2) + u_det.State = 0x05; + 8bec: 3305 movi r3, 5 + 8bee: 07a0 br 0x8b2e // 8b2e + HLW8110_RWCMD_Send(SEND_W); + 8bf0: 3002 movi r0, 2 + 8bf2: e3ffff1d bsr 0x8a2c // 8a2c + HLW8110_Sned_Tisk = SysTick_1ms; + 8bf6: 1176 lrw r3, 0x200000c4 // 8ccc + 8bf8: 9340 ld.w r2, (r3, 0x0) + 8bfa: 1176 lrw r3, 0x2000016c // 8cd0 + 8bfc: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8bfe: 3309 movi r3, 9 + 8c00: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c02: 3306 movi r3, 6 + 8c04: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c06: 320a movi r2, 10 + 8c08: 1173 lrw r3, 0x200004f0 // 8cd4 + 8c0a: b351 st.w r2, (r3, 0x44) + 8c0c: 0792 br 0x8b30 // 8b30 + if(u_det.Resent < 3) + 8c0e: 1172 lrw r3, 0x200004f0 // 8cd4 + 8c10: 3240 movi r2, 64 + 8c12: 608c addu r2, r3 + 8c14: 8221 ld.b r1, (r2, 0x1) + 8c16: 3902 cmphsi r1, 3 + 8c18: 11cd lrw r6, 0x200000c4 // 8ccc + 8c1a: 11ae lrw r5, 0x2000016c // 8cd0 + 8c1c: 080b bt 0x8c32 // 8c32 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c1e: 9660 ld.w r3, (r6, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c20: 3001 movi r0, 1 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c22: b560 st.w r3, (r5, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c24: e3ffff04 bsr 0x8a2c // 8a2c + u_det.State = 0x07; + 8c28: 3307 movi r3, 7 + 8c2a: a47e st.b r3, (r4, 0x1e) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c2c: 9660 ld.w r3, (r6, 0x0) + 8c2e: b560 st.w r3, (r5, 0x0) + break; + 8c30: 0780 br 0x8b30 // 8b30 + u_det.SendState = SEND_STATE_FAIL; + 8c32: 3102 movi r1, 2 + 8c34: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c36: 9640 ld.w r2, (r6, 0x0) + 8c38: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c3a: 3209 movi r2, 9 + 8c3c: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c3e: 3208 movi r2, 8 + 8c40: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c42: 1146 lrw r2, 0xbb8 // 8cd8 + 8c44: b351 st.w r2, (r3, 0x44) + 8c46: 07a9 br 0x8b98 // 8b98 + if(SysTick_1ms - HLW8110_Sned_Tisk >= 80) + 8c48: 11c1 lrw r6, 0x200000c4 // 8ccc + 8c4a: 11a2 lrw r5, 0x2000016c // 8cd0 + 8c4c: 9660 ld.w r3, (r6, 0x0) + 8c4e: 9540 ld.w r2, (r5, 0x0) + 8c50: 60ca subu r3, r2 + 8c52: 324f movi r2, 79 + 8c54: 64c8 cmphs r2, r3 + 8c56: 0809 bt 0x8c68 // 8c68 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c58: 9660 ld.w r3, (r6, 0x0) + 8c5a: b560 st.w r3, (r5, 0x0) + u_det.Resent++; + 8c5c: 105b lrw r2, 0x20000530 // 8cc8 + u_det.State = 0x05; + 8c5e: 3305 movi r3, 5 + 8c60: a47e st.b r3, (r4, 0x1e) + u_det.Resent++; + 8c62: 8261 ld.b r3, (r2, 0x1) + 8c64: 2300 addi r3, 1 + 8c66: 078d br 0x8b80 // 8b80 + if(Get_RevState() == REV_OK) + 8c68: e3ffff2e bsr 0x8ac4 // 8ac4 + 8c6c: 3841 cmpnei r0, 1 + 8c6e: 0b61 bt 0x8b30 // 8b30 + u_det.SendState = SEND_STATE_SUCC; + 8c70: 1079 lrw r3, 0x200004f0 // 8cd4 + 8c72: 3240 movi r2, 64 + 8c74: 608c addu r2, r3 + 8c76: 3101 movi r1, 1 + 8c78: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c7a: 9640 ld.w r2, (r6, 0x0) + 8c7c: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c7e: 3209 movi r2, 9 + 8c80: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c82: 3208 movi r2, 8 + 8c84: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c86: 320a movi r2, 10 + 8c88: 07de br 0x8c44 // 8c44 + HLW8110_WriteREG_DIS(); + 8c8a: e3fffe59 bsr 0x893c // 893c + u_det.State = HLW_WAIT; + 8c8e: 3309 movi r3, 9 + 8c90: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c92: 3300 movi r3, 0 + u_det.Pub_WaitTim = WaitTime; + 8c94: 320a movi r2, 10 + u_det.Pub_NextState = NextState; + 8c96: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c98: 106f lrw r3, 0x200004f0 // 8cd4 + 8c9a: b351 st.w r2, (r3, 0x44) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c9c: 106c lrw r3, 0x200000c4 // 8ccc + 8c9e: 9340 ld.w r2, (r3, 0x0) + 8ca0: 106c lrw r3, 0x2000016c // 8cd0 + 8ca2: b340 st.w r2, (r3, 0x0) + break; + 8ca4: 0746 br 0x8b30 // 8b30 + if(SysTick_1ms - HLW8110_Sned_Tisk >= u_det.Pub_WaitTim) + 8ca6: 106a lrw r3, 0x200000c4 // 8ccc + 8ca8: 104a lrw r2, 0x2000016c // 8cd0 + 8caa: 9360 ld.w r3, (r3, 0x0) + 8cac: 9240 ld.w r2, (r2, 0x0) + 8cae: 60ca subu r3, r2 + 8cb0: 1049 lrw r2, 0x200004f0 // 8cd4 + 8cb2: 9251 ld.w r2, (r2, 0x44) + 8cb4: 648c cmphs r3, r2 + 8cb6: 0f3d bf 0x8b30 // 8b30 + u_det.State = u_det.Pub_NextState; + 8cb8: 847f ld.b r3, (r4, 0x1f) + 8cba: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = 0x00; + 8cbc: 3300 movi r3, 0 + 8cbe: a47f st.b r3, (r4, 0x1f) +} + 8cc0: 0738 br 0x8b30 // 8b30 + 8cc2: 0000 bkpt + 8cc4: 20000510 .long 0x20000510 + 8cc8: 20000530 .long 0x20000530 + 8ccc: 200000c4 .long 0x200000c4 + 8cd0: 2000016c .long 0x2000016c + 8cd4: 200004f0 .long 0x200004f0 + 8cd8: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.HLW8110_Convert_CurrentRegA_Value: + +00008cdc : +{ + 8cdc: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8cde: 109e lrw r4, 0x20000538 // 8d54 + 8ce0: 3280 movi r2, 128 + 8ce2: 9468 ld.w r3, (r4, 0x20) + 8ce4: 4250 lsli r2, r2, 16 + 8ce6: 68c8 and r3, r2 + 8ce8: 3b40 cmpnei r3, 0 + 8cea: 10bc lrw r5, 0x20000574 // 8d58 + 8cec: 0831 bt 0x8d4e // 8d4e + Conv_Val = value / 1000.0; + 8cee: e3ffdb11 bsr 0x4310 // 4310 <__floatunsidf> + 8cf2: 3200 movi r2, 0 + 8cf4: 107a lrw r3, 0x408f4000 // 8d5c + 8cf6: e3ffd96d bsr 0x3fd0 // 3fd0 <__divdf3> + 8cfa: e3ffdaf3 bsr 0x42e0 // 42e0 <__truncdfsf2> + 8cfe: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIAC_RegData; + 8d00: 8c00 ld.h r0, (r4, 0x0) + 8d02: e3ffd641 bsr 0x3984 // 3984 <__floatsisf> + 8d06: 6c5b mov r1, r6 + 8d08: e3ffd51c bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x800; + 8d0c: 31e8 movi r1, 232 + 8d0e: 4136 lsli r1, r1, 22 + 8d10: e3ffd518 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x1000; + 8d14: 31e6 movi r1, 230 + 8d16: 4136 lsli r1, r1, 22 + 8d18: e3ffd514 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val; + 8d1c: 9534 ld.w r1, (r5, 0x50) + 8d1e: e3ffd511 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + 8d22: 9537 ld.w r1, (r5, 0x5c) + 8d24: e3ffd4de bsr 0x36e0 // 36e0 <__addsf3> + 8d28: 6d03 mov r4, r0 + g_Eng.det_ectA = (Conv_Val * 100); //单位10mA + 8d2a: 102e lrw r1, 0x42c80000 // 8d60 + 8d2c: 6c13 mov r0, r4 + 8d2e: e3ffd509 bsr 0x3740 // 3740 <__mulsf3> + 8d32: e3ffd3fd bsr 0x352c // 352c <__fixunssfsi> + 8d36: b50c st.w r0, (r5, 0x30) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"CurReg:%f",Conv_Val); + 8d38: 6c13 mov r0, r4 + 8d3a: e3ffd681 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8d3e: 6c83 mov r2, r0 + 8d40: 6cc7 mov r3, r1 + 8d42: 3001 movi r0, 1 + 8d44: 1028 lrw r1, 0xb44d // 8d64 + 8d46: e3fff677 bsr 0x7a34 // 7a34 +} + 8d4a: 6c13 mov r0, r4 + 8d4c: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8d4e: 3400 movi r4, 0 + 8d50: 07ed br 0x8d2a // 8d2a + 8d52: 0000 bkpt + 8d54: 20000538 .long 0x20000538 + 8d58: 20000574 .long 0x20000574 + 8d5c: 408f4000 .long 0x408f4000 + 8d60: 42c80000 .long 0x42c80000 + 8d64: 0000b44d .long 0x0000b44d + +Disassembly of section .text.HLW8110_Convert_VoltageReg_Value: + +00008d68 : +{ + 8d68: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8d6a: 109a lrw r4, 0x20000538 // 8dd0 + 8d6c: 3280 movi r2, 128 + 8d6e: 9468 ld.w r3, (r4, 0x20) + 8d70: 4250 lsli r2, r2, 16 + 8d72: 68c8 and r3, r2 + 8d74: 3b40 cmpnei r3, 0 + 8d76: 10b8 lrw r5, 0x20000574 // 8dd4 + 8d78: 082a bt 0x8dcc // 8dcc + Conv_Val = value / 100.0; + 8d7a: e3ffdacb bsr 0x4310 // 4310 <__floatunsidf> + 8d7e: 3200 movi r2, 0 + 8d80: 1076 lrw r3, 0x40590000 // 8dd8 + 8d82: e3ffd927 bsr 0x3fd0 // 3fd0 <__divdf3> + 8d86: e3ffdaad bsr 0x42e0 // 42e0 <__truncdfsf2> + 8d8a: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSUC_RegData; + 8d8c: 8c02 ld.h r0, (r4, 0x4) + 8d8e: e3ffd5fb bsr 0x3984 // 3984 <__floatsisf> + 8d92: 6c5b mov r1, r6 + 8d94: e3ffd4d6 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x400000; + 8d98: 31d2 movi r1, 210 + 8d9a: 4136 lsli r1, r1, 22 + 8d9c: e3ffd4d2 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.V_K_Val;//VK_Val; + 8da0: 9533 ld.w r1, (r5, 0x4c) + 8da2: e3ffd4cf bsr 0x3740 // 3740 <__mulsf3> + 8da6: 6d03 mov r4, r0 + g_Eng.det_V = (Conv_Val * 100); //单位:10mV + 8da8: 102d lrw r1, 0x42c80000 // 8ddc + 8daa: 6c13 mov r0, r4 + 8dac: e3ffd4ca bsr 0x3740 // 3740 <__mulsf3> + 8db0: e3ffd3be bsr 0x352c // 352c <__fixunssfsi> + 8db4: b50b st.w r0, (r5, 0x2c) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"VolReg:%f",Conv_Val); + 8db6: 6c13 mov r0, r4 + 8db8: e3ffd642 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8dbc: 6c83 mov r2, r0 + 8dbe: 6cc7 mov r3, r1 + 8dc0: 3001 movi r0, 1 + 8dc2: 1028 lrw r1, 0xb457 // 8de0 + 8dc4: e3fff638 bsr 0x7a34 // 7a34 +} + 8dc8: 6c13 mov r0, r4 + 8dca: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8dcc: 3400 movi r4, 0 + 8dce: 07ed br 0x8da8 // 8da8 + 8dd0: 20000538 .long 0x20000538 + 8dd4: 20000574 .long 0x20000574 + 8dd8: 40590000 .long 0x40590000 + 8ddc: 42c80000 .long 0x42c80000 + 8de0: 0000b457 .long 0x0000b457 + +Disassembly of section .text.HLW8110_Convert_PowerReg_Value: + +00008de4 : +{ + 8de4: 14d3 push r4-r6, r15 + 8de6: 1421 subi r14, r14, 4 + Conv_Val = abs((int)value); + 8de8: 38df btsti r0, 31 +{ + 8dea: 6d43 mov r5, r0 + Conv_Val = abs((int)value); + 8dec: 0c03 bf 0x8df2 // 8df2 + 8dee: 3000 movi r0, 0 + 8df0: 6016 subu r0, r5 + 8df2: e3ffd5c9 bsr 0x3984 // 3984 <__floatsisf> + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8df6: 1078 lrw r3, 0x20000538 // 8e54 + Conv_Val = abs((int)value); + 8df8: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8dfa: 8b03 ld.h r0, (r3, 0x6) + 8dfc: e3ffd5c4 bsr 0x3984 // 3984 <__floatsisf> + 8e00: 6c53 mov r1, r4 + 8e02: e3ffd49f bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x8000; + 8e06: 31e0 movi r1, 224 + 8e08: 4136 lsli r1, r1, 22 + 8e0a: e3ffd49b bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x10000; + 8e0e: 31de movi r1, 222 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8e10: 1092 lrw r4, 0x20000574 // 8e58 + Conv_Val = Conv_Val / 0x10000; + 8e12: 4136 lsli r1, r1, 22 + 8e14: e3ffd496 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8e18: 9434 ld.w r1, (r4, 0x50) + 8e1a: e3ffd493 bsr 0x3740 // 3740 <__mulsf3> + 8e1e: 9436 ld.w r1, (r4, 0x58) + 8e20: e3ffd490 bsr 0x3740 // 3740 <__mulsf3> + 8e24: 9433 ld.w r1, (r4, 0x4c) + 8e26: e3ffd48d bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8e2a: 9438 ld.w r1, (r4, 0x60) + 8e2c: e3ffd45a bsr 0x36e0 // 36e0 <__addsf3> + 8e30: 6d83 mov r6, r0 + g_Eng.det_powA = Conv_Val; //单位:W + 8e32: e3ffd37d bsr 0x352c // 352c <__fixunssfsi> + 8e36: b40e st.w r0, (r4, 0x38) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"PowReg:%f,%d",Conv_Val,value); + 8e38: 6c1b mov r0, r6 + 8e3a: e3ffd601 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8e3e: 6c83 mov r2, r0 + 8e40: 6cc7 mov r3, r1 + 8e42: b8a0 st.w r5, (r14, 0x0) + 8e44: 3001 movi r0, 1 + 8e46: 1026 lrw r1, 0xb461 // 8e5c + 8e48: e3fff5f6 bsr 0x7a34 // 7a34 +} + 8e4c: 6c1b mov r0, r6 + 8e4e: 1401 addi r14, r14, 4 + 8e50: 1493 pop r4-r6, r15 + 8e52: 0000 bkpt + 8e54: 20000538 .long 0x20000538 + 8e58: 20000574 .long 0x20000574 + 8e5c: 0000b461 .long 0x0000b461 + +Disassembly of section .text.HLW8110_Convert_EnergyReg_Value: + +00008e60 : +{ + 8e60: 14d4 push r4-r7, r15 + 8e62: 1422 subi r14, r14, 8 + g_Eng.U32_EnergyA_RegData_Diff = 0x00; + 8e64: 1180 lrw r4, 0x20000574 // 8ee4 +{ + 8e66: 6d43 mov r5, r0 + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //当前记录的有效值寄存器值小于于读取到的 + 8e68: 9471 ld.w r3, (r4, 0x44) + 8e6a: 64c0 cmphs r0, r3 + 8e6c: 4368 lsli r3, r3, 8 + 8e6e: 4048 lsli r2, r0, 8 + g_Eng.U32_EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 8e70: 4b68 lsri r3, r3, 8 + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //当前记录的有效值寄存器值小于于读取到的 + 8e72: 0c35 bf 0x8edc // 8edc + g_Eng.U32_EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 8e74: 586d subu r3, r0, r3 + g_Eng.U32_EnergyA_RegData_Diff = ( ((g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF)+0xFFFFFF)- value ); + 8e76: b470 st.w r3, (r4, 0x40) + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e78: 9470 ld.w r3, (r4, 0x40) + 8e7a: 940f ld.w r0, (r4, 0x3c) + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e7c: 4a48 lsri r2, r2, 8 + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e7e: 600c addu r0, r3 + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e80: b451 st.w r2, (r4, 0x44) + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e82: b40f st.w r0, (r4, 0x3c) + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + 8e84: e3ffda46 bsr 0x4310 // 4310 <__floatunsidf> + 8e88: e3ffda2c bsr 0x42e0 // 42e0 <__truncdfsf2> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e8c: 9434 ld.w r1, (r4, 0x50) + 8e8e: e3ffd459 bsr 0x3740 // 3740 <__mulsf3> + 8e92: 9433 ld.w r1, (r4, 0x4c) + 8e94: e3ffd456 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e98: 1074 lrw r3, 0x20000538 // 8ee8 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e9a: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e9c: 8b06 ld.h r0, (r3, 0xc) + 8e9e: e3ffd573 bsr 0x3984 // 3984 <__floatsisf> + 8ea2: 6c5b mov r1, r6 + 8ea4: e3ffd44e bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x20000000; + 8ea8: 31c4 movi r1, 196 + 8eaa: 4136 lsli r1, r1, 22 + 8eac: e3ffd44a bsr 0x3740 // 3740 <__mulsf3> + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8eb0: 102f lrw r1, 0x447a0000 // 8eec + Conv_Val = Conv_Val / 0x20000000; + 8eb2: 6d83 mov r6, r0 + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8eb4: e3ffd446 bsr 0x3740 // 3740 <__mulsf3> + 8eb8: e3ffd33a bsr 0x352c // 352c <__fixunssfsi> + 8ebc: 6dc3 mov r7, r0 + 8ebe: b408 st.w r0, (r4, 0x20) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"EngReg:%f,value:%d,Total_Eng:%d",Conv_Val,value,g_Eng.Total_Eng); + 8ec0: 6c1b mov r0, r6 + 8ec2: e3ffd5bd bsr 0x3a3c // 3a3c <__extendsfdf2> + 8ec6: 6c83 mov r2, r0 + 8ec8: 6cc7 mov r3, r1 + 8eca: b8e1 st.w r7, (r14, 0x4) + 8ecc: b8a0 st.w r5, (r14, 0x0) + 8ece: 3001 movi r0, 1 + 8ed0: 1028 lrw r1, 0xb46e // 8ef0 + 8ed2: e3fff5b1 bsr 0x7a34 // 7a34 +} + 8ed6: 6c1b mov r0, r6 + 8ed8: 1402 addi r14, r14, 8 + 8eda: 1494 pop r4-r7, r15 + g_Eng.U32_EnergyA_RegData_Diff = ( ((g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF)+0xFFFFFF)- value ); + 8edc: 1026 lrw r1, 0xffffff // 8ef4 + 8ede: 60c4 addu r3, r1 + 8ee0: 60c2 subu r3, r0 + 8ee2: 07ca br 0x8e76 // 8e76 + 8ee4: 20000574 .long 0x20000574 + 8ee8: 20000538 .long 0x20000538 + 8eec: 447a0000 .long 0x447a0000 + 8ef0: 0000b46e .long 0x0000b46e + 8ef4: 00ffffff .long 0x00ffffff + +Disassembly of section .text.HLW8110_RecvData_Processing: + +00008ef8 : +{ + 8ef8: 14d4 push r4-r7, r15 + 8efa: 1424 subi r14, r14, 16 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8efc: 5947 subi r2, r1, 2 + 8efe: 7489 zexth r2, r2 + 8f00: 3a08 cmphsi r2, 9 +{ + 8f02: b803 st.w r0, (r14, 0xc) + 8f04: 6dc7 mov r7, r1 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8f06: 0c09 bf 0x8f18 // 8f18 + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",RecvLen); + 8f08: 6c87 mov r2, r1 + 8f0a: 3000 movi r0, 0 + 8f0c: 0337 lrw r1, 0xb48e // 912c + 8f0e: e3fff593 bsr 0x7a34 // 7a34 + return 0x01; + 8f12: 3001 movi r0, 1 +} + 8f14: 1404 addi r14, r14, 16 + 8f16: 1494 pop r4-r7, r15 + if(u_det.WR_flag == SEND_NONE) + 8f18: 03b9 lrw r5, 0x200004f0 // 9130 + 8f1a: 3340 movi r3, 64 + 8f1c: 60d4 addu r3, r5 + 8f1e: 8340 ld.b r2, (r3, 0x0) + 8f20: 3a40 cmpnei r2, 0 + 8f22: b861 st.w r3, (r14, 0x4) + 8f24: b862 st.w r3, (r14, 0x8) + 8f26: 0807 bt 0x8f34 // 8f34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not Tack "); + 8f28: 3000 movi r0, 0 + 8f2a: 033c lrw r1, 0xb499 // 9134 + 8f2c: e3fff584 bsr 0x7a34 // 7a34 + return 0x02; + 8f30: 3002 movi r0, 2 + 8f32: 07f1 br 0x8f14 // 8f14 + memset(u_det.RevBuff,0,REV_BUFFER_SIZE); + 8f34: 301e movi r0, 30 + 8f36: 321e movi r2, 30 + 8f38: 3100 movi r1, 0 + 8f3a: 6014 addu r0, r5 + 8f3c: e3ffdd0e bsr 0x4958 // 4958 <__memset_fast> + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f40: 8d40 ld.h r2, (r5, 0x0) + 8f42: 7589 zexth r6, r2 + u_det.RevLen += 2; + 8f44: 3420 movi r4, 32 + 8f46: 6114 addu r4, r5 + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f48: ad4f st.h r2, (r5, 0x1e) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f4a: 4ec8 lsri r6, r6, 8 + 8f4c: 327f movi r2, 127 + u_det.RevLen += 2; + 8f4e: 3302 movi r3, 2 + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f50: 6988 and r6, r2 + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f52: 9823 ld.w r1, (r14, 0xc) + 8f54: 6c9f mov r2, r7 + 8f56: 6c13 mov r0, r4 + u_det.RevLen += 2; + 8f58: a47d st.b r3, (r4, 0x1d) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f5a: a5df st.b r6, (r5, 0x1f) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f5c: e3ffdd42 bsr 0x49e0 // 49e0 <__memcpy_fast> + u_det.RevLen += RecvLen; + 8f60: 843d ld.b r1, (r4, 0x1d) + 8f62: 605c addu r1, r7 + 8f64: 7444 zextb r1, r1 + 8f66: a43d st.b r1, (r4, 0x1d) + if(HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1) != RecvData[RecvLen-1]) + 8f68: 301e movi r0, 30 + 8f6a: 2900 subi r1, 1 + 8f6c: 7445 zexth r1, r1 + 8f6e: 6014 addu r0, r5 + 8f70: e3fffca8 bsr 0x88c0 // 88c0 + 8f74: 9863 ld.w r3, (r14, 0xc) + 8f76: 60dc addu r3, r7 + 8f78: 6dcf mov r7, r3 + 8f7a: 2f00 subi r7, 1 + 8f7c: 8760 ld.b r3, (r7, 0x0) + 8f7e: 64c2 cmpne r0, r3 + 8f80: 6c83 mov r2, r0 + 8f82: 6dd3 mov r7, r4 + 8f84: 0c12 bf 0x8fa8 // 8fa8 + Dbg_Println(DBG_BIT_SYS_STATUS,"CRC Err:%x,%x,CMD:%02x",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + 8f86: 132d lrw r1, 0xb4a3 // 9138 + 8f88: 3000 movi r0, 0 + 8f8a: b8c0 st.w r6, (r14, 0x0) + 8f8c: e3fff554 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); + 8f90: 6c97 mov r2, r5 + 8f92: 847d ld.b r3, (r4, 0x1d) + 8f94: 221d addi r2, 30 + 8f96: 3002 movi r0, 2 + 8f98: 1329 lrw r1, 0xb4ba // 913c + 8f9a: e3fff61f bsr 0x7bd8 // 7bd8 + u_det.RevNum = REV_ERR; + 8f9e: 9861 ld.w r3, (r14, 0x4) + 8fa0: 3202 movi r2, 2 + 8fa2: a342 st.b r2, (r3, 0x2) + return 0x04; + 8fa4: 3004 movi r0, 4 + 8fa6: 07b7 br 0x8f14 // 8f14 + u_det.RevNum = REV_OK; + 8fa8: 9862 ld.w r3, (r14, 0x8) + 8faa: 3201 movi r2, 1 + 8fac: a342 st.b r2, (r3, 0x2) + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW8110_Recv CMD:%02X",u_det.RevBuff[1]); + 8fae: 3002 movi r0, 2 + 8fb0: 6c9b mov r2, r6 + 8fb2: 1324 lrw r1, 0xb4be // 9140 + 8fb4: e3fff540 bsr 0x7a34 // 7a34 + switch(u_det.RevBuff[1]) + 8fb8: 857f ld.b r3, (r5, 0x1f) + 8fba: 316f movi r1, 111 + 8fbc: 644e cmpne r3, r1 + 8fbe: 1342 lrw r2, 0x20000538 // 9144 + 8fc0: 0c6b bf 0x9096 // 9096 + 8fc2: 64c4 cmphs r1, r3 + 8fc4: 0c28 bf 0x9014 // 9014 + 8fc6: 3124 movi r1, 36 + 8fc8: 644e cmpne r3, r1 + 8fca: 0c8c bf 0x90e2 // 90e2 + 8fcc: 64c4 cmphs r1, r3 + 8fce: 0c0f bf 0x8fec // 8fec + 8fd0: 3b41 cmpnei r3, 1 + 8fd2: 0c52 bf 0x9076 // 9076 + 8fd4: 3b40 cmpnei r3, 0 + 8fd6: 0c40 bf 0x9056 // 9056 + 8fd8: 3b53 cmpnei r3, 19 + 8fda: 0c56 bf 0x9086 // 9086 + g_CalFactor.U16_HFConst_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 8fdc: 8760 ld.b r3, (r7, 0x0) + 8fde: 4368 lsli r3, r3, 8 + 8fe0: 8721 ld.b r1, (r7, 0x1) + 8fe2: 60c4 addu r3, r1 + 8fe4: b26e st.w r3, (r2, 0x38) + g_Eng.hfcount = g_CalFactor.U16_HFConst_RegData; + 8fe6: 1259 lrw r2, 0x20000574 // 9148 + 8fe8: aa6e st.h r3, (r2, 0x1c) + 8fea: 0442 br 0x906e // 906e + switch(u_det.RevBuff[1]) + 8fec: 3128 movi r1, 40 + 8fee: 644e cmpne r3, r1 + 8ff0: 0c84 bf 0x90f8 // 90f8 + 8ff2: 312c movi r1, 44 + 8ff4: 644e cmpne r3, r1 + 8ff6: 0c8c bf 0x910e // 910e + 8ff8: 3126 movi r1, 38 + 8ffa: 644e cmpne r3, r1 + 8ffc: 0bf0 bt 0x8fdc // 8fdc + g_CalFactor.U24_Voltage_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 8ffe: 8400 ld.b r0, (r4, 0x0) + 9000: 8461 ld.b r3, (r4, 0x1) + 9002: 4368 lsli r3, r3, 8 + 9004: 4010 lsli r0, r0, 16 + 9006: 600c addu r0, r3 + 9008: 8462 ld.b r3, (r4, 0x2) + 900a: 600c addu r0, r3 + 900c: b207 st.w r0, (r2, 0x1c) + HLW8110_Convert_VoltageReg_Value(g_CalFactor.U24_Voltage_RegData); + 900e: e3fffead bsr 0x8d68 // 8d68 + 9012: 042e br 0x906e // 906e + switch(u_det.RevBuff[1]) + 9014: 3173 movi r1, 115 + 9016: 644e cmpne r3, r1 + 9018: 0c4d bf 0x90b2 // 90b2 + 901a: 64c4 cmphs r1, r3 + 901c: 0c0c bf 0x9034 // 9034 + 901e: 3571 movi r5, 113 + 9020: 654e cmpne r3, r5 + 9022: 8420 ld.b r1, (r4, 0x0) + 9024: 8401 ld.b r0, (r4, 0x1) + 9026: 0c42 bf 0x90aa // 90aa + 9028: 64d4 cmphs r5, r3 + 902a: 083c bt 0x90a2 // 90a2 + g_CalFactor.U16_RMSUC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 902c: 4128 lsli r1, r1, 8 + 902e: 6040 addu r1, r0 + 9030: aa22 st.h r1, (r2, 0x4) + 9032: 041e br 0x906e // 906e + switch(u_det.RevBuff[1]) + 9034: 3175 movi r1, 117 + 9036: 644e cmpne r3, r1 + 9038: 0c49 bf 0x90ca // 90ca + 903a: 644c cmphs r3, r1 + 903c: 0c41 bf 0x90be // 90be + 903e: 3176 movi r1, 118 + 9040: 644e cmpne r3, r1 + 9042: 0c4a bf 0x90d6 // 90d6 + 9044: 3177 movi r1, 119 + 9046: 644e cmpne r3, r1 + 9048: 0bca bt 0x8fdc // 8fdc + g_CalFactor.U16_EnergyBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 904a: 8460 ld.b r3, (r4, 0x0) + 904c: 4368 lsli r3, r3, 8 + 904e: 8421 ld.b r1, (r4, 0x1) + 9050: 60c4 addu r3, r1 + 9052: aa67 st.h r3, (r2, 0xe) + 9054: 040d br 0x906e // 906e + g_CalFactor.U16_Check_SysconReg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9056: 8460 ld.b r3, (r4, 0x0) + 9058: 4368 lsli r3, r3, 8 + 905a: 8421 ld.b r1, (r4, 0x1) + 905c: 60c4 addu r3, r1 + 905e: 74cd zexth r3, r3 + 9060: aa6a st.h r3, (r2, 0x14) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 9062: 115b lrw r2, 0xa04 // 914c + 9064: 648e cmpne r3, r2 + u_det.RevNum = REV_OK; + 9066: 9862 ld.w r3, (r14, 0x8) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 9068: 0805 bt 0x9072 // 9072 + u_det.RevNum = REV_OK; + 906a: 3201 movi r2, 1 + u_det.RevNum = REV_ERR; + 906c: a342 st.b r2, (r3, 0x2) + return 0x00; + 906e: 3000 movi r0, 0 + break; + 9070: 0752 br 0x8f14 // 8f14 + u_det.RevNum = REV_ERR; + 9072: 3202 movi r2, 2 + 9074: 07fc br 0x906c // 906c + g_CalFactor.U16_Check_Emucon1Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9076: 8460 ld.b r3, (r4, 0x0) + 9078: 4368 lsli r3, r3, 8 + 907a: 8421 ld.b r1, (r4, 0x1) + 907c: 60c4 addu r3, r1 + 907e: 74cd zexth r3, r3 + 9080: aa6b st.h r3, (r2, 0x16) + if(g_CalFactor.U16_Check_Emucon1Reg_Data == EMUCON1_DEFAULT){ + 9082: 3b41 cmpnei r3, 1 + 9084: 07f1 br 0x9066 // 9066 + g_CalFactor.U16_Check_Emucon2Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9086: 8460 ld.b r3, (r4, 0x0) + 9088: 4368 lsli r3, r3, 8 + 908a: 8421 ld.b r1, (r4, 0x1) + 908c: 60c4 addu r3, r1 + 908e: 74cd zexth r3, r3 + 9090: aa6c st.h r3, (r2, 0x18) + if(g_CalFactor.U16_Check_Emucon2Reg_Data == EMUCON2_DEFAULT){ + 9092: 1150 lrw r2, 0x465 // 9150 + 9094: 07e8 br 0x9064 // 9064 + g_CalFactor.U16_CheckSUM_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9096: 8460 ld.b r3, (r4, 0x0) + 9098: 4368 lsli r3, r3, 8 + 909a: 8421 ld.b r1, (r4, 0x1) + 909c: 60c4 addu r3, r1 + 909e: aa68 st.h r3, (r2, 0x10) + 90a0: 07e7 br 0x906e // 906e + g_CalFactor.U16_RMSIAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90a2: 4128 lsli r1, r1, 8 + 90a4: 6040 addu r1, r0 + 90a6: aa20 st.h r1, (r2, 0x0) + 90a8: 07e3 br 0x906e // 906e + g_CalFactor.U16_RMSIBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90aa: 4128 lsli r1, r1, 8 + 90ac: 6040 addu r1, r0 + 90ae: aa21 st.h r1, (r2, 0x2) + 90b0: 07df br 0x906e // 906e + g_CalFactor.U16_PowerPAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90b2: 8460 ld.b r3, (r4, 0x0) + 90b4: 4368 lsli r3, r3, 8 + 90b6: 8421 ld.b r1, (r4, 0x1) + 90b8: 60c4 addu r3, r1 + 90ba: aa63 st.h r3, (r2, 0x6) + 90bc: 07d9 br 0x906e // 906e + g_CalFactor.U16_PowerPBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90be: 8460 ld.b r3, (r4, 0x0) + 90c0: 4368 lsli r3, r3, 8 + 90c2: 8421 ld.b r1, (r4, 0x1) + 90c4: 60c4 addu r3, r1 + 90c6: aa64 st.h r3, (r2, 0x8) + 90c8: 07d3 br 0x906e // 906e + g_CalFactor.U16_PowerSC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90ca: 8460 ld.b r3, (r4, 0x0) + 90cc: 4368 lsli r3, r3, 8 + 90ce: 8421 ld.b r1, (r4, 0x1) + 90d0: 60c4 addu r3, r1 + 90d2: aa65 st.h r3, (r2, 0xa) + 90d4: 07cd br 0x906e // 906e + g_CalFactor.U16_EnergyAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90d6: 8460 ld.b r3, (r4, 0x0) + 90d8: 4368 lsli r3, r3, 8 + 90da: 8421 ld.b r1, (r4, 0x1) + 90dc: 60c4 addu r3, r1 + 90de: aa66 st.h r3, (r2, 0xc) + 90e0: 07c7 br 0x906e // 906e + g_CalFactor.U24_CurrentA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 90e2: 8400 ld.b r0, (r4, 0x0) + 90e4: 8461 ld.b r3, (r4, 0x1) + 90e6: 4368 lsli r3, r3, 8 + 90e8: 4010 lsli r0, r0, 16 + 90ea: 600c addu r0, r3 + 90ec: 8462 ld.b r3, (r4, 0x2) + 90ee: 600c addu r0, r3 + 90f0: b208 st.w r0, (r2, 0x20) + HLW8110_Convert_CurrentRegA_Value(g_CalFactor.U24_CurrentA_RegData); + 90f2: e3fffdf5 bsr 0x8cdc // 8cdc + 90f6: 07bc br 0x906e // 906e + g_CalFactor.U24_EnergyA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 90f8: 8400 ld.b r0, (r4, 0x0) + 90fa: 8461 ld.b r3, (r4, 0x1) + 90fc: 4368 lsli r3, r3, 8 + 90fe: 4010 lsli r0, r0, 16 + 9100: 600c addu r0, r3 + 9102: 8462 ld.b r3, (r4, 0x2) + 9104: 600c addu r0, r3 + 9106: b20c st.w r0, (r2, 0x30) + HLW8110_Convert_EnergyReg_Value(g_CalFactor.U24_EnergyA_RegData); + 9108: e3fffeac bsr 0x8e60 // 8e60 + 910c: 07b1 br 0x906e // 906e + g_CalFactor.U32_PowerA_RegData = (u_det.RevBuff[2]<<24) + (u_det.RevBuff[3]<<16) + (u_det.RevBuff[4]<<8) + u_det.RevBuff[5]; + 910e: 8400 ld.b r0, (r4, 0x0) + 9110: 8461 ld.b r3, (r4, 0x1) + 9112: 4370 lsli r3, r3, 16 + 9114: 4018 lsli r0, r0, 24 + 9116: 600c addu r0, r3 + 9118: 8462 ld.b r3, (r4, 0x2) + 911a: 4368 lsli r3, r3, 8 + 911c: 600c addu r0, r3 + 911e: 8463 ld.b r3, (r4, 0x3) + 9120: 600c addu r0, r3 + 9122: b20a st.w r0, (r2, 0x28) + HLW8110_Convert_PowerReg_Value(g_CalFactor.U32_PowerA_RegData); + 9124: e3fffe60 bsr 0x8de4 // 8de4 + 9128: 07a3 br 0x906e // 906e + 912a: 0000 bkpt + 912c: 0000b48e .long 0x0000b48e + 9130: 200004f0 .long 0x200004f0 + 9134: 0000b499 .long 0x0000b499 + 9138: 0000b4a3 .long 0x0000b4a3 + 913c: 0000b4ba .long 0x0000b4ba + 9140: 0000b4be .long 0x0000b4be + 9144: 20000538 .long 0x20000538 + 9148: 20000574 .long 0x20000574 + 914c: 00000a04 .long 0x00000a04 + 9150: 00000465 .long 0x00000465 + +Disassembly of section .text.HLW8110_SysPara_Check: + +00009154 : + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9154: 8841 ld.h r2, (r0, 0x2) + 9156: 8860 ld.h r3, (r0, 0x0) + 9158: 60c8 addu r3, r2 + 915a: 8842 ld.h r2, (r0, 0x4) + 915c: 60c8 addu r3, r2 + 915e: 8843 ld.h r2, (r0, 0x6) + 9160: 60c8 addu r3, r2 + g_CC->U16_PowerPAC_RegData + g_CC->U16_PowerPBC_RegData + g_CC->U16_PowerSC_RegData + + 9162: 8844 ld.h r2, (r0, 0x8) + 9164: 60c8 addu r3, r2 + 9166: 8845 ld.h r2, (r0, 0xa) + 9168: 60c8 addu r3, r2 + 916a: 8846 ld.h r2, (r0, 0xc) + 916c: 60c8 addu r3, r2 + g_CC->U16_EnergyAC_RegData + g_CC->U16_EnergyBC_RegData ); + 916e: 8847 ld.h r2, (r0, 0xe) + 9170: 60c8 addu r3, r2 + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9172: 3000 movi r0, 0 + 9174: 600e subu r0, r3 + return CRC_p; + 9176: 7401 zexth r0, r0 +} + 9178: 783c jmp r15 + +Disassembly of section .text.HLW8110_ReadSysPara: + +0000917c : +{ + 917c: 14d3 push r4-r6, r15 + switch(g_Eng.rWCh_Num) + 917e: 1379 lrw r3, 0x20000574 // 9360 + 9180: 8301 ld.b r0, (r3, 0x1) + 9182: 3808 cmphsi r0, 9 + 9184: 6d0f mov r4, r3 + 9186: 08e7 bt 0x9354 // 9354 + 9188: e3ffd1ba bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 918c: 4d371f05 .long 0x4d371f05 + 9190: a58f7963 .long 0xa58f7963 + 9194: 00bb .short 0x00bb + if(Get_SendState() == SEND_STATE_SUCC) + 9196: e3fffca3 bsr 0x8adc // 8adc + 919a: 3841 cmpnei r0, 1 + 919c: 0804 bt 0x91a4 // 91a4 + g_Eng.rWCh_Num = 0x01; + 919e: 3301 movi r3, 1 + g_Eng.rWCh_Num = 0x02; + 91a0: a461 st.b r3, (r4, 0x1) +} + 91a2: 1493 pop r4-r6, r15 + else if(Get_SendState() == SEND_STATE_FAIL) + 91a4: e3fffc9c bsr 0x8adc // 8adc + 91a8: 3842 cmpnei r0, 2 + 91aa: 0806 bt 0x91b6 // 91b6 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IAC_ADDR ERR!"); + 91ac: 132e lrw r1, 0xb4d4 // 9364 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 91ae: 3000 movi r0, 0 + 91b0: e3fff442 bsr 0x7a34 // 7a34 + break; + 91b4: 07f7 br 0x91a2 // 91a2 + if(u_det.WR_flag == SEND_NONE) + 91b6: 136d lrw r3, 0x20000530 // 9368 + 91b8: 8360 ld.b r3, (r3, 0x0) + 91ba: 3b40 cmpnei r3, 0 + 91bc: 0bf3 bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IAC_ADDR,0,0); + 91be: 3200 movi r2, 0 + 91c0: 3100 movi r1, 0 + 91c2: 3070 movi r0, 112 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 91c4: e3fffbee bsr 0x89a0 // 89a0 + 91c8: 07ed br 0x91a2 // 91a2 + if(Get_SendState() == SEND_STATE_SUCC) + 91ca: e3fffc89 bsr 0x8adc // 8adc + 91ce: 3841 cmpnei r0, 1 + 91d0: 0803 bt 0x91d6 // 91d6 + g_Eng.rWCh_Num = 0x02; + 91d2: 3302 movi r3, 2 + 91d4: 07e6 br 0x91a0 // 91a0 + else if(Get_SendState() == SEND_STATE_FAIL) + 91d6: e3fffc83 bsr 0x8adc // 8adc + 91da: 3842 cmpnei r0, 2 + 91dc: 0807 bt 0x91ea // 91ea + g_Eng.rWCh_Num = 0x00; + 91de: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 91e0: 1323 lrw r1, 0xb4ea // 936c + 91e2: 3000 movi r0, 0 + g_Eng.rWCh_Num = 0x00; + 91e4: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 91e6: e3fff427 bsr 0x7a34 // 7a34 + if(u_det.WR_flag == SEND_NONE) + 91ea: 1360 lrw r3, 0x20000530 // 9368 + 91ec: 8360 ld.b r3, (r3, 0x0) + 91ee: 3b40 cmpnei r3, 0 + 91f0: 0bd9 bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IBC_ADDR,0,0); + 91f2: 3200 movi r2, 0 + 91f4: 3100 movi r1, 0 + 91f6: 3071 movi r0, 113 + 91f8: 07e6 br 0x91c4 // 91c4 + if(Get_SendState() == SEND_STATE_SUCC) + 91fa: e3fffc71 bsr 0x8adc // 8adc + 91fe: 3841 cmpnei r0, 1 + 9200: 0803 bt 0x9206 // 9206 + g_Eng.rWCh_Num = 0x03; + 9202: 3303 movi r3, 3 + 9204: 07ce br 0x91a0 // 91a0 + else if(Get_SendState() == SEND_STATE_FAIL) + 9206: e3fffc6b bsr 0x8adc // 8adc + 920a: 3842 cmpnei r0, 2 + 920c: 0805 bt 0x9216 // 9216 + g_Eng.rWCh_Num = 0x00; + 920e: 3300 movi r3, 0 + 9210: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_UC_ADDR ERR!"); + 9212: 1238 lrw r1, 0xb500 // 9370 + 9214: 07cd br 0x91ae // 91ae + if(u_det.WR_flag == SEND_NONE) + 9216: 1275 lrw r3, 0x20000530 // 9368 + 9218: 8360 ld.b r3, (r3, 0x0) + 921a: 3b40 cmpnei r3, 0 + 921c: 0bc3 bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_UC_ADDR,0,0); + 921e: 3200 movi r2, 0 + 9220: 3100 movi r1, 0 + 9222: 3072 movi r0, 114 + 9224: 07d0 br 0x91c4 // 91c4 + if(Get_SendState() == SEND_STATE_SUCC) + 9226: e3fffc5b bsr 0x8adc // 8adc + 922a: 3841 cmpnei r0, 1 + 922c: 0803 bt 0x9232 // 9232 + g_Eng.rWCh_Num = 0x04; + 922e: 3304 movi r3, 4 + 9230: 07b8 br 0x91a0 // 91a0 + else if(Get_SendState() == SEND_STATE_FAIL) + 9232: e3fffc55 bsr 0x8adc // 8adc + 9236: 3842 cmpnei r0, 2 + 9238: 0805 bt 0x9242 // 9242 + g_Eng.rWCh_Num = 0x00; + 923a: 3300 movi r3, 0 + 923c: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PAC_ADDR ERR!"); + 923e: 122e lrw r1, 0xb515 // 9374 + 9240: 07b7 br 0x91ae // 91ae + if(u_det.WR_flag == SEND_NONE) + 9242: 126a lrw r3, 0x20000530 // 9368 + 9244: 8360 ld.b r3, (r3, 0x0) + 9246: 3b40 cmpnei r3, 0 + 9248: 0bad bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PAC_ADDR,0,0); + 924a: 3200 movi r2, 0 + 924c: 3100 movi r1, 0 + 924e: 3073 movi r0, 115 + 9250: 07ba br 0x91c4 // 91c4 + if(Get_SendState() == SEND_STATE_SUCC) + 9252: e3fffc45 bsr 0x8adc // 8adc + 9256: 3841 cmpnei r0, 1 + 9258: 0803 bt 0x925e // 925e + g_Eng.rWCh_Num = 0x05; + 925a: 3305 movi r3, 5 + 925c: 07a2 br 0x91a0 // 91a0 + else if(Get_SendState() == SEND_STATE_FAIL) + 925e: e3fffc3f bsr 0x8adc // 8adc + 9262: 3842 cmpnei r0, 2 + 9264: 0805 bt 0x926e // 926e + g_Eng.rWCh_Num = 0x00; + 9266: 3300 movi r3, 0 + 9268: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PBC_ADDR ERR!"); + 926a: 1224 lrw r1, 0xb52d // 9378 + 926c: 07a1 br 0x91ae // 91ae + if(u_det.WR_flag == SEND_NONE) + 926e: 117f lrw r3, 0x20000530 // 9368 + 9270: 8360 ld.b r3, (r3, 0x0) + 9272: 3b40 cmpnei r3, 0 + 9274: 0b97 bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PBC_ADDR,0,0); + 9276: 3200 movi r2, 0 + 9278: 3100 movi r1, 0 + 927a: 3074 movi r0, 116 + 927c: 07a4 br 0x91c4 // 91c4 + if(Get_SendState() == SEND_STATE_SUCC) + 927e: e3fffc2f bsr 0x8adc // 8adc + 9282: 3841 cmpnei r0, 1 + 9284: 0803 bt 0x928a // 928a + g_Eng.rWCh_Num = 0x06; + 9286: 3306 movi r3, 6 + 9288: 078c br 0x91a0 // 91a0 + else if(Get_SendState() == SEND_STATE_FAIL) + 928a: e3fffc29 bsr 0x8adc // 8adc + 928e: 3842 cmpnei r0, 2 + 9290: 0805 bt 0x929a // 929a + g_Eng.rWCh_Num = 0x00; + 9292: 3300 movi r3, 0 + 9294: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_SC_ADDR ERR!"); + 9296: 113a lrw r1, 0xb545 // 937c + 9298: 078b br 0x91ae // 91ae + if(u_det.WR_flag == SEND_NONE) + 929a: 1174 lrw r3, 0x20000530 // 9368 + 929c: 8360 ld.b r3, (r3, 0x0) + 929e: 3b40 cmpnei r3, 0 + 92a0: 0b81 bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_SC_ADDR,0,0); + 92a2: 3200 movi r2, 0 + 92a4: 3100 movi r1, 0 + 92a6: 3075 movi r0, 117 + 92a8: 078e br 0x91c4 // 91c4 + if(Get_SendState() == SEND_STATE_SUCC) + 92aa: e3fffc19 bsr 0x8adc // 8adc + 92ae: 3841 cmpnei r0, 1 + 92b0: 0803 bt 0x92b6 // 92b6 + g_Eng.rWCh_Num = 0x07; + 92b2: 3307 movi r3, 7 + 92b4: 0776 br 0x91a0 // 91a0 + else if(Get_SendState() == SEND_STATE_FAIL) + 92b6: e3fffc13 bsr 0x8adc // 8adc + 92ba: 3842 cmpnei r0, 2 + 92bc: 0805 bt 0x92c6 // 92c6 + g_Eng.rWCh_Num = 0x00; + 92be: 3300 movi r3, 0 + 92c0: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_AC_ADDR ERR!"); + 92c2: 1130 lrw r1, 0xb55c // 9380 + 92c4: 0775 br 0x91ae // 91ae + if(u_det.WR_flag == SEND_NONE) + 92c6: 1169 lrw r3, 0x20000530 // 9368 + 92c8: 8360 ld.b r3, (r3, 0x0) + 92ca: 3b40 cmpnei r3, 0 + 92cc: 0b6b bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_AC_ADDR,0,0); + 92ce: 3200 movi r2, 0 + 92d0: 3100 movi r1, 0 + 92d2: 3076 movi r0, 118 + 92d4: 0778 br 0x91c4 // 91c4 + if(Get_SendState() == SEND_STATE_SUCC) + 92d6: e3fffc03 bsr 0x8adc // 8adc + 92da: 3841 cmpnei r0, 1 + 92dc: 0803 bt 0x92e2 // 92e2 + g_Eng.rWCh_Num = 0x08; + 92de: 3308 movi r3, 8 + 92e0: 0760 br 0x91a0 // 91a0 + else if(Get_SendState() == SEND_STATE_FAIL) + 92e2: e3fffbfd bsr 0x8adc // 8adc + 92e6: 3842 cmpnei r0, 2 + 92e8: 0805 bt 0x92f2 // 92f2 + g_Eng.rWCh_Num = 0x00; + 92ea: 3300 movi r3, 0 + 92ec: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_BC_ADDR ERR!"); + 92ee: 1126 lrw r1, 0xb574 // 9384 + 92f0: 075f br 0x91ae // 91ae + if(u_det.WR_flag == SEND_NONE) + 92f2: 107e lrw r3, 0x20000530 // 9368 + 92f4: 8360 ld.b r3, (r3, 0x0) + 92f6: 3b40 cmpnei r3, 0 + 92f8: 0b55 bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_BC_ADDR,0,0); + 92fa: 3200 movi r2, 0 + 92fc: 3100 movi r1, 0 + 92fe: 3077 movi r0, 119 + 9300: 0762 br 0x91c4 // 91c4 + if(Get_SendState() == SEND_STATE_SUCC) + 9302: e3fffbed bsr 0x8adc // 8adc + 9306: 3841 cmpnei r0, 1 + 9308: 0818 bt 0x9338 // 9338 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 930a: 11a0 lrw r5, 0x20000538 // 9388 + 930c: 6c17 mov r0, r5 + 930e: e3ffff23 bsr 0x9154 // 9154 + 9312: 8dc8 ld.h r6, (r5, 0x10) + g_Eng.rWCh_Num = 0x00; + 9314: 3300 movi r3, 0 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 9316: 641a cmpne r6, r0 + g_Eng.rWCh_Num = 0x00; + 9318: a461 st.b r3, (r4, 0x1) + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 931a: 0805 bt 0x9324 // 9324 + g_Eng.Tack_State = 0x02; + 931c: 3302 movi r3, 2 + 931e: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK SUCC!"); + 9320: 103b lrw r1, 0xb58c // 938c + 9322: 0746 br 0x91ae // 91ae + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK ERR:%x,%x",g_CalFactor.U16_CheckSUM_RegData,HLW8110_SysPara_Check(&g_CalFactor)); + 9324: 6c17 mov r0, r5 + 9326: e3ffff17 bsr 0x9154 // 9154 + 932a: 6cc3 mov r3, r0 + 932c: 6c9b mov r2, r6 + 932e: 1039 lrw r1, 0xb59c // 9390 + 9330: 3000 movi r0, 0 + 9332: e3fff381 bsr 0x7a34 // 7a34 + break; + 9336: 0736 br 0x91a2 // 91a2 + else if(Get_SendState() == SEND_STATE_FAIL) + 9338: e3fffbd2 bsr 0x8adc // 8adc + 933c: 3842 cmpnei r0, 2 + 933e: 0803 bt 0x9344 // 9344 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 9340: 1035 lrw r1, 0xb5b0 // 9394 + 9342: 0736 br 0x91ae // 91ae + if(u_det.WR_flag == SEND_NONE) + 9344: 1069 lrw r3, 0x20000530 // 9368 + 9346: 8360 ld.b r3, (r3, 0x0) + 9348: 3b40 cmpnei r3, 0 + 934a: 0b2c bt 0x91a2 // 91a2 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 934c: 3200 movi r2, 0 + 934e: 3100 movi r1, 0 + 9350: 306f movi r0, 111 + 9352: 0739 br 0x91c4 // 91c4 + g_Eng.rWCh_Num = 0x00; + 9354: 3200 movi r2, 0 + 9356: a341 st.b r2, (r3, 0x1) + g_Eng.Tack_State = 0x01; + 9358: 3201 movi r2, 1 + 935a: a340 st.b r2, (r3, 0x0) +} + 935c: 0723 br 0x91a2 // 91a2 + 935e: 0000 bkpt + 9360: 20000574 .long 0x20000574 + 9364: 0000b4d4 .long 0x0000b4d4 + 9368: 20000530 .long 0x20000530 + 936c: 0000b4ea .long 0x0000b4ea + 9370: 0000b500 .long 0x0000b500 + 9374: 0000b515 .long 0x0000b515 + 9378: 0000b52d .long 0x0000b52d + 937c: 0000b545 .long 0x0000b545 + 9380: 0000b55c .long 0x0000b55c + 9384: 0000b574 .long 0x0000b574 + 9388: 20000538 .long 0x20000538 + 938c: 0000b58c .long 0x0000b58c + 9390: 0000b59c .long 0x0000b59c + 9394: 0000b5b0 .long 0x0000b5b0 + +Disassembly of section .text.HLW8110_ReadSysCtrlPara: + +00009398 : +{ + 9398: 14d1 push r4, r15 + switch(g_Eng.rWSysCtrl) + 939a: 118b lrw r4, 0x20000574 // 9444 + 939c: 8462 ld.b r3, (r4, 0x2) + 939e: 3b41 cmpnei r3, 1 + 93a0: 0c23 bf 0x93e6 // 93e6 + 93a2: 3b40 cmpnei r3, 0 + 93a4: 0c07 bf 0x93b2 // 93b2 + 93a6: 3b42 cmpnei r3, 2 + 93a8: 0c35 bf 0x9412 // 9412 + g_Eng.rWSysCtrl = 0x00; + 93aa: 3300 movi r3, 0 + 93ac: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x02; + 93ae: 3302 movi r3, 2 + 93b0: 0438 br 0x9420 // 9420 + if(Get_SendState() == SEND_STATE_SUCC) + 93b2: e3fffb95 bsr 0x8adc // 8adc + 93b6: 3841 cmpnei r0, 1 + 93b8: 0804 bt 0x93c0 // 93c0 + g_Eng.rWSysCtrl = 0x01; + 93ba: 3301 movi r3, 1 + g_Eng.rWSysCtrl = 0x02; + 93bc: a462 st.b r3, (r4, 0x2) +} + 93be: 1491 pop r4, r15 + else if(Get_SendState() == SEND_STATE_FAIL) + 93c0: e3fffb8e bsr 0x8adc // 8adc + 93c4: 3842 cmpnei r0, 2 + 93c6: 0806 bt 0x93d2 // 93d2 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_SYSCON_ADDR ERR!"); + 93c8: 1120 lrw r1, 0xb5c7 // 9448 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 93ca: 3000 movi r0, 0 + 93cc: e3fff334 bsr 0x7a34 // 7a34 + break; + 93d0: 07f7 br 0x93be // 93be + if(u_det.WR_flag == SEND_NONE) + 93d2: 107f lrw r3, 0x20000530 // 944c + 93d4: 8360 ld.b r3, (r3, 0x0) + 93d6: 3b40 cmpnei r3, 0 + 93d8: 0bf3 bt 0x93be // 93be + BLV_HLW8110_RWCMD_Packaging(REG_SYSCON_ADDR,2,SYSCON_DEFAULT); + 93da: 105e lrw r2, 0xa04 // 9450 + 93dc: 3102 movi r1, 2 + 93de: 3000 movi r0, 0 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 93e0: e3fffae0 bsr 0x89a0 // 89a0 + 93e4: 07ed br 0x93be // 93be + if(Get_SendState() == SEND_STATE_SUCC) + 93e6: e3fffb7b bsr 0x8adc // 8adc + 93ea: 3841 cmpnei r0, 1 + 93ec: 0803 bt 0x93f2 // 93f2 + g_Eng.rWSysCtrl = 0x02; + 93ee: 3302 movi r3, 2 + 93f0: 07e6 br 0x93bc // 93bc + else if(Get_SendState() == SEND_STATE_FAIL) + 93f2: e3fffb75 bsr 0x8adc // 8adc + 93f6: 3842 cmpnei r0, 2 + 93f8: 0805 bt 0x9402 // 9402 + g_Eng.rWSysCtrl = 0x00; + 93fa: 3300 movi r3, 0 + 93fc: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON1_ADDR ERR!"); + 93fe: 1036 lrw r1, 0xb5dc // 9454 + 9400: 07e5 br 0x93ca // 93ca + if(u_det.WR_flag == SEND_NONE) + 9402: 1073 lrw r3, 0x20000530 // 944c + 9404: 8360 ld.b r3, (r3, 0x0) + 9406: 3b40 cmpnei r3, 0 + 9408: 0bdb bt 0x93be // 93be + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON1_ADDR,2,EMUCON1_DEFAULT); + 940a: 3201 movi r2, 1 + 940c: 3102 movi r1, 2 + 940e: 3001 movi r0, 1 + 9410: 07e8 br 0x93e0 // 93e0 + if(Get_SendState() == SEND_STATE_SUCC) + 9412: e3fffb65 bsr 0x8adc // 8adc + 9416: 3841 cmpnei r0, 1 + 9418: 0806 bt 0x9424 // 9424 + g_Eng.rWSysCtrl = 0x00; + 941a: 3300 movi r3, 0 + 941c: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x03; + 941e: 3303 movi r3, 3 + g_Eng.Tack_State = 0x02; + 9420: a460 st.b r3, (r4, 0x0) +} + 9422: 07ce br 0x93be // 93be + else if(Get_SendState() == SEND_STATE_FAIL) + 9424: e3fffb5c bsr 0x8adc // 8adc + 9428: 3842 cmpnei r0, 2 + 942a: 0805 bt 0x9434 // 9434 + g_Eng.rWSysCtrl = 0x00; + 942c: 3300 movi r3, 0 + 942e: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 9430: 102a lrw r1, 0xb5f2 // 9458 + 9432: 07cc br 0x93ca // 93ca + if(u_det.WR_flag == SEND_NONE) + 9434: 1066 lrw r3, 0x20000530 // 944c + 9436: 8360 ld.b r3, (r3, 0x0) + 9438: 3b40 cmpnei r3, 0 + 943a: 0bc2 bt 0x93be // 93be + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 943c: 1048 lrw r2, 0x465 // 945c + 943e: 3102 movi r1, 2 + 9440: 3013 movi r0, 19 + 9442: 07cf br 0x93e0 // 93e0 + 9444: 20000574 .long 0x20000574 + 9448: 0000b5c7 .long 0x0000b5c7 + 944c: 20000530 .long 0x20000530 + 9450: 00000a04 .long 0x00000a04 + 9454: 0000b5dc .long 0x0000b5dc + 9458: 0000b5f2 .long 0x0000b5f2 + 945c: 00000465 .long 0x00000465 + +Disassembly of section .text.GetEnergy_Para: + +00009460 : +{ + 9460: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_V :%d 10mV",g_Eng.det_V); + 9462: 1092 lrw r4, 0x20000574 // 94a8 + 9464: 1032 lrw r1, 0xb608 // 94ac + 9466: 3000 movi r0, 0 + 9468: 944b ld.w r2, (r4, 0x2c) + 946a: e3fff2e5 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_I :%d 10mA",g_Eng.det_ectA); + 946e: 944c ld.w r2, (r4, 0x30) + 9470: 3000 movi r0, 0 + 9472: 1030 lrw r1, 0xb617 // 94b0 + 9474: e3fff2e0 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_P :%d W",g_Eng.det_powA); + 9478: 944e ld.w r2, (r4, 0x38) + 947a: 3000 movi r0, 0 + 947c: 102e lrw r1, 0xb626 // 94b4 + 947e: e3fff2db bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_E :%d W/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 9482: 9469 ld.w r3, (r4, 0x24) + 9484: 9448 ld.w r2, (r4, 0x20) + 9486: 608e subu r2, r3 + 9488: 102c lrw r1, 0xb632 // 94b8 + 948a: 3000 movi r0, 0 + 948c: e3fff2d4 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_TE:%d W/h",g_Eng.Total_Eng); + 9490: 9448 ld.w r2, (r4, 0x20) + 9492: 3000 movi r0, 0 + 9494: 102a lrw r1, 0xb640 // 94bc + 9496: e3fff2cf bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_HF:%d",g_Eng.hfcount); + 949a: 8c4e ld.h r2, (r4, 0x1c) + 949c: 1029 lrw r1, 0xb64e // 94c0 + 949e: 3000 movi r0, 0 + 94a0: e3fff2ca bsr 0x7a34 // 7a34 +} + 94a4: 1491 pop r4, r15 + 94a6: 0000 bkpt + 94a8: 20000574 .long 0x20000574 + 94ac: 0000b608 .long 0x0000b608 + 94b0: 0000b617 .long 0x0000b617 + 94b4: 0000b626 .long 0x0000b626 + 94b8: 0000b632 .long 0x0000b632 + 94bc: 0000b640 .long 0x0000b640 + 94c0: 0000b64e .long 0x0000b64e + +Disassembly of section .text.HLW8110_ReadValue: + +000094c4 : +{ + 94c4: 14d1 push r4, r15 + switch(g_Eng.rDValue_State) + 94c6: 128c lrw r4, 0x20000574 // 95f4 + 94c8: 8403 ld.b r0, (r4, 0x3) + 94ca: 3805 cmphsi r0, 6 + 94cc: 0816 bt 0x94f8 // 94f8 + 94ce: e3ffd017 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 94d2: 1403 .short 0x1403 + 94d4: 78624c34 .long 0x78624c34 + if(SysTick_1ms - Wait_ReadValue_Tisk >= g_Eng.Collect_Tim) //S读取一次 + 94d8: 1248 lrw r2, 0x200000c4 // 95f8 + 94da: 1229 lrw r1, 0x2000016c // 95fc + 94dc: 9260 ld.w r3, (r2, 0x0) + 94de: 9101 ld.w r0, (r1, 0x4) + 94e0: 60c2 subu r3, r0 + 94e2: 9419 ld.w r0, (r4, 0x64) + 94e4: 640c cmphs r3, r0 + 94e6: 0c09 bf 0x94f8 // 94f8 + Wait_ReadValue_Tisk = SysTick_1ms; + 94e8: 9240 ld.w r2, (r2, 0x0) + 94ea: b141 st.w r2, (r1, 0x4) + g_Eng.rDValue_State = 0x01; + 94ec: 3301 movi r3, 1 + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 94ee: 1225 lrw r1, 0xb658 // 9600 + 94f0: 3000 movi r0, 0 + g_Eng.rDValue_State = 0x01; + 94f2: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 94f4: e3fff2a0 bsr 0x7a34 // 7a34 +} + 94f8: 1491 pop r4, r15 + if(Get_SendState() == SEND_STATE_SUCC) + 94fa: e3fffaf1 bsr 0x8adc // 8adc + 94fe: 3841 cmpnei r0, 1 + 9500: 0804 bt 0x9508 // 9508 + g_Eng.rDValue_State = 0x02; + 9502: 3302 movi r3, 2 + g_Eng.rDValue_State = 0x03; + 9504: a463 st.b r3, (r4, 0x3) + break; + 9506: 07f9 br 0x94f8 // 94f8 + else if(Get_SendState() == SEND_STATE_FAIL) + 9508: e3fffaea bsr 0x8adc // 8adc + 950c: 3842 cmpnei r0, 2 + 950e: 0808 bt 0x951e // 951e + g_Eng.rDValue_State = 0x00; + 9510: 3300 movi r3, 0 + 9512: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIA_ADDR ERR!"); + 9514: 113c lrw r1, 0xb665 // 9604 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 9516: 3000 movi r0, 0 + 9518: e3fff28e bsr 0x7a34 // 7a34 + break; + 951c: 07ee br 0x94f8 // 94f8 + if(u_det.WR_flag == SEND_NONE) + 951e: 117b lrw r3, 0x20000530 // 9608 + 9520: 8360 ld.b r3, (r3, 0x0) + 9522: 3b40 cmpnei r3, 0 + 9524: 0806 bt 0x9530 // 9530 + BLV_HLW8110_RWCMD_Packaging(REG_RMSIA_ADDR,0,0); + 9526: 3200 movi r2, 0 + 9528: 3100 movi r1, 0 + 952a: 3024 movi r0, 36 + 952c: e3fffa3a bsr 0x89a0 // 89a0 + Wait_ReadValue_Tisk = SysTick_1ms; + 9530: 1172 lrw r3, 0x200000c4 // 95f8 + 9532: 9340 ld.w r2, (r3, 0x0) + 9534: 1172 lrw r3, 0x2000016c // 95fc + 9536: b341 st.w r2, (r3, 0x4) + break; + 9538: 07e0 br 0x94f8 // 94f8 + if(Get_SendState() == SEND_STATE_SUCC) + 953a: e3fffad1 bsr 0x8adc // 8adc + 953e: 3841 cmpnei r0, 1 + 9540: 0803 bt 0x9546 // 9546 + g_Eng.rDValue_State = 0x03; + 9542: 3303 movi r3, 3 + 9544: 07e0 br 0x9504 // 9504 + else if(Get_SendState() == SEND_STATE_FAIL) + 9546: e3fffacb bsr 0x8adc // 8adc + 954a: 3842 cmpnei r0, 2 + 954c: 0805 bt 0x9556 // 9556 + g_Eng.rDValue_State = 0x00; + 954e: 3300 movi r3, 0 + 9550: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSU_ADDR ERR!"); + 9552: 112f lrw r1, 0xb679 // 960c + 9554: 07e1 br 0x9516 // 9516 + if(u_det.WR_flag == SEND_NONE) + 9556: 116d lrw r3, 0x20000530 // 9608 + 9558: 8360 ld.b r3, (r3, 0x0) + 955a: 3b40 cmpnei r3, 0 + 955c: 0bce bt 0x94f8 // 94f8 + BLV_HLW8110_RWCMD_Packaging(REG_RMSU_ADDR,0,0); + 955e: 3200 movi r2, 0 + 9560: 3100 movi r1, 0 + 9562: 3026 movi r0, 38 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 9564: e3fffa1e bsr 0x89a0 // 89a0 +} + 9568: 07c8 br 0x94f8 // 94f8 + if(Get_SendState() == SEND_STATE_SUCC) + 956a: e3fffab9 bsr 0x8adc // 8adc + 956e: 3841 cmpnei r0, 1 + 9570: 0803 bt 0x9576 // 9576 + g_Eng.rDValue_State = 0x04; + 9572: 3304 movi r3, 4 + 9574: 07c8 br 0x9504 // 9504 + else if(Get_SendState() == SEND_STATE_FAIL) + 9576: e3fffab3 bsr 0x8adc // 8adc + 957a: 3842 cmpnei r0, 2 + 957c: 0805 bt 0x9586 // 9586 + g_Eng.rDValue_State = 0x00; + 957e: 3300 movi r3, 0 + 9580: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PA_ADDR ERR!"); + 9582: 1124 lrw r1, 0xb68c // 9610 + 9584: 07c9 br 0x9516 // 9516 + if(u_det.WR_flag == SEND_NONE) + 9586: 1161 lrw r3, 0x20000530 // 9608 + 9588: 8360 ld.b r3, (r3, 0x0) + 958a: 3b40 cmpnei r3, 0 + 958c: 0bb6 bt 0x94f8 // 94f8 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PA_ADDR,0,0); + 958e: 3200 movi r2, 0 + 9590: 3100 movi r1, 0 + 9592: 302c movi r0, 44 + 9594: 07e8 br 0x9564 // 9564 + if(Get_SendState() == SEND_STATE_SUCC) + 9596: e3fffaa3 bsr 0x8adc // 8adc + 959a: 3841 cmpnei r0, 1 + 959c: 0803 bt 0x95a2 // 95a2 + g_Eng.rDValue_State = 0x05; + 959e: 3305 movi r3, 5 + 95a0: 07b2 br 0x9504 // 9504 + else if(Get_SendState() == SEND_STATE_FAIL) + 95a2: e3fffa9d bsr 0x8adc // 8adc + 95a6: 3842 cmpnei r0, 2 + 95a8: 0805 bt 0x95b2 // 95b2 + g_Eng.rDValue_State = 0x00; + 95aa: 3300 movi r3, 0 + 95ac: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PA_ADDR ERR!"); + 95ae: 103a lrw r1, 0xb6a3 // 9614 + 95b0: 07b3 br 0x9516 // 9516 + if(u_det.WR_flag == SEND_NONE) + 95b2: 1076 lrw r3, 0x20000530 // 9608 + 95b4: 8360 ld.b r3, (r3, 0x0) + 95b6: 3b40 cmpnei r3, 0 + 95b8: 0ba0 bt 0x94f8 // 94f8 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PA_ADDR,0,0); + 95ba: 3200 movi r2, 0 + 95bc: 3100 movi r1, 0 + 95be: 3028 movi r0, 40 + 95c0: 07d2 br 0x9564 // 9564 + if(Get_SendState() == SEND_STATE_SUCC) + 95c2: e3fffa8d bsr 0x8adc // 8adc + 95c6: 3841 cmpnei r0, 1 + 95c8: 0805 bt 0x95d2 // 95d2 + GetEnergy_Para(); + 95ca: e3ffff4b bsr 0x9460 // 9460 + g_Eng.rDValue_State = 0x00; + 95ce: 3300 movi r3, 0 + 95d0: 079a br 0x9504 // 9504 + else if(Get_SendState() == SEND_STATE_FAIL) + 95d2: e3fffa85 bsr 0x8adc // 8adc + 95d6: 3842 cmpnei r0, 2 + 95d8: 0805 bt 0x95e2 // 95e2 + g_Eng.rDValue_State = 0x00; + 95da: 3300 movi r3, 0 + 95dc: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 95de: 102f lrw r1, 0xb6bb // 9618 + 95e0: 079b br 0x9516 // 9516 + if(u_det.WR_flag == SEND_NONE) + 95e2: 106a lrw r3, 0x20000530 // 9608 + 95e4: 8360 ld.b r3, (r3, 0x0) + 95e6: 3b40 cmpnei r3, 0 + 95e8: 0b88 bt 0x94f8 // 94f8 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 95ea: 3200 movi r2, 0 + 95ec: 3100 movi r1, 0 + 95ee: 3002 movi r0, 2 + 95f0: 07ba br 0x9564 // 9564 + 95f2: 0000 bkpt + 95f4: 20000574 .long 0x20000574 + 95f8: 200000c4 .long 0x200000c4 + 95fc: 2000016c .long 0x2000016c + 9600: 0000b658 .long 0x0000b658 + 9604: 0000b665 .long 0x0000b665 + 9608: 20000530 .long 0x20000530 + 960c: 0000b679 .long 0x0000b679 + 9610: 0000b68c .long 0x0000b68c + 9614: 0000b6a3 .long 0x0000b6a3 + 9618: 0000b6bb .long 0x0000b6bb + +Disassembly of section .text.BLV_HLW8110_Tack: + +0000961c : +{ + 961c: 14d0 push r15 + switch(g_Eng.Tack_State) + 961e: 106e lrw r3, 0x20000574 // 9654 + 9620: 8300 ld.b r0, (r3, 0x0) + 9622: 3803 cmphsi r0, 4 + 9624: 080d bt 0x963e // 963e + 9626: e3ffcf6b bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 962a: 0b02 .short 0x0b02 + 962c: 110e .short 0x110e + if(SysTick_1ms > 2000) + 962e: 104b lrw r2, 0x200000c4 // 9658 + 9630: 9220 ld.w r1, (r2, 0x0) + 9632: 32fa movi r2, 250 + 9634: 4243 lsli r2, r2, 3 + 9636: 6448 cmphs r2, r1 + 9638: 0803 bt 0x963e // 963e + g_Eng.Tack_State = 0x01; + 963a: 3201 movi r2, 1 + 963c: a340 st.b r2, (r3, 0x0) +} + 963e: 1490 pop r15 + HLW8110_ReadSysPara(); + 9640: e3fffd9e bsr 0x917c // 917c + break; + 9644: 07fd br 0x963e // 963e + HLW8110_ReadSysCtrlPara(); + 9646: e3fffea9 bsr 0x9398 // 9398 + break; + 964a: 07fa br 0x963e // 963e + HLW8110_ReadValue(); + 964c: e3ffff3c bsr 0x94c4 // 94c4 +} + 9650: 07f7 br 0x963e // 963e + 9652: 0000 bkpt + 9654: 20000574 .long 0x20000574 + 9658: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BT_Uart_Packing: + +0000965c : +{ + 965c: 14d0 push r15 + if(flag <= 3 ) return; + 965e: 3a03 cmphsi r2, 4 + 9660: 0c03 bf 0x9666 // 9666 + 9662: e3fff89d bsr 0x879c // 879c +} + 9666: 1490 pop r15 + +Disassembly of section .text.BT_UART_Print: + +00009668 : + +//蓝牙打印调试 +void BT_UART_Print(void) +{ + 9668: 14d2 push r4-r5, r15 + static U32_T BT_State = 0x00; + static U32_T BT_WaitOutTim = 0x00; + + for(U8_T i = 10;i > 3;i--) + { + if( (g_Eng.BT_SendFlag & (0x01 << i )) != 0x00 ){ + 966a: 1176 lrw r3, 0x20000574 // 9740 + 966c: 8b8d ld.h r4, (r3, 0x1a) + 966e: 320a movi r2, 10 + 9670: 3001 movi r0, 1 + 9672: 6c53 mov r1, r4 + 9674: 704a asr r1, r2 + 9676: 6840 and r1, r0 + 9678: 3940 cmpnei r1, 0 + 967a: 0c17 bf 0x96a8 // 96a8 + BT_State = i; + 967c: 7488 zextb r2, r2 + 967e: 1132 lrw r1, 0x2000016c // 9744 + 9680: b142 st.w r2, (r1, 0x8) + break; + } + } + + if(SysTick_1ms - g_Eng.BT_Print_Tim >= 100) + 9682: 1132 lrw r1, 0x200000c4 // 9748 + 9684: 9140 ld.w r2, (r1, 0x0) + 9686: 931d ld.w r0, (r3, 0x74) + 9688: 6082 subu r2, r0 + 968a: 3063 movi r0, 99 + 968c: 6480 cmphs r0, r2 + 968e: 081a bt 0x96c2 // 96c2 + { + g_Eng.BT_Print_Tim = SysTick_1ms; + switch(BT_State) + 9690: 11ad lrw r5, 0x2000016c // 9744 + 9692: 9502 ld.w r0, (r5, 0x8) + g_Eng.BT_Print_Tim = SysTick_1ms; + 9694: 9140 ld.w r2, (r1, 0x0) + switch(BT_State) + 9696: 3806 cmphsi r0, 7 + g_Eng.BT_Print_Tim = SysTick_1ms; + 9698: b35d st.w r2, (r3, 0x74) + switch(BT_State) + 969a: 084c bt 0x9732 // 9732 + 969c: e3ffcf30 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 96a0: 21191208 .long 0x21191208 + 96a4: 003c312a .long 0x003c312a + 96a8: 2a00 subi r2, 1 + for(U8_T i = 10;i > 3;i--) + 96aa: 3a43 cmpnei r2, 3 + 96ac: 0be3 bt 0x9672 // 9672 + 96ae: 07ea br 0x9682 // 9682 + { + case 0x00: + BT_State = 0x01; + 96b0: 3101 movi r1, 1 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 96b2: 936b ld.w r3, (r3, 0x2c) + 96b4: 320a movi r2, 10 + BT_State = 0x01; + 96b6: b522 st.w r1, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 96b8: 7c8c mult r2, r3 + 96ba: 1125 lrw r1, 0xb6d1 // 974c + break; + case 0x01: + BT_State = 0x02; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96bc: 3003 movi r0, 3 + 96be: e3fff363 bsr 0x7d84 // 7d84 + BT_State = 0x03; + break; + } + + } +} + 96c2: 1492 pop r4-r5, r15 + BT_State = 0x02; + 96c4: 3102 movi r1, 2 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96c6: 936c ld.w r3, (r3, 0x30) + 96c8: 320a movi r2, 10 + BT_State = 0x02; + 96ca: b522 st.w r1, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96cc: 7c8c mult r2, r3 + 96ce: 1121 lrw r1, 0xb6d8 // 9750 + 96d0: 07f6 br 0x96bc // 96bc + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 96d2: 934e ld.w r2, (r3, 0x38) + 96d4: 33fa movi r3, 250 + BT_State = 0x03; + 96d6: 3103 movi r1, 3 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 96d8: 4362 lsli r3, r3, 2 + BT_State = 0x03; + 96da: b522 st.w r1, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 96dc: 7c8c mult r2, r3 + 96de: 103e lrw r1, 0xb6df // 9754 + 96e0: 07ee br 0x96bc // 96bc + BT_WaitOutTim = SysTick_1ms; + 96e2: 9120 ld.w r1, (r1, 0x0) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 96e4: 9348 ld.w r2, (r3, 0x20) + BT_State = 0x04; + 96e6: 3004 movi r0, 4 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 96e8: 9369 ld.w r3, (r3, 0x24) + BT_WaitOutTim = SysTick_1ms; + 96ea: b523 st.w r1, (r5, 0xc) + BT_State = 0x04; + 96ec: b502 st.w r0, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 96ee: 608e subu r2, r3 + 96f0: 103a lrw r1, 0xb6e7 // 9758 + 96f2: 07e5 br 0x96bc // 96bc + BT_WaitOutTim = SysTick_1ms; + 96f4: 9120 ld.w r1, (r1, 0x0) + BT_State = 0x05; + 96f6: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 96f8: b523 st.w r1, (r5, 0xc) + BT_State = 0x05; + 96fa: b502 st.w r0, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TE:%dW/h",g_Eng.Total_Eng); + 96fc: 9348 ld.w r2, (r3, 0x20) + 96fe: 1038 lrw r1, 0xb6e6 // 975c + 9700: 07de br 0x96bc // 96bc + if(SysTick_1ms - BT_WaitOutTim >= 3000) + 9702: 9503 ld.w r0, (r5, 0xc) + 9704: 9160 ld.w r3, (r1, 0x0) + 9706: 60c2 subu r3, r0 + 9708: 1016 lrw r0, 0xbb7 // 9760 + 970a: 64c0 cmphs r0, r3 + 970c: 0bdb bt 0x96c2 // 96c2 + BT_WaitOutTim = SysTick_1ms; + 970e: 9160 ld.w r3, (r1, 0x0) + 9710: b563 st.w r3, (r5, 0xc) + BT_State = 0x00; + 9712: 3300 movi r3, 0 + 9714: b562 st.w r3, (r5, 0x8) + 9716: 07d6 br 0x96c2 // 96c2 + g_Eng.BT_SendFlag &= (~(0x01 << 6)); + 9718: 3c86 bclri r4, 6 + 971a: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x05; + 971c: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 971e: 9120 ld.w r1, (r1, 0x0) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 9720: 8359 ld.b r2, (r3, 0x19) + 9722: 1071 lrw r3, 0x20000038 // 9764 + BT_State = 0x05; + 9724: b502 st.w r0, (r5, 0x8) + BT_WaitOutTim = SysTick_1ms; + 9726: b523 st.w r1, (r5, 0xc) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 9728: 9300 ld.w r0, (r3, 0x0) + 972a: 1030 lrw r1, 0x20000579 // 9768 + 972c: e3ffe876 bsr 0x6818 // 6818 + 9730: 07c9 br 0x96c2 // 96c2 + g_Eng.BT_SendFlag &= (~0xFFE0); + 9732: 321f movi r2, 31 + 9734: 6908 and r4, r2 + 9736: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x03; + 9738: 3303 movi r3, 3 + 973a: b562 st.w r3, (r5, 0x8) +} + 973c: 07c3 br 0x96c2 // 96c2 + 973e: 0000 bkpt + 9740: 20000574 .long 0x20000574 + 9744: 2000016c .long 0x2000016c + 9748: 200000c4 .long 0x200000c4 + 974c: 0000b6d1 .long 0x0000b6d1 + 9750: 0000b6d8 .long 0x0000b6d8 + 9754: 0000b6df .long 0x0000b6df + 9758: 0000b6e7 .long 0x0000b6e7 + 975c: 0000b6e6 .long 0x0000b6e6 + 9760: 00000bb7 .long 0x00000bb7 + 9764: 20000038 .long 0x20000038 + 9768: 20000579 .long 0x20000579 + +Disassembly of section .text.BLV_Energy_ActiveRep_Packing: + +0000976c : + + + +//电参数主动上报组包 +void BLV_Energy_ActiveRep_Packing(void) +{ + 976c: 14d1 push r4, r15 + 976e: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9770: 1801 addi r0, r14, 4 + 9772: 3232 movi r2, 50 + 9774: 3100 movi r1, 0 + 9776: e3ffd8f1 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 977a: 1175 lrw r3, 0x20000574 // 984c + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; +// g_Eng.det_LastReprot_Eng = g_Eng.det_energyA; +// Dbg_Println(DBG_BIT_SYS_STATUS,"ReportEng1:%d",Energy_Rep); + + g_Eng.SdSN++; + 977c: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 977e: 32fa movi r2, 250 + g_Eng.SdSN++; + 9780: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9782: 932e ld.w r1, (r3, 0x38) + 9784: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 9786: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9788: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 978a: 9309 ld.w r0, (r3, 0x24) + 978c: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 978e: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9790: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9792: 085a bt 0x9846 // 9846 + 9794: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 9796: 3400 movi r4, 0 + 9798: 2c75 subi r4, 118 + 979a: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 979e: 8384 ld.b r4, (r3, 0x4) + 97a0: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 97a4: 3400 movi r4, 0 + 97a6: 2c0b subi r4, 12 + 97a8: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 97ac: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 97b0: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 97b4: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 97b8: 1186 lrw r4, 0x2000047c // 9850 + 97ba: 8486 ld.b r4, (r4, 0x6) + 97bc: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x01; //cmd + 97c0: 3401 movi r4, 1 + 97c2: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 97c6: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 97ca: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 97cc: 936c ld.w r3, (r3, 0x30) + 97ce: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 97d2: 4b68 lsri r3, r3, 8 + 97d4: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 97d8: 4a68 lsri r3, r2, 8 + 97da: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 97de: 4a70 lsri r3, r2, 16 + 97e0: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 97e4: 4868 lsri r3, r0, 8 + 97e6: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 97ea: 4870 lsri r3, r0, 16 + 97ec: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 97f0: 4968 lsri r3, r1, 8 + 97f2: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 97f6: 4970 lsri r3, r1, 16 + 97f8: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 97fc: 4978 lsri r3, r1, 24 + 97fe: dc6e001b st.b r3, (r14, 0x1b) + + send_data[send_len++] = ENERGY_TAIL; + 9802: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 9804: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 9806: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 9808: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 980c: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 9810: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9814: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 9816: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9818: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 981a: 3119 movi r1, 25 + 981c: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 981e: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 9822: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9826: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 982a: e3fff84b bsr 0x88c0 // 88c0 + + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 982e: 33c8 movi r3, 200 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9830: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 9834: b860 st.w r3, (r14, 0x0) + 9836: 3203 movi r2, 3 + 9838: 1067 lrw r3, 0xbb8 // 9854 + 983a: 3119 movi r1, 25 + 983c: 1801 addi r0, r14, 4 + 983e: e3fff06d bsr 0x7918 // 7918 +} + 9842: 140e addi r14, r14, 56 + 9844: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9846: 3400 movi r4, 0 + 9848: 07a6 br 0x9794 // 9794 + 984a: 0000 bkpt + 984c: 20000574 .long 0x20000574 + 9850: 2000047c .long 0x2000047c + 9854: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BLV_ElectricPara_Processing: + +00009858 : +{ + 9858: 14d3 push r4-r6, r15 + if (SysTick_1ms - Eng_Save_Tim >= g_Eng.SaveFlash_Tim) //1小时 + 985a: 11a2 lrw r5, 0x200000c4 // 98e0 + 985c: 1142 lrw r2, 0x2000016c // 98e4 + 985e: 1183 lrw r4, 0x20000574 // 98e8 + 9860: 9224 ld.w r1, (r2, 0x10) + 9862: 9560 ld.w r3, (r5, 0x0) + 9864: 60c6 subu r3, r1 + 9866: 943b ld.w r1, (r4, 0x6c) + 9868: 644c cmphs r3, r1 + 986a: 0c2b bf 0x98c0 // 98c0 + Eng_Save_Tim = SysTick_1ms; + 986c: 9560 ld.w r3, (r5, 0x0) + 986e: b264 st.w r3, (r2, 0x10) + if( (g_Eng.Total_Eng > g_Eng.LastSave_Total_Eng)||(g_Eng.U32_EnergyA_RegData > g_Eng.U32_EnergyA_RegData_LastSave) ) + 9870: 9468 ld.w r3, (r4, 0x20) + 9872: 944a ld.w r2, (r4, 0x28) + 9874: 64c8 cmphs r2, r3 + 9876: 0c05 bf 0x9880 // 9880 + 9878: 942f ld.w r1, (r4, 0x3c) + 987a: 9452 ld.w r2, (r4, 0x48) + 987c: 6448 cmphs r2, r1 + 987e: 0821 bt 0x98c0 // 98c0 + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 9880: 10db lrw r6, 0x200004e4 // 98ec + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 9882: 6c1b mov r0, r6 + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 9884: 944f ld.w r2, (r4, 0x3c) + g_Eng.LastSave_Total_Eng = g_Eng.Total_Eng; + 9886: b46a st.w r3, (r4, 0x28) + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 9888: b660 st.w r3, (r6, 0x0) + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 988a: b452 st.w r2, (r4, 0x48) + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 988c: b642 st.w r2, (r6, 0x8) + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 988e: e3fff5c7 bsr 0x841c // 841c + 9892: 6c83 mov r2, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng:%d",WriteEng_rev); + 9894: 1037 lrw r1, 0xb6ef // 98f0 + 9896: 3000 movi r0, 0 + 9898: e3fff0ce bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng_Cnt:%d,TEng:%d",eng_info.eng_save_cnt,eng_info.eng_total); + 989c: 9660 ld.w r3, (r6, 0x0) + 989e: 9641 ld.w r2, (r6, 0x4) + 98a0: 3000 movi r0, 0 + 98a2: 1035 lrw r1, 0xb6f9 // 98f4 + 98a4: e3fff0c8 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEngReg_NUM:%d",eng_info.U32_EnergyA_RegData ); + 98a8: 9642 ld.w r2, (r6, 0x8) + 98aa: 3000 movi r0, 0 + 98ac: 1033 lrw r1, 0xb70f // 98f8 + 98ae: e3fff0c3 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"save SN:%d,MAX:%d",e_save.eng_save_offset,e_save.eng_save_max); + 98b2: 1053 lrw r2, 0x20000490 // 98fc + 98b4: 1033 lrw r1, 0xb720 // 9900 + 98b6: 3000 movi r0, 0 + 98b8: 9266 ld.w r3, (r2, 0x18) + 98ba: 9247 ld.w r2, (r2, 0x1c) + 98bc: e3fff0bc bsr 0x7a34 // 7a34 + if( (g_Dip.Dev_Port == Active_Port)&&(SysTick_1ms - g_Eng.Eng_Report_Tim >= g_Eng.Report_Tim) ) + 98c0: 1071 lrw r3, 0x2000047c // 9904 + 98c2: 8367 ld.b r3, (r3, 0x7) + 98c4: 3b41 cmpnei r3, 1 + 98c6: 080b bt 0x98dc // 98dc + 98c8: 945c ld.w r2, (r4, 0x70) + 98ca: 9560 ld.w r3, (r5, 0x0) + 98cc: 60ca subu r3, r2 + 98ce: 945a ld.w r2, (r4, 0x68) + 98d0: 648c cmphs r3, r2 + 98d2: 0c05 bf 0x98dc // 98dc + g_Eng.Eng_Report_Tim = SysTick_1ms; + 98d4: 9560 ld.w r3, (r5, 0x0) + 98d6: b47c st.w r3, (r4, 0x70) + BLV_Energy_ActiveRep_Packing(); + 98d8: e3ffff4a bsr 0x976c // 976c +} + 98dc: 1493 pop r4-r6, r15 + 98de: 0000 bkpt + 98e0: 200000c4 .long 0x200000c4 + 98e4: 2000016c .long 0x2000016c + 98e8: 20000574 .long 0x20000574 + 98ec: 200004e4 .long 0x200004e4 + 98f0: 0000b6ef .long 0x0000b6ef + 98f4: 0000b6f9 .long 0x0000b6f9 + 98f8: 0000b70f .long 0x0000b70f + 98fc: 20000490 .long 0x20000490 + 9900: 0000b720 .long 0x0000b720 + 9904: 2000047c .long 0x2000047c + +Disassembly of section .text.BLV_EngDetect_Tack: + +00009908 : +{ + 9908: 14d0 push r15 + BLV_HLW8110_Tack(); + 990a: e3fffe89 bsr 0x961c // 961c + BLV_HLW8110_SendData_Tack(); + 990e: e3fff8f5 bsr 0x8af8 // 8af8 + BLV_ElectricPara_Processing(); + 9912: e3ffffa3 bsr 0x9858 // 9858 + BT_UART_Print(); + 9916: e3fffea9 bsr 0x9668 // 9668 +} + 991a: 1490 pop r15 + +Disassembly of section .text.BLV_Energy_PassiveRep_Packing: + +0000991c : + +//电参数查询回复组包 +void BLV_Energy_PassiveRep_Packing(void) +{ + 991c: 14d1 push r4, r15 + 991e: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9920: 1801 addi r0, r14, 4 + 9922: 3232 movi r2, 50 + 9924: 3100 movi r1, 0 + 9926: e3ffd819 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 992a: 1176 lrw r3, 0x20000574 // 9a00 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + + + g_Eng.SdSN++; + 992c: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 992e: 32fa movi r2, 250 + g_Eng.SdSN++; + 9930: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9932: 932e ld.w r1, (r3, 0x38) + 9934: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 9936: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9938: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 993a: 9309 ld.w r0, (r3, 0x24) + 993c: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 993e: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9940: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9942: 085c bt 0x99fa // 99fa + 9944: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 9946: 3400 movi r4, 0 + 9948: 2c75 subi r4, 118 + 994a: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 994e: 8384 ld.b r4, (r3, 0x4) + 9950: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9954: 3400 movi r4, 0 + 9956: 2c0b subi r4, 12 + 9958: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 995c: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 9960: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 9964: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 9968: 1187 lrw r4, 0x2000047c // 9a04 + 996a: 8486 ld.b r4, (r4, 0x6) + 996c: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x02; //cmd + 9970: 3402 movi r4, 2 + 9972: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 9976: 3401 movi r4, 1 + 9978: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 997c: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 997e: 936c ld.w r3, (r3, 0x30) + 9980: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 9984: 4b68 lsri r3, r3, 8 + 9986: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 998a: 4a68 lsri r3, r2, 8 + 998c: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 9990: 4a70 lsri r3, r2, 16 + 9992: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 9996: 4868 lsri r3, r0, 8 + 9998: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 999c: 4870 lsri r3, r0, 16 + 999e: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 99a2: 4968 lsri r3, r1, 8 + 99a4: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 99a8: 4970 lsri r3, r1, 16 + 99aa: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 99ae: 4978 lsri r3, r1, 24 + 99b0: dc6e001b st.b r3, (r14, 0x1b) + send_data[send_len++] = ENERGY_TAIL; + 99b4: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 99b6: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 99b8: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 99ba: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 99be: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 99c2: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 99c6: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 99c8: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 99ca: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 99cc: 3119 movi r1, 25 + 99ce: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 99d0: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 99d4: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 99d8: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 99dc: e3fff772 bsr 0x88c0 // 88c0 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 99e0: 3332 movi r3, 50 + 99e2: b860 st.w r3, (r14, 0x0) + 99e4: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 99e6: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 99ea: 4361 lsli r3, r3, 1 + 99ec: 3201 movi r2, 1 + 99ee: 3119 movi r1, 25 + 99f0: 1801 addi r0, r14, 4 + 99f2: e3ffef93 bsr 0x7918 // 7918 + +} + 99f6: 140e addi r14, r14, 56 + 99f8: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 99fa: 3400 movi r4, 0 + 99fc: 07a4 br 0x9944 // 9944 + 99fe: 0000 bkpt + 9a00: 20000574 .long 0x20000574 + 9a04: 2000047c .long 0x2000047c + +Disassembly of section .text.BLV_Energy_SetTime_Packing: + +00009a08 : + +//MCU设置周期 +U8_T BLV_Energy_SetTime_Packing(U8_T *data,U16_T lens) +{ + 9a08: 14d2 push r4-r5, r15 + 9a0a: 1421 subi r14, r14, 4 + if(lens < 18) return 0x01; + 9a0c: 3911 cmphsi r1, 18 +{ + 9a0e: 6d03 mov r4, r0 + 9a10: 6d47 mov r5, r1 + if(lens < 18) return 0x01; + 9a12: 0c45 bf 0x9a9c // 9a9c + + U32_T temp_T = 0; + + if( ( (data[7])&0x01) == 0x01) + 9a14: 8067 ld.b r3, (r0, 0x7) + 9a16: 3201 movi r2, 1 + 9a18: 68c8 and r3, r2 + 9a1a: 3b40 cmpnei r3, 0 + 9a1c: 0c11 bf 0x9a3e // 9a3e + { + temp_T = (data[11]<<24) + (data[10]<<16) + (data[9]<<8) + data[8]; + 9a1e: 806b ld.b r3, (r0, 0xb) + 9a20: 804a ld.b r2, (r0, 0xa) + 9a22: 4250 lsli r2, r2, 16 + 9a24: 4378 lsli r3, r3, 24 + 9a26: 60c8 addu r3, r2 + 9a28: 8049 ld.b r2, (r0, 0x9) + 9a2a: 4248 lsli r2, r2, 8 + 9a2c: 60c8 addu r3, r2 + 9a2e: 8048 ld.b r2, (r0, 0x8) + 9a30: 60c8 addu r3, r2 + if(temp_T > 1000){ + 9a32: 32fa movi r2, 250 + 9a34: 4242 lsli r2, r2, 2 + 9a36: 64c8 cmphs r2, r3 + 9a38: 0803 bt 0x9a3e // 9a3e + g_Eng.Collect_Tim = temp_T; + 9a3a: 105a lrw r2, 0x20000574 // 9aa0 + 9a3c: b279 st.w r3, (r2, 0x64) + } + } + + if(data[12] == 0x00) + 9a3e: 846c ld.b r3, (r4, 0xc) + { + g_Dip.Dev_Port = Passive_Port; + 9a40: 3b40 cmpnei r3, 0 + 9a42: 3300 movi r3, 0 + 9a44: 60cd addc r3, r3 + 9a46: 1058 lrw r2, 0x2000047c // 9aa4 + 9a48: a267 st.b r3, (r2, 0x7) + } + else{ + g_Dip.Dev_Port = Active_Port; + } + + if( ((data[7] >> 1)&0x01) == 0x01) + 9a4a: 8467 ld.b r3, (r4, 0x7) + 9a4c: 4b61 lsri r3, r3, 1 + 9a4e: 3201 movi r2, 1 + 9a50: 68c8 and r3, r2 + 9a52: 3b40 cmpnei r3, 0 + 9a54: 0c11 bf 0x9a76 // 9a76 + { + temp_T = (data[16]<<24) + (data[15]<<16) + (data[14]<<8) + data[13]; + 9a56: 8470 ld.b r3, (r4, 0x10) + 9a58: 844f ld.b r2, (r4, 0xf) + 9a5a: 4250 lsli r2, r2, 16 + 9a5c: 4378 lsli r3, r3, 24 + 9a5e: 60c8 addu r3, r2 + 9a60: 844e ld.b r2, (r4, 0xe) + 9a62: 4248 lsli r2, r2, 8 + 9a64: 60c8 addu r3, r2 + 9a66: 844d ld.b r2, (r4, 0xd) + 9a68: 60c8 addu r3, r2 + if(temp_T > 1000){ + 9a6a: 32fa movi r2, 250 + 9a6c: 4242 lsli r2, r2, 2 + 9a6e: 64c8 cmphs r2, r3 + 9a70: 0803 bt 0x9a76 // 9a76 + g_Eng.Report_Tim = temp_T; + 9a72: 104c lrw r2, 0x20000574 // 9aa0 + 9a74: b27a st.w r3, (r2, 0x68) + } + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9a76: e3fff33d bsr 0x80f0 // 80f0 + + //数据原样返回 + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9a7a: 3314 movi r3, 20 + 9a7c: b860 st.w r3, (r14, 0x0) + 9a7e: 3396 movi r3, 150 + 9a80: 4361 lsli r3, r3, 1 + 9a82: 3201 movi r2, 1 + 9a84: 6c57 mov r1, r5 + 9a86: 6c13 mov r0, r4 + 9a88: e3ffef48 bsr 0x7918 // 7918 + 9a8c: 6c13 mov r0, r4 + 9a8e: 7454 zextb r1, r5 + 9a90: 3206 movi r2, 6 + 9a92: e3fff685 bsr 0x879c // 879c + 9a96: 3000 movi r0, 0 + BT_Uart_Packing(data,lens,6); + + return 0x00; +} + 9a98: 1401 addi r14, r14, 4 + 9a9a: 1492 pop r4-r5, r15 + if(lens < 18) return 0x01; + 9a9c: 3001 movi r0, 1 + 9a9e: 07fd br 0x9a98 // 9a98 + 9aa0: 20000574 .long 0x20000574 + 9aa4: 2000047c .long 0x2000047c + +Disassembly of section .text.BLV_Energy_QueryVersion_Packing: + +00009aa8 : + +//版本查询回复组包 +void BLV_Energy_QueryVersion_Packing(void) +{ + 9aa8: 14d0 push r15 + 9aaa: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9aac: 1801 addi r0, r14, 4 + 9aae: 3232 movi r2, 50 + 9ab0: 3100 movi r1, 0 + 9ab2: e3ffd753 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + + g_Eng.SdSN++; + 9ab6: 1161 lrw r3, 0x20000574 // 9b38 + 9ab8: 8344 ld.b r2, (r3, 0x4) + 9aba: 2200 addi r2, 1 + 9abc: 7488 zextb r2, r2 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9abe: 3a0f cmphsi r2, 16 + 9ac0: 0839 bt 0x9b32 // 9b32 + 9ac2: a344 st.b r2, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + send_data[send_len++] = g_Eng.SdSN; //sn; + 9ac4: 8364 ld.b r3, (r3, 0x4) + 9ac6: dc6e0005 st.b r3, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9aca: 3300 movi r3, 0 + 9acc: 2b0b subi r3, 12 + send_data[send_len++] = ENERGY_HEAD; + 9ace: 3200 movi r2, 0 + send_data[send_len++] = DEV_TYPE; //type + 9ad0: dc6e0006 st.b r3, (r14, 0x6) + send_data[send_len++] = ENERGY_HEAD; + 9ad4: 2a75 subi r2, 118 + send_data[send_len++] = g_Dip.addr; + 9ad6: 107a lrw r3, 0x2000047c // 9b3c + send_data[send_len++] = g_Dip.Dev_Port; + + send_data[send_len++] = ENERGY_TAIL; + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9ad8: 310b movi r1, 11 + send_data[send_len++] = ENERGY_HEAD; + 9ada: dc4e0004 st.b r2, (r14, 0x4) + send_data[send_len++] = g_Dip.addr; + 9ade: 8346 ld.b r2, (r3, 0x6) + send_data[send_len++] = g_Dip.Dev_Port; + 9ae0: 8367 ld.b r3, (r3, 0x7) + 9ae2: dc6e000d st.b r3, (r14, 0xd) + send_data[send_len++] = ENERGY_TAIL; + 9ae6: 3300 movi r3, 0 + send_data[send_len++] = g_Dip.addr; + 9ae8: dc4e0007 st.b r2, (r14, 0x7) + send_data[send_len++] = ENERGY_TAIL; + 9aec: 2b57 subi r3, 88 + send_data[send_len++] = 0x04; //cmd + 9aee: 3204 movi r2, 4 + 9af0: dc4e000a st.b r2, (r14, 0xa) + send_data[send_len++] = ENERGY_TAIL; + 9af4: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = Project_FW_Version; + 9af8: 3201 movi r2, 1 + send_data[4] = send_len; + 9afa: 330b movi r3, 11 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9afc: 1801 addi r0, r14, 4 + send_data[send_len++] = Project_FW_Version; + 9afe: dc4e000b st.b r2, (r14, 0xb) + send_data[send_len++] = Project_HW_Version; + 9b02: dc4e000c st.b r2, (r14, 0xc) + send_data[4] = send_len; + 9b06: dc6e0008 st.b r3, (r14, 0x8) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b0a: e3fff6db bsr 0x88c0 // 88c0 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9b0e: 3332 movi r3, 50 + 9b10: b860 st.w r3, (r14, 0x0) + 9b12: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b14: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9b18: 4361 lsli r3, r3, 1 + 9b1a: 1801 addi r0, r14, 4 + 9b1c: 3201 movi r2, 1 + 9b1e: 310b movi r1, 11 + 9b20: e3ffeefc bsr 0x7918 // 7918 + 9b24: 3206 movi r2, 6 + 9b26: 310b movi r1, 11 + 9b28: 1801 addi r0, r14, 4 + 9b2a: e3fff639 bsr 0x879c // 879c + BT_Uart_Packing(send_data,send_len,6); +} + 9b2e: 140e addi r14, r14, 56 + 9b30: 1490 pop r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9b32: 3200 movi r2, 0 + 9b34: 07c7 br 0x9ac2 // 9ac2 + 9b36: 0000 bkpt + 9b38: 20000574 .long 0x20000574 + 9b3c: 2000047c .long 0x2000047c + +Disassembly of section .text.SetCalibFactor_Switch: + +00009b40 : +// +// return 0x00; +//} + +U8_T SetCalibFactor_Switch(U8_T ch,F32_T value) +{ + 9b40: 14d0 push r15 + switch(ch) + 9b42: 3805 cmphsi r0, 6 + 9b44: 0808 bt 0x9b54 // 9b54 + 9b46: 106a lrw r3, 0x20000574 // 9b6c + 9b48: e3ffccda bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9b4c: 0a080603 .long 0x0a080603 + 9b50: 0e0c .short 0x0e0c + { + case 0x00: + g_Eng.V_K_Val = value; + 9b52: b333 st.w r1, (r3, 0x4c) + break; + default: + break; + } + return 0; +} + 9b54: 3000 movi r0, 0 + 9b56: 1490 pop r15 + g_Eng.I_K1_Val = value; + 9b58: b334 st.w r1, (r3, 0x50) + break; + 9b5a: 07fd br 0x9b54 // 9b54 + g_Eng.I_K2_Val = value; + 9b5c: b335 st.w r1, (r3, 0x54) + break; + 9b5e: 07fb br 0x9b54 // 9b54 + g_Eng.P_K_Val = value; + 9b60: b336 st.w r1, (r3, 0x58) + break; + 9b62: 07f9 br 0x9b54 // 9b54 + g_Eng.I_OffSetVal = value; + 9b64: b337 st.w r1, (r3, 0x5c) + break; + 9b66: 07f7 br 0x9b54 // 9b54 + g_Eng.P_OffSetVal = value; + 9b68: b338 st.w r1, (r3, 0x60) + break; + 9b6a: 07f5 br 0x9b54 // 9b54 + 9b6c: 20000574 .long 0x20000574 + +Disassembly of section .text.BLV_Energy_SetCalibFactor: + +00009b70 : +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor(U8_T *data,U16_T lens) +{ + 9b70: 14d4 push r4-r7, r15 + 9b72: 1423 subi r14, r14, 12 + if(lens < 10) return 0x01; + 9b74: 3909 cmphsi r1, 10 +{ + 9b76: 6d43 mov r5, r0 + 9b78: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9b7a: 0c36 bf 0x9be6 // 9be6 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9b7c: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9b7e: 3c05 cmphsi r4, 6 + 9b80: 0835 bt 0x9bea // 9bea + U8_T temp_num = ((data[8])&0xff); + 9b82: 8028 ld.b r1, (r0, 0x8) + 9b84: 3209 movi r2, 9 + 9b86: 3906 cmphsi r1, 7 + 9b88: 6080 addu r2, r0 + 9b8a: 6cc7 mov r3, r1 + 9b8c: 0c02 bf 0x9b90 // 9b90 + 9b8e: 3306 movi r3, 6 + 9b90: 60d0 addu r3, r4 + 9b92: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9b94: 10f7 lrw r7, 0x47c35000 // 9bf0 + for(U8_T i = 0;i< temp_num;i++) + 9b96: 64d2 cmpne r4, r3 + 9b98: 080f bt 0x9bb6 // 9bb6 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9b9a: e3fff2ab bsr 0x80f0 // 80f0 + + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9b9e: 3314 movi r3, 20 + 9ba0: b860 st.w r3, (r14, 0x0) + 9ba2: 3396 movi r3, 150 + 9ba4: 6c17 mov r0, r5 + 9ba6: 4361 lsli r3, r3, 1 + 9ba8: 3201 movi r2, 1 + 9baa: 6c5b mov r1, r6 + 9bac: e3ffeeb6 bsr 0x7918 // 7918 + 9bb0: 3000 movi r0, 0 + + return 0x00; +} + 9bb2: 1403 addi r14, r14, 12 + 9bb4: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9bb6: 8201 ld.b r0, (r2, 0x1) + 9bb8: 8220 ld.b r1, (r2, 0x0) + 9bba: 4008 lsli r0, r0, 8 + 9bbc: 6004 addu r0, r1 + 9bbe: 8222 ld.b r1, (r2, 0x2) + 9bc0: 4130 lsli r1, r1, 16 + 9bc2: 6004 addu r0, r1 + 9bc4: b862 st.w r3, (r14, 0x8) + 9bc6: b841 st.w r2, (r14, 0x4) + 9bc8: e3ffcede bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9bcc: 6c5f mov r1, r7 + 9bce: e3ffce45 bsr 0x3858 // 3858 <__divsf3> + 9bd2: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9bd4: 6c13 mov r0, r4 + 9bd6: e3ffffb5 bsr 0x9b40 // 9b40 + 9bda: 2400 addi r4, 1 + 9bdc: 9841 ld.w r2, (r14, 0x4) + 9bde: 2202 addi r2, 3 + 9be0: 7510 zextb r4, r4 + 9be2: 9862 ld.w r3, (r14, 0x8) + 9be4: 07d9 br 0x9b96 // 9b96 + if(lens < 10) return 0x01; + 9be6: 3001 movi r0, 1 + 9be8: 07e5 br 0x9bb2 // 9bb2 + if( ctrl_num > 0x05) return 0x02; + 9bea: 3002 movi r0, 2 + 9bec: 07e3 br 0x9bb2 // 9bb2 + 9bee: 0000 bkpt + 9bf0: 47c35000 .long 0x47c35000 + +Disassembly of section .text.BLV_Energy_SetCalibFactor_2: + +00009bf4 : + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor_2(U8_T *data,U16_T lens) +{ + 9bf4: 14d4 push r4-r7, r15 + 9bf6: 1422 subi r14, r14, 8 + if(lens < 10) return 0x01; + 9bf8: 3909 cmphsi r1, 10 +{ + 9bfa: 6d43 mov r5, r0 + 9bfc: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9bfe: 0c32 bf 0x9c62 // 9c62 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9c00: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9c02: 3c05 cmphsi r4, 6 + 9c04: 0831 bt 0x9c66 // 9c66 + U8_T temp_num = ((data[8])&0xff); + 9c06: 8028 ld.b r1, (r0, 0x8) + 9c08: 3209 movi r2, 9 + 9c0a: 3903 cmphsi r1, 4 + 9c0c: 6080 addu r2, r0 + 9c0e: 6cc7 mov r3, r1 + 9c10: 0c02 bf 0x9c14 // 9c14 + 9c12: 3303 movi r3, 3 + 9c14: 60d0 addu r3, r4 + 9c16: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9c18: 10f5 lrw r7, 0x47c35000 // 9c6c + for(U8_T i = 0;i< temp_num;i++) + 9c1a: 64d2 cmpne r4, r3 + 9c1c: 080b bt 0x9c32 // 9c32 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9c1e: e3fff269 bsr 0x80f0 // 80f0 + 9c22: 6c17 mov r0, r5 + 9c24: 7458 zextb r1, r6 + 9c26: 3206 movi r2, 6 + 9c28: e3fff5ba bsr 0x879c // 879c + 9c2c: 3000 movi r0, 0 + + //数据原样返回 + BT_Uart_Packing(data,lens,6); //蓝牙发送 + + return 0x00; +} + 9c2e: 1402 addi r14, r14, 8 + 9c30: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9c32: 8201 ld.b r0, (r2, 0x1) + 9c34: 8220 ld.b r1, (r2, 0x0) + 9c36: 4008 lsli r0, r0, 8 + 9c38: 6004 addu r0, r1 + 9c3a: 8222 ld.b r1, (r2, 0x2) + 9c3c: 4130 lsli r1, r1, 16 + 9c3e: 6004 addu r0, r1 + 9c40: b861 st.w r3, (r14, 0x4) + 9c42: b840 st.w r2, (r14, 0x0) + 9c44: e3ffcea0 bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9c48: 6c5f mov r1, r7 + 9c4a: e3ffce07 bsr 0x3858 // 3858 <__divsf3> + 9c4e: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9c50: 6c13 mov r0, r4 + 9c52: e3ffff77 bsr 0x9b40 // 9b40 + 9c56: 2400 addi r4, 1 + 9c58: 9840 ld.w r2, (r14, 0x0) + 9c5a: 2202 addi r2, 3 + 9c5c: 7510 zextb r4, r4 + 9c5e: 9861 ld.w r3, (r14, 0x4) + 9c60: 07dd br 0x9c1a // 9c1a + if(lens < 10) return 0x01; + 9c62: 3001 movi r0, 1 + 9c64: 07e5 br 0x9c2e // 9c2e + if( ctrl_num > 0x05) return 0x02; + 9c66: 3002 movi r0, 2 + 9c68: 07e3 br 0x9c2e // 9c2e + 9c6a: 0000 bkpt + 9c6c: 47c35000 .long 0x47c35000 + +Disassembly of section .text.HLW_485Recv_Processing: + +00009c70 : + + +//485处理函数 +U8_T HLW_485Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9c70: 14d4 push r4-r7, r15 + 9c72: 1421 subi r14, r14, 4 + + if(RecvLen < 8){ + 9c74: 3907 cmphsi r1, 8 +{ + 9c76: 6d03 mov r4, r0 + 9c78: 6d87 mov r6, r1 + if(RecvLen < 8){ + 9c7a: 0c54 bf 0x9d22 // 9d22 + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9c7c: 8024 ld.b r1, (r0, 0x4) + 9c7e: 6586 cmpne r1, r6 + 9c80: 0c0a bf 0x9c94 // 9c94 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Data Len Error",__func__); + 9c82: 1248 lrw r2, 0xab4c // 9da0 + 9c84: 1228 lrw r1, 0xb732 // 9da4 + 9c86: 3000 movi r0, 0 + 9c88: e3ffeed6 bsr 0x7a34 // 7a34 + return 0x02; + 9c8c: 3502 movi r5, 2 + return 0x01; + break; + } + + return 0; +} + 9c8e: 6c17 mov r0, r5 + 9c90: 1401 addi r14, r14, 4 + 9c92: 1494 pop r4-r7, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9c94: 8040 ld.b r2, (r0, 0x0) + 9c96: 338a movi r3, 138 + 9c98: 64ca cmpne r2, r3 + 9c9a: 0807 bt 0x9ca8 // 9ca8 + 9c9c: 5864 addu r3, r0, r1 + 9c9e: 2b00 subi r3, 1 + 9ca0: 8340 ld.b r2, (r3, 0x0) + 9ca2: 33a8 movi r3, 168 + 9ca4: 64ca cmpne r2, r3 + 9ca6: 0c08 bf 0x9cb6 // 9cb6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Head Error",__func__); + 9ca8: 115e lrw r2, 0xab4c // 9da0 + 9caa: 1220 lrw r1, 0xb744 // 9da8 + 9cac: 3000 movi r0, 0 + 9cae: e3ffeec3 bsr 0x7a34 // 7a34 + return 0x03; + 9cb2: 3503 movi r5, 3 + 9cb4: 07ed br 0x9c8e // 9c8e + if(RecvData[2] != DEV_TYPE){// + 9cb6: 8042 ld.b r2, (r0, 0x2) + 9cb8: 33f4 movi r3, 244 + 9cba: 64ca cmpne r2, r3 + 9cbc: 0c08 bf 0x9ccc // 9ccc + Dbg_Println(DBG_BIT_SYS_STATUS,"%s TYPE Error",__func__); + 9cbe: 1159 lrw r2, 0xab4c // 9da0 + 9cc0: 113b lrw r1, 0xb752 // 9dac + 9cc2: 3000 movi r0, 0 + 9cc4: e3ffeeb8 bsr 0x7a34 // 7a34 + return 0x04; + 9cc8: 3504 movi r5, 4 + 9cca: 07e2 br 0x9c8e // 9c8e + if(RecvData[3] != g_Dip.addr){// + 9ccc: 1179 lrw r3, 0x2000047c // 9db0 + 9cce: 8043 ld.b r2, (r0, 0x3) + 9cd0: 8366 ld.b r3, (r3, 0x6) + 9cd2: 64ca cmpne r2, r3 + 9cd4: 0c08 bf 0x9ce4 // 9ce4 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error",__func__); + 9cd6: 1153 lrw r2, 0xab4c // 9da0 + 9cd8: 1137 lrw r1, 0xb760 // 9db4 + 9cda: 3000 movi r0, 0 + 9cdc: e3ffeeac bsr 0x7a34 // 7a34 + return 0x05; + 9ce0: 3505 movi r5, 5 + 9ce2: 07d6 br 0x9c8e // 9c8e + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9ce4: e3fff5ee bsr 0x88c0 // 88c0 + 9ce8: 3840 cmpnei r0, 0 + 9cea: 6d43 mov r5, r0 + 9cec: 0c08 bf 0x9cfc // 9cfc + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 9cee: 114d lrw r2, 0xab4c // 9da0 + 9cf0: 1132 lrw r1, 0xb76e // 9db8 + 9cf2: 3000 movi r0, 0 + 9cf4: e3ffeea0 bsr 0x7a34 // 7a34 + return 0x06; + 9cf8: 3506 movi r5, 6 + 9cfa: 07ca br 0x9c8e // 9c8e + g_Eng.SdSN = RecvData[1]; //序列号 + 9cfc: 8461 ld.b r3, (r4, 0x1) + 9cfe: 11f0 lrw r7, 0x20000574 // 9dbc + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9d00: 8446 ld.b r2, (r4, 0x6) + 9d02: 1130 lrw r1, 0xb4be // 9dc0 + 9d04: 3000 movi r0, 0 + g_Eng.SdSN = RecvData[1]; //序列号 + 9d06: a764 st.b r3, (r7, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9d08: e3ffee96 bsr 0x7a34 // 7a34 + switch(RecvData[6]) + 9d0c: 8466 ld.b r3, (r4, 0x6) + 9d0e: 3b44 cmpnei r3, 4 + 9d10: 0c36 bf 0x9d7c // 9d7c + 9d12: 3b04 cmphsi r3, 5 + 9d14: 0809 bt 0x9d26 // 9d26 + 9d16: 3b42 cmpnei r3, 2 + 9d18: 0c2a bf 0x9d6c // 9d6c + 9d1a: 3b02 cmphsi r3, 3 + 9d1c: 082b bt 0x9d72 // 9d72 + 9d1e: 3b41 cmpnei r3, 1 + 9d20: 0c23 bf 0x9d66 // 9d66 + return 0x01; + 9d22: 3501 movi r5, 1 + 9d24: 07b5 br 0x9c8e // 9c8e + switch(RecvData[6]) + 9d26: 3b54 cmpnei r3, 20 + 9d28: 0c2d bf 0x9d82 // 9d82 + 9d2a: 3b14 cmphsi r3, 21 + 9d2c: 0812 bt 0x9d50 // 9d50 + 9d2e: 3b53 cmpnei r3, 19 + 9d30: 0bf9 bt 0x9d22 // 9d22 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9d32: 9768 ld.w r3, (r7, 0x20) + 9d34: b769 st.w r3, (r7, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9d36: 1164 lrw r3, 0x200000c4 // 9dc4 + 9d38: 9360 ld.w r3, (r3, 0x0) + 9d3a: b77c st.w r3, (r7, 0x70) + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 9d3c: 3314 movi r3, 20 + 9d3e: b860 st.w r3, (r14, 0x0) + 9d40: 3396 movi r3, 150 + 9d42: 4361 lsli r3, r3, 1 + 9d44: 3201 movi r2, 1 + 9d46: 6c5b mov r1, r6 + 9d48: 6c13 mov r0, r4 + 9d4a: e3ffede7 bsr 0x7918 // 7918 + break; + 9d4e: 07a0 br 0x9c8e // 9c8e + switch(RecvData[6]) + 9d50: 3b55 cmpnei r3, 21 + 9d52: 0c22 bf 0x9d96 // 9d96 + 9d54: 3221 movi r2, 33 + 9d56: 648e cmpne r3, r2 + 9d58: 0be5 bt 0x9d22 // 9d22 + Dbg_Switch = (RecvData[7]&0x0f); + 9d5a: 320f movi r2, 15 + 9d5c: 8467 ld.b r3, (r4, 0x7) + 9d5e: 68c8 and r3, r2 + 9d60: 105a lrw r2, 0x200000d8 // 9dc8 + 9d62: b260 st.w r3, (r2, 0x0) + 9d64: 07ec br 0x9d3c // 9d3c + Clear_SendFlag(); + 9d66: e3ffee0b bsr 0x797c // 797c + break; + 9d6a: 0792 br 0x9c8e // 9c8e + BLV_Energy_PassiveRep_Packing(); + 9d6c: e3fffdd8 bsr 0x991c // 991c + break; + 9d70: 078f br 0x9c8e // 9c8e + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9d72: 6c5b mov r1, r6 + 9d74: 6c13 mov r0, r4 + 9d76: e3fffe49 bsr 0x9a08 // 9a08 + break; + 9d7a: 078a br 0x9c8e // 9c8e + BLV_Energy_QueryVersion_Packing(); + 9d7c: e3fffe96 bsr 0x9aa8 // 9aa8 + break; + 9d80: 0787 br 0x9c8e // 9c8e + g_Eng.Total_Eng = 0; + 9d82: 3300 movi r3, 0 + eng_info.eng_total = g_Eng.Total_Eng; + 9d84: 1012 lrw r0, 0x200004e4 // 9dcc + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 9d86: b062 st.w r3, (r0, 0x8) + g_Eng.Total_Eng = 0; + 9d88: b768 st.w r3, (r7, 0x20) + g_Eng.U32_EnergyA_RegData = 0x00; + 9d8a: b76f st.w r3, (r7, 0x3c) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9d8c: b769 st.w r3, (r7, 0x24) + eng_info.eng_total = g_Eng.Total_Eng; + 9d8e: b060 st.w r3, (r0, 0x0) + EEPROM_WriteTotalEng(&eng_info); + 9d90: e3fff346 bsr 0x841c // 841c + 9d94: 07d4 br 0x9d3c // 9d3c + BLV_Energy_SetCalibFactor(RecvData,RecvLen); + 9d96: 6c5b mov r1, r6 + 9d98: 6c13 mov r0, r4 + 9d9a: e3fffeeb bsr 0x9b70 // 9b70 + break; + 9d9e: 0778 br 0x9c8e // 9c8e + 9da0: 0000ab4c .long 0x0000ab4c + 9da4: 0000b732 .long 0x0000b732 + 9da8: 0000b744 .long 0x0000b744 + 9dac: 0000b752 .long 0x0000b752 + 9db0: 2000047c .long 0x2000047c + 9db4: 0000b760 .long 0x0000b760 + 9db8: 0000b76e .long 0x0000b76e + 9dbc: 20000574 .long 0x20000574 + 9dc0: 0000b4be .long 0x0000b4be + 9dc4: 200000c4 .long 0x200000c4 + 9dc8: 200000d8 .long 0x200000d8 + 9dcc: 200004e4 .long 0x200004e4 + +Disassembly of section .text.BT_Recv_Processing: + +00009dd0 : + + + +//BT处理函数 +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9dd0: 14d3 push r4-r6, r15 + if(RecvLen < 8){ + 9dd2: 3907 cmphsi r1, 8 +{ + 9dd4: 6d03 mov r4, r0 + 9dd6: 6d47 mov r5, r1 + if(RecvLen < 8){ + 9dd8: 0c49 bf 0x9e6a // 9e6a + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9dda: 8024 ld.b r1, (r0, 0x4) + 9ddc: 6546 cmpne r1, r5 + 9dde: 0c08 bf 0x9dee // 9dee + Dbg_BT_Println(DBG_BIT_BT_STATUS,"DatLenErr"); + 9de0: 1139 lrw r1, 0xb77d // 9ec4 + 9de2: 3003 movi r0, 3 + 9de4: e3ffefd0 bsr 0x7d84 // 7d84 + return 0x02; + 9de8: 3602 movi r6, 2 + return 0x01; + break; + } + + return 0; +} + 9dea: 6c1b mov r0, r6 + 9dec: 1493 pop r4-r6, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9dee: 8040 ld.b r2, (r0, 0x0) + 9df0: 338a movi r3, 138 + 9df2: 64ca cmpne r2, r3 + 9df4: 0807 bt 0x9e02 // 9e02 + 9df6: 5864 addu r3, r0, r1 + 9df8: 2b00 subi r3, 1 + 9dfa: 8340 ld.b r2, (r3, 0x0) + 9dfc: 33a8 movi r3, 168 + 9dfe: 64ca cmpne r2, r3 + 9e00: 0c07 bf 0x9e0e // 9e0e + Dbg_BT_Println(DBG_BIT_BT_STATUS,"HeadErr"); + 9e02: 1132 lrw r1, 0xb787 // 9ec8 + 9e04: 3003 movi r0, 3 + 9e06: e3ffefbf bsr 0x7d84 // 7d84 + return 0x03; + 9e0a: 3603 movi r6, 3 + 9e0c: 07ef br 0x9dea // 9dea + if(RecvData[2] != DEV_TYPE){// + 9e0e: 8042 ld.b r2, (r0, 0x2) + 9e10: 33f4 movi r3, 244 + 9e12: 64ca cmpne r2, r3 + 9e14: 0c07 bf 0x9e22 // 9e22 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TYPEErr"); + 9e16: 112e lrw r1, 0xb78f // 9ecc + 9e18: 3003 movi r0, 3 + 9e1a: e3ffefb5 bsr 0x7d84 // 7d84 + return 0x04; + 9e1e: 3604 movi r6, 4 + 9e20: 07e5 br 0x9dea // 9dea + if(RecvData[3] != g_Dip.addr){// + 9e22: 116c lrw r3, 0x2000047c // 9ed0 + 9e24: 8043 ld.b r2, (r0, 0x3) + 9e26: 8366 ld.b r3, (r3, 0x6) + 9e28: 64ca cmpne r2, r3 + 9e2a: 0c07 bf 0x9e38 // 9e38 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"AddrErr"); + 9e2c: 112a lrw r1, 0xb797 // 9ed4 + 9e2e: 3003 movi r0, 3 + 9e30: e3ffefaa bsr 0x7d84 // 7d84 + return 0x05; + 9e34: 3605 movi r6, 5 + 9e36: 07da br 0x9dea // 9dea + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9e38: e3fff544 bsr 0x88c0 // 88c0 + 9e3c: 3840 cmpnei r0, 0 + 9e3e: 6d83 mov r6, r0 + 9e40: 0c07 bf 0x9e4e // 9e4e + Dbg_BT_Println(DBG_BIT_BT_STATUS,"CheckErr"); + 9e42: 1126 lrw r1, 0xb79f // 9ed8 + 9e44: 3003 movi r0, 3 + 9e46: e3ffef9f bsr 0x7d84 // 7d84 + return 0x06; + 9e4a: 3606 movi r6, 6 + 9e4c: 07cf br 0x9dea // 9dea + g_Eng.SdSN = (RecvData[1]&0x0F); //序列号 + 9e4e: 8461 ld.b r3, (r4, 0x1) + 9e50: 310f movi r1, 15 + 9e52: 68c4 and r3, r1 + 9e54: 1142 lrw r2, 0x20000574 // 9edc + 9e56: a264 st.b r3, (r2, 0x4) + switch(RecvData[6]) + 9e58: 8466 ld.b r3, (r4, 0x6) + 9e5a: 3b44 cmpnei r3, 4 + 9e5c: 0c20 bf 0x9e9c // 9e9c + 9e5e: 3b04 cmphsi r3, 5 + 9e60: 0807 bt 0x9e6e // 9e6e + 9e62: 3b42 cmpnei r3, 2 + 9e64: 0fc3 bf 0x9dea // 9dea + 9e66: 3b43 cmpnei r3, 3 + 9e68: 0c15 bf 0x9e92 // 9e92 + return 0x01; + 9e6a: 3601 movi r6, 1 + 9e6c: 07bf br 0x9dea // 9dea + switch(RecvData[6]) + 9e6e: 3b55 cmpnei r3, 21 + 9e70: 0c19 bf 0x9ea2 // 9ea2 + 9e72: 3121 movi r1, 33 + 9e74: 644e cmpne r3, r1 + 9e76: 0c1b bf 0x9eac // 9eac + 9e78: 3b53 cmpnei r3, 19 + 9e7a: 0bf8 bt 0x9e6a // 9e6a + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9e7c: 9268 ld.w r3, (r2, 0x20) + 9e7e: b269 st.w r3, (r2, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9e80: 1078 lrw r3, 0x200000c4 // 9ee0 + 9e82: 9360 ld.w r3, (r3, 0x0) + 9e84: b27c st.w r3, (r2, 0x70) + 9e86: 7454 zextb r1, r5 + 9e88: 3206 movi r2, 6 + 9e8a: 6c13 mov r0, r4 + 9e8c: e3fff488 bsr 0x879c // 879c + 9e90: 07ad br 0x9dea // 9dea + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9e92: 6c57 mov r1, r5 + 9e94: 6c13 mov r0, r4 + 9e96: e3fffdb9 bsr 0x9a08 // 9a08 + break; + 9e9a: 07a8 br 0x9dea // 9dea + BLV_Energy_QueryVersion_Packing(); + 9e9c: e3fffe06 bsr 0x9aa8 // 9aa8 + break; + 9ea0: 07a5 br 0x9dea // 9dea + BLV_Energy_SetCalibFactor_2(RecvData,RecvLen); + 9ea2: 6c57 mov r1, r5 + 9ea4: 6c13 mov r0, r4 + 9ea6: e3fffea7 bsr 0x9bf4 // 9bf4 + break; + 9eaa: 07a0 br 0x9dea // 9dea + if( (RecvData[7]&0x08) != 0x00 ){ + 9eac: 3208 movi r2, 8 + 9eae: 8467 ld.b r3, (r4, 0x7) + 9eb0: 68c8 and r3, r2 + 9eb2: 3b40 cmpnei r3, 0 + 9eb4: 106c lrw r3, 0x200000d8 // 9ee4 + Dbg_Switch |= 0x08; + 9eb6: 9340 ld.w r2, (r3, 0x0) + if( (RecvData[7]&0x08) != 0x00 ){ + 9eb8: 0c04 bf 0x9ec0 // 9ec0 + Dbg_Switch |= 0x08; + 9eba: 3aa3 bseti r2, 3 + Dbg_Switch &= (~0x08); + 9ebc: b340 st.w r2, (r3, 0x0) + 9ebe: 07e4 br 0x9e86 // 9e86 + 9ec0: 3a83 bclri r2, 3 + 9ec2: 07fd br 0x9ebc // 9ebc + 9ec4: 0000b77d .long 0x0000b77d + 9ec8: 0000b787 .long 0x0000b787 + 9ecc: 0000b78f .long 0x0000b78f + 9ed0: 2000047c .long 0x2000047c + 9ed4: 0000b797 .long 0x0000b797 + 9ed8: 0000b79f .long 0x0000b79f + 9edc: 20000574 .long 0x20000574 + 9ee0: 200000c4 .long 0x200000c4 + 9ee4: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Boot_Function_Init: + +00009ee8 : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 9ee8: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9eea: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9eec: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9eee: 4241 lsli r2, r2, 1 + 9ef0: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9ef2: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9ef4: 1101 lrw r0, 0x200005ec // 9f78 + 9ef6: e3ffd531 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9efa: 6c97 mov r2, r5 + 9efc: 3100 movi r1, 0 + 9efe: 1100 lrw r0, 0x20000728 // 9f7c + 9f00: e3ffd52c bsr 0x4958 // 4958 <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 9f04: 33fa movi r3, 250 + 9f06: 4362 lsli r3, r3, 2 + 9f08: 109e lrw r4, 0x200006ec // 9f80 + 9f0a: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 9f0c: e3fff3b0 bsr 0x866c // 866c +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 9f10: 107d lrw r3, 0x2000005c // 9f84 + 9f12: 9360 ld.w r3, (r3, 0x0) + 9f14: 23ff addi r3, 256 + 9f16: 9343 ld.w r2, (r3, 0xc) + 9f18: 7449 zexth r1, r2 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 9f1a: 6546 cmpne r1, r5 + 9f1c: 0808 bt 0x9f2c // 9f2c + { + g_boot.bootTimeout = 5000; + 9f1e: 107b lrw r3, 0x1388 // 9f88 + 9f20: b46d st.w r3, (r4, 0x34) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS," Boot software reset"); + 9f22: 103b lrw r1, 0xb7a8 // 9f8c + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f24: 3000 movi r0, 0 + 9f26: e3ffed87 bsr 0x7a34 // 7a34 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 9f2a: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 9f2c: 3941 cmpnei r1, 1 + 9f2e: 0806 bt 0x9f3a // 9f3a + g_boot.bootTimeout = 500; + 9f30: 33fa movi r3, 250 + 9f32: 4361 lsli r3, r3, 1 + 9f34: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot power on reset"); + 9f36: 1037 lrw r1, 0xb7bd // 9f90 + 9f38: 07f6 br 0x9f24 // 9f24 + 9f3a: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x04) //外部手动复位 + 9f3c: 3944 cmpnei r1, 4 + 9f3e: 4363 lsli r3, r3, 3 + 9f40: 0804 bt 0x9f48 // 9f48 + g_boot.bootTimeout = 2000; + 9f42: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex-pin reset"); + 9f44: 1034 lrw r1, 0xb7d1 // 9f94 + 9f46: 07ef br 0x9f24 // 9f24 + }else if(sys_reset_sta == 0x10) //看门狗超时复位 --升级完成复位源 + 9f48: 3950 cmpnei r1, 16 + 9f4a: 0804 bt 0x9f52 // 9f52 + g_boot.bootTimeout = 2000; + 9f4c: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot wdt reset"); + 9f4e: 1033 lrw r1, 0xb7e3 // 9f98 + 9f50: 07ea br 0x9f24 // 9f24 + }else if(sys_reset_sta == 0x40) //外部时钟无效复位 + 9f52: 3040 movi r0, 64 + 9f54: 6406 cmpne r1, r0 + 9f56: 0804 bt 0x9f5e // 9f5e + g_boot.bootTimeout = 2000; + 9f58: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex clock invalid reset"); + 9f5a: 1031 lrw r1, 0xb7f2 // 9f9c + 9f5c: 07e4 br 0x9f24 // 9f24 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9f5e: 3080 movi r0, 128 + 9f60: 6406 cmpne r1, r0 + g_boot.bootTimeout = 2000; + 9f62: b46d st.w r3, (r4, 0x34) + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9f64: 0803 bt 0x9f6a // 9f6a + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f66: 102f lrw r1, 0xb80e // 9fa0 + 9f68: 07de br 0x9f24 // 9f24 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); + 9f6a: 7489 zexth r2, r2 + 9f6c: 102e lrw r1, 0xb825 // 9fa4 + 9f6e: 3000 movi r0, 0 + 9f70: e3ffed62 bsr 0x7a34 // 7a34 +} + 9f74: 07db br 0x9f2a // 9f2a + 9f76: 0000 bkpt + 9f78: 200005ec .long 0x200005ec + 9f7c: 20000728 .long 0x20000728 + 9f80: 200006ec .long 0x200006ec + 9f84: 2000005c .long 0x2000005c + 9f88: 00001388 .long 0x00001388 + 9f8c: 0000b7a8 .long 0x0000b7a8 + 9f90: 0000b7bd .long 0x0000b7bd + 9f94: 0000b7d1 .long 0x0000b7d1 + 9f98: 0000b7e3 .long 0x0000b7e3 + 9f9c: 0000b7f2 .long 0x0000b7f2 + 9fa0: 0000b80e .long 0x0000b80e + 9fa4: 0000b825 .long 0x0000b825 + +Disassembly of section .text.Boot_Comm_CheckSum: + +00009fa8 : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 9fa8: 14c1 push r4 + U8_T sum = 0; + 9faa: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 9fac: 1047 lrw r2, 0xffff // 9fc8 + 9fae: 2900 subi r1, 1 + 9fb0: 7445 zexth r1, r1 + 9fb2: 6486 cmpne r1, r2 + 9fb4: 0804 bt 0x9fbc // 9fbc + { + sum += buffer[i]; + i++; + } + return (~sum); + 9fb6: 6cce nor r3, r3 + 9fb8: 740c zextb r0, r3 +} + 9fba: 1481 pop r4 + sum += buffer[i]; + 9fbc: 8080 ld.b r4, (r0, 0x0) + 9fbe: 60d0 addu r3, r4 + 9fc0: 74cc zextb r3, r3 + 9fc2: 2000 addi r0, 1 + 9fc4: 07f5 br 0x9fae // 9fae + 9fc6: 0000 bkpt + 9fc8: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +00009fcc : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 9fcc: 14d4 push r4-r7, r15 + 9fce: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fd0: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 9fd2: 1077 lrw r3, 0x200004bc // a02c + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fd4: 47e1 lsli r7, r7, 1 + 9fd6: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 9fd8: 8340 ld.b r2, (r3, 0x0) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 9fda: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fdc: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 9fde: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fe0: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 9fe2: 1074 lrw r3, 0x200005ec // a030 + 9fe4: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fe6: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 9fe8: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + 9fea: 8062 ld.b r3, (r0, 0x2) + 9fec: a06b st.b r3, (r0, 0xb) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 9fee: 4d68 lsri r3, r5, 8 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 9ff0: 58ce addi r6, r0, 4 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 9ff2: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 9ff4: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 9ff6: 8041 ld.b r2, (r0, 0x1) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 9ff8: 3300 movi r3, 0 +{ + 9ffa: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 9ffc: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + 9ffe: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a000: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a002: 6c57 mov r1, r5 + a004: 6c1b mov r0, r6 + a006: e3ffffd1 bsr 0x9fa8 // 9fa8 + a00a: a40a st.b r0, (r4, 0xa) + +#if DBG_LOG_EN + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"ACKBuff ",ack_uart->ackBuffer,data_len); + a00c: 6cd7 mov r3, r5 + a00e: 6c9b mov r2, r6 + a010: 1029 lrw r1, 0xb83b // a034 + a012: 3000 movi r0, 0 + a014: e3ffede2 bsr 0x7bd8 // 7bd8 +#endif + + //MCU485_SendData(ack_uart->ackBuffer, data_len); + Set_GroupSend(ack_uart->ackBuffer,data_len,0x01,ack_uart->ackValidity,100); + a018: 3264 movi r2, 100 + a01a: 8f79 ld.h r3, (r7, 0x32) + a01c: 6c57 mov r1, r5 + a01e: b840 st.w r2, (r14, 0x0) + a020: 6c1b mov r0, r6 + a022: 3201 movi r2, 1 + a024: e3ffec7a bsr 0x7918 // 7918 + + //ack_uart->ackLen = 0x00; +} + a028: 1401 addi r14, r14, 4 + a02a: 1494 pop r4-r7, r15 + a02c: 200004bc .long 0x200004bc + a030: 200005ec .long 0x200005ec + a034: 0000b83b .long 0x0000b83b + +Disassembly of section .text.Boot_Time_Refresh: + +0000a038 : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + a038: 1063 lrw r3, 0x200000c4 // a044 + a03a: 9340 ld.w r2, (r3, 0x0) + a03c: 1063 lrw r3, 0x200006ec // a048 + a03e: b34e st.w r2, (r3, 0x38) +} + a040: 783c jmp r15 + a042: 0000 bkpt + a044: 200000c4 .long 0x200000c4 + a048: 200006ec .long 0x200006ec + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +0000a04c : +{ + a04c: 14d4 push r4-r7, r15 + a04e: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + a050: 8065 ld.b r3, (r0, 0x5) + a052: 8044 ld.b r2, (r0, 0x4) + a054: 4368 lsli r3, r3, 8 + a056: 6cc8 or r3, r2 + if(len != data_len) { + a058: 644e cmpne r3, r1 +{ + a05a: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + a05c: b862 st.w r3, (r14, 0x8) + if(len != data_len) { + a05e: 0c08 bf 0xa06e // a06e + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Fail "); + a060: 3000 movi r0, 0 + a062: 1333 lrw r1, 0xb844 // a22c + a064: e3ffece8 bsr 0x7a34 // 7a34 + return 0x01; + a068: 3001 movi r0, 1 +} + a06a: 1403 addi r14, r14, 12 + a06c: 1494 pop r4-r7, r15 + if(Boot_Comm_CheckSum(data,len) != 0) { + a06e: 9822 ld.w r1, (r14, 0x8) + a070: e3ffff9c bsr 0x9fa8 // 9fa8 + a074: 3840 cmpnei r0, 0 + a076: b801 st.w r0, (r14, 0x4) + a078: 0c07 bf 0xa086 // a086 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_CheckSum Fail "); + a07a: 3000 movi r0, 0 + a07c: 132d lrw r1, 0xb84e // a230 + a07e: e3ffecdb bsr 0x7a34 // 7a34 + return 0x02; + a082: 3002 movi r0, 2 + a084: 07f3 br 0xa06a // a06a + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a086: 8561 ld.b r3, (r5, 0x1) + a088: 748e sextb r2, r3 + a08a: 3adf btsti r2, 31 + a08c: 138a lrw r4, 0x200005ec // a234 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a08e: 8421 ld.b r1, (r4, 0x1) + a090: 320f movi r2, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a092: 0c23 bf 0xa0d8 // a0d8 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a094: 68c8 and r3, r2 + a096: 64c6 cmpne r1, r3 + a098: 0c0b bf 0xa0ae // a0ae + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN Disaffinity,Processing Data"); + a09a: 1328 lrw r1, 0xb867 // a238 + a09c: 3000 movi r0, 0 + a09e: e3ffeccb bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0a2: 3300 movi r3, 0 + a0a4: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a0a6: 3701 movi r7, 1 + deal_flag = 0x01; + a0a8: 3301 movi r3, 1 + deal_flag = 0x01; + a0aa: b861 st.w r3, (r14, 0x4) + a0ac: 0408 br 0xa0bc // a0bc + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN The Same,No Processing Data"); + a0ae: 1324 lrw r1, 0xb891 // a23c + a0b0: 3000 movi r0, 0 + a0b2: e3ffecc1 bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0b6: 3300 movi r3, 0 + a0b8: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a0ba: 3701 movi r7, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + a0bc: 13c1 lrw r6, 0x200004bc // a240 + a0be: 8562 ld.b r3, (r5, 0x2) + a0c0: 8641 ld.b r2, (r6, 0x1) + a0c2: 648e cmpne r3, r2 + a0c4: 0c28 bf 0xa114 // a114 + a0c6: 31ff movi r1, 255 + a0c8: 644e cmpne r3, r1 + a0ca: 0c25 bf 0xa114 // a114 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvType %d - %d ",g_mcu_dev.dev_type,data[BCOMM_FMT_TYPE]); + a0cc: 3000 movi r0, 0 + a0ce: 123e lrw r1, 0xb911 // a244 + a0d0: e3ffecb2 bsr 0x7a34 // 7a34 + return 0x03; + a0d4: 3003 movi r0, 3 + a0d6: 07ca br 0xa06a // a06a + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a0d8: 688c and r2, r3 + a0da: 6486 cmpne r1, r2 + a0dc: 0c09 bf 0xa0ee // a0ee + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN Disaffinity,Processing Data"); + a0de: 123b lrw r1, 0xb8bb // a248 + a0e0: 3000 movi r0, 0 + a0e2: e3ffeca9 bsr 0x7a34 // 7a34 + reply_flag = 0x01; + a0e6: 3301 movi r3, 1 + group_flag = 0x00; + a0e8: 3700 movi r7, 0 + reply_flag = 0x01; + a0ea: b860 st.w r3, (r14, 0x0) + a0ec: 07df br 0xa0aa // a0aa + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + a0ee: 3240 movi r2, 64 + a0f0: 68c8 and r3, r2 + a0f2: 3b40 cmpnei r3, 0 + a0f4: 0c0d bf 0xa10e // a10e + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + a0f6: 846b ld.b r3, (r4, 0xb) + a0f8: 8547 ld.b r2, (r5, 0x7) + a0fa: 64ca cmpne r2, r3 + a0fc: 64c3 mvcv r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0fe: 74cc zextb r3, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a100: 1233 lrw r1, 0xb8e6 // a24c + a102: 3000 movi r0, 0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a104: b860 st.w r3, (r14, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a106: e3ffec97 bsr 0x7a34 // 7a34 + group_flag = 0x00; + a10a: 3700 movi r7, 0 + a10c: 07d8 br 0xa0bc // a0bc + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a10e: 3300 movi r3, 0 + a110: b860 st.w r3, (r14, 0x0) + a112: 07fc br 0xa10a // a10a + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + a114: 8563 ld.b r3, (r5, 0x3) + a116: 8640 ld.b r2, (r6, 0x0) + a118: 648e cmpne r3, r2 + a11a: 0c0a bf 0xa12e // a12e + a11c: 31ff movi r1, 255 + a11e: 644e cmpne r3, r1 + a120: 0c07 bf 0xa12e // a12e + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvAddr %d - %d ",g_mcu_dev.dev_addr,data[BCOMM_FMT_RXAddr]); + a122: 3000 movi r0, 0 + a124: 122b lrw r1, 0xb92d // a250 + a126: e3ffec87 bsr 0x7a34 // 7a34 + return 0x04; + a12a: 3004 movi r0, 4 + a12c: 079f br 0xa06a // a06a + Boot_Time_Refresh(); + a12e: e3ffff85 bsr 0xa038 // a038 + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + a132: 8560 ld.b r3, (r5, 0x0) + a134: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + a136: 8561 ld.b r3, (r5, 0x1) + a138: 320f movi r2, 15 + a13a: 68c8 and r3, r2 + a13c: a461 st.b r3, (r4, 0x1) + switch(g_boot.cmd){ + a13e: 32c0 movi r2, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a140: 8567 ld.b r3, (r5, 0x7) + switch(g_boot.cmd){ + a142: 648e cmpne r3, r2 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a144: a462 st.b r3, (r4, 0x2) + switch(g_boot.cmd){ + a146: 0c06 bf 0xa152 // a152 + a148: 32c1 movi r2, 193 + a14a: 648e cmpne r3, r2 + a14c: 0c53 bf 0xa1f2 // a1f2 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a14e: 3301 movi r3, 1 + a150: 045f br 0xa20e // a20e + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + a152: 9861 ld.w r3, (r14, 0x4) + a154: 3b41 cmpnei r3, 1 + a156: 081d bt 0xa190 // a190 + a158: 9862 ld.w r3, (r14, 0x8) + a15a: 3b0b cmphsi r3, 12 + a15c: 0c1a bf 0xa190 // a190 + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Handshake Proecessing "); + a15e: 113e lrw r1, 0xb949 // a254 + a160: 3000 movi r0, 0 + a162: e3ffec69 bsr 0x7a34 // 7a34 + temp_data |= data[BCOMM_FMT_PARAM]; + a166: 8549 ld.b r2, (r5, 0x9) + a168: 8568 ld.b r3, (r5, 0x8) + a16a: 4248 lsli r2, r2, 8 + a16c: 6c8c or r2, r3 + if(temp_data != g_boot.bootTimeout){ + a16e: 117b lrw r3, 0x200006ec // a258 + a170: 932d ld.w r1, (r3, 0x34) + a172: 644a cmpne r2, r1 + a174: 0c09 bf 0xa186 // a186 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a176: 3a09 cmphsi r2, 10 + a178: 0c3b bf 0xa1ee // a1ee + a17a: b34d st.w r2, (r3, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + a17c: 31fa movi r1, 250 + a17e: 934d ld.w r2, (r3, 0x34) + a180: 4122 lsli r1, r1, 2 + a182: 7c84 mult r2, r1 + a184: b34d st.w r2, (r3, 0x34) + a186: 854b ld.b r2, (r5, 0xb) + a188: 852a ld.b r1, (r5, 0xa) + a18a: 4248 lsli r2, r2, 8 + a18c: 6c84 or r2, r1 + g_boot.ackValidity = temp_data; + a18e: ab59 st.h r2, (r3, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + a190: 9860 ld.w r3, (r14, 0x0) + a192: 3b41 cmpnei r3, 1 + a194: 0b6b bt 0xa06a // a06a + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + a196: 3302 movi r3, 2 + a198: a46c st.b r3, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + a19a: 8662 ld.b r3, (r6, 0x2) + a19c: a46d st.b r3, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + a19e: 8663 ld.b r3, (r6, 0x3) + a1a0: a46e st.b r3, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + a1a2: 3303 movi r3, 3 + a1a4: a46f st.b r3, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + a1a6: 116e lrw r3, 0x2000005c // a25c + a1a8: 9360 ld.w r3, (r3, 0x0) + a1aa: 237f addi r3, 128 + a1ac: 9359 ld.w r2, (r3, 0x64) + a1ae: a450 st.b r2, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + a1b0: 935a ld.w r2, (r3, 0x68) + a1b2: a451 st.b r2, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + a1b4: 937b ld.w r3, (r3, 0x6c) + a1b6: a472 st.b r3, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + a1b8: 8644 ld.b r2, (r6, 0x4) + a1ba: 3320 movi r3, 32 + a1bc: 648c cmphs r3, r2 + a1be: 0802 bt 0xa1c2 // a1c2 + a1c0: a664 st.b r3, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + a1c2: 8664 ld.b r3, (r6, 0x4) + a1c4: a473 st.b r3, (r4, 0x13) + a1c6: 3320 movi r3, 32 + a1c8: 103e lrw r1, 0x200004bc // a240 + a1ca: 105b lrw r2, 0x200005ec // a234 + a1cc: 2b00 subi r3, 1 + a1ce: 74cc zextb r3, r3 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + a1d0: 8105 ld.b r0, (r1, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + a1dc: 107f lrw r3, 0x200006ec // a258 + a1de: 3228 movi r2, 40 + a1e0: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a1e2: 3f40 cmpnei r7, 0 + a1e4: 0b43 bt 0xa06a // a06a + Boot_Comm_FillReplyPack(&g_boot); + a1e6: 1014 lrw r0, 0x200005ec // a234 + a1e8: e3fffef2 bsr 0x9fcc // 9fcc + a1ec: 073f br 0xa06a // a06a + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a1ee: 320a movi r2, 10 + a1f0: 07c5 br 0xa17a // a17a + if(deal_flag != 0x01) break; //不处理直接退出 + a1f2: 9861 ld.w r3, (r14, 0x4) + a1f4: 3b41 cmpnei r3, 1 + a1f6: 0810 bt 0xa216 // a216 + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Jump Proecessing "); + a1f8: 103a lrw r1, 0xb96a // a260 + a1fa: 3000 movi r0, 0 + a1fc: e3ffec1c bsr 0x7a34 // 7a34 + if(data[BCOMM_FMT_PARAM] == 0x01){ + a200: 8568 ld.b r3, (r5, 0x8) + a202: 3b41 cmpnei r3, 1 + a204: 080e bt 0xa220 // a220 + BUS485_Jump_Boot(0x01); + a206: 3001 movi r0, 1 + a208: e3ffebc2 bsr 0x798c // 798c + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + a20c: 3300 movi r3, 0 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a20e: a46c st.b r3, (r4, 0xc) + g_boot.ackLen = 1; + a210: 3201 movi r2, 1 + a212: 1072 lrw r3, 0x200006ec // a258 + a214: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a216: 3f40 cmpnei r7, 0 + a218: 0b29 bt 0xa06a // a06a + a21a: 9860 ld.w r3, (r14, 0x0) + a21c: 3b41 cmpnei r3, 1 + a21e: 07e3 br 0xa1e4 // a1e4 + Dbg_Println(DBG_BIT_SYS_STATUS,"ERR:Jump_boot"); + a220: 1031 lrw r1, 0xb986 // a264 + a222: 3000 movi r0, 0 + a224: e3ffec08 bsr 0x7a34 // 7a34 + a228: 0793 br 0xa14e // a14e + a22a: 0000 bkpt + a22c: 0000b844 .long 0x0000b844 + a230: 0000b84e .long 0x0000b84e + a234: 200005ec .long 0x200005ec + a238: 0000b867 .long 0x0000b867 + a23c: 0000b891 .long 0x0000b891 + a240: 200004bc .long 0x200004bc + a244: 0000b911 .long 0x0000b911 + a248: 0000b8bb .long 0x0000b8bb + a24c: 0000b8e6 .long 0x0000b8e6 + a250: 0000b92d .long 0x0000b92d + a254: 0000b949 .long 0x0000b949 + a258: 200006ec .long 0x200006ec + a25c: 2000005c .long 0x2000005c + a260: 0000b96a .long 0x0000b96a + a264: 0000b986 .long 0x0000b986 + +Disassembly of section .text.TK_Sampling_prog: + +0000a268 : + a268: 14c4 push r4-r7 + a26a: 1072 lrw r3, 0x20000054 // a2b0 + a26c: 1012 lrw r0, 0x20000ace // a2b4 + a26e: 1093 lrw r4, 0x2000093f // a2b8 + a270: 6d83 mov r6, r0 + a272: 93a0 ld.w r5, (r3, 0x0) + a274: 3300 movi r3, 0 + a276: 4342 lsli r2, r3, 2 + a278: 6094 addu r2, r5 + a27a: 9220 ld.w r1, (r2, 0x0) + a27c: 4341 lsli r2, r3, 1 + a27e: 6080 addu r2, r0 + a280: 7445 zexth r1, r1 + a282: aa20 st.h r1, (r2, 0x0) + a284: 8440 ld.b r2, (r4, 0x0) + a286: 3a41 cmpnei r2, 1 + a288: 080f bt 0xa2a6 // a2a6 + a28a: 3300 movi r3, 0 + a28c: 10ec lrw r7, 0x20000828 // a2bc + a28e: 4341 lsli r2, r3, 1 + a290: 5e28 addu r1, r6, r2 + a292: 8920 ld.h r1, (r1, 0x0) + a294: 2300 addi r3, 1 + a296: 7445 zexth r1, r1 + a298: 609c addu r2, r7 + a29a: 3b51 cmpnei r3, 17 + a29c: aa20 st.h r1, (r2, 0x0) + a29e: 0bf8 bt 0xa28e // a28e + a2a0: 3300 movi r3, 0 + a2a2: a460 st.b r3, (r4, 0x0) + a2a4: 3311 movi r3, 17 + a2a6: 2300 addi r3, 1 + a2a8: 74cc zextb r3, r3 + a2aa: 3b10 cmphsi r3, 17 + a2ac: 0fe5 bf 0xa276 // a276 + a2ae: 1484 pop r4-r7 + a2b0: 20000054 .long 0x20000054 + a2b4: 20000ace .long 0x20000ace + a2b8: 2000093f .long 0x2000093f + a2bc: 20000828 .long 0x20000828 + +Disassembly of section .text.TKEYIntHandler: + +0000a2c0 : + a2c0: 1460 nie + a2c2: 1462 ipush + a2c4: 14d1 push r4, r15 + a2c6: 109e lrw r4, 0x20000068 // a33c + a2c8: 9460 ld.w r3, (r4, 0x0) + a2ca: 3b40 cmpnei r3, 0 + a2cc: 080b bt 0xa2e2 // a2e2 + a2ce: 3301 movi r3, 1 + a2d0: b460 st.w r3, (r4, 0x0) + a2d2: 107c lrw r3, 0x200008bc // a340 + a2d4: 8360 ld.b r3, (r3, 0x0) + a2d6: 3b41 cmpnei r3, 1 + a2d8: 0805 bt 0xa2e2 // a2e2 + a2da: e3ffffc7 bsr 0xa268 // a268 + a2de: 3301 movi r3, 1 + a2e0: a464 st.b r3, (r4, 0x4) + a2e2: 1079 lrw r3, 0x20000058 // a344 + a2e4: 3101 movi r1, 1 + a2e6: 9360 ld.w r3, (r3, 0x0) + a2e8: 934a ld.w r2, (r3, 0x28) + a2ea: 6884 and r2, r1 + a2ec: 3a40 cmpnei r2, 0 + a2ee: 0c02 bf 0xa2f2 // a2f2 + a2f0: b32c st.w r1, (r3, 0x30) + a2f2: 934a ld.w r2, (r3, 0x28) + a2f4: 3102 movi r1, 2 + a2f6: 6884 and r2, r1 + a2f8: 3a40 cmpnei r2, 0 + a2fa: 0c02 bf 0xa2fe // a2fe + a2fc: b32c st.w r1, (r3, 0x30) + a2fe: 934a ld.w r2, (r3, 0x28) + a300: 3104 movi r1, 4 + a302: 6884 and r2, r1 + a304: 3a40 cmpnei r2, 0 + a306: 0c02 bf 0xa30a // a30a + a308: b32c st.w r1, (r3, 0x30) + a30a: 934a ld.w r2, (r3, 0x28) + a30c: 3108 movi r1, 8 + a30e: 6884 and r2, r1 + a310: 3a40 cmpnei r2, 0 + a312: 0c02 bf 0xa316 // a316 + a314: b32c st.w r1, (r3, 0x30) + a316: 934a ld.w r2, (r3, 0x28) + a318: 3110 movi r1, 16 + a31a: 6884 and r2, r1 + a31c: 3a40 cmpnei r2, 0 + a31e: 0c02 bf 0xa322 // a322 + a320: b32c st.w r1, (r3, 0x30) + a322: 934a ld.w r2, (r3, 0x28) + a324: 3120 movi r1, 32 + a326: 6884 and r2, r1 + a328: 3a40 cmpnei r2, 0 + a32a: 0c02 bf 0xa32e // a32e + a32c: b32c st.w r1, (r3, 0x30) + a32e: d9ee2001 ld.w r15, (r14, 0x4) + a332: 9880 ld.w r4, (r14, 0x0) + a334: 1402 addi r14, r14, 8 + a336: 1463 ipop + a338: 1461 nir + a33a: 0000 bkpt + a33c: 20000068 .long 0x20000068 + a340: 200008bc .long 0x200008bc + a344: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000a348 : + a348: 14c2 push r4-r5 + a34a: 3200 movi r2, 0 + a34c: 3000 movi r0, 0 + a34e: 1088 lrw r4, 0x2000095c // a36c + a350: 3501 movi r5, 1 + a352: 3120 movi r1, 32 + a354: 9460 ld.w r3, (r4, 0x0) + a356: 70c9 lsr r3, r2 + a358: 68d4 and r3, r5 + a35a: 3b40 cmpnei r3, 0 + a35c: 0c02 bf 0xa360 // a360 + a35e: 2000 addi r0, 1 + a360: 2200 addi r2, 1 + a362: 644a cmpne r2, r1 + a364: 0bf8 bt 0xa354 // a354 + a366: 7400 zextb r0, r0 + a368: 1482 pop r4-r5 + a36a: 0000 bkpt + a36c: 2000095c .long 0x2000095c + +Disassembly of section .text.TK_Scan_Start: + +0000a370 : + a370: 1046 lrw r2, 0x20000068 // a388 + a372: 8264 ld.b r3, (r2, 0x4) + a374: 74cc zextb r3, r3 + a376: 3b41 cmpnei r3, 1 + a378: 0807 bt 0xa386 // a386 + a37a: 1025 lrw r1, 0x20000058 // a38c + a37c: 9120 ld.w r1, (r1, 0x0) + a37e: b162 st.w r3, (r1, 0x8) + a380: 3300 movi r3, 0 + a382: b260 st.w r3, (r2, 0x0) + a384: a264 st.b r3, (r2, 0x4) + a386: 783c jmp r15 + a388: 20000068 .long 0x20000068 + a38c: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +0000a390 : + a390: 14d4 push r4-r7, r15 + a392: 1425 subi r14, r14, 20 + a394: 1271 lrw r3, 0x200001ac // a4d8 + a396: 8360 ld.b r3, (r3, 0x0) + a398: b860 st.w r3, (r14, 0x0) + a39a: 3400 movi r4, 0 + a39c: 1270 lrw r3, 0x20000180 // a4dc + a39e: 8360 ld.b r3, (r3, 0x0) + a3a0: b861 st.w r3, (r14, 0x4) + a3a2: 12f0 lrw r7, 0x200008d2 // a4e0 + a3a4: 1270 lrw r3, 0x20000189 // a4e4 + a3a6: 83a0 ld.b r5, (r3, 0x0) + a3a8: 1270 lrw r3, 0x20000188 // a4e8 + a3aa: 8360 ld.b r3, (r3, 0x0) + a3ac: b862 st.w r3, (r14, 0x8) + a3ae: 6d9f mov r6, r7 + a3b0: 126f lrw r3, 0x20000ace // a4ec + a3b2: b863 st.w r3, (r14, 0xc) + a3b4: 4461 lsli r3, r4, 1 + a3b6: 9843 ld.w r2, (r14, 0xc) + a3b8: 608c addu r2, r3 + a3ba: 122e lrw r1, 0x20000828 // a4f0 + a3bc: 604c addu r1, r3 + a3be: 8a40 ld.h r2, (r2, 0x0) + a3c0: 8920 ld.h r1, (r1, 0x0) + a3c2: 6086 subu r2, r1 + a3c4: 748b sexth r2, r2 + a3c6: 5f2c addu r1, r7, r3 + a3c8: a940 st.h r2, (r1, 0x0) + a3ca: 8940 ld.h r2, (r1, 0x0) + a3cc: 748b sexth r2, r2 + a3ce: 3adf btsti r2, 31 + a3d0: 1249 lrw r2, 0x20000a8a // a4f4 + a3d2: 608c addu r2, r3 + a3d4: 0c37 bf 0xa442 // a442 + a3d6: 3100 movi r1, 0 + a3d8: aa20 st.h r1, (r2, 0x0) + a3da: 9840 ld.w r2, (r14, 0x0) + a3dc: 3a01 cmphsi r2, 2 + a3de: 0c6d bf 0xa4b8 // a4b8 + a3e0: 4461 lsli r3, r4, 1 + a3e2: 5e2c addu r1, r6, r3 + a3e4: 1205 lrw r0, 0x200001da // a4f8 + a3e6: 8940 ld.h r2, (r1, 0x0) + a3e8: 60c0 addu r3, r0 + a3ea: 748b sexth r2, r2 + a3ec: 8b60 ld.h r3, (r3, 0x0) + a3ee: 648d cmplt r3, r2 + a3f0: 9840 ld.w r2, (r14, 0x0) + a3f2: 7cc8 mult r3, r2 + a3f4: 0c2a bf 0xa448 // a448 + a3f6: 8940 ld.h r2, (r1, 0x0) + a3f8: 748b sexth r2, r2 + a3fa: 64c9 cmplt r2, r3 + a3fc: 0c26 bf 0xa448 // a448 + a3fe: 1240 lrw r2, 0x200008c0 // a4fc + a400: 6090 addu r2, r4 + a402: 8260 ld.b r3, (r2, 0x0) + a404: 2300 addi r3, 1 + a406: 74cc zextb r3, r3 + a408: a260 st.b r3, (r2, 0x0) + a40a: 3100 movi r1, 0 + a40c: 117d lrw r3, 0x200008a6 // a500 + a40e: 60d0 addu r3, r4 + a410: a320 st.b r1, (r3, 0x0) + a412: 117d lrw r3, 0x20000982 // a504 + a414: 60d0 addu r3, r4 + a416: a320 st.b r1, (r3, 0x0) + a418: 117c lrw r3, 0x200009fc // a508 + a41a: 60d0 addu r3, r4 + a41c: a320 st.b r1, (r3, 0x0) + a41e: 8260 ld.b r3, (r2, 0x0) + a420: 9821 ld.w r1, (r14, 0x4) + a422: 64c4 cmphs r1, r3 + a424: 081f bt 0xa462 // a462 + a426: 3d40 cmpnei r5, 0 + a428: 0852 bt 0xa4cc // a4cc + a42a: 1139 lrw r1, 0x200008b8 // a50c + a42c: 9160 ld.w r3, (r1, 0x0) + a42e: 3b40 cmpnei r3, 0 + a430: 0806 bt 0xa43c // a43c + a432: 9100 ld.w r0, (r1, 0x0) + a434: 3301 movi r3, 1 + a436: 70d0 lsl r3, r4 + a438: 6cc0 or r3, r0 + a43a: b160 st.w r3, (r1, 0x0) + a43c: 3300 movi r3, 0 + a43e: a260 st.b r3, (r2, 0x0) + a440: 0411 br 0xa462 // a462 + a442: 8920 ld.h r1, (r1, 0x0) + a444: 7445 zexth r1, r1 + a446: 07c9 br 0xa3d8 // a3d8 + a448: 4441 lsli r2, r4, 1 + a44a: 6098 addu r2, r6 + a44c: 8a40 ld.h r2, (r2, 0x0) + a44e: 748b sexth r2, r2 + a450: 648d cmplt r3, r2 + a452: 0c08 bf 0xa462 // a462 + a454: 3300 movi r3, 0 + a456: 114e lrw r2, 0x200008b8 // a50c + a458: 2b01 subi r3, 2 + a45a: 9220 ld.w r1, (r2, 0x0) + a45c: 70d3 rotl r3, r4 + a45e: 68c4 and r3, r1 + a460: b260 st.w r3, (r2, 0x0) + a462: 4441 lsli r2, r4, 1 + a464: 5e68 addu r3, r6, r2 + a466: 8b60 ld.h r3, (r3, 0x0) + a468: 74cf sexth r3, r3 + a46a: b864 st.w r3, (r14, 0x10) + a46c: 3105 movi r1, 5 + a46e: 1163 lrw r3, 0x200001da // a4f8 + a470: 608c addu r2, r3 + a472: 8a00 ld.h r0, (r2, 0x0) + a474: 4002 lsli r0, r0, 2 + a476: e3ffe817 bsr 0x74a4 // 74a4 <__divsi3> + a47a: 9864 ld.w r3, (r14, 0x10) + a47c: 640d cmplt r3, r0 + a47e: 0c18 bf 0xa4ae // a4ae + a480: 1140 lrw r2, 0x200008a6 // a500 + a482: 6090 addu r2, r4 + a484: 8260 ld.b r3, (r2, 0x0) + a486: 2300 addi r3, 1 + a488: 74cc zextb r3, r3 + a48a: a260 st.b r3, (r2, 0x0) + a48c: 3100 movi r1, 0 + a48e: 107c lrw r3, 0x200008c0 // a4fc + a490: 60d0 addu r3, r4 + a492: a320 st.b r1, (r3, 0x0) + a494: 8260 ld.b r3, (r2, 0x0) + a496: 9822 ld.w r1, (r14, 0x8) + a498: 64c4 cmphs r1, r3 + a49a: 080a bt 0xa4ae // a4ae + a49c: 3300 movi r3, 0 + a49e: 103c lrw r1, 0x200008b8 // a50c + a4a0: 2b01 subi r3, 2 + a4a2: 9100 ld.w r0, (r1, 0x0) + a4a4: 70d3 rotl r3, r4 + a4a6: 68c0 and r3, r0 + a4a8: b160 st.w r3, (r1, 0x0) + a4aa: 3300 movi r3, 0 + a4ac: a260 st.b r3, (r2, 0x0) + a4ae: 2400 addi r4, 1 + a4b0: 3c51 cmpnei r4, 17 + a4b2: 0b81 bt 0xa3b4 // a3b4 + a4b4: 1405 addi r14, r14, 20 + a4b6: 1494 pop r4-r7, r15 + a4b8: 60d8 addu r3, r6 + a4ba: 4441 lsli r2, r4, 1 + a4bc: 102f lrw r1, 0x200001da // a4f8 + a4be: 8b60 ld.h r3, (r3, 0x0) + a4c0: 6084 addu r2, r1 + a4c2: 74cf sexth r3, r3 + a4c4: 8a40 ld.h r2, (r2, 0x0) + a4c6: 64c9 cmplt r2, r3 + a4c8: 0fcd bf 0xa462 // a462 + a4ca: 079a br 0xa3fe // a3fe + a4cc: 3d41 cmpnei r5, 1 + a4ce: 0bb7 bt 0xa43c // a43c + a4d0: 102f lrw r1, 0x200008b8 // a50c + a4d2: 6cd7 mov r3, r5 + a4d4: 9100 ld.w r0, (r1, 0x0) + a4d6: 07b0 br 0xa436 // a436 + a4d8: 200001ac .long 0x200001ac + a4dc: 20000180 .long 0x20000180 + a4e0: 200008d2 .long 0x200008d2 + a4e4: 20000189 .long 0x20000189 + a4e8: 20000188 .long 0x20000188 + a4ec: 20000ace .long 0x20000ace + a4f0: 20000828 .long 0x20000828 + a4f4: 20000a8a .long 0x20000a8a + a4f8: 200001da .long 0x200001da + a4fc: 200008c0 .long 0x200008c0 + a500: 200008a6 .long 0x200008a6 + a504: 20000982 .long 0x20000982 + a508: 200009fc .long 0x200009fc + a50c: 200008b8 .long 0x200008b8 + +Disassembly of section .text.TK_overflow_predict: + +0000a510 : + a510: 14d4 push r4-r7, r15 + a512: 1421 subi r14, r14, 4 + a514: 11d9 lrw r6, 0x20000068 // a5f8 + a516: 8665 ld.b r3, (r6, 0x5) + a518: 3b41 cmpnei r3, 1 + a51a: 085f bt 0xa5d8 // a5d8 + a51c: 1158 lrw r2, 0x200009d8 // a5fc + a51e: 8260 ld.b r3, (r2, 0x0) + a520: 2300 addi r3, 1 + a522: 74cc zextb r3, r3 + a524: a260 st.b r3, (r2, 0x0) + a526: 8260 ld.b r3, (r2, 0x0) + a528: 1136 lrw r1, 0x200001ad // a600 + a52a: 8120 ld.b r1, (r1, 0x0) + a52c: 64c4 cmphs r1, r3 + a52e: 0855 bt 0xa5d8 // a5d8 + a530: 3300 movi r3, 0 + a532: a260 st.b r3, (r2, 0x0) + a534: 3500 movi r5, 0 + a536: 11f4 lrw r7, 0x200001b0 // a604 + a538: 2605 addi r6, 6 + a53a: 9760 ld.w r3, (r7, 0x0) + a53c: 70d5 lsr r3, r5 + a53e: 3201 movi r2, 1 + a540: 68c8 and r3, r2 + a542: 3b40 cmpnei r3, 0 + a544: 0c34 bf 0xa5ac // a5ac + a546: 4581 lsli r4, r5, 1 + a548: 5e70 addu r3, r6, r4 + a54a: 8b00 ld.h r0, (r3, 0x0) + a54c: e3ffcee2 bsr 0x4310 // 4310 <__floatunsidf> + a550: 6cc7 mov r3, r1 + a552: 3180 movi r1, 128 + a554: 6c83 mov r2, r0 + a556: 4137 lsli r1, r1, 23 + a558: 3000 movi r0, 0 + a55a: e3ffc22d bsr 0x29b4 // 29b4 <__GI_pow> + a55e: 116b lrw r3, 0x200001b6 // a608 + a560: 60d0 addu r3, r4 + a562: 8b60 ld.h r3, (r3, 0x0) + a564: 4364 lsli r3, r3, 4 + a566: 230e addi r3, 15 + a568: b860 st.w r3, (r14, 0x0) + a56a: e3ffc7f9 bsr 0x355c // 355c <__fixunsdfsi> + a56e: 9860 ld.w r3, (r14, 0x0) + a570: 7cc0 mult r3, r0 + a572: 1147 lrw r2, 0x20000a68 // a60c + a574: 740d zexth r0, r3 + a576: 6090 addu r2, r4 + a578: 1166 lrw r3, 0x20000ace // a610 + a57a: 60d0 addu r3, r4 + a57c: aa00 st.h r0, (r2, 0x0) + a57e: 8b60 ld.h r3, (r3, 0x0) + a580: 8a00 ld.h r0, (r2, 0x0) + a582: 7401 zexth r0, r0 + a584: 325f movi r2, 95 + a586: 74cd zexth r3, r3 + a588: 7c08 mult r0, r2 + a58a: 3164 movi r1, 100 + a58c: b860 st.w r3, (r14, 0x0) + a58e: e3ffe78b bsr 0x74a4 // 74a4 <__divsi3> + a592: 9860 ld.w r3, (r14, 0x0) + a594: 64c1 cmplt r0, r3 + a596: 0c0b bf 0xa5ac // a5ac + a598: 107f lrw r3, 0x2000018a // a614 + a59a: 610c addu r4, r3 + a59c: 8c60 ld.h r3, (r4, 0x0) + a59e: 3b06 cmphsi r3, 7 + a5a0: 0806 bt 0xa5ac // a5ac + a5a2: 2300 addi r3, 1 + a5a4: ac60 st.h r3, (r4, 0x0) + a5a6: 3201 movi r2, 1 + a5a8: 107c lrw r3, 0x2000092d // a618 + a5aa: a340 st.b r2, (r3, 0x0) + a5ac: 2500 addi r5, 1 + a5ae: 3d51 cmpnei r5, 17 + a5b0: 0bc5 bt 0xa53a // a53a + a5b2: 107a lrw r3, 0x2000092d // a618 + a5b4: 8340 ld.b r2, (r3, 0x0) + a5b6: 3a41 cmpnei r2, 1 + a5b8: 0810 bt 0xa5d8 // a5d8 + a5ba: 3200 movi r2, 0 + a5bc: a340 st.b r2, (r3, 0x0) + a5be: 3200 movi r2, 0 + a5c0: 1077 lrw r3, 0x20000058 // a61c + a5c2: 1018 lrw r0, 0x200009fb // a620 + a5c4: 10b8 lrw r5, 0x20000a34 // a624 + a5c6: 10d4 lrw r6, 0x2000018a // a614 + a5c8: 9360 ld.w r3, (r3, 0x0) + a5ca: b342 st.w r2, (r3, 0x8) + a5cc: 1077 lrw r3, 0x20000054 // a628 + a5ce: 9380 ld.w r4, (r3, 0x0) + a5d0: 3300 movi r3, 0 + a5d2: 8040 ld.b r2, (r0, 0x0) + a5d4: 648c cmphs r3, r2 + a5d6: 0c03 bf 0xa5dc // a5dc + a5d8: 1401 addi r14, r14, 4 + a5da: 1494 pop r4-r7, r15 + a5dc: 5d4c addu r2, r5, r3 + a5de: 8240 ld.b r2, (r2, 0x0) + a5e0: 4241 lsli r2, r2, 1 + a5e2: 4322 lsli r1, r3, 2 + a5e4: 6098 addu r2, r6 + a5e6: 6050 addu r1, r4 + a5e8: 8a40 ld.h r2, (r2, 0x0) + a5ea: 91f2 ld.w r7, (r1, 0x48) + a5ec: 4254 lsli r2, r2, 20 + a5ee: 6c9c or r2, r7 + a5f0: 2300 addi r3, 1 + a5f2: b152 st.w r2, (r1, 0x48) + a5f4: 74cc zextb r3, r3 + a5f6: 07ee br 0xa5d2 // a5d2 + a5f8: 20000068 .long 0x20000068 + a5fc: 200009d8 .long 0x200009d8 + a600: 200001ad .long 0x200001ad + a604: 200001b0 .long 0x200001b0 + a608: 200001b6 .long 0x200001b6 + a60c: 20000a68 .long 0x20000a68 + a610: 20000ace .long 0x20000ace + a614: 2000018a .long 0x2000018a + a618: 2000092d .long 0x2000092d + a61c: 20000058 .long 0x20000058 + a620: 200009fb .long 0x200009fb + a624: 20000a34 .long 0x20000a34 + a628: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +0000a62c : + a62c: 14c4 push r4-r7 + a62e: 1422 subi r14, r14, 8 + a630: 1348 lrw r2, 0x2000095a // a7d0 + a632: 8260 ld.b r3, (r2, 0x0) + a634: 2300 addi r3, 1 + a636: 74cc zextb r3, r3 + a638: a260 st.b r3, (r2, 0x0) + a63a: 8260 ld.b r3, (r2, 0x0) + a63c: 1326 lrw r1, 0x200001ad // a7d4 + a63e: 8120 ld.b r1, (r1, 0x0) + a640: 644c cmphs r3, r1 + a642: 0cad bf 0xa79c // a79c + a644: 3300 movi r3, 0 + a646: a260 st.b r3, (r2, 0x0) + a648: 1364 lrw r3, 0x200008b8 // a7d8 + a64a: 9360 ld.w r3, (r3, 0x0) + a64c: 3b40 cmpnei r3, 0 + a64e: 08a7 bt 0xa79c // a79c + a650: 1323 lrw r1, 0x200008d2 // a7dc + a652: 6dc7 mov r7, r1 + a654: b820 st.w r1, (r14, 0x0) + a656: 3200 movi r2, 0 + a658: 1362 lrw r3, 0x200001da // a7e0 + a65a: 1323 lrw r1, 0x20000828 // a7e4 + a65c: 4201 lsli r0, r2, 1 + a65e: 9880 ld.w r4, (r14, 0x0) + a660: 6100 addu r4, r0 + a662: 8c80 ld.h r4, (r4, 0x0) + a664: 7513 sexth r4, r4 + a666: 3cdf btsti r4, 31 + a668: 0c27 bf 0xa6b6 // a6b6 + a66a: 13a0 lrw r5, 0x20000ace // a7e8 + a66c: 5980 addu r4, r1, r0 + a66e: 6014 addu r0, r5 + a670: b881 st.w r4, (r14, 0x4) + a672: 8c80 ld.h r4, (r4, 0x0) + a674: 88c0 ld.h r6, (r0, 0x0) + a676: 7511 zexth r4, r4 + a678: 7599 zexth r6, r6 + a67a: 8ba0 ld.h r5, (r3, 0x0) + a67c: 611a subu r4, r6 + a67e: 6551 cmplt r4, r5 + a680: 081b bt 0xa6b6 // a6b6 + a682: 9881 ld.w r4, (r14, 0x4) + a684: 8c80 ld.h r4, (r4, 0x0) + a686: 8800 ld.h r0, (r0, 0x0) + a688: 7511 zexth r4, r4 + a68a: 7401 zexth r0, r0 + a68c: 5c01 subu r0, r4, r0 + a68e: 4581 lsli r4, r5, 1 + a690: 6150 addu r5, r4 + a692: 6541 cmplt r0, r5 + a694: 0c11 bf 0xa6b6 // a6b6 + a696: 1296 lrw r4, 0x200009fc // a7ec + a698: 6108 addu r4, r2 + a69a: 8400 ld.b r0, (r4, 0x0) + a69c: 2000 addi r0, 1 + a69e: 7400 zextb r0, r0 + a6a0: a400 st.b r0, (r4, 0x0) + a6a2: 1214 lrw r0, 0x20000088 // a7f0 + a6a4: 84a0 ld.b r5, (r4, 0x0) + a6a6: 8008 ld.b r0, (r0, 0x8) + a6a8: 6540 cmphs r0, r5 + a6aa: 0806 bt 0xa6b6 // a6b6 + a6ac: 1212 lrw r0, 0x2000093f // a7f4 + a6ae: 3501 movi r5, 1 + a6b0: a0a0 st.b r5, (r0, 0x0) + a6b2: 3000 movi r0, 0 + a6b4: a400 st.b r0, (r4, 0x0) + a6b6: 4201 lsli r0, r2, 1 + a6b8: 5f80 addu r4, r7, r0 + a6ba: 8c80 ld.h r4, (r4, 0x0) + a6bc: 7513 sexth r4, r4 + a6be: 3c20 cmplti r4, 1 + a6c0: 0870 bt 0xa7a0 // a7a0 + a6c2: 128a lrw r4, 0x20000ace // a7e8 + a6c4: 6100 addu r4, r0 + a6c6: 59a0 addu r5, r1, r0 + a6c8: 8c80 ld.h r4, (r4, 0x0) + a6ca: 8da0 ld.h r5, (r5, 0x0) + a6cc: 7555 zexth r5, r5 + a6ce: 7511 zexth r4, r4 + a6d0: 6116 subu r4, r5 + a6d2: 8ba0 ld.h r5, (r3, 0x0) + a6d4: 45a2 lsli r5, r5, 2 + a6d6: 6551 cmplt r4, r5 + a6d8: 0864 bt 0xa7a0 // a7a0 + a6da: 1288 lrw r4, 0x20000982 // a7f8 + a6dc: 6108 addu r4, r2 + a6de: 84a0 ld.b r5, (r4, 0x0) + a6e0: 2500 addi r5, 1 + a6e2: 7554 zextb r5, r5 + a6e4: a4a0 st.b r5, (r4, 0x0) + a6e6: 12a3 lrw r5, 0x20000088 // a7f0 + a6e8: 84c0 ld.b r6, (r4, 0x0) + a6ea: 85a9 ld.b r5, (r5, 0x9) + a6ec: 6594 cmphs r5, r6 + a6ee: 0806 bt 0xa6fa // a6fa + a6f0: 12a1 lrw r5, 0x2000093f // a7f4 + a6f2: 3601 movi r6, 1 + a6f4: a5c0 st.b r6, (r5, 0x0) + a6f6: 3500 movi r5, 0 + a6f8: a4a0 st.b r5, (r4, 0x0) + a6fa: 5f80 addu r4, r7, r0 + a6fc: 8c80 ld.h r4, (r4, 0x0) + a6fe: 7513 sexth r4, r4 + a700: 3cdf btsti r4, 31 + a702: 0c10 bf 0xa722 // a722 + a704: 11d9 lrw r6, 0x20000ace // a7e8 + a706: 59a0 addu r5, r1, r0 + a708: 6180 addu r6, r0 + a70a: 8d80 ld.h r4, (r5, 0x0) + a70c: 8ec0 ld.h r6, (r6, 0x0) + a70e: 7599 zexth r6, r6 + a710: 7511 zexth r4, r4 + a712: 611a subu r4, r6 + a714: 8bc0 ld.h r6, (r3, 0x0) + a716: 6591 cmplt r4, r6 + a718: 0c05 bf 0xa722 // a722 + a71a: 8d80 ld.h r4, (r5, 0x0) + a71c: 2c00 subi r4, 1 + a71e: 7511 zexth r4, r4 + a720: ad80 st.h r4, (r5, 0x0) + a722: 5f80 addu r4, r7, r0 + a724: 8c80 ld.h r4, (r4, 0x0) + a726: 7513 sexth r4, r4 + a728: 3cdf btsti r4, 31 + a72a: 0c11 bf 0xa74c // a74c + a72c: 11cf lrw r6, 0x20000ace // a7e8 + a72e: 59a0 addu r5, r1, r0 + a730: 6180 addu r6, r0 + a732: 8d80 ld.h r4, (r5, 0x0) + a734: 8ec0 ld.h r6, (r6, 0x0) + a736: 7599 zexth r6, r6 + a738: 7511 zexth r4, r4 + a73a: 611a subu r4, r6 + a73c: 8bc0 ld.h r6, (r3, 0x0) + a73e: 4ec1 lsri r6, r6, 1 + a740: 6591 cmplt r4, r6 + a742: 0805 bt 0xa74c // a74c + a744: 8d80 ld.h r4, (r5, 0x0) + a746: 2c01 subi r4, 2 + a748: 7511 zexth r4, r4 + a74a: ad80 st.h r4, (r5, 0x0) + a74c: 5fa0 addu r5, r7, r0 + a74e: 8d80 ld.h r4, (r5, 0x0) + a750: 7513 sexth r4, r4 + a752: 3c20 cmplti r4, 1 + a754: 080c bt 0xa76c // a76c + a756: 8da0 ld.h r5, (r5, 0x0) + a758: 8b80 ld.h r4, (r3, 0x0) + a75a: 7557 sexth r5, r5 + a75c: 4c81 lsri r4, r4, 1 + a75e: 6515 cmplt r5, r4 + a760: 0c06 bf 0xa76c // a76c + a762: 59a0 addu r5, r1, r0 + a764: 8d80 ld.h r4, (r5, 0x0) + a766: 2400 addi r4, 1 + a768: 7511 zexth r4, r4 + a76a: ad80 st.h r4, (r5, 0x0) + a76c: 5fa0 addu r5, r7, r0 + a76e: 8d80 ld.h r4, (r5, 0x0) + a770: 7513 sexth r4, r4 + a772: 3c20 cmplti r4, 1 + a774: 0810 bt 0xa794 // a794 + a776: 8dc0 ld.h r6, (r5, 0x0) + a778: 759b sexth r6, r6 + a77a: 8b80 ld.h r4, (r3, 0x0) + a77c: 6519 cmplt r6, r4 + a77e: 0c0b bf 0xa794 // a794 + a780: 8da0 ld.h r5, (r5, 0x0) + a782: 7557 sexth r5, r5 + a784: 4c81 lsri r4, r4, 1 + a786: 6515 cmplt r5, r4 + a788: 0806 bt 0xa794 // a794 + a78a: 6004 addu r0, r1 + a78c: 8880 ld.h r4, (r0, 0x0) + a78e: 2401 addi r4, 2 + a790: 7511 zexth r4, r4 + a792: a880 st.h r4, (r0, 0x0) + a794: 2200 addi r2, 1 + a796: 3a51 cmpnei r2, 17 + a798: 2301 addi r3, 2 + a79a: 0b61 bt 0xa65c // a65c + a79c: 1402 addi r14, r14, 8 + a79e: 1484 pop r4-r7 + a7a0: 5f80 addu r4, r7, r0 + a7a2: 8c80 ld.h r4, (r4, 0x0) + a7a4: 7513 sexth r4, r4 + a7a6: 3cdf btsti r4, 31 + a7a8: 0fa9 bf 0xa6fa // a6fa + a7aa: 10b0 lrw r5, 0x20000ace // a7e8 + a7ac: 5980 addu r4, r1, r0 + a7ae: 6140 addu r5, r0 + a7b0: 8c80 ld.h r4, (r4, 0x0) + a7b2: 8da0 ld.h r5, (r5, 0x0) + a7b4: 7555 zexth r5, r5 + a7b6: 8bc0 ld.h r6, (r3, 0x0) + a7b8: 7511 zexth r4, r4 + a7ba: 6116 subu r4, r5 + a7bc: 46a1 lsli r5, r6, 1 + a7be: 6158 addu r5, r6 + a7c0: 6551 cmplt r4, r5 + a7c2: 0b9c bt 0xa6fa // a6fa + a7c4: 108c lrw r4, 0x2000093f // a7f4 + a7c6: 3501 movi r5, 1 + a7c8: a4a0 st.b r5, (r4, 0x0) + a7ca: 6c03 mov r0, r0 + a7cc: 0797 br 0xa6fa // a6fa + a7ce: 0000 bkpt + a7d0: 2000095a .long 0x2000095a + a7d4: 200001ad .long 0x200001ad + a7d8: 200008b8 .long 0x200008b8 + a7dc: 200008d2 .long 0x200008d2 + a7e0: 200001da .long 0x200001da + a7e4: 20000828 .long 0x20000828 + a7e8: 20000ace .long 0x20000ace + a7ec: 200009fc .long 0x200009fc + a7f0: 20000088 .long 0x20000088 + a7f4: 2000093f .long 0x2000093f + a7f8: 20000982 .long 0x20000982 + +Disassembly of section .text.TK_result_prog: + +0000a7fc : + a7fc: 14d2 push r4-r5, r15 + a7fe: 1050 lrw r2, 0x200008b8 // a83c + a800: 1090 lrw r4, 0x2000095c // a840 + a802: 9260 ld.w r3, (r2, 0x0) + a804: 3b40 cmpnei r3, 0 + a806: 0c02 bf 0xa80a // a80a + a808: 9260 ld.w r3, (r2, 0x0) + a80a: b460 st.w r3, (r4, 0x0) + a80c: 9460 ld.w r3, (r4, 0x0) + a80e: 3b40 cmpnei r3, 0 + a810: 10ad lrw r5, 0x20000a30 // a844 + a812: 0c11 bf 0xa834 // a834 + a814: 9440 ld.w r2, (r4, 0x0) + a816: 9560 ld.w r3, (r5, 0x0) + a818: 64ca cmpne r2, r3 + a81a: 0c03 bf 0xa820 // a820 + a81c: 9460 ld.w r3, (r4, 0x0) + a81e: b560 st.w r3, (r5, 0x0) + a820: e3fffd94 bsr 0xa348 // a348 + a824: 1069 lrw r3, 0x200001b4 // a848 + a826: 8360 ld.b r3, (r3, 0x0) + a828: 640c cmphs r3, r0 + a82a: 0804 bt 0xa832 // a832 + a82c: 3300 movi r3, 0 + a82e: b460 st.w r3, (r4, 0x0) + a830: b560 st.w r3, (r5, 0x0) + a832: 1492 pop r4-r5, r15 + a834: 1046 lrw r2, 0x20000954 // a84c + a836: b560 st.w r3, (r5, 0x0) + a838: b260 st.w r3, (r2, 0x0) + a83a: 07fc br 0xa832 // a832 + a83c: 200008b8 .long 0x200008b8 + a840: 2000095c .long 0x2000095c + a844: 20000a30 .long 0x20000a30 + a848: 200001b4 .long 0x200001b4 + a84c: 20000954 .long 0x20000954 + +Disassembly of section .text.CORETHandler: + +0000a850 : + a850: 1460 nie + a852: 1462 ipush + a854: 14d1 push r4, r15 + a856: 1077 lrw r3, 0x20000064 // a8b0 + a858: 3400 movi r4, 0 + a85a: 9360 ld.w r3, (r3, 0x0) + a85c: b386 st.w r4, (r3, 0x18) + a85e: 1076 lrw r3, 0x200008bc // a8b4 + a860: 8360 ld.b r3, (r3, 0x0) + a862: 3b41 cmpnei r3, 1 + a864: 0820 bt 0xa8a4 // a8a4 + a866: e3fffd85 bsr 0xa370 // a370 + a86a: e3fffd93 bsr 0xa390 // a390 + a86e: e3fffe51 bsr 0xa510 // a510 + a872: e3fffedd bsr 0xa62c // a62c + a876: e3ffffc3 bsr 0xa7fc // a7fc + a87a: 1070 lrw r3, 0x2000095c // a8b8 + a87c: 9360 ld.w r3, (r3, 0x0) + a87e: 3b40 cmpnei r3, 0 + a880: 0c12 bf 0xa8a4 // a8a4 + a882: 106f lrw r3, 0x20000184 // a8bc + a884: 9340 ld.w r2, (r3, 0x0) + a886: 3a40 cmpnei r2, 0 + a888: 0c0e bf 0xa8a4 // a8a4 + a88a: 106e lrw r3, 0x20000954 // a8c0 + a88c: 3064 movi r0, 100 + a88e: 9320 ld.w r1, (r3, 0x0) + a890: 2100 addi r1, 1 + a892: b320 st.w r1, (r3, 0x0) + a894: 9320 ld.w r1, (r3, 0x0) + a896: 7c80 mult r2, r0 + a898: 6448 cmphs r2, r1 + a89a: 0805 bt 0xa8a4 // a8a4 + a89c: 104a lrw r2, 0x2000093f // a8c4 + a89e: 3101 movi r1, 1 + a8a0: a220 st.b r1, (r2, 0x0) + a8a2: b380 st.w r4, (r3, 0x0) + a8a4: d9ee2001 ld.w r15, (r14, 0x4) + a8a8: 9880 ld.w r4, (r14, 0x0) + a8aa: 1402 addi r14, r14, 8 + a8ac: 1463 ipop + a8ae: 1461 nir + a8b0: 20000064 .long 0x20000064 + a8b4: 200008bc .long 0x200008bc + a8b8: 2000095c .long 0x2000095c + a8bc: 20000184 .long 0x20000184 + a8c0: 20000954 .long 0x20000954 + a8c4: 2000093f .long 0x2000093f + +Disassembly of section .text.std_clk_calib: + +0000a8c8 : + a8c8: 14d4 push r4-r7, r15 + a8ca: 142d subi r14, r14, 52 + a8cc: 3201 movi r2, 1 + a8ce: 03ce lrw r6, 0x2000005c // ab10 + a8d0: 6cc3 mov r3, r0 + a8d2: dc4e000a st.b r2, (r14, 0xa) + a8d6: 9640 ld.w r2, (r6, 0x0) + a8d8: 9247 ld.w r2, (r2, 0x1c) + a8da: 7488 zextb r2, r2 + a8dc: dc4e0009 st.b r2, (r14, 0x9) + a8e0: d84e0009 ld.b r2, (r14, 0x9) + a8e4: 3a40 cmpnei r2, 0 + a8e6: 0c08 bf 0xa8f6 // a8f6 + a8e8: d84e0009 ld.b r2, (r14, 0x9) + a8ec: 3a42 cmpnei r2, 2 + a8ee: 0c04 bf 0xa8f6 // a8f6 + a8f0: 3000 movi r0, 0 + a8f2: 140d addi r14, r14, 52 + a8f4: 1494 pop r4-r7, r15 + a8f6: 0397 lrw r4, 0x2000000c // ab14 + a8f8: 3209 movi r2, 9 + a8fa: 9400 ld.w r0, (r4, 0x0) + a8fc: 3b40 cmpnei r3, 0 + a8fe: b041 st.w r2, (r0, 0x4) + a900: 0857 bt 0xa9ae // a9ae + a902: 3307 movi r3, 7 + a904: dc6e000b st.b r3, (r14, 0xb) + a908: 037b lrw r3, 0x2dc6c00 // ab18 + a90a: b863 st.w r3, (r14, 0xc) + a90c: 3380 movi r3, 128 + a90e: 4362 lsli r3, r3, 2 + a910: b867 st.w r3, (r14, 0x1c) + a912: d86e000b ld.b r3, (r14, 0xb) + a916: 74cc zextb r3, r3 + a918: b062 st.w r3, (r0, 0x8) + a91a: 037e lrw r3, 0xffff // ab1c + a91c: b063 st.w r3, (r0, 0xc) + a91e: 3201 movi r2, 1 + a920: 3101 movi r1, 1 + a922: 03bf lrw r5, 0x20000014 // ab20 + a924: e3ffde9c bsr 0x665c // 665c + a928: 95e0 ld.w r7, (r5, 0x0) + a92a: 137f lrw r3, 0xbe9c0005 // ab24 + a92c: b760 st.w r3, (r7, 0x0) + a92e: 135f lrw r2, 0x30010 // ab28 + a930: 3300 movi r3, 0 + a932: b762 st.w r3, (r7, 0x8) + a934: b743 st.w r2, (r7, 0xc) + a936: 32d8 movi r2, 216 + a938: b745 st.w r2, (r7, 0x14) + a93a: 974f ld.w r2, (r7, 0x3c) + a93c: 3aa2 bseti r2, 2 + a93e: b74f st.w r2, (r7, 0x3c) + a940: 9803 ld.w r0, (r14, 0xc) + a942: d82e000b ld.b r1, (r14, 0xb) + a946: 327d movi r2, 125 + a948: 2100 addi r1, 1 + a94a: 7c48 mult r1, r2 + a94c: b861 st.w r3, (r14, 0x4) + a94e: e3ffe5bd bsr 0x74c8 // 74c8 <__udivsi3> + a952: b804 st.w r0, (r14, 0x10) + a954: 32fa movi r2, 250 + a956: 9824 ld.w r1, (r14, 0x10) + a958: 4242 lsli r2, r2, 2 + a95a: 6448 cmphs r2, r1 + a95c: 0bca bt 0xa8f0 // a8f0 + a95e: 9844 ld.w r2, (r14, 0x10) + a960: 3178 movi r1, 120 + a962: 9804 ld.w r0, (r14, 0x10) + a964: b840 st.w r2, (r14, 0x0) + a966: e3ffe5b1 bsr 0x74c8 // 74c8 <__udivsi3> + a96a: 9840 ld.w r2, (r14, 0x0) + a96c: 6082 subu r2, r0 + a96e: b845 st.w r2, (r14, 0x14) + a970: 9804 ld.w r0, (r14, 0x10) + a972: 3178 movi r1, 120 + a974: 9844 ld.w r2, (r14, 0x10) + a976: b840 st.w r2, (r14, 0x0) + a978: e3ffe5a8 bsr 0x74c8 // 74c8 <__udivsi3> + a97c: 9840 ld.w r2, (r14, 0x0) + a97e: 6008 addu r0, r2 + a980: b806 st.w r0, (r14, 0x18) + a982: c0807020 psrclr ie + a986: 9640 ld.w r2, (r6, 0x0) + a988: 9254 ld.w r2, (r2, 0x50) + a98a: b848 st.w r2, (r14, 0x20) + a98c: 9861 ld.w r3, (r14, 0x4) + a98e: 9440 ld.w r2, (r4, 0x0) + a990: b260 st.w r3, (r2, 0x0) + a992: b761 st.w r3, (r7, 0x4) + a994: d86e000a ld.b r3, (r14, 0xa) + a998: 3b40 cmpnei r3, 0 + a99a: 083e bt 0xaa16 // aa16 + a99c: e3ffde12 bsr 0x65c0 // 65c0 + a9a0: 9400 ld.w r0, (r4, 0x0) + a9a2: e3ffde33 bsr 0x6608 // 6608 + a9a6: c1807420 psrset ee, ie + a9aa: 3001 movi r0, 1 + a9ac: 07a3 br 0xa8f2 // a8f2 + a9ae: 3b41 cmpnei r3, 1 + a9b0: 0806 bt 0xa9bc // a9bc + a9b2: 3303 movi r3, 3 + a9b4: dc6e000b st.b r3, (r14, 0xb) + a9b8: 127d lrw r3, 0x16e3600 // ab2c + a9ba: 07a8 br 0xa90a // a90a + a9bc: 3b42 cmpnei r3, 2 + a9be: 0806 bt 0xa9ca // a9ca + a9c0: 3301 movi r3, 1 + a9c2: dc6e000b st.b r3, (r14, 0xb) + a9c6: 127b lrw r3, 0xb71b00 // ab30 + a9c8: 07a1 br 0xa90a // a90a + a9ca: 3b43 cmpnei r3, 3 + a9cc: 0806 bt 0xa9d8 // a9d8 + a9ce: 3300 movi r3, 0 + a9d0: dc6e000b st.b r3, (r14, 0xb) + a9d4: 1278 lrw r3, 0x5b8d80 // ab34 + a9d6: 079a br 0xa90a // a90a + a9d8: 3b44 cmpnei r3, 4 + a9da: 0809 bt 0xa9ec // a9ec + a9dc: 3300 movi r3, 0 + a9de: dc6e000b st.b r3, (r14, 0xb) + a9e2: 1276 lrw r3, 0x54c720 // ab38 + a9e4: b863 st.w r3, (r14, 0xc) + a9e6: 3380 movi r3, 128 + a9e8: 4369 lsli r3, r3, 9 + a9ea: 0793 br 0xa910 // a910 + a9ec: 3b45 cmpnei r3, 5 + a9ee: 0806 bt 0xa9fa // a9fa + a9f0: 3300 movi r3, 0 + a9f2: dc6e000b st.b r3, (r14, 0xb) + a9f6: 1272 lrw r3, 0x3ffed0 // ab3c + a9f8: 07f6 br 0xa9e4 // a9e4 + a9fa: 3b46 cmpnei r3, 6 + a9fc: 0806 bt 0xaa08 // aa08 + a9fe: 3300 movi r3, 0 + aa00: dc6e000b st.b r3, (r14, 0xb) + aa04: 126f lrw r3, 0x1fff68 // ab40 + aa06: 07ef br 0xa9e4 // a9e4 + aa08: 3b47 cmpnei r3, 7 + aa0a: 0b84 bt 0xa912 // a912 + aa0c: 3300 movi r3, 0 + aa0e: dc6e000b st.b r3, (r14, 0xb) + aa12: 126d lrw r3, 0x1ffb8 // ab44 + aa14: 07e8 br 0xa9e4 // a9e4 + aa16: 9560 ld.w r3, (r5, 0x0) + aa18: 3101 movi r1, 1 + aa1a: 9440 ld.w r2, (r4, 0x0) + aa1c: b321 st.w r1, (r3, 0x4) + aa1e: b220 st.w r1, (r2, 0x0) + aa20: 3100 movi r1, 0 + aa22: b327 st.w r1, (r3, 0x1c) + aa24: 3004 movi r0, 4 + aa26: b225 st.w r1, (r2, 0x14) + aa28: 932e ld.w r1, (r3, 0x38) + aa2a: 6840 and r1, r0 + aa2c: 3940 cmpnei r1, 0 + aa2e: 0ffd bf 0xaa28 // aa28 + aa30: 9225 ld.w r1, (r2, 0x14) + aa32: b82a st.w r1, (r14, 0x28) + aa34: 3100 movi r1, 0 + aa36: b310 st.w r0, (r3, 0x40) + aa38: b327 st.w r1, (r3, 0x1c) + aa3a: 3004 movi r0, 4 + aa3c: b225 st.w r1, (r2, 0x14) + aa3e: 932e ld.w r1, (r3, 0x38) + aa40: 6840 and r1, r0 + aa42: 3940 cmpnei r1, 0 + aa44: 0ffd bf 0xaa3e // aa3e + aa46: 9225 ld.w r1, (r2, 0x14) + aa48: b82b st.w r1, (r14, 0x2c) + aa4a: 3100 movi r1, 0 + aa4c: b310 st.w r0, (r3, 0x40) + aa4e: b327 st.w r1, (r3, 0x1c) + aa50: 3004 movi r0, 4 + aa52: b225 st.w r1, (r2, 0x14) + aa54: 932e ld.w r1, (r3, 0x38) + aa56: 6840 and r1, r0 + aa58: 3940 cmpnei r1, 0 + aa5a: 0ffd bf 0xaa54 // aa54 + aa5c: 9225 ld.w r1, (r2, 0x14) + aa5e: b82c st.w r1, (r14, 0x30) + aa60: b310 st.w r0, (r3, 0x40) + aa62: 982b ld.w r1, (r14, 0x2c) + aa64: 980c ld.w r0, (r14, 0x30) + aa66: 6040 addu r1, r0 + aa68: b829 st.w r1, (r14, 0x24) + aa6a: 9829 ld.w r1, (r14, 0x24) + aa6c: 4921 lsri r1, r1, 1 + aa6e: b829 st.w r1, (r14, 0x24) + aa70: 3100 movi r1, 0 + aa72: b321 st.w r1, (r3, 0x4) + aa74: b220 st.w r1, (r2, 0x0) + aa76: b327 st.w r1, (r3, 0x1c) + aa78: b225 st.w r1, (r2, 0x14) + aa7a: d86e0009 ld.b r3, (r14, 0x9) + aa7e: 3b42 cmpnei r3, 2 + aa80: 9849 ld.w r2, (r14, 0x24) + aa82: 082c bt 0xaada // aada + aa84: 1171 lrw r3, 0x7ff // ab48 + aa86: 648c cmphs r3, r2 + aa88: 0c03 bf 0xaa8e // aa8e + aa8a: 3300 movi r3, 0 + aa8c: 040f br 0xaaaa // aaaa + aa8e: 9849 ld.w r2, (r14, 0x24) + aa90: 9866 ld.w r3, (r14, 0x18) + aa92: 648c cmphs r3, r2 + aa94: 080e bt 0xaab0 // aab0 + aa96: 9868 ld.w r3, (r14, 0x20) + aa98: 9847 ld.w r2, (r14, 0x1c) + aa9a: 60ca subu r3, r2 + aa9c: b868 st.w r3, (r14, 0x20) + aa9e: 32fe movi r2, 254 + aaa0: 9868 ld.w r3, (r14, 0x20) + aaa2: 4248 lsli r2, r2, 8 + aaa4: 68c8 and r3, r2 + aaa6: 3b40 cmpnei r3, 0 + aaa8: 0812 bt 0xaacc // aacc + aaaa: dc6e000a st.b r3, (r14, 0xa) + aaae: 0721 br 0xa8f0 // a8f0 + aab0: 9849 ld.w r2, (r14, 0x24) + aab2: 9865 ld.w r3, (r14, 0x14) + aab4: 64c8 cmphs r2, r3 + aab6: 0829 bt 0xab08 // ab08 + aab8: 9868 ld.w r3, (r14, 0x20) + aaba: 9847 ld.w r2, (r14, 0x1c) + aabc: 60c8 addu r3, r2 + aabe: b868 st.w r3, (r14, 0x20) + aac0: 33fe movi r3, 254 + aac2: 9848 ld.w r2, (r14, 0x20) + aac4: 4368 lsli r3, r3, 8 + aac6: 688c and r2, r3 + aac8: 64ca cmpne r2, r3 + aaca: 0fe0 bf 0xaa8a // aa8a + aacc: 9660 ld.w r3, (r6, 0x0) + aace: 9848 ld.w r2, (r14, 0x20) + aad0: b354 st.w r2, (r3, 0x50) + aad2: 3001 movi r0, 1 + aad4: e3ffdf4e bsr 0x6970 // 6970 + aad8: 075e br 0xa994 // a994 + aada: 9866 ld.w r3, (r14, 0x18) + aadc: 648c cmphs r3, r2 + aade: 0809 bt 0xaaf0 // aaf0 + aae0: 9868 ld.w r3, (r14, 0x20) + aae2: 9847 ld.w r2, (r14, 0x1c) + aae4: 60ca subu r3, r2 + aae6: b868 st.w r3, (r14, 0x20) + aae8: 32ff movi r2, 255 + aaea: 9868 ld.w r3, (r14, 0x20) + aaec: 4250 lsli r2, r2, 16 + aaee: 07db br 0xaaa4 // aaa4 + aaf0: 9849 ld.w r2, (r14, 0x24) + aaf2: 9865 ld.w r3, (r14, 0x14) + aaf4: 64c8 cmphs r2, r3 + aaf6: 0809 bt 0xab08 // ab08 + aaf8: 9868 ld.w r3, (r14, 0x20) + aafa: 9847 ld.w r2, (r14, 0x1c) + aafc: 60c8 addu r3, r2 + aafe: b868 st.w r3, (r14, 0x20) + ab00: 33ff movi r3, 255 + ab02: 9848 ld.w r2, (r14, 0x20) + ab04: 4370 lsli r3, r3, 16 + ab06: 07e0 br 0xaac6 // aac6 + ab08: 3300 movi r3, 0 + ab0a: dc6e000a st.b r3, (r14, 0xa) + ab0e: 07e2 br 0xaad2 // aad2 + ab10: 2000005c .long 0x2000005c + ab14: 2000000c .long 0x2000000c + ab18: 02dc6c00 .long 0x02dc6c00 + ab1c: 0000ffff .long 0x0000ffff + ab20: 20000014 .long 0x20000014 + ab24: be9c0005 .long 0xbe9c0005 + ab28: 00030010 .long 0x00030010 + ab2c: 016e3600 .long 0x016e3600 + ab30: 00b71b00 .long 0x00b71b00 + ab34: 005b8d80 .long 0x005b8d80 + ab38: 0054c720 .long 0x0054c720 + ab3c: 003ffed0 .long 0x003ffed0 + ab40: 001fff68 .long 0x001fff68 + ab44: 0001ffb8 .long 0x0001ffb8 + ab48: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01.map b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01.map new file mode 100644 index 0000000..d1f8e43 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01.map @@ -0,0 +1,3039 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x290c + Start of program headers: 52 (bytes into file) + Start of section headers: 378756 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 204 + Section header string table index: 201 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00002800 000800 003676 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00005e78 003e78 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00005eb0 003eb0 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00005f24 003f24 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00005f70 003f70 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00005fa0 003fa0 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00006028 004028 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00006050 004050 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 0000608c 00408c 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 000060a0 0040a0 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 000060b8 0040b8 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 000060d8 0040d8 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 000060f4 0040f4 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00006110 004110 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00006150 004150 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00006184 004184 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00006188 004188 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00006198 004198 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 000061a4 0041a4 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Soft PROGBITS 000061b0 0041b0 000014 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 000061c4 0041c4 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000061e8 0041e8 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 00006218 004218 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 0000627c 00427c 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 0000635c 00435c 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00006370 004370 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00006380 004380 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 0000648c 00448c 0000fc 00 AX 0 0 4 + [29] .text.GPIO_Write_ PROGBITS 00006588 004588 000008 00 AX 0 0 2 + [30] .text.GPIO_Write_ PROGBITS 00006590 004590 000008 00 AX 0 0 2 + [31] .text.GPIO_Revers PROGBITS 00006598 004598 000016 00 AX 0 0 2 + [32] .text.GPIO_Read_S PROGBITS 000065ae 0045ae 000010 00 AX 0 0 2 + [33] .text.LPT_Soft_Re PROGBITS 000065c0 0045c0 000014 00 AX 0 0 4 + [34] .text.WWDT_CNT_Lo PROGBITS 000065d4 0045d4 000010 00 AX 0 0 4 + [35] .text.BT_DeInit PROGBITS 000065e4 0045e4 00001c 00 AX 0 0 2 + [36] .text.BT_Start PROGBITS 00006600 004600 000008 00 AX 0 0 2 + [37] .text.BT_Soft_Res PROGBITS 00006608 004608 00000a 00 AX 0 0 2 + [38] .text.BT_Configur PROGBITS 00006612 004612 000018 00 AX 0 0 2 + [39] .text.BT_ControlS PROGBITS 0000662a 00462a 00002c 00 AX 0 0 2 + [40] .text.BT_Period_C PROGBITS 00006656 004656 000006 00 AX 0 0 2 + [41] .text.BT_ConfigIn PROGBITS 0000665c 00465c 000012 00 AX 0 0 2 + [42] .text.BT1_INT_ENA PROGBITS 00006670 004670 000010 00 AX 0 0 4 + [43] .text.UART0_DeIni PROGBITS 00006680 004680 000018 00 AX 0 0 4 + [44] .text.UART1_DeIni PROGBITS 00006698 004698 000018 00 AX 0 0 4 + [45] .text.UART2_DeIni PROGBITS 000066b0 0046b0 000018 00 AX 0 0 4 + [46] .text.UART0_Int_E PROGBITS 000066c8 0046c8 00001c 00 AX 0 0 4 + [47] .text.UART1_Int_E PROGBITS 000066e4 0046e4 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 00006700 004700 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 0000671c 00471c 0000ec 00 AX 0 0 4 + [50] .text.UARTInitRxT PROGBITS 00006808 004808 000010 00 AX 0 0 4 + [51] .text.UARTTransmi PROGBITS 00006818 004818 00001e 00 AX 0 0 2 + [52] .text.EPT_Stop PROGBITS 00006838 004838 000028 00 AX 0 0 4 + [53] .text.Page_Progra PROGBITS 00006860 004860 0000a0 00 AX 0 0 4 + [54] .text.ReadDataArr PROGBITS 00006900 004900 00002a 00 AX 0 0 2 + [55] .text.startup.mai PROGBITS 0000692c 00492c 000044 00 AX 0 0 4 + [56] .text.delay_nms PROGBITS 00006970 004970 00002c 00 AX 0 0 2 + [57] .text.delay_nus PROGBITS 0000699c 00499c 000022 00 AX 0 0 2 + [58] .text.BT_CONFIG PROGBITS 000069c0 0049c0 000060 00 AX 0 0 4 + [59] .text.SYSCON_CONF PROGBITS 00006a20 004a20 000062 00 AX 0 0 2 + [60] .text.APT32F102_i PROGBITS 00006a84 004a84 000078 00 AX 0 0 4 + [61] .text.SYSCONIntHa PROGBITS 00006afc 004afc 0000f0 00 AX 0 0 4 + [62] .text.IFCIntHandl PROGBITS 00006bec 004bec 000068 00 AX 0 0 4 + [63] .text.ADCIntHandl PROGBITS 00006c54 004c54 000068 00 AX 0 0 4 + [64] .text.EPT0IntHand PROGBITS 00006cbc 004cbc 0001ac 00 AX 0 0 4 + [65] .text.WWDTHandler PROGBITS 00006e68 004e68 000034 00 AX 0 0 4 + [66] .text.GPT0IntHand PROGBITS 00006e9c 004e9c 000080 00 AX 0 0 4 + [67] .text.RTCIntHandl PROGBITS 00006f1c 004f1c 000070 00 AX 0 0 4 + [68] .text.UART0IntHan PROGBITS 00006f8c 004f8c 000060 00 AX 0 0 4 + [69] .text.UART1IntHan PROGBITS 00006fec 004fec 000094 00 AX 0 0 4 + [70] .text.UART2IntHan PROGBITS 00007080 005080 000060 00 AX 0 0 4 + [71] .text.SPI0IntHand PROGBITS 000070e0 0050e0 0000e8 00 AX 0 0 4 + [72] .text.SIO0IntHand PROGBITS 000071c8 0051c8 000054 00 AX 0 0 4 + [73] .text.EXI0IntHand PROGBITS 0000721c 00521c 000030 00 AX 0 0 4 + [74] .text.EXI1IntHand PROGBITS 0000724c 00524c 000030 00 AX 0 0 4 + [75] .text.EXI2to3IntH PROGBITS 0000727c 00527c 000048 00 AX 0 0 4 + [76] .text.EXI4to9IntH PROGBITS 000072c4 0052c4 000020 00 AX 0 0 4 + [77] .text.EXI10to15In PROGBITS 000072e4 0052e4 00006c 00 AX 0 0 4 + [78] .text.LPTIntHandl PROGBITS 00007350 005350 000034 00 AX 0 0 4 + [79] .text.BT0IntHandl PROGBITS 00007384 005384 00004c 00 AX 0 0 4 + [80] .text.BT1IntHandl PROGBITS 000073d0 0053d0 000070 00 AX 0 0 4 + [81] .text.PriviledgeV PROGBITS 00007440 005440 000002 00 AX 0 0 2 + [82] .text.PendTrapHan PROGBITS 00007442 005442 000008 00 AX 0 0 2 + [83] .text.Trap3Handle PROGBITS 0000744a 00544a 000008 00 AX 0 0 2 + [84] .text.Trap2Handle PROGBITS 00007452 005452 000008 00 AX 0 0 2 + [85] .text.Trap1Handle PROGBITS 0000745a 00545a 000008 00 AX 0 0 2 + [86] .text.Trap0Handle PROGBITS 00007462 005462 000008 00 AX 0 0 2 + [87] .text.UnrecExecpH PROGBITS 0000746a 00546a 000008 00 AX 0 0 2 + [88] .text.BreakPointH PROGBITS 00007472 005472 000008 00 AX 0 0 2 + [89] .text.AccessErrHa PROGBITS 0000747a 00547a 000008 00 AX 0 0 2 + [90] .text.IllegalInst PROGBITS 00007482 005482 000008 00 AX 0 0 2 + [91] .text.MisalignedH PROGBITS 0000748a 00548a 000008 00 AX 0 0 2 + [92] .text.CNTAIntHand PROGBITS 00007492 005492 000008 00 AX 0 0 2 + [93] .text.I2CIntHandl PROGBITS 0000749a 00549a 000008 00 AX 0 0 2 + [94] .text.__divsi3 PROGBITS 000074a4 0054a4 000024 00 AX 0 0 4 + [95] .text.__udivsi3 PROGBITS 000074c8 0054c8 000024 00 AX 0 0 4 + [96] .text.__modsi3 PROGBITS 000074ec 0054ec 000024 00 AX 0 0 4 + [97] .text.__umodsi3 PROGBITS 00007510 005510 000024 00 AX 0 0 4 + [98] .text.CK_CPU_EnAl PROGBITS 00007534 005534 000006 00 AX 0 0 2 + [99] .text.CK_CPU_DisA PROGBITS 0000753a 00553a 000006 00 AX 0 0 2 + [100] .text.UARTx_Init PROGBITS 00007540 005540 000188 00 AX 0 0 4 + [101] .text.UART0_RecvI PROGBITS 000076c8 0056c8 000034 00 AX 0 0 4 + [102] .text.UART0_TASK PROGBITS 000076fc 0056fc 000060 00 AX 0 0 4 + [103] .text.UART1_RecvI PROGBITS 0000775c 00575c 000034 00 AX 0 0 4 + [104] .text.UART2_RecvI PROGBITS 00007790 005790 000034 00 AX 0 0 4 + [105] .text.MCU485_Send PROGBITS 000077c4 0057c4 000090 00 AX 0 0 4 + [106] .text.BUS485_Send PROGBITS 00007854 005854 0000c4 00 AX 0 0 4 + [107] .text.Set_GroupSe PROGBITS 00007918 005918 000064 00 AX 0 0 4 + [108] .text.Clear_SendF PROGBITS 0000797c 00597c 000010 00 AX 0 0 4 + [109] .text.BUS485_Jump PROGBITS 0000798c 00598c 00000c 00 AX 0 0 4 + [110] .text.BusIdle_Tas PROGBITS 00007998 005998 000040 00 AX 0 0 4 + [111] .text.BusBusy_Tas PROGBITS 000079d8 0059d8 00005c 00 AX 0 0 4 + [112] .text.Dbg_Println PROGBITS 00007a34 005a34 000080 00 AX 0 0 4 + [113] .text.MultSend_Ta PROGBITS 00007ab4 005ab4 0000a0 00 AX 0 0 4 + [114] .text.BUS485Send_ PROGBITS 00007b54 005b54 000084 00 AX 0 0 4 + [115] .text.Dbg_Print_B PROGBITS 00007bd8 005bd8 000084 00 AX 0 0 4 + [116] .text.UART1_TASK PROGBITS 00007c5c 005c5c 00008c 00 AX 0 0 4 + [117] .text.UART2_TASK PROGBITS 00007ce8 005ce8 00009c 00 AX 0 0 4 + [118] .text.Dbg_BT_Prin PROGBITS 00007d84 005d84 000060 00 AX 0 0 4 + [119] .text.DIP_GetSwit PROGBITS 00007de4 005de4 000034 00 AX 0 0 4 + [120] .text.DIP_Switch_ PROGBITS 00007e18 005e18 000094 00 AX 0 0 4 + [121] .text.DIP_ScanTas PROGBITS 00007eac 005eac 000098 00 AX 0 0 4 + [122] .text.EEPROM_Chec PROGBITS 00007f44 005f44 000016 00 AX 0 0 2 + [123] .text.EEOROM_ENER PROGBITS 00007f5c 005f5c 000150 00 AX 0 0 4 + [124] .text.EEOROM_ENER PROGBITS 000080ac 0060ac 000044 00 AX 0 0 4 + [125] .text.EEPROM_ENER PROGBITS 000080f0 0060f0 00014c 00 AX 0 0 4 + [126] .text.EEPROM_Defa PROGBITS 0000823c 00623c 000128 00 AX 0 0 4 + [127] .text.EEPROM_Read PROGBITS 00008364 006364 0000b8 00 AX 0 0 4 + [128] .text.EEPROM_Writ PROGBITS 0000841c 00641c 0000ac 00 AX 0 0 4 + [129] .text.EEPROM_Read PROGBITS 000084c8 0064c8 0000d4 00 AX 0 0 4 + [130] .text.EEPROM_Writ PROGBITS 0000859c 00659c 000040 00 AX 0 0 2 + [131] .text.EEPROM_Defa PROGBITS 000085dc 0065dc 000038 00 AX 0 0 4 + [132] .text.EEPROM_Vali PROGBITS 00008614 006614 000058 00 AX 0 0 4 + [133] .text.EEPROM_Init PROGBITS 0000866c 00666c 000130 00 AX 0 0 4 + [134] .text.BT_Uart_Pac PROGBITS 0000879c 00679c 00003c 00 AX 0 0 4 + [135] .text.BLV_DetEner PROGBITS 000087d8 0067d8 000030 00 AX 0 0 4 + [136] .text.BLV_DetEner PROGBITS 00008808 006808 0000b8 00 AX 0 0 4 + [137] .text.HLW8110_Che PROGBITS 000088c0 0068c0 000018 00 AX 0 0 2 + [138] .text.HLW8110_Wri PROGBITS 000088d8 0068d8 000064 00 AX 0 0 4 + [139] .text.HLW8110_Wri PROGBITS 0000893c 00693c 000064 00 AX 0 0 4 + [140] .text.BLV_HLW8110 PROGBITS 000089a0 0069a0 00008c 00 AX 0 0 4 + [141] .text.HLW8110_RWC PROGBITS 00008a2c 006a2c 000088 00 AX 0 0 4 + [142] .text.HLW8110_Cle PROGBITS 00008ab4 006ab4 000010 00 AX 0 0 4 + [143] .text.Get_RevStat PROGBITS 00008ac4 006ac4 000018 00 AX 0 0 4 + [144] .text.Get_SendSta PROGBITS 00008adc 006adc 00001c 00 AX 0 0 4 + [145] .text.BLV_HLW8110 PROGBITS 00008af8 006af8 0001e4 00 AX 0 0 4 + [146] .text.HLW8110_Con PROGBITS 00008cdc 006cdc 00008c 00 AX 0 0 4 + [147] .text.HLW8110_Con PROGBITS 00008d68 006d68 00007c 00 AX 0 0 4 + [148] .text.HLW8110_Con PROGBITS 00008de4 006de4 00007c 00 AX 0 0 4 + [149] .text.HLW8110_Con PROGBITS 00008e60 006e60 000098 00 AX 0 0 4 + [150] .text.HLW8110_Rec PROGBITS 00008ef8 006ef8 00025c 00 AX 0 0 4 + [151] .text.HLW8110_Sys PROGBITS 00009154 007154 000026 00 AX 0 0 2 + [152] .text.HLW8110_Rea PROGBITS 0000917c 00717c 00021c 00 AX 0 0 4 + [153] .text.HLW8110_Rea PROGBITS 00009398 007398 0000c8 00 AX 0 0 4 + [154] .text.GetEnergy_P PROGBITS 00009460 007460 000064 00 AX 0 0 4 + [155] .text.HLW8110_Rea PROGBITS 000094c4 0074c4 000158 00 AX 0 0 4 + [156] .text.BLV_HLW8110 PROGBITS 0000961c 00761c 000040 00 AX 0 0 4 + [157] .text.BT_Uart_Pac PROGBITS 0000965c 00765c 00000c 00 AX 0 0 2 + [158] .text.BT_UART_Pri PROGBITS 00009668 007668 000104 00 AX 0 0 4 + [159] .text.BLV_Energy_ PROGBITS 0000976c 00776c 0000ec 00 AX 0 0 4 + [160] .text.BLV_Electri PROGBITS 00009858 007858 0000b0 00 AX 0 0 4 + [161] .text.BLV_EngDete PROGBITS 00009908 007908 000014 00 AX 0 0 2 + [162] .text.BLV_Energy_ PROGBITS 0000991c 00791c 0000ec 00 AX 0 0 4 + [163] .text.BLV_Energy_ PROGBITS 00009a08 007a08 0000a0 00 AX 0 0 4 + [164] .text.BLV_Energy_ PROGBITS 00009aa8 007aa8 000098 00 AX 0 0 4 + [165] .text.SetCalibFac PROGBITS 00009b40 007b40 000030 00 AX 0 0 4 + [166] .text.BLV_Energy_ PROGBITS 00009b70 007b70 000084 00 AX 0 0 4 + [167] .text.BLV_Energy_ PROGBITS 00009bf4 007bf4 00007c 00 AX 0 0 4 + [168] .text.HLW_485Recv PROGBITS 00009c70 007c70 000160 00 AX 0 0 4 + [169] .text.BT_Recv_Pro PROGBITS 00009dd0 007dd0 000118 00 AX 0 0 4 + [170] .text.Boot_Functi PROGBITS 00009ee8 007ee8 0000c0 00 AX 0 0 4 + [171] .text.Boot_Comm_C PROGBITS 00009fa8 007fa8 000024 00 AX 0 0 4 + [172] .text.Boot_Comm_F PROGBITS 00009fcc 007fcc 00006c 00 AX 0 0 4 + [173] .text.Boot_Time_R PROGBITS 0000a038 008038 000014 00 AX 0 0 4 + [174] .text.Boot_Comm_U PROGBITS 0000a04c 00804c 00021c 00 AX 0 0 4 + [175] .text.TK_Sampling PROGBITS 0000a268 008268 000058 00 AX 0 0 4 + [176] .text.TKEYIntHand PROGBITS 0000a2c0 0082c0 000088 00 AX 0 0 4 + [177] .text.get_key_num PROGBITS 0000a348 008348 000028 00 AX 0 0 4 + [178] .text.TK_Scan_Sta PROGBITS 0000a370 008370 000020 00 AX 0 0 4 + [179] .text.TK_Keymap_p PROGBITS 0000a390 008390 000180 00 AX 0 0 4 + [180] .text.TK_overflow PROGBITS 0000a510 008510 00011c 00 AX 0 0 4 + [181] .text.TK_Baseline PROGBITS 0000a62c 00862c 0001d0 00 AX 0 0 4 + [182] .text.TK_result_p PROGBITS 0000a7fc 0087fc 000054 00 AX 0 0 4 + [183] .text.CORETHandle PROGBITS 0000a850 008850 000078 00 AX 0 0 4 + [184] .text.std_clk_cal PROGBITS 0000a8c8 0088c8 000284 00 AX 0 0 4 + [185] .RomCode PROGBITS 0000ab4c 00b0bc 000000 00 W 0 0 1 + [186] .rodata PROGBITS 0000ab4c 008b4c 001708 00 A 0 0 4 + [187] .data PROGBITS 20000000 00b000 00009c 00 WA 0 0 4 + [188] .textcsky.VinFlas PROGBITS 2000009c 00b09c 000020 00 WA 0 0 1 + [189] .bss NOBITS 200000bc 00b0bc 000a3c 00 WA 0 0 4 + [190] .csky.attributes CSKY_ATTRIBUTES 00000000 00b0bc 000022 00 0 0 1 + [191] .comment PROGBITS 00000000 00b0de 000042 01 MS 0 0 1 + [192] .csky_stack_size PROGBITS 00000000 00b120 000aec 00 0 0 16 + [193] .debug_line PROGBITS 00000000 00bc0c 0043a6 00 0 0 1 + [194] .debug_info PROGBITS 00000000 00ffb2 031957 00 0 0 1 + [195] .debug_abbrev PROGBITS 00000000 041909 002d67 00 0 0 1 + [196] .debug_aranges PROGBITS 00000000 044670 000d60 00 0 0 8 + [197] .debug_ranges PROGBITS 00000000 0453d0 000d78 00 0 0 1 + [198] .debug_str PROGBITS 00000000 046148 0090f4 01 MS 0 0 1 + [199] .debug_frame PROGBITS 00000000 04f23c 00212c 00 0 0 4 + [200] .debug_loc PROGBITS 00000000 051368 00325d 00 0 0 1 + [201] .shstrtab STRTAB 00000000 05b5a7 0011db 00 0 0 1 + [202] .symtab SYMTAB 00000000 0545c8 0054e0 10 203 969 4 + [203] .strtab STRTAB 00000000 059aa8 001aff 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x000000 0x00002000 0x00002000 0x0a254 0x0a254 R E 0x1000 + LOAD 0x00b000 0x20000000 0x0000c254 0x000bc 0x00af8 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .text.SYSCON_Software_Reset .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_DeInit .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.Page_ProgramData .text.ReadDataArry_U8 .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART0_RecvINT_Processing .text.UART0_TASK .text.UART1_RecvINT_Processing .text.UART2_RecvINT_Processing .text.MCU485_SendData .text.BUS485_Send .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.MultSend_Task .text.BUS485Send_Task .text.Dbg_Print_Buff .text.UART1_TASK .text.UART2_TASK .text.Dbg_BT_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.EEPROM_CheckSum .text.EEOROM_ENERGY_ReadSet .text.EEOROM_ENERGY_WriteSet .text.EEPROM_ENERGY_Validate .text.EEPROM_Default_ENERGY .text.EEPROM_ReadTotalEng .text.EEPROM_WriteTotalEng .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.BT_Uart_Packing.part.3 .text.BLV_DetEnergy_Init .text.BLV_DetEnergy_Default .text.HLW8110_CheckSum .text.HLW8110_WriteREG_EN .text.HLW8110_WriteREG_DIS .text.BLV_HLW8110_RWCMD_Packaging .text.HLW8110_RWCMD_Send .text.HLW8110_CleanSdFlag .text.Get_RevState .text.Get_SendState .text.BLV_HLW8110_SendData_Tack .text.HLW8110_Convert_CurrentRegA_Value .text.HLW8110_Convert_VoltageReg_Value .text.HLW8110_Convert_PowerReg_Value .text.HLW8110_Convert_EnergyReg_Value .text.HLW8110_RecvData_Processing .text.HLW8110_SysPara_Check .text.HLW8110_ReadSysPara .text.HLW8110_ReadSysCtrlPara .text.GetEnergy_Para .text.HLW8110_ReadValue .text.BLV_HLW8110_Tack .text.BT_Uart_Packing .text.BT_UART_Print .text.BLV_Energy_ActiveRep_Packing .text.BLV_ElectricPara_Processing .text.BLV_EngDetect_Tack .text.BLV_Energy_PassiveRep_Packing .text.BLV_Energy_SetTime_Packing .text.BLV_Energy_QueryVersion_Packing .text.SetCalibFactor_Switch .text.BLV_Energy_SetCalibFactor .text.BLV_Energy_SetCalibFactor_2 .text.HLW_485Recv_Processing .text.BT_Recv_Processing .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .textcsky.VinFlash .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Software_Reset) for SYSCON_Software_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DeInit) for GPIO_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART1_TASK) for UART1_TASK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_TASK + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART0IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART0_RecvINT_Processing) for UART0_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART0_TASK) for UART0_TASK + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.BUS485_Jump_Boot) for BUS485_Jump_Boot + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) for DIP_ScanTask + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) for EEOROM_ENERGY_ReadSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) for EEPROM_Default_ENERGY + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) for EEPROM_ReadTotalEng + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) for EEPROM_ReadMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) for EEPROM_Default_MCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) for BLV_DetEnergy_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) for BLV_DetEnergy_Default + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) for HLW8110_WriteREG_EN + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) for HLW8110_WriteREG_DIS + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) for HLW8110_RWCMD_Send + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CleanSdFlag) for HLW8110_CleanSdFlag + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.Get_RevState) for Get_RevState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) for BLV_HLW8110_SendData_Tack + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) for HLW8110_Convert_CurrentRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) for HLW8110_Convert_VoltageReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) for HLW8110_Convert_PowerReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) for HLW8110_Convert_EnergyReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_SysPara_Check) for HLW8110_SysPara_Check + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) for HLW8110_ReadSysPara + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) for HLW8110_ReadSysCtrlPara + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) for GetEnergy_Para + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) for HLW8110_ReadValue + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) for BLV_HLW8110_Tack + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) for BT_UART_Print + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) for BLV_Energy_ActiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) for BLV_ElectricPara_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) for BLV_EngDetect_Tack + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) for BLV_Energy_PassiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) for BLV_Energy_SetCalibFactor + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) for BLV_Energy_SetCalibFactor_2 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) for Boot_Function_Init + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) for Boot_Comm_FillReplyPack + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Time_Refresh) for Boot_Time_Refresh + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _addsub_sf.o(.text) for __addsf3 + _fixunssfsi.o(.text) refers to _addsub_sf.o(.text) for __subsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _ne_sf.o(.text) for __nesf2 + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to _ne_sf.o(.text) for __nesf2 + _fixunssfsi.o(.text) refers to _ge_sf.o(.text) for __gesf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _si_to_sf.o(.text) for __floatsisf + _fixunssfsi.o(.text) refers to _sf_to_si.o(.text) for __fixsfsi + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_sf.o(.text) refers to _muldi3.o(.text) for __muldi3 + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_sf.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _mul_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _si_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _make_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _mul_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _div_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ge_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_si.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_df.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _ge_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _df_to_sf.o(.text) refers to _make_sf.o(.text) for __make_fp + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _make_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_sf.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to strncmp.o(.text) for strncmp + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2903 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3097 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3414 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3159 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_IO_Init(Obj/FWlib_apt32f102_gpt.o), (160 bytes). + Removing .text.GPT_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveCtrl_Configure(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_WaveLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveOut_Configure(Obj/FWlib_apt32f102_gpt.o), (180 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Start(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Period_CMP_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_gpt.o), (28 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_gpt.o), (11442 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_gpt.o), (562 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_gpt.o), (2212 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_gpt.o), (256 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_gpt.o), (240 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_gpt.o), (754 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_gpt.o), (8022 bytes). + Removing .comment(Obj/FWlib_apt32f102_gpt.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_gpt.o), (616 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4127 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3530 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3646 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4846 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4954 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2852 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .bss(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (116 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ReadPara(Obj/SYSTEM_eeprom.o), (128 bytes). + Removing .text.EEPROM_ValidateWrite(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_WritePara(Obj/SYSTEM_eeprom.o), (104 bytes). + Removing .text(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .data(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .text.HLW8110_ToWaitState(Obj/SYSTEM_det_energy.o), (24 bytes). + Removing .text(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .text.NetCRC16(Obj/SYSTEM_Bootload_fun.o), (60 bytes). + Removing .text.APP_Flash_AllEase(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.MCU_EEPROM_AllEase(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing .text.APP_FEATURE_Flash_Ease(Obj/SYSTEM_Bootload_fun.o), (12 bytes). + Removing .text.Boot_TimeOut_Task(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Jump_To_APP(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Check_APP_Feature(Obj/SYSTEM_Bootload_fun.o), (456 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (117 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.o), (0 bytes). + Removing .data(_fixunssfsi.o), (0 bytes). + Removing .bss(_fixunssfsi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_sf.o), (0 bytes). + Removing .bss(_addsub_sf.o), (0 bytes). + Removing .data(_mul_sf.o), (0 bytes). + Removing .bss(_mul_sf.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.o), (0 bytes). + Removing .data(_ne_sf.o), (0 bytes). + Removing .bss(_ne_sf.o), (0 bytes). + Removing .data(_ge_sf.o), (0 bytes). + Removing .bss(_ge_sf.o), (0 bytes). + Removing .data(_si_to_sf.o), (0 bytes). + Removing .bss(_si_to_sf.o), (0 bytes). + Removing .data(_sf_to_si.o), (0 bytes). + Removing .bss(_sf_to_si.o), (0 bytes). + Removing .data(_sf_to_df.o), (0 bytes). + Removing .bss(_sf_to_df.o), (0 bytes). + Removing .text(_thenan_sf.o), (0 bytes). + Removing .data(_thenan_sf.o), (0 bytes). + Removing .bss(_thenan_sf.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .data(_make_df.o), (0 bytes). + Removing .bss(_make_df.o), (0 bytes). + Removing .data(_df_to_sf.o), (0 bytes). + Removing .bss(_df_to_sf.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_sf.o), (0 bytes). + Removing .bss(_pack_sf.o), (0 bytes). + Removing .data(_unpack_sf.o), (0 bytes). + Removing .bss(_unpack_sf.o), (0 bytes). + Removing .data(_fpcmp_parts_sf.o), (0 bytes). + Removing .bss(_fpcmp_parts_sf.o), (0 bytes). + Removing .data(_make_sf.o), (0 bytes). + Removing .bss(_make_sf.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +690 unused seciton(s) (total 184087 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ifc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_Bootload_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_det_energy.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _addsub_sf.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uhi.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_sf.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _div_sf.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fixunssfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _fpcmp_parts_sf.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _ge_sf.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _make_df.o 0x00000000 df 0 *ABS* + _make_sf.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _mul_sf.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _ne_sf.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _sf_to_si.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _si_to_sf.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _unpack_sf.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + strncmp.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00002800 0 .text + $t 0x0000290c 0 .text + INIT_KERLE_STACK 0x0000293e 0 .text + __to_main 0x00002946 0 .text + __dummy 0x00002982 0 .text + $d 0x00002986 0 .text + $d 0x000029b4 0 .text + $t 0x000029b4 0 .text + $d 0x00002d78 0 .text + $t 0x00002de0 0 .text + $d 0x000032a8 0 .text + $t 0x00003358 0 .text + $d 0x0000335e 0 .text + $t 0x0000335e 0 .text + $d 0x00003364 0 .text + $t 0x00003364 0 .text + $d 0x00003380 0 .text + $d 0x00003384 0 .text + $t 0x00003384 0 .text + $d 0x000034f0 0 .text + $d 0x000034fc 0 .text + $t 0x000034fc 0 .text + $d 0x00003510 0 .text + $t 0x00003510 0 .text + $d 0x0000352c 0 .text + $t 0x0000352c 0 .text + $d 0x0000355c 0 .text + $t 0x0000355c 0 .text + $d 0x00003590 0 .text + _fpadd_parts 0x00003594 F 332 .text + $d 0x00003594 0 .text + $t 0x00003594 0 .text + $d 0x000036d8 0 .text + $t 0x000036e0 0 .text + $d 0x00003740 0 .text + $t 0x00003740 0 .text + $d 0x00003850 0 .text + $d 0x00003858 0 .text + $t 0x00003858 0 .text + $d 0x00003910 0 .text + $d 0x00003914 0 .text + $t 0x00003914 0 .text + $d 0x0000394c 0 .text + $t 0x0000394c 0 .text + $d 0x00003984 0 .text + $t 0x00003984 0 .text + $d 0x000039e8 0 .text + $t 0x000039e8 0 .text + $d 0x00003a38 0 .text + $d 0x00003a3c 0 .text + $t 0x00003a3c 0 .text + _fpadd_parts 0x00003a60 F 724 .text + $d 0x00003a60 0 .text + $t 0x00003a60 0 .text + $d 0x00003d28 0 .text + $t 0x00003d34 0 .text + $d 0x00003d9c 0 .text + $t 0x00003d9c 0 .text + $d 0x00003fc4 0 .text + $d 0x00003fd0 0 .text + $t 0x00003fd0 0 .text + $d 0x00004120 0 .text + $d 0x00004124 0 .text + $t 0x00004124 0 .text + $d 0x00004160 0 .text + $t 0x00004160 0 .text + $d 0x0000419c 0 .text + $t 0x0000419c 0 .text + $d 0x000041d8 0 .text + $t 0x000041d8 0 .text + $d 0x00004244 0 .text + $d 0x00004248 0 .text + $t 0x00004248 0 .text + $d 0x000042b4 0 .text + $d 0x000042b8 0 .text + $t 0x000042b8 0 .text + $d 0x000042e0 0 .text + $t 0x000042e0 0 .text + $d 0x00004310 0 .text + $t 0x00004310 0 .text + $d 0x00004364 0 .text + $t 0x00004364 0 .text + $d 0x000043a8 0 .text + $t 0x000043a8 0 .text + $d 0x000043dc 0 .text + $d 0x000043e8 0 .text + $t 0x000043e8 0 .text + $d 0x0000449c 0 .text + $d 0x000044a0 0 .text + $t 0x000044a0 0 .text + $d 0x0000451c 0 .text + $d 0x00004524 0 .text + $t 0x00004524 0 .text + $d 0x0000459c 0 .text + $t 0x0000459c 0 .text + $d 0x000045b4 0 .text + $t 0x000045b4 0 .text + $d 0x0000473c 0 .text + $d 0x00004750 0 .text + $t 0x00004750 0 .text + $d 0x00004808 0 .text + $d 0x00004814 0 .text + $t 0x00004814 0 .text + $d 0x000048a0 0 .text + $t 0x000048a0 0 .text + swrite 0x000048c0 F 62 .text + $d 0x000048c0 0 .text + $t 0x000048c0 0 .text + $d 0x00004954 0 .text + $d 0x00004958 0 .text + $t 0x00004958 0 .text + $d 0x000049e0 0 .text + $t 0x000049e0 0 .text + $d 0x00004a44 0 .text + $t 0x00004a44 0 .text + PAD.1851 0x00004a6c F 52 .text + $d 0x00004a6c 0 .text + $t 0x00004a6c 0 .text + $d 0x00005014 0 .text + $t 0x00005020 0 .text + $d 0x000051bc 0 .text + $d 0x000051c4 0 .text + $t 0x000051c4 0 .text + $d 0x00005564 0 .text + $d 0x00005570 0 .text + $t 0x00005570 0 .text + $d 0x00005904 0 .text + copystring 0x00005910 F 38 .text + $d 0x00005910 0 .text + $t 0x00005910 0 .text + $d 0x00005c3c 0 .text + $d 0x00005c70 0 .text + $t 0x00005c70 0 .text + $d 0x00005c98 0 .text + $d 0x00005c9c 0 .text + $t 0x00005c9c 0 .text + $d 0x00005cf0 0 .text + $t 0x00005cf0 0 .text + $d 0x00005da0 0 .text + $t 0x00005da0 0 .text + $d 0x00005db4 0 .text + $t 0x00005db4 0 .text + $d 0x00005dc8 0 .text + $d 0x00005dd0 0 .text + $t 0x00005dd0 0 .text + $d 0x00005df8 0 .text + $d 0x00005e00 0 .text + $t 0x00005e00 0 .text + $d 0x00005e3c 0 .text + $t 0x00005e3c 0 .text + $d 0x00005e78 0 .text.__main + $t 0x00005e78 0 .text.__main + $d 0x00005e9c 0 .text.__main + SYSCON_General_CMD.part.0 0x00005eb0 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $t 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f1c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f24 0 .text.SYSCON_RST_VALUE + $t 0x00005f24 0 .text.SYSCON_RST_VALUE + $d 0x00005f54 0 .text.SYSCON_RST_VALUE + $d 0x00005f70 0 .text.SYSCON_General_CMD + $t 0x00005f70 0 .text.SYSCON_General_CMD + $d 0x00005f9c 0 .text.SYSCON_General_CMD + $d 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006018 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $d 0x0000604c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00006050 0 .text.SYSCON_WDT_CMD + $t 0x00006050 0 .text.SYSCON_WDT_CMD + $d 0x00006080 0 .text.SYSCON_WDT_CMD + $d 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $t 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000609c 0 .text.SYSCON_IWDCNT_Reload + $d 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $t 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b8 0 .text.SYSCON_LVD_Config + $t 0x000060b8 0 .text.SYSCON_LVD_Config + $d 0x000060d0 0 .text.SYSCON_LVD_Config + $d 0x000060d8 0 .text.LVD_Int_Enable + $t 0x000060d8 0 .text.LVD_Int_Enable + $d 0x000060f0 0 .text.LVD_Int_Enable + $d 0x000060f4 0 .text.IWDT_Int_Enable + $t 0x000060f4 0 .text.IWDT_Int_Enable + $d 0x0000610c 0 .text.IWDT_Int_Enable + $d 0x00006110 0 .text.EXTI_trigger_CMD + $t 0x00006110 0 .text.EXTI_trigger_CMD + $d 0x0000614c 0 .text.EXTI_trigger_CMD + $d 0x00006150 0 .text.EXTI_interrupt_CMD + $t 0x00006150 0 .text.EXTI_interrupt_CMD + $d 0x0000617c 0 .text.EXTI_interrupt_CMD + $d 0x00006184 0 .text.GPIO_EXTI_interrupt + $t 0x00006184 0 .text.GPIO_EXTI_interrupt + $d 0x00006188 0 .text.EXI4_Int_Enable + $t 0x00006188 0 .text.EXI4_Int_Enable + $d 0x00006194 0 .text.EXI4_Int_Enable + $d 0x00006198 0 .text.SYSCON_Int_Enable + $t 0x00006198 0 .text.SYSCON_Int_Enable + $d 0x000061a0 0 .text.SYSCON_Int_Enable + $d 0x000061a4 0 .text.SYSCON_Int_Disable + $t 0x000061a4 0 .text.SYSCON_Int_Disable + $d 0x000061ac 0 .text.SYSCON_Int_Disable + $d 0x000061b0 0 .text.SYSCON_Software_Reset + $t 0x000061b0 0 .text.SYSCON_Software_Reset + $d 0x000061bc 0 .text.SYSCON_Software_Reset + $d 0x000061c4 0 .text.SYSCON_INT_Priority + $t 0x000061c4 0 .text.SYSCON_INT_Priority + $d 0x000061dc 0 .text.SYSCON_INT_Priority + $d 0x000061e8 0 .text.Set_INT_Priority + $t 0x000061e8 0 .text.Set_INT_Priority + $d 0x00006214 0 .text.Set_INT_Priority + $d 0x00006218 0 .text.GPIO_DeInit + $t 0x00006218 0 .text.GPIO_DeInit + $d 0x0000626c 0 .text.GPIO_DeInit + $d 0x0000627c 0 .text.GPIO_Init + $t 0x0000627c 0 .text.GPIO_Init + $d 0x0000628e 0 .text.GPIO_Init + $t 0x00006296 0 .text.GPIO_Init + $d 0x000062f2 0 .text.GPIO_Init + $t 0x000062fa 0 .text.GPIO_Init + $d 0x00006348 0 .text.GPIO_Init + $d 0x0000635c 0 .text.GPIO_PullHigh_Init + $t 0x0000635c 0 .text.GPIO_PullHigh_Init + $d 0x00006370 0 .text.GPIO_DriveStrength_EN + $t 0x00006370 0 .text.GPIO_DriveStrength_EN + $d 0x00006380 0 .text.GPIO_IntGroup_Set + $t 0x00006380 0 .text.GPIO_IntGroup_Set + $d 0x00006474 0 .text.GPIO_IntGroup_Set + $d 0x0000648c 0 .text.GPIOA0_EXI_Init + $t 0x0000648c 0 .text.GPIOA0_EXI_Init + $d 0x00006498 0 .text.GPIOA0_EXI_Init + $t 0x000064a8 0 .text.GPIOA0_EXI_Init + $d 0x00006584 0 .text.GPIOA0_EXI_Init + $d 0x00006588 0 .text.GPIO_Write_High + $t 0x00006588 0 .text.GPIO_Write_High + $d 0x00006590 0 .text.GPIO_Write_Low + $t 0x00006590 0 .text.GPIO_Write_Low + $d 0x00006598 0 .text.GPIO_Reverse + $t 0x00006598 0 .text.GPIO_Reverse + $d 0x000065ae 0 .text.GPIO_Read_Status + $t 0x000065ae 0 .text.GPIO_Read_Status + $d 0x000065c0 0 .text.LPT_Soft_Reset + $t 0x000065c0 0 .text.LPT_Soft_Reset + $d 0x000065d0 0 .text.LPT_Soft_Reset + $d 0x000065d4 0 .text.WWDT_CNT_Load + $t 0x000065d4 0 .text.WWDT_CNT_Load + $d 0x000065e0 0 .text.WWDT_CNT_Load + $d 0x000065e4 0 .text.BT_DeInit + $t 0x000065e4 0 .text.BT_DeInit + $d 0x00006600 0 .text.BT_Start + $t 0x00006600 0 .text.BT_Start + $d 0x00006608 0 .text.BT_Soft_Reset + $t 0x00006608 0 .text.BT_Soft_Reset + $d 0x00006612 0 .text.BT_Configure + $t 0x00006612 0 .text.BT_Configure + $d 0x0000662a 0 .text.BT_ControlSet_Configure + $t 0x0000662a 0 .text.BT_ControlSet_Configure + $d 0x00006656 0 .text.BT_Period_CMP_Write + $t 0x00006656 0 .text.BT_Period_CMP_Write + $d 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $t 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $d 0x00006670 0 .text.BT1_INT_ENABLE + $t 0x00006670 0 .text.BT1_INT_ENABLE + $d 0x0000667c 0 .text.BT1_INT_ENABLE + $d 0x00006680 0 .text.UART0_DeInit + $t 0x00006680 0 .text.UART0_DeInit + $d 0x00006694 0 .text.UART0_DeInit + $d 0x00006698 0 .text.UART1_DeInit + $t 0x00006698 0 .text.UART1_DeInit + $d 0x000066ac 0 .text.UART1_DeInit + $d 0x000066b0 0 .text.UART2_DeInit + $t 0x000066b0 0 .text.UART2_DeInit + $d 0x000066c4 0 .text.UART2_DeInit + $d 0x000066c8 0 .text.UART0_Int_Enable + $t 0x000066c8 0 .text.UART0_Int_Enable + $d 0x000066dc 0 .text.UART0_Int_Enable + $d 0x000066e4 0 .text.UART1_Int_Enable + $t 0x000066e4 0 .text.UART1_Int_Enable + $d 0x000066f8 0 .text.UART1_Int_Enable + $d 0x00006700 0 .text.UART2_Int_Enable + $t 0x00006700 0 .text.UART2_Int_Enable + $d 0x00006714 0 .text.UART2_Int_Enable + $d 0x0000671c 0 .text.UART_IO_Init + $t 0x0000671c 0 .text.UART_IO_Init + $d 0x00006800 0 .text.UART_IO_Init + $d 0x00006808 0 .text.UARTInitRxTxIntEn + $t 0x00006808 0 .text.UARTInitRxTxIntEn + $d 0x00006814 0 .text.UARTInitRxTxIntEn + $d 0x00006818 0 .text.UARTTransmit + $t 0x00006818 0 .text.UARTTransmit + $d 0x00006838 0 .text.EPT_Stop + $t 0x00006838 0 .text.EPT_Stop + $d 0x00006858 0 .text.EPT_Stop + $d 0x00006860 0 .text.Page_ProgramData + $t 0x00006860 0 .text.Page_ProgramData + $d 0x000068f8 0 .text.Page_ProgramData + $d 0x00006900 0 .text.ReadDataArry_U8 + $t 0x00006900 0 .text.ReadDataArry_U8 + $d 0x0000692c 0 .text.startup.main + $t 0x0000692c 0 .text.startup.main + $d 0x00006964 0 .text.startup.main + $d 0x00006970 0 .text.delay_nms + $t 0x00006970 0 .text.delay_nms + $d 0x0000699c 0 .text.delay_nus + $t 0x0000699c 0 .text.delay_nus + $d 0x000069c0 0 .text.BT_CONFIG + $t 0x000069c0 0 .text.BT_CONFIG + $d 0x00006a18 0 .text.BT_CONFIG + $d 0x00006a20 0 .text.SYSCON_CONFIG + $t 0x00006a20 0 .text.SYSCON_CONFIG + $d 0x00006a84 0 .text.APT32F102_init + $t 0x00006a84 0 .text.APT32F102_init + $d 0x00006ae8 0 .text.APT32F102_init + $d 0x00006afc 0 .text.SYSCONIntHandler + $t 0x00006afc 0 .text.SYSCONIntHandler + $d 0x00006be8 0 .text.SYSCONIntHandler + $d 0x00006bec 0 .text.IFCIntHandler + $t 0x00006bec 0 .text.IFCIntHandler + $d 0x00006c50 0 .text.IFCIntHandler + $d 0x00006c54 0 .text.ADCIntHandler + $t 0x00006c54 0 .text.ADCIntHandler + $d 0x00006cb8 0 .text.ADCIntHandler + $d 0x00006cbc 0 .text.EPT0IntHandler + $t 0x00006cbc 0 .text.EPT0IntHandler + $d 0x00006e5c 0 .text.EPT0IntHandler + $d 0x00006e68 0 .text.WWDTHandler + $t 0x00006e68 0 .text.WWDTHandler + $d 0x00006e98 0 .text.WWDTHandler + $d 0x00006e9c 0 .text.GPT0IntHandler + $t 0x00006e9c 0 .text.GPT0IntHandler + $d 0x00006f18 0 .text.GPT0IntHandler + $d 0x00006f1c 0 .text.RTCIntHandler + $t 0x00006f1c 0 .text.RTCIntHandler + $d 0x00006f84 0 .text.RTCIntHandler + $d 0x00006f8c 0 .text.UART0IntHandler + $t 0x00006f8c 0 .text.UART0IntHandler + $d 0x00006fe8 0 .text.UART0IntHandler + $d 0x00006fec 0 .text.UART1IntHandler + $t 0x00006fec 0 .text.UART1IntHandler + $d 0x0000706c 0 .text.UART1IntHandler + $d 0x00007080 0 .text.UART2IntHandler + $t 0x00007080 0 .text.UART2IntHandler + $d 0x000070dc 0 .text.UART2IntHandler + $d 0x000070e0 0 .text.SPI0IntHandler + $t 0x000070e0 0 .text.SPI0IntHandler + $d 0x000071c4 0 .text.SPI0IntHandler + $d 0x000071c8 0 .text.SIO0IntHandler + $t 0x000071c8 0 .text.SIO0IntHandler + $d 0x00007218 0 .text.SIO0IntHandler + $d 0x0000721c 0 .text.EXI0IntHandler + $t 0x0000721c 0 .text.EXI0IntHandler + $d 0x00007248 0 .text.EXI0IntHandler + $d 0x0000724c 0 .text.EXI1IntHandler + $t 0x0000724c 0 .text.EXI1IntHandler + $d 0x00007278 0 .text.EXI1IntHandler + $d 0x0000727c 0 .text.EXI2to3IntHandler + $t 0x0000727c 0 .text.EXI2to3IntHandler + $d 0x000072c0 0 .text.EXI2to3IntHandler + $d 0x000072c4 0 .text.EXI4to9IntHandler + $t 0x000072c4 0 .text.EXI4to9IntHandler + $d 0x000072e0 0 .text.EXI4to9IntHandler + $d 0x000072e4 0 .text.EXI10to15IntHandler + $t 0x000072e4 0 .text.EXI10to15IntHandler + $d 0x0000734c 0 .text.EXI10to15IntHandler + $d 0x00007350 0 .text.LPTIntHandler + $t 0x00007350 0 .text.LPTIntHandler + $d 0x00007380 0 .text.LPTIntHandler + $d 0x00007384 0 .text.BT0IntHandler + $t 0x00007384 0 .text.BT0IntHandler + $d 0x000073cc 0 .text.BT0IntHandler + $d 0x000073d0 0 .text.BT1IntHandler + $t 0x000073d0 0 .text.BT1IntHandler + $d 0x00007438 0 .text.BT1IntHandler + $d 0x00007440 0 .text.PriviledgeVioHandler + $t 0x00007440 0 .text.PriviledgeVioHandler + $d 0x00007442 0 .text.PendTrapHandler + $t 0x00007442 0 .text.PendTrapHandler + $d 0x0000744a 0 .text.Trap3Handler + $t 0x0000744a 0 .text.Trap3Handler + $d 0x00007452 0 .text.Trap2Handler + $t 0x00007452 0 .text.Trap2Handler + $d 0x0000745a 0 .text.Trap1Handler + $t 0x0000745a 0 .text.Trap1Handler + $d 0x00007462 0 .text.Trap0Handler + $t 0x00007462 0 .text.Trap0Handler + $d 0x0000746a 0 .text.UnrecExecpHandler + $t 0x0000746a 0 .text.UnrecExecpHandler + $d 0x00007472 0 .text.BreakPointHandler + $t 0x00007472 0 .text.BreakPointHandler + $d 0x0000747a 0 .text.AccessErrHandler + $t 0x0000747a 0 .text.AccessErrHandler + $d 0x00007482 0 .text.IllegalInstrHandler + $t 0x00007482 0 .text.IllegalInstrHandler + $d 0x0000748a 0 .text.MisalignedHandler + $t 0x0000748a 0 .text.MisalignedHandler + $d 0x00007492 0 .text.CNTAIntHandler + $t 0x00007492 0 .text.CNTAIntHandler + $d 0x0000749a 0 .text.I2CIntHandler + $t 0x0000749a 0 .text.I2CIntHandler + $d 0x000074a4 0 .text.__divsi3 + $t 0x000074a4 0 .text.__divsi3 + $d 0x000074c4 0 .text.__divsi3 + $d 0x000074c8 0 .text.__udivsi3 + $t 0x000074c8 0 .text.__udivsi3 + $d 0x000074e8 0 .text.__udivsi3 + $d 0x000074ec 0 .text.__modsi3 + $t 0x000074ec 0 .text.__modsi3 + $d 0x0000750c 0 .text.__modsi3 + $d 0x00007510 0 .text.__umodsi3 + $t 0x00007510 0 .text.__umodsi3 + $d 0x00007530 0 .text.__umodsi3 + $d 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00007540 0 .text.UARTx_Init + $t 0x00007540 0 .text.UARTx_Init + $d 0x00007694 0 .text.UARTx_Init + $d 0x000076c8 0 .text.UART0_RecvINT_Processing + $t 0x000076c8 0 .text.UART0_RecvINT_Processing + $d 0x000076f0 0 .text.UART0_RecvINT_Processing + $d 0x000076fc 0 .text.UART0_TASK + $t 0x000076fc 0 .text.UART0_TASK + $d 0x0000774c 0 .text.UART0_TASK + $d 0x0000775c 0 .text.UART1_RecvINT_Processing + $t 0x0000775c 0 .text.UART1_RecvINT_Processing + $d 0x00007784 0 .text.UART1_RecvINT_Processing + $d 0x00007790 0 .text.UART2_RecvINT_Processing + $t 0x00007790 0 .text.UART2_RecvINT_Processing + $d 0x000077b8 0 .text.UART2_RecvINT_Processing + $d 0x000077c4 0 .text.MCU485_SendData + $t 0x000077c4 0 .text.MCU485_SendData + $d 0x00007848 0 .text.MCU485_SendData + $d 0x00007854 0 .text.BUS485_Send + $t 0x00007854 0 .text.BUS485_Send + $d 0x00007900 0 .text.BUS485_Send + $d 0x00007918 0 .text.Set_GroupSend + $t 0x00007918 0 .text.Set_GroupSend + $d 0x00007974 0 .text.Set_GroupSend + $d 0x0000797c 0 .text.Clear_SendFlag + $t 0x0000797c 0 .text.Clear_SendFlag + $d 0x00007988 0 .text.Clear_SendFlag + $d 0x0000798c 0 .text.BUS485_Jump_Boot + $t 0x0000798c 0 .text.BUS485_Jump_Boot + $d 0x00007994 0 .text.BUS485_Jump_Boot + $d 0x00007998 0 .text.BusIdle_Task + $t 0x00007998 0 .text.BusIdle_Task + $d 0x000079d0 0 .text.BusIdle_Task + $d 0x000079d8 0 .text.BusBusy_Task + $t 0x000079d8 0 .text.BusBusy_Task + $d 0x00007a28 0 .text.BusBusy_Task + $d 0x00007a34 0 .text.Dbg_Println + $t 0x00007a34 0 .text.Dbg_Println + $d 0x00007aa4 0 .text.Dbg_Println + $d 0x00007ab4 0 .text.MultSend_Task + $t 0x00007ab4 0 .text.MultSend_Task + $d 0x00007b40 0 .text.MultSend_Task + $d 0x00007b54 0 .text.BUS485Send_Task + $t 0x00007b54 0 .text.BUS485Send_Task + $d 0x00007bb8 0 .text.BUS485Send_Task + $d 0x00007bd8 0 .text.Dbg_Print_Buff + $t 0x00007bd8 0 .text.Dbg_Print_Buff + $d 0x00007c48 0 .text.Dbg_Print_Buff + $d 0x00007c5c 0 .text.UART1_TASK + $t 0x00007c5c 0 .text.UART1_TASK + $d 0x00007cd0 0 .text.UART1_TASK + $d 0x00007ce8 0 .text.UART2_TASK + $t 0x00007ce8 0 .text.UART2_TASK + $d 0x00007d68 0 .text.UART2_TASK + $d 0x00007d84 0 .text.Dbg_BT_Println + $t 0x00007d84 0 .text.Dbg_BT_Println + $d 0x00007dd8 0 .text.Dbg_BT_Println + $d 0x00007de4 0 .text.DIP_GetSwitchState + $t 0x00007de4 0 .text.DIP_GetSwitchState + $d 0x00007e14 0 .text.DIP_GetSwitchState + $d 0x00007e18 0 .text.DIP_Switch_Init + $t 0x00007e18 0 .text.DIP_Switch_Init + $d 0x00007ea0 0 .text.DIP_Switch_Init + $d 0x00007eac 0 .text.DIP_ScanTask + $t 0x00007eac 0 .text.DIP_ScanTask + $d 0x00007f34 0 .text.DIP_ScanTask + $d 0x00007f44 0 .text.EEPROM_CheckSum + $t 0x00007f44 0 .text.EEPROM_CheckSum + $d 0x00007f5c 0 .text.EEOROM_ENERGY_ReadSet + $t 0x00007f5c 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008074 0 .text.EEOROM_ENERGY_ReadSet + $d 0x000080ac 0 .text.EEOROM_ENERGY_WriteSet + $t 0x000080ac 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080ec 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080f0 0 .text.EEPROM_ENERGY_Validate + $t 0x000080f0 0 .text.EEPROM_ENERGY_Validate + $d 0x00008214 0 .text.EEPROM_ENERGY_Validate + $d 0x0000823c 0 .text.EEPROM_Default_ENERGY + $t 0x0000823c 0 .text.EEPROM_Default_ENERGY + $d 0x00008324 0 .text.EEPROM_Default_ENERGY + $d 0x00008364 0 .text.EEPROM_ReadTotalEng + $t 0x00008364 0 .text.EEPROM_ReadTotalEng + $d 0x00008408 0 .text.EEPROM_ReadTotalEng + $d 0x0000841c 0 .text.EEPROM_WriteTotalEng + $t 0x0000841c 0 .text.EEPROM_WriteTotalEng + $d 0x000084bc 0 .text.EEPROM_WriteTotalEng + $d 0x000084c8 0 .text.EEPROM_ReadMCUDevInfo + $t 0x000084c8 0 .text.EEPROM_ReadMCUDevInfo + $d 0x0000857c 0 .text.EEPROM_ReadMCUDevInfo + $d 0x0000859c 0 .text.EEPROM_WriteMCUDevInfo + $t 0x0000859c 0 .text.EEPROM_WriteMCUDevInfo + $d 0x000085dc 0 .text.EEPROM_Default_MCUDevInfo + $t 0x000085dc 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00008610 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00008614 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x00008614 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008668 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x0000866c 0 .text.EEPROM_Init + $t 0x0000866c 0 .text.EEPROM_Init + $d 0x00008758 0 .text.EEPROM_Init + BT_Uart_Packing.part.3 0x0000879c F 60 .text.BT_Uart_Packing.part.3 + $d 0x0000879c 0 .text.BT_Uart_Packing.part.3 + $t 0x0000879c 0 .text.BT_Uart_Packing.part.3 + $d 0x000087d0 0 .text.BT_Uart_Packing.part.3 + $d 0x000087d8 0 .text.BLV_DetEnergy_Init + $t 0x000087d8 0 .text.BLV_DetEnergy_Init + $d 0x000087fc 0 .text.BLV_DetEnergy_Init + $d 0x00008808 0 .text.BLV_DetEnergy_Default + $t 0x00008808 0 .text.BLV_DetEnergy_Default + $d 0x000088b0 0 .text.BLV_DetEnergy_Default + $d 0x000088c0 0 .text.HLW8110_CheckSum + $t 0x000088c0 0 .text.HLW8110_CheckSum + $d 0x000088d8 0 .text.HLW8110_WriteREG_EN + $t 0x000088d8 0 .text.HLW8110_WriteREG_EN + $d 0x00008930 0 .text.HLW8110_WriteREG_EN + $d 0x0000893c 0 .text.HLW8110_WriteREG_DIS + $t 0x0000893c 0 .text.HLW8110_WriteREG_DIS + $d 0x00008994 0 .text.HLW8110_WriteREG_DIS + $d 0x000089a0 0 .text.BLV_HLW8110_RWCMD_Packaging + $t 0x000089a0 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a28 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a2c 0 .text.HLW8110_RWCMD_Send + $t 0x00008a2c 0 .text.HLW8110_RWCMD_Send + $d 0x00008a98 0 .text.HLW8110_RWCMD_Send + $d 0x00008ab4 0 .text.HLW8110_CleanSdFlag + $t 0x00008ab4 0 .text.HLW8110_CleanSdFlag + $d 0x00008ac0 0 .text.HLW8110_CleanSdFlag + $d 0x00008ac4 0 .text.Get_RevState + $t 0x00008ac4 0 .text.Get_RevState + $d 0x00008ad8 0 .text.Get_RevState + $d 0x00008adc 0 .text.Get_SendState + $t 0x00008adc 0 .text.Get_SendState + $d 0x00008af4 0 .text.Get_SendState + $d 0x00008af8 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008af8 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008b0a 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008b1c 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008cc4 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008cdc 0 .text.HLW8110_Convert_CurrentRegA_Value + $t 0x00008cdc 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d54 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d68 0 .text.HLW8110_Convert_VoltageReg_Value + $t 0x00008d68 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008dd0 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008de4 0 .text.HLW8110_Convert_PowerReg_Value + $t 0x00008de4 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e54 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e60 0 .text.HLW8110_Convert_EnergyReg_Value + $t 0x00008e60 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008ee4 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008ef8 0 .text.HLW8110_RecvData_Processing + $t 0x00008ef8 0 .text.HLW8110_RecvData_Processing + $d 0x0000912c 0 .text.HLW8110_RecvData_Processing + $d 0x00009154 0 .text.HLW8110_SysPara_Check + $t 0x00009154 0 .text.HLW8110_SysPara_Check + $d 0x0000917c 0 .text.HLW8110_ReadSysPara + $t 0x0000917c 0 .text.HLW8110_ReadSysPara + $d 0x0000918c 0 .text.HLW8110_ReadSysPara + $t 0x00009196 0 .text.HLW8110_ReadSysPara + $d 0x00009360 0 .text.HLW8110_ReadSysPara + $d 0x00009398 0 .text.HLW8110_ReadSysCtrlPara + $t 0x00009398 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009444 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009460 0 .text.GetEnergy_Para + $t 0x00009460 0 .text.GetEnergy_Para + $d 0x000094a8 0 .text.GetEnergy_Para + $d 0x000094c4 0 .text.HLW8110_ReadValue + $t 0x000094c4 0 .text.HLW8110_ReadValue + $d 0x000094d2 0 .text.HLW8110_ReadValue + $t 0x000094d8 0 .text.HLW8110_ReadValue + $d 0x000095f4 0 .text.HLW8110_ReadValue + $d 0x0000961c 0 .text.BLV_HLW8110_Tack + $t 0x0000961c 0 .text.BLV_HLW8110_Tack + $d 0x0000962a 0 .text.BLV_HLW8110_Tack + $t 0x0000962e 0 .text.BLV_HLW8110_Tack + $d 0x00009654 0 .text.BLV_HLW8110_Tack + $d 0x0000965c 0 .text.BT_Uart_Packing + $t 0x0000965c 0 .text.BT_Uart_Packing + $d 0x00009668 0 .text.BT_UART_Print + $t 0x00009668 0 .text.BT_UART_Print + $d 0x000096a0 0 .text.BT_UART_Print + $t 0x000096a8 0 .text.BT_UART_Print + $d 0x00009740 0 .text.BT_UART_Print + $d 0x0000976c 0 .text.BLV_Energy_ActiveRep_Packing + $t 0x0000976c 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x0000984c 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x00009858 0 .text.BLV_ElectricPara_Processing + $t 0x00009858 0 .text.BLV_ElectricPara_Processing + $d 0x000098e0 0 .text.BLV_ElectricPara_Processing + $d 0x00009908 0 .text.BLV_EngDetect_Tack + $t 0x00009908 0 .text.BLV_EngDetect_Tack + $d 0x0000991c 0 .text.BLV_Energy_PassiveRep_Packing + $t 0x0000991c 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009a00 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009a08 0 .text.BLV_Energy_SetTime_Packing + $t 0x00009a08 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009aa0 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009aa8 0 .text.BLV_Energy_QueryVersion_Packing + $t 0x00009aa8 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b38 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b40 0 .text.SetCalibFactor_Switch + $t 0x00009b40 0 .text.SetCalibFactor_Switch + $d 0x00009b4c 0 .text.SetCalibFactor_Switch + $t 0x00009b52 0 .text.SetCalibFactor_Switch + $d 0x00009b6c 0 .text.SetCalibFactor_Switch + $d 0x00009b70 0 .text.BLV_Energy_SetCalibFactor + $t 0x00009b70 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009bf0 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009bf4 0 .text.BLV_Energy_SetCalibFactor_2 + $t 0x00009bf4 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009c6c 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009c70 0 .text.HLW_485Recv_Processing + $t 0x00009c70 0 .text.HLW_485Recv_Processing + $d 0x00009da0 0 .text.HLW_485Recv_Processing + $d 0x00009dd0 0 .text.BT_Recv_Processing + $t 0x00009dd0 0 .text.BT_Recv_Processing + $d 0x00009ec4 0 .text.BT_Recv_Processing + $d 0x00009ee8 0 .text.Boot_Function_Init + $t 0x00009ee8 0 .text.Boot_Function_Init + $d 0x00009f78 0 .text.Boot_Function_Init + $d 0x00009fa8 0 .text.Boot_Comm_CheckSum + $t 0x00009fa8 0 .text.Boot_Comm_CheckSum + $d 0x00009fc8 0 .text.Boot_Comm_CheckSum + $d 0x00009fcc 0 .text.Boot_Comm_FillReplyPack + $t 0x00009fcc 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a02c 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a038 0 .text.Boot_Time_Refresh + $t 0x0000a038 0 .text.Boot_Time_Refresh + $d 0x0000a044 0 .text.Boot_Time_Refresh + $d 0x0000a04c 0 .text.Boot_Comm_UpgradeProcess + $t 0x0000a04c 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a22c 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a268 0 .text.TK_Sampling_prog + $t 0x0000a268 0 .text.TK_Sampling_prog + $d 0x0000a2b0 0 .text.TK_Sampling_prog + $d 0x0000a2c0 0 .text.TKEYIntHandler + $t 0x0000a2c0 0 .text.TKEYIntHandler + $d 0x0000a33c 0 .text.TKEYIntHandler + $d 0x0000a348 0 .text.get_key_number + $t 0x0000a348 0 .text.get_key_number + $d 0x0000a36c 0 .text.get_key_number + $d 0x0000a370 0 .text.TK_Scan_Start + $t 0x0000a370 0 .text.TK_Scan_Start + $d 0x0000a388 0 .text.TK_Scan_Start + $d 0x0000a390 0 .text.TK_Keymap_prog + $t 0x0000a390 0 .text.TK_Keymap_prog + $d 0x0000a4d8 0 .text.TK_Keymap_prog + $d 0x0000a510 0 .text.TK_overflow_predict + $t 0x0000a510 0 .text.TK_overflow_predict + $d 0x0000a5f8 0 .text.TK_overflow_predict + $d 0x0000a62c 0 .text.TK_Baseline_tracking + $t 0x0000a62c 0 .text.TK_Baseline_tracking + $d 0x0000a7d0 0 .text.TK_Baseline_tracking + $d 0x0000a7fc 0 .text.TK_result_prog + $t 0x0000a7fc 0 .text.TK_result_prog + $d 0x0000a83c 0 .text.TK_result_prog + $d 0x0000a850 0 .text.CORETHandler + $t 0x0000a850 0 .text.CORETHandler + $d 0x0000a8b0 0 .text.CORETHandler + $d 0x0000a8c8 0 .text.std_clk_calib + $t 0x0000a8c8 0 .text.std_clk_calib + $d 0x0000ab10 0 .text.std_clk_calib + __func__.6738 0x0000ab4c O 23 .rodata + bp 0x0000ab64 O 16 .rodata + dp_l 0x0000ab74 O 16 .rodata + dp_h 0x0000ab84 O 16 .rodata + blanks.1847 0x0000acb8 O 16 .rodata + zeroes.1848 0x0000acc8 O 16 .rodata + CSWTCH.1 0x0000acd8 O 576 .rodata + NUM.6261 0x200000bc O 1 .bss + update_20ms.6167 0x20000168 O 4 .bss + HLW8110_Sned_Tisk.6544 0x2000016c O 4 .bss + Wait_ReadValue_Tisk.6624 0x20000170 O 4 .bss + BT_State.6658 0x20000174 O 4 .bss + BT_WaitOutTim.6659 0x20000178 O 4 .bss + Eng_Save_Tim.6647 0x2000017c O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00002800 0 .text + __start 0x0000290c 0 .text + __exit 0x00002960 0 .text + __fail 0x00002976 0 .text + DummyHandler 0x00002984 0 .text + __GI_pow 0x000029b4 F 2474 .text + pow 0x000029b4 F 2474 .text + __GI_fabs 0x0000335e F 6 .text + fabs 0x0000335e F 6 .text + __GI_scalbn 0x00003364 F 32 .text + scalbn 0x00003364 F 32 .text + __GI_sqrt 0x00003384 F 376 .text + sqrt 0x00003384 F 376 .text + ___gnu_csky_case_uqi 0x000034fc F 20 .text + ___gnu_csky_case_uhi 0x00003510 F 26 .text + __fixunssfsi 0x0000352c F 46 .text + __fixunsdfsi 0x0000355c F 56 .text + __addsf3 0x000036e0 F 42 .text + __subsf3 0x0000370c F 50 .text + __mulsf3 0x00003740 F 280 .text + __divsf3 0x00003858 F 188 .text + __nesf2 0x00003914 F 54 .text + __gesf2 0x0000394c F 56 .text + __floatsisf 0x00003984 F 100 .text + __fixsfsi 0x000039e8 F 84 .text + __extendsfdf2 0x00003a3c F 36 .text + __adddf3 0x00003d34 F 46 .text + __subdf3 0x00003d64 F 54 .text + __muldf3 0x00003d9c F 564 .text + __divdf3 0x00003fd0 F 340 .text + __gtdf2 0x00004124 F 60 .text + __gedf2 0x00004160 F 60 .text + __ledf2 0x0000419c F 58 .text + __floatsidf 0x000041d8 F 112 .text + __fixdfsi 0x00004248 F 112 .text + __make_dp 0x000042b8 F 40 .text + __truncdfsf2 0x000042e0 F 48 .text + __floatunsidf 0x00004310 F 84 .text + __muldi3 0x00004364 F 68 .text + __clzsi2 0x000043a8 F 64 .text + __pack_f 0x000043e8 F 184 .text + __unpack_f 0x000044a0 F 132 .text + __fpcmp_parts_f 0x00004524 F 120 .text + __make_fp 0x0000459c F 22 .text + __pack_d 0x000045b4 F 412 .text + __unpack_d 0x00004750 F 196 .text + __fpcmp_parts_d 0x00004814 F 140 .text + __cskyvprintfsnprintf 0x000048a0 F 32 .text + __cskyvprintfvsnprintf 0x000048fe F 90 .text + __memset_fast 0x00004958 w F 136 .text + memset 0x00004958 w F 136 .text + __memcpy_fast 0x000049e0 w F 100 .text + memcpy 0x000049e0 w F 100 .text + __GI_strncmp 0x00004a44 F 38 .text + strncmp 0x00004a44 w F 38 .text + __v2_printf 0x00004aa0 F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00004aa0 F 1828 .text + __udivdi3 0x000051c4 F 940 .text + __umoddi3 0x00005570 F 928 .text + __GI___dtostr 0x00005936 F 826 .text + __dtostr 0x00005936 F 826 .text + __isnan 0x00005c70 F 44 .text + __strlen_fast 0x00005c9c w F 82 .text + strlen 0x00005c9c w F 82 .text + __strcpy_fast 0x00005cf0 w F 176 .text + strcpy 0x00005cf0 w F 176 .text + __GI_strchr 0x00005da0 F 18 .text + strchr 0x00005da0 w F 18 .text + __GI_strerror 0x00005db4 F 28 .text + strerror 0x00005db4 F 28 .text + __isinf 0x00005dd0 F 48 .text + __eqdf2 0x00005e00 F 58 .text + __ltdf2 0x00005e3c F 58 .text + __main 0x00005e78 F 56 .text.__main + SYSCON_RST_VALUE 0x00005f24 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00005f70 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00005fa0 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00006028 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00006050 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x0000608c F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x000060a0 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x000060b8 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x000060d8 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x000060f4 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00006110 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00006150 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00006184 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00006188 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00006198 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x000061a4 F 12 .text.SYSCON_Int_Disable + SYSCON_Software_Reset 0x000061b0 F 20 .text.SYSCON_Software_Reset + SYSCON_INT_Priority 0x000061c4 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000061e8 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x00006218 F 100 .text.GPIO_DeInit + GPIO_Init 0x0000627c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000635c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00006370 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00006380 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x0000648c F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x00006588 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00006590 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00006598 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000065ae F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000065c0 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000065d4 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000065e4 F 28 .text.BT_DeInit + BT_Start 0x00006600 F 8 .text.BT_Start + BT_Soft_Reset 0x00006608 F 10 .text.BT_Soft_Reset + BT_Configure 0x00006612 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000662a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00006656 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x0000665c F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00006670 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00006680 F 24 .text.UART0_DeInit + UART1_DeInit 0x00006698 F 24 .text.UART1_DeInit + UART2_DeInit 0x000066b0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000066c8 F 28 .text.UART0_Int_Enable + UART1_Int_Enable 0x000066e4 F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00006700 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000671c F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00006808 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00006818 F 30 .text.UARTTransmit + EPT_Stop 0x00006838 F 40 .text.EPT_Stop + Page_ProgramData 0x00006860 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00006900 F 42 .text.ReadDataArry_U8 + main 0x0000692c F 68 .text.startup.main + delay_nms 0x00006970 F 44 .text.delay_nms + delay_nus 0x0000699c F 34 .text.delay_nus + BT_CONFIG 0x000069c0 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00006a20 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00006a84 F 120 .text.APT32F102_init + SYSCONIntHandler 0x00006afc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00006bec F 104 .text.IFCIntHandler + ADCIntHandler 0x00006c54 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00006cbc F 428 .text.EPT0IntHandler + WWDTHandler 0x00006e68 F 52 .text.WWDTHandler + GPT0IntHandler 0x00006e9c F 128 .text.GPT0IntHandler + RTCIntHandler 0x00006f1c F 112 .text.RTCIntHandler + UART0IntHandler 0x00006f8c F 96 .text.UART0IntHandler + UART1IntHandler 0x00006fec F 148 .text.UART1IntHandler + UART2IntHandler 0x00007080 F 96 .text.UART2IntHandler + SPI0IntHandler 0x000070e0 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000071c8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x0000721c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x0000724c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x0000727c F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000072c4 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x000072e4 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x00007350 F 52 .text.LPTIntHandler + BT0IntHandler 0x00007384 F 76 .text.BT0IntHandler + BT1IntHandler 0x000073d0 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00007440 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00007442 F 8 .text.PendTrapHandler + Trap3Handler 0x0000744a F 8 .text.Trap3Handler + Trap2Handler 0x00007452 F 8 .text.Trap2Handler + Trap1Handler 0x0000745a F 8 .text.Trap1Handler + Trap0Handler 0x00007462 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000746a F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00007472 F 8 .text.BreakPointHandler + AccessErrHandler 0x0000747a F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00007482 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x0000748a F 8 .text.MisalignedHandler + CNTAIntHandler 0x00007492 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000749a F 8 .text.I2CIntHandler + __divsi3 0x000074a4 F 36 .text.__divsi3 + __udivsi3 0x000074c8 F 36 .text.__udivsi3 + __modsi3 0x000074ec F 36 .text.__modsi3 + __umodsi3 0x00007510 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00007534 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000753a F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00007540 F 392 .text.UARTx_Init + UART0_RecvINT_Processing 0x000076c8 F 52 .text.UART0_RecvINT_Processing + UART0_TASK 0x000076fc F 96 .text.UART0_TASK + UART1_RecvINT_Processing 0x0000775c F 52 .text.UART1_RecvINT_Processing + UART2_RecvINT_Processing 0x00007790 F 52 .text.UART2_RecvINT_Processing + MCU485_SendData 0x000077c4 F 144 .text.MCU485_SendData + BUS485_Send 0x00007854 F 196 .text.BUS485_Send + Set_GroupSend 0x00007918 F 100 .text.Set_GroupSend + Clear_SendFlag 0x0000797c F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x0000798c F 12 .text.BUS485_Jump_Boot + BusIdle_Task 0x00007998 F 64 .text.BusIdle_Task + BusBusy_Task 0x000079d8 F 92 .text.BusBusy_Task + Dbg_Println 0x00007a34 F 128 .text.Dbg_Println + MultSend_Task 0x00007ab4 F 160 .text.MultSend_Task + BUS485Send_Task 0x00007b54 F 132 .text.BUS485Send_Task + Dbg_Print_Buff 0x00007bd8 F 132 .text.Dbg_Print_Buff + UART1_TASK 0x00007c5c F 140 .text.UART1_TASK + UART2_TASK 0x00007ce8 F 156 .text.UART2_TASK + Dbg_BT_Println 0x00007d84 F 96 .text.Dbg_BT_Println + DIP_GetSwitchState 0x00007de4 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x00007e18 F 148 .text.DIP_Switch_Init + DIP_ScanTask 0x00007eac F 152 .text.DIP_ScanTask + EEPROM_CheckSum 0x00007f44 F 22 .text.EEPROM_CheckSum + EEOROM_ENERGY_ReadSet 0x00007f5c F 336 .text.EEOROM_ENERGY_ReadSet + EEOROM_ENERGY_WriteSet 0x000080ac F 68 .text.EEOROM_ENERGY_WriteSet + EEPROM_ENERGY_Validate 0x000080f0 F 332 .text.EEPROM_ENERGY_Validate + EEPROM_Default_ENERGY 0x0000823c F 296 .text.EEPROM_Default_ENERGY + EEPROM_ReadTotalEng 0x00008364 F 184 .text.EEPROM_ReadTotalEng + EEPROM_WriteTotalEng 0x0000841c F 172 .text.EEPROM_WriteTotalEng + EEPROM_ReadMCUDevInfo 0x000084c8 F 212 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x0000859c F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x000085dc F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x00008614 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x0000866c F 304 .text.EEPROM_Init + BLV_DetEnergy_Init 0x000087d8 F 48 .text.BLV_DetEnergy_Init + BLV_DetEnergy_Default 0x00008808 F 184 .text.BLV_DetEnergy_Default + HLW8110_CheckSum 0x000088c0 F 24 .text.HLW8110_CheckSum + HLW8110_WriteREG_EN 0x000088d8 F 100 .text.HLW8110_WriteREG_EN + HLW8110_WriteREG_DIS 0x0000893c F 100 .text.HLW8110_WriteREG_DIS + BLV_HLW8110_RWCMD_Packaging 0x000089a0 F 140 .text.BLV_HLW8110_RWCMD_Packaging + HLW8110_RWCMD_Send 0x00008a2c F 136 .text.HLW8110_RWCMD_Send + HLW8110_CleanSdFlag 0x00008ab4 F 16 .text.HLW8110_CleanSdFlag + Get_RevState 0x00008ac4 F 24 .text.Get_RevState + Get_SendState 0x00008adc F 28 .text.Get_SendState + BLV_HLW8110_SendData_Tack 0x00008af8 F 484 .text.BLV_HLW8110_SendData_Tack + HLW8110_Convert_CurrentRegA_Value 0x00008cdc F 140 .text.HLW8110_Convert_CurrentRegA_Value + HLW8110_Convert_VoltageReg_Value 0x00008d68 F 124 .text.HLW8110_Convert_VoltageReg_Value + HLW8110_Convert_PowerReg_Value 0x00008de4 F 124 .text.HLW8110_Convert_PowerReg_Value + HLW8110_Convert_EnergyReg_Value 0x00008e60 F 152 .text.HLW8110_Convert_EnergyReg_Value + HLW8110_RecvData_Processing 0x00008ef8 F 604 .text.HLW8110_RecvData_Processing + HLW8110_SysPara_Check 0x00009154 F 38 .text.HLW8110_SysPara_Check + HLW8110_ReadSysPara 0x0000917c F 540 .text.HLW8110_ReadSysPara + HLW8110_ReadSysCtrlPara 0x00009398 F 200 .text.HLW8110_ReadSysCtrlPara + GetEnergy_Para 0x00009460 F 100 .text.GetEnergy_Para + HLW8110_ReadValue 0x000094c4 F 344 .text.HLW8110_ReadValue + BLV_HLW8110_Tack 0x0000961c F 64 .text.BLV_HLW8110_Tack + BT_Uart_Packing 0x0000965c F 12 .text.BT_Uart_Packing + BT_UART_Print 0x00009668 F 260 .text.BT_UART_Print + BLV_Energy_ActiveRep_Packing 0x0000976c F 236 .text.BLV_Energy_ActiveRep_Packing + BLV_ElectricPara_Processing 0x00009858 F 176 .text.BLV_ElectricPara_Processing + BLV_EngDetect_Tack 0x00009908 F 20 .text.BLV_EngDetect_Tack + BLV_Energy_PassiveRep_Packing 0x0000991c F 236 .text.BLV_Energy_PassiveRep_Packing + BLV_Energy_SetTime_Packing 0x00009a08 F 160 .text.BLV_Energy_SetTime_Packing + BLV_Energy_QueryVersion_Packing 0x00009aa8 F 152 .text.BLV_Energy_QueryVersion_Packing + SetCalibFactor_Switch 0x00009b40 F 48 .text.SetCalibFactor_Switch + BLV_Energy_SetCalibFactor 0x00009b70 F 132 .text.BLV_Energy_SetCalibFactor + BLV_Energy_SetCalibFactor_2 0x00009bf4 F 124 .text.BLV_Energy_SetCalibFactor_2 + HLW_485Recv_Processing 0x00009c70 F 352 .text.HLW_485Recv_Processing + BT_Recv_Processing 0x00009dd0 F 280 .text.BT_Recv_Processing + Boot_Function_Init 0x00009ee8 F 192 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x00009fa8 F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x00009fcc F 108 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x0000a038 F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x0000a04c F 540 .text.Boot_Comm_UpgradeProcess + TK_Sampling_prog 0x0000a268 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x0000a2c0 F 136 .text.TKEYIntHandler + get_key_number 0x0000a348 F 40 .text.get_key_number + TK_Scan_Start 0x0000a370 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x0000a390 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000a510 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000a62c F 464 .text.TK_Baseline_tracking + TK_result_prog 0x0000a7fc F 84 .text.TK_result_prog + CORETHandler 0x0000a850 F 120 .text.CORETHandler + std_clk_calib 0x0000a8c8 F 644 .text.std_clk_calib + __thenan_sf 0x0000ab94 O 16 .rodata + __thenan_df 0x0000aba4 O 20 .rodata + __clz_tab 0x0000abb8 O 256 .rodata + _end_rodata 0x0000c254 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + Project_Boot_Support 0x2000009c O 32 .textcsky.VinFlash + _bss_start 0x200000bc 0 .bss + SysTick_100us 0x200000c0 O 4 .bss + SysTick_1ms 0x200000c4 O 4 .bss + RS485_Comming 0x200000c8 O 4 .bss + RS485_Comm_Flag 0x200000cc O 4 .bss + RS485_Comm_Start 0x200000d0 O 4 .bss + RS485_Comm_End 0x200000d4 O 4 .bss + Dbg_Switch 0x200000d8 O 4 .bss + SysTick_Now 0x200000dc O 4 .bss + SysTick_Last 0x200000e0 O 4 .bss + SysTick_Diff 0x200000e4 O 4 .bss + Dbg_Buffer 0x200000e8 O 128 .bss + Press_debounce_data 0x20000180 O 1 .bss + TK_Lowpower_mode 0x20000181 O 1 .bss + TK_Lowpower_level 0x20000182 O 1 .bss + TK_longpress_time 0x20000184 O 4 .bss + Release_debounce_data 0x20000188 O 1 .bss + Key_mode 0x20000189 O 1 .bss + TK_icon 0x2000018a O 34 .bss + MultiTimes_Filter 0x200001ac O 1 .bss + Base_Speed 0x200001ad O 1 .bss + TK_IO_ENABLE 0x200001b0 O 4 .bss + Valid_Key_Num 0x200001b4 O 1 .bss + TK_senprd 0x200001b6 O 34 .bss + TK_Wakeup_level 0x200001d8 O 1 .bss + TK_Triggerlevel 0x200001da O 34 .bss + TK_EC_LEVEL 0x200001fc O 2 .bss + TK_FVR_LEVEL 0x200001fe O 2 .bss + TK_BaseCnt 0x20000200 O 4 .bss + TK_PSEL_MODE 0x20000204 O 2 .bss + R_CMPB_BUF 0x20000208 O 4 .bss + R_CMPA_BUF 0x2000020c O 4 .bss + R_SIORX_buf 0x20000210 O 40 .bss + g_uart 0x20000238 O 148 .bss + g_uart0 0x200002cc O 148 .bss + g_uart1 0x20000360 O 148 .bss + m_send 0x200003f4 O 136 .bss + g_Dip 0x2000047c O 20 .bss + e_save 0x20000490 O 44 .bss + g_mcu_dev 0x200004bc O 37 .bss + eng_info 0x200004e4 O 12 .bss + u_det 0x200004f0 O 72 .bss + g_CalFactor 0x20000538 O 60 .bss + g_Eng 0x20000574 O 120 .bss + g_boot 0x200005ec O 316 .bss + g_app_feature 0x20000728 O 256 .bss + baseline_data0 0x20000828 O 34 .bss + TK_Postive_build2 0x2000084a O 17 .bss + Key_Map1 0x2000085c O 4 .bss + offset_data2_abs 0x20000860 O 34 .bss + scan_f 0x20000882 O 1 .bss + offset_data1_abs 0x20000884 O 34 .bss + Release_debounce0 0x200008a6 O 17 .bss + Key_Map0 0x200008b8 O 4 .bss + bsae_over_f 0x200008bc O 1 .bss + scan_cnt 0x200008be O 2 .bss + Press_debounce0 0x200008c0 O 17 .bss + offset_data0 0x200008d2 O 34 .bss + sampling_data1 0x200008f4 O 34 .bss + Key_Map2 0x20000918 O 4 .bss + Release_debounce1 0x2000091c O 17 .bss + tk_overflow_f 0x2000092d O 1 .bss + TK_Negtive_build2 0x2000092e O 17 .bss + base_update_f 0x2000093f O 1 .bss + TK_Postive_build1 0x20000940 O 17 .bss + time_cnt 0x20000954 O 4 .bss + lpt_scan_pend_cnt 0x20000958 O 2 .bss + TK_track_cnt 0x2000095a O 1 .bss + Key_Map 0x2000095c O 4 .bss + baseline_data1 0x20000960 O 34 .bss + TK_Postive_build0 0x20000982 O 17 .bss + sampling_data2 0x20000994 O 34 .bss + offset_data1 0x200009b6 O 34 .bss + TK_ovrdect_cnt 0x200009d8 O 1 .bss + Press_debounce2 0x200009d9 O 17 .bss + TK_Negtive_build1 0x200009ea O 17 .bss + tk_num 0x200009fb O 1 .bss + TK_Negtive_build0 0x200009fc O 17 .bss + Press_debounce1 0x20000a0d O 17 .bss + Release_debounce2 0x20000a1e O 17 .bss + r_Key_Map_Temp 0x20000a30 O 4 .bss + tk_seque 0x20000a34 O 17 .bss + scan_step 0x20000a45 O 1 .bss + baseline_data2 0x20000a46 O 34 .bss + tk_sampling_max 0x20000a68 O 34 .bss + offset_data0_abs 0x20000a8a O 34 .bss + offset_data2 0x20000aac O 34 .bss + sampling_data0 0x20000ace O 34 .bss + errno 0x20000af0 O 4 .bss + __malloc_lock 0x20000af4 O 4 .bss + _ebss 0x20000af8 0 .bss + _end 0x20000af8 0 .bss + end 0x20000af8 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000290c + + Region ROM (Base: 0x00002800, Size: 0x00009a54, Max: 0x0000d800) + + Base Addr Size Type Attr Idx Section Name Object + 0x00002800 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000029b4 0x000009aa Code RO 1067 .text pow.o + 0x0000335e 0x00000006 Code RO 1075 .text fabs.o + 0x00003364 0x00000020 Code RO 1081 .text scalbn.o + 0x00003384 0x00000178 Code RO 1088 .text sqrt.o + 0x000034fc 0x00000014 Code RO 1099 .text _csky_case_uqi.o + 0x00003510 0x0000001a Code RO 1104 .text _csky_case_uhi.o + 0x0000352a 0x00000002 PAD + 0x0000352c 0x0000002e Code RO 1109 .text _fixunssfsi.o + 0x0000355a 0x00000002 PAD + 0x0000355c 0x00000038 Code RO 1116 .text _fixunsdfsi.o + 0x00003594 0x000001aa Code RO 1123 .text _addsub_sf.o + 0x0000373e 0x00000002 PAD + 0x00003740 0x00000118 Code RO 1130 .text _mul_sf.o + 0x00003858 0x000000bc Code RO 1137 .text _div_sf.o + 0x00003914 0x00000036 Code RO 1144 .text _ne_sf.o + 0x0000394a 0x00000002 PAD + 0x0000394c 0x00000038 Code RO 1151 .text _ge_sf.o + 0x00003984 0x00000064 Code RO 1158 .text _si_to_sf.o + 0x000039e8 0x00000054 Code RO 1165 .text _sf_to_si.o + 0x00003a3c 0x00000024 Code RO 1172 .text _sf_to_df.o + 0x00003a60 0x0000033a Code RO 1186 .text _addsub_df.o + 0x00003d9a 0x00000002 PAD + 0x00003d9c 0x00000234 Code RO 1193 .text _mul_df.o + 0x00003fd0 0x00000154 Code RO 1200 .text _div_df.o + 0x00004124 0x0000003c Code RO 1207 .text _gt_df.o + 0x00004160 0x0000003c Code RO 1214 .text _ge_df.o + 0x0000419c 0x0000003a Code RO 1221 .text _le_df.o + 0x000041d6 0x00000002 PAD + 0x000041d8 0x00000070 Code RO 1228 .text _si_to_df.o + 0x00004248 0x00000070 Code RO 1235 .text _df_to_si.o + 0x000042b8 0x00000028 Code RO 1242 .text _make_df.o + 0x000042e0 0x00000030 Code RO 1249 .text _df_to_sf.o + 0x00004310 0x00000054 Code RO 1263 .text _usi_to_df.o + 0x00004364 0x00000044 Code RO 1270 .text _muldi3.o + 0x000043a8 0x00000040 Code RO 1277 .text _clzsi2.o + 0x000043e8 0x000000b8 Code RO 1283 .text _pack_sf.o + 0x000044a0 0x00000084 Code RO 1290 .text _unpack_sf.o + 0x00004524 0x00000078 Code RO 1297 .text _fpcmp_parts_sf.o + 0x0000459c 0x00000016 Code RO 1304 .text _make_sf.o + 0x000045b2 0x00000002 PAD + 0x000045b4 0x0000019c Code RO 1311 .text _pack_df.o + 0x00004750 0x000000c4 Code RO 1318 .text _unpack_df.o + 0x00004814 0x0000008c Code RO 1325 .text _fpcmp_parts_df.o + 0x000048a0 0x00000020 Code RO 1346 .text snprintf_required.o + 0x000048c0 0x00000098 Code RO 1353 .text vsnprintf_required.o + 0x00004958 0x00000088 Code RO 1360 .text memset_fast.o + 0x000049e0 0x00000064 Code RO 1365 .text memcpy_fast.o + 0x00004a44 0x00000026 Code RO 1371 .text strncmp.o + 0x00004a6a 0x00000002 PAD + 0x00004a6c 0x00000758 Code RO 1529 .text __v2_printfDFHLlMOPpSSsWp.o + 0x000051c4 0x000003ac Code RO 1588 .text _udivdi3.o + 0x00005570 0x000003a0 Code RO 1595 .text _umoddi3.o + 0x00005910 0x00000360 Code RO 1616 .text __dtostr.o + 0x00005c70 0x0000002c Code RO 1624 .text __isnan.o + 0x00005c9c 0x00000052 Code RO 1636 .text strlen_fast.o + 0x00005cee 0x00000002 PAD + 0x00005cf0 0x000000b0 Code RO 1641 .text strcpy_fast.o + 0x00005da0 0x00000012 Code RO 1646 .text strchr.o + 0x00005db2 0x00000002 PAD + 0x00005db4 0x0000001c Code RO 1651 .text strerror.o + 0x00005dd0 0x00000030 Code RO 1659 .text __isinf.o + 0x00005e00 0x0000003a Code RO 1665 .text _eq_df.o + 0x00005e3a 0x00000002 PAD + 0x00005e3c 0x0000003a Code RO 1672 .text _lt_df.o + 0x00005e78 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00005eb0 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00005f24 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00005f70 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00005fa0 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00006028 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00006050 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000608c 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x000060a0 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x000060b8 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x000060d8 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000060f4 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006110 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006150 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006184 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00006188 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006198 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000061a4 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x000061b0 0x00000014 Code RO 111 .text.SYSCON_Software_Reset Obj/FWlib_apt32f102_syscon.o + 0x000061c4 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000061e8 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00006218 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x0000627c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000635c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00006370 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00006380 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x0000648c 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00006588 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00006590 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00006598 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000065ae 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000065c0 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000065d4 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000065e4 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00006600 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00006608 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00006612 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000662a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00006656 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x0000665c 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00006670 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00006680 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00006698 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066b0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066c8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000066e4 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00006700 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000671c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00006808 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00006818 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00006838 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00006860 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00006900 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x0000692c 0x00000044 Code RO 690 .text.startup.main Obj/main.o + 0x00006970 0x0000002c Code RO 708 .text.delay_nms Obj/mcu_initial.o + 0x0000699c 0x00000022 Code RO 709 .text.delay_nus Obj/mcu_initial.o + 0x000069c0 0x00000060 Code RO 713 .text.BT_CONFIG Obj/mcu_initial.o + 0x00006a20 0x00000062 Code RO 719 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00006a84 0x00000078 Code RO 720 .text.APT32F102_init Obj/mcu_initial.o + 0x00006afc 0x000000f0 Code RO 736 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00006bec 0x00000068 Code RO 737 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00006c54 0x00000068 Code RO 738 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00006cbc 0x000001ac Code RO 739 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00006e68 0x00000034 Code RO 740 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00006e9c 0x00000080 Code RO 741 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00006f1c 0x00000070 Code RO 742 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00006f8c 0x00000060 Code RO 743 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00006fec 0x00000094 Code RO 744 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00007080 0x00000060 Code RO 745 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000070e0 0x000000e8 Code RO 746 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000071c8 0x00000054 Code RO 747 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x0000721c 0x00000030 Code RO 748 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x0000724c 0x00000030 Code RO 749 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x0000727c 0x00000048 Code RO 750 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000072c4 0x00000020 Code RO 751 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x000072e4 0x0000006c Code RO 752 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00007350 0x00000034 Code RO 753 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00007384 0x0000004c Code RO 754 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000073d0 0x00000070 Code RO 755 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00007440 0x00000002 Code RO 756 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00007442 0x00000008 Code RO 758 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000744a 0x00000008 Code RO 759 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00007452 0x00000008 Code RO 760 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000745a 0x00000008 Code RO 761 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00007462 0x00000008 Code RO 762 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000746a 0x00000008 Code RO 763 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00007472 0x00000008 Code RO 764 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x0000747a 0x00000008 Code RO 765 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00007482 0x00000008 Code RO 766 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x0000748a 0x00000008 Code RO 767 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00007492 0x00000008 Code RO 768 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000749a 0x00000008 Code RO 769 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000074a4 0x00000024 Code RO 786 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000074c8 0x00000024 Code RO 787 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000074ec 0x00000024 Code RO 788 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00007510 0x00000024 Code RO 789 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00007534 0x00000006 Code RO 807 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000753a 0x00000006 Code RO 808 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00007540 0x00000188 Code RO 822 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000076c8 0x00000034 Code RO 823 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000076fc 0x00000060 Code RO 824 .text.UART0_TASK Obj/SYSTEM_uart.o + 0x0000775c 0x00000034 Code RO 825 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00007790 0x00000034 Code RO 826 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000077c4 0x00000090 Code RO 828 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00007854 0x000000c4 Code RO 829 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00007918 0x00000064 Code RO 830 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000797c 0x00000010 Code RO 831 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000798c 0x0000000c Code RO 832 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00007998 0x00000040 Code RO 834 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000079d8 0x0000005c Code RO 835 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00007a34 0x00000080 Code RO 837 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00007ab4 0x000000a0 Code RO 838 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00007b54 0x00000084 Code RO 839 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00007bd8 0x00000084 Code RO 840 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00007c5c 0x0000008c Code RO 841 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x00007ce8 0x0000009c Code RO 842 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00007d84 0x00000060 Code RO 843 .text.Dbg_BT_Println Obj/SYSTEM_uart.o + 0x00007de4 0x00000034 Code RO 861 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x00007e18 0x00000094 Code RO 862 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x00007eac 0x00000098 Code RO 863 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00007f44 0x00000016 Code RO 881 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00007f5c 0x00000150 Code RO 882 .text.EEOROM_ENERGY_ReadSet Obj/SYSTEM_eeprom.o + 0x000080ac 0x00000044 Code RO 883 .text.EEOROM_ENERGY_WriteSet Obj/SYSTEM_eeprom.o + 0x000080f0 0x0000014c Code RO 884 .text.EEPROM_ENERGY_Validate Obj/SYSTEM_eeprom.o + 0x0000823c 0x00000128 Code RO 885 .text.EEPROM_Default_ENERGY Obj/SYSTEM_eeprom.o + 0x00008364 0x000000b8 Code RO 886 .text.EEPROM_ReadTotalEng Obj/SYSTEM_eeprom.o + 0x0000841c 0x000000ac Code RO 887 .text.EEPROM_WriteTotalEng Obj/SYSTEM_eeprom.o + 0x000084c8 0x000000d4 Code RO 891 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x0000859c 0x00000040 Code RO 892 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085dc 0x00000038 Code RO 893 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008614 0x00000058 Code RO 894 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x0000866c 0x00000130 Code RO 895 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x0000879c 0x0000003c Code RO 913 .text.BT_Uart_Packing.part.3 Obj/SYSTEM_det_energy.o + 0x000087d8 0x00000030 Code RO 914 .text.BLV_DetEnergy_Init Obj/SYSTEM_det_energy.o + 0x00008808 0x000000b8 Code RO 915 .text.BLV_DetEnergy_Default Obj/SYSTEM_det_energy.o + 0x000088c0 0x00000018 Code RO 916 .text.HLW8110_CheckSum Obj/SYSTEM_det_energy.o + 0x000088d8 0x00000064 Code RO 917 .text.HLW8110_WriteREG_EN Obj/SYSTEM_det_energy.o + 0x0000893c 0x00000064 Code RO 918 .text.HLW8110_WriteREG_DIS Obj/SYSTEM_det_energy.o + 0x000089a0 0x0000008c Code RO 919 .text.BLV_HLW8110_RWCMD_Packaging Obj/SYSTEM_det_energy.o + 0x00008a2c 0x00000088 Code RO 920 .text.HLW8110_RWCMD_Send Obj/SYSTEM_det_energy.o + 0x00008ab4 0x00000010 Code RO 921 .text.HLW8110_CleanSdFlag Obj/SYSTEM_det_energy.o + 0x00008ac4 0x00000018 Code RO 922 .text.Get_RevState Obj/SYSTEM_det_energy.o + 0x00008adc 0x0000001c Code RO 923 .text.Get_SendState Obj/SYSTEM_det_energy.o + 0x00008af8 0x000001e4 Code RO 925 .text.BLV_HLW8110_SendData_Tack Obj/SYSTEM_det_energy.o + 0x00008cdc 0x0000008c Code RO 926 .text.HLW8110_Convert_CurrentRegA_Value Obj/SYSTEM_det_energy.o + 0x00008d68 0x0000007c Code RO 927 .text.HLW8110_Convert_VoltageReg_Value Obj/SYSTEM_det_energy.o + 0x00008de4 0x0000007c Code RO 928 .text.HLW8110_Convert_PowerReg_Value Obj/SYSTEM_det_energy.o + 0x00008e60 0x00000098 Code RO 929 .text.HLW8110_Convert_EnergyReg_Value Obj/SYSTEM_det_energy.o + 0x00008ef8 0x0000025c Code RO 930 .text.HLW8110_RecvData_Processing Obj/SYSTEM_det_energy.o + 0x00009154 0x00000026 Code RO 931 .text.HLW8110_SysPara_Check Obj/SYSTEM_det_energy.o + 0x0000917c 0x0000021c Code RO 932 .text.HLW8110_ReadSysPara Obj/SYSTEM_det_energy.o + 0x00009398 0x000000c8 Code RO 933 .text.HLW8110_ReadSysCtrlPara Obj/SYSTEM_det_energy.o + 0x00009460 0x00000064 Code RO 934 .text.GetEnergy_Para Obj/SYSTEM_det_energy.o + 0x000094c4 0x00000158 Code RO 935 .text.HLW8110_ReadValue Obj/SYSTEM_det_energy.o + 0x0000961c 0x00000040 Code RO 936 .text.BLV_HLW8110_Tack Obj/SYSTEM_det_energy.o + 0x0000965c 0x0000000c Code RO 937 .text.BT_Uart_Packing Obj/SYSTEM_det_energy.o + 0x00009668 0x00000104 Code RO 938 .text.BT_UART_Print Obj/SYSTEM_det_energy.o + 0x0000976c 0x000000ec Code RO 939 .text.BLV_Energy_ActiveRep_Packing Obj/SYSTEM_det_energy.o + 0x00009858 0x000000b0 Code RO 940 .text.BLV_ElectricPara_Processing Obj/SYSTEM_det_energy.o + 0x00009908 0x00000014 Code RO 941 .text.BLV_EngDetect_Tack Obj/SYSTEM_det_energy.o + 0x0000991c 0x000000ec Code RO 942 .text.BLV_Energy_PassiveRep_Packing Obj/SYSTEM_det_energy.o + 0x00009a08 0x000000a0 Code RO 943 .text.BLV_Energy_SetTime_Packing Obj/SYSTEM_det_energy.o + 0x00009aa8 0x00000098 Code RO 944 .text.BLV_Energy_QueryVersion_Packing Obj/SYSTEM_det_energy.o + 0x00009b40 0x00000030 Code RO 945 .text.SetCalibFactor_Switch Obj/SYSTEM_det_energy.o + 0x00009b70 0x00000084 Code RO 946 .text.BLV_Energy_SetCalibFactor Obj/SYSTEM_det_energy.o + 0x00009bf4 0x0000007c Code RO 947 .text.BLV_Energy_SetCalibFactor_2 Obj/SYSTEM_det_energy.o + 0x00009c70 0x00000160 Code RO 948 .text.HLW_485Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009dd0 0x00000118 Code RO 949 .text.BT_Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009ee8 0x000000c0 Code RO 968 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x00009fa8 0x00000024 Code RO 969 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x00009fcc 0x0000006c Code RO 971 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x0000a038 0x00000014 Code RO 975 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x0000a04c 0x0000021c Code RO 976 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x0000a268 0x00000058 Code RO 1013 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a2c0 0x00000088 Code RO 1017 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a348 0x00000028 Code RO 1018 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x0000a370 0x00000020 Code RO 1020 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x0000a390 0x00000180 Code RO 1021 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a510 0x0000011c Code RO 1022 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x0000a62c 0x000001d0 Code RO 1023 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x0000a7fc 0x00000054 Code RO 1024 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a850 0x00000078 Code RO 1025 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a8c8 0x00000284 Code RO 1047 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000ab4c 0x00000017 Data RO 950 .rodata Obj/SYSTEM_det_energy.o + 0x0000ab63 0x00000001 PAD + 0x0000ab64 0x00000030 Data RO 1070 .rodata pow.o + 0x0000ab94 0x00000010 Data RO 1182 .rodata _thenan_sf.o + 0x0000aba4 0x00000014 Data RO 1259 .rodata _thenan_df.o + 0x0000abb8 0x00000100 Data RO 1335 .rodata _clz.o + 0x0000acb8 0x00000020 Data RO 1532 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x0000acd8 0x00000240 Data RO 1654 .rodata strerror.o + 0x0000af18 0x00000021 Data RO 691 .rodata.str1.1 Obj/main.o + 0x0000af39 0x000000af Data RO 844 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x0000afe8 0x00000023 Data RO 864 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x0000b00b 0x000003b6 Data RO 896 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000b3c1 0x000003e7 Data RO 951 .rodata.str1.1 Obj/SYSTEM_det_energy.o + 0x0000b7a8 0x000002fb Data RO 980 .rodata.str1.1 Obj/SYSTEM_Bootload_fun.o + 0x0000baa3 0x00000022 Data RO 1533 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x0000bac5 0x00000008 Data RO 1619 .rodata.str1.1 __dtostr.o + 0x0000bacd 0x00000787 Data RO 1655 .rodata.str1.1 strerror.o + + Region RAM (Base: 0x20000000, Size: 0x00000af8, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 784 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 1004 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x00000020 Data RW 692 .textcsky.VinFlash Obj/main.o + 0x200000bc 0x0000000c Zero RW 735 .bss Obj/mcu_interrupt.o + 0x200000c8 0x000000a0 Zero RW 821 .bss Obj/SYSTEM_uart.o + 0x20000168 0x00000004 Zero RW 860 .bss Obj/SYSTEM_dip_switch.o + 0x2000016c 0x00000014 Zero RW 912 .bss Obj/SYSTEM_det_energy.o + 0x20000180 0x00000086 Zero RW 704 COMMON Obj/main.o + 0x20000206 0x00000002 PAD + 0x20000208 0x00000030 Zero RW 782 COMMON Obj/mcu_interrupt.o + 0x20000238 0x00000244 Zero RW 857 COMMON Obj/SYSTEM_uart.o + 0x2000047c 0x00000014 Zero RW 877 COMMON Obj/SYSTEM_dip_switch.o + 0x20000490 0x00000060 Zero RW 909 COMMON Obj/SYSTEM_eeprom.o + 0x200004f0 0x000000fc Zero RW 964 COMMON Obj/SYSTEM_det_energy.o + 0x200005ec 0x0000023c Zero RW 993 COMMON Obj/SYSTEM_Bootload_fun.o + 0x20000828 0x000002c8 Zero RW 1043 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000af0 0x00000008 Zero RW 1609 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 278 Obj/arch_crt0.o + 56 0 0 0 812 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 872 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 932 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13549 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 438 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 68 33 32 134 12757 Obj/main.o + 392 0 0 0 16599 Obj/mcu_initial.o + 2470 0 0 60 15410 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 2212 175 0 740 17325 Obj/SYSTEM_uart.o + 352 35 0 24 11554 Obj/SYSTEM_dip_switch.o + 2134 950 0 96 17219 Obj/SYSTEM_eeprom.o + 5962 1022 0 272 22397 Obj/SYSTEM_det_energy.o + 896 763 0 572 16797 Obj/SYSTEM_Bootload_fun.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 17808 2978 136 1898 272387 Object Totals + 22 1 3 2 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 26 0 0 0 0 _csky_case_uhi.o + 46 0 0 0 0 _fixunssfsi.o + 56 0 0 0 0 _fixunsdfsi.o + 426 0 0 0 0 _addsub_sf.o + 280 0 0 0 0 _mul_sf.o + 188 0 0 0 0 _div_sf.o + 54 0 0 0 0 _ne_sf.o + 56 0 0 0 0 _ge_sf.o + 100 0 0 0 0 _si_to_sf.o + 84 0 0 0 0 _sf_to_si.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 40 0 0 0 0 _make_df.o + 48 0 0 0 0 _df_to_sf.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 184 0 0 0 0 _pack_sf.o + 132 0 0 0 0 _unpack_sf.o + 120 0 0 0 0 _fpcmp_parts_sf.o + 22 0 0 0 0 _make_sf.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 6882 292 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 38 0 0 0 0 strncmp.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3598 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 33590 5896 188 2620 297401 Grand Totals + 33590 5896 188 2620 297401 Elf Image Totals + 33590 5896 188 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 39486 ( 38.56kB) +Total RW Size (RW Data + ZI Data) 2808 ( 2.74kB) +Total ROM Size (Code + RO Data + RW Data) 39674 ( 38.74kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01_20250830.asm b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01_20250830.asm new file mode 100644 index 0000000..c3c9b02 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01_20250830.asm @@ -0,0 +1,20116 @@ + +.//Obj/BLV_CS_AC100_V01_20250830.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00002800 : + 2800: 0000290c .long 0x0000290c + 2804: 0000748a .long 0x0000748a + 2808: 0000747a .long 0x0000747a + 280c: 00002984 .long 0x00002984 + 2810: 00007482 .long 0x00007482 + 2814: 00007440 .long 0x00007440 + 2818: 00002984 .long 0x00002984 + 281c: 00007472 .long 0x00007472 + 2820: 0000746a .long 0x0000746a + 2824: 00002984 .long 0x00002984 + 2828: 00002984 .long 0x00002984 + 282c: 00002984 .long 0x00002984 + 2830: 00002984 .long 0x00002984 + 2834: 00002984 .long 0x00002984 + 2838: 00002984 .long 0x00002984 + 283c: 00002984 .long 0x00002984 + 2840: 00007462 .long 0x00007462 + 2844: 0000745a .long 0x0000745a + 2848: 00007452 .long 0x00007452 + 284c: 0000744a .long 0x0000744a + 2850: 00002984 .long 0x00002984 + 2854: 00002984 .long 0x00002984 + 2858: 00002984 .long 0x00002984 + 285c: 00002984 .long 0x00002984 + 2860: 00002984 .long 0x00002984 + 2864: 00002984 .long 0x00002984 + 2868: 00002984 .long 0x00002984 + 286c: 00002984 .long 0x00002984 + 2870: 00002984 .long 0x00002984 + 2874: 00002984 .long 0x00002984 + 2878: 00002984 .long 0x00002984 + 287c: 00007442 .long 0x00007442 + 2880: 0000a834 .long 0x0000a834 + 2884: 00006afc .long 0x00006afc + 2888: 00006bec .long 0x00006bec + 288c: 00006c54 .long 0x00006c54 + 2890: 00006cbc .long 0x00006cbc + 2894: 00002984 .long 0x00002984 + 2898: 00006e68 .long 0x00006e68 + 289c: 0000721c .long 0x0000721c + 28a0: 0000724c .long 0x0000724c + 28a4: 00006e9c .long 0x00006e9c + 28a8: 00002984 .long 0x00002984 + 28ac: 00002984 .long 0x00002984 + 28b0: 00006f1c .long 0x00006f1c + 28b4: 00006f8c .long 0x00006f8c + 28b8: 00006fec .long 0x00006fec + 28bc: 00007080 .long 0x00007080 + 28c0: 00002984 .long 0x00002984 + 28c4: 0000749a .long 0x0000749a + 28c8: 00002984 .long 0x00002984 + 28cc: 000070e0 .long 0x000070e0 + 28d0: 000071c8 .long 0x000071c8 + 28d4: 0000727c .long 0x0000727c + 28d8: 000072c4 .long 0x000072c4 + 28dc: 000072e4 .long 0x000072e4 + 28e0: 00007492 .long 0x00007492 + 28e4: 0000a2a4 .long 0x0000a2a4 + 28e8: 00007350 .long 0x00007350 + 28ec: 00002984 .long 0x00002984 + 28f0: 00007384 .long 0x00007384 + 28f4: 000073d0 .long 0x000073d0 + 28f8: 00002984 .long 0x00002984 + 28fc: 00002984 .long 0x00002984 + 2900: 55aa0005 .long 0x55aa0005 + ... + +0000290c <__start>: +// .long __start +__start: + + + //initialize all registers + movi r0, 0 + 290c: 3000 movi r0, 0 + movi r1, 0 + 290e: 3100 movi r1, 0 + movi r2, 0 + 2910: 3200 movi r2, 0 + movi r3, 0 + 2912: 3300 movi r3, 0 + movi r4, 0 + 2914: 3400 movi r4, 0 + movi r5, 0 + 2916: 3500 movi r5, 0 + movi r6, 0 + 2918: 3600 movi r6, 0 + movi r7, 0 + 291a: 3700 movi r7, 0 + //movi r13, 0 + //movi r14, 0 + //movi r15, 0 + +//set VBR + lrw r2, vector_table + 291c: 105b lrw r2, 0x2800 // 2988 + mtcr r2, cr<1,0> + 291e: c0026421 mtcr r2, cr<1, 0> + +//enable EE bit of psr + mfcr r2, cr<0,0> + 2922: c0006022 mfcr r2, cr<0, 0> + bseti r2, r2, 8 + 2926: 3aa8 bseti r2, 8 + mtcr r2, cr<0,0> + 2928: 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 + 292c: 1038 lrw r1, 0xe000ef90 // 298c + movi r2, 0x0 + 292e: 3200 movi r2, 0 + st.w r2, (r1, 0x0) + 2930: b140 st.w r2, (r1, 0x0) + + + +//initialize kernel stack + lrw r7, __kernel_stack + 2932: 10f8 lrw r7, 0x20000ff8 // 2990 + mov r14,r7 + 2934: 6f9f mov r14, r7 + subi r6,r7,0x4 + 2936: 5fcf subi r6, r7, 4 + + //lrw r3, 0x40 + lrw r3, 0x04 + 2938: 3304 movi r3, 4 + + subu r4, r7, r3 + 293a: 5f8d subu r4, r7, r3 + lrw r5, 0x0 + 293c: 3500 movi r5, 0 + +0000293e : +INIT_KERLE_STACK: + addi r4, 0x4 + 293e: 2403 addi r4, 4 + st.w r5, (r4) + 2940: b4a0 st.w r5, (r4, 0x0) + //cmphs r7, r4 + cmphs r6, r4 + 2942: 6518 cmphs r6, r4 + bt INIT_KERLE_STACK + 2944: 0bfd bt 0x293e // 293e + +00002946 <__to_main>: + +__to_main: + lrw r0,__main + 2946: 1014 lrw r0, 0x5e78 // 2994 + jsr r0 + 2948: 7bc1 jsr r0 + mov r0, r0 + 294a: 6c03 mov r0, r0 + mov r0, r0 + 294c: 6c03 mov r0, r0 + + + + lrw r15, __exit + 294e: ea8f0013 lrw r15, 0x2960 // 2998 + lrw r0,main + 2952: 1013 lrw r0, 0x692c // 299c + jmp r0 + 2954: 7800 jmp r0 + mov r0, r0 + 2956: 6c03 mov r0, r0 + mov r0, r0 + 2958: 6c03 mov r0, r0 + mov r0, r0 + 295a: 6c03 mov r0, r0 + mov r0, r0 + 295c: 6c03 mov r0, r0 + mov r0, r0 + 295e: 6c03 mov r0, r0 + +00002960 <__exit>: + +.export __exit +__exit: + + lrw r4, 0x20003000 + 2960: 1090 lrw r4, 0x20003000 // 29a0 + //lrw r5, 0x0 + mov r5, r0 + 2962: 6d43 mov r5, r0 + st.w r5, (r4) + 2964: b4a0 st.w r5, (r4, 0x0) + + mfcr r1, cr<0,0> + 2966: c0006021 mfcr r1, cr<0, 0> + lrw r1, 0xFFFF + 296a: 102f lrw r1, 0xffff // 29a4 + mtcr r1, cr<11,0> + 296c: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xFFF + 2970: 102e lrw r1, 0xfff // 29a8 + movi r0, 0x0 + 2972: 3000 movi r0, 0 + st r1, (r0) + 2974: b020 st.w r1, (r0, 0x0) + +00002976 <__fail>: + +.export __fail +__fail: + lrw r1, 0xEEEE + 2976: 102e lrw r1, 0xeeee // 29ac + mtcr r1, cr<11,0> + 2978: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xEEE + 297c: 102d lrw r1, 0xeee // 29b0 + movi r0, 0x0 + 297e: 3000 movi r0, 0 + st r1, (r0) + 2980: b020 st.w r1, (r0, 0x0) + +00002982 <__dummy>: + +__dummy: + br __fail + 2982: 07fa br 0x2976 // 2976 <__fail> + +00002984 : + +.export DummyHandler +DummyHandler: + br __fail + 2984: 07f9 br 0x2976 // 2976 <__fail> + 2986: 0000 .short 0x0000 + 2988: 00002800 .long 0x00002800 + 298c: e000ef90 .long 0xe000ef90 + 2990: 20000ff8 .long 0x20000ff8 + 2994: 00005e78 .long 0x00005e78 + 2998: 00002960 .long 0x00002960 + 299c: 0000692c .long 0x0000692c + 29a0: 20003000 .long 0x20003000 + 29a4: 0000ffff .long 0x0000ffff + 29a8: 00000fff .long 0x00000fff + 29ac: 0000eeee .long 0x0000eeee + 29b0: 00000eee .long 0x00000eee + +000029b4 <__GI_pow>: + 29b4: 14d4 push r4-r7, r15 + 29b6: 142d subi r14, r14, 52 + 29b8: b860 st.w r3, (r14, 0x0) + 29ba: 4361 lsli r3, r3, 1 + 29bc: 4b81 lsri r4, r3, 1 + 29be: b842 st.w r2, (r14, 0x8) + 29c0: 6c90 or r2, r4 + 29c2: 3a40 cmpnei r2, 0 + 29c4: 6dc3 mov r7, r0 + 29c6: 6d87 mov r6, r1 + 29c8: 0803 bt 0x29ce // 29ce <__GI_pow+0x1a> + 29ca: e8000462 br 0x328e // 328e <__GI_pow+0x8da> + 29ce: 41a1 lsli r5, r1, 1 + 29d0: 4da1 lsri r5, r5, 1 + 29d2: 0055 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 29d4: 6549 cmplt r2, r5 + 29d6: 080c bt 0x29ee // 29ee <__GI_pow+0x3a> + 29d8: 6496 cmpne r5, r2 + 29da: 0803 bt 0x29e0 // 29e0 <__GI_pow+0x2c> + 29dc: 3840 cmpnei r0, 0 + 29de: 0808 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e0: 6509 cmplt r2, r4 + 29e2: 0806 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e4: 6492 cmpne r4, r2 + 29e6: 080e bt 0x2a02 // 2a02 <__GI_pow+0x4e> + 29e8: 9802 ld.w r0, (r14, 0x8) + 29ea: 3840 cmpnei r0, 0 + 29ec: 0c0b bf 0x2a02 // 2a02 <__GI_pow+0x4e> + 29ee: 9842 ld.w r2, (r14, 0x8) + 29f0: 9860 ld.w r3, (r14, 0x0) + 29f2: 6c1f mov r0, r7 + 29f4: 6c5b mov r1, r6 + 29f6: e000099f bsr 0x3d34 // 3d34 <__adddf3> + 29fa: 6d03 mov r4, r0 + 29fc: 6c13 mov r0, r4 + 29fe: 140d addi r14, r14, 52 + 2a00: 1494 pop r4-r7, r15 + 2a02: 3edf btsti r6, 31 + 2a04: 0c51 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a06: 0121 lrw r1, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2a08: 2900 subi r1, 1 + 2a0a: 6505 cmplt r1, r4 + 2a0c: 084b bt 0x2aa2 // 2aa2 <__GI_pow+0xee> + 2a0e: 0162 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a10: 2b00 subi r3, 1 + 2a12: 650d cmplt r3, r4 + 2a14: 0c49 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a16: 5454 asri r2, r4, 20 + 2a18: 0104 lrw r0, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2a1a: 6080 addu r2, r0 + 2a1c: 3a34 cmplti r2, 21 + 2a1e: 0821 bt 0x2a60 // 2a60 <__GI_pow+0xac> + 2a20: 3334 movi r3, 52 + 2a22: 60ca subu r3, r2 + 2a24: 9842 ld.w r2, (r14, 0x8) + 2a26: 708d lsr r2, r3 + 2a28: 6c4b mov r1, r2 + 2a2a: 704c lsl r1, r3 + 2a2c: 9802 ld.w r0, (r14, 0x8) + 2a2e: 6442 cmpne r0, r1 + 2a30: 083b bt 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a32: 3101 movi r1, 1 + 2a34: 6884 and r2, r1 + 2a36: 3302 movi r3, 2 + 2a38: 5b49 subu r2, r3, r2 + 2a3a: 9802 ld.w r0, (r14, 0x8) + 2a3c: 3840 cmpnei r0, 0 + 2a3e: b841 st.w r2, (r14, 0x4) + 2a40: 0862 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2a42: 0151 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 2a44: 6492 cmpne r4, r2 + 2a46: 081f bt 0x2a84 // 2a84 <__GI_pow+0xd0> + 2a48: 012f lrw r1, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2a4a: 6054 addu r1, r5 + 2a4c: 6dc4 or r7, r1 + 2a4e: 3f40 cmpnei r7, 0 + 2a50: 082d bt 0x2aaa // 2aaa <__GI_pow+0xf6> + 2a52: 9860 ld.w r3, (r14, 0x0) + 2a54: 3200 movi r2, 0 + 2a56: 6c4f mov r1, r3 + 2a58: 3000 movi r0, 0 + 2a5a: e0000985 bsr 0x3d64 // 3d64 <__subdf3> + 2a5e: 07ce br 0x29fa // 29fa <__GI_pow+0x46> + 2a60: 9822 ld.w r1, (r14, 0x8) + 2a62: 3940 cmpnei r1, 0 + 2a64: 084e bt 0x2b00 // 2b00 <__GI_pow+0x14c> + 2a66: 3114 movi r1, 20 + 2a68: 604a subu r1, r2 + 2a6a: 6c93 mov r2, r4 + 2a6c: 7086 asr r2, r1 + 2a6e: 6c0b mov r0, r2 + 2a70: 7004 lsl r0, r1 + 2a72: 6412 cmpne r4, r0 + 2a74: 0c03 bf 0x2a7a // 2a7a <__GI_pow+0xc6> + 2a76: e8000471 br 0x3358 // 3358 <__GI_pow+0x9a4> + 2a7a: 3101 movi r1, 1 + 2a7c: 6884 and r2, r1 + 2a7e: 3002 movi r0, 2 + 2a80: 5869 subu r3, r0, r2 + 2a82: b861 st.w r3, (r14, 0x4) + 2a84: 0220 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a86: 6452 cmpne r4, r1 + 2a88: 0825 bt 0x2ad2 // 2ad2 <__GI_pow+0x11e> + 2a8a: 9880 ld.w r4, (r14, 0x0) + 2a8c: 3cdf btsti r4, 31 + 2a8e: 0803 bt 0x2a94 // 2a94 <__GI_pow+0xe0> + 2a90: e8000407 br 0x329e // 329e <__GI_pow+0x8ea> + 2a94: 6c9f mov r2, r7 + 2a96: 6cdb mov r3, r6 + 2a98: 3000 movi r0, 0 + 2a9a: 0225 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a9c: e0000a9a bsr 0x3fd0 // 3fd0 <__divdf3> + 2aa0: 07ad br 0x29fa // 29fa <__GI_pow+0x46> + 2aa2: 3202 movi r2, 2 + 2aa4: 07cb br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aa6: 3200 movi r2, 0 + 2aa8: 07c9 br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aaa: 0269 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2aac: 2b00 subi r3, 1 + 2aae: 654d cmplt r3, r5 + 2ab0: 9800 ld.w r0, (r14, 0x0) + 2ab2: 0c08 bf 0x2ac2 // 2ac2 <__GI_pow+0x10e> + 2ab4: 38df btsti r0, 31 + 2ab6: 0803 bt 0x2abc // 2abc <__GI_pow+0x108> + 2ab8: e80003ef br 0x3296 // 3296 <__GI_pow+0x8e2> + 2abc: 3400 movi r4, 0 + 2abe: 3100 movi r1, 0 + 2ac0: 079e br 0x29fc // 29fc <__GI_pow+0x48> + 2ac2: 38df btsti r0, 31 + 2ac4: 0ffc bf 0x2abc // 2abc <__GI_pow+0x108> + 2ac6: 3400 movi r4, 0 + 2ac8: 6c43 mov r1, r0 + 2aca: 3280 movi r2, 128 + 2acc: 4278 lsli r3, r2, 24 + 2ace: 604c addu r1, r3 + 2ad0: 0796 br 0x29fc // 29fc <__GI_pow+0x48> + 2ad2: 3380 movi r3, 128 + 2ad4: 4317 lsli r0, r3, 23 + 2ad6: 9840 ld.w r2, (r14, 0x0) + 2ad8: 640a cmpne r2, r0 + 2ada: 0808 bt 0x2aea // 2aea <__GI_pow+0x136> + 2adc: 6c9f mov r2, r7 + 2ade: 6cdb mov r3, r6 + 2ae0: 6c1f mov r0, r7 + 2ae2: 6c5b mov r1, r6 + 2ae4: e000095c bsr 0x3d9c // 3d9c <__muldf3> + 2ae8: 0789 br 0x29fa // 29fa <__GI_pow+0x46> + 2aea: 0276 lrw r3, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2aec: 9820 ld.w r1, (r14, 0x0) + 2aee: 64c6 cmpne r1, r3 + 2af0: 080a bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af2: 3edf btsti r6, 31 + 2af4: 0808 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af6: 6c1f mov r0, r7 + 2af8: 6c5b mov r1, r6 + 2afa: e0000445 bsr 0x3384 // 3384 <__GI_sqrt> + 2afe: 077e br 0x29fa // 29fa <__GI_pow+0x46> + 2b00: 3300 movi r3, 0 + 2b02: b861 st.w r3, (r14, 0x4) + 2b04: 6c1f mov r0, r7 + 2b06: 6c5b mov r1, r6 + 2b08: b883 st.w r4, (r14, 0xc) + 2b0a: e000042a bsr 0x335e // 335e <__GI_fabs> + 2b0e: 3f40 cmpnei r7, 0 + 2b10: 6d03 mov r4, r0 + 2b12: 9863 ld.w r3, (r14, 0xc) + 2b14: 0826 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b16: 3d40 cmpnei r5, 0 + 2b18: 0c05 bf 0x2b22 // 2b22 <__GI_pow+0x16e> + 2b1a: 4642 lsli r2, r6, 2 + 2b1c: 0302 lrw r0, 0xffc00000 // 2d90 <__GI_pow+0x3dc> + 2b1e: 640a cmpne r2, r0 + 2b20: 0820 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b22: 9840 ld.w r2, (r14, 0x0) + 2b24: 3adf btsti r2, 31 + 2b26: 0c08 bf 0x2b36 // 2b36 <__GI_pow+0x182> + 2b28: 6c93 mov r2, r4 + 2b2a: 6cc7 mov r3, r1 + 2b2c: 3000 movi r0, 0 + 2b2e: 032a lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b30: e0000a50 bsr 0x3fd0 // 3fd0 <__divdf3> + 2b34: 6d03 mov r4, r0 + 2b36: 3edf btsti r6, 31 + 2b38: 0f62 bf 0x29fc // 29fc <__GI_pow+0x48> + 2b3a: 036b lrw r3, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2b3c: 614c addu r5, r3 + 2b3e: 9801 ld.w r0, (r14, 0x4) + 2b40: 6d40 or r5, r0 + 2b42: 3d40 cmpnei r5, 0 + 2b44: 080a bt 0x2b58 // 2b58 <__GI_pow+0x1a4> + 2b46: 6c93 mov r2, r4 + 2b48: 6cc7 mov r3, r1 + 2b4a: 6c0b mov r0, r2 + 2b4c: 6c4f mov r1, r3 + 2b4e: e000090b bsr 0x3d64 // 3d64 <__subdf3> + 2b52: 6c83 mov r2, r0 + 2b54: 6cc7 mov r3, r1 + 2b56: 07a3 br 0x2a9c // 2a9c <__GI_pow+0xe8> + 2b58: 9841 ld.w r2, (r14, 0x4) + 2b5a: 3a41 cmpnei r2, 1 + 2b5c: 0b50 bt 0x29fc // 29fc <__GI_pow+0x48> + 2b5e: 07b6 br 0x2aca // 2aca <__GI_pow+0x116> + 2b60: 4e5f lsri r2, r6, 31 + 2b62: 2a00 subi r2, 1 + 2b64: b847 st.w r2, (r14, 0x1c) + 2b66: 9807 ld.w r0, (r14, 0x1c) + 2b68: 9841 ld.w r2, (r14, 0x4) + 2b6a: 6c80 or r2, r0 + 2b6c: 3a40 cmpnei r2, 0 + 2b6e: 0804 bt 0x2b76 // 2b76 <__GI_pow+0x1c2> + 2b70: 6c9f mov r2, r7 + 2b72: 6cdb mov r3, r6 + 2b74: 07eb br 0x2b4a // 2b4a <__GI_pow+0x196> + 2b76: 0357 lrw r2, 0x41e00000 // 2d94 <__GI_pow+0x3e0> + 2b78: 64c9 cmplt r2, r3 + 2b7a: 0cbf bf 0x2cf8 // 2cf8 <__GI_pow+0x344> + 2b7c: 0358 lrw r2, 0x43f00000 // 2d98 <__GI_pow+0x3e4> + 2b7e: 64c9 cmplt r2, r3 + 2b80: 037f lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b82: 0c0c bf 0x2b9a // 2b9a <__GI_pow+0x1e6> + 2b84: 2b00 subi r3, 1 + 2b86: 654d cmplt r3, r5 + 2b88: 080f bt 0x2ba6 // 2ba6 <__GI_pow+0x1f2> + 2b8a: 9820 ld.w r1, (r14, 0x0) + 2b8c: 39df btsti r1, 31 + 2b8e: 0f97 bf 0x2abc // 2abc <__GI_pow+0x108> + 2b90: 035c lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2b92: 037b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2b94: 6c0b mov r0, r2 + 2b96: 6c4f mov r1, r3 + 2b98: 07a6 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2b9a: 2b01 subi r3, 2 + 2b9c: 654d cmplt r3, r5 + 2b9e: 0ff6 bf 0x2b8a // 2b8a <__GI_pow+0x1d6> + 2ba0: 1318 lrw r0, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2ba2: 6541 cmplt r0, r5 + 2ba4: 0c05 bf 0x2bae // 2bae <__GI_pow+0x1fa> + 2ba6: 9800 ld.w r0, (r14, 0x0) + 2ba8: 3820 cmplti r0, 1 + 2baa: 0ff3 bf 0x2b90 // 2b90 <__GI_pow+0x1dc> + 2bac: 0788 br 0x2abc // 2abc <__GI_pow+0x108> + 2bae: 3200 movi r2, 0 + 2bb0: 1374 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2bb2: 6c1f mov r0, r7 + 2bb4: 6c5b mov r1, r6 + 2bb6: 36c0 movi r6, 192 + 2bb8: e00008d6 bsr 0x3d64 // 3d64 <__subdf3> + 2bbc: 4657 lsli r2, r6, 23 + 2bbe: 137a lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2bc0: 6d43 mov r5, r0 + 2bc2: 6d07 mov r4, r1 + 2bc4: e00008ec bsr 0x3d9c // 3d9c <__muldf3> + 2bc8: 6dc3 mov r7, r0 + 2bca: 6d87 mov r6, r1 + 2bcc: 1357 lrw r2, 0xf85ddf44 // 2da8 <__GI_pow+0x3f4> + 2bce: 1378 lrw r3, 0x3e54ae0b // 2dac <__GI_pow+0x3f8> + 2bd0: 6c17 mov r0, r5 + 2bd2: 6c53 mov r1, r4 + 2bd4: e00008e4 bsr 0x3d9c // 3d9c <__muldf3> + 2bd8: b803 st.w r0, (r14, 0xc) + 2bda: b824 st.w r1, (r14, 0x10) + 2bdc: 3200 movi r2, 0 + 2bde: 1375 lrw r3, 0x3fd00000 // 2db0 <__GI_pow+0x3fc> + 2be0: 6c17 mov r0, r5 + 2be2: 6c53 mov r1, r4 + 2be4: e00008dc bsr 0x3d9c // 3d9c <__muldf3> + 2be8: 6c83 mov r2, r0 + 2bea: 6cc7 mov r3, r1 + 2bec: 1312 lrw r0, 0x55555555 // 2db4 <__GI_pow+0x400> + 2bee: 1333 lrw r1, 0x3fd55555 // 2db8 <__GI_pow+0x404> + 2bf0: e00008ba bsr 0x3d64 // 3d64 <__subdf3> + 2bf4: 6c97 mov r2, r5 + 2bf6: 6cd3 mov r3, r4 + 2bf8: e00008d2 bsr 0x3d9c // 3d9c <__muldf3> + 2bfc: 6c83 mov r2, r0 + 2bfe: 6cc7 mov r3, r1 + 2c00: 3000 movi r0, 0 + 2c02: 1323 lrw r1, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2c04: e00008b0 bsr 0x3d64 // 3d64 <__subdf3> + 2c08: b805 st.w r0, (r14, 0x14) + 2c0a: 6c97 mov r2, r5 + 2c0c: 6cd3 mov r3, r4 + 2c0e: b826 st.w r1, (r14, 0x18) + 2c10: 6c17 mov r0, r5 + 2c12: 6c53 mov r1, r4 + 2c14: e00008c4 bsr 0x3d9c // 3d9c <__muldf3> + 2c18: 6c83 mov r2, r0 + 2c1a: 6cc7 mov r3, r1 + 2c1c: 9805 ld.w r0, (r14, 0x14) + 2c1e: 9826 ld.w r1, (r14, 0x18) + 2c20: e00008be bsr 0x3d9c // 3d9c <__muldf3> + 2c24: 1346 lrw r2, 0x652b82fe // 2dbc <__GI_pow+0x408> + 2c26: 1360 lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2c28: e00008ba bsr 0x3d9c // 3d9c <__muldf3> + 2c2c: 6c83 mov r2, r0 + 2c2e: 6cc7 mov r3, r1 + 2c30: 9803 ld.w r0, (r14, 0xc) + 2c32: 9824 ld.w r1, (r14, 0x10) + 2c34: e0000898 bsr 0x3d64 // 3d64 <__subdf3> + 2c38: 6c83 mov r2, r0 + 2c3a: 6cc7 mov r3, r1 + 2c3c: 6d43 mov r5, r0 + 2c3e: 6d07 mov r4, r1 + 2c40: 6c1f mov r0, r7 + 2c42: 6c5b mov r1, r6 + 2c44: e0000878 bsr 0x3d34 // 3d34 <__adddf3> + 2c48: 6c9f mov r2, r7 + 2c4a: 6cdb mov r3, r6 + 2c4c: 3000 movi r0, 0 + 2c4e: b823 st.w r1, (r14, 0xc) + 2c50: e000088a bsr 0x3d64 // 3d64 <__subdf3> + 2c54: 6c83 mov r2, r0 + 2c56: 6cc7 mov r3, r1 + 2c58: 6c17 mov r0, r5 + 2c5a: 6c53 mov r1, r4 + 2c5c: e0000884 bsr 0x3d64 // 3d64 <__subdf3> + 2c60: 6d07 mov r4, r1 + 2c62: 9821 ld.w r1, (r14, 0x4) + 2c64: 2900 subi r1, 1 + 2c66: 9847 ld.w r2, (r14, 0x1c) + 2c68: 6c48 or r1, r2 + 2c6a: 3940 cmpnei r1, 0 + 2c6c: 6d43 mov r5, r0 + 2c6e: 0c02 bf 0x2c72 // 2c72 <__GI_pow+0x2be> + 2c70: 05f0 br 0x3050 // 3050 <__GI_pow+0x69c> + 2c72: 1274 lrw r3, 0xbff00000 // 2dc0 <__GI_pow+0x40c> + 2c74: b861 st.w r3, (r14, 0x4) + 2c76: 9860 ld.w r3, (r14, 0x0) + 2c78: 3200 movi r2, 0 + 2c7a: 9802 ld.w r0, (r14, 0x8) + 2c7c: 6c4f mov r1, r3 + 2c7e: e0000873 bsr 0x3d64 // 3d64 <__subdf3> + 2c82: 9863 ld.w r3, (r14, 0xc) + 2c84: 3200 movi r2, 0 + 2c86: e000088b bsr 0x3d9c // 3d9c <__muldf3> + 2c8a: 6dc3 mov r7, r0 + 2c8c: 6d87 mov r6, r1 + 2c8e: 9842 ld.w r2, (r14, 0x8) + 2c90: 9860 ld.w r3, (r14, 0x0) + 2c92: 6c17 mov r0, r5 + 2c94: 6c53 mov r1, r4 + 2c96: e0000883 bsr 0x3d9c // 3d9c <__muldf3> + 2c9a: 6c83 mov r2, r0 + 2c9c: 6cc7 mov r3, r1 + 2c9e: 6c1f mov r0, r7 + 2ca0: 6c5b mov r1, r6 + 2ca2: e0000849 bsr 0x3d34 // 3d34 <__adddf3> + 2ca6: 6dc3 mov r7, r0 + 2ca8: 9860 ld.w r3, (r14, 0x0) + 2caa: 6d87 mov r6, r1 + 2cac: 3200 movi r2, 0 + 2cae: 9823 ld.w r1, (r14, 0xc) + 2cb0: 3000 movi r0, 0 + 2cb2: e0000875 bsr 0x3d9c // 3d9c <__muldf3> + 2cb6: b802 st.w r0, (r14, 0x8) + 2cb8: b803 st.w r0, (r14, 0xc) + 2cba: b824 st.w r1, (r14, 0x10) + 2cbc: 6c83 mov r2, r0 + 2cbe: 6cc7 mov r3, r1 + 2cc0: 6d47 mov r5, r1 + 2cc2: 6c1f mov r0, r7 + 2cc4: 6c5b mov r1, r6 + 2cc6: e0000837 bsr 0x3d34 // 3d34 <__adddf3> + 2cca: 6d07 mov r4, r1 + 2ccc: 113e lrw r1, 0x40900000 // 2dc4 <__GI_pow+0x410> + 2cce: 2900 subi r1, 1 + 2cd0: 6505 cmplt r1, r4 + 2cd2: b800 st.w r0, (r14, 0x0) + 2cd4: 0803 bt 0x2cda // 2cda <__GI_pow+0x326> + 2cd6: e80002b3 br 0x323c // 323c <__GI_pow+0x888> + 2cda: 117c lrw r3, 0xbf700000 // 2dc8 <__GI_pow+0x414> + 2cdc: 60d0 addu r3, r4 + 2cde: 6cc0 or r3, r0 + 2ce0: 3b40 cmpnei r3, 0 + 2ce2: 0802 bt 0x2ce6 // 2ce6 <__GI_pow+0x332> + 2ce4: 05b8 br 0x3054 // 3054 <__GI_pow+0x6a0> + 2ce6: 114e lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2ce8: 116e lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cea: 3000 movi r0, 0 + 2cec: 9821 ld.w r1, (r14, 0x4) + 2cee: e0000857 bsr 0x3d9c // 3d9c <__muldf3> + 2cf2: 114b lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2cf4: 116b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cf6: 06f7 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2cf8: 11d5 lrw r6, 0xfffff // 2dcc <__GI_pow+0x418> + 2cfa: 6559 cmplt r6, r5 + 2cfc: 09a6 bt 0x3048 // 3048 <__GI_pow+0x694> + 2cfe: 6c13 mov r0, r4 + 2d00: 3200 movi r2, 0 + 2d02: 107f lrw r3, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2d04: e000084c bsr 0x3d9c // 3d9c <__muldf3> + 2d08: 3700 movi r7, 0 + 2d0a: 6d03 mov r4, r0 + 2d0c: 6d47 mov r5, r1 + 2d0e: 2f34 subi r7, 53 + 2d10: 5514 asri r0, r5, 20 + 2d12: 103d lrw r1, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2d14: 45ac lsli r5, r5, 12 + 2d16: 4d4c lsri r2, r5, 12 + 2d18: 6004 addu r0, r1 + 2d1a: 116e lrw r3, 0x3988e // 2dd0 <__GI_pow+0x41c> + 2d1c: 601c addu r0, r7 + 2d1e: 648d cmplt r3, r2 + 2d20: 10f8 lrw r7, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d22: b804 st.w r0, (r14, 0x10) + 2d24: 6dc8 or r7, r2 + 2d26: 0c09 bf 0x2d38 // 2d38 <__GI_pow+0x384> + 2d28: 11cb lrw r6, 0xbb679 // 2dd4 <__GI_pow+0x420> + 2d2a: 6499 cmplt r6, r2 + 2d2c: 0d90 bf 0x304c // 304c <__GI_pow+0x698> + 2d2e: 6c83 mov r2, r0 + 2d30: 2200 addi r2, 1 + 2d32: 110a lrw r0, 0xfff00000 // 2dd8 <__GI_pow+0x424> + 2d34: b844 st.w r2, (r14, 0x10) + 2d36: 61c0 addu r7, r0 + 2d38: 3500 movi r5, 0 + 2d3a: 45c3 lsli r6, r5, 3 + 2d3c: 1168 lrw r3, 0xab48 // 2ddc <__GI_pow+0x428> + 2d3e: 4523 lsli r1, r5, 3 + 2d40: 60d8 addu r3, r6 + 2d42: 9340 ld.w r2, (r3, 0x0) + 2d44: b828 st.w r1, (r14, 0x20) + 2d46: 9361 ld.w r3, (r3, 0x4) + 2d48: 6c13 mov r0, r4 + 2d4a: 6c5f mov r1, r7 + 2d4c: b845 st.w r2, (r14, 0x14) + 2d4e: b866 st.w r3, (r14, 0x18) + 2d50: e000080a bsr 0x3d64 // 3d64 <__subdf3> + 2d54: b809 st.w r0, (r14, 0x24) + 2d56: 9845 ld.w r2, (r14, 0x14) + 2d58: 9866 ld.w r3, (r14, 0x18) + 2d5a: b82a st.w r1, (r14, 0x28) + 2d5c: 6c13 mov r0, r4 + 2d5e: 6c5f mov r1, r7 + 2d60: e00007ea bsr 0x3d34 // 3d34 <__adddf3> + 2d64: 6c83 mov r2, r0 + 2d66: 6cc7 mov r3, r1 + 2d68: 3000 movi r0, 0 + 2d6a: 1026 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d6c: e0000932 bsr 0x3fd0 // 3fd0 <__divdf3> + 2d70: 6c83 mov r2, r0 + 2d72: 6cc7 mov r3, r1 + 2d74: 0436 br 0x2de0 // 2de0 <__GI_pow+0x42c> + 2d76: 0000 bkpt + 2d78: 7ff00000 .long 0x7ff00000 + 2d7c: 43400000 .long 0x43400000 + 2d80: 3ff00000 .long 0x3ff00000 + 2d84: fffffc01 .long 0xfffffc01 + 2d88: c0100000 .long 0xc0100000 + 2d8c: 3fe00000 .long 0x3fe00000 + 2d90: ffc00000 .long 0xffc00000 + 2d94: 41e00000 .long 0x41e00000 + 2d98: 43f00000 .long 0x43f00000 + 2d9c: 8800759c .long 0x8800759c + 2da0: 7e37e43c .long 0x7e37e43c + 2da4: 3ff71547 .long 0x3ff71547 + 2da8: f85ddf44 .long 0xf85ddf44 + 2dac: 3e54ae0b .long 0x3e54ae0b + 2db0: 3fd00000 .long 0x3fd00000 + 2db4: 55555555 .long 0x55555555 + 2db8: 3fd55555 .long 0x3fd55555 + 2dbc: 652b82fe .long 0x652b82fe + 2dc0: bff00000 .long 0xbff00000 + 2dc4: 40900000 .long 0x40900000 + 2dc8: bf700000 .long 0xbf700000 + 2dcc: 000fffff .long 0x000fffff + 2dd0: 0003988e .long 0x0003988e + 2dd4: 000bb679 .long 0x000bb679 + 2dd8: fff00000 .long 0xfff00000 + 2ddc: 0000ab48 .long 0x0000ab48 + 2de0: b80b st.w r0, (r14, 0x2c) + 2de2: b82c st.w r1, (r14, 0x30) + 2de4: 9809 ld.w r0, (r14, 0x24) + 2de6: 982a ld.w r1, (r14, 0x28) + 2de8: e00007da bsr 0x3d9c // 3d9c <__muldf3> + 2dec: b803 st.w r0, (r14, 0xc) + 2dee: 3280 movi r2, 128 + 2df0: 5701 asri r0, r7, 1 + 2df2: 6d87 mov r6, r1 + 2df4: 38bd bseti r0, 29 + 2df6: 422c lsli r1, r2, 12 + 2df8: 6004 addu r0, r1 + 2dfa: 45b2 lsli r5, r5, 18 + 2dfc: 6140 addu r5, r0 + 2dfe: 6cd7 mov r3, r5 + 2e00: 3200 movi r2, 0 + 2e02: 6c5b mov r1, r6 + 2e04: 3000 movi r0, 0 + 2e06: e00007cb bsr 0x3d9c // 3d9c <__muldf3> + 2e0a: 6c83 mov r2, r0 + 2e0c: 6cc7 mov r3, r1 + 2e0e: 9809 ld.w r0, (r14, 0x24) + 2e10: 982a ld.w r1, (r14, 0x28) + 2e12: e00007a9 bsr 0x3d64 // 3d64 <__subdf3> + 2e16: b809 st.w r0, (r14, 0x24) + 2e18: 9845 ld.w r2, (r14, 0x14) + 2e1a: 9866 ld.w r3, (r14, 0x18) + 2e1c: b82a st.w r1, (r14, 0x28) + 2e1e: 3000 movi r0, 0 + 2e20: 6c57 mov r1, r5 + 2e22: e00007a1 bsr 0x3d64 // 3d64 <__subdf3> + 2e26: 6c83 mov r2, r0 + 2e28: 6cc7 mov r3, r1 + 2e2a: 6c13 mov r0, r4 + 2e2c: 6c5f mov r1, r7 + 2e2e: e000079b bsr 0x3d64 // 3d64 <__subdf3> + 2e32: 6cdb mov r3, r6 + 2e34: 3200 movi r2, 0 + 2e36: e00007b3 bsr 0x3d9c // 3d9c <__muldf3> + 2e3a: 6c83 mov r2, r0 + 2e3c: 6cc7 mov r3, r1 + 2e3e: 9809 ld.w r0, (r14, 0x24) + 2e40: 982a ld.w r1, (r14, 0x28) + 2e42: e0000791 bsr 0x3d64 // 3d64 <__subdf3> + 2e46: 984b ld.w r2, (r14, 0x2c) + 2e48: 986c ld.w r3, (r14, 0x30) + 2e4a: e00007a9 bsr 0x3d9c // 3d9c <__muldf3> + 2e4e: 9843 ld.w r2, (r14, 0xc) + 2e50: 6cdb mov r3, r6 + 2e52: b805 st.w r0, (r14, 0x14) + 2e54: b826 st.w r1, (r14, 0x18) + 2e56: 6c0b mov r0, r2 + 2e58: 6c5b mov r1, r6 + 2e5a: e00007a1 bsr 0x3d9c // 3d9c <__muldf3> + 2e5e: ea820113 lrw r2, 0x4a454eef // 32a8 <__GI_pow+0x8f4> + 2e62: ea830113 lrw r3, 0x3fca7e28 // 32ac <__GI_pow+0x8f8> + 2e66: 6d43 mov r5, r0 + 2e68: 6d07 mov r4, r1 + 2e6a: e0000799 bsr 0x3d9c // 3d9c <__muldf3> + 2e6e: ea820111 lrw r2, 0x93c9db65 // 32b0 <__GI_pow+0x8fc> + 2e72: ea830111 lrw r3, 0x3fcd864a // 32b4 <__GI_pow+0x900> + 2e76: e000075f bsr 0x3d34 // 3d34 <__adddf3> + 2e7a: 6c97 mov r2, r5 + 2e7c: 6cd3 mov r3, r4 + 2e7e: e000078f bsr 0x3d9c // 3d9c <__muldf3> + 2e82: ea82010e lrw r2, 0xa91d4101 // 32b8 <__GI_pow+0x904> + 2e86: ea83010e lrw r3, 0x3fd17460 // 32bc <__GI_pow+0x908> + 2e8a: e0000755 bsr 0x3d34 // 3d34 <__adddf3> + 2e8e: 6c97 mov r2, r5 + 2e90: 6cd3 mov r3, r4 + 2e92: e0000785 bsr 0x3d9c // 3d9c <__muldf3> + 2e96: ea82010b lrw r2, 0x518f264d // 32c0 <__GI_pow+0x90c> + 2e9a: ea83010b lrw r3, 0x3fd55555 // 32c4 <__GI_pow+0x910> + 2e9e: e000074b bsr 0x3d34 // 3d34 <__adddf3> + 2ea2: 6c97 mov r2, r5 + 2ea4: 6cd3 mov r3, r4 + 2ea6: e000077b bsr 0x3d9c // 3d9c <__muldf3> + 2eaa: ea820108 lrw r2, 0xdb6fabff // 32c8 <__GI_pow+0x914> + 2eae: ea830108 lrw r3, 0x3fdb6db6 // 32cc <__GI_pow+0x918> + 2eb2: e0000741 bsr 0x3d34 // 3d34 <__adddf3> + 2eb6: 6c97 mov r2, r5 + 2eb8: 6cd3 mov r3, r4 + 2eba: e0000771 bsr 0x3d9c // 3d9c <__muldf3> + 2ebe: ea820105 lrw r2, 0x33333303 // 32d0 <__GI_pow+0x91c> + 2ec2: ea830105 lrw r3, 0x3fe33333 // 32d4 <__GI_pow+0x920> + 2ec6: e0000737 bsr 0x3d34 // 3d34 <__adddf3> + 2eca: 6dc3 mov r7, r0 + 2ecc: 6c97 mov r2, r5 + 2ece: 6cd3 mov r3, r4 + 2ed0: b829 st.w r1, (r14, 0x24) + 2ed2: 6c17 mov r0, r5 + 2ed4: 6c53 mov r1, r4 + 2ed6: e0000763 bsr 0x3d9c // 3d9c <__muldf3> + 2eda: 6c83 mov r2, r0 + 2edc: 6cc7 mov r3, r1 + 2ede: 6c1f mov r0, r7 + 2ee0: 9829 ld.w r1, (r14, 0x24) + 2ee2: e000075d bsr 0x3d9c // 3d9c <__muldf3> + 2ee6: 6d43 mov r5, r0 + 2ee8: 6d07 mov r4, r1 + 2eea: 6cdb mov r3, r6 + 2eec: 3200 movi r2, 0 + 2eee: 9803 ld.w r0, (r14, 0xc) + 2ef0: 6c5b mov r1, r6 + 2ef2: e0000721 bsr 0x3d34 // 3d34 <__adddf3> + 2ef6: 9845 ld.w r2, (r14, 0x14) + 2ef8: 9866 ld.w r3, (r14, 0x18) + 2efa: e0000751 bsr 0x3d9c // 3d9c <__muldf3> + 2efe: 6c97 mov r2, r5 + 2f00: 6cd3 mov r3, r4 + 2f02: e0000719 bsr 0x3d34 // 3d34 <__adddf3> + 2f06: 6d43 mov r5, r0 + 2f08: 6cdb mov r3, r6 + 2f0a: b829 st.w r1, (r14, 0x24) + 2f0c: 3200 movi r2, 0 + 2f0e: 6c5b mov r1, r6 + 2f10: 3000 movi r0, 0 + 2f12: e0000745 bsr 0x3d9c // 3d9c <__muldf3> + 2f16: 3200 movi r2, 0 + 2f18: 006f lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f1a: 6dc3 mov r7, r0 + 2f1c: b82a st.w r1, (r14, 0x28) + 2f1e: e000070b bsr 0x3d34 // 3d34 <__adddf3> + 2f22: 6c97 mov r2, r5 + 2f24: 9869 ld.w r3, (r14, 0x24) + 2f26: e0000707 bsr 0x3d34 // 3d34 <__adddf3> + 2f2a: 6d07 mov r4, r1 + 2f2c: 6cc7 mov r3, r1 + 2f2e: 3200 movi r2, 0 + 2f30: 6c5b mov r1, r6 + 2f32: 3000 movi r0, 0 + 2f34: e0000734 bsr 0x3d9c // 3d9c <__muldf3> + 2f38: b80b st.w r0, (r14, 0x2c) + 2f3a: b82c st.w r1, (r14, 0x30) + 2f3c: 3200 movi r2, 0 + 2f3e: 0078 lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f40: 6c53 mov r1, r4 + 2f42: 3000 movi r0, 0 + 2f44: e0000710 bsr 0x3d64 // 3d64 <__subdf3> + 2f48: 6c9f mov r2, r7 + 2f4a: 986a ld.w r3, (r14, 0x28) + 2f4c: e000070c bsr 0x3d64 // 3d64 <__subdf3> + 2f50: 6c83 mov r2, r0 + 2f52: 6cc7 mov r3, r1 + 2f54: 6c17 mov r0, r5 + 2f56: 9829 ld.w r1, (r14, 0x24) + 2f58: e0000706 bsr 0x3d64 // 3d64 <__subdf3> + 2f5c: 9843 ld.w r2, (r14, 0xc) + 2f5e: 6cdb mov r3, r6 + 2f60: e000071e bsr 0x3d9c // 3d9c <__muldf3> + 2f64: 6d83 mov r6, r0 + 2f66: 6d47 mov r5, r1 + 2f68: 6cd3 mov r3, r4 + 2f6a: 3200 movi r2, 0 + 2f6c: 9805 ld.w r0, (r14, 0x14) + 2f6e: 9826 ld.w r1, (r14, 0x18) + 2f70: e0000716 bsr 0x3d9c // 3d9c <__muldf3> + 2f74: 6c83 mov r2, r0 + 2f76: 6cc7 mov r3, r1 + 2f78: 6c1b mov r0, r6 + 2f7a: 6c57 mov r1, r5 + 2f7c: e00006dc bsr 0x3d34 // 3d34 <__adddf3> + 2f80: 6dc3 mov r7, r0 + 2f82: 6d87 mov r6, r1 + 2f84: 6c83 mov r2, r0 + 2f86: 6cc7 mov r3, r1 + 2f88: 980b ld.w r0, (r14, 0x2c) + 2f8a: 982c ld.w r1, (r14, 0x30) + 2f8c: e00006d4 bsr 0x3d34 // 3d34 <__adddf3> + 2f90: 33e0 movi r3, 224 + 2f92: 4358 lsli r2, r3, 24 + 2f94: 3000 movi r0, 0 + 2f96: 016d lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2f98: 6d07 mov r4, r1 + 2f9a: e0000701 bsr 0x3d9c // 3d9c <__muldf3> + 2f9e: b805 st.w r0, (r14, 0x14) + 2fa0: b826 st.w r1, (r14, 0x18) + 2fa2: 984b ld.w r2, (r14, 0x2c) + 2fa4: 986c ld.w r3, (r14, 0x30) + 2fa6: 6c53 mov r1, r4 + 2fa8: 3000 movi r0, 0 + 2faa: e00006dd bsr 0x3d64 // 3d64 <__subdf3> + 2fae: 6c83 mov r2, r0 + 2fb0: 6cc7 mov r3, r1 + 2fb2: 6c1f mov r0, r7 + 2fb4: 6c5b mov r1, r6 + 2fb6: e00006d7 bsr 0x3d64 // 3d64 <__subdf3> + 2fba: 0155 lrw r2, 0xdc3a03fd // 32e0 <__GI_pow+0x92c> + 2fbc: 0177 lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2fbe: e00006ef bsr 0x3d9c // 3d9c <__muldf3> + 2fc2: 6dc3 mov r7, r0 + 2fc4: 6d47 mov r5, r1 + 2fc6: 0157 lrw r2, 0x145b01f5 // 32e4 <__GI_pow+0x930> + 2fc8: 0177 lrw r3, 0xbe3e2fe0 // 32e8 <__GI_pow+0x934> + 2fca: 6c53 mov r1, r4 + 2fcc: 3000 movi r0, 0 + 2fce: e00006e7 bsr 0x3d9c // 3d9c <__muldf3> + 2fd2: 6c83 mov r2, r0 + 2fd4: 6cc7 mov r3, r1 + 2fd6: 6c1f mov r0, r7 + 2fd8: 6c57 mov r1, r5 + 2fda: e00006ad bsr 0x3d34 // 3d34 <__adddf3> + 2fde: 01db lrw r6, 0xab48 // 32ec <__GI_pow+0x938> + 2fe0: 9848 ld.w r2, (r14, 0x20) + 2fe2: 6188 addu r6, r2 + 2fe4: 9644 ld.w r2, (r6, 0x10) + 2fe6: 9665 ld.w r3, (r6, 0x14) + 2fe8: e00006a6 bsr 0x3d34 // 3d34 <__adddf3> + 2fec: b809 st.w r0, (r14, 0x24) + 2fee: 9804 ld.w r0, (r14, 0x10) + 2ff0: b82a st.w r1, (r14, 0x28) + 2ff2: e00008f3 bsr 0x41d8 // 41d8 <__floatsidf> + 2ff6: 6d83 mov r6, r0 + 2ff8: 0202 lrw r0, 0xab48 // 32ec <__GI_pow+0x938> + 2ffa: 6d47 mov r5, r1 + 2ffc: 201f addi r0, 32 + 2ffe: 9828 ld.w r1, (r14, 0x20) + 3000: 6004 addu r0, r1 + 3002: 9080 ld.w r4, (r0, 0x0) + 3004: 90e1 ld.w r7, (r0, 0x4) + 3006: 9849 ld.w r2, (r14, 0x24) + 3008: 986a ld.w r3, (r14, 0x28) + 300a: 9805 ld.w r0, (r14, 0x14) + 300c: 9826 ld.w r1, (r14, 0x18) + 300e: e0000693 bsr 0x3d34 // 3d34 <__adddf3> + 3012: 6c93 mov r2, r4 + 3014: 6cdf mov r3, r7 + 3016: e000068f bsr 0x3d34 // 3d34 <__adddf3> + 301a: 6c9b mov r2, r6 + 301c: 6cd7 mov r3, r5 + 301e: e000068b bsr 0x3d34 // 3d34 <__adddf3> + 3022: 6c9b mov r2, r6 + 3024: 6cd7 mov r3, r5 + 3026: 3000 movi r0, 0 + 3028: b823 st.w r1, (r14, 0xc) + 302a: e000069d bsr 0x3d64 // 3d64 <__subdf3> + 302e: 6c93 mov r2, r4 + 3030: 6cdf mov r3, r7 + 3032: e0000699 bsr 0x3d64 // 3d64 <__subdf3> + 3036: 9845 ld.w r2, (r14, 0x14) + 3038: 9866 ld.w r3, (r14, 0x18) + 303a: e0000695 bsr 0x3d64 // 3d64 <__subdf3> + 303e: 6c83 mov r2, r0 + 3040: 6cc7 mov r3, r1 + 3042: 9809 ld.w r0, (r14, 0x24) + 3044: 982a ld.w r1, (r14, 0x28) + 3046: 060b br 0x2c5c // 2c5c <__GI_pow+0x2a8> + 3048: 3700 movi r7, 0 + 304a: 0663 br 0x2d10 // 2d10 <__GI_pow+0x35c> + 304c: 3501 movi r5, 1 + 304e: 0676 br 0x2d3a // 2d3a <__GI_pow+0x386> + 3050: 0277 lrw r3, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3052: 0611 br 0x2c74 // 2c74 <__GI_pow+0x2c0> + 3054: 0257 lrw r2, 0x652b82fe // 32f4 <__GI_pow+0x940> + 3056: 0276 lrw r3, 0x3c971547 // 32f8 <__GI_pow+0x944> + 3058: 6c1f mov r0, r7 + 305a: 6c5b mov r1, r6 + 305c: e000066c bsr 0x3d34 // 3d34 <__adddf3> + 3060: b805 st.w r0, (r14, 0x14) + 3062: b826 st.w r1, (r14, 0x18) + 3064: 9842 ld.w r2, (r14, 0x8) + 3066: 6cd7 mov r3, r5 + 3068: 9800 ld.w r0, (r14, 0x0) + 306a: 6c53 mov r1, r4 + 306c: e000067c bsr 0x3d64 // 3d64 <__subdf3> + 3070: 6c83 mov r2, r0 + 3072: 6cc7 mov r3, r1 + 3074: 9805 ld.w r0, (r14, 0x14) + 3076: 9826 ld.w r1, (r14, 0x18) + 3078: e0000856 bsr 0x4124 // 4124 <__gtdf2> + 307c: 3820 cmplti r0, 1 + 307e: 0802 bt 0x3082 // 3082 <__GI_pow+0x6ce> + 3080: 0633 br 0x2ce6 // 2ce6 <__GI_pow+0x332> + 3082: 4421 lsli r1, r4, 1 + 3084: 4901 lsri r0, r1, 1 + 3086: 0361 lrw r3, 0x3fe00000 // 32fc <__GI_pow+0x948> + 3088: 640d cmplt r3, r0 + 308a: 0cfd bf 0x3284 // 3284 <__GI_pow+0x8d0> + 308c: 5034 asri r1, r0, 20 + 308e: 0342 lrw r2, 0xfffffc02 // 3300 <__GI_pow+0x94c> + 3090: 3080 movi r0, 128 + 3092: 6048 addu r1, r2 + 3094: 404d lsli r2, r0, 13 + 3096: 7086 asr r2, r1 + 3098: 6090 addu r2, r4 + 309a: 4261 lsli r3, r2, 1 + 309c: 4b35 lsri r1, r3, 21 + 309e: 0305 lrw r0, 0xfffffc01 // 3304 <__GI_pow+0x950> + 30a0: 6040 addu r1, r0 + 30a2: 0365 lrw r3, 0xfffff // 3308 <__GI_pow+0x954> + 30a4: 70c6 asr r3, r1 + 30a6: 6c0b mov r0, r2 + 30a8: 680d andn r0, r3 + 30aa: 424c lsli r2, r2, 12 + 30ac: 6cc3 mov r3, r0 + 30ae: 4a4c lsri r2, r2, 12 + 30b0: 3014 movi r0, 20 + 30b2: 3ab4 bseti r2, 20 + 30b4: 5825 subu r1, r0, r1 + 30b6: 7086 asr r2, r1 + 30b8: 3cdf btsti r4, 31 + 30ba: b840 st.w r2, (r14, 0x0) + 30bc: 0c05 bf 0x30c6 // 30c6 <__GI_pow+0x712> + 30be: 9840 ld.w r2, (r14, 0x0) + 30c0: 3400 movi r4, 0 + 30c2: 610a subu r4, r2 + 30c4: b880 st.w r4, (r14, 0x0) + 30c6: 3200 movi r2, 0 + 30c8: 9802 ld.w r0, (r14, 0x8) + 30ca: 6c57 mov r1, r5 + 30cc: e000064c bsr 0x3d64 // 3d64 <__subdf3> + 30d0: b803 st.w r0, (r14, 0xc) + 30d2: b824 st.w r1, (r14, 0x10) + 30d4: 9803 ld.w r0, (r14, 0xc) + 30d6: 6c9f mov r2, r7 + 30d8: 6cdb mov r3, r6 + 30da: 9824 ld.w r1, (r14, 0x10) + 30dc: e000062c bsr 0x3d34 // 3d34 <__adddf3> + 30e0: 3200 movi r2, 0 + 30e2: 0374 lrw r3, 0x3fe62e43 // 330c <__GI_pow+0x958> + 30e4: 3000 movi r0, 0 + 30e6: 6d07 mov r4, r1 + 30e8: e000065a bsr 0x3d9c // 3d9c <__muldf3> + 30ec: 6d47 mov r5, r1 + 30ee: 9843 ld.w r2, (r14, 0xc) + 30f0: 9864 ld.w r3, (r14, 0x10) + 30f2: b802 st.w r0, (r14, 0x8) + 30f4: 6c53 mov r1, r4 + 30f6: 3000 movi r0, 0 + 30f8: e0000636 bsr 0x3d64 // 3d64 <__subdf3> + 30fc: 6c83 mov r2, r0 + 30fe: 6cc7 mov r3, r1 + 3100: 6c1f mov r0, r7 + 3102: 6c5b mov r1, r6 + 3104: e0000630 bsr 0x3d64 // 3d64 <__subdf3> + 3108: 035d lrw r2, 0xfefa39ef // 3310 <__GI_pow+0x95c> + 310a: 037c lrw r3, 0x3fe62e42 // 3314 <__GI_pow+0x960> + 310c: e0000648 bsr 0x3d9c // 3d9c <__muldf3> + 3110: 6dc3 mov r7, r0 + 3112: 6d87 mov r6, r1 + 3114: 035e lrw r2, 0xca86c39 // 3318 <__GI_pow+0x964> + 3116: 037d lrw r3, 0xbe205c61 // 331c <__GI_pow+0x968> + 3118: 6c53 mov r1, r4 + 311a: 3000 movi r0, 0 + 311c: e0000640 bsr 0x3d9c // 3d9c <__muldf3> + 3120: 6c83 mov r2, r0 + 3122: 6cc7 mov r3, r1 + 3124: 6c1f mov r0, r7 + 3126: 6c5b mov r1, r6 + 3128: e0000606 bsr 0x3d34 // 3d34 <__adddf3> + 312c: 6d07 mov r4, r1 + 312e: 6c83 mov r2, r0 + 3130: 6cc7 mov r3, r1 + 3132: b803 st.w r0, (r14, 0xc) + 3134: 6c57 mov r1, r5 + 3136: 9802 ld.w r0, (r14, 0x8) + 3138: e00005fe bsr 0x3d34 // 3d34 <__adddf3> + 313c: 9842 ld.w r2, (r14, 0x8) + 313e: 6cd7 mov r3, r5 + 3140: 6dc3 mov r7, r0 + 3142: 6d87 mov r6, r1 + 3144: e0000610 bsr 0x3d64 // 3d64 <__subdf3> + 3148: 6c83 mov r2, r0 + 314a: 6cc7 mov r3, r1 + 314c: 9803 ld.w r0, (r14, 0xc) + 314e: 6c53 mov r1, r4 + 3150: e000060a bsr 0x3d64 // 3d64 <__subdf3> + 3154: b802 st.w r0, (r14, 0x8) + 3156: b823 st.w r1, (r14, 0xc) + 3158: 6c9f mov r2, r7 + 315a: 6cdb mov r3, r6 + 315c: 6c1f mov r0, r7 + 315e: 6c5b mov r1, r6 + 3160: e000061e bsr 0x3d9c // 3d9c <__muldf3> + 3164: 134f lrw r2, 0x72bea4d0 // 3320 <__GI_pow+0x96c> + 3166: 1370 lrw r3, 0x3e663769 // 3324 <__GI_pow+0x970> + 3168: 6d43 mov r5, r0 + 316a: 6d07 mov r4, r1 + 316c: e0000618 bsr 0x3d9c // 3d9c <__muldf3> + 3170: 134e lrw r2, 0xc5d26bf1 // 3328 <__GI_pow+0x974> + 3172: 136f lrw r3, 0x3ebbbd41 // 332c <__GI_pow+0x978> + 3174: e00005f8 bsr 0x3d64 // 3d64 <__subdf3> + 3178: 6c97 mov r2, r5 + 317a: 6cd3 mov r3, r4 + 317c: e0000610 bsr 0x3d9c // 3d9c <__muldf3> + 3180: 134c lrw r2, 0xaf25de2c // 3330 <__GI_pow+0x97c> + 3182: 136d lrw r3, 0x3f11566a // 3334 <__GI_pow+0x980> + 3184: e00005d8 bsr 0x3d34 // 3d34 <__adddf3> + 3188: 6c97 mov r2, r5 + 318a: 6cd3 mov r3, r4 + 318c: e0000608 bsr 0x3d9c // 3d9c <__muldf3> + 3190: 134a lrw r2, 0x16bebd93 // 3338 <__GI_pow+0x984> + 3192: 136b lrw r3, 0x3f66c16c // 333c <__GI_pow+0x988> + 3194: e00005e8 bsr 0x3d64 // 3d64 <__subdf3> + 3198: 6c97 mov r2, r5 + 319a: 6cd3 mov r3, r4 + 319c: e0000600 bsr 0x3d9c // 3d9c <__muldf3> + 31a0: 1348 lrw r2, 0x5555553e // 3340 <__GI_pow+0x98c> + 31a2: 1369 lrw r3, 0x3fc55555 // 3344 <__GI_pow+0x990> + 31a4: e00005c8 bsr 0x3d34 // 3d34 <__adddf3> + 31a8: 6c97 mov r2, r5 + 31aa: 6cd3 mov r3, r4 + 31ac: e00005f8 bsr 0x3d9c // 3d9c <__muldf3> + 31b0: 6c83 mov r2, r0 + 31b2: 6cc7 mov r3, r1 + 31b4: 6c1f mov r0, r7 + 31b6: 6c5b mov r1, r6 + 31b8: e00005d6 bsr 0x3d64 // 3d64 <__subdf3> + 31bc: 6d43 mov r5, r0 + 31be: 6d07 mov r4, r1 + 31c0: 6c83 mov r2, r0 + 31c2: 6cc7 mov r3, r1 + 31c4: 6c1f mov r0, r7 + 31c6: 6c5b mov r1, r6 + 31c8: e00005ea bsr 0x3d9c // 3d9c <__muldf3> + 31cc: 3380 movi r3, 128 + 31ce: b804 st.w r0, (r14, 0x10) + 31d0: b825 st.w r1, (r14, 0x14) + 31d2: 3200 movi r2, 0 + 31d4: 4377 lsli r3, r3, 23 + 31d6: 6c17 mov r0, r5 + 31d8: 6c53 mov r1, r4 + 31da: e00005c5 bsr 0x3d64 // 3d64 <__subdf3> + 31de: 6c83 mov r2, r0 + 31e0: 6cc7 mov r3, r1 + 31e2: 9804 ld.w r0, (r14, 0x10) + 31e4: 9825 ld.w r1, (r14, 0x14) + 31e6: e00006f5 bsr 0x3fd0 // 3fd0 <__divdf3> + 31ea: 6d07 mov r4, r1 + 31ec: 6d43 mov r5, r0 + 31ee: 9842 ld.w r2, (r14, 0x8) + 31f0: 9863 ld.w r3, (r14, 0xc) + 31f2: 6c1f mov r0, r7 + 31f4: 6c5b mov r1, r6 + 31f6: e00005d3 bsr 0x3d9c // 3d9c <__muldf3> + 31fa: 9842 ld.w r2, (r14, 0x8) + 31fc: 9863 ld.w r3, (r14, 0xc) + 31fe: e000059b bsr 0x3d34 // 3d34 <__adddf3> + 3202: 6c83 mov r2, r0 + 3204: 6cc7 mov r3, r1 + 3206: 6c17 mov r0, r5 + 3208: 6c53 mov r1, r4 + 320a: e00005ad bsr 0x3d64 // 3d64 <__subdf3> + 320e: 6c9f mov r2, r7 + 3210: 6cdb mov r3, r6 + 3212: e00005a9 bsr 0x3d64 // 3d64 <__subdf3> + 3216: 6c83 mov r2, r0 + 3218: 6cc7 mov r3, r1 + 321a: 3000 movi r0, 0 + 321c: 1135 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 321e: e00005a3 bsr 0x3d64 // 3d64 <__subdf3> + 3222: 9840 ld.w r2, (r14, 0x0) + 3224: 4274 lsli r3, r2, 20 + 3226: 60c4 addu r3, r1 + 3228: 5394 asri r4, r3, 20 + 322a: 3c20 cmplti r4, 1 + 322c: 0c2f bf 0x328a // 328a <__GI_pow+0x8d6> + 322e: 9840 ld.w r2, (r14, 0x0) + 3230: e000009a bsr 0x3364 // 3364 <__GI_scalbn> + 3234: 3200 movi r2, 0 + 3236: 9861 ld.w r3, (r14, 0x4) + 3238: e800fc56 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 323c: 4401 lsli r0, r4, 1 + 323e: 4861 lsri r3, r0, 1 + 3240: 1242 lrw r2, 0x4090cbff // 3348 <__GI_pow+0x994> + 3242: 64c9 cmplt r2, r3 + 3244: 0f1f bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3246: 1222 lrw r1, 0x3f6f3400 // 334c <__GI_pow+0x998> + 3248: 6050 addu r1, r4 + 324a: 9800 ld.w r0, (r14, 0x0) + 324c: 6c40 or r1, r0 + 324e: 3940 cmpnei r1, 0 + 3250: 0c0b bf 0x3266 // 3266 <__GI_pow+0x8b2> + 3252: 1240 lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3254: 1260 lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3256: 3000 movi r0, 0 + 3258: 9821 ld.w r1, (r14, 0x4) + 325a: e00005a1 bsr 0x3d9c // 3d9c <__muldf3> + 325e: 115d lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3260: 117d lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3262: e800fc41 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 3266: 9842 ld.w r2, (r14, 0x8) + 3268: 6cd7 mov r3, r5 + 326a: 9800 ld.w r0, (r14, 0x0) + 326c: 6c53 mov r1, r4 + 326e: e000057b bsr 0x3d64 // 3d64 <__subdf3> + 3272: 6c83 mov r2, r0 + 3274: 6cc7 mov r3, r1 + 3276: 6c1f mov r0, r7 + 3278: 6c5b mov r1, r6 + 327a: e0000791 bsr 0x419c // 419c <__ledf2> + 327e: 3820 cmplti r0, 1 + 3280: 0f01 bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3282: 07e8 br 0x3252 // 3252 <__GI_pow+0x89e> + 3284: 3500 movi r5, 0 + 3286: b8a0 st.w r5, (r14, 0x0) + 3288: 0726 br 0x30d4 // 30d4 <__GI_pow+0x720> + 328a: 6c4f mov r1, r3 + 328c: 07d4 br 0x3234 // 3234 <__GI_pow+0x880> + 328e: 3400 movi r4, 0 + 3290: 1038 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3292: e800fbb5 br 0x29fc // 29fc <__GI_pow+0x48> + 3296: 3400 movi r4, 0 + 3298: 9820 ld.w r1, (r14, 0x0) + 329a: e800fbb1 br 0x29fc // 29fc <__GI_pow+0x48> + 329e: 6d1f mov r4, r7 + 32a0: 6c5b mov r1, r6 + 32a2: e800fbad br 0x29fc // 29fc <__GI_pow+0x48> + 32a6: 0000 bkpt + 32a8: 4a454eef .long 0x4a454eef + 32ac: 3fca7e28 .long 0x3fca7e28 + 32b0: 93c9db65 .long 0x93c9db65 + 32b4: 3fcd864a .long 0x3fcd864a + 32b8: a91d4101 .long 0xa91d4101 + 32bc: 3fd17460 .long 0x3fd17460 + 32c0: 518f264d .long 0x518f264d + 32c4: 3fd55555 .long 0x3fd55555 + 32c8: db6fabff .long 0xdb6fabff + 32cc: 3fdb6db6 .long 0x3fdb6db6 + 32d0: 33333303 .long 0x33333303 + 32d4: 3fe33333 .long 0x3fe33333 + 32d8: 40080000 .long 0x40080000 + 32dc: 3feec709 .long 0x3feec709 + 32e0: dc3a03fd .long 0xdc3a03fd + 32e4: 145b01f5 .long 0x145b01f5 + 32e8: be3e2fe0 .long 0xbe3e2fe0 + 32ec: 0000ab48 .long 0x0000ab48 + 32f0: 3ff00000 .long 0x3ff00000 + 32f4: 652b82fe .long 0x652b82fe + 32f8: 3c971547 .long 0x3c971547 + 32fc: 3fe00000 .long 0x3fe00000 + 3300: fffffc02 .long 0xfffffc02 + 3304: fffffc01 .long 0xfffffc01 + 3308: 000fffff .long 0x000fffff + 330c: 3fe62e43 .long 0x3fe62e43 + 3310: fefa39ef .long 0xfefa39ef + 3314: 3fe62e42 .long 0x3fe62e42 + 3318: 0ca86c39 .long 0x0ca86c39 + 331c: be205c61 .long 0xbe205c61 + 3320: 72bea4d0 .long 0x72bea4d0 + 3324: 3e663769 .long 0x3e663769 + 3328: c5d26bf1 .long 0xc5d26bf1 + 332c: 3ebbbd41 .long 0x3ebbbd41 + 3330: af25de2c .long 0xaf25de2c + 3334: 3f11566a .long 0x3f11566a + 3338: 16bebd93 .long 0x16bebd93 + 333c: 3f66c16c .long 0x3f66c16c + 3340: 5555553e .long 0x5555553e + 3344: 3fc55555 .long 0x3fc55555 + 3348: 4090cbff .long 0x4090cbff + 334c: 3f6f3400 .long 0x3f6f3400 + 3350: c2f8f359 .long 0xc2f8f359 + 3354: 01a56e1f .long 0x01a56e1f + 3358: 3300 movi r3, 0 + 335a: e800fb94 br 0x2a82 // 2a82 <__GI_pow+0xce> + +0000335e <__GI_fabs>: + 335e: 4121 lsli r1, r1, 1 + 3360: 4921 lsri r1, r1, 1 + 3362: 783c jmp r15 + +00003364 <__GI_scalbn>: + 3364: 14c1 push r4 + 3366: 6cc7 mov r3, r1 + 3368: 6cc0 or r3, r0 + 336a: 3b40 cmpnei r3, 0 + 336c: 0c08 bf 0x337c // 337c <__GI_scalbn+0x18> + 336e: 1065 lrw r3, 0x7ff00000 // 3380 <__GI_scalbn+0x1c> + 3370: 6d07 mov r4, r1 + 3372: 690c and r4, r3 + 3374: 4254 lsli r2, r2, 20 + 3376: 6090 addu r2, r4 + 3378: 684d andn r1, r3 + 337a: 6c48 or r1, r2 + 337c: 1481 pop r4 + 337e: 0000 bkpt + 3380: 7ff00000 .long 0x7ff00000 + +00003384 <__GI_sqrt>: + 3384: 14d4 push r4-r7, r15 + 3386: 1423 subi r14, r14, 12 + 3388: 127a lrw r3, 0x7ff00000 // 34f0 <__GI_sqrt+0x16c> + 338a: 6d43 mov r5, r0 + 338c: 6d07 mov r4, r1 + 338e: 6c07 mov r0, r1 + 3390: 684c and r1, r3 + 3392: 64c6 cmpne r1, r3 + 3394: 6c97 mov r2, r5 + 3396: 0812 bt 0x33ba // 33ba <__GI_sqrt+0x36> + 3398: 6cd3 mov r3, r4 + 339a: 6c17 mov r0, r5 + 339c: 6c53 mov r1, r4 + 339e: e00004ff bsr 0x3d9c // 3d9c <__muldf3> + 33a2: 6c83 mov r2, r0 + 33a4: 6cc7 mov r3, r1 + 33a6: 6c17 mov r0, r5 + 33a8: 6c53 mov r1, r4 + 33aa: e00004c5 bsr 0x3d34 // 3d34 <__adddf3> + 33ae: 6d43 mov r5, r0 + 33b0: 6d07 mov r4, r1 + 33b2: 6c17 mov r0, r5 + 33b4: 6c53 mov r1, r4 + 33b6: 1403 addi r14, r14, 12 + 33b8: 1494 pop r4-r7, r15 + 33ba: 3c20 cmplti r4, 1 + 33bc: 0c13 bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33be: 4461 lsli r3, r4, 1 + 33c0: 4b21 lsri r1, r3, 1 + 33c2: 6c54 or r1, r5 + 33c4: 3940 cmpnei r1, 0 + 33c6: 0ff6 bf 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 33c8: 3c40 cmpnei r4, 0 + 33ca: 0c0c bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33cc: 6c97 mov r2, r5 + 33ce: 6cd3 mov r3, r4 + 33d0: 6c17 mov r0, r5 + 33d2: 6c53 mov r1, r4 + 33d4: e00004c8 bsr 0x3d64 // 3d64 <__subdf3> + 33d8: 6c83 mov r2, r0 + 33da: 6cc7 mov r3, r1 + 33dc: e00005fa bsr 0x3fd0 // 3fd0 <__divdf3> + 33e0: 07e7 br 0x33ae // 33ae <__GI_sqrt+0x2a> + 33e2: 5494 asri r4, r4, 20 + 33e4: 3c40 cmpnei r4, 0 + 33e6: 0812 bt 0x340a // 340a <__GI_sqrt+0x86> + 33e8: 3840 cmpnei r0, 0 + 33ea: 0c76 bf 0x34d6 // 34d6 <__GI_sqrt+0x152> + 33ec: 3580 movi r5, 128 + 33ee: 3300 movi r3, 0 + 33f0: 452d lsli r1, r5, 13 + 33f2: 6d83 mov r6, r0 + 33f4: 6984 and r6, r1 + 33f6: 3e40 cmpnei r6, 0 + 33f8: 0c73 bf 0x34de // 34de <__GI_sqrt+0x15a> + 33fa: 5b23 subi r1, r3, 1 + 33fc: 3620 movi r6, 32 + 33fe: 6106 subu r4, r1 + 3400: 618e subu r6, r3 + 3402: 6c4b mov r1, r2 + 3404: 7059 lsr r1, r6 + 3406: 6c04 or r0, r1 + 3408: 708c lsl r2, r3 + 340a: 117b lrw r3, 0xfffffc01 // 34f4 <__GI_sqrt+0x170> + 340c: 610c addu r4, r3 + 340e: 3601 movi r6, 1 + 3410: 400c lsli r0, r0, 12 + 3412: 6990 and r6, r4 + 3414: 480c lsri r0, r0, 12 + 3416: 3e40 cmpnei r6, 0 + 3418: 38b4 bseti r0, 20 + 341a: 0c05 bf 0x3424 // 3424 <__GI_sqrt+0xa0> + 341c: 4a3f lsri r1, r2, 31 + 341e: 40a1 lsli r5, r0, 1 + 3420: 5914 addu r0, r1, r5 + 3422: 4241 lsli r2, r2, 1 + 3424: 4a7f lsri r3, r2, 31 + 3426: 60c0 addu r3, r0 + 3428: 5481 asri r4, r4, 1 + 342a: 3680 movi r6, 128 + 342c: 3100 movi r1, 0 + 342e: 60c0 addu r3, r0 + 3430: b882 st.w r4, (r14, 0x8) + 3432: 4241 lsli r2, r2, 1 + 3434: 3516 movi r5, 22 + 3436: 460e lsli r0, r6, 14 + 3438: b820 st.w r1, (r14, 0x0) + 343a: 5980 addu r4, r1, r0 + 343c: 650d cmplt r3, r4 + 343e: 0806 bt 0x344a // 344a <__GI_sqrt+0xc6> + 3440: 98c0 ld.w r6, (r14, 0x0) + 3442: 6180 addu r6, r0 + 3444: 5c20 addu r1, r4, r0 + 3446: 60d2 subu r3, r4 + 3448: b8c0 st.w r6, (r14, 0x0) + 344a: 2d00 subi r5, 1 + 344c: 4a9f lsri r4, r2, 31 + 344e: 4361 lsli r3, r3, 1 + 3450: 3d40 cmpnei r5, 0 + 3452: 60d0 addu r3, r4 + 3454: 4241 lsli r2, r2, 1 + 3456: 4801 lsri r0, r0, 1 + 3458: 0bf1 bt 0x343a // 343a <__GI_sqrt+0xb6> + 345a: 3620 movi r6, 32 + 345c: 3480 movi r4, 128 + 345e: 3000 movi r0, 0 + 3460: b8c1 st.w r6, (r14, 0x4) + 3462: 4498 lsli r4, r4, 24 + 3464: 64c5 cmplt r1, r3 + 3466: 5cd4 addu r6, r4, r5 + 3468: 0805 bt 0x3472 // 3472 <__GI_sqrt+0xee> + 346a: 644e cmpne r3, r1 + 346c: 0810 bt 0x348c // 348c <__GI_sqrt+0x108> + 346e: 6588 cmphs r2, r6 + 3470: 0c0e bf 0x348c // 348c <__GI_sqrt+0x108> + 3472: 3edf btsti r6, 31 + 3474: 5eb0 addu r5, r6, r4 + 3476: 0c37 bf 0x34e4 // 34e4 <__GI_sqrt+0x160> + 3478: 3ddf btsti r5, 31 + 347a: 0835 bt 0x34e4 // 34e4 <__GI_sqrt+0x160> + 347c: 59e2 addi r7, r1, 1 + 347e: 6588 cmphs r2, r6 + 3480: 60c6 subu r3, r1 + 3482: 0802 bt 0x3486 // 3486 <__GI_sqrt+0x102> + 3484: 2b00 subi r3, 1 + 3486: 609a subu r2, r6 + 3488: 6010 addu r0, r4 + 348a: 6c5f mov r1, r7 + 348c: 4adf lsri r6, r2, 31 + 348e: 618c addu r6, r3 + 3490: 60d8 addu r3, r6 + 3492: 98c1 ld.w r6, (r14, 0x4) + 3494: 2e00 subi r6, 1 + 3496: 3e40 cmpnei r6, 0 + 3498: 4241 lsli r2, r2, 1 + 349a: 4c81 lsri r4, r4, 1 + 349c: b8c1 st.w r6, (r14, 0x4) + 349e: 0be3 bt 0x3464 // 3464 <__GI_sqrt+0xe0> + 34a0: 6cc8 or r3, r2 + 34a2: 3b40 cmpnei r3, 0 + 34a4: 0c09 bf 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34a6: 3300 movi r3, 0 + 34a8: 2b00 subi r3, 1 + 34aa: 64c2 cmpne r0, r3 + 34ac: 081e bt 0x34e8 // 34e8 <__GI_sqrt+0x164> + 34ae: 9800 ld.w r0, (r14, 0x0) + 34b0: 2000 addi r0, 1 + 34b2: b800 st.w r0, (r14, 0x0) + 34b4: 3000 movi r0, 0 + 34b6: 3401 movi r4, 1 + 34b8: 9860 ld.w r3, (r14, 0x0) + 34ba: 98a0 ld.w r5, (r14, 0x0) + 34bc: 690c and r4, r3 + 34be: 5541 asri r2, r5, 1 + 34c0: 102e lrw r1, 0x3fe00000 // 34f8 <__GI_sqrt+0x174> + 34c2: 3c40 cmpnei r4, 0 + 34c4: 6048 addu r1, r2 + 34c6: 4801 lsri r0, r0, 1 + 34c8: 0c02 bf 0x34cc // 34cc <__GI_sqrt+0x148> + 34ca: 38bf bseti r0, 31 + 34cc: 98a2 ld.w r5, (r14, 0x8) + 34ce: 4594 lsli r4, r5, 20 + 34d0: 6104 addu r4, r1 + 34d2: 6d43 mov r5, r0 + 34d4: 076f br 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 34d6: 4a0b lsri r0, r2, 11 + 34d8: 2c14 subi r4, 21 + 34da: 4255 lsli r2, r2, 21 + 34dc: 0786 br 0x33e8 // 33e8 <__GI_sqrt+0x64> + 34de: 4001 lsli r0, r0, 1 + 34e0: 2300 addi r3, 1 + 34e2: 0788 br 0x33f2 // 33f2 <__GI_sqrt+0x6e> + 34e4: 6dc7 mov r7, r1 + 34e6: 07cc br 0x347e // 347e <__GI_sqrt+0xfa> + 34e8: 2000 addi r0, 1 + 34ea: 3880 bclri r0, 0 + 34ec: 07e5 br 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34ee: 0000 bkpt + 34f0: 7ff00000 .long 0x7ff00000 + 34f4: fffffc01 .long 0xfffffc01 + 34f8: 3fe00000 .long 0x3fe00000 + +000034fc <___gnu_csky_case_uqi>: + 34fc: 1421 subi r14, r14, 4 + 34fe: b820 st.w r1, (r14, 0x0) + 3500: 6c7f mov r1, r15 + 3502: 6040 addu r1, r0 + 3504: 8120 ld.b r1, (r1, 0x0) + 3506: 4121 lsli r1, r1, 1 + 3508: 63c4 addu r15, r1 + 350a: 9820 ld.w r1, (r14, 0x0) + 350c: 1401 addi r14, r14, 4 + 350e: 783c jmp r15 + +00003510 <___gnu_csky_case_uhi>: + 3510: 1422 subi r14, r14, 8 + 3512: b801 st.w r0, (r14, 0x4) + 3514: b820 st.w r1, (r14, 0x0) + 3516: 6c7f mov r1, r15 + 3518: 4001 lsli r0, r0, 1 + 351a: 6040 addu r1, r0 + 351c: 8920 ld.h r1, (r1, 0x0) + 351e: 4121 lsli r1, r1, 1 + 3520: 63c4 addu r15, r1 + 3522: 9801 ld.w r0, (r14, 0x4) + 3524: 9820 ld.w r1, (r14, 0x0) + 3526: 1402 addi r14, r14, 8 + 3528: 783c jmp r15 + ... + +0000352c <__fixunssfsi>: + 352c: 14d1 push r4, r15 + 352e: 319e movi r1, 158 + 3530: 4137 lsli r1, r1, 23 + 3532: 6d03 mov r4, r0 + 3534: e000020c bsr 0x394c // 394c <__gesf2> + 3538: 38df btsti r0, 31 + 353a: 0c05 bf 0x3544 // 3544 <__fixunssfsi+0x18> + 353c: 6c13 mov r0, r4 + 353e: e0000255 bsr 0x39e8 // 39e8 <__fixsfsi> + 3542: 1491 pop r4, r15 + 3544: 319e movi r1, 158 + 3546: 4137 lsli r1, r1, 23 + 3548: 6c13 mov r0, r4 + 354a: e00000e1 bsr 0x370c // 370c <__subsf3> + 354e: e000024d bsr 0x39e8 // 39e8 <__fixsfsi> + 3552: 3380 movi r3, 128 + 3554: 4378 lsli r3, r3, 24 + 3556: 600c addu r0, r3 + 3558: 1491 pop r4, r15 + ... + +0000355c <__fixunsdfsi>: + 355c: 14d2 push r4-r5, r15 + 355e: 3200 movi r2, 0 + 3560: 106c lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 3562: 6d43 mov r5, r0 + 3564: 6d07 mov r4, r1 + 3566: e00005fd bsr 0x4160 // 4160 <__gedf2> + 356a: 38df btsti r0, 31 + 356c: 0c06 bf 0x3578 // 3578 <__fixunsdfsi+0x1c> + 356e: 6c17 mov r0, r5 + 3570: 6c53 mov r1, r4 + 3572: e000066b bsr 0x4248 // 4248 <__fixdfsi> + 3576: 1492 pop r4-r5, r15 + 3578: 3200 movi r2, 0 + 357a: 1066 lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 357c: 6c17 mov r0, r5 + 357e: 6c53 mov r1, r4 + 3580: e00003f2 bsr 0x3d64 // 3d64 <__subdf3> + 3584: e0000662 bsr 0x4248 // 4248 <__fixdfsi> + 3588: 3380 movi r3, 128 + 358a: 4378 lsli r3, r3, 24 + 358c: 600c addu r0, r3 + 358e: 1492 pop r4-r5, r15 + 3590: 41e00000 .long 0x41e00000 + +00003594 <_fpadd_parts>: + 3594: 14c4 push r4-r7 + 3596: 1421 subi r14, r14, 4 + 3598: 9060 ld.w r3, (r0, 0x0) + 359a: 3b01 cmphsi r3, 2 + 359c: 0c3b bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 359e: 9180 ld.w r4, (r1, 0x0) + 35a0: 3c01 cmphsi r4, 2 + 35a2: 0c3a bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35a4: 3b44 cmpnei r3, 4 + 35a6: 0c76 bf 0x3692 // 3692 <_fpadd_parts+0xfe> + 35a8: 3c44 cmpnei r4, 4 + 35aa: 0c36 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35ac: 3c42 cmpnei r4, 2 + 35ae: 0c5c bf 0x3666 // 3666 <_fpadd_parts+0xd2> + 35b0: 3b42 cmpnei r3, 2 + 35b2: 0c32 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35b4: 90a2 ld.w r5, (r0, 0x8) + 35b6: 91e2 ld.w r7, (r1, 0x8) + 35b8: 5d9d subu r4, r5, r7 + 35ba: 9063 ld.w r3, (r0, 0xc) + 35bc: 3cdf btsti r4, 31 + 35be: b860 st.w r3, (r14, 0x0) + 35c0: 6d93 mov r6, r4 + 35c2: 9163 ld.w r3, (r1, 0xc) + 35c4: 086f bt 0x36a2 // 36a2 <_fpadd_parts+0x10e> + 35c6: 3e3f cmplti r6, 32 + 35c8: 082a bt 0x361c // 361c <_fpadd_parts+0x88> + 35ca: 655d cmplt r7, r5 + 35cc: 0c5f bf 0x368a // 368a <_fpadd_parts+0xf6> + 35ce: 3300 movi r3, 0 + 35d0: 9001 ld.w r0, (r0, 0x4) + 35d2: 9121 ld.w r1, (r1, 0x4) + 35d4: 6442 cmpne r0, r1 + 35d6: 0c33 bf 0x363c // 363c <_fpadd_parts+0xa8> + 35d8: 3840 cmpnei r0, 0 + 35da: 9820 ld.w r1, (r14, 0x0) + 35dc: 0c54 bf 0x3684 // 3684 <_fpadd_parts+0xf0> + 35de: 60c6 subu r3, r1 + 35e0: 3bdf btsti r3, 31 + 35e2: 0863 bt 0x36a8 // 36a8 <_fpadd_parts+0x114> + 35e4: 3100 movi r1, 0 + 35e6: b221 st.w r1, (r2, 0x4) + 35e8: b2a2 st.w r5, (r2, 0x8) + 35ea: b263 st.w r3, (r2, 0xc) + 35ec: 5b23 subi r1, r3, 1 + 35ee: 119b lrw r4, 0x3fffffff // 36d8 <_fpadd_parts+0x144> + 35f0: 6504 cmphs r1, r4 + 35f2: 080b bt 0x3608 // 3608 <_fpadd_parts+0x74> + 35f4: 9222 ld.w r1, (r2, 0x8) + 35f6: 2900 subi r1, 1 + 35f8: 4361 lsli r3, r3, 1 + 35fa: 5b03 subi r0, r3, 1 + 35fc: 6410 cmphs r4, r0 + 35fe: 6d47 mov r5, r1 + 3600: 2900 subi r1, 1 + 3602: 0bfb bt 0x35f8 // 35f8 <_fpadd_parts+0x64> + 3604: b263 st.w r3, (r2, 0xc) + 3606: b2a2 st.w r5, (r2, 0x8) + 3608: 3103 movi r1, 3 + 360a: 3bdf btsti r3, 31 + 360c: b220 st.w r1, (r2, 0x0) + 360e: 0821 bt 0x3650 // 3650 <_fpadd_parts+0xbc> + 3610: 6c0b mov r0, r2 + 3612: 1401 addi r14, r14, 4 + 3614: 1484 pop r4-r7 + 3616: 6c07 mov r0, r1 + 3618: 1401 addi r14, r14, 4 + 361a: 1484 pop r4-r7 + 361c: 3c20 cmplti r4, 1 + 361e: 084c bt 0x36b6 // 36b6 <_fpadd_parts+0x122> + 3620: 3401 movi r4, 1 + 3622: 7118 lsl r4, r6 + 3624: 2c00 subi r4, 1 + 3626: 6dcf mov r7, r3 + 3628: 68d0 and r3, r4 + 362a: 3b40 cmpnei r3, 0 + 362c: 9001 ld.w r0, (r0, 0x4) + 362e: 3300 movi r3, 0 + 3630: 9121 ld.w r1, (r1, 0x4) + 3632: 60cd addc r3, r3 + 3634: 71d9 lsr r7, r6 + 3636: 6442 cmpne r0, r1 + 3638: 6cdc or r3, r7 + 363a: 0bcf bt 0x35d8 // 35d8 <_fpadd_parts+0x44> + 363c: 9820 ld.w r1, (r14, 0x0) + 363e: 604c addu r1, r3 + 3640: 6cc7 mov r3, r1 + 3642: b223 st.w r1, (r2, 0xc) + 3644: 3bdf btsti r3, 31 + 3646: 3103 movi r1, 3 + 3648: b201 st.w r0, (r2, 0x4) + 364a: b2a2 st.w r5, (r2, 0x8) + 364c: b220 st.w r1, (r2, 0x0) + 364e: 0fe1 bf 0x3610 // 3610 <_fpadd_parts+0x7c> + 3650: 3001 movi r0, 1 + 3652: 4b21 lsri r1, r3, 1 + 3654: 68c0 and r3, r0 + 3656: 6cc4 or r3, r1 + 3658: b263 st.w r3, (r2, 0xc) + 365a: 9262 ld.w r3, (r2, 0x8) + 365c: 2300 addi r3, 1 + 365e: 6c0b mov r0, r2 + 3660: b262 st.w r3, (r2, 0x8) + 3662: 1401 addi r14, r14, 4 + 3664: 1484 pop r4-r7 + 3666: 3b42 cmpnei r3, 2 + 3668: 0bd5 bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 366a: b260 st.w r3, (r2, 0x0) + 366c: 9061 ld.w r3, (r0, 0x4) + 366e: b261 st.w r3, (r2, 0x4) + 3670: 9062 ld.w r3, (r0, 0x8) + 3672: b262 st.w r3, (r2, 0x8) + 3674: 9063 ld.w r3, (r0, 0xc) + 3676: 9121 ld.w r1, (r1, 0x4) + 3678: b263 st.w r3, (r2, 0xc) + 367a: 9061 ld.w r3, (r0, 0x4) + 367c: 68c4 and r3, r1 + 367e: b261 st.w r3, (r2, 0x4) + 3680: 6c0b mov r0, r2 + 3682: 07c8 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 3684: 604e subu r1, r3 + 3686: 6cc7 mov r3, r1 + 3688: 07ac br 0x35e0 // 35e0 <_fpadd_parts+0x4c> + 368a: 3400 movi r4, 0 + 368c: 6d5f mov r5, r7 + 368e: b880 st.w r4, (r14, 0x0) + 3690: 07a0 br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 3692: 3c44 cmpnei r4, 4 + 3694: 0bbf bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 3696: 9041 ld.w r2, (r0, 0x4) + 3698: 9161 ld.w r3, (r1, 0x4) + 369a: 64ca cmpne r2, r3 + 369c: 0fbb bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 369e: 1010 lrw r0, 0xab78 // 36dc <_fpadd_parts+0x148> + 36a0: 07b9 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 36a2: 3600 movi r6, 0 + 36a4: 6192 subu r6, r4 + 36a6: 0790 br 0x35c6 // 35c6 <_fpadd_parts+0x32> + 36a8: 3101 movi r1, 1 + 36aa: b221 st.w r1, (r2, 0x4) + 36ac: 3100 movi r1, 0 + 36ae: 596d subu r3, r1, r3 + 36b0: b2a2 st.w r5, (r2, 0x8) + 36b2: b263 st.w r3, (r2, 0xc) + 36b4: 079c br 0x35ec // 35ec <_fpadd_parts+0x58> + 36b6: 3c40 cmpnei r4, 0 + 36b8: 0f8c bf 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36ba: 3401 movi r4, 1 + 36bc: 98e0 ld.w r7, (r14, 0x0) + 36be: 7118 lsl r4, r6 + 36c0: 71d9 lsr r7, r6 + 36c2: 6158 addu r5, r6 + 36c4: 2c00 subi r4, 1 + 36c6: 98c0 ld.w r6, (r14, 0x0) + 36c8: 6918 and r4, r6 + 36ca: 3c40 cmpnei r4, 0 + 36cc: 3400 movi r4, 0 + 36ce: 6111 addc r4, r4 + 36d0: 6dd0 or r7, r4 + 36d2: b8e0 st.w r7, (r14, 0x0) + 36d4: 077e br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36d6: 0000 bkpt + 36d8: 3fffffff .long 0x3fffffff + 36dc: 0000ab78 .long 0x0000ab78 + +000036e0 <__addsf3>: + 36e0: 14d0 push r15 + 36e2: 142e subi r14, r14, 56 + 36e4: b800 st.w r0, (r14, 0x0) + 36e6: b821 st.w r1, (r14, 0x4) + 36e8: 6c3b mov r0, r14 + 36ea: 1902 addi r1, r14, 8 + 36ec: e00006da bsr 0x44a0 // 44a0 <__unpack_f> + 36f0: 1906 addi r1, r14, 24 + 36f2: 1801 addi r0, r14, 4 + 36f4: e00006d6 bsr 0x44a0 // 44a0 <__unpack_f> + 36f8: 1a0a addi r2, r14, 40 + 36fa: 1906 addi r1, r14, 24 + 36fc: 1802 addi r0, r14, 8 + 36fe: e3ffff4b bsr 0x3594 // 3594 <_fpadd_parts> + 3702: e0000673 bsr 0x43e8 // 43e8 <__pack_f> + 3706: 140e addi r14, r14, 56 + 3708: 1490 pop r15 + ... + +0000370c <__subsf3>: + 370c: 14d0 push r15 + 370e: 142e subi r14, r14, 56 + 3710: b800 st.w r0, (r14, 0x0) + 3712: b821 st.w r1, (r14, 0x4) + 3714: 6c3b mov r0, r14 + 3716: 1902 addi r1, r14, 8 + 3718: e00006c4 bsr 0x44a0 // 44a0 <__unpack_f> + 371c: 1906 addi r1, r14, 24 + 371e: 1801 addi r0, r14, 4 + 3720: e00006c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3724: 9867 ld.w r3, (r14, 0x1c) + 3726: 3201 movi r2, 1 + 3728: 6cc9 xor r3, r2 + 372a: 1906 addi r1, r14, 24 + 372c: 1a0a addi r2, r14, 40 + 372e: 1802 addi r0, r14, 8 + 3730: b867 st.w r3, (r14, 0x1c) + 3732: e3ffff31 bsr 0x3594 // 3594 <_fpadd_parts> + 3736: e0000659 bsr 0x43e8 // 43e8 <__pack_f> + 373a: 140e addi r14, r14, 56 + 373c: 1490 pop r15 + ... + +00003740 <__mulsf3>: + 3740: 14d4 push r4-r7, r15 + 3742: 1430 subi r14, r14, 64 + 3744: b802 st.w r0, (r14, 0x8) + 3746: b823 st.w r1, (r14, 0xc) + 3748: 1802 addi r0, r14, 8 + 374a: 1904 addi r1, r14, 16 + 374c: e00006aa bsr 0x44a0 // 44a0 <__unpack_f> + 3750: 1908 addi r1, r14, 32 + 3752: 1803 addi r0, r14, 12 + 3754: e00006a6 bsr 0x44a0 // 44a0 <__unpack_f> + 3758: 9864 ld.w r3, (r14, 0x10) + 375a: 3b01 cmphsi r3, 2 + 375c: 0c4d bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 375e: 9848 ld.w r2, (r14, 0x20) + 3760: 3a01 cmphsi r2, 2 + 3762: 0c3d bf 0x37dc // 37dc <__mulsf3+0x9c> + 3764: 3b44 cmpnei r3, 4 + 3766: 0c46 bf 0x37f2 // 37f2 <__mulsf3+0xb2> + 3768: 3a44 cmpnei r2, 4 + 376a: 0c37 bf 0x37d8 // 37d8 <__mulsf3+0x98> + 376c: 3b42 cmpnei r3, 2 + 376e: 0c44 bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 3770: 3a42 cmpnei r2, 2 + 3772: 0c35 bf 0x37dc // 37dc <__mulsf3+0x9c> + 3774: 9867 ld.w r3, (r14, 0x1c) + 3776: b860 st.w r3, (r14, 0x0) + 3778: 986b ld.w r3, (r14, 0x2c) + 377a: 6c8f mov r2, r3 + 377c: b861 st.w r3, (r14, 0x4) + 377e: 9800 ld.w r0, (r14, 0x0) + 3780: 3300 movi r3, 0 + 3782: 3100 movi r1, 0 + 3784: e00005f0 bsr 0x4364 // 4364 <__muldi3> + 3788: 98c6 ld.w r6, (r14, 0x18) + 378a: 984a ld.w r2, (r14, 0x28) + 378c: 6098 addu r2, r6 + 378e: 5ac6 addi r6, r2, 2 + 3790: b8ce st.w r6, (r14, 0x38) + 3792: 98e5 ld.w r7, (r14, 0x14) + 3794: 98c9 ld.w r6, (r14, 0x24) + 3796: 659e cmpne r7, r6 + 3798: 3400 movi r4, 0 + 379a: 6111 addc r4, r4 + 379c: 39df btsti r1, 31 + 379e: 6cc7 mov r3, r1 + 37a0: 6d43 mov r5, r0 + 37a2: b88d st.w r4, (r14, 0x34) + 37a4: 0c3f bf 0x3822 // 3822 <__mulsf3+0xe2> + 37a6: 3301 movi r3, 1 + 37a8: 68c4 and r3, r1 + 37aa: 3b40 cmpnei r3, 0 + 37ac: 2202 addi r2, 3 + 37ae: 0811 bt 0x37d0 // 37d0 <__mulsf3+0x90> + 37b0: 4961 lsri r3, r1, 1 + 37b2: b84e st.w r2, (r14, 0x38) + 37b4: 317f movi r1, 127 + 37b6: 6c8f mov r2, r3 + 37b8: 6884 and r2, r1 + 37ba: 3040 movi r0, 64 + 37bc: 640a cmpne r2, r0 + 37be: 0c27 bf 0x380c // 380c <__mulsf3+0xcc> + 37c0: b86f st.w r3, (r14, 0x3c) + 37c2: 3303 movi r3, 3 + 37c4: b86c st.w r3, (r14, 0x30) + 37c6: 180c addi r0, r14, 48 + 37c8: e0000610 bsr 0x43e8 // 43e8 <__pack_f> + 37cc: 1410 addi r14, r14, 64 + 37ce: 1494 pop r4-r7, r15 + 37d0: 4801 lsri r0, r0, 1 + 37d2: 38bf bseti r0, 31 + 37d4: 6d43 mov r5, r0 + 37d6: 07ed br 0x37b0 // 37b0 <__mulsf3+0x70> + 37d8: 3b42 cmpnei r3, 2 + 37da: 0c22 bf 0x381e // 381e <__mulsf3+0xde> + 37dc: 9869 ld.w r3, (r14, 0x24) + 37de: 9845 ld.w r2, (r14, 0x14) + 37e0: 64ca cmpne r2, r3 + 37e2: 3300 movi r3, 0 + 37e4: 60cd addc r3, r3 + 37e6: 1808 addi r0, r14, 32 + 37e8: b869 st.w r3, (r14, 0x24) + 37ea: e00005ff bsr 0x43e8 // 43e8 <__pack_f> + 37ee: 1410 addi r14, r14, 64 + 37f0: 1494 pop r4-r7, r15 + 37f2: 3a42 cmpnei r2, 2 + 37f4: 0c15 bf 0x381e // 381e <__mulsf3+0xde> + 37f6: 9845 ld.w r2, (r14, 0x14) + 37f8: 9869 ld.w r3, (r14, 0x24) + 37fa: 64ca cmpne r2, r3 + 37fc: 3300 movi r3, 0 + 37fe: 60cd addc r3, r3 + 3800: 1804 addi r0, r14, 16 + 3802: b865 st.w r3, (r14, 0x14) + 3804: e00005f2 bsr 0x43e8 // 43e8 <__pack_f> + 3808: 1410 addi r14, r14, 64 + 380a: 1494 pop r4-r7, r15 + 380c: 3080 movi r0, 128 + 380e: 680c and r0, r3 + 3810: 3840 cmpnei r0, 0 + 3812: 0bd7 bt 0x37c0 // 37c0 <__mulsf3+0x80> + 3814: 3d40 cmpnei r5, 0 + 3816: 0fd5 bf 0x37c0 // 37c0 <__mulsf3+0x80> + 3818: 60c8 addu r3, r2 + 381a: 68c5 andn r3, r1 + 381c: 07d2 br 0x37c0 // 37c0 <__mulsf3+0x80> + 381e: 100d lrw r0, 0xab78 // 3850 <__mulsf3+0x110> + 3820: 07d4 br 0x37c8 // 37c8 <__mulsf3+0x88> + 3822: 108d lrw r4, 0x3fffffff // 3854 <__mulsf3+0x114> + 3824: 6450 cmphs r4, r1 + 3826: 0fc7 bf 0x37b4 // 37b4 <__mulsf3+0x74> + 3828: 2200 addi r2, 1 + 382a: 3001 movi r0, 1 + 382c: 6c53 mov r1, r4 + 382e: 0405 br 0x3838 // 3838 <__mulsf3+0xf8> + 3830: 64c4 cmphs r1, r3 + 3832: 45a1 lsli r5, r5, 1 + 3834: 2a00 subi r2, 1 + 3836: 0c0a bf 0x384a // 384a <__mulsf3+0x10a> + 3838: 3ddf btsti r5, 31 + 383a: 6d0b mov r4, r2 + 383c: 4361 lsli r3, r3, 1 + 383e: 0ff9 bf 0x3830 // 3830 <__mulsf3+0xf0> + 3840: 6cc0 or r3, r0 + 3842: 64c4 cmphs r1, r3 + 3844: 45a1 lsli r5, r5, 1 + 3846: 2a00 subi r2, 1 + 3848: 0bf8 bt 0x3838 // 3838 <__mulsf3+0xf8> + 384a: b88e st.w r4, (r14, 0x38) + 384c: 07b4 br 0x37b4 // 37b4 <__mulsf3+0x74> + 384e: 0000 bkpt + 3850: 0000ab78 .long 0x0000ab78 + 3854: 3fffffff .long 0x3fffffff + +00003858 <__divsf3>: + 3858: 14d1 push r4, r15 + 385a: 142a subi r14, r14, 40 + 385c: b800 st.w r0, (r14, 0x0) + 385e: b821 st.w r1, (r14, 0x4) + 3860: 6c3b mov r0, r14 + 3862: 1902 addi r1, r14, 8 + 3864: e000061e bsr 0x44a0 // 44a0 <__unpack_f> + 3868: 1906 addi r1, r14, 24 + 386a: 1801 addi r0, r14, 4 + 386c: e000061a bsr 0x44a0 // 44a0 <__unpack_f> + 3870: 9862 ld.w r3, (r14, 0x8) + 3872: 3b01 cmphsi r3, 2 + 3874: 0c2c bf 0x38cc // 38cc <__divsf3+0x74> + 3876: 9826 ld.w r1, (r14, 0x18) + 3878: 3901 cmphsi r1, 2 + 387a: 0c48 bf 0x390a // 390a <__divsf3+0xb2> + 387c: 9843 ld.w r2, (r14, 0xc) + 387e: 9807 ld.w r0, (r14, 0x1c) + 3880: 6c81 xor r2, r0 + 3882: 3b44 cmpnei r3, 4 + 3884: b843 st.w r2, (r14, 0xc) + 3886: 0c28 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 3888: 3b42 cmpnei r3, 2 + 388a: 0c26 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 388c: 3944 cmpnei r1, 4 + 388e: 0c2c bf 0x38e6 // 38e6 <__divsf3+0x8e> + 3890: 3942 cmpnei r1, 2 + 3892: 0c38 bf 0x3902 // 3902 <__divsf3+0xaa> + 3894: 9844 ld.w r2, (r14, 0x10) + 3896: 9868 ld.w r3, (r14, 0x20) + 3898: 608e subu r2, r3 + 389a: 9809 ld.w r0, (r14, 0x24) + 389c: 9865 ld.w r3, (r14, 0x14) + 389e: 640c cmphs r3, r0 + 38a0: b844 st.w r2, (r14, 0x10) + 38a2: 0c1e bf 0x38de // 38de <__divsf3+0x86> + 38a4: 3180 movi r1, 128 + 38a6: 321f movi r2, 31 + 38a8: 3400 movi r4, 0 + 38aa: 4137 lsli r1, r1, 23 + 38ac: 640c cmphs r3, r0 + 38ae: 0c03 bf 0x38b4 // 38b4 <__divsf3+0x5c> + 38b0: 6d04 or r4, r1 + 38b2: 60c2 subu r3, r0 + 38b4: 2a00 subi r2, 1 + 38b6: 3a40 cmpnei r2, 0 + 38b8: 4921 lsri r1, r1, 1 + 38ba: 4361 lsli r3, r3, 1 + 38bc: 0bf8 bt 0x38ac // 38ac <__divsf3+0x54> + 38be: 317f movi r1, 127 + 38c0: 6c93 mov r2, r4 + 38c2: 6884 and r2, r1 + 38c4: 3040 movi r0, 64 + 38c6: 640a cmpne r2, r0 + 38c8: 0c14 bf 0x38f0 // 38f0 <__divsf3+0x98> + 38ca: b885 st.w r4, (r14, 0x14) + 38cc: 1802 addi r0, r14, 8 + 38ce: e000058d bsr 0x43e8 // 43e8 <__pack_f> + 38d2: 140a addi r14, r14, 40 + 38d4: 1491 pop r4, r15 + 38d6: 644e cmpne r3, r1 + 38d8: 0bfa bt 0x38cc // 38cc <__divsf3+0x74> + 38da: 100e lrw r0, 0xab78 // 3910 <__divsf3+0xb8> + 38dc: 07f9 br 0x38ce // 38ce <__divsf3+0x76> + 38de: 2a00 subi r2, 1 + 38e0: 4361 lsli r3, r3, 1 + 38e2: b844 st.w r2, (r14, 0x10) + 38e4: 07e0 br 0x38a4 // 38a4 <__divsf3+0x4c> + 38e6: 3300 movi r3, 0 + 38e8: b865 st.w r3, (r14, 0x14) + 38ea: b864 st.w r3, (r14, 0x10) + 38ec: 1802 addi r0, r14, 8 + 38ee: 07f0 br 0x38ce // 38ce <__divsf3+0x76> + 38f0: 3080 movi r0, 128 + 38f2: 6810 and r0, r4 + 38f4: 3840 cmpnei r0, 0 + 38f6: 0bea bt 0x38ca // 38ca <__divsf3+0x72> + 38f8: 3b40 cmpnei r3, 0 + 38fa: 0fe8 bf 0x38ca // 38ca <__divsf3+0x72> + 38fc: 6108 addu r4, r2 + 38fe: 6905 andn r4, r1 + 3900: 07e5 br 0x38ca // 38ca <__divsf3+0x72> + 3902: 3304 movi r3, 4 + 3904: b862 st.w r3, (r14, 0x8) + 3906: 1802 addi r0, r14, 8 + 3908: 07e3 br 0x38ce // 38ce <__divsf3+0x76> + 390a: 1806 addi r0, r14, 24 + 390c: 07e1 br 0x38ce // 38ce <__divsf3+0x76> + 390e: 0000 bkpt + 3910: 0000ab78 .long 0x0000ab78 + +00003914 <__nesf2>: + 3914: 14d0 push r15 + 3916: 142a subi r14, r14, 40 + 3918: b800 st.w r0, (r14, 0x0) + 391a: b821 st.w r1, (r14, 0x4) + 391c: 6c3b mov r0, r14 + 391e: 1902 addi r1, r14, 8 + 3920: e00005c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3924: 1906 addi r1, r14, 24 + 3926: 1801 addi r0, r14, 4 + 3928: e00005bc bsr 0x44a0 // 44a0 <__unpack_f> + 392c: 9862 ld.w r3, (r14, 0x8) + 392e: 3b01 cmphsi r3, 2 + 3930: 0c0a bf 0x3944 // 3944 <__nesf2+0x30> + 3932: 9866 ld.w r3, (r14, 0x18) + 3934: 3b01 cmphsi r3, 2 + 3936: 0c07 bf 0x3944 // 3944 <__nesf2+0x30> + 3938: 1906 addi r1, r14, 24 + 393a: 1802 addi r0, r14, 8 + 393c: e00005f4 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3940: 140a addi r14, r14, 40 + 3942: 1490 pop r15 + 3944: 3001 movi r0, 1 + 3946: 140a addi r14, r14, 40 + 3948: 1490 pop r15 + ... + +0000394c <__gesf2>: + 394c: 14d0 push r15 + 394e: 142a subi r14, r14, 40 + 3950: b800 st.w r0, (r14, 0x0) + 3952: b821 st.w r1, (r14, 0x4) + 3954: 6c3b mov r0, r14 + 3956: 1902 addi r1, r14, 8 + 3958: e00005a4 bsr 0x44a0 // 44a0 <__unpack_f> + 395c: 1906 addi r1, r14, 24 + 395e: 1801 addi r0, r14, 4 + 3960: e00005a0 bsr 0x44a0 // 44a0 <__unpack_f> + 3964: 9862 ld.w r3, (r14, 0x8) + 3966: 3b01 cmphsi r3, 2 + 3968: 0c0a bf 0x397c // 397c <__gesf2+0x30> + 396a: 9866 ld.w r3, (r14, 0x18) + 396c: 3b01 cmphsi r3, 2 + 396e: 0c07 bf 0x397c // 397c <__gesf2+0x30> + 3970: 1906 addi r1, r14, 24 + 3972: 1802 addi r0, r14, 8 + 3974: e00005d8 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3978: 140a addi r14, r14, 40 + 397a: 1490 pop r15 + 397c: 3000 movi r0, 0 + 397e: 2800 subi r0, 1 + 3980: 140a addi r14, r14, 40 + 3982: 1490 pop r15 + +00003984 <__floatsisf>: + 3984: 14d1 push r4, r15 + 3986: 1424 subi r14, r14, 16 + 3988: 3303 movi r3, 3 + 398a: b860 st.w r3, (r14, 0x0) + 398c: 3840 cmpnei r0, 0 + 398e: 487f lsri r3, r0, 31 + 3990: b861 st.w r3, (r14, 0x4) + 3992: 0808 bt 0x39a2 // 39a2 <__floatsisf+0x1e> + 3994: 3302 movi r3, 2 + 3996: b860 st.w r3, (r14, 0x0) + 3998: 6c3b mov r0, r14 + 399a: e0000527 bsr 0x43e8 // 43e8 <__pack_f> + 399e: 1404 addi r14, r14, 16 + 39a0: 1491 pop r4, r15 + 39a2: 331e movi r3, 30 + 39a4: 38df btsti r0, 31 + 39a6: b862 st.w r3, (r14, 0x8) + 39a8: 080f bt 0x39c6 // 39c6 <__floatsisf+0x42> + 39aa: 6d03 mov r4, r0 + 39ac: 6c13 mov r0, r4 + 39ae: e00004fd bsr 0x43a8 // 43a8 <__clzsi2> + 39b2: 5863 subi r3, r0, 1 + 39b4: 3b40 cmpnei r3, 0 + 39b6: 0c14 bf 0x39de // 39de <__floatsisf+0x5a> + 39b8: 6c13 mov r0, r4 + 39ba: 321e movi r2, 30 + 39bc: 700c lsl r0, r3 + 39be: 5a6d subu r3, r2, r3 + 39c0: b803 st.w r0, (r14, 0xc) + 39c2: b862 st.w r3, (r14, 0x8) + 39c4: 07ea br 0x3998 // 3998 <__floatsisf+0x14> + 39c6: 3380 movi r3, 128 + 39c8: 4378 lsli r3, r3, 24 + 39ca: 64c2 cmpne r0, r3 + 39cc: 0c0b bf 0x39e2 // 39e2 <__floatsisf+0x5e> + 39ce: 3400 movi r4, 0 + 39d0: 6102 subu r4, r0 + 39d2: 6c13 mov r0, r4 + 39d4: e00004ea bsr 0x43a8 // 43a8 <__clzsi2> + 39d8: 5863 subi r3, r0, 1 + 39da: 3b40 cmpnei r3, 0 + 39dc: 0bee bt 0x39b8 // 39b8 <__floatsisf+0x34> + 39de: b883 st.w r4, (r14, 0xc) + 39e0: 07dc br 0x3998 // 3998 <__floatsisf+0x14> + 39e2: 30cf movi r0, 207 + 39e4: 4018 lsli r0, r0, 24 + 39e6: 07dc br 0x399e // 399e <__floatsisf+0x1a> + +000039e8 <__fixsfsi>: + 39e8: 14d0 push r15 + 39ea: 1425 subi r14, r14, 20 + 39ec: b800 st.w r0, (r14, 0x0) + 39ee: 1901 addi r1, r14, 4 + 39f0: 6c3b mov r0, r14 + 39f2: e0000557 bsr 0x44a0 // 44a0 <__unpack_f> + 39f6: 9861 ld.w r3, (r14, 0x4) + 39f8: 3b02 cmphsi r3, 3 + 39fa: 0c1b bf 0x3a30 // 3a30 <__fixsfsi+0x48> + 39fc: 3b44 cmpnei r3, 4 + 39fe: 0c06 bf 0x3a0a // 3a0a <__fixsfsi+0x22> + 3a00: 9863 ld.w r3, (r14, 0xc) + 3a02: 3bdf btsti r3, 31 + 3a04: 0816 bt 0x3a30 // 3a30 <__fixsfsi+0x48> + 3a06: 3b3e cmplti r3, 31 + 3a08: 0809 bt 0x3a1a // 3a1a <__fixsfsi+0x32> + 3a0a: 9862 ld.w r3, (r14, 0x8) + 3a0c: 3b40 cmpnei r3, 0 + 3a0e: 3000 movi r0, 0 + 3a10: 6001 addc r0, r0 + 3a12: 106a lrw r3, 0x7fffffff // 3a38 <__fixsfsi+0x50> + 3a14: 600c addu r0, r3 + 3a16: 1405 addi r14, r14, 20 + 3a18: 1490 pop r15 + 3a1a: 321e movi r2, 30 + 3a1c: 5a6d subu r3, r2, r3 + 3a1e: 9804 ld.w r0, (r14, 0x10) + 3a20: 700d lsr r0, r3 + 3a22: 9862 ld.w r3, (r14, 0x8) + 3a24: 3b40 cmpnei r3, 0 + 3a26: 0ff8 bf 0x3a16 // 3a16 <__fixsfsi+0x2e> + 3a28: 3300 movi r3, 0 + 3a2a: 5b01 subu r0, r3, r0 + 3a2c: 1405 addi r14, r14, 20 + 3a2e: 1490 pop r15 + 3a30: 3000 movi r0, 0 + 3a32: 1405 addi r14, r14, 20 + 3a34: 1490 pop r15 + 3a36: 0000 bkpt + 3a38: 7fffffff .long 0x7fffffff + +00003a3c <__extendsfdf2>: + 3a3c: 14d1 push r4, r15 + 3a3e: 1426 subi r14, r14, 24 + 3a40: b801 st.w r0, (r14, 0x4) + 3a42: 1902 addi r1, r14, 8 + 3a44: 1801 addi r0, r14, 4 + 3a46: e000052d bsr 0x44a0 // 44a0 <__unpack_f> + 3a4a: 9865 ld.w r3, (r14, 0x14) + 3a4c: 4b82 lsri r4, r3, 2 + 3a4e: 9844 ld.w r2, (r14, 0x10) + 3a50: 437e lsli r3, r3, 30 + 3a52: 9823 ld.w r1, (r14, 0xc) + 3a54: 9802 ld.w r0, (r14, 0x8) + 3a56: b880 st.w r4, (r14, 0x0) + 3a58: e0000430 bsr 0x42b8 // 42b8 <__make_dp> + 3a5c: 1406 addi r14, r14, 24 + 3a5e: 1491 pop r4, r15 + +00003a60 <_fpadd_parts>: + 3a60: 14c4 push r4-r7 + 3a62: 142a subi r14, r14, 40 + 3a64: 9060 ld.w r3, (r0, 0x0) + 3a66: 3b01 cmphsi r3, 2 + 3a68: 6dcb mov r7, r2 + 3a6a: 0c67 bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3a6c: 9140 ld.w r2, (r1, 0x0) + 3a6e: 3a01 cmphsi r2, 2 + 3a70: 0c66 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a72: 3b44 cmpnei r3, 4 + 3a74: 0cde bf 0x3c30 // 3c30 <_fpadd_parts+0x1d0> + 3a76: 3a44 cmpnei r2, 4 + 3a78: 0c62 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a7a: 3a42 cmpnei r2, 2 + 3a7c: 0cb7 bf 0x3bea // 3bea <_fpadd_parts+0x18a> + 3a7e: 3b42 cmpnei r3, 2 + 3a80: 0c5e bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a82: 9043 ld.w r2, (r0, 0xc) + 3a84: 9064 ld.w r3, (r0, 0x10) + 3a86: 9082 ld.w r4, (r0, 0x8) + 3a88: 91a2 ld.w r5, (r1, 0x8) + 3a8a: b842 st.w r2, (r14, 0x8) + 3a8c: b863 st.w r3, (r14, 0xc) + 3a8e: 9143 ld.w r2, (r1, 0xc) + 3a90: 9164 ld.w r3, (r1, 0x10) + 3a92: b840 st.w r2, (r14, 0x0) + 3a94: b861 st.w r3, (r14, 0x4) + 3a96: 5c75 subu r3, r4, r5 + 3a98: 3bdf btsti r3, 31 + 3a9a: 6c8f mov r2, r3 + 3a9c: 08d2 bt 0x3c40 // 3c40 <_fpadd_parts+0x1e0> + 3a9e: 363f movi r6, 63 + 3aa0: 6499 cmplt r6, r2 + 3aa2: 0c50 bf 0x3b42 // 3b42 <_fpadd_parts+0xe2> + 3aa4: 6515 cmplt r5, r4 + 3aa6: 0cbf bf 0x3c24 // 3c24 <_fpadd_parts+0x1c4> + 3aa8: 3200 movi r2, 0 + 3aaa: 3300 movi r3, 0 + 3aac: b840 st.w r2, (r14, 0x0) + 3aae: b861 st.w r3, (r14, 0x4) + 3ab0: 9061 ld.w r3, (r0, 0x4) + 3ab2: 9141 ld.w r2, (r1, 0x4) + 3ab4: 648e cmpne r3, r2 + 3ab6: 0c78 bf 0x3ba6 // 3ba6 <_fpadd_parts+0x146> + 3ab8: 3b40 cmpnei r3, 0 + 3aba: 0cad bf 0x3c14 // 3c14 <_fpadd_parts+0x1b4> + 3abc: 9800 ld.w r0, (r14, 0x0) + 3abe: 9821 ld.w r1, (r14, 0x4) + 3ac0: 9842 ld.w r2, (r14, 0x8) + 3ac2: 9863 ld.w r3, (r14, 0xc) + 3ac4: 6400 cmphs r0, r0 + 3ac6: 600b subc r0, r2 + 3ac8: 604f subc r1, r3 + 3aca: 39df btsti r1, 31 + 3acc: 08bd bt 0x3c46 // 3c46 <_fpadd_parts+0x1e6> + 3ace: 3300 movi r3, 0 + 3ad0: b761 st.w r3, (r7, 0x4) + 3ad2: b782 st.w r4, (r7, 0x8) + 3ad4: 6c83 mov r2, r0 + 3ad6: 6cc7 mov r3, r1 + 3ad8: b703 st.w r0, (r7, 0xc) + 3ada: b724 st.w r1, (r7, 0x10) + 3adc: 3000 movi r0, 0 + 3ade: 3100 movi r1, 0 + 3ae0: 2800 subi r0, 1 + 3ae2: 2900 subi r1, 1 + 3ae4: 6401 cmplt r0, r0 + 3ae6: 6009 addc r0, r2 + 3ae8: 604d addc r1, r3 + 3aea: 038f lrw r4, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3aec: 6450 cmphs r4, r1 + 3aee: 0c67 bf 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3af0: 6506 cmpne r1, r4 + 3af2: 0cfd bf 0x3cec // 3cec <_fpadd_parts+0x28c> + 3af4: 3000 movi r0, 0 + 3af6: 9722 ld.w r1, (r7, 0x8) + 3af8: 2801 subi r0, 2 + 3afa: 2900 subi r1, 1 + 3afc: 03d4 lrw r6, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3afe: b802 st.w r0, (r14, 0x8) + 3b00: b8e0 st.w r7, (r14, 0x0) + 3b02: 0403 br 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3b04: 6596 cmpne r5, r6 + 3b06: 0c83 bf 0x3c0c // 3c0c <_fpadd_parts+0x1ac> + 3b08: 4301 lsli r0, r3, 1 + 3b0a: 4a9f lsri r4, r2, 31 + 3b0c: 6d00 or r4, r0 + 3b0e: 42a1 lsli r5, r2, 1 + 3b10: 6c97 mov r2, r5 + 3b12: 6cd3 mov r3, r4 + 3b14: 3500 movi r5, 0 + 3b16: 3400 movi r4, 0 + 3b18: 2c00 subi r4, 1 + 3b1a: 2d00 subi r5, 1 + 3b1c: 6511 cmplt r4, r4 + 3b1e: 6109 addc r4, r2 + 3b20: 614d addc r5, r3 + 3b22: 6558 cmphs r6, r5 + 3b24: 6c07 mov r0, r1 + 3b26: 2900 subi r1, 1 + 3b28: 0bee bt 0x3b04 // 3b04 <_fpadd_parts+0xa4> + 3b2a: 98e0 ld.w r7, (r14, 0x0) + 3b2c: b743 st.w r2, (r7, 0xc) + 3b2e: b764 st.w r3, (r7, 0x10) + 3b30: 3303 movi r3, 3 + 3b32: b702 st.w r0, (r7, 0x8) + 3b34: b760 st.w r3, (r7, 0x0) + 3b36: 6c1f mov r0, r7 + 3b38: 140a addi r14, r14, 40 + 3b3a: 1484 pop r4-r7 + 3b3c: 6c07 mov r0, r1 + 3b3e: 140a addi r14, r14, 40 + 3b40: 1484 pop r4-r7 + 3b42: 3b20 cmplti r3, 1 + 3b44: 088c bt 0x3c5c // 3c5c <_fpadd_parts+0x1fc> + 3b46: 3300 movi r3, 0 + 3b48: 2b1f subi r3, 32 + 3b4a: 60c8 addu r3, r2 + 3b4c: 3bdf btsti r3, 31 + 3b4e: b866 st.w r3, (r14, 0x18) + 3b50: 08bb bt 0x3cc6 // 3cc6 <_fpadd_parts+0x266> + 3b52: 98a1 ld.w r5, (r14, 0x4) + 3b54: 714d lsr r5, r3 + 3b56: b8a4 st.w r5, (r14, 0x10) + 3b58: 3500 movi r5, 0 + 3b5a: b8a5 st.w r5, (r14, 0x14) + 3b5c: 9866 ld.w r3, (r14, 0x18) + 3b5e: 3bdf btsti r3, 31 + 3b60: 3500 movi r5, 0 + 3b62: 3600 movi r6, 0 + 3b64: 08ad bt 0x3cbe // 3cbe <_fpadd_parts+0x25e> + 3b66: 3201 movi r2, 1 + 3b68: 708c lsl r2, r3 + 3b6a: 6d8b mov r6, r2 + 3b6c: 3200 movi r2, 0 + 3b6e: 3300 movi r3, 0 + 3b70: 2a00 subi r2, 1 + 3b72: 2b00 subi r3, 1 + 3b74: 6489 cmplt r2, r2 + 3b76: 6095 addc r2, r5 + 3b78: 60d9 addc r3, r6 + 3b7a: 98a0 ld.w r5, (r14, 0x0) + 3b7c: 98c1 ld.w r6, (r14, 0x4) + 3b7e: 6948 and r5, r2 + 3b80: 698c and r6, r3 + 3b82: 6c97 mov r2, r5 + 3b84: 6cdb mov r3, r6 + 3b86: 6c8c or r2, r3 + 3b88: 3a40 cmpnei r2, 0 + 3b8a: 3500 movi r5, 0 + 3b8c: 6155 addc r5, r5 + 3b8e: 6c97 mov r2, r5 + 3b90: 3300 movi r3, 0 + 3b92: 98a4 ld.w r5, (r14, 0x10) + 3b94: 98c5 ld.w r6, (r14, 0x14) + 3b96: 6d48 or r5, r2 + 3b98: 6d8c or r6, r3 + 3b9a: 9061 ld.w r3, (r0, 0x4) + 3b9c: 9141 ld.w r2, (r1, 0x4) + 3b9e: 648e cmpne r3, r2 + 3ba0: b8a0 st.w r5, (r14, 0x0) + 3ba2: b8c1 st.w r6, (r14, 0x4) + 3ba4: 0b8a bt 0x3ab8 // 3ab8 <_fpadd_parts+0x58> + 3ba6: b761 st.w r3, (r7, 0x4) + 3ba8: 9800 ld.w r0, (r14, 0x0) + 3baa: 9821 ld.w r1, (r14, 0x4) + 3bac: 9842 ld.w r2, (r14, 0x8) + 3bae: 9863 ld.w r3, (r14, 0xc) + 3bb0: 6489 cmplt r2, r2 + 3bb2: 6081 addc r2, r0 + 3bb4: 60c5 addc r3, r1 + 3bb6: b782 st.w r4, (r7, 0x8) + 3bb8: b743 st.w r2, (r7, 0xc) + 3bba: b764 st.w r3, (r7, 0x10) + 3bbc: 3103 movi r1, 3 + 3bbe: b720 st.w r1, (r7, 0x0) + 3bc0: 123b lrw r1, 0x1fffffff // 3d2c <_fpadd_parts+0x2cc> + 3bc2: 64c4 cmphs r1, r3 + 3bc4: 0810 bt 0x3be4 // 3be4 <_fpadd_parts+0x184> + 3bc6: 439f lsli r4, r3, 31 + 3bc8: 4a01 lsri r0, r2, 1 + 3bca: 6c10 or r0, r4 + 3bcc: 3500 movi r5, 0 + 3bce: 3401 movi r4, 1 + 3bd0: 4b21 lsri r1, r3, 1 + 3bd2: 6890 and r2, r4 + 3bd4: 68d4 and r3, r5 + 3bd6: 6c80 or r2, r0 + 3bd8: 6cc4 or r3, r1 + 3bda: b743 st.w r2, (r7, 0xc) + 3bdc: b764 st.w r3, (r7, 0x10) + 3bde: 9762 ld.w r3, (r7, 0x8) + 3be0: 2300 addi r3, 1 + 3be2: b762 st.w r3, (r7, 0x8) + 3be4: 6c1f mov r0, r7 + 3be6: 140a addi r14, r14, 40 + 3be8: 1484 pop r4-r7 + 3bea: 3b42 cmpnei r3, 2 + 3bec: 0ba6 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3bee: b760 st.w r3, (r7, 0x0) + 3bf0: 9061 ld.w r3, (r0, 0x4) + 3bf2: b761 st.w r3, (r7, 0x4) + 3bf4: 9062 ld.w r3, (r0, 0x8) + 3bf6: b762 st.w r3, (r7, 0x8) + 3bf8: 9063 ld.w r3, (r0, 0xc) + 3bfa: b763 st.w r3, (r7, 0xc) + 3bfc: 9064 ld.w r3, (r0, 0x10) + 3bfe: 9141 ld.w r2, (r1, 0x4) + 3c00: b764 st.w r3, (r7, 0x10) + 3c02: 9061 ld.w r3, (r0, 0x4) + 3c04: 68c8 and r3, r2 + 3c06: b761 st.w r3, (r7, 0x4) + 3c08: 6c1f mov r0, r7 + 3c0a: 0797 br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c0c: 98e2 ld.w r7, (r14, 0x8) + 3c0e: 651c cmphs r7, r4 + 3c10: 0b7c bt 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3c12: 078c br 0x3b2a // 3b2a <_fpadd_parts+0xca> + 3c14: 9802 ld.w r0, (r14, 0x8) + 3c16: 9823 ld.w r1, (r14, 0xc) + 3c18: 9840 ld.w r2, (r14, 0x0) + 3c1a: 9861 ld.w r3, (r14, 0x4) + 3c1c: 6400 cmphs r0, r0 + 3c1e: 600b subc r0, r2 + 3c20: 604f subc r1, r3 + 3c22: 0754 br 0x3aca // 3aca <_fpadd_parts+0x6a> + 3c24: 3200 movi r2, 0 + 3c26: 3300 movi r3, 0 + 3c28: 6d17 mov r4, r5 + 3c2a: b842 st.w r2, (r14, 0x8) + 3c2c: b863 st.w r3, (r14, 0xc) + 3c2e: 0741 br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c30: 3a44 cmpnei r2, 4 + 3c32: 0b83 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c34: 9041 ld.w r2, (r0, 0x4) + 3c36: 9161 ld.w r3, (r1, 0x4) + 3c38: 64ca cmpne r2, r3 + 3c3a: 0f7f bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c3c: 111d lrw r0, 0xab88 // 3d30 <_fpadd_parts+0x2d0> + 3c3e: 077d br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c40: 3200 movi r2, 0 + 3c42: 608e subu r2, r3 + 3c44: 072d br 0x3a9e // 3a9e <_fpadd_parts+0x3e> + 3c46: 3301 movi r3, 1 + 3c48: b761 st.w r3, (r7, 0x4) + 3c4a: 3200 movi r2, 0 + 3c4c: 3300 movi r3, 0 + 3c4e: 6488 cmphs r2, r2 + 3c50: 6083 subc r2, r0 + 3c52: 60c7 subc r3, r1 + 3c54: b782 st.w r4, (r7, 0x8) + 3c56: b743 st.w r2, (r7, 0xc) + 3c58: b764 st.w r3, (r7, 0x10) + 3c5a: 0741 br 0x3adc // 3adc <_fpadd_parts+0x7c> + 3c5c: 3b40 cmpnei r3, 0 + 3c5e: 0f29 bf 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c60: 3300 movi r3, 0 + 3c62: 2b1f subi r3, 32 + 3c64: 60c8 addu r3, r2 + 3c66: 3bdf btsti r3, 31 + 3c68: 6108 addu r4, r2 + 3c6a: b866 st.w r3, (r14, 0x18) + 3c6c: 0849 bt 0x3cfe // 3cfe <_fpadd_parts+0x29e> + 3c6e: 9863 ld.w r3, (r14, 0xc) + 3c70: 98a6 ld.w r5, (r14, 0x18) + 3c72: 70d5 lsr r3, r5 + 3c74: b864 st.w r3, (r14, 0x10) + 3c76: 3300 movi r3, 0 + 3c78: b865 st.w r3, (r14, 0x14) + 3c7a: 9866 ld.w r3, (r14, 0x18) + 3c7c: 3bdf btsti r3, 31 + 3c7e: 3500 movi r5, 0 + 3c80: 3600 movi r6, 0 + 3c82: 083a bt 0x3cf6 // 3cf6 <_fpadd_parts+0x296> + 3c84: 3201 movi r2, 1 + 3c86: 708c lsl r2, r3 + 3c88: 6d8b mov r6, r2 + 3c8a: 3200 movi r2, 0 + 3c8c: 3300 movi r3, 0 + 3c8e: 2a00 subi r2, 1 + 3c90: 2b00 subi r3, 1 + 3c92: 6489 cmplt r2, r2 + 3c94: 6095 addc r2, r5 + 3c96: 60d9 addc r3, r6 + 3c98: 98a2 ld.w r5, (r14, 0x8) + 3c9a: 98c3 ld.w r6, (r14, 0xc) + 3c9c: 6948 and r5, r2 + 3c9e: 698c and r6, r3 + 3ca0: 6c97 mov r2, r5 + 3ca2: 6cdb mov r3, r6 + 3ca4: 6c8c or r2, r3 + 3ca6: 3a40 cmpnei r2, 0 + 3ca8: 3500 movi r5, 0 + 3caa: 6155 addc r5, r5 + 3cac: 6c97 mov r2, r5 + 3cae: 3300 movi r3, 0 + 3cb0: 98a4 ld.w r5, (r14, 0x10) + 3cb2: 98c5 ld.w r6, (r14, 0x14) + 3cb4: 6d48 or r5, r2 + 3cb6: 6d8c or r6, r3 + 3cb8: b8a2 st.w r5, (r14, 0x8) + 3cba: b8c3 st.w r6, (r14, 0xc) + 3cbc: 06fa br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3cbe: 3301 movi r3, 1 + 3cc0: 70c8 lsl r3, r2 + 3cc2: 6d4f mov r5, r3 + 3cc4: 0754 br 0x3b6c // 3b6c <_fpadd_parts+0x10c> + 3cc6: 9861 ld.w r3, (r14, 0x4) + 3cc8: 361f movi r6, 31 + 3cca: 43a1 lsli r5, r3, 1 + 3ccc: 618a subu r6, r2 + 3cce: 7158 lsl r5, r6 + 3cd0: b8a9 st.w r5, (r14, 0x24) + 3cd2: 98a0 ld.w r5, (r14, 0x0) + 3cd4: 98c1 ld.w r6, (r14, 0x4) + 3cd6: b8a7 st.w r5, (r14, 0x1c) + 3cd8: b8c8 st.w r6, (r14, 0x20) + 3cda: 9867 ld.w r3, (r14, 0x1c) + 3cdc: 70c9 lsr r3, r2 + 3cde: 98a9 ld.w r5, (r14, 0x24) + 3ce0: 6cd4 or r3, r5 + 3ce2: b864 st.w r3, (r14, 0x10) + 3ce4: 9868 ld.w r3, (r14, 0x20) + 3ce6: 70c9 lsr r3, r2 + 3ce8: b865 st.w r3, (r14, 0x14) + 3cea: 0739 br 0x3b5c // 3b5c <_fpadd_parts+0xfc> + 3cec: 3100 movi r1, 0 + 3cee: 2901 subi r1, 2 + 3cf0: 6404 cmphs r1, r0 + 3cf2: 0b01 bt 0x3af4 // 3af4 <_fpadd_parts+0x94> + 3cf4: 0764 br 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3cf6: 3301 movi r3, 1 + 3cf8: 70c8 lsl r3, r2 + 3cfa: 6d4f mov r5, r3 + 3cfc: 07c7 br 0x3c8a // 3c8a <_fpadd_parts+0x22a> + 3cfe: 9863 ld.w r3, (r14, 0xc) + 3d00: 43c1 lsli r6, r3, 1 + 3d02: 351f movi r5, 31 + 3d04: 5d69 subu r3, r5, r2 + 3d06: 6d5b mov r5, r6 + 3d08: 714c lsl r5, r3 + 3d0a: b8a9 st.w r5, (r14, 0x24) + 3d0c: 98a2 ld.w r5, (r14, 0x8) + 3d0e: 98c3 ld.w r6, (r14, 0xc) + 3d10: b8a7 st.w r5, (r14, 0x1c) + 3d12: b8c8 st.w r6, (r14, 0x20) + 3d14: 9867 ld.w r3, (r14, 0x1c) + 3d16: 70c9 lsr r3, r2 + 3d18: 98a9 ld.w r5, (r14, 0x24) + 3d1a: 6cd4 or r3, r5 + 3d1c: b864 st.w r3, (r14, 0x10) + 3d1e: 9868 ld.w r3, (r14, 0x20) + 3d20: 70c9 lsr r3, r2 + 3d22: b865 st.w r3, (r14, 0x14) + 3d24: 07ab br 0x3c7a // 3c7a <_fpadd_parts+0x21a> + 3d26: 0000 bkpt + 3d28: 0fffffff .long 0x0fffffff + 3d2c: 1fffffff .long 0x1fffffff + 3d30: 0000ab88 .long 0x0000ab88 + +00003d34 <__adddf3>: + 3d34: 14d0 push r15 + 3d36: 1433 subi r14, r14, 76 + 3d38: b800 st.w r0, (r14, 0x0) + 3d3a: b821 st.w r1, (r14, 0x4) + 3d3c: 6c3b mov r0, r14 + 3d3e: 1904 addi r1, r14, 16 + 3d40: b863 st.w r3, (r14, 0xc) + 3d42: b842 st.w r2, (r14, 0x8) + 3d44: e0000506 bsr 0x4750 // 4750 <__unpack_d> + 3d48: 1909 addi r1, r14, 36 + 3d4a: 1802 addi r0, r14, 8 + 3d4c: e0000502 bsr 0x4750 // 4750 <__unpack_d> + 3d50: 1a0e addi r2, r14, 56 + 3d52: 1909 addi r1, r14, 36 + 3d54: 1804 addi r0, r14, 16 + 3d56: e3fffe85 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d5a: e000042d bsr 0x45b4 // 45b4 <__pack_d> + 3d5e: 1413 addi r14, r14, 76 + 3d60: 1490 pop r15 + ... + +00003d64 <__subdf3>: + 3d64: 14d0 push r15 + 3d66: 1433 subi r14, r14, 76 + 3d68: b800 st.w r0, (r14, 0x0) + 3d6a: b821 st.w r1, (r14, 0x4) + 3d6c: 6c3b mov r0, r14 + 3d6e: 1904 addi r1, r14, 16 + 3d70: b842 st.w r2, (r14, 0x8) + 3d72: b863 st.w r3, (r14, 0xc) + 3d74: e00004ee bsr 0x4750 // 4750 <__unpack_d> + 3d78: 1909 addi r1, r14, 36 + 3d7a: 1802 addi r0, r14, 8 + 3d7c: e00004ea bsr 0x4750 // 4750 <__unpack_d> + 3d80: 986a ld.w r3, (r14, 0x28) + 3d82: 3201 movi r2, 1 + 3d84: 6cc9 xor r3, r2 + 3d86: 1909 addi r1, r14, 36 + 3d88: 1a0e addi r2, r14, 56 + 3d8a: 1804 addi r0, r14, 16 + 3d8c: b86a st.w r3, (r14, 0x28) + 3d8e: e3fffe69 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d92: e0000411 bsr 0x45b4 // 45b4 <__pack_d> + 3d96: 1413 addi r14, r14, 76 + 3d98: 1490 pop r15 + ... + +00003d9c <__muldf3>: + 3d9c: 14d4 push r4-r7, r15 + 3d9e: 143b subi r14, r14, 108 + 3da0: b808 st.w r0, (r14, 0x20) + 3da2: b829 st.w r1, (r14, 0x24) + 3da4: 1808 addi r0, r14, 32 + 3da6: 190c addi r1, r14, 48 + 3da8: b86b st.w r3, (r14, 0x2c) + 3daa: b84a st.w r2, (r14, 0x28) + 3dac: e00004d2 bsr 0x4750 // 4750 <__unpack_d> + 3db0: 1911 addi r1, r14, 68 + 3db2: 180a addi r0, r14, 40 + 3db4: e00004ce bsr 0x4750 // 4750 <__unpack_d> + 3db8: 986c ld.w r3, (r14, 0x30) + 3dba: 3b01 cmphsi r3, 2 + 3dbc: 0cac bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dbe: 9851 ld.w r2, (r14, 0x44) + 3dc0: 3a01 cmphsi r2, 2 + 3dc2: 0c9c bf 0x3efa // 3efa <__muldf3+0x15e> + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0ca5 bf 0x3f10 // 3f10 <__muldf3+0x174> + 3dc8: 3a44 cmpnei r2, 4 + 3dca: 0c96 bf 0x3ef6 // 3ef6 <__muldf3+0x15a> + 3dcc: 3b42 cmpnei r3, 2 + 3dce: 0ca3 bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dd0: 3a42 cmpnei r2, 2 + 3dd2: 0c94 bf 0x3efa // 3efa <__muldf3+0x15e> + 3dd4: 98ef ld.w r7, (r14, 0x3c) + 3dd6: 98b4 ld.w r5, (r14, 0x50) + 3dd8: 9875 ld.w r3, (r14, 0x54) + 3dda: 6d8f mov r6, r3 + 3ddc: 6c9f mov r2, r7 + 3dde: 3300 movi r3, 0 + 3de0: 6c17 mov r0, r5 + 3de2: 3100 movi r1, 0 + 3de4: e00002c0 bsr 0x4364 // 4364 <__muldi3> + 3de8: b804 st.w r0, (r14, 0x10) + 3dea: b825 st.w r1, (r14, 0x14) + 3dec: 6c9f mov r2, r7 + 3dee: 3300 movi r3, 0 + 3df0: 6c1b mov r0, r6 + 3df2: 3100 movi r1, 0 + 3df4: 9890 ld.w r4, (r14, 0x40) + 3df6: b8c2 st.w r6, (r14, 0x8) + 3df8: e00002b6 bsr 0x4364 // 4364 <__muldi3> + 3dfc: 6d83 mov r6, r0 + 3dfe: 6dc7 mov r7, r1 + 3e00: 9842 ld.w r2, (r14, 0x8) + 3e02: 3300 movi r3, 0 + 3e04: 6c13 mov r0, r4 + 3e06: 3100 movi r1, 0 + 3e08: e00002ae bsr 0x4364 // 4364 <__muldi3> + 3e0c: b806 st.w r0, (r14, 0x18) + 3e0e: b827 st.w r1, (r14, 0x1c) + 3e10: 6c97 mov r2, r5 + 3e12: 3300 movi r3, 0 + 3e14: 6c13 mov r0, r4 + 3e16: 3100 movi r1, 0 + 3e18: e00002a6 bsr 0x4364 // 4364 <__muldi3> + 3e1c: 6401 cmplt r0, r0 + 3e1e: 6019 addc r0, r6 + 3e20: 605d addc r1, r7 + 3e22: 65c4 cmphs r1, r7 + 3e24: 0c91 bf 0x3f46 // 3f46 <__muldf3+0x1aa> + 3e26: 645e cmpne r7, r1 + 3e28: 0c8d bf 0x3f42 // 3f42 <__muldf3+0x1a6> + 3e2a: 3300 movi r3, 0 + 3e2c: 3400 movi r4, 0 + 3e2e: b862 st.w r3, (r14, 0x8) + 3e30: b883 st.w r4, (r14, 0xc) + 3e32: 9884 ld.w r4, (r14, 0x10) + 3e34: 98a5 ld.w r5, (r14, 0x14) + 3e36: 3600 movi r6, 0 + 3e38: 6dc3 mov r7, r0 + 3e3a: 6c93 mov r2, r4 + 3e3c: 6cd7 mov r3, r5 + 3e3e: 6489 cmplt r2, r2 + 3e40: 6099 addc r2, r6 + 3e42: 60dd addc r3, r7 + 3e44: 6d8b mov r6, r2 + 3e46: 6dcf mov r7, r3 + 3e48: 6c93 mov r2, r4 + 3e4a: 6cd7 mov r3, r5 + 3e4c: 64dc cmphs r7, r3 + 3e4e: 0c70 bf 0x3f2e // 3f2e <__muldf3+0x192> + 3e50: 65ce cmpne r3, r7 + 3e52: 0c6c bf 0x3f2a // 3f2a <__muldf3+0x18e> + 3e54: 6c87 mov r2, r1 + 3e56: 3300 movi r3, 0 + 3e58: 9806 ld.w r0, (r14, 0x18) + 3e5a: 9827 ld.w r1, (r14, 0x1c) + 3e5c: 6401 cmplt r0, r0 + 3e5e: 6009 addc r0, r2 + 3e60: 604d addc r1, r3 + 3e62: 6c83 mov r2, r0 + 3e64: 6cc7 mov r3, r1 + 3e66: 9802 ld.w r0, (r14, 0x8) + 3e68: 9823 ld.w r1, (r14, 0xc) + 3e6a: 6401 cmplt r0, r0 + 3e6c: 6009 addc r0, r2 + 3e6e: 604d addc r1, r3 + 3e70: 6c83 mov r2, r0 + 3e72: 6cc7 mov r3, r1 + 3e74: 988e ld.w r4, (r14, 0x38) + 3e76: 9833 ld.w r1, (r14, 0x4c) + 3e78: 6104 addu r4, r1 + 3e7a: 5c2e addi r1, r4, 4 + 3e7c: b838 st.w r1, (r14, 0x60) + 3e7e: 980d ld.w r0, (r14, 0x34) + 3e80: 9832 ld.w r1, (r14, 0x48) + 3e82: 6442 cmpne r0, r1 + 3e84: 12b0 lrw r5, 0x1fffffff // 3fc4 <__muldf3+0x228> + 3e86: 3100 movi r1, 0 + 3e88: 6045 addc r1, r1 + 3e8a: 64d4 cmphs r5, r3 + 3e8c: b837 st.w r1, (r14, 0x5c) + 3e8e: 0879 bt 0x3f80 // 3f80 <__muldf3+0x1e4> + 3e90: 2404 addi r4, 5 + 3e92: b8a4 st.w r5, (r14, 0x10) + 3e94: 3001 movi r0, 1 + 3e96: 3100 movi r1, 0 + 3e98: 6808 and r0, r2 + 3e9a: 684c and r1, r3 + 3e9c: 6c04 or r0, r1 + 3e9e: 3840 cmpnei r0, 0 + 3ea0: b882 st.w r4, (r14, 0x8) + 3ea2: 0c0e bf 0x3ebe // 3ebe <__muldf3+0x122> + 3ea4: 473f lsli r1, r7, 31 + 3ea6: 4e01 lsri r0, r6, 1 + 3ea8: 6c04 or r0, r1 + 3eaa: 4f21 lsri r1, r7, 1 + 3eac: b800 st.w r0, (r14, 0x0) + 3eae: b821 st.w r1, (r14, 0x4) + 3eb0: 3180 movi r1, 128 + 3eb2: 98c0 ld.w r6, (r14, 0x0) + 3eb4: 98e1 ld.w r7, (r14, 0x4) + 3eb6: 3000 movi r0, 0 + 3eb8: 4138 lsli r1, r1, 24 + 3eba: 6d80 or r6, r0 + 3ebc: 6dc4 or r7, r1 + 3ebe: 4b21 lsri r1, r3, 1 + 3ec0: 43bf lsli r5, r3, 31 + 3ec2: 4a01 lsri r0, r2, 1 + 3ec4: 6cc7 mov r3, r1 + 3ec6: 9824 ld.w r1, (r14, 0x10) + 3ec8: 6d40 or r5, r0 + 3eca: 64c4 cmphs r1, r3 + 3ecc: 6c97 mov r2, r5 + 3ece: 2400 addi r4, 1 + 3ed0: 0fe2 bf 0x3e94 // 3e94 <__muldf3+0xf8> + 3ed2: 9822 ld.w r1, (r14, 0x8) + 3ed4: b838 st.w r1, (r14, 0x60) + 3ed6: 30ff movi r0, 255 + 3ed8: 3100 movi r1, 0 + 3eda: 6808 and r0, r2 + 3edc: 684c and r1, r3 + 3ede: 3480 movi r4, 128 + 3ee0: 6502 cmpne r0, r4 + 3ee2: 0c37 bf 0x3f50 // 3f50 <__muldf3+0x1b4> + 3ee4: b859 st.w r2, (r14, 0x64) + 3ee6: b87a st.w r3, (r14, 0x68) + 3ee8: 3303 movi r3, 3 + 3eea: b876 st.w r3, (r14, 0x58) + 3eec: 1816 addi r0, r14, 88 + 3eee: e0000363 bsr 0x45b4 // 45b4 <__pack_d> + 3ef2: 141b addi r14, r14, 108 + 3ef4: 1494 pop r4-r7, r15 + 3ef6: 3b42 cmpnei r3, 2 + 3ef8: 0c42 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3efa: 9872 ld.w r3, (r14, 0x48) + 3efc: 984d ld.w r2, (r14, 0x34) + 3efe: 64ca cmpne r2, r3 + 3f00: 3300 movi r3, 0 + 3f02: 60cd addc r3, r3 + 3f04: 1811 addi r0, r14, 68 + 3f06: b872 st.w r3, (r14, 0x48) + 3f08: e0000356 bsr 0x45b4 // 45b4 <__pack_d> + 3f0c: 141b addi r14, r14, 108 + 3f0e: 1494 pop r4-r7, r15 + 3f10: 3a42 cmpnei r2, 2 + 3f12: 0c35 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3f14: 984d ld.w r2, (r14, 0x34) + 3f16: 9872 ld.w r3, (r14, 0x48) + 3f18: 64ca cmpne r2, r3 + 3f1a: 3300 movi r3, 0 + 3f1c: 60cd addc r3, r3 + 3f1e: 180c addi r0, r14, 48 + 3f20: b86d st.w r3, (r14, 0x34) + 3f22: e0000349 bsr 0x45b4 // 45b4 <__pack_d> + 3f26: 141b addi r14, r14, 108 + 3f28: 1494 pop r4-r7, r15 + 3f2a: 6498 cmphs r6, r2 + 3f2c: 0b94 bt 0x3e54 // 3e54 <__muldf3+0xb8> + 3f2e: 9882 ld.w r4, (r14, 0x8) + 3f30: 98a3 ld.w r5, (r14, 0xc) + 3f32: 3201 movi r2, 1 + 3f34: 3300 movi r3, 0 + 3f36: 6511 cmplt r4, r4 + 3f38: 6109 addc r4, r2 + 3f3a: 614d addc r5, r3 + 3f3c: b882 st.w r4, (r14, 0x8) + 3f3e: b8a3 st.w r5, (r14, 0xc) + 3f40: 078a br 0x3e54 // 3e54 <__muldf3+0xb8> + 3f42: 6580 cmphs r0, r6 + 3f44: 0b73 bt 0x3e2a // 3e2a <__muldf3+0x8e> + 3f46: 3300 movi r3, 0 + 3f48: 3401 movi r4, 1 + 3f4a: b862 st.w r3, (r14, 0x8) + 3f4c: b883 st.w r4, (r14, 0xc) + 3f4e: 0772 br 0x3e32 // 3e32 <__muldf3+0x96> + 3f50: 3940 cmpnei r1, 0 + 3f52: 0bc9 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f54: 3180 movi r1, 128 + 3f56: 4121 lsli r1, r1, 1 + 3f58: 6848 and r1, r2 + 3f5a: 3940 cmpnei r1, 0 + 3f5c: 0bc4 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f5e: 6c5b mov r1, r6 + 3f60: 6c5c or r1, r7 + 3f62: 3940 cmpnei r1, 0 + 3f64: 0fc0 bf 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f66: 3080 movi r0, 128 + 3f68: 3100 movi r1, 0 + 3f6a: 6401 cmplt r0, r0 + 3f6c: 6009 addc r0, r2 + 3f6e: 604d addc r1, r3 + 3f70: 34ff movi r4, 255 + 3f72: 6d43 mov r5, r0 + 3f74: 6951 andn r5, r4 + 3f76: 6c97 mov r2, r5 + 3f78: 6cc7 mov r3, r1 + 3f7a: 07b5 br 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f7c: 1013 lrw r0, 0xab88 // 3fc8 <__muldf3+0x22c> + 3f7e: 07b8 br 0x3eee // 3eee <__muldf3+0x152> + 3f80: 1033 lrw r1, 0xfffffff // 3fcc <__muldf3+0x230> + 3f82: 64c4 cmphs r1, r3 + 3f84: 0fa9 bf 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3f86: 2402 addi r4, 3 + 3f88: b822 st.w r1, (r14, 0x8) + 3f8a: 4a1f lsri r0, r2, 31 + 3f8c: 4321 lsli r1, r3, 1 + 3f8e: 42a1 lsli r5, r2, 1 + 3f90: 6c04 or r0, r1 + 3f92: 3fdf btsti r7, 31 + 3f94: b880 st.w r4, (r14, 0x0) + 3f96: 6c97 mov r2, r5 + 3f98: 6cc3 mov r3, r0 + 3f9a: 0c07 bf 0x3fa8 // 3fa8 <__muldf3+0x20c> + 3f9c: 3001 movi r0, 1 + 3f9e: 3100 movi r1, 0 + 3fa0: 6c08 or r0, r2 + 3fa2: 6c4c or r1, r3 + 3fa4: 6c83 mov r2, r0 + 3fa6: 6cc7 mov r3, r1 + 3fa8: 4721 lsli r1, r7, 1 + 3faa: 4e1f lsri r0, r6, 31 + 3fac: 6c04 or r0, r1 + 3fae: 9822 ld.w r1, (r14, 0x8) + 3fb0: 46a1 lsli r5, r6, 1 + 3fb2: 64c4 cmphs r1, r3 + 3fb4: 6d97 mov r6, r5 + 3fb6: 6dc3 mov r7, r0 + 3fb8: 2c00 subi r4, 1 + 3fba: 0be8 bt 0x3f8a // 3f8a <__muldf3+0x1ee> + 3fbc: 9820 ld.w r1, (r14, 0x0) + 3fbe: b838 st.w r1, (r14, 0x60) + 3fc0: 078b br 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3fc2: 0000 bkpt + 3fc4: 1fffffff .long 0x1fffffff + 3fc8: 0000ab88 .long 0x0000ab88 + 3fcc: 0fffffff .long 0x0fffffff + +00003fd0 <__divdf3>: + 3fd0: 14d4 push r4-r7, r15 + 3fd2: 1432 subi r14, r14, 72 + 3fd4: b804 st.w r0, (r14, 0x10) + 3fd6: b825 st.w r1, (r14, 0x14) + 3fd8: 1804 addi r0, r14, 16 + 3fda: 1908 addi r1, r14, 32 + 3fdc: b867 st.w r3, (r14, 0x1c) + 3fde: b846 st.w r2, (r14, 0x18) + 3fe0: e00003b8 bsr 0x4750 // 4750 <__unpack_d> + 3fe4: 190d addi r1, r14, 52 + 3fe6: 1806 addi r0, r14, 24 + 3fe8: e00003b4 bsr 0x4750 // 4750 <__unpack_d> + 3fec: 9868 ld.w r3, (r14, 0x20) + 3fee: 3b01 cmphsi r3, 2 + 3ff0: 0c66 bf 0x40bc // 40bc <__divdf3+0xec> + 3ff2: 982d ld.w r1, (r14, 0x34) + 3ff4: 3901 cmphsi r1, 2 + 3ff6: 0c92 bf 0x411a // 411a <__divdf3+0x14a> + 3ff8: 9849 ld.w r2, (r14, 0x24) + 3ffa: 980e ld.w r0, (r14, 0x38) + 3ffc: 6c81 xor r2, r0 + 3ffe: 3b44 cmpnei r3, 4 + 4000: b849 st.w r2, (r14, 0x24) + 4002: 0c62 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4004: 3b42 cmpnei r3, 2 + 4006: 0c60 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4008: 3944 cmpnei r1, 4 + 400a: 0c62 bf 0x40ce // 40ce <__divdf3+0xfe> + 400c: 3942 cmpnei r1, 2 + 400e: 0c82 bf 0x4112 // 4112 <__divdf3+0x142> + 4010: 982a ld.w r1, (r14, 0x28) + 4012: 986f ld.w r3, (r14, 0x3c) + 4014: 604e subu r1, r3 + 4016: 9890 ld.w r4, (r14, 0x40) + 4018: 98b1 ld.w r5, (r14, 0x44) + 401a: 984b ld.w r2, (r14, 0x2c) + 401c: 986c ld.w r3, (r14, 0x30) + 401e: 654c cmphs r3, r5 + 4020: b82a st.w r1, (r14, 0x28) + 4022: 6d93 mov r6, r4 + 4024: 6dd7 mov r7, r5 + 4026: 0c05 bf 0x4030 // 4030 <__divdf3+0x60> + 4028: 64d6 cmpne r5, r3 + 402a: 080b bt 0x4040 // 4040 <__divdf3+0x70> + 402c: 6508 cmphs r2, r4 + 402e: 0809 bt 0x4040 // 4040 <__divdf3+0x70> + 4030: 4a9f lsri r4, r2, 31 + 4032: 4301 lsli r0, r3, 1 + 4034: 42a1 lsli r5, r2, 1 + 4036: 6d00 or r4, r0 + 4038: 2900 subi r1, 1 + 403a: 6c97 mov r2, r5 + 403c: 6cd3 mov r3, r4 + 403e: b82a st.w r1, (r14, 0x28) + 4040: 3000 movi r0, 0 + 4042: 3100 movi r1, 0 + 4044: b802 st.w r0, (r14, 0x8) + 4046: b823 st.w r1, (r14, 0xc) + 4048: 3180 movi r1, 128 + 404a: 343d movi r4, 61 + 404c: 3000 movi r0, 0 + 404e: 4135 lsli r1, r1, 21 + 4050: b8c0 st.w r6, (r14, 0x0) + 4052: b8e1 st.w r7, (r14, 0x4) + 4054: 98a0 ld.w r5, (r14, 0x0) + 4056: 98c1 ld.w r6, (r14, 0x4) + 4058: 658c cmphs r3, r6 + 405a: 0c10 bf 0x407a // 407a <__divdf3+0xaa> + 405c: 64da cmpne r6, r3 + 405e: 0803 bt 0x4064 // 4064 <__divdf3+0x94> + 4060: 6548 cmphs r2, r5 + 4062: 0c0c bf 0x407a // 407a <__divdf3+0xaa> + 4064: 98a2 ld.w r5, (r14, 0x8) + 4066: 98c3 ld.w r6, (r14, 0xc) + 4068: 6d40 or r5, r0 + 406a: 6d84 or r6, r1 + 406c: b8a2 st.w r5, (r14, 0x8) + 406e: b8c3 st.w r6, (r14, 0xc) + 4070: 98a0 ld.w r5, (r14, 0x0) + 4072: 98c1 ld.w r6, (r14, 0x4) + 4074: 6488 cmphs r2, r2 + 4076: 6097 subc r2, r5 + 4078: 60db subc r3, r6 + 407a: 41bf lsli r5, r1, 31 + 407c: 48e1 lsri r7, r0, 1 + 407e: 6d97 mov r6, r5 + 4080: 49a1 lsri r5, r1, 1 + 4082: 6d9c or r6, r7 + 4084: 6c57 mov r1, r5 + 4086: 4abf lsri r5, r2, 31 + 4088: 6c1b mov r0, r6 + 408a: 2c00 subi r4, 1 + 408c: 6d97 mov r6, r5 + 408e: 43a1 lsli r5, r3, 1 + 4090: 6d94 or r6, r5 + 4092: 4261 lsli r3, r2, 1 + 4094: 3c40 cmpnei r4, 0 + 4096: 6dcf mov r7, r3 + 4098: 6c8f mov r2, r3 + 409a: 6cdb mov r3, r6 + 409c: 0bdc bt 0x4054 // 4054 <__divdf3+0x84> + 409e: 30ff movi r0, 255 + 40a0: 3100 movi r1, 0 + 40a2: 9882 ld.w r4, (r14, 0x8) + 40a4: 98a3 ld.w r5, (r14, 0xc) + 40a6: 6900 and r4, r0 + 40a8: 6944 and r5, r1 + 40aa: 6c13 mov r0, r4 + 40ac: 6c57 mov r1, r5 + 40ae: 3480 movi r4, 128 + 40b0: 6502 cmpne r0, r4 + 40b2: 0c15 bf 0x40dc // 40dc <__divdf3+0x10c> + 40b4: 9862 ld.w r3, (r14, 0x8) + 40b6: 9883 ld.w r4, (r14, 0xc) + 40b8: b86b st.w r3, (r14, 0x2c) + 40ba: b88c st.w r4, (r14, 0x30) + 40bc: 1808 addi r0, r14, 32 + 40be: e000027b bsr 0x45b4 // 45b4 <__pack_d> + 40c2: 1412 addi r14, r14, 72 + 40c4: 1494 pop r4-r7, r15 + 40c6: 644e cmpne r3, r1 + 40c8: 0bfa bt 0x40bc // 40bc <__divdf3+0xec> + 40ca: 1016 lrw r0, 0xab88 // 4120 <__divdf3+0x150> + 40cc: 07f9 br 0x40be // 40be <__divdf3+0xee> + 40ce: 3300 movi r3, 0 + 40d0: 3400 movi r4, 0 + 40d2: b86b st.w r3, (r14, 0x2c) + 40d4: b88c st.w r4, (r14, 0x30) + 40d6: b86a st.w r3, (r14, 0x28) + 40d8: 1808 addi r0, r14, 32 + 40da: 07f2 br 0x40be // 40be <__divdf3+0xee> + 40dc: 3940 cmpnei r1, 0 + 40de: 0beb bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40e0: 3180 movi r1, 128 + 40e2: 4121 lsli r1, r1, 1 + 40e4: 9882 ld.w r4, (r14, 0x8) + 40e6: 98a3 ld.w r5, (r14, 0xc) + 40e8: 6850 and r1, r4 + 40ea: 3940 cmpnei r1, 0 + 40ec: 0be4 bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40ee: 6c98 or r2, r6 + 40f0: 3a40 cmpnei r2, 0 + 40f2: 0fe1 bf 0x40b4 // 40b4 <__divdf3+0xe4> + 40f4: 3280 movi r2, 128 + 40f6: 3300 movi r3, 0 + 40f8: 6c13 mov r0, r4 + 40fa: 6c57 mov r1, r5 + 40fc: 6401 cmplt r0, r0 + 40fe: 6009 addc r0, r2 + 4100: 604d addc r1, r3 + 4102: 6c83 mov r2, r0 + 4104: 6cc7 mov r3, r1 + 4106: 6c0b mov r0, r2 + 4108: 31ff movi r1, 255 + 410a: 6805 andn r0, r1 + 410c: b802 st.w r0, (r14, 0x8) + 410e: b863 st.w r3, (r14, 0xc) + 4110: 07d2 br 0x40b4 // 40b4 <__divdf3+0xe4> + 4112: 3304 movi r3, 4 + 4114: b868 st.w r3, (r14, 0x20) + 4116: 1808 addi r0, r14, 32 + 4118: 07d3 br 0x40be // 40be <__divdf3+0xee> + 411a: 180d addi r0, r14, 52 + 411c: 07d1 br 0x40be // 40be <__divdf3+0xee> + 411e: 0000 bkpt + 4120: 0000ab88 .long 0x0000ab88 + +00004124 <__gtdf2>: + 4124: 14d0 push r15 + 4126: 142e subi r14, r14, 56 + 4128: b800 st.w r0, (r14, 0x0) + 412a: b821 st.w r1, (r14, 0x4) + 412c: 6c3b mov r0, r14 + 412e: 1904 addi r1, r14, 16 + 4130: b863 st.w r3, (r14, 0xc) + 4132: b842 st.w r2, (r14, 0x8) + 4134: e000030e bsr 0x4750 // 4750 <__unpack_d> + 4138: 1909 addi r1, r14, 36 + 413a: 1802 addi r0, r14, 8 + 413c: e000030a bsr 0x4750 // 4750 <__unpack_d> + 4140: 9864 ld.w r3, (r14, 0x10) + 4142: 3b01 cmphsi r3, 2 + 4144: 0c0a bf 0x4158 // 4158 <__gtdf2+0x34> + 4146: 9869 ld.w r3, (r14, 0x24) + 4148: 3b01 cmphsi r3, 2 + 414a: 0c07 bf 0x4158 // 4158 <__gtdf2+0x34> + 414c: 1909 addi r1, r14, 36 + 414e: 1804 addi r0, r14, 16 + 4150: e0000362 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4154: 140e addi r14, r14, 56 + 4156: 1490 pop r15 + 4158: 3000 movi r0, 0 + 415a: 2800 subi r0, 1 + 415c: 140e addi r14, r14, 56 + 415e: 1490 pop r15 + +00004160 <__gedf2>: + 4160: 14d0 push r15 + 4162: 142e subi r14, r14, 56 + 4164: b800 st.w r0, (r14, 0x0) + 4166: b821 st.w r1, (r14, 0x4) + 4168: 6c3b mov r0, r14 + 416a: 1904 addi r1, r14, 16 + 416c: b863 st.w r3, (r14, 0xc) + 416e: b842 st.w r2, (r14, 0x8) + 4170: e00002f0 bsr 0x4750 // 4750 <__unpack_d> + 4174: 1909 addi r1, r14, 36 + 4176: 1802 addi r0, r14, 8 + 4178: e00002ec bsr 0x4750 // 4750 <__unpack_d> + 417c: 9864 ld.w r3, (r14, 0x10) + 417e: 3b01 cmphsi r3, 2 + 4180: 0c0a bf 0x4194 // 4194 <__gedf2+0x34> + 4182: 9869 ld.w r3, (r14, 0x24) + 4184: 3b01 cmphsi r3, 2 + 4186: 0c07 bf 0x4194 // 4194 <__gedf2+0x34> + 4188: 1909 addi r1, r14, 36 + 418a: 1804 addi r0, r14, 16 + 418c: e0000344 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4190: 140e addi r14, r14, 56 + 4192: 1490 pop r15 + 4194: 3000 movi r0, 0 + 4196: 2800 subi r0, 1 + 4198: 140e addi r14, r14, 56 + 419a: 1490 pop r15 + +0000419c <__ledf2>: + 419c: 14d0 push r15 + 419e: 142e subi r14, r14, 56 + 41a0: b800 st.w r0, (r14, 0x0) + 41a2: b821 st.w r1, (r14, 0x4) + 41a4: 6c3b mov r0, r14 + 41a6: 1904 addi r1, r14, 16 + 41a8: b863 st.w r3, (r14, 0xc) + 41aa: b842 st.w r2, (r14, 0x8) + 41ac: e00002d2 bsr 0x4750 // 4750 <__unpack_d> + 41b0: 1909 addi r1, r14, 36 + 41b2: 1802 addi r0, r14, 8 + 41b4: e00002ce bsr 0x4750 // 4750 <__unpack_d> + 41b8: 9864 ld.w r3, (r14, 0x10) + 41ba: 3b01 cmphsi r3, 2 + 41bc: 0c0a bf 0x41d0 // 41d0 <__ledf2+0x34> + 41be: 9869 ld.w r3, (r14, 0x24) + 41c0: 3b01 cmphsi r3, 2 + 41c2: 0c07 bf 0x41d0 // 41d0 <__ledf2+0x34> + 41c4: 1909 addi r1, r14, 36 + 41c6: 1804 addi r0, r14, 16 + 41c8: e0000326 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 41cc: 140e addi r14, r14, 56 + 41ce: 1490 pop r15 + 41d0: 3001 movi r0, 1 + 41d2: 140e addi r14, r14, 56 + 41d4: 1490 pop r15 + ... + +000041d8 <__floatsidf>: + 41d8: 14d1 push r4, r15 + 41da: 1425 subi r14, r14, 20 + 41dc: 3303 movi r3, 3 + 41de: b860 st.w r3, (r14, 0x0) + 41e0: 3840 cmpnei r0, 0 + 41e2: 487f lsri r3, r0, 31 + 41e4: b861 st.w r3, (r14, 0x4) + 41e6: 0808 bt 0x41f6 // 41f6 <__floatsidf+0x1e> + 41e8: 3302 movi r3, 2 + 41ea: b860 st.w r3, (r14, 0x0) + 41ec: 6c3b mov r0, r14 + 41ee: e00001e3 bsr 0x45b4 // 45b4 <__pack_d> + 41f2: 1405 addi r14, r14, 20 + 41f4: 1491 pop r4, r15 + 41f6: 38df btsti r0, 31 + 41f8: 0812 bt 0x421c // 421c <__floatsidf+0x44> + 41fa: 6d03 mov r4, r0 + 41fc: 6c13 mov r0, r4 + 41fe: e00000d5 bsr 0x43a8 // 43a8 <__clzsi2> + 4202: 321d movi r2, 29 + 4204: 6080 addu r2, r0 + 4206: 2802 subi r0, 3 + 4208: 38df btsti r0, 31 + 420a: 0810 bt 0x422a // 422a <__floatsidf+0x52> + 420c: 7100 lsl r4, r0 + 420e: 3300 movi r3, 0 + 4210: b884 st.w r4, (r14, 0x10) + 4212: b863 st.w r3, (r14, 0xc) + 4214: 333c movi r3, 60 + 4216: 60ca subu r3, r2 + 4218: b862 st.w r3, (r14, 0x8) + 421a: 07e9 br 0x41ec // 41ec <__floatsidf+0x14> + 421c: 3380 movi r3, 128 + 421e: 4378 lsli r3, r3, 24 + 4220: 64c2 cmpne r0, r3 + 4222: 0c0d bf 0x423c // 423c <__floatsidf+0x64> + 4224: 3400 movi r4, 0 + 4226: 6102 subu r4, r0 + 4228: 07ea br 0x41fc // 41fc <__floatsidf+0x24> + 422a: 311f movi r1, 31 + 422c: 4c61 lsri r3, r4, 1 + 422e: 604a subu r1, r2 + 4230: 6c13 mov r0, r4 + 4232: 70c5 lsr r3, r1 + 4234: 7008 lsl r0, r2 + 4236: b864 st.w r3, (r14, 0x10) + 4238: b803 st.w r0, (r14, 0xc) + 423a: 07ed br 0x4214 // 4214 <__floatsidf+0x3c> + 423c: 3000 movi r0, 0 + 423e: 1022 lrw r1, 0xc1e00000 // 4244 <__floatsidf+0x6c> + 4240: 07d9 br 0x41f2 // 41f2 <__floatsidf+0x1a> + 4242: 0000 bkpt + 4244: c1e00000 .long 0xc1e00000 + +00004248 <__fixdfsi>: + 4248: 14d0 push r15 + 424a: 1427 subi r14, r14, 28 + 424c: b800 st.w r0, (r14, 0x0) + 424e: b821 st.w r1, (r14, 0x4) + 4250: 6c3b mov r0, r14 + 4252: 1902 addi r1, r14, 8 + 4254: e000027e bsr 0x4750 // 4750 <__unpack_d> + 4258: 9862 ld.w r3, (r14, 0x8) + 425a: 3b02 cmphsi r3, 3 + 425c: 0c20 bf 0x429c // 429c <__fixdfsi+0x54> + 425e: 3b44 cmpnei r3, 4 + 4260: 0c16 bf 0x428c // 428c <__fixdfsi+0x44> + 4262: 9864 ld.w r3, (r14, 0x10) + 4264: 3bdf btsti r3, 31 + 4266: 081b bt 0x429c // 429c <__fixdfsi+0x54> + 4268: 3b3e cmplti r3, 31 + 426a: 0c11 bf 0x428c // 428c <__fixdfsi+0x44> + 426c: 323c movi r2, 60 + 426e: 5a6d subu r3, r2, r3 + 4270: 3200 movi r2, 0 + 4272: 2a1f subi r2, 32 + 4274: 608c addu r2, r3 + 4276: 3adf btsti r2, 31 + 4278: 0815 bt 0x42a2 // 42a2 <__fixdfsi+0x5a> + 427a: 9806 ld.w r0, (r14, 0x18) + 427c: 7009 lsr r0, r2 + 427e: 9863 ld.w r3, (r14, 0xc) + 4280: 3b40 cmpnei r3, 0 + 4282: 0c0b bf 0x4298 // 4298 <__fixdfsi+0x50> + 4284: 3300 movi r3, 0 + 4286: 5b01 subu r0, r3, r0 + 4288: 1407 addi r14, r14, 28 + 428a: 1490 pop r15 + 428c: 9863 ld.w r3, (r14, 0xc) + 428e: 3b40 cmpnei r3, 0 + 4290: 3000 movi r0, 0 + 4292: 6001 addc r0, r0 + 4294: 1068 lrw r3, 0x7fffffff // 42b4 <__fixdfsi+0x6c> + 4296: 600c addu r0, r3 + 4298: 1407 addi r14, r14, 28 + 429a: 1490 pop r15 + 429c: 3000 movi r0, 0 + 429e: 1407 addi r14, r14, 28 + 42a0: 1490 pop r15 + 42a2: 9846 ld.w r2, (r14, 0x18) + 42a4: 311f movi r1, 31 + 42a6: 4241 lsli r2, r2, 1 + 42a8: 604e subu r1, r3 + 42aa: 9805 ld.w r0, (r14, 0x14) + 42ac: 7084 lsl r2, r1 + 42ae: 700d lsr r0, r3 + 42b0: 6c08 or r0, r2 + 42b2: 07e6 br 0x427e // 427e <__fixdfsi+0x36> + 42b4: 7fffffff .long 0x7fffffff + +000042b8 <__make_dp>: + 42b8: 1421 subi r14, r14, 4 + 42ba: 14d1 push r4, r15 + 42bc: 1425 subi r14, r14, 20 + 42be: b867 st.w r3, (r14, 0x1c) + 42c0: 9867 ld.w r3, (r14, 0x1c) + 42c2: 9888 ld.w r4, (r14, 0x20) + 42c4: b800 st.w r0, (r14, 0x0) + 42c6: 6c3b mov r0, r14 + 42c8: b821 st.w r1, (r14, 0x4) + 42ca: b842 st.w r2, (r14, 0x8) + 42cc: b863 st.w r3, (r14, 0xc) + 42ce: b884 st.w r4, (r14, 0x10) + 42d0: e0000172 bsr 0x45b4 // 45b4 <__pack_d> + 42d4: 1405 addi r14, r14, 20 + 42d6: d9ee2001 ld.w r15, (r14, 0x4) + 42da: 9880 ld.w r4, (r14, 0x0) + 42dc: 1403 addi r14, r14, 12 + 42de: 783c jmp r15 + +000042e0 <__truncdfsf2>: + 42e0: 14d0 push r15 + 42e2: 1427 subi r14, r14, 28 + 42e4: b800 st.w r0, (r14, 0x0) + 42e6: b821 st.w r1, (r14, 0x4) + 42e8: 6c3b mov r0, r14 + 42ea: 1902 addi r1, r14, 8 + 42ec: e0000232 bsr 0x4750 // 4750 <__unpack_d> + 42f0: 9845 ld.w r2, (r14, 0x14) + 42f2: 4a3e lsri r1, r2, 30 + 42f4: 9866 ld.w r3, (r14, 0x18) + 42f6: 4242 lsli r2, r2, 2 + 42f8: 4362 lsli r3, r3, 2 + 42fa: 3a40 cmpnei r2, 0 + 42fc: 6cc4 or r3, r1 + 42fe: 0c02 bf 0x4302 // 4302 <__truncdfsf2+0x22> + 4300: 3ba0 bseti r3, 0 + 4302: 9844 ld.w r2, (r14, 0x10) + 4304: 9823 ld.w r1, (r14, 0xc) + 4306: 9802 ld.w r0, (r14, 0x8) + 4308: e000014a bsr 0x459c // 459c <__make_fp> + 430c: 1407 addi r14, r14, 28 + 430e: 1490 pop r15 + +00004310 <__floatunsidf>: + 4310: 14d2 push r4-r5, r15 + 4312: 1425 subi r14, r14, 20 + 4314: 3840 cmpnei r0, 0 + 4316: 3500 movi r5, 0 + 4318: 6d03 mov r4, r0 + 431a: b8a1 st.w r5, (r14, 0x4) + 431c: 0c15 bf 0x4346 // 4346 <__floatunsidf+0x36> + 431e: 3303 movi r3, 3 + 4320: b860 st.w r3, (r14, 0x0) + 4322: e0000043 bsr 0x43a8 // 43a8 <__clzsi2> + 4326: 321d movi r2, 29 + 4328: 6080 addu r2, r0 + 432a: 2802 subi r0, 3 + 432c: 38df btsti r0, 31 + 432e: 0813 bt 0x4354 // 4354 <__floatunsidf+0x44> + 4330: 7100 lsl r4, r0 + 4332: b884 st.w r4, (r14, 0x10) + 4334: b8a3 st.w r5, (r14, 0xc) + 4336: 333c movi r3, 60 + 4338: 60ca subu r3, r2 + 433a: 6c3b mov r0, r14 + 433c: b862 st.w r3, (r14, 0x8) + 433e: e000013b bsr 0x45b4 // 45b4 <__pack_d> + 4342: 1405 addi r14, r14, 20 + 4344: 1492 pop r4-r5, r15 + 4346: 3302 movi r3, 2 + 4348: 6c3b mov r0, r14 + 434a: b860 st.w r3, (r14, 0x0) + 434c: e0000134 bsr 0x45b4 // 45b4 <__pack_d> + 4350: 1405 addi r14, r14, 20 + 4352: 1492 pop r4-r5, r15 + 4354: 311f movi r1, 31 + 4356: 4c61 lsri r3, r4, 1 + 4358: 604a subu r1, r2 + 435a: 70c5 lsr r3, r1 + 435c: 7108 lsl r4, r2 + 435e: b864 st.w r3, (r14, 0x10) + 4360: b883 st.w r4, (r14, 0xc) + 4362: 07ea br 0x4336 // 4336 <__floatunsidf+0x26> + +00004364 <__muldi3>: + 4364: 14c4 push r4-r7 + 4366: 1421 subi r14, r14, 4 + 4368: 7501 zexth r4, r0 + 436a: 48b0 lsri r5, r0, 16 + 436c: 75c9 zexth r7, r2 + 436e: 6d83 mov r6, r0 + 4370: b820 st.w r1, (r14, 0x0) + 4372: 6c13 mov r0, r4 + 4374: 4a30 lsri r1, r2, 16 + 4376: 7c1c mult r0, r7 + 4378: 7d04 mult r4, r1 + 437a: 7dd4 mult r7, r5 + 437c: 611c addu r4, r7 + 437e: 7d44 mult r5, r1 + 4380: 4830 lsri r1, r0, 16 + 4382: 6104 addu r4, r1 + 4384: 65d0 cmphs r4, r7 + 4386: 0804 bt 0x438e // 438e <__muldi3+0x2a> + 4388: 3180 movi r1, 128 + 438a: 4129 lsli r1, r1, 9 + 438c: 6144 addu r5, r1 + 438e: 4c30 lsri r1, r4, 16 + 4390: 7cd8 mult r3, r6 + 4392: 6144 addu r5, r1 + 4394: 6c4f mov r1, r3 + 4396: 9860 ld.w r3, (r14, 0x0) + 4398: 7cc8 mult r3, r2 + 439a: 4490 lsli r4, r4, 16 + 439c: 604c addu r1, r3 + 439e: 7401 zexth r0, r0 + 43a0: 6010 addu r0, r4 + 43a2: 6054 addu r1, r5 + 43a4: 1401 addi r14, r14, 4 + 43a6: 1484 pop r4-r7 + +000043a8 <__clzsi2>: + 43a8: 106d lrw r3, 0xffff // 43dc <__clzsi2+0x34> + 43aa: 640c cmphs r3, r0 + 43ac: 0c07 bf 0x43ba // 43ba <__clzsi2+0x12> + 43ae: 33ff movi r3, 255 + 43b0: 640c cmphs r3, r0 + 43b2: 0c0f bf 0x43d0 // 43d0 <__clzsi2+0x28> + 43b4: 3320 movi r3, 32 + 43b6: 3200 movi r2, 0 + 43b8: 0406 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43ba: 106a lrw r3, 0xffffff // 43e0 <__clzsi2+0x38> + 43bc: 640c cmphs r3, r0 + 43be: 080c bt 0x43d6 // 43d6 <__clzsi2+0x2e> + 43c0: 3308 movi r3, 8 + 43c2: 3218 movi r2, 24 + 43c4: 7009 lsr r0, r2 + 43c6: 1048 lrw r2, 0xab9c // 43e4 <__clzsi2+0x3c> + 43c8: 6008 addu r0, r2 + 43ca: 8040 ld.b r2, (r0, 0x0) + 43cc: 5b09 subu r0, r3, r2 + 43ce: 783c jmp r15 + 43d0: 3318 movi r3, 24 + 43d2: 3208 movi r2, 8 + 43d4: 07f8 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43d6: 3310 movi r3, 16 + 43d8: 3210 movi r2, 16 + 43da: 07f5 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43dc: 0000ffff .long 0x0000ffff + 43e0: 00ffffff .long 0x00ffffff + 43e4: 0000ab9c .long 0x0000ab9c + +000043e8 <__pack_f>: + 43e8: 14c2 push r4-r5 + 43ea: 9040 ld.w r2, (r0, 0x0) + 43ec: 3a01 cmphsi r2, 2 + 43ee: 9063 ld.w r3, (r0, 0xc) + 43f0: 9021 ld.w r1, (r0, 0x4) + 43f2: 0c27 bf 0x4440 // 4440 <__pack_f+0x58> + 43f4: 3a44 cmpnei r2, 4 + 43f6: 0c22 bf 0x443a // 443a <__pack_f+0x52> + 43f8: 3a42 cmpnei r2, 2 + 43fa: 0c1d bf 0x4434 // 4434 <__pack_f+0x4c> + 43fc: 3b40 cmpnei r3, 0 + 43fe: 0c1b bf 0x4434 // 4434 <__pack_f+0x4c> + 4400: 3400 movi r4, 0 + 4402: 9042 ld.w r2, (r0, 0x8) + 4404: 2c7d subi r4, 126 + 4406: 6509 cmplt r2, r4 + 4408: 082a bt 0x445c // 445c <__pack_f+0x74> + 440a: 347f movi r4, 127 + 440c: 6491 cmplt r4, r2 + 440e: 0816 bt 0x443a // 443a <__pack_f+0x52> + 4410: 690c and r4, r3 + 4412: 3540 movi r5, 64 + 4414: 6552 cmpne r4, r5 + 4416: 0c1a bf 0x444a // 444a <__pack_f+0x62> + 4418: 233e addi r3, 63 + 441a: 3bdf btsti r3, 31 + 441c: 081d bt 0x4456 // 4456 <__pack_f+0x6e> + 441e: 227e addi r2, 127 + 4420: 4302 lsli r0, r3, 2 + 4422: 4809 lsri r0, r0, 9 + 4424: 74c8 zextb r3, r2 + 4426: 4009 lsli r0, r0, 9 + 4428: 4377 lsli r3, r3, 23 + 442a: 4809 lsri r0, r0, 9 + 442c: 413f lsli r1, r1, 31 + 442e: 6c0c or r0, r3 + 4430: 6c04 or r0, r1 + 4432: 1482 pop r4-r5 + 4434: 3300 movi r3, 0 + 4436: 3000 movi r0, 0 + 4438: 07f7 br 0x4426 // 4426 <__pack_f+0x3e> + 443a: 33ff movi r3, 255 + 443c: 3000 movi r0, 0 + 443e: 07f4 br 0x4426 // 4426 <__pack_f+0x3e> + 4440: 4303 lsli r0, r3, 3 + 4442: 480a lsri r0, r0, 10 + 4444: 38b6 bseti r0, 22 + 4446: 33ff movi r3, 255 + 4448: 07ef br 0x4426 // 4426 <__pack_f+0x3e> + 444a: 3080 movi r0, 128 + 444c: 680c and r0, r3 + 444e: 3840 cmpnei r0, 0 + 4450: 0fe5 bf 0x441a // 441a <__pack_f+0x32> + 4452: 60d0 addu r3, r4 + 4454: 07e3 br 0x441a // 441a <__pack_f+0x32> + 4456: 4b61 lsri r3, r3, 1 + 4458: 227f addi r2, 128 + 445a: 07e3 br 0x4420 // 4420 <__pack_f+0x38> + 445c: 610a subu r4, r2 + 445e: 3c39 cmplti r4, 26 + 4460: 0fea bf 0x4434 // 4434 <__pack_f+0x4c> + 4462: 3201 movi r2, 1 + 4464: 7090 lsl r2, r4 + 4466: 2a00 subi r2, 1 + 4468: 6c0f mov r0, r3 + 446a: 68c8 and r3, r2 + 446c: 3b40 cmpnei r3, 0 + 446e: 3300 movi r3, 0 + 4470: 7011 lsr r0, r4 + 4472: 60cd addc r3, r3 + 4474: 6cc0 or r3, r0 + 4476: 307f movi r0, 127 + 4478: 680c and r0, r3 + 447a: 3240 movi r2, 64 + 447c: 6482 cmpne r0, r2 + 447e: 080d bt 0x4498 // 4498 <__pack_f+0xb0> + 4480: 3280 movi r2, 128 + 4482: 688c and r2, r3 + 4484: 3a40 cmpnei r2, 0 + 4486: 0c02 bf 0x448a // 448a <__pack_f+0xa2> + 4488: 60c0 addu r3, r0 + 448a: 1045 lrw r2, 0x3fffffff // 449c <__pack_f+0xb4> + 448c: 64c8 cmphs r2, r3 + 448e: 4302 lsli r0, r3, 2 + 4490: 64c3 mvcv r3 + 4492: 4809 lsri r0, r0, 9 + 4494: 74cc zextb r3, r3 + 4496: 07c8 br 0x4426 // 4426 <__pack_f+0x3e> + 4498: 233e addi r3, 63 + 449a: 07f8 br 0x448a // 448a <__pack_f+0xa2> + 449c: 3fffffff .long 0x3fffffff + +000044a0 <__unpack_f>: + 44a0: 14c1 push r4 + 44a2: 8861 ld.h r3, (r0, 0x2) + 44a4: 4371 lsli r3, r3, 17 + 44a6: 9040 ld.w r2, (r0, 0x0) + 44a8: 4b78 lsri r3, r3, 24 + 44aa: 8003 ld.b r0, (r0, 0x3) + 44ac: 4249 lsli r2, r2, 9 + 44ae: 4807 lsri r0, r0, 7 + 44b0: 3b40 cmpnei r3, 0 + 44b2: 4a49 lsri r2, r2, 9 + 44b4: b101 st.w r0, (r1, 0x4) + 44b6: 0811 bt 0x44d8 // 44d8 <__unpack_f+0x38> + 44b8: 3a40 cmpnei r2, 0 + 44ba: 0c1a bf 0x44ee // 44ee <__unpack_f+0x4e> + 44bc: 3303 movi r3, 3 + 44be: b160 st.w r3, (r1, 0x0) + 44c0: 3300 movi r3, 0 + 44c2: 4247 lsli r2, r2, 7 + 44c4: 2b7e subi r3, 127 + 44c6: 1096 lrw r4, 0x3fffffff // 451c <__unpack_f+0x7c> + 44c8: 4241 lsli r2, r2, 1 + 44ca: 6490 cmphs r4, r2 + 44cc: 6c0f mov r0, r3 + 44ce: 2b00 subi r3, 1 + 44d0: 0bfc bt 0x44c8 // 44c8 <__unpack_f+0x28> + 44d2: b102 st.w r0, (r1, 0x8) + 44d4: b143 st.w r2, (r1, 0xc) + 44d6: 1481 pop r4 + 44d8: 30ff movi r0, 255 + 44da: 640e cmpne r3, r0 + 44dc: 0c0c bf 0x44f4 // 44f4 <__unpack_f+0x54> + 44de: 2b7e subi r3, 127 + 44e0: 4247 lsli r2, r2, 7 + 44e2: b162 st.w r3, (r1, 0x8) + 44e4: 3abe bseti r2, 30 + 44e6: 3303 movi r3, 3 + 44e8: b160 st.w r3, (r1, 0x0) + 44ea: b143 st.w r2, (r1, 0xc) + 44ec: 1481 pop r4 + 44ee: 3302 movi r3, 2 + 44f0: b160 st.w r3, (r1, 0x0) + 44f2: 1481 pop r4 + 44f4: 3a40 cmpnei r2, 0 + 44f6: 0c0d bf 0x4510 // 4510 <__unpack_f+0x70> + 44f8: 3380 movi r3, 128 + 44fa: 436f lsli r3, r3, 15 + 44fc: 68c8 and r3, r2 + 44fe: 3b40 cmpnei r3, 0 + 4500: 0c0b bf 0x4516 // 4516 <__unpack_f+0x76> + 4502: 3301 movi r3, 1 + 4504: b160 st.w r3, (r1, 0x0) + 4506: 1067 lrw r3, 0x2000007f // 4520 <__unpack_f+0x80> + 4508: 4247 lsli r2, r2, 7 + 450a: 688d andn r2, r3 + 450c: b143 st.w r2, (r1, 0xc) + 450e: 1481 pop r4 + 4510: 3304 movi r3, 4 + 4512: b160 st.w r3, (r1, 0x0) + 4514: 1481 pop r4 + 4516: b160 st.w r3, (r1, 0x0) + 4518: 07f7 br 0x4506 // 4506 <__unpack_f+0x66> + 451a: 0000 bkpt + 451c: 3fffffff .long 0x3fffffff + 4520: 2000007f .long 0x2000007f + +00004524 <__fpcmp_parts_f>: + 4524: 14c1 push r4 + 4526: 9060 ld.w r3, (r0, 0x0) + 4528: 3b01 cmphsi r3, 2 + 452a: 0c12 bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 452c: 9140 ld.w r2, (r1, 0x0) + 452e: 3a01 cmphsi r2, 2 + 4530: 0c0f bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 4532: 3b44 cmpnei r3, 4 + 4534: 0c17 bf 0x4562 // 4562 <__fpcmp_parts_f+0x3e> + 4536: 3a44 cmpnei r2, 4 + 4538: 0c0f bf 0x4556 // 4556 <__fpcmp_parts_f+0x32> + 453a: 3b42 cmpnei r3, 2 + 453c: 0c0b bf 0x4552 // 4552 <__fpcmp_parts_f+0x2e> + 453e: 3a42 cmpnei r2, 2 + 4540: 0c13 bf 0x4566 // 4566 <__fpcmp_parts_f+0x42> + 4542: 9061 ld.w r3, (r0, 0x4) + 4544: 9141 ld.w r2, (r1, 0x4) + 4546: 648e cmpne r3, r2 + 4548: 0c14 bf 0x4570 // 4570 <__fpcmp_parts_f+0x4c> + 454a: 3b40 cmpnei r3, 0 + 454c: 0808 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 454e: 3001 movi r0, 1 + 4550: 1481 pop r4 + 4552: 3a42 cmpnei r2, 2 + 4554: 0c1e bf 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4556: 9161 ld.w r3, (r1, 0x4) + 4558: 3b40 cmpnei r3, 0 + 455a: 0bfa bt 0x454e // 454e <__fpcmp_parts_f+0x2a> + 455c: 3000 movi r0, 0 + 455e: 2800 subi r0, 1 + 4560: 1481 pop r4 + 4562: 3a44 cmpnei r2, 4 + 4564: 0c18 bf 0x4594 // 4594 <__fpcmp_parts_f+0x70> + 4566: 9061 ld.w r3, (r0, 0x4) + 4568: 3b40 cmpnei r3, 0 + 456a: 0bf9 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 456c: 3001 movi r0, 1 + 456e: 07f1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4570: 9082 ld.w r4, (r0, 0x8) + 4572: 9142 ld.w r2, (r1, 0x8) + 4574: 6509 cmplt r2, r4 + 4576: 0bea bt 0x454a // 454a <__fpcmp_parts_f+0x26> + 4578: 6491 cmplt r4, r2 + 457a: 0807 bt 0x4588 // 4588 <__fpcmp_parts_f+0x64> + 457c: 9003 ld.w r0, (r0, 0xc) + 457e: 9143 ld.w r2, (r1, 0xc) + 4580: 6408 cmphs r2, r0 + 4582: 0fe4 bf 0x454a // 454a <__fpcmp_parts_f+0x26> + 4584: 6480 cmphs r0, r2 + 4586: 0805 bt 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4588: 3b40 cmpnei r3, 0 + 458a: 0fe9 bf 0x455c // 455c <__fpcmp_parts_f+0x38> + 458c: 3001 movi r0, 1 + 458e: 07e1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4590: 3000 movi r0, 0 + 4592: 1481 pop r4 + 4594: 9161 ld.w r3, (r1, 0x4) + 4596: 9041 ld.w r2, (r0, 0x4) + 4598: 5b09 subu r0, r3, r2 + 459a: 1481 pop r4 + +0000459c <__make_fp>: + 459c: 14d0 push r15 + 459e: 1424 subi r14, r14, 16 + 45a0: b800 st.w r0, (r14, 0x0) + 45a2: 6c3b mov r0, r14 + 45a4: b821 st.w r1, (r14, 0x4) + 45a6: b842 st.w r2, (r14, 0x8) + 45a8: b863 st.w r3, (r14, 0xc) + 45aa: e3ffff1f bsr 0x43e8 // 43e8 <__pack_f> + 45ae: 1404 addi r14, r14, 16 + 45b0: 1490 pop r15 + ... + +000045b4 <__pack_d>: + 45b4: 14c4 push r4-r7 + 45b6: 1422 subi r14, r14, 8 + 45b8: 9060 ld.w r3, (r0, 0x0) + 45ba: 3b01 cmphsi r3, 2 + 45bc: 90c3 ld.w r6, (r0, 0xc) + 45be: 90e4 ld.w r7, (r0, 0x10) + 45c0: 9021 ld.w r1, (r0, 0x4) + 45c2: 0c46 bf 0x464e // 464e <__pack_d+0x9a> + 45c4: 3b44 cmpnei r3, 4 + 45c6: 0c40 bf 0x4646 // 4646 <__pack_d+0x92> + 45c8: 3b42 cmpnei r3, 2 + 45ca: 0c27 bf 0x4618 // 4618 <__pack_d+0x64> + 45cc: 6cdb mov r3, r6 + 45ce: 6cdc or r3, r7 + 45d0: 3b40 cmpnei r3, 0 + 45d2: 0c23 bf 0x4618 // 4618 <__pack_d+0x64> + 45d4: 9062 ld.w r3, (r0, 0x8) + 45d6: 125a lrw r2, 0xfffffc02 // 473c <__pack_d+0x188> + 45d8: 648d cmplt r3, r2 + 45da: 0855 bt 0x4684 // 4684 <__pack_d+0xd0> + 45dc: 1259 lrw r2, 0x3ff // 4740 <__pack_d+0x18c> + 45de: 64c9 cmplt r2, r3 + 45e0: 0833 bt 0x4646 // 4646 <__pack_d+0x92> + 45e2: 34ff movi r4, 255 + 45e4: 3500 movi r5, 0 + 45e6: 6918 and r4, r6 + 45e8: 695c and r5, r7 + 45ea: 3280 movi r2, 128 + 45ec: 6492 cmpne r4, r2 + 45ee: 0c3f bf 0x466c // 466c <__pack_d+0xb8> + 45f0: 347f movi r4, 127 + 45f2: 3500 movi r5, 0 + 45f4: 6599 cmplt r6, r6 + 45f6: 6191 addc r6, r4 + 45f8: 61d5 addc r7, r5 + 45fa: 1253 lrw r2, 0x1fffffff // 4744 <__pack_d+0x190> + 45fc: 65c8 cmphs r2, r7 + 45fe: 0c1a bf 0x4632 // 4632 <__pack_d+0x7e> + 4600: 1290 lrw r4, 0x3ff // 4740 <__pack_d+0x18c> + 4602: 610c addu r4, r3 + 4604: 4718 lsli r0, r7, 24 + 4606: 4f68 lsri r3, r7, 8 + 4608: 4e48 lsri r2, r6, 8 + 460a: 6c80 or r2, r0 + 460c: 430c lsli r0, r3, 12 + 460e: 486c lsri r3, r0, 12 + 4610: 120e lrw r0, 0x7ff // 4748 <__pack_d+0x194> + 4612: 6d4b mov r5, r2 + 4614: 6900 and r4, r0 + 4616: 0404 br 0x461e // 461e <__pack_d+0x6a> + 4618: 3400 movi r4, 0 + 461a: 3200 movi r2, 0 + 461c: 3300 movi r3, 0 + 461e: 430c lsli r0, r3, 12 + 4620: 480c lsri r0, r0, 12 + 4622: 4474 lsli r3, r4, 20 + 4624: 419f lsli r4, r1, 31 + 4626: 6c43 mov r1, r0 + 4628: 6c4c or r1, r3 + 462a: 6c50 or r1, r4 + 462c: 6c0b mov r0, r2 + 462e: 1402 addi r14, r14, 8 + 4630: 1484 pop r4-r7 + 4632: 479f lsli r4, r7, 31 + 4634: 4e01 lsri r0, r6, 1 + 4636: 6d00 or r4, r0 + 4638: 6d93 mov r6, r4 + 463a: 3480 movi r4, 128 + 463c: 4f41 lsri r2, r7, 1 + 463e: 4483 lsli r4, r4, 3 + 4640: 6dcb mov r7, r2 + 4642: 610c addu r4, r3 + 4644: 07e0 br 0x4604 // 4604 <__pack_d+0x50> + 4646: 1281 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4648: 3200 movi r2, 0 + 464a: 3300 movi r3, 0 + 464c: 07e9 br 0x461e // 461e <__pack_d+0x6a> + 464e: 4e08 lsri r0, r6, 8 + 4650: 4798 lsli r4, r7, 24 + 4652: 6d00 or r4, r0 + 4654: 3580 movi r5, 128 + 4656: 4705 lsli r0, r7, 5 + 4658: 6c93 mov r2, r4 + 465a: 486d lsri r3, r0, 13 + 465c: 3400 movi r4, 0 + 465e: 45ac lsli r5, r5, 12 + 4660: 6c90 or r2, r4 + 4662: 6cd4 or r3, r5 + 4664: 430c lsli r0, r3, 12 + 4666: 486c lsri r3, r0, 12 + 4668: 1198 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 466a: 07da br 0x461e // 461e <__pack_d+0x6a> + 466c: 3d40 cmpnei r5, 0 + 466e: 0bc1 bt 0x45f0 // 45f0 <__pack_d+0x3c> + 4670: 4241 lsli r2, r2, 1 + 4672: 6898 and r2, r6 + 4674: 3a40 cmpnei r2, 0 + 4676: 0fc2 bf 0x45fa // 45fa <__pack_d+0x46> + 4678: 3480 movi r4, 128 + 467a: 3500 movi r5, 0 + 467c: 6599 cmplt r6, r6 + 467e: 6191 addc r6, r4 + 4680: 61d5 addc r7, r5 + 4682: 07bc br 0x45fa // 45fa <__pack_d+0x46> + 4684: 5a6d subu r3, r2, r3 + 4686: 3238 movi r2, 56 + 4688: 64c9 cmplt r2, r3 + 468a: 0bc7 bt 0x4618 // 4618 <__pack_d+0x64> + 468c: 3200 movi r2, 0 + 468e: 2a1f subi r2, 32 + 4690: 608c addu r2, r3 + 4692: 3adf btsti r2, 31 + 4694: 0848 bt 0x4724 // 4724 <__pack_d+0x170> + 4696: 6c1f mov r0, r7 + 4698: 7009 lsr r0, r2 + 469a: b800 st.w r0, (r14, 0x0) + 469c: 3000 movi r0, 0 + 469e: b801 st.w r0, (r14, 0x4) + 46a0: 3adf btsti r2, 31 + 46a2: 083c bt 0x471a // 471a <__pack_d+0x166> + 46a4: 3301 movi r3, 1 + 46a6: 70c8 lsl r3, r2 + 46a8: 6d4f mov r5, r3 + 46aa: 3300 movi r3, 0 + 46ac: 6d0f mov r4, r3 + 46ae: 3200 movi r2, 0 + 46b0: 3300 movi r3, 0 + 46b2: 2a00 subi r2, 1 + 46b4: 2b00 subi r3, 1 + 46b6: 6511 cmplt r4, r4 + 46b8: 6109 addc r4, r2 + 46ba: 614d addc r5, r3 + 46bc: 6990 and r6, r4 + 46be: 69d4 and r7, r5 + 46c0: 6d9c or r6, r7 + 46c2: 3e40 cmpnei r6, 0 + 46c4: 3000 movi r0, 0 + 46c6: 6001 addc r0, r0 + 46c8: 6c83 mov r2, r0 + 46ca: 3300 movi r3, 0 + 46cc: 9880 ld.w r4, (r14, 0x0) + 46ce: 98a1 ld.w r5, (r14, 0x4) + 46d0: 6d08 or r4, r2 + 46d2: 6d4c or r5, r3 + 46d4: 32ff movi r2, 255 + 46d6: 3300 movi r3, 0 + 46d8: 6890 and r2, r4 + 46da: 68d4 and r3, r5 + 46dc: 3080 movi r0, 128 + 46de: 640a cmpne r2, r0 + 46e0: 081b bt 0x4716 // 4716 <__pack_d+0x162> + 46e2: 3b40 cmpnei r3, 0 + 46e4: 0819 bt 0x4716 // 4716 <__pack_d+0x162> + 46e6: 3380 movi r3, 128 + 46e8: 4361 lsli r3, r3, 1 + 46ea: 68d0 and r3, r4 + 46ec: 3b40 cmpnei r3, 0 + 46ee: 0c06 bf 0x46fa // 46fa <__pack_d+0x146> + 46f0: 3280 movi r2, 128 + 46f2: 3300 movi r3, 0 + 46f4: 6511 cmplt r4, r4 + 46f6: 6109 addc r4, r2 + 46f8: 614d addc r5, r3 + 46fa: 4518 lsli r0, r5, 24 + 46fc: 4c48 lsri r2, r4, 8 + 46fe: 4d68 lsri r3, r5, 8 + 4700: 1093 lrw r4, 0xfffffff // 474c <__pack_d+0x198> + 4702: 6c80 or r2, r0 + 4704: 6550 cmphs r4, r5 + 4706: 430c lsli r0, r3, 12 + 4708: 486c lsri r3, r0, 12 + 470a: 3001 movi r0, 1 + 470c: 0c02 bf 0x4710 // 4710 <__pack_d+0x15c> + 470e: 3000 movi r0, 0 + 4710: 108e lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4712: 6900 and r4, r0 + 4714: 0785 br 0x461e // 461e <__pack_d+0x6a> + 4716: 327f movi r2, 127 + 4718: 07ed br 0x46f2 // 46f2 <__pack_d+0x13e> + 471a: 3201 movi r2, 1 + 471c: 708c lsl r2, r3 + 471e: 3500 movi r5, 0 + 4720: 6d0b mov r4, r2 + 4722: 07c6 br 0x46ae // 46ae <__pack_d+0xfa> + 4724: 341f movi r4, 31 + 4726: 610e subu r4, r3 + 4728: 4701 lsli r0, r7, 1 + 472a: 7010 lsl r0, r4 + 472c: 6d1b mov r4, r6 + 472e: 710d lsr r4, r3 + 4730: 6d00 or r4, r0 + 4732: 6c1f mov r0, r7 + 4734: 700d lsr r0, r3 + 4736: b880 st.w r4, (r14, 0x0) + 4738: b801 st.w r0, (r14, 0x4) + 473a: 07b3 br 0x46a0 // 46a0 <__pack_d+0xec> + 473c: fffffc02 .long 0xfffffc02 + 4740: 000003ff .long 0x000003ff + 4744: 1fffffff .long 0x1fffffff + 4748: 000007ff .long 0x000007ff + 474c: 0fffffff .long 0x0fffffff + +00004750 <__unpack_d>: + 4750: 1423 subi r14, r14, 12 + 4752: b880 st.w r4, (r14, 0x0) + 4754: b8c1 st.w r6, (r14, 0x4) + 4756: b8e2 st.w r7, (r14, 0x8) + 4758: 8843 ld.h r2, (r0, 0x6) + 475a: 4251 lsli r2, r2, 17 + 475c: 9061 ld.w r3, (r0, 0x4) + 475e: 9080 ld.w r4, (r0, 0x0) + 4760: 4a55 lsri r2, r2, 21 + 4762: 8007 ld.b r0, (r0, 0x7) + 4764: 436c lsli r3, r3, 12 + 4766: 4807 lsri r0, r0, 7 + 4768: 3a40 cmpnei r2, 0 + 476a: 4b6c lsri r3, r3, 12 + 476c: b101 st.w r0, (r1, 0x4) + 476e: 0819 bt 0x47a0 // 47a0 <__unpack_d+0x50> + 4770: 6c93 mov r2, r4 + 4772: 6c8c or r2, r3 + 4774: 3a40 cmpnei r2, 0 + 4776: 0c2d bf 0x47d0 // 47d0 <__unpack_d+0x80> + 4778: 4c58 lsri r2, r4, 24 + 477a: 4368 lsli r3, r3, 8 + 477c: 6cc8 or r3, r2 + 477e: 3203 movi r2, 3 + 4780: 4408 lsli r0, r4, 8 + 4782: b140 st.w r2, (r1, 0x0) + 4784: 1181 lrw r4, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 4786: 11c2 lrw r6, 0xfffffff // 480c <__unpack_d+0xbc> + 4788: 485f lsri r2, r0, 31 + 478a: 4361 lsli r3, r3, 1 + 478c: 6cc8 or r3, r2 + 478e: 64d8 cmphs r6, r3 + 4790: 6c93 mov r2, r4 + 4792: 4001 lsli r0, r0, 1 + 4794: 2c00 subi r4, 1 + 4796: 0bf9 bt 0x4788 // 4788 <__unpack_d+0x38> + 4798: b142 st.w r2, (r1, 0x8) + 479a: b103 st.w r0, (r1, 0xc) + 479c: b164 st.w r3, (r1, 0x10) + 479e: 0414 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47a0: 101c lrw r0, 0x7ff // 4810 <__unpack_d+0xc0> + 47a2: 640a cmpne r2, r0 + 47a4: 0c19 bf 0x47d6 // 47d6 <__unpack_d+0x86> + 47a6: 1019 lrw r0, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 47a8: 6080 addu r2, r0 + 47aa: b142 st.w r2, (r1, 0x8) + 47ac: 3203 movi r2, 3 + 47ae: 43e8 lsli r7, r3, 8 + 47b0: b140 st.w r2, (r1, 0x0) + 47b2: 3380 movi r3, 128 + 47b4: 4c58 lsri r2, r4, 24 + 47b6: 6dc8 or r7, r2 + 47b8: 44c8 lsli r6, r4, 8 + 47ba: 3200 movi r2, 0 + 47bc: 4375 lsli r3, r3, 21 + 47be: 6d88 or r6, r2 + 47c0: 6dcc or r7, r3 + 47c2: b1c3 st.w r6, (r1, 0xc) + 47c4: b1e4 st.w r7, (r1, 0x10) + 47c6: 98e2 ld.w r7, (r14, 0x8) + 47c8: 98c1 ld.w r6, (r14, 0x4) + 47ca: 9880 ld.w r4, (r14, 0x0) + 47cc: 1403 addi r14, r14, 12 + 47ce: 783c jmp r15 + 47d0: 3302 movi r3, 2 + 47d2: b160 st.w r3, (r1, 0x0) + 47d4: 07f9 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47d6: 6c93 mov r2, r4 + 47d8: 6c8c or r2, r3 + 47da: 3a40 cmpnei r2, 0 + 47dc: 0c10 bf 0x47fc // 47fc <__unpack_d+0xac> + 47de: 3280 movi r2, 128 + 47e0: 424c lsli r2, r2, 12 + 47e2: 688c and r2, r3 + 47e4: 3a40 cmpnei r2, 0 + 47e6: 0c0e bf 0x4802 // 4802 <__unpack_d+0xb2> + 47e8: 3201 movi r2, 1 + 47ea: b140 st.w r2, (r1, 0x0) + 47ec: 4c58 lsri r2, r4, 24 + 47ee: 4368 lsli r3, r3, 8 + 47f0: 6cc8 or r3, r2 + 47f2: 4408 lsli r0, r4, 8 + 47f4: 3b9b bclri r3, 27 + 47f6: b103 st.w r0, (r1, 0xc) + 47f8: b164 st.w r3, (r1, 0x10) + 47fa: 07e6 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47fc: 3304 movi r3, 4 + 47fe: b160 st.w r3, (r1, 0x0) + 4800: 07e3 br 0x47c6 // 47c6 <__unpack_d+0x76> + 4802: b140 st.w r2, (r1, 0x0) + 4804: 07f4 br 0x47ec // 47ec <__unpack_d+0x9c> + 4806: 0000 bkpt + 4808: fffffc01 .long 0xfffffc01 + 480c: 0fffffff .long 0x0fffffff + 4810: 000007ff .long 0x000007ff + +00004814 <__fpcmp_parts_d>: + 4814: 14c1 push r4 + 4816: 9060 ld.w r3, (r0, 0x0) + 4818: 3b01 cmphsi r3, 2 + 481a: 0c12 bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 481c: 9140 ld.w r2, (r1, 0x0) + 481e: 3a01 cmphsi r2, 2 + 4820: 0c0f bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 4822: 3b44 cmpnei r3, 4 + 4824: 0c17 bf 0x4852 // 4852 <__fpcmp_parts_d+0x3e> + 4826: 3a44 cmpnei r2, 4 + 4828: 0c0f bf 0x4846 // 4846 <__fpcmp_parts_d+0x32> + 482a: 3b42 cmpnei r3, 2 + 482c: 0c0b bf 0x4842 // 4842 <__fpcmp_parts_d+0x2e> + 482e: 3a42 cmpnei r2, 2 + 4830: 0c13 bf 0x4856 // 4856 <__fpcmp_parts_d+0x42> + 4832: 9061 ld.w r3, (r0, 0x4) + 4834: 9141 ld.w r2, (r1, 0x4) + 4836: 648e cmpne r3, r2 + 4838: 0c14 bf 0x4860 // 4860 <__fpcmp_parts_d+0x4c> + 483a: 3b40 cmpnei r3, 0 + 483c: 0808 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 483e: 3001 movi r0, 1 + 4840: 1481 pop r4 + 4842: 3a42 cmpnei r2, 2 + 4844: 0c28 bf 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4846: 9161 ld.w r3, (r1, 0x4) + 4848: 3b40 cmpnei r3, 0 + 484a: 0bfa bt 0x483e // 483e <__fpcmp_parts_d+0x2a> + 484c: 3000 movi r0, 0 + 484e: 2800 subi r0, 1 + 4850: 1481 pop r4 + 4852: 3a44 cmpnei r2, 4 + 4854: 0c22 bf 0x4898 // 4898 <__fpcmp_parts_d+0x84> + 4856: 9061 ld.w r3, (r0, 0x4) + 4858: 3b40 cmpnei r3, 0 + 485a: 0bf9 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 485c: 3001 movi r0, 1 + 485e: 07f1 br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 4860: 9082 ld.w r4, (r0, 0x8) + 4862: 9142 ld.w r2, (r1, 0x8) + 4864: 6509 cmplt r2, r4 + 4866: 0bea bt 0x483a // 483a <__fpcmp_parts_d+0x26> + 4868: 6491 cmplt r4, r2 + 486a: 080d bt 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 486c: 9044 ld.w r2, (r0, 0x10) + 486e: 9083 ld.w r4, (r0, 0xc) + 4870: 9103 ld.w r0, (r1, 0xc) + 4872: 9124 ld.w r1, (r1, 0x10) + 4874: 6484 cmphs r1, r2 + 4876: 0fe2 bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4878: 644a cmpne r2, r1 + 487a: 0803 bt 0x4880 // 4880 <__fpcmp_parts_d+0x6c> + 487c: 6500 cmphs r0, r4 + 487e: 0fde bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4880: 6448 cmphs r2, r1 + 4882: 0805 bt 0x488c // 488c <__fpcmp_parts_d+0x78> + 4884: 3b40 cmpnei r3, 0 + 4886: 0fe3 bf 0x484c // 484c <__fpcmp_parts_d+0x38> + 4888: 3001 movi r0, 1 + 488a: 07db br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 488c: 6486 cmpne r1, r2 + 488e: 0803 bt 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4890: 6410 cmphs r4, r0 + 4892: 0ff9 bf 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 4894: 3000 movi r0, 0 + 4896: 1481 pop r4 + 4898: 9161 ld.w r3, (r1, 0x4) + 489a: 9041 ld.w r2, (r0, 0x4) + 489c: 5b09 subu r0, r3, r2 + 489e: 1481 pop r4 + +000048a0 <__cskyvprintfsnprintf>: + 48a0: 1422 subi r14, r14, 8 + 48a2: b861 st.w r3, (r14, 0x4) + 48a4: b840 st.w r2, (r14, 0x0) + 48a6: 14d0 push r15 + 48a8: 1421 subi r14, r14, 4 + 48aa: 9862 ld.w r3, (r14, 0x8) + 48ac: b860 st.w r3, (r14, 0x0) + 48ae: 9840 ld.w r2, (r14, 0x0) + 48b0: 1b03 addi r3, r14, 12 + 48b2: e0000026 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + 48b6: 1401 addi r14, r14, 4 + 48b8: d9ee2000 ld.w r15, (r14, 0x0) + 48bc: 1403 addi r14, r14, 12 + 48be: 783c jmp r15 + +000048c0 : + 48c0: 14d3 push r4-r6, r15 + 48c2: 6d4b mov r5, r2 + 48c4: 9582 ld.w r4, (r5, 0x8) + 48c6: 9241 ld.w r2, (r2, 0x4) + 48c8: 610a subu r4, r2 + 48ca: 3c40 cmpnei r4, 0 + 48cc: 6d87 mov r6, r1 + 48ce: 0c16 bf 0x48fa // 48fa + 48d0: 6504 cmphs r1, r4 + 48d2: 0802 bt 0x48d6 // 48d6 + 48d4: 6d07 mov r4, r1 + 48d6: 9560 ld.w r3, (r5, 0x0) + 48d8: 3b40 cmpnei r3, 0 + 48da: 0c0d bf 0x48f4 // 48f4 + 48dc: 60c8 addu r3, r2 + 48de: 6c43 mov r1, r0 + 48e0: 6c93 mov r2, r4 + 48e2: 6c0f mov r0, r3 + 48e4: e000007e bsr 0x49e0 // 49e0 <__memcpy_fast> + 48e8: 9500 ld.w r0, (r5, 0x0) + 48ea: 9521 ld.w r1, (r5, 0x4) + 48ec: 6010 addu r0, r4 + 48ee: 6004 addu r0, r1 + 48f0: 3200 movi r2, 0 + 48f2: a040 st.b r2, (r0, 0x0) + 48f4: 9561 ld.w r3, (r5, 0x4) + 48f6: 610c addu r4, r3 + 48f8: b581 st.w r4, (r5, 0x4) + 48fa: 6c1b mov r0, r6 + 48fc: 1493 pop r4-r6, r15 + +000048fe <__cskyvprintfvsnprintf>: + 48fe: 14d3 push r4-r6, r15 + 4900: 1425 subi r14, r14, 20 + 4902: 6d07 mov r4, r1 + 4904: 6d43 mov r5, r0 + 4906: 6c4b mov r1, r2 + 4908: 1802 addi r0, r14, 8 + 490a: 3200 movi r2, 0 + 490c: 3c40 cmpnei r4, 0 + 490e: b0a0 st.w r5, (r0, 0x0) + 4910: b041 st.w r2, (r0, 0x4) + 4912: 0c1c bf 0x494a // 494a <__cskyvprintfvsnprintf+0x4c> + 4914: 5cc3 subi r6, r4, 1 + 4916: b0c2 st.w r6, (r0, 0x8) + 4918: b800 st.w r0, (r14, 0x0) + 491a: 6c8f mov r2, r3 + 491c: 100e lrw r0, 0x48c0 // 4954 <__cskyvprintfvsnprintf+0x56> + 491e: b801 st.w r0, (r14, 0x4) + 4920: 6c3b mov r0, r14 + 4922: e00000bf bsr 0x4aa0 // 4aa0 <__v2_printf> + 4926: 3d40 cmpnei r5, 0 + 4928: 0c0f bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492a: 3c40 cmpnei r4, 0 + 492c: 0c0d bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492e: 38df btsti r0, 31 + 4930: 080b bt 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 4932: 3300 movi r3, 0 + 4934: 2b00 subi r3, 1 + 4936: 64d2 cmpne r4, r3 + 4938: 0c0b bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493a: 6500 cmphs r0, r4 + 493c: 0c09 bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493e: 6114 addu r4, r5 + 4940: 2c00 subi r4, 1 + 4942: 3100 movi r1, 0 + 4944: a420 st.b r1, (r4, 0x0) + 4946: 1405 addi r14, r14, 20 + 4948: 1493 pop r4-r6, r15 + 494a: 3600 movi r6, 0 + 494c: 07e5 br 0x4916 // 4916 <__cskyvprintfvsnprintf+0x18> + 494e: 5d80 addu r4, r5, r0 + 4950: 07f9 br 0x4942 // 4942 <__cskyvprintfvsnprintf+0x44> + 4952: 0000 bkpt + 4954: 000048c0 .long 0x000048c0 + +00004958 <__memset_fast>: + 4958: 14c3 push r4-r6 + 495a: 7444 zextb r1, r1 + 495c: 3a40 cmpnei r2, 0 + 495e: 0c1f bf 0x499c // 499c <__memset_fast+0x44> + 4960: 6d43 mov r5, r0 + 4962: 6d03 mov r4, r0 + 4964: 3603 movi r6, 3 + 4966: 6918 and r4, r6 + 4968: 3c40 cmpnei r4, 0 + 496a: 0c1a bf 0x499e // 499e <__memset_fast+0x46> + 496c: a520 st.b r1, (r5, 0x0) + 496e: 2a00 subi r2, 1 + 4970: 3a40 cmpnei r2, 0 + 4972: 0c15 bf 0x499c // 499c <__memset_fast+0x44> + 4974: 2500 addi r5, 1 + 4976: 6d17 mov r4, r5 + 4978: 3603 movi r6, 3 + 497a: 6918 and r4, r6 + 497c: 3c40 cmpnei r4, 0 + 497e: 0c10 bf 0x499e // 499e <__memset_fast+0x46> + 4980: a520 st.b r1, (r5, 0x0) + 4982: 2a00 subi r2, 1 + 4984: 3a40 cmpnei r2, 0 + 4986: 0c0b bf 0x499c // 499c <__memset_fast+0x44> + 4988: 2500 addi r5, 1 + 498a: 6d17 mov r4, r5 + 498c: 3603 movi r6, 3 + 498e: 6918 and r4, r6 + 4990: 3c40 cmpnei r4, 0 + 4992: 0c06 bf 0x499e // 499e <__memset_fast+0x46> + 4994: a520 st.b r1, (r5, 0x0) + 4996: 2a00 subi r2, 1 + 4998: 2500 addi r5, 1 + 499a: 0402 br 0x499e // 499e <__memset_fast+0x46> + 499c: 1483 pop r4-r6 + 499e: 4168 lsli r3, r1, 8 + 49a0: 6c4c or r1, r3 + 49a2: 4170 lsli r3, r1, 16 + 49a4: 6c4c or r1, r3 + 49a6: 3a2f cmplti r2, 16 + 49a8: 0809 bt 0x49ba // 49ba <__memset_fast+0x62> + 49aa: b520 st.w r1, (r5, 0x0) + 49ac: b521 st.w r1, (r5, 0x4) + 49ae: b522 st.w r1, (r5, 0x8) + 49b0: b523 st.w r1, (r5, 0xc) + 49b2: 2a0f subi r2, 16 + 49b4: 250f addi r5, 16 + 49b6: 3a2f cmplti r2, 16 + 49b8: 0ff9 bf 0x49aa // 49aa <__memset_fast+0x52> + 49ba: 3a23 cmplti r2, 4 + 49bc: 0806 bt 0x49c8 // 49c8 <__memset_fast+0x70> + 49be: 2a03 subi r2, 4 + 49c0: b520 st.w r1, (r5, 0x0) + 49c2: 2503 addi r5, 4 + 49c4: 3a23 cmplti r2, 4 + 49c6: 0ffc bf 0x49be // 49be <__memset_fast+0x66> + 49c8: 3a40 cmpnei r2, 0 + 49ca: 0fe9 bf 0x499c // 499c <__memset_fast+0x44> + 49cc: 2a00 subi r2, 1 + 49ce: a520 st.b r1, (r5, 0x0) + 49d0: 3a40 cmpnei r2, 0 + 49d2: 0fe5 bf 0x499c // 499c <__memset_fast+0x44> + 49d4: 2a00 subi r2, 1 + 49d6: a521 st.b r1, (r5, 0x1) + 49d8: 3a40 cmpnei r2, 0 + 49da: 0fe1 bf 0x499c // 499c <__memset_fast+0x44> + 49dc: a522 st.b r1, (r5, 0x2) + 49de: 1483 pop r4-r6 + +000049e0 <__memcpy_fast>: + 49e0: 14c3 push r4-r6 + 49e2: 6d83 mov r6, r0 + 49e4: 6d07 mov r4, r1 + 49e6: 6d18 or r4, r6 + 49e8: 3303 movi r3, 3 + 49ea: 690c and r4, r3 + 49ec: 3c40 cmpnei r4, 0 + 49ee: 0c0b bf 0x4a04 // 4a04 <__memcpy_fast+0x24> + 49f0: 3a40 cmpnei r2, 0 + 49f2: 0c08 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 49f4: 8160 ld.b r3, (r1, 0x0) + 49f6: 2100 addi r1, 1 + 49f8: 2a00 subi r2, 1 + 49fa: a660 st.b r3, (r6, 0x0) + 49fc: 2600 addi r6, 1 + 49fe: 3a40 cmpnei r2, 0 + 4a00: 0bfa bt 0x49f4 // 49f4 <__memcpy_fast+0x14> + 4a02: 1483 pop r4-r6 + 4a04: 3a2f cmplti r2, 16 + 4a06: 080e bt 0x4a22 // 4a22 <__memcpy_fast+0x42> + 4a08: 91a0 ld.w r5, (r1, 0x0) + 4a0a: 9161 ld.w r3, (r1, 0x4) + 4a0c: 9182 ld.w r4, (r1, 0x8) + 4a0e: b6a0 st.w r5, (r6, 0x0) + 4a10: 91a3 ld.w r5, (r1, 0xc) + 4a12: b661 st.w r3, (r6, 0x4) + 4a14: b682 st.w r4, (r6, 0x8) + 4a16: b6a3 st.w r5, (r6, 0xc) + 4a18: 2a0f subi r2, 16 + 4a1a: 210f addi r1, 16 + 4a1c: 260f addi r6, 16 + 4a1e: 3a2f cmplti r2, 16 + 4a20: 0ff4 bf 0x4a08 // 4a08 <__memcpy_fast+0x28> + 4a22: 3a23 cmplti r2, 4 + 4a24: 0808 bt 0x4a34 // 4a34 <__memcpy_fast+0x54> + 4a26: 9160 ld.w r3, (r1, 0x0) + 4a28: 2a03 subi r2, 4 + 4a2a: 2103 addi r1, 4 + 4a2c: b660 st.w r3, (r6, 0x0) + 4a2e: 2603 addi r6, 4 + 4a30: 3a23 cmplti r2, 4 + 4a32: 0ffa bf 0x4a26 // 4a26 <__memcpy_fast+0x46> + 4a34: 3a40 cmpnei r2, 0 + 4a36: 0fe6 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 4a38: 8160 ld.b r3, (r1, 0x0) + 4a3a: 2100 addi r1, 1 + 4a3c: 2a00 subi r2, 1 + 4a3e: a660 st.b r3, (r6, 0x0) + 4a40: 2600 addi r6, 1 + 4a42: 07f9 br 0x4a34 // 4a34 <__memcpy_fast+0x54> + +00004a44 <__GI_strncmp>: + 4a44: 14c1 push r4 + 4a46: 6cc3 mov r3, r0 + 4a48: 6080 addu r2, r0 + 4a4a: 040c br 0x4a62 // 4a62 <__GI_strncmp+0x1e> + 4a4c: 8380 ld.b r4, (r3, 0x0) + 4a4e: 8100 ld.b r0, (r1, 0x0) + 4a50: 6012 subu r0, r4 + 4a52: 6c02 nor r0, r0 + 4a54: 2000 addi r0, 1 + 4a56: 3840 cmpnei r0, 0 + 4a58: 0808 bt 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5a: 3c40 cmpnei r4, 0 + 4a5c: 0c06 bf 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5e: 2300 addi r3, 1 + 4a60: 2100 addi r1, 1 + 4a62: 648c cmphs r3, r2 + 4a64: 0ff4 bf 0x4a4c // 4a4c <__GI_strncmp+0x8> + 4a66: 3000 movi r0, 0 + 4a68: 1481 pop r4 + ... + +00004a6c : + 4a6c: 14d4 push r4-r7, r15 + 4a6e: 3820 cmplti r0, 1 + 4a70: 6d03 mov r4, r0 + 4a72: 6d47 mov r5, r1 + 4a74: 6df7 mov r7, r13 + 4a76: 080d bt 0x4a90 // 4a90 + 4a78: 6d83 mov r6, r0 + 4a7a: 3e30 cmplti r6, 17 + 4a7c: 9700 ld.w r0, (r7, 0x0) + 4a7e: 0c0a bf 0x4a92 // 4a92 + 4a80: 5c63 subi r3, r4, 1 + 4a82: 4b24 lsri r1, r3, 4 + 4a84: 4164 lsli r3, r1, 4 + 4a86: 9040 ld.w r2, (r0, 0x0) + 4a88: 5c2d subu r1, r4, r3 + 4a8a: 9081 ld.w r4, (r0, 0x4) + 4a8c: 6c17 mov r0, r5 + 4a8e: 7bd1 jsr r4 + 4a90: 1494 pop r4-r7, r15 + 4a92: 9040 ld.w r2, (r0, 0x0) + 4a94: 9061 ld.w r3, (r0, 0x4) + 4a96: 3110 movi r1, 16 + 4a98: 6c17 mov r0, r5 + 4a9a: 7bcd jsr r3 + 4a9c: 2e0f subi r6, 16 + 4a9e: 07ee br 0x4a7a // 4a7a + +00004aa0 <__v2_printf>: + 4aa0: 14d4 push r4-r7, r15 + 4aa2: 143c subi r14, r14, 112 + 4aa4: b826 st.w r1, (r14, 0x18) + 4aa6: 1912 addi r1, r14, 72 + 4aa8: 1b21 addi r3, r14, 132 + 4aaa: b810 st.w r0, (r14, 0x40) + 4aac: 2100 addi r1, 1 + 4aae: 3000 movi r0, 0 + 4ab0: 6d4b mov r5, r2 + 4ab2: b871 st.w r3, (r14, 0x44) + 4ab4: b80a st.w r0, (r14, 0x28) + 4ab6: b809 st.w r0, (r14, 0x24) + 4ab8: b82d st.w r1, (r14, 0x34) + 4aba: 9886 ld.w r4, (r14, 0x18) + 4abc: 3325 movi r3, 37 + 4abe: 84c0 ld.b r6, (r4, 0x0) + 4ac0: 3e40 cmpnei r6, 0 + 4ac2: 0c03 bf 0x4ac8 // 4ac8 <__v2_printf+0x28> + 4ac4: 64da cmpne r6, r3 + 4ac6: 0845 bt 0x4b50 // 4b50 <__v2_printf+0xb0> + 4ac8: 9846 ld.w r2, (r14, 0x18) + 4aca: 5cc9 subu r6, r4, r2 + 4acc: 3e40 cmpnei r6, 0 + 4ace: 0c0a bf 0x4ae2 // 4ae2 <__v2_printf+0x42> + 4ad0: 9870 ld.w r3, (r14, 0x40) + 4ad2: 9340 ld.w r2, (r3, 0x0) + 4ad4: 6c5b mov r1, r6 + 4ad6: 9361 ld.w r3, (r3, 0x4) + 4ad8: 9806 ld.w r0, (r14, 0x18) + 4ada: 7bcd jsr r3 + 4adc: 9809 ld.w r0, (r14, 0x24) + 4ade: 6018 addu r0, r6 + 4ae0: b809 st.w r0, (r14, 0x24) + 4ae2: 8420 ld.b r1, (r4, 0x0) + 4ae4: 3940 cmpnei r1, 0 + 4ae6: 0803 bt 0x4aec // 4aec <__v2_printf+0x4c> + 4ae8: e8000367 br 0x51b6 // 51b6 <__v2_printf+0x716> + 4aec: 3637 movi r6, 55 + 4aee: 1a01 addi r2, r14, 4 + 4af0: 3700 movi r7, 0 + 4af2: 6188 addu r6, r2 + 4af4: a6e0 st.b r7, (r6, 0x0) + 4af6: 3300 movi r3, 0 + 4af8: 3600 movi r6, 0 + 4afa: 2400 addi r4, 1 + 4afc: 3000 movi r0, 0 + 4afe: 3100 movi r1, 0 + 4b00: 2e00 subi r6, 1 + 4b02: b867 st.w r3, (r14, 0x1c) + 4b04: 3700 movi r7, 0 + 4b06: 5c42 addi r2, r4, 1 + 4b08: b846 st.w r2, (r14, 0x18) + 4b0a: 8480 ld.b r4, (r4, 0x0) + 4b0c: 3364 movi r3, 100 + 4b0e: 64d2 cmpne r4, r3 + 4b10: 0d90 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4b12: 650d cmplt r3, r4 + 4b14: 084e bt 0x4bb0 // 4bb0 <__v2_printf+0x110> + 4b16: 322e movi r2, 46 + 4b18: 6492 cmpne r4, r2 + 4b1a: 0d41 bf 0x4d9c // 4d9c <__v2_printf+0x2fc> + 4b1c: 6509 cmplt r2, r4 + 4b1e: 0829 bt 0x4b70 // 4b70 <__v2_printf+0xd0> + 4b20: 332a movi r3, 42 + 4b22: 64d2 cmpne r4, r3 + 4b24: 0d31 bf 0x4d86 // 4d86 <__v2_printf+0x2e6> + 4b26: 650d cmplt r3, r4 + 4b28: 081c bt 0x4b60 // 4b60 <__v2_printf+0xc0> + 4b2a: 3220 movi r2, 32 + 4b2c: 6492 cmpne r4, r2 + 4b2e: 0d25 bf 0x4d78 // 4d78 <__v2_printf+0x2d8> + 4b30: 3323 movi r3, 35 + 4b32: 64d2 cmpne r4, r3 + 4b34: 0d27 bf 0x4d82 // 4d82 <__v2_printf+0x2e2> + 4b36: 3c40 cmpnei r4, 0 + 4b38: 0803 bt 0x4b3e // 4b3e <__v2_printf+0x9e> + 4b3a: e800033e br 0x51b6 // 51b6 <__v2_printf+0x716> + 4b3e: 1e12 addi r6, r14, 72 + 4b40: 3037 movi r0, 55 + 4b42: 1a01 addi r2, r14, 4 + 4b44: a680 st.b r4, (r6, 0x0) + 4b46: 6008 addu r0, r2 + 4b48: 3400 movi r4, 0 + 4b4a: a080 st.b r4, (r0, 0x0) + 4b4c: b8a5 st.w r5, (r14, 0x14) + 4b4e: 042c br 0x4ba6 // 4ba6 <__v2_printf+0x106> + 4b50: 2400 addi r4, 1 + 4b52: 07b6 br 0x4abe // 4abe <__v2_printf+0x1e> + 4b54: 3001 movi r0, 1 + 4b56: 312b movi r1, 43 + 4b58: 9886 ld.w r4, (r14, 0x18) + 4b5a: 07d6 br 0x4b06 // 4b06 <__v2_printf+0x66> + 4b5c: 6d4f mov r5, r3 + 4b5e: 07fd br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b60: 322b movi r2, 43 + 4b62: 6492 cmpne r4, r2 + 4b64: 0ff8 bf 0x4b54 // 4b54 <__v2_printf+0xb4> + 4b66: 332d movi r3, 45 + 4b68: 64d2 cmpne r4, r3 + 4b6a: 0be6 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b6c: 3fa2 bseti r7, 2 + 4b6e: 07f5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b70: 3339 movi r3, 57 + 4b72: 650d cmplt r3, r4 + 4b74: 0809 bt 0x4b86 // 4b86 <__v2_printf+0xe6> + 4b76: 3231 movi r2, 49 + 4b78: 6491 cmplt r4, r2 + 4b7a: 0d34 bf 0x4de2 // 4de2 <__v2_printf+0x342> + 4b7c: 3330 movi r3, 48 + 4b7e: 64d2 cmpne r4, r3 + 4b80: 0bdb bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b82: 3fa7 bseti r7, 7 + 4b84: 07ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b86: 3258 movi r2, 88 + 4b88: 6492 cmpne r4, r2 + 4b8a: 0cd3 bf 0x4d30 // 4d30 <__v2_printf+0x290> + 4b8c: 3063 movi r0, 99 + 4b8e: 6412 cmpne r4, r0 + 4b90: 0bd3 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b92: 3337 movi r3, 55 + 4b94: 1a01 addi r2, r14, 4 + 4b96: 5d2e addi r1, r5, 4 + 4b98: 85c0 ld.b r6, (r5, 0x0) + 4b9a: 3400 movi r4, 0 + 4b9c: 1d12 addi r5, r14, 72 + 4b9e: 60c8 addu r3, r2 + 4ba0: b825 st.w r1, (r14, 0x14) + 4ba2: a5c0 st.b r6, (r5, 0x0) + 4ba4: a380 st.b r4, (r3, 0x0) + 4ba6: 3601 movi r6, 1 + 4ba8: 3500 movi r5, 0 + 4baa: 1c12 addi r4, r14, 72 + 4bac: e8000295 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4bb0: 336d movi r3, 109 + 4bb2: 64d2 cmpne r4, r3 + 4bb4: 0d2d bf 0x4e0e // 4e0e <__v2_printf+0x36e> + 4bb6: 650d cmplt r3, r4 + 4bb8: 0883 bt 0x4cbe // 4cbe <__v2_printf+0x21e> + 4bba: 3268 movi r2, 104 + 4bbc: 6492 cmpne r4, r2 + 4bbe: 0d24 bf 0x4e06 // 4e06 <__v2_printf+0x366> + 4bc0: 6509 cmplt r2, r4 + 4bc2: 086f bt 0x4ca0 // 4ca0 <__v2_printf+0x200> + 4bc4: 3366 movi r3, 102 + 4bc6: 64d1 cmplt r4, r3 + 4bc8: 0bb7 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4bca: 3840 cmpnei r0, 0 + 4bcc: 0c05 bf 0x4bd6 // 4bd6 <__v2_printf+0x136> + 4bce: 3037 movi r0, 55 + 4bd0: 1a01 addi r2, r14, 4 + 4bd2: 6008 addu r0, r2 + 4bd4: a020 st.b r1, (r0, 0x0) + 4bd6: 5d3e addi r1, r5, 8 + 4bd8: b825 st.w r1, (r14, 0x14) + 4bda: 9500 ld.w r0, (r5, 0x0) + 4bdc: 9521 ld.w r1, (r5, 0x4) + 4bde: 98a7 ld.w r5, (r14, 0x1c) + 4be0: 3d40 cmpnei r5, 0 + 4be2: 0803 bt 0x4be8 // 4be8 <__v2_printf+0x148> + 4be4: 3301 movi r3, 1 + 4be6: b867 st.w r3, (r14, 0x1c) + 4be8: 3200 movi r2, 0 + 4bea: 2a00 subi r2, 1 + 4bec: 649a cmpne r6, r2 + 4bee: 0d58 bf 0x4e9e // 4e9e <__v2_printf+0x3fe> + 4bf0: 6d5b mov r5, r6 + 4bf2: 9867 ld.w r3, (r14, 0x1c) + 4bf4: b860 st.w r3, (r14, 0x0) + 4bf6: b8a1 st.w r5, (r14, 0x4) + 4bf8: 3328 movi r3, 40 + 4bfa: 1a12 addi r2, r14, 72 + 4bfc: e000069d bsr 0x5936 // 5936 <__GI___dtostr> + 4c00: 3100 movi r1, 0 + 4c02: 2900 subi r1, 1 + 4c04: 645a cmpne r6, r1 + 4c06: b808 st.w r0, (r14, 0x20) + 4c08: 0c1a bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4c0a: 312e movi r1, 46 + 4c0c: 980d ld.w r0, (r14, 0x34) + 4c0e: e00008c9 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c12: 3840 cmpnei r0, 0 + 4c14: 98c8 ld.w r6, (r14, 0x20) + 4c16: 0d48 bf 0x4ea6 // 4ea6 <__v2_printf+0x406> + 4c18: 3d40 cmpnei r5, 0 + 4c1a: 0805 bt 0x4c24 // 4c24 <__v2_printf+0x184> + 4c1c: 3101 movi r1, 1 + 4c1e: 685c and r1, r7 + 4c20: 3940 cmpnei r1, 0 + 4c22: 0d40 bf 0x4ea2 // 4ea2 <__v2_printf+0x402> + 4c24: 58c2 addi r6, r0, 1 + 4c26: 2500 addi r5, 1 + 4c28: 5d59 subu r2, r5, r6 + 4c2a: 6080 addu r2, r0 + 4c2c: 3a20 cmplti r2, 1 + 4c2e: 0805 bt 0x4c38 // 4c38 <__v2_printf+0x198> + 4c30: 2600 addi r6, 1 + 4c32: 8660 ld.b r3, (r6, 0x0) + 4c34: 3b40 cmpnei r3, 0 + 4c36: 0bf9 bt 0x4c28 // 4c28 <__v2_printf+0x188> + 4c38: 3500 movi r5, 0 + 4c3a: a6a0 st.b r5, (r6, 0x0) + 4c3c: 3067 movi r0, 103 + 4c3e: 6412 cmpne r4, r0 + 4c40: 0822 bt 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c42: 312e movi r1, 46 + 4c44: 1812 addi r0, r14, 72 + 4c46: e00008ad bsr 0x5da0 // 5da0 <__GI_strchr> + 4c4a: 3840 cmpnei r0, 0 + 4c4c: 6d03 mov r4, r0 + 4c4e: 0c1b bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c50: 3165 movi r1, 101 + 4c52: e00008a7 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c56: 6c43 mov r1, r0 + 4c58: 84c0 ld.b r6, (r4, 0x0) + 4c5a: 3e40 cmpnei r6, 0 + 4c5c: 0930 bt 0x4ebc // 4ebc <__v2_printf+0x41c> + 4c5e: 3940 cmpnei r1, 0 + 4c60: 0c02 bf 0x4c64 // 4c64 <__v2_printf+0x1c4> + 4c62: 6d07 mov r4, r1 + 4c64: 3630 movi r6, 48 + 4c66: 5c63 subi r3, r4, 1 + 4c68: 8340 ld.b r2, (r3, 0x0) + 4c6a: 658a cmpne r2, r6 + 4c6c: 0d2a bf 0x4ec0 // 4ec0 <__v2_printf+0x420> + 4c6e: 352e movi r5, 46 + 4c70: 654a cmpne r2, r5 + 4c72: 0802 bt 0x4c76 // 4c76 <__v2_printf+0x1d6> + 4c74: 6d0f mov r4, r3 + 4c76: 3000 movi r0, 0 + 4c78: 3940 cmpnei r1, 0 + 4c7a: a400 st.b r0, (r4, 0x0) + 4c7c: 0c04 bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c7e: 6c13 mov r0, r4 + 4c80: e0000838 bsr 0x5cf0 // 5cf0 <__strcpy_fast> + 4c84: 1912 addi r1, r14, 72 + 4c86: 81c0 ld.b r6, (r1, 0x0) + 4c88: 332d movi r3, 45 + 4c8a: 64da cmpne r6, r3 + 4c8c: 0c02 bf 0x4c90 // 4c90 <__v2_printf+0x1f0> + 4c8e: 05ef br 0x506c // 506c <__v2_printf+0x5cc> + 4c90: 3437 movi r4, 55 + 4c92: 1801 addi r0, r14, 4 + 4c94: 352d movi r5, 45 + 4c96: 6100 addu r4, r0 + 4c98: a4a0 st.b r5, (r4, 0x0) + 4c9a: 1912 addi r1, r14, 72 + 4c9c: 5982 addi r4, r1, 1 + 4c9e: 05ec br 0x5076 // 5076 <__v2_printf+0x5d6> + 4ca0: 3369 movi r3, 105 + 4ca2: 64d2 cmpne r4, r3 + 4ca4: 0cc6 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4ca6: 326c movi r2, 108 + 4ca8: 6492 cmpne r4, r2 + 4caa: 0b46 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cac: 9866 ld.w r3, (r14, 0x18) + 4cae: 8340 ld.b r2, (r3, 0x0) + 4cb0: 650a cmpne r2, r4 + 4cb2: 08ac bt 0x4e0a // 4e0a <__v2_printf+0x36a> + 4cb4: 9886 ld.w r4, (r14, 0x18) + 4cb6: 2400 addi r4, 1 + 4cb8: b886 st.w r4, (r14, 0x18) + 4cba: 3fa5 bseti r7, 5 + 4cbc: 074e br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4cbe: 3371 movi r3, 113 + 4cc0: 64d2 cmpne r4, r3 + 4cc2: 0ffc bf 0x4cba // 4cba <__v2_printf+0x21a> + 4cc4: 650d cmplt r3, r4 + 4cc6: 081a bt 0x4cfa // 4cfa <__v2_printf+0x25a> + 4cc8: 306f movi r0, 111 + 4cca: 6412 cmpne r4, r0 + 4ccc: 0cfc bf 0x4ec4 // 4ec4 <__v2_printf+0x424> + 4cce: 3170 movi r1, 112 + 4cd0: 6452 cmpne r4, r1 + 4cd2: 0b32 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cd4: 5d4e addi r2, r5, 4 + 4cd6: 3400 movi r4, 0 + 4cd8: 95a0 ld.w r5, (r5, 0x0) + 4cda: b845 st.w r2, (r14, 0x14) + 4cdc: 1901 addi r1, r14, 4 + 4cde: 3239 movi r2, 57 + 4ce0: b8a3 st.w r5, (r14, 0xc) + 4ce2: b884 st.w r4, (r14, 0x10) + 4ce4: 3330 movi r3, 48 + 4ce6: 180f addi r0, r14, 60 + 4ce8: 3578 movi r5, 120 + 4cea: 6084 addu r2, r1 + 4cec: 0195 lrw r4, 0xba8d // 5014 <__v2_printf+0x574> + 4cee: 3fa1 bseti r7, 1 + 4cf0: a060 st.b r3, (r0, 0x0) + 4cf2: a2a0 st.b r5, (r2, 0x0) + 4cf4: b88a st.w r4, (r14, 0x28) + 4cf6: 3402 movi r4, 2 + 4cf8: 04f1 br 0x4eda // 4eda <__v2_printf+0x43a> + 4cfa: 3275 movi r2, 117 + 4cfc: 6492 cmpne r4, r2 + 4cfe: 0d28 bf 0x4f4e // 4f4e <__v2_printf+0x4ae> + 4d00: 3378 movi r3, 120 + 4d02: 64d2 cmpne r4, r3 + 4d04: 0d44 bf 0x4f8c // 4f8c <__v2_printf+0x4ec> + 4d06: 3173 movi r1, 115 + 4d08: 6452 cmpne r4, r1 + 4d0a: 0b16 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4d0c: 3200 movi r2, 0 + 4d0e: 3037 movi r0, 55 + 4d10: 1901 addi r1, r14, 4 + 4d12: 2a00 subi r2, 1 + 4d14: 5d6e addi r3, r5, 4 + 4d16: 9580 ld.w r4, (r5, 0x0) + 4d18: 6004 addu r0, r1 + 4d1a: 3500 movi r5, 0 + 4d1c: 649a cmpne r6, r2 + 4d1e: b865 st.w r3, (r14, 0x14) + 4d20: a0a0 st.b r5, (r0, 0x0) + 4d22: 090b bt 0x4f38 // 4f38 <__v2_printf+0x498> + 4d24: 6cd3 mov r3, r4 + 4d26: 83c0 ld.b r6, (r3, 0x0) + 4d28: 3e40 cmpnei r6, 0 + 4d2a: 0910 bt 0x4f4a // 4f4a <__v2_printf+0x4aa> + 4d2c: 5bd1 subu r6, r3, r4 + 4d2e: 047f br 0x4e2c // 4e2c <__v2_printf+0x38c> + 4d30: 3840 cmpnei r0, 0 + 4d32: 0c05 bf 0x4d3c // 4d3c <__v2_printf+0x29c> + 4d34: 3037 movi r0, 55 + 4d36: 1b01 addi r3, r14, 4 + 4d38: 600c addu r0, r3 + 4d3a: a020 st.b r1, (r0, 0x0) + 4d3c: 0228 lrw r1, 0xba7c // 5018 <__v2_printf+0x578> + 4d3e: 3020 movi r0, 32 + 4d40: 681c and r0, r7 + 4d42: 3840 cmpnei r0, 0 + 4d44: b82a st.w r1, (r14, 0x28) + 4d46: 0d2b bf 0x4f9c // 4f9c <__v2_printf+0x4fc> + 4d48: 5d5e addi r2, r5, 8 + 4d4a: b845 st.w r2, (r14, 0x14) + 4d4c: 9520 ld.w r1, (r5, 0x0) + 4d4e: 9541 ld.w r2, (r5, 0x4) + 4d50: b823 st.w r1, (r14, 0xc) + 4d52: b844 st.w r2, (r14, 0x10) + 4d54: 3001 movi r0, 1 + 4d56: 681c and r0, r7 + 4d58: 3840 cmpnei r0, 0 + 4d5a: 0fce bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d5c: 98a3 ld.w r5, (r14, 0xc) + 4d5e: 9864 ld.w r3, (r14, 0x10) + 4d60: 6d4c or r5, r3 + 4d62: 3d40 cmpnei r5, 0 + 4d64: 0fc9 bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d66: 3039 movi r0, 57 + 4d68: 1d01 addi r5, r14, 4 + 4d6a: 3130 movi r1, 48 + 4d6c: 1a0f addi r2, r14, 60 + 4d6e: 6014 addu r0, r5 + 4d70: a220 st.b r1, (r2, 0x0) + 4d72: a080 st.b r4, (r0, 0x0) + 4d74: 3fa1 bseti r7, 1 + 4d76: 07c0 br 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d78: 3940 cmpnei r1, 0 + 4d7a: 0aef bt 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d7c: 3001 movi r0, 1 + 4d7e: 3120 movi r1, 32 + 4d80: 06ec br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d82: 3fa0 bseti r7, 0 + 4d84: 06ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d86: 9580 ld.w r4, (r5, 0x0) + 4d88: 3cdf btsti r4, 31 + 4d8a: 5d6e addi r3, r5, 4 + 4d8c: b887 st.w r4, (r14, 0x1c) + 4d8e: 0ee7 bf 0x4b5c // 4b5c <__v2_printf+0xbc> + 4d90: 9847 ld.w r2, (r14, 0x1c) + 4d92: 3500 movi r5, 0 + 4d94: 614a subu r5, r2 + 4d96: b8a7 st.w r5, (r14, 0x1c) + 4d98: 6d4f mov r5, r3 + 4d9a: 06e9 br 0x4b6c // 4b6c <__v2_printf+0xcc> + 4d9c: 98c6 ld.w r6, (r14, 0x18) + 4d9e: 8680 ld.b r4, (r6, 0x0) + 4da0: 322a movi r2, 42 + 4da2: 9866 ld.w r3, (r14, 0x18) + 4da4: 6492 cmpne r4, r2 + 4da6: 2300 addi r3, 1 + 4da8: 0c0b bf 0x4dbe // 4dbe <__v2_printf+0x31e> + 4daa: b865 st.w r3, (r14, 0x14) + 4dac: 3600 movi r6, 0 + 4dae: 3300 movi r3, 0 + 4db0: 2b2f subi r3, 48 + 4db2: 60d0 addu r3, r4 + 4db4: 3b09 cmphsi r3, 10 + 4db6: 9845 ld.w r2, (r14, 0x14) + 4db8: 0c0c bf 0x4dd0 // 4dd0 <__v2_printf+0x330> + 4dba: b846 st.w r2, (r14, 0x18) + 4dbc: 06a8 br 0x4b0c // 4b0c <__v2_printf+0x6c> + 4dbe: 95c0 ld.w r6, (r5, 0x0) + 4dc0: 3edf btsti r6, 31 + 4dc2: 5d8e addi r4, r5, 4 + 4dc4: 0c03 bf 0x4dca // 4dca <__v2_printf+0x32a> + 4dc6: 3600 movi r6, 0 + 4dc8: 2e00 subi r6, 1 + 4dca: 6d53 mov r5, r4 + 4dcc: b866 st.w r3, (r14, 0x18) + 4dce: 06c5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4dd0: 340a movi r4, 10 + 4dd2: 7d18 mult r4, r6 + 4dd4: 9845 ld.w r2, (r14, 0x14) + 4dd6: 6d8f mov r6, r3 + 4dd8: 6190 addu r6, r4 + 4dda: 8280 ld.b r4, (r2, 0x0) + 4ddc: 2200 addi r2, 1 + 4dde: b845 st.w r2, (r14, 0x14) + 4de0: 07e7 br 0x4dae // 4dae <__v2_printf+0x30e> + 4de2: 3200 movi r2, 0 + 4de4: b847 st.w r2, (r14, 0x1c) + 4de6: 9867 ld.w r3, (r14, 0x1c) + 4de8: 320a movi r2, 10 + 4dea: 7cc8 mult r3, r2 + 4dec: 2c2f subi r4, 48 + 4dee: 610c addu r4, r3 + 4df0: b887 st.w r4, (r14, 0x1c) + 4df2: 3300 movi r3, 0 + 4df4: 9886 ld.w r4, (r14, 0x18) + 4df6: 5c42 addi r2, r4, 1 + 4df8: 2b2f subi r3, 48 + 4dfa: 8480 ld.b r4, (r4, 0x0) + 4dfc: 60d0 addu r3, r4 + 4dfe: 3b09 cmphsi r3, 10 + 4e00: b846 st.w r2, (r14, 0x18) + 4e02: 0ff2 bf 0x4de6 // 4de6 <__v2_printf+0x346> + 4e04: 07db br 0x4dba // 4dba <__v2_printf+0x31a> + 4e06: 3fa6 bseti r7, 6 + 4e08: 06a8 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0a: 3fa4 bseti r7, 4 + 4e0c: 06a6 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0e: 3840 cmpnei r0, 0 + 4e10: 0c05 bf 0x4e1a // 4e1a <__v2_printf+0x37a> + 4e12: 3637 movi r6, 55 + 4e14: 1b01 addi r3, r14, 4 + 4e16: 618c addu r6, r3 + 4e18: a620 st.b r1, (r6, 0x0) + 4e1a: 033e lrw r1, 0x20000af0 // 501c <__v2_printf+0x57c> + 4e1c: 9100 ld.w r0, (r1, 0x0) + 4e1e: e00007cb bsr 0x5db4 // 5db4 <__GI_strerror> + 4e22: 6d03 mov r4, r0 + 4e24: e000073c bsr 0x5c9c // 5c9c <__strlen_fast> + 4e28: 6d83 mov r6, r0 + 4e2a: b8a5 st.w r5, (r14, 0x14) + 4e2c: 3500 movi r5, 0 + 4e2e: 0554 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4e30: 3840 cmpnei r0, 0 + 4e32: 0c05 bf 0x4e3c // 4e3c <__v2_printf+0x39c> + 4e34: 3037 movi r0, 55 + 4e36: 1a01 addi r2, r14, 4 + 4e38: 6008 addu r0, r2 + 4e3a: a020 st.b r1, (r0, 0x0) + 4e3c: 3420 movi r4, 32 + 4e3e: 691c and r4, r7 + 4e40: 3c40 cmpnei r4, 0 + 4e42: 0c1a bf 0x4e76 // 4e76 <__v2_printf+0x3d6> + 4e44: 5d7e addi r3, r5, 8 + 4e46: 9520 ld.w r1, (r5, 0x0) + 4e48: 9541 ld.w r2, (r5, 0x4) + 4e4a: b865 st.w r3, (r14, 0x14) + 4e4c: b823 st.w r1, (r14, 0xc) + 4e4e: b844 st.w r2, (r14, 0x10) + 4e50: 9804 ld.w r0, (r14, 0x10) + 4e52: 38df btsti r0, 31 + 4e54: 0c0f bf 0x4e72 // 4e72 <__v2_printf+0x3d2> + 4e56: 9883 ld.w r4, (r14, 0xc) + 4e58: 98a4 ld.w r5, (r14, 0x10) + 4e5a: 3200 movi r2, 0 + 4e5c: 3300 movi r3, 0 + 4e5e: 6488 cmphs r2, r2 + 4e60: 6093 subc r2, r4 + 4e62: 60d7 subc r3, r5 + 4e64: b843 st.w r2, (r14, 0xc) + 4e66: b864 st.w r3, (r14, 0x10) + 4e68: 3237 movi r2, 55 + 4e6a: 1b01 addi r3, r14, 4 + 4e6c: 352d movi r5, 45 + 4e6e: 608c addu r2, r3 + 4e70: a2a0 st.b r5, (r2, 0x0) + 4e72: 3401 movi r4, 1 + 4e74: 0438 br 0x4ee4 // 4ee4 <__v2_printf+0x444> + 4e76: 3310 movi r3, 16 + 4e78: 68dc and r3, r7 + 4e7a: 3b40 cmpnei r3, 0 + 4e7c: 0c08 bf 0x4e8c // 4e8c <__v2_printf+0x3ec> + 4e7e: 5d4e addi r2, r5, 4 + 4e80: b845 st.w r2, (r14, 0x14) + 4e82: 95a0 ld.w r5, (r5, 0x0) + 4e84: 559f asri r4, r5, 31 + 4e86: b8a3 st.w r5, (r14, 0xc) + 4e88: b884 st.w r4, (r14, 0x10) + 4e8a: 07e3 br 0x4e50 // 4e50 <__v2_printf+0x3b0> + 4e8c: 3140 movi r1, 64 + 4e8e: 685c and r1, r7 + 4e90: 5d0e addi r0, r5, 4 + 4e92: 3940 cmpnei r1, 0 + 4e94: 95a0 ld.w r5, (r5, 0x0) + 4e96: b805 st.w r0, (r14, 0x14) + 4e98: 0ff6 bf 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9a: 7557 sexth r5, r5 + 4e9c: 07f4 br 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9e: 3506 movi r5, 6 + 4ea0: 06a9 br 0x4bf2 // 4bf2 <__v2_printf+0x152> + 4ea2: 6d83 mov r6, r0 + 4ea4: 06ca br 0x4c38 // 4c38 <__v2_printf+0x198> + 4ea6: 3201 movi r2, 1 + 4ea8: 689c and r2, r7 + 4eaa: 3a40 cmpnei r2, 0 + 4eac: 0ec8 bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4eae: 1d12 addi r5, r14, 72 + 4eb0: 6158 addu r5, r6 + 4eb2: 332e movi r3, 46 + 4eb4: 3000 movi r0, 0 + 4eb6: a560 st.b r3, (r5, 0x0) + 4eb8: a501 st.b r0, (r5, 0x1) + 4eba: 06c1 br 0x4c3c // 4c3c <__v2_printf+0x19c> + 4ebc: 2400 addi r4, 1 + 4ebe: 06cd br 0x4c58 // 4c58 <__v2_printf+0x1b8> + 4ec0: 6d0f mov r4, r3 + 4ec2: 06d2 br 0x4c66 // 4c66 <__v2_printf+0x1c6> + 4ec4: 3320 movi r3, 32 + 4ec6: 68dc and r3, r7 + 4ec8: 3b40 cmpnei r3, 0 + 4eca: 0c24 bf 0x4f12 // 4f12 <__v2_printf+0x472> + 4ecc: 5d7e addi r3, r5, 8 + 4ece: 9500 ld.w r0, (r5, 0x0) + 4ed0: 9521 ld.w r1, (r5, 0x4) + 4ed2: b865 st.w r3, (r14, 0x14) + 4ed4: b803 st.w r0, (r14, 0xc) + 4ed6: b824 st.w r1, (r14, 0x10) + 4ed8: 3400 movi r4, 0 + 4eda: 3537 movi r5, 55 + 4edc: 1801 addi r0, r14, 4 + 4ede: 3200 movi r2, 0 + 4ee0: 6140 addu r5, r0 + 4ee2: a540 st.b r2, (r5, 0x0) + 4ee4: 3100 movi r1, 0 + 4ee6: 2900 subi r1, 1 + 4ee8: 9803 ld.w r0, (r14, 0xc) + 4eea: 98a4 ld.w r5, (r14, 0x10) + 4eec: 645a cmpne r6, r1 + 4eee: 6c14 or r0, r5 + 4ef0: 0cc8 bf 0x5080 // 5080 <__v2_printf+0x5e0> + 4ef2: 6c9f mov r2, r7 + 4ef4: 3a87 bclri r2, 7 + 4ef6: 3840 cmpnei r0, 0 + 4ef8: b848 st.w r2, (r14, 0x20) + 4efa: 08c6 bt 0x5086 // 5086 <__v2_printf+0x5e6> + 4efc: 3e40 cmpnei r6, 0 + 4efe: 0cac bf 0x5056 // 5056 <__v2_printf+0x5b6> + 4f00: 3c41 cmpnei r4, 1 + 4f02: 0c68 bf 0x4fd2 // 4fd2 <__v2_printf+0x532> + 4f04: 3c42 cmpnei r4, 2 + 4f06: 0c8d bf 0x5020 // 5020 <__v2_printf+0x580> + 4f08: 3300 movi r3, 0 + 4f0a: 3400 movi r4, 0 + 4f0c: b863 st.w r3, (r14, 0xc) + 4f0e: b884 st.w r4, (r14, 0x10) + 4f10: 04bf br 0x508e // 508e <__v2_printf+0x5ee> + 4f12: 3010 movi r0, 16 + 4f14: 681c and r0, r7 + 4f16: 3840 cmpnei r0, 0 + 4f18: 0c05 bf 0x4f22 // 4f22 <__v2_printf+0x482> + 4f1a: 5d8e addi r4, r5, 4 + 4f1c: b885 st.w r4, (r14, 0x14) + 4f1e: 95a0 ld.w r5, (r5, 0x0) + 4f20: 0408 br 0x4f30 // 4f30 <__v2_printf+0x490> + 4f22: 3240 movi r2, 64 + 4f24: 689c and r2, r7 + 4f26: 5d2e addi r1, r5, 4 + 4f28: 3a40 cmpnei r2, 0 + 4f2a: b825 st.w r1, (r14, 0x14) + 4f2c: 0ff9 bf 0x4f1e // 4f1e <__v2_printf+0x47e> + 4f2e: 8da0 ld.h r5, (r5, 0x0) + 4f30: 3400 movi r4, 0 + 4f32: b8a3 st.w r5, (r14, 0xc) + 4f34: b884 st.w r4, (r14, 0x10) + 4f36: 07d2 br 0x4eda // 4eda <__v2_printf+0x43a> + 4f38: 5cb8 addu r5, r4, r6 + 4f3a: 6cd3 mov r3, r4 + 4f3c: 654e cmpne r3, r5 + 4f3e: 0f77 bf 0x4e2c // 4e2c <__v2_printf+0x38c> + 4f40: 8300 ld.b r0, (r3, 0x0) + 4f42: 3840 cmpnei r0, 0 + 4f44: 0ef4 bf 0x4d2c // 4d2c <__v2_printf+0x28c> + 4f46: 2300 addi r3, 1 + 4f48: 07fa br 0x4f3c // 4f3c <__v2_printf+0x49c> + 4f4a: 2300 addi r3, 1 + 4f4c: 06ed br 0x4d26 // 4d26 <__v2_printf+0x286> + 4f4e: 3420 movi r4, 32 + 4f50: 691c and r4, r7 + 4f52: 3c40 cmpnei r4, 0 + 4f54: 0c09 bf 0x4f66 // 4f66 <__v2_printf+0x4c6> + 4f56: 5d7e addi r3, r5, 8 + 4f58: 9520 ld.w r1, (r5, 0x0) + 4f5a: 9541 ld.w r2, (r5, 0x4) + 4f5c: b865 st.w r3, (r14, 0x14) + 4f5e: b823 st.w r1, (r14, 0xc) + 4f60: b844 st.w r2, (r14, 0x10) + 4f62: 3401 movi r4, 1 + 4f64: 07bb br 0x4eda // 4eda <__v2_printf+0x43a> + 4f66: 3310 movi r3, 16 + 4f68: 68dc and r3, r7 + 4f6a: 3b40 cmpnei r3, 0 + 4f6c: 0c05 bf 0x4f76 // 4f76 <__v2_printf+0x4d6> + 4f6e: 5d0e addi r0, r5, 4 + 4f70: b805 st.w r0, (r14, 0x14) + 4f72: 95a0 ld.w r5, (r5, 0x0) + 4f74: 0408 br 0x4f84 // 4f84 <__v2_printf+0x4e4> + 4f76: 3140 movi r1, 64 + 4f78: 685c and r1, r7 + 4f7a: 5d4e addi r2, r5, 4 + 4f7c: 3940 cmpnei r1, 0 + 4f7e: b845 st.w r2, (r14, 0x14) + 4f80: 0ff9 bf 0x4f72 // 4f72 <__v2_printf+0x4d2> + 4f82: 8da0 ld.h r5, (r5, 0x0) + 4f84: 3400 movi r4, 0 + 4f86: b8a3 st.w r5, (r14, 0xc) + 4f88: b884 st.w r4, (r14, 0x10) + 4f8a: 07ec br 0x4f62 // 4f62 <__v2_printf+0x4c2> + 4f8c: 3840 cmpnei r0, 0 + 4f8e: 0c05 bf 0x4f98 // 4f98 <__v2_printf+0x4f8> + 4f90: 3337 movi r3, 55 + 4f92: 1a01 addi r2, r14, 4 + 4f94: 60c8 addu r3, r2 + 4f96: a320 st.b r1, (r3, 0x0) + 4f98: 103f lrw r1, 0xba8d // 5014 <__v2_printf+0x574> + 4f9a: 06d2 br 0x4d3e // 4d3e <__v2_printf+0x29e> + 4f9c: 3310 movi r3, 16 + 4f9e: 68dc and r3, r7 + 4fa0: 3b40 cmpnei r3, 0 + 4fa2: 0c05 bf 0x4fac // 4fac <__v2_printf+0x50c> + 4fa4: 5d0e addi r0, r5, 4 + 4fa6: b805 st.w r0, (r14, 0x14) + 4fa8: 95a0 ld.w r5, (r5, 0x0) + 4faa: 0408 br 0x4fba // 4fba <__v2_printf+0x51a> + 4fac: 3240 movi r2, 64 + 4fae: 689c and r2, r7 + 4fb0: 5d2e addi r1, r5, 4 + 4fb2: 3a40 cmpnei r2, 0 + 4fb4: b825 st.w r1, (r14, 0x14) + 4fb6: 0ff9 bf 0x4fa8 // 4fa8 <__v2_printf+0x508> + 4fb8: 8da0 ld.h r5, (r5, 0x0) + 4fba: 3300 movi r3, 0 + 4fbc: b8a3 st.w r5, (r14, 0xc) + 4fbe: b864 st.w r3, (r14, 0x10) + 4fc0: 06ca br 0x4d54 // 4d54 <__v2_printf+0x2b4> + 4fc2: 6cd3 mov r3, r4 + 4fc4: 0467 br 0x5092 // 5092 <__v2_printf+0x5f2> + 4fc6: 9884 ld.w r4, (r14, 0x10) + 4fc8: 3c40 cmpnei r4, 0 + 4fca: 080b bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fcc: 9843 ld.w r2, (r14, 0xc) + 4fce: 3a09 cmphsi r2, 10 + 4fd0: 0808 bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fd2: 9883 ld.w r4, (r14, 0xc) + 4fd4: 242f addi r4, 48 + 4fd6: 1f1a addi r7, r14, 104 + 4fd8: a787 st.b r4, (r7, 0x7) + 4fda: 1c12 addi r4, r14, 72 + 4fdc: 2426 addi r4, 39 + 4fde: 0478 br 0x50ce // 50ce <__v2_printf+0x62e> + 4fe0: 1c1c addi r4, r14, 112 + 4fe2: 3530 movi r5, 48 + 4fe4: 320a movi r2, 10 + 4fe6: 3300 movi r3, 0 + 4fe8: 9803 ld.w r0, (r14, 0xc) + 4fea: 9824 ld.w r1, (r14, 0x10) + 4fec: e00002c2 bsr 0x5570 // 5570 <__umoddi3> + 4ff0: 6014 addu r0, r5 + 4ff2: 2c00 subi r4, 1 + 4ff4: a400 st.b r0, (r4, 0x0) + 4ff6: 320a movi r2, 10 + 4ff8: 9803 ld.w r0, (r14, 0xc) + 4ffa: 9824 ld.w r1, (r14, 0x10) + 4ffc: 3300 movi r3, 0 + 4ffe: e00000e3 bsr 0x51c4 // 51c4 <__udivdi3> + 5002: b803 st.w r0, (r14, 0xc) + 5004: b824 st.w r1, (r14, 0x10) + 5006: 9823 ld.w r1, (r14, 0xc) + 5008: 98e4 ld.w r7, (r14, 0x10) + 500a: 6c5c or r1, r7 + 500c: 3940 cmpnei r1, 0 + 500e: 0beb bt 0x4fe4 // 4fe4 <__v2_printf+0x544> + 5010: 045f br 0x50ce // 50ce <__v2_printf+0x62e> + 5012: 0000 bkpt + 5014: 0000ba8d .long 0x0000ba8d + 5018: 0000ba7c .long 0x0000ba7c + 501c: 20000af0 .long 0x20000af0 + 5020: 3300 movi r3, 0 + 5022: 3400 movi r4, 0 + 5024: b863 st.w r3, (r14, 0xc) + 5026: b884 st.w r4, (r14, 0x10) + 5028: 1c1c addi r4, r14, 112 + 502a: 320f movi r2, 15 + 502c: 9803 ld.w r0, (r14, 0xc) + 502e: 982a ld.w r1, (r14, 0x28) + 5030: 6808 and r0, r2 + 5032: 6004 addu r0, r1 + 5034: 80a0 ld.b r5, (r0, 0x0) + 5036: 2c00 subi r4, 1 + 5038: 98e4 ld.w r7, (r14, 0x10) + 503a: a4a0 st.b r5, (r4, 0x0) + 503c: 98a4 ld.w r5, (r14, 0x10) + 503e: 9863 ld.w r3, (r14, 0xc) + 5040: 471c lsli r0, r7, 28 + 5042: 4de4 lsri r7, r5, 4 + 5044: 4b24 lsri r1, r3, 4 + 5046: b8e4 st.w r7, (r14, 0x10) + 5048: 6c04 or r0, r1 + 504a: 9864 ld.w r3, (r14, 0x10) + 504c: b803 st.w r0, (r14, 0xc) + 504e: 6c0c or r0, r3 + 5050: 3840 cmpnei r0, 0 + 5052: 0bed bt 0x502c // 502c <__v2_printf+0x58c> + 5054: 043d br 0x50ce // 50ce <__v2_printf+0x62e> + 5056: 3c40 cmpnei r4, 0 + 5058: 0808 bt 0x5068 // 5068 <__v2_printf+0x5c8> + 505a: 3301 movi r3, 1 + 505c: 68dc and r3, r7 + 505e: 3b40 cmpnei r3, 0 + 5060: 0c04 bf 0x5068 // 5068 <__v2_printf+0x5c8> + 5062: 1f1a addi r7, r14, 104 + 5064: 3430 movi r4, 48 + 5066: 07b9 br 0x4fd8 // 4fd8 <__v2_printf+0x538> + 5068: 1c1c addi r4, r14, 112 + 506a: 0432 br 0x50ce // 50ce <__v2_printf+0x62e> + 506c: 322b movi r2, 43 + 506e: 649a cmpne r6, r2 + 5070: 0802 bt 0x5074 // 5074 <__v2_printf+0x5d4> + 5072: 0614 br 0x4c9a // 4c9a <__v2_printf+0x1fa> + 5074: 1c12 addi r4, r14, 72 + 5076: 6c13 mov r0, r4 + 5078: e0000612 bsr 0x5c9c // 5c9c <__strlen_fast> + 507c: 6d83 mov r6, r0 + 507e: 06d7 br 0x4e2c // 4e2c <__v2_printf+0x38c> + 5080: 3840 cmpnei r0, 0 + 5082: b8e8 st.w r7, (r14, 0x20) + 5084: 0f3e bf 0x4f00 // 4f00 <__v2_printf+0x460> + 5086: 3c41 cmpnei r4, 1 + 5088: 0f9f bf 0x4fc6 // 4fc6 <__v2_printf+0x526> + 508a: 3c42 cmpnei r4, 2 + 508c: 0fce bf 0x5028 // 5028 <__v2_printf+0x588> + 508e: 1b1c addi r3, r14, 112 + 5090: 3707 movi r7, 7 + 5092: 9823 ld.w r1, (r14, 0xc) + 5094: 685c and r1, r7 + 5096: 212f addi r1, 48 + 5098: 9804 ld.w r0, (r14, 0x10) + 509a: 7484 zextb r2, r1 + 509c: 9823 ld.w r1, (r14, 0xc) + 509e: 40bd lsli r5, r0, 29 + 50a0: 4903 lsri r0, r1, 3 + 50a2: 9824 ld.w r1, (r14, 0x10) + 50a4: 4923 lsri r1, r1, 3 + 50a6: b824 st.w r1, (r14, 0x10) + 50a8: 6d40 or r5, r0 + 50aa: 9804 ld.w r0, (r14, 0x10) + 50ac: b8a3 st.w r5, (r14, 0xc) + 50ae: 6d40 or r5, r0 + 50b0: 5b83 subi r4, r3, 1 + 50b2: 3d40 cmpnei r5, 0 + 50b4: a440 st.b r2, (r4, 0x0) + 50b6: 0b86 bt 0x4fc2 // 4fc2 <__v2_printf+0x522> + 50b8: 3701 movi r7, 1 + 50ba: 9828 ld.w r1, (r14, 0x20) + 50bc: 69c4 and r7, r1 + 50be: 3f40 cmpnei r7, 0 + 50c0: 0c07 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c2: 3530 movi r5, 48 + 50c4: 654a cmpne r2, r5 + 50c6: 0c04 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c8: 5b87 subi r4, r3, 2 + 50ca: 3330 movi r3, 48 + 50cc: a460 st.b r3, (r4, 0x0) + 50ce: 6d5b mov r5, r6 + 50d0: 1e1c addi r6, r14, 112 + 50d2: 6192 subu r6, r4 + 50d4: 98e8 ld.w r7, (r14, 0x20) + 50d6: 6595 cmplt r5, r6 + 50d8: b8a8 st.w r5, (r14, 0x20) + 50da: 0c02 bf 0x50de // 50de <__v2_printf+0x63e> + 50dc: b8c8 st.w r6, (r14, 0x20) + 50de: 3037 movi r0, 55 + 50e0: 1b01 addi r3, r14, 4 + 50e2: 600c addu r0, r3 + 50e4: 8040 ld.b r2, (r0, 0x0) + 50e6: 3a40 cmpnei r2, 0 + 50e8: 0c04 bf 0x50f0 // 50f0 <__v2_printf+0x650> + 50ea: 9828 ld.w r1, (r14, 0x20) + 50ec: 2100 addi r1, 1 + 50ee: b828 st.w r1, (r14, 0x20) + 50f0: 3002 movi r0, 2 + 50f2: 681c and r0, r7 + 50f4: 3840 cmpnei r0, 0 + 50f6: b80b st.w r0, (r14, 0x2c) + 50f8: 0c04 bf 0x5100 // 5100 <__v2_printf+0x660> + 50fa: 9868 ld.w r3, (r14, 0x20) + 50fc: 2301 addi r3, 2 + 50fe: b868 st.w r3, (r14, 0x20) + 5100: 3284 movi r2, 132 + 5102: 689c and r2, r7 + 5104: 3a40 cmpnei r2, 0 + 5106: b84c st.w r2, (r14, 0x30) + 5108: 080b bt 0x511e // 511e <__v2_printf+0x67e> + 510a: 3310 movi r3, 16 + 510c: 1a0c addi r2, r14, 48 + 510e: 9827 ld.w r1, (r14, 0x1c) + 5110: 9808 ld.w r0, (r14, 0x20) + 5112: 60c8 addu r3, r2 + 5114: 5901 subu r0, r1, r0 + 5116: 6f4f mov r13, r3 + 5118: 1129 lrw r1, 0xac9c // 51bc <__v2_printf+0x71c> + 511a: e3fffca9 bsr 0x4a6c // 4a6c + 511e: 3137 movi r1, 55 + 5120: 1801 addi r0, r14, 4 + 5122: 6040 addu r1, r0 + 5124: 8160 ld.b r3, (r1, 0x0) + 5126: 3b40 cmpnei r3, 0 + 5128: 0c0b bf 0x513e // 513e <__v2_printf+0x69e> + 512a: 9830 ld.w r1, (r14, 0x40) + 512c: 9101 ld.w r0, (r1, 0x4) + 512e: b802 st.w r0, (r14, 0x8) + 5130: 1b0c addi r3, r14, 48 + 5132: 300b movi r0, 11 + 5134: 9140 ld.w r2, (r1, 0x0) + 5136: 600c addu r0, r3 + 5138: 3101 movi r1, 1 + 513a: 9862 ld.w r3, (r14, 0x8) + 513c: 7bcd jsr r3 + 513e: 984b ld.w r2, (r14, 0x2c) + 5140: 3a40 cmpnei r2, 0 + 5142: 0c07 bf 0x5150 // 5150 <__v2_printf+0x6b0> + 5144: 9830 ld.w r1, (r14, 0x40) + 5146: 9140 ld.w r2, (r1, 0x0) + 5148: 9161 ld.w r3, (r1, 0x4) + 514a: 180f addi r0, r14, 60 + 514c: 3102 movi r1, 2 + 514e: 7bcd jsr r3 + 5150: 3080 movi r0, 128 + 5152: 984c ld.w r2, (r14, 0x30) + 5154: 640a cmpne r2, r0 + 5156: 080b bt 0x516c // 516c <__v2_printf+0x6cc> + 5158: 9827 ld.w r1, (r14, 0x1c) + 515a: 9868 ld.w r3, (r14, 0x20) + 515c: 590d subu r0, r1, r3 + 515e: 1a0c addi r2, r14, 48 + 5160: 3110 movi r1, 16 + 5162: 6048 addu r1, r2 + 5164: 6f47 mov r13, r1 + 5166: 1037 lrw r1, 0xacac // 51c0 <__v2_printf+0x720> + 5168: e3fffc82 bsr 0x4a6c // 4a6c + 516c: 5d19 subu r0, r5, r6 + 516e: 1b0c addi r3, r14, 48 + 5170: 3510 movi r5, 16 + 5172: 614c addu r5, r3 + 5174: 6f57 mov r13, r5 + 5176: 6d77 mov r5, r13 + 5178: 1032 lrw r1, 0xacac // 51c0 <__v2_printf+0x720> + 517a: e3fffc79 bsr 0x4a6c // 4a6c + 517e: 9500 ld.w r0, (r5, 0x0) + 5180: 9040 ld.w r2, (r0, 0x0) + 5182: 9061 ld.w r3, (r0, 0x4) + 5184: 6c13 mov r0, r4 + 5186: 3404 movi r4, 4 + 5188: 6c5b mov r1, r6 + 518a: 691c and r4, r7 + 518c: 7bcd jsr r3 + 518e: 3c40 cmpnei r4, 0 + 5190: 0c08 bf 0x51a0 // 51a0 <__v2_printf+0x700> + 5192: 9828 ld.w r1, (r14, 0x20) + 5194: 98c7 ld.w r6, (r14, 0x1c) + 5196: 5e05 subu r0, r6, r1 + 5198: 6f57 mov r13, r5 + 519a: 1029 lrw r1, 0xac9c // 51bc <__v2_printf+0x71c> + 519c: e3fffc68 bsr 0x4a6c // 4a6c + 51a0: 98a7 ld.w r5, (r14, 0x1c) + 51a2: 9848 ld.w r2, (r14, 0x20) + 51a4: 6495 cmplt r5, r2 + 51a6: 0c02 bf 0x51aa // 51aa <__v2_printf+0x70a> + 51a8: 6d4b mov r5, r2 + 51aa: 9809 ld.w r0, (r14, 0x24) + 51ac: 6014 addu r0, r5 + 51ae: b809 st.w r0, (r14, 0x24) + 51b0: 98a5 ld.w r5, (r14, 0x14) + 51b2: e800fc84 br 0x4aba // 4aba <__v2_printf+0x1a> + 51b6: 9809 ld.w r0, (r14, 0x24) + 51b8: 141c addi r14, r14, 112 + 51ba: 1494 pop r4-r7, r15 + 51bc: 0000ac9c .long 0x0000ac9c + 51c0: 0000acac .long 0x0000acac + +000051c4 <__udivdi3>: + 51c4: 14d4 push r4-r7, r15 + 51c6: 1426 subi r14, r14, 24 + 51c8: 6dc7 mov r7, r1 + 51ca: 3b40 cmpnei r3, 0 + 51cc: 6d03 mov r4, r0 + 51ce: 6c4f mov r1, r3 + 51d0: 6d8b mov r6, r2 + 51d2: b800 st.w r0, (r14, 0x0) + 51d4: 6d5f mov r5, r7 + 51d6: 085b bt 0x528c // 528c <__udivdi3+0xc8> + 51d8: 649c cmphs r7, r2 + 51da: 0874 bt 0x52c2 // 52c2 <__udivdi3+0xfe> + 51dc: 003d lrw r1, 0xffff // 5564 <__udivdi3+0x3a0> + 51de: 6484 cmphs r1, r2 + 51e0: 0cdc bf 0x5398 // 5398 <__udivdi3+0x1d4> + 51e2: 31ff movi r1, 255 + 51e4: 6484 cmphs r1, r2 + 51e6: 0802 bt 0x51ea // 51ea <__udivdi3+0x26> + 51e8: 3308 movi r3, 8 + 51ea: 6c4b mov r1, r2 + 51ec: 704d lsr r1, r3 + 51ee: 0100 lrw r0, 0xab9c // 5568 <__udivdi3+0x3a4> + 51f0: 6040 addu r1, r0 + 51f2: 8120 ld.b r1, (r1, 0x0) + 51f4: 60c4 addu r3, r1 + 51f6: 3120 movi r1, 32 + 51f8: 604e subu r1, r3 + 51fa: 3940 cmpnei r1, 0 + 51fc: 0c09 bf 0x520e // 520e <__udivdi3+0x4a> + 51fe: 6d53 mov r5, r4 + 5200: 7084 lsl r2, r1 + 5202: 71c4 lsl r7, r1 + 5204: 714d lsr r5, r3 + 5206: 7104 lsl r4, r1 + 5208: 6d8b mov r6, r2 + 520a: 6d5c or r5, r7 + 520c: b880 st.w r4, (r14, 0x0) + 520e: 4e90 lsri r4, r6, 16 + 5210: 6c53 mov r1, r4 + 5212: 6c17 mov r0, r5 + 5214: e000117e bsr 0x7510 // 7510 <__umodsi3> + 5218: b801 st.w r0, (r14, 0x4) + 521a: 6c53 mov r1, r4 + 521c: 6c17 mov r0, r5 + 521e: e0001155 bsr 0x74c8 // 74c8 <__udivsi3> + 5222: 75d9 zexth r7, r6 + 5224: 9861 ld.w r3, (r14, 0x4) + 5226: 9820 ld.w r1, (r14, 0x0) + 5228: 6c9f mov r2, r7 + 522a: 4370 lsli r3, r3, 16 + 522c: 4930 lsri r1, r1, 16 + 522e: 7c80 mult r2, r0 + 5230: 6cc4 or r3, r1 + 5232: 648c cmphs r3, r2 + 5234: 6d43 mov r5, r0 + 5236: 0808 bt 0x5246 // 5246 <__udivdi3+0x82> + 5238: 60d8 addu r3, r6 + 523a: 658c cmphs r3, r6 + 523c: 5823 subi r1, r0, 1 + 523e: 0c03 bf 0x5244 // 5244 <__udivdi3+0x80> + 5240: 648c cmphs r3, r2 + 5242: 0d8e bf 0x555e // 555e <__udivdi3+0x39a> + 5244: 6d47 mov r5, r1 + 5246: 60ca subu r3, r2 + 5248: 6c53 mov r1, r4 + 524a: 6c0f mov r0, r3 + 524c: b862 st.w r3, (r14, 0x8) + 524e: e0001161 bsr 0x7510 // 7510 <__umodsi3> + 5252: 9862 ld.w r3, (r14, 0x8) + 5254: b801 st.w r0, (r14, 0x4) + 5256: 6c53 mov r1, r4 + 5258: 6c0f mov r0, r3 + 525a: e0001137 bsr 0x74c8 // 74c8 <__udivsi3> + 525e: 9841 ld.w r2, (r14, 0x4) + 5260: d86e1000 ld.h r3, (r14, 0x0) + 5264: 4250 lsli r2, r2, 16 + 5266: 74cd zexth r3, r3 + 5268: 7dc0 mult r7, r0 + 526a: 6c8c or r2, r3 + 526c: 65c8 cmphs r2, r7 + 526e: 6d03 mov r4, r0 + 5270: 0808 bt 0x5280 // 5280 <__udivdi3+0xbc> + 5272: 6098 addu r2, r6 + 5274: 6588 cmphs r2, r6 + 5276: 5863 subi r3, r0, 1 + 5278: 0d4d bf 0x5512 // 5512 <__udivdi3+0x34e> + 527a: 65c8 cmphs r2, r7 + 527c: 094b bt 0x5512 // 5512 <__udivdi3+0x34e> + 527e: 2c01 subi r4, 2 + 5280: 4510 lsli r0, r5, 16 + 5282: 3700 movi r7, 0 + 5284: 6c10 or r0, r4 + 5286: 6c5f mov r1, r7 + 5288: 1406 addi r14, r14, 24 + 528a: 1494 pop r4-r7, r15 + 528c: 64dc cmphs r7, r3 + 528e: 0c76 bf 0x537a // 537a <__udivdi3+0x1b6> + 5290: 026a lrw r3, 0xffff // 5564 <__udivdi3+0x3a0> + 5292: 644c cmphs r3, r1 + 5294: 0878 bt 0x5384 // 5384 <__udivdi3+0x1c0> + 5296: 0269 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 5298: 644c cmphs r3, r1 + 529a: 0d48 bf 0x552a // 552a <__udivdi3+0x366> + 529c: 3610 movi r6, 16 + 529e: 6cc7 mov r3, r1 + 52a0: 70d9 lsr r3, r6 + 52a2: 020d lrw r0, 0xab9c // 5568 <__udivdi3+0x3a4> + 52a4: 60c0 addu r3, r0 + 52a6: 8360 ld.b r3, (r3, 0x0) + 52a8: 618c addu r6, r3 + 52aa: 3020 movi r0, 32 + 52ac: 5879 subu r3, r0, r6 + 52ae: 3b40 cmpnei r3, 0 + 52b0: b860 st.w r3, (r14, 0x0) + 52b2: 0878 bt 0x53a2 // 53a2 <__udivdi3+0x1de> + 52b4: 65c4 cmphs r1, r7 + 52b6: 0d40 bf 0x5536 // 5536 <__udivdi3+0x372> + 52b8: 6490 cmphs r4, r2 + 52ba: 6c0f mov r0, r3 + 52bc: 600d addc r0, r3 + 52be: 3700 movi r7, 0 + 52c0: 045f br 0x537e // 537e <__udivdi3+0x1ba> + 52c2: 3a40 cmpnei r2, 0 + 52c4: 0808 bt 0x52d4 // 52d4 <__udivdi3+0x110> + 52c6: 3100 movi r1, 0 + 52c8: 3001 movi r0, 1 + 52ca: b861 st.w r3, (r14, 0x4) + 52cc: e00010fe bsr 0x74c8 // 74c8 <__udivsi3> + 52d0: 6d83 mov r6, r0 + 52d2: 9861 ld.w r3, (r14, 0x4) + 52d4: 025b lrw r2, 0xffff // 5564 <__udivdi3+0x3a0> + 52d6: 6588 cmphs r2, r6 + 52d8: 085b bt 0x538e // 538e <__udivdi3+0x1ca> + 52da: 027a lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 52dc: 658c cmphs r3, r6 + 52de: 0d28 bf 0x552e // 552e <__udivdi3+0x36a> + 52e0: 3310 movi r3, 16 + 52e2: 6c9b mov r2, r6 + 52e4: 023e lrw r1, 0xab9c // 5568 <__udivdi3+0x3a4> + 52e6: 708d lsr r2, r3 + 52e8: 6084 addu r2, r1 + 52ea: 8240 ld.b r2, (r2, 0x0) + 52ec: 5a2c addu r1, r2, r3 + 52ee: 3220 movi r2, 32 + 52f0: 6086 subu r2, r1 + 52f2: 3a40 cmpnei r2, 0 + 52f4: 08c0 bt 0x5474 // 5474 <__udivdi3+0x2b0> + 52f6: 74d9 zexth r3, r6 + 52f8: 5f99 subu r4, r7, r6 + 52fa: 4eb0 lsri r5, r6, 16 + 52fc: b861 st.w r3, (r14, 0x4) + 52fe: 3701 movi r7, 1 + 5300: 6c57 mov r1, r5 + 5302: 6c13 mov r0, r4 + 5304: e0001106 bsr 0x7510 // 7510 <__umodsi3> + 5308: b802 st.w r0, (r14, 0x8) + 530a: 6c57 mov r1, r5 + 530c: 6c13 mov r0, r4 + 530e: e00010dd bsr 0x74c8 // 74c8 <__udivsi3> + 5312: 9862 ld.w r3, (r14, 0x8) + 5314: 4330 lsli r1, r3, 16 + 5316: 9860 ld.w r3, (r14, 0x0) + 5318: 9841 ld.w r2, (r14, 0x4) + 531a: 4b70 lsri r3, r3, 16 + 531c: 7c80 mult r2, r0 + 531e: 6cc4 or r3, r1 + 5320: 648c cmphs r3, r2 + 5322: 6d03 mov r4, r0 + 5324: 0808 bt 0x5334 // 5334 <__udivdi3+0x170> + 5326: 60d8 addu r3, r6 + 5328: 658c cmphs r3, r6 + 532a: 5823 subi r1, r0, 1 + 532c: 0c03 bf 0x5332 // 5332 <__udivdi3+0x16e> + 532e: 648c cmphs r3, r2 + 5330: 0d14 bf 0x5558 // 5558 <__udivdi3+0x394> + 5332: 6d07 mov r4, r1 + 5334: 60ca subu r3, r2 + 5336: 6c57 mov r1, r5 + 5338: 6c0f mov r0, r3 + 533a: b863 st.w r3, (r14, 0xc) + 533c: e00010ea bsr 0x7510 // 7510 <__umodsi3> + 5340: 9863 ld.w r3, (r14, 0xc) + 5342: 6c57 mov r1, r5 + 5344: b802 st.w r0, (r14, 0x8) + 5346: 6c0f mov r0, r3 + 5348: e00010c0 bsr 0x74c8 // 74c8 <__udivsi3> + 534c: 9842 ld.w r2, (r14, 0x8) + 534e: d86e1000 ld.h r3, (r14, 0x0) + 5352: 9821 ld.w r1, (r14, 0x4) + 5354: 4250 lsli r2, r2, 16 + 5356: 74cd zexth r3, r3 + 5358: 7c40 mult r1, r0 + 535a: 6cc8 or r3, r2 + 535c: 644c cmphs r3, r1 + 535e: 6d43 mov r5, r0 + 5360: 0808 bt 0x5370 // 5370 <__udivdi3+0x1ac> + 5362: 60d8 addu r3, r6 + 5364: 658c cmphs r3, r6 + 5366: 5843 subi r2, r0, 1 + 5368: 0cd3 bf 0x550e // 550e <__udivdi3+0x34a> + 536a: 644c cmphs r3, r1 + 536c: 08d1 bt 0x550e // 550e <__udivdi3+0x34a> + 536e: 2d01 subi r5, 2 + 5370: 4410 lsli r0, r4, 16 + 5372: 6c14 or r0, r5 + 5374: 6c5f mov r1, r7 + 5376: 1406 addi r14, r14, 24 + 5378: 1494 pop r4-r7, r15 + 537a: 3700 movi r7, 0 + 537c: 3000 movi r0, 0 + 537e: 6c5f mov r1, r7 + 5380: 1406 addi r14, r14, 24 + 5382: 1494 pop r4-r7, r15 + 5384: 33ff movi r3, 255 + 5386: 644c cmphs r3, r1 + 5388: 6583 mvcv r6 + 538a: 46c3 lsli r6, r6, 3 + 538c: 0789 br 0x529e // 529e <__udivdi3+0xda> + 538e: 32ff movi r2, 255 + 5390: 6588 cmphs r2, r6 + 5392: 0ba8 bt 0x52e2 // 52e2 <__udivdi3+0x11e> + 5394: 3308 movi r3, 8 + 5396: 07a6 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5398: 1375 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 539a: 648c cmphs r3, r2 + 539c: 0ccb bf 0x5532 // 5532 <__udivdi3+0x36e> + 539e: 3310 movi r3, 16 + 53a0: 0725 br 0x51ea // 51ea <__udivdi3+0x26> + 53a2: 9800 ld.w r0, (r14, 0x0) + 53a4: 6ccb mov r3, r2 + 53a6: 6d4b mov r5, r2 + 53a8: 7040 lsl r1, r0 + 53aa: 7140 lsl r5, r0 + 53ac: 70d9 lsr r3, r6 + 53ae: 6cc4 or r3, r1 + 53b0: b8a3 st.w r5, (r14, 0xc) + 53b2: 6d53 mov r5, r4 + 53b4: 6c4f mov r1, r3 + 53b6: 7159 lsr r5, r6 + 53b8: 6cdf mov r3, r7 + 53ba: 71c0 lsl r7, r0 + 53bc: 6d5c or r5, r7 + 53be: 70d9 lsr r3, r6 + 53c0: b8a1 st.w r5, (r14, 0x4) + 53c2: 49b0 lsri r5, r1, 16 + 53c4: b822 st.w r1, (r14, 0x8) + 53c6: 75c5 zexth r7, r1 + 53c8: 6c0f mov r0, r3 + 53ca: 6c57 mov r1, r5 + 53cc: b864 st.w r3, (r14, 0x10) + 53ce: e00010a1 bsr 0x7510 // 7510 <__umodsi3> + 53d2: 9864 ld.w r3, (r14, 0x10) + 53d4: 6d83 mov r6, r0 + 53d6: 6c57 mov r1, r5 + 53d8: 6c0f mov r0, r3 + 53da: e0001077 bsr 0x74c8 // 74c8 <__udivsi3> + 53de: 6c5f mov r1, r7 + 53e0: 7c40 mult r1, r0 + 53e2: 6c87 mov r2, r1 + 53e4: 4630 lsli r1, r6, 16 + 53e6: 98c1 ld.w r6, (r14, 0x4) + 53e8: 4ed0 lsri r6, r6, 16 + 53ea: 6d84 or r6, r1 + 53ec: 6498 cmphs r6, r2 + 53ee: 6cc3 mov r3, r0 + 53f0: 0807 bt 0x53fe // 53fe <__udivdi3+0x23a> + 53f2: 5823 subi r1, r0, 1 + 53f4: 9802 ld.w r0, (r14, 0x8) + 53f6: 6180 addu r6, r0 + 53f8: 6418 cmphs r6, r0 + 53fa: 08a6 bt 0x5546 // 5546 <__udivdi3+0x382> + 53fc: 6cc7 mov r3, r1 + 53fe: 618a subu r6, r2 + 5400: 6c57 mov r1, r5 + 5402: 6c1b mov r0, r6 + 5404: b865 st.w r3, (r14, 0x14) + 5406: e0001085 bsr 0x7510 // 7510 <__umodsi3> + 540a: b804 st.w r0, (r14, 0x10) + 540c: 6c57 mov r1, r5 + 540e: 6c1b mov r0, r6 + 5410: e000105c bsr 0x74c8 // 74c8 <__udivsi3> + 5414: 9864 ld.w r3, (r14, 0x10) + 5416: 6c9f mov r2, r7 + 5418: 43f0 lsli r7, r3, 16 + 541a: d86e1002 ld.h r3, (r14, 0x4) + 541e: 744d zexth r1, r3 + 5420: 7c80 mult r2, r0 + 5422: 6dc4 or r7, r1 + 5424: 649c cmphs r7, r2 + 5426: 9865 ld.w r3, (r14, 0x14) + 5428: 0807 bt 0x5436 // 5436 <__udivdi3+0x272> + 542a: 98a2 ld.w r5, (r14, 0x8) + 542c: 61d4 addu r7, r5 + 542e: 655c cmphs r7, r5 + 5430: 5823 subi r1, r0, 1 + 5432: 0885 bt 0x553c // 553c <__udivdi3+0x378> + 5434: 6c07 mov r0, r1 + 5436: 4370 lsli r3, r3, 16 + 5438: 6c0c or r0, r3 + 543a: 74c1 zexth r3, r0 + 543c: 61ca subu r7, r2 + 543e: 9843 ld.w r2, (r14, 0xc) + 5440: 7549 zexth r5, r2 + 5442: 4830 lsri r1, r0, 16 + 5444: 4a50 lsri r2, r2, 16 + 5446: 6d8f mov r6, r3 + 5448: 7d94 mult r6, r5 + 544a: 7cc8 mult r3, r2 + 544c: 7d44 mult r5, r1 + 544e: 60d4 addu r3, r5 + 5450: 7c48 mult r1, r2 + 5452: 4e50 lsri r2, r6, 16 + 5454: 60c8 addu r3, r2 + 5456: 654c cmphs r3, r5 + 5458: 0804 bt 0x5460 // 5460 <__udivdi3+0x29c> + 545a: 3280 movi r2, 128 + 545c: 4249 lsli r2, r2, 9 + 545e: 6048 addu r1, r2 + 5460: 4b50 lsri r2, r3, 16 + 5462: 6048 addu r1, r2 + 5464: 645c cmphs r7, r1 + 5466: 0c5f bf 0x5524 // 5524 <__udivdi3+0x360> + 5468: 645e cmpne r7, r1 + 546a: 0c56 bf 0x5516 // 5516 <__udivdi3+0x352> + 546c: 3700 movi r7, 0 + 546e: 6c5f mov r1, r7 + 5470: 1406 addi r14, r14, 24 + 5472: 1494 pop r4-r7, r15 + 5474: 6d53 mov r5, r4 + 5476: 6cdf mov r3, r7 + 5478: 7145 lsr r5, r1 + 547a: 71c8 lsl r7, r2 + 547c: 7188 lsl r6, r2 + 547e: 6d5c or r5, r7 + 5480: 70c5 lsr r3, r1 + 5482: 6dd7 mov r7, r5 + 5484: b8a3 st.w r5, (r14, 0xc) + 5486: 4eb0 lsri r5, r6, 16 + 5488: 7108 lsl r4, r2 + 548a: 6c57 mov r1, r5 + 548c: 7499 zexth r2, r6 + 548e: 6c0f mov r0, r3 + 5490: b841 st.w r2, (r14, 0x4) + 5492: b880 st.w r4, (r14, 0x0) + 5494: b862 st.w r3, (r14, 0x8) + 5496: e000103d bsr 0x7510 // 7510 <__umodsi3> + 549a: 9862 ld.w r3, (r14, 0x8) + 549c: 6d03 mov r4, r0 + 549e: 6c57 mov r1, r5 + 54a0: 6c0f mov r0, r3 + 54a2: e0001013 bsr 0x74c8 // 74c8 <__udivsi3> + 54a6: 6cc3 mov r3, r0 + 54a8: 7499 zexth r2, r6 + 54aa: 7cc8 mult r3, r2 + 54ac: 4450 lsli r2, r4, 16 + 54ae: 4f90 lsri r4, r7, 16 + 54b0: 6d08 or r4, r2 + 54b2: 64d0 cmphs r4, r3 + 54b4: 6c43 mov r1, r0 + 54b6: b802 st.w r0, (r14, 0x8) + 54b8: 080b bt 0x54ce // 54ce <__udivdi3+0x30a> + 54ba: 6118 addu r4, r6 + 54bc: 6c87 mov r2, r1 + 54be: 6590 cmphs r4, r6 + 54c0: 2a00 subi r2, 1 + 54c2: 0c49 bf 0x5554 // 5554 <__udivdi3+0x390> + 54c4: 64d0 cmphs r4, r3 + 54c6: 0847 bt 0x5554 // 5554 <__udivdi3+0x390> + 54c8: 2a00 subi r2, 1 + 54ca: b842 st.w r2, (r14, 0x8) + 54cc: 6118 addu r4, r6 + 54ce: 610e subu r4, r3 + 54d0: 6c57 mov r1, r5 + 54d2: 6c13 mov r0, r4 + 54d4: e000101e bsr 0x7510 // 7510 <__umodsi3> + 54d8: 6dc3 mov r7, r0 + 54da: 6c57 mov r1, r5 + 54dc: 6c13 mov r0, r4 + 54de: e0000ff5 bsr 0x74c8 // 74c8 <__udivsi3> + 54e2: d84e1006 ld.h r2, (r14, 0xc) + 54e6: 74d9 zexth r3, r6 + 54e8: 47f0 lsli r7, r7, 16 + 54ea: 7509 zexth r4, r2 + 54ec: 7cc0 mult r3, r0 + 54ee: 6dd0 or r7, r4 + 54f0: 64dc cmphs r7, r3 + 54f2: 0809 bt 0x5504 // 5504 <__udivdi3+0x340> + 54f4: 61d8 addu r7, r6 + 54f6: 659c cmphs r7, r6 + 54f8: 5843 subi r2, r0, 1 + 54fa: 0c2b bf 0x5550 // 5550 <__udivdi3+0x38c> + 54fc: 64dc cmphs r7, r3 + 54fe: 0829 bt 0x5550 // 5550 <__udivdi3+0x38c> + 5500: 2801 subi r0, 2 + 5502: 61d8 addu r7, r6 + 5504: 5f8d subu r4, r7, r3 + 5506: 9862 ld.w r3, (r14, 0x8) + 5508: 43f0 lsli r7, r3, 16 + 550a: 6dc0 or r7, r0 + 550c: 06fa br 0x5300 // 5300 <__udivdi3+0x13c> + 550e: 6d4b mov r5, r2 + 5510: 0730 br 0x5370 // 5370 <__udivdi3+0x1ac> + 5512: 6d0f mov r4, r3 + 5514: 06b6 br 0x5280 // 5280 <__udivdi3+0xbc> + 5516: 9840 ld.w r2, (r14, 0x0) + 5518: 4370 lsli r3, r3, 16 + 551a: 7599 zexth r6, r6 + 551c: 7108 lsl r4, r2 + 551e: 60d8 addu r3, r6 + 5520: 64d0 cmphs r4, r3 + 5522: 0ba5 bt 0x546c // 546c <__udivdi3+0x2a8> + 5524: 2800 subi r0, 1 + 5526: 3700 movi r7, 0 + 5528: 07a3 br 0x546e // 546e <__udivdi3+0x2aa> + 552a: 3618 movi r6, 24 + 552c: 06b9 br 0x529e // 529e <__udivdi3+0xda> + 552e: 3318 movi r3, 24 + 5530: 06d9 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5532: 3318 movi r3, 24 + 5534: 065b br 0x51ea // 51ea <__udivdi3+0x26> + 5536: 3700 movi r7, 0 + 5538: 3001 movi r0, 1 + 553a: 0722 br 0x537e // 537e <__udivdi3+0x1ba> + 553c: 649c cmphs r7, r2 + 553e: 0b7b bt 0x5434 // 5434 <__udivdi3+0x270> + 5540: 2801 subi r0, 2 + 5542: 61d4 addu r7, r5 + 5544: 0779 br 0x5436 // 5436 <__udivdi3+0x272> + 5546: 6498 cmphs r6, r2 + 5548: 0b5a bt 0x53fc // 53fc <__udivdi3+0x238> + 554a: 2b01 subi r3, 2 + 554c: 6180 addu r6, r0 + 554e: 0758 br 0x53fe // 53fe <__udivdi3+0x23a> + 5550: 6c0b mov r0, r2 + 5552: 07d9 br 0x5504 // 5504 <__udivdi3+0x340> + 5554: b842 st.w r2, (r14, 0x8) + 5556: 07bc br 0x54ce // 54ce <__udivdi3+0x30a> + 5558: 2c01 subi r4, 2 + 555a: 60d8 addu r3, r6 + 555c: 06ec br 0x5334 // 5334 <__udivdi3+0x170> + 555e: 2d01 subi r5, 2 + 5560: 60d8 addu r3, r6 + 5562: 0672 br 0x5246 // 5246 <__udivdi3+0x82> + 5564: 0000ffff .long 0x0000ffff + 5568: 0000ab9c .long 0x0000ab9c + 556c: 00ffffff .long 0x00ffffff + +00005570 <__umoddi3>: + 5570: 14d4 push r4-r7, r15 + 5572: 1427 subi r14, r14, 28 + 5574: 6d07 mov r4, r1 + 5576: 6c4f mov r1, r3 + 5578: 6d43 mov r5, r0 + 557a: 3940 cmpnei r1, 0 + 557c: 6dcf mov r7, r3 + 557e: 6c0b mov r0, r2 + 5580: b8a0 st.w r5, (r14, 0x0) + 5582: 6cd3 mov r3, r4 + 5584: 085a bt 0x5638 // 5638 <__umoddi3+0xc8> + 5586: 6490 cmphs r4, r2 + 5588: 0877 bt 0x5676 // 5676 <__umoddi3+0x106> + 558a: 0120 lrw r1, 0xffff // 5904 <__umoddi3+0x394> + 558c: 6484 cmphs r1, r2 + 558e: 0cd2 bf 0x5732 // 5732 <__umoddi3+0x1c2> + 5590: 31ff movi r1, 255 + 5592: 6484 cmphs r1, r2 + 5594: 0802 bt 0x5598 // 5598 <__umoddi3+0x28> + 5596: 3708 movi r7, 8 + 5598: 6c43 mov r1, r0 + 559a: 705d lsr r1, r7 + 559c: 01c4 lrw r6, 0xab9c // 5908 <__umoddi3+0x398> + 559e: 6058 addu r1, r6 + 55a0: 8120 ld.b r1, (r1, 0x0) + 55a2: 61c4 addu r7, r1 + 55a4: 3120 movi r1, 32 + 55a6: 605e subu r1, r7 + 55a8: 3940 cmpnei r1, 0 + 55aa: b821 st.w r1, (r14, 0x4) + 55ac: 0c09 bf 0x55be // 55be <__umoddi3+0x4e> + 55ae: 6cd7 mov r3, r5 + 55b0: 6c83 mov r2, r0 + 55b2: 7104 lsl r4, r1 + 55b4: 70dd lsr r3, r7 + 55b6: 7144 lsl r5, r1 + 55b8: 7084 lsl r2, r1 + 55ba: 6cd0 or r3, r4 + 55bc: b8a0 st.w r5, (r14, 0x0) + 55be: 4a90 lsri r4, r2, 16 + 55c0: 6c53 mov r1, r4 + 55c2: 6c0f mov r0, r3 + 55c4: 75c9 zexth r7, r2 + 55c6: b843 st.w r2, (r14, 0xc) + 55c8: b862 st.w r3, (r14, 0x8) + 55ca: e0000fa3 bsr 0x7510 // 7510 <__umodsi3> + 55ce: 9862 ld.w r3, (r14, 0x8) + 55d0: 6d43 mov r5, r0 + 55d2: 6c53 mov r1, r4 + 55d4: 6c0f mov r0, r3 + 55d6: e0000f79 bsr 0x74c8 // 74c8 <__udivsi3> + 55da: 9840 ld.w r2, (r14, 0x0) + 55dc: 4570 lsli r3, r5, 16 + 55de: 4ab0 lsri r5, r2, 16 + 55e0: 7c1c mult r0, r7 + 55e2: 6cd4 or r3, r5 + 55e4: 640c cmphs r3, r0 + 55e6: 9843 ld.w r2, (r14, 0xc) + 55e8: 0806 bt 0x55f4 // 55f4 <__umoddi3+0x84> + 55ea: 60c8 addu r3, r2 + 55ec: 648c cmphs r3, r2 + 55ee: 0c03 bf 0x55f4 // 55f4 <__umoddi3+0x84> + 55f0: 640c cmphs r3, r0 + 55f2: 0d7d bf 0x58ec // 58ec <__umoddi3+0x37c> + 55f4: 60c2 subu r3, r0 + 55f6: 6c53 mov r1, r4 + 55f8: 6c0f mov r0, r3 + 55fa: b843 st.w r2, (r14, 0xc) + 55fc: b862 st.w r3, (r14, 0x8) + 55fe: e0000f89 bsr 0x7510 // 7510 <__umodsi3> + 5602: 9862 ld.w r3, (r14, 0x8) + 5604: 6d43 mov r5, r0 + 5606: 6c53 mov r1, r4 + 5608: 6c0f mov r0, r3 + 560a: e0000f5f bsr 0x74c8 // 74c8 <__udivsi3> + 560e: d86e1000 ld.h r3, (r14, 0x0) + 5612: 7dc0 mult r7, r0 + 5614: 45b0 lsli r5, r5, 16 + 5616: 740d zexth r0, r3 + 5618: 6d40 or r5, r0 + 561a: 65d4 cmphs r5, r7 + 561c: 0807 bt 0x562a // 562a <__umoddi3+0xba> + 561e: 9843 ld.w r2, (r14, 0xc) + 5620: 6148 addu r5, r2 + 5622: 6494 cmphs r5, r2 + 5624: 0c03 bf 0x562a // 562a <__umoddi3+0xba> + 5626: 65d4 cmphs r5, r7 + 5628: 0d5e bf 0x58e4 // 58e4 <__umoddi3+0x374> + 562a: 615e subu r5, r7 + 562c: 6c17 mov r0, r5 + 562e: 9861 ld.w r3, (r14, 0x4) + 5630: 700d lsr r0, r3 + 5632: 3100 movi r1, 0 + 5634: 1407 addi r14, r14, 28 + 5636: 1494 pop r4-r7, r15 + 5638: 6450 cmphs r4, r1 + 563a: 0c6e bf 0x5716 // 5716 <__umoddi3+0x1a6> + 563c: 024d lrw r2, 0xffff // 5904 <__umoddi3+0x394> + 563e: 6448 cmphs r2, r1 + 5640: 086f bt 0x571e // 571e <__umoddi3+0x1ae> + 5642: 024c lrw r2, 0xffffff // 590c <__umoddi3+0x39c> + 5644: 6448 cmphs r2, r1 + 5646: 0d3f bf 0x58c4 // 58c4 <__umoddi3+0x354> + 5648: 3610 movi r6, 16 + 564a: 6c87 mov r2, r1 + 564c: 7099 lsr r2, r6 + 564e: 02f0 lrw r7, 0xab9c // 5908 <__umoddi3+0x398> + 5650: 609c addu r2, r7 + 5652: 8240 ld.b r2, (r2, 0x0) + 5654: 6188 addu r6, r2 + 5656: 3720 movi r7, 32 + 5658: 61da subu r7, r6 + 565a: 3f40 cmpnei r7, 0 + 565c: 0870 bt 0x573c // 573c <__umoddi3+0x1cc> + 565e: 6504 cmphs r1, r4 + 5660: 0c03 bf 0x5666 // 5666 <__umoddi3+0xf6> + 5662: 6414 cmphs r5, r0 + 5664: 0d46 bf 0x58f0 // 58f0 <__umoddi3+0x380> + 5666: 5d01 subu r0, r5, r0 + 5668: 6414 cmphs r5, r0 + 566a: 6106 subu r4, r1 + 566c: 6483 mvcv r2 + 566e: 5c69 subu r3, r4, r2 + 5670: 6c4f mov r1, r3 + 5672: 1407 addi r14, r14, 28 + 5674: 1494 pop r4-r7, r15 + 5676: 3a40 cmpnei r2, 0 + 5678: 0806 bt 0x5684 // 5684 <__umoddi3+0x114> + 567a: 3100 movi r1, 0 + 567c: 3001 movi r0, 1 + 567e: e0000f25 bsr 0x74c8 // 74c8 <__udivsi3> + 5682: 6c83 mov r2, r0 + 5684: 027f lrw r3, 0xffff // 5904 <__umoddi3+0x394> + 5686: 648c cmphs r3, r2 + 5688: 0850 bt 0x5728 // 5728 <__umoddi3+0x1b8> + 568a: 027e lrw r3, 0xffffff // 590c <__umoddi3+0x39c> + 568c: 648c cmphs r3, r2 + 568e: 0d1d bf 0x58c8 // 58c8 <__umoddi3+0x358> + 5690: 3710 movi r7, 16 + 5692: 6ccb mov r3, r2 + 5694: 70dd lsr r3, r7 + 5696: 0322 lrw r1, 0xab9c // 5908 <__umoddi3+0x398> + 5698: 60c4 addu r3, r1 + 569a: 8360 ld.b r3, (r3, 0x0) + 569c: 61cc addu r7, r3 + 569e: 3320 movi r3, 32 + 56a0: 60de subu r3, r7 + 56a2: 3b40 cmpnei r3, 0 + 56a4: b861 st.w r3, (r14, 0x4) + 56a6: 08c2 bt 0x582a // 582a <__umoddi3+0x2ba> + 56a8: 74c9 zexth r3, r2 + 56aa: 610a subu r4, r2 + 56ac: 4af0 lsri r7, r2, 16 + 56ae: 6d8f mov r6, r3 + 56b0: 6c5f mov r1, r7 + 56b2: 6c13 mov r0, r4 + 56b4: b842 st.w r2, (r14, 0x8) + 56b6: e0000f2d bsr 0x7510 // 7510 <__umodsi3> + 56ba: 6d43 mov r5, r0 + 56bc: 6c5f mov r1, r7 + 56be: 6c13 mov r0, r4 + 56c0: e0000f04 bsr 0x74c8 // 74c8 <__udivsi3> + 56c4: 9860 ld.w r3, (r14, 0x0) + 56c6: 4590 lsli r4, r5, 16 + 56c8: 4bb0 lsri r5, r3, 16 + 56ca: 7c18 mult r0, r6 + 56cc: 6d14 or r4, r5 + 56ce: 6410 cmphs r4, r0 + 56d0: 9842 ld.w r2, (r14, 0x8) + 56d2: 0806 bt 0x56de // 56de <__umoddi3+0x16e> + 56d4: 6108 addu r4, r2 + 56d6: 6490 cmphs r4, r2 + 56d8: 0c03 bf 0x56de // 56de <__umoddi3+0x16e> + 56da: 6410 cmphs r4, r0 + 56dc: 0d06 bf 0x58e8 // 58e8 <__umoddi3+0x378> + 56de: 6102 subu r4, r0 + 56e0: 6c5f mov r1, r7 + 56e2: 6c13 mov r0, r4 + 56e4: b842 st.w r2, (r14, 0x8) + 56e6: e0000f15 bsr 0x7510 // 7510 <__umodsi3> + 56ea: 6d43 mov r5, r0 + 56ec: 6c5f mov r1, r7 + 56ee: 6c13 mov r0, r4 + 56f0: e0000eec bsr 0x74c8 // 74c8 <__udivsi3> + 56f4: d86e1000 ld.h r3, (r14, 0x0) + 56f8: 7c18 mult r0, r6 + 56fa: 45b0 lsli r5, r5, 16 + 56fc: 758d zexth r6, r3 + 56fe: 6d58 or r5, r6 + 5700: 6414 cmphs r5, r0 + 5702: 0808 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5704: 9842 ld.w r2, (r14, 0x8) + 5706: 6148 addu r5, r2 + 5708: 6494 cmphs r5, r2 + 570a: 0c04 bf 0x5712 // 5712 <__umoddi3+0x1a2> + 570c: 6414 cmphs r5, r0 + 570e: 0802 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5710: 6148 addu r5, r2 + 5712: 6142 subu r5, r0 + 5714: 078c br 0x562c // 562c <__umoddi3+0xbc> + 5716: 6c17 mov r0, r5 + 5718: 6c53 mov r1, r4 + 571a: 1407 addi r14, r14, 28 + 571c: 1494 pop r4-r7, r15 + 571e: 32ff movi r2, 255 + 5720: 6448 cmphs r2, r1 + 5722: 6583 mvcv r6 + 5724: 46c3 lsli r6, r6, 3 + 5726: 0792 br 0x564a // 564a <__umoddi3+0xda> + 5728: 33ff movi r3, 255 + 572a: 648c cmphs r3, r2 + 572c: 0bb3 bt 0x5692 // 5692 <__umoddi3+0x122> + 572e: 3708 movi r7, 8 + 5730: 07b1 br 0x5692 // 5692 <__umoddi3+0x122> + 5732: 1337 lrw r1, 0xffffff // 590c <__umoddi3+0x39c> + 5734: 6484 cmphs r1, r2 + 5736: 0ccb bf 0x58cc // 58cc <__umoddi3+0x35c> + 5738: 3710 movi r7, 16 + 573a: 072f br 0x5598 // 5598 <__umoddi3+0x28> + 573c: 6cc3 mov r3, r0 + 573e: 705c lsl r1, r7 + 5740: 70d9 lsr r3, r6 + 5742: 6cc4 or r3, r1 + 5744: 6c57 mov r1, r5 + 5746: 6c93 mov r2, r4 + 5748: 7059 lsr r1, r6 + 574a: 711c lsl r4, r7 + 574c: 7099 lsr r2, r6 + 574e: 6c50 or r1, r4 + 5750: 701c lsl r0, r7 + 5752: 4b90 lsri r4, r3, 16 + 5754: 715c lsl r5, r7 + 5756: b803 st.w r0, (r14, 0xc) + 5758: b820 st.w r1, (r14, 0x0) + 575a: b8a4 st.w r5, (r14, 0x10) + 575c: 6c53 mov r1, r4 + 575e: 754d zexth r5, r3 + 5760: 6c0b mov r0, r2 + 5762: b862 st.w r3, (r14, 0x8) + 5764: b8a1 st.w r5, (r14, 0x4) + 5766: b846 st.w r2, (r14, 0x18) + 5768: e0000ed4 bsr 0x7510 // 7510 <__umodsi3> + 576c: 9846 ld.w r2, (r14, 0x18) + 576e: b805 st.w r0, (r14, 0x14) + 5770: 6c53 mov r1, r4 + 5772: 6c0b mov r0, r2 + 5774: e0000eaa bsr 0x74c8 // 74c8 <__udivsi3> + 5778: 9841 ld.w r2, (r14, 0x4) + 577a: 7c80 mult r2, r0 + 577c: 9865 ld.w r3, (r14, 0x14) + 577e: 6d43 mov r5, r0 + 5780: 9800 ld.w r0, (r14, 0x0) + 5782: 4330 lsli r1, r3, 16 + 5784: 4870 lsri r3, r0, 16 + 5786: 6cc4 or r3, r1 + 5788: 648c cmphs r3, r2 + 578a: 0807 bt 0x5798 // 5798 <__umoddi3+0x228> + 578c: 9802 ld.w r0, (r14, 0x8) + 578e: 60c0 addu r3, r0 + 5790: 640c cmphs r3, r0 + 5792: 5d23 subi r1, r5, 1 + 5794: 08a3 bt 0x58da // 58da <__umoddi3+0x36a> + 5796: 6d47 mov r5, r1 + 5798: 60ca subu r3, r2 + 579a: 6c53 mov r1, r4 + 579c: 6c0f mov r0, r3 + 579e: b866 st.w r3, (r14, 0x18) + 57a0: e0000eb8 bsr 0x7510 // 7510 <__umodsi3> + 57a4: 9866 ld.w r3, (r14, 0x18) + 57a6: 6c53 mov r1, r4 + 57a8: b805 st.w r0, (r14, 0x14) + 57aa: 6c0f mov r0, r3 + 57ac: e0000e8e bsr 0x74c8 // 74c8 <__udivsi3> + 57b0: 9845 ld.w r2, (r14, 0x14) + 57b2: d86e1000 ld.h r3, (r14, 0x0) + 57b6: 9821 ld.w r1, (r14, 0x4) + 57b8: 4250 lsli r2, r2, 16 + 57ba: 750d zexth r4, r3 + 57bc: 7c40 mult r1, r0 + 57be: 6c90 or r2, r4 + 57c0: 6448 cmphs r2, r1 + 57c2: 0807 bt 0x57d0 // 57d0 <__umoddi3+0x260> + 57c4: 9882 ld.w r4, (r14, 0x8) + 57c6: 6090 addu r2, r4 + 57c8: 6508 cmphs r2, r4 + 57ca: 5863 subi r3, r0, 1 + 57cc: 0882 bt 0x58d0 // 58d0 <__umoddi3+0x360> + 57ce: 6c0f mov r0, r3 + 57d0: 45b0 lsli r5, r5, 16 + 57d2: 6d40 or r5, r0 + 57d4: 74d5 zexth r3, r5 + 57d6: 9803 ld.w r0, (r14, 0xc) + 57d8: 4db0 lsri r5, r5, 16 + 57da: 6d0f mov r4, r3 + 57dc: 6086 subu r2, r1 + 57de: 7441 zexth r1, r0 + 57e0: 4810 lsri r0, r0, 16 + 57e2: 7d04 mult r4, r1 + 57e4: 7cc0 mult r3, r0 + 57e6: 7c54 mult r1, r5 + 57e8: 60c4 addu r3, r1 + 57ea: 7d40 mult r5, r0 + 57ec: 4c10 lsri r0, r4, 16 + 57ee: 60c0 addu r3, r0 + 57f0: 644c cmphs r3, r1 + 57f2: 0804 bt 0x57fa // 57fa <__umoddi3+0x28a> + 57f4: 3180 movi r1, 128 + 57f6: 4129 lsli r1, r1, 9 + 57f8: 6144 addu r5, r1 + 57fa: 4b30 lsri r1, r3, 16 + 57fc: 6144 addu r5, r1 + 57fe: 4370 lsli r3, r3, 16 + 5800: 7511 zexth r4, r4 + 5802: 6548 cmphs r2, r5 + 5804: 60d0 addu r3, r4 + 5806: 0c56 bf 0x58b2 // 58b2 <__umoddi3+0x342> + 5808: 654a cmpne r2, r5 + 580a: 0c76 bf 0x58f6 // 58f6 <__umoddi3+0x386> + 580c: 5a35 subu r1, r2, r5 + 580e: 6c0f mov r0, r3 + 5810: 9864 ld.w r3, (r14, 0x10) + 5812: 5b01 subu r0, r3, r0 + 5814: 640c cmphs r3, r0 + 5816: 64c3 mvcv r3 + 5818: 598d subu r4, r1, r3 + 581a: 6d53 mov r5, r4 + 581c: 7158 lsl r5, r6 + 581e: 701d lsr r0, r7 + 5820: 6c53 mov r1, r4 + 5822: 6c14 or r0, r5 + 5824: 705d lsr r1, r7 + 5826: 1407 addi r14, r14, 28 + 5828: 1494 pop r4-r7, r15 + 582a: 9801 ld.w r0, (r14, 0x4) + 582c: 6c57 mov r1, r5 + 582e: 6cd3 mov r3, r4 + 5830: 705d lsr r1, r7 + 5832: 7100 lsl r4, r0 + 5834: 7080 lsl r2, r0 + 5836: 6c50 or r1, r4 + 5838: 70dd lsr r3, r7 + 583a: 6d07 mov r4, r1 + 583c: 4af0 lsri r7, r2, 16 + 583e: b822 st.w r1, (r14, 0x8) + 5840: 7449 zexth r1, r2 + 5842: 7140 lsl r5, r0 + 5844: 6d87 mov r6, r1 + 5846: 6c0f mov r0, r3 + 5848: 6c5f mov r1, r7 + 584a: b844 st.w r2, (r14, 0x10) + 584c: b8a0 st.w r5, (r14, 0x0) + 584e: b863 st.w r3, (r14, 0xc) + 5850: e0000e60 bsr 0x7510 // 7510 <__umodsi3> + 5854: 9863 ld.w r3, (r14, 0xc) + 5856: 6d43 mov r5, r0 + 5858: 6c5f mov r1, r7 + 585a: 6c0f mov r0, r3 + 585c: e0000e36 bsr 0x74c8 // 74c8 <__udivsi3> + 5860: 45b0 lsli r5, r5, 16 + 5862: 4c70 lsri r3, r4, 16 + 5864: 7c18 mult r0, r6 + 5866: 6d4c or r5, r3 + 5868: 6414 cmphs r5, r0 + 586a: 9844 ld.w r2, (r14, 0x10) + 586c: 0807 bt 0x587a // 587a <__umoddi3+0x30a> + 586e: 6148 addu r5, r2 + 5870: 6494 cmphs r5, r2 + 5872: 0c04 bf 0x587a // 587a <__umoddi3+0x30a> + 5874: 6414 cmphs r5, r0 + 5876: 0802 bt 0x587a // 587a <__umoddi3+0x30a> + 5878: 6148 addu r5, r2 + 587a: 6142 subu r5, r0 + 587c: 6c5f mov r1, r7 + 587e: 6c17 mov r0, r5 + 5880: b843 st.w r2, (r14, 0xc) + 5882: e0000e47 bsr 0x7510 // 7510 <__umodsi3> + 5886: 6d03 mov r4, r0 + 5888: 6c5f mov r1, r7 + 588a: 6c17 mov r0, r5 + 588c: e0000e1e bsr 0x74c8 // 74c8 <__udivsi3> + 5890: d86e1004 ld.h r3, (r14, 0x8) + 5894: 4490 lsli r4, r4, 16 + 5896: 744d zexth r1, r3 + 5898: 7c18 mult r0, r6 + 589a: 6d04 or r4, r1 + 589c: 6410 cmphs r4, r0 + 589e: 9843 ld.w r2, (r14, 0xc) + 58a0: 0807 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58a2: 6108 addu r4, r2 + 58a4: 6490 cmphs r4, r2 + 58a6: 0c04 bf 0x58ae // 58ae <__umoddi3+0x33e> + 58a8: 6410 cmphs r4, r0 + 58aa: 0802 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58ac: 6108 addu r4, r2 + 58ae: 6102 subu r4, r0 + 58b0: 0700 br 0x56b0 // 56b0 <__umoddi3+0x140> + 58b2: 9823 ld.w r1, (r14, 0xc) + 58b4: 5b05 subu r0, r3, r1 + 58b6: 640c cmphs r3, r0 + 58b8: 9822 ld.w r1, (r14, 0x8) + 58ba: 6146 subu r5, r1 + 58bc: 64c3 mvcv r3 + 58be: 614e subu r5, r3 + 58c0: 5a35 subu r1, r2, r5 + 58c2: 07a7 br 0x5810 // 5810 <__umoddi3+0x2a0> + 58c4: 3618 movi r6, 24 + 58c6: 06c2 br 0x564a // 564a <__umoddi3+0xda> + 58c8: 3718 movi r7, 24 + 58ca: 06e4 br 0x5692 // 5692 <__umoddi3+0x122> + 58cc: 3718 movi r7, 24 + 58ce: 0665 br 0x5598 // 5598 <__umoddi3+0x28> + 58d0: 6448 cmphs r2, r1 + 58d2: 0b7e bt 0x57ce // 57ce <__umoddi3+0x25e> + 58d4: 2801 subi r0, 2 + 58d6: 6090 addu r2, r4 + 58d8: 077c br 0x57d0 // 57d0 <__umoddi3+0x260> + 58da: 648c cmphs r3, r2 + 58dc: 0b5d bt 0x5796 // 5796 <__umoddi3+0x226> + 58de: 2d01 subi r5, 2 + 58e0: 60c0 addu r3, r0 + 58e2: 075b br 0x5798 // 5798 <__umoddi3+0x228> + 58e4: 6148 addu r5, r2 + 58e6: 06a2 br 0x562a // 562a <__umoddi3+0xba> + 58e8: 6108 addu r4, r2 + 58ea: 06fa br 0x56de // 56de <__umoddi3+0x16e> + 58ec: 60c8 addu r3, r2 + 58ee: 0683 br 0x55f4 // 55f4 <__umoddi3+0x84> + 58f0: 6c17 mov r0, r5 + 58f2: 6c4f mov r1, r3 + 58f4: 06bf br 0x5672 // 5672 <__umoddi3+0x102> + 58f6: 9824 ld.w r1, (r14, 0x10) + 58f8: 64c4 cmphs r1, r3 + 58fa: 0fdc bf 0x58b2 // 58b2 <__umoddi3+0x342> + 58fc: 6c0f mov r0, r3 + 58fe: 3100 movi r1, 0 + 5900: 0788 br 0x5810 // 5810 <__umoddi3+0x2a0> + 5902: 0000 bkpt + 5904: 0000ffff .long 0x0000ffff + 5908: 0000ab9c .long 0x0000ab9c + 590c: 00ffffff .long 0x00ffffff + +00005910 : + 5910: 14c2 push r4-r5 + 5912: 3300 movi r3, 0 + 5914: 644d cmplt r3, r1 + 5916: 0803 bt 0x591c // 591c + 5918: 6c0f mov r0, r3 + 591a: 1482 pop r4-r5 + 591c: 5aac addu r5, r2, r3 + 591e: 588c addu r4, r0, r3 + 5920: 2300 addi r3, 1 + 5922: 85a0 ld.b r5, (r5, 0x0) + 5924: 3b43 cmpnei r3, 3 + 5926: a4a0 st.b r5, (r4, 0x0) + 5928: 0bf6 bt 0x5914 // 5914 + 592a: 3923 cmplti r1, 4 + 592c: 0bf6 bt 0x5918 // 5918 + 592e: 3300 movi r3, 0 + 5930: a063 st.b r3, (r0, 0x3) + 5932: 3304 movi r3, 4 + 5934: 07f2 br 0x5918 // 5918 + +00005936 <__GI___dtostr>: + 5936: 14d4 push r4-r7, r15 + 5938: 142c subi r14, r14, 48 + 593a: 6d8f mov r6, r3 + 593c: 9871 ld.w r3, (r14, 0x44) + 593e: b80a st.w r0, (r14, 0x28) + 5940: b824 st.w r1, (r14, 0x10) + 5942: b842 st.w r2, (r14, 0x8) + 5944: b86b st.w r3, (r14, 0x2c) + 5946: 98f2 ld.w r7, (r14, 0x48) + 5948: e0000244 bsr 0x5dd0 // 5dd0 <__isinf> + 594c: 3840 cmpnei r0, 0 + 594e: 0c0a bf 0x5962 // 5962 <__GI___dtostr+0x2c> + 5950: 0244 lrw r2, 0xba9e // 5c3c <__GI___dtostr+0x306> + 5952: 6c5b mov r1, r6 + 5954: 9802 ld.w r0, (r14, 0x8) + 5956: e3ffffdd bsr 0x5910 // 5910 + 595a: b809 st.w r0, (r14, 0x24) + 595c: 9809 ld.w r0, (r14, 0x24) + 595e: 140c addi r14, r14, 48 + 5960: 1494 pop r4-r7, r15 + 5962: 980a ld.w r0, (r14, 0x28) + 5964: 9824 ld.w r1, (r14, 0x10) + 5966: e0000185 bsr 0x5c70 // 5c70 <__isnan> + 596a: 3840 cmpnei r0, 0 + 596c: b809 st.w r0, (r14, 0x24) + 596e: 0c03 bf 0x5974 // 5974 <__GI___dtostr+0x3e> + 5970: 024b lrw r2, 0xbaa2 // 5c40 <__GI___dtostr+0x30a> + 5972: 07f0 br 0x5952 // 5952 <__GI___dtostr+0x1c> + 5974: 3200 movi r2, 0 + 5976: 3300 movi r3, 0 + 5978: 980a ld.w r0, (r14, 0x28) + 597a: 9824 ld.w r1, (r14, 0x10) + 597c: e0000242 bsr 0x5e00 // 5e00 <__eqdf2> + 5980: 3840 cmpnei r0, 0 + 5982: 082d bt 0x59dc // 59dc <__GI___dtostr+0xa6> + 5984: 3f40 cmpnei r7, 0 + 5986: 0d57 bf 0x5c34 // 5c34 <__GI___dtostr+0x2fe> + 5988: 5fa6 addi r5, r7, 2 + 598a: 6558 cmphs r6, r5 + 598c: 0d56 bf 0x5c38 // 5c38 <__GI___dtostr+0x302> + 598e: 3d40 cmpnei r5, 0 + 5990: 0c0b bf 0x59a6 // 59a6 <__GI___dtostr+0x70> + 5992: 9824 ld.w r1, (r14, 0x10) + 5994: 39df btsti r1, 31 + 5996: 0c1a bf 0x59ca // 59ca <__GI___dtostr+0x94> + 5998: 9802 ld.w r0, (r14, 0x8) + 599a: 322d movi r2, 45 + 599c: a040 st.b r2, (r0, 0x0) + 599e: 5d02 addi r0, r5, 1 + 59a0: 3501 movi r5, 1 + 59a2: 6414 cmphs r5, r0 + 59a4: 0c16 bf 0x59d0 // 59d0 <__GI___dtostr+0x9a> + 59a6: 9882 ld.w r4, (r14, 0x8) + 59a8: 8420 ld.b r1, (r4, 0x0) + 59aa: 3330 movi r3, 48 + 59ac: 64c6 cmpne r1, r3 + 59ae: 3000 movi r0, 0 + 59b0: 6001 addc r0, r0 + 59b2: 9842 ld.w r2, (r14, 0x8) + 59b4: 9822 ld.w r1, (r14, 0x8) + 59b6: 6008 addu r0, r2 + 59b8: 342e movi r4, 46 + 59ba: 6054 addu r1, r5 + 59bc: 3300 movi r3, 0 + 59be: a081 st.b r4, (r0, 0x1) + 59c0: b8a9 st.w r5, (r14, 0x24) + 59c2: a160 st.b r3, (r1, 0x0) + 59c4: 07cc br 0x595c // 595c <__GI___dtostr+0x26> + 59c6: 3501 movi r5, 1 + 59c8: 07e5 br 0x5992 // 5992 <__GI___dtostr+0x5c> + 59ca: 6c17 mov r0, r5 + 59cc: 3500 movi r5, 0 + 59ce: 07ea br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59d0: 9842 ld.w r2, (r14, 0x8) + 59d2: 6094 addu r2, r5 + 59d4: 3430 movi r4, 48 + 59d6: a280 st.b r4, (r2, 0x0) + 59d8: 2500 addi r5, 1 + 59da: 07e4 br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59dc: 3200 movi r2, 0 + 59de: 3300 movi r3, 0 + 59e0: 980a ld.w r0, (r14, 0x28) + 59e2: 9824 ld.w r1, (r14, 0x10) + 59e4: e000022c bsr 0x5e3c // 5e3c <__ltdf2> + 59e8: 38df btsti r0, 31 + 59ea: 0c8e bf 0x5b06 // 5b06 <__GI___dtostr+0x1d0> + 59ec: 3180 movi r1, 128 + 59ee: 98a2 ld.w r5, (r14, 0x8) + 59f0: 9884 ld.w r4, (r14, 0x10) + 59f2: 4158 lsli r2, r1, 24 + 59f4: 332d movi r3, 45 + 59f6: a560 st.b r3, (r5, 0x0) + 59f8: 6108 addu r4, r2 + 59fa: 2e00 subi r6, 1 + 59fc: 2500 addi r5, 1 + 59fe: 3000 movi r0, 0 + 5a00: 032e lrw r1, 0x3fe00000 // 5c44 <__GI___dtostr+0x30e> + 5a02: 3300 movi r3, 0 + 5a04: b865 st.w r3, (r14, 0x14) + 5a06: 9845 ld.w r2, (r14, 0x14) + 5a08: 65ca cmpne r2, r7 + 5a0a: 0881 bt 0x5b0c // 5b0c <__GI___dtostr+0x1d6> + 5a0c: 6c83 mov r2, r0 + 5a0e: 6cc7 mov r3, r1 + 5a10: 980a ld.w r0, (r14, 0x28) + 5a12: 6c53 mov r1, r4 + 5a14: e3fff190 bsr 0x3d34 // 3d34 <__adddf3> + 5a18: 3200 movi r2, 0 + 5a1a: 0373 lrw r3, 0x3ff00000 // 5c48 <__GI___dtostr+0x312> + 5a1c: b806 st.w r0, (r14, 0x18) + 5a1e: b827 st.w r1, (r14, 0x1c) + 5a20: e000020e bsr 0x5e3c // 5e3c <__ltdf2> + 5a24: 38df btsti r0, 31 + 5a26: 0c05 bf 0x5a30 // 5a30 <__GI___dtostr+0xfa> + 5a28: 3430 movi r4, 48 + 5a2a: a580 st.b r4, (r5, 0x0) + 5a2c: 2e00 subi r6, 1 + 5a2e: 2500 addi r5, 1 + 5a30: 9804 ld.w r0, (r14, 0x10) + 5a32: 4021 lsli r1, r0, 1 + 5a34: 0379 lrw r3, 0xfffffc01 // 5c4c <__GI___dtostr+0x316> + 5a36: 4915 lsri r0, r1, 21 + 5a38: 600c addu r0, r3 + 5a3a: e3fff3cf bsr 0x41d8 // 41d8 <__floatsidf> + 5a3e: 035a lrw r2, 0x509f79ff // 5c50 <__GI___dtostr+0x31a> + 5a40: 037a lrw r3, 0x3fd34413 // 5c54 <__GI___dtostr+0x31e> + 5a42: e3fff1ad bsr 0x3d9c // 3d9c <__muldf3> + 5a46: e3fff401 bsr 0x4248 // 4248 <__fixdfsi> + 5a4a: 5842 addi r2, r0, 1 + 5a4c: 3a20 cmplti r2, 1 + 5a4e: b848 st.w r2, (r14, 0x20) + 5a50: 08e7 bt 0x5c1e // 5c1e <__GI___dtostr+0x2e8> + 5a52: 033d lrw r1, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5a54: 6dcb mov r7, r2 + 5a56: 3400 movi r4, 0 + 5a58: b823 st.w r1, (r14, 0xc) + 5a5a: 3f0a cmphsi r7, 11 + 5a5c: 085f bt 0x5b1a // 5b1a <__GI___dtostr+0x1e4> + 5a5e: 3f41 cmpnei r7, 1 + 5a60: 0868 bt 0x5b30 // 5b30 <__GI___dtostr+0x1fa> + 5a62: 135f lrw r2, 0xcccccccd // 5c5c <__GI___dtostr+0x326> + 5a64: 137f lrw r3, 0x3feccccc // 5c60 <__GI___dtostr+0x32a> + 5a66: 6c13 mov r0, r4 + 5a68: 9823 ld.w r1, (r14, 0xc) + 5a6a: e3fff35d bsr 0x4124 // 4124 <__gtdf2> + 5a6e: 3820 cmplti r0, 1 + 5a70: 0c6a bf 0x5b44 // 5b44 <__GI___dtostr+0x20e> + 5a72: 9862 ld.w r3, (r14, 0x8) + 5a74: 64d6 cmpne r5, r3 + 5a76: 0807 bt 0x5a84 // 5a84 <__GI___dtostr+0x14e> + 5a78: 3e40 cmpnei r6, 0 + 5a7a: 0f71 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a7c: 3230 movi r2, 48 + 5a7e: a540 st.b r2, (r5, 0x0) + 5a80: 2e00 subi r6, 1 + 5a82: 2500 addi r5, 1 + 5a84: 9805 ld.w r0, (r14, 0x14) + 5a86: 3840 cmpnei r0, 0 + 5a88: 08cf bt 0x5c26 // 5c26 <__GI___dtostr+0x2f0> + 5a8a: 9822 ld.w r1, (r14, 0x8) + 5a8c: 5d65 subu r3, r5, r1 + 5a8e: 2300 addi r3, 1 + 5a90: 984b ld.w r2, (r14, 0x2c) + 5a92: 648c cmphs r3, r2 + 5a94: 08a5 bt 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5a96: 3e40 cmpnei r6, 0 + 5a98: 0f62 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a9a: 372e movi r7, 46 + 5a9c: a5e0 st.b r7, (r5, 0x0) + 5a9e: 980b ld.w r0, (r14, 0x2c) + 5aa0: 5de2 addi r7, r5, 1 + 5aa2: 9822 ld.w r1, (r14, 0x8) + 5aa4: 2000 addi r0, 1 + 5aa6: 5f65 subu r3, r7, r1 + 5aa8: 584d subu r2, r0, r3 + 5aaa: 2e00 subi r6, 1 + 5aac: b845 st.w r2, (r14, 0x14) + 5aae: 9805 ld.w r0, (r14, 0x14) + 5ab0: 6418 cmphs r6, r0 + 5ab2: 0f55 bf 0x595c // 595c <__GI___dtostr+0x26> + 5ab4: 6d43 mov r5, r0 + 5ab6: 615c addu r5, r7 + 5ab8: 36ff movi r6, 255 + 5aba: 655e cmpne r7, r5 + 5abc: 0c91 bf 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5abe: 6c93 mov r2, r4 + 5ac0: 9863 ld.w r3, (r14, 0xc) + 5ac2: 9806 ld.w r0, (r14, 0x18) + 5ac4: 9827 ld.w r1, (r14, 0x1c) + 5ac6: e3fff285 bsr 0x3fd0 // 3fd0 <__divdf3> + 5aca: e3fff3bf bsr 0x4248 // 4248 <__fixdfsi> + 5ace: 3130 movi r1, 48 + 5ad0: 6040 addu r1, r0 + 5ad2: a720 st.b r1, (r7, 0x0) + 5ad4: 6818 and r0, r6 + 5ad6: e3fff381 bsr 0x41d8 // 41d8 <__floatsidf> + 5ada: 6c93 mov r2, r4 + 5adc: 9863 ld.w r3, (r14, 0xc) + 5ade: e3fff15f bsr 0x3d9c // 3d9c <__muldf3> + 5ae2: 6c83 mov r2, r0 + 5ae4: 6cc7 mov r3, r1 + 5ae6: 9806 ld.w r0, (r14, 0x18) + 5ae8: 9827 ld.w r1, (r14, 0x1c) + 5aea: e3fff13d bsr 0x3d64 // 3d64 <__subdf3> + 5aee: b806 st.w r0, (r14, 0x18) + 5af0: b827 st.w r1, (r14, 0x1c) + 5af2: 6c13 mov r0, r4 + 5af4: 9823 ld.w r1, (r14, 0xc) + 5af6: 3200 movi r2, 0 + 5af8: 1278 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5afa: e3fff26b bsr 0x3fd0 // 3fd0 <__divdf3> + 5afe: 2700 addi r7, 1 + 5b00: 6d03 mov r4, r0 + 5b02: b823 st.w r1, (r14, 0xc) + 5b04: 07db br 0x5aba // 5aba <__GI___dtostr+0x184> + 5b06: 98a2 ld.w r5, (r14, 0x8) + 5b08: 9884 ld.w r4, (r14, 0x10) + 5b0a: 077a br 0x59fe // 59fe <__GI___dtostr+0xc8> + 5b0c: 1276 lrw r3, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5b0e: 1257 lrw r2, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5b10: e3fff146 bsr 0x3d9c // 3d9c <__muldf3> + 5b14: 9865 ld.w r3, (r14, 0x14) + 5b16: 2300 addi r3, 1 + 5b18: 0776 br 0x5a04 // 5a04 <__GI___dtostr+0xce> + 5b1a: 3080 movi r0, 128 + 5b1c: 4056 lsli r2, r0, 22 + 5b1e: 9823 ld.w r1, (r14, 0xc) + 5b20: 6c13 mov r0, r4 + 5b22: 1273 lrw r3, 0x4202a05f // 5c6c <__GI___dtostr+0x336> + 5b24: e3fff13c bsr 0x3d9c // 3d9c <__muldf3> + 5b28: 6d03 mov r4, r0 + 5b2a: b823 st.w r1, (r14, 0xc) + 5b2c: 2f09 subi r7, 10 + 5b2e: 0796 br 0x5a5a // 5a5a <__GI___dtostr+0x124> + 5b30: 6c13 mov r0, r4 + 5b32: 9823 ld.w r1, (r14, 0xc) + 5b34: 3200 movi r2, 0 + 5b36: 1269 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5b38: e3fff132 bsr 0x3d9c // 3d9c <__muldf3> + 5b3c: 6d03 mov r4, r0 + 5b3e: b823 st.w r1, (r14, 0xc) + 5b40: 2f00 subi r7, 1 + 5b42: 078e br 0x5a5e // 5a5e <__GI___dtostr+0x128> + 5b44: 9863 ld.w r3, (r14, 0xc) + 5b46: 6c93 mov r2, r4 + 5b48: 9806 ld.w r0, (r14, 0x18) + 5b4a: 9827 ld.w r1, (r14, 0x1c) + 5b4c: e3fff242 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b50: e3fff37c bsr 0x4248 // 4248 <__fixdfsi> + 5b54: 3f40 cmpnei r7, 0 + 5b56: 74c0 zextb r3, r0 + 5b58: 0c03 bf 0x5b5e // 5b5e <__GI___dtostr+0x228> + 5b5a: 3b40 cmpnei r3, 0 + 5b5c: 0c58 bf 0x5c0c // 5c0c <__GI___dtostr+0x2d6> + 5b5e: 232f addi r3, 48 + 5b60: 3e40 cmpnei r6, 0 + 5b62: a560 st.b r3, (r5, 0x0) + 5b64: 2500 addi r5, 1 + 5b66: 0842 bt 0x5bea // 5bea <__GI___dtostr+0x2b4> + 5b68: 6c93 mov r2, r4 + 5b6a: 9863 ld.w r3, (r14, 0xc) + 5b6c: 980a ld.w r0, (r14, 0x28) + 5b6e: 9824 ld.w r1, (r14, 0x10) + 5b70: e3fff230 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b74: 9845 ld.w r2, (r14, 0x14) + 5b76: 988b ld.w r4, (r14, 0x2c) + 5b78: b841 st.w r2, (r14, 0x4) + 5b7a: b880 st.w r4, (r14, 0x0) + 5b7c: 3300 movi r3, 0 + 5b7e: 9842 ld.w r2, (r14, 0x8) + 5b80: e3fffedb bsr 0x5936 // 5936 <__GI___dtostr> + 5b84: 3840 cmpnei r0, 0 + 5b86: 0eeb bf 0x595c // 595c <__GI___dtostr+0x26> + 5b88: 5dc0 addu r6, r5, r0 + 5b8a: 37fa movi r7, 250 + 5b8c: 3565 movi r5, 101 + 5b8e: 6c02 nor r0, r0 + 5b90: a6a0 st.b r5, (r6, 0x0) + 5b92: 6d03 mov r4, r0 + 5b94: 5ea2 addi r5, r6, 1 + 5b96: 3101 movi r1, 1 + 5b98: 3604 movi r6, 4 + 5b9a: 47e2 lsli r7, r7, 2 + 5b9c: 9808 ld.w r0, (r14, 0x20) + 5b9e: 65c1 cmplt r0, r7 + 5ba0: 0c03 bf 0x5ba6 // 5ba6 <__GI___dtostr+0x270> + 5ba2: 3940 cmpnei r1, 0 + 5ba4: 0811 bt 0x5bc6 // 5bc6 <__GI___dtostr+0x290> + 5ba6: 3c40 cmpnei r4, 0 + 5ba8: 0c08 bf 0x5bb8 // 5bb8 <__GI___dtostr+0x282> + 5baa: 6c5f mov r1, r7 + 5bac: 9808 ld.w r0, (r14, 0x20) + 5bae: e0000c7b bsr 0x74a4 // 74a4 <__divsi3> + 5bb2: 202f addi r0, 48 + 5bb4: a500 st.b r0, (r5, 0x0) + 5bb6: 2500 addi r5, 1 + 5bb8: 6c5f mov r1, r7 + 5bba: 9808 ld.w r0, (r14, 0x20) + 5bbc: e0000c98 bsr 0x74ec // 74ec <__modsi3> + 5bc0: 2c00 subi r4, 1 + 5bc2: b808 st.w r0, (r14, 0x20) + 5bc4: 3100 movi r1, 0 + 5bc6: b823 st.w r1, (r14, 0xc) + 5bc8: 6c1f mov r0, r7 + 5bca: 310a movi r1, 10 + 5bcc: 2e00 subi r6, 1 + 5bce: e0000c6b bsr 0x74a4 // 74a4 <__divsi3> + 5bd2: 3e40 cmpnei r6, 0 + 5bd4: 6dc3 mov r7, r0 + 5bd6: 9823 ld.w r1, (r14, 0xc) + 5bd8: 0be2 bt 0x5b9c // 5b9c <__GI___dtostr+0x266> + 5bda: 3c40 cmpnei r4, 0 + 5bdc: 0ec0 bf 0x595c // 595c <__GI___dtostr+0x26> + 5bde: 9842 ld.w r2, (r14, 0x8) + 5be0: 3300 movi r3, 0 + 5be2: 5d89 subu r4, r5, r2 + 5be4: a560 st.b r3, (r5, 0x0) + 5be6: b889 st.w r4, (r14, 0x24) + 5be8: 06ba br 0x595c // 595c <__GI___dtostr+0x26> + 5bea: 7400 zextb r0, r0 + 5bec: e3fff2f6 bsr 0x41d8 // 41d8 <__floatsidf> + 5bf0: 6c93 mov r2, r4 + 5bf2: 9863 ld.w r3, (r14, 0xc) + 5bf4: e3fff0d4 bsr 0x3d9c // 3d9c <__muldf3> + 5bf8: 6c83 mov r2, r0 + 5bfa: 6cc7 mov r3, r1 + 5bfc: 9806 ld.w r0, (r14, 0x18) + 5bfe: 9827 ld.w r1, (r14, 0x1c) + 5c00: e3fff0b2 bsr 0x3d64 // 3d64 <__subdf3> + 5c04: b806 st.w r0, (r14, 0x18) + 5c06: b827 st.w r1, (r14, 0x1c) + 5c08: 2e00 subi r6, 1 + 5c0a: 3700 movi r7, 0 + 5c0c: 6c13 mov r0, r4 + 5c0e: 9823 ld.w r1, (r14, 0xc) + 5c10: 3200 movi r2, 0 + 5c12: 1072 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5c14: e3fff1de bsr 0x3fd0 // 3fd0 <__divdf3> + 5c18: 6d03 mov r4, r0 + 5c1a: b823 st.w r1, (r14, 0xc) + 5c1c: 0723 br 0x5a62 // 5a62 <__GI___dtostr+0x12c> + 5c1e: 1012 lrw r0, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5c20: 1092 lrw r4, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5c22: b803 st.w r0, (r14, 0xc) + 5c24: 0727 br 0x5a72 // 5a72 <__GI___dtostr+0x13c> + 5c26: 3e40 cmpnei r6, 0 + 5c28: 0e9a bf 0x595c // 595c <__GI___dtostr+0x26> + 5c2a: 372e movi r7, 46 + 5c2c: a5e0 st.b r7, (r5, 0x0) + 5c2e: 2e00 subi r6, 1 + 5c30: 5de2 addi r7, r5, 1 + 5c32: 073e br 0x5aae // 5aae <__GI___dtostr+0x178> + 5c34: 3e40 cmpnei r6, 0 + 5c36: 0ac8 bt 0x59c6 // 59c6 <__GI___dtostr+0x90> + 5c38: 3508 movi r5, 8 + 5c3a: 06ac br 0x5992 // 5992 <__GI___dtostr+0x5c> + 5c3c: 0000ba9e .long 0x0000ba9e + 5c40: 0000baa2 .long 0x0000baa2 + 5c44: 3fe00000 .long 0x3fe00000 + 5c48: 3ff00000 .long 0x3ff00000 + 5c4c: fffffc01 .long 0xfffffc01 + 5c50: 509f79ff .long 0x509f79ff + 5c54: 3fd34413 .long 0x3fd34413 + 5c58: 40240000 .long 0x40240000 + 5c5c: cccccccd .long 0xcccccccd + 5c60: 3feccccc .long 0x3feccccc + 5c64: 3fb99999 .long 0x3fb99999 + 5c68: 9999999a .long 0x9999999a + 5c6c: 4202a05f .long 0x4202a05f + +00005c70 <__isnan>: + 5c70: 416c lsli r3, r1, 12 + 5c72: 4b4c lsri r2, r3, 12 + 5c74: 6c08 or r0, r2 + 5c76: 3840 cmpnei r0, 0 + 5c78: 0c0e bf 0x5c94 // 5c94 <__isnan+0x24> + 5c7a: 1008 lrw r0, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c7c: 6840 and r1, r0 + 5c7e: 6cc7 mov r3, r1 + 5c80: 3000 movi r0, 0 + 5c82: 1026 lrw r1, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c84: 3200 movi r2, 0 + 5c86: 6c81 xor r2, r0 + 5c88: 6cc5 xor r3, r1 + 5c8a: 6c8c or r2, r3 + 5c8c: 3a40 cmpnei r2, 0 + 5c8e: 6443 mvcv r1 + 5c90: 7404 zextb r0, r1 + 5c92: 783c jmp r15 + 5c94: 3000 movi r0, 0 + 5c96: 07fe br 0x5c92 // 5c92 <__isnan+0x22> + 5c98: 7ff00000 .long 0x7ff00000 + +00005c9c <__strlen_fast>: + 5c9c: 6c43 mov r1, r0 + 5c9e: 3203 movi r2, 3 + 5ca0: 6808 and r0, r2 + 5ca2: 3840 cmpnei r0, 0 + 5ca4: 0c08 bf 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5ca6: 3000 movi r0, 0 + 5ca8: 8140 ld.b r2, (r1, 0x0) + 5caa: 3a40 cmpnei r2, 0 + 5cac: 0c20 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cae: 2100 addi r1, 1 + 5cb0: 2000 addi r0, 1 + 5cb2: 07fb br 0x5ca8 // 5ca8 <__strlen_fast+0xc> + 5cb4: 9140 ld.w r2, (r1, 0x0) + 5cb6: 680b tstnbz r2 + 5cb8: 0c04 bf 0x5cc0 // 5cc0 <__strlen_fast+0x24> + 5cba: 2103 addi r1, 4 + 5cbc: 2003 addi r0, 4 + 5cbe: 07fb br 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5cc0: 31ff movi r1, 255 + 5cc2: 6ccb mov r3, r2 + 5cc4: 68c4 and r3, r1 + 5cc6: 3b40 cmpnei r3, 0 + 5cc8: 0c12 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cca: 2000 addi r0, 1 + 5ccc: 3110 movi r1, 16 + 5cce: 6ccb mov r3, r2 + 5cd0: 70c4 lsl r3, r1 + 5cd2: 3118 movi r1, 24 + 5cd4: 70c5 lsr r3, r1 + 5cd6: 3b40 cmpnei r3, 0 + 5cd8: 0c0a bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cda: 2000 addi r0, 1 + 5cdc: 3108 movi r1, 8 + 5cde: 6ccb mov r3, r2 + 5ce0: 70c4 lsl r3, r1 + 5ce2: 3118 movi r1, 24 + 5ce4: 70c5 lsr r3, r1 + 5ce6: 3b40 cmpnei r3, 0 + 5ce8: 0c02 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cea: 2000 addi r0, 1 + 5cec: 783c jmp r15 + ... + +00005cf0 <__strcpy_fast>: + 5cf0: 14c1 push r4 + 5cf2: 6d03 mov r4, r0 + 5cf4: 6c87 mov r2, r1 + 5cf6: 6c90 or r2, r4 + 5cf8: 3303 movi r3, 3 + 5cfa: 688c and r2, r3 + 5cfc: 3a40 cmpnei r2, 0 + 5cfe: 0c08 bf 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d00: 8160 ld.b r3, (r1, 0x0) + 5d02: a460 st.b r3, (r4, 0x0) + 5d04: 2100 addi r1, 1 + 5d06: 2400 addi r4, 1 + 5d08: 3b40 cmpnei r3, 0 + 5d0a: 0bfb bt 0x5d00 // 5d00 <__strcpy_fast+0x10> + 5d0c: 1481 pop r4 + 5d0e: 9160 ld.w r3, (r1, 0x0) + 5d10: 680f tstnbz r3 + 5d12: 0c2e bf 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d14: b460 st.w r3, (r4, 0x0) + 5d16: 9161 ld.w r3, (r1, 0x4) + 5d18: 680f tstnbz r3 + 5d1a: 0c1d bf 0x5d54 // 5d54 <__strcpy_fast+0x64> + 5d1c: b461 st.w r3, (r4, 0x4) + 5d1e: 9162 ld.w r3, (r1, 0x8) + 5d20: 680f tstnbz r3 + 5d22: 0c1b bf 0x5d58 // 5d58 <__strcpy_fast+0x68> + 5d24: b462 st.w r3, (r4, 0x8) + 5d26: 9163 ld.w r3, (r1, 0xc) + 5d28: 680f tstnbz r3 + 5d2a: 0c19 bf 0x5d5c // 5d5c <__strcpy_fast+0x6c> + 5d2c: b463 st.w r3, (r4, 0xc) + 5d2e: 9164 ld.w r3, (r1, 0x10) + 5d30: 680f tstnbz r3 + 5d32: 0c17 bf 0x5d60 // 5d60 <__strcpy_fast+0x70> + 5d34: b464 st.w r3, (r4, 0x10) + 5d36: 9165 ld.w r3, (r1, 0x14) + 5d38: 680f tstnbz r3 + 5d3a: 0c15 bf 0x5d64 // 5d64 <__strcpy_fast+0x74> + 5d3c: b465 st.w r3, (r4, 0x14) + 5d3e: 9166 ld.w r3, (r1, 0x18) + 5d40: 680f tstnbz r3 + 5d42: 0c13 bf 0x5d68 // 5d68 <__strcpy_fast+0x78> + 5d44: b466 st.w r3, (r4, 0x18) + 5d46: 9167 ld.w r3, (r1, 0x1c) + 5d48: 680f tstnbz r3 + 5d4a: 0c11 bf 0x5d6c // 5d6c <__strcpy_fast+0x7c> + 5d4c: b467 st.w r3, (r4, 0x1c) + 5d4e: 241f addi r4, 32 + 5d50: 211f addi r1, 32 + 5d52: 07de br 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d54: 2403 addi r4, 4 + 5d56: 040c br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d58: 2407 addi r4, 8 + 5d5a: 040a br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d5c: 240b addi r4, 12 + 5d5e: 0408 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d60: 240f addi r4, 16 + 5d62: 0406 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d64: 2413 addi r4, 20 + 5d66: 0404 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d68: 2417 addi r4, 24 + 5d6a: 0402 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d6c: 241b addi r4, 28 + 5d6e: 3118 movi r1, 24 + 5d70: 6c8f mov r2, r3 + 5d72: 7084 lsl r2, r1 + 5d74: 7085 lsr r2, r1 + 5d76: a440 st.b r2, (r4, 0x0) + 5d78: 3a40 cmpnei r2, 0 + 5d7a: 0c12 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d7c: 3110 movi r1, 16 + 5d7e: 6c8f mov r2, r3 + 5d80: 7084 lsl r2, r1 + 5d82: 3118 movi r1, 24 + 5d84: 7085 lsr r2, r1 + 5d86: a441 st.b r2, (r4, 0x1) + 5d88: 3a40 cmpnei r2, 0 + 5d8a: 0c0a bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d8c: 3108 movi r1, 8 + 5d8e: 6c8f mov r2, r3 + 5d90: 7084 lsl r2, r1 + 5d92: 3118 movi r1, 24 + 5d94: 7085 lsr r2, r1 + 5d96: a442 st.b r2, (r4, 0x2) + 5d98: 3a40 cmpnei r2, 0 + 5d9a: 0c02 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d9c: b460 st.w r3, (r4, 0x0) + 5d9e: 1481 pop r4 + +00005da0 <__GI_strchr>: + 5da0: 8040 ld.b r2, (r0, 0x0) + 5da2: 644a cmpne r2, r1 + 5da4: 0c06 bf 0x5db0 // 5db0 <__GI_strchr+0x10> + 5da6: 3a40 cmpnei r2, 0 + 5da8: 0c03 bf 0x5dae // 5dae <__GI_strchr+0xe> + 5daa: 2000 addi r0, 1 + 5dac: 07fa br 0x5da0 // 5da0 <__GI_strchr> + 5dae: 6c0b mov r0, r2 + 5db0: 783c jmp r15 + ... + +00005db4 <__GI_strerror>: + 5db4: 338f movi r3, 143 + 5db6: 640c cmphs r3, r0 + 5db8: 0c06 bf 0x5dc4 // 5dc4 <__GI_strerror+0x10> + 5dba: 4002 lsli r0, r0, 2 + 5dbc: 1023 lrw r1, 0xacbc // 5dc8 <__GI_strerror+0x14> + 5dbe: 6004 addu r0, r1 + 5dc0: 9000 ld.w r0, (r0, 0x0) + 5dc2: 783c jmp r15 + 5dc4: 1002 lrw r0, 0xaf39 // 5dcc <__GI_strerror+0x18> + 5dc6: 07fe br 0x5dc2 // 5dc2 <__GI_strerror+0xe> + 5dc8: 0000acbc .long 0x0000acbc + 5dcc: 0000af39 .long 0x0000af39 + +00005dd0 <__isinf>: + 5dd0: 3840 cmpnei r0, 0 + 5dd2: 6c83 mov r2, r0 + 5dd4: 6cc7 mov r3, r1 + 5dd6: 0804 bt 0x5dde // 5dde <__isinf+0xe> + 5dd8: 1028 lrw r1, 0x7ff00000 // 5df8 <__isinf+0x28> + 5dda: 644e cmpne r3, r1 + 5ddc: 0c0b bf 0x5df2 // 5df2 <__isinf+0x22> + 5dde: 3000 movi r0, 0 + 5de0: 1027 lrw r1, 0xfff00000 // 5dfc <__isinf+0x2c> + 5de2: 6c81 xor r2, r0 + 5de4: 6cc5 xor r3, r1 + 5de6: 6c8c or r2, r3 + 5de8: 3a40 cmpnei r2, 0 + 5dea: 64c3 mvcv r3 + 5dec: 3000 movi r0, 0 + 5dee: 600e subu r0, r3 + 5df0: 783c jmp r15 + 5df2: 3001 movi r0, 1 + 5df4: 07fe br 0x5df0 // 5df0 <__isinf+0x20> + 5df6: 0000 bkpt + 5df8: 7ff00000 .long 0x7ff00000 + 5dfc: fff00000 .long 0xfff00000 + +00005e00 <__eqdf2>: + 5e00: 14d0 push r15 + 5e02: 142e subi r14, r14, 56 + 5e04: b800 st.w r0, (r14, 0x0) + 5e06: b821 st.w r1, (r14, 0x4) + 5e08: 6c3b mov r0, r14 + 5e0a: 1904 addi r1, r14, 16 + 5e0c: b863 st.w r3, (r14, 0xc) + 5e0e: b842 st.w r2, (r14, 0x8) + 5e10: e3fff4a0 bsr 0x4750 // 4750 <__unpack_d> + 5e14: 1909 addi r1, r14, 36 + 5e16: 1802 addi r0, r14, 8 + 5e18: e3fff49c bsr 0x4750 // 4750 <__unpack_d> + 5e1c: 9864 ld.w r3, (r14, 0x10) + 5e1e: 3b01 cmphsi r3, 2 + 5e20: 0c0a bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e22: 9869 ld.w r3, (r14, 0x24) + 5e24: 3b01 cmphsi r3, 2 + 5e26: 0c07 bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e28: 1909 addi r1, r14, 36 + 5e2a: 1804 addi r0, r14, 16 + 5e2c: e3fff4f4 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e30: 140e addi r14, r14, 56 + 5e32: 1490 pop r15 + 5e34: 3001 movi r0, 1 + 5e36: 140e addi r14, r14, 56 + 5e38: 1490 pop r15 + ... + +00005e3c <__ltdf2>: + 5e3c: 14d0 push r15 + 5e3e: 142e subi r14, r14, 56 + 5e40: b800 st.w r0, (r14, 0x0) + 5e42: b821 st.w r1, (r14, 0x4) + 5e44: 6c3b mov r0, r14 + 5e46: 1904 addi r1, r14, 16 + 5e48: b863 st.w r3, (r14, 0xc) + 5e4a: b842 st.w r2, (r14, 0x8) + 5e4c: e3fff482 bsr 0x4750 // 4750 <__unpack_d> + 5e50: 1909 addi r1, r14, 36 + 5e52: 1802 addi r0, r14, 8 + 5e54: e3fff47e bsr 0x4750 // 4750 <__unpack_d> + 5e58: 9864 ld.w r3, (r14, 0x10) + 5e5a: 3b01 cmphsi r3, 2 + 5e5c: 0c0a bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e5e: 9869 ld.w r3, (r14, 0x24) + 5e60: 3b01 cmphsi r3, 2 + 5e62: 0c07 bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e64: 1909 addi r1, r14, 36 + 5e66: 1804 addi r0, r14, 16 + 5e68: e3fff4d6 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e6c: 140e addi r14, r14, 56 + 5e6e: 1490 pop r15 + 5e70: 3001 movi r0, 1 + 5e72: 140e addi r14, r14, 56 + 5e74: 1490 pop r15 + +Disassembly of section .text.__main: + +00005e78 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 5e78: 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 ) { + 5e7a: 1009 lrw r0, 0x20000000 // 5e9c <__main+0x24> + 5e7c: 1029 lrw r1, 0xc230 // 5ea0 <__main+0x28> + 5e7e: 6442 cmpne r0, r1 + 5e80: 0c05 bf 0x5e8a // 5e8a <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 5e82: 1049 lrw r2, 0x2000009c // 5ea4 <__main+0x2c> + 5e84: 6082 subu r2, r0 + 5e86: e3fff5ad bsr 0x49e0 // 49e0 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 5e8a: 1048 lrw r2, 0x20000af8 // 5ea8 <__main+0x30> + 5e8c: 1008 lrw r0, 0x200000bc // 5eac <__main+0x34> + 5e8e: 640a cmpne r2, r0 + 5e90: 0c05 bf 0x5e9a // 5e9a <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 5e92: 6082 subu r2, r0 + 5e94: 3100 movi r1, 0 + 5e96: e3fff561 bsr 0x4958 // 4958 <__memset_fast> + } + + +} + 5e9a: 1490 pop r15 + 5e9c: 20000000 .long 0x20000000 + 5ea0: 0000c230 .long 0x0000c230 + 5ea4: 2000009c .long 0x2000009c + 5ea8: 20000af8 .long 0x20000af8 + 5eac: 200000bc .long 0x200000bc + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00005eb0 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 5eb0: 3848 cmpnei r0, 8 + 5eb2: 080a bt 0x5ec6 // 5ec6 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 5eb4: 107a lrw r3, 0x2000004c // 5f1c + 5eb6: 32ff movi r2, 255 + 5eb8: 9320 ld.w r1, (r3, 0x0) + 5eba: 9160 ld.w r3, (r1, 0x0) + 5ebc: 424c lsli r2, r2, 12 + 5ebe: 68c9 andn r3, r2 + 5ec0: 3bae bseti r3, 14 + 5ec2: 3bb2 bseti r3, 18 + 5ec4: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 5ec6: 1077 lrw r3, 0x2000005c // 5f20 + 5ec8: 9360 ld.w r3, (r3, 0x0) + 5eca: 9341 ld.w r2, (r3, 0x4) + 5ecc: 6c80 or r2, r0 + 5ece: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 5ed0: 9343 ld.w r2, (r3, 0xc) + 5ed2: 6880 and r2, r0 + 5ed4: 3a40 cmpnei r2, 0 + 5ed6: 0ffd bf 0x5ed0 // 5ed0 + switch(ENDIS_X) + 5ed8: 3842 cmpnei r0, 2 + 5eda: 0807 bt 0x5ee8 // 5ee8 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 5edc: 3102 movi r1, 2 + 5ede: 9344 ld.w r2, (r3, 0x10) + 5ee0: 6884 and r2, r1 + 5ee2: 3a40 cmpnei r2, 0 + 5ee4: 0ffd bf 0x5ede // 5ede + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 5ee6: 783c jmp r15 + switch(ENDIS_X) + 5ee8: 3802 cmphsi r0, 3 + 5eea: 0809 bt 0x5efc // 5efc + 5eec: 3841 cmpnei r0, 1 + 5eee: 0bfc bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 5ef0: 3101 movi r1, 1 + 5ef2: 9344 ld.w r2, (r3, 0x10) + 5ef4: 6884 and r2, r1 + 5ef6: 3a40 cmpnei r2, 0 + 5ef8: 0ffd bf 0x5ef2 // 5ef2 + 5efa: 07f6 br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5efc: 3848 cmpnei r0, 8 + 5efe: 0807 bt 0x5f0c // 5f0c + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 5f00: 3108 movi r1, 8 + 5f02: 9344 ld.w r2, (r3, 0x10) + 5f04: 6884 and r2, r1 + 5f06: 3a40 cmpnei r2, 0 + 5f08: 0ffd bf 0x5f02 // 5f02 + 5f0a: 07ee br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5f0c: 3850 cmpnei r0, 16 + 5f0e: 0bec bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 5f10: 3110 movi r1, 16 + 5f12: 9344 ld.w r2, (r3, 0x10) + 5f14: 6884 and r2, r1 + 5f16: 3a40 cmpnei r2, 0 + 5f18: 0ffd bf 0x5f12 // 5f12 + 5f1a: 07e6 br 0x5ee6 // 5ee6 + 5f1c: 2000004c .long 0x2000004c + 5f20: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00005f24 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 5f24: 106c lrw r3, 0x2000005c // 5f54 + 5f26: 104d lrw r2, 0xffff // 5f58 + 5f28: 9360 ld.w r3, (r3, 0x0) + 5f2a: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 5f2c: 104c lrw r2, 0xffffff // 5f5c + 5f2e: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 5f30: 104c lrw r2, 0xd22d0000 // 5f60 + 5f32: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 5f34: 104c lrw r2, 0x70ff3bff // 5f64 + 5f36: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 5f38: 320a movi r2, 10 + 5f3a: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f3c: 102b lrw r1, 0x70c // 5f68 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 5f3e: 237f addi r3, 128 + 5f40: 3200 movi r2, 0 + 5f42: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 5f44: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f46: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 5f48: 1029 lrw r1, 0x3fe // 5f6c + 5f4a: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 5f4c: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 5f4e: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 5f50: b35f st.w r2, (r3, 0x7c) +} + 5f52: 783c jmp r15 + 5f54: 2000005c .long 0x2000005c + 5f58: 0000ffff .long 0x0000ffff + 5f5c: 00ffffff .long 0x00ffffff + 5f60: d22d0000 .long 0xd22d0000 + 5f64: 70ff3bff .long 0x70ff3bff + 5f68: 0000070c .long 0x0000070c + 5f6c: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00005f70 : +{ + 5f70: 14d0 push r15 + if (NewState != DISABLE) + 5f72: 3840 cmpnei r0, 0 + 5f74: 0c05 bf 0x5f7e // 5f7e + 5f76: 6c07 mov r0, r1 + 5f78: e3ffff9c bsr 0x5eb0 // 5eb0 +} + 5f7c: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 5f7e: 1068 lrw r3, 0x2000005c // 5f9c + 5f80: 9360 ld.w r3, (r3, 0x0) + 5f82: 9342 ld.w r2, (r3, 0x8) + 5f84: 6c84 or r2, r1 + 5f86: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 5f88: 9343 ld.w r2, (r3, 0xc) + 5f8a: 6884 and r2, r1 + 5f8c: 3a40 cmpnei r2, 0 + 5f8e: 0bfd bt 0x5f88 // 5f88 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 5f90: 237f addi r3, 128 + 5f92: 9301 ld.w r0, (r3, 0x4) + 5f94: 6c40 or r1, r0 + 5f96: b321 st.w r1, (r3, 0x4) +} + 5f98: 07f2 br 0x5f7c // 5f7c + 5f9a: 0000 bkpt + 5f9c: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00005fa0 : +//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 ) +{ + 5fa0: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 5fa2: 3b48 cmpnei r3, 8 + 5fa4: 0828 bt 0x5ff4 // 5ff4 + { + IFC->CEDR=0X01; //CLKEN + 5fa6: 109d lrw r4, 0x20000060 // 6018 + 5fa8: 3501 movi r5, 1 + 5faa: 9480 ld.w r4, (r4, 0x0) + 5fac: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 5fae: 3504 movi r5, 4 + 5fb0: 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)) + 5fb2: 5b83 subi r4, r3, 1 + 5fb4: 3c01 cmphsi r4, 2 + 5fb6: 0c2b bf 0x600c // 600c + { + 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)) + 5fb8: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 5fba: 3c04 cmphsi r4, 5 + 5fbc: 0c03 bf 0x5fc2 // 5fc2 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 5fbe: 3b4b cmpnei r3, 11 + 5fc0: 0807 bt 0x5fce // 5fce + { + IFC->CEDR=0X01; //CLKEN + 5fc2: 1076 lrw r3, 0x20000060 // 6018 + 5fc4: 3401 movi r4, 1 + 5fc6: 9360 ld.w r3, (r3, 0x0) + 5fc8: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 5fca: 3400 movi r4, 0 + 5fcc: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fce: 1094 lrw r4, 0xd22d0000 // 601c + 5fd0: 6c10 or r0, r4 + 5fd2: 1074 lrw r3, 0x2000005c // 6020 + 5fd4: 6c40 or r1, r0 + 5fd6: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fd8: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fda: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fdc: 4001 lsli r0, r0, 1 + 5fde: 9324 ld.w r1, (r3, 0x10) + 5fe0: 6840 and r1, r0 + 5fe2: 3940 cmpnei r1, 0 + 5fe4: 0ffd bf 0x5fde // 5fde + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 5fe6: 1030 lrw r1, 0xc33c0000 // 6024 + 5fe8: 6c48 or r1, r2 + 5fea: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 5fec: 9328 ld.w r1, (r3, 0x20) + 5fee: 644a cmpne r2, r1 + 5ff0: 0bfe bt 0x5fec // 5fec +} + 5ff2: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 5ff4: 3b40 cmpnei r3, 0 + 5ff6: 0c03 bf 0x5ffc // 5ffc + 5ff8: 3b49 cmpnei r3, 9 + 5ffa: 0807 bt 0x6008 // 6008 + IFC->CEDR=0X01; //CLKEN + 5ffc: 1087 lrw r4, 0x20000060 // 6018 + 5ffe: 3501 movi r5, 1 + 6000: 9480 ld.w r4, (r4, 0x0) + 6002: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 6004: 3502 movi r5, 2 + 6006: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 6008: 3b4a cmpnei r3, 10 + 600a: 0bd4 bt 0x5fb2 // 5fb2 + IFC->CEDR=0X01; //CLKEN + 600c: 1083 lrw r4, 0x20000060 // 6018 + 600e: 3501 movi r5, 1 + 6010: 9480 ld.w r4, (r4, 0x0) + 6012: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 6014: b4a5 st.w r5, (r4, 0x14) + 6016: 07d1 br 0x5fb8 // 5fb8 + 6018: 20000060 .long 0x20000060 + 601c: d22d0000 .long 0xd22d0000 + 6020: 2000005c .long 0x2000005c + 6024: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00006028 : +//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) +{ + 6028: 14d1 push r4, r15 + 602a: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 602c: 3110 movi r1, 16 + 602e: 3000 movi r0, 0 + 6030: e3ffffa0 bsr 0x5f70 // 5f70 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 6034: 1066 lrw r3, 0x2000005c // 604c + 6036: 9360 ld.w r3, (r3, 0x0) + 6038: 9319 ld.w r0, (r3, 0x64) + 603a: 3884 bclri r0, 4 + 603c: 3885 bclri r0, 5 + 603e: 6c10 or r0, r4 + 6040: b319 st.w r0, (r3, 0x64) + 6042: 3010 movi r0, 16 + 6044: e3ffff36 bsr 0x5eb0 // 5eb0 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 6048: 1491 pop r4, r15 + 604a: 0000 bkpt + 604c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00006050 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 6050: 106c lrw r3, 0x2000005c // 6080 + if(NewState != DISABLE) + 6052: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 6054: 9360 ld.w r3, (r3, 0x0) + 6056: 237f addi r3, 128 + if(NewState != DISABLE) + 6058: 0c0a bf 0x606c // 606c + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605a: 104b lrw r2, 0x78870000 // 6084 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 605c: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605e: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 6060: 4125 lsli r1, r1, 5 + 6062: 934d ld.w r2, (r3, 0x34) + 6064: 6884 and r2, r1 + 6066: 3a40 cmpnei r2, 0 + 6068: 0ffd bf 0x6062 // 6062 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 606a: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 606c: 1047 lrw r2, 0x788755aa // 6088 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 606e: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 6070: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 6072: 4125 lsli r1, r1, 5 + 6074: 934d ld.w r2, (r3, 0x34) + 6076: 6884 and r2, r1 + 6078: 3a40 cmpnei r2, 0 + 607a: 0bfd bt 0x6074 // 6074 + 607c: 07f7 br 0x606a // 606a + 607e: 0000 bkpt + 6080: 2000005c .long 0x2000005c + 6084: 78870000 .long 0x78870000 + 6088: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +0000608c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 608c: 1064 lrw r3, 0x2000005c // 609c + 608e: 32b4 movi r2, 180 + 6090: 9360 ld.w r3, (r3, 0x0) + 6092: 237f addi r3, 128 + 6094: 4257 lsli r2, r2, 23 + 6096: b34e st.w r2, (r3, 0x38) +} + 6098: 783c jmp r15 + 609a: 0000 bkpt + 609c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +000060a0 : +//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; + 60a0: 1044 lrw r2, 0x87780000 // 60b0 + 60a2: 1065 lrw r3, 0x2000005c // 60b4 + 60a4: 6c48 or r1, r2 + 60a6: 9360 ld.w r3, (r3, 0x0) + 60a8: 6c04 or r0, r1 + 60aa: 237f addi r3, 128 + 60ac: b30d st.w r0, (r3, 0x34) +} + 60ae: 783c jmp r15 + 60b0: 87780000 .long 0x87780000 + 60b4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +000060b8 : +//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) +{ + 60b8: 14c3 push r4-r6 + 60ba: 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; + 60bc: 10c5 lrw r6, 0xb44b0000 // 60d0 + 60be: 6d18 or r4, r6 + 60c0: 6cd0 or r3, r4 + 60c2: 6c8c or r2, r3 + 60c4: 6c48 or r1, r2 + 60c6: 10a4 lrw r5, 0x2000005c // 60d4 + 60c8: 6c04 or r0, r1 + 60ca: 95a0 ld.w r5, (r5, 0x0) + 60cc: b513 st.w r0, (r5, 0x4c) +} + 60ce: 1483 pop r4-r6 + 60d0: b44b0000 .long 0xb44b0000 + 60d4: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +000060d8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 60d8: 1066 lrw r3, 0x2000005c // 60f0 + 60da: 3180 movi r1, 128 + 60dc: 9360 ld.w r3, (r3, 0x0) + 60de: 3280 movi r2, 128 + 60e0: 604c addu r1, r3 + 60e2: 4244 lsli r2, r2, 4 + 60e4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 60e6: 935d ld.w r2, (r3, 0x74) + 60e8: 3aab bseti r2, 11 + 60ea: b35d st.w r2, (r3, 0x74) +} + 60ec: 783c jmp r15 + 60ee: 0000 bkpt + 60f0: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +000060f4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 60f4: 1066 lrw r3, 0x2000005c // 610c + 60f6: 3180 movi r1, 128 + 60f8: 9360 ld.w r3, (r3, 0x0) + 60fa: 3280 movi r2, 128 + 60fc: 604c addu r1, r3 + 60fe: 4241 lsli r2, r2, 1 + 6100: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 6102: 935d ld.w r2, (r3, 0x74) + 6104: 3aa8 bseti r2, 8 + 6106: b35d st.w r2, (r3, 0x74) +} + 6108: 783c jmp r15 + 610a: 0000 bkpt + 610c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00006110 : +//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) + 6110: 3a40 cmpnei r2, 0 + 6112: 0c04 bf 0x611a // 611a + 6114: 3a41 cmpnei r2, 1 + 6116: 0c0e bf 0x6132 // 6132 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 6118: 783c jmp r15 + 611a: 106d lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 611c: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 611e: 9360 ld.w r3, (r3, 0x0) + 6120: 237f addi r3, 128 + 6122: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 6124: 0c04 bf 0x612c // 612c + SYSCON->EXIRT |=EXIPIN; + 6126: 6c48 or r1, r2 + 6128: b325 st.w r1, (r3, 0x14) + 612a: 07f7 br 0x6118 // 6118 + SYSCON->EXIRT &=~EXIPIN; + 612c: 6885 andn r2, r1 + 612e: b345 st.w r2, (r3, 0x14) + 6130: 07f4 br 0x6118 // 6118 + 6132: 1067 lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 6134: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 6136: 9360 ld.w r3, (r3, 0x0) + 6138: 237f addi r3, 128 + 613a: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 613c: 0c04 bf 0x6144 // 6144 + SYSCON->EXIFT |=EXIPIN; + 613e: 6c48 or r1, r2 + 6140: b326 st.w r1, (r3, 0x18) + 6142: 07eb br 0x6118 // 6118 + SYSCON->EXIFT &=~EXIPIN; + 6144: 6885 andn r2, r1 + 6146: b346 st.w r2, (r3, 0x18) +} + 6148: 07e8 br 0x6118 // 6118 + 614a: 0000 bkpt + 614c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00006150 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 6150: 106b lrw r3, 0x2000005c // 617c + 6152: 104c lrw r2, 0x3fff // 6180 + 6154: 9360 ld.w r3, (r3, 0x0) + 6156: 237f addi r3, 128 + if(NewState != DISABLE) + 6158: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 615a: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 615c: 0c0c bf 0x6174 // 6174 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 615e: 9347 ld.w r2, (r3, 0x1c) + 6160: 6c84 or r2, r1 + 6162: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 6164: 9349 ld.w r2, (r3, 0x24) + 6166: 6884 and r2, r1 + 6168: 3a40 cmpnei r2, 0 + 616a: 0ffd bf 0x6164 // 6164 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 616c: 934b ld.w r2, (r3, 0x2c) + 616e: 6c48 or r1, r2 + 6170: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 6172: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 6174: 9348 ld.w r2, (r3, 0x20) + 6176: 6c48 or r1, r2 + 6178: b328 st.w r1, (r3, 0x20) +} + 617a: 07fc br 0x6172 // 6172 + 617c: 2000005c .long 0x2000005c + 6180: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00006184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 6184: b02b st.w r1, (r0, 0x2c) +} + 6186: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00006188 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 6188: 3380 movi r3, 128 + 618a: 4370 lsli r3, r3, 16 + 618c: 1042 lrw r2, 0xe000e100 // 6194 + 618e: b260 st.w r3, (r2, 0x0) +} + 6190: 783c jmp r15 + 6192: 0000 bkpt + 6194: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00006198 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 6198: 3202 movi r2, 2 + 619a: 1062 lrw r3, 0xe000e100 // 61a0 + 619c: b340 st.w r2, (r3, 0x0) +} + 619e: 783c jmp r15 + 61a0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +000061a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 61a4: 3202 movi r2, 2 + 61a6: 1062 lrw r3, 0xe000e180 // 61ac + 61a8: b340 st.w r2, (r3, 0x0) +} + 61aa: 783c jmp r15 + 61ac: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_Software_Reset: + +000061b0 : +//EntryParameter:None +//ReturnValue:MCU reset +/*************************************************************/ +void SYSCON_Software_Reset(void) +{ + SYSCON->IDCCR=IDCCR_KEY|SWRST; + 61b0: 1063 lrw r3, 0x2000005c // 61bc + 61b2: 1044 lrw r2, 0xe11e0080 // 61c0 + 61b4: 9360 ld.w r3, (r3, 0x0) + 61b6: b340 st.w r2, (r3, 0x0) +} + 61b8: 783c jmp r15 + 61ba: 0000 bkpt + 61bc: 2000005c .long 0x2000005c + 61c0: e11e0080 .long 0xe11e0080 + +Disassembly of section .text.SYSCON_INT_Priority: + +000061c4 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61c4: 1066 lrw r3, 0xe000e400 // 61dc + 61c6: 1047 lrw r2, 0xc0c0c0c0 // 61e0 + 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 + 61c8: 1027 lrw r1, 0xc0c000c0 // 61e4 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61ca: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 61cc: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 61ce: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 61d0: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 61d2: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 61d4: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 61d6: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 61d8: b347 st.w r2, (r3, 0x1c) +} + 61da: 783c jmp r15 + 61dc: e000e400 .long 0xe000e400 + 61e0: c0c0c0c0 .long 0xc0c0c0c0 + 61e4: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000061e8 : +//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) +{ + 61e8: 14c1 push r4 + 61ea: 4862 lsri r3, r0, 2 + 61ec: 4342 lsli r2, r3, 2 + 61ee: 106a lrw r3, 0x20000064 // 6214 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 61f0: 3403 movi r4, 3 + 61f2: 9360 ld.w r3, (r3, 0x0) + 61f4: 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)); + 6206: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 620a: 7040 lsl r1, r0 + 620c: 6c48 or r1, r2 + 620e: b320 st.w r1, (r3, 0x0) +} + 6210: 1481 pop r4 + 6212: 0000 bkpt + 6214: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +00006218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 6218: 1075 lrw r3, 0x2000004c // 626c + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 621a: 1036 lrw r1, 0x20000048 // 6270 + 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; + 621c: 1016 lrw r0, 0xffff // 6274 + GPIOA0->CONLR &= 0xFF000000; + 621e: 9340 ld.w r2, (r3, 0x0) + 6220: 9260 ld.w r3, (r2, 0x0) + 6222: 4b78 lsri r3, r3, 24 + 6224: 4378 lsli r3, r3, 24 + 6226: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 6228: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 622a: 3300 movi r3, 0 + 622c: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 622e: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 6230: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 6232: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 6234: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 6236: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 6238: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 623a: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 623c: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 623e: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 6240: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 6242: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 6244: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 6246: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 6248: 303f movi r0, 63 + 624a: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 624c: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 624e: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 6250: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 6252: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 6254: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 6256: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 6258: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 625a: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 625c: 1047 lrw r2, 0x20000044 // 6278 + 625e: 9240 ld.w r2, (r2, 0x0) + 6260: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 6262: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 6264: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 6266: 330f movi r3, 15 + 6268: b263 st.w r3, (r2, 0xc) +} + 626a: 783c jmp r15 + 626c: 2000004c .long 0x2000004c + 6270: 20000048 .long 0x20000048 + 6274: 0000ffff .long 0x0000ffff + 6278: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +0000627c : +//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) +{ + 627c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 627e: 3907 cmphsi r1, 8 +{ + 6280: 6d03 mov r4, r0 + if(PinNum<8) + 6282: 0830 bt 0x62e2 // 62e2 + { + switch (PinNum) + 6284: 5903 subi r0, r1, 1 + 6286: 3806 cmphsi r0, 7 + 6288: 0827 bt 0x62d6 // 62d6 + 628a: e3ffe939 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 628e: 1004 .short 0x1004 + 6290: 1d1a1613 .long 0x1d1a1613 + 6294: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 6296: 3300 movi r3, 0 + 6298: 3104 movi r1, 4 + 629a: 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) + 629c: 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< + 62b2: 07f5 br 0x629c // 629c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 62b4: 310c movi r1, 12 + 62b6: 1166 lrw r3, 0xffff0fff // 634c + 62b8: 07f2 br 0x629c // 629c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 62ba: 3110 movi r1, 16 + 62bc: 1165 lrw r3, 0xfff10000 // 6350 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62be: 2b00 subi r3, 1 + 62c0: 07ee br 0x629c // 629c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 62c2: 3114 movi r1, 20 + 62c4: 1164 lrw r3, 0xff100000 // 6354 + 62c6: 07fc br 0x62be // 62be + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62c8: 33f1 movi r3, 241 + 62ca: 3118 movi r1, 24 + 62cc: 4378 lsli r3, r3, 24 + 62ce: 07f8 br 0x62be // 62be + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 62d0: 311c movi r1, 28 + 62d2: 1162 lrw r3, 0xfffffff // 6358 + 62d4: 07e4 br 0x629c // 629c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 62d6: 3300 movi r3, 0 + 62d8: 3100 movi r1, 0 + 62da: 2b0f subi r3, 16 + 62dc: 07e0 br 0x629c // 629c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 62e2: 390f cmphsi r1, 16 + 62e4: 0be4 bt 0x62ac // 62ac + switch (PinNum) + 62e6: 2908 subi r1, 9 + 62e8: 3906 cmphsi r1, 7 + 62ea: 6c07 mov r0, r1 + 62ec: 0827 bt 0x633a // 633a + 62ee: e3ffe907 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 62f2: 1004 .short 0x1004 + 62f4: 1d1a1613 .long 0x1d1a1613 + 62f8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 62fa: 3300 movi r3, 0 + 62fc: 3104 movi r1, 4 + 62fe: 2bf0 subi r3, 241 + if (Dir) + 6300: 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; + 6312: 3108 movi r1, 8 + 6314: 106d lrw r3, 0xfffff0ff // 6348 + 6316: 07f5 br 0x6300 // 6300 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 6318: 310c movi r1, 12 + 631a: 106d lrw r3, 0xffff0fff // 634c + 631c: 07f2 br 0x6300 // 6300 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 631e: 3110 movi r1, 16 + 6320: 106c lrw r3, 0xfff10000 // 6350 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 6322: 2b00 subi r3, 1 + 6324: 07ee br 0x6300 // 6300 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 6326: 3114 movi r1, 20 + 6328: 106b lrw r3, 0xff100000 // 6354 + 632a: 07fc br 0x6322 // 6322 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 632c: 33f1 movi r3, 241 + 632e: 3118 movi r1, 24 + 6330: 4378 lsli r3, r3, 24 + 6332: 07f8 br 0x6322 // 6322 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 6334: 311c movi r1, 28 + 6336: 1069 lrw r3, 0xfffffff // 6358 + 6338: 07e4 br 0x6300 // 6300 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 633a: 3300 movi r3, 0 + 633c: 3100 movi r1, 0 + 633e: 2b0f subi r3, 16 + 6340: 07e0 br 0x6300 // 6300 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 6346: 0000 bkpt + 6348: fffff0ff .long 0xfffff0ff + 634c: ffff0fff .long 0xffff0fff + 6350: fff10000 .long 0xfff10000 + 6354: ff100000 .long 0xff100000 + 6358: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000635c : +//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)); + 635c: 4121 lsli r1, r1, 1 + 635e: 3203 movi r2, 3 + 6360: 9068 ld.w r3, (r0, 0x20) + 6362: 7084 lsl r2, r1 + 6364: 68c9 andn r3, r2 + 6366: 3201 movi r2, 1 + 6368: 7084 lsl r2, r1 + 636a: 6cc8 or r3, r2 + 636c: b068 st.w r3, (r0, 0x20) +} + 636e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00006370 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 6370: 4121 lsli r1, r1, 1 + 6372: 3301 movi r3, 1 + 6374: 9049 ld.w r2, (r0, 0x24) + 6376: 70c4 lsl r3, r1 + 6378: 6cc8 or r3, r2 + 637a: b069 st.w r3, (r0, 0x24) +} + 637c: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00006380 : +//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) +{ + 6380: 14c1 push r4 + 6382: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 6384: 3a0f cmphsi r2, 16 + 6386: 084f bt 0x6424 // 6424 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 6388: 6ccb mov r3, r2 + 638a: 3b83 bclri r3, 3 + 638c: 3b40 cmpnei r3, 0 + 638e: 0813 bt 0x63b4 // 63b4 + { + R_data_temp=0xfffffff0; + 6390: 2b0f subi r3, 16 + 6392: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 6394: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 6396: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 6398: dc6e0003 st.b r3, (r14, 0x3) + 639c: 1176 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x<8) + 639e: 0c38 bf 0x640e // 640e + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 63b4: 3b41 cmpnei r3, 1 + 63b6: 0806 bt 0x63c2 // 63c2 + R_data_temp=0xffffff0f; + 63b8: 3300 movi r3, 0 + 63ba: 2bf0 subi r3, 241 + 63bc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 63be: 3304 movi r3, 4 + 63c0: 07eb br 0x6396 // 6396 + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 63c2: 3b42 cmpnei r3, 2 + 63c4: 0805 bt 0x63ce // 63ce + R_data_temp=0xfffff0ff; + 63c6: 116d lrw r3, 0xfffff0ff // 6478 + 63c8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 63ca: 3308 movi r3, 8 + 63cc: 07e5 br 0x6396 // 6396 + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 63ce: 3b43 cmpnei r3, 3 + 63d0: 0805 bt 0x63da // 63da + R_data_temp=0xffff0fff; + 63d2: 116b lrw r3, 0xffff0fff // 647c + 63d4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 63d6: 330c movi r3, 12 + 63d8: 07df br 0x6396 // 6396 + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 63da: 3b44 cmpnei r3, 4 + 63dc: 0806 bt 0x63e8 // 63e8 + R_data_temp=0xfff0ffff; + 63de: 1169 lrw r3, 0xfff10000 // 6480 + 63e0: 2b00 subi r3, 1 + 63e2: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 63e4: 3310 movi r3, 16 + 63e6: 07d8 br 0x6396 // 6396 + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 63e8: 3b45 cmpnei r3, 5 + 63ea: 0806 bt 0x63f6 // 63f6 + R_data_temp=0xff0fffff; + 63ec: 1166 lrw r3, 0xff100000 // 6484 + 63ee: 2b00 subi r3, 1 + 63f0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 63f2: 3314 movi r3, 20 + 63f4: 07d1 br 0x6396 // 6396 + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 63f6: 3b46 cmpnei r3, 6 + 63f8: 0807 bt 0x6406 // 6406 + R_data_temp=0xf0ffffff; + 63fa: 33f1 movi r3, 241 + 63fc: 4378 lsli r3, r3, 24 + 63fe: 2b00 subi r3, 1 + 6400: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 6402: 3318 movi r3, 24 + 6404: 07c9 br 0x6396 // 6396 + R_data_temp=0x0fffffff; + 6406: 1161 lrw r3, 0xfffffff // 6488 + 6408: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 640a: 331c movi r3, 28 + 640c: 07c5 br 0x6396 // 6396 + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 6420: 1402 addi r14, r14, 8 + 6422: 1481 pop r4 + else if(Selete_EXI_x<20) + 6424: 3a13 cmphsi r2, 20 + 6426: 0bfd bt 0x6420 // 6420 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 6428: 3840 cmpnei r0, 0 + 642a: 0814 bt 0x6452 // 6452 + 642c: 3300 movi r3, 0 + 642e: 2b0f subi r3, 16 + 6430: 60c8 addu r3, r2 + 6432: 3b01 cmphsi r3, 2 + 6434: 0bf6 bt 0x6420 // 6420 + if(Selete_EXI_x==16) + 6436: 3a50 cmpnei r2, 16 + 6438: 106f lrw r3, 0x20000044 // 6474 + 643a: 0806 bt 0x6446 // 6446 + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 643c: 9340 ld.w r2, (r3, 0x0) + 643e: 9262 ld.w r3, (r2, 0x8) + 6440: 6c4c or r1, r3 + 6442: b222 st.w r1, (r2, 0x8) + 6444: 07ee br 0x6420 // 6420 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 6446: 9360 ld.w r3, (r3, 0x0) + 6448: 9342 ld.w r2, (r3, 0x8) + 644a: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 644c: 6c48 or r1, r2 + 644e: b322 st.w r1, (r3, 0x8) +} + 6450: 07e8 br 0x6420 // 6420 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 6452: 3842 cmpnei r0, 2 + 6454: 0be6 bt 0x6420 // 6420 + 6456: 3300 movi r3, 0 + 6458: 2b11 subi r3, 18 + 645a: 60c8 addu r3, r2 + 645c: 3b01 cmphsi r3, 2 + 645e: 0be1 bt 0x6420 // 6420 + 6460: 1065 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x==18) + 6462: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 6464: 9360 ld.w r3, (r3, 0x0) + 6466: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 6468: 0803 bt 0x646e // 646e + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 646a: 4128 lsli r1, r1, 8 + 646c: 07f0 br 0x644c // 644c + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 646e: 412c lsli r1, r1, 12 + 6470: 07ee br 0x644c // 644c + 6472: 0000 bkpt + 6474: 20000044 .long 0x20000044 + 6478: fffff0ff .long 0xfffff0ff + 647c: ffff0fff .long 0xffff0fff + 6480: fff10000 .long 0xfff10000 + 6484: ff100000 .long 0xff100000 + 6488: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +0000648c : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 648c: 14d0 push r15 + switch (EXI_IO) + 648e: 380f cmphsi r0, 16 + 6490: 0812 bt 0x64b4 // 64b4 + 6492: 117d lrw r3, 0x2000004c // 6584 + 6494: e3ffe834 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6498: 1d150f08 .long 0x1d150f08 + 649c: 39322b24 .long 0x39322b24 + 64a0: 544c463f .long 0x544c463f + 64a4: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 64a8: 9340 ld.w r2, (r3, 0x0) + 64aa: 9260 ld.w r3, (r2, 0x0) + 64ac: 310f movi r1, 15 + 64ae: 68c5 andn r3, r1 + 64b0: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b2: b260 st.w r3, (r2, 0x0) + 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; + } +} + 64b4: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b6: 9340 ld.w r2, (r3, 0x0) + 64b8: 9260 ld.w r3, (r2, 0x0) + 64ba: 31f0 movi r1, 240 + 64bc: 68c5 andn r3, r1 + 64be: 3ba4 bseti r3, 4 + 64c0: 07f9 br 0x64b2 // 64b2 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 64c2: 9320 ld.w r1, (r3, 0x0) + 64c4: 32f0 movi r2, 240 + 64c6: 9160 ld.w r3, (r1, 0x0) + 64c8: 4244 lsli r2, r2, 4 + 64ca: 68c9 andn r3, r2 + 64cc: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64ce: b160 st.w r3, (r1, 0x0) + 64d0: 07f2 br 0x64b4 // 64b4 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 64d2: 9320 ld.w r1, (r3, 0x0) + 64d4: 32f0 movi r2, 240 + 64d6: 9160 ld.w r3, (r1, 0x0) + 64d8: 4248 lsli r2, r2, 8 + 64da: 68c9 andn r3, r2 + 64dc: 3bac bseti r3, 12 + 64de: 07f8 br 0x64ce // 64ce + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 64e0: 9320 ld.w r1, (r3, 0x0) + 64e2: 32f0 movi r2, 240 + 64e4: 9160 ld.w r3, (r1, 0x0) + 64e6: 424c lsli r2, r2, 12 + 64e8: 68c9 andn r3, r2 + 64ea: 3bb0 bseti r3, 16 + 64ec: 07f1 br 0x64ce // 64ce + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 64ee: 9320 ld.w r1, (r3, 0x0) + 64f0: 32f0 movi r2, 240 + 64f2: 9160 ld.w r3, (r1, 0x0) + 64f4: 4250 lsli r2, r2, 16 + 64f6: 68c9 andn r3, r2 + 64f8: 3bb4 bseti r3, 20 + 64fa: 07ea br 0x64ce // 64ce + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64fc: 9320 ld.w r1, (r3, 0x0) + 64fe: 32f0 movi r2, 240 + 6500: 9160 ld.w r3, (r1, 0x0) + 6502: 4254 lsli r2, r2, 20 + 6504: 68c9 andn r3, r2 + 6506: 3bb8 bseti r3, 24 + 6508: 07e3 br 0x64ce // 64ce + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 650a: 9340 ld.w r2, (r3, 0x0) + 650c: 9260 ld.w r3, (r2, 0x0) + 650e: 4364 lsli r3, r3, 4 + 6510: 4b64 lsri r3, r3, 4 + 6512: 3bbc bseti r3, 28 + 6514: 07cf br 0x64b2 // 64b2 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 6516: 9340 ld.w r2, (r3, 0x0) + 6518: 9261 ld.w r3, (r2, 0x4) + 651a: 310f movi r1, 15 + 651c: 68c5 andn r3, r1 + 651e: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6520: b261 st.w r3, (r2, 0x4) +} + 6522: 07c9 br 0x64b4 // 64b4 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 6524: 9340 ld.w r2, (r3, 0x0) + 6526: 9261 ld.w r3, (r2, 0x4) + 6528: 31f0 movi r1, 240 + 652a: 68c5 andn r3, r1 + 652c: 3ba4 bseti r3, 4 + 652e: 07f9 br 0x6520 // 6520 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 6530: 9320 ld.w r1, (r3, 0x0) + 6532: 32f0 movi r2, 240 + 6534: 9161 ld.w r3, (r1, 0x4) + 6536: 4244 lsli r2, r2, 4 + 6538: 68c9 andn r3, r2 + 653a: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 653c: b161 st.w r3, (r1, 0x4) + 653e: 07bb br 0x64b4 // 64b4 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 6540: 9320 ld.w r1, (r3, 0x0) + 6542: 32f0 movi r2, 240 + 6544: 9161 ld.w r3, (r1, 0x4) + 6546: 4248 lsli r2, r2, 8 + 6548: 68c9 andn r3, r2 + 654a: 3bac bseti r3, 12 + 654c: 07f8 br 0x653c // 653c + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 654e: 9320 ld.w r1, (r3, 0x0) + 6550: 32f0 movi r2, 240 + 6552: 9161 ld.w r3, (r1, 0x4) + 6554: 424c lsli r2, r2, 12 + 6556: 68c9 andn r3, r2 + 6558: 3bb0 bseti r3, 16 + 655a: 07f1 br 0x653c // 653c + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 655c: 9320 ld.w r1, (r3, 0x0) + 655e: 32f0 movi r2, 240 + 6560: 9161 ld.w r3, (r1, 0x4) + 6562: 4250 lsli r2, r2, 16 + 6564: 68c9 andn r3, r2 + 6566: 3bb4 bseti r3, 20 + 6568: 07ea br 0x653c // 653c + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 656a: 9320 ld.w r1, (r3, 0x0) + 656c: 32f0 movi r2, 240 + 656e: 9161 ld.w r3, (r1, 0x4) + 6570: 4254 lsli r2, r2, 20 + 6572: 68c9 andn r3, r2 + 6574: 3bb8 bseti r3, 24 + 6576: 07e3 br 0x653c // 653c + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6578: 9340 ld.w r2, (r3, 0x0) + 657a: 9261 ld.w r3, (r2, 0x4) + 657c: 4364 lsli r3, r3, 4 + 657e: 4b64 lsri r3, r3, 4 + 6580: 3bbc bseti r3, 28 + 6582: 07cf br 0x6520 // 6520 + 6584: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +00006588 : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 6598: 9045 ld.w r2, (r0, 0x14) + 659a: 3301 movi r3, 1 + 659c: 7085 lsr r2, r1 + 659e: 688c and r2, r3 + { + if (dat==1) + 65a0: 3a40 cmpnei r2, 0 + 65a2: 70c4 lsl r3, r1 + 65a4: 0c03 bf 0x65aa // 65aa + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000065ae : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 65c0: 1064 lrw r3, 0x20000014 // 65d0 + 65c2: 9340 ld.w r2, (r3, 0x0) + 65c4: 9261 ld.w r3, (r2, 0x4) + 65c6: 3bac bseti r3, 12 + 65c8: 3bae bseti r3, 14 + 65ca: b261 st.w r3, (r2, 0x4) +} + 65cc: 783c jmp r15 + 65ce: 0000 bkpt + 65d0: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000065d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 65d4: 1063 lrw r3, 0x20000010 // 65e0 + 65d6: 9360 ld.w r3, (r3, 0x0) + 65d8: 9340 ld.w r2, (r3, 0x0) + 65da: 6c08 or r0, r2 + 65dc: b300 st.w r0, (r3, 0x0) +} + 65de: 783c jmp r15 + 65e0: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000065e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 65e4: 3300 movi r3, 0 + 65e6: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 65e8: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 65ea: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 65ec: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 65ee: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 65f0: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 65f2: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 65f4: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 65f6: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 65f8: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 65fa: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 65fc: b06d st.w r3, (r0, 0x34) +} + 65fe: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00006600 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 6600: 9060 ld.w r3, (r0, 0x0) + 6602: 3ba0 bseti r3, 0 + 6604: b060 st.w r3, (r0, 0x0) +} + 6606: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00006608 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 6608: 9060 ld.w r3, (r0, 0x0) + 660a: 3bac bseti r3, 12 + 660c: 3bae bseti r3, 14 + 660e: b060 st.w r3, (r0, 0x0) +} + 6610: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00006612 : +//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) +{ + 6612: 14c3 push r4-r6 + 6614: 98a4 ld.w r5, (r14, 0x10) + 6616: 6d97 mov r6, r5 + 6618: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 661a: 6d18 or r4, r6 + 661c: 6cd0 or r3, r4 + 661e: 90a1 ld.w r5, (r0, 0x4) + 6620: 6c4c or r1, r3 + 6622: 6c54 or r1, r5 + 6624: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 6626: b042 st.w r2, (r0, 0x8) +} + 6628: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000662a : +//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) +{ + 662a: 14c4 push r4-r7 + 662c: 1421 subi r14, r14, 4 + 662e: 9885 ld.w r4, (r14, 0x14) + 6630: 6dd3 mov r7, r4 + 6632: 9886 ld.w r4, (r14, 0x18) + 6634: b880 st.w r4, (r14, 0x0) + 6636: 9887 ld.w r4, (r14, 0x1c) + 6638: 6d93 mov r6, r4 + 663a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 663c: 6d58 or r5, r6 + 663e: 98c0 ld.w r6, (r14, 0x0) + 6640: 6d58 or r5, r6 + 6642: 6d5c or r5, r7 + 6644: 6cd4 or r3, r5 + 6646: 6c8c or r2, r3 + 6648: 9081 ld.w r4, (r0, 0x4) + 664a: 6c48 or r1, r2 + 664c: 6d04 or r4, r1 + 664e: 6d9f mov r6, r7 + 6650: b081 st.w r4, (r0, 0x4) +} + 6652: 1401 addi r14, r14, 4 + 6654: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00006656 : +//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; + 6656: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 6658: b044 st.w r2, (r0, 0x10) +} + 665a: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +0000665c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 665c: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 665e: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 6660: 0c04 bf 0x6668 // 6668 + BTx->IMCR |= BT_IMSCR_X; + 6662: 6c8c or r2, r3 + 6664: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 6666: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 6668: 68c9 andn r3, r2 + 666a: b06b st.w r3, (r0, 0x2c) +} + 666c: 07fd br 0x6666 // 6666 + +Disassembly of section .text.BT1_INT_ENABLE: + +00006670 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 6670: 3380 movi r3, 128 + 6672: 4376 lsli r3, r3, 22 + 6674: 1042 lrw r2, 0xe000e100 // 667c + 6676: b260 st.w r3, (r2, 0x0) +} + 6678: 783c jmp r15 + 667a: 0000 bkpt + 667c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00006680 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 6680: 1065 lrw r3, 0x20000040 // 6694 + 6682: 3200 movi r2, 0 + 6684: 9360 ld.w r3, (r3, 0x0) + 6686: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 6688: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 668a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 668c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 668e: b344 st.w r2, (r3, 0x10) +} + 6690: 783c jmp r15 + 6692: 0000 bkpt + 6694: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00006698 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 6698: 1065 lrw r3, 0x2000003c // 66ac + 669a: 3200 movi r2, 0 + 669c: 9360 ld.w r3, (r3, 0x0) + 669e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 66a0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 66a2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 66a4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 66a6: b344 st.w r2, (r3, 0x10) +} + 66a8: 783c jmp r15 + 66aa: 0000 bkpt + 66ac: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000066b0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 66b0: 1065 lrw r3, 0x20000038 // 66c4 + 66b2: 3200 movi r2, 0 + 66b4: 9360 ld.w r3, (r3, 0x0) + 66b6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 66b8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 66ba: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 66bc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 66be: b344 st.w r2, (r3, 0x10) +} + 66c0: 783c jmp r15 + 66c2: 0000 bkpt + 66c4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000066c8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 66c8: 1065 lrw r3, 0x20000040 // 66dc + 66ca: 320f movi r2, 15 + 66cc: 9360 ld.w r3, (r3, 0x0) + 66ce: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66d0: 3380 movi r3, 128 + 66d2: 4366 lsli r3, r3, 6 + 66d4: 1043 lrw r2, 0xe000e100 // 66e0 + 66d6: b260 st.w r3, (r2, 0x0) +} + 66d8: 783c jmp r15 + 66da: 0000 bkpt + 66dc: 20000040 .long 0x20000040 + 66e0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART1_Int_Enable: + +000066e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 66e4: 1065 lrw r3, 0x2000003c // 66f8 + 66e6: 320f movi r2, 15 + 66e8: 9360 ld.w r3, (r3, 0x0) + 66ea: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66ec: 3380 movi r3, 128 + 66ee: 4367 lsli r3, r3, 7 + 66f0: 1043 lrw r2, 0xe000e100 // 66fc + 66f2: b260 st.w r3, (r2, 0x0) +} + 66f4: 783c jmp r15 + 66f6: 0000 bkpt + 66f8: 2000003c .long 0x2000003c + 66fc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00006700 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 6700: 1065 lrw r3, 0x20000038 // 6714 + 6702: 320f movi r2, 15 + 6704: 9360 ld.w r3, (r3, 0x0) + 6706: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 6708: 3380 movi r3, 128 + 670a: 4368 lsli r3, r3, 8 + 670c: 1043 lrw r2, 0xe000e100 // 6718 + 670e: b260 st.w r3, (r2, 0x0) +} + 6710: 783c jmp r15 + 6712: 0000 bkpt + 6714: 20000038 .long 0x20000038 + 6718: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000671c : +//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) + 671c: 3840 cmpnei r0, 0 + 671e: 0821 bt 0x6760 // 6760 + { + if(UART_IO_G==0) + 6720: 3940 cmpnei r1, 0 + 6722: 080a bt 0x6736 // 6736 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 6724: 1177 lrw r3, 0x2000004c // 6800 + 6726: 31ff movi r1, 255 + 6728: 9340 ld.w r2, (r3, 0x0) + 672a: 9260 ld.w r3, (r2, 0x0) + 672c: 68c5 andn r3, r1 + 672e: 3ba2 bseti r3, 2 + 6730: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 6732: b260 st.w r3, (r2, 0x0) + 6734: 0415 br 0x675e // 675e + else if(UART_IO_G==1) + 6736: 3941 cmpnei r1, 1 + 6738: 0813 bt 0x675e // 675e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 673a: 1172 lrw r3, 0x2000004c // 6800 + 673c: 31f0 movi r1, 240 + 673e: 9340 ld.w r2, (r3, 0x0) + 6740: 9260 ld.w r3, (r2, 0x0) + 6742: 4130 lsli r1, r1, 16 + 6744: 68c5 andn r3, r1 + 6746: 31e0 movi r1, 224 + 6748: 412f lsli r1, r1, 15 + 674a: 6cc4 or r3, r1 + 674c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 674e: 31f0 movi r1, 240 + 6750: 9261 ld.w r3, (r2, 0x4) + 6752: 412c lsli r1, r1, 12 + 6754: 68c5 andn r3, r1 + 6756: 31e0 movi r1, 224 + 6758: 412b lsli r1, r1, 11 + 675a: 6cc4 or r3, r1 + 675c: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 675e: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 6760: 3841 cmpnei r0, 1 + 6762: 082d bt 0x67bc // 67bc + if(UART_IO_G==0) + 6764: 3940 cmpnei r1, 0 + 6766: 0814 bt 0x678e // 678e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 6768: 1167 lrw r3, 0x20000048 // 6804 + 676a: 310f movi r1, 15 + 676c: 9340 ld.w r2, (r3, 0x0) + 676e: 9260 ld.w r3, (r2, 0x0) + 6770: 68c5 andn r3, r1 + 6772: 3107 movi r1, 7 + 6774: 6cc4 or r3, r1 + 6776: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 6778: 32f0 movi r2, 240 + 677a: 1162 lrw r3, 0x2000004c // 6800 + 677c: 4250 lsli r2, r2, 16 + 677e: 9320 ld.w r1, (r3, 0x0) + 6780: 9161 ld.w r3, (r1, 0x4) + 6782: 68c9 andn r3, r2 + 6784: 32e0 movi r2, 224 + 6786: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 6788: 6cc8 or r3, r2 + 678a: b161 st.w r3, (r1, 0x4) + 678c: 07e9 br 0x675e // 675e + else if(UART_IO_G==1) + 678e: 3941 cmpnei r1, 1 + 6790: 080c bt 0x67a8 // 67a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 6792: 107c lrw r3, 0x2000004c // 6800 + 6794: 32ff movi r2, 255 + 6796: 9320 ld.w r1, (r3, 0x0) + 6798: 424c lsli r2, r2, 12 + 679a: 9160 ld.w r3, (r1, 0x0) + 679c: 68c9 andn r3, r2 + 679e: 32ee movi r2, 238 + 67a0: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67a2: 6cc8 or r3, r2 + 67a4: b160 st.w r3, (r1, 0x0) +} + 67a6: 07dc br 0x675e // 675e + else if(UART_IO_G==2) + 67a8: 3942 cmpnei r1, 2 + 67aa: 0bda bt 0x675e // 675e + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 67ac: 1075 lrw r3, 0x2000004c // 6800 + 67ae: 32ee movi r2, 238 + 67b0: 9320 ld.w r1, (r3, 0x0) + 67b2: 9161 ld.w r3, (r1, 0x4) + 67b4: 4368 lsli r3, r3, 8 + 67b6: 4b68 lsri r3, r3, 8 + 67b8: 4257 lsli r2, r2, 23 + 67ba: 07e7 br 0x6788 // 6788 + if (IO_UART_NUM==IO_UART2) + 67bc: 3842 cmpnei r0, 2 + 67be: 0bd0 bt 0x675e // 675e + if(UART_IO_G==0) + 67c0: 3940 cmpnei r1, 0 + 67c2: 0809 bt 0x67d4 // 67d4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 67c4: 106f lrw r3, 0x2000004c // 6800 + 67c6: 31ff movi r1, 255 + 67c8: 9340 ld.w r2, (r3, 0x0) + 67ca: 9260 ld.w r3, (r2, 0x0) + 67cc: 68c5 andn r3, r1 + 67ce: 3177 movi r1, 119 + 67d0: 6cc4 or r3, r1 + 67d2: 07b0 br 0x6732 // 6732 + else if(UART_IO_G==1) + 67d4: 3941 cmpnei r1, 1 + 67d6: 0809 bt 0x67e8 // 67e8 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 67d8: 106a lrw r3, 0x2000004c // 6800 + 67da: 32ee movi r2, 238 + 67dc: 9320 ld.w r1, (r3, 0x0) + 67de: 9160 ld.w r3, (r1, 0x0) + 67e0: 4368 lsli r3, r3, 8 + 67e2: 4b68 lsri r3, r3, 8 + 67e4: 4257 lsli r2, r2, 23 + 67e6: 07de br 0x67a2 // 67a2 + else if(UART_IO_G==2) + 67e8: 3942 cmpnei r1, 2 + 67ea: 0bba bt 0x675e // 675e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67ec: 1066 lrw r3, 0x20000048 // 6804 + 67ee: 32ff movi r2, 255 + 67f0: 9320 ld.w r1, (r3, 0x0) + 67f2: 4250 lsli r2, r2, 16 + 67f4: 9160 ld.w r3, (r1, 0x0) + 67f6: 68c9 andn r3, r2 + 67f8: 32cc movi r2, 204 + 67fa: 424f lsli r2, r2, 15 + 67fc: 07d3 br 0x67a2 // 67a2 + 67fe: 0000 bkpt + 6800: 2000004c .long 0x2000004c + 6804: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00006808 : +//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); + 6808: 1063 lrw r3, 0x8000f // 6814 + 680a: 6c8c or r2, r3 + 680c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 680e: b024 st.w r1, (r0, 0x10) +} + 6810: 783c jmp r15 + 6812: 0000 bkpt + 6814: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00006818 : +//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) +{ + 6818: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681a: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 681c: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681e: 5b85 subu r4, r3, r1 + 6820: 6490 cmphs r4, r2 + 6822: 0c02 bf 0x6826 // 6826 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 6824: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 6826: 8380 ld.b r4, (r3, 0x0) + 6828: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 682a: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 682c: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 682e: 3c40 cmpnei r4, 0 + 6830: 0bfd bt 0x682a // 682a + 6832: 2300 addi r3, 1 + 6834: 07f5 br 0x681e // 681e + +Disassembly of section .text.EPT_Stop: + +00006838 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 6838: 1068 lrw r3, 0x20000020 // 6858 + 683a: 3280 movi r2, 128 + 683c: 9360 ld.w r3, (r3, 0x0) + 683e: 608c addu r2, r3 + 6840: 1027 lrw r1, 0xa55ac73a // 685c + 6842: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 6844: 9341 ld.w r2, (r3, 0x4) + 6846: 31fe movi r1, 254 + 6848: 6884 and r2, r1 + 684a: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 684c: 3101 movi r1, 1 + 684e: 9341 ld.w r2, (r3, 0x4) + 6850: 6884 and r2, r1 + 6852: 3a40 cmpnei r2, 0 + 6854: 0bfd bt 0x684e // 684e +} + 6856: 783c jmp r15 + 6858: 20000020 .long 0x20000020 + 685c: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00006860 : + 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) +{ + 6860: 14c4 push r4-r7 + 6862: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 6864: 1165 lrw r3, 0x20000060 // 68f8 + 6866: 1186 lrw r4, 0x5a5a5a5a // 68fc + 6868: 9360 ld.w r3, (r3, 0x0) + 686a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 686c: 3407 movi r4, 7 + 686e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6870: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 6872: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 6874: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 6876: 9384 ld.w r4, (r3, 0x10) + 6878: 3c40 cmpnei r4, 0 + 687a: 0bfe bt 0x6876 // 6876 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 687c: 2102 addi r1, 3 + 687e: 4922 lsri r1, r1, 2 + 6880: 4122 lsli r1, r1, 2 + 6882: 6048 addu r1, r2 + 6884: b820 st.w r1, (r14, 0x0) + 6886: 5829 subu r1, r0, r2 + 6888: b821 st.w r1, (r14, 0x4) + 688a: 9820 ld.w r1, (r14, 0x0) + 688c: 644a cmpne r2, r1 + 688e: 0826 bt 0x68da // 68da + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 6890: 3106 movi r1, 6 + SetUserKey; + 6892: 105b lrw r2, 0x5a5a5a5a // 68fc + 6894: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 6896: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6898: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 689a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 689c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 689e: 9324 ld.w r1, (r3, 0x10) + 68a0: 3940 cmpnei r1, 0 + 68a2: 0bfe bt 0x689e // 689e + //Perform pre-programming 4 + SetUserKey; + 68a4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68a6: 3201 movi r2, 1 + 68a8: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68aa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ac: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 68ae: 934a ld.w r2, (r3, 0x28) + 68b0: 3a44 cmpnei r2, 4 + 68b2: 0bfe bt 0x68ae // 68ae + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 68b4: 3102 movi r1, 2 + SetUserKey; + 68b6: 1052 lrw r2, 0x5a5a5a5a // 68fc + 68b8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 68ba: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 68bc: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 68be: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68c0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 68c2: 932a ld.w r1, (r3, 0x28) + 68c4: 3941 cmpnei r1, 1 + 68c6: 0bfe bt 0x68c2 // 68c2 + //Write page cache data to flash memory 6 + SetUserKey; + 68c8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68ca: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68cc: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ce: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 68d0: 934a ld.w r2, (r3, 0x28) + 68d2: 3a42 cmpnei r2, 2 + 68d4: 0bfe bt 0x68d0 // 68d0 +} + 68d6: 1402 addi r14, r14, 8 + 68d8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 68da: 82e0 ld.b r7, (r2, 0x0) + 68dc: 8281 ld.b r4, (r2, 0x1) + 68de: 4488 lsli r4, r4, 8 + 68e0: 8222 ld.b r1, (r2, 0x2) + 68e2: 611c addu r4, r7 + 68e4: 82a3 ld.b r5, (r2, 0x3) + 68e6: 4130 lsli r1, r1, 16 + 68e8: 98c1 ld.w r6, (r14, 0x4) + 68ea: 6050 addu r1, r4 + 68ec: 45b8 lsli r5, r5, 24 + 68ee: 6188 addu r6, r2 + 68f0: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 68f2: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 68f4: 2203 addi r2, 4 + 68f6: 07ca br 0x688a // 688a + 68f8: 20000060 .long 0x20000060 + 68fc: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00006900 : +//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) +{ + 6900: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 690c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 690e: 3b40 cmpnei r3, 0 + 6910: 0c06 bf 0x691c // 691c + 6912: 6d0f mov r4, r3 + 6914: 6914 and r4, r5 + 6916: 3c40 cmpnei r4, 0 + 6918: 0802 bt 0x691c // 691c + RdStartAdd +=4; + 691a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 691c: 6d0f mov r4, r3 + 691e: 6914 and r4, r5 + 6920: 6100 addu r4, r0 + 6922: 8480 ld.b r4, (r4, 0x0) + 6924: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +0000692c
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 692c: 14d0 push r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 692e: e00000ab bsr 0x6a84 // 6a84 + + Dbg_Println(DBG_BIT_SYS_STATUS,"APP Run Start! 111 %s",Project_Boot_Support); + 6932: 102d lrw r1, 0xaefc // 6964 + 6934: 3000 movi r0, 0 + 6936: 104d lrw r2, 0x2000009c // 6968 + 6938: e000087e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 693c: 102c lrw r1, 0xaf12 // 696c + 693e: 3000 movi r0, 0 + 6940: e000087a bsr 0x7a34 // 7a34 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 6944: e3fffba4 bsr 0x608c // 608c + + UART0_TASK(); + 6948: e00006da bsr 0x76fc // 76fc + + UART1_TASK(); + 694c: e000097a bsr 0x7c40 // 7c40 + + UART2_TASK(); + 6950: e00009be bsr 0x7ccc // 7ccc + + DIP_ScanTask(); + 6954: e0000a9e bsr 0x7e90 // 7e90 + + BLV_EngDetect_Tack(); + 6958: e00017ca bsr 0x98ec // 98ec + + BUS485Send_Task(); + 695c: e00008fc bsr 0x7b54 // 7b54 + 6960: 07f2 br 0x6944 // 6944 + 6962: 0000 bkpt + 6964: 0000aefc .long 0x0000aefc + 6968: 2000009c .long 0x2000009c + 696c: 0000af12 .long 0x0000af12 + +Disassembly of section .text.delay_nms: + +00006970 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 6970: 14d0 push r15 + 6972: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 6974: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 6976: 3300 movi r3, 0 + j = 50* t; + 6978: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 697a: b862 st.w r3, (r14, 0x8) + j = 50* t; + 697c: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 697e: b860 st.w r3, (r14, 0x0) + 6980: 9840 ld.w r2, (r14, 0x0) + 6982: 9861 ld.w r3, (r14, 0x4) + 6984: 64c8 cmphs r2, r3 + 6986: 0c03 bf 0x698c // 698c + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 6988: 1403 addi r14, r14, 12 + 698a: 1490 pop r15 + k++; + 698c: 9862 ld.w r3, (r14, 0x8) + 698e: 2300 addi r3, 1 + 6990: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 6992: e3fffb7d bsr 0x608c // 608c + for ( i = 0; i < j; i++ ) + 6996: 9860 ld.w r3, (r14, 0x0) + 6998: 2300 addi r3, 1 + 699a: 07f2 br 0x697e // 697e + +Disassembly of section .text.delay_nus: + +0000699c : +void delay_nus(unsigned int t) +{ + 699c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 699e: 3300 movi r3, 0 + 69a0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 69a2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 69a4: b860 st.w r3, (r14, 0x0) + 69a6: 9840 ld.w r2, (r14, 0x0) + 69a8: 9861 ld.w r3, (r14, 0x4) + 69aa: 64c8 cmphs r2, r3 + 69ac: 0c03 bf 0x69b2 // 69b2 + { + k++; + } +} + 69ae: 1403 addi r14, r14, 12 + 69b0: 783c jmp r15 + k++; + 69b2: 9862 ld.w r3, (r14, 0x8) + 69b4: 2300 addi r3, 1 + 69b6: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 69b8: 9860 ld.w r3, (r14, 0x0) + 69ba: 2300 addi r3, 1 + 69bc: 07f4 br 0x69a4 // 69a4 + +Disassembly of section .text.BT_CONFIG: + +000069c0 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 69c0: 14d2 push r4-r5, r15 + 69c2: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 69c4: 1095 lrw r4, 0x20000008 // 6a18 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69c6: 3500 movi r5, 0 + BT_DeInit(BT1); + 69c8: 9400 ld.w r0, (r4, 0x0) + 69ca: e3fffe0d bsr 0x65e4 // 65e4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69ce: 9400 ld.w r0, (r4, 0x0) + 69d0: b8a1 st.w r5, (r14, 0x4) + 69d2: b8a0 st.w r5, (r14, 0x0) + 69d4: 3308 movi r3, 8 + 69d6: 3200 movi r2, 0 + 69d8: 3101 movi r1, 1 + 69da: e3fffe1c bsr 0x6612 // 6612 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 69de: 3380 movi r3, 128 + 69e0: 4363 lsli r3, r3, 3 + 69e2: b861 st.w r3, (r14, 0x4) + 69e4: 9400 ld.w r0, (r4, 0x0) + 69e6: 3300 movi r3, 0 + 69e8: b8a3 st.w r5, (r14, 0xc) + 69ea: b8a2 st.w r5, (r14, 0x8) + 69ec: b8a0 st.w r5, (r14, 0x0) + 69ee: 3200 movi r2, 0 + 69f0: 3180 movi r1, 128 + 69f2: e3fffe1c bsr 0x662a // 662a + BT_Period_CMP_Write(BT1,4780,1); + 69f6: 3201 movi r2, 1 + 69f8: 1029 lrw r1, 0x12ac // 6a1c + 69fa: 9400 ld.w r0, (r4, 0x0) + 69fc: e3fffe2d bsr 0x6656 // 6656 + BT_Start(BT1); + 6a00: 9400 ld.w r0, (r4, 0x0) + 6a02: e3fffdff bsr 0x6600 // 6600 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 6a06: 9400 ld.w r0, (r4, 0x0) + 6a08: 3202 movi r2, 2 + 6a0a: 3101 movi r1, 1 + 6a0c: e3fffe28 bsr 0x665c // 665c + BT1_INT_ENABLE(); + 6a10: e3fffe30 bsr 0x6670 // 6670 + +} + 6a14: 1404 addi r14, r14, 16 + 6a16: 1492 pop r4-r5, r15 + 6a18: 20000008 .long 0x20000008 + 6a1c: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00006a20 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 6a20: 14d0 push r15 + 6a22: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 6a24: e3fffa80 bsr 0x5f24 // 5f24 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 6a28: 3101 movi r1, 1 + 6a2a: 3001 movi r0, 1 + 6a2c: e3fffaa2 bsr 0x5f70 // 5f70 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 6a30: 3000 movi r0, 0 + 6a32: e3fffafb bsr 0x6028 // 6028 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 6a36: 3180 movi r1, 128 + 6a38: 3308 movi r3, 8 + 6a3a: 3200 movi r2, 0 + 6a3c: 4121 lsli r1, r1, 1 + 6a3e: 3002 movi r0, 2 + 6a40: e3fffab0 bsr 0x5fa0 // 5fa0 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 6a44: 3080 movi r0, 128 + 6a46: 3118 movi r1, 24 + 6a48: 4002 lsli r0, r0, 2 + 6a4a: e3fffb2b bsr 0x60a0 // 60a0 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 6a4e: 3001 movi r0, 1 + 6a50: e3fffb00 bsr 0x6050 // 6050 + SYSCON_IWDCNT_Reload(); //reload WDT + 6a54: e3fffb1c bsr 0x608c // 608c + IWDT_Int_Enable(); + 6a58: e3fffb4e bsr 0x60f4 // 60f4 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 6a5c: 3340 movi r3, 64 + 6a5e: b860 st.w r3, (r14, 0x0) + 6a60: 31c0 movi r1, 192 + 6a62: 3380 movi r3, 128 + 6a64: 4364 lsli r3, r3, 4 + 6a66: 3200 movi r2, 0 + 6a68: 4123 lsli r1, r1, 3 + 6a6a: 3000 movi r0, 0 + 6a6c: e3fffb26 bsr 0x60b8 // 60b8 + LVD_Int_Enable(); + 6a70: e3fffb34 bsr 0x60d8 // 60d8 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 6a74: e3fffb92 bsr 0x6198 // 6198 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 6a78: 3000 movi r0, 0 + 6a7a: e0001f19 bsr 0xa8ac // a8ac + +} + 6a7e: 1401 addi r14, r14, 4 + 6a80: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00006a84 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 6a84: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a86: 1079 lrw r3, 0x2000005c // 6ae8 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a88: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a8a: 9340 ld.w r2, (r3, 0x0) + 6a8c: 1078 lrw r3, 0xfffffff // 6aec + 6a8e: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 6a90: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a92: 926c ld.w r3, (r2, 0x30) + 6a94: 68c4 and r3, r1 + 6a96: 3b40 cmpnei r3, 0 + 6a98: 0ffd bf 0x6a92 // 6a92 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 6a9a: e3ffffc3 bsr 0x6a20 // 6a20 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 6a9e: e000054b bsr 0x7534 // 7534 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 6aa2: e3fffb91 bsr 0x61c4 // 61c4 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART0_IRQ,1); + 6aa6: 3101 movi r1, 1 + 6aa8: 300d movi r0, 13 + 6aaa: e3fffb9f bsr 0x61e8 // 61e8 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 6aae: 3101 movi r1, 1 + 6ab0: 300e movi r0, 14 + 6ab2: e3fffb9b bsr 0x61e8 // 61e8 + + Set_INT_Priority(UART2_IRQ,1); + 6ab6: 3101 movi r1, 1 + 6ab8: 300f movi r0, 15 + 6aba: e3fffb97 bsr 0x61e8 // 61e8 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 6abe: e3fffbad bsr 0x6218 // 6218 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 6ac2: e3ffff7f bsr 0x69c0 // 69c0 + + UARTx_Init(UART_0,HLW8110_RecvData_Processing); + 6ac6: 102b lrw r1, 0x8edc // 6af0 + 6ac8: 3000 movi r0, 0 + 6aca: e000053b bsr 0x7540 // 7540 + + UARTx_Init(UART_1,HLW_485Recv_Processing); + 6ace: 102a lrw r1, 0x9c54 // 6af4 + 6ad0: 3001 movi r0, 1 + 6ad2: e0000537 bsr 0x7540 // 7540 + + UARTx_Init(UART_2,BT_Recv_Processing); + 6ad6: 1029 lrw r1, 0x9db4 // 6af8 + 6ad8: 3002 movi r0, 2 + 6ada: e0000533 bsr 0x7540 // 7540 + + Boot_Function_Init(); + 6ade: e00019f7 bsr 0x9ecc // 9ecc + + DIP_Switch_Init(); + 6ae2: e000098d bsr 0x7dfc // 7dfc +} + 6ae6: 1490 pop r15 + 6ae8: 2000005c .long 0x2000005c + 6aec: 0fffffff .long 0x0fffffff + 6af0: 00008edc .long 0x00008edc + 6af4: 00009c54 .long 0x00009c54 + 6af8: 00009db4 .long 0x00009db4 + +Disassembly of section .text.SYSCONIntHandler: + +00006afc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 6afc: 1460 nie + 6afe: 1462 ipush + // ISR content ... + nop; + 6b00: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 6b02: 117a lrw r3, 0x2000005c // 6be8 + 6b04: 3280 movi r2, 128 + 6b06: 9360 ld.w r3, (r3, 0x0) + 6b08: 60c8 addu r3, r2 + 6b0a: 9323 ld.w r1, (r3, 0xc) + 6b0c: 3001 movi r0, 1 + 6b0e: 6840 and r1, r0 + 6b10: 3940 cmpnei r1, 0 + 6b12: 0c04 bf 0x6b1a // 6b1a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 6b14: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 6b16: 1463 ipop + 6b18: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 6b1a: 9323 ld.w r1, (r3, 0xc) + 6b1c: 3002 movi r0, 2 + 6b1e: 6840 and r1, r0 + 6b20: 3940 cmpnei r1, 0 + 6b22: 0bf9 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 6b24: 9323 ld.w r1, (r3, 0xc) + 6b26: 3008 movi r0, 8 + 6b28: 6840 and r1, r0 + 6b2a: 3940 cmpnei r1, 0 + 6b2c: 0bf4 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 6b2e: 9323 ld.w r1, (r3, 0xc) + 6b30: 3010 movi r0, 16 + 6b32: 6840 and r1, r0 + 6b34: 3940 cmpnei r1, 0 + 6b36: 0bef bt 0x6b14 // 6b14 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 6b38: 9323 ld.w r1, (r3, 0xc) + 6b3a: 6848 and r1, r2 + 6b3c: 3940 cmpnei r1, 0 + 6b3e: 0c03 bf 0x6b44 // 6b44 + SYSCON->ICR = CMD_ERR_ST; + 6b40: b341 st.w r2, (r3, 0x4) +} + 6b42: 07ea br 0x6b16 // 6b16 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 6b44: 3280 movi r2, 128 + 6b46: 9323 ld.w r1, (r3, 0xc) + 6b48: 4241 lsli r2, r2, 1 + 6b4a: 6848 and r1, r2 + 6b4c: 3940 cmpnei r1, 0 + 6b4e: 0bf9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 6b50: 3280 movi r2, 128 + 6b52: 9323 ld.w r1, (r3, 0xc) + 6b54: 4242 lsli r2, r2, 2 + 6b56: 6848 and r1, r2 + 6b58: 3940 cmpnei r1, 0 + 6b5a: 0bf3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 6b5c: 3280 movi r2, 128 + 6b5e: 9323 ld.w r1, (r3, 0xc) + 6b60: 4243 lsli r2, r2, 3 + 6b62: 6848 and r1, r2 + 6b64: 3940 cmpnei r1, 0 + 6b66: 0bed bt 0x6b40 // 6b40 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 6b68: 3280 movi r2, 128 + 6b6a: 9323 ld.w r1, (r3, 0xc) + 6b6c: 4244 lsli r2, r2, 4 + 6b6e: 6848 and r1, r2 + 6b70: 3940 cmpnei r1, 0 + 6b72: 0c03 bf 0x6b78 // 6b78 + nop; + 6b74: 6c03 mov r0, r0 + 6b76: 07e5 br 0x6b40 // 6b40 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 6b78: 3280 movi r2, 128 + 6b7a: 9323 ld.w r1, (r3, 0xc) + 6b7c: 4245 lsli r2, r2, 5 + 6b7e: 6848 and r1, r2 + 6b80: 3940 cmpnei r1, 0 + 6b82: 0bdf bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 6b84: 3280 movi r2, 128 + 6b86: 9323 ld.w r1, (r3, 0xc) + 6b88: 4246 lsli r2, r2, 6 + 6b8a: 6848 and r1, r2 + 6b8c: 3940 cmpnei r1, 0 + 6b8e: 0bd9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 6b90: 3280 movi r2, 128 + 6b92: 9323 ld.w r1, (r3, 0xc) + 6b94: 4247 lsli r2, r2, 7 + 6b96: 6848 and r1, r2 + 6b98: 3940 cmpnei r1, 0 + 6b9a: 0bd3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 6b9c: 3280 movi r2, 128 + 6b9e: 9323 ld.w r1, (r3, 0xc) + 6ba0: 424b lsli r2, r2, 11 + 6ba2: 6848 and r1, r2 + 6ba4: 3940 cmpnei r1, 0 + 6ba6: 0bcd bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 6ba8: 3280 movi r2, 128 + 6baa: 9323 ld.w r1, (r3, 0xc) + 6bac: 424c lsli r2, r2, 12 + 6bae: 6848 and r1, r2 + 6bb0: 3940 cmpnei r1, 0 + 6bb2: 0bc7 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 6bb4: 3280 movi r2, 128 + 6bb6: 9323 ld.w r1, (r3, 0xc) + 6bb8: 424d lsli r2, r2, 13 + 6bba: 6848 and r1, r2 + 6bbc: 3940 cmpnei r1, 0 + 6bbe: 0bc1 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 6bc0: 3280 movi r2, 128 + 6bc2: 9323 ld.w r1, (r3, 0xc) + 6bc4: 424e lsli r2, r2, 14 + 6bc6: 6848 and r1, r2 + 6bc8: 3940 cmpnei r1, 0 + 6bca: 0bbb bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 6bcc: 3280 movi r2, 128 + 6bce: 9323 ld.w r1, (r3, 0xc) + 6bd0: 424f lsli r2, r2, 15 + 6bd2: 6848 and r1, r2 + 6bd4: 3940 cmpnei r1, 0 + 6bd6: 0bb5 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 6bd8: 3280 movi r2, 128 + 6bda: 9323 ld.w r1, (r3, 0xc) + 6bdc: 4256 lsli r2, r2, 22 + 6bde: 6848 and r1, r2 + 6be0: 3940 cmpnei r1, 0 + 6be2: 0baf bt 0x6b40 // 6b40 + 6be4: 0799 br 0x6b16 // 6b16 + 6be6: 0000 bkpt + 6be8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00006bec : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 6bec: 1460 nie + 6bee: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 6bf0: 1078 lrw r3, 0x20000060 // 6c50 + 6bf2: 3101 movi r1, 1 + 6bf4: 9360 ld.w r3, (r3, 0x0) + 6bf6: 934b ld.w r2, (r3, 0x2c) + 6bf8: 6884 and r2, r1 + 6bfa: 3a40 cmpnei r2, 0 + 6bfc: 0c04 bf 0x6c04 // 6c04 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 6bfe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 6c00: 1463 ipop + 6c02: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 6c04: 934b ld.w r2, (r3, 0x2c) + 6c06: 3102 movi r1, 2 + 6c08: 6884 and r2, r1 + 6c0a: 3a40 cmpnei r2, 0 + 6c0c: 0bf9 bt 0x6bfe // 6bfe + else if(IFC->MISR&PEP_END_INT) + 6c0e: 934b ld.w r2, (r3, 0x2c) + 6c10: 3104 movi r1, 4 + 6c12: 6884 and r2, r1 + 6c14: 3a40 cmpnei r2, 0 + 6c16: 0bf4 bt 0x6bfe // 6bfe + else if(IFC->MISR&PROT_ERR_INT) + 6c18: 3280 movi r2, 128 + 6c1a: 932b ld.w r1, (r3, 0x2c) + 6c1c: 4245 lsli r2, r2, 5 + 6c1e: 6848 and r1, r2 + 6c20: 3940 cmpnei r1, 0 + 6c22: 0c03 bf 0x6c28 // 6c28 + IFC->ICR=OVW_ERR_INT; + 6c24: b34c st.w r2, (r3, 0x30) +} + 6c26: 07ed br 0x6c00 // 6c00 + else if(IFC->MISR&UDEF_ERR_INT) + 6c28: 3280 movi r2, 128 + 6c2a: 932b ld.w r1, (r3, 0x2c) + 6c2c: 4246 lsli r2, r2, 6 + 6c2e: 6848 and r1, r2 + 6c30: 3940 cmpnei r1, 0 + 6c32: 0bf9 bt 0x6c24 // 6c24 + else if(IFC->MISR&ADDR_ERR_INT) + 6c34: 3280 movi r2, 128 + 6c36: 932b ld.w r1, (r3, 0x2c) + 6c38: 4247 lsli r2, r2, 7 + 6c3a: 6848 and r1, r2 + 6c3c: 3940 cmpnei r1, 0 + 6c3e: 0bf3 bt 0x6c24 // 6c24 + else if(IFC->MISR&OVW_ERR_INT) + 6c40: 3280 movi r2, 128 + 6c42: 932b ld.w r1, (r3, 0x2c) + 6c44: 4248 lsli r2, r2, 8 + 6c46: 6848 and r1, r2 + 6c48: 3940 cmpnei r1, 0 + 6c4a: 0bed bt 0x6c24 // 6c24 + 6c4c: 07da br 0x6c00 // 6c00 + 6c4e: 0000 bkpt + 6c50: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00006c54 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 6c54: 1460 nie + 6c56: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 6c58: 1078 lrw r3, 0x20000050 // 6cb8 + 6c5a: 3101 movi r1, 1 + 6c5c: 9360 ld.w r3, (r3, 0x0) + 6c5e: 9348 ld.w r2, (r3, 0x20) + 6c60: 6884 and r2, r1 + 6c62: 3a40 cmpnei r2, 0 + 6c64: 0c04 bf 0x6c6c // 6c6c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 6c66: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 6c68: 1463 ipop + 6c6a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 6c6c: 9348 ld.w r2, (r3, 0x20) + 6c6e: 3102 movi r1, 2 + 6c70: 6884 and r2, r1 + 6c72: 3a40 cmpnei r2, 0 + 6c74: 0bf9 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 6c76: 9348 ld.w r2, (r3, 0x20) + 6c78: 3104 movi r1, 4 + 6c7a: 6884 and r2, r1 + 6c7c: 3a40 cmpnei r2, 0 + 6c7e: 0bf4 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 6c80: 9348 ld.w r2, (r3, 0x20) + 6c82: 3110 movi r1, 16 + 6c84: 6884 and r2, r1 + 6c86: 3a40 cmpnei r2, 0 + 6c88: 0bef bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 6c8a: 9348 ld.w r2, (r3, 0x20) + 6c8c: 3120 movi r1, 32 + 6c8e: 6884 and r2, r1 + 6c90: 3a40 cmpnei r2, 0 + 6c92: 0bea bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 6c94: 9348 ld.w r2, (r3, 0x20) + 6c96: 3140 movi r1, 64 + 6c98: 6884 and r2, r1 + 6c9a: 3a40 cmpnei r2, 0 + 6c9c: 0be5 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 6c9e: 9348 ld.w r2, (r3, 0x20) + 6ca0: 3180 movi r1, 128 + 6ca2: 6884 and r2, r1 + 6ca4: 3a40 cmpnei r2, 0 + 6ca6: 0be0 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 6ca8: 3280 movi r2, 128 + 6caa: 9328 ld.w r1, (r3, 0x20) + 6cac: 4249 lsli r2, r2, 9 + 6cae: 6848 and r1, r2 + 6cb0: 3940 cmpnei r1, 0 + 6cb2: 0fdb bf 0x6c68 // 6c68 + ADC0->CSR = ADC12_SEQ_END0; + 6cb4: b347 st.w r2, (r3, 0x1c) +} + 6cb6: 07d9 br 0x6c68 // 6c68 + 6cb8: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00006cbc : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 6cbc: 1460 nie + 6cbe: 1462 ipush + 6cc0: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 6cc2: 1387 lrw r4, 0x20000020 // 6e5c + 6cc4: 3280 movi r2, 128 + 6cc6: 9460 ld.w r3, (r4, 0x0) + 6cc8: 60c8 addu r3, r2 + 6cca: 9335 ld.w r1, (r3, 0x54) + 6ccc: 3001 movi r0, 1 + 6cce: 6840 and r1, r0 + 6cd0: 3940 cmpnei r1, 0 + 6cd2: 0c03 bf 0x6cd8 // 6cd8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 6cd4: b317 st.w r0, (r3, 0x5c) + 6cd6: 0424 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 6cd8: 9335 ld.w r1, (r3, 0x54) + 6cda: 3002 movi r0, 2 + 6cdc: 6840 and r1, r0 + 6cde: 3940 cmpnei r1, 0 + 6ce0: 0bfa bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 6ce2: 9335 ld.w r1, (r3, 0x54) + 6ce4: 3004 movi r0, 4 + 6ce6: 6840 and r1, r0 + 6ce8: 3940 cmpnei r1, 0 + 6cea: 0bf5 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 6cec: 9335 ld.w r1, (r3, 0x54) + 6cee: 3008 movi r0, 8 + 6cf0: 6840 and r1, r0 + 6cf2: 3940 cmpnei r1, 0 + 6cf4: 0bf0 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 6cf6: 9335 ld.w r1, (r3, 0x54) + 6cf8: 3010 movi r0, 16 + 6cfa: 6840 and r1, r0 + 6cfc: 3940 cmpnei r1, 0 + 6cfe: 0c1f bf 0x6d3c // 6d3c + EPT0->ICR=EPT_CAP_LD0; + 6d00: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 6d02: 3200 movi r2, 0 + 6d04: 3101 movi r1, 1 + 6d06: 3000 movi r0, 0 + 6d08: e3fffa04 bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 6d0c: 3201 movi r2, 1 + 6d0e: 3101 movi r1, 1 + 6d10: 3001 movi r0, 1 + 6d12: e3fff9ff bsr 0x6110 // 6110 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 6d16: 9460 ld.w r3, (r4, 0x0) + 6d18: 934b ld.w r2, (r3, 0x2c) + 6d1a: 1272 lrw r3, 0x2000020c // 6e60 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d1c: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 6d1e: 9460 ld.w r3, (r4, 0x0) + 6d20: 3280 movi r2, 128 + 6d22: 60c8 addu r3, r2 + 6d24: 932b ld.w r1, (r3, 0x2c) + 6d26: 3001 movi r0, 1 + 6d28: 6840 and r1, r0 + 6d2a: 3940 cmpnei r1, 0 + 6d2c: 0c61 bf 0x6dee // 6dee + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 6d2e: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 6d30: d9ee2001 ld.w r15, (r14, 0x4) + 6d34: 9880 ld.w r4, (r14, 0x0) + 6d36: 1402 addi r14, r14, 8 + 6d38: 1463 ipop + 6d3a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 6d3c: 9335 ld.w r1, (r3, 0x54) + 6d3e: 3020 movi r0, 32 + 6d40: 6840 and r1, r0 + 6d42: 3940 cmpnei r1, 0 + 6d44: 0c10 bf 0x6d64 // 6d64 + EPT0->ICR=EPT_CAP_LD1; + 6d46: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 6d48: 3200 movi r2, 0 + 6d4a: 3101 movi r1, 1 + 6d4c: 3001 movi r0, 1 + 6d4e: e3fff9e1 bsr 0x6110 // 6110 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 6d52: 3201 movi r2, 1 + 6d54: 3101 movi r1, 1 + 6d56: 3000 movi r0, 0 + 6d58: e3fff9dc bsr 0x6110 // 6110 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d5c: 9460 ld.w r3, (r4, 0x0) + 6d5e: 934c ld.w r2, (r3, 0x30) + 6d60: 1261 lrw r3, 0x20000208 // 6e64 + 6d62: 07dd br 0x6d1c // 6d1c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 6d64: 9335 ld.w r1, (r3, 0x54) + 6d66: 3040 movi r0, 64 + 6d68: 6840 and r1, r0 + 6d6a: 3940 cmpnei r1, 0 + 6d6c: 0bb4 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 6d6e: 9335 ld.w r1, (r3, 0x54) + 6d70: 6848 and r1, r2 + 6d72: 3940 cmpnei r1, 0 + 6d74: 0c03 bf 0x6d7a // 6d7a + EPT0->ICR=EPT_CDD; + 6d76: b357 st.w r2, (r3, 0x5c) + 6d78: 07d3 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 6d7a: 3280 movi r2, 128 + 6d7c: 9335 ld.w r1, (r3, 0x54) + 6d7e: 4241 lsli r2, r2, 1 + 6d80: 6848 and r1, r2 + 6d82: 3940 cmpnei r1, 0 + 6d84: 0bf9 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 6d86: 3280 movi r2, 128 + 6d88: 9335 ld.w r1, (r3, 0x54) + 6d8a: 4242 lsli r2, r2, 2 + 6d8c: 6848 and r1, r2 + 6d8e: 3940 cmpnei r1, 0 + 6d90: 0bf3 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 6d92: 3280 movi r2, 128 + 6d94: 9335 ld.w r1, (r3, 0x54) + 6d96: 4243 lsli r2, r2, 3 + 6d98: 6848 and r1, r2 + 6d9a: 3940 cmpnei r1, 0 + 6d9c: 0bed bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 6d9e: 3280 movi r2, 128 + 6da0: 9335 ld.w r1, (r3, 0x54) + 6da2: 4244 lsli r2, r2, 4 + 6da4: 6848 and r1, r2 + 6da6: 3940 cmpnei r1, 0 + 6da8: 0be7 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 6daa: 3280 movi r2, 128 + 6dac: 9335 ld.w r1, (r3, 0x54) + 6dae: 4245 lsli r2, r2, 5 + 6db0: 6848 and r1, r2 + 6db2: 3940 cmpnei r1, 0 + 6db4: 0be1 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 6db6: 3280 movi r2, 128 + 6db8: 9335 ld.w r1, (r3, 0x54) + 6dba: 4246 lsli r2, r2, 6 + 6dbc: 6848 and r1, r2 + 6dbe: 3940 cmpnei r1, 0 + 6dc0: 0bdb bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 6dc2: 3280 movi r2, 128 + 6dc4: 9335 ld.w r1, (r3, 0x54) + 6dc6: 4247 lsli r2, r2, 7 + 6dc8: 6848 and r1, r2 + 6dca: 3940 cmpnei r1, 0 + 6dcc: 0bd5 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 6dce: 3280 movi r2, 128 + 6dd0: 9335 ld.w r1, (r3, 0x54) + 6dd2: 4248 lsli r2, r2, 8 + 6dd4: 6848 and r1, r2 + 6dd6: 3940 cmpnei r1, 0 + 6dd8: 0bcf bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 6dda: 3280 movi r2, 128 + 6ddc: 9335 ld.w r1, (r3, 0x54) + 6dde: 4249 lsli r2, r2, 9 + 6de0: 6848 and r1, r2 + 6de2: 3940 cmpnei r1, 0 + 6de4: 0f9d bf 0x6d1e // 6d1e + EPT0->ICR=EPT_PEND; + 6de6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 6de8: e3fffd28 bsr 0x6838 // 6838 + 6dec: 0799 br 0x6d1e // 6d1e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 6dee: 932b ld.w r1, (r3, 0x2c) + 6df0: 3002 movi r0, 2 + 6df2: 6840 and r1, r0 + 6df4: 3940 cmpnei r1, 0 + 6df6: 0b9c bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 6df8: 932b ld.w r1, (r3, 0x2c) + 6dfa: 3004 movi r0, 4 + 6dfc: 6840 and r1, r0 + 6dfe: 3940 cmpnei r1, 0 + 6e00: 0b97 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 6e02: 932b ld.w r1, (r3, 0x2c) + 6e04: 3008 movi r0, 8 + 6e06: 6840 and r1, r0 + 6e08: 3940 cmpnei r1, 0 + 6e0a: 0b92 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 6e0c: 932b ld.w r1, (r3, 0x2c) + 6e0e: 3010 movi r0, 16 + 6e10: 6840 and r1, r0 + 6e12: 3940 cmpnei r1, 0 + 6e14: 0b8d bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 6e16: 932b ld.w r1, (r3, 0x2c) + 6e18: 3020 movi r0, 32 + 6e1a: 6840 and r1, r0 + 6e1c: 3940 cmpnei r1, 0 + 6e1e: 0b88 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 6e20: 932b ld.w r1, (r3, 0x2c) + 6e22: 3040 movi r0, 64 + 6e24: 6840 and r1, r0 + 6e26: 3940 cmpnei r1, 0 + 6e28: 0b83 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 6e2a: 932b ld.w r1, (r3, 0x2c) + 6e2c: 6848 and r1, r2 + 6e2e: 3940 cmpnei r1, 0 + 6e30: 0c03 bf 0x6e36 // 6e36 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 6e32: b34d st.w r2, (r3, 0x34) +} + 6e34: 077e br 0x6d30 // 6d30 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 6e36: 3280 movi r2, 128 + 6e38: 932b ld.w r1, (r3, 0x2c) + 6e3a: 4241 lsli r2, r2, 1 + 6e3c: 6848 and r1, r2 + 6e3e: 3940 cmpnei r1, 0 + 6e40: 0bf9 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 6e42: 3280 movi r2, 128 + 6e44: 932b ld.w r1, (r3, 0x2c) + 6e46: 4242 lsli r2, r2, 2 + 6e48: 6848 and r1, r2 + 6e4a: 3940 cmpnei r1, 0 + 6e4c: 0bf3 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 6e4e: 3280 movi r2, 128 + 6e50: 932b ld.w r1, (r3, 0x2c) + 6e52: 4243 lsli r2, r2, 3 + 6e54: 6848 and r1, r2 + 6e56: 3940 cmpnei r1, 0 + 6e58: 0bed bt 0x6e32 // 6e32 + 6e5a: 076b br 0x6d30 // 6d30 + 6e5c: 20000020 .long 0x20000020 + 6e60: 2000020c .long 0x2000020c + 6e64: 20000208 .long 0x20000208 + +Disassembly of section .text.WWDTHandler: + +00006e68 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 6e68: 1460 nie + 6e6a: 1462 ipush + 6e6c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 6e6e: 10ab lrw r5, 0x20000010 // 6e98 + 6e70: 3401 movi r4, 1 + 6e72: 9560 ld.w r3, (r5, 0x0) + 6e74: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 6e76: 30ff movi r0, 255 + 6e78: e3fffbae bsr 0x65d4 // 65d4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 6e7c: 9540 ld.w r2, (r5, 0x0) + 6e7e: 9263 ld.w r3, (r2, 0xc) + 6e80: 68d0 and r3, r4 + 6e82: 3b40 cmpnei r3, 0 + 6e84: 0c02 bf 0x6e88 // 6e88 + { + WWDT->ICR = WWDT_EVI; + 6e86: b285 st.w r4, (r2, 0x14) + } +} + 6e88: d9ee2002 ld.w r15, (r14, 0x8) + 6e8c: 98a1 ld.w r5, (r14, 0x4) + 6e8e: 9880 ld.w r4, (r14, 0x0) + 6e90: 1403 addi r14, r14, 12 + 6e92: 1463 ipop + 6e94: 1461 nir + 6e96: 0000 bkpt + 6e98: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00006e9c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 6e9c: 1460 nie + 6e9e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 6ea0: 107e lrw r3, 0x20000024 // 6f18 + 6ea2: 3101 movi r1, 1 + 6ea4: 9360 ld.w r3, (r3, 0x0) + 6ea6: 237f addi r3, 128 + 6ea8: 9355 ld.w r2, (r3, 0x54) + 6eaa: 6884 and r2, r1 + 6eac: 3a40 cmpnei r2, 0 + 6eae: 0c04 bf 0x6eb6 // 6eb6 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 6eb0: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 6eb2: 1463 ipop + 6eb4: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 6eb6: 9355 ld.w r2, (r3, 0x54) + 6eb8: 3102 movi r1, 2 + 6eba: 6884 and r2, r1 + 6ebc: 3a40 cmpnei r2, 0 + 6ebe: 0bf9 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 6ec0: 9355 ld.w r2, (r3, 0x54) + 6ec2: 3110 movi r1, 16 + 6ec4: 6884 and r2, r1 + 6ec6: 3a40 cmpnei r2, 0 + 6ec8: 0bf4 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 6eca: 9355 ld.w r2, (r3, 0x54) + 6ecc: 3120 movi r1, 32 + 6ece: 6884 and r2, r1 + 6ed0: 3a40 cmpnei r2, 0 + 6ed2: 0bef bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 6ed4: 3280 movi r2, 128 + 6ed6: 9335 ld.w r1, (r3, 0x54) + 6ed8: 4241 lsli r2, r2, 1 + 6eda: 6848 and r1, r2 + 6edc: 3940 cmpnei r1, 0 + 6ede: 0c03 bf 0x6ee4 // 6ee4 + GPT0->ICR = GPT_INT_PEND; + 6ee0: b357 st.w r2, (r3, 0x5c) +} + 6ee2: 07e8 br 0x6eb2 // 6eb2 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 6ee4: 3280 movi r2, 128 + 6ee6: 9335 ld.w r1, (r3, 0x54) + 6ee8: 4242 lsli r2, r2, 2 + 6eea: 6848 and r1, r2 + 6eec: 3940 cmpnei r1, 0 + 6eee: 0bf9 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 6ef0: 3280 movi r2, 128 + 6ef2: 9335 ld.w r1, (r3, 0x54) + 6ef4: 4243 lsli r2, r2, 3 + 6ef6: 6848 and r1, r2 + 6ef8: 3940 cmpnei r1, 0 + 6efa: 0bf3 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 6efc: 3280 movi r2, 128 + 6efe: 9335 ld.w r1, (r3, 0x54) + 6f00: 4244 lsli r2, r2, 4 + 6f02: 6848 and r1, r2 + 6f04: 3940 cmpnei r1, 0 + 6f06: 0bed bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 6f08: 3280 movi r2, 128 + 6f0a: 9335 ld.w r1, (r3, 0x54) + 6f0c: 4249 lsli r2, r2, 9 + 6f0e: 6848 and r1, r2 + 6f10: 3940 cmpnei r1, 0 + 6f12: 0be7 bt 0x6ee0 // 6ee0 + 6f14: 07cf br 0x6eb2 // 6eb2 + 6f16: 0000 bkpt + 6f18: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00006f1c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 6f1c: 1460 nie + 6f1e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 6f20: 1079 lrw r3, 0x20000018 // 6f84 + 6f22: 3101 movi r1, 1 + 6f24: 9360 ld.w r3, (r3, 0x0) + 6f26: 934a ld.w r2, (r3, 0x28) + 6f28: 6884 and r2, r1 + 6f2a: 3a40 cmpnei r2, 0 + 6f2c: 0c14 bf 0x6f54 // 6f54 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 6f2e: 1057 lrw r2, 0xca53 // 6f88 + RTC->ICR=ALRA_INT; + 6f30: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 6f32: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 6f34: 9342 ld.w r2, (r3, 0x8) + 6f36: 6c84 or r2, r1 + 6f38: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 6f3a: 3280 movi r2, 128 + 6f3c: 424d lsli r2, r2, 13 + 6f3e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 6f40: 3102 movi r1, 2 + 6f42: 9342 ld.w r2, (r3, 0x8) + 6f44: 6884 and r2, r1 + 6f46: 3a40 cmpnei r2, 0 + 6f48: 0bfd bt 0x6f42 // 6f42 + RTC->CR &= ~0x1; + 6f4a: 9342 ld.w r2, (r3, 0x8) + 6f4c: 3a80 bclri r2, 0 + 6f4e: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 6f50: 1463 ipop + 6f52: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 6f54: 934a ld.w r2, (r3, 0x28) + 6f56: 3102 movi r1, 2 + 6f58: 6884 and r2, r1 + 6f5a: 3a40 cmpnei r2, 0 + 6f5c: 0c03 bf 0x6f62 // 6f62 + RTC->ICR=RTC_TRGEV1_INT; + 6f5e: b32b st.w r1, (r3, 0x2c) +} + 6f60: 07f8 br 0x6f50 // 6f50 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 6f62: 934a ld.w r2, (r3, 0x28) + 6f64: 3104 movi r1, 4 + 6f66: 6884 and r2, r1 + 6f68: 3a40 cmpnei r2, 0 + 6f6a: 0bfa bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 6f6c: 934a ld.w r2, (r3, 0x28) + 6f6e: 3108 movi r1, 8 + 6f70: 6884 and r2, r1 + 6f72: 3a40 cmpnei r2, 0 + 6f74: 0bf5 bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 6f76: 934a ld.w r2, (r3, 0x28) + 6f78: 3110 movi r1, 16 + 6f7a: 6884 and r2, r1 + 6f7c: 3a40 cmpnei r2, 0 + 6f7e: 0bf0 bt 0x6f5e // 6f5e + 6f80: 07e8 br 0x6f50 // 6f50 + 6f82: 0000 bkpt + 6f84: 20000018 .long 0x20000018 + 6f88: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00006f8c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 6f8c: 1460 nie + 6f8e: 1462 ipush + 6f90: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6f92: 1076 lrw r3, 0x20000040 // 6fe8 + 6f94: 3102 movi r1, 2 + 6f96: 9360 ld.w r3, (r3, 0x0) + 6f98: 9343 ld.w r2, (r3, 0xc) + 6f9a: 6884 and r2, r1 + 6f9c: 3a40 cmpnei r2, 0 + 6f9e: 0c0b bf 0x6fb4 // 6fb4 + { + UART0->ISR=UART_RX_INT_S; + 6fa0: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 6fa2: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 6fa4: 7400 zextb r0, r0 + 6fa6: e0000391 bsr 0x76c8 // 76c8 + } + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } +} + 6faa: d9ee2000 ld.w r15, (r14, 0x0) + 6fae: 1401 addi r14, r14, 4 + 6fb0: 1463 ipop + 6fb2: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 6fb4: 9343 ld.w r2, (r3, 0xc) + 6fb6: 3101 movi r1, 1 + 6fb8: 6884 and r2, r1 + 6fba: 3a40 cmpnei r2, 0 + 6fbc: 0c03 bf 0x6fc2 // 6fc2 + UART0->ISR=UART_TX_IOV_S; + 6fbe: b323 st.w r1, (r3, 0xc) + 6fc0: 07f5 br 0x6faa // 6faa + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 6fc2: 9343 ld.w r2, (r3, 0xc) + 6fc4: 3108 movi r1, 8 + 6fc6: 6884 and r2, r1 + 6fc8: 3a40 cmpnei r2, 0 + 6fca: 0bfa bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 6fcc: 9343 ld.w r2, (r3, 0xc) + 6fce: 3104 movi r1, 4 + 6fd0: 6884 and r2, r1 + 6fd2: 3a40 cmpnei r2, 0 + 6fd4: 0bf5 bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 6fd6: 3280 movi r2, 128 + 6fd8: 9323 ld.w r1, (r3, 0xc) + 6fda: 424c lsli r2, r2, 12 + 6fdc: 6848 and r1, r2 + 6fde: 3940 cmpnei r1, 0 + 6fe0: 0fe5 bf 0x6faa // 6faa + UART0->ISR=UART_TX_DONE_S; + 6fe2: b343 st.w r2, (r3, 0xc) +} + 6fe4: 07e3 br 0x6faa // 6faa + 6fe6: 0000 bkpt + 6fe8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00006fec : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 6fec: 1460 nie + 6fee: 1462 ipush + 6ff0: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6ff2: 107f lrw r3, 0x2000003c // 706c + 6ff4: 3102 movi r1, 2 + 6ff6: 9360 ld.w r3, (r3, 0x0) + 6ff8: 9343 ld.w r2, (r3, 0xc) + 6ffa: 6884 and r2, r1 + 6ffc: 3a40 cmpnei r2, 0 + 6ffe: 0c0b bf 0x7014 // 7014 + { + UART1->ISR=UART_RX_INT_S; + 7000: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 7002: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 7004: 7400 zextb r0, r0 + 7006: e00003ab bsr 0x775c // 775c + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 700a: d9ee2000 ld.w r15, (r14, 0x0) + 700e: 1401 addi r14, r14, 4 + 7010: 1463 ipop + 7012: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 7014: 9323 ld.w r1, (r3, 0xc) + 7016: 3201 movi r2, 1 + 7018: 6848 and r1, r2 + 701a: 3940 cmpnei r1, 0 + 701c: 0c0d bf 0x7036 // 7036 + UART1->ISR=UART_TX_INT_S; + 701e: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 7020: 1074 lrw r3, 0x200000c8 // 7070 + 7022: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7024: 1074 lrw r3, 0x200000cc // 7074 + 7026: 9360 ld.w r3, (r3, 0x0) + 7028: 3b41 cmpnei r3, 1 + 702a: 0bf0 bt 0x700a // 700a + RS485_Comm_Start ++; + 702c: 1053 lrw r2, 0x200000d0 // 7078 + RS485_Comm_End ++; + 702e: 9260 ld.w r3, (r2, 0x0) + 7030: 2300 addi r3, 1 + 7032: b260 st.w r3, (r2, 0x0) +} + 7034: 07eb br 0x700a // 700a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 7036: 9343 ld.w r2, (r3, 0xc) + 7038: 3108 movi r1, 8 + 703a: 6884 and r2, r1 + 703c: 3a40 cmpnei r2, 0 + 703e: 0c03 bf 0x7044 // 7044 + UART1->ISR=UART_TX_IOV_S; + 7040: b323 st.w r1, (r3, 0xc) + 7042: 07e4 br 0x700a // 700a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 7044: 9343 ld.w r2, (r3, 0xc) + 7046: 3104 movi r1, 4 + 7048: 6884 and r2, r1 + 704a: 3a40 cmpnei r2, 0 + 704c: 0bfa bt 0x7040 // 7040 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 704e: 3180 movi r1, 128 + 7050: 9303 ld.w r0, (r3, 0xc) + 7052: 412c lsli r1, r1, 12 + 7054: 6804 and r0, r1 + 7056: 3840 cmpnei r0, 0 + 7058: 0fd9 bf 0x700a // 700a + UART1->ISR=UART_TX_DONE_S; + 705a: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 705c: 1065 lrw r3, 0x200000c8 // 7070 + 705e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7060: 1065 lrw r3, 0x200000cc // 7074 + 7062: 9360 ld.w r3, (r3, 0x0) + 7064: 3b41 cmpnei r3, 1 + 7066: 0bd2 bt 0x700a // 700a + RS485_Comm_End ++; + 7068: 1045 lrw r2, 0x200000d4 // 707c + 706a: 07e2 br 0x702e // 702e + 706c: 2000003c .long 0x2000003c + 7070: 200000c8 .long 0x200000c8 + 7074: 200000cc .long 0x200000cc + 7078: 200000d0 .long 0x200000d0 + 707c: 200000d4 .long 0x200000d4 + +Disassembly of section .text.UART2IntHandler: + +00007080 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 7080: 1460 nie + 7082: 1462 ipush + 7084: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 7086: 1076 lrw r3, 0x20000038 // 70dc + 7088: 3102 movi r1, 2 + 708a: 9360 ld.w r3, (r3, 0x0) + 708c: 9343 ld.w r2, (r3, 0xc) + 708e: 6884 and r2, r1 + 7090: 3a40 cmpnei r2, 0 + 7092: 0c0b bf 0x70a8 // 70a8 + { + UART2->ISR=UART_RX_INT_S; + 7094: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 7096: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 7098: 7400 zextb r0, r0 + 709a: e000037b bsr 0x7790 // 7790 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART2->ISR=UART_TX_DONE_S; + } + +} + 709e: d9ee2000 ld.w r15, (r14, 0x0) + 70a2: 1401 addi r14, r14, 4 + 70a4: 1463 ipop + 70a6: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 70a8: 9343 ld.w r2, (r3, 0xc) + 70aa: 3101 movi r1, 1 + 70ac: 6884 and r2, r1 + 70ae: 3a40 cmpnei r2, 0 + 70b0: 0c03 bf 0x70b6 // 70b6 + UART2->ISR=UART_TX_IOV_S; + 70b2: b323 st.w r1, (r3, 0xc) + 70b4: 07f5 br 0x709e // 709e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 70b6: 9343 ld.w r2, (r3, 0xc) + 70b8: 3108 movi r1, 8 + 70ba: 6884 and r2, r1 + 70bc: 3a40 cmpnei r2, 0 + 70be: 0bfa bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 70c0: 9343 ld.w r2, (r3, 0xc) + 70c2: 3104 movi r1, 4 + 70c4: 6884 and r2, r1 + 70c6: 3a40 cmpnei r2, 0 + 70c8: 0bf5 bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 70ca: 3280 movi r2, 128 + 70cc: 9323 ld.w r1, (r3, 0xc) + 70ce: 424c lsli r2, r2, 12 + 70d0: 6848 and r1, r2 + 70d2: 3940 cmpnei r1, 0 + 70d4: 0fe5 bf 0x709e // 709e + UART2->ISR=UART_TX_DONE_S; + 70d6: b343 st.w r2, (r3, 0xc) +} + 70d8: 07e3 br 0x709e // 709e + 70da: 0000 bkpt + 70dc: 20000038 .long 0x20000038 + +Disassembly of section .text.SPI0IntHandler: + +000070e0 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 70e0: 1460 nie + 70e2: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 70e4: 1178 lrw r3, 0x20000034 // 71c4 + 70e6: 3101 movi r1, 1 + 70e8: 9360 ld.w r3, (r3, 0x0) + 70ea: 9347 ld.w r2, (r3, 0x1c) + 70ec: 6884 and r2, r1 + 70ee: 3a40 cmpnei r2, 0 + 70f0: 0c03 bf 0x70f6 // 70f6 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 70f2: b328 st.w r1, (r3, 0x20) + } + +} + 70f4: 0407 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 70f6: 9347 ld.w r2, (r3, 0x1c) + 70f8: 3002 movi r0, 2 + 70fa: 6880 and r2, r0 + 70fc: 3a40 cmpnei r2, 0 + 70fe: 0c04 bf 0x7106 // 7106 + SPI0->ICR = SPI_RTIM; + 7100: b308 st.w r0, (r3, 0x20) +} + 7102: 1463 ipop + 7104: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 7106: 9347 ld.w r2, (r3, 0x1c) + 7108: 3004 movi r0, 4 + 710a: 6880 and r2, r0 + 710c: 3a40 cmpnei r2, 0 + 710e: 0c55 bf 0x71b8 // 71b8 + SPI0->ICR = SPI_RXIM; + 7110: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 7112: 9302 ld.w r0, (r3, 0x8) + 7114: 32aa movi r2, 170 + 7116: 6482 cmpne r0, r2 + 7118: 083e bt 0x7194 // 7194 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 711a: 3102 movi r1, 2 + 711c: 9343 ld.w r2, (r3, 0xc) + 711e: 6884 and r2, r1 + 7120: 3a40 cmpnei r2, 0 + 7122: 0ffd bf 0x711c // 711c + SPI0->DR = 0x11; + 7124: 3211 movi r2, 17 + 7126: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7128: 3110 movi r1, 16 + 712a: 9343 ld.w r2, (r3, 0xc) + 712c: 6884 and r2, r1 + 712e: 3a40 cmpnei r2, 0 + 7130: 0bfd bt 0x712a // 712a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7132: 3102 movi r1, 2 + 7134: 9343 ld.w r2, (r3, 0xc) + 7136: 6884 and r2, r1 + 7138: 3a40 cmpnei r2, 0 + 713a: 0ffd bf 0x7134 // 7134 + SPI0->DR = 0x12; + 713c: 3212 movi r2, 18 + 713e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7140: 3110 movi r1, 16 + 7142: 9343 ld.w r2, (r3, 0xc) + 7144: 6884 and r2, r1 + 7146: 3a40 cmpnei r2, 0 + 7148: 0bfd bt 0x7142 // 7142 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 714a: 3102 movi r1, 2 + 714c: 9343 ld.w r2, (r3, 0xc) + 714e: 6884 and r2, r1 + 7150: 3a40 cmpnei r2, 0 + 7152: 0ffd bf 0x714c // 714c + SPI0->DR = 0x13; + 7154: 3213 movi r2, 19 + 7156: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7158: 3110 movi r1, 16 + 715a: 9343 ld.w r2, (r3, 0xc) + 715c: 6884 and r2, r1 + 715e: 3a40 cmpnei r2, 0 + 7160: 0bfd bt 0x715a // 715a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7162: 3102 movi r1, 2 + 7164: 9343 ld.w r2, (r3, 0xc) + 7166: 6884 and r2, r1 + 7168: 3a40 cmpnei r2, 0 + 716a: 0ffd bf 0x7164 // 7164 + SPI0->DR = 0x14; + 716c: 3214 movi r2, 20 + 716e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7170: 3110 movi r1, 16 + 7172: 9343 ld.w r2, (r3, 0xc) + 7174: 6884 and r2, r1 + 7176: 3a40 cmpnei r2, 0 + 7178: 0bfd bt 0x7172 // 7172 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 717a: 3102 movi r1, 2 + 717c: 9343 ld.w r2, (r3, 0xc) + 717e: 6884 and r2, r1 + 7180: 3a40 cmpnei r2, 0 + 7182: 0ffd bf 0x717c // 717c + SPI0->DR = 0x15; + 7184: 3215 movi r2, 21 + 7186: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7188: 3110 movi r1, 16 + 718a: 9343 ld.w r2, (r3, 0xc) + 718c: 6884 and r2, r1 + 718e: 3a40 cmpnei r2, 0 + 7190: 0bfd bt 0x718a // 718a + 7192: 07b8 br 0x7102 // 7102 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 7194: 9343 ld.w r2, (r3, 0xc) + 7196: 6884 and r2, r1 + 7198: 3a40 cmpnei r2, 0 + 719a: 0bb4 bt 0x7102 // 7102 + SPI0->DR=0x0; //FIFO=0 + 719c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 719e: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 71a0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71aa: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71ac: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 71ae: 9343 ld.w r2, (r3, 0xc) + 71b0: 6884 and r2, r1 + 71b2: 3a40 cmpnei r2, 0 + 71b4: 0bfd bt 0x71ae // 71ae + 71b6: 07a6 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 71b8: 9347 ld.w r2, (r3, 0x1c) + 71ba: 3108 movi r1, 8 + 71bc: 6884 and r2, r1 + 71be: 3a40 cmpnei r2, 0 + 71c0: 0b99 bt 0x70f2 // 70f2 + 71c2: 07a0 br 0x7102 // 7102 + 71c4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000071c8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 71c8: 1460 nie + 71ca: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 71cc: 1073 lrw r3, 0x2000002c // 7218 + 71ce: 3104 movi r1, 4 + 71d0: 9360 ld.w r3, (r3, 0x0) + 71d2: 9349 ld.w r2, (r3, 0x24) + 71d4: 6884 and r2, r1 + 71d6: 3a40 cmpnei r2, 0 + 71d8: 0c02 bf 0x71dc // 71dc + { + SIO0->ICR=0X04; + 71da: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 71dc: 9349 ld.w r2, (r3, 0x24) + 71de: 3101 movi r1, 1 + 71e0: 6884 and r2, r1 + 71e2: 3a40 cmpnei r2, 0 + 71e4: 0c02 bf 0x71e8 // 71e8 + { + SIO0->ICR=0X01; + 71e6: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 71e8: 9349 ld.w r2, (r3, 0x24) + 71ea: 3102 movi r1, 2 + 71ec: 6884 and r2, r1 + 71ee: 3a40 cmpnei r2, 0 + 71f0: 0c03 bf 0x71f6 // 71f6 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 71f2: b32b st.w r1, (r3, 0x2c) + } +} + 71f4: 0410 br 0x7214 // 7214 + else if(SIO0->MISR&0X08) //RXBUFFULL + 71f6: 9349 ld.w r2, (r3, 0x24) + 71f8: 3108 movi r1, 8 + 71fa: 6884 and r2, r1 + 71fc: 3a40 cmpnei r2, 0 + 71fe: 0bfa bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X010) //BREAK + 7200: 9349 ld.w r2, (r3, 0x24) + 7202: 3110 movi r1, 16 + 7204: 6884 and r2, r1 + 7206: 3a40 cmpnei r2, 0 + 7208: 0bf5 bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X020) //TIMEOUT + 720a: 9349 ld.w r2, (r3, 0x24) + 720c: 3120 movi r1, 32 + 720e: 6884 and r2, r1 + 7210: 3a40 cmpnei r2, 0 + 7212: 0bf0 bt 0x71f2 // 71f2 +} + 7214: 1463 ipop + 7216: 1461 nir + 7218: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +0000721c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 721c: 1460 nie + 721e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 7220: 106a lrw r3, 0x2000005c // 7248 + 7222: 3101 movi r1, 1 + 7224: 9360 ld.w r3, (r3, 0x0) + 7226: 237f addi r3, 128 + 7228: 934c ld.w r2, (r3, 0x30) + 722a: 6884 and r2, r1 + 722c: 3a40 cmpnei r2, 0 + 722e: 0c04 bf 0x7236 // 7236 + { + SYSCON->EXICR = EXI_PIN0; + 7230: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 7232: 1463 ipop + 7234: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 7236: 3280 movi r2, 128 + 7238: 932c ld.w r1, (r3, 0x30) + 723a: 4249 lsli r2, r2, 9 + 723c: 6848 and r1, r2 + 723e: 3940 cmpnei r1, 0 + 7240: 0ff9 bf 0x7232 // 7232 + SYSCON->EXICR = EXI_PIN16; + 7242: b34b st.w r2, (r3, 0x2c) +} + 7244: 07f7 br 0x7232 // 7232 + 7246: 0000 bkpt + 7248: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +0000724c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 724c: 1460 nie + 724e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 7250: 106a lrw r3, 0x2000005c // 7278 + 7252: 3102 movi r1, 2 + 7254: 9360 ld.w r3, (r3, 0x0) + 7256: 237f addi r3, 128 + 7258: 934c ld.w r2, (r3, 0x30) + 725a: 6884 and r2, r1 + 725c: 3a40 cmpnei r2, 0 + 725e: 0c04 bf 0x7266 // 7266 + { + SYSCON->EXICR = EXI_PIN1; + 7260: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 7262: 1463 ipop + 7264: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 7266: 3280 movi r2, 128 + 7268: 932c ld.w r1, (r3, 0x30) + 726a: 424a lsli r2, r2, 10 + 726c: 6848 and r1, r2 + 726e: 3940 cmpnei r1, 0 + 7270: 0ff9 bf 0x7262 // 7262 + SYSCON->EXICR = EXI_PIN17; + 7272: b34b st.w r2, (r3, 0x2c) +} + 7274: 07f7 br 0x7262 // 7262 + 7276: 0000 bkpt + 7278: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +0000727c : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 727c: 1460 nie + 727e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 7280: 1070 lrw r3, 0x2000005c // 72c0 + 7282: 3104 movi r1, 4 + 7284: 9360 ld.w r3, (r3, 0x0) + 7286: 237f addi r3, 128 + 7288: 934c ld.w r2, (r3, 0x30) + 728a: 6884 and r2, r1 + 728c: 3a40 cmpnei r2, 0 + 728e: 0c04 bf 0x7296 // 7296 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 7290: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 7292: 1463 ipop + 7294: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 7296: 934c ld.w r2, (r3, 0x30) + 7298: 3108 movi r1, 8 + 729a: 6884 and r2, r1 + 729c: 3a40 cmpnei r2, 0 + 729e: 0bf9 bt 0x7290 // 7290 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 72a0: 3280 movi r2, 128 + 72a2: 932c ld.w r1, (r3, 0x30) + 72a4: 424b lsli r2, r2, 11 + 72a6: 6848 and r1, r2 + 72a8: 3940 cmpnei r1, 0 + 72aa: 0c03 bf 0x72b0 // 72b0 + SYSCON->EXICR = EXI_PIN19; + 72ac: b34b st.w r2, (r3, 0x2c) +} + 72ae: 07f2 br 0x7292 // 7292 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 72b0: 3280 movi r2, 128 + 72b2: 932c ld.w r1, (r3, 0x30) + 72b4: 424c lsli r2, r2, 12 + 72b6: 6848 and r1, r2 + 72b8: 3940 cmpnei r1, 0 + 72ba: 0bf9 bt 0x72ac // 72ac + 72bc: 07eb br 0x7292 // 7292 + 72be: 0000 bkpt + 72c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000072c4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 72c4: 1460 nie + 72c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 72c8: 1066 lrw r3, 0x2000005c // 72e0 + 72ca: 3110 movi r1, 16 + 72cc: 9360 ld.w r3, (r3, 0x0) + 72ce: 237f addi r3, 128 + 72d0: 934c ld.w r2, (r3, 0x30) + 72d2: 6884 and r2, r1 + 72d4: 3a40 cmpnei r2, 0 + 72d6: 0c02 bf 0x72da // 72da + { + SYSCON->EXICR = EXI_PIN4; + 72d8: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 72da: 1463 ipop + 72dc: 1461 nir + 72de: 0000 bkpt + 72e0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +000072e4 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 72e4: 1460 nie + 72e6: 1462 ipush + 72e8: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 72ea: 1079 lrw r3, 0x2000005c // 734c + 72ec: 3280 movi r2, 128 + 72ee: 9360 ld.w r3, (r3, 0x0) + 72f0: 237f addi r3, 128 + 72f2: 932c ld.w r1, (r3, 0x30) + 72f4: 4243 lsli r2, r2, 3 + 72f6: 6848 and r1, r2 + 72f8: 3940 cmpnei r1, 0 + 72fa: 0c07 bf 0x7308 // 7308 + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 72fc: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 72fe: d9ee2000 ld.w r15, (r14, 0x0) + 7302: 1401 addi r14, r14, 4 + 7304: 1463 ipop + 7306: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 7308: 3280 movi r2, 128 + 730a: 932c ld.w r1, (r3, 0x30) + 730c: 4244 lsli r2, r2, 4 + 730e: 6848 and r1, r2 + 7310: 3940 cmpnei r1, 0 + 7312: 0bf5 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 7314: 3280 movi r2, 128 + 7316: 932c ld.w r1, (r3, 0x30) + 7318: 4245 lsli r2, r2, 5 + 731a: 6848 and r1, r2 + 731c: 3940 cmpnei r1, 0 + 731e: 0bef bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 7320: 3280 movi r2, 128 + 7322: 932c ld.w r1, (r3, 0x30) + 7324: 4246 lsli r2, r2, 6 + 7326: 6848 and r1, r2 + 7328: 3940 cmpnei r1, 0 + 732a: 0be9 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 732c: 3280 movi r2, 128 + 732e: 932c ld.w r1, (r3, 0x30) + 7330: 4247 lsli r2, r2, 7 + 7332: 6848 and r1, r2 + 7334: 3940 cmpnei r1, 0 + 7336: 0be3 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 7338: 3280 movi r2, 128 + 733a: 932c ld.w r1, (r3, 0x30) + 733c: 4248 lsli r2, r2, 8 + 733e: 6848 and r1, r2 + 7340: 3940 cmpnei r1, 0 + 7342: 0fde bf 0x72fe // 72fe + SYSCON->EXICR = EXI_PIN15; + 7344: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 7346: e0000349 bsr 0x79d8 // 79d8 +} + 734a: 07da br 0x72fe // 72fe + 734c: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00007350 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 7350: 1460 nie + 7352: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 7354: 106b lrw r3, 0x20000014 // 7380 + 7356: 3101 movi r1, 1 + 7358: 9360 ld.w r3, (r3, 0x0) + 735a: 934e ld.w r2, (r3, 0x38) + 735c: 6884 and r2, r1 + 735e: 3a40 cmpnei r2, 0 + 7360: 0c03 bf 0x7366 // 7366 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 7362: b330 st.w r1, (r3, 0x40) + } +} + 7364: 040b br 0x737a // 737a + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 7366: 934e ld.w r2, (r3, 0x38) + 7368: 3102 movi r1, 2 + 736a: 6884 and r2, r1 + 736c: 3a40 cmpnei r2, 0 + 736e: 0bfa bt 0x7362 // 7362 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 7370: 934e ld.w r2, (r3, 0x38) + 7372: 3104 movi r1, 4 + 7374: 6884 and r2, r1 + 7376: 3a40 cmpnei r2, 0 + 7378: 0bf5 bt 0x7362 // 7362 +} + 737a: 1463 ipop + 737c: 1461 nir + 737e: 0000 bkpt + 7380: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00007384 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 7384: 1460 nie + 7386: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 7388: 1071 lrw r3, 0x2000000c // 73cc + 738a: 3101 movi r1, 1 + 738c: 9360 ld.w r3, (r3, 0x0) + 738e: 934c ld.w r2, (r3, 0x30) + 7390: 6884 and r2, r1 + 7392: 3a40 cmpnei r2, 0 + 7394: 0c0a bf 0x73a8 // 73a8 + { + BT0->ICR = BT_PEND; + 7396: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 7398: 9341 ld.w r2, (r3, 0x4) + 739a: 3a86 bclri r2, 6 + 739c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 739e: 9340 ld.w r2, (r3, 0x0) + 73a0: 3200 movi r2, 0 + 73a2: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 73a4: 1463 ipop + 73a6: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 73a8: 934c ld.w r2, (r3, 0x30) + 73aa: 3102 movi r1, 2 + 73ac: 6884 and r2, r1 + 73ae: 3a40 cmpnei r2, 0 + 73b0: 0c03 bf 0x73b6 // 73b6 + BT0->ICR = BT_EVTRG; + 73b2: b32d st.w r1, (r3, 0x34) +} + 73b4: 07f8 br 0x73a4 // 73a4 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 73b6: 934c ld.w r2, (r3, 0x30) + 73b8: 3104 movi r1, 4 + 73ba: 6884 and r2, r1 + 73bc: 3a40 cmpnei r2, 0 + 73be: 0bfa bt 0x73b2 // 73b2 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 73c0: 934c ld.w r2, (r3, 0x30) + 73c2: 3108 movi r1, 8 + 73c4: 6884 and r2, r1 + 73c6: 3a40 cmpnei r2, 0 + 73c8: 0bf5 bt 0x73b2 // 73b2 + 73ca: 07ed br 0x73a4 // 73a4 + 73cc: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000073d0 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 73d0: 1460 nie + 73d2: 1462 ipush + 73d4: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 73d6: 1079 lrw r3, 0x20000008 // 7438 + 73d8: 3101 movi r1, 1 + 73da: 9360 ld.w r3, (r3, 0x0) + 73dc: 934c ld.w r2, (r3, 0x30) + 73de: 6884 and r2, r1 + 73e0: 3a40 cmpnei r2, 0 + 73e2: 0c03 bf 0x73e8 // 73e8 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 73e4: b32d st.w r1, (r3, 0x34) + } +} + 73e6: 0418 br 0x7416 // 7416 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 73e8: 934c ld.w r2, (r3, 0x30) + 73ea: 3102 movi r1, 2 + 73ec: 6884 and r2, r1 + 73ee: 3a40 cmpnei r2, 0 + 73f0: 0c18 bf 0x7420 // 7420 + BT1->ICR = BT_CMP; + 73f2: b32d st.w r1, (r3, 0x34) + NUM++; + 73f4: 1072 lrw r3, 0x200000bc // 743c + 73f6: 8340 ld.b r2, (r3, 0x0) + 73f8: 2200 addi r2, 1 + 73fa: 7488 zextb r2, r2 + SysTick_100us++; + 73fc: 9321 ld.w r1, (r3, 0x4) + 73fe: 2100 addi r1, 1 + if(NUM >= 10){ + 7400: 3a09 cmphsi r2, 10 + NUM++; + 7402: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 7404: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 7406: 0c08 bf 0x7416 // 7416 + NUM = 0; + 7408: 3200 movi r2, 0 + 740a: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 740c: 9342 ld.w r2, (r3, 0x8) + 740e: 2200 addi r2, 1 + 7410: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 7412: e00002c3 bsr 0x7998 // 7998 +} + 7416: d9ee2000 ld.w r15, (r14, 0x0) + 741a: 1401 addi r14, r14, 4 + 741c: 1463 ipop + 741e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 7420: 934c ld.w r2, (r3, 0x30) + 7422: 3104 movi r1, 4 + 7424: 6884 and r2, r1 + 7426: 3a40 cmpnei r2, 0 + 7428: 0bde bt 0x73e4 // 73e4 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 742a: 934c ld.w r2, (r3, 0x30) + 742c: 3108 movi r1, 8 + 742e: 6884 and r2, r1 + 7430: 3a40 cmpnei r2, 0 + 7432: 0bd9 bt 0x73e4 // 73e4 + 7434: 07f1 br 0x7416 // 7416 + 7436: 0000 bkpt + 7438: 20000008 .long 0x20000008 + 743c: 200000bc .long 0x200000bc + +Disassembly of section .text.PriviledgeVioHandler: + +00007440 : + 7440: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00007442 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 7442: 1460 nie + 7444: 1462 ipush + // ISR content ... + +} + 7446: 1463 ipop + 7448: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000744a : + 744a: 1460 nie + 744c: 1462 ipush + 744e: 1463 ipop + 7450: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00007452 : + 7452: 1460 nie + 7454: 1462 ipush + 7456: 1463 ipop + 7458: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000745a : + 745a: 1460 nie + 745c: 1462 ipush + 745e: 1463 ipop + 7460: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00007462 : + 7462: 1460 nie + 7464: 1462 ipush + 7466: 1463 ipop + 7468: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000746a : + 746a: 1460 nie + 746c: 1462 ipush + 746e: 1463 ipop + 7470: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00007472 : + 7472: 1460 nie + 7474: 1462 ipush + 7476: 1463 ipop + 7478: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +0000747a : + 747a: 1460 nie + 747c: 1462 ipush + 747e: 1463 ipop + 7480: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00007482 : + 7482: 1460 nie + 7484: 1462 ipush + 7486: 1463 ipop + 7488: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +0000748a : + 748a: 1460 nie + 748c: 1462 ipush + 748e: 1463 ipop + 7490: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00007492 : + 7492: 1460 nie + 7494: 1462 ipush + 7496: 1463 ipop + 7498: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000749a : + 749a: 1460 nie + 749c: 1462 ipush + 749e: 1463 ipop + 74a0: 1461 nir + +Disassembly of section .text.__divsi3: + +000074a4 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 74a4: 14c1 push r4 + int PSR; + __asm volatile( + 74a6: c0006023 mfcr r3, cr<0, 0> + 74aa: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74ae: 1046 lrw r2, 0x20000000 // 74c4 <__divsi3+0x20> + 74b0: 3400 movi r4, 0 + 74b2: 9240 ld.w r2, (r2, 0x0) + 74b4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74b6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74b8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74ba: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74bc: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74c0: 9202 ld.w r0, (r2, 0x8) +} + 74c2: 1481 pop r4 + 74c4: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000074c8 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 74c8: 14c1 push r4 + int PSR; + __asm volatile( + 74ca: c0006023 mfcr r3, cr<0, 0> + 74ce: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 74d2: 1046 lrw r2, 0x20000000 // 74e8 <__udivsi3+0x20> + 74d4: 3401 movi r4, 1 + 74d6: 9240 ld.w r2, (r2, 0x0) + 74d8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74da: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74dc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74de: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74e0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74e4: 9202 ld.w r0, (r2, 0x8) +} + 74e6: 1481 pop r4 + 74e8: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +000074ec <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 74ec: 14c1 push r4 + int PSR; + __asm volatile( + 74ee: c0006023 mfcr r3, cr<0, 0> + 74f2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74f6: 1046 lrw r2, 0x20000000 // 750c <__modsi3+0x20> + 74f8: 3400 movi r4, 0 + 74fa: 9240 ld.w r2, (r2, 0x0) + 74fc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74fe: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7500: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7502: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7504: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 7508: 9203 ld.w r0, (r2, 0xc) +} + 750a: 1481 pop r4 + 750c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00007510 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 7510: 14c1 push r4 + int PSR; + __asm volatile( + 7512: c0006023 mfcr r3, cr<0, 0> + 7516: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 751a: 1046 lrw r2, 0x20000000 // 7530 <__umodsi3+0x20> + 751c: 3401 movi r4, 1 + 751e: 9240 ld.w r2, (r2, 0x0) + 7520: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 7522: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7524: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7526: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7528: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 752c: 9203 ld.w r0, (r2, 0xc) +} + 752e: 1481 pop r4 + 7530: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00007534 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 7534: c1807420 psrset ee, ie +} + 7538: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000753a : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 753a: c0807020 psrclr ie +} + 753e: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00007540 : +UART_t g_uart; +UART_t g_uart1; +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7540: 14d2 push r4-r5, r15 + switch((U8_T)uart_id){ + 7542: 7400 zextb r0, r0 + 7544: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7546: 6d47 mov r5, r1 + switch((U8_T)uart_id){ + 7548: 0c1f bf 0x7586 // 7586 + 754a: 3840 cmpnei r0, 0 + 754c: 0c04 bf 0x7554 // 7554 + 754e: 3842 cmpnei r0, 2 + 7550: 0c8c bf 0x7668 // 7668 + g_uart.RecvTimeout = Recv_9600_TimeOut; + g_uart.processing_cf = prt_cf; + + break; + } +} + 7552: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 7554: e3fff896 bsr 0x6680 // 6680 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 7558: 3100 movi r1, 0 + 755a: 3000 movi r0, 0 + 755c: e3fff8e0 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART0,5000,UART_PAR_EVEN); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 7560: 126d lrw r3, 0x20000040 // 7694 + 7562: 3280 movi r2, 128 + 7564: 9300 ld.w r0, (r3, 0x0) + 7566: 4243 lsli r2, r2, 3 + 7568: 122c lrw r1, 0x1388 // 7698 + 756a: e3fff94f bsr 0x6808 // 6808 + UART0_Int_Enable(); + 756e: e3fff8ad bsr 0x66c8 // 66c8 + memset(&g_uart0,0,sizeof(UART_t)); + 7572: 3294 movi r2, 148 + 7574: 3100 movi r1, 0 + 7576: 120a lrw r0, 0x200002cc // 769c + 7578: e3ffe9f0 bsr 0x4958 // 4958 <__memset_fast> + g_uart0.RecvTimeout = Recv_9600_TimeOut; + 757c: 1269 lrw r3, 0x2000034c // 76a0 + g_uart.RecvTimeout = Recv_9600_TimeOut; + 757e: 3203 movi r2, 3 + 7580: b342 st.w r2, (r3, 0x8) + g_uart.processing_cf = prt_cf; + 7582: b3a4 st.w r5, (r3, 0x10) +} + 7584: 07e7 br 0x7552 // 7552 + memset(&m_send,0,sizeof(MULIT_t)); + 7586: 1288 lrw r4, 0x200003f4 // 76a4 + memset(&g_uart1,0,sizeof(UART_t)); + 7588: 3294 movi r2, 148 + 758a: 3100 movi r1, 0 + 758c: 1207 lrw r0, 0x20000360 // 76a8 + 758e: e3ffe9e5 bsr 0x4958 // 4958 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 7592: 3288 movi r2, 136 + 7594: 3100 movi r1, 0 + 7596: 6c13 mov r0, r4 + 7598: e3ffe9e0 bsr 0x4958 // 4958 <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 759c: 1264 lrw r3, 0x200003e0 // 76ac + 759e: 3203 movi r2, 3 + 75a0: b342 st.w r2, (r3, 0x8) + g_uart1.processing_cf = prt_cf; + 75a2: b3a4 st.w r5, (r3, 0x10) + m_send.HighBit_Flag = 0x01; + 75a4: 245f addi r4, 96 + m_send.BusState_Tick = SysTick_1ms; + 75a6: 1263 lrw r3, 0x200000c4 // 76b0 + GPIO_PullHigh_Init(GPIOA0,15); + 75a8: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 75aa: 9360 ld.w r3, (r3, 0x0) + 75ac: b467 st.w r3, (r4, 0x1c) + m_send.HighBit_Flag = 0x01; + 75ae: 3301 movi r3, 1 + 75b0: a465 st.b r3, (r4, 0x5) + GPIO_PullHigh_Init(GPIOA0,15); + 75b2: 1281 lrw r4, 0x2000004c // 76b4 + 75b4: 9400 ld.w r0, (r4, 0x0) + 75b6: e3fff6d3 bsr 0x635c // 635c + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 75ba: 320f movi r2, 15 + 75bc: 310f movi r1, 15 + 75be: 3000 movi r0, 0 + 75c0: e3fff6e0 bsr 0x6380 // 6380 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 75c4: 300f movi r0, 15 + 75c6: e3fff763 bsr 0x648c // 648c + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 75ca: 3180 movi r1, 128 + 75cc: 3201 movi r2, 1 + 75ce: 4128 lsli r1, r1, 8 + 75d0: 3001 movi r0, 1 + 75d2: e3fff59f bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 75d6: 3180 movi r1, 128 + 75d8: 3200 movi r2, 0 + 75da: 4128 lsli r1, r1, 8 + 75dc: 3001 movi r0, 1 + 75de: e3fff599 bsr 0x6110 // 6110 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 75e2: 3180 movi r1, 128 + 75e4: 4128 lsli r1, r1, 8 + 75e6: 3001 movi r0, 1 + 75e8: e3fff5b4 bsr 0x6150 // 6150 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 75ec: 3180 movi r1, 128 + 75ee: 9400 ld.w r0, (r4, 0x0) + 75f0: 4128 lsli r1, r1, 8 + 75f2: e3fff5c9 bsr 0x6184 // 6184 + EXI4_Int_Enable(); + 75f6: e3fff5c9 bsr 0x6188 // 6188 + UART1_DeInit(); //clear all UART Register + 75fa: e3fff84f bsr 0x6698 // 6698 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 75fe: 3102 movi r1, 2 + 7600: 3001 movi r0, 1 + 7602: e3fff88d bsr 0x671c // 671c + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 7606: 116d lrw r3, 0x2000003c // 76b8 + 7608: 3200 movi r2, 0 + 760a: 9300 ld.w r0, (r3, 0x0) + 760c: 1123 lrw r1, 0x1388 // 7698 + 760e: e3fff8fd bsr 0x6808 // 6808 + UART1_Int_Enable(); + 7612: e3fff869 bsr 0x66e4 // 66e4 + GPIO_Init(GPIOA0,LED_HLW_PIN,Output); + 7616: 9400 ld.w r0, (r4, 0x0) + 7618: 3200 movi r2, 0 + 761a: 310b movi r1, 11 + 761c: e3fff630 bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_BUS_PIN,Output); + 7620: 9400 ld.w r0, (r4, 0x0) + 7622: 3200 movi r2, 0 + 7624: 310c movi r1, 12 + 7626: e3fff62b bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_STATUS_PIN,Output); + 762a: 3200 movi r2, 0 + 762c: 9400 ld.w r0, (r4, 0x0) + 762e: 310d movi r1, 13 + 7630: e3fff626 bsr 0x627c // 627c + HLW_LED_ON; + 7634: 9400 ld.w r0, (r4, 0x0) + 7636: 310b movi r1, 11 + 7638: e3fff7ac bsr 0x6590 // 6590 + BUS_LED_ON; + 763c: 9400 ld.w r0, (r4, 0x0) + 763e: 310c movi r1, 12 + 7640: e3fff7a8 bsr 0x6590 // 6590 + STATUS_LED_ON; + 7644: 9400 ld.w r0, (r4, 0x0) + 7646: 310d movi r1, 13 + 7648: e3fff7a4 bsr 0x6590 // 6590 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 764c: 3200 movi r2, 0 + 764e: 9400 ld.w r0, (r4, 0x0) + 7650: 3107 movi r1, 7 + 7652: e3fff615 bsr 0x627c // 627c + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 7656: 9400 ld.w r0, (r4, 0x0) + 7658: 3107 movi r1, 7 + 765a: e3fff68b bsr 0x6370 // 6370 + WRITE_LOW_DR; + 765e: 9400 ld.w r0, (r4, 0x0) + 7660: 3107 movi r1, 7 + 7662: e3fff797 bsr 0x6590 // 6590 + break; + 7666: 0776 br 0x7552 // 7552 + UART2_DeInit(); //clear all UART Register + 7668: e3fff824 bsr 0x66b0 // 66b0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 766c: 3102 movi r1, 2 + 766e: 3002 movi r0, 2 + 7670: e3fff856 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled , + 7674: 1072 lrw r3, 0x20000038 // 76bc + 7676: 3200 movi r2, 0 + 7678: 9300 ld.w r0, (r3, 0x0) + 767a: 1028 lrw r1, 0x1388 // 7698 + 767c: e3fff8c6 bsr 0x6808 // 6808 + UART2_Int_Enable(); + 7680: e3fff840 bsr 0x6700 // 6700 + memset(&g_uart,0,sizeof(UART_t)); + 7684: 3294 movi r2, 148 + 7686: 3100 movi r1, 0 + 7688: 100e lrw r0, 0x20000238 // 76c0 + 768a: e3ffe967 bsr 0x4958 // 4958 <__memset_fast> + g_uart.RecvTimeout = Recv_9600_TimeOut; + 768e: 106e lrw r3, 0x200002b8 // 76c4 + 7690: 0777 br 0x757e // 757e + 7692: 0000 bkpt + 7694: 20000040 .long 0x20000040 + 7698: 00001388 .long 0x00001388 + 769c: 200002cc .long 0x200002cc + 76a0: 2000034c .long 0x2000034c + 76a4: 200003f4 .long 0x200003f4 + 76a8: 20000360 .long 0x20000360 + 76ac: 200003e0 .long 0x200003e0 + 76b0: 200000c4 .long 0x200000c4 + 76b4: 2000004c .long 0x2000004c + 76b8: 2000003c .long 0x2000003c + 76bc: 20000038 .long 0x20000038 + 76c0: 20000238 .long 0x20000238 + 76c4: 200002b8 .long 0x200002b8 + +Disassembly of section .text.UART0_RecvINT_Processing: + +000076c8 : +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + if((g_uart0.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart0.RecvLen = 0; + 76c8: 106a lrw r3, 0x2000034c // 76f0 + 76ca: 8b22 ld.h r1, (r3, 0x4) + 76cc: 323e movi r2, 62 + 76ce: 6449 cmplt r2, r1 + 76d0: 0c03 bf 0x76d6 // 76d6 + 76d2: 3200 movi r2, 0 + 76d4: ab42 st.h r2, (r3, 0x4) + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + 76d6: 8b42 ld.h r2, (r3, 0x4) + 76d8: 5a22 addi r1, r2, 1 + 76da: ab22 st.h r1, (r3, 0x4) + 76dc: 1026 lrw r1, 0x200002cc // 76f4 + 76de: 6084 addu r2, r1 + 76e0: a200 st.b r0, (r2, 0x0) + + g_uart0.RecvIdleTiming = SysTick_1ms; + 76e2: 1046 lrw r2, 0x200000c4 // 76f8 + 76e4: 9240 ld.w r2, (r2, 0x0) + 76e6: b343 st.w r2, (r3, 0xc) + g_uart0.Receiving = 0x01; + 76e8: 3201 movi r2, 1 + 76ea: a340 st.b r2, (r3, 0x0) +} + 76ec: 783c jmp r15 + 76ee: 0000 bkpt + 76f0: 2000034c .long 0x2000034c + 76f4: 200002cc .long 0x200002cc + 76f8: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART0_TASK: + +000076fc : + +void UART0_TASK(void){ + 76fc: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart0.Receiving == 0x01){ + 76fe: 1094 lrw r4, 0x2000034c // 774c + 7700: 8460 ld.b r3, (r4, 0x0) + 7702: 3b41 cmpnei r3, 1 + 7704: 0823 bt 0x774a // 774a + if(SysTick_1ms - g_uart0.RecvIdleTiming > g_uart0.RecvTimeout){ + 7706: 10b3 lrw r5, 0x200000c4 // 7750 + 7708: 9560 ld.w r3, (r5, 0x0) + 770a: 9443 ld.w r2, (r4, 0xc) + 770c: 60ca subu r3, r2 + 770e: 9442 ld.w r2, (r4, 0x8) + 7710: 64c8 cmphs r2, r3 + 7712: 081c bt 0x774a // 774a + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7714: e3fff548 bsr 0x61a4 // 61a4 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7718: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 771a: 8c42 ld.h r2, (r4, 0x4) + 771c: 102e lrw r1, 0x200002cc // 7754 + 771e: 100f lrw r0, 0x2000030c // 7758 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7720: b463 st.w r3, (r4, 0xc) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 7722: e3ffe95f bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart0.DealLen = g_uart0.RecvLen; + 7726: 8c62 ld.h r3, (r4, 0x4) + 7728: ac61 st.h r3, (r4, 0x2) + g_uart0.RecvLen = 0; + 772a: 3300 movi r3, 0 + 772c: ac62 st.h r3, (r4, 0x4) + g_uart0.Receiving = 0; + 772e: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7730: e3fff534 bsr 0x6198 // 6198 + +#if DBG_LOG_EN + //Dbg_Println(DBG_BIT_SYS_STATUS, "UART0 revLen %d", g_uart0.DealLen); + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART0 buff",g_uart0.DealBuffer,g_uart0.DealLen); +#endif + if(g_uart0.processing_cf != NULL){ + 7734: 9464 ld.w r3, (r4, 0x10) + 7736: 3b40 cmpnei r3, 0 + 7738: 0c04 bf 0x7740 // 7740 + rev = g_uart0.processing_cf(g_uart0.DealBuffer,g_uart0.DealLen); + 773a: 8c21 ld.h r1, (r4, 0x2) + 773c: 1007 lrw r0, 0x2000030c // 7758 + 773e: 7bcd jsr r3 + } + + memset(g_uart0.DealBuffer,0,USART_BUFFER_SIZE); + 7740: 3240 movi r2, 64 + 7742: 3100 movi r1, 0 + 7744: 1005 lrw r0, 0x2000030c // 7758 + 7746: e3ffe909 bsr 0x4958 // 4958 <__memset_fast> + } + } +} + 774a: 1492 pop r4-r5, r15 + 774c: 2000034c .long 0x2000034c + 7750: 200000c4 .long 0x200000c4 + 7754: 200002cc .long 0x200002cc + 7758: 2000030c .long 0x2000030c + +Disassembly of section .text.UART1_RecvINT_Processing: + +0000775c : +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 775c: 106a lrw r3, 0x200003e0 // 7784 + 775e: 8b22 ld.h r1, (r3, 0x4) + 7760: 323e movi r2, 62 + 7762: 6449 cmplt r2, r1 + 7764: 0c03 bf 0x776a // 776a + 7766: 3200 movi r2, 0 + 7768: ab42 st.h r2, (r3, 0x4) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 776a: 8b42 ld.h r2, (r3, 0x4) + 776c: 5a22 addi r1, r2, 1 + 776e: ab22 st.h r1, (r3, 0x4) + 7770: 1026 lrw r1, 0x20000360 // 7788 + 7772: 6084 addu r2, r1 + 7774: a200 st.b r0, (r2, 0x0) + + g_uart1.RecvIdleTiming = SysTick_1ms; + 7776: 1046 lrw r2, 0x200000c4 // 778c + 7778: 9240 ld.w r2, (r2, 0x0) + 777a: b343 st.w r2, (r3, 0xc) + g_uart1.Receiving = 0x01; + 777c: 3201 movi r2, 1 + 777e: a340 st.b r2, (r3, 0x0) + +} + 7780: 783c jmp r15 + 7782: 0000 bkpt + 7784: 200003e0 .long 0x200003e0 + 7788: 20000360 .long 0x20000360 + 778c: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00007790 : +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 7790: 106a lrw r3, 0x200002b8 // 77b8 + 7792: 8b22 ld.h r1, (r3, 0x4) + 7794: 323e movi r2, 62 + 7796: 6449 cmplt r2, r1 + 7798: 0c03 bf 0x779e // 779e + 779a: 3200 movi r2, 0 + 779c: ab42 st.h r2, (r3, 0x4) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 779e: 8b42 ld.h r2, (r3, 0x4) + 77a0: 5a22 addi r1, r2, 1 + 77a2: ab22 st.h r1, (r3, 0x4) + 77a4: 1026 lrw r1, 0x20000238 // 77bc + 77a6: 6084 addu r2, r1 + 77a8: a200 st.b r0, (r2, 0x0) + + g_uart.RecvIdleTiming = SysTick_1ms; + 77aa: 1046 lrw r2, 0x200000c4 // 77c0 + 77ac: 9240 ld.w r2, (r2, 0x0) + 77ae: b343 st.w r2, (r3, 0xc) + g_uart.Receiving = 0x01; + 77b0: 3201 movi r2, 1 + 77b2: a340 st.b r2, (r3, 0x0) +} + 77b4: 783c jmp r15 + 77b6: 0000 bkpt + 77b8: 200002b8 .long 0x200002b8 + 77bc: 20000238 .long 0x20000238 + 77c0: 200000c4 .long 0x200000c4 + +Disassembly of section .text.MCU485_SendData: + +000077c4 : + }while(Dataval == 0x00); //发送完成 + uart->ISR=UART_TX_DONE_S; +} + +volatile int RS485_Comm_Flag = 0,RS485_Comm_Start = 0,RS485_Comm_End = 0,RS485_Comming = 0; +void MCU485_SendData(U8_T *buff,U16_T len){ + 77c4: 14d4 push r4-r7, r15 + 77c6: 1421 subi r14, r14, 4 + 77c8: b800 st.w r0, (r14, 0x0) + 77ca: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 77cc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 77ce: 109f lrw r4, 0x200000c8 // 7848 + 77d0: 10df lrw r6, 0x2000004c // 784c + 77d2: 9460 ld.w r3, (r4, 0x0) + 77d4: 3b41 cmpnei r3, 1 + 77d6: 0c2d bf 0x7830 // 7830 + } + + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + } + + CK_CPU_DisAllNormalIrq(); + 77d8: e3fffeb1 bsr 0x753a // 753a + + WRITE_HIGH_DR; //GPIO_Write_High(GPIOA0,7); + 77dc: 3107 movi r1, 7 + 77de: 9600 ld.w r0, (r6, 0x0) + 77e0: e3fff6d4 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 77e4: 3301 movi r3, 1 + 77e6: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 77e8: 3300 movi r3, 0 + 77ea: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 77ec: b463 st.w r3, (r4, 0xc) + CK_CPU_EnAllNormalIrq(); + 77ee: e3fffea3 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 77f2: 1078 lrw r3, 0x2000003c // 7850 + 77f4: 6c9f mov r2, r7 + 77f6: 9300 ld.w r0, (r3, 0x0) + 77f8: 9820 ld.w r1, (r14, 0x0) + 77fa: e3fff80f bsr 0x6818 // 6818 + + do{ + delay_nus(100); + 77fe: 3064 movi r0, 100 + 7800: e3fff8ce bsr 0x699c // 699c + + delay_cnt ++; + 7804: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7806: 3363 movi r3, 99 + 7808: 654c cmphs r3, r5 + 780a: 0c07 bf 0x7818 // 7818 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 780c: 9462 ld.w r3, (r4, 0x8) + 780e: 65cd cmplt r3, r7 + 7810: 0bf7 bt 0x77fe // 77fe + 7812: 9463 ld.w r3, (r4, 0xc) + 7814: 65cd cmplt r3, r7 + 7816: 0bf4 bt 0x77fe // 77fe + + CK_CPU_DisAllNormalIrq(); + 7818: e3fffe91 bsr 0x753a // 753a + WRITE_LOW_DR; //GPIO_Write_Low(GPIOA0,7); + 781c: 9600 ld.w r0, (r6, 0x0) + 781e: 3107 movi r1, 7 + 7820: e3fff6b8 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 7824: 3300 movi r3, 0 + 7826: b461 st.w r3, (r4, 0x4) + CK_CPU_EnAllNormalIrq(); + 7828: e3fffe86 bsr 0x7534 // 7534 +} + 782c: 1401 addi r14, r14, 4 + 782e: 1494 pop r4-r7, r15 + delay_nus(100); + 7830: 3064 movi r0, 100 + 7832: e3fff8b5 bsr 0x699c // 699c + delay_cnt ++; + 7836: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7838: 3364 movi r3, 100 + 783a: 64d6 cmpne r5, r3 + 783c: 0fce bf 0x77d8 // 77d8 + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + 783e: 3107 movi r1, 7 + 7840: 9600 ld.w r0, (r6, 0x0) + 7842: e3fff6ab bsr 0x6598 // 6598 + 7846: 07c6 br 0x77d2 // 77d2 + 7848: 200000c8 .long 0x200000c8 + 784c: 2000004c .long 0x2000004c + 7850: 2000003c .long 0x2000003c + +Disassembly of section .text.BUS485_Send: + +00007854 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 7854: 14d4 push r4-r7, r15 + 7856: 1423 subi r14, r14, 12 + 7858: b802 st.w r0, (r14, 0x8) + 785a: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 785c: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 785e: 1189 lrw r4, 0x200000c8 // 7900 + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 7860: 11c9 lrw r6, 0x2000004c // 7904 + while(RS485_Comming == 0x01){ + 7862: 9460 ld.w r3, (r4, 0x0) + 7864: 3b41 cmpnei r3, 1 + 7866: 0c3e bf 0x78e2 // 78e2 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 7868: 1168 lrw r3, 0x20000454 // 7908 + 786a: 83c4 ld.b r6, (r3, 0x4) + 786c: 3e40 cmpnei r6, 0 + 786e: b861 st.w r3, (r14, 0x4) + 7870: 0845 bt 0x78fa // 78fa + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //485_DR + 7872: 11e5 lrw r7, 0x2000004c // 7904 + CK_CPU_DisAllNormalIrq(); + 7874: e3fffe63 bsr 0x753a // 753a + WRITE_HIGH_DR; //485_DR + 7878: 3107 movi r1, 7 + 787a: 9700 ld.w r0, (r7, 0x0) + 787c: e3fff686 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 7880: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7882: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 7884: b441 st.w r2, (r4, 0x4) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7886: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 7888: b4c2 st.w r6, (r4, 0x8) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 788a: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 788c: b4c3 st.w r6, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 788e: e3fffe53 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 7892: 105f lrw r2, 0x2000003c // 790c + 7894: 9200 ld.w r0, (r2, 0x0) + 7896: 9822 ld.w r1, (r14, 0x8) + 7898: 9840 ld.w r2, (r14, 0x0) + 789a: e3fff7bf bsr 0x6818 // 6818 + do{ + delay_nus(100); + 789e: 3064 movi r0, 100 + 78a0: e3fff87e bsr 0x699c // 699c + delay_cnt ++; + 78a4: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78a6: 3363 movi r3, 99 + 78a8: 654c cmphs r3, r5 + 78aa: 0c08 bf 0x78ba // 78ba + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 78ac: 9462 ld.w r3, (r4, 0x8) + 78ae: 9840 ld.w r2, (r14, 0x0) + 78b0: 648d cmplt r3, r2 + 78b2: 0bf6 bt 0x789e // 789e + 78b4: 9463 ld.w r3, (r4, 0xc) + 78b6: 648d cmplt r3, r2 + 78b8: 0bf3 bt 0x789e // 789e + + CK_CPU_DisAllNormalIrq(); + 78ba: e3fffe40 bsr 0x753a // 753a + + WRITE_LOW_DR; //485_DR + 78be: 9700 ld.w r0, (r7, 0x0) + 78c0: 3107 movi r1, 7 + 78c2: e3fff667 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 78c6: 3300 movi r3, 0 + 78c8: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 78ca: 1072 lrw r3, 0x200000c4 // 7910 + 78cc: 9340 ld.w r2, (r3, 0x0) + 78ce: 1072 lrw r3, 0x200003f4 // 7914 + 78d0: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 78d2: 9861 ld.w r3, (r14, 0x4) + 78d4: 3200 movi r2, 0 + 78d6: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 78d8: e3fffe2e bsr 0x7534 // 7534 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 78dc: 6c1b mov r0, r6 + 78de: 1403 addi r14, r14, 12 + 78e0: 1494 pop r4-r7, r15 + delay_nus(100); + 78e2: 3064 movi r0, 100 + 78e4: e3fff85c bsr 0x699c // 699c + delay_cnt ++; + 78e8: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78ea: 3364 movi r3, 100 + 78ec: 64d6 cmpne r5, r3 + 78ee: 0fbd bf 0x7868 // 7868 + REVERISE_DR; //485_DR + 78f0: 3107 movi r1, 7 + 78f2: 9600 ld.w r0, (r6, 0x0) + 78f4: e3fff652 bsr 0x6598 // 6598 + 78f8: 07b5 br 0x7862 // 7862 + return UART_BUSBUSY; //发送失败 + 78fa: 3601 movi r6, 1 + 78fc: 07f0 br 0x78dc // 78dc + 78fe: 0000 bkpt + 7900: 200000c8 .long 0x200000c8 + 7904: 2000004c .long 0x2000004c + 7908: 20000454 .long 0x20000454 + 790c: 2000003c .long 0x2000003c + 7910: 200000c4 .long 0x200000c4 + 7914: 200003f4 .long 0x200003f4 + +Disassembly of section .text.Set_GroupSend: + +00007918 : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 7918: 14d4 push r4-r7, r15 + 791a: 1422 subi r14, r14, 8 + 791c: 6d8b mov r6, r2 + 791e: 9847 ld.w r2, (r14, 0x1c) + 7920: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7922: 5943 subi r2, r1, 1 +{ + 7924: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7926: 7489 zexth r2, r2 + 7928: 3163 movi r1, 99 + 792a: 6484 cmphs r1, r2 +{ + 792c: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 792e: 0c20 bf 0x796e // 796e + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 7930: 1091 lrw r4, 0x200003f4 // 7974 + 7932: 3264 movi r2, 100 + 7934: 3100 movi r1, 0 + 7936: 6c13 mov r0, r4 + 7938: b861 st.w r3, (r14, 0x4) + 793a: e3ffe80f bsr 0x4958 // 4958 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 793e: 6c97 mov r2, r5 + 7940: 6c13 mov r0, r4 + 7942: 6c5f mov r1, r7 + 7944: e3ffe84e bsr 0x49e0 // 49e0 <__memcpy_fast> + m_send.SendLen = sled; + 7948: 3240 movi r2, 64 + 794a: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 794c: 9861 ld.w r3, (r14, 0x4) + 794e: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 7950: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 7952: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7954: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 7956: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7958: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 795a: 3201 movi r2, 1 + 795c: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 795e: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 7960: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 7962: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 7964: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 7966: 247f addi r4, 128 + 7968: 1064 lrw r3, 0x200000c4 // 7978 + 796a: 9360 ld.w r3, (r3, 0x0) + 796c: b461 st.w r3, (r4, 0x4) +} + 796e: 1402 addi r14, r14, 8 + 7970: 1494 pop r4-r7, r15 + 7972: 0000 bkpt + 7974: 200003f4 .long 0x200003f4 + 7978: 200000c4 .long 0x200000c4 + +Disassembly of section .text.Clear_SendFlag: + +0000797c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 797c: 1063 lrw r3, 0x20000454 // 7988 + 797e: 3200 movi r2, 0 + 7980: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 7982: a347 st.b r2, (r3, 0x7) +} + 7984: 783c jmp r15 + 7986: 0000 bkpt + 7988: 20000454 .long 0x20000454 + +Disassembly of section .text.BUS485_Jump_Boot: + +0000798c : + +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 798c: 1062 lrw r3, 0x20000454 // 7994 + 798e: a30c st.b r0, (r3, 0xc) +} + 7990: 783c jmp r15 + 7992: 0000 bkpt + 7994: 20000454 .long 0x20000454 + +Disassembly of section .text.BusIdle_Task: + +00007998 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 7998: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 799a: 10ae lrw r5, 0x200003f4 // 79d0 + 799c: 3460 movi r4, 96 + 799e: 6114 addu r4, r5 + 79a0: 8464 ld.b r3, (r4, 0x4) + 79a2: 3b40 cmpnei r3, 0 + 79a4: 0c15 bf 0x79ce // 79ce + 79a6: 8466 ld.b r3, (r4, 0x6) + 79a8: 3b41 cmpnei r3, 1 + 79aa: 0c12 bf 0x79ce // 79ce + { + CK_CPU_DisAllNormalIrq(); + 79ac: e3fffdc7 bsr 0x753a // 753a + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 79b0: 8465 ld.b r3, (r4, 0x5) + 79b2: 3b41 cmpnei r3, 1 + 79b4: 080b bt 0x79ca // 79ca + 79b6: 1068 lrw r3, 0x200000c4 // 79d4 + 79b8: 9340 ld.w r2, (r3, 0x0) + 79ba: 957f ld.w r3, (r5, 0x7c) + 79bc: 608e subu r2, r3 + 79be: 957c ld.w r3, (r5, 0x70) + 79c0: 2305 addi r3, 6 + 79c2: 64c8 cmphs r2, r3 + 79c4: 0c03 bf 0x79ca // 79ca + { + m_send.BusState_Flag = UART_BUSIDLE; + 79c6: 3300 movi r3, 0 + 79c8: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 79ca: e3fffdb5 bsr 0x7534 // 7534 + } +} + 79ce: 1492 pop r4-r5, r15 + 79d0: 200003f4 .long 0x200003f4 + 79d4: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BusBusy_Task: + +000079d8 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 79d8: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 79da: 1094 lrw r4, 0x200003f4 // 7a28 + 79dc: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 79de: e3fffdae bsr 0x753a // 753a + m_send.BusState_Flag = UART_BUSBUSY; + 79e2: 6150 addu r5, r4 + 79e4: 3301 movi r3, 1 + 79e6: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79e8: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 79ea: 1071 lrw r3, 0x200000c4 // 7a2c + 79ec: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79ee: 9300 ld.w r0, (r3, 0x0) + 79f0: 3380 movi r3, 128 + 79f2: 60d0 addu r3, r4 + 79f4: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 79f6: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79f8: 600e subu r0, r3 + 79fa: e3fffd8b bsr 0x7510 // 7510 <__umodsi3> + 79fe: b41c st.w r0, (r4, 0x70) + + if(READ_RX_LEVEL_STATE == 0x01){ + 7a00: 310f movi r1, 15 + 7a02: 108c lrw r4, 0x2000004c // 7a30 + 7a04: 9400 ld.w r0, (r4, 0x0) + 7a06: e3fff5d4 bsr 0x65ae // 65ae + 7a0a: 3841 cmpnei r0, 1 + 7a0c: 0806 bt 0x7a18 // 7a18 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 7a0e: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 7a10: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 7a12: e3fffd91 bsr 0x7534 // 7534 +} + 7a16: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 7a18: 9400 ld.w r0, (r4, 0x0) + 7a1a: 310f movi r1, 15 + 7a1c: e3fff5c9 bsr 0x65ae // 65ae + 7a20: 3840 cmpnei r0, 0 + 7a22: 0bf8 bt 0x7a12 // 7a12 + m_send.HighBit_Flag = 0x00; //低电平 + 7a24: 3300 movi r3, 0 + 7a26: 07f5 br 0x7a10 // 7a10 + 7a28: 200003f4 .long 0x200003f4 + 7a2c: 200000c4 .long 0x200000c4 + 7a30: 2000004c .long 0x2000004c + +Disassembly of section .text.Dbg_Println: + +00007a34 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 7a34: 1423 subi r14, r14, 12 + 7a36: b862 st.w r3, (r14, 0x8) + 7a38: b841 st.w r2, (r14, 0x4) + 7a3a: b820 st.w r1, (r14, 0x0) + 7a3c: 14d1 push r4, r15 + 7a3e: 1422 subi r14, r14, 8 + 7a40: 9864 ld.w r3, (r14, 0x10) + 7a42: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7a44: 3301 movi r3, 1 + 7a46: 1098 lrw r4, 0x200000c8 // 7aa4 + 7a48: 70c0 lsl r3, r0 + 7a4a: 9444 ld.w r2, (r4, 0x10) + 7a4c: 68c8 and r3, r2 + 7a4e: 3b40 cmpnei r3, 0 + 7a50: 0c24 bf 0x7a98 // 7a98 + SysTick_Now = SysTick_1ms; + 7a52: 1076 lrw r3, 0x200000c4 // 7aa8 + 7a54: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a56: 9446 ld.w r2, (r4, 0x18) + 7a58: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7a5a: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a5c: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7a5e: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7a60: 3020 movi r0, 32 + 7a62: b840 st.w r2, (r14, 0x0) + 7a64: 3180 movi r1, 128 + 7a66: 1052 lrw r2, 0xaf29 // 7aac + 7a68: 6010 addu r0, r4 + 7a6a: e3ffe71b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7a6e: 7441 zexth r1, r0 + 7a70: 3020 movi r0, 32 + 7a72: 6010 addu r0, r4 + 7a74: e3fffea8 bsr 0x77c4 // 77c4 + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7a78: 3020 movi r0, 32 + 7a7a: 1b05 addi r3, r14, 20 + 7a7c: 9841 ld.w r2, (r14, 0x4) + 7a7e: 3180 movi r1, 128 + 7a80: 6010 addu r0, r4 + 7a82: e3ffe73e bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 7a86: 7441 zexth r1, r0 + 7a88: 6c13 mov r0, r4 + 7a8a: 201f addi r0, 32 + 7a8c: e3fffe9c bsr 0x77c4 // 77c4 + + DBG_Printf("\r\n",2); + 7a90: 3102 movi r1, 2 + 7a92: 1008 lrw r0, 0xaf37 // 7ab0 + 7a94: e3fffe98 bsr 0x77c4 // 77c4 + + + } + +#endif +} + 7a98: 1402 addi r14, r14, 8 + 7a9a: d9ee2001 ld.w r15, (r14, 0x4) + 7a9e: 9880 ld.w r4, (r14, 0x0) + 7aa0: 1405 addi r14, r14, 20 + 7aa2: 783c jmp r15 + 7aa4: 200000c8 .long 0x200000c8 + 7aa8: 200000c4 .long 0x200000c4 + 7aac: 0000af29 .long 0x0000af29 + 7ab0: 0000af37 .long 0x0000af37 + +Disassembly of section .text.MultSend_Task: + +00007ab4 : +{ + 7ab4: 14d4 push r4-r7, r15 + 7ab6: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ab8: 5963 subi r3, r1, 1 + 7aba: 74cd zexth r3, r3 + 7abc: 3463 movi r4, 99 + 7abe: 64d0 cmphs r4, r3 +{ + 7ac0: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ac2: 0c3c bf 0x7b3a // 7b3a + if(DatSd == 0x01) + 7ac4: 3a41 cmpnei r2, 1 + 7ac6: 0c05 bf 0x7ad0 // 7ad0 + return BUSSEND_WAIT;//等待 + 7ac8: 3601 movi r6, 1 +} + 7aca: 6c1b mov r0, r6 + 7acc: 1401 addi r14, r14, 4 + 7ace: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 7ad0: 107c lrw r3, 0x200003f4 // 7b40 + 7ad2: 3760 movi r7, 96 + 7ad4: 61cc addu r7, r3 + 7ad6: 8748 ld.b r2, (r7, 0x8) + 7ad8: 878a ld.b r4, (r7, 0xa) + 7ada: 6508 cmphs r2, r4 + 7adc: 0829 bt 0x7b2e // 7b2e + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 7ade: 3480 movi r4, 128 + 7ae0: 10b9 lrw r5, 0x200000c4 // 7b44 + 7ae2: 610c addu r4, r3 + 7ae4: 9401 ld.w r0, (r4, 0x4) + 7ae6: 95c0 ld.w r6, (r5, 0x0) + 7ae8: 6182 subu r6, r0 + 7aea: 931e ld.w r0, (r3, 0x78) + 7aec: 6418 cmphs r6, r0 + 7aee: 081a bt 0x7b22 // 7b22 + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 7af0: 3a40 cmpnei r2, 0 + 7af2: 0c07 bf 0x7b00 // 7b00 + 7af4: 9540 ld.w r2, (r5, 0x0) + 7af6: 94c0 ld.w r6, (r4, 0x0) + 7af8: 609a subu r2, r6 + 7afa: 937d ld.w r3, (r3, 0x74) + 7afc: 64c8 cmphs r2, r3 + 7afe: 0fe5 bf 0x7ac8 // 7ac8 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 7b00: 9800 ld.w r0, (r14, 0x0) + 7b02: e3fffea9 bsr 0x7854 // 7854 + 7b06: 3840 cmpnei r0, 0 + 7b08: 6d83 mov r6, r0 + 7b0a: 0bdf bt 0x7ac8 // 7ac8 + m_send.ResendCnt++; + 7b0c: 8748 ld.b r2, (r7, 0x8) + 7b0e: 2200 addi r2, 1 + m_send.ASend_Tick = SysTick_1ms; + 7b10: 9560 ld.w r3, (r5, 0x0) + m_send.ResendCnt++; + 7b12: 7488 zextb r2, r2 + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b14: 102d lrw r1, 0xaf3a // 7b48 + 7b16: 3002 movi r0, 2 + m_send.ASend_Tick = SysTick_1ms; + 7b18: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 7b1a: a748 st.b r2, (r7, 0x8) + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b1c: e3ffff8c bsr 0x7a34 // 7a34 + 7b20: 07d5 br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"data end"); + 7b22: 102b lrw r1, 0xaf4d // 7b4c + 7b24: 3002 movi r0, 2 + 7b26: e3ffff87 bsr 0x7a34 // 7a34 + return DATA_END;//数据有效期结束 + 7b2a: 3602 movi r6, 2 + 7b2c: 07cf br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + 7b2e: 1029 lrw r1, 0xaf56 // 7b50 + 7b30: 3002 movi r0, 2 + 7b32: e3ffff81 bsr 0x7a34 // 7a34 + return RETRY_END;//没有重发次数 + 7b36: 3603 movi r6, 3 + 7b38: 07c9 br 0x7aca // 7aca + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7b3a: 3604 movi r6, 4 + 7b3c: 07c7 br 0x7aca // 7aca + 7b3e: 0000 bkpt + 7b40: 200003f4 .long 0x200003f4 + 7b44: 200000c4 .long 0x200000c4 + 7b48: 0000af3a .long 0x0000af3a + 7b4c: 0000af4d .long 0x0000af4d + 7b50: 0000af56 .long 0x0000af56 + +Disassembly of section .text.BUS485Send_Task: + +00007b54 : +{ + 7b54: 14d1 push r4, r15 + if(m_send.ASend_Flag == 0x01) + 7b56: 1093 lrw r4, 0x20000454 // 7ba0 + 7b58: 8469 ld.b r3, (r4, 0x9) + 7b5a: 3b41 cmpnei r3, 1 + 7b5c: 0821 bt 0x7b9e // 7b9e + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 7b5e: 1072 lrw r3, 0x20000434 // 7ba4 + 7b60: 8b37 ld.h r1, (r3, 0x2e) + 7b62: 3201 movi r2, 1 + 7b64: 1011 lrw r0, 0x200003f4 // 7ba8 + 7b66: e3ffffa7 bsr 0x7ab4 // 7ab4 + 7b6a: a407 st.b r0, (r4, 0x7) + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 7b6c: 2801 subi r0, 2 + 7b6e: 7400 zextb r0, r0 + 7b70: 3801 cmphsi r0, 2 + 7b72: 0816 bt 0x7b9e // 7b9e + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + 7b74: 102e lrw r1, 0xaf63 // 7bac + 7b76: 3002 movi r0, 2 + 7b78: e3ffff5e bsr 0x7a34 // 7a34 + m_send.ASend_Flag = 0x00; //清除发送标志位 + 7b7c: 3300 movi r3, 0 + 7b7e: a469 st.b r3, (r4, 0x9) + if(m_send.Jump_Flag == 0x01){ + 7b80: 846c ld.b r3, (r4, 0xc) + 7b82: 3b41 cmpnei r3, 1 + 7b84: 080d bt 0x7b9e // 7b9e + Dbg_Println(DBG_BIT_Debug_STATUS,"Jump Boot"); + 7b86: 102b lrw r1, 0xaf6c // 7bb0 + 7b88: 3002 movi r0, 2 + 7b8a: e3ffff55 bsr 0x7a34 // 7a34 + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 7b8e: 106a lrw r3, 0x2000005c // 7bb4 + 7b90: 104a lrw r2, 0x200006ec // 7bb8 + 7b92: 9360 ld.w r3, (r3, 0x0) + 7b94: 924d ld.w r2, (r2, 0x34) + 7b96: 23ff addi r3, 256 + 7b98: b343 st.w r2, (r3, 0xc) + SYSCON_Software_Reset(); + 7b9a: e3fff30b bsr 0x61b0 // 61b0 +} + 7b9e: 1491 pop r4, r15 + 7ba0: 20000454 .long 0x20000454 + 7ba4: 20000434 .long 0x20000434 + 7ba8: 200003f4 .long 0x200003f4 + 7bac: 0000af63 .long 0x0000af63 + 7bb0: 0000af6c .long 0x0000af6c + 7bb4: 2000005c .long 0x2000005c + 7bb8: 200006ec .long 0x200006ec + +Disassembly of section .text.Dbg_Print_Buff: + +00007bbc : + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bbc: 14d4 push r4-r7, r15 + 7bbe: 1422 subi r14, r14, 8 + 7bc0: 6dcf mov r7, r3 +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bc2: 109b lrw r4, 0x200000c8 // 7c2c + 7bc4: 3301 movi r3, 1 +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bc6: 6d8b mov r6, r2 + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bc8: 70c0 lsl r3, r0 + 7bca: 9444 ld.w r2, (r4, 0x10) + 7bcc: 68c8 and r3, r2 + 7bce: 3b40 cmpnei r3, 0 + 7bd0: 0c1f bf 0x7c0e // 7c0e + SysTick_Now = SysTick_1ms; + 7bd2: 1078 lrw r3, 0x200000c4 // 7c30 + 7bd4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bd6: 9446 ld.w r2, (r4, 0x18) + 7bd8: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7bda: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bdc: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7bde: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7be0: 3020 movi r0, 32 + 7be2: b840 st.w r2, (r14, 0x0) + 7be4: 3180 movi r1, 128 + 7be6: 1054 lrw r2, 0xaf29 // 7c34 + 7be8: 6010 addu r0, r4 + 7bea: e3ffe65b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7bee: 7441 zexth r1, r0 + 7bf0: 3020 movi r0, 32 + 7bf2: 6010 addu r0, r4 + 7bf4: e3fffde8 bsr 0x77c4 // 77c4 + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7bf8: 1070 lrw r3, 0xaf76 // 7c38 + DBG_Printf(Dbg_Buffer,str_offset); + 7bfa: 6d5b mov r5, r6 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7bfc: b861 st.w r3, (r14, 0x4) + 7bfe: 241f addi r4, 32 + for (uint32_t i = 0; i < len; i++) { + 7c00: 5d79 subu r3, r5, r6 + 7c02: 65cc cmphs r3, r7 + 7c04: 0c07 bf 0x7c12 // 7c12 + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + 7c06: 3102 movi r1, 2 + 7c08: 100d lrw r0, 0xaf37 // 7c3c + 7c0a: e3fffddd bsr 0x77c4 // 77c4 + } + +#endif +} + 7c0e: 1402 addi r14, r14, 8 + 7c10: 1494 pop r4-r7, r15 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7c12: 8560 ld.b r3, (r5, 0x0) + 7c14: 9841 ld.w r2, (r14, 0x4) + 7c16: 3180 movi r1, 128 + 7c18: 6c13 mov r0, r4 + 7c1a: e3ffe643 bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7c1e: 7441 zexth r1, r0 + 7c20: 6c13 mov r0, r4 + 7c22: e3fffdd1 bsr 0x77c4 // 77c4 + 7c26: 2500 addi r5, 1 + 7c28: 07ec br 0x7c00 // 7c00 + 7c2a: 0000 bkpt + 7c2c: 200000c8 .long 0x200000c8 + 7c30: 200000c4 .long 0x200000c4 + 7c34: 0000af29 .long 0x0000af29 + 7c38: 0000af76 .long 0x0000af76 + 7c3c: 0000af37 .long 0x0000af37 + +Disassembly of section .text.UART1_TASK: + +00007c40 : +void UART1_TASK(void){ + 7c40: 14d2 push r4-r5, r15 + if(g_uart1.Receiving == 0x01){ + 7c42: 109d lrw r4, 0x200003e0 // 7cb4 + 7c44: 8460 ld.b r3, (r4, 0x0) + 7c46: 3b41 cmpnei r3, 1 + 7c48: 082f bt 0x7ca6 // 7ca6 + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + 7c4a: 10bc lrw r5, 0x200000c4 // 7cb8 + 7c4c: 9560 ld.w r3, (r5, 0x0) + 7c4e: 9443 ld.w r2, (r4, 0xc) + 7c50: 60ca subu r3, r2 + 7c52: 9442 ld.w r2, (r4, 0x8) + 7c54: 64c8 cmphs r2, r3 + 7c56: 0828 bt 0x7ca6 // 7ca6 + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7c58: e3fff2a6 bsr 0x61a4 // 61a4 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c5c: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c5e: 8c42 ld.h r2, (r4, 0x4) + 7c60: 1037 lrw r1, 0x20000360 // 7cbc + 7c62: 1018 lrw r0, 0x200003a0 // 7cc0 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c64: b463 st.w r3, (r4, 0xc) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c66: e3ffe6bd bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart1.DealLen = g_uart1.RecvLen; + 7c6a: 8c62 ld.h r3, (r4, 0x4) + 7c6c: ac61 st.h r3, (r4, 0x2) + g_uart1.RecvLen = 0; + 7c6e: 3300 movi r3, 0 + 7c70: ac62 st.h r3, (r4, 0x4) + g_uart1.Receiving = 0; + 7c72: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7c74: e3fff292 bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + 7c78: 8c41 ld.h r2, (r4, 0x2) + 7c7a: 1033 lrw r1, 0xaf7c // 7cc4 + 7c7c: 3000 movi r0, 0 + 7c7e: e3fffedb bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); + 7c82: 8c61 ld.h r3, (r4, 0x2) + 7c84: 104f lrw r2, 0x200003a0 // 7cc0 + 7c86: 1031 lrw r1, 0xaf8e // 7cc8 + 7c88: 3000 movi r0, 0 + 7c8a: e3ffff99 bsr 0x7bbc // 7bbc + if(g_uart1.processing_cf != NULL){ + 7c8e: 9464 ld.w r3, (r4, 0x10) + 7c90: 3b40 cmpnei r3, 0 + 7c92: 080b bt 0x7ca8 // 7ca8 + Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); + 7c94: 8c21 ld.h r1, (r4, 0x2) + 7c96: 100b lrw r0, 0x200003a0 // 7cc0 + 7c98: e00011cc bsr 0xa030 // a030 + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + 7c9c: 3240 movi r2, 64 + 7c9e: 3100 movi r1, 0 + 7ca0: 1008 lrw r0, 0x200003a0 // 7cc0 + 7ca2: e3ffe65b bsr 0x4958 // 4958 <__memset_fast> +} + 7ca6: 1492 pop r4-r5, r15 + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + 7ca8: 8c21 ld.h r1, (r4, 0x2) + 7caa: 1006 lrw r0, 0x200003a0 // 7cc0 + 7cac: 7bcd jsr r3 + if(rev != 0x00) + 7cae: 3840 cmpnei r0, 0 + 7cb0: 0ff6 bf 0x7c9c // 7c9c + 7cb2: 07f1 br 0x7c94 // 7c94 + 7cb4: 200003e0 .long 0x200003e0 + 7cb8: 200000c4 .long 0x200000c4 + 7cbc: 20000360 .long 0x20000360 + 7cc0: 200003a0 .long 0x200003a0 + 7cc4: 0000af7c .long 0x0000af7c + 7cc8: 0000af8e .long 0x0000af8e + +Disassembly of section .text.UART2_TASK: + +00007ccc : +void UART2_TASK(void){ + 7ccc: 14d2 push r4-r5, r15 + if(g_uart.Receiving == 0x01){ + 7cce: 1180 lrw r4, 0x200002b8 // 7d4c + 7cd0: 8460 ld.b r3, (r4, 0x0) + 7cd2: 3b41 cmpnei r3, 1 + 7cd4: 0835 bt 0x7d3e // 7d3e + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 7cd6: 10bf lrw r5, 0x200000c4 // 7d50 + 7cd8: 9560 ld.w r3, (r5, 0x0) + 7cda: 9443 ld.w r2, (r4, 0xc) + 7cdc: 60ca subu r3, r2 + 7cde: 9442 ld.w r2, (r4, 0x8) + 7ce0: 64c8 cmphs r2, r3 + 7ce2: 082e bt 0x7d3e // 7d3e + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7ce4: e3fff260 bsr 0x61a4 // 61a4 + g_uart.RecvIdleTiming = SysTick_1ms; + 7ce8: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7cea: 8c42 ld.h r2, (r4, 0x4) + 7cec: 103a lrw r1, 0x20000238 // 7d54 + 7cee: 101b lrw r0, 0x20000278 // 7d58 + g_uart.RecvIdleTiming = SysTick_1ms; + 7cf0: b463 st.w r3, (r4, 0xc) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7cf2: e3ffe677 bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart.DealLen = g_uart.RecvLen; + 7cf6: 8c62 ld.h r3, (r4, 0x4) + 7cf8: ac61 st.h r3, (r4, 0x2) + g_uart.RecvLen = 0; + 7cfa: 3300 movi r3, 0 + 7cfc: ac62 st.h r3, (r4, 0x4) + g_uart.Receiving = 0; + 7cfe: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7d00: e3fff24c bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 revLen %d", g_uart.DealLen); + 7d04: 8c41 ld.h r2, (r4, 0x2) + 7d06: 1036 lrw r1, 0xaf99 // 7d5c + 7d08: 3000 movi r0, 0 + 7d0a: e3fffe95 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 rev:%s", g_uart.DealBuffer); + 7d0e: 1053 lrw r2, 0x20000278 // 7d58 + 7d10: 1034 lrw r1, 0xafa9 // 7d60 + 7d12: 3000 movi r0, 0 + 7d14: e3fffe90 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart.DealBuffer,g_uart.DealLen); + 7d18: 8c61 ld.h r3, (r4, 0x2) + 7d1a: 1050 lrw r2, 0x20000278 // 7d58 + 7d1c: 1032 lrw r1, 0xafb6 // 7d64 + 7d1e: 3000 movi r0, 0 + 7d20: e3ffff4e bsr 0x7bbc // 7bbc + if(g_uart.processing_cf != NULL){ + 7d24: 9464 ld.w r3, (r4, 0x10) + 7d26: 3b40 cmpnei r3, 0 + 7d28: 080c bt 0x7d40 // 7d40 + BT_Uart_Packing(g_uart.DealBuffer,g_uart.DealLen,6); + 7d2a: 8422 ld.b r1, (r4, 0x2) + 7d2c: 3206 movi r2, 6 + 7d2e: 100b lrw r0, 0x20000278 // 7d58 + 7d30: e0000c88 bsr 0x9640 // 9640 + memset(g_uart.DealBuffer,0,USART_BUFFER_SIZE); + 7d34: 3240 movi r2, 64 + 7d36: 3100 movi r1, 0 + 7d38: 1008 lrw r0, 0x20000278 // 7d58 + 7d3a: e3ffe60f bsr 0x4958 // 4958 <__memset_fast> +} + 7d3e: 1492 pop r4-r5, r15 + rev = g_uart.processing_cf(g_uart.DealBuffer,g_uart.DealLen); + 7d40: 8c21 ld.h r1, (r4, 0x2) + 7d42: 1006 lrw r0, 0x20000278 // 7d58 + 7d44: 7bcd jsr r3 + if(rev != 0x00) + 7d46: 3840 cmpnei r0, 0 + 7d48: 0ff6 bf 0x7d34 // 7d34 + 7d4a: 07f0 br 0x7d2a // 7d2a + 7d4c: 200002b8 .long 0x200002b8 + 7d50: 200000c4 .long 0x200000c4 + 7d54: 20000238 .long 0x20000238 + 7d58: 20000278 .long 0x20000278 + 7d5c: 0000af99 .long 0x0000af99 + 7d60: 0000afa9 .long 0x0000afa9 + 7d64: 0000afb6 .long 0x0000afb6 + +Disassembly of section .text.Dbg_BT_Println: + +00007d68 : + +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...){ + 7d68: 1423 subi r14, r14, 12 + 7d6a: b862 st.w r3, (r14, 0x8) + 7d6c: b841 st.w r2, (r14, 0x4) + 7d6e: b820 st.w r1, (r14, 0x0) + 7d70: 14d2 push r4-r5, r15 + 7d72: 1421 subi r14, r14, 4 + 7d74: 9864 ld.w r3, (r14, 0x10) + 7d76: b860 st.w r3, (r14, 0x0) +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7d78: 3301 movi r3, 1 + 7d7a: 1091 lrw r4, 0x200000c8 // 7dbc + 7d7c: 70c0 lsl r3, r0 + 7d7e: 9444 ld.w r2, (r4, 0x10) + 7d80: 68c8 and r3, r2 + 7d82: 3b40 cmpnei r3, 0 + 7d84: 0c14 bf 0x7dac // 7dac + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7d86: 3020 movi r0, 32 + 7d88: 1b05 addi r3, r14, 20 + 7d8a: 9840 ld.w r2, (r14, 0x0) + 7d8c: 3180 movi r1, 128 + 7d8e: 6010 addu r0, r4 + 7d90: e3ffe5b7 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_BTPrintf(Dbg_Buffer,str_offset); + 7d94: 10ab lrw r5, 0x20000038 // 7dc0 + 7d96: 6c53 mov r1, r4 + 7d98: 7481 zexth r2, r0 + 7d9a: 211f addi r1, 32 + 7d9c: 9500 ld.w r0, (r5, 0x0) + 7d9e: e3fff53d bsr 0x6818 // 6818 + + DBG_BTPrintf("\r\n",2); + 7da2: 9500 ld.w r0, (r5, 0x0) + 7da4: 3202 movi r2, 2 + 7da6: 1028 lrw r1, 0xaf37 // 7dc4 + 7da8: e3fff538 bsr 0x6818 // 6818 + } + +#endif +} + 7dac: 1401 addi r14, r14, 4 + 7dae: d9ee2002 ld.w r15, (r14, 0x8) + 7db2: 98a1 ld.w r5, (r14, 0x4) + 7db4: 9880 ld.w r4, (r14, 0x0) + 7db6: 1406 addi r14, r14, 24 + 7db8: 783c jmp r15 + 7dba: 0000 bkpt + 7dbc: 200000c8 .long 0x200000c8 + 7dc0: 20000038 .long 0x20000038 + 7dc4: 0000af37 .long 0x0000af37 + +Disassembly of section .text.DIP_GetSwitchState: + +00007dc8 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 7dc8: 14d0 push r15 + U8_T val = 0; + + switch (i) + 7dca: 3841 cmpnei r0, 1 + 7dcc: 0c0d bf 0x7de6 // 7de6 + 7dce: 3840 cmpnei r0, 0 + 7dd0: 0c05 bf 0x7dda // 7dda + 7dd2: 3842 cmpnei r0, 2 + 7dd4: 0c0d bf 0x7dee // 7dee + U8_T val = 0; + 7dd6: 3000 movi r0, 0 + 7dd8: 0406 br 0x7de4 // 7de4 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 7dda: 1068 lrw r3, 0x2000004c // 7df8 + 7ddc: 310a movi r1, 10 + 7dde: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 7de0: e3fff3e7 bsr 0x65ae // 65ae + break; + + } + return val; +} + 7de4: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 7de6: 1065 lrw r3, 0x2000004c // 7df8 + 7de8: 3109 movi r1, 9 + 7dea: 9300 ld.w r0, (r3, 0x0) + 7dec: 07fa br 0x7de0 // 7de0 + val = GPIO_Read_Status(GPIOA0,8); + 7dee: 1063 lrw r3, 0x2000004c // 7df8 + 7df0: 3108 movi r1, 8 + 7df2: 9300 ld.w r0, (r3, 0x0) + 7df4: 07f6 br 0x7de0 // 7de0 + 7df6: 0000 bkpt + 7df8: 2000004c .long 0x2000004c + +Disassembly of section .text.DIP_Switch_Init: + +00007dfc : +void DIP_Switch_Init(void){ + 7dfc: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 7dfe: 1182 lrw r4, 0x2000004c // 7e84 + 7e00: 3201 movi r2, 1 + 7e02: 9400 ld.w r0, (r4, 0x0) + 7e04: 310a movi r1, 10 + 7e06: e3fff23b bsr 0x627c // 627c + GPIO_Init(GPIOA0,9,Intput); + 7e0a: 9400 ld.w r0, (r4, 0x0) + 7e0c: 3201 movi r2, 1 + 7e0e: 3109 movi r1, 9 + 7e10: e3fff236 bsr 0x627c // 627c + GPIO_Init(GPIOA0,8,Intput); + 7e14: 3201 movi r2, 1 + 7e16: 9400 ld.w r0, (r4, 0x0) + 7e18: 3108 movi r1, 8 + 7e1a: e3fff231 bsr 0x627c // 627c + GPIO_PullHigh_Init(GPIOA0,10); + 7e1e: 9400 ld.w r0, (r4, 0x0) + 7e20: 310a movi r1, 10 + 7e22: e3fff29d bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,9); + 7e26: 9400 ld.w r0, (r4, 0x0) + 7e28: 3109 movi r1, 9 + 7e2a: e3fff299 bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,8); + 7e2e: 9400 ld.w r0, (r4, 0x0) + 7e30: 3108 movi r1, 8 + 7e32: e3fff295 bsr 0x635c // 635c + memset(&g_Dip,0,sizeof(DIP_t)); + 7e36: 3214 movi r2, 20 + 7e38: 3100 movi r1, 0 + 7e3a: 1014 lrw r0, 0x2000047c // 7e88 + 7e3c: e3ffe58e bsr 0x4958 // 4958 <__memset_fast> + delay_nms(20); + 7e40: 3014 movi r0, 20 + 7e42: e3fff597 bsr 0x6970 // 6970 + 7e46: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e48: 10b0 lrw r5, 0x2000047c // 7e88 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 7e4a: 7410 zextb r0, r4 + 7e4c: e3ffffbe bsr 0x7dc8 // 7dc8 + 7e50: 3840 cmpnei r0, 0 + 7e52: 0807 bt 0x7e60 // 7e60 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e54: 3301 movi r3, 1 + 7e56: 70d0 lsl r3, r4 + 7e58: 6c8f mov r2, r3 + 7e5a: 9563 ld.w r3, (r5, 0xc) + 7e5c: 6cc8 or r3, r2 + 7e5e: b563 st.w r3, (r5, 0xc) + 7e60: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 7e62: 3c43 cmpnei r4, 3 + 7e64: 0bf3 bt 0x7e4a // 7e4a + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e66: 1069 lrw r3, 0x2000047c // 7e88 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e68: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e6a: 9343 ld.w r2, (r3, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e6c: 6848 and r1, r2 + 7e6e: a326 st.b r1, (r3, 0x6) + g_Dip.Dev_Port = Passive_Port; + 7e70: 3100 movi r1, 0 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e72: b344 st.w r2, (r3, 0x10) + g_Dip.Dev_Port = Passive_Port; + 7e74: a327 st.b r1, (r3, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); + 7e76: 3000 movi r0, 0 + 7e78: 3300 movi r3, 0 + 7e7a: 1025 lrw r1, 0xafc1 // 7e8c + 7e7c: e3fffddc bsr 0x7a34 // 7a34 +} + 7e80: 1492 pop r4-r5, r15 + 7e82: 0000 bkpt + 7e84: 2000004c .long 0x2000004c + 7e88: 2000047c .long 0x2000047c + 7e8c: 0000afc1 .long 0x0000afc1 + +Disassembly of section .text.DIP_ScanTask: + +00007e90 : + +void DIP_ScanTask(void) +{ + 7e90: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 7e92: 1122 lrw r1, 0x200000c4 // 7f18 + 7e94: 1142 lrw r2, 0x20000168 // 7f1c + 7e96: 11a3 lrw r5, 0x2000047c // 7f20 + 7e98: 9200 ld.w r0, (r2, 0x0) + 7e9a: 9160 ld.w r3, (r1, 0x0) + 7e9c: 60c2 subu r3, r0 + 7e9e: 3b14 cmphsi r3, 21 + 7ea0: 0806 bt 0x7eac // 7eac + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 7ea2: 9543 ld.w r2, (r5, 0xc) + 7ea4: 9564 ld.w r3, (r5, 0x10) + 7ea6: 64ca cmpne r2, r3 + 7ea8: 082e bt 0x7f04 // 7f04 + g_Dip.addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + } + +} + 7eaa: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 7eac: 9160 ld.w r3, (r1, 0x0) + 7eae: b260 st.w r3, (r2, 0x0) + 7eb0: 6d17 mov r4, r5 + 7eb2: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7eb4: 7418 zextb r0, r6 + 7eb6: e3ffff89 bsr 0x7dc8 // 7dc8 + 7eba: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 7ebc: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7ebe: 0814 bt 0x7ee6 // 7ee6 + g_Dip.delayCnt_OFF[i] = 0; + 7ec0: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 7ec2: 8460 ld.b r3, (r4, 0x0) + 7ec4: 3b04 cmphsi r3, 5 + 7ec6: 0808 bt 0x7ed6 // 7ed6 + g_Dip.delayCnt_ON[i]++; + 7ec8: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 7eca: a460 st.b r3, (r4, 0x0) + 7ecc: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 7ece: 3e43 cmpnei r6, 3 + 7ed0: 2400 addi r4, 1 + 7ed2: 0bf1 bt 0x7eb4 // 7eb4 + 7ed4: 07e7 br 0x7ea2 // 7ea2 + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 7ed6: 3301 movi r3, 1 + 7ed8: 70d8 lsl r3, r6 + 7eda: 6c8f mov r2, r3 + 7edc: 9563 ld.w r3, (r5, 0xc) + 7ede: 6cc8 or r3, r2 + 7ee0: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_ON[i] = 0; + 7ee2: 3300 movi r3, 0 + 7ee4: 07f3 br 0x7eca // 7eca + g_Dip.delayCnt_ON[i] = 0; + 7ee6: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 7ee8: 8463 ld.b r3, (r4, 0x3) + 7eea: 3b04 cmphsi r3, 5 + 7eec: 0804 bt 0x7ef4 // 7ef4 + g_Dip.delayCnt_OFF[i]++; + 7eee: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 7ef0: a463 st.b r3, (r4, 0x3) + 7ef2: 07ed br 0x7ecc // 7ecc + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 7ef4: 3300 movi r3, 0 + 7ef6: 2b01 subi r3, 2 + 7ef8: 9543 ld.w r2, (r5, 0xc) + 7efa: 70db rotl r3, r6 + 7efc: 68c8 and r3, r2 + 7efe: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_OFF[i] = 0; + 7f00: 3300 movi r3, 0 + 7f02: 07f7 br 0x7ef0 // 7ef0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f04: 3307 movi r3, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7f06: b544 st.w r2, (r5, 0x10) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f08: 3000 movi r0, 0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f0a: 688c and r2, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f0c: 1026 lrw r1, 0xafd8 // 7f24 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f0e: a546 st.b r2, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f10: e3fffd92 bsr 0x7a34 // 7a34 +} + 7f14: 07cb br 0x7eaa // 7eaa + 7f16: 0000 bkpt + 7f18: 200000c4 .long 0x200000c4 + 7f1c: 20000168 .long 0x20000168 + 7f20: 2000047c .long 0x2000047c + 7f24: 0000afd8 .long 0x0000afd8 + +Disassembly of section .text.EEPROM_CheckSum: + +00007f28 : +E_MCU_DEV_INFO g_mcu_dev; +ENERGY_SAVE_PARA e_save; +ENERGY_SAVE eng_info; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 7f28: 6cc3 mov r3, r0 + 7f2a: 6040 addu r1, r0 + U8_T data_sum = 0; + 7f2c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 7f32: 783c jmp r15 + data_sum += data[i]; + 7f34: 8340 ld.b r2, (r3, 0x0) + 7f36: 6008 addu r0, r2 + 7f38: 7400 zextb r0, r0 + 7f3a: 2300 addi r3, 1 + 7f3c: 07f9 br 0x7f2e // 7f2e + +Disassembly of section .text.EEOROM_ENERGY_ReadSet: + +00007f40 : +* Description : 读取电能检测参数 +* Parameter : +* info :读取参数指针 +*******************************************************************/ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info) +{ + 7f40: 14d1 push r4, r15 + 7f42: 142f subi r14, r14, 60 + 7f44: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 7f46: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 7f48: 3232 movi r2, 50 + 7f4a: 3100 movi r1, 0 + 7f4c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7f4e: b860 st.w r3, (r14, 0x0) + 7f50: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 7f54: e3ffe502 bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr,4,read_info); + 7f58: 6cbb mov r2, r14 + 7f5a: 3104 movi r1, 4 + 7f5c: 111f lrw r0, 0x10000180 // 8058 + 7f5e: e3fff4d1 bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_ENERGY_SAVE_FLAG){ + 7f62: d84e0000 ld.b r2, (r14, 0x0) + 7f66: 33a6 movi r3, 166 + 7f68: 64ca cmpne r2, r3 + 7f6a: 0c04 bf 0x7f72 // 7f72 + return 0x00; + } + } + } + + return 0x01; + 7f6c: 3001 movi r0, 1 + +} + 7f6e: 140f addi r14, r14, 60 + 7f70: 1491 pop r4, r15 + read_len |= read_info[1]; + 7f72: d82e0002 ld.b r1, (r14, 0x2) + 7f76: d86e0001 ld.b r3, (r14, 0x1) + 7f7a: 4128 lsli r1, r1, 8 + 7f7c: 6c4c or r1, r3 + if(read_len <= EEPROM_ENERGY_SIZE){ + 7f7e: 3332 movi r3, 50 + 7f80: 644c cmphs r3, r1 + 7f82: 0ff5 bf 0x7f6c // 7f6c + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr+EEPROM_Offset_Data,read_len,para_data); + 7f84: 1a02 addi r2, r14, 8 + 7f86: 1116 lrw r0, 0x10000184 // 805c + 7f88: e3fff4bc bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE_PARA)) == read_info[3]){ + 7f8c: 312c movi r1, 44 + 7f8e: 1802 addi r0, r14, 8 + 7f90: e3ffffcc bsr 0x7f28 // 7f28 + 7f94: d86e0003 ld.b r3, (r14, 0x3) + 7f98: 640e cmpne r3, r0 + 7f9a: 0be9 bt 0x7f6c // 7f6c + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE_PARA)); + 7f9c: 322c movi r2, 44 + 7f9e: 1902 addi r1, r14, 8 + 7fa0: 6c13 mov r0, r4 + 7fa2: e3ffe51f bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fa6: 118f lrw r4, 0x20000490 // 8060 + SYSCON_IWDCNT_Reload(); + 7fa8: e3fff072 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fac: 9400 ld.w r0, (r4, 0x0) + 7fae: e3ffdd47 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fb2: 6c83 mov r2, r0 + 7fb4: 6cc7 mov r3, r1 + 7fb6: 3000 movi r0, 0 + 7fb8: 112b lrw r1, 0xafe4 // 8064 + 7fba: e3fffd3d bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K1:%f",e_save.i_k1_val); + 7fbe: 9401 ld.w r0, (r4, 0x4) + 7fc0: e3ffdd3e bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fc4: 6c83 mov r2, r0 + 7fc6: 6cc7 mov r3, r1 + 7fc8: 3000 movi r0, 0 + 7fca: 1128 lrw r1, 0xafef // 8068 + 7fcc: e3fffd34 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K2:%f",e_save.i_k2_val); + 7fd0: 9402 ld.w r0, (r4, 0x8) + 7fd2: e3ffdd35 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fd6: 6c83 mov r2, r0 + 7fd8: 6cc7 mov r3, r1 + 7fda: 3000 movi r0, 0 + 7fdc: 1124 lrw r1, 0xaffb // 806c + 7fde: e3fffd2b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_K:%f",e_save.p_k_val); + 7fe2: 9403 ld.w r0, (r4, 0xc) + 7fe4: e3ffdd2c bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fe8: 6c83 mov r2, r0 + 7fea: 6cc7 mov r3, r1 + 7fec: 3000 movi r0, 0 + 7fee: 1121 lrw r1, 0xb007 // 8070 + 7ff0: e3fffd22 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_OffSet:%f",e_save.i_OffSetVal); + 7ff4: 9404 ld.w r0, (r4, 0x10) + 7ff6: e3ffdd23 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7ffa: 6c83 mov r2, r0 + 7ffc: 6cc7 mov r3, r1 + 7ffe: 3000 movi r0, 0 + 8000: 103d lrw r1, 0xb012 // 8074 + 8002: e3fffd19 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_OffSet:%f",e_save.p_OffSetVal); + 8006: 9405 ld.w r0, (r4, 0x14) + 8008: e3ffdd1a bsr 0x3a3c // 3a3c <__extendsfdf2> + 800c: 6cc7 mov r3, r1 + 800e: 6c83 mov r2, r0 + 8010: 103a lrw r1, 0xb022 // 8078 + 8012: 3000 movi r0, 0 + 8014: e3fffd10 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 8018: e3fff03a bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_max:%d",e_save.eng_save_max); + 801c: 9446 ld.w r2, (r4, 0x18) + 801e: 3000 movi r0, 0 + 8020: 1037 lrw r1, 0xb032 // 807c + 8022: e3fffd09 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_offset:%d",e_save.eng_save_offset); + 8026: 9447 ld.w r2, (r4, 0x1c) + 8028: 3000 movi r0, 0 + 802a: 1036 lrw r1, 0xb042 // 8080 + 802c: e3fffd04 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Collect_Tim:%d",e_save.Collect_Tim); + 8030: 9448 ld.w r2, (r4, 0x20) + 8032: 3000 movi r0, 0 + 8034: 1034 lrw r1, 0xb055 // 8084 + 8036: e3fffcff bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Report_Tim:%d",e_save.Report_Tim); + 803a: 9449 ld.w r2, (r4, 0x24) + 803c: 3000 movi r0, 0 + 803e: 1033 lrw r1, 0xb068 // 8088 + 8040: e3fffcfa bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 8044: 3000 movi r0, 0 + 8046: 944a ld.w r2, (r4, 0x28) + 8048: 1031 lrw r1, 0xb07a // 808c + 804a: e3fffcf5 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 804e: e3fff01f bsr 0x608c // 608c + return 0x00; + 8052: 3000 movi r0, 0 + 8054: 078d br 0x7f6e // 7f6e + 8056: 0000 bkpt + 8058: 10000180 .long 0x10000180 + 805c: 10000184 .long 0x10000184 + 8060: 20000490 .long 0x20000490 + 8064: 0000afe4 .long 0x0000afe4 + 8068: 0000afef .long 0x0000afef + 806c: 0000affb .long 0x0000affb + 8070: 0000b007 .long 0x0000b007 + 8074: 0000b012 .long 0x0000b012 + 8078: 0000b022 .long 0x0000b022 + 807c: 0000b032 .long 0x0000b032 + 8080: 0000b042 .long 0x0000b042 + 8084: 0000b055 .long 0x0000b055 + 8088: 0000b068 .long 0x0000b068 + 808c: 0000b07a .long 0x0000b07a + +Disassembly of section .text.EEOROM_ENERGY_WriteSet: + +00008090 : +/******************************************************************************* +* Function Name : EEOROM_ENERGY_WriteSet +* Description : 将电能设置参数写入到EEPROM中 +*******************************************************************************/ +U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info) +{ + 8090: 14d0 push r15 + 8092: 142e subi r14, r14, 56 + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(ENERGY_SAVE_PARA); + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 8094: 3300 movi r3, 0 + 8096: 2b59 subi r3, 90 + 8098: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 809c: 332c movi r3, 44 + 809e: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 80a2: 3300 movi r3, 0 + 80a4: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80a8: 1b01 addi r3, r14, 4 +{ + 80aa: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80ac: 322c movi r2, 44 + 80ae: 6c0f mov r0, r3 + 80b0: e3ffe498 bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 80b4: 312c movi r1, 44 + 80b6: e3ffff39 bsr 0x7f28 // 7f28 + 80ba: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ENERGE_PARA_SaveAddr,save_len,save_data); + 80be: 6cbb mov r2, r14 + 80c0: 3130 movi r1, 48 + 80c2: 1004 lrw r0, 0x10000180 // 80d0 + 80c4: e3fff3ce bsr 0x6860 // 6860 + + return 0; +} + 80c8: 3000 movi r0, 0 + 80ca: 140e addi r14, r14, 56 + 80cc: 1490 pop r15 + 80ce: 0000 bkpt + 80d0: 10000180 .long 0x10000180 + +Disassembly of section .text.EEPROM_ENERGY_Validate: + +000080d4 : +/******************************************************************************* +* Function Name : EEPROM_ENERGY_Validate +* Description : 比对当前参数,确认是否有改变需要写入 +*******************************************************************************/ +void EEPROM_ENERGY_Validate(void) +{ + 80d4: 14d4 push r4-r7, r15 + U8_T save_flag = 0; + + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 80d6: 12a9 lrw r5, 0x20000574 // 81f8 + 80d8: 1289 lrw r4, 0x20000490 // 81fc + 80da: 95d4 ld.w r6, (r5, 0x50) + 80dc: 6c5b mov r1, r6 + 80de: 9401 ld.w r0, (r4, 0x4) + 80e0: e3ffdc1a bsr 0x3914 // 3914 <__nesf2> + 80e4: 3840 cmpnei r0, 0 + 80e6: 0c80 bf 0x81e6 // 81e6 + { + e_save.i_k1_val = g_Eng.I_K1_Val; + 80e8: b4c1 st.w r6, (r4, 0x4) + save_flag = 1; + 80ea: 3601 movi r6, 1 + } + + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 80ec: 95f5 ld.w r7, (r5, 0x54) + 80ee: 6c5f mov r1, r7 + 80f0: 9402 ld.w r0, (r4, 0x8) + 80f2: e3ffdc11 bsr 0x3914 // 3914 <__nesf2> + 80f6: 3840 cmpnei r0, 0 + 80f8: 0c03 bf 0x80fe // 80fe + { + e_save.i_k2_val = g_Eng.I_K2_Val; + 80fa: b4e2 st.w r7, (r4, 0x8) + save_flag = 1; + 80fc: 3601 movi r6, 1 + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + 80fe: 95f3 ld.w r7, (r5, 0x4c) + 8100: 6c5f mov r1, r7 + 8102: 9400 ld.w r0, (r4, 0x0) + 8104: e3ffdc08 bsr 0x3914 // 3914 <__nesf2> + 8108: 3840 cmpnei r0, 0 + 810a: 0c03 bf 0x8110 // 8110 + { + e_save.v_k_val = g_Eng.V_K_Val; + 810c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 810e: 3601 movi r6, 1 + } + + if(e_save.p_k_val != g_Eng.P_K_Val) + 8110: 9536 ld.w r1, (r5, 0x58) + 8112: 9403 ld.w r0, (r4, 0xc) + 8114: e3ffdc00 bsr 0x3914 // 3914 <__nesf2> + 8118: 3840 cmpnei r0, 0 + 811a: 0c03 bf 0x8120 // 8120 + { + e_save.v_k_val = g_Eng.V_K_Val; + 811c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 811e: 3601 movi r6, 1 + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8120: 9537 ld.w r1, (r5, 0x5c) + 8122: 9404 ld.w r0, (r4, 0x10) + 8124: e3ffdbf8 bsr 0x3914 // 3914 <__nesf2> + 8128: 3840 cmpnei r0, 0 + 812a: 0c03 bf 0x8130 // 8130 + { + e_save.v_k_val = g_Eng.V_K_Val; + 812c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 812e: 3601 movi r6, 1 + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8130: 9538 ld.w r1, (r5, 0x60) + 8132: 9405 ld.w r0, (r4, 0x14) + 8134: e3ffdbf0 bsr 0x3914 // 3914 <__nesf2> + 8138: 3840 cmpnei r0, 0 + 813a: 0c03 bf 0x8140 // 8140 + { + e_save.v_k_val = g_Eng.V_K_Val; + 813c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 813e: 3601 movi r6, 1 + } + + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 8140: 9579 ld.w r3, (r5, 0x64) + 8142: 9448 ld.w r2, (r4, 0x20) + 8144: 64ca cmpne r2, r3 + 8146: 0c03 bf 0x814c // 814c + { + e_save.Collect_Tim = g_Eng.Collect_Tim; + 8148: b468 st.w r3, (r4, 0x20) + save_flag = 1; + 814a: 3601 movi r6, 1 + } + + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 814c: 957b ld.w r3, (r5, 0x6c) + 814e: 944a ld.w r2, (r4, 0x28) + 8150: 64ca cmpne r2, r3 + 8152: 0c03 bf 0x8158 // 8158 + { + e_save.SaveFlash_Tim = g_Eng.SaveFlash_Tim; + 8154: b46a st.w r3, (r4, 0x28) + save_flag = 1; + 8156: 3601 movi r6, 1 + } + + if(e_save.Report_Tim != g_Eng.Report_Tim) + 8158: 957a ld.w r3, (r5, 0x68) + 815a: 9449 ld.w r2, (r4, 0x24) + 815c: 64ca cmpne r2, r3 + 815e: 0c46 bf 0x81ea // 81ea + { + e_save.Report_Tim = g_Eng.Report_Tim; + 8160: b469 st.w r3, (r4, 0x24) + save_flag = 1; + } + + if(save_flag == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + 8162: 1107 lrw r0, 0x20000490 // 81fc + 8164: e3ffff96 bsr 0x8090 // 8090 + +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + 8168: e3ffef92 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Need Save Energy"); + 816c: 1125 lrw r1, 0xb0a2 // 8200 + 816e: 3000 movi r0, 0 + 8170: e3fffc62 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"V_K:%f",e_save.v_k_val); + 8174: 9400 ld.w r0, (r4, 0x0) + 8176: e3ffdc63 bsr 0x3a3c // 3a3c <__extendsfdf2> + 817a: 6c83 mov r2, r0 + 817c: 6cc7 mov r3, r1 + 817e: 3000 movi r0, 0 + 8180: 1121 lrw r1, 0xafe8 // 8204 + 8182: e3fffc59 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K1:%f",e_save.i_k1_val); + 8186: 9401 ld.w r0, (r4, 0x4) + 8188: e3ffdc5a bsr 0x3a3c // 3a3c <__extendsfdf2> + 818c: 6c83 mov r2, r0 + 818e: 6cc7 mov r3, r1 + 8190: 3000 movi r0, 0 + 8192: 103e lrw r1, 0xaff3 // 8208 + 8194: e3fffc50 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K2:%f",e_save.i_k2_val); + 8198: 9402 ld.w r0, (r4, 0x8) + 819a: e3ffdc51 bsr 0x3a3c // 3a3c <__extendsfdf2> + 819e: 6c83 mov r2, r0 + 81a0: 6cc7 mov r3, r1 + 81a2: 3000 movi r0, 0 + 81a4: 103a lrw r1, 0xafff // 820c + 81a6: e3fffc47 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_K:%f",e_save.p_k_val); + 81aa: 9403 ld.w r0, (r4, 0xc) + 81ac: e3ffdc48 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81b0: 6c83 mov r2, r0 + 81b2: 6cc7 mov r3, r1 + 81b4: 3000 movi r0, 0 + 81b6: 1037 lrw r1, 0xb00b // 8210 + 81b8: e3fffc3e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_OS:%f",e_save.i_OffSetVal); + 81bc: 9404 ld.w r0, (r4, 0x10) + 81be: e3ffdc3f bsr 0x3a3c // 3a3c <__extendsfdf2> + 81c2: 6c83 mov r2, r0 + 81c4: 6cc7 mov r3, r1 + 81c6: 3000 movi r0, 0 + 81c8: 1033 lrw r1, 0xb08f // 8214 + 81ca: e3fffc35 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_OS:%f",e_save.p_OffSetVal); + 81ce: 9405 ld.w r0, (r4, 0x14) + 81d0: e3ffdc36 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81d4: 6c83 mov r2, r0 + 81d6: 6cc7 mov r3, r1 + 81d8: 3000 movi r0, 0 + 81da: 1030 lrw r1, 0xb097 // 8218 + 81dc: e3fffc2c bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 81e0: e3ffef56 bsr 0x608c // 608c +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + +#endif + } +} + 81e4: 1494 pop r4-r7, r15 + U8_T save_flag = 0; + 81e6: 3600 movi r6, 0 + 81e8: 0782 br 0x80ec // 80ec + if(save_flag == 0x01) + 81ea: 3e41 cmpnei r6, 1 + 81ec: 0fbb bf 0x8162 // 8162 + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + 81ee: 102c lrw r1, 0xb09f // 821c + 81f0: 3000 movi r0, 0 + 81f2: e3fffc21 bsr 0x7a34 // 7a34 +} + 81f6: 07f7 br 0x81e4 // 81e4 + 81f8: 20000574 .long 0x20000574 + 81fc: 20000490 .long 0x20000490 + 8200: 0000b0a2 .long 0x0000b0a2 + 8204: 0000afe8 .long 0x0000afe8 + 8208: 0000aff3 .long 0x0000aff3 + 820c: 0000afff .long 0x0000afff + 8210: 0000b00b .long 0x0000b00b + 8214: 0000b08f .long 0x0000b08f + 8218: 0000b097 .long 0x0000b097 + 821c: 0000b09f .long 0x0000b09f + +Disassembly of section .text.EEPROM_Default_ENERGY: + +00008220 : +/******************************************************************************* +* Function Name : EEPROM_Default_ENERGY +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info) +{ + 8220: 14d1 push r4, r15 + /*APP 区域*/ + info->i_k1_val = 1; + 8222: 33fe movi r3, 254 + 8224: 4376 lsli r3, r3, 22 + 8226: b061 st.w r3, (r0, 0x4) + info->i_k2_val = 1; + 8228: b062 st.w r3, (r0, 0x8) + info->v_k_val = 2; + info->p_k_val = 1; + 822a: b063 st.w r3, (r0, 0xc) + info->i_OffSetVal = 0; + 822c: 3300 movi r3, 0 + 822e: b064 st.w r3, (r0, 0x10) + info->p_OffSetVal = 0; + 8230: b065 st.w r3, (r0, 0x14) + info->eng_save_max = EEPROM_SAVEADDR_CNT; + 8232: 1176 lrw r3, 0x9c40 // 8308 + 8234: b066 st.w r3, (r0, 0x18) + info->eng_save_offset = 1; //存储偏移编号从1开始 + 8236: 3301 movi r3, 1 + 8238: b067 st.w r3, (r0, 0x1c) + info->SaveFlash_Tim = EEPROM_SAVETIME; + 823a: 1175 lrw r3, 0x36ee80 // 830c + 823c: b06a st.w r3, (r0, 0x28) + info->Collect_Tim = EEPROM_COLLTIME; + 823e: 33fa movi r3, 250 + 8240: 4362 lsli r3, r3, 2 + info->v_k_val = 2; + 8242: 3280 movi r2, 128 + 8244: 4257 lsli r2, r2, 23 + info->Collect_Tim = EEPROM_COLLTIME; + 8246: b068 st.w r3, (r0, 0x20) + info->Report_Tim = EEPROM_REPTIME; + 8248: 1172 lrw r3, 0x927c0 // 8310 + info->v_k_val = 2; + 824a: b040 st.w r2, (r0, 0x0) + info->Report_Tim = EEPROM_REPTIME; + 824c: b069 st.w r3, (r0, 0x24) + + + EEOROM_ENERGY_WriteSet(info); + 824e: e3ffff21 bsr 0x8090 // 8090 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Energy Use Default Para"); + 8252: 1131 lrw r1, 0xb0b3 // 8314 + 8254: 3000 movi r0, 0 + 8256: e3fffbef bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 825a: 1190 lrw r4, 0x20000490 // 8318 + SYSCON_IWDCNT_Reload(); + 825c: e3ffef18 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 8260: 9400 ld.w r0, (r4, 0x0) + 8262: e3ffdbed bsr 0x3a3c // 3a3c <__extendsfdf2> + 8266: 6c83 mov r2, r0 + 8268: 6cc7 mov r3, r1 + 826a: 3000 movi r0, 0 + 826c: 112c lrw r1, 0xb0cb // 831c + 826e: e3fffbe3 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K1:%f",e_save.i_k1_val); + 8272: 9401 ld.w r0, (r4, 0x4) + 8274: e3ffdbe4 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8278: 6c83 mov r2, r0 + 827a: 6cc7 mov r3, r1 + 827c: 3000 movi r0, 0 + 827e: 1129 lrw r1, 0xb0da // 8320 + 8280: e3fffbda bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K2:%f",e_save.i_k2_val); + 8284: 9402 ld.w r0, (r4, 0x8) + 8286: e3ffdbdb bsr 0x3a3c // 3a3c <__extendsfdf2> + 828a: 6c83 mov r2, r0 + 828c: 6cc7 mov r3, r1 + 828e: 3000 movi r0, 0 + 8290: 1125 lrw r1, 0xb0ea // 8324 + 8292: e3fffbd1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_K:%f",e_save.p_k_val); + 8296: 9403 ld.w r0, (r4, 0xc) + 8298: e3ffdbd2 bsr 0x3a3c // 3a3c <__extendsfdf2> + 829c: 6c83 mov r2, r0 + 829e: 6cc7 mov r3, r1 + 82a0: 3000 movi r0, 0 + 82a2: 1122 lrw r1, 0xb0fa // 8328 + 82a4: e3fffbc8 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_OffSet:%f",e_save.i_OffSetVal); + 82a8: 9404 ld.w r0, (r4, 0x10) + 82aa: e3ffdbc9 bsr 0x3a3c // 3a3c <__extendsfdf2> + 82ae: 6c83 mov r2, r0 + 82b0: 6cc7 mov r3, r1 + 82b2: 3000 movi r0, 0 + 82b4: 103e lrw r1, 0xb109 // 832c + 82b6: e3fffbbf bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_OffSet:%f",e_save.p_OffSetVal); + 82ba: 9405 ld.w r0, (r4, 0x14) + 82bc: e3ffdbc0 bsr 0x3a3c // 3a3c <__extendsfdf2> + 82c0: 6cc7 mov r3, r1 + 82c2: 6c83 mov r2, r0 + 82c4: 103b lrw r1, 0xb11d // 8330 + 82c6: 3000 movi r0, 0 + 82c8: e3fffbb6 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 82cc: e3ffeee0 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_max:%d",e_save.eng_save_max); + 82d0: 9446 ld.w r2, (r4, 0x18) + 82d2: 3000 movi r0, 0 + 82d4: 1038 lrw r1, 0xb131 // 8334 + 82d6: e3fffbaf bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_offset:%d",e_save.eng_save_offset); + 82da: 9447 ld.w r2, (r4, 0x1c) + 82dc: 3000 movi r0, 0 + 82de: 1037 lrw r1, 0xb145 // 8338 + 82e0: e3fffbaa bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Collect_Tim:%d",e_save.Collect_Tim); + 82e4: 9448 ld.w r2, (r4, 0x20) + 82e6: 3000 movi r0, 0 + 82e8: 1035 lrw r1, 0xb15c // 833c + 82ea: e3fffba5 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Report_Tim:%d",e_save.Report_Tim); + 82ee: 9449 ld.w r2, (r4, 0x24) + 82f0: 3000 movi r0, 0 + 82f2: 1034 lrw r1, 0xb173 // 8340 + 82f4: e3fffba0 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 82f8: 944a ld.w r2, (r4, 0x28) + 82fa: 3000 movi r0, 0 + 82fc: 1032 lrw r1, 0xb189 // 8344 + 82fe: e3fffb9b bsr 0x7a34 // 7a34 + + SYSCON_IWDCNT_Reload(); + 8302: e3ffeec5 bsr 0x608c // 608c + +#endif + +} + 8306: 1491 pop r4, r15 + 8308: 00009c40 .long 0x00009c40 + 830c: 0036ee80 .long 0x0036ee80 + 8310: 000927c0 .long 0x000927c0 + 8314: 0000b0b3 .long 0x0000b0b3 + 8318: 20000490 .long 0x20000490 + 831c: 0000b0cb .long 0x0000b0cb + 8320: 0000b0da .long 0x0000b0da + 8324: 0000b0ea .long 0x0000b0ea + 8328: 0000b0fa .long 0x0000b0fa + 832c: 0000b109 .long 0x0000b109 + 8330: 0000b11d .long 0x0000b11d + 8334: 0000b131 .long 0x0000b131 + 8338: 0000b145 .long 0x0000b145 + 833c: 0000b15c .long 0x0000b15c + 8340: 0000b173 .long 0x0000b173 + 8344: 0000b189 .long 0x0000b189 + +Disassembly of section .text.EEPROM_ReadTotalEng: + +00008348 : +/********************************************************************* + * Function Name : EEPROM_ReadTotalEng + * Description : 读取总电量、存储总次数 + *********************************************************************/ +U8_T EEPROM_ReadTotalEng(ENERGY_SAVE *info) +{ + 8348: 14d2 push r4-r5, r15 + 834a: 1430 subi r14, r14, 64 + 834c: 6d43 mov r5, r0 + U8_T read_info[10]; //帧头 + U8_T para_data[EEPROM_ENERGY_SIZE]; //存储数据 + UINT16 read_len = 0; //存储数据长度 + uint32_t save_block = 0; //存储扇区编号 + + memset(read_info,0,sizeof(read_info)); + 834e: 320a movi r2, 10 + 8350: 3100 movi r1, 0 + 8352: 6c3b mov r0, r14 + 8354: e3ffe302 bsr 0x4958 // 4958 <__memset_fast> + memset(para_data,0,sizeof(para_data)); + 8358: 3232 movi r2, 50 + 835a: 3100 movi r1, 0 + 835c: 1803 addi r0, r14, 12 + 835e: e3ffe2fd bsr 0x4958 // 4958 <__memset_fast> + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8362: 1163 lrw r3, 0x20000490 // 83ec + 8364: 9387 ld.w r4, (r3, 0x1c) + 8366: 3c40 cmpnei r4, 0 + 8368: 0c3b bf 0x83de // 83de + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + + temp_addr = EEPROM_EngSave_StartAddr + (save_block - 1) * EEPROM_OFFSET_ADDRSIZE; //通过扇区编号计算当前总能耗存储扇区地址 + 836a: 1162 lrw r3, 0x400008 // 83f0 + 836c: 610c addu r4, r3 + 836e: 4486 lsli r4, r4, 6 + + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 8370: 1141 lrw r2, 0xeffffdc0 // 83f4 + 8372: 33b0 movi r3, 176 + 8374: 6090 addu r2, r4 + 8376: 4363 lsli r3, r3, 3 + 8378: 648c cmphs r3, r2 + 837a: 0c34 bf 0x83e2 // 83e2 + + ReadDataArry_U8(temp_addr,4,read_info); //读取目标地址的标志位和存储数据长度 + 837c: 6cbb mov r2, r14 + 837e: 3104 movi r1, 4 + 8380: 6c13 mov r0, r4 + 8382: e3fff2bf bsr 0x6900 // 6900 + + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 8386: d84e0000 ld.b r2, (r14, 0x0) + 838a: 33a6 movi r3, 166 + 838c: 64ca cmpne r2, r3 + 838e: 082c bt 0x83e6 // 83e6 + + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 8390: d82e0002 ld.b r1, (r14, 0x2) + 8394: d86e0001 ld.b r3, (r14, 0x1) + 8398: 4128 lsli r1, r1, 8 + 839a: 6c4c or r1, r3 + + if(read_len <= EEPROM_ENERGY_SIZE){ + 839c: 3332 movi r3, 50 + 839e: 644c cmphs r3, r1 + 83a0: 0c16 bf 0x83cc // 83cc + + ReadDataArry_U8(temp_addr+EEPROM_Offset_Data,read_len,para_data); + 83a2: 5c0e addi r0, r4, 4 + 83a4: 1a03 addi r2, r14, 12 + 83a6: e3fff2ad bsr 0x6900 // 6900 + + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE)) == read_info[3]){ + 83aa: 310c movi r1, 12 + 83ac: 1803 addi r0, r14, 12 + 83ae: e3fffdbd bsr 0x7f28 // 7f28 + 83b2: d86e0003 ld.b r3, (r14, 0x3) + 83b6: 640e cmpne r3, r0 + 83b8: 080c bt 0x83d0 // 83d0 + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE)); + 83ba: 1903 addi r1, r14, 12 + 83bc: 320c movi r2, 12 + 83be: 6c17 mov r0, r5 + 83c0: e3ffe310 bsr 0x49e0 // 49e0 <__memcpy_fast> + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadSucc"); + 83c4: 102d lrw r1, 0xb1a2 // 83f8 + 83c6: 3000 movi r0, 0 + 83c8: e3fffb36 bsr 0x7a34 // 7a34 + return 0x04; + } + + } + + return 0x00; + 83cc: 3000 movi r0, 0 + 83ce: 0406 br 0x83da // 83da + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadFail"); + 83d0: 3000 movi r0, 0 + 83d2: 102b lrw r1, 0xb1b7 // 83fc + 83d4: e3fffb30 bsr 0x7a34 // 7a34 + return 0x04; + 83d8: 3004 movi r0, 4 +} + 83da: 1410 addi r14, r14, 64 + 83dc: 1492 pop r4-r5, r15 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 83de: 3001 movi r0, 1 + 83e0: 07fd br 0x83da // 83da + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 83e2: 3002 movi r0, 2 + 83e4: 07fb br 0x83da // 83da + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 83e6: 3003 movi r0, 3 + 83e8: 07f9 br 0x83da // 83da + 83ea: 0000 bkpt + 83ec: 20000490 .long 0x20000490 + 83f0: 00400008 .long 0x00400008 + 83f4: effffdc0 .long 0xeffffdc0 + 83f8: 0000b1a2 .long 0x0000b1a2 + 83fc: 0000b1b7 .long 0x0000b1b7 + +Disassembly of section .text.EEPROM_WriteTotalEng: + +00008400 : +/********************************************************************* + * Function Name : EEPROM_WriteTotalEng + * Description : 写入总电量 + *********************************************************************/ +U8_T EEPROM_WriteTotalEng(ENERGY_SAVE *info) +{ + 8400: 14d4 push r4-r7, r15 + 8402: 142f subi r14, r14, 60 + U8_T savepara_falg = 0x00; + U32_T temp_addr = EEPROM_EngSave_StartAddr; + U16_T save_len = sizeof(ENERGY_SAVE); + uint32_t save_block = 0,save_cnt = 0; + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 8404: 11c7 lrw r6, 0x20000490 // 84a0 +{ + 8406: 6dc3 mov r7, r0 + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 8408: 9667 ld.w r3, (r6, 0x1c) + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 840a: 3b40 cmpnei r3, 0 + 840c: 0c43 bf 0x8492 // 8492 + if(e_save.eng_save_max == 0) return 0x02; + 840e: 9626 ld.w r1, (r6, 0x18) + 8410: 3940 cmpnei r1, 0 + 8412: 0c42 bf 0x8496 // 8496 + + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 8414: 3200 movi r2, 0 + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + 8416: 9001 ld.w r0, (r0, 0x4) + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 8418: 2a00 subi r2, 1 + 841a: 6482 cmpne r0, r2 + 841c: 0c3f bf 0x849a // 849a + return 0x03; + } + info->eng_save_cnt++; + 841e: 2000 addi r0, 1 + + + if(info->eng_save_cnt > e_save.eng_save_max) + 8420: 6404 cmphs r1, r0 + info->eng_save_cnt++; + 8422: b701 st.w r0, (r7, 0x4) + if(info->eng_save_cnt > e_save.eng_save_max) + 8424: 0835 bt 0x848e // 848e + 8426: b860 st.w r3, (r14, 0x0) + { + e_save.eng_save_offset = (info->eng_save_cnt/e_save.eng_save_max)+1; //更新扇区编号 + 8428: e3fff850 bsr 0x74c8 // 74c8 <__udivsi3> + 842c: 2000 addi r0, 1 + 842e: b607 st.w r0, (r6, 0x1c) + savepara_falg = 0x01; + 8430: 3401 movi r4, 1 + 8432: 9860 ld.w r3, (r14, 0x0) + + } + + //通过扇区编号计算当前总能耗存储扇区地址 + temp_addr = EEPROM_EngSave_StartAddr + (e_save.eng_save_offset - 1) * EEPROM_OFFSET_ADDRSIZE; + 8434: 105c lrw r2, 0x400008 // 84a4 + 8436: 96a7 ld.w r5, (r6, 0x1c) + 8438: 6148 addu r5, r2 + 843a: 45a6 lsli r5, r5, 6 + + if(temp_addr > EEPROM_EngSave_EndAddr ) //超限,不再改变存储扇区 + 843c: 105b lrw r2, 0x100007c0 // 84a8 + 843e: 6548 cmphs r2, r5 + 8440: 0804 bt 0x8448 // 8448 + { + e_save.eng_save_offset = save_block; + 8442: b667 st.w r3, (r6, 0x1c) + savepara_falg = 0x00; + //info->eng_save_cnt = save_cnt; + temp_addr = EEPROM_EngSave_EndAddr; + 8444: 6d4b mov r5, r2 + savepara_falg = 0x00; + 8446: 3400 movi r4, 0 + } + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 8448: 3300 movi r3, 0 + 844a: 2b59 subi r3, 90 + 844c: dc6e0004 st.b r3, (r14, 0x4) + save_data[1] = save_len & 0xFF; + 8450: 330c movi r3, 12 + 8452: dc6e0005 st.b r3, (r14, 0x5) + save_data[2] = (save_len >> 8) & 0xFF; + 8456: 3300 movi r3, 0 + 8458: dc6e0006 st.b r3, (r14, 0x6) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 845c: 1b02 addi r3, r14, 8 + 845e: 320c movi r2, 12 + 8460: 6c0f mov r0, r3 + 8462: 6c5f mov r1, r7 + 8464: e3ffe2be bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 8468: 310c movi r1, 12 + 846a: e3fffd5f bsr 0x7f28 // 7f28 + 846e: dc0e0007 st.b r0, (r14, 0x7) + + save_len+=4; + + Page_ProgramData(temp_addr,save_len,save_data); + 8472: 1a01 addi r2, r14, 4 + 8474: 3110 movi r1, 16 + 8476: 6c17 mov r0, r5 + 8478: e3fff1f4 bsr 0x6860 // 6860 + + + if(savepara_falg == 0x01) + 847c: 3c41 cmpnei r4, 1 + 847e: 0805 bt 0x8488 // 8488 + { + EEOROM_ENERGY_WriteSet(&e_save); + 8480: 1008 lrw r0, 0x20000490 // 84a0 + 8482: e3fffe07 bsr 0x8090 // 8090 + } + + return 0; + 8486: 3400 movi r4, 0 +} + 8488: 6c13 mov r0, r4 + 848a: 140f addi r14, r14, 60 + 848c: 1494 pop r4-r7, r15 + U8_T savepara_falg = 0x00; + 848e: 3400 movi r4, 0 + 8490: 07d2 br 0x8434 // 8434 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8492: 3401 movi r4, 1 + 8494: 07fa br 0x8488 // 8488 + if(e_save.eng_save_max == 0) return 0x02; + 8496: 3402 movi r4, 2 + 8498: 07f8 br 0x8488 // 8488 + return 0x03; + 849a: 3403 movi r4, 3 + 849c: 07f6 br 0x8488 // 8488 + 849e: 0000 bkpt + 84a0: 20000490 .long 0x20000490 + 84a4: 00400008 .long 0x00400008 + 84a8: 100007c0 .long 0x100007c0 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +000084ac : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 84ac: 14d1 push r4, r15 + 84ae: 1432 subi r14, r14, 72 + 84b0: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 84b2: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 84b4: 3240 movi r2, 64 + 84b6: 3100 movi r1, 0 + 84b8: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 84ba: b860 st.w r3, (r14, 0x0) + 84bc: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 84c0: e3ffe24c bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 84c4: 3080 movi r0, 128 + 84c6: 6cbb mov r2, r14 + 84c8: 3104 movi r1, 4 + 84ca: 4015 lsli r0, r0, 21 + 84cc: e3fff21a bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 84d0: d84e0000 ld.b r2, (r14, 0x0) + 84d4: 33ae movi r3, 174 + 84d6: 64ca cmpne r2, r3 + 84d8: 0c04 bf 0x84e0 // 84e0 + return 0x00; + } + } + } + + return 0x01; + 84da: 3001 movi r0, 1 +} + 84dc: 1412 addi r14, r14, 72 + 84de: 1491 pop r4, r15 + read_len |= read_info[1]; + 84e0: d82e0002 ld.b r1, (r14, 0x2) + 84e4: d86e0001 ld.b r3, (r14, 0x1) + 84e8: 4128 lsli r1, r1, 8 + 84ea: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 84ec: 3340 movi r3, 64 + 84ee: 644c cmphs r3, r1 + 84f0: 0ff5 bf 0x84da // 84da + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 84f2: 1a02 addi r2, r14, 8 + 84f4: 101b lrw r0, 0x10000004 // 8560 + 84f6: e3fff205 bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 84fa: 3125 movi r1, 37 + 84fc: 1802 addi r0, r14, 8 + 84fe: e3fffd15 bsr 0x7f28 // 7f28 + 8502: d86e0003 ld.b r3, (r14, 0x3) + 8506: 640e cmpne r3, r0 + 8508: 0be9 bt 0x84da // 84da + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 850a: 3225 movi r2, 37 + 850c: 1902 addi r1, r14, 8 + 850e: 6c13 mov r0, r4 + 8510: e3ffe268 bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 8514: 1094 lrw r4, 0x200004bc // 8564 + SYSCON_IWDCNT_Reload(); + 8516: e3ffedbb bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 851a: 8440 ld.b r2, (r4, 0x0) + 851c: 1033 lrw r1, 0xb21f // 8568 + 851e: 3000 movi r0, 0 + 8520: e3fffa8a bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevType:%d",g_mcu_dev.dev_type); + 8524: 8441 ld.b r2, (r4, 0x1) + 8526: 1032 lrw r1, 0xb22d // 856c + 8528: 3000 movi r0, 0 + 852a: e3fffa85 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 852e: 8442 ld.b r2, (r4, 0x2) + 8530: 1030 lrw r1, 0xb23b // 8570 + 8532: 3000 movi r0, 0 + 8534: e3fffa80 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAppVer:%d",g_mcu_dev.dev_app_ver); + 8538: 8443 ld.b r2, (r4, 0x3) + 853a: 102f lrw r1, 0xb24c // 8574 + 853c: 3000 movi r0, 0 + 853e: e3fffa7b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 8542: 8444 ld.b r2, (r4, 0x4) + 8544: 102d lrw r1, 0xb25c // 8578 + 8546: 3000 movi r0, 0 + 8548: e3fffa76 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 854c: 3000 movi r0, 0 + 854e: 5c52 addi r2, r4, 5 + 8550: 102b lrw r1, 0xb26d // 857c + 8552: e3fffa71 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 8556: e3ffed9b bsr 0x608c // 608c + return 0x00; + 855a: 3000 movi r0, 0 + 855c: 07c0 br 0x84dc // 84dc + 855e: 0000 bkpt + 8560: 10000004 .long 0x10000004 + 8564: 200004bc .long 0x200004bc + 8568: 0000b21f .long 0x0000b21f + 856c: 0000b22d .long 0x0000b22d + 8570: 0000b23b .long 0x0000b23b + 8574: 0000b24c .long 0x0000b24c + 8578: 0000b25c .long 0x0000b25c + 857c: 0000b26d .long 0x0000b26d + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00008580 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 8580: 14d0 push r15 + 8582: 1432 subi r14, r14, 72 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 8584: 3300 movi r3, 0 + 8586: 2b51 subi r3, 82 + 8588: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 858c: 3325 movi r3, 37 + 858e: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 8592: 3300 movi r3, 0 + 8594: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8598: 1b01 addi r3, r14, 4 +{ + 859a: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 859c: 3225 movi r2, 37 + 859e: 6c0f mov r0, r3 + 85a0: e3ffe220 bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 85a4: 3125 movi r1, 37 + 85a6: e3fffcc1 bsr 0x7f28 // 7f28 + 85aa: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 85ae: 3080 movi r0, 128 + 85b0: 4015 lsli r0, r0, 21 + 85b2: 6cbb mov r2, r14 + 85b4: 3129 movi r1, 41 + 85b6: e3fff155 bsr 0x6860 // 6860 + + return 0; +} + 85ba: 3000 movi r0, 0 + 85bc: 1412 addi r14, r14, 72 + 85be: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +000085c0 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85c0: 14d2 push r4-r5, r15 + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + 85c2: 3300 movi r3, 0 + 85c4: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 85c6: 3306 movi r3, 6 + 85c8: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 85ca: 3301 movi r3, 1 + 85cc: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85ce: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 85d0: 3311 movi r3, 17 + 85d2: a064 st.b r3, (r0, 0x4) +{ + 85d4: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85d6: 3220 movi r2, 32 + 85d8: 3100 movi r1, 0 + 85da: 6c17 mov r0, r5 + 85dc: e3ffe1be bsr 0x4958 // 4958 <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 85e0: 3211 movi r2, 17 + 85e2: 1025 lrw r1, 0xb27b // 85f4 + 85e4: 6c17 mov r0, r5 + 85e6: e3ffe1fd bsr 0x49e0 // 49e0 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 85ea: 6c13 mov r0, r4 + 85ec: e3ffffca bsr 0x8580 // 8580 +#endif +} + 85f0: 1492 pop r4-r5, r15 + 85f2: 0000 bkpt + 85f4: 0000b27b .long 0x0000b27b + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +000085f8 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85f8: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 85fa: 8063 ld.b r3, (r0, 0x3) + 85fc: 3b41 cmpnei r3, 1 +{ + 85fe: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 8600: 0c21 bf 0x8642 // 8642 + { + info->dev_app_ver = Project_FW_Version; + 8602: 3301 movi r3, 1 + 8604: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 8606: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 8608: 8461 ld.b r3, (r4, 0x1) + 860a: 3b46 cmpnei r3, 6 + 860c: 0c04 bf 0x8614 // 8614 + { + info->dev_type = Project_Type; + 860e: 3306 movi r3, 6 + 8610: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 8612: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 8614: 8464 ld.b r3, (r4, 0x4) + 8616: 3b51 cmpnei r3, 17 + 8618: 0c04 bf 0x8620 // 8620 + { + info->dev_name_len = sizeof(Peoject_Name); + 861a: 3311 movi r3, 17 + 861c: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 861e: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 8620: 5cd2 addi r6, r4, 5 + 8622: 3211 movi r2, 17 + 8624: 102a lrw r1, 0xb27b // 864c + 8626: 6c1b mov r0, r6 + 8628: e3ffe20e bsr 0x4a44 // 4a44 <__GI_strncmp> + 862c: 3840 cmpnei r0, 0 + 862e: 0c0c bf 0x8646 // 8646 + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 8630: 8444 ld.b r2, (r4, 0x4) + 8632: 1027 lrw r1, 0xb27b // 864c + 8634: 6c1b mov r0, r6 + 8636: e3ffe1d5 bsr 0x49e0 // 49e0 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 863a: 6c13 mov r0, r4 + 863c: e3ffffa2 bsr 0x8580 // 8580 + } +#endif +} + 8640: 0405 br 0x864a // 864a + U8_T save_flag = 0; + 8642: 3500 movi r5, 0 + 8644: 07e2 br 0x8608 // 8608 + if(save_flag == 0x01) + 8646: 3d41 cmpnei r5, 1 + 8648: 0ff9 bf 0x863a // 863a +} + 864a: 1493 pop r4-r6, r15 + 864c: 0000b27b .long 0x0000b27b + +Disassembly of section .text.EEPROM_Init: + +00008650 : +{ + 8650: 14d2 push r4-r5, r15 + EnIFCClk; //使能 IFC 时钟 + 8652: 117b lrw r3, 0x20000060 // 873c + 8654: 3201 movi r2, 1 + 8656: 9360 ld.w r3, (r3, 0x0) + 8658: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 865a: 9345 ld.w r2, (r3, 0x14) + 865c: 3aa1 bseti r2, 1 + 865e: 3ab0 bseti r2, 16 + 8660: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 8662: 300a movi r0, 10 + 8664: e3fff186 bsr 0x6970 // 6970 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 8668: 1196 lrw r4, 0x200004bc // 8740 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read MCU_DEV <*****************/"); + 866a: 1137 lrw r1, 0xb28c // 8744 + 866c: 3000 movi r0, 0 + 866e: e3fff9e3 bsr 0x7a34 // 7a34 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 8672: 3225 movi r2, 37 + 8674: 3100 movi r1, 0 + 8676: 6c13 mov r0, r4 + 8678: e3ffe170 bsr 0x4958 // 4958 <__memset_fast> + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 867c: 6c13 mov r0, r4 + 867e: e3ffff17 bsr 0x84ac // 84ac + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 8682: 1172 lrw r3, 0x2000047c // 8748 + 8684: 8366 ld.b r3, (r3, 0x6) + 8686: 8440 ld.b r2, (r4, 0x0) + 8688: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 868a: 6d43 mov r5, r0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 868c: 0c05 bf 0x8696 // 8696 + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 868e: 6c13 mov r0, r4 + g_mcu_dev.dev_addr = g_Dip.addr; + 8690: a460 st.b r3, (r4, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 8692: e3ffff77 bsr 0x8580 // 8580 + if(rev == 0x00){ + 8696: 3d40 cmpnei r5, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 8698: 110a lrw r0, 0x200004bc // 8740 + if(rev == 0x00){ + 869a: 0837 bt 0x8708 // 8708 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 869c: e3ffffae bsr 0x85f8 // 85f8 + BLV_DetEnergy_Init(); + 86a0: e000008e bsr 0x87bc // 87bc + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read EngPara <*****************/"); + 86a4: 112a lrw r1, 0xb2d5 // 874c + 86a6: 3000 movi r0, 0 + 86a8: e3fff9c6 bsr 0x7a34 // 7a34 + memset(&e_save,0,sizeof(ENERGY_SAVE_PARA)); + 86ac: 322c movi r2, 44 + 86ae: 3100 movi r1, 0 + 86b0: 1108 lrw r0, 0x20000490 // 8750 + 86b2: e3ffe153 bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEOROM_ENERGY_ReadSet(&e_save); //电能检测参数,读取 + 86b6: 1107 lrw r0, 0x20000490 // 8750 + 86b8: e3fffc44 bsr 0x7f40 // 7f40 + 86bc: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init1 ReadEngPara Rev:%d",eng_rev); + 86be: 6c83 mov r2, r0 + 86c0: 1125 lrw r1, 0xb30a // 8754 + 86c2: 3000 movi r0, 0 + 86c4: e3fff9b8 bsr 0x7a34 // 7a34 + if(eng_rev == 0) + 86c8: 3c40 cmpnei r4, 0 + 86ca: 0c04 bf 0x86d2 // 86d2 + EEPROM_Default_ENERGY(&e_save); + 86cc: 1101 lrw r0, 0x20000490 // 8750 + 86ce: e3fffda9 bsr 0x8220 // 8220 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read TotalEng <*****************/"); + 86d2: 1122 lrw r1, 0xb323 // 8758 + 86d4: 3000 movi r0, 0 + 86d6: e3fff9af bsr 0x7a34 // 7a34 + memset(&eng_info,0,sizeof(ENERGY_SAVE)); + 86da: 320c movi r2, 12 + 86dc: 3100 movi r1, 0 + 86de: 1100 lrw r0, 0x200004e4 // 875c + 86e0: e3ffe13c bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEPROM_ReadTotalEng(&eng_info); // + 86e4: 101e lrw r0, 0x200004e4 // 875c + 86e6: e3fffe31 bsr 0x8348 // 8348 + 86ea: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Rev:%d",eng_rev); + 86ec: 6c83 mov r2, r0 + 86ee: 103d lrw r1, 0xb359 // 8760 + 86f0: 3000 movi r0, 0 + 86f2: e3fff9a1 bsr 0x7a34 // 7a34 + if(eng_rev == 0x00){ + 86f6: 3c40 cmpnei r4, 0 + 86f8: 0820 bt 0x8738 // 8738 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal SUCC"); + 86fa: 103b lrw r1, 0xb370 // 8764 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 86fc: 3000 movi r0, 0 + 86fe: e3fff99b bsr 0x7a34 // 7a34 + BLV_DetEnergy_Default(); + 8702: e0000075 bsr 0x87ec // 87ec +} + 8706: 1492 pop r4-r5, r15 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 8708: e3ffff5c bsr 0x85c0 // 85c0 + SYSCON_IWDCNT_Reload(); + 870c: e3ffecc0 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE Use Defalut Para"); + 8710: 1036 lrw r1, 0xb2c1 // 8768 + 8712: 3000 movi r0, 0 + 8714: e3fff990 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 8718: 8442 ld.b r2, (r4, 0x2) + 871a: 1035 lrw r1, 0xb23b // 876c + 871c: 3000 movi r0, 0 + 871e: e3fff98b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 8722: 8444 ld.b r2, (r4, 0x4) + 8724: 1033 lrw r1, 0xb25c // 8770 + 8726: 3000 movi r0, 0 + 8728: e3fff986 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 872c: 1052 lrw r2, 0x200004c1 // 8774 + 872e: 1033 lrw r1, 0xb26d // 8778 + 8730: 3000 movi r0, 0 + 8732: e3fff981 bsr 0x7a34 // 7a34 + 8736: 07b5 br 0x86a0 // 86a0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 8738: 1031 lrw r1, 0xb385 // 877c + 873a: 07e1 br 0x86fc // 86fc + 873c: 20000060 .long 0x20000060 + 8740: 200004bc .long 0x200004bc + 8744: 0000b28c .long 0x0000b28c + 8748: 2000047c .long 0x2000047c + 874c: 0000b2d5 .long 0x0000b2d5 + 8750: 20000490 .long 0x20000490 + 8754: 0000b30a .long 0x0000b30a + 8758: 0000b323 .long 0x0000b323 + 875c: 200004e4 .long 0x200004e4 + 8760: 0000b359 .long 0x0000b359 + 8764: 0000b370 .long 0x0000b370 + 8768: 0000b2c1 .long 0x0000b2c1 + 876c: 0000b23b .long 0x0000b23b + 8770: 0000b25c .long 0x0000b25c + 8774: 200004c1 .long 0x200004c1 + 8778: 0000b26d .long 0x0000b26d + 877c: 0000b385 .long 0x0000b385 + +Disassembly of section .text.BT_Uart_Packing.part.3: + +00008780 : + +} + + +//组包发送,用于蓝牙设置的回复 +void BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag) + 8780: 14d4 push r4-r7, r15 + 8782: 3914 cmphsi r1, 21 + 8784: 6d83 mov r6, r0 + 8786: 6d4b mov r5, r2 + 8788: 6d07 mov r4, r1 + 878a: 0c02 bf 0x878e // 878e + 878c: 3414 movi r4, 20 + 878e: 75d0 zextb r7, r4 + + if(BT_Len > 20){ + BT_Len = 20; + } + + memset(g_Eng.BT_SdBuff,0,20); + 8790: 3214 movi r2, 20 + 8792: 3100 movi r1, 0 + 8794: 1008 lrw r0, 0x20000579 // 87b4 + 8796: e3ffe0e1 bsr 0x4958 // 4958 <__memset_fast> + memcpy(g_Eng.BT_SdBuff, data, BT_Len); + 879a: 6c9f mov r2, r7 + 879c: 6c5b mov r1, r6 + 879e: 1006 lrw r0, 0x20000579 // 87b4 + 87a0: e3ffe120 bsr 0x49e0 // 49e0 <__memcpy_fast> + g_Eng.BT_SdLen = BT_Len; + 87a4: 1045 lrw r2, 0x20000574 // 87b8 + + g_Eng.BT_SendFlag |= (0x01 << flag); + 87a6: 3301 movi r3, 1 + 87a8: 8a2d ld.h r1, (r2, 0x1a) + 87aa: 70d4 lsl r3, r5 + 87ac: 6cc4 or r3, r1 + g_Eng.BT_SdLen = BT_Len; + 87ae: a299 st.b r4, (r2, 0x19) + g_Eng.BT_SendFlag |= (0x01 << flag); + 87b0: aa6d st.h r3, (r2, 0x1a) +} + 87b2: 1494 pop r4-r7, r15 + 87b4: 20000579 .long 0x20000579 + 87b8: 20000574 .long 0x20000574 + +Disassembly of section .text.BLV_DetEnergy_Init: + +000087bc : +{ + 87bc: 14d0 push r15 + memset(&u_det,0,sizeof(DetUart_t)); + 87be: 3248 movi r2, 72 + 87c0: 3100 movi r1, 0 + 87c2: 1008 lrw r0, 0x200004f0 // 87e0 + 87c4: e3ffe0ca bsr 0x4958 // 4958 <__memset_fast> + memset(&g_CalFactor,0,sizeof(HLW8110_REG)); + 87c8: 323c movi r2, 60 + 87ca: 3100 movi r1, 0 + 87cc: 1006 lrw r0, 0x20000538 // 87e4 + 87ce: e3ffe0c5 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_Eng,0,sizeof(DetEng_Info)); + 87d2: 3278 movi r2, 120 + 87d4: 3100 movi r1, 0 + 87d6: 1005 lrw r0, 0x20000574 // 87e8 + 87d8: e3ffe0c0 bsr 0x4958 // 4958 <__memset_fast> +} + 87dc: 1490 pop r15 + 87de: 0000 bkpt + 87e0: 200004f0 .long 0x200004f0 + 87e4: 20000538 .long 0x20000538 + 87e8: 20000574 .long 0x20000574 + +Disassembly of section .text.BLV_DetEnergy_Default: + +000087ec : +{ + 87ec: 14d3 push r4-r6, r15 + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 87ee: 11aa lrw r5, 0x20000490 // 8894 + 87f0: 118a lrw r4, 0x20000574 // 8898 + 87f2: 95c1 ld.w r6, (r5, 0x4) + 87f4: 9434 ld.w r1, (r4, 0x50) + 87f6: 6c1b mov r0, r6 + 87f8: e3ffd88e bsr 0x3914 // 3914 <__nesf2> + 87fc: 3840 cmpnei r0, 0 + 87fe: 0c02 bf 0x8802 // 8802 + g_Eng.I_K1_Val = e_save.i_k1_val; + 8800: b4d4 st.w r6, (r4, 0x50) + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 8802: 95c2 ld.w r6, (r5, 0x8) + 8804: 9435 ld.w r1, (r4, 0x54) + 8806: 6c1b mov r0, r6 + 8808: e3ffd886 bsr 0x3914 // 3914 <__nesf2> + 880c: 3840 cmpnei r0, 0 + 880e: 0c02 bf 0x8812 // 8812 + g_Eng.I_K2_Val = e_save.i_k2_val; + 8810: b4d5 st.w r6, (r4, 0x54) + if(e_save.v_k_val != g_Eng.V_K_Val) + 8812: 95c0 ld.w r6, (r5, 0x0) + 8814: 9433 ld.w r1, (r4, 0x4c) + 8816: 6c1b mov r0, r6 + 8818: e3ffd87e bsr 0x3914 // 3914 <__nesf2> + 881c: 3840 cmpnei r0, 0 + 881e: 0c02 bf 0x8822 // 8822 + g_Eng.V_K_Val = e_save.v_k_val; + 8820: b4d3 st.w r6, (r4, 0x4c) + if(e_save.p_k_val != g_Eng.P_K_Val) + 8822: 95c3 ld.w r6, (r5, 0xc) + 8824: 9436 ld.w r1, (r4, 0x58) + 8826: 6c1b mov r0, r6 + 8828: e3ffd876 bsr 0x3914 // 3914 <__nesf2> + 882c: 3840 cmpnei r0, 0 + 882e: 0c02 bf 0x8832 // 8832 + g_Eng.P_K_Val = e_save.p_k_val; + 8830: b4d6 st.w r6, (r4, 0x58) + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8832: 95c4 ld.w r6, (r5, 0x10) + 8834: 9437 ld.w r1, (r4, 0x5c) + 8836: 6c1b mov r0, r6 + 8838: e3ffd86e bsr 0x3914 // 3914 <__nesf2> + 883c: 3840 cmpnei r0, 0 + 883e: 0c02 bf 0x8842 // 8842 + g_Eng.I_OffSetVal = e_save.i_OffSetVal; + 8840: b4d7 st.w r6, (r4, 0x5c) + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8842: 95c5 ld.w r6, (r5, 0x14) + 8844: 9438 ld.w r1, (r4, 0x60) + 8846: 6c1b mov r0, r6 + 8848: e3ffd866 bsr 0x3914 // 3914 <__nesf2> + 884c: 3840 cmpnei r0, 0 + 884e: 0c02 bf 0x8852 // 8852 + g_Eng.P_OffSetVal = e_save.p_OffSetVal; + 8850: b4d8 st.w r6, (r4, 0x60) + if(eng_info.eng_total != g_Eng.Total_Eng) + 8852: 1073 lrw r3, 0x200004e4 // 889c + 8854: 9340 ld.w r2, (r3, 0x0) + 8856: 9428 ld.w r1, (r4, 0x20) + 8858: 644a cmpne r2, r1 + 885a: 0c03 bf 0x8860 // 8860 + g_Eng.Total_Eng = eng_info.eng_total; + 885c: b448 st.w r2, (r4, 0x20) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 885e: b449 st.w r2, (r4, 0x24) + if(eng_info.U32_EnergyA_RegData != g_Eng.U32_EnergyA_RegData) + 8860: 9362 ld.w r3, (r3, 0x8) + 8862: 944f ld.w r2, (r4, 0x3c) + 8864: 648e cmpne r3, r2 + 8866: 0c02 bf 0x886a // 886a + g_Eng.U32_EnergyA_RegData = eng_info.U32_EnergyA_RegData; + 8868: b46f st.w r3, (r4, 0x3c) + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 886a: 9568 ld.w r3, (r5, 0x20) + 886c: 9459 ld.w r2, (r4, 0x64) + 886e: 648e cmpne r3, r2 + 8870: 0c02 bf 0x8874 // 8874 + g_Eng.Collect_Tim = e_save.Collect_Tim; + 8872: b479 st.w r3, (r4, 0x64) + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 8874: 956a ld.w r3, (r5, 0x28) + 8876: 945b ld.w r2, (r4, 0x6c) + 8878: 648e cmpne r3, r2 + 887a: 0c02 bf 0x887e // 887e + g_Eng.SaveFlash_Tim = e_save.SaveFlash_Tim; + 887c: b47b st.w r3, (r4, 0x6c) + if(e_save.Report_Tim != g_Eng.Report_Tim) + 887e: 9569 ld.w r3, (r5, 0x24) + 8880: 945a ld.w r2, (r4, 0x68) + 8882: 648e cmpne r3, r2 + 8884: 0c02 bf 0x8888 // 8888 + g_Eng.Report_Tim = e_save.Report_Tim; + 8886: b47a st.w r3, (r4, 0x68) + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_DetEnergy_Default Init"); + 8888: 1026 lrw r1, 0xb39a // 88a0 + 888a: 3000 movi r0, 0 + 888c: e3fff8d4 bsr 0x7a34 // 7a34 +} + 8890: 1493 pop r4-r6, r15 + 8892: 0000 bkpt + 8894: 20000490 .long 0x20000490 + 8898: 20000574 .long 0x20000574 + 889c: 200004e4 .long 0x200004e4 + 88a0: 0000b39a .long 0x0000b39a + +Disassembly of section .text.HLW8110_CheckSum: + +000088a4 : +{ + 88a4: 6040 addu r1, r0 + U8_T data_sum = 0; + 88a6: 3300 movi r3, 0 + for(U16_T i = 0;i + return ~data_sum; + 88ac: 6cce nor r3, r3 + 88ae: 740c zextb r0, r3 +} + 88b0: 783c jmp r15 + data_sum += data[i]; + 88b2: 8040 ld.b r2, (r0, 0x0) + 88b4: 60c8 addu r3, r2 + 88b6: 74cc zextb r3, r3 + 88b8: 2000 addi r0, 1 + 88ba: 07f7 br 0x88a8 // 88a8 + +Disassembly of section .text.HLW8110_WriteREG_EN: + +000088bc : +{ + 88bc: 14d0 push r15 + 88be: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 88c0: 3300 movi r3, 0 + 88c2: b860 st.w r3, (r14, 0x0) + 88c4: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 88c8: 3300 movi r3, 0 + 88ca: 2b5a subi r3, 91 + 88cc: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 88d0: 3300 movi r3, 0 + 88d2: 2b15 subi r3, 22 + 88d4: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xE5; + 88d8: 3300 movi r3, 0 + 88da: 2b1a subi r3, 27 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88dc: 3103 movi r1, 3 + 88de: 6c3b mov r0, r14 + SendData[SendLen++] = 0xE5; + 88e0: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88e4: e3ffffe0 bsr 0x88a4 // 88a4 + 88e8: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_EN len %d:",SendLen); + 88ec: 3204 movi r2, 4 + 88ee: 102a lrw r1, 0xb3b5 // 8914 + 88f0: 3002 movi r0, 2 + 88f2: e3fff8a1 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"WriteREG_EN:",SendData,SendLen); + 88f6: 6cbb mov r2, r14 + 88f8: 3304 movi r3, 4 + 88fa: 1028 lrw r1, 0xb3c9 // 8918 + 88fc: 3002 movi r0, 2 + 88fe: e3fff95f bsr 0x7bbc // 7bbc + UARTTransmit(UART0,SendData,SendLen); + 8902: 1067 lrw r3, 0x20000040 // 891c + 8904: 3204 movi r2, 4 + 8906: 9300 ld.w r0, (r3, 0x0) + 8908: 6c7b mov r1, r14 + 890a: e3ffef87 bsr 0x6818 // 6818 +} + 890e: 1402 addi r14, r14, 8 + 8910: 1490 pop r15 + 8912: 0000 bkpt + 8914: 0000b3b5 .long 0x0000b3b5 + 8918: 0000b3c9 .long 0x0000b3c9 + 891c: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_WriteREG_DIS: + +00008920 : +{ + 8920: 14d0 push r15 + 8922: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 8924: 3300 movi r3, 0 + 8926: b860 st.w r3, (r14, 0x0) + 8928: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 892c: 3300 movi r3, 0 + 892e: 2b5a subi r3, 91 + 8930: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 8934: 3300 movi r3, 0 + 8936: 2b15 subi r3, 22 + 8938: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xDC; + 893c: 3300 movi r3, 0 + 893e: 2b23 subi r3, 36 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8940: 3103 movi r1, 3 + 8942: 6c3b mov r0, r14 + SendData[SendLen++] = 0xDC; + 8944: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8948: e3ffffae bsr 0x88a4 // 88a4 + 894c: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_DIS len%d:",SendLen); + 8950: 3204 movi r2, 4 + 8952: 102a lrw r1, 0xb3d6 // 8978 + 8954: 3002 movi r0, 2 + 8956: e3fff86f bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"WriteREG_DIS:",SendData,SendLen); + 895a: 6cbb mov r2, r14 + 895c: 3304 movi r3, 4 + 895e: 1028 lrw r1, 0xb3ea // 897c + 8960: 3002 movi r0, 2 + 8962: e3fff92d bsr 0x7bbc // 7bbc + UARTTransmit(UART0,SendData,SendLen); + 8966: 1067 lrw r3, 0x20000040 // 8980 + 8968: 3204 movi r2, 4 + 896a: 9300 ld.w r0, (r3, 0x0) + 896c: 6c7b mov r1, r14 + 896e: e3ffef55 bsr 0x6818 // 6818 +} + 8972: 1402 addi r14, r14, 8 + 8974: 1490 pop r15 + 8976: 0000 bkpt + 8978: 0000b3d6 .long 0x0000b3d6 + 897c: 0000b3ea .long 0x0000b3ea + 8980: 20000040 .long 0x20000040 + +Disassembly of section .text.BLV_HLW8110_RWCMD_Packaging: + +00008984 : +{ + 8984: 14d4 push r4-r7, r15 + 8986: 1421 subi r14, r14, 4 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 8988: 1181 lrw r4, 0x200004f0 // 8a0c +{ + 898a: 6dc3 mov r7, r0 + 898c: 6d47 mov r5, r1 + 898e: 6d8b mov r6, r2 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 8990: 3100 movi r1, 0 + 8992: 321e movi r2, 30 + 8994: 6c13 mov r0, r4 + 8996: e3ffdfe1 bsr 0x4958 // 4958 <__memset_fast> + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 899a: 3300 movi r3, 0 + 899c: 2b5a subi r3, 91 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 899e: 3220 movi r2, 32 + 89a0: 6090 addu r2, r4 + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89a2: a460 st.b r3, (r4, 0x0) + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89a4: 3302 movi r3, 2 + 89a6: a27c st.b r3, (r2, 0x1c) + 89a8: 3300 movi r3, 0 + 89aa: 2b7f subi r3, 128 + 89ac: 6dcc or r7, r3 + u_det.Resent = 0x00; + 89ae: 3340 movi r3, 64 + 89b0: 60d0 addu r3, r4 + 89b2: 3100 movi r1, 0 + if( len > 0) + 89b4: 3d40 cmpnei r5, 0 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89b6: a4e1 st.b r7, (r4, 0x1) + u_det.Resent = 0x00; + 89b8: a321 st.b r1, (r3, 0x1) + u_det.RevNum = 0x00; + 89ba: a322 st.b r1, (r3, 0x2) + 89bc: 6dcb mov r7, r2 + if( len > 0) + 89be: 0c22 bf 0x8a02 // 8a02 + u_det.State = 0x01; + 89c0: 3201 movi r2, 1 + 89c2: a75e st.b r2, (r7, 0x1e) + u_det.WR_flag = SEND_W; + 89c4: 3202 movi r2, 2 + 89c6: a340 st.b r2, (r3, 0x0) + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89c8: 5d43 subi r2, r5, 1 + for (U8_T i = 0; i < len; i++) + 89ca: 3300 movi r3, 0 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89cc: b840 st.w r2, (r14, 0x0) + for (U8_T i = 0; i < len; i++) + 89ce: 654c cmphs r3, r5 + 89d0: 0c0f bf 0x89ee // 89ee + u_det.SendLen += len; + 89d2: 7554 zextb r5, r5 + 89d4: 5dc6 addi r6, r5, 2 + 89d6: 7598 zextb r6, r6 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 89d8: 7459 zexth r1, r6 + 89da: 100d lrw r0, 0x200004f0 // 8a0c + 89dc: 6118 addu r4, r6 + u_det.SendLen += len; + 89de: a7dc st.b r6, (r7, 0x1c) + u_det.SendLen += 1; + 89e0: 2502 addi r5, 3 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 89e2: e3ffff61 bsr 0x88a4 // 88a4 + 89e6: a400 st.b r0, (r4, 0x0) + u_det.SendLen += 1; + 89e8: a7bc st.b r5, (r7, 0x1c) +} + 89ea: 1401 addi r14, r14, 4 + 89ec: 1494 pop r4-r7, r15 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89ee: 9840 ld.w r2, (r14, 0x0) + 89f0: 608e subu r2, r3 + 89f2: 4243 lsli r2, r2, 3 + 89f4: 6c5b mov r1, r6 + 89f6: 5c0c addu r0, r4, r3 + 89f8: 7049 lsr r1, r2 + for (U8_T i = 0; i < len; i++) + 89fa: 2300 addi r3, 1 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89fc: a022 st.b r1, (r0, 0x2) + for (U8_T i = 0; i < len; i++) + 89fe: 74cc zextb r3, r3 + 8a00: 07e7 br 0x89ce // 89ce + u_det.State = 0x01; + 8a02: 3101 movi r1, 1 + 8a04: a23e st.b r1, (r2, 0x1e) + u_det.WR_flag = SEND_R; + 8a06: 3201 movi r2, 1 + 8a08: a340 st.b r2, (r3, 0x0) +} + 8a0a: 07f0 br 0x89ea // 89ea + 8a0c: 200004f0 .long 0x200004f0 + +Disassembly of section .text.HLW8110_RWCMD_Send: + +00008a10 : +{ + 8a10: 14d1 push r4, r15 + 8a12: 1428 subi r14, r14, 32 + if( (WR_SelFlag == SEND_W)&&(u_det.SendLen > 3) ) + 8a14: 3842 cmpnei r0, 2 + 8a16: 081f bt 0x8a54 // 8a54 + 8a18: 1079 lrw r3, 0x20000510 // 8a7c + 8a1a: 839c ld.b r4, (r3, 0x1c) + 8a1c: 3c03 cmphsi r4, 4 + 8a1e: 0c29 bf 0x8a70 // 8a70 + memcpy(SendData,u_det.SendBuff,u_det.SendLen); + 8a20: 6c93 mov r2, r4 + 8a22: 1038 lrw r1, 0x200004f0 // 8a80 + 8a24: 6c3b mov r0, r14 + 8a26: e3ffdfdd bsr 0x49e0 // 49e0 <__memcpy_fast> + SendLen = u_det.SendLen; + 8a2a: 7511 zexth r4, r4 + Dbg_Println(DBG_BIT_Debug_STATUS,"Send len:%d,SendCnt:%d",SendLen,u_det.Resent); + 8a2c: 1076 lrw r3, 0x20000530 // 8a84 + 8a2e: 6c93 mov r2, r4 + 8a30: 8361 ld.b r3, (r3, 0x1) + 8a32: 1036 lrw r1, 0xb405 // 8a88 + 8a34: 3002 movi r0, 2 + 8a36: e3fff7ff bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"SendBuff:",SendData,SendLen); + 8a3a: 6cd3 mov r3, r4 + 8a3c: 6cbb mov r2, r14 + 8a3e: 1034 lrw r1, 0xb41c // 8a8c + 8a40: 3002 movi r0, 2 + 8a42: e3fff8bd bsr 0x7bbc // 7bbc + UARTTransmit(UART0,SendData,SendLen); + 8a46: 1073 lrw r3, 0x20000040 // 8a90 + 8a48: 6c93 mov r2, r4 + 8a4a: 9300 ld.w r0, (r3, 0x0) + 8a4c: 6c7b mov r1, r14 + 8a4e: e3ffeee5 bsr 0x6818 // 6818 + 8a52: 0413 br 0x8a78 // 8a78 + else if(WR_SelFlag == SEND_R) + 8a54: 3841 cmpnei r0, 1 + 8a56: 080d bt 0x8a70 // 8a70 + memcpy(SendData,u_det.SendBuff,2); + 8a58: 106a lrw r3, 0x200004f0 // 8a80 + 8a5a: 8b40 ld.h r2, (r3, 0x0) + 8a5c: 74c9 zexth r3, r2 + 8a5e: dc4e1000 st.h r2, (r14, 0x0) + SendData[1] = (SendData[1] &0x7f ); + 8a62: 4b68 lsri r3, r3, 8 + 8a64: 327f movi r2, 127 + 8a66: 68c8 and r3, r2 + 8a68: dc6e0001 st.b r3, (r14, 0x1) + SendLen = 2; + 8a6c: 3402 movi r4, 2 + 8a6e: 07df br 0x8a2c // 8a2c + Dbg_Println(DBG_BIT_Debug_STATUS,"Send Err!:%d"); + 8a70: 1029 lrw r1, 0xb3f8 // 8a94 + 8a72: 3002 movi r0, 2 + 8a74: e3fff7e0 bsr 0x7a34 // 7a34 +} + 8a78: 1408 addi r14, r14, 32 + 8a7a: 1491 pop r4, r15 + 8a7c: 20000510 .long 0x20000510 + 8a80: 200004f0 .long 0x200004f0 + 8a84: 20000530 .long 0x20000530 + 8a88: 0000b405 .long 0x0000b405 + 8a8c: 0000b41c .long 0x0000b41c + 8a90: 20000040 .long 0x20000040 + 8a94: 0000b3f8 .long 0x0000b3f8 + +Disassembly of section .text.HLW8110_CleanSdFlag: + +00008a98 : + u_det.WR_flag = SEND_NONE; + 8a98: 1063 lrw r3, 0x20000530 // 8aa4 + 8a9a: 3200 movi r2, 0 + 8a9c: a340 st.b r2, (r3, 0x0) + u_det.RevNum = REV_NONE; + 8a9e: a342 st.b r2, (r3, 0x2) +} + 8aa0: 783c jmp r15 + 8aa2: 0000 bkpt + 8aa4: 20000530 .long 0x20000530 + +Disassembly of section .text.Get_RevState: + +00008aa8 : + if(u_det.RevNum == REV_OK) + 8aa8: 1065 lrw r3, 0x20000530 // 8abc + 8aaa: 8302 ld.b r0, (r3, 0x2) + 8aac: 3841 cmpnei r0, 1 + 8aae: 0804 bt 0x8ab6 // 8ab6 + u_det.RevNum = REV_NONE; + 8ab0: 3200 movi r2, 0 + 8ab2: a342 st.b r2, (r3, 0x2) +} + 8ab4: 783c jmp r15 + return REV_NONE; + 8ab6: 3000 movi r0, 0 + 8ab8: 07fe br 0x8ab4 // 8ab4 + 8aba: 0000 bkpt + 8abc: 20000530 .long 0x20000530 + +Disassembly of section .text.Get_SendState: + +00008ac0 : + if(u_det.SendState == SEND_STATE_SUCC) + 8ac0: 1066 lrw r3, 0x20000530 // 8ad8 + 8ac2: 8303 ld.b r0, (r3, 0x3) + 8ac4: 3841 cmpnei r0, 1 + 8ac6: 0804 bt 0x8ace // 8ace + u_det.SendState = SEND_STATE_NONE; + 8ac8: 3200 movi r2, 0 + 8aca: a343 st.b r2, (r3, 0x3) +} + 8acc: 783c jmp r15 + else if(u_det.SendState == SEND_STATE_FAIL) + 8ace: 3842 cmpnei r0, 2 + 8ad0: 0ffc bf 0x8ac8 // 8ac8 + return SEND_STATE_NONE; + 8ad2: 3000 movi r0, 0 + 8ad4: 07fc br 0x8acc // 8acc + 8ad6: 0000 bkpt + 8ad8: 20000530 .long 0x20000530 + +Disassembly of section .text.BLV_HLW8110_SendData_Tack: + +00008adc : +{ + 8adc: 14d4 push r4-r7, r15 + 8ade: 1422 subi r14, r14, 8 + switch(u_det.State) + 8ae0: 1392 lrw r4, 0x20000510 // 8ca8 + 8ae2: 841e ld.b r0, (r4, 0x1e) + 8ae4: 2800 subi r0, 1 + 8ae6: 3808 cmphsi r0, 9 + 8ae8: 0816 bt 0x8b14 // 8b14 + 8aea: e3ffd513 bsr 0x3510 // 3510 <___gnu_csky_case_uhi> + 8aee: 0009 .short 0x0009 + 8af0: 005b001d .long 0x005b001d + 8af4: 00730069 .long 0x00730069 + 8af8: 009f0082 .long 0x009f0082 + 8afc: 00ce00c0 .long 0x00ce00c0 + if(u_det.WR_flag == SEND_R) //读,需要等待回复校验 + 8b00: 136b lrw r3, 0x20000530 // 8cac + 8b02: 8360 ld.b r3, (r3, 0x0) + 8b04: 3b41 cmpnei r3, 1 + 8b06: 0809 bt 0x8b18 // 8b18 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b08: 136a lrw r3, 0x200000c4 // 8cb0 + 8b0a: 9340 ld.w r2, (r3, 0x0) + 8b0c: 136a lrw r3, 0x2000016c // 8cb4 + 8b0e: b340 st.w r2, (r3, 0x0) + u_det.State = 0x02; + 8b10: 3302 movi r3, 2 + u_det.State = 0x03; + 8b12: a47e st.b r3, (r4, 0x1e) +} + 8b14: 1402 addi r14, r14, 8 + 8b16: 1494 pop r4-r7, r15 + else if(u_det.WR_flag == SEND_W) //写,需要先写使能 + 8b18: 3b42 cmpnei r3, 2 + 8b1a: 0bfd bt 0x8b14 // 8b14 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b1c: 1365 lrw r3, 0x200000c4 // 8cb0 + 8b1e: 9340 ld.w r2, (r3, 0x0) + 8b20: 1365 lrw r3, 0x2000016c // 8cb4 + 8b22: b340 st.w r2, (r3, 0x0) + u_det.State = 0x03; + 8b24: 3303 movi r3, 3 + 8b26: 07f6 br 0x8b12 // 8b12 + if(u_det.WR_flag == SEND_R) + 8b28: 13c4 lrw r6, 0x200004f0 // 8cb8 + 8b2a: 3540 movi r5, 64 + 8b2c: 6158 addu r5, r6 + 8b2e: 8560 ld.b r3, (r5, 0x0) + 8b30: 3b41 cmpnei r3, 1 + 8b32: b8c1 st.w r6, (r14, 0x4) + 8b34: b8a0 st.w r5, (r14, 0x0) + 8b36: 0bef bt 0x8b14 // 8b14 + if((u_det.Resent == 0x00)||(SysTick_1ms - HLW8110_Sned_Tisk >= 80) ) + 8b38: 8541 ld.b r2, (r5, 0x1) + 8b3a: 3a40 cmpnei r2, 0 + 8b3c: 127d lrw r3, 0x200000c4 // 8cb0 + 8b3e: 12fe lrw r7, 0x2000016c // 8cb4 + 8b40: 0c07 bf 0x8b4e // 8b4e + 8b42: 9700 ld.w r0, (r7, 0x0) + 8b44: 9320 ld.w r1, (r3, 0x0) + 8b46: 6042 subu r1, r0 + 8b48: 304f movi r0, 79 + 8b4a: 6440 cmphs r0, r1 + 8b4c: 081b bt 0x8b82 // 8b82 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b4e: 9360 ld.w r3, (r3, 0x0) + if(u_det.Resent < 3) + 8b50: 3a02 cmphsi r2, 3 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b52: b760 st.w r3, (r7, 0x0) + if(u_det.Resent < 3) + 8b54: 080a bt 0x8b68 // 8b68 + HLW8110_RWCMD_Send(SEND_R); + 8b56: 3001 movi r0, 1 + 8b58: e3ffff5c bsr 0x8a10 // 8a10 + u_det.Resent++; + 8b5c: 9860 ld.w r3, (r14, 0x0) + 8b5e: 8361 ld.b r3, (r3, 0x1) + 8b60: 2300 addi r3, 1 + 8b62: 9840 ld.w r2, (r14, 0x0) + u_det.Resent++; + 8b64: a261 st.b r3, (r2, 0x1) + break; + 8b66: 07d7 br 0x8b14 // 8b14 + u_det.SendState = SEND_STATE_FAIL; + 8b68: 9860 ld.w r3, (r14, 0x0) + 8b6a: 3202 movi r2, 2 + 8b6c: a343 st.b r2, (r3, 0x3) + u_det.State = HLW_WAIT; + 8b6e: 3309 movi r3, 9 + 8b70: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8b72: 3300 movi r3, 0 + 8b74: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8b76: 9841 ld.w r2, (r14, 0x4) + 8b78: 1271 lrw r3, 0xbb8 // 8cbc + 8b7a: b271 st.w r3, (r2, 0x44) + HLW8110_CleanSdFlag(); + 8b7c: e3ffff8e bsr 0x8a98 // 8a98 + break; + 8b80: 07ca br 0x8b14 // 8b14 + 8b82: b860 st.w r3, (r14, 0x0) + if(Get_RevState() == REV_OK) + 8b84: e3ffff92 bsr 0x8aa8 // 8aa8 + 8b88: 3841 cmpnei r0, 1 + 8b8a: 9860 ld.w r3, (r14, 0x0) + 8b8c: 0bc4 bt 0x8b14 // 8b14 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b8e: 9360 ld.w r3, (r3, 0x0) + 8b90: b760 st.w r3, (r7, 0x0) + u_det.State = HLW_WAIT; + 8b92: 3309 movi r3, 9 + 8b94: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8b96: 3300 movi r3, 0 + u_det.SendState = SEND_STATE_SUCC; + 8b98: 3201 movi r2, 1 + u_det.Pub_NextState = NextState; + 8b9a: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8b9c: 330a movi r3, 10 + u_det.SendState = SEND_STATE_SUCC; + 8b9e: a543 st.b r2, (r5, 0x3) + u_det.Pub_WaitTim = WaitTime; + 8ba0: b671 st.w r3, (r6, 0x44) + 8ba2: 07ed br 0x8b7c // 8b7c + HLW8110_Sned_Tisk = SysTick_1ms; + 8ba4: 1263 lrw r3, 0x200000c4 // 8cb0 + 8ba6: 9340 ld.w r2, (r3, 0x0) + 8ba8: 1263 lrw r3, 0x2000016c // 8cb4 + 8baa: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8bac: 3309 movi r3, 9 + 8bae: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bb0: 3304 movi r3, 4 + 8bb2: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bb4: 320a movi r2, 10 + 8bb6: 1261 lrw r3, 0x200004f0 // 8cb8 + 8bb8: b351 st.w r2, (r3, 0x44) + HLW8110_WriteREG_EN(); + 8bba: e3fffe81 bsr 0x88bc // 88bc + break; + 8bbe: 07ab br 0x8b14 // 8b14 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bc0: 117c lrw r3, 0x200000c4 // 8cb0 + 8bc2: 9340 ld.w r2, (r3, 0x0) + 8bc4: 117c lrw r3, 0x2000016c // 8cb4 + 8bc6: b340 st.w r2, (r3, 0x0) + u_det.Resent = 0x00; + 8bc8: 1179 lrw r3, 0x20000530 // 8cac + 8bca: 3200 movi r2, 0 + 8bcc: a341 st.b r2, (r3, 0x1) + u_det.RevNum = 0x00; + 8bce: a342 st.b r2, (r3, 0x2) + u_det.State = 0x05; + 8bd0: 3305 movi r3, 5 + 8bd2: 07a0 br 0x8b12 // 8b12 + HLW8110_RWCMD_Send(SEND_W); + 8bd4: 3002 movi r0, 2 + 8bd6: e3ffff1d bsr 0x8a10 // 8a10 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bda: 1176 lrw r3, 0x200000c4 // 8cb0 + 8bdc: 9340 ld.w r2, (r3, 0x0) + 8bde: 1176 lrw r3, 0x2000016c // 8cb4 + 8be0: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8be2: 3309 movi r3, 9 + 8be4: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8be6: 3306 movi r3, 6 + 8be8: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bea: 320a movi r2, 10 + 8bec: 1173 lrw r3, 0x200004f0 // 8cb8 + 8bee: b351 st.w r2, (r3, 0x44) + 8bf0: 0792 br 0x8b14 // 8b14 + if(u_det.Resent < 3) + 8bf2: 1172 lrw r3, 0x200004f0 // 8cb8 + 8bf4: 3240 movi r2, 64 + 8bf6: 608c addu r2, r3 + 8bf8: 8221 ld.b r1, (r2, 0x1) + 8bfa: 3902 cmphsi r1, 3 + 8bfc: 11cd lrw r6, 0x200000c4 // 8cb0 + 8bfe: 11ae lrw r5, 0x2000016c // 8cb4 + 8c00: 080b bt 0x8c16 // 8c16 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c02: 9660 ld.w r3, (r6, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c04: 3001 movi r0, 1 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c06: b560 st.w r3, (r5, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c08: e3ffff04 bsr 0x8a10 // 8a10 + u_det.State = 0x07; + 8c0c: 3307 movi r3, 7 + 8c0e: a47e st.b r3, (r4, 0x1e) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c10: 9660 ld.w r3, (r6, 0x0) + 8c12: b560 st.w r3, (r5, 0x0) + break; + 8c14: 0780 br 0x8b14 // 8b14 + u_det.SendState = SEND_STATE_FAIL; + 8c16: 3102 movi r1, 2 + 8c18: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c1a: 9640 ld.w r2, (r6, 0x0) + 8c1c: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c1e: 3209 movi r2, 9 + 8c20: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c22: 3208 movi r2, 8 + 8c24: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c26: 1146 lrw r2, 0xbb8 // 8cbc + 8c28: b351 st.w r2, (r3, 0x44) + 8c2a: 07a9 br 0x8b7c // 8b7c + if(SysTick_1ms - HLW8110_Sned_Tisk >= 80) + 8c2c: 11c1 lrw r6, 0x200000c4 // 8cb0 + 8c2e: 11a2 lrw r5, 0x2000016c // 8cb4 + 8c30: 9660 ld.w r3, (r6, 0x0) + 8c32: 9540 ld.w r2, (r5, 0x0) + 8c34: 60ca subu r3, r2 + 8c36: 324f movi r2, 79 + 8c38: 64c8 cmphs r2, r3 + 8c3a: 0809 bt 0x8c4c // 8c4c + HLW8110_Sned_Tisk = SysTick_1ms; + 8c3c: 9660 ld.w r3, (r6, 0x0) + 8c3e: b560 st.w r3, (r5, 0x0) + u_det.Resent++; + 8c40: 105b lrw r2, 0x20000530 // 8cac + u_det.State = 0x05; + 8c42: 3305 movi r3, 5 + 8c44: a47e st.b r3, (r4, 0x1e) + u_det.Resent++; + 8c46: 8261 ld.b r3, (r2, 0x1) + 8c48: 2300 addi r3, 1 + 8c4a: 078d br 0x8b64 // 8b64 + if(Get_RevState() == REV_OK) + 8c4c: e3ffff2e bsr 0x8aa8 // 8aa8 + 8c50: 3841 cmpnei r0, 1 + 8c52: 0b61 bt 0x8b14 // 8b14 + u_det.SendState = SEND_STATE_SUCC; + 8c54: 1079 lrw r3, 0x200004f0 // 8cb8 + 8c56: 3240 movi r2, 64 + 8c58: 608c addu r2, r3 + 8c5a: 3101 movi r1, 1 + 8c5c: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c5e: 9640 ld.w r2, (r6, 0x0) + 8c60: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c62: 3209 movi r2, 9 + 8c64: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c66: 3208 movi r2, 8 + 8c68: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c6a: 320a movi r2, 10 + 8c6c: 07de br 0x8c28 // 8c28 + HLW8110_WriteREG_DIS(); + 8c6e: e3fffe59 bsr 0x8920 // 8920 + u_det.State = HLW_WAIT; + 8c72: 3309 movi r3, 9 + 8c74: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c76: 3300 movi r3, 0 + u_det.Pub_WaitTim = WaitTime; + 8c78: 320a movi r2, 10 + u_det.Pub_NextState = NextState; + 8c7a: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c7c: 106f lrw r3, 0x200004f0 // 8cb8 + 8c7e: b351 st.w r2, (r3, 0x44) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c80: 106c lrw r3, 0x200000c4 // 8cb0 + 8c82: 9340 ld.w r2, (r3, 0x0) + 8c84: 106c lrw r3, 0x2000016c // 8cb4 + 8c86: b340 st.w r2, (r3, 0x0) + break; + 8c88: 0746 br 0x8b14 // 8b14 + if(SysTick_1ms - HLW8110_Sned_Tisk >= u_det.Pub_WaitTim) + 8c8a: 106a lrw r3, 0x200000c4 // 8cb0 + 8c8c: 104a lrw r2, 0x2000016c // 8cb4 + 8c8e: 9360 ld.w r3, (r3, 0x0) + 8c90: 9240 ld.w r2, (r2, 0x0) + 8c92: 60ca subu r3, r2 + 8c94: 1049 lrw r2, 0x200004f0 // 8cb8 + 8c96: 9251 ld.w r2, (r2, 0x44) + 8c98: 648c cmphs r3, r2 + 8c9a: 0f3d bf 0x8b14 // 8b14 + u_det.State = u_det.Pub_NextState; + 8c9c: 847f ld.b r3, (r4, 0x1f) + 8c9e: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = 0x00; + 8ca0: 3300 movi r3, 0 + 8ca2: a47f st.b r3, (r4, 0x1f) +} + 8ca4: 0738 br 0x8b14 // 8b14 + 8ca6: 0000 bkpt + 8ca8: 20000510 .long 0x20000510 + 8cac: 20000530 .long 0x20000530 + 8cb0: 200000c4 .long 0x200000c4 + 8cb4: 2000016c .long 0x2000016c + 8cb8: 200004f0 .long 0x200004f0 + 8cbc: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.HLW8110_Convert_CurrentRegA_Value: + +00008cc0 : +{ + 8cc0: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8cc2: 109e lrw r4, 0x20000538 // 8d38 + 8cc4: 3280 movi r2, 128 + 8cc6: 9468 ld.w r3, (r4, 0x20) + 8cc8: 4250 lsli r2, r2, 16 + 8cca: 68c8 and r3, r2 + 8ccc: 3b40 cmpnei r3, 0 + 8cce: 10bc lrw r5, 0x20000574 // 8d3c + 8cd0: 0831 bt 0x8d32 // 8d32 + Conv_Val = value / 1000.0; + 8cd2: e3ffdb1f bsr 0x4310 // 4310 <__floatunsidf> + 8cd6: 3200 movi r2, 0 + 8cd8: 107a lrw r3, 0x408f4000 // 8d40 + 8cda: e3ffd97b bsr 0x3fd0 // 3fd0 <__divdf3> + 8cde: e3ffdb01 bsr 0x42e0 // 42e0 <__truncdfsf2> + 8ce2: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIAC_RegData; + 8ce4: 8c00 ld.h r0, (r4, 0x0) + 8ce6: e3ffd64f bsr 0x3984 // 3984 <__floatsisf> + 8cea: 6c5b mov r1, r6 + 8cec: e3ffd52a bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x800; + 8cf0: 31e8 movi r1, 232 + 8cf2: 4136 lsli r1, r1, 22 + 8cf4: e3ffd526 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x1000; + 8cf8: 31e6 movi r1, 230 + 8cfa: 4136 lsli r1, r1, 22 + 8cfc: e3ffd522 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val; + 8d00: 9534 ld.w r1, (r5, 0x50) + 8d02: e3ffd51f bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + 8d06: 9537 ld.w r1, (r5, 0x5c) + 8d08: e3ffd4ec bsr 0x36e0 // 36e0 <__addsf3> + 8d0c: 6d03 mov r4, r0 + g_Eng.det_ectA = (Conv_Val * 100); //单位10mA + 8d0e: 102e lrw r1, 0x42c80000 // 8d44 + 8d10: 6c13 mov r0, r4 + 8d12: e3ffd517 bsr 0x3740 // 3740 <__mulsf3> + 8d16: e3ffd40b bsr 0x352c // 352c <__fixunssfsi> + 8d1a: b50c st.w r0, (r5, 0x30) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"CurReg:%f",Conv_Val); + 8d1c: 6c13 mov r0, r4 + 8d1e: e3ffd68f bsr 0x3a3c // 3a3c <__extendsfdf2> + 8d22: 6c83 mov r2, r0 + 8d24: 6cc7 mov r3, r1 + 8d26: 3001 movi r0, 1 + 8d28: 1028 lrw r1, 0xb426 // 8d48 + 8d2a: e3fff685 bsr 0x7a34 // 7a34 +} + 8d2e: 6c13 mov r0, r4 + 8d30: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8d32: 3400 movi r4, 0 + 8d34: 07ed br 0x8d0e // 8d0e + 8d36: 0000 bkpt + 8d38: 20000538 .long 0x20000538 + 8d3c: 20000574 .long 0x20000574 + 8d40: 408f4000 .long 0x408f4000 + 8d44: 42c80000 .long 0x42c80000 + 8d48: 0000b426 .long 0x0000b426 + +Disassembly of section .text.HLW8110_Convert_VoltageReg_Value: + +00008d4c : +{ + 8d4c: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8d4e: 109a lrw r4, 0x20000538 // 8db4 + 8d50: 3280 movi r2, 128 + 8d52: 9468 ld.w r3, (r4, 0x20) + 8d54: 4250 lsli r2, r2, 16 + 8d56: 68c8 and r3, r2 + 8d58: 3b40 cmpnei r3, 0 + 8d5a: 10b8 lrw r5, 0x20000574 // 8db8 + 8d5c: 082a bt 0x8db0 // 8db0 + Conv_Val = value / 100.0; + 8d5e: e3ffdad9 bsr 0x4310 // 4310 <__floatunsidf> + 8d62: 3200 movi r2, 0 + 8d64: 1076 lrw r3, 0x40590000 // 8dbc + 8d66: e3ffd935 bsr 0x3fd0 // 3fd0 <__divdf3> + 8d6a: e3ffdabb bsr 0x42e0 // 42e0 <__truncdfsf2> + 8d6e: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSUC_RegData; + 8d70: 8c02 ld.h r0, (r4, 0x4) + 8d72: e3ffd609 bsr 0x3984 // 3984 <__floatsisf> + 8d76: 6c5b mov r1, r6 + 8d78: e3ffd4e4 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x400000; + 8d7c: 31d2 movi r1, 210 + 8d7e: 4136 lsli r1, r1, 22 + 8d80: e3ffd4e0 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.V_K_Val;//VK_Val; + 8d84: 9533 ld.w r1, (r5, 0x4c) + 8d86: e3ffd4dd bsr 0x3740 // 3740 <__mulsf3> + 8d8a: 6d03 mov r4, r0 + g_Eng.det_V = (Conv_Val * 100); //单位:10mV + 8d8c: 102d lrw r1, 0x42c80000 // 8dc0 + 8d8e: 6c13 mov r0, r4 + 8d90: e3ffd4d8 bsr 0x3740 // 3740 <__mulsf3> + 8d94: e3ffd3cc bsr 0x352c // 352c <__fixunssfsi> + 8d98: b50b st.w r0, (r5, 0x2c) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"VolReg:%f",Conv_Val); + 8d9a: 6c13 mov r0, r4 + 8d9c: e3ffd650 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8da0: 6c83 mov r2, r0 + 8da2: 6cc7 mov r3, r1 + 8da4: 3001 movi r0, 1 + 8da6: 1028 lrw r1, 0xb430 // 8dc4 + 8da8: e3fff646 bsr 0x7a34 // 7a34 +} + 8dac: 6c13 mov r0, r4 + 8dae: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8db0: 3400 movi r4, 0 + 8db2: 07ed br 0x8d8c // 8d8c + 8db4: 20000538 .long 0x20000538 + 8db8: 20000574 .long 0x20000574 + 8dbc: 40590000 .long 0x40590000 + 8dc0: 42c80000 .long 0x42c80000 + 8dc4: 0000b430 .long 0x0000b430 + +Disassembly of section .text.HLW8110_Convert_PowerReg_Value: + +00008dc8 : +{ + 8dc8: 14d3 push r4-r6, r15 + 8dca: 1421 subi r14, r14, 4 + Conv_Val = abs((int)value); + 8dcc: 38df btsti r0, 31 +{ + 8dce: 6d43 mov r5, r0 + Conv_Val = abs((int)value); + 8dd0: 0c03 bf 0x8dd6 // 8dd6 + 8dd2: 3000 movi r0, 0 + 8dd4: 6016 subu r0, r5 + 8dd6: e3ffd5d7 bsr 0x3984 // 3984 <__floatsisf> + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8dda: 1078 lrw r3, 0x20000538 // 8e38 + Conv_Val = abs((int)value); + 8ddc: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8dde: 8b03 ld.h r0, (r3, 0x6) + 8de0: e3ffd5d2 bsr 0x3984 // 3984 <__floatsisf> + 8de4: 6c53 mov r1, r4 + 8de6: e3ffd4ad bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x8000; + 8dea: 31e0 movi r1, 224 + 8dec: 4136 lsli r1, r1, 22 + 8dee: e3ffd4a9 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x10000; + 8df2: 31de movi r1, 222 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8df4: 1092 lrw r4, 0x20000574 // 8e3c + Conv_Val = Conv_Val / 0x10000; + 8df6: 4136 lsli r1, r1, 22 + 8df8: e3ffd4a4 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8dfc: 9434 ld.w r1, (r4, 0x50) + 8dfe: e3ffd4a1 bsr 0x3740 // 3740 <__mulsf3> + 8e02: 9436 ld.w r1, (r4, 0x58) + 8e04: e3ffd49e bsr 0x3740 // 3740 <__mulsf3> + 8e08: 9433 ld.w r1, (r4, 0x4c) + 8e0a: e3ffd49b bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8e0e: 9438 ld.w r1, (r4, 0x60) + 8e10: e3ffd468 bsr 0x36e0 // 36e0 <__addsf3> + 8e14: 6d83 mov r6, r0 + g_Eng.det_powA = Conv_Val; //单位:W + 8e16: e3ffd38b bsr 0x352c // 352c <__fixunssfsi> + 8e1a: b40e st.w r0, (r4, 0x38) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"PowReg:%f,%d",Conv_Val,value); + 8e1c: 6c1b mov r0, r6 + 8e1e: e3ffd60f bsr 0x3a3c // 3a3c <__extendsfdf2> + 8e22: 6c83 mov r2, r0 + 8e24: 6cc7 mov r3, r1 + 8e26: b8a0 st.w r5, (r14, 0x0) + 8e28: 3001 movi r0, 1 + 8e2a: 1026 lrw r1, 0xb43a // 8e40 + 8e2c: e3fff604 bsr 0x7a34 // 7a34 +} + 8e30: 6c1b mov r0, r6 + 8e32: 1401 addi r14, r14, 4 + 8e34: 1493 pop r4-r6, r15 + 8e36: 0000 bkpt + 8e38: 20000538 .long 0x20000538 + 8e3c: 20000574 .long 0x20000574 + 8e40: 0000b43a .long 0x0000b43a + +Disassembly of section .text.HLW8110_Convert_EnergyReg_Value: + +00008e44 : +{ + 8e44: 14d4 push r4-r7, r15 + 8e46: 1422 subi r14, r14, 8 + g_Eng.U32_EnergyA_RegData_Diff = 0x00; + 8e48: 1180 lrw r4, 0x20000574 // 8ec8 +{ + 8e4a: 6d43 mov r5, r0 + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //当前记录的有效值寄存器值小于于读取到的 + 8e4c: 9471 ld.w r3, (r4, 0x44) + 8e4e: 64c0 cmphs r0, r3 + 8e50: 4368 lsli r3, r3, 8 + 8e52: 4048 lsli r2, r0, 8 + g_Eng.U32_EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 8e54: 4b68 lsri r3, r3, 8 + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //当前记录的有效值寄存器值小于于读取到的 + 8e56: 0c35 bf 0x8ec0 // 8ec0 + g_Eng.U32_EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 8e58: 586d subu r3, r0, r3 + g_Eng.U32_EnergyA_RegData_Diff = ( ((g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF)+0xFFFFFF)- value ); + 8e5a: b470 st.w r3, (r4, 0x40) + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e5c: 9470 ld.w r3, (r4, 0x40) + 8e5e: 940f ld.w r0, (r4, 0x3c) + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e60: 4a48 lsri r2, r2, 8 + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e62: 600c addu r0, r3 + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e64: b451 st.w r2, (r4, 0x44) + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e66: b40f st.w r0, (r4, 0x3c) + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + 8e68: e3ffda54 bsr 0x4310 // 4310 <__floatunsidf> + 8e6c: e3ffda3a bsr 0x42e0 // 42e0 <__truncdfsf2> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e70: 9434 ld.w r1, (r4, 0x50) + 8e72: e3ffd467 bsr 0x3740 // 3740 <__mulsf3> + 8e76: 9433 ld.w r1, (r4, 0x4c) + 8e78: e3ffd464 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e7c: 1074 lrw r3, 0x20000538 // 8ecc + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e7e: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e80: 8b06 ld.h r0, (r3, 0xc) + 8e82: e3ffd581 bsr 0x3984 // 3984 <__floatsisf> + 8e86: 6c5b mov r1, r6 + 8e88: e3ffd45c bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x20000000; + 8e8c: 31c4 movi r1, 196 + 8e8e: 4136 lsli r1, r1, 22 + 8e90: e3ffd458 bsr 0x3740 // 3740 <__mulsf3> + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8e94: 102f lrw r1, 0x447a0000 // 8ed0 + Conv_Val = Conv_Val / 0x20000000; + 8e96: 6d83 mov r6, r0 + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8e98: e3ffd454 bsr 0x3740 // 3740 <__mulsf3> + 8e9c: e3ffd348 bsr 0x352c // 352c <__fixunssfsi> + 8ea0: 6dc3 mov r7, r0 + 8ea2: b408 st.w r0, (r4, 0x20) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"EngReg:%f,value:%d,Total_Eng:%d",Conv_Val,value,g_Eng.Total_Eng); + 8ea4: 6c1b mov r0, r6 + 8ea6: e3ffd5cb bsr 0x3a3c // 3a3c <__extendsfdf2> + 8eaa: 6c83 mov r2, r0 + 8eac: 6cc7 mov r3, r1 + 8eae: b8e1 st.w r7, (r14, 0x4) + 8eb0: b8a0 st.w r5, (r14, 0x0) + 8eb2: 3001 movi r0, 1 + 8eb4: 1028 lrw r1, 0xb447 // 8ed4 + 8eb6: e3fff5bf bsr 0x7a34 // 7a34 +} + 8eba: 6c1b mov r0, r6 + 8ebc: 1402 addi r14, r14, 8 + 8ebe: 1494 pop r4-r7, r15 + g_Eng.U32_EnergyA_RegData_Diff = ( ((g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF)+0xFFFFFF)- value ); + 8ec0: 1026 lrw r1, 0xffffff // 8ed8 + 8ec2: 60c4 addu r3, r1 + 8ec4: 60c2 subu r3, r0 + 8ec6: 07ca br 0x8e5a // 8e5a + 8ec8: 20000574 .long 0x20000574 + 8ecc: 20000538 .long 0x20000538 + 8ed0: 447a0000 .long 0x447a0000 + 8ed4: 0000b447 .long 0x0000b447 + 8ed8: 00ffffff .long 0x00ffffff + +Disassembly of section .text.HLW8110_RecvData_Processing: + +00008edc : +{ + 8edc: 14d4 push r4-r7, r15 + 8ede: 1424 subi r14, r14, 16 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8ee0: 5947 subi r2, r1, 2 + 8ee2: 7489 zexth r2, r2 + 8ee4: 3a08 cmphsi r2, 9 +{ + 8ee6: b803 st.w r0, (r14, 0xc) + 8ee8: 6dc7 mov r7, r1 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8eea: 0c09 bf 0x8efc // 8efc + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",RecvLen); + 8eec: 6c87 mov r2, r1 + 8eee: 3000 movi r0, 0 + 8ef0: 0337 lrw r1, 0xb467 // 9110 + 8ef2: e3fff5a1 bsr 0x7a34 // 7a34 + return 0x01; + 8ef6: 3001 movi r0, 1 +} + 8ef8: 1404 addi r14, r14, 16 + 8efa: 1494 pop r4-r7, r15 + if(u_det.WR_flag == SEND_NONE) + 8efc: 03b9 lrw r5, 0x200004f0 // 9114 + 8efe: 3340 movi r3, 64 + 8f00: 60d4 addu r3, r5 + 8f02: 8340 ld.b r2, (r3, 0x0) + 8f04: 3a40 cmpnei r2, 0 + 8f06: b861 st.w r3, (r14, 0x4) + 8f08: b862 st.w r3, (r14, 0x8) + 8f0a: 0807 bt 0x8f18 // 8f18 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not Tack "); + 8f0c: 3000 movi r0, 0 + 8f0e: 033c lrw r1, 0xb472 // 9118 + 8f10: e3fff592 bsr 0x7a34 // 7a34 + return 0x02; + 8f14: 3002 movi r0, 2 + 8f16: 07f1 br 0x8ef8 // 8ef8 + memset(u_det.RevBuff,0,REV_BUFFER_SIZE); + 8f18: 301e movi r0, 30 + 8f1a: 321e movi r2, 30 + 8f1c: 3100 movi r1, 0 + 8f1e: 6014 addu r0, r5 + 8f20: e3ffdd1c bsr 0x4958 // 4958 <__memset_fast> + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f24: 8d40 ld.h r2, (r5, 0x0) + 8f26: 7589 zexth r6, r2 + u_det.RevLen += 2; + 8f28: 3420 movi r4, 32 + 8f2a: 6114 addu r4, r5 + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f2c: ad4f st.h r2, (r5, 0x1e) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f2e: 4ec8 lsri r6, r6, 8 + 8f30: 327f movi r2, 127 + u_det.RevLen += 2; + 8f32: 3302 movi r3, 2 + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f34: 6988 and r6, r2 + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f36: 9823 ld.w r1, (r14, 0xc) + 8f38: 6c9f mov r2, r7 + 8f3a: 6c13 mov r0, r4 + u_det.RevLen += 2; + 8f3c: a47d st.b r3, (r4, 0x1d) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f3e: a5df st.b r6, (r5, 0x1f) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f40: e3ffdd50 bsr 0x49e0 // 49e0 <__memcpy_fast> + u_det.RevLen += RecvLen; + 8f44: 843d ld.b r1, (r4, 0x1d) + 8f46: 605c addu r1, r7 + 8f48: 7444 zextb r1, r1 + 8f4a: a43d st.b r1, (r4, 0x1d) + if(HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1) != RecvData[RecvLen-1]) + 8f4c: 301e movi r0, 30 + 8f4e: 2900 subi r1, 1 + 8f50: 7445 zexth r1, r1 + 8f52: 6014 addu r0, r5 + 8f54: e3fffca8 bsr 0x88a4 // 88a4 + 8f58: 9863 ld.w r3, (r14, 0xc) + 8f5a: 60dc addu r3, r7 + 8f5c: 6dcf mov r7, r3 + 8f5e: 2f00 subi r7, 1 + 8f60: 8760 ld.b r3, (r7, 0x0) + 8f62: 64c2 cmpne r0, r3 + 8f64: 6c83 mov r2, r0 + 8f66: 6dd3 mov r7, r4 + 8f68: 0c12 bf 0x8f8c // 8f8c + Dbg_Println(DBG_BIT_SYS_STATUS,"CRC Err:%x,%x,CMD:%02x",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + 8f6a: 132d lrw r1, 0xb47c // 911c + 8f6c: 3000 movi r0, 0 + 8f6e: b8c0 st.w r6, (r14, 0x0) + 8f70: e3fff562 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); + 8f74: 6c97 mov r2, r5 + 8f76: 847d ld.b r3, (r4, 0x1d) + 8f78: 221d addi r2, 30 + 8f7a: 3002 movi r0, 2 + 8f7c: 1329 lrw r1, 0xb493 // 9120 + 8f7e: e3fff61f bsr 0x7bbc // 7bbc + u_det.RevNum = REV_ERR; + 8f82: 9861 ld.w r3, (r14, 0x4) + 8f84: 3202 movi r2, 2 + 8f86: a342 st.b r2, (r3, 0x2) + return 0x04; + 8f88: 3004 movi r0, 4 + 8f8a: 07b7 br 0x8ef8 // 8ef8 + u_det.RevNum = REV_OK; + 8f8c: 9862 ld.w r3, (r14, 0x8) + 8f8e: 3201 movi r2, 1 + 8f90: a342 st.b r2, (r3, 0x2) + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW8110_Recv CMD:%02X",u_det.RevBuff[1]); + 8f92: 3002 movi r0, 2 + 8f94: 6c9b mov r2, r6 + 8f96: 1324 lrw r1, 0xb497 // 9124 + 8f98: e3fff54e bsr 0x7a34 // 7a34 + switch(u_det.RevBuff[1]) + 8f9c: 857f ld.b r3, (r5, 0x1f) + 8f9e: 316f movi r1, 111 + 8fa0: 644e cmpne r3, r1 + 8fa2: 1342 lrw r2, 0x20000538 // 9128 + 8fa4: 0c6b bf 0x907a // 907a + 8fa6: 64c4 cmphs r1, r3 + 8fa8: 0c28 bf 0x8ff8 // 8ff8 + 8faa: 3124 movi r1, 36 + 8fac: 644e cmpne r3, r1 + 8fae: 0c8c bf 0x90c6 // 90c6 + 8fb0: 64c4 cmphs r1, r3 + 8fb2: 0c0f bf 0x8fd0 // 8fd0 + 8fb4: 3b41 cmpnei r3, 1 + 8fb6: 0c52 bf 0x905a // 905a + 8fb8: 3b40 cmpnei r3, 0 + 8fba: 0c40 bf 0x903a // 903a + 8fbc: 3b53 cmpnei r3, 19 + 8fbe: 0c56 bf 0x906a // 906a + g_CalFactor.U16_HFConst_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 8fc0: 8760 ld.b r3, (r7, 0x0) + 8fc2: 4368 lsli r3, r3, 8 + 8fc4: 8721 ld.b r1, (r7, 0x1) + 8fc6: 60c4 addu r3, r1 + 8fc8: b26e st.w r3, (r2, 0x38) + g_Eng.hfcount = g_CalFactor.U16_HFConst_RegData; + 8fca: 1259 lrw r2, 0x20000574 // 912c + 8fcc: aa6e st.h r3, (r2, 0x1c) + 8fce: 0442 br 0x9052 // 9052 + switch(u_det.RevBuff[1]) + 8fd0: 3128 movi r1, 40 + 8fd2: 644e cmpne r3, r1 + 8fd4: 0c84 bf 0x90dc // 90dc + 8fd6: 312c movi r1, 44 + 8fd8: 644e cmpne r3, r1 + 8fda: 0c8c bf 0x90f2 // 90f2 + 8fdc: 3126 movi r1, 38 + 8fde: 644e cmpne r3, r1 + 8fe0: 0bf0 bt 0x8fc0 // 8fc0 + g_CalFactor.U24_Voltage_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 8fe2: 8400 ld.b r0, (r4, 0x0) + 8fe4: 8461 ld.b r3, (r4, 0x1) + 8fe6: 4368 lsli r3, r3, 8 + 8fe8: 4010 lsli r0, r0, 16 + 8fea: 600c addu r0, r3 + 8fec: 8462 ld.b r3, (r4, 0x2) + 8fee: 600c addu r0, r3 + 8ff0: b207 st.w r0, (r2, 0x1c) + HLW8110_Convert_VoltageReg_Value(g_CalFactor.U24_Voltage_RegData); + 8ff2: e3fffead bsr 0x8d4c // 8d4c + 8ff6: 042e br 0x9052 // 9052 + switch(u_det.RevBuff[1]) + 8ff8: 3173 movi r1, 115 + 8ffa: 644e cmpne r3, r1 + 8ffc: 0c4d bf 0x9096 // 9096 + 8ffe: 64c4 cmphs r1, r3 + 9000: 0c0c bf 0x9018 // 9018 + 9002: 3571 movi r5, 113 + 9004: 654e cmpne r3, r5 + 9006: 8420 ld.b r1, (r4, 0x0) + 9008: 8401 ld.b r0, (r4, 0x1) + 900a: 0c42 bf 0x908e // 908e + 900c: 64d4 cmphs r5, r3 + 900e: 083c bt 0x9086 // 9086 + g_CalFactor.U16_RMSUC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9010: 4128 lsli r1, r1, 8 + 9012: 6040 addu r1, r0 + 9014: aa22 st.h r1, (r2, 0x4) + 9016: 041e br 0x9052 // 9052 + switch(u_det.RevBuff[1]) + 9018: 3175 movi r1, 117 + 901a: 644e cmpne r3, r1 + 901c: 0c49 bf 0x90ae // 90ae + 901e: 644c cmphs r3, r1 + 9020: 0c41 bf 0x90a2 // 90a2 + 9022: 3176 movi r1, 118 + 9024: 644e cmpne r3, r1 + 9026: 0c4a bf 0x90ba // 90ba + 9028: 3177 movi r1, 119 + 902a: 644e cmpne r3, r1 + 902c: 0bca bt 0x8fc0 // 8fc0 + g_CalFactor.U16_EnergyBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 902e: 8460 ld.b r3, (r4, 0x0) + 9030: 4368 lsli r3, r3, 8 + 9032: 8421 ld.b r1, (r4, 0x1) + 9034: 60c4 addu r3, r1 + 9036: aa67 st.h r3, (r2, 0xe) + 9038: 040d br 0x9052 // 9052 + g_CalFactor.U16_Check_SysconReg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 903a: 8460 ld.b r3, (r4, 0x0) + 903c: 4368 lsli r3, r3, 8 + 903e: 8421 ld.b r1, (r4, 0x1) + 9040: 60c4 addu r3, r1 + 9042: 74cd zexth r3, r3 + 9044: aa6a st.h r3, (r2, 0x14) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 9046: 115b lrw r2, 0xa04 // 9130 + 9048: 648e cmpne r3, r2 + u_det.RevNum = REV_OK; + 904a: 9862 ld.w r3, (r14, 0x8) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 904c: 0805 bt 0x9056 // 9056 + u_det.RevNum = REV_OK; + 904e: 3201 movi r2, 1 + u_det.RevNum = REV_ERR; + 9050: a342 st.b r2, (r3, 0x2) + return 0x00; + 9052: 3000 movi r0, 0 + break; + 9054: 0752 br 0x8ef8 // 8ef8 + u_det.RevNum = REV_ERR; + 9056: 3202 movi r2, 2 + 9058: 07fc br 0x9050 // 9050 + g_CalFactor.U16_Check_Emucon1Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 905a: 8460 ld.b r3, (r4, 0x0) + 905c: 4368 lsli r3, r3, 8 + 905e: 8421 ld.b r1, (r4, 0x1) + 9060: 60c4 addu r3, r1 + 9062: 74cd zexth r3, r3 + 9064: aa6b st.h r3, (r2, 0x16) + if(g_CalFactor.U16_Check_Emucon1Reg_Data == EMUCON1_DEFAULT){ + 9066: 3b41 cmpnei r3, 1 + 9068: 07f1 br 0x904a // 904a + g_CalFactor.U16_Check_Emucon2Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 906a: 8460 ld.b r3, (r4, 0x0) + 906c: 4368 lsli r3, r3, 8 + 906e: 8421 ld.b r1, (r4, 0x1) + 9070: 60c4 addu r3, r1 + 9072: 74cd zexth r3, r3 + 9074: aa6c st.h r3, (r2, 0x18) + if(g_CalFactor.U16_Check_Emucon2Reg_Data == EMUCON2_DEFAULT){ + 9076: 1150 lrw r2, 0x465 // 9134 + 9078: 07e8 br 0x9048 // 9048 + g_CalFactor.U16_CheckSUM_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 907a: 8460 ld.b r3, (r4, 0x0) + 907c: 4368 lsli r3, r3, 8 + 907e: 8421 ld.b r1, (r4, 0x1) + 9080: 60c4 addu r3, r1 + 9082: aa68 st.h r3, (r2, 0x10) + 9084: 07e7 br 0x9052 // 9052 + g_CalFactor.U16_RMSIAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9086: 4128 lsli r1, r1, 8 + 9088: 6040 addu r1, r0 + 908a: aa20 st.h r1, (r2, 0x0) + 908c: 07e3 br 0x9052 // 9052 + g_CalFactor.U16_RMSIBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 908e: 4128 lsli r1, r1, 8 + 9090: 6040 addu r1, r0 + 9092: aa21 st.h r1, (r2, 0x2) + 9094: 07df br 0x9052 // 9052 + g_CalFactor.U16_PowerPAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9096: 8460 ld.b r3, (r4, 0x0) + 9098: 4368 lsli r3, r3, 8 + 909a: 8421 ld.b r1, (r4, 0x1) + 909c: 60c4 addu r3, r1 + 909e: aa63 st.h r3, (r2, 0x6) + 90a0: 07d9 br 0x9052 // 9052 + g_CalFactor.U16_PowerPBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90a2: 8460 ld.b r3, (r4, 0x0) + 90a4: 4368 lsli r3, r3, 8 + 90a6: 8421 ld.b r1, (r4, 0x1) + 90a8: 60c4 addu r3, r1 + 90aa: aa64 st.h r3, (r2, 0x8) + 90ac: 07d3 br 0x9052 // 9052 + g_CalFactor.U16_PowerSC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90ae: 8460 ld.b r3, (r4, 0x0) + 90b0: 4368 lsli r3, r3, 8 + 90b2: 8421 ld.b r1, (r4, 0x1) + 90b4: 60c4 addu r3, r1 + 90b6: aa65 st.h r3, (r2, 0xa) + 90b8: 07cd br 0x9052 // 9052 + g_CalFactor.U16_EnergyAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90ba: 8460 ld.b r3, (r4, 0x0) + 90bc: 4368 lsli r3, r3, 8 + 90be: 8421 ld.b r1, (r4, 0x1) + 90c0: 60c4 addu r3, r1 + 90c2: aa66 st.h r3, (r2, 0xc) + 90c4: 07c7 br 0x9052 // 9052 + g_CalFactor.U24_CurrentA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 90c6: 8400 ld.b r0, (r4, 0x0) + 90c8: 8461 ld.b r3, (r4, 0x1) + 90ca: 4368 lsli r3, r3, 8 + 90cc: 4010 lsli r0, r0, 16 + 90ce: 600c addu r0, r3 + 90d0: 8462 ld.b r3, (r4, 0x2) + 90d2: 600c addu r0, r3 + 90d4: b208 st.w r0, (r2, 0x20) + HLW8110_Convert_CurrentRegA_Value(g_CalFactor.U24_CurrentA_RegData); + 90d6: e3fffdf5 bsr 0x8cc0 // 8cc0 + 90da: 07bc br 0x9052 // 9052 + g_CalFactor.U24_EnergyA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 90dc: 8400 ld.b r0, (r4, 0x0) + 90de: 8461 ld.b r3, (r4, 0x1) + 90e0: 4368 lsli r3, r3, 8 + 90e2: 4010 lsli r0, r0, 16 + 90e4: 600c addu r0, r3 + 90e6: 8462 ld.b r3, (r4, 0x2) + 90e8: 600c addu r0, r3 + 90ea: b20c st.w r0, (r2, 0x30) + HLW8110_Convert_EnergyReg_Value(g_CalFactor.U24_EnergyA_RegData); + 90ec: e3fffeac bsr 0x8e44 // 8e44 + 90f0: 07b1 br 0x9052 // 9052 + g_CalFactor.U32_PowerA_RegData = (u_det.RevBuff[2]<<24) + (u_det.RevBuff[3]<<16) + (u_det.RevBuff[4]<<8) + u_det.RevBuff[5]; + 90f2: 8400 ld.b r0, (r4, 0x0) + 90f4: 8461 ld.b r3, (r4, 0x1) + 90f6: 4370 lsli r3, r3, 16 + 90f8: 4018 lsli r0, r0, 24 + 90fa: 600c addu r0, r3 + 90fc: 8462 ld.b r3, (r4, 0x2) + 90fe: 4368 lsli r3, r3, 8 + 9100: 600c addu r0, r3 + 9102: 8463 ld.b r3, (r4, 0x3) + 9104: 600c addu r0, r3 + 9106: b20a st.w r0, (r2, 0x28) + HLW8110_Convert_PowerReg_Value(g_CalFactor.U32_PowerA_RegData); + 9108: e3fffe60 bsr 0x8dc8 // 8dc8 + 910c: 07a3 br 0x9052 // 9052 + 910e: 0000 bkpt + 9110: 0000b467 .long 0x0000b467 + 9114: 200004f0 .long 0x200004f0 + 9118: 0000b472 .long 0x0000b472 + 911c: 0000b47c .long 0x0000b47c + 9120: 0000b493 .long 0x0000b493 + 9124: 0000b497 .long 0x0000b497 + 9128: 20000538 .long 0x20000538 + 912c: 20000574 .long 0x20000574 + 9130: 00000a04 .long 0x00000a04 + 9134: 00000465 .long 0x00000465 + +Disassembly of section .text.HLW8110_SysPara_Check: + +00009138 : + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9138: 8841 ld.h r2, (r0, 0x2) + 913a: 8860 ld.h r3, (r0, 0x0) + 913c: 60c8 addu r3, r2 + 913e: 8842 ld.h r2, (r0, 0x4) + 9140: 60c8 addu r3, r2 + 9142: 8843 ld.h r2, (r0, 0x6) + 9144: 60c8 addu r3, r2 + g_CC->U16_PowerPAC_RegData + g_CC->U16_PowerPBC_RegData + g_CC->U16_PowerSC_RegData + + 9146: 8844 ld.h r2, (r0, 0x8) + 9148: 60c8 addu r3, r2 + 914a: 8845 ld.h r2, (r0, 0xa) + 914c: 60c8 addu r3, r2 + 914e: 8846 ld.h r2, (r0, 0xc) + 9150: 60c8 addu r3, r2 + g_CC->U16_EnergyAC_RegData + g_CC->U16_EnergyBC_RegData ); + 9152: 8847 ld.h r2, (r0, 0xe) + 9154: 60c8 addu r3, r2 + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9156: 3000 movi r0, 0 + 9158: 600e subu r0, r3 + return CRC_p; + 915a: 7401 zexth r0, r0 +} + 915c: 783c jmp r15 + +Disassembly of section .text.HLW8110_ReadSysPara: + +00009160 : +{ + 9160: 14d3 push r4-r6, r15 + switch(g_Eng.rWCh_Num) + 9162: 1379 lrw r3, 0x20000574 // 9344 + 9164: 8301 ld.b r0, (r3, 0x1) + 9166: 3808 cmphsi r0, 9 + 9168: 6d0f mov r4, r3 + 916a: 08e7 bt 0x9338 // 9338 + 916c: e3ffd1c8 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9170: 4d371f05 .long 0x4d371f05 + 9174: a58f7963 .long 0xa58f7963 + 9178: 00bb .short 0x00bb + if(Get_SendState() == SEND_STATE_SUCC) + 917a: e3fffca3 bsr 0x8ac0 // 8ac0 + 917e: 3841 cmpnei r0, 1 + 9180: 0804 bt 0x9188 // 9188 + g_Eng.rWCh_Num = 0x01; + 9182: 3301 movi r3, 1 + g_Eng.rWCh_Num = 0x02; + 9184: a461 st.b r3, (r4, 0x1) +} + 9186: 1493 pop r4-r6, r15 + else if(Get_SendState() == SEND_STATE_FAIL) + 9188: e3fffc9c bsr 0x8ac0 // 8ac0 + 918c: 3842 cmpnei r0, 2 + 918e: 0806 bt 0x919a // 919a + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IAC_ADDR ERR!"); + 9190: 132e lrw r1, 0xb4ad // 9348 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 9192: 3000 movi r0, 0 + 9194: e3fff450 bsr 0x7a34 // 7a34 + break; + 9198: 07f7 br 0x9186 // 9186 + if(u_det.WR_flag == SEND_NONE) + 919a: 136d lrw r3, 0x20000530 // 934c + 919c: 8360 ld.b r3, (r3, 0x0) + 919e: 3b40 cmpnei r3, 0 + 91a0: 0bf3 bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IAC_ADDR,0,0); + 91a2: 3200 movi r2, 0 + 91a4: 3100 movi r1, 0 + 91a6: 3070 movi r0, 112 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 91a8: e3fffbee bsr 0x8984 // 8984 + 91ac: 07ed br 0x9186 // 9186 + if(Get_SendState() == SEND_STATE_SUCC) + 91ae: e3fffc89 bsr 0x8ac0 // 8ac0 + 91b2: 3841 cmpnei r0, 1 + 91b4: 0803 bt 0x91ba // 91ba + g_Eng.rWCh_Num = 0x02; + 91b6: 3302 movi r3, 2 + 91b8: 07e6 br 0x9184 // 9184 + else if(Get_SendState() == SEND_STATE_FAIL) + 91ba: e3fffc83 bsr 0x8ac0 // 8ac0 + 91be: 3842 cmpnei r0, 2 + 91c0: 0807 bt 0x91ce // 91ce + g_Eng.rWCh_Num = 0x00; + 91c2: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 91c4: 1323 lrw r1, 0xb4c3 // 9350 + 91c6: 3000 movi r0, 0 + g_Eng.rWCh_Num = 0x00; + 91c8: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 91ca: e3fff435 bsr 0x7a34 // 7a34 + if(u_det.WR_flag == SEND_NONE) + 91ce: 1360 lrw r3, 0x20000530 // 934c + 91d0: 8360 ld.b r3, (r3, 0x0) + 91d2: 3b40 cmpnei r3, 0 + 91d4: 0bd9 bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IBC_ADDR,0,0); + 91d6: 3200 movi r2, 0 + 91d8: 3100 movi r1, 0 + 91da: 3071 movi r0, 113 + 91dc: 07e6 br 0x91a8 // 91a8 + if(Get_SendState() == SEND_STATE_SUCC) + 91de: e3fffc71 bsr 0x8ac0 // 8ac0 + 91e2: 3841 cmpnei r0, 1 + 91e4: 0803 bt 0x91ea // 91ea + g_Eng.rWCh_Num = 0x03; + 91e6: 3303 movi r3, 3 + 91e8: 07ce br 0x9184 // 9184 + else if(Get_SendState() == SEND_STATE_FAIL) + 91ea: e3fffc6b bsr 0x8ac0 // 8ac0 + 91ee: 3842 cmpnei r0, 2 + 91f0: 0805 bt 0x91fa // 91fa + g_Eng.rWCh_Num = 0x00; + 91f2: 3300 movi r3, 0 + 91f4: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_UC_ADDR ERR!"); + 91f6: 1238 lrw r1, 0xb4d9 // 9354 + 91f8: 07cd br 0x9192 // 9192 + if(u_det.WR_flag == SEND_NONE) + 91fa: 1275 lrw r3, 0x20000530 // 934c + 91fc: 8360 ld.b r3, (r3, 0x0) + 91fe: 3b40 cmpnei r3, 0 + 9200: 0bc3 bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_UC_ADDR,0,0); + 9202: 3200 movi r2, 0 + 9204: 3100 movi r1, 0 + 9206: 3072 movi r0, 114 + 9208: 07d0 br 0x91a8 // 91a8 + if(Get_SendState() == SEND_STATE_SUCC) + 920a: e3fffc5b bsr 0x8ac0 // 8ac0 + 920e: 3841 cmpnei r0, 1 + 9210: 0803 bt 0x9216 // 9216 + g_Eng.rWCh_Num = 0x04; + 9212: 3304 movi r3, 4 + 9214: 07b8 br 0x9184 // 9184 + else if(Get_SendState() == SEND_STATE_FAIL) + 9216: e3fffc55 bsr 0x8ac0 // 8ac0 + 921a: 3842 cmpnei r0, 2 + 921c: 0805 bt 0x9226 // 9226 + g_Eng.rWCh_Num = 0x00; + 921e: 3300 movi r3, 0 + 9220: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PAC_ADDR ERR!"); + 9222: 122e lrw r1, 0xb4ee // 9358 + 9224: 07b7 br 0x9192 // 9192 + if(u_det.WR_flag == SEND_NONE) + 9226: 126a lrw r3, 0x20000530 // 934c + 9228: 8360 ld.b r3, (r3, 0x0) + 922a: 3b40 cmpnei r3, 0 + 922c: 0bad bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PAC_ADDR,0,0); + 922e: 3200 movi r2, 0 + 9230: 3100 movi r1, 0 + 9232: 3073 movi r0, 115 + 9234: 07ba br 0x91a8 // 91a8 + if(Get_SendState() == SEND_STATE_SUCC) + 9236: e3fffc45 bsr 0x8ac0 // 8ac0 + 923a: 3841 cmpnei r0, 1 + 923c: 0803 bt 0x9242 // 9242 + g_Eng.rWCh_Num = 0x05; + 923e: 3305 movi r3, 5 + 9240: 07a2 br 0x9184 // 9184 + else if(Get_SendState() == SEND_STATE_FAIL) + 9242: e3fffc3f bsr 0x8ac0 // 8ac0 + 9246: 3842 cmpnei r0, 2 + 9248: 0805 bt 0x9252 // 9252 + g_Eng.rWCh_Num = 0x00; + 924a: 3300 movi r3, 0 + 924c: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PBC_ADDR ERR!"); + 924e: 1224 lrw r1, 0xb506 // 935c + 9250: 07a1 br 0x9192 // 9192 + if(u_det.WR_flag == SEND_NONE) + 9252: 117f lrw r3, 0x20000530 // 934c + 9254: 8360 ld.b r3, (r3, 0x0) + 9256: 3b40 cmpnei r3, 0 + 9258: 0b97 bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PBC_ADDR,0,0); + 925a: 3200 movi r2, 0 + 925c: 3100 movi r1, 0 + 925e: 3074 movi r0, 116 + 9260: 07a4 br 0x91a8 // 91a8 + if(Get_SendState() == SEND_STATE_SUCC) + 9262: e3fffc2f bsr 0x8ac0 // 8ac0 + 9266: 3841 cmpnei r0, 1 + 9268: 0803 bt 0x926e // 926e + g_Eng.rWCh_Num = 0x06; + 926a: 3306 movi r3, 6 + 926c: 078c br 0x9184 // 9184 + else if(Get_SendState() == SEND_STATE_FAIL) + 926e: e3fffc29 bsr 0x8ac0 // 8ac0 + 9272: 3842 cmpnei r0, 2 + 9274: 0805 bt 0x927e // 927e + g_Eng.rWCh_Num = 0x00; + 9276: 3300 movi r3, 0 + 9278: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_SC_ADDR ERR!"); + 927a: 113a lrw r1, 0xb51e // 9360 + 927c: 078b br 0x9192 // 9192 + if(u_det.WR_flag == SEND_NONE) + 927e: 1174 lrw r3, 0x20000530 // 934c + 9280: 8360 ld.b r3, (r3, 0x0) + 9282: 3b40 cmpnei r3, 0 + 9284: 0b81 bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_SC_ADDR,0,0); + 9286: 3200 movi r2, 0 + 9288: 3100 movi r1, 0 + 928a: 3075 movi r0, 117 + 928c: 078e br 0x91a8 // 91a8 + if(Get_SendState() == SEND_STATE_SUCC) + 928e: e3fffc19 bsr 0x8ac0 // 8ac0 + 9292: 3841 cmpnei r0, 1 + 9294: 0803 bt 0x929a // 929a + g_Eng.rWCh_Num = 0x07; + 9296: 3307 movi r3, 7 + 9298: 0776 br 0x9184 // 9184 + else if(Get_SendState() == SEND_STATE_FAIL) + 929a: e3fffc13 bsr 0x8ac0 // 8ac0 + 929e: 3842 cmpnei r0, 2 + 92a0: 0805 bt 0x92aa // 92aa + g_Eng.rWCh_Num = 0x00; + 92a2: 3300 movi r3, 0 + 92a4: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_AC_ADDR ERR!"); + 92a6: 1130 lrw r1, 0xb535 // 9364 + 92a8: 0775 br 0x9192 // 9192 + if(u_det.WR_flag == SEND_NONE) + 92aa: 1169 lrw r3, 0x20000530 // 934c + 92ac: 8360 ld.b r3, (r3, 0x0) + 92ae: 3b40 cmpnei r3, 0 + 92b0: 0b6b bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_AC_ADDR,0,0); + 92b2: 3200 movi r2, 0 + 92b4: 3100 movi r1, 0 + 92b6: 3076 movi r0, 118 + 92b8: 0778 br 0x91a8 // 91a8 + if(Get_SendState() == SEND_STATE_SUCC) + 92ba: e3fffc03 bsr 0x8ac0 // 8ac0 + 92be: 3841 cmpnei r0, 1 + 92c0: 0803 bt 0x92c6 // 92c6 + g_Eng.rWCh_Num = 0x08; + 92c2: 3308 movi r3, 8 + 92c4: 0760 br 0x9184 // 9184 + else if(Get_SendState() == SEND_STATE_FAIL) + 92c6: e3fffbfd bsr 0x8ac0 // 8ac0 + 92ca: 3842 cmpnei r0, 2 + 92cc: 0805 bt 0x92d6 // 92d6 + g_Eng.rWCh_Num = 0x00; + 92ce: 3300 movi r3, 0 + 92d0: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_BC_ADDR ERR!"); + 92d2: 1126 lrw r1, 0xb54d // 9368 + 92d4: 075f br 0x9192 // 9192 + if(u_det.WR_flag == SEND_NONE) + 92d6: 107e lrw r3, 0x20000530 // 934c + 92d8: 8360 ld.b r3, (r3, 0x0) + 92da: 3b40 cmpnei r3, 0 + 92dc: 0b55 bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_BC_ADDR,0,0); + 92de: 3200 movi r2, 0 + 92e0: 3100 movi r1, 0 + 92e2: 3077 movi r0, 119 + 92e4: 0762 br 0x91a8 // 91a8 + if(Get_SendState() == SEND_STATE_SUCC) + 92e6: e3fffbed bsr 0x8ac0 // 8ac0 + 92ea: 3841 cmpnei r0, 1 + 92ec: 0818 bt 0x931c // 931c + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 92ee: 11a0 lrw r5, 0x20000538 // 936c + 92f0: 6c17 mov r0, r5 + 92f2: e3ffff23 bsr 0x9138 // 9138 + 92f6: 8dc8 ld.h r6, (r5, 0x10) + g_Eng.rWCh_Num = 0x00; + 92f8: 3300 movi r3, 0 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 92fa: 641a cmpne r6, r0 + g_Eng.rWCh_Num = 0x00; + 92fc: a461 st.b r3, (r4, 0x1) + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 92fe: 0805 bt 0x9308 // 9308 + g_Eng.Tack_State = 0x02; + 9300: 3302 movi r3, 2 + 9302: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK SUCC!"); + 9304: 103b lrw r1, 0xb565 // 9370 + 9306: 0746 br 0x9192 // 9192 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK ERR:%x,%x",g_CalFactor.U16_CheckSUM_RegData,HLW8110_SysPara_Check(&g_CalFactor)); + 9308: 6c17 mov r0, r5 + 930a: e3ffff17 bsr 0x9138 // 9138 + 930e: 6cc3 mov r3, r0 + 9310: 6c9b mov r2, r6 + 9312: 1039 lrw r1, 0xb575 // 9374 + 9314: 3000 movi r0, 0 + 9316: e3fff38f bsr 0x7a34 // 7a34 + break; + 931a: 0736 br 0x9186 // 9186 + else if(Get_SendState() == SEND_STATE_FAIL) + 931c: e3fffbd2 bsr 0x8ac0 // 8ac0 + 9320: 3842 cmpnei r0, 2 + 9322: 0803 bt 0x9328 // 9328 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 9324: 1035 lrw r1, 0xb589 // 9378 + 9326: 0736 br 0x9192 // 9192 + if(u_det.WR_flag == SEND_NONE) + 9328: 1069 lrw r3, 0x20000530 // 934c + 932a: 8360 ld.b r3, (r3, 0x0) + 932c: 3b40 cmpnei r3, 0 + 932e: 0b2c bt 0x9186 // 9186 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 9330: 3200 movi r2, 0 + 9332: 3100 movi r1, 0 + 9334: 306f movi r0, 111 + 9336: 0739 br 0x91a8 // 91a8 + g_Eng.rWCh_Num = 0x00; + 9338: 3200 movi r2, 0 + 933a: a341 st.b r2, (r3, 0x1) + g_Eng.Tack_State = 0x01; + 933c: 3201 movi r2, 1 + 933e: a340 st.b r2, (r3, 0x0) +} + 9340: 0723 br 0x9186 // 9186 + 9342: 0000 bkpt + 9344: 20000574 .long 0x20000574 + 9348: 0000b4ad .long 0x0000b4ad + 934c: 20000530 .long 0x20000530 + 9350: 0000b4c3 .long 0x0000b4c3 + 9354: 0000b4d9 .long 0x0000b4d9 + 9358: 0000b4ee .long 0x0000b4ee + 935c: 0000b506 .long 0x0000b506 + 9360: 0000b51e .long 0x0000b51e + 9364: 0000b535 .long 0x0000b535 + 9368: 0000b54d .long 0x0000b54d + 936c: 20000538 .long 0x20000538 + 9370: 0000b565 .long 0x0000b565 + 9374: 0000b575 .long 0x0000b575 + 9378: 0000b589 .long 0x0000b589 + +Disassembly of section .text.HLW8110_ReadSysCtrlPara: + +0000937c : +{ + 937c: 14d1 push r4, r15 + switch(g_Eng.rWSysCtrl) + 937e: 118b lrw r4, 0x20000574 // 9428 + 9380: 8462 ld.b r3, (r4, 0x2) + 9382: 3b41 cmpnei r3, 1 + 9384: 0c23 bf 0x93ca // 93ca + 9386: 3b40 cmpnei r3, 0 + 9388: 0c07 bf 0x9396 // 9396 + 938a: 3b42 cmpnei r3, 2 + 938c: 0c35 bf 0x93f6 // 93f6 + g_Eng.rWSysCtrl = 0x00; + 938e: 3300 movi r3, 0 + 9390: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x02; + 9392: 3302 movi r3, 2 + 9394: 0438 br 0x9404 // 9404 + if(Get_SendState() == SEND_STATE_SUCC) + 9396: e3fffb95 bsr 0x8ac0 // 8ac0 + 939a: 3841 cmpnei r0, 1 + 939c: 0804 bt 0x93a4 // 93a4 + g_Eng.rWSysCtrl = 0x01; + 939e: 3301 movi r3, 1 + g_Eng.rWSysCtrl = 0x02; + 93a0: a462 st.b r3, (r4, 0x2) +} + 93a2: 1491 pop r4, r15 + else if(Get_SendState() == SEND_STATE_FAIL) + 93a4: e3fffb8e bsr 0x8ac0 // 8ac0 + 93a8: 3842 cmpnei r0, 2 + 93aa: 0806 bt 0x93b6 // 93b6 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_SYSCON_ADDR ERR!"); + 93ac: 1120 lrw r1, 0xb5a0 // 942c + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 93ae: 3000 movi r0, 0 + 93b0: e3fff342 bsr 0x7a34 // 7a34 + break; + 93b4: 07f7 br 0x93a2 // 93a2 + if(u_det.WR_flag == SEND_NONE) + 93b6: 107f lrw r3, 0x20000530 // 9430 + 93b8: 8360 ld.b r3, (r3, 0x0) + 93ba: 3b40 cmpnei r3, 0 + 93bc: 0bf3 bt 0x93a2 // 93a2 + BLV_HLW8110_RWCMD_Packaging(REG_SYSCON_ADDR,2,SYSCON_DEFAULT); + 93be: 105e lrw r2, 0xa04 // 9434 + 93c0: 3102 movi r1, 2 + 93c2: 3000 movi r0, 0 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 93c4: e3fffae0 bsr 0x8984 // 8984 + 93c8: 07ed br 0x93a2 // 93a2 + if(Get_SendState() == SEND_STATE_SUCC) + 93ca: e3fffb7b bsr 0x8ac0 // 8ac0 + 93ce: 3841 cmpnei r0, 1 + 93d0: 0803 bt 0x93d6 // 93d6 + g_Eng.rWSysCtrl = 0x02; + 93d2: 3302 movi r3, 2 + 93d4: 07e6 br 0x93a0 // 93a0 + else if(Get_SendState() == SEND_STATE_FAIL) + 93d6: e3fffb75 bsr 0x8ac0 // 8ac0 + 93da: 3842 cmpnei r0, 2 + 93dc: 0805 bt 0x93e6 // 93e6 + g_Eng.rWSysCtrl = 0x00; + 93de: 3300 movi r3, 0 + 93e0: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON1_ADDR ERR!"); + 93e2: 1036 lrw r1, 0xb5b5 // 9438 + 93e4: 07e5 br 0x93ae // 93ae + if(u_det.WR_flag == SEND_NONE) + 93e6: 1073 lrw r3, 0x20000530 // 9430 + 93e8: 8360 ld.b r3, (r3, 0x0) + 93ea: 3b40 cmpnei r3, 0 + 93ec: 0bdb bt 0x93a2 // 93a2 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON1_ADDR,2,EMUCON1_DEFAULT); + 93ee: 3201 movi r2, 1 + 93f0: 3102 movi r1, 2 + 93f2: 3001 movi r0, 1 + 93f4: 07e8 br 0x93c4 // 93c4 + if(Get_SendState() == SEND_STATE_SUCC) + 93f6: e3fffb65 bsr 0x8ac0 // 8ac0 + 93fa: 3841 cmpnei r0, 1 + 93fc: 0806 bt 0x9408 // 9408 + g_Eng.rWSysCtrl = 0x00; + 93fe: 3300 movi r3, 0 + 9400: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x03; + 9402: 3303 movi r3, 3 + g_Eng.Tack_State = 0x02; + 9404: a460 st.b r3, (r4, 0x0) +} + 9406: 07ce br 0x93a2 // 93a2 + else if(Get_SendState() == SEND_STATE_FAIL) + 9408: e3fffb5c bsr 0x8ac0 // 8ac0 + 940c: 3842 cmpnei r0, 2 + 940e: 0805 bt 0x9418 // 9418 + g_Eng.rWSysCtrl = 0x00; + 9410: 3300 movi r3, 0 + 9412: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 9414: 102a lrw r1, 0xb5cb // 943c + 9416: 07cc br 0x93ae // 93ae + if(u_det.WR_flag == SEND_NONE) + 9418: 1066 lrw r3, 0x20000530 // 9430 + 941a: 8360 ld.b r3, (r3, 0x0) + 941c: 3b40 cmpnei r3, 0 + 941e: 0bc2 bt 0x93a2 // 93a2 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 9420: 1048 lrw r2, 0x465 // 9440 + 9422: 3102 movi r1, 2 + 9424: 3013 movi r0, 19 + 9426: 07cf br 0x93c4 // 93c4 + 9428: 20000574 .long 0x20000574 + 942c: 0000b5a0 .long 0x0000b5a0 + 9430: 20000530 .long 0x20000530 + 9434: 00000a04 .long 0x00000a04 + 9438: 0000b5b5 .long 0x0000b5b5 + 943c: 0000b5cb .long 0x0000b5cb + 9440: 00000465 .long 0x00000465 + +Disassembly of section .text.GetEnergy_Para: + +00009444 : +{ + 9444: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_V :%d 10mV",g_Eng.det_V); + 9446: 1092 lrw r4, 0x20000574 // 948c + 9448: 1032 lrw r1, 0xb5e1 // 9490 + 944a: 3000 movi r0, 0 + 944c: 944b ld.w r2, (r4, 0x2c) + 944e: e3fff2f3 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_I :%d 10mA",g_Eng.det_ectA); + 9452: 944c ld.w r2, (r4, 0x30) + 9454: 3000 movi r0, 0 + 9456: 1030 lrw r1, 0xb5f0 // 9494 + 9458: e3fff2ee bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_P :%d W",g_Eng.det_powA); + 945c: 944e ld.w r2, (r4, 0x38) + 945e: 3000 movi r0, 0 + 9460: 102e lrw r1, 0xb5ff // 9498 + 9462: e3fff2e9 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_E :%d W/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 9466: 9469 ld.w r3, (r4, 0x24) + 9468: 9448 ld.w r2, (r4, 0x20) + 946a: 608e subu r2, r3 + 946c: 102c lrw r1, 0xb60b // 949c + 946e: 3000 movi r0, 0 + 9470: e3fff2e2 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_TE:%d W/h",g_Eng.Total_Eng); + 9474: 9448 ld.w r2, (r4, 0x20) + 9476: 3000 movi r0, 0 + 9478: 102a lrw r1, 0xb619 // 94a0 + 947a: e3fff2dd bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_HF:%d",g_Eng.hfcount); + 947e: 8c4e ld.h r2, (r4, 0x1c) + 9480: 1029 lrw r1, 0xb627 // 94a4 + 9482: 3000 movi r0, 0 + 9484: e3fff2d8 bsr 0x7a34 // 7a34 +} + 9488: 1491 pop r4, r15 + 948a: 0000 bkpt + 948c: 20000574 .long 0x20000574 + 9490: 0000b5e1 .long 0x0000b5e1 + 9494: 0000b5f0 .long 0x0000b5f0 + 9498: 0000b5ff .long 0x0000b5ff + 949c: 0000b60b .long 0x0000b60b + 94a0: 0000b619 .long 0x0000b619 + 94a4: 0000b627 .long 0x0000b627 + +Disassembly of section .text.HLW8110_ReadValue: + +000094a8 : +{ + 94a8: 14d1 push r4, r15 + switch(g_Eng.rDValue_State) + 94aa: 128c lrw r4, 0x20000574 // 95d8 + 94ac: 8403 ld.b r0, (r4, 0x3) + 94ae: 3805 cmphsi r0, 6 + 94b0: 0816 bt 0x94dc // 94dc + 94b2: e3ffd025 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 94b6: 1403 .short 0x1403 + 94b8: 78624c34 .long 0x78624c34 + if(SysTick_1ms - Wait_ReadValue_Tisk >= g_Eng.Collect_Tim) //S读取一次 + 94bc: 1248 lrw r2, 0x200000c4 // 95dc + 94be: 1229 lrw r1, 0x2000016c // 95e0 + 94c0: 9260 ld.w r3, (r2, 0x0) + 94c2: 9101 ld.w r0, (r1, 0x4) + 94c4: 60c2 subu r3, r0 + 94c6: 9419 ld.w r0, (r4, 0x64) + 94c8: 640c cmphs r3, r0 + 94ca: 0c09 bf 0x94dc // 94dc + Wait_ReadValue_Tisk = SysTick_1ms; + 94cc: 9240 ld.w r2, (r2, 0x0) + 94ce: b141 st.w r2, (r1, 0x4) + g_Eng.rDValue_State = 0x01; + 94d0: 3301 movi r3, 1 + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 94d2: 1225 lrw r1, 0xb631 // 95e4 + 94d4: 3000 movi r0, 0 + g_Eng.rDValue_State = 0x01; + 94d6: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 94d8: e3fff2ae bsr 0x7a34 // 7a34 +} + 94dc: 1491 pop r4, r15 + if(Get_SendState() == SEND_STATE_SUCC) + 94de: e3fffaf1 bsr 0x8ac0 // 8ac0 + 94e2: 3841 cmpnei r0, 1 + 94e4: 0804 bt 0x94ec // 94ec + g_Eng.rDValue_State = 0x02; + 94e6: 3302 movi r3, 2 + g_Eng.rDValue_State = 0x03; + 94e8: a463 st.b r3, (r4, 0x3) + break; + 94ea: 07f9 br 0x94dc // 94dc + else if(Get_SendState() == SEND_STATE_FAIL) + 94ec: e3fffaea bsr 0x8ac0 // 8ac0 + 94f0: 3842 cmpnei r0, 2 + 94f2: 0808 bt 0x9502 // 9502 + g_Eng.rDValue_State = 0x00; + 94f4: 3300 movi r3, 0 + 94f6: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIA_ADDR ERR!"); + 94f8: 113c lrw r1, 0xb63e // 95e8 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 94fa: 3000 movi r0, 0 + 94fc: e3fff29c bsr 0x7a34 // 7a34 + break; + 9500: 07ee br 0x94dc // 94dc + if(u_det.WR_flag == SEND_NONE) + 9502: 117b lrw r3, 0x20000530 // 95ec + 9504: 8360 ld.b r3, (r3, 0x0) + 9506: 3b40 cmpnei r3, 0 + 9508: 0806 bt 0x9514 // 9514 + BLV_HLW8110_RWCMD_Packaging(REG_RMSIA_ADDR,0,0); + 950a: 3200 movi r2, 0 + 950c: 3100 movi r1, 0 + 950e: 3024 movi r0, 36 + 9510: e3fffa3a bsr 0x8984 // 8984 + Wait_ReadValue_Tisk = SysTick_1ms; + 9514: 1172 lrw r3, 0x200000c4 // 95dc + 9516: 9340 ld.w r2, (r3, 0x0) + 9518: 1172 lrw r3, 0x2000016c // 95e0 + 951a: b341 st.w r2, (r3, 0x4) + break; + 951c: 07e0 br 0x94dc // 94dc + if(Get_SendState() == SEND_STATE_SUCC) + 951e: e3fffad1 bsr 0x8ac0 // 8ac0 + 9522: 3841 cmpnei r0, 1 + 9524: 0803 bt 0x952a // 952a + g_Eng.rDValue_State = 0x03; + 9526: 3303 movi r3, 3 + 9528: 07e0 br 0x94e8 // 94e8 + else if(Get_SendState() == SEND_STATE_FAIL) + 952a: e3fffacb bsr 0x8ac0 // 8ac0 + 952e: 3842 cmpnei r0, 2 + 9530: 0805 bt 0x953a // 953a + g_Eng.rDValue_State = 0x00; + 9532: 3300 movi r3, 0 + 9534: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSU_ADDR ERR!"); + 9536: 112f lrw r1, 0xb652 // 95f0 + 9538: 07e1 br 0x94fa // 94fa + if(u_det.WR_flag == SEND_NONE) + 953a: 116d lrw r3, 0x20000530 // 95ec + 953c: 8360 ld.b r3, (r3, 0x0) + 953e: 3b40 cmpnei r3, 0 + 9540: 0bce bt 0x94dc // 94dc + BLV_HLW8110_RWCMD_Packaging(REG_RMSU_ADDR,0,0); + 9542: 3200 movi r2, 0 + 9544: 3100 movi r1, 0 + 9546: 3026 movi r0, 38 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 9548: e3fffa1e bsr 0x8984 // 8984 +} + 954c: 07c8 br 0x94dc // 94dc + if(Get_SendState() == SEND_STATE_SUCC) + 954e: e3fffab9 bsr 0x8ac0 // 8ac0 + 9552: 3841 cmpnei r0, 1 + 9554: 0803 bt 0x955a // 955a + g_Eng.rDValue_State = 0x04; + 9556: 3304 movi r3, 4 + 9558: 07c8 br 0x94e8 // 94e8 + else if(Get_SendState() == SEND_STATE_FAIL) + 955a: e3fffab3 bsr 0x8ac0 // 8ac0 + 955e: 3842 cmpnei r0, 2 + 9560: 0805 bt 0x956a // 956a + g_Eng.rDValue_State = 0x00; + 9562: 3300 movi r3, 0 + 9564: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PA_ADDR ERR!"); + 9566: 1124 lrw r1, 0xb665 // 95f4 + 9568: 07c9 br 0x94fa // 94fa + if(u_det.WR_flag == SEND_NONE) + 956a: 1161 lrw r3, 0x20000530 // 95ec + 956c: 8360 ld.b r3, (r3, 0x0) + 956e: 3b40 cmpnei r3, 0 + 9570: 0bb6 bt 0x94dc // 94dc + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PA_ADDR,0,0); + 9572: 3200 movi r2, 0 + 9574: 3100 movi r1, 0 + 9576: 302c movi r0, 44 + 9578: 07e8 br 0x9548 // 9548 + if(Get_SendState() == SEND_STATE_SUCC) + 957a: e3fffaa3 bsr 0x8ac0 // 8ac0 + 957e: 3841 cmpnei r0, 1 + 9580: 0803 bt 0x9586 // 9586 + g_Eng.rDValue_State = 0x05; + 9582: 3305 movi r3, 5 + 9584: 07b2 br 0x94e8 // 94e8 + else if(Get_SendState() == SEND_STATE_FAIL) + 9586: e3fffa9d bsr 0x8ac0 // 8ac0 + 958a: 3842 cmpnei r0, 2 + 958c: 0805 bt 0x9596 // 9596 + g_Eng.rDValue_State = 0x00; + 958e: 3300 movi r3, 0 + 9590: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PA_ADDR ERR!"); + 9592: 103a lrw r1, 0xb67c // 95f8 + 9594: 07b3 br 0x94fa // 94fa + if(u_det.WR_flag == SEND_NONE) + 9596: 1076 lrw r3, 0x20000530 // 95ec + 9598: 8360 ld.b r3, (r3, 0x0) + 959a: 3b40 cmpnei r3, 0 + 959c: 0ba0 bt 0x94dc // 94dc + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PA_ADDR,0,0); + 959e: 3200 movi r2, 0 + 95a0: 3100 movi r1, 0 + 95a2: 3028 movi r0, 40 + 95a4: 07d2 br 0x9548 // 9548 + if(Get_SendState() == SEND_STATE_SUCC) + 95a6: e3fffa8d bsr 0x8ac0 // 8ac0 + 95aa: 3841 cmpnei r0, 1 + 95ac: 0805 bt 0x95b6 // 95b6 + GetEnergy_Para(); + 95ae: e3ffff4b bsr 0x9444 // 9444 + g_Eng.rDValue_State = 0x00; + 95b2: 3300 movi r3, 0 + 95b4: 079a br 0x94e8 // 94e8 + else if(Get_SendState() == SEND_STATE_FAIL) + 95b6: e3fffa85 bsr 0x8ac0 // 8ac0 + 95ba: 3842 cmpnei r0, 2 + 95bc: 0805 bt 0x95c6 // 95c6 + g_Eng.rDValue_State = 0x00; + 95be: 3300 movi r3, 0 + 95c0: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 95c2: 102f lrw r1, 0xb694 // 95fc + 95c4: 079b br 0x94fa // 94fa + if(u_det.WR_flag == SEND_NONE) + 95c6: 106a lrw r3, 0x20000530 // 95ec + 95c8: 8360 ld.b r3, (r3, 0x0) + 95ca: 3b40 cmpnei r3, 0 + 95cc: 0b88 bt 0x94dc // 94dc + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 95ce: 3200 movi r2, 0 + 95d0: 3100 movi r1, 0 + 95d2: 3002 movi r0, 2 + 95d4: 07ba br 0x9548 // 9548 + 95d6: 0000 bkpt + 95d8: 20000574 .long 0x20000574 + 95dc: 200000c4 .long 0x200000c4 + 95e0: 2000016c .long 0x2000016c + 95e4: 0000b631 .long 0x0000b631 + 95e8: 0000b63e .long 0x0000b63e + 95ec: 20000530 .long 0x20000530 + 95f0: 0000b652 .long 0x0000b652 + 95f4: 0000b665 .long 0x0000b665 + 95f8: 0000b67c .long 0x0000b67c + 95fc: 0000b694 .long 0x0000b694 + +Disassembly of section .text.BLV_HLW8110_Tack: + +00009600 : +{ + 9600: 14d0 push r15 + switch(g_Eng.Tack_State) + 9602: 106e lrw r3, 0x20000574 // 9638 + 9604: 8300 ld.b r0, (r3, 0x0) + 9606: 3803 cmphsi r0, 4 + 9608: 080d bt 0x9622 // 9622 + 960a: e3ffcf79 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 960e: 0b02 .short 0x0b02 + 9610: 110e .short 0x110e + if(SysTick_1ms > 2000) + 9612: 104b lrw r2, 0x200000c4 // 963c + 9614: 9220 ld.w r1, (r2, 0x0) + 9616: 32fa movi r2, 250 + 9618: 4243 lsli r2, r2, 3 + 961a: 6448 cmphs r2, r1 + 961c: 0803 bt 0x9622 // 9622 + g_Eng.Tack_State = 0x01; + 961e: 3201 movi r2, 1 + 9620: a340 st.b r2, (r3, 0x0) +} + 9622: 1490 pop r15 + HLW8110_ReadSysPara(); + 9624: e3fffd9e bsr 0x9160 // 9160 + break; + 9628: 07fd br 0x9622 // 9622 + HLW8110_ReadSysCtrlPara(); + 962a: e3fffea9 bsr 0x937c // 937c + break; + 962e: 07fa br 0x9622 // 9622 + HLW8110_ReadValue(); + 9630: e3ffff3c bsr 0x94a8 // 94a8 +} + 9634: 07f7 br 0x9622 // 9622 + 9636: 0000 bkpt + 9638: 20000574 .long 0x20000574 + 963c: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BT_Uart_Packing: + +00009640 : +{ + 9640: 14d0 push r15 + if(flag <= 3 ) return; + 9642: 3a03 cmphsi r2, 4 + 9644: 0c03 bf 0x964a // 964a + 9646: e3fff89d bsr 0x8780 // 8780 +} + 964a: 1490 pop r15 + +Disassembly of section .text.BT_UART_Print: + +0000964c : + +//蓝牙打印调试 +void BT_UART_Print(void) +{ + 964c: 14d2 push r4-r5, r15 + static U32_T BT_State = 0x00; + static U32_T BT_WaitOutTim = 0x00; + + for(U8_T i = 10;i > 3;i--) + { + if( (g_Eng.BT_SendFlag & (0x01 << i )) != 0x00 ){ + 964e: 1176 lrw r3, 0x20000574 // 9724 + 9650: 8b8d ld.h r4, (r3, 0x1a) + 9652: 320a movi r2, 10 + 9654: 3001 movi r0, 1 + 9656: 6c53 mov r1, r4 + 9658: 704a asr r1, r2 + 965a: 6840 and r1, r0 + 965c: 3940 cmpnei r1, 0 + 965e: 0c17 bf 0x968c // 968c + BT_State = i; + 9660: 7488 zextb r2, r2 + 9662: 1132 lrw r1, 0x2000016c // 9728 + 9664: b142 st.w r2, (r1, 0x8) + break; + } + } + + if(SysTick_1ms - g_Eng.BT_Print_Tim >= 100) + 9666: 1132 lrw r1, 0x200000c4 // 972c + 9668: 9140 ld.w r2, (r1, 0x0) + 966a: 931d ld.w r0, (r3, 0x74) + 966c: 6082 subu r2, r0 + 966e: 3063 movi r0, 99 + 9670: 6480 cmphs r0, r2 + 9672: 081a bt 0x96a6 // 96a6 + { + g_Eng.BT_Print_Tim = SysTick_1ms; + switch(BT_State) + 9674: 11ad lrw r5, 0x2000016c // 9728 + 9676: 9502 ld.w r0, (r5, 0x8) + g_Eng.BT_Print_Tim = SysTick_1ms; + 9678: 9140 ld.w r2, (r1, 0x0) + switch(BT_State) + 967a: 3806 cmphsi r0, 7 + g_Eng.BT_Print_Tim = SysTick_1ms; + 967c: b35d st.w r2, (r3, 0x74) + switch(BT_State) + 967e: 084c bt 0x9716 // 9716 + 9680: e3ffcf3e bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9684: 21191208 .long 0x21191208 + 9688: 003c312a .long 0x003c312a + 968c: 2a00 subi r2, 1 + for(U8_T i = 10;i > 3;i--) + 968e: 3a43 cmpnei r2, 3 + 9690: 0be3 bt 0x9656 // 9656 + 9692: 07ea br 0x9666 // 9666 + { + case 0x00: + BT_State = 0x01; + 9694: 3101 movi r1, 1 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 9696: 936b ld.w r3, (r3, 0x2c) + 9698: 320a movi r2, 10 + BT_State = 0x01; + 969a: b522 st.w r1, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 969c: 7c8c mult r2, r3 + 969e: 1125 lrw r1, 0xb6aa // 9730 + break; + case 0x01: + BT_State = 0x02; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96a0: 3003 movi r0, 3 + 96a2: e3fff363 bsr 0x7d68 // 7d68 + BT_State = 0x03; + break; + } + + } +} + 96a6: 1492 pop r4-r5, r15 + BT_State = 0x02; + 96a8: 3102 movi r1, 2 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96aa: 936c ld.w r3, (r3, 0x30) + 96ac: 320a movi r2, 10 + BT_State = 0x02; + 96ae: b522 st.w r1, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96b0: 7c8c mult r2, r3 + 96b2: 1121 lrw r1, 0xb6b1 // 9734 + 96b4: 07f6 br 0x96a0 // 96a0 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 96b6: 934e ld.w r2, (r3, 0x38) + 96b8: 33fa movi r3, 250 + BT_State = 0x03; + 96ba: 3103 movi r1, 3 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 96bc: 4362 lsli r3, r3, 2 + BT_State = 0x03; + 96be: b522 st.w r1, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 96c0: 7c8c mult r2, r3 + 96c2: 103e lrw r1, 0xb6b8 // 9738 + 96c4: 07ee br 0x96a0 // 96a0 + BT_WaitOutTim = SysTick_1ms; + 96c6: 9120 ld.w r1, (r1, 0x0) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 96c8: 9348 ld.w r2, (r3, 0x20) + BT_State = 0x04; + 96ca: 3004 movi r0, 4 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 96cc: 9369 ld.w r3, (r3, 0x24) + BT_WaitOutTim = SysTick_1ms; + 96ce: b523 st.w r1, (r5, 0xc) + BT_State = 0x04; + 96d0: b502 st.w r0, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 96d2: 608e subu r2, r3 + 96d4: 103a lrw r1, 0xb6c0 // 973c + 96d6: 07e5 br 0x96a0 // 96a0 + BT_WaitOutTim = SysTick_1ms; + 96d8: 9120 ld.w r1, (r1, 0x0) + BT_State = 0x05; + 96da: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 96dc: b523 st.w r1, (r5, 0xc) + BT_State = 0x05; + 96de: b502 st.w r0, (r5, 0x8) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TE:%dW/h",g_Eng.Total_Eng); + 96e0: 9348 ld.w r2, (r3, 0x20) + 96e2: 1038 lrw r1, 0xb6bf // 9740 + 96e4: 07de br 0x96a0 // 96a0 + if(SysTick_1ms - BT_WaitOutTim >= 3000) + 96e6: 9503 ld.w r0, (r5, 0xc) + 96e8: 9160 ld.w r3, (r1, 0x0) + 96ea: 60c2 subu r3, r0 + 96ec: 1016 lrw r0, 0xbb7 // 9744 + 96ee: 64c0 cmphs r0, r3 + 96f0: 0bdb bt 0x96a6 // 96a6 + BT_WaitOutTim = SysTick_1ms; + 96f2: 9160 ld.w r3, (r1, 0x0) + 96f4: b563 st.w r3, (r5, 0xc) + BT_State = 0x00; + 96f6: 3300 movi r3, 0 + 96f8: b562 st.w r3, (r5, 0x8) + 96fa: 07d6 br 0x96a6 // 96a6 + g_Eng.BT_SendFlag &= (~(0x01 << 6)); + 96fc: 3c86 bclri r4, 6 + 96fe: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x05; + 9700: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 9702: 9120 ld.w r1, (r1, 0x0) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 9704: 8359 ld.b r2, (r3, 0x19) + 9706: 1071 lrw r3, 0x20000038 // 9748 + BT_State = 0x05; + 9708: b502 st.w r0, (r5, 0x8) + BT_WaitOutTim = SysTick_1ms; + 970a: b523 st.w r1, (r5, 0xc) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 970c: 9300 ld.w r0, (r3, 0x0) + 970e: 1030 lrw r1, 0x20000579 // 974c + 9710: e3ffe884 bsr 0x6818 // 6818 + 9714: 07c9 br 0x96a6 // 96a6 + g_Eng.BT_SendFlag &= (~0xFFE0); + 9716: 321f movi r2, 31 + 9718: 6908 and r4, r2 + 971a: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x03; + 971c: 3303 movi r3, 3 + 971e: b562 st.w r3, (r5, 0x8) +} + 9720: 07c3 br 0x96a6 // 96a6 + 9722: 0000 bkpt + 9724: 20000574 .long 0x20000574 + 9728: 2000016c .long 0x2000016c + 972c: 200000c4 .long 0x200000c4 + 9730: 0000b6aa .long 0x0000b6aa + 9734: 0000b6b1 .long 0x0000b6b1 + 9738: 0000b6b8 .long 0x0000b6b8 + 973c: 0000b6c0 .long 0x0000b6c0 + 9740: 0000b6bf .long 0x0000b6bf + 9744: 00000bb7 .long 0x00000bb7 + 9748: 20000038 .long 0x20000038 + 974c: 20000579 .long 0x20000579 + +Disassembly of section .text.BLV_Energy_ActiveRep_Packing: + +00009750 : + + + +//电参数主动上报组包 +void BLV_Energy_ActiveRep_Packing(void) +{ + 9750: 14d1 push r4, r15 + 9752: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9754: 1801 addi r0, r14, 4 + 9756: 3232 movi r2, 50 + 9758: 3100 movi r1, 0 + 975a: e3ffd8ff bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 975e: 1175 lrw r3, 0x20000574 // 9830 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; +// g_Eng.det_LastReprot_Eng = g_Eng.det_energyA; +// Dbg_Println(DBG_BIT_SYS_STATUS,"ReportEng1:%d",Energy_Rep); + + g_Eng.SdSN++; + 9760: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9762: 32fa movi r2, 250 + g_Eng.SdSN++; + 9764: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9766: 932e ld.w r1, (r3, 0x38) + 9768: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 976a: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 976c: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 976e: 9309 ld.w r0, (r3, 0x24) + 9770: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9772: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9774: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9776: 085a bt 0x982a // 982a + 9778: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 977a: 3400 movi r4, 0 + 977c: 2c75 subi r4, 118 + 977e: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 9782: 8384 ld.b r4, (r3, 0x4) + 9784: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9788: 3400 movi r4, 0 + 978a: 2c0b subi r4, 12 + 978c: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 9790: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 9794: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 9798: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 979c: 1186 lrw r4, 0x2000047c // 9834 + 979e: 8486 ld.b r4, (r4, 0x6) + 97a0: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x01; //cmd + 97a4: 3401 movi r4, 1 + 97a6: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 97aa: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 97ae: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 97b0: 936c ld.w r3, (r3, 0x30) + 97b2: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 97b6: 4b68 lsri r3, r3, 8 + 97b8: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 97bc: 4a68 lsri r3, r2, 8 + 97be: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 97c2: 4a70 lsri r3, r2, 16 + 97c4: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 97c8: 4868 lsri r3, r0, 8 + 97ca: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 97ce: 4870 lsri r3, r0, 16 + 97d0: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 97d4: 4968 lsri r3, r1, 8 + 97d6: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 97da: 4970 lsri r3, r1, 16 + 97dc: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 97e0: 4978 lsri r3, r1, 24 + 97e2: dc6e001b st.b r3, (r14, 0x1b) + + send_data[send_len++] = ENERGY_TAIL; + 97e6: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 97e8: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 97ea: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 97ec: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 97f0: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 97f4: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 97f8: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 97fa: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 97fc: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 97fe: 3119 movi r1, 25 + 9800: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9802: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 9806: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 980a: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 980e: e3fff84b bsr 0x88a4 // 88a4 + + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 9812: 33c8 movi r3, 200 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9814: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 9818: b860 st.w r3, (r14, 0x0) + 981a: 3203 movi r2, 3 + 981c: 1067 lrw r3, 0xbb8 // 9838 + 981e: 3119 movi r1, 25 + 9820: 1801 addi r0, r14, 4 + 9822: e3fff07b bsr 0x7918 // 7918 +} + 9826: 140e addi r14, r14, 56 + 9828: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 982a: 3400 movi r4, 0 + 982c: 07a6 br 0x9778 // 9778 + 982e: 0000 bkpt + 9830: 20000574 .long 0x20000574 + 9834: 2000047c .long 0x2000047c + 9838: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BLV_ElectricPara_Processing: + +0000983c : +{ + 983c: 14d3 push r4-r6, r15 + if (SysTick_1ms - Eng_Save_Tim >= g_Eng.SaveFlash_Tim) //1小时 + 983e: 11a2 lrw r5, 0x200000c4 // 98c4 + 9840: 1142 lrw r2, 0x2000016c // 98c8 + 9842: 1183 lrw r4, 0x20000574 // 98cc + 9844: 9224 ld.w r1, (r2, 0x10) + 9846: 9560 ld.w r3, (r5, 0x0) + 9848: 60c6 subu r3, r1 + 984a: 943b ld.w r1, (r4, 0x6c) + 984c: 644c cmphs r3, r1 + 984e: 0c2b bf 0x98a4 // 98a4 + Eng_Save_Tim = SysTick_1ms; + 9850: 9560 ld.w r3, (r5, 0x0) + 9852: b264 st.w r3, (r2, 0x10) + if( (g_Eng.Total_Eng > g_Eng.LastSave_Total_Eng)||(g_Eng.U32_EnergyA_RegData > g_Eng.U32_EnergyA_RegData_LastSave) ) + 9854: 9468 ld.w r3, (r4, 0x20) + 9856: 944a ld.w r2, (r4, 0x28) + 9858: 64c8 cmphs r2, r3 + 985a: 0c05 bf 0x9864 // 9864 + 985c: 942f ld.w r1, (r4, 0x3c) + 985e: 9452 ld.w r2, (r4, 0x48) + 9860: 6448 cmphs r2, r1 + 9862: 0821 bt 0x98a4 // 98a4 + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 9864: 10db lrw r6, 0x200004e4 // 98d0 + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 9866: 6c1b mov r0, r6 + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 9868: 944f ld.w r2, (r4, 0x3c) + g_Eng.LastSave_Total_Eng = g_Eng.Total_Eng; + 986a: b46a st.w r3, (r4, 0x28) + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 986c: b660 st.w r3, (r6, 0x0) + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 986e: b452 st.w r2, (r4, 0x48) + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 9870: b642 st.w r2, (r6, 0x8) + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 9872: e3fff5c7 bsr 0x8400 // 8400 + 9876: 6c83 mov r2, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng:%d",WriteEng_rev); + 9878: 1037 lrw r1, 0xb6c8 // 98d4 + 987a: 3000 movi r0, 0 + 987c: e3fff0dc bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng_Cnt:%d,TEng:%d",eng_info.eng_save_cnt,eng_info.eng_total); + 9880: 9660 ld.w r3, (r6, 0x0) + 9882: 9641 ld.w r2, (r6, 0x4) + 9884: 3000 movi r0, 0 + 9886: 1035 lrw r1, 0xb6d2 // 98d8 + 9888: e3fff0d6 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEngReg_NUM:%d",eng_info.U32_EnergyA_RegData ); + 988c: 9642 ld.w r2, (r6, 0x8) + 988e: 3000 movi r0, 0 + 9890: 1033 lrw r1, 0xb6e8 // 98dc + 9892: e3fff0d1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"save SN:%d,MAX:%d",e_save.eng_save_offset,e_save.eng_save_max); + 9896: 1053 lrw r2, 0x20000490 // 98e0 + 9898: 1033 lrw r1, 0xb6f9 // 98e4 + 989a: 3000 movi r0, 0 + 989c: 9266 ld.w r3, (r2, 0x18) + 989e: 9247 ld.w r2, (r2, 0x1c) + 98a0: e3fff0ca bsr 0x7a34 // 7a34 + if( (g_Dip.Dev_Port == Active_Port)&&(SysTick_1ms - g_Eng.Eng_Report_Tim >= g_Eng.Report_Tim) ) + 98a4: 1071 lrw r3, 0x2000047c // 98e8 + 98a6: 8367 ld.b r3, (r3, 0x7) + 98a8: 3b41 cmpnei r3, 1 + 98aa: 080b bt 0x98c0 // 98c0 + 98ac: 945c ld.w r2, (r4, 0x70) + 98ae: 9560 ld.w r3, (r5, 0x0) + 98b0: 60ca subu r3, r2 + 98b2: 945a ld.w r2, (r4, 0x68) + 98b4: 648c cmphs r3, r2 + 98b6: 0c05 bf 0x98c0 // 98c0 + g_Eng.Eng_Report_Tim = SysTick_1ms; + 98b8: 9560 ld.w r3, (r5, 0x0) + 98ba: b47c st.w r3, (r4, 0x70) + BLV_Energy_ActiveRep_Packing(); + 98bc: e3ffff4a bsr 0x9750 // 9750 +} + 98c0: 1493 pop r4-r6, r15 + 98c2: 0000 bkpt + 98c4: 200000c4 .long 0x200000c4 + 98c8: 2000016c .long 0x2000016c + 98cc: 20000574 .long 0x20000574 + 98d0: 200004e4 .long 0x200004e4 + 98d4: 0000b6c8 .long 0x0000b6c8 + 98d8: 0000b6d2 .long 0x0000b6d2 + 98dc: 0000b6e8 .long 0x0000b6e8 + 98e0: 20000490 .long 0x20000490 + 98e4: 0000b6f9 .long 0x0000b6f9 + 98e8: 2000047c .long 0x2000047c + +Disassembly of section .text.BLV_EngDetect_Tack: + +000098ec : +{ + 98ec: 14d0 push r15 + BLV_HLW8110_Tack(); + 98ee: e3fffe89 bsr 0x9600 // 9600 + BLV_HLW8110_SendData_Tack(); + 98f2: e3fff8f5 bsr 0x8adc // 8adc + BLV_ElectricPara_Processing(); + 98f6: e3ffffa3 bsr 0x983c // 983c + BT_UART_Print(); + 98fa: e3fffea9 bsr 0x964c // 964c +} + 98fe: 1490 pop r15 + +Disassembly of section .text.BLV_Energy_PassiveRep_Packing: + +00009900 : + +//电参数查询回复组包 +void BLV_Energy_PassiveRep_Packing(void) +{ + 9900: 14d1 push r4, r15 + 9902: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9904: 1801 addi r0, r14, 4 + 9906: 3232 movi r2, 50 + 9908: 3100 movi r1, 0 + 990a: e3ffd827 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 990e: 1176 lrw r3, 0x20000574 // 99e4 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + + + g_Eng.SdSN++; + 9910: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9912: 32fa movi r2, 250 + g_Eng.SdSN++; + 9914: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9916: 932e ld.w r1, (r3, 0x38) + 9918: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 991a: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 991c: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 991e: 9309 ld.w r0, (r3, 0x24) + 9920: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9922: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9924: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9926: 085c bt 0x99de // 99de + 9928: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 992a: 3400 movi r4, 0 + 992c: 2c75 subi r4, 118 + 992e: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 9932: 8384 ld.b r4, (r3, 0x4) + 9934: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9938: 3400 movi r4, 0 + 993a: 2c0b subi r4, 12 + 993c: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 9940: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 9944: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 9948: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 994c: 1187 lrw r4, 0x2000047c // 99e8 + 994e: 8486 ld.b r4, (r4, 0x6) + 9950: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x02; //cmd + 9954: 3402 movi r4, 2 + 9956: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 995a: 3401 movi r4, 1 + 995c: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 9960: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 9962: 936c ld.w r3, (r3, 0x30) + 9964: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 9968: 4b68 lsri r3, r3, 8 + 996a: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 996e: 4a68 lsri r3, r2, 8 + 9970: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 9974: 4a70 lsri r3, r2, 16 + 9976: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 997a: 4868 lsri r3, r0, 8 + 997c: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 9980: 4870 lsri r3, r0, 16 + 9982: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 9986: 4968 lsri r3, r1, 8 + 9988: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 998c: 4970 lsri r3, r1, 16 + 998e: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 9992: 4978 lsri r3, r1, 24 + 9994: dc6e001b st.b r3, (r14, 0x1b) + send_data[send_len++] = ENERGY_TAIL; + 9998: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 999a: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 999c: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 999e: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 99a2: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 99a6: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 99aa: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 99ac: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 99ae: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 99b0: 3119 movi r1, 25 + 99b2: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 99b4: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 99b8: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 99bc: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 99c0: e3fff772 bsr 0x88a4 // 88a4 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 99c4: 3332 movi r3, 50 + 99c6: b860 st.w r3, (r14, 0x0) + 99c8: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 99ca: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 99ce: 4361 lsli r3, r3, 1 + 99d0: 3201 movi r2, 1 + 99d2: 3119 movi r1, 25 + 99d4: 1801 addi r0, r14, 4 + 99d6: e3ffefa1 bsr 0x7918 // 7918 + +} + 99da: 140e addi r14, r14, 56 + 99dc: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 99de: 3400 movi r4, 0 + 99e0: 07a4 br 0x9928 // 9928 + 99e2: 0000 bkpt + 99e4: 20000574 .long 0x20000574 + 99e8: 2000047c .long 0x2000047c + +Disassembly of section .text.BLV_Energy_SetTime_Packing: + +000099ec : + +//MCU设置周期 +U8_T BLV_Energy_SetTime_Packing(U8_T *data,U16_T lens) +{ + 99ec: 14d2 push r4-r5, r15 + 99ee: 1421 subi r14, r14, 4 + if(lens < 18) return 0x01; + 99f0: 3911 cmphsi r1, 18 +{ + 99f2: 6d03 mov r4, r0 + 99f4: 6d47 mov r5, r1 + if(lens < 18) return 0x01; + 99f6: 0c45 bf 0x9a80 // 9a80 + + U32_T temp_T = 0; + + if( ( (data[7])&0x01) == 0x01) + 99f8: 8067 ld.b r3, (r0, 0x7) + 99fa: 3201 movi r2, 1 + 99fc: 68c8 and r3, r2 + 99fe: 3b40 cmpnei r3, 0 + 9a00: 0c11 bf 0x9a22 // 9a22 + { + temp_T = (data[11]<<24) + (data[10]<<16) + (data[9]<<8) + data[8]; + 9a02: 806b ld.b r3, (r0, 0xb) + 9a04: 804a ld.b r2, (r0, 0xa) + 9a06: 4250 lsli r2, r2, 16 + 9a08: 4378 lsli r3, r3, 24 + 9a0a: 60c8 addu r3, r2 + 9a0c: 8049 ld.b r2, (r0, 0x9) + 9a0e: 4248 lsli r2, r2, 8 + 9a10: 60c8 addu r3, r2 + 9a12: 8048 ld.b r2, (r0, 0x8) + 9a14: 60c8 addu r3, r2 + if(temp_T > 1000){ + 9a16: 32fa movi r2, 250 + 9a18: 4242 lsli r2, r2, 2 + 9a1a: 64c8 cmphs r2, r3 + 9a1c: 0803 bt 0x9a22 // 9a22 + g_Eng.Collect_Tim = temp_T; + 9a1e: 105a lrw r2, 0x20000574 // 9a84 + 9a20: b279 st.w r3, (r2, 0x64) + } + } + + if(data[12] == 0x00) + 9a22: 846c ld.b r3, (r4, 0xc) + { + g_Dip.Dev_Port = Passive_Port; + 9a24: 3b40 cmpnei r3, 0 + 9a26: 3300 movi r3, 0 + 9a28: 60cd addc r3, r3 + 9a2a: 1058 lrw r2, 0x2000047c // 9a88 + 9a2c: a267 st.b r3, (r2, 0x7) + } + else{ + g_Dip.Dev_Port = Active_Port; + } + + if( ((data[7] >> 1)&0x01) == 0x01) + 9a2e: 8467 ld.b r3, (r4, 0x7) + 9a30: 4b61 lsri r3, r3, 1 + 9a32: 3201 movi r2, 1 + 9a34: 68c8 and r3, r2 + 9a36: 3b40 cmpnei r3, 0 + 9a38: 0c11 bf 0x9a5a // 9a5a + { + temp_T = (data[16]<<24) + (data[15]<<16) + (data[14]<<8) + data[13]; + 9a3a: 8470 ld.b r3, (r4, 0x10) + 9a3c: 844f ld.b r2, (r4, 0xf) + 9a3e: 4250 lsli r2, r2, 16 + 9a40: 4378 lsli r3, r3, 24 + 9a42: 60c8 addu r3, r2 + 9a44: 844e ld.b r2, (r4, 0xe) + 9a46: 4248 lsli r2, r2, 8 + 9a48: 60c8 addu r3, r2 + 9a4a: 844d ld.b r2, (r4, 0xd) + 9a4c: 60c8 addu r3, r2 + if(temp_T > 1000){ + 9a4e: 32fa movi r2, 250 + 9a50: 4242 lsli r2, r2, 2 + 9a52: 64c8 cmphs r2, r3 + 9a54: 0803 bt 0x9a5a // 9a5a + g_Eng.Report_Tim = temp_T; + 9a56: 104c lrw r2, 0x20000574 // 9a84 + 9a58: b27a st.w r3, (r2, 0x68) + } + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9a5a: e3fff33d bsr 0x80d4 // 80d4 + + //数据原样返回 + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9a5e: 3314 movi r3, 20 + 9a60: b860 st.w r3, (r14, 0x0) + 9a62: 3396 movi r3, 150 + 9a64: 4361 lsli r3, r3, 1 + 9a66: 3201 movi r2, 1 + 9a68: 6c57 mov r1, r5 + 9a6a: 6c13 mov r0, r4 + 9a6c: e3ffef56 bsr 0x7918 // 7918 + 9a70: 6c13 mov r0, r4 + 9a72: 7454 zextb r1, r5 + 9a74: 3206 movi r2, 6 + 9a76: e3fff685 bsr 0x8780 // 8780 + 9a7a: 3000 movi r0, 0 + BT_Uart_Packing(data,lens,6); + + return 0x00; +} + 9a7c: 1401 addi r14, r14, 4 + 9a7e: 1492 pop r4-r5, r15 + if(lens < 18) return 0x01; + 9a80: 3001 movi r0, 1 + 9a82: 07fd br 0x9a7c // 9a7c + 9a84: 20000574 .long 0x20000574 + 9a88: 2000047c .long 0x2000047c + +Disassembly of section .text.BLV_Energy_QueryVersion_Packing: + +00009a8c : + +//版本查询回复组包 +void BLV_Energy_QueryVersion_Packing(void) +{ + 9a8c: 14d0 push r15 + 9a8e: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9a90: 1801 addi r0, r14, 4 + 9a92: 3232 movi r2, 50 + 9a94: 3100 movi r1, 0 + 9a96: e3ffd761 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + + g_Eng.SdSN++; + 9a9a: 1161 lrw r3, 0x20000574 // 9b1c + 9a9c: 8344 ld.b r2, (r3, 0x4) + 9a9e: 2200 addi r2, 1 + 9aa0: 7488 zextb r2, r2 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9aa2: 3a0f cmphsi r2, 16 + 9aa4: 0839 bt 0x9b16 // 9b16 + 9aa6: a344 st.b r2, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + send_data[send_len++] = g_Eng.SdSN; //sn; + 9aa8: 8364 ld.b r3, (r3, 0x4) + 9aaa: dc6e0005 st.b r3, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9aae: 3300 movi r3, 0 + 9ab0: 2b0b subi r3, 12 + send_data[send_len++] = ENERGY_HEAD; + 9ab2: 3200 movi r2, 0 + send_data[send_len++] = DEV_TYPE; //type + 9ab4: dc6e0006 st.b r3, (r14, 0x6) + send_data[send_len++] = ENERGY_HEAD; + 9ab8: 2a75 subi r2, 118 + send_data[send_len++] = g_Dip.addr; + 9aba: 107a lrw r3, 0x2000047c // 9b20 + send_data[send_len++] = g_Dip.Dev_Port; + + send_data[send_len++] = ENERGY_TAIL; + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9abc: 310b movi r1, 11 + send_data[send_len++] = ENERGY_HEAD; + 9abe: dc4e0004 st.b r2, (r14, 0x4) + send_data[send_len++] = g_Dip.addr; + 9ac2: 8346 ld.b r2, (r3, 0x6) + send_data[send_len++] = g_Dip.Dev_Port; + 9ac4: 8367 ld.b r3, (r3, 0x7) + 9ac6: dc6e000d st.b r3, (r14, 0xd) + send_data[send_len++] = ENERGY_TAIL; + 9aca: 3300 movi r3, 0 + send_data[send_len++] = g_Dip.addr; + 9acc: dc4e0007 st.b r2, (r14, 0x7) + send_data[send_len++] = ENERGY_TAIL; + 9ad0: 2b57 subi r3, 88 + send_data[send_len++] = 0x04; //cmd + 9ad2: 3204 movi r2, 4 + 9ad4: dc4e000a st.b r2, (r14, 0xa) + send_data[send_len++] = ENERGY_TAIL; + 9ad8: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = Project_FW_Version; + 9adc: 3201 movi r2, 1 + send_data[4] = send_len; + 9ade: 330b movi r3, 11 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9ae0: 1801 addi r0, r14, 4 + send_data[send_len++] = Project_FW_Version; + 9ae2: dc4e000b st.b r2, (r14, 0xb) + send_data[send_len++] = Project_HW_Version; + 9ae6: dc4e000c st.b r2, (r14, 0xc) + send_data[4] = send_len; + 9aea: dc6e0008 st.b r3, (r14, 0x8) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9aee: e3fff6db bsr 0x88a4 // 88a4 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9af2: 3332 movi r3, 50 + 9af4: b860 st.w r3, (r14, 0x0) + 9af6: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9af8: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9afc: 4361 lsli r3, r3, 1 + 9afe: 1801 addi r0, r14, 4 + 9b00: 3201 movi r2, 1 + 9b02: 310b movi r1, 11 + 9b04: e3ffef0a bsr 0x7918 // 7918 + 9b08: 3206 movi r2, 6 + 9b0a: 310b movi r1, 11 + 9b0c: 1801 addi r0, r14, 4 + 9b0e: e3fff639 bsr 0x8780 // 8780 + BT_Uart_Packing(send_data,send_len,6); +} + 9b12: 140e addi r14, r14, 56 + 9b14: 1490 pop r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9b16: 3200 movi r2, 0 + 9b18: 07c7 br 0x9aa6 // 9aa6 + 9b1a: 0000 bkpt + 9b1c: 20000574 .long 0x20000574 + 9b20: 2000047c .long 0x2000047c + +Disassembly of section .text.SetCalibFactor_Switch: + +00009b24 : +// +// return 0x00; +//} + +U8_T SetCalibFactor_Switch(U8_T ch,F32_T value) +{ + 9b24: 14d0 push r15 + switch(ch) + 9b26: 3805 cmphsi r0, 6 + 9b28: 0808 bt 0x9b38 // 9b38 + 9b2a: 106a lrw r3, 0x20000574 // 9b50 + 9b2c: e3ffcce8 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9b30: 0a080603 .long 0x0a080603 + 9b34: 0e0c .short 0x0e0c + { + case 0x00: + g_Eng.V_K_Val = value; + 9b36: b333 st.w r1, (r3, 0x4c) + break; + default: + break; + } + return 0; +} + 9b38: 3000 movi r0, 0 + 9b3a: 1490 pop r15 + g_Eng.I_K1_Val = value; + 9b3c: b334 st.w r1, (r3, 0x50) + break; + 9b3e: 07fd br 0x9b38 // 9b38 + g_Eng.I_K2_Val = value; + 9b40: b335 st.w r1, (r3, 0x54) + break; + 9b42: 07fb br 0x9b38 // 9b38 + g_Eng.P_K_Val = value; + 9b44: b336 st.w r1, (r3, 0x58) + break; + 9b46: 07f9 br 0x9b38 // 9b38 + g_Eng.I_OffSetVal = value; + 9b48: b337 st.w r1, (r3, 0x5c) + break; + 9b4a: 07f7 br 0x9b38 // 9b38 + g_Eng.P_OffSetVal = value; + 9b4c: b338 st.w r1, (r3, 0x60) + break; + 9b4e: 07f5 br 0x9b38 // 9b38 + 9b50: 20000574 .long 0x20000574 + +Disassembly of section .text.BLV_Energy_SetCalibFactor: + +00009b54 : +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor(U8_T *data,U16_T lens) +{ + 9b54: 14d4 push r4-r7, r15 + 9b56: 1423 subi r14, r14, 12 + if(lens < 10) return 0x01; + 9b58: 3909 cmphsi r1, 10 +{ + 9b5a: 6d43 mov r5, r0 + 9b5c: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9b5e: 0c36 bf 0x9bca // 9bca + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9b60: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9b62: 3c05 cmphsi r4, 6 + 9b64: 0835 bt 0x9bce // 9bce + U8_T temp_num = ((data[8])&0xff); + 9b66: 8028 ld.b r1, (r0, 0x8) + 9b68: 3209 movi r2, 9 + 9b6a: 3906 cmphsi r1, 7 + 9b6c: 6080 addu r2, r0 + 9b6e: 6cc7 mov r3, r1 + 9b70: 0c02 bf 0x9b74 // 9b74 + 9b72: 3306 movi r3, 6 + 9b74: 60d0 addu r3, r4 + 9b76: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9b78: 10f7 lrw r7, 0x47c35000 // 9bd4 + for(U8_T i = 0;i< temp_num;i++) + 9b7a: 64d2 cmpne r4, r3 + 9b7c: 080f bt 0x9b9a // 9b9a + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9b7e: e3fff2ab bsr 0x80d4 // 80d4 + + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9b82: 3314 movi r3, 20 + 9b84: b860 st.w r3, (r14, 0x0) + 9b86: 3396 movi r3, 150 + 9b88: 6c17 mov r0, r5 + 9b8a: 4361 lsli r3, r3, 1 + 9b8c: 3201 movi r2, 1 + 9b8e: 6c5b mov r1, r6 + 9b90: e3ffeec4 bsr 0x7918 // 7918 + 9b94: 3000 movi r0, 0 + + return 0x00; +} + 9b96: 1403 addi r14, r14, 12 + 9b98: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9b9a: 8201 ld.b r0, (r2, 0x1) + 9b9c: 8220 ld.b r1, (r2, 0x0) + 9b9e: 4008 lsli r0, r0, 8 + 9ba0: 6004 addu r0, r1 + 9ba2: 8222 ld.b r1, (r2, 0x2) + 9ba4: 4130 lsli r1, r1, 16 + 9ba6: 6004 addu r0, r1 + 9ba8: b862 st.w r3, (r14, 0x8) + 9baa: b841 st.w r2, (r14, 0x4) + 9bac: e3ffceec bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9bb0: 6c5f mov r1, r7 + 9bb2: e3ffce53 bsr 0x3858 // 3858 <__divsf3> + 9bb6: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9bb8: 6c13 mov r0, r4 + 9bba: e3ffffb5 bsr 0x9b24 // 9b24 + 9bbe: 2400 addi r4, 1 + 9bc0: 9841 ld.w r2, (r14, 0x4) + 9bc2: 2202 addi r2, 3 + 9bc4: 7510 zextb r4, r4 + 9bc6: 9862 ld.w r3, (r14, 0x8) + 9bc8: 07d9 br 0x9b7a // 9b7a + if(lens < 10) return 0x01; + 9bca: 3001 movi r0, 1 + 9bcc: 07e5 br 0x9b96 // 9b96 + if( ctrl_num > 0x05) return 0x02; + 9bce: 3002 movi r0, 2 + 9bd0: 07e3 br 0x9b96 // 9b96 + 9bd2: 0000 bkpt + 9bd4: 47c35000 .long 0x47c35000 + +Disassembly of section .text.BLV_Energy_SetCalibFactor_2: + +00009bd8 : + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor_2(U8_T *data,U16_T lens) +{ + 9bd8: 14d4 push r4-r7, r15 + 9bda: 1422 subi r14, r14, 8 + if(lens < 10) return 0x01; + 9bdc: 3909 cmphsi r1, 10 +{ + 9bde: 6d43 mov r5, r0 + 9be0: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9be2: 0c32 bf 0x9c46 // 9c46 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9be4: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9be6: 3c05 cmphsi r4, 6 + 9be8: 0831 bt 0x9c4a // 9c4a + U8_T temp_num = ((data[8])&0xff); + 9bea: 8028 ld.b r1, (r0, 0x8) + 9bec: 3209 movi r2, 9 + 9bee: 3903 cmphsi r1, 4 + 9bf0: 6080 addu r2, r0 + 9bf2: 6cc7 mov r3, r1 + 9bf4: 0c02 bf 0x9bf8 // 9bf8 + 9bf6: 3303 movi r3, 3 + 9bf8: 60d0 addu r3, r4 + 9bfa: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9bfc: 10f5 lrw r7, 0x47c35000 // 9c50 + for(U8_T i = 0;i< temp_num;i++) + 9bfe: 64d2 cmpne r4, r3 + 9c00: 080b bt 0x9c16 // 9c16 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9c02: e3fff269 bsr 0x80d4 // 80d4 + 9c06: 6c17 mov r0, r5 + 9c08: 7458 zextb r1, r6 + 9c0a: 3206 movi r2, 6 + 9c0c: e3fff5ba bsr 0x8780 // 8780 + 9c10: 3000 movi r0, 0 + + //数据原样返回 + BT_Uart_Packing(data,lens,6); //蓝牙发送 + + return 0x00; +} + 9c12: 1402 addi r14, r14, 8 + 9c14: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9c16: 8201 ld.b r0, (r2, 0x1) + 9c18: 8220 ld.b r1, (r2, 0x0) + 9c1a: 4008 lsli r0, r0, 8 + 9c1c: 6004 addu r0, r1 + 9c1e: 8222 ld.b r1, (r2, 0x2) + 9c20: 4130 lsli r1, r1, 16 + 9c22: 6004 addu r0, r1 + 9c24: b861 st.w r3, (r14, 0x4) + 9c26: b840 st.w r2, (r14, 0x0) + 9c28: e3ffceae bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9c2c: 6c5f mov r1, r7 + 9c2e: e3ffce15 bsr 0x3858 // 3858 <__divsf3> + 9c32: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9c34: 6c13 mov r0, r4 + 9c36: e3ffff77 bsr 0x9b24 // 9b24 + 9c3a: 2400 addi r4, 1 + 9c3c: 9840 ld.w r2, (r14, 0x0) + 9c3e: 2202 addi r2, 3 + 9c40: 7510 zextb r4, r4 + 9c42: 9861 ld.w r3, (r14, 0x4) + 9c44: 07dd br 0x9bfe // 9bfe + if(lens < 10) return 0x01; + 9c46: 3001 movi r0, 1 + 9c48: 07e5 br 0x9c12 // 9c12 + if( ctrl_num > 0x05) return 0x02; + 9c4a: 3002 movi r0, 2 + 9c4c: 07e3 br 0x9c12 // 9c12 + 9c4e: 0000 bkpt + 9c50: 47c35000 .long 0x47c35000 + +Disassembly of section .text.HLW_485Recv_Processing: + +00009c54 : + + +//485处理函数 +U8_T HLW_485Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9c54: 14d4 push r4-r7, r15 + 9c56: 1421 subi r14, r14, 4 + + if(RecvLen < 8){ + 9c58: 3907 cmphsi r1, 8 +{ + 9c5a: 6d03 mov r4, r0 + 9c5c: 6d87 mov r6, r1 + if(RecvLen < 8){ + 9c5e: 0c54 bf 0x9d06 // 9d06 + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9c60: 8024 ld.b r1, (r0, 0x4) + 9c62: 6586 cmpne r1, r6 + 9c64: 0c0a bf 0x9c78 // 9c78 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Data Len Error",__func__); + 9c66: 1248 lrw r2, 0xab30 // 9d84 + 9c68: 1228 lrw r1, 0xb70b // 9d88 + 9c6a: 3000 movi r0, 0 + 9c6c: e3ffeee4 bsr 0x7a34 // 7a34 + return 0x02; + 9c70: 3502 movi r5, 2 + return 0x01; + break; + } + + return 0; +} + 9c72: 6c17 mov r0, r5 + 9c74: 1401 addi r14, r14, 4 + 9c76: 1494 pop r4-r7, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9c78: 8040 ld.b r2, (r0, 0x0) + 9c7a: 338a movi r3, 138 + 9c7c: 64ca cmpne r2, r3 + 9c7e: 0807 bt 0x9c8c // 9c8c + 9c80: 5864 addu r3, r0, r1 + 9c82: 2b00 subi r3, 1 + 9c84: 8340 ld.b r2, (r3, 0x0) + 9c86: 33a8 movi r3, 168 + 9c88: 64ca cmpne r2, r3 + 9c8a: 0c08 bf 0x9c9a // 9c9a + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Head Error",__func__); + 9c8c: 115e lrw r2, 0xab30 // 9d84 + 9c8e: 1220 lrw r1, 0xb71d // 9d8c + 9c90: 3000 movi r0, 0 + 9c92: e3ffeed1 bsr 0x7a34 // 7a34 + return 0x03; + 9c96: 3503 movi r5, 3 + 9c98: 07ed br 0x9c72 // 9c72 + if(RecvData[2] != DEV_TYPE){// + 9c9a: 8042 ld.b r2, (r0, 0x2) + 9c9c: 33f4 movi r3, 244 + 9c9e: 64ca cmpne r2, r3 + 9ca0: 0c08 bf 0x9cb0 // 9cb0 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s TYPE Error",__func__); + 9ca2: 1159 lrw r2, 0xab30 // 9d84 + 9ca4: 113b lrw r1, 0xb72b // 9d90 + 9ca6: 3000 movi r0, 0 + 9ca8: e3ffeec6 bsr 0x7a34 // 7a34 + return 0x04; + 9cac: 3504 movi r5, 4 + 9cae: 07e2 br 0x9c72 // 9c72 + if(RecvData[3] != g_Dip.addr){// + 9cb0: 1179 lrw r3, 0x2000047c // 9d94 + 9cb2: 8043 ld.b r2, (r0, 0x3) + 9cb4: 8366 ld.b r3, (r3, 0x6) + 9cb6: 64ca cmpne r2, r3 + 9cb8: 0c08 bf 0x9cc8 // 9cc8 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error",__func__); + 9cba: 1153 lrw r2, 0xab30 // 9d84 + 9cbc: 1137 lrw r1, 0xb739 // 9d98 + 9cbe: 3000 movi r0, 0 + 9cc0: e3ffeeba bsr 0x7a34 // 7a34 + return 0x05; + 9cc4: 3505 movi r5, 5 + 9cc6: 07d6 br 0x9c72 // 9c72 + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9cc8: e3fff5ee bsr 0x88a4 // 88a4 + 9ccc: 3840 cmpnei r0, 0 + 9cce: 6d43 mov r5, r0 + 9cd0: 0c08 bf 0x9ce0 // 9ce0 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 9cd2: 114d lrw r2, 0xab30 // 9d84 + 9cd4: 1132 lrw r1, 0xb747 // 9d9c + 9cd6: 3000 movi r0, 0 + 9cd8: e3ffeeae bsr 0x7a34 // 7a34 + return 0x06; + 9cdc: 3506 movi r5, 6 + 9cde: 07ca br 0x9c72 // 9c72 + g_Eng.SdSN = RecvData[1]; //序列号 + 9ce0: 8461 ld.b r3, (r4, 0x1) + 9ce2: 11f0 lrw r7, 0x20000574 // 9da0 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9ce4: 8446 ld.b r2, (r4, 0x6) + 9ce6: 1130 lrw r1, 0xb497 // 9da4 + 9ce8: 3000 movi r0, 0 + g_Eng.SdSN = RecvData[1]; //序列号 + 9cea: a764 st.b r3, (r7, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9cec: e3ffeea4 bsr 0x7a34 // 7a34 + switch(RecvData[6]) + 9cf0: 8466 ld.b r3, (r4, 0x6) + 9cf2: 3b44 cmpnei r3, 4 + 9cf4: 0c36 bf 0x9d60 // 9d60 + 9cf6: 3b04 cmphsi r3, 5 + 9cf8: 0809 bt 0x9d0a // 9d0a + 9cfa: 3b42 cmpnei r3, 2 + 9cfc: 0c2a bf 0x9d50 // 9d50 + 9cfe: 3b02 cmphsi r3, 3 + 9d00: 082b bt 0x9d56 // 9d56 + 9d02: 3b41 cmpnei r3, 1 + 9d04: 0c23 bf 0x9d4a // 9d4a + return 0x01; + 9d06: 3501 movi r5, 1 + 9d08: 07b5 br 0x9c72 // 9c72 + switch(RecvData[6]) + 9d0a: 3b54 cmpnei r3, 20 + 9d0c: 0c2d bf 0x9d66 // 9d66 + 9d0e: 3b14 cmphsi r3, 21 + 9d10: 0812 bt 0x9d34 // 9d34 + 9d12: 3b53 cmpnei r3, 19 + 9d14: 0bf9 bt 0x9d06 // 9d06 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9d16: 9768 ld.w r3, (r7, 0x20) + 9d18: b769 st.w r3, (r7, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9d1a: 1164 lrw r3, 0x200000c4 // 9da8 + 9d1c: 9360 ld.w r3, (r3, 0x0) + 9d1e: b77c st.w r3, (r7, 0x70) + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 9d20: 3314 movi r3, 20 + 9d22: b860 st.w r3, (r14, 0x0) + 9d24: 3396 movi r3, 150 + 9d26: 4361 lsli r3, r3, 1 + 9d28: 3201 movi r2, 1 + 9d2a: 6c5b mov r1, r6 + 9d2c: 6c13 mov r0, r4 + 9d2e: e3ffedf5 bsr 0x7918 // 7918 + break; + 9d32: 07a0 br 0x9c72 // 9c72 + switch(RecvData[6]) + 9d34: 3b55 cmpnei r3, 21 + 9d36: 0c22 bf 0x9d7a // 9d7a + 9d38: 3221 movi r2, 33 + 9d3a: 648e cmpne r3, r2 + 9d3c: 0be5 bt 0x9d06 // 9d06 + Dbg_Switch = (RecvData[7]&0x0f); + 9d3e: 320f movi r2, 15 + 9d40: 8467 ld.b r3, (r4, 0x7) + 9d42: 68c8 and r3, r2 + 9d44: 105a lrw r2, 0x200000d8 // 9dac + 9d46: b260 st.w r3, (r2, 0x0) + 9d48: 07ec br 0x9d20 // 9d20 + Clear_SendFlag(); + 9d4a: e3ffee19 bsr 0x797c // 797c + break; + 9d4e: 0792 br 0x9c72 // 9c72 + BLV_Energy_PassiveRep_Packing(); + 9d50: e3fffdd8 bsr 0x9900 // 9900 + break; + 9d54: 078f br 0x9c72 // 9c72 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9d56: 6c5b mov r1, r6 + 9d58: 6c13 mov r0, r4 + 9d5a: e3fffe49 bsr 0x99ec // 99ec + break; + 9d5e: 078a br 0x9c72 // 9c72 + BLV_Energy_QueryVersion_Packing(); + 9d60: e3fffe96 bsr 0x9a8c // 9a8c + break; + 9d64: 0787 br 0x9c72 // 9c72 + g_Eng.Total_Eng = 0; + 9d66: 3300 movi r3, 0 + eng_info.eng_total = g_Eng.Total_Eng; + 9d68: 1012 lrw r0, 0x200004e4 // 9db0 + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 9d6a: b062 st.w r3, (r0, 0x8) + g_Eng.Total_Eng = 0; + 9d6c: b768 st.w r3, (r7, 0x20) + g_Eng.U32_EnergyA_RegData = 0x00; + 9d6e: b76f st.w r3, (r7, 0x3c) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9d70: b769 st.w r3, (r7, 0x24) + eng_info.eng_total = g_Eng.Total_Eng; + 9d72: b060 st.w r3, (r0, 0x0) + EEPROM_WriteTotalEng(&eng_info); + 9d74: e3fff346 bsr 0x8400 // 8400 + 9d78: 07d4 br 0x9d20 // 9d20 + BLV_Energy_SetCalibFactor(RecvData,RecvLen); + 9d7a: 6c5b mov r1, r6 + 9d7c: 6c13 mov r0, r4 + 9d7e: e3fffeeb bsr 0x9b54 // 9b54 + break; + 9d82: 0778 br 0x9c72 // 9c72 + 9d84: 0000ab30 .long 0x0000ab30 + 9d88: 0000b70b .long 0x0000b70b + 9d8c: 0000b71d .long 0x0000b71d + 9d90: 0000b72b .long 0x0000b72b + 9d94: 2000047c .long 0x2000047c + 9d98: 0000b739 .long 0x0000b739 + 9d9c: 0000b747 .long 0x0000b747 + 9da0: 20000574 .long 0x20000574 + 9da4: 0000b497 .long 0x0000b497 + 9da8: 200000c4 .long 0x200000c4 + 9dac: 200000d8 .long 0x200000d8 + 9db0: 200004e4 .long 0x200004e4 + +Disassembly of section .text.BT_Recv_Processing: + +00009db4 : + + + +//BT处理函数 +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9db4: 14d3 push r4-r6, r15 + if(RecvLen < 8){ + 9db6: 3907 cmphsi r1, 8 +{ + 9db8: 6d03 mov r4, r0 + 9dba: 6d47 mov r5, r1 + if(RecvLen < 8){ + 9dbc: 0c49 bf 0x9e4e // 9e4e + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9dbe: 8024 ld.b r1, (r0, 0x4) + 9dc0: 6546 cmpne r1, r5 + 9dc2: 0c08 bf 0x9dd2 // 9dd2 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"DatLenErr"); + 9dc4: 1139 lrw r1, 0xb756 // 9ea8 + 9dc6: 3003 movi r0, 3 + 9dc8: e3ffefd0 bsr 0x7d68 // 7d68 + return 0x02; + 9dcc: 3602 movi r6, 2 + return 0x01; + break; + } + + return 0; +} + 9dce: 6c1b mov r0, r6 + 9dd0: 1493 pop r4-r6, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9dd2: 8040 ld.b r2, (r0, 0x0) + 9dd4: 338a movi r3, 138 + 9dd6: 64ca cmpne r2, r3 + 9dd8: 0807 bt 0x9de6 // 9de6 + 9dda: 5864 addu r3, r0, r1 + 9ddc: 2b00 subi r3, 1 + 9dde: 8340 ld.b r2, (r3, 0x0) + 9de0: 33a8 movi r3, 168 + 9de2: 64ca cmpne r2, r3 + 9de4: 0c07 bf 0x9df2 // 9df2 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"HeadErr"); + 9de6: 1132 lrw r1, 0xb760 // 9eac + 9de8: 3003 movi r0, 3 + 9dea: e3ffefbf bsr 0x7d68 // 7d68 + return 0x03; + 9dee: 3603 movi r6, 3 + 9df0: 07ef br 0x9dce // 9dce + if(RecvData[2] != DEV_TYPE){// + 9df2: 8042 ld.b r2, (r0, 0x2) + 9df4: 33f4 movi r3, 244 + 9df6: 64ca cmpne r2, r3 + 9df8: 0c07 bf 0x9e06 // 9e06 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TYPEErr"); + 9dfa: 112e lrw r1, 0xb768 // 9eb0 + 9dfc: 3003 movi r0, 3 + 9dfe: e3ffefb5 bsr 0x7d68 // 7d68 + return 0x04; + 9e02: 3604 movi r6, 4 + 9e04: 07e5 br 0x9dce // 9dce + if(RecvData[3] != g_Dip.addr){// + 9e06: 116c lrw r3, 0x2000047c // 9eb4 + 9e08: 8043 ld.b r2, (r0, 0x3) + 9e0a: 8366 ld.b r3, (r3, 0x6) + 9e0c: 64ca cmpne r2, r3 + 9e0e: 0c07 bf 0x9e1c // 9e1c + Dbg_BT_Println(DBG_BIT_BT_STATUS,"AddrErr"); + 9e10: 112a lrw r1, 0xb770 // 9eb8 + 9e12: 3003 movi r0, 3 + 9e14: e3ffefaa bsr 0x7d68 // 7d68 + return 0x05; + 9e18: 3605 movi r6, 5 + 9e1a: 07da br 0x9dce // 9dce + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9e1c: e3fff544 bsr 0x88a4 // 88a4 + 9e20: 3840 cmpnei r0, 0 + 9e22: 6d83 mov r6, r0 + 9e24: 0c07 bf 0x9e32 // 9e32 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"CheckErr"); + 9e26: 1126 lrw r1, 0xb778 // 9ebc + 9e28: 3003 movi r0, 3 + 9e2a: e3ffef9f bsr 0x7d68 // 7d68 + return 0x06; + 9e2e: 3606 movi r6, 6 + 9e30: 07cf br 0x9dce // 9dce + g_Eng.SdSN = (RecvData[1]&0x0F); //序列号 + 9e32: 8461 ld.b r3, (r4, 0x1) + 9e34: 310f movi r1, 15 + 9e36: 68c4 and r3, r1 + 9e38: 1142 lrw r2, 0x20000574 // 9ec0 + 9e3a: a264 st.b r3, (r2, 0x4) + switch(RecvData[6]) + 9e3c: 8466 ld.b r3, (r4, 0x6) + 9e3e: 3b44 cmpnei r3, 4 + 9e40: 0c20 bf 0x9e80 // 9e80 + 9e42: 3b04 cmphsi r3, 5 + 9e44: 0807 bt 0x9e52 // 9e52 + 9e46: 3b42 cmpnei r3, 2 + 9e48: 0fc3 bf 0x9dce // 9dce + 9e4a: 3b43 cmpnei r3, 3 + 9e4c: 0c15 bf 0x9e76 // 9e76 + return 0x01; + 9e4e: 3601 movi r6, 1 + 9e50: 07bf br 0x9dce // 9dce + switch(RecvData[6]) + 9e52: 3b55 cmpnei r3, 21 + 9e54: 0c19 bf 0x9e86 // 9e86 + 9e56: 3121 movi r1, 33 + 9e58: 644e cmpne r3, r1 + 9e5a: 0c1b bf 0x9e90 // 9e90 + 9e5c: 3b53 cmpnei r3, 19 + 9e5e: 0bf8 bt 0x9e4e // 9e4e + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9e60: 9268 ld.w r3, (r2, 0x20) + 9e62: b269 st.w r3, (r2, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9e64: 1078 lrw r3, 0x200000c4 // 9ec4 + 9e66: 9360 ld.w r3, (r3, 0x0) + 9e68: b27c st.w r3, (r2, 0x70) + 9e6a: 7454 zextb r1, r5 + 9e6c: 3206 movi r2, 6 + 9e6e: 6c13 mov r0, r4 + 9e70: e3fff488 bsr 0x8780 // 8780 + 9e74: 07ad br 0x9dce // 9dce + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9e76: 6c57 mov r1, r5 + 9e78: 6c13 mov r0, r4 + 9e7a: e3fffdb9 bsr 0x99ec // 99ec + break; + 9e7e: 07a8 br 0x9dce // 9dce + BLV_Energy_QueryVersion_Packing(); + 9e80: e3fffe06 bsr 0x9a8c // 9a8c + break; + 9e84: 07a5 br 0x9dce // 9dce + BLV_Energy_SetCalibFactor_2(RecvData,RecvLen); + 9e86: 6c57 mov r1, r5 + 9e88: 6c13 mov r0, r4 + 9e8a: e3fffea7 bsr 0x9bd8 // 9bd8 + break; + 9e8e: 07a0 br 0x9dce // 9dce + if( (RecvData[7]&0x08) != 0x00 ){ + 9e90: 3208 movi r2, 8 + 9e92: 8467 ld.b r3, (r4, 0x7) + 9e94: 68c8 and r3, r2 + 9e96: 3b40 cmpnei r3, 0 + 9e98: 106c lrw r3, 0x200000d8 // 9ec8 + Dbg_Switch |= 0x08; + 9e9a: 9340 ld.w r2, (r3, 0x0) + if( (RecvData[7]&0x08) != 0x00 ){ + 9e9c: 0c04 bf 0x9ea4 // 9ea4 + Dbg_Switch |= 0x08; + 9e9e: 3aa3 bseti r2, 3 + Dbg_Switch &= (~0x08); + 9ea0: b340 st.w r2, (r3, 0x0) + 9ea2: 07e4 br 0x9e6a // 9e6a + 9ea4: 3a83 bclri r2, 3 + 9ea6: 07fd br 0x9ea0 // 9ea0 + 9ea8: 0000b756 .long 0x0000b756 + 9eac: 0000b760 .long 0x0000b760 + 9eb0: 0000b768 .long 0x0000b768 + 9eb4: 2000047c .long 0x2000047c + 9eb8: 0000b770 .long 0x0000b770 + 9ebc: 0000b778 .long 0x0000b778 + 9ec0: 20000574 .long 0x20000574 + 9ec4: 200000c4 .long 0x200000c4 + 9ec8: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Boot_Function_Init: + +00009ecc : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 9ecc: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9ece: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9ed0: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9ed2: 4241 lsli r2, r2, 1 + 9ed4: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9ed6: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9ed8: 1101 lrw r0, 0x200005ec // 9f5c + 9eda: e3ffd53f bsr 0x4958 // 4958 <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9ede: 6c97 mov r2, r5 + 9ee0: 3100 movi r1, 0 + 9ee2: 1100 lrw r0, 0x20000728 // 9f60 + 9ee4: e3ffd53a bsr 0x4958 // 4958 <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 9ee8: 33fa movi r3, 250 + 9eea: 4362 lsli r3, r3, 2 + 9eec: 109e lrw r4, 0x200006ec // 9f64 + 9eee: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 9ef0: e3fff3b0 bsr 0x8650 // 8650 +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 9ef4: 107d lrw r3, 0x2000005c // 9f68 + 9ef6: 9360 ld.w r3, (r3, 0x0) + 9ef8: 23ff addi r3, 256 + 9efa: 9343 ld.w r2, (r3, 0xc) + 9efc: 7449 zexth r1, r2 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 9efe: 6546 cmpne r1, r5 + 9f00: 0808 bt 0x9f10 // 9f10 + { + g_boot.bootTimeout = 5000; + 9f02: 107b lrw r3, 0x1388 // 9f6c + 9f04: b46d st.w r3, (r4, 0x34) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS," Boot software reset"); + 9f06: 103b lrw r1, 0xb781 // 9f70 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f08: 3000 movi r0, 0 + 9f0a: e3ffed95 bsr 0x7a34 // 7a34 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 9f0e: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 9f10: 3941 cmpnei r1, 1 + 9f12: 0806 bt 0x9f1e // 9f1e + g_boot.bootTimeout = 500; + 9f14: 33fa movi r3, 250 + 9f16: 4361 lsli r3, r3, 1 + 9f18: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot power on reset"); + 9f1a: 1037 lrw r1, 0xb796 // 9f74 + 9f1c: 07f6 br 0x9f08 // 9f08 + 9f1e: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x04) //外部手动复位 + 9f20: 3944 cmpnei r1, 4 + 9f22: 4363 lsli r3, r3, 3 + 9f24: 0804 bt 0x9f2c // 9f2c + g_boot.bootTimeout = 2000; + 9f26: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex-pin reset"); + 9f28: 1034 lrw r1, 0xb7aa // 9f78 + 9f2a: 07ef br 0x9f08 // 9f08 + }else if(sys_reset_sta == 0x10) //看门狗超时复位 --升级完成复位源 + 9f2c: 3950 cmpnei r1, 16 + 9f2e: 0804 bt 0x9f36 // 9f36 + g_boot.bootTimeout = 2000; + 9f30: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot wdt reset"); + 9f32: 1033 lrw r1, 0xb7bc // 9f7c + 9f34: 07ea br 0x9f08 // 9f08 + }else if(sys_reset_sta == 0x40) //外部时钟无效复位 + 9f36: 3040 movi r0, 64 + 9f38: 6406 cmpne r1, r0 + 9f3a: 0804 bt 0x9f42 // 9f42 + g_boot.bootTimeout = 2000; + 9f3c: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex clock invalid reset"); + 9f3e: 1031 lrw r1, 0xb7cb // 9f80 + 9f40: 07e4 br 0x9f08 // 9f08 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9f42: 3080 movi r0, 128 + 9f44: 6406 cmpne r1, r0 + g_boot.bootTimeout = 2000; + 9f46: b46d st.w r3, (r4, 0x34) + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9f48: 0803 bt 0x9f4e // 9f4e + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f4a: 102f lrw r1, 0xb7e7 // 9f84 + 9f4c: 07de br 0x9f08 // 9f08 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); + 9f4e: 7489 zexth r2, r2 + 9f50: 102e lrw r1, 0xb7fe // 9f88 + 9f52: 3000 movi r0, 0 + 9f54: e3ffed70 bsr 0x7a34 // 7a34 +} + 9f58: 07db br 0x9f0e // 9f0e + 9f5a: 0000 bkpt + 9f5c: 200005ec .long 0x200005ec + 9f60: 20000728 .long 0x20000728 + 9f64: 200006ec .long 0x200006ec + 9f68: 2000005c .long 0x2000005c + 9f6c: 00001388 .long 0x00001388 + 9f70: 0000b781 .long 0x0000b781 + 9f74: 0000b796 .long 0x0000b796 + 9f78: 0000b7aa .long 0x0000b7aa + 9f7c: 0000b7bc .long 0x0000b7bc + 9f80: 0000b7cb .long 0x0000b7cb + 9f84: 0000b7e7 .long 0x0000b7e7 + 9f88: 0000b7fe .long 0x0000b7fe + +Disassembly of section .text.Boot_Comm_CheckSum: + +00009f8c : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 9f8c: 14c1 push r4 + U8_T sum = 0; + 9f8e: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 9f90: 1047 lrw r2, 0xffff // 9fac + 9f92: 2900 subi r1, 1 + 9f94: 7445 zexth r1, r1 + 9f96: 6486 cmpne r1, r2 + 9f98: 0804 bt 0x9fa0 // 9fa0 + { + sum += buffer[i]; + i++; + } + return (~sum); + 9f9a: 6cce nor r3, r3 + 9f9c: 740c zextb r0, r3 +} + 9f9e: 1481 pop r4 + sum += buffer[i]; + 9fa0: 8080 ld.b r4, (r0, 0x0) + 9fa2: 60d0 addu r3, r4 + 9fa4: 74cc zextb r3, r3 + 9fa6: 2000 addi r0, 1 + 9fa8: 07f5 br 0x9f92 // 9f92 + 9faa: 0000 bkpt + 9fac: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +00009fb0 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 9fb0: 14d4 push r4-r7, r15 + 9fb2: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fb4: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 9fb6: 1077 lrw r3, 0x200004bc // a010 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fb8: 47e1 lsli r7, r7, 1 + 9fba: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 9fbc: 8340 ld.b r2, (r3, 0x0) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 9fbe: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fc0: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 9fc2: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fc4: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 9fc6: 1074 lrw r3, 0x200005ec // a014 + 9fc8: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9fca: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 9fcc: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + 9fce: 8062 ld.b r3, (r0, 0x2) + 9fd0: a06b st.b r3, (r0, 0xb) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 9fd2: 4d68 lsri r3, r5, 8 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 9fd4: 58ce addi r6, r0, 4 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 9fd6: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 9fd8: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 9fda: 8041 ld.b r2, (r0, 0x1) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 9fdc: 3300 movi r3, 0 +{ + 9fde: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 9fe0: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + 9fe2: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 9fe4: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 9fe6: 6c57 mov r1, r5 + 9fe8: 6c1b mov r0, r6 + 9fea: e3ffffd1 bsr 0x9f8c // 9f8c + 9fee: a40a st.b r0, (r4, 0xa) + +#if DBG_LOG_EN + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"ACKBuff ",ack_uart->ackBuffer,data_len); + 9ff0: 6cd7 mov r3, r5 + 9ff2: 6c9b mov r2, r6 + 9ff4: 1029 lrw r1, 0xb814 // a018 + 9ff6: 3000 movi r0, 0 + 9ff8: e3ffede2 bsr 0x7bbc // 7bbc +#endif + + //MCU485_SendData(ack_uart->ackBuffer, data_len); + Set_GroupSend(ack_uart->ackBuffer,data_len,0x01,ack_uart->ackValidity,100); + 9ffc: 3264 movi r2, 100 + 9ffe: 8f79 ld.h r3, (r7, 0x32) + a000: 6c57 mov r1, r5 + a002: b840 st.w r2, (r14, 0x0) + a004: 6c1b mov r0, r6 + a006: 3201 movi r2, 1 + a008: e3ffec88 bsr 0x7918 // 7918 + + //ack_uart->ackLen = 0x00; +} + a00c: 1401 addi r14, r14, 4 + a00e: 1494 pop r4-r7, r15 + a010: 200004bc .long 0x200004bc + a014: 200005ec .long 0x200005ec + a018: 0000b814 .long 0x0000b814 + +Disassembly of section .text.Boot_Time_Refresh: + +0000a01c : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + a01c: 1063 lrw r3, 0x200000c4 // a028 + a01e: 9340 ld.w r2, (r3, 0x0) + a020: 1063 lrw r3, 0x200006ec // a02c + a022: b34e st.w r2, (r3, 0x38) +} + a024: 783c jmp r15 + a026: 0000 bkpt + a028: 200000c4 .long 0x200000c4 + a02c: 200006ec .long 0x200006ec + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +0000a030 : +{ + a030: 14d4 push r4-r7, r15 + a032: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + a034: 8065 ld.b r3, (r0, 0x5) + a036: 8044 ld.b r2, (r0, 0x4) + a038: 4368 lsli r3, r3, 8 + a03a: 6cc8 or r3, r2 + if(len != data_len) { + a03c: 644e cmpne r3, r1 +{ + a03e: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + a040: b862 st.w r3, (r14, 0x8) + if(len != data_len) { + a042: 0c08 bf 0xa052 // a052 + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Fail "); + a044: 3000 movi r0, 0 + a046: 1333 lrw r1, 0xb81d // a210 + a048: e3ffecf6 bsr 0x7a34 // 7a34 + return 0x01; + a04c: 3001 movi r0, 1 +} + a04e: 1403 addi r14, r14, 12 + a050: 1494 pop r4-r7, r15 + if(Boot_Comm_CheckSum(data,len) != 0) { + a052: 9822 ld.w r1, (r14, 0x8) + a054: e3ffff9c bsr 0x9f8c // 9f8c + a058: 3840 cmpnei r0, 0 + a05a: b801 st.w r0, (r14, 0x4) + a05c: 0c07 bf 0xa06a // a06a + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_CheckSum Fail "); + a05e: 3000 movi r0, 0 + a060: 132d lrw r1, 0xb827 // a214 + a062: e3ffece9 bsr 0x7a34 // 7a34 + return 0x02; + a066: 3002 movi r0, 2 + a068: 07f3 br 0xa04e // a04e + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a06a: 8561 ld.b r3, (r5, 0x1) + a06c: 748e sextb r2, r3 + a06e: 3adf btsti r2, 31 + a070: 138a lrw r4, 0x200005ec // a218 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a072: 8421 ld.b r1, (r4, 0x1) + a074: 320f movi r2, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a076: 0c23 bf 0xa0bc // a0bc + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a078: 68c8 and r3, r2 + a07a: 64c6 cmpne r1, r3 + a07c: 0c0b bf 0xa092 // a092 + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN Disaffinity,Processing Data"); + a07e: 1328 lrw r1, 0xb840 // a21c + a080: 3000 movi r0, 0 + a082: e3ffecd9 bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a086: 3300 movi r3, 0 + a088: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a08a: 3701 movi r7, 1 + deal_flag = 0x01; + a08c: 3301 movi r3, 1 + deal_flag = 0x01; + a08e: b861 st.w r3, (r14, 0x4) + a090: 0408 br 0xa0a0 // a0a0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN The Same,No Processing Data"); + a092: 1324 lrw r1, 0xb86a // a220 + a094: 3000 movi r0, 0 + a096: e3ffeccf bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a09a: 3300 movi r3, 0 + a09c: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a09e: 3701 movi r7, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + a0a0: 13c1 lrw r6, 0x200004bc // a224 + a0a2: 8562 ld.b r3, (r5, 0x2) + a0a4: 8641 ld.b r2, (r6, 0x1) + a0a6: 648e cmpne r3, r2 + a0a8: 0c28 bf 0xa0f8 // a0f8 + a0aa: 31ff movi r1, 255 + a0ac: 644e cmpne r3, r1 + a0ae: 0c25 bf 0xa0f8 // a0f8 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvType %d - %d ",g_mcu_dev.dev_type,data[BCOMM_FMT_TYPE]); + a0b0: 3000 movi r0, 0 + a0b2: 123e lrw r1, 0xb8ea // a228 + a0b4: e3ffecc0 bsr 0x7a34 // 7a34 + return 0x03; + a0b8: 3003 movi r0, 3 + a0ba: 07ca br 0xa04e // a04e + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a0bc: 688c and r2, r3 + a0be: 6486 cmpne r1, r2 + a0c0: 0c09 bf 0xa0d2 // a0d2 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN Disaffinity,Processing Data"); + a0c2: 123b lrw r1, 0xb894 // a22c + a0c4: 3000 movi r0, 0 + a0c6: e3ffecb7 bsr 0x7a34 // 7a34 + reply_flag = 0x01; + a0ca: 3301 movi r3, 1 + group_flag = 0x00; + a0cc: 3700 movi r7, 0 + reply_flag = 0x01; + a0ce: b860 st.w r3, (r14, 0x0) + a0d0: 07df br 0xa08e // a08e + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + a0d2: 3240 movi r2, 64 + a0d4: 68c8 and r3, r2 + a0d6: 3b40 cmpnei r3, 0 + a0d8: 0c0d bf 0xa0f2 // a0f2 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + a0da: 846b ld.b r3, (r4, 0xb) + a0dc: 8547 ld.b r2, (r5, 0x7) + a0de: 64ca cmpne r2, r3 + a0e0: 64c3 mvcv r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0e2: 74cc zextb r3, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a0e4: 1233 lrw r1, 0xb8bf // a230 + a0e6: 3000 movi r0, 0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0e8: b860 st.w r3, (r14, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a0ea: e3ffeca5 bsr 0x7a34 // 7a34 + group_flag = 0x00; + a0ee: 3700 movi r7, 0 + a0f0: 07d8 br 0xa0a0 // a0a0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0f2: 3300 movi r3, 0 + a0f4: b860 st.w r3, (r14, 0x0) + a0f6: 07fc br 0xa0ee // a0ee + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + a0f8: 8563 ld.b r3, (r5, 0x3) + a0fa: 8640 ld.b r2, (r6, 0x0) + a0fc: 648e cmpne r3, r2 + a0fe: 0c0a bf 0xa112 // a112 + a100: 31ff movi r1, 255 + a102: 644e cmpne r3, r1 + a104: 0c07 bf 0xa112 // a112 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvAddr %d - %d ",g_mcu_dev.dev_addr,data[BCOMM_FMT_RXAddr]); + a106: 3000 movi r0, 0 + a108: 122b lrw r1, 0xb906 // a234 + a10a: e3ffec95 bsr 0x7a34 // 7a34 + return 0x04; + a10e: 3004 movi r0, 4 + a110: 079f br 0xa04e // a04e + Boot_Time_Refresh(); + a112: e3ffff85 bsr 0xa01c // a01c + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + a116: 8560 ld.b r3, (r5, 0x0) + a118: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + a11a: 8561 ld.b r3, (r5, 0x1) + a11c: 320f movi r2, 15 + a11e: 68c8 and r3, r2 + a120: a461 st.b r3, (r4, 0x1) + switch(g_boot.cmd){ + a122: 32c0 movi r2, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a124: 8567 ld.b r3, (r5, 0x7) + switch(g_boot.cmd){ + a126: 648e cmpne r3, r2 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a128: a462 st.b r3, (r4, 0x2) + switch(g_boot.cmd){ + a12a: 0c06 bf 0xa136 // a136 + a12c: 32c1 movi r2, 193 + a12e: 648e cmpne r3, r2 + a130: 0c53 bf 0xa1d6 // a1d6 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a132: 3301 movi r3, 1 + a134: 045f br 0xa1f2 // a1f2 + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + a136: 9861 ld.w r3, (r14, 0x4) + a138: 3b41 cmpnei r3, 1 + a13a: 081d bt 0xa174 // a174 + a13c: 9862 ld.w r3, (r14, 0x8) + a13e: 3b0b cmphsi r3, 12 + a140: 0c1a bf 0xa174 // a174 + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Handshake Proecessing "); + a142: 113e lrw r1, 0xb922 // a238 + a144: 3000 movi r0, 0 + a146: e3ffec77 bsr 0x7a34 // 7a34 + temp_data |= data[BCOMM_FMT_PARAM]; + a14a: 8549 ld.b r2, (r5, 0x9) + a14c: 8568 ld.b r3, (r5, 0x8) + a14e: 4248 lsli r2, r2, 8 + a150: 6c8c or r2, r3 + if(temp_data != g_boot.bootTimeout){ + a152: 117b lrw r3, 0x200006ec // a23c + a154: 932d ld.w r1, (r3, 0x34) + a156: 644a cmpne r2, r1 + a158: 0c09 bf 0xa16a // a16a + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a15a: 3a09 cmphsi r2, 10 + a15c: 0c3b bf 0xa1d2 // a1d2 + a15e: b34d st.w r2, (r3, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + a160: 31fa movi r1, 250 + a162: 934d ld.w r2, (r3, 0x34) + a164: 4122 lsli r1, r1, 2 + a166: 7c84 mult r2, r1 + a168: b34d st.w r2, (r3, 0x34) + a16a: 854b ld.b r2, (r5, 0xb) + a16c: 852a ld.b r1, (r5, 0xa) + a16e: 4248 lsli r2, r2, 8 + a170: 6c84 or r2, r1 + g_boot.ackValidity = temp_data; + a172: ab59 st.h r2, (r3, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + a174: 9860 ld.w r3, (r14, 0x0) + a176: 3b41 cmpnei r3, 1 + a178: 0b6b bt 0xa04e // a04e + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + a17a: 3302 movi r3, 2 + a17c: a46c st.b r3, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + a17e: 8662 ld.b r3, (r6, 0x2) + a180: a46d st.b r3, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + a182: 8663 ld.b r3, (r6, 0x3) + a184: a46e st.b r3, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + a186: 3303 movi r3, 3 + a188: a46f st.b r3, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + a18a: 116e lrw r3, 0x2000005c // a240 + a18c: 9360 ld.w r3, (r3, 0x0) + a18e: 237f addi r3, 128 + a190: 9359 ld.w r2, (r3, 0x64) + a192: a450 st.b r2, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + a194: 935a ld.w r2, (r3, 0x68) + a196: a451 st.b r2, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + a198: 937b ld.w r3, (r3, 0x6c) + a19a: a472 st.b r3, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + a19c: 8644 ld.b r2, (r6, 0x4) + a19e: 3320 movi r3, 32 + a1a0: 648c cmphs r3, r2 + a1a2: 0802 bt 0xa1a6 // a1a6 + a1a4: a664 st.b r3, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + a1a6: 8664 ld.b r3, (r6, 0x4) + a1a8: a473 st.b r3, (r4, 0x13) + a1aa: 3320 movi r3, 32 + a1ac: 103e lrw r1, 0x200004bc // a224 + a1ae: 105b lrw r2, 0x200005ec // a218 + a1b0: 2b00 subi r3, 1 + a1b2: 74cc zextb r3, r3 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + a1b4: 8105 ld.b r0, (r1, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + a1c0: 107f lrw r3, 0x200006ec // a23c + a1c2: 3228 movi r2, 40 + a1c4: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a1c6: 3f40 cmpnei r7, 0 + a1c8: 0b43 bt 0xa04e // a04e + Boot_Comm_FillReplyPack(&g_boot); + a1ca: 1014 lrw r0, 0x200005ec // a218 + a1cc: e3fffef2 bsr 0x9fb0 // 9fb0 + a1d0: 073f br 0xa04e // a04e + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a1d2: 320a movi r2, 10 + a1d4: 07c5 br 0xa15e // a15e + if(deal_flag != 0x01) break; //不处理直接退出 + a1d6: 9861 ld.w r3, (r14, 0x4) + a1d8: 3b41 cmpnei r3, 1 + a1da: 0810 bt 0xa1fa // a1fa + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Jump Proecessing "); + a1dc: 103a lrw r1, 0xb943 // a244 + a1de: 3000 movi r0, 0 + a1e0: e3ffec2a bsr 0x7a34 // 7a34 + if(data[BCOMM_FMT_PARAM] == 0x01){ + a1e4: 8568 ld.b r3, (r5, 0x8) + a1e6: 3b41 cmpnei r3, 1 + a1e8: 080e bt 0xa204 // a204 + BUS485_Jump_Boot(0x01); + a1ea: 3001 movi r0, 1 + a1ec: e3ffebd0 bsr 0x798c // 798c + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + a1f0: 3300 movi r3, 0 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a1f2: a46c st.b r3, (r4, 0xc) + g_boot.ackLen = 1; + a1f4: 3201 movi r2, 1 + a1f6: 1072 lrw r3, 0x200006ec // a23c + a1f8: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a1fa: 3f40 cmpnei r7, 0 + a1fc: 0b29 bt 0xa04e // a04e + a1fe: 9860 ld.w r3, (r14, 0x0) + a200: 3b41 cmpnei r3, 1 + a202: 07e3 br 0xa1c8 // a1c8 + Dbg_Println(DBG_BIT_SYS_STATUS,"ERR:Jump_boot"); + a204: 1031 lrw r1, 0xb95f // a248 + a206: 3000 movi r0, 0 + a208: e3ffec16 bsr 0x7a34 // 7a34 + a20c: 0793 br 0xa132 // a132 + a20e: 0000 bkpt + a210: 0000b81d .long 0x0000b81d + a214: 0000b827 .long 0x0000b827 + a218: 200005ec .long 0x200005ec + a21c: 0000b840 .long 0x0000b840 + a220: 0000b86a .long 0x0000b86a + a224: 200004bc .long 0x200004bc + a228: 0000b8ea .long 0x0000b8ea + a22c: 0000b894 .long 0x0000b894 + a230: 0000b8bf .long 0x0000b8bf + a234: 0000b906 .long 0x0000b906 + a238: 0000b922 .long 0x0000b922 + a23c: 200006ec .long 0x200006ec + a240: 2000005c .long 0x2000005c + a244: 0000b943 .long 0x0000b943 + a248: 0000b95f .long 0x0000b95f + +Disassembly of section .text.TK_Sampling_prog: + +0000a24c : + a24c: 14c4 push r4-r7 + a24e: 1072 lrw r3, 0x20000054 // a294 + a250: 1012 lrw r0, 0x20000ace // a298 + a252: 1093 lrw r4, 0x2000093f // a29c + a254: 6d83 mov r6, r0 + a256: 93a0 ld.w r5, (r3, 0x0) + a258: 3300 movi r3, 0 + a25a: 4342 lsli r2, r3, 2 + a25c: 6094 addu r2, r5 + a25e: 9220 ld.w r1, (r2, 0x0) + a260: 4341 lsli r2, r3, 1 + a262: 6080 addu r2, r0 + a264: 7445 zexth r1, r1 + a266: aa20 st.h r1, (r2, 0x0) + a268: 8440 ld.b r2, (r4, 0x0) + a26a: 3a41 cmpnei r2, 1 + a26c: 080f bt 0xa28a // a28a + a26e: 3300 movi r3, 0 + a270: 10ec lrw r7, 0x20000828 // a2a0 + a272: 4341 lsli r2, r3, 1 + a274: 5e28 addu r1, r6, r2 + a276: 8920 ld.h r1, (r1, 0x0) + a278: 2300 addi r3, 1 + a27a: 7445 zexth r1, r1 + a27c: 609c addu r2, r7 + a27e: 3b51 cmpnei r3, 17 + a280: aa20 st.h r1, (r2, 0x0) + a282: 0bf8 bt 0xa272 // a272 + a284: 3300 movi r3, 0 + a286: a460 st.b r3, (r4, 0x0) + a288: 3311 movi r3, 17 + a28a: 2300 addi r3, 1 + a28c: 74cc zextb r3, r3 + a28e: 3b10 cmphsi r3, 17 + a290: 0fe5 bf 0xa25a // a25a + a292: 1484 pop r4-r7 + a294: 20000054 .long 0x20000054 + a298: 20000ace .long 0x20000ace + a29c: 2000093f .long 0x2000093f + a2a0: 20000828 .long 0x20000828 + +Disassembly of section .text.TKEYIntHandler: + +0000a2a4 : + a2a4: 1460 nie + a2a6: 1462 ipush + a2a8: 14d1 push r4, r15 + a2aa: 109e lrw r4, 0x20000068 // a320 + a2ac: 9460 ld.w r3, (r4, 0x0) + a2ae: 3b40 cmpnei r3, 0 + a2b0: 080b bt 0xa2c6 // a2c6 + a2b2: 3301 movi r3, 1 + a2b4: b460 st.w r3, (r4, 0x0) + a2b6: 107c lrw r3, 0x200008bc // a324 + a2b8: 8360 ld.b r3, (r3, 0x0) + a2ba: 3b41 cmpnei r3, 1 + a2bc: 0805 bt 0xa2c6 // a2c6 + a2be: e3ffffc7 bsr 0xa24c // a24c + a2c2: 3301 movi r3, 1 + a2c4: a464 st.b r3, (r4, 0x4) + a2c6: 1079 lrw r3, 0x20000058 // a328 + a2c8: 3101 movi r1, 1 + a2ca: 9360 ld.w r3, (r3, 0x0) + a2cc: 934a ld.w r2, (r3, 0x28) + a2ce: 6884 and r2, r1 + a2d0: 3a40 cmpnei r2, 0 + a2d2: 0c02 bf 0xa2d6 // a2d6 + a2d4: b32c st.w r1, (r3, 0x30) + a2d6: 934a ld.w r2, (r3, 0x28) + a2d8: 3102 movi r1, 2 + a2da: 6884 and r2, r1 + a2dc: 3a40 cmpnei r2, 0 + a2de: 0c02 bf 0xa2e2 // a2e2 + a2e0: b32c st.w r1, (r3, 0x30) + a2e2: 934a ld.w r2, (r3, 0x28) + a2e4: 3104 movi r1, 4 + a2e6: 6884 and r2, r1 + a2e8: 3a40 cmpnei r2, 0 + a2ea: 0c02 bf 0xa2ee // a2ee + a2ec: b32c st.w r1, (r3, 0x30) + a2ee: 934a ld.w r2, (r3, 0x28) + a2f0: 3108 movi r1, 8 + a2f2: 6884 and r2, r1 + a2f4: 3a40 cmpnei r2, 0 + a2f6: 0c02 bf 0xa2fa // a2fa + a2f8: b32c st.w r1, (r3, 0x30) + a2fa: 934a ld.w r2, (r3, 0x28) + a2fc: 3110 movi r1, 16 + a2fe: 6884 and r2, r1 + a300: 3a40 cmpnei r2, 0 + a302: 0c02 bf 0xa306 // a306 + a304: b32c st.w r1, (r3, 0x30) + a306: 934a ld.w r2, (r3, 0x28) + a308: 3120 movi r1, 32 + a30a: 6884 and r2, r1 + a30c: 3a40 cmpnei r2, 0 + a30e: 0c02 bf 0xa312 // a312 + a310: b32c st.w r1, (r3, 0x30) + a312: d9ee2001 ld.w r15, (r14, 0x4) + a316: 9880 ld.w r4, (r14, 0x0) + a318: 1402 addi r14, r14, 8 + a31a: 1463 ipop + a31c: 1461 nir + a31e: 0000 bkpt + a320: 20000068 .long 0x20000068 + a324: 200008bc .long 0x200008bc + a328: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000a32c : + a32c: 14c2 push r4-r5 + a32e: 3200 movi r2, 0 + a330: 3000 movi r0, 0 + a332: 1088 lrw r4, 0x2000095c // a350 + a334: 3501 movi r5, 1 + a336: 3120 movi r1, 32 + a338: 9460 ld.w r3, (r4, 0x0) + a33a: 70c9 lsr r3, r2 + a33c: 68d4 and r3, r5 + a33e: 3b40 cmpnei r3, 0 + a340: 0c02 bf 0xa344 // a344 + a342: 2000 addi r0, 1 + a344: 2200 addi r2, 1 + a346: 644a cmpne r2, r1 + a348: 0bf8 bt 0xa338 // a338 + a34a: 7400 zextb r0, r0 + a34c: 1482 pop r4-r5 + a34e: 0000 bkpt + a350: 2000095c .long 0x2000095c + +Disassembly of section .text.TK_Scan_Start: + +0000a354 : + a354: 1046 lrw r2, 0x20000068 // a36c + a356: 8264 ld.b r3, (r2, 0x4) + a358: 74cc zextb r3, r3 + a35a: 3b41 cmpnei r3, 1 + a35c: 0807 bt 0xa36a // a36a + a35e: 1025 lrw r1, 0x20000058 // a370 + a360: 9120 ld.w r1, (r1, 0x0) + a362: b162 st.w r3, (r1, 0x8) + a364: 3300 movi r3, 0 + a366: b260 st.w r3, (r2, 0x0) + a368: a264 st.b r3, (r2, 0x4) + a36a: 783c jmp r15 + a36c: 20000068 .long 0x20000068 + a370: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +0000a374 : + a374: 14d4 push r4-r7, r15 + a376: 1425 subi r14, r14, 20 + a378: 1271 lrw r3, 0x200001ac // a4bc + a37a: 8360 ld.b r3, (r3, 0x0) + a37c: b860 st.w r3, (r14, 0x0) + a37e: 3400 movi r4, 0 + a380: 1270 lrw r3, 0x20000180 // a4c0 + a382: 8360 ld.b r3, (r3, 0x0) + a384: b861 st.w r3, (r14, 0x4) + a386: 12f0 lrw r7, 0x200008d2 // a4c4 + a388: 1270 lrw r3, 0x20000189 // a4c8 + a38a: 83a0 ld.b r5, (r3, 0x0) + a38c: 1270 lrw r3, 0x20000188 // a4cc + a38e: 8360 ld.b r3, (r3, 0x0) + a390: b862 st.w r3, (r14, 0x8) + a392: 6d9f mov r6, r7 + a394: 126f lrw r3, 0x20000ace // a4d0 + a396: b863 st.w r3, (r14, 0xc) + a398: 4461 lsli r3, r4, 1 + a39a: 9843 ld.w r2, (r14, 0xc) + a39c: 608c addu r2, r3 + a39e: 122e lrw r1, 0x20000828 // a4d4 + a3a0: 604c addu r1, r3 + a3a2: 8a40 ld.h r2, (r2, 0x0) + a3a4: 8920 ld.h r1, (r1, 0x0) + a3a6: 6086 subu r2, r1 + a3a8: 748b sexth r2, r2 + a3aa: 5f2c addu r1, r7, r3 + a3ac: a940 st.h r2, (r1, 0x0) + a3ae: 8940 ld.h r2, (r1, 0x0) + a3b0: 748b sexth r2, r2 + a3b2: 3adf btsti r2, 31 + a3b4: 1249 lrw r2, 0x20000a8a // a4d8 + a3b6: 608c addu r2, r3 + a3b8: 0c37 bf 0xa426 // a426 + a3ba: 3100 movi r1, 0 + a3bc: aa20 st.h r1, (r2, 0x0) + a3be: 9840 ld.w r2, (r14, 0x0) + a3c0: 3a01 cmphsi r2, 2 + a3c2: 0c6d bf 0xa49c // a49c + a3c4: 4461 lsli r3, r4, 1 + a3c6: 5e2c addu r1, r6, r3 + a3c8: 1205 lrw r0, 0x200001da // a4dc + a3ca: 8940 ld.h r2, (r1, 0x0) + a3cc: 60c0 addu r3, r0 + a3ce: 748b sexth r2, r2 + a3d0: 8b60 ld.h r3, (r3, 0x0) + a3d2: 648d cmplt r3, r2 + a3d4: 9840 ld.w r2, (r14, 0x0) + a3d6: 7cc8 mult r3, r2 + a3d8: 0c2a bf 0xa42c // a42c + a3da: 8940 ld.h r2, (r1, 0x0) + a3dc: 748b sexth r2, r2 + a3de: 64c9 cmplt r2, r3 + a3e0: 0c26 bf 0xa42c // a42c + a3e2: 1240 lrw r2, 0x200008c0 // a4e0 + a3e4: 6090 addu r2, r4 + a3e6: 8260 ld.b r3, (r2, 0x0) + a3e8: 2300 addi r3, 1 + a3ea: 74cc zextb r3, r3 + a3ec: a260 st.b r3, (r2, 0x0) + a3ee: 3100 movi r1, 0 + a3f0: 117d lrw r3, 0x200008a6 // a4e4 + a3f2: 60d0 addu r3, r4 + a3f4: a320 st.b r1, (r3, 0x0) + a3f6: 117d lrw r3, 0x20000982 // a4e8 + a3f8: 60d0 addu r3, r4 + a3fa: a320 st.b r1, (r3, 0x0) + a3fc: 117c lrw r3, 0x200009fc // a4ec + a3fe: 60d0 addu r3, r4 + a400: a320 st.b r1, (r3, 0x0) + a402: 8260 ld.b r3, (r2, 0x0) + a404: 9821 ld.w r1, (r14, 0x4) + a406: 64c4 cmphs r1, r3 + a408: 081f bt 0xa446 // a446 + a40a: 3d40 cmpnei r5, 0 + a40c: 0852 bt 0xa4b0 // a4b0 + a40e: 1139 lrw r1, 0x200008b8 // a4f0 + a410: 9160 ld.w r3, (r1, 0x0) + a412: 3b40 cmpnei r3, 0 + a414: 0806 bt 0xa420 // a420 + a416: 9100 ld.w r0, (r1, 0x0) + a418: 3301 movi r3, 1 + a41a: 70d0 lsl r3, r4 + a41c: 6cc0 or r3, r0 + a41e: b160 st.w r3, (r1, 0x0) + a420: 3300 movi r3, 0 + a422: a260 st.b r3, (r2, 0x0) + a424: 0411 br 0xa446 // a446 + a426: 8920 ld.h r1, (r1, 0x0) + a428: 7445 zexth r1, r1 + a42a: 07c9 br 0xa3bc // a3bc + a42c: 4441 lsli r2, r4, 1 + a42e: 6098 addu r2, r6 + a430: 8a40 ld.h r2, (r2, 0x0) + a432: 748b sexth r2, r2 + a434: 648d cmplt r3, r2 + a436: 0c08 bf 0xa446 // a446 + a438: 3300 movi r3, 0 + a43a: 114e lrw r2, 0x200008b8 // a4f0 + a43c: 2b01 subi r3, 2 + a43e: 9220 ld.w r1, (r2, 0x0) + a440: 70d3 rotl r3, r4 + a442: 68c4 and r3, r1 + a444: b260 st.w r3, (r2, 0x0) + a446: 4441 lsli r2, r4, 1 + a448: 5e68 addu r3, r6, r2 + a44a: 8b60 ld.h r3, (r3, 0x0) + a44c: 74cf sexth r3, r3 + a44e: b864 st.w r3, (r14, 0x10) + a450: 3105 movi r1, 5 + a452: 1163 lrw r3, 0x200001da // a4dc + a454: 608c addu r2, r3 + a456: 8a00 ld.h r0, (r2, 0x0) + a458: 4002 lsli r0, r0, 2 + a45a: e3ffe825 bsr 0x74a4 // 74a4 <__divsi3> + a45e: 9864 ld.w r3, (r14, 0x10) + a460: 640d cmplt r3, r0 + a462: 0c18 bf 0xa492 // a492 + a464: 1140 lrw r2, 0x200008a6 // a4e4 + a466: 6090 addu r2, r4 + a468: 8260 ld.b r3, (r2, 0x0) + a46a: 2300 addi r3, 1 + a46c: 74cc zextb r3, r3 + a46e: a260 st.b r3, (r2, 0x0) + a470: 3100 movi r1, 0 + a472: 107c lrw r3, 0x200008c0 // a4e0 + a474: 60d0 addu r3, r4 + a476: a320 st.b r1, (r3, 0x0) + a478: 8260 ld.b r3, (r2, 0x0) + a47a: 9822 ld.w r1, (r14, 0x8) + a47c: 64c4 cmphs r1, r3 + a47e: 080a bt 0xa492 // a492 + a480: 3300 movi r3, 0 + a482: 103c lrw r1, 0x200008b8 // a4f0 + a484: 2b01 subi r3, 2 + a486: 9100 ld.w r0, (r1, 0x0) + a488: 70d3 rotl r3, r4 + a48a: 68c0 and r3, r0 + a48c: b160 st.w r3, (r1, 0x0) + a48e: 3300 movi r3, 0 + a490: a260 st.b r3, (r2, 0x0) + a492: 2400 addi r4, 1 + a494: 3c51 cmpnei r4, 17 + a496: 0b81 bt 0xa398 // a398 + a498: 1405 addi r14, r14, 20 + a49a: 1494 pop r4-r7, r15 + a49c: 60d8 addu r3, r6 + a49e: 4441 lsli r2, r4, 1 + a4a0: 102f lrw r1, 0x200001da // a4dc + a4a2: 8b60 ld.h r3, (r3, 0x0) + a4a4: 6084 addu r2, r1 + a4a6: 74cf sexth r3, r3 + a4a8: 8a40 ld.h r2, (r2, 0x0) + a4aa: 64c9 cmplt r2, r3 + a4ac: 0fcd bf 0xa446 // a446 + a4ae: 079a br 0xa3e2 // a3e2 + a4b0: 3d41 cmpnei r5, 1 + a4b2: 0bb7 bt 0xa420 // a420 + a4b4: 102f lrw r1, 0x200008b8 // a4f0 + a4b6: 6cd7 mov r3, r5 + a4b8: 9100 ld.w r0, (r1, 0x0) + a4ba: 07b0 br 0xa41a // a41a + a4bc: 200001ac .long 0x200001ac + a4c0: 20000180 .long 0x20000180 + a4c4: 200008d2 .long 0x200008d2 + a4c8: 20000189 .long 0x20000189 + a4cc: 20000188 .long 0x20000188 + a4d0: 20000ace .long 0x20000ace + a4d4: 20000828 .long 0x20000828 + a4d8: 20000a8a .long 0x20000a8a + a4dc: 200001da .long 0x200001da + a4e0: 200008c0 .long 0x200008c0 + a4e4: 200008a6 .long 0x200008a6 + a4e8: 20000982 .long 0x20000982 + a4ec: 200009fc .long 0x200009fc + a4f0: 200008b8 .long 0x200008b8 + +Disassembly of section .text.TK_overflow_predict: + +0000a4f4 : + a4f4: 14d4 push r4-r7, r15 + a4f6: 1421 subi r14, r14, 4 + a4f8: 11d9 lrw r6, 0x20000068 // a5dc + a4fa: 8665 ld.b r3, (r6, 0x5) + a4fc: 3b41 cmpnei r3, 1 + a4fe: 085f bt 0xa5bc // a5bc + a500: 1158 lrw r2, 0x200009d8 // a5e0 + a502: 8260 ld.b r3, (r2, 0x0) + a504: 2300 addi r3, 1 + a506: 74cc zextb r3, r3 + a508: a260 st.b r3, (r2, 0x0) + a50a: 8260 ld.b r3, (r2, 0x0) + a50c: 1136 lrw r1, 0x200001ad // a5e4 + a50e: 8120 ld.b r1, (r1, 0x0) + a510: 64c4 cmphs r1, r3 + a512: 0855 bt 0xa5bc // a5bc + a514: 3300 movi r3, 0 + a516: a260 st.b r3, (r2, 0x0) + a518: 3500 movi r5, 0 + a51a: 11f4 lrw r7, 0x200001b0 // a5e8 + a51c: 2605 addi r6, 6 + a51e: 9760 ld.w r3, (r7, 0x0) + a520: 70d5 lsr r3, r5 + a522: 3201 movi r2, 1 + a524: 68c8 and r3, r2 + a526: 3b40 cmpnei r3, 0 + a528: 0c34 bf 0xa590 // a590 + a52a: 4581 lsli r4, r5, 1 + a52c: 5e70 addu r3, r6, r4 + a52e: 8b00 ld.h r0, (r3, 0x0) + a530: e3ffcef0 bsr 0x4310 // 4310 <__floatunsidf> + a534: 6cc7 mov r3, r1 + a536: 3180 movi r1, 128 + a538: 6c83 mov r2, r0 + a53a: 4137 lsli r1, r1, 23 + a53c: 3000 movi r0, 0 + a53e: e3ffc23b bsr 0x29b4 // 29b4 <__GI_pow> + a542: 116b lrw r3, 0x200001b6 // a5ec + a544: 60d0 addu r3, r4 + a546: 8b60 ld.h r3, (r3, 0x0) + a548: 4364 lsli r3, r3, 4 + a54a: 230e addi r3, 15 + a54c: b860 st.w r3, (r14, 0x0) + a54e: e3ffc807 bsr 0x355c // 355c <__fixunsdfsi> + a552: 9860 ld.w r3, (r14, 0x0) + a554: 7cc0 mult r3, r0 + a556: 1147 lrw r2, 0x20000a68 // a5f0 + a558: 740d zexth r0, r3 + a55a: 6090 addu r2, r4 + a55c: 1166 lrw r3, 0x20000ace // a5f4 + a55e: 60d0 addu r3, r4 + a560: aa00 st.h r0, (r2, 0x0) + a562: 8b60 ld.h r3, (r3, 0x0) + a564: 8a00 ld.h r0, (r2, 0x0) + a566: 7401 zexth r0, r0 + a568: 325f movi r2, 95 + a56a: 74cd zexth r3, r3 + a56c: 7c08 mult r0, r2 + a56e: 3164 movi r1, 100 + a570: b860 st.w r3, (r14, 0x0) + a572: e3ffe799 bsr 0x74a4 // 74a4 <__divsi3> + a576: 9860 ld.w r3, (r14, 0x0) + a578: 64c1 cmplt r0, r3 + a57a: 0c0b bf 0xa590 // a590 + a57c: 107f lrw r3, 0x2000018a // a5f8 + a57e: 610c addu r4, r3 + a580: 8c60 ld.h r3, (r4, 0x0) + a582: 3b06 cmphsi r3, 7 + a584: 0806 bt 0xa590 // a590 + a586: 2300 addi r3, 1 + a588: ac60 st.h r3, (r4, 0x0) + a58a: 3201 movi r2, 1 + a58c: 107c lrw r3, 0x2000092d // a5fc + a58e: a340 st.b r2, (r3, 0x0) + a590: 2500 addi r5, 1 + a592: 3d51 cmpnei r5, 17 + a594: 0bc5 bt 0xa51e // a51e + a596: 107a lrw r3, 0x2000092d // a5fc + a598: 8340 ld.b r2, (r3, 0x0) + a59a: 3a41 cmpnei r2, 1 + a59c: 0810 bt 0xa5bc // a5bc + a59e: 3200 movi r2, 0 + a5a0: a340 st.b r2, (r3, 0x0) + a5a2: 3200 movi r2, 0 + a5a4: 1077 lrw r3, 0x20000058 // a600 + a5a6: 1018 lrw r0, 0x200009fb // a604 + a5a8: 10b8 lrw r5, 0x20000a34 // a608 + a5aa: 10d4 lrw r6, 0x2000018a // a5f8 + a5ac: 9360 ld.w r3, (r3, 0x0) + a5ae: b342 st.w r2, (r3, 0x8) + a5b0: 1077 lrw r3, 0x20000054 // a60c + a5b2: 9380 ld.w r4, (r3, 0x0) + a5b4: 3300 movi r3, 0 + a5b6: 8040 ld.b r2, (r0, 0x0) + a5b8: 648c cmphs r3, r2 + a5ba: 0c03 bf 0xa5c0 // a5c0 + a5bc: 1401 addi r14, r14, 4 + a5be: 1494 pop r4-r7, r15 + a5c0: 5d4c addu r2, r5, r3 + a5c2: 8240 ld.b r2, (r2, 0x0) + a5c4: 4241 lsli r2, r2, 1 + a5c6: 4322 lsli r1, r3, 2 + a5c8: 6098 addu r2, r6 + a5ca: 6050 addu r1, r4 + a5cc: 8a40 ld.h r2, (r2, 0x0) + a5ce: 91f2 ld.w r7, (r1, 0x48) + a5d0: 4254 lsli r2, r2, 20 + a5d2: 6c9c or r2, r7 + a5d4: 2300 addi r3, 1 + a5d6: b152 st.w r2, (r1, 0x48) + a5d8: 74cc zextb r3, r3 + a5da: 07ee br 0xa5b6 // a5b6 + a5dc: 20000068 .long 0x20000068 + a5e0: 200009d8 .long 0x200009d8 + a5e4: 200001ad .long 0x200001ad + a5e8: 200001b0 .long 0x200001b0 + a5ec: 200001b6 .long 0x200001b6 + a5f0: 20000a68 .long 0x20000a68 + a5f4: 20000ace .long 0x20000ace + a5f8: 2000018a .long 0x2000018a + a5fc: 2000092d .long 0x2000092d + a600: 20000058 .long 0x20000058 + a604: 200009fb .long 0x200009fb + a608: 20000a34 .long 0x20000a34 + a60c: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +0000a610 : + a610: 14c4 push r4-r7 + a612: 1422 subi r14, r14, 8 + a614: 1348 lrw r2, 0x2000095a // a7b4 + a616: 8260 ld.b r3, (r2, 0x0) + a618: 2300 addi r3, 1 + a61a: 74cc zextb r3, r3 + a61c: a260 st.b r3, (r2, 0x0) + a61e: 8260 ld.b r3, (r2, 0x0) + a620: 1326 lrw r1, 0x200001ad // a7b8 + a622: 8120 ld.b r1, (r1, 0x0) + a624: 644c cmphs r3, r1 + a626: 0cad bf 0xa780 // a780 + a628: 3300 movi r3, 0 + a62a: a260 st.b r3, (r2, 0x0) + a62c: 1364 lrw r3, 0x200008b8 // a7bc + a62e: 9360 ld.w r3, (r3, 0x0) + a630: 3b40 cmpnei r3, 0 + a632: 08a7 bt 0xa780 // a780 + a634: 1323 lrw r1, 0x200008d2 // a7c0 + a636: 6dc7 mov r7, r1 + a638: b820 st.w r1, (r14, 0x0) + a63a: 3200 movi r2, 0 + a63c: 1362 lrw r3, 0x200001da // a7c4 + a63e: 1323 lrw r1, 0x20000828 // a7c8 + a640: 4201 lsli r0, r2, 1 + a642: 9880 ld.w r4, (r14, 0x0) + a644: 6100 addu r4, r0 + a646: 8c80 ld.h r4, (r4, 0x0) + a648: 7513 sexth r4, r4 + a64a: 3cdf btsti r4, 31 + a64c: 0c27 bf 0xa69a // a69a + a64e: 13a0 lrw r5, 0x20000ace // a7cc + a650: 5980 addu r4, r1, r0 + a652: 6014 addu r0, r5 + a654: b881 st.w r4, (r14, 0x4) + a656: 8c80 ld.h r4, (r4, 0x0) + a658: 88c0 ld.h r6, (r0, 0x0) + a65a: 7511 zexth r4, r4 + a65c: 7599 zexth r6, r6 + a65e: 8ba0 ld.h r5, (r3, 0x0) + a660: 611a subu r4, r6 + a662: 6551 cmplt r4, r5 + a664: 081b bt 0xa69a // a69a + a666: 9881 ld.w r4, (r14, 0x4) + a668: 8c80 ld.h r4, (r4, 0x0) + a66a: 8800 ld.h r0, (r0, 0x0) + a66c: 7511 zexth r4, r4 + a66e: 7401 zexth r0, r0 + a670: 5c01 subu r0, r4, r0 + a672: 4581 lsli r4, r5, 1 + a674: 6150 addu r5, r4 + a676: 6541 cmplt r0, r5 + a678: 0c11 bf 0xa69a // a69a + a67a: 1296 lrw r4, 0x200009fc // a7d0 + a67c: 6108 addu r4, r2 + a67e: 8400 ld.b r0, (r4, 0x0) + a680: 2000 addi r0, 1 + a682: 7400 zextb r0, r0 + a684: a400 st.b r0, (r4, 0x0) + a686: 1214 lrw r0, 0x20000088 // a7d4 + a688: 84a0 ld.b r5, (r4, 0x0) + a68a: 8008 ld.b r0, (r0, 0x8) + a68c: 6540 cmphs r0, r5 + a68e: 0806 bt 0xa69a // a69a + a690: 1212 lrw r0, 0x2000093f // a7d8 + a692: 3501 movi r5, 1 + a694: a0a0 st.b r5, (r0, 0x0) + a696: 3000 movi r0, 0 + a698: a400 st.b r0, (r4, 0x0) + a69a: 4201 lsli r0, r2, 1 + a69c: 5f80 addu r4, r7, r0 + a69e: 8c80 ld.h r4, (r4, 0x0) + a6a0: 7513 sexth r4, r4 + a6a2: 3c20 cmplti r4, 1 + a6a4: 0870 bt 0xa784 // a784 + a6a6: 128a lrw r4, 0x20000ace // a7cc + a6a8: 6100 addu r4, r0 + a6aa: 59a0 addu r5, r1, r0 + a6ac: 8c80 ld.h r4, (r4, 0x0) + a6ae: 8da0 ld.h r5, (r5, 0x0) + a6b0: 7555 zexth r5, r5 + a6b2: 7511 zexth r4, r4 + a6b4: 6116 subu r4, r5 + a6b6: 8ba0 ld.h r5, (r3, 0x0) + a6b8: 45a2 lsli r5, r5, 2 + a6ba: 6551 cmplt r4, r5 + a6bc: 0864 bt 0xa784 // a784 + a6be: 1288 lrw r4, 0x20000982 // a7dc + a6c0: 6108 addu r4, r2 + a6c2: 84a0 ld.b r5, (r4, 0x0) + a6c4: 2500 addi r5, 1 + a6c6: 7554 zextb r5, r5 + a6c8: a4a0 st.b r5, (r4, 0x0) + a6ca: 12a3 lrw r5, 0x20000088 // a7d4 + a6cc: 84c0 ld.b r6, (r4, 0x0) + a6ce: 85a9 ld.b r5, (r5, 0x9) + a6d0: 6594 cmphs r5, r6 + a6d2: 0806 bt 0xa6de // a6de + a6d4: 12a1 lrw r5, 0x2000093f // a7d8 + a6d6: 3601 movi r6, 1 + a6d8: a5c0 st.b r6, (r5, 0x0) + a6da: 3500 movi r5, 0 + a6dc: a4a0 st.b r5, (r4, 0x0) + a6de: 5f80 addu r4, r7, r0 + a6e0: 8c80 ld.h r4, (r4, 0x0) + a6e2: 7513 sexth r4, r4 + a6e4: 3cdf btsti r4, 31 + a6e6: 0c10 bf 0xa706 // a706 + a6e8: 11d9 lrw r6, 0x20000ace // a7cc + a6ea: 59a0 addu r5, r1, r0 + a6ec: 6180 addu r6, r0 + a6ee: 8d80 ld.h r4, (r5, 0x0) + a6f0: 8ec0 ld.h r6, (r6, 0x0) + a6f2: 7599 zexth r6, r6 + a6f4: 7511 zexth r4, r4 + a6f6: 611a subu r4, r6 + a6f8: 8bc0 ld.h r6, (r3, 0x0) + a6fa: 6591 cmplt r4, r6 + a6fc: 0c05 bf 0xa706 // a706 + a6fe: 8d80 ld.h r4, (r5, 0x0) + a700: 2c00 subi r4, 1 + a702: 7511 zexth r4, r4 + a704: ad80 st.h r4, (r5, 0x0) + a706: 5f80 addu r4, r7, r0 + a708: 8c80 ld.h r4, (r4, 0x0) + a70a: 7513 sexth r4, r4 + a70c: 3cdf btsti r4, 31 + a70e: 0c11 bf 0xa730 // a730 + a710: 11cf lrw r6, 0x20000ace // a7cc + a712: 59a0 addu r5, r1, r0 + a714: 6180 addu r6, r0 + a716: 8d80 ld.h r4, (r5, 0x0) + a718: 8ec0 ld.h r6, (r6, 0x0) + a71a: 7599 zexth r6, r6 + a71c: 7511 zexth r4, r4 + a71e: 611a subu r4, r6 + a720: 8bc0 ld.h r6, (r3, 0x0) + a722: 4ec1 lsri r6, r6, 1 + a724: 6591 cmplt r4, r6 + a726: 0805 bt 0xa730 // a730 + a728: 8d80 ld.h r4, (r5, 0x0) + a72a: 2c01 subi r4, 2 + a72c: 7511 zexth r4, r4 + a72e: ad80 st.h r4, (r5, 0x0) + a730: 5fa0 addu r5, r7, r0 + a732: 8d80 ld.h r4, (r5, 0x0) + a734: 7513 sexth r4, r4 + a736: 3c20 cmplti r4, 1 + a738: 080c bt 0xa750 // a750 + a73a: 8da0 ld.h r5, (r5, 0x0) + a73c: 8b80 ld.h r4, (r3, 0x0) + a73e: 7557 sexth r5, r5 + a740: 4c81 lsri r4, r4, 1 + a742: 6515 cmplt r5, r4 + a744: 0c06 bf 0xa750 // a750 + a746: 59a0 addu r5, r1, r0 + a748: 8d80 ld.h r4, (r5, 0x0) + a74a: 2400 addi r4, 1 + a74c: 7511 zexth r4, r4 + a74e: ad80 st.h r4, (r5, 0x0) + a750: 5fa0 addu r5, r7, r0 + a752: 8d80 ld.h r4, (r5, 0x0) + a754: 7513 sexth r4, r4 + a756: 3c20 cmplti r4, 1 + a758: 0810 bt 0xa778 // a778 + a75a: 8dc0 ld.h r6, (r5, 0x0) + a75c: 759b sexth r6, r6 + a75e: 8b80 ld.h r4, (r3, 0x0) + a760: 6519 cmplt r6, r4 + a762: 0c0b bf 0xa778 // a778 + a764: 8da0 ld.h r5, (r5, 0x0) + a766: 7557 sexth r5, r5 + a768: 4c81 lsri r4, r4, 1 + a76a: 6515 cmplt r5, r4 + a76c: 0806 bt 0xa778 // a778 + a76e: 6004 addu r0, r1 + a770: 8880 ld.h r4, (r0, 0x0) + a772: 2401 addi r4, 2 + a774: 7511 zexth r4, r4 + a776: a880 st.h r4, (r0, 0x0) + a778: 2200 addi r2, 1 + a77a: 3a51 cmpnei r2, 17 + a77c: 2301 addi r3, 2 + a77e: 0b61 bt 0xa640 // a640 + a780: 1402 addi r14, r14, 8 + a782: 1484 pop r4-r7 + a784: 5f80 addu r4, r7, r0 + a786: 8c80 ld.h r4, (r4, 0x0) + a788: 7513 sexth r4, r4 + a78a: 3cdf btsti r4, 31 + a78c: 0fa9 bf 0xa6de // a6de + a78e: 10b0 lrw r5, 0x20000ace // a7cc + a790: 5980 addu r4, r1, r0 + a792: 6140 addu r5, r0 + a794: 8c80 ld.h r4, (r4, 0x0) + a796: 8da0 ld.h r5, (r5, 0x0) + a798: 7555 zexth r5, r5 + a79a: 8bc0 ld.h r6, (r3, 0x0) + a79c: 7511 zexth r4, r4 + a79e: 6116 subu r4, r5 + a7a0: 46a1 lsli r5, r6, 1 + a7a2: 6158 addu r5, r6 + a7a4: 6551 cmplt r4, r5 + a7a6: 0b9c bt 0xa6de // a6de + a7a8: 108c lrw r4, 0x2000093f // a7d8 + a7aa: 3501 movi r5, 1 + a7ac: a4a0 st.b r5, (r4, 0x0) + a7ae: 6c03 mov r0, r0 + a7b0: 0797 br 0xa6de // a6de + a7b2: 0000 bkpt + a7b4: 2000095a .long 0x2000095a + a7b8: 200001ad .long 0x200001ad + a7bc: 200008b8 .long 0x200008b8 + a7c0: 200008d2 .long 0x200008d2 + a7c4: 200001da .long 0x200001da + a7c8: 20000828 .long 0x20000828 + a7cc: 20000ace .long 0x20000ace + a7d0: 200009fc .long 0x200009fc + a7d4: 20000088 .long 0x20000088 + a7d8: 2000093f .long 0x2000093f + a7dc: 20000982 .long 0x20000982 + +Disassembly of section .text.TK_result_prog: + +0000a7e0 : + a7e0: 14d2 push r4-r5, r15 + a7e2: 1050 lrw r2, 0x200008b8 // a820 + a7e4: 1090 lrw r4, 0x2000095c // a824 + a7e6: 9260 ld.w r3, (r2, 0x0) + a7e8: 3b40 cmpnei r3, 0 + a7ea: 0c02 bf 0xa7ee // a7ee + a7ec: 9260 ld.w r3, (r2, 0x0) + a7ee: b460 st.w r3, (r4, 0x0) + a7f0: 9460 ld.w r3, (r4, 0x0) + a7f2: 3b40 cmpnei r3, 0 + a7f4: 10ad lrw r5, 0x20000a30 // a828 + a7f6: 0c11 bf 0xa818 // a818 + a7f8: 9440 ld.w r2, (r4, 0x0) + a7fa: 9560 ld.w r3, (r5, 0x0) + a7fc: 64ca cmpne r2, r3 + a7fe: 0c03 bf 0xa804 // a804 + a800: 9460 ld.w r3, (r4, 0x0) + a802: b560 st.w r3, (r5, 0x0) + a804: e3fffd94 bsr 0xa32c // a32c + a808: 1069 lrw r3, 0x200001b4 // a82c + a80a: 8360 ld.b r3, (r3, 0x0) + a80c: 640c cmphs r3, r0 + a80e: 0804 bt 0xa816 // a816 + a810: 3300 movi r3, 0 + a812: b460 st.w r3, (r4, 0x0) + a814: b560 st.w r3, (r5, 0x0) + a816: 1492 pop r4-r5, r15 + a818: 1046 lrw r2, 0x20000954 // a830 + a81a: b560 st.w r3, (r5, 0x0) + a81c: b260 st.w r3, (r2, 0x0) + a81e: 07fc br 0xa816 // a816 + a820: 200008b8 .long 0x200008b8 + a824: 2000095c .long 0x2000095c + a828: 20000a30 .long 0x20000a30 + a82c: 200001b4 .long 0x200001b4 + a830: 20000954 .long 0x20000954 + +Disassembly of section .text.CORETHandler: + +0000a834 : + a834: 1460 nie + a836: 1462 ipush + a838: 14d1 push r4, r15 + a83a: 1077 lrw r3, 0x20000064 // a894 + a83c: 3400 movi r4, 0 + a83e: 9360 ld.w r3, (r3, 0x0) + a840: b386 st.w r4, (r3, 0x18) + a842: 1076 lrw r3, 0x200008bc // a898 + a844: 8360 ld.b r3, (r3, 0x0) + a846: 3b41 cmpnei r3, 1 + a848: 0820 bt 0xa888 // a888 + a84a: e3fffd85 bsr 0xa354 // a354 + a84e: e3fffd93 bsr 0xa374 // a374 + a852: e3fffe51 bsr 0xa4f4 // a4f4 + a856: e3fffedd bsr 0xa610 // a610 + a85a: e3ffffc3 bsr 0xa7e0 // a7e0 + a85e: 1070 lrw r3, 0x2000095c // a89c + a860: 9360 ld.w r3, (r3, 0x0) + a862: 3b40 cmpnei r3, 0 + a864: 0c12 bf 0xa888 // a888 + a866: 106f lrw r3, 0x20000184 // a8a0 + a868: 9340 ld.w r2, (r3, 0x0) + a86a: 3a40 cmpnei r2, 0 + a86c: 0c0e bf 0xa888 // a888 + a86e: 106e lrw r3, 0x20000954 // a8a4 + a870: 3064 movi r0, 100 + a872: 9320 ld.w r1, (r3, 0x0) + a874: 2100 addi r1, 1 + a876: b320 st.w r1, (r3, 0x0) + a878: 9320 ld.w r1, (r3, 0x0) + a87a: 7c80 mult r2, r0 + a87c: 6448 cmphs r2, r1 + a87e: 0805 bt 0xa888 // a888 + a880: 104a lrw r2, 0x2000093f // a8a8 + a882: 3101 movi r1, 1 + a884: a220 st.b r1, (r2, 0x0) + a886: b380 st.w r4, (r3, 0x0) + a888: d9ee2001 ld.w r15, (r14, 0x4) + a88c: 9880 ld.w r4, (r14, 0x0) + a88e: 1402 addi r14, r14, 8 + a890: 1463 ipop + a892: 1461 nir + a894: 20000064 .long 0x20000064 + a898: 200008bc .long 0x200008bc + a89c: 2000095c .long 0x2000095c + a8a0: 20000184 .long 0x20000184 + a8a4: 20000954 .long 0x20000954 + a8a8: 2000093f .long 0x2000093f + +Disassembly of section .text.std_clk_calib: + +0000a8ac : + a8ac: 14d4 push r4-r7, r15 + a8ae: 142d subi r14, r14, 52 + a8b0: 3201 movi r2, 1 + a8b2: 03ce lrw r6, 0x2000005c // aaf4 + a8b4: 6cc3 mov r3, r0 + a8b6: dc4e000a st.b r2, (r14, 0xa) + a8ba: 9640 ld.w r2, (r6, 0x0) + a8bc: 9247 ld.w r2, (r2, 0x1c) + a8be: 7488 zextb r2, r2 + a8c0: dc4e0009 st.b r2, (r14, 0x9) + a8c4: d84e0009 ld.b r2, (r14, 0x9) + a8c8: 3a40 cmpnei r2, 0 + a8ca: 0c08 bf 0xa8da // a8da + a8cc: d84e0009 ld.b r2, (r14, 0x9) + a8d0: 3a42 cmpnei r2, 2 + a8d2: 0c04 bf 0xa8da // a8da + a8d4: 3000 movi r0, 0 + a8d6: 140d addi r14, r14, 52 + a8d8: 1494 pop r4-r7, r15 + a8da: 0397 lrw r4, 0x2000000c // aaf8 + a8dc: 3209 movi r2, 9 + a8de: 9400 ld.w r0, (r4, 0x0) + a8e0: 3b40 cmpnei r3, 0 + a8e2: b041 st.w r2, (r0, 0x4) + a8e4: 0857 bt 0xa992 // a992 + a8e6: 3307 movi r3, 7 + a8e8: dc6e000b st.b r3, (r14, 0xb) + a8ec: 037b lrw r3, 0x2dc6c00 // aafc + a8ee: b863 st.w r3, (r14, 0xc) + a8f0: 3380 movi r3, 128 + a8f2: 4362 lsli r3, r3, 2 + a8f4: b867 st.w r3, (r14, 0x1c) + a8f6: d86e000b ld.b r3, (r14, 0xb) + a8fa: 74cc zextb r3, r3 + a8fc: b062 st.w r3, (r0, 0x8) + a8fe: 037e lrw r3, 0xffff // ab00 + a900: b063 st.w r3, (r0, 0xc) + a902: 3201 movi r2, 1 + a904: 3101 movi r1, 1 + a906: 03bf lrw r5, 0x20000014 // ab04 + a908: e3ffdeaa bsr 0x665c // 665c + a90c: 95e0 ld.w r7, (r5, 0x0) + a90e: 137f lrw r3, 0xbe9c0005 // ab08 + a910: b760 st.w r3, (r7, 0x0) + a912: 135f lrw r2, 0x30010 // ab0c + a914: 3300 movi r3, 0 + a916: b762 st.w r3, (r7, 0x8) + a918: b743 st.w r2, (r7, 0xc) + a91a: 32d8 movi r2, 216 + a91c: b745 st.w r2, (r7, 0x14) + a91e: 974f ld.w r2, (r7, 0x3c) + a920: 3aa2 bseti r2, 2 + a922: b74f st.w r2, (r7, 0x3c) + a924: 9803 ld.w r0, (r14, 0xc) + a926: d82e000b ld.b r1, (r14, 0xb) + a92a: 327d movi r2, 125 + a92c: 2100 addi r1, 1 + a92e: 7c48 mult r1, r2 + a930: b861 st.w r3, (r14, 0x4) + a932: e3ffe5cb bsr 0x74c8 // 74c8 <__udivsi3> + a936: b804 st.w r0, (r14, 0x10) + a938: 32fa movi r2, 250 + a93a: 9824 ld.w r1, (r14, 0x10) + a93c: 4242 lsli r2, r2, 2 + a93e: 6448 cmphs r2, r1 + a940: 0bca bt 0xa8d4 // a8d4 + a942: 9844 ld.w r2, (r14, 0x10) + a944: 3178 movi r1, 120 + a946: 9804 ld.w r0, (r14, 0x10) + a948: b840 st.w r2, (r14, 0x0) + a94a: e3ffe5bf bsr 0x74c8 // 74c8 <__udivsi3> + a94e: 9840 ld.w r2, (r14, 0x0) + a950: 6082 subu r2, r0 + a952: b845 st.w r2, (r14, 0x14) + a954: 9804 ld.w r0, (r14, 0x10) + a956: 3178 movi r1, 120 + a958: 9844 ld.w r2, (r14, 0x10) + a95a: b840 st.w r2, (r14, 0x0) + a95c: e3ffe5b6 bsr 0x74c8 // 74c8 <__udivsi3> + a960: 9840 ld.w r2, (r14, 0x0) + a962: 6008 addu r0, r2 + a964: b806 st.w r0, (r14, 0x18) + a966: c0807020 psrclr ie + a96a: 9640 ld.w r2, (r6, 0x0) + a96c: 9254 ld.w r2, (r2, 0x50) + a96e: b848 st.w r2, (r14, 0x20) + a970: 9861 ld.w r3, (r14, 0x4) + a972: 9440 ld.w r2, (r4, 0x0) + a974: b260 st.w r3, (r2, 0x0) + a976: b761 st.w r3, (r7, 0x4) + a978: d86e000a ld.b r3, (r14, 0xa) + a97c: 3b40 cmpnei r3, 0 + a97e: 083e bt 0xa9fa // a9fa + a980: e3ffde20 bsr 0x65c0 // 65c0 + a984: 9400 ld.w r0, (r4, 0x0) + a986: e3ffde41 bsr 0x6608 // 6608 + a98a: c1807420 psrset ee, ie + a98e: 3001 movi r0, 1 + a990: 07a3 br 0xa8d6 // a8d6 + a992: 3b41 cmpnei r3, 1 + a994: 0806 bt 0xa9a0 // a9a0 + a996: 3303 movi r3, 3 + a998: dc6e000b st.b r3, (r14, 0xb) + a99c: 127d lrw r3, 0x16e3600 // ab10 + a99e: 07a8 br 0xa8ee // a8ee + a9a0: 3b42 cmpnei r3, 2 + a9a2: 0806 bt 0xa9ae // a9ae + a9a4: 3301 movi r3, 1 + a9a6: dc6e000b st.b r3, (r14, 0xb) + a9aa: 127b lrw r3, 0xb71b00 // ab14 + a9ac: 07a1 br 0xa8ee // a8ee + a9ae: 3b43 cmpnei r3, 3 + a9b0: 0806 bt 0xa9bc // a9bc + a9b2: 3300 movi r3, 0 + a9b4: dc6e000b st.b r3, (r14, 0xb) + a9b8: 1278 lrw r3, 0x5b8d80 // ab18 + a9ba: 079a br 0xa8ee // a8ee + a9bc: 3b44 cmpnei r3, 4 + a9be: 0809 bt 0xa9d0 // a9d0 + a9c0: 3300 movi r3, 0 + a9c2: dc6e000b st.b r3, (r14, 0xb) + a9c6: 1276 lrw r3, 0x54c720 // ab1c + a9c8: b863 st.w r3, (r14, 0xc) + a9ca: 3380 movi r3, 128 + a9cc: 4369 lsli r3, r3, 9 + a9ce: 0793 br 0xa8f4 // a8f4 + a9d0: 3b45 cmpnei r3, 5 + a9d2: 0806 bt 0xa9de // a9de + a9d4: 3300 movi r3, 0 + a9d6: dc6e000b st.b r3, (r14, 0xb) + a9da: 1272 lrw r3, 0x3ffed0 // ab20 + a9dc: 07f6 br 0xa9c8 // a9c8 + a9de: 3b46 cmpnei r3, 6 + a9e0: 0806 bt 0xa9ec // a9ec + a9e2: 3300 movi r3, 0 + a9e4: dc6e000b st.b r3, (r14, 0xb) + a9e8: 126f lrw r3, 0x1fff68 // ab24 + a9ea: 07ef br 0xa9c8 // a9c8 + a9ec: 3b47 cmpnei r3, 7 + a9ee: 0b84 bt 0xa8f6 // a8f6 + a9f0: 3300 movi r3, 0 + a9f2: dc6e000b st.b r3, (r14, 0xb) + a9f6: 126d lrw r3, 0x1ffb8 // ab28 + a9f8: 07e8 br 0xa9c8 // a9c8 + a9fa: 9560 ld.w r3, (r5, 0x0) + a9fc: 3101 movi r1, 1 + a9fe: 9440 ld.w r2, (r4, 0x0) + aa00: b321 st.w r1, (r3, 0x4) + aa02: b220 st.w r1, (r2, 0x0) + aa04: 3100 movi r1, 0 + aa06: b327 st.w r1, (r3, 0x1c) + aa08: 3004 movi r0, 4 + aa0a: b225 st.w r1, (r2, 0x14) + aa0c: 932e ld.w r1, (r3, 0x38) + aa0e: 6840 and r1, r0 + aa10: 3940 cmpnei r1, 0 + aa12: 0ffd bf 0xaa0c // aa0c + aa14: 9225 ld.w r1, (r2, 0x14) + aa16: b82a st.w r1, (r14, 0x28) + aa18: 3100 movi r1, 0 + aa1a: b310 st.w r0, (r3, 0x40) + aa1c: b327 st.w r1, (r3, 0x1c) + aa1e: 3004 movi r0, 4 + aa20: b225 st.w r1, (r2, 0x14) + aa22: 932e ld.w r1, (r3, 0x38) + aa24: 6840 and r1, r0 + aa26: 3940 cmpnei r1, 0 + aa28: 0ffd bf 0xaa22 // aa22 + aa2a: 9225 ld.w r1, (r2, 0x14) + aa2c: b82b st.w r1, (r14, 0x2c) + aa2e: 3100 movi r1, 0 + aa30: b310 st.w r0, (r3, 0x40) + aa32: b327 st.w r1, (r3, 0x1c) + aa34: 3004 movi r0, 4 + aa36: b225 st.w r1, (r2, 0x14) + aa38: 932e ld.w r1, (r3, 0x38) + aa3a: 6840 and r1, r0 + aa3c: 3940 cmpnei r1, 0 + aa3e: 0ffd bf 0xaa38 // aa38 + aa40: 9225 ld.w r1, (r2, 0x14) + aa42: b82c st.w r1, (r14, 0x30) + aa44: b310 st.w r0, (r3, 0x40) + aa46: 982b ld.w r1, (r14, 0x2c) + aa48: 980c ld.w r0, (r14, 0x30) + aa4a: 6040 addu r1, r0 + aa4c: b829 st.w r1, (r14, 0x24) + aa4e: 9829 ld.w r1, (r14, 0x24) + aa50: 4921 lsri r1, r1, 1 + aa52: b829 st.w r1, (r14, 0x24) + aa54: 3100 movi r1, 0 + aa56: b321 st.w r1, (r3, 0x4) + aa58: b220 st.w r1, (r2, 0x0) + aa5a: b327 st.w r1, (r3, 0x1c) + aa5c: b225 st.w r1, (r2, 0x14) + aa5e: d86e0009 ld.b r3, (r14, 0x9) + aa62: 3b42 cmpnei r3, 2 + aa64: 9849 ld.w r2, (r14, 0x24) + aa66: 082c bt 0xaabe // aabe + aa68: 1171 lrw r3, 0x7ff // ab2c + aa6a: 648c cmphs r3, r2 + aa6c: 0c03 bf 0xaa72 // aa72 + aa6e: 3300 movi r3, 0 + aa70: 040f br 0xaa8e // aa8e + aa72: 9849 ld.w r2, (r14, 0x24) + aa74: 9866 ld.w r3, (r14, 0x18) + aa76: 648c cmphs r3, r2 + aa78: 080e bt 0xaa94 // aa94 + aa7a: 9868 ld.w r3, (r14, 0x20) + aa7c: 9847 ld.w r2, (r14, 0x1c) + aa7e: 60ca subu r3, r2 + aa80: b868 st.w r3, (r14, 0x20) + aa82: 32fe movi r2, 254 + aa84: 9868 ld.w r3, (r14, 0x20) + aa86: 4248 lsli r2, r2, 8 + aa88: 68c8 and r3, r2 + aa8a: 3b40 cmpnei r3, 0 + aa8c: 0812 bt 0xaab0 // aab0 + aa8e: dc6e000a st.b r3, (r14, 0xa) + aa92: 0721 br 0xa8d4 // a8d4 + aa94: 9849 ld.w r2, (r14, 0x24) + aa96: 9865 ld.w r3, (r14, 0x14) + aa98: 64c8 cmphs r2, r3 + aa9a: 0829 bt 0xaaec // aaec + aa9c: 9868 ld.w r3, (r14, 0x20) + aa9e: 9847 ld.w r2, (r14, 0x1c) + aaa0: 60c8 addu r3, r2 + aaa2: b868 st.w r3, (r14, 0x20) + aaa4: 33fe movi r3, 254 + aaa6: 9848 ld.w r2, (r14, 0x20) + aaa8: 4368 lsli r3, r3, 8 + aaaa: 688c and r2, r3 + aaac: 64ca cmpne r2, r3 + aaae: 0fe0 bf 0xaa6e // aa6e + aab0: 9660 ld.w r3, (r6, 0x0) + aab2: 9848 ld.w r2, (r14, 0x20) + aab4: b354 st.w r2, (r3, 0x50) + aab6: 3001 movi r0, 1 + aab8: e3ffdf5c bsr 0x6970 // 6970 + aabc: 075e br 0xa978 // a978 + aabe: 9866 ld.w r3, (r14, 0x18) + aac0: 648c cmphs r3, r2 + aac2: 0809 bt 0xaad4 // aad4 + aac4: 9868 ld.w r3, (r14, 0x20) + aac6: 9847 ld.w r2, (r14, 0x1c) + aac8: 60ca subu r3, r2 + aaca: b868 st.w r3, (r14, 0x20) + aacc: 32ff movi r2, 255 + aace: 9868 ld.w r3, (r14, 0x20) + aad0: 4250 lsli r2, r2, 16 + aad2: 07db br 0xaa88 // aa88 + aad4: 9849 ld.w r2, (r14, 0x24) + aad6: 9865 ld.w r3, (r14, 0x14) + aad8: 64c8 cmphs r2, r3 + aada: 0809 bt 0xaaec // aaec + aadc: 9868 ld.w r3, (r14, 0x20) + aade: 9847 ld.w r2, (r14, 0x1c) + aae0: 60c8 addu r3, r2 + aae2: b868 st.w r3, (r14, 0x20) + aae4: 33ff movi r3, 255 + aae6: 9848 ld.w r2, (r14, 0x20) + aae8: 4370 lsli r3, r3, 16 + aaea: 07e0 br 0xaaaa // aaaa + aaec: 3300 movi r3, 0 + aaee: dc6e000a st.b r3, (r14, 0xa) + aaf2: 07e2 br 0xaab6 // aab6 + aaf4: 2000005c .long 0x2000005c + aaf8: 2000000c .long 0x2000000c + aafc: 02dc6c00 .long 0x02dc6c00 + ab00: 0000ffff .long 0x0000ffff + ab04: 20000014 .long 0x20000014 + ab08: be9c0005 .long 0xbe9c0005 + ab0c: 00030010 .long 0x00030010 + ab10: 016e3600 .long 0x016e3600 + ab14: 00b71b00 .long 0x00b71b00 + ab18: 005b8d80 .long 0x005b8d80 + ab1c: 0054c720 .long 0x0054c720 + ab20: 003ffed0 .long 0x003ffed0 + ab24: 001fff68 .long 0x001fff68 + ab28: 0001ffb8 .long 0x0001ffb8 + ab2c: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01_20250830.map b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01_20250830.map new file mode 100644 index 0000000..22bb32f --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V01_20250830.map @@ -0,0 +1,3040 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x290c + Start of program headers: 52 (bytes into file) + Start of section headers: 378788 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 204 + Section header string table index: 201 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00002800 000800 003676 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00005e78 003e78 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00005eb0 003eb0 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00005f24 003f24 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00005f70 003f70 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00005fa0 003fa0 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00006028 004028 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00006050 004050 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 0000608c 00408c 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 000060a0 0040a0 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 000060b8 0040b8 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 000060d8 0040d8 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 000060f4 0040f4 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00006110 004110 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00006150 004150 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00006184 004184 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00006188 004188 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00006198 004198 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 000061a4 0041a4 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Soft PROGBITS 000061b0 0041b0 000014 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 000061c4 0041c4 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000061e8 0041e8 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 00006218 004218 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 0000627c 00427c 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 0000635c 00435c 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00006370 004370 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00006380 004380 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 0000648c 00448c 0000fc 00 AX 0 0 4 + [29] .text.GPIO_Write_ PROGBITS 00006588 004588 000008 00 AX 0 0 2 + [30] .text.GPIO_Write_ PROGBITS 00006590 004590 000008 00 AX 0 0 2 + [31] .text.GPIO_Revers PROGBITS 00006598 004598 000016 00 AX 0 0 2 + [32] .text.GPIO_Read_S PROGBITS 000065ae 0045ae 000010 00 AX 0 0 2 + [33] .text.LPT_Soft_Re PROGBITS 000065c0 0045c0 000014 00 AX 0 0 4 + [34] .text.WWDT_CNT_Lo PROGBITS 000065d4 0045d4 000010 00 AX 0 0 4 + [35] .text.BT_DeInit PROGBITS 000065e4 0045e4 00001c 00 AX 0 0 2 + [36] .text.BT_Start PROGBITS 00006600 004600 000008 00 AX 0 0 2 + [37] .text.BT_Soft_Res PROGBITS 00006608 004608 00000a 00 AX 0 0 2 + [38] .text.BT_Configur PROGBITS 00006612 004612 000018 00 AX 0 0 2 + [39] .text.BT_ControlS PROGBITS 0000662a 00462a 00002c 00 AX 0 0 2 + [40] .text.BT_Period_C PROGBITS 00006656 004656 000006 00 AX 0 0 2 + [41] .text.BT_ConfigIn PROGBITS 0000665c 00465c 000012 00 AX 0 0 2 + [42] .text.BT1_INT_ENA PROGBITS 00006670 004670 000010 00 AX 0 0 4 + [43] .text.UART0_DeIni PROGBITS 00006680 004680 000018 00 AX 0 0 4 + [44] .text.UART1_DeIni PROGBITS 00006698 004698 000018 00 AX 0 0 4 + [45] .text.UART2_DeIni PROGBITS 000066b0 0046b0 000018 00 AX 0 0 4 + [46] .text.UART0_Int_E PROGBITS 000066c8 0046c8 00001c 00 AX 0 0 4 + [47] .text.UART1_Int_E PROGBITS 000066e4 0046e4 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 00006700 004700 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 0000671c 00471c 0000ec 00 AX 0 0 4 + [50] .text.UARTInitRxT PROGBITS 00006808 004808 000010 00 AX 0 0 4 + [51] .text.UARTTransmi PROGBITS 00006818 004818 00001e 00 AX 0 0 2 + [52] .text.EPT_Stop PROGBITS 00006838 004838 000028 00 AX 0 0 4 + [53] .text.Page_Progra PROGBITS 00006860 004860 0000a0 00 AX 0 0 4 + [54] .text.ReadDataArr PROGBITS 00006900 004900 00002a 00 AX 0 0 2 + [55] .text.startup.mai PROGBITS 0000692c 00492c 000044 00 AX 0 0 4 + [56] .text.delay_nms PROGBITS 00006970 004970 00002c 00 AX 0 0 2 + [57] .text.delay_nus PROGBITS 0000699c 00499c 000022 00 AX 0 0 2 + [58] .text.BT_CONFIG PROGBITS 000069c0 0049c0 000060 00 AX 0 0 4 + [59] .text.SYSCON_CONF PROGBITS 00006a20 004a20 000062 00 AX 0 0 2 + [60] .text.APT32F102_i PROGBITS 00006a84 004a84 000078 00 AX 0 0 4 + [61] .text.SYSCONIntHa PROGBITS 00006afc 004afc 0000f0 00 AX 0 0 4 + [62] .text.IFCIntHandl PROGBITS 00006bec 004bec 000068 00 AX 0 0 4 + [63] .text.ADCIntHandl PROGBITS 00006c54 004c54 000068 00 AX 0 0 4 + [64] .text.EPT0IntHand PROGBITS 00006cbc 004cbc 0001ac 00 AX 0 0 4 + [65] .text.WWDTHandler PROGBITS 00006e68 004e68 000034 00 AX 0 0 4 + [66] .text.GPT0IntHand PROGBITS 00006e9c 004e9c 000080 00 AX 0 0 4 + [67] .text.RTCIntHandl PROGBITS 00006f1c 004f1c 000070 00 AX 0 0 4 + [68] .text.UART0IntHan PROGBITS 00006f8c 004f8c 000060 00 AX 0 0 4 + [69] .text.UART1IntHan PROGBITS 00006fec 004fec 000094 00 AX 0 0 4 + [70] .text.UART2IntHan PROGBITS 00007080 005080 000060 00 AX 0 0 4 + [71] .text.SPI0IntHand PROGBITS 000070e0 0050e0 0000e8 00 AX 0 0 4 + [72] .text.SIO0IntHand PROGBITS 000071c8 0051c8 000054 00 AX 0 0 4 + [73] .text.EXI0IntHand PROGBITS 0000721c 00521c 000030 00 AX 0 0 4 + [74] .text.EXI1IntHand PROGBITS 0000724c 00524c 000030 00 AX 0 0 4 + [75] .text.EXI2to3IntH PROGBITS 0000727c 00527c 000048 00 AX 0 0 4 + [76] .text.EXI4to9IntH PROGBITS 000072c4 0052c4 000020 00 AX 0 0 4 + [77] .text.EXI10to15In PROGBITS 000072e4 0052e4 00006c 00 AX 0 0 4 + [78] .text.LPTIntHandl PROGBITS 00007350 005350 000034 00 AX 0 0 4 + [79] .text.BT0IntHandl PROGBITS 00007384 005384 00004c 00 AX 0 0 4 + [80] .text.BT1IntHandl PROGBITS 000073d0 0053d0 000070 00 AX 0 0 4 + [81] .text.PriviledgeV PROGBITS 00007440 005440 000002 00 AX 0 0 2 + [82] .text.PendTrapHan PROGBITS 00007442 005442 000008 00 AX 0 0 2 + [83] .text.Trap3Handle PROGBITS 0000744a 00544a 000008 00 AX 0 0 2 + [84] .text.Trap2Handle PROGBITS 00007452 005452 000008 00 AX 0 0 2 + [85] .text.Trap1Handle PROGBITS 0000745a 00545a 000008 00 AX 0 0 2 + [86] .text.Trap0Handle PROGBITS 00007462 005462 000008 00 AX 0 0 2 + [87] .text.UnrecExecpH PROGBITS 0000746a 00546a 000008 00 AX 0 0 2 + [88] .text.BreakPointH PROGBITS 00007472 005472 000008 00 AX 0 0 2 + [89] .text.AccessErrHa PROGBITS 0000747a 00547a 000008 00 AX 0 0 2 + [90] .text.IllegalInst PROGBITS 00007482 005482 000008 00 AX 0 0 2 + [91] .text.MisalignedH PROGBITS 0000748a 00548a 000008 00 AX 0 0 2 + [92] .text.CNTAIntHand PROGBITS 00007492 005492 000008 00 AX 0 0 2 + [93] .text.I2CIntHandl PROGBITS 0000749a 00549a 000008 00 AX 0 0 2 + [94] .text.__divsi3 PROGBITS 000074a4 0054a4 000024 00 AX 0 0 4 + [95] .text.__udivsi3 PROGBITS 000074c8 0054c8 000024 00 AX 0 0 4 + [96] .text.__modsi3 PROGBITS 000074ec 0054ec 000024 00 AX 0 0 4 + [97] .text.__umodsi3 PROGBITS 00007510 005510 000024 00 AX 0 0 4 + [98] .text.CK_CPU_EnAl PROGBITS 00007534 005534 000006 00 AX 0 0 2 + [99] .text.CK_CPU_DisA PROGBITS 0000753a 00553a 000006 00 AX 0 0 2 + [100] .text.UARTx_Init PROGBITS 00007540 005540 000188 00 AX 0 0 4 + [101] .text.UART0_RecvI PROGBITS 000076c8 0056c8 000034 00 AX 0 0 4 + [102] .text.UART0_TASK PROGBITS 000076fc 0056fc 000060 00 AX 0 0 4 + [103] .text.UART1_RecvI PROGBITS 0000775c 00575c 000034 00 AX 0 0 4 + [104] .text.UART2_RecvI PROGBITS 00007790 005790 000034 00 AX 0 0 4 + [105] .text.MCU485_Send PROGBITS 000077c4 0057c4 000090 00 AX 0 0 4 + [106] .text.BUS485_Send PROGBITS 00007854 005854 0000c4 00 AX 0 0 4 + [107] .text.Set_GroupSe PROGBITS 00007918 005918 000064 00 AX 0 0 4 + [108] .text.Clear_SendF PROGBITS 0000797c 00597c 000010 00 AX 0 0 4 + [109] .text.BUS485_Jump PROGBITS 0000798c 00598c 00000c 00 AX 0 0 4 + [110] .text.BusIdle_Tas PROGBITS 00007998 005998 000040 00 AX 0 0 4 + [111] .text.BusBusy_Tas PROGBITS 000079d8 0059d8 00005c 00 AX 0 0 4 + [112] .text.Dbg_Println PROGBITS 00007a34 005a34 000080 00 AX 0 0 4 + [113] .text.MultSend_Ta PROGBITS 00007ab4 005ab4 0000a0 00 AX 0 0 4 + [114] .text.BUS485Send_ PROGBITS 00007b54 005b54 000068 00 AX 0 0 4 + [115] .text.Dbg_Print_B PROGBITS 00007bbc 005bbc 000084 00 AX 0 0 4 + [116] .text.UART1_TASK PROGBITS 00007c40 005c40 00008c 00 AX 0 0 4 + [117] .text.UART2_TASK PROGBITS 00007ccc 005ccc 00009c 00 AX 0 0 4 + [118] .text.Dbg_BT_Prin PROGBITS 00007d68 005d68 000060 00 AX 0 0 4 + [119] .text.DIP_GetSwit PROGBITS 00007dc8 005dc8 000034 00 AX 0 0 4 + [120] .text.DIP_Switch_ PROGBITS 00007dfc 005dfc 000094 00 AX 0 0 4 + [121] .text.DIP_ScanTas PROGBITS 00007e90 005e90 000098 00 AX 0 0 4 + [122] .text.EEPROM_Chec PROGBITS 00007f28 005f28 000016 00 AX 0 0 2 + [123] .text.EEOROM_ENER PROGBITS 00007f40 005f40 000150 00 AX 0 0 4 + [124] .text.EEOROM_ENER PROGBITS 00008090 006090 000044 00 AX 0 0 4 + [125] .text.EEPROM_ENER PROGBITS 000080d4 0060d4 00014c 00 AX 0 0 4 + [126] .text.EEPROM_Defa PROGBITS 00008220 006220 000128 00 AX 0 0 4 + [127] .text.EEPROM_Read PROGBITS 00008348 006348 0000b8 00 AX 0 0 4 + [128] .text.EEPROM_Writ PROGBITS 00008400 006400 0000ac 00 AX 0 0 4 + [129] .text.EEPROM_Read PROGBITS 000084ac 0064ac 0000d4 00 AX 0 0 4 + [130] .text.EEPROM_Writ PROGBITS 00008580 006580 000040 00 AX 0 0 2 + [131] .text.EEPROM_Defa PROGBITS 000085c0 0065c0 000038 00 AX 0 0 4 + [132] .text.EEPROM_Vali PROGBITS 000085f8 0065f8 000058 00 AX 0 0 4 + [133] .text.EEPROM_Init PROGBITS 00008650 006650 000130 00 AX 0 0 4 + [134] .text.BT_Uart_Pac PROGBITS 00008780 006780 00003c 00 AX 0 0 4 + [135] .text.BLV_DetEner PROGBITS 000087bc 0067bc 000030 00 AX 0 0 4 + [136] .text.BLV_DetEner PROGBITS 000087ec 0067ec 0000b8 00 AX 0 0 4 + [137] .text.HLW8110_Che PROGBITS 000088a4 0068a4 000018 00 AX 0 0 2 + [138] .text.HLW8110_Wri PROGBITS 000088bc 0068bc 000064 00 AX 0 0 4 + [139] .text.HLW8110_Wri PROGBITS 00008920 006920 000064 00 AX 0 0 4 + [140] .text.BLV_HLW8110 PROGBITS 00008984 006984 00008c 00 AX 0 0 4 + [141] .text.HLW8110_RWC PROGBITS 00008a10 006a10 000088 00 AX 0 0 4 + [142] .text.HLW8110_Cle PROGBITS 00008a98 006a98 000010 00 AX 0 0 4 + [143] .text.Get_RevStat PROGBITS 00008aa8 006aa8 000018 00 AX 0 0 4 + [144] .text.Get_SendSta PROGBITS 00008ac0 006ac0 00001c 00 AX 0 0 4 + [145] .text.BLV_HLW8110 PROGBITS 00008adc 006adc 0001e4 00 AX 0 0 4 + [146] .text.HLW8110_Con PROGBITS 00008cc0 006cc0 00008c 00 AX 0 0 4 + [147] .text.HLW8110_Con PROGBITS 00008d4c 006d4c 00007c 00 AX 0 0 4 + [148] .text.HLW8110_Con PROGBITS 00008dc8 006dc8 00007c 00 AX 0 0 4 + [149] .text.HLW8110_Con PROGBITS 00008e44 006e44 000098 00 AX 0 0 4 + [150] .text.HLW8110_Rec PROGBITS 00008edc 006edc 00025c 00 AX 0 0 4 + [151] .text.HLW8110_Sys PROGBITS 00009138 007138 000026 00 AX 0 0 2 + [152] .text.HLW8110_Rea PROGBITS 00009160 007160 00021c 00 AX 0 0 4 + [153] .text.HLW8110_Rea PROGBITS 0000937c 00737c 0000c8 00 AX 0 0 4 + [154] .text.GetEnergy_P PROGBITS 00009444 007444 000064 00 AX 0 0 4 + [155] .text.HLW8110_Rea PROGBITS 000094a8 0074a8 000158 00 AX 0 0 4 + [156] .text.BLV_HLW8110 PROGBITS 00009600 007600 000040 00 AX 0 0 4 + [157] .text.BT_Uart_Pac PROGBITS 00009640 007640 00000c 00 AX 0 0 2 + [158] .text.BT_UART_Pri PROGBITS 0000964c 00764c 000104 00 AX 0 0 4 + [159] .text.BLV_Energy_ PROGBITS 00009750 007750 0000ec 00 AX 0 0 4 + [160] .text.BLV_Electri PROGBITS 0000983c 00783c 0000b0 00 AX 0 0 4 + [161] .text.BLV_EngDete PROGBITS 000098ec 0078ec 000014 00 AX 0 0 2 + [162] .text.BLV_Energy_ PROGBITS 00009900 007900 0000ec 00 AX 0 0 4 + [163] .text.BLV_Energy_ PROGBITS 000099ec 0079ec 0000a0 00 AX 0 0 4 + [164] .text.BLV_Energy_ PROGBITS 00009a8c 007a8c 000098 00 AX 0 0 4 + [165] .text.SetCalibFac PROGBITS 00009b24 007b24 000030 00 AX 0 0 4 + [166] .text.BLV_Energy_ PROGBITS 00009b54 007b54 000084 00 AX 0 0 4 + [167] .text.BLV_Energy_ PROGBITS 00009bd8 007bd8 00007c 00 AX 0 0 4 + [168] .text.HLW_485Recv PROGBITS 00009c54 007c54 000160 00 AX 0 0 4 + [169] .text.BT_Recv_Pro PROGBITS 00009db4 007db4 000118 00 AX 0 0 4 + [170] .text.Boot_Functi PROGBITS 00009ecc 007ecc 0000c0 00 AX 0 0 4 + [171] .text.Boot_Comm_C PROGBITS 00009f8c 007f8c 000024 00 AX 0 0 4 + [172] .text.Boot_Comm_F PROGBITS 00009fb0 007fb0 00006c 00 AX 0 0 4 + [173] .text.Boot_Time_R PROGBITS 0000a01c 00801c 000014 00 AX 0 0 4 + [174] .text.Boot_Comm_U PROGBITS 0000a030 008030 00021c 00 AX 0 0 4 + [175] .text.TK_Sampling PROGBITS 0000a24c 00824c 000058 00 AX 0 0 4 + [176] .text.TKEYIntHand PROGBITS 0000a2a4 0082a4 000088 00 AX 0 0 4 + [177] .text.get_key_num PROGBITS 0000a32c 00832c 000028 00 AX 0 0 4 + [178] .text.TK_Scan_Sta PROGBITS 0000a354 008354 000020 00 AX 0 0 4 + [179] .text.TK_Keymap_p PROGBITS 0000a374 008374 000180 00 AX 0 0 4 + [180] .text.TK_overflow PROGBITS 0000a4f4 0084f4 00011c 00 AX 0 0 4 + [181] .text.TK_Baseline PROGBITS 0000a610 008610 0001d0 00 AX 0 0 4 + [182] .text.TK_result_p PROGBITS 0000a7e0 0087e0 000054 00 AX 0 0 4 + [183] .text.CORETHandle PROGBITS 0000a834 008834 000078 00 AX 0 0 4 + [184] .text.std_clk_cal PROGBITS 0000a8ac 0088ac 000284 00 AX 0 0 4 + [185] .RomCode PROGBITS 0000ab30 00b0bc 000000 00 W 0 0 1 + [186] .rodata PROGBITS 0000ab30 008b30 001700 00 A 0 0 4 + [187] .data PROGBITS 20000000 00b000 00009c 00 WA 0 0 4 + [188] .textcsky.VinFlas PROGBITS 2000009c 00b09c 000020 00 WA 0 0 1 + [189] .bss NOBITS 200000bc 00b0bc 000a3c 00 WA 0 0 4 + [190] .csky.attributes CSKY_ATTRIBUTES 00000000 00b0bc 000022 00 0 0 1 + [191] .comment PROGBITS 00000000 00b0de 000042 01 MS 0 0 1 + [192] .csky_stack_size PROGBITS 00000000 00b120 000aec 00 0 0 16 + [193] .debug_line PROGBITS 00000000 00bc0c 0043a2 00 0 0 1 + [194] .debug_info PROGBITS 00000000 00ffae 031964 00 0 0 1 + [195] .debug_abbrev PROGBITS 00000000 041912 002d67 00 0 0 1 + [196] .debug_aranges PROGBITS 00000000 044680 000d60 00 0 0 8 + [197] .debug_ranges PROGBITS 00000000 0453e0 000d78 00 0 0 1 + [198] .debug_str PROGBITS 00000000 046158 009101 01 MS 0 0 1 + [199] .debug_frame PROGBITS 00000000 04f25c 00212c 00 0 0 4 + [200] .debug_loc PROGBITS 00000000 051388 00325d 00 0 0 1 + [201] .shstrtab STRTAB 00000000 05b5c7 0011db 00 0 0 1 + [202] .symtab SYMTAB 00000000 0545e8 0054e0 10 203 969 4 + [203] .strtab STRTAB 00000000 059ac8 001aff 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x000000 0x00002000 0x00002000 0x0a230 0x0a230 R E 0x1000 + LOAD 0x00b000 0x20000000 0x0000c230 0x000bc 0x00af8 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .text.SYSCON_Software_Reset .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_DeInit .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.Page_ProgramData .text.ReadDataArry_U8 .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART0_RecvINT_Processing .text.UART0_TASK .text.UART1_RecvINT_Processing .text.UART2_RecvINT_Processing .text.MCU485_SendData .text.BUS485_Send .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.MultSend_Task .text.BUS485Send_Task .text.Dbg_Print_Buff .text.UART1_TASK .text.UART2_TASK .text.Dbg_BT_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.EEPROM_CheckSum .text.EEOROM_ENERGY_ReadSet .text.EEOROM_ENERGY_WriteSet .text.EEPROM_ENERGY_Validate .text.EEPROM_Default_ENERGY .text.EEPROM_ReadTotalEng .text.EEPROM_WriteTotalEng .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.BT_Uart_Packing.part.3 .text.BLV_DetEnergy_Init .text.BLV_DetEnergy_Default .text.HLW8110_CheckSum .text.HLW8110_WriteREG_EN .text.HLW8110_WriteREG_DIS .text.BLV_HLW8110_RWCMD_Packaging .text.HLW8110_RWCMD_Send .text.HLW8110_CleanSdFlag .text.Get_RevState .text.Get_SendState .text.BLV_HLW8110_SendData_Tack .text.HLW8110_Convert_CurrentRegA_Value .text.HLW8110_Convert_VoltageReg_Value .text.HLW8110_Convert_PowerReg_Value .text.HLW8110_Convert_EnergyReg_Value .text.HLW8110_RecvData_Processing .text.HLW8110_SysPara_Check .text.HLW8110_ReadSysPara .text.HLW8110_ReadSysCtrlPara .text.GetEnergy_Para .text.HLW8110_ReadValue .text.BLV_HLW8110_Tack .text.BT_Uart_Packing .text.BT_UART_Print .text.BLV_Energy_ActiveRep_Packing .text.BLV_ElectricPara_Processing .text.BLV_EngDetect_Tack .text.BLV_Energy_PassiveRep_Packing .text.BLV_Energy_SetTime_Packing .text.BLV_Energy_QueryVersion_Packing .text.SetCalibFactor_Switch .text.BLV_Energy_SetCalibFactor .text.BLV_Energy_SetCalibFactor_2 .text.HLW_485Recv_Processing .text.BT_Recv_Processing .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .textcsky.VinFlash .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Software_Reset) for SYSCON_Software_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DeInit) for GPIO_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART1_TASK) for UART1_TASK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_TASK + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART0IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART0_RecvINT_Processing) for UART0_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART0_TASK) for UART0_TASK + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.BUS485_Jump_Boot) for BUS485_Jump_Boot + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) for DIP_ScanTask + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) for EEOROM_ENERGY_ReadSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) for EEPROM_Default_ENERGY + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) for EEPROM_ReadTotalEng + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) for EEPROM_ReadMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) for EEPROM_Default_MCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) for BLV_DetEnergy_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) for BLV_DetEnergy_Default + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) for HLW8110_WriteREG_EN + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) for HLW8110_WriteREG_DIS + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) for HLW8110_RWCMD_Send + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CleanSdFlag) for HLW8110_CleanSdFlag + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.Get_RevState) for Get_RevState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) for BLV_HLW8110_SendData_Tack + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) for HLW8110_Convert_CurrentRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) for HLW8110_Convert_VoltageReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) for HLW8110_Convert_PowerReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) for HLW8110_Convert_EnergyReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_SysPara_Check) for HLW8110_SysPara_Check + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) for HLW8110_ReadSysPara + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) for HLW8110_ReadSysCtrlPara + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) for GetEnergy_Para + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) for HLW8110_ReadValue + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) for BLV_HLW8110_Tack + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) for BT_UART_Print + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) for BLV_Energy_ActiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) for BLV_ElectricPara_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) for BLV_EngDetect_Tack + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) for BLV_Energy_PassiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) for BLV_Energy_SetCalibFactor + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) for BLV_Energy_SetCalibFactor_2 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) for Boot_Function_Init + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) for Boot_Comm_FillReplyPack + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Time_Refresh) for Boot_Time_Refresh + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _addsub_sf.o(.text) for __addsf3 + _fixunssfsi.o(.text) refers to _addsub_sf.o(.text) for __subsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _ne_sf.o(.text) for __nesf2 + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to _ne_sf.o(.text) for __nesf2 + _fixunssfsi.o(.text) refers to _ge_sf.o(.text) for __gesf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _si_to_sf.o(.text) for __floatsisf + _fixunssfsi.o(.text) refers to _sf_to_si.o(.text) for __fixsfsi + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_sf.o(.text) refers to _muldi3.o(.text) for __muldi3 + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_sf.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _mul_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _si_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _make_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _mul_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _div_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ge_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_si.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_df.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _ge_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _df_to_sf.o(.text) refers to _make_sf.o(.text) for __make_fp + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _make_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_sf.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to strncmp.o(.text) for strncmp + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2916 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3110 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3427 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3172 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_IO_Init(Obj/FWlib_apt32f102_gpt.o), (160 bytes). + Removing .text.GPT_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveCtrl_Configure(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_WaveLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveOut_Configure(Obj/FWlib_apt32f102_gpt.o), (180 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Start(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Period_CMP_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_gpt.o), (28 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_gpt.o), (11442 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_gpt.o), (562 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_gpt.o), (2212 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_gpt.o), (256 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_gpt.o), (240 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_gpt.o), (754 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_gpt.o), (8035 bytes). + Removing .comment(Obj/FWlib_apt32f102_gpt.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_gpt.o), (616 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4140 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3543 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3659 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4859 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4967 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2865 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .bss(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (116 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ReadPara(Obj/SYSTEM_eeprom.o), (128 bytes). + Removing .text.EEPROM_ValidateWrite(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_WritePara(Obj/SYSTEM_eeprom.o), (104 bytes). + Removing .text(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .data(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .text.HLW8110_ToWaitState(Obj/SYSTEM_det_energy.o), (24 bytes). + Removing .text(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .text.NetCRC16(Obj/SYSTEM_Bootload_fun.o), (60 bytes). + Removing .text.APP_Flash_AllEase(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.MCU_EEPROM_AllEase(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing .text.APP_FEATURE_Flash_Ease(Obj/SYSTEM_Bootload_fun.o), (12 bytes). + Removing .text.Boot_TimeOut_Task(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Jump_To_APP(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Check_APP_Feature(Obj/SYSTEM_Bootload_fun.o), (456 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (130 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.o), (0 bytes). + Removing .data(_fixunssfsi.o), (0 bytes). + Removing .bss(_fixunssfsi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_sf.o), (0 bytes). + Removing .bss(_addsub_sf.o), (0 bytes). + Removing .data(_mul_sf.o), (0 bytes). + Removing .bss(_mul_sf.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.o), (0 bytes). + Removing .data(_ne_sf.o), (0 bytes). + Removing .bss(_ne_sf.o), (0 bytes). + Removing .data(_ge_sf.o), (0 bytes). + Removing .bss(_ge_sf.o), (0 bytes). + Removing .data(_si_to_sf.o), (0 bytes). + Removing .bss(_si_to_sf.o), (0 bytes). + Removing .data(_sf_to_si.o), (0 bytes). + Removing .bss(_sf_to_si.o), (0 bytes). + Removing .data(_sf_to_df.o), (0 bytes). + Removing .bss(_sf_to_df.o), (0 bytes). + Removing .text(_thenan_sf.o), (0 bytes). + Removing .data(_thenan_sf.o), (0 bytes). + Removing .bss(_thenan_sf.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .data(_make_df.o), (0 bytes). + Removing .bss(_make_df.o), (0 bytes). + Removing .data(_df_to_sf.o), (0 bytes). + Removing .bss(_df_to_sf.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_sf.o), (0 bytes). + Removing .bss(_pack_sf.o), (0 bytes). + Removing .data(_unpack_sf.o), (0 bytes). + Removing .bss(_unpack_sf.o), (0 bytes). + Removing .data(_fpcmp_parts_sf.o), (0 bytes). + Removing .bss(_fpcmp_parts_sf.o), (0 bytes). + Removing .data(_make_sf.o), (0 bytes). + Removing .bss(_make_sf.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +690 unused seciton(s) (total 184243 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ifc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_Bootload_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_det_energy.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _addsub_sf.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uhi.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_sf.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _div_sf.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fixunssfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _fpcmp_parts_sf.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _ge_sf.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _make_df.o 0x00000000 df 0 *ABS* + _make_sf.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _mul_sf.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _ne_sf.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _sf_to_si.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _si_to_sf.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _unpack_sf.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + strncmp.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00002800 0 .text + $t 0x0000290c 0 .text + INIT_KERLE_STACK 0x0000293e 0 .text + __to_main 0x00002946 0 .text + __dummy 0x00002982 0 .text + $d 0x00002986 0 .text + $d 0x000029b4 0 .text + $t 0x000029b4 0 .text + $d 0x00002d78 0 .text + $t 0x00002de0 0 .text + $d 0x000032a8 0 .text + $t 0x00003358 0 .text + $d 0x0000335e 0 .text + $t 0x0000335e 0 .text + $d 0x00003364 0 .text + $t 0x00003364 0 .text + $d 0x00003380 0 .text + $d 0x00003384 0 .text + $t 0x00003384 0 .text + $d 0x000034f0 0 .text + $d 0x000034fc 0 .text + $t 0x000034fc 0 .text + $d 0x00003510 0 .text + $t 0x00003510 0 .text + $d 0x0000352c 0 .text + $t 0x0000352c 0 .text + $d 0x0000355c 0 .text + $t 0x0000355c 0 .text + $d 0x00003590 0 .text + _fpadd_parts 0x00003594 F 332 .text + $d 0x00003594 0 .text + $t 0x00003594 0 .text + $d 0x000036d8 0 .text + $t 0x000036e0 0 .text + $d 0x00003740 0 .text + $t 0x00003740 0 .text + $d 0x00003850 0 .text + $d 0x00003858 0 .text + $t 0x00003858 0 .text + $d 0x00003910 0 .text + $d 0x00003914 0 .text + $t 0x00003914 0 .text + $d 0x0000394c 0 .text + $t 0x0000394c 0 .text + $d 0x00003984 0 .text + $t 0x00003984 0 .text + $d 0x000039e8 0 .text + $t 0x000039e8 0 .text + $d 0x00003a38 0 .text + $d 0x00003a3c 0 .text + $t 0x00003a3c 0 .text + _fpadd_parts 0x00003a60 F 724 .text + $d 0x00003a60 0 .text + $t 0x00003a60 0 .text + $d 0x00003d28 0 .text + $t 0x00003d34 0 .text + $d 0x00003d9c 0 .text + $t 0x00003d9c 0 .text + $d 0x00003fc4 0 .text + $d 0x00003fd0 0 .text + $t 0x00003fd0 0 .text + $d 0x00004120 0 .text + $d 0x00004124 0 .text + $t 0x00004124 0 .text + $d 0x00004160 0 .text + $t 0x00004160 0 .text + $d 0x0000419c 0 .text + $t 0x0000419c 0 .text + $d 0x000041d8 0 .text + $t 0x000041d8 0 .text + $d 0x00004244 0 .text + $d 0x00004248 0 .text + $t 0x00004248 0 .text + $d 0x000042b4 0 .text + $d 0x000042b8 0 .text + $t 0x000042b8 0 .text + $d 0x000042e0 0 .text + $t 0x000042e0 0 .text + $d 0x00004310 0 .text + $t 0x00004310 0 .text + $d 0x00004364 0 .text + $t 0x00004364 0 .text + $d 0x000043a8 0 .text + $t 0x000043a8 0 .text + $d 0x000043dc 0 .text + $d 0x000043e8 0 .text + $t 0x000043e8 0 .text + $d 0x0000449c 0 .text + $d 0x000044a0 0 .text + $t 0x000044a0 0 .text + $d 0x0000451c 0 .text + $d 0x00004524 0 .text + $t 0x00004524 0 .text + $d 0x0000459c 0 .text + $t 0x0000459c 0 .text + $d 0x000045b4 0 .text + $t 0x000045b4 0 .text + $d 0x0000473c 0 .text + $d 0x00004750 0 .text + $t 0x00004750 0 .text + $d 0x00004808 0 .text + $d 0x00004814 0 .text + $t 0x00004814 0 .text + $d 0x000048a0 0 .text + $t 0x000048a0 0 .text + swrite 0x000048c0 F 62 .text + $d 0x000048c0 0 .text + $t 0x000048c0 0 .text + $d 0x00004954 0 .text + $d 0x00004958 0 .text + $t 0x00004958 0 .text + $d 0x000049e0 0 .text + $t 0x000049e0 0 .text + $d 0x00004a44 0 .text + $t 0x00004a44 0 .text + PAD.1851 0x00004a6c F 52 .text + $d 0x00004a6c 0 .text + $t 0x00004a6c 0 .text + $d 0x00005014 0 .text + $t 0x00005020 0 .text + $d 0x000051bc 0 .text + $d 0x000051c4 0 .text + $t 0x000051c4 0 .text + $d 0x00005564 0 .text + $d 0x00005570 0 .text + $t 0x00005570 0 .text + $d 0x00005904 0 .text + copystring 0x00005910 F 38 .text + $d 0x00005910 0 .text + $t 0x00005910 0 .text + $d 0x00005c3c 0 .text + $d 0x00005c70 0 .text + $t 0x00005c70 0 .text + $d 0x00005c98 0 .text + $d 0x00005c9c 0 .text + $t 0x00005c9c 0 .text + $d 0x00005cf0 0 .text + $t 0x00005cf0 0 .text + $d 0x00005da0 0 .text + $t 0x00005da0 0 .text + $d 0x00005db4 0 .text + $t 0x00005db4 0 .text + $d 0x00005dc8 0 .text + $d 0x00005dd0 0 .text + $t 0x00005dd0 0 .text + $d 0x00005df8 0 .text + $d 0x00005e00 0 .text + $t 0x00005e00 0 .text + $d 0x00005e3c 0 .text + $t 0x00005e3c 0 .text + $d 0x00005e78 0 .text.__main + $t 0x00005e78 0 .text.__main + $d 0x00005e9c 0 .text.__main + SYSCON_General_CMD.part.0 0x00005eb0 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $t 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f1c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f24 0 .text.SYSCON_RST_VALUE + $t 0x00005f24 0 .text.SYSCON_RST_VALUE + $d 0x00005f54 0 .text.SYSCON_RST_VALUE + $d 0x00005f70 0 .text.SYSCON_General_CMD + $t 0x00005f70 0 .text.SYSCON_General_CMD + $d 0x00005f9c 0 .text.SYSCON_General_CMD + $d 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006018 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $d 0x0000604c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00006050 0 .text.SYSCON_WDT_CMD + $t 0x00006050 0 .text.SYSCON_WDT_CMD + $d 0x00006080 0 .text.SYSCON_WDT_CMD + $d 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $t 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000609c 0 .text.SYSCON_IWDCNT_Reload + $d 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $t 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b8 0 .text.SYSCON_LVD_Config + $t 0x000060b8 0 .text.SYSCON_LVD_Config + $d 0x000060d0 0 .text.SYSCON_LVD_Config + $d 0x000060d8 0 .text.LVD_Int_Enable + $t 0x000060d8 0 .text.LVD_Int_Enable + $d 0x000060f0 0 .text.LVD_Int_Enable + $d 0x000060f4 0 .text.IWDT_Int_Enable + $t 0x000060f4 0 .text.IWDT_Int_Enable + $d 0x0000610c 0 .text.IWDT_Int_Enable + $d 0x00006110 0 .text.EXTI_trigger_CMD + $t 0x00006110 0 .text.EXTI_trigger_CMD + $d 0x0000614c 0 .text.EXTI_trigger_CMD + $d 0x00006150 0 .text.EXTI_interrupt_CMD + $t 0x00006150 0 .text.EXTI_interrupt_CMD + $d 0x0000617c 0 .text.EXTI_interrupt_CMD + $d 0x00006184 0 .text.GPIO_EXTI_interrupt + $t 0x00006184 0 .text.GPIO_EXTI_interrupt + $d 0x00006188 0 .text.EXI4_Int_Enable + $t 0x00006188 0 .text.EXI4_Int_Enable + $d 0x00006194 0 .text.EXI4_Int_Enable + $d 0x00006198 0 .text.SYSCON_Int_Enable + $t 0x00006198 0 .text.SYSCON_Int_Enable + $d 0x000061a0 0 .text.SYSCON_Int_Enable + $d 0x000061a4 0 .text.SYSCON_Int_Disable + $t 0x000061a4 0 .text.SYSCON_Int_Disable + $d 0x000061ac 0 .text.SYSCON_Int_Disable + $d 0x000061b0 0 .text.SYSCON_Software_Reset + $t 0x000061b0 0 .text.SYSCON_Software_Reset + $d 0x000061bc 0 .text.SYSCON_Software_Reset + $d 0x000061c4 0 .text.SYSCON_INT_Priority + $t 0x000061c4 0 .text.SYSCON_INT_Priority + $d 0x000061dc 0 .text.SYSCON_INT_Priority + $d 0x000061e8 0 .text.Set_INT_Priority + $t 0x000061e8 0 .text.Set_INT_Priority + $d 0x00006214 0 .text.Set_INT_Priority + $d 0x00006218 0 .text.GPIO_DeInit + $t 0x00006218 0 .text.GPIO_DeInit + $d 0x0000626c 0 .text.GPIO_DeInit + $d 0x0000627c 0 .text.GPIO_Init + $t 0x0000627c 0 .text.GPIO_Init + $d 0x0000628e 0 .text.GPIO_Init + $t 0x00006296 0 .text.GPIO_Init + $d 0x000062f2 0 .text.GPIO_Init + $t 0x000062fa 0 .text.GPIO_Init + $d 0x00006348 0 .text.GPIO_Init + $d 0x0000635c 0 .text.GPIO_PullHigh_Init + $t 0x0000635c 0 .text.GPIO_PullHigh_Init + $d 0x00006370 0 .text.GPIO_DriveStrength_EN + $t 0x00006370 0 .text.GPIO_DriveStrength_EN + $d 0x00006380 0 .text.GPIO_IntGroup_Set + $t 0x00006380 0 .text.GPIO_IntGroup_Set + $d 0x00006474 0 .text.GPIO_IntGroup_Set + $d 0x0000648c 0 .text.GPIOA0_EXI_Init + $t 0x0000648c 0 .text.GPIOA0_EXI_Init + $d 0x00006498 0 .text.GPIOA0_EXI_Init + $t 0x000064a8 0 .text.GPIOA0_EXI_Init + $d 0x00006584 0 .text.GPIOA0_EXI_Init + $d 0x00006588 0 .text.GPIO_Write_High + $t 0x00006588 0 .text.GPIO_Write_High + $d 0x00006590 0 .text.GPIO_Write_Low + $t 0x00006590 0 .text.GPIO_Write_Low + $d 0x00006598 0 .text.GPIO_Reverse + $t 0x00006598 0 .text.GPIO_Reverse + $d 0x000065ae 0 .text.GPIO_Read_Status + $t 0x000065ae 0 .text.GPIO_Read_Status + $d 0x000065c0 0 .text.LPT_Soft_Reset + $t 0x000065c0 0 .text.LPT_Soft_Reset + $d 0x000065d0 0 .text.LPT_Soft_Reset + $d 0x000065d4 0 .text.WWDT_CNT_Load + $t 0x000065d4 0 .text.WWDT_CNT_Load + $d 0x000065e0 0 .text.WWDT_CNT_Load + $d 0x000065e4 0 .text.BT_DeInit + $t 0x000065e4 0 .text.BT_DeInit + $d 0x00006600 0 .text.BT_Start + $t 0x00006600 0 .text.BT_Start + $d 0x00006608 0 .text.BT_Soft_Reset + $t 0x00006608 0 .text.BT_Soft_Reset + $d 0x00006612 0 .text.BT_Configure + $t 0x00006612 0 .text.BT_Configure + $d 0x0000662a 0 .text.BT_ControlSet_Configure + $t 0x0000662a 0 .text.BT_ControlSet_Configure + $d 0x00006656 0 .text.BT_Period_CMP_Write + $t 0x00006656 0 .text.BT_Period_CMP_Write + $d 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $t 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $d 0x00006670 0 .text.BT1_INT_ENABLE + $t 0x00006670 0 .text.BT1_INT_ENABLE + $d 0x0000667c 0 .text.BT1_INT_ENABLE + $d 0x00006680 0 .text.UART0_DeInit + $t 0x00006680 0 .text.UART0_DeInit + $d 0x00006694 0 .text.UART0_DeInit + $d 0x00006698 0 .text.UART1_DeInit + $t 0x00006698 0 .text.UART1_DeInit + $d 0x000066ac 0 .text.UART1_DeInit + $d 0x000066b0 0 .text.UART2_DeInit + $t 0x000066b0 0 .text.UART2_DeInit + $d 0x000066c4 0 .text.UART2_DeInit + $d 0x000066c8 0 .text.UART0_Int_Enable + $t 0x000066c8 0 .text.UART0_Int_Enable + $d 0x000066dc 0 .text.UART0_Int_Enable + $d 0x000066e4 0 .text.UART1_Int_Enable + $t 0x000066e4 0 .text.UART1_Int_Enable + $d 0x000066f8 0 .text.UART1_Int_Enable + $d 0x00006700 0 .text.UART2_Int_Enable + $t 0x00006700 0 .text.UART2_Int_Enable + $d 0x00006714 0 .text.UART2_Int_Enable + $d 0x0000671c 0 .text.UART_IO_Init + $t 0x0000671c 0 .text.UART_IO_Init + $d 0x00006800 0 .text.UART_IO_Init + $d 0x00006808 0 .text.UARTInitRxTxIntEn + $t 0x00006808 0 .text.UARTInitRxTxIntEn + $d 0x00006814 0 .text.UARTInitRxTxIntEn + $d 0x00006818 0 .text.UARTTransmit + $t 0x00006818 0 .text.UARTTransmit + $d 0x00006838 0 .text.EPT_Stop + $t 0x00006838 0 .text.EPT_Stop + $d 0x00006858 0 .text.EPT_Stop + $d 0x00006860 0 .text.Page_ProgramData + $t 0x00006860 0 .text.Page_ProgramData + $d 0x000068f8 0 .text.Page_ProgramData + $d 0x00006900 0 .text.ReadDataArry_U8 + $t 0x00006900 0 .text.ReadDataArry_U8 + $d 0x0000692c 0 .text.startup.main + $t 0x0000692c 0 .text.startup.main + $d 0x00006964 0 .text.startup.main + $d 0x00006970 0 .text.delay_nms + $t 0x00006970 0 .text.delay_nms + $d 0x0000699c 0 .text.delay_nus + $t 0x0000699c 0 .text.delay_nus + $d 0x000069c0 0 .text.BT_CONFIG + $t 0x000069c0 0 .text.BT_CONFIG + $d 0x00006a18 0 .text.BT_CONFIG + $d 0x00006a20 0 .text.SYSCON_CONFIG + $t 0x00006a20 0 .text.SYSCON_CONFIG + $d 0x00006a84 0 .text.APT32F102_init + $t 0x00006a84 0 .text.APT32F102_init + $d 0x00006ae8 0 .text.APT32F102_init + $d 0x00006afc 0 .text.SYSCONIntHandler + $t 0x00006afc 0 .text.SYSCONIntHandler + $d 0x00006be8 0 .text.SYSCONIntHandler + $d 0x00006bec 0 .text.IFCIntHandler + $t 0x00006bec 0 .text.IFCIntHandler + $d 0x00006c50 0 .text.IFCIntHandler + $d 0x00006c54 0 .text.ADCIntHandler + $t 0x00006c54 0 .text.ADCIntHandler + $d 0x00006cb8 0 .text.ADCIntHandler + $d 0x00006cbc 0 .text.EPT0IntHandler + $t 0x00006cbc 0 .text.EPT0IntHandler + $d 0x00006e5c 0 .text.EPT0IntHandler + $d 0x00006e68 0 .text.WWDTHandler + $t 0x00006e68 0 .text.WWDTHandler + $d 0x00006e98 0 .text.WWDTHandler + $d 0x00006e9c 0 .text.GPT0IntHandler + $t 0x00006e9c 0 .text.GPT0IntHandler + $d 0x00006f18 0 .text.GPT0IntHandler + $d 0x00006f1c 0 .text.RTCIntHandler + $t 0x00006f1c 0 .text.RTCIntHandler + $d 0x00006f84 0 .text.RTCIntHandler + $d 0x00006f8c 0 .text.UART0IntHandler + $t 0x00006f8c 0 .text.UART0IntHandler + $d 0x00006fe8 0 .text.UART0IntHandler + $d 0x00006fec 0 .text.UART1IntHandler + $t 0x00006fec 0 .text.UART1IntHandler + $d 0x0000706c 0 .text.UART1IntHandler + $d 0x00007080 0 .text.UART2IntHandler + $t 0x00007080 0 .text.UART2IntHandler + $d 0x000070dc 0 .text.UART2IntHandler + $d 0x000070e0 0 .text.SPI0IntHandler + $t 0x000070e0 0 .text.SPI0IntHandler + $d 0x000071c4 0 .text.SPI0IntHandler + $d 0x000071c8 0 .text.SIO0IntHandler + $t 0x000071c8 0 .text.SIO0IntHandler + $d 0x00007218 0 .text.SIO0IntHandler + $d 0x0000721c 0 .text.EXI0IntHandler + $t 0x0000721c 0 .text.EXI0IntHandler + $d 0x00007248 0 .text.EXI0IntHandler + $d 0x0000724c 0 .text.EXI1IntHandler + $t 0x0000724c 0 .text.EXI1IntHandler + $d 0x00007278 0 .text.EXI1IntHandler + $d 0x0000727c 0 .text.EXI2to3IntHandler + $t 0x0000727c 0 .text.EXI2to3IntHandler + $d 0x000072c0 0 .text.EXI2to3IntHandler + $d 0x000072c4 0 .text.EXI4to9IntHandler + $t 0x000072c4 0 .text.EXI4to9IntHandler + $d 0x000072e0 0 .text.EXI4to9IntHandler + $d 0x000072e4 0 .text.EXI10to15IntHandler + $t 0x000072e4 0 .text.EXI10to15IntHandler + $d 0x0000734c 0 .text.EXI10to15IntHandler + $d 0x00007350 0 .text.LPTIntHandler + $t 0x00007350 0 .text.LPTIntHandler + $d 0x00007380 0 .text.LPTIntHandler + $d 0x00007384 0 .text.BT0IntHandler + $t 0x00007384 0 .text.BT0IntHandler + $d 0x000073cc 0 .text.BT0IntHandler + $d 0x000073d0 0 .text.BT1IntHandler + $t 0x000073d0 0 .text.BT1IntHandler + $d 0x00007438 0 .text.BT1IntHandler + $d 0x00007440 0 .text.PriviledgeVioHandler + $t 0x00007440 0 .text.PriviledgeVioHandler + $d 0x00007442 0 .text.PendTrapHandler + $t 0x00007442 0 .text.PendTrapHandler + $d 0x0000744a 0 .text.Trap3Handler + $t 0x0000744a 0 .text.Trap3Handler + $d 0x00007452 0 .text.Trap2Handler + $t 0x00007452 0 .text.Trap2Handler + $d 0x0000745a 0 .text.Trap1Handler + $t 0x0000745a 0 .text.Trap1Handler + $d 0x00007462 0 .text.Trap0Handler + $t 0x00007462 0 .text.Trap0Handler + $d 0x0000746a 0 .text.UnrecExecpHandler + $t 0x0000746a 0 .text.UnrecExecpHandler + $d 0x00007472 0 .text.BreakPointHandler + $t 0x00007472 0 .text.BreakPointHandler + $d 0x0000747a 0 .text.AccessErrHandler + $t 0x0000747a 0 .text.AccessErrHandler + $d 0x00007482 0 .text.IllegalInstrHandler + $t 0x00007482 0 .text.IllegalInstrHandler + $d 0x0000748a 0 .text.MisalignedHandler + $t 0x0000748a 0 .text.MisalignedHandler + $d 0x00007492 0 .text.CNTAIntHandler + $t 0x00007492 0 .text.CNTAIntHandler + $d 0x0000749a 0 .text.I2CIntHandler + $t 0x0000749a 0 .text.I2CIntHandler + $d 0x000074a4 0 .text.__divsi3 + $t 0x000074a4 0 .text.__divsi3 + $d 0x000074c4 0 .text.__divsi3 + $d 0x000074c8 0 .text.__udivsi3 + $t 0x000074c8 0 .text.__udivsi3 + $d 0x000074e8 0 .text.__udivsi3 + $d 0x000074ec 0 .text.__modsi3 + $t 0x000074ec 0 .text.__modsi3 + $d 0x0000750c 0 .text.__modsi3 + $d 0x00007510 0 .text.__umodsi3 + $t 0x00007510 0 .text.__umodsi3 + $d 0x00007530 0 .text.__umodsi3 + $d 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00007540 0 .text.UARTx_Init + $t 0x00007540 0 .text.UARTx_Init + $d 0x00007694 0 .text.UARTx_Init + $d 0x000076c8 0 .text.UART0_RecvINT_Processing + $t 0x000076c8 0 .text.UART0_RecvINT_Processing + $d 0x000076f0 0 .text.UART0_RecvINT_Processing + $d 0x000076fc 0 .text.UART0_TASK + $t 0x000076fc 0 .text.UART0_TASK + $d 0x0000774c 0 .text.UART0_TASK + $d 0x0000775c 0 .text.UART1_RecvINT_Processing + $t 0x0000775c 0 .text.UART1_RecvINT_Processing + $d 0x00007784 0 .text.UART1_RecvINT_Processing + $d 0x00007790 0 .text.UART2_RecvINT_Processing + $t 0x00007790 0 .text.UART2_RecvINT_Processing + $d 0x000077b8 0 .text.UART2_RecvINT_Processing + $d 0x000077c4 0 .text.MCU485_SendData + $t 0x000077c4 0 .text.MCU485_SendData + $d 0x00007848 0 .text.MCU485_SendData + $d 0x00007854 0 .text.BUS485_Send + $t 0x00007854 0 .text.BUS485_Send + $d 0x00007900 0 .text.BUS485_Send + $d 0x00007918 0 .text.Set_GroupSend + $t 0x00007918 0 .text.Set_GroupSend + $d 0x00007974 0 .text.Set_GroupSend + $d 0x0000797c 0 .text.Clear_SendFlag + $t 0x0000797c 0 .text.Clear_SendFlag + $d 0x00007988 0 .text.Clear_SendFlag + $d 0x0000798c 0 .text.BUS485_Jump_Boot + $t 0x0000798c 0 .text.BUS485_Jump_Boot + $d 0x00007994 0 .text.BUS485_Jump_Boot + $d 0x00007998 0 .text.BusIdle_Task + $t 0x00007998 0 .text.BusIdle_Task + $d 0x000079d0 0 .text.BusIdle_Task + $d 0x000079d8 0 .text.BusBusy_Task + $t 0x000079d8 0 .text.BusBusy_Task + $d 0x00007a28 0 .text.BusBusy_Task + $d 0x00007a34 0 .text.Dbg_Println + $t 0x00007a34 0 .text.Dbg_Println + $d 0x00007aa4 0 .text.Dbg_Println + $d 0x00007ab4 0 .text.MultSend_Task + $t 0x00007ab4 0 .text.MultSend_Task + $d 0x00007b40 0 .text.MultSend_Task + $d 0x00007b54 0 .text.BUS485Send_Task + $t 0x00007b54 0 .text.BUS485Send_Task + $d 0x00007ba0 0 .text.BUS485Send_Task + $d 0x00007bbc 0 .text.Dbg_Print_Buff + $t 0x00007bbc 0 .text.Dbg_Print_Buff + $d 0x00007c2c 0 .text.Dbg_Print_Buff + $d 0x00007c40 0 .text.UART1_TASK + $t 0x00007c40 0 .text.UART1_TASK + $d 0x00007cb4 0 .text.UART1_TASK + $d 0x00007ccc 0 .text.UART2_TASK + $t 0x00007ccc 0 .text.UART2_TASK + $d 0x00007d4c 0 .text.UART2_TASK + $d 0x00007d68 0 .text.Dbg_BT_Println + $t 0x00007d68 0 .text.Dbg_BT_Println + $d 0x00007dbc 0 .text.Dbg_BT_Println + $d 0x00007dc8 0 .text.DIP_GetSwitchState + $t 0x00007dc8 0 .text.DIP_GetSwitchState + $d 0x00007df8 0 .text.DIP_GetSwitchState + $d 0x00007dfc 0 .text.DIP_Switch_Init + $t 0x00007dfc 0 .text.DIP_Switch_Init + $d 0x00007e84 0 .text.DIP_Switch_Init + $d 0x00007e90 0 .text.DIP_ScanTask + $t 0x00007e90 0 .text.DIP_ScanTask + $d 0x00007f18 0 .text.DIP_ScanTask + $d 0x00007f28 0 .text.EEPROM_CheckSum + $t 0x00007f28 0 .text.EEPROM_CheckSum + $d 0x00007f40 0 .text.EEOROM_ENERGY_ReadSet + $t 0x00007f40 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008058 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008090 0 .text.EEOROM_ENERGY_WriteSet + $t 0x00008090 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080d0 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080d4 0 .text.EEPROM_ENERGY_Validate + $t 0x000080d4 0 .text.EEPROM_ENERGY_Validate + $d 0x000081f8 0 .text.EEPROM_ENERGY_Validate + $d 0x00008220 0 .text.EEPROM_Default_ENERGY + $t 0x00008220 0 .text.EEPROM_Default_ENERGY + $d 0x00008308 0 .text.EEPROM_Default_ENERGY + $d 0x00008348 0 .text.EEPROM_ReadTotalEng + $t 0x00008348 0 .text.EEPROM_ReadTotalEng + $d 0x000083ec 0 .text.EEPROM_ReadTotalEng + $d 0x00008400 0 .text.EEPROM_WriteTotalEng + $t 0x00008400 0 .text.EEPROM_WriteTotalEng + $d 0x000084a0 0 .text.EEPROM_WriteTotalEng + $d 0x000084ac 0 .text.EEPROM_ReadMCUDevInfo + $t 0x000084ac 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008560 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008580 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00008580 0 .text.EEPROM_WriteMCUDevInfo + $d 0x000085c0 0 .text.EEPROM_Default_MCUDevInfo + $t 0x000085c0 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000085f4 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000085f8 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x000085f8 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x0000864c 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008650 0 .text.EEPROM_Init + $t 0x00008650 0 .text.EEPROM_Init + $d 0x0000873c 0 .text.EEPROM_Init + BT_Uart_Packing.part.3 0x00008780 F 60 .text.BT_Uart_Packing.part.3 + $d 0x00008780 0 .text.BT_Uart_Packing.part.3 + $t 0x00008780 0 .text.BT_Uart_Packing.part.3 + $d 0x000087b4 0 .text.BT_Uart_Packing.part.3 + $d 0x000087bc 0 .text.BLV_DetEnergy_Init + $t 0x000087bc 0 .text.BLV_DetEnergy_Init + $d 0x000087e0 0 .text.BLV_DetEnergy_Init + $d 0x000087ec 0 .text.BLV_DetEnergy_Default + $t 0x000087ec 0 .text.BLV_DetEnergy_Default + $d 0x00008894 0 .text.BLV_DetEnergy_Default + $d 0x000088a4 0 .text.HLW8110_CheckSum + $t 0x000088a4 0 .text.HLW8110_CheckSum + $d 0x000088bc 0 .text.HLW8110_WriteREG_EN + $t 0x000088bc 0 .text.HLW8110_WriteREG_EN + $d 0x00008914 0 .text.HLW8110_WriteREG_EN + $d 0x00008920 0 .text.HLW8110_WriteREG_DIS + $t 0x00008920 0 .text.HLW8110_WriteREG_DIS + $d 0x00008978 0 .text.HLW8110_WriteREG_DIS + $d 0x00008984 0 .text.BLV_HLW8110_RWCMD_Packaging + $t 0x00008984 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a0c 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a10 0 .text.HLW8110_RWCMD_Send + $t 0x00008a10 0 .text.HLW8110_RWCMD_Send + $d 0x00008a7c 0 .text.HLW8110_RWCMD_Send + $d 0x00008a98 0 .text.HLW8110_CleanSdFlag + $t 0x00008a98 0 .text.HLW8110_CleanSdFlag + $d 0x00008aa4 0 .text.HLW8110_CleanSdFlag + $d 0x00008aa8 0 .text.Get_RevState + $t 0x00008aa8 0 .text.Get_RevState + $d 0x00008abc 0 .text.Get_RevState + $d 0x00008ac0 0 .text.Get_SendState + $t 0x00008ac0 0 .text.Get_SendState + $d 0x00008ad8 0 .text.Get_SendState + $d 0x00008adc 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008adc 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008aee 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008b00 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008ca8 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008cc0 0 .text.HLW8110_Convert_CurrentRegA_Value + $t 0x00008cc0 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d38 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d4c 0 .text.HLW8110_Convert_VoltageReg_Value + $t 0x00008d4c 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008db4 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008dc8 0 .text.HLW8110_Convert_PowerReg_Value + $t 0x00008dc8 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e38 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e44 0 .text.HLW8110_Convert_EnergyReg_Value + $t 0x00008e44 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008ec8 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008edc 0 .text.HLW8110_RecvData_Processing + $t 0x00008edc 0 .text.HLW8110_RecvData_Processing + $d 0x00009110 0 .text.HLW8110_RecvData_Processing + $d 0x00009138 0 .text.HLW8110_SysPara_Check + $t 0x00009138 0 .text.HLW8110_SysPara_Check + $d 0x00009160 0 .text.HLW8110_ReadSysPara + $t 0x00009160 0 .text.HLW8110_ReadSysPara + $d 0x00009170 0 .text.HLW8110_ReadSysPara + $t 0x0000917a 0 .text.HLW8110_ReadSysPara + $d 0x00009344 0 .text.HLW8110_ReadSysPara + $d 0x0000937c 0 .text.HLW8110_ReadSysCtrlPara + $t 0x0000937c 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009428 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009444 0 .text.GetEnergy_Para + $t 0x00009444 0 .text.GetEnergy_Para + $d 0x0000948c 0 .text.GetEnergy_Para + $d 0x000094a8 0 .text.HLW8110_ReadValue + $t 0x000094a8 0 .text.HLW8110_ReadValue + $d 0x000094b6 0 .text.HLW8110_ReadValue + $t 0x000094bc 0 .text.HLW8110_ReadValue + $d 0x000095d8 0 .text.HLW8110_ReadValue + $d 0x00009600 0 .text.BLV_HLW8110_Tack + $t 0x00009600 0 .text.BLV_HLW8110_Tack + $d 0x0000960e 0 .text.BLV_HLW8110_Tack + $t 0x00009612 0 .text.BLV_HLW8110_Tack + $d 0x00009638 0 .text.BLV_HLW8110_Tack + $d 0x00009640 0 .text.BT_Uart_Packing + $t 0x00009640 0 .text.BT_Uart_Packing + $d 0x0000964c 0 .text.BT_UART_Print + $t 0x0000964c 0 .text.BT_UART_Print + $d 0x00009684 0 .text.BT_UART_Print + $t 0x0000968c 0 .text.BT_UART_Print + $d 0x00009724 0 .text.BT_UART_Print + $d 0x00009750 0 .text.BLV_Energy_ActiveRep_Packing + $t 0x00009750 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x00009830 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x0000983c 0 .text.BLV_ElectricPara_Processing + $t 0x0000983c 0 .text.BLV_ElectricPara_Processing + $d 0x000098c4 0 .text.BLV_ElectricPara_Processing + $d 0x000098ec 0 .text.BLV_EngDetect_Tack + $t 0x000098ec 0 .text.BLV_EngDetect_Tack + $d 0x00009900 0 .text.BLV_Energy_PassiveRep_Packing + $t 0x00009900 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x000099e4 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x000099ec 0 .text.BLV_Energy_SetTime_Packing + $t 0x000099ec 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009a84 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009a8c 0 .text.BLV_Energy_QueryVersion_Packing + $t 0x00009a8c 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b1c 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b24 0 .text.SetCalibFactor_Switch + $t 0x00009b24 0 .text.SetCalibFactor_Switch + $d 0x00009b30 0 .text.SetCalibFactor_Switch + $t 0x00009b36 0 .text.SetCalibFactor_Switch + $d 0x00009b50 0 .text.SetCalibFactor_Switch + $d 0x00009b54 0 .text.BLV_Energy_SetCalibFactor + $t 0x00009b54 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009bd4 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009bd8 0 .text.BLV_Energy_SetCalibFactor_2 + $t 0x00009bd8 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009c50 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009c54 0 .text.HLW_485Recv_Processing + $t 0x00009c54 0 .text.HLW_485Recv_Processing + $d 0x00009d84 0 .text.HLW_485Recv_Processing + $d 0x00009db4 0 .text.BT_Recv_Processing + $t 0x00009db4 0 .text.BT_Recv_Processing + $d 0x00009ea8 0 .text.BT_Recv_Processing + $d 0x00009ecc 0 .text.Boot_Function_Init + $t 0x00009ecc 0 .text.Boot_Function_Init + $d 0x00009f5c 0 .text.Boot_Function_Init + $d 0x00009f8c 0 .text.Boot_Comm_CheckSum + $t 0x00009f8c 0 .text.Boot_Comm_CheckSum + $d 0x00009fac 0 .text.Boot_Comm_CheckSum + $d 0x00009fb0 0 .text.Boot_Comm_FillReplyPack + $t 0x00009fb0 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a010 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a01c 0 .text.Boot_Time_Refresh + $t 0x0000a01c 0 .text.Boot_Time_Refresh + $d 0x0000a028 0 .text.Boot_Time_Refresh + $d 0x0000a030 0 .text.Boot_Comm_UpgradeProcess + $t 0x0000a030 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a210 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a24c 0 .text.TK_Sampling_prog + $t 0x0000a24c 0 .text.TK_Sampling_prog + $d 0x0000a294 0 .text.TK_Sampling_prog + $d 0x0000a2a4 0 .text.TKEYIntHandler + $t 0x0000a2a4 0 .text.TKEYIntHandler + $d 0x0000a320 0 .text.TKEYIntHandler + $d 0x0000a32c 0 .text.get_key_number + $t 0x0000a32c 0 .text.get_key_number + $d 0x0000a350 0 .text.get_key_number + $d 0x0000a354 0 .text.TK_Scan_Start + $t 0x0000a354 0 .text.TK_Scan_Start + $d 0x0000a36c 0 .text.TK_Scan_Start + $d 0x0000a374 0 .text.TK_Keymap_prog + $t 0x0000a374 0 .text.TK_Keymap_prog + $d 0x0000a4bc 0 .text.TK_Keymap_prog + $d 0x0000a4f4 0 .text.TK_overflow_predict + $t 0x0000a4f4 0 .text.TK_overflow_predict + $d 0x0000a5dc 0 .text.TK_overflow_predict + $d 0x0000a610 0 .text.TK_Baseline_tracking + $t 0x0000a610 0 .text.TK_Baseline_tracking + $d 0x0000a7b4 0 .text.TK_Baseline_tracking + $d 0x0000a7e0 0 .text.TK_result_prog + $t 0x0000a7e0 0 .text.TK_result_prog + $d 0x0000a820 0 .text.TK_result_prog + $d 0x0000a834 0 .text.CORETHandler + $t 0x0000a834 0 .text.CORETHandler + $d 0x0000a894 0 .text.CORETHandler + $d 0x0000a8ac 0 .text.std_clk_calib + $t 0x0000a8ac 0 .text.std_clk_calib + $d 0x0000aaf4 0 .text.std_clk_calib + __func__.6738 0x0000ab30 O 23 .rodata + bp 0x0000ab48 O 16 .rodata + dp_l 0x0000ab58 O 16 .rodata + dp_h 0x0000ab68 O 16 .rodata + blanks.1847 0x0000ac9c O 16 .rodata + zeroes.1848 0x0000acac O 16 .rodata + CSWTCH.1 0x0000acbc O 576 .rodata + NUM.6261 0x200000bc O 1 .bss + update_20ms.6167 0x20000168 O 4 .bss + HLW8110_Sned_Tisk.6544 0x2000016c O 4 .bss + Wait_ReadValue_Tisk.6624 0x20000170 O 4 .bss + BT_State.6658 0x20000174 O 4 .bss + BT_WaitOutTim.6659 0x20000178 O 4 .bss + Eng_Save_Tim.6647 0x2000017c O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00002800 0 .text + __start 0x0000290c 0 .text + __exit 0x00002960 0 .text + __fail 0x00002976 0 .text + DummyHandler 0x00002984 0 .text + __GI_pow 0x000029b4 F 2474 .text + pow 0x000029b4 F 2474 .text + __GI_fabs 0x0000335e F 6 .text + fabs 0x0000335e F 6 .text + __GI_scalbn 0x00003364 F 32 .text + scalbn 0x00003364 F 32 .text + __GI_sqrt 0x00003384 F 376 .text + sqrt 0x00003384 F 376 .text + ___gnu_csky_case_uqi 0x000034fc F 20 .text + ___gnu_csky_case_uhi 0x00003510 F 26 .text + __fixunssfsi 0x0000352c F 46 .text + __fixunsdfsi 0x0000355c F 56 .text + __addsf3 0x000036e0 F 42 .text + __subsf3 0x0000370c F 50 .text + __mulsf3 0x00003740 F 280 .text + __divsf3 0x00003858 F 188 .text + __nesf2 0x00003914 F 54 .text + __gesf2 0x0000394c F 56 .text + __floatsisf 0x00003984 F 100 .text + __fixsfsi 0x000039e8 F 84 .text + __extendsfdf2 0x00003a3c F 36 .text + __adddf3 0x00003d34 F 46 .text + __subdf3 0x00003d64 F 54 .text + __muldf3 0x00003d9c F 564 .text + __divdf3 0x00003fd0 F 340 .text + __gtdf2 0x00004124 F 60 .text + __gedf2 0x00004160 F 60 .text + __ledf2 0x0000419c F 58 .text + __floatsidf 0x000041d8 F 112 .text + __fixdfsi 0x00004248 F 112 .text + __make_dp 0x000042b8 F 40 .text + __truncdfsf2 0x000042e0 F 48 .text + __floatunsidf 0x00004310 F 84 .text + __muldi3 0x00004364 F 68 .text + __clzsi2 0x000043a8 F 64 .text + __pack_f 0x000043e8 F 184 .text + __unpack_f 0x000044a0 F 132 .text + __fpcmp_parts_f 0x00004524 F 120 .text + __make_fp 0x0000459c F 22 .text + __pack_d 0x000045b4 F 412 .text + __unpack_d 0x00004750 F 196 .text + __fpcmp_parts_d 0x00004814 F 140 .text + __cskyvprintfsnprintf 0x000048a0 F 32 .text + __cskyvprintfvsnprintf 0x000048fe F 90 .text + __memset_fast 0x00004958 w F 136 .text + memset 0x00004958 w F 136 .text + __memcpy_fast 0x000049e0 w F 100 .text + memcpy 0x000049e0 w F 100 .text + __GI_strncmp 0x00004a44 F 38 .text + strncmp 0x00004a44 w F 38 .text + __v2_printf 0x00004aa0 F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00004aa0 F 1828 .text + __udivdi3 0x000051c4 F 940 .text + __umoddi3 0x00005570 F 928 .text + __GI___dtostr 0x00005936 F 826 .text + __dtostr 0x00005936 F 826 .text + __isnan 0x00005c70 F 44 .text + __strlen_fast 0x00005c9c w F 82 .text + strlen 0x00005c9c w F 82 .text + __strcpy_fast 0x00005cf0 w F 176 .text + strcpy 0x00005cf0 w F 176 .text + __GI_strchr 0x00005da0 F 18 .text + strchr 0x00005da0 w F 18 .text + __GI_strerror 0x00005db4 F 28 .text + strerror 0x00005db4 F 28 .text + __isinf 0x00005dd0 F 48 .text + __eqdf2 0x00005e00 F 58 .text + __ltdf2 0x00005e3c F 58 .text + __main 0x00005e78 F 56 .text.__main + SYSCON_RST_VALUE 0x00005f24 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00005f70 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00005fa0 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00006028 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00006050 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x0000608c F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x000060a0 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x000060b8 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x000060d8 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x000060f4 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00006110 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00006150 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00006184 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00006188 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00006198 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x000061a4 F 12 .text.SYSCON_Int_Disable + SYSCON_Software_Reset 0x000061b0 F 20 .text.SYSCON_Software_Reset + SYSCON_INT_Priority 0x000061c4 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000061e8 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x00006218 F 100 .text.GPIO_DeInit + GPIO_Init 0x0000627c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000635c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00006370 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00006380 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x0000648c F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x00006588 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00006590 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00006598 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000065ae F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000065c0 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000065d4 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000065e4 F 28 .text.BT_DeInit + BT_Start 0x00006600 F 8 .text.BT_Start + BT_Soft_Reset 0x00006608 F 10 .text.BT_Soft_Reset + BT_Configure 0x00006612 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000662a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00006656 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x0000665c F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00006670 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00006680 F 24 .text.UART0_DeInit + UART1_DeInit 0x00006698 F 24 .text.UART1_DeInit + UART2_DeInit 0x000066b0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000066c8 F 28 .text.UART0_Int_Enable + UART1_Int_Enable 0x000066e4 F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00006700 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000671c F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00006808 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00006818 F 30 .text.UARTTransmit + EPT_Stop 0x00006838 F 40 .text.EPT_Stop + Page_ProgramData 0x00006860 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00006900 F 42 .text.ReadDataArry_U8 + main 0x0000692c F 68 .text.startup.main + delay_nms 0x00006970 F 44 .text.delay_nms + delay_nus 0x0000699c F 34 .text.delay_nus + BT_CONFIG 0x000069c0 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00006a20 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00006a84 F 120 .text.APT32F102_init + SYSCONIntHandler 0x00006afc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00006bec F 104 .text.IFCIntHandler + ADCIntHandler 0x00006c54 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00006cbc F 428 .text.EPT0IntHandler + WWDTHandler 0x00006e68 F 52 .text.WWDTHandler + GPT0IntHandler 0x00006e9c F 128 .text.GPT0IntHandler + RTCIntHandler 0x00006f1c F 112 .text.RTCIntHandler + UART0IntHandler 0x00006f8c F 96 .text.UART0IntHandler + UART1IntHandler 0x00006fec F 148 .text.UART1IntHandler + UART2IntHandler 0x00007080 F 96 .text.UART2IntHandler + SPI0IntHandler 0x000070e0 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000071c8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x0000721c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x0000724c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x0000727c F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000072c4 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x000072e4 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x00007350 F 52 .text.LPTIntHandler + BT0IntHandler 0x00007384 F 76 .text.BT0IntHandler + BT1IntHandler 0x000073d0 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00007440 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00007442 F 8 .text.PendTrapHandler + Trap3Handler 0x0000744a F 8 .text.Trap3Handler + Trap2Handler 0x00007452 F 8 .text.Trap2Handler + Trap1Handler 0x0000745a F 8 .text.Trap1Handler + Trap0Handler 0x00007462 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000746a F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00007472 F 8 .text.BreakPointHandler + AccessErrHandler 0x0000747a F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00007482 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x0000748a F 8 .text.MisalignedHandler + CNTAIntHandler 0x00007492 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000749a F 8 .text.I2CIntHandler + __divsi3 0x000074a4 F 36 .text.__divsi3 + __udivsi3 0x000074c8 F 36 .text.__udivsi3 + __modsi3 0x000074ec F 36 .text.__modsi3 + __umodsi3 0x00007510 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00007534 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000753a F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00007540 F 392 .text.UARTx_Init + UART0_RecvINT_Processing 0x000076c8 F 52 .text.UART0_RecvINT_Processing + UART0_TASK 0x000076fc F 96 .text.UART0_TASK + UART1_RecvINT_Processing 0x0000775c F 52 .text.UART1_RecvINT_Processing + UART2_RecvINT_Processing 0x00007790 F 52 .text.UART2_RecvINT_Processing + MCU485_SendData 0x000077c4 F 144 .text.MCU485_SendData + BUS485_Send 0x00007854 F 196 .text.BUS485_Send + Set_GroupSend 0x00007918 F 100 .text.Set_GroupSend + Clear_SendFlag 0x0000797c F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x0000798c F 12 .text.BUS485_Jump_Boot + BusIdle_Task 0x00007998 F 64 .text.BusIdle_Task + BusBusy_Task 0x000079d8 F 92 .text.BusBusy_Task + Dbg_Println 0x00007a34 F 128 .text.Dbg_Println + MultSend_Task 0x00007ab4 F 160 .text.MultSend_Task + BUS485Send_Task 0x00007b54 F 104 .text.BUS485Send_Task + Dbg_Print_Buff 0x00007bbc F 132 .text.Dbg_Print_Buff + UART1_TASK 0x00007c40 F 140 .text.UART1_TASK + UART2_TASK 0x00007ccc F 156 .text.UART2_TASK + Dbg_BT_Println 0x00007d68 F 96 .text.Dbg_BT_Println + DIP_GetSwitchState 0x00007dc8 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x00007dfc F 148 .text.DIP_Switch_Init + DIP_ScanTask 0x00007e90 F 152 .text.DIP_ScanTask + EEPROM_CheckSum 0x00007f28 F 22 .text.EEPROM_CheckSum + EEOROM_ENERGY_ReadSet 0x00007f40 F 336 .text.EEOROM_ENERGY_ReadSet + EEOROM_ENERGY_WriteSet 0x00008090 F 68 .text.EEOROM_ENERGY_WriteSet + EEPROM_ENERGY_Validate 0x000080d4 F 332 .text.EEPROM_ENERGY_Validate + EEPROM_Default_ENERGY 0x00008220 F 296 .text.EEPROM_Default_ENERGY + EEPROM_ReadTotalEng 0x00008348 F 184 .text.EEPROM_ReadTotalEng + EEPROM_WriteTotalEng 0x00008400 F 172 .text.EEPROM_WriteTotalEng + EEPROM_ReadMCUDevInfo 0x000084ac F 212 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00008580 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x000085c0 F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x000085f8 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00008650 F 304 .text.EEPROM_Init + BLV_DetEnergy_Init 0x000087bc F 48 .text.BLV_DetEnergy_Init + BLV_DetEnergy_Default 0x000087ec F 184 .text.BLV_DetEnergy_Default + HLW8110_CheckSum 0x000088a4 F 24 .text.HLW8110_CheckSum + HLW8110_WriteREG_EN 0x000088bc F 100 .text.HLW8110_WriteREG_EN + HLW8110_WriteREG_DIS 0x00008920 F 100 .text.HLW8110_WriteREG_DIS + BLV_HLW8110_RWCMD_Packaging 0x00008984 F 140 .text.BLV_HLW8110_RWCMD_Packaging + HLW8110_RWCMD_Send 0x00008a10 F 136 .text.HLW8110_RWCMD_Send + HLW8110_CleanSdFlag 0x00008a98 F 16 .text.HLW8110_CleanSdFlag + Get_RevState 0x00008aa8 F 24 .text.Get_RevState + Get_SendState 0x00008ac0 F 28 .text.Get_SendState + BLV_HLW8110_SendData_Tack 0x00008adc F 484 .text.BLV_HLW8110_SendData_Tack + HLW8110_Convert_CurrentRegA_Value 0x00008cc0 F 140 .text.HLW8110_Convert_CurrentRegA_Value + HLW8110_Convert_VoltageReg_Value 0x00008d4c F 124 .text.HLW8110_Convert_VoltageReg_Value + HLW8110_Convert_PowerReg_Value 0x00008dc8 F 124 .text.HLW8110_Convert_PowerReg_Value + HLW8110_Convert_EnergyReg_Value 0x00008e44 F 152 .text.HLW8110_Convert_EnergyReg_Value + HLW8110_RecvData_Processing 0x00008edc F 604 .text.HLW8110_RecvData_Processing + HLW8110_SysPara_Check 0x00009138 F 38 .text.HLW8110_SysPara_Check + HLW8110_ReadSysPara 0x00009160 F 540 .text.HLW8110_ReadSysPara + HLW8110_ReadSysCtrlPara 0x0000937c F 200 .text.HLW8110_ReadSysCtrlPara + GetEnergy_Para 0x00009444 F 100 .text.GetEnergy_Para + HLW8110_ReadValue 0x000094a8 F 344 .text.HLW8110_ReadValue + BLV_HLW8110_Tack 0x00009600 F 64 .text.BLV_HLW8110_Tack + BT_Uart_Packing 0x00009640 F 12 .text.BT_Uart_Packing + BT_UART_Print 0x0000964c F 260 .text.BT_UART_Print + BLV_Energy_ActiveRep_Packing 0x00009750 F 236 .text.BLV_Energy_ActiveRep_Packing + BLV_ElectricPara_Processing 0x0000983c F 176 .text.BLV_ElectricPara_Processing + BLV_EngDetect_Tack 0x000098ec F 20 .text.BLV_EngDetect_Tack + BLV_Energy_PassiveRep_Packing 0x00009900 F 236 .text.BLV_Energy_PassiveRep_Packing + BLV_Energy_SetTime_Packing 0x000099ec F 160 .text.BLV_Energy_SetTime_Packing + BLV_Energy_QueryVersion_Packing 0x00009a8c F 152 .text.BLV_Energy_QueryVersion_Packing + SetCalibFactor_Switch 0x00009b24 F 48 .text.SetCalibFactor_Switch + BLV_Energy_SetCalibFactor 0x00009b54 F 132 .text.BLV_Energy_SetCalibFactor + BLV_Energy_SetCalibFactor_2 0x00009bd8 F 124 .text.BLV_Energy_SetCalibFactor_2 + HLW_485Recv_Processing 0x00009c54 F 352 .text.HLW_485Recv_Processing + BT_Recv_Processing 0x00009db4 F 280 .text.BT_Recv_Processing + Boot_Function_Init 0x00009ecc F 192 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x00009f8c F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x00009fb0 F 108 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x0000a01c F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x0000a030 F 540 .text.Boot_Comm_UpgradeProcess + TK_Sampling_prog 0x0000a24c F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x0000a2a4 F 136 .text.TKEYIntHandler + get_key_number 0x0000a32c F 40 .text.get_key_number + TK_Scan_Start 0x0000a354 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x0000a374 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000a4f4 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000a610 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x0000a7e0 F 84 .text.TK_result_prog + CORETHandler 0x0000a834 F 120 .text.CORETHandler + std_clk_calib 0x0000a8ac F 644 .text.std_clk_calib + __thenan_sf 0x0000ab78 O 16 .rodata + __thenan_df 0x0000ab88 O 20 .rodata + __clz_tab 0x0000ab9c O 256 .rodata + _end_rodata 0x0000c230 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + Project_Boot_Support 0x2000009c O 32 .textcsky.VinFlash + _bss_start 0x200000bc 0 .bss + SysTick_100us 0x200000c0 O 4 .bss + SysTick_1ms 0x200000c4 O 4 .bss + RS485_Comming 0x200000c8 O 4 .bss + RS485_Comm_Flag 0x200000cc O 4 .bss + RS485_Comm_Start 0x200000d0 O 4 .bss + RS485_Comm_End 0x200000d4 O 4 .bss + Dbg_Switch 0x200000d8 O 4 .bss + SysTick_Now 0x200000dc O 4 .bss + SysTick_Last 0x200000e0 O 4 .bss + SysTick_Diff 0x200000e4 O 4 .bss + Dbg_Buffer 0x200000e8 O 128 .bss + Press_debounce_data 0x20000180 O 1 .bss + TK_Lowpower_mode 0x20000181 O 1 .bss + TK_Lowpower_level 0x20000182 O 1 .bss + TK_longpress_time 0x20000184 O 4 .bss + Release_debounce_data 0x20000188 O 1 .bss + Key_mode 0x20000189 O 1 .bss + TK_icon 0x2000018a O 34 .bss + MultiTimes_Filter 0x200001ac O 1 .bss + Base_Speed 0x200001ad O 1 .bss + TK_IO_ENABLE 0x200001b0 O 4 .bss + Valid_Key_Num 0x200001b4 O 1 .bss + TK_senprd 0x200001b6 O 34 .bss + TK_Wakeup_level 0x200001d8 O 1 .bss + TK_Triggerlevel 0x200001da O 34 .bss + TK_EC_LEVEL 0x200001fc O 2 .bss + TK_FVR_LEVEL 0x200001fe O 2 .bss + TK_BaseCnt 0x20000200 O 4 .bss + TK_PSEL_MODE 0x20000204 O 2 .bss + R_CMPB_BUF 0x20000208 O 4 .bss + R_CMPA_BUF 0x2000020c O 4 .bss + R_SIORX_buf 0x20000210 O 40 .bss + g_uart 0x20000238 O 148 .bss + g_uart0 0x200002cc O 148 .bss + g_uart1 0x20000360 O 148 .bss + m_send 0x200003f4 O 136 .bss + g_Dip 0x2000047c O 20 .bss + e_save 0x20000490 O 44 .bss + g_mcu_dev 0x200004bc O 37 .bss + eng_info 0x200004e4 O 12 .bss + u_det 0x200004f0 O 72 .bss + g_CalFactor 0x20000538 O 60 .bss + g_Eng 0x20000574 O 120 .bss + g_boot 0x200005ec O 316 .bss + g_app_feature 0x20000728 O 256 .bss + baseline_data0 0x20000828 O 34 .bss + TK_Postive_build2 0x2000084a O 17 .bss + Key_Map1 0x2000085c O 4 .bss + offset_data2_abs 0x20000860 O 34 .bss + scan_f 0x20000882 O 1 .bss + offset_data1_abs 0x20000884 O 34 .bss + Release_debounce0 0x200008a6 O 17 .bss + Key_Map0 0x200008b8 O 4 .bss + bsae_over_f 0x200008bc O 1 .bss + scan_cnt 0x200008be O 2 .bss + Press_debounce0 0x200008c0 O 17 .bss + offset_data0 0x200008d2 O 34 .bss + sampling_data1 0x200008f4 O 34 .bss + Key_Map2 0x20000918 O 4 .bss + Release_debounce1 0x2000091c O 17 .bss + tk_overflow_f 0x2000092d O 1 .bss + TK_Negtive_build2 0x2000092e O 17 .bss + base_update_f 0x2000093f O 1 .bss + TK_Postive_build1 0x20000940 O 17 .bss + time_cnt 0x20000954 O 4 .bss + lpt_scan_pend_cnt 0x20000958 O 2 .bss + TK_track_cnt 0x2000095a O 1 .bss + Key_Map 0x2000095c O 4 .bss + baseline_data1 0x20000960 O 34 .bss + TK_Postive_build0 0x20000982 O 17 .bss + sampling_data2 0x20000994 O 34 .bss + offset_data1 0x200009b6 O 34 .bss + TK_ovrdect_cnt 0x200009d8 O 1 .bss + Press_debounce2 0x200009d9 O 17 .bss + TK_Negtive_build1 0x200009ea O 17 .bss + tk_num 0x200009fb O 1 .bss + TK_Negtive_build0 0x200009fc O 17 .bss + Press_debounce1 0x20000a0d O 17 .bss + Release_debounce2 0x20000a1e O 17 .bss + r_Key_Map_Temp 0x20000a30 O 4 .bss + tk_seque 0x20000a34 O 17 .bss + scan_step 0x20000a45 O 1 .bss + baseline_data2 0x20000a46 O 34 .bss + tk_sampling_max 0x20000a68 O 34 .bss + offset_data0_abs 0x20000a8a O 34 .bss + offset_data2 0x20000aac O 34 .bss + sampling_data0 0x20000ace O 34 .bss + errno 0x20000af0 O 4 .bss + __malloc_lock 0x20000af4 O 4 .bss + _ebss 0x20000af8 0 .bss + _end 0x20000af8 0 .bss + end 0x20000af8 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000290c + + Region ROM (Base: 0x00002800, Size: 0x00009a30, Max: 0x0000d800) + + Base Addr Size Type Attr Idx Section Name Object + 0x00002800 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000029b4 0x000009aa Code RO 1067 .text pow.o + 0x0000335e 0x00000006 Code RO 1075 .text fabs.o + 0x00003364 0x00000020 Code RO 1081 .text scalbn.o + 0x00003384 0x00000178 Code RO 1088 .text sqrt.o + 0x000034fc 0x00000014 Code RO 1099 .text _csky_case_uqi.o + 0x00003510 0x0000001a Code RO 1104 .text _csky_case_uhi.o + 0x0000352a 0x00000002 PAD + 0x0000352c 0x0000002e Code RO 1109 .text _fixunssfsi.o + 0x0000355a 0x00000002 PAD + 0x0000355c 0x00000038 Code RO 1116 .text _fixunsdfsi.o + 0x00003594 0x000001aa Code RO 1123 .text _addsub_sf.o + 0x0000373e 0x00000002 PAD + 0x00003740 0x00000118 Code RO 1130 .text _mul_sf.o + 0x00003858 0x000000bc Code RO 1137 .text _div_sf.o + 0x00003914 0x00000036 Code RO 1144 .text _ne_sf.o + 0x0000394a 0x00000002 PAD + 0x0000394c 0x00000038 Code RO 1151 .text _ge_sf.o + 0x00003984 0x00000064 Code RO 1158 .text _si_to_sf.o + 0x000039e8 0x00000054 Code RO 1165 .text _sf_to_si.o + 0x00003a3c 0x00000024 Code RO 1172 .text _sf_to_df.o + 0x00003a60 0x0000033a Code RO 1186 .text _addsub_df.o + 0x00003d9a 0x00000002 PAD + 0x00003d9c 0x00000234 Code RO 1193 .text _mul_df.o + 0x00003fd0 0x00000154 Code RO 1200 .text _div_df.o + 0x00004124 0x0000003c Code RO 1207 .text _gt_df.o + 0x00004160 0x0000003c Code RO 1214 .text _ge_df.o + 0x0000419c 0x0000003a Code RO 1221 .text _le_df.o + 0x000041d6 0x00000002 PAD + 0x000041d8 0x00000070 Code RO 1228 .text _si_to_df.o + 0x00004248 0x00000070 Code RO 1235 .text _df_to_si.o + 0x000042b8 0x00000028 Code RO 1242 .text _make_df.o + 0x000042e0 0x00000030 Code RO 1249 .text _df_to_sf.o + 0x00004310 0x00000054 Code RO 1263 .text _usi_to_df.o + 0x00004364 0x00000044 Code RO 1270 .text _muldi3.o + 0x000043a8 0x00000040 Code RO 1277 .text _clzsi2.o + 0x000043e8 0x000000b8 Code RO 1283 .text _pack_sf.o + 0x000044a0 0x00000084 Code RO 1290 .text _unpack_sf.o + 0x00004524 0x00000078 Code RO 1297 .text _fpcmp_parts_sf.o + 0x0000459c 0x00000016 Code RO 1304 .text _make_sf.o + 0x000045b2 0x00000002 PAD + 0x000045b4 0x0000019c Code RO 1311 .text _pack_df.o + 0x00004750 0x000000c4 Code RO 1318 .text _unpack_df.o + 0x00004814 0x0000008c Code RO 1325 .text _fpcmp_parts_df.o + 0x000048a0 0x00000020 Code RO 1346 .text snprintf_required.o + 0x000048c0 0x00000098 Code RO 1353 .text vsnprintf_required.o + 0x00004958 0x00000088 Code RO 1360 .text memset_fast.o + 0x000049e0 0x00000064 Code RO 1365 .text memcpy_fast.o + 0x00004a44 0x00000026 Code RO 1371 .text strncmp.o + 0x00004a6a 0x00000002 PAD + 0x00004a6c 0x00000758 Code RO 1529 .text __v2_printfDFHLlMOPpSSsWp.o + 0x000051c4 0x000003ac Code RO 1588 .text _udivdi3.o + 0x00005570 0x000003a0 Code RO 1595 .text _umoddi3.o + 0x00005910 0x00000360 Code RO 1616 .text __dtostr.o + 0x00005c70 0x0000002c Code RO 1624 .text __isnan.o + 0x00005c9c 0x00000052 Code RO 1636 .text strlen_fast.o + 0x00005cee 0x00000002 PAD + 0x00005cf0 0x000000b0 Code RO 1641 .text strcpy_fast.o + 0x00005da0 0x00000012 Code RO 1646 .text strchr.o + 0x00005db2 0x00000002 PAD + 0x00005db4 0x0000001c Code RO 1651 .text strerror.o + 0x00005dd0 0x00000030 Code RO 1659 .text __isinf.o + 0x00005e00 0x0000003a Code RO 1665 .text _eq_df.o + 0x00005e3a 0x00000002 PAD + 0x00005e3c 0x0000003a Code RO 1672 .text _lt_df.o + 0x00005e78 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00005eb0 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00005f24 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00005f70 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00005fa0 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00006028 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00006050 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000608c 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x000060a0 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x000060b8 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x000060d8 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000060f4 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006110 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006150 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006184 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00006188 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006198 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000061a4 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x000061b0 0x00000014 Code RO 111 .text.SYSCON_Software_Reset Obj/FWlib_apt32f102_syscon.o + 0x000061c4 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000061e8 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00006218 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x0000627c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000635c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00006370 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00006380 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x0000648c 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00006588 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00006590 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00006598 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000065ae 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000065c0 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000065d4 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000065e4 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00006600 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00006608 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00006612 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000662a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00006656 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x0000665c 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00006670 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00006680 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00006698 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066b0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066c8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000066e4 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00006700 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000671c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00006808 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00006818 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00006838 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00006860 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00006900 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x0000692c 0x00000044 Code RO 690 .text.startup.main Obj/main.o + 0x00006970 0x0000002c Code RO 708 .text.delay_nms Obj/mcu_initial.o + 0x0000699c 0x00000022 Code RO 709 .text.delay_nus Obj/mcu_initial.o + 0x000069c0 0x00000060 Code RO 713 .text.BT_CONFIG Obj/mcu_initial.o + 0x00006a20 0x00000062 Code RO 719 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00006a84 0x00000078 Code RO 720 .text.APT32F102_init Obj/mcu_initial.o + 0x00006afc 0x000000f0 Code RO 736 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00006bec 0x00000068 Code RO 737 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00006c54 0x00000068 Code RO 738 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00006cbc 0x000001ac Code RO 739 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00006e68 0x00000034 Code RO 740 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00006e9c 0x00000080 Code RO 741 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00006f1c 0x00000070 Code RO 742 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00006f8c 0x00000060 Code RO 743 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00006fec 0x00000094 Code RO 744 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00007080 0x00000060 Code RO 745 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000070e0 0x000000e8 Code RO 746 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000071c8 0x00000054 Code RO 747 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x0000721c 0x00000030 Code RO 748 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x0000724c 0x00000030 Code RO 749 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x0000727c 0x00000048 Code RO 750 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000072c4 0x00000020 Code RO 751 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x000072e4 0x0000006c Code RO 752 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00007350 0x00000034 Code RO 753 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00007384 0x0000004c Code RO 754 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000073d0 0x00000070 Code RO 755 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00007440 0x00000002 Code RO 756 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00007442 0x00000008 Code RO 758 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000744a 0x00000008 Code RO 759 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00007452 0x00000008 Code RO 760 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000745a 0x00000008 Code RO 761 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00007462 0x00000008 Code RO 762 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000746a 0x00000008 Code RO 763 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00007472 0x00000008 Code RO 764 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x0000747a 0x00000008 Code RO 765 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00007482 0x00000008 Code RO 766 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x0000748a 0x00000008 Code RO 767 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00007492 0x00000008 Code RO 768 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000749a 0x00000008 Code RO 769 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000074a4 0x00000024 Code RO 786 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000074c8 0x00000024 Code RO 787 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000074ec 0x00000024 Code RO 788 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00007510 0x00000024 Code RO 789 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00007534 0x00000006 Code RO 807 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000753a 0x00000006 Code RO 808 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00007540 0x00000188 Code RO 822 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000076c8 0x00000034 Code RO 823 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000076fc 0x00000060 Code RO 824 .text.UART0_TASK Obj/SYSTEM_uart.o + 0x0000775c 0x00000034 Code RO 825 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00007790 0x00000034 Code RO 826 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000077c4 0x00000090 Code RO 828 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00007854 0x000000c4 Code RO 829 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00007918 0x00000064 Code RO 830 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000797c 0x00000010 Code RO 831 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000798c 0x0000000c Code RO 832 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00007998 0x00000040 Code RO 834 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000079d8 0x0000005c Code RO 835 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00007a34 0x00000080 Code RO 837 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00007ab4 0x000000a0 Code RO 838 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00007b54 0x00000068 Code RO 839 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00007bbc 0x00000084 Code RO 840 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00007c40 0x0000008c Code RO 841 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x00007ccc 0x0000009c Code RO 842 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00007d68 0x00000060 Code RO 843 .text.Dbg_BT_Println Obj/SYSTEM_uart.o + 0x00007dc8 0x00000034 Code RO 861 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x00007dfc 0x00000094 Code RO 862 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x00007e90 0x00000098 Code RO 863 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00007f28 0x00000016 Code RO 881 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00007f40 0x00000150 Code RO 882 .text.EEOROM_ENERGY_ReadSet Obj/SYSTEM_eeprom.o + 0x00008090 0x00000044 Code RO 883 .text.EEOROM_ENERGY_WriteSet Obj/SYSTEM_eeprom.o + 0x000080d4 0x0000014c Code RO 884 .text.EEPROM_ENERGY_Validate Obj/SYSTEM_eeprom.o + 0x00008220 0x00000128 Code RO 885 .text.EEPROM_Default_ENERGY Obj/SYSTEM_eeprom.o + 0x00008348 0x000000b8 Code RO 886 .text.EEPROM_ReadTotalEng Obj/SYSTEM_eeprom.o + 0x00008400 0x000000ac Code RO 887 .text.EEPROM_WriteTotalEng Obj/SYSTEM_eeprom.o + 0x000084ac 0x000000d4 Code RO 891 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008580 0x00000040 Code RO 892 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085c0 0x00000038 Code RO 893 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085f8 0x00000058 Code RO 894 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008650 0x00000130 Code RO 895 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00008780 0x0000003c Code RO 913 .text.BT_Uart_Packing.part.3 Obj/SYSTEM_det_energy.o + 0x000087bc 0x00000030 Code RO 914 .text.BLV_DetEnergy_Init Obj/SYSTEM_det_energy.o + 0x000087ec 0x000000b8 Code RO 915 .text.BLV_DetEnergy_Default Obj/SYSTEM_det_energy.o + 0x000088a4 0x00000018 Code RO 916 .text.HLW8110_CheckSum Obj/SYSTEM_det_energy.o + 0x000088bc 0x00000064 Code RO 917 .text.HLW8110_WriteREG_EN Obj/SYSTEM_det_energy.o + 0x00008920 0x00000064 Code RO 918 .text.HLW8110_WriteREG_DIS Obj/SYSTEM_det_energy.o + 0x00008984 0x0000008c Code RO 919 .text.BLV_HLW8110_RWCMD_Packaging Obj/SYSTEM_det_energy.o + 0x00008a10 0x00000088 Code RO 920 .text.HLW8110_RWCMD_Send Obj/SYSTEM_det_energy.o + 0x00008a98 0x00000010 Code RO 921 .text.HLW8110_CleanSdFlag Obj/SYSTEM_det_energy.o + 0x00008aa8 0x00000018 Code RO 922 .text.Get_RevState Obj/SYSTEM_det_energy.o + 0x00008ac0 0x0000001c Code RO 923 .text.Get_SendState Obj/SYSTEM_det_energy.o + 0x00008adc 0x000001e4 Code RO 925 .text.BLV_HLW8110_SendData_Tack Obj/SYSTEM_det_energy.o + 0x00008cc0 0x0000008c Code RO 926 .text.HLW8110_Convert_CurrentRegA_Value Obj/SYSTEM_det_energy.o + 0x00008d4c 0x0000007c Code RO 927 .text.HLW8110_Convert_VoltageReg_Value Obj/SYSTEM_det_energy.o + 0x00008dc8 0x0000007c Code RO 928 .text.HLW8110_Convert_PowerReg_Value Obj/SYSTEM_det_energy.o + 0x00008e44 0x00000098 Code RO 929 .text.HLW8110_Convert_EnergyReg_Value Obj/SYSTEM_det_energy.o + 0x00008edc 0x0000025c Code RO 930 .text.HLW8110_RecvData_Processing Obj/SYSTEM_det_energy.o + 0x00009138 0x00000026 Code RO 931 .text.HLW8110_SysPara_Check Obj/SYSTEM_det_energy.o + 0x00009160 0x0000021c Code RO 932 .text.HLW8110_ReadSysPara Obj/SYSTEM_det_energy.o + 0x0000937c 0x000000c8 Code RO 933 .text.HLW8110_ReadSysCtrlPara Obj/SYSTEM_det_energy.o + 0x00009444 0x00000064 Code RO 934 .text.GetEnergy_Para Obj/SYSTEM_det_energy.o + 0x000094a8 0x00000158 Code RO 935 .text.HLW8110_ReadValue Obj/SYSTEM_det_energy.o + 0x00009600 0x00000040 Code RO 936 .text.BLV_HLW8110_Tack Obj/SYSTEM_det_energy.o + 0x00009640 0x0000000c Code RO 937 .text.BT_Uart_Packing Obj/SYSTEM_det_energy.o + 0x0000964c 0x00000104 Code RO 938 .text.BT_UART_Print Obj/SYSTEM_det_energy.o + 0x00009750 0x000000ec Code RO 939 .text.BLV_Energy_ActiveRep_Packing Obj/SYSTEM_det_energy.o + 0x0000983c 0x000000b0 Code RO 940 .text.BLV_ElectricPara_Processing Obj/SYSTEM_det_energy.o + 0x000098ec 0x00000014 Code RO 941 .text.BLV_EngDetect_Tack Obj/SYSTEM_det_energy.o + 0x00009900 0x000000ec Code RO 942 .text.BLV_Energy_PassiveRep_Packing Obj/SYSTEM_det_energy.o + 0x000099ec 0x000000a0 Code RO 943 .text.BLV_Energy_SetTime_Packing Obj/SYSTEM_det_energy.o + 0x00009a8c 0x00000098 Code RO 944 .text.BLV_Energy_QueryVersion_Packing Obj/SYSTEM_det_energy.o + 0x00009b24 0x00000030 Code RO 945 .text.SetCalibFactor_Switch Obj/SYSTEM_det_energy.o + 0x00009b54 0x00000084 Code RO 946 .text.BLV_Energy_SetCalibFactor Obj/SYSTEM_det_energy.o + 0x00009bd8 0x0000007c Code RO 947 .text.BLV_Energy_SetCalibFactor_2 Obj/SYSTEM_det_energy.o + 0x00009c54 0x00000160 Code RO 948 .text.HLW_485Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009db4 0x00000118 Code RO 949 .text.BT_Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009ecc 0x000000c0 Code RO 968 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x00009f8c 0x00000024 Code RO 969 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x00009fb0 0x0000006c Code RO 971 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x0000a01c 0x00000014 Code RO 975 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x0000a030 0x0000021c Code RO 976 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x0000a24c 0x00000058 Code RO 1013 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a2a4 0x00000088 Code RO 1017 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a32c 0x00000028 Code RO 1018 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x0000a354 0x00000020 Code RO 1020 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x0000a374 0x00000180 Code RO 1021 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a4f4 0x0000011c Code RO 1022 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x0000a610 0x000001d0 Code RO 1023 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x0000a7e0 0x00000054 Code RO 1024 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a834 0x00000078 Code RO 1025 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a8ac 0x00000284 Code RO 1047 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000ab30 0x00000017 Data RO 950 .rodata Obj/SYSTEM_det_energy.o + 0x0000ab47 0x00000001 PAD + 0x0000ab48 0x00000030 Data RO 1070 .rodata pow.o + 0x0000ab78 0x00000010 Data RO 1182 .rodata _thenan_sf.o + 0x0000ab88 0x00000014 Data RO 1259 .rodata _thenan_df.o + 0x0000ab9c 0x00000100 Data RO 1335 .rodata _clz.o + 0x0000ac9c 0x00000020 Data RO 1532 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x0000acbc 0x00000240 Data RO 1654 .rodata strerror.o + 0x0000aefc 0x00000021 Data RO 691 .rodata.str1.1 Obj/main.o + 0x0000af1d 0x000000a4 Data RO 844 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x0000afc1 0x00000023 Data RO 864 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x0000afe4 0x000003b6 Data RO 896 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000b39a 0x000003e7 Data RO 951 .rodata.str1.1 Obj/SYSTEM_det_energy.o + 0x0000b781 0x000002fb Data RO 980 .rodata.str1.1 Obj/SYSTEM_Bootload_fun.o + 0x0000ba7c 0x00000022 Data RO 1533 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x0000ba9e 0x00000008 Data RO 1619 .rodata.str1.1 __dtostr.o + 0x0000baa6 0x00000787 Data RO 1655 .rodata.str1.1 strerror.o + 0x0000c22d 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000af8, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 784 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 1004 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x00000020 Data RW 692 .textcsky.VinFlash Obj/main.o + 0x200000bc 0x0000000c Zero RW 735 .bss Obj/mcu_interrupt.o + 0x200000c8 0x000000a0 Zero RW 821 .bss Obj/SYSTEM_uart.o + 0x20000168 0x00000004 Zero RW 860 .bss Obj/SYSTEM_dip_switch.o + 0x2000016c 0x00000014 Zero RW 912 .bss Obj/SYSTEM_det_energy.o + 0x20000180 0x00000086 Zero RW 704 COMMON Obj/main.o + 0x20000206 0x00000002 PAD + 0x20000208 0x00000030 Zero RW 782 COMMON Obj/mcu_interrupt.o + 0x20000238 0x00000244 Zero RW 857 COMMON Obj/SYSTEM_uart.o + 0x2000047c 0x00000014 Zero RW 877 COMMON Obj/SYSTEM_dip_switch.o + 0x20000490 0x00000060 Zero RW 909 COMMON Obj/SYSTEM_eeprom.o + 0x200004f0 0x000000fc Zero RW 964 COMMON Obj/SYSTEM_det_energy.o + 0x200005ec 0x0000023c Zero RW 993 COMMON Obj/SYSTEM_Bootload_fun.o + 0x20000828 0x000002c8 Zero RW 1043 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000af0 0x00000008 Zero RW 1609 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 291 Obj/arch_crt0.o + 56 0 0 0 825 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 872 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 932 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13549 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 438 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 68 33 32 134 12757 Obj/main.o + 392 0 0 0 16599 Obj/mcu_initial.o + 2470 0 0 60 15410 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 2184 164 0 740 17321 Obj/SYSTEM_uart.o + 352 35 0 24 11554 Obj/SYSTEM_dip_switch.o + 2134 950 0 96 17219 Obj/SYSTEM_eeprom.o + 5962 1022 0 272 22397 Obj/SYSTEM_det_energy.o + 896 763 0 572 16797 Obj/SYSTEM_Bootload_fun.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 17780 2967 136 1898 272409 Object Totals + 22 4 3 2 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 26 0 0 0 0 _csky_case_uhi.o + 46 0 0 0 0 _fixunssfsi.o + 56 0 0 0 0 _fixunsdfsi.o + 426 0 0 0 0 _addsub_sf.o + 280 0 0 0 0 _mul_sf.o + 188 0 0 0 0 _div_sf.o + 54 0 0 0 0 _ne_sf.o + 56 0 0 0 0 _ge_sf.o + 100 0 0 0 0 _si_to_sf.o + 84 0 0 0 0 _sf_to_si.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 40 0 0 0 0 _make_df.o + 48 0 0 0 0 _df_to_sf.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 184 0 0 0 0 _pack_sf.o + 132 0 0 0 0 _unpack_sf.o + 120 0 0 0 0 _fpcmp_parts_sf.o + 22 0 0 0 0 _make_sf.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 6882 292 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 38 0 0 0 0 strncmp.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3598 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 33562 5888 188 2620 297423 Grand Totals + 33562 5888 188 2620 297423 Elf Image Totals + 33562 5888 188 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 39450 ( 38.53kB) +Total RW Size (RW Data + ZI Data) 2808 ( 2.74kB) +Total ROM Size (Code + RO Data + RW Data) 39638 ( 38.71kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20250830.asm b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20250830.asm new file mode 100644 index 0000000..c1f858c --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20250830.asm @@ -0,0 +1,20160 @@ + +.//Obj/BLV_CS_AC100_V03_20250830.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00002800 : + 2800: 0000290c .long 0x0000290c + 2804: 0000748a .long 0x0000748a + 2808: 0000747a .long 0x0000747a + 280c: 00002984 .long 0x00002984 + 2810: 00007482 .long 0x00007482 + 2814: 00007440 .long 0x00007440 + 2818: 00002984 .long 0x00002984 + 281c: 00007472 .long 0x00007472 + 2820: 0000746a .long 0x0000746a + 2824: 00002984 .long 0x00002984 + 2828: 00002984 .long 0x00002984 + 282c: 00002984 .long 0x00002984 + 2830: 00002984 .long 0x00002984 + 2834: 00002984 .long 0x00002984 + 2838: 00002984 .long 0x00002984 + 283c: 00002984 .long 0x00002984 + 2840: 00007462 .long 0x00007462 + 2844: 0000745a .long 0x0000745a + 2848: 00007452 .long 0x00007452 + 284c: 0000744a .long 0x0000744a + 2850: 00002984 .long 0x00002984 + 2854: 00002984 .long 0x00002984 + 2858: 00002984 .long 0x00002984 + 285c: 00002984 .long 0x00002984 + 2860: 00002984 .long 0x00002984 + 2864: 00002984 .long 0x00002984 + 2868: 00002984 .long 0x00002984 + 286c: 00002984 .long 0x00002984 + 2870: 00002984 .long 0x00002984 + 2874: 00002984 .long 0x00002984 + 2878: 00002984 .long 0x00002984 + 287c: 00007442 .long 0x00007442 + 2880: 0000a87c .long 0x0000a87c + 2884: 00006afc .long 0x00006afc + 2888: 00006bec .long 0x00006bec + 288c: 00006c54 .long 0x00006c54 + 2890: 00006cbc .long 0x00006cbc + 2894: 00002984 .long 0x00002984 + 2898: 00006e68 .long 0x00006e68 + 289c: 0000721c .long 0x0000721c + 28a0: 0000724c .long 0x0000724c + 28a4: 00006e9c .long 0x00006e9c + 28a8: 00002984 .long 0x00002984 + 28ac: 00002984 .long 0x00002984 + 28b0: 00006f1c .long 0x00006f1c + 28b4: 00006f8c .long 0x00006f8c + 28b8: 00006fec .long 0x00006fec + 28bc: 00007080 .long 0x00007080 + 28c0: 00002984 .long 0x00002984 + 28c4: 0000749a .long 0x0000749a + 28c8: 00002984 .long 0x00002984 + 28cc: 000070e0 .long 0x000070e0 + 28d0: 000071c8 .long 0x000071c8 + 28d4: 0000727c .long 0x0000727c + 28d8: 000072c4 .long 0x000072c4 + 28dc: 000072e4 .long 0x000072e4 + 28e0: 00007492 .long 0x00007492 + 28e4: 0000a2ec .long 0x0000a2ec + 28e8: 00007350 .long 0x00007350 + 28ec: 00002984 .long 0x00002984 + 28f0: 00007384 .long 0x00007384 + 28f4: 000073d0 .long 0x000073d0 + 28f8: 00002984 .long 0x00002984 + 28fc: 00002984 .long 0x00002984 + 2900: 55aa0005 .long 0x55aa0005 + ... + +0000290c <__start>: +// .long __start +__start: + + + //initialize all registers + movi r0, 0 + 290c: 3000 movi r0, 0 + movi r1, 0 + 290e: 3100 movi r1, 0 + movi r2, 0 + 2910: 3200 movi r2, 0 + movi r3, 0 + 2912: 3300 movi r3, 0 + movi r4, 0 + 2914: 3400 movi r4, 0 + movi r5, 0 + 2916: 3500 movi r5, 0 + movi r6, 0 + 2918: 3600 movi r6, 0 + movi r7, 0 + 291a: 3700 movi r7, 0 + //movi r13, 0 + //movi r14, 0 + //movi r15, 0 + +//set VBR + lrw r2, vector_table + 291c: 105b lrw r2, 0x2800 // 2988 + mtcr r2, cr<1,0> + 291e: c0026421 mtcr r2, cr<1, 0> + +//enable EE bit of psr + mfcr r2, cr<0,0> + 2922: c0006022 mfcr r2, cr<0, 0> + bseti r2, r2, 8 + 2926: 3aa8 bseti r2, 8 + mtcr r2, cr<0,0> + 2928: 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 + 292c: 1038 lrw r1, 0xe000ef90 // 298c + movi r2, 0x0 + 292e: 3200 movi r2, 0 + st.w r2, (r1, 0x0) + 2930: b140 st.w r2, (r1, 0x0) + + + +//initialize kernel stack + lrw r7, __kernel_stack + 2932: 10f8 lrw r7, 0x20000ff8 // 2990 + mov r14,r7 + 2934: 6f9f mov r14, r7 + subi r6,r7,0x4 + 2936: 5fcf subi r6, r7, 4 + + //lrw r3, 0x40 + lrw r3, 0x04 + 2938: 3304 movi r3, 4 + + subu r4, r7, r3 + 293a: 5f8d subu r4, r7, r3 + lrw r5, 0x0 + 293c: 3500 movi r5, 0 + +0000293e : +INIT_KERLE_STACK: + addi r4, 0x4 + 293e: 2403 addi r4, 4 + st.w r5, (r4) + 2940: b4a0 st.w r5, (r4, 0x0) + //cmphs r7, r4 + cmphs r6, r4 + 2942: 6518 cmphs r6, r4 + bt INIT_KERLE_STACK + 2944: 0bfd bt 0x293e // 293e + +00002946 <__to_main>: + +__to_main: + lrw r0,__main + 2946: 1014 lrw r0, 0x5e78 // 2994 + jsr r0 + 2948: 7bc1 jsr r0 + mov r0, r0 + 294a: 6c03 mov r0, r0 + mov r0, r0 + 294c: 6c03 mov r0, r0 + + + + lrw r15, __exit + 294e: ea8f0013 lrw r15, 0x2960 // 2998 + lrw r0,main + 2952: 1013 lrw r0, 0x692c // 299c + jmp r0 + 2954: 7800 jmp r0 + mov r0, r0 + 2956: 6c03 mov r0, r0 + mov r0, r0 + 2958: 6c03 mov r0, r0 + mov r0, r0 + 295a: 6c03 mov r0, r0 + mov r0, r0 + 295c: 6c03 mov r0, r0 + mov r0, r0 + 295e: 6c03 mov r0, r0 + +00002960 <__exit>: + +.export __exit +__exit: + + lrw r4, 0x20003000 + 2960: 1090 lrw r4, 0x20003000 // 29a0 + //lrw r5, 0x0 + mov r5, r0 + 2962: 6d43 mov r5, r0 + st.w r5, (r4) + 2964: b4a0 st.w r5, (r4, 0x0) + + mfcr r1, cr<0,0> + 2966: c0006021 mfcr r1, cr<0, 0> + lrw r1, 0xFFFF + 296a: 102f lrw r1, 0xffff // 29a4 + mtcr r1, cr<11,0> + 296c: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xFFF + 2970: 102e lrw r1, 0xfff // 29a8 + movi r0, 0x0 + 2972: 3000 movi r0, 0 + st r1, (r0) + 2974: b020 st.w r1, (r0, 0x0) + +00002976 <__fail>: + +.export __fail +__fail: + lrw r1, 0xEEEE + 2976: 102e lrw r1, 0xeeee // 29ac + mtcr r1, cr<11,0> + 2978: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xEEE + 297c: 102d lrw r1, 0xeee // 29b0 + movi r0, 0x0 + 297e: 3000 movi r0, 0 + st r1, (r0) + 2980: b020 st.w r1, (r0, 0x0) + +00002982 <__dummy>: + +__dummy: + br __fail + 2982: 07fa br 0x2976 // 2976 <__fail> + +00002984 : + +.export DummyHandler +DummyHandler: + br __fail + 2984: 07f9 br 0x2976 // 2976 <__fail> + 2986: 0000 .short 0x0000 + 2988: 00002800 .long 0x00002800 + 298c: e000ef90 .long 0xe000ef90 + 2990: 20000ff8 .long 0x20000ff8 + 2994: 00005e78 .long 0x00005e78 + 2998: 00002960 .long 0x00002960 + 299c: 0000692c .long 0x0000692c + 29a0: 20003000 .long 0x20003000 + 29a4: 0000ffff .long 0x0000ffff + 29a8: 00000fff .long 0x00000fff + 29ac: 0000eeee .long 0x0000eeee + 29b0: 00000eee .long 0x00000eee + +000029b4 <__GI_pow>: + 29b4: 14d4 push r4-r7, r15 + 29b6: 142d subi r14, r14, 52 + 29b8: b860 st.w r3, (r14, 0x0) + 29ba: 4361 lsli r3, r3, 1 + 29bc: 4b81 lsri r4, r3, 1 + 29be: b842 st.w r2, (r14, 0x8) + 29c0: 6c90 or r2, r4 + 29c2: 3a40 cmpnei r2, 0 + 29c4: 6dc3 mov r7, r0 + 29c6: 6d87 mov r6, r1 + 29c8: 0803 bt 0x29ce // 29ce <__GI_pow+0x1a> + 29ca: e8000462 br 0x328e // 328e <__GI_pow+0x8da> + 29ce: 41a1 lsli r5, r1, 1 + 29d0: 4da1 lsri r5, r5, 1 + 29d2: 0055 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 29d4: 6549 cmplt r2, r5 + 29d6: 080c bt 0x29ee // 29ee <__GI_pow+0x3a> + 29d8: 6496 cmpne r5, r2 + 29da: 0803 bt 0x29e0 // 29e0 <__GI_pow+0x2c> + 29dc: 3840 cmpnei r0, 0 + 29de: 0808 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e0: 6509 cmplt r2, r4 + 29e2: 0806 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e4: 6492 cmpne r4, r2 + 29e6: 080e bt 0x2a02 // 2a02 <__GI_pow+0x4e> + 29e8: 9802 ld.w r0, (r14, 0x8) + 29ea: 3840 cmpnei r0, 0 + 29ec: 0c0b bf 0x2a02 // 2a02 <__GI_pow+0x4e> + 29ee: 9842 ld.w r2, (r14, 0x8) + 29f0: 9860 ld.w r3, (r14, 0x0) + 29f2: 6c1f mov r0, r7 + 29f4: 6c5b mov r1, r6 + 29f6: e000099f bsr 0x3d34 // 3d34 <__adddf3> + 29fa: 6d03 mov r4, r0 + 29fc: 6c13 mov r0, r4 + 29fe: 140d addi r14, r14, 52 + 2a00: 1494 pop r4-r7, r15 + 2a02: 3edf btsti r6, 31 + 2a04: 0c51 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a06: 0121 lrw r1, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2a08: 2900 subi r1, 1 + 2a0a: 6505 cmplt r1, r4 + 2a0c: 084b bt 0x2aa2 // 2aa2 <__GI_pow+0xee> + 2a0e: 0162 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a10: 2b00 subi r3, 1 + 2a12: 650d cmplt r3, r4 + 2a14: 0c49 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a16: 5454 asri r2, r4, 20 + 2a18: 0104 lrw r0, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2a1a: 6080 addu r2, r0 + 2a1c: 3a34 cmplti r2, 21 + 2a1e: 0821 bt 0x2a60 // 2a60 <__GI_pow+0xac> + 2a20: 3334 movi r3, 52 + 2a22: 60ca subu r3, r2 + 2a24: 9842 ld.w r2, (r14, 0x8) + 2a26: 708d lsr r2, r3 + 2a28: 6c4b mov r1, r2 + 2a2a: 704c lsl r1, r3 + 2a2c: 9802 ld.w r0, (r14, 0x8) + 2a2e: 6442 cmpne r0, r1 + 2a30: 083b bt 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a32: 3101 movi r1, 1 + 2a34: 6884 and r2, r1 + 2a36: 3302 movi r3, 2 + 2a38: 5b49 subu r2, r3, r2 + 2a3a: 9802 ld.w r0, (r14, 0x8) + 2a3c: 3840 cmpnei r0, 0 + 2a3e: b841 st.w r2, (r14, 0x4) + 2a40: 0862 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2a42: 0151 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 2a44: 6492 cmpne r4, r2 + 2a46: 081f bt 0x2a84 // 2a84 <__GI_pow+0xd0> + 2a48: 012f lrw r1, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2a4a: 6054 addu r1, r5 + 2a4c: 6dc4 or r7, r1 + 2a4e: 3f40 cmpnei r7, 0 + 2a50: 082d bt 0x2aaa // 2aaa <__GI_pow+0xf6> + 2a52: 9860 ld.w r3, (r14, 0x0) + 2a54: 3200 movi r2, 0 + 2a56: 6c4f mov r1, r3 + 2a58: 3000 movi r0, 0 + 2a5a: e0000985 bsr 0x3d64 // 3d64 <__subdf3> + 2a5e: 07ce br 0x29fa // 29fa <__GI_pow+0x46> + 2a60: 9822 ld.w r1, (r14, 0x8) + 2a62: 3940 cmpnei r1, 0 + 2a64: 084e bt 0x2b00 // 2b00 <__GI_pow+0x14c> + 2a66: 3114 movi r1, 20 + 2a68: 604a subu r1, r2 + 2a6a: 6c93 mov r2, r4 + 2a6c: 7086 asr r2, r1 + 2a6e: 6c0b mov r0, r2 + 2a70: 7004 lsl r0, r1 + 2a72: 6412 cmpne r4, r0 + 2a74: 0c03 bf 0x2a7a // 2a7a <__GI_pow+0xc6> + 2a76: e8000471 br 0x3358 // 3358 <__GI_pow+0x9a4> + 2a7a: 3101 movi r1, 1 + 2a7c: 6884 and r2, r1 + 2a7e: 3002 movi r0, 2 + 2a80: 5869 subu r3, r0, r2 + 2a82: b861 st.w r3, (r14, 0x4) + 2a84: 0220 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a86: 6452 cmpne r4, r1 + 2a88: 0825 bt 0x2ad2 // 2ad2 <__GI_pow+0x11e> + 2a8a: 9880 ld.w r4, (r14, 0x0) + 2a8c: 3cdf btsti r4, 31 + 2a8e: 0803 bt 0x2a94 // 2a94 <__GI_pow+0xe0> + 2a90: e8000407 br 0x329e // 329e <__GI_pow+0x8ea> + 2a94: 6c9f mov r2, r7 + 2a96: 6cdb mov r3, r6 + 2a98: 3000 movi r0, 0 + 2a9a: 0225 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a9c: e0000a9a bsr 0x3fd0 // 3fd0 <__divdf3> + 2aa0: 07ad br 0x29fa // 29fa <__GI_pow+0x46> + 2aa2: 3202 movi r2, 2 + 2aa4: 07cb br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aa6: 3200 movi r2, 0 + 2aa8: 07c9 br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aaa: 0269 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2aac: 2b00 subi r3, 1 + 2aae: 654d cmplt r3, r5 + 2ab0: 9800 ld.w r0, (r14, 0x0) + 2ab2: 0c08 bf 0x2ac2 // 2ac2 <__GI_pow+0x10e> + 2ab4: 38df btsti r0, 31 + 2ab6: 0803 bt 0x2abc // 2abc <__GI_pow+0x108> + 2ab8: e80003ef br 0x3296 // 3296 <__GI_pow+0x8e2> + 2abc: 3400 movi r4, 0 + 2abe: 3100 movi r1, 0 + 2ac0: 079e br 0x29fc // 29fc <__GI_pow+0x48> + 2ac2: 38df btsti r0, 31 + 2ac4: 0ffc bf 0x2abc // 2abc <__GI_pow+0x108> + 2ac6: 3400 movi r4, 0 + 2ac8: 6c43 mov r1, r0 + 2aca: 3280 movi r2, 128 + 2acc: 4278 lsli r3, r2, 24 + 2ace: 604c addu r1, r3 + 2ad0: 0796 br 0x29fc // 29fc <__GI_pow+0x48> + 2ad2: 3380 movi r3, 128 + 2ad4: 4317 lsli r0, r3, 23 + 2ad6: 9840 ld.w r2, (r14, 0x0) + 2ad8: 640a cmpne r2, r0 + 2ada: 0808 bt 0x2aea // 2aea <__GI_pow+0x136> + 2adc: 6c9f mov r2, r7 + 2ade: 6cdb mov r3, r6 + 2ae0: 6c1f mov r0, r7 + 2ae2: 6c5b mov r1, r6 + 2ae4: e000095c bsr 0x3d9c // 3d9c <__muldf3> + 2ae8: 0789 br 0x29fa // 29fa <__GI_pow+0x46> + 2aea: 0276 lrw r3, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2aec: 9820 ld.w r1, (r14, 0x0) + 2aee: 64c6 cmpne r1, r3 + 2af0: 080a bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af2: 3edf btsti r6, 31 + 2af4: 0808 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af6: 6c1f mov r0, r7 + 2af8: 6c5b mov r1, r6 + 2afa: e0000445 bsr 0x3384 // 3384 <__GI_sqrt> + 2afe: 077e br 0x29fa // 29fa <__GI_pow+0x46> + 2b00: 3300 movi r3, 0 + 2b02: b861 st.w r3, (r14, 0x4) + 2b04: 6c1f mov r0, r7 + 2b06: 6c5b mov r1, r6 + 2b08: b883 st.w r4, (r14, 0xc) + 2b0a: e000042a bsr 0x335e // 335e <__GI_fabs> + 2b0e: 3f40 cmpnei r7, 0 + 2b10: 6d03 mov r4, r0 + 2b12: 9863 ld.w r3, (r14, 0xc) + 2b14: 0826 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b16: 3d40 cmpnei r5, 0 + 2b18: 0c05 bf 0x2b22 // 2b22 <__GI_pow+0x16e> + 2b1a: 4642 lsli r2, r6, 2 + 2b1c: 0302 lrw r0, 0xffc00000 // 2d90 <__GI_pow+0x3dc> + 2b1e: 640a cmpne r2, r0 + 2b20: 0820 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b22: 9840 ld.w r2, (r14, 0x0) + 2b24: 3adf btsti r2, 31 + 2b26: 0c08 bf 0x2b36 // 2b36 <__GI_pow+0x182> + 2b28: 6c93 mov r2, r4 + 2b2a: 6cc7 mov r3, r1 + 2b2c: 3000 movi r0, 0 + 2b2e: 032a lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b30: e0000a50 bsr 0x3fd0 // 3fd0 <__divdf3> + 2b34: 6d03 mov r4, r0 + 2b36: 3edf btsti r6, 31 + 2b38: 0f62 bf 0x29fc // 29fc <__GI_pow+0x48> + 2b3a: 036b lrw r3, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2b3c: 614c addu r5, r3 + 2b3e: 9801 ld.w r0, (r14, 0x4) + 2b40: 6d40 or r5, r0 + 2b42: 3d40 cmpnei r5, 0 + 2b44: 080a bt 0x2b58 // 2b58 <__GI_pow+0x1a4> + 2b46: 6c93 mov r2, r4 + 2b48: 6cc7 mov r3, r1 + 2b4a: 6c0b mov r0, r2 + 2b4c: 6c4f mov r1, r3 + 2b4e: e000090b bsr 0x3d64 // 3d64 <__subdf3> + 2b52: 6c83 mov r2, r0 + 2b54: 6cc7 mov r3, r1 + 2b56: 07a3 br 0x2a9c // 2a9c <__GI_pow+0xe8> + 2b58: 9841 ld.w r2, (r14, 0x4) + 2b5a: 3a41 cmpnei r2, 1 + 2b5c: 0b50 bt 0x29fc // 29fc <__GI_pow+0x48> + 2b5e: 07b6 br 0x2aca // 2aca <__GI_pow+0x116> + 2b60: 4e5f lsri r2, r6, 31 + 2b62: 2a00 subi r2, 1 + 2b64: b847 st.w r2, (r14, 0x1c) + 2b66: 9807 ld.w r0, (r14, 0x1c) + 2b68: 9841 ld.w r2, (r14, 0x4) + 2b6a: 6c80 or r2, r0 + 2b6c: 3a40 cmpnei r2, 0 + 2b6e: 0804 bt 0x2b76 // 2b76 <__GI_pow+0x1c2> + 2b70: 6c9f mov r2, r7 + 2b72: 6cdb mov r3, r6 + 2b74: 07eb br 0x2b4a // 2b4a <__GI_pow+0x196> + 2b76: 0357 lrw r2, 0x41e00000 // 2d94 <__GI_pow+0x3e0> + 2b78: 64c9 cmplt r2, r3 + 2b7a: 0cbf bf 0x2cf8 // 2cf8 <__GI_pow+0x344> + 2b7c: 0358 lrw r2, 0x43f00000 // 2d98 <__GI_pow+0x3e4> + 2b7e: 64c9 cmplt r2, r3 + 2b80: 037f lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b82: 0c0c bf 0x2b9a // 2b9a <__GI_pow+0x1e6> + 2b84: 2b00 subi r3, 1 + 2b86: 654d cmplt r3, r5 + 2b88: 080f bt 0x2ba6 // 2ba6 <__GI_pow+0x1f2> + 2b8a: 9820 ld.w r1, (r14, 0x0) + 2b8c: 39df btsti r1, 31 + 2b8e: 0f97 bf 0x2abc // 2abc <__GI_pow+0x108> + 2b90: 035c lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2b92: 037b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2b94: 6c0b mov r0, r2 + 2b96: 6c4f mov r1, r3 + 2b98: 07a6 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2b9a: 2b01 subi r3, 2 + 2b9c: 654d cmplt r3, r5 + 2b9e: 0ff6 bf 0x2b8a // 2b8a <__GI_pow+0x1d6> + 2ba0: 1318 lrw r0, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2ba2: 6541 cmplt r0, r5 + 2ba4: 0c05 bf 0x2bae // 2bae <__GI_pow+0x1fa> + 2ba6: 9800 ld.w r0, (r14, 0x0) + 2ba8: 3820 cmplti r0, 1 + 2baa: 0ff3 bf 0x2b90 // 2b90 <__GI_pow+0x1dc> + 2bac: 0788 br 0x2abc // 2abc <__GI_pow+0x108> + 2bae: 3200 movi r2, 0 + 2bb0: 1374 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2bb2: 6c1f mov r0, r7 + 2bb4: 6c5b mov r1, r6 + 2bb6: 36c0 movi r6, 192 + 2bb8: e00008d6 bsr 0x3d64 // 3d64 <__subdf3> + 2bbc: 4657 lsli r2, r6, 23 + 2bbe: 137a lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2bc0: 6d43 mov r5, r0 + 2bc2: 6d07 mov r4, r1 + 2bc4: e00008ec bsr 0x3d9c // 3d9c <__muldf3> + 2bc8: 6dc3 mov r7, r0 + 2bca: 6d87 mov r6, r1 + 2bcc: 1357 lrw r2, 0xf85ddf44 // 2da8 <__GI_pow+0x3f4> + 2bce: 1378 lrw r3, 0x3e54ae0b // 2dac <__GI_pow+0x3f8> + 2bd0: 6c17 mov r0, r5 + 2bd2: 6c53 mov r1, r4 + 2bd4: e00008e4 bsr 0x3d9c // 3d9c <__muldf3> + 2bd8: b803 st.w r0, (r14, 0xc) + 2bda: b824 st.w r1, (r14, 0x10) + 2bdc: 3200 movi r2, 0 + 2bde: 1375 lrw r3, 0x3fd00000 // 2db0 <__GI_pow+0x3fc> + 2be0: 6c17 mov r0, r5 + 2be2: 6c53 mov r1, r4 + 2be4: e00008dc bsr 0x3d9c // 3d9c <__muldf3> + 2be8: 6c83 mov r2, r0 + 2bea: 6cc7 mov r3, r1 + 2bec: 1312 lrw r0, 0x55555555 // 2db4 <__GI_pow+0x400> + 2bee: 1333 lrw r1, 0x3fd55555 // 2db8 <__GI_pow+0x404> + 2bf0: e00008ba bsr 0x3d64 // 3d64 <__subdf3> + 2bf4: 6c97 mov r2, r5 + 2bf6: 6cd3 mov r3, r4 + 2bf8: e00008d2 bsr 0x3d9c // 3d9c <__muldf3> + 2bfc: 6c83 mov r2, r0 + 2bfe: 6cc7 mov r3, r1 + 2c00: 3000 movi r0, 0 + 2c02: 1323 lrw r1, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2c04: e00008b0 bsr 0x3d64 // 3d64 <__subdf3> + 2c08: b805 st.w r0, (r14, 0x14) + 2c0a: 6c97 mov r2, r5 + 2c0c: 6cd3 mov r3, r4 + 2c0e: b826 st.w r1, (r14, 0x18) + 2c10: 6c17 mov r0, r5 + 2c12: 6c53 mov r1, r4 + 2c14: e00008c4 bsr 0x3d9c // 3d9c <__muldf3> + 2c18: 6c83 mov r2, r0 + 2c1a: 6cc7 mov r3, r1 + 2c1c: 9805 ld.w r0, (r14, 0x14) + 2c1e: 9826 ld.w r1, (r14, 0x18) + 2c20: e00008be bsr 0x3d9c // 3d9c <__muldf3> + 2c24: 1346 lrw r2, 0x652b82fe // 2dbc <__GI_pow+0x408> + 2c26: 1360 lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2c28: e00008ba bsr 0x3d9c // 3d9c <__muldf3> + 2c2c: 6c83 mov r2, r0 + 2c2e: 6cc7 mov r3, r1 + 2c30: 9803 ld.w r0, (r14, 0xc) + 2c32: 9824 ld.w r1, (r14, 0x10) + 2c34: e0000898 bsr 0x3d64 // 3d64 <__subdf3> + 2c38: 6c83 mov r2, r0 + 2c3a: 6cc7 mov r3, r1 + 2c3c: 6d43 mov r5, r0 + 2c3e: 6d07 mov r4, r1 + 2c40: 6c1f mov r0, r7 + 2c42: 6c5b mov r1, r6 + 2c44: e0000878 bsr 0x3d34 // 3d34 <__adddf3> + 2c48: 6c9f mov r2, r7 + 2c4a: 6cdb mov r3, r6 + 2c4c: 3000 movi r0, 0 + 2c4e: b823 st.w r1, (r14, 0xc) + 2c50: e000088a bsr 0x3d64 // 3d64 <__subdf3> + 2c54: 6c83 mov r2, r0 + 2c56: 6cc7 mov r3, r1 + 2c58: 6c17 mov r0, r5 + 2c5a: 6c53 mov r1, r4 + 2c5c: e0000884 bsr 0x3d64 // 3d64 <__subdf3> + 2c60: 6d07 mov r4, r1 + 2c62: 9821 ld.w r1, (r14, 0x4) + 2c64: 2900 subi r1, 1 + 2c66: 9847 ld.w r2, (r14, 0x1c) + 2c68: 6c48 or r1, r2 + 2c6a: 3940 cmpnei r1, 0 + 2c6c: 6d43 mov r5, r0 + 2c6e: 0c02 bf 0x2c72 // 2c72 <__GI_pow+0x2be> + 2c70: 05f0 br 0x3050 // 3050 <__GI_pow+0x69c> + 2c72: 1274 lrw r3, 0xbff00000 // 2dc0 <__GI_pow+0x40c> + 2c74: b861 st.w r3, (r14, 0x4) + 2c76: 9860 ld.w r3, (r14, 0x0) + 2c78: 3200 movi r2, 0 + 2c7a: 9802 ld.w r0, (r14, 0x8) + 2c7c: 6c4f mov r1, r3 + 2c7e: e0000873 bsr 0x3d64 // 3d64 <__subdf3> + 2c82: 9863 ld.w r3, (r14, 0xc) + 2c84: 3200 movi r2, 0 + 2c86: e000088b bsr 0x3d9c // 3d9c <__muldf3> + 2c8a: 6dc3 mov r7, r0 + 2c8c: 6d87 mov r6, r1 + 2c8e: 9842 ld.w r2, (r14, 0x8) + 2c90: 9860 ld.w r3, (r14, 0x0) + 2c92: 6c17 mov r0, r5 + 2c94: 6c53 mov r1, r4 + 2c96: e0000883 bsr 0x3d9c // 3d9c <__muldf3> + 2c9a: 6c83 mov r2, r0 + 2c9c: 6cc7 mov r3, r1 + 2c9e: 6c1f mov r0, r7 + 2ca0: 6c5b mov r1, r6 + 2ca2: e0000849 bsr 0x3d34 // 3d34 <__adddf3> + 2ca6: 6dc3 mov r7, r0 + 2ca8: 9860 ld.w r3, (r14, 0x0) + 2caa: 6d87 mov r6, r1 + 2cac: 3200 movi r2, 0 + 2cae: 9823 ld.w r1, (r14, 0xc) + 2cb0: 3000 movi r0, 0 + 2cb2: e0000875 bsr 0x3d9c // 3d9c <__muldf3> + 2cb6: b802 st.w r0, (r14, 0x8) + 2cb8: b803 st.w r0, (r14, 0xc) + 2cba: b824 st.w r1, (r14, 0x10) + 2cbc: 6c83 mov r2, r0 + 2cbe: 6cc7 mov r3, r1 + 2cc0: 6d47 mov r5, r1 + 2cc2: 6c1f mov r0, r7 + 2cc4: 6c5b mov r1, r6 + 2cc6: e0000837 bsr 0x3d34 // 3d34 <__adddf3> + 2cca: 6d07 mov r4, r1 + 2ccc: 113e lrw r1, 0x40900000 // 2dc4 <__GI_pow+0x410> + 2cce: 2900 subi r1, 1 + 2cd0: 6505 cmplt r1, r4 + 2cd2: b800 st.w r0, (r14, 0x0) + 2cd4: 0803 bt 0x2cda // 2cda <__GI_pow+0x326> + 2cd6: e80002b3 br 0x323c // 323c <__GI_pow+0x888> + 2cda: 117c lrw r3, 0xbf700000 // 2dc8 <__GI_pow+0x414> + 2cdc: 60d0 addu r3, r4 + 2cde: 6cc0 or r3, r0 + 2ce0: 3b40 cmpnei r3, 0 + 2ce2: 0802 bt 0x2ce6 // 2ce6 <__GI_pow+0x332> + 2ce4: 05b8 br 0x3054 // 3054 <__GI_pow+0x6a0> + 2ce6: 114e lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2ce8: 116e lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cea: 3000 movi r0, 0 + 2cec: 9821 ld.w r1, (r14, 0x4) + 2cee: e0000857 bsr 0x3d9c // 3d9c <__muldf3> + 2cf2: 114b lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2cf4: 116b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cf6: 06f7 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2cf8: 11d5 lrw r6, 0xfffff // 2dcc <__GI_pow+0x418> + 2cfa: 6559 cmplt r6, r5 + 2cfc: 09a6 bt 0x3048 // 3048 <__GI_pow+0x694> + 2cfe: 6c13 mov r0, r4 + 2d00: 3200 movi r2, 0 + 2d02: 107f lrw r3, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2d04: e000084c bsr 0x3d9c // 3d9c <__muldf3> + 2d08: 3700 movi r7, 0 + 2d0a: 6d03 mov r4, r0 + 2d0c: 6d47 mov r5, r1 + 2d0e: 2f34 subi r7, 53 + 2d10: 5514 asri r0, r5, 20 + 2d12: 103d lrw r1, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2d14: 45ac lsli r5, r5, 12 + 2d16: 4d4c lsri r2, r5, 12 + 2d18: 6004 addu r0, r1 + 2d1a: 116e lrw r3, 0x3988e // 2dd0 <__GI_pow+0x41c> + 2d1c: 601c addu r0, r7 + 2d1e: 648d cmplt r3, r2 + 2d20: 10f8 lrw r7, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d22: b804 st.w r0, (r14, 0x10) + 2d24: 6dc8 or r7, r2 + 2d26: 0c09 bf 0x2d38 // 2d38 <__GI_pow+0x384> + 2d28: 11cb lrw r6, 0xbb679 // 2dd4 <__GI_pow+0x420> + 2d2a: 6499 cmplt r6, r2 + 2d2c: 0d90 bf 0x304c // 304c <__GI_pow+0x698> + 2d2e: 6c83 mov r2, r0 + 2d30: 2200 addi r2, 1 + 2d32: 110a lrw r0, 0xfff00000 // 2dd8 <__GI_pow+0x424> + 2d34: b844 st.w r2, (r14, 0x10) + 2d36: 61c0 addu r7, r0 + 2d38: 3500 movi r5, 0 + 2d3a: 45c3 lsli r6, r5, 3 + 2d3c: 1168 lrw r3, 0xab90 // 2ddc <__GI_pow+0x428> + 2d3e: 4523 lsli r1, r5, 3 + 2d40: 60d8 addu r3, r6 + 2d42: 9340 ld.w r2, (r3, 0x0) + 2d44: b828 st.w r1, (r14, 0x20) + 2d46: 9361 ld.w r3, (r3, 0x4) + 2d48: 6c13 mov r0, r4 + 2d4a: 6c5f mov r1, r7 + 2d4c: b845 st.w r2, (r14, 0x14) + 2d4e: b866 st.w r3, (r14, 0x18) + 2d50: e000080a bsr 0x3d64 // 3d64 <__subdf3> + 2d54: b809 st.w r0, (r14, 0x24) + 2d56: 9845 ld.w r2, (r14, 0x14) + 2d58: 9866 ld.w r3, (r14, 0x18) + 2d5a: b82a st.w r1, (r14, 0x28) + 2d5c: 6c13 mov r0, r4 + 2d5e: 6c5f mov r1, r7 + 2d60: e00007ea bsr 0x3d34 // 3d34 <__adddf3> + 2d64: 6c83 mov r2, r0 + 2d66: 6cc7 mov r3, r1 + 2d68: 3000 movi r0, 0 + 2d6a: 1026 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d6c: e0000932 bsr 0x3fd0 // 3fd0 <__divdf3> + 2d70: 6c83 mov r2, r0 + 2d72: 6cc7 mov r3, r1 + 2d74: 0436 br 0x2de0 // 2de0 <__GI_pow+0x42c> + 2d76: 0000 bkpt + 2d78: 7ff00000 .long 0x7ff00000 + 2d7c: 43400000 .long 0x43400000 + 2d80: 3ff00000 .long 0x3ff00000 + 2d84: fffffc01 .long 0xfffffc01 + 2d88: c0100000 .long 0xc0100000 + 2d8c: 3fe00000 .long 0x3fe00000 + 2d90: ffc00000 .long 0xffc00000 + 2d94: 41e00000 .long 0x41e00000 + 2d98: 43f00000 .long 0x43f00000 + 2d9c: 8800759c .long 0x8800759c + 2da0: 7e37e43c .long 0x7e37e43c + 2da4: 3ff71547 .long 0x3ff71547 + 2da8: f85ddf44 .long 0xf85ddf44 + 2dac: 3e54ae0b .long 0x3e54ae0b + 2db0: 3fd00000 .long 0x3fd00000 + 2db4: 55555555 .long 0x55555555 + 2db8: 3fd55555 .long 0x3fd55555 + 2dbc: 652b82fe .long 0x652b82fe + 2dc0: bff00000 .long 0xbff00000 + 2dc4: 40900000 .long 0x40900000 + 2dc8: bf700000 .long 0xbf700000 + 2dcc: 000fffff .long 0x000fffff + 2dd0: 0003988e .long 0x0003988e + 2dd4: 000bb679 .long 0x000bb679 + 2dd8: fff00000 .long 0xfff00000 + 2ddc: 0000ab90 .long 0x0000ab90 + 2de0: b80b st.w r0, (r14, 0x2c) + 2de2: b82c st.w r1, (r14, 0x30) + 2de4: 9809 ld.w r0, (r14, 0x24) + 2de6: 982a ld.w r1, (r14, 0x28) + 2de8: e00007da bsr 0x3d9c // 3d9c <__muldf3> + 2dec: b803 st.w r0, (r14, 0xc) + 2dee: 3280 movi r2, 128 + 2df0: 5701 asri r0, r7, 1 + 2df2: 6d87 mov r6, r1 + 2df4: 38bd bseti r0, 29 + 2df6: 422c lsli r1, r2, 12 + 2df8: 6004 addu r0, r1 + 2dfa: 45b2 lsli r5, r5, 18 + 2dfc: 6140 addu r5, r0 + 2dfe: 6cd7 mov r3, r5 + 2e00: 3200 movi r2, 0 + 2e02: 6c5b mov r1, r6 + 2e04: 3000 movi r0, 0 + 2e06: e00007cb bsr 0x3d9c // 3d9c <__muldf3> + 2e0a: 6c83 mov r2, r0 + 2e0c: 6cc7 mov r3, r1 + 2e0e: 9809 ld.w r0, (r14, 0x24) + 2e10: 982a ld.w r1, (r14, 0x28) + 2e12: e00007a9 bsr 0x3d64 // 3d64 <__subdf3> + 2e16: b809 st.w r0, (r14, 0x24) + 2e18: 9845 ld.w r2, (r14, 0x14) + 2e1a: 9866 ld.w r3, (r14, 0x18) + 2e1c: b82a st.w r1, (r14, 0x28) + 2e1e: 3000 movi r0, 0 + 2e20: 6c57 mov r1, r5 + 2e22: e00007a1 bsr 0x3d64 // 3d64 <__subdf3> + 2e26: 6c83 mov r2, r0 + 2e28: 6cc7 mov r3, r1 + 2e2a: 6c13 mov r0, r4 + 2e2c: 6c5f mov r1, r7 + 2e2e: e000079b bsr 0x3d64 // 3d64 <__subdf3> + 2e32: 6cdb mov r3, r6 + 2e34: 3200 movi r2, 0 + 2e36: e00007b3 bsr 0x3d9c // 3d9c <__muldf3> + 2e3a: 6c83 mov r2, r0 + 2e3c: 6cc7 mov r3, r1 + 2e3e: 9809 ld.w r0, (r14, 0x24) + 2e40: 982a ld.w r1, (r14, 0x28) + 2e42: e0000791 bsr 0x3d64 // 3d64 <__subdf3> + 2e46: 984b ld.w r2, (r14, 0x2c) + 2e48: 986c ld.w r3, (r14, 0x30) + 2e4a: e00007a9 bsr 0x3d9c // 3d9c <__muldf3> + 2e4e: 9843 ld.w r2, (r14, 0xc) + 2e50: 6cdb mov r3, r6 + 2e52: b805 st.w r0, (r14, 0x14) + 2e54: b826 st.w r1, (r14, 0x18) + 2e56: 6c0b mov r0, r2 + 2e58: 6c5b mov r1, r6 + 2e5a: e00007a1 bsr 0x3d9c // 3d9c <__muldf3> + 2e5e: ea820113 lrw r2, 0x4a454eef // 32a8 <__GI_pow+0x8f4> + 2e62: ea830113 lrw r3, 0x3fca7e28 // 32ac <__GI_pow+0x8f8> + 2e66: 6d43 mov r5, r0 + 2e68: 6d07 mov r4, r1 + 2e6a: e0000799 bsr 0x3d9c // 3d9c <__muldf3> + 2e6e: ea820111 lrw r2, 0x93c9db65 // 32b0 <__GI_pow+0x8fc> + 2e72: ea830111 lrw r3, 0x3fcd864a // 32b4 <__GI_pow+0x900> + 2e76: e000075f bsr 0x3d34 // 3d34 <__adddf3> + 2e7a: 6c97 mov r2, r5 + 2e7c: 6cd3 mov r3, r4 + 2e7e: e000078f bsr 0x3d9c // 3d9c <__muldf3> + 2e82: ea82010e lrw r2, 0xa91d4101 // 32b8 <__GI_pow+0x904> + 2e86: ea83010e lrw r3, 0x3fd17460 // 32bc <__GI_pow+0x908> + 2e8a: e0000755 bsr 0x3d34 // 3d34 <__adddf3> + 2e8e: 6c97 mov r2, r5 + 2e90: 6cd3 mov r3, r4 + 2e92: e0000785 bsr 0x3d9c // 3d9c <__muldf3> + 2e96: ea82010b lrw r2, 0x518f264d // 32c0 <__GI_pow+0x90c> + 2e9a: ea83010b lrw r3, 0x3fd55555 // 32c4 <__GI_pow+0x910> + 2e9e: e000074b bsr 0x3d34 // 3d34 <__adddf3> + 2ea2: 6c97 mov r2, r5 + 2ea4: 6cd3 mov r3, r4 + 2ea6: e000077b bsr 0x3d9c // 3d9c <__muldf3> + 2eaa: ea820108 lrw r2, 0xdb6fabff // 32c8 <__GI_pow+0x914> + 2eae: ea830108 lrw r3, 0x3fdb6db6 // 32cc <__GI_pow+0x918> + 2eb2: e0000741 bsr 0x3d34 // 3d34 <__adddf3> + 2eb6: 6c97 mov r2, r5 + 2eb8: 6cd3 mov r3, r4 + 2eba: e0000771 bsr 0x3d9c // 3d9c <__muldf3> + 2ebe: ea820105 lrw r2, 0x33333303 // 32d0 <__GI_pow+0x91c> + 2ec2: ea830105 lrw r3, 0x3fe33333 // 32d4 <__GI_pow+0x920> + 2ec6: e0000737 bsr 0x3d34 // 3d34 <__adddf3> + 2eca: 6dc3 mov r7, r0 + 2ecc: 6c97 mov r2, r5 + 2ece: 6cd3 mov r3, r4 + 2ed0: b829 st.w r1, (r14, 0x24) + 2ed2: 6c17 mov r0, r5 + 2ed4: 6c53 mov r1, r4 + 2ed6: e0000763 bsr 0x3d9c // 3d9c <__muldf3> + 2eda: 6c83 mov r2, r0 + 2edc: 6cc7 mov r3, r1 + 2ede: 6c1f mov r0, r7 + 2ee0: 9829 ld.w r1, (r14, 0x24) + 2ee2: e000075d bsr 0x3d9c // 3d9c <__muldf3> + 2ee6: 6d43 mov r5, r0 + 2ee8: 6d07 mov r4, r1 + 2eea: 6cdb mov r3, r6 + 2eec: 3200 movi r2, 0 + 2eee: 9803 ld.w r0, (r14, 0xc) + 2ef0: 6c5b mov r1, r6 + 2ef2: e0000721 bsr 0x3d34 // 3d34 <__adddf3> + 2ef6: 9845 ld.w r2, (r14, 0x14) + 2ef8: 9866 ld.w r3, (r14, 0x18) + 2efa: e0000751 bsr 0x3d9c // 3d9c <__muldf3> + 2efe: 6c97 mov r2, r5 + 2f00: 6cd3 mov r3, r4 + 2f02: e0000719 bsr 0x3d34 // 3d34 <__adddf3> + 2f06: 6d43 mov r5, r0 + 2f08: 6cdb mov r3, r6 + 2f0a: b829 st.w r1, (r14, 0x24) + 2f0c: 3200 movi r2, 0 + 2f0e: 6c5b mov r1, r6 + 2f10: 3000 movi r0, 0 + 2f12: e0000745 bsr 0x3d9c // 3d9c <__muldf3> + 2f16: 3200 movi r2, 0 + 2f18: 006f lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f1a: 6dc3 mov r7, r0 + 2f1c: b82a st.w r1, (r14, 0x28) + 2f1e: e000070b bsr 0x3d34 // 3d34 <__adddf3> + 2f22: 6c97 mov r2, r5 + 2f24: 9869 ld.w r3, (r14, 0x24) + 2f26: e0000707 bsr 0x3d34 // 3d34 <__adddf3> + 2f2a: 6d07 mov r4, r1 + 2f2c: 6cc7 mov r3, r1 + 2f2e: 3200 movi r2, 0 + 2f30: 6c5b mov r1, r6 + 2f32: 3000 movi r0, 0 + 2f34: e0000734 bsr 0x3d9c // 3d9c <__muldf3> + 2f38: b80b st.w r0, (r14, 0x2c) + 2f3a: b82c st.w r1, (r14, 0x30) + 2f3c: 3200 movi r2, 0 + 2f3e: 0078 lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f40: 6c53 mov r1, r4 + 2f42: 3000 movi r0, 0 + 2f44: e0000710 bsr 0x3d64 // 3d64 <__subdf3> + 2f48: 6c9f mov r2, r7 + 2f4a: 986a ld.w r3, (r14, 0x28) + 2f4c: e000070c bsr 0x3d64 // 3d64 <__subdf3> + 2f50: 6c83 mov r2, r0 + 2f52: 6cc7 mov r3, r1 + 2f54: 6c17 mov r0, r5 + 2f56: 9829 ld.w r1, (r14, 0x24) + 2f58: e0000706 bsr 0x3d64 // 3d64 <__subdf3> + 2f5c: 9843 ld.w r2, (r14, 0xc) + 2f5e: 6cdb mov r3, r6 + 2f60: e000071e bsr 0x3d9c // 3d9c <__muldf3> + 2f64: 6d83 mov r6, r0 + 2f66: 6d47 mov r5, r1 + 2f68: 6cd3 mov r3, r4 + 2f6a: 3200 movi r2, 0 + 2f6c: 9805 ld.w r0, (r14, 0x14) + 2f6e: 9826 ld.w r1, (r14, 0x18) + 2f70: e0000716 bsr 0x3d9c // 3d9c <__muldf3> + 2f74: 6c83 mov r2, r0 + 2f76: 6cc7 mov r3, r1 + 2f78: 6c1b mov r0, r6 + 2f7a: 6c57 mov r1, r5 + 2f7c: e00006dc bsr 0x3d34 // 3d34 <__adddf3> + 2f80: 6dc3 mov r7, r0 + 2f82: 6d87 mov r6, r1 + 2f84: 6c83 mov r2, r0 + 2f86: 6cc7 mov r3, r1 + 2f88: 980b ld.w r0, (r14, 0x2c) + 2f8a: 982c ld.w r1, (r14, 0x30) + 2f8c: e00006d4 bsr 0x3d34 // 3d34 <__adddf3> + 2f90: 33e0 movi r3, 224 + 2f92: 4358 lsli r2, r3, 24 + 2f94: 3000 movi r0, 0 + 2f96: 016d lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2f98: 6d07 mov r4, r1 + 2f9a: e0000701 bsr 0x3d9c // 3d9c <__muldf3> + 2f9e: b805 st.w r0, (r14, 0x14) + 2fa0: b826 st.w r1, (r14, 0x18) + 2fa2: 984b ld.w r2, (r14, 0x2c) + 2fa4: 986c ld.w r3, (r14, 0x30) + 2fa6: 6c53 mov r1, r4 + 2fa8: 3000 movi r0, 0 + 2faa: e00006dd bsr 0x3d64 // 3d64 <__subdf3> + 2fae: 6c83 mov r2, r0 + 2fb0: 6cc7 mov r3, r1 + 2fb2: 6c1f mov r0, r7 + 2fb4: 6c5b mov r1, r6 + 2fb6: e00006d7 bsr 0x3d64 // 3d64 <__subdf3> + 2fba: 0155 lrw r2, 0xdc3a03fd // 32e0 <__GI_pow+0x92c> + 2fbc: 0177 lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2fbe: e00006ef bsr 0x3d9c // 3d9c <__muldf3> + 2fc2: 6dc3 mov r7, r0 + 2fc4: 6d47 mov r5, r1 + 2fc6: 0157 lrw r2, 0x145b01f5 // 32e4 <__GI_pow+0x930> + 2fc8: 0177 lrw r3, 0xbe3e2fe0 // 32e8 <__GI_pow+0x934> + 2fca: 6c53 mov r1, r4 + 2fcc: 3000 movi r0, 0 + 2fce: e00006e7 bsr 0x3d9c // 3d9c <__muldf3> + 2fd2: 6c83 mov r2, r0 + 2fd4: 6cc7 mov r3, r1 + 2fd6: 6c1f mov r0, r7 + 2fd8: 6c57 mov r1, r5 + 2fda: e00006ad bsr 0x3d34 // 3d34 <__adddf3> + 2fde: 01db lrw r6, 0xab90 // 32ec <__GI_pow+0x938> + 2fe0: 9848 ld.w r2, (r14, 0x20) + 2fe2: 6188 addu r6, r2 + 2fe4: 9644 ld.w r2, (r6, 0x10) + 2fe6: 9665 ld.w r3, (r6, 0x14) + 2fe8: e00006a6 bsr 0x3d34 // 3d34 <__adddf3> + 2fec: b809 st.w r0, (r14, 0x24) + 2fee: 9804 ld.w r0, (r14, 0x10) + 2ff0: b82a st.w r1, (r14, 0x28) + 2ff2: e00008f3 bsr 0x41d8 // 41d8 <__floatsidf> + 2ff6: 6d83 mov r6, r0 + 2ff8: 0202 lrw r0, 0xab90 // 32ec <__GI_pow+0x938> + 2ffa: 6d47 mov r5, r1 + 2ffc: 201f addi r0, 32 + 2ffe: 9828 ld.w r1, (r14, 0x20) + 3000: 6004 addu r0, r1 + 3002: 9080 ld.w r4, (r0, 0x0) + 3004: 90e1 ld.w r7, (r0, 0x4) + 3006: 9849 ld.w r2, (r14, 0x24) + 3008: 986a ld.w r3, (r14, 0x28) + 300a: 9805 ld.w r0, (r14, 0x14) + 300c: 9826 ld.w r1, (r14, 0x18) + 300e: e0000693 bsr 0x3d34 // 3d34 <__adddf3> + 3012: 6c93 mov r2, r4 + 3014: 6cdf mov r3, r7 + 3016: e000068f bsr 0x3d34 // 3d34 <__adddf3> + 301a: 6c9b mov r2, r6 + 301c: 6cd7 mov r3, r5 + 301e: e000068b bsr 0x3d34 // 3d34 <__adddf3> + 3022: 6c9b mov r2, r6 + 3024: 6cd7 mov r3, r5 + 3026: 3000 movi r0, 0 + 3028: b823 st.w r1, (r14, 0xc) + 302a: e000069d bsr 0x3d64 // 3d64 <__subdf3> + 302e: 6c93 mov r2, r4 + 3030: 6cdf mov r3, r7 + 3032: e0000699 bsr 0x3d64 // 3d64 <__subdf3> + 3036: 9845 ld.w r2, (r14, 0x14) + 3038: 9866 ld.w r3, (r14, 0x18) + 303a: e0000695 bsr 0x3d64 // 3d64 <__subdf3> + 303e: 6c83 mov r2, r0 + 3040: 6cc7 mov r3, r1 + 3042: 9809 ld.w r0, (r14, 0x24) + 3044: 982a ld.w r1, (r14, 0x28) + 3046: 060b br 0x2c5c // 2c5c <__GI_pow+0x2a8> + 3048: 3700 movi r7, 0 + 304a: 0663 br 0x2d10 // 2d10 <__GI_pow+0x35c> + 304c: 3501 movi r5, 1 + 304e: 0676 br 0x2d3a // 2d3a <__GI_pow+0x386> + 3050: 0277 lrw r3, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3052: 0611 br 0x2c74 // 2c74 <__GI_pow+0x2c0> + 3054: 0257 lrw r2, 0x652b82fe // 32f4 <__GI_pow+0x940> + 3056: 0276 lrw r3, 0x3c971547 // 32f8 <__GI_pow+0x944> + 3058: 6c1f mov r0, r7 + 305a: 6c5b mov r1, r6 + 305c: e000066c bsr 0x3d34 // 3d34 <__adddf3> + 3060: b805 st.w r0, (r14, 0x14) + 3062: b826 st.w r1, (r14, 0x18) + 3064: 9842 ld.w r2, (r14, 0x8) + 3066: 6cd7 mov r3, r5 + 3068: 9800 ld.w r0, (r14, 0x0) + 306a: 6c53 mov r1, r4 + 306c: e000067c bsr 0x3d64 // 3d64 <__subdf3> + 3070: 6c83 mov r2, r0 + 3072: 6cc7 mov r3, r1 + 3074: 9805 ld.w r0, (r14, 0x14) + 3076: 9826 ld.w r1, (r14, 0x18) + 3078: e0000856 bsr 0x4124 // 4124 <__gtdf2> + 307c: 3820 cmplti r0, 1 + 307e: 0802 bt 0x3082 // 3082 <__GI_pow+0x6ce> + 3080: 0633 br 0x2ce6 // 2ce6 <__GI_pow+0x332> + 3082: 4421 lsli r1, r4, 1 + 3084: 4901 lsri r0, r1, 1 + 3086: 0361 lrw r3, 0x3fe00000 // 32fc <__GI_pow+0x948> + 3088: 640d cmplt r3, r0 + 308a: 0cfd bf 0x3284 // 3284 <__GI_pow+0x8d0> + 308c: 5034 asri r1, r0, 20 + 308e: 0342 lrw r2, 0xfffffc02 // 3300 <__GI_pow+0x94c> + 3090: 3080 movi r0, 128 + 3092: 6048 addu r1, r2 + 3094: 404d lsli r2, r0, 13 + 3096: 7086 asr r2, r1 + 3098: 6090 addu r2, r4 + 309a: 4261 lsli r3, r2, 1 + 309c: 4b35 lsri r1, r3, 21 + 309e: 0305 lrw r0, 0xfffffc01 // 3304 <__GI_pow+0x950> + 30a0: 6040 addu r1, r0 + 30a2: 0365 lrw r3, 0xfffff // 3308 <__GI_pow+0x954> + 30a4: 70c6 asr r3, r1 + 30a6: 6c0b mov r0, r2 + 30a8: 680d andn r0, r3 + 30aa: 424c lsli r2, r2, 12 + 30ac: 6cc3 mov r3, r0 + 30ae: 4a4c lsri r2, r2, 12 + 30b0: 3014 movi r0, 20 + 30b2: 3ab4 bseti r2, 20 + 30b4: 5825 subu r1, r0, r1 + 30b6: 7086 asr r2, r1 + 30b8: 3cdf btsti r4, 31 + 30ba: b840 st.w r2, (r14, 0x0) + 30bc: 0c05 bf 0x30c6 // 30c6 <__GI_pow+0x712> + 30be: 9840 ld.w r2, (r14, 0x0) + 30c0: 3400 movi r4, 0 + 30c2: 610a subu r4, r2 + 30c4: b880 st.w r4, (r14, 0x0) + 30c6: 3200 movi r2, 0 + 30c8: 9802 ld.w r0, (r14, 0x8) + 30ca: 6c57 mov r1, r5 + 30cc: e000064c bsr 0x3d64 // 3d64 <__subdf3> + 30d0: b803 st.w r0, (r14, 0xc) + 30d2: b824 st.w r1, (r14, 0x10) + 30d4: 9803 ld.w r0, (r14, 0xc) + 30d6: 6c9f mov r2, r7 + 30d8: 6cdb mov r3, r6 + 30da: 9824 ld.w r1, (r14, 0x10) + 30dc: e000062c bsr 0x3d34 // 3d34 <__adddf3> + 30e0: 3200 movi r2, 0 + 30e2: 0374 lrw r3, 0x3fe62e43 // 330c <__GI_pow+0x958> + 30e4: 3000 movi r0, 0 + 30e6: 6d07 mov r4, r1 + 30e8: e000065a bsr 0x3d9c // 3d9c <__muldf3> + 30ec: 6d47 mov r5, r1 + 30ee: 9843 ld.w r2, (r14, 0xc) + 30f0: 9864 ld.w r3, (r14, 0x10) + 30f2: b802 st.w r0, (r14, 0x8) + 30f4: 6c53 mov r1, r4 + 30f6: 3000 movi r0, 0 + 30f8: e0000636 bsr 0x3d64 // 3d64 <__subdf3> + 30fc: 6c83 mov r2, r0 + 30fe: 6cc7 mov r3, r1 + 3100: 6c1f mov r0, r7 + 3102: 6c5b mov r1, r6 + 3104: e0000630 bsr 0x3d64 // 3d64 <__subdf3> + 3108: 035d lrw r2, 0xfefa39ef // 3310 <__GI_pow+0x95c> + 310a: 037c lrw r3, 0x3fe62e42 // 3314 <__GI_pow+0x960> + 310c: e0000648 bsr 0x3d9c // 3d9c <__muldf3> + 3110: 6dc3 mov r7, r0 + 3112: 6d87 mov r6, r1 + 3114: 035e lrw r2, 0xca86c39 // 3318 <__GI_pow+0x964> + 3116: 037d lrw r3, 0xbe205c61 // 331c <__GI_pow+0x968> + 3118: 6c53 mov r1, r4 + 311a: 3000 movi r0, 0 + 311c: e0000640 bsr 0x3d9c // 3d9c <__muldf3> + 3120: 6c83 mov r2, r0 + 3122: 6cc7 mov r3, r1 + 3124: 6c1f mov r0, r7 + 3126: 6c5b mov r1, r6 + 3128: e0000606 bsr 0x3d34 // 3d34 <__adddf3> + 312c: 6d07 mov r4, r1 + 312e: 6c83 mov r2, r0 + 3130: 6cc7 mov r3, r1 + 3132: b803 st.w r0, (r14, 0xc) + 3134: 6c57 mov r1, r5 + 3136: 9802 ld.w r0, (r14, 0x8) + 3138: e00005fe bsr 0x3d34 // 3d34 <__adddf3> + 313c: 9842 ld.w r2, (r14, 0x8) + 313e: 6cd7 mov r3, r5 + 3140: 6dc3 mov r7, r0 + 3142: 6d87 mov r6, r1 + 3144: e0000610 bsr 0x3d64 // 3d64 <__subdf3> + 3148: 6c83 mov r2, r0 + 314a: 6cc7 mov r3, r1 + 314c: 9803 ld.w r0, (r14, 0xc) + 314e: 6c53 mov r1, r4 + 3150: e000060a bsr 0x3d64 // 3d64 <__subdf3> + 3154: b802 st.w r0, (r14, 0x8) + 3156: b823 st.w r1, (r14, 0xc) + 3158: 6c9f mov r2, r7 + 315a: 6cdb mov r3, r6 + 315c: 6c1f mov r0, r7 + 315e: 6c5b mov r1, r6 + 3160: e000061e bsr 0x3d9c // 3d9c <__muldf3> + 3164: 134f lrw r2, 0x72bea4d0 // 3320 <__GI_pow+0x96c> + 3166: 1370 lrw r3, 0x3e663769 // 3324 <__GI_pow+0x970> + 3168: 6d43 mov r5, r0 + 316a: 6d07 mov r4, r1 + 316c: e0000618 bsr 0x3d9c // 3d9c <__muldf3> + 3170: 134e lrw r2, 0xc5d26bf1 // 3328 <__GI_pow+0x974> + 3172: 136f lrw r3, 0x3ebbbd41 // 332c <__GI_pow+0x978> + 3174: e00005f8 bsr 0x3d64 // 3d64 <__subdf3> + 3178: 6c97 mov r2, r5 + 317a: 6cd3 mov r3, r4 + 317c: e0000610 bsr 0x3d9c // 3d9c <__muldf3> + 3180: 134c lrw r2, 0xaf25de2c // 3330 <__GI_pow+0x97c> + 3182: 136d lrw r3, 0x3f11566a // 3334 <__GI_pow+0x980> + 3184: e00005d8 bsr 0x3d34 // 3d34 <__adddf3> + 3188: 6c97 mov r2, r5 + 318a: 6cd3 mov r3, r4 + 318c: e0000608 bsr 0x3d9c // 3d9c <__muldf3> + 3190: 134a lrw r2, 0x16bebd93 // 3338 <__GI_pow+0x984> + 3192: 136b lrw r3, 0x3f66c16c // 333c <__GI_pow+0x988> + 3194: e00005e8 bsr 0x3d64 // 3d64 <__subdf3> + 3198: 6c97 mov r2, r5 + 319a: 6cd3 mov r3, r4 + 319c: e0000600 bsr 0x3d9c // 3d9c <__muldf3> + 31a0: 1348 lrw r2, 0x5555553e // 3340 <__GI_pow+0x98c> + 31a2: 1369 lrw r3, 0x3fc55555 // 3344 <__GI_pow+0x990> + 31a4: e00005c8 bsr 0x3d34 // 3d34 <__adddf3> + 31a8: 6c97 mov r2, r5 + 31aa: 6cd3 mov r3, r4 + 31ac: e00005f8 bsr 0x3d9c // 3d9c <__muldf3> + 31b0: 6c83 mov r2, r0 + 31b2: 6cc7 mov r3, r1 + 31b4: 6c1f mov r0, r7 + 31b6: 6c5b mov r1, r6 + 31b8: e00005d6 bsr 0x3d64 // 3d64 <__subdf3> + 31bc: 6d43 mov r5, r0 + 31be: 6d07 mov r4, r1 + 31c0: 6c83 mov r2, r0 + 31c2: 6cc7 mov r3, r1 + 31c4: 6c1f mov r0, r7 + 31c6: 6c5b mov r1, r6 + 31c8: e00005ea bsr 0x3d9c // 3d9c <__muldf3> + 31cc: 3380 movi r3, 128 + 31ce: b804 st.w r0, (r14, 0x10) + 31d0: b825 st.w r1, (r14, 0x14) + 31d2: 3200 movi r2, 0 + 31d4: 4377 lsli r3, r3, 23 + 31d6: 6c17 mov r0, r5 + 31d8: 6c53 mov r1, r4 + 31da: e00005c5 bsr 0x3d64 // 3d64 <__subdf3> + 31de: 6c83 mov r2, r0 + 31e0: 6cc7 mov r3, r1 + 31e2: 9804 ld.w r0, (r14, 0x10) + 31e4: 9825 ld.w r1, (r14, 0x14) + 31e6: e00006f5 bsr 0x3fd0 // 3fd0 <__divdf3> + 31ea: 6d07 mov r4, r1 + 31ec: 6d43 mov r5, r0 + 31ee: 9842 ld.w r2, (r14, 0x8) + 31f0: 9863 ld.w r3, (r14, 0xc) + 31f2: 6c1f mov r0, r7 + 31f4: 6c5b mov r1, r6 + 31f6: e00005d3 bsr 0x3d9c // 3d9c <__muldf3> + 31fa: 9842 ld.w r2, (r14, 0x8) + 31fc: 9863 ld.w r3, (r14, 0xc) + 31fe: e000059b bsr 0x3d34 // 3d34 <__adddf3> + 3202: 6c83 mov r2, r0 + 3204: 6cc7 mov r3, r1 + 3206: 6c17 mov r0, r5 + 3208: 6c53 mov r1, r4 + 320a: e00005ad bsr 0x3d64 // 3d64 <__subdf3> + 320e: 6c9f mov r2, r7 + 3210: 6cdb mov r3, r6 + 3212: e00005a9 bsr 0x3d64 // 3d64 <__subdf3> + 3216: 6c83 mov r2, r0 + 3218: 6cc7 mov r3, r1 + 321a: 3000 movi r0, 0 + 321c: 1135 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 321e: e00005a3 bsr 0x3d64 // 3d64 <__subdf3> + 3222: 9840 ld.w r2, (r14, 0x0) + 3224: 4274 lsli r3, r2, 20 + 3226: 60c4 addu r3, r1 + 3228: 5394 asri r4, r3, 20 + 322a: 3c20 cmplti r4, 1 + 322c: 0c2f bf 0x328a // 328a <__GI_pow+0x8d6> + 322e: 9840 ld.w r2, (r14, 0x0) + 3230: e000009a bsr 0x3364 // 3364 <__GI_scalbn> + 3234: 3200 movi r2, 0 + 3236: 9861 ld.w r3, (r14, 0x4) + 3238: e800fc56 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 323c: 4401 lsli r0, r4, 1 + 323e: 4861 lsri r3, r0, 1 + 3240: 1242 lrw r2, 0x4090cbff // 3348 <__GI_pow+0x994> + 3242: 64c9 cmplt r2, r3 + 3244: 0f1f bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3246: 1222 lrw r1, 0x3f6f3400 // 334c <__GI_pow+0x998> + 3248: 6050 addu r1, r4 + 324a: 9800 ld.w r0, (r14, 0x0) + 324c: 6c40 or r1, r0 + 324e: 3940 cmpnei r1, 0 + 3250: 0c0b bf 0x3266 // 3266 <__GI_pow+0x8b2> + 3252: 1240 lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3254: 1260 lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3256: 3000 movi r0, 0 + 3258: 9821 ld.w r1, (r14, 0x4) + 325a: e00005a1 bsr 0x3d9c // 3d9c <__muldf3> + 325e: 115d lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3260: 117d lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3262: e800fc41 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 3266: 9842 ld.w r2, (r14, 0x8) + 3268: 6cd7 mov r3, r5 + 326a: 9800 ld.w r0, (r14, 0x0) + 326c: 6c53 mov r1, r4 + 326e: e000057b bsr 0x3d64 // 3d64 <__subdf3> + 3272: 6c83 mov r2, r0 + 3274: 6cc7 mov r3, r1 + 3276: 6c1f mov r0, r7 + 3278: 6c5b mov r1, r6 + 327a: e0000791 bsr 0x419c // 419c <__ledf2> + 327e: 3820 cmplti r0, 1 + 3280: 0f01 bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3282: 07e8 br 0x3252 // 3252 <__GI_pow+0x89e> + 3284: 3500 movi r5, 0 + 3286: b8a0 st.w r5, (r14, 0x0) + 3288: 0726 br 0x30d4 // 30d4 <__GI_pow+0x720> + 328a: 6c4f mov r1, r3 + 328c: 07d4 br 0x3234 // 3234 <__GI_pow+0x880> + 328e: 3400 movi r4, 0 + 3290: 1038 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3292: e800fbb5 br 0x29fc // 29fc <__GI_pow+0x48> + 3296: 3400 movi r4, 0 + 3298: 9820 ld.w r1, (r14, 0x0) + 329a: e800fbb1 br 0x29fc // 29fc <__GI_pow+0x48> + 329e: 6d1f mov r4, r7 + 32a0: 6c5b mov r1, r6 + 32a2: e800fbad br 0x29fc // 29fc <__GI_pow+0x48> + 32a6: 0000 bkpt + 32a8: 4a454eef .long 0x4a454eef + 32ac: 3fca7e28 .long 0x3fca7e28 + 32b0: 93c9db65 .long 0x93c9db65 + 32b4: 3fcd864a .long 0x3fcd864a + 32b8: a91d4101 .long 0xa91d4101 + 32bc: 3fd17460 .long 0x3fd17460 + 32c0: 518f264d .long 0x518f264d + 32c4: 3fd55555 .long 0x3fd55555 + 32c8: db6fabff .long 0xdb6fabff + 32cc: 3fdb6db6 .long 0x3fdb6db6 + 32d0: 33333303 .long 0x33333303 + 32d4: 3fe33333 .long 0x3fe33333 + 32d8: 40080000 .long 0x40080000 + 32dc: 3feec709 .long 0x3feec709 + 32e0: dc3a03fd .long 0xdc3a03fd + 32e4: 145b01f5 .long 0x145b01f5 + 32e8: be3e2fe0 .long 0xbe3e2fe0 + 32ec: 0000ab90 .long 0x0000ab90 + 32f0: 3ff00000 .long 0x3ff00000 + 32f4: 652b82fe .long 0x652b82fe + 32f8: 3c971547 .long 0x3c971547 + 32fc: 3fe00000 .long 0x3fe00000 + 3300: fffffc02 .long 0xfffffc02 + 3304: fffffc01 .long 0xfffffc01 + 3308: 000fffff .long 0x000fffff + 330c: 3fe62e43 .long 0x3fe62e43 + 3310: fefa39ef .long 0xfefa39ef + 3314: 3fe62e42 .long 0x3fe62e42 + 3318: 0ca86c39 .long 0x0ca86c39 + 331c: be205c61 .long 0xbe205c61 + 3320: 72bea4d0 .long 0x72bea4d0 + 3324: 3e663769 .long 0x3e663769 + 3328: c5d26bf1 .long 0xc5d26bf1 + 332c: 3ebbbd41 .long 0x3ebbbd41 + 3330: af25de2c .long 0xaf25de2c + 3334: 3f11566a .long 0x3f11566a + 3338: 16bebd93 .long 0x16bebd93 + 333c: 3f66c16c .long 0x3f66c16c + 3340: 5555553e .long 0x5555553e + 3344: 3fc55555 .long 0x3fc55555 + 3348: 4090cbff .long 0x4090cbff + 334c: 3f6f3400 .long 0x3f6f3400 + 3350: c2f8f359 .long 0xc2f8f359 + 3354: 01a56e1f .long 0x01a56e1f + 3358: 3300 movi r3, 0 + 335a: e800fb94 br 0x2a82 // 2a82 <__GI_pow+0xce> + +0000335e <__GI_fabs>: + 335e: 4121 lsli r1, r1, 1 + 3360: 4921 lsri r1, r1, 1 + 3362: 783c jmp r15 + +00003364 <__GI_scalbn>: + 3364: 14c1 push r4 + 3366: 6cc7 mov r3, r1 + 3368: 6cc0 or r3, r0 + 336a: 3b40 cmpnei r3, 0 + 336c: 0c08 bf 0x337c // 337c <__GI_scalbn+0x18> + 336e: 1065 lrw r3, 0x7ff00000 // 3380 <__GI_scalbn+0x1c> + 3370: 6d07 mov r4, r1 + 3372: 690c and r4, r3 + 3374: 4254 lsli r2, r2, 20 + 3376: 6090 addu r2, r4 + 3378: 684d andn r1, r3 + 337a: 6c48 or r1, r2 + 337c: 1481 pop r4 + 337e: 0000 bkpt + 3380: 7ff00000 .long 0x7ff00000 + +00003384 <__GI_sqrt>: + 3384: 14d4 push r4-r7, r15 + 3386: 1423 subi r14, r14, 12 + 3388: 127a lrw r3, 0x7ff00000 // 34f0 <__GI_sqrt+0x16c> + 338a: 6d43 mov r5, r0 + 338c: 6d07 mov r4, r1 + 338e: 6c07 mov r0, r1 + 3390: 684c and r1, r3 + 3392: 64c6 cmpne r1, r3 + 3394: 6c97 mov r2, r5 + 3396: 0812 bt 0x33ba // 33ba <__GI_sqrt+0x36> + 3398: 6cd3 mov r3, r4 + 339a: 6c17 mov r0, r5 + 339c: 6c53 mov r1, r4 + 339e: e00004ff bsr 0x3d9c // 3d9c <__muldf3> + 33a2: 6c83 mov r2, r0 + 33a4: 6cc7 mov r3, r1 + 33a6: 6c17 mov r0, r5 + 33a8: 6c53 mov r1, r4 + 33aa: e00004c5 bsr 0x3d34 // 3d34 <__adddf3> + 33ae: 6d43 mov r5, r0 + 33b0: 6d07 mov r4, r1 + 33b2: 6c17 mov r0, r5 + 33b4: 6c53 mov r1, r4 + 33b6: 1403 addi r14, r14, 12 + 33b8: 1494 pop r4-r7, r15 + 33ba: 3c20 cmplti r4, 1 + 33bc: 0c13 bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33be: 4461 lsli r3, r4, 1 + 33c0: 4b21 lsri r1, r3, 1 + 33c2: 6c54 or r1, r5 + 33c4: 3940 cmpnei r1, 0 + 33c6: 0ff6 bf 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 33c8: 3c40 cmpnei r4, 0 + 33ca: 0c0c bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33cc: 6c97 mov r2, r5 + 33ce: 6cd3 mov r3, r4 + 33d0: 6c17 mov r0, r5 + 33d2: 6c53 mov r1, r4 + 33d4: e00004c8 bsr 0x3d64 // 3d64 <__subdf3> + 33d8: 6c83 mov r2, r0 + 33da: 6cc7 mov r3, r1 + 33dc: e00005fa bsr 0x3fd0 // 3fd0 <__divdf3> + 33e0: 07e7 br 0x33ae // 33ae <__GI_sqrt+0x2a> + 33e2: 5494 asri r4, r4, 20 + 33e4: 3c40 cmpnei r4, 0 + 33e6: 0812 bt 0x340a // 340a <__GI_sqrt+0x86> + 33e8: 3840 cmpnei r0, 0 + 33ea: 0c76 bf 0x34d6 // 34d6 <__GI_sqrt+0x152> + 33ec: 3580 movi r5, 128 + 33ee: 3300 movi r3, 0 + 33f0: 452d lsli r1, r5, 13 + 33f2: 6d83 mov r6, r0 + 33f4: 6984 and r6, r1 + 33f6: 3e40 cmpnei r6, 0 + 33f8: 0c73 bf 0x34de // 34de <__GI_sqrt+0x15a> + 33fa: 5b23 subi r1, r3, 1 + 33fc: 3620 movi r6, 32 + 33fe: 6106 subu r4, r1 + 3400: 618e subu r6, r3 + 3402: 6c4b mov r1, r2 + 3404: 7059 lsr r1, r6 + 3406: 6c04 or r0, r1 + 3408: 708c lsl r2, r3 + 340a: 117b lrw r3, 0xfffffc01 // 34f4 <__GI_sqrt+0x170> + 340c: 610c addu r4, r3 + 340e: 3601 movi r6, 1 + 3410: 400c lsli r0, r0, 12 + 3412: 6990 and r6, r4 + 3414: 480c lsri r0, r0, 12 + 3416: 3e40 cmpnei r6, 0 + 3418: 38b4 bseti r0, 20 + 341a: 0c05 bf 0x3424 // 3424 <__GI_sqrt+0xa0> + 341c: 4a3f lsri r1, r2, 31 + 341e: 40a1 lsli r5, r0, 1 + 3420: 5914 addu r0, r1, r5 + 3422: 4241 lsli r2, r2, 1 + 3424: 4a7f lsri r3, r2, 31 + 3426: 60c0 addu r3, r0 + 3428: 5481 asri r4, r4, 1 + 342a: 3680 movi r6, 128 + 342c: 3100 movi r1, 0 + 342e: 60c0 addu r3, r0 + 3430: b882 st.w r4, (r14, 0x8) + 3432: 4241 lsli r2, r2, 1 + 3434: 3516 movi r5, 22 + 3436: 460e lsli r0, r6, 14 + 3438: b820 st.w r1, (r14, 0x0) + 343a: 5980 addu r4, r1, r0 + 343c: 650d cmplt r3, r4 + 343e: 0806 bt 0x344a // 344a <__GI_sqrt+0xc6> + 3440: 98c0 ld.w r6, (r14, 0x0) + 3442: 6180 addu r6, r0 + 3444: 5c20 addu r1, r4, r0 + 3446: 60d2 subu r3, r4 + 3448: b8c0 st.w r6, (r14, 0x0) + 344a: 2d00 subi r5, 1 + 344c: 4a9f lsri r4, r2, 31 + 344e: 4361 lsli r3, r3, 1 + 3450: 3d40 cmpnei r5, 0 + 3452: 60d0 addu r3, r4 + 3454: 4241 lsli r2, r2, 1 + 3456: 4801 lsri r0, r0, 1 + 3458: 0bf1 bt 0x343a // 343a <__GI_sqrt+0xb6> + 345a: 3620 movi r6, 32 + 345c: 3480 movi r4, 128 + 345e: 3000 movi r0, 0 + 3460: b8c1 st.w r6, (r14, 0x4) + 3462: 4498 lsli r4, r4, 24 + 3464: 64c5 cmplt r1, r3 + 3466: 5cd4 addu r6, r4, r5 + 3468: 0805 bt 0x3472 // 3472 <__GI_sqrt+0xee> + 346a: 644e cmpne r3, r1 + 346c: 0810 bt 0x348c // 348c <__GI_sqrt+0x108> + 346e: 6588 cmphs r2, r6 + 3470: 0c0e bf 0x348c // 348c <__GI_sqrt+0x108> + 3472: 3edf btsti r6, 31 + 3474: 5eb0 addu r5, r6, r4 + 3476: 0c37 bf 0x34e4 // 34e4 <__GI_sqrt+0x160> + 3478: 3ddf btsti r5, 31 + 347a: 0835 bt 0x34e4 // 34e4 <__GI_sqrt+0x160> + 347c: 59e2 addi r7, r1, 1 + 347e: 6588 cmphs r2, r6 + 3480: 60c6 subu r3, r1 + 3482: 0802 bt 0x3486 // 3486 <__GI_sqrt+0x102> + 3484: 2b00 subi r3, 1 + 3486: 609a subu r2, r6 + 3488: 6010 addu r0, r4 + 348a: 6c5f mov r1, r7 + 348c: 4adf lsri r6, r2, 31 + 348e: 618c addu r6, r3 + 3490: 60d8 addu r3, r6 + 3492: 98c1 ld.w r6, (r14, 0x4) + 3494: 2e00 subi r6, 1 + 3496: 3e40 cmpnei r6, 0 + 3498: 4241 lsli r2, r2, 1 + 349a: 4c81 lsri r4, r4, 1 + 349c: b8c1 st.w r6, (r14, 0x4) + 349e: 0be3 bt 0x3464 // 3464 <__GI_sqrt+0xe0> + 34a0: 6cc8 or r3, r2 + 34a2: 3b40 cmpnei r3, 0 + 34a4: 0c09 bf 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34a6: 3300 movi r3, 0 + 34a8: 2b00 subi r3, 1 + 34aa: 64c2 cmpne r0, r3 + 34ac: 081e bt 0x34e8 // 34e8 <__GI_sqrt+0x164> + 34ae: 9800 ld.w r0, (r14, 0x0) + 34b0: 2000 addi r0, 1 + 34b2: b800 st.w r0, (r14, 0x0) + 34b4: 3000 movi r0, 0 + 34b6: 3401 movi r4, 1 + 34b8: 9860 ld.w r3, (r14, 0x0) + 34ba: 98a0 ld.w r5, (r14, 0x0) + 34bc: 690c and r4, r3 + 34be: 5541 asri r2, r5, 1 + 34c0: 102e lrw r1, 0x3fe00000 // 34f8 <__GI_sqrt+0x174> + 34c2: 3c40 cmpnei r4, 0 + 34c4: 6048 addu r1, r2 + 34c6: 4801 lsri r0, r0, 1 + 34c8: 0c02 bf 0x34cc // 34cc <__GI_sqrt+0x148> + 34ca: 38bf bseti r0, 31 + 34cc: 98a2 ld.w r5, (r14, 0x8) + 34ce: 4594 lsli r4, r5, 20 + 34d0: 6104 addu r4, r1 + 34d2: 6d43 mov r5, r0 + 34d4: 076f br 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 34d6: 4a0b lsri r0, r2, 11 + 34d8: 2c14 subi r4, 21 + 34da: 4255 lsli r2, r2, 21 + 34dc: 0786 br 0x33e8 // 33e8 <__GI_sqrt+0x64> + 34de: 4001 lsli r0, r0, 1 + 34e0: 2300 addi r3, 1 + 34e2: 0788 br 0x33f2 // 33f2 <__GI_sqrt+0x6e> + 34e4: 6dc7 mov r7, r1 + 34e6: 07cc br 0x347e // 347e <__GI_sqrt+0xfa> + 34e8: 2000 addi r0, 1 + 34ea: 3880 bclri r0, 0 + 34ec: 07e5 br 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34ee: 0000 bkpt + 34f0: 7ff00000 .long 0x7ff00000 + 34f4: fffffc01 .long 0xfffffc01 + 34f8: 3fe00000 .long 0x3fe00000 + +000034fc <___gnu_csky_case_uqi>: + 34fc: 1421 subi r14, r14, 4 + 34fe: b820 st.w r1, (r14, 0x0) + 3500: 6c7f mov r1, r15 + 3502: 6040 addu r1, r0 + 3504: 8120 ld.b r1, (r1, 0x0) + 3506: 4121 lsli r1, r1, 1 + 3508: 63c4 addu r15, r1 + 350a: 9820 ld.w r1, (r14, 0x0) + 350c: 1401 addi r14, r14, 4 + 350e: 783c jmp r15 + +00003510 <___gnu_csky_case_uhi>: + 3510: 1422 subi r14, r14, 8 + 3512: b801 st.w r0, (r14, 0x4) + 3514: b820 st.w r1, (r14, 0x0) + 3516: 6c7f mov r1, r15 + 3518: 4001 lsli r0, r0, 1 + 351a: 6040 addu r1, r0 + 351c: 8920 ld.h r1, (r1, 0x0) + 351e: 4121 lsli r1, r1, 1 + 3520: 63c4 addu r15, r1 + 3522: 9801 ld.w r0, (r14, 0x4) + 3524: 9820 ld.w r1, (r14, 0x0) + 3526: 1402 addi r14, r14, 8 + 3528: 783c jmp r15 + ... + +0000352c <__fixunssfsi>: + 352c: 14d1 push r4, r15 + 352e: 319e movi r1, 158 + 3530: 4137 lsli r1, r1, 23 + 3532: 6d03 mov r4, r0 + 3534: e000020c bsr 0x394c // 394c <__gesf2> + 3538: 38df btsti r0, 31 + 353a: 0c05 bf 0x3544 // 3544 <__fixunssfsi+0x18> + 353c: 6c13 mov r0, r4 + 353e: e0000255 bsr 0x39e8 // 39e8 <__fixsfsi> + 3542: 1491 pop r4, r15 + 3544: 319e movi r1, 158 + 3546: 4137 lsli r1, r1, 23 + 3548: 6c13 mov r0, r4 + 354a: e00000e1 bsr 0x370c // 370c <__subsf3> + 354e: e000024d bsr 0x39e8 // 39e8 <__fixsfsi> + 3552: 3380 movi r3, 128 + 3554: 4378 lsli r3, r3, 24 + 3556: 600c addu r0, r3 + 3558: 1491 pop r4, r15 + ... + +0000355c <__fixunsdfsi>: + 355c: 14d2 push r4-r5, r15 + 355e: 3200 movi r2, 0 + 3560: 106c lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 3562: 6d43 mov r5, r0 + 3564: 6d07 mov r4, r1 + 3566: e00005fd bsr 0x4160 // 4160 <__gedf2> + 356a: 38df btsti r0, 31 + 356c: 0c06 bf 0x3578 // 3578 <__fixunsdfsi+0x1c> + 356e: 6c17 mov r0, r5 + 3570: 6c53 mov r1, r4 + 3572: e000066b bsr 0x4248 // 4248 <__fixdfsi> + 3576: 1492 pop r4-r5, r15 + 3578: 3200 movi r2, 0 + 357a: 1066 lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 357c: 6c17 mov r0, r5 + 357e: 6c53 mov r1, r4 + 3580: e00003f2 bsr 0x3d64 // 3d64 <__subdf3> + 3584: e0000662 bsr 0x4248 // 4248 <__fixdfsi> + 3588: 3380 movi r3, 128 + 358a: 4378 lsli r3, r3, 24 + 358c: 600c addu r0, r3 + 358e: 1492 pop r4-r5, r15 + 3590: 41e00000 .long 0x41e00000 + +00003594 <_fpadd_parts>: + 3594: 14c4 push r4-r7 + 3596: 1421 subi r14, r14, 4 + 3598: 9060 ld.w r3, (r0, 0x0) + 359a: 3b01 cmphsi r3, 2 + 359c: 0c3b bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 359e: 9180 ld.w r4, (r1, 0x0) + 35a0: 3c01 cmphsi r4, 2 + 35a2: 0c3a bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35a4: 3b44 cmpnei r3, 4 + 35a6: 0c76 bf 0x3692 // 3692 <_fpadd_parts+0xfe> + 35a8: 3c44 cmpnei r4, 4 + 35aa: 0c36 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35ac: 3c42 cmpnei r4, 2 + 35ae: 0c5c bf 0x3666 // 3666 <_fpadd_parts+0xd2> + 35b0: 3b42 cmpnei r3, 2 + 35b2: 0c32 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35b4: 90a2 ld.w r5, (r0, 0x8) + 35b6: 91e2 ld.w r7, (r1, 0x8) + 35b8: 5d9d subu r4, r5, r7 + 35ba: 9063 ld.w r3, (r0, 0xc) + 35bc: 3cdf btsti r4, 31 + 35be: b860 st.w r3, (r14, 0x0) + 35c0: 6d93 mov r6, r4 + 35c2: 9163 ld.w r3, (r1, 0xc) + 35c4: 086f bt 0x36a2 // 36a2 <_fpadd_parts+0x10e> + 35c6: 3e3f cmplti r6, 32 + 35c8: 082a bt 0x361c // 361c <_fpadd_parts+0x88> + 35ca: 655d cmplt r7, r5 + 35cc: 0c5f bf 0x368a // 368a <_fpadd_parts+0xf6> + 35ce: 3300 movi r3, 0 + 35d0: 9001 ld.w r0, (r0, 0x4) + 35d2: 9121 ld.w r1, (r1, 0x4) + 35d4: 6442 cmpne r0, r1 + 35d6: 0c33 bf 0x363c // 363c <_fpadd_parts+0xa8> + 35d8: 3840 cmpnei r0, 0 + 35da: 9820 ld.w r1, (r14, 0x0) + 35dc: 0c54 bf 0x3684 // 3684 <_fpadd_parts+0xf0> + 35de: 60c6 subu r3, r1 + 35e0: 3bdf btsti r3, 31 + 35e2: 0863 bt 0x36a8 // 36a8 <_fpadd_parts+0x114> + 35e4: 3100 movi r1, 0 + 35e6: b221 st.w r1, (r2, 0x4) + 35e8: b2a2 st.w r5, (r2, 0x8) + 35ea: b263 st.w r3, (r2, 0xc) + 35ec: 5b23 subi r1, r3, 1 + 35ee: 119b lrw r4, 0x3fffffff // 36d8 <_fpadd_parts+0x144> + 35f0: 6504 cmphs r1, r4 + 35f2: 080b bt 0x3608 // 3608 <_fpadd_parts+0x74> + 35f4: 9222 ld.w r1, (r2, 0x8) + 35f6: 2900 subi r1, 1 + 35f8: 4361 lsli r3, r3, 1 + 35fa: 5b03 subi r0, r3, 1 + 35fc: 6410 cmphs r4, r0 + 35fe: 6d47 mov r5, r1 + 3600: 2900 subi r1, 1 + 3602: 0bfb bt 0x35f8 // 35f8 <_fpadd_parts+0x64> + 3604: b263 st.w r3, (r2, 0xc) + 3606: b2a2 st.w r5, (r2, 0x8) + 3608: 3103 movi r1, 3 + 360a: 3bdf btsti r3, 31 + 360c: b220 st.w r1, (r2, 0x0) + 360e: 0821 bt 0x3650 // 3650 <_fpadd_parts+0xbc> + 3610: 6c0b mov r0, r2 + 3612: 1401 addi r14, r14, 4 + 3614: 1484 pop r4-r7 + 3616: 6c07 mov r0, r1 + 3618: 1401 addi r14, r14, 4 + 361a: 1484 pop r4-r7 + 361c: 3c20 cmplti r4, 1 + 361e: 084c bt 0x36b6 // 36b6 <_fpadd_parts+0x122> + 3620: 3401 movi r4, 1 + 3622: 7118 lsl r4, r6 + 3624: 2c00 subi r4, 1 + 3626: 6dcf mov r7, r3 + 3628: 68d0 and r3, r4 + 362a: 3b40 cmpnei r3, 0 + 362c: 9001 ld.w r0, (r0, 0x4) + 362e: 3300 movi r3, 0 + 3630: 9121 ld.w r1, (r1, 0x4) + 3632: 60cd addc r3, r3 + 3634: 71d9 lsr r7, r6 + 3636: 6442 cmpne r0, r1 + 3638: 6cdc or r3, r7 + 363a: 0bcf bt 0x35d8 // 35d8 <_fpadd_parts+0x44> + 363c: 9820 ld.w r1, (r14, 0x0) + 363e: 604c addu r1, r3 + 3640: 6cc7 mov r3, r1 + 3642: b223 st.w r1, (r2, 0xc) + 3644: 3bdf btsti r3, 31 + 3646: 3103 movi r1, 3 + 3648: b201 st.w r0, (r2, 0x4) + 364a: b2a2 st.w r5, (r2, 0x8) + 364c: b220 st.w r1, (r2, 0x0) + 364e: 0fe1 bf 0x3610 // 3610 <_fpadd_parts+0x7c> + 3650: 3001 movi r0, 1 + 3652: 4b21 lsri r1, r3, 1 + 3654: 68c0 and r3, r0 + 3656: 6cc4 or r3, r1 + 3658: b263 st.w r3, (r2, 0xc) + 365a: 9262 ld.w r3, (r2, 0x8) + 365c: 2300 addi r3, 1 + 365e: 6c0b mov r0, r2 + 3660: b262 st.w r3, (r2, 0x8) + 3662: 1401 addi r14, r14, 4 + 3664: 1484 pop r4-r7 + 3666: 3b42 cmpnei r3, 2 + 3668: 0bd5 bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 366a: b260 st.w r3, (r2, 0x0) + 366c: 9061 ld.w r3, (r0, 0x4) + 366e: b261 st.w r3, (r2, 0x4) + 3670: 9062 ld.w r3, (r0, 0x8) + 3672: b262 st.w r3, (r2, 0x8) + 3674: 9063 ld.w r3, (r0, 0xc) + 3676: 9121 ld.w r1, (r1, 0x4) + 3678: b263 st.w r3, (r2, 0xc) + 367a: 9061 ld.w r3, (r0, 0x4) + 367c: 68c4 and r3, r1 + 367e: b261 st.w r3, (r2, 0x4) + 3680: 6c0b mov r0, r2 + 3682: 07c8 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 3684: 604e subu r1, r3 + 3686: 6cc7 mov r3, r1 + 3688: 07ac br 0x35e0 // 35e0 <_fpadd_parts+0x4c> + 368a: 3400 movi r4, 0 + 368c: 6d5f mov r5, r7 + 368e: b880 st.w r4, (r14, 0x0) + 3690: 07a0 br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 3692: 3c44 cmpnei r4, 4 + 3694: 0bbf bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 3696: 9041 ld.w r2, (r0, 0x4) + 3698: 9161 ld.w r3, (r1, 0x4) + 369a: 64ca cmpne r2, r3 + 369c: 0fbb bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 369e: 1010 lrw r0, 0xabc0 // 36dc <_fpadd_parts+0x148> + 36a0: 07b9 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 36a2: 3600 movi r6, 0 + 36a4: 6192 subu r6, r4 + 36a6: 0790 br 0x35c6 // 35c6 <_fpadd_parts+0x32> + 36a8: 3101 movi r1, 1 + 36aa: b221 st.w r1, (r2, 0x4) + 36ac: 3100 movi r1, 0 + 36ae: 596d subu r3, r1, r3 + 36b0: b2a2 st.w r5, (r2, 0x8) + 36b2: b263 st.w r3, (r2, 0xc) + 36b4: 079c br 0x35ec // 35ec <_fpadd_parts+0x58> + 36b6: 3c40 cmpnei r4, 0 + 36b8: 0f8c bf 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36ba: 3401 movi r4, 1 + 36bc: 98e0 ld.w r7, (r14, 0x0) + 36be: 7118 lsl r4, r6 + 36c0: 71d9 lsr r7, r6 + 36c2: 6158 addu r5, r6 + 36c4: 2c00 subi r4, 1 + 36c6: 98c0 ld.w r6, (r14, 0x0) + 36c8: 6918 and r4, r6 + 36ca: 3c40 cmpnei r4, 0 + 36cc: 3400 movi r4, 0 + 36ce: 6111 addc r4, r4 + 36d0: 6dd0 or r7, r4 + 36d2: b8e0 st.w r7, (r14, 0x0) + 36d4: 077e br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36d6: 0000 bkpt + 36d8: 3fffffff .long 0x3fffffff + 36dc: 0000abc0 .long 0x0000abc0 + +000036e0 <__addsf3>: + 36e0: 14d0 push r15 + 36e2: 142e subi r14, r14, 56 + 36e4: b800 st.w r0, (r14, 0x0) + 36e6: b821 st.w r1, (r14, 0x4) + 36e8: 6c3b mov r0, r14 + 36ea: 1902 addi r1, r14, 8 + 36ec: e00006da bsr 0x44a0 // 44a0 <__unpack_f> + 36f0: 1906 addi r1, r14, 24 + 36f2: 1801 addi r0, r14, 4 + 36f4: e00006d6 bsr 0x44a0 // 44a0 <__unpack_f> + 36f8: 1a0a addi r2, r14, 40 + 36fa: 1906 addi r1, r14, 24 + 36fc: 1802 addi r0, r14, 8 + 36fe: e3ffff4b bsr 0x3594 // 3594 <_fpadd_parts> + 3702: e0000673 bsr 0x43e8 // 43e8 <__pack_f> + 3706: 140e addi r14, r14, 56 + 3708: 1490 pop r15 + ... + +0000370c <__subsf3>: + 370c: 14d0 push r15 + 370e: 142e subi r14, r14, 56 + 3710: b800 st.w r0, (r14, 0x0) + 3712: b821 st.w r1, (r14, 0x4) + 3714: 6c3b mov r0, r14 + 3716: 1902 addi r1, r14, 8 + 3718: e00006c4 bsr 0x44a0 // 44a0 <__unpack_f> + 371c: 1906 addi r1, r14, 24 + 371e: 1801 addi r0, r14, 4 + 3720: e00006c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3724: 9867 ld.w r3, (r14, 0x1c) + 3726: 3201 movi r2, 1 + 3728: 6cc9 xor r3, r2 + 372a: 1906 addi r1, r14, 24 + 372c: 1a0a addi r2, r14, 40 + 372e: 1802 addi r0, r14, 8 + 3730: b867 st.w r3, (r14, 0x1c) + 3732: e3ffff31 bsr 0x3594 // 3594 <_fpadd_parts> + 3736: e0000659 bsr 0x43e8 // 43e8 <__pack_f> + 373a: 140e addi r14, r14, 56 + 373c: 1490 pop r15 + ... + +00003740 <__mulsf3>: + 3740: 14d4 push r4-r7, r15 + 3742: 1430 subi r14, r14, 64 + 3744: b802 st.w r0, (r14, 0x8) + 3746: b823 st.w r1, (r14, 0xc) + 3748: 1802 addi r0, r14, 8 + 374a: 1904 addi r1, r14, 16 + 374c: e00006aa bsr 0x44a0 // 44a0 <__unpack_f> + 3750: 1908 addi r1, r14, 32 + 3752: 1803 addi r0, r14, 12 + 3754: e00006a6 bsr 0x44a0 // 44a0 <__unpack_f> + 3758: 9864 ld.w r3, (r14, 0x10) + 375a: 3b01 cmphsi r3, 2 + 375c: 0c4d bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 375e: 9848 ld.w r2, (r14, 0x20) + 3760: 3a01 cmphsi r2, 2 + 3762: 0c3d bf 0x37dc // 37dc <__mulsf3+0x9c> + 3764: 3b44 cmpnei r3, 4 + 3766: 0c46 bf 0x37f2 // 37f2 <__mulsf3+0xb2> + 3768: 3a44 cmpnei r2, 4 + 376a: 0c37 bf 0x37d8 // 37d8 <__mulsf3+0x98> + 376c: 3b42 cmpnei r3, 2 + 376e: 0c44 bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 3770: 3a42 cmpnei r2, 2 + 3772: 0c35 bf 0x37dc // 37dc <__mulsf3+0x9c> + 3774: 9867 ld.w r3, (r14, 0x1c) + 3776: b860 st.w r3, (r14, 0x0) + 3778: 986b ld.w r3, (r14, 0x2c) + 377a: 6c8f mov r2, r3 + 377c: b861 st.w r3, (r14, 0x4) + 377e: 9800 ld.w r0, (r14, 0x0) + 3780: 3300 movi r3, 0 + 3782: 3100 movi r1, 0 + 3784: e00005f0 bsr 0x4364 // 4364 <__muldi3> + 3788: 98c6 ld.w r6, (r14, 0x18) + 378a: 984a ld.w r2, (r14, 0x28) + 378c: 6098 addu r2, r6 + 378e: 5ac6 addi r6, r2, 2 + 3790: b8ce st.w r6, (r14, 0x38) + 3792: 98e5 ld.w r7, (r14, 0x14) + 3794: 98c9 ld.w r6, (r14, 0x24) + 3796: 659e cmpne r7, r6 + 3798: 3400 movi r4, 0 + 379a: 6111 addc r4, r4 + 379c: 39df btsti r1, 31 + 379e: 6cc7 mov r3, r1 + 37a0: 6d43 mov r5, r0 + 37a2: b88d st.w r4, (r14, 0x34) + 37a4: 0c3f bf 0x3822 // 3822 <__mulsf3+0xe2> + 37a6: 3301 movi r3, 1 + 37a8: 68c4 and r3, r1 + 37aa: 3b40 cmpnei r3, 0 + 37ac: 2202 addi r2, 3 + 37ae: 0811 bt 0x37d0 // 37d0 <__mulsf3+0x90> + 37b0: 4961 lsri r3, r1, 1 + 37b2: b84e st.w r2, (r14, 0x38) + 37b4: 317f movi r1, 127 + 37b6: 6c8f mov r2, r3 + 37b8: 6884 and r2, r1 + 37ba: 3040 movi r0, 64 + 37bc: 640a cmpne r2, r0 + 37be: 0c27 bf 0x380c // 380c <__mulsf3+0xcc> + 37c0: b86f st.w r3, (r14, 0x3c) + 37c2: 3303 movi r3, 3 + 37c4: b86c st.w r3, (r14, 0x30) + 37c6: 180c addi r0, r14, 48 + 37c8: e0000610 bsr 0x43e8 // 43e8 <__pack_f> + 37cc: 1410 addi r14, r14, 64 + 37ce: 1494 pop r4-r7, r15 + 37d0: 4801 lsri r0, r0, 1 + 37d2: 38bf bseti r0, 31 + 37d4: 6d43 mov r5, r0 + 37d6: 07ed br 0x37b0 // 37b0 <__mulsf3+0x70> + 37d8: 3b42 cmpnei r3, 2 + 37da: 0c22 bf 0x381e // 381e <__mulsf3+0xde> + 37dc: 9869 ld.w r3, (r14, 0x24) + 37de: 9845 ld.w r2, (r14, 0x14) + 37e0: 64ca cmpne r2, r3 + 37e2: 3300 movi r3, 0 + 37e4: 60cd addc r3, r3 + 37e6: 1808 addi r0, r14, 32 + 37e8: b869 st.w r3, (r14, 0x24) + 37ea: e00005ff bsr 0x43e8 // 43e8 <__pack_f> + 37ee: 1410 addi r14, r14, 64 + 37f0: 1494 pop r4-r7, r15 + 37f2: 3a42 cmpnei r2, 2 + 37f4: 0c15 bf 0x381e // 381e <__mulsf3+0xde> + 37f6: 9845 ld.w r2, (r14, 0x14) + 37f8: 9869 ld.w r3, (r14, 0x24) + 37fa: 64ca cmpne r2, r3 + 37fc: 3300 movi r3, 0 + 37fe: 60cd addc r3, r3 + 3800: 1804 addi r0, r14, 16 + 3802: b865 st.w r3, (r14, 0x14) + 3804: e00005f2 bsr 0x43e8 // 43e8 <__pack_f> + 3808: 1410 addi r14, r14, 64 + 380a: 1494 pop r4-r7, r15 + 380c: 3080 movi r0, 128 + 380e: 680c and r0, r3 + 3810: 3840 cmpnei r0, 0 + 3812: 0bd7 bt 0x37c0 // 37c0 <__mulsf3+0x80> + 3814: 3d40 cmpnei r5, 0 + 3816: 0fd5 bf 0x37c0 // 37c0 <__mulsf3+0x80> + 3818: 60c8 addu r3, r2 + 381a: 68c5 andn r3, r1 + 381c: 07d2 br 0x37c0 // 37c0 <__mulsf3+0x80> + 381e: 100d lrw r0, 0xabc0 // 3850 <__mulsf3+0x110> + 3820: 07d4 br 0x37c8 // 37c8 <__mulsf3+0x88> + 3822: 108d lrw r4, 0x3fffffff // 3854 <__mulsf3+0x114> + 3824: 6450 cmphs r4, r1 + 3826: 0fc7 bf 0x37b4 // 37b4 <__mulsf3+0x74> + 3828: 2200 addi r2, 1 + 382a: 3001 movi r0, 1 + 382c: 6c53 mov r1, r4 + 382e: 0405 br 0x3838 // 3838 <__mulsf3+0xf8> + 3830: 64c4 cmphs r1, r3 + 3832: 45a1 lsli r5, r5, 1 + 3834: 2a00 subi r2, 1 + 3836: 0c0a bf 0x384a // 384a <__mulsf3+0x10a> + 3838: 3ddf btsti r5, 31 + 383a: 6d0b mov r4, r2 + 383c: 4361 lsli r3, r3, 1 + 383e: 0ff9 bf 0x3830 // 3830 <__mulsf3+0xf0> + 3840: 6cc0 or r3, r0 + 3842: 64c4 cmphs r1, r3 + 3844: 45a1 lsli r5, r5, 1 + 3846: 2a00 subi r2, 1 + 3848: 0bf8 bt 0x3838 // 3838 <__mulsf3+0xf8> + 384a: b88e st.w r4, (r14, 0x38) + 384c: 07b4 br 0x37b4 // 37b4 <__mulsf3+0x74> + 384e: 0000 bkpt + 3850: 0000abc0 .long 0x0000abc0 + 3854: 3fffffff .long 0x3fffffff + +00003858 <__divsf3>: + 3858: 14d1 push r4, r15 + 385a: 142a subi r14, r14, 40 + 385c: b800 st.w r0, (r14, 0x0) + 385e: b821 st.w r1, (r14, 0x4) + 3860: 6c3b mov r0, r14 + 3862: 1902 addi r1, r14, 8 + 3864: e000061e bsr 0x44a0 // 44a0 <__unpack_f> + 3868: 1906 addi r1, r14, 24 + 386a: 1801 addi r0, r14, 4 + 386c: e000061a bsr 0x44a0 // 44a0 <__unpack_f> + 3870: 9862 ld.w r3, (r14, 0x8) + 3872: 3b01 cmphsi r3, 2 + 3874: 0c2c bf 0x38cc // 38cc <__divsf3+0x74> + 3876: 9826 ld.w r1, (r14, 0x18) + 3878: 3901 cmphsi r1, 2 + 387a: 0c48 bf 0x390a // 390a <__divsf3+0xb2> + 387c: 9843 ld.w r2, (r14, 0xc) + 387e: 9807 ld.w r0, (r14, 0x1c) + 3880: 6c81 xor r2, r0 + 3882: 3b44 cmpnei r3, 4 + 3884: b843 st.w r2, (r14, 0xc) + 3886: 0c28 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 3888: 3b42 cmpnei r3, 2 + 388a: 0c26 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 388c: 3944 cmpnei r1, 4 + 388e: 0c2c bf 0x38e6 // 38e6 <__divsf3+0x8e> + 3890: 3942 cmpnei r1, 2 + 3892: 0c38 bf 0x3902 // 3902 <__divsf3+0xaa> + 3894: 9844 ld.w r2, (r14, 0x10) + 3896: 9868 ld.w r3, (r14, 0x20) + 3898: 608e subu r2, r3 + 389a: 9809 ld.w r0, (r14, 0x24) + 389c: 9865 ld.w r3, (r14, 0x14) + 389e: 640c cmphs r3, r0 + 38a0: b844 st.w r2, (r14, 0x10) + 38a2: 0c1e bf 0x38de // 38de <__divsf3+0x86> + 38a4: 3180 movi r1, 128 + 38a6: 321f movi r2, 31 + 38a8: 3400 movi r4, 0 + 38aa: 4137 lsli r1, r1, 23 + 38ac: 640c cmphs r3, r0 + 38ae: 0c03 bf 0x38b4 // 38b4 <__divsf3+0x5c> + 38b0: 6d04 or r4, r1 + 38b2: 60c2 subu r3, r0 + 38b4: 2a00 subi r2, 1 + 38b6: 3a40 cmpnei r2, 0 + 38b8: 4921 lsri r1, r1, 1 + 38ba: 4361 lsli r3, r3, 1 + 38bc: 0bf8 bt 0x38ac // 38ac <__divsf3+0x54> + 38be: 317f movi r1, 127 + 38c0: 6c93 mov r2, r4 + 38c2: 6884 and r2, r1 + 38c4: 3040 movi r0, 64 + 38c6: 640a cmpne r2, r0 + 38c8: 0c14 bf 0x38f0 // 38f0 <__divsf3+0x98> + 38ca: b885 st.w r4, (r14, 0x14) + 38cc: 1802 addi r0, r14, 8 + 38ce: e000058d bsr 0x43e8 // 43e8 <__pack_f> + 38d2: 140a addi r14, r14, 40 + 38d4: 1491 pop r4, r15 + 38d6: 644e cmpne r3, r1 + 38d8: 0bfa bt 0x38cc // 38cc <__divsf3+0x74> + 38da: 100e lrw r0, 0xabc0 // 3910 <__divsf3+0xb8> + 38dc: 07f9 br 0x38ce // 38ce <__divsf3+0x76> + 38de: 2a00 subi r2, 1 + 38e0: 4361 lsli r3, r3, 1 + 38e2: b844 st.w r2, (r14, 0x10) + 38e4: 07e0 br 0x38a4 // 38a4 <__divsf3+0x4c> + 38e6: 3300 movi r3, 0 + 38e8: b865 st.w r3, (r14, 0x14) + 38ea: b864 st.w r3, (r14, 0x10) + 38ec: 1802 addi r0, r14, 8 + 38ee: 07f0 br 0x38ce // 38ce <__divsf3+0x76> + 38f0: 3080 movi r0, 128 + 38f2: 6810 and r0, r4 + 38f4: 3840 cmpnei r0, 0 + 38f6: 0bea bt 0x38ca // 38ca <__divsf3+0x72> + 38f8: 3b40 cmpnei r3, 0 + 38fa: 0fe8 bf 0x38ca // 38ca <__divsf3+0x72> + 38fc: 6108 addu r4, r2 + 38fe: 6905 andn r4, r1 + 3900: 07e5 br 0x38ca // 38ca <__divsf3+0x72> + 3902: 3304 movi r3, 4 + 3904: b862 st.w r3, (r14, 0x8) + 3906: 1802 addi r0, r14, 8 + 3908: 07e3 br 0x38ce // 38ce <__divsf3+0x76> + 390a: 1806 addi r0, r14, 24 + 390c: 07e1 br 0x38ce // 38ce <__divsf3+0x76> + 390e: 0000 bkpt + 3910: 0000abc0 .long 0x0000abc0 + +00003914 <__nesf2>: + 3914: 14d0 push r15 + 3916: 142a subi r14, r14, 40 + 3918: b800 st.w r0, (r14, 0x0) + 391a: b821 st.w r1, (r14, 0x4) + 391c: 6c3b mov r0, r14 + 391e: 1902 addi r1, r14, 8 + 3920: e00005c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3924: 1906 addi r1, r14, 24 + 3926: 1801 addi r0, r14, 4 + 3928: e00005bc bsr 0x44a0 // 44a0 <__unpack_f> + 392c: 9862 ld.w r3, (r14, 0x8) + 392e: 3b01 cmphsi r3, 2 + 3930: 0c0a bf 0x3944 // 3944 <__nesf2+0x30> + 3932: 9866 ld.w r3, (r14, 0x18) + 3934: 3b01 cmphsi r3, 2 + 3936: 0c07 bf 0x3944 // 3944 <__nesf2+0x30> + 3938: 1906 addi r1, r14, 24 + 393a: 1802 addi r0, r14, 8 + 393c: e00005f4 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3940: 140a addi r14, r14, 40 + 3942: 1490 pop r15 + 3944: 3001 movi r0, 1 + 3946: 140a addi r14, r14, 40 + 3948: 1490 pop r15 + ... + +0000394c <__gesf2>: + 394c: 14d0 push r15 + 394e: 142a subi r14, r14, 40 + 3950: b800 st.w r0, (r14, 0x0) + 3952: b821 st.w r1, (r14, 0x4) + 3954: 6c3b mov r0, r14 + 3956: 1902 addi r1, r14, 8 + 3958: e00005a4 bsr 0x44a0 // 44a0 <__unpack_f> + 395c: 1906 addi r1, r14, 24 + 395e: 1801 addi r0, r14, 4 + 3960: e00005a0 bsr 0x44a0 // 44a0 <__unpack_f> + 3964: 9862 ld.w r3, (r14, 0x8) + 3966: 3b01 cmphsi r3, 2 + 3968: 0c0a bf 0x397c // 397c <__gesf2+0x30> + 396a: 9866 ld.w r3, (r14, 0x18) + 396c: 3b01 cmphsi r3, 2 + 396e: 0c07 bf 0x397c // 397c <__gesf2+0x30> + 3970: 1906 addi r1, r14, 24 + 3972: 1802 addi r0, r14, 8 + 3974: e00005d8 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3978: 140a addi r14, r14, 40 + 397a: 1490 pop r15 + 397c: 3000 movi r0, 0 + 397e: 2800 subi r0, 1 + 3980: 140a addi r14, r14, 40 + 3982: 1490 pop r15 + +00003984 <__floatsisf>: + 3984: 14d1 push r4, r15 + 3986: 1424 subi r14, r14, 16 + 3988: 3303 movi r3, 3 + 398a: b860 st.w r3, (r14, 0x0) + 398c: 3840 cmpnei r0, 0 + 398e: 487f lsri r3, r0, 31 + 3990: b861 st.w r3, (r14, 0x4) + 3992: 0808 bt 0x39a2 // 39a2 <__floatsisf+0x1e> + 3994: 3302 movi r3, 2 + 3996: b860 st.w r3, (r14, 0x0) + 3998: 6c3b mov r0, r14 + 399a: e0000527 bsr 0x43e8 // 43e8 <__pack_f> + 399e: 1404 addi r14, r14, 16 + 39a0: 1491 pop r4, r15 + 39a2: 331e movi r3, 30 + 39a4: 38df btsti r0, 31 + 39a6: b862 st.w r3, (r14, 0x8) + 39a8: 080f bt 0x39c6 // 39c6 <__floatsisf+0x42> + 39aa: 6d03 mov r4, r0 + 39ac: 6c13 mov r0, r4 + 39ae: e00004fd bsr 0x43a8 // 43a8 <__clzsi2> + 39b2: 5863 subi r3, r0, 1 + 39b4: 3b40 cmpnei r3, 0 + 39b6: 0c14 bf 0x39de // 39de <__floatsisf+0x5a> + 39b8: 6c13 mov r0, r4 + 39ba: 321e movi r2, 30 + 39bc: 700c lsl r0, r3 + 39be: 5a6d subu r3, r2, r3 + 39c0: b803 st.w r0, (r14, 0xc) + 39c2: b862 st.w r3, (r14, 0x8) + 39c4: 07ea br 0x3998 // 3998 <__floatsisf+0x14> + 39c6: 3380 movi r3, 128 + 39c8: 4378 lsli r3, r3, 24 + 39ca: 64c2 cmpne r0, r3 + 39cc: 0c0b bf 0x39e2 // 39e2 <__floatsisf+0x5e> + 39ce: 3400 movi r4, 0 + 39d0: 6102 subu r4, r0 + 39d2: 6c13 mov r0, r4 + 39d4: e00004ea bsr 0x43a8 // 43a8 <__clzsi2> + 39d8: 5863 subi r3, r0, 1 + 39da: 3b40 cmpnei r3, 0 + 39dc: 0bee bt 0x39b8 // 39b8 <__floatsisf+0x34> + 39de: b883 st.w r4, (r14, 0xc) + 39e0: 07dc br 0x3998 // 3998 <__floatsisf+0x14> + 39e2: 30cf movi r0, 207 + 39e4: 4018 lsli r0, r0, 24 + 39e6: 07dc br 0x399e // 399e <__floatsisf+0x1a> + +000039e8 <__fixsfsi>: + 39e8: 14d0 push r15 + 39ea: 1425 subi r14, r14, 20 + 39ec: b800 st.w r0, (r14, 0x0) + 39ee: 1901 addi r1, r14, 4 + 39f0: 6c3b mov r0, r14 + 39f2: e0000557 bsr 0x44a0 // 44a0 <__unpack_f> + 39f6: 9861 ld.w r3, (r14, 0x4) + 39f8: 3b02 cmphsi r3, 3 + 39fa: 0c1b bf 0x3a30 // 3a30 <__fixsfsi+0x48> + 39fc: 3b44 cmpnei r3, 4 + 39fe: 0c06 bf 0x3a0a // 3a0a <__fixsfsi+0x22> + 3a00: 9863 ld.w r3, (r14, 0xc) + 3a02: 3bdf btsti r3, 31 + 3a04: 0816 bt 0x3a30 // 3a30 <__fixsfsi+0x48> + 3a06: 3b3e cmplti r3, 31 + 3a08: 0809 bt 0x3a1a // 3a1a <__fixsfsi+0x32> + 3a0a: 9862 ld.w r3, (r14, 0x8) + 3a0c: 3b40 cmpnei r3, 0 + 3a0e: 3000 movi r0, 0 + 3a10: 6001 addc r0, r0 + 3a12: 106a lrw r3, 0x7fffffff // 3a38 <__fixsfsi+0x50> + 3a14: 600c addu r0, r3 + 3a16: 1405 addi r14, r14, 20 + 3a18: 1490 pop r15 + 3a1a: 321e movi r2, 30 + 3a1c: 5a6d subu r3, r2, r3 + 3a1e: 9804 ld.w r0, (r14, 0x10) + 3a20: 700d lsr r0, r3 + 3a22: 9862 ld.w r3, (r14, 0x8) + 3a24: 3b40 cmpnei r3, 0 + 3a26: 0ff8 bf 0x3a16 // 3a16 <__fixsfsi+0x2e> + 3a28: 3300 movi r3, 0 + 3a2a: 5b01 subu r0, r3, r0 + 3a2c: 1405 addi r14, r14, 20 + 3a2e: 1490 pop r15 + 3a30: 3000 movi r0, 0 + 3a32: 1405 addi r14, r14, 20 + 3a34: 1490 pop r15 + 3a36: 0000 bkpt + 3a38: 7fffffff .long 0x7fffffff + +00003a3c <__extendsfdf2>: + 3a3c: 14d1 push r4, r15 + 3a3e: 1426 subi r14, r14, 24 + 3a40: b801 st.w r0, (r14, 0x4) + 3a42: 1902 addi r1, r14, 8 + 3a44: 1801 addi r0, r14, 4 + 3a46: e000052d bsr 0x44a0 // 44a0 <__unpack_f> + 3a4a: 9865 ld.w r3, (r14, 0x14) + 3a4c: 4b82 lsri r4, r3, 2 + 3a4e: 9844 ld.w r2, (r14, 0x10) + 3a50: 437e lsli r3, r3, 30 + 3a52: 9823 ld.w r1, (r14, 0xc) + 3a54: 9802 ld.w r0, (r14, 0x8) + 3a56: b880 st.w r4, (r14, 0x0) + 3a58: e0000430 bsr 0x42b8 // 42b8 <__make_dp> + 3a5c: 1406 addi r14, r14, 24 + 3a5e: 1491 pop r4, r15 + +00003a60 <_fpadd_parts>: + 3a60: 14c4 push r4-r7 + 3a62: 142a subi r14, r14, 40 + 3a64: 9060 ld.w r3, (r0, 0x0) + 3a66: 3b01 cmphsi r3, 2 + 3a68: 6dcb mov r7, r2 + 3a6a: 0c67 bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3a6c: 9140 ld.w r2, (r1, 0x0) + 3a6e: 3a01 cmphsi r2, 2 + 3a70: 0c66 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a72: 3b44 cmpnei r3, 4 + 3a74: 0cde bf 0x3c30 // 3c30 <_fpadd_parts+0x1d0> + 3a76: 3a44 cmpnei r2, 4 + 3a78: 0c62 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a7a: 3a42 cmpnei r2, 2 + 3a7c: 0cb7 bf 0x3bea // 3bea <_fpadd_parts+0x18a> + 3a7e: 3b42 cmpnei r3, 2 + 3a80: 0c5e bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a82: 9043 ld.w r2, (r0, 0xc) + 3a84: 9064 ld.w r3, (r0, 0x10) + 3a86: 9082 ld.w r4, (r0, 0x8) + 3a88: 91a2 ld.w r5, (r1, 0x8) + 3a8a: b842 st.w r2, (r14, 0x8) + 3a8c: b863 st.w r3, (r14, 0xc) + 3a8e: 9143 ld.w r2, (r1, 0xc) + 3a90: 9164 ld.w r3, (r1, 0x10) + 3a92: b840 st.w r2, (r14, 0x0) + 3a94: b861 st.w r3, (r14, 0x4) + 3a96: 5c75 subu r3, r4, r5 + 3a98: 3bdf btsti r3, 31 + 3a9a: 6c8f mov r2, r3 + 3a9c: 08d2 bt 0x3c40 // 3c40 <_fpadd_parts+0x1e0> + 3a9e: 363f movi r6, 63 + 3aa0: 6499 cmplt r6, r2 + 3aa2: 0c50 bf 0x3b42 // 3b42 <_fpadd_parts+0xe2> + 3aa4: 6515 cmplt r5, r4 + 3aa6: 0cbf bf 0x3c24 // 3c24 <_fpadd_parts+0x1c4> + 3aa8: 3200 movi r2, 0 + 3aaa: 3300 movi r3, 0 + 3aac: b840 st.w r2, (r14, 0x0) + 3aae: b861 st.w r3, (r14, 0x4) + 3ab0: 9061 ld.w r3, (r0, 0x4) + 3ab2: 9141 ld.w r2, (r1, 0x4) + 3ab4: 648e cmpne r3, r2 + 3ab6: 0c78 bf 0x3ba6 // 3ba6 <_fpadd_parts+0x146> + 3ab8: 3b40 cmpnei r3, 0 + 3aba: 0cad bf 0x3c14 // 3c14 <_fpadd_parts+0x1b4> + 3abc: 9800 ld.w r0, (r14, 0x0) + 3abe: 9821 ld.w r1, (r14, 0x4) + 3ac0: 9842 ld.w r2, (r14, 0x8) + 3ac2: 9863 ld.w r3, (r14, 0xc) + 3ac4: 6400 cmphs r0, r0 + 3ac6: 600b subc r0, r2 + 3ac8: 604f subc r1, r3 + 3aca: 39df btsti r1, 31 + 3acc: 08bd bt 0x3c46 // 3c46 <_fpadd_parts+0x1e6> + 3ace: 3300 movi r3, 0 + 3ad0: b761 st.w r3, (r7, 0x4) + 3ad2: b782 st.w r4, (r7, 0x8) + 3ad4: 6c83 mov r2, r0 + 3ad6: 6cc7 mov r3, r1 + 3ad8: b703 st.w r0, (r7, 0xc) + 3ada: b724 st.w r1, (r7, 0x10) + 3adc: 3000 movi r0, 0 + 3ade: 3100 movi r1, 0 + 3ae0: 2800 subi r0, 1 + 3ae2: 2900 subi r1, 1 + 3ae4: 6401 cmplt r0, r0 + 3ae6: 6009 addc r0, r2 + 3ae8: 604d addc r1, r3 + 3aea: 038f lrw r4, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3aec: 6450 cmphs r4, r1 + 3aee: 0c67 bf 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3af0: 6506 cmpne r1, r4 + 3af2: 0cfd bf 0x3cec // 3cec <_fpadd_parts+0x28c> + 3af4: 3000 movi r0, 0 + 3af6: 9722 ld.w r1, (r7, 0x8) + 3af8: 2801 subi r0, 2 + 3afa: 2900 subi r1, 1 + 3afc: 03d4 lrw r6, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3afe: b802 st.w r0, (r14, 0x8) + 3b00: b8e0 st.w r7, (r14, 0x0) + 3b02: 0403 br 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3b04: 6596 cmpne r5, r6 + 3b06: 0c83 bf 0x3c0c // 3c0c <_fpadd_parts+0x1ac> + 3b08: 4301 lsli r0, r3, 1 + 3b0a: 4a9f lsri r4, r2, 31 + 3b0c: 6d00 or r4, r0 + 3b0e: 42a1 lsli r5, r2, 1 + 3b10: 6c97 mov r2, r5 + 3b12: 6cd3 mov r3, r4 + 3b14: 3500 movi r5, 0 + 3b16: 3400 movi r4, 0 + 3b18: 2c00 subi r4, 1 + 3b1a: 2d00 subi r5, 1 + 3b1c: 6511 cmplt r4, r4 + 3b1e: 6109 addc r4, r2 + 3b20: 614d addc r5, r3 + 3b22: 6558 cmphs r6, r5 + 3b24: 6c07 mov r0, r1 + 3b26: 2900 subi r1, 1 + 3b28: 0bee bt 0x3b04 // 3b04 <_fpadd_parts+0xa4> + 3b2a: 98e0 ld.w r7, (r14, 0x0) + 3b2c: b743 st.w r2, (r7, 0xc) + 3b2e: b764 st.w r3, (r7, 0x10) + 3b30: 3303 movi r3, 3 + 3b32: b702 st.w r0, (r7, 0x8) + 3b34: b760 st.w r3, (r7, 0x0) + 3b36: 6c1f mov r0, r7 + 3b38: 140a addi r14, r14, 40 + 3b3a: 1484 pop r4-r7 + 3b3c: 6c07 mov r0, r1 + 3b3e: 140a addi r14, r14, 40 + 3b40: 1484 pop r4-r7 + 3b42: 3b20 cmplti r3, 1 + 3b44: 088c bt 0x3c5c // 3c5c <_fpadd_parts+0x1fc> + 3b46: 3300 movi r3, 0 + 3b48: 2b1f subi r3, 32 + 3b4a: 60c8 addu r3, r2 + 3b4c: 3bdf btsti r3, 31 + 3b4e: b866 st.w r3, (r14, 0x18) + 3b50: 08bb bt 0x3cc6 // 3cc6 <_fpadd_parts+0x266> + 3b52: 98a1 ld.w r5, (r14, 0x4) + 3b54: 714d lsr r5, r3 + 3b56: b8a4 st.w r5, (r14, 0x10) + 3b58: 3500 movi r5, 0 + 3b5a: b8a5 st.w r5, (r14, 0x14) + 3b5c: 9866 ld.w r3, (r14, 0x18) + 3b5e: 3bdf btsti r3, 31 + 3b60: 3500 movi r5, 0 + 3b62: 3600 movi r6, 0 + 3b64: 08ad bt 0x3cbe // 3cbe <_fpadd_parts+0x25e> + 3b66: 3201 movi r2, 1 + 3b68: 708c lsl r2, r3 + 3b6a: 6d8b mov r6, r2 + 3b6c: 3200 movi r2, 0 + 3b6e: 3300 movi r3, 0 + 3b70: 2a00 subi r2, 1 + 3b72: 2b00 subi r3, 1 + 3b74: 6489 cmplt r2, r2 + 3b76: 6095 addc r2, r5 + 3b78: 60d9 addc r3, r6 + 3b7a: 98a0 ld.w r5, (r14, 0x0) + 3b7c: 98c1 ld.w r6, (r14, 0x4) + 3b7e: 6948 and r5, r2 + 3b80: 698c and r6, r3 + 3b82: 6c97 mov r2, r5 + 3b84: 6cdb mov r3, r6 + 3b86: 6c8c or r2, r3 + 3b88: 3a40 cmpnei r2, 0 + 3b8a: 3500 movi r5, 0 + 3b8c: 6155 addc r5, r5 + 3b8e: 6c97 mov r2, r5 + 3b90: 3300 movi r3, 0 + 3b92: 98a4 ld.w r5, (r14, 0x10) + 3b94: 98c5 ld.w r6, (r14, 0x14) + 3b96: 6d48 or r5, r2 + 3b98: 6d8c or r6, r3 + 3b9a: 9061 ld.w r3, (r0, 0x4) + 3b9c: 9141 ld.w r2, (r1, 0x4) + 3b9e: 648e cmpne r3, r2 + 3ba0: b8a0 st.w r5, (r14, 0x0) + 3ba2: b8c1 st.w r6, (r14, 0x4) + 3ba4: 0b8a bt 0x3ab8 // 3ab8 <_fpadd_parts+0x58> + 3ba6: b761 st.w r3, (r7, 0x4) + 3ba8: 9800 ld.w r0, (r14, 0x0) + 3baa: 9821 ld.w r1, (r14, 0x4) + 3bac: 9842 ld.w r2, (r14, 0x8) + 3bae: 9863 ld.w r3, (r14, 0xc) + 3bb0: 6489 cmplt r2, r2 + 3bb2: 6081 addc r2, r0 + 3bb4: 60c5 addc r3, r1 + 3bb6: b782 st.w r4, (r7, 0x8) + 3bb8: b743 st.w r2, (r7, 0xc) + 3bba: b764 st.w r3, (r7, 0x10) + 3bbc: 3103 movi r1, 3 + 3bbe: b720 st.w r1, (r7, 0x0) + 3bc0: 123b lrw r1, 0x1fffffff // 3d2c <_fpadd_parts+0x2cc> + 3bc2: 64c4 cmphs r1, r3 + 3bc4: 0810 bt 0x3be4 // 3be4 <_fpadd_parts+0x184> + 3bc6: 439f lsli r4, r3, 31 + 3bc8: 4a01 lsri r0, r2, 1 + 3bca: 6c10 or r0, r4 + 3bcc: 3500 movi r5, 0 + 3bce: 3401 movi r4, 1 + 3bd0: 4b21 lsri r1, r3, 1 + 3bd2: 6890 and r2, r4 + 3bd4: 68d4 and r3, r5 + 3bd6: 6c80 or r2, r0 + 3bd8: 6cc4 or r3, r1 + 3bda: b743 st.w r2, (r7, 0xc) + 3bdc: b764 st.w r3, (r7, 0x10) + 3bde: 9762 ld.w r3, (r7, 0x8) + 3be0: 2300 addi r3, 1 + 3be2: b762 st.w r3, (r7, 0x8) + 3be4: 6c1f mov r0, r7 + 3be6: 140a addi r14, r14, 40 + 3be8: 1484 pop r4-r7 + 3bea: 3b42 cmpnei r3, 2 + 3bec: 0ba6 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3bee: b760 st.w r3, (r7, 0x0) + 3bf0: 9061 ld.w r3, (r0, 0x4) + 3bf2: b761 st.w r3, (r7, 0x4) + 3bf4: 9062 ld.w r3, (r0, 0x8) + 3bf6: b762 st.w r3, (r7, 0x8) + 3bf8: 9063 ld.w r3, (r0, 0xc) + 3bfa: b763 st.w r3, (r7, 0xc) + 3bfc: 9064 ld.w r3, (r0, 0x10) + 3bfe: 9141 ld.w r2, (r1, 0x4) + 3c00: b764 st.w r3, (r7, 0x10) + 3c02: 9061 ld.w r3, (r0, 0x4) + 3c04: 68c8 and r3, r2 + 3c06: b761 st.w r3, (r7, 0x4) + 3c08: 6c1f mov r0, r7 + 3c0a: 0797 br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c0c: 98e2 ld.w r7, (r14, 0x8) + 3c0e: 651c cmphs r7, r4 + 3c10: 0b7c bt 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3c12: 078c br 0x3b2a // 3b2a <_fpadd_parts+0xca> + 3c14: 9802 ld.w r0, (r14, 0x8) + 3c16: 9823 ld.w r1, (r14, 0xc) + 3c18: 9840 ld.w r2, (r14, 0x0) + 3c1a: 9861 ld.w r3, (r14, 0x4) + 3c1c: 6400 cmphs r0, r0 + 3c1e: 600b subc r0, r2 + 3c20: 604f subc r1, r3 + 3c22: 0754 br 0x3aca // 3aca <_fpadd_parts+0x6a> + 3c24: 3200 movi r2, 0 + 3c26: 3300 movi r3, 0 + 3c28: 6d17 mov r4, r5 + 3c2a: b842 st.w r2, (r14, 0x8) + 3c2c: b863 st.w r3, (r14, 0xc) + 3c2e: 0741 br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c30: 3a44 cmpnei r2, 4 + 3c32: 0b83 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c34: 9041 ld.w r2, (r0, 0x4) + 3c36: 9161 ld.w r3, (r1, 0x4) + 3c38: 64ca cmpne r2, r3 + 3c3a: 0f7f bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c3c: 111d lrw r0, 0xabd0 // 3d30 <_fpadd_parts+0x2d0> + 3c3e: 077d br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c40: 3200 movi r2, 0 + 3c42: 608e subu r2, r3 + 3c44: 072d br 0x3a9e // 3a9e <_fpadd_parts+0x3e> + 3c46: 3301 movi r3, 1 + 3c48: b761 st.w r3, (r7, 0x4) + 3c4a: 3200 movi r2, 0 + 3c4c: 3300 movi r3, 0 + 3c4e: 6488 cmphs r2, r2 + 3c50: 6083 subc r2, r0 + 3c52: 60c7 subc r3, r1 + 3c54: b782 st.w r4, (r7, 0x8) + 3c56: b743 st.w r2, (r7, 0xc) + 3c58: b764 st.w r3, (r7, 0x10) + 3c5a: 0741 br 0x3adc // 3adc <_fpadd_parts+0x7c> + 3c5c: 3b40 cmpnei r3, 0 + 3c5e: 0f29 bf 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c60: 3300 movi r3, 0 + 3c62: 2b1f subi r3, 32 + 3c64: 60c8 addu r3, r2 + 3c66: 3bdf btsti r3, 31 + 3c68: 6108 addu r4, r2 + 3c6a: b866 st.w r3, (r14, 0x18) + 3c6c: 0849 bt 0x3cfe // 3cfe <_fpadd_parts+0x29e> + 3c6e: 9863 ld.w r3, (r14, 0xc) + 3c70: 98a6 ld.w r5, (r14, 0x18) + 3c72: 70d5 lsr r3, r5 + 3c74: b864 st.w r3, (r14, 0x10) + 3c76: 3300 movi r3, 0 + 3c78: b865 st.w r3, (r14, 0x14) + 3c7a: 9866 ld.w r3, (r14, 0x18) + 3c7c: 3bdf btsti r3, 31 + 3c7e: 3500 movi r5, 0 + 3c80: 3600 movi r6, 0 + 3c82: 083a bt 0x3cf6 // 3cf6 <_fpadd_parts+0x296> + 3c84: 3201 movi r2, 1 + 3c86: 708c lsl r2, r3 + 3c88: 6d8b mov r6, r2 + 3c8a: 3200 movi r2, 0 + 3c8c: 3300 movi r3, 0 + 3c8e: 2a00 subi r2, 1 + 3c90: 2b00 subi r3, 1 + 3c92: 6489 cmplt r2, r2 + 3c94: 6095 addc r2, r5 + 3c96: 60d9 addc r3, r6 + 3c98: 98a2 ld.w r5, (r14, 0x8) + 3c9a: 98c3 ld.w r6, (r14, 0xc) + 3c9c: 6948 and r5, r2 + 3c9e: 698c and r6, r3 + 3ca0: 6c97 mov r2, r5 + 3ca2: 6cdb mov r3, r6 + 3ca4: 6c8c or r2, r3 + 3ca6: 3a40 cmpnei r2, 0 + 3ca8: 3500 movi r5, 0 + 3caa: 6155 addc r5, r5 + 3cac: 6c97 mov r2, r5 + 3cae: 3300 movi r3, 0 + 3cb0: 98a4 ld.w r5, (r14, 0x10) + 3cb2: 98c5 ld.w r6, (r14, 0x14) + 3cb4: 6d48 or r5, r2 + 3cb6: 6d8c or r6, r3 + 3cb8: b8a2 st.w r5, (r14, 0x8) + 3cba: b8c3 st.w r6, (r14, 0xc) + 3cbc: 06fa br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3cbe: 3301 movi r3, 1 + 3cc0: 70c8 lsl r3, r2 + 3cc2: 6d4f mov r5, r3 + 3cc4: 0754 br 0x3b6c // 3b6c <_fpadd_parts+0x10c> + 3cc6: 9861 ld.w r3, (r14, 0x4) + 3cc8: 361f movi r6, 31 + 3cca: 43a1 lsli r5, r3, 1 + 3ccc: 618a subu r6, r2 + 3cce: 7158 lsl r5, r6 + 3cd0: b8a9 st.w r5, (r14, 0x24) + 3cd2: 98a0 ld.w r5, (r14, 0x0) + 3cd4: 98c1 ld.w r6, (r14, 0x4) + 3cd6: b8a7 st.w r5, (r14, 0x1c) + 3cd8: b8c8 st.w r6, (r14, 0x20) + 3cda: 9867 ld.w r3, (r14, 0x1c) + 3cdc: 70c9 lsr r3, r2 + 3cde: 98a9 ld.w r5, (r14, 0x24) + 3ce0: 6cd4 or r3, r5 + 3ce2: b864 st.w r3, (r14, 0x10) + 3ce4: 9868 ld.w r3, (r14, 0x20) + 3ce6: 70c9 lsr r3, r2 + 3ce8: b865 st.w r3, (r14, 0x14) + 3cea: 0739 br 0x3b5c // 3b5c <_fpadd_parts+0xfc> + 3cec: 3100 movi r1, 0 + 3cee: 2901 subi r1, 2 + 3cf0: 6404 cmphs r1, r0 + 3cf2: 0b01 bt 0x3af4 // 3af4 <_fpadd_parts+0x94> + 3cf4: 0764 br 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3cf6: 3301 movi r3, 1 + 3cf8: 70c8 lsl r3, r2 + 3cfa: 6d4f mov r5, r3 + 3cfc: 07c7 br 0x3c8a // 3c8a <_fpadd_parts+0x22a> + 3cfe: 9863 ld.w r3, (r14, 0xc) + 3d00: 43c1 lsli r6, r3, 1 + 3d02: 351f movi r5, 31 + 3d04: 5d69 subu r3, r5, r2 + 3d06: 6d5b mov r5, r6 + 3d08: 714c lsl r5, r3 + 3d0a: b8a9 st.w r5, (r14, 0x24) + 3d0c: 98a2 ld.w r5, (r14, 0x8) + 3d0e: 98c3 ld.w r6, (r14, 0xc) + 3d10: b8a7 st.w r5, (r14, 0x1c) + 3d12: b8c8 st.w r6, (r14, 0x20) + 3d14: 9867 ld.w r3, (r14, 0x1c) + 3d16: 70c9 lsr r3, r2 + 3d18: 98a9 ld.w r5, (r14, 0x24) + 3d1a: 6cd4 or r3, r5 + 3d1c: b864 st.w r3, (r14, 0x10) + 3d1e: 9868 ld.w r3, (r14, 0x20) + 3d20: 70c9 lsr r3, r2 + 3d22: b865 st.w r3, (r14, 0x14) + 3d24: 07ab br 0x3c7a // 3c7a <_fpadd_parts+0x21a> + 3d26: 0000 bkpt + 3d28: 0fffffff .long 0x0fffffff + 3d2c: 1fffffff .long 0x1fffffff + 3d30: 0000abd0 .long 0x0000abd0 + +00003d34 <__adddf3>: + 3d34: 14d0 push r15 + 3d36: 1433 subi r14, r14, 76 + 3d38: b800 st.w r0, (r14, 0x0) + 3d3a: b821 st.w r1, (r14, 0x4) + 3d3c: 6c3b mov r0, r14 + 3d3e: 1904 addi r1, r14, 16 + 3d40: b863 st.w r3, (r14, 0xc) + 3d42: b842 st.w r2, (r14, 0x8) + 3d44: e0000506 bsr 0x4750 // 4750 <__unpack_d> + 3d48: 1909 addi r1, r14, 36 + 3d4a: 1802 addi r0, r14, 8 + 3d4c: e0000502 bsr 0x4750 // 4750 <__unpack_d> + 3d50: 1a0e addi r2, r14, 56 + 3d52: 1909 addi r1, r14, 36 + 3d54: 1804 addi r0, r14, 16 + 3d56: e3fffe85 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d5a: e000042d bsr 0x45b4 // 45b4 <__pack_d> + 3d5e: 1413 addi r14, r14, 76 + 3d60: 1490 pop r15 + ... + +00003d64 <__subdf3>: + 3d64: 14d0 push r15 + 3d66: 1433 subi r14, r14, 76 + 3d68: b800 st.w r0, (r14, 0x0) + 3d6a: b821 st.w r1, (r14, 0x4) + 3d6c: 6c3b mov r0, r14 + 3d6e: 1904 addi r1, r14, 16 + 3d70: b842 st.w r2, (r14, 0x8) + 3d72: b863 st.w r3, (r14, 0xc) + 3d74: e00004ee bsr 0x4750 // 4750 <__unpack_d> + 3d78: 1909 addi r1, r14, 36 + 3d7a: 1802 addi r0, r14, 8 + 3d7c: e00004ea bsr 0x4750 // 4750 <__unpack_d> + 3d80: 986a ld.w r3, (r14, 0x28) + 3d82: 3201 movi r2, 1 + 3d84: 6cc9 xor r3, r2 + 3d86: 1909 addi r1, r14, 36 + 3d88: 1a0e addi r2, r14, 56 + 3d8a: 1804 addi r0, r14, 16 + 3d8c: b86a st.w r3, (r14, 0x28) + 3d8e: e3fffe69 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d92: e0000411 bsr 0x45b4 // 45b4 <__pack_d> + 3d96: 1413 addi r14, r14, 76 + 3d98: 1490 pop r15 + ... + +00003d9c <__muldf3>: + 3d9c: 14d4 push r4-r7, r15 + 3d9e: 143b subi r14, r14, 108 + 3da0: b808 st.w r0, (r14, 0x20) + 3da2: b829 st.w r1, (r14, 0x24) + 3da4: 1808 addi r0, r14, 32 + 3da6: 190c addi r1, r14, 48 + 3da8: b86b st.w r3, (r14, 0x2c) + 3daa: b84a st.w r2, (r14, 0x28) + 3dac: e00004d2 bsr 0x4750 // 4750 <__unpack_d> + 3db0: 1911 addi r1, r14, 68 + 3db2: 180a addi r0, r14, 40 + 3db4: e00004ce bsr 0x4750 // 4750 <__unpack_d> + 3db8: 986c ld.w r3, (r14, 0x30) + 3dba: 3b01 cmphsi r3, 2 + 3dbc: 0cac bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dbe: 9851 ld.w r2, (r14, 0x44) + 3dc0: 3a01 cmphsi r2, 2 + 3dc2: 0c9c bf 0x3efa // 3efa <__muldf3+0x15e> + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0ca5 bf 0x3f10 // 3f10 <__muldf3+0x174> + 3dc8: 3a44 cmpnei r2, 4 + 3dca: 0c96 bf 0x3ef6 // 3ef6 <__muldf3+0x15a> + 3dcc: 3b42 cmpnei r3, 2 + 3dce: 0ca3 bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dd0: 3a42 cmpnei r2, 2 + 3dd2: 0c94 bf 0x3efa // 3efa <__muldf3+0x15e> + 3dd4: 98ef ld.w r7, (r14, 0x3c) + 3dd6: 98b4 ld.w r5, (r14, 0x50) + 3dd8: 9875 ld.w r3, (r14, 0x54) + 3dda: 6d8f mov r6, r3 + 3ddc: 6c9f mov r2, r7 + 3dde: 3300 movi r3, 0 + 3de0: 6c17 mov r0, r5 + 3de2: 3100 movi r1, 0 + 3de4: e00002c0 bsr 0x4364 // 4364 <__muldi3> + 3de8: b804 st.w r0, (r14, 0x10) + 3dea: b825 st.w r1, (r14, 0x14) + 3dec: 6c9f mov r2, r7 + 3dee: 3300 movi r3, 0 + 3df0: 6c1b mov r0, r6 + 3df2: 3100 movi r1, 0 + 3df4: 9890 ld.w r4, (r14, 0x40) + 3df6: b8c2 st.w r6, (r14, 0x8) + 3df8: e00002b6 bsr 0x4364 // 4364 <__muldi3> + 3dfc: 6d83 mov r6, r0 + 3dfe: 6dc7 mov r7, r1 + 3e00: 9842 ld.w r2, (r14, 0x8) + 3e02: 3300 movi r3, 0 + 3e04: 6c13 mov r0, r4 + 3e06: 3100 movi r1, 0 + 3e08: e00002ae bsr 0x4364 // 4364 <__muldi3> + 3e0c: b806 st.w r0, (r14, 0x18) + 3e0e: b827 st.w r1, (r14, 0x1c) + 3e10: 6c97 mov r2, r5 + 3e12: 3300 movi r3, 0 + 3e14: 6c13 mov r0, r4 + 3e16: 3100 movi r1, 0 + 3e18: e00002a6 bsr 0x4364 // 4364 <__muldi3> + 3e1c: 6401 cmplt r0, r0 + 3e1e: 6019 addc r0, r6 + 3e20: 605d addc r1, r7 + 3e22: 65c4 cmphs r1, r7 + 3e24: 0c91 bf 0x3f46 // 3f46 <__muldf3+0x1aa> + 3e26: 645e cmpne r7, r1 + 3e28: 0c8d bf 0x3f42 // 3f42 <__muldf3+0x1a6> + 3e2a: 3300 movi r3, 0 + 3e2c: 3400 movi r4, 0 + 3e2e: b862 st.w r3, (r14, 0x8) + 3e30: b883 st.w r4, (r14, 0xc) + 3e32: 9884 ld.w r4, (r14, 0x10) + 3e34: 98a5 ld.w r5, (r14, 0x14) + 3e36: 3600 movi r6, 0 + 3e38: 6dc3 mov r7, r0 + 3e3a: 6c93 mov r2, r4 + 3e3c: 6cd7 mov r3, r5 + 3e3e: 6489 cmplt r2, r2 + 3e40: 6099 addc r2, r6 + 3e42: 60dd addc r3, r7 + 3e44: 6d8b mov r6, r2 + 3e46: 6dcf mov r7, r3 + 3e48: 6c93 mov r2, r4 + 3e4a: 6cd7 mov r3, r5 + 3e4c: 64dc cmphs r7, r3 + 3e4e: 0c70 bf 0x3f2e // 3f2e <__muldf3+0x192> + 3e50: 65ce cmpne r3, r7 + 3e52: 0c6c bf 0x3f2a // 3f2a <__muldf3+0x18e> + 3e54: 6c87 mov r2, r1 + 3e56: 3300 movi r3, 0 + 3e58: 9806 ld.w r0, (r14, 0x18) + 3e5a: 9827 ld.w r1, (r14, 0x1c) + 3e5c: 6401 cmplt r0, r0 + 3e5e: 6009 addc r0, r2 + 3e60: 604d addc r1, r3 + 3e62: 6c83 mov r2, r0 + 3e64: 6cc7 mov r3, r1 + 3e66: 9802 ld.w r0, (r14, 0x8) + 3e68: 9823 ld.w r1, (r14, 0xc) + 3e6a: 6401 cmplt r0, r0 + 3e6c: 6009 addc r0, r2 + 3e6e: 604d addc r1, r3 + 3e70: 6c83 mov r2, r0 + 3e72: 6cc7 mov r3, r1 + 3e74: 988e ld.w r4, (r14, 0x38) + 3e76: 9833 ld.w r1, (r14, 0x4c) + 3e78: 6104 addu r4, r1 + 3e7a: 5c2e addi r1, r4, 4 + 3e7c: b838 st.w r1, (r14, 0x60) + 3e7e: 980d ld.w r0, (r14, 0x34) + 3e80: 9832 ld.w r1, (r14, 0x48) + 3e82: 6442 cmpne r0, r1 + 3e84: 12b0 lrw r5, 0x1fffffff // 3fc4 <__muldf3+0x228> + 3e86: 3100 movi r1, 0 + 3e88: 6045 addc r1, r1 + 3e8a: 64d4 cmphs r5, r3 + 3e8c: b837 st.w r1, (r14, 0x5c) + 3e8e: 0879 bt 0x3f80 // 3f80 <__muldf3+0x1e4> + 3e90: 2404 addi r4, 5 + 3e92: b8a4 st.w r5, (r14, 0x10) + 3e94: 3001 movi r0, 1 + 3e96: 3100 movi r1, 0 + 3e98: 6808 and r0, r2 + 3e9a: 684c and r1, r3 + 3e9c: 6c04 or r0, r1 + 3e9e: 3840 cmpnei r0, 0 + 3ea0: b882 st.w r4, (r14, 0x8) + 3ea2: 0c0e bf 0x3ebe // 3ebe <__muldf3+0x122> + 3ea4: 473f lsli r1, r7, 31 + 3ea6: 4e01 lsri r0, r6, 1 + 3ea8: 6c04 or r0, r1 + 3eaa: 4f21 lsri r1, r7, 1 + 3eac: b800 st.w r0, (r14, 0x0) + 3eae: b821 st.w r1, (r14, 0x4) + 3eb0: 3180 movi r1, 128 + 3eb2: 98c0 ld.w r6, (r14, 0x0) + 3eb4: 98e1 ld.w r7, (r14, 0x4) + 3eb6: 3000 movi r0, 0 + 3eb8: 4138 lsli r1, r1, 24 + 3eba: 6d80 or r6, r0 + 3ebc: 6dc4 or r7, r1 + 3ebe: 4b21 lsri r1, r3, 1 + 3ec0: 43bf lsli r5, r3, 31 + 3ec2: 4a01 lsri r0, r2, 1 + 3ec4: 6cc7 mov r3, r1 + 3ec6: 9824 ld.w r1, (r14, 0x10) + 3ec8: 6d40 or r5, r0 + 3eca: 64c4 cmphs r1, r3 + 3ecc: 6c97 mov r2, r5 + 3ece: 2400 addi r4, 1 + 3ed0: 0fe2 bf 0x3e94 // 3e94 <__muldf3+0xf8> + 3ed2: 9822 ld.w r1, (r14, 0x8) + 3ed4: b838 st.w r1, (r14, 0x60) + 3ed6: 30ff movi r0, 255 + 3ed8: 3100 movi r1, 0 + 3eda: 6808 and r0, r2 + 3edc: 684c and r1, r3 + 3ede: 3480 movi r4, 128 + 3ee0: 6502 cmpne r0, r4 + 3ee2: 0c37 bf 0x3f50 // 3f50 <__muldf3+0x1b4> + 3ee4: b859 st.w r2, (r14, 0x64) + 3ee6: b87a st.w r3, (r14, 0x68) + 3ee8: 3303 movi r3, 3 + 3eea: b876 st.w r3, (r14, 0x58) + 3eec: 1816 addi r0, r14, 88 + 3eee: e0000363 bsr 0x45b4 // 45b4 <__pack_d> + 3ef2: 141b addi r14, r14, 108 + 3ef4: 1494 pop r4-r7, r15 + 3ef6: 3b42 cmpnei r3, 2 + 3ef8: 0c42 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3efa: 9872 ld.w r3, (r14, 0x48) + 3efc: 984d ld.w r2, (r14, 0x34) + 3efe: 64ca cmpne r2, r3 + 3f00: 3300 movi r3, 0 + 3f02: 60cd addc r3, r3 + 3f04: 1811 addi r0, r14, 68 + 3f06: b872 st.w r3, (r14, 0x48) + 3f08: e0000356 bsr 0x45b4 // 45b4 <__pack_d> + 3f0c: 141b addi r14, r14, 108 + 3f0e: 1494 pop r4-r7, r15 + 3f10: 3a42 cmpnei r2, 2 + 3f12: 0c35 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3f14: 984d ld.w r2, (r14, 0x34) + 3f16: 9872 ld.w r3, (r14, 0x48) + 3f18: 64ca cmpne r2, r3 + 3f1a: 3300 movi r3, 0 + 3f1c: 60cd addc r3, r3 + 3f1e: 180c addi r0, r14, 48 + 3f20: b86d st.w r3, (r14, 0x34) + 3f22: e0000349 bsr 0x45b4 // 45b4 <__pack_d> + 3f26: 141b addi r14, r14, 108 + 3f28: 1494 pop r4-r7, r15 + 3f2a: 6498 cmphs r6, r2 + 3f2c: 0b94 bt 0x3e54 // 3e54 <__muldf3+0xb8> + 3f2e: 9882 ld.w r4, (r14, 0x8) + 3f30: 98a3 ld.w r5, (r14, 0xc) + 3f32: 3201 movi r2, 1 + 3f34: 3300 movi r3, 0 + 3f36: 6511 cmplt r4, r4 + 3f38: 6109 addc r4, r2 + 3f3a: 614d addc r5, r3 + 3f3c: b882 st.w r4, (r14, 0x8) + 3f3e: b8a3 st.w r5, (r14, 0xc) + 3f40: 078a br 0x3e54 // 3e54 <__muldf3+0xb8> + 3f42: 6580 cmphs r0, r6 + 3f44: 0b73 bt 0x3e2a // 3e2a <__muldf3+0x8e> + 3f46: 3300 movi r3, 0 + 3f48: 3401 movi r4, 1 + 3f4a: b862 st.w r3, (r14, 0x8) + 3f4c: b883 st.w r4, (r14, 0xc) + 3f4e: 0772 br 0x3e32 // 3e32 <__muldf3+0x96> + 3f50: 3940 cmpnei r1, 0 + 3f52: 0bc9 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f54: 3180 movi r1, 128 + 3f56: 4121 lsli r1, r1, 1 + 3f58: 6848 and r1, r2 + 3f5a: 3940 cmpnei r1, 0 + 3f5c: 0bc4 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f5e: 6c5b mov r1, r6 + 3f60: 6c5c or r1, r7 + 3f62: 3940 cmpnei r1, 0 + 3f64: 0fc0 bf 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f66: 3080 movi r0, 128 + 3f68: 3100 movi r1, 0 + 3f6a: 6401 cmplt r0, r0 + 3f6c: 6009 addc r0, r2 + 3f6e: 604d addc r1, r3 + 3f70: 34ff movi r4, 255 + 3f72: 6d43 mov r5, r0 + 3f74: 6951 andn r5, r4 + 3f76: 6c97 mov r2, r5 + 3f78: 6cc7 mov r3, r1 + 3f7a: 07b5 br 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f7c: 1013 lrw r0, 0xabd0 // 3fc8 <__muldf3+0x22c> + 3f7e: 07b8 br 0x3eee // 3eee <__muldf3+0x152> + 3f80: 1033 lrw r1, 0xfffffff // 3fcc <__muldf3+0x230> + 3f82: 64c4 cmphs r1, r3 + 3f84: 0fa9 bf 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3f86: 2402 addi r4, 3 + 3f88: b822 st.w r1, (r14, 0x8) + 3f8a: 4a1f lsri r0, r2, 31 + 3f8c: 4321 lsli r1, r3, 1 + 3f8e: 42a1 lsli r5, r2, 1 + 3f90: 6c04 or r0, r1 + 3f92: 3fdf btsti r7, 31 + 3f94: b880 st.w r4, (r14, 0x0) + 3f96: 6c97 mov r2, r5 + 3f98: 6cc3 mov r3, r0 + 3f9a: 0c07 bf 0x3fa8 // 3fa8 <__muldf3+0x20c> + 3f9c: 3001 movi r0, 1 + 3f9e: 3100 movi r1, 0 + 3fa0: 6c08 or r0, r2 + 3fa2: 6c4c or r1, r3 + 3fa4: 6c83 mov r2, r0 + 3fa6: 6cc7 mov r3, r1 + 3fa8: 4721 lsli r1, r7, 1 + 3faa: 4e1f lsri r0, r6, 31 + 3fac: 6c04 or r0, r1 + 3fae: 9822 ld.w r1, (r14, 0x8) + 3fb0: 46a1 lsli r5, r6, 1 + 3fb2: 64c4 cmphs r1, r3 + 3fb4: 6d97 mov r6, r5 + 3fb6: 6dc3 mov r7, r0 + 3fb8: 2c00 subi r4, 1 + 3fba: 0be8 bt 0x3f8a // 3f8a <__muldf3+0x1ee> + 3fbc: 9820 ld.w r1, (r14, 0x0) + 3fbe: b838 st.w r1, (r14, 0x60) + 3fc0: 078b br 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3fc2: 0000 bkpt + 3fc4: 1fffffff .long 0x1fffffff + 3fc8: 0000abd0 .long 0x0000abd0 + 3fcc: 0fffffff .long 0x0fffffff + +00003fd0 <__divdf3>: + 3fd0: 14d4 push r4-r7, r15 + 3fd2: 1432 subi r14, r14, 72 + 3fd4: b804 st.w r0, (r14, 0x10) + 3fd6: b825 st.w r1, (r14, 0x14) + 3fd8: 1804 addi r0, r14, 16 + 3fda: 1908 addi r1, r14, 32 + 3fdc: b867 st.w r3, (r14, 0x1c) + 3fde: b846 st.w r2, (r14, 0x18) + 3fe0: e00003b8 bsr 0x4750 // 4750 <__unpack_d> + 3fe4: 190d addi r1, r14, 52 + 3fe6: 1806 addi r0, r14, 24 + 3fe8: e00003b4 bsr 0x4750 // 4750 <__unpack_d> + 3fec: 9868 ld.w r3, (r14, 0x20) + 3fee: 3b01 cmphsi r3, 2 + 3ff0: 0c66 bf 0x40bc // 40bc <__divdf3+0xec> + 3ff2: 982d ld.w r1, (r14, 0x34) + 3ff4: 3901 cmphsi r1, 2 + 3ff6: 0c92 bf 0x411a // 411a <__divdf3+0x14a> + 3ff8: 9849 ld.w r2, (r14, 0x24) + 3ffa: 980e ld.w r0, (r14, 0x38) + 3ffc: 6c81 xor r2, r0 + 3ffe: 3b44 cmpnei r3, 4 + 4000: b849 st.w r2, (r14, 0x24) + 4002: 0c62 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4004: 3b42 cmpnei r3, 2 + 4006: 0c60 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4008: 3944 cmpnei r1, 4 + 400a: 0c62 bf 0x40ce // 40ce <__divdf3+0xfe> + 400c: 3942 cmpnei r1, 2 + 400e: 0c82 bf 0x4112 // 4112 <__divdf3+0x142> + 4010: 982a ld.w r1, (r14, 0x28) + 4012: 986f ld.w r3, (r14, 0x3c) + 4014: 604e subu r1, r3 + 4016: 9890 ld.w r4, (r14, 0x40) + 4018: 98b1 ld.w r5, (r14, 0x44) + 401a: 984b ld.w r2, (r14, 0x2c) + 401c: 986c ld.w r3, (r14, 0x30) + 401e: 654c cmphs r3, r5 + 4020: b82a st.w r1, (r14, 0x28) + 4022: 6d93 mov r6, r4 + 4024: 6dd7 mov r7, r5 + 4026: 0c05 bf 0x4030 // 4030 <__divdf3+0x60> + 4028: 64d6 cmpne r5, r3 + 402a: 080b bt 0x4040 // 4040 <__divdf3+0x70> + 402c: 6508 cmphs r2, r4 + 402e: 0809 bt 0x4040 // 4040 <__divdf3+0x70> + 4030: 4a9f lsri r4, r2, 31 + 4032: 4301 lsli r0, r3, 1 + 4034: 42a1 lsli r5, r2, 1 + 4036: 6d00 or r4, r0 + 4038: 2900 subi r1, 1 + 403a: 6c97 mov r2, r5 + 403c: 6cd3 mov r3, r4 + 403e: b82a st.w r1, (r14, 0x28) + 4040: 3000 movi r0, 0 + 4042: 3100 movi r1, 0 + 4044: b802 st.w r0, (r14, 0x8) + 4046: b823 st.w r1, (r14, 0xc) + 4048: 3180 movi r1, 128 + 404a: 343d movi r4, 61 + 404c: 3000 movi r0, 0 + 404e: 4135 lsli r1, r1, 21 + 4050: b8c0 st.w r6, (r14, 0x0) + 4052: b8e1 st.w r7, (r14, 0x4) + 4054: 98a0 ld.w r5, (r14, 0x0) + 4056: 98c1 ld.w r6, (r14, 0x4) + 4058: 658c cmphs r3, r6 + 405a: 0c10 bf 0x407a // 407a <__divdf3+0xaa> + 405c: 64da cmpne r6, r3 + 405e: 0803 bt 0x4064 // 4064 <__divdf3+0x94> + 4060: 6548 cmphs r2, r5 + 4062: 0c0c bf 0x407a // 407a <__divdf3+0xaa> + 4064: 98a2 ld.w r5, (r14, 0x8) + 4066: 98c3 ld.w r6, (r14, 0xc) + 4068: 6d40 or r5, r0 + 406a: 6d84 or r6, r1 + 406c: b8a2 st.w r5, (r14, 0x8) + 406e: b8c3 st.w r6, (r14, 0xc) + 4070: 98a0 ld.w r5, (r14, 0x0) + 4072: 98c1 ld.w r6, (r14, 0x4) + 4074: 6488 cmphs r2, r2 + 4076: 6097 subc r2, r5 + 4078: 60db subc r3, r6 + 407a: 41bf lsli r5, r1, 31 + 407c: 48e1 lsri r7, r0, 1 + 407e: 6d97 mov r6, r5 + 4080: 49a1 lsri r5, r1, 1 + 4082: 6d9c or r6, r7 + 4084: 6c57 mov r1, r5 + 4086: 4abf lsri r5, r2, 31 + 4088: 6c1b mov r0, r6 + 408a: 2c00 subi r4, 1 + 408c: 6d97 mov r6, r5 + 408e: 43a1 lsli r5, r3, 1 + 4090: 6d94 or r6, r5 + 4092: 4261 lsli r3, r2, 1 + 4094: 3c40 cmpnei r4, 0 + 4096: 6dcf mov r7, r3 + 4098: 6c8f mov r2, r3 + 409a: 6cdb mov r3, r6 + 409c: 0bdc bt 0x4054 // 4054 <__divdf3+0x84> + 409e: 30ff movi r0, 255 + 40a0: 3100 movi r1, 0 + 40a2: 9882 ld.w r4, (r14, 0x8) + 40a4: 98a3 ld.w r5, (r14, 0xc) + 40a6: 6900 and r4, r0 + 40a8: 6944 and r5, r1 + 40aa: 6c13 mov r0, r4 + 40ac: 6c57 mov r1, r5 + 40ae: 3480 movi r4, 128 + 40b0: 6502 cmpne r0, r4 + 40b2: 0c15 bf 0x40dc // 40dc <__divdf3+0x10c> + 40b4: 9862 ld.w r3, (r14, 0x8) + 40b6: 9883 ld.w r4, (r14, 0xc) + 40b8: b86b st.w r3, (r14, 0x2c) + 40ba: b88c st.w r4, (r14, 0x30) + 40bc: 1808 addi r0, r14, 32 + 40be: e000027b bsr 0x45b4 // 45b4 <__pack_d> + 40c2: 1412 addi r14, r14, 72 + 40c4: 1494 pop r4-r7, r15 + 40c6: 644e cmpne r3, r1 + 40c8: 0bfa bt 0x40bc // 40bc <__divdf3+0xec> + 40ca: 1016 lrw r0, 0xabd0 // 4120 <__divdf3+0x150> + 40cc: 07f9 br 0x40be // 40be <__divdf3+0xee> + 40ce: 3300 movi r3, 0 + 40d0: 3400 movi r4, 0 + 40d2: b86b st.w r3, (r14, 0x2c) + 40d4: b88c st.w r4, (r14, 0x30) + 40d6: b86a st.w r3, (r14, 0x28) + 40d8: 1808 addi r0, r14, 32 + 40da: 07f2 br 0x40be // 40be <__divdf3+0xee> + 40dc: 3940 cmpnei r1, 0 + 40de: 0beb bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40e0: 3180 movi r1, 128 + 40e2: 4121 lsli r1, r1, 1 + 40e4: 9882 ld.w r4, (r14, 0x8) + 40e6: 98a3 ld.w r5, (r14, 0xc) + 40e8: 6850 and r1, r4 + 40ea: 3940 cmpnei r1, 0 + 40ec: 0be4 bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40ee: 6c98 or r2, r6 + 40f0: 3a40 cmpnei r2, 0 + 40f2: 0fe1 bf 0x40b4 // 40b4 <__divdf3+0xe4> + 40f4: 3280 movi r2, 128 + 40f6: 3300 movi r3, 0 + 40f8: 6c13 mov r0, r4 + 40fa: 6c57 mov r1, r5 + 40fc: 6401 cmplt r0, r0 + 40fe: 6009 addc r0, r2 + 4100: 604d addc r1, r3 + 4102: 6c83 mov r2, r0 + 4104: 6cc7 mov r3, r1 + 4106: 6c0b mov r0, r2 + 4108: 31ff movi r1, 255 + 410a: 6805 andn r0, r1 + 410c: b802 st.w r0, (r14, 0x8) + 410e: b863 st.w r3, (r14, 0xc) + 4110: 07d2 br 0x40b4 // 40b4 <__divdf3+0xe4> + 4112: 3304 movi r3, 4 + 4114: b868 st.w r3, (r14, 0x20) + 4116: 1808 addi r0, r14, 32 + 4118: 07d3 br 0x40be // 40be <__divdf3+0xee> + 411a: 180d addi r0, r14, 52 + 411c: 07d1 br 0x40be // 40be <__divdf3+0xee> + 411e: 0000 bkpt + 4120: 0000abd0 .long 0x0000abd0 + +00004124 <__gtdf2>: + 4124: 14d0 push r15 + 4126: 142e subi r14, r14, 56 + 4128: b800 st.w r0, (r14, 0x0) + 412a: b821 st.w r1, (r14, 0x4) + 412c: 6c3b mov r0, r14 + 412e: 1904 addi r1, r14, 16 + 4130: b863 st.w r3, (r14, 0xc) + 4132: b842 st.w r2, (r14, 0x8) + 4134: e000030e bsr 0x4750 // 4750 <__unpack_d> + 4138: 1909 addi r1, r14, 36 + 413a: 1802 addi r0, r14, 8 + 413c: e000030a bsr 0x4750 // 4750 <__unpack_d> + 4140: 9864 ld.w r3, (r14, 0x10) + 4142: 3b01 cmphsi r3, 2 + 4144: 0c0a bf 0x4158 // 4158 <__gtdf2+0x34> + 4146: 9869 ld.w r3, (r14, 0x24) + 4148: 3b01 cmphsi r3, 2 + 414a: 0c07 bf 0x4158 // 4158 <__gtdf2+0x34> + 414c: 1909 addi r1, r14, 36 + 414e: 1804 addi r0, r14, 16 + 4150: e0000362 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4154: 140e addi r14, r14, 56 + 4156: 1490 pop r15 + 4158: 3000 movi r0, 0 + 415a: 2800 subi r0, 1 + 415c: 140e addi r14, r14, 56 + 415e: 1490 pop r15 + +00004160 <__gedf2>: + 4160: 14d0 push r15 + 4162: 142e subi r14, r14, 56 + 4164: b800 st.w r0, (r14, 0x0) + 4166: b821 st.w r1, (r14, 0x4) + 4168: 6c3b mov r0, r14 + 416a: 1904 addi r1, r14, 16 + 416c: b863 st.w r3, (r14, 0xc) + 416e: b842 st.w r2, (r14, 0x8) + 4170: e00002f0 bsr 0x4750 // 4750 <__unpack_d> + 4174: 1909 addi r1, r14, 36 + 4176: 1802 addi r0, r14, 8 + 4178: e00002ec bsr 0x4750 // 4750 <__unpack_d> + 417c: 9864 ld.w r3, (r14, 0x10) + 417e: 3b01 cmphsi r3, 2 + 4180: 0c0a bf 0x4194 // 4194 <__gedf2+0x34> + 4182: 9869 ld.w r3, (r14, 0x24) + 4184: 3b01 cmphsi r3, 2 + 4186: 0c07 bf 0x4194 // 4194 <__gedf2+0x34> + 4188: 1909 addi r1, r14, 36 + 418a: 1804 addi r0, r14, 16 + 418c: e0000344 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4190: 140e addi r14, r14, 56 + 4192: 1490 pop r15 + 4194: 3000 movi r0, 0 + 4196: 2800 subi r0, 1 + 4198: 140e addi r14, r14, 56 + 419a: 1490 pop r15 + +0000419c <__ledf2>: + 419c: 14d0 push r15 + 419e: 142e subi r14, r14, 56 + 41a0: b800 st.w r0, (r14, 0x0) + 41a2: b821 st.w r1, (r14, 0x4) + 41a4: 6c3b mov r0, r14 + 41a6: 1904 addi r1, r14, 16 + 41a8: b863 st.w r3, (r14, 0xc) + 41aa: b842 st.w r2, (r14, 0x8) + 41ac: e00002d2 bsr 0x4750 // 4750 <__unpack_d> + 41b0: 1909 addi r1, r14, 36 + 41b2: 1802 addi r0, r14, 8 + 41b4: e00002ce bsr 0x4750 // 4750 <__unpack_d> + 41b8: 9864 ld.w r3, (r14, 0x10) + 41ba: 3b01 cmphsi r3, 2 + 41bc: 0c0a bf 0x41d0 // 41d0 <__ledf2+0x34> + 41be: 9869 ld.w r3, (r14, 0x24) + 41c0: 3b01 cmphsi r3, 2 + 41c2: 0c07 bf 0x41d0 // 41d0 <__ledf2+0x34> + 41c4: 1909 addi r1, r14, 36 + 41c6: 1804 addi r0, r14, 16 + 41c8: e0000326 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 41cc: 140e addi r14, r14, 56 + 41ce: 1490 pop r15 + 41d0: 3001 movi r0, 1 + 41d2: 140e addi r14, r14, 56 + 41d4: 1490 pop r15 + ... + +000041d8 <__floatsidf>: + 41d8: 14d1 push r4, r15 + 41da: 1425 subi r14, r14, 20 + 41dc: 3303 movi r3, 3 + 41de: b860 st.w r3, (r14, 0x0) + 41e0: 3840 cmpnei r0, 0 + 41e2: 487f lsri r3, r0, 31 + 41e4: b861 st.w r3, (r14, 0x4) + 41e6: 0808 bt 0x41f6 // 41f6 <__floatsidf+0x1e> + 41e8: 3302 movi r3, 2 + 41ea: b860 st.w r3, (r14, 0x0) + 41ec: 6c3b mov r0, r14 + 41ee: e00001e3 bsr 0x45b4 // 45b4 <__pack_d> + 41f2: 1405 addi r14, r14, 20 + 41f4: 1491 pop r4, r15 + 41f6: 38df btsti r0, 31 + 41f8: 0812 bt 0x421c // 421c <__floatsidf+0x44> + 41fa: 6d03 mov r4, r0 + 41fc: 6c13 mov r0, r4 + 41fe: e00000d5 bsr 0x43a8 // 43a8 <__clzsi2> + 4202: 321d movi r2, 29 + 4204: 6080 addu r2, r0 + 4206: 2802 subi r0, 3 + 4208: 38df btsti r0, 31 + 420a: 0810 bt 0x422a // 422a <__floatsidf+0x52> + 420c: 7100 lsl r4, r0 + 420e: 3300 movi r3, 0 + 4210: b884 st.w r4, (r14, 0x10) + 4212: b863 st.w r3, (r14, 0xc) + 4214: 333c movi r3, 60 + 4216: 60ca subu r3, r2 + 4218: b862 st.w r3, (r14, 0x8) + 421a: 07e9 br 0x41ec // 41ec <__floatsidf+0x14> + 421c: 3380 movi r3, 128 + 421e: 4378 lsli r3, r3, 24 + 4220: 64c2 cmpne r0, r3 + 4222: 0c0d bf 0x423c // 423c <__floatsidf+0x64> + 4224: 3400 movi r4, 0 + 4226: 6102 subu r4, r0 + 4228: 07ea br 0x41fc // 41fc <__floatsidf+0x24> + 422a: 311f movi r1, 31 + 422c: 4c61 lsri r3, r4, 1 + 422e: 604a subu r1, r2 + 4230: 6c13 mov r0, r4 + 4232: 70c5 lsr r3, r1 + 4234: 7008 lsl r0, r2 + 4236: b864 st.w r3, (r14, 0x10) + 4238: b803 st.w r0, (r14, 0xc) + 423a: 07ed br 0x4214 // 4214 <__floatsidf+0x3c> + 423c: 3000 movi r0, 0 + 423e: 1022 lrw r1, 0xc1e00000 // 4244 <__floatsidf+0x6c> + 4240: 07d9 br 0x41f2 // 41f2 <__floatsidf+0x1a> + 4242: 0000 bkpt + 4244: c1e00000 .long 0xc1e00000 + +00004248 <__fixdfsi>: + 4248: 14d0 push r15 + 424a: 1427 subi r14, r14, 28 + 424c: b800 st.w r0, (r14, 0x0) + 424e: b821 st.w r1, (r14, 0x4) + 4250: 6c3b mov r0, r14 + 4252: 1902 addi r1, r14, 8 + 4254: e000027e bsr 0x4750 // 4750 <__unpack_d> + 4258: 9862 ld.w r3, (r14, 0x8) + 425a: 3b02 cmphsi r3, 3 + 425c: 0c20 bf 0x429c // 429c <__fixdfsi+0x54> + 425e: 3b44 cmpnei r3, 4 + 4260: 0c16 bf 0x428c // 428c <__fixdfsi+0x44> + 4262: 9864 ld.w r3, (r14, 0x10) + 4264: 3bdf btsti r3, 31 + 4266: 081b bt 0x429c // 429c <__fixdfsi+0x54> + 4268: 3b3e cmplti r3, 31 + 426a: 0c11 bf 0x428c // 428c <__fixdfsi+0x44> + 426c: 323c movi r2, 60 + 426e: 5a6d subu r3, r2, r3 + 4270: 3200 movi r2, 0 + 4272: 2a1f subi r2, 32 + 4274: 608c addu r2, r3 + 4276: 3adf btsti r2, 31 + 4278: 0815 bt 0x42a2 // 42a2 <__fixdfsi+0x5a> + 427a: 9806 ld.w r0, (r14, 0x18) + 427c: 7009 lsr r0, r2 + 427e: 9863 ld.w r3, (r14, 0xc) + 4280: 3b40 cmpnei r3, 0 + 4282: 0c0b bf 0x4298 // 4298 <__fixdfsi+0x50> + 4284: 3300 movi r3, 0 + 4286: 5b01 subu r0, r3, r0 + 4288: 1407 addi r14, r14, 28 + 428a: 1490 pop r15 + 428c: 9863 ld.w r3, (r14, 0xc) + 428e: 3b40 cmpnei r3, 0 + 4290: 3000 movi r0, 0 + 4292: 6001 addc r0, r0 + 4294: 1068 lrw r3, 0x7fffffff // 42b4 <__fixdfsi+0x6c> + 4296: 600c addu r0, r3 + 4298: 1407 addi r14, r14, 28 + 429a: 1490 pop r15 + 429c: 3000 movi r0, 0 + 429e: 1407 addi r14, r14, 28 + 42a0: 1490 pop r15 + 42a2: 9846 ld.w r2, (r14, 0x18) + 42a4: 311f movi r1, 31 + 42a6: 4241 lsli r2, r2, 1 + 42a8: 604e subu r1, r3 + 42aa: 9805 ld.w r0, (r14, 0x14) + 42ac: 7084 lsl r2, r1 + 42ae: 700d lsr r0, r3 + 42b0: 6c08 or r0, r2 + 42b2: 07e6 br 0x427e // 427e <__fixdfsi+0x36> + 42b4: 7fffffff .long 0x7fffffff + +000042b8 <__make_dp>: + 42b8: 1421 subi r14, r14, 4 + 42ba: 14d1 push r4, r15 + 42bc: 1425 subi r14, r14, 20 + 42be: b867 st.w r3, (r14, 0x1c) + 42c0: 9867 ld.w r3, (r14, 0x1c) + 42c2: 9888 ld.w r4, (r14, 0x20) + 42c4: b800 st.w r0, (r14, 0x0) + 42c6: 6c3b mov r0, r14 + 42c8: b821 st.w r1, (r14, 0x4) + 42ca: b842 st.w r2, (r14, 0x8) + 42cc: b863 st.w r3, (r14, 0xc) + 42ce: b884 st.w r4, (r14, 0x10) + 42d0: e0000172 bsr 0x45b4 // 45b4 <__pack_d> + 42d4: 1405 addi r14, r14, 20 + 42d6: d9ee2001 ld.w r15, (r14, 0x4) + 42da: 9880 ld.w r4, (r14, 0x0) + 42dc: 1403 addi r14, r14, 12 + 42de: 783c jmp r15 + +000042e0 <__truncdfsf2>: + 42e0: 14d0 push r15 + 42e2: 1427 subi r14, r14, 28 + 42e4: b800 st.w r0, (r14, 0x0) + 42e6: b821 st.w r1, (r14, 0x4) + 42e8: 6c3b mov r0, r14 + 42ea: 1902 addi r1, r14, 8 + 42ec: e0000232 bsr 0x4750 // 4750 <__unpack_d> + 42f0: 9845 ld.w r2, (r14, 0x14) + 42f2: 4a3e lsri r1, r2, 30 + 42f4: 9866 ld.w r3, (r14, 0x18) + 42f6: 4242 lsli r2, r2, 2 + 42f8: 4362 lsli r3, r3, 2 + 42fa: 3a40 cmpnei r2, 0 + 42fc: 6cc4 or r3, r1 + 42fe: 0c02 bf 0x4302 // 4302 <__truncdfsf2+0x22> + 4300: 3ba0 bseti r3, 0 + 4302: 9844 ld.w r2, (r14, 0x10) + 4304: 9823 ld.w r1, (r14, 0xc) + 4306: 9802 ld.w r0, (r14, 0x8) + 4308: e000014a bsr 0x459c // 459c <__make_fp> + 430c: 1407 addi r14, r14, 28 + 430e: 1490 pop r15 + +00004310 <__floatunsidf>: + 4310: 14d2 push r4-r5, r15 + 4312: 1425 subi r14, r14, 20 + 4314: 3840 cmpnei r0, 0 + 4316: 3500 movi r5, 0 + 4318: 6d03 mov r4, r0 + 431a: b8a1 st.w r5, (r14, 0x4) + 431c: 0c15 bf 0x4346 // 4346 <__floatunsidf+0x36> + 431e: 3303 movi r3, 3 + 4320: b860 st.w r3, (r14, 0x0) + 4322: e0000043 bsr 0x43a8 // 43a8 <__clzsi2> + 4326: 321d movi r2, 29 + 4328: 6080 addu r2, r0 + 432a: 2802 subi r0, 3 + 432c: 38df btsti r0, 31 + 432e: 0813 bt 0x4354 // 4354 <__floatunsidf+0x44> + 4330: 7100 lsl r4, r0 + 4332: b884 st.w r4, (r14, 0x10) + 4334: b8a3 st.w r5, (r14, 0xc) + 4336: 333c movi r3, 60 + 4338: 60ca subu r3, r2 + 433a: 6c3b mov r0, r14 + 433c: b862 st.w r3, (r14, 0x8) + 433e: e000013b bsr 0x45b4 // 45b4 <__pack_d> + 4342: 1405 addi r14, r14, 20 + 4344: 1492 pop r4-r5, r15 + 4346: 3302 movi r3, 2 + 4348: 6c3b mov r0, r14 + 434a: b860 st.w r3, (r14, 0x0) + 434c: e0000134 bsr 0x45b4 // 45b4 <__pack_d> + 4350: 1405 addi r14, r14, 20 + 4352: 1492 pop r4-r5, r15 + 4354: 311f movi r1, 31 + 4356: 4c61 lsri r3, r4, 1 + 4358: 604a subu r1, r2 + 435a: 70c5 lsr r3, r1 + 435c: 7108 lsl r4, r2 + 435e: b864 st.w r3, (r14, 0x10) + 4360: b883 st.w r4, (r14, 0xc) + 4362: 07ea br 0x4336 // 4336 <__floatunsidf+0x26> + +00004364 <__muldi3>: + 4364: 14c4 push r4-r7 + 4366: 1421 subi r14, r14, 4 + 4368: 7501 zexth r4, r0 + 436a: 48b0 lsri r5, r0, 16 + 436c: 75c9 zexth r7, r2 + 436e: 6d83 mov r6, r0 + 4370: b820 st.w r1, (r14, 0x0) + 4372: 6c13 mov r0, r4 + 4374: 4a30 lsri r1, r2, 16 + 4376: 7c1c mult r0, r7 + 4378: 7d04 mult r4, r1 + 437a: 7dd4 mult r7, r5 + 437c: 611c addu r4, r7 + 437e: 7d44 mult r5, r1 + 4380: 4830 lsri r1, r0, 16 + 4382: 6104 addu r4, r1 + 4384: 65d0 cmphs r4, r7 + 4386: 0804 bt 0x438e // 438e <__muldi3+0x2a> + 4388: 3180 movi r1, 128 + 438a: 4129 lsli r1, r1, 9 + 438c: 6144 addu r5, r1 + 438e: 4c30 lsri r1, r4, 16 + 4390: 7cd8 mult r3, r6 + 4392: 6144 addu r5, r1 + 4394: 6c4f mov r1, r3 + 4396: 9860 ld.w r3, (r14, 0x0) + 4398: 7cc8 mult r3, r2 + 439a: 4490 lsli r4, r4, 16 + 439c: 604c addu r1, r3 + 439e: 7401 zexth r0, r0 + 43a0: 6010 addu r0, r4 + 43a2: 6054 addu r1, r5 + 43a4: 1401 addi r14, r14, 4 + 43a6: 1484 pop r4-r7 + +000043a8 <__clzsi2>: + 43a8: 106d lrw r3, 0xffff // 43dc <__clzsi2+0x34> + 43aa: 640c cmphs r3, r0 + 43ac: 0c07 bf 0x43ba // 43ba <__clzsi2+0x12> + 43ae: 33ff movi r3, 255 + 43b0: 640c cmphs r3, r0 + 43b2: 0c0f bf 0x43d0 // 43d0 <__clzsi2+0x28> + 43b4: 3320 movi r3, 32 + 43b6: 3200 movi r2, 0 + 43b8: 0406 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43ba: 106a lrw r3, 0xffffff // 43e0 <__clzsi2+0x38> + 43bc: 640c cmphs r3, r0 + 43be: 080c bt 0x43d6 // 43d6 <__clzsi2+0x2e> + 43c0: 3308 movi r3, 8 + 43c2: 3218 movi r2, 24 + 43c4: 7009 lsr r0, r2 + 43c6: 1048 lrw r2, 0xabe4 // 43e4 <__clzsi2+0x3c> + 43c8: 6008 addu r0, r2 + 43ca: 8040 ld.b r2, (r0, 0x0) + 43cc: 5b09 subu r0, r3, r2 + 43ce: 783c jmp r15 + 43d0: 3318 movi r3, 24 + 43d2: 3208 movi r2, 8 + 43d4: 07f8 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43d6: 3310 movi r3, 16 + 43d8: 3210 movi r2, 16 + 43da: 07f5 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43dc: 0000ffff .long 0x0000ffff + 43e0: 00ffffff .long 0x00ffffff + 43e4: 0000abe4 .long 0x0000abe4 + +000043e8 <__pack_f>: + 43e8: 14c2 push r4-r5 + 43ea: 9040 ld.w r2, (r0, 0x0) + 43ec: 3a01 cmphsi r2, 2 + 43ee: 9063 ld.w r3, (r0, 0xc) + 43f0: 9021 ld.w r1, (r0, 0x4) + 43f2: 0c27 bf 0x4440 // 4440 <__pack_f+0x58> + 43f4: 3a44 cmpnei r2, 4 + 43f6: 0c22 bf 0x443a // 443a <__pack_f+0x52> + 43f8: 3a42 cmpnei r2, 2 + 43fa: 0c1d bf 0x4434 // 4434 <__pack_f+0x4c> + 43fc: 3b40 cmpnei r3, 0 + 43fe: 0c1b bf 0x4434 // 4434 <__pack_f+0x4c> + 4400: 3400 movi r4, 0 + 4402: 9042 ld.w r2, (r0, 0x8) + 4404: 2c7d subi r4, 126 + 4406: 6509 cmplt r2, r4 + 4408: 082a bt 0x445c // 445c <__pack_f+0x74> + 440a: 347f movi r4, 127 + 440c: 6491 cmplt r4, r2 + 440e: 0816 bt 0x443a // 443a <__pack_f+0x52> + 4410: 690c and r4, r3 + 4412: 3540 movi r5, 64 + 4414: 6552 cmpne r4, r5 + 4416: 0c1a bf 0x444a // 444a <__pack_f+0x62> + 4418: 233e addi r3, 63 + 441a: 3bdf btsti r3, 31 + 441c: 081d bt 0x4456 // 4456 <__pack_f+0x6e> + 441e: 227e addi r2, 127 + 4420: 4302 lsli r0, r3, 2 + 4422: 4809 lsri r0, r0, 9 + 4424: 74c8 zextb r3, r2 + 4426: 4009 lsli r0, r0, 9 + 4428: 4377 lsli r3, r3, 23 + 442a: 4809 lsri r0, r0, 9 + 442c: 413f lsli r1, r1, 31 + 442e: 6c0c or r0, r3 + 4430: 6c04 or r0, r1 + 4432: 1482 pop r4-r5 + 4434: 3300 movi r3, 0 + 4436: 3000 movi r0, 0 + 4438: 07f7 br 0x4426 // 4426 <__pack_f+0x3e> + 443a: 33ff movi r3, 255 + 443c: 3000 movi r0, 0 + 443e: 07f4 br 0x4426 // 4426 <__pack_f+0x3e> + 4440: 4303 lsli r0, r3, 3 + 4442: 480a lsri r0, r0, 10 + 4444: 38b6 bseti r0, 22 + 4446: 33ff movi r3, 255 + 4448: 07ef br 0x4426 // 4426 <__pack_f+0x3e> + 444a: 3080 movi r0, 128 + 444c: 680c and r0, r3 + 444e: 3840 cmpnei r0, 0 + 4450: 0fe5 bf 0x441a // 441a <__pack_f+0x32> + 4452: 60d0 addu r3, r4 + 4454: 07e3 br 0x441a // 441a <__pack_f+0x32> + 4456: 4b61 lsri r3, r3, 1 + 4458: 227f addi r2, 128 + 445a: 07e3 br 0x4420 // 4420 <__pack_f+0x38> + 445c: 610a subu r4, r2 + 445e: 3c39 cmplti r4, 26 + 4460: 0fea bf 0x4434 // 4434 <__pack_f+0x4c> + 4462: 3201 movi r2, 1 + 4464: 7090 lsl r2, r4 + 4466: 2a00 subi r2, 1 + 4468: 6c0f mov r0, r3 + 446a: 68c8 and r3, r2 + 446c: 3b40 cmpnei r3, 0 + 446e: 3300 movi r3, 0 + 4470: 7011 lsr r0, r4 + 4472: 60cd addc r3, r3 + 4474: 6cc0 or r3, r0 + 4476: 307f movi r0, 127 + 4478: 680c and r0, r3 + 447a: 3240 movi r2, 64 + 447c: 6482 cmpne r0, r2 + 447e: 080d bt 0x4498 // 4498 <__pack_f+0xb0> + 4480: 3280 movi r2, 128 + 4482: 688c and r2, r3 + 4484: 3a40 cmpnei r2, 0 + 4486: 0c02 bf 0x448a // 448a <__pack_f+0xa2> + 4488: 60c0 addu r3, r0 + 448a: 1045 lrw r2, 0x3fffffff // 449c <__pack_f+0xb4> + 448c: 64c8 cmphs r2, r3 + 448e: 4302 lsli r0, r3, 2 + 4490: 64c3 mvcv r3 + 4492: 4809 lsri r0, r0, 9 + 4494: 74cc zextb r3, r3 + 4496: 07c8 br 0x4426 // 4426 <__pack_f+0x3e> + 4498: 233e addi r3, 63 + 449a: 07f8 br 0x448a // 448a <__pack_f+0xa2> + 449c: 3fffffff .long 0x3fffffff + +000044a0 <__unpack_f>: + 44a0: 14c1 push r4 + 44a2: 8861 ld.h r3, (r0, 0x2) + 44a4: 4371 lsli r3, r3, 17 + 44a6: 9040 ld.w r2, (r0, 0x0) + 44a8: 4b78 lsri r3, r3, 24 + 44aa: 8003 ld.b r0, (r0, 0x3) + 44ac: 4249 lsli r2, r2, 9 + 44ae: 4807 lsri r0, r0, 7 + 44b0: 3b40 cmpnei r3, 0 + 44b2: 4a49 lsri r2, r2, 9 + 44b4: b101 st.w r0, (r1, 0x4) + 44b6: 0811 bt 0x44d8 // 44d8 <__unpack_f+0x38> + 44b8: 3a40 cmpnei r2, 0 + 44ba: 0c1a bf 0x44ee // 44ee <__unpack_f+0x4e> + 44bc: 3303 movi r3, 3 + 44be: b160 st.w r3, (r1, 0x0) + 44c0: 3300 movi r3, 0 + 44c2: 4247 lsli r2, r2, 7 + 44c4: 2b7e subi r3, 127 + 44c6: 1096 lrw r4, 0x3fffffff // 451c <__unpack_f+0x7c> + 44c8: 4241 lsli r2, r2, 1 + 44ca: 6490 cmphs r4, r2 + 44cc: 6c0f mov r0, r3 + 44ce: 2b00 subi r3, 1 + 44d0: 0bfc bt 0x44c8 // 44c8 <__unpack_f+0x28> + 44d2: b102 st.w r0, (r1, 0x8) + 44d4: b143 st.w r2, (r1, 0xc) + 44d6: 1481 pop r4 + 44d8: 30ff movi r0, 255 + 44da: 640e cmpne r3, r0 + 44dc: 0c0c bf 0x44f4 // 44f4 <__unpack_f+0x54> + 44de: 2b7e subi r3, 127 + 44e0: 4247 lsli r2, r2, 7 + 44e2: b162 st.w r3, (r1, 0x8) + 44e4: 3abe bseti r2, 30 + 44e6: 3303 movi r3, 3 + 44e8: b160 st.w r3, (r1, 0x0) + 44ea: b143 st.w r2, (r1, 0xc) + 44ec: 1481 pop r4 + 44ee: 3302 movi r3, 2 + 44f0: b160 st.w r3, (r1, 0x0) + 44f2: 1481 pop r4 + 44f4: 3a40 cmpnei r2, 0 + 44f6: 0c0d bf 0x4510 // 4510 <__unpack_f+0x70> + 44f8: 3380 movi r3, 128 + 44fa: 436f lsli r3, r3, 15 + 44fc: 68c8 and r3, r2 + 44fe: 3b40 cmpnei r3, 0 + 4500: 0c0b bf 0x4516 // 4516 <__unpack_f+0x76> + 4502: 3301 movi r3, 1 + 4504: b160 st.w r3, (r1, 0x0) + 4506: 1067 lrw r3, 0x2000007f // 4520 <__unpack_f+0x80> + 4508: 4247 lsli r2, r2, 7 + 450a: 688d andn r2, r3 + 450c: b143 st.w r2, (r1, 0xc) + 450e: 1481 pop r4 + 4510: 3304 movi r3, 4 + 4512: b160 st.w r3, (r1, 0x0) + 4514: 1481 pop r4 + 4516: b160 st.w r3, (r1, 0x0) + 4518: 07f7 br 0x4506 // 4506 <__unpack_f+0x66> + 451a: 0000 bkpt + 451c: 3fffffff .long 0x3fffffff + 4520: 2000007f .long 0x2000007f + +00004524 <__fpcmp_parts_f>: + 4524: 14c1 push r4 + 4526: 9060 ld.w r3, (r0, 0x0) + 4528: 3b01 cmphsi r3, 2 + 452a: 0c12 bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 452c: 9140 ld.w r2, (r1, 0x0) + 452e: 3a01 cmphsi r2, 2 + 4530: 0c0f bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 4532: 3b44 cmpnei r3, 4 + 4534: 0c17 bf 0x4562 // 4562 <__fpcmp_parts_f+0x3e> + 4536: 3a44 cmpnei r2, 4 + 4538: 0c0f bf 0x4556 // 4556 <__fpcmp_parts_f+0x32> + 453a: 3b42 cmpnei r3, 2 + 453c: 0c0b bf 0x4552 // 4552 <__fpcmp_parts_f+0x2e> + 453e: 3a42 cmpnei r2, 2 + 4540: 0c13 bf 0x4566 // 4566 <__fpcmp_parts_f+0x42> + 4542: 9061 ld.w r3, (r0, 0x4) + 4544: 9141 ld.w r2, (r1, 0x4) + 4546: 648e cmpne r3, r2 + 4548: 0c14 bf 0x4570 // 4570 <__fpcmp_parts_f+0x4c> + 454a: 3b40 cmpnei r3, 0 + 454c: 0808 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 454e: 3001 movi r0, 1 + 4550: 1481 pop r4 + 4552: 3a42 cmpnei r2, 2 + 4554: 0c1e bf 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4556: 9161 ld.w r3, (r1, 0x4) + 4558: 3b40 cmpnei r3, 0 + 455a: 0bfa bt 0x454e // 454e <__fpcmp_parts_f+0x2a> + 455c: 3000 movi r0, 0 + 455e: 2800 subi r0, 1 + 4560: 1481 pop r4 + 4562: 3a44 cmpnei r2, 4 + 4564: 0c18 bf 0x4594 // 4594 <__fpcmp_parts_f+0x70> + 4566: 9061 ld.w r3, (r0, 0x4) + 4568: 3b40 cmpnei r3, 0 + 456a: 0bf9 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 456c: 3001 movi r0, 1 + 456e: 07f1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4570: 9082 ld.w r4, (r0, 0x8) + 4572: 9142 ld.w r2, (r1, 0x8) + 4574: 6509 cmplt r2, r4 + 4576: 0bea bt 0x454a // 454a <__fpcmp_parts_f+0x26> + 4578: 6491 cmplt r4, r2 + 457a: 0807 bt 0x4588 // 4588 <__fpcmp_parts_f+0x64> + 457c: 9003 ld.w r0, (r0, 0xc) + 457e: 9143 ld.w r2, (r1, 0xc) + 4580: 6408 cmphs r2, r0 + 4582: 0fe4 bf 0x454a // 454a <__fpcmp_parts_f+0x26> + 4584: 6480 cmphs r0, r2 + 4586: 0805 bt 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4588: 3b40 cmpnei r3, 0 + 458a: 0fe9 bf 0x455c // 455c <__fpcmp_parts_f+0x38> + 458c: 3001 movi r0, 1 + 458e: 07e1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4590: 3000 movi r0, 0 + 4592: 1481 pop r4 + 4594: 9161 ld.w r3, (r1, 0x4) + 4596: 9041 ld.w r2, (r0, 0x4) + 4598: 5b09 subu r0, r3, r2 + 459a: 1481 pop r4 + +0000459c <__make_fp>: + 459c: 14d0 push r15 + 459e: 1424 subi r14, r14, 16 + 45a0: b800 st.w r0, (r14, 0x0) + 45a2: 6c3b mov r0, r14 + 45a4: b821 st.w r1, (r14, 0x4) + 45a6: b842 st.w r2, (r14, 0x8) + 45a8: b863 st.w r3, (r14, 0xc) + 45aa: e3ffff1f bsr 0x43e8 // 43e8 <__pack_f> + 45ae: 1404 addi r14, r14, 16 + 45b0: 1490 pop r15 + ... + +000045b4 <__pack_d>: + 45b4: 14c4 push r4-r7 + 45b6: 1422 subi r14, r14, 8 + 45b8: 9060 ld.w r3, (r0, 0x0) + 45ba: 3b01 cmphsi r3, 2 + 45bc: 90c3 ld.w r6, (r0, 0xc) + 45be: 90e4 ld.w r7, (r0, 0x10) + 45c0: 9021 ld.w r1, (r0, 0x4) + 45c2: 0c46 bf 0x464e // 464e <__pack_d+0x9a> + 45c4: 3b44 cmpnei r3, 4 + 45c6: 0c40 bf 0x4646 // 4646 <__pack_d+0x92> + 45c8: 3b42 cmpnei r3, 2 + 45ca: 0c27 bf 0x4618 // 4618 <__pack_d+0x64> + 45cc: 6cdb mov r3, r6 + 45ce: 6cdc or r3, r7 + 45d0: 3b40 cmpnei r3, 0 + 45d2: 0c23 bf 0x4618 // 4618 <__pack_d+0x64> + 45d4: 9062 ld.w r3, (r0, 0x8) + 45d6: 125a lrw r2, 0xfffffc02 // 473c <__pack_d+0x188> + 45d8: 648d cmplt r3, r2 + 45da: 0855 bt 0x4684 // 4684 <__pack_d+0xd0> + 45dc: 1259 lrw r2, 0x3ff // 4740 <__pack_d+0x18c> + 45de: 64c9 cmplt r2, r3 + 45e0: 0833 bt 0x4646 // 4646 <__pack_d+0x92> + 45e2: 34ff movi r4, 255 + 45e4: 3500 movi r5, 0 + 45e6: 6918 and r4, r6 + 45e8: 695c and r5, r7 + 45ea: 3280 movi r2, 128 + 45ec: 6492 cmpne r4, r2 + 45ee: 0c3f bf 0x466c // 466c <__pack_d+0xb8> + 45f0: 347f movi r4, 127 + 45f2: 3500 movi r5, 0 + 45f4: 6599 cmplt r6, r6 + 45f6: 6191 addc r6, r4 + 45f8: 61d5 addc r7, r5 + 45fa: 1253 lrw r2, 0x1fffffff // 4744 <__pack_d+0x190> + 45fc: 65c8 cmphs r2, r7 + 45fe: 0c1a bf 0x4632 // 4632 <__pack_d+0x7e> + 4600: 1290 lrw r4, 0x3ff // 4740 <__pack_d+0x18c> + 4602: 610c addu r4, r3 + 4604: 4718 lsli r0, r7, 24 + 4606: 4f68 lsri r3, r7, 8 + 4608: 4e48 lsri r2, r6, 8 + 460a: 6c80 or r2, r0 + 460c: 430c lsli r0, r3, 12 + 460e: 486c lsri r3, r0, 12 + 4610: 120e lrw r0, 0x7ff // 4748 <__pack_d+0x194> + 4612: 6d4b mov r5, r2 + 4614: 6900 and r4, r0 + 4616: 0404 br 0x461e // 461e <__pack_d+0x6a> + 4618: 3400 movi r4, 0 + 461a: 3200 movi r2, 0 + 461c: 3300 movi r3, 0 + 461e: 430c lsli r0, r3, 12 + 4620: 480c lsri r0, r0, 12 + 4622: 4474 lsli r3, r4, 20 + 4624: 419f lsli r4, r1, 31 + 4626: 6c43 mov r1, r0 + 4628: 6c4c or r1, r3 + 462a: 6c50 or r1, r4 + 462c: 6c0b mov r0, r2 + 462e: 1402 addi r14, r14, 8 + 4630: 1484 pop r4-r7 + 4632: 479f lsli r4, r7, 31 + 4634: 4e01 lsri r0, r6, 1 + 4636: 6d00 or r4, r0 + 4638: 6d93 mov r6, r4 + 463a: 3480 movi r4, 128 + 463c: 4f41 lsri r2, r7, 1 + 463e: 4483 lsli r4, r4, 3 + 4640: 6dcb mov r7, r2 + 4642: 610c addu r4, r3 + 4644: 07e0 br 0x4604 // 4604 <__pack_d+0x50> + 4646: 1281 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4648: 3200 movi r2, 0 + 464a: 3300 movi r3, 0 + 464c: 07e9 br 0x461e // 461e <__pack_d+0x6a> + 464e: 4e08 lsri r0, r6, 8 + 4650: 4798 lsli r4, r7, 24 + 4652: 6d00 or r4, r0 + 4654: 3580 movi r5, 128 + 4656: 4705 lsli r0, r7, 5 + 4658: 6c93 mov r2, r4 + 465a: 486d lsri r3, r0, 13 + 465c: 3400 movi r4, 0 + 465e: 45ac lsli r5, r5, 12 + 4660: 6c90 or r2, r4 + 4662: 6cd4 or r3, r5 + 4664: 430c lsli r0, r3, 12 + 4666: 486c lsri r3, r0, 12 + 4668: 1198 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 466a: 07da br 0x461e // 461e <__pack_d+0x6a> + 466c: 3d40 cmpnei r5, 0 + 466e: 0bc1 bt 0x45f0 // 45f0 <__pack_d+0x3c> + 4670: 4241 lsli r2, r2, 1 + 4672: 6898 and r2, r6 + 4674: 3a40 cmpnei r2, 0 + 4676: 0fc2 bf 0x45fa // 45fa <__pack_d+0x46> + 4678: 3480 movi r4, 128 + 467a: 3500 movi r5, 0 + 467c: 6599 cmplt r6, r6 + 467e: 6191 addc r6, r4 + 4680: 61d5 addc r7, r5 + 4682: 07bc br 0x45fa // 45fa <__pack_d+0x46> + 4684: 5a6d subu r3, r2, r3 + 4686: 3238 movi r2, 56 + 4688: 64c9 cmplt r2, r3 + 468a: 0bc7 bt 0x4618 // 4618 <__pack_d+0x64> + 468c: 3200 movi r2, 0 + 468e: 2a1f subi r2, 32 + 4690: 608c addu r2, r3 + 4692: 3adf btsti r2, 31 + 4694: 0848 bt 0x4724 // 4724 <__pack_d+0x170> + 4696: 6c1f mov r0, r7 + 4698: 7009 lsr r0, r2 + 469a: b800 st.w r0, (r14, 0x0) + 469c: 3000 movi r0, 0 + 469e: b801 st.w r0, (r14, 0x4) + 46a0: 3adf btsti r2, 31 + 46a2: 083c bt 0x471a // 471a <__pack_d+0x166> + 46a4: 3301 movi r3, 1 + 46a6: 70c8 lsl r3, r2 + 46a8: 6d4f mov r5, r3 + 46aa: 3300 movi r3, 0 + 46ac: 6d0f mov r4, r3 + 46ae: 3200 movi r2, 0 + 46b0: 3300 movi r3, 0 + 46b2: 2a00 subi r2, 1 + 46b4: 2b00 subi r3, 1 + 46b6: 6511 cmplt r4, r4 + 46b8: 6109 addc r4, r2 + 46ba: 614d addc r5, r3 + 46bc: 6990 and r6, r4 + 46be: 69d4 and r7, r5 + 46c0: 6d9c or r6, r7 + 46c2: 3e40 cmpnei r6, 0 + 46c4: 3000 movi r0, 0 + 46c6: 6001 addc r0, r0 + 46c8: 6c83 mov r2, r0 + 46ca: 3300 movi r3, 0 + 46cc: 9880 ld.w r4, (r14, 0x0) + 46ce: 98a1 ld.w r5, (r14, 0x4) + 46d0: 6d08 or r4, r2 + 46d2: 6d4c or r5, r3 + 46d4: 32ff movi r2, 255 + 46d6: 3300 movi r3, 0 + 46d8: 6890 and r2, r4 + 46da: 68d4 and r3, r5 + 46dc: 3080 movi r0, 128 + 46de: 640a cmpne r2, r0 + 46e0: 081b bt 0x4716 // 4716 <__pack_d+0x162> + 46e2: 3b40 cmpnei r3, 0 + 46e4: 0819 bt 0x4716 // 4716 <__pack_d+0x162> + 46e6: 3380 movi r3, 128 + 46e8: 4361 lsli r3, r3, 1 + 46ea: 68d0 and r3, r4 + 46ec: 3b40 cmpnei r3, 0 + 46ee: 0c06 bf 0x46fa // 46fa <__pack_d+0x146> + 46f0: 3280 movi r2, 128 + 46f2: 3300 movi r3, 0 + 46f4: 6511 cmplt r4, r4 + 46f6: 6109 addc r4, r2 + 46f8: 614d addc r5, r3 + 46fa: 4518 lsli r0, r5, 24 + 46fc: 4c48 lsri r2, r4, 8 + 46fe: 4d68 lsri r3, r5, 8 + 4700: 1093 lrw r4, 0xfffffff // 474c <__pack_d+0x198> + 4702: 6c80 or r2, r0 + 4704: 6550 cmphs r4, r5 + 4706: 430c lsli r0, r3, 12 + 4708: 486c lsri r3, r0, 12 + 470a: 3001 movi r0, 1 + 470c: 0c02 bf 0x4710 // 4710 <__pack_d+0x15c> + 470e: 3000 movi r0, 0 + 4710: 108e lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4712: 6900 and r4, r0 + 4714: 0785 br 0x461e // 461e <__pack_d+0x6a> + 4716: 327f movi r2, 127 + 4718: 07ed br 0x46f2 // 46f2 <__pack_d+0x13e> + 471a: 3201 movi r2, 1 + 471c: 708c lsl r2, r3 + 471e: 3500 movi r5, 0 + 4720: 6d0b mov r4, r2 + 4722: 07c6 br 0x46ae // 46ae <__pack_d+0xfa> + 4724: 341f movi r4, 31 + 4726: 610e subu r4, r3 + 4728: 4701 lsli r0, r7, 1 + 472a: 7010 lsl r0, r4 + 472c: 6d1b mov r4, r6 + 472e: 710d lsr r4, r3 + 4730: 6d00 or r4, r0 + 4732: 6c1f mov r0, r7 + 4734: 700d lsr r0, r3 + 4736: b880 st.w r4, (r14, 0x0) + 4738: b801 st.w r0, (r14, 0x4) + 473a: 07b3 br 0x46a0 // 46a0 <__pack_d+0xec> + 473c: fffffc02 .long 0xfffffc02 + 4740: 000003ff .long 0x000003ff + 4744: 1fffffff .long 0x1fffffff + 4748: 000007ff .long 0x000007ff + 474c: 0fffffff .long 0x0fffffff + +00004750 <__unpack_d>: + 4750: 1423 subi r14, r14, 12 + 4752: b880 st.w r4, (r14, 0x0) + 4754: b8c1 st.w r6, (r14, 0x4) + 4756: b8e2 st.w r7, (r14, 0x8) + 4758: 8843 ld.h r2, (r0, 0x6) + 475a: 4251 lsli r2, r2, 17 + 475c: 9061 ld.w r3, (r0, 0x4) + 475e: 9080 ld.w r4, (r0, 0x0) + 4760: 4a55 lsri r2, r2, 21 + 4762: 8007 ld.b r0, (r0, 0x7) + 4764: 436c lsli r3, r3, 12 + 4766: 4807 lsri r0, r0, 7 + 4768: 3a40 cmpnei r2, 0 + 476a: 4b6c lsri r3, r3, 12 + 476c: b101 st.w r0, (r1, 0x4) + 476e: 0819 bt 0x47a0 // 47a0 <__unpack_d+0x50> + 4770: 6c93 mov r2, r4 + 4772: 6c8c or r2, r3 + 4774: 3a40 cmpnei r2, 0 + 4776: 0c2d bf 0x47d0 // 47d0 <__unpack_d+0x80> + 4778: 4c58 lsri r2, r4, 24 + 477a: 4368 lsli r3, r3, 8 + 477c: 6cc8 or r3, r2 + 477e: 3203 movi r2, 3 + 4780: 4408 lsli r0, r4, 8 + 4782: b140 st.w r2, (r1, 0x0) + 4784: 1181 lrw r4, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 4786: 11c2 lrw r6, 0xfffffff // 480c <__unpack_d+0xbc> + 4788: 485f lsri r2, r0, 31 + 478a: 4361 lsli r3, r3, 1 + 478c: 6cc8 or r3, r2 + 478e: 64d8 cmphs r6, r3 + 4790: 6c93 mov r2, r4 + 4792: 4001 lsli r0, r0, 1 + 4794: 2c00 subi r4, 1 + 4796: 0bf9 bt 0x4788 // 4788 <__unpack_d+0x38> + 4798: b142 st.w r2, (r1, 0x8) + 479a: b103 st.w r0, (r1, 0xc) + 479c: b164 st.w r3, (r1, 0x10) + 479e: 0414 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47a0: 101c lrw r0, 0x7ff // 4810 <__unpack_d+0xc0> + 47a2: 640a cmpne r2, r0 + 47a4: 0c19 bf 0x47d6 // 47d6 <__unpack_d+0x86> + 47a6: 1019 lrw r0, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 47a8: 6080 addu r2, r0 + 47aa: b142 st.w r2, (r1, 0x8) + 47ac: 3203 movi r2, 3 + 47ae: 43e8 lsli r7, r3, 8 + 47b0: b140 st.w r2, (r1, 0x0) + 47b2: 3380 movi r3, 128 + 47b4: 4c58 lsri r2, r4, 24 + 47b6: 6dc8 or r7, r2 + 47b8: 44c8 lsli r6, r4, 8 + 47ba: 3200 movi r2, 0 + 47bc: 4375 lsli r3, r3, 21 + 47be: 6d88 or r6, r2 + 47c0: 6dcc or r7, r3 + 47c2: b1c3 st.w r6, (r1, 0xc) + 47c4: b1e4 st.w r7, (r1, 0x10) + 47c6: 98e2 ld.w r7, (r14, 0x8) + 47c8: 98c1 ld.w r6, (r14, 0x4) + 47ca: 9880 ld.w r4, (r14, 0x0) + 47cc: 1403 addi r14, r14, 12 + 47ce: 783c jmp r15 + 47d0: 3302 movi r3, 2 + 47d2: b160 st.w r3, (r1, 0x0) + 47d4: 07f9 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47d6: 6c93 mov r2, r4 + 47d8: 6c8c or r2, r3 + 47da: 3a40 cmpnei r2, 0 + 47dc: 0c10 bf 0x47fc // 47fc <__unpack_d+0xac> + 47de: 3280 movi r2, 128 + 47e0: 424c lsli r2, r2, 12 + 47e2: 688c and r2, r3 + 47e4: 3a40 cmpnei r2, 0 + 47e6: 0c0e bf 0x4802 // 4802 <__unpack_d+0xb2> + 47e8: 3201 movi r2, 1 + 47ea: b140 st.w r2, (r1, 0x0) + 47ec: 4c58 lsri r2, r4, 24 + 47ee: 4368 lsli r3, r3, 8 + 47f0: 6cc8 or r3, r2 + 47f2: 4408 lsli r0, r4, 8 + 47f4: 3b9b bclri r3, 27 + 47f6: b103 st.w r0, (r1, 0xc) + 47f8: b164 st.w r3, (r1, 0x10) + 47fa: 07e6 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47fc: 3304 movi r3, 4 + 47fe: b160 st.w r3, (r1, 0x0) + 4800: 07e3 br 0x47c6 // 47c6 <__unpack_d+0x76> + 4802: b140 st.w r2, (r1, 0x0) + 4804: 07f4 br 0x47ec // 47ec <__unpack_d+0x9c> + 4806: 0000 bkpt + 4808: fffffc01 .long 0xfffffc01 + 480c: 0fffffff .long 0x0fffffff + 4810: 000007ff .long 0x000007ff + +00004814 <__fpcmp_parts_d>: + 4814: 14c1 push r4 + 4816: 9060 ld.w r3, (r0, 0x0) + 4818: 3b01 cmphsi r3, 2 + 481a: 0c12 bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 481c: 9140 ld.w r2, (r1, 0x0) + 481e: 3a01 cmphsi r2, 2 + 4820: 0c0f bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 4822: 3b44 cmpnei r3, 4 + 4824: 0c17 bf 0x4852 // 4852 <__fpcmp_parts_d+0x3e> + 4826: 3a44 cmpnei r2, 4 + 4828: 0c0f bf 0x4846 // 4846 <__fpcmp_parts_d+0x32> + 482a: 3b42 cmpnei r3, 2 + 482c: 0c0b bf 0x4842 // 4842 <__fpcmp_parts_d+0x2e> + 482e: 3a42 cmpnei r2, 2 + 4830: 0c13 bf 0x4856 // 4856 <__fpcmp_parts_d+0x42> + 4832: 9061 ld.w r3, (r0, 0x4) + 4834: 9141 ld.w r2, (r1, 0x4) + 4836: 648e cmpne r3, r2 + 4838: 0c14 bf 0x4860 // 4860 <__fpcmp_parts_d+0x4c> + 483a: 3b40 cmpnei r3, 0 + 483c: 0808 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 483e: 3001 movi r0, 1 + 4840: 1481 pop r4 + 4842: 3a42 cmpnei r2, 2 + 4844: 0c28 bf 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4846: 9161 ld.w r3, (r1, 0x4) + 4848: 3b40 cmpnei r3, 0 + 484a: 0bfa bt 0x483e // 483e <__fpcmp_parts_d+0x2a> + 484c: 3000 movi r0, 0 + 484e: 2800 subi r0, 1 + 4850: 1481 pop r4 + 4852: 3a44 cmpnei r2, 4 + 4854: 0c22 bf 0x4898 // 4898 <__fpcmp_parts_d+0x84> + 4856: 9061 ld.w r3, (r0, 0x4) + 4858: 3b40 cmpnei r3, 0 + 485a: 0bf9 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 485c: 3001 movi r0, 1 + 485e: 07f1 br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 4860: 9082 ld.w r4, (r0, 0x8) + 4862: 9142 ld.w r2, (r1, 0x8) + 4864: 6509 cmplt r2, r4 + 4866: 0bea bt 0x483a // 483a <__fpcmp_parts_d+0x26> + 4868: 6491 cmplt r4, r2 + 486a: 080d bt 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 486c: 9044 ld.w r2, (r0, 0x10) + 486e: 9083 ld.w r4, (r0, 0xc) + 4870: 9103 ld.w r0, (r1, 0xc) + 4872: 9124 ld.w r1, (r1, 0x10) + 4874: 6484 cmphs r1, r2 + 4876: 0fe2 bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4878: 644a cmpne r2, r1 + 487a: 0803 bt 0x4880 // 4880 <__fpcmp_parts_d+0x6c> + 487c: 6500 cmphs r0, r4 + 487e: 0fde bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4880: 6448 cmphs r2, r1 + 4882: 0805 bt 0x488c // 488c <__fpcmp_parts_d+0x78> + 4884: 3b40 cmpnei r3, 0 + 4886: 0fe3 bf 0x484c // 484c <__fpcmp_parts_d+0x38> + 4888: 3001 movi r0, 1 + 488a: 07db br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 488c: 6486 cmpne r1, r2 + 488e: 0803 bt 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4890: 6410 cmphs r4, r0 + 4892: 0ff9 bf 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 4894: 3000 movi r0, 0 + 4896: 1481 pop r4 + 4898: 9161 ld.w r3, (r1, 0x4) + 489a: 9041 ld.w r2, (r0, 0x4) + 489c: 5b09 subu r0, r3, r2 + 489e: 1481 pop r4 + +000048a0 <__cskyvprintfsnprintf>: + 48a0: 1422 subi r14, r14, 8 + 48a2: b861 st.w r3, (r14, 0x4) + 48a4: b840 st.w r2, (r14, 0x0) + 48a6: 14d0 push r15 + 48a8: 1421 subi r14, r14, 4 + 48aa: 9862 ld.w r3, (r14, 0x8) + 48ac: b860 st.w r3, (r14, 0x0) + 48ae: 9840 ld.w r2, (r14, 0x0) + 48b0: 1b03 addi r3, r14, 12 + 48b2: e0000026 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + 48b6: 1401 addi r14, r14, 4 + 48b8: d9ee2000 ld.w r15, (r14, 0x0) + 48bc: 1403 addi r14, r14, 12 + 48be: 783c jmp r15 + +000048c0 : + 48c0: 14d3 push r4-r6, r15 + 48c2: 6d4b mov r5, r2 + 48c4: 9582 ld.w r4, (r5, 0x8) + 48c6: 9241 ld.w r2, (r2, 0x4) + 48c8: 610a subu r4, r2 + 48ca: 3c40 cmpnei r4, 0 + 48cc: 6d87 mov r6, r1 + 48ce: 0c16 bf 0x48fa // 48fa + 48d0: 6504 cmphs r1, r4 + 48d2: 0802 bt 0x48d6 // 48d6 + 48d4: 6d07 mov r4, r1 + 48d6: 9560 ld.w r3, (r5, 0x0) + 48d8: 3b40 cmpnei r3, 0 + 48da: 0c0d bf 0x48f4 // 48f4 + 48dc: 60c8 addu r3, r2 + 48de: 6c43 mov r1, r0 + 48e0: 6c93 mov r2, r4 + 48e2: 6c0f mov r0, r3 + 48e4: e000007e bsr 0x49e0 // 49e0 <__memcpy_fast> + 48e8: 9500 ld.w r0, (r5, 0x0) + 48ea: 9521 ld.w r1, (r5, 0x4) + 48ec: 6010 addu r0, r4 + 48ee: 6004 addu r0, r1 + 48f0: 3200 movi r2, 0 + 48f2: a040 st.b r2, (r0, 0x0) + 48f4: 9561 ld.w r3, (r5, 0x4) + 48f6: 610c addu r4, r3 + 48f8: b581 st.w r4, (r5, 0x4) + 48fa: 6c1b mov r0, r6 + 48fc: 1493 pop r4-r6, r15 + +000048fe <__cskyvprintfvsnprintf>: + 48fe: 14d3 push r4-r6, r15 + 4900: 1425 subi r14, r14, 20 + 4902: 6d07 mov r4, r1 + 4904: 6d43 mov r5, r0 + 4906: 6c4b mov r1, r2 + 4908: 1802 addi r0, r14, 8 + 490a: 3200 movi r2, 0 + 490c: 3c40 cmpnei r4, 0 + 490e: b0a0 st.w r5, (r0, 0x0) + 4910: b041 st.w r2, (r0, 0x4) + 4912: 0c1c bf 0x494a // 494a <__cskyvprintfvsnprintf+0x4c> + 4914: 5cc3 subi r6, r4, 1 + 4916: b0c2 st.w r6, (r0, 0x8) + 4918: b800 st.w r0, (r14, 0x0) + 491a: 6c8f mov r2, r3 + 491c: 100e lrw r0, 0x48c0 // 4954 <__cskyvprintfvsnprintf+0x56> + 491e: b801 st.w r0, (r14, 0x4) + 4920: 6c3b mov r0, r14 + 4922: e00000bf bsr 0x4aa0 // 4aa0 <__v2_printf> + 4926: 3d40 cmpnei r5, 0 + 4928: 0c0f bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492a: 3c40 cmpnei r4, 0 + 492c: 0c0d bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492e: 38df btsti r0, 31 + 4930: 080b bt 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 4932: 3300 movi r3, 0 + 4934: 2b00 subi r3, 1 + 4936: 64d2 cmpne r4, r3 + 4938: 0c0b bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493a: 6500 cmphs r0, r4 + 493c: 0c09 bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493e: 6114 addu r4, r5 + 4940: 2c00 subi r4, 1 + 4942: 3100 movi r1, 0 + 4944: a420 st.b r1, (r4, 0x0) + 4946: 1405 addi r14, r14, 20 + 4948: 1493 pop r4-r6, r15 + 494a: 3600 movi r6, 0 + 494c: 07e5 br 0x4916 // 4916 <__cskyvprintfvsnprintf+0x18> + 494e: 5d80 addu r4, r5, r0 + 4950: 07f9 br 0x4942 // 4942 <__cskyvprintfvsnprintf+0x44> + 4952: 0000 bkpt + 4954: 000048c0 .long 0x000048c0 + +00004958 <__memset_fast>: + 4958: 14c3 push r4-r6 + 495a: 7444 zextb r1, r1 + 495c: 3a40 cmpnei r2, 0 + 495e: 0c1f bf 0x499c // 499c <__memset_fast+0x44> + 4960: 6d43 mov r5, r0 + 4962: 6d03 mov r4, r0 + 4964: 3603 movi r6, 3 + 4966: 6918 and r4, r6 + 4968: 3c40 cmpnei r4, 0 + 496a: 0c1a bf 0x499e // 499e <__memset_fast+0x46> + 496c: a520 st.b r1, (r5, 0x0) + 496e: 2a00 subi r2, 1 + 4970: 3a40 cmpnei r2, 0 + 4972: 0c15 bf 0x499c // 499c <__memset_fast+0x44> + 4974: 2500 addi r5, 1 + 4976: 6d17 mov r4, r5 + 4978: 3603 movi r6, 3 + 497a: 6918 and r4, r6 + 497c: 3c40 cmpnei r4, 0 + 497e: 0c10 bf 0x499e // 499e <__memset_fast+0x46> + 4980: a520 st.b r1, (r5, 0x0) + 4982: 2a00 subi r2, 1 + 4984: 3a40 cmpnei r2, 0 + 4986: 0c0b bf 0x499c // 499c <__memset_fast+0x44> + 4988: 2500 addi r5, 1 + 498a: 6d17 mov r4, r5 + 498c: 3603 movi r6, 3 + 498e: 6918 and r4, r6 + 4990: 3c40 cmpnei r4, 0 + 4992: 0c06 bf 0x499e // 499e <__memset_fast+0x46> + 4994: a520 st.b r1, (r5, 0x0) + 4996: 2a00 subi r2, 1 + 4998: 2500 addi r5, 1 + 499a: 0402 br 0x499e // 499e <__memset_fast+0x46> + 499c: 1483 pop r4-r6 + 499e: 4168 lsli r3, r1, 8 + 49a0: 6c4c or r1, r3 + 49a2: 4170 lsli r3, r1, 16 + 49a4: 6c4c or r1, r3 + 49a6: 3a2f cmplti r2, 16 + 49a8: 0809 bt 0x49ba // 49ba <__memset_fast+0x62> + 49aa: b520 st.w r1, (r5, 0x0) + 49ac: b521 st.w r1, (r5, 0x4) + 49ae: b522 st.w r1, (r5, 0x8) + 49b0: b523 st.w r1, (r5, 0xc) + 49b2: 2a0f subi r2, 16 + 49b4: 250f addi r5, 16 + 49b6: 3a2f cmplti r2, 16 + 49b8: 0ff9 bf 0x49aa // 49aa <__memset_fast+0x52> + 49ba: 3a23 cmplti r2, 4 + 49bc: 0806 bt 0x49c8 // 49c8 <__memset_fast+0x70> + 49be: 2a03 subi r2, 4 + 49c0: b520 st.w r1, (r5, 0x0) + 49c2: 2503 addi r5, 4 + 49c4: 3a23 cmplti r2, 4 + 49c6: 0ffc bf 0x49be // 49be <__memset_fast+0x66> + 49c8: 3a40 cmpnei r2, 0 + 49ca: 0fe9 bf 0x499c // 499c <__memset_fast+0x44> + 49cc: 2a00 subi r2, 1 + 49ce: a520 st.b r1, (r5, 0x0) + 49d0: 3a40 cmpnei r2, 0 + 49d2: 0fe5 bf 0x499c // 499c <__memset_fast+0x44> + 49d4: 2a00 subi r2, 1 + 49d6: a521 st.b r1, (r5, 0x1) + 49d8: 3a40 cmpnei r2, 0 + 49da: 0fe1 bf 0x499c // 499c <__memset_fast+0x44> + 49dc: a522 st.b r1, (r5, 0x2) + 49de: 1483 pop r4-r6 + +000049e0 <__memcpy_fast>: + 49e0: 14c3 push r4-r6 + 49e2: 6d83 mov r6, r0 + 49e4: 6d07 mov r4, r1 + 49e6: 6d18 or r4, r6 + 49e8: 3303 movi r3, 3 + 49ea: 690c and r4, r3 + 49ec: 3c40 cmpnei r4, 0 + 49ee: 0c0b bf 0x4a04 // 4a04 <__memcpy_fast+0x24> + 49f0: 3a40 cmpnei r2, 0 + 49f2: 0c08 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 49f4: 8160 ld.b r3, (r1, 0x0) + 49f6: 2100 addi r1, 1 + 49f8: 2a00 subi r2, 1 + 49fa: a660 st.b r3, (r6, 0x0) + 49fc: 2600 addi r6, 1 + 49fe: 3a40 cmpnei r2, 0 + 4a00: 0bfa bt 0x49f4 // 49f4 <__memcpy_fast+0x14> + 4a02: 1483 pop r4-r6 + 4a04: 3a2f cmplti r2, 16 + 4a06: 080e bt 0x4a22 // 4a22 <__memcpy_fast+0x42> + 4a08: 91a0 ld.w r5, (r1, 0x0) + 4a0a: 9161 ld.w r3, (r1, 0x4) + 4a0c: 9182 ld.w r4, (r1, 0x8) + 4a0e: b6a0 st.w r5, (r6, 0x0) + 4a10: 91a3 ld.w r5, (r1, 0xc) + 4a12: b661 st.w r3, (r6, 0x4) + 4a14: b682 st.w r4, (r6, 0x8) + 4a16: b6a3 st.w r5, (r6, 0xc) + 4a18: 2a0f subi r2, 16 + 4a1a: 210f addi r1, 16 + 4a1c: 260f addi r6, 16 + 4a1e: 3a2f cmplti r2, 16 + 4a20: 0ff4 bf 0x4a08 // 4a08 <__memcpy_fast+0x28> + 4a22: 3a23 cmplti r2, 4 + 4a24: 0808 bt 0x4a34 // 4a34 <__memcpy_fast+0x54> + 4a26: 9160 ld.w r3, (r1, 0x0) + 4a28: 2a03 subi r2, 4 + 4a2a: 2103 addi r1, 4 + 4a2c: b660 st.w r3, (r6, 0x0) + 4a2e: 2603 addi r6, 4 + 4a30: 3a23 cmplti r2, 4 + 4a32: 0ffa bf 0x4a26 // 4a26 <__memcpy_fast+0x46> + 4a34: 3a40 cmpnei r2, 0 + 4a36: 0fe6 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 4a38: 8160 ld.b r3, (r1, 0x0) + 4a3a: 2100 addi r1, 1 + 4a3c: 2a00 subi r2, 1 + 4a3e: a660 st.b r3, (r6, 0x0) + 4a40: 2600 addi r6, 1 + 4a42: 07f9 br 0x4a34 // 4a34 <__memcpy_fast+0x54> + +00004a44 <__GI_strncmp>: + 4a44: 14c1 push r4 + 4a46: 6cc3 mov r3, r0 + 4a48: 6080 addu r2, r0 + 4a4a: 040c br 0x4a62 // 4a62 <__GI_strncmp+0x1e> + 4a4c: 8380 ld.b r4, (r3, 0x0) + 4a4e: 8100 ld.b r0, (r1, 0x0) + 4a50: 6012 subu r0, r4 + 4a52: 6c02 nor r0, r0 + 4a54: 2000 addi r0, 1 + 4a56: 3840 cmpnei r0, 0 + 4a58: 0808 bt 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5a: 3c40 cmpnei r4, 0 + 4a5c: 0c06 bf 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5e: 2300 addi r3, 1 + 4a60: 2100 addi r1, 1 + 4a62: 648c cmphs r3, r2 + 4a64: 0ff4 bf 0x4a4c // 4a4c <__GI_strncmp+0x8> + 4a66: 3000 movi r0, 0 + 4a68: 1481 pop r4 + ... + +00004a6c : + 4a6c: 14d4 push r4-r7, r15 + 4a6e: 3820 cmplti r0, 1 + 4a70: 6d03 mov r4, r0 + 4a72: 6d47 mov r5, r1 + 4a74: 6df7 mov r7, r13 + 4a76: 080d bt 0x4a90 // 4a90 + 4a78: 6d83 mov r6, r0 + 4a7a: 3e30 cmplti r6, 17 + 4a7c: 9700 ld.w r0, (r7, 0x0) + 4a7e: 0c0a bf 0x4a92 // 4a92 + 4a80: 5c63 subi r3, r4, 1 + 4a82: 4b24 lsri r1, r3, 4 + 4a84: 4164 lsli r3, r1, 4 + 4a86: 9040 ld.w r2, (r0, 0x0) + 4a88: 5c2d subu r1, r4, r3 + 4a8a: 9081 ld.w r4, (r0, 0x4) + 4a8c: 6c17 mov r0, r5 + 4a8e: 7bd1 jsr r4 + 4a90: 1494 pop r4-r7, r15 + 4a92: 9040 ld.w r2, (r0, 0x0) + 4a94: 9061 ld.w r3, (r0, 0x4) + 4a96: 3110 movi r1, 16 + 4a98: 6c17 mov r0, r5 + 4a9a: 7bcd jsr r3 + 4a9c: 2e0f subi r6, 16 + 4a9e: 07ee br 0x4a7a // 4a7a + +00004aa0 <__v2_printf>: + 4aa0: 14d4 push r4-r7, r15 + 4aa2: 143c subi r14, r14, 112 + 4aa4: b826 st.w r1, (r14, 0x18) + 4aa6: 1912 addi r1, r14, 72 + 4aa8: 1b21 addi r3, r14, 132 + 4aaa: b810 st.w r0, (r14, 0x40) + 4aac: 2100 addi r1, 1 + 4aae: 3000 movi r0, 0 + 4ab0: 6d4b mov r5, r2 + 4ab2: b871 st.w r3, (r14, 0x44) + 4ab4: b80a st.w r0, (r14, 0x28) + 4ab6: b809 st.w r0, (r14, 0x24) + 4ab8: b82d st.w r1, (r14, 0x34) + 4aba: 9886 ld.w r4, (r14, 0x18) + 4abc: 3325 movi r3, 37 + 4abe: 84c0 ld.b r6, (r4, 0x0) + 4ac0: 3e40 cmpnei r6, 0 + 4ac2: 0c03 bf 0x4ac8 // 4ac8 <__v2_printf+0x28> + 4ac4: 64da cmpne r6, r3 + 4ac6: 0845 bt 0x4b50 // 4b50 <__v2_printf+0xb0> + 4ac8: 9846 ld.w r2, (r14, 0x18) + 4aca: 5cc9 subu r6, r4, r2 + 4acc: 3e40 cmpnei r6, 0 + 4ace: 0c0a bf 0x4ae2 // 4ae2 <__v2_printf+0x42> + 4ad0: 9870 ld.w r3, (r14, 0x40) + 4ad2: 9340 ld.w r2, (r3, 0x0) + 4ad4: 6c5b mov r1, r6 + 4ad6: 9361 ld.w r3, (r3, 0x4) + 4ad8: 9806 ld.w r0, (r14, 0x18) + 4ada: 7bcd jsr r3 + 4adc: 9809 ld.w r0, (r14, 0x24) + 4ade: 6018 addu r0, r6 + 4ae0: b809 st.w r0, (r14, 0x24) + 4ae2: 8420 ld.b r1, (r4, 0x0) + 4ae4: 3940 cmpnei r1, 0 + 4ae6: 0803 bt 0x4aec // 4aec <__v2_printf+0x4c> + 4ae8: e8000367 br 0x51b6 // 51b6 <__v2_printf+0x716> + 4aec: 3637 movi r6, 55 + 4aee: 1a01 addi r2, r14, 4 + 4af0: 3700 movi r7, 0 + 4af2: 6188 addu r6, r2 + 4af4: a6e0 st.b r7, (r6, 0x0) + 4af6: 3300 movi r3, 0 + 4af8: 3600 movi r6, 0 + 4afa: 2400 addi r4, 1 + 4afc: 3000 movi r0, 0 + 4afe: 3100 movi r1, 0 + 4b00: 2e00 subi r6, 1 + 4b02: b867 st.w r3, (r14, 0x1c) + 4b04: 3700 movi r7, 0 + 4b06: 5c42 addi r2, r4, 1 + 4b08: b846 st.w r2, (r14, 0x18) + 4b0a: 8480 ld.b r4, (r4, 0x0) + 4b0c: 3364 movi r3, 100 + 4b0e: 64d2 cmpne r4, r3 + 4b10: 0d90 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4b12: 650d cmplt r3, r4 + 4b14: 084e bt 0x4bb0 // 4bb0 <__v2_printf+0x110> + 4b16: 322e movi r2, 46 + 4b18: 6492 cmpne r4, r2 + 4b1a: 0d41 bf 0x4d9c // 4d9c <__v2_printf+0x2fc> + 4b1c: 6509 cmplt r2, r4 + 4b1e: 0829 bt 0x4b70 // 4b70 <__v2_printf+0xd0> + 4b20: 332a movi r3, 42 + 4b22: 64d2 cmpne r4, r3 + 4b24: 0d31 bf 0x4d86 // 4d86 <__v2_printf+0x2e6> + 4b26: 650d cmplt r3, r4 + 4b28: 081c bt 0x4b60 // 4b60 <__v2_printf+0xc0> + 4b2a: 3220 movi r2, 32 + 4b2c: 6492 cmpne r4, r2 + 4b2e: 0d25 bf 0x4d78 // 4d78 <__v2_printf+0x2d8> + 4b30: 3323 movi r3, 35 + 4b32: 64d2 cmpne r4, r3 + 4b34: 0d27 bf 0x4d82 // 4d82 <__v2_printf+0x2e2> + 4b36: 3c40 cmpnei r4, 0 + 4b38: 0803 bt 0x4b3e // 4b3e <__v2_printf+0x9e> + 4b3a: e800033e br 0x51b6 // 51b6 <__v2_printf+0x716> + 4b3e: 1e12 addi r6, r14, 72 + 4b40: 3037 movi r0, 55 + 4b42: 1a01 addi r2, r14, 4 + 4b44: a680 st.b r4, (r6, 0x0) + 4b46: 6008 addu r0, r2 + 4b48: 3400 movi r4, 0 + 4b4a: a080 st.b r4, (r0, 0x0) + 4b4c: b8a5 st.w r5, (r14, 0x14) + 4b4e: 042c br 0x4ba6 // 4ba6 <__v2_printf+0x106> + 4b50: 2400 addi r4, 1 + 4b52: 07b6 br 0x4abe // 4abe <__v2_printf+0x1e> + 4b54: 3001 movi r0, 1 + 4b56: 312b movi r1, 43 + 4b58: 9886 ld.w r4, (r14, 0x18) + 4b5a: 07d6 br 0x4b06 // 4b06 <__v2_printf+0x66> + 4b5c: 6d4f mov r5, r3 + 4b5e: 07fd br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b60: 322b movi r2, 43 + 4b62: 6492 cmpne r4, r2 + 4b64: 0ff8 bf 0x4b54 // 4b54 <__v2_printf+0xb4> + 4b66: 332d movi r3, 45 + 4b68: 64d2 cmpne r4, r3 + 4b6a: 0be6 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b6c: 3fa2 bseti r7, 2 + 4b6e: 07f5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b70: 3339 movi r3, 57 + 4b72: 650d cmplt r3, r4 + 4b74: 0809 bt 0x4b86 // 4b86 <__v2_printf+0xe6> + 4b76: 3231 movi r2, 49 + 4b78: 6491 cmplt r4, r2 + 4b7a: 0d34 bf 0x4de2 // 4de2 <__v2_printf+0x342> + 4b7c: 3330 movi r3, 48 + 4b7e: 64d2 cmpne r4, r3 + 4b80: 0bdb bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b82: 3fa7 bseti r7, 7 + 4b84: 07ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b86: 3258 movi r2, 88 + 4b88: 6492 cmpne r4, r2 + 4b8a: 0cd3 bf 0x4d30 // 4d30 <__v2_printf+0x290> + 4b8c: 3063 movi r0, 99 + 4b8e: 6412 cmpne r4, r0 + 4b90: 0bd3 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b92: 3337 movi r3, 55 + 4b94: 1a01 addi r2, r14, 4 + 4b96: 5d2e addi r1, r5, 4 + 4b98: 85c0 ld.b r6, (r5, 0x0) + 4b9a: 3400 movi r4, 0 + 4b9c: 1d12 addi r5, r14, 72 + 4b9e: 60c8 addu r3, r2 + 4ba0: b825 st.w r1, (r14, 0x14) + 4ba2: a5c0 st.b r6, (r5, 0x0) + 4ba4: a380 st.b r4, (r3, 0x0) + 4ba6: 3601 movi r6, 1 + 4ba8: 3500 movi r5, 0 + 4baa: 1c12 addi r4, r14, 72 + 4bac: e8000295 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4bb0: 336d movi r3, 109 + 4bb2: 64d2 cmpne r4, r3 + 4bb4: 0d2d bf 0x4e0e // 4e0e <__v2_printf+0x36e> + 4bb6: 650d cmplt r3, r4 + 4bb8: 0883 bt 0x4cbe // 4cbe <__v2_printf+0x21e> + 4bba: 3268 movi r2, 104 + 4bbc: 6492 cmpne r4, r2 + 4bbe: 0d24 bf 0x4e06 // 4e06 <__v2_printf+0x366> + 4bc0: 6509 cmplt r2, r4 + 4bc2: 086f bt 0x4ca0 // 4ca0 <__v2_printf+0x200> + 4bc4: 3366 movi r3, 102 + 4bc6: 64d1 cmplt r4, r3 + 4bc8: 0bb7 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4bca: 3840 cmpnei r0, 0 + 4bcc: 0c05 bf 0x4bd6 // 4bd6 <__v2_printf+0x136> + 4bce: 3037 movi r0, 55 + 4bd0: 1a01 addi r2, r14, 4 + 4bd2: 6008 addu r0, r2 + 4bd4: a020 st.b r1, (r0, 0x0) + 4bd6: 5d3e addi r1, r5, 8 + 4bd8: b825 st.w r1, (r14, 0x14) + 4bda: 9500 ld.w r0, (r5, 0x0) + 4bdc: 9521 ld.w r1, (r5, 0x4) + 4bde: 98a7 ld.w r5, (r14, 0x1c) + 4be0: 3d40 cmpnei r5, 0 + 4be2: 0803 bt 0x4be8 // 4be8 <__v2_printf+0x148> + 4be4: 3301 movi r3, 1 + 4be6: b867 st.w r3, (r14, 0x1c) + 4be8: 3200 movi r2, 0 + 4bea: 2a00 subi r2, 1 + 4bec: 649a cmpne r6, r2 + 4bee: 0d58 bf 0x4e9e // 4e9e <__v2_printf+0x3fe> + 4bf0: 6d5b mov r5, r6 + 4bf2: 9867 ld.w r3, (r14, 0x1c) + 4bf4: b860 st.w r3, (r14, 0x0) + 4bf6: b8a1 st.w r5, (r14, 0x4) + 4bf8: 3328 movi r3, 40 + 4bfa: 1a12 addi r2, r14, 72 + 4bfc: e000069d bsr 0x5936 // 5936 <__GI___dtostr> + 4c00: 3100 movi r1, 0 + 4c02: 2900 subi r1, 1 + 4c04: 645a cmpne r6, r1 + 4c06: b808 st.w r0, (r14, 0x20) + 4c08: 0c1a bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4c0a: 312e movi r1, 46 + 4c0c: 980d ld.w r0, (r14, 0x34) + 4c0e: e00008c9 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c12: 3840 cmpnei r0, 0 + 4c14: 98c8 ld.w r6, (r14, 0x20) + 4c16: 0d48 bf 0x4ea6 // 4ea6 <__v2_printf+0x406> + 4c18: 3d40 cmpnei r5, 0 + 4c1a: 0805 bt 0x4c24 // 4c24 <__v2_printf+0x184> + 4c1c: 3101 movi r1, 1 + 4c1e: 685c and r1, r7 + 4c20: 3940 cmpnei r1, 0 + 4c22: 0d40 bf 0x4ea2 // 4ea2 <__v2_printf+0x402> + 4c24: 58c2 addi r6, r0, 1 + 4c26: 2500 addi r5, 1 + 4c28: 5d59 subu r2, r5, r6 + 4c2a: 6080 addu r2, r0 + 4c2c: 3a20 cmplti r2, 1 + 4c2e: 0805 bt 0x4c38 // 4c38 <__v2_printf+0x198> + 4c30: 2600 addi r6, 1 + 4c32: 8660 ld.b r3, (r6, 0x0) + 4c34: 3b40 cmpnei r3, 0 + 4c36: 0bf9 bt 0x4c28 // 4c28 <__v2_printf+0x188> + 4c38: 3500 movi r5, 0 + 4c3a: a6a0 st.b r5, (r6, 0x0) + 4c3c: 3067 movi r0, 103 + 4c3e: 6412 cmpne r4, r0 + 4c40: 0822 bt 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c42: 312e movi r1, 46 + 4c44: 1812 addi r0, r14, 72 + 4c46: e00008ad bsr 0x5da0 // 5da0 <__GI_strchr> + 4c4a: 3840 cmpnei r0, 0 + 4c4c: 6d03 mov r4, r0 + 4c4e: 0c1b bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c50: 3165 movi r1, 101 + 4c52: e00008a7 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c56: 6c43 mov r1, r0 + 4c58: 84c0 ld.b r6, (r4, 0x0) + 4c5a: 3e40 cmpnei r6, 0 + 4c5c: 0930 bt 0x4ebc // 4ebc <__v2_printf+0x41c> + 4c5e: 3940 cmpnei r1, 0 + 4c60: 0c02 bf 0x4c64 // 4c64 <__v2_printf+0x1c4> + 4c62: 6d07 mov r4, r1 + 4c64: 3630 movi r6, 48 + 4c66: 5c63 subi r3, r4, 1 + 4c68: 8340 ld.b r2, (r3, 0x0) + 4c6a: 658a cmpne r2, r6 + 4c6c: 0d2a bf 0x4ec0 // 4ec0 <__v2_printf+0x420> + 4c6e: 352e movi r5, 46 + 4c70: 654a cmpne r2, r5 + 4c72: 0802 bt 0x4c76 // 4c76 <__v2_printf+0x1d6> + 4c74: 6d0f mov r4, r3 + 4c76: 3000 movi r0, 0 + 4c78: 3940 cmpnei r1, 0 + 4c7a: a400 st.b r0, (r4, 0x0) + 4c7c: 0c04 bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c7e: 6c13 mov r0, r4 + 4c80: e0000838 bsr 0x5cf0 // 5cf0 <__strcpy_fast> + 4c84: 1912 addi r1, r14, 72 + 4c86: 81c0 ld.b r6, (r1, 0x0) + 4c88: 332d movi r3, 45 + 4c8a: 64da cmpne r6, r3 + 4c8c: 0c02 bf 0x4c90 // 4c90 <__v2_printf+0x1f0> + 4c8e: 05ef br 0x506c // 506c <__v2_printf+0x5cc> + 4c90: 3437 movi r4, 55 + 4c92: 1801 addi r0, r14, 4 + 4c94: 352d movi r5, 45 + 4c96: 6100 addu r4, r0 + 4c98: a4a0 st.b r5, (r4, 0x0) + 4c9a: 1912 addi r1, r14, 72 + 4c9c: 5982 addi r4, r1, 1 + 4c9e: 05ec br 0x5076 // 5076 <__v2_printf+0x5d6> + 4ca0: 3369 movi r3, 105 + 4ca2: 64d2 cmpne r4, r3 + 4ca4: 0cc6 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4ca6: 326c movi r2, 108 + 4ca8: 6492 cmpne r4, r2 + 4caa: 0b46 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cac: 9866 ld.w r3, (r14, 0x18) + 4cae: 8340 ld.b r2, (r3, 0x0) + 4cb0: 650a cmpne r2, r4 + 4cb2: 08ac bt 0x4e0a // 4e0a <__v2_printf+0x36a> + 4cb4: 9886 ld.w r4, (r14, 0x18) + 4cb6: 2400 addi r4, 1 + 4cb8: b886 st.w r4, (r14, 0x18) + 4cba: 3fa5 bseti r7, 5 + 4cbc: 074e br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4cbe: 3371 movi r3, 113 + 4cc0: 64d2 cmpne r4, r3 + 4cc2: 0ffc bf 0x4cba // 4cba <__v2_printf+0x21a> + 4cc4: 650d cmplt r3, r4 + 4cc6: 081a bt 0x4cfa // 4cfa <__v2_printf+0x25a> + 4cc8: 306f movi r0, 111 + 4cca: 6412 cmpne r4, r0 + 4ccc: 0cfc bf 0x4ec4 // 4ec4 <__v2_printf+0x424> + 4cce: 3170 movi r1, 112 + 4cd0: 6452 cmpne r4, r1 + 4cd2: 0b32 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cd4: 5d4e addi r2, r5, 4 + 4cd6: 3400 movi r4, 0 + 4cd8: 95a0 ld.w r5, (r5, 0x0) + 4cda: b845 st.w r2, (r14, 0x14) + 4cdc: 1901 addi r1, r14, 4 + 4cde: 3239 movi r2, 57 + 4ce0: b8a3 st.w r5, (r14, 0xc) + 4ce2: b884 st.w r4, (r14, 0x10) + 4ce4: 3330 movi r3, 48 + 4ce6: 180f addi r0, r14, 60 + 4ce8: 3578 movi r5, 120 + 4cea: 6084 addu r2, r1 + 4cec: 0195 lrw r4, 0xbaaf // 5014 <__v2_printf+0x574> + 4cee: 3fa1 bseti r7, 1 + 4cf0: a060 st.b r3, (r0, 0x0) + 4cf2: a2a0 st.b r5, (r2, 0x0) + 4cf4: b88a st.w r4, (r14, 0x28) + 4cf6: 3402 movi r4, 2 + 4cf8: 04f1 br 0x4eda // 4eda <__v2_printf+0x43a> + 4cfa: 3275 movi r2, 117 + 4cfc: 6492 cmpne r4, r2 + 4cfe: 0d28 bf 0x4f4e // 4f4e <__v2_printf+0x4ae> + 4d00: 3378 movi r3, 120 + 4d02: 64d2 cmpne r4, r3 + 4d04: 0d44 bf 0x4f8c // 4f8c <__v2_printf+0x4ec> + 4d06: 3173 movi r1, 115 + 4d08: 6452 cmpne r4, r1 + 4d0a: 0b16 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4d0c: 3200 movi r2, 0 + 4d0e: 3037 movi r0, 55 + 4d10: 1901 addi r1, r14, 4 + 4d12: 2a00 subi r2, 1 + 4d14: 5d6e addi r3, r5, 4 + 4d16: 9580 ld.w r4, (r5, 0x0) + 4d18: 6004 addu r0, r1 + 4d1a: 3500 movi r5, 0 + 4d1c: 649a cmpne r6, r2 + 4d1e: b865 st.w r3, (r14, 0x14) + 4d20: a0a0 st.b r5, (r0, 0x0) + 4d22: 090b bt 0x4f38 // 4f38 <__v2_printf+0x498> + 4d24: 6cd3 mov r3, r4 + 4d26: 83c0 ld.b r6, (r3, 0x0) + 4d28: 3e40 cmpnei r6, 0 + 4d2a: 0910 bt 0x4f4a // 4f4a <__v2_printf+0x4aa> + 4d2c: 5bd1 subu r6, r3, r4 + 4d2e: 047f br 0x4e2c // 4e2c <__v2_printf+0x38c> + 4d30: 3840 cmpnei r0, 0 + 4d32: 0c05 bf 0x4d3c // 4d3c <__v2_printf+0x29c> + 4d34: 3037 movi r0, 55 + 4d36: 1b01 addi r3, r14, 4 + 4d38: 600c addu r0, r3 + 4d3a: a020 st.b r1, (r0, 0x0) + 4d3c: 0228 lrw r1, 0xba9e // 5018 <__v2_printf+0x578> + 4d3e: 3020 movi r0, 32 + 4d40: 681c and r0, r7 + 4d42: 3840 cmpnei r0, 0 + 4d44: b82a st.w r1, (r14, 0x28) + 4d46: 0d2b bf 0x4f9c // 4f9c <__v2_printf+0x4fc> + 4d48: 5d5e addi r2, r5, 8 + 4d4a: b845 st.w r2, (r14, 0x14) + 4d4c: 9520 ld.w r1, (r5, 0x0) + 4d4e: 9541 ld.w r2, (r5, 0x4) + 4d50: b823 st.w r1, (r14, 0xc) + 4d52: b844 st.w r2, (r14, 0x10) + 4d54: 3001 movi r0, 1 + 4d56: 681c and r0, r7 + 4d58: 3840 cmpnei r0, 0 + 4d5a: 0fce bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d5c: 98a3 ld.w r5, (r14, 0xc) + 4d5e: 9864 ld.w r3, (r14, 0x10) + 4d60: 6d4c or r5, r3 + 4d62: 3d40 cmpnei r5, 0 + 4d64: 0fc9 bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d66: 3039 movi r0, 57 + 4d68: 1d01 addi r5, r14, 4 + 4d6a: 3130 movi r1, 48 + 4d6c: 1a0f addi r2, r14, 60 + 4d6e: 6014 addu r0, r5 + 4d70: a220 st.b r1, (r2, 0x0) + 4d72: a080 st.b r4, (r0, 0x0) + 4d74: 3fa1 bseti r7, 1 + 4d76: 07c0 br 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d78: 3940 cmpnei r1, 0 + 4d7a: 0aef bt 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d7c: 3001 movi r0, 1 + 4d7e: 3120 movi r1, 32 + 4d80: 06ec br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d82: 3fa0 bseti r7, 0 + 4d84: 06ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d86: 9580 ld.w r4, (r5, 0x0) + 4d88: 3cdf btsti r4, 31 + 4d8a: 5d6e addi r3, r5, 4 + 4d8c: b887 st.w r4, (r14, 0x1c) + 4d8e: 0ee7 bf 0x4b5c // 4b5c <__v2_printf+0xbc> + 4d90: 9847 ld.w r2, (r14, 0x1c) + 4d92: 3500 movi r5, 0 + 4d94: 614a subu r5, r2 + 4d96: b8a7 st.w r5, (r14, 0x1c) + 4d98: 6d4f mov r5, r3 + 4d9a: 06e9 br 0x4b6c // 4b6c <__v2_printf+0xcc> + 4d9c: 98c6 ld.w r6, (r14, 0x18) + 4d9e: 8680 ld.b r4, (r6, 0x0) + 4da0: 322a movi r2, 42 + 4da2: 9866 ld.w r3, (r14, 0x18) + 4da4: 6492 cmpne r4, r2 + 4da6: 2300 addi r3, 1 + 4da8: 0c0b bf 0x4dbe // 4dbe <__v2_printf+0x31e> + 4daa: b865 st.w r3, (r14, 0x14) + 4dac: 3600 movi r6, 0 + 4dae: 3300 movi r3, 0 + 4db0: 2b2f subi r3, 48 + 4db2: 60d0 addu r3, r4 + 4db4: 3b09 cmphsi r3, 10 + 4db6: 9845 ld.w r2, (r14, 0x14) + 4db8: 0c0c bf 0x4dd0 // 4dd0 <__v2_printf+0x330> + 4dba: b846 st.w r2, (r14, 0x18) + 4dbc: 06a8 br 0x4b0c // 4b0c <__v2_printf+0x6c> + 4dbe: 95c0 ld.w r6, (r5, 0x0) + 4dc0: 3edf btsti r6, 31 + 4dc2: 5d8e addi r4, r5, 4 + 4dc4: 0c03 bf 0x4dca // 4dca <__v2_printf+0x32a> + 4dc6: 3600 movi r6, 0 + 4dc8: 2e00 subi r6, 1 + 4dca: 6d53 mov r5, r4 + 4dcc: b866 st.w r3, (r14, 0x18) + 4dce: 06c5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4dd0: 340a movi r4, 10 + 4dd2: 7d18 mult r4, r6 + 4dd4: 9845 ld.w r2, (r14, 0x14) + 4dd6: 6d8f mov r6, r3 + 4dd8: 6190 addu r6, r4 + 4dda: 8280 ld.b r4, (r2, 0x0) + 4ddc: 2200 addi r2, 1 + 4dde: b845 st.w r2, (r14, 0x14) + 4de0: 07e7 br 0x4dae // 4dae <__v2_printf+0x30e> + 4de2: 3200 movi r2, 0 + 4de4: b847 st.w r2, (r14, 0x1c) + 4de6: 9867 ld.w r3, (r14, 0x1c) + 4de8: 320a movi r2, 10 + 4dea: 7cc8 mult r3, r2 + 4dec: 2c2f subi r4, 48 + 4dee: 610c addu r4, r3 + 4df0: b887 st.w r4, (r14, 0x1c) + 4df2: 3300 movi r3, 0 + 4df4: 9886 ld.w r4, (r14, 0x18) + 4df6: 5c42 addi r2, r4, 1 + 4df8: 2b2f subi r3, 48 + 4dfa: 8480 ld.b r4, (r4, 0x0) + 4dfc: 60d0 addu r3, r4 + 4dfe: 3b09 cmphsi r3, 10 + 4e00: b846 st.w r2, (r14, 0x18) + 4e02: 0ff2 bf 0x4de6 // 4de6 <__v2_printf+0x346> + 4e04: 07db br 0x4dba // 4dba <__v2_printf+0x31a> + 4e06: 3fa6 bseti r7, 6 + 4e08: 06a8 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0a: 3fa4 bseti r7, 4 + 4e0c: 06a6 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0e: 3840 cmpnei r0, 0 + 4e10: 0c05 bf 0x4e1a // 4e1a <__v2_printf+0x37a> + 4e12: 3637 movi r6, 55 + 4e14: 1b01 addi r3, r14, 4 + 4e16: 618c addu r6, r3 + 4e18: a620 st.b r1, (r6, 0x0) + 4e1a: 033e lrw r1, 0x20000af4 // 501c <__v2_printf+0x57c> + 4e1c: 9100 ld.w r0, (r1, 0x0) + 4e1e: e00007cb bsr 0x5db4 // 5db4 <__GI_strerror> + 4e22: 6d03 mov r4, r0 + 4e24: e000073c bsr 0x5c9c // 5c9c <__strlen_fast> + 4e28: 6d83 mov r6, r0 + 4e2a: b8a5 st.w r5, (r14, 0x14) + 4e2c: 3500 movi r5, 0 + 4e2e: 0554 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4e30: 3840 cmpnei r0, 0 + 4e32: 0c05 bf 0x4e3c // 4e3c <__v2_printf+0x39c> + 4e34: 3037 movi r0, 55 + 4e36: 1a01 addi r2, r14, 4 + 4e38: 6008 addu r0, r2 + 4e3a: a020 st.b r1, (r0, 0x0) + 4e3c: 3420 movi r4, 32 + 4e3e: 691c and r4, r7 + 4e40: 3c40 cmpnei r4, 0 + 4e42: 0c1a bf 0x4e76 // 4e76 <__v2_printf+0x3d6> + 4e44: 5d7e addi r3, r5, 8 + 4e46: 9520 ld.w r1, (r5, 0x0) + 4e48: 9541 ld.w r2, (r5, 0x4) + 4e4a: b865 st.w r3, (r14, 0x14) + 4e4c: b823 st.w r1, (r14, 0xc) + 4e4e: b844 st.w r2, (r14, 0x10) + 4e50: 9804 ld.w r0, (r14, 0x10) + 4e52: 38df btsti r0, 31 + 4e54: 0c0f bf 0x4e72 // 4e72 <__v2_printf+0x3d2> + 4e56: 9883 ld.w r4, (r14, 0xc) + 4e58: 98a4 ld.w r5, (r14, 0x10) + 4e5a: 3200 movi r2, 0 + 4e5c: 3300 movi r3, 0 + 4e5e: 6488 cmphs r2, r2 + 4e60: 6093 subc r2, r4 + 4e62: 60d7 subc r3, r5 + 4e64: b843 st.w r2, (r14, 0xc) + 4e66: b864 st.w r3, (r14, 0x10) + 4e68: 3237 movi r2, 55 + 4e6a: 1b01 addi r3, r14, 4 + 4e6c: 352d movi r5, 45 + 4e6e: 608c addu r2, r3 + 4e70: a2a0 st.b r5, (r2, 0x0) + 4e72: 3401 movi r4, 1 + 4e74: 0438 br 0x4ee4 // 4ee4 <__v2_printf+0x444> + 4e76: 3310 movi r3, 16 + 4e78: 68dc and r3, r7 + 4e7a: 3b40 cmpnei r3, 0 + 4e7c: 0c08 bf 0x4e8c // 4e8c <__v2_printf+0x3ec> + 4e7e: 5d4e addi r2, r5, 4 + 4e80: b845 st.w r2, (r14, 0x14) + 4e82: 95a0 ld.w r5, (r5, 0x0) + 4e84: 559f asri r4, r5, 31 + 4e86: b8a3 st.w r5, (r14, 0xc) + 4e88: b884 st.w r4, (r14, 0x10) + 4e8a: 07e3 br 0x4e50 // 4e50 <__v2_printf+0x3b0> + 4e8c: 3140 movi r1, 64 + 4e8e: 685c and r1, r7 + 4e90: 5d0e addi r0, r5, 4 + 4e92: 3940 cmpnei r1, 0 + 4e94: 95a0 ld.w r5, (r5, 0x0) + 4e96: b805 st.w r0, (r14, 0x14) + 4e98: 0ff6 bf 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9a: 7557 sexth r5, r5 + 4e9c: 07f4 br 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9e: 3506 movi r5, 6 + 4ea0: 06a9 br 0x4bf2 // 4bf2 <__v2_printf+0x152> + 4ea2: 6d83 mov r6, r0 + 4ea4: 06ca br 0x4c38 // 4c38 <__v2_printf+0x198> + 4ea6: 3201 movi r2, 1 + 4ea8: 689c and r2, r7 + 4eaa: 3a40 cmpnei r2, 0 + 4eac: 0ec8 bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4eae: 1d12 addi r5, r14, 72 + 4eb0: 6158 addu r5, r6 + 4eb2: 332e movi r3, 46 + 4eb4: 3000 movi r0, 0 + 4eb6: a560 st.b r3, (r5, 0x0) + 4eb8: a501 st.b r0, (r5, 0x1) + 4eba: 06c1 br 0x4c3c // 4c3c <__v2_printf+0x19c> + 4ebc: 2400 addi r4, 1 + 4ebe: 06cd br 0x4c58 // 4c58 <__v2_printf+0x1b8> + 4ec0: 6d0f mov r4, r3 + 4ec2: 06d2 br 0x4c66 // 4c66 <__v2_printf+0x1c6> + 4ec4: 3320 movi r3, 32 + 4ec6: 68dc and r3, r7 + 4ec8: 3b40 cmpnei r3, 0 + 4eca: 0c24 bf 0x4f12 // 4f12 <__v2_printf+0x472> + 4ecc: 5d7e addi r3, r5, 8 + 4ece: 9500 ld.w r0, (r5, 0x0) + 4ed0: 9521 ld.w r1, (r5, 0x4) + 4ed2: b865 st.w r3, (r14, 0x14) + 4ed4: b803 st.w r0, (r14, 0xc) + 4ed6: b824 st.w r1, (r14, 0x10) + 4ed8: 3400 movi r4, 0 + 4eda: 3537 movi r5, 55 + 4edc: 1801 addi r0, r14, 4 + 4ede: 3200 movi r2, 0 + 4ee0: 6140 addu r5, r0 + 4ee2: a540 st.b r2, (r5, 0x0) + 4ee4: 3100 movi r1, 0 + 4ee6: 2900 subi r1, 1 + 4ee8: 9803 ld.w r0, (r14, 0xc) + 4eea: 98a4 ld.w r5, (r14, 0x10) + 4eec: 645a cmpne r6, r1 + 4eee: 6c14 or r0, r5 + 4ef0: 0cc8 bf 0x5080 // 5080 <__v2_printf+0x5e0> + 4ef2: 6c9f mov r2, r7 + 4ef4: 3a87 bclri r2, 7 + 4ef6: 3840 cmpnei r0, 0 + 4ef8: b848 st.w r2, (r14, 0x20) + 4efa: 08c6 bt 0x5086 // 5086 <__v2_printf+0x5e6> + 4efc: 3e40 cmpnei r6, 0 + 4efe: 0cac bf 0x5056 // 5056 <__v2_printf+0x5b6> + 4f00: 3c41 cmpnei r4, 1 + 4f02: 0c68 bf 0x4fd2 // 4fd2 <__v2_printf+0x532> + 4f04: 3c42 cmpnei r4, 2 + 4f06: 0c8d bf 0x5020 // 5020 <__v2_printf+0x580> + 4f08: 3300 movi r3, 0 + 4f0a: 3400 movi r4, 0 + 4f0c: b863 st.w r3, (r14, 0xc) + 4f0e: b884 st.w r4, (r14, 0x10) + 4f10: 04bf br 0x508e // 508e <__v2_printf+0x5ee> + 4f12: 3010 movi r0, 16 + 4f14: 681c and r0, r7 + 4f16: 3840 cmpnei r0, 0 + 4f18: 0c05 bf 0x4f22 // 4f22 <__v2_printf+0x482> + 4f1a: 5d8e addi r4, r5, 4 + 4f1c: b885 st.w r4, (r14, 0x14) + 4f1e: 95a0 ld.w r5, (r5, 0x0) + 4f20: 0408 br 0x4f30 // 4f30 <__v2_printf+0x490> + 4f22: 3240 movi r2, 64 + 4f24: 689c and r2, r7 + 4f26: 5d2e addi r1, r5, 4 + 4f28: 3a40 cmpnei r2, 0 + 4f2a: b825 st.w r1, (r14, 0x14) + 4f2c: 0ff9 bf 0x4f1e // 4f1e <__v2_printf+0x47e> + 4f2e: 8da0 ld.h r5, (r5, 0x0) + 4f30: 3400 movi r4, 0 + 4f32: b8a3 st.w r5, (r14, 0xc) + 4f34: b884 st.w r4, (r14, 0x10) + 4f36: 07d2 br 0x4eda // 4eda <__v2_printf+0x43a> + 4f38: 5cb8 addu r5, r4, r6 + 4f3a: 6cd3 mov r3, r4 + 4f3c: 654e cmpne r3, r5 + 4f3e: 0f77 bf 0x4e2c // 4e2c <__v2_printf+0x38c> + 4f40: 8300 ld.b r0, (r3, 0x0) + 4f42: 3840 cmpnei r0, 0 + 4f44: 0ef4 bf 0x4d2c // 4d2c <__v2_printf+0x28c> + 4f46: 2300 addi r3, 1 + 4f48: 07fa br 0x4f3c // 4f3c <__v2_printf+0x49c> + 4f4a: 2300 addi r3, 1 + 4f4c: 06ed br 0x4d26 // 4d26 <__v2_printf+0x286> + 4f4e: 3420 movi r4, 32 + 4f50: 691c and r4, r7 + 4f52: 3c40 cmpnei r4, 0 + 4f54: 0c09 bf 0x4f66 // 4f66 <__v2_printf+0x4c6> + 4f56: 5d7e addi r3, r5, 8 + 4f58: 9520 ld.w r1, (r5, 0x0) + 4f5a: 9541 ld.w r2, (r5, 0x4) + 4f5c: b865 st.w r3, (r14, 0x14) + 4f5e: b823 st.w r1, (r14, 0xc) + 4f60: b844 st.w r2, (r14, 0x10) + 4f62: 3401 movi r4, 1 + 4f64: 07bb br 0x4eda // 4eda <__v2_printf+0x43a> + 4f66: 3310 movi r3, 16 + 4f68: 68dc and r3, r7 + 4f6a: 3b40 cmpnei r3, 0 + 4f6c: 0c05 bf 0x4f76 // 4f76 <__v2_printf+0x4d6> + 4f6e: 5d0e addi r0, r5, 4 + 4f70: b805 st.w r0, (r14, 0x14) + 4f72: 95a0 ld.w r5, (r5, 0x0) + 4f74: 0408 br 0x4f84 // 4f84 <__v2_printf+0x4e4> + 4f76: 3140 movi r1, 64 + 4f78: 685c and r1, r7 + 4f7a: 5d4e addi r2, r5, 4 + 4f7c: 3940 cmpnei r1, 0 + 4f7e: b845 st.w r2, (r14, 0x14) + 4f80: 0ff9 bf 0x4f72 // 4f72 <__v2_printf+0x4d2> + 4f82: 8da0 ld.h r5, (r5, 0x0) + 4f84: 3400 movi r4, 0 + 4f86: b8a3 st.w r5, (r14, 0xc) + 4f88: b884 st.w r4, (r14, 0x10) + 4f8a: 07ec br 0x4f62 // 4f62 <__v2_printf+0x4c2> + 4f8c: 3840 cmpnei r0, 0 + 4f8e: 0c05 bf 0x4f98 // 4f98 <__v2_printf+0x4f8> + 4f90: 3337 movi r3, 55 + 4f92: 1a01 addi r2, r14, 4 + 4f94: 60c8 addu r3, r2 + 4f96: a320 st.b r1, (r3, 0x0) + 4f98: 103f lrw r1, 0xbaaf // 5014 <__v2_printf+0x574> + 4f9a: 06d2 br 0x4d3e // 4d3e <__v2_printf+0x29e> + 4f9c: 3310 movi r3, 16 + 4f9e: 68dc and r3, r7 + 4fa0: 3b40 cmpnei r3, 0 + 4fa2: 0c05 bf 0x4fac // 4fac <__v2_printf+0x50c> + 4fa4: 5d0e addi r0, r5, 4 + 4fa6: b805 st.w r0, (r14, 0x14) + 4fa8: 95a0 ld.w r5, (r5, 0x0) + 4faa: 0408 br 0x4fba // 4fba <__v2_printf+0x51a> + 4fac: 3240 movi r2, 64 + 4fae: 689c and r2, r7 + 4fb0: 5d2e addi r1, r5, 4 + 4fb2: 3a40 cmpnei r2, 0 + 4fb4: b825 st.w r1, (r14, 0x14) + 4fb6: 0ff9 bf 0x4fa8 // 4fa8 <__v2_printf+0x508> + 4fb8: 8da0 ld.h r5, (r5, 0x0) + 4fba: 3300 movi r3, 0 + 4fbc: b8a3 st.w r5, (r14, 0xc) + 4fbe: b864 st.w r3, (r14, 0x10) + 4fc0: 06ca br 0x4d54 // 4d54 <__v2_printf+0x2b4> + 4fc2: 6cd3 mov r3, r4 + 4fc4: 0467 br 0x5092 // 5092 <__v2_printf+0x5f2> + 4fc6: 9884 ld.w r4, (r14, 0x10) + 4fc8: 3c40 cmpnei r4, 0 + 4fca: 080b bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fcc: 9843 ld.w r2, (r14, 0xc) + 4fce: 3a09 cmphsi r2, 10 + 4fd0: 0808 bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fd2: 9883 ld.w r4, (r14, 0xc) + 4fd4: 242f addi r4, 48 + 4fd6: 1f1a addi r7, r14, 104 + 4fd8: a787 st.b r4, (r7, 0x7) + 4fda: 1c12 addi r4, r14, 72 + 4fdc: 2426 addi r4, 39 + 4fde: 0478 br 0x50ce // 50ce <__v2_printf+0x62e> + 4fe0: 1c1c addi r4, r14, 112 + 4fe2: 3530 movi r5, 48 + 4fe4: 320a movi r2, 10 + 4fe6: 3300 movi r3, 0 + 4fe8: 9803 ld.w r0, (r14, 0xc) + 4fea: 9824 ld.w r1, (r14, 0x10) + 4fec: e00002c2 bsr 0x5570 // 5570 <__umoddi3> + 4ff0: 6014 addu r0, r5 + 4ff2: 2c00 subi r4, 1 + 4ff4: a400 st.b r0, (r4, 0x0) + 4ff6: 320a movi r2, 10 + 4ff8: 9803 ld.w r0, (r14, 0xc) + 4ffa: 9824 ld.w r1, (r14, 0x10) + 4ffc: 3300 movi r3, 0 + 4ffe: e00000e3 bsr 0x51c4 // 51c4 <__udivdi3> + 5002: b803 st.w r0, (r14, 0xc) + 5004: b824 st.w r1, (r14, 0x10) + 5006: 9823 ld.w r1, (r14, 0xc) + 5008: 98e4 ld.w r7, (r14, 0x10) + 500a: 6c5c or r1, r7 + 500c: 3940 cmpnei r1, 0 + 500e: 0beb bt 0x4fe4 // 4fe4 <__v2_printf+0x544> + 5010: 045f br 0x50ce // 50ce <__v2_printf+0x62e> + 5012: 0000 bkpt + 5014: 0000baaf .long 0x0000baaf + 5018: 0000ba9e .long 0x0000ba9e + 501c: 20000af4 .long 0x20000af4 + 5020: 3300 movi r3, 0 + 5022: 3400 movi r4, 0 + 5024: b863 st.w r3, (r14, 0xc) + 5026: b884 st.w r4, (r14, 0x10) + 5028: 1c1c addi r4, r14, 112 + 502a: 320f movi r2, 15 + 502c: 9803 ld.w r0, (r14, 0xc) + 502e: 982a ld.w r1, (r14, 0x28) + 5030: 6808 and r0, r2 + 5032: 6004 addu r0, r1 + 5034: 80a0 ld.b r5, (r0, 0x0) + 5036: 2c00 subi r4, 1 + 5038: 98e4 ld.w r7, (r14, 0x10) + 503a: a4a0 st.b r5, (r4, 0x0) + 503c: 98a4 ld.w r5, (r14, 0x10) + 503e: 9863 ld.w r3, (r14, 0xc) + 5040: 471c lsli r0, r7, 28 + 5042: 4de4 lsri r7, r5, 4 + 5044: 4b24 lsri r1, r3, 4 + 5046: b8e4 st.w r7, (r14, 0x10) + 5048: 6c04 or r0, r1 + 504a: 9864 ld.w r3, (r14, 0x10) + 504c: b803 st.w r0, (r14, 0xc) + 504e: 6c0c or r0, r3 + 5050: 3840 cmpnei r0, 0 + 5052: 0bed bt 0x502c // 502c <__v2_printf+0x58c> + 5054: 043d br 0x50ce // 50ce <__v2_printf+0x62e> + 5056: 3c40 cmpnei r4, 0 + 5058: 0808 bt 0x5068 // 5068 <__v2_printf+0x5c8> + 505a: 3301 movi r3, 1 + 505c: 68dc and r3, r7 + 505e: 3b40 cmpnei r3, 0 + 5060: 0c04 bf 0x5068 // 5068 <__v2_printf+0x5c8> + 5062: 1f1a addi r7, r14, 104 + 5064: 3430 movi r4, 48 + 5066: 07b9 br 0x4fd8 // 4fd8 <__v2_printf+0x538> + 5068: 1c1c addi r4, r14, 112 + 506a: 0432 br 0x50ce // 50ce <__v2_printf+0x62e> + 506c: 322b movi r2, 43 + 506e: 649a cmpne r6, r2 + 5070: 0802 bt 0x5074 // 5074 <__v2_printf+0x5d4> + 5072: 0614 br 0x4c9a // 4c9a <__v2_printf+0x1fa> + 5074: 1c12 addi r4, r14, 72 + 5076: 6c13 mov r0, r4 + 5078: e0000612 bsr 0x5c9c // 5c9c <__strlen_fast> + 507c: 6d83 mov r6, r0 + 507e: 06d7 br 0x4e2c // 4e2c <__v2_printf+0x38c> + 5080: 3840 cmpnei r0, 0 + 5082: b8e8 st.w r7, (r14, 0x20) + 5084: 0f3e bf 0x4f00 // 4f00 <__v2_printf+0x460> + 5086: 3c41 cmpnei r4, 1 + 5088: 0f9f bf 0x4fc6 // 4fc6 <__v2_printf+0x526> + 508a: 3c42 cmpnei r4, 2 + 508c: 0fce bf 0x5028 // 5028 <__v2_printf+0x588> + 508e: 1b1c addi r3, r14, 112 + 5090: 3707 movi r7, 7 + 5092: 9823 ld.w r1, (r14, 0xc) + 5094: 685c and r1, r7 + 5096: 212f addi r1, 48 + 5098: 9804 ld.w r0, (r14, 0x10) + 509a: 7484 zextb r2, r1 + 509c: 9823 ld.w r1, (r14, 0xc) + 509e: 40bd lsli r5, r0, 29 + 50a0: 4903 lsri r0, r1, 3 + 50a2: 9824 ld.w r1, (r14, 0x10) + 50a4: 4923 lsri r1, r1, 3 + 50a6: b824 st.w r1, (r14, 0x10) + 50a8: 6d40 or r5, r0 + 50aa: 9804 ld.w r0, (r14, 0x10) + 50ac: b8a3 st.w r5, (r14, 0xc) + 50ae: 6d40 or r5, r0 + 50b0: 5b83 subi r4, r3, 1 + 50b2: 3d40 cmpnei r5, 0 + 50b4: a440 st.b r2, (r4, 0x0) + 50b6: 0b86 bt 0x4fc2 // 4fc2 <__v2_printf+0x522> + 50b8: 3701 movi r7, 1 + 50ba: 9828 ld.w r1, (r14, 0x20) + 50bc: 69c4 and r7, r1 + 50be: 3f40 cmpnei r7, 0 + 50c0: 0c07 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c2: 3530 movi r5, 48 + 50c4: 654a cmpne r2, r5 + 50c6: 0c04 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c8: 5b87 subi r4, r3, 2 + 50ca: 3330 movi r3, 48 + 50cc: a460 st.b r3, (r4, 0x0) + 50ce: 6d5b mov r5, r6 + 50d0: 1e1c addi r6, r14, 112 + 50d2: 6192 subu r6, r4 + 50d4: 98e8 ld.w r7, (r14, 0x20) + 50d6: 6595 cmplt r5, r6 + 50d8: b8a8 st.w r5, (r14, 0x20) + 50da: 0c02 bf 0x50de // 50de <__v2_printf+0x63e> + 50dc: b8c8 st.w r6, (r14, 0x20) + 50de: 3037 movi r0, 55 + 50e0: 1b01 addi r3, r14, 4 + 50e2: 600c addu r0, r3 + 50e4: 8040 ld.b r2, (r0, 0x0) + 50e6: 3a40 cmpnei r2, 0 + 50e8: 0c04 bf 0x50f0 // 50f0 <__v2_printf+0x650> + 50ea: 9828 ld.w r1, (r14, 0x20) + 50ec: 2100 addi r1, 1 + 50ee: b828 st.w r1, (r14, 0x20) + 50f0: 3002 movi r0, 2 + 50f2: 681c and r0, r7 + 50f4: 3840 cmpnei r0, 0 + 50f6: b80b st.w r0, (r14, 0x2c) + 50f8: 0c04 bf 0x5100 // 5100 <__v2_printf+0x660> + 50fa: 9868 ld.w r3, (r14, 0x20) + 50fc: 2301 addi r3, 2 + 50fe: b868 st.w r3, (r14, 0x20) + 5100: 3284 movi r2, 132 + 5102: 689c and r2, r7 + 5104: 3a40 cmpnei r2, 0 + 5106: b84c st.w r2, (r14, 0x30) + 5108: 080b bt 0x511e // 511e <__v2_printf+0x67e> + 510a: 3310 movi r3, 16 + 510c: 1a0c addi r2, r14, 48 + 510e: 9827 ld.w r1, (r14, 0x1c) + 5110: 9808 ld.w r0, (r14, 0x20) + 5112: 60c8 addu r3, r2 + 5114: 5901 subu r0, r1, r0 + 5116: 6f4f mov r13, r3 + 5118: 1129 lrw r1, 0xace4 // 51bc <__v2_printf+0x71c> + 511a: e3fffca9 bsr 0x4a6c // 4a6c + 511e: 3137 movi r1, 55 + 5120: 1801 addi r0, r14, 4 + 5122: 6040 addu r1, r0 + 5124: 8160 ld.b r3, (r1, 0x0) + 5126: 3b40 cmpnei r3, 0 + 5128: 0c0b bf 0x513e // 513e <__v2_printf+0x69e> + 512a: 9830 ld.w r1, (r14, 0x40) + 512c: 9101 ld.w r0, (r1, 0x4) + 512e: b802 st.w r0, (r14, 0x8) + 5130: 1b0c addi r3, r14, 48 + 5132: 300b movi r0, 11 + 5134: 9140 ld.w r2, (r1, 0x0) + 5136: 600c addu r0, r3 + 5138: 3101 movi r1, 1 + 513a: 9862 ld.w r3, (r14, 0x8) + 513c: 7bcd jsr r3 + 513e: 984b ld.w r2, (r14, 0x2c) + 5140: 3a40 cmpnei r2, 0 + 5142: 0c07 bf 0x5150 // 5150 <__v2_printf+0x6b0> + 5144: 9830 ld.w r1, (r14, 0x40) + 5146: 9140 ld.w r2, (r1, 0x0) + 5148: 9161 ld.w r3, (r1, 0x4) + 514a: 180f addi r0, r14, 60 + 514c: 3102 movi r1, 2 + 514e: 7bcd jsr r3 + 5150: 3080 movi r0, 128 + 5152: 984c ld.w r2, (r14, 0x30) + 5154: 640a cmpne r2, r0 + 5156: 080b bt 0x516c // 516c <__v2_printf+0x6cc> + 5158: 9827 ld.w r1, (r14, 0x1c) + 515a: 9868 ld.w r3, (r14, 0x20) + 515c: 590d subu r0, r1, r3 + 515e: 1a0c addi r2, r14, 48 + 5160: 3110 movi r1, 16 + 5162: 6048 addu r1, r2 + 5164: 6f47 mov r13, r1 + 5166: 1037 lrw r1, 0xacf4 // 51c0 <__v2_printf+0x720> + 5168: e3fffc82 bsr 0x4a6c // 4a6c + 516c: 5d19 subu r0, r5, r6 + 516e: 1b0c addi r3, r14, 48 + 5170: 3510 movi r5, 16 + 5172: 614c addu r5, r3 + 5174: 6f57 mov r13, r5 + 5176: 6d77 mov r5, r13 + 5178: 1032 lrw r1, 0xacf4 // 51c0 <__v2_printf+0x720> + 517a: e3fffc79 bsr 0x4a6c // 4a6c + 517e: 9500 ld.w r0, (r5, 0x0) + 5180: 9040 ld.w r2, (r0, 0x0) + 5182: 9061 ld.w r3, (r0, 0x4) + 5184: 6c13 mov r0, r4 + 5186: 3404 movi r4, 4 + 5188: 6c5b mov r1, r6 + 518a: 691c and r4, r7 + 518c: 7bcd jsr r3 + 518e: 3c40 cmpnei r4, 0 + 5190: 0c08 bf 0x51a0 // 51a0 <__v2_printf+0x700> + 5192: 9828 ld.w r1, (r14, 0x20) + 5194: 98c7 ld.w r6, (r14, 0x1c) + 5196: 5e05 subu r0, r6, r1 + 5198: 6f57 mov r13, r5 + 519a: 1029 lrw r1, 0xace4 // 51bc <__v2_printf+0x71c> + 519c: e3fffc68 bsr 0x4a6c // 4a6c + 51a0: 98a7 ld.w r5, (r14, 0x1c) + 51a2: 9848 ld.w r2, (r14, 0x20) + 51a4: 6495 cmplt r5, r2 + 51a6: 0c02 bf 0x51aa // 51aa <__v2_printf+0x70a> + 51a8: 6d4b mov r5, r2 + 51aa: 9809 ld.w r0, (r14, 0x24) + 51ac: 6014 addu r0, r5 + 51ae: b809 st.w r0, (r14, 0x24) + 51b0: 98a5 ld.w r5, (r14, 0x14) + 51b2: e800fc84 br 0x4aba // 4aba <__v2_printf+0x1a> + 51b6: 9809 ld.w r0, (r14, 0x24) + 51b8: 141c addi r14, r14, 112 + 51ba: 1494 pop r4-r7, r15 + 51bc: 0000ace4 .long 0x0000ace4 + 51c0: 0000acf4 .long 0x0000acf4 + +000051c4 <__udivdi3>: + 51c4: 14d4 push r4-r7, r15 + 51c6: 1426 subi r14, r14, 24 + 51c8: 6dc7 mov r7, r1 + 51ca: 3b40 cmpnei r3, 0 + 51cc: 6d03 mov r4, r0 + 51ce: 6c4f mov r1, r3 + 51d0: 6d8b mov r6, r2 + 51d2: b800 st.w r0, (r14, 0x0) + 51d4: 6d5f mov r5, r7 + 51d6: 085b bt 0x528c // 528c <__udivdi3+0xc8> + 51d8: 649c cmphs r7, r2 + 51da: 0874 bt 0x52c2 // 52c2 <__udivdi3+0xfe> + 51dc: 003d lrw r1, 0xffff // 5564 <__udivdi3+0x3a0> + 51de: 6484 cmphs r1, r2 + 51e0: 0cdc bf 0x5398 // 5398 <__udivdi3+0x1d4> + 51e2: 31ff movi r1, 255 + 51e4: 6484 cmphs r1, r2 + 51e6: 0802 bt 0x51ea // 51ea <__udivdi3+0x26> + 51e8: 3308 movi r3, 8 + 51ea: 6c4b mov r1, r2 + 51ec: 704d lsr r1, r3 + 51ee: 0100 lrw r0, 0xabe4 // 5568 <__udivdi3+0x3a4> + 51f0: 6040 addu r1, r0 + 51f2: 8120 ld.b r1, (r1, 0x0) + 51f4: 60c4 addu r3, r1 + 51f6: 3120 movi r1, 32 + 51f8: 604e subu r1, r3 + 51fa: 3940 cmpnei r1, 0 + 51fc: 0c09 bf 0x520e // 520e <__udivdi3+0x4a> + 51fe: 6d53 mov r5, r4 + 5200: 7084 lsl r2, r1 + 5202: 71c4 lsl r7, r1 + 5204: 714d lsr r5, r3 + 5206: 7104 lsl r4, r1 + 5208: 6d8b mov r6, r2 + 520a: 6d5c or r5, r7 + 520c: b880 st.w r4, (r14, 0x0) + 520e: 4e90 lsri r4, r6, 16 + 5210: 6c53 mov r1, r4 + 5212: 6c17 mov r0, r5 + 5214: e000117e bsr 0x7510 // 7510 <__umodsi3> + 5218: b801 st.w r0, (r14, 0x4) + 521a: 6c53 mov r1, r4 + 521c: 6c17 mov r0, r5 + 521e: e0001155 bsr 0x74c8 // 74c8 <__udivsi3> + 5222: 75d9 zexth r7, r6 + 5224: 9861 ld.w r3, (r14, 0x4) + 5226: 9820 ld.w r1, (r14, 0x0) + 5228: 6c9f mov r2, r7 + 522a: 4370 lsli r3, r3, 16 + 522c: 4930 lsri r1, r1, 16 + 522e: 7c80 mult r2, r0 + 5230: 6cc4 or r3, r1 + 5232: 648c cmphs r3, r2 + 5234: 6d43 mov r5, r0 + 5236: 0808 bt 0x5246 // 5246 <__udivdi3+0x82> + 5238: 60d8 addu r3, r6 + 523a: 658c cmphs r3, r6 + 523c: 5823 subi r1, r0, 1 + 523e: 0c03 bf 0x5244 // 5244 <__udivdi3+0x80> + 5240: 648c cmphs r3, r2 + 5242: 0d8e bf 0x555e // 555e <__udivdi3+0x39a> + 5244: 6d47 mov r5, r1 + 5246: 60ca subu r3, r2 + 5248: 6c53 mov r1, r4 + 524a: 6c0f mov r0, r3 + 524c: b862 st.w r3, (r14, 0x8) + 524e: e0001161 bsr 0x7510 // 7510 <__umodsi3> + 5252: 9862 ld.w r3, (r14, 0x8) + 5254: b801 st.w r0, (r14, 0x4) + 5256: 6c53 mov r1, r4 + 5258: 6c0f mov r0, r3 + 525a: e0001137 bsr 0x74c8 // 74c8 <__udivsi3> + 525e: 9841 ld.w r2, (r14, 0x4) + 5260: d86e1000 ld.h r3, (r14, 0x0) + 5264: 4250 lsli r2, r2, 16 + 5266: 74cd zexth r3, r3 + 5268: 7dc0 mult r7, r0 + 526a: 6c8c or r2, r3 + 526c: 65c8 cmphs r2, r7 + 526e: 6d03 mov r4, r0 + 5270: 0808 bt 0x5280 // 5280 <__udivdi3+0xbc> + 5272: 6098 addu r2, r6 + 5274: 6588 cmphs r2, r6 + 5276: 5863 subi r3, r0, 1 + 5278: 0d4d bf 0x5512 // 5512 <__udivdi3+0x34e> + 527a: 65c8 cmphs r2, r7 + 527c: 094b bt 0x5512 // 5512 <__udivdi3+0x34e> + 527e: 2c01 subi r4, 2 + 5280: 4510 lsli r0, r5, 16 + 5282: 3700 movi r7, 0 + 5284: 6c10 or r0, r4 + 5286: 6c5f mov r1, r7 + 5288: 1406 addi r14, r14, 24 + 528a: 1494 pop r4-r7, r15 + 528c: 64dc cmphs r7, r3 + 528e: 0c76 bf 0x537a // 537a <__udivdi3+0x1b6> + 5290: 026a lrw r3, 0xffff // 5564 <__udivdi3+0x3a0> + 5292: 644c cmphs r3, r1 + 5294: 0878 bt 0x5384 // 5384 <__udivdi3+0x1c0> + 5296: 0269 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 5298: 644c cmphs r3, r1 + 529a: 0d48 bf 0x552a // 552a <__udivdi3+0x366> + 529c: 3610 movi r6, 16 + 529e: 6cc7 mov r3, r1 + 52a0: 70d9 lsr r3, r6 + 52a2: 020d lrw r0, 0xabe4 // 5568 <__udivdi3+0x3a4> + 52a4: 60c0 addu r3, r0 + 52a6: 8360 ld.b r3, (r3, 0x0) + 52a8: 618c addu r6, r3 + 52aa: 3020 movi r0, 32 + 52ac: 5879 subu r3, r0, r6 + 52ae: 3b40 cmpnei r3, 0 + 52b0: b860 st.w r3, (r14, 0x0) + 52b2: 0878 bt 0x53a2 // 53a2 <__udivdi3+0x1de> + 52b4: 65c4 cmphs r1, r7 + 52b6: 0d40 bf 0x5536 // 5536 <__udivdi3+0x372> + 52b8: 6490 cmphs r4, r2 + 52ba: 6c0f mov r0, r3 + 52bc: 600d addc r0, r3 + 52be: 3700 movi r7, 0 + 52c0: 045f br 0x537e // 537e <__udivdi3+0x1ba> + 52c2: 3a40 cmpnei r2, 0 + 52c4: 0808 bt 0x52d4 // 52d4 <__udivdi3+0x110> + 52c6: 3100 movi r1, 0 + 52c8: 3001 movi r0, 1 + 52ca: b861 st.w r3, (r14, 0x4) + 52cc: e00010fe bsr 0x74c8 // 74c8 <__udivsi3> + 52d0: 6d83 mov r6, r0 + 52d2: 9861 ld.w r3, (r14, 0x4) + 52d4: 025b lrw r2, 0xffff // 5564 <__udivdi3+0x3a0> + 52d6: 6588 cmphs r2, r6 + 52d8: 085b bt 0x538e // 538e <__udivdi3+0x1ca> + 52da: 027a lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 52dc: 658c cmphs r3, r6 + 52de: 0d28 bf 0x552e // 552e <__udivdi3+0x36a> + 52e0: 3310 movi r3, 16 + 52e2: 6c9b mov r2, r6 + 52e4: 023e lrw r1, 0xabe4 // 5568 <__udivdi3+0x3a4> + 52e6: 708d lsr r2, r3 + 52e8: 6084 addu r2, r1 + 52ea: 8240 ld.b r2, (r2, 0x0) + 52ec: 5a2c addu r1, r2, r3 + 52ee: 3220 movi r2, 32 + 52f0: 6086 subu r2, r1 + 52f2: 3a40 cmpnei r2, 0 + 52f4: 08c0 bt 0x5474 // 5474 <__udivdi3+0x2b0> + 52f6: 74d9 zexth r3, r6 + 52f8: 5f99 subu r4, r7, r6 + 52fa: 4eb0 lsri r5, r6, 16 + 52fc: b861 st.w r3, (r14, 0x4) + 52fe: 3701 movi r7, 1 + 5300: 6c57 mov r1, r5 + 5302: 6c13 mov r0, r4 + 5304: e0001106 bsr 0x7510 // 7510 <__umodsi3> + 5308: b802 st.w r0, (r14, 0x8) + 530a: 6c57 mov r1, r5 + 530c: 6c13 mov r0, r4 + 530e: e00010dd bsr 0x74c8 // 74c8 <__udivsi3> + 5312: 9862 ld.w r3, (r14, 0x8) + 5314: 4330 lsli r1, r3, 16 + 5316: 9860 ld.w r3, (r14, 0x0) + 5318: 9841 ld.w r2, (r14, 0x4) + 531a: 4b70 lsri r3, r3, 16 + 531c: 7c80 mult r2, r0 + 531e: 6cc4 or r3, r1 + 5320: 648c cmphs r3, r2 + 5322: 6d03 mov r4, r0 + 5324: 0808 bt 0x5334 // 5334 <__udivdi3+0x170> + 5326: 60d8 addu r3, r6 + 5328: 658c cmphs r3, r6 + 532a: 5823 subi r1, r0, 1 + 532c: 0c03 bf 0x5332 // 5332 <__udivdi3+0x16e> + 532e: 648c cmphs r3, r2 + 5330: 0d14 bf 0x5558 // 5558 <__udivdi3+0x394> + 5332: 6d07 mov r4, r1 + 5334: 60ca subu r3, r2 + 5336: 6c57 mov r1, r5 + 5338: 6c0f mov r0, r3 + 533a: b863 st.w r3, (r14, 0xc) + 533c: e00010ea bsr 0x7510 // 7510 <__umodsi3> + 5340: 9863 ld.w r3, (r14, 0xc) + 5342: 6c57 mov r1, r5 + 5344: b802 st.w r0, (r14, 0x8) + 5346: 6c0f mov r0, r3 + 5348: e00010c0 bsr 0x74c8 // 74c8 <__udivsi3> + 534c: 9842 ld.w r2, (r14, 0x8) + 534e: d86e1000 ld.h r3, (r14, 0x0) + 5352: 9821 ld.w r1, (r14, 0x4) + 5354: 4250 lsli r2, r2, 16 + 5356: 74cd zexth r3, r3 + 5358: 7c40 mult r1, r0 + 535a: 6cc8 or r3, r2 + 535c: 644c cmphs r3, r1 + 535e: 6d43 mov r5, r0 + 5360: 0808 bt 0x5370 // 5370 <__udivdi3+0x1ac> + 5362: 60d8 addu r3, r6 + 5364: 658c cmphs r3, r6 + 5366: 5843 subi r2, r0, 1 + 5368: 0cd3 bf 0x550e // 550e <__udivdi3+0x34a> + 536a: 644c cmphs r3, r1 + 536c: 08d1 bt 0x550e // 550e <__udivdi3+0x34a> + 536e: 2d01 subi r5, 2 + 5370: 4410 lsli r0, r4, 16 + 5372: 6c14 or r0, r5 + 5374: 6c5f mov r1, r7 + 5376: 1406 addi r14, r14, 24 + 5378: 1494 pop r4-r7, r15 + 537a: 3700 movi r7, 0 + 537c: 3000 movi r0, 0 + 537e: 6c5f mov r1, r7 + 5380: 1406 addi r14, r14, 24 + 5382: 1494 pop r4-r7, r15 + 5384: 33ff movi r3, 255 + 5386: 644c cmphs r3, r1 + 5388: 6583 mvcv r6 + 538a: 46c3 lsli r6, r6, 3 + 538c: 0789 br 0x529e // 529e <__udivdi3+0xda> + 538e: 32ff movi r2, 255 + 5390: 6588 cmphs r2, r6 + 5392: 0ba8 bt 0x52e2 // 52e2 <__udivdi3+0x11e> + 5394: 3308 movi r3, 8 + 5396: 07a6 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5398: 1375 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 539a: 648c cmphs r3, r2 + 539c: 0ccb bf 0x5532 // 5532 <__udivdi3+0x36e> + 539e: 3310 movi r3, 16 + 53a0: 0725 br 0x51ea // 51ea <__udivdi3+0x26> + 53a2: 9800 ld.w r0, (r14, 0x0) + 53a4: 6ccb mov r3, r2 + 53a6: 6d4b mov r5, r2 + 53a8: 7040 lsl r1, r0 + 53aa: 7140 lsl r5, r0 + 53ac: 70d9 lsr r3, r6 + 53ae: 6cc4 or r3, r1 + 53b0: b8a3 st.w r5, (r14, 0xc) + 53b2: 6d53 mov r5, r4 + 53b4: 6c4f mov r1, r3 + 53b6: 7159 lsr r5, r6 + 53b8: 6cdf mov r3, r7 + 53ba: 71c0 lsl r7, r0 + 53bc: 6d5c or r5, r7 + 53be: 70d9 lsr r3, r6 + 53c0: b8a1 st.w r5, (r14, 0x4) + 53c2: 49b0 lsri r5, r1, 16 + 53c4: b822 st.w r1, (r14, 0x8) + 53c6: 75c5 zexth r7, r1 + 53c8: 6c0f mov r0, r3 + 53ca: 6c57 mov r1, r5 + 53cc: b864 st.w r3, (r14, 0x10) + 53ce: e00010a1 bsr 0x7510 // 7510 <__umodsi3> + 53d2: 9864 ld.w r3, (r14, 0x10) + 53d4: 6d83 mov r6, r0 + 53d6: 6c57 mov r1, r5 + 53d8: 6c0f mov r0, r3 + 53da: e0001077 bsr 0x74c8 // 74c8 <__udivsi3> + 53de: 6c5f mov r1, r7 + 53e0: 7c40 mult r1, r0 + 53e2: 6c87 mov r2, r1 + 53e4: 4630 lsli r1, r6, 16 + 53e6: 98c1 ld.w r6, (r14, 0x4) + 53e8: 4ed0 lsri r6, r6, 16 + 53ea: 6d84 or r6, r1 + 53ec: 6498 cmphs r6, r2 + 53ee: 6cc3 mov r3, r0 + 53f0: 0807 bt 0x53fe // 53fe <__udivdi3+0x23a> + 53f2: 5823 subi r1, r0, 1 + 53f4: 9802 ld.w r0, (r14, 0x8) + 53f6: 6180 addu r6, r0 + 53f8: 6418 cmphs r6, r0 + 53fa: 08a6 bt 0x5546 // 5546 <__udivdi3+0x382> + 53fc: 6cc7 mov r3, r1 + 53fe: 618a subu r6, r2 + 5400: 6c57 mov r1, r5 + 5402: 6c1b mov r0, r6 + 5404: b865 st.w r3, (r14, 0x14) + 5406: e0001085 bsr 0x7510 // 7510 <__umodsi3> + 540a: b804 st.w r0, (r14, 0x10) + 540c: 6c57 mov r1, r5 + 540e: 6c1b mov r0, r6 + 5410: e000105c bsr 0x74c8 // 74c8 <__udivsi3> + 5414: 9864 ld.w r3, (r14, 0x10) + 5416: 6c9f mov r2, r7 + 5418: 43f0 lsli r7, r3, 16 + 541a: d86e1002 ld.h r3, (r14, 0x4) + 541e: 744d zexth r1, r3 + 5420: 7c80 mult r2, r0 + 5422: 6dc4 or r7, r1 + 5424: 649c cmphs r7, r2 + 5426: 9865 ld.w r3, (r14, 0x14) + 5428: 0807 bt 0x5436 // 5436 <__udivdi3+0x272> + 542a: 98a2 ld.w r5, (r14, 0x8) + 542c: 61d4 addu r7, r5 + 542e: 655c cmphs r7, r5 + 5430: 5823 subi r1, r0, 1 + 5432: 0885 bt 0x553c // 553c <__udivdi3+0x378> + 5434: 6c07 mov r0, r1 + 5436: 4370 lsli r3, r3, 16 + 5438: 6c0c or r0, r3 + 543a: 74c1 zexth r3, r0 + 543c: 61ca subu r7, r2 + 543e: 9843 ld.w r2, (r14, 0xc) + 5440: 7549 zexth r5, r2 + 5442: 4830 lsri r1, r0, 16 + 5444: 4a50 lsri r2, r2, 16 + 5446: 6d8f mov r6, r3 + 5448: 7d94 mult r6, r5 + 544a: 7cc8 mult r3, r2 + 544c: 7d44 mult r5, r1 + 544e: 60d4 addu r3, r5 + 5450: 7c48 mult r1, r2 + 5452: 4e50 lsri r2, r6, 16 + 5454: 60c8 addu r3, r2 + 5456: 654c cmphs r3, r5 + 5458: 0804 bt 0x5460 // 5460 <__udivdi3+0x29c> + 545a: 3280 movi r2, 128 + 545c: 4249 lsli r2, r2, 9 + 545e: 6048 addu r1, r2 + 5460: 4b50 lsri r2, r3, 16 + 5462: 6048 addu r1, r2 + 5464: 645c cmphs r7, r1 + 5466: 0c5f bf 0x5524 // 5524 <__udivdi3+0x360> + 5468: 645e cmpne r7, r1 + 546a: 0c56 bf 0x5516 // 5516 <__udivdi3+0x352> + 546c: 3700 movi r7, 0 + 546e: 6c5f mov r1, r7 + 5470: 1406 addi r14, r14, 24 + 5472: 1494 pop r4-r7, r15 + 5474: 6d53 mov r5, r4 + 5476: 6cdf mov r3, r7 + 5478: 7145 lsr r5, r1 + 547a: 71c8 lsl r7, r2 + 547c: 7188 lsl r6, r2 + 547e: 6d5c or r5, r7 + 5480: 70c5 lsr r3, r1 + 5482: 6dd7 mov r7, r5 + 5484: b8a3 st.w r5, (r14, 0xc) + 5486: 4eb0 lsri r5, r6, 16 + 5488: 7108 lsl r4, r2 + 548a: 6c57 mov r1, r5 + 548c: 7499 zexth r2, r6 + 548e: 6c0f mov r0, r3 + 5490: b841 st.w r2, (r14, 0x4) + 5492: b880 st.w r4, (r14, 0x0) + 5494: b862 st.w r3, (r14, 0x8) + 5496: e000103d bsr 0x7510 // 7510 <__umodsi3> + 549a: 9862 ld.w r3, (r14, 0x8) + 549c: 6d03 mov r4, r0 + 549e: 6c57 mov r1, r5 + 54a0: 6c0f mov r0, r3 + 54a2: e0001013 bsr 0x74c8 // 74c8 <__udivsi3> + 54a6: 6cc3 mov r3, r0 + 54a8: 7499 zexth r2, r6 + 54aa: 7cc8 mult r3, r2 + 54ac: 4450 lsli r2, r4, 16 + 54ae: 4f90 lsri r4, r7, 16 + 54b0: 6d08 or r4, r2 + 54b2: 64d0 cmphs r4, r3 + 54b4: 6c43 mov r1, r0 + 54b6: b802 st.w r0, (r14, 0x8) + 54b8: 080b bt 0x54ce // 54ce <__udivdi3+0x30a> + 54ba: 6118 addu r4, r6 + 54bc: 6c87 mov r2, r1 + 54be: 6590 cmphs r4, r6 + 54c0: 2a00 subi r2, 1 + 54c2: 0c49 bf 0x5554 // 5554 <__udivdi3+0x390> + 54c4: 64d0 cmphs r4, r3 + 54c6: 0847 bt 0x5554 // 5554 <__udivdi3+0x390> + 54c8: 2a00 subi r2, 1 + 54ca: b842 st.w r2, (r14, 0x8) + 54cc: 6118 addu r4, r6 + 54ce: 610e subu r4, r3 + 54d0: 6c57 mov r1, r5 + 54d2: 6c13 mov r0, r4 + 54d4: e000101e bsr 0x7510 // 7510 <__umodsi3> + 54d8: 6dc3 mov r7, r0 + 54da: 6c57 mov r1, r5 + 54dc: 6c13 mov r0, r4 + 54de: e0000ff5 bsr 0x74c8 // 74c8 <__udivsi3> + 54e2: d84e1006 ld.h r2, (r14, 0xc) + 54e6: 74d9 zexth r3, r6 + 54e8: 47f0 lsli r7, r7, 16 + 54ea: 7509 zexth r4, r2 + 54ec: 7cc0 mult r3, r0 + 54ee: 6dd0 or r7, r4 + 54f0: 64dc cmphs r7, r3 + 54f2: 0809 bt 0x5504 // 5504 <__udivdi3+0x340> + 54f4: 61d8 addu r7, r6 + 54f6: 659c cmphs r7, r6 + 54f8: 5843 subi r2, r0, 1 + 54fa: 0c2b bf 0x5550 // 5550 <__udivdi3+0x38c> + 54fc: 64dc cmphs r7, r3 + 54fe: 0829 bt 0x5550 // 5550 <__udivdi3+0x38c> + 5500: 2801 subi r0, 2 + 5502: 61d8 addu r7, r6 + 5504: 5f8d subu r4, r7, r3 + 5506: 9862 ld.w r3, (r14, 0x8) + 5508: 43f0 lsli r7, r3, 16 + 550a: 6dc0 or r7, r0 + 550c: 06fa br 0x5300 // 5300 <__udivdi3+0x13c> + 550e: 6d4b mov r5, r2 + 5510: 0730 br 0x5370 // 5370 <__udivdi3+0x1ac> + 5512: 6d0f mov r4, r3 + 5514: 06b6 br 0x5280 // 5280 <__udivdi3+0xbc> + 5516: 9840 ld.w r2, (r14, 0x0) + 5518: 4370 lsli r3, r3, 16 + 551a: 7599 zexth r6, r6 + 551c: 7108 lsl r4, r2 + 551e: 60d8 addu r3, r6 + 5520: 64d0 cmphs r4, r3 + 5522: 0ba5 bt 0x546c // 546c <__udivdi3+0x2a8> + 5524: 2800 subi r0, 1 + 5526: 3700 movi r7, 0 + 5528: 07a3 br 0x546e // 546e <__udivdi3+0x2aa> + 552a: 3618 movi r6, 24 + 552c: 06b9 br 0x529e // 529e <__udivdi3+0xda> + 552e: 3318 movi r3, 24 + 5530: 06d9 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5532: 3318 movi r3, 24 + 5534: 065b br 0x51ea // 51ea <__udivdi3+0x26> + 5536: 3700 movi r7, 0 + 5538: 3001 movi r0, 1 + 553a: 0722 br 0x537e // 537e <__udivdi3+0x1ba> + 553c: 649c cmphs r7, r2 + 553e: 0b7b bt 0x5434 // 5434 <__udivdi3+0x270> + 5540: 2801 subi r0, 2 + 5542: 61d4 addu r7, r5 + 5544: 0779 br 0x5436 // 5436 <__udivdi3+0x272> + 5546: 6498 cmphs r6, r2 + 5548: 0b5a bt 0x53fc // 53fc <__udivdi3+0x238> + 554a: 2b01 subi r3, 2 + 554c: 6180 addu r6, r0 + 554e: 0758 br 0x53fe // 53fe <__udivdi3+0x23a> + 5550: 6c0b mov r0, r2 + 5552: 07d9 br 0x5504 // 5504 <__udivdi3+0x340> + 5554: b842 st.w r2, (r14, 0x8) + 5556: 07bc br 0x54ce // 54ce <__udivdi3+0x30a> + 5558: 2c01 subi r4, 2 + 555a: 60d8 addu r3, r6 + 555c: 06ec br 0x5334 // 5334 <__udivdi3+0x170> + 555e: 2d01 subi r5, 2 + 5560: 60d8 addu r3, r6 + 5562: 0672 br 0x5246 // 5246 <__udivdi3+0x82> + 5564: 0000ffff .long 0x0000ffff + 5568: 0000abe4 .long 0x0000abe4 + 556c: 00ffffff .long 0x00ffffff + +00005570 <__umoddi3>: + 5570: 14d4 push r4-r7, r15 + 5572: 1427 subi r14, r14, 28 + 5574: 6d07 mov r4, r1 + 5576: 6c4f mov r1, r3 + 5578: 6d43 mov r5, r0 + 557a: 3940 cmpnei r1, 0 + 557c: 6dcf mov r7, r3 + 557e: 6c0b mov r0, r2 + 5580: b8a0 st.w r5, (r14, 0x0) + 5582: 6cd3 mov r3, r4 + 5584: 085a bt 0x5638 // 5638 <__umoddi3+0xc8> + 5586: 6490 cmphs r4, r2 + 5588: 0877 bt 0x5676 // 5676 <__umoddi3+0x106> + 558a: 0120 lrw r1, 0xffff // 5904 <__umoddi3+0x394> + 558c: 6484 cmphs r1, r2 + 558e: 0cd2 bf 0x5732 // 5732 <__umoddi3+0x1c2> + 5590: 31ff movi r1, 255 + 5592: 6484 cmphs r1, r2 + 5594: 0802 bt 0x5598 // 5598 <__umoddi3+0x28> + 5596: 3708 movi r7, 8 + 5598: 6c43 mov r1, r0 + 559a: 705d lsr r1, r7 + 559c: 01c4 lrw r6, 0xabe4 // 5908 <__umoddi3+0x398> + 559e: 6058 addu r1, r6 + 55a0: 8120 ld.b r1, (r1, 0x0) + 55a2: 61c4 addu r7, r1 + 55a4: 3120 movi r1, 32 + 55a6: 605e subu r1, r7 + 55a8: 3940 cmpnei r1, 0 + 55aa: b821 st.w r1, (r14, 0x4) + 55ac: 0c09 bf 0x55be // 55be <__umoddi3+0x4e> + 55ae: 6cd7 mov r3, r5 + 55b0: 6c83 mov r2, r0 + 55b2: 7104 lsl r4, r1 + 55b4: 70dd lsr r3, r7 + 55b6: 7144 lsl r5, r1 + 55b8: 7084 lsl r2, r1 + 55ba: 6cd0 or r3, r4 + 55bc: b8a0 st.w r5, (r14, 0x0) + 55be: 4a90 lsri r4, r2, 16 + 55c0: 6c53 mov r1, r4 + 55c2: 6c0f mov r0, r3 + 55c4: 75c9 zexth r7, r2 + 55c6: b843 st.w r2, (r14, 0xc) + 55c8: b862 st.w r3, (r14, 0x8) + 55ca: e0000fa3 bsr 0x7510 // 7510 <__umodsi3> + 55ce: 9862 ld.w r3, (r14, 0x8) + 55d0: 6d43 mov r5, r0 + 55d2: 6c53 mov r1, r4 + 55d4: 6c0f mov r0, r3 + 55d6: e0000f79 bsr 0x74c8 // 74c8 <__udivsi3> + 55da: 9840 ld.w r2, (r14, 0x0) + 55dc: 4570 lsli r3, r5, 16 + 55de: 4ab0 lsri r5, r2, 16 + 55e0: 7c1c mult r0, r7 + 55e2: 6cd4 or r3, r5 + 55e4: 640c cmphs r3, r0 + 55e6: 9843 ld.w r2, (r14, 0xc) + 55e8: 0806 bt 0x55f4 // 55f4 <__umoddi3+0x84> + 55ea: 60c8 addu r3, r2 + 55ec: 648c cmphs r3, r2 + 55ee: 0c03 bf 0x55f4 // 55f4 <__umoddi3+0x84> + 55f0: 640c cmphs r3, r0 + 55f2: 0d7d bf 0x58ec // 58ec <__umoddi3+0x37c> + 55f4: 60c2 subu r3, r0 + 55f6: 6c53 mov r1, r4 + 55f8: 6c0f mov r0, r3 + 55fa: b843 st.w r2, (r14, 0xc) + 55fc: b862 st.w r3, (r14, 0x8) + 55fe: e0000f89 bsr 0x7510 // 7510 <__umodsi3> + 5602: 9862 ld.w r3, (r14, 0x8) + 5604: 6d43 mov r5, r0 + 5606: 6c53 mov r1, r4 + 5608: 6c0f mov r0, r3 + 560a: e0000f5f bsr 0x74c8 // 74c8 <__udivsi3> + 560e: d86e1000 ld.h r3, (r14, 0x0) + 5612: 7dc0 mult r7, r0 + 5614: 45b0 lsli r5, r5, 16 + 5616: 740d zexth r0, r3 + 5618: 6d40 or r5, r0 + 561a: 65d4 cmphs r5, r7 + 561c: 0807 bt 0x562a // 562a <__umoddi3+0xba> + 561e: 9843 ld.w r2, (r14, 0xc) + 5620: 6148 addu r5, r2 + 5622: 6494 cmphs r5, r2 + 5624: 0c03 bf 0x562a // 562a <__umoddi3+0xba> + 5626: 65d4 cmphs r5, r7 + 5628: 0d5e bf 0x58e4 // 58e4 <__umoddi3+0x374> + 562a: 615e subu r5, r7 + 562c: 6c17 mov r0, r5 + 562e: 9861 ld.w r3, (r14, 0x4) + 5630: 700d lsr r0, r3 + 5632: 3100 movi r1, 0 + 5634: 1407 addi r14, r14, 28 + 5636: 1494 pop r4-r7, r15 + 5638: 6450 cmphs r4, r1 + 563a: 0c6e bf 0x5716 // 5716 <__umoddi3+0x1a6> + 563c: 024d lrw r2, 0xffff // 5904 <__umoddi3+0x394> + 563e: 6448 cmphs r2, r1 + 5640: 086f bt 0x571e // 571e <__umoddi3+0x1ae> + 5642: 024c lrw r2, 0xffffff // 590c <__umoddi3+0x39c> + 5644: 6448 cmphs r2, r1 + 5646: 0d3f bf 0x58c4 // 58c4 <__umoddi3+0x354> + 5648: 3610 movi r6, 16 + 564a: 6c87 mov r2, r1 + 564c: 7099 lsr r2, r6 + 564e: 02f0 lrw r7, 0xabe4 // 5908 <__umoddi3+0x398> + 5650: 609c addu r2, r7 + 5652: 8240 ld.b r2, (r2, 0x0) + 5654: 6188 addu r6, r2 + 5656: 3720 movi r7, 32 + 5658: 61da subu r7, r6 + 565a: 3f40 cmpnei r7, 0 + 565c: 0870 bt 0x573c // 573c <__umoddi3+0x1cc> + 565e: 6504 cmphs r1, r4 + 5660: 0c03 bf 0x5666 // 5666 <__umoddi3+0xf6> + 5662: 6414 cmphs r5, r0 + 5664: 0d46 bf 0x58f0 // 58f0 <__umoddi3+0x380> + 5666: 5d01 subu r0, r5, r0 + 5668: 6414 cmphs r5, r0 + 566a: 6106 subu r4, r1 + 566c: 6483 mvcv r2 + 566e: 5c69 subu r3, r4, r2 + 5670: 6c4f mov r1, r3 + 5672: 1407 addi r14, r14, 28 + 5674: 1494 pop r4-r7, r15 + 5676: 3a40 cmpnei r2, 0 + 5678: 0806 bt 0x5684 // 5684 <__umoddi3+0x114> + 567a: 3100 movi r1, 0 + 567c: 3001 movi r0, 1 + 567e: e0000f25 bsr 0x74c8 // 74c8 <__udivsi3> + 5682: 6c83 mov r2, r0 + 5684: 027f lrw r3, 0xffff // 5904 <__umoddi3+0x394> + 5686: 648c cmphs r3, r2 + 5688: 0850 bt 0x5728 // 5728 <__umoddi3+0x1b8> + 568a: 027e lrw r3, 0xffffff // 590c <__umoddi3+0x39c> + 568c: 648c cmphs r3, r2 + 568e: 0d1d bf 0x58c8 // 58c8 <__umoddi3+0x358> + 5690: 3710 movi r7, 16 + 5692: 6ccb mov r3, r2 + 5694: 70dd lsr r3, r7 + 5696: 0322 lrw r1, 0xabe4 // 5908 <__umoddi3+0x398> + 5698: 60c4 addu r3, r1 + 569a: 8360 ld.b r3, (r3, 0x0) + 569c: 61cc addu r7, r3 + 569e: 3320 movi r3, 32 + 56a0: 60de subu r3, r7 + 56a2: 3b40 cmpnei r3, 0 + 56a4: b861 st.w r3, (r14, 0x4) + 56a6: 08c2 bt 0x582a // 582a <__umoddi3+0x2ba> + 56a8: 74c9 zexth r3, r2 + 56aa: 610a subu r4, r2 + 56ac: 4af0 lsri r7, r2, 16 + 56ae: 6d8f mov r6, r3 + 56b0: 6c5f mov r1, r7 + 56b2: 6c13 mov r0, r4 + 56b4: b842 st.w r2, (r14, 0x8) + 56b6: e0000f2d bsr 0x7510 // 7510 <__umodsi3> + 56ba: 6d43 mov r5, r0 + 56bc: 6c5f mov r1, r7 + 56be: 6c13 mov r0, r4 + 56c0: e0000f04 bsr 0x74c8 // 74c8 <__udivsi3> + 56c4: 9860 ld.w r3, (r14, 0x0) + 56c6: 4590 lsli r4, r5, 16 + 56c8: 4bb0 lsri r5, r3, 16 + 56ca: 7c18 mult r0, r6 + 56cc: 6d14 or r4, r5 + 56ce: 6410 cmphs r4, r0 + 56d0: 9842 ld.w r2, (r14, 0x8) + 56d2: 0806 bt 0x56de // 56de <__umoddi3+0x16e> + 56d4: 6108 addu r4, r2 + 56d6: 6490 cmphs r4, r2 + 56d8: 0c03 bf 0x56de // 56de <__umoddi3+0x16e> + 56da: 6410 cmphs r4, r0 + 56dc: 0d06 bf 0x58e8 // 58e8 <__umoddi3+0x378> + 56de: 6102 subu r4, r0 + 56e0: 6c5f mov r1, r7 + 56e2: 6c13 mov r0, r4 + 56e4: b842 st.w r2, (r14, 0x8) + 56e6: e0000f15 bsr 0x7510 // 7510 <__umodsi3> + 56ea: 6d43 mov r5, r0 + 56ec: 6c5f mov r1, r7 + 56ee: 6c13 mov r0, r4 + 56f0: e0000eec bsr 0x74c8 // 74c8 <__udivsi3> + 56f4: d86e1000 ld.h r3, (r14, 0x0) + 56f8: 7c18 mult r0, r6 + 56fa: 45b0 lsli r5, r5, 16 + 56fc: 758d zexth r6, r3 + 56fe: 6d58 or r5, r6 + 5700: 6414 cmphs r5, r0 + 5702: 0808 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5704: 9842 ld.w r2, (r14, 0x8) + 5706: 6148 addu r5, r2 + 5708: 6494 cmphs r5, r2 + 570a: 0c04 bf 0x5712 // 5712 <__umoddi3+0x1a2> + 570c: 6414 cmphs r5, r0 + 570e: 0802 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5710: 6148 addu r5, r2 + 5712: 6142 subu r5, r0 + 5714: 078c br 0x562c // 562c <__umoddi3+0xbc> + 5716: 6c17 mov r0, r5 + 5718: 6c53 mov r1, r4 + 571a: 1407 addi r14, r14, 28 + 571c: 1494 pop r4-r7, r15 + 571e: 32ff movi r2, 255 + 5720: 6448 cmphs r2, r1 + 5722: 6583 mvcv r6 + 5724: 46c3 lsli r6, r6, 3 + 5726: 0792 br 0x564a // 564a <__umoddi3+0xda> + 5728: 33ff movi r3, 255 + 572a: 648c cmphs r3, r2 + 572c: 0bb3 bt 0x5692 // 5692 <__umoddi3+0x122> + 572e: 3708 movi r7, 8 + 5730: 07b1 br 0x5692 // 5692 <__umoddi3+0x122> + 5732: 1337 lrw r1, 0xffffff // 590c <__umoddi3+0x39c> + 5734: 6484 cmphs r1, r2 + 5736: 0ccb bf 0x58cc // 58cc <__umoddi3+0x35c> + 5738: 3710 movi r7, 16 + 573a: 072f br 0x5598 // 5598 <__umoddi3+0x28> + 573c: 6cc3 mov r3, r0 + 573e: 705c lsl r1, r7 + 5740: 70d9 lsr r3, r6 + 5742: 6cc4 or r3, r1 + 5744: 6c57 mov r1, r5 + 5746: 6c93 mov r2, r4 + 5748: 7059 lsr r1, r6 + 574a: 711c lsl r4, r7 + 574c: 7099 lsr r2, r6 + 574e: 6c50 or r1, r4 + 5750: 701c lsl r0, r7 + 5752: 4b90 lsri r4, r3, 16 + 5754: 715c lsl r5, r7 + 5756: b803 st.w r0, (r14, 0xc) + 5758: b820 st.w r1, (r14, 0x0) + 575a: b8a4 st.w r5, (r14, 0x10) + 575c: 6c53 mov r1, r4 + 575e: 754d zexth r5, r3 + 5760: 6c0b mov r0, r2 + 5762: b862 st.w r3, (r14, 0x8) + 5764: b8a1 st.w r5, (r14, 0x4) + 5766: b846 st.w r2, (r14, 0x18) + 5768: e0000ed4 bsr 0x7510 // 7510 <__umodsi3> + 576c: 9846 ld.w r2, (r14, 0x18) + 576e: b805 st.w r0, (r14, 0x14) + 5770: 6c53 mov r1, r4 + 5772: 6c0b mov r0, r2 + 5774: e0000eaa bsr 0x74c8 // 74c8 <__udivsi3> + 5778: 9841 ld.w r2, (r14, 0x4) + 577a: 7c80 mult r2, r0 + 577c: 9865 ld.w r3, (r14, 0x14) + 577e: 6d43 mov r5, r0 + 5780: 9800 ld.w r0, (r14, 0x0) + 5782: 4330 lsli r1, r3, 16 + 5784: 4870 lsri r3, r0, 16 + 5786: 6cc4 or r3, r1 + 5788: 648c cmphs r3, r2 + 578a: 0807 bt 0x5798 // 5798 <__umoddi3+0x228> + 578c: 9802 ld.w r0, (r14, 0x8) + 578e: 60c0 addu r3, r0 + 5790: 640c cmphs r3, r0 + 5792: 5d23 subi r1, r5, 1 + 5794: 08a3 bt 0x58da // 58da <__umoddi3+0x36a> + 5796: 6d47 mov r5, r1 + 5798: 60ca subu r3, r2 + 579a: 6c53 mov r1, r4 + 579c: 6c0f mov r0, r3 + 579e: b866 st.w r3, (r14, 0x18) + 57a0: e0000eb8 bsr 0x7510 // 7510 <__umodsi3> + 57a4: 9866 ld.w r3, (r14, 0x18) + 57a6: 6c53 mov r1, r4 + 57a8: b805 st.w r0, (r14, 0x14) + 57aa: 6c0f mov r0, r3 + 57ac: e0000e8e bsr 0x74c8 // 74c8 <__udivsi3> + 57b0: 9845 ld.w r2, (r14, 0x14) + 57b2: d86e1000 ld.h r3, (r14, 0x0) + 57b6: 9821 ld.w r1, (r14, 0x4) + 57b8: 4250 lsli r2, r2, 16 + 57ba: 750d zexth r4, r3 + 57bc: 7c40 mult r1, r0 + 57be: 6c90 or r2, r4 + 57c0: 6448 cmphs r2, r1 + 57c2: 0807 bt 0x57d0 // 57d0 <__umoddi3+0x260> + 57c4: 9882 ld.w r4, (r14, 0x8) + 57c6: 6090 addu r2, r4 + 57c8: 6508 cmphs r2, r4 + 57ca: 5863 subi r3, r0, 1 + 57cc: 0882 bt 0x58d0 // 58d0 <__umoddi3+0x360> + 57ce: 6c0f mov r0, r3 + 57d0: 45b0 lsli r5, r5, 16 + 57d2: 6d40 or r5, r0 + 57d4: 74d5 zexth r3, r5 + 57d6: 9803 ld.w r0, (r14, 0xc) + 57d8: 4db0 lsri r5, r5, 16 + 57da: 6d0f mov r4, r3 + 57dc: 6086 subu r2, r1 + 57de: 7441 zexth r1, r0 + 57e0: 4810 lsri r0, r0, 16 + 57e2: 7d04 mult r4, r1 + 57e4: 7cc0 mult r3, r0 + 57e6: 7c54 mult r1, r5 + 57e8: 60c4 addu r3, r1 + 57ea: 7d40 mult r5, r0 + 57ec: 4c10 lsri r0, r4, 16 + 57ee: 60c0 addu r3, r0 + 57f0: 644c cmphs r3, r1 + 57f2: 0804 bt 0x57fa // 57fa <__umoddi3+0x28a> + 57f4: 3180 movi r1, 128 + 57f6: 4129 lsli r1, r1, 9 + 57f8: 6144 addu r5, r1 + 57fa: 4b30 lsri r1, r3, 16 + 57fc: 6144 addu r5, r1 + 57fe: 4370 lsli r3, r3, 16 + 5800: 7511 zexth r4, r4 + 5802: 6548 cmphs r2, r5 + 5804: 60d0 addu r3, r4 + 5806: 0c56 bf 0x58b2 // 58b2 <__umoddi3+0x342> + 5808: 654a cmpne r2, r5 + 580a: 0c76 bf 0x58f6 // 58f6 <__umoddi3+0x386> + 580c: 5a35 subu r1, r2, r5 + 580e: 6c0f mov r0, r3 + 5810: 9864 ld.w r3, (r14, 0x10) + 5812: 5b01 subu r0, r3, r0 + 5814: 640c cmphs r3, r0 + 5816: 64c3 mvcv r3 + 5818: 598d subu r4, r1, r3 + 581a: 6d53 mov r5, r4 + 581c: 7158 lsl r5, r6 + 581e: 701d lsr r0, r7 + 5820: 6c53 mov r1, r4 + 5822: 6c14 or r0, r5 + 5824: 705d lsr r1, r7 + 5826: 1407 addi r14, r14, 28 + 5828: 1494 pop r4-r7, r15 + 582a: 9801 ld.w r0, (r14, 0x4) + 582c: 6c57 mov r1, r5 + 582e: 6cd3 mov r3, r4 + 5830: 705d lsr r1, r7 + 5832: 7100 lsl r4, r0 + 5834: 7080 lsl r2, r0 + 5836: 6c50 or r1, r4 + 5838: 70dd lsr r3, r7 + 583a: 6d07 mov r4, r1 + 583c: 4af0 lsri r7, r2, 16 + 583e: b822 st.w r1, (r14, 0x8) + 5840: 7449 zexth r1, r2 + 5842: 7140 lsl r5, r0 + 5844: 6d87 mov r6, r1 + 5846: 6c0f mov r0, r3 + 5848: 6c5f mov r1, r7 + 584a: b844 st.w r2, (r14, 0x10) + 584c: b8a0 st.w r5, (r14, 0x0) + 584e: b863 st.w r3, (r14, 0xc) + 5850: e0000e60 bsr 0x7510 // 7510 <__umodsi3> + 5854: 9863 ld.w r3, (r14, 0xc) + 5856: 6d43 mov r5, r0 + 5858: 6c5f mov r1, r7 + 585a: 6c0f mov r0, r3 + 585c: e0000e36 bsr 0x74c8 // 74c8 <__udivsi3> + 5860: 45b0 lsli r5, r5, 16 + 5862: 4c70 lsri r3, r4, 16 + 5864: 7c18 mult r0, r6 + 5866: 6d4c or r5, r3 + 5868: 6414 cmphs r5, r0 + 586a: 9844 ld.w r2, (r14, 0x10) + 586c: 0807 bt 0x587a // 587a <__umoddi3+0x30a> + 586e: 6148 addu r5, r2 + 5870: 6494 cmphs r5, r2 + 5872: 0c04 bf 0x587a // 587a <__umoddi3+0x30a> + 5874: 6414 cmphs r5, r0 + 5876: 0802 bt 0x587a // 587a <__umoddi3+0x30a> + 5878: 6148 addu r5, r2 + 587a: 6142 subu r5, r0 + 587c: 6c5f mov r1, r7 + 587e: 6c17 mov r0, r5 + 5880: b843 st.w r2, (r14, 0xc) + 5882: e0000e47 bsr 0x7510 // 7510 <__umodsi3> + 5886: 6d03 mov r4, r0 + 5888: 6c5f mov r1, r7 + 588a: 6c17 mov r0, r5 + 588c: e0000e1e bsr 0x74c8 // 74c8 <__udivsi3> + 5890: d86e1004 ld.h r3, (r14, 0x8) + 5894: 4490 lsli r4, r4, 16 + 5896: 744d zexth r1, r3 + 5898: 7c18 mult r0, r6 + 589a: 6d04 or r4, r1 + 589c: 6410 cmphs r4, r0 + 589e: 9843 ld.w r2, (r14, 0xc) + 58a0: 0807 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58a2: 6108 addu r4, r2 + 58a4: 6490 cmphs r4, r2 + 58a6: 0c04 bf 0x58ae // 58ae <__umoddi3+0x33e> + 58a8: 6410 cmphs r4, r0 + 58aa: 0802 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58ac: 6108 addu r4, r2 + 58ae: 6102 subu r4, r0 + 58b0: 0700 br 0x56b0 // 56b0 <__umoddi3+0x140> + 58b2: 9823 ld.w r1, (r14, 0xc) + 58b4: 5b05 subu r0, r3, r1 + 58b6: 640c cmphs r3, r0 + 58b8: 9822 ld.w r1, (r14, 0x8) + 58ba: 6146 subu r5, r1 + 58bc: 64c3 mvcv r3 + 58be: 614e subu r5, r3 + 58c0: 5a35 subu r1, r2, r5 + 58c2: 07a7 br 0x5810 // 5810 <__umoddi3+0x2a0> + 58c4: 3618 movi r6, 24 + 58c6: 06c2 br 0x564a // 564a <__umoddi3+0xda> + 58c8: 3718 movi r7, 24 + 58ca: 06e4 br 0x5692 // 5692 <__umoddi3+0x122> + 58cc: 3718 movi r7, 24 + 58ce: 0665 br 0x5598 // 5598 <__umoddi3+0x28> + 58d0: 6448 cmphs r2, r1 + 58d2: 0b7e bt 0x57ce // 57ce <__umoddi3+0x25e> + 58d4: 2801 subi r0, 2 + 58d6: 6090 addu r2, r4 + 58d8: 077c br 0x57d0 // 57d0 <__umoddi3+0x260> + 58da: 648c cmphs r3, r2 + 58dc: 0b5d bt 0x5796 // 5796 <__umoddi3+0x226> + 58de: 2d01 subi r5, 2 + 58e0: 60c0 addu r3, r0 + 58e2: 075b br 0x5798 // 5798 <__umoddi3+0x228> + 58e4: 6148 addu r5, r2 + 58e6: 06a2 br 0x562a // 562a <__umoddi3+0xba> + 58e8: 6108 addu r4, r2 + 58ea: 06fa br 0x56de // 56de <__umoddi3+0x16e> + 58ec: 60c8 addu r3, r2 + 58ee: 0683 br 0x55f4 // 55f4 <__umoddi3+0x84> + 58f0: 6c17 mov r0, r5 + 58f2: 6c4f mov r1, r3 + 58f4: 06bf br 0x5672 // 5672 <__umoddi3+0x102> + 58f6: 9824 ld.w r1, (r14, 0x10) + 58f8: 64c4 cmphs r1, r3 + 58fa: 0fdc bf 0x58b2 // 58b2 <__umoddi3+0x342> + 58fc: 6c0f mov r0, r3 + 58fe: 3100 movi r1, 0 + 5900: 0788 br 0x5810 // 5810 <__umoddi3+0x2a0> + 5902: 0000 bkpt + 5904: 0000ffff .long 0x0000ffff + 5908: 0000abe4 .long 0x0000abe4 + 590c: 00ffffff .long 0x00ffffff + +00005910 : + 5910: 14c2 push r4-r5 + 5912: 3300 movi r3, 0 + 5914: 644d cmplt r3, r1 + 5916: 0803 bt 0x591c // 591c + 5918: 6c0f mov r0, r3 + 591a: 1482 pop r4-r5 + 591c: 5aac addu r5, r2, r3 + 591e: 588c addu r4, r0, r3 + 5920: 2300 addi r3, 1 + 5922: 85a0 ld.b r5, (r5, 0x0) + 5924: 3b43 cmpnei r3, 3 + 5926: a4a0 st.b r5, (r4, 0x0) + 5928: 0bf6 bt 0x5914 // 5914 + 592a: 3923 cmplti r1, 4 + 592c: 0bf6 bt 0x5918 // 5918 + 592e: 3300 movi r3, 0 + 5930: a063 st.b r3, (r0, 0x3) + 5932: 3304 movi r3, 4 + 5934: 07f2 br 0x5918 // 5918 + +00005936 <__GI___dtostr>: + 5936: 14d4 push r4-r7, r15 + 5938: 142c subi r14, r14, 48 + 593a: 6d8f mov r6, r3 + 593c: 9871 ld.w r3, (r14, 0x44) + 593e: b80a st.w r0, (r14, 0x28) + 5940: b824 st.w r1, (r14, 0x10) + 5942: b842 st.w r2, (r14, 0x8) + 5944: b86b st.w r3, (r14, 0x2c) + 5946: 98f2 ld.w r7, (r14, 0x48) + 5948: e0000244 bsr 0x5dd0 // 5dd0 <__isinf> + 594c: 3840 cmpnei r0, 0 + 594e: 0c0a bf 0x5962 // 5962 <__GI___dtostr+0x2c> + 5950: 0244 lrw r2, 0xbac0 // 5c3c <__GI___dtostr+0x306> + 5952: 6c5b mov r1, r6 + 5954: 9802 ld.w r0, (r14, 0x8) + 5956: e3ffffdd bsr 0x5910 // 5910 + 595a: b809 st.w r0, (r14, 0x24) + 595c: 9809 ld.w r0, (r14, 0x24) + 595e: 140c addi r14, r14, 48 + 5960: 1494 pop r4-r7, r15 + 5962: 980a ld.w r0, (r14, 0x28) + 5964: 9824 ld.w r1, (r14, 0x10) + 5966: e0000185 bsr 0x5c70 // 5c70 <__isnan> + 596a: 3840 cmpnei r0, 0 + 596c: b809 st.w r0, (r14, 0x24) + 596e: 0c03 bf 0x5974 // 5974 <__GI___dtostr+0x3e> + 5970: 024b lrw r2, 0xbac4 // 5c40 <__GI___dtostr+0x30a> + 5972: 07f0 br 0x5952 // 5952 <__GI___dtostr+0x1c> + 5974: 3200 movi r2, 0 + 5976: 3300 movi r3, 0 + 5978: 980a ld.w r0, (r14, 0x28) + 597a: 9824 ld.w r1, (r14, 0x10) + 597c: e0000242 bsr 0x5e00 // 5e00 <__eqdf2> + 5980: 3840 cmpnei r0, 0 + 5982: 082d bt 0x59dc // 59dc <__GI___dtostr+0xa6> + 5984: 3f40 cmpnei r7, 0 + 5986: 0d57 bf 0x5c34 // 5c34 <__GI___dtostr+0x2fe> + 5988: 5fa6 addi r5, r7, 2 + 598a: 6558 cmphs r6, r5 + 598c: 0d56 bf 0x5c38 // 5c38 <__GI___dtostr+0x302> + 598e: 3d40 cmpnei r5, 0 + 5990: 0c0b bf 0x59a6 // 59a6 <__GI___dtostr+0x70> + 5992: 9824 ld.w r1, (r14, 0x10) + 5994: 39df btsti r1, 31 + 5996: 0c1a bf 0x59ca // 59ca <__GI___dtostr+0x94> + 5998: 9802 ld.w r0, (r14, 0x8) + 599a: 322d movi r2, 45 + 599c: a040 st.b r2, (r0, 0x0) + 599e: 5d02 addi r0, r5, 1 + 59a0: 3501 movi r5, 1 + 59a2: 6414 cmphs r5, r0 + 59a4: 0c16 bf 0x59d0 // 59d0 <__GI___dtostr+0x9a> + 59a6: 9882 ld.w r4, (r14, 0x8) + 59a8: 8420 ld.b r1, (r4, 0x0) + 59aa: 3330 movi r3, 48 + 59ac: 64c6 cmpne r1, r3 + 59ae: 3000 movi r0, 0 + 59b0: 6001 addc r0, r0 + 59b2: 9842 ld.w r2, (r14, 0x8) + 59b4: 9822 ld.w r1, (r14, 0x8) + 59b6: 6008 addu r0, r2 + 59b8: 342e movi r4, 46 + 59ba: 6054 addu r1, r5 + 59bc: 3300 movi r3, 0 + 59be: a081 st.b r4, (r0, 0x1) + 59c0: b8a9 st.w r5, (r14, 0x24) + 59c2: a160 st.b r3, (r1, 0x0) + 59c4: 07cc br 0x595c // 595c <__GI___dtostr+0x26> + 59c6: 3501 movi r5, 1 + 59c8: 07e5 br 0x5992 // 5992 <__GI___dtostr+0x5c> + 59ca: 6c17 mov r0, r5 + 59cc: 3500 movi r5, 0 + 59ce: 07ea br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59d0: 9842 ld.w r2, (r14, 0x8) + 59d2: 6094 addu r2, r5 + 59d4: 3430 movi r4, 48 + 59d6: a280 st.b r4, (r2, 0x0) + 59d8: 2500 addi r5, 1 + 59da: 07e4 br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59dc: 3200 movi r2, 0 + 59de: 3300 movi r3, 0 + 59e0: 980a ld.w r0, (r14, 0x28) + 59e2: 9824 ld.w r1, (r14, 0x10) + 59e4: e000022c bsr 0x5e3c // 5e3c <__ltdf2> + 59e8: 38df btsti r0, 31 + 59ea: 0c8e bf 0x5b06 // 5b06 <__GI___dtostr+0x1d0> + 59ec: 3180 movi r1, 128 + 59ee: 98a2 ld.w r5, (r14, 0x8) + 59f0: 9884 ld.w r4, (r14, 0x10) + 59f2: 4158 lsli r2, r1, 24 + 59f4: 332d movi r3, 45 + 59f6: a560 st.b r3, (r5, 0x0) + 59f8: 6108 addu r4, r2 + 59fa: 2e00 subi r6, 1 + 59fc: 2500 addi r5, 1 + 59fe: 3000 movi r0, 0 + 5a00: 032e lrw r1, 0x3fe00000 // 5c44 <__GI___dtostr+0x30e> + 5a02: 3300 movi r3, 0 + 5a04: b865 st.w r3, (r14, 0x14) + 5a06: 9845 ld.w r2, (r14, 0x14) + 5a08: 65ca cmpne r2, r7 + 5a0a: 0881 bt 0x5b0c // 5b0c <__GI___dtostr+0x1d6> + 5a0c: 6c83 mov r2, r0 + 5a0e: 6cc7 mov r3, r1 + 5a10: 980a ld.w r0, (r14, 0x28) + 5a12: 6c53 mov r1, r4 + 5a14: e3fff190 bsr 0x3d34 // 3d34 <__adddf3> + 5a18: 3200 movi r2, 0 + 5a1a: 0373 lrw r3, 0x3ff00000 // 5c48 <__GI___dtostr+0x312> + 5a1c: b806 st.w r0, (r14, 0x18) + 5a1e: b827 st.w r1, (r14, 0x1c) + 5a20: e000020e bsr 0x5e3c // 5e3c <__ltdf2> + 5a24: 38df btsti r0, 31 + 5a26: 0c05 bf 0x5a30 // 5a30 <__GI___dtostr+0xfa> + 5a28: 3430 movi r4, 48 + 5a2a: a580 st.b r4, (r5, 0x0) + 5a2c: 2e00 subi r6, 1 + 5a2e: 2500 addi r5, 1 + 5a30: 9804 ld.w r0, (r14, 0x10) + 5a32: 4021 lsli r1, r0, 1 + 5a34: 0379 lrw r3, 0xfffffc01 // 5c4c <__GI___dtostr+0x316> + 5a36: 4915 lsri r0, r1, 21 + 5a38: 600c addu r0, r3 + 5a3a: e3fff3cf bsr 0x41d8 // 41d8 <__floatsidf> + 5a3e: 035a lrw r2, 0x509f79ff // 5c50 <__GI___dtostr+0x31a> + 5a40: 037a lrw r3, 0x3fd34413 // 5c54 <__GI___dtostr+0x31e> + 5a42: e3fff1ad bsr 0x3d9c // 3d9c <__muldf3> + 5a46: e3fff401 bsr 0x4248 // 4248 <__fixdfsi> + 5a4a: 5842 addi r2, r0, 1 + 5a4c: 3a20 cmplti r2, 1 + 5a4e: b848 st.w r2, (r14, 0x20) + 5a50: 08e7 bt 0x5c1e // 5c1e <__GI___dtostr+0x2e8> + 5a52: 033d lrw r1, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5a54: 6dcb mov r7, r2 + 5a56: 3400 movi r4, 0 + 5a58: b823 st.w r1, (r14, 0xc) + 5a5a: 3f0a cmphsi r7, 11 + 5a5c: 085f bt 0x5b1a // 5b1a <__GI___dtostr+0x1e4> + 5a5e: 3f41 cmpnei r7, 1 + 5a60: 0868 bt 0x5b30 // 5b30 <__GI___dtostr+0x1fa> + 5a62: 135f lrw r2, 0xcccccccd // 5c5c <__GI___dtostr+0x326> + 5a64: 137f lrw r3, 0x3feccccc // 5c60 <__GI___dtostr+0x32a> + 5a66: 6c13 mov r0, r4 + 5a68: 9823 ld.w r1, (r14, 0xc) + 5a6a: e3fff35d bsr 0x4124 // 4124 <__gtdf2> + 5a6e: 3820 cmplti r0, 1 + 5a70: 0c6a bf 0x5b44 // 5b44 <__GI___dtostr+0x20e> + 5a72: 9862 ld.w r3, (r14, 0x8) + 5a74: 64d6 cmpne r5, r3 + 5a76: 0807 bt 0x5a84 // 5a84 <__GI___dtostr+0x14e> + 5a78: 3e40 cmpnei r6, 0 + 5a7a: 0f71 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a7c: 3230 movi r2, 48 + 5a7e: a540 st.b r2, (r5, 0x0) + 5a80: 2e00 subi r6, 1 + 5a82: 2500 addi r5, 1 + 5a84: 9805 ld.w r0, (r14, 0x14) + 5a86: 3840 cmpnei r0, 0 + 5a88: 08cf bt 0x5c26 // 5c26 <__GI___dtostr+0x2f0> + 5a8a: 9822 ld.w r1, (r14, 0x8) + 5a8c: 5d65 subu r3, r5, r1 + 5a8e: 2300 addi r3, 1 + 5a90: 984b ld.w r2, (r14, 0x2c) + 5a92: 648c cmphs r3, r2 + 5a94: 08a5 bt 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5a96: 3e40 cmpnei r6, 0 + 5a98: 0f62 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a9a: 372e movi r7, 46 + 5a9c: a5e0 st.b r7, (r5, 0x0) + 5a9e: 980b ld.w r0, (r14, 0x2c) + 5aa0: 5de2 addi r7, r5, 1 + 5aa2: 9822 ld.w r1, (r14, 0x8) + 5aa4: 2000 addi r0, 1 + 5aa6: 5f65 subu r3, r7, r1 + 5aa8: 584d subu r2, r0, r3 + 5aaa: 2e00 subi r6, 1 + 5aac: b845 st.w r2, (r14, 0x14) + 5aae: 9805 ld.w r0, (r14, 0x14) + 5ab0: 6418 cmphs r6, r0 + 5ab2: 0f55 bf 0x595c // 595c <__GI___dtostr+0x26> + 5ab4: 6d43 mov r5, r0 + 5ab6: 615c addu r5, r7 + 5ab8: 36ff movi r6, 255 + 5aba: 655e cmpne r7, r5 + 5abc: 0c91 bf 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5abe: 6c93 mov r2, r4 + 5ac0: 9863 ld.w r3, (r14, 0xc) + 5ac2: 9806 ld.w r0, (r14, 0x18) + 5ac4: 9827 ld.w r1, (r14, 0x1c) + 5ac6: e3fff285 bsr 0x3fd0 // 3fd0 <__divdf3> + 5aca: e3fff3bf bsr 0x4248 // 4248 <__fixdfsi> + 5ace: 3130 movi r1, 48 + 5ad0: 6040 addu r1, r0 + 5ad2: a720 st.b r1, (r7, 0x0) + 5ad4: 6818 and r0, r6 + 5ad6: e3fff381 bsr 0x41d8 // 41d8 <__floatsidf> + 5ada: 6c93 mov r2, r4 + 5adc: 9863 ld.w r3, (r14, 0xc) + 5ade: e3fff15f bsr 0x3d9c // 3d9c <__muldf3> + 5ae2: 6c83 mov r2, r0 + 5ae4: 6cc7 mov r3, r1 + 5ae6: 9806 ld.w r0, (r14, 0x18) + 5ae8: 9827 ld.w r1, (r14, 0x1c) + 5aea: e3fff13d bsr 0x3d64 // 3d64 <__subdf3> + 5aee: b806 st.w r0, (r14, 0x18) + 5af0: b827 st.w r1, (r14, 0x1c) + 5af2: 6c13 mov r0, r4 + 5af4: 9823 ld.w r1, (r14, 0xc) + 5af6: 3200 movi r2, 0 + 5af8: 1278 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5afa: e3fff26b bsr 0x3fd0 // 3fd0 <__divdf3> + 5afe: 2700 addi r7, 1 + 5b00: 6d03 mov r4, r0 + 5b02: b823 st.w r1, (r14, 0xc) + 5b04: 07db br 0x5aba // 5aba <__GI___dtostr+0x184> + 5b06: 98a2 ld.w r5, (r14, 0x8) + 5b08: 9884 ld.w r4, (r14, 0x10) + 5b0a: 077a br 0x59fe // 59fe <__GI___dtostr+0xc8> + 5b0c: 1276 lrw r3, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5b0e: 1257 lrw r2, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5b10: e3fff146 bsr 0x3d9c // 3d9c <__muldf3> + 5b14: 9865 ld.w r3, (r14, 0x14) + 5b16: 2300 addi r3, 1 + 5b18: 0776 br 0x5a04 // 5a04 <__GI___dtostr+0xce> + 5b1a: 3080 movi r0, 128 + 5b1c: 4056 lsli r2, r0, 22 + 5b1e: 9823 ld.w r1, (r14, 0xc) + 5b20: 6c13 mov r0, r4 + 5b22: 1273 lrw r3, 0x4202a05f // 5c6c <__GI___dtostr+0x336> + 5b24: e3fff13c bsr 0x3d9c // 3d9c <__muldf3> + 5b28: 6d03 mov r4, r0 + 5b2a: b823 st.w r1, (r14, 0xc) + 5b2c: 2f09 subi r7, 10 + 5b2e: 0796 br 0x5a5a // 5a5a <__GI___dtostr+0x124> + 5b30: 6c13 mov r0, r4 + 5b32: 9823 ld.w r1, (r14, 0xc) + 5b34: 3200 movi r2, 0 + 5b36: 1269 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5b38: e3fff132 bsr 0x3d9c // 3d9c <__muldf3> + 5b3c: 6d03 mov r4, r0 + 5b3e: b823 st.w r1, (r14, 0xc) + 5b40: 2f00 subi r7, 1 + 5b42: 078e br 0x5a5e // 5a5e <__GI___dtostr+0x128> + 5b44: 9863 ld.w r3, (r14, 0xc) + 5b46: 6c93 mov r2, r4 + 5b48: 9806 ld.w r0, (r14, 0x18) + 5b4a: 9827 ld.w r1, (r14, 0x1c) + 5b4c: e3fff242 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b50: e3fff37c bsr 0x4248 // 4248 <__fixdfsi> + 5b54: 3f40 cmpnei r7, 0 + 5b56: 74c0 zextb r3, r0 + 5b58: 0c03 bf 0x5b5e // 5b5e <__GI___dtostr+0x228> + 5b5a: 3b40 cmpnei r3, 0 + 5b5c: 0c58 bf 0x5c0c // 5c0c <__GI___dtostr+0x2d6> + 5b5e: 232f addi r3, 48 + 5b60: 3e40 cmpnei r6, 0 + 5b62: a560 st.b r3, (r5, 0x0) + 5b64: 2500 addi r5, 1 + 5b66: 0842 bt 0x5bea // 5bea <__GI___dtostr+0x2b4> + 5b68: 6c93 mov r2, r4 + 5b6a: 9863 ld.w r3, (r14, 0xc) + 5b6c: 980a ld.w r0, (r14, 0x28) + 5b6e: 9824 ld.w r1, (r14, 0x10) + 5b70: e3fff230 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b74: 9845 ld.w r2, (r14, 0x14) + 5b76: 988b ld.w r4, (r14, 0x2c) + 5b78: b841 st.w r2, (r14, 0x4) + 5b7a: b880 st.w r4, (r14, 0x0) + 5b7c: 3300 movi r3, 0 + 5b7e: 9842 ld.w r2, (r14, 0x8) + 5b80: e3fffedb bsr 0x5936 // 5936 <__GI___dtostr> + 5b84: 3840 cmpnei r0, 0 + 5b86: 0eeb bf 0x595c // 595c <__GI___dtostr+0x26> + 5b88: 5dc0 addu r6, r5, r0 + 5b8a: 37fa movi r7, 250 + 5b8c: 3565 movi r5, 101 + 5b8e: 6c02 nor r0, r0 + 5b90: a6a0 st.b r5, (r6, 0x0) + 5b92: 6d03 mov r4, r0 + 5b94: 5ea2 addi r5, r6, 1 + 5b96: 3101 movi r1, 1 + 5b98: 3604 movi r6, 4 + 5b9a: 47e2 lsli r7, r7, 2 + 5b9c: 9808 ld.w r0, (r14, 0x20) + 5b9e: 65c1 cmplt r0, r7 + 5ba0: 0c03 bf 0x5ba6 // 5ba6 <__GI___dtostr+0x270> + 5ba2: 3940 cmpnei r1, 0 + 5ba4: 0811 bt 0x5bc6 // 5bc6 <__GI___dtostr+0x290> + 5ba6: 3c40 cmpnei r4, 0 + 5ba8: 0c08 bf 0x5bb8 // 5bb8 <__GI___dtostr+0x282> + 5baa: 6c5f mov r1, r7 + 5bac: 9808 ld.w r0, (r14, 0x20) + 5bae: e0000c7b bsr 0x74a4 // 74a4 <__divsi3> + 5bb2: 202f addi r0, 48 + 5bb4: a500 st.b r0, (r5, 0x0) + 5bb6: 2500 addi r5, 1 + 5bb8: 6c5f mov r1, r7 + 5bba: 9808 ld.w r0, (r14, 0x20) + 5bbc: e0000c98 bsr 0x74ec // 74ec <__modsi3> + 5bc0: 2c00 subi r4, 1 + 5bc2: b808 st.w r0, (r14, 0x20) + 5bc4: 3100 movi r1, 0 + 5bc6: b823 st.w r1, (r14, 0xc) + 5bc8: 6c1f mov r0, r7 + 5bca: 310a movi r1, 10 + 5bcc: 2e00 subi r6, 1 + 5bce: e0000c6b bsr 0x74a4 // 74a4 <__divsi3> + 5bd2: 3e40 cmpnei r6, 0 + 5bd4: 6dc3 mov r7, r0 + 5bd6: 9823 ld.w r1, (r14, 0xc) + 5bd8: 0be2 bt 0x5b9c // 5b9c <__GI___dtostr+0x266> + 5bda: 3c40 cmpnei r4, 0 + 5bdc: 0ec0 bf 0x595c // 595c <__GI___dtostr+0x26> + 5bde: 9842 ld.w r2, (r14, 0x8) + 5be0: 3300 movi r3, 0 + 5be2: 5d89 subu r4, r5, r2 + 5be4: a560 st.b r3, (r5, 0x0) + 5be6: b889 st.w r4, (r14, 0x24) + 5be8: 06ba br 0x595c // 595c <__GI___dtostr+0x26> + 5bea: 7400 zextb r0, r0 + 5bec: e3fff2f6 bsr 0x41d8 // 41d8 <__floatsidf> + 5bf0: 6c93 mov r2, r4 + 5bf2: 9863 ld.w r3, (r14, 0xc) + 5bf4: e3fff0d4 bsr 0x3d9c // 3d9c <__muldf3> + 5bf8: 6c83 mov r2, r0 + 5bfa: 6cc7 mov r3, r1 + 5bfc: 9806 ld.w r0, (r14, 0x18) + 5bfe: 9827 ld.w r1, (r14, 0x1c) + 5c00: e3fff0b2 bsr 0x3d64 // 3d64 <__subdf3> + 5c04: b806 st.w r0, (r14, 0x18) + 5c06: b827 st.w r1, (r14, 0x1c) + 5c08: 2e00 subi r6, 1 + 5c0a: 3700 movi r7, 0 + 5c0c: 6c13 mov r0, r4 + 5c0e: 9823 ld.w r1, (r14, 0xc) + 5c10: 3200 movi r2, 0 + 5c12: 1072 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5c14: e3fff1de bsr 0x3fd0 // 3fd0 <__divdf3> + 5c18: 6d03 mov r4, r0 + 5c1a: b823 st.w r1, (r14, 0xc) + 5c1c: 0723 br 0x5a62 // 5a62 <__GI___dtostr+0x12c> + 5c1e: 1012 lrw r0, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5c20: 1092 lrw r4, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5c22: b803 st.w r0, (r14, 0xc) + 5c24: 0727 br 0x5a72 // 5a72 <__GI___dtostr+0x13c> + 5c26: 3e40 cmpnei r6, 0 + 5c28: 0e9a bf 0x595c // 595c <__GI___dtostr+0x26> + 5c2a: 372e movi r7, 46 + 5c2c: a5e0 st.b r7, (r5, 0x0) + 5c2e: 2e00 subi r6, 1 + 5c30: 5de2 addi r7, r5, 1 + 5c32: 073e br 0x5aae // 5aae <__GI___dtostr+0x178> + 5c34: 3e40 cmpnei r6, 0 + 5c36: 0ac8 bt 0x59c6 // 59c6 <__GI___dtostr+0x90> + 5c38: 3508 movi r5, 8 + 5c3a: 06ac br 0x5992 // 5992 <__GI___dtostr+0x5c> + 5c3c: 0000bac0 .long 0x0000bac0 + 5c40: 0000bac4 .long 0x0000bac4 + 5c44: 3fe00000 .long 0x3fe00000 + 5c48: 3ff00000 .long 0x3ff00000 + 5c4c: fffffc01 .long 0xfffffc01 + 5c50: 509f79ff .long 0x509f79ff + 5c54: 3fd34413 .long 0x3fd34413 + 5c58: 40240000 .long 0x40240000 + 5c5c: cccccccd .long 0xcccccccd + 5c60: 3feccccc .long 0x3feccccc + 5c64: 3fb99999 .long 0x3fb99999 + 5c68: 9999999a .long 0x9999999a + 5c6c: 4202a05f .long 0x4202a05f + +00005c70 <__isnan>: + 5c70: 416c lsli r3, r1, 12 + 5c72: 4b4c lsri r2, r3, 12 + 5c74: 6c08 or r0, r2 + 5c76: 3840 cmpnei r0, 0 + 5c78: 0c0e bf 0x5c94 // 5c94 <__isnan+0x24> + 5c7a: 1008 lrw r0, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c7c: 6840 and r1, r0 + 5c7e: 6cc7 mov r3, r1 + 5c80: 3000 movi r0, 0 + 5c82: 1026 lrw r1, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c84: 3200 movi r2, 0 + 5c86: 6c81 xor r2, r0 + 5c88: 6cc5 xor r3, r1 + 5c8a: 6c8c or r2, r3 + 5c8c: 3a40 cmpnei r2, 0 + 5c8e: 6443 mvcv r1 + 5c90: 7404 zextb r0, r1 + 5c92: 783c jmp r15 + 5c94: 3000 movi r0, 0 + 5c96: 07fe br 0x5c92 // 5c92 <__isnan+0x22> + 5c98: 7ff00000 .long 0x7ff00000 + +00005c9c <__strlen_fast>: + 5c9c: 6c43 mov r1, r0 + 5c9e: 3203 movi r2, 3 + 5ca0: 6808 and r0, r2 + 5ca2: 3840 cmpnei r0, 0 + 5ca4: 0c08 bf 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5ca6: 3000 movi r0, 0 + 5ca8: 8140 ld.b r2, (r1, 0x0) + 5caa: 3a40 cmpnei r2, 0 + 5cac: 0c20 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cae: 2100 addi r1, 1 + 5cb0: 2000 addi r0, 1 + 5cb2: 07fb br 0x5ca8 // 5ca8 <__strlen_fast+0xc> + 5cb4: 9140 ld.w r2, (r1, 0x0) + 5cb6: 680b tstnbz r2 + 5cb8: 0c04 bf 0x5cc0 // 5cc0 <__strlen_fast+0x24> + 5cba: 2103 addi r1, 4 + 5cbc: 2003 addi r0, 4 + 5cbe: 07fb br 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5cc0: 31ff movi r1, 255 + 5cc2: 6ccb mov r3, r2 + 5cc4: 68c4 and r3, r1 + 5cc6: 3b40 cmpnei r3, 0 + 5cc8: 0c12 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cca: 2000 addi r0, 1 + 5ccc: 3110 movi r1, 16 + 5cce: 6ccb mov r3, r2 + 5cd0: 70c4 lsl r3, r1 + 5cd2: 3118 movi r1, 24 + 5cd4: 70c5 lsr r3, r1 + 5cd6: 3b40 cmpnei r3, 0 + 5cd8: 0c0a bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cda: 2000 addi r0, 1 + 5cdc: 3108 movi r1, 8 + 5cde: 6ccb mov r3, r2 + 5ce0: 70c4 lsl r3, r1 + 5ce2: 3118 movi r1, 24 + 5ce4: 70c5 lsr r3, r1 + 5ce6: 3b40 cmpnei r3, 0 + 5ce8: 0c02 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cea: 2000 addi r0, 1 + 5cec: 783c jmp r15 + ... + +00005cf0 <__strcpy_fast>: + 5cf0: 14c1 push r4 + 5cf2: 6d03 mov r4, r0 + 5cf4: 6c87 mov r2, r1 + 5cf6: 6c90 or r2, r4 + 5cf8: 3303 movi r3, 3 + 5cfa: 688c and r2, r3 + 5cfc: 3a40 cmpnei r2, 0 + 5cfe: 0c08 bf 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d00: 8160 ld.b r3, (r1, 0x0) + 5d02: a460 st.b r3, (r4, 0x0) + 5d04: 2100 addi r1, 1 + 5d06: 2400 addi r4, 1 + 5d08: 3b40 cmpnei r3, 0 + 5d0a: 0bfb bt 0x5d00 // 5d00 <__strcpy_fast+0x10> + 5d0c: 1481 pop r4 + 5d0e: 9160 ld.w r3, (r1, 0x0) + 5d10: 680f tstnbz r3 + 5d12: 0c2e bf 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d14: b460 st.w r3, (r4, 0x0) + 5d16: 9161 ld.w r3, (r1, 0x4) + 5d18: 680f tstnbz r3 + 5d1a: 0c1d bf 0x5d54 // 5d54 <__strcpy_fast+0x64> + 5d1c: b461 st.w r3, (r4, 0x4) + 5d1e: 9162 ld.w r3, (r1, 0x8) + 5d20: 680f tstnbz r3 + 5d22: 0c1b bf 0x5d58 // 5d58 <__strcpy_fast+0x68> + 5d24: b462 st.w r3, (r4, 0x8) + 5d26: 9163 ld.w r3, (r1, 0xc) + 5d28: 680f tstnbz r3 + 5d2a: 0c19 bf 0x5d5c // 5d5c <__strcpy_fast+0x6c> + 5d2c: b463 st.w r3, (r4, 0xc) + 5d2e: 9164 ld.w r3, (r1, 0x10) + 5d30: 680f tstnbz r3 + 5d32: 0c17 bf 0x5d60 // 5d60 <__strcpy_fast+0x70> + 5d34: b464 st.w r3, (r4, 0x10) + 5d36: 9165 ld.w r3, (r1, 0x14) + 5d38: 680f tstnbz r3 + 5d3a: 0c15 bf 0x5d64 // 5d64 <__strcpy_fast+0x74> + 5d3c: b465 st.w r3, (r4, 0x14) + 5d3e: 9166 ld.w r3, (r1, 0x18) + 5d40: 680f tstnbz r3 + 5d42: 0c13 bf 0x5d68 // 5d68 <__strcpy_fast+0x78> + 5d44: b466 st.w r3, (r4, 0x18) + 5d46: 9167 ld.w r3, (r1, 0x1c) + 5d48: 680f tstnbz r3 + 5d4a: 0c11 bf 0x5d6c // 5d6c <__strcpy_fast+0x7c> + 5d4c: b467 st.w r3, (r4, 0x1c) + 5d4e: 241f addi r4, 32 + 5d50: 211f addi r1, 32 + 5d52: 07de br 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d54: 2403 addi r4, 4 + 5d56: 040c br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d58: 2407 addi r4, 8 + 5d5a: 040a br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d5c: 240b addi r4, 12 + 5d5e: 0408 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d60: 240f addi r4, 16 + 5d62: 0406 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d64: 2413 addi r4, 20 + 5d66: 0404 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d68: 2417 addi r4, 24 + 5d6a: 0402 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d6c: 241b addi r4, 28 + 5d6e: 3118 movi r1, 24 + 5d70: 6c8f mov r2, r3 + 5d72: 7084 lsl r2, r1 + 5d74: 7085 lsr r2, r1 + 5d76: a440 st.b r2, (r4, 0x0) + 5d78: 3a40 cmpnei r2, 0 + 5d7a: 0c12 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d7c: 3110 movi r1, 16 + 5d7e: 6c8f mov r2, r3 + 5d80: 7084 lsl r2, r1 + 5d82: 3118 movi r1, 24 + 5d84: 7085 lsr r2, r1 + 5d86: a441 st.b r2, (r4, 0x1) + 5d88: 3a40 cmpnei r2, 0 + 5d8a: 0c0a bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d8c: 3108 movi r1, 8 + 5d8e: 6c8f mov r2, r3 + 5d90: 7084 lsl r2, r1 + 5d92: 3118 movi r1, 24 + 5d94: 7085 lsr r2, r1 + 5d96: a442 st.b r2, (r4, 0x2) + 5d98: 3a40 cmpnei r2, 0 + 5d9a: 0c02 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d9c: b460 st.w r3, (r4, 0x0) + 5d9e: 1481 pop r4 + +00005da0 <__GI_strchr>: + 5da0: 8040 ld.b r2, (r0, 0x0) + 5da2: 644a cmpne r2, r1 + 5da4: 0c06 bf 0x5db0 // 5db0 <__GI_strchr+0x10> + 5da6: 3a40 cmpnei r2, 0 + 5da8: 0c03 bf 0x5dae // 5dae <__GI_strchr+0xe> + 5daa: 2000 addi r0, 1 + 5dac: 07fa br 0x5da0 // 5da0 <__GI_strchr> + 5dae: 6c0b mov r0, r2 + 5db0: 783c jmp r15 + ... + +00005db4 <__GI_strerror>: + 5db4: 338f movi r3, 143 + 5db6: 640c cmphs r3, r0 + 5db8: 0c06 bf 0x5dc4 // 5dc4 <__GI_strerror+0x10> + 5dba: 4002 lsli r0, r0, 2 + 5dbc: 1023 lrw r1, 0xad04 // 5dc8 <__GI_strerror+0x14> + 5dbe: 6004 addu r0, r1 + 5dc0: 9000 ld.w r0, (r0, 0x0) + 5dc2: 783c jmp r15 + 5dc4: 1002 lrw r0, 0xaf81 // 5dcc <__GI_strerror+0x18> + 5dc6: 07fe br 0x5dc2 // 5dc2 <__GI_strerror+0xe> + 5dc8: 0000ad04 .long 0x0000ad04 + 5dcc: 0000af81 .long 0x0000af81 + +00005dd0 <__isinf>: + 5dd0: 3840 cmpnei r0, 0 + 5dd2: 6c83 mov r2, r0 + 5dd4: 6cc7 mov r3, r1 + 5dd6: 0804 bt 0x5dde // 5dde <__isinf+0xe> + 5dd8: 1028 lrw r1, 0x7ff00000 // 5df8 <__isinf+0x28> + 5dda: 644e cmpne r3, r1 + 5ddc: 0c0b bf 0x5df2 // 5df2 <__isinf+0x22> + 5dde: 3000 movi r0, 0 + 5de0: 1027 lrw r1, 0xfff00000 // 5dfc <__isinf+0x2c> + 5de2: 6c81 xor r2, r0 + 5de4: 6cc5 xor r3, r1 + 5de6: 6c8c or r2, r3 + 5de8: 3a40 cmpnei r2, 0 + 5dea: 64c3 mvcv r3 + 5dec: 3000 movi r0, 0 + 5dee: 600e subu r0, r3 + 5df0: 783c jmp r15 + 5df2: 3001 movi r0, 1 + 5df4: 07fe br 0x5df0 // 5df0 <__isinf+0x20> + 5df6: 0000 bkpt + 5df8: 7ff00000 .long 0x7ff00000 + 5dfc: fff00000 .long 0xfff00000 + +00005e00 <__eqdf2>: + 5e00: 14d0 push r15 + 5e02: 142e subi r14, r14, 56 + 5e04: b800 st.w r0, (r14, 0x0) + 5e06: b821 st.w r1, (r14, 0x4) + 5e08: 6c3b mov r0, r14 + 5e0a: 1904 addi r1, r14, 16 + 5e0c: b863 st.w r3, (r14, 0xc) + 5e0e: b842 st.w r2, (r14, 0x8) + 5e10: e3fff4a0 bsr 0x4750 // 4750 <__unpack_d> + 5e14: 1909 addi r1, r14, 36 + 5e16: 1802 addi r0, r14, 8 + 5e18: e3fff49c bsr 0x4750 // 4750 <__unpack_d> + 5e1c: 9864 ld.w r3, (r14, 0x10) + 5e1e: 3b01 cmphsi r3, 2 + 5e20: 0c0a bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e22: 9869 ld.w r3, (r14, 0x24) + 5e24: 3b01 cmphsi r3, 2 + 5e26: 0c07 bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e28: 1909 addi r1, r14, 36 + 5e2a: 1804 addi r0, r14, 16 + 5e2c: e3fff4f4 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e30: 140e addi r14, r14, 56 + 5e32: 1490 pop r15 + 5e34: 3001 movi r0, 1 + 5e36: 140e addi r14, r14, 56 + 5e38: 1490 pop r15 + ... + +00005e3c <__ltdf2>: + 5e3c: 14d0 push r15 + 5e3e: 142e subi r14, r14, 56 + 5e40: b800 st.w r0, (r14, 0x0) + 5e42: b821 st.w r1, (r14, 0x4) + 5e44: 6c3b mov r0, r14 + 5e46: 1904 addi r1, r14, 16 + 5e48: b863 st.w r3, (r14, 0xc) + 5e4a: b842 st.w r2, (r14, 0x8) + 5e4c: e3fff482 bsr 0x4750 // 4750 <__unpack_d> + 5e50: 1909 addi r1, r14, 36 + 5e52: 1802 addi r0, r14, 8 + 5e54: e3fff47e bsr 0x4750 // 4750 <__unpack_d> + 5e58: 9864 ld.w r3, (r14, 0x10) + 5e5a: 3b01 cmphsi r3, 2 + 5e5c: 0c0a bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e5e: 9869 ld.w r3, (r14, 0x24) + 5e60: 3b01 cmphsi r3, 2 + 5e62: 0c07 bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e64: 1909 addi r1, r14, 36 + 5e66: 1804 addi r0, r14, 16 + 5e68: e3fff4d6 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e6c: 140e addi r14, r14, 56 + 5e6e: 1490 pop r15 + 5e70: 3001 movi r0, 1 + 5e72: 140e addi r14, r14, 56 + 5e74: 1490 pop r15 + +Disassembly of section .text.__main: + +00005e78 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 5e78: 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 ) { + 5e7a: 1009 lrw r0, 0x20000000 // 5e9c <__main+0x24> + 5e7c: 1029 lrw r1, 0xc250 // 5ea0 <__main+0x28> + 5e7e: 6442 cmpne r0, r1 + 5e80: 0c05 bf 0x5e8a // 5e8a <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 5e82: 1049 lrw r2, 0x2000009c // 5ea4 <__main+0x2c> + 5e84: 6082 subu r2, r0 + 5e86: e3fff5ad bsr 0x49e0 // 49e0 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 5e8a: 1048 lrw r2, 0x20000afc // 5ea8 <__main+0x30> + 5e8c: 1008 lrw r0, 0x200000bc // 5eac <__main+0x34> + 5e8e: 640a cmpne r2, r0 + 5e90: 0c05 bf 0x5e9a // 5e9a <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 5e92: 6082 subu r2, r0 + 5e94: 3100 movi r1, 0 + 5e96: e3fff561 bsr 0x4958 // 4958 <__memset_fast> + } + + +} + 5e9a: 1490 pop r15 + 5e9c: 20000000 .long 0x20000000 + 5ea0: 0000c250 .long 0x0000c250 + 5ea4: 2000009c .long 0x2000009c + 5ea8: 20000afc .long 0x20000afc + 5eac: 200000bc .long 0x200000bc + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00005eb0 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 5eb0: 3848 cmpnei r0, 8 + 5eb2: 080a bt 0x5ec6 // 5ec6 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 5eb4: 107a lrw r3, 0x2000004c // 5f1c + 5eb6: 32ff movi r2, 255 + 5eb8: 9320 ld.w r1, (r3, 0x0) + 5eba: 9160 ld.w r3, (r1, 0x0) + 5ebc: 424c lsli r2, r2, 12 + 5ebe: 68c9 andn r3, r2 + 5ec0: 3bae bseti r3, 14 + 5ec2: 3bb2 bseti r3, 18 + 5ec4: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 5ec6: 1077 lrw r3, 0x2000005c // 5f20 + 5ec8: 9360 ld.w r3, (r3, 0x0) + 5eca: 9341 ld.w r2, (r3, 0x4) + 5ecc: 6c80 or r2, r0 + 5ece: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 5ed0: 9343 ld.w r2, (r3, 0xc) + 5ed2: 6880 and r2, r0 + 5ed4: 3a40 cmpnei r2, 0 + 5ed6: 0ffd bf 0x5ed0 // 5ed0 + switch(ENDIS_X) + 5ed8: 3842 cmpnei r0, 2 + 5eda: 0807 bt 0x5ee8 // 5ee8 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 5edc: 3102 movi r1, 2 + 5ede: 9344 ld.w r2, (r3, 0x10) + 5ee0: 6884 and r2, r1 + 5ee2: 3a40 cmpnei r2, 0 + 5ee4: 0ffd bf 0x5ede // 5ede + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 5ee6: 783c jmp r15 + switch(ENDIS_X) + 5ee8: 3802 cmphsi r0, 3 + 5eea: 0809 bt 0x5efc // 5efc + 5eec: 3841 cmpnei r0, 1 + 5eee: 0bfc bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 5ef0: 3101 movi r1, 1 + 5ef2: 9344 ld.w r2, (r3, 0x10) + 5ef4: 6884 and r2, r1 + 5ef6: 3a40 cmpnei r2, 0 + 5ef8: 0ffd bf 0x5ef2 // 5ef2 + 5efa: 07f6 br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5efc: 3848 cmpnei r0, 8 + 5efe: 0807 bt 0x5f0c // 5f0c + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 5f00: 3108 movi r1, 8 + 5f02: 9344 ld.w r2, (r3, 0x10) + 5f04: 6884 and r2, r1 + 5f06: 3a40 cmpnei r2, 0 + 5f08: 0ffd bf 0x5f02 // 5f02 + 5f0a: 07ee br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5f0c: 3850 cmpnei r0, 16 + 5f0e: 0bec bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 5f10: 3110 movi r1, 16 + 5f12: 9344 ld.w r2, (r3, 0x10) + 5f14: 6884 and r2, r1 + 5f16: 3a40 cmpnei r2, 0 + 5f18: 0ffd bf 0x5f12 // 5f12 + 5f1a: 07e6 br 0x5ee6 // 5ee6 + 5f1c: 2000004c .long 0x2000004c + 5f20: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00005f24 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 5f24: 106c lrw r3, 0x2000005c // 5f54 + 5f26: 104d lrw r2, 0xffff // 5f58 + 5f28: 9360 ld.w r3, (r3, 0x0) + 5f2a: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 5f2c: 104c lrw r2, 0xffffff // 5f5c + 5f2e: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 5f30: 104c lrw r2, 0xd22d0000 // 5f60 + 5f32: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 5f34: 104c lrw r2, 0x70ff3bff // 5f64 + 5f36: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 5f38: 320a movi r2, 10 + 5f3a: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f3c: 102b lrw r1, 0x70c // 5f68 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 5f3e: 237f addi r3, 128 + 5f40: 3200 movi r2, 0 + 5f42: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 5f44: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f46: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 5f48: 1029 lrw r1, 0x3fe // 5f6c + 5f4a: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 5f4c: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 5f4e: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 5f50: b35f st.w r2, (r3, 0x7c) +} + 5f52: 783c jmp r15 + 5f54: 2000005c .long 0x2000005c + 5f58: 0000ffff .long 0x0000ffff + 5f5c: 00ffffff .long 0x00ffffff + 5f60: d22d0000 .long 0xd22d0000 + 5f64: 70ff3bff .long 0x70ff3bff + 5f68: 0000070c .long 0x0000070c + 5f6c: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00005f70 : +{ + 5f70: 14d0 push r15 + if (NewState != DISABLE) + 5f72: 3840 cmpnei r0, 0 + 5f74: 0c05 bf 0x5f7e // 5f7e + 5f76: 6c07 mov r0, r1 + 5f78: e3ffff9c bsr 0x5eb0 // 5eb0 +} + 5f7c: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 5f7e: 1068 lrw r3, 0x2000005c // 5f9c + 5f80: 9360 ld.w r3, (r3, 0x0) + 5f82: 9342 ld.w r2, (r3, 0x8) + 5f84: 6c84 or r2, r1 + 5f86: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 5f88: 9343 ld.w r2, (r3, 0xc) + 5f8a: 6884 and r2, r1 + 5f8c: 3a40 cmpnei r2, 0 + 5f8e: 0bfd bt 0x5f88 // 5f88 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 5f90: 237f addi r3, 128 + 5f92: 9301 ld.w r0, (r3, 0x4) + 5f94: 6c40 or r1, r0 + 5f96: b321 st.w r1, (r3, 0x4) +} + 5f98: 07f2 br 0x5f7c // 5f7c + 5f9a: 0000 bkpt + 5f9c: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00005fa0 : +//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 ) +{ + 5fa0: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 5fa2: 3b48 cmpnei r3, 8 + 5fa4: 0828 bt 0x5ff4 // 5ff4 + { + IFC->CEDR=0X01; //CLKEN + 5fa6: 109d lrw r4, 0x20000060 // 6018 + 5fa8: 3501 movi r5, 1 + 5faa: 9480 ld.w r4, (r4, 0x0) + 5fac: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 5fae: 3504 movi r5, 4 + 5fb0: 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)) + 5fb2: 5b83 subi r4, r3, 1 + 5fb4: 3c01 cmphsi r4, 2 + 5fb6: 0c2b bf 0x600c // 600c + { + 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)) + 5fb8: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 5fba: 3c04 cmphsi r4, 5 + 5fbc: 0c03 bf 0x5fc2 // 5fc2 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 5fbe: 3b4b cmpnei r3, 11 + 5fc0: 0807 bt 0x5fce // 5fce + { + IFC->CEDR=0X01; //CLKEN + 5fc2: 1076 lrw r3, 0x20000060 // 6018 + 5fc4: 3401 movi r4, 1 + 5fc6: 9360 ld.w r3, (r3, 0x0) + 5fc8: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 5fca: 3400 movi r4, 0 + 5fcc: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fce: 1094 lrw r4, 0xd22d0000 // 601c + 5fd0: 6c10 or r0, r4 + 5fd2: 1074 lrw r3, 0x2000005c // 6020 + 5fd4: 6c40 or r1, r0 + 5fd6: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fd8: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fda: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fdc: 4001 lsli r0, r0, 1 + 5fde: 9324 ld.w r1, (r3, 0x10) + 5fe0: 6840 and r1, r0 + 5fe2: 3940 cmpnei r1, 0 + 5fe4: 0ffd bf 0x5fde // 5fde + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 5fe6: 1030 lrw r1, 0xc33c0000 // 6024 + 5fe8: 6c48 or r1, r2 + 5fea: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 5fec: 9328 ld.w r1, (r3, 0x20) + 5fee: 644a cmpne r2, r1 + 5ff0: 0bfe bt 0x5fec // 5fec +} + 5ff2: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 5ff4: 3b40 cmpnei r3, 0 + 5ff6: 0c03 bf 0x5ffc // 5ffc + 5ff8: 3b49 cmpnei r3, 9 + 5ffa: 0807 bt 0x6008 // 6008 + IFC->CEDR=0X01; //CLKEN + 5ffc: 1087 lrw r4, 0x20000060 // 6018 + 5ffe: 3501 movi r5, 1 + 6000: 9480 ld.w r4, (r4, 0x0) + 6002: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 6004: 3502 movi r5, 2 + 6006: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 6008: 3b4a cmpnei r3, 10 + 600a: 0bd4 bt 0x5fb2 // 5fb2 + IFC->CEDR=0X01; //CLKEN + 600c: 1083 lrw r4, 0x20000060 // 6018 + 600e: 3501 movi r5, 1 + 6010: 9480 ld.w r4, (r4, 0x0) + 6012: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 6014: b4a5 st.w r5, (r4, 0x14) + 6016: 07d1 br 0x5fb8 // 5fb8 + 6018: 20000060 .long 0x20000060 + 601c: d22d0000 .long 0xd22d0000 + 6020: 2000005c .long 0x2000005c + 6024: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00006028 : +//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) +{ + 6028: 14d1 push r4, r15 + 602a: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 602c: 3110 movi r1, 16 + 602e: 3000 movi r0, 0 + 6030: e3ffffa0 bsr 0x5f70 // 5f70 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 6034: 1066 lrw r3, 0x2000005c // 604c + 6036: 9360 ld.w r3, (r3, 0x0) + 6038: 9319 ld.w r0, (r3, 0x64) + 603a: 3884 bclri r0, 4 + 603c: 3885 bclri r0, 5 + 603e: 6c10 or r0, r4 + 6040: b319 st.w r0, (r3, 0x64) + 6042: 3010 movi r0, 16 + 6044: e3ffff36 bsr 0x5eb0 // 5eb0 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 6048: 1491 pop r4, r15 + 604a: 0000 bkpt + 604c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00006050 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 6050: 106c lrw r3, 0x2000005c // 6080 + if(NewState != DISABLE) + 6052: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 6054: 9360 ld.w r3, (r3, 0x0) + 6056: 237f addi r3, 128 + if(NewState != DISABLE) + 6058: 0c0a bf 0x606c // 606c + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605a: 104b lrw r2, 0x78870000 // 6084 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 605c: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605e: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 6060: 4125 lsli r1, r1, 5 + 6062: 934d ld.w r2, (r3, 0x34) + 6064: 6884 and r2, r1 + 6066: 3a40 cmpnei r2, 0 + 6068: 0ffd bf 0x6062 // 6062 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 606a: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 606c: 1047 lrw r2, 0x788755aa // 6088 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 606e: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 6070: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 6072: 4125 lsli r1, r1, 5 + 6074: 934d ld.w r2, (r3, 0x34) + 6076: 6884 and r2, r1 + 6078: 3a40 cmpnei r2, 0 + 607a: 0bfd bt 0x6074 // 6074 + 607c: 07f7 br 0x606a // 606a + 607e: 0000 bkpt + 6080: 2000005c .long 0x2000005c + 6084: 78870000 .long 0x78870000 + 6088: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +0000608c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 608c: 1064 lrw r3, 0x2000005c // 609c + 608e: 32b4 movi r2, 180 + 6090: 9360 ld.w r3, (r3, 0x0) + 6092: 237f addi r3, 128 + 6094: 4257 lsli r2, r2, 23 + 6096: b34e st.w r2, (r3, 0x38) +} + 6098: 783c jmp r15 + 609a: 0000 bkpt + 609c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +000060a0 : +//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; + 60a0: 1044 lrw r2, 0x87780000 // 60b0 + 60a2: 1065 lrw r3, 0x2000005c // 60b4 + 60a4: 6c48 or r1, r2 + 60a6: 9360 ld.w r3, (r3, 0x0) + 60a8: 6c04 or r0, r1 + 60aa: 237f addi r3, 128 + 60ac: b30d st.w r0, (r3, 0x34) +} + 60ae: 783c jmp r15 + 60b0: 87780000 .long 0x87780000 + 60b4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +000060b8 : +//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) +{ + 60b8: 14c3 push r4-r6 + 60ba: 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; + 60bc: 10c5 lrw r6, 0xb44b0000 // 60d0 + 60be: 6d18 or r4, r6 + 60c0: 6cd0 or r3, r4 + 60c2: 6c8c or r2, r3 + 60c4: 6c48 or r1, r2 + 60c6: 10a4 lrw r5, 0x2000005c // 60d4 + 60c8: 6c04 or r0, r1 + 60ca: 95a0 ld.w r5, (r5, 0x0) + 60cc: b513 st.w r0, (r5, 0x4c) +} + 60ce: 1483 pop r4-r6 + 60d0: b44b0000 .long 0xb44b0000 + 60d4: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +000060d8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 60d8: 1066 lrw r3, 0x2000005c // 60f0 + 60da: 3180 movi r1, 128 + 60dc: 9360 ld.w r3, (r3, 0x0) + 60de: 3280 movi r2, 128 + 60e0: 604c addu r1, r3 + 60e2: 4244 lsli r2, r2, 4 + 60e4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 60e6: 935d ld.w r2, (r3, 0x74) + 60e8: 3aab bseti r2, 11 + 60ea: b35d st.w r2, (r3, 0x74) +} + 60ec: 783c jmp r15 + 60ee: 0000 bkpt + 60f0: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +000060f4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 60f4: 1066 lrw r3, 0x2000005c // 610c + 60f6: 3180 movi r1, 128 + 60f8: 9360 ld.w r3, (r3, 0x0) + 60fa: 3280 movi r2, 128 + 60fc: 604c addu r1, r3 + 60fe: 4241 lsli r2, r2, 1 + 6100: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 6102: 935d ld.w r2, (r3, 0x74) + 6104: 3aa8 bseti r2, 8 + 6106: b35d st.w r2, (r3, 0x74) +} + 6108: 783c jmp r15 + 610a: 0000 bkpt + 610c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00006110 : +//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) + 6110: 3a40 cmpnei r2, 0 + 6112: 0c04 bf 0x611a // 611a + 6114: 3a41 cmpnei r2, 1 + 6116: 0c0e bf 0x6132 // 6132 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 6118: 783c jmp r15 + 611a: 106d lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 611c: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 611e: 9360 ld.w r3, (r3, 0x0) + 6120: 237f addi r3, 128 + 6122: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 6124: 0c04 bf 0x612c // 612c + SYSCON->EXIRT |=EXIPIN; + 6126: 6c48 or r1, r2 + 6128: b325 st.w r1, (r3, 0x14) + 612a: 07f7 br 0x6118 // 6118 + SYSCON->EXIRT &=~EXIPIN; + 612c: 6885 andn r2, r1 + 612e: b345 st.w r2, (r3, 0x14) + 6130: 07f4 br 0x6118 // 6118 + 6132: 1067 lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 6134: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 6136: 9360 ld.w r3, (r3, 0x0) + 6138: 237f addi r3, 128 + 613a: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 613c: 0c04 bf 0x6144 // 6144 + SYSCON->EXIFT |=EXIPIN; + 613e: 6c48 or r1, r2 + 6140: b326 st.w r1, (r3, 0x18) + 6142: 07eb br 0x6118 // 6118 + SYSCON->EXIFT &=~EXIPIN; + 6144: 6885 andn r2, r1 + 6146: b346 st.w r2, (r3, 0x18) +} + 6148: 07e8 br 0x6118 // 6118 + 614a: 0000 bkpt + 614c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00006150 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 6150: 106b lrw r3, 0x2000005c // 617c + 6152: 104c lrw r2, 0x3fff // 6180 + 6154: 9360 ld.w r3, (r3, 0x0) + 6156: 237f addi r3, 128 + if(NewState != DISABLE) + 6158: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 615a: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 615c: 0c0c bf 0x6174 // 6174 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 615e: 9347 ld.w r2, (r3, 0x1c) + 6160: 6c84 or r2, r1 + 6162: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 6164: 9349 ld.w r2, (r3, 0x24) + 6166: 6884 and r2, r1 + 6168: 3a40 cmpnei r2, 0 + 616a: 0ffd bf 0x6164 // 6164 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 616c: 934b ld.w r2, (r3, 0x2c) + 616e: 6c48 or r1, r2 + 6170: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 6172: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 6174: 9348 ld.w r2, (r3, 0x20) + 6176: 6c48 or r1, r2 + 6178: b328 st.w r1, (r3, 0x20) +} + 617a: 07fc br 0x6172 // 6172 + 617c: 2000005c .long 0x2000005c + 6180: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00006184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 6184: b02b st.w r1, (r0, 0x2c) +} + 6186: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00006188 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 6188: 3380 movi r3, 128 + 618a: 4370 lsli r3, r3, 16 + 618c: 1042 lrw r2, 0xe000e100 // 6194 + 618e: b260 st.w r3, (r2, 0x0) +} + 6190: 783c jmp r15 + 6192: 0000 bkpt + 6194: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00006198 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 6198: 3202 movi r2, 2 + 619a: 1062 lrw r3, 0xe000e100 // 61a0 + 619c: b340 st.w r2, (r3, 0x0) +} + 619e: 783c jmp r15 + 61a0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +000061a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 61a4: 3202 movi r2, 2 + 61a6: 1062 lrw r3, 0xe000e180 // 61ac + 61a8: b340 st.w r2, (r3, 0x0) +} + 61aa: 783c jmp r15 + 61ac: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_Software_Reset: + +000061b0 : +//EntryParameter:None +//ReturnValue:MCU reset +/*************************************************************/ +void SYSCON_Software_Reset(void) +{ + SYSCON->IDCCR=IDCCR_KEY|SWRST; + 61b0: 1063 lrw r3, 0x2000005c // 61bc + 61b2: 1044 lrw r2, 0xe11e0080 // 61c0 + 61b4: 9360 ld.w r3, (r3, 0x0) + 61b6: b340 st.w r2, (r3, 0x0) +} + 61b8: 783c jmp r15 + 61ba: 0000 bkpt + 61bc: 2000005c .long 0x2000005c + 61c0: e11e0080 .long 0xe11e0080 + +Disassembly of section .text.SYSCON_INT_Priority: + +000061c4 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61c4: 1066 lrw r3, 0xe000e400 // 61dc + 61c6: 1047 lrw r2, 0xc0c0c0c0 // 61e0 + 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 + 61c8: 1027 lrw r1, 0xc0c000c0 // 61e4 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61ca: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 61cc: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 61ce: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 61d0: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 61d2: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 61d4: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 61d6: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 61d8: b347 st.w r2, (r3, 0x1c) +} + 61da: 783c jmp r15 + 61dc: e000e400 .long 0xe000e400 + 61e0: c0c0c0c0 .long 0xc0c0c0c0 + 61e4: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000061e8 : +//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) +{ + 61e8: 14c1 push r4 + 61ea: 4862 lsri r3, r0, 2 + 61ec: 4342 lsli r2, r3, 2 + 61ee: 106a lrw r3, 0x20000064 // 6214 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 61f0: 3403 movi r4, 3 + 61f2: 9360 ld.w r3, (r3, 0x0) + 61f4: 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)); + 6206: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 620a: 7040 lsl r1, r0 + 620c: 6c48 or r1, r2 + 620e: b320 st.w r1, (r3, 0x0) +} + 6210: 1481 pop r4 + 6212: 0000 bkpt + 6214: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +00006218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 6218: 1075 lrw r3, 0x2000004c // 626c + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 621a: 1036 lrw r1, 0x20000048 // 6270 + 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; + 621c: 1016 lrw r0, 0xffff // 6274 + GPIOA0->CONLR &= 0xFF000000; + 621e: 9340 ld.w r2, (r3, 0x0) + 6220: 9260 ld.w r3, (r2, 0x0) + 6222: 4b78 lsri r3, r3, 24 + 6224: 4378 lsli r3, r3, 24 + 6226: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 6228: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 622a: 3300 movi r3, 0 + 622c: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 622e: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 6230: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 6232: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 6234: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 6236: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 6238: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 623a: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 623c: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 623e: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 6240: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 6242: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 6244: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 6246: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 6248: 303f movi r0, 63 + 624a: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 624c: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 624e: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 6250: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 6252: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 6254: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 6256: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 6258: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 625a: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 625c: 1047 lrw r2, 0x20000044 // 6278 + 625e: 9240 ld.w r2, (r2, 0x0) + 6260: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 6262: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 6264: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 6266: 330f movi r3, 15 + 6268: b263 st.w r3, (r2, 0xc) +} + 626a: 783c jmp r15 + 626c: 2000004c .long 0x2000004c + 6270: 20000048 .long 0x20000048 + 6274: 0000ffff .long 0x0000ffff + 6278: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +0000627c : +//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) +{ + 627c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 627e: 3907 cmphsi r1, 8 +{ + 6280: 6d03 mov r4, r0 + if(PinNum<8) + 6282: 0830 bt 0x62e2 // 62e2 + { + switch (PinNum) + 6284: 5903 subi r0, r1, 1 + 6286: 3806 cmphsi r0, 7 + 6288: 0827 bt 0x62d6 // 62d6 + 628a: e3ffe939 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 628e: 1004 .short 0x1004 + 6290: 1d1a1613 .long 0x1d1a1613 + 6294: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 6296: 3300 movi r3, 0 + 6298: 3104 movi r1, 4 + 629a: 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) + 629c: 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< + 62b2: 07f5 br 0x629c // 629c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 62b4: 310c movi r1, 12 + 62b6: 1166 lrw r3, 0xffff0fff // 634c + 62b8: 07f2 br 0x629c // 629c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 62ba: 3110 movi r1, 16 + 62bc: 1165 lrw r3, 0xfff10000 // 6350 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62be: 2b00 subi r3, 1 + 62c0: 07ee br 0x629c // 629c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 62c2: 3114 movi r1, 20 + 62c4: 1164 lrw r3, 0xff100000 // 6354 + 62c6: 07fc br 0x62be // 62be + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62c8: 33f1 movi r3, 241 + 62ca: 3118 movi r1, 24 + 62cc: 4378 lsli r3, r3, 24 + 62ce: 07f8 br 0x62be // 62be + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 62d0: 311c movi r1, 28 + 62d2: 1162 lrw r3, 0xfffffff // 6358 + 62d4: 07e4 br 0x629c // 629c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 62d6: 3300 movi r3, 0 + 62d8: 3100 movi r1, 0 + 62da: 2b0f subi r3, 16 + 62dc: 07e0 br 0x629c // 629c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 62e2: 390f cmphsi r1, 16 + 62e4: 0be4 bt 0x62ac // 62ac + switch (PinNum) + 62e6: 2908 subi r1, 9 + 62e8: 3906 cmphsi r1, 7 + 62ea: 6c07 mov r0, r1 + 62ec: 0827 bt 0x633a // 633a + 62ee: e3ffe907 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 62f2: 1004 .short 0x1004 + 62f4: 1d1a1613 .long 0x1d1a1613 + 62f8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 62fa: 3300 movi r3, 0 + 62fc: 3104 movi r1, 4 + 62fe: 2bf0 subi r3, 241 + if (Dir) + 6300: 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; + 6312: 3108 movi r1, 8 + 6314: 106d lrw r3, 0xfffff0ff // 6348 + 6316: 07f5 br 0x6300 // 6300 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 6318: 310c movi r1, 12 + 631a: 106d lrw r3, 0xffff0fff // 634c + 631c: 07f2 br 0x6300 // 6300 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 631e: 3110 movi r1, 16 + 6320: 106c lrw r3, 0xfff10000 // 6350 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 6322: 2b00 subi r3, 1 + 6324: 07ee br 0x6300 // 6300 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 6326: 3114 movi r1, 20 + 6328: 106b lrw r3, 0xff100000 // 6354 + 632a: 07fc br 0x6322 // 6322 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 632c: 33f1 movi r3, 241 + 632e: 3118 movi r1, 24 + 6330: 4378 lsli r3, r3, 24 + 6332: 07f8 br 0x6322 // 6322 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 6334: 311c movi r1, 28 + 6336: 1069 lrw r3, 0xfffffff // 6358 + 6338: 07e4 br 0x6300 // 6300 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 633a: 3300 movi r3, 0 + 633c: 3100 movi r1, 0 + 633e: 2b0f subi r3, 16 + 6340: 07e0 br 0x6300 // 6300 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 6346: 0000 bkpt + 6348: fffff0ff .long 0xfffff0ff + 634c: ffff0fff .long 0xffff0fff + 6350: fff10000 .long 0xfff10000 + 6354: ff100000 .long 0xff100000 + 6358: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000635c : +//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)); + 635c: 4121 lsli r1, r1, 1 + 635e: 3203 movi r2, 3 + 6360: 9068 ld.w r3, (r0, 0x20) + 6362: 7084 lsl r2, r1 + 6364: 68c9 andn r3, r2 + 6366: 3201 movi r2, 1 + 6368: 7084 lsl r2, r1 + 636a: 6cc8 or r3, r2 + 636c: b068 st.w r3, (r0, 0x20) +} + 636e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00006370 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 6370: 4121 lsli r1, r1, 1 + 6372: 3301 movi r3, 1 + 6374: 9049 ld.w r2, (r0, 0x24) + 6376: 70c4 lsl r3, r1 + 6378: 6cc8 or r3, r2 + 637a: b069 st.w r3, (r0, 0x24) +} + 637c: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00006380 : +//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) +{ + 6380: 14c1 push r4 + 6382: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 6384: 3a0f cmphsi r2, 16 + 6386: 084f bt 0x6424 // 6424 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 6388: 6ccb mov r3, r2 + 638a: 3b83 bclri r3, 3 + 638c: 3b40 cmpnei r3, 0 + 638e: 0813 bt 0x63b4 // 63b4 + { + R_data_temp=0xfffffff0; + 6390: 2b0f subi r3, 16 + 6392: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 6394: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 6396: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 6398: dc6e0003 st.b r3, (r14, 0x3) + 639c: 1176 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x<8) + 639e: 0c38 bf 0x640e // 640e + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 63b4: 3b41 cmpnei r3, 1 + 63b6: 0806 bt 0x63c2 // 63c2 + R_data_temp=0xffffff0f; + 63b8: 3300 movi r3, 0 + 63ba: 2bf0 subi r3, 241 + 63bc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 63be: 3304 movi r3, 4 + 63c0: 07eb br 0x6396 // 6396 + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 63c2: 3b42 cmpnei r3, 2 + 63c4: 0805 bt 0x63ce // 63ce + R_data_temp=0xfffff0ff; + 63c6: 116d lrw r3, 0xfffff0ff // 6478 + 63c8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 63ca: 3308 movi r3, 8 + 63cc: 07e5 br 0x6396 // 6396 + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 63ce: 3b43 cmpnei r3, 3 + 63d0: 0805 bt 0x63da // 63da + R_data_temp=0xffff0fff; + 63d2: 116b lrw r3, 0xffff0fff // 647c + 63d4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 63d6: 330c movi r3, 12 + 63d8: 07df br 0x6396 // 6396 + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 63da: 3b44 cmpnei r3, 4 + 63dc: 0806 bt 0x63e8 // 63e8 + R_data_temp=0xfff0ffff; + 63de: 1169 lrw r3, 0xfff10000 // 6480 + 63e0: 2b00 subi r3, 1 + 63e2: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 63e4: 3310 movi r3, 16 + 63e6: 07d8 br 0x6396 // 6396 + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 63e8: 3b45 cmpnei r3, 5 + 63ea: 0806 bt 0x63f6 // 63f6 + R_data_temp=0xff0fffff; + 63ec: 1166 lrw r3, 0xff100000 // 6484 + 63ee: 2b00 subi r3, 1 + 63f0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 63f2: 3314 movi r3, 20 + 63f4: 07d1 br 0x6396 // 6396 + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 63f6: 3b46 cmpnei r3, 6 + 63f8: 0807 bt 0x6406 // 6406 + R_data_temp=0xf0ffffff; + 63fa: 33f1 movi r3, 241 + 63fc: 4378 lsli r3, r3, 24 + 63fe: 2b00 subi r3, 1 + 6400: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 6402: 3318 movi r3, 24 + 6404: 07c9 br 0x6396 // 6396 + R_data_temp=0x0fffffff; + 6406: 1161 lrw r3, 0xfffffff // 6488 + 6408: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 640a: 331c movi r3, 28 + 640c: 07c5 br 0x6396 // 6396 + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 6420: 1402 addi r14, r14, 8 + 6422: 1481 pop r4 + else if(Selete_EXI_x<20) + 6424: 3a13 cmphsi r2, 20 + 6426: 0bfd bt 0x6420 // 6420 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 6428: 3840 cmpnei r0, 0 + 642a: 0814 bt 0x6452 // 6452 + 642c: 3300 movi r3, 0 + 642e: 2b0f subi r3, 16 + 6430: 60c8 addu r3, r2 + 6432: 3b01 cmphsi r3, 2 + 6434: 0bf6 bt 0x6420 // 6420 + if(Selete_EXI_x==16) + 6436: 3a50 cmpnei r2, 16 + 6438: 106f lrw r3, 0x20000044 // 6474 + 643a: 0806 bt 0x6446 // 6446 + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 643c: 9340 ld.w r2, (r3, 0x0) + 643e: 9262 ld.w r3, (r2, 0x8) + 6440: 6c4c or r1, r3 + 6442: b222 st.w r1, (r2, 0x8) + 6444: 07ee br 0x6420 // 6420 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 6446: 9360 ld.w r3, (r3, 0x0) + 6448: 9342 ld.w r2, (r3, 0x8) + 644a: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 644c: 6c48 or r1, r2 + 644e: b322 st.w r1, (r3, 0x8) +} + 6450: 07e8 br 0x6420 // 6420 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 6452: 3842 cmpnei r0, 2 + 6454: 0be6 bt 0x6420 // 6420 + 6456: 3300 movi r3, 0 + 6458: 2b11 subi r3, 18 + 645a: 60c8 addu r3, r2 + 645c: 3b01 cmphsi r3, 2 + 645e: 0be1 bt 0x6420 // 6420 + 6460: 1065 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x==18) + 6462: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 6464: 9360 ld.w r3, (r3, 0x0) + 6466: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 6468: 0803 bt 0x646e // 646e + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 646a: 4128 lsli r1, r1, 8 + 646c: 07f0 br 0x644c // 644c + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 646e: 412c lsli r1, r1, 12 + 6470: 07ee br 0x644c // 644c + 6472: 0000 bkpt + 6474: 20000044 .long 0x20000044 + 6478: fffff0ff .long 0xfffff0ff + 647c: ffff0fff .long 0xffff0fff + 6480: fff10000 .long 0xfff10000 + 6484: ff100000 .long 0xff100000 + 6488: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +0000648c : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 648c: 14d0 push r15 + switch (EXI_IO) + 648e: 380f cmphsi r0, 16 + 6490: 0812 bt 0x64b4 // 64b4 + 6492: 117d lrw r3, 0x2000004c // 6584 + 6494: e3ffe834 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6498: 1d150f08 .long 0x1d150f08 + 649c: 39322b24 .long 0x39322b24 + 64a0: 544c463f .long 0x544c463f + 64a4: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 64a8: 9340 ld.w r2, (r3, 0x0) + 64aa: 9260 ld.w r3, (r2, 0x0) + 64ac: 310f movi r1, 15 + 64ae: 68c5 andn r3, r1 + 64b0: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b2: b260 st.w r3, (r2, 0x0) + 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; + } +} + 64b4: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b6: 9340 ld.w r2, (r3, 0x0) + 64b8: 9260 ld.w r3, (r2, 0x0) + 64ba: 31f0 movi r1, 240 + 64bc: 68c5 andn r3, r1 + 64be: 3ba4 bseti r3, 4 + 64c0: 07f9 br 0x64b2 // 64b2 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 64c2: 9320 ld.w r1, (r3, 0x0) + 64c4: 32f0 movi r2, 240 + 64c6: 9160 ld.w r3, (r1, 0x0) + 64c8: 4244 lsli r2, r2, 4 + 64ca: 68c9 andn r3, r2 + 64cc: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64ce: b160 st.w r3, (r1, 0x0) + 64d0: 07f2 br 0x64b4 // 64b4 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 64d2: 9320 ld.w r1, (r3, 0x0) + 64d4: 32f0 movi r2, 240 + 64d6: 9160 ld.w r3, (r1, 0x0) + 64d8: 4248 lsli r2, r2, 8 + 64da: 68c9 andn r3, r2 + 64dc: 3bac bseti r3, 12 + 64de: 07f8 br 0x64ce // 64ce + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 64e0: 9320 ld.w r1, (r3, 0x0) + 64e2: 32f0 movi r2, 240 + 64e4: 9160 ld.w r3, (r1, 0x0) + 64e6: 424c lsli r2, r2, 12 + 64e8: 68c9 andn r3, r2 + 64ea: 3bb0 bseti r3, 16 + 64ec: 07f1 br 0x64ce // 64ce + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 64ee: 9320 ld.w r1, (r3, 0x0) + 64f0: 32f0 movi r2, 240 + 64f2: 9160 ld.w r3, (r1, 0x0) + 64f4: 4250 lsli r2, r2, 16 + 64f6: 68c9 andn r3, r2 + 64f8: 3bb4 bseti r3, 20 + 64fa: 07ea br 0x64ce // 64ce + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64fc: 9320 ld.w r1, (r3, 0x0) + 64fe: 32f0 movi r2, 240 + 6500: 9160 ld.w r3, (r1, 0x0) + 6502: 4254 lsli r2, r2, 20 + 6504: 68c9 andn r3, r2 + 6506: 3bb8 bseti r3, 24 + 6508: 07e3 br 0x64ce // 64ce + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 650a: 9340 ld.w r2, (r3, 0x0) + 650c: 9260 ld.w r3, (r2, 0x0) + 650e: 4364 lsli r3, r3, 4 + 6510: 4b64 lsri r3, r3, 4 + 6512: 3bbc bseti r3, 28 + 6514: 07cf br 0x64b2 // 64b2 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 6516: 9340 ld.w r2, (r3, 0x0) + 6518: 9261 ld.w r3, (r2, 0x4) + 651a: 310f movi r1, 15 + 651c: 68c5 andn r3, r1 + 651e: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6520: b261 st.w r3, (r2, 0x4) +} + 6522: 07c9 br 0x64b4 // 64b4 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 6524: 9340 ld.w r2, (r3, 0x0) + 6526: 9261 ld.w r3, (r2, 0x4) + 6528: 31f0 movi r1, 240 + 652a: 68c5 andn r3, r1 + 652c: 3ba4 bseti r3, 4 + 652e: 07f9 br 0x6520 // 6520 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 6530: 9320 ld.w r1, (r3, 0x0) + 6532: 32f0 movi r2, 240 + 6534: 9161 ld.w r3, (r1, 0x4) + 6536: 4244 lsli r2, r2, 4 + 6538: 68c9 andn r3, r2 + 653a: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 653c: b161 st.w r3, (r1, 0x4) + 653e: 07bb br 0x64b4 // 64b4 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 6540: 9320 ld.w r1, (r3, 0x0) + 6542: 32f0 movi r2, 240 + 6544: 9161 ld.w r3, (r1, 0x4) + 6546: 4248 lsli r2, r2, 8 + 6548: 68c9 andn r3, r2 + 654a: 3bac bseti r3, 12 + 654c: 07f8 br 0x653c // 653c + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 654e: 9320 ld.w r1, (r3, 0x0) + 6550: 32f0 movi r2, 240 + 6552: 9161 ld.w r3, (r1, 0x4) + 6554: 424c lsli r2, r2, 12 + 6556: 68c9 andn r3, r2 + 6558: 3bb0 bseti r3, 16 + 655a: 07f1 br 0x653c // 653c + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 655c: 9320 ld.w r1, (r3, 0x0) + 655e: 32f0 movi r2, 240 + 6560: 9161 ld.w r3, (r1, 0x4) + 6562: 4250 lsli r2, r2, 16 + 6564: 68c9 andn r3, r2 + 6566: 3bb4 bseti r3, 20 + 6568: 07ea br 0x653c // 653c + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 656a: 9320 ld.w r1, (r3, 0x0) + 656c: 32f0 movi r2, 240 + 656e: 9161 ld.w r3, (r1, 0x4) + 6570: 4254 lsli r2, r2, 20 + 6572: 68c9 andn r3, r2 + 6574: 3bb8 bseti r3, 24 + 6576: 07e3 br 0x653c // 653c + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6578: 9340 ld.w r2, (r3, 0x0) + 657a: 9261 ld.w r3, (r2, 0x4) + 657c: 4364 lsli r3, r3, 4 + 657e: 4b64 lsri r3, r3, 4 + 6580: 3bbc bseti r3, 28 + 6582: 07cf br 0x6520 // 6520 + 6584: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +00006588 : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 6598: 9045 ld.w r2, (r0, 0x14) + 659a: 3301 movi r3, 1 + 659c: 7085 lsr r2, r1 + 659e: 688c and r2, r3 + { + if (dat==1) + 65a0: 3a40 cmpnei r2, 0 + 65a2: 70c4 lsl r3, r1 + 65a4: 0c03 bf 0x65aa // 65aa + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000065ae : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 65c0: 1064 lrw r3, 0x20000014 // 65d0 + 65c2: 9340 ld.w r2, (r3, 0x0) + 65c4: 9261 ld.w r3, (r2, 0x4) + 65c6: 3bac bseti r3, 12 + 65c8: 3bae bseti r3, 14 + 65ca: b261 st.w r3, (r2, 0x4) +} + 65cc: 783c jmp r15 + 65ce: 0000 bkpt + 65d0: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000065d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 65d4: 1063 lrw r3, 0x20000010 // 65e0 + 65d6: 9360 ld.w r3, (r3, 0x0) + 65d8: 9340 ld.w r2, (r3, 0x0) + 65da: 6c08 or r0, r2 + 65dc: b300 st.w r0, (r3, 0x0) +} + 65de: 783c jmp r15 + 65e0: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000065e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 65e4: 3300 movi r3, 0 + 65e6: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 65e8: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 65ea: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 65ec: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 65ee: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 65f0: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 65f2: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 65f4: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 65f6: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 65f8: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 65fa: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 65fc: b06d st.w r3, (r0, 0x34) +} + 65fe: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00006600 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 6600: 9060 ld.w r3, (r0, 0x0) + 6602: 3ba0 bseti r3, 0 + 6604: b060 st.w r3, (r0, 0x0) +} + 6606: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00006608 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 6608: 9060 ld.w r3, (r0, 0x0) + 660a: 3bac bseti r3, 12 + 660c: 3bae bseti r3, 14 + 660e: b060 st.w r3, (r0, 0x0) +} + 6610: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00006612 : +//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) +{ + 6612: 14c3 push r4-r6 + 6614: 98a4 ld.w r5, (r14, 0x10) + 6616: 6d97 mov r6, r5 + 6618: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 661a: 6d18 or r4, r6 + 661c: 6cd0 or r3, r4 + 661e: 90a1 ld.w r5, (r0, 0x4) + 6620: 6c4c or r1, r3 + 6622: 6c54 or r1, r5 + 6624: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 6626: b042 st.w r2, (r0, 0x8) +} + 6628: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000662a : +//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) +{ + 662a: 14c4 push r4-r7 + 662c: 1421 subi r14, r14, 4 + 662e: 9885 ld.w r4, (r14, 0x14) + 6630: 6dd3 mov r7, r4 + 6632: 9886 ld.w r4, (r14, 0x18) + 6634: b880 st.w r4, (r14, 0x0) + 6636: 9887 ld.w r4, (r14, 0x1c) + 6638: 6d93 mov r6, r4 + 663a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 663c: 6d58 or r5, r6 + 663e: 98c0 ld.w r6, (r14, 0x0) + 6640: 6d58 or r5, r6 + 6642: 6d5c or r5, r7 + 6644: 6cd4 or r3, r5 + 6646: 6c8c or r2, r3 + 6648: 9081 ld.w r4, (r0, 0x4) + 664a: 6c48 or r1, r2 + 664c: 6d04 or r4, r1 + 664e: 6d9f mov r6, r7 + 6650: b081 st.w r4, (r0, 0x4) +} + 6652: 1401 addi r14, r14, 4 + 6654: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00006656 : +//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; + 6656: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 6658: b044 st.w r2, (r0, 0x10) +} + 665a: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +0000665c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 665c: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 665e: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 6660: 0c04 bf 0x6668 // 6668 + BTx->IMCR |= BT_IMSCR_X; + 6662: 6c8c or r2, r3 + 6664: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 6666: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 6668: 68c9 andn r3, r2 + 666a: b06b st.w r3, (r0, 0x2c) +} + 666c: 07fd br 0x6666 // 6666 + +Disassembly of section .text.BT1_INT_ENABLE: + +00006670 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 6670: 3380 movi r3, 128 + 6672: 4376 lsli r3, r3, 22 + 6674: 1042 lrw r2, 0xe000e100 // 667c + 6676: b260 st.w r3, (r2, 0x0) +} + 6678: 783c jmp r15 + 667a: 0000 bkpt + 667c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00006680 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 6680: 1065 lrw r3, 0x20000040 // 6694 + 6682: 3200 movi r2, 0 + 6684: 9360 ld.w r3, (r3, 0x0) + 6686: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 6688: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 668a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 668c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 668e: b344 st.w r2, (r3, 0x10) +} + 6690: 783c jmp r15 + 6692: 0000 bkpt + 6694: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00006698 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 6698: 1065 lrw r3, 0x2000003c // 66ac + 669a: 3200 movi r2, 0 + 669c: 9360 ld.w r3, (r3, 0x0) + 669e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 66a0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 66a2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 66a4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 66a6: b344 st.w r2, (r3, 0x10) +} + 66a8: 783c jmp r15 + 66aa: 0000 bkpt + 66ac: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000066b0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 66b0: 1065 lrw r3, 0x20000038 // 66c4 + 66b2: 3200 movi r2, 0 + 66b4: 9360 ld.w r3, (r3, 0x0) + 66b6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 66b8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 66ba: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 66bc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 66be: b344 st.w r2, (r3, 0x10) +} + 66c0: 783c jmp r15 + 66c2: 0000 bkpt + 66c4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000066c8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 66c8: 1065 lrw r3, 0x20000040 // 66dc + 66ca: 320f movi r2, 15 + 66cc: 9360 ld.w r3, (r3, 0x0) + 66ce: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66d0: 3380 movi r3, 128 + 66d2: 4366 lsli r3, r3, 6 + 66d4: 1043 lrw r2, 0xe000e100 // 66e0 + 66d6: b260 st.w r3, (r2, 0x0) +} + 66d8: 783c jmp r15 + 66da: 0000 bkpt + 66dc: 20000040 .long 0x20000040 + 66e0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART1_Int_Enable: + +000066e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 66e4: 1065 lrw r3, 0x2000003c // 66f8 + 66e6: 320f movi r2, 15 + 66e8: 9360 ld.w r3, (r3, 0x0) + 66ea: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66ec: 3380 movi r3, 128 + 66ee: 4367 lsli r3, r3, 7 + 66f0: 1043 lrw r2, 0xe000e100 // 66fc + 66f2: b260 st.w r3, (r2, 0x0) +} + 66f4: 783c jmp r15 + 66f6: 0000 bkpt + 66f8: 2000003c .long 0x2000003c + 66fc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00006700 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 6700: 1065 lrw r3, 0x20000038 // 6714 + 6702: 320f movi r2, 15 + 6704: 9360 ld.w r3, (r3, 0x0) + 6706: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 6708: 3380 movi r3, 128 + 670a: 4368 lsli r3, r3, 8 + 670c: 1043 lrw r2, 0xe000e100 // 6718 + 670e: b260 st.w r3, (r2, 0x0) +} + 6710: 783c jmp r15 + 6712: 0000 bkpt + 6714: 20000038 .long 0x20000038 + 6718: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000671c : +//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) + 671c: 3840 cmpnei r0, 0 + 671e: 0821 bt 0x6760 // 6760 + { + if(UART_IO_G==0) + 6720: 3940 cmpnei r1, 0 + 6722: 080a bt 0x6736 // 6736 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 6724: 1177 lrw r3, 0x2000004c // 6800 + 6726: 31ff movi r1, 255 + 6728: 9340 ld.w r2, (r3, 0x0) + 672a: 9260 ld.w r3, (r2, 0x0) + 672c: 68c5 andn r3, r1 + 672e: 3ba2 bseti r3, 2 + 6730: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 6732: b260 st.w r3, (r2, 0x0) + 6734: 0415 br 0x675e // 675e + else if(UART_IO_G==1) + 6736: 3941 cmpnei r1, 1 + 6738: 0813 bt 0x675e // 675e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 673a: 1172 lrw r3, 0x2000004c // 6800 + 673c: 31f0 movi r1, 240 + 673e: 9340 ld.w r2, (r3, 0x0) + 6740: 9260 ld.w r3, (r2, 0x0) + 6742: 4130 lsli r1, r1, 16 + 6744: 68c5 andn r3, r1 + 6746: 31e0 movi r1, 224 + 6748: 412f lsli r1, r1, 15 + 674a: 6cc4 or r3, r1 + 674c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 674e: 31f0 movi r1, 240 + 6750: 9261 ld.w r3, (r2, 0x4) + 6752: 412c lsli r1, r1, 12 + 6754: 68c5 andn r3, r1 + 6756: 31e0 movi r1, 224 + 6758: 412b lsli r1, r1, 11 + 675a: 6cc4 or r3, r1 + 675c: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 675e: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 6760: 3841 cmpnei r0, 1 + 6762: 082d bt 0x67bc // 67bc + if(UART_IO_G==0) + 6764: 3940 cmpnei r1, 0 + 6766: 0814 bt 0x678e // 678e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 6768: 1167 lrw r3, 0x20000048 // 6804 + 676a: 310f movi r1, 15 + 676c: 9340 ld.w r2, (r3, 0x0) + 676e: 9260 ld.w r3, (r2, 0x0) + 6770: 68c5 andn r3, r1 + 6772: 3107 movi r1, 7 + 6774: 6cc4 or r3, r1 + 6776: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 6778: 32f0 movi r2, 240 + 677a: 1162 lrw r3, 0x2000004c // 6800 + 677c: 4250 lsli r2, r2, 16 + 677e: 9320 ld.w r1, (r3, 0x0) + 6780: 9161 ld.w r3, (r1, 0x4) + 6782: 68c9 andn r3, r2 + 6784: 32e0 movi r2, 224 + 6786: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 6788: 6cc8 or r3, r2 + 678a: b161 st.w r3, (r1, 0x4) + 678c: 07e9 br 0x675e // 675e + else if(UART_IO_G==1) + 678e: 3941 cmpnei r1, 1 + 6790: 080c bt 0x67a8 // 67a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 6792: 107c lrw r3, 0x2000004c // 6800 + 6794: 32ff movi r2, 255 + 6796: 9320 ld.w r1, (r3, 0x0) + 6798: 424c lsli r2, r2, 12 + 679a: 9160 ld.w r3, (r1, 0x0) + 679c: 68c9 andn r3, r2 + 679e: 32ee movi r2, 238 + 67a0: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67a2: 6cc8 or r3, r2 + 67a4: b160 st.w r3, (r1, 0x0) +} + 67a6: 07dc br 0x675e // 675e + else if(UART_IO_G==2) + 67a8: 3942 cmpnei r1, 2 + 67aa: 0bda bt 0x675e // 675e + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 67ac: 1075 lrw r3, 0x2000004c // 6800 + 67ae: 32ee movi r2, 238 + 67b0: 9320 ld.w r1, (r3, 0x0) + 67b2: 9161 ld.w r3, (r1, 0x4) + 67b4: 4368 lsli r3, r3, 8 + 67b6: 4b68 lsri r3, r3, 8 + 67b8: 4257 lsli r2, r2, 23 + 67ba: 07e7 br 0x6788 // 6788 + if (IO_UART_NUM==IO_UART2) + 67bc: 3842 cmpnei r0, 2 + 67be: 0bd0 bt 0x675e // 675e + if(UART_IO_G==0) + 67c0: 3940 cmpnei r1, 0 + 67c2: 0809 bt 0x67d4 // 67d4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 67c4: 106f lrw r3, 0x2000004c // 6800 + 67c6: 31ff movi r1, 255 + 67c8: 9340 ld.w r2, (r3, 0x0) + 67ca: 9260 ld.w r3, (r2, 0x0) + 67cc: 68c5 andn r3, r1 + 67ce: 3177 movi r1, 119 + 67d0: 6cc4 or r3, r1 + 67d2: 07b0 br 0x6732 // 6732 + else if(UART_IO_G==1) + 67d4: 3941 cmpnei r1, 1 + 67d6: 0809 bt 0x67e8 // 67e8 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 67d8: 106a lrw r3, 0x2000004c // 6800 + 67da: 32ee movi r2, 238 + 67dc: 9320 ld.w r1, (r3, 0x0) + 67de: 9160 ld.w r3, (r1, 0x0) + 67e0: 4368 lsli r3, r3, 8 + 67e2: 4b68 lsri r3, r3, 8 + 67e4: 4257 lsli r2, r2, 23 + 67e6: 07de br 0x67a2 // 67a2 + else if(UART_IO_G==2) + 67e8: 3942 cmpnei r1, 2 + 67ea: 0bba bt 0x675e // 675e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67ec: 1066 lrw r3, 0x20000048 // 6804 + 67ee: 32ff movi r2, 255 + 67f0: 9320 ld.w r1, (r3, 0x0) + 67f2: 4250 lsli r2, r2, 16 + 67f4: 9160 ld.w r3, (r1, 0x0) + 67f6: 68c9 andn r3, r2 + 67f8: 32cc movi r2, 204 + 67fa: 424f lsli r2, r2, 15 + 67fc: 07d3 br 0x67a2 // 67a2 + 67fe: 0000 bkpt + 6800: 2000004c .long 0x2000004c + 6804: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00006808 : +//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); + 6808: 1063 lrw r3, 0x8000f // 6814 + 680a: 6c8c or r2, r3 + 680c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 680e: b024 st.w r1, (r0, 0x10) +} + 6810: 783c jmp r15 + 6812: 0000 bkpt + 6814: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00006818 : +//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) +{ + 6818: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681a: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 681c: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681e: 5b85 subu r4, r3, r1 + 6820: 6490 cmphs r4, r2 + 6822: 0c02 bf 0x6826 // 6826 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 6824: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 6826: 8380 ld.b r4, (r3, 0x0) + 6828: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 682a: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 682c: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 682e: 3c40 cmpnei r4, 0 + 6830: 0bfd bt 0x682a // 682a + 6832: 2300 addi r3, 1 + 6834: 07f5 br 0x681e // 681e + +Disassembly of section .text.EPT_Stop: + +00006838 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 6838: 1068 lrw r3, 0x20000020 // 6858 + 683a: 3280 movi r2, 128 + 683c: 9360 ld.w r3, (r3, 0x0) + 683e: 608c addu r2, r3 + 6840: 1027 lrw r1, 0xa55ac73a // 685c + 6842: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 6844: 9341 ld.w r2, (r3, 0x4) + 6846: 31fe movi r1, 254 + 6848: 6884 and r2, r1 + 684a: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 684c: 3101 movi r1, 1 + 684e: 9341 ld.w r2, (r3, 0x4) + 6850: 6884 and r2, r1 + 6852: 3a40 cmpnei r2, 0 + 6854: 0bfd bt 0x684e // 684e +} + 6856: 783c jmp r15 + 6858: 20000020 .long 0x20000020 + 685c: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00006860 : + 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) +{ + 6860: 14c4 push r4-r7 + 6862: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 6864: 1165 lrw r3, 0x20000060 // 68f8 + 6866: 1186 lrw r4, 0x5a5a5a5a // 68fc + 6868: 9360 ld.w r3, (r3, 0x0) + 686a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 686c: 3407 movi r4, 7 + 686e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6870: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 6872: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 6874: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 6876: 9384 ld.w r4, (r3, 0x10) + 6878: 3c40 cmpnei r4, 0 + 687a: 0bfe bt 0x6876 // 6876 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 687c: 2102 addi r1, 3 + 687e: 4922 lsri r1, r1, 2 + 6880: 4122 lsli r1, r1, 2 + 6882: 6048 addu r1, r2 + 6884: b820 st.w r1, (r14, 0x0) + 6886: 5829 subu r1, r0, r2 + 6888: b821 st.w r1, (r14, 0x4) + 688a: 9820 ld.w r1, (r14, 0x0) + 688c: 644a cmpne r2, r1 + 688e: 0826 bt 0x68da // 68da + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 6890: 3106 movi r1, 6 + SetUserKey; + 6892: 105b lrw r2, 0x5a5a5a5a // 68fc + 6894: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 6896: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6898: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 689a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 689c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 689e: 9324 ld.w r1, (r3, 0x10) + 68a0: 3940 cmpnei r1, 0 + 68a2: 0bfe bt 0x689e // 689e + //Perform pre-programming 4 + SetUserKey; + 68a4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68a6: 3201 movi r2, 1 + 68a8: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68aa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ac: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 68ae: 934a ld.w r2, (r3, 0x28) + 68b0: 3a44 cmpnei r2, 4 + 68b2: 0bfe bt 0x68ae // 68ae + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 68b4: 3102 movi r1, 2 + SetUserKey; + 68b6: 1052 lrw r2, 0x5a5a5a5a // 68fc + 68b8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 68ba: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 68bc: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 68be: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68c0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 68c2: 932a ld.w r1, (r3, 0x28) + 68c4: 3941 cmpnei r1, 1 + 68c6: 0bfe bt 0x68c2 // 68c2 + //Write page cache data to flash memory 6 + SetUserKey; + 68c8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68ca: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68cc: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ce: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 68d0: 934a ld.w r2, (r3, 0x28) + 68d2: 3a42 cmpnei r2, 2 + 68d4: 0bfe bt 0x68d0 // 68d0 +} + 68d6: 1402 addi r14, r14, 8 + 68d8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 68da: 82e0 ld.b r7, (r2, 0x0) + 68dc: 8281 ld.b r4, (r2, 0x1) + 68de: 4488 lsli r4, r4, 8 + 68e0: 8222 ld.b r1, (r2, 0x2) + 68e2: 611c addu r4, r7 + 68e4: 82a3 ld.b r5, (r2, 0x3) + 68e6: 4130 lsli r1, r1, 16 + 68e8: 98c1 ld.w r6, (r14, 0x4) + 68ea: 6050 addu r1, r4 + 68ec: 45b8 lsli r5, r5, 24 + 68ee: 6188 addu r6, r2 + 68f0: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 68f2: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 68f4: 2203 addi r2, 4 + 68f6: 07ca br 0x688a // 688a + 68f8: 20000060 .long 0x20000060 + 68fc: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00006900 : +//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) +{ + 6900: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 690c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 690e: 3b40 cmpnei r3, 0 + 6910: 0c06 bf 0x691c // 691c + 6912: 6d0f mov r4, r3 + 6914: 6914 and r4, r5 + 6916: 3c40 cmpnei r4, 0 + 6918: 0802 bt 0x691c // 691c + RdStartAdd +=4; + 691a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 691c: 6d0f mov r4, r3 + 691e: 6914 and r4, r5 + 6920: 6100 addu r4, r0 + 6922: 8480 ld.b r4, (r4, 0x0) + 6924: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +0000692c
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 692c: 14d0 push r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 692e: e00000ab bsr 0x6a84 // 6a84 + + Dbg_Println(DBG_BIT_SYS_STATUS,"APP Run Start! 111 %s",Project_Boot_Support); + 6932: 102d lrw r1, 0xaf44 // 6964 + 6934: 3000 movi r0, 0 + 6936: 104d lrw r2, 0x2000009c // 6968 + 6938: e000087e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 693c: 102c lrw r1, 0xaf5a // 696c + 693e: 3000 movi r0, 0 + 6940: e000087a bsr 0x7a34 // 7a34 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 6944: e3fffba4 bsr 0x608c // 608c + + UART0_TASK(); + 6948: e00006da bsr 0x76fc // 76fc + + UART1_TASK(); + 694c: e000097a bsr 0x7c40 // 7c40 + + UART2_TASK(); + 6950: e00009be bsr 0x7ccc // 7ccc + + DIP_ScanTask(); + 6954: e0000a9e bsr 0x7e90 // 7e90 + + BLV_EngDetect_Tack(); + 6958: e00017ee bsr 0x9934 // 9934 + + BUS485Send_Task(); + 695c: e00008fc bsr 0x7b54 // 7b54 + 6960: 07f2 br 0x6944 // 6944 + 6962: 0000 bkpt + 6964: 0000af44 .long 0x0000af44 + 6968: 2000009c .long 0x2000009c + 696c: 0000af5a .long 0x0000af5a + +Disassembly of section .text.delay_nms: + +00006970 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 6970: 14d0 push r15 + 6972: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 6974: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 6976: 3300 movi r3, 0 + j = 50* t; + 6978: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 697a: b862 st.w r3, (r14, 0x8) + j = 50* t; + 697c: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 697e: b860 st.w r3, (r14, 0x0) + 6980: 9840 ld.w r2, (r14, 0x0) + 6982: 9861 ld.w r3, (r14, 0x4) + 6984: 64c8 cmphs r2, r3 + 6986: 0c03 bf 0x698c // 698c + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 6988: 1403 addi r14, r14, 12 + 698a: 1490 pop r15 + k++; + 698c: 9862 ld.w r3, (r14, 0x8) + 698e: 2300 addi r3, 1 + 6990: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 6992: e3fffb7d bsr 0x608c // 608c + for ( i = 0; i < j; i++ ) + 6996: 9860 ld.w r3, (r14, 0x0) + 6998: 2300 addi r3, 1 + 699a: 07f2 br 0x697e // 697e + +Disassembly of section .text.delay_nus: + +0000699c : +void delay_nus(unsigned int t) +{ + 699c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 699e: 3300 movi r3, 0 + 69a0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 69a2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 69a4: b860 st.w r3, (r14, 0x0) + 69a6: 9840 ld.w r2, (r14, 0x0) + 69a8: 9861 ld.w r3, (r14, 0x4) + 69aa: 64c8 cmphs r2, r3 + 69ac: 0c03 bf 0x69b2 // 69b2 + { + k++; + } +} + 69ae: 1403 addi r14, r14, 12 + 69b0: 783c jmp r15 + k++; + 69b2: 9862 ld.w r3, (r14, 0x8) + 69b4: 2300 addi r3, 1 + 69b6: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 69b8: 9860 ld.w r3, (r14, 0x0) + 69ba: 2300 addi r3, 1 + 69bc: 07f4 br 0x69a4 // 69a4 + +Disassembly of section .text.BT_CONFIG: + +000069c0 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 69c0: 14d2 push r4-r5, r15 + 69c2: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 69c4: 1095 lrw r4, 0x20000008 // 6a18 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69c6: 3500 movi r5, 0 + BT_DeInit(BT1); + 69c8: 9400 ld.w r0, (r4, 0x0) + 69ca: e3fffe0d bsr 0x65e4 // 65e4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69ce: 9400 ld.w r0, (r4, 0x0) + 69d0: b8a1 st.w r5, (r14, 0x4) + 69d2: b8a0 st.w r5, (r14, 0x0) + 69d4: 3308 movi r3, 8 + 69d6: 3200 movi r2, 0 + 69d8: 3101 movi r1, 1 + 69da: e3fffe1c bsr 0x6612 // 6612 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 69de: 3380 movi r3, 128 + 69e0: 4363 lsli r3, r3, 3 + 69e2: b861 st.w r3, (r14, 0x4) + 69e4: 9400 ld.w r0, (r4, 0x0) + 69e6: 3300 movi r3, 0 + 69e8: b8a3 st.w r5, (r14, 0xc) + 69ea: b8a2 st.w r5, (r14, 0x8) + 69ec: b8a0 st.w r5, (r14, 0x0) + 69ee: 3200 movi r2, 0 + 69f0: 3180 movi r1, 128 + 69f2: e3fffe1c bsr 0x662a // 662a + BT_Period_CMP_Write(BT1,4780,1); + 69f6: 3201 movi r2, 1 + 69f8: 1029 lrw r1, 0x12ac // 6a1c + 69fa: 9400 ld.w r0, (r4, 0x0) + 69fc: e3fffe2d bsr 0x6656 // 6656 + BT_Start(BT1); + 6a00: 9400 ld.w r0, (r4, 0x0) + 6a02: e3fffdff bsr 0x6600 // 6600 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 6a06: 9400 ld.w r0, (r4, 0x0) + 6a08: 3202 movi r2, 2 + 6a0a: 3101 movi r1, 1 + 6a0c: e3fffe28 bsr 0x665c // 665c + BT1_INT_ENABLE(); + 6a10: e3fffe30 bsr 0x6670 // 6670 + +} + 6a14: 1404 addi r14, r14, 16 + 6a16: 1492 pop r4-r5, r15 + 6a18: 20000008 .long 0x20000008 + 6a1c: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00006a20 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 6a20: 14d0 push r15 + 6a22: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 6a24: e3fffa80 bsr 0x5f24 // 5f24 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 6a28: 3101 movi r1, 1 + 6a2a: 3001 movi r0, 1 + 6a2c: e3fffaa2 bsr 0x5f70 // 5f70 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 6a30: 3000 movi r0, 0 + 6a32: e3fffafb bsr 0x6028 // 6028 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 6a36: 3180 movi r1, 128 + 6a38: 3308 movi r3, 8 + 6a3a: 3200 movi r2, 0 + 6a3c: 4121 lsli r1, r1, 1 + 6a3e: 3002 movi r0, 2 + 6a40: e3fffab0 bsr 0x5fa0 // 5fa0 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 6a44: 3080 movi r0, 128 + 6a46: 3118 movi r1, 24 + 6a48: 4002 lsli r0, r0, 2 + 6a4a: e3fffb2b bsr 0x60a0 // 60a0 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 6a4e: 3001 movi r0, 1 + 6a50: e3fffb00 bsr 0x6050 // 6050 + SYSCON_IWDCNT_Reload(); //reload WDT + 6a54: e3fffb1c bsr 0x608c // 608c + IWDT_Int_Enable(); + 6a58: e3fffb4e bsr 0x60f4 // 60f4 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 6a5c: 3340 movi r3, 64 + 6a5e: b860 st.w r3, (r14, 0x0) + 6a60: 31c0 movi r1, 192 + 6a62: 3380 movi r3, 128 + 6a64: 4364 lsli r3, r3, 4 + 6a66: 3200 movi r2, 0 + 6a68: 4123 lsli r1, r1, 3 + 6a6a: 3000 movi r0, 0 + 6a6c: e3fffb26 bsr 0x60b8 // 60b8 + LVD_Int_Enable(); + 6a70: e3fffb34 bsr 0x60d8 // 60d8 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 6a74: e3fffb92 bsr 0x6198 // 6198 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 6a78: 3000 movi r0, 0 + 6a7a: e0001f3d bsr 0xa8f4 // a8f4 + +} + 6a7e: 1401 addi r14, r14, 4 + 6a80: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00006a84 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 6a84: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a86: 1079 lrw r3, 0x2000005c // 6ae8 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a88: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a8a: 9340 ld.w r2, (r3, 0x0) + 6a8c: 1078 lrw r3, 0xfffffff // 6aec + 6a8e: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 6a90: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a92: 926c ld.w r3, (r2, 0x30) + 6a94: 68c4 and r3, r1 + 6a96: 3b40 cmpnei r3, 0 + 6a98: 0ffd bf 0x6a92 // 6a92 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 6a9a: e3ffffc3 bsr 0x6a20 // 6a20 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 6a9e: e000054b bsr 0x7534 // 7534 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 6aa2: e3fffb91 bsr 0x61c4 // 61c4 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART0_IRQ,1); + 6aa6: 3101 movi r1, 1 + 6aa8: 300d movi r0, 13 + 6aaa: e3fffb9f bsr 0x61e8 // 61e8 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 6aae: 3101 movi r1, 1 + 6ab0: 300e movi r0, 14 + 6ab2: e3fffb9b bsr 0x61e8 // 61e8 + + Set_INT_Priority(UART2_IRQ,1); + 6ab6: 3101 movi r1, 1 + 6ab8: 300f movi r0, 15 + 6aba: e3fffb97 bsr 0x61e8 // 61e8 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 6abe: e3fffbad bsr 0x6218 // 6218 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 6ac2: e3ffff7f bsr 0x69c0 // 69c0 + + UARTx_Init(UART_0,HLW8110_RecvData_Processing); + 6ac6: 102b lrw r1, 0x8eec // 6af0 + 6ac8: 3000 movi r0, 0 + 6aca: e000053b bsr 0x7540 // 7540 + + UARTx_Init(UART_1,HLW_485Recv_Processing); + 6ace: 102a lrw r1, 0x9c9c // 6af4 + 6ad0: 3001 movi r0, 1 + 6ad2: e0000537 bsr 0x7540 // 7540 + + UARTx_Init(UART_2,BT_Recv_Processing); + 6ad6: 1029 lrw r1, 0x9dfc // 6af8 + 6ad8: 3002 movi r0, 2 + 6ada: e0000533 bsr 0x7540 // 7540 + + Boot_Function_Init(); + 6ade: e0001a1b bsr 0x9f14 // 9f14 + + DIP_Switch_Init(); + 6ae2: e000098d bsr 0x7dfc // 7dfc +} + 6ae6: 1490 pop r15 + 6ae8: 2000005c .long 0x2000005c + 6aec: 0fffffff .long 0x0fffffff + 6af0: 00008eec .long 0x00008eec + 6af4: 00009c9c .long 0x00009c9c + 6af8: 00009dfc .long 0x00009dfc + +Disassembly of section .text.SYSCONIntHandler: + +00006afc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 6afc: 1460 nie + 6afe: 1462 ipush + // ISR content ... + nop; + 6b00: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 6b02: 117a lrw r3, 0x2000005c // 6be8 + 6b04: 3280 movi r2, 128 + 6b06: 9360 ld.w r3, (r3, 0x0) + 6b08: 60c8 addu r3, r2 + 6b0a: 9323 ld.w r1, (r3, 0xc) + 6b0c: 3001 movi r0, 1 + 6b0e: 6840 and r1, r0 + 6b10: 3940 cmpnei r1, 0 + 6b12: 0c04 bf 0x6b1a // 6b1a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 6b14: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 6b16: 1463 ipop + 6b18: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 6b1a: 9323 ld.w r1, (r3, 0xc) + 6b1c: 3002 movi r0, 2 + 6b1e: 6840 and r1, r0 + 6b20: 3940 cmpnei r1, 0 + 6b22: 0bf9 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 6b24: 9323 ld.w r1, (r3, 0xc) + 6b26: 3008 movi r0, 8 + 6b28: 6840 and r1, r0 + 6b2a: 3940 cmpnei r1, 0 + 6b2c: 0bf4 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 6b2e: 9323 ld.w r1, (r3, 0xc) + 6b30: 3010 movi r0, 16 + 6b32: 6840 and r1, r0 + 6b34: 3940 cmpnei r1, 0 + 6b36: 0bef bt 0x6b14 // 6b14 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 6b38: 9323 ld.w r1, (r3, 0xc) + 6b3a: 6848 and r1, r2 + 6b3c: 3940 cmpnei r1, 0 + 6b3e: 0c03 bf 0x6b44 // 6b44 + SYSCON->ICR = CMD_ERR_ST; + 6b40: b341 st.w r2, (r3, 0x4) +} + 6b42: 07ea br 0x6b16 // 6b16 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 6b44: 3280 movi r2, 128 + 6b46: 9323 ld.w r1, (r3, 0xc) + 6b48: 4241 lsli r2, r2, 1 + 6b4a: 6848 and r1, r2 + 6b4c: 3940 cmpnei r1, 0 + 6b4e: 0bf9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 6b50: 3280 movi r2, 128 + 6b52: 9323 ld.w r1, (r3, 0xc) + 6b54: 4242 lsli r2, r2, 2 + 6b56: 6848 and r1, r2 + 6b58: 3940 cmpnei r1, 0 + 6b5a: 0bf3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 6b5c: 3280 movi r2, 128 + 6b5e: 9323 ld.w r1, (r3, 0xc) + 6b60: 4243 lsli r2, r2, 3 + 6b62: 6848 and r1, r2 + 6b64: 3940 cmpnei r1, 0 + 6b66: 0bed bt 0x6b40 // 6b40 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 6b68: 3280 movi r2, 128 + 6b6a: 9323 ld.w r1, (r3, 0xc) + 6b6c: 4244 lsli r2, r2, 4 + 6b6e: 6848 and r1, r2 + 6b70: 3940 cmpnei r1, 0 + 6b72: 0c03 bf 0x6b78 // 6b78 + nop; + 6b74: 6c03 mov r0, r0 + 6b76: 07e5 br 0x6b40 // 6b40 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 6b78: 3280 movi r2, 128 + 6b7a: 9323 ld.w r1, (r3, 0xc) + 6b7c: 4245 lsli r2, r2, 5 + 6b7e: 6848 and r1, r2 + 6b80: 3940 cmpnei r1, 0 + 6b82: 0bdf bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 6b84: 3280 movi r2, 128 + 6b86: 9323 ld.w r1, (r3, 0xc) + 6b88: 4246 lsli r2, r2, 6 + 6b8a: 6848 and r1, r2 + 6b8c: 3940 cmpnei r1, 0 + 6b8e: 0bd9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 6b90: 3280 movi r2, 128 + 6b92: 9323 ld.w r1, (r3, 0xc) + 6b94: 4247 lsli r2, r2, 7 + 6b96: 6848 and r1, r2 + 6b98: 3940 cmpnei r1, 0 + 6b9a: 0bd3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 6b9c: 3280 movi r2, 128 + 6b9e: 9323 ld.w r1, (r3, 0xc) + 6ba0: 424b lsli r2, r2, 11 + 6ba2: 6848 and r1, r2 + 6ba4: 3940 cmpnei r1, 0 + 6ba6: 0bcd bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 6ba8: 3280 movi r2, 128 + 6baa: 9323 ld.w r1, (r3, 0xc) + 6bac: 424c lsli r2, r2, 12 + 6bae: 6848 and r1, r2 + 6bb0: 3940 cmpnei r1, 0 + 6bb2: 0bc7 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 6bb4: 3280 movi r2, 128 + 6bb6: 9323 ld.w r1, (r3, 0xc) + 6bb8: 424d lsli r2, r2, 13 + 6bba: 6848 and r1, r2 + 6bbc: 3940 cmpnei r1, 0 + 6bbe: 0bc1 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 6bc0: 3280 movi r2, 128 + 6bc2: 9323 ld.w r1, (r3, 0xc) + 6bc4: 424e lsli r2, r2, 14 + 6bc6: 6848 and r1, r2 + 6bc8: 3940 cmpnei r1, 0 + 6bca: 0bbb bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 6bcc: 3280 movi r2, 128 + 6bce: 9323 ld.w r1, (r3, 0xc) + 6bd0: 424f lsli r2, r2, 15 + 6bd2: 6848 and r1, r2 + 6bd4: 3940 cmpnei r1, 0 + 6bd6: 0bb5 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 6bd8: 3280 movi r2, 128 + 6bda: 9323 ld.w r1, (r3, 0xc) + 6bdc: 4256 lsli r2, r2, 22 + 6bde: 6848 and r1, r2 + 6be0: 3940 cmpnei r1, 0 + 6be2: 0baf bt 0x6b40 // 6b40 + 6be4: 0799 br 0x6b16 // 6b16 + 6be6: 0000 bkpt + 6be8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00006bec : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 6bec: 1460 nie + 6bee: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 6bf0: 1078 lrw r3, 0x20000060 // 6c50 + 6bf2: 3101 movi r1, 1 + 6bf4: 9360 ld.w r3, (r3, 0x0) + 6bf6: 934b ld.w r2, (r3, 0x2c) + 6bf8: 6884 and r2, r1 + 6bfa: 3a40 cmpnei r2, 0 + 6bfc: 0c04 bf 0x6c04 // 6c04 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 6bfe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 6c00: 1463 ipop + 6c02: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 6c04: 934b ld.w r2, (r3, 0x2c) + 6c06: 3102 movi r1, 2 + 6c08: 6884 and r2, r1 + 6c0a: 3a40 cmpnei r2, 0 + 6c0c: 0bf9 bt 0x6bfe // 6bfe + else if(IFC->MISR&PEP_END_INT) + 6c0e: 934b ld.w r2, (r3, 0x2c) + 6c10: 3104 movi r1, 4 + 6c12: 6884 and r2, r1 + 6c14: 3a40 cmpnei r2, 0 + 6c16: 0bf4 bt 0x6bfe // 6bfe + else if(IFC->MISR&PROT_ERR_INT) + 6c18: 3280 movi r2, 128 + 6c1a: 932b ld.w r1, (r3, 0x2c) + 6c1c: 4245 lsli r2, r2, 5 + 6c1e: 6848 and r1, r2 + 6c20: 3940 cmpnei r1, 0 + 6c22: 0c03 bf 0x6c28 // 6c28 + IFC->ICR=OVW_ERR_INT; + 6c24: b34c st.w r2, (r3, 0x30) +} + 6c26: 07ed br 0x6c00 // 6c00 + else if(IFC->MISR&UDEF_ERR_INT) + 6c28: 3280 movi r2, 128 + 6c2a: 932b ld.w r1, (r3, 0x2c) + 6c2c: 4246 lsli r2, r2, 6 + 6c2e: 6848 and r1, r2 + 6c30: 3940 cmpnei r1, 0 + 6c32: 0bf9 bt 0x6c24 // 6c24 + else if(IFC->MISR&ADDR_ERR_INT) + 6c34: 3280 movi r2, 128 + 6c36: 932b ld.w r1, (r3, 0x2c) + 6c38: 4247 lsli r2, r2, 7 + 6c3a: 6848 and r1, r2 + 6c3c: 3940 cmpnei r1, 0 + 6c3e: 0bf3 bt 0x6c24 // 6c24 + else if(IFC->MISR&OVW_ERR_INT) + 6c40: 3280 movi r2, 128 + 6c42: 932b ld.w r1, (r3, 0x2c) + 6c44: 4248 lsli r2, r2, 8 + 6c46: 6848 and r1, r2 + 6c48: 3940 cmpnei r1, 0 + 6c4a: 0bed bt 0x6c24 // 6c24 + 6c4c: 07da br 0x6c00 // 6c00 + 6c4e: 0000 bkpt + 6c50: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00006c54 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 6c54: 1460 nie + 6c56: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 6c58: 1078 lrw r3, 0x20000050 // 6cb8 + 6c5a: 3101 movi r1, 1 + 6c5c: 9360 ld.w r3, (r3, 0x0) + 6c5e: 9348 ld.w r2, (r3, 0x20) + 6c60: 6884 and r2, r1 + 6c62: 3a40 cmpnei r2, 0 + 6c64: 0c04 bf 0x6c6c // 6c6c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 6c66: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 6c68: 1463 ipop + 6c6a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 6c6c: 9348 ld.w r2, (r3, 0x20) + 6c6e: 3102 movi r1, 2 + 6c70: 6884 and r2, r1 + 6c72: 3a40 cmpnei r2, 0 + 6c74: 0bf9 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 6c76: 9348 ld.w r2, (r3, 0x20) + 6c78: 3104 movi r1, 4 + 6c7a: 6884 and r2, r1 + 6c7c: 3a40 cmpnei r2, 0 + 6c7e: 0bf4 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 6c80: 9348 ld.w r2, (r3, 0x20) + 6c82: 3110 movi r1, 16 + 6c84: 6884 and r2, r1 + 6c86: 3a40 cmpnei r2, 0 + 6c88: 0bef bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 6c8a: 9348 ld.w r2, (r3, 0x20) + 6c8c: 3120 movi r1, 32 + 6c8e: 6884 and r2, r1 + 6c90: 3a40 cmpnei r2, 0 + 6c92: 0bea bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 6c94: 9348 ld.w r2, (r3, 0x20) + 6c96: 3140 movi r1, 64 + 6c98: 6884 and r2, r1 + 6c9a: 3a40 cmpnei r2, 0 + 6c9c: 0be5 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 6c9e: 9348 ld.w r2, (r3, 0x20) + 6ca0: 3180 movi r1, 128 + 6ca2: 6884 and r2, r1 + 6ca4: 3a40 cmpnei r2, 0 + 6ca6: 0be0 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 6ca8: 3280 movi r2, 128 + 6caa: 9328 ld.w r1, (r3, 0x20) + 6cac: 4249 lsli r2, r2, 9 + 6cae: 6848 and r1, r2 + 6cb0: 3940 cmpnei r1, 0 + 6cb2: 0fdb bf 0x6c68 // 6c68 + ADC0->CSR = ADC12_SEQ_END0; + 6cb4: b347 st.w r2, (r3, 0x1c) +} + 6cb6: 07d9 br 0x6c68 // 6c68 + 6cb8: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00006cbc : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 6cbc: 1460 nie + 6cbe: 1462 ipush + 6cc0: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 6cc2: 1387 lrw r4, 0x20000020 // 6e5c + 6cc4: 3280 movi r2, 128 + 6cc6: 9460 ld.w r3, (r4, 0x0) + 6cc8: 60c8 addu r3, r2 + 6cca: 9335 ld.w r1, (r3, 0x54) + 6ccc: 3001 movi r0, 1 + 6cce: 6840 and r1, r0 + 6cd0: 3940 cmpnei r1, 0 + 6cd2: 0c03 bf 0x6cd8 // 6cd8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 6cd4: b317 st.w r0, (r3, 0x5c) + 6cd6: 0424 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 6cd8: 9335 ld.w r1, (r3, 0x54) + 6cda: 3002 movi r0, 2 + 6cdc: 6840 and r1, r0 + 6cde: 3940 cmpnei r1, 0 + 6ce0: 0bfa bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 6ce2: 9335 ld.w r1, (r3, 0x54) + 6ce4: 3004 movi r0, 4 + 6ce6: 6840 and r1, r0 + 6ce8: 3940 cmpnei r1, 0 + 6cea: 0bf5 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 6cec: 9335 ld.w r1, (r3, 0x54) + 6cee: 3008 movi r0, 8 + 6cf0: 6840 and r1, r0 + 6cf2: 3940 cmpnei r1, 0 + 6cf4: 0bf0 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 6cf6: 9335 ld.w r1, (r3, 0x54) + 6cf8: 3010 movi r0, 16 + 6cfa: 6840 and r1, r0 + 6cfc: 3940 cmpnei r1, 0 + 6cfe: 0c1f bf 0x6d3c // 6d3c + EPT0->ICR=EPT_CAP_LD0; + 6d00: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 6d02: 3200 movi r2, 0 + 6d04: 3101 movi r1, 1 + 6d06: 3000 movi r0, 0 + 6d08: e3fffa04 bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 6d0c: 3201 movi r2, 1 + 6d0e: 3101 movi r1, 1 + 6d10: 3001 movi r0, 1 + 6d12: e3fff9ff bsr 0x6110 // 6110 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 6d16: 9460 ld.w r3, (r4, 0x0) + 6d18: 934b ld.w r2, (r3, 0x2c) + 6d1a: 1272 lrw r3, 0x20000210 // 6e60 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d1c: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 6d1e: 9460 ld.w r3, (r4, 0x0) + 6d20: 3280 movi r2, 128 + 6d22: 60c8 addu r3, r2 + 6d24: 932b ld.w r1, (r3, 0x2c) + 6d26: 3001 movi r0, 1 + 6d28: 6840 and r1, r0 + 6d2a: 3940 cmpnei r1, 0 + 6d2c: 0c61 bf 0x6dee // 6dee + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 6d2e: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 6d30: d9ee2001 ld.w r15, (r14, 0x4) + 6d34: 9880 ld.w r4, (r14, 0x0) + 6d36: 1402 addi r14, r14, 8 + 6d38: 1463 ipop + 6d3a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 6d3c: 9335 ld.w r1, (r3, 0x54) + 6d3e: 3020 movi r0, 32 + 6d40: 6840 and r1, r0 + 6d42: 3940 cmpnei r1, 0 + 6d44: 0c10 bf 0x6d64 // 6d64 + EPT0->ICR=EPT_CAP_LD1; + 6d46: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 6d48: 3200 movi r2, 0 + 6d4a: 3101 movi r1, 1 + 6d4c: 3001 movi r0, 1 + 6d4e: e3fff9e1 bsr 0x6110 // 6110 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 6d52: 3201 movi r2, 1 + 6d54: 3101 movi r1, 1 + 6d56: 3000 movi r0, 0 + 6d58: e3fff9dc bsr 0x6110 // 6110 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d5c: 9460 ld.w r3, (r4, 0x0) + 6d5e: 934c ld.w r2, (r3, 0x30) + 6d60: 1261 lrw r3, 0x2000020c // 6e64 + 6d62: 07dd br 0x6d1c // 6d1c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 6d64: 9335 ld.w r1, (r3, 0x54) + 6d66: 3040 movi r0, 64 + 6d68: 6840 and r1, r0 + 6d6a: 3940 cmpnei r1, 0 + 6d6c: 0bb4 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 6d6e: 9335 ld.w r1, (r3, 0x54) + 6d70: 6848 and r1, r2 + 6d72: 3940 cmpnei r1, 0 + 6d74: 0c03 bf 0x6d7a // 6d7a + EPT0->ICR=EPT_CDD; + 6d76: b357 st.w r2, (r3, 0x5c) + 6d78: 07d3 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 6d7a: 3280 movi r2, 128 + 6d7c: 9335 ld.w r1, (r3, 0x54) + 6d7e: 4241 lsli r2, r2, 1 + 6d80: 6848 and r1, r2 + 6d82: 3940 cmpnei r1, 0 + 6d84: 0bf9 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 6d86: 3280 movi r2, 128 + 6d88: 9335 ld.w r1, (r3, 0x54) + 6d8a: 4242 lsli r2, r2, 2 + 6d8c: 6848 and r1, r2 + 6d8e: 3940 cmpnei r1, 0 + 6d90: 0bf3 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 6d92: 3280 movi r2, 128 + 6d94: 9335 ld.w r1, (r3, 0x54) + 6d96: 4243 lsli r2, r2, 3 + 6d98: 6848 and r1, r2 + 6d9a: 3940 cmpnei r1, 0 + 6d9c: 0bed bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 6d9e: 3280 movi r2, 128 + 6da0: 9335 ld.w r1, (r3, 0x54) + 6da2: 4244 lsli r2, r2, 4 + 6da4: 6848 and r1, r2 + 6da6: 3940 cmpnei r1, 0 + 6da8: 0be7 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 6daa: 3280 movi r2, 128 + 6dac: 9335 ld.w r1, (r3, 0x54) + 6dae: 4245 lsli r2, r2, 5 + 6db0: 6848 and r1, r2 + 6db2: 3940 cmpnei r1, 0 + 6db4: 0be1 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 6db6: 3280 movi r2, 128 + 6db8: 9335 ld.w r1, (r3, 0x54) + 6dba: 4246 lsli r2, r2, 6 + 6dbc: 6848 and r1, r2 + 6dbe: 3940 cmpnei r1, 0 + 6dc0: 0bdb bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 6dc2: 3280 movi r2, 128 + 6dc4: 9335 ld.w r1, (r3, 0x54) + 6dc6: 4247 lsli r2, r2, 7 + 6dc8: 6848 and r1, r2 + 6dca: 3940 cmpnei r1, 0 + 6dcc: 0bd5 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 6dce: 3280 movi r2, 128 + 6dd0: 9335 ld.w r1, (r3, 0x54) + 6dd2: 4248 lsli r2, r2, 8 + 6dd4: 6848 and r1, r2 + 6dd6: 3940 cmpnei r1, 0 + 6dd8: 0bcf bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 6dda: 3280 movi r2, 128 + 6ddc: 9335 ld.w r1, (r3, 0x54) + 6dde: 4249 lsli r2, r2, 9 + 6de0: 6848 and r1, r2 + 6de2: 3940 cmpnei r1, 0 + 6de4: 0f9d bf 0x6d1e // 6d1e + EPT0->ICR=EPT_PEND; + 6de6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 6de8: e3fffd28 bsr 0x6838 // 6838 + 6dec: 0799 br 0x6d1e // 6d1e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 6dee: 932b ld.w r1, (r3, 0x2c) + 6df0: 3002 movi r0, 2 + 6df2: 6840 and r1, r0 + 6df4: 3940 cmpnei r1, 0 + 6df6: 0b9c bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 6df8: 932b ld.w r1, (r3, 0x2c) + 6dfa: 3004 movi r0, 4 + 6dfc: 6840 and r1, r0 + 6dfe: 3940 cmpnei r1, 0 + 6e00: 0b97 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 6e02: 932b ld.w r1, (r3, 0x2c) + 6e04: 3008 movi r0, 8 + 6e06: 6840 and r1, r0 + 6e08: 3940 cmpnei r1, 0 + 6e0a: 0b92 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 6e0c: 932b ld.w r1, (r3, 0x2c) + 6e0e: 3010 movi r0, 16 + 6e10: 6840 and r1, r0 + 6e12: 3940 cmpnei r1, 0 + 6e14: 0b8d bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 6e16: 932b ld.w r1, (r3, 0x2c) + 6e18: 3020 movi r0, 32 + 6e1a: 6840 and r1, r0 + 6e1c: 3940 cmpnei r1, 0 + 6e1e: 0b88 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 6e20: 932b ld.w r1, (r3, 0x2c) + 6e22: 3040 movi r0, 64 + 6e24: 6840 and r1, r0 + 6e26: 3940 cmpnei r1, 0 + 6e28: 0b83 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 6e2a: 932b ld.w r1, (r3, 0x2c) + 6e2c: 6848 and r1, r2 + 6e2e: 3940 cmpnei r1, 0 + 6e30: 0c03 bf 0x6e36 // 6e36 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 6e32: b34d st.w r2, (r3, 0x34) +} + 6e34: 077e br 0x6d30 // 6d30 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 6e36: 3280 movi r2, 128 + 6e38: 932b ld.w r1, (r3, 0x2c) + 6e3a: 4241 lsli r2, r2, 1 + 6e3c: 6848 and r1, r2 + 6e3e: 3940 cmpnei r1, 0 + 6e40: 0bf9 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 6e42: 3280 movi r2, 128 + 6e44: 932b ld.w r1, (r3, 0x2c) + 6e46: 4242 lsli r2, r2, 2 + 6e48: 6848 and r1, r2 + 6e4a: 3940 cmpnei r1, 0 + 6e4c: 0bf3 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 6e4e: 3280 movi r2, 128 + 6e50: 932b ld.w r1, (r3, 0x2c) + 6e52: 4243 lsli r2, r2, 3 + 6e54: 6848 and r1, r2 + 6e56: 3940 cmpnei r1, 0 + 6e58: 0bed bt 0x6e32 // 6e32 + 6e5a: 076b br 0x6d30 // 6d30 + 6e5c: 20000020 .long 0x20000020 + 6e60: 20000210 .long 0x20000210 + 6e64: 2000020c .long 0x2000020c + +Disassembly of section .text.WWDTHandler: + +00006e68 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 6e68: 1460 nie + 6e6a: 1462 ipush + 6e6c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 6e6e: 10ab lrw r5, 0x20000010 // 6e98 + 6e70: 3401 movi r4, 1 + 6e72: 9560 ld.w r3, (r5, 0x0) + 6e74: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 6e76: 30ff movi r0, 255 + 6e78: e3fffbae bsr 0x65d4 // 65d4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 6e7c: 9540 ld.w r2, (r5, 0x0) + 6e7e: 9263 ld.w r3, (r2, 0xc) + 6e80: 68d0 and r3, r4 + 6e82: 3b40 cmpnei r3, 0 + 6e84: 0c02 bf 0x6e88 // 6e88 + { + WWDT->ICR = WWDT_EVI; + 6e86: b285 st.w r4, (r2, 0x14) + } +} + 6e88: d9ee2002 ld.w r15, (r14, 0x8) + 6e8c: 98a1 ld.w r5, (r14, 0x4) + 6e8e: 9880 ld.w r4, (r14, 0x0) + 6e90: 1403 addi r14, r14, 12 + 6e92: 1463 ipop + 6e94: 1461 nir + 6e96: 0000 bkpt + 6e98: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00006e9c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 6e9c: 1460 nie + 6e9e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 6ea0: 107e lrw r3, 0x20000024 // 6f18 + 6ea2: 3101 movi r1, 1 + 6ea4: 9360 ld.w r3, (r3, 0x0) + 6ea6: 237f addi r3, 128 + 6ea8: 9355 ld.w r2, (r3, 0x54) + 6eaa: 6884 and r2, r1 + 6eac: 3a40 cmpnei r2, 0 + 6eae: 0c04 bf 0x6eb6 // 6eb6 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 6eb0: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 6eb2: 1463 ipop + 6eb4: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 6eb6: 9355 ld.w r2, (r3, 0x54) + 6eb8: 3102 movi r1, 2 + 6eba: 6884 and r2, r1 + 6ebc: 3a40 cmpnei r2, 0 + 6ebe: 0bf9 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 6ec0: 9355 ld.w r2, (r3, 0x54) + 6ec2: 3110 movi r1, 16 + 6ec4: 6884 and r2, r1 + 6ec6: 3a40 cmpnei r2, 0 + 6ec8: 0bf4 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 6eca: 9355 ld.w r2, (r3, 0x54) + 6ecc: 3120 movi r1, 32 + 6ece: 6884 and r2, r1 + 6ed0: 3a40 cmpnei r2, 0 + 6ed2: 0bef bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 6ed4: 3280 movi r2, 128 + 6ed6: 9335 ld.w r1, (r3, 0x54) + 6ed8: 4241 lsli r2, r2, 1 + 6eda: 6848 and r1, r2 + 6edc: 3940 cmpnei r1, 0 + 6ede: 0c03 bf 0x6ee4 // 6ee4 + GPT0->ICR = GPT_INT_PEND; + 6ee0: b357 st.w r2, (r3, 0x5c) +} + 6ee2: 07e8 br 0x6eb2 // 6eb2 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 6ee4: 3280 movi r2, 128 + 6ee6: 9335 ld.w r1, (r3, 0x54) + 6ee8: 4242 lsli r2, r2, 2 + 6eea: 6848 and r1, r2 + 6eec: 3940 cmpnei r1, 0 + 6eee: 0bf9 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 6ef0: 3280 movi r2, 128 + 6ef2: 9335 ld.w r1, (r3, 0x54) + 6ef4: 4243 lsli r2, r2, 3 + 6ef6: 6848 and r1, r2 + 6ef8: 3940 cmpnei r1, 0 + 6efa: 0bf3 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 6efc: 3280 movi r2, 128 + 6efe: 9335 ld.w r1, (r3, 0x54) + 6f00: 4244 lsli r2, r2, 4 + 6f02: 6848 and r1, r2 + 6f04: 3940 cmpnei r1, 0 + 6f06: 0bed bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 6f08: 3280 movi r2, 128 + 6f0a: 9335 ld.w r1, (r3, 0x54) + 6f0c: 4249 lsli r2, r2, 9 + 6f0e: 6848 and r1, r2 + 6f10: 3940 cmpnei r1, 0 + 6f12: 0be7 bt 0x6ee0 // 6ee0 + 6f14: 07cf br 0x6eb2 // 6eb2 + 6f16: 0000 bkpt + 6f18: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00006f1c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 6f1c: 1460 nie + 6f1e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 6f20: 1079 lrw r3, 0x20000018 // 6f84 + 6f22: 3101 movi r1, 1 + 6f24: 9360 ld.w r3, (r3, 0x0) + 6f26: 934a ld.w r2, (r3, 0x28) + 6f28: 6884 and r2, r1 + 6f2a: 3a40 cmpnei r2, 0 + 6f2c: 0c14 bf 0x6f54 // 6f54 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 6f2e: 1057 lrw r2, 0xca53 // 6f88 + RTC->ICR=ALRA_INT; + 6f30: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 6f32: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 6f34: 9342 ld.w r2, (r3, 0x8) + 6f36: 6c84 or r2, r1 + 6f38: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 6f3a: 3280 movi r2, 128 + 6f3c: 424d lsli r2, r2, 13 + 6f3e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 6f40: 3102 movi r1, 2 + 6f42: 9342 ld.w r2, (r3, 0x8) + 6f44: 6884 and r2, r1 + 6f46: 3a40 cmpnei r2, 0 + 6f48: 0bfd bt 0x6f42 // 6f42 + RTC->CR &= ~0x1; + 6f4a: 9342 ld.w r2, (r3, 0x8) + 6f4c: 3a80 bclri r2, 0 + 6f4e: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 6f50: 1463 ipop + 6f52: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 6f54: 934a ld.w r2, (r3, 0x28) + 6f56: 3102 movi r1, 2 + 6f58: 6884 and r2, r1 + 6f5a: 3a40 cmpnei r2, 0 + 6f5c: 0c03 bf 0x6f62 // 6f62 + RTC->ICR=RTC_TRGEV1_INT; + 6f5e: b32b st.w r1, (r3, 0x2c) +} + 6f60: 07f8 br 0x6f50 // 6f50 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 6f62: 934a ld.w r2, (r3, 0x28) + 6f64: 3104 movi r1, 4 + 6f66: 6884 and r2, r1 + 6f68: 3a40 cmpnei r2, 0 + 6f6a: 0bfa bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 6f6c: 934a ld.w r2, (r3, 0x28) + 6f6e: 3108 movi r1, 8 + 6f70: 6884 and r2, r1 + 6f72: 3a40 cmpnei r2, 0 + 6f74: 0bf5 bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 6f76: 934a ld.w r2, (r3, 0x28) + 6f78: 3110 movi r1, 16 + 6f7a: 6884 and r2, r1 + 6f7c: 3a40 cmpnei r2, 0 + 6f7e: 0bf0 bt 0x6f5e // 6f5e + 6f80: 07e8 br 0x6f50 // 6f50 + 6f82: 0000 bkpt + 6f84: 20000018 .long 0x20000018 + 6f88: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00006f8c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 6f8c: 1460 nie + 6f8e: 1462 ipush + 6f90: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6f92: 1076 lrw r3, 0x20000040 // 6fe8 + 6f94: 3102 movi r1, 2 + 6f96: 9360 ld.w r3, (r3, 0x0) + 6f98: 9343 ld.w r2, (r3, 0xc) + 6f9a: 6884 and r2, r1 + 6f9c: 3a40 cmpnei r2, 0 + 6f9e: 0c0b bf 0x6fb4 // 6fb4 + { + UART0->ISR=UART_RX_INT_S; + 6fa0: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 6fa2: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 6fa4: 7400 zextb r0, r0 + 6fa6: e0000391 bsr 0x76c8 // 76c8 + } + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } +} + 6faa: d9ee2000 ld.w r15, (r14, 0x0) + 6fae: 1401 addi r14, r14, 4 + 6fb0: 1463 ipop + 6fb2: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 6fb4: 9343 ld.w r2, (r3, 0xc) + 6fb6: 3101 movi r1, 1 + 6fb8: 6884 and r2, r1 + 6fba: 3a40 cmpnei r2, 0 + 6fbc: 0c03 bf 0x6fc2 // 6fc2 + UART0->ISR=UART_TX_IOV_S; + 6fbe: b323 st.w r1, (r3, 0xc) + 6fc0: 07f5 br 0x6faa // 6faa + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 6fc2: 9343 ld.w r2, (r3, 0xc) + 6fc4: 3108 movi r1, 8 + 6fc6: 6884 and r2, r1 + 6fc8: 3a40 cmpnei r2, 0 + 6fca: 0bfa bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 6fcc: 9343 ld.w r2, (r3, 0xc) + 6fce: 3104 movi r1, 4 + 6fd0: 6884 and r2, r1 + 6fd2: 3a40 cmpnei r2, 0 + 6fd4: 0bf5 bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 6fd6: 3280 movi r2, 128 + 6fd8: 9323 ld.w r1, (r3, 0xc) + 6fda: 424c lsli r2, r2, 12 + 6fdc: 6848 and r1, r2 + 6fde: 3940 cmpnei r1, 0 + 6fe0: 0fe5 bf 0x6faa // 6faa + UART0->ISR=UART_TX_DONE_S; + 6fe2: b343 st.w r2, (r3, 0xc) +} + 6fe4: 07e3 br 0x6faa // 6faa + 6fe6: 0000 bkpt + 6fe8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00006fec : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 6fec: 1460 nie + 6fee: 1462 ipush + 6ff0: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6ff2: 107f lrw r3, 0x2000003c // 706c + 6ff4: 3102 movi r1, 2 + 6ff6: 9360 ld.w r3, (r3, 0x0) + 6ff8: 9343 ld.w r2, (r3, 0xc) + 6ffa: 6884 and r2, r1 + 6ffc: 3a40 cmpnei r2, 0 + 6ffe: 0c0b bf 0x7014 // 7014 + { + UART1->ISR=UART_RX_INT_S; + 7000: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 7002: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 7004: 7400 zextb r0, r0 + 7006: e00003ab bsr 0x775c // 775c + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 700a: d9ee2000 ld.w r15, (r14, 0x0) + 700e: 1401 addi r14, r14, 4 + 7010: 1463 ipop + 7012: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 7014: 9323 ld.w r1, (r3, 0xc) + 7016: 3201 movi r2, 1 + 7018: 6848 and r1, r2 + 701a: 3940 cmpnei r1, 0 + 701c: 0c0d bf 0x7036 // 7036 + UART1->ISR=UART_TX_INT_S; + 701e: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 7020: 1074 lrw r3, 0x200000c8 // 7070 + 7022: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7024: 1074 lrw r3, 0x200000cc // 7074 + 7026: 9360 ld.w r3, (r3, 0x0) + 7028: 3b41 cmpnei r3, 1 + 702a: 0bf0 bt 0x700a // 700a + RS485_Comm_Start ++; + 702c: 1053 lrw r2, 0x200000d0 // 7078 + RS485_Comm_End ++; + 702e: 9260 ld.w r3, (r2, 0x0) + 7030: 2300 addi r3, 1 + 7032: b260 st.w r3, (r2, 0x0) +} + 7034: 07eb br 0x700a // 700a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 7036: 9343 ld.w r2, (r3, 0xc) + 7038: 3108 movi r1, 8 + 703a: 6884 and r2, r1 + 703c: 3a40 cmpnei r2, 0 + 703e: 0c03 bf 0x7044 // 7044 + UART1->ISR=UART_TX_IOV_S; + 7040: b323 st.w r1, (r3, 0xc) + 7042: 07e4 br 0x700a // 700a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 7044: 9343 ld.w r2, (r3, 0xc) + 7046: 3104 movi r1, 4 + 7048: 6884 and r2, r1 + 704a: 3a40 cmpnei r2, 0 + 704c: 0bfa bt 0x7040 // 7040 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 704e: 3180 movi r1, 128 + 7050: 9303 ld.w r0, (r3, 0xc) + 7052: 412c lsli r1, r1, 12 + 7054: 6804 and r0, r1 + 7056: 3840 cmpnei r0, 0 + 7058: 0fd9 bf 0x700a // 700a + UART1->ISR=UART_TX_DONE_S; + 705a: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 705c: 1065 lrw r3, 0x200000c8 // 7070 + 705e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7060: 1065 lrw r3, 0x200000cc // 7074 + 7062: 9360 ld.w r3, (r3, 0x0) + 7064: 3b41 cmpnei r3, 1 + 7066: 0bd2 bt 0x700a // 700a + RS485_Comm_End ++; + 7068: 1045 lrw r2, 0x200000d4 // 707c + 706a: 07e2 br 0x702e // 702e + 706c: 2000003c .long 0x2000003c + 7070: 200000c8 .long 0x200000c8 + 7074: 200000cc .long 0x200000cc + 7078: 200000d0 .long 0x200000d0 + 707c: 200000d4 .long 0x200000d4 + +Disassembly of section .text.UART2IntHandler: + +00007080 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 7080: 1460 nie + 7082: 1462 ipush + 7084: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 7086: 1076 lrw r3, 0x20000038 // 70dc + 7088: 3102 movi r1, 2 + 708a: 9360 ld.w r3, (r3, 0x0) + 708c: 9343 ld.w r2, (r3, 0xc) + 708e: 6884 and r2, r1 + 7090: 3a40 cmpnei r2, 0 + 7092: 0c0b bf 0x70a8 // 70a8 + { + UART2->ISR=UART_RX_INT_S; + 7094: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 7096: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 7098: 7400 zextb r0, r0 + 709a: e000037b bsr 0x7790 // 7790 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART2->ISR=UART_TX_DONE_S; + } + +} + 709e: d9ee2000 ld.w r15, (r14, 0x0) + 70a2: 1401 addi r14, r14, 4 + 70a4: 1463 ipop + 70a6: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 70a8: 9343 ld.w r2, (r3, 0xc) + 70aa: 3101 movi r1, 1 + 70ac: 6884 and r2, r1 + 70ae: 3a40 cmpnei r2, 0 + 70b0: 0c03 bf 0x70b6 // 70b6 + UART2->ISR=UART_TX_IOV_S; + 70b2: b323 st.w r1, (r3, 0xc) + 70b4: 07f5 br 0x709e // 709e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 70b6: 9343 ld.w r2, (r3, 0xc) + 70b8: 3108 movi r1, 8 + 70ba: 6884 and r2, r1 + 70bc: 3a40 cmpnei r2, 0 + 70be: 0bfa bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 70c0: 9343 ld.w r2, (r3, 0xc) + 70c2: 3104 movi r1, 4 + 70c4: 6884 and r2, r1 + 70c6: 3a40 cmpnei r2, 0 + 70c8: 0bf5 bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 70ca: 3280 movi r2, 128 + 70cc: 9323 ld.w r1, (r3, 0xc) + 70ce: 424c lsli r2, r2, 12 + 70d0: 6848 and r1, r2 + 70d2: 3940 cmpnei r1, 0 + 70d4: 0fe5 bf 0x709e // 709e + UART2->ISR=UART_TX_DONE_S; + 70d6: b343 st.w r2, (r3, 0xc) +} + 70d8: 07e3 br 0x709e // 709e + 70da: 0000 bkpt + 70dc: 20000038 .long 0x20000038 + +Disassembly of section .text.SPI0IntHandler: + +000070e0 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 70e0: 1460 nie + 70e2: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 70e4: 1178 lrw r3, 0x20000034 // 71c4 + 70e6: 3101 movi r1, 1 + 70e8: 9360 ld.w r3, (r3, 0x0) + 70ea: 9347 ld.w r2, (r3, 0x1c) + 70ec: 6884 and r2, r1 + 70ee: 3a40 cmpnei r2, 0 + 70f0: 0c03 bf 0x70f6 // 70f6 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 70f2: b328 st.w r1, (r3, 0x20) + } + +} + 70f4: 0407 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 70f6: 9347 ld.w r2, (r3, 0x1c) + 70f8: 3002 movi r0, 2 + 70fa: 6880 and r2, r0 + 70fc: 3a40 cmpnei r2, 0 + 70fe: 0c04 bf 0x7106 // 7106 + SPI0->ICR = SPI_RTIM; + 7100: b308 st.w r0, (r3, 0x20) +} + 7102: 1463 ipop + 7104: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 7106: 9347 ld.w r2, (r3, 0x1c) + 7108: 3004 movi r0, 4 + 710a: 6880 and r2, r0 + 710c: 3a40 cmpnei r2, 0 + 710e: 0c55 bf 0x71b8 // 71b8 + SPI0->ICR = SPI_RXIM; + 7110: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 7112: 9302 ld.w r0, (r3, 0x8) + 7114: 32aa movi r2, 170 + 7116: 6482 cmpne r0, r2 + 7118: 083e bt 0x7194 // 7194 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 711a: 3102 movi r1, 2 + 711c: 9343 ld.w r2, (r3, 0xc) + 711e: 6884 and r2, r1 + 7120: 3a40 cmpnei r2, 0 + 7122: 0ffd bf 0x711c // 711c + SPI0->DR = 0x11; + 7124: 3211 movi r2, 17 + 7126: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7128: 3110 movi r1, 16 + 712a: 9343 ld.w r2, (r3, 0xc) + 712c: 6884 and r2, r1 + 712e: 3a40 cmpnei r2, 0 + 7130: 0bfd bt 0x712a // 712a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7132: 3102 movi r1, 2 + 7134: 9343 ld.w r2, (r3, 0xc) + 7136: 6884 and r2, r1 + 7138: 3a40 cmpnei r2, 0 + 713a: 0ffd bf 0x7134 // 7134 + SPI0->DR = 0x12; + 713c: 3212 movi r2, 18 + 713e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7140: 3110 movi r1, 16 + 7142: 9343 ld.w r2, (r3, 0xc) + 7144: 6884 and r2, r1 + 7146: 3a40 cmpnei r2, 0 + 7148: 0bfd bt 0x7142 // 7142 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 714a: 3102 movi r1, 2 + 714c: 9343 ld.w r2, (r3, 0xc) + 714e: 6884 and r2, r1 + 7150: 3a40 cmpnei r2, 0 + 7152: 0ffd bf 0x714c // 714c + SPI0->DR = 0x13; + 7154: 3213 movi r2, 19 + 7156: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7158: 3110 movi r1, 16 + 715a: 9343 ld.w r2, (r3, 0xc) + 715c: 6884 and r2, r1 + 715e: 3a40 cmpnei r2, 0 + 7160: 0bfd bt 0x715a // 715a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7162: 3102 movi r1, 2 + 7164: 9343 ld.w r2, (r3, 0xc) + 7166: 6884 and r2, r1 + 7168: 3a40 cmpnei r2, 0 + 716a: 0ffd bf 0x7164 // 7164 + SPI0->DR = 0x14; + 716c: 3214 movi r2, 20 + 716e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7170: 3110 movi r1, 16 + 7172: 9343 ld.w r2, (r3, 0xc) + 7174: 6884 and r2, r1 + 7176: 3a40 cmpnei r2, 0 + 7178: 0bfd bt 0x7172 // 7172 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 717a: 3102 movi r1, 2 + 717c: 9343 ld.w r2, (r3, 0xc) + 717e: 6884 and r2, r1 + 7180: 3a40 cmpnei r2, 0 + 7182: 0ffd bf 0x717c // 717c + SPI0->DR = 0x15; + 7184: 3215 movi r2, 21 + 7186: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7188: 3110 movi r1, 16 + 718a: 9343 ld.w r2, (r3, 0xc) + 718c: 6884 and r2, r1 + 718e: 3a40 cmpnei r2, 0 + 7190: 0bfd bt 0x718a // 718a + 7192: 07b8 br 0x7102 // 7102 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 7194: 9343 ld.w r2, (r3, 0xc) + 7196: 6884 and r2, r1 + 7198: 3a40 cmpnei r2, 0 + 719a: 0bb4 bt 0x7102 // 7102 + SPI0->DR=0x0; //FIFO=0 + 719c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 719e: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 71a0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71aa: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71ac: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 71ae: 9343 ld.w r2, (r3, 0xc) + 71b0: 6884 and r2, r1 + 71b2: 3a40 cmpnei r2, 0 + 71b4: 0bfd bt 0x71ae // 71ae + 71b6: 07a6 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 71b8: 9347 ld.w r2, (r3, 0x1c) + 71ba: 3108 movi r1, 8 + 71bc: 6884 and r2, r1 + 71be: 3a40 cmpnei r2, 0 + 71c0: 0b99 bt 0x70f2 // 70f2 + 71c2: 07a0 br 0x7102 // 7102 + 71c4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000071c8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 71c8: 1460 nie + 71ca: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 71cc: 1073 lrw r3, 0x2000002c // 7218 + 71ce: 3104 movi r1, 4 + 71d0: 9360 ld.w r3, (r3, 0x0) + 71d2: 9349 ld.w r2, (r3, 0x24) + 71d4: 6884 and r2, r1 + 71d6: 3a40 cmpnei r2, 0 + 71d8: 0c02 bf 0x71dc // 71dc + { + SIO0->ICR=0X04; + 71da: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 71dc: 9349 ld.w r2, (r3, 0x24) + 71de: 3101 movi r1, 1 + 71e0: 6884 and r2, r1 + 71e2: 3a40 cmpnei r2, 0 + 71e4: 0c02 bf 0x71e8 // 71e8 + { + SIO0->ICR=0X01; + 71e6: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 71e8: 9349 ld.w r2, (r3, 0x24) + 71ea: 3102 movi r1, 2 + 71ec: 6884 and r2, r1 + 71ee: 3a40 cmpnei r2, 0 + 71f0: 0c03 bf 0x71f6 // 71f6 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 71f2: b32b st.w r1, (r3, 0x2c) + } +} + 71f4: 0410 br 0x7214 // 7214 + else if(SIO0->MISR&0X08) //RXBUFFULL + 71f6: 9349 ld.w r2, (r3, 0x24) + 71f8: 3108 movi r1, 8 + 71fa: 6884 and r2, r1 + 71fc: 3a40 cmpnei r2, 0 + 71fe: 0bfa bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X010) //BREAK + 7200: 9349 ld.w r2, (r3, 0x24) + 7202: 3110 movi r1, 16 + 7204: 6884 and r2, r1 + 7206: 3a40 cmpnei r2, 0 + 7208: 0bf5 bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X020) //TIMEOUT + 720a: 9349 ld.w r2, (r3, 0x24) + 720c: 3120 movi r1, 32 + 720e: 6884 and r2, r1 + 7210: 3a40 cmpnei r2, 0 + 7212: 0bf0 bt 0x71f2 // 71f2 +} + 7214: 1463 ipop + 7216: 1461 nir + 7218: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +0000721c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 721c: 1460 nie + 721e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 7220: 106a lrw r3, 0x2000005c // 7248 + 7222: 3101 movi r1, 1 + 7224: 9360 ld.w r3, (r3, 0x0) + 7226: 237f addi r3, 128 + 7228: 934c ld.w r2, (r3, 0x30) + 722a: 6884 and r2, r1 + 722c: 3a40 cmpnei r2, 0 + 722e: 0c04 bf 0x7236 // 7236 + { + SYSCON->EXICR = EXI_PIN0; + 7230: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 7232: 1463 ipop + 7234: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 7236: 3280 movi r2, 128 + 7238: 932c ld.w r1, (r3, 0x30) + 723a: 4249 lsli r2, r2, 9 + 723c: 6848 and r1, r2 + 723e: 3940 cmpnei r1, 0 + 7240: 0ff9 bf 0x7232 // 7232 + SYSCON->EXICR = EXI_PIN16; + 7242: b34b st.w r2, (r3, 0x2c) +} + 7244: 07f7 br 0x7232 // 7232 + 7246: 0000 bkpt + 7248: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +0000724c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 724c: 1460 nie + 724e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 7250: 106a lrw r3, 0x2000005c // 7278 + 7252: 3102 movi r1, 2 + 7254: 9360 ld.w r3, (r3, 0x0) + 7256: 237f addi r3, 128 + 7258: 934c ld.w r2, (r3, 0x30) + 725a: 6884 and r2, r1 + 725c: 3a40 cmpnei r2, 0 + 725e: 0c04 bf 0x7266 // 7266 + { + SYSCON->EXICR = EXI_PIN1; + 7260: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 7262: 1463 ipop + 7264: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 7266: 3280 movi r2, 128 + 7268: 932c ld.w r1, (r3, 0x30) + 726a: 424a lsli r2, r2, 10 + 726c: 6848 and r1, r2 + 726e: 3940 cmpnei r1, 0 + 7270: 0ff9 bf 0x7262 // 7262 + SYSCON->EXICR = EXI_PIN17; + 7272: b34b st.w r2, (r3, 0x2c) +} + 7274: 07f7 br 0x7262 // 7262 + 7276: 0000 bkpt + 7278: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +0000727c : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 727c: 1460 nie + 727e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 7280: 1070 lrw r3, 0x2000005c // 72c0 + 7282: 3104 movi r1, 4 + 7284: 9360 ld.w r3, (r3, 0x0) + 7286: 237f addi r3, 128 + 7288: 934c ld.w r2, (r3, 0x30) + 728a: 6884 and r2, r1 + 728c: 3a40 cmpnei r2, 0 + 728e: 0c04 bf 0x7296 // 7296 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 7290: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 7292: 1463 ipop + 7294: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 7296: 934c ld.w r2, (r3, 0x30) + 7298: 3108 movi r1, 8 + 729a: 6884 and r2, r1 + 729c: 3a40 cmpnei r2, 0 + 729e: 0bf9 bt 0x7290 // 7290 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 72a0: 3280 movi r2, 128 + 72a2: 932c ld.w r1, (r3, 0x30) + 72a4: 424b lsli r2, r2, 11 + 72a6: 6848 and r1, r2 + 72a8: 3940 cmpnei r1, 0 + 72aa: 0c03 bf 0x72b0 // 72b0 + SYSCON->EXICR = EXI_PIN19; + 72ac: b34b st.w r2, (r3, 0x2c) +} + 72ae: 07f2 br 0x7292 // 7292 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 72b0: 3280 movi r2, 128 + 72b2: 932c ld.w r1, (r3, 0x30) + 72b4: 424c lsli r2, r2, 12 + 72b6: 6848 and r1, r2 + 72b8: 3940 cmpnei r1, 0 + 72ba: 0bf9 bt 0x72ac // 72ac + 72bc: 07eb br 0x7292 // 7292 + 72be: 0000 bkpt + 72c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000072c4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 72c4: 1460 nie + 72c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 72c8: 1066 lrw r3, 0x2000005c // 72e0 + 72ca: 3110 movi r1, 16 + 72cc: 9360 ld.w r3, (r3, 0x0) + 72ce: 237f addi r3, 128 + 72d0: 934c ld.w r2, (r3, 0x30) + 72d2: 6884 and r2, r1 + 72d4: 3a40 cmpnei r2, 0 + 72d6: 0c02 bf 0x72da // 72da + { + SYSCON->EXICR = EXI_PIN4; + 72d8: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 72da: 1463 ipop + 72dc: 1461 nir + 72de: 0000 bkpt + 72e0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +000072e4 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 72e4: 1460 nie + 72e6: 1462 ipush + 72e8: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 72ea: 1079 lrw r3, 0x2000005c // 734c + 72ec: 3280 movi r2, 128 + 72ee: 9360 ld.w r3, (r3, 0x0) + 72f0: 237f addi r3, 128 + 72f2: 932c ld.w r1, (r3, 0x30) + 72f4: 4243 lsli r2, r2, 3 + 72f6: 6848 and r1, r2 + 72f8: 3940 cmpnei r1, 0 + 72fa: 0c07 bf 0x7308 // 7308 + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 72fc: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 72fe: d9ee2000 ld.w r15, (r14, 0x0) + 7302: 1401 addi r14, r14, 4 + 7304: 1463 ipop + 7306: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 7308: 3280 movi r2, 128 + 730a: 932c ld.w r1, (r3, 0x30) + 730c: 4244 lsli r2, r2, 4 + 730e: 6848 and r1, r2 + 7310: 3940 cmpnei r1, 0 + 7312: 0bf5 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 7314: 3280 movi r2, 128 + 7316: 932c ld.w r1, (r3, 0x30) + 7318: 4245 lsli r2, r2, 5 + 731a: 6848 and r1, r2 + 731c: 3940 cmpnei r1, 0 + 731e: 0bef bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 7320: 3280 movi r2, 128 + 7322: 932c ld.w r1, (r3, 0x30) + 7324: 4246 lsli r2, r2, 6 + 7326: 6848 and r1, r2 + 7328: 3940 cmpnei r1, 0 + 732a: 0be9 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 732c: 3280 movi r2, 128 + 732e: 932c ld.w r1, (r3, 0x30) + 7330: 4247 lsli r2, r2, 7 + 7332: 6848 and r1, r2 + 7334: 3940 cmpnei r1, 0 + 7336: 0be3 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 7338: 3280 movi r2, 128 + 733a: 932c ld.w r1, (r3, 0x30) + 733c: 4248 lsli r2, r2, 8 + 733e: 6848 and r1, r2 + 7340: 3940 cmpnei r1, 0 + 7342: 0fde bf 0x72fe // 72fe + SYSCON->EXICR = EXI_PIN15; + 7344: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 7346: e0000349 bsr 0x79d8 // 79d8 +} + 734a: 07da br 0x72fe // 72fe + 734c: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00007350 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 7350: 1460 nie + 7352: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 7354: 106b lrw r3, 0x20000014 // 7380 + 7356: 3101 movi r1, 1 + 7358: 9360 ld.w r3, (r3, 0x0) + 735a: 934e ld.w r2, (r3, 0x38) + 735c: 6884 and r2, r1 + 735e: 3a40 cmpnei r2, 0 + 7360: 0c03 bf 0x7366 // 7366 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 7362: b330 st.w r1, (r3, 0x40) + } +} + 7364: 040b br 0x737a // 737a + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 7366: 934e ld.w r2, (r3, 0x38) + 7368: 3102 movi r1, 2 + 736a: 6884 and r2, r1 + 736c: 3a40 cmpnei r2, 0 + 736e: 0bfa bt 0x7362 // 7362 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 7370: 934e ld.w r2, (r3, 0x38) + 7372: 3104 movi r1, 4 + 7374: 6884 and r2, r1 + 7376: 3a40 cmpnei r2, 0 + 7378: 0bf5 bt 0x7362 // 7362 +} + 737a: 1463 ipop + 737c: 1461 nir + 737e: 0000 bkpt + 7380: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00007384 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 7384: 1460 nie + 7386: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 7388: 1071 lrw r3, 0x2000000c // 73cc + 738a: 3101 movi r1, 1 + 738c: 9360 ld.w r3, (r3, 0x0) + 738e: 934c ld.w r2, (r3, 0x30) + 7390: 6884 and r2, r1 + 7392: 3a40 cmpnei r2, 0 + 7394: 0c0a bf 0x73a8 // 73a8 + { + BT0->ICR = BT_PEND; + 7396: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 7398: 9341 ld.w r2, (r3, 0x4) + 739a: 3a86 bclri r2, 6 + 739c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 739e: 9340 ld.w r2, (r3, 0x0) + 73a0: 3200 movi r2, 0 + 73a2: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 73a4: 1463 ipop + 73a6: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 73a8: 934c ld.w r2, (r3, 0x30) + 73aa: 3102 movi r1, 2 + 73ac: 6884 and r2, r1 + 73ae: 3a40 cmpnei r2, 0 + 73b0: 0c03 bf 0x73b6 // 73b6 + BT0->ICR = BT_EVTRG; + 73b2: b32d st.w r1, (r3, 0x34) +} + 73b4: 07f8 br 0x73a4 // 73a4 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 73b6: 934c ld.w r2, (r3, 0x30) + 73b8: 3104 movi r1, 4 + 73ba: 6884 and r2, r1 + 73bc: 3a40 cmpnei r2, 0 + 73be: 0bfa bt 0x73b2 // 73b2 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 73c0: 934c ld.w r2, (r3, 0x30) + 73c2: 3108 movi r1, 8 + 73c4: 6884 and r2, r1 + 73c6: 3a40 cmpnei r2, 0 + 73c8: 0bf5 bt 0x73b2 // 73b2 + 73ca: 07ed br 0x73a4 // 73a4 + 73cc: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000073d0 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 73d0: 1460 nie + 73d2: 1462 ipush + 73d4: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 73d6: 1079 lrw r3, 0x20000008 // 7438 + 73d8: 3101 movi r1, 1 + 73da: 9360 ld.w r3, (r3, 0x0) + 73dc: 934c ld.w r2, (r3, 0x30) + 73de: 6884 and r2, r1 + 73e0: 3a40 cmpnei r2, 0 + 73e2: 0c03 bf 0x73e8 // 73e8 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 73e4: b32d st.w r1, (r3, 0x34) + } +} + 73e6: 0418 br 0x7416 // 7416 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 73e8: 934c ld.w r2, (r3, 0x30) + 73ea: 3102 movi r1, 2 + 73ec: 6884 and r2, r1 + 73ee: 3a40 cmpnei r2, 0 + 73f0: 0c18 bf 0x7420 // 7420 + BT1->ICR = BT_CMP; + 73f2: b32d st.w r1, (r3, 0x34) + NUM++; + 73f4: 1072 lrw r3, 0x200000bc // 743c + 73f6: 8340 ld.b r2, (r3, 0x0) + 73f8: 2200 addi r2, 1 + 73fa: 7488 zextb r2, r2 + SysTick_100us++; + 73fc: 9321 ld.w r1, (r3, 0x4) + 73fe: 2100 addi r1, 1 + if(NUM >= 10){ + 7400: 3a09 cmphsi r2, 10 + NUM++; + 7402: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 7404: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 7406: 0c08 bf 0x7416 // 7416 + NUM = 0; + 7408: 3200 movi r2, 0 + 740a: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 740c: 9342 ld.w r2, (r3, 0x8) + 740e: 2200 addi r2, 1 + 7410: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 7412: e00002c3 bsr 0x7998 // 7998 +} + 7416: d9ee2000 ld.w r15, (r14, 0x0) + 741a: 1401 addi r14, r14, 4 + 741c: 1463 ipop + 741e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 7420: 934c ld.w r2, (r3, 0x30) + 7422: 3104 movi r1, 4 + 7424: 6884 and r2, r1 + 7426: 3a40 cmpnei r2, 0 + 7428: 0bde bt 0x73e4 // 73e4 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 742a: 934c ld.w r2, (r3, 0x30) + 742c: 3108 movi r1, 8 + 742e: 6884 and r2, r1 + 7430: 3a40 cmpnei r2, 0 + 7432: 0bd9 bt 0x73e4 // 73e4 + 7434: 07f1 br 0x7416 // 7416 + 7436: 0000 bkpt + 7438: 20000008 .long 0x20000008 + 743c: 200000bc .long 0x200000bc + +Disassembly of section .text.PriviledgeVioHandler: + +00007440 : + 7440: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00007442 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 7442: 1460 nie + 7444: 1462 ipush + // ISR content ... + +} + 7446: 1463 ipop + 7448: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000744a : + 744a: 1460 nie + 744c: 1462 ipush + 744e: 1463 ipop + 7450: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00007452 : + 7452: 1460 nie + 7454: 1462 ipush + 7456: 1463 ipop + 7458: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000745a : + 745a: 1460 nie + 745c: 1462 ipush + 745e: 1463 ipop + 7460: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00007462 : + 7462: 1460 nie + 7464: 1462 ipush + 7466: 1463 ipop + 7468: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000746a : + 746a: 1460 nie + 746c: 1462 ipush + 746e: 1463 ipop + 7470: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00007472 : + 7472: 1460 nie + 7474: 1462 ipush + 7476: 1463 ipop + 7478: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +0000747a : + 747a: 1460 nie + 747c: 1462 ipush + 747e: 1463 ipop + 7480: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00007482 : + 7482: 1460 nie + 7484: 1462 ipush + 7486: 1463 ipop + 7488: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +0000748a : + 748a: 1460 nie + 748c: 1462 ipush + 748e: 1463 ipop + 7490: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00007492 : + 7492: 1460 nie + 7494: 1462 ipush + 7496: 1463 ipop + 7498: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000749a : + 749a: 1460 nie + 749c: 1462 ipush + 749e: 1463 ipop + 74a0: 1461 nir + +Disassembly of section .text.__divsi3: + +000074a4 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 74a4: 14c1 push r4 + int PSR; + __asm volatile( + 74a6: c0006023 mfcr r3, cr<0, 0> + 74aa: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74ae: 1046 lrw r2, 0x20000000 // 74c4 <__divsi3+0x20> + 74b0: 3400 movi r4, 0 + 74b2: 9240 ld.w r2, (r2, 0x0) + 74b4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74b6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74b8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74ba: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74bc: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74c0: 9202 ld.w r0, (r2, 0x8) +} + 74c2: 1481 pop r4 + 74c4: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000074c8 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 74c8: 14c1 push r4 + int PSR; + __asm volatile( + 74ca: c0006023 mfcr r3, cr<0, 0> + 74ce: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 74d2: 1046 lrw r2, 0x20000000 // 74e8 <__udivsi3+0x20> + 74d4: 3401 movi r4, 1 + 74d6: 9240 ld.w r2, (r2, 0x0) + 74d8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74da: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74dc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74de: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74e0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74e4: 9202 ld.w r0, (r2, 0x8) +} + 74e6: 1481 pop r4 + 74e8: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +000074ec <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 74ec: 14c1 push r4 + int PSR; + __asm volatile( + 74ee: c0006023 mfcr r3, cr<0, 0> + 74f2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74f6: 1046 lrw r2, 0x20000000 // 750c <__modsi3+0x20> + 74f8: 3400 movi r4, 0 + 74fa: 9240 ld.w r2, (r2, 0x0) + 74fc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74fe: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7500: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7502: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7504: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 7508: 9203 ld.w r0, (r2, 0xc) +} + 750a: 1481 pop r4 + 750c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00007510 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 7510: 14c1 push r4 + int PSR; + __asm volatile( + 7512: c0006023 mfcr r3, cr<0, 0> + 7516: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 751a: 1046 lrw r2, 0x20000000 // 7530 <__umodsi3+0x20> + 751c: 3401 movi r4, 1 + 751e: 9240 ld.w r2, (r2, 0x0) + 7520: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 7522: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7524: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7526: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7528: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 752c: 9203 ld.w r0, (r2, 0xc) +} + 752e: 1481 pop r4 + 7530: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00007534 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 7534: c1807420 psrset ee, ie +} + 7538: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000753a : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 753a: c0807020 psrclr ie +} + 753e: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00007540 : +UART_t g_uart; +UART_t g_uart1; +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7540: 14d2 push r4-r5, r15 + switch((U8_T)uart_id){ + 7542: 7400 zextb r0, r0 + 7544: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7546: 6d47 mov r5, r1 + switch((U8_T)uart_id){ + 7548: 0c1f bf 0x7586 // 7586 + 754a: 3840 cmpnei r0, 0 + 754c: 0c04 bf 0x7554 // 7554 + 754e: 3842 cmpnei r0, 2 + 7550: 0c8c bf 0x7668 // 7668 + g_uart.RecvTimeout = Recv_9600_TimeOut; + g_uart.processing_cf = prt_cf; + + break; + } +} + 7552: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 7554: e3fff896 bsr 0x6680 // 6680 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 7558: 3100 movi r1, 0 + 755a: 3000 movi r0, 0 + 755c: e3fff8e0 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART0,5000,UART_PAR_EVEN); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 7560: 126d lrw r3, 0x20000040 // 7694 + 7562: 3280 movi r2, 128 + 7564: 9300 ld.w r0, (r3, 0x0) + 7566: 4243 lsli r2, r2, 3 + 7568: 122c lrw r1, 0x1388 // 7698 + 756a: e3fff94f bsr 0x6808 // 6808 + UART0_Int_Enable(); + 756e: e3fff8ad bsr 0x66c8 // 66c8 + memset(&g_uart0,0,sizeof(UART_t)); + 7572: 3294 movi r2, 148 + 7574: 3100 movi r1, 0 + 7576: 120a lrw r0, 0x200002d0 // 769c + 7578: e3ffe9f0 bsr 0x4958 // 4958 <__memset_fast> + g_uart0.RecvTimeout = Recv_9600_TimeOut; + 757c: 1269 lrw r3, 0x20000350 // 76a0 + g_uart.RecvTimeout = Recv_9600_TimeOut; + 757e: 3203 movi r2, 3 + 7580: b342 st.w r2, (r3, 0x8) + g_uart.processing_cf = prt_cf; + 7582: b3a4 st.w r5, (r3, 0x10) +} + 7584: 07e7 br 0x7552 // 7552 + memset(&m_send,0,sizeof(MULIT_t)); + 7586: 1288 lrw r4, 0x200003f8 // 76a4 + memset(&g_uart1,0,sizeof(UART_t)); + 7588: 3294 movi r2, 148 + 758a: 3100 movi r1, 0 + 758c: 1207 lrw r0, 0x20000364 // 76a8 + 758e: e3ffe9e5 bsr 0x4958 // 4958 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 7592: 3288 movi r2, 136 + 7594: 3100 movi r1, 0 + 7596: 6c13 mov r0, r4 + 7598: e3ffe9e0 bsr 0x4958 // 4958 <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 759c: 1264 lrw r3, 0x200003e4 // 76ac + 759e: 3203 movi r2, 3 + 75a0: b342 st.w r2, (r3, 0x8) + g_uart1.processing_cf = prt_cf; + 75a2: b3a4 st.w r5, (r3, 0x10) + m_send.HighBit_Flag = 0x01; + 75a4: 245f addi r4, 96 + m_send.BusState_Tick = SysTick_1ms; + 75a6: 1263 lrw r3, 0x200000c4 // 76b0 + GPIO_PullHigh_Init(GPIOA0,15); + 75a8: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 75aa: 9360 ld.w r3, (r3, 0x0) + 75ac: b467 st.w r3, (r4, 0x1c) + m_send.HighBit_Flag = 0x01; + 75ae: 3301 movi r3, 1 + 75b0: a465 st.b r3, (r4, 0x5) + GPIO_PullHigh_Init(GPIOA0,15); + 75b2: 1281 lrw r4, 0x2000004c // 76b4 + 75b4: 9400 ld.w r0, (r4, 0x0) + 75b6: e3fff6d3 bsr 0x635c // 635c + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 75ba: 320f movi r2, 15 + 75bc: 310f movi r1, 15 + 75be: 3000 movi r0, 0 + 75c0: e3fff6e0 bsr 0x6380 // 6380 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 75c4: 300f movi r0, 15 + 75c6: e3fff763 bsr 0x648c // 648c + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 75ca: 3180 movi r1, 128 + 75cc: 3201 movi r2, 1 + 75ce: 4128 lsli r1, r1, 8 + 75d0: 3001 movi r0, 1 + 75d2: e3fff59f bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 75d6: 3180 movi r1, 128 + 75d8: 3200 movi r2, 0 + 75da: 4128 lsli r1, r1, 8 + 75dc: 3001 movi r0, 1 + 75de: e3fff599 bsr 0x6110 // 6110 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 75e2: 3180 movi r1, 128 + 75e4: 4128 lsli r1, r1, 8 + 75e6: 3001 movi r0, 1 + 75e8: e3fff5b4 bsr 0x6150 // 6150 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 75ec: 3180 movi r1, 128 + 75ee: 9400 ld.w r0, (r4, 0x0) + 75f0: 4128 lsli r1, r1, 8 + 75f2: e3fff5c9 bsr 0x6184 // 6184 + EXI4_Int_Enable(); + 75f6: e3fff5c9 bsr 0x6188 // 6188 + UART1_DeInit(); //clear all UART Register + 75fa: e3fff84f bsr 0x6698 // 6698 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 75fe: 3102 movi r1, 2 + 7600: 3001 movi r0, 1 + 7602: e3fff88d bsr 0x671c // 671c + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 7606: 116d lrw r3, 0x2000003c // 76b8 + 7608: 3200 movi r2, 0 + 760a: 9300 ld.w r0, (r3, 0x0) + 760c: 1123 lrw r1, 0x1388 // 7698 + 760e: e3fff8fd bsr 0x6808 // 6808 + UART1_Int_Enable(); + 7612: e3fff869 bsr 0x66e4 // 66e4 + GPIO_Init(GPIOA0,LED_HLW_PIN,Output); + 7616: 9400 ld.w r0, (r4, 0x0) + 7618: 3200 movi r2, 0 + 761a: 310b movi r1, 11 + 761c: e3fff630 bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_BUS_PIN,Output); + 7620: 9400 ld.w r0, (r4, 0x0) + 7622: 3200 movi r2, 0 + 7624: 310c movi r1, 12 + 7626: e3fff62b bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_STATUS_PIN,Output); + 762a: 3200 movi r2, 0 + 762c: 9400 ld.w r0, (r4, 0x0) + 762e: 310d movi r1, 13 + 7630: e3fff626 bsr 0x627c // 627c + HLW_LED_ON; + 7634: 9400 ld.w r0, (r4, 0x0) + 7636: 310b movi r1, 11 + 7638: e3fff7ac bsr 0x6590 // 6590 + BUS_LED_ON; + 763c: 9400 ld.w r0, (r4, 0x0) + 763e: 310c movi r1, 12 + 7640: e3fff7a8 bsr 0x6590 // 6590 + STATUS_LED_ON; + 7644: 9400 ld.w r0, (r4, 0x0) + 7646: 310d movi r1, 13 + 7648: e3fff7a4 bsr 0x6590 // 6590 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 764c: 3200 movi r2, 0 + 764e: 9400 ld.w r0, (r4, 0x0) + 7650: 3107 movi r1, 7 + 7652: e3fff615 bsr 0x627c // 627c + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 7656: 9400 ld.w r0, (r4, 0x0) + 7658: 3107 movi r1, 7 + 765a: e3fff68b bsr 0x6370 // 6370 + WRITE_LOW_DR; + 765e: 9400 ld.w r0, (r4, 0x0) + 7660: 3107 movi r1, 7 + 7662: e3fff797 bsr 0x6590 // 6590 + break; + 7666: 0776 br 0x7552 // 7552 + UART2_DeInit(); //clear all UART Register + 7668: e3fff824 bsr 0x66b0 // 66b0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 766c: 3102 movi r1, 2 + 766e: 3002 movi r0, 2 + 7670: e3fff856 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled , + 7674: 1072 lrw r3, 0x20000038 // 76bc + 7676: 3200 movi r2, 0 + 7678: 9300 ld.w r0, (r3, 0x0) + 767a: 1028 lrw r1, 0x1388 // 7698 + 767c: e3fff8c6 bsr 0x6808 // 6808 + UART2_Int_Enable(); + 7680: e3fff840 bsr 0x6700 // 6700 + memset(&g_uart,0,sizeof(UART_t)); + 7684: 3294 movi r2, 148 + 7686: 3100 movi r1, 0 + 7688: 100e lrw r0, 0x2000023c // 76c0 + 768a: e3ffe967 bsr 0x4958 // 4958 <__memset_fast> + g_uart.RecvTimeout = Recv_9600_TimeOut; + 768e: 106e lrw r3, 0x200002bc // 76c4 + 7690: 0777 br 0x757e // 757e + 7692: 0000 bkpt + 7694: 20000040 .long 0x20000040 + 7698: 00001388 .long 0x00001388 + 769c: 200002d0 .long 0x200002d0 + 76a0: 20000350 .long 0x20000350 + 76a4: 200003f8 .long 0x200003f8 + 76a8: 20000364 .long 0x20000364 + 76ac: 200003e4 .long 0x200003e4 + 76b0: 200000c4 .long 0x200000c4 + 76b4: 2000004c .long 0x2000004c + 76b8: 2000003c .long 0x2000003c + 76bc: 20000038 .long 0x20000038 + 76c0: 2000023c .long 0x2000023c + 76c4: 200002bc .long 0x200002bc + +Disassembly of section .text.UART0_RecvINT_Processing: + +000076c8 : +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + if((g_uart0.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart0.RecvLen = 0; + 76c8: 106a lrw r3, 0x20000350 // 76f0 + 76ca: 8b22 ld.h r1, (r3, 0x4) + 76cc: 323e movi r2, 62 + 76ce: 6449 cmplt r2, r1 + 76d0: 0c03 bf 0x76d6 // 76d6 + 76d2: 3200 movi r2, 0 + 76d4: ab42 st.h r2, (r3, 0x4) + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + 76d6: 8b42 ld.h r2, (r3, 0x4) + 76d8: 5a22 addi r1, r2, 1 + 76da: ab22 st.h r1, (r3, 0x4) + 76dc: 1026 lrw r1, 0x200002d0 // 76f4 + 76de: 6084 addu r2, r1 + 76e0: a200 st.b r0, (r2, 0x0) + + g_uart0.RecvIdleTiming = SysTick_1ms; + 76e2: 1046 lrw r2, 0x200000c4 // 76f8 + 76e4: 9240 ld.w r2, (r2, 0x0) + 76e6: b343 st.w r2, (r3, 0xc) + g_uart0.Receiving = 0x01; + 76e8: 3201 movi r2, 1 + 76ea: a340 st.b r2, (r3, 0x0) +} + 76ec: 783c jmp r15 + 76ee: 0000 bkpt + 76f0: 20000350 .long 0x20000350 + 76f4: 200002d0 .long 0x200002d0 + 76f8: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART0_TASK: + +000076fc : + +void UART0_TASK(void){ + 76fc: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart0.Receiving == 0x01){ + 76fe: 1094 lrw r4, 0x20000350 // 774c + 7700: 8460 ld.b r3, (r4, 0x0) + 7702: 3b41 cmpnei r3, 1 + 7704: 0823 bt 0x774a // 774a + if(SysTick_1ms - g_uart0.RecvIdleTiming > g_uart0.RecvTimeout){ + 7706: 10b3 lrw r5, 0x200000c4 // 7750 + 7708: 9560 ld.w r3, (r5, 0x0) + 770a: 9443 ld.w r2, (r4, 0xc) + 770c: 60ca subu r3, r2 + 770e: 9442 ld.w r2, (r4, 0x8) + 7710: 64c8 cmphs r2, r3 + 7712: 081c bt 0x774a // 774a + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7714: e3fff548 bsr 0x61a4 // 61a4 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7718: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 771a: 8c42 ld.h r2, (r4, 0x4) + 771c: 102e lrw r1, 0x200002d0 // 7754 + 771e: 100f lrw r0, 0x20000310 // 7758 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7720: b463 st.w r3, (r4, 0xc) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 7722: e3ffe95f bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart0.DealLen = g_uart0.RecvLen; + 7726: 8c62 ld.h r3, (r4, 0x4) + 7728: ac61 st.h r3, (r4, 0x2) + g_uart0.RecvLen = 0; + 772a: 3300 movi r3, 0 + 772c: ac62 st.h r3, (r4, 0x4) + g_uart0.Receiving = 0; + 772e: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7730: e3fff534 bsr 0x6198 // 6198 + +#if DBG_LOG_EN + //Dbg_Println(DBG_BIT_SYS_STATUS, "UART0 revLen %d", g_uart0.DealLen); + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART0 buff",g_uart0.DealBuffer,g_uart0.DealLen); +#endif + if(g_uart0.processing_cf != NULL){ + 7734: 9464 ld.w r3, (r4, 0x10) + 7736: 3b40 cmpnei r3, 0 + 7738: 0c04 bf 0x7740 // 7740 + rev = g_uart0.processing_cf(g_uart0.DealBuffer,g_uart0.DealLen); + 773a: 8c21 ld.h r1, (r4, 0x2) + 773c: 1007 lrw r0, 0x20000310 // 7758 + 773e: 7bcd jsr r3 + } + + memset(g_uart0.DealBuffer,0,USART_BUFFER_SIZE); + 7740: 3240 movi r2, 64 + 7742: 3100 movi r1, 0 + 7744: 1005 lrw r0, 0x20000310 // 7758 + 7746: e3ffe909 bsr 0x4958 // 4958 <__memset_fast> + } + } +} + 774a: 1492 pop r4-r5, r15 + 774c: 20000350 .long 0x20000350 + 7750: 200000c4 .long 0x200000c4 + 7754: 200002d0 .long 0x200002d0 + 7758: 20000310 .long 0x20000310 + +Disassembly of section .text.UART1_RecvINT_Processing: + +0000775c : +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 775c: 106a lrw r3, 0x200003e4 // 7784 + 775e: 8b22 ld.h r1, (r3, 0x4) + 7760: 323e movi r2, 62 + 7762: 6449 cmplt r2, r1 + 7764: 0c03 bf 0x776a // 776a + 7766: 3200 movi r2, 0 + 7768: ab42 st.h r2, (r3, 0x4) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 776a: 8b42 ld.h r2, (r3, 0x4) + 776c: 5a22 addi r1, r2, 1 + 776e: ab22 st.h r1, (r3, 0x4) + 7770: 1026 lrw r1, 0x20000364 // 7788 + 7772: 6084 addu r2, r1 + 7774: a200 st.b r0, (r2, 0x0) + + g_uart1.RecvIdleTiming = SysTick_1ms; + 7776: 1046 lrw r2, 0x200000c4 // 778c + 7778: 9240 ld.w r2, (r2, 0x0) + 777a: b343 st.w r2, (r3, 0xc) + g_uart1.Receiving = 0x01; + 777c: 3201 movi r2, 1 + 777e: a340 st.b r2, (r3, 0x0) + +} + 7780: 783c jmp r15 + 7782: 0000 bkpt + 7784: 200003e4 .long 0x200003e4 + 7788: 20000364 .long 0x20000364 + 778c: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00007790 : +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 7790: 106a lrw r3, 0x200002bc // 77b8 + 7792: 8b22 ld.h r1, (r3, 0x4) + 7794: 323e movi r2, 62 + 7796: 6449 cmplt r2, r1 + 7798: 0c03 bf 0x779e // 779e + 779a: 3200 movi r2, 0 + 779c: ab42 st.h r2, (r3, 0x4) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 779e: 8b42 ld.h r2, (r3, 0x4) + 77a0: 5a22 addi r1, r2, 1 + 77a2: ab22 st.h r1, (r3, 0x4) + 77a4: 1026 lrw r1, 0x2000023c // 77bc + 77a6: 6084 addu r2, r1 + 77a8: a200 st.b r0, (r2, 0x0) + + g_uart.RecvIdleTiming = SysTick_1ms; + 77aa: 1046 lrw r2, 0x200000c4 // 77c0 + 77ac: 9240 ld.w r2, (r2, 0x0) + 77ae: b343 st.w r2, (r3, 0xc) + g_uart.Receiving = 0x01; + 77b0: 3201 movi r2, 1 + 77b2: a340 st.b r2, (r3, 0x0) +} + 77b4: 783c jmp r15 + 77b6: 0000 bkpt + 77b8: 200002bc .long 0x200002bc + 77bc: 2000023c .long 0x2000023c + 77c0: 200000c4 .long 0x200000c4 + +Disassembly of section .text.MCU485_SendData: + +000077c4 : + }while(Dataval == 0x00); //发送完成 + uart->ISR=UART_TX_DONE_S; +} + +volatile int RS485_Comm_Flag = 0,RS485_Comm_Start = 0,RS485_Comm_End = 0,RS485_Comming = 0; +void MCU485_SendData(U8_T *buff,U16_T len){ + 77c4: 14d4 push r4-r7, r15 + 77c6: 1421 subi r14, r14, 4 + 77c8: b800 st.w r0, (r14, 0x0) + 77ca: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 77cc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 77ce: 109f lrw r4, 0x200000c8 // 7848 + 77d0: 10df lrw r6, 0x2000004c // 784c + 77d2: 9460 ld.w r3, (r4, 0x0) + 77d4: 3b41 cmpnei r3, 1 + 77d6: 0c2d bf 0x7830 // 7830 + } + + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + } + + CK_CPU_DisAllNormalIrq(); + 77d8: e3fffeb1 bsr 0x753a // 753a + + WRITE_HIGH_DR; //GPIO_Write_High(GPIOA0,7); + 77dc: 3107 movi r1, 7 + 77de: 9600 ld.w r0, (r6, 0x0) + 77e0: e3fff6d4 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 77e4: 3301 movi r3, 1 + 77e6: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 77e8: 3300 movi r3, 0 + 77ea: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 77ec: b463 st.w r3, (r4, 0xc) + CK_CPU_EnAllNormalIrq(); + 77ee: e3fffea3 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 77f2: 1078 lrw r3, 0x2000003c // 7850 + 77f4: 6c9f mov r2, r7 + 77f6: 9300 ld.w r0, (r3, 0x0) + 77f8: 9820 ld.w r1, (r14, 0x0) + 77fa: e3fff80f bsr 0x6818 // 6818 + + do{ + delay_nus(100); + 77fe: 3064 movi r0, 100 + 7800: e3fff8ce bsr 0x699c // 699c + + delay_cnt ++; + 7804: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7806: 3363 movi r3, 99 + 7808: 654c cmphs r3, r5 + 780a: 0c07 bf 0x7818 // 7818 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 780c: 9462 ld.w r3, (r4, 0x8) + 780e: 65cd cmplt r3, r7 + 7810: 0bf7 bt 0x77fe // 77fe + 7812: 9463 ld.w r3, (r4, 0xc) + 7814: 65cd cmplt r3, r7 + 7816: 0bf4 bt 0x77fe // 77fe + + CK_CPU_DisAllNormalIrq(); + 7818: e3fffe91 bsr 0x753a // 753a + WRITE_LOW_DR; //GPIO_Write_Low(GPIOA0,7); + 781c: 9600 ld.w r0, (r6, 0x0) + 781e: 3107 movi r1, 7 + 7820: e3fff6b8 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 7824: 3300 movi r3, 0 + 7826: b461 st.w r3, (r4, 0x4) + CK_CPU_EnAllNormalIrq(); + 7828: e3fffe86 bsr 0x7534 // 7534 +} + 782c: 1401 addi r14, r14, 4 + 782e: 1494 pop r4-r7, r15 + delay_nus(100); + 7830: 3064 movi r0, 100 + 7832: e3fff8b5 bsr 0x699c // 699c + delay_cnt ++; + 7836: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7838: 3364 movi r3, 100 + 783a: 64d6 cmpne r5, r3 + 783c: 0fce bf 0x77d8 // 77d8 + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + 783e: 3107 movi r1, 7 + 7840: 9600 ld.w r0, (r6, 0x0) + 7842: e3fff6ab bsr 0x6598 // 6598 + 7846: 07c6 br 0x77d2 // 77d2 + 7848: 200000c8 .long 0x200000c8 + 784c: 2000004c .long 0x2000004c + 7850: 2000003c .long 0x2000003c + +Disassembly of section .text.BUS485_Send: + +00007854 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 7854: 14d4 push r4-r7, r15 + 7856: 1423 subi r14, r14, 12 + 7858: b802 st.w r0, (r14, 0x8) + 785a: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 785c: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 785e: 1189 lrw r4, 0x200000c8 // 7900 + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 7860: 11c9 lrw r6, 0x2000004c // 7904 + while(RS485_Comming == 0x01){ + 7862: 9460 ld.w r3, (r4, 0x0) + 7864: 3b41 cmpnei r3, 1 + 7866: 0c3e bf 0x78e2 // 78e2 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 7868: 1168 lrw r3, 0x20000458 // 7908 + 786a: 83c4 ld.b r6, (r3, 0x4) + 786c: 3e40 cmpnei r6, 0 + 786e: b861 st.w r3, (r14, 0x4) + 7870: 0845 bt 0x78fa // 78fa + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //485_DR + 7872: 11e5 lrw r7, 0x2000004c // 7904 + CK_CPU_DisAllNormalIrq(); + 7874: e3fffe63 bsr 0x753a // 753a + WRITE_HIGH_DR; //485_DR + 7878: 3107 movi r1, 7 + 787a: 9700 ld.w r0, (r7, 0x0) + 787c: e3fff686 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 7880: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7882: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 7884: b441 st.w r2, (r4, 0x4) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7886: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 7888: b4c2 st.w r6, (r4, 0x8) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 788a: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 788c: b4c3 st.w r6, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 788e: e3fffe53 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 7892: 105f lrw r2, 0x2000003c // 790c + 7894: 9200 ld.w r0, (r2, 0x0) + 7896: 9822 ld.w r1, (r14, 0x8) + 7898: 9840 ld.w r2, (r14, 0x0) + 789a: e3fff7bf bsr 0x6818 // 6818 + do{ + delay_nus(100); + 789e: 3064 movi r0, 100 + 78a0: e3fff87e bsr 0x699c // 699c + delay_cnt ++; + 78a4: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78a6: 3363 movi r3, 99 + 78a8: 654c cmphs r3, r5 + 78aa: 0c08 bf 0x78ba // 78ba + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 78ac: 9462 ld.w r3, (r4, 0x8) + 78ae: 9840 ld.w r2, (r14, 0x0) + 78b0: 648d cmplt r3, r2 + 78b2: 0bf6 bt 0x789e // 789e + 78b4: 9463 ld.w r3, (r4, 0xc) + 78b6: 648d cmplt r3, r2 + 78b8: 0bf3 bt 0x789e // 789e + + CK_CPU_DisAllNormalIrq(); + 78ba: e3fffe40 bsr 0x753a // 753a + + WRITE_LOW_DR; //485_DR + 78be: 9700 ld.w r0, (r7, 0x0) + 78c0: 3107 movi r1, 7 + 78c2: e3fff667 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 78c6: 3300 movi r3, 0 + 78c8: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 78ca: 1072 lrw r3, 0x200000c4 // 7910 + 78cc: 9340 ld.w r2, (r3, 0x0) + 78ce: 1072 lrw r3, 0x200003f8 // 7914 + 78d0: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 78d2: 9861 ld.w r3, (r14, 0x4) + 78d4: 3200 movi r2, 0 + 78d6: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 78d8: e3fffe2e bsr 0x7534 // 7534 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 78dc: 6c1b mov r0, r6 + 78de: 1403 addi r14, r14, 12 + 78e0: 1494 pop r4-r7, r15 + delay_nus(100); + 78e2: 3064 movi r0, 100 + 78e4: e3fff85c bsr 0x699c // 699c + delay_cnt ++; + 78e8: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78ea: 3364 movi r3, 100 + 78ec: 64d6 cmpne r5, r3 + 78ee: 0fbd bf 0x7868 // 7868 + REVERISE_DR; //485_DR + 78f0: 3107 movi r1, 7 + 78f2: 9600 ld.w r0, (r6, 0x0) + 78f4: e3fff652 bsr 0x6598 // 6598 + 78f8: 07b5 br 0x7862 // 7862 + return UART_BUSBUSY; //发送失败 + 78fa: 3601 movi r6, 1 + 78fc: 07f0 br 0x78dc // 78dc + 78fe: 0000 bkpt + 7900: 200000c8 .long 0x200000c8 + 7904: 2000004c .long 0x2000004c + 7908: 20000458 .long 0x20000458 + 790c: 2000003c .long 0x2000003c + 7910: 200000c4 .long 0x200000c4 + 7914: 200003f8 .long 0x200003f8 + +Disassembly of section .text.Set_GroupSend: + +00007918 : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 7918: 14d4 push r4-r7, r15 + 791a: 1422 subi r14, r14, 8 + 791c: 6d8b mov r6, r2 + 791e: 9847 ld.w r2, (r14, 0x1c) + 7920: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7922: 5943 subi r2, r1, 1 +{ + 7924: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7926: 7489 zexth r2, r2 + 7928: 3163 movi r1, 99 + 792a: 6484 cmphs r1, r2 +{ + 792c: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 792e: 0c20 bf 0x796e // 796e + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 7930: 1091 lrw r4, 0x200003f8 // 7974 + 7932: 3264 movi r2, 100 + 7934: 3100 movi r1, 0 + 7936: 6c13 mov r0, r4 + 7938: b861 st.w r3, (r14, 0x4) + 793a: e3ffe80f bsr 0x4958 // 4958 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 793e: 6c97 mov r2, r5 + 7940: 6c13 mov r0, r4 + 7942: 6c5f mov r1, r7 + 7944: e3ffe84e bsr 0x49e0 // 49e0 <__memcpy_fast> + m_send.SendLen = sled; + 7948: 3240 movi r2, 64 + 794a: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 794c: 9861 ld.w r3, (r14, 0x4) + 794e: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 7950: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 7952: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7954: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 7956: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7958: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 795a: 3201 movi r2, 1 + 795c: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 795e: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 7960: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 7962: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 7964: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 7966: 247f addi r4, 128 + 7968: 1064 lrw r3, 0x200000c4 // 7978 + 796a: 9360 ld.w r3, (r3, 0x0) + 796c: b461 st.w r3, (r4, 0x4) +} + 796e: 1402 addi r14, r14, 8 + 7970: 1494 pop r4-r7, r15 + 7972: 0000 bkpt + 7974: 200003f8 .long 0x200003f8 + 7978: 200000c4 .long 0x200000c4 + +Disassembly of section .text.Clear_SendFlag: + +0000797c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 797c: 1063 lrw r3, 0x20000458 // 7988 + 797e: 3200 movi r2, 0 + 7980: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 7982: a347 st.b r2, (r3, 0x7) +} + 7984: 783c jmp r15 + 7986: 0000 bkpt + 7988: 20000458 .long 0x20000458 + +Disassembly of section .text.BUS485_Jump_Boot: + +0000798c : + +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 798c: 1062 lrw r3, 0x20000458 // 7994 + 798e: a30c st.b r0, (r3, 0xc) +} + 7990: 783c jmp r15 + 7992: 0000 bkpt + 7994: 20000458 .long 0x20000458 + +Disassembly of section .text.BusIdle_Task: + +00007998 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 7998: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 799a: 10ae lrw r5, 0x200003f8 // 79d0 + 799c: 3460 movi r4, 96 + 799e: 6114 addu r4, r5 + 79a0: 8464 ld.b r3, (r4, 0x4) + 79a2: 3b40 cmpnei r3, 0 + 79a4: 0c15 bf 0x79ce // 79ce + 79a6: 8466 ld.b r3, (r4, 0x6) + 79a8: 3b41 cmpnei r3, 1 + 79aa: 0c12 bf 0x79ce // 79ce + { + CK_CPU_DisAllNormalIrq(); + 79ac: e3fffdc7 bsr 0x753a // 753a + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 79b0: 8465 ld.b r3, (r4, 0x5) + 79b2: 3b41 cmpnei r3, 1 + 79b4: 080b bt 0x79ca // 79ca + 79b6: 1068 lrw r3, 0x200000c4 // 79d4 + 79b8: 9340 ld.w r2, (r3, 0x0) + 79ba: 957f ld.w r3, (r5, 0x7c) + 79bc: 608e subu r2, r3 + 79be: 957c ld.w r3, (r5, 0x70) + 79c0: 2305 addi r3, 6 + 79c2: 64c8 cmphs r2, r3 + 79c4: 0c03 bf 0x79ca // 79ca + { + m_send.BusState_Flag = UART_BUSIDLE; + 79c6: 3300 movi r3, 0 + 79c8: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 79ca: e3fffdb5 bsr 0x7534 // 7534 + } +} + 79ce: 1492 pop r4-r5, r15 + 79d0: 200003f8 .long 0x200003f8 + 79d4: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BusBusy_Task: + +000079d8 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 79d8: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 79da: 1094 lrw r4, 0x200003f8 // 7a28 + 79dc: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 79de: e3fffdae bsr 0x753a // 753a + m_send.BusState_Flag = UART_BUSBUSY; + 79e2: 6150 addu r5, r4 + 79e4: 3301 movi r3, 1 + 79e6: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79e8: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 79ea: 1071 lrw r3, 0x200000c4 // 7a2c + 79ec: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79ee: 9300 ld.w r0, (r3, 0x0) + 79f0: 3380 movi r3, 128 + 79f2: 60d0 addu r3, r4 + 79f4: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 79f6: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79f8: 600e subu r0, r3 + 79fa: e3fffd8b bsr 0x7510 // 7510 <__umodsi3> + 79fe: b41c st.w r0, (r4, 0x70) + + if(READ_RX_LEVEL_STATE == 0x01){ + 7a00: 310f movi r1, 15 + 7a02: 108c lrw r4, 0x2000004c // 7a30 + 7a04: 9400 ld.w r0, (r4, 0x0) + 7a06: e3fff5d4 bsr 0x65ae // 65ae + 7a0a: 3841 cmpnei r0, 1 + 7a0c: 0806 bt 0x7a18 // 7a18 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 7a0e: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 7a10: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 7a12: e3fffd91 bsr 0x7534 // 7534 +} + 7a16: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 7a18: 9400 ld.w r0, (r4, 0x0) + 7a1a: 310f movi r1, 15 + 7a1c: e3fff5c9 bsr 0x65ae // 65ae + 7a20: 3840 cmpnei r0, 0 + 7a22: 0bf8 bt 0x7a12 // 7a12 + m_send.HighBit_Flag = 0x00; //低电平 + 7a24: 3300 movi r3, 0 + 7a26: 07f5 br 0x7a10 // 7a10 + 7a28: 200003f8 .long 0x200003f8 + 7a2c: 200000c4 .long 0x200000c4 + 7a30: 2000004c .long 0x2000004c + +Disassembly of section .text.Dbg_Println: + +00007a34 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 7a34: 1423 subi r14, r14, 12 + 7a36: b862 st.w r3, (r14, 0x8) + 7a38: b841 st.w r2, (r14, 0x4) + 7a3a: b820 st.w r1, (r14, 0x0) + 7a3c: 14d1 push r4, r15 + 7a3e: 1422 subi r14, r14, 8 + 7a40: 9864 ld.w r3, (r14, 0x10) + 7a42: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7a44: 3301 movi r3, 1 + 7a46: 1098 lrw r4, 0x200000c8 // 7aa4 + 7a48: 70c0 lsl r3, r0 + 7a4a: 9444 ld.w r2, (r4, 0x10) + 7a4c: 68c8 and r3, r2 + 7a4e: 3b40 cmpnei r3, 0 + 7a50: 0c24 bf 0x7a98 // 7a98 + SysTick_Now = SysTick_1ms; + 7a52: 1076 lrw r3, 0x200000c4 // 7aa8 + 7a54: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a56: 9446 ld.w r2, (r4, 0x18) + 7a58: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7a5a: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a5c: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7a5e: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7a60: 3020 movi r0, 32 + 7a62: b840 st.w r2, (r14, 0x0) + 7a64: 3180 movi r1, 128 + 7a66: 1052 lrw r2, 0xaf71 // 7aac + 7a68: 6010 addu r0, r4 + 7a6a: e3ffe71b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7a6e: 7441 zexth r1, r0 + 7a70: 3020 movi r0, 32 + 7a72: 6010 addu r0, r4 + 7a74: e3fffea8 bsr 0x77c4 // 77c4 + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7a78: 3020 movi r0, 32 + 7a7a: 1b05 addi r3, r14, 20 + 7a7c: 9841 ld.w r2, (r14, 0x4) + 7a7e: 3180 movi r1, 128 + 7a80: 6010 addu r0, r4 + 7a82: e3ffe73e bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 7a86: 7441 zexth r1, r0 + 7a88: 6c13 mov r0, r4 + 7a8a: 201f addi r0, 32 + 7a8c: e3fffe9c bsr 0x77c4 // 77c4 + + DBG_Printf("\r\n",2); + 7a90: 3102 movi r1, 2 + 7a92: 1008 lrw r0, 0xaf7f // 7ab0 + 7a94: e3fffe98 bsr 0x77c4 // 77c4 + + + } + +#endif +} + 7a98: 1402 addi r14, r14, 8 + 7a9a: d9ee2001 ld.w r15, (r14, 0x4) + 7a9e: 9880 ld.w r4, (r14, 0x0) + 7aa0: 1405 addi r14, r14, 20 + 7aa2: 783c jmp r15 + 7aa4: 200000c8 .long 0x200000c8 + 7aa8: 200000c4 .long 0x200000c4 + 7aac: 0000af71 .long 0x0000af71 + 7ab0: 0000af7f .long 0x0000af7f + +Disassembly of section .text.MultSend_Task: + +00007ab4 : +{ + 7ab4: 14d4 push r4-r7, r15 + 7ab6: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ab8: 5963 subi r3, r1, 1 + 7aba: 74cd zexth r3, r3 + 7abc: 3463 movi r4, 99 + 7abe: 64d0 cmphs r4, r3 +{ + 7ac0: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ac2: 0c3c bf 0x7b3a // 7b3a + if(DatSd == 0x01) + 7ac4: 3a41 cmpnei r2, 1 + 7ac6: 0c05 bf 0x7ad0 // 7ad0 + return BUSSEND_WAIT;//等待 + 7ac8: 3601 movi r6, 1 +} + 7aca: 6c1b mov r0, r6 + 7acc: 1401 addi r14, r14, 4 + 7ace: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 7ad0: 107c lrw r3, 0x200003f8 // 7b40 + 7ad2: 3760 movi r7, 96 + 7ad4: 61cc addu r7, r3 + 7ad6: 8748 ld.b r2, (r7, 0x8) + 7ad8: 878a ld.b r4, (r7, 0xa) + 7ada: 6508 cmphs r2, r4 + 7adc: 0829 bt 0x7b2e // 7b2e + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 7ade: 3480 movi r4, 128 + 7ae0: 10b9 lrw r5, 0x200000c4 // 7b44 + 7ae2: 610c addu r4, r3 + 7ae4: 9401 ld.w r0, (r4, 0x4) + 7ae6: 95c0 ld.w r6, (r5, 0x0) + 7ae8: 6182 subu r6, r0 + 7aea: 931e ld.w r0, (r3, 0x78) + 7aec: 6418 cmphs r6, r0 + 7aee: 081a bt 0x7b22 // 7b22 + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 7af0: 3a40 cmpnei r2, 0 + 7af2: 0c07 bf 0x7b00 // 7b00 + 7af4: 9540 ld.w r2, (r5, 0x0) + 7af6: 94c0 ld.w r6, (r4, 0x0) + 7af8: 609a subu r2, r6 + 7afa: 937d ld.w r3, (r3, 0x74) + 7afc: 64c8 cmphs r2, r3 + 7afe: 0fe5 bf 0x7ac8 // 7ac8 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 7b00: 9800 ld.w r0, (r14, 0x0) + 7b02: e3fffea9 bsr 0x7854 // 7854 + 7b06: 3840 cmpnei r0, 0 + 7b08: 6d83 mov r6, r0 + 7b0a: 0bdf bt 0x7ac8 // 7ac8 + m_send.ResendCnt++; + 7b0c: 8748 ld.b r2, (r7, 0x8) + 7b0e: 2200 addi r2, 1 + m_send.ASend_Tick = SysTick_1ms; + 7b10: 9560 ld.w r3, (r5, 0x0) + m_send.ResendCnt++; + 7b12: 7488 zextb r2, r2 + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b14: 102d lrw r1, 0xaf82 // 7b48 + 7b16: 3002 movi r0, 2 + m_send.ASend_Tick = SysTick_1ms; + 7b18: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 7b1a: a748 st.b r2, (r7, 0x8) + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b1c: e3ffff8c bsr 0x7a34 // 7a34 + 7b20: 07d5 br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"data end"); + 7b22: 102b lrw r1, 0xaf95 // 7b4c + 7b24: 3002 movi r0, 2 + 7b26: e3ffff87 bsr 0x7a34 // 7a34 + return DATA_END;//数据有效期结束 + 7b2a: 3602 movi r6, 2 + 7b2c: 07cf br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + 7b2e: 1029 lrw r1, 0xaf9e // 7b50 + 7b30: 3002 movi r0, 2 + 7b32: e3ffff81 bsr 0x7a34 // 7a34 + return RETRY_END;//没有重发次数 + 7b36: 3603 movi r6, 3 + 7b38: 07c9 br 0x7aca // 7aca + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7b3a: 3604 movi r6, 4 + 7b3c: 07c7 br 0x7aca // 7aca + 7b3e: 0000 bkpt + 7b40: 200003f8 .long 0x200003f8 + 7b44: 200000c4 .long 0x200000c4 + 7b48: 0000af82 .long 0x0000af82 + 7b4c: 0000af95 .long 0x0000af95 + 7b50: 0000af9e .long 0x0000af9e + +Disassembly of section .text.BUS485Send_Task: + +00007b54 : +{ + 7b54: 14d1 push r4, r15 + if(m_send.ASend_Flag == 0x01) + 7b56: 1093 lrw r4, 0x20000458 // 7ba0 + 7b58: 8469 ld.b r3, (r4, 0x9) + 7b5a: 3b41 cmpnei r3, 1 + 7b5c: 0821 bt 0x7b9e // 7b9e + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 7b5e: 1072 lrw r3, 0x20000438 // 7ba4 + 7b60: 8b37 ld.h r1, (r3, 0x2e) + 7b62: 3201 movi r2, 1 + 7b64: 1011 lrw r0, 0x200003f8 // 7ba8 + 7b66: e3ffffa7 bsr 0x7ab4 // 7ab4 + 7b6a: a407 st.b r0, (r4, 0x7) + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 7b6c: 2801 subi r0, 2 + 7b6e: 7400 zextb r0, r0 + 7b70: 3801 cmphsi r0, 2 + 7b72: 0816 bt 0x7b9e // 7b9e + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + 7b74: 102e lrw r1, 0xafab // 7bac + 7b76: 3002 movi r0, 2 + 7b78: e3ffff5e bsr 0x7a34 // 7a34 + m_send.ASend_Flag = 0x00; //清除发送标志位 + 7b7c: 3300 movi r3, 0 + 7b7e: a469 st.b r3, (r4, 0x9) + if(m_send.Jump_Flag == 0x01){ + 7b80: 846c ld.b r3, (r4, 0xc) + 7b82: 3b41 cmpnei r3, 1 + 7b84: 080d bt 0x7b9e // 7b9e + Dbg_Println(DBG_BIT_Debug_STATUS,"Jump Boot"); + 7b86: 102b lrw r1, 0xafb4 // 7bb0 + 7b88: 3002 movi r0, 2 + 7b8a: e3ffff55 bsr 0x7a34 // 7a34 + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 7b8e: 106a lrw r3, 0x2000005c // 7bb4 + 7b90: 104a lrw r2, 0x200006f0 // 7bb8 + 7b92: 9360 ld.w r3, (r3, 0x0) + 7b94: 924d ld.w r2, (r2, 0x34) + 7b96: 23ff addi r3, 256 + 7b98: b343 st.w r2, (r3, 0xc) + SYSCON_Software_Reset(); + 7b9a: e3fff30b bsr 0x61b0 // 61b0 +} + 7b9e: 1491 pop r4, r15 + 7ba0: 20000458 .long 0x20000458 + 7ba4: 20000438 .long 0x20000438 + 7ba8: 200003f8 .long 0x200003f8 + 7bac: 0000afab .long 0x0000afab + 7bb0: 0000afb4 .long 0x0000afb4 + 7bb4: 2000005c .long 0x2000005c + 7bb8: 200006f0 .long 0x200006f0 + +Disassembly of section .text.Dbg_Print_Buff: + +00007bbc : + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bbc: 14d4 push r4-r7, r15 + 7bbe: 1422 subi r14, r14, 8 + 7bc0: 6dcf mov r7, r3 +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bc2: 109b lrw r4, 0x200000c8 // 7c2c + 7bc4: 3301 movi r3, 1 +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bc6: 6d8b mov r6, r2 + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bc8: 70c0 lsl r3, r0 + 7bca: 9444 ld.w r2, (r4, 0x10) + 7bcc: 68c8 and r3, r2 + 7bce: 3b40 cmpnei r3, 0 + 7bd0: 0c1f bf 0x7c0e // 7c0e + SysTick_Now = SysTick_1ms; + 7bd2: 1078 lrw r3, 0x200000c4 // 7c30 + 7bd4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bd6: 9446 ld.w r2, (r4, 0x18) + 7bd8: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7bda: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bdc: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7bde: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7be0: 3020 movi r0, 32 + 7be2: b840 st.w r2, (r14, 0x0) + 7be4: 3180 movi r1, 128 + 7be6: 1054 lrw r2, 0xaf71 // 7c34 + 7be8: 6010 addu r0, r4 + 7bea: e3ffe65b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7bee: 7441 zexth r1, r0 + 7bf0: 3020 movi r0, 32 + 7bf2: 6010 addu r0, r4 + 7bf4: e3fffde8 bsr 0x77c4 // 77c4 + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7bf8: 1070 lrw r3, 0xafbe // 7c38 + DBG_Printf(Dbg_Buffer,str_offset); + 7bfa: 6d5b mov r5, r6 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7bfc: b861 st.w r3, (r14, 0x4) + 7bfe: 241f addi r4, 32 + for (uint32_t i = 0; i < len; i++) { + 7c00: 5d79 subu r3, r5, r6 + 7c02: 65cc cmphs r3, r7 + 7c04: 0c07 bf 0x7c12 // 7c12 + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + 7c06: 3102 movi r1, 2 + 7c08: 100d lrw r0, 0xaf7f // 7c3c + 7c0a: e3fffddd bsr 0x77c4 // 77c4 + } + +#endif +} + 7c0e: 1402 addi r14, r14, 8 + 7c10: 1494 pop r4-r7, r15 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7c12: 8560 ld.b r3, (r5, 0x0) + 7c14: 9841 ld.w r2, (r14, 0x4) + 7c16: 3180 movi r1, 128 + 7c18: 6c13 mov r0, r4 + 7c1a: e3ffe643 bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7c1e: 7441 zexth r1, r0 + 7c20: 6c13 mov r0, r4 + 7c22: e3fffdd1 bsr 0x77c4 // 77c4 + 7c26: 2500 addi r5, 1 + 7c28: 07ec br 0x7c00 // 7c00 + 7c2a: 0000 bkpt + 7c2c: 200000c8 .long 0x200000c8 + 7c30: 200000c4 .long 0x200000c4 + 7c34: 0000af71 .long 0x0000af71 + 7c38: 0000afbe .long 0x0000afbe + 7c3c: 0000af7f .long 0x0000af7f + +Disassembly of section .text.UART1_TASK: + +00007c40 : +void UART1_TASK(void){ + 7c40: 14d2 push r4-r5, r15 + if(g_uart1.Receiving == 0x01){ + 7c42: 109d lrw r4, 0x200003e4 // 7cb4 + 7c44: 8460 ld.b r3, (r4, 0x0) + 7c46: 3b41 cmpnei r3, 1 + 7c48: 082f bt 0x7ca6 // 7ca6 + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + 7c4a: 10bc lrw r5, 0x200000c4 // 7cb8 + 7c4c: 9560 ld.w r3, (r5, 0x0) + 7c4e: 9443 ld.w r2, (r4, 0xc) + 7c50: 60ca subu r3, r2 + 7c52: 9442 ld.w r2, (r4, 0x8) + 7c54: 64c8 cmphs r2, r3 + 7c56: 0828 bt 0x7ca6 // 7ca6 + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7c58: e3fff2a6 bsr 0x61a4 // 61a4 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c5c: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c5e: 8c42 ld.h r2, (r4, 0x4) + 7c60: 1037 lrw r1, 0x20000364 // 7cbc + 7c62: 1018 lrw r0, 0x200003a4 // 7cc0 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c64: b463 st.w r3, (r4, 0xc) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c66: e3ffe6bd bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart1.DealLen = g_uart1.RecvLen; + 7c6a: 8c62 ld.h r3, (r4, 0x4) + 7c6c: ac61 st.h r3, (r4, 0x2) + g_uart1.RecvLen = 0; + 7c6e: 3300 movi r3, 0 + 7c70: ac62 st.h r3, (r4, 0x4) + g_uart1.Receiving = 0; + 7c72: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7c74: e3fff292 bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + 7c78: 8c41 ld.h r2, (r4, 0x2) + 7c7a: 1033 lrw r1, 0xafc4 // 7cc4 + 7c7c: 3000 movi r0, 0 + 7c7e: e3fffedb bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); + 7c82: 8c61 ld.h r3, (r4, 0x2) + 7c84: 104f lrw r2, 0x200003a4 // 7cc0 + 7c86: 1031 lrw r1, 0xafd6 // 7cc8 + 7c88: 3000 movi r0, 0 + 7c8a: e3ffff99 bsr 0x7bbc // 7bbc + if(g_uart1.processing_cf != NULL){ + 7c8e: 9464 ld.w r3, (r4, 0x10) + 7c90: 3b40 cmpnei r3, 0 + 7c92: 080b bt 0x7ca8 // 7ca8 + Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); + 7c94: 8c21 ld.h r1, (r4, 0x2) + 7c96: 100b lrw r0, 0x200003a4 // 7cc0 + 7c98: e00011f0 bsr 0xa078 // a078 + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + 7c9c: 3240 movi r2, 64 + 7c9e: 3100 movi r1, 0 + 7ca0: 1008 lrw r0, 0x200003a4 // 7cc0 + 7ca2: e3ffe65b bsr 0x4958 // 4958 <__memset_fast> +} + 7ca6: 1492 pop r4-r5, r15 + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + 7ca8: 8c21 ld.h r1, (r4, 0x2) + 7caa: 1006 lrw r0, 0x200003a4 // 7cc0 + 7cac: 7bcd jsr r3 + if(rev != 0x00) + 7cae: 3840 cmpnei r0, 0 + 7cb0: 0ff6 bf 0x7c9c // 7c9c + 7cb2: 07f1 br 0x7c94 // 7c94 + 7cb4: 200003e4 .long 0x200003e4 + 7cb8: 200000c4 .long 0x200000c4 + 7cbc: 20000364 .long 0x20000364 + 7cc0: 200003a4 .long 0x200003a4 + 7cc4: 0000afc4 .long 0x0000afc4 + 7cc8: 0000afd6 .long 0x0000afd6 + +Disassembly of section .text.UART2_TASK: + +00007ccc : +void UART2_TASK(void){ + 7ccc: 14d2 push r4-r5, r15 + if(g_uart.Receiving == 0x01){ + 7cce: 1180 lrw r4, 0x200002bc // 7d4c + 7cd0: 8460 ld.b r3, (r4, 0x0) + 7cd2: 3b41 cmpnei r3, 1 + 7cd4: 0835 bt 0x7d3e // 7d3e + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 7cd6: 10bf lrw r5, 0x200000c4 // 7d50 + 7cd8: 9560 ld.w r3, (r5, 0x0) + 7cda: 9443 ld.w r2, (r4, 0xc) + 7cdc: 60ca subu r3, r2 + 7cde: 9442 ld.w r2, (r4, 0x8) + 7ce0: 64c8 cmphs r2, r3 + 7ce2: 082e bt 0x7d3e // 7d3e + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7ce4: e3fff260 bsr 0x61a4 // 61a4 + g_uart.RecvIdleTiming = SysTick_1ms; + 7ce8: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7cea: 8c42 ld.h r2, (r4, 0x4) + 7cec: 103a lrw r1, 0x2000023c // 7d54 + 7cee: 101b lrw r0, 0x2000027c // 7d58 + g_uart.RecvIdleTiming = SysTick_1ms; + 7cf0: b463 st.w r3, (r4, 0xc) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7cf2: e3ffe677 bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart.DealLen = g_uart.RecvLen; + 7cf6: 8c62 ld.h r3, (r4, 0x4) + 7cf8: ac61 st.h r3, (r4, 0x2) + g_uart.RecvLen = 0; + 7cfa: 3300 movi r3, 0 + 7cfc: ac62 st.h r3, (r4, 0x4) + g_uart.Receiving = 0; + 7cfe: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7d00: e3fff24c bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 revLen %d", g_uart.DealLen); + 7d04: 8c41 ld.h r2, (r4, 0x2) + 7d06: 1036 lrw r1, 0xafe1 // 7d5c + 7d08: 3000 movi r0, 0 + 7d0a: e3fffe95 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 rev:%s", g_uart.DealBuffer); + 7d0e: 1053 lrw r2, 0x2000027c // 7d58 + 7d10: 1034 lrw r1, 0xaff1 // 7d60 + 7d12: 3000 movi r0, 0 + 7d14: e3fffe90 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart.DealBuffer,g_uart.DealLen); + 7d18: 8c61 ld.h r3, (r4, 0x2) + 7d1a: 1050 lrw r2, 0x2000027c // 7d58 + 7d1c: 1032 lrw r1, 0xaffe // 7d64 + 7d1e: 3000 movi r0, 0 + 7d20: e3ffff4e bsr 0x7bbc // 7bbc + if(g_uart.processing_cf != NULL){ + 7d24: 9464 ld.w r3, (r4, 0x10) + 7d26: 3b40 cmpnei r3, 0 + 7d28: 080c bt 0x7d40 // 7d40 + BT_Uart_Packing(g_uart.DealBuffer,g_uart.DealLen,6); + 7d2a: 8422 ld.b r1, (r4, 0x2) + 7d2c: 3206 movi r2, 6 + 7d2e: 100b lrw r0, 0x2000027c // 7d58 + 7d30: e0000cac bsr 0x9688 // 9688 + memset(g_uart.DealBuffer,0,USART_BUFFER_SIZE); + 7d34: 3240 movi r2, 64 + 7d36: 3100 movi r1, 0 + 7d38: 1008 lrw r0, 0x2000027c // 7d58 + 7d3a: e3ffe60f bsr 0x4958 // 4958 <__memset_fast> +} + 7d3e: 1492 pop r4-r5, r15 + rev = g_uart.processing_cf(g_uart.DealBuffer,g_uart.DealLen); + 7d40: 8c21 ld.h r1, (r4, 0x2) + 7d42: 1006 lrw r0, 0x2000027c // 7d58 + 7d44: 7bcd jsr r3 + if(rev != 0x00) + 7d46: 3840 cmpnei r0, 0 + 7d48: 0ff6 bf 0x7d34 // 7d34 + 7d4a: 07f0 br 0x7d2a // 7d2a + 7d4c: 200002bc .long 0x200002bc + 7d50: 200000c4 .long 0x200000c4 + 7d54: 2000023c .long 0x2000023c + 7d58: 2000027c .long 0x2000027c + 7d5c: 0000afe1 .long 0x0000afe1 + 7d60: 0000aff1 .long 0x0000aff1 + 7d64: 0000affe .long 0x0000affe + +Disassembly of section .text.Dbg_BT_Println: + +00007d68 : + +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...){ + 7d68: 1423 subi r14, r14, 12 + 7d6a: b862 st.w r3, (r14, 0x8) + 7d6c: b841 st.w r2, (r14, 0x4) + 7d6e: b820 st.w r1, (r14, 0x0) + 7d70: 14d2 push r4-r5, r15 + 7d72: 1421 subi r14, r14, 4 + 7d74: 9864 ld.w r3, (r14, 0x10) + 7d76: b860 st.w r3, (r14, 0x0) +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7d78: 3301 movi r3, 1 + 7d7a: 1091 lrw r4, 0x200000c8 // 7dbc + 7d7c: 70c0 lsl r3, r0 + 7d7e: 9444 ld.w r2, (r4, 0x10) + 7d80: 68c8 and r3, r2 + 7d82: 3b40 cmpnei r3, 0 + 7d84: 0c14 bf 0x7dac // 7dac + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7d86: 3020 movi r0, 32 + 7d88: 1b05 addi r3, r14, 20 + 7d8a: 9840 ld.w r2, (r14, 0x0) + 7d8c: 3180 movi r1, 128 + 7d8e: 6010 addu r0, r4 + 7d90: e3ffe5b7 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_BTPrintf(Dbg_Buffer,str_offset); + 7d94: 10ab lrw r5, 0x20000038 // 7dc0 + 7d96: 6c53 mov r1, r4 + 7d98: 7481 zexth r2, r0 + 7d9a: 211f addi r1, 32 + 7d9c: 9500 ld.w r0, (r5, 0x0) + 7d9e: e3fff53d bsr 0x6818 // 6818 + + DBG_BTPrintf("\r\n",2); + 7da2: 9500 ld.w r0, (r5, 0x0) + 7da4: 3202 movi r2, 2 + 7da6: 1028 lrw r1, 0xaf7f // 7dc4 + 7da8: e3fff538 bsr 0x6818 // 6818 + } + +#endif +} + 7dac: 1401 addi r14, r14, 4 + 7dae: d9ee2002 ld.w r15, (r14, 0x8) + 7db2: 98a1 ld.w r5, (r14, 0x4) + 7db4: 9880 ld.w r4, (r14, 0x0) + 7db6: 1406 addi r14, r14, 24 + 7db8: 783c jmp r15 + 7dba: 0000 bkpt + 7dbc: 200000c8 .long 0x200000c8 + 7dc0: 20000038 .long 0x20000038 + 7dc4: 0000af7f .long 0x0000af7f + +Disassembly of section .text.DIP_GetSwitchState: + +00007dc8 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 7dc8: 14d0 push r15 + U8_T val = 0; + + switch (i) + 7dca: 3841 cmpnei r0, 1 + 7dcc: 0c0d bf 0x7de6 // 7de6 + 7dce: 3840 cmpnei r0, 0 + 7dd0: 0c05 bf 0x7dda // 7dda + 7dd2: 3842 cmpnei r0, 2 + 7dd4: 0c0d bf 0x7dee // 7dee + U8_T val = 0; + 7dd6: 3000 movi r0, 0 + 7dd8: 0406 br 0x7de4 // 7de4 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 7dda: 1068 lrw r3, 0x2000004c // 7df8 + 7ddc: 310a movi r1, 10 + 7dde: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 7de0: e3fff3e7 bsr 0x65ae // 65ae + break; + + } + return val; +} + 7de4: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 7de6: 1065 lrw r3, 0x2000004c // 7df8 + 7de8: 3109 movi r1, 9 + 7dea: 9300 ld.w r0, (r3, 0x0) + 7dec: 07fa br 0x7de0 // 7de0 + val = GPIO_Read_Status(GPIOA0,8); + 7dee: 1063 lrw r3, 0x2000004c // 7df8 + 7df0: 3108 movi r1, 8 + 7df2: 9300 ld.w r0, (r3, 0x0) + 7df4: 07f6 br 0x7de0 // 7de0 + 7df6: 0000 bkpt + 7df8: 2000004c .long 0x2000004c + +Disassembly of section .text.DIP_Switch_Init: + +00007dfc : +void DIP_Switch_Init(void){ + 7dfc: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 7dfe: 1182 lrw r4, 0x2000004c // 7e84 + 7e00: 3201 movi r2, 1 + 7e02: 9400 ld.w r0, (r4, 0x0) + 7e04: 310a movi r1, 10 + 7e06: e3fff23b bsr 0x627c // 627c + GPIO_Init(GPIOA0,9,Intput); + 7e0a: 9400 ld.w r0, (r4, 0x0) + 7e0c: 3201 movi r2, 1 + 7e0e: 3109 movi r1, 9 + 7e10: e3fff236 bsr 0x627c // 627c + GPIO_Init(GPIOA0,8,Intput); + 7e14: 3201 movi r2, 1 + 7e16: 9400 ld.w r0, (r4, 0x0) + 7e18: 3108 movi r1, 8 + 7e1a: e3fff231 bsr 0x627c // 627c + GPIO_PullHigh_Init(GPIOA0,10); + 7e1e: 9400 ld.w r0, (r4, 0x0) + 7e20: 310a movi r1, 10 + 7e22: e3fff29d bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,9); + 7e26: 9400 ld.w r0, (r4, 0x0) + 7e28: 3109 movi r1, 9 + 7e2a: e3fff299 bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,8); + 7e2e: 9400 ld.w r0, (r4, 0x0) + 7e30: 3108 movi r1, 8 + 7e32: e3fff295 bsr 0x635c // 635c + memset(&g_Dip,0,sizeof(DIP_t)); + 7e36: 3214 movi r2, 20 + 7e38: 3100 movi r1, 0 + 7e3a: 1014 lrw r0, 0x20000480 // 7e88 + 7e3c: e3ffe58e bsr 0x4958 // 4958 <__memset_fast> + delay_nms(20); + 7e40: 3014 movi r0, 20 + 7e42: e3fff597 bsr 0x6970 // 6970 + 7e46: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e48: 10b0 lrw r5, 0x20000480 // 7e88 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 7e4a: 7410 zextb r0, r4 + 7e4c: e3ffffbe bsr 0x7dc8 // 7dc8 + 7e50: 3840 cmpnei r0, 0 + 7e52: 0807 bt 0x7e60 // 7e60 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e54: 3301 movi r3, 1 + 7e56: 70d0 lsl r3, r4 + 7e58: 6c8f mov r2, r3 + 7e5a: 9563 ld.w r3, (r5, 0xc) + 7e5c: 6cc8 or r3, r2 + 7e5e: b563 st.w r3, (r5, 0xc) + 7e60: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 7e62: 3c43 cmpnei r4, 3 + 7e64: 0bf3 bt 0x7e4a // 7e4a + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e66: 1069 lrw r3, 0x20000480 // 7e88 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e68: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e6a: 9343 ld.w r2, (r3, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e6c: 6848 and r1, r2 + 7e6e: a326 st.b r1, (r3, 0x6) + g_Dip.Dev_Port = Passive_Port; + 7e70: 3100 movi r1, 0 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e72: b344 st.w r2, (r3, 0x10) + g_Dip.Dev_Port = Passive_Port; + 7e74: a327 st.b r1, (r3, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); + 7e76: 3000 movi r0, 0 + 7e78: 3300 movi r3, 0 + 7e7a: 1025 lrw r1, 0xb009 // 7e8c + 7e7c: e3fffddc bsr 0x7a34 // 7a34 +} + 7e80: 1492 pop r4-r5, r15 + 7e82: 0000 bkpt + 7e84: 2000004c .long 0x2000004c + 7e88: 20000480 .long 0x20000480 + 7e8c: 0000b009 .long 0x0000b009 + +Disassembly of section .text.DIP_ScanTask: + +00007e90 : + +void DIP_ScanTask(void) +{ + 7e90: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 7e92: 1122 lrw r1, 0x200000c4 // 7f18 + 7e94: 1142 lrw r2, 0x20000168 // 7f1c + 7e96: 11a3 lrw r5, 0x20000480 // 7f20 + 7e98: 9200 ld.w r0, (r2, 0x0) + 7e9a: 9160 ld.w r3, (r1, 0x0) + 7e9c: 60c2 subu r3, r0 + 7e9e: 3b14 cmphsi r3, 21 + 7ea0: 0806 bt 0x7eac // 7eac + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 7ea2: 9543 ld.w r2, (r5, 0xc) + 7ea4: 9564 ld.w r3, (r5, 0x10) + 7ea6: 64ca cmpne r2, r3 + 7ea8: 082e bt 0x7f04 // 7f04 + g_Dip.addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + } + +} + 7eaa: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 7eac: 9160 ld.w r3, (r1, 0x0) + 7eae: b260 st.w r3, (r2, 0x0) + 7eb0: 6d17 mov r4, r5 + 7eb2: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7eb4: 7418 zextb r0, r6 + 7eb6: e3ffff89 bsr 0x7dc8 // 7dc8 + 7eba: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 7ebc: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7ebe: 0814 bt 0x7ee6 // 7ee6 + g_Dip.delayCnt_OFF[i] = 0; + 7ec0: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 7ec2: 8460 ld.b r3, (r4, 0x0) + 7ec4: 3b04 cmphsi r3, 5 + 7ec6: 0808 bt 0x7ed6 // 7ed6 + g_Dip.delayCnt_ON[i]++; + 7ec8: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 7eca: a460 st.b r3, (r4, 0x0) + 7ecc: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 7ece: 3e43 cmpnei r6, 3 + 7ed0: 2400 addi r4, 1 + 7ed2: 0bf1 bt 0x7eb4 // 7eb4 + 7ed4: 07e7 br 0x7ea2 // 7ea2 + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 7ed6: 3301 movi r3, 1 + 7ed8: 70d8 lsl r3, r6 + 7eda: 6c8f mov r2, r3 + 7edc: 9563 ld.w r3, (r5, 0xc) + 7ede: 6cc8 or r3, r2 + 7ee0: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_ON[i] = 0; + 7ee2: 3300 movi r3, 0 + 7ee4: 07f3 br 0x7eca // 7eca + g_Dip.delayCnt_ON[i] = 0; + 7ee6: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 7ee8: 8463 ld.b r3, (r4, 0x3) + 7eea: 3b04 cmphsi r3, 5 + 7eec: 0804 bt 0x7ef4 // 7ef4 + g_Dip.delayCnt_OFF[i]++; + 7eee: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 7ef0: a463 st.b r3, (r4, 0x3) + 7ef2: 07ed br 0x7ecc // 7ecc + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 7ef4: 3300 movi r3, 0 + 7ef6: 2b01 subi r3, 2 + 7ef8: 9543 ld.w r2, (r5, 0xc) + 7efa: 70db rotl r3, r6 + 7efc: 68c8 and r3, r2 + 7efe: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_OFF[i] = 0; + 7f00: 3300 movi r3, 0 + 7f02: 07f7 br 0x7ef0 // 7ef0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f04: 3307 movi r3, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7f06: b544 st.w r2, (r5, 0x10) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f08: 3000 movi r0, 0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f0a: 688c and r2, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f0c: 1026 lrw r1, 0xb020 // 7f24 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f0e: a546 st.b r2, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f10: e3fffd92 bsr 0x7a34 // 7a34 +} + 7f14: 07cb br 0x7eaa // 7eaa + 7f16: 0000 bkpt + 7f18: 200000c4 .long 0x200000c4 + 7f1c: 20000168 .long 0x20000168 + 7f20: 20000480 .long 0x20000480 + 7f24: 0000b020 .long 0x0000b020 + +Disassembly of section .text.EEPROM_CheckSum: + +00007f28 : +E_MCU_DEV_INFO g_mcu_dev; +ENERGY_SAVE_PARA e_save; +ENERGY_SAVE eng_info; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 7f28: 6cc3 mov r3, r0 + 7f2a: 6040 addu r1, r0 + U8_T data_sum = 0; + 7f2c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 7f32: 783c jmp r15 + data_sum += data[i]; + 7f34: 8340 ld.b r2, (r3, 0x0) + 7f36: 6008 addu r0, r2 + 7f38: 7400 zextb r0, r0 + 7f3a: 2300 addi r3, 1 + 7f3c: 07f9 br 0x7f2e // 7f2e + +Disassembly of section .text.EEOROM_ENERGY_ReadSet: + +00007f40 : +* Description : 读取电能检测参数 +* Parameter : +* info :读取参数指针 +*******************************************************************/ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info) +{ + 7f40: 14d1 push r4, r15 + 7f42: 142f subi r14, r14, 60 + 7f44: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 7f46: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 7f48: 3232 movi r2, 50 + 7f4a: 3100 movi r1, 0 + 7f4c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7f4e: b860 st.w r3, (r14, 0x0) + 7f50: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 7f54: e3ffe502 bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr,4,read_info); + 7f58: 6cbb mov r2, r14 + 7f5a: 3104 movi r1, 4 + 7f5c: 111f lrw r0, 0x10000180 // 8058 + 7f5e: e3fff4d1 bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_ENERGY_SAVE_FLAG){ + 7f62: d84e0000 ld.b r2, (r14, 0x0) + 7f66: 33a6 movi r3, 166 + 7f68: 64ca cmpne r2, r3 + 7f6a: 0c04 bf 0x7f72 // 7f72 + return 0x00; + } + } + } + + return 0x01; + 7f6c: 3001 movi r0, 1 + +} + 7f6e: 140f addi r14, r14, 60 + 7f70: 1491 pop r4, r15 + read_len |= read_info[1]; + 7f72: d82e0002 ld.b r1, (r14, 0x2) + 7f76: d86e0001 ld.b r3, (r14, 0x1) + 7f7a: 4128 lsli r1, r1, 8 + 7f7c: 6c4c or r1, r3 + if(read_len <= EEPROM_ENERGY_SIZE){ + 7f7e: 3332 movi r3, 50 + 7f80: 644c cmphs r3, r1 + 7f82: 0ff5 bf 0x7f6c // 7f6c + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr+EEPROM_Offset_Data,read_len,para_data); + 7f84: 1a02 addi r2, r14, 8 + 7f86: 1116 lrw r0, 0x10000184 // 805c + 7f88: e3fff4bc bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE_PARA)) == read_info[3]){ + 7f8c: 312c movi r1, 44 + 7f8e: 1802 addi r0, r14, 8 + 7f90: e3ffffcc bsr 0x7f28 // 7f28 + 7f94: d86e0003 ld.b r3, (r14, 0x3) + 7f98: 640e cmpne r3, r0 + 7f9a: 0be9 bt 0x7f6c // 7f6c + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE_PARA)); + 7f9c: 322c movi r2, 44 + 7f9e: 1902 addi r1, r14, 8 + 7fa0: 6c13 mov r0, r4 + 7fa2: e3ffe51f bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fa6: 118f lrw r4, 0x20000494 // 8060 + SYSCON_IWDCNT_Reload(); + 7fa8: e3fff072 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fac: 9400 ld.w r0, (r4, 0x0) + 7fae: e3ffdd47 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fb2: 6c83 mov r2, r0 + 7fb4: 6cc7 mov r3, r1 + 7fb6: 3000 movi r0, 0 + 7fb8: 112b lrw r1, 0xb02c // 8064 + 7fba: e3fffd3d bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K1:%f",e_save.i_k1_val); + 7fbe: 9401 ld.w r0, (r4, 0x4) + 7fc0: e3ffdd3e bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fc4: 6c83 mov r2, r0 + 7fc6: 6cc7 mov r3, r1 + 7fc8: 3000 movi r0, 0 + 7fca: 1128 lrw r1, 0xb037 // 8068 + 7fcc: e3fffd34 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K2:%f",e_save.i_k2_val); + 7fd0: 9402 ld.w r0, (r4, 0x8) + 7fd2: e3ffdd35 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fd6: 6c83 mov r2, r0 + 7fd8: 6cc7 mov r3, r1 + 7fda: 3000 movi r0, 0 + 7fdc: 1124 lrw r1, 0xb043 // 806c + 7fde: e3fffd2b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_K:%f",e_save.p_k_val); + 7fe2: 9403 ld.w r0, (r4, 0xc) + 7fe4: e3ffdd2c bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fe8: 6c83 mov r2, r0 + 7fea: 6cc7 mov r3, r1 + 7fec: 3000 movi r0, 0 + 7fee: 1121 lrw r1, 0xb04f // 8070 + 7ff0: e3fffd22 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_OffSet:%f",e_save.i_OffSetVal); + 7ff4: 9404 ld.w r0, (r4, 0x10) + 7ff6: e3ffdd23 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7ffa: 6c83 mov r2, r0 + 7ffc: 6cc7 mov r3, r1 + 7ffe: 3000 movi r0, 0 + 8000: 103d lrw r1, 0xb05a // 8074 + 8002: e3fffd19 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_OffSet:%f",e_save.p_OffSetVal); + 8006: 9405 ld.w r0, (r4, 0x14) + 8008: e3ffdd1a bsr 0x3a3c // 3a3c <__extendsfdf2> + 800c: 6cc7 mov r3, r1 + 800e: 6c83 mov r2, r0 + 8010: 103a lrw r1, 0xb06a // 8078 + 8012: 3000 movi r0, 0 + 8014: e3fffd10 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 8018: e3fff03a bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_max:%d",e_save.eng_save_max); + 801c: 9446 ld.w r2, (r4, 0x18) + 801e: 3000 movi r0, 0 + 8020: 1037 lrw r1, 0xb07a // 807c + 8022: e3fffd09 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_offset:%d",e_save.eng_save_offset); + 8026: 9447 ld.w r2, (r4, 0x1c) + 8028: 3000 movi r0, 0 + 802a: 1036 lrw r1, 0xb08a // 8080 + 802c: e3fffd04 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Collect_Tim:%d",e_save.Collect_Tim); + 8030: 9448 ld.w r2, (r4, 0x20) + 8032: 3000 movi r0, 0 + 8034: 1034 lrw r1, 0xb09d // 8084 + 8036: e3fffcff bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Report_Tim:%d",e_save.Report_Tim); + 803a: 9449 ld.w r2, (r4, 0x24) + 803c: 3000 movi r0, 0 + 803e: 1033 lrw r1, 0xb0b0 // 8088 + 8040: e3fffcfa bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 8044: 3000 movi r0, 0 + 8046: 944a ld.w r2, (r4, 0x28) + 8048: 1031 lrw r1, 0xb0c2 // 808c + 804a: e3fffcf5 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 804e: e3fff01f bsr 0x608c // 608c + return 0x00; + 8052: 3000 movi r0, 0 + 8054: 078d br 0x7f6e // 7f6e + 8056: 0000 bkpt + 8058: 10000180 .long 0x10000180 + 805c: 10000184 .long 0x10000184 + 8060: 20000494 .long 0x20000494 + 8064: 0000b02c .long 0x0000b02c + 8068: 0000b037 .long 0x0000b037 + 806c: 0000b043 .long 0x0000b043 + 8070: 0000b04f .long 0x0000b04f + 8074: 0000b05a .long 0x0000b05a + 8078: 0000b06a .long 0x0000b06a + 807c: 0000b07a .long 0x0000b07a + 8080: 0000b08a .long 0x0000b08a + 8084: 0000b09d .long 0x0000b09d + 8088: 0000b0b0 .long 0x0000b0b0 + 808c: 0000b0c2 .long 0x0000b0c2 + +Disassembly of section .text.EEOROM_ENERGY_WriteSet: + +00008090 : +/******************************************************************************* +* Function Name : EEOROM_ENERGY_WriteSet +* Description : 将电能设置参数写入到EEPROM中 +*******************************************************************************/ +U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info) +{ + 8090: 14d0 push r15 + 8092: 142e subi r14, r14, 56 + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(ENERGY_SAVE_PARA); + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 8094: 3300 movi r3, 0 + 8096: 2b59 subi r3, 90 + 8098: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 809c: 332c movi r3, 44 + 809e: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 80a2: 3300 movi r3, 0 + 80a4: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80a8: 1b01 addi r3, r14, 4 +{ + 80aa: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80ac: 322c movi r2, 44 + 80ae: 6c0f mov r0, r3 + 80b0: e3ffe498 bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 80b4: 312c movi r1, 44 + 80b6: e3ffff39 bsr 0x7f28 // 7f28 + 80ba: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ENERGE_PARA_SaveAddr,save_len,save_data); + 80be: 6cbb mov r2, r14 + 80c0: 3130 movi r1, 48 + 80c2: 1004 lrw r0, 0x10000180 // 80d0 + 80c4: e3fff3ce bsr 0x6860 // 6860 + + return 0; +} + 80c8: 3000 movi r0, 0 + 80ca: 140e addi r14, r14, 56 + 80cc: 1490 pop r15 + 80ce: 0000 bkpt + 80d0: 10000180 .long 0x10000180 + +Disassembly of section .text.EEPROM_ENERGY_Validate: + +000080d4 : +/******************************************************************************* +* Function Name : EEPROM_ENERGY_Validate +* Description : 比对当前参数,确认是否有改变需要写入 +*******************************************************************************/ +void EEPROM_ENERGY_Validate(void) +{ + 80d4: 14d4 push r4-r7, r15 + U8_T save_flag = 0; + + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 80d6: 12a9 lrw r5, 0x20000578 // 81f8 + 80d8: 1289 lrw r4, 0x20000494 // 81fc + 80da: 95d4 ld.w r6, (r5, 0x50) + 80dc: 6c5b mov r1, r6 + 80de: 9401 ld.w r0, (r4, 0x4) + 80e0: e3ffdc1a bsr 0x3914 // 3914 <__nesf2> + 80e4: 3840 cmpnei r0, 0 + 80e6: 0c80 bf 0x81e6 // 81e6 + { + e_save.i_k1_val = g_Eng.I_K1_Val; + 80e8: b4c1 st.w r6, (r4, 0x4) + save_flag = 1; + 80ea: 3601 movi r6, 1 + } + + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 80ec: 95f5 ld.w r7, (r5, 0x54) + 80ee: 6c5f mov r1, r7 + 80f0: 9402 ld.w r0, (r4, 0x8) + 80f2: e3ffdc11 bsr 0x3914 // 3914 <__nesf2> + 80f6: 3840 cmpnei r0, 0 + 80f8: 0c03 bf 0x80fe // 80fe + { + e_save.i_k2_val = g_Eng.I_K2_Val; + 80fa: b4e2 st.w r7, (r4, 0x8) + save_flag = 1; + 80fc: 3601 movi r6, 1 + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + 80fe: 95f3 ld.w r7, (r5, 0x4c) + 8100: 6c5f mov r1, r7 + 8102: 9400 ld.w r0, (r4, 0x0) + 8104: e3ffdc08 bsr 0x3914 // 3914 <__nesf2> + 8108: 3840 cmpnei r0, 0 + 810a: 0c03 bf 0x8110 // 8110 + { + e_save.v_k_val = g_Eng.V_K_Val; + 810c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 810e: 3601 movi r6, 1 + } + + if(e_save.p_k_val != g_Eng.P_K_Val) + 8110: 9536 ld.w r1, (r5, 0x58) + 8112: 9403 ld.w r0, (r4, 0xc) + 8114: e3ffdc00 bsr 0x3914 // 3914 <__nesf2> + 8118: 3840 cmpnei r0, 0 + 811a: 0c03 bf 0x8120 // 8120 + { + e_save.v_k_val = g_Eng.V_K_Val; + 811c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 811e: 3601 movi r6, 1 + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8120: 9537 ld.w r1, (r5, 0x5c) + 8122: 9404 ld.w r0, (r4, 0x10) + 8124: e3ffdbf8 bsr 0x3914 // 3914 <__nesf2> + 8128: 3840 cmpnei r0, 0 + 812a: 0c03 bf 0x8130 // 8130 + { + e_save.v_k_val = g_Eng.V_K_Val; + 812c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 812e: 3601 movi r6, 1 + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8130: 9538 ld.w r1, (r5, 0x60) + 8132: 9405 ld.w r0, (r4, 0x14) + 8134: e3ffdbf0 bsr 0x3914 // 3914 <__nesf2> + 8138: 3840 cmpnei r0, 0 + 813a: 0c03 bf 0x8140 // 8140 + { + e_save.v_k_val = g_Eng.V_K_Val; + 813c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 813e: 3601 movi r6, 1 + } + + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 8140: 9579 ld.w r3, (r5, 0x64) + 8142: 9448 ld.w r2, (r4, 0x20) + 8144: 64ca cmpne r2, r3 + 8146: 0c03 bf 0x814c // 814c + { + e_save.Collect_Tim = g_Eng.Collect_Tim; + 8148: b468 st.w r3, (r4, 0x20) + save_flag = 1; + 814a: 3601 movi r6, 1 + } + + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 814c: 957b ld.w r3, (r5, 0x6c) + 814e: 944a ld.w r2, (r4, 0x28) + 8150: 64ca cmpne r2, r3 + 8152: 0c03 bf 0x8158 // 8158 + { + e_save.SaveFlash_Tim = g_Eng.SaveFlash_Tim; + 8154: b46a st.w r3, (r4, 0x28) + save_flag = 1; + 8156: 3601 movi r6, 1 + } + + if(e_save.Report_Tim != g_Eng.Report_Tim) + 8158: 957a ld.w r3, (r5, 0x68) + 815a: 9449 ld.w r2, (r4, 0x24) + 815c: 64ca cmpne r2, r3 + 815e: 0c46 bf 0x81ea // 81ea + { + e_save.Report_Tim = g_Eng.Report_Tim; + 8160: b469 st.w r3, (r4, 0x24) + save_flag = 1; + } + + if(save_flag == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + 8162: 1107 lrw r0, 0x20000494 // 81fc + 8164: e3ffff96 bsr 0x8090 // 8090 + +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + 8168: e3ffef92 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Need Save Energy"); + 816c: 1125 lrw r1, 0xb0ea // 8200 + 816e: 3000 movi r0, 0 + 8170: e3fffc62 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"V_K:%f",e_save.v_k_val); + 8174: 9400 ld.w r0, (r4, 0x0) + 8176: e3ffdc63 bsr 0x3a3c // 3a3c <__extendsfdf2> + 817a: 6c83 mov r2, r0 + 817c: 6cc7 mov r3, r1 + 817e: 3000 movi r0, 0 + 8180: 1121 lrw r1, 0xb030 // 8204 + 8182: e3fffc59 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K1:%f",e_save.i_k1_val); + 8186: 9401 ld.w r0, (r4, 0x4) + 8188: e3ffdc5a bsr 0x3a3c // 3a3c <__extendsfdf2> + 818c: 6c83 mov r2, r0 + 818e: 6cc7 mov r3, r1 + 8190: 3000 movi r0, 0 + 8192: 103e lrw r1, 0xb03b // 8208 + 8194: e3fffc50 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K2:%f",e_save.i_k2_val); + 8198: 9402 ld.w r0, (r4, 0x8) + 819a: e3ffdc51 bsr 0x3a3c // 3a3c <__extendsfdf2> + 819e: 6c83 mov r2, r0 + 81a0: 6cc7 mov r3, r1 + 81a2: 3000 movi r0, 0 + 81a4: 103a lrw r1, 0xb047 // 820c + 81a6: e3fffc47 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_K:%f",e_save.p_k_val); + 81aa: 9403 ld.w r0, (r4, 0xc) + 81ac: e3ffdc48 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81b0: 6c83 mov r2, r0 + 81b2: 6cc7 mov r3, r1 + 81b4: 3000 movi r0, 0 + 81b6: 1037 lrw r1, 0xb053 // 8210 + 81b8: e3fffc3e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_OS:%f",e_save.i_OffSetVal); + 81bc: 9404 ld.w r0, (r4, 0x10) + 81be: e3ffdc3f bsr 0x3a3c // 3a3c <__extendsfdf2> + 81c2: 6c83 mov r2, r0 + 81c4: 6cc7 mov r3, r1 + 81c6: 3000 movi r0, 0 + 81c8: 1033 lrw r1, 0xb0d7 // 8214 + 81ca: e3fffc35 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_OS:%f",e_save.p_OffSetVal); + 81ce: 9405 ld.w r0, (r4, 0x14) + 81d0: e3ffdc36 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81d4: 6c83 mov r2, r0 + 81d6: 6cc7 mov r3, r1 + 81d8: 3000 movi r0, 0 + 81da: 1030 lrw r1, 0xb0df // 8218 + 81dc: e3fffc2c bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 81e0: e3ffef56 bsr 0x608c // 608c +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + +#endif + } +} + 81e4: 1494 pop r4-r7, r15 + U8_T save_flag = 0; + 81e6: 3600 movi r6, 0 + 81e8: 0782 br 0x80ec // 80ec + if(save_flag == 0x01) + 81ea: 3e41 cmpnei r6, 1 + 81ec: 0fbb bf 0x8162 // 8162 + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + 81ee: 102c lrw r1, 0xb0e7 // 821c + 81f0: 3000 movi r0, 0 + 81f2: e3fffc21 bsr 0x7a34 // 7a34 +} + 81f6: 07f7 br 0x81e4 // 81e4 + 81f8: 20000578 .long 0x20000578 + 81fc: 20000494 .long 0x20000494 + 8200: 0000b0ea .long 0x0000b0ea + 8204: 0000b030 .long 0x0000b030 + 8208: 0000b03b .long 0x0000b03b + 820c: 0000b047 .long 0x0000b047 + 8210: 0000b053 .long 0x0000b053 + 8214: 0000b0d7 .long 0x0000b0d7 + 8218: 0000b0df .long 0x0000b0df + 821c: 0000b0e7 .long 0x0000b0e7 + +Disassembly of section .text.EEPROM_Default_ENERGY: + +00008220 : +/******************************************************************************* +* Function Name : EEPROM_Default_ENERGY +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info) +{ + 8220: 14d1 push r4, r15 + /*APP 区域*/ + info->i_k1_val = 1; + 8222: 33fe movi r3, 254 + 8224: 4376 lsli r3, r3, 22 + 8226: b061 st.w r3, (r0, 0x4) + info->i_k2_val = 1; + 8228: b062 st.w r3, (r0, 0x8) + info->v_k_val = 2; + info->p_k_val = 1; + 822a: b063 st.w r3, (r0, 0xc) + info->i_OffSetVal = 0; + 822c: 3300 movi r3, 0 + 822e: b064 st.w r3, (r0, 0x10) + info->p_OffSetVal = 0; + 8230: b065 st.w r3, (r0, 0x14) + info->eng_save_max = EEPROM_SAVEADDR_CNT; + 8232: 1176 lrw r3, 0x9c40 // 8308 + 8234: b066 st.w r3, (r0, 0x18) + info->eng_save_offset = 1; //存储偏移编号从1开始 + 8236: 3301 movi r3, 1 + 8238: b067 st.w r3, (r0, 0x1c) + info->SaveFlash_Tim = EEPROM_SAVETIME; + 823a: 1175 lrw r3, 0x36ee80 // 830c + 823c: b06a st.w r3, (r0, 0x28) + info->v_k_val = 2; + 823e: 3280 movi r2, 128 + info->Collect_Tim = EEPROM_COLLTIME; + 8240: 1174 lrw r3, 0xbb8 // 8310 + info->v_k_val = 2; + 8242: 4257 lsli r2, r2, 23 + info->Collect_Tim = EEPROM_COLLTIME; + 8244: b068 st.w r3, (r0, 0x20) + info->Report_Tim = EEPROM_REPTIME; + 8246: 1174 lrw r3, 0x927c0 // 8314 + info->v_k_val = 2; + 8248: b040 st.w r2, (r0, 0x0) + info->Report_Tim = EEPROM_REPTIME; + 824a: b069 st.w r3, (r0, 0x24) + + + EEOROM_ENERGY_WriteSet(info); + 824c: e3ffff22 bsr 0x8090 // 8090 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Energy Use Default Para"); + 8250: 1132 lrw r1, 0xb0fb // 8318 + 8252: 3000 movi r0, 0 + 8254: e3fffbf0 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 8258: 1191 lrw r4, 0x20000494 // 831c + SYSCON_IWDCNT_Reload(); + 825a: e3ffef19 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 825e: 9400 ld.w r0, (r4, 0x0) + 8260: e3ffdbee bsr 0x3a3c // 3a3c <__extendsfdf2> + 8264: 6c83 mov r2, r0 + 8266: 6cc7 mov r3, r1 + 8268: 3000 movi r0, 0 + 826a: 112e lrw r1, 0xb113 // 8320 + 826c: e3fffbe4 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K1:%f",e_save.i_k1_val); + 8270: 9401 ld.w r0, (r4, 0x4) + 8272: e3ffdbe5 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8276: 6c83 mov r2, r0 + 8278: 6cc7 mov r3, r1 + 827a: 3000 movi r0, 0 + 827c: 112a lrw r1, 0xb122 // 8324 + 827e: e3fffbdb bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K2:%f",e_save.i_k2_val); + 8282: 9402 ld.w r0, (r4, 0x8) + 8284: e3ffdbdc bsr 0x3a3c // 3a3c <__extendsfdf2> + 8288: 6c83 mov r2, r0 + 828a: 6cc7 mov r3, r1 + 828c: 3000 movi r0, 0 + 828e: 1127 lrw r1, 0xb132 // 8328 + 8290: e3fffbd2 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_K:%f",e_save.p_k_val); + 8294: 9403 ld.w r0, (r4, 0xc) + 8296: e3ffdbd3 bsr 0x3a3c // 3a3c <__extendsfdf2> + 829a: 6c83 mov r2, r0 + 829c: 6cc7 mov r3, r1 + 829e: 3000 movi r0, 0 + 82a0: 1123 lrw r1, 0xb142 // 832c + 82a2: e3fffbc9 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_OffSet:%f",e_save.i_OffSetVal); + 82a6: 9404 ld.w r0, (r4, 0x10) + 82a8: e3ffdbca bsr 0x3a3c // 3a3c <__extendsfdf2> + 82ac: 6c83 mov r2, r0 + 82ae: 6cc7 mov r3, r1 + 82b0: 3000 movi r0, 0 + 82b2: 1120 lrw r1, 0xb151 // 8330 + 82b4: e3fffbc0 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_OffSet:%f",e_save.p_OffSetVal); + 82b8: 9405 ld.w r0, (r4, 0x14) + 82ba: e3ffdbc1 bsr 0x3a3c // 3a3c <__extendsfdf2> + 82be: 6cc7 mov r3, r1 + 82c0: 6c83 mov r2, r0 + 82c2: 103d lrw r1, 0xb165 // 8334 + 82c4: 3000 movi r0, 0 + 82c6: e3fffbb7 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 82ca: e3ffeee1 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_max:%d",e_save.eng_save_max); + 82ce: 9446 ld.w r2, (r4, 0x18) + 82d0: 3000 movi r0, 0 + 82d2: 103a lrw r1, 0xb179 // 8338 + 82d4: e3fffbb0 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_offset:%d",e_save.eng_save_offset); + 82d8: 9447 ld.w r2, (r4, 0x1c) + 82da: 3000 movi r0, 0 + 82dc: 1038 lrw r1, 0xb18d // 833c + 82de: e3fffbab bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Collect_Tim:%d",e_save.Collect_Tim); + 82e2: 9448 ld.w r2, (r4, 0x20) + 82e4: 3000 movi r0, 0 + 82e6: 1037 lrw r1, 0xb1a4 // 8340 + 82e8: e3fffba6 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Report_Tim:%d",e_save.Report_Tim); + 82ec: 9449 ld.w r2, (r4, 0x24) + 82ee: 3000 movi r0, 0 + 82f0: 1035 lrw r1, 0xb1bb // 8344 + 82f2: e3fffba1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 82f6: 944a ld.w r2, (r4, 0x28) + 82f8: 3000 movi r0, 0 + 82fa: 1034 lrw r1, 0xb1d1 // 8348 + 82fc: e3fffb9c bsr 0x7a34 // 7a34 + + SYSCON_IWDCNT_Reload(); + 8300: e3ffeec6 bsr 0x608c // 608c + +#endif + +} + 8304: 1491 pop r4, r15 + 8306: 0000 bkpt + 8308: 00009c40 .long 0x00009c40 + 830c: 0036ee80 .long 0x0036ee80 + 8310: 00000bb8 .long 0x00000bb8 + 8314: 000927c0 .long 0x000927c0 + 8318: 0000b0fb .long 0x0000b0fb + 831c: 20000494 .long 0x20000494 + 8320: 0000b113 .long 0x0000b113 + 8324: 0000b122 .long 0x0000b122 + 8328: 0000b132 .long 0x0000b132 + 832c: 0000b142 .long 0x0000b142 + 8330: 0000b151 .long 0x0000b151 + 8334: 0000b165 .long 0x0000b165 + 8338: 0000b179 .long 0x0000b179 + 833c: 0000b18d .long 0x0000b18d + 8340: 0000b1a4 .long 0x0000b1a4 + 8344: 0000b1bb .long 0x0000b1bb + 8348: 0000b1d1 .long 0x0000b1d1 + +Disassembly of section .text.EEPROM_ReadTotalEng: + +0000834c : +/********************************************************************* + * Function Name : EEPROM_ReadTotalEng + * Description : 读取总电量、存储总次数 + *********************************************************************/ +U8_T EEPROM_ReadTotalEng(ENERGY_SAVE *info) +{ + 834c: 14d2 push r4-r5, r15 + 834e: 1430 subi r14, r14, 64 + 8350: 6d43 mov r5, r0 + U8_T read_info[10]; //帧头 + U8_T para_data[EEPROM_ENERGY_SIZE]; //存储数据 + UINT16 read_len = 0; //存储数据长度 + uint32_t save_block = 0; //存储扇区编号 + + memset(read_info,0,sizeof(read_info)); + 8352: 320a movi r2, 10 + 8354: 3100 movi r1, 0 + 8356: 6c3b mov r0, r14 + 8358: e3ffe300 bsr 0x4958 // 4958 <__memset_fast> + memset(para_data,0,sizeof(para_data)); + 835c: 3232 movi r2, 50 + 835e: 3100 movi r1, 0 + 8360: 1803 addi r0, r14, 12 + 8362: e3ffe2fb bsr 0x4958 // 4958 <__memset_fast> + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8366: 1163 lrw r3, 0x20000494 // 83f0 + 8368: 9387 ld.w r4, (r3, 0x1c) + 836a: 3c40 cmpnei r4, 0 + 836c: 0c3b bf 0x83e2 // 83e2 + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + + temp_addr = EEPROM_EngSave_StartAddr + (save_block - 1) * EEPROM_OFFSET_ADDRSIZE; //通过扇区编号计算当前总能耗存储扇区地址 + 836e: 1162 lrw r3, 0x400008 // 83f4 + 8370: 610c addu r4, r3 + 8372: 4486 lsli r4, r4, 6 + + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 8374: 1141 lrw r2, 0xeffffdc0 // 83f8 + 8376: 33b0 movi r3, 176 + 8378: 6090 addu r2, r4 + 837a: 4363 lsli r3, r3, 3 + 837c: 648c cmphs r3, r2 + 837e: 0c34 bf 0x83e6 // 83e6 + + ReadDataArry_U8(temp_addr,4,read_info); //读取目标地址的标志位和存储数据长度 + 8380: 6cbb mov r2, r14 + 8382: 3104 movi r1, 4 + 8384: 6c13 mov r0, r4 + 8386: e3fff2bd bsr 0x6900 // 6900 + + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 838a: d84e0000 ld.b r2, (r14, 0x0) + 838e: 33a6 movi r3, 166 + 8390: 64ca cmpne r2, r3 + 8392: 082c bt 0x83ea // 83ea + + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 8394: d82e0002 ld.b r1, (r14, 0x2) + 8398: d86e0001 ld.b r3, (r14, 0x1) + 839c: 4128 lsli r1, r1, 8 + 839e: 6c4c or r1, r3 + + if(read_len <= EEPROM_ENERGY_SIZE){ + 83a0: 3332 movi r3, 50 + 83a2: 644c cmphs r3, r1 + 83a4: 0c16 bf 0x83d0 // 83d0 + + ReadDataArry_U8(temp_addr+EEPROM_Offset_Data,read_len,para_data); + 83a6: 5c0e addi r0, r4, 4 + 83a8: 1a03 addi r2, r14, 12 + 83aa: e3fff2ab bsr 0x6900 // 6900 + + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE)) == read_info[3]){ + 83ae: 310c movi r1, 12 + 83b0: 1803 addi r0, r14, 12 + 83b2: e3fffdbb bsr 0x7f28 // 7f28 + 83b6: d86e0003 ld.b r3, (r14, 0x3) + 83ba: 640e cmpne r3, r0 + 83bc: 080c bt 0x83d4 // 83d4 + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE)); + 83be: 1903 addi r1, r14, 12 + 83c0: 320c movi r2, 12 + 83c2: 6c17 mov r0, r5 + 83c4: e3ffe30e bsr 0x49e0 // 49e0 <__memcpy_fast> + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadSucc"); + 83c8: 102d lrw r1, 0xb1ea // 83fc + 83ca: 3000 movi r0, 0 + 83cc: e3fffb34 bsr 0x7a34 // 7a34 + return 0x04; + } + + } + + return 0x00; + 83d0: 3000 movi r0, 0 + 83d2: 0406 br 0x83de // 83de + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadFail"); + 83d4: 3000 movi r0, 0 + 83d6: 102b lrw r1, 0xb1ff // 8400 + 83d8: e3fffb2e bsr 0x7a34 // 7a34 + return 0x04; + 83dc: 3004 movi r0, 4 +} + 83de: 1410 addi r14, r14, 64 + 83e0: 1492 pop r4-r5, r15 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 83e2: 3001 movi r0, 1 + 83e4: 07fd br 0x83de // 83de + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 83e6: 3002 movi r0, 2 + 83e8: 07fb br 0x83de // 83de + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 83ea: 3003 movi r0, 3 + 83ec: 07f9 br 0x83de // 83de + 83ee: 0000 bkpt + 83f0: 20000494 .long 0x20000494 + 83f4: 00400008 .long 0x00400008 + 83f8: effffdc0 .long 0xeffffdc0 + 83fc: 0000b1ea .long 0x0000b1ea + 8400: 0000b1ff .long 0x0000b1ff + +Disassembly of section .text.EEPROM_WriteTotalEng: + +00008404 : +/********************************************************************* + * Function Name : EEPROM_WriteTotalEng + * Description : 写入总电量 + *********************************************************************/ +U8_T EEPROM_WriteTotalEng(ENERGY_SAVE *info) +{ + 8404: 14d4 push r4-r7, r15 + 8406: 142f subi r14, r14, 60 + U8_T savepara_falg = 0x00; + U32_T temp_addr = EEPROM_EngSave_StartAddr; + U16_T save_len = sizeof(ENERGY_SAVE); + uint32_t save_block = 0,save_cnt = 0; + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 8408: 11c7 lrw r6, 0x20000494 // 84a4 +{ + 840a: 6dc3 mov r7, r0 + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 840c: 9667 ld.w r3, (r6, 0x1c) + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 840e: 3b40 cmpnei r3, 0 + 8410: 0c43 bf 0x8496 // 8496 + if(e_save.eng_save_max == 0) return 0x02; + 8412: 9626 ld.w r1, (r6, 0x18) + 8414: 3940 cmpnei r1, 0 + 8416: 0c42 bf 0x849a // 849a + + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 8418: 3200 movi r2, 0 + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + 841a: 9001 ld.w r0, (r0, 0x4) + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 841c: 2a00 subi r2, 1 + 841e: 6482 cmpne r0, r2 + 8420: 0c3f bf 0x849e // 849e + return 0x03; + } + info->eng_save_cnt++; + 8422: 2000 addi r0, 1 + + if(info->eng_save_cnt > e_save.eng_save_max) + 8424: 6404 cmphs r1, r0 + info->eng_save_cnt++; + 8426: b701 st.w r0, (r7, 0x4) + if(info->eng_save_cnt > e_save.eng_save_max) + 8428: 0835 bt 0x8492 // 8492 + 842a: b860 st.w r3, (r14, 0x0) + { + e_save.eng_save_offset = (info->eng_save_cnt/e_save.eng_save_max)+1; //更新扇区编号 + 842c: e3fff84e bsr 0x74c8 // 74c8 <__udivsi3> + 8430: 2000 addi r0, 1 + 8432: b607 st.w r0, (r6, 0x1c) + savepara_falg = 0x01; + 8434: 3401 movi r4, 1 + 8436: 9860 ld.w r3, (r14, 0x0) + + } + + //通过扇区编号计算当前总能耗存储扇区地址 + temp_addr = EEPROM_EngSave_StartAddr + (e_save.eng_save_offset - 1) * EEPROM_OFFSET_ADDRSIZE; + 8438: 105c lrw r2, 0x400008 // 84a8 + 843a: 96a7 ld.w r5, (r6, 0x1c) + 843c: 6148 addu r5, r2 + 843e: 45a6 lsli r5, r5, 6 + + if(temp_addr > EEPROM_EngSave_EndAddr ) //超限,不再改变存储扇区 + 8440: 105b lrw r2, 0x100007c0 // 84ac + 8442: 6548 cmphs r2, r5 + 8444: 0804 bt 0x844c // 844c + { + e_save.eng_save_offset = save_block; + 8446: b667 st.w r3, (r6, 0x1c) + savepara_falg = 0x00; + //info->eng_save_cnt = save_cnt; + temp_addr = EEPROM_EngSave_EndAddr; + 8448: 6d4b mov r5, r2 + savepara_falg = 0x00; + 844a: 3400 movi r4, 0 + } + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 844c: 3300 movi r3, 0 + 844e: 2b59 subi r3, 90 + 8450: dc6e0004 st.b r3, (r14, 0x4) + save_data[1] = save_len & 0xFF; + 8454: 330c movi r3, 12 + 8456: dc6e0005 st.b r3, (r14, 0x5) + save_data[2] = (save_len >> 8) & 0xFF; + 845a: 3300 movi r3, 0 + 845c: dc6e0006 st.b r3, (r14, 0x6) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8460: 1b02 addi r3, r14, 8 + 8462: 320c movi r2, 12 + 8464: 6c0f mov r0, r3 + 8466: 6c5f mov r1, r7 + 8468: e3ffe2bc bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 846c: 310c movi r1, 12 + 846e: e3fffd5d bsr 0x7f28 // 7f28 + 8472: dc0e0007 st.b r0, (r14, 0x7) + + save_len+=4; + + Page_ProgramData(temp_addr,save_len,save_data); + 8476: 1a01 addi r2, r14, 4 + 8478: 3110 movi r1, 16 + 847a: 6c17 mov r0, r5 + 847c: e3fff1f2 bsr 0x6860 // 6860 + + + if(savepara_falg == 0x01) + 8480: 3c41 cmpnei r4, 1 + 8482: 0805 bt 0x848c // 848c + { + EEOROM_ENERGY_WriteSet(&e_save); + 8484: 1008 lrw r0, 0x20000494 // 84a4 + 8486: e3fffe05 bsr 0x8090 // 8090 + } + + return 0; + 848a: 3400 movi r4, 0 +} + 848c: 6c13 mov r0, r4 + 848e: 140f addi r14, r14, 60 + 8490: 1494 pop r4-r7, r15 + U8_T savepara_falg = 0x00; + 8492: 3400 movi r4, 0 + 8494: 07d2 br 0x8438 // 8438 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8496: 3401 movi r4, 1 + 8498: 07fa br 0x848c // 848c + if(e_save.eng_save_max == 0) return 0x02; + 849a: 3402 movi r4, 2 + 849c: 07f8 br 0x848c // 848c + return 0x03; + 849e: 3403 movi r4, 3 + 84a0: 07f6 br 0x848c // 848c + 84a2: 0000 bkpt + 84a4: 20000494 .long 0x20000494 + 84a8: 00400008 .long 0x00400008 + 84ac: 100007c0 .long 0x100007c0 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +000084b0 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 84b0: 14d1 push r4, r15 + 84b2: 1432 subi r14, r14, 72 + 84b4: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 84b6: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 84b8: 3240 movi r2, 64 + 84ba: 3100 movi r1, 0 + 84bc: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 84be: b860 st.w r3, (r14, 0x0) + 84c0: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 84c4: e3ffe24a bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 84c8: 3080 movi r0, 128 + 84ca: 6cbb mov r2, r14 + 84cc: 3104 movi r1, 4 + 84ce: 4015 lsli r0, r0, 21 + 84d0: e3fff218 bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 84d4: d84e0000 ld.b r2, (r14, 0x0) + 84d8: 33ae movi r3, 174 + 84da: 64ca cmpne r2, r3 + 84dc: 0c04 bf 0x84e4 // 84e4 + return 0x00; + } + } + } + + return 0x01; + 84de: 3001 movi r0, 1 +} + 84e0: 1412 addi r14, r14, 72 + 84e2: 1491 pop r4, r15 + read_len |= read_info[1]; + 84e4: d82e0002 ld.b r1, (r14, 0x2) + 84e8: d86e0001 ld.b r3, (r14, 0x1) + 84ec: 4128 lsli r1, r1, 8 + 84ee: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 84f0: 3340 movi r3, 64 + 84f2: 644c cmphs r3, r1 + 84f4: 0ff5 bf 0x84de // 84de + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 84f6: 1a02 addi r2, r14, 8 + 84f8: 101b lrw r0, 0x10000004 // 8564 + 84fa: e3fff203 bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 84fe: 3125 movi r1, 37 + 8500: 1802 addi r0, r14, 8 + 8502: e3fffd13 bsr 0x7f28 // 7f28 + 8506: d86e0003 ld.b r3, (r14, 0x3) + 850a: 640e cmpne r3, r0 + 850c: 0be9 bt 0x84de // 84de + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 850e: 3225 movi r2, 37 + 8510: 1902 addi r1, r14, 8 + 8512: 6c13 mov r0, r4 + 8514: e3ffe266 bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 8518: 1094 lrw r4, 0x200004c0 // 8568 + SYSCON_IWDCNT_Reload(); + 851a: e3ffedb9 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 851e: 8440 ld.b r2, (r4, 0x0) + 8520: 1033 lrw r1, 0xb267 // 856c + 8522: 3000 movi r0, 0 + 8524: e3fffa88 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevType:%d",g_mcu_dev.dev_type); + 8528: 8441 ld.b r2, (r4, 0x1) + 852a: 1032 lrw r1, 0xb275 // 8570 + 852c: 3000 movi r0, 0 + 852e: e3fffa83 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 8532: 8442 ld.b r2, (r4, 0x2) + 8534: 1030 lrw r1, 0xb283 // 8574 + 8536: 3000 movi r0, 0 + 8538: e3fffa7e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAppVer:%d",g_mcu_dev.dev_app_ver); + 853c: 8443 ld.b r2, (r4, 0x3) + 853e: 102f lrw r1, 0xb294 // 8578 + 8540: 3000 movi r0, 0 + 8542: e3fffa79 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 8546: 8444 ld.b r2, (r4, 0x4) + 8548: 102d lrw r1, 0xb2a4 // 857c + 854a: 3000 movi r0, 0 + 854c: e3fffa74 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8550: 3000 movi r0, 0 + 8552: 5c52 addi r2, r4, 5 + 8554: 102b lrw r1, 0xb2b5 // 8580 + 8556: e3fffa6f bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 855a: e3ffed99 bsr 0x608c // 608c + return 0x00; + 855e: 3000 movi r0, 0 + 8560: 07c0 br 0x84e0 // 84e0 + 8562: 0000 bkpt + 8564: 10000004 .long 0x10000004 + 8568: 200004c0 .long 0x200004c0 + 856c: 0000b267 .long 0x0000b267 + 8570: 0000b275 .long 0x0000b275 + 8574: 0000b283 .long 0x0000b283 + 8578: 0000b294 .long 0x0000b294 + 857c: 0000b2a4 .long 0x0000b2a4 + 8580: 0000b2b5 .long 0x0000b2b5 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00008584 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 8584: 14d0 push r15 + 8586: 1432 subi r14, r14, 72 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 8588: 3300 movi r3, 0 + 858a: 2b51 subi r3, 82 + 858c: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 8590: 3325 movi r3, 37 + 8592: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 8596: 3300 movi r3, 0 + 8598: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 859c: 1b01 addi r3, r14, 4 +{ + 859e: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 85a0: 3225 movi r2, 37 + 85a2: 6c0f mov r0, r3 + 85a4: e3ffe21e bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 85a8: 3125 movi r1, 37 + 85aa: e3fffcbf bsr 0x7f28 // 7f28 + 85ae: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 85b2: 3080 movi r0, 128 + 85b4: 4015 lsli r0, r0, 21 + 85b6: 6cbb mov r2, r14 + 85b8: 3129 movi r1, 41 + 85ba: e3fff153 bsr 0x6860 // 6860 + + return 0; +} + 85be: 3000 movi r0, 0 + 85c0: 1412 addi r14, r14, 72 + 85c2: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +000085c4 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85c4: 14d2 push r4-r5, r15 + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + 85c6: 3300 movi r3, 0 + 85c8: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 85ca: 3306 movi r3, 6 + 85cc: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 85ce: 3303 movi r3, 3 + 85d0: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85d2: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 85d4: 3311 movi r3, 17 + 85d6: a064 st.b r3, (r0, 0x4) +{ + 85d8: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85da: 3220 movi r2, 32 + 85dc: 3100 movi r1, 0 + 85de: 6c17 mov r0, r5 + 85e0: e3ffe1bc bsr 0x4958 // 4958 <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 85e4: 3211 movi r2, 17 + 85e6: 1025 lrw r1, 0xb2c3 // 85f8 + 85e8: 6c17 mov r0, r5 + 85ea: e3ffe1fb bsr 0x49e0 // 49e0 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 85ee: 6c13 mov r0, r4 + 85f0: e3ffffca bsr 0x8584 // 8584 +#endif +} + 85f4: 1492 pop r4-r5, r15 + 85f6: 0000 bkpt + 85f8: 0000b2c3 .long 0x0000b2c3 + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +000085fc : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85fc: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 85fe: 8063 ld.b r3, (r0, 0x3) + 8600: 3b43 cmpnei r3, 3 +{ + 8602: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 8604: 0c21 bf 0x8646 // 8646 + { + info->dev_app_ver = Project_FW_Version; + 8606: 3303 movi r3, 3 + 8608: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 860a: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 860c: 8461 ld.b r3, (r4, 0x1) + 860e: 3b46 cmpnei r3, 6 + 8610: 0c04 bf 0x8618 // 8618 + { + info->dev_type = Project_Type; + 8612: 3306 movi r3, 6 + 8614: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 8616: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 8618: 8464 ld.b r3, (r4, 0x4) + 861a: 3b51 cmpnei r3, 17 + 861c: 0c04 bf 0x8624 // 8624 + { + info->dev_name_len = sizeof(Peoject_Name); + 861e: 3311 movi r3, 17 + 8620: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 8622: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 8624: 5cd2 addi r6, r4, 5 + 8626: 3211 movi r2, 17 + 8628: 102a lrw r1, 0xb2c3 // 8650 + 862a: 6c1b mov r0, r6 + 862c: e3ffe20c bsr 0x4a44 // 4a44 <__GI_strncmp> + 8630: 3840 cmpnei r0, 0 + 8632: 0c0c bf 0x864a // 864a + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 8634: 8444 ld.b r2, (r4, 0x4) + 8636: 1027 lrw r1, 0xb2c3 // 8650 + 8638: 6c1b mov r0, r6 + 863a: e3ffe1d3 bsr 0x49e0 // 49e0 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 863e: 6c13 mov r0, r4 + 8640: e3ffffa2 bsr 0x8584 // 8584 + } +#endif +} + 8644: 0405 br 0x864e // 864e + U8_T save_flag = 0; + 8646: 3500 movi r5, 0 + 8648: 07e2 br 0x860c // 860c + if(save_flag == 0x01) + 864a: 3d41 cmpnei r5, 1 + 864c: 0ff9 bf 0x863e // 863e +} + 864e: 1493 pop r4-r6, r15 + 8650: 0000b2c3 .long 0x0000b2c3 + +Disassembly of section .text.EEPROM_Init: + +00008654 : +{ + 8654: 14d2 push r4-r5, r15 + EnIFCClk; //使能 IFC 时钟 + 8656: 117b lrw r3, 0x20000060 // 8740 + 8658: 3201 movi r2, 1 + 865a: 9360 ld.w r3, (r3, 0x0) + 865c: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 865e: 9345 ld.w r2, (r3, 0x14) + 8660: 3aa1 bseti r2, 1 + 8662: 3ab0 bseti r2, 16 + 8664: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 8666: 300a movi r0, 10 + 8668: e3fff184 bsr 0x6970 // 6970 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 866c: 1196 lrw r4, 0x200004c0 // 8744 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read MCU_DEV <*****************/"); + 866e: 1137 lrw r1, 0xb2d4 // 8748 + 8670: 3000 movi r0, 0 + 8672: e3fff9e1 bsr 0x7a34 // 7a34 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 8676: 3225 movi r2, 37 + 8678: 3100 movi r1, 0 + 867a: 6c13 mov r0, r4 + 867c: e3ffe16e bsr 0x4958 // 4958 <__memset_fast> + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 8680: 6c13 mov r0, r4 + 8682: e3ffff17 bsr 0x84b0 // 84b0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 8686: 1172 lrw r3, 0x20000480 // 874c + 8688: 8366 ld.b r3, (r3, 0x6) + 868a: 8440 ld.b r2, (r4, 0x0) + 868c: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 868e: 6d43 mov r5, r0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 8690: 0c05 bf 0x869a // 869a + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 8692: 6c13 mov r0, r4 + g_mcu_dev.dev_addr = g_Dip.addr; + 8694: a460 st.b r3, (r4, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 8696: e3ffff77 bsr 0x8584 // 8584 + if(rev == 0x00){ + 869a: 3d40 cmpnei r5, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 869c: 110a lrw r0, 0x200004c0 // 8744 + if(rev == 0x00){ + 869e: 0837 bt 0x870c // 870c + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 86a0: e3ffffae bsr 0x85fc // 85fc + BLV_DetEnergy_Init(); + 86a4: e000008e bsr 0x87c0 // 87c0 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read EngPara <*****************/"); + 86a8: 112a lrw r1, 0xb31d // 8750 + 86aa: 3000 movi r0, 0 + 86ac: e3fff9c4 bsr 0x7a34 // 7a34 + memset(&e_save,0,sizeof(ENERGY_SAVE_PARA)); + 86b0: 322c movi r2, 44 + 86b2: 3100 movi r1, 0 + 86b4: 1108 lrw r0, 0x20000494 // 8754 + 86b6: e3ffe151 bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEOROM_ENERGY_ReadSet(&e_save); //电能检测参数,读取 + 86ba: 1107 lrw r0, 0x20000494 // 8754 + 86bc: e3fffc42 bsr 0x7f40 // 7f40 + 86c0: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init1 ReadEngPara Rev:%d",eng_rev); + 86c2: 6c83 mov r2, r0 + 86c4: 1125 lrw r1, 0xb352 // 8758 + 86c6: 3000 movi r0, 0 + 86c8: e3fff9b6 bsr 0x7a34 // 7a34 + if(eng_rev == 0) + 86cc: 3c40 cmpnei r4, 0 + 86ce: 0c04 bf 0x86d6 // 86d6 + EEPROM_Default_ENERGY(&e_save); + 86d0: 1101 lrw r0, 0x20000494 // 8754 + 86d2: e3fffda7 bsr 0x8220 // 8220 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read TotalEng <*****************/"); + 86d6: 1122 lrw r1, 0xb36b // 875c + 86d8: 3000 movi r0, 0 + 86da: e3fff9ad bsr 0x7a34 // 7a34 + memset(&eng_info,0,sizeof(ENERGY_SAVE)); + 86de: 320c movi r2, 12 + 86e0: 3100 movi r1, 0 + 86e2: 1100 lrw r0, 0x200004e8 // 8760 + 86e4: e3ffe13a bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEPROM_ReadTotalEng(&eng_info); // + 86e8: 101e lrw r0, 0x200004e8 // 8760 + 86ea: e3fffe31 bsr 0x834c // 834c + 86ee: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Rev:%d",eng_rev); + 86f0: 6c83 mov r2, r0 + 86f2: 103d lrw r1, 0xb3a1 // 8764 + 86f4: 3000 movi r0, 0 + 86f6: e3fff99f bsr 0x7a34 // 7a34 + if(eng_rev == 0x00){ + 86fa: 3c40 cmpnei r4, 0 + 86fc: 0820 bt 0x873c // 873c + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal SUCC"); + 86fe: 103b lrw r1, 0xb3b8 // 8768 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 8700: 3000 movi r0, 0 + 8702: e3fff999 bsr 0x7a34 // 7a34 + BLV_DetEnergy_Default(); + 8706: e0000075 bsr 0x87f0 // 87f0 +} + 870a: 1492 pop r4-r5, r15 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 870c: e3ffff5c bsr 0x85c4 // 85c4 + SYSCON_IWDCNT_Reload(); + 8710: e3ffecbe bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE Use Defalut Para"); + 8714: 1036 lrw r1, 0xb309 // 876c + 8716: 3000 movi r0, 0 + 8718: e3fff98e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 871c: 8442 ld.b r2, (r4, 0x2) + 871e: 1035 lrw r1, 0xb283 // 8770 + 8720: 3000 movi r0, 0 + 8722: e3fff989 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 8726: 8444 ld.b r2, (r4, 0x4) + 8728: 1033 lrw r1, 0xb2a4 // 8774 + 872a: 3000 movi r0, 0 + 872c: e3fff984 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8730: 1052 lrw r2, 0x200004c5 // 8778 + 8732: 1033 lrw r1, 0xb2b5 // 877c + 8734: 3000 movi r0, 0 + 8736: e3fff97f bsr 0x7a34 // 7a34 + 873a: 07b5 br 0x86a4 // 86a4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 873c: 1031 lrw r1, 0xb3cd // 8780 + 873e: 07e1 br 0x8700 // 8700 + 8740: 20000060 .long 0x20000060 + 8744: 200004c0 .long 0x200004c0 + 8748: 0000b2d4 .long 0x0000b2d4 + 874c: 20000480 .long 0x20000480 + 8750: 0000b31d .long 0x0000b31d + 8754: 20000494 .long 0x20000494 + 8758: 0000b352 .long 0x0000b352 + 875c: 0000b36b .long 0x0000b36b + 8760: 200004e8 .long 0x200004e8 + 8764: 0000b3a1 .long 0x0000b3a1 + 8768: 0000b3b8 .long 0x0000b3b8 + 876c: 0000b309 .long 0x0000b309 + 8770: 0000b283 .long 0x0000b283 + 8774: 0000b2a4 .long 0x0000b2a4 + 8778: 200004c5 .long 0x200004c5 + 877c: 0000b2b5 .long 0x0000b2b5 + 8780: 0000b3cd .long 0x0000b3cd + +Disassembly of section .text.BT_Uart_Packing.part.3: + +00008784 : + +} + + +//组包发送,用于蓝牙设置的回复 +void BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag) + 8784: 14d4 push r4-r7, r15 + 8786: 3914 cmphsi r1, 21 + 8788: 6d83 mov r6, r0 + 878a: 6d4b mov r5, r2 + 878c: 6d07 mov r4, r1 + 878e: 0c02 bf 0x8792 // 8792 + 8790: 3414 movi r4, 20 + 8792: 75d0 zextb r7, r4 + + if(BT_Len > 20){ + BT_Len = 20; + } + + memset(g_Eng.BT_SdBuff,0,20); + 8794: 3214 movi r2, 20 + 8796: 3100 movi r1, 0 + 8798: 1008 lrw r0, 0x2000057d // 87b8 + 879a: e3ffe0df bsr 0x4958 // 4958 <__memset_fast> + memcpy(g_Eng.BT_SdBuff, data, BT_Len); + 879e: 6c9f mov r2, r7 + 87a0: 6c5b mov r1, r6 + 87a2: 1006 lrw r0, 0x2000057d // 87b8 + 87a4: e3ffe11e bsr 0x49e0 // 49e0 <__memcpy_fast> + g_Eng.BT_SdLen = BT_Len; + 87a8: 1045 lrw r2, 0x20000578 // 87bc + + g_Eng.BT_SendFlag |= (0x01 << flag); + 87aa: 3301 movi r3, 1 + 87ac: 8a2d ld.h r1, (r2, 0x1a) + 87ae: 70d4 lsl r3, r5 + 87b0: 6cc4 or r3, r1 + g_Eng.BT_SdLen = BT_Len; + 87b2: a299 st.b r4, (r2, 0x19) + g_Eng.BT_SendFlag |= (0x01 << flag); + 87b4: aa6d st.h r3, (r2, 0x1a) +} + 87b6: 1494 pop r4-r7, r15 + 87b8: 2000057d .long 0x2000057d + 87bc: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_DetEnergy_Init: + +000087c0 : +{ + 87c0: 14d0 push r15 + memset(&u_det,0,sizeof(DetUart_t)); + 87c2: 3248 movi r2, 72 + 87c4: 3100 movi r1, 0 + 87c6: 1008 lrw r0, 0x200004f4 // 87e4 + 87c8: e3ffe0c8 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_CalFactor,0,sizeof(HLW8110_REG)); + 87cc: 323c movi r2, 60 + 87ce: 3100 movi r1, 0 + 87d0: 1006 lrw r0, 0x2000053c // 87e8 + 87d2: e3ffe0c3 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_Eng,0,sizeof(DetEng_Info)); + 87d6: 3278 movi r2, 120 + 87d8: 3100 movi r1, 0 + 87da: 1005 lrw r0, 0x20000578 // 87ec + 87dc: e3ffe0be bsr 0x4958 // 4958 <__memset_fast> +} + 87e0: 1490 pop r15 + 87e2: 0000 bkpt + 87e4: 200004f4 .long 0x200004f4 + 87e8: 2000053c .long 0x2000053c + 87ec: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_DetEnergy_Default: + +000087f0 : +{ + 87f0: 14d3 push r4-r6, r15 + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 87f2: 11aa lrw r5, 0x20000494 // 8898 + 87f4: 118a lrw r4, 0x20000578 // 889c + 87f6: 95c1 ld.w r6, (r5, 0x4) + 87f8: 9434 ld.w r1, (r4, 0x50) + 87fa: 6c1b mov r0, r6 + 87fc: e3ffd88c bsr 0x3914 // 3914 <__nesf2> + 8800: 3840 cmpnei r0, 0 + 8802: 0c02 bf 0x8806 // 8806 + g_Eng.I_K1_Val = e_save.i_k1_val; + 8804: b4d4 st.w r6, (r4, 0x50) + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 8806: 95c2 ld.w r6, (r5, 0x8) + 8808: 9435 ld.w r1, (r4, 0x54) + 880a: 6c1b mov r0, r6 + 880c: e3ffd884 bsr 0x3914 // 3914 <__nesf2> + 8810: 3840 cmpnei r0, 0 + 8812: 0c02 bf 0x8816 // 8816 + g_Eng.I_K2_Val = e_save.i_k2_val; + 8814: b4d5 st.w r6, (r4, 0x54) + if(e_save.v_k_val != g_Eng.V_K_Val) + 8816: 95c0 ld.w r6, (r5, 0x0) + 8818: 9433 ld.w r1, (r4, 0x4c) + 881a: 6c1b mov r0, r6 + 881c: e3ffd87c bsr 0x3914 // 3914 <__nesf2> + 8820: 3840 cmpnei r0, 0 + 8822: 0c02 bf 0x8826 // 8826 + g_Eng.V_K_Val = e_save.v_k_val; + 8824: b4d3 st.w r6, (r4, 0x4c) + if(e_save.p_k_val != g_Eng.P_K_Val) + 8826: 95c3 ld.w r6, (r5, 0xc) + 8828: 9436 ld.w r1, (r4, 0x58) + 882a: 6c1b mov r0, r6 + 882c: e3ffd874 bsr 0x3914 // 3914 <__nesf2> + 8830: 3840 cmpnei r0, 0 + 8832: 0c02 bf 0x8836 // 8836 + g_Eng.P_K_Val = e_save.p_k_val; + 8834: b4d6 st.w r6, (r4, 0x58) + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8836: 95c4 ld.w r6, (r5, 0x10) + 8838: 9437 ld.w r1, (r4, 0x5c) + 883a: 6c1b mov r0, r6 + 883c: e3ffd86c bsr 0x3914 // 3914 <__nesf2> + 8840: 3840 cmpnei r0, 0 + 8842: 0c02 bf 0x8846 // 8846 + g_Eng.I_OffSetVal = e_save.i_OffSetVal; + 8844: b4d7 st.w r6, (r4, 0x5c) + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8846: 95c5 ld.w r6, (r5, 0x14) + 8848: 9438 ld.w r1, (r4, 0x60) + 884a: 6c1b mov r0, r6 + 884c: e3ffd864 bsr 0x3914 // 3914 <__nesf2> + 8850: 3840 cmpnei r0, 0 + 8852: 0c02 bf 0x8856 // 8856 + g_Eng.P_OffSetVal = e_save.p_OffSetVal; + 8854: b4d8 st.w r6, (r4, 0x60) + if(eng_info.eng_total != g_Eng.Total_Eng) + 8856: 1073 lrw r3, 0x200004e8 // 88a0 + 8858: 9340 ld.w r2, (r3, 0x0) + 885a: 9428 ld.w r1, (r4, 0x20) + 885c: 644a cmpne r2, r1 + 885e: 0c03 bf 0x8864 // 8864 + g_Eng.Total_Eng = eng_info.eng_total; + 8860: b448 st.w r2, (r4, 0x20) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 8862: b449 st.w r2, (r4, 0x24) + if(eng_info.U32_EnergyA_RegData != g_Eng.U32_EnergyA_RegData) + 8864: 9362 ld.w r3, (r3, 0x8) + 8866: 944f ld.w r2, (r4, 0x3c) + 8868: 648e cmpne r3, r2 + 886a: 0c02 bf 0x886e // 886e + g_Eng.U32_EnergyA_RegData = eng_info.U32_EnergyA_RegData; + 886c: b46f st.w r3, (r4, 0x3c) + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 886e: 9568 ld.w r3, (r5, 0x20) + 8870: 9459 ld.w r2, (r4, 0x64) + 8872: 648e cmpne r3, r2 + 8874: 0c02 bf 0x8878 // 8878 + g_Eng.Collect_Tim = e_save.Collect_Tim; + 8876: b479 st.w r3, (r4, 0x64) + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 8878: 956a ld.w r3, (r5, 0x28) + 887a: 945b ld.w r2, (r4, 0x6c) + 887c: 648e cmpne r3, r2 + 887e: 0c02 bf 0x8882 // 8882 + g_Eng.SaveFlash_Tim = e_save.SaveFlash_Tim; + 8880: b47b st.w r3, (r4, 0x6c) + if(e_save.Report_Tim != g_Eng.Report_Tim) + 8882: 9569 ld.w r3, (r5, 0x24) + 8884: 945a ld.w r2, (r4, 0x68) + 8886: 648e cmpne r3, r2 + 8888: 0c02 bf 0x888c // 888c + g_Eng.Report_Tim = e_save.Report_Tim; + 888a: b47a st.w r3, (r4, 0x68) + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_DetEnergy_Default Init"); + 888c: 1026 lrw r1, 0xb3e2 // 88a4 + 888e: 3000 movi r0, 0 + 8890: e3fff8d2 bsr 0x7a34 // 7a34 +} + 8894: 1493 pop r4-r6, r15 + 8896: 0000 bkpt + 8898: 20000494 .long 0x20000494 + 889c: 20000578 .long 0x20000578 + 88a0: 200004e8 .long 0x200004e8 + 88a4: 0000b3e2 .long 0x0000b3e2 + +Disassembly of section .text.HLW8110_CheckSum: + +000088a8 : +{ + 88a8: 6040 addu r1, r0 + U8_T data_sum = 0; + 88aa: 3300 movi r3, 0 + for(U16_T i = 0;i + return ~data_sum; + 88b0: 6cce nor r3, r3 + 88b2: 740c zextb r0, r3 +} + 88b4: 783c jmp r15 + data_sum += data[i]; + 88b6: 8040 ld.b r2, (r0, 0x0) + 88b8: 60c8 addu r3, r2 + 88ba: 74cc zextb r3, r3 + 88bc: 2000 addi r0, 1 + 88be: 07f7 br 0x88ac // 88ac + +Disassembly of section .text.HLW8110_WriteREG_EN: + +000088c0 : +{ + 88c0: 14d0 push r15 + 88c2: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 88c4: 3300 movi r3, 0 + 88c6: b860 st.w r3, (r14, 0x0) + 88c8: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 88cc: 3300 movi r3, 0 + 88ce: 2b5a subi r3, 91 + 88d0: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 88d4: 3300 movi r3, 0 + 88d6: 2b15 subi r3, 22 + 88d8: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xE5; + 88dc: 3300 movi r3, 0 + 88de: 2b1a subi r3, 27 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88e0: 3103 movi r1, 3 + 88e2: 6c3b mov r0, r14 + SendData[SendLen++] = 0xE5; + 88e4: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88e8: e3ffffe0 bsr 0x88a8 // 88a8 + 88ec: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_EN len %d:",SendLen); + 88f0: 3204 movi r2, 4 + 88f2: 1027 lrw r1, 0xb3fd // 890c + 88f4: 3002 movi r0, 2 + 88f6: e3fff89f bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 88fa: 1066 lrw r3, 0x20000040 // 8910 + 88fc: 3204 movi r2, 4 + 88fe: 9300 ld.w r0, (r3, 0x0) + 8900: 6c7b mov r1, r14 + 8902: e3ffef8b bsr 0x6818 // 6818 +} + 8906: 1402 addi r14, r14, 8 + 8908: 1490 pop r15 + 890a: 0000 bkpt + 890c: 0000b3fd .long 0x0000b3fd + 8910: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_WriteREG_DIS: + +00008914 : +{ + 8914: 14d0 push r15 + 8916: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 8918: 3300 movi r3, 0 + 891a: b860 st.w r3, (r14, 0x0) + 891c: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 8920: 3300 movi r3, 0 + 8922: 2b5a subi r3, 91 + 8924: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 8928: 3300 movi r3, 0 + 892a: 2b15 subi r3, 22 + 892c: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xDC; + 8930: 3300 movi r3, 0 + 8932: 2b23 subi r3, 36 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8934: 3103 movi r1, 3 + 8936: 6c3b mov r0, r14 + SendData[SendLen++] = 0xDC; + 8938: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 893c: e3ffffb6 bsr 0x88a8 // 88a8 + 8940: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_DIS len%d:",SendLen); + 8944: 3204 movi r2, 4 + 8946: 1027 lrw r1, 0xb411 // 8960 + 8948: 3002 movi r0, 2 + 894a: e3fff875 bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 894e: 1066 lrw r3, 0x20000040 // 8964 + 8950: 3204 movi r2, 4 + 8952: 9300 ld.w r0, (r3, 0x0) + 8954: 6c7b mov r1, r14 + 8956: e3ffef61 bsr 0x6818 // 6818 +} + 895a: 1402 addi r14, r14, 8 + 895c: 1490 pop r15 + 895e: 0000 bkpt + 8960: 0000b411 .long 0x0000b411 + 8964: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_Reset: + +00008968 : +{ + 8968: 14d0 push r15 + 896a: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 896c: 3300 movi r3, 0 + 896e: b860 st.w r3, (r14, 0x0) + 8970: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 8974: 3300 movi r3, 0 + 8976: 2b5a subi r3, 91 + 8978: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 897c: 3300 movi r3, 0 + 897e: 2b15 subi r3, 22 + 8980: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0x96; + 8984: 3300 movi r3, 0 + 8986: 2b69 subi r3, 106 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8988: 3103 movi r1, 3 + 898a: 6c3b mov r0, r14 + SendData[SendLen++] = 0x96; + 898c: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8990: e3ffff8c bsr 0x88a8 // 88a8 + 8994: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"HLW8110 Reset"); + 8998: 3001 movi r0, 1 + 899a: 1026 lrw r1, 0xb425 // 89b0 + 899c: e3fff84c bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 89a0: 1065 lrw r3, 0x20000040 // 89b4 + 89a2: 3204 movi r2, 4 + 89a4: 9300 ld.w r0, (r3, 0x0) + 89a6: 6c7b mov r1, r14 + 89a8: e3ffef38 bsr 0x6818 // 6818 +} + 89ac: 1402 addi r14, r14, 8 + 89ae: 1490 pop r15 + 89b0: 0000b425 .long 0x0000b425 + 89b4: 20000040 .long 0x20000040 + +Disassembly of section .text.BLV_HLW8110_RWCMD_Packaging: + +000089b8 : +{ + 89b8: 14d4 push r4-r7, r15 + 89ba: 1421 subi r14, r14, 4 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 89bc: 1181 lrw r4, 0x200004f4 // 8a40 +{ + 89be: 6dc3 mov r7, r0 + 89c0: 6d47 mov r5, r1 + 89c2: 6d8b mov r6, r2 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 89c4: 3100 movi r1, 0 + 89c6: 321e movi r2, 30 + 89c8: 6c13 mov r0, r4 + 89ca: e3ffdfc7 bsr 0x4958 // 4958 <__memset_fast> + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89ce: 3300 movi r3, 0 + 89d0: 2b5a subi r3, 91 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89d2: 3220 movi r2, 32 + 89d4: 6090 addu r2, r4 + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89d6: a460 st.b r3, (r4, 0x0) + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89d8: 3302 movi r3, 2 + 89da: a27c st.b r3, (r2, 0x1c) + 89dc: 3300 movi r3, 0 + 89de: 2b7f subi r3, 128 + 89e0: 6dcc or r7, r3 + u_det.Resent = 0x00; + 89e2: 3340 movi r3, 64 + 89e4: 60d0 addu r3, r4 + 89e6: 3100 movi r1, 0 + if( len > 0) + 89e8: 3d40 cmpnei r5, 0 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89ea: a4e1 st.b r7, (r4, 0x1) + u_det.Resent = 0x00; + 89ec: a321 st.b r1, (r3, 0x1) + u_det.RevNum = 0x00; + 89ee: a322 st.b r1, (r3, 0x2) + 89f0: 6dcb mov r7, r2 + if( len > 0) + 89f2: 0c22 bf 0x8a36 // 8a36 + u_det.State = 0x01; + 89f4: 3201 movi r2, 1 + 89f6: a75e st.b r2, (r7, 0x1e) + u_det.WR_flag = SEND_W; + 89f8: 3202 movi r2, 2 + 89fa: a340 st.b r2, (r3, 0x0) + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89fc: 5d43 subi r2, r5, 1 + for (U8_T i = 0; i < len; i++) + 89fe: 3300 movi r3, 0 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a00: b840 st.w r2, (r14, 0x0) + for (U8_T i = 0; i < len; i++) + 8a02: 654c cmphs r3, r5 + 8a04: 0c0f bf 0x8a22 // 8a22 + u_det.SendLen += len; + 8a06: 7554 zextb r5, r5 + 8a08: 5dc6 addi r6, r5, 2 + 8a0a: 7598 zextb r6, r6 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 8a0c: 7459 zexth r1, r6 + 8a0e: 100d lrw r0, 0x200004f4 // 8a40 + 8a10: 6118 addu r4, r6 + u_det.SendLen += len; + 8a12: a7dc st.b r6, (r7, 0x1c) + u_det.SendLen += 1; + 8a14: 2502 addi r5, 3 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 8a16: e3ffff49 bsr 0x88a8 // 88a8 + 8a1a: a400 st.b r0, (r4, 0x0) + u_det.SendLen += 1; + 8a1c: a7bc st.b r5, (r7, 0x1c) +} + 8a1e: 1401 addi r14, r14, 4 + 8a20: 1494 pop r4-r7, r15 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a22: 9840 ld.w r2, (r14, 0x0) + 8a24: 608e subu r2, r3 + 8a26: 4243 lsli r2, r2, 3 + 8a28: 6c5b mov r1, r6 + 8a2a: 5c0c addu r0, r4, r3 + 8a2c: 7049 lsr r1, r2 + for (U8_T i = 0; i < len; i++) + 8a2e: 2300 addi r3, 1 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a30: a022 st.b r1, (r0, 0x2) + for (U8_T i = 0; i < len; i++) + 8a32: 74cc zextb r3, r3 + 8a34: 07e7 br 0x8a02 // 8a02 + u_det.State = 0x01; + 8a36: 3101 movi r1, 1 + 8a38: a23e st.b r1, (r2, 0x1e) + u_det.WR_flag = SEND_R; + 8a3a: 3201 movi r2, 1 + 8a3c: a340 st.b r2, (r3, 0x0) +} + 8a3e: 07f0 br 0x8a1e // 8a1e + 8a40: 200004f4 .long 0x200004f4 + +Disassembly of section .text.HLW8110_RWCMD_Send: + +00008a44 : +{ + 8a44: 14d1 push r4, r15 + 8a46: 1428 subi r14, r14, 32 + if( (WR_SelFlag == SEND_W)&&(u_det.SendLen > 3) ) + 8a48: 3842 cmpnei r0, 2 + 8a4a: 0818 bt 0x8a7a // 8a7a + 8a4c: 1076 lrw r3, 0x20000514 // 8aa4 + 8a4e: 839c ld.b r4, (r3, 0x1c) + 8a50: 3c03 cmphsi r4, 4 + 8a52: 0c22 bf 0x8a96 // 8a96 + memcpy(SendData,u_det.SendBuff,u_det.SendLen); + 8a54: 6c93 mov r2, r4 + 8a56: 1035 lrw r1, 0x200004f4 // 8aa8 + 8a58: 6c3b mov r0, r14 + 8a5a: e3ffdfc3 bsr 0x49e0 // 49e0 <__memcpy_fast> + SendLen = u_det.SendLen; + 8a5e: 7511 zexth r4, r4 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"SendBuff:",SendData,SendLen); + 8a60: 6cd3 mov r3, r4 + 8a62: 6cbb mov r2, r14 + 8a64: 1032 lrw r1, 0xb440 // 8aac + 8a66: 3002 movi r0, 2 + 8a68: e3fff8aa bsr 0x7bbc // 7bbc + UARTTransmit(UART0,SendData,SendLen); + 8a6c: 1071 lrw r3, 0x20000040 // 8ab0 + 8a6e: 6c93 mov r2, r4 + 8a70: 9300 ld.w r0, (r3, 0x0) + 8a72: 6c7b mov r1, r14 + 8a74: e3ffeed2 bsr 0x6818 // 6818 + 8a78: 0413 br 0x8a9e // 8a9e + else if(WR_SelFlag == SEND_R) + 8a7a: 3841 cmpnei r0, 1 + 8a7c: 080d bt 0x8a96 // 8a96 + memcpy(SendData,u_det.SendBuff,2); + 8a7e: 106b lrw r3, 0x200004f4 // 8aa8 + 8a80: 8b40 ld.h r2, (r3, 0x0) + 8a82: 74c9 zexth r3, r2 + 8a84: dc4e1000 st.h r2, (r14, 0x0) + SendData[1] = (SendData[1] &0x7f ); + 8a88: 4b68 lsri r3, r3, 8 + 8a8a: 327f movi r2, 127 + 8a8c: 68c8 and r3, r2 + 8a8e: dc6e0001 st.b r3, (r14, 0x1) + SendLen = 2; + 8a92: 3402 movi r4, 2 + 8a94: 07e6 br 0x8a60 // 8a60 + Dbg_Println(DBG_BIT_Debug_STATUS,"Send Err!:%d"); + 8a96: 1028 lrw r1, 0xb433 // 8ab4 + 8a98: 3002 movi r0, 2 + 8a9a: e3fff7cd bsr 0x7a34 // 7a34 +} + 8a9e: 1408 addi r14, r14, 32 + 8aa0: 1491 pop r4, r15 + 8aa2: 0000 bkpt + 8aa4: 20000514 .long 0x20000514 + 8aa8: 200004f4 .long 0x200004f4 + 8aac: 0000b440 .long 0x0000b440 + 8ab0: 20000040 .long 0x20000040 + 8ab4: 0000b433 .long 0x0000b433 + +Disassembly of section .text.HLW8110_CleanSdFlag: + +00008ab8 : + u_det.WR_flag = SEND_NONE; + 8ab8: 1063 lrw r3, 0x20000534 // 8ac4 + 8aba: 3200 movi r2, 0 + 8abc: a340 st.b r2, (r3, 0x0) + u_det.RevNum = REV_NONE; + 8abe: a342 st.b r2, (r3, 0x2) +} + 8ac0: 783c jmp r15 + 8ac2: 0000 bkpt + 8ac4: 20000534 .long 0x20000534 + +Disassembly of section .text.Get_RevState: + +00008ac8 : + if(u_det.RevNum == REV_OK) + 8ac8: 1065 lrw r3, 0x20000534 // 8adc + 8aca: 8302 ld.b r0, (r3, 0x2) + 8acc: 3841 cmpnei r0, 1 + 8ace: 0804 bt 0x8ad6 // 8ad6 + u_det.RevNum = REV_NONE; + 8ad0: 3200 movi r2, 0 + 8ad2: a342 st.b r2, (r3, 0x2) +} + 8ad4: 783c jmp r15 + return REV_NONE; + 8ad6: 3000 movi r0, 0 + 8ad8: 07fe br 0x8ad4 // 8ad4 + 8ada: 0000 bkpt + 8adc: 20000534 .long 0x20000534 + +Disassembly of section .text.Get_SendState: + +00008ae0 : + if(u_det.SendState == SEND_STATE_SUCC) + 8ae0: 1066 lrw r3, 0x20000534 // 8af8 + 8ae2: 8303 ld.b r0, (r3, 0x3) + 8ae4: 3841 cmpnei r0, 1 + 8ae6: 0804 bt 0x8aee // 8aee + u_det.SendState = SEND_STATE_NONE; + 8ae8: 3200 movi r2, 0 + 8aea: a343 st.b r2, (r3, 0x3) +} + 8aec: 783c jmp r15 + else if(u_det.SendState == SEND_STATE_FAIL) + 8aee: 3842 cmpnei r0, 2 + 8af0: 0ffc bf 0x8ae8 // 8ae8 + return SEND_STATE_NONE; + 8af2: 3000 movi r0, 0 + 8af4: 07fc br 0x8aec // 8aec + 8af6: 0000 bkpt + 8af8: 20000534 .long 0x20000534 + +Disassembly of section .text.BLV_HLW8110_SendData_Tack: + +00008afc : +{ + 8afc: 14d4 push r4-r7, r15 + 8afe: 1422 subi r14, r14, 8 + switch(u_det.State) + 8b00: 1392 lrw r4, 0x20000514 // 8cc8 + 8b02: 841e ld.b r0, (r4, 0x1e) + 8b04: 2800 subi r0, 1 + 8b06: 3808 cmphsi r0, 9 + 8b08: 0816 bt 0x8b34 // 8b34 + 8b0a: e3ffd503 bsr 0x3510 // 3510 <___gnu_csky_case_uhi> + 8b0e: 0009 .short 0x0009 + 8b10: 005b001d .long 0x005b001d + 8b14: 00730069 .long 0x00730069 + 8b18: 009f0082 .long 0x009f0082 + 8b1c: 00ce00c0 .long 0x00ce00c0 + if(u_det.WR_flag == SEND_R) //读,需要等待回复校验 + 8b20: 136b lrw r3, 0x20000534 // 8ccc + 8b22: 8360 ld.b r3, (r3, 0x0) + 8b24: 3b41 cmpnei r3, 1 + 8b26: 0809 bt 0x8b38 // 8b38 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b28: 136a lrw r3, 0x200000c4 // 8cd0 + 8b2a: 9340 ld.w r2, (r3, 0x0) + 8b2c: 136a lrw r3, 0x2000016c // 8cd4 + 8b2e: b340 st.w r2, (r3, 0x0) + u_det.State = 0x02; + 8b30: 3302 movi r3, 2 + u_det.State = 0x03; + 8b32: a47e st.b r3, (r4, 0x1e) +} + 8b34: 1402 addi r14, r14, 8 + 8b36: 1494 pop r4-r7, r15 + else if(u_det.WR_flag == SEND_W) //写,需要先写使能 + 8b38: 3b42 cmpnei r3, 2 + 8b3a: 0bfd bt 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b3c: 1365 lrw r3, 0x200000c4 // 8cd0 + 8b3e: 9340 ld.w r2, (r3, 0x0) + 8b40: 1365 lrw r3, 0x2000016c // 8cd4 + 8b42: b340 st.w r2, (r3, 0x0) + u_det.State = 0x03; + 8b44: 3303 movi r3, 3 + 8b46: 07f6 br 0x8b32 // 8b32 + if(u_det.WR_flag == SEND_R) + 8b48: 13c4 lrw r6, 0x200004f4 // 8cd8 + 8b4a: 3540 movi r5, 64 + 8b4c: 6158 addu r5, r6 + 8b4e: 8560 ld.b r3, (r5, 0x0) + 8b50: 3b41 cmpnei r3, 1 + 8b52: b8c1 st.w r6, (r14, 0x4) + 8b54: b8a0 st.w r5, (r14, 0x0) + 8b56: 0bef bt 0x8b34 // 8b34 + if((u_det.Resent == 0x00)||(SysTick_1ms - HLW8110_Sned_Tisk >= 80) ) + 8b58: 8541 ld.b r2, (r5, 0x1) + 8b5a: 3a40 cmpnei r2, 0 + 8b5c: 127d lrw r3, 0x200000c4 // 8cd0 + 8b5e: 12fe lrw r7, 0x2000016c // 8cd4 + 8b60: 0c07 bf 0x8b6e // 8b6e + 8b62: 9700 ld.w r0, (r7, 0x0) + 8b64: 9320 ld.w r1, (r3, 0x0) + 8b66: 6042 subu r1, r0 + 8b68: 304f movi r0, 79 + 8b6a: 6440 cmphs r0, r1 + 8b6c: 081b bt 0x8ba2 // 8ba2 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b6e: 9360 ld.w r3, (r3, 0x0) + if(u_det.Resent < 3) + 8b70: 3a02 cmphsi r2, 3 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b72: b760 st.w r3, (r7, 0x0) + if(u_det.Resent < 3) + 8b74: 080a bt 0x8b88 // 8b88 + HLW8110_RWCMD_Send(SEND_R); + 8b76: 3001 movi r0, 1 + 8b78: e3ffff66 bsr 0x8a44 // 8a44 + u_det.Resent++; + 8b7c: 9860 ld.w r3, (r14, 0x0) + 8b7e: 8361 ld.b r3, (r3, 0x1) + 8b80: 2300 addi r3, 1 + 8b82: 9840 ld.w r2, (r14, 0x0) + u_det.Resent++; + 8b84: a261 st.b r3, (r2, 0x1) + break; + 8b86: 07d7 br 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_FAIL; + 8b88: 9860 ld.w r3, (r14, 0x0) + 8b8a: 3202 movi r2, 2 + 8b8c: a343 st.b r2, (r3, 0x3) + u_det.State = HLW_WAIT; + 8b8e: 3309 movi r3, 9 + 8b90: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8b92: 3300 movi r3, 0 + 8b94: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8b96: 9841 ld.w r2, (r14, 0x4) + 8b98: 1271 lrw r3, 0xbb8 // 8cdc + 8b9a: b271 st.w r3, (r2, 0x44) + HLW8110_CleanSdFlag(); + 8b9c: e3ffff8e bsr 0x8ab8 // 8ab8 + break; + 8ba0: 07ca br 0x8b34 // 8b34 + 8ba2: b860 st.w r3, (r14, 0x0) + if(Get_RevState() == REV_OK) + 8ba4: e3ffff92 bsr 0x8ac8 // 8ac8 + 8ba8: 3841 cmpnei r0, 1 + 8baa: 9860 ld.w r3, (r14, 0x0) + 8bac: 0bc4 bt 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bae: 9360 ld.w r3, (r3, 0x0) + 8bb0: b760 st.w r3, (r7, 0x0) + u_det.State = HLW_WAIT; + 8bb2: 3309 movi r3, 9 + 8bb4: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bb6: 3300 movi r3, 0 + u_det.SendState = SEND_STATE_SUCC; + 8bb8: 3201 movi r2, 1 + u_det.Pub_NextState = NextState; + 8bba: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bbc: 330a movi r3, 10 + u_det.SendState = SEND_STATE_SUCC; + 8bbe: a543 st.b r2, (r5, 0x3) + u_det.Pub_WaitTim = WaitTime; + 8bc0: b671 st.w r3, (r6, 0x44) + 8bc2: 07ed br 0x8b9c // 8b9c + HLW8110_Sned_Tisk = SysTick_1ms; + 8bc4: 1263 lrw r3, 0x200000c4 // 8cd0 + 8bc6: 9340 ld.w r2, (r3, 0x0) + 8bc8: 1263 lrw r3, 0x2000016c // 8cd4 + 8bca: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8bcc: 3309 movi r3, 9 + 8bce: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bd0: 3304 movi r3, 4 + 8bd2: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bd4: 320a movi r2, 10 + 8bd6: 1261 lrw r3, 0x200004f4 // 8cd8 + 8bd8: b351 st.w r2, (r3, 0x44) + HLW8110_WriteREG_EN(); + 8bda: e3fffe73 bsr 0x88c0 // 88c0 + break; + 8bde: 07ab br 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8be0: 117c lrw r3, 0x200000c4 // 8cd0 + 8be2: 9340 ld.w r2, (r3, 0x0) + 8be4: 117c lrw r3, 0x2000016c // 8cd4 + 8be6: b340 st.w r2, (r3, 0x0) + u_det.Resent = 0x00; + 8be8: 1179 lrw r3, 0x20000534 // 8ccc + 8bea: 3200 movi r2, 0 + 8bec: a341 st.b r2, (r3, 0x1) + u_det.RevNum = 0x00; + 8bee: a342 st.b r2, (r3, 0x2) + u_det.State = 0x05; + 8bf0: 3305 movi r3, 5 + 8bf2: 07a0 br 0x8b32 // 8b32 + HLW8110_RWCMD_Send(SEND_W); + 8bf4: 3002 movi r0, 2 + 8bf6: e3ffff27 bsr 0x8a44 // 8a44 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bfa: 1176 lrw r3, 0x200000c4 // 8cd0 + 8bfc: 9340 ld.w r2, (r3, 0x0) + 8bfe: 1176 lrw r3, 0x2000016c // 8cd4 + 8c00: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8c02: 3309 movi r3, 9 + 8c04: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c06: 3306 movi r3, 6 + 8c08: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c0a: 320a movi r2, 10 + 8c0c: 1173 lrw r3, 0x200004f4 // 8cd8 + 8c0e: b351 st.w r2, (r3, 0x44) + 8c10: 0792 br 0x8b34 // 8b34 + if(u_det.Resent < 3) + 8c12: 1172 lrw r3, 0x200004f4 // 8cd8 + 8c14: 3240 movi r2, 64 + 8c16: 608c addu r2, r3 + 8c18: 8221 ld.b r1, (r2, 0x1) + 8c1a: 3902 cmphsi r1, 3 + 8c1c: 11cd lrw r6, 0x200000c4 // 8cd0 + 8c1e: 11ae lrw r5, 0x2000016c // 8cd4 + 8c20: 080b bt 0x8c36 // 8c36 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c22: 9660 ld.w r3, (r6, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c24: 3001 movi r0, 1 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c26: b560 st.w r3, (r5, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c28: e3ffff0e bsr 0x8a44 // 8a44 + u_det.State = 0x07; + 8c2c: 3307 movi r3, 7 + 8c2e: a47e st.b r3, (r4, 0x1e) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c30: 9660 ld.w r3, (r6, 0x0) + 8c32: b560 st.w r3, (r5, 0x0) + break; + 8c34: 0780 br 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_FAIL; + 8c36: 3102 movi r1, 2 + 8c38: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c3a: 9640 ld.w r2, (r6, 0x0) + 8c3c: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c3e: 3209 movi r2, 9 + 8c40: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c42: 3208 movi r2, 8 + 8c44: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c46: 1146 lrw r2, 0xbb8 // 8cdc + 8c48: b351 st.w r2, (r3, 0x44) + 8c4a: 07a9 br 0x8b9c // 8b9c + if(SysTick_1ms - HLW8110_Sned_Tisk >= 80) + 8c4c: 11c1 lrw r6, 0x200000c4 // 8cd0 + 8c4e: 11a2 lrw r5, 0x2000016c // 8cd4 + 8c50: 9660 ld.w r3, (r6, 0x0) + 8c52: 9540 ld.w r2, (r5, 0x0) + 8c54: 60ca subu r3, r2 + 8c56: 324f movi r2, 79 + 8c58: 64c8 cmphs r2, r3 + 8c5a: 0809 bt 0x8c6c // 8c6c + HLW8110_Sned_Tisk = SysTick_1ms; + 8c5c: 9660 ld.w r3, (r6, 0x0) + 8c5e: b560 st.w r3, (r5, 0x0) + u_det.Resent++; + 8c60: 105b lrw r2, 0x20000534 // 8ccc + u_det.State = 0x05; + 8c62: 3305 movi r3, 5 + 8c64: a47e st.b r3, (r4, 0x1e) + u_det.Resent++; + 8c66: 8261 ld.b r3, (r2, 0x1) + 8c68: 2300 addi r3, 1 + 8c6a: 078d br 0x8b84 // 8b84 + if(Get_RevState() == REV_OK) + 8c6c: e3ffff2e bsr 0x8ac8 // 8ac8 + 8c70: 3841 cmpnei r0, 1 + 8c72: 0b61 bt 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_SUCC; + 8c74: 1079 lrw r3, 0x200004f4 // 8cd8 + 8c76: 3240 movi r2, 64 + 8c78: 608c addu r2, r3 + 8c7a: 3101 movi r1, 1 + 8c7c: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c7e: 9640 ld.w r2, (r6, 0x0) + 8c80: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c82: 3209 movi r2, 9 + 8c84: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c86: 3208 movi r2, 8 + 8c88: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c8a: 320a movi r2, 10 + 8c8c: 07de br 0x8c48 // 8c48 + HLW8110_WriteREG_DIS(); + 8c8e: e3fffe43 bsr 0x8914 // 8914 + u_det.State = HLW_WAIT; + 8c92: 3309 movi r3, 9 + 8c94: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c96: 3300 movi r3, 0 + u_det.Pub_WaitTim = WaitTime; + 8c98: 320a movi r2, 10 + u_det.Pub_NextState = NextState; + 8c9a: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c9c: 106f lrw r3, 0x200004f4 // 8cd8 + 8c9e: b351 st.w r2, (r3, 0x44) + HLW8110_Sned_Tisk = SysTick_1ms; + 8ca0: 106c lrw r3, 0x200000c4 // 8cd0 + 8ca2: 9340 ld.w r2, (r3, 0x0) + 8ca4: 106c lrw r3, 0x2000016c // 8cd4 + 8ca6: b340 st.w r2, (r3, 0x0) + break; + 8ca8: 0746 br 0x8b34 // 8b34 + if(SysTick_1ms - HLW8110_Sned_Tisk >= u_det.Pub_WaitTim) + 8caa: 106a lrw r3, 0x200000c4 // 8cd0 + 8cac: 104a lrw r2, 0x2000016c // 8cd4 + 8cae: 9360 ld.w r3, (r3, 0x0) + 8cb0: 9240 ld.w r2, (r2, 0x0) + 8cb2: 60ca subu r3, r2 + 8cb4: 1049 lrw r2, 0x200004f4 // 8cd8 + 8cb6: 9251 ld.w r2, (r2, 0x44) + 8cb8: 648c cmphs r3, r2 + 8cba: 0f3d bf 0x8b34 // 8b34 + u_det.State = u_det.Pub_NextState; + 8cbc: 847f ld.b r3, (r4, 0x1f) + 8cbe: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = 0x00; + 8cc0: 3300 movi r3, 0 + 8cc2: a47f st.b r3, (r4, 0x1f) +} + 8cc4: 0738 br 0x8b34 // 8b34 + 8cc6: 0000 bkpt + 8cc8: 20000514 .long 0x20000514 + 8ccc: 20000534 .long 0x20000534 + 8cd0: 200000c4 .long 0x200000c4 + 8cd4: 2000016c .long 0x2000016c + 8cd8: 200004f4 .long 0x200004f4 + 8cdc: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.HLW8110_Convert_CurrentRegA_Value: + +00008ce0 : +{ + 8ce0: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8ce2: 109e lrw r4, 0x2000053c // 8d58 + 8ce4: 3280 movi r2, 128 + 8ce6: 9468 ld.w r3, (r4, 0x20) + 8ce8: 4250 lsli r2, r2, 16 + 8cea: 68c8 and r3, r2 + 8cec: 3b40 cmpnei r3, 0 + 8cee: 10bc lrw r5, 0x20000578 // 8d5c + 8cf0: 0831 bt 0x8d52 // 8d52 + Conv_Val = value / 1000.0; + 8cf2: e3ffdb0f bsr 0x4310 // 4310 <__floatunsidf> + 8cf6: 3200 movi r2, 0 + 8cf8: 107a lrw r3, 0x408f4000 // 8d60 + 8cfa: e3ffd96b bsr 0x3fd0 // 3fd0 <__divdf3> + 8cfe: e3ffdaf1 bsr 0x42e0 // 42e0 <__truncdfsf2> + 8d02: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIAC_RegData; + 8d04: 8c00 ld.h r0, (r4, 0x0) + 8d06: e3ffd63f bsr 0x3984 // 3984 <__floatsisf> + 8d0a: 6c5b mov r1, r6 + 8d0c: e3ffd51a bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x800; + 8d10: 31e8 movi r1, 232 + 8d12: 4136 lsli r1, r1, 22 + 8d14: e3ffd516 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x1000; + 8d18: 31e6 movi r1, 230 + 8d1a: 4136 lsli r1, r1, 22 + 8d1c: e3ffd512 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val; + 8d20: 9534 ld.w r1, (r5, 0x50) + 8d22: e3ffd50f bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + 8d26: 9537 ld.w r1, (r5, 0x5c) + 8d28: e3ffd4dc bsr 0x36e0 // 36e0 <__addsf3> + 8d2c: 6d03 mov r4, r0 + g_Eng.det_ectA = (Conv_Val * 100); //单位10mA + 8d2e: 102e lrw r1, 0x42c80000 // 8d64 + 8d30: 6c13 mov r0, r4 + 8d32: e3ffd507 bsr 0x3740 // 3740 <__mulsf3> + 8d36: e3ffd3fb bsr 0x352c // 352c <__fixunssfsi> + 8d3a: b50c st.w r0, (r5, 0x30) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"CurReg:%f",Conv_Val); + 8d3c: 6c13 mov r0, r4 + 8d3e: e3ffd67f bsr 0x3a3c // 3a3c <__extendsfdf2> + 8d42: 6c83 mov r2, r0 + 8d44: 6cc7 mov r3, r1 + 8d46: 3001 movi r0, 1 + 8d48: 1028 lrw r1, 0xb44a // 8d68 + 8d4a: e3fff675 bsr 0x7a34 // 7a34 +} + 8d4e: 6c13 mov r0, r4 + 8d50: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8d52: 3400 movi r4, 0 + 8d54: 07ed br 0x8d2e // 8d2e + 8d56: 0000 bkpt + 8d58: 2000053c .long 0x2000053c + 8d5c: 20000578 .long 0x20000578 + 8d60: 408f4000 .long 0x408f4000 + 8d64: 42c80000 .long 0x42c80000 + 8d68: 0000b44a .long 0x0000b44a + +Disassembly of section .text.HLW8110_Convert_VoltageReg_Value: + +00008d6c : +{ + 8d6c: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8d6e: 109a lrw r4, 0x2000053c // 8dd4 + 8d70: 3280 movi r2, 128 + 8d72: 9468 ld.w r3, (r4, 0x20) + 8d74: 4250 lsli r2, r2, 16 + 8d76: 68c8 and r3, r2 + 8d78: 3b40 cmpnei r3, 0 + 8d7a: 10b8 lrw r5, 0x20000578 // 8dd8 + 8d7c: 082a bt 0x8dd0 // 8dd0 + Conv_Val = value / 100.0; + 8d7e: e3ffdac9 bsr 0x4310 // 4310 <__floatunsidf> + 8d82: 3200 movi r2, 0 + 8d84: 1076 lrw r3, 0x40590000 // 8ddc + 8d86: e3ffd925 bsr 0x3fd0 // 3fd0 <__divdf3> + 8d8a: e3ffdaab bsr 0x42e0 // 42e0 <__truncdfsf2> + 8d8e: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSUC_RegData; + 8d90: 8c02 ld.h r0, (r4, 0x4) + 8d92: e3ffd5f9 bsr 0x3984 // 3984 <__floatsisf> + 8d96: 6c5b mov r1, r6 + 8d98: e3ffd4d4 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x400000; + 8d9c: 31d2 movi r1, 210 + 8d9e: 4136 lsli r1, r1, 22 + 8da0: e3ffd4d0 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.V_K_Val;//VK_Val; + 8da4: 9533 ld.w r1, (r5, 0x4c) + 8da6: e3ffd4cd bsr 0x3740 // 3740 <__mulsf3> + 8daa: 6d03 mov r4, r0 + g_Eng.det_V = (Conv_Val * 100); //单位:10mV + 8dac: 102d lrw r1, 0x42c80000 // 8de0 + 8dae: 6c13 mov r0, r4 + 8db0: e3ffd4c8 bsr 0x3740 // 3740 <__mulsf3> + 8db4: e3ffd3bc bsr 0x352c // 352c <__fixunssfsi> + 8db8: b50b st.w r0, (r5, 0x2c) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"VolReg:%f",Conv_Val); + 8dba: 6c13 mov r0, r4 + 8dbc: e3ffd640 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8dc0: 6c83 mov r2, r0 + 8dc2: 6cc7 mov r3, r1 + 8dc4: 3001 movi r0, 1 + 8dc6: 1028 lrw r1, 0xb454 // 8de4 + 8dc8: e3fff636 bsr 0x7a34 // 7a34 +} + 8dcc: 6c13 mov r0, r4 + 8dce: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8dd0: 3400 movi r4, 0 + 8dd2: 07ed br 0x8dac // 8dac + 8dd4: 2000053c .long 0x2000053c + 8dd8: 20000578 .long 0x20000578 + 8ddc: 40590000 .long 0x40590000 + 8de0: 42c80000 .long 0x42c80000 + 8de4: 0000b454 .long 0x0000b454 + +Disassembly of section .text.HLW8110_Convert_PowerReg_Value: + +00008de8 : +{ + 8de8: 14d3 push r4-r6, r15 + 8dea: 1421 subi r14, r14, 4 + Conv_Val = abs((int)value); + 8dec: 38df btsti r0, 31 +{ + 8dee: 6d43 mov r5, r0 + Conv_Val = abs((int)value); + 8df0: 0c03 bf 0x8df6 // 8df6 + 8df2: 3000 movi r0, 0 + 8df4: 6016 subu r0, r5 + 8df6: e3ffd5c7 bsr 0x3984 // 3984 <__floatsisf> + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8dfa: 1078 lrw r3, 0x2000053c // 8e58 + Conv_Val = abs((int)value); + 8dfc: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8dfe: 8b03 ld.h r0, (r3, 0x6) + 8e00: e3ffd5c2 bsr 0x3984 // 3984 <__floatsisf> + 8e04: 6c53 mov r1, r4 + 8e06: e3ffd49d bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x8000; + 8e0a: 31e0 movi r1, 224 + 8e0c: 4136 lsli r1, r1, 22 + 8e0e: e3ffd499 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x10000; + 8e12: 31de movi r1, 222 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8e14: 1092 lrw r4, 0x20000578 // 8e5c + Conv_Val = Conv_Val / 0x10000; + 8e16: 4136 lsli r1, r1, 22 + 8e18: e3ffd494 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8e1c: 9434 ld.w r1, (r4, 0x50) + 8e1e: e3ffd491 bsr 0x3740 // 3740 <__mulsf3> + 8e22: 9436 ld.w r1, (r4, 0x58) + 8e24: e3ffd48e bsr 0x3740 // 3740 <__mulsf3> + 8e28: 9433 ld.w r1, (r4, 0x4c) + 8e2a: e3ffd48b bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8e2e: 9438 ld.w r1, (r4, 0x60) + 8e30: e3ffd458 bsr 0x36e0 // 36e0 <__addsf3> + 8e34: 6d83 mov r6, r0 + g_Eng.det_powA = Conv_Val; //单位:W + 8e36: e3ffd37b bsr 0x352c // 352c <__fixunssfsi> + 8e3a: b40e st.w r0, (r4, 0x38) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"PowReg:%f,%d",Conv_Val,value); + 8e3c: 6c1b mov r0, r6 + 8e3e: e3ffd5ff bsr 0x3a3c // 3a3c <__extendsfdf2> + 8e42: 6c83 mov r2, r0 + 8e44: 6cc7 mov r3, r1 + 8e46: b8a0 st.w r5, (r14, 0x0) + 8e48: 3001 movi r0, 1 + 8e4a: 1026 lrw r1, 0xb45e // 8e60 + 8e4c: e3fff5f4 bsr 0x7a34 // 7a34 +} + 8e50: 6c1b mov r0, r6 + 8e52: 1401 addi r14, r14, 4 + 8e54: 1493 pop r4-r6, r15 + 8e56: 0000 bkpt + 8e58: 2000053c .long 0x2000053c + 8e5c: 20000578 .long 0x20000578 + 8e60: 0000b45e .long 0x0000b45e + +Disassembly of section .text.HLW8110_Convert_EnergyReg_Value: + +00008e64 : +{ + 8e64: 14d4 push r4-r7, r15 + 8e66: 1421 subi r14, r14, 4 + g_Eng.U32_EnergyA_RegData_Diff = 0x00; + 8e68: 109e lrw r4, 0x20000578 // 8ee0 +{ + 8e6a: 6d43 mov r5, r0 + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //当前记录的有效值寄存器值小于于读取到的 + 8e6c: 9431 ld.w r1, (r4, 0x44) + 8e6e: 6440 cmphs r0, r1 + 8e70: 4048 lsli r2, r0, 8 + 8e72: 0c2f bf 0x8ed0 // 8ed0 + g_Eng.U32_EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 8e74: 4128 lsli r1, r1, 8 + 8e76: 4928 lsri r1, r1, 8 + 8e78: 5865 subu r3, r0, r1 + 8e7a: b470 st.w r3, (r4, 0x40) + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e7c: 4a48 lsri r2, r2, 8 + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e7e: 94d0 ld.w r6, (r4, 0x40) + 8e80: 940f ld.w r0, (r4, 0x3c) + 8e82: 6018 addu r0, r6 + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e84: b451 st.w r2, (r4, 0x44) + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e86: b40f st.w r0, (r4, 0x3c) + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + 8e88: e3ffda44 bsr 0x4310 // 4310 <__floatunsidf> + 8e8c: e3ffda2a bsr 0x42e0 // 42e0 <__truncdfsf2> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e90: 9434 ld.w r1, (r4, 0x50) + 8e92: e3ffd457 bsr 0x3740 // 3740 <__mulsf3> + 8e96: 9433 ld.w r1, (r4, 0x4c) + 8e98: e3ffd454 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e9c: 1072 lrw r3, 0x2000053c // 8ee4 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e9e: 6dc3 mov r7, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8ea0: 8b06 ld.h r0, (r3, 0xc) + 8ea2: e3ffd571 bsr 0x3984 // 3984 <__floatsisf> + 8ea6: 6c5f mov r1, r7 + 8ea8: e3ffd44c bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x20000000; + 8eac: 31c4 movi r1, 196 + 8eae: 4136 lsli r1, r1, 22 + 8eb0: e3ffd448 bsr 0x3740 // 3740 <__mulsf3> + 8eb4: 6dc3 mov r7, r0 + g_Eng.Total_Eng = Conv_Val; //累计值,单位,W/H + 8eb6: e3ffd33b bsr 0x352c // 352c <__fixunssfsi> + 8eba: b408 st.w r0, (r4, 0x20) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"diff:%d,value:%d,Total_Eng:%d",g_Eng.U32_EnergyA_RegData_Diff,value,g_Eng.Total_Eng); + 8ebc: b800 st.w r0, (r14, 0x0) + 8ebe: 6cd7 mov r3, r5 + 8ec0: 6c9b mov r2, r6 + 8ec2: 102a lrw r1, 0xb46b // 8ee8 + 8ec4: 3001 movi r0, 1 + 8ec6: e3fff5b7 bsr 0x7a34 // 7a34 +} + 8eca: 6c1f mov r0, r7 + 8ecc: 1401 addi r14, r14, 4 + 8ece: 1494 pop r4-r7, r15 + g_Eng.U32_EnergyA_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000)- g_Eng.U32_EnergyA_RegData_LastRecord ); + 8ed0: 4a48 lsri r2, r2, 8 + 8ed2: 5a65 subu r3, r2, r1 + 8ed4: 3180 movi r1, 128 + 8ed6: 4131 lsli r1, r1, 17 + 8ed8: 60c4 addu r3, r1 + 8eda: b470 st.w r3, (r4, 0x40) + 8edc: 07d1 br 0x8e7e // 8e7e + 8ede: 0000 bkpt + 8ee0: 20000578 .long 0x20000578 + 8ee4: 2000053c .long 0x2000053c + 8ee8: 0000b46b .long 0x0000b46b + +Disassembly of section .text.HLW8110_RecvData_Processing: + +00008eec : +{ + 8eec: 14d4 push r4-r7, r15 + 8eee: 1424 subi r14, r14, 16 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8ef0: 5947 subi r2, r1, 2 + 8ef2: 7489 zexth r2, r2 + 8ef4: 3a08 cmphsi r2, 9 +{ + 8ef6: b803 st.w r0, (r14, 0xc) + 8ef8: 6dc7 mov r7, r1 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8efa: 0c09 bf 0x8f0c // 8f0c + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",RecvLen); + 8efc: 6c87 mov r2, r1 + 8efe: 3000 movi r0, 0 + 8f00: 0337 lrw r1, 0xb489 // 9120 + 8f02: e3fff599 bsr 0x7a34 // 7a34 + return 0x01; + 8f06: 3001 movi r0, 1 +} + 8f08: 1404 addi r14, r14, 16 + 8f0a: 1494 pop r4-r7, r15 + if(u_det.WR_flag == SEND_NONE) + 8f0c: 03b9 lrw r5, 0x200004f4 // 9124 + 8f0e: 3340 movi r3, 64 + 8f10: 60d4 addu r3, r5 + 8f12: 8340 ld.b r2, (r3, 0x0) + 8f14: 3a40 cmpnei r2, 0 + 8f16: b861 st.w r3, (r14, 0x4) + 8f18: b862 st.w r3, (r14, 0x8) + 8f1a: 0807 bt 0x8f28 // 8f28 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not Tack "); + 8f1c: 3000 movi r0, 0 + 8f1e: 033c lrw r1, 0xb494 // 9128 + 8f20: e3fff58a bsr 0x7a34 // 7a34 + return 0x02; + 8f24: 3002 movi r0, 2 + 8f26: 07f1 br 0x8f08 // 8f08 + memset(u_det.RevBuff,0,REV_BUFFER_SIZE); + 8f28: 301e movi r0, 30 + 8f2a: 321e movi r2, 30 + 8f2c: 3100 movi r1, 0 + 8f2e: 6014 addu r0, r5 + 8f30: e3ffdd14 bsr 0x4958 // 4958 <__memset_fast> + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f34: 8d40 ld.h r2, (r5, 0x0) + 8f36: 7589 zexth r6, r2 + u_det.RevLen += 2; + 8f38: 3420 movi r4, 32 + 8f3a: 6114 addu r4, r5 + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f3c: ad4f st.h r2, (r5, 0x1e) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f3e: 4ec8 lsri r6, r6, 8 + 8f40: 327f movi r2, 127 + u_det.RevLen += 2; + 8f42: 3302 movi r3, 2 + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f44: 6988 and r6, r2 + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f46: 9823 ld.w r1, (r14, 0xc) + 8f48: 6c9f mov r2, r7 + 8f4a: 6c13 mov r0, r4 + u_det.RevLen += 2; + 8f4c: a47d st.b r3, (r4, 0x1d) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f4e: a5df st.b r6, (r5, 0x1f) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f50: e3ffdd48 bsr 0x49e0 // 49e0 <__memcpy_fast> + u_det.RevLen += RecvLen; + 8f54: 843d ld.b r1, (r4, 0x1d) + 8f56: 605c addu r1, r7 + 8f58: 7444 zextb r1, r1 + 8f5a: a43d st.b r1, (r4, 0x1d) + if(HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1) != RecvData[RecvLen-1]) + 8f5c: 301e movi r0, 30 + 8f5e: 2900 subi r1, 1 + 8f60: 7445 zexth r1, r1 + 8f62: 6014 addu r0, r5 + 8f64: e3fffca2 bsr 0x88a8 // 88a8 + 8f68: 9863 ld.w r3, (r14, 0xc) + 8f6a: 60dc addu r3, r7 + 8f6c: 6dcf mov r7, r3 + 8f6e: 2f00 subi r7, 1 + 8f70: 8760 ld.b r3, (r7, 0x0) + 8f72: 64c2 cmpne r0, r3 + 8f74: 6c83 mov r2, r0 + 8f76: 6dd3 mov r7, r4 + 8f78: 0c12 bf 0x8f9c // 8f9c + Dbg_Println(DBG_BIT_SYS_STATUS,"CRC Err:%x,%x,CMD:%02x",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + 8f7a: 132d lrw r1, 0xb49e // 912c + 8f7c: 3000 movi r0, 0 + 8f7e: b8c0 st.w r6, (r14, 0x0) + 8f80: e3fff55a bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); + 8f84: 6c97 mov r2, r5 + 8f86: 847d ld.b r3, (r4, 0x1d) + 8f88: 221d addi r2, 30 + 8f8a: 3002 movi r0, 2 + 8f8c: 1329 lrw r1, 0xb4b5 // 9130 + 8f8e: e3fff617 bsr 0x7bbc // 7bbc + u_det.RevNum = REV_ERR; + 8f92: 9861 ld.w r3, (r14, 0x4) + 8f94: 3202 movi r2, 2 + 8f96: a342 st.b r2, (r3, 0x2) + return 0x04; + 8f98: 3004 movi r0, 4 + 8f9a: 07b7 br 0x8f08 // 8f08 + u_det.RevNum = REV_OK; + 8f9c: 9862 ld.w r3, (r14, 0x8) + 8f9e: 3201 movi r2, 1 + 8fa0: a342 st.b r2, (r3, 0x2) + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW8110_Recv CMD:%02X",u_det.RevBuff[1]); + 8fa2: 3002 movi r0, 2 + 8fa4: 6c9b mov r2, r6 + 8fa6: 1324 lrw r1, 0xb4b9 // 9134 + 8fa8: e3fff546 bsr 0x7a34 // 7a34 + switch(u_det.RevBuff[1]) + 8fac: 857f ld.b r3, (r5, 0x1f) + 8fae: 316f movi r1, 111 + 8fb0: 644e cmpne r3, r1 + 8fb2: 1342 lrw r2, 0x2000053c // 9138 + 8fb4: 0c6b bf 0x908a // 908a + 8fb6: 64c4 cmphs r1, r3 + 8fb8: 0c28 bf 0x9008 // 9008 + 8fba: 3124 movi r1, 36 + 8fbc: 644e cmpne r3, r1 + 8fbe: 0c8c bf 0x90d6 // 90d6 + 8fc0: 64c4 cmphs r1, r3 + 8fc2: 0c0f bf 0x8fe0 // 8fe0 + 8fc4: 3b41 cmpnei r3, 1 + 8fc6: 0c52 bf 0x906a // 906a + 8fc8: 3b40 cmpnei r3, 0 + 8fca: 0c40 bf 0x904a // 904a + 8fcc: 3b53 cmpnei r3, 19 + 8fce: 0c56 bf 0x907a // 907a + g_CalFactor.U16_HFConst_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 8fd0: 8760 ld.b r3, (r7, 0x0) + 8fd2: 4368 lsli r3, r3, 8 + 8fd4: 8721 ld.b r1, (r7, 0x1) + 8fd6: 60c4 addu r3, r1 + 8fd8: b26e st.w r3, (r2, 0x38) + g_Eng.hfcount = g_CalFactor.U16_HFConst_RegData; + 8fda: 1259 lrw r2, 0x20000578 // 913c + 8fdc: aa6e st.h r3, (r2, 0x1c) + 8fde: 0442 br 0x9062 // 9062 + switch(u_det.RevBuff[1]) + 8fe0: 3128 movi r1, 40 + 8fe2: 644e cmpne r3, r1 + 8fe4: 0c84 bf 0x90ec // 90ec + 8fe6: 312c movi r1, 44 + 8fe8: 644e cmpne r3, r1 + 8fea: 0c8c bf 0x9102 // 9102 + 8fec: 3126 movi r1, 38 + 8fee: 644e cmpne r3, r1 + 8ff0: 0bf0 bt 0x8fd0 // 8fd0 + g_CalFactor.U24_Voltage_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 8ff2: 8400 ld.b r0, (r4, 0x0) + 8ff4: 8461 ld.b r3, (r4, 0x1) + 8ff6: 4368 lsli r3, r3, 8 + 8ff8: 4010 lsli r0, r0, 16 + 8ffa: 600c addu r0, r3 + 8ffc: 8462 ld.b r3, (r4, 0x2) + 8ffe: 600c addu r0, r3 + 9000: b207 st.w r0, (r2, 0x1c) + HLW8110_Convert_VoltageReg_Value(g_CalFactor.U24_Voltage_RegData); + 9002: e3fffeb5 bsr 0x8d6c // 8d6c + 9006: 042e br 0x9062 // 9062 + switch(u_det.RevBuff[1]) + 9008: 3173 movi r1, 115 + 900a: 644e cmpne r3, r1 + 900c: 0c4d bf 0x90a6 // 90a6 + 900e: 64c4 cmphs r1, r3 + 9010: 0c0c bf 0x9028 // 9028 + 9012: 3571 movi r5, 113 + 9014: 654e cmpne r3, r5 + 9016: 8420 ld.b r1, (r4, 0x0) + 9018: 8401 ld.b r0, (r4, 0x1) + 901a: 0c42 bf 0x909e // 909e + 901c: 64d4 cmphs r5, r3 + 901e: 083c bt 0x9096 // 9096 + g_CalFactor.U16_RMSUC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9020: 4128 lsli r1, r1, 8 + 9022: 6040 addu r1, r0 + 9024: aa22 st.h r1, (r2, 0x4) + 9026: 041e br 0x9062 // 9062 + switch(u_det.RevBuff[1]) + 9028: 3175 movi r1, 117 + 902a: 644e cmpne r3, r1 + 902c: 0c49 bf 0x90be // 90be + 902e: 644c cmphs r3, r1 + 9030: 0c41 bf 0x90b2 // 90b2 + 9032: 3176 movi r1, 118 + 9034: 644e cmpne r3, r1 + 9036: 0c4a bf 0x90ca // 90ca + 9038: 3177 movi r1, 119 + 903a: 644e cmpne r3, r1 + 903c: 0bca bt 0x8fd0 // 8fd0 + g_CalFactor.U16_EnergyBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 903e: 8460 ld.b r3, (r4, 0x0) + 9040: 4368 lsli r3, r3, 8 + 9042: 8421 ld.b r1, (r4, 0x1) + 9044: 60c4 addu r3, r1 + 9046: aa67 st.h r3, (r2, 0xe) + 9048: 040d br 0x9062 // 9062 + g_CalFactor.U16_Check_SysconReg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 904a: 8460 ld.b r3, (r4, 0x0) + 904c: 4368 lsli r3, r3, 8 + 904e: 8421 ld.b r1, (r4, 0x1) + 9050: 60c4 addu r3, r1 + 9052: 74cd zexth r3, r3 + 9054: aa6a st.h r3, (r2, 0x14) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 9056: 115b lrw r2, 0xa04 // 9140 + 9058: 648e cmpne r3, r2 + u_det.RevNum = REV_OK; + 905a: 9862 ld.w r3, (r14, 0x8) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 905c: 0805 bt 0x9066 // 9066 + u_det.RevNum = REV_OK; + 905e: 3201 movi r2, 1 + u_det.RevNum = REV_ERR; + 9060: a342 st.b r2, (r3, 0x2) + return 0x00; + 9062: 3000 movi r0, 0 + break; + 9064: 0752 br 0x8f08 // 8f08 + u_det.RevNum = REV_ERR; + 9066: 3202 movi r2, 2 + 9068: 07fc br 0x9060 // 9060 + g_CalFactor.U16_Check_Emucon1Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 906a: 8460 ld.b r3, (r4, 0x0) + 906c: 4368 lsli r3, r3, 8 + 906e: 8421 ld.b r1, (r4, 0x1) + 9070: 60c4 addu r3, r1 + 9072: 74cd zexth r3, r3 + 9074: aa6b st.h r3, (r2, 0x16) + if(g_CalFactor.U16_Check_Emucon1Reg_Data == EMUCON1_DEFAULT){ + 9076: 3b41 cmpnei r3, 1 + 9078: 07f1 br 0x905a // 905a + g_CalFactor.U16_Check_Emucon2Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 907a: 8460 ld.b r3, (r4, 0x0) + 907c: 4368 lsli r3, r3, 8 + 907e: 8421 ld.b r1, (r4, 0x1) + 9080: 60c4 addu r3, r1 + 9082: 74cd zexth r3, r3 + 9084: aa6c st.h r3, (r2, 0x18) + if(g_CalFactor.U16_Check_Emucon2Reg_Data == EMUCON2_DEFAULT){ + 9086: 1150 lrw r2, 0x465 // 9144 + 9088: 07e8 br 0x9058 // 9058 + g_CalFactor.U16_CheckSUM_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 908a: 8460 ld.b r3, (r4, 0x0) + 908c: 4368 lsli r3, r3, 8 + 908e: 8421 ld.b r1, (r4, 0x1) + 9090: 60c4 addu r3, r1 + 9092: aa68 st.h r3, (r2, 0x10) + 9094: 07e7 br 0x9062 // 9062 + g_CalFactor.U16_RMSIAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9096: 4128 lsli r1, r1, 8 + 9098: 6040 addu r1, r0 + 909a: aa20 st.h r1, (r2, 0x0) + 909c: 07e3 br 0x9062 // 9062 + g_CalFactor.U16_RMSIBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 909e: 4128 lsli r1, r1, 8 + 90a0: 6040 addu r1, r0 + 90a2: aa21 st.h r1, (r2, 0x2) + 90a4: 07df br 0x9062 // 9062 + g_CalFactor.U16_PowerPAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90a6: 8460 ld.b r3, (r4, 0x0) + 90a8: 4368 lsli r3, r3, 8 + 90aa: 8421 ld.b r1, (r4, 0x1) + 90ac: 60c4 addu r3, r1 + 90ae: aa63 st.h r3, (r2, 0x6) + 90b0: 07d9 br 0x9062 // 9062 + g_CalFactor.U16_PowerPBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90b2: 8460 ld.b r3, (r4, 0x0) + 90b4: 4368 lsli r3, r3, 8 + 90b6: 8421 ld.b r1, (r4, 0x1) + 90b8: 60c4 addu r3, r1 + 90ba: aa64 st.h r3, (r2, 0x8) + 90bc: 07d3 br 0x9062 // 9062 + g_CalFactor.U16_PowerSC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90be: 8460 ld.b r3, (r4, 0x0) + 90c0: 4368 lsli r3, r3, 8 + 90c2: 8421 ld.b r1, (r4, 0x1) + 90c4: 60c4 addu r3, r1 + 90c6: aa65 st.h r3, (r2, 0xa) + 90c8: 07cd br 0x9062 // 9062 + g_CalFactor.U16_EnergyAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90ca: 8460 ld.b r3, (r4, 0x0) + 90cc: 4368 lsli r3, r3, 8 + 90ce: 8421 ld.b r1, (r4, 0x1) + 90d0: 60c4 addu r3, r1 + 90d2: aa66 st.h r3, (r2, 0xc) + 90d4: 07c7 br 0x9062 // 9062 + g_CalFactor.U24_CurrentA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 90d6: 8400 ld.b r0, (r4, 0x0) + 90d8: 8461 ld.b r3, (r4, 0x1) + 90da: 4368 lsli r3, r3, 8 + 90dc: 4010 lsli r0, r0, 16 + 90de: 600c addu r0, r3 + 90e0: 8462 ld.b r3, (r4, 0x2) + 90e2: 600c addu r0, r3 + 90e4: b208 st.w r0, (r2, 0x20) + HLW8110_Convert_CurrentRegA_Value(g_CalFactor.U24_CurrentA_RegData); + 90e6: e3fffdfd bsr 0x8ce0 // 8ce0 + 90ea: 07bc br 0x9062 // 9062 + g_CalFactor.U24_EnergyA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 90ec: 8400 ld.b r0, (r4, 0x0) + 90ee: 8461 ld.b r3, (r4, 0x1) + 90f0: 4368 lsli r3, r3, 8 + 90f2: 4010 lsli r0, r0, 16 + 90f4: 600c addu r0, r3 + 90f6: 8462 ld.b r3, (r4, 0x2) + 90f8: 600c addu r0, r3 + 90fa: b20c st.w r0, (r2, 0x30) + HLW8110_Convert_EnergyReg_Value(g_CalFactor.U24_EnergyA_RegData); + 90fc: e3fffeb4 bsr 0x8e64 // 8e64 + 9100: 07b1 br 0x9062 // 9062 + g_CalFactor.U32_PowerA_RegData = (u_det.RevBuff[2]<<24) + (u_det.RevBuff[3]<<16) + (u_det.RevBuff[4]<<8) + u_det.RevBuff[5]; + 9102: 8400 ld.b r0, (r4, 0x0) + 9104: 8461 ld.b r3, (r4, 0x1) + 9106: 4370 lsli r3, r3, 16 + 9108: 4018 lsli r0, r0, 24 + 910a: 600c addu r0, r3 + 910c: 8462 ld.b r3, (r4, 0x2) + 910e: 4368 lsli r3, r3, 8 + 9110: 600c addu r0, r3 + 9112: 8463 ld.b r3, (r4, 0x3) + 9114: 600c addu r0, r3 + 9116: b20a st.w r0, (r2, 0x28) + HLW8110_Convert_PowerReg_Value(g_CalFactor.U32_PowerA_RegData); + 9118: e3fffe68 bsr 0x8de8 // 8de8 + 911c: 07a3 br 0x9062 // 9062 + 911e: 0000 bkpt + 9120: 0000b489 .long 0x0000b489 + 9124: 200004f4 .long 0x200004f4 + 9128: 0000b494 .long 0x0000b494 + 912c: 0000b49e .long 0x0000b49e + 9130: 0000b4b5 .long 0x0000b4b5 + 9134: 0000b4b9 .long 0x0000b4b9 + 9138: 2000053c .long 0x2000053c + 913c: 20000578 .long 0x20000578 + 9140: 00000a04 .long 0x00000a04 + 9144: 00000465 .long 0x00000465 + +Disassembly of section .text.HLW8110_SysPara_Check: + +00009148 : + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9148: 8841 ld.h r2, (r0, 0x2) + 914a: 8860 ld.h r3, (r0, 0x0) + 914c: 60c8 addu r3, r2 + 914e: 8842 ld.h r2, (r0, 0x4) + 9150: 60c8 addu r3, r2 + 9152: 8843 ld.h r2, (r0, 0x6) + 9154: 60c8 addu r3, r2 + g_CC->U16_PowerPAC_RegData + g_CC->U16_PowerPBC_RegData + g_CC->U16_PowerSC_RegData + + 9156: 8844 ld.h r2, (r0, 0x8) + 9158: 60c8 addu r3, r2 + 915a: 8845 ld.h r2, (r0, 0xa) + 915c: 60c8 addu r3, r2 + 915e: 8846 ld.h r2, (r0, 0xc) + 9160: 60c8 addu r3, r2 + g_CC->U16_EnergyAC_RegData + g_CC->U16_EnergyBC_RegData ); + 9162: 8847 ld.h r2, (r0, 0xe) + 9164: 60c8 addu r3, r2 + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9166: 3000 movi r0, 0 + 9168: 600e subu r0, r3 + return CRC_p; + 916a: 7401 zexth r0, r0 +} + 916c: 783c jmp r15 + +Disassembly of section .text.HLW8110_ReadSysPara: + +00009170 : +{ + 9170: 14d3 push r4-r6, r15 + switch(g_Eng.rWCh_Num) + 9172: 037b lrw r3, 0x20000578 // 9380 + 9174: 8301 ld.b r0, (r3, 0x1) + 9176: 380a cmphsi r0, 11 + 9178: 6d0f mov r4, r3 + 917a: 08fd bt 0x9374 // 9374 + 917c: e3ffd1c0 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9180: 351b0f06 .long 0x351b0f06 + 9184: 8f79634d .long 0x8f79634d + 9188: 00d1bba5 .long 0x00d1bba5 + HLW8110_Reset_Tack = SysTick_1ms; + 918c: 137e lrw r3, 0x200000c4 // 9384 + 918e: 9340 ld.w r2, (r3, 0x0) + 9190: 137e lrw r3, 0x2000016c // 9388 + 9192: b341 st.w r2, (r3, 0x4) + g_Eng.rWCh_Num = 0x01; + 9194: 3301 movi r3, 1 + 9196: a461 st.b r3, (r4, 0x1) + HLW8110_Reset(); + 9198: e3fffbe8 bsr 0x8968 // 8968 +} + 919c: 1493 pop r4-r6, r15 + if(SysTick_1ms - HLW8110_Reset_Tack >= 1000) //复位HLW8110时间 + 919e: 133a lrw r1, 0x200000c4 // 9384 + 91a0: 135a lrw r2, 0x2000016c // 9388 + 91a2: 9160 ld.w r3, (r1, 0x0) + 91a4: 9201 ld.w r0, (r2, 0x4) + 91a6: 60c2 subu r3, r0 + 91a8: 1319 lrw r0, 0x3e7 // 938c + 91aa: 64c0 cmphs r0, r3 + 91ac: 0805 bt 0x91b6 // 91b6 + HLW8110_Reset_Tack = SysTick_1ms; + 91ae: 9160 ld.w r3, (r1, 0x0) + 91b0: b261 st.w r3, (r2, 0x4) + g_Eng.rWCh_Num = 0x02; + 91b2: 3302 movi r3, 2 + 91b4: a461 st.b r3, (r4, 0x1) + if(Get_SendState() == SEND_STATE_SUCC) + 91b6: e3fffc95 bsr 0x8ae0 // 8ae0 + 91ba: 3841 cmpnei r0, 1 + 91bc: 0804 bt 0x91c4 // 91c4 + g_Eng.rWCh_Num = 0x03; + 91be: 3303 movi r3, 3 + g_Eng.rWCh_Num = 0x04; + 91c0: a461 st.b r3, (r4, 0x1) + break; + 91c2: 07ed br 0x919c // 919c + else if(Get_SendState() == SEND_STATE_FAIL) + 91c4: e3fffc8e bsr 0x8ae0 // 8ae0 + 91c8: 3842 cmpnei r0, 2 + 91ca: 0806 bt 0x91d6 // 91d6 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IAC_ADDR ERR!"); + 91cc: 1331 lrw r1, 0xb4cf // 9390 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 91ce: 3000 movi r0, 0 + 91d0: e3fff432 bsr 0x7a34 // 7a34 + break; + 91d4: 07e4 br 0x919c // 919c + if(u_det.WR_flag == SEND_NONE) + 91d6: 1370 lrw r3, 0x20000534 // 9394 + 91d8: 8360 ld.b r3, (r3, 0x0) + 91da: 3b40 cmpnei r3, 0 + 91dc: 0be0 bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IAC_ADDR,0,0); + 91de: 3200 movi r2, 0 + 91e0: 3100 movi r1, 0 + 91e2: 3070 movi r0, 112 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 91e4: e3fffbea bsr 0x89b8 // 89b8 + 91e8: 07da br 0x919c // 919c + if(Get_SendState() == SEND_STATE_SUCC) + 91ea: e3fffc7b bsr 0x8ae0 // 8ae0 + 91ee: 3841 cmpnei r0, 1 + 91f0: 0803 bt 0x91f6 // 91f6 + g_Eng.rWCh_Num = 0x04; + 91f2: 3304 movi r3, 4 + 91f4: 07e6 br 0x91c0 // 91c0 + else if(Get_SendState() == SEND_STATE_FAIL) + 91f6: e3fffc75 bsr 0x8ae0 // 8ae0 + 91fa: 3842 cmpnei r0, 2 + 91fc: 0807 bt 0x920a // 920a + g_Eng.rWCh_Num = 0x00; + 91fe: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 9200: 1326 lrw r1, 0xb4e5 // 9398 + 9202: 3000 movi r0, 0 + g_Eng.rWCh_Num = 0x00; + 9204: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 9206: e3fff417 bsr 0x7a34 // 7a34 + if(u_det.WR_flag == SEND_NONE) + 920a: 1363 lrw r3, 0x20000534 // 9394 + 920c: 8360 ld.b r3, (r3, 0x0) + 920e: 3b40 cmpnei r3, 0 + 9210: 0bc6 bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IBC_ADDR,0,0); + 9212: 3200 movi r2, 0 + 9214: 3100 movi r1, 0 + 9216: 3071 movi r0, 113 + 9218: 07e6 br 0x91e4 // 91e4 + if(Get_SendState() == SEND_STATE_SUCC) + 921a: e3fffc63 bsr 0x8ae0 // 8ae0 + 921e: 3841 cmpnei r0, 1 + 9220: 0803 bt 0x9226 // 9226 + g_Eng.rWCh_Num = 0x05; + 9222: 3305 movi r3, 5 + 9224: 07ce br 0x91c0 // 91c0 + else if(Get_SendState() == SEND_STATE_FAIL) + 9226: e3fffc5d bsr 0x8ae0 // 8ae0 + 922a: 3842 cmpnei r0, 2 + 922c: 0805 bt 0x9236 // 9236 + g_Eng.rWCh_Num = 0x00; + 922e: 3300 movi r3, 0 + 9230: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_UC_ADDR ERR!"); + 9232: 123b lrw r1, 0xb4fb // 939c + 9234: 07cd br 0x91ce // 91ce + if(u_det.WR_flag == SEND_NONE) + 9236: 1278 lrw r3, 0x20000534 // 9394 + 9238: 8360 ld.b r3, (r3, 0x0) + 923a: 3b40 cmpnei r3, 0 + 923c: 0bb0 bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_RMS_UC_ADDR,0,0); + 923e: 3200 movi r2, 0 + 9240: 3100 movi r1, 0 + 9242: 3072 movi r0, 114 + 9244: 07d0 br 0x91e4 // 91e4 + if(Get_SendState() == SEND_STATE_SUCC) + 9246: e3fffc4d bsr 0x8ae0 // 8ae0 + 924a: 3841 cmpnei r0, 1 + 924c: 0803 bt 0x9252 // 9252 + g_Eng.rWCh_Num = 0x06; + 924e: 3306 movi r3, 6 + 9250: 07b8 br 0x91c0 // 91c0 + else if(Get_SendState() == SEND_STATE_FAIL) + 9252: e3fffc47 bsr 0x8ae0 // 8ae0 + 9256: 3842 cmpnei r0, 2 + 9258: 0805 bt 0x9262 // 9262 + g_Eng.rWCh_Num = 0x00; + 925a: 3300 movi r3, 0 + 925c: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PAC_ADDR ERR!"); + 925e: 1231 lrw r1, 0xb510 // 93a0 + 9260: 07b7 br 0x91ce // 91ce + if(u_det.WR_flag == SEND_NONE) + 9262: 126d lrw r3, 0x20000534 // 9394 + 9264: 8360 ld.b r3, (r3, 0x0) + 9266: 3b40 cmpnei r3, 0 + 9268: 0b9a bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PAC_ADDR,0,0); + 926a: 3200 movi r2, 0 + 926c: 3100 movi r1, 0 + 926e: 3073 movi r0, 115 + 9270: 07ba br 0x91e4 // 91e4 + if(Get_SendState() == SEND_STATE_SUCC) + 9272: e3fffc37 bsr 0x8ae0 // 8ae0 + 9276: 3841 cmpnei r0, 1 + 9278: 0803 bt 0x927e // 927e + g_Eng.rWCh_Num = 0x07; + 927a: 3307 movi r3, 7 + 927c: 07a2 br 0x91c0 // 91c0 + else if(Get_SendState() == SEND_STATE_FAIL) + 927e: e3fffc31 bsr 0x8ae0 // 8ae0 + 9282: 3842 cmpnei r0, 2 + 9284: 0805 bt 0x928e // 928e + g_Eng.rWCh_Num = 0x00; + 9286: 3300 movi r3, 0 + 9288: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PBC_ADDR ERR!"); + 928a: 1227 lrw r1, 0xb528 // 93a4 + 928c: 07a1 br 0x91ce // 91ce + if(u_det.WR_flag == SEND_NONE) + 928e: 1262 lrw r3, 0x20000534 // 9394 + 9290: 8360 ld.b r3, (r3, 0x0) + 9292: 3b40 cmpnei r3, 0 + 9294: 0b84 bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PBC_ADDR,0,0); + 9296: 3200 movi r2, 0 + 9298: 3100 movi r1, 0 + 929a: 3074 movi r0, 116 + 929c: 07a4 br 0x91e4 // 91e4 + if(Get_SendState() == SEND_STATE_SUCC) + 929e: e3fffc21 bsr 0x8ae0 // 8ae0 + 92a2: 3841 cmpnei r0, 1 + 92a4: 0803 bt 0x92aa // 92aa + g_Eng.rWCh_Num = 0x08; + 92a6: 3308 movi r3, 8 + 92a8: 078c br 0x91c0 // 91c0 + else if(Get_SendState() == SEND_STATE_FAIL) + 92aa: e3fffc1b bsr 0x8ae0 // 8ae0 + 92ae: 3842 cmpnei r0, 2 + 92b0: 0805 bt 0x92ba // 92ba + g_Eng.rWCh_Num = 0x00; + 92b2: 3300 movi r3, 0 + 92b4: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_SC_ADDR ERR!"); + 92b6: 113d lrw r1, 0xb540 // 93a8 + 92b8: 078b br 0x91ce // 91ce + if(u_det.WR_flag == SEND_NONE) + 92ba: 1177 lrw r3, 0x20000534 // 9394 + 92bc: 8360 ld.b r3, (r3, 0x0) + 92be: 3b40 cmpnei r3, 0 + 92c0: 0b6e bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_POWER_SC_ADDR,0,0); + 92c2: 3200 movi r2, 0 + 92c4: 3100 movi r1, 0 + 92c6: 3075 movi r0, 117 + 92c8: 078e br 0x91e4 // 91e4 + if(Get_SendState() == SEND_STATE_SUCC) + 92ca: e3fffc0b bsr 0x8ae0 // 8ae0 + 92ce: 3841 cmpnei r0, 1 + 92d0: 0803 bt 0x92d6 // 92d6 + g_Eng.rWCh_Num = 0x09; + 92d2: 3309 movi r3, 9 + 92d4: 0776 br 0x91c0 // 91c0 + else if(Get_SendState() == SEND_STATE_FAIL) + 92d6: e3fffc05 bsr 0x8ae0 // 8ae0 + 92da: 3842 cmpnei r0, 2 + 92dc: 0805 bt 0x92e6 // 92e6 + g_Eng.rWCh_Num = 0x00; + 92de: 3300 movi r3, 0 + 92e0: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_AC_ADDR ERR!"); + 92e2: 1133 lrw r1, 0xb557 // 93ac + 92e4: 0775 br 0x91ce // 91ce + if(u_det.WR_flag == SEND_NONE) + 92e6: 116c lrw r3, 0x20000534 // 9394 + 92e8: 8360 ld.b r3, (r3, 0x0) + 92ea: 3b40 cmpnei r3, 0 + 92ec: 0b58 bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_AC_ADDR,0,0); + 92ee: 3200 movi r2, 0 + 92f0: 3100 movi r1, 0 + 92f2: 3076 movi r0, 118 + 92f4: 0778 br 0x91e4 // 91e4 + if(Get_SendState() == SEND_STATE_SUCC) + 92f6: e3fffbf5 bsr 0x8ae0 // 8ae0 + 92fa: 3841 cmpnei r0, 1 + 92fc: 0803 bt 0x9302 // 9302 + g_Eng.rWCh_Num = 0x0A; + 92fe: 330a movi r3, 10 + 9300: 0760 br 0x91c0 // 91c0 + else if(Get_SendState() == SEND_STATE_FAIL) + 9302: e3fffbef bsr 0x8ae0 // 8ae0 + 9306: 3842 cmpnei r0, 2 + 9308: 0805 bt 0x9312 // 9312 + g_Eng.rWCh_Num = 0x00; + 930a: 3300 movi r3, 0 + 930c: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_BC_ADDR ERR!"); + 930e: 1129 lrw r1, 0xb56f // 93b0 + 9310: 075f br 0x91ce // 91ce + if(u_det.WR_flag == SEND_NONE) + 9312: 1161 lrw r3, 0x20000534 // 9394 + 9314: 8360 ld.b r3, (r3, 0x0) + 9316: 3b40 cmpnei r3, 0 + 9318: 0b42 bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_BC_ADDR,0,0); + 931a: 3200 movi r2, 0 + 931c: 3100 movi r1, 0 + 931e: 3077 movi r0, 119 + 9320: 0762 br 0x91e4 // 91e4 + if(Get_SendState() == SEND_STATE_SUCC) + 9322: e3fffbdf bsr 0x8ae0 // 8ae0 + 9326: 3841 cmpnei r0, 1 + 9328: 0818 bt 0x9358 // 9358 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 932a: 11a3 lrw r5, 0x2000053c // 93b4 + 932c: 6c17 mov r0, r5 + 932e: e3ffff0d bsr 0x9148 // 9148 + 9332: 8dc8 ld.h r6, (r5, 0x10) + g_Eng.rWCh_Num = 0x00; + 9334: 3300 movi r3, 0 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 9336: 641a cmpne r6, r0 + g_Eng.rWCh_Num = 0x00; + 9338: a461 st.b r3, (r4, 0x1) + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 933a: 0805 bt 0x9344 // 9344 + g_Eng.Tack_State = 0x02; + 933c: 3302 movi r3, 2 + 933e: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK SUCC!"); + 9340: 103e lrw r1, 0xb587 // 93b8 + 9342: 0746 br 0x91ce // 91ce + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK ERR:%x,%x",g_CalFactor.U16_CheckSUM_RegData,HLW8110_SysPara_Check(&g_CalFactor)); + 9344: 6c17 mov r0, r5 + 9346: e3ffff01 bsr 0x9148 // 9148 + 934a: 6cc3 mov r3, r0 + 934c: 6c9b mov r2, r6 + 934e: 103c lrw r1, 0xb597 // 93bc + 9350: 3000 movi r0, 0 + 9352: e3fff371 bsr 0x7a34 // 7a34 + break; + 9356: 0723 br 0x919c // 919c + else if(Get_SendState() == SEND_STATE_FAIL) + 9358: e3fffbc4 bsr 0x8ae0 // 8ae0 + 935c: 3842 cmpnei r0, 2 + 935e: 0803 bt 0x9364 // 9364 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 9360: 1038 lrw r1, 0xb5ab // 93c0 + 9362: 0736 br 0x91ce // 91ce + if(u_det.WR_flag == SEND_NONE) + 9364: 106c lrw r3, 0x20000534 // 9394 + 9366: 8360 ld.b r3, (r3, 0x0) + 9368: 3b40 cmpnei r3, 0 + 936a: 0b19 bt 0x919c // 919c + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 936c: 3200 movi r2, 0 + 936e: 3100 movi r1, 0 + 9370: 306f movi r0, 111 + 9372: 0739 br 0x91e4 // 91e4 + g_Eng.rWCh_Num = 0x00; + 9374: 3200 movi r2, 0 + 9376: a341 st.b r2, (r3, 0x1) + g_Eng.Tack_State = 0x01; + 9378: 3201 movi r2, 1 + 937a: a340 st.b r2, (r3, 0x0) +} + 937c: 0710 br 0x919c // 919c + 937e: 0000 bkpt + 9380: 20000578 .long 0x20000578 + 9384: 200000c4 .long 0x200000c4 + 9388: 2000016c .long 0x2000016c + 938c: 000003e7 .long 0x000003e7 + 9390: 0000b4cf .long 0x0000b4cf + 9394: 20000534 .long 0x20000534 + 9398: 0000b4e5 .long 0x0000b4e5 + 939c: 0000b4fb .long 0x0000b4fb + 93a0: 0000b510 .long 0x0000b510 + 93a4: 0000b528 .long 0x0000b528 + 93a8: 0000b540 .long 0x0000b540 + 93ac: 0000b557 .long 0x0000b557 + 93b0: 0000b56f .long 0x0000b56f + 93b4: 2000053c .long 0x2000053c + 93b8: 0000b587 .long 0x0000b587 + 93bc: 0000b597 .long 0x0000b597 + 93c0: 0000b5ab .long 0x0000b5ab + +Disassembly of section .text.HLW8110_ReadSysCtrlPara: + +000093c4 : +{ + 93c4: 14d1 push r4, r15 + switch(g_Eng.rWSysCtrl) + 93c6: 118b lrw r4, 0x20000578 // 9470 + 93c8: 8462 ld.b r3, (r4, 0x2) + 93ca: 3b41 cmpnei r3, 1 + 93cc: 0c23 bf 0x9412 // 9412 + 93ce: 3b40 cmpnei r3, 0 + 93d0: 0c07 bf 0x93de // 93de + 93d2: 3b42 cmpnei r3, 2 + 93d4: 0c35 bf 0x943e // 943e + g_Eng.rWSysCtrl = 0x00; + 93d6: 3300 movi r3, 0 + 93d8: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x02; + 93da: 3302 movi r3, 2 + 93dc: 0438 br 0x944c // 944c + if(Get_SendState() == SEND_STATE_SUCC) + 93de: e3fffb81 bsr 0x8ae0 // 8ae0 + 93e2: 3841 cmpnei r0, 1 + 93e4: 0804 bt 0x93ec // 93ec + g_Eng.rWSysCtrl = 0x01; + 93e6: 3301 movi r3, 1 + g_Eng.rWSysCtrl = 0x02; + 93e8: a462 st.b r3, (r4, 0x2) +} + 93ea: 1491 pop r4, r15 + else if(Get_SendState() == SEND_STATE_FAIL) + 93ec: e3fffb7a bsr 0x8ae0 // 8ae0 + 93f0: 3842 cmpnei r0, 2 + 93f2: 0806 bt 0x93fe // 93fe + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_SYSCON_ADDR ERR!"); + 93f4: 1120 lrw r1, 0xb5c2 // 9474 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 93f6: 3000 movi r0, 0 + 93f8: e3fff31e bsr 0x7a34 // 7a34 + break; + 93fc: 07f7 br 0x93ea // 93ea + if(u_det.WR_flag == SEND_NONE) + 93fe: 107f lrw r3, 0x20000534 // 9478 + 9400: 8360 ld.b r3, (r3, 0x0) + 9402: 3b40 cmpnei r3, 0 + 9404: 0bf3 bt 0x93ea // 93ea + BLV_HLW8110_RWCMD_Packaging(REG_SYSCON_ADDR,2,SYSCON_DEFAULT); + 9406: 105e lrw r2, 0xa04 // 947c + 9408: 3102 movi r1, 2 + 940a: 3000 movi r0, 0 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 940c: e3fffad6 bsr 0x89b8 // 89b8 + 9410: 07ed br 0x93ea // 93ea + if(Get_SendState() == SEND_STATE_SUCC) + 9412: e3fffb67 bsr 0x8ae0 // 8ae0 + 9416: 3841 cmpnei r0, 1 + 9418: 0803 bt 0x941e // 941e + g_Eng.rWSysCtrl = 0x02; + 941a: 3302 movi r3, 2 + 941c: 07e6 br 0x93e8 // 93e8 + else if(Get_SendState() == SEND_STATE_FAIL) + 941e: e3fffb61 bsr 0x8ae0 // 8ae0 + 9422: 3842 cmpnei r0, 2 + 9424: 0805 bt 0x942e // 942e + g_Eng.rWSysCtrl = 0x00; + 9426: 3300 movi r3, 0 + 9428: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON1_ADDR ERR!"); + 942a: 1036 lrw r1, 0xb5d7 // 9480 + 942c: 07e5 br 0x93f6 // 93f6 + if(u_det.WR_flag == SEND_NONE) + 942e: 1073 lrw r3, 0x20000534 // 9478 + 9430: 8360 ld.b r3, (r3, 0x0) + 9432: 3b40 cmpnei r3, 0 + 9434: 0bdb bt 0x93ea // 93ea + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON1_ADDR,2,EMUCON1_DEFAULT); + 9436: 3201 movi r2, 1 + 9438: 3102 movi r1, 2 + 943a: 3001 movi r0, 1 + 943c: 07e8 br 0x940c // 940c + if(Get_SendState() == SEND_STATE_SUCC) + 943e: e3fffb51 bsr 0x8ae0 // 8ae0 + 9442: 3841 cmpnei r0, 1 + 9444: 0806 bt 0x9450 // 9450 + g_Eng.rWSysCtrl = 0x00; + 9446: 3300 movi r3, 0 + 9448: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x03; + 944a: 3303 movi r3, 3 + g_Eng.Tack_State = 0x02; + 944c: a460 st.b r3, (r4, 0x0) +} + 944e: 07ce br 0x93ea // 93ea + else if(Get_SendState() == SEND_STATE_FAIL) + 9450: e3fffb48 bsr 0x8ae0 // 8ae0 + 9454: 3842 cmpnei r0, 2 + 9456: 0805 bt 0x9460 // 9460 + g_Eng.rWSysCtrl = 0x00; + 9458: 3300 movi r3, 0 + 945a: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 945c: 102a lrw r1, 0xb5ed // 9484 + 945e: 07cc br 0x93f6 // 93f6 + if(u_det.WR_flag == SEND_NONE) + 9460: 1066 lrw r3, 0x20000534 // 9478 + 9462: 8360 ld.b r3, (r3, 0x0) + 9464: 3b40 cmpnei r3, 0 + 9466: 0bc2 bt 0x93ea // 93ea + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 9468: 1048 lrw r2, 0x465 // 9488 + 946a: 3102 movi r1, 2 + 946c: 3013 movi r0, 19 + 946e: 07cf br 0x940c // 940c + 9470: 20000578 .long 0x20000578 + 9474: 0000b5c2 .long 0x0000b5c2 + 9478: 20000534 .long 0x20000534 + 947c: 00000a04 .long 0x00000a04 + 9480: 0000b5d7 .long 0x0000b5d7 + 9484: 0000b5ed .long 0x0000b5ed + 9488: 00000465 .long 0x00000465 + +Disassembly of section .text.GetEnergy_Para: + +0000948c : +{ + 948c: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_V :%d 10mV",g_Eng.det_V); + 948e: 1092 lrw r4, 0x20000578 // 94d4 + 9490: 1032 lrw r1, 0xb603 // 94d8 + 9492: 3000 movi r0, 0 + 9494: 944b ld.w r2, (r4, 0x2c) + 9496: e3fff2cf bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_I :%d 10mA",g_Eng.det_ectA); + 949a: 944c ld.w r2, (r4, 0x30) + 949c: 3000 movi r0, 0 + 949e: 1030 lrw r1, 0xb612 // 94dc + 94a0: e3fff2ca bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_P :%d W",g_Eng.det_powA); + 94a4: 944e ld.w r2, (r4, 0x38) + 94a6: 3000 movi r0, 0 + 94a8: 102e lrw r1, 0xb621 // 94e0 + 94aa: e3fff2c5 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_E :%d W/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 94ae: 9469 ld.w r3, (r4, 0x24) + 94b0: 9448 ld.w r2, (r4, 0x20) + 94b2: 608e subu r2, r3 + 94b4: 102c lrw r1, 0xb62d // 94e4 + 94b6: 3000 movi r0, 0 + 94b8: e3fff2be bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_TE:%d W/h",g_Eng.Total_Eng); + 94bc: 9448 ld.w r2, (r4, 0x20) + 94be: 3000 movi r0, 0 + 94c0: 102a lrw r1, 0xb63b // 94e8 + 94c2: e3fff2b9 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_HF:%d",g_Eng.hfcount); + 94c6: 8c4e ld.h r2, (r4, 0x1c) + 94c8: 1029 lrw r1, 0xb649 // 94ec + 94ca: 3000 movi r0, 0 + 94cc: e3fff2b4 bsr 0x7a34 // 7a34 +} + 94d0: 1491 pop r4, r15 + 94d2: 0000 bkpt + 94d4: 20000578 .long 0x20000578 + 94d8: 0000b603 .long 0x0000b603 + 94dc: 0000b612 .long 0x0000b612 + 94e0: 0000b621 .long 0x0000b621 + 94e4: 0000b62d .long 0x0000b62d + 94e8: 0000b63b .long 0x0000b63b + 94ec: 0000b649 .long 0x0000b649 + +Disassembly of section .text.HLW8110_ReadValue: + +000094f0 : +{ + 94f0: 14d1 push r4, r15 + switch(g_Eng.rDValue_State) + 94f2: 128c lrw r4, 0x20000578 // 9620 + 94f4: 8403 ld.b r0, (r4, 0x3) + 94f6: 3805 cmphsi r0, 6 + 94f8: 0816 bt 0x9524 // 9524 + 94fa: e3ffd001 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 94fe: 1403 .short 0x1403 + 9500: 78624c34 .long 0x78624c34 + if(SysTick_1ms - Wait_ReadValue_Tisk >= g_Eng.Collect_Tim) //S读取一次 + 9504: 1248 lrw r2, 0x200000c4 // 9624 + 9506: 1229 lrw r1, 0x2000016c // 9628 + 9508: 9260 ld.w r3, (r2, 0x0) + 950a: 9102 ld.w r0, (r1, 0x8) + 950c: 60c2 subu r3, r0 + 950e: 9419 ld.w r0, (r4, 0x64) + 9510: 640c cmphs r3, r0 + 9512: 0c09 bf 0x9524 // 9524 + Wait_ReadValue_Tisk = SysTick_1ms; + 9514: 9240 ld.w r2, (r2, 0x0) + 9516: b142 st.w r2, (r1, 0x8) + g_Eng.rDValue_State = 0x01; + 9518: 3301 movi r3, 1 + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 951a: 1225 lrw r1, 0xb653 // 962c + 951c: 3000 movi r0, 0 + g_Eng.rDValue_State = 0x01; + 951e: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 9520: e3fff28a bsr 0x7a34 // 7a34 +} + 9524: 1491 pop r4, r15 + if(Get_SendState() == SEND_STATE_SUCC) + 9526: e3fffadd bsr 0x8ae0 // 8ae0 + 952a: 3841 cmpnei r0, 1 + 952c: 0804 bt 0x9534 // 9534 + g_Eng.rDValue_State = 0x02; + 952e: 3302 movi r3, 2 + g_Eng.rDValue_State = 0x03; + 9530: a463 st.b r3, (r4, 0x3) + break; + 9532: 07f9 br 0x9524 // 9524 + else if(Get_SendState() == SEND_STATE_FAIL) + 9534: e3fffad6 bsr 0x8ae0 // 8ae0 + 9538: 3842 cmpnei r0, 2 + 953a: 0808 bt 0x954a // 954a + g_Eng.rDValue_State = 0x00; + 953c: 3300 movi r3, 0 + 953e: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIA_ADDR ERR!"); + 9540: 113c lrw r1, 0xb660 // 9630 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 9542: 3000 movi r0, 0 + 9544: e3fff278 bsr 0x7a34 // 7a34 + break; + 9548: 07ee br 0x9524 // 9524 + if(u_det.WR_flag == SEND_NONE) + 954a: 117b lrw r3, 0x20000534 // 9634 + 954c: 8360 ld.b r3, (r3, 0x0) + 954e: 3b40 cmpnei r3, 0 + 9550: 0806 bt 0x955c // 955c + BLV_HLW8110_RWCMD_Packaging(REG_RMSIA_ADDR,0,0); + 9552: 3200 movi r2, 0 + 9554: 3100 movi r1, 0 + 9556: 3024 movi r0, 36 + 9558: e3fffa30 bsr 0x89b8 // 89b8 + Wait_ReadValue_Tisk = SysTick_1ms; + 955c: 1172 lrw r3, 0x200000c4 // 9624 + 955e: 9340 ld.w r2, (r3, 0x0) + 9560: 1172 lrw r3, 0x2000016c // 9628 + 9562: b342 st.w r2, (r3, 0x8) + break; + 9564: 07e0 br 0x9524 // 9524 + if(Get_SendState() == SEND_STATE_SUCC) + 9566: e3fffabd bsr 0x8ae0 // 8ae0 + 956a: 3841 cmpnei r0, 1 + 956c: 0803 bt 0x9572 // 9572 + g_Eng.rDValue_State = 0x03; + 956e: 3303 movi r3, 3 + 9570: 07e0 br 0x9530 // 9530 + else if(Get_SendState() == SEND_STATE_FAIL) + 9572: e3fffab7 bsr 0x8ae0 // 8ae0 + 9576: 3842 cmpnei r0, 2 + 9578: 0805 bt 0x9582 // 9582 + g_Eng.rDValue_State = 0x00; + 957a: 3300 movi r3, 0 + 957c: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSU_ADDR ERR!"); + 957e: 112f lrw r1, 0xb674 // 9638 + 9580: 07e1 br 0x9542 // 9542 + if(u_det.WR_flag == SEND_NONE) + 9582: 116d lrw r3, 0x20000534 // 9634 + 9584: 8360 ld.b r3, (r3, 0x0) + 9586: 3b40 cmpnei r3, 0 + 9588: 0bce bt 0x9524 // 9524 + BLV_HLW8110_RWCMD_Packaging(REG_RMSU_ADDR,0,0); + 958a: 3200 movi r2, 0 + 958c: 3100 movi r1, 0 + 958e: 3026 movi r0, 38 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 9590: e3fffa14 bsr 0x89b8 // 89b8 +} + 9594: 07c8 br 0x9524 // 9524 + if(Get_SendState() == SEND_STATE_SUCC) + 9596: e3fffaa5 bsr 0x8ae0 // 8ae0 + 959a: 3841 cmpnei r0, 1 + 959c: 0803 bt 0x95a2 // 95a2 + g_Eng.rDValue_State = 0x04; + 959e: 3304 movi r3, 4 + 95a0: 07c8 br 0x9530 // 9530 + else if(Get_SendState() == SEND_STATE_FAIL) + 95a2: e3fffa9f bsr 0x8ae0 // 8ae0 + 95a6: 3842 cmpnei r0, 2 + 95a8: 0805 bt 0x95b2 // 95b2 + g_Eng.rDValue_State = 0x00; + 95aa: 3300 movi r3, 0 + 95ac: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PA_ADDR ERR!"); + 95ae: 1124 lrw r1, 0xb687 // 963c + 95b0: 07c9 br 0x9542 // 9542 + if(u_det.WR_flag == SEND_NONE) + 95b2: 1161 lrw r3, 0x20000534 // 9634 + 95b4: 8360 ld.b r3, (r3, 0x0) + 95b6: 3b40 cmpnei r3, 0 + 95b8: 0bb6 bt 0x9524 // 9524 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PA_ADDR,0,0); + 95ba: 3200 movi r2, 0 + 95bc: 3100 movi r1, 0 + 95be: 302c movi r0, 44 + 95c0: 07e8 br 0x9590 // 9590 + if(Get_SendState() == SEND_STATE_SUCC) + 95c2: e3fffa8f bsr 0x8ae0 // 8ae0 + 95c6: 3841 cmpnei r0, 1 + 95c8: 0803 bt 0x95ce // 95ce + g_Eng.rDValue_State = 0x05; + 95ca: 3305 movi r3, 5 + 95cc: 07b2 br 0x9530 // 9530 + else if(Get_SendState() == SEND_STATE_FAIL) + 95ce: e3fffa89 bsr 0x8ae0 // 8ae0 + 95d2: 3842 cmpnei r0, 2 + 95d4: 0805 bt 0x95de // 95de + g_Eng.rDValue_State = 0x00; + 95d6: 3300 movi r3, 0 + 95d8: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PA_ADDR ERR!"); + 95da: 103a lrw r1, 0xb69e // 9640 + 95dc: 07b3 br 0x9542 // 9542 + if(u_det.WR_flag == SEND_NONE) + 95de: 1076 lrw r3, 0x20000534 // 9634 + 95e0: 8360 ld.b r3, (r3, 0x0) + 95e2: 3b40 cmpnei r3, 0 + 95e4: 0ba0 bt 0x9524 // 9524 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PA_ADDR,0,0); + 95e6: 3200 movi r2, 0 + 95e8: 3100 movi r1, 0 + 95ea: 3028 movi r0, 40 + 95ec: 07d2 br 0x9590 // 9590 + if(Get_SendState() == SEND_STATE_SUCC) + 95ee: e3fffa79 bsr 0x8ae0 // 8ae0 + 95f2: 3841 cmpnei r0, 1 + 95f4: 0805 bt 0x95fe // 95fe + GetEnergy_Para(); + 95f6: e3ffff4b bsr 0x948c // 948c + g_Eng.rDValue_State = 0x00; + 95fa: 3300 movi r3, 0 + 95fc: 079a br 0x9530 // 9530 + else if(Get_SendState() == SEND_STATE_FAIL) + 95fe: e3fffa71 bsr 0x8ae0 // 8ae0 + 9602: 3842 cmpnei r0, 2 + 9604: 0805 bt 0x960e // 960e + g_Eng.rDValue_State = 0x00; + 9606: 3300 movi r3, 0 + 9608: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 960a: 102f lrw r1, 0xb6b6 // 9644 + 960c: 079b br 0x9542 // 9542 + if(u_det.WR_flag == SEND_NONE) + 960e: 106a lrw r3, 0x20000534 // 9634 + 9610: 8360 ld.b r3, (r3, 0x0) + 9612: 3b40 cmpnei r3, 0 + 9614: 0b88 bt 0x9524 // 9524 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 9616: 3200 movi r2, 0 + 9618: 3100 movi r1, 0 + 961a: 3002 movi r0, 2 + 961c: 07ba br 0x9590 // 9590 + 961e: 0000 bkpt + 9620: 20000578 .long 0x20000578 + 9624: 200000c4 .long 0x200000c4 + 9628: 2000016c .long 0x2000016c + 962c: 0000b653 .long 0x0000b653 + 9630: 0000b660 .long 0x0000b660 + 9634: 20000534 .long 0x20000534 + 9638: 0000b674 .long 0x0000b674 + 963c: 0000b687 .long 0x0000b687 + 9640: 0000b69e .long 0x0000b69e + 9644: 0000b6b6 .long 0x0000b6b6 + +Disassembly of section .text.BLV_HLW8110_Tack: + +00009648 : +{ + 9648: 14d0 push r15 + switch(g_Eng.Tack_State) + 964a: 106d lrw r3, 0x20000578 // 967c + 964c: 8300 ld.b r0, (r3, 0x0) + 964e: 3803 cmphsi r0, 4 + 9650: 080c bt 0x9668 // 9668 + 9652: e3ffcf55 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9656: 0a02 .short 0x0a02 + 9658: 100d .short 0x100d + if(SysTick_1ms > 1500) + 965a: 104a lrw r2, 0x200000c4 // 9680 + 965c: 9220 ld.w r1, (r2, 0x0) + 965e: 104a lrw r2, 0x5dc // 9684 + 9660: 6448 cmphs r2, r1 + 9662: 0803 bt 0x9668 // 9668 + g_Eng.Tack_State = 0x01; + 9664: 3201 movi r2, 1 + 9666: a340 st.b r2, (r3, 0x0) +} + 9668: 1490 pop r15 + HLW8110_ReadSysPara(); + 966a: e3fffd83 bsr 0x9170 // 9170 + break; + 966e: 07fd br 0x9668 // 9668 + HLW8110_ReadSysCtrlPara(); + 9670: e3fffeaa bsr 0x93c4 // 93c4 + break; + 9674: 07fa br 0x9668 // 9668 + HLW8110_ReadValue(); + 9676: e3ffff3d bsr 0x94f0 // 94f0 +} + 967a: 07f7 br 0x9668 // 9668 + 967c: 20000578 .long 0x20000578 + 9680: 200000c4 .long 0x200000c4 + 9684: 000005dc .long 0x000005dc + +Disassembly of section .text.BT_Uart_Packing: + +00009688 : +{ + 9688: 14d0 push r15 + if(flag <= 3 ) return; + 968a: 3a03 cmphsi r2, 4 + 968c: 0c03 bf 0x9692 // 9692 + 968e: e3fff87b bsr 0x8784 // 8784 +} + 9692: 1490 pop r15 + +Disassembly of section .text.BT_UART_Print: + +00009694 : + +//蓝牙打印调试 +void BT_UART_Print(void) +{ + 9694: 14d2 push r4-r5, r15 + static U32_T BT_State = 0x00; + static U32_T BT_WaitOutTim = 0x00; + + for(U8_T i = 10;i > 3;i--) + { + if( (g_Eng.BT_SendFlag & (0x01 << i )) != 0x00 ){ + 9696: 1176 lrw r3, 0x20000578 // 976c + 9698: 8b8d ld.h r4, (r3, 0x1a) + 969a: 320a movi r2, 10 + 969c: 3001 movi r0, 1 + 969e: 6c53 mov r1, r4 + 96a0: 704a asr r1, r2 + 96a2: 6840 and r1, r0 + 96a4: 3940 cmpnei r1, 0 + 96a6: 0c17 bf 0x96d4 // 96d4 + BT_State = i; + 96a8: 7488 zextb r2, r2 + 96aa: 1132 lrw r1, 0x2000016c // 9770 + 96ac: b143 st.w r2, (r1, 0xc) + break; + } + } + + if(SysTick_1ms - g_Eng.BT_Print_Tim >= 100) + 96ae: 1132 lrw r1, 0x200000c4 // 9774 + 96b0: 9140 ld.w r2, (r1, 0x0) + 96b2: 931d ld.w r0, (r3, 0x74) + 96b4: 6082 subu r2, r0 + 96b6: 3063 movi r0, 99 + 96b8: 6480 cmphs r0, r2 + 96ba: 081a bt 0x96ee // 96ee + { + g_Eng.BT_Print_Tim = SysTick_1ms; + switch(BT_State) + 96bc: 11ad lrw r5, 0x2000016c // 9770 + 96be: 9503 ld.w r0, (r5, 0xc) + g_Eng.BT_Print_Tim = SysTick_1ms; + 96c0: 9140 ld.w r2, (r1, 0x0) + switch(BT_State) + 96c2: 3806 cmphsi r0, 7 + g_Eng.BT_Print_Tim = SysTick_1ms; + 96c4: b35d st.w r2, (r3, 0x74) + switch(BT_State) + 96c6: 084c bt 0x975e // 975e + 96c8: e3ffcf1a bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 96cc: 21191208 .long 0x21191208 + 96d0: 003c312a .long 0x003c312a + 96d4: 2a00 subi r2, 1 + for(U8_T i = 10;i > 3;i--) + 96d6: 3a43 cmpnei r2, 3 + 96d8: 0be3 bt 0x969e // 969e + 96da: 07ea br 0x96ae // 96ae + { + case 0x00: + BT_State = 0x01; + 96dc: 3101 movi r1, 1 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 96de: 936b ld.w r3, (r3, 0x2c) + 96e0: 320a movi r2, 10 + BT_State = 0x01; + 96e2: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 96e4: 7c8c mult r2, r3 + 96e6: 1125 lrw r1, 0xb6cc // 9778 + break; + case 0x01: + BT_State = 0x02; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96e8: 3003 movi r0, 3 + 96ea: e3fff33f bsr 0x7d68 // 7d68 + BT_State = 0x03; + break; + } + + } +} + 96ee: 1492 pop r4-r5, r15 + BT_State = 0x02; + 96f0: 3102 movi r1, 2 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96f2: 936c ld.w r3, (r3, 0x30) + 96f4: 320a movi r2, 10 + BT_State = 0x02; + 96f6: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96f8: 7c8c mult r2, r3 + 96fa: 1121 lrw r1, 0xb6d3 // 977c + 96fc: 07f6 br 0x96e8 // 96e8 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 96fe: 934e ld.w r2, (r3, 0x38) + 9700: 33fa movi r3, 250 + BT_State = 0x03; + 9702: 3103 movi r1, 3 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 9704: 4362 lsli r3, r3, 2 + BT_State = 0x03; + 9706: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 9708: 7c8c mult r2, r3 + 970a: 103e lrw r1, 0xb6da // 9780 + 970c: 07ee br 0x96e8 // 96e8 + BT_WaitOutTim = SysTick_1ms; + 970e: 9120 ld.w r1, (r1, 0x0) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 9710: 9348 ld.w r2, (r3, 0x20) + BT_State = 0x04; + 9712: 3004 movi r0, 4 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 9714: 9369 ld.w r3, (r3, 0x24) + BT_WaitOutTim = SysTick_1ms; + 9716: b524 st.w r1, (r5, 0x10) + BT_State = 0x04; + 9718: b503 st.w r0, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 971a: 608e subu r2, r3 + 971c: 103a lrw r1, 0xb6e2 // 9784 + 971e: 07e5 br 0x96e8 // 96e8 + BT_WaitOutTim = SysTick_1ms; + 9720: 9120 ld.w r1, (r1, 0x0) + BT_State = 0x05; + 9722: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 9724: b524 st.w r1, (r5, 0x10) + BT_State = 0x05; + 9726: b503 st.w r0, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TE:%dW/h",g_Eng.Total_Eng); + 9728: 9348 ld.w r2, (r3, 0x20) + 972a: 1038 lrw r1, 0xb6e1 // 9788 + 972c: 07de br 0x96e8 // 96e8 + if(SysTick_1ms - BT_WaitOutTim >= 3000) + 972e: 9504 ld.w r0, (r5, 0x10) + 9730: 9160 ld.w r3, (r1, 0x0) + 9732: 60c2 subu r3, r0 + 9734: 1016 lrw r0, 0xbb7 // 978c + 9736: 64c0 cmphs r0, r3 + 9738: 0bdb bt 0x96ee // 96ee + BT_WaitOutTim = SysTick_1ms; + 973a: 9160 ld.w r3, (r1, 0x0) + 973c: b564 st.w r3, (r5, 0x10) + BT_State = 0x00; + 973e: 3300 movi r3, 0 + 9740: b563 st.w r3, (r5, 0xc) + 9742: 07d6 br 0x96ee // 96ee + g_Eng.BT_SendFlag &= (~(0x01 << 6)); + 9744: 3c86 bclri r4, 6 + 9746: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x05; + 9748: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 974a: 9120 ld.w r1, (r1, 0x0) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 974c: 8359 ld.b r2, (r3, 0x19) + 974e: 1071 lrw r3, 0x20000038 // 9790 + BT_State = 0x05; + 9750: b503 st.w r0, (r5, 0xc) + BT_WaitOutTim = SysTick_1ms; + 9752: b524 st.w r1, (r5, 0x10) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 9754: 9300 ld.w r0, (r3, 0x0) + 9756: 1030 lrw r1, 0x2000057d // 9794 + 9758: e3ffe860 bsr 0x6818 // 6818 + 975c: 07c9 br 0x96ee // 96ee + g_Eng.BT_SendFlag &= (~0xFFE0); + 975e: 321f movi r2, 31 + 9760: 6908 and r4, r2 + 9762: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x03; + 9764: 3303 movi r3, 3 + 9766: b563 st.w r3, (r5, 0xc) +} + 9768: 07c3 br 0x96ee // 96ee + 976a: 0000 bkpt + 976c: 20000578 .long 0x20000578 + 9770: 2000016c .long 0x2000016c + 9774: 200000c4 .long 0x200000c4 + 9778: 0000b6cc .long 0x0000b6cc + 977c: 0000b6d3 .long 0x0000b6d3 + 9780: 0000b6da .long 0x0000b6da + 9784: 0000b6e2 .long 0x0000b6e2 + 9788: 0000b6e1 .long 0x0000b6e1 + 978c: 00000bb7 .long 0x00000bb7 + 9790: 20000038 .long 0x20000038 + 9794: 2000057d .long 0x2000057d + +Disassembly of section .text.BLV_Energy_ActiveRep_Packing: + +00009798 : + + + +//电参数主动上报组包 +void BLV_Energy_ActiveRep_Packing(void) +{ + 9798: 14d1 push r4, r15 + 979a: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 979c: 1801 addi r0, r14, 4 + 979e: 3232 movi r2, 50 + 97a0: 3100 movi r1, 0 + 97a2: e3ffd8db bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97a6: 1175 lrw r3, 0x20000578 // 9878 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; +// g_Eng.det_LastReprot_Eng = g_Eng.det_energyA; +// Dbg_Println(DBG_BIT_SYS_STATUS,"ReportEng1:%d",Energy_Rep); + + g_Eng.SdSN++; + 97a8: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97aa: 32fa movi r2, 250 + g_Eng.SdSN++; + 97ac: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97ae: 932e ld.w r1, (r3, 0x38) + 97b0: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 97b2: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97b4: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 97b6: 9309 ld.w r0, (r3, 0x24) + 97b8: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 97ba: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 97bc: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 97be: 085a bt 0x9872 // 9872 + 97c0: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 97c2: 3400 movi r4, 0 + 97c4: 2c75 subi r4, 118 + 97c6: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 97ca: 8384 ld.b r4, (r3, 0x4) + 97cc: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 97d0: 3400 movi r4, 0 + 97d2: 2c0b subi r4, 12 + 97d4: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 97d8: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 97dc: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 97e0: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 97e4: 1186 lrw r4, 0x20000480 // 987c + 97e6: 8486 ld.b r4, (r4, 0x6) + 97e8: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x01; //cmd + 97ec: 3401 movi r4, 1 + 97ee: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 97f2: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 97f6: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 97f8: 936c ld.w r3, (r3, 0x30) + 97fa: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 97fe: 4b68 lsri r3, r3, 8 + 9800: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 9804: 4a68 lsri r3, r2, 8 + 9806: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 980a: 4a70 lsri r3, r2, 16 + 980c: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 9810: 4868 lsri r3, r0, 8 + 9812: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 9816: 4870 lsri r3, r0, 16 + 9818: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 981c: 4968 lsri r3, r1, 8 + 981e: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 9822: 4970 lsri r3, r1, 16 + 9824: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 9828: 4978 lsri r3, r1, 24 + 982a: dc6e001b st.b r3, (r14, 0x1b) + + send_data[send_len++] = ENERGY_TAIL; + 982e: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 9830: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 9832: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 9834: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 9838: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 983c: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9840: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 9842: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9844: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9846: 3119 movi r1, 25 + 9848: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 984a: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 984e: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9852: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9856: e3fff829 bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 985a: 33c8 movi r3, 200 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 985c: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 9860: b860 st.w r3, (r14, 0x0) + 9862: 3203 movi r2, 3 + 9864: 1067 lrw r3, 0xbb8 // 9880 + 9866: 3119 movi r1, 25 + 9868: 1801 addi r0, r14, 4 + 986a: e3fff057 bsr 0x7918 // 7918 +} + 986e: 140e addi r14, r14, 56 + 9870: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9872: 3400 movi r4, 0 + 9874: 07a6 br 0x97c0 // 97c0 + 9876: 0000 bkpt + 9878: 20000578 .long 0x20000578 + 987c: 20000480 .long 0x20000480 + 9880: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BLV_ElectricPara_Processing: + +00009884 : +{ + 9884: 14d3 push r4-r6, r15 + if (SysTick_1ms - Eng_Save_Tim >= g_Eng.SaveFlash_Tim) //1小时 + 9886: 11a2 lrw r5, 0x200000c4 // 990c + 9888: 1142 lrw r2, 0x2000016c // 9910 + 988a: 1183 lrw r4, 0x20000578 // 9914 + 988c: 9225 ld.w r1, (r2, 0x14) + 988e: 9560 ld.w r3, (r5, 0x0) + 9890: 60c6 subu r3, r1 + 9892: 943b ld.w r1, (r4, 0x6c) + 9894: 644c cmphs r3, r1 + 9896: 0c2b bf 0x98ec // 98ec + Eng_Save_Tim = SysTick_1ms; + 9898: 9560 ld.w r3, (r5, 0x0) + 989a: b265 st.w r3, (r2, 0x14) + if( (g_Eng.Total_Eng > g_Eng.LastSave_Total_Eng)||(g_Eng.U32_EnergyA_RegData > g_Eng.U32_EnergyA_RegData_LastSave) ) + 989c: 9468 ld.w r3, (r4, 0x20) + 989e: 944a ld.w r2, (r4, 0x28) + 98a0: 64c8 cmphs r2, r3 + 98a2: 0c05 bf 0x98ac // 98ac + 98a4: 942f ld.w r1, (r4, 0x3c) + 98a6: 9452 ld.w r2, (r4, 0x48) + 98a8: 6448 cmphs r2, r1 + 98aa: 0821 bt 0x98ec // 98ec + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 98ac: 10db lrw r6, 0x200004e8 // 9918 + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 98ae: 6c1b mov r0, r6 + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 98b0: 944f ld.w r2, (r4, 0x3c) + g_Eng.LastSave_Total_Eng = g_Eng.Total_Eng; + 98b2: b46a st.w r3, (r4, 0x28) + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 98b4: b660 st.w r3, (r6, 0x0) + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 98b6: b452 st.w r2, (r4, 0x48) + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 98b8: b642 st.w r2, (r6, 0x8) + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 98ba: e3fff5a5 bsr 0x8404 // 8404 + 98be: 6c83 mov r2, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng:%d",WriteEng_rev); + 98c0: 1037 lrw r1, 0xb6ea // 991c + 98c2: 3000 movi r0, 0 + 98c4: e3fff0b8 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng_Cnt:%d,TEng:%d",eng_info.eng_save_cnt,eng_info.eng_total); + 98c8: 9660 ld.w r3, (r6, 0x0) + 98ca: 9641 ld.w r2, (r6, 0x4) + 98cc: 3000 movi r0, 0 + 98ce: 1035 lrw r1, 0xb6f4 // 9920 + 98d0: e3fff0b2 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEngReg_NUM:%d",eng_info.U32_EnergyA_RegData ); + 98d4: 9642 ld.w r2, (r6, 0x8) + 98d6: 3000 movi r0, 0 + 98d8: 1033 lrw r1, 0xb70a // 9924 + 98da: e3fff0ad bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"save SN:%d,MAX:%d",e_save.eng_save_offset,e_save.eng_save_max); + 98de: 1053 lrw r2, 0x20000494 // 9928 + 98e0: 1033 lrw r1, 0xb71b // 992c + 98e2: 3000 movi r0, 0 + 98e4: 9266 ld.w r3, (r2, 0x18) + 98e6: 9247 ld.w r2, (r2, 0x1c) + 98e8: e3fff0a6 bsr 0x7a34 // 7a34 + if( (g_Dip.Dev_Port == Active_Port)&&(SysTick_1ms - g_Eng.Eng_Report_Tim >= g_Eng.Report_Tim) ) + 98ec: 1071 lrw r3, 0x20000480 // 9930 + 98ee: 8367 ld.b r3, (r3, 0x7) + 98f0: 3b41 cmpnei r3, 1 + 98f2: 080b bt 0x9908 // 9908 + 98f4: 945c ld.w r2, (r4, 0x70) + 98f6: 9560 ld.w r3, (r5, 0x0) + 98f8: 60ca subu r3, r2 + 98fa: 945a ld.w r2, (r4, 0x68) + 98fc: 648c cmphs r3, r2 + 98fe: 0c05 bf 0x9908 // 9908 + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9900: 9560 ld.w r3, (r5, 0x0) + 9902: b47c st.w r3, (r4, 0x70) + BLV_Energy_ActiveRep_Packing(); + 9904: e3ffff4a bsr 0x9798 // 9798 +} + 9908: 1493 pop r4-r6, r15 + 990a: 0000 bkpt + 990c: 200000c4 .long 0x200000c4 + 9910: 2000016c .long 0x2000016c + 9914: 20000578 .long 0x20000578 + 9918: 200004e8 .long 0x200004e8 + 991c: 0000b6ea .long 0x0000b6ea + 9920: 0000b6f4 .long 0x0000b6f4 + 9924: 0000b70a .long 0x0000b70a + 9928: 20000494 .long 0x20000494 + 992c: 0000b71b .long 0x0000b71b + 9930: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_EngDetect_Tack: + +00009934 : +{ + 9934: 14d0 push r15 + BLV_HLW8110_Tack(); + 9936: e3fffe89 bsr 0x9648 // 9648 + BLV_HLW8110_SendData_Tack(); + 993a: e3fff8e1 bsr 0x8afc // 8afc + BLV_ElectricPara_Processing(); + 993e: e3ffffa3 bsr 0x9884 // 9884 + BT_UART_Print(); + 9942: e3fffea9 bsr 0x9694 // 9694 +} + 9946: 1490 pop r15 + +Disassembly of section .text.BLV_Energy_PassiveRep_Packing: + +00009948 : + +//电参数查询回复组包 +void BLV_Energy_PassiveRep_Packing(void) +{ + 9948: 14d1 push r4, r15 + 994a: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 994c: 1801 addi r0, r14, 4 + 994e: 3232 movi r2, 50 + 9950: 3100 movi r1, 0 + 9952: e3ffd803 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9956: 1176 lrw r3, 0x20000578 // 9a2c + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + + + g_Eng.SdSN++; + 9958: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 995a: 32fa movi r2, 250 + g_Eng.SdSN++; + 995c: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 995e: 932e ld.w r1, (r3, 0x38) + 9960: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 9962: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9964: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9966: 9309 ld.w r0, (r3, 0x24) + 9968: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 996a: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 996c: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 996e: 085c bt 0x9a26 // 9a26 + 9970: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 9972: 3400 movi r4, 0 + 9974: 2c75 subi r4, 118 + 9976: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 997a: 8384 ld.b r4, (r3, 0x4) + 997c: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9980: 3400 movi r4, 0 + 9982: 2c0b subi r4, 12 + 9984: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 9988: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 998c: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 9990: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 9994: 1187 lrw r4, 0x20000480 // 9a30 + 9996: 8486 ld.b r4, (r4, 0x6) + 9998: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x02; //cmd + 999c: 3402 movi r4, 2 + 999e: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 99a2: 3401 movi r4, 1 + 99a4: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 99a8: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 99aa: 936c ld.w r3, (r3, 0x30) + 99ac: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 99b0: 4b68 lsri r3, r3, 8 + 99b2: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 99b6: 4a68 lsri r3, r2, 8 + 99b8: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 99bc: 4a70 lsri r3, r2, 16 + 99be: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 99c2: 4868 lsri r3, r0, 8 + 99c4: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 99c8: 4870 lsri r3, r0, 16 + 99ca: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 99ce: 4968 lsri r3, r1, 8 + 99d0: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 99d4: 4970 lsri r3, r1, 16 + 99d6: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 99da: 4978 lsri r3, r1, 24 + 99dc: dc6e001b st.b r3, (r14, 0x1b) + send_data[send_len++] = ENERGY_TAIL; + 99e0: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 99e2: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 99e4: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 99e6: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 99ea: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 99ee: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 99f2: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 99f4: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 99f6: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 99f8: 3119 movi r1, 25 + 99fa: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 99fc: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 9a00: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9a04: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9a08: e3fff750 bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9a0c: 3332 movi r3, 50 + 9a0e: b860 st.w r3, (r14, 0x0) + 9a10: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9a12: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9a16: 4361 lsli r3, r3, 1 + 9a18: 3201 movi r2, 1 + 9a1a: 3119 movi r1, 25 + 9a1c: 1801 addi r0, r14, 4 + 9a1e: e3ffef7d bsr 0x7918 // 7918 + +} + 9a22: 140e addi r14, r14, 56 + 9a24: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9a26: 3400 movi r4, 0 + 9a28: 07a4 br 0x9970 // 9970 + 9a2a: 0000 bkpt + 9a2c: 20000578 .long 0x20000578 + 9a30: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_Energy_SetTime_Packing: + +00009a34 : + +//MCU设置周期 +U8_T BLV_Energy_SetTime_Packing(U8_T *data,U16_T lens) +{ + 9a34: 14d2 push r4-r5, r15 + 9a36: 1421 subi r14, r14, 4 + if(lens < 18) return 0x01; + 9a38: 3911 cmphsi r1, 18 +{ + 9a3a: 6d03 mov r4, r0 + 9a3c: 6d47 mov r5, r1 + if(lens < 18) return 0x01; + 9a3e: 0c43 bf 0x9ac4 // 9ac4 + + U32_T temp_T = 0; + + if( ( (data[7])&0x01) == 0x01) + 9a40: 8067 ld.b r3, (r0, 0x7) + 9a42: 3201 movi r2, 1 + 9a44: 68c8 and r3, r2 + 9a46: 3b40 cmpnei r3, 0 + 9a48: 0c10 bf 0x9a68 // 9a68 + { + temp_T = (data[11]<<24) + (data[10]<<16) + (data[9]<<8) + data[8]; + 9a4a: 806b ld.b r3, (r0, 0xb) + 9a4c: 804a ld.b r2, (r0, 0xa) + 9a4e: 4250 lsli r2, r2, 16 + 9a50: 4378 lsli r3, r3, 24 + 9a52: 60c8 addu r3, r2 + 9a54: 8049 ld.b r2, (r0, 0x9) + 9a56: 4248 lsli r2, r2, 8 + 9a58: 60c8 addu r3, r2 + 9a5a: 8048 ld.b r2, (r0, 0x8) + 9a5c: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 9a5e: 105b lrw r2, 0x3e7 // 9ac8 + 9a60: 64c8 cmphs r2, r3 + 9a62: 0803 bt 0x9a68 // 9a68 + g_Eng.Collect_Tim = temp_T; + 9a64: 105a lrw r2, 0x20000578 // 9acc + 9a66: b279 st.w r3, (r2, 0x64) + } + } + + if(data[12] == 0x00) + 9a68: 846c ld.b r3, (r4, 0xc) + { + g_Dip.Dev_Port = Passive_Port; + 9a6a: 3b40 cmpnei r3, 0 + 9a6c: 3300 movi r3, 0 + 9a6e: 60cd addc r3, r3 + 9a70: 1058 lrw r2, 0x20000480 // 9ad0 + 9a72: a267 st.b r3, (r2, 0x7) + } + else{ + g_Dip.Dev_Port = Active_Port; + } + + if( ((data[7] >> 1)&0x01) == 0x01) + 9a74: 8467 ld.b r3, (r4, 0x7) + 9a76: 4b61 lsri r3, r3, 1 + 9a78: 3201 movi r2, 1 + 9a7a: 68c8 and r3, r2 + 9a7c: 3b40 cmpnei r3, 0 + 9a7e: 0c10 bf 0x9a9e // 9a9e + { + temp_T = (data[16]<<24) + (data[15]<<16) + (data[14]<<8) + data[13]; + 9a80: 8470 ld.b r3, (r4, 0x10) + 9a82: 844f ld.b r2, (r4, 0xf) + 9a84: 4250 lsli r2, r2, 16 + 9a86: 4378 lsli r3, r3, 24 + 9a88: 60c8 addu r3, r2 + 9a8a: 844e ld.b r2, (r4, 0xe) + 9a8c: 4248 lsli r2, r2, 8 + 9a8e: 60c8 addu r3, r2 + 9a90: 844d ld.b r2, (r4, 0xd) + 9a92: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 9a94: 104d lrw r2, 0x3e7 // 9ac8 + 9a96: 64c8 cmphs r2, r3 + 9a98: 0803 bt 0x9a9e // 9a9e + g_Eng.Report_Tim = temp_T; + 9a9a: 104d lrw r2, 0x20000578 // 9acc + 9a9c: b27a st.w r3, (r2, 0x68) + } + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9a9e: e3fff31b bsr 0x80d4 // 80d4 + + //数据原样返回 + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9aa2: 3314 movi r3, 20 + 9aa4: b860 st.w r3, (r14, 0x0) + 9aa6: 3396 movi r3, 150 + 9aa8: 4361 lsli r3, r3, 1 + 9aaa: 3201 movi r2, 1 + 9aac: 6c57 mov r1, r5 + 9aae: 6c13 mov r0, r4 + 9ab0: e3ffef34 bsr 0x7918 // 7918 + 9ab4: 6c13 mov r0, r4 + 9ab6: 7454 zextb r1, r5 + 9ab8: 3206 movi r2, 6 + 9aba: e3fff665 bsr 0x8784 // 8784 + 9abe: 3000 movi r0, 0 + BT_Uart_Packing(data,lens,6); + + return 0x00; +} + 9ac0: 1401 addi r14, r14, 4 + 9ac2: 1492 pop r4-r5, r15 + if(lens < 18) return 0x01; + 9ac4: 3001 movi r0, 1 + 9ac6: 07fd br 0x9ac0 // 9ac0 + 9ac8: 000003e7 .long 0x000003e7 + 9acc: 20000578 .long 0x20000578 + 9ad0: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_Energy_QueryVersion_Packing: + +00009ad4 : + +//版本查询回复组包 +void BLV_Energy_QueryVersion_Packing(void) +{ + 9ad4: 14d0 push r15 + 9ad6: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9ad8: 1801 addi r0, r14, 4 + 9ada: 3232 movi r2, 50 + 9adc: 3100 movi r1, 0 + 9ade: e3ffd73d bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + + g_Eng.SdSN++; + 9ae2: 1161 lrw r3, 0x20000578 // 9b64 + 9ae4: 8344 ld.b r2, (r3, 0x4) + 9ae6: 2200 addi r2, 1 + 9ae8: 7488 zextb r2, r2 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9aea: 3a0f cmphsi r2, 16 + 9aec: 083a bt 0x9b60 // 9b60 + 9aee: a344 st.b r2, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + send_data[send_len++] = g_Eng.SdSN; //sn; + 9af0: 8364 ld.b r3, (r3, 0x4) + 9af2: dc6e0005 st.b r3, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9af6: 3300 movi r3, 0 + 9af8: 2b0b subi r3, 12 + send_data[send_len++] = ENERGY_HEAD; + 9afa: 3200 movi r2, 0 + send_data[send_len++] = DEV_TYPE; //type + 9afc: dc6e0006 st.b r3, (r14, 0x6) + send_data[send_len++] = ENERGY_HEAD; + 9b00: 2a75 subi r2, 118 + send_data[send_len++] = g_Dip.addr; + 9b02: 107a lrw r3, 0x20000480 // 9b68 + send_data[send_len++] = g_Dip.Dev_Port; + + send_data[send_len++] = ENERGY_TAIL; + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b04: 310b movi r1, 11 + send_data[send_len++] = ENERGY_HEAD; + 9b06: dc4e0004 st.b r2, (r14, 0x4) + send_data[send_len++] = g_Dip.addr; + 9b0a: 8346 ld.b r2, (r3, 0x6) + send_data[send_len++] = g_Dip.Dev_Port; + 9b0c: 8367 ld.b r3, (r3, 0x7) + send_data[send_len++] = g_Dip.addr; + 9b0e: dc4e0007 st.b r2, (r14, 0x7) + send_data[send_len++] = g_Dip.Dev_Port; + 9b12: dc6e000d st.b r3, (r14, 0xd) + send_data[send_len++] = 0x04; //cmd + 9b16: 3204 movi r2, 4 + send_data[send_len++] = ENERGY_TAIL; + 9b18: 3300 movi r3, 0 + send_data[send_len++] = 0x04; //cmd + 9b1a: dc4e000a st.b r2, (r14, 0xa) + send_data[send_len++] = ENERGY_TAIL; + 9b1e: 2b57 subi r3, 88 + send_data[send_len++] = Project_FW_Version; + 9b20: 3203 movi r2, 3 + 9b22: dc4e000b st.b r2, (r14, 0xb) + send_data[send_len++] = ENERGY_TAIL; + 9b26: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = Project_HW_Version; + 9b2a: 3201 movi r2, 1 + send_data[4] = send_len; + 9b2c: 330b movi r3, 11 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b2e: 1801 addi r0, r14, 4 + send_data[send_len++] = Project_HW_Version; + 9b30: dc4e000c st.b r2, (r14, 0xc) + send_data[4] = send_len; + 9b34: dc6e0008 st.b r3, (r14, 0x8) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b38: e3fff6b8 bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9b3c: 3332 movi r3, 50 + 9b3e: b860 st.w r3, (r14, 0x0) + 9b40: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b42: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9b46: 4361 lsli r3, r3, 1 + 9b48: 1801 addi r0, r14, 4 + 9b4a: 3201 movi r2, 1 + 9b4c: 310b movi r1, 11 + 9b4e: e3ffeee5 bsr 0x7918 // 7918 + 9b52: 3206 movi r2, 6 + 9b54: 310b movi r1, 11 + 9b56: 1801 addi r0, r14, 4 + 9b58: e3fff616 bsr 0x8784 // 8784 + BT_Uart_Packing(send_data,send_len,6); +} + 9b5c: 140e addi r14, r14, 56 + 9b5e: 1490 pop r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9b60: 3200 movi r2, 0 + 9b62: 07c6 br 0x9aee // 9aee + 9b64: 20000578 .long 0x20000578 + 9b68: 20000480 .long 0x20000480 + +Disassembly of section .text.SetCalibFactor_Switch: + +00009b6c : +// +// return 0x00; +//} + +U8_T SetCalibFactor_Switch(U8_T ch,F32_T value) +{ + 9b6c: 14d0 push r15 + switch(ch) + 9b6e: 3805 cmphsi r0, 6 + 9b70: 0808 bt 0x9b80 // 9b80 + 9b72: 106a lrw r3, 0x20000578 // 9b98 + 9b74: e3ffccc4 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9b78: 0a080603 .long 0x0a080603 + 9b7c: 0e0c .short 0x0e0c + { + case 0x00: + g_Eng.V_K_Val = value; + 9b7e: b333 st.w r1, (r3, 0x4c) + break; + default: + break; + } + return 0; +} + 9b80: 3000 movi r0, 0 + 9b82: 1490 pop r15 + g_Eng.I_K1_Val = value; + 9b84: b334 st.w r1, (r3, 0x50) + break; + 9b86: 07fd br 0x9b80 // 9b80 + g_Eng.I_K2_Val = value; + 9b88: b335 st.w r1, (r3, 0x54) + break; + 9b8a: 07fb br 0x9b80 // 9b80 + g_Eng.P_K_Val = value; + 9b8c: b336 st.w r1, (r3, 0x58) + break; + 9b8e: 07f9 br 0x9b80 // 9b80 + g_Eng.I_OffSetVal = value; + 9b90: b337 st.w r1, (r3, 0x5c) + break; + 9b92: 07f7 br 0x9b80 // 9b80 + g_Eng.P_OffSetVal = value; + 9b94: b338 st.w r1, (r3, 0x60) + break; + 9b96: 07f5 br 0x9b80 // 9b80 + 9b98: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_Energy_SetCalibFactor: + +00009b9c : +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor(U8_T *data,U16_T lens) +{ + 9b9c: 14d4 push r4-r7, r15 + 9b9e: 1423 subi r14, r14, 12 + if(lens < 10) return 0x01; + 9ba0: 3909 cmphsi r1, 10 +{ + 9ba2: 6d43 mov r5, r0 + 9ba4: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9ba6: 0c36 bf 0x9c12 // 9c12 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9ba8: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9baa: 3c05 cmphsi r4, 6 + 9bac: 0835 bt 0x9c16 // 9c16 + U8_T temp_num = ((data[8])&0xff); + 9bae: 8028 ld.b r1, (r0, 0x8) + 9bb0: 3209 movi r2, 9 + 9bb2: 3906 cmphsi r1, 7 + 9bb4: 6080 addu r2, r0 + 9bb6: 6cc7 mov r3, r1 + 9bb8: 0c02 bf 0x9bbc // 9bbc + 9bba: 3306 movi r3, 6 + 9bbc: 60d0 addu r3, r4 + 9bbe: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9bc0: 10f7 lrw r7, 0x47c35000 // 9c1c + for(U8_T i = 0;i< temp_num;i++) + 9bc2: 64d2 cmpne r4, r3 + 9bc4: 080f bt 0x9be2 // 9be2 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9bc6: e3fff287 bsr 0x80d4 // 80d4 + + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9bca: 3314 movi r3, 20 + 9bcc: b860 st.w r3, (r14, 0x0) + 9bce: 3396 movi r3, 150 + 9bd0: 6c17 mov r0, r5 + 9bd2: 4361 lsli r3, r3, 1 + 9bd4: 3201 movi r2, 1 + 9bd6: 6c5b mov r1, r6 + 9bd8: e3ffeea0 bsr 0x7918 // 7918 + 9bdc: 3000 movi r0, 0 + + return 0x00; +} + 9bde: 1403 addi r14, r14, 12 + 9be0: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9be2: 8201 ld.b r0, (r2, 0x1) + 9be4: 8220 ld.b r1, (r2, 0x0) + 9be6: 4008 lsli r0, r0, 8 + 9be8: 6004 addu r0, r1 + 9bea: 8222 ld.b r1, (r2, 0x2) + 9bec: 4130 lsli r1, r1, 16 + 9bee: 6004 addu r0, r1 + 9bf0: b862 st.w r3, (r14, 0x8) + 9bf2: b841 st.w r2, (r14, 0x4) + 9bf4: e3ffcec8 bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9bf8: 6c5f mov r1, r7 + 9bfa: e3ffce2f bsr 0x3858 // 3858 <__divsf3> + 9bfe: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9c00: 6c13 mov r0, r4 + 9c02: e3ffffb5 bsr 0x9b6c // 9b6c + 9c06: 2400 addi r4, 1 + 9c08: 9841 ld.w r2, (r14, 0x4) + 9c0a: 2202 addi r2, 3 + 9c0c: 7510 zextb r4, r4 + 9c0e: 9862 ld.w r3, (r14, 0x8) + 9c10: 07d9 br 0x9bc2 // 9bc2 + if(lens < 10) return 0x01; + 9c12: 3001 movi r0, 1 + 9c14: 07e5 br 0x9bde // 9bde + if( ctrl_num > 0x05) return 0x02; + 9c16: 3002 movi r0, 2 + 9c18: 07e3 br 0x9bde // 9bde + 9c1a: 0000 bkpt + 9c1c: 47c35000 .long 0x47c35000 + +Disassembly of section .text.BLV_Energy_SetCalibFactor_2: + +00009c20 : + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor_2(U8_T *data,U16_T lens) +{ + 9c20: 14d4 push r4-r7, r15 + 9c22: 1422 subi r14, r14, 8 + if(lens < 10) return 0x01; + 9c24: 3909 cmphsi r1, 10 +{ + 9c26: 6d43 mov r5, r0 + 9c28: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9c2a: 0c32 bf 0x9c8e // 9c8e + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9c2c: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9c2e: 3c05 cmphsi r4, 6 + 9c30: 0831 bt 0x9c92 // 9c92 + U8_T temp_num = ((data[8])&0xff); + 9c32: 8028 ld.b r1, (r0, 0x8) + 9c34: 3209 movi r2, 9 + 9c36: 3903 cmphsi r1, 4 + 9c38: 6080 addu r2, r0 + 9c3a: 6cc7 mov r3, r1 + 9c3c: 0c02 bf 0x9c40 // 9c40 + 9c3e: 3303 movi r3, 3 + 9c40: 60d0 addu r3, r4 + 9c42: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9c44: 10f5 lrw r7, 0x47c35000 // 9c98 + for(U8_T i = 0;i< temp_num;i++) + 9c46: 64d2 cmpne r4, r3 + 9c48: 080b bt 0x9c5e // 9c5e + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9c4a: e3fff245 bsr 0x80d4 // 80d4 + 9c4e: 6c17 mov r0, r5 + 9c50: 7458 zextb r1, r6 + 9c52: 3206 movi r2, 6 + 9c54: e3fff598 bsr 0x8784 // 8784 + 9c58: 3000 movi r0, 0 + + //数据原样返回 + BT_Uart_Packing(data,lens,6); //蓝牙发送 + + return 0x00; +} + 9c5a: 1402 addi r14, r14, 8 + 9c5c: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9c5e: 8201 ld.b r0, (r2, 0x1) + 9c60: 8220 ld.b r1, (r2, 0x0) + 9c62: 4008 lsli r0, r0, 8 + 9c64: 6004 addu r0, r1 + 9c66: 8222 ld.b r1, (r2, 0x2) + 9c68: 4130 lsli r1, r1, 16 + 9c6a: 6004 addu r0, r1 + 9c6c: b861 st.w r3, (r14, 0x4) + 9c6e: b840 st.w r2, (r14, 0x0) + 9c70: e3ffce8a bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9c74: 6c5f mov r1, r7 + 9c76: e3ffcdf1 bsr 0x3858 // 3858 <__divsf3> + 9c7a: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9c7c: 6c13 mov r0, r4 + 9c7e: e3ffff77 bsr 0x9b6c // 9b6c + 9c82: 2400 addi r4, 1 + 9c84: 9840 ld.w r2, (r14, 0x0) + 9c86: 2202 addi r2, 3 + 9c88: 7510 zextb r4, r4 + 9c8a: 9861 ld.w r3, (r14, 0x4) + 9c8c: 07dd br 0x9c46 // 9c46 + if(lens < 10) return 0x01; + 9c8e: 3001 movi r0, 1 + 9c90: 07e5 br 0x9c5a // 9c5a + if( ctrl_num > 0x05) return 0x02; + 9c92: 3002 movi r0, 2 + 9c94: 07e3 br 0x9c5a // 9c5a + 9c96: 0000 bkpt + 9c98: 47c35000 .long 0x47c35000 + +Disassembly of section .text.HLW_485Recv_Processing: + +00009c9c : + + +//485处理函数 +U8_T HLW_485Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9c9c: 14d4 push r4-r7, r15 + 9c9e: 1421 subi r14, r14, 4 + + if(RecvLen < 8){ + 9ca0: 3907 cmphsi r1, 8 +{ + 9ca2: 6d03 mov r4, r0 + 9ca4: 6d87 mov r6, r1 + if(RecvLen < 8){ + 9ca6: 0c54 bf 0x9d4e // 9d4e + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9ca8: 8024 ld.b r1, (r0, 0x4) + 9caa: 6586 cmpne r1, r6 + 9cac: 0c0a bf 0x9cc0 // 9cc0 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Data Len Error",__func__); + 9cae: 1248 lrw r2, 0xab78 // 9dcc + 9cb0: 1228 lrw r1, 0xb72d // 9dd0 + 9cb2: 3000 movi r0, 0 + 9cb4: e3ffeec0 bsr 0x7a34 // 7a34 + return 0x02; + 9cb8: 3502 movi r5, 2 + return 0x01; + break; + } + + return 0; +} + 9cba: 6c17 mov r0, r5 + 9cbc: 1401 addi r14, r14, 4 + 9cbe: 1494 pop r4-r7, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9cc0: 8040 ld.b r2, (r0, 0x0) + 9cc2: 338a movi r3, 138 + 9cc4: 64ca cmpne r2, r3 + 9cc6: 0807 bt 0x9cd4 // 9cd4 + 9cc8: 5864 addu r3, r0, r1 + 9cca: 2b00 subi r3, 1 + 9ccc: 8340 ld.b r2, (r3, 0x0) + 9cce: 33a8 movi r3, 168 + 9cd0: 64ca cmpne r2, r3 + 9cd2: 0c08 bf 0x9ce2 // 9ce2 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Head Error",__func__); + 9cd4: 115e lrw r2, 0xab78 // 9dcc + 9cd6: 1220 lrw r1, 0xb73f // 9dd4 + 9cd8: 3000 movi r0, 0 + 9cda: e3ffeead bsr 0x7a34 // 7a34 + return 0x03; + 9cde: 3503 movi r5, 3 + 9ce0: 07ed br 0x9cba // 9cba + if(RecvData[2] != DEV_TYPE){// + 9ce2: 8042 ld.b r2, (r0, 0x2) + 9ce4: 33f4 movi r3, 244 + 9ce6: 64ca cmpne r2, r3 + 9ce8: 0c08 bf 0x9cf8 // 9cf8 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s TYPE Error",__func__); + 9cea: 1159 lrw r2, 0xab78 // 9dcc + 9cec: 113b lrw r1, 0xb74d // 9dd8 + 9cee: 3000 movi r0, 0 + 9cf0: e3ffeea2 bsr 0x7a34 // 7a34 + return 0x04; + 9cf4: 3504 movi r5, 4 + 9cf6: 07e2 br 0x9cba // 9cba + if(RecvData[3] != g_Dip.addr){// + 9cf8: 1179 lrw r3, 0x20000480 // 9ddc + 9cfa: 8043 ld.b r2, (r0, 0x3) + 9cfc: 8366 ld.b r3, (r3, 0x6) + 9cfe: 64ca cmpne r2, r3 + 9d00: 0c08 bf 0x9d10 // 9d10 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error",__func__); + 9d02: 1153 lrw r2, 0xab78 // 9dcc + 9d04: 1137 lrw r1, 0xb75b // 9de0 + 9d06: 3000 movi r0, 0 + 9d08: e3ffee96 bsr 0x7a34 // 7a34 + return 0x05; + 9d0c: 3505 movi r5, 5 + 9d0e: 07d6 br 0x9cba // 9cba + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9d10: e3fff5cc bsr 0x88a8 // 88a8 + 9d14: 3840 cmpnei r0, 0 + 9d16: 6d43 mov r5, r0 + 9d18: 0c08 bf 0x9d28 // 9d28 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 9d1a: 114d lrw r2, 0xab78 // 9dcc + 9d1c: 1132 lrw r1, 0xb769 // 9de4 + 9d1e: 3000 movi r0, 0 + 9d20: e3ffee8a bsr 0x7a34 // 7a34 + return 0x06; + 9d24: 3506 movi r5, 6 + 9d26: 07ca br 0x9cba // 9cba + g_Eng.SdSN = RecvData[1]; //序列号 + 9d28: 8461 ld.b r3, (r4, 0x1) + 9d2a: 11f0 lrw r7, 0x20000578 // 9de8 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9d2c: 8446 ld.b r2, (r4, 0x6) + 9d2e: 1130 lrw r1, 0xb4b9 // 9dec + 9d30: 3000 movi r0, 0 + g_Eng.SdSN = RecvData[1]; //序列号 + 9d32: a764 st.b r3, (r7, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9d34: e3ffee80 bsr 0x7a34 // 7a34 + switch(RecvData[6]) + 9d38: 8466 ld.b r3, (r4, 0x6) + 9d3a: 3b44 cmpnei r3, 4 + 9d3c: 0c36 bf 0x9da8 // 9da8 + 9d3e: 3b04 cmphsi r3, 5 + 9d40: 0809 bt 0x9d52 // 9d52 + 9d42: 3b42 cmpnei r3, 2 + 9d44: 0c2a bf 0x9d98 // 9d98 + 9d46: 3b02 cmphsi r3, 3 + 9d48: 082b bt 0x9d9e // 9d9e + 9d4a: 3b41 cmpnei r3, 1 + 9d4c: 0c23 bf 0x9d92 // 9d92 + return 0x01; + 9d4e: 3501 movi r5, 1 + 9d50: 07b5 br 0x9cba // 9cba + switch(RecvData[6]) + 9d52: 3b54 cmpnei r3, 20 + 9d54: 0c2d bf 0x9dae // 9dae + 9d56: 3b14 cmphsi r3, 21 + 9d58: 0812 bt 0x9d7c // 9d7c + 9d5a: 3b53 cmpnei r3, 19 + 9d5c: 0bf9 bt 0x9d4e // 9d4e + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9d5e: 9768 ld.w r3, (r7, 0x20) + 9d60: b769 st.w r3, (r7, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9d62: 1164 lrw r3, 0x200000c4 // 9df0 + 9d64: 9360 ld.w r3, (r3, 0x0) + 9d66: b77c st.w r3, (r7, 0x70) + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 9d68: 3314 movi r3, 20 + 9d6a: b860 st.w r3, (r14, 0x0) + 9d6c: 3396 movi r3, 150 + 9d6e: 4361 lsli r3, r3, 1 + 9d70: 3201 movi r2, 1 + 9d72: 6c5b mov r1, r6 + 9d74: 6c13 mov r0, r4 + 9d76: e3ffedd1 bsr 0x7918 // 7918 + break; + 9d7a: 07a0 br 0x9cba // 9cba + switch(RecvData[6]) + 9d7c: 3b55 cmpnei r3, 21 + 9d7e: 0c22 bf 0x9dc2 // 9dc2 + 9d80: 3221 movi r2, 33 + 9d82: 648e cmpne r3, r2 + 9d84: 0be5 bt 0x9d4e // 9d4e + Dbg_Switch = (RecvData[7]&0x0f); + 9d86: 320f movi r2, 15 + 9d88: 8467 ld.b r3, (r4, 0x7) + 9d8a: 68c8 and r3, r2 + 9d8c: 105a lrw r2, 0x200000d8 // 9df4 + 9d8e: b260 st.w r3, (r2, 0x0) + 9d90: 07ec br 0x9d68 // 9d68 + Clear_SendFlag(); + 9d92: e3ffedf5 bsr 0x797c // 797c + break; + 9d96: 0792 br 0x9cba // 9cba + BLV_Energy_PassiveRep_Packing(); + 9d98: e3fffdd8 bsr 0x9948 // 9948 + break; + 9d9c: 078f br 0x9cba // 9cba + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9d9e: 6c5b mov r1, r6 + 9da0: 6c13 mov r0, r4 + 9da2: e3fffe49 bsr 0x9a34 // 9a34 + break; + 9da6: 078a br 0x9cba // 9cba + BLV_Energy_QueryVersion_Packing(); + 9da8: e3fffe96 bsr 0x9ad4 // 9ad4 + break; + 9dac: 0787 br 0x9cba // 9cba + g_Eng.Total_Eng = 0; + 9dae: 3300 movi r3, 0 + eng_info.eng_total = g_Eng.Total_Eng; + 9db0: 1012 lrw r0, 0x200004e8 // 9df8 + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 9db2: b062 st.w r3, (r0, 0x8) + g_Eng.Total_Eng = 0; + 9db4: b768 st.w r3, (r7, 0x20) + g_Eng.U32_EnergyA_RegData = 0x00; + 9db6: b76f st.w r3, (r7, 0x3c) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9db8: b769 st.w r3, (r7, 0x24) + eng_info.eng_total = g_Eng.Total_Eng; + 9dba: b060 st.w r3, (r0, 0x0) + EEPROM_WriteTotalEng(&eng_info); + 9dbc: e3fff324 bsr 0x8404 // 8404 + 9dc0: 07d4 br 0x9d68 // 9d68 + BLV_Energy_SetCalibFactor(RecvData,RecvLen); + 9dc2: 6c5b mov r1, r6 + 9dc4: 6c13 mov r0, r4 + 9dc6: e3fffeeb bsr 0x9b9c // 9b9c + break; + 9dca: 0778 br 0x9cba // 9cba + 9dcc: 0000ab78 .long 0x0000ab78 + 9dd0: 0000b72d .long 0x0000b72d + 9dd4: 0000b73f .long 0x0000b73f + 9dd8: 0000b74d .long 0x0000b74d + 9ddc: 20000480 .long 0x20000480 + 9de0: 0000b75b .long 0x0000b75b + 9de4: 0000b769 .long 0x0000b769 + 9de8: 20000578 .long 0x20000578 + 9dec: 0000b4b9 .long 0x0000b4b9 + 9df0: 200000c4 .long 0x200000c4 + 9df4: 200000d8 .long 0x200000d8 + 9df8: 200004e8 .long 0x200004e8 + +Disassembly of section .text.BT_Recv_Processing: + +00009dfc : + + + +//BT处理函数 +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9dfc: 14d3 push r4-r6, r15 + if(RecvLen < 8){ + 9dfe: 3907 cmphsi r1, 8 +{ + 9e00: 6d03 mov r4, r0 + 9e02: 6d47 mov r5, r1 + if(RecvLen < 8){ + 9e04: 0c49 bf 0x9e96 // 9e96 + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9e06: 8024 ld.b r1, (r0, 0x4) + 9e08: 6546 cmpne r1, r5 + 9e0a: 0c08 bf 0x9e1a // 9e1a + Dbg_BT_Println(DBG_BIT_BT_STATUS,"DatLenErr"); + 9e0c: 1139 lrw r1, 0xb778 // 9ef0 + 9e0e: 3003 movi r0, 3 + 9e10: e3ffefac bsr 0x7d68 // 7d68 + return 0x02; + 9e14: 3602 movi r6, 2 + return 0x01; + break; + } + + return 0; +} + 9e16: 6c1b mov r0, r6 + 9e18: 1493 pop r4-r6, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9e1a: 8040 ld.b r2, (r0, 0x0) + 9e1c: 338a movi r3, 138 + 9e1e: 64ca cmpne r2, r3 + 9e20: 0807 bt 0x9e2e // 9e2e + 9e22: 5864 addu r3, r0, r1 + 9e24: 2b00 subi r3, 1 + 9e26: 8340 ld.b r2, (r3, 0x0) + 9e28: 33a8 movi r3, 168 + 9e2a: 64ca cmpne r2, r3 + 9e2c: 0c07 bf 0x9e3a // 9e3a + Dbg_BT_Println(DBG_BIT_BT_STATUS,"HeadErr"); + 9e2e: 1132 lrw r1, 0xb782 // 9ef4 + 9e30: 3003 movi r0, 3 + 9e32: e3ffef9b bsr 0x7d68 // 7d68 + return 0x03; + 9e36: 3603 movi r6, 3 + 9e38: 07ef br 0x9e16 // 9e16 + if(RecvData[2] != DEV_TYPE){// + 9e3a: 8042 ld.b r2, (r0, 0x2) + 9e3c: 33f4 movi r3, 244 + 9e3e: 64ca cmpne r2, r3 + 9e40: 0c07 bf 0x9e4e // 9e4e + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TYPEErr"); + 9e42: 112e lrw r1, 0xb78a // 9ef8 + 9e44: 3003 movi r0, 3 + 9e46: e3ffef91 bsr 0x7d68 // 7d68 + return 0x04; + 9e4a: 3604 movi r6, 4 + 9e4c: 07e5 br 0x9e16 // 9e16 + if(RecvData[3] != g_Dip.addr){// + 9e4e: 116c lrw r3, 0x20000480 // 9efc + 9e50: 8043 ld.b r2, (r0, 0x3) + 9e52: 8366 ld.b r3, (r3, 0x6) + 9e54: 64ca cmpne r2, r3 + 9e56: 0c07 bf 0x9e64 // 9e64 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"AddrErr"); + 9e58: 112a lrw r1, 0xb792 // 9f00 + 9e5a: 3003 movi r0, 3 + 9e5c: e3ffef86 bsr 0x7d68 // 7d68 + return 0x05; + 9e60: 3605 movi r6, 5 + 9e62: 07da br 0x9e16 // 9e16 + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9e64: e3fff522 bsr 0x88a8 // 88a8 + 9e68: 3840 cmpnei r0, 0 + 9e6a: 6d83 mov r6, r0 + 9e6c: 0c07 bf 0x9e7a // 9e7a + Dbg_BT_Println(DBG_BIT_BT_STATUS,"CheckErr"); + 9e6e: 1126 lrw r1, 0xb79a // 9f04 + 9e70: 3003 movi r0, 3 + 9e72: e3ffef7b bsr 0x7d68 // 7d68 + return 0x06; + 9e76: 3606 movi r6, 6 + 9e78: 07cf br 0x9e16 // 9e16 + g_Eng.SdSN = (RecvData[1]&0x0F); //序列号 + 9e7a: 8461 ld.b r3, (r4, 0x1) + 9e7c: 310f movi r1, 15 + 9e7e: 68c4 and r3, r1 + 9e80: 1142 lrw r2, 0x20000578 // 9f08 + 9e82: a264 st.b r3, (r2, 0x4) + switch(RecvData[6]) + 9e84: 8466 ld.b r3, (r4, 0x6) + 9e86: 3b44 cmpnei r3, 4 + 9e88: 0c20 bf 0x9ec8 // 9ec8 + 9e8a: 3b04 cmphsi r3, 5 + 9e8c: 0807 bt 0x9e9a // 9e9a + 9e8e: 3b42 cmpnei r3, 2 + 9e90: 0fc3 bf 0x9e16 // 9e16 + 9e92: 3b43 cmpnei r3, 3 + 9e94: 0c15 bf 0x9ebe // 9ebe + return 0x01; + 9e96: 3601 movi r6, 1 + 9e98: 07bf br 0x9e16 // 9e16 + switch(RecvData[6]) + 9e9a: 3b55 cmpnei r3, 21 + 9e9c: 0c19 bf 0x9ece // 9ece + 9e9e: 3121 movi r1, 33 + 9ea0: 644e cmpne r3, r1 + 9ea2: 0c1b bf 0x9ed8 // 9ed8 + 9ea4: 3b53 cmpnei r3, 19 + 9ea6: 0bf8 bt 0x9e96 // 9e96 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9ea8: 9268 ld.w r3, (r2, 0x20) + 9eaa: b269 st.w r3, (r2, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9eac: 1078 lrw r3, 0x200000c4 // 9f0c + 9eae: 9360 ld.w r3, (r3, 0x0) + 9eb0: b27c st.w r3, (r2, 0x70) + 9eb2: 7454 zextb r1, r5 + 9eb4: 3206 movi r2, 6 + 9eb6: 6c13 mov r0, r4 + 9eb8: e3fff466 bsr 0x8784 // 8784 + 9ebc: 07ad br 0x9e16 // 9e16 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9ebe: 6c57 mov r1, r5 + 9ec0: 6c13 mov r0, r4 + 9ec2: e3fffdb9 bsr 0x9a34 // 9a34 + break; + 9ec6: 07a8 br 0x9e16 // 9e16 + BLV_Energy_QueryVersion_Packing(); + 9ec8: e3fffe06 bsr 0x9ad4 // 9ad4 + break; + 9ecc: 07a5 br 0x9e16 // 9e16 + BLV_Energy_SetCalibFactor_2(RecvData,RecvLen); + 9ece: 6c57 mov r1, r5 + 9ed0: 6c13 mov r0, r4 + 9ed2: e3fffea7 bsr 0x9c20 // 9c20 + break; + 9ed6: 07a0 br 0x9e16 // 9e16 + if( (RecvData[7]&0x08) != 0x00 ){ + 9ed8: 3208 movi r2, 8 + 9eda: 8467 ld.b r3, (r4, 0x7) + 9edc: 68c8 and r3, r2 + 9ede: 3b40 cmpnei r3, 0 + 9ee0: 106c lrw r3, 0x200000d8 // 9f10 + Dbg_Switch |= 0x08; + 9ee2: 9340 ld.w r2, (r3, 0x0) + if( (RecvData[7]&0x08) != 0x00 ){ + 9ee4: 0c04 bf 0x9eec // 9eec + Dbg_Switch |= 0x08; + 9ee6: 3aa3 bseti r2, 3 + Dbg_Switch &= (~0x08); + 9ee8: b340 st.w r2, (r3, 0x0) + 9eea: 07e4 br 0x9eb2 // 9eb2 + 9eec: 3a83 bclri r2, 3 + 9eee: 07fd br 0x9ee8 // 9ee8 + 9ef0: 0000b778 .long 0x0000b778 + 9ef4: 0000b782 .long 0x0000b782 + 9ef8: 0000b78a .long 0x0000b78a + 9efc: 20000480 .long 0x20000480 + 9f00: 0000b792 .long 0x0000b792 + 9f04: 0000b79a .long 0x0000b79a + 9f08: 20000578 .long 0x20000578 + 9f0c: 200000c4 .long 0x200000c4 + 9f10: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Boot_Function_Init: + +00009f14 : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 9f14: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f16: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f18: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f1a: 4241 lsli r2, r2, 1 + 9f1c: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f1e: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f20: 1101 lrw r0, 0x200005f0 // 9fa4 + 9f22: e3ffd51b bsr 0x4958 // 4958 <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f26: 6c97 mov r2, r5 + 9f28: 3100 movi r1, 0 + 9f2a: 1100 lrw r0, 0x2000072c // 9fa8 + 9f2c: e3ffd516 bsr 0x4958 // 4958 <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 9f30: 33fa movi r3, 250 + 9f32: 4362 lsli r3, r3, 2 + 9f34: 109e lrw r4, 0x200006f0 // 9fac + 9f36: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 9f38: e3fff38e bsr 0x8654 // 8654 +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 9f3c: 107d lrw r3, 0x2000005c // 9fb0 + 9f3e: 9360 ld.w r3, (r3, 0x0) + 9f40: 23ff addi r3, 256 + 9f42: 9343 ld.w r2, (r3, 0xc) + 9f44: 7449 zexth r1, r2 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 9f46: 6546 cmpne r1, r5 + 9f48: 0808 bt 0x9f58 // 9f58 + { + g_boot.bootTimeout = 5000; + 9f4a: 107b lrw r3, 0x1388 // 9fb4 + 9f4c: b46d st.w r3, (r4, 0x34) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS," Boot software reset"); + 9f4e: 103b lrw r1, 0xb7a3 // 9fb8 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f50: 3000 movi r0, 0 + 9f52: e3ffed71 bsr 0x7a34 // 7a34 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 9f56: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 9f58: 3941 cmpnei r1, 1 + 9f5a: 0806 bt 0x9f66 // 9f66 + g_boot.bootTimeout = 500; + 9f5c: 33fa movi r3, 250 + 9f5e: 4361 lsli r3, r3, 1 + 9f60: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot power on reset"); + 9f62: 1037 lrw r1, 0xb7b8 // 9fbc + 9f64: 07f6 br 0x9f50 // 9f50 + 9f66: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x04) //外部手动复位 + 9f68: 3944 cmpnei r1, 4 + 9f6a: 4363 lsli r3, r3, 3 + 9f6c: 0804 bt 0x9f74 // 9f74 + g_boot.bootTimeout = 2000; + 9f6e: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex-pin reset"); + 9f70: 1034 lrw r1, 0xb7cc // 9fc0 + 9f72: 07ef br 0x9f50 // 9f50 + }else if(sys_reset_sta == 0x10) //看门狗超时复位 --升级完成复位源 + 9f74: 3950 cmpnei r1, 16 + 9f76: 0804 bt 0x9f7e // 9f7e + g_boot.bootTimeout = 2000; + 9f78: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot wdt reset"); + 9f7a: 1033 lrw r1, 0xb7de // 9fc4 + 9f7c: 07ea br 0x9f50 // 9f50 + }else if(sys_reset_sta == 0x40) //外部时钟无效复位 + 9f7e: 3040 movi r0, 64 + 9f80: 6406 cmpne r1, r0 + 9f82: 0804 bt 0x9f8a // 9f8a + g_boot.bootTimeout = 2000; + 9f84: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex clock invalid reset"); + 9f86: 1031 lrw r1, 0xb7ed // 9fc8 + 9f88: 07e4 br 0x9f50 // 9f50 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9f8a: 3080 movi r0, 128 + 9f8c: 6406 cmpne r1, r0 + g_boot.bootTimeout = 2000; + 9f8e: b46d st.w r3, (r4, 0x34) + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9f90: 0803 bt 0x9f96 // 9f96 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f92: 102f lrw r1, 0xb809 // 9fcc + 9f94: 07de br 0x9f50 // 9f50 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); + 9f96: 7489 zexth r2, r2 + 9f98: 102e lrw r1, 0xb820 // 9fd0 + 9f9a: 3000 movi r0, 0 + 9f9c: e3ffed4c bsr 0x7a34 // 7a34 +} + 9fa0: 07db br 0x9f56 // 9f56 + 9fa2: 0000 bkpt + 9fa4: 200005f0 .long 0x200005f0 + 9fa8: 2000072c .long 0x2000072c + 9fac: 200006f0 .long 0x200006f0 + 9fb0: 2000005c .long 0x2000005c + 9fb4: 00001388 .long 0x00001388 + 9fb8: 0000b7a3 .long 0x0000b7a3 + 9fbc: 0000b7b8 .long 0x0000b7b8 + 9fc0: 0000b7cc .long 0x0000b7cc + 9fc4: 0000b7de .long 0x0000b7de + 9fc8: 0000b7ed .long 0x0000b7ed + 9fcc: 0000b809 .long 0x0000b809 + 9fd0: 0000b820 .long 0x0000b820 + +Disassembly of section .text.Boot_Comm_CheckSum: + +00009fd4 : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 9fd4: 14c1 push r4 + U8_T sum = 0; + 9fd6: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 9fd8: 1047 lrw r2, 0xffff // 9ff4 + 9fda: 2900 subi r1, 1 + 9fdc: 7445 zexth r1, r1 + 9fde: 6486 cmpne r1, r2 + 9fe0: 0804 bt 0x9fe8 // 9fe8 + { + sum += buffer[i]; + i++; + } + return (~sum); + 9fe2: 6cce nor r3, r3 + 9fe4: 740c zextb r0, r3 +} + 9fe6: 1481 pop r4 + sum += buffer[i]; + 9fe8: 8080 ld.b r4, (r0, 0x0) + 9fea: 60d0 addu r3, r4 + 9fec: 74cc zextb r3, r3 + 9fee: 2000 addi r0, 1 + 9ff0: 07f5 br 0x9fda // 9fda + 9ff2: 0000 bkpt + 9ff4: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +00009ff8 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 9ff8: 14d4 push r4-r7, r15 + 9ffa: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 9ffc: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 9ffe: 1077 lrw r3, 0x200004c0 // a058 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a000: 47e1 lsli r7, r7, 1 + a002: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a004: 8340 ld.b r2, (r3, 0x0) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + a006: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a008: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + a00a: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a00c: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + a00e: 1074 lrw r3, 0x200005f0 // a05c + a010: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a012: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + a014: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + a016: 8062 ld.b r3, (r0, 0x2) + a018: a06b st.b r3, (r0, 0xb) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + a01a: 4d68 lsri r3, r5, 8 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a01c: 58ce addi r6, r0, 4 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a01e: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + a020: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + a022: 8041 ld.b r2, (r0, 0x1) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a024: 3300 movi r3, 0 +{ + a026: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + a028: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + a02a: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a02c: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a02e: 6c57 mov r1, r5 + a030: 6c1b mov r0, r6 + a032: e3ffffd1 bsr 0x9fd4 // 9fd4 + a036: a40a st.b r0, (r4, 0xa) + +#if DBG_LOG_EN + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"ACKBuff ",ack_uart->ackBuffer,data_len); + a038: 6cd7 mov r3, r5 + a03a: 6c9b mov r2, r6 + a03c: 1029 lrw r1, 0xb836 // a060 + a03e: 3000 movi r0, 0 + a040: e3ffedbe bsr 0x7bbc // 7bbc +#endif + + //MCU485_SendData(ack_uart->ackBuffer, data_len); + Set_GroupSend(ack_uart->ackBuffer,data_len,0x01,ack_uart->ackValidity,100); + a044: 3264 movi r2, 100 + a046: 8f79 ld.h r3, (r7, 0x32) + a048: 6c57 mov r1, r5 + a04a: b840 st.w r2, (r14, 0x0) + a04c: 6c1b mov r0, r6 + a04e: 3201 movi r2, 1 + a050: e3ffec64 bsr 0x7918 // 7918 + + //ack_uart->ackLen = 0x00; +} + a054: 1401 addi r14, r14, 4 + a056: 1494 pop r4-r7, r15 + a058: 200004c0 .long 0x200004c0 + a05c: 200005f0 .long 0x200005f0 + a060: 0000b836 .long 0x0000b836 + +Disassembly of section .text.Boot_Time_Refresh: + +0000a064 : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + a064: 1063 lrw r3, 0x200000c4 // a070 + a066: 9340 ld.w r2, (r3, 0x0) + a068: 1063 lrw r3, 0x200006f0 // a074 + a06a: b34e st.w r2, (r3, 0x38) +} + a06c: 783c jmp r15 + a06e: 0000 bkpt + a070: 200000c4 .long 0x200000c4 + a074: 200006f0 .long 0x200006f0 + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +0000a078 : +{ + a078: 14d4 push r4-r7, r15 + a07a: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + a07c: 8065 ld.b r3, (r0, 0x5) + a07e: 8044 ld.b r2, (r0, 0x4) + a080: 4368 lsli r3, r3, 8 + a082: 6cc8 or r3, r2 + if(len != data_len) { + a084: 644e cmpne r3, r1 +{ + a086: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + a088: b862 st.w r3, (r14, 0x8) + if(len != data_len) { + a08a: 0c08 bf 0xa09a // a09a + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Fail "); + a08c: 3000 movi r0, 0 + a08e: 1333 lrw r1, 0xb83f // a258 + a090: e3ffecd2 bsr 0x7a34 // 7a34 + return 0x01; + a094: 3001 movi r0, 1 +} + a096: 1403 addi r14, r14, 12 + a098: 1494 pop r4-r7, r15 + if(Boot_Comm_CheckSum(data,len) != 0) { + a09a: 9822 ld.w r1, (r14, 0x8) + a09c: e3ffff9c bsr 0x9fd4 // 9fd4 + a0a0: 3840 cmpnei r0, 0 + a0a2: b801 st.w r0, (r14, 0x4) + a0a4: 0c07 bf 0xa0b2 // a0b2 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_CheckSum Fail "); + a0a6: 3000 movi r0, 0 + a0a8: 132d lrw r1, 0xb849 // a25c + a0aa: e3ffecc5 bsr 0x7a34 // 7a34 + return 0x02; + a0ae: 3002 movi r0, 2 + a0b0: 07f3 br 0xa096 // a096 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a0b2: 8561 ld.b r3, (r5, 0x1) + a0b4: 748e sextb r2, r3 + a0b6: 3adf btsti r2, 31 + a0b8: 138a lrw r4, 0x200005f0 // a260 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a0ba: 8421 ld.b r1, (r4, 0x1) + a0bc: 320f movi r2, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a0be: 0c23 bf 0xa104 // a104 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a0c0: 68c8 and r3, r2 + a0c2: 64c6 cmpne r1, r3 + a0c4: 0c0b bf 0xa0da // a0da + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN Disaffinity,Processing Data"); + a0c6: 1328 lrw r1, 0xb862 // a264 + a0c8: 3000 movi r0, 0 + a0ca: e3ffecb5 bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0ce: 3300 movi r3, 0 + a0d0: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a0d2: 3701 movi r7, 1 + deal_flag = 0x01; + a0d4: 3301 movi r3, 1 + deal_flag = 0x01; + a0d6: b861 st.w r3, (r14, 0x4) + a0d8: 0408 br 0xa0e8 // a0e8 + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN The Same,No Processing Data"); + a0da: 1324 lrw r1, 0xb88c // a268 + a0dc: 3000 movi r0, 0 + a0de: e3ffecab bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0e2: 3300 movi r3, 0 + a0e4: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a0e6: 3701 movi r7, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + a0e8: 13c1 lrw r6, 0x200004c0 // a26c + a0ea: 8562 ld.b r3, (r5, 0x2) + a0ec: 8641 ld.b r2, (r6, 0x1) + a0ee: 648e cmpne r3, r2 + a0f0: 0c28 bf 0xa140 // a140 + a0f2: 31ff movi r1, 255 + a0f4: 644e cmpne r3, r1 + a0f6: 0c25 bf 0xa140 // a140 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvType %d - %d ",g_mcu_dev.dev_type,data[BCOMM_FMT_TYPE]); + a0f8: 3000 movi r0, 0 + a0fa: 123e lrw r1, 0xb90c // a270 + a0fc: e3ffec9c bsr 0x7a34 // 7a34 + return 0x03; + a100: 3003 movi r0, 3 + a102: 07ca br 0xa096 // a096 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a104: 688c and r2, r3 + a106: 6486 cmpne r1, r2 + a108: 0c09 bf 0xa11a // a11a + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN Disaffinity,Processing Data"); + a10a: 123b lrw r1, 0xb8b6 // a274 + a10c: 3000 movi r0, 0 + a10e: e3ffec93 bsr 0x7a34 // 7a34 + reply_flag = 0x01; + a112: 3301 movi r3, 1 + group_flag = 0x00; + a114: 3700 movi r7, 0 + reply_flag = 0x01; + a116: b860 st.w r3, (r14, 0x0) + a118: 07df br 0xa0d6 // a0d6 + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + a11a: 3240 movi r2, 64 + a11c: 68c8 and r3, r2 + a11e: 3b40 cmpnei r3, 0 + a120: 0c0d bf 0xa13a // a13a + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + a122: 846b ld.b r3, (r4, 0xb) + a124: 8547 ld.b r2, (r5, 0x7) + a126: 64ca cmpne r2, r3 + a128: 64c3 mvcv r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a12a: 74cc zextb r3, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a12c: 1233 lrw r1, 0xb8e1 // a278 + a12e: 3000 movi r0, 0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a130: b860 st.w r3, (r14, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a132: e3ffec81 bsr 0x7a34 // 7a34 + group_flag = 0x00; + a136: 3700 movi r7, 0 + a138: 07d8 br 0xa0e8 // a0e8 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a13a: 3300 movi r3, 0 + a13c: b860 st.w r3, (r14, 0x0) + a13e: 07fc br 0xa136 // a136 + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + a140: 8563 ld.b r3, (r5, 0x3) + a142: 8640 ld.b r2, (r6, 0x0) + a144: 648e cmpne r3, r2 + a146: 0c0a bf 0xa15a // a15a + a148: 31ff movi r1, 255 + a14a: 644e cmpne r3, r1 + a14c: 0c07 bf 0xa15a // a15a + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvAddr %d - %d ",g_mcu_dev.dev_addr,data[BCOMM_FMT_RXAddr]); + a14e: 3000 movi r0, 0 + a150: 122b lrw r1, 0xb928 // a27c + a152: e3ffec71 bsr 0x7a34 // 7a34 + return 0x04; + a156: 3004 movi r0, 4 + a158: 079f br 0xa096 // a096 + Boot_Time_Refresh(); + a15a: e3ffff85 bsr 0xa064 // a064 + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + a15e: 8560 ld.b r3, (r5, 0x0) + a160: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + a162: 8561 ld.b r3, (r5, 0x1) + a164: 320f movi r2, 15 + a166: 68c8 and r3, r2 + a168: a461 st.b r3, (r4, 0x1) + switch(g_boot.cmd){ + a16a: 32c0 movi r2, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a16c: 8567 ld.b r3, (r5, 0x7) + switch(g_boot.cmd){ + a16e: 648e cmpne r3, r2 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a170: a462 st.b r3, (r4, 0x2) + switch(g_boot.cmd){ + a172: 0c06 bf 0xa17e // a17e + a174: 32c1 movi r2, 193 + a176: 648e cmpne r3, r2 + a178: 0c53 bf 0xa21e // a21e + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a17a: 3301 movi r3, 1 + a17c: 045f br 0xa23a // a23a + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + a17e: 9861 ld.w r3, (r14, 0x4) + a180: 3b41 cmpnei r3, 1 + a182: 081d bt 0xa1bc // a1bc + a184: 9862 ld.w r3, (r14, 0x8) + a186: 3b0b cmphsi r3, 12 + a188: 0c1a bf 0xa1bc // a1bc + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Handshake Proecessing "); + a18a: 113e lrw r1, 0xb944 // a280 + a18c: 3000 movi r0, 0 + a18e: e3ffec53 bsr 0x7a34 // 7a34 + temp_data |= data[BCOMM_FMT_PARAM]; + a192: 8549 ld.b r2, (r5, 0x9) + a194: 8568 ld.b r3, (r5, 0x8) + a196: 4248 lsli r2, r2, 8 + a198: 6c8c or r2, r3 + if(temp_data != g_boot.bootTimeout){ + a19a: 117b lrw r3, 0x200006f0 // a284 + a19c: 932d ld.w r1, (r3, 0x34) + a19e: 644a cmpne r2, r1 + a1a0: 0c09 bf 0xa1b2 // a1b2 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a1a2: 3a09 cmphsi r2, 10 + a1a4: 0c3b bf 0xa21a // a21a + a1a6: b34d st.w r2, (r3, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + a1a8: 31fa movi r1, 250 + a1aa: 934d ld.w r2, (r3, 0x34) + a1ac: 4122 lsli r1, r1, 2 + a1ae: 7c84 mult r2, r1 + a1b0: b34d st.w r2, (r3, 0x34) + a1b2: 854b ld.b r2, (r5, 0xb) + a1b4: 852a ld.b r1, (r5, 0xa) + a1b6: 4248 lsli r2, r2, 8 + a1b8: 6c84 or r2, r1 + g_boot.ackValidity = temp_data; + a1ba: ab59 st.h r2, (r3, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + a1bc: 9860 ld.w r3, (r14, 0x0) + a1be: 3b41 cmpnei r3, 1 + a1c0: 0b6b bt 0xa096 // a096 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + a1c2: 3302 movi r3, 2 + a1c4: a46c st.b r3, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + a1c6: 8662 ld.b r3, (r6, 0x2) + a1c8: a46d st.b r3, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + a1ca: 8663 ld.b r3, (r6, 0x3) + a1cc: a46e st.b r3, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + a1ce: 3303 movi r3, 3 + a1d0: a46f st.b r3, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + a1d2: 116e lrw r3, 0x2000005c // a288 + a1d4: 9360 ld.w r3, (r3, 0x0) + a1d6: 237f addi r3, 128 + a1d8: 9359 ld.w r2, (r3, 0x64) + a1da: a450 st.b r2, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + a1dc: 935a ld.w r2, (r3, 0x68) + a1de: a451 st.b r2, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + a1e0: 937b ld.w r3, (r3, 0x6c) + a1e2: a472 st.b r3, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + a1e4: 8644 ld.b r2, (r6, 0x4) + a1e6: 3320 movi r3, 32 + a1e8: 648c cmphs r3, r2 + a1ea: 0802 bt 0xa1ee // a1ee + a1ec: a664 st.b r3, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + a1ee: 8664 ld.b r3, (r6, 0x4) + a1f0: a473 st.b r3, (r4, 0x13) + a1f2: 3320 movi r3, 32 + a1f4: 103e lrw r1, 0x200004c0 // a26c + a1f6: 105b lrw r2, 0x200005f0 // a260 + a1f8: 2b00 subi r3, 1 + a1fa: 74cc zextb r3, r3 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + a1fc: 8105 ld.b r0, (r1, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + a208: 107f lrw r3, 0x200006f0 // a284 + a20a: 3228 movi r2, 40 + a20c: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a20e: 3f40 cmpnei r7, 0 + a210: 0b43 bt 0xa096 // a096 + Boot_Comm_FillReplyPack(&g_boot); + a212: 1014 lrw r0, 0x200005f0 // a260 + a214: e3fffef2 bsr 0x9ff8 // 9ff8 + a218: 073f br 0xa096 // a096 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a21a: 320a movi r2, 10 + a21c: 07c5 br 0xa1a6 // a1a6 + if(deal_flag != 0x01) break; //不处理直接退出 + a21e: 9861 ld.w r3, (r14, 0x4) + a220: 3b41 cmpnei r3, 1 + a222: 0810 bt 0xa242 // a242 + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Jump Proecessing "); + a224: 103a lrw r1, 0xb965 // a28c + a226: 3000 movi r0, 0 + a228: e3ffec06 bsr 0x7a34 // 7a34 + if(data[BCOMM_FMT_PARAM] == 0x01){ + a22c: 8568 ld.b r3, (r5, 0x8) + a22e: 3b41 cmpnei r3, 1 + a230: 080e bt 0xa24c // a24c + BUS485_Jump_Boot(0x01); + a232: 3001 movi r0, 1 + a234: e3ffebac bsr 0x798c // 798c + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + a238: 3300 movi r3, 0 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a23a: a46c st.b r3, (r4, 0xc) + g_boot.ackLen = 1; + a23c: 3201 movi r2, 1 + a23e: 1072 lrw r3, 0x200006f0 // a284 + a240: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a242: 3f40 cmpnei r7, 0 + a244: 0b29 bt 0xa096 // a096 + a246: 9860 ld.w r3, (r14, 0x0) + a248: 3b41 cmpnei r3, 1 + a24a: 07e3 br 0xa210 // a210 + Dbg_Println(DBG_BIT_SYS_STATUS,"ERR:Jump_boot"); + a24c: 1031 lrw r1, 0xb981 // a290 + a24e: 3000 movi r0, 0 + a250: e3ffebf2 bsr 0x7a34 // 7a34 + a254: 0793 br 0xa17a // a17a + a256: 0000 bkpt + a258: 0000b83f .long 0x0000b83f + a25c: 0000b849 .long 0x0000b849 + a260: 200005f0 .long 0x200005f0 + a264: 0000b862 .long 0x0000b862 + a268: 0000b88c .long 0x0000b88c + a26c: 200004c0 .long 0x200004c0 + a270: 0000b90c .long 0x0000b90c + a274: 0000b8b6 .long 0x0000b8b6 + a278: 0000b8e1 .long 0x0000b8e1 + a27c: 0000b928 .long 0x0000b928 + a280: 0000b944 .long 0x0000b944 + a284: 200006f0 .long 0x200006f0 + a288: 2000005c .long 0x2000005c + a28c: 0000b965 .long 0x0000b965 + a290: 0000b981 .long 0x0000b981 + +Disassembly of section .text.TK_Sampling_prog: + +0000a294 : + a294: 14c4 push r4-r7 + a296: 1072 lrw r3, 0x20000054 // a2dc + a298: 1012 lrw r0, 0x20000ad2 // a2e0 + a29a: 1093 lrw r4, 0x20000943 // a2e4 + a29c: 6d83 mov r6, r0 + a29e: 93a0 ld.w r5, (r3, 0x0) + a2a0: 3300 movi r3, 0 + a2a2: 4342 lsli r2, r3, 2 + a2a4: 6094 addu r2, r5 + a2a6: 9220 ld.w r1, (r2, 0x0) + a2a8: 4341 lsli r2, r3, 1 + a2aa: 6080 addu r2, r0 + a2ac: 7445 zexth r1, r1 + a2ae: aa20 st.h r1, (r2, 0x0) + a2b0: 8440 ld.b r2, (r4, 0x0) + a2b2: 3a41 cmpnei r2, 1 + a2b4: 080f bt 0xa2d2 // a2d2 + a2b6: 3300 movi r3, 0 + a2b8: 10ec lrw r7, 0x2000082c // a2e8 + a2ba: 4341 lsli r2, r3, 1 + a2bc: 5e28 addu r1, r6, r2 + a2be: 8920 ld.h r1, (r1, 0x0) + a2c0: 2300 addi r3, 1 + a2c2: 7445 zexth r1, r1 + a2c4: 609c addu r2, r7 + a2c6: 3b51 cmpnei r3, 17 + a2c8: aa20 st.h r1, (r2, 0x0) + a2ca: 0bf8 bt 0xa2ba // a2ba + a2cc: 3300 movi r3, 0 + a2ce: a460 st.b r3, (r4, 0x0) + a2d0: 3311 movi r3, 17 + a2d2: 2300 addi r3, 1 + a2d4: 74cc zextb r3, r3 + a2d6: 3b10 cmphsi r3, 17 + a2d8: 0fe5 bf 0xa2a2 // a2a2 + a2da: 1484 pop r4-r7 + a2dc: 20000054 .long 0x20000054 + a2e0: 20000ad2 .long 0x20000ad2 + a2e4: 20000943 .long 0x20000943 + a2e8: 2000082c .long 0x2000082c + +Disassembly of section .text.TKEYIntHandler: + +0000a2ec : + a2ec: 1460 nie + a2ee: 1462 ipush + a2f0: 14d1 push r4, r15 + a2f2: 109e lrw r4, 0x20000068 // a368 + a2f4: 9460 ld.w r3, (r4, 0x0) + a2f6: 3b40 cmpnei r3, 0 + a2f8: 080b bt 0xa30e // a30e + a2fa: 3301 movi r3, 1 + a2fc: b460 st.w r3, (r4, 0x0) + a2fe: 107c lrw r3, 0x200008c0 // a36c + a300: 8360 ld.b r3, (r3, 0x0) + a302: 3b41 cmpnei r3, 1 + a304: 0805 bt 0xa30e // a30e + a306: e3ffffc7 bsr 0xa294 // a294 + a30a: 3301 movi r3, 1 + a30c: a464 st.b r3, (r4, 0x4) + a30e: 1079 lrw r3, 0x20000058 // a370 + a310: 3101 movi r1, 1 + a312: 9360 ld.w r3, (r3, 0x0) + a314: 934a ld.w r2, (r3, 0x28) + a316: 6884 and r2, r1 + a318: 3a40 cmpnei r2, 0 + a31a: 0c02 bf 0xa31e // a31e + a31c: b32c st.w r1, (r3, 0x30) + a31e: 934a ld.w r2, (r3, 0x28) + a320: 3102 movi r1, 2 + a322: 6884 and r2, r1 + a324: 3a40 cmpnei r2, 0 + a326: 0c02 bf 0xa32a // a32a + a328: b32c st.w r1, (r3, 0x30) + a32a: 934a ld.w r2, (r3, 0x28) + a32c: 3104 movi r1, 4 + a32e: 6884 and r2, r1 + a330: 3a40 cmpnei r2, 0 + a332: 0c02 bf 0xa336 // a336 + a334: b32c st.w r1, (r3, 0x30) + a336: 934a ld.w r2, (r3, 0x28) + a338: 3108 movi r1, 8 + a33a: 6884 and r2, r1 + a33c: 3a40 cmpnei r2, 0 + a33e: 0c02 bf 0xa342 // a342 + a340: b32c st.w r1, (r3, 0x30) + a342: 934a ld.w r2, (r3, 0x28) + a344: 3110 movi r1, 16 + a346: 6884 and r2, r1 + a348: 3a40 cmpnei r2, 0 + a34a: 0c02 bf 0xa34e // a34e + a34c: b32c st.w r1, (r3, 0x30) + a34e: 934a ld.w r2, (r3, 0x28) + a350: 3120 movi r1, 32 + a352: 6884 and r2, r1 + a354: 3a40 cmpnei r2, 0 + a356: 0c02 bf 0xa35a // a35a + a358: b32c st.w r1, (r3, 0x30) + a35a: d9ee2001 ld.w r15, (r14, 0x4) + a35e: 9880 ld.w r4, (r14, 0x0) + a360: 1402 addi r14, r14, 8 + a362: 1463 ipop + a364: 1461 nir + a366: 0000 bkpt + a368: 20000068 .long 0x20000068 + a36c: 200008c0 .long 0x200008c0 + a370: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000a374 : + a374: 14c2 push r4-r5 + a376: 3200 movi r2, 0 + a378: 3000 movi r0, 0 + a37a: 1088 lrw r4, 0x20000960 // a398 + a37c: 3501 movi r5, 1 + a37e: 3120 movi r1, 32 + a380: 9460 ld.w r3, (r4, 0x0) + a382: 70c9 lsr r3, r2 + a384: 68d4 and r3, r5 + a386: 3b40 cmpnei r3, 0 + a388: 0c02 bf 0xa38c // a38c + a38a: 2000 addi r0, 1 + a38c: 2200 addi r2, 1 + a38e: 644a cmpne r2, r1 + a390: 0bf8 bt 0xa380 // a380 + a392: 7400 zextb r0, r0 + a394: 1482 pop r4-r5 + a396: 0000 bkpt + a398: 20000960 .long 0x20000960 + +Disassembly of section .text.TK_Scan_Start: + +0000a39c : + a39c: 1046 lrw r2, 0x20000068 // a3b4 + a39e: 8264 ld.b r3, (r2, 0x4) + a3a0: 74cc zextb r3, r3 + a3a2: 3b41 cmpnei r3, 1 + a3a4: 0807 bt 0xa3b2 // a3b2 + a3a6: 1025 lrw r1, 0x20000058 // a3b8 + a3a8: 9120 ld.w r1, (r1, 0x0) + a3aa: b162 st.w r3, (r1, 0x8) + a3ac: 3300 movi r3, 0 + a3ae: b260 st.w r3, (r2, 0x0) + a3b0: a264 st.b r3, (r2, 0x4) + a3b2: 783c jmp r15 + a3b4: 20000068 .long 0x20000068 + a3b8: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +0000a3bc : + a3bc: 14d4 push r4-r7, r15 + a3be: 1425 subi r14, r14, 20 + a3c0: 1271 lrw r3, 0x200001b0 // a504 + a3c2: 8360 ld.b r3, (r3, 0x0) + a3c4: b860 st.w r3, (r14, 0x0) + a3c6: 3400 movi r4, 0 + a3c8: 1270 lrw r3, 0x20000184 // a508 + a3ca: 8360 ld.b r3, (r3, 0x0) + a3cc: b861 st.w r3, (r14, 0x4) + a3ce: 12f0 lrw r7, 0x200008d6 // a50c + a3d0: 1270 lrw r3, 0x2000018d // a510 + a3d2: 83a0 ld.b r5, (r3, 0x0) + a3d4: 1270 lrw r3, 0x2000018c // a514 + a3d6: 8360 ld.b r3, (r3, 0x0) + a3d8: b862 st.w r3, (r14, 0x8) + a3da: 6d9f mov r6, r7 + a3dc: 126f lrw r3, 0x20000ad2 // a518 + a3de: b863 st.w r3, (r14, 0xc) + a3e0: 4461 lsli r3, r4, 1 + a3e2: 9843 ld.w r2, (r14, 0xc) + a3e4: 608c addu r2, r3 + a3e6: 122e lrw r1, 0x2000082c // a51c + a3e8: 604c addu r1, r3 + a3ea: 8a40 ld.h r2, (r2, 0x0) + a3ec: 8920 ld.h r1, (r1, 0x0) + a3ee: 6086 subu r2, r1 + a3f0: 748b sexth r2, r2 + a3f2: 5f2c addu r1, r7, r3 + a3f4: a940 st.h r2, (r1, 0x0) + a3f6: 8940 ld.h r2, (r1, 0x0) + a3f8: 748b sexth r2, r2 + a3fa: 3adf btsti r2, 31 + a3fc: 1249 lrw r2, 0x20000a8e // a520 + a3fe: 608c addu r2, r3 + a400: 0c37 bf 0xa46e // a46e + a402: 3100 movi r1, 0 + a404: aa20 st.h r1, (r2, 0x0) + a406: 9840 ld.w r2, (r14, 0x0) + a408: 3a01 cmphsi r2, 2 + a40a: 0c6d bf 0xa4e4 // a4e4 + a40c: 4461 lsli r3, r4, 1 + a40e: 5e2c addu r1, r6, r3 + a410: 1205 lrw r0, 0x200001de // a524 + a412: 8940 ld.h r2, (r1, 0x0) + a414: 60c0 addu r3, r0 + a416: 748b sexth r2, r2 + a418: 8b60 ld.h r3, (r3, 0x0) + a41a: 648d cmplt r3, r2 + a41c: 9840 ld.w r2, (r14, 0x0) + a41e: 7cc8 mult r3, r2 + a420: 0c2a bf 0xa474 // a474 + a422: 8940 ld.h r2, (r1, 0x0) + a424: 748b sexth r2, r2 + a426: 64c9 cmplt r2, r3 + a428: 0c26 bf 0xa474 // a474 + a42a: 1240 lrw r2, 0x200008c4 // a528 + a42c: 6090 addu r2, r4 + a42e: 8260 ld.b r3, (r2, 0x0) + a430: 2300 addi r3, 1 + a432: 74cc zextb r3, r3 + a434: a260 st.b r3, (r2, 0x0) + a436: 3100 movi r1, 0 + a438: 117d lrw r3, 0x200008aa // a52c + a43a: 60d0 addu r3, r4 + a43c: a320 st.b r1, (r3, 0x0) + a43e: 117d lrw r3, 0x20000986 // a530 + a440: 60d0 addu r3, r4 + a442: a320 st.b r1, (r3, 0x0) + a444: 117c lrw r3, 0x20000a00 // a534 + a446: 60d0 addu r3, r4 + a448: a320 st.b r1, (r3, 0x0) + a44a: 8260 ld.b r3, (r2, 0x0) + a44c: 9821 ld.w r1, (r14, 0x4) + a44e: 64c4 cmphs r1, r3 + a450: 081f bt 0xa48e // a48e + a452: 3d40 cmpnei r5, 0 + a454: 0852 bt 0xa4f8 // a4f8 + a456: 1139 lrw r1, 0x200008bc // a538 + a458: 9160 ld.w r3, (r1, 0x0) + a45a: 3b40 cmpnei r3, 0 + a45c: 0806 bt 0xa468 // a468 + a45e: 9100 ld.w r0, (r1, 0x0) + a460: 3301 movi r3, 1 + a462: 70d0 lsl r3, r4 + a464: 6cc0 or r3, r0 + a466: b160 st.w r3, (r1, 0x0) + a468: 3300 movi r3, 0 + a46a: a260 st.b r3, (r2, 0x0) + a46c: 0411 br 0xa48e // a48e + a46e: 8920 ld.h r1, (r1, 0x0) + a470: 7445 zexth r1, r1 + a472: 07c9 br 0xa404 // a404 + a474: 4441 lsli r2, r4, 1 + a476: 6098 addu r2, r6 + a478: 8a40 ld.h r2, (r2, 0x0) + a47a: 748b sexth r2, r2 + a47c: 648d cmplt r3, r2 + a47e: 0c08 bf 0xa48e // a48e + a480: 3300 movi r3, 0 + a482: 114e lrw r2, 0x200008bc // a538 + a484: 2b01 subi r3, 2 + a486: 9220 ld.w r1, (r2, 0x0) + a488: 70d3 rotl r3, r4 + a48a: 68c4 and r3, r1 + a48c: b260 st.w r3, (r2, 0x0) + a48e: 4441 lsli r2, r4, 1 + a490: 5e68 addu r3, r6, r2 + a492: 8b60 ld.h r3, (r3, 0x0) + a494: 74cf sexth r3, r3 + a496: b864 st.w r3, (r14, 0x10) + a498: 3105 movi r1, 5 + a49a: 1163 lrw r3, 0x200001de // a524 + a49c: 608c addu r2, r3 + a49e: 8a00 ld.h r0, (r2, 0x0) + a4a0: 4002 lsli r0, r0, 2 + a4a2: e3ffe801 bsr 0x74a4 // 74a4 <__divsi3> + a4a6: 9864 ld.w r3, (r14, 0x10) + a4a8: 640d cmplt r3, r0 + a4aa: 0c18 bf 0xa4da // a4da + a4ac: 1140 lrw r2, 0x200008aa // a52c + a4ae: 6090 addu r2, r4 + a4b0: 8260 ld.b r3, (r2, 0x0) + a4b2: 2300 addi r3, 1 + a4b4: 74cc zextb r3, r3 + a4b6: a260 st.b r3, (r2, 0x0) + a4b8: 3100 movi r1, 0 + a4ba: 107c lrw r3, 0x200008c4 // a528 + a4bc: 60d0 addu r3, r4 + a4be: a320 st.b r1, (r3, 0x0) + a4c0: 8260 ld.b r3, (r2, 0x0) + a4c2: 9822 ld.w r1, (r14, 0x8) + a4c4: 64c4 cmphs r1, r3 + a4c6: 080a bt 0xa4da // a4da + a4c8: 3300 movi r3, 0 + a4ca: 103c lrw r1, 0x200008bc // a538 + a4cc: 2b01 subi r3, 2 + a4ce: 9100 ld.w r0, (r1, 0x0) + a4d0: 70d3 rotl r3, r4 + a4d2: 68c0 and r3, r0 + a4d4: b160 st.w r3, (r1, 0x0) + a4d6: 3300 movi r3, 0 + a4d8: a260 st.b r3, (r2, 0x0) + a4da: 2400 addi r4, 1 + a4dc: 3c51 cmpnei r4, 17 + a4de: 0b81 bt 0xa3e0 // a3e0 + a4e0: 1405 addi r14, r14, 20 + a4e2: 1494 pop r4-r7, r15 + a4e4: 60d8 addu r3, r6 + a4e6: 4441 lsli r2, r4, 1 + a4e8: 102f lrw r1, 0x200001de // a524 + a4ea: 8b60 ld.h r3, (r3, 0x0) + a4ec: 6084 addu r2, r1 + a4ee: 74cf sexth r3, r3 + a4f0: 8a40 ld.h r2, (r2, 0x0) + a4f2: 64c9 cmplt r2, r3 + a4f4: 0fcd bf 0xa48e // a48e + a4f6: 079a br 0xa42a // a42a + a4f8: 3d41 cmpnei r5, 1 + a4fa: 0bb7 bt 0xa468 // a468 + a4fc: 102f lrw r1, 0x200008bc // a538 + a4fe: 6cd7 mov r3, r5 + a500: 9100 ld.w r0, (r1, 0x0) + a502: 07b0 br 0xa462 // a462 + a504: 200001b0 .long 0x200001b0 + a508: 20000184 .long 0x20000184 + a50c: 200008d6 .long 0x200008d6 + a510: 2000018d .long 0x2000018d + a514: 2000018c .long 0x2000018c + a518: 20000ad2 .long 0x20000ad2 + a51c: 2000082c .long 0x2000082c + a520: 20000a8e .long 0x20000a8e + a524: 200001de .long 0x200001de + a528: 200008c4 .long 0x200008c4 + a52c: 200008aa .long 0x200008aa + a530: 20000986 .long 0x20000986 + a534: 20000a00 .long 0x20000a00 + a538: 200008bc .long 0x200008bc + +Disassembly of section .text.TK_overflow_predict: + +0000a53c : + a53c: 14d4 push r4-r7, r15 + a53e: 1421 subi r14, r14, 4 + a540: 11d9 lrw r6, 0x20000068 // a624 + a542: 8665 ld.b r3, (r6, 0x5) + a544: 3b41 cmpnei r3, 1 + a546: 085f bt 0xa604 // a604 + a548: 1158 lrw r2, 0x200009dc // a628 + a54a: 8260 ld.b r3, (r2, 0x0) + a54c: 2300 addi r3, 1 + a54e: 74cc zextb r3, r3 + a550: a260 st.b r3, (r2, 0x0) + a552: 8260 ld.b r3, (r2, 0x0) + a554: 1136 lrw r1, 0x200001b1 // a62c + a556: 8120 ld.b r1, (r1, 0x0) + a558: 64c4 cmphs r1, r3 + a55a: 0855 bt 0xa604 // a604 + a55c: 3300 movi r3, 0 + a55e: a260 st.b r3, (r2, 0x0) + a560: 3500 movi r5, 0 + a562: 11f4 lrw r7, 0x200001b4 // a630 + a564: 2605 addi r6, 6 + a566: 9760 ld.w r3, (r7, 0x0) + a568: 70d5 lsr r3, r5 + a56a: 3201 movi r2, 1 + a56c: 68c8 and r3, r2 + a56e: 3b40 cmpnei r3, 0 + a570: 0c34 bf 0xa5d8 // a5d8 + a572: 4581 lsli r4, r5, 1 + a574: 5e70 addu r3, r6, r4 + a576: 8b00 ld.h r0, (r3, 0x0) + a578: e3ffcecc bsr 0x4310 // 4310 <__floatunsidf> + a57c: 6cc7 mov r3, r1 + a57e: 3180 movi r1, 128 + a580: 6c83 mov r2, r0 + a582: 4137 lsli r1, r1, 23 + a584: 3000 movi r0, 0 + a586: e3ffc217 bsr 0x29b4 // 29b4 <__GI_pow> + a58a: 116b lrw r3, 0x200001ba // a634 + a58c: 60d0 addu r3, r4 + a58e: 8b60 ld.h r3, (r3, 0x0) + a590: 4364 lsli r3, r3, 4 + a592: 230e addi r3, 15 + a594: b860 st.w r3, (r14, 0x0) + a596: e3ffc7e3 bsr 0x355c // 355c <__fixunsdfsi> + a59a: 9860 ld.w r3, (r14, 0x0) + a59c: 7cc0 mult r3, r0 + a59e: 1147 lrw r2, 0x20000a6c // a638 + a5a0: 740d zexth r0, r3 + a5a2: 6090 addu r2, r4 + a5a4: 1166 lrw r3, 0x20000ad2 // a63c + a5a6: 60d0 addu r3, r4 + a5a8: aa00 st.h r0, (r2, 0x0) + a5aa: 8b60 ld.h r3, (r3, 0x0) + a5ac: 8a00 ld.h r0, (r2, 0x0) + a5ae: 7401 zexth r0, r0 + a5b0: 325f movi r2, 95 + a5b2: 74cd zexth r3, r3 + a5b4: 7c08 mult r0, r2 + a5b6: 3164 movi r1, 100 + a5b8: b860 st.w r3, (r14, 0x0) + a5ba: e3ffe775 bsr 0x74a4 // 74a4 <__divsi3> + a5be: 9860 ld.w r3, (r14, 0x0) + a5c0: 64c1 cmplt r0, r3 + a5c2: 0c0b bf 0xa5d8 // a5d8 + a5c4: 107f lrw r3, 0x2000018e // a640 + a5c6: 610c addu r4, r3 + a5c8: 8c60 ld.h r3, (r4, 0x0) + a5ca: 3b06 cmphsi r3, 7 + a5cc: 0806 bt 0xa5d8 // a5d8 + a5ce: 2300 addi r3, 1 + a5d0: ac60 st.h r3, (r4, 0x0) + a5d2: 3201 movi r2, 1 + a5d4: 107c lrw r3, 0x20000931 // a644 + a5d6: a340 st.b r2, (r3, 0x0) + a5d8: 2500 addi r5, 1 + a5da: 3d51 cmpnei r5, 17 + a5dc: 0bc5 bt 0xa566 // a566 + a5de: 107a lrw r3, 0x20000931 // a644 + a5e0: 8340 ld.b r2, (r3, 0x0) + a5e2: 3a41 cmpnei r2, 1 + a5e4: 0810 bt 0xa604 // a604 + a5e6: 3200 movi r2, 0 + a5e8: a340 st.b r2, (r3, 0x0) + a5ea: 3200 movi r2, 0 + a5ec: 1077 lrw r3, 0x20000058 // a648 + a5ee: 1018 lrw r0, 0x200009ff // a64c + a5f0: 10b8 lrw r5, 0x20000a38 // a650 + a5f2: 10d4 lrw r6, 0x2000018e // a640 + a5f4: 9360 ld.w r3, (r3, 0x0) + a5f6: b342 st.w r2, (r3, 0x8) + a5f8: 1077 lrw r3, 0x20000054 // a654 + a5fa: 9380 ld.w r4, (r3, 0x0) + a5fc: 3300 movi r3, 0 + a5fe: 8040 ld.b r2, (r0, 0x0) + a600: 648c cmphs r3, r2 + a602: 0c03 bf 0xa608 // a608 + a604: 1401 addi r14, r14, 4 + a606: 1494 pop r4-r7, r15 + a608: 5d4c addu r2, r5, r3 + a60a: 8240 ld.b r2, (r2, 0x0) + a60c: 4241 lsli r2, r2, 1 + a60e: 4322 lsli r1, r3, 2 + a610: 6098 addu r2, r6 + a612: 6050 addu r1, r4 + a614: 8a40 ld.h r2, (r2, 0x0) + a616: 91f2 ld.w r7, (r1, 0x48) + a618: 4254 lsli r2, r2, 20 + a61a: 6c9c or r2, r7 + a61c: 2300 addi r3, 1 + a61e: b152 st.w r2, (r1, 0x48) + a620: 74cc zextb r3, r3 + a622: 07ee br 0xa5fe // a5fe + a624: 20000068 .long 0x20000068 + a628: 200009dc .long 0x200009dc + a62c: 200001b1 .long 0x200001b1 + a630: 200001b4 .long 0x200001b4 + a634: 200001ba .long 0x200001ba + a638: 20000a6c .long 0x20000a6c + a63c: 20000ad2 .long 0x20000ad2 + a640: 2000018e .long 0x2000018e + a644: 20000931 .long 0x20000931 + a648: 20000058 .long 0x20000058 + a64c: 200009ff .long 0x200009ff + a650: 20000a38 .long 0x20000a38 + a654: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +0000a658 : + a658: 14c4 push r4-r7 + a65a: 1422 subi r14, r14, 8 + a65c: 1348 lrw r2, 0x2000095e // a7fc + a65e: 8260 ld.b r3, (r2, 0x0) + a660: 2300 addi r3, 1 + a662: 74cc zextb r3, r3 + a664: a260 st.b r3, (r2, 0x0) + a666: 8260 ld.b r3, (r2, 0x0) + a668: 1326 lrw r1, 0x200001b1 // a800 + a66a: 8120 ld.b r1, (r1, 0x0) + a66c: 644c cmphs r3, r1 + a66e: 0cad bf 0xa7c8 // a7c8 + a670: 3300 movi r3, 0 + a672: a260 st.b r3, (r2, 0x0) + a674: 1364 lrw r3, 0x200008bc // a804 + a676: 9360 ld.w r3, (r3, 0x0) + a678: 3b40 cmpnei r3, 0 + a67a: 08a7 bt 0xa7c8 // a7c8 + a67c: 1323 lrw r1, 0x200008d6 // a808 + a67e: 6dc7 mov r7, r1 + a680: b820 st.w r1, (r14, 0x0) + a682: 3200 movi r2, 0 + a684: 1362 lrw r3, 0x200001de // a80c + a686: 1323 lrw r1, 0x2000082c // a810 + a688: 4201 lsli r0, r2, 1 + a68a: 9880 ld.w r4, (r14, 0x0) + a68c: 6100 addu r4, r0 + a68e: 8c80 ld.h r4, (r4, 0x0) + a690: 7513 sexth r4, r4 + a692: 3cdf btsti r4, 31 + a694: 0c27 bf 0xa6e2 // a6e2 + a696: 13a0 lrw r5, 0x20000ad2 // a814 + a698: 5980 addu r4, r1, r0 + a69a: 6014 addu r0, r5 + a69c: b881 st.w r4, (r14, 0x4) + a69e: 8c80 ld.h r4, (r4, 0x0) + a6a0: 88c0 ld.h r6, (r0, 0x0) + a6a2: 7511 zexth r4, r4 + a6a4: 7599 zexth r6, r6 + a6a6: 8ba0 ld.h r5, (r3, 0x0) + a6a8: 611a subu r4, r6 + a6aa: 6551 cmplt r4, r5 + a6ac: 081b bt 0xa6e2 // a6e2 + a6ae: 9881 ld.w r4, (r14, 0x4) + a6b0: 8c80 ld.h r4, (r4, 0x0) + a6b2: 8800 ld.h r0, (r0, 0x0) + a6b4: 7511 zexth r4, r4 + a6b6: 7401 zexth r0, r0 + a6b8: 5c01 subu r0, r4, r0 + a6ba: 4581 lsli r4, r5, 1 + a6bc: 6150 addu r5, r4 + a6be: 6541 cmplt r0, r5 + a6c0: 0c11 bf 0xa6e2 // a6e2 + a6c2: 1296 lrw r4, 0x20000a00 // a818 + a6c4: 6108 addu r4, r2 + a6c6: 8400 ld.b r0, (r4, 0x0) + a6c8: 2000 addi r0, 1 + a6ca: 7400 zextb r0, r0 + a6cc: a400 st.b r0, (r4, 0x0) + a6ce: 1214 lrw r0, 0x20000088 // a81c + a6d0: 84a0 ld.b r5, (r4, 0x0) + a6d2: 8008 ld.b r0, (r0, 0x8) + a6d4: 6540 cmphs r0, r5 + a6d6: 0806 bt 0xa6e2 // a6e2 + a6d8: 1212 lrw r0, 0x20000943 // a820 + a6da: 3501 movi r5, 1 + a6dc: a0a0 st.b r5, (r0, 0x0) + a6de: 3000 movi r0, 0 + a6e0: a400 st.b r0, (r4, 0x0) + a6e2: 4201 lsli r0, r2, 1 + a6e4: 5f80 addu r4, r7, r0 + a6e6: 8c80 ld.h r4, (r4, 0x0) + a6e8: 7513 sexth r4, r4 + a6ea: 3c20 cmplti r4, 1 + a6ec: 0870 bt 0xa7cc // a7cc + a6ee: 128a lrw r4, 0x20000ad2 // a814 + a6f0: 6100 addu r4, r0 + a6f2: 59a0 addu r5, r1, r0 + a6f4: 8c80 ld.h r4, (r4, 0x0) + a6f6: 8da0 ld.h r5, (r5, 0x0) + a6f8: 7555 zexth r5, r5 + a6fa: 7511 zexth r4, r4 + a6fc: 6116 subu r4, r5 + a6fe: 8ba0 ld.h r5, (r3, 0x0) + a700: 45a2 lsli r5, r5, 2 + a702: 6551 cmplt r4, r5 + a704: 0864 bt 0xa7cc // a7cc + a706: 1288 lrw r4, 0x20000986 // a824 + a708: 6108 addu r4, r2 + a70a: 84a0 ld.b r5, (r4, 0x0) + a70c: 2500 addi r5, 1 + a70e: 7554 zextb r5, r5 + a710: a4a0 st.b r5, (r4, 0x0) + a712: 12a3 lrw r5, 0x20000088 // a81c + a714: 84c0 ld.b r6, (r4, 0x0) + a716: 85a9 ld.b r5, (r5, 0x9) + a718: 6594 cmphs r5, r6 + a71a: 0806 bt 0xa726 // a726 + a71c: 12a1 lrw r5, 0x20000943 // a820 + a71e: 3601 movi r6, 1 + a720: a5c0 st.b r6, (r5, 0x0) + a722: 3500 movi r5, 0 + a724: a4a0 st.b r5, (r4, 0x0) + a726: 5f80 addu r4, r7, r0 + a728: 8c80 ld.h r4, (r4, 0x0) + a72a: 7513 sexth r4, r4 + a72c: 3cdf btsti r4, 31 + a72e: 0c10 bf 0xa74e // a74e + a730: 11d9 lrw r6, 0x20000ad2 // a814 + a732: 59a0 addu r5, r1, r0 + a734: 6180 addu r6, r0 + a736: 8d80 ld.h r4, (r5, 0x0) + a738: 8ec0 ld.h r6, (r6, 0x0) + a73a: 7599 zexth r6, r6 + a73c: 7511 zexth r4, r4 + a73e: 611a subu r4, r6 + a740: 8bc0 ld.h r6, (r3, 0x0) + a742: 6591 cmplt r4, r6 + a744: 0c05 bf 0xa74e // a74e + a746: 8d80 ld.h r4, (r5, 0x0) + a748: 2c00 subi r4, 1 + a74a: 7511 zexth r4, r4 + a74c: ad80 st.h r4, (r5, 0x0) + a74e: 5f80 addu r4, r7, r0 + a750: 8c80 ld.h r4, (r4, 0x0) + a752: 7513 sexth r4, r4 + a754: 3cdf btsti r4, 31 + a756: 0c11 bf 0xa778 // a778 + a758: 11cf lrw r6, 0x20000ad2 // a814 + a75a: 59a0 addu r5, r1, r0 + a75c: 6180 addu r6, r0 + a75e: 8d80 ld.h r4, (r5, 0x0) + a760: 8ec0 ld.h r6, (r6, 0x0) + a762: 7599 zexth r6, r6 + a764: 7511 zexth r4, r4 + a766: 611a subu r4, r6 + a768: 8bc0 ld.h r6, (r3, 0x0) + a76a: 4ec1 lsri r6, r6, 1 + a76c: 6591 cmplt r4, r6 + a76e: 0805 bt 0xa778 // a778 + a770: 8d80 ld.h r4, (r5, 0x0) + a772: 2c01 subi r4, 2 + a774: 7511 zexth r4, r4 + a776: ad80 st.h r4, (r5, 0x0) + a778: 5fa0 addu r5, r7, r0 + a77a: 8d80 ld.h r4, (r5, 0x0) + a77c: 7513 sexth r4, r4 + a77e: 3c20 cmplti r4, 1 + a780: 080c bt 0xa798 // a798 + a782: 8da0 ld.h r5, (r5, 0x0) + a784: 8b80 ld.h r4, (r3, 0x0) + a786: 7557 sexth r5, r5 + a788: 4c81 lsri r4, r4, 1 + a78a: 6515 cmplt r5, r4 + a78c: 0c06 bf 0xa798 // a798 + a78e: 59a0 addu r5, r1, r0 + a790: 8d80 ld.h r4, (r5, 0x0) + a792: 2400 addi r4, 1 + a794: 7511 zexth r4, r4 + a796: ad80 st.h r4, (r5, 0x0) + a798: 5fa0 addu r5, r7, r0 + a79a: 8d80 ld.h r4, (r5, 0x0) + a79c: 7513 sexth r4, r4 + a79e: 3c20 cmplti r4, 1 + a7a0: 0810 bt 0xa7c0 // a7c0 + a7a2: 8dc0 ld.h r6, (r5, 0x0) + a7a4: 759b sexth r6, r6 + a7a6: 8b80 ld.h r4, (r3, 0x0) + a7a8: 6519 cmplt r6, r4 + a7aa: 0c0b bf 0xa7c0 // a7c0 + a7ac: 8da0 ld.h r5, (r5, 0x0) + a7ae: 7557 sexth r5, r5 + a7b0: 4c81 lsri r4, r4, 1 + a7b2: 6515 cmplt r5, r4 + a7b4: 0806 bt 0xa7c0 // a7c0 + a7b6: 6004 addu r0, r1 + a7b8: 8880 ld.h r4, (r0, 0x0) + a7ba: 2401 addi r4, 2 + a7bc: 7511 zexth r4, r4 + a7be: a880 st.h r4, (r0, 0x0) + a7c0: 2200 addi r2, 1 + a7c2: 3a51 cmpnei r2, 17 + a7c4: 2301 addi r3, 2 + a7c6: 0b61 bt 0xa688 // a688 + a7c8: 1402 addi r14, r14, 8 + a7ca: 1484 pop r4-r7 + a7cc: 5f80 addu r4, r7, r0 + a7ce: 8c80 ld.h r4, (r4, 0x0) + a7d0: 7513 sexth r4, r4 + a7d2: 3cdf btsti r4, 31 + a7d4: 0fa9 bf 0xa726 // a726 + a7d6: 10b0 lrw r5, 0x20000ad2 // a814 + a7d8: 5980 addu r4, r1, r0 + a7da: 6140 addu r5, r0 + a7dc: 8c80 ld.h r4, (r4, 0x0) + a7de: 8da0 ld.h r5, (r5, 0x0) + a7e0: 7555 zexth r5, r5 + a7e2: 8bc0 ld.h r6, (r3, 0x0) + a7e4: 7511 zexth r4, r4 + a7e6: 6116 subu r4, r5 + a7e8: 46a1 lsli r5, r6, 1 + a7ea: 6158 addu r5, r6 + a7ec: 6551 cmplt r4, r5 + a7ee: 0b9c bt 0xa726 // a726 + a7f0: 108c lrw r4, 0x20000943 // a820 + a7f2: 3501 movi r5, 1 + a7f4: a4a0 st.b r5, (r4, 0x0) + a7f6: 6c03 mov r0, r0 + a7f8: 0797 br 0xa726 // a726 + a7fa: 0000 bkpt + a7fc: 2000095e .long 0x2000095e + a800: 200001b1 .long 0x200001b1 + a804: 200008bc .long 0x200008bc + a808: 200008d6 .long 0x200008d6 + a80c: 200001de .long 0x200001de + a810: 2000082c .long 0x2000082c + a814: 20000ad2 .long 0x20000ad2 + a818: 20000a00 .long 0x20000a00 + a81c: 20000088 .long 0x20000088 + a820: 20000943 .long 0x20000943 + a824: 20000986 .long 0x20000986 + +Disassembly of section .text.TK_result_prog: + +0000a828 : + a828: 14d2 push r4-r5, r15 + a82a: 1050 lrw r2, 0x200008bc // a868 + a82c: 1090 lrw r4, 0x20000960 // a86c + a82e: 9260 ld.w r3, (r2, 0x0) + a830: 3b40 cmpnei r3, 0 + a832: 0c02 bf 0xa836 // a836 + a834: 9260 ld.w r3, (r2, 0x0) + a836: b460 st.w r3, (r4, 0x0) + a838: 9460 ld.w r3, (r4, 0x0) + a83a: 3b40 cmpnei r3, 0 + a83c: 10ad lrw r5, 0x20000a34 // a870 + a83e: 0c11 bf 0xa860 // a860 + a840: 9440 ld.w r2, (r4, 0x0) + a842: 9560 ld.w r3, (r5, 0x0) + a844: 64ca cmpne r2, r3 + a846: 0c03 bf 0xa84c // a84c + a848: 9460 ld.w r3, (r4, 0x0) + a84a: b560 st.w r3, (r5, 0x0) + a84c: e3fffd94 bsr 0xa374 // a374 + a850: 1069 lrw r3, 0x200001b8 // a874 + a852: 8360 ld.b r3, (r3, 0x0) + a854: 640c cmphs r3, r0 + a856: 0804 bt 0xa85e // a85e + a858: 3300 movi r3, 0 + a85a: b460 st.w r3, (r4, 0x0) + a85c: b560 st.w r3, (r5, 0x0) + a85e: 1492 pop r4-r5, r15 + a860: 1046 lrw r2, 0x20000958 // a878 + a862: b560 st.w r3, (r5, 0x0) + a864: b260 st.w r3, (r2, 0x0) + a866: 07fc br 0xa85e // a85e + a868: 200008bc .long 0x200008bc + a86c: 20000960 .long 0x20000960 + a870: 20000a34 .long 0x20000a34 + a874: 200001b8 .long 0x200001b8 + a878: 20000958 .long 0x20000958 + +Disassembly of section .text.CORETHandler: + +0000a87c : + a87c: 1460 nie + a87e: 1462 ipush + a880: 14d1 push r4, r15 + a882: 1077 lrw r3, 0x20000064 // a8dc + a884: 3400 movi r4, 0 + a886: 9360 ld.w r3, (r3, 0x0) + a888: b386 st.w r4, (r3, 0x18) + a88a: 1076 lrw r3, 0x200008c0 // a8e0 + a88c: 8360 ld.b r3, (r3, 0x0) + a88e: 3b41 cmpnei r3, 1 + a890: 0820 bt 0xa8d0 // a8d0 + a892: e3fffd85 bsr 0xa39c // a39c + a896: e3fffd93 bsr 0xa3bc // a3bc + a89a: e3fffe51 bsr 0xa53c // a53c + a89e: e3fffedd bsr 0xa658 // a658 + a8a2: e3ffffc3 bsr 0xa828 // a828 + a8a6: 1070 lrw r3, 0x20000960 // a8e4 + a8a8: 9360 ld.w r3, (r3, 0x0) + a8aa: 3b40 cmpnei r3, 0 + a8ac: 0c12 bf 0xa8d0 // a8d0 + a8ae: 106f lrw r3, 0x20000188 // a8e8 + a8b0: 9340 ld.w r2, (r3, 0x0) + a8b2: 3a40 cmpnei r2, 0 + a8b4: 0c0e bf 0xa8d0 // a8d0 + a8b6: 106e lrw r3, 0x20000958 // a8ec + a8b8: 3064 movi r0, 100 + a8ba: 9320 ld.w r1, (r3, 0x0) + a8bc: 2100 addi r1, 1 + a8be: b320 st.w r1, (r3, 0x0) + a8c0: 9320 ld.w r1, (r3, 0x0) + a8c2: 7c80 mult r2, r0 + a8c4: 6448 cmphs r2, r1 + a8c6: 0805 bt 0xa8d0 // a8d0 + a8c8: 104a lrw r2, 0x20000943 // a8f0 + a8ca: 3101 movi r1, 1 + a8cc: a220 st.b r1, (r2, 0x0) + a8ce: b380 st.w r4, (r3, 0x0) + a8d0: d9ee2001 ld.w r15, (r14, 0x4) + a8d4: 9880 ld.w r4, (r14, 0x0) + a8d6: 1402 addi r14, r14, 8 + a8d8: 1463 ipop + a8da: 1461 nir + a8dc: 20000064 .long 0x20000064 + a8e0: 200008c0 .long 0x200008c0 + a8e4: 20000960 .long 0x20000960 + a8e8: 20000188 .long 0x20000188 + a8ec: 20000958 .long 0x20000958 + a8f0: 20000943 .long 0x20000943 + +Disassembly of section .text.std_clk_calib: + +0000a8f4 : + a8f4: 14d4 push r4-r7, r15 + a8f6: 142d subi r14, r14, 52 + a8f8: 3201 movi r2, 1 + a8fa: 03ce lrw r6, 0x2000005c // ab3c + a8fc: 6cc3 mov r3, r0 + a8fe: dc4e000a st.b r2, (r14, 0xa) + a902: 9640 ld.w r2, (r6, 0x0) + a904: 9247 ld.w r2, (r2, 0x1c) + a906: 7488 zextb r2, r2 + a908: dc4e0009 st.b r2, (r14, 0x9) + a90c: d84e0009 ld.b r2, (r14, 0x9) + a910: 3a40 cmpnei r2, 0 + a912: 0c08 bf 0xa922 // a922 + a914: d84e0009 ld.b r2, (r14, 0x9) + a918: 3a42 cmpnei r2, 2 + a91a: 0c04 bf 0xa922 // a922 + a91c: 3000 movi r0, 0 + a91e: 140d addi r14, r14, 52 + a920: 1494 pop r4-r7, r15 + a922: 0397 lrw r4, 0x2000000c // ab40 + a924: 3209 movi r2, 9 + a926: 9400 ld.w r0, (r4, 0x0) + a928: 3b40 cmpnei r3, 0 + a92a: b041 st.w r2, (r0, 0x4) + a92c: 0857 bt 0xa9da // a9da + a92e: 3307 movi r3, 7 + a930: dc6e000b st.b r3, (r14, 0xb) + a934: 037b lrw r3, 0x2dc6c00 // ab44 + a936: b863 st.w r3, (r14, 0xc) + a938: 3380 movi r3, 128 + a93a: 4362 lsli r3, r3, 2 + a93c: b867 st.w r3, (r14, 0x1c) + a93e: d86e000b ld.b r3, (r14, 0xb) + a942: 74cc zextb r3, r3 + a944: b062 st.w r3, (r0, 0x8) + a946: 037e lrw r3, 0xffff // ab48 + a948: b063 st.w r3, (r0, 0xc) + a94a: 3201 movi r2, 1 + a94c: 3101 movi r1, 1 + a94e: 03bf lrw r5, 0x20000014 // ab4c + a950: e3ffde86 bsr 0x665c // 665c + a954: 95e0 ld.w r7, (r5, 0x0) + a956: 137f lrw r3, 0xbe9c0005 // ab50 + a958: b760 st.w r3, (r7, 0x0) + a95a: 135f lrw r2, 0x30010 // ab54 + a95c: 3300 movi r3, 0 + a95e: b762 st.w r3, (r7, 0x8) + a960: b743 st.w r2, (r7, 0xc) + a962: 32d8 movi r2, 216 + a964: b745 st.w r2, (r7, 0x14) + a966: 974f ld.w r2, (r7, 0x3c) + a968: 3aa2 bseti r2, 2 + a96a: b74f st.w r2, (r7, 0x3c) + a96c: 9803 ld.w r0, (r14, 0xc) + a96e: d82e000b ld.b r1, (r14, 0xb) + a972: 327d movi r2, 125 + a974: 2100 addi r1, 1 + a976: 7c48 mult r1, r2 + a978: b861 st.w r3, (r14, 0x4) + a97a: e3ffe5a7 bsr 0x74c8 // 74c8 <__udivsi3> + a97e: b804 st.w r0, (r14, 0x10) + a980: 32fa movi r2, 250 + a982: 9824 ld.w r1, (r14, 0x10) + a984: 4242 lsli r2, r2, 2 + a986: 6448 cmphs r2, r1 + a988: 0bca bt 0xa91c // a91c + a98a: 9844 ld.w r2, (r14, 0x10) + a98c: 3178 movi r1, 120 + a98e: 9804 ld.w r0, (r14, 0x10) + a990: b840 st.w r2, (r14, 0x0) + a992: e3ffe59b bsr 0x74c8 // 74c8 <__udivsi3> + a996: 9840 ld.w r2, (r14, 0x0) + a998: 6082 subu r2, r0 + a99a: b845 st.w r2, (r14, 0x14) + a99c: 9804 ld.w r0, (r14, 0x10) + a99e: 3178 movi r1, 120 + a9a0: 9844 ld.w r2, (r14, 0x10) + a9a2: b840 st.w r2, (r14, 0x0) + a9a4: e3ffe592 bsr 0x74c8 // 74c8 <__udivsi3> + a9a8: 9840 ld.w r2, (r14, 0x0) + a9aa: 6008 addu r0, r2 + a9ac: b806 st.w r0, (r14, 0x18) + a9ae: c0807020 psrclr ie + a9b2: 9640 ld.w r2, (r6, 0x0) + a9b4: 9254 ld.w r2, (r2, 0x50) + a9b6: b848 st.w r2, (r14, 0x20) + a9b8: 9861 ld.w r3, (r14, 0x4) + a9ba: 9440 ld.w r2, (r4, 0x0) + a9bc: b260 st.w r3, (r2, 0x0) + a9be: b761 st.w r3, (r7, 0x4) + a9c0: d86e000a ld.b r3, (r14, 0xa) + a9c4: 3b40 cmpnei r3, 0 + a9c6: 083e bt 0xaa42 // aa42 + a9c8: e3ffddfc bsr 0x65c0 // 65c0 + a9cc: 9400 ld.w r0, (r4, 0x0) + a9ce: e3ffde1d bsr 0x6608 // 6608 + a9d2: c1807420 psrset ee, ie + a9d6: 3001 movi r0, 1 + a9d8: 07a3 br 0xa91e // a91e + a9da: 3b41 cmpnei r3, 1 + a9dc: 0806 bt 0xa9e8 // a9e8 + a9de: 3303 movi r3, 3 + a9e0: dc6e000b st.b r3, (r14, 0xb) + a9e4: 127d lrw r3, 0x16e3600 // ab58 + a9e6: 07a8 br 0xa936 // a936 + a9e8: 3b42 cmpnei r3, 2 + a9ea: 0806 bt 0xa9f6 // a9f6 + a9ec: 3301 movi r3, 1 + a9ee: dc6e000b st.b r3, (r14, 0xb) + a9f2: 127b lrw r3, 0xb71b00 // ab5c + a9f4: 07a1 br 0xa936 // a936 + a9f6: 3b43 cmpnei r3, 3 + a9f8: 0806 bt 0xaa04 // aa04 + a9fa: 3300 movi r3, 0 + a9fc: dc6e000b st.b r3, (r14, 0xb) + aa00: 1278 lrw r3, 0x5b8d80 // ab60 + aa02: 079a br 0xa936 // a936 + aa04: 3b44 cmpnei r3, 4 + aa06: 0809 bt 0xaa18 // aa18 + aa08: 3300 movi r3, 0 + aa0a: dc6e000b st.b r3, (r14, 0xb) + aa0e: 1276 lrw r3, 0x54c720 // ab64 + aa10: b863 st.w r3, (r14, 0xc) + aa12: 3380 movi r3, 128 + aa14: 4369 lsli r3, r3, 9 + aa16: 0793 br 0xa93c // a93c + aa18: 3b45 cmpnei r3, 5 + aa1a: 0806 bt 0xaa26 // aa26 + aa1c: 3300 movi r3, 0 + aa1e: dc6e000b st.b r3, (r14, 0xb) + aa22: 1272 lrw r3, 0x3ffed0 // ab68 + aa24: 07f6 br 0xaa10 // aa10 + aa26: 3b46 cmpnei r3, 6 + aa28: 0806 bt 0xaa34 // aa34 + aa2a: 3300 movi r3, 0 + aa2c: dc6e000b st.b r3, (r14, 0xb) + aa30: 126f lrw r3, 0x1fff68 // ab6c + aa32: 07ef br 0xaa10 // aa10 + aa34: 3b47 cmpnei r3, 7 + aa36: 0b84 bt 0xa93e // a93e + aa38: 3300 movi r3, 0 + aa3a: dc6e000b st.b r3, (r14, 0xb) + aa3e: 126d lrw r3, 0x1ffb8 // ab70 + aa40: 07e8 br 0xaa10 // aa10 + aa42: 9560 ld.w r3, (r5, 0x0) + aa44: 3101 movi r1, 1 + aa46: 9440 ld.w r2, (r4, 0x0) + aa48: b321 st.w r1, (r3, 0x4) + aa4a: b220 st.w r1, (r2, 0x0) + aa4c: 3100 movi r1, 0 + aa4e: b327 st.w r1, (r3, 0x1c) + aa50: 3004 movi r0, 4 + aa52: b225 st.w r1, (r2, 0x14) + aa54: 932e ld.w r1, (r3, 0x38) + aa56: 6840 and r1, r0 + aa58: 3940 cmpnei r1, 0 + aa5a: 0ffd bf 0xaa54 // aa54 + aa5c: 9225 ld.w r1, (r2, 0x14) + aa5e: b82a st.w r1, (r14, 0x28) + aa60: 3100 movi r1, 0 + aa62: b310 st.w r0, (r3, 0x40) + aa64: b327 st.w r1, (r3, 0x1c) + aa66: 3004 movi r0, 4 + aa68: b225 st.w r1, (r2, 0x14) + aa6a: 932e ld.w r1, (r3, 0x38) + aa6c: 6840 and r1, r0 + aa6e: 3940 cmpnei r1, 0 + aa70: 0ffd bf 0xaa6a // aa6a + aa72: 9225 ld.w r1, (r2, 0x14) + aa74: b82b st.w r1, (r14, 0x2c) + aa76: 3100 movi r1, 0 + aa78: b310 st.w r0, (r3, 0x40) + aa7a: b327 st.w r1, (r3, 0x1c) + aa7c: 3004 movi r0, 4 + aa7e: b225 st.w r1, (r2, 0x14) + aa80: 932e ld.w r1, (r3, 0x38) + aa82: 6840 and r1, r0 + aa84: 3940 cmpnei r1, 0 + aa86: 0ffd bf 0xaa80 // aa80 + aa88: 9225 ld.w r1, (r2, 0x14) + aa8a: b82c st.w r1, (r14, 0x30) + aa8c: b310 st.w r0, (r3, 0x40) + aa8e: 982b ld.w r1, (r14, 0x2c) + aa90: 980c ld.w r0, (r14, 0x30) + aa92: 6040 addu r1, r0 + aa94: b829 st.w r1, (r14, 0x24) + aa96: 9829 ld.w r1, (r14, 0x24) + aa98: 4921 lsri r1, r1, 1 + aa9a: b829 st.w r1, (r14, 0x24) + aa9c: 3100 movi r1, 0 + aa9e: b321 st.w r1, (r3, 0x4) + aaa0: b220 st.w r1, (r2, 0x0) + aaa2: b327 st.w r1, (r3, 0x1c) + aaa4: b225 st.w r1, (r2, 0x14) + aaa6: d86e0009 ld.b r3, (r14, 0x9) + aaaa: 3b42 cmpnei r3, 2 + aaac: 9849 ld.w r2, (r14, 0x24) + aaae: 082c bt 0xab06 // ab06 + aab0: 1171 lrw r3, 0x7ff // ab74 + aab2: 648c cmphs r3, r2 + aab4: 0c03 bf 0xaaba // aaba + aab6: 3300 movi r3, 0 + aab8: 040f br 0xaad6 // aad6 + aaba: 9849 ld.w r2, (r14, 0x24) + aabc: 9866 ld.w r3, (r14, 0x18) + aabe: 648c cmphs r3, r2 + aac0: 080e bt 0xaadc // aadc + aac2: 9868 ld.w r3, (r14, 0x20) + aac4: 9847 ld.w r2, (r14, 0x1c) + aac6: 60ca subu r3, r2 + aac8: b868 st.w r3, (r14, 0x20) + aaca: 32fe movi r2, 254 + aacc: 9868 ld.w r3, (r14, 0x20) + aace: 4248 lsli r2, r2, 8 + aad0: 68c8 and r3, r2 + aad2: 3b40 cmpnei r3, 0 + aad4: 0812 bt 0xaaf8 // aaf8 + aad6: dc6e000a st.b r3, (r14, 0xa) + aada: 0721 br 0xa91c // a91c + aadc: 9849 ld.w r2, (r14, 0x24) + aade: 9865 ld.w r3, (r14, 0x14) + aae0: 64c8 cmphs r2, r3 + aae2: 0829 bt 0xab34 // ab34 + aae4: 9868 ld.w r3, (r14, 0x20) + aae6: 9847 ld.w r2, (r14, 0x1c) + aae8: 60c8 addu r3, r2 + aaea: b868 st.w r3, (r14, 0x20) + aaec: 33fe movi r3, 254 + aaee: 9848 ld.w r2, (r14, 0x20) + aaf0: 4368 lsli r3, r3, 8 + aaf2: 688c and r2, r3 + aaf4: 64ca cmpne r2, r3 + aaf6: 0fe0 bf 0xaab6 // aab6 + aaf8: 9660 ld.w r3, (r6, 0x0) + aafa: 9848 ld.w r2, (r14, 0x20) + aafc: b354 st.w r2, (r3, 0x50) + aafe: 3001 movi r0, 1 + ab00: e3ffdf38 bsr 0x6970 // 6970 + ab04: 075e br 0xa9c0 // a9c0 + ab06: 9866 ld.w r3, (r14, 0x18) + ab08: 648c cmphs r3, r2 + ab0a: 0809 bt 0xab1c // ab1c + ab0c: 9868 ld.w r3, (r14, 0x20) + ab0e: 9847 ld.w r2, (r14, 0x1c) + ab10: 60ca subu r3, r2 + ab12: b868 st.w r3, (r14, 0x20) + ab14: 32ff movi r2, 255 + ab16: 9868 ld.w r3, (r14, 0x20) + ab18: 4250 lsli r2, r2, 16 + ab1a: 07db br 0xaad0 // aad0 + ab1c: 9849 ld.w r2, (r14, 0x24) + ab1e: 9865 ld.w r3, (r14, 0x14) + ab20: 64c8 cmphs r2, r3 + ab22: 0809 bt 0xab34 // ab34 + ab24: 9868 ld.w r3, (r14, 0x20) + ab26: 9847 ld.w r2, (r14, 0x1c) + ab28: 60c8 addu r3, r2 + ab2a: b868 st.w r3, (r14, 0x20) + ab2c: 33ff movi r3, 255 + ab2e: 9848 ld.w r2, (r14, 0x20) + ab30: 4370 lsli r3, r3, 16 + ab32: 07e0 br 0xaaf2 // aaf2 + ab34: 3300 movi r3, 0 + ab36: dc6e000a st.b r3, (r14, 0xa) + ab3a: 07e2 br 0xaafe // aafe + ab3c: 2000005c .long 0x2000005c + ab40: 2000000c .long 0x2000000c + ab44: 02dc6c00 .long 0x02dc6c00 + ab48: 0000ffff .long 0x0000ffff + ab4c: 20000014 .long 0x20000014 + ab50: be9c0005 .long 0xbe9c0005 + ab54: 00030010 .long 0x00030010 + ab58: 016e3600 .long 0x016e3600 + ab5c: 00b71b00 .long 0x00b71b00 + ab60: 005b8d80 .long 0x005b8d80 + ab64: 0054c720 .long 0x0054c720 + ab68: 003ffed0 .long 0x003ffed0 + ab6c: 001fff68 .long 0x001fff68 + ab70: 0001ffb8 .long 0x0001ffb8 + ab74: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20250830.map b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20250830.map new file mode 100644 index 0000000..838abd9 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20250830.map @@ -0,0 +1,3048 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x290c + Start of program headers: 52 (bytes into file) + Start of section headers: 379120 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 205 + Section header string table index: 202 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00002800 000800 003676 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00005e78 003e78 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00005eb0 003eb0 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00005f24 003f24 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00005f70 003f70 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00005fa0 003fa0 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00006028 004028 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00006050 004050 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 0000608c 00408c 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 000060a0 0040a0 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 000060b8 0040b8 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 000060d8 0040d8 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 000060f4 0040f4 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00006110 004110 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00006150 004150 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00006184 004184 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00006188 004188 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00006198 004198 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 000061a4 0041a4 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Soft PROGBITS 000061b0 0041b0 000014 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 000061c4 0041c4 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000061e8 0041e8 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 00006218 004218 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 0000627c 00427c 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 0000635c 00435c 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00006370 004370 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00006380 004380 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 0000648c 00448c 0000fc 00 AX 0 0 4 + [29] .text.GPIO_Write_ PROGBITS 00006588 004588 000008 00 AX 0 0 2 + [30] .text.GPIO_Write_ PROGBITS 00006590 004590 000008 00 AX 0 0 2 + [31] .text.GPIO_Revers PROGBITS 00006598 004598 000016 00 AX 0 0 2 + [32] .text.GPIO_Read_S PROGBITS 000065ae 0045ae 000010 00 AX 0 0 2 + [33] .text.LPT_Soft_Re PROGBITS 000065c0 0045c0 000014 00 AX 0 0 4 + [34] .text.WWDT_CNT_Lo PROGBITS 000065d4 0045d4 000010 00 AX 0 0 4 + [35] .text.BT_DeInit PROGBITS 000065e4 0045e4 00001c 00 AX 0 0 2 + [36] .text.BT_Start PROGBITS 00006600 004600 000008 00 AX 0 0 2 + [37] .text.BT_Soft_Res PROGBITS 00006608 004608 00000a 00 AX 0 0 2 + [38] .text.BT_Configur PROGBITS 00006612 004612 000018 00 AX 0 0 2 + [39] .text.BT_ControlS PROGBITS 0000662a 00462a 00002c 00 AX 0 0 2 + [40] .text.BT_Period_C PROGBITS 00006656 004656 000006 00 AX 0 0 2 + [41] .text.BT_ConfigIn PROGBITS 0000665c 00465c 000012 00 AX 0 0 2 + [42] .text.BT1_INT_ENA PROGBITS 00006670 004670 000010 00 AX 0 0 4 + [43] .text.UART0_DeIni PROGBITS 00006680 004680 000018 00 AX 0 0 4 + [44] .text.UART1_DeIni PROGBITS 00006698 004698 000018 00 AX 0 0 4 + [45] .text.UART2_DeIni PROGBITS 000066b0 0046b0 000018 00 AX 0 0 4 + [46] .text.UART0_Int_E PROGBITS 000066c8 0046c8 00001c 00 AX 0 0 4 + [47] .text.UART1_Int_E PROGBITS 000066e4 0046e4 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 00006700 004700 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 0000671c 00471c 0000ec 00 AX 0 0 4 + [50] .text.UARTInitRxT PROGBITS 00006808 004808 000010 00 AX 0 0 4 + [51] .text.UARTTransmi PROGBITS 00006818 004818 00001e 00 AX 0 0 2 + [52] .text.EPT_Stop PROGBITS 00006838 004838 000028 00 AX 0 0 4 + [53] .text.Page_Progra PROGBITS 00006860 004860 0000a0 00 AX 0 0 4 + [54] .text.ReadDataArr PROGBITS 00006900 004900 00002a 00 AX 0 0 2 + [55] .text.startup.mai PROGBITS 0000692c 00492c 000044 00 AX 0 0 4 + [56] .text.delay_nms PROGBITS 00006970 004970 00002c 00 AX 0 0 2 + [57] .text.delay_nus PROGBITS 0000699c 00499c 000022 00 AX 0 0 2 + [58] .text.BT_CONFIG PROGBITS 000069c0 0049c0 000060 00 AX 0 0 4 + [59] .text.SYSCON_CONF PROGBITS 00006a20 004a20 000062 00 AX 0 0 2 + [60] .text.APT32F102_i PROGBITS 00006a84 004a84 000078 00 AX 0 0 4 + [61] .text.SYSCONIntHa PROGBITS 00006afc 004afc 0000f0 00 AX 0 0 4 + [62] .text.IFCIntHandl PROGBITS 00006bec 004bec 000068 00 AX 0 0 4 + [63] .text.ADCIntHandl PROGBITS 00006c54 004c54 000068 00 AX 0 0 4 + [64] .text.EPT0IntHand PROGBITS 00006cbc 004cbc 0001ac 00 AX 0 0 4 + [65] .text.WWDTHandler PROGBITS 00006e68 004e68 000034 00 AX 0 0 4 + [66] .text.GPT0IntHand PROGBITS 00006e9c 004e9c 000080 00 AX 0 0 4 + [67] .text.RTCIntHandl PROGBITS 00006f1c 004f1c 000070 00 AX 0 0 4 + [68] .text.UART0IntHan PROGBITS 00006f8c 004f8c 000060 00 AX 0 0 4 + [69] .text.UART1IntHan PROGBITS 00006fec 004fec 000094 00 AX 0 0 4 + [70] .text.UART2IntHan PROGBITS 00007080 005080 000060 00 AX 0 0 4 + [71] .text.SPI0IntHand PROGBITS 000070e0 0050e0 0000e8 00 AX 0 0 4 + [72] .text.SIO0IntHand PROGBITS 000071c8 0051c8 000054 00 AX 0 0 4 + [73] .text.EXI0IntHand PROGBITS 0000721c 00521c 000030 00 AX 0 0 4 + [74] .text.EXI1IntHand PROGBITS 0000724c 00524c 000030 00 AX 0 0 4 + [75] .text.EXI2to3IntH PROGBITS 0000727c 00527c 000048 00 AX 0 0 4 + [76] .text.EXI4to9IntH PROGBITS 000072c4 0052c4 000020 00 AX 0 0 4 + [77] .text.EXI10to15In PROGBITS 000072e4 0052e4 00006c 00 AX 0 0 4 + [78] .text.LPTIntHandl PROGBITS 00007350 005350 000034 00 AX 0 0 4 + [79] .text.BT0IntHandl PROGBITS 00007384 005384 00004c 00 AX 0 0 4 + [80] .text.BT1IntHandl PROGBITS 000073d0 0053d0 000070 00 AX 0 0 4 + [81] .text.PriviledgeV PROGBITS 00007440 005440 000002 00 AX 0 0 2 + [82] .text.PendTrapHan PROGBITS 00007442 005442 000008 00 AX 0 0 2 + [83] .text.Trap3Handle PROGBITS 0000744a 00544a 000008 00 AX 0 0 2 + [84] .text.Trap2Handle PROGBITS 00007452 005452 000008 00 AX 0 0 2 + [85] .text.Trap1Handle PROGBITS 0000745a 00545a 000008 00 AX 0 0 2 + [86] .text.Trap0Handle PROGBITS 00007462 005462 000008 00 AX 0 0 2 + [87] .text.UnrecExecpH PROGBITS 0000746a 00546a 000008 00 AX 0 0 2 + [88] .text.BreakPointH PROGBITS 00007472 005472 000008 00 AX 0 0 2 + [89] .text.AccessErrHa PROGBITS 0000747a 00547a 000008 00 AX 0 0 2 + [90] .text.IllegalInst PROGBITS 00007482 005482 000008 00 AX 0 0 2 + [91] .text.MisalignedH PROGBITS 0000748a 00548a 000008 00 AX 0 0 2 + [92] .text.CNTAIntHand PROGBITS 00007492 005492 000008 00 AX 0 0 2 + [93] .text.I2CIntHandl PROGBITS 0000749a 00549a 000008 00 AX 0 0 2 + [94] .text.__divsi3 PROGBITS 000074a4 0054a4 000024 00 AX 0 0 4 + [95] .text.__udivsi3 PROGBITS 000074c8 0054c8 000024 00 AX 0 0 4 + [96] .text.__modsi3 PROGBITS 000074ec 0054ec 000024 00 AX 0 0 4 + [97] .text.__umodsi3 PROGBITS 00007510 005510 000024 00 AX 0 0 4 + [98] .text.CK_CPU_EnAl PROGBITS 00007534 005534 000006 00 AX 0 0 2 + [99] .text.CK_CPU_DisA PROGBITS 0000753a 00553a 000006 00 AX 0 0 2 + [100] .text.UARTx_Init PROGBITS 00007540 005540 000188 00 AX 0 0 4 + [101] .text.UART0_RecvI PROGBITS 000076c8 0056c8 000034 00 AX 0 0 4 + [102] .text.UART0_TASK PROGBITS 000076fc 0056fc 000060 00 AX 0 0 4 + [103] .text.UART1_RecvI PROGBITS 0000775c 00575c 000034 00 AX 0 0 4 + [104] .text.UART2_RecvI PROGBITS 00007790 005790 000034 00 AX 0 0 4 + [105] .text.MCU485_Send PROGBITS 000077c4 0057c4 000090 00 AX 0 0 4 + [106] .text.BUS485_Send PROGBITS 00007854 005854 0000c4 00 AX 0 0 4 + [107] .text.Set_GroupSe PROGBITS 00007918 005918 000064 00 AX 0 0 4 + [108] .text.Clear_SendF PROGBITS 0000797c 00597c 000010 00 AX 0 0 4 + [109] .text.BUS485_Jump PROGBITS 0000798c 00598c 00000c 00 AX 0 0 4 + [110] .text.BusIdle_Tas PROGBITS 00007998 005998 000040 00 AX 0 0 4 + [111] .text.BusBusy_Tas PROGBITS 000079d8 0059d8 00005c 00 AX 0 0 4 + [112] .text.Dbg_Println PROGBITS 00007a34 005a34 000080 00 AX 0 0 4 + [113] .text.MultSend_Ta PROGBITS 00007ab4 005ab4 0000a0 00 AX 0 0 4 + [114] .text.BUS485Send_ PROGBITS 00007b54 005b54 000068 00 AX 0 0 4 + [115] .text.Dbg_Print_B PROGBITS 00007bbc 005bbc 000084 00 AX 0 0 4 + [116] .text.UART1_TASK PROGBITS 00007c40 005c40 00008c 00 AX 0 0 4 + [117] .text.UART2_TASK PROGBITS 00007ccc 005ccc 00009c 00 AX 0 0 4 + [118] .text.Dbg_BT_Prin PROGBITS 00007d68 005d68 000060 00 AX 0 0 4 + [119] .text.DIP_GetSwit PROGBITS 00007dc8 005dc8 000034 00 AX 0 0 4 + [120] .text.DIP_Switch_ PROGBITS 00007dfc 005dfc 000094 00 AX 0 0 4 + [121] .text.DIP_ScanTas PROGBITS 00007e90 005e90 000098 00 AX 0 0 4 + [122] .text.EEPROM_Chec PROGBITS 00007f28 005f28 000016 00 AX 0 0 2 + [123] .text.EEOROM_ENER PROGBITS 00007f40 005f40 000150 00 AX 0 0 4 + [124] .text.EEOROM_ENER PROGBITS 00008090 006090 000044 00 AX 0 0 4 + [125] .text.EEPROM_ENER PROGBITS 000080d4 0060d4 00014c 00 AX 0 0 4 + [126] .text.EEPROM_Defa PROGBITS 00008220 006220 00012c 00 AX 0 0 4 + [127] .text.EEPROM_Read PROGBITS 0000834c 00634c 0000b8 00 AX 0 0 4 + [128] .text.EEPROM_Writ PROGBITS 00008404 006404 0000ac 00 AX 0 0 4 + [129] .text.EEPROM_Read PROGBITS 000084b0 0064b0 0000d4 00 AX 0 0 4 + [130] .text.EEPROM_Writ PROGBITS 00008584 006584 000040 00 AX 0 0 2 + [131] .text.EEPROM_Defa PROGBITS 000085c4 0065c4 000038 00 AX 0 0 4 + [132] .text.EEPROM_Vali PROGBITS 000085fc 0065fc 000058 00 AX 0 0 4 + [133] .text.EEPROM_Init PROGBITS 00008654 006654 000130 00 AX 0 0 4 + [134] .text.BT_Uart_Pac PROGBITS 00008784 006784 00003c 00 AX 0 0 4 + [135] .text.BLV_DetEner PROGBITS 000087c0 0067c0 000030 00 AX 0 0 4 + [136] .text.BLV_DetEner PROGBITS 000087f0 0067f0 0000b8 00 AX 0 0 4 + [137] .text.HLW8110_Che PROGBITS 000088a8 0068a8 000018 00 AX 0 0 2 + [138] .text.HLW8110_Wri PROGBITS 000088c0 0068c0 000054 00 AX 0 0 4 + [139] .text.HLW8110_Wri PROGBITS 00008914 006914 000054 00 AX 0 0 4 + [140] .text.HLW8110_Res PROGBITS 00008968 006968 000050 00 AX 0 0 4 + [141] .text.BLV_HLW8110 PROGBITS 000089b8 0069b8 00008c 00 AX 0 0 4 + [142] .text.HLW8110_RWC PROGBITS 00008a44 006a44 000074 00 AX 0 0 4 + [143] .text.HLW8110_Cle PROGBITS 00008ab8 006ab8 000010 00 AX 0 0 4 + [144] .text.Get_RevStat PROGBITS 00008ac8 006ac8 000018 00 AX 0 0 4 + [145] .text.Get_SendSta PROGBITS 00008ae0 006ae0 00001c 00 AX 0 0 4 + [146] .text.BLV_HLW8110 PROGBITS 00008afc 006afc 0001e4 00 AX 0 0 4 + [147] .text.HLW8110_Con PROGBITS 00008ce0 006ce0 00008c 00 AX 0 0 4 + [148] .text.HLW8110_Con PROGBITS 00008d6c 006d6c 00007c 00 AX 0 0 4 + [149] .text.HLW8110_Con PROGBITS 00008de8 006de8 00007c 00 AX 0 0 4 + [150] .text.HLW8110_Con PROGBITS 00008e64 006e64 000088 00 AX 0 0 4 + [151] .text.HLW8110_Rec PROGBITS 00008eec 006eec 00025c 00 AX 0 0 4 + [152] .text.HLW8110_Sys PROGBITS 00009148 007148 000026 00 AX 0 0 2 + [153] .text.HLW8110_Rea PROGBITS 00009170 007170 000254 00 AX 0 0 4 + [154] .text.HLW8110_Rea PROGBITS 000093c4 0073c4 0000c8 00 AX 0 0 4 + [155] .text.GetEnergy_P PROGBITS 0000948c 00748c 000064 00 AX 0 0 4 + [156] .text.HLW8110_Rea PROGBITS 000094f0 0074f0 000158 00 AX 0 0 4 + [157] .text.BLV_HLW8110 PROGBITS 00009648 007648 000040 00 AX 0 0 4 + [158] .text.BT_Uart_Pac PROGBITS 00009688 007688 00000c 00 AX 0 0 2 + [159] .text.BT_UART_Pri PROGBITS 00009694 007694 000104 00 AX 0 0 4 + [160] .text.BLV_Energy_ PROGBITS 00009798 007798 0000ec 00 AX 0 0 4 + [161] .text.BLV_Electri PROGBITS 00009884 007884 0000b0 00 AX 0 0 4 + [162] .text.BLV_EngDete PROGBITS 00009934 007934 000014 00 AX 0 0 2 + [163] .text.BLV_Energy_ PROGBITS 00009948 007948 0000ec 00 AX 0 0 4 + [164] .text.BLV_Energy_ PROGBITS 00009a34 007a34 0000a0 00 AX 0 0 4 + [165] .text.BLV_Energy_ PROGBITS 00009ad4 007ad4 000098 00 AX 0 0 4 + [166] .text.SetCalibFac PROGBITS 00009b6c 007b6c 000030 00 AX 0 0 4 + [167] .text.BLV_Energy_ PROGBITS 00009b9c 007b9c 000084 00 AX 0 0 4 + [168] .text.BLV_Energy_ PROGBITS 00009c20 007c20 00007c 00 AX 0 0 4 + [169] .text.HLW_485Recv PROGBITS 00009c9c 007c9c 000160 00 AX 0 0 4 + [170] .text.BT_Recv_Pro PROGBITS 00009dfc 007dfc 000118 00 AX 0 0 4 + [171] .text.Boot_Functi PROGBITS 00009f14 007f14 0000c0 00 AX 0 0 4 + [172] .text.Boot_Comm_C PROGBITS 00009fd4 007fd4 000024 00 AX 0 0 4 + [173] .text.Boot_Comm_F PROGBITS 00009ff8 007ff8 00006c 00 AX 0 0 4 + [174] .text.Boot_Time_R PROGBITS 0000a064 008064 000014 00 AX 0 0 4 + [175] .text.Boot_Comm_U PROGBITS 0000a078 008078 00021c 00 AX 0 0 4 + [176] .text.TK_Sampling PROGBITS 0000a294 008294 000058 00 AX 0 0 4 + [177] .text.TKEYIntHand PROGBITS 0000a2ec 0082ec 000088 00 AX 0 0 4 + [178] .text.get_key_num PROGBITS 0000a374 008374 000028 00 AX 0 0 4 + [179] .text.TK_Scan_Sta PROGBITS 0000a39c 00839c 000020 00 AX 0 0 4 + [180] .text.TK_Keymap_p PROGBITS 0000a3bc 0083bc 000180 00 AX 0 0 4 + [181] .text.TK_overflow PROGBITS 0000a53c 00853c 00011c 00 AX 0 0 4 + [182] .text.TK_Baseline PROGBITS 0000a658 008658 0001d0 00 AX 0 0 4 + [183] .text.TK_result_p PROGBITS 0000a828 008828 000054 00 AX 0 0 4 + [184] .text.CORETHandle PROGBITS 0000a87c 00887c 000078 00 AX 0 0 4 + [185] .text.std_clk_cal PROGBITS 0000a8f4 0088f4 000284 00 AX 0 0 4 + [186] .RomCode PROGBITS 0000ab78 00b0bc 000000 00 W 0 0 1 + [187] .rodata PROGBITS 0000ab78 008b78 0016d8 00 A 0 0 4 + [188] .data PROGBITS 20000000 00b000 00009c 00 WA 0 0 4 + [189] .textcsky.VinFlas PROGBITS 2000009c 00b09c 000020 00 WA 0 0 1 + [190] .bss NOBITS 200000bc 00b0bc 000a40 00 WA 0 0 4 + [191] .csky.attributes CSKY_ATTRIBUTES 00000000 00b0bc 000022 00 0 0 1 + [192] .comment PROGBITS 00000000 00b0de 000042 01 MS 0 0 1 + [193] .csky_stack_size PROGBITS 00000000 00b120 000aec 00 0 0 16 + [194] .debug_line PROGBITS 00000000 00bc0c 0043c1 00 0 0 1 + [195] .debug_info PROGBITS 00000000 00ffcd 0319a4 00 0 0 1 + [196] .debug_abbrev PROGBITS 00000000 041971 002d7e 00 0 0 1 + [197] .debug_aranges PROGBITS 00000000 0446f0 000d68 00 0 0 8 + [198] .debug_ranges PROGBITS 00000000 045458 000d80 00 0 0 1 + [199] .debug_str PROGBITS 00000000 0461d8 009119 01 MS 0 0 1 + [200] .debug_frame PROGBITS 00000000 04f2f4 002148 00 0 0 4 + [201] .debug_loc PROGBITS 00000000 05143c 00325d 00 0 0 1 + [202] .shstrtab STRTAB 00000000 05b701 0011ef 00 0 0 1 + [203] .symtab SYMTAB 00000000 05469c 005540 10 204 974 4 + [204] .strtab STRTAB 00000000 059bdc 001b25 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x000000 0x00002000 0x00002000 0x0a250 0x0a250 R E 0x1000 + LOAD 0x00b000 0x20000000 0x0000c250 0x000bc 0x00afc RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .text.SYSCON_Software_Reset .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_DeInit .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.Page_ProgramData .text.ReadDataArry_U8 .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART0_RecvINT_Processing .text.UART0_TASK .text.UART1_RecvINT_Processing .text.UART2_RecvINT_Processing .text.MCU485_SendData .text.BUS485_Send .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.MultSend_Task .text.BUS485Send_Task .text.Dbg_Print_Buff .text.UART1_TASK .text.UART2_TASK .text.Dbg_BT_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.EEPROM_CheckSum .text.EEOROM_ENERGY_ReadSet .text.EEOROM_ENERGY_WriteSet .text.EEPROM_ENERGY_Validate .text.EEPROM_Default_ENERGY .text.EEPROM_ReadTotalEng .text.EEPROM_WriteTotalEng .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.BT_Uart_Packing.part.3 .text.BLV_DetEnergy_Init .text.BLV_DetEnergy_Default .text.HLW8110_CheckSum .text.HLW8110_WriteREG_EN .text.HLW8110_WriteREG_DIS .text.HLW8110_Reset .text.BLV_HLW8110_RWCMD_Packaging .text.HLW8110_RWCMD_Send .text.HLW8110_CleanSdFlag .text.Get_RevState .text.Get_SendState .text.BLV_HLW8110_SendData_Tack .text.HLW8110_Convert_CurrentRegA_Value .text.HLW8110_Convert_VoltageReg_Value .text.HLW8110_Convert_PowerReg_Value .text.HLW8110_Convert_EnergyReg_Value .text.HLW8110_RecvData_Processing .text.HLW8110_SysPara_Check .text.HLW8110_ReadSysPara .text.HLW8110_ReadSysCtrlPara .text.GetEnergy_Para .text.HLW8110_ReadValue .text.BLV_HLW8110_Tack .text.BT_Uart_Packing .text.BT_UART_Print .text.BLV_Energy_ActiveRep_Packing .text.BLV_ElectricPara_Processing .text.BLV_EngDetect_Tack .text.BLV_Energy_PassiveRep_Packing .text.BLV_Energy_SetTime_Packing .text.BLV_Energy_QueryVersion_Packing .text.SetCalibFactor_Switch .text.BLV_Energy_SetCalibFactor .text.BLV_Energy_SetCalibFactor_2 .text.HLW_485Recv_Processing .text.BT_Recv_Processing .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .textcsky.VinFlash .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Software_Reset) for SYSCON_Software_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DeInit) for GPIO_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART0IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART0_RecvINT_Processing) for UART0_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART0_TASK) for UART0_TASK + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.BUS485_Jump_Boot) for BUS485_Jump_Boot + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART1_TASK) for UART1_TASK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_TASK + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) for DIP_ScanTask + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) for EEOROM_ENERGY_ReadSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) for EEPROM_Default_ENERGY + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) for EEPROM_ReadTotalEng + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) for EEPROM_ReadMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) for EEPROM_Default_MCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) for BLV_DetEnergy_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) for BLV_DetEnergy_Default + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) for HLW8110_WriteREG_EN + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) for HLW8110_WriteREG_DIS + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) for HLW8110_Reset + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) for HLW8110_RWCMD_Send + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CleanSdFlag) for HLW8110_CleanSdFlag + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.Get_RevState) for Get_RevState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) for BLV_HLW8110_SendData_Tack + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) for HLW8110_Convert_CurrentRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) for HLW8110_Convert_VoltageReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) for HLW8110_Convert_PowerReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) for HLW8110_Convert_EnergyReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_SysPara_Check) for HLW8110_SysPara_Check + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) for HLW8110_ReadSysPara + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) for HLW8110_ReadSysCtrlPara + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) for GetEnergy_Para + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) for HLW8110_ReadValue + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) for BLV_HLW8110_Tack + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) for BT_UART_Print + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) for BLV_Energy_ActiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) for BLV_ElectricPara_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) for BLV_EngDetect_Tack + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) for BLV_Energy_PassiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) for BLV_Energy_SetCalibFactor + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) for BLV_Energy_SetCalibFactor_2 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) for Boot_Function_Init + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) for Boot_Comm_FillReplyPack + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Time_Refresh) for Boot_Time_Refresh + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _addsub_sf.o(.text) for __addsf3 + _fixunssfsi.o(.text) refers to _addsub_sf.o(.text) for __subsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _ne_sf.o(.text) for __nesf2 + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to _ne_sf.o(.text) for __nesf2 + _fixunssfsi.o(.text) refers to _ge_sf.o(.text) for __gesf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _si_to_sf.o(.text) for __floatsisf + _fixunssfsi.o(.text) refers to _sf_to_si.o(.text) for __fixsfsi + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_sf.o(.text) refers to _muldi3.o(.text) for __muldi3 + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_sf.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _mul_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _si_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _make_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _mul_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _div_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ge_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_si.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_df.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _ge_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _df_to_sf.o(.text) refers to _make_sf.o(.text) for __make_fp + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _make_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_sf.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to strncmp.o(.text) for strncmp + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2907 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3101 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3418 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3163 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_IO_Init(Obj/FWlib_apt32f102_gpt.o), (160 bytes). + Removing .text.GPT_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveCtrl_Configure(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_WaveLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveOut_Configure(Obj/FWlib_apt32f102_gpt.o), (180 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Start(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Period_CMP_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_gpt.o), (28 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_gpt.o), (11442 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_gpt.o), (562 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_gpt.o), (2212 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_gpt.o), (256 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_gpt.o), (240 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_gpt.o), (754 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_gpt.o), (8026 bytes). + Removing .comment(Obj/FWlib_apt32f102_gpt.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_gpt.o), (616 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4131 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3534 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3650 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4850 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4958 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2856 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .bss(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (116 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ReadPara(Obj/SYSTEM_eeprom.o), (128 bytes). + Removing .text.EEPROM_ValidateWrite(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_WritePara(Obj/SYSTEM_eeprom.o), (104 bytes). + Removing .text(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .data(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .text.HLW8110_ToWaitState(Obj/SYSTEM_det_energy.o), (24 bytes). + Removing .text(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .text.NetCRC16(Obj/SYSTEM_Bootload_fun.o), (60 bytes). + Removing .text.APP_Flash_AllEase(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.MCU_EEPROM_AllEase(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing .text.APP_FEATURE_Flash_Ease(Obj/SYSTEM_Bootload_fun.o), (12 bytes). + Removing .text.Boot_TimeOut_Task(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Jump_To_APP(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Check_APP_Feature(Obj/SYSTEM_Bootload_fun.o), (456 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (121 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.o), (0 bytes). + Removing .data(_fixunssfsi.o), (0 bytes). + Removing .bss(_fixunssfsi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_sf.o), (0 bytes). + Removing .bss(_addsub_sf.o), (0 bytes). + Removing .data(_mul_sf.o), (0 bytes). + Removing .bss(_mul_sf.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.o), (0 bytes). + Removing .data(_ne_sf.o), (0 bytes). + Removing .bss(_ne_sf.o), (0 bytes). + Removing .data(_ge_sf.o), (0 bytes). + Removing .bss(_ge_sf.o), (0 bytes). + Removing .data(_si_to_sf.o), (0 bytes). + Removing .bss(_si_to_sf.o), (0 bytes). + Removing .data(_sf_to_si.o), (0 bytes). + Removing .bss(_sf_to_si.o), (0 bytes). + Removing .data(_sf_to_df.o), (0 bytes). + Removing .bss(_sf_to_df.o), (0 bytes). + Removing .text(_thenan_sf.o), (0 bytes). + Removing .data(_thenan_sf.o), (0 bytes). + Removing .bss(_thenan_sf.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .data(_make_df.o), (0 bytes). + Removing .bss(_make_df.o), (0 bytes). + Removing .data(_df_to_sf.o), (0 bytes). + Removing .bss(_df_to_sf.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_sf.o), (0 bytes). + Removing .bss(_pack_sf.o), (0 bytes). + Removing .data(_unpack_sf.o), (0 bytes). + Removing .bss(_unpack_sf.o), (0 bytes). + Removing .data(_fpcmp_parts_sf.o), (0 bytes). + Removing .bss(_fpcmp_parts_sf.o), (0 bytes). + Removing .data(_make_sf.o), (0 bytes). + Removing .bss(_make_sf.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +690 unused seciton(s) (total 184135 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ifc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_Bootload_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_det_energy.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _addsub_sf.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uhi.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_sf.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _div_sf.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fixunssfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _fpcmp_parts_sf.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _ge_sf.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _make_df.o 0x00000000 df 0 *ABS* + _make_sf.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _mul_sf.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _ne_sf.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _sf_to_si.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _si_to_sf.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _unpack_sf.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + strncmp.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00002800 0 .text + $t 0x0000290c 0 .text + INIT_KERLE_STACK 0x0000293e 0 .text + __to_main 0x00002946 0 .text + __dummy 0x00002982 0 .text + $d 0x00002986 0 .text + $d 0x000029b4 0 .text + $t 0x000029b4 0 .text + $d 0x00002d78 0 .text + $t 0x00002de0 0 .text + $d 0x000032a8 0 .text + $t 0x00003358 0 .text + $d 0x0000335e 0 .text + $t 0x0000335e 0 .text + $d 0x00003364 0 .text + $t 0x00003364 0 .text + $d 0x00003380 0 .text + $d 0x00003384 0 .text + $t 0x00003384 0 .text + $d 0x000034f0 0 .text + $d 0x000034fc 0 .text + $t 0x000034fc 0 .text + $d 0x00003510 0 .text + $t 0x00003510 0 .text + $d 0x0000352c 0 .text + $t 0x0000352c 0 .text + $d 0x0000355c 0 .text + $t 0x0000355c 0 .text + $d 0x00003590 0 .text + _fpadd_parts 0x00003594 F 332 .text + $d 0x00003594 0 .text + $t 0x00003594 0 .text + $d 0x000036d8 0 .text + $t 0x000036e0 0 .text + $d 0x00003740 0 .text + $t 0x00003740 0 .text + $d 0x00003850 0 .text + $d 0x00003858 0 .text + $t 0x00003858 0 .text + $d 0x00003910 0 .text + $d 0x00003914 0 .text + $t 0x00003914 0 .text + $d 0x0000394c 0 .text + $t 0x0000394c 0 .text + $d 0x00003984 0 .text + $t 0x00003984 0 .text + $d 0x000039e8 0 .text + $t 0x000039e8 0 .text + $d 0x00003a38 0 .text + $d 0x00003a3c 0 .text + $t 0x00003a3c 0 .text + _fpadd_parts 0x00003a60 F 724 .text + $d 0x00003a60 0 .text + $t 0x00003a60 0 .text + $d 0x00003d28 0 .text + $t 0x00003d34 0 .text + $d 0x00003d9c 0 .text + $t 0x00003d9c 0 .text + $d 0x00003fc4 0 .text + $d 0x00003fd0 0 .text + $t 0x00003fd0 0 .text + $d 0x00004120 0 .text + $d 0x00004124 0 .text + $t 0x00004124 0 .text + $d 0x00004160 0 .text + $t 0x00004160 0 .text + $d 0x0000419c 0 .text + $t 0x0000419c 0 .text + $d 0x000041d8 0 .text + $t 0x000041d8 0 .text + $d 0x00004244 0 .text + $d 0x00004248 0 .text + $t 0x00004248 0 .text + $d 0x000042b4 0 .text + $d 0x000042b8 0 .text + $t 0x000042b8 0 .text + $d 0x000042e0 0 .text + $t 0x000042e0 0 .text + $d 0x00004310 0 .text + $t 0x00004310 0 .text + $d 0x00004364 0 .text + $t 0x00004364 0 .text + $d 0x000043a8 0 .text + $t 0x000043a8 0 .text + $d 0x000043dc 0 .text + $d 0x000043e8 0 .text + $t 0x000043e8 0 .text + $d 0x0000449c 0 .text + $d 0x000044a0 0 .text + $t 0x000044a0 0 .text + $d 0x0000451c 0 .text + $d 0x00004524 0 .text + $t 0x00004524 0 .text + $d 0x0000459c 0 .text + $t 0x0000459c 0 .text + $d 0x000045b4 0 .text + $t 0x000045b4 0 .text + $d 0x0000473c 0 .text + $d 0x00004750 0 .text + $t 0x00004750 0 .text + $d 0x00004808 0 .text + $d 0x00004814 0 .text + $t 0x00004814 0 .text + $d 0x000048a0 0 .text + $t 0x000048a0 0 .text + swrite 0x000048c0 F 62 .text + $d 0x000048c0 0 .text + $t 0x000048c0 0 .text + $d 0x00004954 0 .text + $d 0x00004958 0 .text + $t 0x00004958 0 .text + $d 0x000049e0 0 .text + $t 0x000049e0 0 .text + $d 0x00004a44 0 .text + $t 0x00004a44 0 .text + PAD.1851 0x00004a6c F 52 .text + $d 0x00004a6c 0 .text + $t 0x00004a6c 0 .text + $d 0x00005014 0 .text + $t 0x00005020 0 .text + $d 0x000051bc 0 .text + $d 0x000051c4 0 .text + $t 0x000051c4 0 .text + $d 0x00005564 0 .text + $d 0x00005570 0 .text + $t 0x00005570 0 .text + $d 0x00005904 0 .text + copystring 0x00005910 F 38 .text + $d 0x00005910 0 .text + $t 0x00005910 0 .text + $d 0x00005c3c 0 .text + $d 0x00005c70 0 .text + $t 0x00005c70 0 .text + $d 0x00005c98 0 .text + $d 0x00005c9c 0 .text + $t 0x00005c9c 0 .text + $d 0x00005cf0 0 .text + $t 0x00005cf0 0 .text + $d 0x00005da0 0 .text + $t 0x00005da0 0 .text + $d 0x00005db4 0 .text + $t 0x00005db4 0 .text + $d 0x00005dc8 0 .text + $d 0x00005dd0 0 .text + $t 0x00005dd0 0 .text + $d 0x00005df8 0 .text + $d 0x00005e00 0 .text + $t 0x00005e00 0 .text + $d 0x00005e3c 0 .text + $t 0x00005e3c 0 .text + $d 0x00005e78 0 .text.__main + $t 0x00005e78 0 .text.__main + $d 0x00005e9c 0 .text.__main + SYSCON_General_CMD.part.0 0x00005eb0 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $t 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f1c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f24 0 .text.SYSCON_RST_VALUE + $t 0x00005f24 0 .text.SYSCON_RST_VALUE + $d 0x00005f54 0 .text.SYSCON_RST_VALUE + $d 0x00005f70 0 .text.SYSCON_General_CMD + $t 0x00005f70 0 .text.SYSCON_General_CMD + $d 0x00005f9c 0 .text.SYSCON_General_CMD + $d 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006018 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $d 0x0000604c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00006050 0 .text.SYSCON_WDT_CMD + $t 0x00006050 0 .text.SYSCON_WDT_CMD + $d 0x00006080 0 .text.SYSCON_WDT_CMD + $d 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $t 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000609c 0 .text.SYSCON_IWDCNT_Reload + $d 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $t 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b8 0 .text.SYSCON_LVD_Config + $t 0x000060b8 0 .text.SYSCON_LVD_Config + $d 0x000060d0 0 .text.SYSCON_LVD_Config + $d 0x000060d8 0 .text.LVD_Int_Enable + $t 0x000060d8 0 .text.LVD_Int_Enable + $d 0x000060f0 0 .text.LVD_Int_Enable + $d 0x000060f4 0 .text.IWDT_Int_Enable + $t 0x000060f4 0 .text.IWDT_Int_Enable + $d 0x0000610c 0 .text.IWDT_Int_Enable + $d 0x00006110 0 .text.EXTI_trigger_CMD + $t 0x00006110 0 .text.EXTI_trigger_CMD + $d 0x0000614c 0 .text.EXTI_trigger_CMD + $d 0x00006150 0 .text.EXTI_interrupt_CMD + $t 0x00006150 0 .text.EXTI_interrupt_CMD + $d 0x0000617c 0 .text.EXTI_interrupt_CMD + $d 0x00006184 0 .text.GPIO_EXTI_interrupt + $t 0x00006184 0 .text.GPIO_EXTI_interrupt + $d 0x00006188 0 .text.EXI4_Int_Enable + $t 0x00006188 0 .text.EXI4_Int_Enable + $d 0x00006194 0 .text.EXI4_Int_Enable + $d 0x00006198 0 .text.SYSCON_Int_Enable + $t 0x00006198 0 .text.SYSCON_Int_Enable + $d 0x000061a0 0 .text.SYSCON_Int_Enable + $d 0x000061a4 0 .text.SYSCON_Int_Disable + $t 0x000061a4 0 .text.SYSCON_Int_Disable + $d 0x000061ac 0 .text.SYSCON_Int_Disable + $d 0x000061b0 0 .text.SYSCON_Software_Reset + $t 0x000061b0 0 .text.SYSCON_Software_Reset + $d 0x000061bc 0 .text.SYSCON_Software_Reset + $d 0x000061c4 0 .text.SYSCON_INT_Priority + $t 0x000061c4 0 .text.SYSCON_INT_Priority + $d 0x000061dc 0 .text.SYSCON_INT_Priority + $d 0x000061e8 0 .text.Set_INT_Priority + $t 0x000061e8 0 .text.Set_INT_Priority + $d 0x00006214 0 .text.Set_INT_Priority + $d 0x00006218 0 .text.GPIO_DeInit + $t 0x00006218 0 .text.GPIO_DeInit + $d 0x0000626c 0 .text.GPIO_DeInit + $d 0x0000627c 0 .text.GPIO_Init + $t 0x0000627c 0 .text.GPIO_Init + $d 0x0000628e 0 .text.GPIO_Init + $t 0x00006296 0 .text.GPIO_Init + $d 0x000062f2 0 .text.GPIO_Init + $t 0x000062fa 0 .text.GPIO_Init + $d 0x00006348 0 .text.GPIO_Init + $d 0x0000635c 0 .text.GPIO_PullHigh_Init + $t 0x0000635c 0 .text.GPIO_PullHigh_Init + $d 0x00006370 0 .text.GPIO_DriveStrength_EN + $t 0x00006370 0 .text.GPIO_DriveStrength_EN + $d 0x00006380 0 .text.GPIO_IntGroup_Set + $t 0x00006380 0 .text.GPIO_IntGroup_Set + $d 0x00006474 0 .text.GPIO_IntGroup_Set + $d 0x0000648c 0 .text.GPIOA0_EXI_Init + $t 0x0000648c 0 .text.GPIOA0_EXI_Init + $d 0x00006498 0 .text.GPIOA0_EXI_Init + $t 0x000064a8 0 .text.GPIOA0_EXI_Init + $d 0x00006584 0 .text.GPIOA0_EXI_Init + $d 0x00006588 0 .text.GPIO_Write_High + $t 0x00006588 0 .text.GPIO_Write_High + $d 0x00006590 0 .text.GPIO_Write_Low + $t 0x00006590 0 .text.GPIO_Write_Low + $d 0x00006598 0 .text.GPIO_Reverse + $t 0x00006598 0 .text.GPIO_Reverse + $d 0x000065ae 0 .text.GPIO_Read_Status + $t 0x000065ae 0 .text.GPIO_Read_Status + $d 0x000065c0 0 .text.LPT_Soft_Reset + $t 0x000065c0 0 .text.LPT_Soft_Reset + $d 0x000065d0 0 .text.LPT_Soft_Reset + $d 0x000065d4 0 .text.WWDT_CNT_Load + $t 0x000065d4 0 .text.WWDT_CNT_Load + $d 0x000065e0 0 .text.WWDT_CNT_Load + $d 0x000065e4 0 .text.BT_DeInit + $t 0x000065e4 0 .text.BT_DeInit + $d 0x00006600 0 .text.BT_Start + $t 0x00006600 0 .text.BT_Start + $d 0x00006608 0 .text.BT_Soft_Reset + $t 0x00006608 0 .text.BT_Soft_Reset + $d 0x00006612 0 .text.BT_Configure + $t 0x00006612 0 .text.BT_Configure + $d 0x0000662a 0 .text.BT_ControlSet_Configure + $t 0x0000662a 0 .text.BT_ControlSet_Configure + $d 0x00006656 0 .text.BT_Period_CMP_Write + $t 0x00006656 0 .text.BT_Period_CMP_Write + $d 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $t 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $d 0x00006670 0 .text.BT1_INT_ENABLE + $t 0x00006670 0 .text.BT1_INT_ENABLE + $d 0x0000667c 0 .text.BT1_INT_ENABLE + $d 0x00006680 0 .text.UART0_DeInit + $t 0x00006680 0 .text.UART0_DeInit + $d 0x00006694 0 .text.UART0_DeInit + $d 0x00006698 0 .text.UART1_DeInit + $t 0x00006698 0 .text.UART1_DeInit + $d 0x000066ac 0 .text.UART1_DeInit + $d 0x000066b0 0 .text.UART2_DeInit + $t 0x000066b0 0 .text.UART2_DeInit + $d 0x000066c4 0 .text.UART2_DeInit + $d 0x000066c8 0 .text.UART0_Int_Enable + $t 0x000066c8 0 .text.UART0_Int_Enable + $d 0x000066dc 0 .text.UART0_Int_Enable + $d 0x000066e4 0 .text.UART1_Int_Enable + $t 0x000066e4 0 .text.UART1_Int_Enable + $d 0x000066f8 0 .text.UART1_Int_Enable + $d 0x00006700 0 .text.UART2_Int_Enable + $t 0x00006700 0 .text.UART2_Int_Enable + $d 0x00006714 0 .text.UART2_Int_Enable + $d 0x0000671c 0 .text.UART_IO_Init + $t 0x0000671c 0 .text.UART_IO_Init + $d 0x00006800 0 .text.UART_IO_Init + $d 0x00006808 0 .text.UARTInitRxTxIntEn + $t 0x00006808 0 .text.UARTInitRxTxIntEn + $d 0x00006814 0 .text.UARTInitRxTxIntEn + $d 0x00006818 0 .text.UARTTransmit + $t 0x00006818 0 .text.UARTTransmit + $d 0x00006838 0 .text.EPT_Stop + $t 0x00006838 0 .text.EPT_Stop + $d 0x00006858 0 .text.EPT_Stop + $d 0x00006860 0 .text.Page_ProgramData + $t 0x00006860 0 .text.Page_ProgramData + $d 0x000068f8 0 .text.Page_ProgramData + $d 0x00006900 0 .text.ReadDataArry_U8 + $t 0x00006900 0 .text.ReadDataArry_U8 + $d 0x0000692c 0 .text.startup.main + $t 0x0000692c 0 .text.startup.main + $d 0x00006964 0 .text.startup.main + $d 0x00006970 0 .text.delay_nms + $t 0x00006970 0 .text.delay_nms + $d 0x0000699c 0 .text.delay_nus + $t 0x0000699c 0 .text.delay_nus + $d 0x000069c0 0 .text.BT_CONFIG + $t 0x000069c0 0 .text.BT_CONFIG + $d 0x00006a18 0 .text.BT_CONFIG + $d 0x00006a20 0 .text.SYSCON_CONFIG + $t 0x00006a20 0 .text.SYSCON_CONFIG + $d 0x00006a84 0 .text.APT32F102_init + $t 0x00006a84 0 .text.APT32F102_init + $d 0x00006ae8 0 .text.APT32F102_init + $d 0x00006afc 0 .text.SYSCONIntHandler + $t 0x00006afc 0 .text.SYSCONIntHandler + $d 0x00006be8 0 .text.SYSCONIntHandler + $d 0x00006bec 0 .text.IFCIntHandler + $t 0x00006bec 0 .text.IFCIntHandler + $d 0x00006c50 0 .text.IFCIntHandler + $d 0x00006c54 0 .text.ADCIntHandler + $t 0x00006c54 0 .text.ADCIntHandler + $d 0x00006cb8 0 .text.ADCIntHandler + $d 0x00006cbc 0 .text.EPT0IntHandler + $t 0x00006cbc 0 .text.EPT0IntHandler + $d 0x00006e5c 0 .text.EPT0IntHandler + $d 0x00006e68 0 .text.WWDTHandler + $t 0x00006e68 0 .text.WWDTHandler + $d 0x00006e98 0 .text.WWDTHandler + $d 0x00006e9c 0 .text.GPT0IntHandler + $t 0x00006e9c 0 .text.GPT0IntHandler + $d 0x00006f18 0 .text.GPT0IntHandler + $d 0x00006f1c 0 .text.RTCIntHandler + $t 0x00006f1c 0 .text.RTCIntHandler + $d 0x00006f84 0 .text.RTCIntHandler + $d 0x00006f8c 0 .text.UART0IntHandler + $t 0x00006f8c 0 .text.UART0IntHandler + $d 0x00006fe8 0 .text.UART0IntHandler + $d 0x00006fec 0 .text.UART1IntHandler + $t 0x00006fec 0 .text.UART1IntHandler + $d 0x0000706c 0 .text.UART1IntHandler + $d 0x00007080 0 .text.UART2IntHandler + $t 0x00007080 0 .text.UART2IntHandler + $d 0x000070dc 0 .text.UART2IntHandler + $d 0x000070e0 0 .text.SPI0IntHandler + $t 0x000070e0 0 .text.SPI0IntHandler + $d 0x000071c4 0 .text.SPI0IntHandler + $d 0x000071c8 0 .text.SIO0IntHandler + $t 0x000071c8 0 .text.SIO0IntHandler + $d 0x00007218 0 .text.SIO0IntHandler + $d 0x0000721c 0 .text.EXI0IntHandler + $t 0x0000721c 0 .text.EXI0IntHandler + $d 0x00007248 0 .text.EXI0IntHandler + $d 0x0000724c 0 .text.EXI1IntHandler + $t 0x0000724c 0 .text.EXI1IntHandler + $d 0x00007278 0 .text.EXI1IntHandler + $d 0x0000727c 0 .text.EXI2to3IntHandler + $t 0x0000727c 0 .text.EXI2to3IntHandler + $d 0x000072c0 0 .text.EXI2to3IntHandler + $d 0x000072c4 0 .text.EXI4to9IntHandler + $t 0x000072c4 0 .text.EXI4to9IntHandler + $d 0x000072e0 0 .text.EXI4to9IntHandler + $d 0x000072e4 0 .text.EXI10to15IntHandler + $t 0x000072e4 0 .text.EXI10to15IntHandler + $d 0x0000734c 0 .text.EXI10to15IntHandler + $d 0x00007350 0 .text.LPTIntHandler + $t 0x00007350 0 .text.LPTIntHandler + $d 0x00007380 0 .text.LPTIntHandler + $d 0x00007384 0 .text.BT0IntHandler + $t 0x00007384 0 .text.BT0IntHandler + $d 0x000073cc 0 .text.BT0IntHandler + $d 0x000073d0 0 .text.BT1IntHandler + $t 0x000073d0 0 .text.BT1IntHandler + $d 0x00007438 0 .text.BT1IntHandler + $d 0x00007440 0 .text.PriviledgeVioHandler + $t 0x00007440 0 .text.PriviledgeVioHandler + $d 0x00007442 0 .text.PendTrapHandler + $t 0x00007442 0 .text.PendTrapHandler + $d 0x0000744a 0 .text.Trap3Handler + $t 0x0000744a 0 .text.Trap3Handler + $d 0x00007452 0 .text.Trap2Handler + $t 0x00007452 0 .text.Trap2Handler + $d 0x0000745a 0 .text.Trap1Handler + $t 0x0000745a 0 .text.Trap1Handler + $d 0x00007462 0 .text.Trap0Handler + $t 0x00007462 0 .text.Trap0Handler + $d 0x0000746a 0 .text.UnrecExecpHandler + $t 0x0000746a 0 .text.UnrecExecpHandler + $d 0x00007472 0 .text.BreakPointHandler + $t 0x00007472 0 .text.BreakPointHandler + $d 0x0000747a 0 .text.AccessErrHandler + $t 0x0000747a 0 .text.AccessErrHandler + $d 0x00007482 0 .text.IllegalInstrHandler + $t 0x00007482 0 .text.IllegalInstrHandler + $d 0x0000748a 0 .text.MisalignedHandler + $t 0x0000748a 0 .text.MisalignedHandler + $d 0x00007492 0 .text.CNTAIntHandler + $t 0x00007492 0 .text.CNTAIntHandler + $d 0x0000749a 0 .text.I2CIntHandler + $t 0x0000749a 0 .text.I2CIntHandler + $d 0x000074a4 0 .text.__divsi3 + $t 0x000074a4 0 .text.__divsi3 + $d 0x000074c4 0 .text.__divsi3 + $d 0x000074c8 0 .text.__udivsi3 + $t 0x000074c8 0 .text.__udivsi3 + $d 0x000074e8 0 .text.__udivsi3 + $d 0x000074ec 0 .text.__modsi3 + $t 0x000074ec 0 .text.__modsi3 + $d 0x0000750c 0 .text.__modsi3 + $d 0x00007510 0 .text.__umodsi3 + $t 0x00007510 0 .text.__umodsi3 + $d 0x00007530 0 .text.__umodsi3 + $d 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00007540 0 .text.UARTx_Init + $t 0x00007540 0 .text.UARTx_Init + $d 0x00007694 0 .text.UARTx_Init + $d 0x000076c8 0 .text.UART0_RecvINT_Processing + $t 0x000076c8 0 .text.UART0_RecvINT_Processing + $d 0x000076f0 0 .text.UART0_RecvINT_Processing + $d 0x000076fc 0 .text.UART0_TASK + $t 0x000076fc 0 .text.UART0_TASK + $d 0x0000774c 0 .text.UART0_TASK + $d 0x0000775c 0 .text.UART1_RecvINT_Processing + $t 0x0000775c 0 .text.UART1_RecvINT_Processing + $d 0x00007784 0 .text.UART1_RecvINT_Processing + $d 0x00007790 0 .text.UART2_RecvINT_Processing + $t 0x00007790 0 .text.UART2_RecvINT_Processing + $d 0x000077b8 0 .text.UART2_RecvINT_Processing + $d 0x000077c4 0 .text.MCU485_SendData + $t 0x000077c4 0 .text.MCU485_SendData + $d 0x00007848 0 .text.MCU485_SendData + $d 0x00007854 0 .text.BUS485_Send + $t 0x00007854 0 .text.BUS485_Send + $d 0x00007900 0 .text.BUS485_Send + $d 0x00007918 0 .text.Set_GroupSend + $t 0x00007918 0 .text.Set_GroupSend + $d 0x00007974 0 .text.Set_GroupSend + $d 0x0000797c 0 .text.Clear_SendFlag + $t 0x0000797c 0 .text.Clear_SendFlag + $d 0x00007988 0 .text.Clear_SendFlag + $d 0x0000798c 0 .text.BUS485_Jump_Boot + $t 0x0000798c 0 .text.BUS485_Jump_Boot + $d 0x00007994 0 .text.BUS485_Jump_Boot + $d 0x00007998 0 .text.BusIdle_Task + $t 0x00007998 0 .text.BusIdle_Task + $d 0x000079d0 0 .text.BusIdle_Task + $d 0x000079d8 0 .text.BusBusy_Task + $t 0x000079d8 0 .text.BusBusy_Task + $d 0x00007a28 0 .text.BusBusy_Task + $d 0x00007a34 0 .text.Dbg_Println + $t 0x00007a34 0 .text.Dbg_Println + $d 0x00007aa4 0 .text.Dbg_Println + $d 0x00007ab4 0 .text.MultSend_Task + $t 0x00007ab4 0 .text.MultSend_Task + $d 0x00007b40 0 .text.MultSend_Task + $d 0x00007b54 0 .text.BUS485Send_Task + $t 0x00007b54 0 .text.BUS485Send_Task + $d 0x00007ba0 0 .text.BUS485Send_Task + $d 0x00007bbc 0 .text.Dbg_Print_Buff + $t 0x00007bbc 0 .text.Dbg_Print_Buff + $d 0x00007c2c 0 .text.Dbg_Print_Buff + $d 0x00007c40 0 .text.UART1_TASK + $t 0x00007c40 0 .text.UART1_TASK + $d 0x00007cb4 0 .text.UART1_TASK + $d 0x00007ccc 0 .text.UART2_TASK + $t 0x00007ccc 0 .text.UART2_TASK + $d 0x00007d4c 0 .text.UART2_TASK + $d 0x00007d68 0 .text.Dbg_BT_Println + $t 0x00007d68 0 .text.Dbg_BT_Println + $d 0x00007dbc 0 .text.Dbg_BT_Println + $d 0x00007dc8 0 .text.DIP_GetSwitchState + $t 0x00007dc8 0 .text.DIP_GetSwitchState + $d 0x00007df8 0 .text.DIP_GetSwitchState + $d 0x00007dfc 0 .text.DIP_Switch_Init + $t 0x00007dfc 0 .text.DIP_Switch_Init + $d 0x00007e84 0 .text.DIP_Switch_Init + $d 0x00007e90 0 .text.DIP_ScanTask + $t 0x00007e90 0 .text.DIP_ScanTask + $d 0x00007f18 0 .text.DIP_ScanTask + $d 0x00007f28 0 .text.EEPROM_CheckSum + $t 0x00007f28 0 .text.EEPROM_CheckSum + $d 0x00007f40 0 .text.EEOROM_ENERGY_ReadSet + $t 0x00007f40 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008058 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008090 0 .text.EEOROM_ENERGY_WriteSet + $t 0x00008090 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080d0 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080d4 0 .text.EEPROM_ENERGY_Validate + $t 0x000080d4 0 .text.EEPROM_ENERGY_Validate + $d 0x000081f8 0 .text.EEPROM_ENERGY_Validate + $d 0x00008220 0 .text.EEPROM_Default_ENERGY + $t 0x00008220 0 .text.EEPROM_Default_ENERGY + $d 0x00008308 0 .text.EEPROM_Default_ENERGY + $d 0x0000834c 0 .text.EEPROM_ReadTotalEng + $t 0x0000834c 0 .text.EEPROM_ReadTotalEng + $d 0x000083f0 0 .text.EEPROM_ReadTotalEng + $d 0x00008404 0 .text.EEPROM_WriteTotalEng + $t 0x00008404 0 .text.EEPROM_WriteTotalEng + $d 0x000084a4 0 .text.EEPROM_WriteTotalEng + $d 0x000084b0 0 .text.EEPROM_ReadMCUDevInfo + $t 0x000084b0 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008564 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008584 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00008584 0 .text.EEPROM_WriteMCUDevInfo + $d 0x000085c4 0 .text.EEPROM_Default_MCUDevInfo + $t 0x000085c4 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000085f8 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000085fc 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x000085fc 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008650 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008654 0 .text.EEPROM_Init + $t 0x00008654 0 .text.EEPROM_Init + $d 0x00008740 0 .text.EEPROM_Init + BT_Uart_Packing.part.3 0x00008784 F 60 .text.BT_Uart_Packing.part.3 + $d 0x00008784 0 .text.BT_Uart_Packing.part.3 + $t 0x00008784 0 .text.BT_Uart_Packing.part.3 + $d 0x000087b8 0 .text.BT_Uart_Packing.part.3 + $d 0x000087c0 0 .text.BLV_DetEnergy_Init + $t 0x000087c0 0 .text.BLV_DetEnergy_Init + $d 0x000087e4 0 .text.BLV_DetEnergy_Init + $d 0x000087f0 0 .text.BLV_DetEnergy_Default + $t 0x000087f0 0 .text.BLV_DetEnergy_Default + $d 0x00008898 0 .text.BLV_DetEnergy_Default + $d 0x000088a8 0 .text.HLW8110_CheckSum + $t 0x000088a8 0 .text.HLW8110_CheckSum + $d 0x000088c0 0 .text.HLW8110_WriteREG_EN + $t 0x000088c0 0 .text.HLW8110_WriteREG_EN + $d 0x0000890c 0 .text.HLW8110_WriteREG_EN + $d 0x00008914 0 .text.HLW8110_WriteREG_DIS + $t 0x00008914 0 .text.HLW8110_WriteREG_DIS + $d 0x00008960 0 .text.HLW8110_WriteREG_DIS + $d 0x00008968 0 .text.HLW8110_Reset + $t 0x00008968 0 .text.HLW8110_Reset + $d 0x000089b0 0 .text.HLW8110_Reset + $d 0x000089b8 0 .text.BLV_HLW8110_RWCMD_Packaging + $t 0x000089b8 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a40 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a44 0 .text.HLW8110_RWCMD_Send + $t 0x00008a44 0 .text.HLW8110_RWCMD_Send + $d 0x00008aa4 0 .text.HLW8110_RWCMD_Send + $d 0x00008ab8 0 .text.HLW8110_CleanSdFlag + $t 0x00008ab8 0 .text.HLW8110_CleanSdFlag + $d 0x00008ac4 0 .text.HLW8110_CleanSdFlag + $d 0x00008ac8 0 .text.Get_RevState + $t 0x00008ac8 0 .text.Get_RevState + $d 0x00008adc 0 .text.Get_RevState + $d 0x00008ae0 0 .text.Get_SendState + $t 0x00008ae0 0 .text.Get_SendState + $d 0x00008af8 0 .text.Get_SendState + $d 0x00008afc 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008afc 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008b0e 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008b20 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008cc8 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008ce0 0 .text.HLW8110_Convert_CurrentRegA_Value + $t 0x00008ce0 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d58 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d6c 0 .text.HLW8110_Convert_VoltageReg_Value + $t 0x00008d6c 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008dd4 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008de8 0 .text.HLW8110_Convert_PowerReg_Value + $t 0x00008de8 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e58 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e64 0 .text.HLW8110_Convert_EnergyReg_Value + $t 0x00008e64 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008ee0 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008eec 0 .text.HLW8110_RecvData_Processing + $t 0x00008eec 0 .text.HLW8110_RecvData_Processing + $d 0x00009120 0 .text.HLW8110_RecvData_Processing + $d 0x00009148 0 .text.HLW8110_SysPara_Check + $t 0x00009148 0 .text.HLW8110_SysPara_Check + $d 0x00009170 0 .text.HLW8110_ReadSysPara + $t 0x00009170 0 .text.HLW8110_ReadSysPara + $d 0x00009180 0 .text.HLW8110_ReadSysPara + $t 0x0000918c 0 .text.HLW8110_ReadSysPara + $d 0x00009380 0 .text.HLW8110_ReadSysPara + $d 0x000093c4 0 .text.HLW8110_ReadSysCtrlPara + $t 0x000093c4 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009470 0 .text.HLW8110_ReadSysCtrlPara + $d 0x0000948c 0 .text.GetEnergy_Para + $t 0x0000948c 0 .text.GetEnergy_Para + $d 0x000094d4 0 .text.GetEnergy_Para + $d 0x000094f0 0 .text.HLW8110_ReadValue + $t 0x000094f0 0 .text.HLW8110_ReadValue + $d 0x000094fe 0 .text.HLW8110_ReadValue + $t 0x00009504 0 .text.HLW8110_ReadValue + $d 0x00009620 0 .text.HLW8110_ReadValue + $d 0x00009648 0 .text.BLV_HLW8110_Tack + $t 0x00009648 0 .text.BLV_HLW8110_Tack + $d 0x00009656 0 .text.BLV_HLW8110_Tack + $t 0x0000965a 0 .text.BLV_HLW8110_Tack + $d 0x0000967c 0 .text.BLV_HLW8110_Tack + $d 0x00009688 0 .text.BT_Uart_Packing + $t 0x00009688 0 .text.BT_Uart_Packing + $d 0x00009694 0 .text.BT_UART_Print + $t 0x00009694 0 .text.BT_UART_Print + $d 0x000096cc 0 .text.BT_UART_Print + $t 0x000096d4 0 .text.BT_UART_Print + $d 0x0000976c 0 .text.BT_UART_Print + $d 0x00009798 0 .text.BLV_Energy_ActiveRep_Packing + $t 0x00009798 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x00009878 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x00009884 0 .text.BLV_ElectricPara_Processing + $t 0x00009884 0 .text.BLV_ElectricPara_Processing + $d 0x0000990c 0 .text.BLV_ElectricPara_Processing + $d 0x00009934 0 .text.BLV_EngDetect_Tack + $t 0x00009934 0 .text.BLV_EngDetect_Tack + $d 0x00009948 0 .text.BLV_Energy_PassiveRep_Packing + $t 0x00009948 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009a2c 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009a34 0 .text.BLV_Energy_SetTime_Packing + $t 0x00009a34 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009ac8 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009ad4 0 .text.BLV_Energy_QueryVersion_Packing + $t 0x00009ad4 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b64 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b6c 0 .text.SetCalibFactor_Switch + $t 0x00009b6c 0 .text.SetCalibFactor_Switch + $d 0x00009b78 0 .text.SetCalibFactor_Switch + $t 0x00009b7e 0 .text.SetCalibFactor_Switch + $d 0x00009b98 0 .text.SetCalibFactor_Switch + $d 0x00009b9c 0 .text.BLV_Energy_SetCalibFactor + $t 0x00009b9c 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009c1c 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009c20 0 .text.BLV_Energy_SetCalibFactor_2 + $t 0x00009c20 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009c98 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009c9c 0 .text.HLW_485Recv_Processing + $t 0x00009c9c 0 .text.HLW_485Recv_Processing + $d 0x00009dcc 0 .text.HLW_485Recv_Processing + $d 0x00009dfc 0 .text.BT_Recv_Processing + $t 0x00009dfc 0 .text.BT_Recv_Processing + $d 0x00009ef0 0 .text.BT_Recv_Processing + $d 0x00009f14 0 .text.Boot_Function_Init + $t 0x00009f14 0 .text.Boot_Function_Init + $d 0x00009fa4 0 .text.Boot_Function_Init + $d 0x00009fd4 0 .text.Boot_Comm_CheckSum + $t 0x00009fd4 0 .text.Boot_Comm_CheckSum + $d 0x00009ff4 0 .text.Boot_Comm_CheckSum + $d 0x00009ff8 0 .text.Boot_Comm_FillReplyPack + $t 0x00009ff8 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a058 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a064 0 .text.Boot_Time_Refresh + $t 0x0000a064 0 .text.Boot_Time_Refresh + $d 0x0000a070 0 .text.Boot_Time_Refresh + $d 0x0000a078 0 .text.Boot_Comm_UpgradeProcess + $t 0x0000a078 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a258 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a294 0 .text.TK_Sampling_prog + $t 0x0000a294 0 .text.TK_Sampling_prog + $d 0x0000a2dc 0 .text.TK_Sampling_prog + $d 0x0000a2ec 0 .text.TKEYIntHandler + $t 0x0000a2ec 0 .text.TKEYIntHandler + $d 0x0000a368 0 .text.TKEYIntHandler + $d 0x0000a374 0 .text.get_key_number + $t 0x0000a374 0 .text.get_key_number + $d 0x0000a398 0 .text.get_key_number + $d 0x0000a39c 0 .text.TK_Scan_Start + $t 0x0000a39c 0 .text.TK_Scan_Start + $d 0x0000a3b4 0 .text.TK_Scan_Start + $d 0x0000a3bc 0 .text.TK_Keymap_prog + $t 0x0000a3bc 0 .text.TK_Keymap_prog + $d 0x0000a504 0 .text.TK_Keymap_prog + $d 0x0000a53c 0 .text.TK_overflow_predict + $t 0x0000a53c 0 .text.TK_overflow_predict + $d 0x0000a624 0 .text.TK_overflow_predict + $d 0x0000a658 0 .text.TK_Baseline_tracking + $t 0x0000a658 0 .text.TK_Baseline_tracking + $d 0x0000a7fc 0 .text.TK_Baseline_tracking + $d 0x0000a828 0 .text.TK_result_prog + $t 0x0000a828 0 .text.TK_result_prog + $d 0x0000a868 0 .text.TK_result_prog + $d 0x0000a87c 0 .text.CORETHandler + $t 0x0000a87c 0 .text.CORETHandler + $d 0x0000a8dc 0 .text.CORETHandler + $d 0x0000a8f4 0 .text.std_clk_calib + $t 0x0000a8f4 0 .text.std_clk_calib + $d 0x0000ab3c 0 .text.std_clk_calib + __func__.6746 0x0000ab78 O 23 .rodata + bp 0x0000ab90 O 16 .rodata + dp_l 0x0000aba0 O 16 .rodata + dp_h 0x0000abb0 O 16 .rodata + blanks.1847 0x0000ace4 O 16 .rodata + zeroes.1848 0x0000acf4 O 16 .rodata + CSWTCH.1 0x0000ad04 O 576 .rodata + NUM.6261 0x200000bc O 1 .bss + update_20ms.6167 0x20000168 O 4 .bss + HLW8110_Sned_Tisk.6549 0x2000016c O 4 .bss + HLW8110_Reset_Tack.6607 0x20000170 O 4 .bss + Wait_ReadValue_Tisk.6632 0x20000174 O 4 .bss + BT_State.6666 0x20000178 O 4 .bss + BT_WaitOutTim.6667 0x2000017c O 4 .bss + Eng_Save_Tim.6655 0x20000180 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00002800 0 .text + __start 0x0000290c 0 .text + __exit 0x00002960 0 .text + __fail 0x00002976 0 .text + DummyHandler 0x00002984 0 .text + __GI_pow 0x000029b4 F 2474 .text + pow 0x000029b4 F 2474 .text + __GI_fabs 0x0000335e F 6 .text + fabs 0x0000335e F 6 .text + __GI_scalbn 0x00003364 F 32 .text + scalbn 0x00003364 F 32 .text + __GI_sqrt 0x00003384 F 376 .text + sqrt 0x00003384 F 376 .text + ___gnu_csky_case_uqi 0x000034fc F 20 .text + ___gnu_csky_case_uhi 0x00003510 F 26 .text + __fixunssfsi 0x0000352c F 46 .text + __fixunsdfsi 0x0000355c F 56 .text + __addsf3 0x000036e0 F 42 .text + __subsf3 0x0000370c F 50 .text + __mulsf3 0x00003740 F 280 .text + __divsf3 0x00003858 F 188 .text + __nesf2 0x00003914 F 54 .text + __gesf2 0x0000394c F 56 .text + __floatsisf 0x00003984 F 100 .text + __fixsfsi 0x000039e8 F 84 .text + __extendsfdf2 0x00003a3c F 36 .text + __adddf3 0x00003d34 F 46 .text + __subdf3 0x00003d64 F 54 .text + __muldf3 0x00003d9c F 564 .text + __divdf3 0x00003fd0 F 340 .text + __gtdf2 0x00004124 F 60 .text + __gedf2 0x00004160 F 60 .text + __ledf2 0x0000419c F 58 .text + __floatsidf 0x000041d8 F 112 .text + __fixdfsi 0x00004248 F 112 .text + __make_dp 0x000042b8 F 40 .text + __truncdfsf2 0x000042e0 F 48 .text + __floatunsidf 0x00004310 F 84 .text + __muldi3 0x00004364 F 68 .text + __clzsi2 0x000043a8 F 64 .text + __pack_f 0x000043e8 F 184 .text + __unpack_f 0x000044a0 F 132 .text + __fpcmp_parts_f 0x00004524 F 120 .text + __make_fp 0x0000459c F 22 .text + __pack_d 0x000045b4 F 412 .text + __unpack_d 0x00004750 F 196 .text + __fpcmp_parts_d 0x00004814 F 140 .text + __cskyvprintfsnprintf 0x000048a0 F 32 .text + __cskyvprintfvsnprintf 0x000048fe F 90 .text + __memset_fast 0x00004958 w F 136 .text + memset 0x00004958 w F 136 .text + __memcpy_fast 0x000049e0 w F 100 .text + memcpy 0x000049e0 w F 100 .text + __GI_strncmp 0x00004a44 F 38 .text + strncmp 0x00004a44 w F 38 .text + __v2_printf 0x00004aa0 F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00004aa0 F 1828 .text + __udivdi3 0x000051c4 F 940 .text + __umoddi3 0x00005570 F 928 .text + __GI___dtostr 0x00005936 F 826 .text + __dtostr 0x00005936 F 826 .text + __isnan 0x00005c70 F 44 .text + __strlen_fast 0x00005c9c w F 82 .text + strlen 0x00005c9c w F 82 .text + __strcpy_fast 0x00005cf0 w F 176 .text + strcpy 0x00005cf0 w F 176 .text + __GI_strchr 0x00005da0 F 18 .text + strchr 0x00005da0 w F 18 .text + __GI_strerror 0x00005db4 F 28 .text + strerror 0x00005db4 F 28 .text + __isinf 0x00005dd0 F 48 .text + __eqdf2 0x00005e00 F 58 .text + __ltdf2 0x00005e3c F 58 .text + __main 0x00005e78 F 56 .text.__main + SYSCON_RST_VALUE 0x00005f24 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00005f70 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00005fa0 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00006028 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00006050 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x0000608c F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x000060a0 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x000060b8 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x000060d8 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x000060f4 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00006110 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00006150 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00006184 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00006188 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00006198 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x000061a4 F 12 .text.SYSCON_Int_Disable + SYSCON_Software_Reset 0x000061b0 F 20 .text.SYSCON_Software_Reset + SYSCON_INT_Priority 0x000061c4 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000061e8 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x00006218 F 100 .text.GPIO_DeInit + GPIO_Init 0x0000627c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000635c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00006370 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00006380 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x0000648c F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x00006588 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00006590 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00006598 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000065ae F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000065c0 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000065d4 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000065e4 F 28 .text.BT_DeInit + BT_Start 0x00006600 F 8 .text.BT_Start + BT_Soft_Reset 0x00006608 F 10 .text.BT_Soft_Reset + BT_Configure 0x00006612 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000662a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00006656 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x0000665c F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00006670 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00006680 F 24 .text.UART0_DeInit + UART1_DeInit 0x00006698 F 24 .text.UART1_DeInit + UART2_DeInit 0x000066b0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000066c8 F 28 .text.UART0_Int_Enable + UART1_Int_Enable 0x000066e4 F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00006700 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000671c F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00006808 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00006818 F 30 .text.UARTTransmit + EPT_Stop 0x00006838 F 40 .text.EPT_Stop + Page_ProgramData 0x00006860 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00006900 F 42 .text.ReadDataArry_U8 + main 0x0000692c F 68 .text.startup.main + delay_nms 0x00006970 F 44 .text.delay_nms + delay_nus 0x0000699c F 34 .text.delay_nus + BT_CONFIG 0x000069c0 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00006a20 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00006a84 F 120 .text.APT32F102_init + SYSCONIntHandler 0x00006afc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00006bec F 104 .text.IFCIntHandler + ADCIntHandler 0x00006c54 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00006cbc F 428 .text.EPT0IntHandler + WWDTHandler 0x00006e68 F 52 .text.WWDTHandler + GPT0IntHandler 0x00006e9c F 128 .text.GPT0IntHandler + RTCIntHandler 0x00006f1c F 112 .text.RTCIntHandler + UART0IntHandler 0x00006f8c F 96 .text.UART0IntHandler + UART1IntHandler 0x00006fec F 148 .text.UART1IntHandler + UART2IntHandler 0x00007080 F 96 .text.UART2IntHandler + SPI0IntHandler 0x000070e0 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000071c8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x0000721c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x0000724c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x0000727c F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000072c4 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x000072e4 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x00007350 F 52 .text.LPTIntHandler + BT0IntHandler 0x00007384 F 76 .text.BT0IntHandler + BT1IntHandler 0x000073d0 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00007440 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00007442 F 8 .text.PendTrapHandler + Trap3Handler 0x0000744a F 8 .text.Trap3Handler + Trap2Handler 0x00007452 F 8 .text.Trap2Handler + Trap1Handler 0x0000745a F 8 .text.Trap1Handler + Trap0Handler 0x00007462 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000746a F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00007472 F 8 .text.BreakPointHandler + AccessErrHandler 0x0000747a F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00007482 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x0000748a F 8 .text.MisalignedHandler + CNTAIntHandler 0x00007492 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000749a F 8 .text.I2CIntHandler + __divsi3 0x000074a4 F 36 .text.__divsi3 + __udivsi3 0x000074c8 F 36 .text.__udivsi3 + __modsi3 0x000074ec F 36 .text.__modsi3 + __umodsi3 0x00007510 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00007534 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000753a F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00007540 F 392 .text.UARTx_Init + UART0_RecvINT_Processing 0x000076c8 F 52 .text.UART0_RecvINT_Processing + UART0_TASK 0x000076fc F 96 .text.UART0_TASK + UART1_RecvINT_Processing 0x0000775c F 52 .text.UART1_RecvINT_Processing + UART2_RecvINT_Processing 0x00007790 F 52 .text.UART2_RecvINT_Processing + MCU485_SendData 0x000077c4 F 144 .text.MCU485_SendData + BUS485_Send 0x00007854 F 196 .text.BUS485_Send + Set_GroupSend 0x00007918 F 100 .text.Set_GroupSend + Clear_SendFlag 0x0000797c F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x0000798c F 12 .text.BUS485_Jump_Boot + BusIdle_Task 0x00007998 F 64 .text.BusIdle_Task + BusBusy_Task 0x000079d8 F 92 .text.BusBusy_Task + Dbg_Println 0x00007a34 F 128 .text.Dbg_Println + MultSend_Task 0x00007ab4 F 160 .text.MultSend_Task + BUS485Send_Task 0x00007b54 F 104 .text.BUS485Send_Task + Dbg_Print_Buff 0x00007bbc F 132 .text.Dbg_Print_Buff + UART1_TASK 0x00007c40 F 140 .text.UART1_TASK + UART2_TASK 0x00007ccc F 156 .text.UART2_TASK + Dbg_BT_Println 0x00007d68 F 96 .text.Dbg_BT_Println + DIP_GetSwitchState 0x00007dc8 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x00007dfc F 148 .text.DIP_Switch_Init + DIP_ScanTask 0x00007e90 F 152 .text.DIP_ScanTask + EEPROM_CheckSum 0x00007f28 F 22 .text.EEPROM_CheckSum + EEOROM_ENERGY_ReadSet 0x00007f40 F 336 .text.EEOROM_ENERGY_ReadSet + EEOROM_ENERGY_WriteSet 0x00008090 F 68 .text.EEOROM_ENERGY_WriteSet + EEPROM_ENERGY_Validate 0x000080d4 F 332 .text.EEPROM_ENERGY_Validate + EEPROM_Default_ENERGY 0x00008220 F 300 .text.EEPROM_Default_ENERGY + EEPROM_ReadTotalEng 0x0000834c F 184 .text.EEPROM_ReadTotalEng + EEPROM_WriteTotalEng 0x00008404 F 172 .text.EEPROM_WriteTotalEng + EEPROM_ReadMCUDevInfo 0x000084b0 F 212 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00008584 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x000085c4 F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x000085fc F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00008654 F 304 .text.EEPROM_Init + BLV_DetEnergy_Init 0x000087c0 F 48 .text.BLV_DetEnergy_Init + BLV_DetEnergy_Default 0x000087f0 F 184 .text.BLV_DetEnergy_Default + HLW8110_CheckSum 0x000088a8 F 24 .text.HLW8110_CheckSum + HLW8110_WriteREG_EN 0x000088c0 F 84 .text.HLW8110_WriteREG_EN + HLW8110_WriteREG_DIS 0x00008914 F 84 .text.HLW8110_WriteREG_DIS + HLW8110_Reset 0x00008968 F 80 .text.HLW8110_Reset + BLV_HLW8110_RWCMD_Packaging 0x000089b8 F 140 .text.BLV_HLW8110_RWCMD_Packaging + HLW8110_RWCMD_Send 0x00008a44 F 116 .text.HLW8110_RWCMD_Send + HLW8110_CleanSdFlag 0x00008ab8 F 16 .text.HLW8110_CleanSdFlag + Get_RevState 0x00008ac8 F 24 .text.Get_RevState + Get_SendState 0x00008ae0 F 28 .text.Get_SendState + BLV_HLW8110_SendData_Tack 0x00008afc F 484 .text.BLV_HLW8110_SendData_Tack + HLW8110_Convert_CurrentRegA_Value 0x00008ce0 F 140 .text.HLW8110_Convert_CurrentRegA_Value + HLW8110_Convert_VoltageReg_Value 0x00008d6c F 124 .text.HLW8110_Convert_VoltageReg_Value + HLW8110_Convert_PowerReg_Value 0x00008de8 F 124 .text.HLW8110_Convert_PowerReg_Value + HLW8110_Convert_EnergyReg_Value 0x00008e64 F 136 .text.HLW8110_Convert_EnergyReg_Value + HLW8110_RecvData_Processing 0x00008eec F 604 .text.HLW8110_RecvData_Processing + HLW8110_SysPara_Check 0x00009148 F 38 .text.HLW8110_SysPara_Check + HLW8110_ReadSysPara 0x00009170 F 596 .text.HLW8110_ReadSysPara + HLW8110_ReadSysCtrlPara 0x000093c4 F 200 .text.HLW8110_ReadSysCtrlPara + GetEnergy_Para 0x0000948c F 100 .text.GetEnergy_Para + HLW8110_ReadValue 0x000094f0 F 344 .text.HLW8110_ReadValue + BLV_HLW8110_Tack 0x00009648 F 64 .text.BLV_HLW8110_Tack + BT_Uart_Packing 0x00009688 F 12 .text.BT_Uart_Packing + BT_UART_Print 0x00009694 F 260 .text.BT_UART_Print + BLV_Energy_ActiveRep_Packing 0x00009798 F 236 .text.BLV_Energy_ActiveRep_Packing + BLV_ElectricPara_Processing 0x00009884 F 176 .text.BLV_ElectricPara_Processing + BLV_EngDetect_Tack 0x00009934 F 20 .text.BLV_EngDetect_Tack + BLV_Energy_PassiveRep_Packing 0x00009948 F 236 .text.BLV_Energy_PassiveRep_Packing + BLV_Energy_SetTime_Packing 0x00009a34 F 160 .text.BLV_Energy_SetTime_Packing + BLV_Energy_QueryVersion_Packing 0x00009ad4 F 152 .text.BLV_Energy_QueryVersion_Packing + SetCalibFactor_Switch 0x00009b6c F 48 .text.SetCalibFactor_Switch + BLV_Energy_SetCalibFactor 0x00009b9c F 132 .text.BLV_Energy_SetCalibFactor + BLV_Energy_SetCalibFactor_2 0x00009c20 F 124 .text.BLV_Energy_SetCalibFactor_2 + HLW_485Recv_Processing 0x00009c9c F 352 .text.HLW_485Recv_Processing + BT_Recv_Processing 0x00009dfc F 280 .text.BT_Recv_Processing + Boot_Function_Init 0x00009f14 F 192 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x00009fd4 F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x00009ff8 F 108 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x0000a064 F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x0000a078 F 540 .text.Boot_Comm_UpgradeProcess + TK_Sampling_prog 0x0000a294 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x0000a2ec F 136 .text.TKEYIntHandler + get_key_number 0x0000a374 F 40 .text.get_key_number + TK_Scan_Start 0x0000a39c F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x0000a3bc F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000a53c F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000a658 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x0000a828 F 84 .text.TK_result_prog + CORETHandler 0x0000a87c F 120 .text.CORETHandler + std_clk_calib 0x0000a8f4 F 644 .text.std_clk_calib + __thenan_sf 0x0000abc0 O 16 .rodata + __thenan_df 0x0000abd0 O 20 .rodata + __clz_tab 0x0000abe4 O 256 .rodata + _end_rodata 0x0000c250 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + Project_Boot_Support 0x2000009c O 32 .textcsky.VinFlash + _bss_start 0x200000bc 0 .bss + SysTick_100us 0x200000c0 O 4 .bss + SysTick_1ms 0x200000c4 O 4 .bss + RS485_Comming 0x200000c8 O 4 .bss + RS485_Comm_Flag 0x200000cc O 4 .bss + RS485_Comm_Start 0x200000d0 O 4 .bss + RS485_Comm_End 0x200000d4 O 4 .bss + Dbg_Switch 0x200000d8 O 4 .bss + SysTick_Now 0x200000dc O 4 .bss + SysTick_Last 0x200000e0 O 4 .bss + SysTick_Diff 0x200000e4 O 4 .bss + Dbg_Buffer 0x200000e8 O 128 .bss + Press_debounce_data 0x20000184 O 1 .bss + TK_Lowpower_mode 0x20000185 O 1 .bss + TK_Lowpower_level 0x20000186 O 1 .bss + TK_longpress_time 0x20000188 O 4 .bss + Release_debounce_data 0x2000018c O 1 .bss + Key_mode 0x2000018d O 1 .bss + TK_icon 0x2000018e O 34 .bss + MultiTimes_Filter 0x200001b0 O 1 .bss + Base_Speed 0x200001b1 O 1 .bss + TK_IO_ENABLE 0x200001b4 O 4 .bss + Valid_Key_Num 0x200001b8 O 1 .bss + TK_senprd 0x200001ba O 34 .bss + TK_Wakeup_level 0x200001dc O 1 .bss + TK_Triggerlevel 0x200001de O 34 .bss + TK_EC_LEVEL 0x20000200 O 2 .bss + TK_FVR_LEVEL 0x20000202 O 2 .bss + TK_BaseCnt 0x20000204 O 4 .bss + TK_PSEL_MODE 0x20000208 O 2 .bss + R_CMPB_BUF 0x2000020c O 4 .bss + R_CMPA_BUF 0x20000210 O 4 .bss + R_SIORX_buf 0x20000214 O 40 .bss + g_uart 0x2000023c O 148 .bss + g_uart0 0x200002d0 O 148 .bss + g_uart1 0x20000364 O 148 .bss + m_send 0x200003f8 O 136 .bss + g_Dip 0x20000480 O 20 .bss + e_save 0x20000494 O 44 .bss + g_mcu_dev 0x200004c0 O 37 .bss + eng_info 0x200004e8 O 12 .bss + u_det 0x200004f4 O 72 .bss + g_CalFactor 0x2000053c O 60 .bss + g_Eng 0x20000578 O 120 .bss + g_boot 0x200005f0 O 316 .bss + g_app_feature 0x2000072c O 256 .bss + baseline_data0 0x2000082c O 34 .bss + TK_Postive_build2 0x2000084e O 17 .bss + Key_Map1 0x20000860 O 4 .bss + offset_data2_abs 0x20000864 O 34 .bss + scan_f 0x20000886 O 1 .bss + offset_data1_abs 0x20000888 O 34 .bss + Release_debounce0 0x200008aa O 17 .bss + Key_Map0 0x200008bc O 4 .bss + bsae_over_f 0x200008c0 O 1 .bss + scan_cnt 0x200008c2 O 2 .bss + Press_debounce0 0x200008c4 O 17 .bss + offset_data0 0x200008d6 O 34 .bss + sampling_data1 0x200008f8 O 34 .bss + Key_Map2 0x2000091c O 4 .bss + Release_debounce1 0x20000920 O 17 .bss + tk_overflow_f 0x20000931 O 1 .bss + TK_Negtive_build2 0x20000932 O 17 .bss + base_update_f 0x20000943 O 1 .bss + TK_Postive_build1 0x20000944 O 17 .bss + time_cnt 0x20000958 O 4 .bss + lpt_scan_pend_cnt 0x2000095c O 2 .bss + TK_track_cnt 0x2000095e O 1 .bss + Key_Map 0x20000960 O 4 .bss + baseline_data1 0x20000964 O 34 .bss + TK_Postive_build0 0x20000986 O 17 .bss + sampling_data2 0x20000998 O 34 .bss + offset_data1 0x200009ba O 34 .bss + TK_ovrdect_cnt 0x200009dc O 1 .bss + Press_debounce2 0x200009dd O 17 .bss + TK_Negtive_build1 0x200009ee O 17 .bss + tk_num 0x200009ff O 1 .bss + TK_Negtive_build0 0x20000a00 O 17 .bss + Press_debounce1 0x20000a11 O 17 .bss + Release_debounce2 0x20000a22 O 17 .bss + r_Key_Map_Temp 0x20000a34 O 4 .bss + tk_seque 0x20000a38 O 17 .bss + scan_step 0x20000a49 O 1 .bss + baseline_data2 0x20000a4a O 34 .bss + tk_sampling_max 0x20000a6c O 34 .bss + offset_data0_abs 0x20000a8e O 34 .bss + offset_data2 0x20000ab0 O 34 .bss + sampling_data0 0x20000ad2 O 34 .bss + errno 0x20000af4 O 4 .bss + __malloc_lock 0x20000af8 O 4 .bss + _ebss 0x20000afc 0 .bss + _end 0x20000afc 0 .bss + end 0x20000afc 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000290c + + Region ROM (Base: 0x00002800, Size: 0x00009a50, Max: 0x0000d800) + + Base Addr Size Type Attr Idx Section Name Object + 0x00002800 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000029b4 0x000009aa Code RO 1068 .text pow.o + 0x0000335e 0x00000006 Code RO 1076 .text fabs.o + 0x00003364 0x00000020 Code RO 1082 .text scalbn.o + 0x00003384 0x00000178 Code RO 1089 .text sqrt.o + 0x000034fc 0x00000014 Code RO 1100 .text _csky_case_uqi.o + 0x00003510 0x0000001a Code RO 1105 .text _csky_case_uhi.o + 0x0000352a 0x00000002 PAD + 0x0000352c 0x0000002e Code RO 1110 .text _fixunssfsi.o + 0x0000355a 0x00000002 PAD + 0x0000355c 0x00000038 Code RO 1117 .text _fixunsdfsi.o + 0x00003594 0x000001aa Code RO 1124 .text _addsub_sf.o + 0x0000373e 0x00000002 PAD + 0x00003740 0x00000118 Code RO 1131 .text _mul_sf.o + 0x00003858 0x000000bc Code RO 1138 .text _div_sf.o + 0x00003914 0x00000036 Code RO 1145 .text _ne_sf.o + 0x0000394a 0x00000002 PAD + 0x0000394c 0x00000038 Code RO 1152 .text _ge_sf.o + 0x00003984 0x00000064 Code RO 1159 .text _si_to_sf.o + 0x000039e8 0x00000054 Code RO 1166 .text _sf_to_si.o + 0x00003a3c 0x00000024 Code RO 1173 .text _sf_to_df.o + 0x00003a60 0x0000033a Code RO 1187 .text _addsub_df.o + 0x00003d9a 0x00000002 PAD + 0x00003d9c 0x00000234 Code RO 1194 .text _mul_df.o + 0x00003fd0 0x00000154 Code RO 1201 .text _div_df.o + 0x00004124 0x0000003c Code RO 1208 .text _gt_df.o + 0x00004160 0x0000003c Code RO 1215 .text _ge_df.o + 0x0000419c 0x0000003a Code RO 1222 .text _le_df.o + 0x000041d6 0x00000002 PAD + 0x000041d8 0x00000070 Code RO 1229 .text _si_to_df.o + 0x00004248 0x00000070 Code RO 1236 .text _df_to_si.o + 0x000042b8 0x00000028 Code RO 1243 .text _make_df.o + 0x000042e0 0x00000030 Code RO 1250 .text _df_to_sf.o + 0x00004310 0x00000054 Code RO 1264 .text _usi_to_df.o + 0x00004364 0x00000044 Code RO 1271 .text _muldi3.o + 0x000043a8 0x00000040 Code RO 1278 .text _clzsi2.o + 0x000043e8 0x000000b8 Code RO 1284 .text _pack_sf.o + 0x000044a0 0x00000084 Code RO 1291 .text _unpack_sf.o + 0x00004524 0x00000078 Code RO 1298 .text _fpcmp_parts_sf.o + 0x0000459c 0x00000016 Code RO 1305 .text _make_sf.o + 0x000045b2 0x00000002 PAD + 0x000045b4 0x0000019c Code RO 1312 .text _pack_df.o + 0x00004750 0x000000c4 Code RO 1319 .text _unpack_df.o + 0x00004814 0x0000008c Code RO 1326 .text _fpcmp_parts_df.o + 0x000048a0 0x00000020 Code RO 1347 .text snprintf_required.o + 0x000048c0 0x00000098 Code RO 1354 .text vsnprintf_required.o + 0x00004958 0x00000088 Code RO 1361 .text memset_fast.o + 0x000049e0 0x00000064 Code RO 1366 .text memcpy_fast.o + 0x00004a44 0x00000026 Code RO 1372 .text strncmp.o + 0x00004a6a 0x00000002 PAD + 0x00004a6c 0x00000758 Code RO 1530 .text __v2_printfDFHLlMOPpSSsWp.o + 0x000051c4 0x000003ac Code RO 1589 .text _udivdi3.o + 0x00005570 0x000003a0 Code RO 1596 .text _umoddi3.o + 0x00005910 0x00000360 Code RO 1617 .text __dtostr.o + 0x00005c70 0x0000002c Code RO 1625 .text __isnan.o + 0x00005c9c 0x00000052 Code RO 1637 .text strlen_fast.o + 0x00005cee 0x00000002 PAD + 0x00005cf0 0x000000b0 Code RO 1642 .text strcpy_fast.o + 0x00005da0 0x00000012 Code RO 1647 .text strchr.o + 0x00005db2 0x00000002 PAD + 0x00005db4 0x0000001c Code RO 1652 .text strerror.o + 0x00005dd0 0x00000030 Code RO 1660 .text __isinf.o + 0x00005e00 0x0000003a Code RO 1666 .text _eq_df.o + 0x00005e3a 0x00000002 PAD + 0x00005e3c 0x0000003a Code RO 1673 .text _lt_df.o + 0x00005e78 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00005eb0 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00005f24 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00005f70 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00005fa0 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00006028 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00006050 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000608c 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x000060a0 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x000060b8 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x000060d8 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000060f4 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006110 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006150 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006184 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00006188 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006198 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000061a4 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x000061b0 0x00000014 Code RO 111 .text.SYSCON_Software_Reset Obj/FWlib_apt32f102_syscon.o + 0x000061c4 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000061e8 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00006218 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x0000627c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000635c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00006370 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00006380 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x0000648c 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00006588 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00006590 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00006598 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000065ae 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000065c0 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000065d4 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000065e4 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00006600 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00006608 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00006612 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000662a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00006656 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x0000665c 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00006670 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00006680 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00006698 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066b0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066c8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000066e4 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00006700 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000671c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00006808 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00006818 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00006838 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00006860 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00006900 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x0000692c 0x00000044 Code RO 690 .text.startup.main Obj/main.o + 0x00006970 0x0000002c Code RO 708 .text.delay_nms Obj/mcu_initial.o + 0x0000699c 0x00000022 Code RO 709 .text.delay_nus Obj/mcu_initial.o + 0x000069c0 0x00000060 Code RO 713 .text.BT_CONFIG Obj/mcu_initial.o + 0x00006a20 0x00000062 Code RO 719 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00006a84 0x00000078 Code RO 720 .text.APT32F102_init Obj/mcu_initial.o + 0x00006afc 0x000000f0 Code RO 736 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00006bec 0x00000068 Code RO 737 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00006c54 0x00000068 Code RO 738 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00006cbc 0x000001ac Code RO 739 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00006e68 0x00000034 Code RO 740 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00006e9c 0x00000080 Code RO 741 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00006f1c 0x00000070 Code RO 742 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00006f8c 0x00000060 Code RO 743 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00006fec 0x00000094 Code RO 744 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00007080 0x00000060 Code RO 745 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000070e0 0x000000e8 Code RO 746 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000071c8 0x00000054 Code RO 747 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x0000721c 0x00000030 Code RO 748 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x0000724c 0x00000030 Code RO 749 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x0000727c 0x00000048 Code RO 750 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000072c4 0x00000020 Code RO 751 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x000072e4 0x0000006c Code RO 752 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00007350 0x00000034 Code RO 753 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00007384 0x0000004c Code RO 754 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000073d0 0x00000070 Code RO 755 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00007440 0x00000002 Code RO 756 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00007442 0x00000008 Code RO 758 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000744a 0x00000008 Code RO 759 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00007452 0x00000008 Code RO 760 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000745a 0x00000008 Code RO 761 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00007462 0x00000008 Code RO 762 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000746a 0x00000008 Code RO 763 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00007472 0x00000008 Code RO 764 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x0000747a 0x00000008 Code RO 765 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00007482 0x00000008 Code RO 766 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x0000748a 0x00000008 Code RO 767 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00007492 0x00000008 Code RO 768 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000749a 0x00000008 Code RO 769 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000074a4 0x00000024 Code RO 786 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000074c8 0x00000024 Code RO 787 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000074ec 0x00000024 Code RO 788 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00007510 0x00000024 Code RO 789 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00007534 0x00000006 Code RO 807 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000753a 0x00000006 Code RO 808 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00007540 0x00000188 Code RO 822 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000076c8 0x00000034 Code RO 823 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000076fc 0x00000060 Code RO 824 .text.UART0_TASK Obj/SYSTEM_uart.o + 0x0000775c 0x00000034 Code RO 825 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00007790 0x00000034 Code RO 826 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000077c4 0x00000090 Code RO 828 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00007854 0x000000c4 Code RO 829 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00007918 0x00000064 Code RO 830 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000797c 0x00000010 Code RO 831 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000798c 0x0000000c Code RO 832 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00007998 0x00000040 Code RO 834 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000079d8 0x0000005c Code RO 835 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00007a34 0x00000080 Code RO 837 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00007ab4 0x000000a0 Code RO 838 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00007b54 0x00000068 Code RO 839 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00007bbc 0x00000084 Code RO 840 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00007c40 0x0000008c Code RO 841 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x00007ccc 0x0000009c Code RO 842 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00007d68 0x00000060 Code RO 843 .text.Dbg_BT_Println Obj/SYSTEM_uart.o + 0x00007dc8 0x00000034 Code RO 861 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x00007dfc 0x00000094 Code RO 862 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x00007e90 0x00000098 Code RO 863 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00007f28 0x00000016 Code RO 881 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00007f40 0x00000150 Code RO 882 .text.EEOROM_ENERGY_ReadSet Obj/SYSTEM_eeprom.o + 0x00008090 0x00000044 Code RO 883 .text.EEOROM_ENERGY_WriteSet Obj/SYSTEM_eeprom.o + 0x000080d4 0x0000014c Code RO 884 .text.EEPROM_ENERGY_Validate Obj/SYSTEM_eeprom.o + 0x00008220 0x0000012c Code RO 885 .text.EEPROM_Default_ENERGY Obj/SYSTEM_eeprom.o + 0x0000834c 0x000000b8 Code RO 886 .text.EEPROM_ReadTotalEng Obj/SYSTEM_eeprom.o + 0x00008404 0x000000ac Code RO 887 .text.EEPROM_WriteTotalEng Obj/SYSTEM_eeprom.o + 0x000084b0 0x000000d4 Code RO 891 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008584 0x00000040 Code RO 892 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085c4 0x00000038 Code RO 893 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085fc 0x00000058 Code RO 894 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008654 0x00000130 Code RO 895 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00008784 0x0000003c Code RO 913 .text.BT_Uart_Packing.part.3 Obj/SYSTEM_det_energy.o + 0x000087c0 0x00000030 Code RO 914 .text.BLV_DetEnergy_Init Obj/SYSTEM_det_energy.o + 0x000087f0 0x000000b8 Code RO 915 .text.BLV_DetEnergy_Default Obj/SYSTEM_det_energy.o + 0x000088a8 0x00000018 Code RO 916 .text.HLW8110_CheckSum Obj/SYSTEM_det_energy.o + 0x000088c0 0x00000054 Code RO 917 .text.HLW8110_WriteREG_EN Obj/SYSTEM_det_energy.o + 0x00008914 0x00000054 Code RO 918 .text.HLW8110_WriteREG_DIS Obj/SYSTEM_det_energy.o + 0x00008968 0x00000050 Code RO 919 .text.HLW8110_Reset Obj/SYSTEM_det_energy.o + 0x000089b8 0x0000008c Code RO 920 .text.BLV_HLW8110_RWCMD_Packaging Obj/SYSTEM_det_energy.o + 0x00008a44 0x00000074 Code RO 921 .text.HLW8110_RWCMD_Send Obj/SYSTEM_det_energy.o + 0x00008ab8 0x00000010 Code RO 922 .text.HLW8110_CleanSdFlag Obj/SYSTEM_det_energy.o + 0x00008ac8 0x00000018 Code RO 923 .text.Get_RevState Obj/SYSTEM_det_energy.o + 0x00008ae0 0x0000001c Code RO 924 .text.Get_SendState Obj/SYSTEM_det_energy.o + 0x00008afc 0x000001e4 Code RO 926 .text.BLV_HLW8110_SendData_Tack Obj/SYSTEM_det_energy.o + 0x00008ce0 0x0000008c Code RO 927 .text.HLW8110_Convert_CurrentRegA_Value Obj/SYSTEM_det_energy.o + 0x00008d6c 0x0000007c Code RO 928 .text.HLW8110_Convert_VoltageReg_Value Obj/SYSTEM_det_energy.o + 0x00008de8 0x0000007c Code RO 929 .text.HLW8110_Convert_PowerReg_Value Obj/SYSTEM_det_energy.o + 0x00008e64 0x00000088 Code RO 930 .text.HLW8110_Convert_EnergyReg_Value Obj/SYSTEM_det_energy.o + 0x00008eec 0x0000025c Code RO 931 .text.HLW8110_RecvData_Processing Obj/SYSTEM_det_energy.o + 0x00009148 0x00000026 Code RO 932 .text.HLW8110_SysPara_Check Obj/SYSTEM_det_energy.o + 0x00009170 0x00000254 Code RO 933 .text.HLW8110_ReadSysPara Obj/SYSTEM_det_energy.o + 0x000093c4 0x000000c8 Code RO 934 .text.HLW8110_ReadSysCtrlPara Obj/SYSTEM_det_energy.o + 0x0000948c 0x00000064 Code RO 935 .text.GetEnergy_Para Obj/SYSTEM_det_energy.o + 0x000094f0 0x00000158 Code RO 936 .text.HLW8110_ReadValue Obj/SYSTEM_det_energy.o + 0x00009648 0x00000040 Code RO 937 .text.BLV_HLW8110_Tack Obj/SYSTEM_det_energy.o + 0x00009688 0x0000000c Code RO 938 .text.BT_Uart_Packing Obj/SYSTEM_det_energy.o + 0x00009694 0x00000104 Code RO 939 .text.BT_UART_Print Obj/SYSTEM_det_energy.o + 0x00009798 0x000000ec Code RO 940 .text.BLV_Energy_ActiveRep_Packing Obj/SYSTEM_det_energy.o + 0x00009884 0x000000b0 Code RO 941 .text.BLV_ElectricPara_Processing Obj/SYSTEM_det_energy.o + 0x00009934 0x00000014 Code RO 942 .text.BLV_EngDetect_Tack Obj/SYSTEM_det_energy.o + 0x00009948 0x000000ec Code RO 943 .text.BLV_Energy_PassiveRep_Packing Obj/SYSTEM_det_energy.o + 0x00009a34 0x000000a0 Code RO 944 .text.BLV_Energy_SetTime_Packing Obj/SYSTEM_det_energy.o + 0x00009ad4 0x00000098 Code RO 945 .text.BLV_Energy_QueryVersion_Packing Obj/SYSTEM_det_energy.o + 0x00009b6c 0x00000030 Code RO 946 .text.SetCalibFactor_Switch Obj/SYSTEM_det_energy.o + 0x00009b9c 0x00000084 Code RO 947 .text.BLV_Energy_SetCalibFactor Obj/SYSTEM_det_energy.o + 0x00009c20 0x0000007c Code RO 948 .text.BLV_Energy_SetCalibFactor_2 Obj/SYSTEM_det_energy.o + 0x00009c9c 0x00000160 Code RO 949 .text.HLW_485Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009dfc 0x00000118 Code RO 950 .text.BT_Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009f14 0x000000c0 Code RO 969 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x00009fd4 0x00000024 Code RO 970 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x00009ff8 0x0000006c Code RO 972 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x0000a064 0x00000014 Code RO 976 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x0000a078 0x0000021c Code RO 977 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x0000a294 0x00000058 Code RO 1014 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a2ec 0x00000088 Code RO 1018 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a374 0x00000028 Code RO 1019 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x0000a39c 0x00000020 Code RO 1021 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x0000a3bc 0x00000180 Code RO 1022 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a53c 0x0000011c Code RO 1023 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x0000a658 0x000001d0 Code RO 1024 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x0000a828 0x00000054 Code RO 1025 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a87c 0x00000078 Code RO 1026 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a8f4 0x00000284 Code RO 1048 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000ab78 0x00000017 Data RO 951 .rodata Obj/SYSTEM_det_energy.o + 0x0000ab8f 0x00000001 PAD + 0x0000ab90 0x00000030 Data RO 1071 .rodata pow.o + 0x0000abc0 0x00000010 Data RO 1183 .rodata _thenan_sf.o + 0x0000abd0 0x00000014 Data RO 1260 .rodata _thenan_df.o + 0x0000abe4 0x00000100 Data RO 1336 .rodata _clz.o + 0x0000ace4 0x00000020 Data RO 1533 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x0000ad04 0x00000240 Data RO 1655 .rodata strerror.o + 0x0000af44 0x00000021 Data RO 691 .rodata.str1.1 Obj/main.o + 0x0000af65 0x000000a4 Data RO 844 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x0000b009 0x00000023 Data RO 864 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x0000b02c 0x000003b6 Data RO 896 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000b3e2 0x000003c1 Data RO 952 .rodata.str1.1 Obj/SYSTEM_det_energy.o + 0x0000b7a3 0x000002fb Data RO 981 .rodata.str1.1 Obj/SYSTEM_Bootload_fun.o + 0x0000ba9e 0x00000022 Data RO 1534 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x0000bac0 0x00000008 Data RO 1620 .rodata.str1.1 __dtostr.o + 0x0000bac8 0x00000787 Data RO 1656 .rodata.str1.1 strerror.o + 0x0000c24f 0x00000001 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000afc, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 784 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 1005 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x00000020 Data RW 692 .textcsky.VinFlash Obj/main.o + 0x200000bc 0x0000000c Zero RW 735 .bss Obj/mcu_interrupt.o + 0x200000c8 0x000000a0 Zero RW 821 .bss Obj/SYSTEM_uart.o + 0x20000168 0x00000004 Zero RW 860 .bss Obj/SYSTEM_dip_switch.o + 0x2000016c 0x00000018 Zero RW 912 .bss Obj/SYSTEM_det_energy.o + 0x20000184 0x00000086 Zero RW 704 COMMON Obj/main.o + 0x2000020a 0x00000002 PAD + 0x2000020c 0x00000030 Zero RW 782 COMMON Obj/mcu_interrupt.o + 0x2000023c 0x00000244 Zero RW 857 COMMON Obj/SYSTEM_uart.o + 0x20000480 0x00000014 Zero RW 877 COMMON Obj/SYSTEM_dip_switch.o + 0x20000494 0x00000060 Zero RW 909 COMMON Obj/SYSTEM_eeprom.o + 0x200004f4 0x000000fc Zero RW 965 COMMON Obj/SYSTEM_det_energy.o + 0x200005f0 0x0000023c Zero RW 994 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000082c 0x000002c8 Zero RW 1044 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000af4 0x00000008 Zero RW 1610 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 282 Obj/arch_crt0.o + 56 0 0 0 816 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 872 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 932 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13549 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 438 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 68 33 32 134 12757 Obj/main.o + 392 0 0 0 16599 Obj/mcu_initial.o + 2470 0 0 60 15410 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 2184 164 0 740 17321 Obj/SYSTEM_uart.o + 352 35 0 24 11554 Obj/SYSTEM_dip_switch.o + 2138 950 0 96 17222 Obj/SYSTEM_eeprom.o + 6030 984 0 276 22598 Obj/SYSTEM_det_energy.o + 896 763 0 572 16797 Obj/SYSTEM_Bootload_fun.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 17852 2929 136 1902 272595 Object Totals + 22 2 3 2 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 26 0 0 0 0 _csky_case_uhi.o + 46 0 0 0 0 _fixunssfsi.o + 56 0 0 0 0 _fixunsdfsi.o + 426 0 0 0 0 _addsub_sf.o + 280 0 0 0 0 _mul_sf.o + 188 0 0 0 0 _div_sf.o + 54 0 0 0 0 _ne_sf.o + 56 0 0 0 0 _ge_sf.o + 100 0 0 0 0 _si_to_sf.o + 84 0 0 0 0 _sf_to_si.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 40 0 0 0 0 _make_df.o + 48 0 0 0 0 _df_to_sf.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 184 0 0 0 0 _pack_sf.o + 132 0 0 0 0 _unpack_sf.o + 120 0 0 0 0 _fpcmp_parts_sf.o + 22 0 0 0 0 _make_sf.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 6882 292 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 38 0 0 0 0 strncmp.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3598 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 33634 5848 188 2624 297609 Grand Totals + 33634 5848 188 2624 297609 Elf Image Totals + 33634 5848 188 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 39482 ( 38.56kB) +Total RW Size (RW Data + ZI Data) 2812 ( 2.75kB) +Total ROM Size (Code + RO Data + RW Data) 39670 ( 38.74kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251104.asm b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251104.asm new file mode 100644 index 0000000..ee1c400 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251104.asm @@ -0,0 +1,20164 @@ + +.//Obj/BLV_CS_AC100_V03_20251104.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00002800 : + 2800: 0000290c .long 0x0000290c + 2804: 0000748a .long 0x0000748a + 2808: 0000747a .long 0x0000747a + 280c: 00002984 .long 0x00002984 + 2810: 00007482 .long 0x00007482 + 2814: 00007440 .long 0x00007440 + 2818: 00002984 .long 0x00002984 + 281c: 00007472 .long 0x00007472 + 2820: 0000746a .long 0x0000746a + 2824: 00002984 .long 0x00002984 + 2828: 00002984 .long 0x00002984 + 282c: 00002984 .long 0x00002984 + 2830: 00002984 .long 0x00002984 + 2834: 00002984 .long 0x00002984 + 2838: 00002984 .long 0x00002984 + 283c: 00002984 .long 0x00002984 + 2840: 00007462 .long 0x00007462 + 2844: 0000745a .long 0x0000745a + 2848: 00007452 .long 0x00007452 + 284c: 0000744a .long 0x0000744a + 2850: 00002984 .long 0x00002984 + 2854: 00002984 .long 0x00002984 + 2858: 00002984 .long 0x00002984 + 285c: 00002984 .long 0x00002984 + 2860: 00002984 .long 0x00002984 + 2864: 00002984 .long 0x00002984 + 2868: 00002984 .long 0x00002984 + 286c: 00002984 .long 0x00002984 + 2870: 00002984 .long 0x00002984 + 2874: 00002984 .long 0x00002984 + 2878: 00002984 .long 0x00002984 + 287c: 00007442 .long 0x00007442 + 2880: 0000a884 .long 0x0000a884 + 2884: 00006afc .long 0x00006afc + 2888: 00006bec .long 0x00006bec + 288c: 00006c54 .long 0x00006c54 + 2890: 00006cbc .long 0x00006cbc + 2894: 00002984 .long 0x00002984 + 2898: 00006e68 .long 0x00006e68 + 289c: 0000721c .long 0x0000721c + 28a0: 0000724c .long 0x0000724c + 28a4: 00006e9c .long 0x00006e9c + 28a8: 00002984 .long 0x00002984 + 28ac: 00002984 .long 0x00002984 + 28b0: 00006f1c .long 0x00006f1c + 28b4: 00006f8c .long 0x00006f8c + 28b8: 00006fec .long 0x00006fec + 28bc: 00007080 .long 0x00007080 + 28c0: 00002984 .long 0x00002984 + 28c4: 0000749a .long 0x0000749a + 28c8: 00002984 .long 0x00002984 + 28cc: 000070e0 .long 0x000070e0 + 28d0: 000071c8 .long 0x000071c8 + 28d4: 0000727c .long 0x0000727c + 28d8: 000072c4 .long 0x000072c4 + 28dc: 000072e4 .long 0x000072e4 + 28e0: 00007492 .long 0x00007492 + 28e4: 0000a2f4 .long 0x0000a2f4 + 28e8: 00007350 .long 0x00007350 + 28ec: 00002984 .long 0x00002984 + 28f0: 00007384 .long 0x00007384 + 28f4: 000073d0 .long 0x000073d0 + 28f8: 00002984 .long 0x00002984 + 28fc: 00002984 .long 0x00002984 + 2900: 55aa0005 .long 0x55aa0005 + ... + +0000290c <__start>: +// .long __start +__start: + + + //initialize all registers + movi r0, 0 + 290c: 3000 movi r0, 0 + movi r1, 0 + 290e: 3100 movi r1, 0 + movi r2, 0 + 2910: 3200 movi r2, 0 + movi r3, 0 + 2912: 3300 movi r3, 0 + movi r4, 0 + 2914: 3400 movi r4, 0 + movi r5, 0 + 2916: 3500 movi r5, 0 + movi r6, 0 + 2918: 3600 movi r6, 0 + movi r7, 0 + 291a: 3700 movi r7, 0 + //movi r13, 0 + //movi r14, 0 + //movi r15, 0 + +//set VBR + lrw r2, vector_table + 291c: 105b lrw r2, 0x2800 // 2988 + mtcr r2, cr<1,0> + 291e: c0026421 mtcr r2, cr<1, 0> + +//enable EE bit of psr + mfcr r2, cr<0,0> + 2922: c0006022 mfcr r2, cr<0, 0> + bseti r2, r2, 8 + 2926: 3aa8 bseti r2, 8 + mtcr r2, cr<0,0> + 2928: 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 + 292c: 1038 lrw r1, 0xe000ef90 // 298c + movi r2, 0x0 + 292e: 3200 movi r2, 0 + st.w r2, (r1, 0x0) + 2930: b140 st.w r2, (r1, 0x0) + + + +//initialize kernel stack + lrw r7, __kernel_stack + 2932: 10f8 lrw r7, 0x20000ff8 // 2990 + mov r14,r7 + 2934: 6f9f mov r14, r7 + subi r6,r7,0x4 + 2936: 5fcf subi r6, r7, 4 + + //lrw r3, 0x40 + lrw r3, 0x04 + 2938: 3304 movi r3, 4 + + subu r4, r7, r3 + 293a: 5f8d subu r4, r7, r3 + lrw r5, 0x0 + 293c: 3500 movi r5, 0 + +0000293e : +INIT_KERLE_STACK: + addi r4, 0x4 + 293e: 2403 addi r4, 4 + st.w r5, (r4) + 2940: b4a0 st.w r5, (r4, 0x0) + //cmphs r7, r4 + cmphs r6, r4 + 2942: 6518 cmphs r6, r4 + bt INIT_KERLE_STACK + 2944: 0bfd bt 0x293e // 293e + +00002946 <__to_main>: + +__to_main: + lrw r0,__main + 2946: 1014 lrw r0, 0x5e78 // 2994 + jsr r0 + 2948: 7bc1 jsr r0 + mov r0, r0 + 294a: 6c03 mov r0, r0 + mov r0, r0 + 294c: 6c03 mov r0, r0 + + + + lrw r15, __exit + 294e: ea8f0013 lrw r15, 0x2960 // 2998 + lrw r0,main + 2952: 1013 lrw r0, 0x692c // 299c + jmp r0 + 2954: 7800 jmp r0 + mov r0, r0 + 2956: 6c03 mov r0, r0 + mov r0, r0 + 2958: 6c03 mov r0, r0 + mov r0, r0 + 295a: 6c03 mov r0, r0 + mov r0, r0 + 295c: 6c03 mov r0, r0 + mov r0, r0 + 295e: 6c03 mov r0, r0 + +00002960 <__exit>: + +.export __exit +__exit: + + lrw r4, 0x20003000 + 2960: 1090 lrw r4, 0x20003000 // 29a0 + //lrw r5, 0x0 + mov r5, r0 + 2962: 6d43 mov r5, r0 + st.w r5, (r4) + 2964: b4a0 st.w r5, (r4, 0x0) + + mfcr r1, cr<0,0> + 2966: c0006021 mfcr r1, cr<0, 0> + lrw r1, 0xFFFF + 296a: 102f lrw r1, 0xffff // 29a4 + mtcr r1, cr<11,0> + 296c: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xFFF + 2970: 102e lrw r1, 0xfff // 29a8 + movi r0, 0x0 + 2972: 3000 movi r0, 0 + st r1, (r0) + 2974: b020 st.w r1, (r0, 0x0) + +00002976 <__fail>: + +.export __fail +__fail: + lrw r1, 0xEEEE + 2976: 102e lrw r1, 0xeeee // 29ac + mtcr r1, cr<11,0> + 2978: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xEEE + 297c: 102d lrw r1, 0xeee // 29b0 + movi r0, 0x0 + 297e: 3000 movi r0, 0 + st r1, (r0) + 2980: b020 st.w r1, (r0, 0x0) + +00002982 <__dummy>: + +__dummy: + br __fail + 2982: 07fa br 0x2976 // 2976 <__fail> + +00002984 : + +.export DummyHandler +DummyHandler: + br __fail + 2984: 07f9 br 0x2976 // 2976 <__fail> + 2986: 0000 .short 0x0000 + 2988: 00002800 .long 0x00002800 + 298c: e000ef90 .long 0xe000ef90 + 2990: 20000ff8 .long 0x20000ff8 + 2994: 00005e78 .long 0x00005e78 + 2998: 00002960 .long 0x00002960 + 299c: 0000692c .long 0x0000692c + 29a0: 20003000 .long 0x20003000 + 29a4: 0000ffff .long 0x0000ffff + 29a8: 00000fff .long 0x00000fff + 29ac: 0000eeee .long 0x0000eeee + 29b0: 00000eee .long 0x00000eee + +000029b4 <__GI_pow>: + 29b4: 14d4 push r4-r7, r15 + 29b6: 142d subi r14, r14, 52 + 29b8: b860 st.w r3, (r14, 0x0) + 29ba: 4361 lsli r3, r3, 1 + 29bc: 4b81 lsri r4, r3, 1 + 29be: b842 st.w r2, (r14, 0x8) + 29c0: 6c90 or r2, r4 + 29c2: 3a40 cmpnei r2, 0 + 29c4: 6dc3 mov r7, r0 + 29c6: 6d87 mov r6, r1 + 29c8: 0803 bt 0x29ce // 29ce <__GI_pow+0x1a> + 29ca: e8000462 br 0x328e // 328e <__GI_pow+0x8da> + 29ce: 41a1 lsli r5, r1, 1 + 29d0: 4da1 lsri r5, r5, 1 + 29d2: 0055 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 29d4: 6549 cmplt r2, r5 + 29d6: 080c bt 0x29ee // 29ee <__GI_pow+0x3a> + 29d8: 6496 cmpne r5, r2 + 29da: 0803 bt 0x29e0 // 29e0 <__GI_pow+0x2c> + 29dc: 3840 cmpnei r0, 0 + 29de: 0808 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e0: 6509 cmplt r2, r4 + 29e2: 0806 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e4: 6492 cmpne r4, r2 + 29e6: 080e bt 0x2a02 // 2a02 <__GI_pow+0x4e> + 29e8: 9802 ld.w r0, (r14, 0x8) + 29ea: 3840 cmpnei r0, 0 + 29ec: 0c0b bf 0x2a02 // 2a02 <__GI_pow+0x4e> + 29ee: 9842 ld.w r2, (r14, 0x8) + 29f0: 9860 ld.w r3, (r14, 0x0) + 29f2: 6c1f mov r0, r7 + 29f4: 6c5b mov r1, r6 + 29f6: e000099f bsr 0x3d34 // 3d34 <__adddf3> + 29fa: 6d03 mov r4, r0 + 29fc: 6c13 mov r0, r4 + 29fe: 140d addi r14, r14, 52 + 2a00: 1494 pop r4-r7, r15 + 2a02: 3edf btsti r6, 31 + 2a04: 0c51 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a06: 0121 lrw r1, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2a08: 2900 subi r1, 1 + 2a0a: 6505 cmplt r1, r4 + 2a0c: 084b bt 0x2aa2 // 2aa2 <__GI_pow+0xee> + 2a0e: 0162 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a10: 2b00 subi r3, 1 + 2a12: 650d cmplt r3, r4 + 2a14: 0c49 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a16: 5454 asri r2, r4, 20 + 2a18: 0104 lrw r0, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2a1a: 6080 addu r2, r0 + 2a1c: 3a34 cmplti r2, 21 + 2a1e: 0821 bt 0x2a60 // 2a60 <__GI_pow+0xac> + 2a20: 3334 movi r3, 52 + 2a22: 60ca subu r3, r2 + 2a24: 9842 ld.w r2, (r14, 0x8) + 2a26: 708d lsr r2, r3 + 2a28: 6c4b mov r1, r2 + 2a2a: 704c lsl r1, r3 + 2a2c: 9802 ld.w r0, (r14, 0x8) + 2a2e: 6442 cmpne r0, r1 + 2a30: 083b bt 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a32: 3101 movi r1, 1 + 2a34: 6884 and r2, r1 + 2a36: 3302 movi r3, 2 + 2a38: 5b49 subu r2, r3, r2 + 2a3a: 9802 ld.w r0, (r14, 0x8) + 2a3c: 3840 cmpnei r0, 0 + 2a3e: b841 st.w r2, (r14, 0x4) + 2a40: 0862 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2a42: 0151 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 2a44: 6492 cmpne r4, r2 + 2a46: 081f bt 0x2a84 // 2a84 <__GI_pow+0xd0> + 2a48: 012f lrw r1, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2a4a: 6054 addu r1, r5 + 2a4c: 6dc4 or r7, r1 + 2a4e: 3f40 cmpnei r7, 0 + 2a50: 082d bt 0x2aaa // 2aaa <__GI_pow+0xf6> + 2a52: 9860 ld.w r3, (r14, 0x0) + 2a54: 3200 movi r2, 0 + 2a56: 6c4f mov r1, r3 + 2a58: 3000 movi r0, 0 + 2a5a: e0000985 bsr 0x3d64 // 3d64 <__subdf3> + 2a5e: 07ce br 0x29fa // 29fa <__GI_pow+0x46> + 2a60: 9822 ld.w r1, (r14, 0x8) + 2a62: 3940 cmpnei r1, 0 + 2a64: 084e bt 0x2b00 // 2b00 <__GI_pow+0x14c> + 2a66: 3114 movi r1, 20 + 2a68: 604a subu r1, r2 + 2a6a: 6c93 mov r2, r4 + 2a6c: 7086 asr r2, r1 + 2a6e: 6c0b mov r0, r2 + 2a70: 7004 lsl r0, r1 + 2a72: 6412 cmpne r4, r0 + 2a74: 0c03 bf 0x2a7a // 2a7a <__GI_pow+0xc6> + 2a76: e8000471 br 0x3358 // 3358 <__GI_pow+0x9a4> + 2a7a: 3101 movi r1, 1 + 2a7c: 6884 and r2, r1 + 2a7e: 3002 movi r0, 2 + 2a80: 5869 subu r3, r0, r2 + 2a82: b861 st.w r3, (r14, 0x4) + 2a84: 0220 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a86: 6452 cmpne r4, r1 + 2a88: 0825 bt 0x2ad2 // 2ad2 <__GI_pow+0x11e> + 2a8a: 9880 ld.w r4, (r14, 0x0) + 2a8c: 3cdf btsti r4, 31 + 2a8e: 0803 bt 0x2a94 // 2a94 <__GI_pow+0xe0> + 2a90: e8000407 br 0x329e // 329e <__GI_pow+0x8ea> + 2a94: 6c9f mov r2, r7 + 2a96: 6cdb mov r3, r6 + 2a98: 3000 movi r0, 0 + 2a9a: 0225 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a9c: e0000a9a bsr 0x3fd0 // 3fd0 <__divdf3> + 2aa0: 07ad br 0x29fa // 29fa <__GI_pow+0x46> + 2aa2: 3202 movi r2, 2 + 2aa4: 07cb br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aa6: 3200 movi r2, 0 + 2aa8: 07c9 br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aaa: 0269 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2aac: 2b00 subi r3, 1 + 2aae: 654d cmplt r3, r5 + 2ab0: 9800 ld.w r0, (r14, 0x0) + 2ab2: 0c08 bf 0x2ac2 // 2ac2 <__GI_pow+0x10e> + 2ab4: 38df btsti r0, 31 + 2ab6: 0803 bt 0x2abc // 2abc <__GI_pow+0x108> + 2ab8: e80003ef br 0x3296 // 3296 <__GI_pow+0x8e2> + 2abc: 3400 movi r4, 0 + 2abe: 3100 movi r1, 0 + 2ac0: 079e br 0x29fc // 29fc <__GI_pow+0x48> + 2ac2: 38df btsti r0, 31 + 2ac4: 0ffc bf 0x2abc // 2abc <__GI_pow+0x108> + 2ac6: 3400 movi r4, 0 + 2ac8: 6c43 mov r1, r0 + 2aca: 3280 movi r2, 128 + 2acc: 4278 lsli r3, r2, 24 + 2ace: 604c addu r1, r3 + 2ad0: 0796 br 0x29fc // 29fc <__GI_pow+0x48> + 2ad2: 3380 movi r3, 128 + 2ad4: 4317 lsli r0, r3, 23 + 2ad6: 9840 ld.w r2, (r14, 0x0) + 2ad8: 640a cmpne r2, r0 + 2ada: 0808 bt 0x2aea // 2aea <__GI_pow+0x136> + 2adc: 6c9f mov r2, r7 + 2ade: 6cdb mov r3, r6 + 2ae0: 6c1f mov r0, r7 + 2ae2: 6c5b mov r1, r6 + 2ae4: e000095c bsr 0x3d9c // 3d9c <__muldf3> + 2ae8: 0789 br 0x29fa // 29fa <__GI_pow+0x46> + 2aea: 0276 lrw r3, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2aec: 9820 ld.w r1, (r14, 0x0) + 2aee: 64c6 cmpne r1, r3 + 2af0: 080a bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af2: 3edf btsti r6, 31 + 2af4: 0808 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af6: 6c1f mov r0, r7 + 2af8: 6c5b mov r1, r6 + 2afa: e0000445 bsr 0x3384 // 3384 <__GI_sqrt> + 2afe: 077e br 0x29fa // 29fa <__GI_pow+0x46> + 2b00: 3300 movi r3, 0 + 2b02: b861 st.w r3, (r14, 0x4) + 2b04: 6c1f mov r0, r7 + 2b06: 6c5b mov r1, r6 + 2b08: b883 st.w r4, (r14, 0xc) + 2b0a: e000042a bsr 0x335e // 335e <__GI_fabs> + 2b0e: 3f40 cmpnei r7, 0 + 2b10: 6d03 mov r4, r0 + 2b12: 9863 ld.w r3, (r14, 0xc) + 2b14: 0826 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b16: 3d40 cmpnei r5, 0 + 2b18: 0c05 bf 0x2b22 // 2b22 <__GI_pow+0x16e> + 2b1a: 4642 lsli r2, r6, 2 + 2b1c: 0302 lrw r0, 0xffc00000 // 2d90 <__GI_pow+0x3dc> + 2b1e: 640a cmpne r2, r0 + 2b20: 0820 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b22: 9840 ld.w r2, (r14, 0x0) + 2b24: 3adf btsti r2, 31 + 2b26: 0c08 bf 0x2b36 // 2b36 <__GI_pow+0x182> + 2b28: 6c93 mov r2, r4 + 2b2a: 6cc7 mov r3, r1 + 2b2c: 3000 movi r0, 0 + 2b2e: 032a lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b30: e0000a50 bsr 0x3fd0 // 3fd0 <__divdf3> + 2b34: 6d03 mov r4, r0 + 2b36: 3edf btsti r6, 31 + 2b38: 0f62 bf 0x29fc // 29fc <__GI_pow+0x48> + 2b3a: 036b lrw r3, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2b3c: 614c addu r5, r3 + 2b3e: 9801 ld.w r0, (r14, 0x4) + 2b40: 6d40 or r5, r0 + 2b42: 3d40 cmpnei r5, 0 + 2b44: 080a bt 0x2b58 // 2b58 <__GI_pow+0x1a4> + 2b46: 6c93 mov r2, r4 + 2b48: 6cc7 mov r3, r1 + 2b4a: 6c0b mov r0, r2 + 2b4c: 6c4f mov r1, r3 + 2b4e: e000090b bsr 0x3d64 // 3d64 <__subdf3> + 2b52: 6c83 mov r2, r0 + 2b54: 6cc7 mov r3, r1 + 2b56: 07a3 br 0x2a9c // 2a9c <__GI_pow+0xe8> + 2b58: 9841 ld.w r2, (r14, 0x4) + 2b5a: 3a41 cmpnei r2, 1 + 2b5c: 0b50 bt 0x29fc // 29fc <__GI_pow+0x48> + 2b5e: 07b6 br 0x2aca // 2aca <__GI_pow+0x116> + 2b60: 4e5f lsri r2, r6, 31 + 2b62: 2a00 subi r2, 1 + 2b64: b847 st.w r2, (r14, 0x1c) + 2b66: 9807 ld.w r0, (r14, 0x1c) + 2b68: 9841 ld.w r2, (r14, 0x4) + 2b6a: 6c80 or r2, r0 + 2b6c: 3a40 cmpnei r2, 0 + 2b6e: 0804 bt 0x2b76 // 2b76 <__GI_pow+0x1c2> + 2b70: 6c9f mov r2, r7 + 2b72: 6cdb mov r3, r6 + 2b74: 07eb br 0x2b4a // 2b4a <__GI_pow+0x196> + 2b76: 0357 lrw r2, 0x41e00000 // 2d94 <__GI_pow+0x3e0> + 2b78: 64c9 cmplt r2, r3 + 2b7a: 0cbf bf 0x2cf8 // 2cf8 <__GI_pow+0x344> + 2b7c: 0358 lrw r2, 0x43f00000 // 2d98 <__GI_pow+0x3e4> + 2b7e: 64c9 cmplt r2, r3 + 2b80: 037f lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b82: 0c0c bf 0x2b9a // 2b9a <__GI_pow+0x1e6> + 2b84: 2b00 subi r3, 1 + 2b86: 654d cmplt r3, r5 + 2b88: 080f bt 0x2ba6 // 2ba6 <__GI_pow+0x1f2> + 2b8a: 9820 ld.w r1, (r14, 0x0) + 2b8c: 39df btsti r1, 31 + 2b8e: 0f97 bf 0x2abc // 2abc <__GI_pow+0x108> + 2b90: 035c lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2b92: 037b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2b94: 6c0b mov r0, r2 + 2b96: 6c4f mov r1, r3 + 2b98: 07a6 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2b9a: 2b01 subi r3, 2 + 2b9c: 654d cmplt r3, r5 + 2b9e: 0ff6 bf 0x2b8a // 2b8a <__GI_pow+0x1d6> + 2ba0: 1318 lrw r0, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2ba2: 6541 cmplt r0, r5 + 2ba4: 0c05 bf 0x2bae // 2bae <__GI_pow+0x1fa> + 2ba6: 9800 ld.w r0, (r14, 0x0) + 2ba8: 3820 cmplti r0, 1 + 2baa: 0ff3 bf 0x2b90 // 2b90 <__GI_pow+0x1dc> + 2bac: 0788 br 0x2abc // 2abc <__GI_pow+0x108> + 2bae: 3200 movi r2, 0 + 2bb0: 1374 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2bb2: 6c1f mov r0, r7 + 2bb4: 6c5b mov r1, r6 + 2bb6: 36c0 movi r6, 192 + 2bb8: e00008d6 bsr 0x3d64 // 3d64 <__subdf3> + 2bbc: 4657 lsli r2, r6, 23 + 2bbe: 137a lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2bc0: 6d43 mov r5, r0 + 2bc2: 6d07 mov r4, r1 + 2bc4: e00008ec bsr 0x3d9c // 3d9c <__muldf3> + 2bc8: 6dc3 mov r7, r0 + 2bca: 6d87 mov r6, r1 + 2bcc: 1357 lrw r2, 0xf85ddf44 // 2da8 <__GI_pow+0x3f4> + 2bce: 1378 lrw r3, 0x3e54ae0b // 2dac <__GI_pow+0x3f8> + 2bd0: 6c17 mov r0, r5 + 2bd2: 6c53 mov r1, r4 + 2bd4: e00008e4 bsr 0x3d9c // 3d9c <__muldf3> + 2bd8: b803 st.w r0, (r14, 0xc) + 2bda: b824 st.w r1, (r14, 0x10) + 2bdc: 3200 movi r2, 0 + 2bde: 1375 lrw r3, 0x3fd00000 // 2db0 <__GI_pow+0x3fc> + 2be0: 6c17 mov r0, r5 + 2be2: 6c53 mov r1, r4 + 2be4: e00008dc bsr 0x3d9c // 3d9c <__muldf3> + 2be8: 6c83 mov r2, r0 + 2bea: 6cc7 mov r3, r1 + 2bec: 1312 lrw r0, 0x55555555 // 2db4 <__GI_pow+0x400> + 2bee: 1333 lrw r1, 0x3fd55555 // 2db8 <__GI_pow+0x404> + 2bf0: e00008ba bsr 0x3d64 // 3d64 <__subdf3> + 2bf4: 6c97 mov r2, r5 + 2bf6: 6cd3 mov r3, r4 + 2bf8: e00008d2 bsr 0x3d9c // 3d9c <__muldf3> + 2bfc: 6c83 mov r2, r0 + 2bfe: 6cc7 mov r3, r1 + 2c00: 3000 movi r0, 0 + 2c02: 1323 lrw r1, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2c04: e00008b0 bsr 0x3d64 // 3d64 <__subdf3> + 2c08: b805 st.w r0, (r14, 0x14) + 2c0a: 6c97 mov r2, r5 + 2c0c: 6cd3 mov r3, r4 + 2c0e: b826 st.w r1, (r14, 0x18) + 2c10: 6c17 mov r0, r5 + 2c12: 6c53 mov r1, r4 + 2c14: e00008c4 bsr 0x3d9c // 3d9c <__muldf3> + 2c18: 6c83 mov r2, r0 + 2c1a: 6cc7 mov r3, r1 + 2c1c: 9805 ld.w r0, (r14, 0x14) + 2c1e: 9826 ld.w r1, (r14, 0x18) + 2c20: e00008be bsr 0x3d9c // 3d9c <__muldf3> + 2c24: 1346 lrw r2, 0x652b82fe // 2dbc <__GI_pow+0x408> + 2c26: 1360 lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2c28: e00008ba bsr 0x3d9c // 3d9c <__muldf3> + 2c2c: 6c83 mov r2, r0 + 2c2e: 6cc7 mov r3, r1 + 2c30: 9803 ld.w r0, (r14, 0xc) + 2c32: 9824 ld.w r1, (r14, 0x10) + 2c34: e0000898 bsr 0x3d64 // 3d64 <__subdf3> + 2c38: 6c83 mov r2, r0 + 2c3a: 6cc7 mov r3, r1 + 2c3c: 6d43 mov r5, r0 + 2c3e: 6d07 mov r4, r1 + 2c40: 6c1f mov r0, r7 + 2c42: 6c5b mov r1, r6 + 2c44: e0000878 bsr 0x3d34 // 3d34 <__adddf3> + 2c48: 6c9f mov r2, r7 + 2c4a: 6cdb mov r3, r6 + 2c4c: 3000 movi r0, 0 + 2c4e: b823 st.w r1, (r14, 0xc) + 2c50: e000088a bsr 0x3d64 // 3d64 <__subdf3> + 2c54: 6c83 mov r2, r0 + 2c56: 6cc7 mov r3, r1 + 2c58: 6c17 mov r0, r5 + 2c5a: 6c53 mov r1, r4 + 2c5c: e0000884 bsr 0x3d64 // 3d64 <__subdf3> + 2c60: 6d07 mov r4, r1 + 2c62: 9821 ld.w r1, (r14, 0x4) + 2c64: 2900 subi r1, 1 + 2c66: 9847 ld.w r2, (r14, 0x1c) + 2c68: 6c48 or r1, r2 + 2c6a: 3940 cmpnei r1, 0 + 2c6c: 6d43 mov r5, r0 + 2c6e: 0c02 bf 0x2c72 // 2c72 <__GI_pow+0x2be> + 2c70: 05f0 br 0x3050 // 3050 <__GI_pow+0x69c> + 2c72: 1274 lrw r3, 0xbff00000 // 2dc0 <__GI_pow+0x40c> + 2c74: b861 st.w r3, (r14, 0x4) + 2c76: 9860 ld.w r3, (r14, 0x0) + 2c78: 3200 movi r2, 0 + 2c7a: 9802 ld.w r0, (r14, 0x8) + 2c7c: 6c4f mov r1, r3 + 2c7e: e0000873 bsr 0x3d64 // 3d64 <__subdf3> + 2c82: 9863 ld.w r3, (r14, 0xc) + 2c84: 3200 movi r2, 0 + 2c86: e000088b bsr 0x3d9c // 3d9c <__muldf3> + 2c8a: 6dc3 mov r7, r0 + 2c8c: 6d87 mov r6, r1 + 2c8e: 9842 ld.w r2, (r14, 0x8) + 2c90: 9860 ld.w r3, (r14, 0x0) + 2c92: 6c17 mov r0, r5 + 2c94: 6c53 mov r1, r4 + 2c96: e0000883 bsr 0x3d9c // 3d9c <__muldf3> + 2c9a: 6c83 mov r2, r0 + 2c9c: 6cc7 mov r3, r1 + 2c9e: 6c1f mov r0, r7 + 2ca0: 6c5b mov r1, r6 + 2ca2: e0000849 bsr 0x3d34 // 3d34 <__adddf3> + 2ca6: 6dc3 mov r7, r0 + 2ca8: 9860 ld.w r3, (r14, 0x0) + 2caa: 6d87 mov r6, r1 + 2cac: 3200 movi r2, 0 + 2cae: 9823 ld.w r1, (r14, 0xc) + 2cb0: 3000 movi r0, 0 + 2cb2: e0000875 bsr 0x3d9c // 3d9c <__muldf3> + 2cb6: b802 st.w r0, (r14, 0x8) + 2cb8: b803 st.w r0, (r14, 0xc) + 2cba: b824 st.w r1, (r14, 0x10) + 2cbc: 6c83 mov r2, r0 + 2cbe: 6cc7 mov r3, r1 + 2cc0: 6d47 mov r5, r1 + 2cc2: 6c1f mov r0, r7 + 2cc4: 6c5b mov r1, r6 + 2cc6: e0000837 bsr 0x3d34 // 3d34 <__adddf3> + 2cca: 6d07 mov r4, r1 + 2ccc: 113e lrw r1, 0x40900000 // 2dc4 <__GI_pow+0x410> + 2cce: 2900 subi r1, 1 + 2cd0: 6505 cmplt r1, r4 + 2cd2: b800 st.w r0, (r14, 0x0) + 2cd4: 0803 bt 0x2cda // 2cda <__GI_pow+0x326> + 2cd6: e80002b3 br 0x323c // 323c <__GI_pow+0x888> + 2cda: 117c lrw r3, 0xbf700000 // 2dc8 <__GI_pow+0x414> + 2cdc: 60d0 addu r3, r4 + 2cde: 6cc0 or r3, r0 + 2ce0: 3b40 cmpnei r3, 0 + 2ce2: 0802 bt 0x2ce6 // 2ce6 <__GI_pow+0x332> + 2ce4: 05b8 br 0x3054 // 3054 <__GI_pow+0x6a0> + 2ce6: 114e lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2ce8: 116e lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cea: 3000 movi r0, 0 + 2cec: 9821 ld.w r1, (r14, 0x4) + 2cee: e0000857 bsr 0x3d9c // 3d9c <__muldf3> + 2cf2: 114b lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2cf4: 116b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cf6: 06f7 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2cf8: 11d5 lrw r6, 0xfffff // 2dcc <__GI_pow+0x418> + 2cfa: 6559 cmplt r6, r5 + 2cfc: 09a6 bt 0x3048 // 3048 <__GI_pow+0x694> + 2cfe: 6c13 mov r0, r4 + 2d00: 3200 movi r2, 0 + 2d02: 107f lrw r3, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2d04: e000084c bsr 0x3d9c // 3d9c <__muldf3> + 2d08: 3700 movi r7, 0 + 2d0a: 6d03 mov r4, r0 + 2d0c: 6d47 mov r5, r1 + 2d0e: 2f34 subi r7, 53 + 2d10: 5514 asri r0, r5, 20 + 2d12: 103d lrw r1, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2d14: 45ac lsli r5, r5, 12 + 2d16: 4d4c lsri r2, r5, 12 + 2d18: 6004 addu r0, r1 + 2d1a: 116e lrw r3, 0x3988e // 2dd0 <__GI_pow+0x41c> + 2d1c: 601c addu r0, r7 + 2d1e: 648d cmplt r3, r2 + 2d20: 10f8 lrw r7, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d22: b804 st.w r0, (r14, 0x10) + 2d24: 6dc8 or r7, r2 + 2d26: 0c09 bf 0x2d38 // 2d38 <__GI_pow+0x384> + 2d28: 11cb lrw r6, 0xbb679 // 2dd4 <__GI_pow+0x420> + 2d2a: 6499 cmplt r6, r2 + 2d2c: 0d90 bf 0x304c // 304c <__GI_pow+0x698> + 2d2e: 6c83 mov r2, r0 + 2d30: 2200 addi r2, 1 + 2d32: 110a lrw r0, 0xfff00000 // 2dd8 <__GI_pow+0x424> + 2d34: b844 st.w r2, (r14, 0x10) + 2d36: 61c0 addu r7, r0 + 2d38: 3500 movi r5, 0 + 2d3a: 45c3 lsli r6, r5, 3 + 2d3c: 1168 lrw r3, 0xab98 // 2ddc <__GI_pow+0x428> + 2d3e: 4523 lsli r1, r5, 3 + 2d40: 60d8 addu r3, r6 + 2d42: 9340 ld.w r2, (r3, 0x0) + 2d44: b828 st.w r1, (r14, 0x20) + 2d46: 9361 ld.w r3, (r3, 0x4) + 2d48: 6c13 mov r0, r4 + 2d4a: 6c5f mov r1, r7 + 2d4c: b845 st.w r2, (r14, 0x14) + 2d4e: b866 st.w r3, (r14, 0x18) + 2d50: e000080a bsr 0x3d64 // 3d64 <__subdf3> + 2d54: b809 st.w r0, (r14, 0x24) + 2d56: 9845 ld.w r2, (r14, 0x14) + 2d58: 9866 ld.w r3, (r14, 0x18) + 2d5a: b82a st.w r1, (r14, 0x28) + 2d5c: 6c13 mov r0, r4 + 2d5e: 6c5f mov r1, r7 + 2d60: e00007ea bsr 0x3d34 // 3d34 <__adddf3> + 2d64: 6c83 mov r2, r0 + 2d66: 6cc7 mov r3, r1 + 2d68: 3000 movi r0, 0 + 2d6a: 1026 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d6c: e0000932 bsr 0x3fd0 // 3fd0 <__divdf3> + 2d70: 6c83 mov r2, r0 + 2d72: 6cc7 mov r3, r1 + 2d74: 0436 br 0x2de0 // 2de0 <__GI_pow+0x42c> + 2d76: 0000 bkpt + 2d78: 7ff00000 .long 0x7ff00000 + 2d7c: 43400000 .long 0x43400000 + 2d80: 3ff00000 .long 0x3ff00000 + 2d84: fffffc01 .long 0xfffffc01 + 2d88: c0100000 .long 0xc0100000 + 2d8c: 3fe00000 .long 0x3fe00000 + 2d90: ffc00000 .long 0xffc00000 + 2d94: 41e00000 .long 0x41e00000 + 2d98: 43f00000 .long 0x43f00000 + 2d9c: 8800759c .long 0x8800759c + 2da0: 7e37e43c .long 0x7e37e43c + 2da4: 3ff71547 .long 0x3ff71547 + 2da8: f85ddf44 .long 0xf85ddf44 + 2dac: 3e54ae0b .long 0x3e54ae0b + 2db0: 3fd00000 .long 0x3fd00000 + 2db4: 55555555 .long 0x55555555 + 2db8: 3fd55555 .long 0x3fd55555 + 2dbc: 652b82fe .long 0x652b82fe + 2dc0: bff00000 .long 0xbff00000 + 2dc4: 40900000 .long 0x40900000 + 2dc8: bf700000 .long 0xbf700000 + 2dcc: 000fffff .long 0x000fffff + 2dd0: 0003988e .long 0x0003988e + 2dd4: 000bb679 .long 0x000bb679 + 2dd8: fff00000 .long 0xfff00000 + 2ddc: 0000ab98 .long 0x0000ab98 + 2de0: b80b st.w r0, (r14, 0x2c) + 2de2: b82c st.w r1, (r14, 0x30) + 2de4: 9809 ld.w r0, (r14, 0x24) + 2de6: 982a ld.w r1, (r14, 0x28) + 2de8: e00007da bsr 0x3d9c // 3d9c <__muldf3> + 2dec: b803 st.w r0, (r14, 0xc) + 2dee: 3280 movi r2, 128 + 2df0: 5701 asri r0, r7, 1 + 2df2: 6d87 mov r6, r1 + 2df4: 38bd bseti r0, 29 + 2df6: 422c lsli r1, r2, 12 + 2df8: 6004 addu r0, r1 + 2dfa: 45b2 lsli r5, r5, 18 + 2dfc: 6140 addu r5, r0 + 2dfe: 6cd7 mov r3, r5 + 2e00: 3200 movi r2, 0 + 2e02: 6c5b mov r1, r6 + 2e04: 3000 movi r0, 0 + 2e06: e00007cb bsr 0x3d9c // 3d9c <__muldf3> + 2e0a: 6c83 mov r2, r0 + 2e0c: 6cc7 mov r3, r1 + 2e0e: 9809 ld.w r0, (r14, 0x24) + 2e10: 982a ld.w r1, (r14, 0x28) + 2e12: e00007a9 bsr 0x3d64 // 3d64 <__subdf3> + 2e16: b809 st.w r0, (r14, 0x24) + 2e18: 9845 ld.w r2, (r14, 0x14) + 2e1a: 9866 ld.w r3, (r14, 0x18) + 2e1c: b82a st.w r1, (r14, 0x28) + 2e1e: 3000 movi r0, 0 + 2e20: 6c57 mov r1, r5 + 2e22: e00007a1 bsr 0x3d64 // 3d64 <__subdf3> + 2e26: 6c83 mov r2, r0 + 2e28: 6cc7 mov r3, r1 + 2e2a: 6c13 mov r0, r4 + 2e2c: 6c5f mov r1, r7 + 2e2e: e000079b bsr 0x3d64 // 3d64 <__subdf3> + 2e32: 6cdb mov r3, r6 + 2e34: 3200 movi r2, 0 + 2e36: e00007b3 bsr 0x3d9c // 3d9c <__muldf3> + 2e3a: 6c83 mov r2, r0 + 2e3c: 6cc7 mov r3, r1 + 2e3e: 9809 ld.w r0, (r14, 0x24) + 2e40: 982a ld.w r1, (r14, 0x28) + 2e42: e0000791 bsr 0x3d64 // 3d64 <__subdf3> + 2e46: 984b ld.w r2, (r14, 0x2c) + 2e48: 986c ld.w r3, (r14, 0x30) + 2e4a: e00007a9 bsr 0x3d9c // 3d9c <__muldf3> + 2e4e: 9843 ld.w r2, (r14, 0xc) + 2e50: 6cdb mov r3, r6 + 2e52: b805 st.w r0, (r14, 0x14) + 2e54: b826 st.w r1, (r14, 0x18) + 2e56: 6c0b mov r0, r2 + 2e58: 6c5b mov r1, r6 + 2e5a: e00007a1 bsr 0x3d9c // 3d9c <__muldf3> + 2e5e: ea820113 lrw r2, 0x4a454eef // 32a8 <__GI_pow+0x8f4> + 2e62: ea830113 lrw r3, 0x3fca7e28 // 32ac <__GI_pow+0x8f8> + 2e66: 6d43 mov r5, r0 + 2e68: 6d07 mov r4, r1 + 2e6a: e0000799 bsr 0x3d9c // 3d9c <__muldf3> + 2e6e: ea820111 lrw r2, 0x93c9db65 // 32b0 <__GI_pow+0x8fc> + 2e72: ea830111 lrw r3, 0x3fcd864a // 32b4 <__GI_pow+0x900> + 2e76: e000075f bsr 0x3d34 // 3d34 <__adddf3> + 2e7a: 6c97 mov r2, r5 + 2e7c: 6cd3 mov r3, r4 + 2e7e: e000078f bsr 0x3d9c // 3d9c <__muldf3> + 2e82: ea82010e lrw r2, 0xa91d4101 // 32b8 <__GI_pow+0x904> + 2e86: ea83010e lrw r3, 0x3fd17460 // 32bc <__GI_pow+0x908> + 2e8a: e0000755 bsr 0x3d34 // 3d34 <__adddf3> + 2e8e: 6c97 mov r2, r5 + 2e90: 6cd3 mov r3, r4 + 2e92: e0000785 bsr 0x3d9c // 3d9c <__muldf3> + 2e96: ea82010b lrw r2, 0x518f264d // 32c0 <__GI_pow+0x90c> + 2e9a: ea83010b lrw r3, 0x3fd55555 // 32c4 <__GI_pow+0x910> + 2e9e: e000074b bsr 0x3d34 // 3d34 <__adddf3> + 2ea2: 6c97 mov r2, r5 + 2ea4: 6cd3 mov r3, r4 + 2ea6: e000077b bsr 0x3d9c // 3d9c <__muldf3> + 2eaa: ea820108 lrw r2, 0xdb6fabff // 32c8 <__GI_pow+0x914> + 2eae: ea830108 lrw r3, 0x3fdb6db6 // 32cc <__GI_pow+0x918> + 2eb2: e0000741 bsr 0x3d34 // 3d34 <__adddf3> + 2eb6: 6c97 mov r2, r5 + 2eb8: 6cd3 mov r3, r4 + 2eba: e0000771 bsr 0x3d9c // 3d9c <__muldf3> + 2ebe: ea820105 lrw r2, 0x33333303 // 32d0 <__GI_pow+0x91c> + 2ec2: ea830105 lrw r3, 0x3fe33333 // 32d4 <__GI_pow+0x920> + 2ec6: e0000737 bsr 0x3d34 // 3d34 <__adddf3> + 2eca: 6dc3 mov r7, r0 + 2ecc: 6c97 mov r2, r5 + 2ece: 6cd3 mov r3, r4 + 2ed0: b829 st.w r1, (r14, 0x24) + 2ed2: 6c17 mov r0, r5 + 2ed4: 6c53 mov r1, r4 + 2ed6: e0000763 bsr 0x3d9c // 3d9c <__muldf3> + 2eda: 6c83 mov r2, r0 + 2edc: 6cc7 mov r3, r1 + 2ede: 6c1f mov r0, r7 + 2ee0: 9829 ld.w r1, (r14, 0x24) + 2ee2: e000075d bsr 0x3d9c // 3d9c <__muldf3> + 2ee6: 6d43 mov r5, r0 + 2ee8: 6d07 mov r4, r1 + 2eea: 6cdb mov r3, r6 + 2eec: 3200 movi r2, 0 + 2eee: 9803 ld.w r0, (r14, 0xc) + 2ef0: 6c5b mov r1, r6 + 2ef2: e0000721 bsr 0x3d34 // 3d34 <__adddf3> + 2ef6: 9845 ld.w r2, (r14, 0x14) + 2ef8: 9866 ld.w r3, (r14, 0x18) + 2efa: e0000751 bsr 0x3d9c // 3d9c <__muldf3> + 2efe: 6c97 mov r2, r5 + 2f00: 6cd3 mov r3, r4 + 2f02: e0000719 bsr 0x3d34 // 3d34 <__adddf3> + 2f06: 6d43 mov r5, r0 + 2f08: 6cdb mov r3, r6 + 2f0a: b829 st.w r1, (r14, 0x24) + 2f0c: 3200 movi r2, 0 + 2f0e: 6c5b mov r1, r6 + 2f10: 3000 movi r0, 0 + 2f12: e0000745 bsr 0x3d9c // 3d9c <__muldf3> + 2f16: 3200 movi r2, 0 + 2f18: 006f lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f1a: 6dc3 mov r7, r0 + 2f1c: b82a st.w r1, (r14, 0x28) + 2f1e: e000070b bsr 0x3d34 // 3d34 <__adddf3> + 2f22: 6c97 mov r2, r5 + 2f24: 9869 ld.w r3, (r14, 0x24) + 2f26: e0000707 bsr 0x3d34 // 3d34 <__adddf3> + 2f2a: 6d07 mov r4, r1 + 2f2c: 6cc7 mov r3, r1 + 2f2e: 3200 movi r2, 0 + 2f30: 6c5b mov r1, r6 + 2f32: 3000 movi r0, 0 + 2f34: e0000734 bsr 0x3d9c // 3d9c <__muldf3> + 2f38: b80b st.w r0, (r14, 0x2c) + 2f3a: b82c st.w r1, (r14, 0x30) + 2f3c: 3200 movi r2, 0 + 2f3e: 0078 lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f40: 6c53 mov r1, r4 + 2f42: 3000 movi r0, 0 + 2f44: e0000710 bsr 0x3d64 // 3d64 <__subdf3> + 2f48: 6c9f mov r2, r7 + 2f4a: 986a ld.w r3, (r14, 0x28) + 2f4c: e000070c bsr 0x3d64 // 3d64 <__subdf3> + 2f50: 6c83 mov r2, r0 + 2f52: 6cc7 mov r3, r1 + 2f54: 6c17 mov r0, r5 + 2f56: 9829 ld.w r1, (r14, 0x24) + 2f58: e0000706 bsr 0x3d64 // 3d64 <__subdf3> + 2f5c: 9843 ld.w r2, (r14, 0xc) + 2f5e: 6cdb mov r3, r6 + 2f60: e000071e bsr 0x3d9c // 3d9c <__muldf3> + 2f64: 6d83 mov r6, r0 + 2f66: 6d47 mov r5, r1 + 2f68: 6cd3 mov r3, r4 + 2f6a: 3200 movi r2, 0 + 2f6c: 9805 ld.w r0, (r14, 0x14) + 2f6e: 9826 ld.w r1, (r14, 0x18) + 2f70: e0000716 bsr 0x3d9c // 3d9c <__muldf3> + 2f74: 6c83 mov r2, r0 + 2f76: 6cc7 mov r3, r1 + 2f78: 6c1b mov r0, r6 + 2f7a: 6c57 mov r1, r5 + 2f7c: e00006dc bsr 0x3d34 // 3d34 <__adddf3> + 2f80: 6dc3 mov r7, r0 + 2f82: 6d87 mov r6, r1 + 2f84: 6c83 mov r2, r0 + 2f86: 6cc7 mov r3, r1 + 2f88: 980b ld.w r0, (r14, 0x2c) + 2f8a: 982c ld.w r1, (r14, 0x30) + 2f8c: e00006d4 bsr 0x3d34 // 3d34 <__adddf3> + 2f90: 33e0 movi r3, 224 + 2f92: 4358 lsli r2, r3, 24 + 2f94: 3000 movi r0, 0 + 2f96: 016d lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2f98: 6d07 mov r4, r1 + 2f9a: e0000701 bsr 0x3d9c // 3d9c <__muldf3> + 2f9e: b805 st.w r0, (r14, 0x14) + 2fa0: b826 st.w r1, (r14, 0x18) + 2fa2: 984b ld.w r2, (r14, 0x2c) + 2fa4: 986c ld.w r3, (r14, 0x30) + 2fa6: 6c53 mov r1, r4 + 2fa8: 3000 movi r0, 0 + 2faa: e00006dd bsr 0x3d64 // 3d64 <__subdf3> + 2fae: 6c83 mov r2, r0 + 2fb0: 6cc7 mov r3, r1 + 2fb2: 6c1f mov r0, r7 + 2fb4: 6c5b mov r1, r6 + 2fb6: e00006d7 bsr 0x3d64 // 3d64 <__subdf3> + 2fba: 0155 lrw r2, 0xdc3a03fd // 32e0 <__GI_pow+0x92c> + 2fbc: 0177 lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2fbe: e00006ef bsr 0x3d9c // 3d9c <__muldf3> + 2fc2: 6dc3 mov r7, r0 + 2fc4: 6d47 mov r5, r1 + 2fc6: 0157 lrw r2, 0x145b01f5 // 32e4 <__GI_pow+0x930> + 2fc8: 0177 lrw r3, 0xbe3e2fe0 // 32e8 <__GI_pow+0x934> + 2fca: 6c53 mov r1, r4 + 2fcc: 3000 movi r0, 0 + 2fce: e00006e7 bsr 0x3d9c // 3d9c <__muldf3> + 2fd2: 6c83 mov r2, r0 + 2fd4: 6cc7 mov r3, r1 + 2fd6: 6c1f mov r0, r7 + 2fd8: 6c57 mov r1, r5 + 2fda: e00006ad bsr 0x3d34 // 3d34 <__adddf3> + 2fde: 01db lrw r6, 0xab98 // 32ec <__GI_pow+0x938> + 2fe0: 9848 ld.w r2, (r14, 0x20) + 2fe2: 6188 addu r6, r2 + 2fe4: 9644 ld.w r2, (r6, 0x10) + 2fe6: 9665 ld.w r3, (r6, 0x14) + 2fe8: e00006a6 bsr 0x3d34 // 3d34 <__adddf3> + 2fec: b809 st.w r0, (r14, 0x24) + 2fee: 9804 ld.w r0, (r14, 0x10) + 2ff0: b82a st.w r1, (r14, 0x28) + 2ff2: e00008f3 bsr 0x41d8 // 41d8 <__floatsidf> + 2ff6: 6d83 mov r6, r0 + 2ff8: 0202 lrw r0, 0xab98 // 32ec <__GI_pow+0x938> + 2ffa: 6d47 mov r5, r1 + 2ffc: 201f addi r0, 32 + 2ffe: 9828 ld.w r1, (r14, 0x20) + 3000: 6004 addu r0, r1 + 3002: 9080 ld.w r4, (r0, 0x0) + 3004: 90e1 ld.w r7, (r0, 0x4) + 3006: 9849 ld.w r2, (r14, 0x24) + 3008: 986a ld.w r3, (r14, 0x28) + 300a: 9805 ld.w r0, (r14, 0x14) + 300c: 9826 ld.w r1, (r14, 0x18) + 300e: e0000693 bsr 0x3d34 // 3d34 <__adddf3> + 3012: 6c93 mov r2, r4 + 3014: 6cdf mov r3, r7 + 3016: e000068f bsr 0x3d34 // 3d34 <__adddf3> + 301a: 6c9b mov r2, r6 + 301c: 6cd7 mov r3, r5 + 301e: e000068b bsr 0x3d34 // 3d34 <__adddf3> + 3022: 6c9b mov r2, r6 + 3024: 6cd7 mov r3, r5 + 3026: 3000 movi r0, 0 + 3028: b823 st.w r1, (r14, 0xc) + 302a: e000069d bsr 0x3d64 // 3d64 <__subdf3> + 302e: 6c93 mov r2, r4 + 3030: 6cdf mov r3, r7 + 3032: e0000699 bsr 0x3d64 // 3d64 <__subdf3> + 3036: 9845 ld.w r2, (r14, 0x14) + 3038: 9866 ld.w r3, (r14, 0x18) + 303a: e0000695 bsr 0x3d64 // 3d64 <__subdf3> + 303e: 6c83 mov r2, r0 + 3040: 6cc7 mov r3, r1 + 3042: 9809 ld.w r0, (r14, 0x24) + 3044: 982a ld.w r1, (r14, 0x28) + 3046: 060b br 0x2c5c // 2c5c <__GI_pow+0x2a8> + 3048: 3700 movi r7, 0 + 304a: 0663 br 0x2d10 // 2d10 <__GI_pow+0x35c> + 304c: 3501 movi r5, 1 + 304e: 0676 br 0x2d3a // 2d3a <__GI_pow+0x386> + 3050: 0277 lrw r3, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3052: 0611 br 0x2c74 // 2c74 <__GI_pow+0x2c0> + 3054: 0257 lrw r2, 0x652b82fe // 32f4 <__GI_pow+0x940> + 3056: 0276 lrw r3, 0x3c971547 // 32f8 <__GI_pow+0x944> + 3058: 6c1f mov r0, r7 + 305a: 6c5b mov r1, r6 + 305c: e000066c bsr 0x3d34 // 3d34 <__adddf3> + 3060: b805 st.w r0, (r14, 0x14) + 3062: b826 st.w r1, (r14, 0x18) + 3064: 9842 ld.w r2, (r14, 0x8) + 3066: 6cd7 mov r3, r5 + 3068: 9800 ld.w r0, (r14, 0x0) + 306a: 6c53 mov r1, r4 + 306c: e000067c bsr 0x3d64 // 3d64 <__subdf3> + 3070: 6c83 mov r2, r0 + 3072: 6cc7 mov r3, r1 + 3074: 9805 ld.w r0, (r14, 0x14) + 3076: 9826 ld.w r1, (r14, 0x18) + 3078: e0000856 bsr 0x4124 // 4124 <__gtdf2> + 307c: 3820 cmplti r0, 1 + 307e: 0802 bt 0x3082 // 3082 <__GI_pow+0x6ce> + 3080: 0633 br 0x2ce6 // 2ce6 <__GI_pow+0x332> + 3082: 4421 lsli r1, r4, 1 + 3084: 4901 lsri r0, r1, 1 + 3086: 0361 lrw r3, 0x3fe00000 // 32fc <__GI_pow+0x948> + 3088: 640d cmplt r3, r0 + 308a: 0cfd bf 0x3284 // 3284 <__GI_pow+0x8d0> + 308c: 5034 asri r1, r0, 20 + 308e: 0342 lrw r2, 0xfffffc02 // 3300 <__GI_pow+0x94c> + 3090: 3080 movi r0, 128 + 3092: 6048 addu r1, r2 + 3094: 404d lsli r2, r0, 13 + 3096: 7086 asr r2, r1 + 3098: 6090 addu r2, r4 + 309a: 4261 lsli r3, r2, 1 + 309c: 4b35 lsri r1, r3, 21 + 309e: 0305 lrw r0, 0xfffffc01 // 3304 <__GI_pow+0x950> + 30a0: 6040 addu r1, r0 + 30a2: 0365 lrw r3, 0xfffff // 3308 <__GI_pow+0x954> + 30a4: 70c6 asr r3, r1 + 30a6: 6c0b mov r0, r2 + 30a8: 680d andn r0, r3 + 30aa: 424c lsli r2, r2, 12 + 30ac: 6cc3 mov r3, r0 + 30ae: 4a4c lsri r2, r2, 12 + 30b0: 3014 movi r0, 20 + 30b2: 3ab4 bseti r2, 20 + 30b4: 5825 subu r1, r0, r1 + 30b6: 7086 asr r2, r1 + 30b8: 3cdf btsti r4, 31 + 30ba: b840 st.w r2, (r14, 0x0) + 30bc: 0c05 bf 0x30c6 // 30c6 <__GI_pow+0x712> + 30be: 9840 ld.w r2, (r14, 0x0) + 30c0: 3400 movi r4, 0 + 30c2: 610a subu r4, r2 + 30c4: b880 st.w r4, (r14, 0x0) + 30c6: 3200 movi r2, 0 + 30c8: 9802 ld.w r0, (r14, 0x8) + 30ca: 6c57 mov r1, r5 + 30cc: e000064c bsr 0x3d64 // 3d64 <__subdf3> + 30d0: b803 st.w r0, (r14, 0xc) + 30d2: b824 st.w r1, (r14, 0x10) + 30d4: 9803 ld.w r0, (r14, 0xc) + 30d6: 6c9f mov r2, r7 + 30d8: 6cdb mov r3, r6 + 30da: 9824 ld.w r1, (r14, 0x10) + 30dc: e000062c bsr 0x3d34 // 3d34 <__adddf3> + 30e0: 3200 movi r2, 0 + 30e2: 0374 lrw r3, 0x3fe62e43 // 330c <__GI_pow+0x958> + 30e4: 3000 movi r0, 0 + 30e6: 6d07 mov r4, r1 + 30e8: e000065a bsr 0x3d9c // 3d9c <__muldf3> + 30ec: 6d47 mov r5, r1 + 30ee: 9843 ld.w r2, (r14, 0xc) + 30f0: 9864 ld.w r3, (r14, 0x10) + 30f2: b802 st.w r0, (r14, 0x8) + 30f4: 6c53 mov r1, r4 + 30f6: 3000 movi r0, 0 + 30f8: e0000636 bsr 0x3d64 // 3d64 <__subdf3> + 30fc: 6c83 mov r2, r0 + 30fe: 6cc7 mov r3, r1 + 3100: 6c1f mov r0, r7 + 3102: 6c5b mov r1, r6 + 3104: e0000630 bsr 0x3d64 // 3d64 <__subdf3> + 3108: 035d lrw r2, 0xfefa39ef // 3310 <__GI_pow+0x95c> + 310a: 037c lrw r3, 0x3fe62e42 // 3314 <__GI_pow+0x960> + 310c: e0000648 bsr 0x3d9c // 3d9c <__muldf3> + 3110: 6dc3 mov r7, r0 + 3112: 6d87 mov r6, r1 + 3114: 035e lrw r2, 0xca86c39 // 3318 <__GI_pow+0x964> + 3116: 037d lrw r3, 0xbe205c61 // 331c <__GI_pow+0x968> + 3118: 6c53 mov r1, r4 + 311a: 3000 movi r0, 0 + 311c: e0000640 bsr 0x3d9c // 3d9c <__muldf3> + 3120: 6c83 mov r2, r0 + 3122: 6cc7 mov r3, r1 + 3124: 6c1f mov r0, r7 + 3126: 6c5b mov r1, r6 + 3128: e0000606 bsr 0x3d34 // 3d34 <__adddf3> + 312c: 6d07 mov r4, r1 + 312e: 6c83 mov r2, r0 + 3130: 6cc7 mov r3, r1 + 3132: b803 st.w r0, (r14, 0xc) + 3134: 6c57 mov r1, r5 + 3136: 9802 ld.w r0, (r14, 0x8) + 3138: e00005fe bsr 0x3d34 // 3d34 <__adddf3> + 313c: 9842 ld.w r2, (r14, 0x8) + 313e: 6cd7 mov r3, r5 + 3140: 6dc3 mov r7, r0 + 3142: 6d87 mov r6, r1 + 3144: e0000610 bsr 0x3d64 // 3d64 <__subdf3> + 3148: 6c83 mov r2, r0 + 314a: 6cc7 mov r3, r1 + 314c: 9803 ld.w r0, (r14, 0xc) + 314e: 6c53 mov r1, r4 + 3150: e000060a bsr 0x3d64 // 3d64 <__subdf3> + 3154: b802 st.w r0, (r14, 0x8) + 3156: b823 st.w r1, (r14, 0xc) + 3158: 6c9f mov r2, r7 + 315a: 6cdb mov r3, r6 + 315c: 6c1f mov r0, r7 + 315e: 6c5b mov r1, r6 + 3160: e000061e bsr 0x3d9c // 3d9c <__muldf3> + 3164: 134f lrw r2, 0x72bea4d0 // 3320 <__GI_pow+0x96c> + 3166: 1370 lrw r3, 0x3e663769 // 3324 <__GI_pow+0x970> + 3168: 6d43 mov r5, r0 + 316a: 6d07 mov r4, r1 + 316c: e0000618 bsr 0x3d9c // 3d9c <__muldf3> + 3170: 134e lrw r2, 0xc5d26bf1 // 3328 <__GI_pow+0x974> + 3172: 136f lrw r3, 0x3ebbbd41 // 332c <__GI_pow+0x978> + 3174: e00005f8 bsr 0x3d64 // 3d64 <__subdf3> + 3178: 6c97 mov r2, r5 + 317a: 6cd3 mov r3, r4 + 317c: e0000610 bsr 0x3d9c // 3d9c <__muldf3> + 3180: 134c lrw r2, 0xaf25de2c // 3330 <__GI_pow+0x97c> + 3182: 136d lrw r3, 0x3f11566a // 3334 <__GI_pow+0x980> + 3184: e00005d8 bsr 0x3d34 // 3d34 <__adddf3> + 3188: 6c97 mov r2, r5 + 318a: 6cd3 mov r3, r4 + 318c: e0000608 bsr 0x3d9c // 3d9c <__muldf3> + 3190: 134a lrw r2, 0x16bebd93 // 3338 <__GI_pow+0x984> + 3192: 136b lrw r3, 0x3f66c16c // 333c <__GI_pow+0x988> + 3194: e00005e8 bsr 0x3d64 // 3d64 <__subdf3> + 3198: 6c97 mov r2, r5 + 319a: 6cd3 mov r3, r4 + 319c: e0000600 bsr 0x3d9c // 3d9c <__muldf3> + 31a0: 1348 lrw r2, 0x5555553e // 3340 <__GI_pow+0x98c> + 31a2: 1369 lrw r3, 0x3fc55555 // 3344 <__GI_pow+0x990> + 31a4: e00005c8 bsr 0x3d34 // 3d34 <__adddf3> + 31a8: 6c97 mov r2, r5 + 31aa: 6cd3 mov r3, r4 + 31ac: e00005f8 bsr 0x3d9c // 3d9c <__muldf3> + 31b0: 6c83 mov r2, r0 + 31b2: 6cc7 mov r3, r1 + 31b4: 6c1f mov r0, r7 + 31b6: 6c5b mov r1, r6 + 31b8: e00005d6 bsr 0x3d64 // 3d64 <__subdf3> + 31bc: 6d43 mov r5, r0 + 31be: 6d07 mov r4, r1 + 31c0: 6c83 mov r2, r0 + 31c2: 6cc7 mov r3, r1 + 31c4: 6c1f mov r0, r7 + 31c6: 6c5b mov r1, r6 + 31c8: e00005ea bsr 0x3d9c // 3d9c <__muldf3> + 31cc: 3380 movi r3, 128 + 31ce: b804 st.w r0, (r14, 0x10) + 31d0: b825 st.w r1, (r14, 0x14) + 31d2: 3200 movi r2, 0 + 31d4: 4377 lsli r3, r3, 23 + 31d6: 6c17 mov r0, r5 + 31d8: 6c53 mov r1, r4 + 31da: e00005c5 bsr 0x3d64 // 3d64 <__subdf3> + 31de: 6c83 mov r2, r0 + 31e0: 6cc7 mov r3, r1 + 31e2: 9804 ld.w r0, (r14, 0x10) + 31e4: 9825 ld.w r1, (r14, 0x14) + 31e6: e00006f5 bsr 0x3fd0 // 3fd0 <__divdf3> + 31ea: 6d07 mov r4, r1 + 31ec: 6d43 mov r5, r0 + 31ee: 9842 ld.w r2, (r14, 0x8) + 31f0: 9863 ld.w r3, (r14, 0xc) + 31f2: 6c1f mov r0, r7 + 31f4: 6c5b mov r1, r6 + 31f6: e00005d3 bsr 0x3d9c // 3d9c <__muldf3> + 31fa: 9842 ld.w r2, (r14, 0x8) + 31fc: 9863 ld.w r3, (r14, 0xc) + 31fe: e000059b bsr 0x3d34 // 3d34 <__adddf3> + 3202: 6c83 mov r2, r0 + 3204: 6cc7 mov r3, r1 + 3206: 6c17 mov r0, r5 + 3208: 6c53 mov r1, r4 + 320a: e00005ad bsr 0x3d64 // 3d64 <__subdf3> + 320e: 6c9f mov r2, r7 + 3210: 6cdb mov r3, r6 + 3212: e00005a9 bsr 0x3d64 // 3d64 <__subdf3> + 3216: 6c83 mov r2, r0 + 3218: 6cc7 mov r3, r1 + 321a: 3000 movi r0, 0 + 321c: 1135 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 321e: e00005a3 bsr 0x3d64 // 3d64 <__subdf3> + 3222: 9840 ld.w r2, (r14, 0x0) + 3224: 4274 lsli r3, r2, 20 + 3226: 60c4 addu r3, r1 + 3228: 5394 asri r4, r3, 20 + 322a: 3c20 cmplti r4, 1 + 322c: 0c2f bf 0x328a // 328a <__GI_pow+0x8d6> + 322e: 9840 ld.w r2, (r14, 0x0) + 3230: e000009a bsr 0x3364 // 3364 <__GI_scalbn> + 3234: 3200 movi r2, 0 + 3236: 9861 ld.w r3, (r14, 0x4) + 3238: e800fc56 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 323c: 4401 lsli r0, r4, 1 + 323e: 4861 lsri r3, r0, 1 + 3240: 1242 lrw r2, 0x4090cbff // 3348 <__GI_pow+0x994> + 3242: 64c9 cmplt r2, r3 + 3244: 0f1f bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3246: 1222 lrw r1, 0x3f6f3400 // 334c <__GI_pow+0x998> + 3248: 6050 addu r1, r4 + 324a: 9800 ld.w r0, (r14, 0x0) + 324c: 6c40 or r1, r0 + 324e: 3940 cmpnei r1, 0 + 3250: 0c0b bf 0x3266 // 3266 <__GI_pow+0x8b2> + 3252: 1240 lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3254: 1260 lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3256: 3000 movi r0, 0 + 3258: 9821 ld.w r1, (r14, 0x4) + 325a: e00005a1 bsr 0x3d9c // 3d9c <__muldf3> + 325e: 115d lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3260: 117d lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3262: e800fc41 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 3266: 9842 ld.w r2, (r14, 0x8) + 3268: 6cd7 mov r3, r5 + 326a: 9800 ld.w r0, (r14, 0x0) + 326c: 6c53 mov r1, r4 + 326e: e000057b bsr 0x3d64 // 3d64 <__subdf3> + 3272: 6c83 mov r2, r0 + 3274: 6cc7 mov r3, r1 + 3276: 6c1f mov r0, r7 + 3278: 6c5b mov r1, r6 + 327a: e0000791 bsr 0x419c // 419c <__ledf2> + 327e: 3820 cmplti r0, 1 + 3280: 0f01 bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3282: 07e8 br 0x3252 // 3252 <__GI_pow+0x89e> + 3284: 3500 movi r5, 0 + 3286: b8a0 st.w r5, (r14, 0x0) + 3288: 0726 br 0x30d4 // 30d4 <__GI_pow+0x720> + 328a: 6c4f mov r1, r3 + 328c: 07d4 br 0x3234 // 3234 <__GI_pow+0x880> + 328e: 3400 movi r4, 0 + 3290: 1038 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3292: e800fbb5 br 0x29fc // 29fc <__GI_pow+0x48> + 3296: 3400 movi r4, 0 + 3298: 9820 ld.w r1, (r14, 0x0) + 329a: e800fbb1 br 0x29fc // 29fc <__GI_pow+0x48> + 329e: 6d1f mov r4, r7 + 32a0: 6c5b mov r1, r6 + 32a2: e800fbad br 0x29fc // 29fc <__GI_pow+0x48> + 32a6: 0000 bkpt + 32a8: 4a454eef .long 0x4a454eef + 32ac: 3fca7e28 .long 0x3fca7e28 + 32b0: 93c9db65 .long 0x93c9db65 + 32b4: 3fcd864a .long 0x3fcd864a + 32b8: a91d4101 .long 0xa91d4101 + 32bc: 3fd17460 .long 0x3fd17460 + 32c0: 518f264d .long 0x518f264d + 32c4: 3fd55555 .long 0x3fd55555 + 32c8: db6fabff .long 0xdb6fabff + 32cc: 3fdb6db6 .long 0x3fdb6db6 + 32d0: 33333303 .long 0x33333303 + 32d4: 3fe33333 .long 0x3fe33333 + 32d8: 40080000 .long 0x40080000 + 32dc: 3feec709 .long 0x3feec709 + 32e0: dc3a03fd .long 0xdc3a03fd + 32e4: 145b01f5 .long 0x145b01f5 + 32e8: be3e2fe0 .long 0xbe3e2fe0 + 32ec: 0000ab98 .long 0x0000ab98 + 32f0: 3ff00000 .long 0x3ff00000 + 32f4: 652b82fe .long 0x652b82fe + 32f8: 3c971547 .long 0x3c971547 + 32fc: 3fe00000 .long 0x3fe00000 + 3300: fffffc02 .long 0xfffffc02 + 3304: fffffc01 .long 0xfffffc01 + 3308: 000fffff .long 0x000fffff + 330c: 3fe62e43 .long 0x3fe62e43 + 3310: fefa39ef .long 0xfefa39ef + 3314: 3fe62e42 .long 0x3fe62e42 + 3318: 0ca86c39 .long 0x0ca86c39 + 331c: be205c61 .long 0xbe205c61 + 3320: 72bea4d0 .long 0x72bea4d0 + 3324: 3e663769 .long 0x3e663769 + 3328: c5d26bf1 .long 0xc5d26bf1 + 332c: 3ebbbd41 .long 0x3ebbbd41 + 3330: af25de2c .long 0xaf25de2c + 3334: 3f11566a .long 0x3f11566a + 3338: 16bebd93 .long 0x16bebd93 + 333c: 3f66c16c .long 0x3f66c16c + 3340: 5555553e .long 0x5555553e + 3344: 3fc55555 .long 0x3fc55555 + 3348: 4090cbff .long 0x4090cbff + 334c: 3f6f3400 .long 0x3f6f3400 + 3350: c2f8f359 .long 0xc2f8f359 + 3354: 01a56e1f .long 0x01a56e1f + 3358: 3300 movi r3, 0 + 335a: e800fb94 br 0x2a82 // 2a82 <__GI_pow+0xce> + +0000335e <__GI_fabs>: + 335e: 4121 lsli r1, r1, 1 + 3360: 4921 lsri r1, r1, 1 + 3362: 783c jmp r15 + +00003364 <__GI_scalbn>: + 3364: 14c1 push r4 + 3366: 6cc7 mov r3, r1 + 3368: 6cc0 or r3, r0 + 336a: 3b40 cmpnei r3, 0 + 336c: 0c08 bf 0x337c // 337c <__GI_scalbn+0x18> + 336e: 1065 lrw r3, 0x7ff00000 // 3380 <__GI_scalbn+0x1c> + 3370: 6d07 mov r4, r1 + 3372: 690c and r4, r3 + 3374: 4254 lsli r2, r2, 20 + 3376: 6090 addu r2, r4 + 3378: 684d andn r1, r3 + 337a: 6c48 or r1, r2 + 337c: 1481 pop r4 + 337e: 0000 bkpt + 3380: 7ff00000 .long 0x7ff00000 + +00003384 <__GI_sqrt>: + 3384: 14d4 push r4-r7, r15 + 3386: 1423 subi r14, r14, 12 + 3388: 127a lrw r3, 0x7ff00000 // 34f0 <__GI_sqrt+0x16c> + 338a: 6d43 mov r5, r0 + 338c: 6d07 mov r4, r1 + 338e: 6c07 mov r0, r1 + 3390: 684c and r1, r3 + 3392: 64c6 cmpne r1, r3 + 3394: 6c97 mov r2, r5 + 3396: 0812 bt 0x33ba // 33ba <__GI_sqrt+0x36> + 3398: 6cd3 mov r3, r4 + 339a: 6c17 mov r0, r5 + 339c: 6c53 mov r1, r4 + 339e: e00004ff bsr 0x3d9c // 3d9c <__muldf3> + 33a2: 6c83 mov r2, r0 + 33a4: 6cc7 mov r3, r1 + 33a6: 6c17 mov r0, r5 + 33a8: 6c53 mov r1, r4 + 33aa: e00004c5 bsr 0x3d34 // 3d34 <__adddf3> + 33ae: 6d43 mov r5, r0 + 33b0: 6d07 mov r4, r1 + 33b2: 6c17 mov r0, r5 + 33b4: 6c53 mov r1, r4 + 33b6: 1403 addi r14, r14, 12 + 33b8: 1494 pop r4-r7, r15 + 33ba: 3c20 cmplti r4, 1 + 33bc: 0c13 bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33be: 4461 lsli r3, r4, 1 + 33c0: 4b21 lsri r1, r3, 1 + 33c2: 6c54 or r1, r5 + 33c4: 3940 cmpnei r1, 0 + 33c6: 0ff6 bf 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 33c8: 3c40 cmpnei r4, 0 + 33ca: 0c0c bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33cc: 6c97 mov r2, r5 + 33ce: 6cd3 mov r3, r4 + 33d0: 6c17 mov r0, r5 + 33d2: 6c53 mov r1, r4 + 33d4: e00004c8 bsr 0x3d64 // 3d64 <__subdf3> + 33d8: 6c83 mov r2, r0 + 33da: 6cc7 mov r3, r1 + 33dc: e00005fa bsr 0x3fd0 // 3fd0 <__divdf3> + 33e0: 07e7 br 0x33ae // 33ae <__GI_sqrt+0x2a> + 33e2: 5494 asri r4, r4, 20 + 33e4: 3c40 cmpnei r4, 0 + 33e6: 0812 bt 0x340a // 340a <__GI_sqrt+0x86> + 33e8: 3840 cmpnei r0, 0 + 33ea: 0c76 bf 0x34d6 // 34d6 <__GI_sqrt+0x152> + 33ec: 3580 movi r5, 128 + 33ee: 3300 movi r3, 0 + 33f0: 452d lsli r1, r5, 13 + 33f2: 6d83 mov r6, r0 + 33f4: 6984 and r6, r1 + 33f6: 3e40 cmpnei r6, 0 + 33f8: 0c73 bf 0x34de // 34de <__GI_sqrt+0x15a> + 33fa: 5b23 subi r1, r3, 1 + 33fc: 3620 movi r6, 32 + 33fe: 6106 subu r4, r1 + 3400: 618e subu r6, r3 + 3402: 6c4b mov r1, r2 + 3404: 7059 lsr r1, r6 + 3406: 6c04 or r0, r1 + 3408: 708c lsl r2, r3 + 340a: 117b lrw r3, 0xfffffc01 // 34f4 <__GI_sqrt+0x170> + 340c: 610c addu r4, r3 + 340e: 3601 movi r6, 1 + 3410: 400c lsli r0, r0, 12 + 3412: 6990 and r6, r4 + 3414: 480c lsri r0, r0, 12 + 3416: 3e40 cmpnei r6, 0 + 3418: 38b4 bseti r0, 20 + 341a: 0c05 bf 0x3424 // 3424 <__GI_sqrt+0xa0> + 341c: 4a3f lsri r1, r2, 31 + 341e: 40a1 lsli r5, r0, 1 + 3420: 5914 addu r0, r1, r5 + 3422: 4241 lsli r2, r2, 1 + 3424: 4a7f lsri r3, r2, 31 + 3426: 60c0 addu r3, r0 + 3428: 5481 asri r4, r4, 1 + 342a: 3680 movi r6, 128 + 342c: 3100 movi r1, 0 + 342e: 60c0 addu r3, r0 + 3430: b882 st.w r4, (r14, 0x8) + 3432: 4241 lsli r2, r2, 1 + 3434: 3516 movi r5, 22 + 3436: 460e lsli r0, r6, 14 + 3438: b820 st.w r1, (r14, 0x0) + 343a: 5980 addu r4, r1, r0 + 343c: 650d cmplt r3, r4 + 343e: 0806 bt 0x344a // 344a <__GI_sqrt+0xc6> + 3440: 98c0 ld.w r6, (r14, 0x0) + 3442: 6180 addu r6, r0 + 3444: 5c20 addu r1, r4, r0 + 3446: 60d2 subu r3, r4 + 3448: b8c0 st.w r6, (r14, 0x0) + 344a: 2d00 subi r5, 1 + 344c: 4a9f lsri r4, r2, 31 + 344e: 4361 lsli r3, r3, 1 + 3450: 3d40 cmpnei r5, 0 + 3452: 60d0 addu r3, r4 + 3454: 4241 lsli r2, r2, 1 + 3456: 4801 lsri r0, r0, 1 + 3458: 0bf1 bt 0x343a // 343a <__GI_sqrt+0xb6> + 345a: 3620 movi r6, 32 + 345c: 3480 movi r4, 128 + 345e: 3000 movi r0, 0 + 3460: b8c1 st.w r6, (r14, 0x4) + 3462: 4498 lsli r4, r4, 24 + 3464: 64c5 cmplt r1, r3 + 3466: 5cd4 addu r6, r4, r5 + 3468: 0805 bt 0x3472 // 3472 <__GI_sqrt+0xee> + 346a: 644e cmpne r3, r1 + 346c: 0810 bt 0x348c // 348c <__GI_sqrt+0x108> + 346e: 6588 cmphs r2, r6 + 3470: 0c0e bf 0x348c // 348c <__GI_sqrt+0x108> + 3472: 3edf btsti r6, 31 + 3474: 5eb0 addu r5, r6, r4 + 3476: 0c37 bf 0x34e4 // 34e4 <__GI_sqrt+0x160> + 3478: 3ddf btsti r5, 31 + 347a: 0835 bt 0x34e4 // 34e4 <__GI_sqrt+0x160> + 347c: 59e2 addi r7, r1, 1 + 347e: 6588 cmphs r2, r6 + 3480: 60c6 subu r3, r1 + 3482: 0802 bt 0x3486 // 3486 <__GI_sqrt+0x102> + 3484: 2b00 subi r3, 1 + 3486: 609a subu r2, r6 + 3488: 6010 addu r0, r4 + 348a: 6c5f mov r1, r7 + 348c: 4adf lsri r6, r2, 31 + 348e: 618c addu r6, r3 + 3490: 60d8 addu r3, r6 + 3492: 98c1 ld.w r6, (r14, 0x4) + 3494: 2e00 subi r6, 1 + 3496: 3e40 cmpnei r6, 0 + 3498: 4241 lsli r2, r2, 1 + 349a: 4c81 lsri r4, r4, 1 + 349c: b8c1 st.w r6, (r14, 0x4) + 349e: 0be3 bt 0x3464 // 3464 <__GI_sqrt+0xe0> + 34a0: 6cc8 or r3, r2 + 34a2: 3b40 cmpnei r3, 0 + 34a4: 0c09 bf 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34a6: 3300 movi r3, 0 + 34a8: 2b00 subi r3, 1 + 34aa: 64c2 cmpne r0, r3 + 34ac: 081e bt 0x34e8 // 34e8 <__GI_sqrt+0x164> + 34ae: 9800 ld.w r0, (r14, 0x0) + 34b0: 2000 addi r0, 1 + 34b2: b800 st.w r0, (r14, 0x0) + 34b4: 3000 movi r0, 0 + 34b6: 3401 movi r4, 1 + 34b8: 9860 ld.w r3, (r14, 0x0) + 34ba: 98a0 ld.w r5, (r14, 0x0) + 34bc: 690c and r4, r3 + 34be: 5541 asri r2, r5, 1 + 34c0: 102e lrw r1, 0x3fe00000 // 34f8 <__GI_sqrt+0x174> + 34c2: 3c40 cmpnei r4, 0 + 34c4: 6048 addu r1, r2 + 34c6: 4801 lsri r0, r0, 1 + 34c8: 0c02 bf 0x34cc // 34cc <__GI_sqrt+0x148> + 34ca: 38bf bseti r0, 31 + 34cc: 98a2 ld.w r5, (r14, 0x8) + 34ce: 4594 lsli r4, r5, 20 + 34d0: 6104 addu r4, r1 + 34d2: 6d43 mov r5, r0 + 34d4: 076f br 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 34d6: 4a0b lsri r0, r2, 11 + 34d8: 2c14 subi r4, 21 + 34da: 4255 lsli r2, r2, 21 + 34dc: 0786 br 0x33e8 // 33e8 <__GI_sqrt+0x64> + 34de: 4001 lsli r0, r0, 1 + 34e0: 2300 addi r3, 1 + 34e2: 0788 br 0x33f2 // 33f2 <__GI_sqrt+0x6e> + 34e4: 6dc7 mov r7, r1 + 34e6: 07cc br 0x347e // 347e <__GI_sqrt+0xfa> + 34e8: 2000 addi r0, 1 + 34ea: 3880 bclri r0, 0 + 34ec: 07e5 br 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34ee: 0000 bkpt + 34f0: 7ff00000 .long 0x7ff00000 + 34f4: fffffc01 .long 0xfffffc01 + 34f8: 3fe00000 .long 0x3fe00000 + +000034fc <___gnu_csky_case_uqi>: + 34fc: 1421 subi r14, r14, 4 + 34fe: b820 st.w r1, (r14, 0x0) + 3500: 6c7f mov r1, r15 + 3502: 6040 addu r1, r0 + 3504: 8120 ld.b r1, (r1, 0x0) + 3506: 4121 lsli r1, r1, 1 + 3508: 63c4 addu r15, r1 + 350a: 9820 ld.w r1, (r14, 0x0) + 350c: 1401 addi r14, r14, 4 + 350e: 783c jmp r15 + +00003510 <___gnu_csky_case_uhi>: + 3510: 1422 subi r14, r14, 8 + 3512: b801 st.w r0, (r14, 0x4) + 3514: b820 st.w r1, (r14, 0x0) + 3516: 6c7f mov r1, r15 + 3518: 4001 lsli r0, r0, 1 + 351a: 6040 addu r1, r0 + 351c: 8920 ld.h r1, (r1, 0x0) + 351e: 4121 lsli r1, r1, 1 + 3520: 63c4 addu r15, r1 + 3522: 9801 ld.w r0, (r14, 0x4) + 3524: 9820 ld.w r1, (r14, 0x0) + 3526: 1402 addi r14, r14, 8 + 3528: 783c jmp r15 + ... + +0000352c <__fixunssfsi>: + 352c: 14d1 push r4, r15 + 352e: 319e movi r1, 158 + 3530: 4137 lsli r1, r1, 23 + 3532: 6d03 mov r4, r0 + 3534: e000020c bsr 0x394c // 394c <__gesf2> + 3538: 38df btsti r0, 31 + 353a: 0c05 bf 0x3544 // 3544 <__fixunssfsi+0x18> + 353c: 6c13 mov r0, r4 + 353e: e0000255 bsr 0x39e8 // 39e8 <__fixsfsi> + 3542: 1491 pop r4, r15 + 3544: 319e movi r1, 158 + 3546: 4137 lsli r1, r1, 23 + 3548: 6c13 mov r0, r4 + 354a: e00000e1 bsr 0x370c // 370c <__subsf3> + 354e: e000024d bsr 0x39e8 // 39e8 <__fixsfsi> + 3552: 3380 movi r3, 128 + 3554: 4378 lsli r3, r3, 24 + 3556: 600c addu r0, r3 + 3558: 1491 pop r4, r15 + ... + +0000355c <__fixunsdfsi>: + 355c: 14d2 push r4-r5, r15 + 355e: 3200 movi r2, 0 + 3560: 106c lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 3562: 6d43 mov r5, r0 + 3564: 6d07 mov r4, r1 + 3566: e00005fd bsr 0x4160 // 4160 <__gedf2> + 356a: 38df btsti r0, 31 + 356c: 0c06 bf 0x3578 // 3578 <__fixunsdfsi+0x1c> + 356e: 6c17 mov r0, r5 + 3570: 6c53 mov r1, r4 + 3572: e000066b bsr 0x4248 // 4248 <__fixdfsi> + 3576: 1492 pop r4-r5, r15 + 3578: 3200 movi r2, 0 + 357a: 1066 lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 357c: 6c17 mov r0, r5 + 357e: 6c53 mov r1, r4 + 3580: e00003f2 bsr 0x3d64 // 3d64 <__subdf3> + 3584: e0000662 bsr 0x4248 // 4248 <__fixdfsi> + 3588: 3380 movi r3, 128 + 358a: 4378 lsli r3, r3, 24 + 358c: 600c addu r0, r3 + 358e: 1492 pop r4-r5, r15 + 3590: 41e00000 .long 0x41e00000 + +00003594 <_fpadd_parts>: + 3594: 14c4 push r4-r7 + 3596: 1421 subi r14, r14, 4 + 3598: 9060 ld.w r3, (r0, 0x0) + 359a: 3b01 cmphsi r3, 2 + 359c: 0c3b bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 359e: 9180 ld.w r4, (r1, 0x0) + 35a0: 3c01 cmphsi r4, 2 + 35a2: 0c3a bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35a4: 3b44 cmpnei r3, 4 + 35a6: 0c76 bf 0x3692 // 3692 <_fpadd_parts+0xfe> + 35a8: 3c44 cmpnei r4, 4 + 35aa: 0c36 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35ac: 3c42 cmpnei r4, 2 + 35ae: 0c5c bf 0x3666 // 3666 <_fpadd_parts+0xd2> + 35b0: 3b42 cmpnei r3, 2 + 35b2: 0c32 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35b4: 90a2 ld.w r5, (r0, 0x8) + 35b6: 91e2 ld.w r7, (r1, 0x8) + 35b8: 5d9d subu r4, r5, r7 + 35ba: 9063 ld.w r3, (r0, 0xc) + 35bc: 3cdf btsti r4, 31 + 35be: b860 st.w r3, (r14, 0x0) + 35c0: 6d93 mov r6, r4 + 35c2: 9163 ld.w r3, (r1, 0xc) + 35c4: 086f bt 0x36a2 // 36a2 <_fpadd_parts+0x10e> + 35c6: 3e3f cmplti r6, 32 + 35c8: 082a bt 0x361c // 361c <_fpadd_parts+0x88> + 35ca: 655d cmplt r7, r5 + 35cc: 0c5f bf 0x368a // 368a <_fpadd_parts+0xf6> + 35ce: 3300 movi r3, 0 + 35d0: 9001 ld.w r0, (r0, 0x4) + 35d2: 9121 ld.w r1, (r1, 0x4) + 35d4: 6442 cmpne r0, r1 + 35d6: 0c33 bf 0x363c // 363c <_fpadd_parts+0xa8> + 35d8: 3840 cmpnei r0, 0 + 35da: 9820 ld.w r1, (r14, 0x0) + 35dc: 0c54 bf 0x3684 // 3684 <_fpadd_parts+0xf0> + 35de: 60c6 subu r3, r1 + 35e0: 3bdf btsti r3, 31 + 35e2: 0863 bt 0x36a8 // 36a8 <_fpadd_parts+0x114> + 35e4: 3100 movi r1, 0 + 35e6: b221 st.w r1, (r2, 0x4) + 35e8: b2a2 st.w r5, (r2, 0x8) + 35ea: b263 st.w r3, (r2, 0xc) + 35ec: 5b23 subi r1, r3, 1 + 35ee: 119b lrw r4, 0x3fffffff // 36d8 <_fpadd_parts+0x144> + 35f0: 6504 cmphs r1, r4 + 35f2: 080b bt 0x3608 // 3608 <_fpadd_parts+0x74> + 35f4: 9222 ld.w r1, (r2, 0x8) + 35f6: 2900 subi r1, 1 + 35f8: 4361 lsli r3, r3, 1 + 35fa: 5b03 subi r0, r3, 1 + 35fc: 6410 cmphs r4, r0 + 35fe: 6d47 mov r5, r1 + 3600: 2900 subi r1, 1 + 3602: 0bfb bt 0x35f8 // 35f8 <_fpadd_parts+0x64> + 3604: b263 st.w r3, (r2, 0xc) + 3606: b2a2 st.w r5, (r2, 0x8) + 3608: 3103 movi r1, 3 + 360a: 3bdf btsti r3, 31 + 360c: b220 st.w r1, (r2, 0x0) + 360e: 0821 bt 0x3650 // 3650 <_fpadd_parts+0xbc> + 3610: 6c0b mov r0, r2 + 3612: 1401 addi r14, r14, 4 + 3614: 1484 pop r4-r7 + 3616: 6c07 mov r0, r1 + 3618: 1401 addi r14, r14, 4 + 361a: 1484 pop r4-r7 + 361c: 3c20 cmplti r4, 1 + 361e: 084c bt 0x36b6 // 36b6 <_fpadd_parts+0x122> + 3620: 3401 movi r4, 1 + 3622: 7118 lsl r4, r6 + 3624: 2c00 subi r4, 1 + 3626: 6dcf mov r7, r3 + 3628: 68d0 and r3, r4 + 362a: 3b40 cmpnei r3, 0 + 362c: 9001 ld.w r0, (r0, 0x4) + 362e: 3300 movi r3, 0 + 3630: 9121 ld.w r1, (r1, 0x4) + 3632: 60cd addc r3, r3 + 3634: 71d9 lsr r7, r6 + 3636: 6442 cmpne r0, r1 + 3638: 6cdc or r3, r7 + 363a: 0bcf bt 0x35d8 // 35d8 <_fpadd_parts+0x44> + 363c: 9820 ld.w r1, (r14, 0x0) + 363e: 604c addu r1, r3 + 3640: 6cc7 mov r3, r1 + 3642: b223 st.w r1, (r2, 0xc) + 3644: 3bdf btsti r3, 31 + 3646: 3103 movi r1, 3 + 3648: b201 st.w r0, (r2, 0x4) + 364a: b2a2 st.w r5, (r2, 0x8) + 364c: b220 st.w r1, (r2, 0x0) + 364e: 0fe1 bf 0x3610 // 3610 <_fpadd_parts+0x7c> + 3650: 3001 movi r0, 1 + 3652: 4b21 lsri r1, r3, 1 + 3654: 68c0 and r3, r0 + 3656: 6cc4 or r3, r1 + 3658: b263 st.w r3, (r2, 0xc) + 365a: 9262 ld.w r3, (r2, 0x8) + 365c: 2300 addi r3, 1 + 365e: 6c0b mov r0, r2 + 3660: b262 st.w r3, (r2, 0x8) + 3662: 1401 addi r14, r14, 4 + 3664: 1484 pop r4-r7 + 3666: 3b42 cmpnei r3, 2 + 3668: 0bd5 bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 366a: b260 st.w r3, (r2, 0x0) + 366c: 9061 ld.w r3, (r0, 0x4) + 366e: b261 st.w r3, (r2, 0x4) + 3670: 9062 ld.w r3, (r0, 0x8) + 3672: b262 st.w r3, (r2, 0x8) + 3674: 9063 ld.w r3, (r0, 0xc) + 3676: 9121 ld.w r1, (r1, 0x4) + 3678: b263 st.w r3, (r2, 0xc) + 367a: 9061 ld.w r3, (r0, 0x4) + 367c: 68c4 and r3, r1 + 367e: b261 st.w r3, (r2, 0x4) + 3680: 6c0b mov r0, r2 + 3682: 07c8 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 3684: 604e subu r1, r3 + 3686: 6cc7 mov r3, r1 + 3688: 07ac br 0x35e0 // 35e0 <_fpadd_parts+0x4c> + 368a: 3400 movi r4, 0 + 368c: 6d5f mov r5, r7 + 368e: b880 st.w r4, (r14, 0x0) + 3690: 07a0 br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 3692: 3c44 cmpnei r4, 4 + 3694: 0bbf bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 3696: 9041 ld.w r2, (r0, 0x4) + 3698: 9161 ld.w r3, (r1, 0x4) + 369a: 64ca cmpne r2, r3 + 369c: 0fbb bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 369e: 1010 lrw r0, 0xabc8 // 36dc <_fpadd_parts+0x148> + 36a0: 07b9 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 36a2: 3600 movi r6, 0 + 36a4: 6192 subu r6, r4 + 36a6: 0790 br 0x35c6 // 35c6 <_fpadd_parts+0x32> + 36a8: 3101 movi r1, 1 + 36aa: b221 st.w r1, (r2, 0x4) + 36ac: 3100 movi r1, 0 + 36ae: 596d subu r3, r1, r3 + 36b0: b2a2 st.w r5, (r2, 0x8) + 36b2: b263 st.w r3, (r2, 0xc) + 36b4: 079c br 0x35ec // 35ec <_fpadd_parts+0x58> + 36b6: 3c40 cmpnei r4, 0 + 36b8: 0f8c bf 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36ba: 3401 movi r4, 1 + 36bc: 98e0 ld.w r7, (r14, 0x0) + 36be: 7118 lsl r4, r6 + 36c0: 71d9 lsr r7, r6 + 36c2: 6158 addu r5, r6 + 36c4: 2c00 subi r4, 1 + 36c6: 98c0 ld.w r6, (r14, 0x0) + 36c8: 6918 and r4, r6 + 36ca: 3c40 cmpnei r4, 0 + 36cc: 3400 movi r4, 0 + 36ce: 6111 addc r4, r4 + 36d0: 6dd0 or r7, r4 + 36d2: b8e0 st.w r7, (r14, 0x0) + 36d4: 077e br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36d6: 0000 bkpt + 36d8: 3fffffff .long 0x3fffffff + 36dc: 0000abc8 .long 0x0000abc8 + +000036e0 <__addsf3>: + 36e0: 14d0 push r15 + 36e2: 142e subi r14, r14, 56 + 36e4: b800 st.w r0, (r14, 0x0) + 36e6: b821 st.w r1, (r14, 0x4) + 36e8: 6c3b mov r0, r14 + 36ea: 1902 addi r1, r14, 8 + 36ec: e00006da bsr 0x44a0 // 44a0 <__unpack_f> + 36f0: 1906 addi r1, r14, 24 + 36f2: 1801 addi r0, r14, 4 + 36f4: e00006d6 bsr 0x44a0 // 44a0 <__unpack_f> + 36f8: 1a0a addi r2, r14, 40 + 36fa: 1906 addi r1, r14, 24 + 36fc: 1802 addi r0, r14, 8 + 36fe: e3ffff4b bsr 0x3594 // 3594 <_fpadd_parts> + 3702: e0000673 bsr 0x43e8 // 43e8 <__pack_f> + 3706: 140e addi r14, r14, 56 + 3708: 1490 pop r15 + ... + +0000370c <__subsf3>: + 370c: 14d0 push r15 + 370e: 142e subi r14, r14, 56 + 3710: b800 st.w r0, (r14, 0x0) + 3712: b821 st.w r1, (r14, 0x4) + 3714: 6c3b mov r0, r14 + 3716: 1902 addi r1, r14, 8 + 3718: e00006c4 bsr 0x44a0 // 44a0 <__unpack_f> + 371c: 1906 addi r1, r14, 24 + 371e: 1801 addi r0, r14, 4 + 3720: e00006c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3724: 9867 ld.w r3, (r14, 0x1c) + 3726: 3201 movi r2, 1 + 3728: 6cc9 xor r3, r2 + 372a: 1906 addi r1, r14, 24 + 372c: 1a0a addi r2, r14, 40 + 372e: 1802 addi r0, r14, 8 + 3730: b867 st.w r3, (r14, 0x1c) + 3732: e3ffff31 bsr 0x3594 // 3594 <_fpadd_parts> + 3736: e0000659 bsr 0x43e8 // 43e8 <__pack_f> + 373a: 140e addi r14, r14, 56 + 373c: 1490 pop r15 + ... + +00003740 <__mulsf3>: + 3740: 14d4 push r4-r7, r15 + 3742: 1430 subi r14, r14, 64 + 3744: b802 st.w r0, (r14, 0x8) + 3746: b823 st.w r1, (r14, 0xc) + 3748: 1802 addi r0, r14, 8 + 374a: 1904 addi r1, r14, 16 + 374c: e00006aa bsr 0x44a0 // 44a0 <__unpack_f> + 3750: 1908 addi r1, r14, 32 + 3752: 1803 addi r0, r14, 12 + 3754: e00006a6 bsr 0x44a0 // 44a0 <__unpack_f> + 3758: 9864 ld.w r3, (r14, 0x10) + 375a: 3b01 cmphsi r3, 2 + 375c: 0c4d bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 375e: 9848 ld.w r2, (r14, 0x20) + 3760: 3a01 cmphsi r2, 2 + 3762: 0c3d bf 0x37dc // 37dc <__mulsf3+0x9c> + 3764: 3b44 cmpnei r3, 4 + 3766: 0c46 bf 0x37f2 // 37f2 <__mulsf3+0xb2> + 3768: 3a44 cmpnei r2, 4 + 376a: 0c37 bf 0x37d8 // 37d8 <__mulsf3+0x98> + 376c: 3b42 cmpnei r3, 2 + 376e: 0c44 bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 3770: 3a42 cmpnei r2, 2 + 3772: 0c35 bf 0x37dc // 37dc <__mulsf3+0x9c> + 3774: 9867 ld.w r3, (r14, 0x1c) + 3776: b860 st.w r3, (r14, 0x0) + 3778: 986b ld.w r3, (r14, 0x2c) + 377a: 6c8f mov r2, r3 + 377c: b861 st.w r3, (r14, 0x4) + 377e: 9800 ld.w r0, (r14, 0x0) + 3780: 3300 movi r3, 0 + 3782: 3100 movi r1, 0 + 3784: e00005f0 bsr 0x4364 // 4364 <__muldi3> + 3788: 98c6 ld.w r6, (r14, 0x18) + 378a: 984a ld.w r2, (r14, 0x28) + 378c: 6098 addu r2, r6 + 378e: 5ac6 addi r6, r2, 2 + 3790: b8ce st.w r6, (r14, 0x38) + 3792: 98e5 ld.w r7, (r14, 0x14) + 3794: 98c9 ld.w r6, (r14, 0x24) + 3796: 659e cmpne r7, r6 + 3798: 3400 movi r4, 0 + 379a: 6111 addc r4, r4 + 379c: 39df btsti r1, 31 + 379e: 6cc7 mov r3, r1 + 37a0: 6d43 mov r5, r0 + 37a2: b88d st.w r4, (r14, 0x34) + 37a4: 0c3f bf 0x3822 // 3822 <__mulsf3+0xe2> + 37a6: 3301 movi r3, 1 + 37a8: 68c4 and r3, r1 + 37aa: 3b40 cmpnei r3, 0 + 37ac: 2202 addi r2, 3 + 37ae: 0811 bt 0x37d0 // 37d0 <__mulsf3+0x90> + 37b0: 4961 lsri r3, r1, 1 + 37b2: b84e st.w r2, (r14, 0x38) + 37b4: 317f movi r1, 127 + 37b6: 6c8f mov r2, r3 + 37b8: 6884 and r2, r1 + 37ba: 3040 movi r0, 64 + 37bc: 640a cmpne r2, r0 + 37be: 0c27 bf 0x380c // 380c <__mulsf3+0xcc> + 37c0: b86f st.w r3, (r14, 0x3c) + 37c2: 3303 movi r3, 3 + 37c4: b86c st.w r3, (r14, 0x30) + 37c6: 180c addi r0, r14, 48 + 37c8: e0000610 bsr 0x43e8 // 43e8 <__pack_f> + 37cc: 1410 addi r14, r14, 64 + 37ce: 1494 pop r4-r7, r15 + 37d0: 4801 lsri r0, r0, 1 + 37d2: 38bf bseti r0, 31 + 37d4: 6d43 mov r5, r0 + 37d6: 07ed br 0x37b0 // 37b0 <__mulsf3+0x70> + 37d8: 3b42 cmpnei r3, 2 + 37da: 0c22 bf 0x381e // 381e <__mulsf3+0xde> + 37dc: 9869 ld.w r3, (r14, 0x24) + 37de: 9845 ld.w r2, (r14, 0x14) + 37e0: 64ca cmpne r2, r3 + 37e2: 3300 movi r3, 0 + 37e4: 60cd addc r3, r3 + 37e6: 1808 addi r0, r14, 32 + 37e8: b869 st.w r3, (r14, 0x24) + 37ea: e00005ff bsr 0x43e8 // 43e8 <__pack_f> + 37ee: 1410 addi r14, r14, 64 + 37f0: 1494 pop r4-r7, r15 + 37f2: 3a42 cmpnei r2, 2 + 37f4: 0c15 bf 0x381e // 381e <__mulsf3+0xde> + 37f6: 9845 ld.w r2, (r14, 0x14) + 37f8: 9869 ld.w r3, (r14, 0x24) + 37fa: 64ca cmpne r2, r3 + 37fc: 3300 movi r3, 0 + 37fe: 60cd addc r3, r3 + 3800: 1804 addi r0, r14, 16 + 3802: b865 st.w r3, (r14, 0x14) + 3804: e00005f2 bsr 0x43e8 // 43e8 <__pack_f> + 3808: 1410 addi r14, r14, 64 + 380a: 1494 pop r4-r7, r15 + 380c: 3080 movi r0, 128 + 380e: 680c and r0, r3 + 3810: 3840 cmpnei r0, 0 + 3812: 0bd7 bt 0x37c0 // 37c0 <__mulsf3+0x80> + 3814: 3d40 cmpnei r5, 0 + 3816: 0fd5 bf 0x37c0 // 37c0 <__mulsf3+0x80> + 3818: 60c8 addu r3, r2 + 381a: 68c5 andn r3, r1 + 381c: 07d2 br 0x37c0 // 37c0 <__mulsf3+0x80> + 381e: 100d lrw r0, 0xabc8 // 3850 <__mulsf3+0x110> + 3820: 07d4 br 0x37c8 // 37c8 <__mulsf3+0x88> + 3822: 108d lrw r4, 0x3fffffff // 3854 <__mulsf3+0x114> + 3824: 6450 cmphs r4, r1 + 3826: 0fc7 bf 0x37b4 // 37b4 <__mulsf3+0x74> + 3828: 2200 addi r2, 1 + 382a: 3001 movi r0, 1 + 382c: 6c53 mov r1, r4 + 382e: 0405 br 0x3838 // 3838 <__mulsf3+0xf8> + 3830: 64c4 cmphs r1, r3 + 3832: 45a1 lsli r5, r5, 1 + 3834: 2a00 subi r2, 1 + 3836: 0c0a bf 0x384a // 384a <__mulsf3+0x10a> + 3838: 3ddf btsti r5, 31 + 383a: 6d0b mov r4, r2 + 383c: 4361 lsli r3, r3, 1 + 383e: 0ff9 bf 0x3830 // 3830 <__mulsf3+0xf0> + 3840: 6cc0 or r3, r0 + 3842: 64c4 cmphs r1, r3 + 3844: 45a1 lsli r5, r5, 1 + 3846: 2a00 subi r2, 1 + 3848: 0bf8 bt 0x3838 // 3838 <__mulsf3+0xf8> + 384a: b88e st.w r4, (r14, 0x38) + 384c: 07b4 br 0x37b4 // 37b4 <__mulsf3+0x74> + 384e: 0000 bkpt + 3850: 0000abc8 .long 0x0000abc8 + 3854: 3fffffff .long 0x3fffffff + +00003858 <__divsf3>: + 3858: 14d1 push r4, r15 + 385a: 142a subi r14, r14, 40 + 385c: b800 st.w r0, (r14, 0x0) + 385e: b821 st.w r1, (r14, 0x4) + 3860: 6c3b mov r0, r14 + 3862: 1902 addi r1, r14, 8 + 3864: e000061e bsr 0x44a0 // 44a0 <__unpack_f> + 3868: 1906 addi r1, r14, 24 + 386a: 1801 addi r0, r14, 4 + 386c: e000061a bsr 0x44a0 // 44a0 <__unpack_f> + 3870: 9862 ld.w r3, (r14, 0x8) + 3872: 3b01 cmphsi r3, 2 + 3874: 0c2c bf 0x38cc // 38cc <__divsf3+0x74> + 3876: 9826 ld.w r1, (r14, 0x18) + 3878: 3901 cmphsi r1, 2 + 387a: 0c48 bf 0x390a // 390a <__divsf3+0xb2> + 387c: 9843 ld.w r2, (r14, 0xc) + 387e: 9807 ld.w r0, (r14, 0x1c) + 3880: 6c81 xor r2, r0 + 3882: 3b44 cmpnei r3, 4 + 3884: b843 st.w r2, (r14, 0xc) + 3886: 0c28 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 3888: 3b42 cmpnei r3, 2 + 388a: 0c26 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 388c: 3944 cmpnei r1, 4 + 388e: 0c2c bf 0x38e6 // 38e6 <__divsf3+0x8e> + 3890: 3942 cmpnei r1, 2 + 3892: 0c38 bf 0x3902 // 3902 <__divsf3+0xaa> + 3894: 9844 ld.w r2, (r14, 0x10) + 3896: 9868 ld.w r3, (r14, 0x20) + 3898: 608e subu r2, r3 + 389a: 9809 ld.w r0, (r14, 0x24) + 389c: 9865 ld.w r3, (r14, 0x14) + 389e: 640c cmphs r3, r0 + 38a0: b844 st.w r2, (r14, 0x10) + 38a2: 0c1e bf 0x38de // 38de <__divsf3+0x86> + 38a4: 3180 movi r1, 128 + 38a6: 321f movi r2, 31 + 38a8: 3400 movi r4, 0 + 38aa: 4137 lsli r1, r1, 23 + 38ac: 640c cmphs r3, r0 + 38ae: 0c03 bf 0x38b4 // 38b4 <__divsf3+0x5c> + 38b0: 6d04 or r4, r1 + 38b2: 60c2 subu r3, r0 + 38b4: 2a00 subi r2, 1 + 38b6: 3a40 cmpnei r2, 0 + 38b8: 4921 lsri r1, r1, 1 + 38ba: 4361 lsli r3, r3, 1 + 38bc: 0bf8 bt 0x38ac // 38ac <__divsf3+0x54> + 38be: 317f movi r1, 127 + 38c0: 6c93 mov r2, r4 + 38c2: 6884 and r2, r1 + 38c4: 3040 movi r0, 64 + 38c6: 640a cmpne r2, r0 + 38c8: 0c14 bf 0x38f0 // 38f0 <__divsf3+0x98> + 38ca: b885 st.w r4, (r14, 0x14) + 38cc: 1802 addi r0, r14, 8 + 38ce: e000058d bsr 0x43e8 // 43e8 <__pack_f> + 38d2: 140a addi r14, r14, 40 + 38d4: 1491 pop r4, r15 + 38d6: 644e cmpne r3, r1 + 38d8: 0bfa bt 0x38cc // 38cc <__divsf3+0x74> + 38da: 100e lrw r0, 0xabc8 // 3910 <__divsf3+0xb8> + 38dc: 07f9 br 0x38ce // 38ce <__divsf3+0x76> + 38de: 2a00 subi r2, 1 + 38e0: 4361 lsli r3, r3, 1 + 38e2: b844 st.w r2, (r14, 0x10) + 38e4: 07e0 br 0x38a4 // 38a4 <__divsf3+0x4c> + 38e6: 3300 movi r3, 0 + 38e8: b865 st.w r3, (r14, 0x14) + 38ea: b864 st.w r3, (r14, 0x10) + 38ec: 1802 addi r0, r14, 8 + 38ee: 07f0 br 0x38ce // 38ce <__divsf3+0x76> + 38f0: 3080 movi r0, 128 + 38f2: 6810 and r0, r4 + 38f4: 3840 cmpnei r0, 0 + 38f6: 0bea bt 0x38ca // 38ca <__divsf3+0x72> + 38f8: 3b40 cmpnei r3, 0 + 38fa: 0fe8 bf 0x38ca // 38ca <__divsf3+0x72> + 38fc: 6108 addu r4, r2 + 38fe: 6905 andn r4, r1 + 3900: 07e5 br 0x38ca // 38ca <__divsf3+0x72> + 3902: 3304 movi r3, 4 + 3904: b862 st.w r3, (r14, 0x8) + 3906: 1802 addi r0, r14, 8 + 3908: 07e3 br 0x38ce // 38ce <__divsf3+0x76> + 390a: 1806 addi r0, r14, 24 + 390c: 07e1 br 0x38ce // 38ce <__divsf3+0x76> + 390e: 0000 bkpt + 3910: 0000abc8 .long 0x0000abc8 + +00003914 <__nesf2>: + 3914: 14d0 push r15 + 3916: 142a subi r14, r14, 40 + 3918: b800 st.w r0, (r14, 0x0) + 391a: b821 st.w r1, (r14, 0x4) + 391c: 6c3b mov r0, r14 + 391e: 1902 addi r1, r14, 8 + 3920: e00005c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3924: 1906 addi r1, r14, 24 + 3926: 1801 addi r0, r14, 4 + 3928: e00005bc bsr 0x44a0 // 44a0 <__unpack_f> + 392c: 9862 ld.w r3, (r14, 0x8) + 392e: 3b01 cmphsi r3, 2 + 3930: 0c0a bf 0x3944 // 3944 <__nesf2+0x30> + 3932: 9866 ld.w r3, (r14, 0x18) + 3934: 3b01 cmphsi r3, 2 + 3936: 0c07 bf 0x3944 // 3944 <__nesf2+0x30> + 3938: 1906 addi r1, r14, 24 + 393a: 1802 addi r0, r14, 8 + 393c: e00005f4 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3940: 140a addi r14, r14, 40 + 3942: 1490 pop r15 + 3944: 3001 movi r0, 1 + 3946: 140a addi r14, r14, 40 + 3948: 1490 pop r15 + ... + +0000394c <__gesf2>: + 394c: 14d0 push r15 + 394e: 142a subi r14, r14, 40 + 3950: b800 st.w r0, (r14, 0x0) + 3952: b821 st.w r1, (r14, 0x4) + 3954: 6c3b mov r0, r14 + 3956: 1902 addi r1, r14, 8 + 3958: e00005a4 bsr 0x44a0 // 44a0 <__unpack_f> + 395c: 1906 addi r1, r14, 24 + 395e: 1801 addi r0, r14, 4 + 3960: e00005a0 bsr 0x44a0 // 44a0 <__unpack_f> + 3964: 9862 ld.w r3, (r14, 0x8) + 3966: 3b01 cmphsi r3, 2 + 3968: 0c0a bf 0x397c // 397c <__gesf2+0x30> + 396a: 9866 ld.w r3, (r14, 0x18) + 396c: 3b01 cmphsi r3, 2 + 396e: 0c07 bf 0x397c // 397c <__gesf2+0x30> + 3970: 1906 addi r1, r14, 24 + 3972: 1802 addi r0, r14, 8 + 3974: e00005d8 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3978: 140a addi r14, r14, 40 + 397a: 1490 pop r15 + 397c: 3000 movi r0, 0 + 397e: 2800 subi r0, 1 + 3980: 140a addi r14, r14, 40 + 3982: 1490 pop r15 + +00003984 <__floatsisf>: + 3984: 14d1 push r4, r15 + 3986: 1424 subi r14, r14, 16 + 3988: 3303 movi r3, 3 + 398a: b860 st.w r3, (r14, 0x0) + 398c: 3840 cmpnei r0, 0 + 398e: 487f lsri r3, r0, 31 + 3990: b861 st.w r3, (r14, 0x4) + 3992: 0808 bt 0x39a2 // 39a2 <__floatsisf+0x1e> + 3994: 3302 movi r3, 2 + 3996: b860 st.w r3, (r14, 0x0) + 3998: 6c3b mov r0, r14 + 399a: e0000527 bsr 0x43e8 // 43e8 <__pack_f> + 399e: 1404 addi r14, r14, 16 + 39a0: 1491 pop r4, r15 + 39a2: 331e movi r3, 30 + 39a4: 38df btsti r0, 31 + 39a6: b862 st.w r3, (r14, 0x8) + 39a8: 080f bt 0x39c6 // 39c6 <__floatsisf+0x42> + 39aa: 6d03 mov r4, r0 + 39ac: 6c13 mov r0, r4 + 39ae: e00004fd bsr 0x43a8 // 43a8 <__clzsi2> + 39b2: 5863 subi r3, r0, 1 + 39b4: 3b40 cmpnei r3, 0 + 39b6: 0c14 bf 0x39de // 39de <__floatsisf+0x5a> + 39b8: 6c13 mov r0, r4 + 39ba: 321e movi r2, 30 + 39bc: 700c lsl r0, r3 + 39be: 5a6d subu r3, r2, r3 + 39c0: b803 st.w r0, (r14, 0xc) + 39c2: b862 st.w r3, (r14, 0x8) + 39c4: 07ea br 0x3998 // 3998 <__floatsisf+0x14> + 39c6: 3380 movi r3, 128 + 39c8: 4378 lsli r3, r3, 24 + 39ca: 64c2 cmpne r0, r3 + 39cc: 0c0b bf 0x39e2 // 39e2 <__floatsisf+0x5e> + 39ce: 3400 movi r4, 0 + 39d0: 6102 subu r4, r0 + 39d2: 6c13 mov r0, r4 + 39d4: e00004ea bsr 0x43a8 // 43a8 <__clzsi2> + 39d8: 5863 subi r3, r0, 1 + 39da: 3b40 cmpnei r3, 0 + 39dc: 0bee bt 0x39b8 // 39b8 <__floatsisf+0x34> + 39de: b883 st.w r4, (r14, 0xc) + 39e0: 07dc br 0x3998 // 3998 <__floatsisf+0x14> + 39e2: 30cf movi r0, 207 + 39e4: 4018 lsli r0, r0, 24 + 39e6: 07dc br 0x399e // 399e <__floatsisf+0x1a> + +000039e8 <__fixsfsi>: + 39e8: 14d0 push r15 + 39ea: 1425 subi r14, r14, 20 + 39ec: b800 st.w r0, (r14, 0x0) + 39ee: 1901 addi r1, r14, 4 + 39f0: 6c3b mov r0, r14 + 39f2: e0000557 bsr 0x44a0 // 44a0 <__unpack_f> + 39f6: 9861 ld.w r3, (r14, 0x4) + 39f8: 3b02 cmphsi r3, 3 + 39fa: 0c1b bf 0x3a30 // 3a30 <__fixsfsi+0x48> + 39fc: 3b44 cmpnei r3, 4 + 39fe: 0c06 bf 0x3a0a // 3a0a <__fixsfsi+0x22> + 3a00: 9863 ld.w r3, (r14, 0xc) + 3a02: 3bdf btsti r3, 31 + 3a04: 0816 bt 0x3a30 // 3a30 <__fixsfsi+0x48> + 3a06: 3b3e cmplti r3, 31 + 3a08: 0809 bt 0x3a1a // 3a1a <__fixsfsi+0x32> + 3a0a: 9862 ld.w r3, (r14, 0x8) + 3a0c: 3b40 cmpnei r3, 0 + 3a0e: 3000 movi r0, 0 + 3a10: 6001 addc r0, r0 + 3a12: 106a lrw r3, 0x7fffffff // 3a38 <__fixsfsi+0x50> + 3a14: 600c addu r0, r3 + 3a16: 1405 addi r14, r14, 20 + 3a18: 1490 pop r15 + 3a1a: 321e movi r2, 30 + 3a1c: 5a6d subu r3, r2, r3 + 3a1e: 9804 ld.w r0, (r14, 0x10) + 3a20: 700d lsr r0, r3 + 3a22: 9862 ld.w r3, (r14, 0x8) + 3a24: 3b40 cmpnei r3, 0 + 3a26: 0ff8 bf 0x3a16 // 3a16 <__fixsfsi+0x2e> + 3a28: 3300 movi r3, 0 + 3a2a: 5b01 subu r0, r3, r0 + 3a2c: 1405 addi r14, r14, 20 + 3a2e: 1490 pop r15 + 3a30: 3000 movi r0, 0 + 3a32: 1405 addi r14, r14, 20 + 3a34: 1490 pop r15 + 3a36: 0000 bkpt + 3a38: 7fffffff .long 0x7fffffff + +00003a3c <__extendsfdf2>: + 3a3c: 14d1 push r4, r15 + 3a3e: 1426 subi r14, r14, 24 + 3a40: b801 st.w r0, (r14, 0x4) + 3a42: 1902 addi r1, r14, 8 + 3a44: 1801 addi r0, r14, 4 + 3a46: e000052d bsr 0x44a0 // 44a0 <__unpack_f> + 3a4a: 9865 ld.w r3, (r14, 0x14) + 3a4c: 4b82 lsri r4, r3, 2 + 3a4e: 9844 ld.w r2, (r14, 0x10) + 3a50: 437e lsli r3, r3, 30 + 3a52: 9823 ld.w r1, (r14, 0xc) + 3a54: 9802 ld.w r0, (r14, 0x8) + 3a56: b880 st.w r4, (r14, 0x0) + 3a58: e0000430 bsr 0x42b8 // 42b8 <__make_dp> + 3a5c: 1406 addi r14, r14, 24 + 3a5e: 1491 pop r4, r15 + +00003a60 <_fpadd_parts>: + 3a60: 14c4 push r4-r7 + 3a62: 142a subi r14, r14, 40 + 3a64: 9060 ld.w r3, (r0, 0x0) + 3a66: 3b01 cmphsi r3, 2 + 3a68: 6dcb mov r7, r2 + 3a6a: 0c67 bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3a6c: 9140 ld.w r2, (r1, 0x0) + 3a6e: 3a01 cmphsi r2, 2 + 3a70: 0c66 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a72: 3b44 cmpnei r3, 4 + 3a74: 0cde bf 0x3c30 // 3c30 <_fpadd_parts+0x1d0> + 3a76: 3a44 cmpnei r2, 4 + 3a78: 0c62 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a7a: 3a42 cmpnei r2, 2 + 3a7c: 0cb7 bf 0x3bea // 3bea <_fpadd_parts+0x18a> + 3a7e: 3b42 cmpnei r3, 2 + 3a80: 0c5e bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a82: 9043 ld.w r2, (r0, 0xc) + 3a84: 9064 ld.w r3, (r0, 0x10) + 3a86: 9082 ld.w r4, (r0, 0x8) + 3a88: 91a2 ld.w r5, (r1, 0x8) + 3a8a: b842 st.w r2, (r14, 0x8) + 3a8c: b863 st.w r3, (r14, 0xc) + 3a8e: 9143 ld.w r2, (r1, 0xc) + 3a90: 9164 ld.w r3, (r1, 0x10) + 3a92: b840 st.w r2, (r14, 0x0) + 3a94: b861 st.w r3, (r14, 0x4) + 3a96: 5c75 subu r3, r4, r5 + 3a98: 3bdf btsti r3, 31 + 3a9a: 6c8f mov r2, r3 + 3a9c: 08d2 bt 0x3c40 // 3c40 <_fpadd_parts+0x1e0> + 3a9e: 363f movi r6, 63 + 3aa0: 6499 cmplt r6, r2 + 3aa2: 0c50 bf 0x3b42 // 3b42 <_fpadd_parts+0xe2> + 3aa4: 6515 cmplt r5, r4 + 3aa6: 0cbf bf 0x3c24 // 3c24 <_fpadd_parts+0x1c4> + 3aa8: 3200 movi r2, 0 + 3aaa: 3300 movi r3, 0 + 3aac: b840 st.w r2, (r14, 0x0) + 3aae: b861 st.w r3, (r14, 0x4) + 3ab0: 9061 ld.w r3, (r0, 0x4) + 3ab2: 9141 ld.w r2, (r1, 0x4) + 3ab4: 648e cmpne r3, r2 + 3ab6: 0c78 bf 0x3ba6 // 3ba6 <_fpadd_parts+0x146> + 3ab8: 3b40 cmpnei r3, 0 + 3aba: 0cad bf 0x3c14 // 3c14 <_fpadd_parts+0x1b4> + 3abc: 9800 ld.w r0, (r14, 0x0) + 3abe: 9821 ld.w r1, (r14, 0x4) + 3ac0: 9842 ld.w r2, (r14, 0x8) + 3ac2: 9863 ld.w r3, (r14, 0xc) + 3ac4: 6400 cmphs r0, r0 + 3ac6: 600b subc r0, r2 + 3ac8: 604f subc r1, r3 + 3aca: 39df btsti r1, 31 + 3acc: 08bd bt 0x3c46 // 3c46 <_fpadd_parts+0x1e6> + 3ace: 3300 movi r3, 0 + 3ad0: b761 st.w r3, (r7, 0x4) + 3ad2: b782 st.w r4, (r7, 0x8) + 3ad4: 6c83 mov r2, r0 + 3ad6: 6cc7 mov r3, r1 + 3ad8: b703 st.w r0, (r7, 0xc) + 3ada: b724 st.w r1, (r7, 0x10) + 3adc: 3000 movi r0, 0 + 3ade: 3100 movi r1, 0 + 3ae0: 2800 subi r0, 1 + 3ae2: 2900 subi r1, 1 + 3ae4: 6401 cmplt r0, r0 + 3ae6: 6009 addc r0, r2 + 3ae8: 604d addc r1, r3 + 3aea: 038f lrw r4, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3aec: 6450 cmphs r4, r1 + 3aee: 0c67 bf 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3af0: 6506 cmpne r1, r4 + 3af2: 0cfd bf 0x3cec // 3cec <_fpadd_parts+0x28c> + 3af4: 3000 movi r0, 0 + 3af6: 9722 ld.w r1, (r7, 0x8) + 3af8: 2801 subi r0, 2 + 3afa: 2900 subi r1, 1 + 3afc: 03d4 lrw r6, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3afe: b802 st.w r0, (r14, 0x8) + 3b00: b8e0 st.w r7, (r14, 0x0) + 3b02: 0403 br 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3b04: 6596 cmpne r5, r6 + 3b06: 0c83 bf 0x3c0c // 3c0c <_fpadd_parts+0x1ac> + 3b08: 4301 lsli r0, r3, 1 + 3b0a: 4a9f lsri r4, r2, 31 + 3b0c: 6d00 or r4, r0 + 3b0e: 42a1 lsli r5, r2, 1 + 3b10: 6c97 mov r2, r5 + 3b12: 6cd3 mov r3, r4 + 3b14: 3500 movi r5, 0 + 3b16: 3400 movi r4, 0 + 3b18: 2c00 subi r4, 1 + 3b1a: 2d00 subi r5, 1 + 3b1c: 6511 cmplt r4, r4 + 3b1e: 6109 addc r4, r2 + 3b20: 614d addc r5, r3 + 3b22: 6558 cmphs r6, r5 + 3b24: 6c07 mov r0, r1 + 3b26: 2900 subi r1, 1 + 3b28: 0bee bt 0x3b04 // 3b04 <_fpadd_parts+0xa4> + 3b2a: 98e0 ld.w r7, (r14, 0x0) + 3b2c: b743 st.w r2, (r7, 0xc) + 3b2e: b764 st.w r3, (r7, 0x10) + 3b30: 3303 movi r3, 3 + 3b32: b702 st.w r0, (r7, 0x8) + 3b34: b760 st.w r3, (r7, 0x0) + 3b36: 6c1f mov r0, r7 + 3b38: 140a addi r14, r14, 40 + 3b3a: 1484 pop r4-r7 + 3b3c: 6c07 mov r0, r1 + 3b3e: 140a addi r14, r14, 40 + 3b40: 1484 pop r4-r7 + 3b42: 3b20 cmplti r3, 1 + 3b44: 088c bt 0x3c5c // 3c5c <_fpadd_parts+0x1fc> + 3b46: 3300 movi r3, 0 + 3b48: 2b1f subi r3, 32 + 3b4a: 60c8 addu r3, r2 + 3b4c: 3bdf btsti r3, 31 + 3b4e: b866 st.w r3, (r14, 0x18) + 3b50: 08bb bt 0x3cc6 // 3cc6 <_fpadd_parts+0x266> + 3b52: 98a1 ld.w r5, (r14, 0x4) + 3b54: 714d lsr r5, r3 + 3b56: b8a4 st.w r5, (r14, 0x10) + 3b58: 3500 movi r5, 0 + 3b5a: b8a5 st.w r5, (r14, 0x14) + 3b5c: 9866 ld.w r3, (r14, 0x18) + 3b5e: 3bdf btsti r3, 31 + 3b60: 3500 movi r5, 0 + 3b62: 3600 movi r6, 0 + 3b64: 08ad bt 0x3cbe // 3cbe <_fpadd_parts+0x25e> + 3b66: 3201 movi r2, 1 + 3b68: 708c lsl r2, r3 + 3b6a: 6d8b mov r6, r2 + 3b6c: 3200 movi r2, 0 + 3b6e: 3300 movi r3, 0 + 3b70: 2a00 subi r2, 1 + 3b72: 2b00 subi r3, 1 + 3b74: 6489 cmplt r2, r2 + 3b76: 6095 addc r2, r5 + 3b78: 60d9 addc r3, r6 + 3b7a: 98a0 ld.w r5, (r14, 0x0) + 3b7c: 98c1 ld.w r6, (r14, 0x4) + 3b7e: 6948 and r5, r2 + 3b80: 698c and r6, r3 + 3b82: 6c97 mov r2, r5 + 3b84: 6cdb mov r3, r6 + 3b86: 6c8c or r2, r3 + 3b88: 3a40 cmpnei r2, 0 + 3b8a: 3500 movi r5, 0 + 3b8c: 6155 addc r5, r5 + 3b8e: 6c97 mov r2, r5 + 3b90: 3300 movi r3, 0 + 3b92: 98a4 ld.w r5, (r14, 0x10) + 3b94: 98c5 ld.w r6, (r14, 0x14) + 3b96: 6d48 or r5, r2 + 3b98: 6d8c or r6, r3 + 3b9a: 9061 ld.w r3, (r0, 0x4) + 3b9c: 9141 ld.w r2, (r1, 0x4) + 3b9e: 648e cmpne r3, r2 + 3ba0: b8a0 st.w r5, (r14, 0x0) + 3ba2: b8c1 st.w r6, (r14, 0x4) + 3ba4: 0b8a bt 0x3ab8 // 3ab8 <_fpadd_parts+0x58> + 3ba6: b761 st.w r3, (r7, 0x4) + 3ba8: 9800 ld.w r0, (r14, 0x0) + 3baa: 9821 ld.w r1, (r14, 0x4) + 3bac: 9842 ld.w r2, (r14, 0x8) + 3bae: 9863 ld.w r3, (r14, 0xc) + 3bb0: 6489 cmplt r2, r2 + 3bb2: 6081 addc r2, r0 + 3bb4: 60c5 addc r3, r1 + 3bb6: b782 st.w r4, (r7, 0x8) + 3bb8: b743 st.w r2, (r7, 0xc) + 3bba: b764 st.w r3, (r7, 0x10) + 3bbc: 3103 movi r1, 3 + 3bbe: b720 st.w r1, (r7, 0x0) + 3bc0: 123b lrw r1, 0x1fffffff // 3d2c <_fpadd_parts+0x2cc> + 3bc2: 64c4 cmphs r1, r3 + 3bc4: 0810 bt 0x3be4 // 3be4 <_fpadd_parts+0x184> + 3bc6: 439f lsli r4, r3, 31 + 3bc8: 4a01 lsri r0, r2, 1 + 3bca: 6c10 or r0, r4 + 3bcc: 3500 movi r5, 0 + 3bce: 3401 movi r4, 1 + 3bd0: 4b21 lsri r1, r3, 1 + 3bd2: 6890 and r2, r4 + 3bd4: 68d4 and r3, r5 + 3bd6: 6c80 or r2, r0 + 3bd8: 6cc4 or r3, r1 + 3bda: b743 st.w r2, (r7, 0xc) + 3bdc: b764 st.w r3, (r7, 0x10) + 3bde: 9762 ld.w r3, (r7, 0x8) + 3be0: 2300 addi r3, 1 + 3be2: b762 st.w r3, (r7, 0x8) + 3be4: 6c1f mov r0, r7 + 3be6: 140a addi r14, r14, 40 + 3be8: 1484 pop r4-r7 + 3bea: 3b42 cmpnei r3, 2 + 3bec: 0ba6 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3bee: b760 st.w r3, (r7, 0x0) + 3bf0: 9061 ld.w r3, (r0, 0x4) + 3bf2: b761 st.w r3, (r7, 0x4) + 3bf4: 9062 ld.w r3, (r0, 0x8) + 3bf6: b762 st.w r3, (r7, 0x8) + 3bf8: 9063 ld.w r3, (r0, 0xc) + 3bfa: b763 st.w r3, (r7, 0xc) + 3bfc: 9064 ld.w r3, (r0, 0x10) + 3bfe: 9141 ld.w r2, (r1, 0x4) + 3c00: b764 st.w r3, (r7, 0x10) + 3c02: 9061 ld.w r3, (r0, 0x4) + 3c04: 68c8 and r3, r2 + 3c06: b761 st.w r3, (r7, 0x4) + 3c08: 6c1f mov r0, r7 + 3c0a: 0797 br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c0c: 98e2 ld.w r7, (r14, 0x8) + 3c0e: 651c cmphs r7, r4 + 3c10: 0b7c bt 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3c12: 078c br 0x3b2a // 3b2a <_fpadd_parts+0xca> + 3c14: 9802 ld.w r0, (r14, 0x8) + 3c16: 9823 ld.w r1, (r14, 0xc) + 3c18: 9840 ld.w r2, (r14, 0x0) + 3c1a: 9861 ld.w r3, (r14, 0x4) + 3c1c: 6400 cmphs r0, r0 + 3c1e: 600b subc r0, r2 + 3c20: 604f subc r1, r3 + 3c22: 0754 br 0x3aca // 3aca <_fpadd_parts+0x6a> + 3c24: 3200 movi r2, 0 + 3c26: 3300 movi r3, 0 + 3c28: 6d17 mov r4, r5 + 3c2a: b842 st.w r2, (r14, 0x8) + 3c2c: b863 st.w r3, (r14, 0xc) + 3c2e: 0741 br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c30: 3a44 cmpnei r2, 4 + 3c32: 0b83 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c34: 9041 ld.w r2, (r0, 0x4) + 3c36: 9161 ld.w r3, (r1, 0x4) + 3c38: 64ca cmpne r2, r3 + 3c3a: 0f7f bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c3c: 111d lrw r0, 0xabd8 // 3d30 <_fpadd_parts+0x2d0> + 3c3e: 077d br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c40: 3200 movi r2, 0 + 3c42: 608e subu r2, r3 + 3c44: 072d br 0x3a9e // 3a9e <_fpadd_parts+0x3e> + 3c46: 3301 movi r3, 1 + 3c48: b761 st.w r3, (r7, 0x4) + 3c4a: 3200 movi r2, 0 + 3c4c: 3300 movi r3, 0 + 3c4e: 6488 cmphs r2, r2 + 3c50: 6083 subc r2, r0 + 3c52: 60c7 subc r3, r1 + 3c54: b782 st.w r4, (r7, 0x8) + 3c56: b743 st.w r2, (r7, 0xc) + 3c58: b764 st.w r3, (r7, 0x10) + 3c5a: 0741 br 0x3adc // 3adc <_fpadd_parts+0x7c> + 3c5c: 3b40 cmpnei r3, 0 + 3c5e: 0f29 bf 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c60: 3300 movi r3, 0 + 3c62: 2b1f subi r3, 32 + 3c64: 60c8 addu r3, r2 + 3c66: 3bdf btsti r3, 31 + 3c68: 6108 addu r4, r2 + 3c6a: b866 st.w r3, (r14, 0x18) + 3c6c: 0849 bt 0x3cfe // 3cfe <_fpadd_parts+0x29e> + 3c6e: 9863 ld.w r3, (r14, 0xc) + 3c70: 98a6 ld.w r5, (r14, 0x18) + 3c72: 70d5 lsr r3, r5 + 3c74: b864 st.w r3, (r14, 0x10) + 3c76: 3300 movi r3, 0 + 3c78: b865 st.w r3, (r14, 0x14) + 3c7a: 9866 ld.w r3, (r14, 0x18) + 3c7c: 3bdf btsti r3, 31 + 3c7e: 3500 movi r5, 0 + 3c80: 3600 movi r6, 0 + 3c82: 083a bt 0x3cf6 // 3cf6 <_fpadd_parts+0x296> + 3c84: 3201 movi r2, 1 + 3c86: 708c lsl r2, r3 + 3c88: 6d8b mov r6, r2 + 3c8a: 3200 movi r2, 0 + 3c8c: 3300 movi r3, 0 + 3c8e: 2a00 subi r2, 1 + 3c90: 2b00 subi r3, 1 + 3c92: 6489 cmplt r2, r2 + 3c94: 6095 addc r2, r5 + 3c96: 60d9 addc r3, r6 + 3c98: 98a2 ld.w r5, (r14, 0x8) + 3c9a: 98c3 ld.w r6, (r14, 0xc) + 3c9c: 6948 and r5, r2 + 3c9e: 698c and r6, r3 + 3ca0: 6c97 mov r2, r5 + 3ca2: 6cdb mov r3, r6 + 3ca4: 6c8c or r2, r3 + 3ca6: 3a40 cmpnei r2, 0 + 3ca8: 3500 movi r5, 0 + 3caa: 6155 addc r5, r5 + 3cac: 6c97 mov r2, r5 + 3cae: 3300 movi r3, 0 + 3cb0: 98a4 ld.w r5, (r14, 0x10) + 3cb2: 98c5 ld.w r6, (r14, 0x14) + 3cb4: 6d48 or r5, r2 + 3cb6: 6d8c or r6, r3 + 3cb8: b8a2 st.w r5, (r14, 0x8) + 3cba: b8c3 st.w r6, (r14, 0xc) + 3cbc: 06fa br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3cbe: 3301 movi r3, 1 + 3cc0: 70c8 lsl r3, r2 + 3cc2: 6d4f mov r5, r3 + 3cc4: 0754 br 0x3b6c // 3b6c <_fpadd_parts+0x10c> + 3cc6: 9861 ld.w r3, (r14, 0x4) + 3cc8: 361f movi r6, 31 + 3cca: 43a1 lsli r5, r3, 1 + 3ccc: 618a subu r6, r2 + 3cce: 7158 lsl r5, r6 + 3cd0: b8a9 st.w r5, (r14, 0x24) + 3cd2: 98a0 ld.w r5, (r14, 0x0) + 3cd4: 98c1 ld.w r6, (r14, 0x4) + 3cd6: b8a7 st.w r5, (r14, 0x1c) + 3cd8: b8c8 st.w r6, (r14, 0x20) + 3cda: 9867 ld.w r3, (r14, 0x1c) + 3cdc: 70c9 lsr r3, r2 + 3cde: 98a9 ld.w r5, (r14, 0x24) + 3ce0: 6cd4 or r3, r5 + 3ce2: b864 st.w r3, (r14, 0x10) + 3ce4: 9868 ld.w r3, (r14, 0x20) + 3ce6: 70c9 lsr r3, r2 + 3ce8: b865 st.w r3, (r14, 0x14) + 3cea: 0739 br 0x3b5c // 3b5c <_fpadd_parts+0xfc> + 3cec: 3100 movi r1, 0 + 3cee: 2901 subi r1, 2 + 3cf0: 6404 cmphs r1, r0 + 3cf2: 0b01 bt 0x3af4 // 3af4 <_fpadd_parts+0x94> + 3cf4: 0764 br 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3cf6: 3301 movi r3, 1 + 3cf8: 70c8 lsl r3, r2 + 3cfa: 6d4f mov r5, r3 + 3cfc: 07c7 br 0x3c8a // 3c8a <_fpadd_parts+0x22a> + 3cfe: 9863 ld.w r3, (r14, 0xc) + 3d00: 43c1 lsli r6, r3, 1 + 3d02: 351f movi r5, 31 + 3d04: 5d69 subu r3, r5, r2 + 3d06: 6d5b mov r5, r6 + 3d08: 714c lsl r5, r3 + 3d0a: b8a9 st.w r5, (r14, 0x24) + 3d0c: 98a2 ld.w r5, (r14, 0x8) + 3d0e: 98c3 ld.w r6, (r14, 0xc) + 3d10: b8a7 st.w r5, (r14, 0x1c) + 3d12: b8c8 st.w r6, (r14, 0x20) + 3d14: 9867 ld.w r3, (r14, 0x1c) + 3d16: 70c9 lsr r3, r2 + 3d18: 98a9 ld.w r5, (r14, 0x24) + 3d1a: 6cd4 or r3, r5 + 3d1c: b864 st.w r3, (r14, 0x10) + 3d1e: 9868 ld.w r3, (r14, 0x20) + 3d20: 70c9 lsr r3, r2 + 3d22: b865 st.w r3, (r14, 0x14) + 3d24: 07ab br 0x3c7a // 3c7a <_fpadd_parts+0x21a> + 3d26: 0000 bkpt + 3d28: 0fffffff .long 0x0fffffff + 3d2c: 1fffffff .long 0x1fffffff + 3d30: 0000abd8 .long 0x0000abd8 + +00003d34 <__adddf3>: + 3d34: 14d0 push r15 + 3d36: 1433 subi r14, r14, 76 + 3d38: b800 st.w r0, (r14, 0x0) + 3d3a: b821 st.w r1, (r14, 0x4) + 3d3c: 6c3b mov r0, r14 + 3d3e: 1904 addi r1, r14, 16 + 3d40: b863 st.w r3, (r14, 0xc) + 3d42: b842 st.w r2, (r14, 0x8) + 3d44: e0000506 bsr 0x4750 // 4750 <__unpack_d> + 3d48: 1909 addi r1, r14, 36 + 3d4a: 1802 addi r0, r14, 8 + 3d4c: e0000502 bsr 0x4750 // 4750 <__unpack_d> + 3d50: 1a0e addi r2, r14, 56 + 3d52: 1909 addi r1, r14, 36 + 3d54: 1804 addi r0, r14, 16 + 3d56: e3fffe85 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d5a: e000042d bsr 0x45b4 // 45b4 <__pack_d> + 3d5e: 1413 addi r14, r14, 76 + 3d60: 1490 pop r15 + ... + +00003d64 <__subdf3>: + 3d64: 14d0 push r15 + 3d66: 1433 subi r14, r14, 76 + 3d68: b800 st.w r0, (r14, 0x0) + 3d6a: b821 st.w r1, (r14, 0x4) + 3d6c: 6c3b mov r0, r14 + 3d6e: 1904 addi r1, r14, 16 + 3d70: b842 st.w r2, (r14, 0x8) + 3d72: b863 st.w r3, (r14, 0xc) + 3d74: e00004ee bsr 0x4750 // 4750 <__unpack_d> + 3d78: 1909 addi r1, r14, 36 + 3d7a: 1802 addi r0, r14, 8 + 3d7c: e00004ea bsr 0x4750 // 4750 <__unpack_d> + 3d80: 986a ld.w r3, (r14, 0x28) + 3d82: 3201 movi r2, 1 + 3d84: 6cc9 xor r3, r2 + 3d86: 1909 addi r1, r14, 36 + 3d88: 1a0e addi r2, r14, 56 + 3d8a: 1804 addi r0, r14, 16 + 3d8c: b86a st.w r3, (r14, 0x28) + 3d8e: e3fffe69 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d92: e0000411 bsr 0x45b4 // 45b4 <__pack_d> + 3d96: 1413 addi r14, r14, 76 + 3d98: 1490 pop r15 + ... + +00003d9c <__muldf3>: + 3d9c: 14d4 push r4-r7, r15 + 3d9e: 143b subi r14, r14, 108 + 3da0: b808 st.w r0, (r14, 0x20) + 3da2: b829 st.w r1, (r14, 0x24) + 3da4: 1808 addi r0, r14, 32 + 3da6: 190c addi r1, r14, 48 + 3da8: b86b st.w r3, (r14, 0x2c) + 3daa: b84a st.w r2, (r14, 0x28) + 3dac: e00004d2 bsr 0x4750 // 4750 <__unpack_d> + 3db0: 1911 addi r1, r14, 68 + 3db2: 180a addi r0, r14, 40 + 3db4: e00004ce bsr 0x4750 // 4750 <__unpack_d> + 3db8: 986c ld.w r3, (r14, 0x30) + 3dba: 3b01 cmphsi r3, 2 + 3dbc: 0cac bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dbe: 9851 ld.w r2, (r14, 0x44) + 3dc0: 3a01 cmphsi r2, 2 + 3dc2: 0c9c bf 0x3efa // 3efa <__muldf3+0x15e> + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0ca5 bf 0x3f10 // 3f10 <__muldf3+0x174> + 3dc8: 3a44 cmpnei r2, 4 + 3dca: 0c96 bf 0x3ef6 // 3ef6 <__muldf3+0x15a> + 3dcc: 3b42 cmpnei r3, 2 + 3dce: 0ca3 bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dd0: 3a42 cmpnei r2, 2 + 3dd2: 0c94 bf 0x3efa // 3efa <__muldf3+0x15e> + 3dd4: 98ef ld.w r7, (r14, 0x3c) + 3dd6: 98b4 ld.w r5, (r14, 0x50) + 3dd8: 9875 ld.w r3, (r14, 0x54) + 3dda: 6d8f mov r6, r3 + 3ddc: 6c9f mov r2, r7 + 3dde: 3300 movi r3, 0 + 3de0: 6c17 mov r0, r5 + 3de2: 3100 movi r1, 0 + 3de4: e00002c0 bsr 0x4364 // 4364 <__muldi3> + 3de8: b804 st.w r0, (r14, 0x10) + 3dea: b825 st.w r1, (r14, 0x14) + 3dec: 6c9f mov r2, r7 + 3dee: 3300 movi r3, 0 + 3df0: 6c1b mov r0, r6 + 3df2: 3100 movi r1, 0 + 3df4: 9890 ld.w r4, (r14, 0x40) + 3df6: b8c2 st.w r6, (r14, 0x8) + 3df8: e00002b6 bsr 0x4364 // 4364 <__muldi3> + 3dfc: 6d83 mov r6, r0 + 3dfe: 6dc7 mov r7, r1 + 3e00: 9842 ld.w r2, (r14, 0x8) + 3e02: 3300 movi r3, 0 + 3e04: 6c13 mov r0, r4 + 3e06: 3100 movi r1, 0 + 3e08: e00002ae bsr 0x4364 // 4364 <__muldi3> + 3e0c: b806 st.w r0, (r14, 0x18) + 3e0e: b827 st.w r1, (r14, 0x1c) + 3e10: 6c97 mov r2, r5 + 3e12: 3300 movi r3, 0 + 3e14: 6c13 mov r0, r4 + 3e16: 3100 movi r1, 0 + 3e18: e00002a6 bsr 0x4364 // 4364 <__muldi3> + 3e1c: 6401 cmplt r0, r0 + 3e1e: 6019 addc r0, r6 + 3e20: 605d addc r1, r7 + 3e22: 65c4 cmphs r1, r7 + 3e24: 0c91 bf 0x3f46 // 3f46 <__muldf3+0x1aa> + 3e26: 645e cmpne r7, r1 + 3e28: 0c8d bf 0x3f42 // 3f42 <__muldf3+0x1a6> + 3e2a: 3300 movi r3, 0 + 3e2c: 3400 movi r4, 0 + 3e2e: b862 st.w r3, (r14, 0x8) + 3e30: b883 st.w r4, (r14, 0xc) + 3e32: 9884 ld.w r4, (r14, 0x10) + 3e34: 98a5 ld.w r5, (r14, 0x14) + 3e36: 3600 movi r6, 0 + 3e38: 6dc3 mov r7, r0 + 3e3a: 6c93 mov r2, r4 + 3e3c: 6cd7 mov r3, r5 + 3e3e: 6489 cmplt r2, r2 + 3e40: 6099 addc r2, r6 + 3e42: 60dd addc r3, r7 + 3e44: 6d8b mov r6, r2 + 3e46: 6dcf mov r7, r3 + 3e48: 6c93 mov r2, r4 + 3e4a: 6cd7 mov r3, r5 + 3e4c: 64dc cmphs r7, r3 + 3e4e: 0c70 bf 0x3f2e // 3f2e <__muldf3+0x192> + 3e50: 65ce cmpne r3, r7 + 3e52: 0c6c bf 0x3f2a // 3f2a <__muldf3+0x18e> + 3e54: 6c87 mov r2, r1 + 3e56: 3300 movi r3, 0 + 3e58: 9806 ld.w r0, (r14, 0x18) + 3e5a: 9827 ld.w r1, (r14, 0x1c) + 3e5c: 6401 cmplt r0, r0 + 3e5e: 6009 addc r0, r2 + 3e60: 604d addc r1, r3 + 3e62: 6c83 mov r2, r0 + 3e64: 6cc7 mov r3, r1 + 3e66: 9802 ld.w r0, (r14, 0x8) + 3e68: 9823 ld.w r1, (r14, 0xc) + 3e6a: 6401 cmplt r0, r0 + 3e6c: 6009 addc r0, r2 + 3e6e: 604d addc r1, r3 + 3e70: 6c83 mov r2, r0 + 3e72: 6cc7 mov r3, r1 + 3e74: 988e ld.w r4, (r14, 0x38) + 3e76: 9833 ld.w r1, (r14, 0x4c) + 3e78: 6104 addu r4, r1 + 3e7a: 5c2e addi r1, r4, 4 + 3e7c: b838 st.w r1, (r14, 0x60) + 3e7e: 980d ld.w r0, (r14, 0x34) + 3e80: 9832 ld.w r1, (r14, 0x48) + 3e82: 6442 cmpne r0, r1 + 3e84: 12b0 lrw r5, 0x1fffffff // 3fc4 <__muldf3+0x228> + 3e86: 3100 movi r1, 0 + 3e88: 6045 addc r1, r1 + 3e8a: 64d4 cmphs r5, r3 + 3e8c: b837 st.w r1, (r14, 0x5c) + 3e8e: 0879 bt 0x3f80 // 3f80 <__muldf3+0x1e4> + 3e90: 2404 addi r4, 5 + 3e92: b8a4 st.w r5, (r14, 0x10) + 3e94: 3001 movi r0, 1 + 3e96: 3100 movi r1, 0 + 3e98: 6808 and r0, r2 + 3e9a: 684c and r1, r3 + 3e9c: 6c04 or r0, r1 + 3e9e: 3840 cmpnei r0, 0 + 3ea0: b882 st.w r4, (r14, 0x8) + 3ea2: 0c0e bf 0x3ebe // 3ebe <__muldf3+0x122> + 3ea4: 473f lsli r1, r7, 31 + 3ea6: 4e01 lsri r0, r6, 1 + 3ea8: 6c04 or r0, r1 + 3eaa: 4f21 lsri r1, r7, 1 + 3eac: b800 st.w r0, (r14, 0x0) + 3eae: b821 st.w r1, (r14, 0x4) + 3eb0: 3180 movi r1, 128 + 3eb2: 98c0 ld.w r6, (r14, 0x0) + 3eb4: 98e1 ld.w r7, (r14, 0x4) + 3eb6: 3000 movi r0, 0 + 3eb8: 4138 lsli r1, r1, 24 + 3eba: 6d80 or r6, r0 + 3ebc: 6dc4 or r7, r1 + 3ebe: 4b21 lsri r1, r3, 1 + 3ec0: 43bf lsli r5, r3, 31 + 3ec2: 4a01 lsri r0, r2, 1 + 3ec4: 6cc7 mov r3, r1 + 3ec6: 9824 ld.w r1, (r14, 0x10) + 3ec8: 6d40 or r5, r0 + 3eca: 64c4 cmphs r1, r3 + 3ecc: 6c97 mov r2, r5 + 3ece: 2400 addi r4, 1 + 3ed0: 0fe2 bf 0x3e94 // 3e94 <__muldf3+0xf8> + 3ed2: 9822 ld.w r1, (r14, 0x8) + 3ed4: b838 st.w r1, (r14, 0x60) + 3ed6: 30ff movi r0, 255 + 3ed8: 3100 movi r1, 0 + 3eda: 6808 and r0, r2 + 3edc: 684c and r1, r3 + 3ede: 3480 movi r4, 128 + 3ee0: 6502 cmpne r0, r4 + 3ee2: 0c37 bf 0x3f50 // 3f50 <__muldf3+0x1b4> + 3ee4: b859 st.w r2, (r14, 0x64) + 3ee6: b87a st.w r3, (r14, 0x68) + 3ee8: 3303 movi r3, 3 + 3eea: b876 st.w r3, (r14, 0x58) + 3eec: 1816 addi r0, r14, 88 + 3eee: e0000363 bsr 0x45b4 // 45b4 <__pack_d> + 3ef2: 141b addi r14, r14, 108 + 3ef4: 1494 pop r4-r7, r15 + 3ef6: 3b42 cmpnei r3, 2 + 3ef8: 0c42 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3efa: 9872 ld.w r3, (r14, 0x48) + 3efc: 984d ld.w r2, (r14, 0x34) + 3efe: 64ca cmpne r2, r3 + 3f00: 3300 movi r3, 0 + 3f02: 60cd addc r3, r3 + 3f04: 1811 addi r0, r14, 68 + 3f06: b872 st.w r3, (r14, 0x48) + 3f08: e0000356 bsr 0x45b4 // 45b4 <__pack_d> + 3f0c: 141b addi r14, r14, 108 + 3f0e: 1494 pop r4-r7, r15 + 3f10: 3a42 cmpnei r2, 2 + 3f12: 0c35 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3f14: 984d ld.w r2, (r14, 0x34) + 3f16: 9872 ld.w r3, (r14, 0x48) + 3f18: 64ca cmpne r2, r3 + 3f1a: 3300 movi r3, 0 + 3f1c: 60cd addc r3, r3 + 3f1e: 180c addi r0, r14, 48 + 3f20: b86d st.w r3, (r14, 0x34) + 3f22: e0000349 bsr 0x45b4 // 45b4 <__pack_d> + 3f26: 141b addi r14, r14, 108 + 3f28: 1494 pop r4-r7, r15 + 3f2a: 6498 cmphs r6, r2 + 3f2c: 0b94 bt 0x3e54 // 3e54 <__muldf3+0xb8> + 3f2e: 9882 ld.w r4, (r14, 0x8) + 3f30: 98a3 ld.w r5, (r14, 0xc) + 3f32: 3201 movi r2, 1 + 3f34: 3300 movi r3, 0 + 3f36: 6511 cmplt r4, r4 + 3f38: 6109 addc r4, r2 + 3f3a: 614d addc r5, r3 + 3f3c: b882 st.w r4, (r14, 0x8) + 3f3e: b8a3 st.w r5, (r14, 0xc) + 3f40: 078a br 0x3e54 // 3e54 <__muldf3+0xb8> + 3f42: 6580 cmphs r0, r6 + 3f44: 0b73 bt 0x3e2a // 3e2a <__muldf3+0x8e> + 3f46: 3300 movi r3, 0 + 3f48: 3401 movi r4, 1 + 3f4a: b862 st.w r3, (r14, 0x8) + 3f4c: b883 st.w r4, (r14, 0xc) + 3f4e: 0772 br 0x3e32 // 3e32 <__muldf3+0x96> + 3f50: 3940 cmpnei r1, 0 + 3f52: 0bc9 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f54: 3180 movi r1, 128 + 3f56: 4121 lsli r1, r1, 1 + 3f58: 6848 and r1, r2 + 3f5a: 3940 cmpnei r1, 0 + 3f5c: 0bc4 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f5e: 6c5b mov r1, r6 + 3f60: 6c5c or r1, r7 + 3f62: 3940 cmpnei r1, 0 + 3f64: 0fc0 bf 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f66: 3080 movi r0, 128 + 3f68: 3100 movi r1, 0 + 3f6a: 6401 cmplt r0, r0 + 3f6c: 6009 addc r0, r2 + 3f6e: 604d addc r1, r3 + 3f70: 34ff movi r4, 255 + 3f72: 6d43 mov r5, r0 + 3f74: 6951 andn r5, r4 + 3f76: 6c97 mov r2, r5 + 3f78: 6cc7 mov r3, r1 + 3f7a: 07b5 br 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f7c: 1013 lrw r0, 0xabd8 // 3fc8 <__muldf3+0x22c> + 3f7e: 07b8 br 0x3eee // 3eee <__muldf3+0x152> + 3f80: 1033 lrw r1, 0xfffffff // 3fcc <__muldf3+0x230> + 3f82: 64c4 cmphs r1, r3 + 3f84: 0fa9 bf 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3f86: 2402 addi r4, 3 + 3f88: b822 st.w r1, (r14, 0x8) + 3f8a: 4a1f lsri r0, r2, 31 + 3f8c: 4321 lsli r1, r3, 1 + 3f8e: 42a1 lsli r5, r2, 1 + 3f90: 6c04 or r0, r1 + 3f92: 3fdf btsti r7, 31 + 3f94: b880 st.w r4, (r14, 0x0) + 3f96: 6c97 mov r2, r5 + 3f98: 6cc3 mov r3, r0 + 3f9a: 0c07 bf 0x3fa8 // 3fa8 <__muldf3+0x20c> + 3f9c: 3001 movi r0, 1 + 3f9e: 3100 movi r1, 0 + 3fa0: 6c08 or r0, r2 + 3fa2: 6c4c or r1, r3 + 3fa4: 6c83 mov r2, r0 + 3fa6: 6cc7 mov r3, r1 + 3fa8: 4721 lsli r1, r7, 1 + 3faa: 4e1f lsri r0, r6, 31 + 3fac: 6c04 or r0, r1 + 3fae: 9822 ld.w r1, (r14, 0x8) + 3fb0: 46a1 lsli r5, r6, 1 + 3fb2: 64c4 cmphs r1, r3 + 3fb4: 6d97 mov r6, r5 + 3fb6: 6dc3 mov r7, r0 + 3fb8: 2c00 subi r4, 1 + 3fba: 0be8 bt 0x3f8a // 3f8a <__muldf3+0x1ee> + 3fbc: 9820 ld.w r1, (r14, 0x0) + 3fbe: b838 st.w r1, (r14, 0x60) + 3fc0: 078b br 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3fc2: 0000 bkpt + 3fc4: 1fffffff .long 0x1fffffff + 3fc8: 0000abd8 .long 0x0000abd8 + 3fcc: 0fffffff .long 0x0fffffff + +00003fd0 <__divdf3>: + 3fd0: 14d4 push r4-r7, r15 + 3fd2: 1432 subi r14, r14, 72 + 3fd4: b804 st.w r0, (r14, 0x10) + 3fd6: b825 st.w r1, (r14, 0x14) + 3fd8: 1804 addi r0, r14, 16 + 3fda: 1908 addi r1, r14, 32 + 3fdc: b867 st.w r3, (r14, 0x1c) + 3fde: b846 st.w r2, (r14, 0x18) + 3fe0: e00003b8 bsr 0x4750 // 4750 <__unpack_d> + 3fe4: 190d addi r1, r14, 52 + 3fe6: 1806 addi r0, r14, 24 + 3fe8: e00003b4 bsr 0x4750 // 4750 <__unpack_d> + 3fec: 9868 ld.w r3, (r14, 0x20) + 3fee: 3b01 cmphsi r3, 2 + 3ff0: 0c66 bf 0x40bc // 40bc <__divdf3+0xec> + 3ff2: 982d ld.w r1, (r14, 0x34) + 3ff4: 3901 cmphsi r1, 2 + 3ff6: 0c92 bf 0x411a // 411a <__divdf3+0x14a> + 3ff8: 9849 ld.w r2, (r14, 0x24) + 3ffa: 980e ld.w r0, (r14, 0x38) + 3ffc: 6c81 xor r2, r0 + 3ffe: 3b44 cmpnei r3, 4 + 4000: b849 st.w r2, (r14, 0x24) + 4002: 0c62 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4004: 3b42 cmpnei r3, 2 + 4006: 0c60 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4008: 3944 cmpnei r1, 4 + 400a: 0c62 bf 0x40ce // 40ce <__divdf3+0xfe> + 400c: 3942 cmpnei r1, 2 + 400e: 0c82 bf 0x4112 // 4112 <__divdf3+0x142> + 4010: 982a ld.w r1, (r14, 0x28) + 4012: 986f ld.w r3, (r14, 0x3c) + 4014: 604e subu r1, r3 + 4016: 9890 ld.w r4, (r14, 0x40) + 4018: 98b1 ld.w r5, (r14, 0x44) + 401a: 984b ld.w r2, (r14, 0x2c) + 401c: 986c ld.w r3, (r14, 0x30) + 401e: 654c cmphs r3, r5 + 4020: b82a st.w r1, (r14, 0x28) + 4022: 6d93 mov r6, r4 + 4024: 6dd7 mov r7, r5 + 4026: 0c05 bf 0x4030 // 4030 <__divdf3+0x60> + 4028: 64d6 cmpne r5, r3 + 402a: 080b bt 0x4040 // 4040 <__divdf3+0x70> + 402c: 6508 cmphs r2, r4 + 402e: 0809 bt 0x4040 // 4040 <__divdf3+0x70> + 4030: 4a9f lsri r4, r2, 31 + 4032: 4301 lsli r0, r3, 1 + 4034: 42a1 lsli r5, r2, 1 + 4036: 6d00 or r4, r0 + 4038: 2900 subi r1, 1 + 403a: 6c97 mov r2, r5 + 403c: 6cd3 mov r3, r4 + 403e: b82a st.w r1, (r14, 0x28) + 4040: 3000 movi r0, 0 + 4042: 3100 movi r1, 0 + 4044: b802 st.w r0, (r14, 0x8) + 4046: b823 st.w r1, (r14, 0xc) + 4048: 3180 movi r1, 128 + 404a: 343d movi r4, 61 + 404c: 3000 movi r0, 0 + 404e: 4135 lsli r1, r1, 21 + 4050: b8c0 st.w r6, (r14, 0x0) + 4052: b8e1 st.w r7, (r14, 0x4) + 4054: 98a0 ld.w r5, (r14, 0x0) + 4056: 98c1 ld.w r6, (r14, 0x4) + 4058: 658c cmphs r3, r6 + 405a: 0c10 bf 0x407a // 407a <__divdf3+0xaa> + 405c: 64da cmpne r6, r3 + 405e: 0803 bt 0x4064 // 4064 <__divdf3+0x94> + 4060: 6548 cmphs r2, r5 + 4062: 0c0c bf 0x407a // 407a <__divdf3+0xaa> + 4064: 98a2 ld.w r5, (r14, 0x8) + 4066: 98c3 ld.w r6, (r14, 0xc) + 4068: 6d40 or r5, r0 + 406a: 6d84 or r6, r1 + 406c: b8a2 st.w r5, (r14, 0x8) + 406e: b8c3 st.w r6, (r14, 0xc) + 4070: 98a0 ld.w r5, (r14, 0x0) + 4072: 98c1 ld.w r6, (r14, 0x4) + 4074: 6488 cmphs r2, r2 + 4076: 6097 subc r2, r5 + 4078: 60db subc r3, r6 + 407a: 41bf lsli r5, r1, 31 + 407c: 48e1 lsri r7, r0, 1 + 407e: 6d97 mov r6, r5 + 4080: 49a1 lsri r5, r1, 1 + 4082: 6d9c or r6, r7 + 4084: 6c57 mov r1, r5 + 4086: 4abf lsri r5, r2, 31 + 4088: 6c1b mov r0, r6 + 408a: 2c00 subi r4, 1 + 408c: 6d97 mov r6, r5 + 408e: 43a1 lsli r5, r3, 1 + 4090: 6d94 or r6, r5 + 4092: 4261 lsli r3, r2, 1 + 4094: 3c40 cmpnei r4, 0 + 4096: 6dcf mov r7, r3 + 4098: 6c8f mov r2, r3 + 409a: 6cdb mov r3, r6 + 409c: 0bdc bt 0x4054 // 4054 <__divdf3+0x84> + 409e: 30ff movi r0, 255 + 40a0: 3100 movi r1, 0 + 40a2: 9882 ld.w r4, (r14, 0x8) + 40a4: 98a3 ld.w r5, (r14, 0xc) + 40a6: 6900 and r4, r0 + 40a8: 6944 and r5, r1 + 40aa: 6c13 mov r0, r4 + 40ac: 6c57 mov r1, r5 + 40ae: 3480 movi r4, 128 + 40b0: 6502 cmpne r0, r4 + 40b2: 0c15 bf 0x40dc // 40dc <__divdf3+0x10c> + 40b4: 9862 ld.w r3, (r14, 0x8) + 40b6: 9883 ld.w r4, (r14, 0xc) + 40b8: b86b st.w r3, (r14, 0x2c) + 40ba: b88c st.w r4, (r14, 0x30) + 40bc: 1808 addi r0, r14, 32 + 40be: e000027b bsr 0x45b4 // 45b4 <__pack_d> + 40c2: 1412 addi r14, r14, 72 + 40c4: 1494 pop r4-r7, r15 + 40c6: 644e cmpne r3, r1 + 40c8: 0bfa bt 0x40bc // 40bc <__divdf3+0xec> + 40ca: 1016 lrw r0, 0xabd8 // 4120 <__divdf3+0x150> + 40cc: 07f9 br 0x40be // 40be <__divdf3+0xee> + 40ce: 3300 movi r3, 0 + 40d0: 3400 movi r4, 0 + 40d2: b86b st.w r3, (r14, 0x2c) + 40d4: b88c st.w r4, (r14, 0x30) + 40d6: b86a st.w r3, (r14, 0x28) + 40d8: 1808 addi r0, r14, 32 + 40da: 07f2 br 0x40be // 40be <__divdf3+0xee> + 40dc: 3940 cmpnei r1, 0 + 40de: 0beb bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40e0: 3180 movi r1, 128 + 40e2: 4121 lsli r1, r1, 1 + 40e4: 9882 ld.w r4, (r14, 0x8) + 40e6: 98a3 ld.w r5, (r14, 0xc) + 40e8: 6850 and r1, r4 + 40ea: 3940 cmpnei r1, 0 + 40ec: 0be4 bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40ee: 6c98 or r2, r6 + 40f0: 3a40 cmpnei r2, 0 + 40f2: 0fe1 bf 0x40b4 // 40b4 <__divdf3+0xe4> + 40f4: 3280 movi r2, 128 + 40f6: 3300 movi r3, 0 + 40f8: 6c13 mov r0, r4 + 40fa: 6c57 mov r1, r5 + 40fc: 6401 cmplt r0, r0 + 40fe: 6009 addc r0, r2 + 4100: 604d addc r1, r3 + 4102: 6c83 mov r2, r0 + 4104: 6cc7 mov r3, r1 + 4106: 6c0b mov r0, r2 + 4108: 31ff movi r1, 255 + 410a: 6805 andn r0, r1 + 410c: b802 st.w r0, (r14, 0x8) + 410e: b863 st.w r3, (r14, 0xc) + 4110: 07d2 br 0x40b4 // 40b4 <__divdf3+0xe4> + 4112: 3304 movi r3, 4 + 4114: b868 st.w r3, (r14, 0x20) + 4116: 1808 addi r0, r14, 32 + 4118: 07d3 br 0x40be // 40be <__divdf3+0xee> + 411a: 180d addi r0, r14, 52 + 411c: 07d1 br 0x40be // 40be <__divdf3+0xee> + 411e: 0000 bkpt + 4120: 0000abd8 .long 0x0000abd8 + +00004124 <__gtdf2>: + 4124: 14d0 push r15 + 4126: 142e subi r14, r14, 56 + 4128: b800 st.w r0, (r14, 0x0) + 412a: b821 st.w r1, (r14, 0x4) + 412c: 6c3b mov r0, r14 + 412e: 1904 addi r1, r14, 16 + 4130: b863 st.w r3, (r14, 0xc) + 4132: b842 st.w r2, (r14, 0x8) + 4134: e000030e bsr 0x4750 // 4750 <__unpack_d> + 4138: 1909 addi r1, r14, 36 + 413a: 1802 addi r0, r14, 8 + 413c: e000030a bsr 0x4750 // 4750 <__unpack_d> + 4140: 9864 ld.w r3, (r14, 0x10) + 4142: 3b01 cmphsi r3, 2 + 4144: 0c0a bf 0x4158 // 4158 <__gtdf2+0x34> + 4146: 9869 ld.w r3, (r14, 0x24) + 4148: 3b01 cmphsi r3, 2 + 414a: 0c07 bf 0x4158 // 4158 <__gtdf2+0x34> + 414c: 1909 addi r1, r14, 36 + 414e: 1804 addi r0, r14, 16 + 4150: e0000362 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4154: 140e addi r14, r14, 56 + 4156: 1490 pop r15 + 4158: 3000 movi r0, 0 + 415a: 2800 subi r0, 1 + 415c: 140e addi r14, r14, 56 + 415e: 1490 pop r15 + +00004160 <__gedf2>: + 4160: 14d0 push r15 + 4162: 142e subi r14, r14, 56 + 4164: b800 st.w r0, (r14, 0x0) + 4166: b821 st.w r1, (r14, 0x4) + 4168: 6c3b mov r0, r14 + 416a: 1904 addi r1, r14, 16 + 416c: b863 st.w r3, (r14, 0xc) + 416e: b842 st.w r2, (r14, 0x8) + 4170: e00002f0 bsr 0x4750 // 4750 <__unpack_d> + 4174: 1909 addi r1, r14, 36 + 4176: 1802 addi r0, r14, 8 + 4178: e00002ec bsr 0x4750 // 4750 <__unpack_d> + 417c: 9864 ld.w r3, (r14, 0x10) + 417e: 3b01 cmphsi r3, 2 + 4180: 0c0a bf 0x4194 // 4194 <__gedf2+0x34> + 4182: 9869 ld.w r3, (r14, 0x24) + 4184: 3b01 cmphsi r3, 2 + 4186: 0c07 bf 0x4194 // 4194 <__gedf2+0x34> + 4188: 1909 addi r1, r14, 36 + 418a: 1804 addi r0, r14, 16 + 418c: e0000344 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4190: 140e addi r14, r14, 56 + 4192: 1490 pop r15 + 4194: 3000 movi r0, 0 + 4196: 2800 subi r0, 1 + 4198: 140e addi r14, r14, 56 + 419a: 1490 pop r15 + +0000419c <__ledf2>: + 419c: 14d0 push r15 + 419e: 142e subi r14, r14, 56 + 41a0: b800 st.w r0, (r14, 0x0) + 41a2: b821 st.w r1, (r14, 0x4) + 41a4: 6c3b mov r0, r14 + 41a6: 1904 addi r1, r14, 16 + 41a8: b863 st.w r3, (r14, 0xc) + 41aa: b842 st.w r2, (r14, 0x8) + 41ac: e00002d2 bsr 0x4750 // 4750 <__unpack_d> + 41b0: 1909 addi r1, r14, 36 + 41b2: 1802 addi r0, r14, 8 + 41b4: e00002ce bsr 0x4750 // 4750 <__unpack_d> + 41b8: 9864 ld.w r3, (r14, 0x10) + 41ba: 3b01 cmphsi r3, 2 + 41bc: 0c0a bf 0x41d0 // 41d0 <__ledf2+0x34> + 41be: 9869 ld.w r3, (r14, 0x24) + 41c0: 3b01 cmphsi r3, 2 + 41c2: 0c07 bf 0x41d0 // 41d0 <__ledf2+0x34> + 41c4: 1909 addi r1, r14, 36 + 41c6: 1804 addi r0, r14, 16 + 41c8: e0000326 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 41cc: 140e addi r14, r14, 56 + 41ce: 1490 pop r15 + 41d0: 3001 movi r0, 1 + 41d2: 140e addi r14, r14, 56 + 41d4: 1490 pop r15 + ... + +000041d8 <__floatsidf>: + 41d8: 14d1 push r4, r15 + 41da: 1425 subi r14, r14, 20 + 41dc: 3303 movi r3, 3 + 41de: b860 st.w r3, (r14, 0x0) + 41e0: 3840 cmpnei r0, 0 + 41e2: 487f lsri r3, r0, 31 + 41e4: b861 st.w r3, (r14, 0x4) + 41e6: 0808 bt 0x41f6 // 41f6 <__floatsidf+0x1e> + 41e8: 3302 movi r3, 2 + 41ea: b860 st.w r3, (r14, 0x0) + 41ec: 6c3b mov r0, r14 + 41ee: e00001e3 bsr 0x45b4 // 45b4 <__pack_d> + 41f2: 1405 addi r14, r14, 20 + 41f4: 1491 pop r4, r15 + 41f6: 38df btsti r0, 31 + 41f8: 0812 bt 0x421c // 421c <__floatsidf+0x44> + 41fa: 6d03 mov r4, r0 + 41fc: 6c13 mov r0, r4 + 41fe: e00000d5 bsr 0x43a8 // 43a8 <__clzsi2> + 4202: 321d movi r2, 29 + 4204: 6080 addu r2, r0 + 4206: 2802 subi r0, 3 + 4208: 38df btsti r0, 31 + 420a: 0810 bt 0x422a // 422a <__floatsidf+0x52> + 420c: 7100 lsl r4, r0 + 420e: 3300 movi r3, 0 + 4210: b884 st.w r4, (r14, 0x10) + 4212: b863 st.w r3, (r14, 0xc) + 4214: 333c movi r3, 60 + 4216: 60ca subu r3, r2 + 4218: b862 st.w r3, (r14, 0x8) + 421a: 07e9 br 0x41ec // 41ec <__floatsidf+0x14> + 421c: 3380 movi r3, 128 + 421e: 4378 lsli r3, r3, 24 + 4220: 64c2 cmpne r0, r3 + 4222: 0c0d bf 0x423c // 423c <__floatsidf+0x64> + 4224: 3400 movi r4, 0 + 4226: 6102 subu r4, r0 + 4228: 07ea br 0x41fc // 41fc <__floatsidf+0x24> + 422a: 311f movi r1, 31 + 422c: 4c61 lsri r3, r4, 1 + 422e: 604a subu r1, r2 + 4230: 6c13 mov r0, r4 + 4232: 70c5 lsr r3, r1 + 4234: 7008 lsl r0, r2 + 4236: b864 st.w r3, (r14, 0x10) + 4238: b803 st.w r0, (r14, 0xc) + 423a: 07ed br 0x4214 // 4214 <__floatsidf+0x3c> + 423c: 3000 movi r0, 0 + 423e: 1022 lrw r1, 0xc1e00000 // 4244 <__floatsidf+0x6c> + 4240: 07d9 br 0x41f2 // 41f2 <__floatsidf+0x1a> + 4242: 0000 bkpt + 4244: c1e00000 .long 0xc1e00000 + +00004248 <__fixdfsi>: + 4248: 14d0 push r15 + 424a: 1427 subi r14, r14, 28 + 424c: b800 st.w r0, (r14, 0x0) + 424e: b821 st.w r1, (r14, 0x4) + 4250: 6c3b mov r0, r14 + 4252: 1902 addi r1, r14, 8 + 4254: e000027e bsr 0x4750 // 4750 <__unpack_d> + 4258: 9862 ld.w r3, (r14, 0x8) + 425a: 3b02 cmphsi r3, 3 + 425c: 0c20 bf 0x429c // 429c <__fixdfsi+0x54> + 425e: 3b44 cmpnei r3, 4 + 4260: 0c16 bf 0x428c // 428c <__fixdfsi+0x44> + 4262: 9864 ld.w r3, (r14, 0x10) + 4264: 3bdf btsti r3, 31 + 4266: 081b bt 0x429c // 429c <__fixdfsi+0x54> + 4268: 3b3e cmplti r3, 31 + 426a: 0c11 bf 0x428c // 428c <__fixdfsi+0x44> + 426c: 323c movi r2, 60 + 426e: 5a6d subu r3, r2, r3 + 4270: 3200 movi r2, 0 + 4272: 2a1f subi r2, 32 + 4274: 608c addu r2, r3 + 4276: 3adf btsti r2, 31 + 4278: 0815 bt 0x42a2 // 42a2 <__fixdfsi+0x5a> + 427a: 9806 ld.w r0, (r14, 0x18) + 427c: 7009 lsr r0, r2 + 427e: 9863 ld.w r3, (r14, 0xc) + 4280: 3b40 cmpnei r3, 0 + 4282: 0c0b bf 0x4298 // 4298 <__fixdfsi+0x50> + 4284: 3300 movi r3, 0 + 4286: 5b01 subu r0, r3, r0 + 4288: 1407 addi r14, r14, 28 + 428a: 1490 pop r15 + 428c: 9863 ld.w r3, (r14, 0xc) + 428e: 3b40 cmpnei r3, 0 + 4290: 3000 movi r0, 0 + 4292: 6001 addc r0, r0 + 4294: 1068 lrw r3, 0x7fffffff // 42b4 <__fixdfsi+0x6c> + 4296: 600c addu r0, r3 + 4298: 1407 addi r14, r14, 28 + 429a: 1490 pop r15 + 429c: 3000 movi r0, 0 + 429e: 1407 addi r14, r14, 28 + 42a0: 1490 pop r15 + 42a2: 9846 ld.w r2, (r14, 0x18) + 42a4: 311f movi r1, 31 + 42a6: 4241 lsli r2, r2, 1 + 42a8: 604e subu r1, r3 + 42aa: 9805 ld.w r0, (r14, 0x14) + 42ac: 7084 lsl r2, r1 + 42ae: 700d lsr r0, r3 + 42b0: 6c08 or r0, r2 + 42b2: 07e6 br 0x427e // 427e <__fixdfsi+0x36> + 42b4: 7fffffff .long 0x7fffffff + +000042b8 <__make_dp>: + 42b8: 1421 subi r14, r14, 4 + 42ba: 14d1 push r4, r15 + 42bc: 1425 subi r14, r14, 20 + 42be: b867 st.w r3, (r14, 0x1c) + 42c0: 9867 ld.w r3, (r14, 0x1c) + 42c2: 9888 ld.w r4, (r14, 0x20) + 42c4: b800 st.w r0, (r14, 0x0) + 42c6: 6c3b mov r0, r14 + 42c8: b821 st.w r1, (r14, 0x4) + 42ca: b842 st.w r2, (r14, 0x8) + 42cc: b863 st.w r3, (r14, 0xc) + 42ce: b884 st.w r4, (r14, 0x10) + 42d0: e0000172 bsr 0x45b4 // 45b4 <__pack_d> + 42d4: 1405 addi r14, r14, 20 + 42d6: d9ee2001 ld.w r15, (r14, 0x4) + 42da: 9880 ld.w r4, (r14, 0x0) + 42dc: 1403 addi r14, r14, 12 + 42de: 783c jmp r15 + +000042e0 <__truncdfsf2>: + 42e0: 14d0 push r15 + 42e2: 1427 subi r14, r14, 28 + 42e4: b800 st.w r0, (r14, 0x0) + 42e6: b821 st.w r1, (r14, 0x4) + 42e8: 6c3b mov r0, r14 + 42ea: 1902 addi r1, r14, 8 + 42ec: e0000232 bsr 0x4750 // 4750 <__unpack_d> + 42f0: 9845 ld.w r2, (r14, 0x14) + 42f2: 4a3e lsri r1, r2, 30 + 42f4: 9866 ld.w r3, (r14, 0x18) + 42f6: 4242 lsli r2, r2, 2 + 42f8: 4362 lsli r3, r3, 2 + 42fa: 3a40 cmpnei r2, 0 + 42fc: 6cc4 or r3, r1 + 42fe: 0c02 bf 0x4302 // 4302 <__truncdfsf2+0x22> + 4300: 3ba0 bseti r3, 0 + 4302: 9844 ld.w r2, (r14, 0x10) + 4304: 9823 ld.w r1, (r14, 0xc) + 4306: 9802 ld.w r0, (r14, 0x8) + 4308: e000014a bsr 0x459c // 459c <__make_fp> + 430c: 1407 addi r14, r14, 28 + 430e: 1490 pop r15 + +00004310 <__floatunsidf>: + 4310: 14d2 push r4-r5, r15 + 4312: 1425 subi r14, r14, 20 + 4314: 3840 cmpnei r0, 0 + 4316: 3500 movi r5, 0 + 4318: 6d03 mov r4, r0 + 431a: b8a1 st.w r5, (r14, 0x4) + 431c: 0c15 bf 0x4346 // 4346 <__floatunsidf+0x36> + 431e: 3303 movi r3, 3 + 4320: b860 st.w r3, (r14, 0x0) + 4322: e0000043 bsr 0x43a8 // 43a8 <__clzsi2> + 4326: 321d movi r2, 29 + 4328: 6080 addu r2, r0 + 432a: 2802 subi r0, 3 + 432c: 38df btsti r0, 31 + 432e: 0813 bt 0x4354 // 4354 <__floatunsidf+0x44> + 4330: 7100 lsl r4, r0 + 4332: b884 st.w r4, (r14, 0x10) + 4334: b8a3 st.w r5, (r14, 0xc) + 4336: 333c movi r3, 60 + 4338: 60ca subu r3, r2 + 433a: 6c3b mov r0, r14 + 433c: b862 st.w r3, (r14, 0x8) + 433e: e000013b bsr 0x45b4 // 45b4 <__pack_d> + 4342: 1405 addi r14, r14, 20 + 4344: 1492 pop r4-r5, r15 + 4346: 3302 movi r3, 2 + 4348: 6c3b mov r0, r14 + 434a: b860 st.w r3, (r14, 0x0) + 434c: e0000134 bsr 0x45b4 // 45b4 <__pack_d> + 4350: 1405 addi r14, r14, 20 + 4352: 1492 pop r4-r5, r15 + 4354: 311f movi r1, 31 + 4356: 4c61 lsri r3, r4, 1 + 4358: 604a subu r1, r2 + 435a: 70c5 lsr r3, r1 + 435c: 7108 lsl r4, r2 + 435e: b864 st.w r3, (r14, 0x10) + 4360: b883 st.w r4, (r14, 0xc) + 4362: 07ea br 0x4336 // 4336 <__floatunsidf+0x26> + +00004364 <__muldi3>: + 4364: 14c4 push r4-r7 + 4366: 1421 subi r14, r14, 4 + 4368: 7501 zexth r4, r0 + 436a: 48b0 lsri r5, r0, 16 + 436c: 75c9 zexth r7, r2 + 436e: 6d83 mov r6, r0 + 4370: b820 st.w r1, (r14, 0x0) + 4372: 6c13 mov r0, r4 + 4374: 4a30 lsri r1, r2, 16 + 4376: 7c1c mult r0, r7 + 4378: 7d04 mult r4, r1 + 437a: 7dd4 mult r7, r5 + 437c: 611c addu r4, r7 + 437e: 7d44 mult r5, r1 + 4380: 4830 lsri r1, r0, 16 + 4382: 6104 addu r4, r1 + 4384: 65d0 cmphs r4, r7 + 4386: 0804 bt 0x438e // 438e <__muldi3+0x2a> + 4388: 3180 movi r1, 128 + 438a: 4129 lsli r1, r1, 9 + 438c: 6144 addu r5, r1 + 438e: 4c30 lsri r1, r4, 16 + 4390: 7cd8 mult r3, r6 + 4392: 6144 addu r5, r1 + 4394: 6c4f mov r1, r3 + 4396: 9860 ld.w r3, (r14, 0x0) + 4398: 7cc8 mult r3, r2 + 439a: 4490 lsli r4, r4, 16 + 439c: 604c addu r1, r3 + 439e: 7401 zexth r0, r0 + 43a0: 6010 addu r0, r4 + 43a2: 6054 addu r1, r5 + 43a4: 1401 addi r14, r14, 4 + 43a6: 1484 pop r4-r7 + +000043a8 <__clzsi2>: + 43a8: 106d lrw r3, 0xffff // 43dc <__clzsi2+0x34> + 43aa: 640c cmphs r3, r0 + 43ac: 0c07 bf 0x43ba // 43ba <__clzsi2+0x12> + 43ae: 33ff movi r3, 255 + 43b0: 640c cmphs r3, r0 + 43b2: 0c0f bf 0x43d0 // 43d0 <__clzsi2+0x28> + 43b4: 3320 movi r3, 32 + 43b6: 3200 movi r2, 0 + 43b8: 0406 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43ba: 106a lrw r3, 0xffffff // 43e0 <__clzsi2+0x38> + 43bc: 640c cmphs r3, r0 + 43be: 080c bt 0x43d6 // 43d6 <__clzsi2+0x2e> + 43c0: 3308 movi r3, 8 + 43c2: 3218 movi r2, 24 + 43c4: 7009 lsr r0, r2 + 43c6: 1048 lrw r2, 0xabec // 43e4 <__clzsi2+0x3c> + 43c8: 6008 addu r0, r2 + 43ca: 8040 ld.b r2, (r0, 0x0) + 43cc: 5b09 subu r0, r3, r2 + 43ce: 783c jmp r15 + 43d0: 3318 movi r3, 24 + 43d2: 3208 movi r2, 8 + 43d4: 07f8 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43d6: 3310 movi r3, 16 + 43d8: 3210 movi r2, 16 + 43da: 07f5 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43dc: 0000ffff .long 0x0000ffff + 43e0: 00ffffff .long 0x00ffffff + 43e4: 0000abec .long 0x0000abec + +000043e8 <__pack_f>: + 43e8: 14c2 push r4-r5 + 43ea: 9040 ld.w r2, (r0, 0x0) + 43ec: 3a01 cmphsi r2, 2 + 43ee: 9063 ld.w r3, (r0, 0xc) + 43f0: 9021 ld.w r1, (r0, 0x4) + 43f2: 0c27 bf 0x4440 // 4440 <__pack_f+0x58> + 43f4: 3a44 cmpnei r2, 4 + 43f6: 0c22 bf 0x443a // 443a <__pack_f+0x52> + 43f8: 3a42 cmpnei r2, 2 + 43fa: 0c1d bf 0x4434 // 4434 <__pack_f+0x4c> + 43fc: 3b40 cmpnei r3, 0 + 43fe: 0c1b bf 0x4434 // 4434 <__pack_f+0x4c> + 4400: 3400 movi r4, 0 + 4402: 9042 ld.w r2, (r0, 0x8) + 4404: 2c7d subi r4, 126 + 4406: 6509 cmplt r2, r4 + 4408: 082a bt 0x445c // 445c <__pack_f+0x74> + 440a: 347f movi r4, 127 + 440c: 6491 cmplt r4, r2 + 440e: 0816 bt 0x443a // 443a <__pack_f+0x52> + 4410: 690c and r4, r3 + 4412: 3540 movi r5, 64 + 4414: 6552 cmpne r4, r5 + 4416: 0c1a bf 0x444a // 444a <__pack_f+0x62> + 4418: 233e addi r3, 63 + 441a: 3bdf btsti r3, 31 + 441c: 081d bt 0x4456 // 4456 <__pack_f+0x6e> + 441e: 227e addi r2, 127 + 4420: 4302 lsli r0, r3, 2 + 4422: 4809 lsri r0, r0, 9 + 4424: 74c8 zextb r3, r2 + 4426: 4009 lsli r0, r0, 9 + 4428: 4377 lsli r3, r3, 23 + 442a: 4809 lsri r0, r0, 9 + 442c: 413f lsli r1, r1, 31 + 442e: 6c0c or r0, r3 + 4430: 6c04 or r0, r1 + 4432: 1482 pop r4-r5 + 4434: 3300 movi r3, 0 + 4436: 3000 movi r0, 0 + 4438: 07f7 br 0x4426 // 4426 <__pack_f+0x3e> + 443a: 33ff movi r3, 255 + 443c: 3000 movi r0, 0 + 443e: 07f4 br 0x4426 // 4426 <__pack_f+0x3e> + 4440: 4303 lsli r0, r3, 3 + 4442: 480a lsri r0, r0, 10 + 4444: 38b6 bseti r0, 22 + 4446: 33ff movi r3, 255 + 4448: 07ef br 0x4426 // 4426 <__pack_f+0x3e> + 444a: 3080 movi r0, 128 + 444c: 680c and r0, r3 + 444e: 3840 cmpnei r0, 0 + 4450: 0fe5 bf 0x441a // 441a <__pack_f+0x32> + 4452: 60d0 addu r3, r4 + 4454: 07e3 br 0x441a // 441a <__pack_f+0x32> + 4456: 4b61 lsri r3, r3, 1 + 4458: 227f addi r2, 128 + 445a: 07e3 br 0x4420 // 4420 <__pack_f+0x38> + 445c: 610a subu r4, r2 + 445e: 3c39 cmplti r4, 26 + 4460: 0fea bf 0x4434 // 4434 <__pack_f+0x4c> + 4462: 3201 movi r2, 1 + 4464: 7090 lsl r2, r4 + 4466: 2a00 subi r2, 1 + 4468: 6c0f mov r0, r3 + 446a: 68c8 and r3, r2 + 446c: 3b40 cmpnei r3, 0 + 446e: 3300 movi r3, 0 + 4470: 7011 lsr r0, r4 + 4472: 60cd addc r3, r3 + 4474: 6cc0 or r3, r0 + 4476: 307f movi r0, 127 + 4478: 680c and r0, r3 + 447a: 3240 movi r2, 64 + 447c: 6482 cmpne r0, r2 + 447e: 080d bt 0x4498 // 4498 <__pack_f+0xb0> + 4480: 3280 movi r2, 128 + 4482: 688c and r2, r3 + 4484: 3a40 cmpnei r2, 0 + 4486: 0c02 bf 0x448a // 448a <__pack_f+0xa2> + 4488: 60c0 addu r3, r0 + 448a: 1045 lrw r2, 0x3fffffff // 449c <__pack_f+0xb4> + 448c: 64c8 cmphs r2, r3 + 448e: 4302 lsli r0, r3, 2 + 4490: 64c3 mvcv r3 + 4492: 4809 lsri r0, r0, 9 + 4494: 74cc zextb r3, r3 + 4496: 07c8 br 0x4426 // 4426 <__pack_f+0x3e> + 4498: 233e addi r3, 63 + 449a: 07f8 br 0x448a // 448a <__pack_f+0xa2> + 449c: 3fffffff .long 0x3fffffff + +000044a0 <__unpack_f>: + 44a0: 14c1 push r4 + 44a2: 8861 ld.h r3, (r0, 0x2) + 44a4: 4371 lsli r3, r3, 17 + 44a6: 9040 ld.w r2, (r0, 0x0) + 44a8: 4b78 lsri r3, r3, 24 + 44aa: 8003 ld.b r0, (r0, 0x3) + 44ac: 4249 lsli r2, r2, 9 + 44ae: 4807 lsri r0, r0, 7 + 44b0: 3b40 cmpnei r3, 0 + 44b2: 4a49 lsri r2, r2, 9 + 44b4: b101 st.w r0, (r1, 0x4) + 44b6: 0811 bt 0x44d8 // 44d8 <__unpack_f+0x38> + 44b8: 3a40 cmpnei r2, 0 + 44ba: 0c1a bf 0x44ee // 44ee <__unpack_f+0x4e> + 44bc: 3303 movi r3, 3 + 44be: b160 st.w r3, (r1, 0x0) + 44c0: 3300 movi r3, 0 + 44c2: 4247 lsli r2, r2, 7 + 44c4: 2b7e subi r3, 127 + 44c6: 1096 lrw r4, 0x3fffffff // 451c <__unpack_f+0x7c> + 44c8: 4241 lsli r2, r2, 1 + 44ca: 6490 cmphs r4, r2 + 44cc: 6c0f mov r0, r3 + 44ce: 2b00 subi r3, 1 + 44d0: 0bfc bt 0x44c8 // 44c8 <__unpack_f+0x28> + 44d2: b102 st.w r0, (r1, 0x8) + 44d4: b143 st.w r2, (r1, 0xc) + 44d6: 1481 pop r4 + 44d8: 30ff movi r0, 255 + 44da: 640e cmpne r3, r0 + 44dc: 0c0c bf 0x44f4 // 44f4 <__unpack_f+0x54> + 44de: 2b7e subi r3, 127 + 44e0: 4247 lsli r2, r2, 7 + 44e2: b162 st.w r3, (r1, 0x8) + 44e4: 3abe bseti r2, 30 + 44e6: 3303 movi r3, 3 + 44e8: b160 st.w r3, (r1, 0x0) + 44ea: b143 st.w r2, (r1, 0xc) + 44ec: 1481 pop r4 + 44ee: 3302 movi r3, 2 + 44f0: b160 st.w r3, (r1, 0x0) + 44f2: 1481 pop r4 + 44f4: 3a40 cmpnei r2, 0 + 44f6: 0c0d bf 0x4510 // 4510 <__unpack_f+0x70> + 44f8: 3380 movi r3, 128 + 44fa: 436f lsli r3, r3, 15 + 44fc: 68c8 and r3, r2 + 44fe: 3b40 cmpnei r3, 0 + 4500: 0c0b bf 0x4516 // 4516 <__unpack_f+0x76> + 4502: 3301 movi r3, 1 + 4504: b160 st.w r3, (r1, 0x0) + 4506: 1067 lrw r3, 0x2000007f // 4520 <__unpack_f+0x80> + 4508: 4247 lsli r2, r2, 7 + 450a: 688d andn r2, r3 + 450c: b143 st.w r2, (r1, 0xc) + 450e: 1481 pop r4 + 4510: 3304 movi r3, 4 + 4512: b160 st.w r3, (r1, 0x0) + 4514: 1481 pop r4 + 4516: b160 st.w r3, (r1, 0x0) + 4518: 07f7 br 0x4506 // 4506 <__unpack_f+0x66> + 451a: 0000 bkpt + 451c: 3fffffff .long 0x3fffffff + 4520: 2000007f .long 0x2000007f + +00004524 <__fpcmp_parts_f>: + 4524: 14c1 push r4 + 4526: 9060 ld.w r3, (r0, 0x0) + 4528: 3b01 cmphsi r3, 2 + 452a: 0c12 bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 452c: 9140 ld.w r2, (r1, 0x0) + 452e: 3a01 cmphsi r2, 2 + 4530: 0c0f bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 4532: 3b44 cmpnei r3, 4 + 4534: 0c17 bf 0x4562 // 4562 <__fpcmp_parts_f+0x3e> + 4536: 3a44 cmpnei r2, 4 + 4538: 0c0f bf 0x4556 // 4556 <__fpcmp_parts_f+0x32> + 453a: 3b42 cmpnei r3, 2 + 453c: 0c0b bf 0x4552 // 4552 <__fpcmp_parts_f+0x2e> + 453e: 3a42 cmpnei r2, 2 + 4540: 0c13 bf 0x4566 // 4566 <__fpcmp_parts_f+0x42> + 4542: 9061 ld.w r3, (r0, 0x4) + 4544: 9141 ld.w r2, (r1, 0x4) + 4546: 648e cmpne r3, r2 + 4548: 0c14 bf 0x4570 // 4570 <__fpcmp_parts_f+0x4c> + 454a: 3b40 cmpnei r3, 0 + 454c: 0808 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 454e: 3001 movi r0, 1 + 4550: 1481 pop r4 + 4552: 3a42 cmpnei r2, 2 + 4554: 0c1e bf 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4556: 9161 ld.w r3, (r1, 0x4) + 4558: 3b40 cmpnei r3, 0 + 455a: 0bfa bt 0x454e // 454e <__fpcmp_parts_f+0x2a> + 455c: 3000 movi r0, 0 + 455e: 2800 subi r0, 1 + 4560: 1481 pop r4 + 4562: 3a44 cmpnei r2, 4 + 4564: 0c18 bf 0x4594 // 4594 <__fpcmp_parts_f+0x70> + 4566: 9061 ld.w r3, (r0, 0x4) + 4568: 3b40 cmpnei r3, 0 + 456a: 0bf9 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 456c: 3001 movi r0, 1 + 456e: 07f1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4570: 9082 ld.w r4, (r0, 0x8) + 4572: 9142 ld.w r2, (r1, 0x8) + 4574: 6509 cmplt r2, r4 + 4576: 0bea bt 0x454a // 454a <__fpcmp_parts_f+0x26> + 4578: 6491 cmplt r4, r2 + 457a: 0807 bt 0x4588 // 4588 <__fpcmp_parts_f+0x64> + 457c: 9003 ld.w r0, (r0, 0xc) + 457e: 9143 ld.w r2, (r1, 0xc) + 4580: 6408 cmphs r2, r0 + 4582: 0fe4 bf 0x454a // 454a <__fpcmp_parts_f+0x26> + 4584: 6480 cmphs r0, r2 + 4586: 0805 bt 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4588: 3b40 cmpnei r3, 0 + 458a: 0fe9 bf 0x455c // 455c <__fpcmp_parts_f+0x38> + 458c: 3001 movi r0, 1 + 458e: 07e1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4590: 3000 movi r0, 0 + 4592: 1481 pop r4 + 4594: 9161 ld.w r3, (r1, 0x4) + 4596: 9041 ld.w r2, (r0, 0x4) + 4598: 5b09 subu r0, r3, r2 + 459a: 1481 pop r4 + +0000459c <__make_fp>: + 459c: 14d0 push r15 + 459e: 1424 subi r14, r14, 16 + 45a0: b800 st.w r0, (r14, 0x0) + 45a2: 6c3b mov r0, r14 + 45a4: b821 st.w r1, (r14, 0x4) + 45a6: b842 st.w r2, (r14, 0x8) + 45a8: b863 st.w r3, (r14, 0xc) + 45aa: e3ffff1f bsr 0x43e8 // 43e8 <__pack_f> + 45ae: 1404 addi r14, r14, 16 + 45b0: 1490 pop r15 + ... + +000045b4 <__pack_d>: + 45b4: 14c4 push r4-r7 + 45b6: 1422 subi r14, r14, 8 + 45b8: 9060 ld.w r3, (r0, 0x0) + 45ba: 3b01 cmphsi r3, 2 + 45bc: 90c3 ld.w r6, (r0, 0xc) + 45be: 90e4 ld.w r7, (r0, 0x10) + 45c0: 9021 ld.w r1, (r0, 0x4) + 45c2: 0c46 bf 0x464e // 464e <__pack_d+0x9a> + 45c4: 3b44 cmpnei r3, 4 + 45c6: 0c40 bf 0x4646 // 4646 <__pack_d+0x92> + 45c8: 3b42 cmpnei r3, 2 + 45ca: 0c27 bf 0x4618 // 4618 <__pack_d+0x64> + 45cc: 6cdb mov r3, r6 + 45ce: 6cdc or r3, r7 + 45d0: 3b40 cmpnei r3, 0 + 45d2: 0c23 bf 0x4618 // 4618 <__pack_d+0x64> + 45d4: 9062 ld.w r3, (r0, 0x8) + 45d6: 125a lrw r2, 0xfffffc02 // 473c <__pack_d+0x188> + 45d8: 648d cmplt r3, r2 + 45da: 0855 bt 0x4684 // 4684 <__pack_d+0xd0> + 45dc: 1259 lrw r2, 0x3ff // 4740 <__pack_d+0x18c> + 45de: 64c9 cmplt r2, r3 + 45e0: 0833 bt 0x4646 // 4646 <__pack_d+0x92> + 45e2: 34ff movi r4, 255 + 45e4: 3500 movi r5, 0 + 45e6: 6918 and r4, r6 + 45e8: 695c and r5, r7 + 45ea: 3280 movi r2, 128 + 45ec: 6492 cmpne r4, r2 + 45ee: 0c3f bf 0x466c // 466c <__pack_d+0xb8> + 45f0: 347f movi r4, 127 + 45f2: 3500 movi r5, 0 + 45f4: 6599 cmplt r6, r6 + 45f6: 6191 addc r6, r4 + 45f8: 61d5 addc r7, r5 + 45fa: 1253 lrw r2, 0x1fffffff // 4744 <__pack_d+0x190> + 45fc: 65c8 cmphs r2, r7 + 45fe: 0c1a bf 0x4632 // 4632 <__pack_d+0x7e> + 4600: 1290 lrw r4, 0x3ff // 4740 <__pack_d+0x18c> + 4602: 610c addu r4, r3 + 4604: 4718 lsli r0, r7, 24 + 4606: 4f68 lsri r3, r7, 8 + 4608: 4e48 lsri r2, r6, 8 + 460a: 6c80 or r2, r0 + 460c: 430c lsli r0, r3, 12 + 460e: 486c lsri r3, r0, 12 + 4610: 120e lrw r0, 0x7ff // 4748 <__pack_d+0x194> + 4612: 6d4b mov r5, r2 + 4614: 6900 and r4, r0 + 4616: 0404 br 0x461e // 461e <__pack_d+0x6a> + 4618: 3400 movi r4, 0 + 461a: 3200 movi r2, 0 + 461c: 3300 movi r3, 0 + 461e: 430c lsli r0, r3, 12 + 4620: 480c lsri r0, r0, 12 + 4622: 4474 lsli r3, r4, 20 + 4624: 419f lsli r4, r1, 31 + 4626: 6c43 mov r1, r0 + 4628: 6c4c or r1, r3 + 462a: 6c50 or r1, r4 + 462c: 6c0b mov r0, r2 + 462e: 1402 addi r14, r14, 8 + 4630: 1484 pop r4-r7 + 4632: 479f lsli r4, r7, 31 + 4634: 4e01 lsri r0, r6, 1 + 4636: 6d00 or r4, r0 + 4638: 6d93 mov r6, r4 + 463a: 3480 movi r4, 128 + 463c: 4f41 lsri r2, r7, 1 + 463e: 4483 lsli r4, r4, 3 + 4640: 6dcb mov r7, r2 + 4642: 610c addu r4, r3 + 4644: 07e0 br 0x4604 // 4604 <__pack_d+0x50> + 4646: 1281 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4648: 3200 movi r2, 0 + 464a: 3300 movi r3, 0 + 464c: 07e9 br 0x461e // 461e <__pack_d+0x6a> + 464e: 4e08 lsri r0, r6, 8 + 4650: 4798 lsli r4, r7, 24 + 4652: 6d00 or r4, r0 + 4654: 3580 movi r5, 128 + 4656: 4705 lsli r0, r7, 5 + 4658: 6c93 mov r2, r4 + 465a: 486d lsri r3, r0, 13 + 465c: 3400 movi r4, 0 + 465e: 45ac lsli r5, r5, 12 + 4660: 6c90 or r2, r4 + 4662: 6cd4 or r3, r5 + 4664: 430c lsli r0, r3, 12 + 4666: 486c lsri r3, r0, 12 + 4668: 1198 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 466a: 07da br 0x461e // 461e <__pack_d+0x6a> + 466c: 3d40 cmpnei r5, 0 + 466e: 0bc1 bt 0x45f0 // 45f0 <__pack_d+0x3c> + 4670: 4241 lsli r2, r2, 1 + 4672: 6898 and r2, r6 + 4674: 3a40 cmpnei r2, 0 + 4676: 0fc2 bf 0x45fa // 45fa <__pack_d+0x46> + 4678: 3480 movi r4, 128 + 467a: 3500 movi r5, 0 + 467c: 6599 cmplt r6, r6 + 467e: 6191 addc r6, r4 + 4680: 61d5 addc r7, r5 + 4682: 07bc br 0x45fa // 45fa <__pack_d+0x46> + 4684: 5a6d subu r3, r2, r3 + 4686: 3238 movi r2, 56 + 4688: 64c9 cmplt r2, r3 + 468a: 0bc7 bt 0x4618 // 4618 <__pack_d+0x64> + 468c: 3200 movi r2, 0 + 468e: 2a1f subi r2, 32 + 4690: 608c addu r2, r3 + 4692: 3adf btsti r2, 31 + 4694: 0848 bt 0x4724 // 4724 <__pack_d+0x170> + 4696: 6c1f mov r0, r7 + 4698: 7009 lsr r0, r2 + 469a: b800 st.w r0, (r14, 0x0) + 469c: 3000 movi r0, 0 + 469e: b801 st.w r0, (r14, 0x4) + 46a0: 3adf btsti r2, 31 + 46a2: 083c bt 0x471a // 471a <__pack_d+0x166> + 46a4: 3301 movi r3, 1 + 46a6: 70c8 lsl r3, r2 + 46a8: 6d4f mov r5, r3 + 46aa: 3300 movi r3, 0 + 46ac: 6d0f mov r4, r3 + 46ae: 3200 movi r2, 0 + 46b0: 3300 movi r3, 0 + 46b2: 2a00 subi r2, 1 + 46b4: 2b00 subi r3, 1 + 46b6: 6511 cmplt r4, r4 + 46b8: 6109 addc r4, r2 + 46ba: 614d addc r5, r3 + 46bc: 6990 and r6, r4 + 46be: 69d4 and r7, r5 + 46c0: 6d9c or r6, r7 + 46c2: 3e40 cmpnei r6, 0 + 46c4: 3000 movi r0, 0 + 46c6: 6001 addc r0, r0 + 46c8: 6c83 mov r2, r0 + 46ca: 3300 movi r3, 0 + 46cc: 9880 ld.w r4, (r14, 0x0) + 46ce: 98a1 ld.w r5, (r14, 0x4) + 46d0: 6d08 or r4, r2 + 46d2: 6d4c or r5, r3 + 46d4: 32ff movi r2, 255 + 46d6: 3300 movi r3, 0 + 46d8: 6890 and r2, r4 + 46da: 68d4 and r3, r5 + 46dc: 3080 movi r0, 128 + 46de: 640a cmpne r2, r0 + 46e0: 081b bt 0x4716 // 4716 <__pack_d+0x162> + 46e2: 3b40 cmpnei r3, 0 + 46e4: 0819 bt 0x4716 // 4716 <__pack_d+0x162> + 46e6: 3380 movi r3, 128 + 46e8: 4361 lsli r3, r3, 1 + 46ea: 68d0 and r3, r4 + 46ec: 3b40 cmpnei r3, 0 + 46ee: 0c06 bf 0x46fa // 46fa <__pack_d+0x146> + 46f0: 3280 movi r2, 128 + 46f2: 3300 movi r3, 0 + 46f4: 6511 cmplt r4, r4 + 46f6: 6109 addc r4, r2 + 46f8: 614d addc r5, r3 + 46fa: 4518 lsli r0, r5, 24 + 46fc: 4c48 lsri r2, r4, 8 + 46fe: 4d68 lsri r3, r5, 8 + 4700: 1093 lrw r4, 0xfffffff // 474c <__pack_d+0x198> + 4702: 6c80 or r2, r0 + 4704: 6550 cmphs r4, r5 + 4706: 430c lsli r0, r3, 12 + 4708: 486c lsri r3, r0, 12 + 470a: 3001 movi r0, 1 + 470c: 0c02 bf 0x4710 // 4710 <__pack_d+0x15c> + 470e: 3000 movi r0, 0 + 4710: 108e lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4712: 6900 and r4, r0 + 4714: 0785 br 0x461e // 461e <__pack_d+0x6a> + 4716: 327f movi r2, 127 + 4718: 07ed br 0x46f2 // 46f2 <__pack_d+0x13e> + 471a: 3201 movi r2, 1 + 471c: 708c lsl r2, r3 + 471e: 3500 movi r5, 0 + 4720: 6d0b mov r4, r2 + 4722: 07c6 br 0x46ae // 46ae <__pack_d+0xfa> + 4724: 341f movi r4, 31 + 4726: 610e subu r4, r3 + 4728: 4701 lsli r0, r7, 1 + 472a: 7010 lsl r0, r4 + 472c: 6d1b mov r4, r6 + 472e: 710d lsr r4, r3 + 4730: 6d00 or r4, r0 + 4732: 6c1f mov r0, r7 + 4734: 700d lsr r0, r3 + 4736: b880 st.w r4, (r14, 0x0) + 4738: b801 st.w r0, (r14, 0x4) + 473a: 07b3 br 0x46a0 // 46a0 <__pack_d+0xec> + 473c: fffffc02 .long 0xfffffc02 + 4740: 000003ff .long 0x000003ff + 4744: 1fffffff .long 0x1fffffff + 4748: 000007ff .long 0x000007ff + 474c: 0fffffff .long 0x0fffffff + +00004750 <__unpack_d>: + 4750: 1423 subi r14, r14, 12 + 4752: b880 st.w r4, (r14, 0x0) + 4754: b8c1 st.w r6, (r14, 0x4) + 4756: b8e2 st.w r7, (r14, 0x8) + 4758: 8843 ld.h r2, (r0, 0x6) + 475a: 4251 lsli r2, r2, 17 + 475c: 9061 ld.w r3, (r0, 0x4) + 475e: 9080 ld.w r4, (r0, 0x0) + 4760: 4a55 lsri r2, r2, 21 + 4762: 8007 ld.b r0, (r0, 0x7) + 4764: 436c lsli r3, r3, 12 + 4766: 4807 lsri r0, r0, 7 + 4768: 3a40 cmpnei r2, 0 + 476a: 4b6c lsri r3, r3, 12 + 476c: b101 st.w r0, (r1, 0x4) + 476e: 0819 bt 0x47a0 // 47a0 <__unpack_d+0x50> + 4770: 6c93 mov r2, r4 + 4772: 6c8c or r2, r3 + 4774: 3a40 cmpnei r2, 0 + 4776: 0c2d bf 0x47d0 // 47d0 <__unpack_d+0x80> + 4778: 4c58 lsri r2, r4, 24 + 477a: 4368 lsli r3, r3, 8 + 477c: 6cc8 or r3, r2 + 477e: 3203 movi r2, 3 + 4780: 4408 lsli r0, r4, 8 + 4782: b140 st.w r2, (r1, 0x0) + 4784: 1181 lrw r4, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 4786: 11c2 lrw r6, 0xfffffff // 480c <__unpack_d+0xbc> + 4788: 485f lsri r2, r0, 31 + 478a: 4361 lsli r3, r3, 1 + 478c: 6cc8 or r3, r2 + 478e: 64d8 cmphs r6, r3 + 4790: 6c93 mov r2, r4 + 4792: 4001 lsli r0, r0, 1 + 4794: 2c00 subi r4, 1 + 4796: 0bf9 bt 0x4788 // 4788 <__unpack_d+0x38> + 4798: b142 st.w r2, (r1, 0x8) + 479a: b103 st.w r0, (r1, 0xc) + 479c: b164 st.w r3, (r1, 0x10) + 479e: 0414 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47a0: 101c lrw r0, 0x7ff // 4810 <__unpack_d+0xc0> + 47a2: 640a cmpne r2, r0 + 47a4: 0c19 bf 0x47d6 // 47d6 <__unpack_d+0x86> + 47a6: 1019 lrw r0, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 47a8: 6080 addu r2, r0 + 47aa: b142 st.w r2, (r1, 0x8) + 47ac: 3203 movi r2, 3 + 47ae: 43e8 lsli r7, r3, 8 + 47b0: b140 st.w r2, (r1, 0x0) + 47b2: 3380 movi r3, 128 + 47b4: 4c58 lsri r2, r4, 24 + 47b6: 6dc8 or r7, r2 + 47b8: 44c8 lsli r6, r4, 8 + 47ba: 3200 movi r2, 0 + 47bc: 4375 lsli r3, r3, 21 + 47be: 6d88 or r6, r2 + 47c0: 6dcc or r7, r3 + 47c2: b1c3 st.w r6, (r1, 0xc) + 47c4: b1e4 st.w r7, (r1, 0x10) + 47c6: 98e2 ld.w r7, (r14, 0x8) + 47c8: 98c1 ld.w r6, (r14, 0x4) + 47ca: 9880 ld.w r4, (r14, 0x0) + 47cc: 1403 addi r14, r14, 12 + 47ce: 783c jmp r15 + 47d0: 3302 movi r3, 2 + 47d2: b160 st.w r3, (r1, 0x0) + 47d4: 07f9 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47d6: 6c93 mov r2, r4 + 47d8: 6c8c or r2, r3 + 47da: 3a40 cmpnei r2, 0 + 47dc: 0c10 bf 0x47fc // 47fc <__unpack_d+0xac> + 47de: 3280 movi r2, 128 + 47e0: 424c lsli r2, r2, 12 + 47e2: 688c and r2, r3 + 47e4: 3a40 cmpnei r2, 0 + 47e6: 0c0e bf 0x4802 // 4802 <__unpack_d+0xb2> + 47e8: 3201 movi r2, 1 + 47ea: b140 st.w r2, (r1, 0x0) + 47ec: 4c58 lsri r2, r4, 24 + 47ee: 4368 lsli r3, r3, 8 + 47f0: 6cc8 or r3, r2 + 47f2: 4408 lsli r0, r4, 8 + 47f4: 3b9b bclri r3, 27 + 47f6: b103 st.w r0, (r1, 0xc) + 47f8: b164 st.w r3, (r1, 0x10) + 47fa: 07e6 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47fc: 3304 movi r3, 4 + 47fe: b160 st.w r3, (r1, 0x0) + 4800: 07e3 br 0x47c6 // 47c6 <__unpack_d+0x76> + 4802: b140 st.w r2, (r1, 0x0) + 4804: 07f4 br 0x47ec // 47ec <__unpack_d+0x9c> + 4806: 0000 bkpt + 4808: fffffc01 .long 0xfffffc01 + 480c: 0fffffff .long 0x0fffffff + 4810: 000007ff .long 0x000007ff + +00004814 <__fpcmp_parts_d>: + 4814: 14c1 push r4 + 4816: 9060 ld.w r3, (r0, 0x0) + 4818: 3b01 cmphsi r3, 2 + 481a: 0c12 bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 481c: 9140 ld.w r2, (r1, 0x0) + 481e: 3a01 cmphsi r2, 2 + 4820: 0c0f bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 4822: 3b44 cmpnei r3, 4 + 4824: 0c17 bf 0x4852 // 4852 <__fpcmp_parts_d+0x3e> + 4826: 3a44 cmpnei r2, 4 + 4828: 0c0f bf 0x4846 // 4846 <__fpcmp_parts_d+0x32> + 482a: 3b42 cmpnei r3, 2 + 482c: 0c0b bf 0x4842 // 4842 <__fpcmp_parts_d+0x2e> + 482e: 3a42 cmpnei r2, 2 + 4830: 0c13 bf 0x4856 // 4856 <__fpcmp_parts_d+0x42> + 4832: 9061 ld.w r3, (r0, 0x4) + 4834: 9141 ld.w r2, (r1, 0x4) + 4836: 648e cmpne r3, r2 + 4838: 0c14 bf 0x4860 // 4860 <__fpcmp_parts_d+0x4c> + 483a: 3b40 cmpnei r3, 0 + 483c: 0808 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 483e: 3001 movi r0, 1 + 4840: 1481 pop r4 + 4842: 3a42 cmpnei r2, 2 + 4844: 0c28 bf 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4846: 9161 ld.w r3, (r1, 0x4) + 4848: 3b40 cmpnei r3, 0 + 484a: 0bfa bt 0x483e // 483e <__fpcmp_parts_d+0x2a> + 484c: 3000 movi r0, 0 + 484e: 2800 subi r0, 1 + 4850: 1481 pop r4 + 4852: 3a44 cmpnei r2, 4 + 4854: 0c22 bf 0x4898 // 4898 <__fpcmp_parts_d+0x84> + 4856: 9061 ld.w r3, (r0, 0x4) + 4858: 3b40 cmpnei r3, 0 + 485a: 0bf9 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 485c: 3001 movi r0, 1 + 485e: 07f1 br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 4860: 9082 ld.w r4, (r0, 0x8) + 4862: 9142 ld.w r2, (r1, 0x8) + 4864: 6509 cmplt r2, r4 + 4866: 0bea bt 0x483a // 483a <__fpcmp_parts_d+0x26> + 4868: 6491 cmplt r4, r2 + 486a: 080d bt 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 486c: 9044 ld.w r2, (r0, 0x10) + 486e: 9083 ld.w r4, (r0, 0xc) + 4870: 9103 ld.w r0, (r1, 0xc) + 4872: 9124 ld.w r1, (r1, 0x10) + 4874: 6484 cmphs r1, r2 + 4876: 0fe2 bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4878: 644a cmpne r2, r1 + 487a: 0803 bt 0x4880 // 4880 <__fpcmp_parts_d+0x6c> + 487c: 6500 cmphs r0, r4 + 487e: 0fde bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4880: 6448 cmphs r2, r1 + 4882: 0805 bt 0x488c // 488c <__fpcmp_parts_d+0x78> + 4884: 3b40 cmpnei r3, 0 + 4886: 0fe3 bf 0x484c // 484c <__fpcmp_parts_d+0x38> + 4888: 3001 movi r0, 1 + 488a: 07db br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 488c: 6486 cmpne r1, r2 + 488e: 0803 bt 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4890: 6410 cmphs r4, r0 + 4892: 0ff9 bf 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 4894: 3000 movi r0, 0 + 4896: 1481 pop r4 + 4898: 9161 ld.w r3, (r1, 0x4) + 489a: 9041 ld.w r2, (r0, 0x4) + 489c: 5b09 subu r0, r3, r2 + 489e: 1481 pop r4 + +000048a0 <__cskyvprintfsnprintf>: + 48a0: 1422 subi r14, r14, 8 + 48a2: b861 st.w r3, (r14, 0x4) + 48a4: b840 st.w r2, (r14, 0x0) + 48a6: 14d0 push r15 + 48a8: 1421 subi r14, r14, 4 + 48aa: 9862 ld.w r3, (r14, 0x8) + 48ac: b860 st.w r3, (r14, 0x0) + 48ae: 9840 ld.w r2, (r14, 0x0) + 48b0: 1b03 addi r3, r14, 12 + 48b2: e0000026 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + 48b6: 1401 addi r14, r14, 4 + 48b8: d9ee2000 ld.w r15, (r14, 0x0) + 48bc: 1403 addi r14, r14, 12 + 48be: 783c jmp r15 + +000048c0 : + 48c0: 14d3 push r4-r6, r15 + 48c2: 6d4b mov r5, r2 + 48c4: 9582 ld.w r4, (r5, 0x8) + 48c6: 9241 ld.w r2, (r2, 0x4) + 48c8: 610a subu r4, r2 + 48ca: 3c40 cmpnei r4, 0 + 48cc: 6d87 mov r6, r1 + 48ce: 0c16 bf 0x48fa // 48fa + 48d0: 6504 cmphs r1, r4 + 48d2: 0802 bt 0x48d6 // 48d6 + 48d4: 6d07 mov r4, r1 + 48d6: 9560 ld.w r3, (r5, 0x0) + 48d8: 3b40 cmpnei r3, 0 + 48da: 0c0d bf 0x48f4 // 48f4 + 48dc: 60c8 addu r3, r2 + 48de: 6c43 mov r1, r0 + 48e0: 6c93 mov r2, r4 + 48e2: 6c0f mov r0, r3 + 48e4: e000007e bsr 0x49e0 // 49e0 <__memcpy_fast> + 48e8: 9500 ld.w r0, (r5, 0x0) + 48ea: 9521 ld.w r1, (r5, 0x4) + 48ec: 6010 addu r0, r4 + 48ee: 6004 addu r0, r1 + 48f0: 3200 movi r2, 0 + 48f2: a040 st.b r2, (r0, 0x0) + 48f4: 9561 ld.w r3, (r5, 0x4) + 48f6: 610c addu r4, r3 + 48f8: b581 st.w r4, (r5, 0x4) + 48fa: 6c1b mov r0, r6 + 48fc: 1493 pop r4-r6, r15 + +000048fe <__cskyvprintfvsnprintf>: + 48fe: 14d3 push r4-r6, r15 + 4900: 1425 subi r14, r14, 20 + 4902: 6d07 mov r4, r1 + 4904: 6d43 mov r5, r0 + 4906: 6c4b mov r1, r2 + 4908: 1802 addi r0, r14, 8 + 490a: 3200 movi r2, 0 + 490c: 3c40 cmpnei r4, 0 + 490e: b0a0 st.w r5, (r0, 0x0) + 4910: b041 st.w r2, (r0, 0x4) + 4912: 0c1c bf 0x494a // 494a <__cskyvprintfvsnprintf+0x4c> + 4914: 5cc3 subi r6, r4, 1 + 4916: b0c2 st.w r6, (r0, 0x8) + 4918: b800 st.w r0, (r14, 0x0) + 491a: 6c8f mov r2, r3 + 491c: 100e lrw r0, 0x48c0 // 4954 <__cskyvprintfvsnprintf+0x56> + 491e: b801 st.w r0, (r14, 0x4) + 4920: 6c3b mov r0, r14 + 4922: e00000bf bsr 0x4aa0 // 4aa0 <__v2_printf> + 4926: 3d40 cmpnei r5, 0 + 4928: 0c0f bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492a: 3c40 cmpnei r4, 0 + 492c: 0c0d bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492e: 38df btsti r0, 31 + 4930: 080b bt 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 4932: 3300 movi r3, 0 + 4934: 2b00 subi r3, 1 + 4936: 64d2 cmpne r4, r3 + 4938: 0c0b bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493a: 6500 cmphs r0, r4 + 493c: 0c09 bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493e: 6114 addu r4, r5 + 4940: 2c00 subi r4, 1 + 4942: 3100 movi r1, 0 + 4944: a420 st.b r1, (r4, 0x0) + 4946: 1405 addi r14, r14, 20 + 4948: 1493 pop r4-r6, r15 + 494a: 3600 movi r6, 0 + 494c: 07e5 br 0x4916 // 4916 <__cskyvprintfvsnprintf+0x18> + 494e: 5d80 addu r4, r5, r0 + 4950: 07f9 br 0x4942 // 4942 <__cskyvprintfvsnprintf+0x44> + 4952: 0000 bkpt + 4954: 000048c0 .long 0x000048c0 + +00004958 <__memset_fast>: + 4958: 14c3 push r4-r6 + 495a: 7444 zextb r1, r1 + 495c: 3a40 cmpnei r2, 0 + 495e: 0c1f bf 0x499c // 499c <__memset_fast+0x44> + 4960: 6d43 mov r5, r0 + 4962: 6d03 mov r4, r0 + 4964: 3603 movi r6, 3 + 4966: 6918 and r4, r6 + 4968: 3c40 cmpnei r4, 0 + 496a: 0c1a bf 0x499e // 499e <__memset_fast+0x46> + 496c: a520 st.b r1, (r5, 0x0) + 496e: 2a00 subi r2, 1 + 4970: 3a40 cmpnei r2, 0 + 4972: 0c15 bf 0x499c // 499c <__memset_fast+0x44> + 4974: 2500 addi r5, 1 + 4976: 6d17 mov r4, r5 + 4978: 3603 movi r6, 3 + 497a: 6918 and r4, r6 + 497c: 3c40 cmpnei r4, 0 + 497e: 0c10 bf 0x499e // 499e <__memset_fast+0x46> + 4980: a520 st.b r1, (r5, 0x0) + 4982: 2a00 subi r2, 1 + 4984: 3a40 cmpnei r2, 0 + 4986: 0c0b bf 0x499c // 499c <__memset_fast+0x44> + 4988: 2500 addi r5, 1 + 498a: 6d17 mov r4, r5 + 498c: 3603 movi r6, 3 + 498e: 6918 and r4, r6 + 4990: 3c40 cmpnei r4, 0 + 4992: 0c06 bf 0x499e // 499e <__memset_fast+0x46> + 4994: a520 st.b r1, (r5, 0x0) + 4996: 2a00 subi r2, 1 + 4998: 2500 addi r5, 1 + 499a: 0402 br 0x499e // 499e <__memset_fast+0x46> + 499c: 1483 pop r4-r6 + 499e: 4168 lsli r3, r1, 8 + 49a0: 6c4c or r1, r3 + 49a2: 4170 lsli r3, r1, 16 + 49a4: 6c4c or r1, r3 + 49a6: 3a2f cmplti r2, 16 + 49a8: 0809 bt 0x49ba // 49ba <__memset_fast+0x62> + 49aa: b520 st.w r1, (r5, 0x0) + 49ac: b521 st.w r1, (r5, 0x4) + 49ae: b522 st.w r1, (r5, 0x8) + 49b0: b523 st.w r1, (r5, 0xc) + 49b2: 2a0f subi r2, 16 + 49b4: 250f addi r5, 16 + 49b6: 3a2f cmplti r2, 16 + 49b8: 0ff9 bf 0x49aa // 49aa <__memset_fast+0x52> + 49ba: 3a23 cmplti r2, 4 + 49bc: 0806 bt 0x49c8 // 49c8 <__memset_fast+0x70> + 49be: 2a03 subi r2, 4 + 49c0: b520 st.w r1, (r5, 0x0) + 49c2: 2503 addi r5, 4 + 49c4: 3a23 cmplti r2, 4 + 49c6: 0ffc bf 0x49be // 49be <__memset_fast+0x66> + 49c8: 3a40 cmpnei r2, 0 + 49ca: 0fe9 bf 0x499c // 499c <__memset_fast+0x44> + 49cc: 2a00 subi r2, 1 + 49ce: a520 st.b r1, (r5, 0x0) + 49d0: 3a40 cmpnei r2, 0 + 49d2: 0fe5 bf 0x499c // 499c <__memset_fast+0x44> + 49d4: 2a00 subi r2, 1 + 49d6: a521 st.b r1, (r5, 0x1) + 49d8: 3a40 cmpnei r2, 0 + 49da: 0fe1 bf 0x499c // 499c <__memset_fast+0x44> + 49dc: a522 st.b r1, (r5, 0x2) + 49de: 1483 pop r4-r6 + +000049e0 <__memcpy_fast>: + 49e0: 14c3 push r4-r6 + 49e2: 6d83 mov r6, r0 + 49e4: 6d07 mov r4, r1 + 49e6: 6d18 or r4, r6 + 49e8: 3303 movi r3, 3 + 49ea: 690c and r4, r3 + 49ec: 3c40 cmpnei r4, 0 + 49ee: 0c0b bf 0x4a04 // 4a04 <__memcpy_fast+0x24> + 49f0: 3a40 cmpnei r2, 0 + 49f2: 0c08 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 49f4: 8160 ld.b r3, (r1, 0x0) + 49f6: 2100 addi r1, 1 + 49f8: 2a00 subi r2, 1 + 49fa: a660 st.b r3, (r6, 0x0) + 49fc: 2600 addi r6, 1 + 49fe: 3a40 cmpnei r2, 0 + 4a00: 0bfa bt 0x49f4 // 49f4 <__memcpy_fast+0x14> + 4a02: 1483 pop r4-r6 + 4a04: 3a2f cmplti r2, 16 + 4a06: 080e bt 0x4a22 // 4a22 <__memcpy_fast+0x42> + 4a08: 91a0 ld.w r5, (r1, 0x0) + 4a0a: 9161 ld.w r3, (r1, 0x4) + 4a0c: 9182 ld.w r4, (r1, 0x8) + 4a0e: b6a0 st.w r5, (r6, 0x0) + 4a10: 91a3 ld.w r5, (r1, 0xc) + 4a12: b661 st.w r3, (r6, 0x4) + 4a14: b682 st.w r4, (r6, 0x8) + 4a16: b6a3 st.w r5, (r6, 0xc) + 4a18: 2a0f subi r2, 16 + 4a1a: 210f addi r1, 16 + 4a1c: 260f addi r6, 16 + 4a1e: 3a2f cmplti r2, 16 + 4a20: 0ff4 bf 0x4a08 // 4a08 <__memcpy_fast+0x28> + 4a22: 3a23 cmplti r2, 4 + 4a24: 0808 bt 0x4a34 // 4a34 <__memcpy_fast+0x54> + 4a26: 9160 ld.w r3, (r1, 0x0) + 4a28: 2a03 subi r2, 4 + 4a2a: 2103 addi r1, 4 + 4a2c: b660 st.w r3, (r6, 0x0) + 4a2e: 2603 addi r6, 4 + 4a30: 3a23 cmplti r2, 4 + 4a32: 0ffa bf 0x4a26 // 4a26 <__memcpy_fast+0x46> + 4a34: 3a40 cmpnei r2, 0 + 4a36: 0fe6 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 4a38: 8160 ld.b r3, (r1, 0x0) + 4a3a: 2100 addi r1, 1 + 4a3c: 2a00 subi r2, 1 + 4a3e: a660 st.b r3, (r6, 0x0) + 4a40: 2600 addi r6, 1 + 4a42: 07f9 br 0x4a34 // 4a34 <__memcpy_fast+0x54> + +00004a44 <__GI_strncmp>: + 4a44: 14c1 push r4 + 4a46: 6cc3 mov r3, r0 + 4a48: 6080 addu r2, r0 + 4a4a: 040c br 0x4a62 // 4a62 <__GI_strncmp+0x1e> + 4a4c: 8380 ld.b r4, (r3, 0x0) + 4a4e: 8100 ld.b r0, (r1, 0x0) + 4a50: 6012 subu r0, r4 + 4a52: 6c02 nor r0, r0 + 4a54: 2000 addi r0, 1 + 4a56: 3840 cmpnei r0, 0 + 4a58: 0808 bt 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5a: 3c40 cmpnei r4, 0 + 4a5c: 0c06 bf 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5e: 2300 addi r3, 1 + 4a60: 2100 addi r1, 1 + 4a62: 648c cmphs r3, r2 + 4a64: 0ff4 bf 0x4a4c // 4a4c <__GI_strncmp+0x8> + 4a66: 3000 movi r0, 0 + 4a68: 1481 pop r4 + ... + +00004a6c : + 4a6c: 14d4 push r4-r7, r15 + 4a6e: 3820 cmplti r0, 1 + 4a70: 6d03 mov r4, r0 + 4a72: 6d47 mov r5, r1 + 4a74: 6df7 mov r7, r13 + 4a76: 080d bt 0x4a90 // 4a90 + 4a78: 6d83 mov r6, r0 + 4a7a: 3e30 cmplti r6, 17 + 4a7c: 9700 ld.w r0, (r7, 0x0) + 4a7e: 0c0a bf 0x4a92 // 4a92 + 4a80: 5c63 subi r3, r4, 1 + 4a82: 4b24 lsri r1, r3, 4 + 4a84: 4164 lsli r3, r1, 4 + 4a86: 9040 ld.w r2, (r0, 0x0) + 4a88: 5c2d subu r1, r4, r3 + 4a8a: 9081 ld.w r4, (r0, 0x4) + 4a8c: 6c17 mov r0, r5 + 4a8e: 7bd1 jsr r4 + 4a90: 1494 pop r4-r7, r15 + 4a92: 9040 ld.w r2, (r0, 0x0) + 4a94: 9061 ld.w r3, (r0, 0x4) + 4a96: 3110 movi r1, 16 + 4a98: 6c17 mov r0, r5 + 4a9a: 7bcd jsr r3 + 4a9c: 2e0f subi r6, 16 + 4a9e: 07ee br 0x4a7a // 4a7a + +00004aa0 <__v2_printf>: + 4aa0: 14d4 push r4-r7, r15 + 4aa2: 143c subi r14, r14, 112 + 4aa4: b826 st.w r1, (r14, 0x18) + 4aa6: 1912 addi r1, r14, 72 + 4aa8: 1b21 addi r3, r14, 132 + 4aaa: b810 st.w r0, (r14, 0x40) + 4aac: 2100 addi r1, 1 + 4aae: 3000 movi r0, 0 + 4ab0: 6d4b mov r5, r2 + 4ab2: b871 st.w r3, (r14, 0x44) + 4ab4: b80a st.w r0, (r14, 0x28) + 4ab6: b809 st.w r0, (r14, 0x24) + 4ab8: b82d st.w r1, (r14, 0x34) + 4aba: 9886 ld.w r4, (r14, 0x18) + 4abc: 3325 movi r3, 37 + 4abe: 84c0 ld.b r6, (r4, 0x0) + 4ac0: 3e40 cmpnei r6, 0 + 4ac2: 0c03 bf 0x4ac8 // 4ac8 <__v2_printf+0x28> + 4ac4: 64da cmpne r6, r3 + 4ac6: 0845 bt 0x4b50 // 4b50 <__v2_printf+0xb0> + 4ac8: 9846 ld.w r2, (r14, 0x18) + 4aca: 5cc9 subu r6, r4, r2 + 4acc: 3e40 cmpnei r6, 0 + 4ace: 0c0a bf 0x4ae2 // 4ae2 <__v2_printf+0x42> + 4ad0: 9870 ld.w r3, (r14, 0x40) + 4ad2: 9340 ld.w r2, (r3, 0x0) + 4ad4: 6c5b mov r1, r6 + 4ad6: 9361 ld.w r3, (r3, 0x4) + 4ad8: 9806 ld.w r0, (r14, 0x18) + 4ada: 7bcd jsr r3 + 4adc: 9809 ld.w r0, (r14, 0x24) + 4ade: 6018 addu r0, r6 + 4ae0: b809 st.w r0, (r14, 0x24) + 4ae2: 8420 ld.b r1, (r4, 0x0) + 4ae4: 3940 cmpnei r1, 0 + 4ae6: 0803 bt 0x4aec // 4aec <__v2_printf+0x4c> + 4ae8: e8000367 br 0x51b6 // 51b6 <__v2_printf+0x716> + 4aec: 3637 movi r6, 55 + 4aee: 1a01 addi r2, r14, 4 + 4af0: 3700 movi r7, 0 + 4af2: 6188 addu r6, r2 + 4af4: a6e0 st.b r7, (r6, 0x0) + 4af6: 3300 movi r3, 0 + 4af8: 3600 movi r6, 0 + 4afa: 2400 addi r4, 1 + 4afc: 3000 movi r0, 0 + 4afe: 3100 movi r1, 0 + 4b00: 2e00 subi r6, 1 + 4b02: b867 st.w r3, (r14, 0x1c) + 4b04: 3700 movi r7, 0 + 4b06: 5c42 addi r2, r4, 1 + 4b08: b846 st.w r2, (r14, 0x18) + 4b0a: 8480 ld.b r4, (r4, 0x0) + 4b0c: 3364 movi r3, 100 + 4b0e: 64d2 cmpne r4, r3 + 4b10: 0d90 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4b12: 650d cmplt r3, r4 + 4b14: 084e bt 0x4bb0 // 4bb0 <__v2_printf+0x110> + 4b16: 322e movi r2, 46 + 4b18: 6492 cmpne r4, r2 + 4b1a: 0d41 bf 0x4d9c // 4d9c <__v2_printf+0x2fc> + 4b1c: 6509 cmplt r2, r4 + 4b1e: 0829 bt 0x4b70 // 4b70 <__v2_printf+0xd0> + 4b20: 332a movi r3, 42 + 4b22: 64d2 cmpne r4, r3 + 4b24: 0d31 bf 0x4d86 // 4d86 <__v2_printf+0x2e6> + 4b26: 650d cmplt r3, r4 + 4b28: 081c bt 0x4b60 // 4b60 <__v2_printf+0xc0> + 4b2a: 3220 movi r2, 32 + 4b2c: 6492 cmpne r4, r2 + 4b2e: 0d25 bf 0x4d78 // 4d78 <__v2_printf+0x2d8> + 4b30: 3323 movi r3, 35 + 4b32: 64d2 cmpne r4, r3 + 4b34: 0d27 bf 0x4d82 // 4d82 <__v2_printf+0x2e2> + 4b36: 3c40 cmpnei r4, 0 + 4b38: 0803 bt 0x4b3e // 4b3e <__v2_printf+0x9e> + 4b3a: e800033e br 0x51b6 // 51b6 <__v2_printf+0x716> + 4b3e: 1e12 addi r6, r14, 72 + 4b40: 3037 movi r0, 55 + 4b42: 1a01 addi r2, r14, 4 + 4b44: a680 st.b r4, (r6, 0x0) + 4b46: 6008 addu r0, r2 + 4b48: 3400 movi r4, 0 + 4b4a: a080 st.b r4, (r0, 0x0) + 4b4c: b8a5 st.w r5, (r14, 0x14) + 4b4e: 042c br 0x4ba6 // 4ba6 <__v2_printf+0x106> + 4b50: 2400 addi r4, 1 + 4b52: 07b6 br 0x4abe // 4abe <__v2_printf+0x1e> + 4b54: 3001 movi r0, 1 + 4b56: 312b movi r1, 43 + 4b58: 9886 ld.w r4, (r14, 0x18) + 4b5a: 07d6 br 0x4b06 // 4b06 <__v2_printf+0x66> + 4b5c: 6d4f mov r5, r3 + 4b5e: 07fd br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b60: 322b movi r2, 43 + 4b62: 6492 cmpne r4, r2 + 4b64: 0ff8 bf 0x4b54 // 4b54 <__v2_printf+0xb4> + 4b66: 332d movi r3, 45 + 4b68: 64d2 cmpne r4, r3 + 4b6a: 0be6 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b6c: 3fa2 bseti r7, 2 + 4b6e: 07f5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b70: 3339 movi r3, 57 + 4b72: 650d cmplt r3, r4 + 4b74: 0809 bt 0x4b86 // 4b86 <__v2_printf+0xe6> + 4b76: 3231 movi r2, 49 + 4b78: 6491 cmplt r4, r2 + 4b7a: 0d34 bf 0x4de2 // 4de2 <__v2_printf+0x342> + 4b7c: 3330 movi r3, 48 + 4b7e: 64d2 cmpne r4, r3 + 4b80: 0bdb bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b82: 3fa7 bseti r7, 7 + 4b84: 07ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b86: 3258 movi r2, 88 + 4b88: 6492 cmpne r4, r2 + 4b8a: 0cd3 bf 0x4d30 // 4d30 <__v2_printf+0x290> + 4b8c: 3063 movi r0, 99 + 4b8e: 6412 cmpne r4, r0 + 4b90: 0bd3 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b92: 3337 movi r3, 55 + 4b94: 1a01 addi r2, r14, 4 + 4b96: 5d2e addi r1, r5, 4 + 4b98: 85c0 ld.b r6, (r5, 0x0) + 4b9a: 3400 movi r4, 0 + 4b9c: 1d12 addi r5, r14, 72 + 4b9e: 60c8 addu r3, r2 + 4ba0: b825 st.w r1, (r14, 0x14) + 4ba2: a5c0 st.b r6, (r5, 0x0) + 4ba4: a380 st.b r4, (r3, 0x0) + 4ba6: 3601 movi r6, 1 + 4ba8: 3500 movi r5, 0 + 4baa: 1c12 addi r4, r14, 72 + 4bac: e8000295 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4bb0: 336d movi r3, 109 + 4bb2: 64d2 cmpne r4, r3 + 4bb4: 0d2d bf 0x4e0e // 4e0e <__v2_printf+0x36e> + 4bb6: 650d cmplt r3, r4 + 4bb8: 0883 bt 0x4cbe // 4cbe <__v2_printf+0x21e> + 4bba: 3268 movi r2, 104 + 4bbc: 6492 cmpne r4, r2 + 4bbe: 0d24 bf 0x4e06 // 4e06 <__v2_printf+0x366> + 4bc0: 6509 cmplt r2, r4 + 4bc2: 086f bt 0x4ca0 // 4ca0 <__v2_printf+0x200> + 4bc4: 3366 movi r3, 102 + 4bc6: 64d1 cmplt r4, r3 + 4bc8: 0bb7 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4bca: 3840 cmpnei r0, 0 + 4bcc: 0c05 bf 0x4bd6 // 4bd6 <__v2_printf+0x136> + 4bce: 3037 movi r0, 55 + 4bd0: 1a01 addi r2, r14, 4 + 4bd2: 6008 addu r0, r2 + 4bd4: a020 st.b r1, (r0, 0x0) + 4bd6: 5d3e addi r1, r5, 8 + 4bd8: b825 st.w r1, (r14, 0x14) + 4bda: 9500 ld.w r0, (r5, 0x0) + 4bdc: 9521 ld.w r1, (r5, 0x4) + 4bde: 98a7 ld.w r5, (r14, 0x1c) + 4be0: 3d40 cmpnei r5, 0 + 4be2: 0803 bt 0x4be8 // 4be8 <__v2_printf+0x148> + 4be4: 3301 movi r3, 1 + 4be6: b867 st.w r3, (r14, 0x1c) + 4be8: 3200 movi r2, 0 + 4bea: 2a00 subi r2, 1 + 4bec: 649a cmpne r6, r2 + 4bee: 0d58 bf 0x4e9e // 4e9e <__v2_printf+0x3fe> + 4bf0: 6d5b mov r5, r6 + 4bf2: 9867 ld.w r3, (r14, 0x1c) + 4bf4: b860 st.w r3, (r14, 0x0) + 4bf6: b8a1 st.w r5, (r14, 0x4) + 4bf8: 3328 movi r3, 40 + 4bfa: 1a12 addi r2, r14, 72 + 4bfc: e000069d bsr 0x5936 // 5936 <__GI___dtostr> + 4c00: 3100 movi r1, 0 + 4c02: 2900 subi r1, 1 + 4c04: 645a cmpne r6, r1 + 4c06: b808 st.w r0, (r14, 0x20) + 4c08: 0c1a bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4c0a: 312e movi r1, 46 + 4c0c: 980d ld.w r0, (r14, 0x34) + 4c0e: e00008c9 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c12: 3840 cmpnei r0, 0 + 4c14: 98c8 ld.w r6, (r14, 0x20) + 4c16: 0d48 bf 0x4ea6 // 4ea6 <__v2_printf+0x406> + 4c18: 3d40 cmpnei r5, 0 + 4c1a: 0805 bt 0x4c24 // 4c24 <__v2_printf+0x184> + 4c1c: 3101 movi r1, 1 + 4c1e: 685c and r1, r7 + 4c20: 3940 cmpnei r1, 0 + 4c22: 0d40 bf 0x4ea2 // 4ea2 <__v2_printf+0x402> + 4c24: 58c2 addi r6, r0, 1 + 4c26: 2500 addi r5, 1 + 4c28: 5d59 subu r2, r5, r6 + 4c2a: 6080 addu r2, r0 + 4c2c: 3a20 cmplti r2, 1 + 4c2e: 0805 bt 0x4c38 // 4c38 <__v2_printf+0x198> + 4c30: 2600 addi r6, 1 + 4c32: 8660 ld.b r3, (r6, 0x0) + 4c34: 3b40 cmpnei r3, 0 + 4c36: 0bf9 bt 0x4c28 // 4c28 <__v2_printf+0x188> + 4c38: 3500 movi r5, 0 + 4c3a: a6a0 st.b r5, (r6, 0x0) + 4c3c: 3067 movi r0, 103 + 4c3e: 6412 cmpne r4, r0 + 4c40: 0822 bt 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c42: 312e movi r1, 46 + 4c44: 1812 addi r0, r14, 72 + 4c46: e00008ad bsr 0x5da0 // 5da0 <__GI_strchr> + 4c4a: 3840 cmpnei r0, 0 + 4c4c: 6d03 mov r4, r0 + 4c4e: 0c1b bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c50: 3165 movi r1, 101 + 4c52: e00008a7 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c56: 6c43 mov r1, r0 + 4c58: 84c0 ld.b r6, (r4, 0x0) + 4c5a: 3e40 cmpnei r6, 0 + 4c5c: 0930 bt 0x4ebc // 4ebc <__v2_printf+0x41c> + 4c5e: 3940 cmpnei r1, 0 + 4c60: 0c02 bf 0x4c64 // 4c64 <__v2_printf+0x1c4> + 4c62: 6d07 mov r4, r1 + 4c64: 3630 movi r6, 48 + 4c66: 5c63 subi r3, r4, 1 + 4c68: 8340 ld.b r2, (r3, 0x0) + 4c6a: 658a cmpne r2, r6 + 4c6c: 0d2a bf 0x4ec0 // 4ec0 <__v2_printf+0x420> + 4c6e: 352e movi r5, 46 + 4c70: 654a cmpne r2, r5 + 4c72: 0802 bt 0x4c76 // 4c76 <__v2_printf+0x1d6> + 4c74: 6d0f mov r4, r3 + 4c76: 3000 movi r0, 0 + 4c78: 3940 cmpnei r1, 0 + 4c7a: a400 st.b r0, (r4, 0x0) + 4c7c: 0c04 bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c7e: 6c13 mov r0, r4 + 4c80: e0000838 bsr 0x5cf0 // 5cf0 <__strcpy_fast> + 4c84: 1912 addi r1, r14, 72 + 4c86: 81c0 ld.b r6, (r1, 0x0) + 4c88: 332d movi r3, 45 + 4c8a: 64da cmpne r6, r3 + 4c8c: 0c02 bf 0x4c90 // 4c90 <__v2_printf+0x1f0> + 4c8e: 05ef br 0x506c // 506c <__v2_printf+0x5cc> + 4c90: 3437 movi r4, 55 + 4c92: 1801 addi r0, r14, 4 + 4c94: 352d movi r5, 45 + 4c96: 6100 addu r4, r0 + 4c98: a4a0 st.b r5, (r4, 0x0) + 4c9a: 1912 addi r1, r14, 72 + 4c9c: 5982 addi r4, r1, 1 + 4c9e: 05ec br 0x5076 // 5076 <__v2_printf+0x5d6> + 4ca0: 3369 movi r3, 105 + 4ca2: 64d2 cmpne r4, r3 + 4ca4: 0cc6 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4ca6: 326c movi r2, 108 + 4ca8: 6492 cmpne r4, r2 + 4caa: 0b46 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cac: 9866 ld.w r3, (r14, 0x18) + 4cae: 8340 ld.b r2, (r3, 0x0) + 4cb0: 650a cmpne r2, r4 + 4cb2: 08ac bt 0x4e0a // 4e0a <__v2_printf+0x36a> + 4cb4: 9886 ld.w r4, (r14, 0x18) + 4cb6: 2400 addi r4, 1 + 4cb8: b886 st.w r4, (r14, 0x18) + 4cba: 3fa5 bseti r7, 5 + 4cbc: 074e br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4cbe: 3371 movi r3, 113 + 4cc0: 64d2 cmpne r4, r3 + 4cc2: 0ffc bf 0x4cba // 4cba <__v2_printf+0x21a> + 4cc4: 650d cmplt r3, r4 + 4cc6: 081a bt 0x4cfa // 4cfa <__v2_printf+0x25a> + 4cc8: 306f movi r0, 111 + 4cca: 6412 cmpne r4, r0 + 4ccc: 0cfc bf 0x4ec4 // 4ec4 <__v2_printf+0x424> + 4cce: 3170 movi r1, 112 + 4cd0: 6452 cmpne r4, r1 + 4cd2: 0b32 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cd4: 5d4e addi r2, r5, 4 + 4cd6: 3400 movi r4, 0 + 4cd8: 95a0 ld.w r5, (r5, 0x0) + 4cda: b845 st.w r2, (r14, 0x14) + 4cdc: 1901 addi r1, r14, 4 + 4cde: 3239 movi r2, 57 + 4ce0: b8a3 st.w r5, (r14, 0xc) + 4ce2: b884 st.w r4, (r14, 0x10) + 4ce4: 3330 movi r3, 48 + 4ce6: 180f addi r0, r14, 60 + 4ce8: 3578 movi r5, 120 + 4cea: 6084 addu r2, r1 + 4cec: 0195 lrw r4, 0xbab7 // 5014 <__v2_printf+0x574> + 4cee: 3fa1 bseti r7, 1 + 4cf0: a060 st.b r3, (r0, 0x0) + 4cf2: a2a0 st.b r5, (r2, 0x0) + 4cf4: b88a st.w r4, (r14, 0x28) + 4cf6: 3402 movi r4, 2 + 4cf8: 04f1 br 0x4eda // 4eda <__v2_printf+0x43a> + 4cfa: 3275 movi r2, 117 + 4cfc: 6492 cmpne r4, r2 + 4cfe: 0d28 bf 0x4f4e // 4f4e <__v2_printf+0x4ae> + 4d00: 3378 movi r3, 120 + 4d02: 64d2 cmpne r4, r3 + 4d04: 0d44 bf 0x4f8c // 4f8c <__v2_printf+0x4ec> + 4d06: 3173 movi r1, 115 + 4d08: 6452 cmpne r4, r1 + 4d0a: 0b16 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4d0c: 3200 movi r2, 0 + 4d0e: 3037 movi r0, 55 + 4d10: 1901 addi r1, r14, 4 + 4d12: 2a00 subi r2, 1 + 4d14: 5d6e addi r3, r5, 4 + 4d16: 9580 ld.w r4, (r5, 0x0) + 4d18: 6004 addu r0, r1 + 4d1a: 3500 movi r5, 0 + 4d1c: 649a cmpne r6, r2 + 4d1e: b865 st.w r3, (r14, 0x14) + 4d20: a0a0 st.b r5, (r0, 0x0) + 4d22: 090b bt 0x4f38 // 4f38 <__v2_printf+0x498> + 4d24: 6cd3 mov r3, r4 + 4d26: 83c0 ld.b r6, (r3, 0x0) + 4d28: 3e40 cmpnei r6, 0 + 4d2a: 0910 bt 0x4f4a // 4f4a <__v2_printf+0x4aa> + 4d2c: 5bd1 subu r6, r3, r4 + 4d2e: 047f br 0x4e2c // 4e2c <__v2_printf+0x38c> + 4d30: 3840 cmpnei r0, 0 + 4d32: 0c05 bf 0x4d3c // 4d3c <__v2_printf+0x29c> + 4d34: 3037 movi r0, 55 + 4d36: 1b01 addi r3, r14, 4 + 4d38: 600c addu r0, r3 + 4d3a: a020 st.b r1, (r0, 0x0) + 4d3c: 0228 lrw r1, 0xbaa6 // 5018 <__v2_printf+0x578> + 4d3e: 3020 movi r0, 32 + 4d40: 681c and r0, r7 + 4d42: 3840 cmpnei r0, 0 + 4d44: b82a st.w r1, (r14, 0x28) + 4d46: 0d2b bf 0x4f9c // 4f9c <__v2_printf+0x4fc> + 4d48: 5d5e addi r2, r5, 8 + 4d4a: b845 st.w r2, (r14, 0x14) + 4d4c: 9520 ld.w r1, (r5, 0x0) + 4d4e: 9541 ld.w r2, (r5, 0x4) + 4d50: b823 st.w r1, (r14, 0xc) + 4d52: b844 st.w r2, (r14, 0x10) + 4d54: 3001 movi r0, 1 + 4d56: 681c and r0, r7 + 4d58: 3840 cmpnei r0, 0 + 4d5a: 0fce bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d5c: 98a3 ld.w r5, (r14, 0xc) + 4d5e: 9864 ld.w r3, (r14, 0x10) + 4d60: 6d4c or r5, r3 + 4d62: 3d40 cmpnei r5, 0 + 4d64: 0fc9 bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d66: 3039 movi r0, 57 + 4d68: 1d01 addi r5, r14, 4 + 4d6a: 3130 movi r1, 48 + 4d6c: 1a0f addi r2, r14, 60 + 4d6e: 6014 addu r0, r5 + 4d70: a220 st.b r1, (r2, 0x0) + 4d72: a080 st.b r4, (r0, 0x0) + 4d74: 3fa1 bseti r7, 1 + 4d76: 07c0 br 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d78: 3940 cmpnei r1, 0 + 4d7a: 0aef bt 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d7c: 3001 movi r0, 1 + 4d7e: 3120 movi r1, 32 + 4d80: 06ec br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d82: 3fa0 bseti r7, 0 + 4d84: 06ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d86: 9580 ld.w r4, (r5, 0x0) + 4d88: 3cdf btsti r4, 31 + 4d8a: 5d6e addi r3, r5, 4 + 4d8c: b887 st.w r4, (r14, 0x1c) + 4d8e: 0ee7 bf 0x4b5c // 4b5c <__v2_printf+0xbc> + 4d90: 9847 ld.w r2, (r14, 0x1c) + 4d92: 3500 movi r5, 0 + 4d94: 614a subu r5, r2 + 4d96: b8a7 st.w r5, (r14, 0x1c) + 4d98: 6d4f mov r5, r3 + 4d9a: 06e9 br 0x4b6c // 4b6c <__v2_printf+0xcc> + 4d9c: 98c6 ld.w r6, (r14, 0x18) + 4d9e: 8680 ld.b r4, (r6, 0x0) + 4da0: 322a movi r2, 42 + 4da2: 9866 ld.w r3, (r14, 0x18) + 4da4: 6492 cmpne r4, r2 + 4da6: 2300 addi r3, 1 + 4da8: 0c0b bf 0x4dbe // 4dbe <__v2_printf+0x31e> + 4daa: b865 st.w r3, (r14, 0x14) + 4dac: 3600 movi r6, 0 + 4dae: 3300 movi r3, 0 + 4db0: 2b2f subi r3, 48 + 4db2: 60d0 addu r3, r4 + 4db4: 3b09 cmphsi r3, 10 + 4db6: 9845 ld.w r2, (r14, 0x14) + 4db8: 0c0c bf 0x4dd0 // 4dd0 <__v2_printf+0x330> + 4dba: b846 st.w r2, (r14, 0x18) + 4dbc: 06a8 br 0x4b0c // 4b0c <__v2_printf+0x6c> + 4dbe: 95c0 ld.w r6, (r5, 0x0) + 4dc0: 3edf btsti r6, 31 + 4dc2: 5d8e addi r4, r5, 4 + 4dc4: 0c03 bf 0x4dca // 4dca <__v2_printf+0x32a> + 4dc6: 3600 movi r6, 0 + 4dc8: 2e00 subi r6, 1 + 4dca: 6d53 mov r5, r4 + 4dcc: b866 st.w r3, (r14, 0x18) + 4dce: 06c5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4dd0: 340a movi r4, 10 + 4dd2: 7d18 mult r4, r6 + 4dd4: 9845 ld.w r2, (r14, 0x14) + 4dd6: 6d8f mov r6, r3 + 4dd8: 6190 addu r6, r4 + 4dda: 8280 ld.b r4, (r2, 0x0) + 4ddc: 2200 addi r2, 1 + 4dde: b845 st.w r2, (r14, 0x14) + 4de0: 07e7 br 0x4dae // 4dae <__v2_printf+0x30e> + 4de2: 3200 movi r2, 0 + 4de4: b847 st.w r2, (r14, 0x1c) + 4de6: 9867 ld.w r3, (r14, 0x1c) + 4de8: 320a movi r2, 10 + 4dea: 7cc8 mult r3, r2 + 4dec: 2c2f subi r4, 48 + 4dee: 610c addu r4, r3 + 4df0: b887 st.w r4, (r14, 0x1c) + 4df2: 3300 movi r3, 0 + 4df4: 9886 ld.w r4, (r14, 0x18) + 4df6: 5c42 addi r2, r4, 1 + 4df8: 2b2f subi r3, 48 + 4dfa: 8480 ld.b r4, (r4, 0x0) + 4dfc: 60d0 addu r3, r4 + 4dfe: 3b09 cmphsi r3, 10 + 4e00: b846 st.w r2, (r14, 0x18) + 4e02: 0ff2 bf 0x4de6 // 4de6 <__v2_printf+0x346> + 4e04: 07db br 0x4dba // 4dba <__v2_printf+0x31a> + 4e06: 3fa6 bseti r7, 6 + 4e08: 06a8 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0a: 3fa4 bseti r7, 4 + 4e0c: 06a6 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0e: 3840 cmpnei r0, 0 + 4e10: 0c05 bf 0x4e1a // 4e1a <__v2_printf+0x37a> + 4e12: 3637 movi r6, 55 + 4e14: 1b01 addi r3, r14, 4 + 4e16: 618c addu r6, r3 + 4e18: a620 st.b r1, (r6, 0x0) + 4e1a: 033e lrw r1, 0x20000af4 // 501c <__v2_printf+0x57c> + 4e1c: 9100 ld.w r0, (r1, 0x0) + 4e1e: e00007cb bsr 0x5db4 // 5db4 <__GI_strerror> + 4e22: 6d03 mov r4, r0 + 4e24: e000073c bsr 0x5c9c // 5c9c <__strlen_fast> + 4e28: 6d83 mov r6, r0 + 4e2a: b8a5 st.w r5, (r14, 0x14) + 4e2c: 3500 movi r5, 0 + 4e2e: 0554 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4e30: 3840 cmpnei r0, 0 + 4e32: 0c05 bf 0x4e3c // 4e3c <__v2_printf+0x39c> + 4e34: 3037 movi r0, 55 + 4e36: 1a01 addi r2, r14, 4 + 4e38: 6008 addu r0, r2 + 4e3a: a020 st.b r1, (r0, 0x0) + 4e3c: 3420 movi r4, 32 + 4e3e: 691c and r4, r7 + 4e40: 3c40 cmpnei r4, 0 + 4e42: 0c1a bf 0x4e76 // 4e76 <__v2_printf+0x3d6> + 4e44: 5d7e addi r3, r5, 8 + 4e46: 9520 ld.w r1, (r5, 0x0) + 4e48: 9541 ld.w r2, (r5, 0x4) + 4e4a: b865 st.w r3, (r14, 0x14) + 4e4c: b823 st.w r1, (r14, 0xc) + 4e4e: b844 st.w r2, (r14, 0x10) + 4e50: 9804 ld.w r0, (r14, 0x10) + 4e52: 38df btsti r0, 31 + 4e54: 0c0f bf 0x4e72 // 4e72 <__v2_printf+0x3d2> + 4e56: 9883 ld.w r4, (r14, 0xc) + 4e58: 98a4 ld.w r5, (r14, 0x10) + 4e5a: 3200 movi r2, 0 + 4e5c: 3300 movi r3, 0 + 4e5e: 6488 cmphs r2, r2 + 4e60: 6093 subc r2, r4 + 4e62: 60d7 subc r3, r5 + 4e64: b843 st.w r2, (r14, 0xc) + 4e66: b864 st.w r3, (r14, 0x10) + 4e68: 3237 movi r2, 55 + 4e6a: 1b01 addi r3, r14, 4 + 4e6c: 352d movi r5, 45 + 4e6e: 608c addu r2, r3 + 4e70: a2a0 st.b r5, (r2, 0x0) + 4e72: 3401 movi r4, 1 + 4e74: 0438 br 0x4ee4 // 4ee4 <__v2_printf+0x444> + 4e76: 3310 movi r3, 16 + 4e78: 68dc and r3, r7 + 4e7a: 3b40 cmpnei r3, 0 + 4e7c: 0c08 bf 0x4e8c // 4e8c <__v2_printf+0x3ec> + 4e7e: 5d4e addi r2, r5, 4 + 4e80: b845 st.w r2, (r14, 0x14) + 4e82: 95a0 ld.w r5, (r5, 0x0) + 4e84: 559f asri r4, r5, 31 + 4e86: b8a3 st.w r5, (r14, 0xc) + 4e88: b884 st.w r4, (r14, 0x10) + 4e8a: 07e3 br 0x4e50 // 4e50 <__v2_printf+0x3b0> + 4e8c: 3140 movi r1, 64 + 4e8e: 685c and r1, r7 + 4e90: 5d0e addi r0, r5, 4 + 4e92: 3940 cmpnei r1, 0 + 4e94: 95a0 ld.w r5, (r5, 0x0) + 4e96: b805 st.w r0, (r14, 0x14) + 4e98: 0ff6 bf 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9a: 7557 sexth r5, r5 + 4e9c: 07f4 br 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9e: 3506 movi r5, 6 + 4ea0: 06a9 br 0x4bf2 // 4bf2 <__v2_printf+0x152> + 4ea2: 6d83 mov r6, r0 + 4ea4: 06ca br 0x4c38 // 4c38 <__v2_printf+0x198> + 4ea6: 3201 movi r2, 1 + 4ea8: 689c and r2, r7 + 4eaa: 3a40 cmpnei r2, 0 + 4eac: 0ec8 bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4eae: 1d12 addi r5, r14, 72 + 4eb0: 6158 addu r5, r6 + 4eb2: 332e movi r3, 46 + 4eb4: 3000 movi r0, 0 + 4eb6: a560 st.b r3, (r5, 0x0) + 4eb8: a501 st.b r0, (r5, 0x1) + 4eba: 06c1 br 0x4c3c // 4c3c <__v2_printf+0x19c> + 4ebc: 2400 addi r4, 1 + 4ebe: 06cd br 0x4c58 // 4c58 <__v2_printf+0x1b8> + 4ec0: 6d0f mov r4, r3 + 4ec2: 06d2 br 0x4c66 // 4c66 <__v2_printf+0x1c6> + 4ec4: 3320 movi r3, 32 + 4ec6: 68dc and r3, r7 + 4ec8: 3b40 cmpnei r3, 0 + 4eca: 0c24 bf 0x4f12 // 4f12 <__v2_printf+0x472> + 4ecc: 5d7e addi r3, r5, 8 + 4ece: 9500 ld.w r0, (r5, 0x0) + 4ed0: 9521 ld.w r1, (r5, 0x4) + 4ed2: b865 st.w r3, (r14, 0x14) + 4ed4: b803 st.w r0, (r14, 0xc) + 4ed6: b824 st.w r1, (r14, 0x10) + 4ed8: 3400 movi r4, 0 + 4eda: 3537 movi r5, 55 + 4edc: 1801 addi r0, r14, 4 + 4ede: 3200 movi r2, 0 + 4ee0: 6140 addu r5, r0 + 4ee2: a540 st.b r2, (r5, 0x0) + 4ee4: 3100 movi r1, 0 + 4ee6: 2900 subi r1, 1 + 4ee8: 9803 ld.w r0, (r14, 0xc) + 4eea: 98a4 ld.w r5, (r14, 0x10) + 4eec: 645a cmpne r6, r1 + 4eee: 6c14 or r0, r5 + 4ef0: 0cc8 bf 0x5080 // 5080 <__v2_printf+0x5e0> + 4ef2: 6c9f mov r2, r7 + 4ef4: 3a87 bclri r2, 7 + 4ef6: 3840 cmpnei r0, 0 + 4ef8: b848 st.w r2, (r14, 0x20) + 4efa: 08c6 bt 0x5086 // 5086 <__v2_printf+0x5e6> + 4efc: 3e40 cmpnei r6, 0 + 4efe: 0cac bf 0x5056 // 5056 <__v2_printf+0x5b6> + 4f00: 3c41 cmpnei r4, 1 + 4f02: 0c68 bf 0x4fd2 // 4fd2 <__v2_printf+0x532> + 4f04: 3c42 cmpnei r4, 2 + 4f06: 0c8d bf 0x5020 // 5020 <__v2_printf+0x580> + 4f08: 3300 movi r3, 0 + 4f0a: 3400 movi r4, 0 + 4f0c: b863 st.w r3, (r14, 0xc) + 4f0e: b884 st.w r4, (r14, 0x10) + 4f10: 04bf br 0x508e // 508e <__v2_printf+0x5ee> + 4f12: 3010 movi r0, 16 + 4f14: 681c and r0, r7 + 4f16: 3840 cmpnei r0, 0 + 4f18: 0c05 bf 0x4f22 // 4f22 <__v2_printf+0x482> + 4f1a: 5d8e addi r4, r5, 4 + 4f1c: b885 st.w r4, (r14, 0x14) + 4f1e: 95a0 ld.w r5, (r5, 0x0) + 4f20: 0408 br 0x4f30 // 4f30 <__v2_printf+0x490> + 4f22: 3240 movi r2, 64 + 4f24: 689c and r2, r7 + 4f26: 5d2e addi r1, r5, 4 + 4f28: 3a40 cmpnei r2, 0 + 4f2a: b825 st.w r1, (r14, 0x14) + 4f2c: 0ff9 bf 0x4f1e // 4f1e <__v2_printf+0x47e> + 4f2e: 8da0 ld.h r5, (r5, 0x0) + 4f30: 3400 movi r4, 0 + 4f32: b8a3 st.w r5, (r14, 0xc) + 4f34: b884 st.w r4, (r14, 0x10) + 4f36: 07d2 br 0x4eda // 4eda <__v2_printf+0x43a> + 4f38: 5cb8 addu r5, r4, r6 + 4f3a: 6cd3 mov r3, r4 + 4f3c: 654e cmpne r3, r5 + 4f3e: 0f77 bf 0x4e2c // 4e2c <__v2_printf+0x38c> + 4f40: 8300 ld.b r0, (r3, 0x0) + 4f42: 3840 cmpnei r0, 0 + 4f44: 0ef4 bf 0x4d2c // 4d2c <__v2_printf+0x28c> + 4f46: 2300 addi r3, 1 + 4f48: 07fa br 0x4f3c // 4f3c <__v2_printf+0x49c> + 4f4a: 2300 addi r3, 1 + 4f4c: 06ed br 0x4d26 // 4d26 <__v2_printf+0x286> + 4f4e: 3420 movi r4, 32 + 4f50: 691c and r4, r7 + 4f52: 3c40 cmpnei r4, 0 + 4f54: 0c09 bf 0x4f66 // 4f66 <__v2_printf+0x4c6> + 4f56: 5d7e addi r3, r5, 8 + 4f58: 9520 ld.w r1, (r5, 0x0) + 4f5a: 9541 ld.w r2, (r5, 0x4) + 4f5c: b865 st.w r3, (r14, 0x14) + 4f5e: b823 st.w r1, (r14, 0xc) + 4f60: b844 st.w r2, (r14, 0x10) + 4f62: 3401 movi r4, 1 + 4f64: 07bb br 0x4eda // 4eda <__v2_printf+0x43a> + 4f66: 3310 movi r3, 16 + 4f68: 68dc and r3, r7 + 4f6a: 3b40 cmpnei r3, 0 + 4f6c: 0c05 bf 0x4f76 // 4f76 <__v2_printf+0x4d6> + 4f6e: 5d0e addi r0, r5, 4 + 4f70: b805 st.w r0, (r14, 0x14) + 4f72: 95a0 ld.w r5, (r5, 0x0) + 4f74: 0408 br 0x4f84 // 4f84 <__v2_printf+0x4e4> + 4f76: 3140 movi r1, 64 + 4f78: 685c and r1, r7 + 4f7a: 5d4e addi r2, r5, 4 + 4f7c: 3940 cmpnei r1, 0 + 4f7e: b845 st.w r2, (r14, 0x14) + 4f80: 0ff9 bf 0x4f72 // 4f72 <__v2_printf+0x4d2> + 4f82: 8da0 ld.h r5, (r5, 0x0) + 4f84: 3400 movi r4, 0 + 4f86: b8a3 st.w r5, (r14, 0xc) + 4f88: b884 st.w r4, (r14, 0x10) + 4f8a: 07ec br 0x4f62 // 4f62 <__v2_printf+0x4c2> + 4f8c: 3840 cmpnei r0, 0 + 4f8e: 0c05 bf 0x4f98 // 4f98 <__v2_printf+0x4f8> + 4f90: 3337 movi r3, 55 + 4f92: 1a01 addi r2, r14, 4 + 4f94: 60c8 addu r3, r2 + 4f96: a320 st.b r1, (r3, 0x0) + 4f98: 103f lrw r1, 0xbab7 // 5014 <__v2_printf+0x574> + 4f9a: 06d2 br 0x4d3e // 4d3e <__v2_printf+0x29e> + 4f9c: 3310 movi r3, 16 + 4f9e: 68dc and r3, r7 + 4fa0: 3b40 cmpnei r3, 0 + 4fa2: 0c05 bf 0x4fac // 4fac <__v2_printf+0x50c> + 4fa4: 5d0e addi r0, r5, 4 + 4fa6: b805 st.w r0, (r14, 0x14) + 4fa8: 95a0 ld.w r5, (r5, 0x0) + 4faa: 0408 br 0x4fba // 4fba <__v2_printf+0x51a> + 4fac: 3240 movi r2, 64 + 4fae: 689c and r2, r7 + 4fb0: 5d2e addi r1, r5, 4 + 4fb2: 3a40 cmpnei r2, 0 + 4fb4: b825 st.w r1, (r14, 0x14) + 4fb6: 0ff9 bf 0x4fa8 // 4fa8 <__v2_printf+0x508> + 4fb8: 8da0 ld.h r5, (r5, 0x0) + 4fba: 3300 movi r3, 0 + 4fbc: b8a3 st.w r5, (r14, 0xc) + 4fbe: b864 st.w r3, (r14, 0x10) + 4fc0: 06ca br 0x4d54 // 4d54 <__v2_printf+0x2b4> + 4fc2: 6cd3 mov r3, r4 + 4fc4: 0467 br 0x5092 // 5092 <__v2_printf+0x5f2> + 4fc6: 9884 ld.w r4, (r14, 0x10) + 4fc8: 3c40 cmpnei r4, 0 + 4fca: 080b bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fcc: 9843 ld.w r2, (r14, 0xc) + 4fce: 3a09 cmphsi r2, 10 + 4fd0: 0808 bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fd2: 9883 ld.w r4, (r14, 0xc) + 4fd4: 242f addi r4, 48 + 4fd6: 1f1a addi r7, r14, 104 + 4fd8: a787 st.b r4, (r7, 0x7) + 4fda: 1c12 addi r4, r14, 72 + 4fdc: 2426 addi r4, 39 + 4fde: 0478 br 0x50ce // 50ce <__v2_printf+0x62e> + 4fe0: 1c1c addi r4, r14, 112 + 4fe2: 3530 movi r5, 48 + 4fe4: 320a movi r2, 10 + 4fe6: 3300 movi r3, 0 + 4fe8: 9803 ld.w r0, (r14, 0xc) + 4fea: 9824 ld.w r1, (r14, 0x10) + 4fec: e00002c2 bsr 0x5570 // 5570 <__umoddi3> + 4ff0: 6014 addu r0, r5 + 4ff2: 2c00 subi r4, 1 + 4ff4: a400 st.b r0, (r4, 0x0) + 4ff6: 320a movi r2, 10 + 4ff8: 9803 ld.w r0, (r14, 0xc) + 4ffa: 9824 ld.w r1, (r14, 0x10) + 4ffc: 3300 movi r3, 0 + 4ffe: e00000e3 bsr 0x51c4 // 51c4 <__udivdi3> + 5002: b803 st.w r0, (r14, 0xc) + 5004: b824 st.w r1, (r14, 0x10) + 5006: 9823 ld.w r1, (r14, 0xc) + 5008: 98e4 ld.w r7, (r14, 0x10) + 500a: 6c5c or r1, r7 + 500c: 3940 cmpnei r1, 0 + 500e: 0beb bt 0x4fe4 // 4fe4 <__v2_printf+0x544> + 5010: 045f br 0x50ce // 50ce <__v2_printf+0x62e> + 5012: 0000 bkpt + 5014: 0000bab7 .long 0x0000bab7 + 5018: 0000baa6 .long 0x0000baa6 + 501c: 20000af4 .long 0x20000af4 + 5020: 3300 movi r3, 0 + 5022: 3400 movi r4, 0 + 5024: b863 st.w r3, (r14, 0xc) + 5026: b884 st.w r4, (r14, 0x10) + 5028: 1c1c addi r4, r14, 112 + 502a: 320f movi r2, 15 + 502c: 9803 ld.w r0, (r14, 0xc) + 502e: 982a ld.w r1, (r14, 0x28) + 5030: 6808 and r0, r2 + 5032: 6004 addu r0, r1 + 5034: 80a0 ld.b r5, (r0, 0x0) + 5036: 2c00 subi r4, 1 + 5038: 98e4 ld.w r7, (r14, 0x10) + 503a: a4a0 st.b r5, (r4, 0x0) + 503c: 98a4 ld.w r5, (r14, 0x10) + 503e: 9863 ld.w r3, (r14, 0xc) + 5040: 471c lsli r0, r7, 28 + 5042: 4de4 lsri r7, r5, 4 + 5044: 4b24 lsri r1, r3, 4 + 5046: b8e4 st.w r7, (r14, 0x10) + 5048: 6c04 or r0, r1 + 504a: 9864 ld.w r3, (r14, 0x10) + 504c: b803 st.w r0, (r14, 0xc) + 504e: 6c0c or r0, r3 + 5050: 3840 cmpnei r0, 0 + 5052: 0bed bt 0x502c // 502c <__v2_printf+0x58c> + 5054: 043d br 0x50ce // 50ce <__v2_printf+0x62e> + 5056: 3c40 cmpnei r4, 0 + 5058: 0808 bt 0x5068 // 5068 <__v2_printf+0x5c8> + 505a: 3301 movi r3, 1 + 505c: 68dc and r3, r7 + 505e: 3b40 cmpnei r3, 0 + 5060: 0c04 bf 0x5068 // 5068 <__v2_printf+0x5c8> + 5062: 1f1a addi r7, r14, 104 + 5064: 3430 movi r4, 48 + 5066: 07b9 br 0x4fd8 // 4fd8 <__v2_printf+0x538> + 5068: 1c1c addi r4, r14, 112 + 506a: 0432 br 0x50ce // 50ce <__v2_printf+0x62e> + 506c: 322b movi r2, 43 + 506e: 649a cmpne r6, r2 + 5070: 0802 bt 0x5074 // 5074 <__v2_printf+0x5d4> + 5072: 0614 br 0x4c9a // 4c9a <__v2_printf+0x1fa> + 5074: 1c12 addi r4, r14, 72 + 5076: 6c13 mov r0, r4 + 5078: e0000612 bsr 0x5c9c // 5c9c <__strlen_fast> + 507c: 6d83 mov r6, r0 + 507e: 06d7 br 0x4e2c // 4e2c <__v2_printf+0x38c> + 5080: 3840 cmpnei r0, 0 + 5082: b8e8 st.w r7, (r14, 0x20) + 5084: 0f3e bf 0x4f00 // 4f00 <__v2_printf+0x460> + 5086: 3c41 cmpnei r4, 1 + 5088: 0f9f bf 0x4fc6 // 4fc6 <__v2_printf+0x526> + 508a: 3c42 cmpnei r4, 2 + 508c: 0fce bf 0x5028 // 5028 <__v2_printf+0x588> + 508e: 1b1c addi r3, r14, 112 + 5090: 3707 movi r7, 7 + 5092: 9823 ld.w r1, (r14, 0xc) + 5094: 685c and r1, r7 + 5096: 212f addi r1, 48 + 5098: 9804 ld.w r0, (r14, 0x10) + 509a: 7484 zextb r2, r1 + 509c: 9823 ld.w r1, (r14, 0xc) + 509e: 40bd lsli r5, r0, 29 + 50a0: 4903 lsri r0, r1, 3 + 50a2: 9824 ld.w r1, (r14, 0x10) + 50a4: 4923 lsri r1, r1, 3 + 50a6: b824 st.w r1, (r14, 0x10) + 50a8: 6d40 or r5, r0 + 50aa: 9804 ld.w r0, (r14, 0x10) + 50ac: b8a3 st.w r5, (r14, 0xc) + 50ae: 6d40 or r5, r0 + 50b0: 5b83 subi r4, r3, 1 + 50b2: 3d40 cmpnei r5, 0 + 50b4: a440 st.b r2, (r4, 0x0) + 50b6: 0b86 bt 0x4fc2 // 4fc2 <__v2_printf+0x522> + 50b8: 3701 movi r7, 1 + 50ba: 9828 ld.w r1, (r14, 0x20) + 50bc: 69c4 and r7, r1 + 50be: 3f40 cmpnei r7, 0 + 50c0: 0c07 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c2: 3530 movi r5, 48 + 50c4: 654a cmpne r2, r5 + 50c6: 0c04 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c8: 5b87 subi r4, r3, 2 + 50ca: 3330 movi r3, 48 + 50cc: a460 st.b r3, (r4, 0x0) + 50ce: 6d5b mov r5, r6 + 50d0: 1e1c addi r6, r14, 112 + 50d2: 6192 subu r6, r4 + 50d4: 98e8 ld.w r7, (r14, 0x20) + 50d6: 6595 cmplt r5, r6 + 50d8: b8a8 st.w r5, (r14, 0x20) + 50da: 0c02 bf 0x50de // 50de <__v2_printf+0x63e> + 50dc: b8c8 st.w r6, (r14, 0x20) + 50de: 3037 movi r0, 55 + 50e0: 1b01 addi r3, r14, 4 + 50e2: 600c addu r0, r3 + 50e4: 8040 ld.b r2, (r0, 0x0) + 50e6: 3a40 cmpnei r2, 0 + 50e8: 0c04 bf 0x50f0 // 50f0 <__v2_printf+0x650> + 50ea: 9828 ld.w r1, (r14, 0x20) + 50ec: 2100 addi r1, 1 + 50ee: b828 st.w r1, (r14, 0x20) + 50f0: 3002 movi r0, 2 + 50f2: 681c and r0, r7 + 50f4: 3840 cmpnei r0, 0 + 50f6: b80b st.w r0, (r14, 0x2c) + 50f8: 0c04 bf 0x5100 // 5100 <__v2_printf+0x660> + 50fa: 9868 ld.w r3, (r14, 0x20) + 50fc: 2301 addi r3, 2 + 50fe: b868 st.w r3, (r14, 0x20) + 5100: 3284 movi r2, 132 + 5102: 689c and r2, r7 + 5104: 3a40 cmpnei r2, 0 + 5106: b84c st.w r2, (r14, 0x30) + 5108: 080b bt 0x511e // 511e <__v2_printf+0x67e> + 510a: 3310 movi r3, 16 + 510c: 1a0c addi r2, r14, 48 + 510e: 9827 ld.w r1, (r14, 0x1c) + 5110: 9808 ld.w r0, (r14, 0x20) + 5112: 60c8 addu r3, r2 + 5114: 5901 subu r0, r1, r0 + 5116: 6f4f mov r13, r3 + 5118: 1129 lrw r1, 0xacec // 51bc <__v2_printf+0x71c> + 511a: e3fffca9 bsr 0x4a6c // 4a6c + 511e: 3137 movi r1, 55 + 5120: 1801 addi r0, r14, 4 + 5122: 6040 addu r1, r0 + 5124: 8160 ld.b r3, (r1, 0x0) + 5126: 3b40 cmpnei r3, 0 + 5128: 0c0b bf 0x513e // 513e <__v2_printf+0x69e> + 512a: 9830 ld.w r1, (r14, 0x40) + 512c: 9101 ld.w r0, (r1, 0x4) + 512e: b802 st.w r0, (r14, 0x8) + 5130: 1b0c addi r3, r14, 48 + 5132: 300b movi r0, 11 + 5134: 9140 ld.w r2, (r1, 0x0) + 5136: 600c addu r0, r3 + 5138: 3101 movi r1, 1 + 513a: 9862 ld.w r3, (r14, 0x8) + 513c: 7bcd jsr r3 + 513e: 984b ld.w r2, (r14, 0x2c) + 5140: 3a40 cmpnei r2, 0 + 5142: 0c07 bf 0x5150 // 5150 <__v2_printf+0x6b0> + 5144: 9830 ld.w r1, (r14, 0x40) + 5146: 9140 ld.w r2, (r1, 0x0) + 5148: 9161 ld.w r3, (r1, 0x4) + 514a: 180f addi r0, r14, 60 + 514c: 3102 movi r1, 2 + 514e: 7bcd jsr r3 + 5150: 3080 movi r0, 128 + 5152: 984c ld.w r2, (r14, 0x30) + 5154: 640a cmpne r2, r0 + 5156: 080b bt 0x516c // 516c <__v2_printf+0x6cc> + 5158: 9827 ld.w r1, (r14, 0x1c) + 515a: 9868 ld.w r3, (r14, 0x20) + 515c: 590d subu r0, r1, r3 + 515e: 1a0c addi r2, r14, 48 + 5160: 3110 movi r1, 16 + 5162: 6048 addu r1, r2 + 5164: 6f47 mov r13, r1 + 5166: 1037 lrw r1, 0xacfc // 51c0 <__v2_printf+0x720> + 5168: e3fffc82 bsr 0x4a6c // 4a6c + 516c: 5d19 subu r0, r5, r6 + 516e: 1b0c addi r3, r14, 48 + 5170: 3510 movi r5, 16 + 5172: 614c addu r5, r3 + 5174: 6f57 mov r13, r5 + 5176: 6d77 mov r5, r13 + 5178: 1032 lrw r1, 0xacfc // 51c0 <__v2_printf+0x720> + 517a: e3fffc79 bsr 0x4a6c // 4a6c + 517e: 9500 ld.w r0, (r5, 0x0) + 5180: 9040 ld.w r2, (r0, 0x0) + 5182: 9061 ld.w r3, (r0, 0x4) + 5184: 6c13 mov r0, r4 + 5186: 3404 movi r4, 4 + 5188: 6c5b mov r1, r6 + 518a: 691c and r4, r7 + 518c: 7bcd jsr r3 + 518e: 3c40 cmpnei r4, 0 + 5190: 0c08 bf 0x51a0 // 51a0 <__v2_printf+0x700> + 5192: 9828 ld.w r1, (r14, 0x20) + 5194: 98c7 ld.w r6, (r14, 0x1c) + 5196: 5e05 subu r0, r6, r1 + 5198: 6f57 mov r13, r5 + 519a: 1029 lrw r1, 0xacec // 51bc <__v2_printf+0x71c> + 519c: e3fffc68 bsr 0x4a6c // 4a6c + 51a0: 98a7 ld.w r5, (r14, 0x1c) + 51a2: 9848 ld.w r2, (r14, 0x20) + 51a4: 6495 cmplt r5, r2 + 51a6: 0c02 bf 0x51aa // 51aa <__v2_printf+0x70a> + 51a8: 6d4b mov r5, r2 + 51aa: 9809 ld.w r0, (r14, 0x24) + 51ac: 6014 addu r0, r5 + 51ae: b809 st.w r0, (r14, 0x24) + 51b0: 98a5 ld.w r5, (r14, 0x14) + 51b2: e800fc84 br 0x4aba // 4aba <__v2_printf+0x1a> + 51b6: 9809 ld.w r0, (r14, 0x24) + 51b8: 141c addi r14, r14, 112 + 51ba: 1494 pop r4-r7, r15 + 51bc: 0000acec .long 0x0000acec + 51c0: 0000acfc .long 0x0000acfc + +000051c4 <__udivdi3>: + 51c4: 14d4 push r4-r7, r15 + 51c6: 1426 subi r14, r14, 24 + 51c8: 6dc7 mov r7, r1 + 51ca: 3b40 cmpnei r3, 0 + 51cc: 6d03 mov r4, r0 + 51ce: 6c4f mov r1, r3 + 51d0: 6d8b mov r6, r2 + 51d2: b800 st.w r0, (r14, 0x0) + 51d4: 6d5f mov r5, r7 + 51d6: 085b bt 0x528c // 528c <__udivdi3+0xc8> + 51d8: 649c cmphs r7, r2 + 51da: 0874 bt 0x52c2 // 52c2 <__udivdi3+0xfe> + 51dc: 003d lrw r1, 0xffff // 5564 <__udivdi3+0x3a0> + 51de: 6484 cmphs r1, r2 + 51e0: 0cdc bf 0x5398 // 5398 <__udivdi3+0x1d4> + 51e2: 31ff movi r1, 255 + 51e4: 6484 cmphs r1, r2 + 51e6: 0802 bt 0x51ea // 51ea <__udivdi3+0x26> + 51e8: 3308 movi r3, 8 + 51ea: 6c4b mov r1, r2 + 51ec: 704d lsr r1, r3 + 51ee: 0100 lrw r0, 0xabec // 5568 <__udivdi3+0x3a4> + 51f0: 6040 addu r1, r0 + 51f2: 8120 ld.b r1, (r1, 0x0) + 51f4: 60c4 addu r3, r1 + 51f6: 3120 movi r1, 32 + 51f8: 604e subu r1, r3 + 51fa: 3940 cmpnei r1, 0 + 51fc: 0c09 bf 0x520e // 520e <__udivdi3+0x4a> + 51fe: 6d53 mov r5, r4 + 5200: 7084 lsl r2, r1 + 5202: 71c4 lsl r7, r1 + 5204: 714d lsr r5, r3 + 5206: 7104 lsl r4, r1 + 5208: 6d8b mov r6, r2 + 520a: 6d5c or r5, r7 + 520c: b880 st.w r4, (r14, 0x0) + 520e: 4e90 lsri r4, r6, 16 + 5210: 6c53 mov r1, r4 + 5212: 6c17 mov r0, r5 + 5214: e000117e bsr 0x7510 // 7510 <__umodsi3> + 5218: b801 st.w r0, (r14, 0x4) + 521a: 6c53 mov r1, r4 + 521c: 6c17 mov r0, r5 + 521e: e0001155 bsr 0x74c8 // 74c8 <__udivsi3> + 5222: 75d9 zexth r7, r6 + 5224: 9861 ld.w r3, (r14, 0x4) + 5226: 9820 ld.w r1, (r14, 0x0) + 5228: 6c9f mov r2, r7 + 522a: 4370 lsli r3, r3, 16 + 522c: 4930 lsri r1, r1, 16 + 522e: 7c80 mult r2, r0 + 5230: 6cc4 or r3, r1 + 5232: 648c cmphs r3, r2 + 5234: 6d43 mov r5, r0 + 5236: 0808 bt 0x5246 // 5246 <__udivdi3+0x82> + 5238: 60d8 addu r3, r6 + 523a: 658c cmphs r3, r6 + 523c: 5823 subi r1, r0, 1 + 523e: 0c03 bf 0x5244 // 5244 <__udivdi3+0x80> + 5240: 648c cmphs r3, r2 + 5242: 0d8e bf 0x555e // 555e <__udivdi3+0x39a> + 5244: 6d47 mov r5, r1 + 5246: 60ca subu r3, r2 + 5248: 6c53 mov r1, r4 + 524a: 6c0f mov r0, r3 + 524c: b862 st.w r3, (r14, 0x8) + 524e: e0001161 bsr 0x7510 // 7510 <__umodsi3> + 5252: 9862 ld.w r3, (r14, 0x8) + 5254: b801 st.w r0, (r14, 0x4) + 5256: 6c53 mov r1, r4 + 5258: 6c0f mov r0, r3 + 525a: e0001137 bsr 0x74c8 // 74c8 <__udivsi3> + 525e: 9841 ld.w r2, (r14, 0x4) + 5260: d86e1000 ld.h r3, (r14, 0x0) + 5264: 4250 lsli r2, r2, 16 + 5266: 74cd zexth r3, r3 + 5268: 7dc0 mult r7, r0 + 526a: 6c8c or r2, r3 + 526c: 65c8 cmphs r2, r7 + 526e: 6d03 mov r4, r0 + 5270: 0808 bt 0x5280 // 5280 <__udivdi3+0xbc> + 5272: 6098 addu r2, r6 + 5274: 6588 cmphs r2, r6 + 5276: 5863 subi r3, r0, 1 + 5278: 0d4d bf 0x5512 // 5512 <__udivdi3+0x34e> + 527a: 65c8 cmphs r2, r7 + 527c: 094b bt 0x5512 // 5512 <__udivdi3+0x34e> + 527e: 2c01 subi r4, 2 + 5280: 4510 lsli r0, r5, 16 + 5282: 3700 movi r7, 0 + 5284: 6c10 or r0, r4 + 5286: 6c5f mov r1, r7 + 5288: 1406 addi r14, r14, 24 + 528a: 1494 pop r4-r7, r15 + 528c: 64dc cmphs r7, r3 + 528e: 0c76 bf 0x537a // 537a <__udivdi3+0x1b6> + 5290: 026a lrw r3, 0xffff // 5564 <__udivdi3+0x3a0> + 5292: 644c cmphs r3, r1 + 5294: 0878 bt 0x5384 // 5384 <__udivdi3+0x1c0> + 5296: 0269 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 5298: 644c cmphs r3, r1 + 529a: 0d48 bf 0x552a // 552a <__udivdi3+0x366> + 529c: 3610 movi r6, 16 + 529e: 6cc7 mov r3, r1 + 52a0: 70d9 lsr r3, r6 + 52a2: 020d lrw r0, 0xabec // 5568 <__udivdi3+0x3a4> + 52a4: 60c0 addu r3, r0 + 52a6: 8360 ld.b r3, (r3, 0x0) + 52a8: 618c addu r6, r3 + 52aa: 3020 movi r0, 32 + 52ac: 5879 subu r3, r0, r6 + 52ae: 3b40 cmpnei r3, 0 + 52b0: b860 st.w r3, (r14, 0x0) + 52b2: 0878 bt 0x53a2 // 53a2 <__udivdi3+0x1de> + 52b4: 65c4 cmphs r1, r7 + 52b6: 0d40 bf 0x5536 // 5536 <__udivdi3+0x372> + 52b8: 6490 cmphs r4, r2 + 52ba: 6c0f mov r0, r3 + 52bc: 600d addc r0, r3 + 52be: 3700 movi r7, 0 + 52c0: 045f br 0x537e // 537e <__udivdi3+0x1ba> + 52c2: 3a40 cmpnei r2, 0 + 52c4: 0808 bt 0x52d4 // 52d4 <__udivdi3+0x110> + 52c6: 3100 movi r1, 0 + 52c8: 3001 movi r0, 1 + 52ca: b861 st.w r3, (r14, 0x4) + 52cc: e00010fe bsr 0x74c8 // 74c8 <__udivsi3> + 52d0: 6d83 mov r6, r0 + 52d2: 9861 ld.w r3, (r14, 0x4) + 52d4: 025b lrw r2, 0xffff // 5564 <__udivdi3+0x3a0> + 52d6: 6588 cmphs r2, r6 + 52d8: 085b bt 0x538e // 538e <__udivdi3+0x1ca> + 52da: 027a lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 52dc: 658c cmphs r3, r6 + 52de: 0d28 bf 0x552e // 552e <__udivdi3+0x36a> + 52e0: 3310 movi r3, 16 + 52e2: 6c9b mov r2, r6 + 52e4: 023e lrw r1, 0xabec // 5568 <__udivdi3+0x3a4> + 52e6: 708d lsr r2, r3 + 52e8: 6084 addu r2, r1 + 52ea: 8240 ld.b r2, (r2, 0x0) + 52ec: 5a2c addu r1, r2, r3 + 52ee: 3220 movi r2, 32 + 52f0: 6086 subu r2, r1 + 52f2: 3a40 cmpnei r2, 0 + 52f4: 08c0 bt 0x5474 // 5474 <__udivdi3+0x2b0> + 52f6: 74d9 zexth r3, r6 + 52f8: 5f99 subu r4, r7, r6 + 52fa: 4eb0 lsri r5, r6, 16 + 52fc: b861 st.w r3, (r14, 0x4) + 52fe: 3701 movi r7, 1 + 5300: 6c57 mov r1, r5 + 5302: 6c13 mov r0, r4 + 5304: e0001106 bsr 0x7510 // 7510 <__umodsi3> + 5308: b802 st.w r0, (r14, 0x8) + 530a: 6c57 mov r1, r5 + 530c: 6c13 mov r0, r4 + 530e: e00010dd bsr 0x74c8 // 74c8 <__udivsi3> + 5312: 9862 ld.w r3, (r14, 0x8) + 5314: 4330 lsli r1, r3, 16 + 5316: 9860 ld.w r3, (r14, 0x0) + 5318: 9841 ld.w r2, (r14, 0x4) + 531a: 4b70 lsri r3, r3, 16 + 531c: 7c80 mult r2, r0 + 531e: 6cc4 or r3, r1 + 5320: 648c cmphs r3, r2 + 5322: 6d03 mov r4, r0 + 5324: 0808 bt 0x5334 // 5334 <__udivdi3+0x170> + 5326: 60d8 addu r3, r6 + 5328: 658c cmphs r3, r6 + 532a: 5823 subi r1, r0, 1 + 532c: 0c03 bf 0x5332 // 5332 <__udivdi3+0x16e> + 532e: 648c cmphs r3, r2 + 5330: 0d14 bf 0x5558 // 5558 <__udivdi3+0x394> + 5332: 6d07 mov r4, r1 + 5334: 60ca subu r3, r2 + 5336: 6c57 mov r1, r5 + 5338: 6c0f mov r0, r3 + 533a: b863 st.w r3, (r14, 0xc) + 533c: e00010ea bsr 0x7510 // 7510 <__umodsi3> + 5340: 9863 ld.w r3, (r14, 0xc) + 5342: 6c57 mov r1, r5 + 5344: b802 st.w r0, (r14, 0x8) + 5346: 6c0f mov r0, r3 + 5348: e00010c0 bsr 0x74c8 // 74c8 <__udivsi3> + 534c: 9842 ld.w r2, (r14, 0x8) + 534e: d86e1000 ld.h r3, (r14, 0x0) + 5352: 9821 ld.w r1, (r14, 0x4) + 5354: 4250 lsli r2, r2, 16 + 5356: 74cd zexth r3, r3 + 5358: 7c40 mult r1, r0 + 535a: 6cc8 or r3, r2 + 535c: 644c cmphs r3, r1 + 535e: 6d43 mov r5, r0 + 5360: 0808 bt 0x5370 // 5370 <__udivdi3+0x1ac> + 5362: 60d8 addu r3, r6 + 5364: 658c cmphs r3, r6 + 5366: 5843 subi r2, r0, 1 + 5368: 0cd3 bf 0x550e // 550e <__udivdi3+0x34a> + 536a: 644c cmphs r3, r1 + 536c: 08d1 bt 0x550e // 550e <__udivdi3+0x34a> + 536e: 2d01 subi r5, 2 + 5370: 4410 lsli r0, r4, 16 + 5372: 6c14 or r0, r5 + 5374: 6c5f mov r1, r7 + 5376: 1406 addi r14, r14, 24 + 5378: 1494 pop r4-r7, r15 + 537a: 3700 movi r7, 0 + 537c: 3000 movi r0, 0 + 537e: 6c5f mov r1, r7 + 5380: 1406 addi r14, r14, 24 + 5382: 1494 pop r4-r7, r15 + 5384: 33ff movi r3, 255 + 5386: 644c cmphs r3, r1 + 5388: 6583 mvcv r6 + 538a: 46c3 lsli r6, r6, 3 + 538c: 0789 br 0x529e // 529e <__udivdi3+0xda> + 538e: 32ff movi r2, 255 + 5390: 6588 cmphs r2, r6 + 5392: 0ba8 bt 0x52e2 // 52e2 <__udivdi3+0x11e> + 5394: 3308 movi r3, 8 + 5396: 07a6 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5398: 1375 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 539a: 648c cmphs r3, r2 + 539c: 0ccb bf 0x5532 // 5532 <__udivdi3+0x36e> + 539e: 3310 movi r3, 16 + 53a0: 0725 br 0x51ea // 51ea <__udivdi3+0x26> + 53a2: 9800 ld.w r0, (r14, 0x0) + 53a4: 6ccb mov r3, r2 + 53a6: 6d4b mov r5, r2 + 53a8: 7040 lsl r1, r0 + 53aa: 7140 lsl r5, r0 + 53ac: 70d9 lsr r3, r6 + 53ae: 6cc4 or r3, r1 + 53b0: b8a3 st.w r5, (r14, 0xc) + 53b2: 6d53 mov r5, r4 + 53b4: 6c4f mov r1, r3 + 53b6: 7159 lsr r5, r6 + 53b8: 6cdf mov r3, r7 + 53ba: 71c0 lsl r7, r0 + 53bc: 6d5c or r5, r7 + 53be: 70d9 lsr r3, r6 + 53c0: b8a1 st.w r5, (r14, 0x4) + 53c2: 49b0 lsri r5, r1, 16 + 53c4: b822 st.w r1, (r14, 0x8) + 53c6: 75c5 zexth r7, r1 + 53c8: 6c0f mov r0, r3 + 53ca: 6c57 mov r1, r5 + 53cc: b864 st.w r3, (r14, 0x10) + 53ce: e00010a1 bsr 0x7510 // 7510 <__umodsi3> + 53d2: 9864 ld.w r3, (r14, 0x10) + 53d4: 6d83 mov r6, r0 + 53d6: 6c57 mov r1, r5 + 53d8: 6c0f mov r0, r3 + 53da: e0001077 bsr 0x74c8 // 74c8 <__udivsi3> + 53de: 6c5f mov r1, r7 + 53e0: 7c40 mult r1, r0 + 53e2: 6c87 mov r2, r1 + 53e4: 4630 lsli r1, r6, 16 + 53e6: 98c1 ld.w r6, (r14, 0x4) + 53e8: 4ed0 lsri r6, r6, 16 + 53ea: 6d84 or r6, r1 + 53ec: 6498 cmphs r6, r2 + 53ee: 6cc3 mov r3, r0 + 53f0: 0807 bt 0x53fe // 53fe <__udivdi3+0x23a> + 53f2: 5823 subi r1, r0, 1 + 53f4: 9802 ld.w r0, (r14, 0x8) + 53f6: 6180 addu r6, r0 + 53f8: 6418 cmphs r6, r0 + 53fa: 08a6 bt 0x5546 // 5546 <__udivdi3+0x382> + 53fc: 6cc7 mov r3, r1 + 53fe: 618a subu r6, r2 + 5400: 6c57 mov r1, r5 + 5402: 6c1b mov r0, r6 + 5404: b865 st.w r3, (r14, 0x14) + 5406: e0001085 bsr 0x7510 // 7510 <__umodsi3> + 540a: b804 st.w r0, (r14, 0x10) + 540c: 6c57 mov r1, r5 + 540e: 6c1b mov r0, r6 + 5410: e000105c bsr 0x74c8 // 74c8 <__udivsi3> + 5414: 9864 ld.w r3, (r14, 0x10) + 5416: 6c9f mov r2, r7 + 5418: 43f0 lsli r7, r3, 16 + 541a: d86e1002 ld.h r3, (r14, 0x4) + 541e: 744d zexth r1, r3 + 5420: 7c80 mult r2, r0 + 5422: 6dc4 or r7, r1 + 5424: 649c cmphs r7, r2 + 5426: 9865 ld.w r3, (r14, 0x14) + 5428: 0807 bt 0x5436 // 5436 <__udivdi3+0x272> + 542a: 98a2 ld.w r5, (r14, 0x8) + 542c: 61d4 addu r7, r5 + 542e: 655c cmphs r7, r5 + 5430: 5823 subi r1, r0, 1 + 5432: 0885 bt 0x553c // 553c <__udivdi3+0x378> + 5434: 6c07 mov r0, r1 + 5436: 4370 lsli r3, r3, 16 + 5438: 6c0c or r0, r3 + 543a: 74c1 zexth r3, r0 + 543c: 61ca subu r7, r2 + 543e: 9843 ld.w r2, (r14, 0xc) + 5440: 7549 zexth r5, r2 + 5442: 4830 lsri r1, r0, 16 + 5444: 4a50 lsri r2, r2, 16 + 5446: 6d8f mov r6, r3 + 5448: 7d94 mult r6, r5 + 544a: 7cc8 mult r3, r2 + 544c: 7d44 mult r5, r1 + 544e: 60d4 addu r3, r5 + 5450: 7c48 mult r1, r2 + 5452: 4e50 lsri r2, r6, 16 + 5454: 60c8 addu r3, r2 + 5456: 654c cmphs r3, r5 + 5458: 0804 bt 0x5460 // 5460 <__udivdi3+0x29c> + 545a: 3280 movi r2, 128 + 545c: 4249 lsli r2, r2, 9 + 545e: 6048 addu r1, r2 + 5460: 4b50 lsri r2, r3, 16 + 5462: 6048 addu r1, r2 + 5464: 645c cmphs r7, r1 + 5466: 0c5f bf 0x5524 // 5524 <__udivdi3+0x360> + 5468: 645e cmpne r7, r1 + 546a: 0c56 bf 0x5516 // 5516 <__udivdi3+0x352> + 546c: 3700 movi r7, 0 + 546e: 6c5f mov r1, r7 + 5470: 1406 addi r14, r14, 24 + 5472: 1494 pop r4-r7, r15 + 5474: 6d53 mov r5, r4 + 5476: 6cdf mov r3, r7 + 5478: 7145 lsr r5, r1 + 547a: 71c8 lsl r7, r2 + 547c: 7188 lsl r6, r2 + 547e: 6d5c or r5, r7 + 5480: 70c5 lsr r3, r1 + 5482: 6dd7 mov r7, r5 + 5484: b8a3 st.w r5, (r14, 0xc) + 5486: 4eb0 lsri r5, r6, 16 + 5488: 7108 lsl r4, r2 + 548a: 6c57 mov r1, r5 + 548c: 7499 zexth r2, r6 + 548e: 6c0f mov r0, r3 + 5490: b841 st.w r2, (r14, 0x4) + 5492: b880 st.w r4, (r14, 0x0) + 5494: b862 st.w r3, (r14, 0x8) + 5496: e000103d bsr 0x7510 // 7510 <__umodsi3> + 549a: 9862 ld.w r3, (r14, 0x8) + 549c: 6d03 mov r4, r0 + 549e: 6c57 mov r1, r5 + 54a0: 6c0f mov r0, r3 + 54a2: e0001013 bsr 0x74c8 // 74c8 <__udivsi3> + 54a6: 6cc3 mov r3, r0 + 54a8: 7499 zexth r2, r6 + 54aa: 7cc8 mult r3, r2 + 54ac: 4450 lsli r2, r4, 16 + 54ae: 4f90 lsri r4, r7, 16 + 54b0: 6d08 or r4, r2 + 54b2: 64d0 cmphs r4, r3 + 54b4: 6c43 mov r1, r0 + 54b6: b802 st.w r0, (r14, 0x8) + 54b8: 080b bt 0x54ce // 54ce <__udivdi3+0x30a> + 54ba: 6118 addu r4, r6 + 54bc: 6c87 mov r2, r1 + 54be: 6590 cmphs r4, r6 + 54c0: 2a00 subi r2, 1 + 54c2: 0c49 bf 0x5554 // 5554 <__udivdi3+0x390> + 54c4: 64d0 cmphs r4, r3 + 54c6: 0847 bt 0x5554 // 5554 <__udivdi3+0x390> + 54c8: 2a00 subi r2, 1 + 54ca: b842 st.w r2, (r14, 0x8) + 54cc: 6118 addu r4, r6 + 54ce: 610e subu r4, r3 + 54d0: 6c57 mov r1, r5 + 54d2: 6c13 mov r0, r4 + 54d4: e000101e bsr 0x7510 // 7510 <__umodsi3> + 54d8: 6dc3 mov r7, r0 + 54da: 6c57 mov r1, r5 + 54dc: 6c13 mov r0, r4 + 54de: e0000ff5 bsr 0x74c8 // 74c8 <__udivsi3> + 54e2: d84e1006 ld.h r2, (r14, 0xc) + 54e6: 74d9 zexth r3, r6 + 54e8: 47f0 lsli r7, r7, 16 + 54ea: 7509 zexth r4, r2 + 54ec: 7cc0 mult r3, r0 + 54ee: 6dd0 or r7, r4 + 54f0: 64dc cmphs r7, r3 + 54f2: 0809 bt 0x5504 // 5504 <__udivdi3+0x340> + 54f4: 61d8 addu r7, r6 + 54f6: 659c cmphs r7, r6 + 54f8: 5843 subi r2, r0, 1 + 54fa: 0c2b bf 0x5550 // 5550 <__udivdi3+0x38c> + 54fc: 64dc cmphs r7, r3 + 54fe: 0829 bt 0x5550 // 5550 <__udivdi3+0x38c> + 5500: 2801 subi r0, 2 + 5502: 61d8 addu r7, r6 + 5504: 5f8d subu r4, r7, r3 + 5506: 9862 ld.w r3, (r14, 0x8) + 5508: 43f0 lsli r7, r3, 16 + 550a: 6dc0 or r7, r0 + 550c: 06fa br 0x5300 // 5300 <__udivdi3+0x13c> + 550e: 6d4b mov r5, r2 + 5510: 0730 br 0x5370 // 5370 <__udivdi3+0x1ac> + 5512: 6d0f mov r4, r3 + 5514: 06b6 br 0x5280 // 5280 <__udivdi3+0xbc> + 5516: 9840 ld.w r2, (r14, 0x0) + 5518: 4370 lsli r3, r3, 16 + 551a: 7599 zexth r6, r6 + 551c: 7108 lsl r4, r2 + 551e: 60d8 addu r3, r6 + 5520: 64d0 cmphs r4, r3 + 5522: 0ba5 bt 0x546c // 546c <__udivdi3+0x2a8> + 5524: 2800 subi r0, 1 + 5526: 3700 movi r7, 0 + 5528: 07a3 br 0x546e // 546e <__udivdi3+0x2aa> + 552a: 3618 movi r6, 24 + 552c: 06b9 br 0x529e // 529e <__udivdi3+0xda> + 552e: 3318 movi r3, 24 + 5530: 06d9 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5532: 3318 movi r3, 24 + 5534: 065b br 0x51ea // 51ea <__udivdi3+0x26> + 5536: 3700 movi r7, 0 + 5538: 3001 movi r0, 1 + 553a: 0722 br 0x537e // 537e <__udivdi3+0x1ba> + 553c: 649c cmphs r7, r2 + 553e: 0b7b bt 0x5434 // 5434 <__udivdi3+0x270> + 5540: 2801 subi r0, 2 + 5542: 61d4 addu r7, r5 + 5544: 0779 br 0x5436 // 5436 <__udivdi3+0x272> + 5546: 6498 cmphs r6, r2 + 5548: 0b5a bt 0x53fc // 53fc <__udivdi3+0x238> + 554a: 2b01 subi r3, 2 + 554c: 6180 addu r6, r0 + 554e: 0758 br 0x53fe // 53fe <__udivdi3+0x23a> + 5550: 6c0b mov r0, r2 + 5552: 07d9 br 0x5504 // 5504 <__udivdi3+0x340> + 5554: b842 st.w r2, (r14, 0x8) + 5556: 07bc br 0x54ce // 54ce <__udivdi3+0x30a> + 5558: 2c01 subi r4, 2 + 555a: 60d8 addu r3, r6 + 555c: 06ec br 0x5334 // 5334 <__udivdi3+0x170> + 555e: 2d01 subi r5, 2 + 5560: 60d8 addu r3, r6 + 5562: 0672 br 0x5246 // 5246 <__udivdi3+0x82> + 5564: 0000ffff .long 0x0000ffff + 5568: 0000abec .long 0x0000abec + 556c: 00ffffff .long 0x00ffffff + +00005570 <__umoddi3>: + 5570: 14d4 push r4-r7, r15 + 5572: 1427 subi r14, r14, 28 + 5574: 6d07 mov r4, r1 + 5576: 6c4f mov r1, r3 + 5578: 6d43 mov r5, r0 + 557a: 3940 cmpnei r1, 0 + 557c: 6dcf mov r7, r3 + 557e: 6c0b mov r0, r2 + 5580: b8a0 st.w r5, (r14, 0x0) + 5582: 6cd3 mov r3, r4 + 5584: 085a bt 0x5638 // 5638 <__umoddi3+0xc8> + 5586: 6490 cmphs r4, r2 + 5588: 0877 bt 0x5676 // 5676 <__umoddi3+0x106> + 558a: 0120 lrw r1, 0xffff // 5904 <__umoddi3+0x394> + 558c: 6484 cmphs r1, r2 + 558e: 0cd2 bf 0x5732 // 5732 <__umoddi3+0x1c2> + 5590: 31ff movi r1, 255 + 5592: 6484 cmphs r1, r2 + 5594: 0802 bt 0x5598 // 5598 <__umoddi3+0x28> + 5596: 3708 movi r7, 8 + 5598: 6c43 mov r1, r0 + 559a: 705d lsr r1, r7 + 559c: 01c4 lrw r6, 0xabec // 5908 <__umoddi3+0x398> + 559e: 6058 addu r1, r6 + 55a0: 8120 ld.b r1, (r1, 0x0) + 55a2: 61c4 addu r7, r1 + 55a4: 3120 movi r1, 32 + 55a6: 605e subu r1, r7 + 55a8: 3940 cmpnei r1, 0 + 55aa: b821 st.w r1, (r14, 0x4) + 55ac: 0c09 bf 0x55be // 55be <__umoddi3+0x4e> + 55ae: 6cd7 mov r3, r5 + 55b0: 6c83 mov r2, r0 + 55b2: 7104 lsl r4, r1 + 55b4: 70dd lsr r3, r7 + 55b6: 7144 lsl r5, r1 + 55b8: 7084 lsl r2, r1 + 55ba: 6cd0 or r3, r4 + 55bc: b8a0 st.w r5, (r14, 0x0) + 55be: 4a90 lsri r4, r2, 16 + 55c0: 6c53 mov r1, r4 + 55c2: 6c0f mov r0, r3 + 55c4: 75c9 zexth r7, r2 + 55c6: b843 st.w r2, (r14, 0xc) + 55c8: b862 st.w r3, (r14, 0x8) + 55ca: e0000fa3 bsr 0x7510 // 7510 <__umodsi3> + 55ce: 9862 ld.w r3, (r14, 0x8) + 55d0: 6d43 mov r5, r0 + 55d2: 6c53 mov r1, r4 + 55d4: 6c0f mov r0, r3 + 55d6: e0000f79 bsr 0x74c8 // 74c8 <__udivsi3> + 55da: 9840 ld.w r2, (r14, 0x0) + 55dc: 4570 lsli r3, r5, 16 + 55de: 4ab0 lsri r5, r2, 16 + 55e0: 7c1c mult r0, r7 + 55e2: 6cd4 or r3, r5 + 55e4: 640c cmphs r3, r0 + 55e6: 9843 ld.w r2, (r14, 0xc) + 55e8: 0806 bt 0x55f4 // 55f4 <__umoddi3+0x84> + 55ea: 60c8 addu r3, r2 + 55ec: 648c cmphs r3, r2 + 55ee: 0c03 bf 0x55f4 // 55f4 <__umoddi3+0x84> + 55f0: 640c cmphs r3, r0 + 55f2: 0d7d bf 0x58ec // 58ec <__umoddi3+0x37c> + 55f4: 60c2 subu r3, r0 + 55f6: 6c53 mov r1, r4 + 55f8: 6c0f mov r0, r3 + 55fa: b843 st.w r2, (r14, 0xc) + 55fc: b862 st.w r3, (r14, 0x8) + 55fe: e0000f89 bsr 0x7510 // 7510 <__umodsi3> + 5602: 9862 ld.w r3, (r14, 0x8) + 5604: 6d43 mov r5, r0 + 5606: 6c53 mov r1, r4 + 5608: 6c0f mov r0, r3 + 560a: e0000f5f bsr 0x74c8 // 74c8 <__udivsi3> + 560e: d86e1000 ld.h r3, (r14, 0x0) + 5612: 7dc0 mult r7, r0 + 5614: 45b0 lsli r5, r5, 16 + 5616: 740d zexth r0, r3 + 5618: 6d40 or r5, r0 + 561a: 65d4 cmphs r5, r7 + 561c: 0807 bt 0x562a // 562a <__umoddi3+0xba> + 561e: 9843 ld.w r2, (r14, 0xc) + 5620: 6148 addu r5, r2 + 5622: 6494 cmphs r5, r2 + 5624: 0c03 bf 0x562a // 562a <__umoddi3+0xba> + 5626: 65d4 cmphs r5, r7 + 5628: 0d5e bf 0x58e4 // 58e4 <__umoddi3+0x374> + 562a: 615e subu r5, r7 + 562c: 6c17 mov r0, r5 + 562e: 9861 ld.w r3, (r14, 0x4) + 5630: 700d lsr r0, r3 + 5632: 3100 movi r1, 0 + 5634: 1407 addi r14, r14, 28 + 5636: 1494 pop r4-r7, r15 + 5638: 6450 cmphs r4, r1 + 563a: 0c6e bf 0x5716 // 5716 <__umoddi3+0x1a6> + 563c: 024d lrw r2, 0xffff // 5904 <__umoddi3+0x394> + 563e: 6448 cmphs r2, r1 + 5640: 086f bt 0x571e // 571e <__umoddi3+0x1ae> + 5642: 024c lrw r2, 0xffffff // 590c <__umoddi3+0x39c> + 5644: 6448 cmphs r2, r1 + 5646: 0d3f bf 0x58c4 // 58c4 <__umoddi3+0x354> + 5648: 3610 movi r6, 16 + 564a: 6c87 mov r2, r1 + 564c: 7099 lsr r2, r6 + 564e: 02f0 lrw r7, 0xabec // 5908 <__umoddi3+0x398> + 5650: 609c addu r2, r7 + 5652: 8240 ld.b r2, (r2, 0x0) + 5654: 6188 addu r6, r2 + 5656: 3720 movi r7, 32 + 5658: 61da subu r7, r6 + 565a: 3f40 cmpnei r7, 0 + 565c: 0870 bt 0x573c // 573c <__umoddi3+0x1cc> + 565e: 6504 cmphs r1, r4 + 5660: 0c03 bf 0x5666 // 5666 <__umoddi3+0xf6> + 5662: 6414 cmphs r5, r0 + 5664: 0d46 bf 0x58f0 // 58f0 <__umoddi3+0x380> + 5666: 5d01 subu r0, r5, r0 + 5668: 6414 cmphs r5, r0 + 566a: 6106 subu r4, r1 + 566c: 6483 mvcv r2 + 566e: 5c69 subu r3, r4, r2 + 5670: 6c4f mov r1, r3 + 5672: 1407 addi r14, r14, 28 + 5674: 1494 pop r4-r7, r15 + 5676: 3a40 cmpnei r2, 0 + 5678: 0806 bt 0x5684 // 5684 <__umoddi3+0x114> + 567a: 3100 movi r1, 0 + 567c: 3001 movi r0, 1 + 567e: e0000f25 bsr 0x74c8 // 74c8 <__udivsi3> + 5682: 6c83 mov r2, r0 + 5684: 027f lrw r3, 0xffff // 5904 <__umoddi3+0x394> + 5686: 648c cmphs r3, r2 + 5688: 0850 bt 0x5728 // 5728 <__umoddi3+0x1b8> + 568a: 027e lrw r3, 0xffffff // 590c <__umoddi3+0x39c> + 568c: 648c cmphs r3, r2 + 568e: 0d1d bf 0x58c8 // 58c8 <__umoddi3+0x358> + 5690: 3710 movi r7, 16 + 5692: 6ccb mov r3, r2 + 5694: 70dd lsr r3, r7 + 5696: 0322 lrw r1, 0xabec // 5908 <__umoddi3+0x398> + 5698: 60c4 addu r3, r1 + 569a: 8360 ld.b r3, (r3, 0x0) + 569c: 61cc addu r7, r3 + 569e: 3320 movi r3, 32 + 56a0: 60de subu r3, r7 + 56a2: 3b40 cmpnei r3, 0 + 56a4: b861 st.w r3, (r14, 0x4) + 56a6: 08c2 bt 0x582a // 582a <__umoddi3+0x2ba> + 56a8: 74c9 zexth r3, r2 + 56aa: 610a subu r4, r2 + 56ac: 4af0 lsri r7, r2, 16 + 56ae: 6d8f mov r6, r3 + 56b0: 6c5f mov r1, r7 + 56b2: 6c13 mov r0, r4 + 56b4: b842 st.w r2, (r14, 0x8) + 56b6: e0000f2d bsr 0x7510 // 7510 <__umodsi3> + 56ba: 6d43 mov r5, r0 + 56bc: 6c5f mov r1, r7 + 56be: 6c13 mov r0, r4 + 56c0: e0000f04 bsr 0x74c8 // 74c8 <__udivsi3> + 56c4: 9860 ld.w r3, (r14, 0x0) + 56c6: 4590 lsli r4, r5, 16 + 56c8: 4bb0 lsri r5, r3, 16 + 56ca: 7c18 mult r0, r6 + 56cc: 6d14 or r4, r5 + 56ce: 6410 cmphs r4, r0 + 56d0: 9842 ld.w r2, (r14, 0x8) + 56d2: 0806 bt 0x56de // 56de <__umoddi3+0x16e> + 56d4: 6108 addu r4, r2 + 56d6: 6490 cmphs r4, r2 + 56d8: 0c03 bf 0x56de // 56de <__umoddi3+0x16e> + 56da: 6410 cmphs r4, r0 + 56dc: 0d06 bf 0x58e8 // 58e8 <__umoddi3+0x378> + 56de: 6102 subu r4, r0 + 56e0: 6c5f mov r1, r7 + 56e2: 6c13 mov r0, r4 + 56e4: b842 st.w r2, (r14, 0x8) + 56e6: e0000f15 bsr 0x7510 // 7510 <__umodsi3> + 56ea: 6d43 mov r5, r0 + 56ec: 6c5f mov r1, r7 + 56ee: 6c13 mov r0, r4 + 56f0: e0000eec bsr 0x74c8 // 74c8 <__udivsi3> + 56f4: d86e1000 ld.h r3, (r14, 0x0) + 56f8: 7c18 mult r0, r6 + 56fa: 45b0 lsli r5, r5, 16 + 56fc: 758d zexth r6, r3 + 56fe: 6d58 or r5, r6 + 5700: 6414 cmphs r5, r0 + 5702: 0808 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5704: 9842 ld.w r2, (r14, 0x8) + 5706: 6148 addu r5, r2 + 5708: 6494 cmphs r5, r2 + 570a: 0c04 bf 0x5712 // 5712 <__umoddi3+0x1a2> + 570c: 6414 cmphs r5, r0 + 570e: 0802 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5710: 6148 addu r5, r2 + 5712: 6142 subu r5, r0 + 5714: 078c br 0x562c // 562c <__umoddi3+0xbc> + 5716: 6c17 mov r0, r5 + 5718: 6c53 mov r1, r4 + 571a: 1407 addi r14, r14, 28 + 571c: 1494 pop r4-r7, r15 + 571e: 32ff movi r2, 255 + 5720: 6448 cmphs r2, r1 + 5722: 6583 mvcv r6 + 5724: 46c3 lsli r6, r6, 3 + 5726: 0792 br 0x564a // 564a <__umoddi3+0xda> + 5728: 33ff movi r3, 255 + 572a: 648c cmphs r3, r2 + 572c: 0bb3 bt 0x5692 // 5692 <__umoddi3+0x122> + 572e: 3708 movi r7, 8 + 5730: 07b1 br 0x5692 // 5692 <__umoddi3+0x122> + 5732: 1337 lrw r1, 0xffffff // 590c <__umoddi3+0x39c> + 5734: 6484 cmphs r1, r2 + 5736: 0ccb bf 0x58cc // 58cc <__umoddi3+0x35c> + 5738: 3710 movi r7, 16 + 573a: 072f br 0x5598 // 5598 <__umoddi3+0x28> + 573c: 6cc3 mov r3, r0 + 573e: 705c lsl r1, r7 + 5740: 70d9 lsr r3, r6 + 5742: 6cc4 or r3, r1 + 5744: 6c57 mov r1, r5 + 5746: 6c93 mov r2, r4 + 5748: 7059 lsr r1, r6 + 574a: 711c lsl r4, r7 + 574c: 7099 lsr r2, r6 + 574e: 6c50 or r1, r4 + 5750: 701c lsl r0, r7 + 5752: 4b90 lsri r4, r3, 16 + 5754: 715c lsl r5, r7 + 5756: b803 st.w r0, (r14, 0xc) + 5758: b820 st.w r1, (r14, 0x0) + 575a: b8a4 st.w r5, (r14, 0x10) + 575c: 6c53 mov r1, r4 + 575e: 754d zexth r5, r3 + 5760: 6c0b mov r0, r2 + 5762: b862 st.w r3, (r14, 0x8) + 5764: b8a1 st.w r5, (r14, 0x4) + 5766: b846 st.w r2, (r14, 0x18) + 5768: e0000ed4 bsr 0x7510 // 7510 <__umodsi3> + 576c: 9846 ld.w r2, (r14, 0x18) + 576e: b805 st.w r0, (r14, 0x14) + 5770: 6c53 mov r1, r4 + 5772: 6c0b mov r0, r2 + 5774: e0000eaa bsr 0x74c8 // 74c8 <__udivsi3> + 5778: 9841 ld.w r2, (r14, 0x4) + 577a: 7c80 mult r2, r0 + 577c: 9865 ld.w r3, (r14, 0x14) + 577e: 6d43 mov r5, r0 + 5780: 9800 ld.w r0, (r14, 0x0) + 5782: 4330 lsli r1, r3, 16 + 5784: 4870 lsri r3, r0, 16 + 5786: 6cc4 or r3, r1 + 5788: 648c cmphs r3, r2 + 578a: 0807 bt 0x5798 // 5798 <__umoddi3+0x228> + 578c: 9802 ld.w r0, (r14, 0x8) + 578e: 60c0 addu r3, r0 + 5790: 640c cmphs r3, r0 + 5792: 5d23 subi r1, r5, 1 + 5794: 08a3 bt 0x58da // 58da <__umoddi3+0x36a> + 5796: 6d47 mov r5, r1 + 5798: 60ca subu r3, r2 + 579a: 6c53 mov r1, r4 + 579c: 6c0f mov r0, r3 + 579e: b866 st.w r3, (r14, 0x18) + 57a0: e0000eb8 bsr 0x7510 // 7510 <__umodsi3> + 57a4: 9866 ld.w r3, (r14, 0x18) + 57a6: 6c53 mov r1, r4 + 57a8: b805 st.w r0, (r14, 0x14) + 57aa: 6c0f mov r0, r3 + 57ac: e0000e8e bsr 0x74c8 // 74c8 <__udivsi3> + 57b0: 9845 ld.w r2, (r14, 0x14) + 57b2: d86e1000 ld.h r3, (r14, 0x0) + 57b6: 9821 ld.w r1, (r14, 0x4) + 57b8: 4250 lsli r2, r2, 16 + 57ba: 750d zexth r4, r3 + 57bc: 7c40 mult r1, r0 + 57be: 6c90 or r2, r4 + 57c0: 6448 cmphs r2, r1 + 57c2: 0807 bt 0x57d0 // 57d0 <__umoddi3+0x260> + 57c4: 9882 ld.w r4, (r14, 0x8) + 57c6: 6090 addu r2, r4 + 57c8: 6508 cmphs r2, r4 + 57ca: 5863 subi r3, r0, 1 + 57cc: 0882 bt 0x58d0 // 58d0 <__umoddi3+0x360> + 57ce: 6c0f mov r0, r3 + 57d0: 45b0 lsli r5, r5, 16 + 57d2: 6d40 or r5, r0 + 57d4: 74d5 zexth r3, r5 + 57d6: 9803 ld.w r0, (r14, 0xc) + 57d8: 4db0 lsri r5, r5, 16 + 57da: 6d0f mov r4, r3 + 57dc: 6086 subu r2, r1 + 57de: 7441 zexth r1, r0 + 57e0: 4810 lsri r0, r0, 16 + 57e2: 7d04 mult r4, r1 + 57e4: 7cc0 mult r3, r0 + 57e6: 7c54 mult r1, r5 + 57e8: 60c4 addu r3, r1 + 57ea: 7d40 mult r5, r0 + 57ec: 4c10 lsri r0, r4, 16 + 57ee: 60c0 addu r3, r0 + 57f0: 644c cmphs r3, r1 + 57f2: 0804 bt 0x57fa // 57fa <__umoddi3+0x28a> + 57f4: 3180 movi r1, 128 + 57f6: 4129 lsli r1, r1, 9 + 57f8: 6144 addu r5, r1 + 57fa: 4b30 lsri r1, r3, 16 + 57fc: 6144 addu r5, r1 + 57fe: 4370 lsli r3, r3, 16 + 5800: 7511 zexth r4, r4 + 5802: 6548 cmphs r2, r5 + 5804: 60d0 addu r3, r4 + 5806: 0c56 bf 0x58b2 // 58b2 <__umoddi3+0x342> + 5808: 654a cmpne r2, r5 + 580a: 0c76 bf 0x58f6 // 58f6 <__umoddi3+0x386> + 580c: 5a35 subu r1, r2, r5 + 580e: 6c0f mov r0, r3 + 5810: 9864 ld.w r3, (r14, 0x10) + 5812: 5b01 subu r0, r3, r0 + 5814: 640c cmphs r3, r0 + 5816: 64c3 mvcv r3 + 5818: 598d subu r4, r1, r3 + 581a: 6d53 mov r5, r4 + 581c: 7158 lsl r5, r6 + 581e: 701d lsr r0, r7 + 5820: 6c53 mov r1, r4 + 5822: 6c14 or r0, r5 + 5824: 705d lsr r1, r7 + 5826: 1407 addi r14, r14, 28 + 5828: 1494 pop r4-r7, r15 + 582a: 9801 ld.w r0, (r14, 0x4) + 582c: 6c57 mov r1, r5 + 582e: 6cd3 mov r3, r4 + 5830: 705d lsr r1, r7 + 5832: 7100 lsl r4, r0 + 5834: 7080 lsl r2, r0 + 5836: 6c50 or r1, r4 + 5838: 70dd lsr r3, r7 + 583a: 6d07 mov r4, r1 + 583c: 4af0 lsri r7, r2, 16 + 583e: b822 st.w r1, (r14, 0x8) + 5840: 7449 zexth r1, r2 + 5842: 7140 lsl r5, r0 + 5844: 6d87 mov r6, r1 + 5846: 6c0f mov r0, r3 + 5848: 6c5f mov r1, r7 + 584a: b844 st.w r2, (r14, 0x10) + 584c: b8a0 st.w r5, (r14, 0x0) + 584e: b863 st.w r3, (r14, 0xc) + 5850: e0000e60 bsr 0x7510 // 7510 <__umodsi3> + 5854: 9863 ld.w r3, (r14, 0xc) + 5856: 6d43 mov r5, r0 + 5858: 6c5f mov r1, r7 + 585a: 6c0f mov r0, r3 + 585c: e0000e36 bsr 0x74c8 // 74c8 <__udivsi3> + 5860: 45b0 lsli r5, r5, 16 + 5862: 4c70 lsri r3, r4, 16 + 5864: 7c18 mult r0, r6 + 5866: 6d4c or r5, r3 + 5868: 6414 cmphs r5, r0 + 586a: 9844 ld.w r2, (r14, 0x10) + 586c: 0807 bt 0x587a // 587a <__umoddi3+0x30a> + 586e: 6148 addu r5, r2 + 5870: 6494 cmphs r5, r2 + 5872: 0c04 bf 0x587a // 587a <__umoddi3+0x30a> + 5874: 6414 cmphs r5, r0 + 5876: 0802 bt 0x587a // 587a <__umoddi3+0x30a> + 5878: 6148 addu r5, r2 + 587a: 6142 subu r5, r0 + 587c: 6c5f mov r1, r7 + 587e: 6c17 mov r0, r5 + 5880: b843 st.w r2, (r14, 0xc) + 5882: e0000e47 bsr 0x7510 // 7510 <__umodsi3> + 5886: 6d03 mov r4, r0 + 5888: 6c5f mov r1, r7 + 588a: 6c17 mov r0, r5 + 588c: e0000e1e bsr 0x74c8 // 74c8 <__udivsi3> + 5890: d86e1004 ld.h r3, (r14, 0x8) + 5894: 4490 lsli r4, r4, 16 + 5896: 744d zexth r1, r3 + 5898: 7c18 mult r0, r6 + 589a: 6d04 or r4, r1 + 589c: 6410 cmphs r4, r0 + 589e: 9843 ld.w r2, (r14, 0xc) + 58a0: 0807 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58a2: 6108 addu r4, r2 + 58a4: 6490 cmphs r4, r2 + 58a6: 0c04 bf 0x58ae // 58ae <__umoddi3+0x33e> + 58a8: 6410 cmphs r4, r0 + 58aa: 0802 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58ac: 6108 addu r4, r2 + 58ae: 6102 subu r4, r0 + 58b0: 0700 br 0x56b0 // 56b0 <__umoddi3+0x140> + 58b2: 9823 ld.w r1, (r14, 0xc) + 58b4: 5b05 subu r0, r3, r1 + 58b6: 640c cmphs r3, r0 + 58b8: 9822 ld.w r1, (r14, 0x8) + 58ba: 6146 subu r5, r1 + 58bc: 64c3 mvcv r3 + 58be: 614e subu r5, r3 + 58c0: 5a35 subu r1, r2, r5 + 58c2: 07a7 br 0x5810 // 5810 <__umoddi3+0x2a0> + 58c4: 3618 movi r6, 24 + 58c6: 06c2 br 0x564a // 564a <__umoddi3+0xda> + 58c8: 3718 movi r7, 24 + 58ca: 06e4 br 0x5692 // 5692 <__umoddi3+0x122> + 58cc: 3718 movi r7, 24 + 58ce: 0665 br 0x5598 // 5598 <__umoddi3+0x28> + 58d0: 6448 cmphs r2, r1 + 58d2: 0b7e bt 0x57ce // 57ce <__umoddi3+0x25e> + 58d4: 2801 subi r0, 2 + 58d6: 6090 addu r2, r4 + 58d8: 077c br 0x57d0 // 57d0 <__umoddi3+0x260> + 58da: 648c cmphs r3, r2 + 58dc: 0b5d bt 0x5796 // 5796 <__umoddi3+0x226> + 58de: 2d01 subi r5, 2 + 58e0: 60c0 addu r3, r0 + 58e2: 075b br 0x5798 // 5798 <__umoddi3+0x228> + 58e4: 6148 addu r5, r2 + 58e6: 06a2 br 0x562a // 562a <__umoddi3+0xba> + 58e8: 6108 addu r4, r2 + 58ea: 06fa br 0x56de // 56de <__umoddi3+0x16e> + 58ec: 60c8 addu r3, r2 + 58ee: 0683 br 0x55f4 // 55f4 <__umoddi3+0x84> + 58f0: 6c17 mov r0, r5 + 58f2: 6c4f mov r1, r3 + 58f4: 06bf br 0x5672 // 5672 <__umoddi3+0x102> + 58f6: 9824 ld.w r1, (r14, 0x10) + 58f8: 64c4 cmphs r1, r3 + 58fa: 0fdc bf 0x58b2 // 58b2 <__umoddi3+0x342> + 58fc: 6c0f mov r0, r3 + 58fe: 3100 movi r1, 0 + 5900: 0788 br 0x5810 // 5810 <__umoddi3+0x2a0> + 5902: 0000 bkpt + 5904: 0000ffff .long 0x0000ffff + 5908: 0000abec .long 0x0000abec + 590c: 00ffffff .long 0x00ffffff + +00005910 : + 5910: 14c2 push r4-r5 + 5912: 3300 movi r3, 0 + 5914: 644d cmplt r3, r1 + 5916: 0803 bt 0x591c // 591c + 5918: 6c0f mov r0, r3 + 591a: 1482 pop r4-r5 + 591c: 5aac addu r5, r2, r3 + 591e: 588c addu r4, r0, r3 + 5920: 2300 addi r3, 1 + 5922: 85a0 ld.b r5, (r5, 0x0) + 5924: 3b43 cmpnei r3, 3 + 5926: a4a0 st.b r5, (r4, 0x0) + 5928: 0bf6 bt 0x5914 // 5914 + 592a: 3923 cmplti r1, 4 + 592c: 0bf6 bt 0x5918 // 5918 + 592e: 3300 movi r3, 0 + 5930: a063 st.b r3, (r0, 0x3) + 5932: 3304 movi r3, 4 + 5934: 07f2 br 0x5918 // 5918 + +00005936 <__GI___dtostr>: + 5936: 14d4 push r4-r7, r15 + 5938: 142c subi r14, r14, 48 + 593a: 6d8f mov r6, r3 + 593c: 9871 ld.w r3, (r14, 0x44) + 593e: b80a st.w r0, (r14, 0x28) + 5940: b824 st.w r1, (r14, 0x10) + 5942: b842 st.w r2, (r14, 0x8) + 5944: b86b st.w r3, (r14, 0x2c) + 5946: 98f2 ld.w r7, (r14, 0x48) + 5948: e0000244 bsr 0x5dd0 // 5dd0 <__isinf> + 594c: 3840 cmpnei r0, 0 + 594e: 0c0a bf 0x5962 // 5962 <__GI___dtostr+0x2c> + 5950: 0244 lrw r2, 0xbac8 // 5c3c <__GI___dtostr+0x306> + 5952: 6c5b mov r1, r6 + 5954: 9802 ld.w r0, (r14, 0x8) + 5956: e3ffffdd bsr 0x5910 // 5910 + 595a: b809 st.w r0, (r14, 0x24) + 595c: 9809 ld.w r0, (r14, 0x24) + 595e: 140c addi r14, r14, 48 + 5960: 1494 pop r4-r7, r15 + 5962: 980a ld.w r0, (r14, 0x28) + 5964: 9824 ld.w r1, (r14, 0x10) + 5966: e0000185 bsr 0x5c70 // 5c70 <__isnan> + 596a: 3840 cmpnei r0, 0 + 596c: b809 st.w r0, (r14, 0x24) + 596e: 0c03 bf 0x5974 // 5974 <__GI___dtostr+0x3e> + 5970: 024b lrw r2, 0xbacc // 5c40 <__GI___dtostr+0x30a> + 5972: 07f0 br 0x5952 // 5952 <__GI___dtostr+0x1c> + 5974: 3200 movi r2, 0 + 5976: 3300 movi r3, 0 + 5978: 980a ld.w r0, (r14, 0x28) + 597a: 9824 ld.w r1, (r14, 0x10) + 597c: e0000242 bsr 0x5e00 // 5e00 <__eqdf2> + 5980: 3840 cmpnei r0, 0 + 5982: 082d bt 0x59dc // 59dc <__GI___dtostr+0xa6> + 5984: 3f40 cmpnei r7, 0 + 5986: 0d57 bf 0x5c34 // 5c34 <__GI___dtostr+0x2fe> + 5988: 5fa6 addi r5, r7, 2 + 598a: 6558 cmphs r6, r5 + 598c: 0d56 bf 0x5c38 // 5c38 <__GI___dtostr+0x302> + 598e: 3d40 cmpnei r5, 0 + 5990: 0c0b bf 0x59a6 // 59a6 <__GI___dtostr+0x70> + 5992: 9824 ld.w r1, (r14, 0x10) + 5994: 39df btsti r1, 31 + 5996: 0c1a bf 0x59ca // 59ca <__GI___dtostr+0x94> + 5998: 9802 ld.w r0, (r14, 0x8) + 599a: 322d movi r2, 45 + 599c: a040 st.b r2, (r0, 0x0) + 599e: 5d02 addi r0, r5, 1 + 59a0: 3501 movi r5, 1 + 59a2: 6414 cmphs r5, r0 + 59a4: 0c16 bf 0x59d0 // 59d0 <__GI___dtostr+0x9a> + 59a6: 9882 ld.w r4, (r14, 0x8) + 59a8: 8420 ld.b r1, (r4, 0x0) + 59aa: 3330 movi r3, 48 + 59ac: 64c6 cmpne r1, r3 + 59ae: 3000 movi r0, 0 + 59b0: 6001 addc r0, r0 + 59b2: 9842 ld.w r2, (r14, 0x8) + 59b4: 9822 ld.w r1, (r14, 0x8) + 59b6: 6008 addu r0, r2 + 59b8: 342e movi r4, 46 + 59ba: 6054 addu r1, r5 + 59bc: 3300 movi r3, 0 + 59be: a081 st.b r4, (r0, 0x1) + 59c0: b8a9 st.w r5, (r14, 0x24) + 59c2: a160 st.b r3, (r1, 0x0) + 59c4: 07cc br 0x595c // 595c <__GI___dtostr+0x26> + 59c6: 3501 movi r5, 1 + 59c8: 07e5 br 0x5992 // 5992 <__GI___dtostr+0x5c> + 59ca: 6c17 mov r0, r5 + 59cc: 3500 movi r5, 0 + 59ce: 07ea br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59d0: 9842 ld.w r2, (r14, 0x8) + 59d2: 6094 addu r2, r5 + 59d4: 3430 movi r4, 48 + 59d6: a280 st.b r4, (r2, 0x0) + 59d8: 2500 addi r5, 1 + 59da: 07e4 br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59dc: 3200 movi r2, 0 + 59de: 3300 movi r3, 0 + 59e0: 980a ld.w r0, (r14, 0x28) + 59e2: 9824 ld.w r1, (r14, 0x10) + 59e4: e000022c bsr 0x5e3c // 5e3c <__ltdf2> + 59e8: 38df btsti r0, 31 + 59ea: 0c8e bf 0x5b06 // 5b06 <__GI___dtostr+0x1d0> + 59ec: 3180 movi r1, 128 + 59ee: 98a2 ld.w r5, (r14, 0x8) + 59f0: 9884 ld.w r4, (r14, 0x10) + 59f2: 4158 lsli r2, r1, 24 + 59f4: 332d movi r3, 45 + 59f6: a560 st.b r3, (r5, 0x0) + 59f8: 6108 addu r4, r2 + 59fa: 2e00 subi r6, 1 + 59fc: 2500 addi r5, 1 + 59fe: 3000 movi r0, 0 + 5a00: 032e lrw r1, 0x3fe00000 // 5c44 <__GI___dtostr+0x30e> + 5a02: 3300 movi r3, 0 + 5a04: b865 st.w r3, (r14, 0x14) + 5a06: 9845 ld.w r2, (r14, 0x14) + 5a08: 65ca cmpne r2, r7 + 5a0a: 0881 bt 0x5b0c // 5b0c <__GI___dtostr+0x1d6> + 5a0c: 6c83 mov r2, r0 + 5a0e: 6cc7 mov r3, r1 + 5a10: 980a ld.w r0, (r14, 0x28) + 5a12: 6c53 mov r1, r4 + 5a14: e3fff190 bsr 0x3d34 // 3d34 <__adddf3> + 5a18: 3200 movi r2, 0 + 5a1a: 0373 lrw r3, 0x3ff00000 // 5c48 <__GI___dtostr+0x312> + 5a1c: b806 st.w r0, (r14, 0x18) + 5a1e: b827 st.w r1, (r14, 0x1c) + 5a20: e000020e bsr 0x5e3c // 5e3c <__ltdf2> + 5a24: 38df btsti r0, 31 + 5a26: 0c05 bf 0x5a30 // 5a30 <__GI___dtostr+0xfa> + 5a28: 3430 movi r4, 48 + 5a2a: a580 st.b r4, (r5, 0x0) + 5a2c: 2e00 subi r6, 1 + 5a2e: 2500 addi r5, 1 + 5a30: 9804 ld.w r0, (r14, 0x10) + 5a32: 4021 lsli r1, r0, 1 + 5a34: 0379 lrw r3, 0xfffffc01 // 5c4c <__GI___dtostr+0x316> + 5a36: 4915 lsri r0, r1, 21 + 5a38: 600c addu r0, r3 + 5a3a: e3fff3cf bsr 0x41d8 // 41d8 <__floatsidf> + 5a3e: 035a lrw r2, 0x509f79ff // 5c50 <__GI___dtostr+0x31a> + 5a40: 037a lrw r3, 0x3fd34413 // 5c54 <__GI___dtostr+0x31e> + 5a42: e3fff1ad bsr 0x3d9c // 3d9c <__muldf3> + 5a46: e3fff401 bsr 0x4248 // 4248 <__fixdfsi> + 5a4a: 5842 addi r2, r0, 1 + 5a4c: 3a20 cmplti r2, 1 + 5a4e: b848 st.w r2, (r14, 0x20) + 5a50: 08e7 bt 0x5c1e // 5c1e <__GI___dtostr+0x2e8> + 5a52: 033d lrw r1, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5a54: 6dcb mov r7, r2 + 5a56: 3400 movi r4, 0 + 5a58: b823 st.w r1, (r14, 0xc) + 5a5a: 3f0a cmphsi r7, 11 + 5a5c: 085f bt 0x5b1a // 5b1a <__GI___dtostr+0x1e4> + 5a5e: 3f41 cmpnei r7, 1 + 5a60: 0868 bt 0x5b30 // 5b30 <__GI___dtostr+0x1fa> + 5a62: 135f lrw r2, 0xcccccccd // 5c5c <__GI___dtostr+0x326> + 5a64: 137f lrw r3, 0x3feccccc // 5c60 <__GI___dtostr+0x32a> + 5a66: 6c13 mov r0, r4 + 5a68: 9823 ld.w r1, (r14, 0xc) + 5a6a: e3fff35d bsr 0x4124 // 4124 <__gtdf2> + 5a6e: 3820 cmplti r0, 1 + 5a70: 0c6a bf 0x5b44 // 5b44 <__GI___dtostr+0x20e> + 5a72: 9862 ld.w r3, (r14, 0x8) + 5a74: 64d6 cmpne r5, r3 + 5a76: 0807 bt 0x5a84 // 5a84 <__GI___dtostr+0x14e> + 5a78: 3e40 cmpnei r6, 0 + 5a7a: 0f71 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a7c: 3230 movi r2, 48 + 5a7e: a540 st.b r2, (r5, 0x0) + 5a80: 2e00 subi r6, 1 + 5a82: 2500 addi r5, 1 + 5a84: 9805 ld.w r0, (r14, 0x14) + 5a86: 3840 cmpnei r0, 0 + 5a88: 08cf bt 0x5c26 // 5c26 <__GI___dtostr+0x2f0> + 5a8a: 9822 ld.w r1, (r14, 0x8) + 5a8c: 5d65 subu r3, r5, r1 + 5a8e: 2300 addi r3, 1 + 5a90: 984b ld.w r2, (r14, 0x2c) + 5a92: 648c cmphs r3, r2 + 5a94: 08a5 bt 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5a96: 3e40 cmpnei r6, 0 + 5a98: 0f62 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a9a: 372e movi r7, 46 + 5a9c: a5e0 st.b r7, (r5, 0x0) + 5a9e: 980b ld.w r0, (r14, 0x2c) + 5aa0: 5de2 addi r7, r5, 1 + 5aa2: 9822 ld.w r1, (r14, 0x8) + 5aa4: 2000 addi r0, 1 + 5aa6: 5f65 subu r3, r7, r1 + 5aa8: 584d subu r2, r0, r3 + 5aaa: 2e00 subi r6, 1 + 5aac: b845 st.w r2, (r14, 0x14) + 5aae: 9805 ld.w r0, (r14, 0x14) + 5ab0: 6418 cmphs r6, r0 + 5ab2: 0f55 bf 0x595c // 595c <__GI___dtostr+0x26> + 5ab4: 6d43 mov r5, r0 + 5ab6: 615c addu r5, r7 + 5ab8: 36ff movi r6, 255 + 5aba: 655e cmpne r7, r5 + 5abc: 0c91 bf 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5abe: 6c93 mov r2, r4 + 5ac0: 9863 ld.w r3, (r14, 0xc) + 5ac2: 9806 ld.w r0, (r14, 0x18) + 5ac4: 9827 ld.w r1, (r14, 0x1c) + 5ac6: e3fff285 bsr 0x3fd0 // 3fd0 <__divdf3> + 5aca: e3fff3bf bsr 0x4248 // 4248 <__fixdfsi> + 5ace: 3130 movi r1, 48 + 5ad0: 6040 addu r1, r0 + 5ad2: a720 st.b r1, (r7, 0x0) + 5ad4: 6818 and r0, r6 + 5ad6: e3fff381 bsr 0x41d8 // 41d8 <__floatsidf> + 5ada: 6c93 mov r2, r4 + 5adc: 9863 ld.w r3, (r14, 0xc) + 5ade: e3fff15f bsr 0x3d9c // 3d9c <__muldf3> + 5ae2: 6c83 mov r2, r0 + 5ae4: 6cc7 mov r3, r1 + 5ae6: 9806 ld.w r0, (r14, 0x18) + 5ae8: 9827 ld.w r1, (r14, 0x1c) + 5aea: e3fff13d bsr 0x3d64 // 3d64 <__subdf3> + 5aee: b806 st.w r0, (r14, 0x18) + 5af0: b827 st.w r1, (r14, 0x1c) + 5af2: 6c13 mov r0, r4 + 5af4: 9823 ld.w r1, (r14, 0xc) + 5af6: 3200 movi r2, 0 + 5af8: 1278 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5afa: e3fff26b bsr 0x3fd0 // 3fd0 <__divdf3> + 5afe: 2700 addi r7, 1 + 5b00: 6d03 mov r4, r0 + 5b02: b823 st.w r1, (r14, 0xc) + 5b04: 07db br 0x5aba // 5aba <__GI___dtostr+0x184> + 5b06: 98a2 ld.w r5, (r14, 0x8) + 5b08: 9884 ld.w r4, (r14, 0x10) + 5b0a: 077a br 0x59fe // 59fe <__GI___dtostr+0xc8> + 5b0c: 1276 lrw r3, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5b0e: 1257 lrw r2, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5b10: e3fff146 bsr 0x3d9c // 3d9c <__muldf3> + 5b14: 9865 ld.w r3, (r14, 0x14) + 5b16: 2300 addi r3, 1 + 5b18: 0776 br 0x5a04 // 5a04 <__GI___dtostr+0xce> + 5b1a: 3080 movi r0, 128 + 5b1c: 4056 lsli r2, r0, 22 + 5b1e: 9823 ld.w r1, (r14, 0xc) + 5b20: 6c13 mov r0, r4 + 5b22: 1273 lrw r3, 0x4202a05f // 5c6c <__GI___dtostr+0x336> + 5b24: e3fff13c bsr 0x3d9c // 3d9c <__muldf3> + 5b28: 6d03 mov r4, r0 + 5b2a: b823 st.w r1, (r14, 0xc) + 5b2c: 2f09 subi r7, 10 + 5b2e: 0796 br 0x5a5a // 5a5a <__GI___dtostr+0x124> + 5b30: 6c13 mov r0, r4 + 5b32: 9823 ld.w r1, (r14, 0xc) + 5b34: 3200 movi r2, 0 + 5b36: 1269 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5b38: e3fff132 bsr 0x3d9c // 3d9c <__muldf3> + 5b3c: 6d03 mov r4, r0 + 5b3e: b823 st.w r1, (r14, 0xc) + 5b40: 2f00 subi r7, 1 + 5b42: 078e br 0x5a5e // 5a5e <__GI___dtostr+0x128> + 5b44: 9863 ld.w r3, (r14, 0xc) + 5b46: 6c93 mov r2, r4 + 5b48: 9806 ld.w r0, (r14, 0x18) + 5b4a: 9827 ld.w r1, (r14, 0x1c) + 5b4c: e3fff242 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b50: e3fff37c bsr 0x4248 // 4248 <__fixdfsi> + 5b54: 3f40 cmpnei r7, 0 + 5b56: 74c0 zextb r3, r0 + 5b58: 0c03 bf 0x5b5e // 5b5e <__GI___dtostr+0x228> + 5b5a: 3b40 cmpnei r3, 0 + 5b5c: 0c58 bf 0x5c0c // 5c0c <__GI___dtostr+0x2d6> + 5b5e: 232f addi r3, 48 + 5b60: 3e40 cmpnei r6, 0 + 5b62: a560 st.b r3, (r5, 0x0) + 5b64: 2500 addi r5, 1 + 5b66: 0842 bt 0x5bea // 5bea <__GI___dtostr+0x2b4> + 5b68: 6c93 mov r2, r4 + 5b6a: 9863 ld.w r3, (r14, 0xc) + 5b6c: 980a ld.w r0, (r14, 0x28) + 5b6e: 9824 ld.w r1, (r14, 0x10) + 5b70: e3fff230 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b74: 9845 ld.w r2, (r14, 0x14) + 5b76: 988b ld.w r4, (r14, 0x2c) + 5b78: b841 st.w r2, (r14, 0x4) + 5b7a: b880 st.w r4, (r14, 0x0) + 5b7c: 3300 movi r3, 0 + 5b7e: 9842 ld.w r2, (r14, 0x8) + 5b80: e3fffedb bsr 0x5936 // 5936 <__GI___dtostr> + 5b84: 3840 cmpnei r0, 0 + 5b86: 0eeb bf 0x595c // 595c <__GI___dtostr+0x26> + 5b88: 5dc0 addu r6, r5, r0 + 5b8a: 37fa movi r7, 250 + 5b8c: 3565 movi r5, 101 + 5b8e: 6c02 nor r0, r0 + 5b90: a6a0 st.b r5, (r6, 0x0) + 5b92: 6d03 mov r4, r0 + 5b94: 5ea2 addi r5, r6, 1 + 5b96: 3101 movi r1, 1 + 5b98: 3604 movi r6, 4 + 5b9a: 47e2 lsli r7, r7, 2 + 5b9c: 9808 ld.w r0, (r14, 0x20) + 5b9e: 65c1 cmplt r0, r7 + 5ba0: 0c03 bf 0x5ba6 // 5ba6 <__GI___dtostr+0x270> + 5ba2: 3940 cmpnei r1, 0 + 5ba4: 0811 bt 0x5bc6 // 5bc6 <__GI___dtostr+0x290> + 5ba6: 3c40 cmpnei r4, 0 + 5ba8: 0c08 bf 0x5bb8 // 5bb8 <__GI___dtostr+0x282> + 5baa: 6c5f mov r1, r7 + 5bac: 9808 ld.w r0, (r14, 0x20) + 5bae: e0000c7b bsr 0x74a4 // 74a4 <__divsi3> + 5bb2: 202f addi r0, 48 + 5bb4: a500 st.b r0, (r5, 0x0) + 5bb6: 2500 addi r5, 1 + 5bb8: 6c5f mov r1, r7 + 5bba: 9808 ld.w r0, (r14, 0x20) + 5bbc: e0000c98 bsr 0x74ec // 74ec <__modsi3> + 5bc0: 2c00 subi r4, 1 + 5bc2: b808 st.w r0, (r14, 0x20) + 5bc4: 3100 movi r1, 0 + 5bc6: b823 st.w r1, (r14, 0xc) + 5bc8: 6c1f mov r0, r7 + 5bca: 310a movi r1, 10 + 5bcc: 2e00 subi r6, 1 + 5bce: e0000c6b bsr 0x74a4 // 74a4 <__divsi3> + 5bd2: 3e40 cmpnei r6, 0 + 5bd4: 6dc3 mov r7, r0 + 5bd6: 9823 ld.w r1, (r14, 0xc) + 5bd8: 0be2 bt 0x5b9c // 5b9c <__GI___dtostr+0x266> + 5bda: 3c40 cmpnei r4, 0 + 5bdc: 0ec0 bf 0x595c // 595c <__GI___dtostr+0x26> + 5bde: 9842 ld.w r2, (r14, 0x8) + 5be0: 3300 movi r3, 0 + 5be2: 5d89 subu r4, r5, r2 + 5be4: a560 st.b r3, (r5, 0x0) + 5be6: b889 st.w r4, (r14, 0x24) + 5be8: 06ba br 0x595c // 595c <__GI___dtostr+0x26> + 5bea: 7400 zextb r0, r0 + 5bec: e3fff2f6 bsr 0x41d8 // 41d8 <__floatsidf> + 5bf0: 6c93 mov r2, r4 + 5bf2: 9863 ld.w r3, (r14, 0xc) + 5bf4: e3fff0d4 bsr 0x3d9c // 3d9c <__muldf3> + 5bf8: 6c83 mov r2, r0 + 5bfa: 6cc7 mov r3, r1 + 5bfc: 9806 ld.w r0, (r14, 0x18) + 5bfe: 9827 ld.w r1, (r14, 0x1c) + 5c00: e3fff0b2 bsr 0x3d64 // 3d64 <__subdf3> + 5c04: b806 st.w r0, (r14, 0x18) + 5c06: b827 st.w r1, (r14, 0x1c) + 5c08: 2e00 subi r6, 1 + 5c0a: 3700 movi r7, 0 + 5c0c: 6c13 mov r0, r4 + 5c0e: 9823 ld.w r1, (r14, 0xc) + 5c10: 3200 movi r2, 0 + 5c12: 1072 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5c14: e3fff1de bsr 0x3fd0 // 3fd0 <__divdf3> + 5c18: 6d03 mov r4, r0 + 5c1a: b823 st.w r1, (r14, 0xc) + 5c1c: 0723 br 0x5a62 // 5a62 <__GI___dtostr+0x12c> + 5c1e: 1012 lrw r0, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5c20: 1092 lrw r4, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5c22: b803 st.w r0, (r14, 0xc) + 5c24: 0727 br 0x5a72 // 5a72 <__GI___dtostr+0x13c> + 5c26: 3e40 cmpnei r6, 0 + 5c28: 0e9a bf 0x595c // 595c <__GI___dtostr+0x26> + 5c2a: 372e movi r7, 46 + 5c2c: a5e0 st.b r7, (r5, 0x0) + 5c2e: 2e00 subi r6, 1 + 5c30: 5de2 addi r7, r5, 1 + 5c32: 073e br 0x5aae // 5aae <__GI___dtostr+0x178> + 5c34: 3e40 cmpnei r6, 0 + 5c36: 0ac8 bt 0x59c6 // 59c6 <__GI___dtostr+0x90> + 5c38: 3508 movi r5, 8 + 5c3a: 06ac br 0x5992 // 5992 <__GI___dtostr+0x5c> + 5c3c: 0000bac8 .long 0x0000bac8 + 5c40: 0000bacc .long 0x0000bacc + 5c44: 3fe00000 .long 0x3fe00000 + 5c48: 3ff00000 .long 0x3ff00000 + 5c4c: fffffc01 .long 0xfffffc01 + 5c50: 509f79ff .long 0x509f79ff + 5c54: 3fd34413 .long 0x3fd34413 + 5c58: 40240000 .long 0x40240000 + 5c5c: cccccccd .long 0xcccccccd + 5c60: 3feccccc .long 0x3feccccc + 5c64: 3fb99999 .long 0x3fb99999 + 5c68: 9999999a .long 0x9999999a + 5c6c: 4202a05f .long 0x4202a05f + +00005c70 <__isnan>: + 5c70: 416c lsli r3, r1, 12 + 5c72: 4b4c lsri r2, r3, 12 + 5c74: 6c08 or r0, r2 + 5c76: 3840 cmpnei r0, 0 + 5c78: 0c0e bf 0x5c94 // 5c94 <__isnan+0x24> + 5c7a: 1008 lrw r0, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c7c: 6840 and r1, r0 + 5c7e: 6cc7 mov r3, r1 + 5c80: 3000 movi r0, 0 + 5c82: 1026 lrw r1, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c84: 3200 movi r2, 0 + 5c86: 6c81 xor r2, r0 + 5c88: 6cc5 xor r3, r1 + 5c8a: 6c8c or r2, r3 + 5c8c: 3a40 cmpnei r2, 0 + 5c8e: 6443 mvcv r1 + 5c90: 7404 zextb r0, r1 + 5c92: 783c jmp r15 + 5c94: 3000 movi r0, 0 + 5c96: 07fe br 0x5c92 // 5c92 <__isnan+0x22> + 5c98: 7ff00000 .long 0x7ff00000 + +00005c9c <__strlen_fast>: + 5c9c: 6c43 mov r1, r0 + 5c9e: 3203 movi r2, 3 + 5ca0: 6808 and r0, r2 + 5ca2: 3840 cmpnei r0, 0 + 5ca4: 0c08 bf 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5ca6: 3000 movi r0, 0 + 5ca8: 8140 ld.b r2, (r1, 0x0) + 5caa: 3a40 cmpnei r2, 0 + 5cac: 0c20 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cae: 2100 addi r1, 1 + 5cb0: 2000 addi r0, 1 + 5cb2: 07fb br 0x5ca8 // 5ca8 <__strlen_fast+0xc> + 5cb4: 9140 ld.w r2, (r1, 0x0) + 5cb6: 680b tstnbz r2 + 5cb8: 0c04 bf 0x5cc0 // 5cc0 <__strlen_fast+0x24> + 5cba: 2103 addi r1, 4 + 5cbc: 2003 addi r0, 4 + 5cbe: 07fb br 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5cc0: 31ff movi r1, 255 + 5cc2: 6ccb mov r3, r2 + 5cc4: 68c4 and r3, r1 + 5cc6: 3b40 cmpnei r3, 0 + 5cc8: 0c12 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cca: 2000 addi r0, 1 + 5ccc: 3110 movi r1, 16 + 5cce: 6ccb mov r3, r2 + 5cd0: 70c4 lsl r3, r1 + 5cd2: 3118 movi r1, 24 + 5cd4: 70c5 lsr r3, r1 + 5cd6: 3b40 cmpnei r3, 0 + 5cd8: 0c0a bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cda: 2000 addi r0, 1 + 5cdc: 3108 movi r1, 8 + 5cde: 6ccb mov r3, r2 + 5ce0: 70c4 lsl r3, r1 + 5ce2: 3118 movi r1, 24 + 5ce4: 70c5 lsr r3, r1 + 5ce6: 3b40 cmpnei r3, 0 + 5ce8: 0c02 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cea: 2000 addi r0, 1 + 5cec: 783c jmp r15 + ... + +00005cf0 <__strcpy_fast>: + 5cf0: 14c1 push r4 + 5cf2: 6d03 mov r4, r0 + 5cf4: 6c87 mov r2, r1 + 5cf6: 6c90 or r2, r4 + 5cf8: 3303 movi r3, 3 + 5cfa: 688c and r2, r3 + 5cfc: 3a40 cmpnei r2, 0 + 5cfe: 0c08 bf 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d00: 8160 ld.b r3, (r1, 0x0) + 5d02: a460 st.b r3, (r4, 0x0) + 5d04: 2100 addi r1, 1 + 5d06: 2400 addi r4, 1 + 5d08: 3b40 cmpnei r3, 0 + 5d0a: 0bfb bt 0x5d00 // 5d00 <__strcpy_fast+0x10> + 5d0c: 1481 pop r4 + 5d0e: 9160 ld.w r3, (r1, 0x0) + 5d10: 680f tstnbz r3 + 5d12: 0c2e bf 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d14: b460 st.w r3, (r4, 0x0) + 5d16: 9161 ld.w r3, (r1, 0x4) + 5d18: 680f tstnbz r3 + 5d1a: 0c1d bf 0x5d54 // 5d54 <__strcpy_fast+0x64> + 5d1c: b461 st.w r3, (r4, 0x4) + 5d1e: 9162 ld.w r3, (r1, 0x8) + 5d20: 680f tstnbz r3 + 5d22: 0c1b bf 0x5d58 // 5d58 <__strcpy_fast+0x68> + 5d24: b462 st.w r3, (r4, 0x8) + 5d26: 9163 ld.w r3, (r1, 0xc) + 5d28: 680f tstnbz r3 + 5d2a: 0c19 bf 0x5d5c // 5d5c <__strcpy_fast+0x6c> + 5d2c: b463 st.w r3, (r4, 0xc) + 5d2e: 9164 ld.w r3, (r1, 0x10) + 5d30: 680f tstnbz r3 + 5d32: 0c17 bf 0x5d60 // 5d60 <__strcpy_fast+0x70> + 5d34: b464 st.w r3, (r4, 0x10) + 5d36: 9165 ld.w r3, (r1, 0x14) + 5d38: 680f tstnbz r3 + 5d3a: 0c15 bf 0x5d64 // 5d64 <__strcpy_fast+0x74> + 5d3c: b465 st.w r3, (r4, 0x14) + 5d3e: 9166 ld.w r3, (r1, 0x18) + 5d40: 680f tstnbz r3 + 5d42: 0c13 bf 0x5d68 // 5d68 <__strcpy_fast+0x78> + 5d44: b466 st.w r3, (r4, 0x18) + 5d46: 9167 ld.w r3, (r1, 0x1c) + 5d48: 680f tstnbz r3 + 5d4a: 0c11 bf 0x5d6c // 5d6c <__strcpy_fast+0x7c> + 5d4c: b467 st.w r3, (r4, 0x1c) + 5d4e: 241f addi r4, 32 + 5d50: 211f addi r1, 32 + 5d52: 07de br 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d54: 2403 addi r4, 4 + 5d56: 040c br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d58: 2407 addi r4, 8 + 5d5a: 040a br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d5c: 240b addi r4, 12 + 5d5e: 0408 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d60: 240f addi r4, 16 + 5d62: 0406 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d64: 2413 addi r4, 20 + 5d66: 0404 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d68: 2417 addi r4, 24 + 5d6a: 0402 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d6c: 241b addi r4, 28 + 5d6e: 3118 movi r1, 24 + 5d70: 6c8f mov r2, r3 + 5d72: 7084 lsl r2, r1 + 5d74: 7085 lsr r2, r1 + 5d76: a440 st.b r2, (r4, 0x0) + 5d78: 3a40 cmpnei r2, 0 + 5d7a: 0c12 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d7c: 3110 movi r1, 16 + 5d7e: 6c8f mov r2, r3 + 5d80: 7084 lsl r2, r1 + 5d82: 3118 movi r1, 24 + 5d84: 7085 lsr r2, r1 + 5d86: a441 st.b r2, (r4, 0x1) + 5d88: 3a40 cmpnei r2, 0 + 5d8a: 0c0a bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d8c: 3108 movi r1, 8 + 5d8e: 6c8f mov r2, r3 + 5d90: 7084 lsl r2, r1 + 5d92: 3118 movi r1, 24 + 5d94: 7085 lsr r2, r1 + 5d96: a442 st.b r2, (r4, 0x2) + 5d98: 3a40 cmpnei r2, 0 + 5d9a: 0c02 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d9c: b460 st.w r3, (r4, 0x0) + 5d9e: 1481 pop r4 + +00005da0 <__GI_strchr>: + 5da0: 8040 ld.b r2, (r0, 0x0) + 5da2: 644a cmpne r2, r1 + 5da4: 0c06 bf 0x5db0 // 5db0 <__GI_strchr+0x10> + 5da6: 3a40 cmpnei r2, 0 + 5da8: 0c03 bf 0x5dae // 5dae <__GI_strchr+0xe> + 5daa: 2000 addi r0, 1 + 5dac: 07fa br 0x5da0 // 5da0 <__GI_strchr> + 5dae: 6c0b mov r0, r2 + 5db0: 783c jmp r15 + ... + +00005db4 <__GI_strerror>: + 5db4: 338f movi r3, 143 + 5db6: 640c cmphs r3, r0 + 5db8: 0c06 bf 0x5dc4 // 5dc4 <__GI_strerror+0x10> + 5dba: 4002 lsli r0, r0, 2 + 5dbc: 1023 lrw r1, 0xad0c // 5dc8 <__GI_strerror+0x14> + 5dbe: 6004 addu r0, r1 + 5dc0: 9000 ld.w r0, (r0, 0x0) + 5dc2: 783c jmp r15 + 5dc4: 1002 lrw r0, 0xaf89 // 5dcc <__GI_strerror+0x18> + 5dc6: 07fe br 0x5dc2 // 5dc2 <__GI_strerror+0xe> + 5dc8: 0000ad0c .long 0x0000ad0c + 5dcc: 0000af89 .long 0x0000af89 + +00005dd0 <__isinf>: + 5dd0: 3840 cmpnei r0, 0 + 5dd2: 6c83 mov r2, r0 + 5dd4: 6cc7 mov r3, r1 + 5dd6: 0804 bt 0x5dde // 5dde <__isinf+0xe> + 5dd8: 1028 lrw r1, 0x7ff00000 // 5df8 <__isinf+0x28> + 5dda: 644e cmpne r3, r1 + 5ddc: 0c0b bf 0x5df2 // 5df2 <__isinf+0x22> + 5dde: 3000 movi r0, 0 + 5de0: 1027 lrw r1, 0xfff00000 // 5dfc <__isinf+0x2c> + 5de2: 6c81 xor r2, r0 + 5de4: 6cc5 xor r3, r1 + 5de6: 6c8c or r2, r3 + 5de8: 3a40 cmpnei r2, 0 + 5dea: 64c3 mvcv r3 + 5dec: 3000 movi r0, 0 + 5dee: 600e subu r0, r3 + 5df0: 783c jmp r15 + 5df2: 3001 movi r0, 1 + 5df4: 07fe br 0x5df0 // 5df0 <__isinf+0x20> + 5df6: 0000 bkpt + 5df8: 7ff00000 .long 0x7ff00000 + 5dfc: fff00000 .long 0xfff00000 + +00005e00 <__eqdf2>: + 5e00: 14d0 push r15 + 5e02: 142e subi r14, r14, 56 + 5e04: b800 st.w r0, (r14, 0x0) + 5e06: b821 st.w r1, (r14, 0x4) + 5e08: 6c3b mov r0, r14 + 5e0a: 1904 addi r1, r14, 16 + 5e0c: b863 st.w r3, (r14, 0xc) + 5e0e: b842 st.w r2, (r14, 0x8) + 5e10: e3fff4a0 bsr 0x4750 // 4750 <__unpack_d> + 5e14: 1909 addi r1, r14, 36 + 5e16: 1802 addi r0, r14, 8 + 5e18: e3fff49c bsr 0x4750 // 4750 <__unpack_d> + 5e1c: 9864 ld.w r3, (r14, 0x10) + 5e1e: 3b01 cmphsi r3, 2 + 5e20: 0c0a bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e22: 9869 ld.w r3, (r14, 0x24) + 5e24: 3b01 cmphsi r3, 2 + 5e26: 0c07 bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e28: 1909 addi r1, r14, 36 + 5e2a: 1804 addi r0, r14, 16 + 5e2c: e3fff4f4 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e30: 140e addi r14, r14, 56 + 5e32: 1490 pop r15 + 5e34: 3001 movi r0, 1 + 5e36: 140e addi r14, r14, 56 + 5e38: 1490 pop r15 + ... + +00005e3c <__ltdf2>: + 5e3c: 14d0 push r15 + 5e3e: 142e subi r14, r14, 56 + 5e40: b800 st.w r0, (r14, 0x0) + 5e42: b821 st.w r1, (r14, 0x4) + 5e44: 6c3b mov r0, r14 + 5e46: 1904 addi r1, r14, 16 + 5e48: b863 st.w r3, (r14, 0xc) + 5e4a: b842 st.w r2, (r14, 0x8) + 5e4c: e3fff482 bsr 0x4750 // 4750 <__unpack_d> + 5e50: 1909 addi r1, r14, 36 + 5e52: 1802 addi r0, r14, 8 + 5e54: e3fff47e bsr 0x4750 // 4750 <__unpack_d> + 5e58: 9864 ld.w r3, (r14, 0x10) + 5e5a: 3b01 cmphsi r3, 2 + 5e5c: 0c0a bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e5e: 9869 ld.w r3, (r14, 0x24) + 5e60: 3b01 cmphsi r3, 2 + 5e62: 0c07 bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e64: 1909 addi r1, r14, 36 + 5e66: 1804 addi r0, r14, 16 + 5e68: e3fff4d6 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e6c: 140e addi r14, r14, 56 + 5e6e: 1490 pop r15 + 5e70: 3001 movi r0, 1 + 5e72: 140e addi r14, r14, 56 + 5e74: 1490 pop r15 + +Disassembly of section .text.__main: + +00005e78 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 5e78: 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 ) { + 5e7a: 1009 lrw r0, 0x20000000 // 5e9c <__main+0x24> + 5e7c: 1029 lrw r1, 0xc258 // 5ea0 <__main+0x28> + 5e7e: 6442 cmpne r0, r1 + 5e80: 0c05 bf 0x5e8a // 5e8a <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 5e82: 1049 lrw r2, 0x2000009c // 5ea4 <__main+0x2c> + 5e84: 6082 subu r2, r0 + 5e86: e3fff5ad bsr 0x49e0 // 49e0 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 5e8a: 1048 lrw r2, 0x20000afc // 5ea8 <__main+0x30> + 5e8c: 1008 lrw r0, 0x200000bc // 5eac <__main+0x34> + 5e8e: 640a cmpne r2, r0 + 5e90: 0c05 bf 0x5e9a // 5e9a <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 5e92: 6082 subu r2, r0 + 5e94: 3100 movi r1, 0 + 5e96: e3fff561 bsr 0x4958 // 4958 <__memset_fast> + } + + +} + 5e9a: 1490 pop r15 + 5e9c: 20000000 .long 0x20000000 + 5ea0: 0000c258 .long 0x0000c258 + 5ea4: 2000009c .long 0x2000009c + 5ea8: 20000afc .long 0x20000afc + 5eac: 200000bc .long 0x200000bc + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00005eb0 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 5eb0: 3848 cmpnei r0, 8 + 5eb2: 080a bt 0x5ec6 // 5ec6 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 5eb4: 107a lrw r3, 0x2000004c // 5f1c + 5eb6: 32ff movi r2, 255 + 5eb8: 9320 ld.w r1, (r3, 0x0) + 5eba: 9160 ld.w r3, (r1, 0x0) + 5ebc: 424c lsli r2, r2, 12 + 5ebe: 68c9 andn r3, r2 + 5ec0: 3bae bseti r3, 14 + 5ec2: 3bb2 bseti r3, 18 + 5ec4: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 5ec6: 1077 lrw r3, 0x2000005c // 5f20 + 5ec8: 9360 ld.w r3, (r3, 0x0) + 5eca: 9341 ld.w r2, (r3, 0x4) + 5ecc: 6c80 or r2, r0 + 5ece: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 5ed0: 9343 ld.w r2, (r3, 0xc) + 5ed2: 6880 and r2, r0 + 5ed4: 3a40 cmpnei r2, 0 + 5ed6: 0ffd bf 0x5ed0 // 5ed0 + switch(ENDIS_X) + 5ed8: 3842 cmpnei r0, 2 + 5eda: 0807 bt 0x5ee8 // 5ee8 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 5edc: 3102 movi r1, 2 + 5ede: 9344 ld.w r2, (r3, 0x10) + 5ee0: 6884 and r2, r1 + 5ee2: 3a40 cmpnei r2, 0 + 5ee4: 0ffd bf 0x5ede // 5ede + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 5ee6: 783c jmp r15 + switch(ENDIS_X) + 5ee8: 3802 cmphsi r0, 3 + 5eea: 0809 bt 0x5efc // 5efc + 5eec: 3841 cmpnei r0, 1 + 5eee: 0bfc bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 5ef0: 3101 movi r1, 1 + 5ef2: 9344 ld.w r2, (r3, 0x10) + 5ef4: 6884 and r2, r1 + 5ef6: 3a40 cmpnei r2, 0 + 5ef8: 0ffd bf 0x5ef2 // 5ef2 + 5efa: 07f6 br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5efc: 3848 cmpnei r0, 8 + 5efe: 0807 bt 0x5f0c // 5f0c + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 5f00: 3108 movi r1, 8 + 5f02: 9344 ld.w r2, (r3, 0x10) + 5f04: 6884 and r2, r1 + 5f06: 3a40 cmpnei r2, 0 + 5f08: 0ffd bf 0x5f02 // 5f02 + 5f0a: 07ee br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5f0c: 3850 cmpnei r0, 16 + 5f0e: 0bec bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 5f10: 3110 movi r1, 16 + 5f12: 9344 ld.w r2, (r3, 0x10) + 5f14: 6884 and r2, r1 + 5f16: 3a40 cmpnei r2, 0 + 5f18: 0ffd bf 0x5f12 // 5f12 + 5f1a: 07e6 br 0x5ee6 // 5ee6 + 5f1c: 2000004c .long 0x2000004c + 5f20: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00005f24 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 5f24: 106c lrw r3, 0x2000005c // 5f54 + 5f26: 104d lrw r2, 0xffff // 5f58 + 5f28: 9360 ld.w r3, (r3, 0x0) + 5f2a: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 5f2c: 104c lrw r2, 0xffffff // 5f5c + 5f2e: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 5f30: 104c lrw r2, 0xd22d0000 // 5f60 + 5f32: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 5f34: 104c lrw r2, 0x70ff3bff // 5f64 + 5f36: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 5f38: 320a movi r2, 10 + 5f3a: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f3c: 102b lrw r1, 0x70c // 5f68 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 5f3e: 237f addi r3, 128 + 5f40: 3200 movi r2, 0 + 5f42: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 5f44: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f46: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 5f48: 1029 lrw r1, 0x3fe // 5f6c + 5f4a: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 5f4c: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 5f4e: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 5f50: b35f st.w r2, (r3, 0x7c) +} + 5f52: 783c jmp r15 + 5f54: 2000005c .long 0x2000005c + 5f58: 0000ffff .long 0x0000ffff + 5f5c: 00ffffff .long 0x00ffffff + 5f60: d22d0000 .long 0xd22d0000 + 5f64: 70ff3bff .long 0x70ff3bff + 5f68: 0000070c .long 0x0000070c + 5f6c: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00005f70 : +{ + 5f70: 14d0 push r15 + if (NewState != DISABLE) + 5f72: 3840 cmpnei r0, 0 + 5f74: 0c05 bf 0x5f7e // 5f7e + 5f76: 6c07 mov r0, r1 + 5f78: e3ffff9c bsr 0x5eb0 // 5eb0 +} + 5f7c: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 5f7e: 1068 lrw r3, 0x2000005c // 5f9c + 5f80: 9360 ld.w r3, (r3, 0x0) + 5f82: 9342 ld.w r2, (r3, 0x8) + 5f84: 6c84 or r2, r1 + 5f86: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 5f88: 9343 ld.w r2, (r3, 0xc) + 5f8a: 6884 and r2, r1 + 5f8c: 3a40 cmpnei r2, 0 + 5f8e: 0bfd bt 0x5f88 // 5f88 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 5f90: 237f addi r3, 128 + 5f92: 9301 ld.w r0, (r3, 0x4) + 5f94: 6c40 or r1, r0 + 5f96: b321 st.w r1, (r3, 0x4) +} + 5f98: 07f2 br 0x5f7c // 5f7c + 5f9a: 0000 bkpt + 5f9c: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00005fa0 : +//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 ) +{ + 5fa0: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 5fa2: 3b48 cmpnei r3, 8 + 5fa4: 0828 bt 0x5ff4 // 5ff4 + { + IFC->CEDR=0X01; //CLKEN + 5fa6: 109d lrw r4, 0x20000060 // 6018 + 5fa8: 3501 movi r5, 1 + 5faa: 9480 ld.w r4, (r4, 0x0) + 5fac: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 5fae: 3504 movi r5, 4 + 5fb0: 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)) + 5fb2: 5b83 subi r4, r3, 1 + 5fb4: 3c01 cmphsi r4, 2 + 5fb6: 0c2b bf 0x600c // 600c + { + 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)) + 5fb8: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 5fba: 3c04 cmphsi r4, 5 + 5fbc: 0c03 bf 0x5fc2 // 5fc2 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 5fbe: 3b4b cmpnei r3, 11 + 5fc0: 0807 bt 0x5fce // 5fce + { + IFC->CEDR=0X01; //CLKEN + 5fc2: 1076 lrw r3, 0x20000060 // 6018 + 5fc4: 3401 movi r4, 1 + 5fc6: 9360 ld.w r3, (r3, 0x0) + 5fc8: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 5fca: 3400 movi r4, 0 + 5fcc: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fce: 1094 lrw r4, 0xd22d0000 // 601c + 5fd0: 6c10 or r0, r4 + 5fd2: 1074 lrw r3, 0x2000005c // 6020 + 5fd4: 6c40 or r1, r0 + 5fd6: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fd8: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fda: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fdc: 4001 lsli r0, r0, 1 + 5fde: 9324 ld.w r1, (r3, 0x10) + 5fe0: 6840 and r1, r0 + 5fe2: 3940 cmpnei r1, 0 + 5fe4: 0ffd bf 0x5fde // 5fde + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 5fe6: 1030 lrw r1, 0xc33c0000 // 6024 + 5fe8: 6c48 or r1, r2 + 5fea: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 5fec: 9328 ld.w r1, (r3, 0x20) + 5fee: 644a cmpne r2, r1 + 5ff0: 0bfe bt 0x5fec // 5fec +} + 5ff2: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 5ff4: 3b40 cmpnei r3, 0 + 5ff6: 0c03 bf 0x5ffc // 5ffc + 5ff8: 3b49 cmpnei r3, 9 + 5ffa: 0807 bt 0x6008 // 6008 + IFC->CEDR=0X01; //CLKEN + 5ffc: 1087 lrw r4, 0x20000060 // 6018 + 5ffe: 3501 movi r5, 1 + 6000: 9480 ld.w r4, (r4, 0x0) + 6002: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 6004: 3502 movi r5, 2 + 6006: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 6008: 3b4a cmpnei r3, 10 + 600a: 0bd4 bt 0x5fb2 // 5fb2 + IFC->CEDR=0X01; //CLKEN + 600c: 1083 lrw r4, 0x20000060 // 6018 + 600e: 3501 movi r5, 1 + 6010: 9480 ld.w r4, (r4, 0x0) + 6012: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 6014: b4a5 st.w r5, (r4, 0x14) + 6016: 07d1 br 0x5fb8 // 5fb8 + 6018: 20000060 .long 0x20000060 + 601c: d22d0000 .long 0xd22d0000 + 6020: 2000005c .long 0x2000005c + 6024: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00006028 : +//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) +{ + 6028: 14d1 push r4, r15 + 602a: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 602c: 3110 movi r1, 16 + 602e: 3000 movi r0, 0 + 6030: e3ffffa0 bsr 0x5f70 // 5f70 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 6034: 1066 lrw r3, 0x2000005c // 604c + 6036: 9360 ld.w r3, (r3, 0x0) + 6038: 9319 ld.w r0, (r3, 0x64) + 603a: 3884 bclri r0, 4 + 603c: 3885 bclri r0, 5 + 603e: 6c10 or r0, r4 + 6040: b319 st.w r0, (r3, 0x64) + 6042: 3010 movi r0, 16 + 6044: e3ffff36 bsr 0x5eb0 // 5eb0 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 6048: 1491 pop r4, r15 + 604a: 0000 bkpt + 604c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00006050 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 6050: 106c lrw r3, 0x2000005c // 6080 + if(NewState != DISABLE) + 6052: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 6054: 9360 ld.w r3, (r3, 0x0) + 6056: 237f addi r3, 128 + if(NewState != DISABLE) + 6058: 0c0a bf 0x606c // 606c + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605a: 104b lrw r2, 0x78870000 // 6084 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 605c: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605e: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 6060: 4125 lsli r1, r1, 5 + 6062: 934d ld.w r2, (r3, 0x34) + 6064: 6884 and r2, r1 + 6066: 3a40 cmpnei r2, 0 + 6068: 0ffd bf 0x6062 // 6062 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 606a: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 606c: 1047 lrw r2, 0x788755aa // 6088 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 606e: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 6070: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 6072: 4125 lsli r1, r1, 5 + 6074: 934d ld.w r2, (r3, 0x34) + 6076: 6884 and r2, r1 + 6078: 3a40 cmpnei r2, 0 + 607a: 0bfd bt 0x6074 // 6074 + 607c: 07f7 br 0x606a // 606a + 607e: 0000 bkpt + 6080: 2000005c .long 0x2000005c + 6084: 78870000 .long 0x78870000 + 6088: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +0000608c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 608c: 1064 lrw r3, 0x2000005c // 609c + 608e: 32b4 movi r2, 180 + 6090: 9360 ld.w r3, (r3, 0x0) + 6092: 237f addi r3, 128 + 6094: 4257 lsli r2, r2, 23 + 6096: b34e st.w r2, (r3, 0x38) +} + 6098: 783c jmp r15 + 609a: 0000 bkpt + 609c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +000060a0 : +//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; + 60a0: 1044 lrw r2, 0x87780000 // 60b0 + 60a2: 1065 lrw r3, 0x2000005c // 60b4 + 60a4: 6c48 or r1, r2 + 60a6: 9360 ld.w r3, (r3, 0x0) + 60a8: 6c04 or r0, r1 + 60aa: 237f addi r3, 128 + 60ac: b30d st.w r0, (r3, 0x34) +} + 60ae: 783c jmp r15 + 60b0: 87780000 .long 0x87780000 + 60b4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +000060b8 : +//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) +{ + 60b8: 14c3 push r4-r6 + 60ba: 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; + 60bc: 10c5 lrw r6, 0xb44b0000 // 60d0 + 60be: 6d18 or r4, r6 + 60c0: 6cd0 or r3, r4 + 60c2: 6c8c or r2, r3 + 60c4: 6c48 or r1, r2 + 60c6: 10a4 lrw r5, 0x2000005c // 60d4 + 60c8: 6c04 or r0, r1 + 60ca: 95a0 ld.w r5, (r5, 0x0) + 60cc: b513 st.w r0, (r5, 0x4c) +} + 60ce: 1483 pop r4-r6 + 60d0: b44b0000 .long 0xb44b0000 + 60d4: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +000060d8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 60d8: 1066 lrw r3, 0x2000005c // 60f0 + 60da: 3180 movi r1, 128 + 60dc: 9360 ld.w r3, (r3, 0x0) + 60de: 3280 movi r2, 128 + 60e0: 604c addu r1, r3 + 60e2: 4244 lsli r2, r2, 4 + 60e4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 60e6: 935d ld.w r2, (r3, 0x74) + 60e8: 3aab bseti r2, 11 + 60ea: b35d st.w r2, (r3, 0x74) +} + 60ec: 783c jmp r15 + 60ee: 0000 bkpt + 60f0: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +000060f4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 60f4: 1066 lrw r3, 0x2000005c // 610c + 60f6: 3180 movi r1, 128 + 60f8: 9360 ld.w r3, (r3, 0x0) + 60fa: 3280 movi r2, 128 + 60fc: 604c addu r1, r3 + 60fe: 4241 lsli r2, r2, 1 + 6100: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 6102: 935d ld.w r2, (r3, 0x74) + 6104: 3aa8 bseti r2, 8 + 6106: b35d st.w r2, (r3, 0x74) +} + 6108: 783c jmp r15 + 610a: 0000 bkpt + 610c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00006110 : +//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) + 6110: 3a40 cmpnei r2, 0 + 6112: 0c04 bf 0x611a // 611a + 6114: 3a41 cmpnei r2, 1 + 6116: 0c0e bf 0x6132 // 6132 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 6118: 783c jmp r15 + 611a: 106d lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 611c: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 611e: 9360 ld.w r3, (r3, 0x0) + 6120: 237f addi r3, 128 + 6122: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 6124: 0c04 bf 0x612c // 612c + SYSCON->EXIRT |=EXIPIN; + 6126: 6c48 or r1, r2 + 6128: b325 st.w r1, (r3, 0x14) + 612a: 07f7 br 0x6118 // 6118 + SYSCON->EXIRT &=~EXIPIN; + 612c: 6885 andn r2, r1 + 612e: b345 st.w r2, (r3, 0x14) + 6130: 07f4 br 0x6118 // 6118 + 6132: 1067 lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 6134: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 6136: 9360 ld.w r3, (r3, 0x0) + 6138: 237f addi r3, 128 + 613a: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 613c: 0c04 bf 0x6144 // 6144 + SYSCON->EXIFT |=EXIPIN; + 613e: 6c48 or r1, r2 + 6140: b326 st.w r1, (r3, 0x18) + 6142: 07eb br 0x6118 // 6118 + SYSCON->EXIFT &=~EXIPIN; + 6144: 6885 andn r2, r1 + 6146: b346 st.w r2, (r3, 0x18) +} + 6148: 07e8 br 0x6118 // 6118 + 614a: 0000 bkpt + 614c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00006150 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 6150: 106b lrw r3, 0x2000005c // 617c + 6152: 104c lrw r2, 0x3fff // 6180 + 6154: 9360 ld.w r3, (r3, 0x0) + 6156: 237f addi r3, 128 + if(NewState != DISABLE) + 6158: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 615a: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 615c: 0c0c bf 0x6174 // 6174 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 615e: 9347 ld.w r2, (r3, 0x1c) + 6160: 6c84 or r2, r1 + 6162: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 6164: 9349 ld.w r2, (r3, 0x24) + 6166: 6884 and r2, r1 + 6168: 3a40 cmpnei r2, 0 + 616a: 0ffd bf 0x6164 // 6164 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 616c: 934b ld.w r2, (r3, 0x2c) + 616e: 6c48 or r1, r2 + 6170: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 6172: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 6174: 9348 ld.w r2, (r3, 0x20) + 6176: 6c48 or r1, r2 + 6178: b328 st.w r1, (r3, 0x20) +} + 617a: 07fc br 0x6172 // 6172 + 617c: 2000005c .long 0x2000005c + 6180: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00006184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 6184: b02b st.w r1, (r0, 0x2c) +} + 6186: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00006188 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 6188: 3380 movi r3, 128 + 618a: 4370 lsli r3, r3, 16 + 618c: 1042 lrw r2, 0xe000e100 // 6194 + 618e: b260 st.w r3, (r2, 0x0) +} + 6190: 783c jmp r15 + 6192: 0000 bkpt + 6194: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00006198 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 6198: 3202 movi r2, 2 + 619a: 1062 lrw r3, 0xe000e100 // 61a0 + 619c: b340 st.w r2, (r3, 0x0) +} + 619e: 783c jmp r15 + 61a0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +000061a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 61a4: 3202 movi r2, 2 + 61a6: 1062 lrw r3, 0xe000e180 // 61ac + 61a8: b340 st.w r2, (r3, 0x0) +} + 61aa: 783c jmp r15 + 61ac: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_Software_Reset: + +000061b0 : +//EntryParameter:None +//ReturnValue:MCU reset +/*************************************************************/ +void SYSCON_Software_Reset(void) +{ + SYSCON->IDCCR=IDCCR_KEY|SWRST; + 61b0: 1063 lrw r3, 0x2000005c // 61bc + 61b2: 1044 lrw r2, 0xe11e0080 // 61c0 + 61b4: 9360 ld.w r3, (r3, 0x0) + 61b6: b340 st.w r2, (r3, 0x0) +} + 61b8: 783c jmp r15 + 61ba: 0000 bkpt + 61bc: 2000005c .long 0x2000005c + 61c0: e11e0080 .long 0xe11e0080 + +Disassembly of section .text.SYSCON_INT_Priority: + +000061c4 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61c4: 1066 lrw r3, 0xe000e400 // 61dc + 61c6: 1047 lrw r2, 0xc0c0c0c0 // 61e0 + 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 + 61c8: 1027 lrw r1, 0xc0c000c0 // 61e4 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61ca: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 61cc: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 61ce: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 61d0: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 61d2: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 61d4: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 61d6: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 61d8: b347 st.w r2, (r3, 0x1c) +} + 61da: 783c jmp r15 + 61dc: e000e400 .long 0xe000e400 + 61e0: c0c0c0c0 .long 0xc0c0c0c0 + 61e4: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000061e8 : +//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) +{ + 61e8: 14c1 push r4 + 61ea: 4862 lsri r3, r0, 2 + 61ec: 4342 lsli r2, r3, 2 + 61ee: 106a lrw r3, 0x20000064 // 6214 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 61f0: 3403 movi r4, 3 + 61f2: 9360 ld.w r3, (r3, 0x0) + 61f4: 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)); + 6206: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 620a: 7040 lsl r1, r0 + 620c: 6c48 or r1, r2 + 620e: b320 st.w r1, (r3, 0x0) +} + 6210: 1481 pop r4 + 6212: 0000 bkpt + 6214: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +00006218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 6218: 1075 lrw r3, 0x2000004c // 626c + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 621a: 1036 lrw r1, 0x20000048 // 6270 + 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; + 621c: 1016 lrw r0, 0xffff // 6274 + GPIOA0->CONLR &= 0xFF000000; + 621e: 9340 ld.w r2, (r3, 0x0) + 6220: 9260 ld.w r3, (r2, 0x0) + 6222: 4b78 lsri r3, r3, 24 + 6224: 4378 lsli r3, r3, 24 + 6226: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 6228: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 622a: 3300 movi r3, 0 + 622c: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 622e: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 6230: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 6232: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 6234: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 6236: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 6238: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 623a: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 623c: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 623e: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 6240: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 6242: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 6244: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 6246: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 6248: 303f movi r0, 63 + 624a: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 624c: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 624e: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 6250: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 6252: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 6254: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 6256: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 6258: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 625a: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 625c: 1047 lrw r2, 0x20000044 // 6278 + 625e: 9240 ld.w r2, (r2, 0x0) + 6260: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 6262: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 6264: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 6266: 330f movi r3, 15 + 6268: b263 st.w r3, (r2, 0xc) +} + 626a: 783c jmp r15 + 626c: 2000004c .long 0x2000004c + 6270: 20000048 .long 0x20000048 + 6274: 0000ffff .long 0x0000ffff + 6278: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +0000627c : +//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) +{ + 627c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 627e: 3907 cmphsi r1, 8 +{ + 6280: 6d03 mov r4, r0 + if(PinNum<8) + 6282: 0830 bt 0x62e2 // 62e2 + { + switch (PinNum) + 6284: 5903 subi r0, r1, 1 + 6286: 3806 cmphsi r0, 7 + 6288: 0827 bt 0x62d6 // 62d6 + 628a: e3ffe939 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 628e: 1004 .short 0x1004 + 6290: 1d1a1613 .long 0x1d1a1613 + 6294: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 6296: 3300 movi r3, 0 + 6298: 3104 movi r1, 4 + 629a: 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) + 629c: 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< + 62b2: 07f5 br 0x629c // 629c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 62b4: 310c movi r1, 12 + 62b6: 1166 lrw r3, 0xffff0fff // 634c + 62b8: 07f2 br 0x629c // 629c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 62ba: 3110 movi r1, 16 + 62bc: 1165 lrw r3, 0xfff10000 // 6350 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62be: 2b00 subi r3, 1 + 62c0: 07ee br 0x629c // 629c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 62c2: 3114 movi r1, 20 + 62c4: 1164 lrw r3, 0xff100000 // 6354 + 62c6: 07fc br 0x62be // 62be + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62c8: 33f1 movi r3, 241 + 62ca: 3118 movi r1, 24 + 62cc: 4378 lsli r3, r3, 24 + 62ce: 07f8 br 0x62be // 62be + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 62d0: 311c movi r1, 28 + 62d2: 1162 lrw r3, 0xfffffff // 6358 + 62d4: 07e4 br 0x629c // 629c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 62d6: 3300 movi r3, 0 + 62d8: 3100 movi r1, 0 + 62da: 2b0f subi r3, 16 + 62dc: 07e0 br 0x629c // 629c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 62e2: 390f cmphsi r1, 16 + 62e4: 0be4 bt 0x62ac // 62ac + switch (PinNum) + 62e6: 2908 subi r1, 9 + 62e8: 3906 cmphsi r1, 7 + 62ea: 6c07 mov r0, r1 + 62ec: 0827 bt 0x633a // 633a + 62ee: e3ffe907 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 62f2: 1004 .short 0x1004 + 62f4: 1d1a1613 .long 0x1d1a1613 + 62f8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 62fa: 3300 movi r3, 0 + 62fc: 3104 movi r1, 4 + 62fe: 2bf0 subi r3, 241 + if (Dir) + 6300: 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; + 6312: 3108 movi r1, 8 + 6314: 106d lrw r3, 0xfffff0ff // 6348 + 6316: 07f5 br 0x6300 // 6300 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 6318: 310c movi r1, 12 + 631a: 106d lrw r3, 0xffff0fff // 634c + 631c: 07f2 br 0x6300 // 6300 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 631e: 3110 movi r1, 16 + 6320: 106c lrw r3, 0xfff10000 // 6350 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 6322: 2b00 subi r3, 1 + 6324: 07ee br 0x6300 // 6300 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 6326: 3114 movi r1, 20 + 6328: 106b lrw r3, 0xff100000 // 6354 + 632a: 07fc br 0x6322 // 6322 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 632c: 33f1 movi r3, 241 + 632e: 3118 movi r1, 24 + 6330: 4378 lsli r3, r3, 24 + 6332: 07f8 br 0x6322 // 6322 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 6334: 311c movi r1, 28 + 6336: 1069 lrw r3, 0xfffffff // 6358 + 6338: 07e4 br 0x6300 // 6300 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 633a: 3300 movi r3, 0 + 633c: 3100 movi r1, 0 + 633e: 2b0f subi r3, 16 + 6340: 07e0 br 0x6300 // 6300 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 6346: 0000 bkpt + 6348: fffff0ff .long 0xfffff0ff + 634c: ffff0fff .long 0xffff0fff + 6350: fff10000 .long 0xfff10000 + 6354: ff100000 .long 0xff100000 + 6358: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000635c : +//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)); + 635c: 4121 lsli r1, r1, 1 + 635e: 3203 movi r2, 3 + 6360: 9068 ld.w r3, (r0, 0x20) + 6362: 7084 lsl r2, r1 + 6364: 68c9 andn r3, r2 + 6366: 3201 movi r2, 1 + 6368: 7084 lsl r2, r1 + 636a: 6cc8 or r3, r2 + 636c: b068 st.w r3, (r0, 0x20) +} + 636e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00006370 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 6370: 4121 lsli r1, r1, 1 + 6372: 3301 movi r3, 1 + 6374: 9049 ld.w r2, (r0, 0x24) + 6376: 70c4 lsl r3, r1 + 6378: 6cc8 or r3, r2 + 637a: b069 st.w r3, (r0, 0x24) +} + 637c: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00006380 : +//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) +{ + 6380: 14c1 push r4 + 6382: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 6384: 3a0f cmphsi r2, 16 + 6386: 084f bt 0x6424 // 6424 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 6388: 6ccb mov r3, r2 + 638a: 3b83 bclri r3, 3 + 638c: 3b40 cmpnei r3, 0 + 638e: 0813 bt 0x63b4 // 63b4 + { + R_data_temp=0xfffffff0; + 6390: 2b0f subi r3, 16 + 6392: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 6394: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 6396: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 6398: dc6e0003 st.b r3, (r14, 0x3) + 639c: 1176 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x<8) + 639e: 0c38 bf 0x640e // 640e + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 63b4: 3b41 cmpnei r3, 1 + 63b6: 0806 bt 0x63c2 // 63c2 + R_data_temp=0xffffff0f; + 63b8: 3300 movi r3, 0 + 63ba: 2bf0 subi r3, 241 + 63bc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 63be: 3304 movi r3, 4 + 63c0: 07eb br 0x6396 // 6396 + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 63c2: 3b42 cmpnei r3, 2 + 63c4: 0805 bt 0x63ce // 63ce + R_data_temp=0xfffff0ff; + 63c6: 116d lrw r3, 0xfffff0ff // 6478 + 63c8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 63ca: 3308 movi r3, 8 + 63cc: 07e5 br 0x6396 // 6396 + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 63ce: 3b43 cmpnei r3, 3 + 63d0: 0805 bt 0x63da // 63da + R_data_temp=0xffff0fff; + 63d2: 116b lrw r3, 0xffff0fff // 647c + 63d4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 63d6: 330c movi r3, 12 + 63d8: 07df br 0x6396 // 6396 + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 63da: 3b44 cmpnei r3, 4 + 63dc: 0806 bt 0x63e8 // 63e8 + R_data_temp=0xfff0ffff; + 63de: 1169 lrw r3, 0xfff10000 // 6480 + 63e0: 2b00 subi r3, 1 + 63e2: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 63e4: 3310 movi r3, 16 + 63e6: 07d8 br 0x6396 // 6396 + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 63e8: 3b45 cmpnei r3, 5 + 63ea: 0806 bt 0x63f6 // 63f6 + R_data_temp=0xff0fffff; + 63ec: 1166 lrw r3, 0xff100000 // 6484 + 63ee: 2b00 subi r3, 1 + 63f0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 63f2: 3314 movi r3, 20 + 63f4: 07d1 br 0x6396 // 6396 + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 63f6: 3b46 cmpnei r3, 6 + 63f8: 0807 bt 0x6406 // 6406 + R_data_temp=0xf0ffffff; + 63fa: 33f1 movi r3, 241 + 63fc: 4378 lsli r3, r3, 24 + 63fe: 2b00 subi r3, 1 + 6400: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 6402: 3318 movi r3, 24 + 6404: 07c9 br 0x6396 // 6396 + R_data_temp=0x0fffffff; + 6406: 1161 lrw r3, 0xfffffff // 6488 + 6408: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 640a: 331c movi r3, 28 + 640c: 07c5 br 0x6396 // 6396 + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 6420: 1402 addi r14, r14, 8 + 6422: 1481 pop r4 + else if(Selete_EXI_x<20) + 6424: 3a13 cmphsi r2, 20 + 6426: 0bfd bt 0x6420 // 6420 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 6428: 3840 cmpnei r0, 0 + 642a: 0814 bt 0x6452 // 6452 + 642c: 3300 movi r3, 0 + 642e: 2b0f subi r3, 16 + 6430: 60c8 addu r3, r2 + 6432: 3b01 cmphsi r3, 2 + 6434: 0bf6 bt 0x6420 // 6420 + if(Selete_EXI_x==16) + 6436: 3a50 cmpnei r2, 16 + 6438: 106f lrw r3, 0x20000044 // 6474 + 643a: 0806 bt 0x6446 // 6446 + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 643c: 9340 ld.w r2, (r3, 0x0) + 643e: 9262 ld.w r3, (r2, 0x8) + 6440: 6c4c or r1, r3 + 6442: b222 st.w r1, (r2, 0x8) + 6444: 07ee br 0x6420 // 6420 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 6446: 9360 ld.w r3, (r3, 0x0) + 6448: 9342 ld.w r2, (r3, 0x8) + 644a: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 644c: 6c48 or r1, r2 + 644e: b322 st.w r1, (r3, 0x8) +} + 6450: 07e8 br 0x6420 // 6420 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 6452: 3842 cmpnei r0, 2 + 6454: 0be6 bt 0x6420 // 6420 + 6456: 3300 movi r3, 0 + 6458: 2b11 subi r3, 18 + 645a: 60c8 addu r3, r2 + 645c: 3b01 cmphsi r3, 2 + 645e: 0be1 bt 0x6420 // 6420 + 6460: 1065 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x==18) + 6462: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 6464: 9360 ld.w r3, (r3, 0x0) + 6466: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 6468: 0803 bt 0x646e // 646e + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 646a: 4128 lsli r1, r1, 8 + 646c: 07f0 br 0x644c // 644c + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 646e: 412c lsli r1, r1, 12 + 6470: 07ee br 0x644c // 644c + 6472: 0000 bkpt + 6474: 20000044 .long 0x20000044 + 6478: fffff0ff .long 0xfffff0ff + 647c: ffff0fff .long 0xffff0fff + 6480: fff10000 .long 0xfff10000 + 6484: ff100000 .long 0xff100000 + 6488: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +0000648c : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 648c: 14d0 push r15 + switch (EXI_IO) + 648e: 380f cmphsi r0, 16 + 6490: 0812 bt 0x64b4 // 64b4 + 6492: 117d lrw r3, 0x2000004c // 6584 + 6494: e3ffe834 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6498: 1d150f08 .long 0x1d150f08 + 649c: 39322b24 .long 0x39322b24 + 64a0: 544c463f .long 0x544c463f + 64a4: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 64a8: 9340 ld.w r2, (r3, 0x0) + 64aa: 9260 ld.w r3, (r2, 0x0) + 64ac: 310f movi r1, 15 + 64ae: 68c5 andn r3, r1 + 64b0: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b2: b260 st.w r3, (r2, 0x0) + 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; + } +} + 64b4: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b6: 9340 ld.w r2, (r3, 0x0) + 64b8: 9260 ld.w r3, (r2, 0x0) + 64ba: 31f0 movi r1, 240 + 64bc: 68c5 andn r3, r1 + 64be: 3ba4 bseti r3, 4 + 64c0: 07f9 br 0x64b2 // 64b2 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 64c2: 9320 ld.w r1, (r3, 0x0) + 64c4: 32f0 movi r2, 240 + 64c6: 9160 ld.w r3, (r1, 0x0) + 64c8: 4244 lsli r2, r2, 4 + 64ca: 68c9 andn r3, r2 + 64cc: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64ce: b160 st.w r3, (r1, 0x0) + 64d0: 07f2 br 0x64b4 // 64b4 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 64d2: 9320 ld.w r1, (r3, 0x0) + 64d4: 32f0 movi r2, 240 + 64d6: 9160 ld.w r3, (r1, 0x0) + 64d8: 4248 lsli r2, r2, 8 + 64da: 68c9 andn r3, r2 + 64dc: 3bac bseti r3, 12 + 64de: 07f8 br 0x64ce // 64ce + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 64e0: 9320 ld.w r1, (r3, 0x0) + 64e2: 32f0 movi r2, 240 + 64e4: 9160 ld.w r3, (r1, 0x0) + 64e6: 424c lsli r2, r2, 12 + 64e8: 68c9 andn r3, r2 + 64ea: 3bb0 bseti r3, 16 + 64ec: 07f1 br 0x64ce // 64ce + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 64ee: 9320 ld.w r1, (r3, 0x0) + 64f0: 32f0 movi r2, 240 + 64f2: 9160 ld.w r3, (r1, 0x0) + 64f4: 4250 lsli r2, r2, 16 + 64f6: 68c9 andn r3, r2 + 64f8: 3bb4 bseti r3, 20 + 64fa: 07ea br 0x64ce // 64ce + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64fc: 9320 ld.w r1, (r3, 0x0) + 64fe: 32f0 movi r2, 240 + 6500: 9160 ld.w r3, (r1, 0x0) + 6502: 4254 lsli r2, r2, 20 + 6504: 68c9 andn r3, r2 + 6506: 3bb8 bseti r3, 24 + 6508: 07e3 br 0x64ce // 64ce + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 650a: 9340 ld.w r2, (r3, 0x0) + 650c: 9260 ld.w r3, (r2, 0x0) + 650e: 4364 lsli r3, r3, 4 + 6510: 4b64 lsri r3, r3, 4 + 6512: 3bbc bseti r3, 28 + 6514: 07cf br 0x64b2 // 64b2 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 6516: 9340 ld.w r2, (r3, 0x0) + 6518: 9261 ld.w r3, (r2, 0x4) + 651a: 310f movi r1, 15 + 651c: 68c5 andn r3, r1 + 651e: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6520: b261 st.w r3, (r2, 0x4) +} + 6522: 07c9 br 0x64b4 // 64b4 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 6524: 9340 ld.w r2, (r3, 0x0) + 6526: 9261 ld.w r3, (r2, 0x4) + 6528: 31f0 movi r1, 240 + 652a: 68c5 andn r3, r1 + 652c: 3ba4 bseti r3, 4 + 652e: 07f9 br 0x6520 // 6520 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 6530: 9320 ld.w r1, (r3, 0x0) + 6532: 32f0 movi r2, 240 + 6534: 9161 ld.w r3, (r1, 0x4) + 6536: 4244 lsli r2, r2, 4 + 6538: 68c9 andn r3, r2 + 653a: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 653c: b161 st.w r3, (r1, 0x4) + 653e: 07bb br 0x64b4 // 64b4 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 6540: 9320 ld.w r1, (r3, 0x0) + 6542: 32f0 movi r2, 240 + 6544: 9161 ld.w r3, (r1, 0x4) + 6546: 4248 lsli r2, r2, 8 + 6548: 68c9 andn r3, r2 + 654a: 3bac bseti r3, 12 + 654c: 07f8 br 0x653c // 653c + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 654e: 9320 ld.w r1, (r3, 0x0) + 6550: 32f0 movi r2, 240 + 6552: 9161 ld.w r3, (r1, 0x4) + 6554: 424c lsli r2, r2, 12 + 6556: 68c9 andn r3, r2 + 6558: 3bb0 bseti r3, 16 + 655a: 07f1 br 0x653c // 653c + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 655c: 9320 ld.w r1, (r3, 0x0) + 655e: 32f0 movi r2, 240 + 6560: 9161 ld.w r3, (r1, 0x4) + 6562: 4250 lsli r2, r2, 16 + 6564: 68c9 andn r3, r2 + 6566: 3bb4 bseti r3, 20 + 6568: 07ea br 0x653c // 653c + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 656a: 9320 ld.w r1, (r3, 0x0) + 656c: 32f0 movi r2, 240 + 656e: 9161 ld.w r3, (r1, 0x4) + 6570: 4254 lsli r2, r2, 20 + 6572: 68c9 andn r3, r2 + 6574: 3bb8 bseti r3, 24 + 6576: 07e3 br 0x653c // 653c + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6578: 9340 ld.w r2, (r3, 0x0) + 657a: 9261 ld.w r3, (r2, 0x4) + 657c: 4364 lsli r3, r3, 4 + 657e: 4b64 lsri r3, r3, 4 + 6580: 3bbc bseti r3, 28 + 6582: 07cf br 0x6520 // 6520 + 6584: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +00006588 : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 6598: 9045 ld.w r2, (r0, 0x14) + 659a: 3301 movi r3, 1 + 659c: 7085 lsr r2, r1 + 659e: 688c and r2, r3 + { + if (dat==1) + 65a0: 3a40 cmpnei r2, 0 + 65a2: 70c4 lsl r3, r1 + 65a4: 0c03 bf 0x65aa // 65aa + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000065ae : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 65c0: 1064 lrw r3, 0x20000014 // 65d0 + 65c2: 9340 ld.w r2, (r3, 0x0) + 65c4: 9261 ld.w r3, (r2, 0x4) + 65c6: 3bac bseti r3, 12 + 65c8: 3bae bseti r3, 14 + 65ca: b261 st.w r3, (r2, 0x4) +} + 65cc: 783c jmp r15 + 65ce: 0000 bkpt + 65d0: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000065d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 65d4: 1063 lrw r3, 0x20000010 // 65e0 + 65d6: 9360 ld.w r3, (r3, 0x0) + 65d8: 9340 ld.w r2, (r3, 0x0) + 65da: 6c08 or r0, r2 + 65dc: b300 st.w r0, (r3, 0x0) +} + 65de: 783c jmp r15 + 65e0: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000065e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 65e4: 3300 movi r3, 0 + 65e6: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 65e8: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 65ea: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 65ec: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 65ee: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 65f0: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 65f2: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 65f4: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 65f6: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 65f8: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 65fa: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 65fc: b06d st.w r3, (r0, 0x34) +} + 65fe: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00006600 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 6600: 9060 ld.w r3, (r0, 0x0) + 6602: 3ba0 bseti r3, 0 + 6604: b060 st.w r3, (r0, 0x0) +} + 6606: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00006608 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 6608: 9060 ld.w r3, (r0, 0x0) + 660a: 3bac bseti r3, 12 + 660c: 3bae bseti r3, 14 + 660e: b060 st.w r3, (r0, 0x0) +} + 6610: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00006612 : +//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) +{ + 6612: 14c3 push r4-r6 + 6614: 98a4 ld.w r5, (r14, 0x10) + 6616: 6d97 mov r6, r5 + 6618: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 661a: 6d18 or r4, r6 + 661c: 6cd0 or r3, r4 + 661e: 90a1 ld.w r5, (r0, 0x4) + 6620: 6c4c or r1, r3 + 6622: 6c54 or r1, r5 + 6624: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 6626: b042 st.w r2, (r0, 0x8) +} + 6628: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000662a : +//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) +{ + 662a: 14c4 push r4-r7 + 662c: 1421 subi r14, r14, 4 + 662e: 9885 ld.w r4, (r14, 0x14) + 6630: 6dd3 mov r7, r4 + 6632: 9886 ld.w r4, (r14, 0x18) + 6634: b880 st.w r4, (r14, 0x0) + 6636: 9887 ld.w r4, (r14, 0x1c) + 6638: 6d93 mov r6, r4 + 663a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 663c: 6d58 or r5, r6 + 663e: 98c0 ld.w r6, (r14, 0x0) + 6640: 6d58 or r5, r6 + 6642: 6d5c or r5, r7 + 6644: 6cd4 or r3, r5 + 6646: 6c8c or r2, r3 + 6648: 9081 ld.w r4, (r0, 0x4) + 664a: 6c48 or r1, r2 + 664c: 6d04 or r4, r1 + 664e: 6d9f mov r6, r7 + 6650: b081 st.w r4, (r0, 0x4) +} + 6652: 1401 addi r14, r14, 4 + 6654: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00006656 : +//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; + 6656: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 6658: b044 st.w r2, (r0, 0x10) +} + 665a: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +0000665c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 665c: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 665e: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 6660: 0c04 bf 0x6668 // 6668 + BTx->IMCR |= BT_IMSCR_X; + 6662: 6c8c or r2, r3 + 6664: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 6666: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 6668: 68c9 andn r3, r2 + 666a: b06b st.w r3, (r0, 0x2c) +} + 666c: 07fd br 0x6666 // 6666 + +Disassembly of section .text.BT1_INT_ENABLE: + +00006670 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 6670: 3380 movi r3, 128 + 6672: 4376 lsli r3, r3, 22 + 6674: 1042 lrw r2, 0xe000e100 // 667c + 6676: b260 st.w r3, (r2, 0x0) +} + 6678: 783c jmp r15 + 667a: 0000 bkpt + 667c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00006680 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 6680: 1065 lrw r3, 0x20000040 // 6694 + 6682: 3200 movi r2, 0 + 6684: 9360 ld.w r3, (r3, 0x0) + 6686: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 6688: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 668a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 668c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 668e: b344 st.w r2, (r3, 0x10) +} + 6690: 783c jmp r15 + 6692: 0000 bkpt + 6694: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00006698 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 6698: 1065 lrw r3, 0x2000003c // 66ac + 669a: 3200 movi r2, 0 + 669c: 9360 ld.w r3, (r3, 0x0) + 669e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 66a0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 66a2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 66a4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 66a6: b344 st.w r2, (r3, 0x10) +} + 66a8: 783c jmp r15 + 66aa: 0000 bkpt + 66ac: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000066b0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 66b0: 1065 lrw r3, 0x20000038 // 66c4 + 66b2: 3200 movi r2, 0 + 66b4: 9360 ld.w r3, (r3, 0x0) + 66b6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 66b8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 66ba: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 66bc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 66be: b344 st.w r2, (r3, 0x10) +} + 66c0: 783c jmp r15 + 66c2: 0000 bkpt + 66c4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000066c8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 66c8: 1065 lrw r3, 0x20000040 // 66dc + 66ca: 320f movi r2, 15 + 66cc: 9360 ld.w r3, (r3, 0x0) + 66ce: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66d0: 3380 movi r3, 128 + 66d2: 4366 lsli r3, r3, 6 + 66d4: 1043 lrw r2, 0xe000e100 // 66e0 + 66d6: b260 st.w r3, (r2, 0x0) +} + 66d8: 783c jmp r15 + 66da: 0000 bkpt + 66dc: 20000040 .long 0x20000040 + 66e0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART1_Int_Enable: + +000066e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 66e4: 1065 lrw r3, 0x2000003c // 66f8 + 66e6: 320f movi r2, 15 + 66e8: 9360 ld.w r3, (r3, 0x0) + 66ea: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66ec: 3380 movi r3, 128 + 66ee: 4367 lsli r3, r3, 7 + 66f0: 1043 lrw r2, 0xe000e100 // 66fc + 66f2: b260 st.w r3, (r2, 0x0) +} + 66f4: 783c jmp r15 + 66f6: 0000 bkpt + 66f8: 2000003c .long 0x2000003c + 66fc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00006700 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 6700: 1065 lrw r3, 0x20000038 // 6714 + 6702: 320f movi r2, 15 + 6704: 9360 ld.w r3, (r3, 0x0) + 6706: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 6708: 3380 movi r3, 128 + 670a: 4368 lsli r3, r3, 8 + 670c: 1043 lrw r2, 0xe000e100 // 6718 + 670e: b260 st.w r3, (r2, 0x0) +} + 6710: 783c jmp r15 + 6712: 0000 bkpt + 6714: 20000038 .long 0x20000038 + 6718: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000671c : +//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) + 671c: 3840 cmpnei r0, 0 + 671e: 0821 bt 0x6760 // 6760 + { + if(UART_IO_G==0) + 6720: 3940 cmpnei r1, 0 + 6722: 080a bt 0x6736 // 6736 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 6724: 1177 lrw r3, 0x2000004c // 6800 + 6726: 31ff movi r1, 255 + 6728: 9340 ld.w r2, (r3, 0x0) + 672a: 9260 ld.w r3, (r2, 0x0) + 672c: 68c5 andn r3, r1 + 672e: 3ba2 bseti r3, 2 + 6730: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 6732: b260 st.w r3, (r2, 0x0) + 6734: 0415 br 0x675e // 675e + else if(UART_IO_G==1) + 6736: 3941 cmpnei r1, 1 + 6738: 0813 bt 0x675e // 675e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 673a: 1172 lrw r3, 0x2000004c // 6800 + 673c: 31f0 movi r1, 240 + 673e: 9340 ld.w r2, (r3, 0x0) + 6740: 9260 ld.w r3, (r2, 0x0) + 6742: 4130 lsli r1, r1, 16 + 6744: 68c5 andn r3, r1 + 6746: 31e0 movi r1, 224 + 6748: 412f lsli r1, r1, 15 + 674a: 6cc4 or r3, r1 + 674c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 674e: 31f0 movi r1, 240 + 6750: 9261 ld.w r3, (r2, 0x4) + 6752: 412c lsli r1, r1, 12 + 6754: 68c5 andn r3, r1 + 6756: 31e0 movi r1, 224 + 6758: 412b lsli r1, r1, 11 + 675a: 6cc4 or r3, r1 + 675c: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 675e: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 6760: 3841 cmpnei r0, 1 + 6762: 082d bt 0x67bc // 67bc + if(UART_IO_G==0) + 6764: 3940 cmpnei r1, 0 + 6766: 0814 bt 0x678e // 678e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 6768: 1167 lrw r3, 0x20000048 // 6804 + 676a: 310f movi r1, 15 + 676c: 9340 ld.w r2, (r3, 0x0) + 676e: 9260 ld.w r3, (r2, 0x0) + 6770: 68c5 andn r3, r1 + 6772: 3107 movi r1, 7 + 6774: 6cc4 or r3, r1 + 6776: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 6778: 32f0 movi r2, 240 + 677a: 1162 lrw r3, 0x2000004c // 6800 + 677c: 4250 lsli r2, r2, 16 + 677e: 9320 ld.w r1, (r3, 0x0) + 6780: 9161 ld.w r3, (r1, 0x4) + 6782: 68c9 andn r3, r2 + 6784: 32e0 movi r2, 224 + 6786: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 6788: 6cc8 or r3, r2 + 678a: b161 st.w r3, (r1, 0x4) + 678c: 07e9 br 0x675e // 675e + else if(UART_IO_G==1) + 678e: 3941 cmpnei r1, 1 + 6790: 080c bt 0x67a8 // 67a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 6792: 107c lrw r3, 0x2000004c // 6800 + 6794: 32ff movi r2, 255 + 6796: 9320 ld.w r1, (r3, 0x0) + 6798: 424c lsli r2, r2, 12 + 679a: 9160 ld.w r3, (r1, 0x0) + 679c: 68c9 andn r3, r2 + 679e: 32ee movi r2, 238 + 67a0: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67a2: 6cc8 or r3, r2 + 67a4: b160 st.w r3, (r1, 0x0) +} + 67a6: 07dc br 0x675e // 675e + else if(UART_IO_G==2) + 67a8: 3942 cmpnei r1, 2 + 67aa: 0bda bt 0x675e // 675e + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 67ac: 1075 lrw r3, 0x2000004c // 6800 + 67ae: 32ee movi r2, 238 + 67b0: 9320 ld.w r1, (r3, 0x0) + 67b2: 9161 ld.w r3, (r1, 0x4) + 67b4: 4368 lsli r3, r3, 8 + 67b6: 4b68 lsri r3, r3, 8 + 67b8: 4257 lsli r2, r2, 23 + 67ba: 07e7 br 0x6788 // 6788 + if (IO_UART_NUM==IO_UART2) + 67bc: 3842 cmpnei r0, 2 + 67be: 0bd0 bt 0x675e // 675e + if(UART_IO_G==0) + 67c0: 3940 cmpnei r1, 0 + 67c2: 0809 bt 0x67d4 // 67d4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 67c4: 106f lrw r3, 0x2000004c // 6800 + 67c6: 31ff movi r1, 255 + 67c8: 9340 ld.w r2, (r3, 0x0) + 67ca: 9260 ld.w r3, (r2, 0x0) + 67cc: 68c5 andn r3, r1 + 67ce: 3177 movi r1, 119 + 67d0: 6cc4 or r3, r1 + 67d2: 07b0 br 0x6732 // 6732 + else if(UART_IO_G==1) + 67d4: 3941 cmpnei r1, 1 + 67d6: 0809 bt 0x67e8 // 67e8 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 67d8: 106a lrw r3, 0x2000004c // 6800 + 67da: 32ee movi r2, 238 + 67dc: 9320 ld.w r1, (r3, 0x0) + 67de: 9160 ld.w r3, (r1, 0x0) + 67e0: 4368 lsli r3, r3, 8 + 67e2: 4b68 lsri r3, r3, 8 + 67e4: 4257 lsli r2, r2, 23 + 67e6: 07de br 0x67a2 // 67a2 + else if(UART_IO_G==2) + 67e8: 3942 cmpnei r1, 2 + 67ea: 0bba bt 0x675e // 675e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67ec: 1066 lrw r3, 0x20000048 // 6804 + 67ee: 32ff movi r2, 255 + 67f0: 9320 ld.w r1, (r3, 0x0) + 67f2: 4250 lsli r2, r2, 16 + 67f4: 9160 ld.w r3, (r1, 0x0) + 67f6: 68c9 andn r3, r2 + 67f8: 32cc movi r2, 204 + 67fa: 424f lsli r2, r2, 15 + 67fc: 07d3 br 0x67a2 // 67a2 + 67fe: 0000 bkpt + 6800: 2000004c .long 0x2000004c + 6804: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00006808 : +//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); + 6808: 1063 lrw r3, 0x8000f // 6814 + 680a: 6c8c or r2, r3 + 680c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 680e: b024 st.w r1, (r0, 0x10) +} + 6810: 783c jmp r15 + 6812: 0000 bkpt + 6814: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00006818 : +//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) +{ + 6818: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681a: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 681c: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681e: 5b85 subu r4, r3, r1 + 6820: 6490 cmphs r4, r2 + 6822: 0c02 bf 0x6826 // 6826 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 6824: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 6826: 8380 ld.b r4, (r3, 0x0) + 6828: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 682a: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 682c: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 682e: 3c40 cmpnei r4, 0 + 6830: 0bfd bt 0x682a // 682a + 6832: 2300 addi r3, 1 + 6834: 07f5 br 0x681e // 681e + +Disassembly of section .text.EPT_Stop: + +00006838 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 6838: 1068 lrw r3, 0x20000020 // 6858 + 683a: 3280 movi r2, 128 + 683c: 9360 ld.w r3, (r3, 0x0) + 683e: 608c addu r2, r3 + 6840: 1027 lrw r1, 0xa55ac73a // 685c + 6842: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 6844: 9341 ld.w r2, (r3, 0x4) + 6846: 31fe movi r1, 254 + 6848: 6884 and r2, r1 + 684a: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 684c: 3101 movi r1, 1 + 684e: 9341 ld.w r2, (r3, 0x4) + 6850: 6884 and r2, r1 + 6852: 3a40 cmpnei r2, 0 + 6854: 0bfd bt 0x684e // 684e +} + 6856: 783c jmp r15 + 6858: 20000020 .long 0x20000020 + 685c: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00006860 : + 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) +{ + 6860: 14c4 push r4-r7 + 6862: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 6864: 1165 lrw r3, 0x20000060 // 68f8 + 6866: 1186 lrw r4, 0x5a5a5a5a // 68fc + 6868: 9360 ld.w r3, (r3, 0x0) + 686a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 686c: 3407 movi r4, 7 + 686e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6870: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 6872: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 6874: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 6876: 9384 ld.w r4, (r3, 0x10) + 6878: 3c40 cmpnei r4, 0 + 687a: 0bfe bt 0x6876 // 6876 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 687c: 2102 addi r1, 3 + 687e: 4922 lsri r1, r1, 2 + 6880: 4122 lsli r1, r1, 2 + 6882: 6048 addu r1, r2 + 6884: b820 st.w r1, (r14, 0x0) + 6886: 5829 subu r1, r0, r2 + 6888: b821 st.w r1, (r14, 0x4) + 688a: 9820 ld.w r1, (r14, 0x0) + 688c: 644a cmpne r2, r1 + 688e: 0826 bt 0x68da // 68da + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 6890: 3106 movi r1, 6 + SetUserKey; + 6892: 105b lrw r2, 0x5a5a5a5a // 68fc + 6894: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 6896: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6898: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 689a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 689c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 689e: 9324 ld.w r1, (r3, 0x10) + 68a0: 3940 cmpnei r1, 0 + 68a2: 0bfe bt 0x689e // 689e + //Perform pre-programming 4 + SetUserKey; + 68a4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68a6: 3201 movi r2, 1 + 68a8: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68aa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ac: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 68ae: 934a ld.w r2, (r3, 0x28) + 68b0: 3a44 cmpnei r2, 4 + 68b2: 0bfe bt 0x68ae // 68ae + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 68b4: 3102 movi r1, 2 + SetUserKey; + 68b6: 1052 lrw r2, 0x5a5a5a5a // 68fc + 68b8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 68ba: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 68bc: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 68be: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68c0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 68c2: 932a ld.w r1, (r3, 0x28) + 68c4: 3941 cmpnei r1, 1 + 68c6: 0bfe bt 0x68c2 // 68c2 + //Write page cache data to flash memory 6 + SetUserKey; + 68c8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68ca: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68cc: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ce: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 68d0: 934a ld.w r2, (r3, 0x28) + 68d2: 3a42 cmpnei r2, 2 + 68d4: 0bfe bt 0x68d0 // 68d0 +} + 68d6: 1402 addi r14, r14, 8 + 68d8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 68da: 82e0 ld.b r7, (r2, 0x0) + 68dc: 8281 ld.b r4, (r2, 0x1) + 68de: 4488 lsli r4, r4, 8 + 68e0: 8222 ld.b r1, (r2, 0x2) + 68e2: 611c addu r4, r7 + 68e4: 82a3 ld.b r5, (r2, 0x3) + 68e6: 4130 lsli r1, r1, 16 + 68e8: 98c1 ld.w r6, (r14, 0x4) + 68ea: 6050 addu r1, r4 + 68ec: 45b8 lsli r5, r5, 24 + 68ee: 6188 addu r6, r2 + 68f0: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 68f2: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 68f4: 2203 addi r2, 4 + 68f6: 07ca br 0x688a // 688a + 68f8: 20000060 .long 0x20000060 + 68fc: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00006900 : +//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) +{ + 6900: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 690c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 690e: 3b40 cmpnei r3, 0 + 6910: 0c06 bf 0x691c // 691c + 6912: 6d0f mov r4, r3 + 6914: 6914 and r4, r5 + 6916: 3c40 cmpnei r4, 0 + 6918: 0802 bt 0x691c // 691c + RdStartAdd +=4; + 691a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 691c: 6d0f mov r4, r3 + 691e: 6914 and r4, r5 + 6920: 6100 addu r4, r0 + 6922: 8480 ld.b r4, (r4, 0x0) + 6924: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +0000692c
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 692c: 14d0 push r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 692e: e00000ab bsr 0x6a84 // 6a84 + + Dbg_Println(DBG_BIT_SYS_STATUS,"APP Run Start! 111 %s",Project_Boot_Support); + 6932: 102d lrw r1, 0xaf4c // 6964 + 6934: 3000 movi r0, 0 + 6936: 104d lrw r2, 0x2000009c // 6968 + 6938: e000087e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 693c: 102c lrw r1, 0xaf62 // 696c + 693e: 3000 movi r0, 0 + 6940: e000087a bsr 0x7a34 // 7a34 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 6944: e3fffba4 bsr 0x608c // 608c + + UART0_TASK(); + 6948: e00006da bsr 0x76fc // 76fc + + UART1_TASK(); + 694c: e000097a bsr 0x7c40 // 7c40 + + UART2_TASK(); + 6950: e00009be bsr 0x7ccc // 7ccc + + DIP_ScanTask(); + 6954: e0000a9e bsr 0x7e90 // 7e90 + + BLV_EngDetect_Tack(); + 6958: e00017f2 bsr 0x993c // 993c + + BUS485Send_Task(); + 695c: e00008fc bsr 0x7b54 // 7b54 + 6960: 07f2 br 0x6944 // 6944 + 6962: 0000 bkpt + 6964: 0000af4c .long 0x0000af4c + 6968: 2000009c .long 0x2000009c + 696c: 0000af62 .long 0x0000af62 + +Disassembly of section .text.delay_nms: + +00006970 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 6970: 14d0 push r15 + 6972: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 6974: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 6976: 3300 movi r3, 0 + j = 50* t; + 6978: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 697a: b862 st.w r3, (r14, 0x8) + j = 50* t; + 697c: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 697e: b860 st.w r3, (r14, 0x0) + 6980: 9840 ld.w r2, (r14, 0x0) + 6982: 9861 ld.w r3, (r14, 0x4) + 6984: 64c8 cmphs r2, r3 + 6986: 0c03 bf 0x698c // 698c + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 6988: 1403 addi r14, r14, 12 + 698a: 1490 pop r15 + k++; + 698c: 9862 ld.w r3, (r14, 0x8) + 698e: 2300 addi r3, 1 + 6990: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 6992: e3fffb7d bsr 0x608c // 608c + for ( i = 0; i < j; i++ ) + 6996: 9860 ld.w r3, (r14, 0x0) + 6998: 2300 addi r3, 1 + 699a: 07f2 br 0x697e // 697e + +Disassembly of section .text.delay_nus: + +0000699c : +void delay_nus(unsigned int t) +{ + 699c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 699e: 3300 movi r3, 0 + 69a0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 69a2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 69a4: b860 st.w r3, (r14, 0x0) + 69a6: 9840 ld.w r2, (r14, 0x0) + 69a8: 9861 ld.w r3, (r14, 0x4) + 69aa: 64c8 cmphs r2, r3 + 69ac: 0c03 bf 0x69b2 // 69b2 + { + k++; + } +} + 69ae: 1403 addi r14, r14, 12 + 69b0: 783c jmp r15 + k++; + 69b2: 9862 ld.w r3, (r14, 0x8) + 69b4: 2300 addi r3, 1 + 69b6: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 69b8: 9860 ld.w r3, (r14, 0x0) + 69ba: 2300 addi r3, 1 + 69bc: 07f4 br 0x69a4 // 69a4 + +Disassembly of section .text.BT_CONFIG: + +000069c0 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 69c0: 14d2 push r4-r5, r15 + 69c2: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 69c4: 1095 lrw r4, 0x20000008 // 6a18 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69c6: 3500 movi r5, 0 + BT_DeInit(BT1); + 69c8: 9400 ld.w r0, (r4, 0x0) + 69ca: e3fffe0d bsr 0x65e4 // 65e4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69ce: 9400 ld.w r0, (r4, 0x0) + 69d0: b8a1 st.w r5, (r14, 0x4) + 69d2: b8a0 st.w r5, (r14, 0x0) + 69d4: 3308 movi r3, 8 + 69d6: 3200 movi r2, 0 + 69d8: 3101 movi r1, 1 + 69da: e3fffe1c bsr 0x6612 // 6612 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 69de: 3380 movi r3, 128 + 69e0: 4363 lsli r3, r3, 3 + 69e2: b861 st.w r3, (r14, 0x4) + 69e4: 9400 ld.w r0, (r4, 0x0) + 69e6: 3300 movi r3, 0 + 69e8: b8a3 st.w r5, (r14, 0xc) + 69ea: b8a2 st.w r5, (r14, 0x8) + 69ec: b8a0 st.w r5, (r14, 0x0) + 69ee: 3200 movi r2, 0 + 69f0: 3180 movi r1, 128 + 69f2: e3fffe1c bsr 0x662a // 662a + BT_Period_CMP_Write(BT1,4780,1); + 69f6: 3201 movi r2, 1 + 69f8: 1029 lrw r1, 0x12ac // 6a1c + 69fa: 9400 ld.w r0, (r4, 0x0) + 69fc: e3fffe2d bsr 0x6656 // 6656 + BT_Start(BT1); + 6a00: 9400 ld.w r0, (r4, 0x0) + 6a02: e3fffdff bsr 0x6600 // 6600 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 6a06: 9400 ld.w r0, (r4, 0x0) + 6a08: 3202 movi r2, 2 + 6a0a: 3101 movi r1, 1 + 6a0c: e3fffe28 bsr 0x665c // 665c + BT1_INT_ENABLE(); + 6a10: e3fffe30 bsr 0x6670 // 6670 + +} + 6a14: 1404 addi r14, r14, 16 + 6a16: 1492 pop r4-r5, r15 + 6a18: 20000008 .long 0x20000008 + 6a1c: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00006a20 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 6a20: 14d0 push r15 + 6a22: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 6a24: e3fffa80 bsr 0x5f24 // 5f24 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 6a28: 3101 movi r1, 1 + 6a2a: 3001 movi r0, 1 + 6a2c: e3fffaa2 bsr 0x5f70 // 5f70 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 6a30: 3000 movi r0, 0 + 6a32: e3fffafb bsr 0x6028 // 6028 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 6a36: 3180 movi r1, 128 + 6a38: 3308 movi r3, 8 + 6a3a: 3200 movi r2, 0 + 6a3c: 4121 lsli r1, r1, 1 + 6a3e: 3002 movi r0, 2 + 6a40: e3fffab0 bsr 0x5fa0 // 5fa0 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 6a44: 3080 movi r0, 128 + 6a46: 3118 movi r1, 24 + 6a48: 4002 lsli r0, r0, 2 + 6a4a: e3fffb2b bsr 0x60a0 // 60a0 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 6a4e: 3001 movi r0, 1 + 6a50: e3fffb00 bsr 0x6050 // 6050 + SYSCON_IWDCNT_Reload(); //reload WDT + 6a54: e3fffb1c bsr 0x608c // 608c + IWDT_Int_Enable(); + 6a58: e3fffb4e bsr 0x60f4 // 60f4 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 6a5c: 3340 movi r3, 64 + 6a5e: b860 st.w r3, (r14, 0x0) + 6a60: 31c0 movi r1, 192 + 6a62: 3380 movi r3, 128 + 6a64: 4364 lsli r3, r3, 4 + 6a66: 3200 movi r2, 0 + 6a68: 4123 lsli r1, r1, 3 + 6a6a: 3000 movi r0, 0 + 6a6c: e3fffb26 bsr 0x60b8 // 60b8 + LVD_Int_Enable(); + 6a70: e3fffb34 bsr 0x60d8 // 60d8 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 6a74: e3fffb92 bsr 0x6198 // 6198 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 6a78: 3000 movi r0, 0 + 6a7a: e0001f41 bsr 0xa8fc // a8fc + +} + 6a7e: 1401 addi r14, r14, 4 + 6a80: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00006a84 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 6a84: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a86: 1079 lrw r3, 0x2000005c // 6ae8 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a88: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a8a: 9340 ld.w r2, (r3, 0x0) + 6a8c: 1078 lrw r3, 0xfffffff // 6aec + 6a8e: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 6a90: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a92: 926c ld.w r3, (r2, 0x30) + 6a94: 68c4 and r3, r1 + 6a96: 3b40 cmpnei r3, 0 + 6a98: 0ffd bf 0x6a92 // 6a92 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 6a9a: e3ffffc3 bsr 0x6a20 // 6a20 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 6a9e: e000054b bsr 0x7534 // 7534 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 6aa2: e3fffb91 bsr 0x61c4 // 61c4 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART0_IRQ,1); + 6aa6: 3101 movi r1, 1 + 6aa8: 300d movi r0, 13 + 6aaa: e3fffb9f bsr 0x61e8 // 61e8 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 6aae: 3101 movi r1, 1 + 6ab0: 300e movi r0, 14 + 6ab2: e3fffb9b bsr 0x61e8 // 61e8 + + Set_INT_Priority(UART2_IRQ,1); + 6ab6: 3101 movi r1, 1 + 6ab8: 300f movi r0, 15 + 6aba: e3fffb97 bsr 0x61e8 // 61e8 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 6abe: e3fffbad bsr 0x6218 // 6218 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 6ac2: e3ffff7f bsr 0x69c0 // 69c0 + + UARTx_Init(UART_0,HLW8110_RecvData_Processing); + 6ac6: 102b lrw r1, 0x8ef4 // 6af0 + 6ac8: 3000 movi r0, 0 + 6aca: e000053b bsr 0x7540 // 7540 + + UARTx_Init(UART_1,HLW_485Recv_Processing); + 6ace: 102a lrw r1, 0x9ca4 // 6af4 + 6ad0: 3001 movi r0, 1 + 6ad2: e0000537 bsr 0x7540 // 7540 + + UARTx_Init(UART_2,BT_Recv_Processing); + 6ad6: 1029 lrw r1, 0x9e04 // 6af8 + 6ad8: 3002 movi r0, 2 + 6ada: e0000533 bsr 0x7540 // 7540 + + Boot_Function_Init(); + 6ade: e0001a1f bsr 0x9f1c // 9f1c + + DIP_Switch_Init(); + 6ae2: e000098d bsr 0x7dfc // 7dfc +} + 6ae6: 1490 pop r15 + 6ae8: 2000005c .long 0x2000005c + 6aec: 0fffffff .long 0x0fffffff + 6af0: 00008ef4 .long 0x00008ef4 + 6af4: 00009ca4 .long 0x00009ca4 + 6af8: 00009e04 .long 0x00009e04 + +Disassembly of section .text.SYSCONIntHandler: + +00006afc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 6afc: 1460 nie + 6afe: 1462 ipush + // ISR content ... + nop; + 6b00: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 6b02: 117a lrw r3, 0x2000005c // 6be8 + 6b04: 3280 movi r2, 128 + 6b06: 9360 ld.w r3, (r3, 0x0) + 6b08: 60c8 addu r3, r2 + 6b0a: 9323 ld.w r1, (r3, 0xc) + 6b0c: 3001 movi r0, 1 + 6b0e: 6840 and r1, r0 + 6b10: 3940 cmpnei r1, 0 + 6b12: 0c04 bf 0x6b1a // 6b1a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 6b14: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 6b16: 1463 ipop + 6b18: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 6b1a: 9323 ld.w r1, (r3, 0xc) + 6b1c: 3002 movi r0, 2 + 6b1e: 6840 and r1, r0 + 6b20: 3940 cmpnei r1, 0 + 6b22: 0bf9 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 6b24: 9323 ld.w r1, (r3, 0xc) + 6b26: 3008 movi r0, 8 + 6b28: 6840 and r1, r0 + 6b2a: 3940 cmpnei r1, 0 + 6b2c: 0bf4 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 6b2e: 9323 ld.w r1, (r3, 0xc) + 6b30: 3010 movi r0, 16 + 6b32: 6840 and r1, r0 + 6b34: 3940 cmpnei r1, 0 + 6b36: 0bef bt 0x6b14 // 6b14 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 6b38: 9323 ld.w r1, (r3, 0xc) + 6b3a: 6848 and r1, r2 + 6b3c: 3940 cmpnei r1, 0 + 6b3e: 0c03 bf 0x6b44 // 6b44 + SYSCON->ICR = CMD_ERR_ST; + 6b40: b341 st.w r2, (r3, 0x4) +} + 6b42: 07ea br 0x6b16 // 6b16 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 6b44: 3280 movi r2, 128 + 6b46: 9323 ld.w r1, (r3, 0xc) + 6b48: 4241 lsli r2, r2, 1 + 6b4a: 6848 and r1, r2 + 6b4c: 3940 cmpnei r1, 0 + 6b4e: 0bf9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 6b50: 3280 movi r2, 128 + 6b52: 9323 ld.w r1, (r3, 0xc) + 6b54: 4242 lsli r2, r2, 2 + 6b56: 6848 and r1, r2 + 6b58: 3940 cmpnei r1, 0 + 6b5a: 0bf3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 6b5c: 3280 movi r2, 128 + 6b5e: 9323 ld.w r1, (r3, 0xc) + 6b60: 4243 lsli r2, r2, 3 + 6b62: 6848 and r1, r2 + 6b64: 3940 cmpnei r1, 0 + 6b66: 0bed bt 0x6b40 // 6b40 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 6b68: 3280 movi r2, 128 + 6b6a: 9323 ld.w r1, (r3, 0xc) + 6b6c: 4244 lsli r2, r2, 4 + 6b6e: 6848 and r1, r2 + 6b70: 3940 cmpnei r1, 0 + 6b72: 0c03 bf 0x6b78 // 6b78 + nop; + 6b74: 6c03 mov r0, r0 + 6b76: 07e5 br 0x6b40 // 6b40 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 6b78: 3280 movi r2, 128 + 6b7a: 9323 ld.w r1, (r3, 0xc) + 6b7c: 4245 lsli r2, r2, 5 + 6b7e: 6848 and r1, r2 + 6b80: 3940 cmpnei r1, 0 + 6b82: 0bdf bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 6b84: 3280 movi r2, 128 + 6b86: 9323 ld.w r1, (r3, 0xc) + 6b88: 4246 lsli r2, r2, 6 + 6b8a: 6848 and r1, r2 + 6b8c: 3940 cmpnei r1, 0 + 6b8e: 0bd9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 6b90: 3280 movi r2, 128 + 6b92: 9323 ld.w r1, (r3, 0xc) + 6b94: 4247 lsli r2, r2, 7 + 6b96: 6848 and r1, r2 + 6b98: 3940 cmpnei r1, 0 + 6b9a: 0bd3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 6b9c: 3280 movi r2, 128 + 6b9e: 9323 ld.w r1, (r3, 0xc) + 6ba0: 424b lsli r2, r2, 11 + 6ba2: 6848 and r1, r2 + 6ba4: 3940 cmpnei r1, 0 + 6ba6: 0bcd bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 6ba8: 3280 movi r2, 128 + 6baa: 9323 ld.w r1, (r3, 0xc) + 6bac: 424c lsli r2, r2, 12 + 6bae: 6848 and r1, r2 + 6bb0: 3940 cmpnei r1, 0 + 6bb2: 0bc7 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 6bb4: 3280 movi r2, 128 + 6bb6: 9323 ld.w r1, (r3, 0xc) + 6bb8: 424d lsli r2, r2, 13 + 6bba: 6848 and r1, r2 + 6bbc: 3940 cmpnei r1, 0 + 6bbe: 0bc1 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 6bc0: 3280 movi r2, 128 + 6bc2: 9323 ld.w r1, (r3, 0xc) + 6bc4: 424e lsli r2, r2, 14 + 6bc6: 6848 and r1, r2 + 6bc8: 3940 cmpnei r1, 0 + 6bca: 0bbb bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 6bcc: 3280 movi r2, 128 + 6bce: 9323 ld.w r1, (r3, 0xc) + 6bd0: 424f lsli r2, r2, 15 + 6bd2: 6848 and r1, r2 + 6bd4: 3940 cmpnei r1, 0 + 6bd6: 0bb5 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 6bd8: 3280 movi r2, 128 + 6bda: 9323 ld.w r1, (r3, 0xc) + 6bdc: 4256 lsli r2, r2, 22 + 6bde: 6848 and r1, r2 + 6be0: 3940 cmpnei r1, 0 + 6be2: 0baf bt 0x6b40 // 6b40 + 6be4: 0799 br 0x6b16 // 6b16 + 6be6: 0000 bkpt + 6be8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00006bec : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 6bec: 1460 nie + 6bee: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 6bf0: 1078 lrw r3, 0x20000060 // 6c50 + 6bf2: 3101 movi r1, 1 + 6bf4: 9360 ld.w r3, (r3, 0x0) + 6bf6: 934b ld.w r2, (r3, 0x2c) + 6bf8: 6884 and r2, r1 + 6bfa: 3a40 cmpnei r2, 0 + 6bfc: 0c04 bf 0x6c04 // 6c04 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 6bfe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 6c00: 1463 ipop + 6c02: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 6c04: 934b ld.w r2, (r3, 0x2c) + 6c06: 3102 movi r1, 2 + 6c08: 6884 and r2, r1 + 6c0a: 3a40 cmpnei r2, 0 + 6c0c: 0bf9 bt 0x6bfe // 6bfe + else if(IFC->MISR&PEP_END_INT) + 6c0e: 934b ld.w r2, (r3, 0x2c) + 6c10: 3104 movi r1, 4 + 6c12: 6884 and r2, r1 + 6c14: 3a40 cmpnei r2, 0 + 6c16: 0bf4 bt 0x6bfe // 6bfe + else if(IFC->MISR&PROT_ERR_INT) + 6c18: 3280 movi r2, 128 + 6c1a: 932b ld.w r1, (r3, 0x2c) + 6c1c: 4245 lsli r2, r2, 5 + 6c1e: 6848 and r1, r2 + 6c20: 3940 cmpnei r1, 0 + 6c22: 0c03 bf 0x6c28 // 6c28 + IFC->ICR=OVW_ERR_INT; + 6c24: b34c st.w r2, (r3, 0x30) +} + 6c26: 07ed br 0x6c00 // 6c00 + else if(IFC->MISR&UDEF_ERR_INT) + 6c28: 3280 movi r2, 128 + 6c2a: 932b ld.w r1, (r3, 0x2c) + 6c2c: 4246 lsli r2, r2, 6 + 6c2e: 6848 and r1, r2 + 6c30: 3940 cmpnei r1, 0 + 6c32: 0bf9 bt 0x6c24 // 6c24 + else if(IFC->MISR&ADDR_ERR_INT) + 6c34: 3280 movi r2, 128 + 6c36: 932b ld.w r1, (r3, 0x2c) + 6c38: 4247 lsli r2, r2, 7 + 6c3a: 6848 and r1, r2 + 6c3c: 3940 cmpnei r1, 0 + 6c3e: 0bf3 bt 0x6c24 // 6c24 + else if(IFC->MISR&OVW_ERR_INT) + 6c40: 3280 movi r2, 128 + 6c42: 932b ld.w r1, (r3, 0x2c) + 6c44: 4248 lsli r2, r2, 8 + 6c46: 6848 and r1, r2 + 6c48: 3940 cmpnei r1, 0 + 6c4a: 0bed bt 0x6c24 // 6c24 + 6c4c: 07da br 0x6c00 // 6c00 + 6c4e: 0000 bkpt + 6c50: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00006c54 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 6c54: 1460 nie + 6c56: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 6c58: 1078 lrw r3, 0x20000050 // 6cb8 + 6c5a: 3101 movi r1, 1 + 6c5c: 9360 ld.w r3, (r3, 0x0) + 6c5e: 9348 ld.w r2, (r3, 0x20) + 6c60: 6884 and r2, r1 + 6c62: 3a40 cmpnei r2, 0 + 6c64: 0c04 bf 0x6c6c // 6c6c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 6c66: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 6c68: 1463 ipop + 6c6a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 6c6c: 9348 ld.w r2, (r3, 0x20) + 6c6e: 3102 movi r1, 2 + 6c70: 6884 and r2, r1 + 6c72: 3a40 cmpnei r2, 0 + 6c74: 0bf9 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 6c76: 9348 ld.w r2, (r3, 0x20) + 6c78: 3104 movi r1, 4 + 6c7a: 6884 and r2, r1 + 6c7c: 3a40 cmpnei r2, 0 + 6c7e: 0bf4 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 6c80: 9348 ld.w r2, (r3, 0x20) + 6c82: 3110 movi r1, 16 + 6c84: 6884 and r2, r1 + 6c86: 3a40 cmpnei r2, 0 + 6c88: 0bef bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 6c8a: 9348 ld.w r2, (r3, 0x20) + 6c8c: 3120 movi r1, 32 + 6c8e: 6884 and r2, r1 + 6c90: 3a40 cmpnei r2, 0 + 6c92: 0bea bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 6c94: 9348 ld.w r2, (r3, 0x20) + 6c96: 3140 movi r1, 64 + 6c98: 6884 and r2, r1 + 6c9a: 3a40 cmpnei r2, 0 + 6c9c: 0be5 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 6c9e: 9348 ld.w r2, (r3, 0x20) + 6ca0: 3180 movi r1, 128 + 6ca2: 6884 and r2, r1 + 6ca4: 3a40 cmpnei r2, 0 + 6ca6: 0be0 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 6ca8: 3280 movi r2, 128 + 6caa: 9328 ld.w r1, (r3, 0x20) + 6cac: 4249 lsli r2, r2, 9 + 6cae: 6848 and r1, r2 + 6cb0: 3940 cmpnei r1, 0 + 6cb2: 0fdb bf 0x6c68 // 6c68 + ADC0->CSR = ADC12_SEQ_END0; + 6cb4: b347 st.w r2, (r3, 0x1c) +} + 6cb6: 07d9 br 0x6c68 // 6c68 + 6cb8: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00006cbc : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 6cbc: 1460 nie + 6cbe: 1462 ipush + 6cc0: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 6cc2: 1387 lrw r4, 0x20000020 // 6e5c + 6cc4: 3280 movi r2, 128 + 6cc6: 9460 ld.w r3, (r4, 0x0) + 6cc8: 60c8 addu r3, r2 + 6cca: 9335 ld.w r1, (r3, 0x54) + 6ccc: 3001 movi r0, 1 + 6cce: 6840 and r1, r0 + 6cd0: 3940 cmpnei r1, 0 + 6cd2: 0c03 bf 0x6cd8 // 6cd8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 6cd4: b317 st.w r0, (r3, 0x5c) + 6cd6: 0424 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 6cd8: 9335 ld.w r1, (r3, 0x54) + 6cda: 3002 movi r0, 2 + 6cdc: 6840 and r1, r0 + 6cde: 3940 cmpnei r1, 0 + 6ce0: 0bfa bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 6ce2: 9335 ld.w r1, (r3, 0x54) + 6ce4: 3004 movi r0, 4 + 6ce6: 6840 and r1, r0 + 6ce8: 3940 cmpnei r1, 0 + 6cea: 0bf5 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 6cec: 9335 ld.w r1, (r3, 0x54) + 6cee: 3008 movi r0, 8 + 6cf0: 6840 and r1, r0 + 6cf2: 3940 cmpnei r1, 0 + 6cf4: 0bf0 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 6cf6: 9335 ld.w r1, (r3, 0x54) + 6cf8: 3010 movi r0, 16 + 6cfa: 6840 and r1, r0 + 6cfc: 3940 cmpnei r1, 0 + 6cfe: 0c1f bf 0x6d3c // 6d3c + EPT0->ICR=EPT_CAP_LD0; + 6d00: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 6d02: 3200 movi r2, 0 + 6d04: 3101 movi r1, 1 + 6d06: 3000 movi r0, 0 + 6d08: e3fffa04 bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 6d0c: 3201 movi r2, 1 + 6d0e: 3101 movi r1, 1 + 6d10: 3001 movi r0, 1 + 6d12: e3fff9ff bsr 0x6110 // 6110 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 6d16: 9460 ld.w r3, (r4, 0x0) + 6d18: 934b ld.w r2, (r3, 0x2c) + 6d1a: 1272 lrw r3, 0x20000210 // 6e60 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d1c: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 6d1e: 9460 ld.w r3, (r4, 0x0) + 6d20: 3280 movi r2, 128 + 6d22: 60c8 addu r3, r2 + 6d24: 932b ld.w r1, (r3, 0x2c) + 6d26: 3001 movi r0, 1 + 6d28: 6840 and r1, r0 + 6d2a: 3940 cmpnei r1, 0 + 6d2c: 0c61 bf 0x6dee // 6dee + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 6d2e: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 6d30: d9ee2001 ld.w r15, (r14, 0x4) + 6d34: 9880 ld.w r4, (r14, 0x0) + 6d36: 1402 addi r14, r14, 8 + 6d38: 1463 ipop + 6d3a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 6d3c: 9335 ld.w r1, (r3, 0x54) + 6d3e: 3020 movi r0, 32 + 6d40: 6840 and r1, r0 + 6d42: 3940 cmpnei r1, 0 + 6d44: 0c10 bf 0x6d64 // 6d64 + EPT0->ICR=EPT_CAP_LD1; + 6d46: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 6d48: 3200 movi r2, 0 + 6d4a: 3101 movi r1, 1 + 6d4c: 3001 movi r0, 1 + 6d4e: e3fff9e1 bsr 0x6110 // 6110 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 6d52: 3201 movi r2, 1 + 6d54: 3101 movi r1, 1 + 6d56: 3000 movi r0, 0 + 6d58: e3fff9dc bsr 0x6110 // 6110 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d5c: 9460 ld.w r3, (r4, 0x0) + 6d5e: 934c ld.w r2, (r3, 0x30) + 6d60: 1261 lrw r3, 0x2000020c // 6e64 + 6d62: 07dd br 0x6d1c // 6d1c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 6d64: 9335 ld.w r1, (r3, 0x54) + 6d66: 3040 movi r0, 64 + 6d68: 6840 and r1, r0 + 6d6a: 3940 cmpnei r1, 0 + 6d6c: 0bb4 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 6d6e: 9335 ld.w r1, (r3, 0x54) + 6d70: 6848 and r1, r2 + 6d72: 3940 cmpnei r1, 0 + 6d74: 0c03 bf 0x6d7a // 6d7a + EPT0->ICR=EPT_CDD; + 6d76: b357 st.w r2, (r3, 0x5c) + 6d78: 07d3 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 6d7a: 3280 movi r2, 128 + 6d7c: 9335 ld.w r1, (r3, 0x54) + 6d7e: 4241 lsli r2, r2, 1 + 6d80: 6848 and r1, r2 + 6d82: 3940 cmpnei r1, 0 + 6d84: 0bf9 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 6d86: 3280 movi r2, 128 + 6d88: 9335 ld.w r1, (r3, 0x54) + 6d8a: 4242 lsli r2, r2, 2 + 6d8c: 6848 and r1, r2 + 6d8e: 3940 cmpnei r1, 0 + 6d90: 0bf3 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 6d92: 3280 movi r2, 128 + 6d94: 9335 ld.w r1, (r3, 0x54) + 6d96: 4243 lsli r2, r2, 3 + 6d98: 6848 and r1, r2 + 6d9a: 3940 cmpnei r1, 0 + 6d9c: 0bed bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 6d9e: 3280 movi r2, 128 + 6da0: 9335 ld.w r1, (r3, 0x54) + 6da2: 4244 lsli r2, r2, 4 + 6da4: 6848 and r1, r2 + 6da6: 3940 cmpnei r1, 0 + 6da8: 0be7 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 6daa: 3280 movi r2, 128 + 6dac: 9335 ld.w r1, (r3, 0x54) + 6dae: 4245 lsli r2, r2, 5 + 6db0: 6848 and r1, r2 + 6db2: 3940 cmpnei r1, 0 + 6db4: 0be1 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 6db6: 3280 movi r2, 128 + 6db8: 9335 ld.w r1, (r3, 0x54) + 6dba: 4246 lsli r2, r2, 6 + 6dbc: 6848 and r1, r2 + 6dbe: 3940 cmpnei r1, 0 + 6dc0: 0bdb bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 6dc2: 3280 movi r2, 128 + 6dc4: 9335 ld.w r1, (r3, 0x54) + 6dc6: 4247 lsli r2, r2, 7 + 6dc8: 6848 and r1, r2 + 6dca: 3940 cmpnei r1, 0 + 6dcc: 0bd5 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 6dce: 3280 movi r2, 128 + 6dd0: 9335 ld.w r1, (r3, 0x54) + 6dd2: 4248 lsli r2, r2, 8 + 6dd4: 6848 and r1, r2 + 6dd6: 3940 cmpnei r1, 0 + 6dd8: 0bcf bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 6dda: 3280 movi r2, 128 + 6ddc: 9335 ld.w r1, (r3, 0x54) + 6dde: 4249 lsli r2, r2, 9 + 6de0: 6848 and r1, r2 + 6de2: 3940 cmpnei r1, 0 + 6de4: 0f9d bf 0x6d1e // 6d1e + EPT0->ICR=EPT_PEND; + 6de6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 6de8: e3fffd28 bsr 0x6838 // 6838 + 6dec: 0799 br 0x6d1e // 6d1e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 6dee: 932b ld.w r1, (r3, 0x2c) + 6df0: 3002 movi r0, 2 + 6df2: 6840 and r1, r0 + 6df4: 3940 cmpnei r1, 0 + 6df6: 0b9c bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 6df8: 932b ld.w r1, (r3, 0x2c) + 6dfa: 3004 movi r0, 4 + 6dfc: 6840 and r1, r0 + 6dfe: 3940 cmpnei r1, 0 + 6e00: 0b97 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 6e02: 932b ld.w r1, (r3, 0x2c) + 6e04: 3008 movi r0, 8 + 6e06: 6840 and r1, r0 + 6e08: 3940 cmpnei r1, 0 + 6e0a: 0b92 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 6e0c: 932b ld.w r1, (r3, 0x2c) + 6e0e: 3010 movi r0, 16 + 6e10: 6840 and r1, r0 + 6e12: 3940 cmpnei r1, 0 + 6e14: 0b8d bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 6e16: 932b ld.w r1, (r3, 0x2c) + 6e18: 3020 movi r0, 32 + 6e1a: 6840 and r1, r0 + 6e1c: 3940 cmpnei r1, 0 + 6e1e: 0b88 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 6e20: 932b ld.w r1, (r3, 0x2c) + 6e22: 3040 movi r0, 64 + 6e24: 6840 and r1, r0 + 6e26: 3940 cmpnei r1, 0 + 6e28: 0b83 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 6e2a: 932b ld.w r1, (r3, 0x2c) + 6e2c: 6848 and r1, r2 + 6e2e: 3940 cmpnei r1, 0 + 6e30: 0c03 bf 0x6e36 // 6e36 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 6e32: b34d st.w r2, (r3, 0x34) +} + 6e34: 077e br 0x6d30 // 6d30 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 6e36: 3280 movi r2, 128 + 6e38: 932b ld.w r1, (r3, 0x2c) + 6e3a: 4241 lsli r2, r2, 1 + 6e3c: 6848 and r1, r2 + 6e3e: 3940 cmpnei r1, 0 + 6e40: 0bf9 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 6e42: 3280 movi r2, 128 + 6e44: 932b ld.w r1, (r3, 0x2c) + 6e46: 4242 lsli r2, r2, 2 + 6e48: 6848 and r1, r2 + 6e4a: 3940 cmpnei r1, 0 + 6e4c: 0bf3 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 6e4e: 3280 movi r2, 128 + 6e50: 932b ld.w r1, (r3, 0x2c) + 6e52: 4243 lsli r2, r2, 3 + 6e54: 6848 and r1, r2 + 6e56: 3940 cmpnei r1, 0 + 6e58: 0bed bt 0x6e32 // 6e32 + 6e5a: 076b br 0x6d30 // 6d30 + 6e5c: 20000020 .long 0x20000020 + 6e60: 20000210 .long 0x20000210 + 6e64: 2000020c .long 0x2000020c + +Disassembly of section .text.WWDTHandler: + +00006e68 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 6e68: 1460 nie + 6e6a: 1462 ipush + 6e6c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 6e6e: 10ab lrw r5, 0x20000010 // 6e98 + 6e70: 3401 movi r4, 1 + 6e72: 9560 ld.w r3, (r5, 0x0) + 6e74: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 6e76: 30ff movi r0, 255 + 6e78: e3fffbae bsr 0x65d4 // 65d4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 6e7c: 9540 ld.w r2, (r5, 0x0) + 6e7e: 9263 ld.w r3, (r2, 0xc) + 6e80: 68d0 and r3, r4 + 6e82: 3b40 cmpnei r3, 0 + 6e84: 0c02 bf 0x6e88 // 6e88 + { + WWDT->ICR = WWDT_EVI; + 6e86: b285 st.w r4, (r2, 0x14) + } +} + 6e88: d9ee2002 ld.w r15, (r14, 0x8) + 6e8c: 98a1 ld.w r5, (r14, 0x4) + 6e8e: 9880 ld.w r4, (r14, 0x0) + 6e90: 1403 addi r14, r14, 12 + 6e92: 1463 ipop + 6e94: 1461 nir + 6e96: 0000 bkpt + 6e98: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00006e9c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 6e9c: 1460 nie + 6e9e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 6ea0: 107e lrw r3, 0x20000024 // 6f18 + 6ea2: 3101 movi r1, 1 + 6ea4: 9360 ld.w r3, (r3, 0x0) + 6ea6: 237f addi r3, 128 + 6ea8: 9355 ld.w r2, (r3, 0x54) + 6eaa: 6884 and r2, r1 + 6eac: 3a40 cmpnei r2, 0 + 6eae: 0c04 bf 0x6eb6 // 6eb6 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 6eb0: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 6eb2: 1463 ipop + 6eb4: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 6eb6: 9355 ld.w r2, (r3, 0x54) + 6eb8: 3102 movi r1, 2 + 6eba: 6884 and r2, r1 + 6ebc: 3a40 cmpnei r2, 0 + 6ebe: 0bf9 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 6ec0: 9355 ld.w r2, (r3, 0x54) + 6ec2: 3110 movi r1, 16 + 6ec4: 6884 and r2, r1 + 6ec6: 3a40 cmpnei r2, 0 + 6ec8: 0bf4 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 6eca: 9355 ld.w r2, (r3, 0x54) + 6ecc: 3120 movi r1, 32 + 6ece: 6884 and r2, r1 + 6ed0: 3a40 cmpnei r2, 0 + 6ed2: 0bef bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 6ed4: 3280 movi r2, 128 + 6ed6: 9335 ld.w r1, (r3, 0x54) + 6ed8: 4241 lsli r2, r2, 1 + 6eda: 6848 and r1, r2 + 6edc: 3940 cmpnei r1, 0 + 6ede: 0c03 bf 0x6ee4 // 6ee4 + GPT0->ICR = GPT_INT_PEND; + 6ee0: b357 st.w r2, (r3, 0x5c) +} + 6ee2: 07e8 br 0x6eb2 // 6eb2 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 6ee4: 3280 movi r2, 128 + 6ee6: 9335 ld.w r1, (r3, 0x54) + 6ee8: 4242 lsli r2, r2, 2 + 6eea: 6848 and r1, r2 + 6eec: 3940 cmpnei r1, 0 + 6eee: 0bf9 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 6ef0: 3280 movi r2, 128 + 6ef2: 9335 ld.w r1, (r3, 0x54) + 6ef4: 4243 lsli r2, r2, 3 + 6ef6: 6848 and r1, r2 + 6ef8: 3940 cmpnei r1, 0 + 6efa: 0bf3 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 6efc: 3280 movi r2, 128 + 6efe: 9335 ld.w r1, (r3, 0x54) + 6f00: 4244 lsli r2, r2, 4 + 6f02: 6848 and r1, r2 + 6f04: 3940 cmpnei r1, 0 + 6f06: 0bed bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 6f08: 3280 movi r2, 128 + 6f0a: 9335 ld.w r1, (r3, 0x54) + 6f0c: 4249 lsli r2, r2, 9 + 6f0e: 6848 and r1, r2 + 6f10: 3940 cmpnei r1, 0 + 6f12: 0be7 bt 0x6ee0 // 6ee0 + 6f14: 07cf br 0x6eb2 // 6eb2 + 6f16: 0000 bkpt + 6f18: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00006f1c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 6f1c: 1460 nie + 6f1e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 6f20: 1079 lrw r3, 0x20000018 // 6f84 + 6f22: 3101 movi r1, 1 + 6f24: 9360 ld.w r3, (r3, 0x0) + 6f26: 934a ld.w r2, (r3, 0x28) + 6f28: 6884 and r2, r1 + 6f2a: 3a40 cmpnei r2, 0 + 6f2c: 0c14 bf 0x6f54 // 6f54 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 6f2e: 1057 lrw r2, 0xca53 // 6f88 + RTC->ICR=ALRA_INT; + 6f30: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 6f32: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 6f34: 9342 ld.w r2, (r3, 0x8) + 6f36: 6c84 or r2, r1 + 6f38: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 6f3a: 3280 movi r2, 128 + 6f3c: 424d lsli r2, r2, 13 + 6f3e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 6f40: 3102 movi r1, 2 + 6f42: 9342 ld.w r2, (r3, 0x8) + 6f44: 6884 and r2, r1 + 6f46: 3a40 cmpnei r2, 0 + 6f48: 0bfd bt 0x6f42 // 6f42 + RTC->CR &= ~0x1; + 6f4a: 9342 ld.w r2, (r3, 0x8) + 6f4c: 3a80 bclri r2, 0 + 6f4e: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 6f50: 1463 ipop + 6f52: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 6f54: 934a ld.w r2, (r3, 0x28) + 6f56: 3102 movi r1, 2 + 6f58: 6884 and r2, r1 + 6f5a: 3a40 cmpnei r2, 0 + 6f5c: 0c03 bf 0x6f62 // 6f62 + RTC->ICR=RTC_TRGEV1_INT; + 6f5e: b32b st.w r1, (r3, 0x2c) +} + 6f60: 07f8 br 0x6f50 // 6f50 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 6f62: 934a ld.w r2, (r3, 0x28) + 6f64: 3104 movi r1, 4 + 6f66: 6884 and r2, r1 + 6f68: 3a40 cmpnei r2, 0 + 6f6a: 0bfa bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 6f6c: 934a ld.w r2, (r3, 0x28) + 6f6e: 3108 movi r1, 8 + 6f70: 6884 and r2, r1 + 6f72: 3a40 cmpnei r2, 0 + 6f74: 0bf5 bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 6f76: 934a ld.w r2, (r3, 0x28) + 6f78: 3110 movi r1, 16 + 6f7a: 6884 and r2, r1 + 6f7c: 3a40 cmpnei r2, 0 + 6f7e: 0bf0 bt 0x6f5e // 6f5e + 6f80: 07e8 br 0x6f50 // 6f50 + 6f82: 0000 bkpt + 6f84: 20000018 .long 0x20000018 + 6f88: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00006f8c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 6f8c: 1460 nie + 6f8e: 1462 ipush + 6f90: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6f92: 1076 lrw r3, 0x20000040 // 6fe8 + 6f94: 3102 movi r1, 2 + 6f96: 9360 ld.w r3, (r3, 0x0) + 6f98: 9343 ld.w r2, (r3, 0xc) + 6f9a: 6884 and r2, r1 + 6f9c: 3a40 cmpnei r2, 0 + 6f9e: 0c0b bf 0x6fb4 // 6fb4 + { + UART0->ISR=UART_RX_INT_S; + 6fa0: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 6fa2: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 6fa4: 7400 zextb r0, r0 + 6fa6: e0000391 bsr 0x76c8 // 76c8 + } + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } +} + 6faa: d9ee2000 ld.w r15, (r14, 0x0) + 6fae: 1401 addi r14, r14, 4 + 6fb0: 1463 ipop + 6fb2: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 6fb4: 9343 ld.w r2, (r3, 0xc) + 6fb6: 3101 movi r1, 1 + 6fb8: 6884 and r2, r1 + 6fba: 3a40 cmpnei r2, 0 + 6fbc: 0c03 bf 0x6fc2 // 6fc2 + UART0->ISR=UART_TX_IOV_S; + 6fbe: b323 st.w r1, (r3, 0xc) + 6fc0: 07f5 br 0x6faa // 6faa + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 6fc2: 9343 ld.w r2, (r3, 0xc) + 6fc4: 3108 movi r1, 8 + 6fc6: 6884 and r2, r1 + 6fc8: 3a40 cmpnei r2, 0 + 6fca: 0bfa bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 6fcc: 9343 ld.w r2, (r3, 0xc) + 6fce: 3104 movi r1, 4 + 6fd0: 6884 and r2, r1 + 6fd2: 3a40 cmpnei r2, 0 + 6fd4: 0bf5 bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 6fd6: 3280 movi r2, 128 + 6fd8: 9323 ld.w r1, (r3, 0xc) + 6fda: 424c lsli r2, r2, 12 + 6fdc: 6848 and r1, r2 + 6fde: 3940 cmpnei r1, 0 + 6fe0: 0fe5 bf 0x6faa // 6faa + UART0->ISR=UART_TX_DONE_S; + 6fe2: b343 st.w r2, (r3, 0xc) +} + 6fe4: 07e3 br 0x6faa // 6faa + 6fe6: 0000 bkpt + 6fe8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00006fec : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 6fec: 1460 nie + 6fee: 1462 ipush + 6ff0: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6ff2: 107f lrw r3, 0x2000003c // 706c + 6ff4: 3102 movi r1, 2 + 6ff6: 9360 ld.w r3, (r3, 0x0) + 6ff8: 9343 ld.w r2, (r3, 0xc) + 6ffa: 6884 and r2, r1 + 6ffc: 3a40 cmpnei r2, 0 + 6ffe: 0c0b bf 0x7014 // 7014 + { + UART1->ISR=UART_RX_INT_S; + 7000: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 7002: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 7004: 7400 zextb r0, r0 + 7006: e00003ab bsr 0x775c // 775c + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 700a: d9ee2000 ld.w r15, (r14, 0x0) + 700e: 1401 addi r14, r14, 4 + 7010: 1463 ipop + 7012: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 7014: 9323 ld.w r1, (r3, 0xc) + 7016: 3201 movi r2, 1 + 7018: 6848 and r1, r2 + 701a: 3940 cmpnei r1, 0 + 701c: 0c0d bf 0x7036 // 7036 + UART1->ISR=UART_TX_INT_S; + 701e: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 7020: 1074 lrw r3, 0x200000c8 // 7070 + 7022: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7024: 1074 lrw r3, 0x200000cc // 7074 + 7026: 9360 ld.w r3, (r3, 0x0) + 7028: 3b41 cmpnei r3, 1 + 702a: 0bf0 bt 0x700a // 700a + RS485_Comm_Start ++; + 702c: 1053 lrw r2, 0x200000d0 // 7078 + RS485_Comm_End ++; + 702e: 9260 ld.w r3, (r2, 0x0) + 7030: 2300 addi r3, 1 + 7032: b260 st.w r3, (r2, 0x0) +} + 7034: 07eb br 0x700a // 700a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 7036: 9343 ld.w r2, (r3, 0xc) + 7038: 3108 movi r1, 8 + 703a: 6884 and r2, r1 + 703c: 3a40 cmpnei r2, 0 + 703e: 0c03 bf 0x7044 // 7044 + UART1->ISR=UART_TX_IOV_S; + 7040: b323 st.w r1, (r3, 0xc) + 7042: 07e4 br 0x700a // 700a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 7044: 9343 ld.w r2, (r3, 0xc) + 7046: 3104 movi r1, 4 + 7048: 6884 and r2, r1 + 704a: 3a40 cmpnei r2, 0 + 704c: 0bfa bt 0x7040 // 7040 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 704e: 3180 movi r1, 128 + 7050: 9303 ld.w r0, (r3, 0xc) + 7052: 412c lsli r1, r1, 12 + 7054: 6804 and r0, r1 + 7056: 3840 cmpnei r0, 0 + 7058: 0fd9 bf 0x700a // 700a + UART1->ISR=UART_TX_DONE_S; + 705a: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 705c: 1065 lrw r3, 0x200000c8 // 7070 + 705e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7060: 1065 lrw r3, 0x200000cc // 7074 + 7062: 9360 ld.w r3, (r3, 0x0) + 7064: 3b41 cmpnei r3, 1 + 7066: 0bd2 bt 0x700a // 700a + RS485_Comm_End ++; + 7068: 1045 lrw r2, 0x200000d4 // 707c + 706a: 07e2 br 0x702e // 702e + 706c: 2000003c .long 0x2000003c + 7070: 200000c8 .long 0x200000c8 + 7074: 200000cc .long 0x200000cc + 7078: 200000d0 .long 0x200000d0 + 707c: 200000d4 .long 0x200000d4 + +Disassembly of section .text.UART2IntHandler: + +00007080 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 7080: 1460 nie + 7082: 1462 ipush + 7084: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 7086: 1076 lrw r3, 0x20000038 // 70dc + 7088: 3102 movi r1, 2 + 708a: 9360 ld.w r3, (r3, 0x0) + 708c: 9343 ld.w r2, (r3, 0xc) + 708e: 6884 and r2, r1 + 7090: 3a40 cmpnei r2, 0 + 7092: 0c0b bf 0x70a8 // 70a8 + { + UART2->ISR=UART_RX_INT_S; + 7094: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 7096: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 7098: 7400 zextb r0, r0 + 709a: e000037b bsr 0x7790 // 7790 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART2->ISR=UART_TX_DONE_S; + } + +} + 709e: d9ee2000 ld.w r15, (r14, 0x0) + 70a2: 1401 addi r14, r14, 4 + 70a4: 1463 ipop + 70a6: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 70a8: 9343 ld.w r2, (r3, 0xc) + 70aa: 3101 movi r1, 1 + 70ac: 6884 and r2, r1 + 70ae: 3a40 cmpnei r2, 0 + 70b0: 0c03 bf 0x70b6 // 70b6 + UART2->ISR=UART_TX_IOV_S; + 70b2: b323 st.w r1, (r3, 0xc) + 70b4: 07f5 br 0x709e // 709e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 70b6: 9343 ld.w r2, (r3, 0xc) + 70b8: 3108 movi r1, 8 + 70ba: 6884 and r2, r1 + 70bc: 3a40 cmpnei r2, 0 + 70be: 0bfa bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 70c0: 9343 ld.w r2, (r3, 0xc) + 70c2: 3104 movi r1, 4 + 70c4: 6884 and r2, r1 + 70c6: 3a40 cmpnei r2, 0 + 70c8: 0bf5 bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 70ca: 3280 movi r2, 128 + 70cc: 9323 ld.w r1, (r3, 0xc) + 70ce: 424c lsli r2, r2, 12 + 70d0: 6848 and r1, r2 + 70d2: 3940 cmpnei r1, 0 + 70d4: 0fe5 bf 0x709e // 709e + UART2->ISR=UART_TX_DONE_S; + 70d6: b343 st.w r2, (r3, 0xc) +} + 70d8: 07e3 br 0x709e // 709e + 70da: 0000 bkpt + 70dc: 20000038 .long 0x20000038 + +Disassembly of section .text.SPI0IntHandler: + +000070e0 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 70e0: 1460 nie + 70e2: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 70e4: 1178 lrw r3, 0x20000034 // 71c4 + 70e6: 3101 movi r1, 1 + 70e8: 9360 ld.w r3, (r3, 0x0) + 70ea: 9347 ld.w r2, (r3, 0x1c) + 70ec: 6884 and r2, r1 + 70ee: 3a40 cmpnei r2, 0 + 70f0: 0c03 bf 0x70f6 // 70f6 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 70f2: b328 st.w r1, (r3, 0x20) + } + +} + 70f4: 0407 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 70f6: 9347 ld.w r2, (r3, 0x1c) + 70f8: 3002 movi r0, 2 + 70fa: 6880 and r2, r0 + 70fc: 3a40 cmpnei r2, 0 + 70fe: 0c04 bf 0x7106 // 7106 + SPI0->ICR = SPI_RTIM; + 7100: b308 st.w r0, (r3, 0x20) +} + 7102: 1463 ipop + 7104: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 7106: 9347 ld.w r2, (r3, 0x1c) + 7108: 3004 movi r0, 4 + 710a: 6880 and r2, r0 + 710c: 3a40 cmpnei r2, 0 + 710e: 0c55 bf 0x71b8 // 71b8 + SPI0->ICR = SPI_RXIM; + 7110: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 7112: 9302 ld.w r0, (r3, 0x8) + 7114: 32aa movi r2, 170 + 7116: 6482 cmpne r0, r2 + 7118: 083e bt 0x7194 // 7194 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 711a: 3102 movi r1, 2 + 711c: 9343 ld.w r2, (r3, 0xc) + 711e: 6884 and r2, r1 + 7120: 3a40 cmpnei r2, 0 + 7122: 0ffd bf 0x711c // 711c + SPI0->DR = 0x11; + 7124: 3211 movi r2, 17 + 7126: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7128: 3110 movi r1, 16 + 712a: 9343 ld.w r2, (r3, 0xc) + 712c: 6884 and r2, r1 + 712e: 3a40 cmpnei r2, 0 + 7130: 0bfd bt 0x712a // 712a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7132: 3102 movi r1, 2 + 7134: 9343 ld.w r2, (r3, 0xc) + 7136: 6884 and r2, r1 + 7138: 3a40 cmpnei r2, 0 + 713a: 0ffd bf 0x7134 // 7134 + SPI0->DR = 0x12; + 713c: 3212 movi r2, 18 + 713e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7140: 3110 movi r1, 16 + 7142: 9343 ld.w r2, (r3, 0xc) + 7144: 6884 and r2, r1 + 7146: 3a40 cmpnei r2, 0 + 7148: 0bfd bt 0x7142 // 7142 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 714a: 3102 movi r1, 2 + 714c: 9343 ld.w r2, (r3, 0xc) + 714e: 6884 and r2, r1 + 7150: 3a40 cmpnei r2, 0 + 7152: 0ffd bf 0x714c // 714c + SPI0->DR = 0x13; + 7154: 3213 movi r2, 19 + 7156: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7158: 3110 movi r1, 16 + 715a: 9343 ld.w r2, (r3, 0xc) + 715c: 6884 and r2, r1 + 715e: 3a40 cmpnei r2, 0 + 7160: 0bfd bt 0x715a // 715a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7162: 3102 movi r1, 2 + 7164: 9343 ld.w r2, (r3, 0xc) + 7166: 6884 and r2, r1 + 7168: 3a40 cmpnei r2, 0 + 716a: 0ffd bf 0x7164 // 7164 + SPI0->DR = 0x14; + 716c: 3214 movi r2, 20 + 716e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7170: 3110 movi r1, 16 + 7172: 9343 ld.w r2, (r3, 0xc) + 7174: 6884 and r2, r1 + 7176: 3a40 cmpnei r2, 0 + 7178: 0bfd bt 0x7172 // 7172 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 717a: 3102 movi r1, 2 + 717c: 9343 ld.w r2, (r3, 0xc) + 717e: 6884 and r2, r1 + 7180: 3a40 cmpnei r2, 0 + 7182: 0ffd bf 0x717c // 717c + SPI0->DR = 0x15; + 7184: 3215 movi r2, 21 + 7186: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7188: 3110 movi r1, 16 + 718a: 9343 ld.w r2, (r3, 0xc) + 718c: 6884 and r2, r1 + 718e: 3a40 cmpnei r2, 0 + 7190: 0bfd bt 0x718a // 718a + 7192: 07b8 br 0x7102 // 7102 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 7194: 9343 ld.w r2, (r3, 0xc) + 7196: 6884 and r2, r1 + 7198: 3a40 cmpnei r2, 0 + 719a: 0bb4 bt 0x7102 // 7102 + SPI0->DR=0x0; //FIFO=0 + 719c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 719e: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 71a0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71aa: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71ac: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 71ae: 9343 ld.w r2, (r3, 0xc) + 71b0: 6884 and r2, r1 + 71b2: 3a40 cmpnei r2, 0 + 71b4: 0bfd bt 0x71ae // 71ae + 71b6: 07a6 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 71b8: 9347 ld.w r2, (r3, 0x1c) + 71ba: 3108 movi r1, 8 + 71bc: 6884 and r2, r1 + 71be: 3a40 cmpnei r2, 0 + 71c0: 0b99 bt 0x70f2 // 70f2 + 71c2: 07a0 br 0x7102 // 7102 + 71c4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000071c8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 71c8: 1460 nie + 71ca: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 71cc: 1073 lrw r3, 0x2000002c // 7218 + 71ce: 3104 movi r1, 4 + 71d0: 9360 ld.w r3, (r3, 0x0) + 71d2: 9349 ld.w r2, (r3, 0x24) + 71d4: 6884 and r2, r1 + 71d6: 3a40 cmpnei r2, 0 + 71d8: 0c02 bf 0x71dc // 71dc + { + SIO0->ICR=0X04; + 71da: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 71dc: 9349 ld.w r2, (r3, 0x24) + 71de: 3101 movi r1, 1 + 71e0: 6884 and r2, r1 + 71e2: 3a40 cmpnei r2, 0 + 71e4: 0c02 bf 0x71e8 // 71e8 + { + SIO0->ICR=0X01; + 71e6: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 71e8: 9349 ld.w r2, (r3, 0x24) + 71ea: 3102 movi r1, 2 + 71ec: 6884 and r2, r1 + 71ee: 3a40 cmpnei r2, 0 + 71f0: 0c03 bf 0x71f6 // 71f6 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 71f2: b32b st.w r1, (r3, 0x2c) + } +} + 71f4: 0410 br 0x7214 // 7214 + else if(SIO0->MISR&0X08) //RXBUFFULL + 71f6: 9349 ld.w r2, (r3, 0x24) + 71f8: 3108 movi r1, 8 + 71fa: 6884 and r2, r1 + 71fc: 3a40 cmpnei r2, 0 + 71fe: 0bfa bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X010) //BREAK + 7200: 9349 ld.w r2, (r3, 0x24) + 7202: 3110 movi r1, 16 + 7204: 6884 and r2, r1 + 7206: 3a40 cmpnei r2, 0 + 7208: 0bf5 bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X020) //TIMEOUT + 720a: 9349 ld.w r2, (r3, 0x24) + 720c: 3120 movi r1, 32 + 720e: 6884 and r2, r1 + 7210: 3a40 cmpnei r2, 0 + 7212: 0bf0 bt 0x71f2 // 71f2 +} + 7214: 1463 ipop + 7216: 1461 nir + 7218: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +0000721c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 721c: 1460 nie + 721e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 7220: 106a lrw r3, 0x2000005c // 7248 + 7222: 3101 movi r1, 1 + 7224: 9360 ld.w r3, (r3, 0x0) + 7226: 237f addi r3, 128 + 7228: 934c ld.w r2, (r3, 0x30) + 722a: 6884 and r2, r1 + 722c: 3a40 cmpnei r2, 0 + 722e: 0c04 bf 0x7236 // 7236 + { + SYSCON->EXICR = EXI_PIN0; + 7230: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 7232: 1463 ipop + 7234: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 7236: 3280 movi r2, 128 + 7238: 932c ld.w r1, (r3, 0x30) + 723a: 4249 lsli r2, r2, 9 + 723c: 6848 and r1, r2 + 723e: 3940 cmpnei r1, 0 + 7240: 0ff9 bf 0x7232 // 7232 + SYSCON->EXICR = EXI_PIN16; + 7242: b34b st.w r2, (r3, 0x2c) +} + 7244: 07f7 br 0x7232 // 7232 + 7246: 0000 bkpt + 7248: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +0000724c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 724c: 1460 nie + 724e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 7250: 106a lrw r3, 0x2000005c // 7278 + 7252: 3102 movi r1, 2 + 7254: 9360 ld.w r3, (r3, 0x0) + 7256: 237f addi r3, 128 + 7258: 934c ld.w r2, (r3, 0x30) + 725a: 6884 and r2, r1 + 725c: 3a40 cmpnei r2, 0 + 725e: 0c04 bf 0x7266 // 7266 + { + SYSCON->EXICR = EXI_PIN1; + 7260: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 7262: 1463 ipop + 7264: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 7266: 3280 movi r2, 128 + 7268: 932c ld.w r1, (r3, 0x30) + 726a: 424a lsli r2, r2, 10 + 726c: 6848 and r1, r2 + 726e: 3940 cmpnei r1, 0 + 7270: 0ff9 bf 0x7262 // 7262 + SYSCON->EXICR = EXI_PIN17; + 7272: b34b st.w r2, (r3, 0x2c) +} + 7274: 07f7 br 0x7262 // 7262 + 7276: 0000 bkpt + 7278: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +0000727c : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 727c: 1460 nie + 727e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 7280: 1070 lrw r3, 0x2000005c // 72c0 + 7282: 3104 movi r1, 4 + 7284: 9360 ld.w r3, (r3, 0x0) + 7286: 237f addi r3, 128 + 7288: 934c ld.w r2, (r3, 0x30) + 728a: 6884 and r2, r1 + 728c: 3a40 cmpnei r2, 0 + 728e: 0c04 bf 0x7296 // 7296 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 7290: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 7292: 1463 ipop + 7294: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 7296: 934c ld.w r2, (r3, 0x30) + 7298: 3108 movi r1, 8 + 729a: 6884 and r2, r1 + 729c: 3a40 cmpnei r2, 0 + 729e: 0bf9 bt 0x7290 // 7290 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 72a0: 3280 movi r2, 128 + 72a2: 932c ld.w r1, (r3, 0x30) + 72a4: 424b lsli r2, r2, 11 + 72a6: 6848 and r1, r2 + 72a8: 3940 cmpnei r1, 0 + 72aa: 0c03 bf 0x72b0 // 72b0 + SYSCON->EXICR = EXI_PIN19; + 72ac: b34b st.w r2, (r3, 0x2c) +} + 72ae: 07f2 br 0x7292 // 7292 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 72b0: 3280 movi r2, 128 + 72b2: 932c ld.w r1, (r3, 0x30) + 72b4: 424c lsli r2, r2, 12 + 72b6: 6848 and r1, r2 + 72b8: 3940 cmpnei r1, 0 + 72ba: 0bf9 bt 0x72ac // 72ac + 72bc: 07eb br 0x7292 // 7292 + 72be: 0000 bkpt + 72c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000072c4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 72c4: 1460 nie + 72c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 72c8: 1066 lrw r3, 0x2000005c // 72e0 + 72ca: 3110 movi r1, 16 + 72cc: 9360 ld.w r3, (r3, 0x0) + 72ce: 237f addi r3, 128 + 72d0: 934c ld.w r2, (r3, 0x30) + 72d2: 6884 and r2, r1 + 72d4: 3a40 cmpnei r2, 0 + 72d6: 0c02 bf 0x72da // 72da + { + SYSCON->EXICR = EXI_PIN4; + 72d8: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 72da: 1463 ipop + 72dc: 1461 nir + 72de: 0000 bkpt + 72e0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +000072e4 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 72e4: 1460 nie + 72e6: 1462 ipush + 72e8: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 72ea: 1079 lrw r3, 0x2000005c // 734c + 72ec: 3280 movi r2, 128 + 72ee: 9360 ld.w r3, (r3, 0x0) + 72f0: 237f addi r3, 128 + 72f2: 932c ld.w r1, (r3, 0x30) + 72f4: 4243 lsli r2, r2, 3 + 72f6: 6848 and r1, r2 + 72f8: 3940 cmpnei r1, 0 + 72fa: 0c07 bf 0x7308 // 7308 + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 72fc: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 72fe: d9ee2000 ld.w r15, (r14, 0x0) + 7302: 1401 addi r14, r14, 4 + 7304: 1463 ipop + 7306: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 7308: 3280 movi r2, 128 + 730a: 932c ld.w r1, (r3, 0x30) + 730c: 4244 lsli r2, r2, 4 + 730e: 6848 and r1, r2 + 7310: 3940 cmpnei r1, 0 + 7312: 0bf5 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 7314: 3280 movi r2, 128 + 7316: 932c ld.w r1, (r3, 0x30) + 7318: 4245 lsli r2, r2, 5 + 731a: 6848 and r1, r2 + 731c: 3940 cmpnei r1, 0 + 731e: 0bef bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 7320: 3280 movi r2, 128 + 7322: 932c ld.w r1, (r3, 0x30) + 7324: 4246 lsli r2, r2, 6 + 7326: 6848 and r1, r2 + 7328: 3940 cmpnei r1, 0 + 732a: 0be9 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 732c: 3280 movi r2, 128 + 732e: 932c ld.w r1, (r3, 0x30) + 7330: 4247 lsli r2, r2, 7 + 7332: 6848 and r1, r2 + 7334: 3940 cmpnei r1, 0 + 7336: 0be3 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 7338: 3280 movi r2, 128 + 733a: 932c ld.w r1, (r3, 0x30) + 733c: 4248 lsli r2, r2, 8 + 733e: 6848 and r1, r2 + 7340: 3940 cmpnei r1, 0 + 7342: 0fde bf 0x72fe // 72fe + SYSCON->EXICR = EXI_PIN15; + 7344: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 7346: e0000349 bsr 0x79d8 // 79d8 +} + 734a: 07da br 0x72fe // 72fe + 734c: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00007350 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 7350: 1460 nie + 7352: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 7354: 106b lrw r3, 0x20000014 // 7380 + 7356: 3101 movi r1, 1 + 7358: 9360 ld.w r3, (r3, 0x0) + 735a: 934e ld.w r2, (r3, 0x38) + 735c: 6884 and r2, r1 + 735e: 3a40 cmpnei r2, 0 + 7360: 0c03 bf 0x7366 // 7366 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 7362: b330 st.w r1, (r3, 0x40) + } +} + 7364: 040b br 0x737a // 737a + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 7366: 934e ld.w r2, (r3, 0x38) + 7368: 3102 movi r1, 2 + 736a: 6884 and r2, r1 + 736c: 3a40 cmpnei r2, 0 + 736e: 0bfa bt 0x7362 // 7362 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 7370: 934e ld.w r2, (r3, 0x38) + 7372: 3104 movi r1, 4 + 7374: 6884 and r2, r1 + 7376: 3a40 cmpnei r2, 0 + 7378: 0bf5 bt 0x7362 // 7362 +} + 737a: 1463 ipop + 737c: 1461 nir + 737e: 0000 bkpt + 7380: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00007384 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 7384: 1460 nie + 7386: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 7388: 1071 lrw r3, 0x2000000c // 73cc + 738a: 3101 movi r1, 1 + 738c: 9360 ld.w r3, (r3, 0x0) + 738e: 934c ld.w r2, (r3, 0x30) + 7390: 6884 and r2, r1 + 7392: 3a40 cmpnei r2, 0 + 7394: 0c0a bf 0x73a8 // 73a8 + { + BT0->ICR = BT_PEND; + 7396: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 7398: 9341 ld.w r2, (r3, 0x4) + 739a: 3a86 bclri r2, 6 + 739c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 739e: 9340 ld.w r2, (r3, 0x0) + 73a0: 3200 movi r2, 0 + 73a2: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 73a4: 1463 ipop + 73a6: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 73a8: 934c ld.w r2, (r3, 0x30) + 73aa: 3102 movi r1, 2 + 73ac: 6884 and r2, r1 + 73ae: 3a40 cmpnei r2, 0 + 73b0: 0c03 bf 0x73b6 // 73b6 + BT0->ICR = BT_EVTRG; + 73b2: b32d st.w r1, (r3, 0x34) +} + 73b4: 07f8 br 0x73a4 // 73a4 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 73b6: 934c ld.w r2, (r3, 0x30) + 73b8: 3104 movi r1, 4 + 73ba: 6884 and r2, r1 + 73bc: 3a40 cmpnei r2, 0 + 73be: 0bfa bt 0x73b2 // 73b2 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 73c0: 934c ld.w r2, (r3, 0x30) + 73c2: 3108 movi r1, 8 + 73c4: 6884 and r2, r1 + 73c6: 3a40 cmpnei r2, 0 + 73c8: 0bf5 bt 0x73b2 // 73b2 + 73ca: 07ed br 0x73a4 // 73a4 + 73cc: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000073d0 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 73d0: 1460 nie + 73d2: 1462 ipush + 73d4: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 73d6: 1079 lrw r3, 0x20000008 // 7438 + 73d8: 3101 movi r1, 1 + 73da: 9360 ld.w r3, (r3, 0x0) + 73dc: 934c ld.w r2, (r3, 0x30) + 73de: 6884 and r2, r1 + 73e0: 3a40 cmpnei r2, 0 + 73e2: 0c03 bf 0x73e8 // 73e8 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 73e4: b32d st.w r1, (r3, 0x34) + } +} + 73e6: 0418 br 0x7416 // 7416 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 73e8: 934c ld.w r2, (r3, 0x30) + 73ea: 3102 movi r1, 2 + 73ec: 6884 and r2, r1 + 73ee: 3a40 cmpnei r2, 0 + 73f0: 0c18 bf 0x7420 // 7420 + BT1->ICR = BT_CMP; + 73f2: b32d st.w r1, (r3, 0x34) + NUM++; + 73f4: 1072 lrw r3, 0x200000bc // 743c + 73f6: 8340 ld.b r2, (r3, 0x0) + 73f8: 2200 addi r2, 1 + 73fa: 7488 zextb r2, r2 + SysTick_100us++; + 73fc: 9321 ld.w r1, (r3, 0x4) + 73fe: 2100 addi r1, 1 + if(NUM >= 10){ + 7400: 3a09 cmphsi r2, 10 + NUM++; + 7402: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 7404: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 7406: 0c08 bf 0x7416 // 7416 + NUM = 0; + 7408: 3200 movi r2, 0 + 740a: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 740c: 9342 ld.w r2, (r3, 0x8) + 740e: 2200 addi r2, 1 + 7410: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 7412: e00002c3 bsr 0x7998 // 7998 +} + 7416: d9ee2000 ld.w r15, (r14, 0x0) + 741a: 1401 addi r14, r14, 4 + 741c: 1463 ipop + 741e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 7420: 934c ld.w r2, (r3, 0x30) + 7422: 3104 movi r1, 4 + 7424: 6884 and r2, r1 + 7426: 3a40 cmpnei r2, 0 + 7428: 0bde bt 0x73e4 // 73e4 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 742a: 934c ld.w r2, (r3, 0x30) + 742c: 3108 movi r1, 8 + 742e: 6884 and r2, r1 + 7430: 3a40 cmpnei r2, 0 + 7432: 0bd9 bt 0x73e4 // 73e4 + 7434: 07f1 br 0x7416 // 7416 + 7436: 0000 bkpt + 7438: 20000008 .long 0x20000008 + 743c: 200000bc .long 0x200000bc + +Disassembly of section .text.PriviledgeVioHandler: + +00007440 : + 7440: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00007442 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 7442: 1460 nie + 7444: 1462 ipush + // ISR content ... + +} + 7446: 1463 ipop + 7448: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000744a : + 744a: 1460 nie + 744c: 1462 ipush + 744e: 1463 ipop + 7450: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00007452 : + 7452: 1460 nie + 7454: 1462 ipush + 7456: 1463 ipop + 7458: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000745a : + 745a: 1460 nie + 745c: 1462 ipush + 745e: 1463 ipop + 7460: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00007462 : + 7462: 1460 nie + 7464: 1462 ipush + 7466: 1463 ipop + 7468: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000746a : + 746a: 1460 nie + 746c: 1462 ipush + 746e: 1463 ipop + 7470: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00007472 : + 7472: 1460 nie + 7474: 1462 ipush + 7476: 1463 ipop + 7478: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +0000747a : + 747a: 1460 nie + 747c: 1462 ipush + 747e: 1463 ipop + 7480: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00007482 : + 7482: 1460 nie + 7484: 1462 ipush + 7486: 1463 ipop + 7488: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +0000748a : + 748a: 1460 nie + 748c: 1462 ipush + 748e: 1463 ipop + 7490: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00007492 : + 7492: 1460 nie + 7494: 1462 ipush + 7496: 1463 ipop + 7498: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000749a : + 749a: 1460 nie + 749c: 1462 ipush + 749e: 1463 ipop + 74a0: 1461 nir + +Disassembly of section .text.__divsi3: + +000074a4 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 74a4: 14c1 push r4 + int PSR; + __asm volatile( + 74a6: c0006023 mfcr r3, cr<0, 0> + 74aa: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74ae: 1046 lrw r2, 0x20000000 // 74c4 <__divsi3+0x20> + 74b0: 3400 movi r4, 0 + 74b2: 9240 ld.w r2, (r2, 0x0) + 74b4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74b6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74b8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74ba: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74bc: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74c0: 9202 ld.w r0, (r2, 0x8) +} + 74c2: 1481 pop r4 + 74c4: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000074c8 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 74c8: 14c1 push r4 + int PSR; + __asm volatile( + 74ca: c0006023 mfcr r3, cr<0, 0> + 74ce: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 74d2: 1046 lrw r2, 0x20000000 // 74e8 <__udivsi3+0x20> + 74d4: 3401 movi r4, 1 + 74d6: 9240 ld.w r2, (r2, 0x0) + 74d8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74da: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74dc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74de: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74e0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74e4: 9202 ld.w r0, (r2, 0x8) +} + 74e6: 1481 pop r4 + 74e8: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +000074ec <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 74ec: 14c1 push r4 + int PSR; + __asm volatile( + 74ee: c0006023 mfcr r3, cr<0, 0> + 74f2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74f6: 1046 lrw r2, 0x20000000 // 750c <__modsi3+0x20> + 74f8: 3400 movi r4, 0 + 74fa: 9240 ld.w r2, (r2, 0x0) + 74fc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74fe: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7500: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7502: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7504: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 7508: 9203 ld.w r0, (r2, 0xc) +} + 750a: 1481 pop r4 + 750c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00007510 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 7510: 14c1 push r4 + int PSR; + __asm volatile( + 7512: c0006023 mfcr r3, cr<0, 0> + 7516: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 751a: 1046 lrw r2, 0x20000000 // 7530 <__umodsi3+0x20> + 751c: 3401 movi r4, 1 + 751e: 9240 ld.w r2, (r2, 0x0) + 7520: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 7522: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7524: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7526: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7528: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 752c: 9203 ld.w r0, (r2, 0xc) +} + 752e: 1481 pop r4 + 7530: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00007534 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 7534: c1807420 psrset ee, ie +} + 7538: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000753a : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 753a: c0807020 psrclr ie +} + 753e: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00007540 : +UART_t g_uart; +UART_t g_uart1; +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7540: 14d2 push r4-r5, r15 + switch((U8_T)uart_id){ + 7542: 7400 zextb r0, r0 + 7544: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7546: 6d47 mov r5, r1 + switch((U8_T)uart_id){ + 7548: 0c1f bf 0x7586 // 7586 + 754a: 3840 cmpnei r0, 0 + 754c: 0c04 bf 0x7554 // 7554 + 754e: 3842 cmpnei r0, 2 + 7550: 0c8c bf 0x7668 // 7668 + g_uart.RecvTimeout = Recv_9600_TimeOut; + g_uart.processing_cf = prt_cf; + + break; + } +} + 7552: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 7554: e3fff896 bsr 0x6680 // 6680 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 7558: 3100 movi r1, 0 + 755a: 3000 movi r0, 0 + 755c: e3fff8e0 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART0,5000,UART_PAR_EVEN); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 7560: 126d lrw r3, 0x20000040 // 7694 + 7562: 3280 movi r2, 128 + 7564: 9300 ld.w r0, (r3, 0x0) + 7566: 4243 lsli r2, r2, 3 + 7568: 122c lrw r1, 0x1388 // 7698 + 756a: e3fff94f bsr 0x6808 // 6808 + UART0_Int_Enable(); + 756e: e3fff8ad bsr 0x66c8 // 66c8 + memset(&g_uart0,0,sizeof(UART_t)); + 7572: 3294 movi r2, 148 + 7574: 3100 movi r1, 0 + 7576: 120a lrw r0, 0x200002d0 // 769c + 7578: e3ffe9f0 bsr 0x4958 // 4958 <__memset_fast> + g_uart0.RecvTimeout = Recv_9600_TimeOut; + 757c: 1269 lrw r3, 0x20000350 // 76a0 + g_uart.RecvTimeout = Recv_9600_TimeOut; + 757e: 3203 movi r2, 3 + 7580: b342 st.w r2, (r3, 0x8) + g_uart.processing_cf = prt_cf; + 7582: b3a4 st.w r5, (r3, 0x10) +} + 7584: 07e7 br 0x7552 // 7552 + memset(&m_send,0,sizeof(MULIT_t)); + 7586: 1288 lrw r4, 0x200003f8 // 76a4 + memset(&g_uart1,0,sizeof(UART_t)); + 7588: 3294 movi r2, 148 + 758a: 3100 movi r1, 0 + 758c: 1207 lrw r0, 0x20000364 // 76a8 + 758e: e3ffe9e5 bsr 0x4958 // 4958 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 7592: 3288 movi r2, 136 + 7594: 3100 movi r1, 0 + 7596: 6c13 mov r0, r4 + 7598: e3ffe9e0 bsr 0x4958 // 4958 <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 759c: 1264 lrw r3, 0x200003e4 // 76ac + 759e: 3203 movi r2, 3 + 75a0: b342 st.w r2, (r3, 0x8) + g_uart1.processing_cf = prt_cf; + 75a2: b3a4 st.w r5, (r3, 0x10) + m_send.HighBit_Flag = 0x01; + 75a4: 245f addi r4, 96 + m_send.BusState_Tick = SysTick_1ms; + 75a6: 1263 lrw r3, 0x200000c4 // 76b0 + GPIO_PullHigh_Init(GPIOA0,15); + 75a8: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 75aa: 9360 ld.w r3, (r3, 0x0) + 75ac: b467 st.w r3, (r4, 0x1c) + m_send.HighBit_Flag = 0x01; + 75ae: 3301 movi r3, 1 + 75b0: a465 st.b r3, (r4, 0x5) + GPIO_PullHigh_Init(GPIOA0,15); + 75b2: 1281 lrw r4, 0x2000004c // 76b4 + 75b4: 9400 ld.w r0, (r4, 0x0) + 75b6: e3fff6d3 bsr 0x635c // 635c + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 75ba: 320f movi r2, 15 + 75bc: 310f movi r1, 15 + 75be: 3000 movi r0, 0 + 75c0: e3fff6e0 bsr 0x6380 // 6380 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 75c4: 300f movi r0, 15 + 75c6: e3fff763 bsr 0x648c // 648c + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 75ca: 3180 movi r1, 128 + 75cc: 3201 movi r2, 1 + 75ce: 4128 lsli r1, r1, 8 + 75d0: 3001 movi r0, 1 + 75d2: e3fff59f bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 75d6: 3180 movi r1, 128 + 75d8: 3200 movi r2, 0 + 75da: 4128 lsli r1, r1, 8 + 75dc: 3001 movi r0, 1 + 75de: e3fff599 bsr 0x6110 // 6110 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 75e2: 3180 movi r1, 128 + 75e4: 4128 lsli r1, r1, 8 + 75e6: 3001 movi r0, 1 + 75e8: e3fff5b4 bsr 0x6150 // 6150 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 75ec: 3180 movi r1, 128 + 75ee: 9400 ld.w r0, (r4, 0x0) + 75f0: 4128 lsli r1, r1, 8 + 75f2: e3fff5c9 bsr 0x6184 // 6184 + EXI4_Int_Enable(); + 75f6: e3fff5c9 bsr 0x6188 // 6188 + UART1_DeInit(); //clear all UART Register + 75fa: e3fff84f bsr 0x6698 // 6698 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 75fe: 3102 movi r1, 2 + 7600: 3001 movi r0, 1 + 7602: e3fff88d bsr 0x671c // 671c + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 7606: 116d lrw r3, 0x2000003c // 76b8 + 7608: 3200 movi r2, 0 + 760a: 9300 ld.w r0, (r3, 0x0) + 760c: 1123 lrw r1, 0x1388 // 7698 + 760e: e3fff8fd bsr 0x6808 // 6808 + UART1_Int_Enable(); + 7612: e3fff869 bsr 0x66e4 // 66e4 + GPIO_Init(GPIOA0,LED_HLW_PIN,Output); + 7616: 9400 ld.w r0, (r4, 0x0) + 7618: 3200 movi r2, 0 + 761a: 310b movi r1, 11 + 761c: e3fff630 bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_BUS_PIN,Output); + 7620: 9400 ld.w r0, (r4, 0x0) + 7622: 3200 movi r2, 0 + 7624: 310c movi r1, 12 + 7626: e3fff62b bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_STATUS_PIN,Output); + 762a: 3200 movi r2, 0 + 762c: 9400 ld.w r0, (r4, 0x0) + 762e: 310d movi r1, 13 + 7630: e3fff626 bsr 0x627c // 627c + HLW_LED_ON; + 7634: 9400 ld.w r0, (r4, 0x0) + 7636: 310b movi r1, 11 + 7638: e3fff7ac bsr 0x6590 // 6590 + BUS_LED_ON; + 763c: 9400 ld.w r0, (r4, 0x0) + 763e: 310c movi r1, 12 + 7640: e3fff7a8 bsr 0x6590 // 6590 + STATUS_LED_ON; + 7644: 9400 ld.w r0, (r4, 0x0) + 7646: 310d movi r1, 13 + 7648: e3fff7a4 bsr 0x6590 // 6590 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 764c: 3200 movi r2, 0 + 764e: 9400 ld.w r0, (r4, 0x0) + 7650: 3107 movi r1, 7 + 7652: e3fff615 bsr 0x627c // 627c + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 7656: 9400 ld.w r0, (r4, 0x0) + 7658: 3107 movi r1, 7 + 765a: e3fff68b bsr 0x6370 // 6370 + WRITE_LOW_DR; + 765e: 9400 ld.w r0, (r4, 0x0) + 7660: 3107 movi r1, 7 + 7662: e3fff797 bsr 0x6590 // 6590 + break; + 7666: 0776 br 0x7552 // 7552 + UART2_DeInit(); //clear all UART Register + 7668: e3fff824 bsr 0x66b0 // 66b0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 766c: 3102 movi r1, 2 + 766e: 3002 movi r0, 2 + 7670: e3fff856 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled , + 7674: 1072 lrw r3, 0x20000038 // 76bc + 7676: 3200 movi r2, 0 + 7678: 9300 ld.w r0, (r3, 0x0) + 767a: 1028 lrw r1, 0x1388 // 7698 + 767c: e3fff8c6 bsr 0x6808 // 6808 + UART2_Int_Enable(); + 7680: e3fff840 bsr 0x6700 // 6700 + memset(&g_uart,0,sizeof(UART_t)); + 7684: 3294 movi r2, 148 + 7686: 3100 movi r1, 0 + 7688: 100e lrw r0, 0x2000023c // 76c0 + 768a: e3ffe967 bsr 0x4958 // 4958 <__memset_fast> + g_uart.RecvTimeout = Recv_9600_TimeOut; + 768e: 106e lrw r3, 0x200002bc // 76c4 + 7690: 0777 br 0x757e // 757e + 7692: 0000 bkpt + 7694: 20000040 .long 0x20000040 + 7698: 00001388 .long 0x00001388 + 769c: 200002d0 .long 0x200002d0 + 76a0: 20000350 .long 0x20000350 + 76a4: 200003f8 .long 0x200003f8 + 76a8: 20000364 .long 0x20000364 + 76ac: 200003e4 .long 0x200003e4 + 76b0: 200000c4 .long 0x200000c4 + 76b4: 2000004c .long 0x2000004c + 76b8: 2000003c .long 0x2000003c + 76bc: 20000038 .long 0x20000038 + 76c0: 2000023c .long 0x2000023c + 76c4: 200002bc .long 0x200002bc + +Disassembly of section .text.UART0_RecvINT_Processing: + +000076c8 : +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + if((g_uart0.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart0.RecvLen = 0; + 76c8: 106a lrw r3, 0x20000350 // 76f0 + 76ca: 8b22 ld.h r1, (r3, 0x4) + 76cc: 323e movi r2, 62 + 76ce: 6449 cmplt r2, r1 + 76d0: 0c03 bf 0x76d6 // 76d6 + 76d2: 3200 movi r2, 0 + 76d4: ab42 st.h r2, (r3, 0x4) + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + 76d6: 8b42 ld.h r2, (r3, 0x4) + 76d8: 5a22 addi r1, r2, 1 + 76da: ab22 st.h r1, (r3, 0x4) + 76dc: 1026 lrw r1, 0x200002d0 // 76f4 + 76de: 6084 addu r2, r1 + 76e0: a200 st.b r0, (r2, 0x0) + + g_uart0.RecvIdleTiming = SysTick_1ms; + 76e2: 1046 lrw r2, 0x200000c4 // 76f8 + 76e4: 9240 ld.w r2, (r2, 0x0) + 76e6: b343 st.w r2, (r3, 0xc) + g_uart0.Receiving = 0x01; + 76e8: 3201 movi r2, 1 + 76ea: a340 st.b r2, (r3, 0x0) +} + 76ec: 783c jmp r15 + 76ee: 0000 bkpt + 76f0: 20000350 .long 0x20000350 + 76f4: 200002d0 .long 0x200002d0 + 76f8: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART0_TASK: + +000076fc : + +void UART0_TASK(void){ + 76fc: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart0.Receiving == 0x01){ + 76fe: 1094 lrw r4, 0x20000350 // 774c + 7700: 8460 ld.b r3, (r4, 0x0) + 7702: 3b41 cmpnei r3, 1 + 7704: 0823 bt 0x774a // 774a + if(SysTick_1ms - g_uart0.RecvIdleTiming > g_uart0.RecvTimeout){ + 7706: 10b3 lrw r5, 0x200000c4 // 7750 + 7708: 9560 ld.w r3, (r5, 0x0) + 770a: 9443 ld.w r2, (r4, 0xc) + 770c: 60ca subu r3, r2 + 770e: 9442 ld.w r2, (r4, 0x8) + 7710: 64c8 cmphs r2, r3 + 7712: 081c bt 0x774a // 774a + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7714: e3fff548 bsr 0x61a4 // 61a4 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7718: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 771a: 8c42 ld.h r2, (r4, 0x4) + 771c: 102e lrw r1, 0x200002d0 // 7754 + 771e: 100f lrw r0, 0x20000310 // 7758 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7720: b463 st.w r3, (r4, 0xc) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 7722: e3ffe95f bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart0.DealLen = g_uart0.RecvLen; + 7726: 8c62 ld.h r3, (r4, 0x4) + 7728: ac61 st.h r3, (r4, 0x2) + g_uart0.RecvLen = 0; + 772a: 3300 movi r3, 0 + 772c: ac62 st.h r3, (r4, 0x4) + g_uart0.Receiving = 0; + 772e: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7730: e3fff534 bsr 0x6198 // 6198 + +#if DBG_LOG_EN + //Dbg_Println(DBG_BIT_SYS_STATUS, "UART0 revLen %d", g_uart0.DealLen); + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART0 buff",g_uart0.DealBuffer,g_uart0.DealLen); +#endif + if(g_uart0.processing_cf != NULL){ + 7734: 9464 ld.w r3, (r4, 0x10) + 7736: 3b40 cmpnei r3, 0 + 7738: 0c04 bf 0x7740 // 7740 + rev = g_uart0.processing_cf(g_uart0.DealBuffer,g_uart0.DealLen); + 773a: 8c21 ld.h r1, (r4, 0x2) + 773c: 1007 lrw r0, 0x20000310 // 7758 + 773e: 7bcd jsr r3 + } + + memset(g_uart0.DealBuffer,0,USART_BUFFER_SIZE); + 7740: 3240 movi r2, 64 + 7742: 3100 movi r1, 0 + 7744: 1005 lrw r0, 0x20000310 // 7758 + 7746: e3ffe909 bsr 0x4958 // 4958 <__memset_fast> + } + } +} + 774a: 1492 pop r4-r5, r15 + 774c: 20000350 .long 0x20000350 + 7750: 200000c4 .long 0x200000c4 + 7754: 200002d0 .long 0x200002d0 + 7758: 20000310 .long 0x20000310 + +Disassembly of section .text.UART1_RecvINT_Processing: + +0000775c : +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 775c: 106a lrw r3, 0x200003e4 // 7784 + 775e: 8b22 ld.h r1, (r3, 0x4) + 7760: 323e movi r2, 62 + 7762: 6449 cmplt r2, r1 + 7764: 0c03 bf 0x776a // 776a + 7766: 3200 movi r2, 0 + 7768: ab42 st.h r2, (r3, 0x4) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 776a: 8b42 ld.h r2, (r3, 0x4) + 776c: 5a22 addi r1, r2, 1 + 776e: ab22 st.h r1, (r3, 0x4) + 7770: 1026 lrw r1, 0x20000364 // 7788 + 7772: 6084 addu r2, r1 + 7774: a200 st.b r0, (r2, 0x0) + + g_uart1.RecvIdleTiming = SysTick_1ms; + 7776: 1046 lrw r2, 0x200000c4 // 778c + 7778: 9240 ld.w r2, (r2, 0x0) + 777a: b343 st.w r2, (r3, 0xc) + g_uart1.Receiving = 0x01; + 777c: 3201 movi r2, 1 + 777e: a340 st.b r2, (r3, 0x0) + +} + 7780: 783c jmp r15 + 7782: 0000 bkpt + 7784: 200003e4 .long 0x200003e4 + 7788: 20000364 .long 0x20000364 + 778c: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00007790 : +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 7790: 106a lrw r3, 0x200002bc // 77b8 + 7792: 8b22 ld.h r1, (r3, 0x4) + 7794: 323e movi r2, 62 + 7796: 6449 cmplt r2, r1 + 7798: 0c03 bf 0x779e // 779e + 779a: 3200 movi r2, 0 + 779c: ab42 st.h r2, (r3, 0x4) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 779e: 8b42 ld.h r2, (r3, 0x4) + 77a0: 5a22 addi r1, r2, 1 + 77a2: ab22 st.h r1, (r3, 0x4) + 77a4: 1026 lrw r1, 0x2000023c // 77bc + 77a6: 6084 addu r2, r1 + 77a8: a200 st.b r0, (r2, 0x0) + + g_uart.RecvIdleTiming = SysTick_1ms; + 77aa: 1046 lrw r2, 0x200000c4 // 77c0 + 77ac: 9240 ld.w r2, (r2, 0x0) + 77ae: b343 st.w r2, (r3, 0xc) + g_uart.Receiving = 0x01; + 77b0: 3201 movi r2, 1 + 77b2: a340 st.b r2, (r3, 0x0) +} + 77b4: 783c jmp r15 + 77b6: 0000 bkpt + 77b8: 200002bc .long 0x200002bc + 77bc: 2000023c .long 0x2000023c + 77c0: 200000c4 .long 0x200000c4 + +Disassembly of section .text.MCU485_SendData: + +000077c4 : + }while(Dataval == 0x00); //发送完成 + uart->ISR=UART_TX_DONE_S; +} + +volatile int RS485_Comm_Flag = 0,RS485_Comm_Start = 0,RS485_Comm_End = 0,RS485_Comming = 0; +void MCU485_SendData(U8_T *buff,U16_T len){ + 77c4: 14d4 push r4-r7, r15 + 77c6: 1421 subi r14, r14, 4 + 77c8: b800 st.w r0, (r14, 0x0) + 77ca: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 77cc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 77ce: 109f lrw r4, 0x200000c8 // 7848 + 77d0: 10df lrw r6, 0x2000004c // 784c + 77d2: 9460 ld.w r3, (r4, 0x0) + 77d4: 3b41 cmpnei r3, 1 + 77d6: 0c2d bf 0x7830 // 7830 + } + + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + } + + CK_CPU_DisAllNormalIrq(); + 77d8: e3fffeb1 bsr 0x753a // 753a + + WRITE_HIGH_DR; //GPIO_Write_High(GPIOA0,7); + 77dc: 3107 movi r1, 7 + 77de: 9600 ld.w r0, (r6, 0x0) + 77e0: e3fff6d4 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 77e4: 3301 movi r3, 1 + 77e6: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 77e8: 3300 movi r3, 0 + 77ea: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 77ec: b463 st.w r3, (r4, 0xc) + CK_CPU_EnAllNormalIrq(); + 77ee: e3fffea3 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 77f2: 1078 lrw r3, 0x2000003c // 7850 + 77f4: 6c9f mov r2, r7 + 77f6: 9300 ld.w r0, (r3, 0x0) + 77f8: 9820 ld.w r1, (r14, 0x0) + 77fa: e3fff80f bsr 0x6818 // 6818 + + do{ + delay_nus(100); + 77fe: 3064 movi r0, 100 + 7800: e3fff8ce bsr 0x699c // 699c + + delay_cnt ++; + 7804: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7806: 3363 movi r3, 99 + 7808: 654c cmphs r3, r5 + 780a: 0c07 bf 0x7818 // 7818 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 780c: 9462 ld.w r3, (r4, 0x8) + 780e: 65cd cmplt r3, r7 + 7810: 0bf7 bt 0x77fe // 77fe + 7812: 9463 ld.w r3, (r4, 0xc) + 7814: 65cd cmplt r3, r7 + 7816: 0bf4 bt 0x77fe // 77fe + + CK_CPU_DisAllNormalIrq(); + 7818: e3fffe91 bsr 0x753a // 753a + WRITE_LOW_DR; //GPIO_Write_Low(GPIOA0,7); + 781c: 9600 ld.w r0, (r6, 0x0) + 781e: 3107 movi r1, 7 + 7820: e3fff6b8 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 7824: 3300 movi r3, 0 + 7826: b461 st.w r3, (r4, 0x4) + CK_CPU_EnAllNormalIrq(); + 7828: e3fffe86 bsr 0x7534 // 7534 +} + 782c: 1401 addi r14, r14, 4 + 782e: 1494 pop r4-r7, r15 + delay_nus(100); + 7830: 3064 movi r0, 100 + 7832: e3fff8b5 bsr 0x699c // 699c + delay_cnt ++; + 7836: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7838: 3364 movi r3, 100 + 783a: 64d6 cmpne r5, r3 + 783c: 0fce bf 0x77d8 // 77d8 + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + 783e: 3107 movi r1, 7 + 7840: 9600 ld.w r0, (r6, 0x0) + 7842: e3fff6ab bsr 0x6598 // 6598 + 7846: 07c6 br 0x77d2 // 77d2 + 7848: 200000c8 .long 0x200000c8 + 784c: 2000004c .long 0x2000004c + 7850: 2000003c .long 0x2000003c + +Disassembly of section .text.BUS485_Send: + +00007854 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 7854: 14d4 push r4-r7, r15 + 7856: 1423 subi r14, r14, 12 + 7858: b802 st.w r0, (r14, 0x8) + 785a: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 785c: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 785e: 1189 lrw r4, 0x200000c8 // 7900 + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 7860: 11c9 lrw r6, 0x2000004c // 7904 + while(RS485_Comming == 0x01){ + 7862: 9460 ld.w r3, (r4, 0x0) + 7864: 3b41 cmpnei r3, 1 + 7866: 0c3e bf 0x78e2 // 78e2 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 7868: 1168 lrw r3, 0x20000458 // 7908 + 786a: 83c4 ld.b r6, (r3, 0x4) + 786c: 3e40 cmpnei r6, 0 + 786e: b861 st.w r3, (r14, 0x4) + 7870: 0845 bt 0x78fa // 78fa + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //485_DR + 7872: 11e5 lrw r7, 0x2000004c // 7904 + CK_CPU_DisAllNormalIrq(); + 7874: e3fffe63 bsr 0x753a // 753a + WRITE_HIGH_DR; //485_DR + 7878: 3107 movi r1, 7 + 787a: 9700 ld.w r0, (r7, 0x0) + 787c: e3fff686 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 7880: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7882: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 7884: b441 st.w r2, (r4, 0x4) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7886: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 7888: b4c2 st.w r6, (r4, 0x8) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 788a: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 788c: b4c3 st.w r6, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 788e: e3fffe53 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 7892: 105f lrw r2, 0x2000003c // 790c + 7894: 9200 ld.w r0, (r2, 0x0) + 7896: 9822 ld.w r1, (r14, 0x8) + 7898: 9840 ld.w r2, (r14, 0x0) + 789a: e3fff7bf bsr 0x6818 // 6818 + do{ + delay_nus(100); + 789e: 3064 movi r0, 100 + 78a0: e3fff87e bsr 0x699c // 699c + delay_cnt ++; + 78a4: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78a6: 3363 movi r3, 99 + 78a8: 654c cmphs r3, r5 + 78aa: 0c08 bf 0x78ba // 78ba + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 78ac: 9462 ld.w r3, (r4, 0x8) + 78ae: 9840 ld.w r2, (r14, 0x0) + 78b0: 648d cmplt r3, r2 + 78b2: 0bf6 bt 0x789e // 789e + 78b4: 9463 ld.w r3, (r4, 0xc) + 78b6: 648d cmplt r3, r2 + 78b8: 0bf3 bt 0x789e // 789e + + CK_CPU_DisAllNormalIrq(); + 78ba: e3fffe40 bsr 0x753a // 753a + + WRITE_LOW_DR; //485_DR + 78be: 9700 ld.w r0, (r7, 0x0) + 78c0: 3107 movi r1, 7 + 78c2: e3fff667 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 78c6: 3300 movi r3, 0 + 78c8: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 78ca: 1072 lrw r3, 0x200000c4 // 7910 + 78cc: 9340 ld.w r2, (r3, 0x0) + 78ce: 1072 lrw r3, 0x200003f8 // 7914 + 78d0: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 78d2: 9861 ld.w r3, (r14, 0x4) + 78d4: 3200 movi r2, 0 + 78d6: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 78d8: e3fffe2e bsr 0x7534 // 7534 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 78dc: 6c1b mov r0, r6 + 78de: 1403 addi r14, r14, 12 + 78e0: 1494 pop r4-r7, r15 + delay_nus(100); + 78e2: 3064 movi r0, 100 + 78e4: e3fff85c bsr 0x699c // 699c + delay_cnt ++; + 78e8: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78ea: 3364 movi r3, 100 + 78ec: 64d6 cmpne r5, r3 + 78ee: 0fbd bf 0x7868 // 7868 + REVERISE_DR; //485_DR + 78f0: 3107 movi r1, 7 + 78f2: 9600 ld.w r0, (r6, 0x0) + 78f4: e3fff652 bsr 0x6598 // 6598 + 78f8: 07b5 br 0x7862 // 7862 + return UART_BUSBUSY; //发送失败 + 78fa: 3601 movi r6, 1 + 78fc: 07f0 br 0x78dc // 78dc + 78fe: 0000 bkpt + 7900: 200000c8 .long 0x200000c8 + 7904: 2000004c .long 0x2000004c + 7908: 20000458 .long 0x20000458 + 790c: 2000003c .long 0x2000003c + 7910: 200000c4 .long 0x200000c4 + 7914: 200003f8 .long 0x200003f8 + +Disassembly of section .text.Set_GroupSend: + +00007918 : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 7918: 14d4 push r4-r7, r15 + 791a: 1422 subi r14, r14, 8 + 791c: 6d8b mov r6, r2 + 791e: 9847 ld.w r2, (r14, 0x1c) + 7920: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7922: 5943 subi r2, r1, 1 +{ + 7924: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7926: 7489 zexth r2, r2 + 7928: 3163 movi r1, 99 + 792a: 6484 cmphs r1, r2 +{ + 792c: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 792e: 0c20 bf 0x796e // 796e + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 7930: 1091 lrw r4, 0x200003f8 // 7974 + 7932: 3264 movi r2, 100 + 7934: 3100 movi r1, 0 + 7936: 6c13 mov r0, r4 + 7938: b861 st.w r3, (r14, 0x4) + 793a: e3ffe80f bsr 0x4958 // 4958 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 793e: 6c97 mov r2, r5 + 7940: 6c13 mov r0, r4 + 7942: 6c5f mov r1, r7 + 7944: e3ffe84e bsr 0x49e0 // 49e0 <__memcpy_fast> + m_send.SendLen = sled; + 7948: 3240 movi r2, 64 + 794a: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 794c: 9861 ld.w r3, (r14, 0x4) + 794e: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 7950: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 7952: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7954: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 7956: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7958: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 795a: 3201 movi r2, 1 + 795c: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 795e: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 7960: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 7962: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 7964: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 7966: 247f addi r4, 128 + 7968: 1064 lrw r3, 0x200000c4 // 7978 + 796a: 9360 ld.w r3, (r3, 0x0) + 796c: b461 st.w r3, (r4, 0x4) +} + 796e: 1402 addi r14, r14, 8 + 7970: 1494 pop r4-r7, r15 + 7972: 0000 bkpt + 7974: 200003f8 .long 0x200003f8 + 7978: 200000c4 .long 0x200000c4 + +Disassembly of section .text.Clear_SendFlag: + +0000797c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 797c: 1063 lrw r3, 0x20000458 // 7988 + 797e: 3200 movi r2, 0 + 7980: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 7982: a347 st.b r2, (r3, 0x7) +} + 7984: 783c jmp r15 + 7986: 0000 bkpt + 7988: 20000458 .long 0x20000458 + +Disassembly of section .text.BUS485_Jump_Boot: + +0000798c : + +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 798c: 1062 lrw r3, 0x20000458 // 7994 + 798e: a30c st.b r0, (r3, 0xc) +} + 7990: 783c jmp r15 + 7992: 0000 bkpt + 7994: 20000458 .long 0x20000458 + +Disassembly of section .text.BusIdle_Task: + +00007998 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 7998: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 799a: 10ae lrw r5, 0x200003f8 // 79d0 + 799c: 3460 movi r4, 96 + 799e: 6114 addu r4, r5 + 79a0: 8464 ld.b r3, (r4, 0x4) + 79a2: 3b40 cmpnei r3, 0 + 79a4: 0c15 bf 0x79ce // 79ce + 79a6: 8466 ld.b r3, (r4, 0x6) + 79a8: 3b41 cmpnei r3, 1 + 79aa: 0c12 bf 0x79ce // 79ce + { + CK_CPU_DisAllNormalIrq(); + 79ac: e3fffdc7 bsr 0x753a // 753a + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 79b0: 8465 ld.b r3, (r4, 0x5) + 79b2: 3b41 cmpnei r3, 1 + 79b4: 080b bt 0x79ca // 79ca + 79b6: 1068 lrw r3, 0x200000c4 // 79d4 + 79b8: 9340 ld.w r2, (r3, 0x0) + 79ba: 957f ld.w r3, (r5, 0x7c) + 79bc: 608e subu r2, r3 + 79be: 957c ld.w r3, (r5, 0x70) + 79c0: 2305 addi r3, 6 + 79c2: 64c8 cmphs r2, r3 + 79c4: 0c03 bf 0x79ca // 79ca + { + m_send.BusState_Flag = UART_BUSIDLE; + 79c6: 3300 movi r3, 0 + 79c8: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 79ca: e3fffdb5 bsr 0x7534 // 7534 + } +} + 79ce: 1492 pop r4-r5, r15 + 79d0: 200003f8 .long 0x200003f8 + 79d4: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BusBusy_Task: + +000079d8 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 79d8: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 79da: 1094 lrw r4, 0x200003f8 // 7a28 + 79dc: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 79de: e3fffdae bsr 0x753a // 753a + m_send.BusState_Flag = UART_BUSBUSY; + 79e2: 6150 addu r5, r4 + 79e4: 3301 movi r3, 1 + 79e6: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79e8: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 79ea: 1071 lrw r3, 0x200000c4 // 7a2c + 79ec: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79ee: 9300 ld.w r0, (r3, 0x0) + 79f0: 3380 movi r3, 128 + 79f2: 60d0 addu r3, r4 + 79f4: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 79f6: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79f8: 600e subu r0, r3 + 79fa: e3fffd8b bsr 0x7510 // 7510 <__umodsi3> + 79fe: b41c st.w r0, (r4, 0x70) + + if(READ_RX_LEVEL_STATE == 0x01){ + 7a00: 310f movi r1, 15 + 7a02: 108c lrw r4, 0x2000004c // 7a30 + 7a04: 9400 ld.w r0, (r4, 0x0) + 7a06: e3fff5d4 bsr 0x65ae // 65ae + 7a0a: 3841 cmpnei r0, 1 + 7a0c: 0806 bt 0x7a18 // 7a18 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 7a0e: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 7a10: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 7a12: e3fffd91 bsr 0x7534 // 7534 +} + 7a16: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 7a18: 9400 ld.w r0, (r4, 0x0) + 7a1a: 310f movi r1, 15 + 7a1c: e3fff5c9 bsr 0x65ae // 65ae + 7a20: 3840 cmpnei r0, 0 + 7a22: 0bf8 bt 0x7a12 // 7a12 + m_send.HighBit_Flag = 0x00; //低电平 + 7a24: 3300 movi r3, 0 + 7a26: 07f5 br 0x7a10 // 7a10 + 7a28: 200003f8 .long 0x200003f8 + 7a2c: 200000c4 .long 0x200000c4 + 7a30: 2000004c .long 0x2000004c + +Disassembly of section .text.Dbg_Println: + +00007a34 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 7a34: 1423 subi r14, r14, 12 + 7a36: b862 st.w r3, (r14, 0x8) + 7a38: b841 st.w r2, (r14, 0x4) + 7a3a: b820 st.w r1, (r14, 0x0) + 7a3c: 14d1 push r4, r15 + 7a3e: 1422 subi r14, r14, 8 + 7a40: 9864 ld.w r3, (r14, 0x10) + 7a42: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7a44: 3301 movi r3, 1 + 7a46: 1098 lrw r4, 0x200000c8 // 7aa4 + 7a48: 70c0 lsl r3, r0 + 7a4a: 9444 ld.w r2, (r4, 0x10) + 7a4c: 68c8 and r3, r2 + 7a4e: 3b40 cmpnei r3, 0 + 7a50: 0c24 bf 0x7a98 // 7a98 + SysTick_Now = SysTick_1ms; + 7a52: 1076 lrw r3, 0x200000c4 // 7aa8 + 7a54: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a56: 9446 ld.w r2, (r4, 0x18) + 7a58: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7a5a: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a5c: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7a5e: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7a60: 3020 movi r0, 32 + 7a62: b840 st.w r2, (r14, 0x0) + 7a64: 3180 movi r1, 128 + 7a66: 1052 lrw r2, 0xaf79 // 7aac + 7a68: 6010 addu r0, r4 + 7a6a: e3ffe71b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7a6e: 7441 zexth r1, r0 + 7a70: 3020 movi r0, 32 + 7a72: 6010 addu r0, r4 + 7a74: e3fffea8 bsr 0x77c4 // 77c4 + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7a78: 3020 movi r0, 32 + 7a7a: 1b05 addi r3, r14, 20 + 7a7c: 9841 ld.w r2, (r14, 0x4) + 7a7e: 3180 movi r1, 128 + 7a80: 6010 addu r0, r4 + 7a82: e3ffe73e bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 7a86: 7441 zexth r1, r0 + 7a88: 6c13 mov r0, r4 + 7a8a: 201f addi r0, 32 + 7a8c: e3fffe9c bsr 0x77c4 // 77c4 + + DBG_Printf("\r\n",2); + 7a90: 3102 movi r1, 2 + 7a92: 1008 lrw r0, 0xaf87 // 7ab0 + 7a94: e3fffe98 bsr 0x77c4 // 77c4 + + + } + +#endif +} + 7a98: 1402 addi r14, r14, 8 + 7a9a: d9ee2001 ld.w r15, (r14, 0x4) + 7a9e: 9880 ld.w r4, (r14, 0x0) + 7aa0: 1405 addi r14, r14, 20 + 7aa2: 783c jmp r15 + 7aa4: 200000c8 .long 0x200000c8 + 7aa8: 200000c4 .long 0x200000c4 + 7aac: 0000af79 .long 0x0000af79 + 7ab0: 0000af87 .long 0x0000af87 + +Disassembly of section .text.MultSend_Task: + +00007ab4 : +{ + 7ab4: 14d4 push r4-r7, r15 + 7ab6: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ab8: 5963 subi r3, r1, 1 + 7aba: 74cd zexth r3, r3 + 7abc: 3463 movi r4, 99 + 7abe: 64d0 cmphs r4, r3 +{ + 7ac0: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ac2: 0c3c bf 0x7b3a // 7b3a + if(DatSd == 0x01) + 7ac4: 3a41 cmpnei r2, 1 + 7ac6: 0c05 bf 0x7ad0 // 7ad0 + return BUSSEND_WAIT;//等待 + 7ac8: 3601 movi r6, 1 +} + 7aca: 6c1b mov r0, r6 + 7acc: 1401 addi r14, r14, 4 + 7ace: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 7ad0: 107c lrw r3, 0x200003f8 // 7b40 + 7ad2: 3760 movi r7, 96 + 7ad4: 61cc addu r7, r3 + 7ad6: 8748 ld.b r2, (r7, 0x8) + 7ad8: 878a ld.b r4, (r7, 0xa) + 7ada: 6508 cmphs r2, r4 + 7adc: 0829 bt 0x7b2e // 7b2e + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 7ade: 3480 movi r4, 128 + 7ae0: 10b9 lrw r5, 0x200000c4 // 7b44 + 7ae2: 610c addu r4, r3 + 7ae4: 9401 ld.w r0, (r4, 0x4) + 7ae6: 95c0 ld.w r6, (r5, 0x0) + 7ae8: 6182 subu r6, r0 + 7aea: 931e ld.w r0, (r3, 0x78) + 7aec: 6418 cmphs r6, r0 + 7aee: 081a bt 0x7b22 // 7b22 + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 7af0: 3a40 cmpnei r2, 0 + 7af2: 0c07 bf 0x7b00 // 7b00 + 7af4: 9540 ld.w r2, (r5, 0x0) + 7af6: 94c0 ld.w r6, (r4, 0x0) + 7af8: 609a subu r2, r6 + 7afa: 937d ld.w r3, (r3, 0x74) + 7afc: 64c8 cmphs r2, r3 + 7afe: 0fe5 bf 0x7ac8 // 7ac8 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 7b00: 9800 ld.w r0, (r14, 0x0) + 7b02: e3fffea9 bsr 0x7854 // 7854 + 7b06: 3840 cmpnei r0, 0 + 7b08: 6d83 mov r6, r0 + 7b0a: 0bdf bt 0x7ac8 // 7ac8 + m_send.ResendCnt++; + 7b0c: 8748 ld.b r2, (r7, 0x8) + 7b0e: 2200 addi r2, 1 + m_send.ASend_Tick = SysTick_1ms; + 7b10: 9560 ld.w r3, (r5, 0x0) + m_send.ResendCnt++; + 7b12: 7488 zextb r2, r2 + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b14: 102d lrw r1, 0xaf8a // 7b48 + 7b16: 3002 movi r0, 2 + m_send.ASend_Tick = SysTick_1ms; + 7b18: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 7b1a: a748 st.b r2, (r7, 0x8) + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b1c: e3ffff8c bsr 0x7a34 // 7a34 + 7b20: 07d5 br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"data end"); + 7b22: 102b lrw r1, 0xaf9d // 7b4c + 7b24: 3002 movi r0, 2 + 7b26: e3ffff87 bsr 0x7a34 // 7a34 + return DATA_END;//数据有效期结束 + 7b2a: 3602 movi r6, 2 + 7b2c: 07cf br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + 7b2e: 1029 lrw r1, 0xafa6 // 7b50 + 7b30: 3002 movi r0, 2 + 7b32: e3ffff81 bsr 0x7a34 // 7a34 + return RETRY_END;//没有重发次数 + 7b36: 3603 movi r6, 3 + 7b38: 07c9 br 0x7aca // 7aca + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7b3a: 3604 movi r6, 4 + 7b3c: 07c7 br 0x7aca // 7aca + 7b3e: 0000 bkpt + 7b40: 200003f8 .long 0x200003f8 + 7b44: 200000c4 .long 0x200000c4 + 7b48: 0000af8a .long 0x0000af8a + 7b4c: 0000af9d .long 0x0000af9d + 7b50: 0000afa6 .long 0x0000afa6 + +Disassembly of section .text.BUS485Send_Task: + +00007b54 : +{ + 7b54: 14d1 push r4, r15 + if(m_send.ASend_Flag == 0x01) + 7b56: 1093 lrw r4, 0x20000458 // 7ba0 + 7b58: 8469 ld.b r3, (r4, 0x9) + 7b5a: 3b41 cmpnei r3, 1 + 7b5c: 0821 bt 0x7b9e // 7b9e + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 7b5e: 1072 lrw r3, 0x20000438 // 7ba4 + 7b60: 8b37 ld.h r1, (r3, 0x2e) + 7b62: 3201 movi r2, 1 + 7b64: 1011 lrw r0, 0x200003f8 // 7ba8 + 7b66: e3ffffa7 bsr 0x7ab4 // 7ab4 + 7b6a: a407 st.b r0, (r4, 0x7) + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 7b6c: 2801 subi r0, 2 + 7b6e: 7400 zextb r0, r0 + 7b70: 3801 cmphsi r0, 2 + 7b72: 0816 bt 0x7b9e // 7b9e + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + 7b74: 102e lrw r1, 0xafb3 // 7bac + 7b76: 3002 movi r0, 2 + 7b78: e3ffff5e bsr 0x7a34 // 7a34 + m_send.ASend_Flag = 0x00; //清除发送标志位 + 7b7c: 3300 movi r3, 0 + 7b7e: a469 st.b r3, (r4, 0x9) + if(m_send.Jump_Flag == 0x01){ + 7b80: 846c ld.b r3, (r4, 0xc) + 7b82: 3b41 cmpnei r3, 1 + 7b84: 080d bt 0x7b9e // 7b9e + Dbg_Println(DBG_BIT_Debug_STATUS,"Jump Boot"); + 7b86: 102b lrw r1, 0xafbc // 7bb0 + 7b88: 3002 movi r0, 2 + 7b8a: e3ffff55 bsr 0x7a34 // 7a34 + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 7b8e: 106a lrw r3, 0x2000005c // 7bb4 + 7b90: 104a lrw r2, 0x200006f0 // 7bb8 + 7b92: 9360 ld.w r3, (r3, 0x0) + 7b94: 924d ld.w r2, (r2, 0x34) + 7b96: 23ff addi r3, 256 + 7b98: b343 st.w r2, (r3, 0xc) + SYSCON_Software_Reset(); + 7b9a: e3fff30b bsr 0x61b0 // 61b0 +} + 7b9e: 1491 pop r4, r15 + 7ba0: 20000458 .long 0x20000458 + 7ba4: 20000438 .long 0x20000438 + 7ba8: 200003f8 .long 0x200003f8 + 7bac: 0000afb3 .long 0x0000afb3 + 7bb0: 0000afbc .long 0x0000afbc + 7bb4: 2000005c .long 0x2000005c + 7bb8: 200006f0 .long 0x200006f0 + +Disassembly of section .text.Dbg_Print_Buff: + +00007bbc : + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bbc: 14d4 push r4-r7, r15 + 7bbe: 1422 subi r14, r14, 8 + 7bc0: 6dcf mov r7, r3 +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bc2: 109b lrw r4, 0x200000c8 // 7c2c + 7bc4: 3301 movi r3, 1 +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bc6: 6d8b mov r6, r2 + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bc8: 70c0 lsl r3, r0 + 7bca: 9444 ld.w r2, (r4, 0x10) + 7bcc: 68c8 and r3, r2 + 7bce: 3b40 cmpnei r3, 0 + 7bd0: 0c1f bf 0x7c0e // 7c0e + SysTick_Now = SysTick_1ms; + 7bd2: 1078 lrw r3, 0x200000c4 // 7c30 + 7bd4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bd6: 9446 ld.w r2, (r4, 0x18) + 7bd8: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7bda: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bdc: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7bde: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7be0: 3020 movi r0, 32 + 7be2: b840 st.w r2, (r14, 0x0) + 7be4: 3180 movi r1, 128 + 7be6: 1054 lrw r2, 0xaf79 // 7c34 + 7be8: 6010 addu r0, r4 + 7bea: e3ffe65b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7bee: 7441 zexth r1, r0 + 7bf0: 3020 movi r0, 32 + 7bf2: 6010 addu r0, r4 + 7bf4: e3fffde8 bsr 0x77c4 // 77c4 + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7bf8: 1070 lrw r3, 0xafc6 // 7c38 + DBG_Printf(Dbg_Buffer,str_offset); + 7bfa: 6d5b mov r5, r6 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7bfc: b861 st.w r3, (r14, 0x4) + 7bfe: 241f addi r4, 32 + for (uint32_t i = 0; i < len; i++) { + 7c00: 5d79 subu r3, r5, r6 + 7c02: 65cc cmphs r3, r7 + 7c04: 0c07 bf 0x7c12 // 7c12 + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + 7c06: 3102 movi r1, 2 + 7c08: 100d lrw r0, 0xaf87 // 7c3c + 7c0a: e3fffddd bsr 0x77c4 // 77c4 + } + +#endif +} + 7c0e: 1402 addi r14, r14, 8 + 7c10: 1494 pop r4-r7, r15 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7c12: 8560 ld.b r3, (r5, 0x0) + 7c14: 9841 ld.w r2, (r14, 0x4) + 7c16: 3180 movi r1, 128 + 7c18: 6c13 mov r0, r4 + 7c1a: e3ffe643 bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7c1e: 7441 zexth r1, r0 + 7c20: 6c13 mov r0, r4 + 7c22: e3fffdd1 bsr 0x77c4 // 77c4 + 7c26: 2500 addi r5, 1 + 7c28: 07ec br 0x7c00 // 7c00 + 7c2a: 0000 bkpt + 7c2c: 200000c8 .long 0x200000c8 + 7c30: 200000c4 .long 0x200000c4 + 7c34: 0000af79 .long 0x0000af79 + 7c38: 0000afc6 .long 0x0000afc6 + 7c3c: 0000af87 .long 0x0000af87 + +Disassembly of section .text.UART1_TASK: + +00007c40 : +void UART1_TASK(void){ + 7c40: 14d2 push r4-r5, r15 + if(g_uart1.Receiving == 0x01){ + 7c42: 109d lrw r4, 0x200003e4 // 7cb4 + 7c44: 8460 ld.b r3, (r4, 0x0) + 7c46: 3b41 cmpnei r3, 1 + 7c48: 082f bt 0x7ca6 // 7ca6 + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + 7c4a: 10bc lrw r5, 0x200000c4 // 7cb8 + 7c4c: 9560 ld.w r3, (r5, 0x0) + 7c4e: 9443 ld.w r2, (r4, 0xc) + 7c50: 60ca subu r3, r2 + 7c52: 9442 ld.w r2, (r4, 0x8) + 7c54: 64c8 cmphs r2, r3 + 7c56: 0828 bt 0x7ca6 // 7ca6 + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7c58: e3fff2a6 bsr 0x61a4 // 61a4 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c5c: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c5e: 8c42 ld.h r2, (r4, 0x4) + 7c60: 1037 lrw r1, 0x20000364 // 7cbc + 7c62: 1018 lrw r0, 0x200003a4 // 7cc0 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c64: b463 st.w r3, (r4, 0xc) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c66: e3ffe6bd bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart1.DealLen = g_uart1.RecvLen; + 7c6a: 8c62 ld.h r3, (r4, 0x4) + 7c6c: ac61 st.h r3, (r4, 0x2) + g_uart1.RecvLen = 0; + 7c6e: 3300 movi r3, 0 + 7c70: ac62 st.h r3, (r4, 0x4) + g_uart1.Receiving = 0; + 7c72: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7c74: e3fff292 bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + 7c78: 8c41 ld.h r2, (r4, 0x2) + 7c7a: 1033 lrw r1, 0xafcc // 7cc4 + 7c7c: 3000 movi r0, 0 + 7c7e: e3fffedb bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); + 7c82: 8c61 ld.h r3, (r4, 0x2) + 7c84: 104f lrw r2, 0x200003a4 // 7cc0 + 7c86: 1031 lrw r1, 0xafde // 7cc8 + 7c88: 3000 movi r0, 0 + 7c8a: e3ffff99 bsr 0x7bbc // 7bbc + if(g_uart1.processing_cf != NULL){ + 7c8e: 9464 ld.w r3, (r4, 0x10) + 7c90: 3b40 cmpnei r3, 0 + 7c92: 080b bt 0x7ca8 // 7ca8 + Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); + 7c94: 8c21 ld.h r1, (r4, 0x2) + 7c96: 100b lrw r0, 0x200003a4 // 7cc0 + 7c98: e00011f4 bsr 0xa080 // a080 + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + 7c9c: 3240 movi r2, 64 + 7c9e: 3100 movi r1, 0 + 7ca0: 1008 lrw r0, 0x200003a4 // 7cc0 + 7ca2: e3ffe65b bsr 0x4958 // 4958 <__memset_fast> +} + 7ca6: 1492 pop r4-r5, r15 + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + 7ca8: 8c21 ld.h r1, (r4, 0x2) + 7caa: 1006 lrw r0, 0x200003a4 // 7cc0 + 7cac: 7bcd jsr r3 + if(rev != 0x00) + 7cae: 3840 cmpnei r0, 0 + 7cb0: 0ff6 bf 0x7c9c // 7c9c + 7cb2: 07f1 br 0x7c94 // 7c94 + 7cb4: 200003e4 .long 0x200003e4 + 7cb8: 200000c4 .long 0x200000c4 + 7cbc: 20000364 .long 0x20000364 + 7cc0: 200003a4 .long 0x200003a4 + 7cc4: 0000afcc .long 0x0000afcc + 7cc8: 0000afde .long 0x0000afde + +Disassembly of section .text.UART2_TASK: + +00007ccc : +void UART2_TASK(void){ + 7ccc: 14d2 push r4-r5, r15 + if(g_uart.Receiving == 0x01){ + 7cce: 1180 lrw r4, 0x200002bc // 7d4c + 7cd0: 8460 ld.b r3, (r4, 0x0) + 7cd2: 3b41 cmpnei r3, 1 + 7cd4: 0835 bt 0x7d3e // 7d3e + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 7cd6: 10bf lrw r5, 0x200000c4 // 7d50 + 7cd8: 9560 ld.w r3, (r5, 0x0) + 7cda: 9443 ld.w r2, (r4, 0xc) + 7cdc: 60ca subu r3, r2 + 7cde: 9442 ld.w r2, (r4, 0x8) + 7ce0: 64c8 cmphs r2, r3 + 7ce2: 082e bt 0x7d3e // 7d3e + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7ce4: e3fff260 bsr 0x61a4 // 61a4 + g_uart.RecvIdleTiming = SysTick_1ms; + 7ce8: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7cea: 8c42 ld.h r2, (r4, 0x4) + 7cec: 103a lrw r1, 0x2000023c // 7d54 + 7cee: 101b lrw r0, 0x2000027c // 7d58 + g_uart.RecvIdleTiming = SysTick_1ms; + 7cf0: b463 st.w r3, (r4, 0xc) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7cf2: e3ffe677 bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart.DealLen = g_uart.RecvLen; + 7cf6: 8c62 ld.h r3, (r4, 0x4) + 7cf8: ac61 st.h r3, (r4, 0x2) + g_uart.RecvLen = 0; + 7cfa: 3300 movi r3, 0 + 7cfc: ac62 st.h r3, (r4, 0x4) + g_uart.Receiving = 0; + 7cfe: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7d00: e3fff24c bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 revLen %d", g_uart.DealLen); + 7d04: 8c41 ld.h r2, (r4, 0x2) + 7d06: 1036 lrw r1, 0xafe9 // 7d5c + 7d08: 3000 movi r0, 0 + 7d0a: e3fffe95 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 rev:%s", g_uart.DealBuffer); + 7d0e: 1053 lrw r2, 0x2000027c // 7d58 + 7d10: 1034 lrw r1, 0xaff9 // 7d60 + 7d12: 3000 movi r0, 0 + 7d14: e3fffe90 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart.DealBuffer,g_uart.DealLen); + 7d18: 8c61 ld.h r3, (r4, 0x2) + 7d1a: 1050 lrw r2, 0x2000027c // 7d58 + 7d1c: 1032 lrw r1, 0xb006 // 7d64 + 7d1e: 3000 movi r0, 0 + 7d20: e3ffff4e bsr 0x7bbc // 7bbc + if(g_uart.processing_cf != NULL){ + 7d24: 9464 ld.w r3, (r4, 0x10) + 7d26: 3b40 cmpnei r3, 0 + 7d28: 080c bt 0x7d40 // 7d40 + BT_Uart_Packing(g_uart.DealBuffer,g_uart.DealLen,6); + 7d2a: 8422 ld.b r1, (r4, 0x2) + 7d2c: 3206 movi r2, 6 + 7d2e: 100b lrw r0, 0x2000027c // 7d58 + 7d30: e0000cb0 bsr 0x9690 // 9690 + memset(g_uart.DealBuffer,0,USART_BUFFER_SIZE); + 7d34: 3240 movi r2, 64 + 7d36: 3100 movi r1, 0 + 7d38: 1008 lrw r0, 0x2000027c // 7d58 + 7d3a: e3ffe60f bsr 0x4958 // 4958 <__memset_fast> +} + 7d3e: 1492 pop r4-r5, r15 + rev = g_uart.processing_cf(g_uart.DealBuffer,g_uart.DealLen); + 7d40: 8c21 ld.h r1, (r4, 0x2) + 7d42: 1006 lrw r0, 0x2000027c // 7d58 + 7d44: 7bcd jsr r3 + if(rev != 0x00) + 7d46: 3840 cmpnei r0, 0 + 7d48: 0ff6 bf 0x7d34 // 7d34 + 7d4a: 07f0 br 0x7d2a // 7d2a + 7d4c: 200002bc .long 0x200002bc + 7d50: 200000c4 .long 0x200000c4 + 7d54: 2000023c .long 0x2000023c + 7d58: 2000027c .long 0x2000027c + 7d5c: 0000afe9 .long 0x0000afe9 + 7d60: 0000aff9 .long 0x0000aff9 + 7d64: 0000b006 .long 0x0000b006 + +Disassembly of section .text.Dbg_BT_Println: + +00007d68 : + +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...){ + 7d68: 1423 subi r14, r14, 12 + 7d6a: b862 st.w r3, (r14, 0x8) + 7d6c: b841 st.w r2, (r14, 0x4) + 7d6e: b820 st.w r1, (r14, 0x0) + 7d70: 14d2 push r4-r5, r15 + 7d72: 1421 subi r14, r14, 4 + 7d74: 9864 ld.w r3, (r14, 0x10) + 7d76: b860 st.w r3, (r14, 0x0) +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7d78: 3301 movi r3, 1 + 7d7a: 1091 lrw r4, 0x200000c8 // 7dbc + 7d7c: 70c0 lsl r3, r0 + 7d7e: 9444 ld.w r2, (r4, 0x10) + 7d80: 68c8 and r3, r2 + 7d82: 3b40 cmpnei r3, 0 + 7d84: 0c14 bf 0x7dac // 7dac + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7d86: 3020 movi r0, 32 + 7d88: 1b05 addi r3, r14, 20 + 7d8a: 9840 ld.w r2, (r14, 0x0) + 7d8c: 3180 movi r1, 128 + 7d8e: 6010 addu r0, r4 + 7d90: e3ffe5b7 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_BTPrintf(Dbg_Buffer,str_offset); + 7d94: 10ab lrw r5, 0x20000038 // 7dc0 + 7d96: 6c53 mov r1, r4 + 7d98: 7481 zexth r2, r0 + 7d9a: 211f addi r1, 32 + 7d9c: 9500 ld.w r0, (r5, 0x0) + 7d9e: e3fff53d bsr 0x6818 // 6818 + + DBG_BTPrintf("\r\n",2); + 7da2: 9500 ld.w r0, (r5, 0x0) + 7da4: 3202 movi r2, 2 + 7da6: 1028 lrw r1, 0xaf87 // 7dc4 + 7da8: e3fff538 bsr 0x6818 // 6818 + } + +#endif +} + 7dac: 1401 addi r14, r14, 4 + 7dae: d9ee2002 ld.w r15, (r14, 0x8) + 7db2: 98a1 ld.w r5, (r14, 0x4) + 7db4: 9880 ld.w r4, (r14, 0x0) + 7db6: 1406 addi r14, r14, 24 + 7db8: 783c jmp r15 + 7dba: 0000 bkpt + 7dbc: 200000c8 .long 0x200000c8 + 7dc0: 20000038 .long 0x20000038 + 7dc4: 0000af87 .long 0x0000af87 + +Disassembly of section .text.DIP_GetSwitchState: + +00007dc8 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 7dc8: 14d0 push r15 + U8_T val = 0; + + switch (i) + 7dca: 3841 cmpnei r0, 1 + 7dcc: 0c0d bf 0x7de6 // 7de6 + 7dce: 3840 cmpnei r0, 0 + 7dd0: 0c05 bf 0x7dda // 7dda + 7dd2: 3842 cmpnei r0, 2 + 7dd4: 0c0d bf 0x7dee // 7dee + U8_T val = 0; + 7dd6: 3000 movi r0, 0 + 7dd8: 0406 br 0x7de4 // 7de4 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 7dda: 1068 lrw r3, 0x2000004c // 7df8 + 7ddc: 310a movi r1, 10 + 7dde: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 7de0: e3fff3e7 bsr 0x65ae // 65ae + break; + + } + return val; +} + 7de4: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 7de6: 1065 lrw r3, 0x2000004c // 7df8 + 7de8: 3109 movi r1, 9 + 7dea: 9300 ld.w r0, (r3, 0x0) + 7dec: 07fa br 0x7de0 // 7de0 + val = GPIO_Read_Status(GPIOA0,8); + 7dee: 1063 lrw r3, 0x2000004c // 7df8 + 7df0: 3108 movi r1, 8 + 7df2: 9300 ld.w r0, (r3, 0x0) + 7df4: 07f6 br 0x7de0 // 7de0 + 7df6: 0000 bkpt + 7df8: 2000004c .long 0x2000004c + +Disassembly of section .text.DIP_Switch_Init: + +00007dfc : +void DIP_Switch_Init(void){ + 7dfc: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 7dfe: 1182 lrw r4, 0x2000004c // 7e84 + 7e00: 3201 movi r2, 1 + 7e02: 9400 ld.w r0, (r4, 0x0) + 7e04: 310a movi r1, 10 + 7e06: e3fff23b bsr 0x627c // 627c + GPIO_Init(GPIOA0,9,Intput); + 7e0a: 9400 ld.w r0, (r4, 0x0) + 7e0c: 3201 movi r2, 1 + 7e0e: 3109 movi r1, 9 + 7e10: e3fff236 bsr 0x627c // 627c + GPIO_Init(GPIOA0,8,Intput); + 7e14: 3201 movi r2, 1 + 7e16: 9400 ld.w r0, (r4, 0x0) + 7e18: 3108 movi r1, 8 + 7e1a: e3fff231 bsr 0x627c // 627c + GPIO_PullHigh_Init(GPIOA0,10); + 7e1e: 9400 ld.w r0, (r4, 0x0) + 7e20: 310a movi r1, 10 + 7e22: e3fff29d bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,9); + 7e26: 9400 ld.w r0, (r4, 0x0) + 7e28: 3109 movi r1, 9 + 7e2a: e3fff299 bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,8); + 7e2e: 9400 ld.w r0, (r4, 0x0) + 7e30: 3108 movi r1, 8 + 7e32: e3fff295 bsr 0x635c // 635c + memset(&g_Dip,0,sizeof(DIP_t)); + 7e36: 3214 movi r2, 20 + 7e38: 3100 movi r1, 0 + 7e3a: 1014 lrw r0, 0x20000480 // 7e88 + 7e3c: e3ffe58e bsr 0x4958 // 4958 <__memset_fast> + delay_nms(20); + 7e40: 3014 movi r0, 20 + 7e42: e3fff597 bsr 0x6970 // 6970 + 7e46: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e48: 10b0 lrw r5, 0x20000480 // 7e88 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 7e4a: 7410 zextb r0, r4 + 7e4c: e3ffffbe bsr 0x7dc8 // 7dc8 + 7e50: 3840 cmpnei r0, 0 + 7e52: 0807 bt 0x7e60 // 7e60 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e54: 3301 movi r3, 1 + 7e56: 70d0 lsl r3, r4 + 7e58: 6c8f mov r2, r3 + 7e5a: 9563 ld.w r3, (r5, 0xc) + 7e5c: 6cc8 or r3, r2 + 7e5e: b563 st.w r3, (r5, 0xc) + 7e60: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 7e62: 3c43 cmpnei r4, 3 + 7e64: 0bf3 bt 0x7e4a // 7e4a + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e66: 1069 lrw r3, 0x20000480 // 7e88 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e68: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e6a: 9343 ld.w r2, (r3, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e6c: 6848 and r1, r2 + 7e6e: a326 st.b r1, (r3, 0x6) + g_Dip.Dev_Port = Passive_Port; + 7e70: 3100 movi r1, 0 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e72: b344 st.w r2, (r3, 0x10) + g_Dip.Dev_Port = Passive_Port; + 7e74: a327 st.b r1, (r3, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); + 7e76: 3000 movi r0, 0 + 7e78: 3300 movi r3, 0 + 7e7a: 1025 lrw r1, 0xb011 // 7e8c + 7e7c: e3fffddc bsr 0x7a34 // 7a34 +} + 7e80: 1492 pop r4-r5, r15 + 7e82: 0000 bkpt + 7e84: 2000004c .long 0x2000004c + 7e88: 20000480 .long 0x20000480 + 7e8c: 0000b011 .long 0x0000b011 + +Disassembly of section .text.DIP_ScanTask: + +00007e90 : + +void DIP_ScanTask(void) +{ + 7e90: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 7e92: 1122 lrw r1, 0x200000c4 // 7f18 + 7e94: 1142 lrw r2, 0x20000168 // 7f1c + 7e96: 11a3 lrw r5, 0x20000480 // 7f20 + 7e98: 9200 ld.w r0, (r2, 0x0) + 7e9a: 9160 ld.w r3, (r1, 0x0) + 7e9c: 60c2 subu r3, r0 + 7e9e: 3b14 cmphsi r3, 21 + 7ea0: 0806 bt 0x7eac // 7eac + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 7ea2: 9543 ld.w r2, (r5, 0xc) + 7ea4: 9564 ld.w r3, (r5, 0x10) + 7ea6: 64ca cmpne r2, r3 + 7ea8: 082e bt 0x7f04 // 7f04 + g_Dip.addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + } + +} + 7eaa: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 7eac: 9160 ld.w r3, (r1, 0x0) + 7eae: b260 st.w r3, (r2, 0x0) + 7eb0: 6d17 mov r4, r5 + 7eb2: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7eb4: 7418 zextb r0, r6 + 7eb6: e3ffff89 bsr 0x7dc8 // 7dc8 + 7eba: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 7ebc: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7ebe: 0814 bt 0x7ee6 // 7ee6 + g_Dip.delayCnt_OFF[i] = 0; + 7ec0: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 7ec2: 8460 ld.b r3, (r4, 0x0) + 7ec4: 3b04 cmphsi r3, 5 + 7ec6: 0808 bt 0x7ed6 // 7ed6 + g_Dip.delayCnt_ON[i]++; + 7ec8: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 7eca: a460 st.b r3, (r4, 0x0) + 7ecc: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 7ece: 3e43 cmpnei r6, 3 + 7ed0: 2400 addi r4, 1 + 7ed2: 0bf1 bt 0x7eb4 // 7eb4 + 7ed4: 07e7 br 0x7ea2 // 7ea2 + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 7ed6: 3301 movi r3, 1 + 7ed8: 70d8 lsl r3, r6 + 7eda: 6c8f mov r2, r3 + 7edc: 9563 ld.w r3, (r5, 0xc) + 7ede: 6cc8 or r3, r2 + 7ee0: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_ON[i] = 0; + 7ee2: 3300 movi r3, 0 + 7ee4: 07f3 br 0x7eca // 7eca + g_Dip.delayCnt_ON[i] = 0; + 7ee6: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 7ee8: 8463 ld.b r3, (r4, 0x3) + 7eea: 3b04 cmphsi r3, 5 + 7eec: 0804 bt 0x7ef4 // 7ef4 + g_Dip.delayCnt_OFF[i]++; + 7eee: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 7ef0: a463 st.b r3, (r4, 0x3) + 7ef2: 07ed br 0x7ecc // 7ecc + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 7ef4: 3300 movi r3, 0 + 7ef6: 2b01 subi r3, 2 + 7ef8: 9543 ld.w r2, (r5, 0xc) + 7efa: 70db rotl r3, r6 + 7efc: 68c8 and r3, r2 + 7efe: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_OFF[i] = 0; + 7f00: 3300 movi r3, 0 + 7f02: 07f7 br 0x7ef0 // 7ef0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f04: 3307 movi r3, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7f06: b544 st.w r2, (r5, 0x10) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f08: 3000 movi r0, 0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f0a: 688c and r2, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f0c: 1026 lrw r1, 0xb028 // 7f24 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f0e: a546 st.b r2, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f10: e3fffd92 bsr 0x7a34 // 7a34 +} + 7f14: 07cb br 0x7eaa // 7eaa + 7f16: 0000 bkpt + 7f18: 200000c4 .long 0x200000c4 + 7f1c: 20000168 .long 0x20000168 + 7f20: 20000480 .long 0x20000480 + 7f24: 0000b028 .long 0x0000b028 + +Disassembly of section .text.EEPROM_CheckSum: + +00007f28 : +E_MCU_DEV_INFO g_mcu_dev; +ENERGY_SAVE_PARA e_save; +ENERGY_SAVE eng_info; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 7f28: 6cc3 mov r3, r0 + 7f2a: 6040 addu r1, r0 + U8_T data_sum = 0; + 7f2c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 7f32: 783c jmp r15 + data_sum += data[i]; + 7f34: 8340 ld.b r2, (r3, 0x0) + 7f36: 6008 addu r0, r2 + 7f38: 7400 zextb r0, r0 + 7f3a: 2300 addi r3, 1 + 7f3c: 07f9 br 0x7f2e // 7f2e + +Disassembly of section .text.EEOROM_ENERGY_ReadSet: + +00007f40 : +* Description : 读取电能检测参数 +* Parameter : +* info :读取参数指针 +*******************************************************************/ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info) +{ + 7f40: 14d1 push r4, r15 + 7f42: 142f subi r14, r14, 60 + 7f44: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 7f46: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 7f48: 3232 movi r2, 50 + 7f4a: 3100 movi r1, 0 + 7f4c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7f4e: b860 st.w r3, (r14, 0x0) + 7f50: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 7f54: e3ffe502 bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr,4,read_info); + 7f58: 6cbb mov r2, r14 + 7f5a: 3104 movi r1, 4 + 7f5c: 111f lrw r0, 0x10000180 // 8058 + 7f5e: e3fff4d1 bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_ENERGY_SAVE_FLAG){ + 7f62: d84e0000 ld.b r2, (r14, 0x0) + 7f66: 33a6 movi r3, 166 + 7f68: 64ca cmpne r2, r3 + 7f6a: 0c04 bf 0x7f72 // 7f72 + return 0x00; + } + } + } + + return 0x01; + 7f6c: 3001 movi r0, 1 + +} + 7f6e: 140f addi r14, r14, 60 + 7f70: 1491 pop r4, r15 + read_len |= read_info[1]; + 7f72: d82e0002 ld.b r1, (r14, 0x2) + 7f76: d86e0001 ld.b r3, (r14, 0x1) + 7f7a: 4128 lsli r1, r1, 8 + 7f7c: 6c4c or r1, r3 + if(read_len <= EEPROM_ENERGY_SIZE){ + 7f7e: 3332 movi r3, 50 + 7f80: 644c cmphs r3, r1 + 7f82: 0ff5 bf 0x7f6c // 7f6c + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr+EEPROM_Offset_Data,read_len,para_data); + 7f84: 1a02 addi r2, r14, 8 + 7f86: 1116 lrw r0, 0x10000184 // 805c + 7f88: e3fff4bc bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE_PARA)) == read_info[3]){ + 7f8c: 312c movi r1, 44 + 7f8e: 1802 addi r0, r14, 8 + 7f90: e3ffffcc bsr 0x7f28 // 7f28 + 7f94: d86e0003 ld.b r3, (r14, 0x3) + 7f98: 640e cmpne r3, r0 + 7f9a: 0be9 bt 0x7f6c // 7f6c + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE_PARA)); + 7f9c: 322c movi r2, 44 + 7f9e: 1902 addi r1, r14, 8 + 7fa0: 6c13 mov r0, r4 + 7fa2: e3ffe51f bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fa6: 118f lrw r4, 0x20000494 // 8060 + SYSCON_IWDCNT_Reload(); + 7fa8: e3fff072 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fac: 9400 ld.w r0, (r4, 0x0) + 7fae: e3ffdd47 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fb2: 6c83 mov r2, r0 + 7fb4: 6cc7 mov r3, r1 + 7fb6: 3000 movi r0, 0 + 7fb8: 112b lrw r1, 0xb034 // 8064 + 7fba: e3fffd3d bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K1:%f",e_save.i_k1_val); + 7fbe: 9401 ld.w r0, (r4, 0x4) + 7fc0: e3ffdd3e bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fc4: 6c83 mov r2, r0 + 7fc6: 6cc7 mov r3, r1 + 7fc8: 3000 movi r0, 0 + 7fca: 1128 lrw r1, 0xb03f // 8068 + 7fcc: e3fffd34 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K2:%f",e_save.i_k2_val); + 7fd0: 9402 ld.w r0, (r4, 0x8) + 7fd2: e3ffdd35 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fd6: 6c83 mov r2, r0 + 7fd8: 6cc7 mov r3, r1 + 7fda: 3000 movi r0, 0 + 7fdc: 1124 lrw r1, 0xb04b // 806c + 7fde: e3fffd2b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_K:%f",e_save.p_k_val); + 7fe2: 9403 ld.w r0, (r4, 0xc) + 7fe4: e3ffdd2c bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fe8: 6c83 mov r2, r0 + 7fea: 6cc7 mov r3, r1 + 7fec: 3000 movi r0, 0 + 7fee: 1121 lrw r1, 0xb057 // 8070 + 7ff0: e3fffd22 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_OffSet:%f",e_save.i_OffSetVal); + 7ff4: 9404 ld.w r0, (r4, 0x10) + 7ff6: e3ffdd23 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7ffa: 6c83 mov r2, r0 + 7ffc: 6cc7 mov r3, r1 + 7ffe: 3000 movi r0, 0 + 8000: 103d lrw r1, 0xb062 // 8074 + 8002: e3fffd19 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_OffSet:%f",e_save.p_OffSetVal); + 8006: 9405 ld.w r0, (r4, 0x14) + 8008: e3ffdd1a bsr 0x3a3c // 3a3c <__extendsfdf2> + 800c: 6cc7 mov r3, r1 + 800e: 6c83 mov r2, r0 + 8010: 103a lrw r1, 0xb072 // 8078 + 8012: 3000 movi r0, 0 + 8014: e3fffd10 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 8018: e3fff03a bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_max:%d",e_save.eng_save_max); + 801c: 9446 ld.w r2, (r4, 0x18) + 801e: 3000 movi r0, 0 + 8020: 1037 lrw r1, 0xb082 // 807c + 8022: e3fffd09 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_offset:%d",e_save.eng_save_offset); + 8026: 9447 ld.w r2, (r4, 0x1c) + 8028: 3000 movi r0, 0 + 802a: 1036 lrw r1, 0xb092 // 8080 + 802c: e3fffd04 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Collect_Tim:%d",e_save.Collect_Tim); + 8030: 9448 ld.w r2, (r4, 0x20) + 8032: 3000 movi r0, 0 + 8034: 1034 lrw r1, 0xb0a5 // 8084 + 8036: e3fffcff bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Report_Tim:%d",e_save.Report_Tim); + 803a: 9449 ld.w r2, (r4, 0x24) + 803c: 3000 movi r0, 0 + 803e: 1033 lrw r1, 0xb0b8 // 8088 + 8040: e3fffcfa bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 8044: 3000 movi r0, 0 + 8046: 944a ld.w r2, (r4, 0x28) + 8048: 1031 lrw r1, 0xb0ca // 808c + 804a: e3fffcf5 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 804e: e3fff01f bsr 0x608c // 608c + return 0x00; + 8052: 3000 movi r0, 0 + 8054: 078d br 0x7f6e // 7f6e + 8056: 0000 bkpt + 8058: 10000180 .long 0x10000180 + 805c: 10000184 .long 0x10000184 + 8060: 20000494 .long 0x20000494 + 8064: 0000b034 .long 0x0000b034 + 8068: 0000b03f .long 0x0000b03f + 806c: 0000b04b .long 0x0000b04b + 8070: 0000b057 .long 0x0000b057 + 8074: 0000b062 .long 0x0000b062 + 8078: 0000b072 .long 0x0000b072 + 807c: 0000b082 .long 0x0000b082 + 8080: 0000b092 .long 0x0000b092 + 8084: 0000b0a5 .long 0x0000b0a5 + 8088: 0000b0b8 .long 0x0000b0b8 + 808c: 0000b0ca .long 0x0000b0ca + +Disassembly of section .text.EEOROM_ENERGY_WriteSet: + +00008090 : +/******************************************************************************* +* Function Name : EEOROM_ENERGY_WriteSet +* Description : 将电能设置参数写入到EEPROM中 +*******************************************************************************/ +U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info) +{ + 8090: 14d0 push r15 + 8092: 142e subi r14, r14, 56 + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(ENERGY_SAVE_PARA); + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 8094: 3300 movi r3, 0 + 8096: 2b59 subi r3, 90 + 8098: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 809c: 332c movi r3, 44 + 809e: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 80a2: 3300 movi r3, 0 + 80a4: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80a8: 1b01 addi r3, r14, 4 +{ + 80aa: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80ac: 322c movi r2, 44 + 80ae: 6c0f mov r0, r3 + 80b0: e3ffe498 bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 80b4: 312c movi r1, 44 + 80b6: e3ffff39 bsr 0x7f28 // 7f28 + 80ba: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ENERGE_PARA_SaveAddr,save_len,save_data); + 80be: 6cbb mov r2, r14 + 80c0: 3130 movi r1, 48 + 80c2: 1004 lrw r0, 0x10000180 // 80d0 + 80c4: e3fff3ce bsr 0x6860 // 6860 + + return 0; +} + 80c8: 3000 movi r0, 0 + 80ca: 140e addi r14, r14, 56 + 80cc: 1490 pop r15 + 80ce: 0000 bkpt + 80d0: 10000180 .long 0x10000180 + +Disassembly of section .text.EEPROM_ENERGY_Validate: + +000080d4 : +/******************************************************************************* +* Function Name : EEPROM_ENERGY_Validate +* Description : 比对当前参数,确认是否有改变需要写入 +*******************************************************************************/ +void EEPROM_ENERGY_Validate(void) +{ + 80d4: 14d4 push r4-r7, r15 + U8_T save_flag = 0; + + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 80d6: 12a9 lrw r5, 0x20000578 // 81f8 + 80d8: 1289 lrw r4, 0x20000494 // 81fc + 80da: 95d4 ld.w r6, (r5, 0x50) + 80dc: 6c5b mov r1, r6 + 80de: 9401 ld.w r0, (r4, 0x4) + 80e0: e3ffdc1a bsr 0x3914 // 3914 <__nesf2> + 80e4: 3840 cmpnei r0, 0 + 80e6: 0c80 bf 0x81e6 // 81e6 + { + e_save.i_k1_val = g_Eng.I_K1_Val; + 80e8: b4c1 st.w r6, (r4, 0x4) + save_flag = 1; + 80ea: 3601 movi r6, 1 + } + + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 80ec: 95f5 ld.w r7, (r5, 0x54) + 80ee: 6c5f mov r1, r7 + 80f0: 9402 ld.w r0, (r4, 0x8) + 80f2: e3ffdc11 bsr 0x3914 // 3914 <__nesf2> + 80f6: 3840 cmpnei r0, 0 + 80f8: 0c03 bf 0x80fe // 80fe + { + e_save.i_k2_val = g_Eng.I_K2_Val; + 80fa: b4e2 st.w r7, (r4, 0x8) + save_flag = 1; + 80fc: 3601 movi r6, 1 + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + 80fe: 95f3 ld.w r7, (r5, 0x4c) + 8100: 6c5f mov r1, r7 + 8102: 9400 ld.w r0, (r4, 0x0) + 8104: e3ffdc08 bsr 0x3914 // 3914 <__nesf2> + 8108: 3840 cmpnei r0, 0 + 810a: 0c03 bf 0x8110 // 8110 + { + e_save.v_k_val = g_Eng.V_K_Val; + 810c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 810e: 3601 movi r6, 1 + } + + if(e_save.p_k_val != g_Eng.P_K_Val) + 8110: 9536 ld.w r1, (r5, 0x58) + 8112: 9403 ld.w r0, (r4, 0xc) + 8114: e3ffdc00 bsr 0x3914 // 3914 <__nesf2> + 8118: 3840 cmpnei r0, 0 + 811a: 0c03 bf 0x8120 // 8120 + { + e_save.v_k_val = g_Eng.V_K_Val; + 811c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 811e: 3601 movi r6, 1 + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8120: 9537 ld.w r1, (r5, 0x5c) + 8122: 9404 ld.w r0, (r4, 0x10) + 8124: e3ffdbf8 bsr 0x3914 // 3914 <__nesf2> + 8128: 3840 cmpnei r0, 0 + 812a: 0c03 bf 0x8130 // 8130 + { + e_save.v_k_val = g_Eng.V_K_Val; + 812c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 812e: 3601 movi r6, 1 + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8130: 9538 ld.w r1, (r5, 0x60) + 8132: 9405 ld.w r0, (r4, 0x14) + 8134: e3ffdbf0 bsr 0x3914 // 3914 <__nesf2> + 8138: 3840 cmpnei r0, 0 + 813a: 0c03 bf 0x8140 // 8140 + { + e_save.v_k_val = g_Eng.V_K_Val; + 813c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 813e: 3601 movi r6, 1 + } + + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 8140: 9579 ld.w r3, (r5, 0x64) + 8142: 9448 ld.w r2, (r4, 0x20) + 8144: 64ca cmpne r2, r3 + 8146: 0c03 bf 0x814c // 814c + { + e_save.Collect_Tim = g_Eng.Collect_Tim; + 8148: b468 st.w r3, (r4, 0x20) + save_flag = 1; + 814a: 3601 movi r6, 1 + } + + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 814c: 957b ld.w r3, (r5, 0x6c) + 814e: 944a ld.w r2, (r4, 0x28) + 8150: 64ca cmpne r2, r3 + 8152: 0c03 bf 0x8158 // 8158 + { + e_save.SaveFlash_Tim = g_Eng.SaveFlash_Tim; + 8154: b46a st.w r3, (r4, 0x28) + save_flag = 1; + 8156: 3601 movi r6, 1 + } + + if(e_save.Report_Tim != g_Eng.Report_Tim) + 8158: 957a ld.w r3, (r5, 0x68) + 815a: 9449 ld.w r2, (r4, 0x24) + 815c: 64ca cmpne r2, r3 + 815e: 0c46 bf 0x81ea // 81ea + { + e_save.Report_Tim = g_Eng.Report_Tim; + 8160: b469 st.w r3, (r4, 0x24) + save_flag = 1; + } + + if(save_flag == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + 8162: 1107 lrw r0, 0x20000494 // 81fc + 8164: e3ffff96 bsr 0x8090 // 8090 + +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + 8168: e3ffef92 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Need Save Energy"); + 816c: 1125 lrw r1, 0xb0f2 // 8200 + 816e: 3000 movi r0, 0 + 8170: e3fffc62 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"V_K:%f",e_save.v_k_val); + 8174: 9400 ld.w r0, (r4, 0x0) + 8176: e3ffdc63 bsr 0x3a3c // 3a3c <__extendsfdf2> + 817a: 6c83 mov r2, r0 + 817c: 6cc7 mov r3, r1 + 817e: 3000 movi r0, 0 + 8180: 1121 lrw r1, 0xb038 // 8204 + 8182: e3fffc59 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K1:%f",e_save.i_k1_val); + 8186: 9401 ld.w r0, (r4, 0x4) + 8188: e3ffdc5a bsr 0x3a3c // 3a3c <__extendsfdf2> + 818c: 6c83 mov r2, r0 + 818e: 6cc7 mov r3, r1 + 8190: 3000 movi r0, 0 + 8192: 103e lrw r1, 0xb043 // 8208 + 8194: e3fffc50 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K2:%f",e_save.i_k2_val); + 8198: 9402 ld.w r0, (r4, 0x8) + 819a: e3ffdc51 bsr 0x3a3c // 3a3c <__extendsfdf2> + 819e: 6c83 mov r2, r0 + 81a0: 6cc7 mov r3, r1 + 81a2: 3000 movi r0, 0 + 81a4: 103a lrw r1, 0xb04f // 820c + 81a6: e3fffc47 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_K:%f",e_save.p_k_val); + 81aa: 9403 ld.w r0, (r4, 0xc) + 81ac: e3ffdc48 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81b0: 6c83 mov r2, r0 + 81b2: 6cc7 mov r3, r1 + 81b4: 3000 movi r0, 0 + 81b6: 1037 lrw r1, 0xb05b // 8210 + 81b8: e3fffc3e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_OS:%f",e_save.i_OffSetVal); + 81bc: 9404 ld.w r0, (r4, 0x10) + 81be: e3ffdc3f bsr 0x3a3c // 3a3c <__extendsfdf2> + 81c2: 6c83 mov r2, r0 + 81c4: 6cc7 mov r3, r1 + 81c6: 3000 movi r0, 0 + 81c8: 1033 lrw r1, 0xb0df // 8214 + 81ca: e3fffc35 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_OS:%f",e_save.p_OffSetVal); + 81ce: 9405 ld.w r0, (r4, 0x14) + 81d0: e3ffdc36 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81d4: 6c83 mov r2, r0 + 81d6: 6cc7 mov r3, r1 + 81d8: 3000 movi r0, 0 + 81da: 1030 lrw r1, 0xb0e7 // 8218 + 81dc: e3fffc2c bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 81e0: e3ffef56 bsr 0x608c // 608c +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + +#endif + } +} + 81e4: 1494 pop r4-r7, r15 + U8_T save_flag = 0; + 81e6: 3600 movi r6, 0 + 81e8: 0782 br 0x80ec // 80ec + if(save_flag == 0x01) + 81ea: 3e41 cmpnei r6, 1 + 81ec: 0fbb bf 0x8162 // 8162 + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + 81ee: 102c lrw r1, 0xb0ef // 821c + 81f0: 3000 movi r0, 0 + 81f2: e3fffc21 bsr 0x7a34 // 7a34 +} + 81f6: 07f7 br 0x81e4 // 81e4 + 81f8: 20000578 .long 0x20000578 + 81fc: 20000494 .long 0x20000494 + 8200: 0000b0f2 .long 0x0000b0f2 + 8204: 0000b038 .long 0x0000b038 + 8208: 0000b043 .long 0x0000b043 + 820c: 0000b04f .long 0x0000b04f + 8210: 0000b05b .long 0x0000b05b + 8214: 0000b0df .long 0x0000b0df + 8218: 0000b0e7 .long 0x0000b0e7 + 821c: 0000b0ef .long 0x0000b0ef + +Disassembly of section .text.EEPROM_Default_ENERGY: + +00008220 : +/******************************************************************************* +* Function Name : EEPROM_Default_ENERGY +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info) +{ + 8220: 14d1 push r4, r15 + /*APP 区域*/ + info->i_k1_val = 1; + 8222: 33fe movi r3, 254 + 8224: 4376 lsli r3, r3, 22 + 8226: b061 st.w r3, (r0, 0x4) + info->i_k2_val = 1; + 8228: b062 st.w r3, (r0, 0x8) + info->v_k_val = 2; + info->p_k_val = 1; + 822a: b063 st.w r3, (r0, 0xc) + info->i_OffSetVal = 0; + 822c: 3300 movi r3, 0 + 822e: b064 st.w r3, (r0, 0x10) + info->p_OffSetVal = 0; + 8230: b065 st.w r3, (r0, 0x14) + info->eng_save_max = EEPROM_SAVEADDR_CNT; + 8232: 1176 lrw r3, 0x9c40 // 8308 + 8234: b066 st.w r3, (r0, 0x18) + info->eng_save_offset = 1; //存储偏移编号从1开始 + 8236: 3301 movi r3, 1 + 8238: b067 st.w r3, (r0, 0x1c) + info->SaveFlash_Tim = EEPROM_SAVETIME; + 823a: 1175 lrw r3, 0x36ee80 // 830c + 823c: b06a st.w r3, (r0, 0x28) + info->v_k_val = 2; + 823e: 3280 movi r2, 128 + info->Collect_Tim = EEPROM_COLLTIME; + 8240: 1174 lrw r3, 0xbb8 // 8310 + info->v_k_val = 2; + 8242: 4257 lsli r2, r2, 23 + info->Collect_Tim = EEPROM_COLLTIME; + 8244: b068 st.w r3, (r0, 0x20) + info->Report_Tim = EEPROM_REPTIME; + 8246: 1174 lrw r3, 0x927c0 // 8314 + info->v_k_val = 2; + 8248: b040 st.w r2, (r0, 0x0) + info->Report_Tim = EEPROM_REPTIME; + 824a: b069 st.w r3, (r0, 0x24) + + + EEOROM_ENERGY_WriteSet(info); + 824c: e3ffff22 bsr 0x8090 // 8090 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Energy Use Default Para"); + 8250: 1132 lrw r1, 0xb103 // 8318 + 8252: 3000 movi r0, 0 + 8254: e3fffbf0 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 8258: 1191 lrw r4, 0x20000494 // 831c + SYSCON_IWDCNT_Reload(); + 825a: e3ffef19 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 825e: 9400 ld.w r0, (r4, 0x0) + 8260: e3ffdbee bsr 0x3a3c // 3a3c <__extendsfdf2> + 8264: 6c83 mov r2, r0 + 8266: 6cc7 mov r3, r1 + 8268: 3000 movi r0, 0 + 826a: 112e lrw r1, 0xb11b // 8320 + 826c: e3fffbe4 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K1:%f",e_save.i_k1_val); + 8270: 9401 ld.w r0, (r4, 0x4) + 8272: e3ffdbe5 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8276: 6c83 mov r2, r0 + 8278: 6cc7 mov r3, r1 + 827a: 3000 movi r0, 0 + 827c: 112a lrw r1, 0xb12a // 8324 + 827e: e3fffbdb bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K2:%f",e_save.i_k2_val); + 8282: 9402 ld.w r0, (r4, 0x8) + 8284: e3ffdbdc bsr 0x3a3c // 3a3c <__extendsfdf2> + 8288: 6c83 mov r2, r0 + 828a: 6cc7 mov r3, r1 + 828c: 3000 movi r0, 0 + 828e: 1127 lrw r1, 0xb13a // 8328 + 8290: e3fffbd2 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_K:%f",e_save.p_k_val); + 8294: 9403 ld.w r0, (r4, 0xc) + 8296: e3ffdbd3 bsr 0x3a3c // 3a3c <__extendsfdf2> + 829a: 6c83 mov r2, r0 + 829c: 6cc7 mov r3, r1 + 829e: 3000 movi r0, 0 + 82a0: 1123 lrw r1, 0xb14a // 832c + 82a2: e3fffbc9 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_OffSet:%f",e_save.i_OffSetVal); + 82a6: 9404 ld.w r0, (r4, 0x10) + 82a8: e3ffdbca bsr 0x3a3c // 3a3c <__extendsfdf2> + 82ac: 6c83 mov r2, r0 + 82ae: 6cc7 mov r3, r1 + 82b0: 3000 movi r0, 0 + 82b2: 1120 lrw r1, 0xb159 // 8330 + 82b4: e3fffbc0 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_OffSet:%f",e_save.p_OffSetVal); + 82b8: 9405 ld.w r0, (r4, 0x14) + 82ba: e3ffdbc1 bsr 0x3a3c // 3a3c <__extendsfdf2> + 82be: 6cc7 mov r3, r1 + 82c0: 6c83 mov r2, r0 + 82c2: 103d lrw r1, 0xb16d // 8334 + 82c4: 3000 movi r0, 0 + 82c6: e3fffbb7 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 82ca: e3ffeee1 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_max:%d",e_save.eng_save_max); + 82ce: 9446 ld.w r2, (r4, 0x18) + 82d0: 3000 movi r0, 0 + 82d2: 103a lrw r1, 0xb181 // 8338 + 82d4: e3fffbb0 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_offset:%d",e_save.eng_save_offset); + 82d8: 9447 ld.w r2, (r4, 0x1c) + 82da: 3000 movi r0, 0 + 82dc: 1038 lrw r1, 0xb195 // 833c + 82de: e3fffbab bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Collect_Tim:%d",e_save.Collect_Tim); + 82e2: 9448 ld.w r2, (r4, 0x20) + 82e4: 3000 movi r0, 0 + 82e6: 1037 lrw r1, 0xb1ac // 8340 + 82e8: e3fffba6 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Report_Tim:%d",e_save.Report_Tim); + 82ec: 9449 ld.w r2, (r4, 0x24) + 82ee: 3000 movi r0, 0 + 82f0: 1035 lrw r1, 0xb1c3 // 8344 + 82f2: e3fffba1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 82f6: 944a ld.w r2, (r4, 0x28) + 82f8: 3000 movi r0, 0 + 82fa: 1034 lrw r1, 0xb1d9 // 8348 + 82fc: e3fffb9c bsr 0x7a34 // 7a34 + + SYSCON_IWDCNT_Reload(); + 8300: e3ffeec6 bsr 0x608c // 608c + +#endif + +} + 8304: 1491 pop r4, r15 + 8306: 0000 bkpt + 8308: 00009c40 .long 0x00009c40 + 830c: 0036ee80 .long 0x0036ee80 + 8310: 00000bb8 .long 0x00000bb8 + 8314: 000927c0 .long 0x000927c0 + 8318: 0000b103 .long 0x0000b103 + 831c: 20000494 .long 0x20000494 + 8320: 0000b11b .long 0x0000b11b + 8324: 0000b12a .long 0x0000b12a + 8328: 0000b13a .long 0x0000b13a + 832c: 0000b14a .long 0x0000b14a + 8330: 0000b159 .long 0x0000b159 + 8334: 0000b16d .long 0x0000b16d + 8338: 0000b181 .long 0x0000b181 + 833c: 0000b195 .long 0x0000b195 + 8340: 0000b1ac .long 0x0000b1ac + 8344: 0000b1c3 .long 0x0000b1c3 + 8348: 0000b1d9 .long 0x0000b1d9 + +Disassembly of section .text.EEPROM_ReadTotalEng: + +0000834c : +/********************************************************************* + * Function Name : EEPROM_ReadTotalEng + * Description : 读取总电量、存储总次数 + *********************************************************************/ +U8_T EEPROM_ReadTotalEng(ENERGY_SAVE *info) +{ + 834c: 14d2 push r4-r5, r15 + 834e: 1430 subi r14, r14, 64 + 8350: 6d43 mov r5, r0 + U8_T read_info[10]; //帧头 + U8_T para_data[EEPROM_ENERGY_SIZE]; //存储数据 + UINT16 read_len = 0; //存储数据长度 + uint32_t save_block = 0; //存储扇区编号 + + memset(read_info,0,sizeof(read_info)); + 8352: 320a movi r2, 10 + 8354: 3100 movi r1, 0 + 8356: 6c3b mov r0, r14 + 8358: e3ffe300 bsr 0x4958 // 4958 <__memset_fast> + memset(para_data,0,sizeof(para_data)); + 835c: 3232 movi r2, 50 + 835e: 3100 movi r1, 0 + 8360: 1803 addi r0, r14, 12 + 8362: e3ffe2fb bsr 0x4958 // 4958 <__memset_fast> + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8366: 1163 lrw r3, 0x20000494 // 83f0 + 8368: 9387 ld.w r4, (r3, 0x1c) + 836a: 3c40 cmpnei r4, 0 + 836c: 0c3b bf 0x83e2 // 83e2 + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + + temp_addr = EEPROM_EngSave_StartAddr + (save_block - 1) * EEPROM_OFFSET_ADDRSIZE; //通过扇区编号计算当前总能耗存储扇区地址 + 836e: 1162 lrw r3, 0x400008 // 83f4 + 8370: 610c addu r4, r3 + 8372: 4486 lsli r4, r4, 6 + + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 8374: 1141 lrw r2, 0xeffffdc0 // 83f8 + 8376: 33b0 movi r3, 176 + 8378: 6090 addu r2, r4 + 837a: 4363 lsli r3, r3, 3 + 837c: 648c cmphs r3, r2 + 837e: 0c34 bf 0x83e6 // 83e6 + + ReadDataArry_U8(temp_addr,4,read_info); //读取目标地址的标志位和存储数据长度 + 8380: 6cbb mov r2, r14 + 8382: 3104 movi r1, 4 + 8384: 6c13 mov r0, r4 + 8386: e3fff2bd bsr 0x6900 // 6900 + + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 838a: d84e0000 ld.b r2, (r14, 0x0) + 838e: 33a6 movi r3, 166 + 8390: 64ca cmpne r2, r3 + 8392: 082c bt 0x83ea // 83ea + + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 8394: d82e0002 ld.b r1, (r14, 0x2) + 8398: d86e0001 ld.b r3, (r14, 0x1) + 839c: 4128 lsli r1, r1, 8 + 839e: 6c4c or r1, r3 + + if(read_len <= EEPROM_ENERGY_SIZE){ + 83a0: 3332 movi r3, 50 + 83a2: 644c cmphs r3, r1 + 83a4: 0c16 bf 0x83d0 // 83d0 + + ReadDataArry_U8(temp_addr+EEPROM_Offset_Data,read_len,para_data); + 83a6: 5c0e addi r0, r4, 4 + 83a8: 1a03 addi r2, r14, 12 + 83aa: e3fff2ab bsr 0x6900 // 6900 + + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE)) == read_info[3]){ + 83ae: 310c movi r1, 12 + 83b0: 1803 addi r0, r14, 12 + 83b2: e3fffdbb bsr 0x7f28 // 7f28 + 83b6: d86e0003 ld.b r3, (r14, 0x3) + 83ba: 640e cmpne r3, r0 + 83bc: 080c bt 0x83d4 // 83d4 + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE)); + 83be: 1903 addi r1, r14, 12 + 83c0: 320c movi r2, 12 + 83c2: 6c17 mov r0, r5 + 83c4: e3ffe30e bsr 0x49e0 // 49e0 <__memcpy_fast> + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadSucc"); + 83c8: 102d lrw r1, 0xb1f2 // 83fc + 83ca: 3000 movi r0, 0 + 83cc: e3fffb34 bsr 0x7a34 // 7a34 + return 0x04; + } + + } + + return 0x00; + 83d0: 3000 movi r0, 0 + 83d2: 0406 br 0x83de // 83de + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadFail"); + 83d4: 3000 movi r0, 0 + 83d6: 102b lrw r1, 0xb207 // 8400 + 83d8: e3fffb2e bsr 0x7a34 // 7a34 + return 0x04; + 83dc: 3004 movi r0, 4 +} + 83de: 1410 addi r14, r14, 64 + 83e0: 1492 pop r4-r5, r15 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 83e2: 3001 movi r0, 1 + 83e4: 07fd br 0x83de // 83de + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 83e6: 3002 movi r0, 2 + 83e8: 07fb br 0x83de // 83de + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 83ea: 3003 movi r0, 3 + 83ec: 07f9 br 0x83de // 83de + 83ee: 0000 bkpt + 83f0: 20000494 .long 0x20000494 + 83f4: 00400008 .long 0x00400008 + 83f8: effffdc0 .long 0xeffffdc0 + 83fc: 0000b1f2 .long 0x0000b1f2 + 8400: 0000b207 .long 0x0000b207 + +Disassembly of section .text.EEPROM_WriteTotalEng: + +00008404 : +/********************************************************************* + * Function Name : EEPROM_WriteTotalEng + * Description : 写入总电量 + *********************************************************************/ +U8_T EEPROM_WriteTotalEng(ENERGY_SAVE *info) +{ + 8404: 14d4 push r4-r7, r15 + 8406: 142f subi r14, r14, 60 + U8_T savepara_falg = 0x00; + U32_T temp_addr = EEPROM_EngSave_StartAddr; + U16_T save_len = sizeof(ENERGY_SAVE); + uint32_t save_block = 0,save_cnt = 0; + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 8408: 11c7 lrw r6, 0x20000494 // 84a4 +{ + 840a: 6dc3 mov r7, r0 + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 840c: 9667 ld.w r3, (r6, 0x1c) + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 840e: 3b40 cmpnei r3, 0 + 8410: 0c43 bf 0x8496 // 8496 + if(e_save.eng_save_max == 0) return 0x02; + 8412: 9626 ld.w r1, (r6, 0x18) + 8414: 3940 cmpnei r1, 0 + 8416: 0c42 bf 0x849a // 849a + + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 8418: 3200 movi r2, 0 + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + 841a: 9001 ld.w r0, (r0, 0x4) + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 841c: 2a00 subi r2, 1 + 841e: 6482 cmpne r0, r2 + 8420: 0c3f bf 0x849e // 849e + return 0x03; + } + info->eng_save_cnt++; + 8422: 2000 addi r0, 1 + + if(info->eng_save_cnt > e_save.eng_save_max) + 8424: 6404 cmphs r1, r0 + info->eng_save_cnt++; + 8426: b701 st.w r0, (r7, 0x4) + if(info->eng_save_cnt > e_save.eng_save_max) + 8428: 0835 bt 0x8492 // 8492 + 842a: b860 st.w r3, (r14, 0x0) + { + e_save.eng_save_offset = (info->eng_save_cnt/e_save.eng_save_max)+1; //更新扇区编号 + 842c: e3fff84e bsr 0x74c8 // 74c8 <__udivsi3> + 8430: 2000 addi r0, 1 + 8432: b607 st.w r0, (r6, 0x1c) + savepara_falg = 0x01; + 8434: 3401 movi r4, 1 + 8436: 9860 ld.w r3, (r14, 0x0) + + } + + //通过扇区编号计算当前总能耗存储扇区地址 + temp_addr = EEPROM_EngSave_StartAddr + (e_save.eng_save_offset - 1) * EEPROM_OFFSET_ADDRSIZE; + 8438: 105c lrw r2, 0x400008 // 84a8 + 843a: 96a7 ld.w r5, (r6, 0x1c) + 843c: 6148 addu r5, r2 + 843e: 45a6 lsli r5, r5, 6 + + if(temp_addr > EEPROM_EngSave_EndAddr ) //超限,不再改变存储扇区 + 8440: 105b lrw r2, 0x100007c0 // 84ac + 8442: 6548 cmphs r2, r5 + 8444: 0804 bt 0x844c // 844c + { + e_save.eng_save_offset = save_block; + 8446: b667 st.w r3, (r6, 0x1c) + savepara_falg = 0x00; + //info->eng_save_cnt = save_cnt; + temp_addr = EEPROM_EngSave_EndAddr; + 8448: 6d4b mov r5, r2 + savepara_falg = 0x00; + 844a: 3400 movi r4, 0 + } + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 844c: 3300 movi r3, 0 + 844e: 2b59 subi r3, 90 + 8450: dc6e0004 st.b r3, (r14, 0x4) + save_data[1] = save_len & 0xFF; + 8454: 330c movi r3, 12 + 8456: dc6e0005 st.b r3, (r14, 0x5) + save_data[2] = (save_len >> 8) & 0xFF; + 845a: 3300 movi r3, 0 + 845c: dc6e0006 st.b r3, (r14, 0x6) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8460: 1b02 addi r3, r14, 8 + 8462: 320c movi r2, 12 + 8464: 6c0f mov r0, r3 + 8466: 6c5f mov r1, r7 + 8468: e3ffe2bc bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 846c: 310c movi r1, 12 + 846e: e3fffd5d bsr 0x7f28 // 7f28 + 8472: dc0e0007 st.b r0, (r14, 0x7) + + save_len+=4; + + Page_ProgramData(temp_addr,save_len,save_data); + 8476: 1a01 addi r2, r14, 4 + 8478: 3110 movi r1, 16 + 847a: 6c17 mov r0, r5 + 847c: e3fff1f2 bsr 0x6860 // 6860 + + + if(savepara_falg == 0x01) + 8480: 3c41 cmpnei r4, 1 + 8482: 0805 bt 0x848c // 848c + { + EEOROM_ENERGY_WriteSet(&e_save); + 8484: 1008 lrw r0, 0x20000494 // 84a4 + 8486: e3fffe05 bsr 0x8090 // 8090 + } + + return 0; + 848a: 3400 movi r4, 0 +} + 848c: 6c13 mov r0, r4 + 848e: 140f addi r14, r14, 60 + 8490: 1494 pop r4-r7, r15 + U8_T savepara_falg = 0x00; + 8492: 3400 movi r4, 0 + 8494: 07d2 br 0x8438 // 8438 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8496: 3401 movi r4, 1 + 8498: 07fa br 0x848c // 848c + if(e_save.eng_save_max == 0) return 0x02; + 849a: 3402 movi r4, 2 + 849c: 07f8 br 0x848c // 848c + return 0x03; + 849e: 3403 movi r4, 3 + 84a0: 07f6 br 0x848c // 848c + 84a2: 0000 bkpt + 84a4: 20000494 .long 0x20000494 + 84a8: 00400008 .long 0x00400008 + 84ac: 100007c0 .long 0x100007c0 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +000084b0 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 84b0: 14d1 push r4, r15 + 84b2: 1432 subi r14, r14, 72 + 84b4: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 84b6: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 84b8: 3240 movi r2, 64 + 84ba: 3100 movi r1, 0 + 84bc: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 84be: b860 st.w r3, (r14, 0x0) + 84c0: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 84c4: e3ffe24a bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 84c8: 3080 movi r0, 128 + 84ca: 6cbb mov r2, r14 + 84cc: 3104 movi r1, 4 + 84ce: 4015 lsli r0, r0, 21 + 84d0: e3fff218 bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 84d4: d84e0000 ld.b r2, (r14, 0x0) + 84d8: 33ae movi r3, 174 + 84da: 64ca cmpne r2, r3 + 84dc: 0c04 bf 0x84e4 // 84e4 + return 0x00; + } + } + } + + return 0x01; + 84de: 3001 movi r0, 1 +} + 84e0: 1412 addi r14, r14, 72 + 84e2: 1491 pop r4, r15 + read_len |= read_info[1]; + 84e4: d82e0002 ld.b r1, (r14, 0x2) + 84e8: d86e0001 ld.b r3, (r14, 0x1) + 84ec: 4128 lsli r1, r1, 8 + 84ee: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 84f0: 3340 movi r3, 64 + 84f2: 644c cmphs r3, r1 + 84f4: 0ff5 bf 0x84de // 84de + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 84f6: 1a02 addi r2, r14, 8 + 84f8: 101b lrw r0, 0x10000004 // 8564 + 84fa: e3fff203 bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 84fe: 3125 movi r1, 37 + 8500: 1802 addi r0, r14, 8 + 8502: e3fffd13 bsr 0x7f28 // 7f28 + 8506: d86e0003 ld.b r3, (r14, 0x3) + 850a: 640e cmpne r3, r0 + 850c: 0be9 bt 0x84de // 84de + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 850e: 3225 movi r2, 37 + 8510: 1902 addi r1, r14, 8 + 8512: 6c13 mov r0, r4 + 8514: e3ffe266 bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 8518: 1094 lrw r4, 0x200004c0 // 8568 + SYSCON_IWDCNT_Reload(); + 851a: e3ffedb9 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 851e: 8440 ld.b r2, (r4, 0x0) + 8520: 1033 lrw r1, 0xb26f // 856c + 8522: 3000 movi r0, 0 + 8524: e3fffa88 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevType:%d",g_mcu_dev.dev_type); + 8528: 8441 ld.b r2, (r4, 0x1) + 852a: 1032 lrw r1, 0xb27d // 8570 + 852c: 3000 movi r0, 0 + 852e: e3fffa83 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 8532: 8442 ld.b r2, (r4, 0x2) + 8534: 1030 lrw r1, 0xb28b // 8574 + 8536: 3000 movi r0, 0 + 8538: e3fffa7e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAppVer:%d",g_mcu_dev.dev_app_ver); + 853c: 8443 ld.b r2, (r4, 0x3) + 853e: 102f lrw r1, 0xb29c // 8578 + 8540: 3000 movi r0, 0 + 8542: e3fffa79 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 8546: 8444 ld.b r2, (r4, 0x4) + 8548: 102d lrw r1, 0xb2ac // 857c + 854a: 3000 movi r0, 0 + 854c: e3fffa74 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8550: 3000 movi r0, 0 + 8552: 5c52 addi r2, r4, 5 + 8554: 102b lrw r1, 0xb2bd // 8580 + 8556: e3fffa6f bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 855a: e3ffed99 bsr 0x608c // 608c + return 0x00; + 855e: 3000 movi r0, 0 + 8560: 07c0 br 0x84e0 // 84e0 + 8562: 0000 bkpt + 8564: 10000004 .long 0x10000004 + 8568: 200004c0 .long 0x200004c0 + 856c: 0000b26f .long 0x0000b26f + 8570: 0000b27d .long 0x0000b27d + 8574: 0000b28b .long 0x0000b28b + 8578: 0000b29c .long 0x0000b29c + 857c: 0000b2ac .long 0x0000b2ac + 8580: 0000b2bd .long 0x0000b2bd + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00008584 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 8584: 14d0 push r15 + 8586: 1432 subi r14, r14, 72 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 8588: 3300 movi r3, 0 + 858a: 2b51 subi r3, 82 + 858c: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 8590: 3325 movi r3, 37 + 8592: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 8596: 3300 movi r3, 0 + 8598: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 859c: 1b01 addi r3, r14, 4 +{ + 859e: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 85a0: 3225 movi r2, 37 + 85a2: 6c0f mov r0, r3 + 85a4: e3ffe21e bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 85a8: 3125 movi r1, 37 + 85aa: e3fffcbf bsr 0x7f28 // 7f28 + 85ae: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 85b2: 3080 movi r0, 128 + 85b4: 4015 lsli r0, r0, 21 + 85b6: 6cbb mov r2, r14 + 85b8: 3129 movi r1, 41 + 85ba: e3fff153 bsr 0x6860 // 6860 + + return 0; +} + 85be: 3000 movi r0, 0 + 85c0: 1412 addi r14, r14, 72 + 85c2: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +000085c4 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85c4: 14d2 push r4-r5, r15 + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + 85c6: 3300 movi r3, 0 + 85c8: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 85ca: 3306 movi r3, 6 + 85cc: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 85ce: 3303 movi r3, 3 + 85d0: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85d2: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 85d4: 3311 movi r3, 17 + 85d6: a064 st.b r3, (r0, 0x4) +{ + 85d8: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85da: 3220 movi r2, 32 + 85dc: 3100 movi r1, 0 + 85de: 6c17 mov r0, r5 + 85e0: e3ffe1bc bsr 0x4958 // 4958 <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 85e4: 3211 movi r2, 17 + 85e6: 1025 lrw r1, 0xb2cb // 85f8 + 85e8: 6c17 mov r0, r5 + 85ea: e3ffe1fb bsr 0x49e0 // 49e0 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 85ee: 6c13 mov r0, r4 + 85f0: e3ffffca bsr 0x8584 // 8584 +#endif +} + 85f4: 1492 pop r4-r5, r15 + 85f6: 0000 bkpt + 85f8: 0000b2cb .long 0x0000b2cb + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +000085fc : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85fc: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 85fe: 8063 ld.b r3, (r0, 0x3) + 8600: 3b43 cmpnei r3, 3 +{ + 8602: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 8604: 0c21 bf 0x8646 // 8646 + { + info->dev_app_ver = Project_FW_Version; + 8606: 3303 movi r3, 3 + 8608: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 860a: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 860c: 8461 ld.b r3, (r4, 0x1) + 860e: 3b46 cmpnei r3, 6 + 8610: 0c04 bf 0x8618 // 8618 + { + info->dev_type = Project_Type; + 8612: 3306 movi r3, 6 + 8614: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 8616: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 8618: 8464 ld.b r3, (r4, 0x4) + 861a: 3b51 cmpnei r3, 17 + 861c: 0c04 bf 0x8624 // 8624 + { + info->dev_name_len = sizeof(Peoject_Name); + 861e: 3311 movi r3, 17 + 8620: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 8622: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 8624: 5cd2 addi r6, r4, 5 + 8626: 3211 movi r2, 17 + 8628: 102a lrw r1, 0xb2cb // 8650 + 862a: 6c1b mov r0, r6 + 862c: e3ffe20c bsr 0x4a44 // 4a44 <__GI_strncmp> + 8630: 3840 cmpnei r0, 0 + 8632: 0c0c bf 0x864a // 864a + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 8634: 8444 ld.b r2, (r4, 0x4) + 8636: 1027 lrw r1, 0xb2cb // 8650 + 8638: 6c1b mov r0, r6 + 863a: e3ffe1d3 bsr 0x49e0 // 49e0 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 863e: 6c13 mov r0, r4 + 8640: e3ffffa2 bsr 0x8584 // 8584 + } +#endif +} + 8644: 0405 br 0x864e // 864e + U8_T save_flag = 0; + 8646: 3500 movi r5, 0 + 8648: 07e2 br 0x860c // 860c + if(save_flag == 0x01) + 864a: 3d41 cmpnei r5, 1 + 864c: 0ff9 bf 0x863e // 863e +} + 864e: 1493 pop r4-r6, r15 + 8650: 0000b2cb .long 0x0000b2cb + +Disassembly of section .text.EEPROM_Init: + +00008654 : +{ + 8654: 14d2 push r4-r5, r15 + EnIFCClk; //使能 IFC 时钟 + 8656: 117b lrw r3, 0x20000060 // 8740 + 8658: 3201 movi r2, 1 + 865a: 9360 ld.w r3, (r3, 0x0) + 865c: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 865e: 9345 ld.w r2, (r3, 0x14) + 8660: 3aa1 bseti r2, 1 + 8662: 3ab0 bseti r2, 16 + 8664: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 8666: 300a movi r0, 10 + 8668: e3fff184 bsr 0x6970 // 6970 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 866c: 1196 lrw r4, 0x200004c0 // 8744 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read MCU_DEV <*****************/"); + 866e: 1137 lrw r1, 0xb2dc // 8748 + 8670: 3000 movi r0, 0 + 8672: e3fff9e1 bsr 0x7a34 // 7a34 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 8676: 3225 movi r2, 37 + 8678: 3100 movi r1, 0 + 867a: 6c13 mov r0, r4 + 867c: e3ffe16e bsr 0x4958 // 4958 <__memset_fast> + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 8680: 6c13 mov r0, r4 + 8682: e3ffff17 bsr 0x84b0 // 84b0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 8686: 1172 lrw r3, 0x20000480 // 874c + 8688: 8366 ld.b r3, (r3, 0x6) + 868a: 8440 ld.b r2, (r4, 0x0) + 868c: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 868e: 6d43 mov r5, r0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 8690: 0c05 bf 0x869a // 869a + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 8692: 6c13 mov r0, r4 + g_mcu_dev.dev_addr = g_Dip.addr; + 8694: a460 st.b r3, (r4, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 8696: e3ffff77 bsr 0x8584 // 8584 + if(rev == 0x00){ + 869a: 3d40 cmpnei r5, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 869c: 110a lrw r0, 0x200004c0 // 8744 + if(rev == 0x00){ + 869e: 0837 bt 0x870c // 870c + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 86a0: e3ffffae bsr 0x85fc // 85fc + BLV_DetEnergy_Init(); + 86a4: e000008e bsr 0x87c0 // 87c0 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read EngPara <*****************/"); + 86a8: 112a lrw r1, 0xb325 // 8750 + 86aa: 3000 movi r0, 0 + 86ac: e3fff9c4 bsr 0x7a34 // 7a34 + memset(&e_save,0,sizeof(ENERGY_SAVE_PARA)); + 86b0: 322c movi r2, 44 + 86b2: 3100 movi r1, 0 + 86b4: 1108 lrw r0, 0x20000494 // 8754 + 86b6: e3ffe151 bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEOROM_ENERGY_ReadSet(&e_save); //电能检测参数,读取 + 86ba: 1107 lrw r0, 0x20000494 // 8754 + 86bc: e3fffc42 bsr 0x7f40 // 7f40 + 86c0: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init1 ReadEngPara Rev:%d",eng_rev); + 86c2: 6c83 mov r2, r0 + 86c4: 1125 lrw r1, 0xb35a // 8758 + 86c6: 3000 movi r0, 0 + 86c8: e3fff9b6 bsr 0x7a34 // 7a34 + if(eng_rev == 0) + 86cc: 3c40 cmpnei r4, 0 + 86ce: 0c04 bf 0x86d6 // 86d6 + EEPROM_Default_ENERGY(&e_save); + 86d0: 1101 lrw r0, 0x20000494 // 8754 + 86d2: e3fffda7 bsr 0x8220 // 8220 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read TotalEng <*****************/"); + 86d6: 1122 lrw r1, 0xb373 // 875c + 86d8: 3000 movi r0, 0 + 86da: e3fff9ad bsr 0x7a34 // 7a34 + memset(&eng_info,0,sizeof(ENERGY_SAVE)); + 86de: 320c movi r2, 12 + 86e0: 3100 movi r1, 0 + 86e2: 1100 lrw r0, 0x200004e8 // 8760 + 86e4: e3ffe13a bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEPROM_ReadTotalEng(&eng_info); // + 86e8: 101e lrw r0, 0x200004e8 // 8760 + 86ea: e3fffe31 bsr 0x834c // 834c + 86ee: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Rev:%d",eng_rev); + 86f0: 6c83 mov r2, r0 + 86f2: 103d lrw r1, 0xb3a9 // 8764 + 86f4: 3000 movi r0, 0 + 86f6: e3fff99f bsr 0x7a34 // 7a34 + if(eng_rev == 0x00){ + 86fa: 3c40 cmpnei r4, 0 + 86fc: 0820 bt 0x873c // 873c + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal SUCC"); + 86fe: 103b lrw r1, 0xb3c0 // 8768 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 8700: 3000 movi r0, 0 + 8702: e3fff999 bsr 0x7a34 // 7a34 + BLV_DetEnergy_Default(); + 8706: e0000075 bsr 0x87f0 // 87f0 +} + 870a: 1492 pop r4-r5, r15 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 870c: e3ffff5c bsr 0x85c4 // 85c4 + SYSCON_IWDCNT_Reload(); + 8710: e3ffecbe bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE Use Defalut Para"); + 8714: 1036 lrw r1, 0xb311 // 876c + 8716: 3000 movi r0, 0 + 8718: e3fff98e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 871c: 8442 ld.b r2, (r4, 0x2) + 871e: 1035 lrw r1, 0xb28b // 8770 + 8720: 3000 movi r0, 0 + 8722: e3fff989 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 8726: 8444 ld.b r2, (r4, 0x4) + 8728: 1033 lrw r1, 0xb2ac // 8774 + 872a: 3000 movi r0, 0 + 872c: e3fff984 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8730: 1052 lrw r2, 0x200004c5 // 8778 + 8732: 1033 lrw r1, 0xb2bd // 877c + 8734: 3000 movi r0, 0 + 8736: e3fff97f bsr 0x7a34 // 7a34 + 873a: 07b5 br 0x86a4 // 86a4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 873c: 1031 lrw r1, 0xb3d5 // 8780 + 873e: 07e1 br 0x8700 // 8700 + 8740: 20000060 .long 0x20000060 + 8744: 200004c0 .long 0x200004c0 + 8748: 0000b2dc .long 0x0000b2dc + 874c: 20000480 .long 0x20000480 + 8750: 0000b325 .long 0x0000b325 + 8754: 20000494 .long 0x20000494 + 8758: 0000b35a .long 0x0000b35a + 875c: 0000b373 .long 0x0000b373 + 8760: 200004e8 .long 0x200004e8 + 8764: 0000b3a9 .long 0x0000b3a9 + 8768: 0000b3c0 .long 0x0000b3c0 + 876c: 0000b311 .long 0x0000b311 + 8770: 0000b28b .long 0x0000b28b + 8774: 0000b2ac .long 0x0000b2ac + 8778: 200004c5 .long 0x200004c5 + 877c: 0000b2bd .long 0x0000b2bd + 8780: 0000b3d5 .long 0x0000b3d5 + +Disassembly of section .text.BT_Uart_Packing.part.3: + +00008784 : + +} + + +//组包发送,用于蓝牙设置的回复 +void BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag) + 8784: 14d4 push r4-r7, r15 + 8786: 3914 cmphsi r1, 21 + 8788: 6d83 mov r6, r0 + 878a: 6d4b mov r5, r2 + 878c: 6d07 mov r4, r1 + 878e: 0c02 bf 0x8792 // 8792 + 8790: 3414 movi r4, 20 + 8792: 75d0 zextb r7, r4 + + if(BT_Len > 20){ + BT_Len = 20; + } + + memset(g_Eng.BT_SdBuff,0,20); + 8794: 3214 movi r2, 20 + 8796: 3100 movi r1, 0 + 8798: 1008 lrw r0, 0x2000057d // 87b8 + 879a: e3ffe0df bsr 0x4958 // 4958 <__memset_fast> + memcpy(g_Eng.BT_SdBuff, data, BT_Len); + 879e: 6c9f mov r2, r7 + 87a0: 6c5b mov r1, r6 + 87a2: 1006 lrw r0, 0x2000057d // 87b8 + 87a4: e3ffe11e bsr 0x49e0 // 49e0 <__memcpy_fast> + g_Eng.BT_SdLen = BT_Len; + 87a8: 1045 lrw r2, 0x20000578 // 87bc + + g_Eng.BT_SendFlag |= (0x01 << flag); + 87aa: 3301 movi r3, 1 + 87ac: 8a2d ld.h r1, (r2, 0x1a) + 87ae: 70d4 lsl r3, r5 + 87b0: 6cc4 or r3, r1 + g_Eng.BT_SdLen = BT_Len; + 87b2: a299 st.b r4, (r2, 0x19) + g_Eng.BT_SendFlag |= (0x01 << flag); + 87b4: aa6d st.h r3, (r2, 0x1a) +} + 87b6: 1494 pop r4-r7, r15 + 87b8: 2000057d .long 0x2000057d + 87bc: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_DetEnergy_Init: + +000087c0 : +{ + 87c0: 14d0 push r15 + memset(&u_det,0,sizeof(DetUart_t)); + 87c2: 3248 movi r2, 72 + 87c4: 3100 movi r1, 0 + 87c6: 1008 lrw r0, 0x200004f4 // 87e4 + 87c8: e3ffe0c8 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_CalFactor,0,sizeof(HLW8110_REG)); + 87cc: 323c movi r2, 60 + 87ce: 3100 movi r1, 0 + 87d0: 1006 lrw r0, 0x2000053c // 87e8 + 87d2: e3ffe0c3 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_Eng,0,sizeof(DetEng_Info)); + 87d6: 3278 movi r2, 120 + 87d8: 3100 movi r1, 0 + 87da: 1005 lrw r0, 0x20000578 // 87ec + 87dc: e3ffe0be bsr 0x4958 // 4958 <__memset_fast> +} + 87e0: 1490 pop r15 + 87e2: 0000 bkpt + 87e4: 200004f4 .long 0x200004f4 + 87e8: 2000053c .long 0x2000053c + 87ec: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_DetEnergy_Default: + +000087f0 : +{ + 87f0: 14d3 push r4-r6, r15 + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 87f2: 11aa lrw r5, 0x20000494 // 8898 + 87f4: 118a lrw r4, 0x20000578 // 889c + 87f6: 95c1 ld.w r6, (r5, 0x4) + 87f8: 9434 ld.w r1, (r4, 0x50) + 87fa: 6c1b mov r0, r6 + 87fc: e3ffd88c bsr 0x3914 // 3914 <__nesf2> + 8800: 3840 cmpnei r0, 0 + 8802: 0c02 bf 0x8806 // 8806 + g_Eng.I_K1_Val = e_save.i_k1_val; + 8804: b4d4 st.w r6, (r4, 0x50) + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 8806: 95c2 ld.w r6, (r5, 0x8) + 8808: 9435 ld.w r1, (r4, 0x54) + 880a: 6c1b mov r0, r6 + 880c: e3ffd884 bsr 0x3914 // 3914 <__nesf2> + 8810: 3840 cmpnei r0, 0 + 8812: 0c02 bf 0x8816 // 8816 + g_Eng.I_K2_Val = e_save.i_k2_val; + 8814: b4d5 st.w r6, (r4, 0x54) + if(e_save.v_k_val != g_Eng.V_K_Val) + 8816: 95c0 ld.w r6, (r5, 0x0) + 8818: 9433 ld.w r1, (r4, 0x4c) + 881a: 6c1b mov r0, r6 + 881c: e3ffd87c bsr 0x3914 // 3914 <__nesf2> + 8820: 3840 cmpnei r0, 0 + 8822: 0c02 bf 0x8826 // 8826 + g_Eng.V_K_Val = e_save.v_k_val; + 8824: b4d3 st.w r6, (r4, 0x4c) + if(e_save.p_k_val != g_Eng.P_K_Val) + 8826: 95c3 ld.w r6, (r5, 0xc) + 8828: 9436 ld.w r1, (r4, 0x58) + 882a: 6c1b mov r0, r6 + 882c: e3ffd874 bsr 0x3914 // 3914 <__nesf2> + 8830: 3840 cmpnei r0, 0 + 8832: 0c02 bf 0x8836 // 8836 + g_Eng.P_K_Val = e_save.p_k_val; + 8834: b4d6 st.w r6, (r4, 0x58) + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8836: 95c4 ld.w r6, (r5, 0x10) + 8838: 9437 ld.w r1, (r4, 0x5c) + 883a: 6c1b mov r0, r6 + 883c: e3ffd86c bsr 0x3914 // 3914 <__nesf2> + 8840: 3840 cmpnei r0, 0 + 8842: 0c02 bf 0x8846 // 8846 + g_Eng.I_OffSetVal = e_save.i_OffSetVal; + 8844: b4d7 st.w r6, (r4, 0x5c) + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8846: 95c5 ld.w r6, (r5, 0x14) + 8848: 9438 ld.w r1, (r4, 0x60) + 884a: 6c1b mov r0, r6 + 884c: e3ffd864 bsr 0x3914 // 3914 <__nesf2> + 8850: 3840 cmpnei r0, 0 + 8852: 0c02 bf 0x8856 // 8856 + g_Eng.P_OffSetVal = e_save.p_OffSetVal; + 8854: b4d8 st.w r6, (r4, 0x60) + if(eng_info.eng_total != g_Eng.Total_Eng) + 8856: 1073 lrw r3, 0x200004e8 // 88a0 + 8858: 9340 ld.w r2, (r3, 0x0) + 885a: 9428 ld.w r1, (r4, 0x20) + 885c: 644a cmpne r2, r1 + 885e: 0c03 bf 0x8864 // 8864 + g_Eng.Total_Eng = eng_info.eng_total; + 8860: b448 st.w r2, (r4, 0x20) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 8862: b449 st.w r2, (r4, 0x24) + if(eng_info.U32_EnergyA_RegData != g_Eng.U32_EnergyA_RegData) + 8864: 9362 ld.w r3, (r3, 0x8) + 8866: 944f ld.w r2, (r4, 0x3c) + 8868: 648e cmpne r3, r2 + 886a: 0c02 bf 0x886e // 886e + g_Eng.U32_EnergyA_RegData = eng_info.U32_EnergyA_RegData; + 886c: b46f st.w r3, (r4, 0x3c) + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 886e: 9568 ld.w r3, (r5, 0x20) + 8870: 9459 ld.w r2, (r4, 0x64) + 8872: 648e cmpne r3, r2 + 8874: 0c02 bf 0x8878 // 8878 + g_Eng.Collect_Tim = e_save.Collect_Tim; + 8876: b479 st.w r3, (r4, 0x64) + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 8878: 956a ld.w r3, (r5, 0x28) + 887a: 945b ld.w r2, (r4, 0x6c) + 887c: 648e cmpne r3, r2 + 887e: 0c02 bf 0x8882 // 8882 + g_Eng.SaveFlash_Tim = e_save.SaveFlash_Tim; + 8880: b47b st.w r3, (r4, 0x6c) + if(e_save.Report_Tim != g_Eng.Report_Tim) + 8882: 9569 ld.w r3, (r5, 0x24) + 8884: 945a ld.w r2, (r4, 0x68) + 8886: 648e cmpne r3, r2 + 8888: 0c02 bf 0x888c // 888c + g_Eng.Report_Tim = e_save.Report_Tim; + 888a: b47a st.w r3, (r4, 0x68) + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_DetEnergy_Default Init"); + 888c: 1026 lrw r1, 0xb3ea // 88a4 + 888e: 3000 movi r0, 0 + 8890: e3fff8d2 bsr 0x7a34 // 7a34 +} + 8894: 1493 pop r4-r6, r15 + 8896: 0000 bkpt + 8898: 20000494 .long 0x20000494 + 889c: 20000578 .long 0x20000578 + 88a0: 200004e8 .long 0x200004e8 + 88a4: 0000b3ea .long 0x0000b3ea + +Disassembly of section .text.HLW8110_CheckSum: + +000088a8 : +{ + 88a8: 6040 addu r1, r0 + U8_T data_sum = 0; + 88aa: 3300 movi r3, 0 + for(U16_T i = 0;i + return ~data_sum; + 88b0: 6cce nor r3, r3 + 88b2: 740c zextb r0, r3 +} + 88b4: 783c jmp r15 + data_sum += data[i]; + 88b6: 8040 ld.b r2, (r0, 0x0) + 88b8: 60c8 addu r3, r2 + 88ba: 74cc zextb r3, r3 + 88bc: 2000 addi r0, 1 + 88be: 07f7 br 0x88ac // 88ac + +Disassembly of section .text.HLW8110_WriteREG_EN: + +000088c0 : +{ + 88c0: 14d0 push r15 + 88c2: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 88c4: 3300 movi r3, 0 + 88c6: b860 st.w r3, (r14, 0x0) + 88c8: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 88cc: 3300 movi r3, 0 + 88ce: 2b5a subi r3, 91 + 88d0: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 88d4: 3300 movi r3, 0 + 88d6: 2b15 subi r3, 22 + 88d8: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xE5; + 88dc: 3300 movi r3, 0 + 88de: 2b1a subi r3, 27 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88e0: 3103 movi r1, 3 + 88e2: 6c3b mov r0, r14 + SendData[SendLen++] = 0xE5; + 88e4: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88e8: e3ffffe0 bsr 0x88a8 // 88a8 + 88ec: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_EN len %d:",SendLen); + 88f0: 3204 movi r2, 4 + 88f2: 1027 lrw r1, 0xb405 // 890c + 88f4: 3002 movi r0, 2 + 88f6: e3fff89f bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 88fa: 1066 lrw r3, 0x20000040 // 8910 + 88fc: 3204 movi r2, 4 + 88fe: 9300 ld.w r0, (r3, 0x0) + 8900: 6c7b mov r1, r14 + 8902: e3ffef8b bsr 0x6818 // 6818 +} + 8906: 1402 addi r14, r14, 8 + 8908: 1490 pop r15 + 890a: 0000 bkpt + 890c: 0000b405 .long 0x0000b405 + 8910: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_WriteREG_DIS: + +00008914 : +{ + 8914: 14d0 push r15 + 8916: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 8918: 3300 movi r3, 0 + 891a: b860 st.w r3, (r14, 0x0) + 891c: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 8920: 3300 movi r3, 0 + 8922: 2b5a subi r3, 91 + 8924: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 8928: 3300 movi r3, 0 + 892a: 2b15 subi r3, 22 + 892c: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xDC; + 8930: 3300 movi r3, 0 + 8932: 2b23 subi r3, 36 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8934: 3103 movi r1, 3 + 8936: 6c3b mov r0, r14 + SendData[SendLen++] = 0xDC; + 8938: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 893c: e3ffffb6 bsr 0x88a8 // 88a8 + 8940: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_DIS len%d:",SendLen); + 8944: 3204 movi r2, 4 + 8946: 1027 lrw r1, 0xb419 // 8960 + 8948: 3002 movi r0, 2 + 894a: e3fff875 bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 894e: 1066 lrw r3, 0x20000040 // 8964 + 8950: 3204 movi r2, 4 + 8952: 9300 ld.w r0, (r3, 0x0) + 8954: 6c7b mov r1, r14 + 8956: e3ffef61 bsr 0x6818 // 6818 +} + 895a: 1402 addi r14, r14, 8 + 895c: 1490 pop r15 + 895e: 0000 bkpt + 8960: 0000b419 .long 0x0000b419 + 8964: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_Reset: + +00008968 : +{ + 8968: 14d0 push r15 + 896a: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 896c: 3300 movi r3, 0 + 896e: b860 st.w r3, (r14, 0x0) + 8970: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 8974: 3300 movi r3, 0 + 8976: 2b5a subi r3, 91 + 8978: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 897c: 3300 movi r3, 0 + 897e: 2b15 subi r3, 22 + 8980: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0x96; + 8984: 3300 movi r3, 0 + 8986: 2b69 subi r3, 106 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8988: 3103 movi r1, 3 + 898a: 6c3b mov r0, r14 + SendData[SendLen++] = 0x96; + 898c: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8990: e3ffff8c bsr 0x88a8 // 88a8 + 8994: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"HLW8110 Reset"); + 8998: 3001 movi r0, 1 + 899a: 1026 lrw r1, 0xb42d // 89b0 + 899c: e3fff84c bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 89a0: 1065 lrw r3, 0x20000040 // 89b4 + 89a2: 3204 movi r2, 4 + 89a4: 9300 ld.w r0, (r3, 0x0) + 89a6: 6c7b mov r1, r14 + 89a8: e3ffef38 bsr 0x6818 // 6818 +} + 89ac: 1402 addi r14, r14, 8 + 89ae: 1490 pop r15 + 89b0: 0000b42d .long 0x0000b42d + 89b4: 20000040 .long 0x20000040 + +Disassembly of section .text.BLV_HLW8110_RWCMD_Packaging: + +000089b8 : +{ + 89b8: 14d4 push r4-r7, r15 + 89ba: 1421 subi r14, r14, 4 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 89bc: 1181 lrw r4, 0x200004f4 // 8a40 +{ + 89be: 6dc3 mov r7, r0 + 89c0: 6d47 mov r5, r1 + 89c2: 6d8b mov r6, r2 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 89c4: 3100 movi r1, 0 + 89c6: 321e movi r2, 30 + 89c8: 6c13 mov r0, r4 + 89ca: e3ffdfc7 bsr 0x4958 // 4958 <__memset_fast> + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89ce: 3300 movi r3, 0 + 89d0: 2b5a subi r3, 91 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89d2: 3220 movi r2, 32 + 89d4: 6090 addu r2, r4 + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89d6: a460 st.b r3, (r4, 0x0) + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89d8: 3302 movi r3, 2 + 89da: a27c st.b r3, (r2, 0x1c) + 89dc: 3300 movi r3, 0 + 89de: 2b7f subi r3, 128 + 89e0: 6dcc or r7, r3 + u_det.Resent = 0x00; + 89e2: 3340 movi r3, 64 + 89e4: 60d0 addu r3, r4 + 89e6: 3100 movi r1, 0 + if( len > 0) + 89e8: 3d40 cmpnei r5, 0 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89ea: a4e1 st.b r7, (r4, 0x1) + u_det.Resent = 0x00; + 89ec: a321 st.b r1, (r3, 0x1) + u_det.RevNum = 0x00; + 89ee: a322 st.b r1, (r3, 0x2) + 89f0: 6dcb mov r7, r2 + if( len > 0) + 89f2: 0c22 bf 0x8a36 // 8a36 + u_det.State = 0x01; + 89f4: 3201 movi r2, 1 + 89f6: a75e st.b r2, (r7, 0x1e) + u_det.WR_flag = SEND_W; + 89f8: 3202 movi r2, 2 + 89fa: a340 st.b r2, (r3, 0x0) + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89fc: 5d43 subi r2, r5, 1 + for (U8_T i = 0; i < len; i++) + 89fe: 3300 movi r3, 0 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a00: b840 st.w r2, (r14, 0x0) + for (U8_T i = 0; i < len; i++) + 8a02: 654c cmphs r3, r5 + 8a04: 0c0f bf 0x8a22 // 8a22 + u_det.SendLen += len; + 8a06: 7554 zextb r5, r5 + 8a08: 5dc6 addi r6, r5, 2 + 8a0a: 7598 zextb r6, r6 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 8a0c: 7459 zexth r1, r6 + 8a0e: 100d lrw r0, 0x200004f4 // 8a40 + 8a10: 6118 addu r4, r6 + u_det.SendLen += len; + 8a12: a7dc st.b r6, (r7, 0x1c) + u_det.SendLen += 1; + 8a14: 2502 addi r5, 3 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 8a16: e3ffff49 bsr 0x88a8 // 88a8 + 8a1a: a400 st.b r0, (r4, 0x0) + u_det.SendLen += 1; + 8a1c: a7bc st.b r5, (r7, 0x1c) +} + 8a1e: 1401 addi r14, r14, 4 + 8a20: 1494 pop r4-r7, r15 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a22: 9840 ld.w r2, (r14, 0x0) + 8a24: 608e subu r2, r3 + 8a26: 4243 lsli r2, r2, 3 + 8a28: 6c5b mov r1, r6 + 8a2a: 5c0c addu r0, r4, r3 + 8a2c: 7049 lsr r1, r2 + for (U8_T i = 0; i < len; i++) + 8a2e: 2300 addi r3, 1 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a30: a022 st.b r1, (r0, 0x2) + for (U8_T i = 0; i < len; i++) + 8a32: 74cc zextb r3, r3 + 8a34: 07e7 br 0x8a02 // 8a02 + u_det.State = 0x01; + 8a36: 3101 movi r1, 1 + 8a38: a23e st.b r1, (r2, 0x1e) + u_det.WR_flag = SEND_R; + 8a3a: 3201 movi r2, 1 + 8a3c: a340 st.b r2, (r3, 0x0) +} + 8a3e: 07f0 br 0x8a1e // 8a1e + 8a40: 200004f4 .long 0x200004f4 + +Disassembly of section .text.HLW8110_RWCMD_Send: + +00008a44 : +{ + 8a44: 14d1 push r4, r15 + 8a46: 1428 subi r14, r14, 32 + if( (WR_SelFlag == SEND_W)&&(u_det.SendLen > 3) ) + 8a48: 3842 cmpnei r0, 2 + 8a4a: 0818 bt 0x8a7a // 8a7a + 8a4c: 1076 lrw r3, 0x20000514 // 8aa4 + 8a4e: 839c ld.b r4, (r3, 0x1c) + 8a50: 3c03 cmphsi r4, 4 + 8a52: 0c22 bf 0x8a96 // 8a96 + memcpy(SendData,u_det.SendBuff,u_det.SendLen); + 8a54: 6c93 mov r2, r4 + 8a56: 1035 lrw r1, 0x200004f4 // 8aa8 + 8a58: 6c3b mov r0, r14 + 8a5a: e3ffdfc3 bsr 0x49e0 // 49e0 <__memcpy_fast> + SendLen = u_det.SendLen; + 8a5e: 7511 zexth r4, r4 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"SendBuff:",SendData,SendLen); + 8a60: 6cd3 mov r3, r4 + 8a62: 6cbb mov r2, r14 + 8a64: 1032 lrw r1, 0xb448 // 8aac + 8a66: 3002 movi r0, 2 + 8a68: e3fff8aa bsr 0x7bbc // 7bbc + UARTTransmit(UART0,SendData,SendLen); + 8a6c: 1071 lrw r3, 0x20000040 // 8ab0 + 8a6e: 6c93 mov r2, r4 + 8a70: 9300 ld.w r0, (r3, 0x0) + 8a72: 6c7b mov r1, r14 + 8a74: e3ffeed2 bsr 0x6818 // 6818 + 8a78: 0413 br 0x8a9e // 8a9e + else if(WR_SelFlag == SEND_R) + 8a7a: 3841 cmpnei r0, 1 + 8a7c: 080d bt 0x8a96 // 8a96 + memcpy(SendData,u_det.SendBuff,2); + 8a7e: 106b lrw r3, 0x200004f4 // 8aa8 + 8a80: 8b40 ld.h r2, (r3, 0x0) + 8a82: 74c9 zexth r3, r2 + 8a84: dc4e1000 st.h r2, (r14, 0x0) + SendData[1] = (SendData[1] &0x7f ); + 8a88: 4b68 lsri r3, r3, 8 + 8a8a: 327f movi r2, 127 + 8a8c: 68c8 and r3, r2 + 8a8e: dc6e0001 st.b r3, (r14, 0x1) + SendLen = 2; + 8a92: 3402 movi r4, 2 + 8a94: 07e6 br 0x8a60 // 8a60 + Dbg_Println(DBG_BIT_Debug_STATUS,"Send Err!:%d"); + 8a96: 1028 lrw r1, 0xb43b // 8ab4 + 8a98: 3002 movi r0, 2 + 8a9a: e3fff7cd bsr 0x7a34 // 7a34 +} + 8a9e: 1408 addi r14, r14, 32 + 8aa0: 1491 pop r4, r15 + 8aa2: 0000 bkpt + 8aa4: 20000514 .long 0x20000514 + 8aa8: 200004f4 .long 0x200004f4 + 8aac: 0000b448 .long 0x0000b448 + 8ab0: 20000040 .long 0x20000040 + 8ab4: 0000b43b .long 0x0000b43b + +Disassembly of section .text.HLW8110_CleanSdFlag: + +00008ab8 : + u_det.WR_flag = SEND_NONE; + 8ab8: 1063 lrw r3, 0x20000534 // 8ac4 + 8aba: 3200 movi r2, 0 + 8abc: a340 st.b r2, (r3, 0x0) + u_det.RevNum = REV_NONE; + 8abe: a342 st.b r2, (r3, 0x2) +} + 8ac0: 783c jmp r15 + 8ac2: 0000 bkpt + 8ac4: 20000534 .long 0x20000534 + +Disassembly of section .text.Get_RevState: + +00008ac8 : + if(u_det.RevNum == REV_OK) + 8ac8: 1065 lrw r3, 0x20000534 // 8adc + 8aca: 8302 ld.b r0, (r3, 0x2) + 8acc: 3841 cmpnei r0, 1 + 8ace: 0804 bt 0x8ad6 // 8ad6 + u_det.RevNum = REV_NONE; + 8ad0: 3200 movi r2, 0 + 8ad2: a342 st.b r2, (r3, 0x2) +} + 8ad4: 783c jmp r15 + return REV_NONE; + 8ad6: 3000 movi r0, 0 + 8ad8: 07fe br 0x8ad4 // 8ad4 + 8ada: 0000 bkpt + 8adc: 20000534 .long 0x20000534 + +Disassembly of section .text.Get_SendState: + +00008ae0 : + if(u_det.SendState == SEND_STATE_SUCC) + 8ae0: 1066 lrw r3, 0x20000534 // 8af8 + 8ae2: 8303 ld.b r0, (r3, 0x3) + 8ae4: 3841 cmpnei r0, 1 + 8ae6: 0804 bt 0x8aee // 8aee + u_det.SendState = SEND_STATE_NONE; + 8ae8: 3200 movi r2, 0 + 8aea: a343 st.b r2, (r3, 0x3) +} + 8aec: 783c jmp r15 + else if(u_det.SendState == SEND_STATE_FAIL) + 8aee: 3842 cmpnei r0, 2 + 8af0: 0ffc bf 0x8ae8 // 8ae8 + return SEND_STATE_NONE; + 8af2: 3000 movi r0, 0 + 8af4: 07fc br 0x8aec // 8aec + 8af6: 0000 bkpt + 8af8: 20000534 .long 0x20000534 + +Disassembly of section .text.BLV_HLW8110_SendData_Tack: + +00008afc : +{ + 8afc: 14d4 push r4-r7, r15 + 8afe: 1422 subi r14, r14, 8 + switch(u_det.State) + 8b00: 1392 lrw r4, 0x20000514 // 8cc8 + 8b02: 841e ld.b r0, (r4, 0x1e) + 8b04: 2800 subi r0, 1 + 8b06: 3808 cmphsi r0, 9 + 8b08: 0816 bt 0x8b34 // 8b34 + 8b0a: e3ffd503 bsr 0x3510 // 3510 <___gnu_csky_case_uhi> + 8b0e: 0009 .short 0x0009 + 8b10: 005b001d .long 0x005b001d + 8b14: 00730069 .long 0x00730069 + 8b18: 009f0082 .long 0x009f0082 + 8b1c: 00ce00c0 .long 0x00ce00c0 + if(u_det.WR_flag == SEND_R) //读,需要等待回复校验 + 8b20: 136b lrw r3, 0x20000534 // 8ccc + 8b22: 8360 ld.b r3, (r3, 0x0) + 8b24: 3b41 cmpnei r3, 1 + 8b26: 0809 bt 0x8b38 // 8b38 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b28: 136a lrw r3, 0x200000c4 // 8cd0 + 8b2a: 9340 ld.w r2, (r3, 0x0) + 8b2c: 136a lrw r3, 0x2000016c // 8cd4 + 8b2e: b340 st.w r2, (r3, 0x0) + u_det.State = 0x02; + 8b30: 3302 movi r3, 2 + u_det.State = 0x03; + 8b32: a47e st.b r3, (r4, 0x1e) +} + 8b34: 1402 addi r14, r14, 8 + 8b36: 1494 pop r4-r7, r15 + else if(u_det.WR_flag == SEND_W) //写,需要先写使能 + 8b38: 3b42 cmpnei r3, 2 + 8b3a: 0bfd bt 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b3c: 1365 lrw r3, 0x200000c4 // 8cd0 + 8b3e: 9340 ld.w r2, (r3, 0x0) + 8b40: 1365 lrw r3, 0x2000016c // 8cd4 + 8b42: b340 st.w r2, (r3, 0x0) + u_det.State = 0x03; + 8b44: 3303 movi r3, 3 + 8b46: 07f6 br 0x8b32 // 8b32 + if(u_det.WR_flag == SEND_R) + 8b48: 13c4 lrw r6, 0x200004f4 // 8cd8 + 8b4a: 3540 movi r5, 64 + 8b4c: 6158 addu r5, r6 + 8b4e: 8560 ld.b r3, (r5, 0x0) + 8b50: 3b41 cmpnei r3, 1 + 8b52: b8c1 st.w r6, (r14, 0x4) + 8b54: b8a0 st.w r5, (r14, 0x0) + 8b56: 0bef bt 0x8b34 // 8b34 + if((u_det.Resent == 0x00)||(SysTick_1ms - HLW8110_Sned_Tisk >= 80) ) + 8b58: 8541 ld.b r2, (r5, 0x1) + 8b5a: 3a40 cmpnei r2, 0 + 8b5c: 127d lrw r3, 0x200000c4 // 8cd0 + 8b5e: 12fe lrw r7, 0x2000016c // 8cd4 + 8b60: 0c07 bf 0x8b6e // 8b6e + 8b62: 9700 ld.w r0, (r7, 0x0) + 8b64: 9320 ld.w r1, (r3, 0x0) + 8b66: 6042 subu r1, r0 + 8b68: 304f movi r0, 79 + 8b6a: 6440 cmphs r0, r1 + 8b6c: 081b bt 0x8ba2 // 8ba2 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b6e: 9360 ld.w r3, (r3, 0x0) + if(u_det.Resent < 3) + 8b70: 3a02 cmphsi r2, 3 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b72: b760 st.w r3, (r7, 0x0) + if(u_det.Resent < 3) + 8b74: 080a bt 0x8b88 // 8b88 + HLW8110_RWCMD_Send(SEND_R); + 8b76: 3001 movi r0, 1 + 8b78: e3ffff66 bsr 0x8a44 // 8a44 + u_det.Resent++; + 8b7c: 9860 ld.w r3, (r14, 0x0) + 8b7e: 8361 ld.b r3, (r3, 0x1) + 8b80: 2300 addi r3, 1 + 8b82: 9840 ld.w r2, (r14, 0x0) + u_det.Resent++; + 8b84: a261 st.b r3, (r2, 0x1) + break; + 8b86: 07d7 br 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_FAIL; + 8b88: 9860 ld.w r3, (r14, 0x0) + 8b8a: 3202 movi r2, 2 + 8b8c: a343 st.b r2, (r3, 0x3) + u_det.State = HLW_WAIT; + 8b8e: 3309 movi r3, 9 + 8b90: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8b92: 3300 movi r3, 0 + 8b94: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8b96: 9841 ld.w r2, (r14, 0x4) + 8b98: 1271 lrw r3, 0xbb8 // 8cdc + 8b9a: b271 st.w r3, (r2, 0x44) + HLW8110_CleanSdFlag(); + 8b9c: e3ffff8e bsr 0x8ab8 // 8ab8 + break; + 8ba0: 07ca br 0x8b34 // 8b34 + 8ba2: b860 st.w r3, (r14, 0x0) + if(Get_RevState() == REV_OK) + 8ba4: e3ffff92 bsr 0x8ac8 // 8ac8 + 8ba8: 3841 cmpnei r0, 1 + 8baa: 9860 ld.w r3, (r14, 0x0) + 8bac: 0bc4 bt 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bae: 9360 ld.w r3, (r3, 0x0) + 8bb0: b760 st.w r3, (r7, 0x0) + u_det.State = HLW_WAIT; + 8bb2: 3309 movi r3, 9 + 8bb4: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bb6: 3300 movi r3, 0 + u_det.SendState = SEND_STATE_SUCC; + 8bb8: 3201 movi r2, 1 + u_det.Pub_NextState = NextState; + 8bba: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bbc: 330a movi r3, 10 + u_det.SendState = SEND_STATE_SUCC; + 8bbe: a543 st.b r2, (r5, 0x3) + u_det.Pub_WaitTim = WaitTime; + 8bc0: b671 st.w r3, (r6, 0x44) + 8bc2: 07ed br 0x8b9c // 8b9c + HLW8110_Sned_Tisk = SysTick_1ms; + 8bc4: 1263 lrw r3, 0x200000c4 // 8cd0 + 8bc6: 9340 ld.w r2, (r3, 0x0) + 8bc8: 1263 lrw r3, 0x2000016c // 8cd4 + 8bca: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8bcc: 3309 movi r3, 9 + 8bce: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bd0: 3304 movi r3, 4 + 8bd2: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bd4: 320a movi r2, 10 + 8bd6: 1261 lrw r3, 0x200004f4 // 8cd8 + 8bd8: b351 st.w r2, (r3, 0x44) + HLW8110_WriteREG_EN(); + 8bda: e3fffe73 bsr 0x88c0 // 88c0 + break; + 8bde: 07ab br 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8be0: 117c lrw r3, 0x200000c4 // 8cd0 + 8be2: 9340 ld.w r2, (r3, 0x0) + 8be4: 117c lrw r3, 0x2000016c // 8cd4 + 8be6: b340 st.w r2, (r3, 0x0) + u_det.Resent = 0x00; + 8be8: 1179 lrw r3, 0x20000534 // 8ccc + 8bea: 3200 movi r2, 0 + 8bec: a341 st.b r2, (r3, 0x1) + u_det.RevNum = 0x00; + 8bee: a342 st.b r2, (r3, 0x2) + u_det.State = 0x05; + 8bf0: 3305 movi r3, 5 + 8bf2: 07a0 br 0x8b32 // 8b32 + HLW8110_RWCMD_Send(SEND_W); + 8bf4: 3002 movi r0, 2 + 8bf6: e3ffff27 bsr 0x8a44 // 8a44 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bfa: 1176 lrw r3, 0x200000c4 // 8cd0 + 8bfc: 9340 ld.w r2, (r3, 0x0) + 8bfe: 1176 lrw r3, 0x2000016c // 8cd4 + 8c00: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8c02: 3309 movi r3, 9 + 8c04: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c06: 3306 movi r3, 6 + 8c08: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c0a: 320a movi r2, 10 + 8c0c: 1173 lrw r3, 0x200004f4 // 8cd8 + 8c0e: b351 st.w r2, (r3, 0x44) + 8c10: 0792 br 0x8b34 // 8b34 + if(u_det.Resent < 3) + 8c12: 1172 lrw r3, 0x200004f4 // 8cd8 + 8c14: 3240 movi r2, 64 + 8c16: 608c addu r2, r3 + 8c18: 8221 ld.b r1, (r2, 0x1) + 8c1a: 3902 cmphsi r1, 3 + 8c1c: 11cd lrw r6, 0x200000c4 // 8cd0 + 8c1e: 11ae lrw r5, 0x2000016c // 8cd4 + 8c20: 080b bt 0x8c36 // 8c36 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c22: 9660 ld.w r3, (r6, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c24: 3001 movi r0, 1 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c26: b560 st.w r3, (r5, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c28: e3ffff0e bsr 0x8a44 // 8a44 + u_det.State = 0x07; + 8c2c: 3307 movi r3, 7 + 8c2e: a47e st.b r3, (r4, 0x1e) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c30: 9660 ld.w r3, (r6, 0x0) + 8c32: b560 st.w r3, (r5, 0x0) + break; + 8c34: 0780 br 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_FAIL; + 8c36: 3102 movi r1, 2 + 8c38: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c3a: 9640 ld.w r2, (r6, 0x0) + 8c3c: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c3e: 3209 movi r2, 9 + 8c40: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c42: 3208 movi r2, 8 + 8c44: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c46: 1146 lrw r2, 0xbb8 // 8cdc + 8c48: b351 st.w r2, (r3, 0x44) + 8c4a: 07a9 br 0x8b9c // 8b9c + if(SysTick_1ms - HLW8110_Sned_Tisk >= 80) + 8c4c: 11c1 lrw r6, 0x200000c4 // 8cd0 + 8c4e: 11a2 lrw r5, 0x2000016c // 8cd4 + 8c50: 9660 ld.w r3, (r6, 0x0) + 8c52: 9540 ld.w r2, (r5, 0x0) + 8c54: 60ca subu r3, r2 + 8c56: 324f movi r2, 79 + 8c58: 64c8 cmphs r2, r3 + 8c5a: 0809 bt 0x8c6c // 8c6c + HLW8110_Sned_Tisk = SysTick_1ms; + 8c5c: 9660 ld.w r3, (r6, 0x0) + 8c5e: b560 st.w r3, (r5, 0x0) + u_det.Resent++; + 8c60: 105b lrw r2, 0x20000534 // 8ccc + u_det.State = 0x05; + 8c62: 3305 movi r3, 5 + 8c64: a47e st.b r3, (r4, 0x1e) + u_det.Resent++; + 8c66: 8261 ld.b r3, (r2, 0x1) + 8c68: 2300 addi r3, 1 + 8c6a: 078d br 0x8b84 // 8b84 + if(Get_RevState() == REV_OK) + 8c6c: e3ffff2e bsr 0x8ac8 // 8ac8 + 8c70: 3841 cmpnei r0, 1 + 8c72: 0b61 bt 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_SUCC; + 8c74: 1079 lrw r3, 0x200004f4 // 8cd8 + 8c76: 3240 movi r2, 64 + 8c78: 608c addu r2, r3 + 8c7a: 3101 movi r1, 1 + 8c7c: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c7e: 9640 ld.w r2, (r6, 0x0) + 8c80: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c82: 3209 movi r2, 9 + 8c84: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c86: 3208 movi r2, 8 + 8c88: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c8a: 320a movi r2, 10 + 8c8c: 07de br 0x8c48 // 8c48 + HLW8110_WriteREG_DIS(); + 8c8e: e3fffe43 bsr 0x8914 // 8914 + u_det.State = HLW_WAIT; + 8c92: 3309 movi r3, 9 + 8c94: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c96: 3300 movi r3, 0 + u_det.Pub_WaitTim = WaitTime; + 8c98: 320a movi r2, 10 + u_det.Pub_NextState = NextState; + 8c9a: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c9c: 106f lrw r3, 0x200004f4 // 8cd8 + 8c9e: b351 st.w r2, (r3, 0x44) + HLW8110_Sned_Tisk = SysTick_1ms; + 8ca0: 106c lrw r3, 0x200000c4 // 8cd0 + 8ca2: 9340 ld.w r2, (r3, 0x0) + 8ca4: 106c lrw r3, 0x2000016c // 8cd4 + 8ca6: b340 st.w r2, (r3, 0x0) + break; + 8ca8: 0746 br 0x8b34 // 8b34 + if(SysTick_1ms - HLW8110_Sned_Tisk >= u_det.Pub_WaitTim) + 8caa: 106a lrw r3, 0x200000c4 // 8cd0 + 8cac: 104a lrw r2, 0x2000016c // 8cd4 + 8cae: 9360 ld.w r3, (r3, 0x0) + 8cb0: 9240 ld.w r2, (r2, 0x0) + 8cb2: 60ca subu r3, r2 + 8cb4: 1049 lrw r2, 0x200004f4 // 8cd8 + 8cb6: 9251 ld.w r2, (r2, 0x44) + 8cb8: 648c cmphs r3, r2 + 8cba: 0f3d bf 0x8b34 // 8b34 + u_det.State = u_det.Pub_NextState; + 8cbc: 847f ld.b r3, (r4, 0x1f) + 8cbe: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = 0x00; + 8cc0: 3300 movi r3, 0 + 8cc2: a47f st.b r3, (r4, 0x1f) +} + 8cc4: 0738 br 0x8b34 // 8b34 + 8cc6: 0000 bkpt + 8cc8: 20000514 .long 0x20000514 + 8ccc: 20000534 .long 0x20000534 + 8cd0: 200000c4 .long 0x200000c4 + 8cd4: 2000016c .long 0x2000016c + 8cd8: 200004f4 .long 0x200004f4 + 8cdc: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.HLW8110_Convert_CurrentRegA_Value: + +00008ce0 : +{ + 8ce0: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8ce2: 109e lrw r4, 0x2000053c // 8d58 + 8ce4: 3280 movi r2, 128 + 8ce6: 9468 ld.w r3, (r4, 0x20) + 8ce8: 4250 lsli r2, r2, 16 + 8cea: 68c8 and r3, r2 + 8cec: 3b40 cmpnei r3, 0 + 8cee: 10bc lrw r5, 0x20000578 // 8d5c + 8cf0: 0831 bt 0x8d52 // 8d52 + Conv_Val = value / 1000.0; + 8cf2: e3ffdb0f bsr 0x4310 // 4310 <__floatunsidf> + 8cf6: 3200 movi r2, 0 + 8cf8: 107a lrw r3, 0x408f4000 // 8d60 + 8cfa: e3ffd96b bsr 0x3fd0 // 3fd0 <__divdf3> + 8cfe: e3ffdaf1 bsr 0x42e0 // 42e0 <__truncdfsf2> + 8d02: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIAC_RegData; + 8d04: 8c00 ld.h r0, (r4, 0x0) + 8d06: e3ffd63f bsr 0x3984 // 3984 <__floatsisf> + 8d0a: 6c5b mov r1, r6 + 8d0c: e3ffd51a bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x800; + 8d10: 31e8 movi r1, 232 + 8d12: 4136 lsli r1, r1, 22 + 8d14: e3ffd516 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x1000; + 8d18: 31e6 movi r1, 230 + 8d1a: 4136 lsli r1, r1, 22 + 8d1c: e3ffd512 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val; + 8d20: 9534 ld.w r1, (r5, 0x50) + 8d22: e3ffd50f bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + 8d26: 9537 ld.w r1, (r5, 0x5c) + 8d28: e3ffd4dc bsr 0x36e0 // 36e0 <__addsf3> + 8d2c: 6d03 mov r4, r0 + g_Eng.det_ectA = (Conv_Val * 100); //单位10mA + 8d2e: 102e lrw r1, 0x42c80000 // 8d64 + 8d30: 6c13 mov r0, r4 + 8d32: e3ffd507 bsr 0x3740 // 3740 <__mulsf3> + 8d36: e3ffd3fb bsr 0x352c // 352c <__fixunssfsi> + 8d3a: b50c st.w r0, (r5, 0x30) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"CurReg:%f",Conv_Val); + 8d3c: 6c13 mov r0, r4 + 8d3e: e3ffd67f bsr 0x3a3c // 3a3c <__extendsfdf2> + 8d42: 6c83 mov r2, r0 + 8d44: 6cc7 mov r3, r1 + 8d46: 3001 movi r0, 1 + 8d48: 1028 lrw r1, 0xb452 // 8d68 + 8d4a: e3fff675 bsr 0x7a34 // 7a34 +} + 8d4e: 6c13 mov r0, r4 + 8d50: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8d52: 3400 movi r4, 0 + 8d54: 07ed br 0x8d2e // 8d2e + 8d56: 0000 bkpt + 8d58: 2000053c .long 0x2000053c + 8d5c: 20000578 .long 0x20000578 + 8d60: 408f4000 .long 0x408f4000 + 8d64: 42c80000 .long 0x42c80000 + 8d68: 0000b452 .long 0x0000b452 + +Disassembly of section .text.HLW8110_Convert_VoltageReg_Value: + +00008d6c : +{ + 8d6c: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8d6e: 109a lrw r4, 0x2000053c // 8dd4 + 8d70: 3280 movi r2, 128 + 8d72: 9468 ld.w r3, (r4, 0x20) + 8d74: 4250 lsli r2, r2, 16 + 8d76: 68c8 and r3, r2 + 8d78: 3b40 cmpnei r3, 0 + 8d7a: 10b8 lrw r5, 0x20000578 // 8dd8 + 8d7c: 082a bt 0x8dd0 // 8dd0 + Conv_Val = value / 100.0; + 8d7e: e3ffdac9 bsr 0x4310 // 4310 <__floatunsidf> + 8d82: 3200 movi r2, 0 + 8d84: 1076 lrw r3, 0x40590000 // 8ddc + 8d86: e3ffd925 bsr 0x3fd0 // 3fd0 <__divdf3> + 8d8a: e3ffdaab bsr 0x42e0 // 42e0 <__truncdfsf2> + 8d8e: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSUC_RegData; + 8d90: 8c02 ld.h r0, (r4, 0x4) + 8d92: e3ffd5f9 bsr 0x3984 // 3984 <__floatsisf> + 8d96: 6c5b mov r1, r6 + 8d98: e3ffd4d4 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x400000; + 8d9c: 31d2 movi r1, 210 + 8d9e: 4136 lsli r1, r1, 22 + 8da0: e3ffd4d0 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.V_K_Val;//VK_Val; + 8da4: 9533 ld.w r1, (r5, 0x4c) + 8da6: e3ffd4cd bsr 0x3740 // 3740 <__mulsf3> + 8daa: 6d03 mov r4, r0 + g_Eng.det_V = (Conv_Val * 100); //单位:10mV + 8dac: 102d lrw r1, 0x42c80000 // 8de0 + 8dae: 6c13 mov r0, r4 + 8db0: e3ffd4c8 bsr 0x3740 // 3740 <__mulsf3> + 8db4: e3ffd3bc bsr 0x352c // 352c <__fixunssfsi> + 8db8: b50b st.w r0, (r5, 0x2c) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"VolReg:%f",Conv_Val); + 8dba: 6c13 mov r0, r4 + 8dbc: e3ffd640 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8dc0: 6c83 mov r2, r0 + 8dc2: 6cc7 mov r3, r1 + 8dc4: 3001 movi r0, 1 + 8dc6: 1028 lrw r1, 0xb45c // 8de4 + 8dc8: e3fff636 bsr 0x7a34 // 7a34 +} + 8dcc: 6c13 mov r0, r4 + 8dce: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8dd0: 3400 movi r4, 0 + 8dd2: 07ed br 0x8dac // 8dac + 8dd4: 2000053c .long 0x2000053c + 8dd8: 20000578 .long 0x20000578 + 8ddc: 40590000 .long 0x40590000 + 8de0: 42c80000 .long 0x42c80000 + 8de4: 0000b45c .long 0x0000b45c + +Disassembly of section .text.HLW8110_Convert_PowerReg_Value: + +00008de8 : +{ + 8de8: 14d3 push r4-r6, r15 + 8dea: 1421 subi r14, r14, 4 + Conv_Val = abs((int)value); + 8dec: 38df btsti r0, 31 +{ + 8dee: 6d43 mov r5, r0 + Conv_Val = abs((int)value); + 8df0: 0c03 bf 0x8df6 // 8df6 + 8df2: 3000 movi r0, 0 + 8df4: 6016 subu r0, r5 + 8df6: e3ffd5c7 bsr 0x3984 // 3984 <__floatsisf> + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8dfa: 1078 lrw r3, 0x2000053c // 8e58 + Conv_Val = abs((int)value); + 8dfc: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8dfe: 8b03 ld.h r0, (r3, 0x6) + 8e00: e3ffd5c2 bsr 0x3984 // 3984 <__floatsisf> + 8e04: 6c53 mov r1, r4 + 8e06: e3ffd49d bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x8000; + 8e0a: 31e0 movi r1, 224 + 8e0c: 4136 lsli r1, r1, 22 + 8e0e: e3ffd499 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x10000; + 8e12: 31de movi r1, 222 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8e14: 1092 lrw r4, 0x20000578 // 8e5c + Conv_Val = Conv_Val / 0x10000; + 8e16: 4136 lsli r1, r1, 22 + 8e18: e3ffd494 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8e1c: 9434 ld.w r1, (r4, 0x50) + 8e1e: e3ffd491 bsr 0x3740 // 3740 <__mulsf3> + 8e22: 9436 ld.w r1, (r4, 0x58) + 8e24: e3ffd48e bsr 0x3740 // 3740 <__mulsf3> + 8e28: 9433 ld.w r1, (r4, 0x4c) + 8e2a: e3ffd48b bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8e2e: 9438 ld.w r1, (r4, 0x60) + 8e30: e3ffd458 bsr 0x36e0 // 36e0 <__addsf3> + 8e34: 6d83 mov r6, r0 + g_Eng.det_powA = Conv_Val; //单位:W + 8e36: e3ffd37b bsr 0x352c // 352c <__fixunssfsi> + 8e3a: b40e st.w r0, (r4, 0x38) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"PowReg:%f,%d",Conv_Val,value); + 8e3c: 6c1b mov r0, r6 + 8e3e: e3ffd5ff bsr 0x3a3c // 3a3c <__extendsfdf2> + 8e42: 6c83 mov r2, r0 + 8e44: 6cc7 mov r3, r1 + 8e46: b8a0 st.w r5, (r14, 0x0) + 8e48: 3001 movi r0, 1 + 8e4a: 1026 lrw r1, 0xb466 // 8e60 + 8e4c: e3fff5f4 bsr 0x7a34 // 7a34 +} + 8e50: 6c1b mov r0, r6 + 8e52: 1401 addi r14, r14, 4 + 8e54: 1493 pop r4-r6, r15 + 8e56: 0000 bkpt + 8e58: 2000053c .long 0x2000053c + 8e5c: 20000578 .long 0x20000578 + 8e60: 0000b466 .long 0x0000b466 + +Disassembly of section .text.HLW8110_Convert_EnergyReg_Value: + +00008e64 : +{ + 8e64: 14d4 push r4-r7, r15 + 8e66: 1421 subi r14, r14, 4 + g_Eng.U32_EnergyA_RegData_Diff = 0x00; + 8e68: 109f lrw r4, 0x20000578 // 8ee4 +{ + 8e6a: 6d43 mov r5, r0 + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //当前记录的有效值寄存器值小于于读取到的 + 8e6c: 9431 ld.w r1, (r4, 0x44) + 8e6e: 6440 cmphs r0, r1 + 8e70: 4048 lsli r2, r0, 8 + 8e72: 0c32 bf 0x8ed6 // 8ed6 + g_Eng.U32_EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 8e74: 4128 lsli r1, r1, 8 + 8e76: 4928 lsri r1, r1, 8 + 8e78: 5865 subu r3, r0, r1 + 8e7a: b470 st.w r3, (r4, 0x40) + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e7c: 4a48 lsri r2, r2, 8 + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e7e: 94d0 ld.w r6, (r4, 0x40) + 8e80: 940f ld.w r0, (r4, 0x3c) + 8e82: 6018 addu r0, r6 + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e84: b451 st.w r2, (r4, 0x44) + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e86: b40f st.w r0, (r4, 0x3c) + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + 8e88: e3ffda44 bsr 0x4310 // 4310 <__floatunsidf> + 8e8c: e3ffda2a bsr 0x42e0 // 42e0 <__truncdfsf2> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e90: 9434 ld.w r1, (r4, 0x50) + 8e92: e3ffd457 bsr 0x3740 // 3740 <__mulsf3> + 8e96: 9433 ld.w r1, (r4, 0x4c) + 8e98: e3ffd454 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e9c: 1073 lrw r3, 0x2000053c // 8ee8 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e9e: 6dc3 mov r7, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8ea0: 8b06 ld.h r0, (r3, 0xc) + 8ea2: e3ffd571 bsr 0x3984 // 3984 <__floatsisf> + 8ea6: 6c5f mov r1, r7 + 8ea8: e3ffd44c bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x20000000; + 8eac: 31c4 movi r1, 196 + 8eae: 4136 lsli r1, r1, 22 + 8eb0: e3ffd448 bsr 0x3740 // 3740 <__mulsf3> + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8eb4: 102e lrw r1, 0x447a0000 // 8eec + Conv_Val = Conv_Val / 0x20000000; + 8eb6: 6dc3 mov r7, r0 + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8eb8: e3ffd444 bsr 0x3740 // 3740 <__mulsf3> + 8ebc: e3ffd338 bsr 0x352c // 352c <__fixunssfsi> + 8ec0: b408 st.w r0, (r4, 0x20) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"diff:%d,value:%d,Total_Eng:%d",g_Eng.U32_EnergyA_RegData_Diff,value,g_Eng.Total_Eng); + 8ec2: b800 st.w r0, (r14, 0x0) + 8ec4: 6cd7 mov r3, r5 + 8ec6: 6c9b mov r2, r6 + 8ec8: 102a lrw r1, 0xb473 // 8ef0 + 8eca: 3001 movi r0, 1 + 8ecc: e3fff5b4 bsr 0x7a34 // 7a34 +} + 8ed0: 6c1f mov r0, r7 + 8ed2: 1401 addi r14, r14, 4 + 8ed4: 1494 pop r4-r7, r15 + g_Eng.U32_EnergyA_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyA_RegData_LastRecord ); + 8ed6: 4a48 lsri r2, r2, 8 + 8ed8: 5a65 subu r3, r2, r1 + 8eda: 3180 movi r1, 128 + 8edc: 4131 lsli r1, r1, 17 + 8ede: 60c4 addu r3, r1 + 8ee0: b470 st.w r3, (r4, 0x40) + 8ee2: 07ce br 0x8e7e // 8e7e + 8ee4: 20000578 .long 0x20000578 + 8ee8: 2000053c .long 0x2000053c + 8eec: 447a0000 .long 0x447a0000 + 8ef0: 0000b473 .long 0x0000b473 + +Disassembly of section .text.HLW8110_RecvData_Processing: + +00008ef4 : +{ + 8ef4: 14d4 push r4-r7, r15 + 8ef6: 1424 subi r14, r14, 16 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8ef8: 5947 subi r2, r1, 2 + 8efa: 7489 zexth r2, r2 + 8efc: 3a08 cmphsi r2, 9 +{ + 8efe: b803 st.w r0, (r14, 0xc) + 8f00: 6dc7 mov r7, r1 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8f02: 0c09 bf 0x8f14 // 8f14 + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",RecvLen); + 8f04: 6c87 mov r2, r1 + 8f06: 3000 movi r0, 0 + 8f08: 0337 lrw r1, 0xb491 // 9128 + 8f0a: e3fff595 bsr 0x7a34 // 7a34 + return 0x01; + 8f0e: 3001 movi r0, 1 +} + 8f10: 1404 addi r14, r14, 16 + 8f12: 1494 pop r4-r7, r15 + if(u_det.WR_flag == SEND_NONE) + 8f14: 03b9 lrw r5, 0x200004f4 // 912c + 8f16: 3340 movi r3, 64 + 8f18: 60d4 addu r3, r5 + 8f1a: 8340 ld.b r2, (r3, 0x0) + 8f1c: 3a40 cmpnei r2, 0 + 8f1e: b861 st.w r3, (r14, 0x4) + 8f20: b862 st.w r3, (r14, 0x8) + 8f22: 0807 bt 0x8f30 // 8f30 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not Tack "); + 8f24: 3000 movi r0, 0 + 8f26: 033c lrw r1, 0xb49c // 9130 + 8f28: e3fff586 bsr 0x7a34 // 7a34 + return 0x02; + 8f2c: 3002 movi r0, 2 + 8f2e: 07f1 br 0x8f10 // 8f10 + memset(u_det.RevBuff,0,REV_BUFFER_SIZE); + 8f30: 301e movi r0, 30 + 8f32: 321e movi r2, 30 + 8f34: 3100 movi r1, 0 + 8f36: 6014 addu r0, r5 + 8f38: e3ffdd10 bsr 0x4958 // 4958 <__memset_fast> + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f3c: 8d40 ld.h r2, (r5, 0x0) + 8f3e: 7589 zexth r6, r2 + u_det.RevLen += 2; + 8f40: 3420 movi r4, 32 + 8f42: 6114 addu r4, r5 + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f44: ad4f st.h r2, (r5, 0x1e) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f46: 4ec8 lsri r6, r6, 8 + 8f48: 327f movi r2, 127 + u_det.RevLen += 2; + 8f4a: 3302 movi r3, 2 + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f4c: 6988 and r6, r2 + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f4e: 9823 ld.w r1, (r14, 0xc) + 8f50: 6c9f mov r2, r7 + 8f52: 6c13 mov r0, r4 + u_det.RevLen += 2; + 8f54: a47d st.b r3, (r4, 0x1d) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f56: a5df st.b r6, (r5, 0x1f) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f58: e3ffdd44 bsr 0x49e0 // 49e0 <__memcpy_fast> + u_det.RevLen += RecvLen; + 8f5c: 843d ld.b r1, (r4, 0x1d) + 8f5e: 605c addu r1, r7 + 8f60: 7444 zextb r1, r1 + 8f62: a43d st.b r1, (r4, 0x1d) + if(HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1) != RecvData[RecvLen-1]) + 8f64: 301e movi r0, 30 + 8f66: 2900 subi r1, 1 + 8f68: 7445 zexth r1, r1 + 8f6a: 6014 addu r0, r5 + 8f6c: e3fffc9e bsr 0x88a8 // 88a8 + 8f70: 9863 ld.w r3, (r14, 0xc) + 8f72: 60dc addu r3, r7 + 8f74: 6dcf mov r7, r3 + 8f76: 2f00 subi r7, 1 + 8f78: 8760 ld.b r3, (r7, 0x0) + 8f7a: 64c2 cmpne r0, r3 + 8f7c: 6c83 mov r2, r0 + 8f7e: 6dd3 mov r7, r4 + 8f80: 0c12 bf 0x8fa4 // 8fa4 + Dbg_Println(DBG_BIT_SYS_STATUS,"CRC Err:%x,%x,CMD:%02x",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + 8f82: 132d lrw r1, 0xb4a6 // 9134 + 8f84: 3000 movi r0, 0 + 8f86: b8c0 st.w r6, (r14, 0x0) + 8f88: e3fff556 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); + 8f8c: 6c97 mov r2, r5 + 8f8e: 847d ld.b r3, (r4, 0x1d) + 8f90: 221d addi r2, 30 + 8f92: 3002 movi r0, 2 + 8f94: 1329 lrw r1, 0xb4bd // 9138 + 8f96: e3fff613 bsr 0x7bbc // 7bbc + u_det.RevNum = REV_ERR; + 8f9a: 9861 ld.w r3, (r14, 0x4) + 8f9c: 3202 movi r2, 2 + 8f9e: a342 st.b r2, (r3, 0x2) + return 0x04; + 8fa0: 3004 movi r0, 4 + 8fa2: 07b7 br 0x8f10 // 8f10 + u_det.RevNum = REV_OK; + 8fa4: 9862 ld.w r3, (r14, 0x8) + 8fa6: 3201 movi r2, 1 + 8fa8: a342 st.b r2, (r3, 0x2) + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW8110_Recv CMD:%02X",u_det.RevBuff[1]); + 8faa: 3002 movi r0, 2 + 8fac: 6c9b mov r2, r6 + 8fae: 1324 lrw r1, 0xb4c1 // 913c + 8fb0: e3fff542 bsr 0x7a34 // 7a34 + switch(u_det.RevBuff[1]) + 8fb4: 857f ld.b r3, (r5, 0x1f) + 8fb6: 316f movi r1, 111 + 8fb8: 644e cmpne r3, r1 + 8fba: 1342 lrw r2, 0x2000053c // 9140 + 8fbc: 0c6b bf 0x9092 // 9092 + 8fbe: 64c4 cmphs r1, r3 + 8fc0: 0c28 bf 0x9010 // 9010 + 8fc2: 3124 movi r1, 36 + 8fc4: 644e cmpne r3, r1 + 8fc6: 0c8c bf 0x90de // 90de + 8fc8: 64c4 cmphs r1, r3 + 8fca: 0c0f bf 0x8fe8 // 8fe8 + 8fcc: 3b41 cmpnei r3, 1 + 8fce: 0c52 bf 0x9072 // 9072 + 8fd0: 3b40 cmpnei r3, 0 + 8fd2: 0c40 bf 0x9052 // 9052 + 8fd4: 3b53 cmpnei r3, 19 + 8fd6: 0c56 bf 0x9082 // 9082 + g_CalFactor.U16_HFConst_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 8fd8: 8760 ld.b r3, (r7, 0x0) + 8fda: 4368 lsli r3, r3, 8 + 8fdc: 8721 ld.b r1, (r7, 0x1) + 8fde: 60c4 addu r3, r1 + 8fe0: b26e st.w r3, (r2, 0x38) + g_Eng.hfcount = g_CalFactor.U16_HFConst_RegData; + 8fe2: 1259 lrw r2, 0x20000578 // 9144 + 8fe4: aa6e st.h r3, (r2, 0x1c) + 8fe6: 0442 br 0x906a // 906a + switch(u_det.RevBuff[1]) + 8fe8: 3128 movi r1, 40 + 8fea: 644e cmpne r3, r1 + 8fec: 0c84 bf 0x90f4 // 90f4 + 8fee: 312c movi r1, 44 + 8ff0: 644e cmpne r3, r1 + 8ff2: 0c8c bf 0x910a // 910a + 8ff4: 3126 movi r1, 38 + 8ff6: 644e cmpne r3, r1 + 8ff8: 0bf0 bt 0x8fd8 // 8fd8 + g_CalFactor.U24_Voltage_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 8ffa: 8400 ld.b r0, (r4, 0x0) + 8ffc: 8461 ld.b r3, (r4, 0x1) + 8ffe: 4368 lsli r3, r3, 8 + 9000: 4010 lsli r0, r0, 16 + 9002: 600c addu r0, r3 + 9004: 8462 ld.b r3, (r4, 0x2) + 9006: 600c addu r0, r3 + 9008: b207 st.w r0, (r2, 0x1c) + HLW8110_Convert_VoltageReg_Value(g_CalFactor.U24_Voltage_RegData); + 900a: e3fffeb1 bsr 0x8d6c // 8d6c + 900e: 042e br 0x906a // 906a + switch(u_det.RevBuff[1]) + 9010: 3173 movi r1, 115 + 9012: 644e cmpne r3, r1 + 9014: 0c4d bf 0x90ae // 90ae + 9016: 64c4 cmphs r1, r3 + 9018: 0c0c bf 0x9030 // 9030 + 901a: 3571 movi r5, 113 + 901c: 654e cmpne r3, r5 + 901e: 8420 ld.b r1, (r4, 0x0) + 9020: 8401 ld.b r0, (r4, 0x1) + 9022: 0c42 bf 0x90a6 // 90a6 + 9024: 64d4 cmphs r5, r3 + 9026: 083c bt 0x909e // 909e + g_CalFactor.U16_RMSUC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9028: 4128 lsli r1, r1, 8 + 902a: 6040 addu r1, r0 + 902c: aa22 st.h r1, (r2, 0x4) + 902e: 041e br 0x906a // 906a + switch(u_det.RevBuff[1]) + 9030: 3175 movi r1, 117 + 9032: 644e cmpne r3, r1 + 9034: 0c49 bf 0x90c6 // 90c6 + 9036: 644c cmphs r3, r1 + 9038: 0c41 bf 0x90ba // 90ba + 903a: 3176 movi r1, 118 + 903c: 644e cmpne r3, r1 + 903e: 0c4a bf 0x90d2 // 90d2 + 9040: 3177 movi r1, 119 + 9042: 644e cmpne r3, r1 + 9044: 0bca bt 0x8fd8 // 8fd8 + g_CalFactor.U16_EnergyBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9046: 8460 ld.b r3, (r4, 0x0) + 9048: 4368 lsli r3, r3, 8 + 904a: 8421 ld.b r1, (r4, 0x1) + 904c: 60c4 addu r3, r1 + 904e: aa67 st.h r3, (r2, 0xe) + 9050: 040d br 0x906a // 906a + g_CalFactor.U16_Check_SysconReg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9052: 8460 ld.b r3, (r4, 0x0) + 9054: 4368 lsli r3, r3, 8 + 9056: 8421 ld.b r1, (r4, 0x1) + 9058: 60c4 addu r3, r1 + 905a: 74cd zexth r3, r3 + 905c: aa6a st.h r3, (r2, 0x14) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 905e: 115b lrw r2, 0xa04 // 9148 + 9060: 648e cmpne r3, r2 + u_det.RevNum = REV_OK; + 9062: 9862 ld.w r3, (r14, 0x8) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 9064: 0805 bt 0x906e // 906e + u_det.RevNum = REV_OK; + 9066: 3201 movi r2, 1 + u_det.RevNum = REV_ERR; + 9068: a342 st.b r2, (r3, 0x2) + return 0x00; + 906a: 3000 movi r0, 0 + break; + 906c: 0752 br 0x8f10 // 8f10 + u_det.RevNum = REV_ERR; + 906e: 3202 movi r2, 2 + 9070: 07fc br 0x9068 // 9068 + g_CalFactor.U16_Check_Emucon1Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9072: 8460 ld.b r3, (r4, 0x0) + 9074: 4368 lsli r3, r3, 8 + 9076: 8421 ld.b r1, (r4, 0x1) + 9078: 60c4 addu r3, r1 + 907a: 74cd zexth r3, r3 + 907c: aa6b st.h r3, (r2, 0x16) + if(g_CalFactor.U16_Check_Emucon1Reg_Data == EMUCON1_DEFAULT){ + 907e: 3b41 cmpnei r3, 1 + 9080: 07f1 br 0x9062 // 9062 + g_CalFactor.U16_Check_Emucon2Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9082: 8460 ld.b r3, (r4, 0x0) + 9084: 4368 lsli r3, r3, 8 + 9086: 8421 ld.b r1, (r4, 0x1) + 9088: 60c4 addu r3, r1 + 908a: 74cd zexth r3, r3 + 908c: aa6c st.h r3, (r2, 0x18) + if(g_CalFactor.U16_Check_Emucon2Reg_Data == EMUCON2_DEFAULT){ + 908e: 1150 lrw r2, 0x465 // 914c + 9090: 07e8 br 0x9060 // 9060 + g_CalFactor.U16_CheckSUM_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9092: 8460 ld.b r3, (r4, 0x0) + 9094: 4368 lsli r3, r3, 8 + 9096: 8421 ld.b r1, (r4, 0x1) + 9098: 60c4 addu r3, r1 + 909a: aa68 st.h r3, (r2, 0x10) + 909c: 07e7 br 0x906a // 906a + g_CalFactor.U16_RMSIAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 909e: 4128 lsli r1, r1, 8 + 90a0: 6040 addu r1, r0 + 90a2: aa20 st.h r1, (r2, 0x0) + 90a4: 07e3 br 0x906a // 906a + g_CalFactor.U16_RMSIBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90a6: 4128 lsli r1, r1, 8 + 90a8: 6040 addu r1, r0 + 90aa: aa21 st.h r1, (r2, 0x2) + 90ac: 07df br 0x906a // 906a + g_CalFactor.U16_PowerPAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90ae: 8460 ld.b r3, (r4, 0x0) + 90b0: 4368 lsli r3, r3, 8 + 90b2: 8421 ld.b r1, (r4, 0x1) + 90b4: 60c4 addu r3, r1 + 90b6: aa63 st.h r3, (r2, 0x6) + 90b8: 07d9 br 0x906a // 906a + g_CalFactor.U16_PowerPBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90ba: 8460 ld.b r3, (r4, 0x0) + 90bc: 4368 lsli r3, r3, 8 + 90be: 8421 ld.b r1, (r4, 0x1) + 90c0: 60c4 addu r3, r1 + 90c2: aa64 st.h r3, (r2, 0x8) + 90c4: 07d3 br 0x906a // 906a + g_CalFactor.U16_PowerSC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90c6: 8460 ld.b r3, (r4, 0x0) + 90c8: 4368 lsli r3, r3, 8 + 90ca: 8421 ld.b r1, (r4, 0x1) + 90cc: 60c4 addu r3, r1 + 90ce: aa65 st.h r3, (r2, 0xa) + 90d0: 07cd br 0x906a // 906a + g_CalFactor.U16_EnergyAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90d2: 8460 ld.b r3, (r4, 0x0) + 90d4: 4368 lsli r3, r3, 8 + 90d6: 8421 ld.b r1, (r4, 0x1) + 90d8: 60c4 addu r3, r1 + 90da: aa66 st.h r3, (r2, 0xc) + 90dc: 07c7 br 0x906a // 906a + g_CalFactor.U24_CurrentA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 90de: 8400 ld.b r0, (r4, 0x0) + 90e0: 8461 ld.b r3, (r4, 0x1) + 90e2: 4368 lsli r3, r3, 8 + 90e4: 4010 lsli r0, r0, 16 + 90e6: 600c addu r0, r3 + 90e8: 8462 ld.b r3, (r4, 0x2) + 90ea: 600c addu r0, r3 + 90ec: b208 st.w r0, (r2, 0x20) + HLW8110_Convert_CurrentRegA_Value(g_CalFactor.U24_CurrentA_RegData); + 90ee: e3fffdf9 bsr 0x8ce0 // 8ce0 + 90f2: 07bc br 0x906a // 906a + g_CalFactor.U24_EnergyA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 90f4: 8400 ld.b r0, (r4, 0x0) + 90f6: 8461 ld.b r3, (r4, 0x1) + 90f8: 4368 lsli r3, r3, 8 + 90fa: 4010 lsli r0, r0, 16 + 90fc: 600c addu r0, r3 + 90fe: 8462 ld.b r3, (r4, 0x2) + 9100: 600c addu r0, r3 + 9102: b20c st.w r0, (r2, 0x30) + HLW8110_Convert_EnergyReg_Value(g_CalFactor.U24_EnergyA_RegData); + 9104: e3fffeb0 bsr 0x8e64 // 8e64 + 9108: 07b1 br 0x906a // 906a + g_CalFactor.U32_PowerA_RegData = (u_det.RevBuff[2]<<24) + (u_det.RevBuff[3]<<16) + (u_det.RevBuff[4]<<8) + u_det.RevBuff[5]; + 910a: 8400 ld.b r0, (r4, 0x0) + 910c: 8461 ld.b r3, (r4, 0x1) + 910e: 4370 lsli r3, r3, 16 + 9110: 4018 lsli r0, r0, 24 + 9112: 600c addu r0, r3 + 9114: 8462 ld.b r3, (r4, 0x2) + 9116: 4368 lsli r3, r3, 8 + 9118: 600c addu r0, r3 + 911a: 8463 ld.b r3, (r4, 0x3) + 911c: 600c addu r0, r3 + 911e: b20a st.w r0, (r2, 0x28) + HLW8110_Convert_PowerReg_Value(g_CalFactor.U32_PowerA_RegData); + 9120: e3fffe64 bsr 0x8de8 // 8de8 + 9124: 07a3 br 0x906a // 906a + 9126: 0000 bkpt + 9128: 0000b491 .long 0x0000b491 + 912c: 200004f4 .long 0x200004f4 + 9130: 0000b49c .long 0x0000b49c + 9134: 0000b4a6 .long 0x0000b4a6 + 9138: 0000b4bd .long 0x0000b4bd + 913c: 0000b4c1 .long 0x0000b4c1 + 9140: 2000053c .long 0x2000053c + 9144: 20000578 .long 0x20000578 + 9148: 00000a04 .long 0x00000a04 + 914c: 00000465 .long 0x00000465 + +Disassembly of section .text.HLW8110_SysPara_Check: + +00009150 : + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9150: 8841 ld.h r2, (r0, 0x2) + 9152: 8860 ld.h r3, (r0, 0x0) + 9154: 60c8 addu r3, r2 + 9156: 8842 ld.h r2, (r0, 0x4) + 9158: 60c8 addu r3, r2 + 915a: 8843 ld.h r2, (r0, 0x6) + 915c: 60c8 addu r3, r2 + g_CC->U16_PowerPAC_RegData + g_CC->U16_PowerPBC_RegData + g_CC->U16_PowerSC_RegData + + 915e: 8844 ld.h r2, (r0, 0x8) + 9160: 60c8 addu r3, r2 + 9162: 8845 ld.h r2, (r0, 0xa) + 9164: 60c8 addu r3, r2 + 9166: 8846 ld.h r2, (r0, 0xc) + 9168: 60c8 addu r3, r2 + g_CC->U16_EnergyAC_RegData + g_CC->U16_EnergyBC_RegData ); + 916a: 8847 ld.h r2, (r0, 0xe) + 916c: 60c8 addu r3, r2 + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 916e: 3000 movi r0, 0 + 9170: 600e subu r0, r3 + return CRC_p; + 9172: 7401 zexth r0, r0 +} + 9174: 783c jmp r15 + +Disassembly of section .text.HLW8110_ReadSysPara: + +00009178 : +{ + 9178: 14d3 push r4-r6, r15 + switch(g_Eng.rWCh_Num) + 917a: 037b lrw r3, 0x20000578 // 9388 + 917c: 8301 ld.b r0, (r3, 0x1) + 917e: 380a cmphsi r0, 11 + 9180: 6d0f mov r4, r3 + 9182: 08fd bt 0x937c // 937c + 9184: e3ffd1bc bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9188: 351b0f06 .long 0x351b0f06 + 918c: 8f79634d .long 0x8f79634d + 9190: 00d1bba5 .long 0x00d1bba5 + HLW8110_Reset_Tack = SysTick_1ms; + 9194: 137e lrw r3, 0x200000c4 // 938c + 9196: 9340 ld.w r2, (r3, 0x0) + 9198: 137e lrw r3, 0x2000016c // 9390 + 919a: b341 st.w r2, (r3, 0x4) + g_Eng.rWCh_Num = 0x01; + 919c: 3301 movi r3, 1 + 919e: a461 st.b r3, (r4, 0x1) + HLW8110_Reset(); + 91a0: e3fffbe4 bsr 0x8968 // 8968 +} + 91a4: 1493 pop r4-r6, r15 + if(SysTick_1ms - HLW8110_Reset_Tack >= 1000) //复位HLW8110时间 + 91a6: 133a lrw r1, 0x200000c4 // 938c + 91a8: 135a lrw r2, 0x2000016c // 9390 + 91aa: 9160 ld.w r3, (r1, 0x0) + 91ac: 9201 ld.w r0, (r2, 0x4) + 91ae: 60c2 subu r3, r0 + 91b0: 1319 lrw r0, 0x3e7 // 9394 + 91b2: 64c0 cmphs r0, r3 + 91b4: 0805 bt 0x91be // 91be + HLW8110_Reset_Tack = SysTick_1ms; + 91b6: 9160 ld.w r3, (r1, 0x0) + 91b8: b261 st.w r3, (r2, 0x4) + g_Eng.rWCh_Num = 0x02; + 91ba: 3302 movi r3, 2 + 91bc: a461 st.b r3, (r4, 0x1) + if(Get_SendState() == SEND_STATE_SUCC) + 91be: e3fffc91 bsr 0x8ae0 // 8ae0 + 91c2: 3841 cmpnei r0, 1 + 91c4: 0804 bt 0x91cc // 91cc + g_Eng.rWCh_Num = 0x03; + 91c6: 3303 movi r3, 3 + g_Eng.rWCh_Num = 0x04; + 91c8: a461 st.b r3, (r4, 0x1) + break; + 91ca: 07ed br 0x91a4 // 91a4 + else if(Get_SendState() == SEND_STATE_FAIL) + 91cc: e3fffc8a bsr 0x8ae0 // 8ae0 + 91d0: 3842 cmpnei r0, 2 + 91d2: 0806 bt 0x91de // 91de + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IAC_ADDR ERR!"); + 91d4: 1331 lrw r1, 0xb4d7 // 9398 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 91d6: 3000 movi r0, 0 + 91d8: e3fff42e bsr 0x7a34 // 7a34 + break; + 91dc: 07e4 br 0x91a4 // 91a4 + if(u_det.WR_flag == SEND_NONE) + 91de: 1370 lrw r3, 0x20000534 // 939c + 91e0: 8360 ld.b r3, (r3, 0x0) + 91e2: 3b40 cmpnei r3, 0 + 91e4: 0be0 bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IAC_ADDR,0,0); + 91e6: 3200 movi r2, 0 + 91e8: 3100 movi r1, 0 + 91ea: 3070 movi r0, 112 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 91ec: e3fffbe6 bsr 0x89b8 // 89b8 + 91f0: 07da br 0x91a4 // 91a4 + if(Get_SendState() == SEND_STATE_SUCC) + 91f2: e3fffc77 bsr 0x8ae0 // 8ae0 + 91f6: 3841 cmpnei r0, 1 + 91f8: 0803 bt 0x91fe // 91fe + g_Eng.rWCh_Num = 0x04; + 91fa: 3304 movi r3, 4 + 91fc: 07e6 br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 91fe: e3fffc71 bsr 0x8ae0 // 8ae0 + 9202: 3842 cmpnei r0, 2 + 9204: 0807 bt 0x9212 // 9212 + g_Eng.rWCh_Num = 0x00; + 9206: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 9208: 1326 lrw r1, 0xb4ed // 93a0 + 920a: 3000 movi r0, 0 + g_Eng.rWCh_Num = 0x00; + 920c: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 920e: e3fff413 bsr 0x7a34 // 7a34 + if(u_det.WR_flag == SEND_NONE) + 9212: 1363 lrw r3, 0x20000534 // 939c + 9214: 8360 ld.b r3, (r3, 0x0) + 9216: 3b40 cmpnei r3, 0 + 9218: 0bc6 bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IBC_ADDR,0,0); + 921a: 3200 movi r2, 0 + 921c: 3100 movi r1, 0 + 921e: 3071 movi r0, 113 + 9220: 07e6 br 0x91ec // 91ec + if(Get_SendState() == SEND_STATE_SUCC) + 9222: e3fffc5f bsr 0x8ae0 // 8ae0 + 9226: 3841 cmpnei r0, 1 + 9228: 0803 bt 0x922e // 922e + g_Eng.rWCh_Num = 0x05; + 922a: 3305 movi r3, 5 + 922c: 07ce br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 922e: e3fffc59 bsr 0x8ae0 // 8ae0 + 9232: 3842 cmpnei r0, 2 + 9234: 0805 bt 0x923e // 923e + g_Eng.rWCh_Num = 0x00; + 9236: 3300 movi r3, 0 + 9238: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_UC_ADDR ERR!"); + 923a: 123b lrw r1, 0xb503 // 93a4 + 923c: 07cd br 0x91d6 // 91d6 + if(u_det.WR_flag == SEND_NONE) + 923e: 1278 lrw r3, 0x20000534 // 939c + 9240: 8360 ld.b r3, (r3, 0x0) + 9242: 3b40 cmpnei r3, 0 + 9244: 0bb0 bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_UC_ADDR,0,0); + 9246: 3200 movi r2, 0 + 9248: 3100 movi r1, 0 + 924a: 3072 movi r0, 114 + 924c: 07d0 br 0x91ec // 91ec + if(Get_SendState() == SEND_STATE_SUCC) + 924e: e3fffc49 bsr 0x8ae0 // 8ae0 + 9252: 3841 cmpnei r0, 1 + 9254: 0803 bt 0x925a // 925a + g_Eng.rWCh_Num = 0x06; + 9256: 3306 movi r3, 6 + 9258: 07b8 br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 925a: e3fffc43 bsr 0x8ae0 // 8ae0 + 925e: 3842 cmpnei r0, 2 + 9260: 0805 bt 0x926a // 926a + g_Eng.rWCh_Num = 0x00; + 9262: 3300 movi r3, 0 + 9264: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PAC_ADDR ERR!"); + 9266: 1231 lrw r1, 0xb518 // 93a8 + 9268: 07b7 br 0x91d6 // 91d6 + if(u_det.WR_flag == SEND_NONE) + 926a: 126d lrw r3, 0x20000534 // 939c + 926c: 8360 ld.b r3, (r3, 0x0) + 926e: 3b40 cmpnei r3, 0 + 9270: 0b9a bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PAC_ADDR,0,0); + 9272: 3200 movi r2, 0 + 9274: 3100 movi r1, 0 + 9276: 3073 movi r0, 115 + 9278: 07ba br 0x91ec // 91ec + if(Get_SendState() == SEND_STATE_SUCC) + 927a: e3fffc33 bsr 0x8ae0 // 8ae0 + 927e: 3841 cmpnei r0, 1 + 9280: 0803 bt 0x9286 // 9286 + g_Eng.rWCh_Num = 0x07; + 9282: 3307 movi r3, 7 + 9284: 07a2 br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 9286: e3fffc2d bsr 0x8ae0 // 8ae0 + 928a: 3842 cmpnei r0, 2 + 928c: 0805 bt 0x9296 // 9296 + g_Eng.rWCh_Num = 0x00; + 928e: 3300 movi r3, 0 + 9290: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PBC_ADDR ERR!"); + 9292: 1227 lrw r1, 0xb530 // 93ac + 9294: 07a1 br 0x91d6 // 91d6 + if(u_det.WR_flag == SEND_NONE) + 9296: 1262 lrw r3, 0x20000534 // 939c + 9298: 8360 ld.b r3, (r3, 0x0) + 929a: 3b40 cmpnei r3, 0 + 929c: 0b84 bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PBC_ADDR,0,0); + 929e: 3200 movi r2, 0 + 92a0: 3100 movi r1, 0 + 92a2: 3074 movi r0, 116 + 92a4: 07a4 br 0x91ec // 91ec + if(Get_SendState() == SEND_STATE_SUCC) + 92a6: e3fffc1d bsr 0x8ae0 // 8ae0 + 92aa: 3841 cmpnei r0, 1 + 92ac: 0803 bt 0x92b2 // 92b2 + g_Eng.rWCh_Num = 0x08; + 92ae: 3308 movi r3, 8 + 92b0: 078c br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 92b2: e3fffc17 bsr 0x8ae0 // 8ae0 + 92b6: 3842 cmpnei r0, 2 + 92b8: 0805 bt 0x92c2 // 92c2 + g_Eng.rWCh_Num = 0x00; + 92ba: 3300 movi r3, 0 + 92bc: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_SC_ADDR ERR!"); + 92be: 113d lrw r1, 0xb548 // 93b0 + 92c0: 078b br 0x91d6 // 91d6 + if(u_det.WR_flag == SEND_NONE) + 92c2: 1177 lrw r3, 0x20000534 // 939c + 92c4: 8360 ld.b r3, (r3, 0x0) + 92c6: 3b40 cmpnei r3, 0 + 92c8: 0b6e bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_SC_ADDR,0,0); + 92ca: 3200 movi r2, 0 + 92cc: 3100 movi r1, 0 + 92ce: 3075 movi r0, 117 + 92d0: 078e br 0x91ec // 91ec + if(Get_SendState() == SEND_STATE_SUCC) + 92d2: e3fffc07 bsr 0x8ae0 // 8ae0 + 92d6: 3841 cmpnei r0, 1 + 92d8: 0803 bt 0x92de // 92de + g_Eng.rWCh_Num = 0x09; + 92da: 3309 movi r3, 9 + 92dc: 0776 br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 92de: e3fffc01 bsr 0x8ae0 // 8ae0 + 92e2: 3842 cmpnei r0, 2 + 92e4: 0805 bt 0x92ee // 92ee + g_Eng.rWCh_Num = 0x00; + 92e6: 3300 movi r3, 0 + 92e8: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_AC_ADDR ERR!"); + 92ea: 1133 lrw r1, 0xb55f // 93b4 + 92ec: 0775 br 0x91d6 // 91d6 + if(u_det.WR_flag == SEND_NONE) + 92ee: 116c lrw r3, 0x20000534 // 939c + 92f0: 8360 ld.b r3, (r3, 0x0) + 92f2: 3b40 cmpnei r3, 0 + 92f4: 0b58 bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_AC_ADDR,0,0); + 92f6: 3200 movi r2, 0 + 92f8: 3100 movi r1, 0 + 92fa: 3076 movi r0, 118 + 92fc: 0778 br 0x91ec // 91ec + if(Get_SendState() == SEND_STATE_SUCC) + 92fe: e3fffbf1 bsr 0x8ae0 // 8ae0 + 9302: 3841 cmpnei r0, 1 + 9304: 0803 bt 0x930a // 930a + g_Eng.rWCh_Num = 0x0A; + 9306: 330a movi r3, 10 + 9308: 0760 br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 930a: e3fffbeb bsr 0x8ae0 // 8ae0 + 930e: 3842 cmpnei r0, 2 + 9310: 0805 bt 0x931a // 931a + g_Eng.rWCh_Num = 0x00; + 9312: 3300 movi r3, 0 + 9314: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_BC_ADDR ERR!"); + 9316: 1129 lrw r1, 0xb577 // 93b8 + 9318: 075f br 0x91d6 // 91d6 + if(u_det.WR_flag == SEND_NONE) + 931a: 1161 lrw r3, 0x20000534 // 939c + 931c: 8360 ld.b r3, (r3, 0x0) + 931e: 3b40 cmpnei r3, 0 + 9320: 0b42 bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_BC_ADDR,0,0); + 9322: 3200 movi r2, 0 + 9324: 3100 movi r1, 0 + 9326: 3077 movi r0, 119 + 9328: 0762 br 0x91ec // 91ec + if(Get_SendState() == SEND_STATE_SUCC) + 932a: e3fffbdb bsr 0x8ae0 // 8ae0 + 932e: 3841 cmpnei r0, 1 + 9330: 0818 bt 0x9360 // 9360 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 9332: 11a3 lrw r5, 0x2000053c // 93bc + 9334: 6c17 mov r0, r5 + 9336: e3ffff0d bsr 0x9150 // 9150 + 933a: 8dc8 ld.h r6, (r5, 0x10) + g_Eng.rWCh_Num = 0x00; + 933c: 3300 movi r3, 0 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 933e: 641a cmpne r6, r0 + g_Eng.rWCh_Num = 0x00; + 9340: a461 st.b r3, (r4, 0x1) + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 9342: 0805 bt 0x934c // 934c + g_Eng.Tack_State = 0x02; + 9344: 3302 movi r3, 2 + 9346: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK SUCC!"); + 9348: 103e lrw r1, 0xb58f // 93c0 + 934a: 0746 br 0x91d6 // 91d6 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK ERR:%x,%x",g_CalFactor.U16_CheckSUM_RegData,HLW8110_SysPara_Check(&g_CalFactor)); + 934c: 6c17 mov r0, r5 + 934e: e3ffff01 bsr 0x9150 // 9150 + 9352: 6cc3 mov r3, r0 + 9354: 6c9b mov r2, r6 + 9356: 103c lrw r1, 0xb59f // 93c4 + 9358: 3000 movi r0, 0 + 935a: e3fff36d bsr 0x7a34 // 7a34 + break; + 935e: 0723 br 0x91a4 // 91a4 + else if(Get_SendState() == SEND_STATE_FAIL) + 9360: e3fffbc0 bsr 0x8ae0 // 8ae0 + 9364: 3842 cmpnei r0, 2 + 9366: 0803 bt 0x936c // 936c + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 9368: 1038 lrw r1, 0xb5b3 // 93c8 + 936a: 0736 br 0x91d6 // 91d6 + if(u_det.WR_flag == SEND_NONE) + 936c: 106c lrw r3, 0x20000534 // 939c + 936e: 8360 ld.b r3, (r3, 0x0) + 9370: 3b40 cmpnei r3, 0 + 9372: 0b19 bt 0x91a4 // 91a4 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 9374: 3200 movi r2, 0 + 9376: 3100 movi r1, 0 + 9378: 306f movi r0, 111 + 937a: 0739 br 0x91ec // 91ec + g_Eng.rWCh_Num = 0x00; + 937c: 3200 movi r2, 0 + 937e: a341 st.b r2, (r3, 0x1) + g_Eng.Tack_State = 0x01; + 9380: 3201 movi r2, 1 + 9382: a340 st.b r2, (r3, 0x0) +} + 9384: 0710 br 0x91a4 // 91a4 + 9386: 0000 bkpt + 9388: 20000578 .long 0x20000578 + 938c: 200000c4 .long 0x200000c4 + 9390: 2000016c .long 0x2000016c + 9394: 000003e7 .long 0x000003e7 + 9398: 0000b4d7 .long 0x0000b4d7 + 939c: 20000534 .long 0x20000534 + 93a0: 0000b4ed .long 0x0000b4ed + 93a4: 0000b503 .long 0x0000b503 + 93a8: 0000b518 .long 0x0000b518 + 93ac: 0000b530 .long 0x0000b530 + 93b0: 0000b548 .long 0x0000b548 + 93b4: 0000b55f .long 0x0000b55f + 93b8: 0000b577 .long 0x0000b577 + 93bc: 2000053c .long 0x2000053c + 93c0: 0000b58f .long 0x0000b58f + 93c4: 0000b59f .long 0x0000b59f + 93c8: 0000b5b3 .long 0x0000b5b3 + +Disassembly of section .text.HLW8110_ReadSysCtrlPara: + +000093cc : +{ + 93cc: 14d1 push r4, r15 + switch(g_Eng.rWSysCtrl) + 93ce: 118b lrw r4, 0x20000578 // 9478 + 93d0: 8462 ld.b r3, (r4, 0x2) + 93d2: 3b41 cmpnei r3, 1 + 93d4: 0c23 bf 0x941a // 941a + 93d6: 3b40 cmpnei r3, 0 + 93d8: 0c07 bf 0x93e6 // 93e6 + 93da: 3b42 cmpnei r3, 2 + 93dc: 0c35 bf 0x9446 // 9446 + g_Eng.rWSysCtrl = 0x00; + 93de: 3300 movi r3, 0 + 93e0: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x02; + 93e2: 3302 movi r3, 2 + 93e4: 0438 br 0x9454 // 9454 + if(Get_SendState() == SEND_STATE_SUCC) + 93e6: e3fffb7d bsr 0x8ae0 // 8ae0 + 93ea: 3841 cmpnei r0, 1 + 93ec: 0804 bt 0x93f4 // 93f4 + g_Eng.rWSysCtrl = 0x01; + 93ee: 3301 movi r3, 1 + g_Eng.rWSysCtrl = 0x02; + 93f0: a462 st.b r3, (r4, 0x2) +} + 93f2: 1491 pop r4, r15 + else if(Get_SendState() == SEND_STATE_FAIL) + 93f4: e3fffb76 bsr 0x8ae0 // 8ae0 + 93f8: 3842 cmpnei r0, 2 + 93fa: 0806 bt 0x9406 // 9406 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_SYSCON_ADDR ERR!"); + 93fc: 1120 lrw r1, 0xb5ca // 947c + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 93fe: 3000 movi r0, 0 + 9400: e3fff31a bsr 0x7a34 // 7a34 + break; + 9404: 07f7 br 0x93f2 // 93f2 + if(u_det.WR_flag == SEND_NONE) + 9406: 107f lrw r3, 0x20000534 // 9480 + 9408: 8360 ld.b r3, (r3, 0x0) + 940a: 3b40 cmpnei r3, 0 + 940c: 0bf3 bt 0x93f2 // 93f2 + BLV_HLW8110_RWCMD_Packaging(REG_SYSCON_ADDR,2,SYSCON_DEFAULT); + 940e: 105e lrw r2, 0xa04 // 9484 + 9410: 3102 movi r1, 2 + 9412: 3000 movi r0, 0 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 9414: e3fffad2 bsr 0x89b8 // 89b8 + 9418: 07ed br 0x93f2 // 93f2 + if(Get_SendState() == SEND_STATE_SUCC) + 941a: e3fffb63 bsr 0x8ae0 // 8ae0 + 941e: 3841 cmpnei r0, 1 + 9420: 0803 bt 0x9426 // 9426 + g_Eng.rWSysCtrl = 0x02; + 9422: 3302 movi r3, 2 + 9424: 07e6 br 0x93f0 // 93f0 + else if(Get_SendState() == SEND_STATE_FAIL) + 9426: e3fffb5d bsr 0x8ae0 // 8ae0 + 942a: 3842 cmpnei r0, 2 + 942c: 0805 bt 0x9436 // 9436 + g_Eng.rWSysCtrl = 0x00; + 942e: 3300 movi r3, 0 + 9430: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON1_ADDR ERR!"); + 9432: 1036 lrw r1, 0xb5df // 9488 + 9434: 07e5 br 0x93fe // 93fe + if(u_det.WR_flag == SEND_NONE) + 9436: 1073 lrw r3, 0x20000534 // 9480 + 9438: 8360 ld.b r3, (r3, 0x0) + 943a: 3b40 cmpnei r3, 0 + 943c: 0bdb bt 0x93f2 // 93f2 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON1_ADDR,2,EMUCON1_DEFAULT); + 943e: 3201 movi r2, 1 + 9440: 3102 movi r1, 2 + 9442: 3001 movi r0, 1 + 9444: 07e8 br 0x9414 // 9414 + if(Get_SendState() == SEND_STATE_SUCC) + 9446: e3fffb4d bsr 0x8ae0 // 8ae0 + 944a: 3841 cmpnei r0, 1 + 944c: 0806 bt 0x9458 // 9458 + g_Eng.rWSysCtrl = 0x00; + 944e: 3300 movi r3, 0 + 9450: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x03; + 9452: 3303 movi r3, 3 + g_Eng.Tack_State = 0x02; + 9454: a460 st.b r3, (r4, 0x0) +} + 9456: 07ce br 0x93f2 // 93f2 + else if(Get_SendState() == SEND_STATE_FAIL) + 9458: e3fffb44 bsr 0x8ae0 // 8ae0 + 945c: 3842 cmpnei r0, 2 + 945e: 0805 bt 0x9468 // 9468 + g_Eng.rWSysCtrl = 0x00; + 9460: 3300 movi r3, 0 + 9462: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 9464: 102a lrw r1, 0xb5f5 // 948c + 9466: 07cc br 0x93fe // 93fe + if(u_det.WR_flag == SEND_NONE) + 9468: 1066 lrw r3, 0x20000534 // 9480 + 946a: 8360 ld.b r3, (r3, 0x0) + 946c: 3b40 cmpnei r3, 0 + 946e: 0bc2 bt 0x93f2 // 93f2 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 9470: 1048 lrw r2, 0x465 // 9490 + 9472: 3102 movi r1, 2 + 9474: 3013 movi r0, 19 + 9476: 07cf br 0x9414 // 9414 + 9478: 20000578 .long 0x20000578 + 947c: 0000b5ca .long 0x0000b5ca + 9480: 20000534 .long 0x20000534 + 9484: 00000a04 .long 0x00000a04 + 9488: 0000b5df .long 0x0000b5df + 948c: 0000b5f5 .long 0x0000b5f5 + 9490: 00000465 .long 0x00000465 + +Disassembly of section .text.GetEnergy_Para: + +00009494 : +{ + 9494: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_V :%d 10mV",g_Eng.det_V); + 9496: 1092 lrw r4, 0x20000578 // 94dc + 9498: 1032 lrw r1, 0xb60b // 94e0 + 949a: 3000 movi r0, 0 + 949c: 944b ld.w r2, (r4, 0x2c) + 949e: e3fff2cb bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_I :%d 10mA",g_Eng.det_ectA); + 94a2: 944c ld.w r2, (r4, 0x30) + 94a4: 3000 movi r0, 0 + 94a6: 1030 lrw r1, 0xb61a // 94e4 + 94a8: e3fff2c6 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_P :%d W",g_Eng.det_powA); + 94ac: 944e ld.w r2, (r4, 0x38) + 94ae: 3000 movi r0, 0 + 94b0: 102e lrw r1, 0xb629 // 94e8 + 94b2: e3fff2c1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_E :%d W/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 94b6: 9469 ld.w r3, (r4, 0x24) + 94b8: 9448 ld.w r2, (r4, 0x20) + 94ba: 608e subu r2, r3 + 94bc: 102c lrw r1, 0xb635 // 94ec + 94be: 3000 movi r0, 0 + 94c0: e3fff2ba bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_TE:%d W/h",g_Eng.Total_Eng); + 94c4: 9448 ld.w r2, (r4, 0x20) + 94c6: 3000 movi r0, 0 + 94c8: 102a lrw r1, 0xb643 // 94f0 + 94ca: e3fff2b5 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_HF:%d",g_Eng.hfcount); + 94ce: 8c4e ld.h r2, (r4, 0x1c) + 94d0: 1029 lrw r1, 0xb651 // 94f4 + 94d2: 3000 movi r0, 0 + 94d4: e3fff2b0 bsr 0x7a34 // 7a34 +} + 94d8: 1491 pop r4, r15 + 94da: 0000 bkpt + 94dc: 20000578 .long 0x20000578 + 94e0: 0000b60b .long 0x0000b60b + 94e4: 0000b61a .long 0x0000b61a + 94e8: 0000b629 .long 0x0000b629 + 94ec: 0000b635 .long 0x0000b635 + 94f0: 0000b643 .long 0x0000b643 + 94f4: 0000b651 .long 0x0000b651 + +Disassembly of section .text.HLW8110_ReadValue: + +000094f8 : +{ + 94f8: 14d1 push r4, r15 + switch(g_Eng.rDValue_State) + 94fa: 128c lrw r4, 0x20000578 // 9628 + 94fc: 8403 ld.b r0, (r4, 0x3) + 94fe: 3805 cmphsi r0, 6 + 9500: 0816 bt 0x952c // 952c + 9502: e3ffcffd bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9506: 1403 .short 0x1403 + 9508: 78624c34 .long 0x78624c34 + if(SysTick_1ms - Wait_ReadValue_Tisk >= g_Eng.Collect_Tim) //S读取一次 + 950c: 1248 lrw r2, 0x200000c4 // 962c + 950e: 1229 lrw r1, 0x2000016c // 9630 + 9510: 9260 ld.w r3, (r2, 0x0) + 9512: 9102 ld.w r0, (r1, 0x8) + 9514: 60c2 subu r3, r0 + 9516: 9419 ld.w r0, (r4, 0x64) + 9518: 640c cmphs r3, r0 + 951a: 0c09 bf 0x952c // 952c + Wait_ReadValue_Tisk = SysTick_1ms; + 951c: 9240 ld.w r2, (r2, 0x0) + 951e: b142 st.w r2, (r1, 0x8) + g_Eng.rDValue_State = 0x01; + 9520: 3301 movi r3, 1 + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 9522: 1225 lrw r1, 0xb65b // 9634 + 9524: 3000 movi r0, 0 + g_Eng.rDValue_State = 0x01; + 9526: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 9528: e3fff286 bsr 0x7a34 // 7a34 +} + 952c: 1491 pop r4, r15 + if(Get_SendState() == SEND_STATE_SUCC) + 952e: e3fffad9 bsr 0x8ae0 // 8ae0 + 9532: 3841 cmpnei r0, 1 + 9534: 0804 bt 0x953c // 953c + g_Eng.rDValue_State = 0x02; + 9536: 3302 movi r3, 2 + g_Eng.rDValue_State = 0x03; + 9538: a463 st.b r3, (r4, 0x3) + break; + 953a: 07f9 br 0x952c // 952c + else if(Get_SendState() == SEND_STATE_FAIL) + 953c: e3fffad2 bsr 0x8ae0 // 8ae0 + 9540: 3842 cmpnei r0, 2 + 9542: 0808 bt 0x9552 // 9552 + g_Eng.rDValue_State = 0x00; + 9544: 3300 movi r3, 0 + 9546: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIA_ADDR ERR!"); + 9548: 113c lrw r1, 0xb668 // 9638 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 954a: 3000 movi r0, 0 + 954c: e3fff274 bsr 0x7a34 // 7a34 + break; + 9550: 07ee br 0x952c // 952c + if(u_det.WR_flag == SEND_NONE) + 9552: 117b lrw r3, 0x20000534 // 963c + 9554: 8360 ld.b r3, (r3, 0x0) + 9556: 3b40 cmpnei r3, 0 + 9558: 0806 bt 0x9564 // 9564 + BLV_HLW8110_RWCMD_Packaging(REG_RMSIA_ADDR,0,0); + 955a: 3200 movi r2, 0 + 955c: 3100 movi r1, 0 + 955e: 3024 movi r0, 36 + 9560: e3fffa2c bsr 0x89b8 // 89b8 + Wait_ReadValue_Tisk = SysTick_1ms; + 9564: 1172 lrw r3, 0x200000c4 // 962c + 9566: 9340 ld.w r2, (r3, 0x0) + 9568: 1172 lrw r3, 0x2000016c // 9630 + 956a: b342 st.w r2, (r3, 0x8) + break; + 956c: 07e0 br 0x952c // 952c + if(Get_SendState() == SEND_STATE_SUCC) + 956e: e3fffab9 bsr 0x8ae0 // 8ae0 + 9572: 3841 cmpnei r0, 1 + 9574: 0803 bt 0x957a // 957a + g_Eng.rDValue_State = 0x03; + 9576: 3303 movi r3, 3 + 9578: 07e0 br 0x9538 // 9538 + else if(Get_SendState() == SEND_STATE_FAIL) + 957a: e3fffab3 bsr 0x8ae0 // 8ae0 + 957e: 3842 cmpnei r0, 2 + 9580: 0805 bt 0x958a // 958a + g_Eng.rDValue_State = 0x00; + 9582: 3300 movi r3, 0 + 9584: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSU_ADDR ERR!"); + 9586: 112f lrw r1, 0xb67c // 9640 + 9588: 07e1 br 0x954a // 954a + if(u_det.WR_flag == SEND_NONE) + 958a: 116d lrw r3, 0x20000534 // 963c + 958c: 8360 ld.b r3, (r3, 0x0) + 958e: 3b40 cmpnei r3, 0 + 9590: 0bce bt 0x952c // 952c + BLV_HLW8110_RWCMD_Packaging(REG_RMSU_ADDR,0,0); + 9592: 3200 movi r2, 0 + 9594: 3100 movi r1, 0 + 9596: 3026 movi r0, 38 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 9598: e3fffa10 bsr 0x89b8 // 89b8 +} + 959c: 07c8 br 0x952c // 952c + if(Get_SendState() == SEND_STATE_SUCC) + 959e: e3fffaa1 bsr 0x8ae0 // 8ae0 + 95a2: 3841 cmpnei r0, 1 + 95a4: 0803 bt 0x95aa // 95aa + g_Eng.rDValue_State = 0x04; + 95a6: 3304 movi r3, 4 + 95a8: 07c8 br 0x9538 // 9538 + else if(Get_SendState() == SEND_STATE_FAIL) + 95aa: e3fffa9b bsr 0x8ae0 // 8ae0 + 95ae: 3842 cmpnei r0, 2 + 95b0: 0805 bt 0x95ba // 95ba + g_Eng.rDValue_State = 0x00; + 95b2: 3300 movi r3, 0 + 95b4: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PA_ADDR ERR!"); + 95b6: 1124 lrw r1, 0xb68f // 9644 + 95b8: 07c9 br 0x954a // 954a + if(u_det.WR_flag == SEND_NONE) + 95ba: 1161 lrw r3, 0x20000534 // 963c + 95bc: 8360 ld.b r3, (r3, 0x0) + 95be: 3b40 cmpnei r3, 0 + 95c0: 0bb6 bt 0x952c // 952c + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PA_ADDR,0,0); + 95c2: 3200 movi r2, 0 + 95c4: 3100 movi r1, 0 + 95c6: 302c movi r0, 44 + 95c8: 07e8 br 0x9598 // 9598 + if(Get_SendState() == SEND_STATE_SUCC) + 95ca: e3fffa8b bsr 0x8ae0 // 8ae0 + 95ce: 3841 cmpnei r0, 1 + 95d0: 0803 bt 0x95d6 // 95d6 + g_Eng.rDValue_State = 0x05; + 95d2: 3305 movi r3, 5 + 95d4: 07b2 br 0x9538 // 9538 + else if(Get_SendState() == SEND_STATE_FAIL) + 95d6: e3fffa85 bsr 0x8ae0 // 8ae0 + 95da: 3842 cmpnei r0, 2 + 95dc: 0805 bt 0x95e6 // 95e6 + g_Eng.rDValue_State = 0x00; + 95de: 3300 movi r3, 0 + 95e0: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PA_ADDR ERR!"); + 95e2: 103a lrw r1, 0xb6a6 // 9648 + 95e4: 07b3 br 0x954a // 954a + if(u_det.WR_flag == SEND_NONE) + 95e6: 1076 lrw r3, 0x20000534 // 963c + 95e8: 8360 ld.b r3, (r3, 0x0) + 95ea: 3b40 cmpnei r3, 0 + 95ec: 0ba0 bt 0x952c // 952c + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PA_ADDR,0,0); + 95ee: 3200 movi r2, 0 + 95f0: 3100 movi r1, 0 + 95f2: 3028 movi r0, 40 + 95f4: 07d2 br 0x9598 // 9598 + if(Get_SendState() == SEND_STATE_SUCC) + 95f6: e3fffa75 bsr 0x8ae0 // 8ae0 + 95fa: 3841 cmpnei r0, 1 + 95fc: 0805 bt 0x9606 // 9606 + GetEnergy_Para(); + 95fe: e3ffff4b bsr 0x9494 // 9494 + g_Eng.rDValue_State = 0x00; + 9602: 3300 movi r3, 0 + 9604: 079a br 0x9538 // 9538 + else if(Get_SendState() == SEND_STATE_FAIL) + 9606: e3fffa6d bsr 0x8ae0 // 8ae0 + 960a: 3842 cmpnei r0, 2 + 960c: 0805 bt 0x9616 // 9616 + g_Eng.rDValue_State = 0x00; + 960e: 3300 movi r3, 0 + 9610: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 9612: 102f lrw r1, 0xb6be // 964c + 9614: 079b br 0x954a // 954a + if(u_det.WR_flag == SEND_NONE) + 9616: 106a lrw r3, 0x20000534 // 963c + 9618: 8360 ld.b r3, (r3, 0x0) + 961a: 3b40 cmpnei r3, 0 + 961c: 0b88 bt 0x952c // 952c + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 961e: 3200 movi r2, 0 + 9620: 3100 movi r1, 0 + 9622: 3002 movi r0, 2 + 9624: 07ba br 0x9598 // 9598 + 9626: 0000 bkpt + 9628: 20000578 .long 0x20000578 + 962c: 200000c4 .long 0x200000c4 + 9630: 2000016c .long 0x2000016c + 9634: 0000b65b .long 0x0000b65b + 9638: 0000b668 .long 0x0000b668 + 963c: 20000534 .long 0x20000534 + 9640: 0000b67c .long 0x0000b67c + 9644: 0000b68f .long 0x0000b68f + 9648: 0000b6a6 .long 0x0000b6a6 + 964c: 0000b6be .long 0x0000b6be + +Disassembly of section .text.BLV_HLW8110_Tack: + +00009650 : +{ + 9650: 14d0 push r15 + switch(g_Eng.Tack_State) + 9652: 106d lrw r3, 0x20000578 // 9684 + 9654: 8300 ld.b r0, (r3, 0x0) + 9656: 3803 cmphsi r0, 4 + 9658: 080c bt 0x9670 // 9670 + 965a: e3ffcf51 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 965e: 0a02 .short 0x0a02 + 9660: 100d .short 0x100d + if(SysTick_1ms > 1500) + 9662: 104a lrw r2, 0x200000c4 // 9688 + 9664: 9220 ld.w r1, (r2, 0x0) + 9666: 104a lrw r2, 0x5dc // 968c + 9668: 6448 cmphs r2, r1 + 966a: 0803 bt 0x9670 // 9670 + g_Eng.Tack_State = 0x01; + 966c: 3201 movi r2, 1 + 966e: a340 st.b r2, (r3, 0x0) +} + 9670: 1490 pop r15 + HLW8110_ReadSysPara(); + 9672: e3fffd83 bsr 0x9178 // 9178 + break; + 9676: 07fd br 0x9670 // 9670 + HLW8110_ReadSysCtrlPara(); + 9678: e3fffeaa bsr 0x93cc // 93cc + break; + 967c: 07fa br 0x9670 // 9670 + HLW8110_ReadValue(); + 967e: e3ffff3d bsr 0x94f8 // 94f8 +} + 9682: 07f7 br 0x9670 // 9670 + 9684: 20000578 .long 0x20000578 + 9688: 200000c4 .long 0x200000c4 + 968c: 000005dc .long 0x000005dc + +Disassembly of section .text.BT_Uart_Packing: + +00009690 : +{ + 9690: 14d0 push r15 + if(flag <= 3 ) return; + 9692: 3a03 cmphsi r2, 4 + 9694: 0c03 bf 0x969a // 969a + 9696: e3fff877 bsr 0x8784 // 8784 +} + 969a: 1490 pop r15 + +Disassembly of section .text.BT_UART_Print: + +0000969c : + +//蓝牙打印调试 +void BT_UART_Print(void) +{ + 969c: 14d2 push r4-r5, r15 + static U32_T BT_State = 0x00; + static U32_T BT_WaitOutTim = 0x00; + + for(U8_T i = 10;i > 3;i--) + { + if( (g_Eng.BT_SendFlag & (0x01 << i )) != 0x00 ){ + 969e: 1176 lrw r3, 0x20000578 // 9774 + 96a0: 8b8d ld.h r4, (r3, 0x1a) + 96a2: 320a movi r2, 10 + 96a4: 3001 movi r0, 1 + 96a6: 6c53 mov r1, r4 + 96a8: 704a asr r1, r2 + 96aa: 6840 and r1, r0 + 96ac: 3940 cmpnei r1, 0 + 96ae: 0c17 bf 0x96dc // 96dc + BT_State = i; + 96b0: 7488 zextb r2, r2 + 96b2: 1132 lrw r1, 0x2000016c // 9778 + 96b4: b143 st.w r2, (r1, 0xc) + break; + } + } + + if(SysTick_1ms - g_Eng.BT_Print_Tim >= 100) + 96b6: 1132 lrw r1, 0x200000c4 // 977c + 96b8: 9140 ld.w r2, (r1, 0x0) + 96ba: 931d ld.w r0, (r3, 0x74) + 96bc: 6082 subu r2, r0 + 96be: 3063 movi r0, 99 + 96c0: 6480 cmphs r0, r2 + 96c2: 081a bt 0x96f6 // 96f6 + { + g_Eng.BT_Print_Tim = SysTick_1ms; + switch(BT_State) + 96c4: 11ad lrw r5, 0x2000016c // 9778 + 96c6: 9503 ld.w r0, (r5, 0xc) + g_Eng.BT_Print_Tim = SysTick_1ms; + 96c8: 9140 ld.w r2, (r1, 0x0) + switch(BT_State) + 96ca: 3806 cmphsi r0, 7 + g_Eng.BT_Print_Tim = SysTick_1ms; + 96cc: b35d st.w r2, (r3, 0x74) + switch(BT_State) + 96ce: 084c bt 0x9766 // 9766 + 96d0: e3ffcf16 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 96d4: 21191208 .long 0x21191208 + 96d8: 003c312a .long 0x003c312a + 96dc: 2a00 subi r2, 1 + for(U8_T i = 10;i > 3;i--) + 96de: 3a43 cmpnei r2, 3 + 96e0: 0be3 bt 0x96a6 // 96a6 + 96e2: 07ea br 0x96b6 // 96b6 + { + case 0x00: + BT_State = 0x01; + 96e4: 3101 movi r1, 1 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 96e6: 936b ld.w r3, (r3, 0x2c) + 96e8: 320a movi r2, 10 + BT_State = 0x01; + 96ea: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 96ec: 7c8c mult r2, r3 + 96ee: 1125 lrw r1, 0xb6d4 // 9780 + break; + case 0x01: + BT_State = 0x02; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96f0: 3003 movi r0, 3 + 96f2: e3fff33b bsr 0x7d68 // 7d68 + BT_State = 0x03; + break; + } + + } +} + 96f6: 1492 pop r4-r5, r15 + BT_State = 0x02; + 96f8: 3102 movi r1, 2 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 96fa: 936c ld.w r3, (r3, 0x30) + 96fc: 320a movi r2, 10 + BT_State = 0x02; + 96fe: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 9700: 7c8c mult r2, r3 + 9702: 1121 lrw r1, 0xb6db // 9784 + 9704: 07f6 br 0x96f0 // 96f0 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 9706: 934e ld.w r2, (r3, 0x38) + 9708: 33fa movi r3, 250 + BT_State = 0x03; + 970a: 3103 movi r1, 3 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 970c: 4362 lsli r3, r3, 2 + BT_State = 0x03; + 970e: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 9710: 7c8c mult r2, r3 + 9712: 103e lrw r1, 0xb6e2 // 9788 + 9714: 07ee br 0x96f0 // 96f0 + BT_WaitOutTim = SysTick_1ms; + 9716: 9120 ld.w r1, (r1, 0x0) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 9718: 9348 ld.w r2, (r3, 0x20) + BT_State = 0x04; + 971a: 3004 movi r0, 4 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 971c: 9369 ld.w r3, (r3, 0x24) + BT_WaitOutTim = SysTick_1ms; + 971e: b524 st.w r1, (r5, 0x10) + BT_State = 0x04; + 9720: b503 st.w r0, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 9722: 608e subu r2, r3 + 9724: 103a lrw r1, 0xb6ea // 978c + 9726: 07e5 br 0x96f0 // 96f0 + BT_WaitOutTim = SysTick_1ms; + 9728: 9120 ld.w r1, (r1, 0x0) + BT_State = 0x05; + 972a: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 972c: b524 st.w r1, (r5, 0x10) + BT_State = 0x05; + 972e: b503 st.w r0, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TE:%dW/h",g_Eng.Total_Eng); + 9730: 9348 ld.w r2, (r3, 0x20) + 9732: 1038 lrw r1, 0xb6e9 // 9790 + 9734: 07de br 0x96f0 // 96f0 + if(SysTick_1ms - BT_WaitOutTim >= 3000) + 9736: 9504 ld.w r0, (r5, 0x10) + 9738: 9160 ld.w r3, (r1, 0x0) + 973a: 60c2 subu r3, r0 + 973c: 1016 lrw r0, 0xbb7 // 9794 + 973e: 64c0 cmphs r0, r3 + 9740: 0bdb bt 0x96f6 // 96f6 + BT_WaitOutTim = SysTick_1ms; + 9742: 9160 ld.w r3, (r1, 0x0) + 9744: b564 st.w r3, (r5, 0x10) + BT_State = 0x00; + 9746: 3300 movi r3, 0 + 9748: b563 st.w r3, (r5, 0xc) + 974a: 07d6 br 0x96f6 // 96f6 + g_Eng.BT_SendFlag &= (~(0x01 << 6)); + 974c: 3c86 bclri r4, 6 + 974e: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x05; + 9750: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 9752: 9120 ld.w r1, (r1, 0x0) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 9754: 8359 ld.b r2, (r3, 0x19) + 9756: 1071 lrw r3, 0x20000038 // 9798 + BT_State = 0x05; + 9758: b503 st.w r0, (r5, 0xc) + BT_WaitOutTim = SysTick_1ms; + 975a: b524 st.w r1, (r5, 0x10) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 975c: 9300 ld.w r0, (r3, 0x0) + 975e: 1030 lrw r1, 0x2000057d // 979c + 9760: e3ffe85c bsr 0x6818 // 6818 + 9764: 07c9 br 0x96f6 // 96f6 + g_Eng.BT_SendFlag &= (~0xFFE0); + 9766: 321f movi r2, 31 + 9768: 6908 and r4, r2 + 976a: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x03; + 976c: 3303 movi r3, 3 + 976e: b563 st.w r3, (r5, 0xc) +} + 9770: 07c3 br 0x96f6 // 96f6 + 9772: 0000 bkpt + 9774: 20000578 .long 0x20000578 + 9778: 2000016c .long 0x2000016c + 977c: 200000c4 .long 0x200000c4 + 9780: 0000b6d4 .long 0x0000b6d4 + 9784: 0000b6db .long 0x0000b6db + 9788: 0000b6e2 .long 0x0000b6e2 + 978c: 0000b6ea .long 0x0000b6ea + 9790: 0000b6e9 .long 0x0000b6e9 + 9794: 00000bb7 .long 0x00000bb7 + 9798: 20000038 .long 0x20000038 + 979c: 2000057d .long 0x2000057d + +Disassembly of section .text.BLV_Energy_ActiveRep_Packing: + +000097a0 : + + + +//电参数主动上报组包 +void BLV_Energy_ActiveRep_Packing(void) +{ + 97a0: 14d1 push r4, r15 + 97a2: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 97a4: 1801 addi r0, r14, 4 + 97a6: 3232 movi r2, 50 + 97a8: 3100 movi r1, 0 + 97aa: e3ffd8d7 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97ae: 1175 lrw r3, 0x20000578 // 9880 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; +// g_Eng.det_LastReprot_Eng = g_Eng.det_energyA; +// Dbg_Println(DBG_BIT_SYS_STATUS,"ReportEng1:%d",Energy_Rep); + + g_Eng.SdSN++; + 97b0: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97b2: 32fa movi r2, 250 + g_Eng.SdSN++; + 97b4: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97b6: 932e ld.w r1, (r3, 0x38) + 97b8: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 97ba: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97bc: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 97be: 9309 ld.w r0, (r3, 0x24) + 97c0: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 97c2: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 97c4: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 97c6: 085a bt 0x987a // 987a + 97c8: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 97ca: 3400 movi r4, 0 + 97cc: 2c75 subi r4, 118 + 97ce: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 97d2: 8384 ld.b r4, (r3, 0x4) + 97d4: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 97d8: 3400 movi r4, 0 + 97da: 2c0b subi r4, 12 + 97dc: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 97e0: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 97e4: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 97e8: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 97ec: 1186 lrw r4, 0x20000480 // 9884 + 97ee: 8486 ld.b r4, (r4, 0x6) + 97f0: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x01; //cmd + 97f4: 3401 movi r4, 1 + 97f6: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 97fa: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 97fe: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 9800: 936c ld.w r3, (r3, 0x30) + 9802: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 9806: 4b68 lsri r3, r3, 8 + 9808: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 980c: 4a68 lsri r3, r2, 8 + 980e: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 9812: 4a70 lsri r3, r2, 16 + 9814: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 9818: 4868 lsri r3, r0, 8 + 981a: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 981e: 4870 lsri r3, r0, 16 + 9820: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 9824: 4968 lsri r3, r1, 8 + 9826: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 982a: 4970 lsri r3, r1, 16 + 982c: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 9830: 4978 lsri r3, r1, 24 + 9832: dc6e001b st.b r3, (r14, 0x1b) + + send_data[send_len++] = ENERGY_TAIL; + 9836: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 9838: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 983a: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 983c: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 9840: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 9844: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9848: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 984a: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 984c: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 984e: 3119 movi r1, 25 + 9850: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9852: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 9856: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 985a: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 985e: e3fff825 bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 9862: 33c8 movi r3, 200 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9864: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 9868: b860 st.w r3, (r14, 0x0) + 986a: 3203 movi r2, 3 + 986c: 1067 lrw r3, 0xbb8 // 9888 + 986e: 3119 movi r1, 25 + 9870: 1801 addi r0, r14, 4 + 9872: e3fff053 bsr 0x7918 // 7918 +} + 9876: 140e addi r14, r14, 56 + 9878: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 987a: 3400 movi r4, 0 + 987c: 07a6 br 0x97c8 // 97c8 + 987e: 0000 bkpt + 9880: 20000578 .long 0x20000578 + 9884: 20000480 .long 0x20000480 + 9888: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BLV_ElectricPara_Processing: + +0000988c : +{ + 988c: 14d3 push r4-r6, r15 + if (SysTick_1ms - Eng_Save_Tim >= g_Eng.SaveFlash_Tim) //1小时 + 988e: 11a2 lrw r5, 0x200000c4 // 9914 + 9890: 1142 lrw r2, 0x2000016c // 9918 + 9892: 1183 lrw r4, 0x20000578 // 991c + 9894: 9225 ld.w r1, (r2, 0x14) + 9896: 9560 ld.w r3, (r5, 0x0) + 9898: 60c6 subu r3, r1 + 989a: 943b ld.w r1, (r4, 0x6c) + 989c: 644c cmphs r3, r1 + 989e: 0c2b bf 0x98f4 // 98f4 + Eng_Save_Tim = SysTick_1ms; + 98a0: 9560 ld.w r3, (r5, 0x0) + 98a2: b265 st.w r3, (r2, 0x14) + if( (g_Eng.Total_Eng > g_Eng.LastSave_Total_Eng)||(g_Eng.U32_EnergyA_RegData > g_Eng.U32_EnergyA_RegData_LastSave) ) + 98a4: 9468 ld.w r3, (r4, 0x20) + 98a6: 944a ld.w r2, (r4, 0x28) + 98a8: 64c8 cmphs r2, r3 + 98aa: 0c05 bf 0x98b4 // 98b4 + 98ac: 942f ld.w r1, (r4, 0x3c) + 98ae: 9452 ld.w r2, (r4, 0x48) + 98b0: 6448 cmphs r2, r1 + 98b2: 0821 bt 0x98f4 // 98f4 + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 98b4: 10db lrw r6, 0x200004e8 // 9920 + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 98b6: 6c1b mov r0, r6 + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 98b8: 944f ld.w r2, (r4, 0x3c) + g_Eng.LastSave_Total_Eng = g_Eng.Total_Eng; + 98ba: b46a st.w r3, (r4, 0x28) + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 98bc: b660 st.w r3, (r6, 0x0) + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 98be: b452 st.w r2, (r4, 0x48) + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 98c0: b642 st.w r2, (r6, 0x8) + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 98c2: e3fff5a1 bsr 0x8404 // 8404 + 98c6: 6c83 mov r2, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng:%d",WriteEng_rev); + 98c8: 1037 lrw r1, 0xb6f2 // 9924 + 98ca: 3000 movi r0, 0 + 98cc: e3fff0b4 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng_Cnt:%d,TEng:%d",eng_info.eng_save_cnt,eng_info.eng_total); + 98d0: 9660 ld.w r3, (r6, 0x0) + 98d2: 9641 ld.w r2, (r6, 0x4) + 98d4: 3000 movi r0, 0 + 98d6: 1035 lrw r1, 0xb6fc // 9928 + 98d8: e3fff0ae bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEngReg_NUM:%d",eng_info.U32_EnergyA_RegData ); + 98dc: 9642 ld.w r2, (r6, 0x8) + 98de: 3000 movi r0, 0 + 98e0: 1033 lrw r1, 0xb712 // 992c + 98e2: e3fff0a9 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"save SN:%d,MAX:%d",e_save.eng_save_offset,e_save.eng_save_max); + 98e6: 1053 lrw r2, 0x20000494 // 9930 + 98e8: 1033 lrw r1, 0xb723 // 9934 + 98ea: 3000 movi r0, 0 + 98ec: 9266 ld.w r3, (r2, 0x18) + 98ee: 9247 ld.w r2, (r2, 0x1c) + 98f0: e3fff0a2 bsr 0x7a34 // 7a34 + if( (g_Dip.Dev_Port == Active_Port)&&(SysTick_1ms - g_Eng.Eng_Report_Tim >= g_Eng.Report_Tim) ) + 98f4: 1071 lrw r3, 0x20000480 // 9938 + 98f6: 8367 ld.b r3, (r3, 0x7) + 98f8: 3b41 cmpnei r3, 1 + 98fa: 080b bt 0x9910 // 9910 + 98fc: 945c ld.w r2, (r4, 0x70) + 98fe: 9560 ld.w r3, (r5, 0x0) + 9900: 60ca subu r3, r2 + 9902: 945a ld.w r2, (r4, 0x68) + 9904: 648c cmphs r3, r2 + 9906: 0c05 bf 0x9910 // 9910 + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9908: 9560 ld.w r3, (r5, 0x0) + 990a: b47c st.w r3, (r4, 0x70) + BLV_Energy_ActiveRep_Packing(); + 990c: e3ffff4a bsr 0x97a0 // 97a0 +} + 9910: 1493 pop r4-r6, r15 + 9912: 0000 bkpt + 9914: 200000c4 .long 0x200000c4 + 9918: 2000016c .long 0x2000016c + 991c: 20000578 .long 0x20000578 + 9920: 200004e8 .long 0x200004e8 + 9924: 0000b6f2 .long 0x0000b6f2 + 9928: 0000b6fc .long 0x0000b6fc + 992c: 0000b712 .long 0x0000b712 + 9930: 20000494 .long 0x20000494 + 9934: 0000b723 .long 0x0000b723 + 9938: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_EngDetect_Tack: + +0000993c : +{ + 993c: 14d0 push r15 + BLV_HLW8110_Tack(); + 993e: e3fffe89 bsr 0x9650 // 9650 + BLV_HLW8110_SendData_Tack(); + 9942: e3fff8dd bsr 0x8afc // 8afc + BLV_ElectricPara_Processing(); + 9946: e3ffffa3 bsr 0x988c // 988c + BT_UART_Print(); + 994a: e3fffea9 bsr 0x969c // 969c +} + 994e: 1490 pop r15 + +Disassembly of section .text.BLV_Energy_PassiveRep_Packing: + +00009950 : + +//电参数查询回复组包 +void BLV_Energy_PassiveRep_Packing(void) +{ + 9950: 14d1 push r4, r15 + 9952: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9954: 1801 addi r0, r14, 4 + 9956: 3232 movi r2, 50 + 9958: 3100 movi r1, 0 + 995a: e3ffd7ff bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 995e: 1176 lrw r3, 0x20000578 // 9a34 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + + + g_Eng.SdSN++; + 9960: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9962: 32fa movi r2, 250 + g_Eng.SdSN++; + 9964: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9966: 932e ld.w r1, (r3, 0x38) + 9968: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 996a: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 996c: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 996e: 9309 ld.w r0, (r3, 0x24) + 9970: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9972: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9974: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9976: 085c bt 0x9a2e // 9a2e + 9978: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 997a: 3400 movi r4, 0 + 997c: 2c75 subi r4, 118 + 997e: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 9982: 8384 ld.b r4, (r3, 0x4) + 9984: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9988: 3400 movi r4, 0 + 998a: 2c0b subi r4, 12 + 998c: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 9990: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 9994: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 9998: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 999c: 1187 lrw r4, 0x20000480 // 9a38 + 999e: 8486 ld.b r4, (r4, 0x6) + 99a0: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x02; //cmd + 99a4: 3402 movi r4, 2 + 99a6: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 99aa: 3401 movi r4, 1 + 99ac: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 99b0: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 99b2: 936c ld.w r3, (r3, 0x30) + 99b4: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 99b8: 4b68 lsri r3, r3, 8 + 99ba: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 99be: 4a68 lsri r3, r2, 8 + 99c0: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 99c4: 4a70 lsri r3, r2, 16 + 99c6: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 99ca: 4868 lsri r3, r0, 8 + 99cc: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 99d0: 4870 lsri r3, r0, 16 + 99d2: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 99d6: 4968 lsri r3, r1, 8 + 99d8: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 99dc: 4970 lsri r3, r1, 16 + 99de: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 99e2: 4978 lsri r3, r1, 24 + 99e4: dc6e001b st.b r3, (r14, 0x1b) + send_data[send_len++] = ENERGY_TAIL; + 99e8: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 99ea: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 99ec: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 99ee: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 99f2: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 99f6: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 99fa: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 99fc: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 99fe: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9a00: 3119 movi r1, 25 + 9a02: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9a04: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 9a08: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9a0c: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9a10: e3fff74c bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9a14: 3332 movi r3, 50 + 9a16: b860 st.w r3, (r14, 0x0) + 9a18: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9a1a: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9a1e: 4361 lsli r3, r3, 1 + 9a20: 3201 movi r2, 1 + 9a22: 3119 movi r1, 25 + 9a24: 1801 addi r0, r14, 4 + 9a26: e3ffef79 bsr 0x7918 // 7918 + +} + 9a2a: 140e addi r14, r14, 56 + 9a2c: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9a2e: 3400 movi r4, 0 + 9a30: 07a4 br 0x9978 // 9978 + 9a32: 0000 bkpt + 9a34: 20000578 .long 0x20000578 + 9a38: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_Energy_SetTime_Packing: + +00009a3c : + +//MCU设置周期 +U8_T BLV_Energy_SetTime_Packing(U8_T *data,U16_T lens) +{ + 9a3c: 14d2 push r4-r5, r15 + 9a3e: 1421 subi r14, r14, 4 + if(lens < 18) return 0x01; + 9a40: 3911 cmphsi r1, 18 +{ + 9a42: 6d03 mov r4, r0 + 9a44: 6d47 mov r5, r1 + if(lens < 18) return 0x01; + 9a46: 0c43 bf 0x9acc // 9acc + + U32_T temp_T = 0; + + if( ( (data[7])&0x01) == 0x01) + 9a48: 8067 ld.b r3, (r0, 0x7) + 9a4a: 3201 movi r2, 1 + 9a4c: 68c8 and r3, r2 + 9a4e: 3b40 cmpnei r3, 0 + 9a50: 0c10 bf 0x9a70 // 9a70 + { + temp_T = (data[11]<<24) + (data[10]<<16) + (data[9]<<8) + data[8]; + 9a52: 806b ld.b r3, (r0, 0xb) + 9a54: 804a ld.b r2, (r0, 0xa) + 9a56: 4250 lsli r2, r2, 16 + 9a58: 4378 lsli r3, r3, 24 + 9a5a: 60c8 addu r3, r2 + 9a5c: 8049 ld.b r2, (r0, 0x9) + 9a5e: 4248 lsli r2, r2, 8 + 9a60: 60c8 addu r3, r2 + 9a62: 8048 ld.b r2, (r0, 0x8) + 9a64: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 9a66: 105b lrw r2, 0x3e7 // 9ad0 + 9a68: 64c8 cmphs r2, r3 + 9a6a: 0803 bt 0x9a70 // 9a70 + g_Eng.Collect_Tim = temp_T; + 9a6c: 105a lrw r2, 0x20000578 // 9ad4 + 9a6e: b279 st.w r3, (r2, 0x64) + } + } + + if(data[12] == 0x00) + 9a70: 846c ld.b r3, (r4, 0xc) + { + g_Dip.Dev_Port = Passive_Port; + 9a72: 3b40 cmpnei r3, 0 + 9a74: 3300 movi r3, 0 + 9a76: 60cd addc r3, r3 + 9a78: 1058 lrw r2, 0x20000480 // 9ad8 + 9a7a: a267 st.b r3, (r2, 0x7) + } + else{ + g_Dip.Dev_Port = Active_Port; + } + + if( ((data[7] >> 1)&0x01) == 0x01) + 9a7c: 8467 ld.b r3, (r4, 0x7) + 9a7e: 4b61 lsri r3, r3, 1 + 9a80: 3201 movi r2, 1 + 9a82: 68c8 and r3, r2 + 9a84: 3b40 cmpnei r3, 0 + 9a86: 0c10 bf 0x9aa6 // 9aa6 + { + temp_T = (data[16]<<24) + (data[15]<<16) + (data[14]<<8) + data[13]; + 9a88: 8470 ld.b r3, (r4, 0x10) + 9a8a: 844f ld.b r2, (r4, 0xf) + 9a8c: 4250 lsli r2, r2, 16 + 9a8e: 4378 lsli r3, r3, 24 + 9a90: 60c8 addu r3, r2 + 9a92: 844e ld.b r2, (r4, 0xe) + 9a94: 4248 lsli r2, r2, 8 + 9a96: 60c8 addu r3, r2 + 9a98: 844d ld.b r2, (r4, 0xd) + 9a9a: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 9a9c: 104d lrw r2, 0x3e7 // 9ad0 + 9a9e: 64c8 cmphs r2, r3 + 9aa0: 0803 bt 0x9aa6 // 9aa6 + g_Eng.Report_Tim = temp_T; + 9aa2: 104d lrw r2, 0x20000578 // 9ad4 + 9aa4: b27a st.w r3, (r2, 0x68) + } + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9aa6: e3fff317 bsr 0x80d4 // 80d4 + + //数据原样返回 + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9aaa: 3314 movi r3, 20 + 9aac: b860 st.w r3, (r14, 0x0) + 9aae: 3396 movi r3, 150 + 9ab0: 4361 lsli r3, r3, 1 + 9ab2: 3201 movi r2, 1 + 9ab4: 6c57 mov r1, r5 + 9ab6: 6c13 mov r0, r4 + 9ab8: e3ffef30 bsr 0x7918 // 7918 + 9abc: 6c13 mov r0, r4 + 9abe: 7454 zextb r1, r5 + 9ac0: 3206 movi r2, 6 + 9ac2: e3fff661 bsr 0x8784 // 8784 + 9ac6: 3000 movi r0, 0 + BT_Uart_Packing(data,lens,6); + + return 0x00; +} + 9ac8: 1401 addi r14, r14, 4 + 9aca: 1492 pop r4-r5, r15 + if(lens < 18) return 0x01; + 9acc: 3001 movi r0, 1 + 9ace: 07fd br 0x9ac8 // 9ac8 + 9ad0: 000003e7 .long 0x000003e7 + 9ad4: 20000578 .long 0x20000578 + 9ad8: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_Energy_QueryVersion_Packing: + +00009adc : + +//版本查询回复组包 +void BLV_Energy_QueryVersion_Packing(void) +{ + 9adc: 14d0 push r15 + 9ade: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9ae0: 1801 addi r0, r14, 4 + 9ae2: 3232 movi r2, 50 + 9ae4: 3100 movi r1, 0 + 9ae6: e3ffd739 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + + g_Eng.SdSN++; + 9aea: 1161 lrw r3, 0x20000578 // 9b6c + 9aec: 8344 ld.b r2, (r3, 0x4) + 9aee: 2200 addi r2, 1 + 9af0: 7488 zextb r2, r2 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9af2: 3a0f cmphsi r2, 16 + 9af4: 083a bt 0x9b68 // 9b68 + 9af6: a344 st.b r2, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + send_data[send_len++] = g_Eng.SdSN; //sn; + 9af8: 8364 ld.b r3, (r3, 0x4) + 9afa: dc6e0005 st.b r3, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9afe: 3300 movi r3, 0 + 9b00: 2b0b subi r3, 12 + send_data[send_len++] = ENERGY_HEAD; + 9b02: 3200 movi r2, 0 + send_data[send_len++] = DEV_TYPE; //type + 9b04: dc6e0006 st.b r3, (r14, 0x6) + send_data[send_len++] = ENERGY_HEAD; + 9b08: 2a75 subi r2, 118 + send_data[send_len++] = g_Dip.addr; + 9b0a: 107a lrw r3, 0x20000480 // 9b70 + send_data[send_len++] = g_Dip.Dev_Port; + + send_data[send_len++] = ENERGY_TAIL; + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b0c: 310b movi r1, 11 + send_data[send_len++] = ENERGY_HEAD; + 9b0e: dc4e0004 st.b r2, (r14, 0x4) + send_data[send_len++] = g_Dip.addr; + 9b12: 8346 ld.b r2, (r3, 0x6) + send_data[send_len++] = g_Dip.Dev_Port; + 9b14: 8367 ld.b r3, (r3, 0x7) + send_data[send_len++] = g_Dip.addr; + 9b16: dc4e0007 st.b r2, (r14, 0x7) + send_data[send_len++] = g_Dip.Dev_Port; + 9b1a: dc6e000d st.b r3, (r14, 0xd) + send_data[send_len++] = 0x04; //cmd + 9b1e: 3204 movi r2, 4 + send_data[send_len++] = ENERGY_TAIL; + 9b20: 3300 movi r3, 0 + send_data[send_len++] = 0x04; //cmd + 9b22: dc4e000a st.b r2, (r14, 0xa) + send_data[send_len++] = ENERGY_TAIL; + 9b26: 2b57 subi r3, 88 + send_data[send_len++] = Project_FW_Version; + 9b28: 3203 movi r2, 3 + 9b2a: dc4e000b st.b r2, (r14, 0xb) + send_data[send_len++] = ENERGY_TAIL; + 9b2e: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = Project_HW_Version; + 9b32: 3201 movi r2, 1 + send_data[4] = send_len; + 9b34: 330b movi r3, 11 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b36: 1801 addi r0, r14, 4 + send_data[send_len++] = Project_HW_Version; + 9b38: dc4e000c st.b r2, (r14, 0xc) + send_data[4] = send_len; + 9b3c: dc6e0008 st.b r3, (r14, 0x8) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b40: e3fff6b4 bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9b44: 3332 movi r3, 50 + 9b46: b860 st.w r3, (r14, 0x0) + 9b48: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b4a: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9b4e: 4361 lsli r3, r3, 1 + 9b50: 1801 addi r0, r14, 4 + 9b52: 3201 movi r2, 1 + 9b54: 310b movi r1, 11 + 9b56: e3ffeee1 bsr 0x7918 // 7918 + 9b5a: 3206 movi r2, 6 + 9b5c: 310b movi r1, 11 + 9b5e: 1801 addi r0, r14, 4 + 9b60: e3fff612 bsr 0x8784 // 8784 + BT_Uart_Packing(send_data,send_len,6); +} + 9b64: 140e addi r14, r14, 56 + 9b66: 1490 pop r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9b68: 3200 movi r2, 0 + 9b6a: 07c6 br 0x9af6 // 9af6 + 9b6c: 20000578 .long 0x20000578 + 9b70: 20000480 .long 0x20000480 + +Disassembly of section .text.SetCalibFactor_Switch: + +00009b74 : +// +// return 0x00; +//} + +U8_T SetCalibFactor_Switch(U8_T ch,F32_T value) +{ + 9b74: 14d0 push r15 + switch(ch) + 9b76: 3805 cmphsi r0, 6 + 9b78: 0808 bt 0x9b88 // 9b88 + 9b7a: 106a lrw r3, 0x20000578 // 9ba0 + 9b7c: e3ffccc0 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9b80: 0a080603 .long 0x0a080603 + 9b84: 0e0c .short 0x0e0c + { + case 0x00: + g_Eng.V_K_Val = value; + 9b86: b333 st.w r1, (r3, 0x4c) + break; + default: + break; + } + return 0; +} + 9b88: 3000 movi r0, 0 + 9b8a: 1490 pop r15 + g_Eng.I_K1_Val = value; + 9b8c: b334 st.w r1, (r3, 0x50) + break; + 9b8e: 07fd br 0x9b88 // 9b88 + g_Eng.I_K2_Val = value; + 9b90: b335 st.w r1, (r3, 0x54) + break; + 9b92: 07fb br 0x9b88 // 9b88 + g_Eng.P_K_Val = value; + 9b94: b336 st.w r1, (r3, 0x58) + break; + 9b96: 07f9 br 0x9b88 // 9b88 + g_Eng.I_OffSetVal = value; + 9b98: b337 st.w r1, (r3, 0x5c) + break; + 9b9a: 07f7 br 0x9b88 // 9b88 + g_Eng.P_OffSetVal = value; + 9b9c: b338 st.w r1, (r3, 0x60) + break; + 9b9e: 07f5 br 0x9b88 // 9b88 + 9ba0: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_Energy_SetCalibFactor: + +00009ba4 : +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor(U8_T *data,U16_T lens) +{ + 9ba4: 14d4 push r4-r7, r15 + 9ba6: 1423 subi r14, r14, 12 + if(lens < 10) return 0x01; + 9ba8: 3909 cmphsi r1, 10 +{ + 9baa: 6d43 mov r5, r0 + 9bac: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9bae: 0c36 bf 0x9c1a // 9c1a + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9bb0: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9bb2: 3c05 cmphsi r4, 6 + 9bb4: 0835 bt 0x9c1e // 9c1e + U8_T temp_num = ((data[8])&0xff); + 9bb6: 8028 ld.b r1, (r0, 0x8) + 9bb8: 3209 movi r2, 9 + 9bba: 3906 cmphsi r1, 7 + 9bbc: 6080 addu r2, r0 + 9bbe: 6cc7 mov r3, r1 + 9bc0: 0c02 bf 0x9bc4 // 9bc4 + 9bc2: 3306 movi r3, 6 + 9bc4: 60d0 addu r3, r4 + 9bc6: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9bc8: 10f7 lrw r7, 0x47c35000 // 9c24 + for(U8_T i = 0;i< temp_num;i++) + 9bca: 64d2 cmpne r4, r3 + 9bcc: 080f bt 0x9bea // 9bea + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9bce: e3fff283 bsr 0x80d4 // 80d4 + + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9bd2: 3314 movi r3, 20 + 9bd4: b860 st.w r3, (r14, 0x0) + 9bd6: 3396 movi r3, 150 + 9bd8: 6c17 mov r0, r5 + 9bda: 4361 lsli r3, r3, 1 + 9bdc: 3201 movi r2, 1 + 9bde: 6c5b mov r1, r6 + 9be0: e3ffee9c bsr 0x7918 // 7918 + 9be4: 3000 movi r0, 0 + + return 0x00; +} + 9be6: 1403 addi r14, r14, 12 + 9be8: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9bea: 8201 ld.b r0, (r2, 0x1) + 9bec: 8220 ld.b r1, (r2, 0x0) + 9bee: 4008 lsli r0, r0, 8 + 9bf0: 6004 addu r0, r1 + 9bf2: 8222 ld.b r1, (r2, 0x2) + 9bf4: 4130 lsli r1, r1, 16 + 9bf6: 6004 addu r0, r1 + 9bf8: b862 st.w r3, (r14, 0x8) + 9bfa: b841 st.w r2, (r14, 0x4) + 9bfc: e3ffcec4 bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9c00: 6c5f mov r1, r7 + 9c02: e3ffce2b bsr 0x3858 // 3858 <__divsf3> + 9c06: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9c08: 6c13 mov r0, r4 + 9c0a: e3ffffb5 bsr 0x9b74 // 9b74 + 9c0e: 2400 addi r4, 1 + 9c10: 9841 ld.w r2, (r14, 0x4) + 9c12: 2202 addi r2, 3 + 9c14: 7510 zextb r4, r4 + 9c16: 9862 ld.w r3, (r14, 0x8) + 9c18: 07d9 br 0x9bca // 9bca + if(lens < 10) return 0x01; + 9c1a: 3001 movi r0, 1 + 9c1c: 07e5 br 0x9be6 // 9be6 + if( ctrl_num > 0x05) return 0x02; + 9c1e: 3002 movi r0, 2 + 9c20: 07e3 br 0x9be6 // 9be6 + 9c22: 0000 bkpt + 9c24: 47c35000 .long 0x47c35000 + +Disassembly of section .text.BLV_Energy_SetCalibFactor_2: + +00009c28 : + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor_2(U8_T *data,U16_T lens) +{ + 9c28: 14d4 push r4-r7, r15 + 9c2a: 1422 subi r14, r14, 8 + if(lens < 10) return 0x01; + 9c2c: 3909 cmphsi r1, 10 +{ + 9c2e: 6d43 mov r5, r0 + 9c30: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9c32: 0c32 bf 0x9c96 // 9c96 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9c34: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9c36: 3c05 cmphsi r4, 6 + 9c38: 0831 bt 0x9c9a // 9c9a + U8_T temp_num = ((data[8])&0xff); + 9c3a: 8028 ld.b r1, (r0, 0x8) + 9c3c: 3209 movi r2, 9 + 9c3e: 3903 cmphsi r1, 4 + 9c40: 6080 addu r2, r0 + 9c42: 6cc7 mov r3, r1 + 9c44: 0c02 bf 0x9c48 // 9c48 + 9c46: 3303 movi r3, 3 + 9c48: 60d0 addu r3, r4 + 9c4a: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9c4c: 10f5 lrw r7, 0x47c35000 // 9ca0 + for(U8_T i = 0;i< temp_num;i++) + 9c4e: 64d2 cmpne r4, r3 + 9c50: 080b bt 0x9c66 // 9c66 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9c52: e3fff241 bsr 0x80d4 // 80d4 + 9c56: 6c17 mov r0, r5 + 9c58: 7458 zextb r1, r6 + 9c5a: 3206 movi r2, 6 + 9c5c: e3fff594 bsr 0x8784 // 8784 + 9c60: 3000 movi r0, 0 + + //数据原样返回 + BT_Uart_Packing(data,lens,6); //蓝牙发送 + + return 0x00; +} + 9c62: 1402 addi r14, r14, 8 + 9c64: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9c66: 8201 ld.b r0, (r2, 0x1) + 9c68: 8220 ld.b r1, (r2, 0x0) + 9c6a: 4008 lsli r0, r0, 8 + 9c6c: 6004 addu r0, r1 + 9c6e: 8222 ld.b r1, (r2, 0x2) + 9c70: 4130 lsli r1, r1, 16 + 9c72: 6004 addu r0, r1 + 9c74: b861 st.w r3, (r14, 0x4) + 9c76: b840 st.w r2, (r14, 0x0) + 9c78: e3ffce86 bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9c7c: 6c5f mov r1, r7 + 9c7e: e3ffcded bsr 0x3858 // 3858 <__divsf3> + 9c82: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9c84: 6c13 mov r0, r4 + 9c86: e3ffff77 bsr 0x9b74 // 9b74 + 9c8a: 2400 addi r4, 1 + 9c8c: 9840 ld.w r2, (r14, 0x0) + 9c8e: 2202 addi r2, 3 + 9c90: 7510 zextb r4, r4 + 9c92: 9861 ld.w r3, (r14, 0x4) + 9c94: 07dd br 0x9c4e // 9c4e + if(lens < 10) return 0x01; + 9c96: 3001 movi r0, 1 + 9c98: 07e5 br 0x9c62 // 9c62 + if( ctrl_num > 0x05) return 0x02; + 9c9a: 3002 movi r0, 2 + 9c9c: 07e3 br 0x9c62 // 9c62 + 9c9e: 0000 bkpt + 9ca0: 47c35000 .long 0x47c35000 + +Disassembly of section .text.HLW_485Recv_Processing: + +00009ca4 : + + +//485处理函数 +U8_T HLW_485Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9ca4: 14d4 push r4-r7, r15 + 9ca6: 1421 subi r14, r14, 4 + + if(RecvLen < 8){ + 9ca8: 3907 cmphsi r1, 8 +{ + 9caa: 6d03 mov r4, r0 + 9cac: 6d87 mov r6, r1 + if(RecvLen < 8){ + 9cae: 0c54 bf 0x9d56 // 9d56 + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9cb0: 8024 ld.b r1, (r0, 0x4) + 9cb2: 6586 cmpne r1, r6 + 9cb4: 0c0a bf 0x9cc8 // 9cc8 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Data Len Error",__func__); + 9cb6: 1248 lrw r2, 0xab80 // 9dd4 + 9cb8: 1228 lrw r1, 0xb735 // 9dd8 + 9cba: 3000 movi r0, 0 + 9cbc: e3ffeebc bsr 0x7a34 // 7a34 + return 0x02; + 9cc0: 3502 movi r5, 2 + return 0x01; + break; + } + + return 0; +} + 9cc2: 6c17 mov r0, r5 + 9cc4: 1401 addi r14, r14, 4 + 9cc6: 1494 pop r4-r7, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9cc8: 8040 ld.b r2, (r0, 0x0) + 9cca: 338a movi r3, 138 + 9ccc: 64ca cmpne r2, r3 + 9cce: 0807 bt 0x9cdc // 9cdc + 9cd0: 5864 addu r3, r0, r1 + 9cd2: 2b00 subi r3, 1 + 9cd4: 8340 ld.b r2, (r3, 0x0) + 9cd6: 33a8 movi r3, 168 + 9cd8: 64ca cmpne r2, r3 + 9cda: 0c08 bf 0x9cea // 9cea + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Head Error",__func__); + 9cdc: 115e lrw r2, 0xab80 // 9dd4 + 9cde: 1220 lrw r1, 0xb747 // 9ddc + 9ce0: 3000 movi r0, 0 + 9ce2: e3ffeea9 bsr 0x7a34 // 7a34 + return 0x03; + 9ce6: 3503 movi r5, 3 + 9ce8: 07ed br 0x9cc2 // 9cc2 + if(RecvData[2] != DEV_TYPE){// + 9cea: 8042 ld.b r2, (r0, 0x2) + 9cec: 33f4 movi r3, 244 + 9cee: 64ca cmpne r2, r3 + 9cf0: 0c08 bf 0x9d00 // 9d00 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s TYPE Error",__func__); + 9cf2: 1159 lrw r2, 0xab80 // 9dd4 + 9cf4: 113b lrw r1, 0xb755 // 9de0 + 9cf6: 3000 movi r0, 0 + 9cf8: e3ffee9e bsr 0x7a34 // 7a34 + return 0x04; + 9cfc: 3504 movi r5, 4 + 9cfe: 07e2 br 0x9cc2 // 9cc2 + if(RecvData[3] != g_Dip.addr){// + 9d00: 1179 lrw r3, 0x20000480 // 9de4 + 9d02: 8043 ld.b r2, (r0, 0x3) + 9d04: 8366 ld.b r3, (r3, 0x6) + 9d06: 64ca cmpne r2, r3 + 9d08: 0c08 bf 0x9d18 // 9d18 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error",__func__); + 9d0a: 1153 lrw r2, 0xab80 // 9dd4 + 9d0c: 1137 lrw r1, 0xb763 // 9de8 + 9d0e: 3000 movi r0, 0 + 9d10: e3ffee92 bsr 0x7a34 // 7a34 + return 0x05; + 9d14: 3505 movi r5, 5 + 9d16: 07d6 br 0x9cc2 // 9cc2 + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9d18: e3fff5c8 bsr 0x88a8 // 88a8 + 9d1c: 3840 cmpnei r0, 0 + 9d1e: 6d43 mov r5, r0 + 9d20: 0c08 bf 0x9d30 // 9d30 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 9d22: 114d lrw r2, 0xab80 // 9dd4 + 9d24: 1132 lrw r1, 0xb771 // 9dec + 9d26: 3000 movi r0, 0 + 9d28: e3ffee86 bsr 0x7a34 // 7a34 + return 0x06; + 9d2c: 3506 movi r5, 6 + 9d2e: 07ca br 0x9cc2 // 9cc2 + g_Eng.SdSN = RecvData[1]; //序列号 + 9d30: 8461 ld.b r3, (r4, 0x1) + 9d32: 11f0 lrw r7, 0x20000578 // 9df0 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9d34: 8446 ld.b r2, (r4, 0x6) + 9d36: 1130 lrw r1, 0xb4c1 // 9df4 + 9d38: 3000 movi r0, 0 + g_Eng.SdSN = RecvData[1]; //序列号 + 9d3a: a764 st.b r3, (r7, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9d3c: e3ffee7c bsr 0x7a34 // 7a34 + switch(RecvData[6]) + 9d40: 8466 ld.b r3, (r4, 0x6) + 9d42: 3b44 cmpnei r3, 4 + 9d44: 0c36 bf 0x9db0 // 9db0 + 9d46: 3b04 cmphsi r3, 5 + 9d48: 0809 bt 0x9d5a // 9d5a + 9d4a: 3b42 cmpnei r3, 2 + 9d4c: 0c2a bf 0x9da0 // 9da0 + 9d4e: 3b02 cmphsi r3, 3 + 9d50: 082b bt 0x9da6 // 9da6 + 9d52: 3b41 cmpnei r3, 1 + 9d54: 0c23 bf 0x9d9a // 9d9a + return 0x01; + 9d56: 3501 movi r5, 1 + 9d58: 07b5 br 0x9cc2 // 9cc2 + switch(RecvData[6]) + 9d5a: 3b54 cmpnei r3, 20 + 9d5c: 0c2d bf 0x9db6 // 9db6 + 9d5e: 3b14 cmphsi r3, 21 + 9d60: 0812 bt 0x9d84 // 9d84 + 9d62: 3b53 cmpnei r3, 19 + 9d64: 0bf9 bt 0x9d56 // 9d56 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9d66: 9768 ld.w r3, (r7, 0x20) + 9d68: b769 st.w r3, (r7, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9d6a: 1164 lrw r3, 0x200000c4 // 9df8 + 9d6c: 9360 ld.w r3, (r3, 0x0) + 9d6e: b77c st.w r3, (r7, 0x70) + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 9d70: 3314 movi r3, 20 + 9d72: b860 st.w r3, (r14, 0x0) + 9d74: 3396 movi r3, 150 + 9d76: 4361 lsli r3, r3, 1 + 9d78: 3201 movi r2, 1 + 9d7a: 6c5b mov r1, r6 + 9d7c: 6c13 mov r0, r4 + 9d7e: e3ffedcd bsr 0x7918 // 7918 + break; + 9d82: 07a0 br 0x9cc2 // 9cc2 + switch(RecvData[6]) + 9d84: 3b55 cmpnei r3, 21 + 9d86: 0c22 bf 0x9dca // 9dca + 9d88: 3221 movi r2, 33 + 9d8a: 648e cmpne r3, r2 + 9d8c: 0be5 bt 0x9d56 // 9d56 + Dbg_Switch = (RecvData[7]&0x0f); + 9d8e: 320f movi r2, 15 + 9d90: 8467 ld.b r3, (r4, 0x7) + 9d92: 68c8 and r3, r2 + 9d94: 105a lrw r2, 0x200000d8 // 9dfc + 9d96: b260 st.w r3, (r2, 0x0) + 9d98: 07ec br 0x9d70 // 9d70 + Clear_SendFlag(); + 9d9a: e3ffedf1 bsr 0x797c // 797c + break; + 9d9e: 0792 br 0x9cc2 // 9cc2 + BLV_Energy_PassiveRep_Packing(); + 9da0: e3fffdd8 bsr 0x9950 // 9950 + break; + 9da4: 078f br 0x9cc2 // 9cc2 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9da6: 6c5b mov r1, r6 + 9da8: 6c13 mov r0, r4 + 9daa: e3fffe49 bsr 0x9a3c // 9a3c + break; + 9dae: 078a br 0x9cc2 // 9cc2 + BLV_Energy_QueryVersion_Packing(); + 9db0: e3fffe96 bsr 0x9adc // 9adc + break; + 9db4: 0787 br 0x9cc2 // 9cc2 + g_Eng.Total_Eng = 0; + 9db6: 3300 movi r3, 0 + eng_info.eng_total = g_Eng.Total_Eng; + 9db8: 1012 lrw r0, 0x200004e8 // 9e00 + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 9dba: b062 st.w r3, (r0, 0x8) + g_Eng.Total_Eng = 0; + 9dbc: b768 st.w r3, (r7, 0x20) + g_Eng.U32_EnergyA_RegData = 0x00; + 9dbe: b76f st.w r3, (r7, 0x3c) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9dc0: b769 st.w r3, (r7, 0x24) + eng_info.eng_total = g_Eng.Total_Eng; + 9dc2: b060 st.w r3, (r0, 0x0) + EEPROM_WriteTotalEng(&eng_info); + 9dc4: e3fff320 bsr 0x8404 // 8404 + 9dc8: 07d4 br 0x9d70 // 9d70 + BLV_Energy_SetCalibFactor(RecvData,RecvLen); + 9dca: 6c5b mov r1, r6 + 9dcc: 6c13 mov r0, r4 + 9dce: e3fffeeb bsr 0x9ba4 // 9ba4 + break; + 9dd2: 0778 br 0x9cc2 // 9cc2 + 9dd4: 0000ab80 .long 0x0000ab80 + 9dd8: 0000b735 .long 0x0000b735 + 9ddc: 0000b747 .long 0x0000b747 + 9de0: 0000b755 .long 0x0000b755 + 9de4: 20000480 .long 0x20000480 + 9de8: 0000b763 .long 0x0000b763 + 9dec: 0000b771 .long 0x0000b771 + 9df0: 20000578 .long 0x20000578 + 9df4: 0000b4c1 .long 0x0000b4c1 + 9df8: 200000c4 .long 0x200000c4 + 9dfc: 200000d8 .long 0x200000d8 + 9e00: 200004e8 .long 0x200004e8 + +Disassembly of section .text.BT_Recv_Processing: + +00009e04 : + + + +//BT处理函数 +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9e04: 14d3 push r4-r6, r15 + if(RecvLen < 8){ + 9e06: 3907 cmphsi r1, 8 +{ + 9e08: 6d03 mov r4, r0 + 9e0a: 6d47 mov r5, r1 + if(RecvLen < 8){ + 9e0c: 0c49 bf 0x9e9e // 9e9e + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9e0e: 8024 ld.b r1, (r0, 0x4) + 9e10: 6546 cmpne r1, r5 + 9e12: 0c08 bf 0x9e22 // 9e22 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"DatLenErr"); + 9e14: 1139 lrw r1, 0xb780 // 9ef8 + 9e16: 3003 movi r0, 3 + 9e18: e3ffefa8 bsr 0x7d68 // 7d68 + return 0x02; + 9e1c: 3602 movi r6, 2 + return 0x01; + break; + } + + return 0; +} + 9e1e: 6c1b mov r0, r6 + 9e20: 1493 pop r4-r6, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9e22: 8040 ld.b r2, (r0, 0x0) + 9e24: 338a movi r3, 138 + 9e26: 64ca cmpne r2, r3 + 9e28: 0807 bt 0x9e36 // 9e36 + 9e2a: 5864 addu r3, r0, r1 + 9e2c: 2b00 subi r3, 1 + 9e2e: 8340 ld.b r2, (r3, 0x0) + 9e30: 33a8 movi r3, 168 + 9e32: 64ca cmpne r2, r3 + 9e34: 0c07 bf 0x9e42 // 9e42 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"HeadErr"); + 9e36: 1132 lrw r1, 0xb78a // 9efc + 9e38: 3003 movi r0, 3 + 9e3a: e3ffef97 bsr 0x7d68 // 7d68 + return 0x03; + 9e3e: 3603 movi r6, 3 + 9e40: 07ef br 0x9e1e // 9e1e + if(RecvData[2] != DEV_TYPE){// + 9e42: 8042 ld.b r2, (r0, 0x2) + 9e44: 33f4 movi r3, 244 + 9e46: 64ca cmpne r2, r3 + 9e48: 0c07 bf 0x9e56 // 9e56 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TYPEErr"); + 9e4a: 112e lrw r1, 0xb792 // 9f00 + 9e4c: 3003 movi r0, 3 + 9e4e: e3ffef8d bsr 0x7d68 // 7d68 + return 0x04; + 9e52: 3604 movi r6, 4 + 9e54: 07e5 br 0x9e1e // 9e1e + if(RecvData[3] != g_Dip.addr){// + 9e56: 116c lrw r3, 0x20000480 // 9f04 + 9e58: 8043 ld.b r2, (r0, 0x3) + 9e5a: 8366 ld.b r3, (r3, 0x6) + 9e5c: 64ca cmpne r2, r3 + 9e5e: 0c07 bf 0x9e6c // 9e6c + Dbg_BT_Println(DBG_BIT_BT_STATUS,"AddrErr"); + 9e60: 112a lrw r1, 0xb79a // 9f08 + 9e62: 3003 movi r0, 3 + 9e64: e3ffef82 bsr 0x7d68 // 7d68 + return 0x05; + 9e68: 3605 movi r6, 5 + 9e6a: 07da br 0x9e1e // 9e1e + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9e6c: e3fff51e bsr 0x88a8 // 88a8 + 9e70: 3840 cmpnei r0, 0 + 9e72: 6d83 mov r6, r0 + 9e74: 0c07 bf 0x9e82 // 9e82 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"CheckErr"); + 9e76: 1126 lrw r1, 0xb7a2 // 9f0c + 9e78: 3003 movi r0, 3 + 9e7a: e3ffef77 bsr 0x7d68 // 7d68 + return 0x06; + 9e7e: 3606 movi r6, 6 + 9e80: 07cf br 0x9e1e // 9e1e + g_Eng.SdSN = (RecvData[1]&0x0F); //序列号 + 9e82: 8461 ld.b r3, (r4, 0x1) + 9e84: 310f movi r1, 15 + 9e86: 68c4 and r3, r1 + 9e88: 1142 lrw r2, 0x20000578 // 9f10 + 9e8a: a264 st.b r3, (r2, 0x4) + switch(RecvData[6]) + 9e8c: 8466 ld.b r3, (r4, 0x6) + 9e8e: 3b44 cmpnei r3, 4 + 9e90: 0c20 bf 0x9ed0 // 9ed0 + 9e92: 3b04 cmphsi r3, 5 + 9e94: 0807 bt 0x9ea2 // 9ea2 + 9e96: 3b42 cmpnei r3, 2 + 9e98: 0fc3 bf 0x9e1e // 9e1e + 9e9a: 3b43 cmpnei r3, 3 + 9e9c: 0c15 bf 0x9ec6 // 9ec6 + return 0x01; + 9e9e: 3601 movi r6, 1 + 9ea0: 07bf br 0x9e1e // 9e1e + switch(RecvData[6]) + 9ea2: 3b55 cmpnei r3, 21 + 9ea4: 0c19 bf 0x9ed6 // 9ed6 + 9ea6: 3121 movi r1, 33 + 9ea8: 644e cmpne r3, r1 + 9eaa: 0c1b bf 0x9ee0 // 9ee0 + 9eac: 3b53 cmpnei r3, 19 + 9eae: 0bf8 bt 0x9e9e // 9e9e + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9eb0: 9268 ld.w r3, (r2, 0x20) + 9eb2: b269 st.w r3, (r2, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9eb4: 1078 lrw r3, 0x200000c4 // 9f14 + 9eb6: 9360 ld.w r3, (r3, 0x0) + 9eb8: b27c st.w r3, (r2, 0x70) + 9eba: 7454 zextb r1, r5 + 9ebc: 3206 movi r2, 6 + 9ebe: 6c13 mov r0, r4 + 9ec0: e3fff462 bsr 0x8784 // 8784 + 9ec4: 07ad br 0x9e1e // 9e1e + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9ec6: 6c57 mov r1, r5 + 9ec8: 6c13 mov r0, r4 + 9eca: e3fffdb9 bsr 0x9a3c // 9a3c + break; + 9ece: 07a8 br 0x9e1e // 9e1e + BLV_Energy_QueryVersion_Packing(); + 9ed0: e3fffe06 bsr 0x9adc // 9adc + break; + 9ed4: 07a5 br 0x9e1e // 9e1e + BLV_Energy_SetCalibFactor_2(RecvData,RecvLen); + 9ed6: 6c57 mov r1, r5 + 9ed8: 6c13 mov r0, r4 + 9eda: e3fffea7 bsr 0x9c28 // 9c28 + break; + 9ede: 07a0 br 0x9e1e // 9e1e + if( (RecvData[7]&0x08) != 0x00 ){ + 9ee0: 3208 movi r2, 8 + 9ee2: 8467 ld.b r3, (r4, 0x7) + 9ee4: 68c8 and r3, r2 + 9ee6: 3b40 cmpnei r3, 0 + 9ee8: 106c lrw r3, 0x200000d8 // 9f18 + Dbg_Switch |= 0x08; + 9eea: 9340 ld.w r2, (r3, 0x0) + if( (RecvData[7]&0x08) != 0x00 ){ + 9eec: 0c04 bf 0x9ef4 // 9ef4 + Dbg_Switch |= 0x08; + 9eee: 3aa3 bseti r2, 3 + Dbg_Switch &= (~0x08); + 9ef0: b340 st.w r2, (r3, 0x0) + 9ef2: 07e4 br 0x9eba // 9eba + 9ef4: 3a83 bclri r2, 3 + 9ef6: 07fd br 0x9ef0 // 9ef0 + 9ef8: 0000b780 .long 0x0000b780 + 9efc: 0000b78a .long 0x0000b78a + 9f00: 0000b792 .long 0x0000b792 + 9f04: 20000480 .long 0x20000480 + 9f08: 0000b79a .long 0x0000b79a + 9f0c: 0000b7a2 .long 0x0000b7a2 + 9f10: 20000578 .long 0x20000578 + 9f14: 200000c4 .long 0x200000c4 + 9f18: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Boot_Function_Init: + +00009f1c : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 9f1c: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f1e: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f20: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f22: 4241 lsli r2, r2, 1 + 9f24: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f26: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f28: 1101 lrw r0, 0x200005f0 // 9fac + 9f2a: e3ffd517 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f2e: 6c97 mov r2, r5 + 9f30: 3100 movi r1, 0 + 9f32: 1100 lrw r0, 0x2000072c // 9fb0 + 9f34: e3ffd512 bsr 0x4958 // 4958 <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 9f38: 33fa movi r3, 250 + 9f3a: 4362 lsli r3, r3, 2 + 9f3c: 109e lrw r4, 0x200006f0 // 9fb4 + 9f3e: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 9f40: e3fff38a bsr 0x8654 // 8654 +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 9f44: 107d lrw r3, 0x2000005c // 9fb8 + 9f46: 9360 ld.w r3, (r3, 0x0) + 9f48: 23ff addi r3, 256 + 9f4a: 9343 ld.w r2, (r3, 0xc) + 9f4c: 7449 zexth r1, r2 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 9f4e: 6546 cmpne r1, r5 + 9f50: 0808 bt 0x9f60 // 9f60 + { + g_boot.bootTimeout = 5000; + 9f52: 107b lrw r3, 0x1388 // 9fbc + 9f54: b46d st.w r3, (r4, 0x34) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS," Boot software reset"); + 9f56: 103b lrw r1, 0xb7ab // 9fc0 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f58: 3000 movi r0, 0 + 9f5a: e3ffed6d bsr 0x7a34 // 7a34 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 9f5e: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 9f60: 3941 cmpnei r1, 1 + 9f62: 0806 bt 0x9f6e // 9f6e + g_boot.bootTimeout = 500; + 9f64: 33fa movi r3, 250 + 9f66: 4361 lsli r3, r3, 1 + 9f68: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot power on reset"); + 9f6a: 1037 lrw r1, 0xb7c0 // 9fc4 + 9f6c: 07f6 br 0x9f58 // 9f58 + 9f6e: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x04) //外部手动复位 + 9f70: 3944 cmpnei r1, 4 + 9f72: 4363 lsli r3, r3, 3 + 9f74: 0804 bt 0x9f7c // 9f7c + g_boot.bootTimeout = 2000; + 9f76: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex-pin reset"); + 9f78: 1034 lrw r1, 0xb7d4 // 9fc8 + 9f7a: 07ef br 0x9f58 // 9f58 + }else if(sys_reset_sta == 0x10) //看门狗超时复位 --升级完成复位源 + 9f7c: 3950 cmpnei r1, 16 + 9f7e: 0804 bt 0x9f86 // 9f86 + g_boot.bootTimeout = 2000; + 9f80: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot wdt reset"); + 9f82: 1033 lrw r1, 0xb7e6 // 9fcc + 9f84: 07ea br 0x9f58 // 9f58 + }else if(sys_reset_sta == 0x40) //外部时钟无效复位 + 9f86: 3040 movi r0, 64 + 9f88: 6406 cmpne r1, r0 + 9f8a: 0804 bt 0x9f92 // 9f92 + g_boot.bootTimeout = 2000; + 9f8c: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex clock invalid reset"); + 9f8e: 1031 lrw r1, 0xb7f5 // 9fd0 + 9f90: 07e4 br 0x9f58 // 9f58 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9f92: 3080 movi r0, 128 + 9f94: 6406 cmpne r1, r0 + g_boot.bootTimeout = 2000; + 9f96: b46d st.w r3, (r4, 0x34) + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9f98: 0803 bt 0x9f9e // 9f9e + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f9a: 102f lrw r1, 0xb811 // 9fd4 + 9f9c: 07de br 0x9f58 // 9f58 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); + 9f9e: 7489 zexth r2, r2 + 9fa0: 102e lrw r1, 0xb828 // 9fd8 + 9fa2: 3000 movi r0, 0 + 9fa4: e3ffed48 bsr 0x7a34 // 7a34 +} + 9fa8: 07db br 0x9f5e // 9f5e + 9faa: 0000 bkpt + 9fac: 200005f0 .long 0x200005f0 + 9fb0: 2000072c .long 0x2000072c + 9fb4: 200006f0 .long 0x200006f0 + 9fb8: 2000005c .long 0x2000005c + 9fbc: 00001388 .long 0x00001388 + 9fc0: 0000b7ab .long 0x0000b7ab + 9fc4: 0000b7c0 .long 0x0000b7c0 + 9fc8: 0000b7d4 .long 0x0000b7d4 + 9fcc: 0000b7e6 .long 0x0000b7e6 + 9fd0: 0000b7f5 .long 0x0000b7f5 + 9fd4: 0000b811 .long 0x0000b811 + 9fd8: 0000b828 .long 0x0000b828 + +Disassembly of section .text.Boot_Comm_CheckSum: + +00009fdc : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 9fdc: 14c1 push r4 + U8_T sum = 0; + 9fde: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 9fe0: 1047 lrw r2, 0xffff // 9ffc + 9fe2: 2900 subi r1, 1 + 9fe4: 7445 zexth r1, r1 + 9fe6: 6486 cmpne r1, r2 + 9fe8: 0804 bt 0x9ff0 // 9ff0 + { + sum += buffer[i]; + i++; + } + return (~sum); + 9fea: 6cce nor r3, r3 + 9fec: 740c zextb r0, r3 +} + 9fee: 1481 pop r4 + sum += buffer[i]; + 9ff0: 8080 ld.b r4, (r0, 0x0) + 9ff2: 60d0 addu r3, r4 + 9ff4: 74cc zextb r3, r3 + 9ff6: 2000 addi r0, 1 + 9ff8: 07f5 br 0x9fe2 // 9fe2 + 9ffa: 0000 bkpt + 9ffc: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +0000a000 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + a000: 14d4 push r4-r7, r15 + a002: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a004: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a006: 1077 lrw r3, 0x200004c0 // a060 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a008: 47e1 lsli r7, r7, 1 + a00a: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a00c: 8340 ld.b r2, (r3, 0x0) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + a00e: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a010: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + a012: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a014: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + a016: 1074 lrw r3, 0x200005f0 // a064 + a018: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a01a: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + a01c: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + a01e: 8062 ld.b r3, (r0, 0x2) + a020: a06b st.b r3, (r0, 0xb) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + a022: 4d68 lsri r3, r5, 8 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a024: 58ce addi r6, r0, 4 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a026: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + a028: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + a02a: 8041 ld.b r2, (r0, 0x1) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a02c: 3300 movi r3, 0 +{ + a02e: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + a030: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + a032: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a034: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a036: 6c57 mov r1, r5 + a038: 6c1b mov r0, r6 + a03a: e3ffffd1 bsr 0x9fdc // 9fdc + a03e: a40a st.b r0, (r4, 0xa) + +#if DBG_LOG_EN + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"ACKBuff ",ack_uart->ackBuffer,data_len); + a040: 6cd7 mov r3, r5 + a042: 6c9b mov r2, r6 + a044: 1029 lrw r1, 0xb83e // a068 + a046: 3000 movi r0, 0 + a048: e3ffedba bsr 0x7bbc // 7bbc +#endif + + //MCU485_SendData(ack_uart->ackBuffer, data_len); + Set_GroupSend(ack_uart->ackBuffer,data_len,0x01,ack_uart->ackValidity,100); + a04c: 3264 movi r2, 100 + a04e: 8f79 ld.h r3, (r7, 0x32) + a050: 6c57 mov r1, r5 + a052: b840 st.w r2, (r14, 0x0) + a054: 6c1b mov r0, r6 + a056: 3201 movi r2, 1 + a058: e3ffec60 bsr 0x7918 // 7918 + + //ack_uart->ackLen = 0x00; +} + a05c: 1401 addi r14, r14, 4 + a05e: 1494 pop r4-r7, r15 + a060: 200004c0 .long 0x200004c0 + a064: 200005f0 .long 0x200005f0 + a068: 0000b83e .long 0x0000b83e + +Disassembly of section .text.Boot_Time_Refresh: + +0000a06c : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + a06c: 1063 lrw r3, 0x200000c4 // a078 + a06e: 9340 ld.w r2, (r3, 0x0) + a070: 1063 lrw r3, 0x200006f0 // a07c + a072: b34e st.w r2, (r3, 0x38) +} + a074: 783c jmp r15 + a076: 0000 bkpt + a078: 200000c4 .long 0x200000c4 + a07c: 200006f0 .long 0x200006f0 + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +0000a080 : +{ + a080: 14d4 push r4-r7, r15 + a082: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + a084: 8065 ld.b r3, (r0, 0x5) + a086: 8044 ld.b r2, (r0, 0x4) + a088: 4368 lsli r3, r3, 8 + a08a: 6cc8 or r3, r2 + if(len != data_len) { + a08c: 644e cmpne r3, r1 +{ + a08e: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + a090: b862 st.w r3, (r14, 0x8) + if(len != data_len) { + a092: 0c08 bf 0xa0a2 // a0a2 + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Fail "); + a094: 3000 movi r0, 0 + a096: 1333 lrw r1, 0xb847 // a260 + a098: e3ffecce bsr 0x7a34 // 7a34 + return 0x01; + a09c: 3001 movi r0, 1 +} + a09e: 1403 addi r14, r14, 12 + a0a0: 1494 pop r4-r7, r15 + if(Boot_Comm_CheckSum(data,len) != 0) { + a0a2: 9822 ld.w r1, (r14, 0x8) + a0a4: e3ffff9c bsr 0x9fdc // 9fdc + a0a8: 3840 cmpnei r0, 0 + a0aa: b801 st.w r0, (r14, 0x4) + a0ac: 0c07 bf 0xa0ba // a0ba + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_CheckSum Fail "); + a0ae: 3000 movi r0, 0 + a0b0: 132d lrw r1, 0xb851 // a264 + a0b2: e3ffecc1 bsr 0x7a34 // 7a34 + return 0x02; + a0b6: 3002 movi r0, 2 + a0b8: 07f3 br 0xa09e // a09e + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a0ba: 8561 ld.b r3, (r5, 0x1) + a0bc: 748e sextb r2, r3 + a0be: 3adf btsti r2, 31 + a0c0: 138a lrw r4, 0x200005f0 // a268 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a0c2: 8421 ld.b r1, (r4, 0x1) + a0c4: 320f movi r2, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a0c6: 0c23 bf 0xa10c // a10c + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a0c8: 68c8 and r3, r2 + a0ca: 64c6 cmpne r1, r3 + a0cc: 0c0b bf 0xa0e2 // a0e2 + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN Disaffinity,Processing Data"); + a0ce: 1328 lrw r1, 0xb86a // a26c + a0d0: 3000 movi r0, 0 + a0d2: e3ffecb1 bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0d6: 3300 movi r3, 0 + a0d8: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a0da: 3701 movi r7, 1 + deal_flag = 0x01; + a0dc: 3301 movi r3, 1 + deal_flag = 0x01; + a0de: b861 st.w r3, (r14, 0x4) + a0e0: 0408 br 0xa0f0 // a0f0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN The Same,No Processing Data"); + a0e2: 1324 lrw r1, 0xb894 // a270 + a0e4: 3000 movi r0, 0 + a0e6: e3ffeca7 bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0ea: 3300 movi r3, 0 + a0ec: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a0ee: 3701 movi r7, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + a0f0: 13c1 lrw r6, 0x200004c0 // a274 + a0f2: 8562 ld.b r3, (r5, 0x2) + a0f4: 8641 ld.b r2, (r6, 0x1) + a0f6: 648e cmpne r3, r2 + a0f8: 0c28 bf 0xa148 // a148 + a0fa: 31ff movi r1, 255 + a0fc: 644e cmpne r3, r1 + a0fe: 0c25 bf 0xa148 // a148 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvType %d - %d ",g_mcu_dev.dev_type,data[BCOMM_FMT_TYPE]); + a100: 3000 movi r0, 0 + a102: 123e lrw r1, 0xb914 // a278 + a104: e3ffec98 bsr 0x7a34 // 7a34 + return 0x03; + a108: 3003 movi r0, 3 + a10a: 07ca br 0xa09e // a09e + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a10c: 688c and r2, r3 + a10e: 6486 cmpne r1, r2 + a110: 0c09 bf 0xa122 // a122 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN Disaffinity,Processing Data"); + a112: 123b lrw r1, 0xb8be // a27c + a114: 3000 movi r0, 0 + a116: e3ffec8f bsr 0x7a34 // 7a34 + reply_flag = 0x01; + a11a: 3301 movi r3, 1 + group_flag = 0x00; + a11c: 3700 movi r7, 0 + reply_flag = 0x01; + a11e: b860 st.w r3, (r14, 0x0) + a120: 07df br 0xa0de // a0de + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + a122: 3240 movi r2, 64 + a124: 68c8 and r3, r2 + a126: 3b40 cmpnei r3, 0 + a128: 0c0d bf 0xa142 // a142 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + a12a: 846b ld.b r3, (r4, 0xb) + a12c: 8547 ld.b r2, (r5, 0x7) + a12e: 64ca cmpne r2, r3 + a130: 64c3 mvcv r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a132: 74cc zextb r3, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a134: 1233 lrw r1, 0xb8e9 // a280 + a136: 3000 movi r0, 0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a138: b860 st.w r3, (r14, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a13a: e3ffec7d bsr 0x7a34 // 7a34 + group_flag = 0x00; + a13e: 3700 movi r7, 0 + a140: 07d8 br 0xa0f0 // a0f0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a142: 3300 movi r3, 0 + a144: b860 st.w r3, (r14, 0x0) + a146: 07fc br 0xa13e // a13e + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + a148: 8563 ld.b r3, (r5, 0x3) + a14a: 8640 ld.b r2, (r6, 0x0) + a14c: 648e cmpne r3, r2 + a14e: 0c0a bf 0xa162 // a162 + a150: 31ff movi r1, 255 + a152: 644e cmpne r3, r1 + a154: 0c07 bf 0xa162 // a162 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvAddr %d - %d ",g_mcu_dev.dev_addr,data[BCOMM_FMT_RXAddr]); + a156: 3000 movi r0, 0 + a158: 122b lrw r1, 0xb930 // a284 + a15a: e3ffec6d bsr 0x7a34 // 7a34 + return 0x04; + a15e: 3004 movi r0, 4 + a160: 079f br 0xa09e // a09e + Boot_Time_Refresh(); + a162: e3ffff85 bsr 0xa06c // a06c + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + a166: 8560 ld.b r3, (r5, 0x0) + a168: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + a16a: 8561 ld.b r3, (r5, 0x1) + a16c: 320f movi r2, 15 + a16e: 68c8 and r3, r2 + a170: a461 st.b r3, (r4, 0x1) + switch(g_boot.cmd){ + a172: 32c0 movi r2, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a174: 8567 ld.b r3, (r5, 0x7) + switch(g_boot.cmd){ + a176: 648e cmpne r3, r2 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a178: a462 st.b r3, (r4, 0x2) + switch(g_boot.cmd){ + a17a: 0c06 bf 0xa186 // a186 + a17c: 32c1 movi r2, 193 + a17e: 648e cmpne r3, r2 + a180: 0c53 bf 0xa226 // a226 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a182: 3301 movi r3, 1 + a184: 045f br 0xa242 // a242 + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + a186: 9861 ld.w r3, (r14, 0x4) + a188: 3b41 cmpnei r3, 1 + a18a: 081d bt 0xa1c4 // a1c4 + a18c: 9862 ld.w r3, (r14, 0x8) + a18e: 3b0b cmphsi r3, 12 + a190: 0c1a bf 0xa1c4 // a1c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Handshake Proecessing "); + a192: 113e lrw r1, 0xb94c // a288 + a194: 3000 movi r0, 0 + a196: e3ffec4f bsr 0x7a34 // 7a34 + temp_data |= data[BCOMM_FMT_PARAM]; + a19a: 8549 ld.b r2, (r5, 0x9) + a19c: 8568 ld.b r3, (r5, 0x8) + a19e: 4248 lsli r2, r2, 8 + a1a0: 6c8c or r2, r3 + if(temp_data != g_boot.bootTimeout){ + a1a2: 117b lrw r3, 0x200006f0 // a28c + a1a4: 932d ld.w r1, (r3, 0x34) + a1a6: 644a cmpne r2, r1 + a1a8: 0c09 bf 0xa1ba // a1ba + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a1aa: 3a09 cmphsi r2, 10 + a1ac: 0c3b bf 0xa222 // a222 + a1ae: b34d st.w r2, (r3, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + a1b0: 31fa movi r1, 250 + a1b2: 934d ld.w r2, (r3, 0x34) + a1b4: 4122 lsli r1, r1, 2 + a1b6: 7c84 mult r2, r1 + a1b8: b34d st.w r2, (r3, 0x34) + a1ba: 854b ld.b r2, (r5, 0xb) + a1bc: 852a ld.b r1, (r5, 0xa) + a1be: 4248 lsli r2, r2, 8 + a1c0: 6c84 or r2, r1 + g_boot.ackValidity = temp_data; + a1c2: ab59 st.h r2, (r3, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + a1c4: 9860 ld.w r3, (r14, 0x0) + a1c6: 3b41 cmpnei r3, 1 + a1c8: 0b6b bt 0xa09e // a09e + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + a1ca: 3302 movi r3, 2 + a1cc: a46c st.b r3, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + a1ce: 8662 ld.b r3, (r6, 0x2) + a1d0: a46d st.b r3, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + a1d2: 8663 ld.b r3, (r6, 0x3) + a1d4: a46e st.b r3, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + a1d6: 3303 movi r3, 3 + a1d8: a46f st.b r3, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + a1da: 116e lrw r3, 0x2000005c // a290 + a1dc: 9360 ld.w r3, (r3, 0x0) + a1de: 237f addi r3, 128 + a1e0: 9359 ld.w r2, (r3, 0x64) + a1e2: a450 st.b r2, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + a1e4: 935a ld.w r2, (r3, 0x68) + a1e6: a451 st.b r2, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + a1e8: 937b ld.w r3, (r3, 0x6c) + a1ea: a472 st.b r3, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + a1ec: 8644 ld.b r2, (r6, 0x4) + a1ee: 3320 movi r3, 32 + a1f0: 648c cmphs r3, r2 + a1f2: 0802 bt 0xa1f6 // a1f6 + a1f4: a664 st.b r3, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + a1f6: 8664 ld.b r3, (r6, 0x4) + a1f8: a473 st.b r3, (r4, 0x13) + a1fa: 3320 movi r3, 32 + a1fc: 103e lrw r1, 0x200004c0 // a274 + a1fe: 105b lrw r2, 0x200005f0 // a268 + a200: 2b00 subi r3, 1 + a202: 74cc zextb r3, r3 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + a204: 8105 ld.b r0, (r1, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + a210: 107f lrw r3, 0x200006f0 // a28c + a212: 3228 movi r2, 40 + a214: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a216: 3f40 cmpnei r7, 0 + a218: 0b43 bt 0xa09e // a09e + Boot_Comm_FillReplyPack(&g_boot); + a21a: 1014 lrw r0, 0x200005f0 // a268 + a21c: e3fffef2 bsr 0xa000 // a000 + a220: 073f br 0xa09e // a09e + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a222: 320a movi r2, 10 + a224: 07c5 br 0xa1ae // a1ae + if(deal_flag != 0x01) break; //不处理直接退出 + a226: 9861 ld.w r3, (r14, 0x4) + a228: 3b41 cmpnei r3, 1 + a22a: 0810 bt 0xa24a // a24a + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Jump Proecessing "); + a22c: 103a lrw r1, 0xb96d // a294 + a22e: 3000 movi r0, 0 + a230: e3ffec02 bsr 0x7a34 // 7a34 + if(data[BCOMM_FMT_PARAM] == 0x01){ + a234: 8568 ld.b r3, (r5, 0x8) + a236: 3b41 cmpnei r3, 1 + a238: 080e bt 0xa254 // a254 + BUS485_Jump_Boot(0x01); + a23a: 3001 movi r0, 1 + a23c: e3ffeba8 bsr 0x798c // 798c + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + a240: 3300 movi r3, 0 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a242: a46c st.b r3, (r4, 0xc) + g_boot.ackLen = 1; + a244: 3201 movi r2, 1 + a246: 1072 lrw r3, 0x200006f0 // a28c + a248: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a24a: 3f40 cmpnei r7, 0 + a24c: 0b29 bt 0xa09e // a09e + a24e: 9860 ld.w r3, (r14, 0x0) + a250: 3b41 cmpnei r3, 1 + a252: 07e3 br 0xa218 // a218 + Dbg_Println(DBG_BIT_SYS_STATUS,"ERR:Jump_boot"); + a254: 1031 lrw r1, 0xb989 // a298 + a256: 3000 movi r0, 0 + a258: e3ffebee bsr 0x7a34 // 7a34 + a25c: 0793 br 0xa182 // a182 + a25e: 0000 bkpt + a260: 0000b847 .long 0x0000b847 + a264: 0000b851 .long 0x0000b851 + a268: 200005f0 .long 0x200005f0 + a26c: 0000b86a .long 0x0000b86a + a270: 0000b894 .long 0x0000b894 + a274: 200004c0 .long 0x200004c0 + a278: 0000b914 .long 0x0000b914 + a27c: 0000b8be .long 0x0000b8be + a280: 0000b8e9 .long 0x0000b8e9 + a284: 0000b930 .long 0x0000b930 + a288: 0000b94c .long 0x0000b94c + a28c: 200006f0 .long 0x200006f0 + a290: 2000005c .long 0x2000005c + a294: 0000b96d .long 0x0000b96d + a298: 0000b989 .long 0x0000b989 + +Disassembly of section .text.TK_Sampling_prog: + +0000a29c : + a29c: 14c4 push r4-r7 + a29e: 1072 lrw r3, 0x20000054 // a2e4 + a2a0: 1012 lrw r0, 0x20000ad2 // a2e8 + a2a2: 1093 lrw r4, 0x20000943 // a2ec + a2a4: 6d83 mov r6, r0 + a2a6: 93a0 ld.w r5, (r3, 0x0) + a2a8: 3300 movi r3, 0 + a2aa: 4342 lsli r2, r3, 2 + a2ac: 6094 addu r2, r5 + a2ae: 9220 ld.w r1, (r2, 0x0) + a2b0: 4341 lsli r2, r3, 1 + a2b2: 6080 addu r2, r0 + a2b4: 7445 zexth r1, r1 + a2b6: aa20 st.h r1, (r2, 0x0) + a2b8: 8440 ld.b r2, (r4, 0x0) + a2ba: 3a41 cmpnei r2, 1 + a2bc: 080f bt 0xa2da // a2da + a2be: 3300 movi r3, 0 + a2c0: 10ec lrw r7, 0x2000082c // a2f0 + a2c2: 4341 lsli r2, r3, 1 + a2c4: 5e28 addu r1, r6, r2 + a2c6: 8920 ld.h r1, (r1, 0x0) + a2c8: 2300 addi r3, 1 + a2ca: 7445 zexth r1, r1 + a2cc: 609c addu r2, r7 + a2ce: 3b51 cmpnei r3, 17 + a2d0: aa20 st.h r1, (r2, 0x0) + a2d2: 0bf8 bt 0xa2c2 // a2c2 + a2d4: 3300 movi r3, 0 + a2d6: a460 st.b r3, (r4, 0x0) + a2d8: 3311 movi r3, 17 + a2da: 2300 addi r3, 1 + a2dc: 74cc zextb r3, r3 + a2de: 3b10 cmphsi r3, 17 + a2e0: 0fe5 bf 0xa2aa // a2aa + a2e2: 1484 pop r4-r7 + a2e4: 20000054 .long 0x20000054 + a2e8: 20000ad2 .long 0x20000ad2 + a2ec: 20000943 .long 0x20000943 + a2f0: 2000082c .long 0x2000082c + +Disassembly of section .text.TKEYIntHandler: + +0000a2f4 : + a2f4: 1460 nie + a2f6: 1462 ipush + a2f8: 14d1 push r4, r15 + a2fa: 109e lrw r4, 0x20000068 // a370 + a2fc: 9460 ld.w r3, (r4, 0x0) + a2fe: 3b40 cmpnei r3, 0 + a300: 080b bt 0xa316 // a316 + a302: 3301 movi r3, 1 + a304: b460 st.w r3, (r4, 0x0) + a306: 107c lrw r3, 0x200008c0 // a374 + a308: 8360 ld.b r3, (r3, 0x0) + a30a: 3b41 cmpnei r3, 1 + a30c: 0805 bt 0xa316 // a316 + a30e: e3ffffc7 bsr 0xa29c // a29c + a312: 3301 movi r3, 1 + a314: a464 st.b r3, (r4, 0x4) + a316: 1079 lrw r3, 0x20000058 // a378 + a318: 3101 movi r1, 1 + a31a: 9360 ld.w r3, (r3, 0x0) + a31c: 934a ld.w r2, (r3, 0x28) + a31e: 6884 and r2, r1 + a320: 3a40 cmpnei r2, 0 + a322: 0c02 bf 0xa326 // a326 + a324: b32c st.w r1, (r3, 0x30) + a326: 934a ld.w r2, (r3, 0x28) + a328: 3102 movi r1, 2 + a32a: 6884 and r2, r1 + a32c: 3a40 cmpnei r2, 0 + a32e: 0c02 bf 0xa332 // a332 + a330: b32c st.w r1, (r3, 0x30) + a332: 934a ld.w r2, (r3, 0x28) + a334: 3104 movi r1, 4 + a336: 6884 and r2, r1 + a338: 3a40 cmpnei r2, 0 + a33a: 0c02 bf 0xa33e // a33e + a33c: b32c st.w r1, (r3, 0x30) + a33e: 934a ld.w r2, (r3, 0x28) + a340: 3108 movi r1, 8 + a342: 6884 and r2, r1 + a344: 3a40 cmpnei r2, 0 + a346: 0c02 bf 0xa34a // a34a + a348: b32c st.w r1, (r3, 0x30) + a34a: 934a ld.w r2, (r3, 0x28) + a34c: 3110 movi r1, 16 + a34e: 6884 and r2, r1 + a350: 3a40 cmpnei r2, 0 + a352: 0c02 bf 0xa356 // a356 + a354: b32c st.w r1, (r3, 0x30) + a356: 934a ld.w r2, (r3, 0x28) + a358: 3120 movi r1, 32 + a35a: 6884 and r2, r1 + a35c: 3a40 cmpnei r2, 0 + a35e: 0c02 bf 0xa362 // a362 + a360: b32c st.w r1, (r3, 0x30) + a362: d9ee2001 ld.w r15, (r14, 0x4) + a366: 9880 ld.w r4, (r14, 0x0) + a368: 1402 addi r14, r14, 8 + a36a: 1463 ipop + a36c: 1461 nir + a36e: 0000 bkpt + a370: 20000068 .long 0x20000068 + a374: 200008c0 .long 0x200008c0 + a378: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000a37c : + a37c: 14c2 push r4-r5 + a37e: 3200 movi r2, 0 + a380: 3000 movi r0, 0 + a382: 1088 lrw r4, 0x20000960 // a3a0 + a384: 3501 movi r5, 1 + a386: 3120 movi r1, 32 + a388: 9460 ld.w r3, (r4, 0x0) + a38a: 70c9 lsr r3, r2 + a38c: 68d4 and r3, r5 + a38e: 3b40 cmpnei r3, 0 + a390: 0c02 bf 0xa394 // a394 + a392: 2000 addi r0, 1 + a394: 2200 addi r2, 1 + a396: 644a cmpne r2, r1 + a398: 0bf8 bt 0xa388 // a388 + a39a: 7400 zextb r0, r0 + a39c: 1482 pop r4-r5 + a39e: 0000 bkpt + a3a0: 20000960 .long 0x20000960 + +Disassembly of section .text.TK_Scan_Start: + +0000a3a4 : + a3a4: 1046 lrw r2, 0x20000068 // a3bc + a3a6: 8264 ld.b r3, (r2, 0x4) + a3a8: 74cc zextb r3, r3 + a3aa: 3b41 cmpnei r3, 1 + a3ac: 0807 bt 0xa3ba // a3ba + a3ae: 1025 lrw r1, 0x20000058 // a3c0 + a3b0: 9120 ld.w r1, (r1, 0x0) + a3b2: b162 st.w r3, (r1, 0x8) + a3b4: 3300 movi r3, 0 + a3b6: b260 st.w r3, (r2, 0x0) + a3b8: a264 st.b r3, (r2, 0x4) + a3ba: 783c jmp r15 + a3bc: 20000068 .long 0x20000068 + a3c0: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +0000a3c4 : + a3c4: 14d4 push r4-r7, r15 + a3c6: 1425 subi r14, r14, 20 + a3c8: 1271 lrw r3, 0x200001b0 // a50c + a3ca: 8360 ld.b r3, (r3, 0x0) + a3cc: b860 st.w r3, (r14, 0x0) + a3ce: 3400 movi r4, 0 + a3d0: 1270 lrw r3, 0x20000184 // a510 + a3d2: 8360 ld.b r3, (r3, 0x0) + a3d4: b861 st.w r3, (r14, 0x4) + a3d6: 12f0 lrw r7, 0x200008d6 // a514 + a3d8: 1270 lrw r3, 0x2000018d // a518 + a3da: 83a0 ld.b r5, (r3, 0x0) + a3dc: 1270 lrw r3, 0x2000018c // a51c + a3de: 8360 ld.b r3, (r3, 0x0) + a3e0: b862 st.w r3, (r14, 0x8) + a3e2: 6d9f mov r6, r7 + a3e4: 126f lrw r3, 0x20000ad2 // a520 + a3e6: b863 st.w r3, (r14, 0xc) + a3e8: 4461 lsli r3, r4, 1 + a3ea: 9843 ld.w r2, (r14, 0xc) + a3ec: 608c addu r2, r3 + a3ee: 122e lrw r1, 0x2000082c // a524 + a3f0: 604c addu r1, r3 + a3f2: 8a40 ld.h r2, (r2, 0x0) + a3f4: 8920 ld.h r1, (r1, 0x0) + a3f6: 6086 subu r2, r1 + a3f8: 748b sexth r2, r2 + a3fa: 5f2c addu r1, r7, r3 + a3fc: a940 st.h r2, (r1, 0x0) + a3fe: 8940 ld.h r2, (r1, 0x0) + a400: 748b sexth r2, r2 + a402: 3adf btsti r2, 31 + a404: 1249 lrw r2, 0x20000a8e // a528 + a406: 608c addu r2, r3 + a408: 0c37 bf 0xa476 // a476 + a40a: 3100 movi r1, 0 + a40c: aa20 st.h r1, (r2, 0x0) + a40e: 9840 ld.w r2, (r14, 0x0) + a410: 3a01 cmphsi r2, 2 + a412: 0c6d bf 0xa4ec // a4ec + a414: 4461 lsli r3, r4, 1 + a416: 5e2c addu r1, r6, r3 + a418: 1205 lrw r0, 0x200001de // a52c + a41a: 8940 ld.h r2, (r1, 0x0) + a41c: 60c0 addu r3, r0 + a41e: 748b sexth r2, r2 + a420: 8b60 ld.h r3, (r3, 0x0) + a422: 648d cmplt r3, r2 + a424: 9840 ld.w r2, (r14, 0x0) + a426: 7cc8 mult r3, r2 + a428: 0c2a bf 0xa47c // a47c + a42a: 8940 ld.h r2, (r1, 0x0) + a42c: 748b sexth r2, r2 + a42e: 64c9 cmplt r2, r3 + a430: 0c26 bf 0xa47c // a47c + a432: 1240 lrw r2, 0x200008c4 // a530 + a434: 6090 addu r2, r4 + a436: 8260 ld.b r3, (r2, 0x0) + a438: 2300 addi r3, 1 + a43a: 74cc zextb r3, r3 + a43c: a260 st.b r3, (r2, 0x0) + a43e: 3100 movi r1, 0 + a440: 117d lrw r3, 0x200008aa // a534 + a442: 60d0 addu r3, r4 + a444: a320 st.b r1, (r3, 0x0) + a446: 117d lrw r3, 0x20000986 // a538 + a448: 60d0 addu r3, r4 + a44a: a320 st.b r1, (r3, 0x0) + a44c: 117c lrw r3, 0x20000a00 // a53c + a44e: 60d0 addu r3, r4 + a450: a320 st.b r1, (r3, 0x0) + a452: 8260 ld.b r3, (r2, 0x0) + a454: 9821 ld.w r1, (r14, 0x4) + a456: 64c4 cmphs r1, r3 + a458: 081f bt 0xa496 // a496 + a45a: 3d40 cmpnei r5, 0 + a45c: 0852 bt 0xa500 // a500 + a45e: 1139 lrw r1, 0x200008bc // a540 + a460: 9160 ld.w r3, (r1, 0x0) + a462: 3b40 cmpnei r3, 0 + a464: 0806 bt 0xa470 // a470 + a466: 9100 ld.w r0, (r1, 0x0) + a468: 3301 movi r3, 1 + a46a: 70d0 lsl r3, r4 + a46c: 6cc0 or r3, r0 + a46e: b160 st.w r3, (r1, 0x0) + a470: 3300 movi r3, 0 + a472: a260 st.b r3, (r2, 0x0) + a474: 0411 br 0xa496 // a496 + a476: 8920 ld.h r1, (r1, 0x0) + a478: 7445 zexth r1, r1 + a47a: 07c9 br 0xa40c // a40c + a47c: 4441 lsli r2, r4, 1 + a47e: 6098 addu r2, r6 + a480: 8a40 ld.h r2, (r2, 0x0) + a482: 748b sexth r2, r2 + a484: 648d cmplt r3, r2 + a486: 0c08 bf 0xa496 // a496 + a488: 3300 movi r3, 0 + a48a: 114e lrw r2, 0x200008bc // a540 + a48c: 2b01 subi r3, 2 + a48e: 9220 ld.w r1, (r2, 0x0) + a490: 70d3 rotl r3, r4 + a492: 68c4 and r3, r1 + a494: b260 st.w r3, (r2, 0x0) + a496: 4441 lsli r2, r4, 1 + a498: 5e68 addu r3, r6, r2 + a49a: 8b60 ld.h r3, (r3, 0x0) + a49c: 74cf sexth r3, r3 + a49e: b864 st.w r3, (r14, 0x10) + a4a0: 3105 movi r1, 5 + a4a2: 1163 lrw r3, 0x200001de // a52c + a4a4: 608c addu r2, r3 + a4a6: 8a00 ld.h r0, (r2, 0x0) + a4a8: 4002 lsli r0, r0, 2 + a4aa: e3ffe7fd bsr 0x74a4 // 74a4 <__divsi3> + a4ae: 9864 ld.w r3, (r14, 0x10) + a4b0: 640d cmplt r3, r0 + a4b2: 0c18 bf 0xa4e2 // a4e2 + a4b4: 1140 lrw r2, 0x200008aa // a534 + a4b6: 6090 addu r2, r4 + a4b8: 8260 ld.b r3, (r2, 0x0) + a4ba: 2300 addi r3, 1 + a4bc: 74cc zextb r3, r3 + a4be: a260 st.b r3, (r2, 0x0) + a4c0: 3100 movi r1, 0 + a4c2: 107c lrw r3, 0x200008c4 // a530 + a4c4: 60d0 addu r3, r4 + a4c6: a320 st.b r1, (r3, 0x0) + a4c8: 8260 ld.b r3, (r2, 0x0) + a4ca: 9822 ld.w r1, (r14, 0x8) + a4cc: 64c4 cmphs r1, r3 + a4ce: 080a bt 0xa4e2 // a4e2 + a4d0: 3300 movi r3, 0 + a4d2: 103c lrw r1, 0x200008bc // a540 + a4d4: 2b01 subi r3, 2 + a4d6: 9100 ld.w r0, (r1, 0x0) + a4d8: 70d3 rotl r3, r4 + a4da: 68c0 and r3, r0 + a4dc: b160 st.w r3, (r1, 0x0) + a4de: 3300 movi r3, 0 + a4e0: a260 st.b r3, (r2, 0x0) + a4e2: 2400 addi r4, 1 + a4e4: 3c51 cmpnei r4, 17 + a4e6: 0b81 bt 0xa3e8 // a3e8 + a4e8: 1405 addi r14, r14, 20 + a4ea: 1494 pop r4-r7, r15 + a4ec: 60d8 addu r3, r6 + a4ee: 4441 lsli r2, r4, 1 + a4f0: 102f lrw r1, 0x200001de // a52c + a4f2: 8b60 ld.h r3, (r3, 0x0) + a4f4: 6084 addu r2, r1 + a4f6: 74cf sexth r3, r3 + a4f8: 8a40 ld.h r2, (r2, 0x0) + a4fa: 64c9 cmplt r2, r3 + a4fc: 0fcd bf 0xa496 // a496 + a4fe: 079a br 0xa432 // a432 + a500: 3d41 cmpnei r5, 1 + a502: 0bb7 bt 0xa470 // a470 + a504: 102f lrw r1, 0x200008bc // a540 + a506: 6cd7 mov r3, r5 + a508: 9100 ld.w r0, (r1, 0x0) + a50a: 07b0 br 0xa46a // a46a + a50c: 200001b0 .long 0x200001b0 + a510: 20000184 .long 0x20000184 + a514: 200008d6 .long 0x200008d6 + a518: 2000018d .long 0x2000018d + a51c: 2000018c .long 0x2000018c + a520: 20000ad2 .long 0x20000ad2 + a524: 2000082c .long 0x2000082c + a528: 20000a8e .long 0x20000a8e + a52c: 200001de .long 0x200001de + a530: 200008c4 .long 0x200008c4 + a534: 200008aa .long 0x200008aa + a538: 20000986 .long 0x20000986 + a53c: 20000a00 .long 0x20000a00 + a540: 200008bc .long 0x200008bc + +Disassembly of section .text.TK_overflow_predict: + +0000a544 : + a544: 14d4 push r4-r7, r15 + a546: 1421 subi r14, r14, 4 + a548: 11d9 lrw r6, 0x20000068 // a62c + a54a: 8665 ld.b r3, (r6, 0x5) + a54c: 3b41 cmpnei r3, 1 + a54e: 085f bt 0xa60c // a60c + a550: 1158 lrw r2, 0x200009dc // a630 + a552: 8260 ld.b r3, (r2, 0x0) + a554: 2300 addi r3, 1 + a556: 74cc zextb r3, r3 + a558: a260 st.b r3, (r2, 0x0) + a55a: 8260 ld.b r3, (r2, 0x0) + a55c: 1136 lrw r1, 0x200001b1 // a634 + a55e: 8120 ld.b r1, (r1, 0x0) + a560: 64c4 cmphs r1, r3 + a562: 0855 bt 0xa60c // a60c + a564: 3300 movi r3, 0 + a566: a260 st.b r3, (r2, 0x0) + a568: 3500 movi r5, 0 + a56a: 11f4 lrw r7, 0x200001b4 // a638 + a56c: 2605 addi r6, 6 + a56e: 9760 ld.w r3, (r7, 0x0) + a570: 70d5 lsr r3, r5 + a572: 3201 movi r2, 1 + a574: 68c8 and r3, r2 + a576: 3b40 cmpnei r3, 0 + a578: 0c34 bf 0xa5e0 // a5e0 + a57a: 4581 lsli r4, r5, 1 + a57c: 5e70 addu r3, r6, r4 + a57e: 8b00 ld.h r0, (r3, 0x0) + a580: e3ffcec8 bsr 0x4310 // 4310 <__floatunsidf> + a584: 6cc7 mov r3, r1 + a586: 3180 movi r1, 128 + a588: 6c83 mov r2, r0 + a58a: 4137 lsli r1, r1, 23 + a58c: 3000 movi r0, 0 + a58e: e3ffc213 bsr 0x29b4 // 29b4 <__GI_pow> + a592: 116b lrw r3, 0x200001ba // a63c + a594: 60d0 addu r3, r4 + a596: 8b60 ld.h r3, (r3, 0x0) + a598: 4364 lsli r3, r3, 4 + a59a: 230e addi r3, 15 + a59c: b860 st.w r3, (r14, 0x0) + a59e: e3ffc7df bsr 0x355c // 355c <__fixunsdfsi> + a5a2: 9860 ld.w r3, (r14, 0x0) + a5a4: 7cc0 mult r3, r0 + a5a6: 1147 lrw r2, 0x20000a6c // a640 + a5a8: 740d zexth r0, r3 + a5aa: 6090 addu r2, r4 + a5ac: 1166 lrw r3, 0x20000ad2 // a644 + a5ae: 60d0 addu r3, r4 + a5b0: aa00 st.h r0, (r2, 0x0) + a5b2: 8b60 ld.h r3, (r3, 0x0) + a5b4: 8a00 ld.h r0, (r2, 0x0) + a5b6: 7401 zexth r0, r0 + a5b8: 325f movi r2, 95 + a5ba: 74cd zexth r3, r3 + a5bc: 7c08 mult r0, r2 + a5be: 3164 movi r1, 100 + a5c0: b860 st.w r3, (r14, 0x0) + a5c2: e3ffe771 bsr 0x74a4 // 74a4 <__divsi3> + a5c6: 9860 ld.w r3, (r14, 0x0) + a5c8: 64c1 cmplt r0, r3 + a5ca: 0c0b bf 0xa5e0 // a5e0 + a5cc: 107f lrw r3, 0x2000018e // a648 + a5ce: 610c addu r4, r3 + a5d0: 8c60 ld.h r3, (r4, 0x0) + a5d2: 3b06 cmphsi r3, 7 + a5d4: 0806 bt 0xa5e0 // a5e0 + a5d6: 2300 addi r3, 1 + a5d8: ac60 st.h r3, (r4, 0x0) + a5da: 3201 movi r2, 1 + a5dc: 107c lrw r3, 0x20000931 // a64c + a5de: a340 st.b r2, (r3, 0x0) + a5e0: 2500 addi r5, 1 + a5e2: 3d51 cmpnei r5, 17 + a5e4: 0bc5 bt 0xa56e // a56e + a5e6: 107a lrw r3, 0x20000931 // a64c + a5e8: 8340 ld.b r2, (r3, 0x0) + a5ea: 3a41 cmpnei r2, 1 + a5ec: 0810 bt 0xa60c // a60c + a5ee: 3200 movi r2, 0 + a5f0: a340 st.b r2, (r3, 0x0) + a5f2: 3200 movi r2, 0 + a5f4: 1077 lrw r3, 0x20000058 // a650 + a5f6: 1018 lrw r0, 0x200009ff // a654 + a5f8: 10b8 lrw r5, 0x20000a38 // a658 + a5fa: 10d4 lrw r6, 0x2000018e // a648 + a5fc: 9360 ld.w r3, (r3, 0x0) + a5fe: b342 st.w r2, (r3, 0x8) + a600: 1077 lrw r3, 0x20000054 // a65c + a602: 9380 ld.w r4, (r3, 0x0) + a604: 3300 movi r3, 0 + a606: 8040 ld.b r2, (r0, 0x0) + a608: 648c cmphs r3, r2 + a60a: 0c03 bf 0xa610 // a610 + a60c: 1401 addi r14, r14, 4 + a60e: 1494 pop r4-r7, r15 + a610: 5d4c addu r2, r5, r3 + a612: 8240 ld.b r2, (r2, 0x0) + a614: 4241 lsli r2, r2, 1 + a616: 4322 lsli r1, r3, 2 + a618: 6098 addu r2, r6 + a61a: 6050 addu r1, r4 + a61c: 8a40 ld.h r2, (r2, 0x0) + a61e: 91f2 ld.w r7, (r1, 0x48) + a620: 4254 lsli r2, r2, 20 + a622: 6c9c or r2, r7 + a624: 2300 addi r3, 1 + a626: b152 st.w r2, (r1, 0x48) + a628: 74cc zextb r3, r3 + a62a: 07ee br 0xa606 // a606 + a62c: 20000068 .long 0x20000068 + a630: 200009dc .long 0x200009dc + a634: 200001b1 .long 0x200001b1 + a638: 200001b4 .long 0x200001b4 + a63c: 200001ba .long 0x200001ba + a640: 20000a6c .long 0x20000a6c + a644: 20000ad2 .long 0x20000ad2 + a648: 2000018e .long 0x2000018e + a64c: 20000931 .long 0x20000931 + a650: 20000058 .long 0x20000058 + a654: 200009ff .long 0x200009ff + a658: 20000a38 .long 0x20000a38 + a65c: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +0000a660 : + a660: 14c4 push r4-r7 + a662: 1422 subi r14, r14, 8 + a664: 1348 lrw r2, 0x2000095e // a804 + a666: 8260 ld.b r3, (r2, 0x0) + a668: 2300 addi r3, 1 + a66a: 74cc zextb r3, r3 + a66c: a260 st.b r3, (r2, 0x0) + a66e: 8260 ld.b r3, (r2, 0x0) + a670: 1326 lrw r1, 0x200001b1 // a808 + a672: 8120 ld.b r1, (r1, 0x0) + a674: 644c cmphs r3, r1 + a676: 0cad bf 0xa7d0 // a7d0 + a678: 3300 movi r3, 0 + a67a: a260 st.b r3, (r2, 0x0) + a67c: 1364 lrw r3, 0x200008bc // a80c + a67e: 9360 ld.w r3, (r3, 0x0) + a680: 3b40 cmpnei r3, 0 + a682: 08a7 bt 0xa7d0 // a7d0 + a684: 1323 lrw r1, 0x200008d6 // a810 + a686: 6dc7 mov r7, r1 + a688: b820 st.w r1, (r14, 0x0) + a68a: 3200 movi r2, 0 + a68c: 1362 lrw r3, 0x200001de // a814 + a68e: 1323 lrw r1, 0x2000082c // a818 + a690: 4201 lsli r0, r2, 1 + a692: 9880 ld.w r4, (r14, 0x0) + a694: 6100 addu r4, r0 + a696: 8c80 ld.h r4, (r4, 0x0) + a698: 7513 sexth r4, r4 + a69a: 3cdf btsti r4, 31 + a69c: 0c27 bf 0xa6ea // a6ea + a69e: 13a0 lrw r5, 0x20000ad2 // a81c + a6a0: 5980 addu r4, r1, r0 + a6a2: 6014 addu r0, r5 + a6a4: b881 st.w r4, (r14, 0x4) + a6a6: 8c80 ld.h r4, (r4, 0x0) + a6a8: 88c0 ld.h r6, (r0, 0x0) + a6aa: 7511 zexth r4, r4 + a6ac: 7599 zexth r6, r6 + a6ae: 8ba0 ld.h r5, (r3, 0x0) + a6b0: 611a subu r4, r6 + a6b2: 6551 cmplt r4, r5 + a6b4: 081b bt 0xa6ea // a6ea + a6b6: 9881 ld.w r4, (r14, 0x4) + a6b8: 8c80 ld.h r4, (r4, 0x0) + a6ba: 8800 ld.h r0, (r0, 0x0) + a6bc: 7511 zexth r4, r4 + a6be: 7401 zexth r0, r0 + a6c0: 5c01 subu r0, r4, r0 + a6c2: 4581 lsli r4, r5, 1 + a6c4: 6150 addu r5, r4 + a6c6: 6541 cmplt r0, r5 + a6c8: 0c11 bf 0xa6ea // a6ea + a6ca: 1296 lrw r4, 0x20000a00 // a820 + a6cc: 6108 addu r4, r2 + a6ce: 8400 ld.b r0, (r4, 0x0) + a6d0: 2000 addi r0, 1 + a6d2: 7400 zextb r0, r0 + a6d4: a400 st.b r0, (r4, 0x0) + a6d6: 1214 lrw r0, 0x20000088 // a824 + a6d8: 84a0 ld.b r5, (r4, 0x0) + a6da: 8008 ld.b r0, (r0, 0x8) + a6dc: 6540 cmphs r0, r5 + a6de: 0806 bt 0xa6ea // a6ea + a6e0: 1212 lrw r0, 0x20000943 // a828 + a6e2: 3501 movi r5, 1 + a6e4: a0a0 st.b r5, (r0, 0x0) + a6e6: 3000 movi r0, 0 + a6e8: a400 st.b r0, (r4, 0x0) + a6ea: 4201 lsli r0, r2, 1 + a6ec: 5f80 addu r4, r7, r0 + a6ee: 8c80 ld.h r4, (r4, 0x0) + a6f0: 7513 sexth r4, r4 + a6f2: 3c20 cmplti r4, 1 + a6f4: 0870 bt 0xa7d4 // a7d4 + a6f6: 128a lrw r4, 0x20000ad2 // a81c + a6f8: 6100 addu r4, r0 + a6fa: 59a0 addu r5, r1, r0 + a6fc: 8c80 ld.h r4, (r4, 0x0) + a6fe: 8da0 ld.h r5, (r5, 0x0) + a700: 7555 zexth r5, r5 + a702: 7511 zexth r4, r4 + a704: 6116 subu r4, r5 + a706: 8ba0 ld.h r5, (r3, 0x0) + a708: 45a2 lsli r5, r5, 2 + a70a: 6551 cmplt r4, r5 + a70c: 0864 bt 0xa7d4 // a7d4 + a70e: 1288 lrw r4, 0x20000986 // a82c + a710: 6108 addu r4, r2 + a712: 84a0 ld.b r5, (r4, 0x0) + a714: 2500 addi r5, 1 + a716: 7554 zextb r5, r5 + a718: a4a0 st.b r5, (r4, 0x0) + a71a: 12a3 lrw r5, 0x20000088 // a824 + a71c: 84c0 ld.b r6, (r4, 0x0) + a71e: 85a9 ld.b r5, (r5, 0x9) + a720: 6594 cmphs r5, r6 + a722: 0806 bt 0xa72e // a72e + a724: 12a1 lrw r5, 0x20000943 // a828 + a726: 3601 movi r6, 1 + a728: a5c0 st.b r6, (r5, 0x0) + a72a: 3500 movi r5, 0 + a72c: a4a0 st.b r5, (r4, 0x0) + a72e: 5f80 addu r4, r7, r0 + a730: 8c80 ld.h r4, (r4, 0x0) + a732: 7513 sexth r4, r4 + a734: 3cdf btsti r4, 31 + a736: 0c10 bf 0xa756 // a756 + a738: 11d9 lrw r6, 0x20000ad2 // a81c + a73a: 59a0 addu r5, r1, r0 + a73c: 6180 addu r6, r0 + a73e: 8d80 ld.h r4, (r5, 0x0) + a740: 8ec0 ld.h r6, (r6, 0x0) + a742: 7599 zexth r6, r6 + a744: 7511 zexth r4, r4 + a746: 611a subu r4, r6 + a748: 8bc0 ld.h r6, (r3, 0x0) + a74a: 6591 cmplt r4, r6 + a74c: 0c05 bf 0xa756 // a756 + a74e: 8d80 ld.h r4, (r5, 0x0) + a750: 2c00 subi r4, 1 + a752: 7511 zexth r4, r4 + a754: ad80 st.h r4, (r5, 0x0) + a756: 5f80 addu r4, r7, r0 + a758: 8c80 ld.h r4, (r4, 0x0) + a75a: 7513 sexth r4, r4 + a75c: 3cdf btsti r4, 31 + a75e: 0c11 bf 0xa780 // a780 + a760: 11cf lrw r6, 0x20000ad2 // a81c + a762: 59a0 addu r5, r1, r0 + a764: 6180 addu r6, r0 + a766: 8d80 ld.h r4, (r5, 0x0) + a768: 8ec0 ld.h r6, (r6, 0x0) + a76a: 7599 zexth r6, r6 + a76c: 7511 zexth r4, r4 + a76e: 611a subu r4, r6 + a770: 8bc0 ld.h r6, (r3, 0x0) + a772: 4ec1 lsri r6, r6, 1 + a774: 6591 cmplt r4, r6 + a776: 0805 bt 0xa780 // a780 + a778: 8d80 ld.h r4, (r5, 0x0) + a77a: 2c01 subi r4, 2 + a77c: 7511 zexth r4, r4 + a77e: ad80 st.h r4, (r5, 0x0) + a780: 5fa0 addu r5, r7, r0 + a782: 8d80 ld.h r4, (r5, 0x0) + a784: 7513 sexth r4, r4 + a786: 3c20 cmplti r4, 1 + a788: 080c bt 0xa7a0 // a7a0 + a78a: 8da0 ld.h r5, (r5, 0x0) + a78c: 8b80 ld.h r4, (r3, 0x0) + a78e: 7557 sexth r5, r5 + a790: 4c81 lsri r4, r4, 1 + a792: 6515 cmplt r5, r4 + a794: 0c06 bf 0xa7a0 // a7a0 + a796: 59a0 addu r5, r1, r0 + a798: 8d80 ld.h r4, (r5, 0x0) + a79a: 2400 addi r4, 1 + a79c: 7511 zexth r4, r4 + a79e: ad80 st.h r4, (r5, 0x0) + a7a0: 5fa0 addu r5, r7, r0 + a7a2: 8d80 ld.h r4, (r5, 0x0) + a7a4: 7513 sexth r4, r4 + a7a6: 3c20 cmplti r4, 1 + a7a8: 0810 bt 0xa7c8 // a7c8 + a7aa: 8dc0 ld.h r6, (r5, 0x0) + a7ac: 759b sexth r6, r6 + a7ae: 8b80 ld.h r4, (r3, 0x0) + a7b0: 6519 cmplt r6, r4 + a7b2: 0c0b bf 0xa7c8 // a7c8 + a7b4: 8da0 ld.h r5, (r5, 0x0) + a7b6: 7557 sexth r5, r5 + a7b8: 4c81 lsri r4, r4, 1 + a7ba: 6515 cmplt r5, r4 + a7bc: 0806 bt 0xa7c8 // a7c8 + a7be: 6004 addu r0, r1 + a7c0: 8880 ld.h r4, (r0, 0x0) + a7c2: 2401 addi r4, 2 + a7c4: 7511 zexth r4, r4 + a7c6: a880 st.h r4, (r0, 0x0) + a7c8: 2200 addi r2, 1 + a7ca: 3a51 cmpnei r2, 17 + a7cc: 2301 addi r3, 2 + a7ce: 0b61 bt 0xa690 // a690 + a7d0: 1402 addi r14, r14, 8 + a7d2: 1484 pop r4-r7 + a7d4: 5f80 addu r4, r7, r0 + a7d6: 8c80 ld.h r4, (r4, 0x0) + a7d8: 7513 sexth r4, r4 + a7da: 3cdf btsti r4, 31 + a7dc: 0fa9 bf 0xa72e // a72e + a7de: 10b0 lrw r5, 0x20000ad2 // a81c + a7e0: 5980 addu r4, r1, r0 + a7e2: 6140 addu r5, r0 + a7e4: 8c80 ld.h r4, (r4, 0x0) + a7e6: 8da0 ld.h r5, (r5, 0x0) + a7e8: 7555 zexth r5, r5 + a7ea: 8bc0 ld.h r6, (r3, 0x0) + a7ec: 7511 zexth r4, r4 + a7ee: 6116 subu r4, r5 + a7f0: 46a1 lsli r5, r6, 1 + a7f2: 6158 addu r5, r6 + a7f4: 6551 cmplt r4, r5 + a7f6: 0b9c bt 0xa72e // a72e + a7f8: 108c lrw r4, 0x20000943 // a828 + a7fa: 3501 movi r5, 1 + a7fc: a4a0 st.b r5, (r4, 0x0) + a7fe: 6c03 mov r0, r0 + a800: 0797 br 0xa72e // a72e + a802: 0000 bkpt + a804: 2000095e .long 0x2000095e + a808: 200001b1 .long 0x200001b1 + a80c: 200008bc .long 0x200008bc + a810: 200008d6 .long 0x200008d6 + a814: 200001de .long 0x200001de + a818: 2000082c .long 0x2000082c + a81c: 20000ad2 .long 0x20000ad2 + a820: 20000a00 .long 0x20000a00 + a824: 20000088 .long 0x20000088 + a828: 20000943 .long 0x20000943 + a82c: 20000986 .long 0x20000986 + +Disassembly of section .text.TK_result_prog: + +0000a830 : + a830: 14d2 push r4-r5, r15 + a832: 1050 lrw r2, 0x200008bc // a870 + a834: 1090 lrw r4, 0x20000960 // a874 + a836: 9260 ld.w r3, (r2, 0x0) + a838: 3b40 cmpnei r3, 0 + a83a: 0c02 bf 0xa83e // a83e + a83c: 9260 ld.w r3, (r2, 0x0) + a83e: b460 st.w r3, (r4, 0x0) + a840: 9460 ld.w r3, (r4, 0x0) + a842: 3b40 cmpnei r3, 0 + a844: 10ad lrw r5, 0x20000a34 // a878 + a846: 0c11 bf 0xa868 // a868 + a848: 9440 ld.w r2, (r4, 0x0) + a84a: 9560 ld.w r3, (r5, 0x0) + a84c: 64ca cmpne r2, r3 + a84e: 0c03 bf 0xa854 // a854 + a850: 9460 ld.w r3, (r4, 0x0) + a852: b560 st.w r3, (r5, 0x0) + a854: e3fffd94 bsr 0xa37c // a37c + a858: 1069 lrw r3, 0x200001b8 // a87c + a85a: 8360 ld.b r3, (r3, 0x0) + a85c: 640c cmphs r3, r0 + a85e: 0804 bt 0xa866 // a866 + a860: 3300 movi r3, 0 + a862: b460 st.w r3, (r4, 0x0) + a864: b560 st.w r3, (r5, 0x0) + a866: 1492 pop r4-r5, r15 + a868: 1046 lrw r2, 0x20000958 // a880 + a86a: b560 st.w r3, (r5, 0x0) + a86c: b260 st.w r3, (r2, 0x0) + a86e: 07fc br 0xa866 // a866 + a870: 200008bc .long 0x200008bc + a874: 20000960 .long 0x20000960 + a878: 20000a34 .long 0x20000a34 + a87c: 200001b8 .long 0x200001b8 + a880: 20000958 .long 0x20000958 + +Disassembly of section .text.CORETHandler: + +0000a884 : + a884: 1460 nie + a886: 1462 ipush + a888: 14d1 push r4, r15 + a88a: 1077 lrw r3, 0x20000064 // a8e4 + a88c: 3400 movi r4, 0 + a88e: 9360 ld.w r3, (r3, 0x0) + a890: b386 st.w r4, (r3, 0x18) + a892: 1076 lrw r3, 0x200008c0 // a8e8 + a894: 8360 ld.b r3, (r3, 0x0) + a896: 3b41 cmpnei r3, 1 + a898: 0820 bt 0xa8d8 // a8d8 + a89a: e3fffd85 bsr 0xa3a4 // a3a4 + a89e: e3fffd93 bsr 0xa3c4 // a3c4 + a8a2: e3fffe51 bsr 0xa544 // a544 + a8a6: e3fffedd bsr 0xa660 // a660 + a8aa: e3ffffc3 bsr 0xa830 // a830 + a8ae: 1070 lrw r3, 0x20000960 // a8ec + a8b0: 9360 ld.w r3, (r3, 0x0) + a8b2: 3b40 cmpnei r3, 0 + a8b4: 0c12 bf 0xa8d8 // a8d8 + a8b6: 106f lrw r3, 0x20000188 // a8f0 + a8b8: 9340 ld.w r2, (r3, 0x0) + a8ba: 3a40 cmpnei r2, 0 + a8bc: 0c0e bf 0xa8d8 // a8d8 + a8be: 106e lrw r3, 0x20000958 // a8f4 + a8c0: 3064 movi r0, 100 + a8c2: 9320 ld.w r1, (r3, 0x0) + a8c4: 2100 addi r1, 1 + a8c6: b320 st.w r1, (r3, 0x0) + a8c8: 9320 ld.w r1, (r3, 0x0) + a8ca: 7c80 mult r2, r0 + a8cc: 6448 cmphs r2, r1 + a8ce: 0805 bt 0xa8d8 // a8d8 + a8d0: 104a lrw r2, 0x20000943 // a8f8 + a8d2: 3101 movi r1, 1 + a8d4: a220 st.b r1, (r2, 0x0) + a8d6: b380 st.w r4, (r3, 0x0) + a8d8: d9ee2001 ld.w r15, (r14, 0x4) + a8dc: 9880 ld.w r4, (r14, 0x0) + a8de: 1402 addi r14, r14, 8 + a8e0: 1463 ipop + a8e2: 1461 nir + a8e4: 20000064 .long 0x20000064 + a8e8: 200008c0 .long 0x200008c0 + a8ec: 20000960 .long 0x20000960 + a8f0: 20000188 .long 0x20000188 + a8f4: 20000958 .long 0x20000958 + a8f8: 20000943 .long 0x20000943 + +Disassembly of section .text.std_clk_calib: + +0000a8fc : + a8fc: 14d4 push r4-r7, r15 + a8fe: 142d subi r14, r14, 52 + a900: 3201 movi r2, 1 + a902: 03ce lrw r6, 0x2000005c // ab44 + a904: 6cc3 mov r3, r0 + a906: dc4e000a st.b r2, (r14, 0xa) + a90a: 9640 ld.w r2, (r6, 0x0) + a90c: 9247 ld.w r2, (r2, 0x1c) + a90e: 7488 zextb r2, r2 + a910: dc4e0009 st.b r2, (r14, 0x9) + a914: d84e0009 ld.b r2, (r14, 0x9) + a918: 3a40 cmpnei r2, 0 + a91a: 0c08 bf 0xa92a // a92a + a91c: d84e0009 ld.b r2, (r14, 0x9) + a920: 3a42 cmpnei r2, 2 + a922: 0c04 bf 0xa92a // a92a + a924: 3000 movi r0, 0 + a926: 140d addi r14, r14, 52 + a928: 1494 pop r4-r7, r15 + a92a: 0397 lrw r4, 0x2000000c // ab48 + a92c: 3209 movi r2, 9 + a92e: 9400 ld.w r0, (r4, 0x0) + a930: 3b40 cmpnei r3, 0 + a932: b041 st.w r2, (r0, 0x4) + a934: 0857 bt 0xa9e2 // a9e2 + a936: 3307 movi r3, 7 + a938: dc6e000b st.b r3, (r14, 0xb) + a93c: 037b lrw r3, 0x2dc6c00 // ab4c + a93e: b863 st.w r3, (r14, 0xc) + a940: 3380 movi r3, 128 + a942: 4362 lsli r3, r3, 2 + a944: b867 st.w r3, (r14, 0x1c) + a946: d86e000b ld.b r3, (r14, 0xb) + a94a: 74cc zextb r3, r3 + a94c: b062 st.w r3, (r0, 0x8) + a94e: 037e lrw r3, 0xffff // ab50 + a950: b063 st.w r3, (r0, 0xc) + a952: 3201 movi r2, 1 + a954: 3101 movi r1, 1 + a956: 03bf lrw r5, 0x20000014 // ab54 + a958: e3ffde82 bsr 0x665c // 665c + a95c: 95e0 ld.w r7, (r5, 0x0) + a95e: 137f lrw r3, 0xbe9c0005 // ab58 + a960: b760 st.w r3, (r7, 0x0) + a962: 135f lrw r2, 0x30010 // ab5c + a964: 3300 movi r3, 0 + a966: b762 st.w r3, (r7, 0x8) + a968: b743 st.w r2, (r7, 0xc) + a96a: 32d8 movi r2, 216 + a96c: b745 st.w r2, (r7, 0x14) + a96e: 974f ld.w r2, (r7, 0x3c) + a970: 3aa2 bseti r2, 2 + a972: b74f st.w r2, (r7, 0x3c) + a974: 9803 ld.w r0, (r14, 0xc) + a976: d82e000b ld.b r1, (r14, 0xb) + a97a: 327d movi r2, 125 + a97c: 2100 addi r1, 1 + a97e: 7c48 mult r1, r2 + a980: b861 st.w r3, (r14, 0x4) + a982: e3ffe5a3 bsr 0x74c8 // 74c8 <__udivsi3> + a986: b804 st.w r0, (r14, 0x10) + a988: 32fa movi r2, 250 + a98a: 9824 ld.w r1, (r14, 0x10) + a98c: 4242 lsli r2, r2, 2 + a98e: 6448 cmphs r2, r1 + a990: 0bca bt 0xa924 // a924 + a992: 9844 ld.w r2, (r14, 0x10) + a994: 3178 movi r1, 120 + a996: 9804 ld.w r0, (r14, 0x10) + a998: b840 st.w r2, (r14, 0x0) + a99a: e3ffe597 bsr 0x74c8 // 74c8 <__udivsi3> + a99e: 9840 ld.w r2, (r14, 0x0) + a9a0: 6082 subu r2, r0 + a9a2: b845 st.w r2, (r14, 0x14) + a9a4: 9804 ld.w r0, (r14, 0x10) + a9a6: 3178 movi r1, 120 + a9a8: 9844 ld.w r2, (r14, 0x10) + a9aa: b840 st.w r2, (r14, 0x0) + a9ac: e3ffe58e bsr 0x74c8 // 74c8 <__udivsi3> + a9b0: 9840 ld.w r2, (r14, 0x0) + a9b2: 6008 addu r0, r2 + a9b4: b806 st.w r0, (r14, 0x18) + a9b6: c0807020 psrclr ie + a9ba: 9640 ld.w r2, (r6, 0x0) + a9bc: 9254 ld.w r2, (r2, 0x50) + a9be: b848 st.w r2, (r14, 0x20) + a9c0: 9861 ld.w r3, (r14, 0x4) + a9c2: 9440 ld.w r2, (r4, 0x0) + a9c4: b260 st.w r3, (r2, 0x0) + a9c6: b761 st.w r3, (r7, 0x4) + a9c8: d86e000a ld.b r3, (r14, 0xa) + a9cc: 3b40 cmpnei r3, 0 + a9ce: 083e bt 0xaa4a // aa4a + a9d0: e3ffddf8 bsr 0x65c0 // 65c0 + a9d4: 9400 ld.w r0, (r4, 0x0) + a9d6: e3ffde19 bsr 0x6608 // 6608 + a9da: c1807420 psrset ee, ie + a9de: 3001 movi r0, 1 + a9e0: 07a3 br 0xa926 // a926 + a9e2: 3b41 cmpnei r3, 1 + a9e4: 0806 bt 0xa9f0 // a9f0 + a9e6: 3303 movi r3, 3 + a9e8: dc6e000b st.b r3, (r14, 0xb) + a9ec: 127d lrw r3, 0x16e3600 // ab60 + a9ee: 07a8 br 0xa93e // a93e + a9f0: 3b42 cmpnei r3, 2 + a9f2: 0806 bt 0xa9fe // a9fe + a9f4: 3301 movi r3, 1 + a9f6: dc6e000b st.b r3, (r14, 0xb) + a9fa: 127b lrw r3, 0xb71b00 // ab64 + a9fc: 07a1 br 0xa93e // a93e + a9fe: 3b43 cmpnei r3, 3 + aa00: 0806 bt 0xaa0c // aa0c + aa02: 3300 movi r3, 0 + aa04: dc6e000b st.b r3, (r14, 0xb) + aa08: 1278 lrw r3, 0x5b8d80 // ab68 + aa0a: 079a br 0xa93e // a93e + aa0c: 3b44 cmpnei r3, 4 + aa0e: 0809 bt 0xaa20 // aa20 + aa10: 3300 movi r3, 0 + aa12: dc6e000b st.b r3, (r14, 0xb) + aa16: 1276 lrw r3, 0x54c720 // ab6c + aa18: b863 st.w r3, (r14, 0xc) + aa1a: 3380 movi r3, 128 + aa1c: 4369 lsli r3, r3, 9 + aa1e: 0793 br 0xa944 // a944 + aa20: 3b45 cmpnei r3, 5 + aa22: 0806 bt 0xaa2e // aa2e + aa24: 3300 movi r3, 0 + aa26: dc6e000b st.b r3, (r14, 0xb) + aa2a: 1272 lrw r3, 0x3ffed0 // ab70 + aa2c: 07f6 br 0xaa18 // aa18 + aa2e: 3b46 cmpnei r3, 6 + aa30: 0806 bt 0xaa3c // aa3c + aa32: 3300 movi r3, 0 + aa34: dc6e000b st.b r3, (r14, 0xb) + aa38: 126f lrw r3, 0x1fff68 // ab74 + aa3a: 07ef br 0xaa18 // aa18 + aa3c: 3b47 cmpnei r3, 7 + aa3e: 0b84 bt 0xa946 // a946 + aa40: 3300 movi r3, 0 + aa42: dc6e000b st.b r3, (r14, 0xb) + aa46: 126d lrw r3, 0x1ffb8 // ab78 + aa48: 07e8 br 0xaa18 // aa18 + aa4a: 9560 ld.w r3, (r5, 0x0) + aa4c: 3101 movi r1, 1 + aa4e: 9440 ld.w r2, (r4, 0x0) + aa50: b321 st.w r1, (r3, 0x4) + aa52: b220 st.w r1, (r2, 0x0) + aa54: 3100 movi r1, 0 + aa56: b327 st.w r1, (r3, 0x1c) + aa58: 3004 movi r0, 4 + aa5a: b225 st.w r1, (r2, 0x14) + aa5c: 932e ld.w r1, (r3, 0x38) + aa5e: 6840 and r1, r0 + aa60: 3940 cmpnei r1, 0 + aa62: 0ffd bf 0xaa5c // aa5c + aa64: 9225 ld.w r1, (r2, 0x14) + aa66: b82a st.w r1, (r14, 0x28) + aa68: 3100 movi r1, 0 + aa6a: b310 st.w r0, (r3, 0x40) + aa6c: b327 st.w r1, (r3, 0x1c) + aa6e: 3004 movi r0, 4 + aa70: b225 st.w r1, (r2, 0x14) + aa72: 932e ld.w r1, (r3, 0x38) + aa74: 6840 and r1, r0 + aa76: 3940 cmpnei r1, 0 + aa78: 0ffd bf 0xaa72 // aa72 + aa7a: 9225 ld.w r1, (r2, 0x14) + aa7c: b82b st.w r1, (r14, 0x2c) + aa7e: 3100 movi r1, 0 + aa80: b310 st.w r0, (r3, 0x40) + aa82: b327 st.w r1, (r3, 0x1c) + aa84: 3004 movi r0, 4 + aa86: b225 st.w r1, (r2, 0x14) + aa88: 932e ld.w r1, (r3, 0x38) + aa8a: 6840 and r1, r0 + aa8c: 3940 cmpnei r1, 0 + aa8e: 0ffd bf 0xaa88 // aa88 + aa90: 9225 ld.w r1, (r2, 0x14) + aa92: b82c st.w r1, (r14, 0x30) + aa94: b310 st.w r0, (r3, 0x40) + aa96: 982b ld.w r1, (r14, 0x2c) + aa98: 980c ld.w r0, (r14, 0x30) + aa9a: 6040 addu r1, r0 + aa9c: b829 st.w r1, (r14, 0x24) + aa9e: 9829 ld.w r1, (r14, 0x24) + aaa0: 4921 lsri r1, r1, 1 + aaa2: b829 st.w r1, (r14, 0x24) + aaa4: 3100 movi r1, 0 + aaa6: b321 st.w r1, (r3, 0x4) + aaa8: b220 st.w r1, (r2, 0x0) + aaaa: b327 st.w r1, (r3, 0x1c) + aaac: b225 st.w r1, (r2, 0x14) + aaae: d86e0009 ld.b r3, (r14, 0x9) + aab2: 3b42 cmpnei r3, 2 + aab4: 9849 ld.w r2, (r14, 0x24) + aab6: 082c bt 0xab0e // ab0e + aab8: 1171 lrw r3, 0x7ff // ab7c + aaba: 648c cmphs r3, r2 + aabc: 0c03 bf 0xaac2 // aac2 + aabe: 3300 movi r3, 0 + aac0: 040f br 0xaade // aade + aac2: 9849 ld.w r2, (r14, 0x24) + aac4: 9866 ld.w r3, (r14, 0x18) + aac6: 648c cmphs r3, r2 + aac8: 080e bt 0xaae4 // aae4 + aaca: 9868 ld.w r3, (r14, 0x20) + aacc: 9847 ld.w r2, (r14, 0x1c) + aace: 60ca subu r3, r2 + aad0: b868 st.w r3, (r14, 0x20) + aad2: 32fe movi r2, 254 + aad4: 9868 ld.w r3, (r14, 0x20) + aad6: 4248 lsli r2, r2, 8 + aad8: 68c8 and r3, r2 + aada: 3b40 cmpnei r3, 0 + aadc: 0812 bt 0xab00 // ab00 + aade: dc6e000a st.b r3, (r14, 0xa) + aae2: 0721 br 0xa924 // a924 + aae4: 9849 ld.w r2, (r14, 0x24) + aae6: 9865 ld.w r3, (r14, 0x14) + aae8: 64c8 cmphs r2, r3 + aaea: 0829 bt 0xab3c // ab3c + aaec: 9868 ld.w r3, (r14, 0x20) + aaee: 9847 ld.w r2, (r14, 0x1c) + aaf0: 60c8 addu r3, r2 + aaf2: b868 st.w r3, (r14, 0x20) + aaf4: 33fe movi r3, 254 + aaf6: 9848 ld.w r2, (r14, 0x20) + aaf8: 4368 lsli r3, r3, 8 + aafa: 688c and r2, r3 + aafc: 64ca cmpne r2, r3 + aafe: 0fe0 bf 0xaabe // aabe + ab00: 9660 ld.w r3, (r6, 0x0) + ab02: 9848 ld.w r2, (r14, 0x20) + ab04: b354 st.w r2, (r3, 0x50) + ab06: 3001 movi r0, 1 + ab08: e3ffdf34 bsr 0x6970 // 6970 + ab0c: 075e br 0xa9c8 // a9c8 + ab0e: 9866 ld.w r3, (r14, 0x18) + ab10: 648c cmphs r3, r2 + ab12: 0809 bt 0xab24 // ab24 + ab14: 9868 ld.w r3, (r14, 0x20) + ab16: 9847 ld.w r2, (r14, 0x1c) + ab18: 60ca subu r3, r2 + ab1a: b868 st.w r3, (r14, 0x20) + ab1c: 32ff movi r2, 255 + ab1e: 9868 ld.w r3, (r14, 0x20) + ab20: 4250 lsli r2, r2, 16 + ab22: 07db br 0xaad8 // aad8 + ab24: 9849 ld.w r2, (r14, 0x24) + ab26: 9865 ld.w r3, (r14, 0x14) + ab28: 64c8 cmphs r2, r3 + ab2a: 0809 bt 0xab3c // ab3c + ab2c: 9868 ld.w r3, (r14, 0x20) + ab2e: 9847 ld.w r2, (r14, 0x1c) + ab30: 60c8 addu r3, r2 + ab32: b868 st.w r3, (r14, 0x20) + ab34: 33ff movi r3, 255 + ab36: 9848 ld.w r2, (r14, 0x20) + ab38: 4370 lsli r3, r3, 16 + ab3a: 07e0 br 0xaafa // aafa + ab3c: 3300 movi r3, 0 + ab3e: dc6e000a st.b r3, (r14, 0xa) + ab42: 07e2 br 0xab06 // ab06 + ab44: 2000005c .long 0x2000005c + ab48: 2000000c .long 0x2000000c + ab4c: 02dc6c00 .long 0x02dc6c00 + ab50: 0000ffff .long 0x0000ffff + ab54: 20000014 .long 0x20000014 + ab58: be9c0005 .long 0xbe9c0005 + ab5c: 00030010 .long 0x00030010 + ab60: 016e3600 .long 0x016e3600 + ab64: 00b71b00 .long 0x00b71b00 + ab68: 005b8d80 .long 0x005b8d80 + ab6c: 0054c720 .long 0x0054c720 + ab70: 003ffed0 .long 0x003ffed0 + ab74: 001fff68 .long 0x001fff68 + ab78: 0001ffb8 .long 0x0001ffb8 + ab7c: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251104.map b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251104.map new file mode 100644 index 0000000..a082b3e --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251104.map @@ -0,0 +1,3048 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x290c + Start of program headers: 52 (bytes into file) + Start of section headers: 379128 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 205 + Section header string table index: 202 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00002800 000800 003676 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00005e78 003e78 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00005eb0 003eb0 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00005f24 003f24 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00005f70 003f70 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00005fa0 003fa0 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00006028 004028 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00006050 004050 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 0000608c 00408c 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 000060a0 0040a0 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 000060b8 0040b8 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 000060d8 0040d8 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 000060f4 0040f4 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00006110 004110 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00006150 004150 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00006184 004184 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00006188 004188 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00006198 004198 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 000061a4 0041a4 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Soft PROGBITS 000061b0 0041b0 000014 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 000061c4 0041c4 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000061e8 0041e8 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 00006218 004218 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 0000627c 00427c 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 0000635c 00435c 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00006370 004370 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00006380 004380 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 0000648c 00448c 0000fc 00 AX 0 0 4 + [29] .text.GPIO_Write_ PROGBITS 00006588 004588 000008 00 AX 0 0 2 + [30] .text.GPIO_Write_ PROGBITS 00006590 004590 000008 00 AX 0 0 2 + [31] .text.GPIO_Revers PROGBITS 00006598 004598 000016 00 AX 0 0 2 + [32] .text.GPIO_Read_S PROGBITS 000065ae 0045ae 000010 00 AX 0 0 2 + [33] .text.LPT_Soft_Re PROGBITS 000065c0 0045c0 000014 00 AX 0 0 4 + [34] .text.WWDT_CNT_Lo PROGBITS 000065d4 0045d4 000010 00 AX 0 0 4 + [35] .text.BT_DeInit PROGBITS 000065e4 0045e4 00001c 00 AX 0 0 2 + [36] .text.BT_Start PROGBITS 00006600 004600 000008 00 AX 0 0 2 + [37] .text.BT_Soft_Res PROGBITS 00006608 004608 00000a 00 AX 0 0 2 + [38] .text.BT_Configur PROGBITS 00006612 004612 000018 00 AX 0 0 2 + [39] .text.BT_ControlS PROGBITS 0000662a 00462a 00002c 00 AX 0 0 2 + [40] .text.BT_Period_C PROGBITS 00006656 004656 000006 00 AX 0 0 2 + [41] .text.BT_ConfigIn PROGBITS 0000665c 00465c 000012 00 AX 0 0 2 + [42] .text.BT1_INT_ENA PROGBITS 00006670 004670 000010 00 AX 0 0 4 + [43] .text.UART0_DeIni PROGBITS 00006680 004680 000018 00 AX 0 0 4 + [44] .text.UART1_DeIni PROGBITS 00006698 004698 000018 00 AX 0 0 4 + [45] .text.UART2_DeIni PROGBITS 000066b0 0046b0 000018 00 AX 0 0 4 + [46] .text.UART0_Int_E PROGBITS 000066c8 0046c8 00001c 00 AX 0 0 4 + [47] .text.UART1_Int_E PROGBITS 000066e4 0046e4 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 00006700 004700 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 0000671c 00471c 0000ec 00 AX 0 0 4 + [50] .text.UARTInitRxT PROGBITS 00006808 004808 000010 00 AX 0 0 4 + [51] .text.UARTTransmi PROGBITS 00006818 004818 00001e 00 AX 0 0 2 + [52] .text.EPT_Stop PROGBITS 00006838 004838 000028 00 AX 0 0 4 + [53] .text.Page_Progra PROGBITS 00006860 004860 0000a0 00 AX 0 0 4 + [54] .text.ReadDataArr PROGBITS 00006900 004900 00002a 00 AX 0 0 2 + [55] .text.startup.mai PROGBITS 0000692c 00492c 000044 00 AX 0 0 4 + [56] .text.delay_nms PROGBITS 00006970 004970 00002c 00 AX 0 0 2 + [57] .text.delay_nus PROGBITS 0000699c 00499c 000022 00 AX 0 0 2 + [58] .text.BT_CONFIG PROGBITS 000069c0 0049c0 000060 00 AX 0 0 4 + [59] .text.SYSCON_CONF PROGBITS 00006a20 004a20 000062 00 AX 0 0 2 + [60] .text.APT32F102_i PROGBITS 00006a84 004a84 000078 00 AX 0 0 4 + [61] .text.SYSCONIntHa PROGBITS 00006afc 004afc 0000f0 00 AX 0 0 4 + [62] .text.IFCIntHandl PROGBITS 00006bec 004bec 000068 00 AX 0 0 4 + [63] .text.ADCIntHandl PROGBITS 00006c54 004c54 000068 00 AX 0 0 4 + [64] .text.EPT0IntHand PROGBITS 00006cbc 004cbc 0001ac 00 AX 0 0 4 + [65] .text.WWDTHandler PROGBITS 00006e68 004e68 000034 00 AX 0 0 4 + [66] .text.GPT0IntHand PROGBITS 00006e9c 004e9c 000080 00 AX 0 0 4 + [67] .text.RTCIntHandl PROGBITS 00006f1c 004f1c 000070 00 AX 0 0 4 + [68] .text.UART0IntHan PROGBITS 00006f8c 004f8c 000060 00 AX 0 0 4 + [69] .text.UART1IntHan PROGBITS 00006fec 004fec 000094 00 AX 0 0 4 + [70] .text.UART2IntHan PROGBITS 00007080 005080 000060 00 AX 0 0 4 + [71] .text.SPI0IntHand PROGBITS 000070e0 0050e0 0000e8 00 AX 0 0 4 + [72] .text.SIO0IntHand PROGBITS 000071c8 0051c8 000054 00 AX 0 0 4 + [73] .text.EXI0IntHand PROGBITS 0000721c 00521c 000030 00 AX 0 0 4 + [74] .text.EXI1IntHand PROGBITS 0000724c 00524c 000030 00 AX 0 0 4 + [75] .text.EXI2to3IntH PROGBITS 0000727c 00527c 000048 00 AX 0 0 4 + [76] .text.EXI4to9IntH PROGBITS 000072c4 0052c4 000020 00 AX 0 0 4 + [77] .text.EXI10to15In PROGBITS 000072e4 0052e4 00006c 00 AX 0 0 4 + [78] .text.LPTIntHandl PROGBITS 00007350 005350 000034 00 AX 0 0 4 + [79] .text.BT0IntHandl PROGBITS 00007384 005384 00004c 00 AX 0 0 4 + [80] .text.BT1IntHandl PROGBITS 000073d0 0053d0 000070 00 AX 0 0 4 + [81] .text.PriviledgeV PROGBITS 00007440 005440 000002 00 AX 0 0 2 + [82] .text.PendTrapHan PROGBITS 00007442 005442 000008 00 AX 0 0 2 + [83] .text.Trap3Handle PROGBITS 0000744a 00544a 000008 00 AX 0 0 2 + [84] .text.Trap2Handle PROGBITS 00007452 005452 000008 00 AX 0 0 2 + [85] .text.Trap1Handle PROGBITS 0000745a 00545a 000008 00 AX 0 0 2 + [86] .text.Trap0Handle PROGBITS 00007462 005462 000008 00 AX 0 0 2 + [87] .text.UnrecExecpH PROGBITS 0000746a 00546a 000008 00 AX 0 0 2 + [88] .text.BreakPointH PROGBITS 00007472 005472 000008 00 AX 0 0 2 + [89] .text.AccessErrHa PROGBITS 0000747a 00547a 000008 00 AX 0 0 2 + [90] .text.IllegalInst PROGBITS 00007482 005482 000008 00 AX 0 0 2 + [91] .text.MisalignedH PROGBITS 0000748a 00548a 000008 00 AX 0 0 2 + [92] .text.CNTAIntHand PROGBITS 00007492 005492 000008 00 AX 0 0 2 + [93] .text.I2CIntHandl PROGBITS 0000749a 00549a 000008 00 AX 0 0 2 + [94] .text.__divsi3 PROGBITS 000074a4 0054a4 000024 00 AX 0 0 4 + [95] .text.__udivsi3 PROGBITS 000074c8 0054c8 000024 00 AX 0 0 4 + [96] .text.__modsi3 PROGBITS 000074ec 0054ec 000024 00 AX 0 0 4 + [97] .text.__umodsi3 PROGBITS 00007510 005510 000024 00 AX 0 0 4 + [98] .text.CK_CPU_EnAl PROGBITS 00007534 005534 000006 00 AX 0 0 2 + [99] .text.CK_CPU_DisA PROGBITS 0000753a 00553a 000006 00 AX 0 0 2 + [100] .text.UARTx_Init PROGBITS 00007540 005540 000188 00 AX 0 0 4 + [101] .text.UART0_RecvI PROGBITS 000076c8 0056c8 000034 00 AX 0 0 4 + [102] .text.UART0_TASK PROGBITS 000076fc 0056fc 000060 00 AX 0 0 4 + [103] .text.UART1_RecvI PROGBITS 0000775c 00575c 000034 00 AX 0 0 4 + [104] .text.UART2_RecvI PROGBITS 00007790 005790 000034 00 AX 0 0 4 + [105] .text.MCU485_Send PROGBITS 000077c4 0057c4 000090 00 AX 0 0 4 + [106] .text.BUS485_Send PROGBITS 00007854 005854 0000c4 00 AX 0 0 4 + [107] .text.Set_GroupSe PROGBITS 00007918 005918 000064 00 AX 0 0 4 + [108] .text.Clear_SendF PROGBITS 0000797c 00597c 000010 00 AX 0 0 4 + [109] .text.BUS485_Jump PROGBITS 0000798c 00598c 00000c 00 AX 0 0 4 + [110] .text.BusIdle_Tas PROGBITS 00007998 005998 000040 00 AX 0 0 4 + [111] .text.BusBusy_Tas PROGBITS 000079d8 0059d8 00005c 00 AX 0 0 4 + [112] .text.Dbg_Println PROGBITS 00007a34 005a34 000080 00 AX 0 0 4 + [113] .text.MultSend_Ta PROGBITS 00007ab4 005ab4 0000a0 00 AX 0 0 4 + [114] .text.BUS485Send_ PROGBITS 00007b54 005b54 000068 00 AX 0 0 4 + [115] .text.Dbg_Print_B PROGBITS 00007bbc 005bbc 000084 00 AX 0 0 4 + [116] .text.UART1_TASK PROGBITS 00007c40 005c40 00008c 00 AX 0 0 4 + [117] .text.UART2_TASK PROGBITS 00007ccc 005ccc 00009c 00 AX 0 0 4 + [118] .text.Dbg_BT_Prin PROGBITS 00007d68 005d68 000060 00 AX 0 0 4 + [119] .text.DIP_GetSwit PROGBITS 00007dc8 005dc8 000034 00 AX 0 0 4 + [120] .text.DIP_Switch_ PROGBITS 00007dfc 005dfc 000094 00 AX 0 0 4 + [121] .text.DIP_ScanTas PROGBITS 00007e90 005e90 000098 00 AX 0 0 4 + [122] .text.EEPROM_Chec PROGBITS 00007f28 005f28 000016 00 AX 0 0 2 + [123] .text.EEOROM_ENER PROGBITS 00007f40 005f40 000150 00 AX 0 0 4 + [124] .text.EEOROM_ENER PROGBITS 00008090 006090 000044 00 AX 0 0 4 + [125] .text.EEPROM_ENER PROGBITS 000080d4 0060d4 00014c 00 AX 0 0 4 + [126] .text.EEPROM_Defa PROGBITS 00008220 006220 00012c 00 AX 0 0 4 + [127] .text.EEPROM_Read PROGBITS 0000834c 00634c 0000b8 00 AX 0 0 4 + [128] .text.EEPROM_Writ PROGBITS 00008404 006404 0000ac 00 AX 0 0 4 + [129] .text.EEPROM_Read PROGBITS 000084b0 0064b0 0000d4 00 AX 0 0 4 + [130] .text.EEPROM_Writ PROGBITS 00008584 006584 000040 00 AX 0 0 2 + [131] .text.EEPROM_Defa PROGBITS 000085c4 0065c4 000038 00 AX 0 0 4 + [132] .text.EEPROM_Vali PROGBITS 000085fc 0065fc 000058 00 AX 0 0 4 + [133] .text.EEPROM_Init PROGBITS 00008654 006654 000130 00 AX 0 0 4 + [134] .text.BT_Uart_Pac PROGBITS 00008784 006784 00003c 00 AX 0 0 4 + [135] .text.BLV_DetEner PROGBITS 000087c0 0067c0 000030 00 AX 0 0 4 + [136] .text.BLV_DetEner PROGBITS 000087f0 0067f0 0000b8 00 AX 0 0 4 + [137] .text.HLW8110_Che PROGBITS 000088a8 0068a8 000018 00 AX 0 0 2 + [138] .text.HLW8110_Wri PROGBITS 000088c0 0068c0 000054 00 AX 0 0 4 + [139] .text.HLW8110_Wri PROGBITS 00008914 006914 000054 00 AX 0 0 4 + [140] .text.HLW8110_Res PROGBITS 00008968 006968 000050 00 AX 0 0 4 + [141] .text.BLV_HLW8110 PROGBITS 000089b8 0069b8 00008c 00 AX 0 0 4 + [142] .text.HLW8110_RWC PROGBITS 00008a44 006a44 000074 00 AX 0 0 4 + [143] .text.HLW8110_Cle PROGBITS 00008ab8 006ab8 000010 00 AX 0 0 4 + [144] .text.Get_RevStat PROGBITS 00008ac8 006ac8 000018 00 AX 0 0 4 + [145] .text.Get_SendSta PROGBITS 00008ae0 006ae0 00001c 00 AX 0 0 4 + [146] .text.BLV_HLW8110 PROGBITS 00008afc 006afc 0001e4 00 AX 0 0 4 + [147] .text.HLW8110_Con PROGBITS 00008ce0 006ce0 00008c 00 AX 0 0 4 + [148] .text.HLW8110_Con PROGBITS 00008d6c 006d6c 00007c 00 AX 0 0 4 + [149] .text.HLW8110_Con PROGBITS 00008de8 006de8 00007c 00 AX 0 0 4 + [150] .text.HLW8110_Con PROGBITS 00008e64 006e64 000090 00 AX 0 0 4 + [151] .text.HLW8110_Rec PROGBITS 00008ef4 006ef4 00025c 00 AX 0 0 4 + [152] .text.HLW8110_Sys PROGBITS 00009150 007150 000026 00 AX 0 0 2 + [153] .text.HLW8110_Rea PROGBITS 00009178 007178 000254 00 AX 0 0 4 + [154] .text.HLW8110_Rea PROGBITS 000093cc 0073cc 0000c8 00 AX 0 0 4 + [155] .text.GetEnergy_P PROGBITS 00009494 007494 000064 00 AX 0 0 4 + [156] .text.HLW8110_Rea PROGBITS 000094f8 0074f8 000158 00 AX 0 0 4 + [157] .text.BLV_HLW8110 PROGBITS 00009650 007650 000040 00 AX 0 0 4 + [158] .text.BT_Uart_Pac PROGBITS 00009690 007690 00000c 00 AX 0 0 2 + [159] .text.BT_UART_Pri PROGBITS 0000969c 00769c 000104 00 AX 0 0 4 + [160] .text.BLV_Energy_ PROGBITS 000097a0 0077a0 0000ec 00 AX 0 0 4 + [161] .text.BLV_Electri PROGBITS 0000988c 00788c 0000b0 00 AX 0 0 4 + [162] .text.BLV_EngDete PROGBITS 0000993c 00793c 000014 00 AX 0 0 2 + [163] .text.BLV_Energy_ PROGBITS 00009950 007950 0000ec 00 AX 0 0 4 + [164] .text.BLV_Energy_ PROGBITS 00009a3c 007a3c 0000a0 00 AX 0 0 4 + [165] .text.BLV_Energy_ PROGBITS 00009adc 007adc 000098 00 AX 0 0 4 + [166] .text.SetCalibFac PROGBITS 00009b74 007b74 000030 00 AX 0 0 4 + [167] .text.BLV_Energy_ PROGBITS 00009ba4 007ba4 000084 00 AX 0 0 4 + [168] .text.BLV_Energy_ PROGBITS 00009c28 007c28 00007c 00 AX 0 0 4 + [169] .text.HLW_485Recv PROGBITS 00009ca4 007ca4 000160 00 AX 0 0 4 + [170] .text.BT_Recv_Pro PROGBITS 00009e04 007e04 000118 00 AX 0 0 4 + [171] .text.Boot_Functi PROGBITS 00009f1c 007f1c 0000c0 00 AX 0 0 4 + [172] .text.Boot_Comm_C PROGBITS 00009fdc 007fdc 000024 00 AX 0 0 4 + [173] .text.Boot_Comm_F PROGBITS 0000a000 008000 00006c 00 AX 0 0 4 + [174] .text.Boot_Time_R PROGBITS 0000a06c 00806c 000014 00 AX 0 0 4 + [175] .text.Boot_Comm_U PROGBITS 0000a080 008080 00021c 00 AX 0 0 4 + [176] .text.TK_Sampling PROGBITS 0000a29c 00829c 000058 00 AX 0 0 4 + [177] .text.TKEYIntHand PROGBITS 0000a2f4 0082f4 000088 00 AX 0 0 4 + [178] .text.get_key_num PROGBITS 0000a37c 00837c 000028 00 AX 0 0 4 + [179] .text.TK_Scan_Sta PROGBITS 0000a3a4 0083a4 000020 00 AX 0 0 4 + [180] .text.TK_Keymap_p PROGBITS 0000a3c4 0083c4 000180 00 AX 0 0 4 + [181] .text.TK_overflow PROGBITS 0000a544 008544 00011c 00 AX 0 0 4 + [182] .text.TK_Baseline PROGBITS 0000a660 008660 0001d0 00 AX 0 0 4 + [183] .text.TK_result_p PROGBITS 0000a830 008830 000054 00 AX 0 0 4 + [184] .text.CORETHandle PROGBITS 0000a884 008884 000078 00 AX 0 0 4 + [185] .text.std_clk_cal PROGBITS 0000a8fc 0088fc 000284 00 AX 0 0 4 + [186] .RomCode PROGBITS 0000ab80 00b0bc 000000 00 W 0 0 1 + [187] .rodata PROGBITS 0000ab80 008b80 0016d8 00 A 0 0 4 + [188] .data PROGBITS 20000000 00b000 00009c 00 WA 0 0 4 + [189] .textcsky.VinFlas PROGBITS 2000009c 00b09c 000020 00 WA 0 0 1 + [190] .bss NOBITS 200000bc 00b0bc 000a40 00 WA 0 0 4 + [191] .csky.attributes CSKY_ATTRIBUTES 00000000 00b0bc 000022 00 0 0 1 + [192] .comment PROGBITS 00000000 00b0de 000042 01 MS 0 0 1 + [193] .csky_stack_size PROGBITS 00000000 00b120 000aec 00 0 0 16 + [194] .debug_line PROGBITS 00000000 00bc0c 0043c3 00 0 0 1 + [195] .debug_info PROGBITS 00000000 00ffcf 0319a4 00 0 0 1 + [196] .debug_abbrev PROGBITS 00000000 041973 002d7e 00 0 0 1 + [197] .debug_aranges PROGBITS 00000000 0446f8 000d68 00 0 0 8 + [198] .debug_ranges PROGBITS 00000000 045460 000d80 00 0 0 1 + [199] .debug_str PROGBITS 00000000 0461e0 009119 01 MS 0 0 1 + [200] .debug_frame PROGBITS 00000000 04f2fc 002148 00 0 0 4 + [201] .debug_loc PROGBITS 00000000 051444 00325d 00 0 0 1 + [202] .shstrtab STRTAB 00000000 05b709 0011ef 00 0 0 1 + [203] .symtab SYMTAB 00000000 0546a4 005540 10 204 974 4 + [204] .strtab STRTAB 00000000 059be4 001b25 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x000000 0x00002000 0x00002000 0x0a258 0x0a258 R E 0x1000 + LOAD 0x00b000 0x20000000 0x0000c258 0x000bc 0x00afc RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .text.SYSCON_Software_Reset .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_DeInit .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.Page_ProgramData .text.ReadDataArry_U8 .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART0_RecvINT_Processing .text.UART0_TASK .text.UART1_RecvINT_Processing .text.UART2_RecvINT_Processing .text.MCU485_SendData .text.BUS485_Send .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.MultSend_Task .text.BUS485Send_Task .text.Dbg_Print_Buff .text.UART1_TASK .text.UART2_TASK .text.Dbg_BT_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.EEPROM_CheckSum .text.EEOROM_ENERGY_ReadSet .text.EEOROM_ENERGY_WriteSet .text.EEPROM_ENERGY_Validate .text.EEPROM_Default_ENERGY .text.EEPROM_ReadTotalEng .text.EEPROM_WriteTotalEng .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.BT_Uart_Packing.part.3 .text.BLV_DetEnergy_Init .text.BLV_DetEnergy_Default .text.HLW8110_CheckSum .text.HLW8110_WriteREG_EN .text.HLW8110_WriteREG_DIS .text.HLW8110_Reset .text.BLV_HLW8110_RWCMD_Packaging .text.HLW8110_RWCMD_Send .text.HLW8110_CleanSdFlag .text.Get_RevState .text.Get_SendState .text.BLV_HLW8110_SendData_Tack .text.HLW8110_Convert_CurrentRegA_Value .text.HLW8110_Convert_VoltageReg_Value .text.HLW8110_Convert_PowerReg_Value .text.HLW8110_Convert_EnergyReg_Value .text.HLW8110_RecvData_Processing .text.HLW8110_SysPara_Check .text.HLW8110_ReadSysPara .text.HLW8110_ReadSysCtrlPara .text.GetEnergy_Para .text.HLW8110_ReadValue .text.BLV_HLW8110_Tack .text.BT_Uart_Packing .text.BT_UART_Print .text.BLV_Energy_ActiveRep_Packing .text.BLV_ElectricPara_Processing .text.BLV_EngDetect_Tack .text.BLV_Energy_PassiveRep_Packing .text.BLV_Energy_SetTime_Packing .text.BLV_Energy_QueryVersion_Packing .text.SetCalibFactor_Switch .text.BLV_Energy_SetCalibFactor .text.BLV_Energy_SetCalibFactor_2 .text.HLW_485Recv_Processing .text.BT_Recv_Processing .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .textcsky.VinFlash .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Software_Reset) for SYSCON_Software_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DeInit) for GPIO_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART0IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART0_RecvINT_Processing) for UART0_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART0_TASK) for UART0_TASK + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.BUS485_Jump_Boot) for BUS485_Jump_Boot + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART1_TASK) for UART1_TASK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_TASK + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) for DIP_ScanTask + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) for EEOROM_ENERGY_ReadSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) for EEPROM_Default_ENERGY + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) for EEPROM_ReadTotalEng + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) for EEPROM_ReadMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) for EEPROM_Default_MCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_SysPara_Check) for HLW8110_SysPara_Check + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) for HLW8110_ReadSysPara + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) for HLW8110_ReadSysCtrlPara + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) for GetEnergy_Para + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) for HLW8110_ReadValue + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) for BLV_HLW8110_Tack + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) for BT_UART_Print + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) for BLV_Energy_ActiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) for BLV_ElectricPara_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) for BLV_EngDetect_Tack + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) for BLV_Energy_PassiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) for BLV_Energy_SetCalibFactor + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) for BLV_Energy_SetCalibFactor_2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) for BLV_DetEnergy_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) for BLV_DetEnergy_Default + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) for HLW8110_WriteREG_EN + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) for HLW8110_WriteREG_DIS + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) for HLW8110_Reset + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) for HLW8110_RWCMD_Send + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CleanSdFlag) for HLW8110_CleanSdFlag + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.Get_RevState) for Get_RevState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) for BLV_HLW8110_SendData_Tack + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) for HLW8110_Convert_CurrentRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) for HLW8110_Convert_VoltageReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) for HLW8110_Convert_PowerReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) for HLW8110_Convert_EnergyReg_Value + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) for Boot_Function_Init + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) for Boot_Comm_FillReplyPack + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Time_Refresh) for Boot_Time_Refresh + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _addsub_sf.o(.text) for __addsf3 + _fixunssfsi.o(.text) refers to _addsub_sf.o(.text) for __subsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _ne_sf.o(.text) for __nesf2 + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to _ne_sf.o(.text) for __nesf2 + _fixunssfsi.o(.text) refers to _ge_sf.o(.text) for __gesf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _si_to_sf.o(.text) for __floatsisf + _fixunssfsi.o(.text) refers to _sf_to_si.o(.text) for __fixsfsi + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_sf.o(.text) refers to _muldi3.o(.text) for __muldi3 + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_sf.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _mul_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _si_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _make_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _mul_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _div_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ge_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_si.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_df.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _ge_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _df_to_sf.o(.text) refers to _make_sf.o(.text) for __make_fp + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _make_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_sf.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to strncmp.o(.text) for strncmp + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2907 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3101 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3418 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3163 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_IO_Init(Obj/FWlib_apt32f102_gpt.o), (160 bytes). + Removing .text.GPT_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveCtrl_Configure(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_WaveLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveOut_Configure(Obj/FWlib_apt32f102_gpt.o), (180 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Start(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Period_CMP_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_gpt.o), (28 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_gpt.o), (11442 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_gpt.o), (562 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_gpt.o), (2212 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_gpt.o), (256 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_gpt.o), (240 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_gpt.o), (754 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_gpt.o), (8026 bytes). + Removing .comment(Obj/FWlib_apt32f102_gpt.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_gpt.o), (616 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4131 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3534 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3650 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4850 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4958 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2856 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .bss(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (116 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ReadPara(Obj/SYSTEM_eeprom.o), (128 bytes). + Removing .text.EEPROM_ValidateWrite(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_WritePara(Obj/SYSTEM_eeprom.o), (104 bytes). + Removing .text(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .data(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .text.HLW8110_ToWaitState(Obj/SYSTEM_det_energy.o), (24 bytes). + Removing .text(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .text.NetCRC16(Obj/SYSTEM_Bootload_fun.o), (60 bytes). + Removing .text.APP_Flash_AllEase(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.MCU_EEPROM_AllEase(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing .text.APP_FEATURE_Flash_Ease(Obj/SYSTEM_Bootload_fun.o), (12 bytes). + Removing .text.Boot_TimeOut_Task(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Jump_To_APP(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Check_APP_Feature(Obj/SYSTEM_Bootload_fun.o), (456 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (121 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.o), (0 bytes). + Removing .data(_fixunssfsi.o), (0 bytes). + Removing .bss(_fixunssfsi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_sf.o), (0 bytes). + Removing .bss(_addsub_sf.o), (0 bytes). + Removing .data(_mul_sf.o), (0 bytes). + Removing .bss(_mul_sf.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.o), (0 bytes). + Removing .data(_ne_sf.o), (0 bytes). + Removing .bss(_ne_sf.o), (0 bytes). + Removing .data(_ge_sf.o), (0 bytes). + Removing .bss(_ge_sf.o), (0 bytes). + Removing .data(_si_to_sf.o), (0 bytes). + Removing .bss(_si_to_sf.o), (0 bytes). + Removing .data(_sf_to_si.o), (0 bytes). + Removing .bss(_sf_to_si.o), (0 bytes). + Removing .data(_sf_to_df.o), (0 bytes). + Removing .bss(_sf_to_df.o), (0 bytes). + Removing .text(_thenan_sf.o), (0 bytes). + Removing .data(_thenan_sf.o), (0 bytes). + Removing .bss(_thenan_sf.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .data(_make_df.o), (0 bytes). + Removing .bss(_make_df.o), (0 bytes). + Removing .data(_df_to_sf.o), (0 bytes). + Removing .bss(_df_to_sf.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_sf.o), (0 bytes). + Removing .bss(_pack_sf.o), (0 bytes). + Removing .data(_unpack_sf.o), (0 bytes). + Removing .bss(_unpack_sf.o), (0 bytes). + Removing .data(_fpcmp_parts_sf.o), (0 bytes). + Removing .bss(_fpcmp_parts_sf.o), (0 bytes). + Removing .data(_make_sf.o), (0 bytes). + Removing .bss(_make_sf.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +690 unused seciton(s) (total 184135 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ifc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_Bootload_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_det_energy.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _addsub_sf.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uhi.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_sf.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _div_sf.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fixunssfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _fpcmp_parts_sf.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _ge_sf.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _make_df.o 0x00000000 df 0 *ABS* + _make_sf.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _mul_sf.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _ne_sf.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _sf_to_si.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _si_to_sf.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _unpack_sf.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + strncmp.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00002800 0 .text + $t 0x0000290c 0 .text + INIT_KERLE_STACK 0x0000293e 0 .text + __to_main 0x00002946 0 .text + __dummy 0x00002982 0 .text + $d 0x00002986 0 .text + $d 0x000029b4 0 .text + $t 0x000029b4 0 .text + $d 0x00002d78 0 .text + $t 0x00002de0 0 .text + $d 0x000032a8 0 .text + $t 0x00003358 0 .text + $d 0x0000335e 0 .text + $t 0x0000335e 0 .text + $d 0x00003364 0 .text + $t 0x00003364 0 .text + $d 0x00003380 0 .text + $d 0x00003384 0 .text + $t 0x00003384 0 .text + $d 0x000034f0 0 .text + $d 0x000034fc 0 .text + $t 0x000034fc 0 .text + $d 0x00003510 0 .text + $t 0x00003510 0 .text + $d 0x0000352c 0 .text + $t 0x0000352c 0 .text + $d 0x0000355c 0 .text + $t 0x0000355c 0 .text + $d 0x00003590 0 .text + _fpadd_parts 0x00003594 F 332 .text + $d 0x00003594 0 .text + $t 0x00003594 0 .text + $d 0x000036d8 0 .text + $t 0x000036e0 0 .text + $d 0x00003740 0 .text + $t 0x00003740 0 .text + $d 0x00003850 0 .text + $d 0x00003858 0 .text + $t 0x00003858 0 .text + $d 0x00003910 0 .text + $d 0x00003914 0 .text + $t 0x00003914 0 .text + $d 0x0000394c 0 .text + $t 0x0000394c 0 .text + $d 0x00003984 0 .text + $t 0x00003984 0 .text + $d 0x000039e8 0 .text + $t 0x000039e8 0 .text + $d 0x00003a38 0 .text + $d 0x00003a3c 0 .text + $t 0x00003a3c 0 .text + _fpadd_parts 0x00003a60 F 724 .text + $d 0x00003a60 0 .text + $t 0x00003a60 0 .text + $d 0x00003d28 0 .text + $t 0x00003d34 0 .text + $d 0x00003d9c 0 .text + $t 0x00003d9c 0 .text + $d 0x00003fc4 0 .text + $d 0x00003fd0 0 .text + $t 0x00003fd0 0 .text + $d 0x00004120 0 .text + $d 0x00004124 0 .text + $t 0x00004124 0 .text + $d 0x00004160 0 .text + $t 0x00004160 0 .text + $d 0x0000419c 0 .text + $t 0x0000419c 0 .text + $d 0x000041d8 0 .text + $t 0x000041d8 0 .text + $d 0x00004244 0 .text + $d 0x00004248 0 .text + $t 0x00004248 0 .text + $d 0x000042b4 0 .text + $d 0x000042b8 0 .text + $t 0x000042b8 0 .text + $d 0x000042e0 0 .text + $t 0x000042e0 0 .text + $d 0x00004310 0 .text + $t 0x00004310 0 .text + $d 0x00004364 0 .text + $t 0x00004364 0 .text + $d 0x000043a8 0 .text + $t 0x000043a8 0 .text + $d 0x000043dc 0 .text + $d 0x000043e8 0 .text + $t 0x000043e8 0 .text + $d 0x0000449c 0 .text + $d 0x000044a0 0 .text + $t 0x000044a0 0 .text + $d 0x0000451c 0 .text + $d 0x00004524 0 .text + $t 0x00004524 0 .text + $d 0x0000459c 0 .text + $t 0x0000459c 0 .text + $d 0x000045b4 0 .text + $t 0x000045b4 0 .text + $d 0x0000473c 0 .text + $d 0x00004750 0 .text + $t 0x00004750 0 .text + $d 0x00004808 0 .text + $d 0x00004814 0 .text + $t 0x00004814 0 .text + $d 0x000048a0 0 .text + $t 0x000048a0 0 .text + swrite 0x000048c0 F 62 .text + $d 0x000048c0 0 .text + $t 0x000048c0 0 .text + $d 0x00004954 0 .text + $d 0x00004958 0 .text + $t 0x00004958 0 .text + $d 0x000049e0 0 .text + $t 0x000049e0 0 .text + $d 0x00004a44 0 .text + $t 0x00004a44 0 .text + PAD.1851 0x00004a6c F 52 .text + $d 0x00004a6c 0 .text + $t 0x00004a6c 0 .text + $d 0x00005014 0 .text + $t 0x00005020 0 .text + $d 0x000051bc 0 .text + $d 0x000051c4 0 .text + $t 0x000051c4 0 .text + $d 0x00005564 0 .text + $d 0x00005570 0 .text + $t 0x00005570 0 .text + $d 0x00005904 0 .text + copystring 0x00005910 F 38 .text + $d 0x00005910 0 .text + $t 0x00005910 0 .text + $d 0x00005c3c 0 .text + $d 0x00005c70 0 .text + $t 0x00005c70 0 .text + $d 0x00005c98 0 .text + $d 0x00005c9c 0 .text + $t 0x00005c9c 0 .text + $d 0x00005cf0 0 .text + $t 0x00005cf0 0 .text + $d 0x00005da0 0 .text + $t 0x00005da0 0 .text + $d 0x00005db4 0 .text + $t 0x00005db4 0 .text + $d 0x00005dc8 0 .text + $d 0x00005dd0 0 .text + $t 0x00005dd0 0 .text + $d 0x00005df8 0 .text + $d 0x00005e00 0 .text + $t 0x00005e00 0 .text + $d 0x00005e3c 0 .text + $t 0x00005e3c 0 .text + $d 0x00005e78 0 .text.__main + $t 0x00005e78 0 .text.__main + $d 0x00005e9c 0 .text.__main + SYSCON_General_CMD.part.0 0x00005eb0 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $t 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f1c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f24 0 .text.SYSCON_RST_VALUE + $t 0x00005f24 0 .text.SYSCON_RST_VALUE + $d 0x00005f54 0 .text.SYSCON_RST_VALUE + $d 0x00005f70 0 .text.SYSCON_General_CMD + $t 0x00005f70 0 .text.SYSCON_General_CMD + $d 0x00005f9c 0 .text.SYSCON_General_CMD + $d 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006018 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $d 0x0000604c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00006050 0 .text.SYSCON_WDT_CMD + $t 0x00006050 0 .text.SYSCON_WDT_CMD + $d 0x00006080 0 .text.SYSCON_WDT_CMD + $d 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $t 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000609c 0 .text.SYSCON_IWDCNT_Reload + $d 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $t 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b8 0 .text.SYSCON_LVD_Config + $t 0x000060b8 0 .text.SYSCON_LVD_Config + $d 0x000060d0 0 .text.SYSCON_LVD_Config + $d 0x000060d8 0 .text.LVD_Int_Enable + $t 0x000060d8 0 .text.LVD_Int_Enable + $d 0x000060f0 0 .text.LVD_Int_Enable + $d 0x000060f4 0 .text.IWDT_Int_Enable + $t 0x000060f4 0 .text.IWDT_Int_Enable + $d 0x0000610c 0 .text.IWDT_Int_Enable + $d 0x00006110 0 .text.EXTI_trigger_CMD + $t 0x00006110 0 .text.EXTI_trigger_CMD + $d 0x0000614c 0 .text.EXTI_trigger_CMD + $d 0x00006150 0 .text.EXTI_interrupt_CMD + $t 0x00006150 0 .text.EXTI_interrupt_CMD + $d 0x0000617c 0 .text.EXTI_interrupt_CMD + $d 0x00006184 0 .text.GPIO_EXTI_interrupt + $t 0x00006184 0 .text.GPIO_EXTI_interrupt + $d 0x00006188 0 .text.EXI4_Int_Enable + $t 0x00006188 0 .text.EXI4_Int_Enable + $d 0x00006194 0 .text.EXI4_Int_Enable + $d 0x00006198 0 .text.SYSCON_Int_Enable + $t 0x00006198 0 .text.SYSCON_Int_Enable + $d 0x000061a0 0 .text.SYSCON_Int_Enable + $d 0x000061a4 0 .text.SYSCON_Int_Disable + $t 0x000061a4 0 .text.SYSCON_Int_Disable + $d 0x000061ac 0 .text.SYSCON_Int_Disable + $d 0x000061b0 0 .text.SYSCON_Software_Reset + $t 0x000061b0 0 .text.SYSCON_Software_Reset + $d 0x000061bc 0 .text.SYSCON_Software_Reset + $d 0x000061c4 0 .text.SYSCON_INT_Priority + $t 0x000061c4 0 .text.SYSCON_INT_Priority + $d 0x000061dc 0 .text.SYSCON_INT_Priority + $d 0x000061e8 0 .text.Set_INT_Priority + $t 0x000061e8 0 .text.Set_INT_Priority + $d 0x00006214 0 .text.Set_INT_Priority + $d 0x00006218 0 .text.GPIO_DeInit + $t 0x00006218 0 .text.GPIO_DeInit + $d 0x0000626c 0 .text.GPIO_DeInit + $d 0x0000627c 0 .text.GPIO_Init + $t 0x0000627c 0 .text.GPIO_Init + $d 0x0000628e 0 .text.GPIO_Init + $t 0x00006296 0 .text.GPIO_Init + $d 0x000062f2 0 .text.GPIO_Init + $t 0x000062fa 0 .text.GPIO_Init + $d 0x00006348 0 .text.GPIO_Init + $d 0x0000635c 0 .text.GPIO_PullHigh_Init + $t 0x0000635c 0 .text.GPIO_PullHigh_Init + $d 0x00006370 0 .text.GPIO_DriveStrength_EN + $t 0x00006370 0 .text.GPIO_DriveStrength_EN + $d 0x00006380 0 .text.GPIO_IntGroup_Set + $t 0x00006380 0 .text.GPIO_IntGroup_Set + $d 0x00006474 0 .text.GPIO_IntGroup_Set + $d 0x0000648c 0 .text.GPIOA0_EXI_Init + $t 0x0000648c 0 .text.GPIOA0_EXI_Init + $d 0x00006498 0 .text.GPIOA0_EXI_Init + $t 0x000064a8 0 .text.GPIOA0_EXI_Init + $d 0x00006584 0 .text.GPIOA0_EXI_Init + $d 0x00006588 0 .text.GPIO_Write_High + $t 0x00006588 0 .text.GPIO_Write_High + $d 0x00006590 0 .text.GPIO_Write_Low + $t 0x00006590 0 .text.GPIO_Write_Low + $d 0x00006598 0 .text.GPIO_Reverse + $t 0x00006598 0 .text.GPIO_Reverse + $d 0x000065ae 0 .text.GPIO_Read_Status + $t 0x000065ae 0 .text.GPIO_Read_Status + $d 0x000065c0 0 .text.LPT_Soft_Reset + $t 0x000065c0 0 .text.LPT_Soft_Reset + $d 0x000065d0 0 .text.LPT_Soft_Reset + $d 0x000065d4 0 .text.WWDT_CNT_Load + $t 0x000065d4 0 .text.WWDT_CNT_Load + $d 0x000065e0 0 .text.WWDT_CNT_Load + $d 0x000065e4 0 .text.BT_DeInit + $t 0x000065e4 0 .text.BT_DeInit + $d 0x00006600 0 .text.BT_Start + $t 0x00006600 0 .text.BT_Start + $d 0x00006608 0 .text.BT_Soft_Reset + $t 0x00006608 0 .text.BT_Soft_Reset + $d 0x00006612 0 .text.BT_Configure + $t 0x00006612 0 .text.BT_Configure + $d 0x0000662a 0 .text.BT_ControlSet_Configure + $t 0x0000662a 0 .text.BT_ControlSet_Configure + $d 0x00006656 0 .text.BT_Period_CMP_Write + $t 0x00006656 0 .text.BT_Period_CMP_Write + $d 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $t 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $d 0x00006670 0 .text.BT1_INT_ENABLE + $t 0x00006670 0 .text.BT1_INT_ENABLE + $d 0x0000667c 0 .text.BT1_INT_ENABLE + $d 0x00006680 0 .text.UART0_DeInit + $t 0x00006680 0 .text.UART0_DeInit + $d 0x00006694 0 .text.UART0_DeInit + $d 0x00006698 0 .text.UART1_DeInit + $t 0x00006698 0 .text.UART1_DeInit + $d 0x000066ac 0 .text.UART1_DeInit + $d 0x000066b0 0 .text.UART2_DeInit + $t 0x000066b0 0 .text.UART2_DeInit + $d 0x000066c4 0 .text.UART2_DeInit + $d 0x000066c8 0 .text.UART0_Int_Enable + $t 0x000066c8 0 .text.UART0_Int_Enable + $d 0x000066dc 0 .text.UART0_Int_Enable + $d 0x000066e4 0 .text.UART1_Int_Enable + $t 0x000066e4 0 .text.UART1_Int_Enable + $d 0x000066f8 0 .text.UART1_Int_Enable + $d 0x00006700 0 .text.UART2_Int_Enable + $t 0x00006700 0 .text.UART2_Int_Enable + $d 0x00006714 0 .text.UART2_Int_Enable + $d 0x0000671c 0 .text.UART_IO_Init + $t 0x0000671c 0 .text.UART_IO_Init + $d 0x00006800 0 .text.UART_IO_Init + $d 0x00006808 0 .text.UARTInitRxTxIntEn + $t 0x00006808 0 .text.UARTInitRxTxIntEn + $d 0x00006814 0 .text.UARTInitRxTxIntEn + $d 0x00006818 0 .text.UARTTransmit + $t 0x00006818 0 .text.UARTTransmit + $d 0x00006838 0 .text.EPT_Stop + $t 0x00006838 0 .text.EPT_Stop + $d 0x00006858 0 .text.EPT_Stop + $d 0x00006860 0 .text.Page_ProgramData + $t 0x00006860 0 .text.Page_ProgramData + $d 0x000068f8 0 .text.Page_ProgramData + $d 0x00006900 0 .text.ReadDataArry_U8 + $t 0x00006900 0 .text.ReadDataArry_U8 + $d 0x0000692c 0 .text.startup.main + $t 0x0000692c 0 .text.startup.main + $d 0x00006964 0 .text.startup.main + $d 0x00006970 0 .text.delay_nms + $t 0x00006970 0 .text.delay_nms + $d 0x0000699c 0 .text.delay_nus + $t 0x0000699c 0 .text.delay_nus + $d 0x000069c0 0 .text.BT_CONFIG + $t 0x000069c0 0 .text.BT_CONFIG + $d 0x00006a18 0 .text.BT_CONFIG + $d 0x00006a20 0 .text.SYSCON_CONFIG + $t 0x00006a20 0 .text.SYSCON_CONFIG + $d 0x00006a84 0 .text.APT32F102_init + $t 0x00006a84 0 .text.APT32F102_init + $d 0x00006ae8 0 .text.APT32F102_init + $d 0x00006afc 0 .text.SYSCONIntHandler + $t 0x00006afc 0 .text.SYSCONIntHandler + $d 0x00006be8 0 .text.SYSCONIntHandler + $d 0x00006bec 0 .text.IFCIntHandler + $t 0x00006bec 0 .text.IFCIntHandler + $d 0x00006c50 0 .text.IFCIntHandler + $d 0x00006c54 0 .text.ADCIntHandler + $t 0x00006c54 0 .text.ADCIntHandler + $d 0x00006cb8 0 .text.ADCIntHandler + $d 0x00006cbc 0 .text.EPT0IntHandler + $t 0x00006cbc 0 .text.EPT0IntHandler + $d 0x00006e5c 0 .text.EPT0IntHandler + $d 0x00006e68 0 .text.WWDTHandler + $t 0x00006e68 0 .text.WWDTHandler + $d 0x00006e98 0 .text.WWDTHandler + $d 0x00006e9c 0 .text.GPT0IntHandler + $t 0x00006e9c 0 .text.GPT0IntHandler + $d 0x00006f18 0 .text.GPT0IntHandler + $d 0x00006f1c 0 .text.RTCIntHandler + $t 0x00006f1c 0 .text.RTCIntHandler + $d 0x00006f84 0 .text.RTCIntHandler + $d 0x00006f8c 0 .text.UART0IntHandler + $t 0x00006f8c 0 .text.UART0IntHandler + $d 0x00006fe8 0 .text.UART0IntHandler + $d 0x00006fec 0 .text.UART1IntHandler + $t 0x00006fec 0 .text.UART1IntHandler + $d 0x0000706c 0 .text.UART1IntHandler + $d 0x00007080 0 .text.UART2IntHandler + $t 0x00007080 0 .text.UART2IntHandler + $d 0x000070dc 0 .text.UART2IntHandler + $d 0x000070e0 0 .text.SPI0IntHandler + $t 0x000070e0 0 .text.SPI0IntHandler + $d 0x000071c4 0 .text.SPI0IntHandler + $d 0x000071c8 0 .text.SIO0IntHandler + $t 0x000071c8 0 .text.SIO0IntHandler + $d 0x00007218 0 .text.SIO0IntHandler + $d 0x0000721c 0 .text.EXI0IntHandler + $t 0x0000721c 0 .text.EXI0IntHandler + $d 0x00007248 0 .text.EXI0IntHandler + $d 0x0000724c 0 .text.EXI1IntHandler + $t 0x0000724c 0 .text.EXI1IntHandler + $d 0x00007278 0 .text.EXI1IntHandler + $d 0x0000727c 0 .text.EXI2to3IntHandler + $t 0x0000727c 0 .text.EXI2to3IntHandler + $d 0x000072c0 0 .text.EXI2to3IntHandler + $d 0x000072c4 0 .text.EXI4to9IntHandler + $t 0x000072c4 0 .text.EXI4to9IntHandler + $d 0x000072e0 0 .text.EXI4to9IntHandler + $d 0x000072e4 0 .text.EXI10to15IntHandler + $t 0x000072e4 0 .text.EXI10to15IntHandler + $d 0x0000734c 0 .text.EXI10to15IntHandler + $d 0x00007350 0 .text.LPTIntHandler + $t 0x00007350 0 .text.LPTIntHandler + $d 0x00007380 0 .text.LPTIntHandler + $d 0x00007384 0 .text.BT0IntHandler + $t 0x00007384 0 .text.BT0IntHandler + $d 0x000073cc 0 .text.BT0IntHandler + $d 0x000073d0 0 .text.BT1IntHandler + $t 0x000073d0 0 .text.BT1IntHandler + $d 0x00007438 0 .text.BT1IntHandler + $d 0x00007440 0 .text.PriviledgeVioHandler + $t 0x00007440 0 .text.PriviledgeVioHandler + $d 0x00007442 0 .text.PendTrapHandler + $t 0x00007442 0 .text.PendTrapHandler + $d 0x0000744a 0 .text.Trap3Handler + $t 0x0000744a 0 .text.Trap3Handler + $d 0x00007452 0 .text.Trap2Handler + $t 0x00007452 0 .text.Trap2Handler + $d 0x0000745a 0 .text.Trap1Handler + $t 0x0000745a 0 .text.Trap1Handler + $d 0x00007462 0 .text.Trap0Handler + $t 0x00007462 0 .text.Trap0Handler + $d 0x0000746a 0 .text.UnrecExecpHandler + $t 0x0000746a 0 .text.UnrecExecpHandler + $d 0x00007472 0 .text.BreakPointHandler + $t 0x00007472 0 .text.BreakPointHandler + $d 0x0000747a 0 .text.AccessErrHandler + $t 0x0000747a 0 .text.AccessErrHandler + $d 0x00007482 0 .text.IllegalInstrHandler + $t 0x00007482 0 .text.IllegalInstrHandler + $d 0x0000748a 0 .text.MisalignedHandler + $t 0x0000748a 0 .text.MisalignedHandler + $d 0x00007492 0 .text.CNTAIntHandler + $t 0x00007492 0 .text.CNTAIntHandler + $d 0x0000749a 0 .text.I2CIntHandler + $t 0x0000749a 0 .text.I2CIntHandler + $d 0x000074a4 0 .text.__divsi3 + $t 0x000074a4 0 .text.__divsi3 + $d 0x000074c4 0 .text.__divsi3 + $d 0x000074c8 0 .text.__udivsi3 + $t 0x000074c8 0 .text.__udivsi3 + $d 0x000074e8 0 .text.__udivsi3 + $d 0x000074ec 0 .text.__modsi3 + $t 0x000074ec 0 .text.__modsi3 + $d 0x0000750c 0 .text.__modsi3 + $d 0x00007510 0 .text.__umodsi3 + $t 0x00007510 0 .text.__umodsi3 + $d 0x00007530 0 .text.__umodsi3 + $d 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00007540 0 .text.UARTx_Init + $t 0x00007540 0 .text.UARTx_Init + $d 0x00007694 0 .text.UARTx_Init + $d 0x000076c8 0 .text.UART0_RecvINT_Processing + $t 0x000076c8 0 .text.UART0_RecvINT_Processing + $d 0x000076f0 0 .text.UART0_RecvINT_Processing + $d 0x000076fc 0 .text.UART0_TASK + $t 0x000076fc 0 .text.UART0_TASK + $d 0x0000774c 0 .text.UART0_TASK + $d 0x0000775c 0 .text.UART1_RecvINT_Processing + $t 0x0000775c 0 .text.UART1_RecvINT_Processing + $d 0x00007784 0 .text.UART1_RecvINT_Processing + $d 0x00007790 0 .text.UART2_RecvINT_Processing + $t 0x00007790 0 .text.UART2_RecvINT_Processing + $d 0x000077b8 0 .text.UART2_RecvINT_Processing + $d 0x000077c4 0 .text.MCU485_SendData + $t 0x000077c4 0 .text.MCU485_SendData + $d 0x00007848 0 .text.MCU485_SendData + $d 0x00007854 0 .text.BUS485_Send + $t 0x00007854 0 .text.BUS485_Send + $d 0x00007900 0 .text.BUS485_Send + $d 0x00007918 0 .text.Set_GroupSend + $t 0x00007918 0 .text.Set_GroupSend + $d 0x00007974 0 .text.Set_GroupSend + $d 0x0000797c 0 .text.Clear_SendFlag + $t 0x0000797c 0 .text.Clear_SendFlag + $d 0x00007988 0 .text.Clear_SendFlag + $d 0x0000798c 0 .text.BUS485_Jump_Boot + $t 0x0000798c 0 .text.BUS485_Jump_Boot + $d 0x00007994 0 .text.BUS485_Jump_Boot + $d 0x00007998 0 .text.BusIdle_Task + $t 0x00007998 0 .text.BusIdle_Task + $d 0x000079d0 0 .text.BusIdle_Task + $d 0x000079d8 0 .text.BusBusy_Task + $t 0x000079d8 0 .text.BusBusy_Task + $d 0x00007a28 0 .text.BusBusy_Task + $d 0x00007a34 0 .text.Dbg_Println + $t 0x00007a34 0 .text.Dbg_Println + $d 0x00007aa4 0 .text.Dbg_Println + $d 0x00007ab4 0 .text.MultSend_Task + $t 0x00007ab4 0 .text.MultSend_Task + $d 0x00007b40 0 .text.MultSend_Task + $d 0x00007b54 0 .text.BUS485Send_Task + $t 0x00007b54 0 .text.BUS485Send_Task + $d 0x00007ba0 0 .text.BUS485Send_Task + $d 0x00007bbc 0 .text.Dbg_Print_Buff + $t 0x00007bbc 0 .text.Dbg_Print_Buff + $d 0x00007c2c 0 .text.Dbg_Print_Buff + $d 0x00007c40 0 .text.UART1_TASK + $t 0x00007c40 0 .text.UART1_TASK + $d 0x00007cb4 0 .text.UART1_TASK + $d 0x00007ccc 0 .text.UART2_TASK + $t 0x00007ccc 0 .text.UART2_TASK + $d 0x00007d4c 0 .text.UART2_TASK + $d 0x00007d68 0 .text.Dbg_BT_Println + $t 0x00007d68 0 .text.Dbg_BT_Println + $d 0x00007dbc 0 .text.Dbg_BT_Println + $d 0x00007dc8 0 .text.DIP_GetSwitchState + $t 0x00007dc8 0 .text.DIP_GetSwitchState + $d 0x00007df8 0 .text.DIP_GetSwitchState + $d 0x00007dfc 0 .text.DIP_Switch_Init + $t 0x00007dfc 0 .text.DIP_Switch_Init + $d 0x00007e84 0 .text.DIP_Switch_Init + $d 0x00007e90 0 .text.DIP_ScanTask + $t 0x00007e90 0 .text.DIP_ScanTask + $d 0x00007f18 0 .text.DIP_ScanTask + $d 0x00007f28 0 .text.EEPROM_CheckSum + $t 0x00007f28 0 .text.EEPROM_CheckSum + $d 0x00007f40 0 .text.EEOROM_ENERGY_ReadSet + $t 0x00007f40 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008058 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008090 0 .text.EEOROM_ENERGY_WriteSet + $t 0x00008090 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080d0 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080d4 0 .text.EEPROM_ENERGY_Validate + $t 0x000080d4 0 .text.EEPROM_ENERGY_Validate + $d 0x000081f8 0 .text.EEPROM_ENERGY_Validate + $d 0x00008220 0 .text.EEPROM_Default_ENERGY + $t 0x00008220 0 .text.EEPROM_Default_ENERGY + $d 0x00008308 0 .text.EEPROM_Default_ENERGY + $d 0x0000834c 0 .text.EEPROM_ReadTotalEng + $t 0x0000834c 0 .text.EEPROM_ReadTotalEng + $d 0x000083f0 0 .text.EEPROM_ReadTotalEng + $d 0x00008404 0 .text.EEPROM_WriteTotalEng + $t 0x00008404 0 .text.EEPROM_WriteTotalEng + $d 0x000084a4 0 .text.EEPROM_WriteTotalEng + $d 0x000084b0 0 .text.EEPROM_ReadMCUDevInfo + $t 0x000084b0 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008564 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008584 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00008584 0 .text.EEPROM_WriteMCUDevInfo + $d 0x000085c4 0 .text.EEPROM_Default_MCUDevInfo + $t 0x000085c4 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000085f8 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000085fc 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x000085fc 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008650 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008654 0 .text.EEPROM_Init + $t 0x00008654 0 .text.EEPROM_Init + $d 0x00008740 0 .text.EEPROM_Init + BT_Uart_Packing.part.3 0x00008784 F 60 .text.BT_Uart_Packing.part.3 + $d 0x00008784 0 .text.BT_Uart_Packing.part.3 + $t 0x00008784 0 .text.BT_Uart_Packing.part.3 + $d 0x000087b8 0 .text.BT_Uart_Packing.part.3 + $d 0x000087c0 0 .text.BLV_DetEnergy_Init + $t 0x000087c0 0 .text.BLV_DetEnergy_Init + $d 0x000087e4 0 .text.BLV_DetEnergy_Init + $d 0x000087f0 0 .text.BLV_DetEnergy_Default + $t 0x000087f0 0 .text.BLV_DetEnergy_Default + $d 0x00008898 0 .text.BLV_DetEnergy_Default + $d 0x000088a8 0 .text.HLW8110_CheckSum + $t 0x000088a8 0 .text.HLW8110_CheckSum + $d 0x000088c0 0 .text.HLW8110_WriteREG_EN + $t 0x000088c0 0 .text.HLW8110_WriteREG_EN + $d 0x0000890c 0 .text.HLW8110_WriteREG_EN + $d 0x00008914 0 .text.HLW8110_WriteREG_DIS + $t 0x00008914 0 .text.HLW8110_WriteREG_DIS + $d 0x00008960 0 .text.HLW8110_WriteREG_DIS + $d 0x00008968 0 .text.HLW8110_Reset + $t 0x00008968 0 .text.HLW8110_Reset + $d 0x000089b0 0 .text.HLW8110_Reset + $d 0x000089b8 0 .text.BLV_HLW8110_RWCMD_Packaging + $t 0x000089b8 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a40 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a44 0 .text.HLW8110_RWCMD_Send + $t 0x00008a44 0 .text.HLW8110_RWCMD_Send + $d 0x00008aa4 0 .text.HLW8110_RWCMD_Send + $d 0x00008ab8 0 .text.HLW8110_CleanSdFlag + $t 0x00008ab8 0 .text.HLW8110_CleanSdFlag + $d 0x00008ac4 0 .text.HLW8110_CleanSdFlag + $d 0x00008ac8 0 .text.Get_RevState + $t 0x00008ac8 0 .text.Get_RevState + $d 0x00008adc 0 .text.Get_RevState + $d 0x00008ae0 0 .text.Get_SendState + $t 0x00008ae0 0 .text.Get_SendState + $d 0x00008af8 0 .text.Get_SendState + $d 0x00008afc 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008afc 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008b0e 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008b20 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008cc8 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008ce0 0 .text.HLW8110_Convert_CurrentRegA_Value + $t 0x00008ce0 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d58 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d6c 0 .text.HLW8110_Convert_VoltageReg_Value + $t 0x00008d6c 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008dd4 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008de8 0 .text.HLW8110_Convert_PowerReg_Value + $t 0x00008de8 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e58 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e64 0 .text.HLW8110_Convert_EnergyReg_Value + $t 0x00008e64 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008ee4 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008ef4 0 .text.HLW8110_RecvData_Processing + $t 0x00008ef4 0 .text.HLW8110_RecvData_Processing + $d 0x00009128 0 .text.HLW8110_RecvData_Processing + $d 0x00009150 0 .text.HLW8110_SysPara_Check + $t 0x00009150 0 .text.HLW8110_SysPara_Check + $d 0x00009178 0 .text.HLW8110_ReadSysPara + $t 0x00009178 0 .text.HLW8110_ReadSysPara + $d 0x00009188 0 .text.HLW8110_ReadSysPara + $t 0x00009194 0 .text.HLW8110_ReadSysPara + $d 0x00009388 0 .text.HLW8110_ReadSysPara + $d 0x000093cc 0 .text.HLW8110_ReadSysCtrlPara + $t 0x000093cc 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009478 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009494 0 .text.GetEnergy_Para + $t 0x00009494 0 .text.GetEnergy_Para + $d 0x000094dc 0 .text.GetEnergy_Para + $d 0x000094f8 0 .text.HLW8110_ReadValue + $t 0x000094f8 0 .text.HLW8110_ReadValue + $d 0x00009506 0 .text.HLW8110_ReadValue + $t 0x0000950c 0 .text.HLW8110_ReadValue + $d 0x00009628 0 .text.HLW8110_ReadValue + $d 0x00009650 0 .text.BLV_HLW8110_Tack + $t 0x00009650 0 .text.BLV_HLW8110_Tack + $d 0x0000965e 0 .text.BLV_HLW8110_Tack + $t 0x00009662 0 .text.BLV_HLW8110_Tack + $d 0x00009684 0 .text.BLV_HLW8110_Tack + $d 0x00009690 0 .text.BT_Uart_Packing + $t 0x00009690 0 .text.BT_Uart_Packing + $d 0x0000969c 0 .text.BT_UART_Print + $t 0x0000969c 0 .text.BT_UART_Print + $d 0x000096d4 0 .text.BT_UART_Print + $t 0x000096dc 0 .text.BT_UART_Print + $d 0x00009774 0 .text.BT_UART_Print + $d 0x000097a0 0 .text.BLV_Energy_ActiveRep_Packing + $t 0x000097a0 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x00009880 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x0000988c 0 .text.BLV_ElectricPara_Processing + $t 0x0000988c 0 .text.BLV_ElectricPara_Processing + $d 0x00009914 0 .text.BLV_ElectricPara_Processing + $d 0x0000993c 0 .text.BLV_EngDetect_Tack + $t 0x0000993c 0 .text.BLV_EngDetect_Tack + $d 0x00009950 0 .text.BLV_Energy_PassiveRep_Packing + $t 0x00009950 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009a34 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009a3c 0 .text.BLV_Energy_SetTime_Packing + $t 0x00009a3c 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009ad0 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009adc 0 .text.BLV_Energy_QueryVersion_Packing + $t 0x00009adc 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b6c 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b74 0 .text.SetCalibFactor_Switch + $t 0x00009b74 0 .text.SetCalibFactor_Switch + $d 0x00009b80 0 .text.SetCalibFactor_Switch + $t 0x00009b86 0 .text.SetCalibFactor_Switch + $d 0x00009ba0 0 .text.SetCalibFactor_Switch + $d 0x00009ba4 0 .text.BLV_Energy_SetCalibFactor + $t 0x00009ba4 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009c24 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009c28 0 .text.BLV_Energy_SetCalibFactor_2 + $t 0x00009c28 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009ca0 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009ca4 0 .text.HLW_485Recv_Processing + $t 0x00009ca4 0 .text.HLW_485Recv_Processing + $d 0x00009dd4 0 .text.HLW_485Recv_Processing + $d 0x00009e04 0 .text.BT_Recv_Processing + $t 0x00009e04 0 .text.BT_Recv_Processing + $d 0x00009ef8 0 .text.BT_Recv_Processing + $d 0x00009f1c 0 .text.Boot_Function_Init + $t 0x00009f1c 0 .text.Boot_Function_Init + $d 0x00009fac 0 .text.Boot_Function_Init + $d 0x00009fdc 0 .text.Boot_Comm_CheckSum + $t 0x00009fdc 0 .text.Boot_Comm_CheckSum + $d 0x00009ffc 0 .text.Boot_Comm_CheckSum + $d 0x0000a000 0 .text.Boot_Comm_FillReplyPack + $t 0x0000a000 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a060 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a06c 0 .text.Boot_Time_Refresh + $t 0x0000a06c 0 .text.Boot_Time_Refresh + $d 0x0000a078 0 .text.Boot_Time_Refresh + $d 0x0000a080 0 .text.Boot_Comm_UpgradeProcess + $t 0x0000a080 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a260 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a29c 0 .text.TK_Sampling_prog + $t 0x0000a29c 0 .text.TK_Sampling_prog + $d 0x0000a2e4 0 .text.TK_Sampling_prog + $d 0x0000a2f4 0 .text.TKEYIntHandler + $t 0x0000a2f4 0 .text.TKEYIntHandler + $d 0x0000a370 0 .text.TKEYIntHandler + $d 0x0000a37c 0 .text.get_key_number + $t 0x0000a37c 0 .text.get_key_number + $d 0x0000a3a0 0 .text.get_key_number + $d 0x0000a3a4 0 .text.TK_Scan_Start + $t 0x0000a3a4 0 .text.TK_Scan_Start + $d 0x0000a3bc 0 .text.TK_Scan_Start + $d 0x0000a3c4 0 .text.TK_Keymap_prog + $t 0x0000a3c4 0 .text.TK_Keymap_prog + $d 0x0000a50c 0 .text.TK_Keymap_prog + $d 0x0000a544 0 .text.TK_overflow_predict + $t 0x0000a544 0 .text.TK_overflow_predict + $d 0x0000a62c 0 .text.TK_overflow_predict + $d 0x0000a660 0 .text.TK_Baseline_tracking + $t 0x0000a660 0 .text.TK_Baseline_tracking + $d 0x0000a804 0 .text.TK_Baseline_tracking + $d 0x0000a830 0 .text.TK_result_prog + $t 0x0000a830 0 .text.TK_result_prog + $d 0x0000a870 0 .text.TK_result_prog + $d 0x0000a884 0 .text.CORETHandler + $t 0x0000a884 0 .text.CORETHandler + $d 0x0000a8e4 0 .text.CORETHandler + $d 0x0000a8fc 0 .text.std_clk_calib + $t 0x0000a8fc 0 .text.std_clk_calib + $d 0x0000ab44 0 .text.std_clk_calib + __func__.6746 0x0000ab80 O 23 .rodata + bp 0x0000ab98 O 16 .rodata + dp_l 0x0000aba8 O 16 .rodata + dp_h 0x0000abb8 O 16 .rodata + blanks.1847 0x0000acec O 16 .rodata + zeroes.1848 0x0000acfc O 16 .rodata + CSWTCH.1 0x0000ad0c O 576 .rodata + NUM.6261 0x200000bc O 1 .bss + update_20ms.6167 0x20000168 O 4 .bss + HLW8110_Sned_Tisk.6549 0x2000016c O 4 .bss + HLW8110_Reset_Tack.6607 0x20000170 O 4 .bss + Wait_ReadValue_Tisk.6632 0x20000174 O 4 .bss + BT_State.6666 0x20000178 O 4 .bss + BT_WaitOutTim.6667 0x2000017c O 4 .bss + Eng_Save_Tim.6655 0x20000180 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00002800 0 .text + __start 0x0000290c 0 .text + __exit 0x00002960 0 .text + __fail 0x00002976 0 .text + DummyHandler 0x00002984 0 .text + __GI_pow 0x000029b4 F 2474 .text + pow 0x000029b4 F 2474 .text + __GI_fabs 0x0000335e F 6 .text + fabs 0x0000335e F 6 .text + __GI_scalbn 0x00003364 F 32 .text + scalbn 0x00003364 F 32 .text + __GI_sqrt 0x00003384 F 376 .text + sqrt 0x00003384 F 376 .text + ___gnu_csky_case_uqi 0x000034fc F 20 .text + ___gnu_csky_case_uhi 0x00003510 F 26 .text + __fixunssfsi 0x0000352c F 46 .text + __fixunsdfsi 0x0000355c F 56 .text + __addsf3 0x000036e0 F 42 .text + __subsf3 0x0000370c F 50 .text + __mulsf3 0x00003740 F 280 .text + __divsf3 0x00003858 F 188 .text + __nesf2 0x00003914 F 54 .text + __gesf2 0x0000394c F 56 .text + __floatsisf 0x00003984 F 100 .text + __fixsfsi 0x000039e8 F 84 .text + __extendsfdf2 0x00003a3c F 36 .text + __adddf3 0x00003d34 F 46 .text + __subdf3 0x00003d64 F 54 .text + __muldf3 0x00003d9c F 564 .text + __divdf3 0x00003fd0 F 340 .text + __gtdf2 0x00004124 F 60 .text + __gedf2 0x00004160 F 60 .text + __ledf2 0x0000419c F 58 .text + __floatsidf 0x000041d8 F 112 .text + __fixdfsi 0x00004248 F 112 .text + __make_dp 0x000042b8 F 40 .text + __truncdfsf2 0x000042e0 F 48 .text + __floatunsidf 0x00004310 F 84 .text + __muldi3 0x00004364 F 68 .text + __clzsi2 0x000043a8 F 64 .text + __pack_f 0x000043e8 F 184 .text + __unpack_f 0x000044a0 F 132 .text + __fpcmp_parts_f 0x00004524 F 120 .text + __make_fp 0x0000459c F 22 .text + __pack_d 0x000045b4 F 412 .text + __unpack_d 0x00004750 F 196 .text + __fpcmp_parts_d 0x00004814 F 140 .text + __cskyvprintfsnprintf 0x000048a0 F 32 .text + __cskyvprintfvsnprintf 0x000048fe F 90 .text + __memset_fast 0x00004958 w F 136 .text + memset 0x00004958 w F 136 .text + __memcpy_fast 0x000049e0 w F 100 .text + memcpy 0x000049e0 w F 100 .text + __GI_strncmp 0x00004a44 F 38 .text + strncmp 0x00004a44 w F 38 .text + __v2_printf 0x00004aa0 F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00004aa0 F 1828 .text + __udivdi3 0x000051c4 F 940 .text + __umoddi3 0x00005570 F 928 .text + __GI___dtostr 0x00005936 F 826 .text + __dtostr 0x00005936 F 826 .text + __isnan 0x00005c70 F 44 .text + __strlen_fast 0x00005c9c w F 82 .text + strlen 0x00005c9c w F 82 .text + __strcpy_fast 0x00005cf0 w F 176 .text + strcpy 0x00005cf0 w F 176 .text + __GI_strchr 0x00005da0 F 18 .text + strchr 0x00005da0 w F 18 .text + __GI_strerror 0x00005db4 F 28 .text + strerror 0x00005db4 F 28 .text + __isinf 0x00005dd0 F 48 .text + __eqdf2 0x00005e00 F 58 .text + __ltdf2 0x00005e3c F 58 .text + __main 0x00005e78 F 56 .text.__main + SYSCON_RST_VALUE 0x00005f24 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00005f70 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00005fa0 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00006028 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00006050 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x0000608c F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x000060a0 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x000060b8 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x000060d8 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x000060f4 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00006110 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00006150 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00006184 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00006188 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00006198 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x000061a4 F 12 .text.SYSCON_Int_Disable + SYSCON_Software_Reset 0x000061b0 F 20 .text.SYSCON_Software_Reset + SYSCON_INT_Priority 0x000061c4 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000061e8 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x00006218 F 100 .text.GPIO_DeInit + GPIO_Init 0x0000627c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000635c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00006370 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00006380 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x0000648c F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x00006588 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00006590 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00006598 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000065ae F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000065c0 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000065d4 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000065e4 F 28 .text.BT_DeInit + BT_Start 0x00006600 F 8 .text.BT_Start + BT_Soft_Reset 0x00006608 F 10 .text.BT_Soft_Reset + BT_Configure 0x00006612 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000662a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00006656 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x0000665c F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00006670 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00006680 F 24 .text.UART0_DeInit + UART1_DeInit 0x00006698 F 24 .text.UART1_DeInit + UART2_DeInit 0x000066b0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000066c8 F 28 .text.UART0_Int_Enable + UART1_Int_Enable 0x000066e4 F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00006700 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000671c F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00006808 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00006818 F 30 .text.UARTTransmit + EPT_Stop 0x00006838 F 40 .text.EPT_Stop + Page_ProgramData 0x00006860 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00006900 F 42 .text.ReadDataArry_U8 + main 0x0000692c F 68 .text.startup.main + delay_nms 0x00006970 F 44 .text.delay_nms + delay_nus 0x0000699c F 34 .text.delay_nus + BT_CONFIG 0x000069c0 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00006a20 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00006a84 F 120 .text.APT32F102_init + SYSCONIntHandler 0x00006afc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00006bec F 104 .text.IFCIntHandler + ADCIntHandler 0x00006c54 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00006cbc F 428 .text.EPT0IntHandler + WWDTHandler 0x00006e68 F 52 .text.WWDTHandler + GPT0IntHandler 0x00006e9c F 128 .text.GPT0IntHandler + RTCIntHandler 0x00006f1c F 112 .text.RTCIntHandler + UART0IntHandler 0x00006f8c F 96 .text.UART0IntHandler + UART1IntHandler 0x00006fec F 148 .text.UART1IntHandler + UART2IntHandler 0x00007080 F 96 .text.UART2IntHandler + SPI0IntHandler 0x000070e0 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000071c8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x0000721c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x0000724c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x0000727c F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000072c4 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x000072e4 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x00007350 F 52 .text.LPTIntHandler + BT0IntHandler 0x00007384 F 76 .text.BT0IntHandler + BT1IntHandler 0x000073d0 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00007440 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00007442 F 8 .text.PendTrapHandler + Trap3Handler 0x0000744a F 8 .text.Trap3Handler + Trap2Handler 0x00007452 F 8 .text.Trap2Handler + Trap1Handler 0x0000745a F 8 .text.Trap1Handler + Trap0Handler 0x00007462 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000746a F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00007472 F 8 .text.BreakPointHandler + AccessErrHandler 0x0000747a F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00007482 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x0000748a F 8 .text.MisalignedHandler + CNTAIntHandler 0x00007492 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000749a F 8 .text.I2CIntHandler + __divsi3 0x000074a4 F 36 .text.__divsi3 + __udivsi3 0x000074c8 F 36 .text.__udivsi3 + __modsi3 0x000074ec F 36 .text.__modsi3 + __umodsi3 0x00007510 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00007534 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000753a F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00007540 F 392 .text.UARTx_Init + UART0_RecvINT_Processing 0x000076c8 F 52 .text.UART0_RecvINT_Processing + UART0_TASK 0x000076fc F 96 .text.UART0_TASK + UART1_RecvINT_Processing 0x0000775c F 52 .text.UART1_RecvINT_Processing + UART2_RecvINT_Processing 0x00007790 F 52 .text.UART2_RecvINT_Processing + MCU485_SendData 0x000077c4 F 144 .text.MCU485_SendData + BUS485_Send 0x00007854 F 196 .text.BUS485_Send + Set_GroupSend 0x00007918 F 100 .text.Set_GroupSend + Clear_SendFlag 0x0000797c F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x0000798c F 12 .text.BUS485_Jump_Boot + BusIdle_Task 0x00007998 F 64 .text.BusIdle_Task + BusBusy_Task 0x000079d8 F 92 .text.BusBusy_Task + Dbg_Println 0x00007a34 F 128 .text.Dbg_Println + MultSend_Task 0x00007ab4 F 160 .text.MultSend_Task + BUS485Send_Task 0x00007b54 F 104 .text.BUS485Send_Task + Dbg_Print_Buff 0x00007bbc F 132 .text.Dbg_Print_Buff + UART1_TASK 0x00007c40 F 140 .text.UART1_TASK + UART2_TASK 0x00007ccc F 156 .text.UART2_TASK + Dbg_BT_Println 0x00007d68 F 96 .text.Dbg_BT_Println + DIP_GetSwitchState 0x00007dc8 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x00007dfc F 148 .text.DIP_Switch_Init + DIP_ScanTask 0x00007e90 F 152 .text.DIP_ScanTask + EEPROM_CheckSum 0x00007f28 F 22 .text.EEPROM_CheckSum + EEOROM_ENERGY_ReadSet 0x00007f40 F 336 .text.EEOROM_ENERGY_ReadSet + EEOROM_ENERGY_WriteSet 0x00008090 F 68 .text.EEOROM_ENERGY_WriteSet + EEPROM_ENERGY_Validate 0x000080d4 F 332 .text.EEPROM_ENERGY_Validate + EEPROM_Default_ENERGY 0x00008220 F 300 .text.EEPROM_Default_ENERGY + EEPROM_ReadTotalEng 0x0000834c F 184 .text.EEPROM_ReadTotalEng + EEPROM_WriteTotalEng 0x00008404 F 172 .text.EEPROM_WriteTotalEng + EEPROM_ReadMCUDevInfo 0x000084b0 F 212 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00008584 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x000085c4 F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x000085fc F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00008654 F 304 .text.EEPROM_Init + BLV_DetEnergy_Init 0x000087c0 F 48 .text.BLV_DetEnergy_Init + BLV_DetEnergy_Default 0x000087f0 F 184 .text.BLV_DetEnergy_Default + HLW8110_CheckSum 0x000088a8 F 24 .text.HLW8110_CheckSum + HLW8110_WriteREG_EN 0x000088c0 F 84 .text.HLW8110_WriteREG_EN + HLW8110_WriteREG_DIS 0x00008914 F 84 .text.HLW8110_WriteREG_DIS + HLW8110_Reset 0x00008968 F 80 .text.HLW8110_Reset + BLV_HLW8110_RWCMD_Packaging 0x000089b8 F 140 .text.BLV_HLW8110_RWCMD_Packaging + HLW8110_RWCMD_Send 0x00008a44 F 116 .text.HLW8110_RWCMD_Send + HLW8110_CleanSdFlag 0x00008ab8 F 16 .text.HLW8110_CleanSdFlag + Get_RevState 0x00008ac8 F 24 .text.Get_RevState + Get_SendState 0x00008ae0 F 28 .text.Get_SendState + BLV_HLW8110_SendData_Tack 0x00008afc F 484 .text.BLV_HLW8110_SendData_Tack + HLW8110_Convert_CurrentRegA_Value 0x00008ce0 F 140 .text.HLW8110_Convert_CurrentRegA_Value + HLW8110_Convert_VoltageReg_Value 0x00008d6c F 124 .text.HLW8110_Convert_VoltageReg_Value + HLW8110_Convert_PowerReg_Value 0x00008de8 F 124 .text.HLW8110_Convert_PowerReg_Value + HLW8110_Convert_EnergyReg_Value 0x00008e64 F 144 .text.HLW8110_Convert_EnergyReg_Value + HLW8110_RecvData_Processing 0x00008ef4 F 604 .text.HLW8110_RecvData_Processing + HLW8110_SysPara_Check 0x00009150 F 38 .text.HLW8110_SysPara_Check + HLW8110_ReadSysPara 0x00009178 F 596 .text.HLW8110_ReadSysPara + HLW8110_ReadSysCtrlPara 0x000093cc F 200 .text.HLW8110_ReadSysCtrlPara + GetEnergy_Para 0x00009494 F 100 .text.GetEnergy_Para + HLW8110_ReadValue 0x000094f8 F 344 .text.HLW8110_ReadValue + BLV_HLW8110_Tack 0x00009650 F 64 .text.BLV_HLW8110_Tack + BT_Uart_Packing 0x00009690 F 12 .text.BT_Uart_Packing + BT_UART_Print 0x0000969c F 260 .text.BT_UART_Print + BLV_Energy_ActiveRep_Packing 0x000097a0 F 236 .text.BLV_Energy_ActiveRep_Packing + BLV_ElectricPara_Processing 0x0000988c F 176 .text.BLV_ElectricPara_Processing + BLV_EngDetect_Tack 0x0000993c F 20 .text.BLV_EngDetect_Tack + BLV_Energy_PassiveRep_Packing 0x00009950 F 236 .text.BLV_Energy_PassiveRep_Packing + BLV_Energy_SetTime_Packing 0x00009a3c F 160 .text.BLV_Energy_SetTime_Packing + BLV_Energy_QueryVersion_Packing 0x00009adc F 152 .text.BLV_Energy_QueryVersion_Packing + SetCalibFactor_Switch 0x00009b74 F 48 .text.SetCalibFactor_Switch + BLV_Energy_SetCalibFactor 0x00009ba4 F 132 .text.BLV_Energy_SetCalibFactor + BLV_Energy_SetCalibFactor_2 0x00009c28 F 124 .text.BLV_Energy_SetCalibFactor_2 + HLW_485Recv_Processing 0x00009ca4 F 352 .text.HLW_485Recv_Processing + BT_Recv_Processing 0x00009e04 F 280 .text.BT_Recv_Processing + Boot_Function_Init 0x00009f1c F 192 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x00009fdc F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x0000a000 F 108 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x0000a06c F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x0000a080 F 540 .text.Boot_Comm_UpgradeProcess + TK_Sampling_prog 0x0000a29c F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x0000a2f4 F 136 .text.TKEYIntHandler + get_key_number 0x0000a37c F 40 .text.get_key_number + TK_Scan_Start 0x0000a3a4 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x0000a3c4 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000a544 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000a660 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x0000a830 F 84 .text.TK_result_prog + CORETHandler 0x0000a884 F 120 .text.CORETHandler + std_clk_calib 0x0000a8fc F 644 .text.std_clk_calib + __thenan_sf 0x0000abc8 O 16 .rodata + __thenan_df 0x0000abd8 O 20 .rodata + __clz_tab 0x0000abec O 256 .rodata + _end_rodata 0x0000c258 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + Project_Boot_Support 0x2000009c O 32 .textcsky.VinFlash + _bss_start 0x200000bc 0 .bss + SysTick_100us 0x200000c0 O 4 .bss + SysTick_1ms 0x200000c4 O 4 .bss + RS485_Comming 0x200000c8 O 4 .bss + RS485_Comm_Flag 0x200000cc O 4 .bss + RS485_Comm_Start 0x200000d0 O 4 .bss + RS485_Comm_End 0x200000d4 O 4 .bss + Dbg_Switch 0x200000d8 O 4 .bss + SysTick_Now 0x200000dc O 4 .bss + SysTick_Last 0x200000e0 O 4 .bss + SysTick_Diff 0x200000e4 O 4 .bss + Dbg_Buffer 0x200000e8 O 128 .bss + Press_debounce_data 0x20000184 O 1 .bss + TK_Lowpower_mode 0x20000185 O 1 .bss + TK_Lowpower_level 0x20000186 O 1 .bss + TK_longpress_time 0x20000188 O 4 .bss + Release_debounce_data 0x2000018c O 1 .bss + Key_mode 0x2000018d O 1 .bss + TK_icon 0x2000018e O 34 .bss + MultiTimes_Filter 0x200001b0 O 1 .bss + Base_Speed 0x200001b1 O 1 .bss + TK_IO_ENABLE 0x200001b4 O 4 .bss + Valid_Key_Num 0x200001b8 O 1 .bss + TK_senprd 0x200001ba O 34 .bss + TK_Wakeup_level 0x200001dc O 1 .bss + TK_Triggerlevel 0x200001de O 34 .bss + TK_EC_LEVEL 0x20000200 O 2 .bss + TK_FVR_LEVEL 0x20000202 O 2 .bss + TK_BaseCnt 0x20000204 O 4 .bss + TK_PSEL_MODE 0x20000208 O 2 .bss + R_CMPB_BUF 0x2000020c O 4 .bss + R_CMPA_BUF 0x20000210 O 4 .bss + R_SIORX_buf 0x20000214 O 40 .bss + g_uart 0x2000023c O 148 .bss + g_uart0 0x200002d0 O 148 .bss + g_uart1 0x20000364 O 148 .bss + m_send 0x200003f8 O 136 .bss + g_Dip 0x20000480 O 20 .bss + e_save 0x20000494 O 44 .bss + g_mcu_dev 0x200004c0 O 37 .bss + eng_info 0x200004e8 O 12 .bss + u_det 0x200004f4 O 72 .bss + g_CalFactor 0x2000053c O 60 .bss + g_Eng 0x20000578 O 120 .bss + g_boot 0x200005f0 O 316 .bss + g_app_feature 0x2000072c O 256 .bss + baseline_data0 0x2000082c O 34 .bss + TK_Postive_build2 0x2000084e O 17 .bss + Key_Map1 0x20000860 O 4 .bss + offset_data2_abs 0x20000864 O 34 .bss + scan_f 0x20000886 O 1 .bss + offset_data1_abs 0x20000888 O 34 .bss + Release_debounce0 0x200008aa O 17 .bss + Key_Map0 0x200008bc O 4 .bss + bsae_over_f 0x200008c0 O 1 .bss + scan_cnt 0x200008c2 O 2 .bss + Press_debounce0 0x200008c4 O 17 .bss + offset_data0 0x200008d6 O 34 .bss + sampling_data1 0x200008f8 O 34 .bss + Key_Map2 0x2000091c O 4 .bss + Release_debounce1 0x20000920 O 17 .bss + tk_overflow_f 0x20000931 O 1 .bss + TK_Negtive_build2 0x20000932 O 17 .bss + base_update_f 0x20000943 O 1 .bss + TK_Postive_build1 0x20000944 O 17 .bss + time_cnt 0x20000958 O 4 .bss + lpt_scan_pend_cnt 0x2000095c O 2 .bss + TK_track_cnt 0x2000095e O 1 .bss + Key_Map 0x20000960 O 4 .bss + baseline_data1 0x20000964 O 34 .bss + TK_Postive_build0 0x20000986 O 17 .bss + sampling_data2 0x20000998 O 34 .bss + offset_data1 0x200009ba O 34 .bss + TK_ovrdect_cnt 0x200009dc O 1 .bss + Press_debounce2 0x200009dd O 17 .bss + TK_Negtive_build1 0x200009ee O 17 .bss + tk_num 0x200009ff O 1 .bss + TK_Negtive_build0 0x20000a00 O 17 .bss + Press_debounce1 0x20000a11 O 17 .bss + Release_debounce2 0x20000a22 O 17 .bss + r_Key_Map_Temp 0x20000a34 O 4 .bss + tk_seque 0x20000a38 O 17 .bss + scan_step 0x20000a49 O 1 .bss + baseline_data2 0x20000a4a O 34 .bss + tk_sampling_max 0x20000a6c O 34 .bss + offset_data0_abs 0x20000a8e O 34 .bss + offset_data2 0x20000ab0 O 34 .bss + sampling_data0 0x20000ad2 O 34 .bss + errno 0x20000af4 O 4 .bss + __malloc_lock 0x20000af8 O 4 .bss + _ebss 0x20000afc 0 .bss + _end 0x20000afc 0 .bss + end 0x20000afc 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000290c + + Region ROM (Base: 0x00002800, Size: 0x00009a58, Max: 0x0000d800) + + Base Addr Size Type Attr Idx Section Name Object + 0x00002800 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000029b4 0x000009aa Code RO 1068 .text pow.o + 0x0000335e 0x00000006 Code RO 1076 .text fabs.o + 0x00003364 0x00000020 Code RO 1082 .text scalbn.o + 0x00003384 0x00000178 Code RO 1089 .text sqrt.o + 0x000034fc 0x00000014 Code RO 1100 .text _csky_case_uqi.o + 0x00003510 0x0000001a Code RO 1105 .text _csky_case_uhi.o + 0x0000352a 0x00000002 PAD + 0x0000352c 0x0000002e Code RO 1110 .text _fixunssfsi.o + 0x0000355a 0x00000002 PAD + 0x0000355c 0x00000038 Code RO 1117 .text _fixunsdfsi.o + 0x00003594 0x000001aa Code RO 1124 .text _addsub_sf.o + 0x0000373e 0x00000002 PAD + 0x00003740 0x00000118 Code RO 1131 .text _mul_sf.o + 0x00003858 0x000000bc Code RO 1138 .text _div_sf.o + 0x00003914 0x00000036 Code RO 1145 .text _ne_sf.o + 0x0000394a 0x00000002 PAD + 0x0000394c 0x00000038 Code RO 1152 .text _ge_sf.o + 0x00003984 0x00000064 Code RO 1159 .text _si_to_sf.o + 0x000039e8 0x00000054 Code RO 1166 .text _sf_to_si.o + 0x00003a3c 0x00000024 Code RO 1173 .text _sf_to_df.o + 0x00003a60 0x0000033a Code RO 1187 .text _addsub_df.o + 0x00003d9a 0x00000002 PAD + 0x00003d9c 0x00000234 Code RO 1194 .text _mul_df.o + 0x00003fd0 0x00000154 Code RO 1201 .text _div_df.o + 0x00004124 0x0000003c Code RO 1208 .text _gt_df.o + 0x00004160 0x0000003c Code RO 1215 .text _ge_df.o + 0x0000419c 0x0000003a Code RO 1222 .text _le_df.o + 0x000041d6 0x00000002 PAD + 0x000041d8 0x00000070 Code RO 1229 .text _si_to_df.o + 0x00004248 0x00000070 Code RO 1236 .text _df_to_si.o + 0x000042b8 0x00000028 Code RO 1243 .text _make_df.o + 0x000042e0 0x00000030 Code RO 1250 .text _df_to_sf.o + 0x00004310 0x00000054 Code RO 1264 .text _usi_to_df.o + 0x00004364 0x00000044 Code RO 1271 .text _muldi3.o + 0x000043a8 0x00000040 Code RO 1278 .text _clzsi2.o + 0x000043e8 0x000000b8 Code RO 1284 .text _pack_sf.o + 0x000044a0 0x00000084 Code RO 1291 .text _unpack_sf.o + 0x00004524 0x00000078 Code RO 1298 .text _fpcmp_parts_sf.o + 0x0000459c 0x00000016 Code RO 1305 .text _make_sf.o + 0x000045b2 0x00000002 PAD + 0x000045b4 0x0000019c Code RO 1312 .text _pack_df.o + 0x00004750 0x000000c4 Code RO 1319 .text _unpack_df.o + 0x00004814 0x0000008c Code RO 1326 .text _fpcmp_parts_df.o + 0x000048a0 0x00000020 Code RO 1347 .text snprintf_required.o + 0x000048c0 0x00000098 Code RO 1354 .text vsnprintf_required.o + 0x00004958 0x00000088 Code RO 1361 .text memset_fast.o + 0x000049e0 0x00000064 Code RO 1366 .text memcpy_fast.o + 0x00004a44 0x00000026 Code RO 1372 .text strncmp.o + 0x00004a6a 0x00000002 PAD + 0x00004a6c 0x00000758 Code RO 1530 .text __v2_printfDFHLlMOPpSSsWp.o + 0x000051c4 0x000003ac Code RO 1589 .text _udivdi3.o + 0x00005570 0x000003a0 Code RO 1596 .text _umoddi3.o + 0x00005910 0x00000360 Code RO 1617 .text __dtostr.o + 0x00005c70 0x0000002c Code RO 1625 .text __isnan.o + 0x00005c9c 0x00000052 Code RO 1637 .text strlen_fast.o + 0x00005cee 0x00000002 PAD + 0x00005cf0 0x000000b0 Code RO 1642 .text strcpy_fast.o + 0x00005da0 0x00000012 Code RO 1647 .text strchr.o + 0x00005db2 0x00000002 PAD + 0x00005db4 0x0000001c Code RO 1652 .text strerror.o + 0x00005dd0 0x00000030 Code RO 1660 .text __isinf.o + 0x00005e00 0x0000003a Code RO 1666 .text _eq_df.o + 0x00005e3a 0x00000002 PAD + 0x00005e3c 0x0000003a Code RO 1673 .text _lt_df.o + 0x00005e78 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00005eb0 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00005f24 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00005f70 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00005fa0 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00006028 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00006050 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000608c 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x000060a0 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x000060b8 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x000060d8 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000060f4 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006110 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006150 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006184 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00006188 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006198 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000061a4 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x000061b0 0x00000014 Code RO 111 .text.SYSCON_Software_Reset Obj/FWlib_apt32f102_syscon.o + 0x000061c4 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000061e8 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00006218 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x0000627c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000635c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00006370 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00006380 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x0000648c 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00006588 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00006590 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00006598 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000065ae 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000065c0 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000065d4 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000065e4 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00006600 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00006608 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00006612 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000662a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00006656 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x0000665c 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00006670 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00006680 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00006698 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066b0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066c8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000066e4 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00006700 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000671c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00006808 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00006818 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00006838 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00006860 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00006900 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x0000692c 0x00000044 Code RO 690 .text.startup.main Obj/main.o + 0x00006970 0x0000002c Code RO 708 .text.delay_nms Obj/mcu_initial.o + 0x0000699c 0x00000022 Code RO 709 .text.delay_nus Obj/mcu_initial.o + 0x000069c0 0x00000060 Code RO 713 .text.BT_CONFIG Obj/mcu_initial.o + 0x00006a20 0x00000062 Code RO 719 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00006a84 0x00000078 Code RO 720 .text.APT32F102_init Obj/mcu_initial.o + 0x00006afc 0x000000f0 Code RO 736 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00006bec 0x00000068 Code RO 737 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00006c54 0x00000068 Code RO 738 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00006cbc 0x000001ac Code RO 739 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00006e68 0x00000034 Code RO 740 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00006e9c 0x00000080 Code RO 741 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00006f1c 0x00000070 Code RO 742 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00006f8c 0x00000060 Code RO 743 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00006fec 0x00000094 Code RO 744 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00007080 0x00000060 Code RO 745 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000070e0 0x000000e8 Code RO 746 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000071c8 0x00000054 Code RO 747 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x0000721c 0x00000030 Code RO 748 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x0000724c 0x00000030 Code RO 749 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x0000727c 0x00000048 Code RO 750 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000072c4 0x00000020 Code RO 751 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x000072e4 0x0000006c Code RO 752 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00007350 0x00000034 Code RO 753 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00007384 0x0000004c Code RO 754 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000073d0 0x00000070 Code RO 755 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00007440 0x00000002 Code RO 756 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00007442 0x00000008 Code RO 758 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000744a 0x00000008 Code RO 759 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00007452 0x00000008 Code RO 760 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000745a 0x00000008 Code RO 761 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00007462 0x00000008 Code RO 762 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000746a 0x00000008 Code RO 763 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00007472 0x00000008 Code RO 764 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x0000747a 0x00000008 Code RO 765 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00007482 0x00000008 Code RO 766 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x0000748a 0x00000008 Code RO 767 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00007492 0x00000008 Code RO 768 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000749a 0x00000008 Code RO 769 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000074a4 0x00000024 Code RO 786 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000074c8 0x00000024 Code RO 787 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000074ec 0x00000024 Code RO 788 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00007510 0x00000024 Code RO 789 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00007534 0x00000006 Code RO 807 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000753a 0x00000006 Code RO 808 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00007540 0x00000188 Code RO 822 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000076c8 0x00000034 Code RO 823 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000076fc 0x00000060 Code RO 824 .text.UART0_TASK Obj/SYSTEM_uart.o + 0x0000775c 0x00000034 Code RO 825 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00007790 0x00000034 Code RO 826 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000077c4 0x00000090 Code RO 828 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00007854 0x000000c4 Code RO 829 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00007918 0x00000064 Code RO 830 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000797c 0x00000010 Code RO 831 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000798c 0x0000000c Code RO 832 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00007998 0x00000040 Code RO 834 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000079d8 0x0000005c Code RO 835 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00007a34 0x00000080 Code RO 837 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00007ab4 0x000000a0 Code RO 838 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00007b54 0x00000068 Code RO 839 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00007bbc 0x00000084 Code RO 840 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00007c40 0x0000008c Code RO 841 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x00007ccc 0x0000009c Code RO 842 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00007d68 0x00000060 Code RO 843 .text.Dbg_BT_Println Obj/SYSTEM_uart.o + 0x00007dc8 0x00000034 Code RO 861 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x00007dfc 0x00000094 Code RO 862 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x00007e90 0x00000098 Code RO 863 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00007f28 0x00000016 Code RO 881 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00007f40 0x00000150 Code RO 882 .text.EEOROM_ENERGY_ReadSet Obj/SYSTEM_eeprom.o + 0x00008090 0x00000044 Code RO 883 .text.EEOROM_ENERGY_WriteSet Obj/SYSTEM_eeprom.o + 0x000080d4 0x0000014c Code RO 884 .text.EEPROM_ENERGY_Validate Obj/SYSTEM_eeprom.o + 0x00008220 0x0000012c Code RO 885 .text.EEPROM_Default_ENERGY Obj/SYSTEM_eeprom.o + 0x0000834c 0x000000b8 Code RO 886 .text.EEPROM_ReadTotalEng Obj/SYSTEM_eeprom.o + 0x00008404 0x000000ac Code RO 887 .text.EEPROM_WriteTotalEng Obj/SYSTEM_eeprom.o + 0x000084b0 0x000000d4 Code RO 891 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008584 0x00000040 Code RO 892 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085c4 0x00000038 Code RO 893 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085fc 0x00000058 Code RO 894 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008654 0x00000130 Code RO 895 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00008784 0x0000003c Code RO 913 .text.BT_Uart_Packing.part.3 Obj/SYSTEM_det_energy.o + 0x000087c0 0x00000030 Code RO 914 .text.BLV_DetEnergy_Init Obj/SYSTEM_det_energy.o + 0x000087f0 0x000000b8 Code RO 915 .text.BLV_DetEnergy_Default Obj/SYSTEM_det_energy.o + 0x000088a8 0x00000018 Code RO 916 .text.HLW8110_CheckSum Obj/SYSTEM_det_energy.o + 0x000088c0 0x00000054 Code RO 917 .text.HLW8110_WriteREG_EN Obj/SYSTEM_det_energy.o + 0x00008914 0x00000054 Code RO 918 .text.HLW8110_WriteREG_DIS Obj/SYSTEM_det_energy.o + 0x00008968 0x00000050 Code RO 919 .text.HLW8110_Reset Obj/SYSTEM_det_energy.o + 0x000089b8 0x0000008c Code RO 920 .text.BLV_HLW8110_RWCMD_Packaging Obj/SYSTEM_det_energy.o + 0x00008a44 0x00000074 Code RO 921 .text.HLW8110_RWCMD_Send Obj/SYSTEM_det_energy.o + 0x00008ab8 0x00000010 Code RO 922 .text.HLW8110_CleanSdFlag Obj/SYSTEM_det_energy.o + 0x00008ac8 0x00000018 Code RO 923 .text.Get_RevState Obj/SYSTEM_det_energy.o + 0x00008ae0 0x0000001c Code RO 924 .text.Get_SendState Obj/SYSTEM_det_energy.o + 0x00008afc 0x000001e4 Code RO 926 .text.BLV_HLW8110_SendData_Tack Obj/SYSTEM_det_energy.o + 0x00008ce0 0x0000008c Code RO 927 .text.HLW8110_Convert_CurrentRegA_Value Obj/SYSTEM_det_energy.o + 0x00008d6c 0x0000007c Code RO 928 .text.HLW8110_Convert_VoltageReg_Value Obj/SYSTEM_det_energy.o + 0x00008de8 0x0000007c Code RO 929 .text.HLW8110_Convert_PowerReg_Value Obj/SYSTEM_det_energy.o + 0x00008e64 0x00000090 Code RO 930 .text.HLW8110_Convert_EnergyReg_Value Obj/SYSTEM_det_energy.o + 0x00008ef4 0x0000025c Code RO 931 .text.HLW8110_RecvData_Processing Obj/SYSTEM_det_energy.o + 0x00009150 0x00000026 Code RO 932 .text.HLW8110_SysPara_Check Obj/SYSTEM_det_energy.o + 0x00009178 0x00000254 Code RO 933 .text.HLW8110_ReadSysPara Obj/SYSTEM_det_energy.o + 0x000093cc 0x000000c8 Code RO 934 .text.HLW8110_ReadSysCtrlPara Obj/SYSTEM_det_energy.o + 0x00009494 0x00000064 Code RO 935 .text.GetEnergy_Para Obj/SYSTEM_det_energy.o + 0x000094f8 0x00000158 Code RO 936 .text.HLW8110_ReadValue Obj/SYSTEM_det_energy.o + 0x00009650 0x00000040 Code RO 937 .text.BLV_HLW8110_Tack Obj/SYSTEM_det_energy.o + 0x00009690 0x0000000c Code RO 938 .text.BT_Uart_Packing Obj/SYSTEM_det_energy.o + 0x0000969c 0x00000104 Code RO 939 .text.BT_UART_Print Obj/SYSTEM_det_energy.o + 0x000097a0 0x000000ec Code RO 940 .text.BLV_Energy_ActiveRep_Packing Obj/SYSTEM_det_energy.o + 0x0000988c 0x000000b0 Code RO 941 .text.BLV_ElectricPara_Processing Obj/SYSTEM_det_energy.o + 0x0000993c 0x00000014 Code RO 942 .text.BLV_EngDetect_Tack Obj/SYSTEM_det_energy.o + 0x00009950 0x000000ec Code RO 943 .text.BLV_Energy_PassiveRep_Packing Obj/SYSTEM_det_energy.o + 0x00009a3c 0x000000a0 Code RO 944 .text.BLV_Energy_SetTime_Packing Obj/SYSTEM_det_energy.o + 0x00009adc 0x00000098 Code RO 945 .text.BLV_Energy_QueryVersion_Packing Obj/SYSTEM_det_energy.o + 0x00009b74 0x00000030 Code RO 946 .text.SetCalibFactor_Switch Obj/SYSTEM_det_energy.o + 0x00009ba4 0x00000084 Code RO 947 .text.BLV_Energy_SetCalibFactor Obj/SYSTEM_det_energy.o + 0x00009c28 0x0000007c Code RO 948 .text.BLV_Energy_SetCalibFactor_2 Obj/SYSTEM_det_energy.o + 0x00009ca4 0x00000160 Code RO 949 .text.HLW_485Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009e04 0x00000118 Code RO 950 .text.BT_Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009f1c 0x000000c0 Code RO 969 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x00009fdc 0x00000024 Code RO 970 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x0000a000 0x0000006c Code RO 972 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x0000a06c 0x00000014 Code RO 976 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x0000a080 0x0000021c Code RO 977 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x0000a29c 0x00000058 Code RO 1014 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a2f4 0x00000088 Code RO 1018 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a37c 0x00000028 Code RO 1019 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x0000a3a4 0x00000020 Code RO 1021 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x0000a3c4 0x00000180 Code RO 1022 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a544 0x0000011c Code RO 1023 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x0000a660 0x000001d0 Code RO 1024 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x0000a830 0x00000054 Code RO 1025 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a884 0x00000078 Code RO 1026 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a8fc 0x00000284 Code RO 1048 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000ab80 0x00000017 Data RO 951 .rodata Obj/SYSTEM_det_energy.o + 0x0000ab97 0x00000001 PAD + 0x0000ab98 0x00000030 Data RO 1071 .rodata pow.o + 0x0000abc8 0x00000010 Data RO 1183 .rodata _thenan_sf.o + 0x0000abd8 0x00000014 Data RO 1260 .rodata _thenan_df.o + 0x0000abec 0x00000100 Data RO 1336 .rodata _clz.o + 0x0000acec 0x00000020 Data RO 1533 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x0000ad0c 0x00000240 Data RO 1655 .rodata strerror.o + 0x0000af4c 0x00000021 Data RO 691 .rodata.str1.1 Obj/main.o + 0x0000af6d 0x000000a4 Data RO 844 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x0000b011 0x00000023 Data RO 864 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x0000b034 0x000003b6 Data RO 896 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000b3ea 0x000003c1 Data RO 952 .rodata.str1.1 Obj/SYSTEM_det_energy.o + 0x0000b7ab 0x000002fb Data RO 981 .rodata.str1.1 Obj/SYSTEM_Bootload_fun.o + 0x0000baa6 0x00000022 Data RO 1534 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x0000bac8 0x00000008 Data RO 1620 .rodata.str1.1 __dtostr.o + 0x0000bad0 0x00000787 Data RO 1656 .rodata.str1.1 strerror.o + 0x0000c257 0x00000001 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000afc, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 784 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 1005 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x00000020 Data RW 692 .textcsky.VinFlash Obj/main.o + 0x200000bc 0x0000000c Zero RW 735 .bss Obj/mcu_interrupt.o + 0x200000c8 0x000000a0 Zero RW 821 .bss Obj/SYSTEM_uart.o + 0x20000168 0x00000004 Zero RW 860 .bss Obj/SYSTEM_dip_switch.o + 0x2000016c 0x00000018 Zero RW 912 .bss Obj/SYSTEM_det_energy.o + 0x20000184 0x00000086 Zero RW 704 COMMON Obj/main.o + 0x2000020a 0x00000002 PAD + 0x2000020c 0x00000030 Zero RW 782 COMMON Obj/mcu_interrupt.o + 0x2000023c 0x00000244 Zero RW 857 COMMON Obj/SYSTEM_uart.o + 0x20000480 0x00000014 Zero RW 877 COMMON Obj/SYSTEM_dip_switch.o + 0x20000494 0x00000060 Zero RW 909 COMMON Obj/SYSTEM_eeprom.o + 0x200004f4 0x000000fc Zero RW 965 COMMON Obj/SYSTEM_det_energy.o + 0x200005f0 0x0000023c Zero RW 994 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000082c 0x000002c8 Zero RW 1044 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000af4 0x00000008 Zero RW 1610 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 282 Obj/arch_crt0.o + 56 0 0 0 816 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 872 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 932 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13549 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 438 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 68 33 32 134 12757 Obj/main.o + 392 0 0 0 16599 Obj/mcu_initial.o + 2470 0 0 60 15410 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 2184 164 0 740 17321 Obj/SYSTEM_uart.o + 352 35 0 24 11554 Obj/SYSTEM_dip_switch.o + 2138 950 0 96 17222 Obj/SYSTEM_eeprom.o + 6038 984 0 276 22600 Obj/SYSTEM_det_energy.o + 896 763 0 572 16797 Obj/SYSTEM_Bootload_fun.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 17860 2929 136 1902 272597 Object Totals + 22 2 3 2 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 26 0 0 0 0 _csky_case_uhi.o + 46 0 0 0 0 _fixunssfsi.o + 56 0 0 0 0 _fixunsdfsi.o + 426 0 0 0 0 _addsub_sf.o + 280 0 0 0 0 _mul_sf.o + 188 0 0 0 0 _div_sf.o + 54 0 0 0 0 _ne_sf.o + 56 0 0 0 0 _ge_sf.o + 100 0 0 0 0 _si_to_sf.o + 84 0 0 0 0 _sf_to_si.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 40 0 0 0 0 _make_df.o + 48 0 0 0 0 _df_to_sf.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 184 0 0 0 0 _pack_sf.o + 132 0 0 0 0 _unpack_sf.o + 120 0 0 0 0 _fpcmp_parts_sf.o + 22 0 0 0 0 _make_sf.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 6882 292 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 38 0 0 0 0 strncmp.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3598 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 33642 5848 188 2624 297611 Grand Totals + 33642 5848 188 2624 297611 Elf Image Totals + 33642 5848 188 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 39490 ( 38.56kB) +Total RW Size (RW Data + ZI Data) 2812 ( 2.75kB) +Total ROM Size (Code + RO Data + RW Data) 39678 ( 38.75kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251106.asm b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251106.asm new file mode 100644 index 0000000..df3a322 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251106.asm @@ -0,0 +1,20184 @@ + +.//Obj/BLV_CS_AC100_V03_20251106.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00002800 : + 2800: 0000290c .long 0x0000290c + 2804: 0000748a .long 0x0000748a + 2808: 0000747a .long 0x0000747a + 280c: 00002984 .long 0x00002984 + 2810: 00007482 .long 0x00007482 + 2814: 00007440 .long 0x00007440 + 2818: 00002984 .long 0x00002984 + 281c: 00007472 .long 0x00007472 + 2820: 0000746a .long 0x0000746a + 2824: 00002984 .long 0x00002984 + 2828: 00002984 .long 0x00002984 + 282c: 00002984 .long 0x00002984 + 2830: 00002984 .long 0x00002984 + 2834: 00002984 .long 0x00002984 + 2838: 00002984 .long 0x00002984 + 283c: 00002984 .long 0x00002984 + 2840: 00007462 .long 0x00007462 + 2844: 0000745a .long 0x0000745a + 2848: 00007452 .long 0x00007452 + 284c: 0000744a .long 0x0000744a + 2850: 00002984 .long 0x00002984 + 2854: 00002984 .long 0x00002984 + 2858: 00002984 .long 0x00002984 + 285c: 00002984 .long 0x00002984 + 2860: 00002984 .long 0x00002984 + 2864: 00002984 .long 0x00002984 + 2868: 00002984 .long 0x00002984 + 286c: 00002984 .long 0x00002984 + 2870: 00002984 .long 0x00002984 + 2874: 00002984 .long 0x00002984 + 2878: 00002984 .long 0x00002984 + 287c: 00007442 .long 0x00007442 + 2880: 0000a8a8 .long 0x0000a8a8 + 2884: 00006afc .long 0x00006afc + 2888: 00006bec .long 0x00006bec + 288c: 00006c54 .long 0x00006c54 + 2890: 00006cbc .long 0x00006cbc + 2894: 00002984 .long 0x00002984 + 2898: 00006e68 .long 0x00006e68 + 289c: 0000721c .long 0x0000721c + 28a0: 0000724c .long 0x0000724c + 28a4: 00006e9c .long 0x00006e9c + 28a8: 00002984 .long 0x00002984 + 28ac: 00002984 .long 0x00002984 + 28b0: 00006f1c .long 0x00006f1c + 28b4: 00006f8c .long 0x00006f8c + 28b8: 00006fec .long 0x00006fec + 28bc: 00007080 .long 0x00007080 + 28c0: 00002984 .long 0x00002984 + 28c4: 0000749a .long 0x0000749a + 28c8: 00002984 .long 0x00002984 + 28cc: 000070e0 .long 0x000070e0 + 28d0: 000071c8 .long 0x000071c8 + 28d4: 0000727c .long 0x0000727c + 28d8: 000072c4 .long 0x000072c4 + 28dc: 000072e4 .long 0x000072e4 + 28e0: 00007492 .long 0x00007492 + 28e4: 0000a318 .long 0x0000a318 + 28e8: 00007350 .long 0x00007350 + 28ec: 00002984 .long 0x00002984 + 28f0: 00007384 .long 0x00007384 + 28f4: 000073d0 .long 0x000073d0 + 28f8: 00002984 .long 0x00002984 + 28fc: 00002984 .long 0x00002984 + 2900: 55aa0005 .long 0x55aa0005 + ... + +0000290c <__start>: +// .long __start +__start: + + + //initialize all registers + movi r0, 0 + 290c: 3000 movi r0, 0 + movi r1, 0 + 290e: 3100 movi r1, 0 + movi r2, 0 + 2910: 3200 movi r2, 0 + movi r3, 0 + 2912: 3300 movi r3, 0 + movi r4, 0 + 2914: 3400 movi r4, 0 + movi r5, 0 + 2916: 3500 movi r5, 0 + movi r6, 0 + 2918: 3600 movi r6, 0 + movi r7, 0 + 291a: 3700 movi r7, 0 + //movi r13, 0 + //movi r14, 0 + //movi r15, 0 + +//set VBR + lrw r2, vector_table + 291c: 105b lrw r2, 0x2800 // 2988 + mtcr r2, cr<1,0> + 291e: c0026421 mtcr r2, cr<1, 0> + +//enable EE bit of psr + mfcr r2, cr<0,0> + 2922: c0006022 mfcr r2, cr<0, 0> + bseti r2, r2, 8 + 2926: 3aa8 bseti r2, 8 + mtcr r2, cr<0,0> + 2928: 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 + 292c: 1038 lrw r1, 0xe000ef90 // 298c + movi r2, 0x0 + 292e: 3200 movi r2, 0 + st.w r2, (r1, 0x0) + 2930: b140 st.w r2, (r1, 0x0) + + + +//initialize kernel stack + lrw r7, __kernel_stack + 2932: 10f8 lrw r7, 0x20000ff8 // 2990 + mov r14,r7 + 2934: 6f9f mov r14, r7 + subi r6,r7,0x4 + 2936: 5fcf subi r6, r7, 4 + + //lrw r3, 0x40 + lrw r3, 0x04 + 2938: 3304 movi r3, 4 + + subu r4, r7, r3 + 293a: 5f8d subu r4, r7, r3 + lrw r5, 0x0 + 293c: 3500 movi r5, 0 + +0000293e : +INIT_KERLE_STACK: + addi r4, 0x4 + 293e: 2403 addi r4, 4 + st.w r5, (r4) + 2940: b4a0 st.w r5, (r4, 0x0) + //cmphs r7, r4 + cmphs r6, r4 + 2942: 6518 cmphs r6, r4 + bt INIT_KERLE_STACK + 2944: 0bfd bt 0x293e // 293e + +00002946 <__to_main>: + +__to_main: + lrw r0,__main + 2946: 1014 lrw r0, 0x5e78 // 2994 + jsr r0 + 2948: 7bc1 jsr r0 + mov r0, r0 + 294a: 6c03 mov r0, r0 + mov r0, r0 + 294c: 6c03 mov r0, r0 + + + + lrw r15, __exit + 294e: ea8f0013 lrw r15, 0x2960 // 2998 + lrw r0,main + 2952: 1013 lrw r0, 0x692c // 299c + jmp r0 + 2954: 7800 jmp r0 + mov r0, r0 + 2956: 6c03 mov r0, r0 + mov r0, r0 + 2958: 6c03 mov r0, r0 + mov r0, r0 + 295a: 6c03 mov r0, r0 + mov r0, r0 + 295c: 6c03 mov r0, r0 + mov r0, r0 + 295e: 6c03 mov r0, r0 + +00002960 <__exit>: + +.export __exit +__exit: + + lrw r4, 0x20003000 + 2960: 1090 lrw r4, 0x20003000 // 29a0 + //lrw r5, 0x0 + mov r5, r0 + 2962: 6d43 mov r5, r0 + st.w r5, (r4) + 2964: b4a0 st.w r5, (r4, 0x0) + + mfcr r1, cr<0,0> + 2966: c0006021 mfcr r1, cr<0, 0> + lrw r1, 0xFFFF + 296a: 102f lrw r1, 0xffff // 29a4 + mtcr r1, cr<11,0> + 296c: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xFFF + 2970: 102e lrw r1, 0xfff // 29a8 + movi r0, 0x0 + 2972: 3000 movi r0, 0 + st r1, (r0) + 2974: b020 st.w r1, (r0, 0x0) + +00002976 <__fail>: + +.export __fail +__fail: + lrw r1, 0xEEEE + 2976: 102e lrw r1, 0xeeee // 29ac + mtcr r1, cr<11,0> + 2978: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xEEE + 297c: 102d lrw r1, 0xeee // 29b0 + movi r0, 0x0 + 297e: 3000 movi r0, 0 + st r1, (r0) + 2980: b020 st.w r1, (r0, 0x0) + +00002982 <__dummy>: + +__dummy: + br __fail + 2982: 07fa br 0x2976 // 2976 <__fail> + +00002984 : + +.export DummyHandler +DummyHandler: + br __fail + 2984: 07f9 br 0x2976 // 2976 <__fail> + 2986: 0000 .short 0x0000 + 2988: 00002800 .long 0x00002800 + 298c: e000ef90 .long 0xe000ef90 + 2990: 20000ff8 .long 0x20000ff8 + 2994: 00005e78 .long 0x00005e78 + 2998: 00002960 .long 0x00002960 + 299c: 0000692c .long 0x0000692c + 29a0: 20003000 .long 0x20003000 + 29a4: 0000ffff .long 0x0000ffff + 29a8: 00000fff .long 0x00000fff + 29ac: 0000eeee .long 0x0000eeee + 29b0: 00000eee .long 0x00000eee + +000029b4 <__GI_pow>: + 29b4: 14d4 push r4-r7, r15 + 29b6: 142d subi r14, r14, 52 + 29b8: b860 st.w r3, (r14, 0x0) + 29ba: 4361 lsli r3, r3, 1 + 29bc: 4b81 lsri r4, r3, 1 + 29be: b842 st.w r2, (r14, 0x8) + 29c0: 6c90 or r2, r4 + 29c2: 3a40 cmpnei r2, 0 + 29c4: 6dc3 mov r7, r0 + 29c6: 6d87 mov r6, r1 + 29c8: 0803 bt 0x29ce // 29ce <__GI_pow+0x1a> + 29ca: e8000462 br 0x328e // 328e <__GI_pow+0x8da> + 29ce: 41a1 lsli r5, r1, 1 + 29d0: 4da1 lsri r5, r5, 1 + 29d2: 0055 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 29d4: 6549 cmplt r2, r5 + 29d6: 080c bt 0x29ee // 29ee <__GI_pow+0x3a> + 29d8: 6496 cmpne r5, r2 + 29da: 0803 bt 0x29e0 // 29e0 <__GI_pow+0x2c> + 29dc: 3840 cmpnei r0, 0 + 29de: 0808 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e0: 6509 cmplt r2, r4 + 29e2: 0806 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e4: 6492 cmpne r4, r2 + 29e6: 080e bt 0x2a02 // 2a02 <__GI_pow+0x4e> + 29e8: 9802 ld.w r0, (r14, 0x8) + 29ea: 3840 cmpnei r0, 0 + 29ec: 0c0b bf 0x2a02 // 2a02 <__GI_pow+0x4e> + 29ee: 9842 ld.w r2, (r14, 0x8) + 29f0: 9860 ld.w r3, (r14, 0x0) + 29f2: 6c1f mov r0, r7 + 29f4: 6c5b mov r1, r6 + 29f6: e000099f bsr 0x3d34 // 3d34 <__adddf3> + 29fa: 6d03 mov r4, r0 + 29fc: 6c13 mov r0, r4 + 29fe: 140d addi r14, r14, 52 + 2a00: 1494 pop r4-r7, r15 + 2a02: 3edf btsti r6, 31 + 2a04: 0c51 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a06: 0121 lrw r1, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2a08: 2900 subi r1, 1 + 2a0a: 6505 cmplt r1, r4 + 2a0c: 084b bt 0x2aa2 // 2aa2 <__GI_pow+0xee> + 2a0e: 0162 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a10: 2b00 subi r3, 1 + 2a12: 650d cmplt r3, r4 + 2a14: 0c49 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a16: 5454 asri r2, r4, 20 + 2a18: 0104 lrw r0, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2a1a: 6080 addu r2, r0 + 2a1c: 3a34 cmplti r2, 21 + 2a1e: 0821 bt 0x2a60 // 2a60 <__GI_pow+0xac> + 2a20: 3334 movi r3, 52 + 2a22: 60ca subu r3, r2 + 2a24: 9842 ld.w r2, (r14, 0x8) + 2a26: 708d lsr r2, r3 + 2a28: 6c4b mov r1, r2 + 2a2a: 704c lsl r1, r3 + 2a2c: 9802 ld.w r0, (r14, 0x8) + 2a2e: 6442 cmpne r0, r1 + 2a30: 083b bt 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a32: 3101 movi r1, 1 + 2a34: 6884 and r2, r1 + 2a36: 3302 movi r3, 2 + 2a38: 5b49 subu r2, r3, r2 + 2a3a: 9802 ld.w r0, (r14, 0x8) + 2a3c: 3840 cmpnei r0, 0 + 2a3e: b841 st.w r2, (r14, 0x4) + 2a40: 0862 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2a42: 0151 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 2a44: 6492 cmpne r4, r2 + 2a46: 081f bt 0x2a84 // 2a84 <__GI_pow+0xd0> + 2a48: 012f lrw r1, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2a4a: 6054 addu r1, r5 + 2a4c: 6dc4 or r7, r1 + 2a4e: 3f40 cmpnei r7, 0 + 2a50: 082d bt 0x2aaa // 2aaa <__GI_pow+0xf6> + 2a52: 9860 ld.w r3, (r14, 0x0) + 2a54: 3200 movi r2, 0 + 2a56: 6c4f mov r1, r3 + 2a58: 3000 movi r0, 0 + 2a5a: e0000985 bsr 0x3d64 // 3d64 <__subdf3> + 2a5e: 07ce br 0x29fa // 29fa <__GI_pow+0x46> + 2a60: 9822 ld.w r1, (r14, 0x8) + 2a62: 3940 cmpnei r1, 0 + 2a64: 084e bt 0x2b00 // 2b00 <__GI_pow+0x14c> + 2a66: 3114 movi r1, 20 + 2a68: 604a subu r1, r2 + 2a6a: 6c93 mov r2, r4 + 2a6c: 7086 asr r2, r1 + 2a6e: 6c0b mov r0, r2 + 2a70: 7004 lsl r0, r1 + 2a72: 6412 cmpne r4, r0 + 2a74: 0c03 bf 0x2a7a // 2a7a <__GI_pow+0xc6> + 2a76: e8000471 br 0x3358 // 3358 <__GI_pow+0x9a4> + 2a7a: 3101 movi r1, 1 + 2a7c: 6884 and r2, r1 + 2a7e: 3002 movi r0, 2 + 2a80: 5869 subu r3, r0, r2 + 2a82: b861 st.w r3, (r14, 0x4) + 2a84: 0220 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a86: 6452 cmpne r4, r1 + 2a88: 0825 bt 0x2ad2 // 2ad2 <__GI_pow+0x11e> + 2a8a: 9880 ld.w r4, (r14, 0x0) + 2a8c: 3cdf btsti r4, 31 + 2a8e: 0803 bt 0x2a94 // 2a94 <__GI_pow+0xe0> + 2a90: e8000407 br 0x329e // 329e <__GI_pow+0x8ea> + 2a94: 6c9f mov r2, r7 + 2a96: 6cdb mov r3, r6 + 2a98: 3000 movi r0, 0 + 2a9a: 0225 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a9c: e0000a9a bsr 0x3fd0 // 3fd0 <__divdf3> + 2aa0: 07ad br 0x29fa // 29fa <__GI_pow+0x46> + 2aa2: 3202 movi r2, 2 + 2aa4: 07cb br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aa6: 3200 movi r2, 0 + 2aa8: 07c9 br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aaa: 0269 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2aac: 2b00 subi r3, 1 + 2aae: 654d cmplt r3, r5 + 2ab0: 9800 ld.w r0, (r14, 0x0) + 2ab2: 0c08 bf 0x2ac2 // 2ac2 <__GI_pow+0x10e> + 2ab4: 38df btsti r0, 31 + 2ab6: 0803 bt 0x2abc // 2abc <__GI_pow+0x108> + 2ab8: e80003ef br 0x3296 // 3296 <__GI_pow+0x8e2> + 2abc: 3400 movi r4, 0 + 2abe: 3100 movi r1, 0 + 2ac0: 079e br 0x29fc // 29fc <__GI_pow+0x48> + 2ac2: 38df btsti r0, 31 + 2ac4: 0ffc bf 0x2abc // 2abc <__GI_pow+0x108> + 2ac6: 3400 movi r4, 0 + 2ac8: 6c43 mov r1, r0 + 2aca: 3280 movi r2, 128 + 2acc: 4278 lsli r3, r2, 24 + 2ace: 604c addu r1, r3 + 2ad0: 0796 br 0x29fc // 29fc <__GI_pow+0x48> + 2ad2: 3380 movi r3, 128 + 2ad4: 4317 lsli r0, r3, 23 + 2ad6: 9840 ld.w r2, (r14, 0x0) + 2ad8: 640a cmpne r2, r0 + 2ada: 0808 bt 0x2aea // 2aea <__GI_pow+0x136> + 2adc: 6c9f mov r2, r7 + 2ade: 6cdb mov r3, r6 + 2ae0: 6c1f mov r0, r7 + 2ae2: 6c5b mov r1, r6 + 2ae4: e000095c bsr 0x3d9c // 3d9c <__muldf3> + 2ae8: 0789 br 0x29fa // 29fa <__GI_pow+0x46> + 2aea: 0276 lrw r3, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2aec: 9820 ld.w r1, (r14, 0x0) + 2aee: 64c6 cmpne r1, r3 + 2af0: 080a bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af2: 3edf btsti r6, 31 + 2af4: 0808 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af6: 6c1f mov r0, r7 + 2af8: 6c5b mov r1, r6 + 2afa: e0000445 bsr 0x3384 // 3384 <__GI_sqrt> + 2afe: 077e br 0x29fa // 29fa <__GI_pow+0x46> + 2b00: 3300 movi r3, 0 + 2b02: b861 st.w r3, (r14, 0x4) + 2b04: 6c1f mov r0, r7 + 2b06: 6c5b mov r1, r6 + 2b08: b883 st.w r4, (r14, 0xc) + 2b0a: e000042a bsr 0x335e // 335e <__GI_fabs> + 2b0e: 3f40 cmpnei r7, 0 + 2b10: 6d03 mov r4, r0 + 2b12: 9863 ld.w r3, (r14, 0xc) + 2b14: 0826 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b16: 3d40 cmpnei r5, 0 + 2b18: 0c05 bf 0x2b22 // 2b22 <__GI_pow+0x16e> + 2b1a: 4642 lsli r2, r6, 2 + 2b1c: 0302 lrw r0, 0xffc00000 // 2d90 <__GI_pow+0x3dc> + 2b1e: 640a cmpne r2, r0 + 2b20: 0820 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b22: 9840 ld.w r2, (r14, 0x0) + 2b24: 3adf btsti r2, 31 + 2b26: 0c08 bf 0x2b36 // 2b36 <__GI_pow+0x182> + 2b28: 6c93 mov r2, r4 + 2b2a: 6cc7 mov r3, r1 + 2b2c: 3000 movi r0, 0 + 2b2e: 032a lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b30: e0000a50 bsr 0x3fd0 // 3fd0 <__divdf3> + 2b34: 6d03 mov r4, r0 + 2b36: 3edf btsti r6, 31 + 2b38: 0f62 bf 0x29fc // 29fc <__GI_pow+0x48> + 2b3a: 036b lrw r3, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2b3c: 614c addu r5, r3 + 2b3e: 9801 ld.w r0, (r14, 0x4) + 2b40: 6d40 or r5, r0 + 2b42: 3d40 cmpnei r5, 0 + 2b44: 080a bt 0x2b58 // 2b58 <__GI_pow+0x1a4> + 2b46: 6c93 mov r2, r4 + 2b48: 6cc7 mov r3, r1 + 2b4a: 6c0b mov r0, r2 + 2b4c: 6c4f mov r1, r3 + 2b4e: e000090b bsr 0x3d64 // 3d64 <__subdf3> + 2b52: 6c83 mov r2, r0 + 2b54: 6cc7 mov r3, r1 + 2b56: 07a3 br 0x2a9c // 2a9c <__GI_pow+0xe8> + 2b58: 9841 ld.w r2, (r14, 0x4) + 2b5a: 3a41 cmpnei r2, 1 + 2b5c: 0b50 bt 0x29fc // 29fc <__GI_pow+0x48> + 2b5e: 07b6 br 0x2aca // 2aca <__GI_pow+0x116> + 2b60: 4e5f lsri r2, r6, 31 + 2b62: 2a00 subi r2, 1 + 2b64: b847 st.w r2, (r14, 0x1c) + 2b66: 9807 ld.w r0, (r14, 0x1c) + 2b68: 9841 ld.w r2, (r14, 0x4) + 2b6a: 6c80 or r2, r0 + 2b6c: 3a40 cmpnei r2, 0 + 2b6e: 0804 bt 0x2b76 // 2b76 <__GI_pow+0x1c2> + 2b70: 6c9f mov r2, r7 + 2b72: 6cdb mov r3, r6 + 2b74: 07eb br 0x2b4a // 2b4a <__GI_pow+0x196> + 2b76: 0357 lrw r2, 0x41e00000 // 2d94 <__GI_pow+0x3e0> + 2b78: 64c9 cmplt r2, r3 + 2b7a: 0cbf bf 0x2cf8 // 2cf8 <__GI_pow+0x344> + 2b7c: 0358 lrw r2, 0x43f00000 // 2d98 <__GI_pow+0x3e4> + 2b7e: 64c9 cmplt r2, r3 + 2b80: 037f lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b82: 0c0c bf 0x2b9a // 2b9a <__GI_pow+0x1e6> + 2b84: 2b00 subi r3, 1 + 2b86: 654d cmplt r3, r5 + 2b88: 080f bt 0x2ba6 // 2ba6 <__GI_pow+0x1f2> + 2b8a: 9820 ld.w r1, (r14, 0x0) + 2b8c: 39df btsti r1, 31 + 2b8e: 0f97 bf 0x2abc // 2abc <__GI_pow+0x108> + 2b90: 035c lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2b92: 037b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2b94: 6c0b mov r0, r2 + 2b96: 6c4f mov r1, r3 + 2b98: 07a6 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2b9a: 2b01 subi r3, 2 + 2b9c: 654d cmplt r3, r5 + 2b9e: 0ff6 bf 0x2b8a // 2b8a <__GI_pow+0x1d6> + 2ba0: 1318 lrw r0, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2ba2: 6541 cmplt r0, r5 + 2ba4: 0c05 bf 0x2bae // 2bae <__GI_pow+0x1fa> + 2ba6: 9800 ld.w r0, (r14, 0x0) + 2ba8: 3820 cmplti r0, 1 + 2baa: 0ff3 bf 0x2b90 // 2b90 <__GI_pow+0x1dc> + 2bac: 0788 br 0x2abc // 2abc <__GI_pow+0x108> + 2bae: 3200 movi r2, 0 + 2bb0: 1374 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2bb2: 6c1f mov r0, r7 + 2bb4: 6c5b mov r1, r6 + 2bb6: 36c0 movi r6, 192 + 2bb8: e00008d6 bsr 0x3d64 // 3d64 <__subdf3> + 2bbc: 4657 lsli r2, r6, 23 + 2bbe: 137a lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2bc0: 6d43 mov r5, r0 + 2bc2: 6d07 mov r4, r1 + 2bc4: e00008ec bsr 0x3d9c // 3d9c <__muldf3> + 2bc8: 6dc3 mov r7, r0 + 2bca: 6d87 mov r6, r1 + 2bcc: 1357 lrw r2, 0xf85ddf44 // 2da8 <__GI_pow+0x3f4> + 2bce: 1378 lrw r3, 0x3e54ae0b // 2dac <__GI_pow+0x3f8> + 2bd0: 6c17 mov r0, r5 + 2bd2: 6c53 mov r1, r4 + 2bd4: e00008e4 bsr 0x3d9c // 3d9c <__muldf3> + 2bd8: b803 st.w r0, (r14, 0xc) + 2bda: b824 st.w r1, (r14, 0x10) + 2bdc: 3200 movi r2, 0 + 2bde: 1375 lrw r3, 0x3fd00000 // 2db0 <__GI_pow+0x3fc> + 2be0: 6c17 mov r0, r5 + 2be2: 6c53 mov r1, r4 + 2be4: e00008dc bsr 0x3d9c // 3d9c <__muldf3> + 2be8: 6c83 mov r2, r0 + 2bea: 6cc7 mov r3, r1 + 2bec: 1312 lrw r0, 0x55555555 // 2db4 <__GI_pow+0x400> + 2bee: 1333 lrw r1, 0x3fd55555 // 2db8 <__GI_pow+0x404> + 2bf0: e00008ba bsr 0x3d64 // 3d64 <__subdf3> + 2bf4: 6c97 mov r2, r5 + 2bf6: 6cd3 mov r3, r4 + 2bf8: e00008d2 bsr 0x3d9c // 3d9c <__muldf3> + 2bfc: 6c83 mov r2, r0 + 2bfe: 6cc7 mov r3, r1 + 2c00: 3000 movi r0, 0 + 2c02: 1323 lrw r1, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2c04: e00008b0 bsr 0x3d64 // 3d64 <__subdf3> + 2c08: b805 st.w r0, (r14, 0x14) + 2c0a: 6c97 mov r2, r5 + 2c0c: 6cd3 mov r3, r4 + 2c0e: b826 st.w r1, (r14, 0x18) + 2c10: 6c17 mov r0, r5 + 2c12: 6c53 mov r1, r4 + 2c14: e00008c4 bsr 0x3d9c // 3d9c <__muldf3> + 2c18: 6c83 mov r2, r0 + 2c1a: 6cc7 mov r3, r1 + 2c1c: 9805 ld.w r0, (r14, 0x14) + 2c1e: 9826 ld.w r1, (r14, 0x18) + 2c20: e00008be bsr 0x3d9c // 3d9c <__muldf3> + 2c24: 1346 lrw r2, 0x652b82fe // 2dbc <__GI_pow+0x408> + 2c26: 1360 lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2c28: e00008ba bsr 0x3d9c // 3d9c <__muldf3> + 2c2c: 6c83 mov r2, r0 + 2c2e: 6cc7 mov r3, r1 + 2c30: 9803 ld.w r0, (r14, 0xc) + 2c32: 9824 ld.w r1, (r14, 0x10) + 2c34: e0000898 bsr 0x3d64 // 3d64 <__subdf3> + 2c38: 6c83 mov r2, r0 + 2c3a: 6cc7 mov r3, r1 + 2c3c: 6d43 mov r5, r0 + 2c3e: 6d07 mov r4, r1 + 2c40: 6c1f mov r0, r7 + 2c42: 6c5b mov r1, r6 + 2c44: e0000878 bsr 0x3d34 // 3d34 <__adddf3> + 2c48: 6c9f mov r2, r7 + 2c4a: 6cdb mov r3, r6 + 2c4c: 3000 movi r0, 0 + 2c4e: b823 st.w r1, (r14, 0xc) + 2c50: e000088a bsr 0x3d64 // 3d64 <__subdf3> + 2c54: 6c83 mov r2, r0 + 2c56: 6cc7 mov r3, r1 + 2c58: 6c17 mov r0, r5 + 2c5a: 6c53 mov r1, r4 + 2c5c: e0000884 bsr 0x3d64 // 3d64 <__subdf3> + 2c60: 6d07 mov r4, r1 + 2c62: 9821 ld.w r1, (r14, 0x4) + 2c64: 2900 subi r1, 1 + 2c66: 9847 ld.w r2, (r14, 0x1c) + 2c68: 6c48 or r1, r2 + 2c6a: 3940 cmpnei r1, 0 + 2c6c: 6d43 mov r5, r0 + 2c6e: 0c02 bf 0x2c72 // 2c72 <__GI_pow+0x2be> + 2c70: 05f0 br 0x3050 // 3050 <__GI_pow+0x69c> + 2c72: 1274 lrw r3, 0xbff00000 // 2dc0 <__GI_pow+0x40c> + 2c74: b861 st.w r3, (r14, 0x4) + 2c76: 9860 ld.w r3, (r14, 0x0) + 2c78: 3200 movi r2, 0 + 2c7a: 9802 ld.w r0, (r14, 0x8) + 2c7c: 6c4f mov r1, r3 + 2c7e: e0000873 bsr 0x3d64 // 3d64 <__subdf3> + 2c82: 9863 ld.w r3, (r14, 0xc) + 2c84: 3200 movi r2, 0 + 2c86: e000088b bsr 0x3d9c // 3d9c <__muldf3> + 2c8a: 6dc3 mov r7, r0 + 2c8c: 6d87 mov r6, r1 + 2c8e: 9842 ld.w r2, (r14, 0x8) + 2c90: 9860 ld.w r3, (r14, 0x0) + 2c92: 6c17 mov r0, r5 + 2c94: 6c53 mov r1, r4 + 2c96: e0000883 bsr 0x3d9c // 3d9c <__muldf3> + 2c9a: 6c83 mov r2, r0 + 2c9c: 6cc7 mov r3, r1 + 2c9e: 6c1f mov r0, r7 + 2ca0: 6c5b mov r1, r6 + 2ca2: e0000849 bsr 0x3d34 // 3d34 <__adddf3> + 2ca6: 6dc3 mov r7, r0 + 2ca8: 9860 ld.w r3, (r14, 0x0) + 2caa: 6d87 mov r6, r1 + 2cac: 3200 movi r2, 0 + 2cae: 9823 ld.w r1, (r14, 0xc) + 2cb0: 3000 movi r0, 0 + 2cb2: e0000875 bsr 0x3d9c // 3d9c <__muldf3> + 2cb6: b802 st.w r0, (r14, 0x8) + 2cb8: b803 st.w r0, (r14, 0xc) + 2cba: b824 st.w r1, (r14, 0x10) + 2cbc: 6c83 mov r2, r0 + 2cbe: 6cc7 mov r3, r1 + 2cc0: 6d47 mov r5, r1 + 2cc2: 6c1f mov r0, r7 + 2cc4: 6c5b mov r1, r6 + 2cc6: e0000837 bsr 0x3d34 // 3d34 <__adddf3> + 2cca: 6d07 mov r4, r1 + 2ccc: 113e lrw r1, 0x40900000 // 2dc4 <__GI_pow+0x410> + 2cce: 2900 subi r1, 1 + 2cd0: 6505 cmplt r1, r4 + 2cd2: b800 st.w r0, (r14, 0x0) + 2cd4: 0803 bt 0x2cda // 2cda <__GI_pow+0x326> + 2cd6: e80002b3 br 0x323c // 323c <__GI_pow+0x888> + 2cda: 117c lrw r3, 0xbf700000 // 2dc8 <__GI_pow+0x414> + 2cdc: 60d0 addu r3, r4 + 2cde: 6cc0 or r3, r0 + 2ce0: 3b40 cmpnei r3, 0 + 2ce2: 0802 bt 0x2ce6 // 2ce6 <__GI_pow+0x332> + 2ce4: 05b8 br 0x3054 // 3054 <__GI_pow+0x6a0> + 2ce6: 114e lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2ce8: 116e lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cea: 3000 movi r0, 0 + 2cec: 9821 ld.w r1, (r14, 0x4) + 2cee: e0000857 bsr 0x3d9c // 3d9c <__muldf3> + 2cf2: 114b lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2cf4: 116b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cf6: 06f7 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2cf8: 11d5 lrw r6, 0xfffff // 2dcc <__GI_pow+0x418> + 2cfa: 6559 cmplt r6, r5 + 2cfc: 09a6 bt 0x3048 // 3048 <__GI_pow+0x694> + 2cfe: 6c13 mov r0, r4 + 2d00: 3200 movi r2, 0 + 2d02: 107f lrw r3, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2d04: e000084c bsr 0x3d9c // 3d9c <__muldf3> + 2d08: 3700 movi r7, 0 + 2d0a: 6d03 mov r4, r0 + 2d0c: 6d47 mov r5, r1 + 2d0e: 2f34 subi r7, 53 + 2d10: 5514 asri r0, r5, 20 + 2d12: 103d lrw r1, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2d14: 45ac lsli r5, r5, 12 + 2d16: 4d4c lsri r2, r5, 12 + 2d18: 6004 addu r0, r1 + 2d1a: 116e lrw r3, 0x3988e // 2dd0 <__GI_pow+0x41c> + 2d1c: 601c addu r0, r7 + 2d1e: 648d cmplt r3, r2 + 2d20: 10f8 lrw r7, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d22: b804 st.w r0, (r14, 0x10) + 2d24: 6dc8 or r7, r2 + 2d26: 0c09 bf 0x2d38 // 2d38 <__GI_pow+0x384> + 2d28: 11cb lrw r6, 0xbb679 // 2dd4 <__GI_pow+0x420> + 2d2a: 6499 cmplt r6, r2 + 2d2c: 0d90 bf 0x304c // 304c <__GI_pow+0x698> + 2d2e: 6c83 mov r2, r0 + 2d30: 2200 addi r2, 1 + 2d32: 110a lrw r0, 0xfff00000 // 2dd8 <__GI_pow+0x424> + 2d34: b844 st.w r2, (r14, 0x10) + 2d36: 61c0 addu r7, r0 + 2d38: 3500 movi r5, 0 + 2d3a: 45c3 lsli r6, r5, 3 + 2d3c: 1168 lrw r3, 0xabbc // 2ddc <__GI_pow+0x428> + 2d3e: 4523 lsli r1, r5, 3 + 2d40: 60d8 addu r3, r6 + 2d42: 9340 ld.w r2, (r3, 0x0) + 2d44: b828 st.w r1, (r14, 0x20) + 2d46: 9361 ld.w r3, (r3, 0x4) + 2d48: 6c13 mov r0, r4 + 2d4a: 6c5f mov r1, r7 + 2d4c: b845 st.w r2, (r14, 0x14) + 2d4e: b866 st.w r3, (r14, 0x18) + 2d50: e000080a bsr 0x3d64 // 3d64 <__subdf3> + 2d54: b809 st.w r0, (r14, 0x24) + 2d56: 9845 ld.w r2, (r14, 0x14) + 2d58: 9866 ld.w r3, (r14, 0x18) + 2d5a: b82a st.w r1, (r14, 0x28) + 2d5c: 6c13 mov r0, r4 + 2d5e: 6c5f mov r1, r7 + 2d60: e00007ea bsr 0x3d34 // 3d34 <__adddf3> + 2d64: 6c83 mov r2, r0 + 2d66: 6cc7 mov r3, r1 + 2d68: 3000 movi r0, 0 + 2d6a: 1026 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d6c: e0000932 bsr 0x3fd0 // 3fd0 <__divdf3> + 2d70: 6c83 mov r2, r0 + 2d72: 6cc7 mov r3, r1 + 2d74: 0436 br 0x2de0 // 2de0 <__GI_pow+0x42c> + 2d76: 0000 bkpt + 2d78: 7ff00000 .long 0x7ff00000 + 2d7c: 43400000 .long 0x43400000 + 2d80: 3ff00000 .long 0x3ff00000 + 2d84: fffffc01 .long 0xfffffc01 + 2d88: c0100000 .long 0xc0100000 + 2d8c: 3fe00000 .long 0x3fe00000 + 2d90: ffc00000 .long 0xffc00000 + 2d94: 41e00000 .long 0x41e00000 + 2d98: 43f00000 .long 0x43f00000 + 2d9c: 8800759c .long 0x8800759c + 2da0: 7e37e43c .long 0x7e37e43c + 2da4: 3ff71547 .long 0x3ff71547 + 2da8: f85ddf44 .long 0xf85ddf44 + 2dac: 3e54ae0b .long 0x3e54ae0b + 2db0: 3fd00000 .long 0x3fd00000 + 2db4: 55555555 .long 0x55555555 + 2db8: 3fd55555 .long 0x3fd55555 + 2dbc: 652b82fe .long 0x652b82fe + 2dc0: bff00000 .long 0xbff00000 + 2dc4: 40900000 .long 0x40900000 + 2dc8: bf700000 .long 0xbf700000 + 2dcc: 000fffff .long 0x000fffff + 2dd0: 0003988e .long 0x0003988e + 2dd4: 000bb679 .long 0x000bb679 + 2dd8: fff00000 .long 0xfff00000 + 2ddc: 0000abbc .long 0x0000abbc + 2de0: b80b st.w r0, (r14, 0x2c) + 2de2: b82c st.w r1, (r14, 0x30) + 2de4: 9809 ld.w r0, (r14, 0x24) + 2de6: 982a ld.w r1, (r14, 0x28) + 2de8: e00007da bsr 0x3d9c // 3d9c <__muldf3> + 2dec: b803 st.w r0, (r14, 0xc) + 2dee: 3280 movi r2, 128 + 2df0: 5701 asri r0, r7, 1 + 2df2: 6d87 mov r6, r1 + 2df4: 38bd bseti r0, 29 + 2df6: 422c lsli r1, r2, 12 + 2df8: 6004 addu r0, r1 + 2dfa: 45b2 lsli r5, r5, 18 + 2dfc: 6140 addu r5, r0 + 2dfe: 6cd7 mov r3, r5 + 2e00: 3200 movi r2, 0 + 2e02: 6c5b mov r1, r6 + 2e04: 3000 movi r0, 0 + 2e06: e00007cb bsr 0x3d9c // 3d9c <__muldf3> + 2e0a: 6c83 mov r2, r0 + 2e0c: 6cc7 mov r3, r1 + 2e0e: 9809 ld.w r0, (r14, 0x24) + 2e10: 982a ld.w r1, (r14, 0x28) + 2e12: e00007a9 bsr 0x3d64 // 3d64 <__subdf3> + 2e16: b809 st.w r0, (r14, 0x24) + 2e18: 9845 ld.w r2, (r14, 0x14) + 2e1a: 9866 ld.w r3, (r14, 0x18) + 2e1c: b82a st.w r1, (r14, 0x28) + 2e1e: 3000 movi r0, 0 + 2e20: 6c57 mov r1, r5 + 2e22: e00007a1 bsr 0x3d64 // 3d64 <__subdf3> + 2e26: 6c83 mov r2, r0 + 2e28: 6cc7 mov r3, r1 + 2e2a: 6c13 mov r0, r4 + 2e2c: 6c5f mov r1, r7 + 2e2e: e000079b bsr 0x3d64 // 3d64 <__subdf3> + 2e32: 6cdb mov r3, r6 + 2e34: 3200 movi r2, 0 + 2e36: e00007b3 bsr 0x3d9c // 3d9c <__muldf3> + 2e3a: 6c83 mov r2, r0 + 2e3c: 6cc7 mov r3, r1 + 2e3e: 9809 ld.w r0, (r14, 0x24) + 2e40: 982a ld.w r1, (r14, 0x28) + 2e42: e0000791 bsr 0x3d64 // 3d64 <__subdf3> + 2e46: 984b ld.w r2, (r14, 0x2c) + 2e48: 986c ld.w r3, (r14, 0x30) + 2e4a: e00007a9 bsr 0x3d9c // 3d9c <__muldf3> + 2e4e: 9843 ld.w r2, (r14, 0xc) + 2e50: 6cdb mov r3, r6 + 2e52: b805 st.w r0, (r14, 0x14) + 2e54: b826 st.w r1, (r14, 0x18) + 2e56: 6c0b mov r0, r2 + 2e58: 6c5b mov r1, r6 + 2e5a: e00007a1 bsr 0x3d9c // 3d9c <__muldf3> + 2e5e: ea820113 lrw r2, 0x4a454eef // 32a8 <__GI_pow+0x8f4> + 2e62: ea830113 lrw r3, 0x3fca7e28 // 32ac <__GI_pow+0x8f8> + 2e66: 6d43 mov r5, r0 + 2e68: 6d07 mov r4, r1 + 2e6a: e0000799 bsr 0x3d9c // 3d9c <__muldf3> + 2e6e: ea820111 lrw r2, 0x93c9db65 // 32b0 <__GI_pow+0x8fc> + 2e72: ea830111 lrw r3, 0x3fcd864a // 32b4 <__GI_pow+0x900> + 2e76: e000075f bsr 0x3d34 // 3d34 <__adddf3> + 2e7a: 6c97 mov r2, r5 + 2e7c: 6cd3 mov r3, r4 + 2e7e: e000078f bsr 0x3d9c // 3d9c <__muldf3> + 2e82: ea82010e lrw r2, 0xa91d4101 // 32b8 <__GI_pow+0x904> + 2e86: ea83010e lrw r3, 0x3fd17460 // 32bc <__GI_pow+0x908> + 2e8a: e0000755 bsr 0x3d34 // 3d34 <__adddf3> + 2e8e: 6c97 mov r2, r5 + 2e90: 6cd3 mov r3, r4 + 2e92: e0000785 bsr 0x3d9c // 3d9c <__muldf3> + 2e96: ea82010b lrw r2, 0x518f264d // 32c0 <__GI_pow+0x90c> + 2e9a: ea83010b lrw r3, 0x3fd55555 // 32c4 <__GI_pow+0x910> + 2e9e: e000074b bsr 0x3d34 // 3d34 <__adddf3> + 2ea2: 6c97 mov r2, r5 + 2ea4: 6cd3 mov r3, r4 + 2ea6: e000077b bsr 0x3d9c // 3d9c <__muldf3> + 2eaa: ea820108 lrw r2, 0xdb6fabff // 32c8 <__GI_pow+0x914> + 2eae: ea830108 lrw r3, 0x3fdb6db6 // 32cc <__GI_pow+0x918> + 2eb2: e0000741 bsr 0x3d34 // 3d34 <__adddf3> + 2eb6: 6c97 mov r2, r5 + 2eb8: 6cd3 mov r3, r4 + 2eba: e0000771 bsr 0x3d9c // 3d9c <__muldf3> + 2ebe: ea820105 lrw r2, 0x33333303 // 32d0 <__GI_pow+0x91c> + 2ec2: ea830105 lrw r3, 0x3fe33333 // 32d4 <__GI_pow+0x920> + 2ec6: e0000737 bsr 0x3d34 // 3d34 <__adddf3> + 2eca: 6dc3 mov r7, r0 + 2ecc: 6c97 mov r2, r5 + 2ece: 6cd3 mov r3, r4 + 2ed0: b829 st.w r1, (r14, 0x24) + 2ed2: 6c17 mov r0, r5 + 2ed4: 6c53 mov r1, r4 + 2ed6: e0000763 bsr 0x3d9c // 3d9c <__muldf3> + 2eda: 6c83 mov r2, r0 + 2edc: 6cc7 mov r3, r1 + 2ede: 6c1f mov r0, r7 + 2ee0: 9829 ld.w r1, (r14, 0x24) + 2ee2: e000075d bsr 0x3d9c // 3d9c <__muldf3> + 2ee6: 6d43 mov r5, r0 + 2ee8: 6d07 mov r4, r1 + 2eea: 6cdb mov r3, r6 + 2eec: 3200 movi r2, 0 + 2eee: 9803 ld.w r0, (r14, 0xc) + 2ef0: 6c5b mov r1, r6 + 2ef2: e0000721 bsr 0x3d34 // 3d34 <__adddf3> + 2ef6: 9845 ld.w r2, (r14, 0x14) + 2ef8: 9866 ld.w r3, (r14, 0x18) + 2efa: e0000751 bsr 0x3d9c // 3d9c <__muldf3> + 2efe: 6c97 mov r2, r5 + 2f00: 6cd3 mov r3, r4 + 2f02: e0000719 bsr 0x3d34 // 3d34 <__adddf3> + 2f06: 6d43 mov r5, r0 + 2f08: 6cdb mov r3, r6 + 2f0a: b829 st.w r1, (r14, 0x24) + 2f0c: 3200 movi r2, 0 + 2f0e: 6c5b mov r1, r6 + 2f10: 3000 movi r0, 0 + 2f12: e0000745 bsr 0x3d9c // 3d9c <__muldf3> + 2f16: 3200 movi r2, 0 + 2f18: 006f lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f1a: 6dc3 mov r7, r0 + 2f1c: b82a st.w r1, (r14, 0x28) + 2f1e: e000070b bsr 0x3d34 // 3d34 <__adddf3> + 2f22: 6c97 mov r2, r5 + 2f24: 9869 ld.w r3, (r14, 0x24) + 2f26: e0000707 bsr 0x3d34 // 3d34 <__adddf3> + 2f2a: 6d07 mov r4, r1 + 2f2c: 6cc7 mov r3, r1 + 2f2e: 3200 movi r2, 0 + 2f30: 6c5b mov r1, r6 + 2f32: 3000 movi r0, 0 + 2f34: e0000734 bsr 0x3d9c // 3d9c <__muldf3> + 2f38: b80b st.w r0, (r14, 0x2c) + 2f3a: b82c st.w r1, (r14, 0x30) + 2f3c: 3200 movi r2, 0 + 2f3e: 0078 lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f40: 6c53 mov r1, r4 + 2f42: 3000 movi r0, 0 + 2f44: e0000710 bsr 0x3d64 // 3d64 <__subdf3> + 2f48: 6c9f mov r2, r7 + 2f4a: 986a ld.w r3, (r14, 0x28) + 2f4c: e000070c bsr 0x3d64 // 3d64 <__subdf3> + 2f50: 6c83 mov r2, r0 + 2f52: 6cc7 mov r3, r1 + 2f54: 6c17 mov r0, r5 + 2f56: 9829 ld.w r1, (r14, 0x24) + 2f58: e0000706 bsr 0x3d64 // 3d64 <__subdf3> + 2f5c: 9843 ld.w r2, (r14, 0xc) + 2f5e: 6cdb mov r3, r6 + 2f60: e000071e bsr 0x3d9c // 3d9c <__muldf3> + 2f64: 6d83 mov r6, r0 + 2f66: 6d47 mov r5, r1 + 2f68: 6cd3 mov r3, r4 + 2f6a: 3200 movi r2, 0 + 2f6c: 9805 ld.w r0, (r14, 0x14) + 2f6e: 9826 ld.w r1, (r14, 0x18) + 2f70: e0000716 bsr 0x3d9c // 3d9c <__muldf3> + 2f74: 6c83 mov r2, r0 + 2f76: 6cc7 mov r3, r1 + 2f78: 6c1b mov r0, r6 + 2f7a: 6c57 mov r1, r5 + 2f7c: e00006dc bsr 0x3d34 // 3d34 <__adddf3> + 2f80: 6dc3 mov r7, r0 + 2f82: 6d87 mov r6, r1 + 2f84: 6c83 mov r2, r0 + 2f86: 6cc7 mov r3, r1 + 2f88: 980b ld.w r0, (r14, 0x2c) + 2f8a: 982c ld.w r1, (r14, 0x30) + 2f8c: e00006d4 bsr 0x3d34 // 3d34 <__adddf3> + 2f90: 33e0 movi r3, 224 + 2f92: 4358 lsli r2, r3, 24 + 2f94: 3000 movi r0, 0 + 2f96: 016d lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2f98: 6d07 mov r4, r1 + 2f9a: e0000701 bsr 0x3d9c // 3d9c <__muldf3> + 2f9e: b805 st.w r0, (r14, 0x14) + 2fa0: b826 st.w r1, (r14, 0x18) + 2fa2: 984b ld.w r2, (r14, 0x2c) + 2fa4: 986c ld.w r3, (r14, 0x30) + 2fa6: 6c53 mov r1, r4 + 2fa8: 3000 movi r0, 0 + 2faa: e00006dd bsr 0x3d64 // 3d64 <__subdf3> + 2fae: 6c83 mov r2, r0 + 2fb0: 6cc7 mov r3, r1 + 2fb2: 6c1f mov r0, r7 + 2fb4: 6c5b mov r1, r6 + 2fb6: e00006d7 bsr 0x3d64 // 3d64 <__subdf3> + 2fba: 0155 lrw r2, 0xdc3a03fd // 32e0 <__GI_pow+0x92c> + 2fbc: 0177 lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2fbe: e00006ef bsr 0x3d9c // 3d9c <__muldf3> + 2fc2: 6dc3 mov r7, r0 + 2fc4: 6d47 mov r5, r1 + 2fc6: 0157 lrw r2, 0x145b01f5 // 32e4 <__GI_pow+0x930> + 2fc8: 0177 lrw r3, 0xbe3e2fe0 // 32e8 <__GI_pow+0x934> + 2fca: 6c53 mov r1, r4 + 2fcc: 3000 movi r0, 0 + 2fce: e00006e7 bsr 0x3d9c // 3d9c <__muldf3> + 2fd2: 6c83 mov r2, r0 + 2fd4: 6cc7 mov r3, r1 + 2fd6: 6c1f mov r0, r7 + 2fd8: 6c57 mov r1, r5 + 2fda: e00006ad bsr 0x3d34 // 3d34 <__adddf3> + 2fde: 01db lrw r6, 0xabbc // 32ec <__GI_pow+0x938> + 2fe0: 9848 ld.w r2, (r14, 0x20) + 2fe2: 6188 addu r6, r2 + 2fe4: 9644 ld.w r2, (r6, 0x10) + 2fe6: 9665 ld.w r3, (r6, 0x14) + 2fe8: e00006a6 bsr 0x3d34 // 3d34 <__adddf3> + 2fec: b809 st.w r0, (r14, 0x24) + 2fee: 9804 ld.w r0, (r14, 0x10) + 2ff0: b82a st.w r1, (r14, 0x28) + 2ff2: e00008f3 bsr 0x41d8 // 41d8 <__floatsidf> + 2ff6: 6d83 mov r6, r0 + 2ff8: 0202 lrw r0, 0xabbc // 32ec <__GI_pow+0x938> + 2ffa: 6d47 mov r5, r1 + 2ffc: 201f addi r0, 32 + 2ffe: 9828 ld.w r1, (r14, 0x20) + 3000: 6004 addu r0, r1 + 3002: 9080 ld.w r4, (r0, 0x0) + 3004: 90e1 ld.w r7, (r0, 0x4) + 3006: 9849 ld.w r2, (r14, 0x24) + 3008: 986a ld.w r3, (r14, 0x28) + 300a: 9805 ld.w r0, (r14, 0x14) + 300c: 9826 ld.w r1, (r14, 0x18) + 300e: e0000693 bsr 0x3d34 // 3d34 <__adddf3> + 3012: 6c93 mov r2, r4 + 3014: 6cdf mov r3, r7 + 3016: e000068f bsr 0x3d34 // 3d34 <__adddf3> + 301a: 6c9b mov r2, r6 + 301c: 6cd7 mov r3, r5 + 301e: e000068b bsr 0x3d34 // 3d34 <__adddf3> + 3022: 6c9b mov r2, r6 + 3024: 6cd7 mov r3, r5 + 3026: 3000 movi r0, 0 + 3028: b823 st.w r1, (r14, 0xc) + 302a: e000069d bsr 0x3d64 // 3d64 <__subdf3> + 302e: 6c93 mov r2, r4 + 3030: 6cdf mov r3, r7 + 3032: e0000699 bsr 0x3d64 // 3d64 <__subdf3> + 3036: 9845 ld.w r2, (r14, 0x14) + 3038: 9866 ld.w r3, (r14, 0x18) + 303a: e0000695 bsr 0x3d64 // 3d64 <__subdf3> + 303e: 6c83 mov r2, r0 + 3040: 6cc7 mov r3, r1 + 3042: 9809 ld.w r0, (r14, 0x24) + 3044: 982a ld.w r1, (r14, 0x28) + 3046: 060b br 0x2c5c // 2c5c <__GI_pow+0x2a8> + 3048: 3700 movi r7, 0 + 304a: 0663 br 0x2d10 // 2d10 <__GI_pow+0x35c> + 304c: 3501 movi r5, 1 + 304e: 0676 br 0x2d3a // 2d3a <__GI_pow+0x386> + 3050: 0277 lrw r3, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3052: 0611 br 0x2c74 // 2c74 <__GI_pow+0x2c0> + 3054: 0257 lrw r2, 0x652b82fe // 32f4 <__GI_pow+0x940> + 3056: 0276 lrw r3, 0x3c971547 // 32f8 <__GI_pow+0x944> + 3058: 6c1f mov r0, r7 + 305a: 6c5b mov r1, r6 + 305c: e000066c bsr 0x3d34 // 3d34 <__adddf3> + 3060: b805 st.w r0, (r14, 0x14) + 3062: b826 st.w r1, (r14, 0x18) + 3064: 9842 ld.w r2, (r14, 0x8) + 3066: 6cd7 mov r3, r5 + 3068: 9800 ld.w r0, (r14, 0x0) + 306a: 6c53 mov r1, r4 + 306c: e000067c bsr 0x3d64 // 3d64 <__subdf3> + 3070: 6c83 mov r2, r0 + 3072: 6cc7 mov r3, r1 + 3074: 9805 ld.w r0, (r14, 0x14) + 3076: 9826 ld.w r1, (r14, 0x18) + 3078: e0000856 bsr 0x4124 // 4124 <__gtdf2> + 307c: 3820 cmplti r0, 1 + 307e: 0802 bt 0x3082 // 3082 <__GI_pow+0x6ce> + 3080: 0633 br 0x2ce6 // 2ce6 <__GI_pow+0x332> + 3082: 4421 lsli r1, r4, 1 + 3084: 4901 lsri r0, r1, 1 + 3086: 0361 lrw r3, 0x3fe00000 // 32fc <__GI_pow+0x948> + 3088: 640d cmplt r3, r0 + 308a: 0cfd bf 0x3284 // 3284 <__GI_pow+0x8d0> + 308c: 5034 asri r1, r0, 20 + 308e: 0342 lrw r2, 0xfffffc02 // 3300 <__GI_pow+0x94c> + 3090: 3080 movi r0, 128 + 3092: 6048 addu r1, r2 + 3094: 404d lsli r2, r0, 13 + 3096: 7086 asr r2, r1 + 3098: 6090 addu r2, r4 + 309a: 4261 lsli r3, r2, 1 + 309c: 4b35 lsri r1, r3, 21 + 309e: 0305 lrw r0, 0xfffffc01 // 3304 <__GI_pow+0x950> + 30a0: 6040 addu r1, r0 + 30a2: 0365 lrw r3, 0xfffff // 3308 <__GI_pow+0x954> + 30a4: 70c6 asr r3, r1 + 30a6: 6c0b mov r0, r2 + 30a8: 680d andn r0, r3 + 30aa: 424c lsli r2, r2, 12 + 30ac: 6cc3 mov r3, r0 + 30ae: 4a4c lsri r2, r2, 12 + 30b0: 3014 movi r0, 20 + 30b2: 3ab4 bseti r2, 20 + 30b4: 5825 subu r1, r0, r1 + 30b6: 7086 asr r2, r1 + 30b8: 3cdf btsti r4, 31 + 30ba: b840 st.w r2, (r14, 0x0) + 30bc: 0c05 bf 0x30c6 // 30c6 <__GI_pow+0x712> + 30be: 9840 ld.w r2, (r14, 0x0) + 30c0: 3400 movi r4, 0 + 30c2: 610a subu r4, r2 + 30c4: b880 st.w r4, (r14, 0x0) + 30c6: 3200 movi r2, 0 + 30c8: 9802 ld.w r0, (r14, 0x8) + 30ca: 6c57 mov r1, r5 + 30cc: e000064c bsr 0x3d64 // 3d64 <__subdf3> + 30d0: b803 st.w r0, (r14, 0xc) + 30d2: b824 st.w r1, (r14, 0x10) + 30d4: 9803 ld.w r0, (r14, 0xc) + 30d6: 6c9f mov r2, r7 + 30d8: 6cdb mov r3, r6 + 30da: 9824 ld.w r1, (r14, 0x10) + 30dc: e000062c bsr 0x3d34 // 3d34 <__adddf3> + 30e0: 3200 movi r2, 0 + 30e2: 0374 lrw r3, 0x3fe62e43 // 330c <__GI_pow+0x958> + 30e4: 3000 movi r0, 0 + 30e6: 6d07 mov r4, r1 + 30e8: e000065a bsr 0x3d9c // 3d9c <__muldf3> + 30ec: 6d47 mov r5, r1 + 30ee: 9843 ld.w r2, (r14, 0xc) + 30f0: 9864 ld.w r3, (r14, 0x10) + 30f2: b802 st.w r0, (r14, 0x8) + 30f4: 6c53 mov r1, r4 + 30f6: 3000 movi r0, 0 + 30f8: e0000636 bsr 0x3d64 // 3d64 <__subdf3> + 30fc: 6c83 mov r2, r0 + 30fe: 6cc7 mov r3, r1 + 3100: 6c1f mov r0, r7 + 3102: 6c5b mov r1, r6 + 3104: e0000630 bsr 0x3d64 // 3d64 <__subdf3> + 3108: 035d lrw r2, 0xfefa39ef // 3310 <__GI_pow+0x95c> + 310a: 037c lrw r3, 0x3fe62e42 // 3314 <__GI_pow+0x960> + 310c: e0000648 bsr 0x3d9c // 3d9c <__muldf3> + 3110: 6dc3 mov r7, r0 + 3112: 6d87 mov r6, r1 + 3114: 035e lrw r2, 0xca86c39 // 3318 <__GI_pow+0x964> + 3116: 037d lrw r3, 0xbe205c61 // 331c <__GI_pow+0x968> + 3118: 6c53 mov r1, r4 + 311a: 3000 movi r0, 0 + 311c: e0000640 bsr 0x3d9c // 3d9c <__muldf3> + 3120: 6c83 mov r2, r0 + 3122: 6cc7 mov r3, r1 + 3124: 6c1f mov r0, r7 + 3126: 6c5b mov r1, r6 + 3128: e0000606 bsr 0x3d34 // 3d34 <__adddf3> + 312c: 6d07 mov r4, r1 + 312e: 6c83 mov r2, r0 + 3130: 6cc7 mov r3, r1 + 3132: b803 st.w r0, (r14, 0xc) + 3134: 6c57 mov r1, r5 + 3136: 9802 ld.w r0, (r14, 0x8) + 3138: e00005fe bsr 0x3d34 // 3d34 <__adddf3> + 313c: 9842 ld.w r2, (r14, 0x8) + 313e: 6cd7 mov r3, r5 + 3140: 6dc3 mov r7, r0 + 3142: 6d87 mov r6, r1 + 3144: e0000610 bsr 0x3d64 // 3d64 <__subdf3> + 3148: 6c83 mov r2, r0 + 314a: 6cc7 mov r3, r1 + 314c: 9803 ld.w r0, (r14, 0xc) + 314e: 6c53 mov r1, r4 + 3150: e000060a bsr 0x3d64 // 3d64 <__subdf3> + 3154: b802 st.w r0, (r14, 0x8) + 3156: b823 st.w r1, (r14, 0xc) + 3158: 6c9f mov r2, r7 + 315a: 6cdb mov r3, r6 + 315c: 6c1f mov r0, r7 + 315e: 6c5b mov r1, r6 + 3160: e000061e bsr 0x3d9c // 3d9c <__muldf3> + 3164: 134f lrw r2, 0x72bea4d0 // 3320 <__GI_pow+0x96c> + 3166: 1370 lrw r3, 0x3e663769 // 3324 <__GI_pow+0x970> + 3168: 6d43 mov r5, r0 + 316a: 6d07 mov r4, r1 + 316c: e0000618 bsr 0x3d9c // 3d9c <__muldf3> + 3170: 134e lrw r2, 0xc5d26bf1 // 3328 <__GI_pow+0x974> + 3172: 136f lrw r3, 0x3ebbbd41 // 332c <__GI_pow+0x978> + 3174: e00005f8 bsr 0x3d64 // 3d64 <__subdf3> + 3178: 6c97 mov r2, r5 + 317a: 6cd3 mov r3, r4 + 317c: e0000610 bsr 0x3d9c // 3d9c <__muldf3> + 3180: 134c lrw r2, 0xaf25de2c // 3330 <__GI_pow+0x97c> + 3182: 136d lrw r3, 0x3f11566a // 3334 <__GI_pow+0x980> + 3184: e00005d8 bsr 0x3d34 // 3d34 <__adddf3> + 3188: 6c97 mov r2, r5 + 318a: 6cd3 mov r3, r4 + 318c: e0000608 bsr 0x3d9c // 3d9c <__muldf3> + 3190: 134a lrw r2, 0x16bebd93 // 3338 <__GI_pow+0x984> + 3192: 136b lrw r3, 0x3f66c16c // 333c <__GI_pow+0x988> + 3194: e00005e8 bsr 0x3d64 // 3d64 <__subdf3> + 3198: 6c97 mov r2, r5 + 319a: 6cd3 mov r3, r4 + 319c: e0000600 bsr 0x3d9c // 3d9c <__muldf3> + 31a0: 1348 lrw r2, 0x5555553e // 3340 <__GI_pow+0x98c> + 31a2: 1369 lrw r3, 0x3fc55555 // 3344 <__GI_pow+0x990> + 31a4: e00005c8 bsr 0x3d34 // 3d34 <__adddf3> + 31a8: 6c97 mov r2, r5 + 31aa: 6cd3 mov r3, r4 + 31ac: e00005f8 bsr 0x3d9c // 3d9c <__muldf3> + 31b0: 6c83 mov r2, r0 + 31b2: 6cc7 mov r3, r1 + 31b4: 6c1f mov r0, r7 + 31b6: 6c5b mov r1, r6 + 31b8: e00005d6 bsr 0x3d64 // 3d64 <__subdf3> + 31bc: 6d43 mov r5, r0 + 31be: 6d07 mov r4, r1 + 31c0: 6c83 mov r2, r0 + 31c2: 6cc7 mov r3, r1 + 31c4: 6c1f mov r0, r7 + 31c6: 6c5b mov r1, r6 + 31c8: e00005ea bsr 0x3d9c // 3d9c <__muldf3> + 31cc: 3380 movi r3, 128 + 31ce: b804 st.w r0, (r14, 0x10) + 31d0: b825 st.w r1, (r14, 0x14) + 31d2: 3200 movi r2, 0 + 31d4: 4377 lsli r3, r3, 23 + 31d6: 6c17 mov r0, r5 + 31d8: 6c53 mov r1, r4 + 31da: e00005c5 bsr 0x3d64 // 3d64 <__subdf3> + 31de: 6c83 mov r2, r0 + 31e0: 6cc7 mov r3, r1 + 31e2: 9804 ld.w r0, (r14, 0x10) + 31e4: 9825 ld.w r1, (r14, 0x14) + 31e6: e00006f5 bsr 0x3fd0 // 3fd0 <__divdf3> + 31ea: 6d07 mov r4, r1 + 31ec: 6d43 mov r5, r0 + 31ee: 9842 ld.w r2, (r14, 0x8) + 31f0: 9863 ld.w r3, (r14, 0xc) + 31f2: 6c1f mov r0, r7 + 31f4: 6c5b mov r1, r6 + 31f6: e00005d3 bsr 0x3d9c // 3d9c <__muldf3> + 31fa: 9842 ld.w r2, (r14, 0x8) + 31fc: 9863 ld.w r3, (r14, 0xc) + 31fe: e000059b bsr 0x3d34 // 3d34 <__adddf3> + 3202: 6c83 mov r2, r0 + 3204: 6cc7 mov r3, r1 + 3206: 6c17 mov r0, r5 + 3208: 6c53 mov r1, r4 + 320a: e00005ad bsr 0x3d64 // 3d64 <__subdf3> + 320e: 6c9f mov r2, r7 + 3210: 6cdb mov r3, r6 + 3212: e00005a9 bsr 0x3d64 // 3d64 <__subdf3> + 3216: 6c83 mov r2, r0 + 3218: 6cc7 mov r3, r1 + 321a: 3000 movi r0, 0 + 321c: 1135 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 321e: e00005a3 bsr 0x3d64 // 3d64 <__subdf3> + 3222: 9840 ld.w r2, (r14, 0x0) + 3224: 4274 lsli r3, r2, 20 + 3226: 60c4 addu r3, r1 + 3228: 5394 asri r4, r3, 20 + 322a: 3c20 cmplti r4, 1 + 322c: 0c2f bf 0x328a // 328a <__GI_pow+0x8d6> + 322e: 9840 ld.w r2, (r14, 0x0) + 3230: e000009a bsr 0x3364 // 3364 <__GI_scalbn> + 3234: 3200 movi r2, 0 + 3236: 9861 ld.w r3, (r14, 0x4) + 3238: e800fc56 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 323c: 4401 lsli r0, r4, 1 + 323e: 4861 lsri r3, r0, 1 + 3240: 1242 lrw r2, 0x4090cbff // 3348 <__GI_pow+0x994> + 3242: 64c9 cmplt r2, r3 + 3244: 0f1f bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3246: 1222 lrw r1, 0x3f6f3400 // 334c <__GI_pow+0x998> + 3248: 6050 addu r1, r4 + 324a: 9800 ld.w r0, (r14, 0x0) + 324c: 6c40 or r1, r0 + 324e: 3940 cmpnei r1, 0 + 3250: 0c0b bf 0x3266 // 3266 <__GI_pow+0x8b2> + 3252: 1240 lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3254: 1260 lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3256: 3000 movi r0, 0 + 3258: 9821 ld.w r1, (r14, 0x4) + 325a: e00005a1 bsr 0x3d9c // 3d9c <__muldf3> + 325e: 115d lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3260: 117d lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3262: e800fc41 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 3266: 9842 ld.w r2, (r14, 0x8) + 3268: 6cd7 mov r3, r5 + 326a: 9800 ld.w r0, (r14, 0x0) + 326c: 6c53 mov r1, r4 + 326e: e000057b bsr 0x3d64 // 3d64 <__subdf3> + 3272: 6c83 mov r2, r0 + 3274: 6cc7 mov r3, r1 + 3276: 6c1f mov r0, r7 + 3278: 6c5b mov r1, r6 + 327a: e0000791 bsr 0x419c // 419c <__ledf2> + 327e: 3820 cmplti r0, 1 + 3280: 0f01 bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3282: 07e8 br 0x3252 // 3252 <__GI_pow+0x89e> + 3284: 3500 movi r5, 0 + 3286: b8a0 st.w r5, (r14, 0x0) + 3288: 0726 br 0x30d4 // 30d4 <__GI_pow+0x720> + 328a: 6c4f mov r1, r3 + 328c: 07d4 br 0x3234 // 3234 <__GI_pow+0x880> + 328e: 3400 movi r4, 0 + 3290: 1038 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3292: e800fbb5 br 0x29fc // 29fc <__GI_pow+0x48> + 3296: 3400 movi r4, 0 + 3298: 9820 ld.w r1, (r14, 0x0) + 329a: e800fbb1 br 0x29fc // 29fc <__GI_pow+0x48> + 329e: 6d1f mov r4, r7 + 32a0: 6c5b mov r1, r6 + 32a2: e800fbad br 0x29fc // 29fc <__GI_pow+0x48> + 32a6: 0000 bkpt + 32a8: 4a454eef .long 0x4a454eef + 32ac: 3fca7e28 .long 0x3fca7e28 + 32b0: 93c9db65 .long 0x93c9db65 + 32b4: 3fcd864a .long 0x3fcd864a + 32b8: a91d4101 .long 0xa91d4101 + 32bc: 3fd17460 .long 0x3fd17460 + 32c0: 518f264d .long 0x518f264d + 32c4: 3fd55555 .long 0x3fd55555 + 32c8: db6fabff .long 0xdb6fabff + 32cc: 3fdb6db6 .long 0x3fdb6db6 + 32d0: 33333303 .long 0x33333303 + 32d4: 3fe33333 .long 0x3fe33333 + 32d8: 40080000 .long 0x40080000 + 32dc: 3feec709 .long 0x3feec709 + 32e0: dc3a03fd .long 0xdc3a03fd + 32e4: 145b01f5 .long 0x145b01f5 + 32e8: be3e2fe0 .long 0xbe3e2fe0 + 32ec: 0000abbc .long 0x0000abbc + 32f0: 3ff00000 .long 0x3ff00000 + 32f4: 652b82fe .long 0x652b82fe + 32f8: 3c971547 .long 0x3c971547 + 32fc: 3fe00000 .long 0x3fe00000 + 3300: fffffc02 .long 0xfffffc02 + 3304: fffffc01 .long 0xfffffc01 + 3308: 000fffff .long 0x000fffff + 330c: 3fe62e43 .long 0x3fe62e43 + 3310: fefa39ef .long 0xfefa39ef + 3314: 3fe62e42 .long 0x3fe62e42 + 3318: 0ca86c39 .long 0x0ca86c39 + 331c: be205c61 .long 0xbe205c61 + 3320: 72bea4d0 .long 0x72bea4d0 + 3324: 3e663769 .long 0x3e663769 + 3328: c5d26bf1 .long 0xc5d26bf1 + 332c: 3ebbbd41 .long 0x3ebbbd41 + 3330: af25de2c .long 0xaf25de2c + 3334: 3f11566a .long 0x3f11566a + 3338: 16bebd93 .long 0x16bebd93 + 333c: 3f66c16c .long 0x3f66c16c + 3340: 5555553e .long 0x5555553e + 3344: 3fc55555 .long 0x3fc55555 + 3348: 4090cbff .long 0x4090cbff + 334c: 3f6f3400 .long 0x3f6f3400 + 3350: c2f8f359 .long 0xc2f8f359 + 3354: 01a56e1f .long 0x01a56e1f + 3358: 3300 movi r3, 0 + 335a: e800fb94 br 0x2a82 // 2a82 <__GI_pow+0xce> + +0000335e <__GI_fabs>: + 335e: 4121 lsli r1, r1, 1 + 3360: 4921 lsri r1, r1, 1 + 3362: 783c jmp r15 + +00003364 <__GI_scalbn>: + 3364: 14c1 push r4 + 3366: 6cc7 mov r3, r1 + 3368: 6cc0 or r3, r0 + 336a: 3b40 cmpnei r3, 0 + 336c: 0c08 bf 0x337c // 337c <__GI_scalbn+0x18> + 336e: 1065 lrw r3, 0x7ff00000 // 3380 <__GI_scalbn+0x1c> + 3370: 6d07 mov r4, r1 + 3372: 690c and r4, r3 + 3374: 4254 lsli r2, r2, 20 + 3376: 6090 addu r2, r4 + 3378: 684d andn r1, r3 + 337a: 6c48 or r1, r2 + 337c: 1481 pop r4 + 337e: 0000 bkpt + 3380: 7ff00000 .long 0x7ff00000 + +00003384 <__GI_sqrt>: + 3384: 14d4 push r4-r7, r15 + 3386: 1423 subi r14, r14, 12 + 3388: 127a lrw r3, 0x7ff00000 // 34f0 <__GI_sqrt+0x16c> + 338a: 6d43 mov r5, r0 + 338c: 6d07 mov r4, r1 + 338e: 6c07 mov r0, r1 + 3390: 684c and r1, r3 + 3392: 64c6 cmpne r1, r3 + 3394: 6c97 mov r2, r5 + 3396: 0812 bt 0x33ba // 33ba <__GI_sqrt+0x36> + 3398: 6cd3 mov r3, r4 + 339a: 6c17 mov r0, r5 + 339c: 6c53 mov r1, r4 + 339e: e00004ff bsr 0x3d9c // 3d9c <__muldf3> + 33a2: 6c83 mov r2, r0 + 33a4: 6cc7 mov r3, r1 + 33a6: 6c17 mov r0, r5 + 33a8: 6c53 mov r1, r4 + 33aa: e00004c5 bsr 0x3d34 // 3d34 <__adddf3> + 33ae: 6d43 mov r5, r0 + 33b0: 6d07 mov r4, r1 + 33b2: 6c17 mov r0, r5 + 33b4: 6c53 mov r1, r4 + 33b6: 1403 addi r14, r14, 12 + 33b8: 1494 pop r4-r7, r15 + 33ba: 3c20 cmplti r4, 1 + 33bc: 0c13 bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33be: 4461 lsli r3, r4, 1 + 33c0: 4b21 lsri r1, r3, 1 + 33c2: 6c54 or r1, r5 + 33c4: 3940 cmpnei r1, 0 + 33c6: 0ff6 bf 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 33c8: 3c40 cmpnei r4, 0 + 33ca: 0c0c bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33cc: 6c97 mov r2, r5 + 33ce: 6cd3 mov r3, r4 + 33d0: 6c17 mov r0, r5 + 33d2: 6c53 mov r1, r4 + 33d4: e00004c8 bsr 0x3d64 // 3d64 <__subdf3> + 33d8: 6c83 mov r2, r0 + 33da: 6cc7 mov r3, r1 + 33dc: e00005fa bsr 0x3fd0 // 3fd0 <__divdf3> + 33e0: 07e7 br 0x33ae // 33ae <__GI_sqrt+0x2a> + 33e2: 5494 asri r4, r4, 20 + 33e4: 3c40 cmpnei r4, 0 + 33e6: 0812 bt 0x340a // 340a <__GI_sqrt+0x86> + 33e8: 3840 cmpnei r0, 0 + 33ea: 0c76 bf 0x34d6 // 34d6 <__GI_sqrt+0x152> + 33ec: 3580 movi r5, 128 + 33ee: 3300 movi r3, 0 + 33f0: 452d lsli r1, r5, 13 + 33f2: 6d83 mov r6, r0 + 33f4: 6984 and r6, r1 + 33f6: 3e40 cmpnei r6, 0 + 33f8: 0c73 bf 0x34de // 34de <__GI_sqrt+0x15a> + 33fa: 5b23 subi r1, r3, 1 + 33fc: 3620 movi r6, 32 + 33fe: 6106 subu r4, r1 + 3400: 618e subu r6, r3 + 3402: 6c4b mov r1, r2 + 3404: 7059 lsr r1, r6 + 3406: 6c04 or r0, r1 + 3408: 708c lsl r2, r3 + 340a: 117b lrw r3, 0xfffffc01 // 34f4 <__GI_sqrt+0x170> + 340c: 610c addu r4, r3 + 340e: 3601 movi r6, 1 + 3410: 400c lsli r0, r0, 12 + 3412: 6990 and r6, r4 + 3414: 480c lsri r0, r0, 12 + 3416: 3e40 cmpnei r6, 0 + 3418: 38b4 bseti r0, 20 + 341a: 0c05 bf 0x3424 // 3424 <__GI_sqrt+0xa0> + 341c: 4a3f lsri r1, r2, 31 + 341e: 40a1 lsli r5, r0, 1 + 3420: 5914 addu r0, r1, r5 + 3422: 4241 lsli r2, r2, 1 + 3424: 4a7f lsri r3, r2, 31 + 3426: 60c0 addu r3, r0 + 3428: 5481 asri r4, r4, 1 + 342a: 3680 movi r6, 128 + 342c: 3100 movi r1, 0 + 342e: 60c0 addu r3, r0 + 3430: b882 st.w r4, (r14, 0x8) + 3432: 4241 lsli r2, r2, 1 + 3434: 3516 movi r5, 22 + 3436: 460e lsli r0, r6, 14 + 3438: b820 st.w r1, (r14, 0x0) + 343a: 5980 addu r4, r1, r0 + 343c: 650d cmplt r3, r4 + 343e: 0806 bt 0x344a // 344a <__GI_sqrt+0xc6> + 3440: 98c0 ld.w r6, (r14, 0x0) + 3442: 6180 addu r6, r0 + 3444: 5c20 addu r1, r4, r0 + 3446: 60d2 subu r3, r4 + 3448: b8c0 st.w r6, (r14, 0x0) + 344a: 2d00 subi r5, 1 + 344c: 4a9f lsri r4, r2, 31 + 344e: 4361 lsli r3, r3, 1 + 3450: 3d40 cmpnei r5, 0 + 3452: 60d0 addu r3, r4 + 3454: 4241 lsli r2, r2, 1 + 3456: 4801 lsri r0, r0, 1 + 3458: 0bf1 bt 0x343a // 343a <__GI_sqrt+0xb6> + 345a: 3620 movi r6, 32 + 345c: 3480 movi r4, 128 + 345e: 3000 movi r0, 0 + 3460: b8c1 st.w r6, (r14, 0x4) + 3462: 4498 lsli r4, r4, 24 + 3464: 64c5 cmplt r1, r3 + 3466: 5cd4 addu r6, r4, r5 + 3468: 0805 bt 0x3472 // 3472 <__GI_sqrt+0xee> + 346a: 644e cmpne r3, r1 + 346c: 0810 bt 0x348c // 348c <__GI_sqrt+0x108> + 346e: 6588 cmphs r2, r6 + 3470: 0c0e bf 0x348c // 348c <__GI_sqrt+0x108> + 3472: 3edf btsti r6, 31 + 3474: 5eb0 addu r5, r6, r4 + 3476: 0c37 bf 0x34e4 // 34e4 <__GI_sqrt+0x160> + 3478: 3ddf btsti r5, 31 + 347a: 0835 bt 0x34e4 // 34e4 <__GI_sqrt+0x160> + 347c: 59e2 addi r7, r1, 1 + 347e: 6588 cmphs r2, r6 + 3480: 60c6 subu r3, r1 + 3482: 0802 bt 0x3486 // 3486 <__GI_sqrt+0x102> + 3484: 2b00 subi r3, 1 + 3486: 609a subu r2, r6 + 3488: 6010 addu r0, r4 + 348a: 6c5f mov r1, r7 + 348c: 4adf lsri r6, r2, 31 + 348e: 618c addu r6, r3 + 3490: 60d8 addu r3, r6 + 3492: 98c1 ld.w r6, (r14, 0x4) + 3494: 2e00 subi r6, 1 + 3496: 3e40 cmpnei r6, 0 + 3498: 4241 lsli r2, r2, 1 + 349a: 4c81 lsri r4, r4, 1 + 349c: b8c1 st.w r6, (r14, 0x4) + 349e: 0be3 bt 0x3464 // 3464 <__GI_sqrt+0xe0> + 34a0: 6cc8 or r3, r2 + 34a2: 3b40 cmpnei r3, 0 + 34a4: 0c09 bf 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34a6: 3300 movi r3, 0 + 34a8: 2b00 subi r3, 1 + 34aa: 64c2 cmpne r0, r3 + 34ac: 081e bt 0x34e8 // 34e8 <__GI_sqrt+0x164> + 34ae: 9800 ld.w r0, (r14, 0x0) + 34b0: 2000 addi r0, 1 + 34b2: b800 st.w r0, (r14, 0x0) + 34b4: 3000 movi r0, 0 + 34b6: 3401 movi r4, 1 + 34b8: 9860 ld.w r3, (r14, 0x0) + 34ba: 98a0 ld.w r5, (r14, 0x0) + 34bc: 690c and r4, r3 + 34be: 5541 asri r2, r5, 1 + 34c0: 102e lrw r1, 0x3fe00000 // 34f8 <__GI_sqrt+0x174> + 34c2: 3c40 cmpnei r4, 0 + 34c4: 6048 addu r1, r2 + 34c6: 4801 lsri r0, r0, 1 + 34c8: 0c02 bf 0x34cc // 34cc <__GI_sqrt+0x148> + 34ca: 38bf bseti r0, 31 + 34cc: 98a2 ld.w r5, (r14, 0x8) + 34ce: 4594 lsli r4, r5, 20 + 34d0: 6104 addu r4, r1 + 34d2: 6d43 mov r5, r0 + 34d4: 076f br 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 34d6: 4a0b lsri r0, r2, 11 + 34d8: 2c14 subi r4, 21 + 34da: 4255 lsli r2, r2, 21 + 34dc: 0786 br 0x33e8 // 33e8 <__GI_sqrt+0x64> + 34de: 4001 lsli r0, r0, 1 + 34e0: 2300 addi r3, 1 + 34e2: 0788 br 0x33f2 // 33f2 <__GI_sqrt+0x6e> + 34e4: 6dc7 mov r7, r1 + 34e6: 07cc br 0x347e // 347e <__GI_sqrt+0xfa> + 34e8: 2000 addi r0, 1 + 34ea: 3880 bclri r0, 0 + 34ec: 07e5 br 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34ee: 0000 bkpt + 34f0: 7ff00000 .long 0x7ff00000 + 34f4: fffffc01 .long 0xfffffc01 + 34f8: 3fe00000 .long 0x3fe00000 + +000034fc <___gnu_csky_case_uqi>: + 34fc: 1421 subi r14, r14, 4 + 34fe: b820 st.w r1, (r14, 0x0) + 3500: 6c7f mov r1, r15 + 3502: 6040 addu r1, r0 + 3504: 8120 ld.b r1, (r1, 0x0) + 3506: 4121 lsli r1, r1, 1 + 3508: 63c4 addu r15, r1 + 350a: 9820 ld.w r1, (r14, 0x0) + 350c: 1401 addi r14, r14, 4 + 350e: 783c jmp r15 + +00003510 <___gnu_csky_case_uhi>: + 3510: 1422 subi r14, r14, 8 + 3512: b801 st.w r0, (r14, 0x4) + 3514: b820 st.w r1, (r14, 0x0) + 3516: 6c7f mov r1, r15 + 3518: 4001 lsli r0, r0, 1 + 351a: 6040 addu r1, r0 + 351c: 8920 ld.h r1, (r1, 0x0) + 351e: 4121 lsli r1, r1, 1 + 3520: 63c4 addu r15, r1 + 3522: 9801 ld.w r0, (r14, 0x4) + 3524: 9820 ld.w r1, (r14, 0x0) + 3526: 1402 addi r14, r14, 8 + 3528: 783c jmp r15 + ... + +0000352c <__fixunssfsi>: + 352c: 14d1 push r4, r15 + 352e: 319e movi r1, 158 + 3530: 4137 lsli r1, r1, 23 + 3532: 6d03 mov r4, r0 + 3534: e000020c bsr 0x394c // 394c <__gesf2> + 3538: 38df btsti r0, 31 + 353a: 0c05 bf 0x3544 // 3544 <__fixunssfsi+0x18> + 353c: 6c13 mov r0, r4 + 353e: e0000255 bsr 0x39e8 // 39e8 <__fixsfsi> + 3542: 1491 pop r4, r15 + 3544: 319e movi r1, 158 + 3546: 4137 lsli r1, r1, 23 + 3548: 6c13 mov r0, r4 + 354a: e00000e1 bsr 0x370c // 370c <__subsf3> + 354e: e000024d bsr 0x39e8 // 39e8 <__fixsfsi> + 3552: 3380 movi r3, 128 + 3554: 4378 lsli r3, r3, 24 + 3556: 600c addu r0, r3 + 3558: 1491 pop r4, r15 + ... + +0000355c <__fixunsdfsi>: + 355c: 14d2 push r4-r5, r15 + 355e: 3200 movi r2, 0 + 3560: 106c lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 3562: 6d43 mov r5, r0 + 3564: 6d07 mov r4, r1 + 3566: e00005fd bsr 0x4160 // 4160 <__gedf2> + 356a: 38df btsti r0, 31 + 356c: 0c06 bf 0x3578 // 3578 <__fixunsdfsi+0x1c> + 356e: 6c17 mov r0, r5 + 3570: 6c53 mov r1, r4 + 3572: e000066b bsr 0x4248 // 4248 <__fixdfsi> + 3576: 1492 pop r4-r5, r15 + 3578: 3200 movi r2, 0 + 357a: 1066 lrw r3, 0x41e00000 // 3590 <__fixunsdfsi+0x34> + 357c: 6c17 mov r0, r5 + 357e: 6c53 mov r1, r4 + 3580: e00003f2 bsr 0x3d64 // 3d64 <__subdf3> + 3584: e0000662 bsr 0x4248 // 4248 <__fixdfsi> + 3588: 3380 movi r3, 128 + 358a: 4378 lsli r3, r3, 24 + 358c: 600c addu r0, r3 + 358e: 1492 pop r4-r5, r15 + 3590: 41e00000 .long 0x41e00000 + +00003594 <_fpadd_parts>: + 3594: 14c4 push r4-r7 + 3596: 1421 subi r14, r14, 4 + 3598: 9060 ld.w r3, (r0, 0x0) + 359a: 3b01 cmphsi r3, 2 + 359c: 0c3b bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 359e: 9180 ld.w r4, (r1, 0x0) + 35a0: 3c01 cmphsi r4, 2 + 35a2: 0c3a bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35a4: 3b44 cmpnei r3, 4 + 35a6: 0c76 bf 0x3692 // 3692 <_fpadd_parts+0xfe> + 35a8: 3c44 cmpnei r4, 4 + 35aa: 0c36 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35ac: 3c42 cmpnei r4, 2 + 35ae: 0c5c bf 0x3666 // 3666 <_fpadd_parts+0xd2> + 35b0: 3b42 cmpnei r3, 2 + 35b2: 0c32 bf 0x3616 // 3616 <_fpadd_parts+0x82> + 35b4: 90a2 ld.w r5, (r0, 0x8) + 35b6: 91e2 ld.w r7, (r1, 0x8) + 35b8: 5d9d subu r4, r5, r7 + 35ba: 9063 ld.w r3, (r0, 0xc) + 35bc: 3cdf btsti r4, 31 + 35be: b860 st.w r3, (r14, 0x0) + 35c0: 6d93 mov r6, r4 + 35c2: 9163 ld.w r3, (r1, 0xc) + 35c4: 086f bt 0x36a2 // 36a2 <_fpadd_parts+0x10e> + 35c6: 3e3f cmplti r6, 32 + 35c8: 082a bt 0x361c // 361c <_fpadd_parts+0x88> + 35ca: 655d cmplt r7, r5 + 35cc: 0c5f bf 0x368a // 368a <_fpadd_parts+0xf6> + 35ce: 3300 movi r3, 0 + 35d0: 9001 ld.w r0, (r0, 0x4) + 35d2: 9121 ld.w r1, (r1, 0x4) + 35d4: 6442 cmpne r0, r1 + 35d6: 0c33 bf 0x363c // 363c <_fpadd_parts+0xa8> + 35d8: 3840 cmpnei r0, 0 + 35da: 9820 ld.w r1, (r14, 0x0) + 35dc: 0c54 bf 0x3684 // 3684 <_fpadd_parts+0xf0> + 35de: 60c6 subu r3, r1 + 35e0: 3bdf btsti r3, 31 + 35e2: 0863 bt 0x36a8 // 36a8 <_fpadd_parts+0x114> + 35e4: 3100 movi r1, 0 + 35e6: b221 st.w r1, (r2, 0x4) + 35e8: b2a2 st.w r5, (r2, 0x8) + 35ea: b263 st.w r3, (r2, 0xc) + 35ec: 5b23 subi r1, r3, 1 + 35ee: 119b lrw r4, 0x3fffffff // 36d8 <_fpadd_parts+0x144> + 35f0: 6504 cmphs r1, r4 + 35f2: 080b bt 0x3608 // 3608 <_fpadd_parts+0x74> + 35f4: 9222 ld.w r1, (r2, 0x8) + 35f6: 2900 subi r1, 1 + 35f8: 4361 lsli r3, r3, 1 + 35fa: 5b03 subi r0, r3, 1 + 35fc: 6410 cmphs r4, r0 + 35fe: 6d47 mov r5, r1 + 3600: 2900 subi r1, 1 + 3602: 0bfb bt 0x35f8 // 35f8 <_fpadd_parts+0x64> + 3604: b263 st.w r3, (r2, 0xc) + 3606: b2a2 st.w r5, (r2, 0x8) + 3608: 3103 movi r1, 3 + 360a: 3bdf btsti r3, 31 + 360c: b220 st.w r1, (r2, 0x0) + 360e: 0821 bt 0x3650 // 3650 <_fpadd_parts+0xbc> + 3610: 6c0b mov r0, r2 + 3612: 1401 addi r14, r14, 4 + 3614: 1484 pop r4-r7 + 3616: 6c07 mov r0, r1 + 3618: 1401 addi r14, r14, 4 + 361a: 1484 pop r4-r7 + 361c: 3c20 cmplti r4, 1 + 361e: 084c bt 0x36b6 // 36b6 <_fpadd_parts+0x122> + 3620: 3401 movi r4, 1 + 3622: 7118 lsl r4, r6 + 3624: 2c00 subi r4, 1 + 3626: 6dcf mov r7, r3 + 3628: 68d0 and r3, r4 + 362a: 3b40 cmpnei r3, 0 + 362c: 9001 ld.w r0, (r0, 0x4) + 362e: 3300 movi r3, 0 + 3630: 9121 ld.w r1, (r1, 0x4) + 3632: 60cd addc r3, r3 + 3634: 71d9 lsr r7, r6 + 3636: 6442 cmpne r0, r1 + 3638: 6cdc or r3, r7 + 363a: 0bcf bt 0x35d8 // 35d8 <_fpadd_parts+0x44> + 363c: 9820 ld.w r1, (r14, 0x0) + 363e: 604c addu r1, r3 + 3640: 6cc7 mov r3, r1 + 3642: b223 st.w r1, (r2, 0xc) + 3644: 3bdf btsti r3, 31 + 3646: 3103 movi r1, 3 + 3648: b201 st.w r0, (r2, 0x4) + 364a: b2a2 st.w r5, (r2, 0x8) + 364c: b220 st.w r1, (r2, 0x0) + 364e: 0fe1 bf 0x3610 // 3610 <_fpadd_parts+0x7c> + 3650: 3001 movi r0, 1 + 3652: 4b21 lsri r1, r3, 1 + 3654: 68c0 and r3, r0 + 3656: 6cc4 or r3, r1 + 3658: b263 st.w r3, (r2, 0xc) + 365a: 9262 ld.w r3, (r2, 0x8) + 365c: 2300 addi r3, 1 + 365e: 6c0b mov r0, r2 + 3660: b262 st.w r3, (r2, 0x8) + 3662: 1401 addi r14, r14, 4 + 3664: 1484 pop r4-r7 + 3666: 3b42 cmpnei r3, 2 + 3668: 0bd5 bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 366a: b260 st.w r3, (r2, 0x0) + 366c: 9061 ld.w r3, (r0, 0x4) + 366e: b261 st.w r3, (r2, 0x4) + 3670: 9062 ld.w r3, (r0, 0x8) + 3672: b262 st.w r3, (r2, 0x8) + 3674: 9063 ld.w r3, (r0, 0xc) + 3676: 9121 ld.w r1, (r1, 0x4) + 3678: b263 st.w r3, (r2, 0xc) + 367a: 9061 ld.w r3, (r0, 0x4) + 367c: 68c4 and r3, r1 + 367e: b261 st.w r3, (r2, 0x4) + 3680: 6c0b mov r0, r2 + 3682: 07c8 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 3684: 604e subu r1, r3 + 3686: 6cc7 mov r3, r1 + 3688: 07ac br 0x35e0 // 35e0 <_fpadd_parts+0x4c> + 368a: 3400 movi r4, 0 + 368c: 6d5f mov r5, r7 + 368e: b880 st.w r4, (r14, 0x0) + 3690: 07a0 br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 3692: 3c44 cmpnei r4, 4 + 3694: 0bbf bt 0x3612 // 3612 <_fpadd_parts+0x7e> + 3696: 9041 ld.w r2, (r0, 0x4) + 3698: 9161 ld.w r3, (r1, 0x4) + 369a: 64ca cmpne r2, r3 + 369c: 0fbb bf 0x3612 // 3612 <_fpadd_parts+0x7e> + 369e: 1010 lrw r0, 0xabec // 36dc <_fpadd_parts+0x148> + 36a0: 07b9 br 0x3612 // 3612 <_fpadd_parts+0x7e> + 36a2: 3600 movi r6, 0 + 36a4: 6192 subu r6, r4 + 36a6: 0790 br 0x35c6 // 35c6 <_fpadd_parts+0x32> + 36a8: 3101 movi r1, 1 + 36aa: b221 st.w r1, (r2, 0x4) + 36ac: 3100 movi r1, 0 + 36ae: 596d subu r3, r1, r3 + 36b0: b2a2 st.w r5, (r2, 0x8) + 36b2: b263 st.w r3, (r2, 0xc) + 36b4: 079c br 0x35ec // 35ec <_fpadd_parts+0x58> + 36b6: 3c40 cmpnei r4, 0 + 36b8: 0f8c bf 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36ba: 3401 movi r4, 1 + 36bc: 98e0 ld.w r7, (r14, 0x0) + 36be: 7118 lsl r4, r6 + 36c0: 71d9 lsr r7, r6 + 36c2: 6158 addu r5, r6 + 36c4: 2c00 subi r4, 1 + 36c6: 98c0 ld.w r6, (r14, 0x0) + 36c8: 6918 and r4, r6 + 36ca: 3c40 cmpnei r4, 0 + 36cc: 3400 movi r4, 0 + 36ce: 6111 addc r4, r4 + 36d0: 6dd0 or r7, r4 + 36d2: b8e0 st.w r7, (r14, 0x0) + 36d4: 077e br 0x35d0 // 35d0 <_fpadd_parts+0x3c> + 36d6: 0000 bkpt + 36d8: 3fffffff .long 0x3fffffff + 36dc: 0000abec .long 0x0000abec + +000036e0 <__addsf3>: + 36e0: 14d0 push r15 + 36e2: 142e subi r14, r14, 56 + 36e4: b800 st.w r0, (r14, 0x0) + 36e6: b821 st.w r1, (r14, 0x4) + 36e8: 6c3b mov r0, r14 + 36ea: 1902 addi r1, r14, 8 + 36ec: e00006da bsr 0x44a0 // 44a0 <__unpack_f> + 36f0: 1906 addi r1, r14, 24 + 36f2: 1801 addi r0, r14, 4 + 36f4: e00006d6 bsr 0x44a0 // 44a0 <__unpack_f> + 36f8: 1a0a addi r2, r14, 40 + 36fa: 1906 addi r1, r14, 24 + 36fc: 1802 addi r0, r14, 8 + 36fe: e3ffff4b bsr 0x3594 // 3594 <_fpadd_parts> + 3702: e0000673 bsr 0x43e8 // 43e8 <__pack_f> + 3706: 140e addi r14, r14, 56 + 3708: 1490 pop r15 + ... + +0000370c <__subsf3>: + 370c: 14d0 push r15 + 370e: 142e subi r14, r14, 56 + 3710: b800 st.w r0, (r14, 0x0) + 3712: b821 st.w r1, (r14, 0x4) + 3714: 6c3b mov r0, r14 + 3716: 1902 addi r1, r14, 8 + 3718: e00006c4 bsr 0x44a0 // 44a0 <__unpack_f> + 371c: 1906 addi r1, r14, 24 + 371e: 1801 addi r0, r14, 4 + 3720: e00006c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3724: 9867 ld.w r3, (r14, 0x1c) + 3726: 3201 movi r2, 1 + 3728: 6cc9 xor r3, r2 + 372a: 1906 addi r1, r14, 24 + 372c: 1a0a addi r2, r14, 40 + 372e: 1802 addi r0, r14, 8 + 3730: b867 st.w r3, (r14, 0x1c) + 3732: e3ffff31 bsr 0x3594 // 3594 <_fpadd_parts> + 3736: e0000659 bsr 0x43e8 // 43e8 <__pack_f> + 373a: 140e addi r14, r14, 56 + 373c: 1490 pop r15 + ... + +00003740 <__mulsf3>: + 3740: 14d4 push r4-r7, r15 + 3742: 1430 subi r14, r14, 64 + 3744: b802 st.w r0, (r14, 0x8) + 3746: b823 st.w r1, (r14, 0xc) + 3748: 1802 addi r0, r14, 8 + 374a: 1904 addi r1, r14, 16 + 374c: e00006aa bsr 0x44a0 // 44a0 <__unpack_f> + 3750: 1908 addi r1, r14, 32 + 3752: 1803 addi r0, r14, 12 + 3754: e00006a6 bsr 0x44a0 // 44a0 <__unpack_f> + 3758: 9864 ld.w r3, (r14, 0x10) + 375a: 3b01 cmphsi r3, 2 + 375c: 0c4d bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 375e: 9848 ld.w r2, (r14, 0x20) + 3760: 3a01 cmphsi r2, 2 + 3762: 0c3d bf 0x37dc // 37dc <__mulsf3+0x9c> + 3764: 3b44 cmpnei r3, 4 + 3766: 0c46 bf 0x37f2 // 37f2 <__mulsf3+0xb2> + 3768: 3a44 cmpnei r2, 4 + 376a: 0c37 bf 0x37d8 // 37d8 <__mulsf3+0x98> + 376c: 3b42 cmpnei r3, 2 + 376e: 0c44 bf 0x37f6 // 37f6 <__mulsf3+0xb6> + 3770: 3a42 cmpnei r2, 2 + 3772: 0c35 bf 0x37dc // 37dc <__mulsf3+0x9c> + 3774: 9867 ld.w r3, (r14, 0x1c) + 3776: b860 st.w r3, (r14, 0x0) + 3778: 986b ld.w r3, (r14, 0x2c) + 377a: 6c8f mov r2, r3 + 377c: b861 st.w r3, (r14, 0x4) + 377e: 9800 ld.w r0, (r14, 0x0) + 3780: 3300 movi r3, 0 + 3782: 3100 movi r1, 0 + 3784: e00005f0 bsr 0x4364 // 4364 <__muldi3> + 3788: 98c6 ld.w r6, (r14, 0x18) + 378a: 984a ld.w r2, (r14, 0x28) + 378c: 6098 addu r2, r6 + 378e: 5ac6 addi r6, r2, 2 + 3790: b8ce st.w r6, (r14, 0x38) + 3792: 98e5 ld.w r7, (r14, 0x14) + 3794: 98c9 ld.w r6, (r14, 0x24) + 3796: 659e cmpne r7, r6 + 3798: 3400 movi r4, 0 + 379a: 6111 addc r4, r4 + 379c: 39df btsti r1, 31 + 379e: 6cc7 mov r3, r1 + 37a0: 6d43 mov r5, r0 + 37a2: b88d st.w r4, (r14, 0x34) + 37a4: 0c3f bf 0x3822 // 3822 <__mulsf3+0xe2> + 37a6: 3301 movi r3, 1 + 37a8: 68c4 and r3, r1 + 37aa: 3b40 cmpnei r3, 0 + 37ac: 2202 addi r2, 3 + 37ae: 0811 bt 0x37d0 // 37d0 <__mulsf3+0x90> + 37b0: 4961 lsri r3, r1, 1 + 37b2: b84e st.w r2, (r14, 0x38) + 37b4: 317f movi r1, 127 + 37b6: 6c8f mov r2, r3 + 37b8: 6884 and r2, r1 + 37ba: 3040 movi r0, 64 + 37bc: 640a cmpne r2, r0 + 37be: 0c27 bf 0x380c // 380c <__mulsf3+0xcc> + 37c0: b86f st.w r3, (r14, 0x3c) + 37c2: 3303 movi r3, 3 + 37c4: b86c st.w r3, (r14, 0x30) + 37c6: 180c addi r0, r14, 48 + 37c8: e0000610 bsr 0x43e8 // 43e8 <__pack_f> + 37cc: 1410 addi r14, r14, 64 + 37ce: 1494 pop r4-r7, r15 + 37d0: 4801 lsri r0, r0, 1 + 37d2: 38bf bseti r0, 31 + 37d4: 6d43 mov r5, r0 + 37d6: 07ed br 0x37b0 // 37b0 <__mulsf3+0x70> + 37d8: 3b42 cmpnei r3, 2 + 37da: 0c22 bf 0x381e // 381e <__mulsf3+0xde> + 37dc: 9869 ld.w r3, (r14, 0x24) + 37de: 9845 ld.w r2, (r14, 0x14) + 37e0: 64ca cmpne r2, r3 + 37e2: 3300 movi r3, 0 + 37e4: 60cd addc r3, r3 + 37e6: 1808 addi r0, r14, 32 + 37e8: b869 st.w r3, (r14, 0x24) + 37ea: e00005ff bsr 0x43e8 // 43e8 <__pack_f> + 37ee: 1410 addi r14, r14, 64 + 37f0: 1494 pop r4-r7, r15 + 37f2: 3a42 cmpnei r2, 2 + 37f4: 0c15 bf 0x381e // 381e <__mulsf3+0xde> + 37f6: 9845 ld.w r2, (r14, 0x14) + 37f8: 9869 ld.w r3, (r14, 0x24) + 37fa: 64ca cmpne r2, r3 + 37fc: 3300 movi r3, 0 + 37fe: 60cd addc r3, r3 + 3800: 1804 addi r0, r14, 16 + 3802: b865 st.w r3, (r14, 0x14) + 3804: e00005f2 bsr 0x43e8 // 43e8 <__pack_f> + 3808: 1410 addi r14, r14, 64 + 380a: 1494 pop r4-r7, r15 + 380c: 3080 movi r0, 128 + 380e: 680c and r0, r3 + 3810: 3840 cmpnei r0, 0 + 3812: 0bd7 bt 0x37c0 // 37c0 <__mulsf3+0x80> + 3814: 3d40 cmpnei r5, 0 + 3816: 0fd5 bf 0x37c0 // 37c0 <__mulsf3+0x80> + 3818: 60c8 addu r3, r2 + 381a: 68c5 andn r3, r1 + 381c: 07d2 br 0x37c0 // 37c0 <__mulsf3+0x80> + 381e: 100d lrw r0, 0xabec // 3850 <__mulsf3+0x110> + 3820: 07d4 br 0x37c8 // 37c8 <__mulsf3+0x88> + 3822: 108d lrw r4, 0x3fffffff // 3854 <__mulsf3+0x114> + 3824: 6450 cmphs r4, r1 + 3826: 0fc7 bf 0x37b4 // 37b4 <__mulsf3+0x74> + 3828: 2200 addi r2, 1 + 382a: 3001 movi r0, 1 + 382c: 6c53 mov r1, r4 + 382e: 0405 br 0x3838 // 3838 <__mulsf3+0xf8> + 3830: 64c4 cmphs r1, r3 + 3832: 45a1 lsli r5, r5, 1 + 3834: 2a00 subi r2, 1 + 3836: 0c0a bf 0x384a // 384a <__mulsf3+0x10a> + 3838: 3ddf btsti r5, 31 + 383a: 6d0b mov r4, r2 + 383c: 4361 lsli r3, r3, 1 + 383e: 0ff9 bf 0x3830 // 3830 <__mulsf3+0xf0> + 3840: 6cc0 or r3, r0 + 3842: 64c4 cmphs r1, r3 + 3844: 45a1 lsli r5, r5, 1 + 3846: 2a00 subi r2, 1 + 3848: 0bf8 bt 0x3838 // 3838 <__mulsf3+0xf8> + 384a: b88e st.w r4, (r14, 0x38) + 384c: 07b4 br 0x37b4 // 37b4 <__mulsf3+0x74> + 384e: 0000 bkpt + 3850: 0000abec .long 0x0000abec + 3854: 3fffffff .long 0x3fffffff + +00003858 <__divsf3>: + 3858: 14d1 push r4, r15 + 385a: 142a subi r14, r14, 40 + 385c: b800 st.w r0, (r14, 0x0) + 385e: b821 st.w r1, (r14, 0x4) + 3860: 6c3b mov r0, r14 + 3862: 1902 addi r1, r14, 8 + 3864: e000061e bsr 0x44a0 // 44a0 <__unpack_f> + 3868: 1906 addi r1, r14, 24 + 386a: 1801 addi r0, r14, 4 + 386c: e000061a bsr 0x44a0 // 44a0 <__unpack_f> + 3870: 9862 ld.w r3, (r14, 0x8) + 3872: 3b01 cmphsi r3, 2 + 3874: 0c2c bf 0x38cc // 38cc <__divsf3+0x74> + 3876: 9826 ld.w r1, (r14, 0x18) + 3878: 3901 cmphsi r1, 2 + 387a: 0c48 bf 0x390a // 390a <__divsf3+0xb2> + 387c: 9843 ld.w r2, (r14, 0xc) + 387e: 9807 ld.w r0, (r14, 0x1c) + 3880: 6c81 xor r2, r0 + 3882: 3b44 cmpnei r3, 4 + 3884: b843 st.w r2, (r14, 0xc) + 3886: 0c28 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 3888: 3b42 cmpnei r3, 2 + 388a: 0c26 bf 0x38d6 // 38d6 <__divsf3+0x7e> + 388c: 3944 cmpnei r1, 4 + 388e: 0c2c bf 0x38e6 // 38e6 <__divsf3+0x8e> + 3890: 3942 cmpnei r1, 2 + 3892: 0c38 bf 0x3902 // 3902 <__divsf3+0xaa> + 3894: 9844 ld.w r2, (r14, 0x10) + 3896: 9868 ld.w r3, (r14, 0x20) + 3898: 608e subu r2, r3 + 389a: 9809 ld.w r0, (r14, 0x24) + 389c: 9865 ld.w r3, (r14, 0x14) + 389e: 640c cmphs r3, r0 + 38a0: b844 st.w r2, (r14, 0x10) + 38a2: 0c1e bf 0x38de // 38de <__divsf3+0x86> + 38a4: 3180 movi r1, 128 + 38a6: 321f movi r2, 31 + 38a8: 3400 movi r4, 0 + 38aa: 4137 lsli r1, r1, 23 + 38ac: 640c cmphs r3, r0 + 38ae: 0c03 bf 0x38b4 // 38b4 <__divsf3+0x5c> + 38b0: 6d04 or r4, r1 + 38b2: 60c2 subu r3, r0 + 38b4: 2a00 subi r2, 1 + 38b6: 3a40 cmpnei r2, 0 + 38b8: 4921 lsri r1, r1, 1 + 38ba: 4361 lsli r3, r3, 1 + 38bc: 0bf8 bt 0x38ac // 38ac <__divsf3+0x54> + 38be: 317f movi r1, 127 + 38c0: 6c93 mov r2, r4 + 38c2: 6884 and r2, r1 + 38c4: 3040 movi r0, 64 + 38c6: 640a cmpne r2, r0 + 38c8: 0c14 bf 0x38f0 // 38f0 <__divsf3+0x98> + 38ca: b885 st.w r4, (r14, 0x14) + 38cc: 1802 addi r0, r14, 8 + 38ce: e000058d bsr 0x43e8 // 43e8 <__pack_f> + 38d2: 140a addi r14, r14, 40 + 38d4: 1491 pop r4, r15 + 38d6: 644e cmpne r3, r1 + 38d8: 0bfa bt 0x38cc // 38cc <__divsf3+0x74> + 38da: 100e lrw r0, 0xabec // 3910 <__divsf3+0xb8> + 38dc: 07f9 br 0x38ce // 38ce <__divsf3+0x76> + 38de: 2a00 subi r2, 1 + 38e0: 4361 lsli r3, r3, 1 + 38e2: b844 st.w r2, (r14, 0x10) + 38e4: 07e0 br 0x38a4 // 38a4 <__divsf3+0x4c> + 38e6: 3300 movi r3, 0 + 38e8: b865 st.w r3, (r14, 0x14) + 38ea: b864 st.w r3, (r14, 0x10) + 38ec: 1802 addi r0, r14, 8 + 38ee: 07f0 br 0x38ce // 38ce <__divsf3+0x76> + 38f0: 3080 movi r0, 128 + 38f2: 6810 and r0, r4 + 38f4: 3840 cmpnei r0, 0 + 38f6: 0bea bt 0x38ca // 38ca <__divsf3+0x72> + 38f8: 3b40 cmpnei r3, 0 + 38fa: 0fe8 bf 0x38ca // 38ca <__divsf3+0x72> + 38fc: 6108 addu r4, r2 + 38fe: 6905 andn r4, r1 + 3900: 07e5 br 0x38ca // 38ca <__divsf3+0x72> + 3902: 3304 movi r3, 4 + 3904: b862 st.w r3, (r14, 0x8) + 3906: 1802 addi r0, r14, 8 + 3908: 07e3 br 0x38ce // 38ce <__divsf3+0x76> + 390a: 1806 addi r0, r14, 24 + 390c: 07e1 br 0x38ce // 38ce <__divsf3+0x76> + 390e: 0000 bkpt + 3910: 0000abec .long 0x0000abec + +00003914 <__nesf2>: + 3914: 14d0 push r15 + 3916: 142a subi r14, r14, 40 + 3918: b800 st.w r0, (r14, 0x0) + 391a: b821 st.w r1, (r14, 0x4) + 391c: 6c3b mov r0, r14 + 391e: 1902 addi r1, r14, 8 + 3920: e00005c0 bsr 0x44a0 // 44a0 <__unpack_f> + 3924: 1906 addi r1, r14, 24 + 3926: 1801 addi r0, r14, 4 + 3928: e00005bc bsr 0x44a0 // 44a0 <__unpack_f> + 392c: 9862 ld.w r3, (r14, 0x8) + 392e: 3b01 cmphsi r3, 2 + 3930: 0c0a bf 0x3944 // 3944 <__nesf2+0x30> + 3932: 9866 ld.w r3, (r14, 0x18) + 3934: 3b01 cmphsi r3, 2 + 3936: 0c07 bf 0x3944 // 3944 <__nesf2+0x30> + 3938: 1906 addi r1, r14, 24 + 393a: 1802 addi r0, r14, 8 + 393c: e00005f4 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3940: 140a addi r14, r14, 40 + 3942: 1490 pop r15 + 3944: 3001 movi r0, 1 + 3946: 140a addi r14, r14, 40 + 3948: 1490 pop r15 + ... + +0000394c <__gesf2>: + 394c: 14d0 push r15 + 394e: 142a subi r14, r14, 40 + 3950: b800 st.w r0, (r14, 0x0) + 3952: b821 st.w r1, (r14, 0x4) + 3954: 6c3b mov r0, r14 + 3956: 1902 addi r1, r14, 8 + 3958: e00005a4 bsr 0x44a0 // 44a0 <__unpack_f> + 395c: 1906 addi r1, r14, 24 + 395e: 1801 addi r0, r14, 4 + 3960: e00005a0 bsr 0x44a0 // 44a0 <__unpack_f> + 3964: 9862 ld.w r3, (r14, 0x8) + 3966: 3b01 cmphsi r3, 2 + 3968: 0c0a bf 0x397c // 397c <__gesf2+0x30> + 396a: 9866 ld.w r3, (r14, 0x18) + 396c: 3b01 cmphsi r3, 2 + 396e: 0c07 bf 0x397c // 397c <__gesf2+0x30> + 3970: 1906 addi r1, r14, 24 + 3972: 1802 addi r0, r14, 8 + 3974: e00005d8 bsr 0x4524 // 4524 <__fpcmp_parts_f> + 3978: 140a addi r14, r14, 40 + 397a: 1490 pop r15 + 397c: 3000 movi r0, 0 + 397e: 2800 subi r0, 1 + 3980: 140a addi r14, r14, 40 + 3982: 1490 pop r15 + +00003984 <__floatsisf>: + 3984: 14d1 push r4, r15 + 3986: 1424 subi r14, r14, 16 + 3988: 3303 movi r3, 3 + 398a: b860 st.w r3, (r14, 0x0) + 398c: 3840 cmpnei r0, 0 + 398e: 487f lsri r3, r0, 31 + 3990: b861 st.w r3, (r14, 0x4) + 3992: 0808 bt 0x39a2 // 39a2 <__floatsisf+0x1e> + 3994: 3302 movi r3, 2 + 3996: b860 st.w r3, (r14, 0x0) + 3998: 6c3b mov r0, r14 + 399a: e0000527 bsr 0x43e8 // 43e8 <__pack_f> + 399e: 1404 addi r14, r14, 16 + 39a0: 1491 pop r4, r15 + 39a2: 331e movi r3, 30 + 39a4: 38df btsti r0, 31 + 39a6: b862 st.w r3, (r14, 0x8) + 39a8: 080f bt 0x39c6 // 39c6 <__floatsisf+0x42> + 39aa: 6d03 mov r4, r0 + 39ac: 6c13 mov r0, r4 + 39ae: e00004fd bsr 0x43a8 // 43a8 <__clzsi2> + 39b2: 5863 subi r3, r0, 1 + 39b4: 3b40 cmpnei r3, 0 + 39b6: 0c14 bf 0x39de // 39de <__floatsisf+0x5a> + 39b8: 6c13 mov r0, r4 + 39ba: 321e movi r2, 30 + 39bc: 700c lsl r0, r3 + 39be: 5a6d subu r3, r2, r3 + 39c0: b803 st.w r0, (r14, 0xc) + 39c2: b862 st.w r3, (r14, 0x8) + 39c4: 07ea br 0x3998 // 3998 <__floatsisf+0x14> + 39c6: 3380 movi r3, 128 + 39c8: 4378 lsli r3, r3, 24 + 39ca: 64c2 cmpne r0, r3 + 39cc: 0c0b bf 0x39e2 // 39e2 <__floatsisf+0x5e> + 39ce: 3400 movi r4, 0 + 39d0: 6102 subu r4, r0 + 39d2: 6c13 mov r0, r4 + 39d4: e00004ea bsr 0x43a8 // 43a8 <__clzsi2> + 39d8: 5863 subi r3, r0, 1 + 39da: 3b40 cmpnei r3, 0 + 39dc: 0bee bt 0x39b8 // 39b8 <__floatsisf+0x34> + 39de: b883 st.w r4, (r14, 0xc) + 39e0: 07dc br 0x3998 // 3998 <__floatsisf+0x14> + 39e2: 30cf movi r0, 207 + 39e4: 4018 lsli r0, r0, 24 + 39e6: 07dc br 0x399e // 399e <__floatsisf+0x1a> + +000039e8 <__fixsfsi>: + 39e8: 14d0 push r15 + 39ea: 1425 subi r14, r14, 20 + 39ec: b800 st.w r0, (r14, 0x0) + 39ee: 1901 addi r1, r14, 4 + 39f0: 6c3b mov r0, r14 + 39f2: e0000557 bsr 0x44a0 // 44a0 <__unpack_f> + 39f6: 9861 ld.w r3, (r14, 0x4) + 39f8: 3b02 cmphsi r3, 3 + 39fa: 0c1b bf 0x3a30 // 3a30 <__fixsfsi+0x48> + 39fc: 3b44 cmpnei r3, 4 + 39fe: 0c06 bf 0x3a0a // 3a0a <__fixsfsi+0x22> + 3a00: 9863 ld.w r3, (r14, 0xc) + 3a02: 3bdf btsti r3, 31 + 3a04: 0816 bt 0x3a30 // 3a30 <__fixsfsi+0x48> + 3a06: 3b3e cmplti r3, 31 + 3a08: 0809 bt 0x3a1a // 3a1a <__fixsfsi+0x32> + 3a0a: 9862 ld.w r3, (r14, 0x8) + 3a0c: 3b40 cmpnei r3, 0 + 3a0e: 3000 movi r0, 0 + 3a10: 6001 addc r0, r0 + 3a12: 106a lrw r3, 0x7fffffff // 3a38 <__fixsfsi+0x50> + 3a14: 600c addu r0, r3 + 3a16: 1405 addi r14, r14, 20 + 3a18: 1490 pop r15 + 3a1a: 321e movi r2, 30 + 3a1c: 5a6d subu r3, r2, r3 + 3a1e: 9804 ld.w r0, (r14, 0x10) + 3a20: 700d lsr r0, r3 + 3a22: 9862 ld.w r3, (r14, 0x8) + 3a24: 3b40 cmpnei r3, 0 + 3a26: 0ff8 bf 0x3a16 // 3a16 <__fixsfsi+0x2e> + 3a28: 3300 movi r3, 0 + 3a2a: 5b01 subu r0, r3, r0 + 3a2c: 1405 addi r14, r14, 20 + 3a2e: 1490 pop r15 + 3a30: 3000 movi r0, 0 + 3a32: 1405 addi r14, r14, 20 + 3a34: 1490 pop r15 + 3a36: 0000 bkpt + 3a38: 7fffffff .long 0x7fffffff + +00003a3c <__extendsfdf2>: + 3a3c: 14d1 push r4, r15 + 3a3e: 1426 subi r14, r14, 24 + 3a40: b801 st.w r0, (r14, 0x4) + 3a42: 1902 addi r1, r14, 8 + 3a44: 1801 addi r0, r14, 4 + 3a46: e000052d bsr 0x44a0 // 44a0 <__unpack_f> + 3a4a: 9865 ld.w r3, (r14, 0x14) + 3a4c: 4b82 lsri r4, r3, 2 + 3a4e: 9844 ld.w r2, (r14, 0x10) + 3a50: 437e lsli r3, r3, 30 + 3a52: 9823 ld.w r1, (r14, 0xc) + 3a54: 9802 ld.w r0, (r14, 0x8) + 3a56: b880 st.w r4, (r14, 0x0) + 3a58: e0000430 bsr 0x42b8 // 42b8 <__make_dp> + 3a5c: 1406 addi r14, r14, 24 + 3a5e: 1491 pop r4, r15 + +00003a60 <_fpadd_parts>: + 3a60: 14c4 push r4-r7 + 3a62: 142a subi r14, r14, 40 + 3a64: 9060 ld.w r3, (r0, 0x0) + 3a66: 3b01 cmphsi r3, 2 + 3a68: 6dcb mov r7, r2 + 3a6a: 0c67 bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3a6c: 9140 ld.w r2, (r1, 0x0) + 3a6e: 3a01 cmphsi r2, 2 + 3a70: 0c66 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a72: 3b44 cmpnei r3, 4 + 3a74: 0cde bf 0x3c30 // 3c30 <_fpadd_parts+0x1d0> + 3a76: 3a44 cmpnei r2, 4 + 3a78: 0c62 bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a7a: 3a42 cmpnei r2, 2 + 3a7c: 0cb7 bf 0x3bea // 3bea <_fpadd_parts+0x18a> + 3a7e: 3b42 cmpnei r3, 2 + 3a80: 0c5e bf 0x3b3c // 3b3c <_fpadd_parts+0xdc> + 3a82: 9043 ld.w r2, (r0, 0xc) + 3a84: 9064 ld.w r3, (r0, 0x10) + 3a86: 9082 ld.w r4, (r0, 0x8) + 3a88: 91a2 ld.w r5, (r1, 0x8) + 3a8a: b842 st.w r2, (r14, 0x8) + 3a8c: b863 st.w r3, (r14, 0xc) + 3a8e: 9143 ld.w r2, (r1, 0xc) + 3a90: 9164 ld.w r3, (r1, 0x10) + 3a92: b840 st.w r2, (r14, 0x0) + 3a94: b861 st.w r3, (r14, 0x4) + 3a96: 5c75 subu r3, r4, r5 + 3a98: 3bdf btsti r3, 31 + 3a9a: 6c8f mov r2, r3 + 3a9c: 08d2 bt 0x3c40 // 3c40 <_fpadd_parts+0x1e0> + 3a9e: 363f movi r6, 63 + 3aa0: 6499 cmplt r6, r2 + 3aa2: 0c50 bf 0x3b42 // 3b42 <_fpadd_parts+0xe2> + 3aa4: 6515 cmplt r5, r4 + 3aa6: 0cbf bf 0x3c24 // 3c24 <_fpadd_parts+0x1c4> + 3aa8: 3200 movi r2, 0 + 3aaa: 3300 movi r3, 0 + 3aac: b840 st.w r2, (r14, 0x0) + 3aae: b861 st.w r3, (r14, 0x4) + 3ab0: 9061 ld.w r3, (r0, 0x4) + 3ab2: 9141 ld.w r2, (r1, 0x4) + 3ab4: 648e cmpne r3, r2 + 3ab6: 0c78 bf 0x3ba6 // 3ba6 <_fpadd_parts+0x146> + 3ab8: 3b40 cmpnei r3, 0 + 3aba: 0cad bf 0x3c14 // 3c14 <_fpadd_parts+0x1b4> + 3abc: 9800 ld.w r0, (r14, 0x0) + 3abe: 9821 ld.w r1, (r14, 0x4) + 3ac0: 9842 ld.w r2, (r14, 0x8) + 3ac2: 9863 ld.w r3, (r14, 0xc) + 3ac4: 6400 cmphs r0, r0 + 3ac6: 600b subc r0, r2 + 3ac8: 604f subc r1, r3 + 3aca: 39df btsti r1, 31 + 3acc: 08bd bt 0x3c46 // 3c46 <_fpadd_parts+0x1e6> + 3ace: 3300 movi r3, 0 + 3ad0: b761 st.w r3, (r7, 0x4) + 3ad2: b782 st.w r4, (r7, 0x8) + 3ad4: 6c83 mov r2, r0 + 3ad6: 6cc7 mov r3, r1 + 3ad8: b703 st.w r0, (r7, 0xc) + 3ada: b724 st.w r1, (r7, 0x10) + 3adc: 3000 movi r0, 0 + 3ade: 3100 movi r1, 0 + 3ae0: 2800 subi r0, 1 + 3ae2: 2900 subi r1, 1 + 3ae4: 6401 cmplt r0, r0 + 3ae6: 6009 addc r0, r2 + 3ae8: 604d addc r1, r3 + 3aea: 038f lrw r4, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3aec: 6450 cmphs r4, r1 + 3aee: 0c67 bf 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3af0: 6506 cmpne r1, r4 + 3af2: 0cfd bf 0x3cec // 3cec <_fpadd_parts+0x28c> + 3af4: 3000 movi r0, 0 + 3af6: 9722 ld.w r1, (r7, 0x8) + 3af8: 2801 subi r0, 2 + 3afa: 2900 subi r1, 1 + 3afc: 03d4 lrw r6, 0xfffffff // 3d28 <_fpadd_parts+0x2c8> + 3afe: b802 st.w r0, (r14, 0x8) + 3b00: b8e0 st.w r7, (r14, 0x0) + 3b02: 0403 br 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3b04: 6596 cmpne r5, r6 + 3b06: 0c83 bf 0x3c0c // 3c0c <_fpadd_parts+0x1ac> + 3b08: 4301 lsli r0, r3, 1 + 3b0a: 4a9f lsri r4, r2, 31 + 3b0c: 6d00 or r4, r0 + 3b0e: 42a1 lsli r5, r2, 1 + 3b10: 6c97 mov r2, r5 + 3b12: 6cd3 mov r3, r4 + 3b14: 3500 movi r5, 0 + 3b16: 3400 movi r4, 0 + 3b18: 2c00 subi r4, 1 + 3b1a: 2d00 subi r5, 1 + 3b1c: 6511 cmplt r4, r4 + 3b1e: 6109 addc r4, r2 + 3b20: 614d addc r5, r3 + 3b22: 6558 cmphs r6, r5 + 3b24: 6c07 mov r0, r1 + 3b26: 2900 subi r1, 1 + 3b28: 0bee bt 0x3b04 // 3b04 <_fpadd_parts+0xa4> + 3b2a: 98e0 ld.w r7, (r14, 0x0) + 3b2c: b743 st.w r2, (r7, 0xc) + 3b2e: b764 st.w r3, (r7, 0x10) + 3b30: 3303 movi r3, 3 + 3b32: b702 st.w r0, (r7, 0x8) + 3b34: b760 st.w r3, (r7, 0x0) + 3b36: 6c1f mov r0, r7 + 3b38: 140a addi r14, r14, 40 + 3b3a: 1484 pop r4-r7 + 3b3c: 6c07 mov r0, r1 + 3b3e: 140a addi r14, r14, 40 + 3b40: 1484 pop r4-r7 + 3b42: 3b20 cmplti r3, 1 + 3b44: 088c bt 0x3c5c // 3c5c <_fpadd_parts+0x1fc> + 3b46: 3300 movi r3, 0 + 3b48: 2b1f subi r3, 32 + 3b4a: 60c8 addu r3, r2 + 3b4c: 3bdf btsti r3, 31 + 3b4e: b866 st.w r3, (r14, 0x18) + 3b50: 08bb bt 0x3cc6 // 3cc6 <_fpadd_parts+0x266> + 3b52: 98a1 ld.w r5, (r14, 0x4) + 3b54: 714d lsr r5, r3 + 3b56: b8a4 st.w r5, (r14, 0x10) + 3b58: 3500 movi r5, 0 + 3b5a: b8a5 st.w r5, (r14, 0x14) + 3b5c: 9866 ld.w r3, (r14, 0x18) + 3b5e: 3bdf btsti r3, 31 + 3b60: 3500 movi r5, 0 + 3b62: 3600 movi r6, 0 + 3b64: 08ad bt 0x3cbe // 3cbe <_fpadd_parts+0x25e> + 3b66: 3201 movi r2, 1 + 3b68: 708c lsl r2, r3 + 3b6a: 6d8b mov r6, r2 + 3b6c: 3200 movi r2, 0 + 3b6e: 3300 movi r3, 0 + 3b70: 2a00 subi r2, 1 + 3b72: 2b00 subi r3, 1 + 3b74: 6489 cmplt r2, r2 + 3b76: 6095 addc r2, r5 + 3b78: 60d9 addc r3, r6 + 3b7a: 98a0 ld.w r5, (r14, 0x0) + 3b7c: 98c1 ld.w r6, (r14, 0x4) + 3b7e: 6948 and r5, r2 + 3b80: 698c and r6, r3 + 3b82: 6c97 mov r2, r5 + 3b84: 6cdb mov r3, r6 + 3b86: 6c8c or r2, r3 + 3b88: 3a40 cmpnei r2, 0 + 3b8a: 3500 movi r5, 0 + 3b8c: 6155 addc r5, r5 + 3b8e: 6c97 mov r2, r5 + 3b90: 3300 movi r3, 0 + 3b92: 98a4 ld.w r5, (r14, 0x10) + 3b94: 98c5 ld.w r6, (r14, 0x14) + 3b96: 6d48 or r5, r2 + 3b98: 6d8c or r6, r3 + 3b9a: 9061 ld.w r3, (r0, 0x4) + 3b9c: 9141 ld.w r2, (r1, 0x4) + 3b9e: 648e cmpne r3, r2 + 3ba0: b8a0 st.w r5, (r14, 0x0) + 3ba2: b8c1 st.w r6, (r14, 0x4) + 3ba4: 0b8a bt 0x3ab8 // 3ab8 <_fpadd_parts+0x58> + 3ba6: b761 st.w r3, (r7, 0x4) + 3ba8: 9800 ld.w r0, (r14, 0x0) + 3baa: 9821 ld.w r1, (r14, 0x4) + 3bac: 9842 ld.w r2, (r14, 0x8) + 3bae: 9863 ld.w r3, (r14, 0xc) + 3bb0: 6489 cmplt r2, r2 + 3bb2: 6081 addc r2, r0 + 3bb4: 60c5 addc r3, r1 + 3bb6: b782 st.w r4, (r7, 0x8) + 3bb8: b743 st.w r2, (r7, 0xc) + 3bba: b764 st.w r3, (r7, 0x10) + 3bbc: 3103 movi r1, 3 + 3bbe: b720 st.w r1, (r7, 0x0) + 3bc0: 123b lrw r1, 0x1fffffff // 3d2c <_fpadd_parts+0x2cc> + 3bc2: 64c4 cmphs r1, r3 + 3bc4: 0810 bt 0x3be4 // 3be4 <_fpadd_parts+0x184> + 3bc6: 439f lsli r4, r3, 31 + 3bc8: 4a01 lsri r0, r2, 1 + 3bca: 6c10 or r0, r4 + 3bcc: 3500 movi r5, 0 + 3bce: 3401 movi r4, 1 + 3bd0: 4b21 lsri r1, r3, 1 + 3bd2: 6890 and r2, r4 + 3bd4: 68d4 and r3, r5 + 3bd6: 6c80 or r2, r0 + 3bd8: 6cc4 or r3, r1 + 3bda: b743 st.w r2, (r7, 0xc) + 3bdc: b764 st.w r3, (r7, 0x10) + 3bde: 9762 ld.w r3, (r7, 0x8) + 3be0: 2300 addi r3, 1 + 3be2: b762 st.w r3, (r7, 0x8) + 3be4: 6c1f mov r0, r7 + 3be6: 140a addi r14, r14, 40 + 3be8: 1484 pop r4-r7 + 3bea: 3b42 cmpnei r3, 2 + 3bec: 0ba6 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3bee: b760 st.w r3, (r7, 0x0) + 3bf0: 9061 ld.w r3, (r0, 0x4) + 3bf2: b761 st.w r3, (r7, 0x4) + 3bf4: 9062 ld.w r3, (r0, 0x8) + 3bf6: b762 st.w r3, (r7, 0x8) + 3bf8: 9063 ld.w r3, (r0, 0xc) + 3bfa: b763 st.w r3, (r7, 0xc) + 3bfc: 9064 ld.w r3, (r0, 0x10) + 3bfe: 9141 ld.w r2, (r1, 0x4) + 3c00: b764 st.w r3, (r7, 0x10) + 3c02: 9061 ld.w r3, (r0, 0x4) + 3c04: 68c8 and r3, r2 + 3c06: b761 st.w r3, (r7, 0x4) + 3c08: 6c1f mov r0, r7 + 3c0a: 0797 br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c0c: 98e2 ld.w r7, (r14, 0x8) + 3c0e: 651c cmphs r7, r4 + 3c10: 0b7c bt 0x3b08 // 3b08 <_fpadd_parts+0xa8> + 3c12: 078c br 0x3b2a // 3b2a <_fpadd_parts+0xca> + 3c14: 9802 ld.w r0, (r14, 0x8) + 3c16: 9823 ld.w r1, (r14, 0xc) + 3c18: 9840 ld.w r2, (r14, 0x0) + 3c1a: 9861 ld.w r3, (r14, 0x4) + 3c1c: 6400 cmphs r0, r0 + 3c1e: 600b subc r0, r2 + 3c20: 604f subc r1, r3 + 3c22: 0754 br 0x3aca // 3aca <_fpadd_parts+0x6a> + 3c24: 3200 movi r2, 0 + 3c26: 3300 movi r3, 0 + 3c28: 6d17 mov r4, r5 + 3c2a: b842 st.w r2, (r14, 0x8) + 3c2c: b863 st.w r3, (r14, 0xc) + 3c2e: 0741 br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c30: 3a44 cmpnei r2, 4 + 3c32: 0b83 bt 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c34: 9041 ld.w r2, (r0, 0x4) + 3c36: 9161 ld.w r3, (r1, 0x4) + 3c38: 64ca cmpne r2, r3 + 3c3a: 0f7f bf 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c3c: 111d lrw r0, 0xabfc // 3d30 <_fpadd_parts+0x2d0> + 3c3e: 077d br 0x3b38 // 3b38 <_fpadd_parts+0xd8> + 3c40: 3200 movi r2, 0 + 3c42: 608e subu r2, r3 + 3c44: 072d br 0x3a9e // 3a9e <_fpadd_parts+0x3e> + 3c46: 3301 movi r3, 1 + 3c48: b761 st.w r3, (r7, 0x4) + 3c4a: 3200 movi r2, 0 + 3c4c: 3300 movi r3, 0 + 3c4e: 6488 cmphs r2, r2 + 3c50: 6083 subc r2, r0 + 3c52: 60c7 subc r3, r1 + 3c54: b782 st.w r4, (r7, 0x8) + 3c56: b743 st.w r2, (r7, 0xc) + 3c58: b764 st.w r3, (r7, 0x10) + 3c5a: 0741 br 0x3adc // 3adc <_fpadd_parts+0x7c> + 3c5c: 3b40 cmpnei r3, 0 + 3c5e: 0f29 bf 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3c60: 3300 movi r3, 0 + 3c62: 2b1f subi r3, 32 + 3c64: 60c8 addu r3, r2 + 3c66: 3bdf btsti r3, 31 + 3c68: 6108 addu r4, r2 + 3c6a: b866 st.w r3, (r14, 0x18) + 3c6c: 0849 bt 0x3cfe // 3cfe <_fpadd_parts+0x29e> + 3c6e: 9863 ld.w r3, (r14, 0xc) + 3c70: 98a6 ld.w r5, (r14, 0x18) + 3c72: 70d5 lsr r3, r5 + 3c74: b864 st.w r3, (r14, 0x10) + 3c76: 3300 movi r3, 0 + 3c78: b865 st.w r3, (r14, 0x14) + 3c7a: 9866 ld.w r3, (r14, 0x18) + 3c7c: 3bdf btsti r3, 31 + 3c7e: 3500 movi r5, 0 + 3c80: 3600 movi r6, 0 + 3c82: 083a bt 0x3cf6 // 3cf6 <_fpadd_parts+0x296> + 3c84: 3201 movi r2, 1 + 3c86: 708c lsl r2, r3 + 3c88: 6d8b mov r6, r2 + 3c8a: 3200 movi r2, 0 + 3c8c: 3300 movi r3, 0 + 3c8e: 2a00 subi r2, 1 + 3c90: 2b00 subi r3, 1 + 3c92: 6489 cmplt r2, r2 + 3c94: 6095 addc r2, r5 + 3c96: 60d9 addc r3, r6 + 3c98: 98a2 ld.w r5, (r14, 0x8) + 3c9a: 98c3 ld.w r6, (r14, 0xc) + 3c9c: 6948 and r5, r2 + 3c9e: 698c and r6, r3 + 3ca0: 6c97 mov r2, r5 + 3ca2: 6cdb mov r3, r6 + 3ca4: 6c8c or r2, r3 + 3ca6: 3a40 cmpnei r2, 0 + 3ca8: 3500 movi r5, 0 + 3caa: 6155 addc r5, r5 + 3cac: 6c97 mov r2, r5 + 3cae: 3300 movi r3, 0 + 3cb0: 98a4 ld.w r5, (r14, 0x10) + 3cb2: 98c5 ld.w r6, (r14, 0x14) + 3cb4: 6d48 or r5, r2 + 3cb6: 6d8c or r6, r3 + 3cb8: b8a2 st.w r5, (r14, 0x8) + 3cba: b8c3 st.w r6, (r14, 0xc) + 3cbc: 06fa br 0x3ab0 // 3ab0 <_fpadd_parts+0x50> + 3cbe: 3301 movi r3, 1 + 3cc0: 70c8 lsl r3, r2 + 3cc2: 6d4f mov r5, r3 + 3cc4: 0754 br 0x3b6c // 3b6c <_fpadd_parts+0x10c> + 3cc6: 9861 ld.w r3, (r14, 0x4) + 3cc8: 361f movi r6, 31 + 3cca: 43a1 lsli r5, r3, 1 + 3ccc: 618a subu r6, r2 + 3cce: 7158 lsl r5, r6 + 3cd0: b8a9 st.w r5, (r14, 0x24) + 3cd2: 98a0 ld.w r5, (r14, 0x0) + 3cd4: 98c1 ld.w r6, (r14, 0x4) + 3cd6: b8a7 st.w r5, (r14, 0x1c) + 3cd8: b8c8 st.w r6, (r14, 0x20) + 3cda: 9867 ld.w r3, (r14, 0x1c) + 3cdc: 70c9 lsr r3, r2 + 3cde: 98a9 ld.w r5, (r14, 0x24) + 3ce0: 6cd4 or r3, r5 + 3ce2: b864 st.w r3, (r14, 0x10) + 3ce4: 9868 ld.w r3, (r14, 0x20) + 3ce6: 70c9 lsr r3, r2 + 3ce8: b865 st.w r3, (r14, 0x14) + 3cea: 0739 br 0x3b5c // 3b5c <_fpadd_parts+0xfc> + 3cec: 3100 movi r1, 0 + 3cee: 2901 subi r1, 2 + 3cf0: 6404 cmphs r1, r0 + 3cf2: 0b01 bt 0x3af4 // 3af4 <_fpadd_parts+0x94> + 3cf4: 0764 br 0x3bbc // 3bbc <_fpadd_parts+0x15c> + 3cf6: 3301 movi r3, 1 + 3cf8: 70c8 lsl r3, r2 + 3cfa: 6d4f mov r5, r3 + 3cfc: 07c7 br 0x3c8a // 3c8a <_fpadd_parts+0x22a> + 3cfe: 9863 ld.w r3, (r14, 0xc) + 3d00: 43c1 lsli r6, r3, 1 + 3d02: 351f movi r5, 31 + 3d04: 5d69 subu r3, r5, r2 + 3d06: 6d5b mov r5, r6 + 3d08: 714c lsl r5, r3 + 3d0a: b8a9 st.w r5, (r14, 0x24) + 3d0c: 98a2 ld.w r5, (r14, 0x8) + 3d0e: 98c3 ld.w r6, (r14, 0xc) + 3d10: b8a7 st.w r5, (r14, 0x1c) + 3d12: b8c8 st.w r6, (r14, 0x20) + 3d14: 9867 ld.w r3, (r14, 0x1c) + 3d16: 70c9 lsr r3, r2 + 3d18: 98a9 ld.w r5, (r14, 0x24) + 3d1a: 6cd4 or r3, r5 + 3d1c: b864 st.w r3, (r14, 0x10) + 3d1e: 9868 ld.w r3, (r14, 0x20) + 3d20: 70c9 lsr r3, r2 + 3d22: b865 st.w r3, (r14, 0x14) + 3d24: 07ab br 0x3c7a // 3c7a <_fpadd_parts+0x21a> + 3d26: 0000 bkpt + 3d28: 0fffffff .long 0x0fffffff + 3d2c: 1fffffff .long 0x1fffffff + 3d30: 0000abfc .long 0x0000abfc + +00003d34 <__adddf3>: + 3d34: 14d0 push r15 + 3d36: 1433 subi r14, r14, 76 + 3d38: b800 st.w r0, (r14, 0x0) + 3d3a: b821 st.w r1, (r14, 0x4) + 3d3c: 6c3b mov r0, r14 + 3d3e: 1904 addi r1, r14, 16 + 3d40: b863 st.w r3, (r14, 0xc) + 3d42: b842 st.w r2, (r14, 0x8) + 3d44: e0000506 bsr 0x4750 // 4750 <__unpack_d> + 3d48: 1909 addi r1, r14, 36 + 3d4a: 1802 addi r0, r14, 8 + 3d4c: e0000502 bsr 0x4750 // 4750 <__unpack_d> + 3d50: 1a0e addi r2, r14, 56 + 3d52: 1909 addi r1, r14, 36 + 3d54: 1804 addi r0, r14, 16 + 3d56: e3fffe85 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d5a: e000042d bsr 0x45b4 // 45b4 <__pack_d> + 3d5e: 1413 addi r14, r14, 76 + 3d60: 1490 pop r15 + ... + +00003d64 <__subdf3>: + 3d64: 14d0 push r15 + 3d66: 1433 subi r14, r14, 76 + 3d68: b800 st.w r0, (r14, 0x0) + 3d6a: b821 st.w r1, (r14, 0x4) + 3d6c: 6c3b mov r0, r14 + 3d6e: 1904 addi r1, r14, 16 + 3d70: b842 st.w r2, (r14, 0x8) + 3d72: b863 st.w r3, (r14, 0xc) + 3d74: e00004ee bsr 0x4750 // 4750 <__unpack_d> + 3d78: 1909 addi r1, r14, 36 + 3d7a: 1802 addi r0, r14, 8 + 3d7c: e00004ea bsr 0x4750 // 4750 <__unpack_d> + 3d80: 986a ld.w r3, (r14, 0x28) + 3d82: 3201 movi r2, 1 + 3d84: 6cc9 xor r3, r2 + 3d86: 1909 addi r1, r14, 36 + 3d88: 1a0e addi r2, r14, 56 + 3d8a: 1804 addi r0, r14, 16 + 3d8c: b86a st.w r3, (r14, 0x28) + 3d8e: e3fffe69 bsr 0x3a60 // 3a60 <_fpadd_parts> + 3d92: e0000411 bsr 0x45b4 // 45b4 <__pack_d> + 3d96: 1413 addi r14, r14, 76 + 3d98: 1490 pop r15 + ... + +00003d9c <__muldf3>: + 3d9c: 14d4 push r4-r7, r15 + 3d9e: 143b subi r14, r14, 108 + 3da0: b808 st.w r0, (r14, 0x20) + 3da2: b829 st.w r1, (r14, 0x24) + 3da4: 1808 addi r0, r14, 32 + 3da6: 190c addi r1, r14, 48 + 3da8: b86b st.w r3, (r14, 0x2c) + 3daa: b84a st.w r2, (r14, 0x28) + 3dac: e00004d2 bsr 0x4750 // 4750 <__unpack_d> + 3db0: 1911 addi r1, r14, 68 + 3db2: 180a addi r0, r14, 40 + 3db4: e00004ce bsr 0x4750 // 4750 <__unpack_d> + 3db8: 986c ld.w r3, (r14, 0x30) + 3dba: 3b01 cmphsi r3, 2 + 3dbc: 0cac bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dbe: 9851 ld.w r2, (r14, 0x44) + 3dc0: 3a01 cmphsi r2, 2 + 3dc2: 0c9c bf 0x3efa // 3efa <__muldf3+0x15e> + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0ca5 bf 0x3f10 // 3f10 <__muldf3+0x174> + 3dc8: 3a44 cmpnei r2, 4 + 3dca: 0c96 bf 0x3ef6 // 3ef6 <__muldf3+0x15a> + 3dcc: 3b42 cmpnei r3, 2 + 3dce: 0ca3 bf 0x3f14 // 3f14 <__muldf3+0x178> + 3dd0: 3a42 cmpnei r2, 2 + 3dd2: 0c94 bf 0x3efa // 3efa <__muldf3+0x15e> + 3dd4: 98ef ld.w r7, (r14, 0x3c) + 3dd6: 98b4 ld.w r5, (r14, 0x50) + 3dd8: 9875 ld.w r3, (r14, 0x54) + 3dda: 6d8f mov r6, r3 + 3ddc: 6c9f mov r2, r7 + 3dde: 3300 movi r3, 0 + 3de0: 6c17 mov r0, r5 + 3de2: 3100 movi r1, 0 + 3de4: e00002c0 bsr 0x4364 // 4364 <__muldi3> + 3de8: b804 st.w r0, (r14, 0x10) + 3dea: b825 st.w r1, (r14, 0x14) + 3dec: 6c9f mov r2, r7 + 3dee: 3300 movi r3, 0 + 3df0: 6c1b mov r0, r6 + 3df2: 3100 movi r1, 0 + 3df4: 9890 ld.w r4, (r14, 0x40) + 3df6: b8c2 st.w r6, (r14, 0x8) + 3df8: e00002b6 bsr 0x4364 // 4364 <__muldi3> + 3dfc: 6d83 mov r6, r0 + 3dfe: 6dc7 mov r7, r1 + 3e00: 9842 ld.w r2, (r14, 0x8) + 3e02: 3300 movi r3, 0 + 3e04: 6c13 mov r0, r4 + 3e06: 3100 movi r1, 0 + 3e08: e00002ae bsr 0x4364 // 4364 <__muldi3> + 3e0c: b806 st.w r0, (r14, 0x18) + 3e0e: b827 st.w r1, (r14, 0x1c) + 3e10: 6c97 mov r2, r5 + 3e12: 3300 movi r3, 0 + 3e14: 6c13 mov r0, r4 + 3e16: 3100 movi r1, 0 + 3e18: e00002a6 bsr 0x4364 // 4364 <__muldi3> + 3e1c: 6401 cmplt r0, r0 + 3e1e: 6019 addc r0, r6 + 3e20: 605d addc r1, r7 + 3e22: 65c4 cmphs r1, r7 + 3e24: 0c91 bf 0x3f46 // 3f46 <__muldf3+0x1aa> + 3e26: 645e cmpne r7, r1 + 3e28: 0c8d bf 0x3f42 // 3f42 <__muldf3+0x1a6> + 3e2a: 3300 movi r3, 0 + 3e2c: 3400 movi r4, 0 + 3e2e: b862 st.w r3, (r14, 0x8) + 3e30: b883 st.w r4, (r14, 0xc) + 3e32: 9884 ld.w r4, (r14, 0x10) + 3e34: 98a5 ld.w r5, (r14, 0x14) + 3e36: 3600 movi r6, 0 + 3e38: 6dc3 mov r7, r0 + 3e3a: 6c93 mov r2, r4 + 3e3c: 6cd7 mov r3, r5 + 3e3e: 6489 cmplt r2, r2 + 3e40: 6099 addc r2, r6 + 3e42: 60dd addc r3, r7 + 3e44: 6d8b mov r6, r2 + 3e46: 6dcf mov r7, r3 + 3e48: 6c93 mov r2, r4 + 3e4a: 6cd7 mov r3, r5 + 3e4c: 64dc cmphs r7, r3 + 3e4e: 0c70 bf 0x3f2e // 3f2e <__muldf3+0x192> + 3e50: 65ce cmpne r3, r7 + 3e52: 0c6c bf 0x3f2a // 3f2a <__muldf3+0x18e> + 3e54: 6c87 mov r2, r1 + 3e56: 3300 movi r3, 0 + 3e58: 9806 ld.w r0, (r14, 0x18) + 3e5a: 9827 ld.w r1, (r14, 0x1c) + 3e5c: 6401 cmplt r0, r0 + 3e5e: 6009 addc r0, r2 + 3e60: 604d addc r1, r3 + 3e62: 6c83 mov r2, r0 + 3e64: 6cc7 mov r3, r1 + 3e66: 9802 ld.w r0, (r14, 0x8) + 3e68: 9823 ld.w r1, (r14, 0xc) + 3e6a: 6401 cmplt r0, r0 + 3e6c: 6009 addc r0, r2 + 3e6e: 604d addc r1, r3 + 3e70: 6c83 mov r2, r0 + 3e72: 6cc7 mov r3, r1 + 3e74: 988e ld.w r4, (r14, 0x38) + 3e76: 9833 ld.w r1, (r14, 0x4c) + 3e78: 6104 addu r4, r1 + 3e7a: 5c2e addi r1, r4, 4 + 3e7c: b838 st.w r1, (r14, 0x60) + 3e7e: 980d ld.w r0, (r14, 0x34) + 3e80: 9832 ld.w r1, (r14, 0x48) + 3e82: 6442 cmpne r0, r1 + 3e84: 12b0 lrw r5, 0x1fffffff // 3fc4 <__muldf3+0x228> + 3e86: 3100 movi r1, 0 + 3e88: 6045 addc r1, r1 + 3e8a: 64d4 cmphs r5, r3 + 3e8c: b837 st.w r1, (r14, 0x5c) + 3e8e: 0879 bt 0x3f80 // 3f80 <__muldf3+0x1e4> + 3e90: 2404 addi r4, 5 + 3e92: b8a4 st.w r5, (r14, 0x10) + 3e94: 3001 movi r0, 1 + 3e96: 3100 movi r1, 0 + 3e98: 6808 and r0, r2 + 3e9a: 684c and r1, r3 + 3e9c: 6c04 or r0, r1 + 3e9e: 3840 cmpnei r0, 0 + 3ea0: b882 st.w r4, (r14, 0x8) + 3ea2: 0c0e bf 0x3ebe // 3ebe <__muldf3+0x122> + 3ea4: 473f lsli r1, r7, 31 + 3ea6: 4e01 lsri r0, r6, 1 + 3ea8: 6c04 or r0, r1 + 3eaa: 4f21 lsri r1, r7, 1 + 3eac: b800 st.w r0, (r14, 0x0) + 3eae: b821 st.w r1, (r14, 0x4) + 3eb0: 3180 movi r1, 128 + 3eb2: 98c0 ld.w r6, (r14, 0x0) + 3eb4: 98e1 ld.w r7, (r14, 0x4) + 3eb6: 3000 movi r0, 0 + 3eb8: 4138 lsli r1, r1, 24 + 3eba: 6d80 or r6, r0 + 3ebc: 6dc4 or r7, r1 + 3ebe: 4b21 lsri r1, r3, 1 + 3ec0: 43bf lsli r5, r3, 31 + 3ec2: 4a01 lsri r0, r2, 1 + 3ec4: 6cc7 mov r3, r1 + 3ec6: 9824 ld.w r1, (r14, 0x10) + 3ec8: 6d40 or r5, r0 + 3eca: 64c4 cmphs r1, r3 + 3ecc: 6c97 mov r2, r5 + 3ece: 2400 addi r4, 1 + 3ed0: 0fe2 bf 0x3e94 // 3e94 <__muldf3+0xf8> + 3ed2: 9822 ld.w r1, (r14, 0x8) + 3ed4: b838 st.w r1, (r14, 0x60) + 3ed6: 30ff movi r0, 255 + 3ed8: 3100 movi r1, 0 + 3eda: 6808 and r0, r2 + 3edc: 684c and r1, r3 + 3ede: 3480 movi r4, 128 + 3ee0: 6502 cmpne r0, r4 + 3ee2: 0c37 bf 0x3f50 // 3f50 <__muldf3+0x1b4> + 3ee4: b859 st.w r2, (r14, 0x64) + 3ee6: b87a st.w r3, (r14, 0x68) + 3ee8: 3303 movi r3, 3 + 3eea: b876 st.w r3, (r14, 0x58) + 3eec: 1816 addi r0, r14, 88 + 3eee: e0000363 bsr 0x45b4 // 45b4 <__pack_d> + 3ef2: 141b addi r14, r14, 108 + 3ef4: 1494 pop r4-r7, r15 + 3ef6: 3b42 cmpnei r3, 2 + 3ef8: 0c42 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3efa: 9872 ld.w r3, (r14, 0x48) + 3efc: 984d ld.w r2, (r14, 0x34) + 3efe: 64ca cmpne r2, r3 + 3f00: 3300 movi r3, 0 + 3f02: 60cd addc r3, r3 + 3f04: 1811 addi r0, r14, 68 + 3f06: b872 st.w r3, (r14, 0x48) + 3f08: e0000356 bsr 0x45b4 // 45b4 <__pack_d> + 3f0c: 141b addi r14, r14, 108 + 3f0e: 1494 pop r4-r7, r15 + 3f10: 3a42 cmpnei r2, 2 + 3f12: 0c35 bf 0x3f7c // 3f7c <__muldf3+0x1e0> + 3f14: 984d ld.w r2, (r14, 0x34) + 3f16: 9872 ld.w r3, (r14, 0x48) + 3f18: 64ca cmpne r2, r3 + 3f1a: 3300 movi r3, 0 + 3f1c: 60cd addc r3, r3 + 3f1e: 180c addi r0, r14, 48 + 3f20: b86d st.w r3, (r14, 0x34) + 3f22: e0000349 bsr 0x45b4 // 45b4 <__pack_d> + 3f26: 141b addi r14, r14, 108 + 3f28: 1494 pop r4-r7, r15 + 3f2a: 6498 cmphs r6, r2 + 3f2c: 0b94 bt 0x3e54 // 3e54 <__muldf3+0xb8> + 3f2e: 9882 ld.w r4, (r14, 0x8) + 3f30: 98a3 ld.w r5, (r14, 0xc) + 3f32: 3201 movi r2, 1 + 3f34: 3300 movi r3, 0 + 3f36: 6511 cmplt r4, r4 + 3f38: 6109 addc r4, r2 + 3f3a: 614d addc r5, r3 + 3f3c: b882 st.w r4, (r14, 0x8) + 3f3e: b8a3 st.w r5, (r14, 0xc) + 3f40: 078a br 0x3e54 // 3e54 <__muldf3+0xb8> + 3f42: 6580 cmphs r0, r6 + 3f44: 0b73 bt 0x3e2a // 3e2a <__muldf3+0x8e> + 3f46: 3300 movi r3, 0 + 3f48: 3401 movi r4, 1 + 3f4a: b862 st.w r3, (r14, 0x8) + 3f4c: b883 st.w r4, (r14, 0xc) + 3f4e: 0772 br 0x3e32 // 3e32 <__muldf3+0x96> + 3f50: 3940 cmpnei r1, 0 + 3f52: 0bc9 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f54: 3180 movi r1, 128 + 3f56: 4121 lsli r1, r1, 1 + 3f58: 6848 and r1, r2 + 3f5a: 3940 cmpnei r1, 0 + 3f5c: 0bc4 bt 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f5e: 6c5b mov r1, r6 + 3f60: 6c5c or r1, r7 + 3f62: 3940 cmpnei r1, 0 + 3f64: 0fc0 bf 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f66: 3080 movi r0, 128 + 3f68: 3100 movi r1, 0 + 3f6a: 6401 cmplt r0, r0 + 3f6c: 6009 addc r0, r2 + 3f6e: 604d addc r1, r3 + 3f70: 34ff movi r4, 255 + 3f72: 6d43 mov r5, r0 + 3f74: 6951 andn r5, r4 + 3f76: 6c97 mov r2, r5 + 3f78: 6cc7 mov r3, r1 + 3f7a: 07b5 br 0x3ee4 // 3ee4 <__muldf3+0x148> + 3f7c: 1013 lrw r0, 0xabfc // 3fc8 <__muldf3+0x22c> + 3f7e: 07b8 br 0x3eee // 3eee <__muldf3+0x152> + 3f80: 1033 lrw r1, 0xfffffff // 3fcc <__muldf3+0x230> + 3f82: 64c4 cmphs r1, r3 + 3f84: 0fa9 bf 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3f86: 2402 addi r4, 3 + 3f88: b822 st.w r1, (r14, 0x8) + 3f8a: 4a1f lsri r0, r2, 31 + 3f8c: 4321 lsli r1, r3, 1 + 3f8e: 42a1 lsli r5, r2, 1 + 3f90: 6c04 or r0, r1 + 3f92: 3fdf btsti r7, 31 + 3f94: b880 st.w r4, (r14, 0x0) + 3f96: 6c97 mov r2, r5 + 3f98: 6cc3 mov r3, r0 + 3f9a: 0c07 bf 0x3fa8 // 3fa8 <__muldf3+0x20c> + 3f9c: 3001 movi r0, 1 + 3f9e: 3100 movi r1, 0 + 3fa0: 6c08 or r0, r2 + 3fa2: 6c4c or r1, r3 + 3fa4: 6c83 mov r2, r0 + 3fa6: 6cc7 mov r3, r1 + 3fa8: 4721 lsli r1, r7, 1 + 3faa: 4e1f lsri r0, r6, 31 + 3fac: 6c04 or r0, r1 + 3fae: 9822 ld.w r1, (r14, 0x8) + 3fb0: 46a1 lsli r5, r6, 1 + 3fb2: 64c4 cmphs r1, r3 + 3fb4: 6d97 mov r6, r5 + 3fb6: 6dc3 mov r7, r0 + 3fb8: 2c00 subi r4, 1 + 3fba: 0be8 bt 0x3f8a // 3f8a <__muldf3+0x1ee> + 3fbc: 9820 ld.w r1, (r14, 0x0) + 3fbe: b838 st.w r1, (r14, 0x60) + 3fc0: 078b br 0x3ed6 // 3ed6 <__muldf3+0x13a> + 3fc2: 0000 bkpt + 3fc4: 1fffffff .long 0x1fffffff + 3fc8: 0000abfc .long 0x0000abfc + 3fcc: 0fffffff .long 0x0fffffff + +00003fd0 <__divdf3>: + 3fd0: 14d4 push r4-r7, r15 + 3fd2: 1432 subi r14, r14, 72 + 3fd4: b804 st.w r0, (r14, 0x10) + 3fd6: b825 st.w r1, (r14, 0x14) + 3fd8: 1804 addi r0, r14, 16 + 3fda: 1908 addi r1, r14, 32 + 3fdc: b867 st.w r3, (r14, 0x1c) + 3fde: b846 st.w r2, (r14, 0x18) + 3fe0: e00003b8 bsr 0x4750 // 4750 <__unpack_d> + 3fe4: 190d addi r1, r14, 52 + 3fe6: 1806 addi r0, r14, 24 + 3fe8: e00003b4 bsr 0x4750 // 4750 <__unpack_d> + 3fec: 9868 ld.w r3, (r14, 0x20) + 3fee: 3b01 cmphsi r3, 2 + 3ff0: 0c66 bf 0x40bc // 40bc <__divdf3+0xec> + 3ff2: 982d ld.w r1, (r14, 0x34) + 3ff4: 3901 cmphsi r1, 2 + 3ff6: 0c92 bf 0x411a // 411a <__divdf3+0x14a> + 3ff8: 9849 ld.w r2, (r14, 0x24) + 3ffa: 980e ld.w r0, (r14, 0x38) + 3ffc: 6c81 xor r2, r0 + 3ffe: 3b44 cmpnei r3, 4 + 4000: b849 st.w r2, (r14, 0x24) + 4002: 0c62 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4004: 3b42 cmpnei r3, 2 + 4006: 0c60 bf 0x40c6 // 40c6 <__divdf3+0xf6> + 4008: 3944 cmpnei r1, 4 + 400a: 0c62 bf 0x40ce // 40ce <__divdf3+0xfe> + 400c: 3942 cmpnei r1, 2 + 400e: 0c82 bf 0x4112 // 4112 <__divdf3+0x142> + 4010: 982a ld.w r1, (r14, 0x28) + 4012: 986f ld.w r3, (r14, 0x3c) + 4014: 604e subu r1, r3 + 4016: 9890 ld.w r4, (r14, 0x40) + 4018: 98b1 ld.w r5, (r14, 0x44) + 401a: 984b ld.w r2, (r14, 0x2c) + 401c: 986c ld.w r3, (r14, 0x30) + 401e: 654c cmphs r3, r5 + 4020: b82a st.w r1, (r14, 0x28) + 4022: 6d93 mov r6, r4 + 4024: 6dd7 mov r7, r5 + 4026: 0c05 bf 0x4030 // 4030 <__divdf3+0x60> + 4028: 64d6 cmpne r5, r3 + 402a: 080b bt 0x4040 // 4040 <__divdf3+0x70> + 402c: 6508 cmphs r2, r4 + 402e: 0809 bt 0x4040 // 4040 <__divdf3+0x70> + 4030: 4a9f lsri r4, r2, 31 + 4032: 4301 lsli r0, r3, 1 + 4034: 42a1 lsli r5, r2, 1 + 4036: 6d00 or r4, r0 + 4038: 2900 subi r1, 1 + 403a: 6c97 mov r2, r5 + 403c: 6cd3 mov r3, r4 + 403e: b82a st.w r1, (r14, 0x28) + 4040: 3000 movi r0, 0 + 4042: 3100 movi r1, 0 + 4044: b802 st.w r0, (r14, 0x8) + 4046: b823 st.w r1, (r14, 0xc) + 4048: 3180 movi r1, 128 + 404a: 343d movi r4, 61 + 404c: 3000 movi r0, 0 + 404e: 4135 lsli r1, r1, 21 + 4050: b8c0 st.w r6, (r14, 0x0) + 4052: b8e1 st.w r7, (r14, 0x4) + 4054: 98a0 ld.w r5, (r14, 0x0) + 4056: 98c1 ld.w r6, (r14, 0x4) + 4058: 658c cmphs r3, r6 + 405a: 0c10 bf 0x407a // 407a <__divdf3+0xaa> + 405c: 64da cmpne r6, r3 + 405e: 0803 bt 0x4064 // 4064 <__divdf3+0x94> + 4060: 6548 cmphs r2, r5 + 4062: 0c0c bf 0x407a // 407a <__divdf3+0xaa> + 4064: 98a2 ld.w r5, (r14, 0x8) + 4066: 98c3 ld.w r6, (r14, 0xc) + 4068: 6d40 or r5, r0 + 406a: 6d84 or r6, r1 + 406c: b8a2 st.w r5, (r14, 0x8) + 406e: b8c3 st.w r6, (r14, 0xc) + 4070: 98a0 ld.w r5, (r14, 0x0) + 4072: 98c1 ld.w r6, (r14, 0x4) + 4074: 6488 cmphs r2, r2 + 4076: 6097 subc r2, r5 + 4078: 60db subc r3, r6 + 407a: 41bf lsli r5, r1, 31 + 407c: 48e1 lsri r7, r0, 1 + 407e: 6d97 mov r6, r5 + 4080: 49a1 lsri r5, r1, 1 + 4082: 6d9c or r6, r7 + 4084: 6c57 mov r1, r5 + 4086: 4abf lsri r5, r2, 31 + 4088: 6c1b mov r0, r6 + 408a: 2c00 subi r4, 1 + 408c: 6d97 mov r6, r5 + 408e: 43a1 lsli r5, r3, 1 + 4090: 6d94 or r6, r5 + 4092: 4261 lsli r3, r2, 1 + 4094: 3c40 cmpnei r4, 0 + 4096: 6dcf mov r7, r3 + 4098: 6c8f mov r2, r3 + 409a: 6cdb mov r3, r6 + 409c: 0bdc bt 0x4054 // 4054 <__divdf3+0x84> + 409e: 30ff movi r0, 255 + 40a0: 3100 movi r1, 0 + 40a2: 9882 ld.w r4, (r14, 0x8) + 40a4: 98a3 ld.w r5, (r14, 0xc) + 40a6: 6900 and r4, r0 + 40a8: 6944 and r5, r1 + 40aa: 6c13 mov r0, r4 + 40ac: 6c57 mov r1, r5 + 40ae: 3480 movi r4, 128 + 40b0: 6502 cmpne r0, r4 + 40b2: 0c15 bf 0x40dc // 40dc <__divdf3+0x10c> + 40b4: 9862 ld.w r3, (r14, 0x8) + 40b6: 9883 ld.w r4, (r14, 0xc) + 40b8: b86b st.w r3, (r14, 0x2c) + 40ba: b88c st.w r4, (r14, 0x30) + 40bc: 1808 addi r0, r14, 32 + 40be: e000027b bsr 0x45b4 // 45b4 <__pack_d> + 40c2: 1412 addi r14, r14, 72 + 40c4: 1494 pop r4-r7, r15 + 40c6: 644e cmpne r3, r1 + 40c8: 0bfa bt 0x40bc // 40bc <__divdf3+0xec> + 40ca: 1016 lrw r0, 0xabfc // 4120 <__divdf3+0x150> + 40cc: 07f9 br 0x40be // 40be <__divdf3+0xee> + 40ce: 3300 movi r3, 0 + 40d0: 3400 movi r4, 0 + 40d2: b86b st.w r3, (r14, 0x2c) + 40d4: b88c st.w r4, (r14, 0x30) + 40d6: b86a st.w r3, (r14, 0x28) + 40d8: 1808 addi r0, r14, 32 + 40da: 07f2 br 0x40be // 40be <__divdf3+0xee> + 40dc: 3940 cmpnei r1, 0 + 40de: 0beb bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40e0: 3180 movi r1, 128 + 40e2: 4121 lsli r1, r1, 1 + 40e4: 9882 ld.w r4, (r14, 0x8) + 40e6: 98a3 ld.w r5, (r14, 0xc) + 40e8: 6850 and r1, r4 + 40ea: 3940 cmpnei r1, 0 + 40ec: 0be4 bt 0x40b4 // 40b4 <__divdf3+0xe4> + 40ee: 6c98 or r2, r6 + 40f0: 3a40 cmpnei r2, 0 + 40f2: 0fe1 bf 0x40b4 // 40b4 <__divdf3+0xe4> + 40f4: 3280 movi r2, 128 + 40f6: 3300 movi r3, 0 + 40f8: 6c13 mov r0, r4 + 40fa: 6c57 mov r1, r5 + 40fc: 6401 cmplt r0, r0 + 40fe: 6009 addc r0, r2 + 4100: 604d addc r1, r3 + 4102: 6c83 mov r2, r0 + 4104: 6cc7 mov r3, r1 + 4106: 6c0b mov r0, r2 + 4108: 31ff movi r1, 255 + 410a: 6805 andn r0, r1 + 410c: b802 st.w r0, (r14, 0x8) + 410e: b863 st.w r3, (r14, 0xc) + 4110: 07d2 br 0x40b4 // 40b4 <__divdf3+0xe4> + 4112: 3304 movi r3, 4 + 4114: b868 st.w r3, (r14, 0x20) + 4116: 1808 addi r0, r14, 32 + 4118: 07d3 br 0x40be // 40be <__divdf3+0xee> + 411a: 180d addi r0, r14, 52 + 411c: 07d1 br 0x40be // 40be <__divdf3+0xee> + 411e: 0000 bkpt + 4120: 0000abfc .long 0x0000abfc + +00004124 <__gtdf2>: + 4124: 14d0 push r15 + 4126: 142e subi r14, r14, 56 + 4128: b800 st.w r0, (r14, 0x0) + 412a: b821 st.w r1, (r14, 0x4) + 412c: 6c3b mov r0, r14 + 412e: 1904 addi r1, r14, 16 + 4130: b863 st.w r3, (r14, 0xc) + 4132: b842 st.w r2, (r14, 0x8) + 4134: e000030e bsr 0x4750 // 4750 <__unpack_d> + 4138: 1909 addi r1, r14, 36 + 413a: 1802 addi r0, r14, 8 + 413c: e000030a bsr 0x4750 // 4750 <__unpack_d> + 4140: 9864 ld.w r3, (r14, 0x10) + 4142: 3b01 cmphsi r3, 2 + 4144: 0c0a bf 0x4158 // 4158 <__gtdf2+0x34> + 4146: 9869 ld.w r3, (r14, 0x24) + 4148: 3b01 cmphsi r3, 2 + 414a: 0c07 bf 0x4158 // 4158 <__gtdf2+0x34> + 414c: 1909 addi r1, r14, 36 + 414e: 1804 addi r0, r14, 16 + 4150: e0000362 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4154: 140e addi r14, r14, 56 + 4156: 1490 pop r15 + 4158: 3000 movi r0, 0 + 415a: 2800 subi r0, 1 + 415c: 140e addi r14, r14, 56 + 415e: 1490 pop r15 + +00004160 <__gedf2>: + 4160: 14d0 push r15 + 4162: 142e subi r14, r14, 56 + 4164: b800 st.w r0, (r14, 0x0) + 4166: b821 st.w r1, (r14, 0x4) + 4168: 6c3b mov r0, r14 + 416a: 1904 addi r1, r14, 16 + 416c: b863 st.w r3, (r14, 0xc) + 416e: b842 st.w r2, (r14, 0x8) + 4170: e00002f0 bsr 0x4750 // 4750 <__unpack_d> + 4174: 1909 addi r1, r14, 36 + 4176: 1802 addi r0, r14, 8 + 4178: e00002ec bsr 0x4750 // 4750 <__unpack_d> + 417c: 9864 ld.w r3, (r14, 0x10) + 417e: 3b01 cmphsi r3, 2 + 4180: 0c0a bf 0x4194 // 4194 <__gedf2+0x34> + 4182: 9869 ld.w r3, (r14, 0x24) + 4184: 3b01 cmphsi r3, 2 + 4186: 0c07 bf 0x4194 // 4194 <__gedf2+0x34> + 4188: 1909 addi r1, r14, 36 + 418a: 1804 addi r0, r14, 16 + 418c: e0000344 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 4190: 140e addi r14, r14, 56 + 4192: 1490 pop r15 + 4194: 3000 movi r0, 0 + 4196: 2800 subi r0, 1 + 4198: 140e addi r14, r14, 56 + 419a: 1490 pop r15 + +0000419c <__ledf2>: + 419c: 14d0 push r15 + 419e: 142e subi r14, r14, 56 + 41a0: b800 st.w r0, (r14, 0x0) + 41a2: b821 st.w r1, (r14, 0x4) + 41a4: 6c3b mov r0, r14 + 41a6: 1904 addi r1, r14, 16 + 41a8: b863 st.w r3, (r14, 0xc) + 41aa: b842 st.w r2, (r14, 0x8) + 41ac: e00002d2 bsr 0x4750 // 4750 <__unpack_d> + 41b0: 1909 addi r1, r14, 36 + 41b2: 1802 addi r0, r14, 8 + 41b4: e00002ce bsr 0x4750 // 4750 <__unpack_d> + 41b8: 9864 ld.w r3, (r14, 0x10) + 41ba: 3b01 cmphsi r3, 2 + 41bc: 0c0a bf 0x41d0 // 41d0 <__ledf2+0x34> + 41be: 9869 ld.w r3, (r14, 0x24) + 41c0: 3b01 cmphsi r3, 2 + 41c2: 0c07 bf 0x41d0 // 41d0 <__ledf2+0x34> + 41c4: 1909 addi r1, r14, 36 + 41c6: 1804 addi r0, r14, 16 + 41c8: e0000326 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 41cc: 140e addi r14, r14, 56 + 41ce: 1490 pop r15 + 41d0: 3001 movi r0, 1 + 41d2: 140e addi r14, r14, 56 + 41d4: 1490 pop r15 + ... + +000041d8 <__floatsidf>: + 41d8: 14d1 push r4, r15 + 41da: 1425 subi r14, r14, 20 + 41dc: 3303 movi r3, 3 + 41de: b860 st.w r3, (r14, 0x0) + 41e0: 3840 cmpnei r0, 0 + 41e2: 487f lsri r3, r0, 31 + 41e4: b861 st.w r3, (r14, 0x4) + 41e6: 0808 bt 0x41f6 // 41f6 <__floatsidf+0x1e> + 41e8: 3302 movi r3, 2 + 41ea: b860 st.w r3, (r14, 0x0) + 41ec: 6c3b mov r0, r14 + 41ee: e00001e3 bsr 0x45b4 // 45b4 <__pack_d> + 41f2: 1405 addi r14, r14, 20 + 41f4: 1491 pop r4, r15 + 41f6: 38df btsti r0, 31 + 41f8: 0812 bt 0x421c // 421c <__floatsidf+0x44> + 41fa: 6d03 mov r4, r0 + 41fc: 6c13 mov r0, r4 + 41fe: e00000d5 bsr 0x43a8 // 43a8 <__clzsi2> + 4202: 321d movi r2, 29 + 4204: 6080 addu r2, r0 + 4206: 2802 subi r0, 3 + 4208: 38df btsti r0, 31 + 420a: 0810 bt 0x422a // 422a <__floatsidf+0x52> + 420c: 7100 lsl r4, r0 + 420e: 3300 movi r3, 0 + 4210: b884 st.w r4, (r14, 0x10) + 4212: b863 st.w r3, (r14, 0xc) + 4214: 333c movi r3, 60 + 4216: 60ca subu r3, r2 + 4218: b862 st.w r3, (r14, 0x8) + 421a: 07e9 br 0x41ec // 41ec <__floatsidf+0x14> + 421c: 3380 movi r3, 128 + 421e: 4378 lsli r3, r3, 24 + 4220: 64c2 cmpne r0, r3 + 4222: 0c0d bf 0x423c // 423c <__floatsidf+0x64> + 4224: 3400 movi r4, 0 + 4226: 6102 subu r4, r0 + 4228: 07ea br 0x41fc // 41fc <__floatsidf+0x24> + 422a: 311f movi r1, 31 + 422c: 4c61 lsri r3, r4, 1 + 422e: 604a subu r1, r2 + 4230: 6c13 mov r0, r4 + 4232: 70c5 lsr r3, r1 + 4234: 7008 lsl r0, r2 + 4236: b864 st.w r3, (r14, 0x10) + 4238: b803 st.w r0, (r14, 0xc) + 423a: 07ed br 0x4214 // 4214 <__floatsidf+0x3c> + 423c: 3000 movi r0, 0 + 423e: 1022 lrw r1, 0xc1e00000 // 4244 <__floatsidf+0x6c> + 4240: 07d9 br 0x41f2 // 41f2 <__floatsidf+0x1a> + 4242: 0000 bkpt + 4244: c1e00000 .long 0xc1e00000 + +00004248 <__fixdfsi>: + 4248: 14d0 push r15 + 424a: 1427 subi r14, r14, 28 + 424c: b800 st.w r0, (r14, 0x0) + 424e: b821 st.w r1, (r14, 0x4) + 4250: 6c3b mov r0, r14 + 4252: 1902 addi r1, r14, 8 + 4254: e000027e bsr 0x4750 // 4750 <__unpack_d> + 4258: 9862 ld.w r3, (r14, 0x8) + 425a: 3b02 cmphsi r3, 3 + 425c: 0c20 bf 0x429c // 429c <__fixdfsi+0x54> + 425e: 3b44 cmpnei r3, 4 + 4260: 0c16 bf 0x428c // 428c <__fixdfsi+0x44> + 4262: 9864 ld.w r3, (r14, 0x10) + 4264: 3bdf btsti r3, 31 + 4266: 081b bt 0x429c // 429c <__fixdfsi+0x54> + 4268: 3b3e cmplti r3, 31 + 426a: 0c11 bf 0x428c // 428c <__fixdfsi+0x44> + 426c: 323c movi r2, 60 + 426e: 5a6d subu r3, r2, r3 + 4270: 3200 movi r2, 0 + 4272: 2a1f subi r2, 32 + 4274: 608c addu r2, r3 + 4276: 3adf btsti r2, 31 + 4278: 0815 bt 0x42a2 // 42a2 <__fixdfsi+0x5a> + 427a: 9806 ld.w r0, (r14, 0x18) + 427c: 7009 lsr r0, r2 + 427e: 9863 ld.w r3, (r14, 0xc) + 4280: 3b40 cmpnei r3, 0 + 4282: 0c0b bf 0x4298 // 4298 <__fixdfsi+0x50> + 4284: 3300 movi r3, 0 + 4286: 5b01 subu r0, r3, r0 + 4288: 1407 addi r14, r14, 28 + 428a: 1490 pop r15 + 428c: 9863 ld.w r3, (r14, 0xc) + 428e: 3b40 cmpnei r3, 0 + 4290: 3000 movi r0, 0 + 4292: 6001 addc r0, r0 + 4294: 1068 lrw r3, 0x7fffffff // 42b4 <__fixdfsi+0x6c> + 4296: 600c addu r0, r3 + 4298: 1407 addi r14, r14, 28 + 429a: 1490 pop r15 + 429c: 3000 movi r0, 0 + 429e: 1407 addi r14, r14, 28 + 42a0: 1490 pop r15 + 42a2: 9846 ld.w r2, (r14, 0x18) + 42a4: 311f movi r1, 31 + 42a6: 4241 lsli r2, r2, 1 + 42a8: 604e subu r1, r3 + 42aa: 9805 ld.w r0, (r14, 0x14) + 42ac: 7084 lsl r2, r1 + 42ae: 700d lsr r0, r3 + 42b0: 6c08 or r0, r2 + 42b2: 07e6 br 0x427e // 427e <__fixdfsi+0x36> + 42b4: 7fffffff .long 0x7fffffff + +000042b8 <__make_dp>: + 42b8: 1421 subi r14, r14, 4 + 42ba: 14d1 push r4, r15 + 42bc: 1425 subi r14, r14, 20 + 42be: b867 st.w r3, (r14, 0x1c) + 42c0: 9867 ld.w r3, (r14, 0x1c) + 42c2: 9888 ld.w r4, (r14, 0x20) + 42c4: b800 st.w r0, (r14, 0x0) + 42c6: 6c3b mov r0, r14 + 42c8: b821 st.w r1, (r14, 0x4) + 42ca: b842 st.w r2, (r14, 0x8) + 42cc: b863 st.w r3, (r14, 0xc) + 42ce: b884 st.w r4, (r14, 0x10) + 42d0: e0000172 bsr 0x45b4 // 45b4 <__pack_d> + 42d4: 1405 addi r14, r14, 20 + 42d6: d9ee2001 ld.w r15, (r14, 0x4) + 42da: 9880 ld.w r4, (r14, 0x0) + 42dc: 1403 addi r14, r14, 12 + 42de: 783c jmp r15 + +000042e0 <__truncdfsf2>: + 42e0: 14d0 push r15 + 42e2: 1427 subi r14, r14, 28 + 42e4: b800 st.w r0, (r14, 0x0) + 42e6: b821 st.w r1, (r14, 0x4) + 42e8: 6c3b mov r0, r14 + 42ea: 1902 addi r1, r14, 8 + 42ec: e0000232 bsr 0x4750 // 4750 <__unpack_d> + 42f0: 9845 ld.w r2, (r14, 0x14) + 42f2: 4a3e lsri r1, r2, 30 + 42f4: 9866 ld.w r3, (r14, 0x18) + 42f6: 4242 lsli r2, r2, 2 + 42f8: 4362 lsli r3, r3, 2 + 42fa: 3a40 cmpnei r2, 0 + 42fc: 6cc4 or r3, r1 + 42fe: 0c02 bf 0x4302 // 4302 <__truncdfsf2+0x22> + 4300: 3ba0 bseti r3, 0 + 4302: 9844 ld.w r2, (r14, 0x10) + 4304: 9823 ld.w r1, (r14, 0xc) + 4306: 9802 ld.w r0, (r14, 0x8) + 4308: e000014a bsr 0x459c // 459c <__make_fp> + 430c: 1407 addi r14, r14, 28 + 430e: 1490 pop r15 + +00004310 <__floatunsidf>: + 4310: 14d2 push r4-r5, r15 + 4312: 1425 subi r14, r14, 20 + 4314: 3840 cmpnei r0, 0 + 4316: 3500 movi r5, 0 + 4318: 6d03 mov r4, r0 + 431a: b8a1 st.w r5, (r14, 0x4) + 431c: 0c15 bf 0x4346 // 4346 <__floatunsidf+0x36> + 431e: 3303 movi r3, 3 + 4320: b860 st.w r3, (r14, 0x0) + 4322: e0000043 bsr 0x43a8 // 43a8 <__clzsi2> + 4326: 321d movi r2, 29 + 4328: 6080 addu r2, r0 + 432a: 2802 subi r0, 3 + 432c: 38df btsti r0, 31 + 432e: 0813 bt 0x4354 // 4354 <__floatunsidf+0x44> + 4330: 7100 lsl r4, r0 + 4332: b884 st.w r4, (r14, 0x10) + 4334: b8a3 st.w r5, (r14, 0xc) + 4336: 333c movi r3, 60 + 4338: 60ca subu r3, r2 + 433a: 6c3b mov r0, r14 + 433c: b862 st.w r3, (r14, 0x8) + 433e: e000013b bsr 0x45b4 // 45b4 <__pack_d> + 4342: 1405 addi r14, r14, 20 + 4344: 1492 pop r4-r5, r15 + 4346: 3302 movi r3, 2 + 4348: 6c3b mov r0, r14 + 434a: b860 st.w r3, (r14, 0x0) + 434c: e0000134 bsr 0x45b4 // 45b4 <__pack_d> + 4350: 1405 addi r14, r14, 20 + 4352: 1492 pop r4-r5, r15 + 4354: 311f movi r1, 31 + 4356: 4c61 lsri r3, r4, 1 + 4358: 604a subu r1, r2 + 435a: 70c5 lsr r3, r1 + 435c: 7108 lsl r4, r2 + 435e: b864 st.w r3, (r14, 0x10) + 4360: b883 st.w r4, (r14, 0xc) + 4362: 07ea br 0x4336 // 4336 <__floatunsidf+0x26> + +00004364 <__muldi3>: + 4364: 14c4 push r4-r7 + 4366: 1421 subi r14, r14, 4 + 4368: 7501 zexth r4, r0 + 436a: 48b0 lsri r5, r0, 16 + 436c: 75c9 zexth r7, r2 + 436e: 6d83 mov r6, r0 + 4370: b820 st.w r1, (r14, 0x0) + 4372: 6c13 mov r0, r4 + 4374: 4a30 lsri r1, r2, 16 + 4376: 7c1c mult r0, r7 + 4378: 7d04 mult r4, r1 + 437a: 7dd4 mult r7, r5 + 437c: 611c addu r4, r7 + 437e: 7d44 mult r5, r1 + 4380: 4830 lsri r1, r0, 16 + 4382: 6104 addu r4, r1 + 4384: 65d0 cmphs r4, r7 + 4386: 0804 bt 0x438e // 438e <__muldi3+0x2a> + 4388: 3180 movi r1, 128 + 438a: 4129 lsli r1, r1, 9 + 438c: 6144 addu r5, r1 + 438e: 4c30 lsri r1, r4, 16 + 4390: 7cd8 mult r3, r6 + 4392: 6144 addu r5, r1 + 4394: 6c4f mov r1, r3 + 4396: 9860 ld.w r3, (r14, 0x0) + 4398: 7cc8 mult r3, r2 + 439a: 4490 lsli r4, r4, 16 + 439c: 604c addu r1, r3 + 439e: 7401 zexth r0, r0 + 43a0: 6010 addu r0, r4 + 43a2: 6054 addu r1, r5 + 43a4: 1401 addi r14, r14, 4 + 43a6: 1484 pop r4-r7 + +000043a8 <__clzsi2>: + 43a8: 106d lrw r3, 0xffff // 43dc <__clzsi2+0x34> + 43aa: 640c cmphs r3, r0 + 43ac: 0c07 bf 0x43ba // 43ba <__clzsi2+0x12> + 43ae: 33ff movi r3, 255 + 43b0: 640c cmphs r3, r0 + 43b2: 0c0f bf 0x43d0 // 43d0 <__clzsi2+0x28> + 43b4: 3320 movi r3, 32 + 43b6: 3200 movi r2, 0 + 43b8: 0406 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43ba: 106a lrw r3, 0xffffff // 43e0 <__clzsi2+0x38> + 43bc: 640c cmphs r3, r0 + 43be: 080c bt 0x43d6 // 43d6 <__clzsi2+0x2e> + 43c0: 3308 movi r3, 8 + 43c2: 3218 movi r2, 24 + 43c4: 7009 lsr r0, r2 + 43c6: 1048 lrw r2, 0xac10 // 43e4 <__clzsi2+0x3c> + 43c8: 6008 addu r0, r2 + 43ca: 8040 ld.b r2, (r0, 0x0) + 43cc: 5b09 subu r0, r3, r2 + 43ce: 783c jmp r15 + 43d0: 3318 movi r3, 24 + 43d2: 3208 movi r2, 8 + 43d4: 07f8 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43d6: 3310 movi r3, 16 + 43d8: 3210 movi r2, 16 + 43da: 07f5 br 0x43c4 // 43c4 <__clzsi2+0x1c> + 43dc: 0000ffff .long 0x0000ffff + 43e0: 00ffffff .long 0x00ffffff + 43e4: 0000ac10 .long 0x0000ac10 + +000043e8 <__pack_f>: + 43e8: 14c2 push r4-r5 + 43ea: 9040 ld.w r2, (r0, 0x0) + 43ec: 3a01 cmphsi r2, 2 + 43ee: 9063 ld.w r3, (r0, 0xc) + 43f0: 9021 ld.w r1, (r0, 0x4) + 43f2: 0c27 bf 0x4440 // 4440 <__pack_f+0x58> + 43f4: 3a44 cmpnei r2, 4 + 43f6: 0c22 bf 0x443a // 443a <__pack_f+0x52> + 43f8: 3a42 cmpnei r2, 2 + 43fa: 0c1d bf 0x4434 // 4434 <__pack_f+0x4c> + 43fc: 3b40 cmpnei r3, 0 + 43fe: 0c1b bf 0x4434 // 4434 <__pack_f+0x4c> + 4400: 3400 movi r4, 0 + 4402: 9042 ld.w r2, (r0, 0x8) + 4404: 2c7d subi r4, 126 + 4406: 6509 cmplt r2, r4 + 4408: 082a bt 0x445c // 445c <__pack_f+0x74> + 440a: 347f movi r4, 127 + 440c: 6491 cmplt r4, r2 + 440e: 0816 bt 0x443a // 443a <__pack_f+0x52> + 4410: 690c and r4, r3 + 4412: 3540 movi r5, 64 + 4414: 6552 cmpne r4, r5 + 4416: 0c1a bf 0x444a // 444a <__pack_f+0x62> + 4418: 233e addi r3, 63 + 441a: 3bdf btsti r3, 31 + 441c: 081d bt 0x4456 // 4456 <__pack_f+0x6e> + 441e: 227e addi r2, 127 + 4420: 4302 lsli r0, r3, 2 + 4422: 4809 lsri r0, r0, 9 + 4424: 74c8 zextb r3, r2 + 4426: 4009 lsli r0, r0, 9 + 4428: 4377 lsli r3, r3, 23 + 442a: 4809 lsri r0, r0, 9 + 442c: 413f lsli r1, r1, 31 + 442e: 6c0c or r0, r3 + 4430: 6c04 or r0, r1 + 4432: 1482 pop r4-r5 + 4434: 3300 movi r3, 0 + 4436: 3000 movi r0, 0 + 4438: 07f7 br 0x4426 // 4426 <__pack_f+0x3e> + 443a: 33ff movi r3, 255 + 443c: 3000 movi r0, 0 + 443e: 07f4 br 0x4426 // 4426 <__pack_f+0x3e> + 4440: 4303 lsli r0, r3, 3 + 4442: 480a lsri r0, r0, 10 + 4444: 38b6 bseti r0, 22 + 4446: 33ff movi r3, 255 + 4448: 07ef br 0x4426 // 4426 <__pack_f+0x3e> + 444a: 3080 movi r0, 128 + 444c: 680c and r0, r3 + 444e: 3840 cmpnei r0, 0 + 4450: 0fe5 bf 0x441a // 441a <__pack_f+0x32> + 4452: 60d0 addu r3, r4 + 4454: 07e3 br 0x441a // 441a <__pack_f+0x32> + 4456: 4b61 lsri r3, r3, 1 + 4458: 227f addi r2, 128 + 445a: 07e3 br 0x4420 // 4420 <__pack_f+0x38> + 445c: 610a subu r4, r2 + 445e: 3c39 cmplti r4, 26 + 4460: 0fea bf 0x4434 // 4434 <__pack_f+0x4c> + 4462: 3201 movi r2, 1 + 4464: 7090 lsl r2, r4 + 4466: 2a00 subi r2, 1 + 4468: 6c0f mov r0, r3 + 446a: 68c8 and r3, r2 + 446c: 3b40 cmpnei r3, 0 + 446e: 3300 movi r3, 0 + 4470: 7011 lsr r0, r4 + 4472: 60cd addc r3, r3 + 4474: 6cc0 or r3, r0 + 4476: 307f movi r0, 127 + 4478: 680c and r0, r3 + 447a: 3240 movi r2, 64 + 447c: 6482 cmpne r0, r2 + 447e: 080d bt 0x4498 // 4498 <__pack_f+0xb0> + 4480: 3280 movi r2, 128 + 4482: 688c and r2, r3 + 4484: 3a40 cmpnei r2, 0 + 4486: 0c02 bf 0x448a // 448a <__pack_f+0xa2> + 4488: 60c0 addu r3, r0 + 448a: 1045 lrw r2, 0x3fffffff // 449c <__pack_f+0xb4> + 448c: 64c8 cmphs r2, r3 + 448e: 4302 lsli r0, r3, 2 + 4490: 64c3 mvcv r3 + 4492: 4809 lsri r0, r0, 9 + 4494: 74cc zextb r3, r3 + 4496: 07c8 br 0x4426 // 4426 <__pack_f+0x3e> + 4498: 233e addi r3, 63 + 449a: 07f8 br 0x448a // 448a <__pack_f+0xa2> + 449c: 3fffffff .long 0x3fffffff + +000044a0 <__unpack_f>: + 44a0: 14c1 push r4 + 44a2: 8861 ld.h r3, (r0, 0x2) + 44a4: 4371 lsli r3, r3, 17 + 44a6: 9040 ld.w r2, (r0, 0x0) + 44a8: 4b78 lsri r3, r3, 24 + 44aa: 8003 ld.b r0, (r0, 0x3) + 44ac: 4249 lsli r2, r2, 9 + 44ae: 4807 lsri r0, r0, 7 + 44b0: 3b40 cmpnei r3, 0 + 44b2: 4a49 lsri r2, r2, 9 + 44b4: b101 st.w r0, (r1, 0x4) + 44b6: 0811 bt 0x44d8 // 44d8 <__unpack_f+0x38> + 44b8: 3a40 cmpnei r2, 0 + 44ba: 0c1a bf 0x44ee // 44ee <__unpack_f+0x4e> + 44bc: 3303 movi r3, 3 + 44be: b160 st.w r3, (r1, 0x0) + 44c0: 3300 movi r3, 0 + 44c2: 4247 lsli r2, r2, 7 + 44c4: 2b7e subi r3, 127 + 44c6: 1096 lrw r4, 0x3fffffff // 451c <__unpack_f+0x7c> + 44c8: 4241 lsli r2, r2, 1 + 44ca: 6490 cmphs r4, r2 + 44cc: 6c0f mov r0, r3 + 44ce: 2b00 subi r3, 1 + 44d0: 0bfc bt 0x44c8 // 44c8 <__unpack_f+0x28> + 44d2: b102 st.w r0, (r1, 0x8) + 44d4: b143 st.w r2, (r1, 0xc) + 44d6: 1481 pop r4 + 44d8: 30ff movi r0, 255 + 44da: 640e cmpne r3, r0 + 44dc: 0c0c bf 0x44f4 // 44f4 <__unpack_f+0x54> + 44de: 2b7e subi r3, 127 + 44e0: 4247 lsli r2, r2, 7 + 44e2: b162 st.w r3, (r1, 0x8) + 44e4: 3abe bseti r2, 30 + 44e6: 3303 movi r3, 3 + 44e8: b160 st.w r3, (r1, 0x0) + 44ea: b143 st.w r2, (r1, 0xc) + 44ec: 1481 pop r4 + 44ee: 3302 movi r3, 2 + 44f0: b160 st.w r3, (r1, 0x0) + 44f2: 1481 pop r4 + 44f4: 3a40 cmpnei r2, 0 + 44f6: 0c0d bf 0x4510 // 4510 <__unpack_f+0x70> + 44f8: 3380 movi r3, 128 + 44fa: 436f lsli r3, r3, 15 + 44fc: 68c8 and r3, r2 + 44fe: 3b40 cmpnei r3, 0 + 4500: 0c0b bf 0x4516 // 4516 <__unpack_f+0x76> + 4502: 3301 movi r3, 1 + 4504: b160 st.w r3, (r1, 0x0) + 4506: 1067 lrw r3, 0x2000007f // 4520 <__unpack_f+0x80> + 4508: 4247 lsli r2, r2, 7 + 450a: 688d andn r2, r3 + 450c: b143 st.w r2, (r1, 0xc) + 450e: 1481 pop r4 + 4510: 3304 movi r3, 4 + 4512: b160 st.w r3, (r1, 0x0) + 4514: 1481 pop r4 + 4516: b160 st.w r3, (r1, 0x0) + 4518: 07f7 br 0x4506 // 4506 <__unpack_f+0x66> + 451a: 0000 bkpt + 451c: 3fffffff .long 0x3fffffff + 4520: 2000007f .long 0x2000007f + +00004524 <__fpcmp_parts_f>: + 4524: 14c1 push r4 + 4526: 9060 ld.w r3, (r0, 0x0) + 4528: 3b01 cmphsi r3, 2 + 452a: 0c12 bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 452c: 9140 ld.w r2, (r1, 0x0) + 452e: 3a01 cmphsi r2, 2 + 4530: 0c0f bf 0x454e // 454e <__fpcmp_parts_f+0x2a> + 4532: 3b44 cmpnei r3, 4 + 4534: 0c17 bf 0x4562 // 4562 <__fpcmp_parts_f+0x3e> + 4536: 3a44 cmpnei r2, 4 + 4538: 0c0f bf 0x4556 // 4556 <__fpcmp_parts_f+0x32> + 453a: 3b42 cmpnei r3, 2 + 453c: 0c0b bf 0x4552 // 4552 <__fpcmp_parts_f+0x2e> + 453e: 3a42 cmpnei r2, 2 + 4540: 0c13 bf 0x4566 // 4566 <__fpcmp_parts_f+0x42> + 4542: 9061 ld.w r3, (r0, 0x4) + 4544: 9141 ld.w r2, (r1, 0x4) + 4546: 648e cmpne r3, r2 + 4548: 0c14 bf 0x4570 // 4570 <__fpcmp_parts_f+0x4c> + 454a: 3b40 cmpnei r3, 0 + 454c: 0808 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 454e: 3001 movi r0, 1 + 4550: 1481 pop r4 + 4552: 3a42 cmpnei r2, 2 + 4554: 0c1e bf 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4556: 9161 ld.w r3, (r1, 0x4) + 4558: 3b40 cmpnei r3, 0 + 455a: 0bfa bt 0x454e // 454e <__fpcmp_parts_f+0x2a> + 455c: 3000 movi r0, 0 + 455e: 2800 subi r0, 1 + 4560: 1481 pop r4 + 4562: 3a44 cmpnei r2, 4 + 4564: 0c18 bf 0x4594 // 4594 <__fpcmp_parts_f+0x70> + 4566: 9061 ld.w r3, (r0, 0x4) + 4568: 3b40 cmpnei r3, 0 + 456a: 0bf9 bt 0x455c // 455c <__fpcmp_parts_f+0x38> + 456c: 3001 movi r0, 1 + 456e: 07f1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4570: 9082 ld.w r4, (r0, 0x8) + 4572: 9142 ld.w r2, (r1, 0x8) + 4574: 6509 cmplt r2, r4 + 4576: 0bea bt 0x454a // 454a <__fpcmp_parts_f+0x26> + 4578: 6491 cmplt r4, r2 + 457a: 0807 bt 0x4588 // 4588 <__fpcmp_parts_f+0x64> + 457c: 9003 ld.w r0, (r0, 0xc) + 457e: 9143 ld.w r2, (r1, 0xc) + 4580: 6408 cmphs r2, r0 + 4582: 0fe4 bf 0x454a // 454a <__fpcmp_parts_f+0x26> + 4584: 6480 cmphs r0, r2 + 4586: 0805 bt 0x4590 // 4590 <__fpcmp_parts_f+0x6c> + 4588: 3b40 cmpnei r3, 0 + 458a: 0fe9 bf 0x455c // 455c <__fpcmp_parts_f+0x38> + 458c: 3001 movi r0, 1 + 458e: 07e1 br 0x4550 // 4550 <__fpcmp_parts_f+0x2c> + 4590: 3000 movi r0, 0 + 4592: 1481 pop r4 + 4594: 9161 ld.w r3, (r1, 0x4) + 4596: 9041 ld.w r2, (r0, 0x4) + 4598: 5b09 subu r0, r3, r2 + 459a: 1481 pop r4 + +0000459c <__make_fp>: + 459c: 14d0 push r15 + 459e: 1424 subi r14, r14, 16 + 45a0: b800 st.w r0, (r14, 0x0) + 45a2: 6c3b mov r0, r14 + 45a4: b821 st.w r1, (r14, 0x4) + 45a6: b842 st.w r2, (r14, 0x8) + 45a8: b863 st.w r3, (r14, 0xc) + 45aa: e3ffff1f bsr 0x43e8 // 43e8 <__pack_f> + 45ae: 1404 addi r14, r14, 16 + 45b0: 1490 pop r15 + ... + +000045b4 <__pack_d>: + 45b4: 14c4 push r4-r7 + 45b6: 1422 subi r14, r14, 8 + 45b8: 9060 ld.w r3, (r0, 0x0) + 45ba: 3b01 cmphsi r3, 2 + 45bc: 90c3 ld.w r6, (r0, 0xc) + 45be: 90e4 ld.w r7, (r0, 0x10) + 45c0: 9021 ld.w r1, (r0, 0x4) + 45c2: 0c46 bf 0x464e // 464e <__pack_d+0x9a> + 45c4: 3b44 cmpnei r3, 4 + 45c6: 0c40 bf 0x4646 // 4646 <__pack_d+0x92> + 45c8: 3b42 cmpnei r3, 2 + 45ca: 0c27 bf 0x4618 // 4618 <__pack_d+0x64> + 45cc: 6cdb mov r3, r6 + 45ce: 6cdc or r3, r7 + 45d0: 3b40 cmpnei r3, 0 + 45d2: 0c23 bf 0x4618 // 4618 <__pack_d+0x64> + 45d4: 9062 ld.w r3, (r0, 0x8) + 45d6: 125a lrw r2, 0xfffffc02 // 473c <__pack_d+0x188> + 45d8: 648d cmplt r3, r2 + 45da: 0855 bt 0x4684 // 4684 <__pack_d+0xd0> + 45dc: 1259 lrw r2, 0x3ff // 4740 <__pack_d+0x18c> + 45de: 64c9 cmplt r2, r3 + 45e0: 0833 bt 0x4646 // 4646 <__pack_d+0x92> + 45e2: 34ff movi r4, 255 + 45e4: 3500 movi r5, 0 + 45e6: 6918 and r4, r6 + 45e8: 695c and r5, r7 + 45ea: 3280 movi r2, 128 + 45ec: 6492 cmpne r4, r2 + 45ee: 0c3f bf 0x466c // 466c <__pack_d+0xb8> + 45f0: 347f movi r4, 127 + 45f2: 3500 movi r5, 0 + 45f4: 6599 cmplt r6, r6 + 45f6: 6191 addc r6, r4 + 45f8: 61d5 addc r7, r5 + 45fa: 1253 lrw r2, 0x1fffffff // 4744 <__pack_d+0x190> + 45fc: 65c8 cmphs r2, r7 + 45fe: 0c1a bf 0x4632 // 4632 <__pack_d+0x7e> + 4600: 1290 lrw r4, 0x3ff // 4740 <__pack_d+0x18c> + 4602: 610c addu r4, r3 + 4604: 4718 lsli r0, r7, 24 + 4606: 4f68 lsri r3, r7, 8 + 4608: 4e48 lsri r2, r6, 8 + 460a: 6c80 or r2, r0 + 460c: 430c lsli r0, r3, 12 + 460e: 486c lsri r3, r0, 12 + 4610: 120e lrw r0, 0x7ff // 4748 <__pack_d+0x194> + 4612: 6d4b mov r5, r2 + 4614: 6900 and r4, r0 + 4616: 0404 br 0x461e // 461e <__pack_d+0x6a> + 4618: 3400 movi r4, 0 + 461a: 3200 movi r2, 0 + 461c: 3300 movi r3, 0 + 461e: 430c lsli r0, r3, 12 + 4620: 480c lsri r0, r0, 12 + 4622: 4474 lsli r3, r4, 20 + 4624: 419f lsli r4, r1, 31 + 4626: 6c43 mov r1, r0 + 4628: 6c4c or r1, r3 + 462a: 6c50 or r1, r4 + 462c: 6c0b mov r0, r2 + 462e: 1402 addi r14, r14, 8 + 4630: 1484 pop r4-r7 + 4632: 479f lsli r4, r7, 31 + 4634: 4e01 lsri r0, r6, 1 + 4636: 6d00 or r4, r0 + 4638: 6d93 mov r6, r4 + 463a: 3480 movi r4, 128 + 463c: 4f41 lsri r2, r7, 1 + 463e: 4483 lsli r4, r4, 3 + 4640: 6dcb mov r7, r2 + 4642: 610c addu r4, r3 + 4644: 07e0 br 0x4604 // 4604 <__pack_d+0x50> + 4646: 1281 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4648: 3200 movi r2, 0 + 464a: 3300 movi r3, 0 + 464c: 07e9 br 0x461e // 461e <__pack_d+0x6a> + 464e: 4e08 lsri r0, r6, 8 + 4650: 4798 lsli r4, r7, 24 + 4652: 6d00 or r4, r0 + 4654: 3580 movi r5, 128 + 4656: 4705 lsli r0, r7, 5 + 4658: 6c93 mov r2, r4 + 465a: 486d lsri r3, r0, 13 + 465c: 3400 movi r4, 0 + 465e: 45ac lsli r5, r5, 12 + 4660: 6c90 or r2, r4 + 4662: 6cd4 or r3, r5 + 4664: 430c lsli r0, r3, 12 + 4666: 486c lsri r3, r0, 12 + 4668: 1198 lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 466a: 07da br 0x461e // 461e <__pack_d+0x6a> + 466c: 3d40 cmpnei r5, 0 + 466e: 0bc1 bt 0x45f0 // 45f0 <__pack_d+0x3c> + 4670: 4241 lsli r2, r2, 1 + 4672: 6898 and r2, r6 + 4674: 3a40 cmpnei r2, 0 + 4676: 0fc2 bf 0x45fa // 45fa <__pack_d+0x46> + 4678: 3480 movi r4, 128 + 467a: 3500 movi r5, 0 + 467c: 6599 cmplt r6, r6 + 467e: 6191 addc r6, r4 + 4680: 61d5 addc r7, r5 + 4682: 07bc br 0x45fa // 45fa <__pack_d+0x46> + 4684: 5a6d subu r3, r2, r3 + 4686: 3238 movi r2, 56 + 4688: 64c9 cmplt r2, r3 + 468a: 0bc7 bt 0x4618 // 4618 <__pack_d+0x64> + 468c: 3200 movi r2, 0 + 468e: 2a1f subi r2, 32 + 4690: 608c addu r2, r3 + 4692: 3adf btsti r2, 31 + 4694: 0848 bt 0x4724 // 4724 <__pack_d+0x170> + 4696: 6c1f mov r0, r7 + 4698: 7009 lsr r0, r2 + 469a: b800 st.w r0, (r14, 0x0) + 469c: 3000 movi r0, 0 + 469e: b801 st.w r0, (r14, 0x4) + 46a0: 3adf btsti r2, 31 + 46a2: 083c bt 0x471a // 471a <__pack_d+0x166> + 46a4: 3301 movi r3, 1 + 46a6: 70c8 lsl r3, r2 + 46a8: 6d4f mov r5, r3 + 46aa: 3300 movi r3, 0 + 46ac: 6d0f mov r4, r3 + 46ae: 3200 movi r2, 0 + 46b0: 3300 movi r3, 0 + 46b2: 2a00 subi r2, 1 + 46b4: 2b00 subi r3, 1 + 46b6: 6511 cmplt r4, r4 + 46b8: 6109 addc r4, r2 + 46ba: 614d addc r5, r3 + 46bc: 6990 and r6, r4 + 46be: 69d4 and r7, r5 + 46c0: 6d9c or r6, r7 + 46c2: 3e40 cmpnei r6, 0 + 46c4: 3000 movi r0, 0 + 46c6: 6001 addc r0, r0 + 46c8: 6c83 mov r2, r0 + 46ca: 3300 movi r3, 0 + 46cc: 9880 ld.w r4, (r14, 0x0) + 46ce: 98a1 ld.w r5, (r14, 0x4) + 46d0: 6d08 or r4, r2 + 46d2: 6d4c or r5, r3 + 46d4: 32ff movi r2, 255 + 46d6: 3300 movi r3, 0 + 46d8: 6890 and r2, r4 + 46da: 68d4 and r3, r5 + 46dc: 3080 movi r0, 128 + 46de: 640a cmpne r2, r0 + 46e0: 081b bt 0x4716 // 4716 <__pack_d+0x162> + 46e2: 3b40 cmpnei r3, 0 + 46e4: 0819 bt 0x4716 // 4716 <__pack_d+0x162> + 46e6: 3380 movi r3, 128 + 46e8: 4361 lsli r3, r3, 1 + 46ea: 68d0 and r3, r4 + 46ec: 3b40 cmpnei r3, 0 + 46ee: 0c06 bf 0x46fa // 46fa <__pack_d+0x146> + 46f0: 3280 movi r2, 128 + 46f2: 3300 movi r3, 0 + 46f4: 6511 cmplt r4, r4 + 46f6: 6109 addc r4, r2 + 46f8: 614d addc r5, r3 + 46fa: 4518 lsli r0, r5, 24 + 46fc: 4c48 lsri r2, r4, 8 + 46fe: 4d68 lsri r3, r5, 8 + 4700: 1093 lrw r4, 0xfffffff // 474c <__pack_d+0x198> + 4702: 6c80 or r2, r0 + 4704: 6550 cmphs r4, r5 + 4706: 430c lsli r0, r3, 12 + 4708: 486c lsri r3, r0, 12 + 470a: 3001 movi r0, 1 + 470c: 0c02 bf 0x4710 // 4710 <__pack_d+0x15c> + 470e: 3000 movi r0, 0 + 4710: 108e lrw r4, 0x7ff // 4748 <__pack_d+0x194> + 4712: 6900 and r4, r0 + 4714: 0785 br 0x461e // 461e <__pack_d+0x6a> + 4716: 327f movi r2, 127 + 4718: 07ed br 0x46f2 // 46f2 <__pack_d+0x13e> + 471a: 3201 movi r2, 1 + 471c: 708c lsl r2, r3 + 471e: 3500 movi r5, 0 + 4720: 6d0b mov r4, r2 + 4722: 07c6 br 0x46ae // 46ae <__pack_d+0xfa> + 4724: 341f movi r4, 31 + 4726: 610e subu r4, r3 + 4728: 4701 lsli r0, r7, 1 + 472a: 7010 lsl r0, r4 + 472c: 6d1b mov r4, r6 + 472e: 710d lsr r4, r3 + 4730: 6d00 or r4, r0 + 4732: 6c1f mov r0, r7 + 4734: 700d lsr r0, r3 + 4736: b880 st.w r4, (r14, 0x0) + 4738: b801 st.w r0, (r14, 0x4) + 473a: 07b3 br 0x46a0 // 46a0 <__pack_d+0xec> + 473c: fffffc02 .long 0xfffffc02 + 4740: 000003ff .long 0x000003ff + 4744: 1fffffff .long 0x1fffffff + 4748: 000007ff .long 0x000007ff + 474c: 0fffffff .long 0x0fffffff + +00004750 <__unpack_d>: + 4750: 1423 subi r14, r14, 12 + 4752: b880 st.w r4, (r14, 0x0) + 4754: b8c1 st.w r6, (r14, 0x4) + 4756: b8e2 st.w r7, (r14, 0x8) + 4758: 8843 ld.h r2, (r0, 0x6) + 475a: 4251 lsli r2, r2, 17 + 475c: 9061 ld.w r3, (r0, 0x4) + 475e: 9080 ld.w r4, (r0, 0x0) + 4760: 4a55 lsri r2, r2, 21 + 4762: 8007 ld.b r0, (r0, 0x7) + 4764: 436c lsli r3, r3, 12 + 4766: 4807 lsri r0, r0, 7 + 4768: 3a40 cmpnei r2, 0 + 476a: 4b6c lsri r3, r3, 12 + 476c: b101 st.w r0, (r1, 0x4) + 476e: 0819 bt 0x47a0 // 47a0 <__unpack_d+0x50> + 4770: 6c93 mov r2, r4 + 4772: 6c8c or r2, r3 + 4774: 3a40 cmpnei r2, 0 + 4776: 0c2d bf 0x47d0 // 47d0 <__unpack_d+0x80> + 4778: 4c58 lsri r2, r4, 24 + 477a: 4368 lsli r3, r3, 8 + 477c: 6cc8 or r3, r2 + 477e: 3203 movi r2, 3 + 4780: 4408 lsli r0, r4, 8 + 4782: b140 st.w r2, (r1, 0x0) + 4784: 1181 lrw r4, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 4786: 11c2 lrw r6, 0xfffffff // 480c <__unpack_d+0xbc> + 4788: 485f lsri r2, r0, 31 + 478a: 4361 lsli r3, r3, 1 + 478c: 6cc8 or r3, r2 + 478e: 64d8 cmphs r6, r3 + 4790: 6c93 mov r2, r4 + 4792: 4001 lsli r0, r0, 1 + 4794: 2c00 subi r4, 1 + 4796: 0bf9 bt 0x4788 // 4788 <__unpack_d+0x38> + 4798: b142 st.w r2, (r1, 0x8) + 479a: b103 st.w r0, (r1, 0xc) + 479c: b164 st.w r3, (r1, 0x10) + 479e: 0414 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47a0: 101c lrw r0, 0x7ff // 4810 <__unpack_d+0xc0> + 47a2: 640a cmpne r2, r0 + 47a4: 0c19 bf 0x47d6 // 47d6 <__unpack_d+0x86> + 47a6: 1019 lrw r0, 0xfffffc01 // 4808 <__unpack_d+0xb8> + 47a8: 6080 addu r2, r0 + 47aa: b142 st.w r2, (r1, 0x8) + 47ac: 3203 movi r2, 3 + 47ae: 43e8 lsli r7, r3, 8 + 47b0: b140 st.w r2, (r1, 0x0) + 47b2: 3380 movi r3, 128 + 47b4: 4c58 lsri r2, r4, 24 + 47b6: 6dc8 or r7, r2 + 47b8: 44c8 lsli r6, r4, 8 + 47ba: 3200 movi r2, 0 + 47bc: 4375 lsli r3, r3, 21 + 47be: 6d88 or r6, r2 + 47c0: 6dcc or r7, r3 + 47c2: b1c3 st.w r6, (r1, 0xc) + 47c4: b1e4 st.w r7, (r1, 0x10) + 47c6: 98e2 ld.w r7, (r14, 0x8) + 47c8: 98c1 ld.w r6, (r14, 0x4) + 47ca: 9880 ld.w r4, (r14, 0x0) + 47cc: 1403 addi r14, r14, 12 + 47ce: 783c jmp r15 + 47d0: 3302 movi r3, 2 + 47d2: b160 st.w r3, (r1, 0x0) + 47d4: 07f9 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47d6: 6c93 mov r2, r4 + 47d8: 6c8c or r2, r3 + 47da: 3a40 cmpnei r2, 0 + 47dc: 0c10 bf 0x47fc // 47fc <__unpack_d+0xac> + 47de: 3280 movi r2, 128 + 47e0: 424c lsli r2, r2, 12 + 47e2: 688c and r2, r3 + 47e4: 3a40 cmpnei r2, 0 + 47e6: 0c0e bf 0x4802 // 4802 <__unpack_d+0xb2> + 47e8: 3201 movi r2, 1 + 47ea: b140 st.w r2, (r1, 0x0) + 47ec: 4c58 lsri r2, r4, 24 + 47ee: 4368 lsli r3, r3, 8 + 47f0: 6cc8 or r3, r2 + 47f2: 4408 lsli r0, r4, 8 + 47f4: 3b9b bclri r3, 27 + 47f6: b103 st.w r0, (r1, 0xc) + 47f8: b164 st.w r3, (r1, 0x10) + 47fa: 07e6 br 0x47c6 // 47c6 <__unpack_d+0x76> + 47fc: 3304 movi r3, 4 + 47fe: b160 st.w r3, (r1, 0x0) + 4800: 07e3 br 0x47c6 // 47c6 <__unpack_d+0x76> + 4802: b140 st.w r2, (r1, 0x0) + 4804: 07f4 br 0x47ec // 47ec <__unpack_d+0x9c> + 4806: 0000 bkpt + 4808: fffffc01 .long 0xfffffc01 + 480c: 0fffffff .long 0x0fffffff + 4810: 000007ff .long 0x000007ff + +00004814 <__fpcmp_parts_d>: + 4814: 14c1 push r4 + 4816: 9060 ld.w r3, (r0, 0x0) + 4818: 3b01 cmphsi r3, 2 + 481a: 0c12 bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 481c: 9140 ld.w r2, (r1, 0x0) + 481e: 3a01 cmphsi r2, 2 + 4820: 0c0f bf 0x483e // 483e <__fpcmp_parts_d+0x2a> + 4822: 3b44 cmpnei r3, 4 + 4824: 0c17 bf 0x4852 // 4852 <__fpcmp_parts_d+0x3e> + 4826: 3a44 cmpnei r2, 4 + 4828: 0c0f bf 0x4846 // 4846 <__fpcmp_parts_d+0x32> + 482a: 3b42 cmpnei r3, 2 + 482c: 0c0b bf 0x4842 // 4842 <__fpcmp_parts_d+0x2e> + 482e: 3a42 cmpnei r2, 2 + 4830: 0c13 bf 0x4856 // 4856 <__fpcmp_parts_d+0x42> + 4832: 9061 ld.w r3, (r0, 0x4) + 4834: 9141 ld.w r2, (r1, 0x4) + 4836: 648e cmpne r3, r2 + 4838: 0c14 bf 0x4860 // 4860 <__fpcmp_parts_d+0x4c> + 483a: 3b40 cmpnei r3, 0 + 483c: 0808 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 483e: 3001 movi r0, 1 + 4840: 1481 pop r4 + 4842: 3a42 cmpnei r2, 2 + 4844: 0c28 bf 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4846: 9161 ld.w r3, (r1, 0x4) + 4848: 3b40 cmpnei r3, 0 + 484a: 0bfa bt 0x483e // 483e <__fpcmp_parts_d+0x2a> + 484c: 3000 movi r0, 0 + 484e: 2800 subi r0, 1 + 4850: 1481 pop r4 + 4852: 3a44 cmpnei r2, 4 + 4854: 0c22 bf 0x4898 // 4898 <__fpcmp_parts_d+0x84> + 4856: 9061 ld.w r3, (r0, 0x4) + 4858: 3b40 cmpnei r3, 0 + 485a: 0bf9 bt 0x484c // 484c <__fpcmp_parts_d+0x38> + 485c: 3001 movi r0, 1 + 485e: 07f1 br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 4860: 9082 ld.w r4, (r0, 0x8) + 4862: 9142 ld.w r2, (r1, 0x8) + 4864: 6509 cmplt r2, r4 + 4866: 0bea bt 0x483a // 483a <__fpcmp_parts_d+0x26> + 4868: 6491 cmplt r4, r2 + 486a: 080d bt 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 486c: 9044 ld.w r2, (r0, 0x10) + 486e: 9083 ld.w r4, (r0, 0xc) + 4870: 9103 ld.w r0, (r1, 0xc) + 4872: 9124 ld.w r1, (r1, 0x10) + 4874: 6484 cmphs r1, r2 + 4876: 0fe2 bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4878: 644a cmpne r2, r1 + 487a: 0803 bt 0x4880 // 4880 <__fpcmp_parts_d+0x6c> + 487c: 6500 cmphs r0, r4 + 487e: 0fde bf 0x483a // 483a <__fpcmp_parts_d+0x26> + 4880: 6448 cmphs r2, r1 + 4882: 0805 bt 0x488c // 488c <__fpcmp_parts_d+0x78> + 4884: 3b40 cmpnei r3, 0 + 4886: 0fe3 bf 0x484c // 484c <__fpcmp_parts_d+0x38> + 4888: 3001 movi r0, 1 + 488a: 07db br 0x4840 // 4840 <__fpcmp_parts_d+0x2c> + 488c: 6486 cmpne r1, r2 + 488e: 0803 bt 0x4894 // 4894 <__fpcmp_parts_d+0x80> + 4890: 6410 cmphs r4, r0 + 4892: 0ff9 bf 0x4884 // 4884 <__fpcmp_parts_d+0x70> + 4894: 3000 movi r0, 0 + 4896: 1481 pop r4 + 4898: 9161 ld.w r3, (r1, 0x4) + 489a: 9041 ld.w r2, (r0, 0x4) + 489c: 5b09 subu r0, r3, r2 + 489e: 1481 pop r4 + +000048a0 <__cskyvprintfsnprintf>: + 48a0: 1422 subi r14, r14, 8 + 48a2: b861 st.w r3, (r14, 0x4) + 48a4: b840 st.w r2, (r14, 0x0) + 48a6: 14d0 push r15 + 48a8: 1421 subi r14, r14, 4 + 48aa: 9862 ld.w r3, (r14, 0x8) + 48ac: b860 st.w r3, (r14, 0x0) + 48ae: 9840 ld.w r2, (r14, 0x0) + 48b0: 1b03 addi r3, r14, 12 + 48b2: e0000026 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + 48b6: 1401 addi r14, r14, 4 + 48b8: d9ee2000 ld.w r15, (r14, 0x0) + 48bc: 1403 addi r14, r14, 12 + 48be: 783c jmp r15 + +000048c0 : + 48c0: 14d3 push r4-r6, r15 + 48c2: 6d4b mov r5, r2 + 48c4: 9582 ld.w r4, (r5, 0x8) + 48c6: 9241 ld.w r2, (r2, 0x4) + 48c8: 610a subu r4, r2 + 48ca: 3c40 cmpnei r4, 0 + 48cc: 6d87 mov r6, r1 + 48ce: 0c16 bf 0x48fa // 48fa + 48d0: 6504 cmphs r1, r4 + 48d2: 0802 bt 0x48d6 // 48d6 + 48d4: 6d07 mov r4, r1 + 48d6: 9560 ld.w r3, (r5, 0x0) + 48d8: 3b40 cmpnei r3, 0 + 48da: 0c0d bf 0x48f4 // 48f4 + 48dc: 60c8 addu r3, r2 + 48de: 6c43 mov r1, r0 + 48e0: 6c93 mov r2, r4 + 48e2: 6c0f mov r0, r3 + 48e4: e000007e bsr 0x49e0 // 49e0 <__memcpy_fast> + 48e8: 9500 ld.w r0, (r5, 0x0) + 48ea: 9521 ld.w r1, (r5, 0x4) + 48ec: 6010 addu r0, r4 + 48ee: 6004 addu r0, r1 + 48f0: 3200 movi r2, 0 + 48f2: a040 st.b r2, (r0, 0x0) + 48f4: 9561 ld.w r3, (r5, 0x4) + 48f6: 610c addu r4, r3 + 48f8: b581 st.w r4, (r5, 0x4) + 48fa: 6c1b mov r0, r6 + 48fc: 1493 pop r4-r6, r15 + +000048fe <__cskyvprintfvsnprintf>: + 48fe: 14d3 push r4-r6, r15 + 4900: 1425 subi r14, r14, 20 + 4902: 6d07 mov r4, r1 + 4904: 6d43 mov r5, r0 + 4906: 6c4b mov r1, r2 + 4908: 1802 addi r0, r14, 8 + 490a: 3200 movi r2, 0 + 490c: 3c40 cmpnei r4, 0 + 490e: b0a0 st.w r5, (r0, 0x0) + 4910: b041 st.w r2, (r0, 0x4) + 4912: 0c1c bf 0x494a // 494a <__cskyvprintfvsnprintf+0x4c> + 4914: 5cc3 subi r6, r4, 1 + 4916: b0c2 st.w r6, (r0, 0x8) + 4918: b800 st.w r0, (r14, 0x0) + 491a: 6c8f mov r2, r3 + 491c: 100e lrw r0, 0x48c0 // 4954 <__cskyvprintfvsnprintf+0x56> + 491e: b801 st.w r0, (r14, 0x4) + 4920: 6c3b mov r0, r14 + 4922: e00000bf bsr 0x4aa0 // 4aa0 <__v2_printf> + 4926: 3d40 cmpnei r5, 0 + 4928: 0c0f bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492a: 3c40 cmpnei r4, 0 + 492c: 0c0d bf 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 492e: 38df btsti r0, 31 + 4930: 080b bt 0x4946 // 4946 <__cskyvprintfvsnprintf+0x48> + 4932: 3300 movi r3, 0 + 4934: 2b00 subi r3, 1 + 4936: 64d2 cmpne r4, r3 + 4938: 0c0b bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493a: 6500 cmphs r0, r4 + 493c: 0c09 bf 0x494e // 494e <__cskyvprintfvsnprintf+0x50> + 493e: 6114 addu r4, r5 + 4940: 2c00 subi r4, 1 + 4942: 3100 movi r1, 0 + 4944: a420 st.b r1, (r4, 0x0) + 4946: 1405 addi r14, r14, 20 + 4948: 1493 pop r4-r6, r15 + 494a: 3600 movi r6, 0 + 494c: 07e5 br 0x4916 // 4916 <__cskyvprintfvsnprintf+0x18> + 494e: 5d80 addu r4, r5, r0 + 4950: 07f9 br 0x4942 // 4942 <__cskyvprintfvsnprintf+0x44> + 4952: 0000 bkpt + 4954: 000048c0 .long 0x000048c0 + +00004958 <__memset_fast>: + 4958: 14c3 push r4-r6 + 495a: 7444 zextb r1, r1 + 495c: 3a40 cmpnei r2, 0 + 495e: 0c1f bf 0x499c // 499c <__memset_fast+0x44> + 4960: 6d43 mov r5, r0 + 4962: 6d03 mov r4, r0 + 4964: 3603 movi r6, 3 + 4966: 6918 and r4, r6 + 4968: 3c40 cmpnei r4, 0 + 496a: 0c1a bf 0x499e // 499e <__memset_fast+0x46> + 496c: a520 st.b r1, (r5, 0x0) + 496e: 2a00 subi r2, 1 + 4970: 3a40 cmpnei r2, 0 + 4972: 0c15 bf 0x499c // 499c <__memset_fast+0x44> + 4974: 2500 addi r5, 1 + 4976: 6d17 mov r4, r5 + 4978: 3603 movi r6, 3 + 497a: 6918 and r4, r6 + 497c: 3c40 cmpnei r4, 0 + 497e: 0c10 bf 0x499e // 499e <__memset_fast+0x46> + 4980: a520 st.b r1, (r5, 0x0) + 4982: 2a00 subi r2, 1 + 4984: 3a40 cmpnei r2, 0 + 4986: 0c0b bf 0x499c // 499c <__memset_fast+0x44> + 4988: 2500 addi r5, 1 + 498a: 6d17 mov r4, r5 + 498c: 3603 movi r6, 3 + 498e: 6918 and r4, r6 + 4990: 3c40 cmpnei r4, 0 + 4992: 0c06 bf 0x499e // 499e <__memset_fast+0x46> + 4994: a520 st.b r1, (r5, 0x0) + 4996: 2a00 subi r2, 1 + 4998: 2500 addi r5, 1 + 499a: 0402 br 0x499e // 499e <__memset_fast+0x46> + 499c: 1483 pop r4-r6 + 499e: 4168 lsli r3, r1, 8 + 49a0: 6c4c or r1, r3 + 49a2: 4170 lsli r3, r1, 16 + 49a4: 6c4c or r1, r3 + 49a6: 3a2f cmplti r2, 16 + 49a8: 0809 bt 0x49ba // 49ba <__memset_fast+0x62> + 49aa: b520 st.w r1, (r5, 0x0) + 49ac: b521 st.w r1, (r5, 0x4) + 49ae: b522 st.w r1, (r5, 0x8) + 49b0: b523 st.w r1, (r5, 0xc) + 49b2: 2a0f subi r2, 16 + 49b4: 250f addi r5, 16 + 49b6: 3a2f cmplti r2, 16 + 49b8: 0ff9 bf 0x49aa // 49aa <__memset_fast+0x52> + 49ba: 3a23 cmplti r2, 4 + 49bc: 0806 bt 0x49c8 // 49c8 <__memset_fast+0x70> + 49be: 2a03 subi r2, 4 + 49c0: b520 st.w r1, (r5, 0x0) + 49c2: 2503 addi r5, 4 + 49c4: 3a23 cmplti r2, 4 + 49c6: 0ffc bf 0x49be // 49be <__memset_fast+0x66> + 49c8: 3a40 cmpnei r2, 0 + 49ca: 0fe9 bf 0x499c // 499c <__memset_fast+0x44> + 49cc: 2a00 subi r2, 1 + 49ce: a520 st.b r1, (r5, 0x0) + 49d0: 3a40 cmpnei r2, 0 + 49d2: 0fe5 bf 0x499c // 499c <__memset_fast+0x44> + 49d4: 2a00 subi r2, 1 + 49d6: a521 st.b r1, (r5, 0x1) + 49d8: 3a40 cmpnei r2, 0 + 49da: 0fe1 bf 0x499c // 499c <__memset_fast+0x44> + 49dc: a522 st.b r1, (r5, 0x2) + 49de: 1483 pop r4-r6 + +000049e0 <__memcpy_fast>: + 49e0: 14c3 push r4-r6 + 49e2: 6d83 mov r6, r0 + 49e4: 6d07 mov r4, r1 + 49e6: 6d18 or r4, r6 + 49e8: 3303 movi r3, 3 + 49ea: 690c and r4, r3 + 49ec: 3c40 cmpnei r4, 0 + 49ee: 0c0b bf 0x4a04 // 4a04 <__memcpy_fast+0x24> + 49f0: 3a40 cmpnei r2, 0 + 49f2: 0c08 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 49f4: 8160 ld.b r3, (r1, 0x0) + 49f6: 2100 addi r1, 1 + 49f8: 2a00 subi r2, 1 + 49fa: a660 st.b r3, (r6, 0x0) + 49fc: 2600 addi r6, 1 + 49fe: 3a40 cmpnei r2, 0 + 4a00: 0bfa bt 0x49f4 // 49f4 <__memcpy_fast+0x14> + 4a02: 1483 pop r4-r6 + 4a04: 3a2f cmplti r2, 16 + 4a06: 080e bt 0x4a22 // 4a22 <__memcpy_fast+0x42> + 4a08: 91a0 ld.w r5, (r1, 0x0) + 4a0a: 9161 ld.w r3, (r1, 0x4) + 4a0c: 9182 ld.w r4, (r1, 0x8) + 4a0e: b6a0 st.w r5, (r6, 0x0) + 4a10: 91a3 ld.w r5, (r1, 0xc) + 4a12: b661 st.w r3, (r6, 0x4) + 4a14: b682 st.w r4, (r6, 0x8) + 4a16: b6a3 st.w r5, (r6, 0xc) + 4a18: 2a0f subi r2, 16 + 4a1a: 210f addi r1, 16 + 4a1c: 260f addi r6, 16 + 4a1e: 3a2f cmplti r2, 16 + 4a20: 0ff4 bf 0x4a08 // 4a08 <__memcpy_fast+0x28> + 4a22: 3a23 cmplti r2, 4 + 4a24: 0808 bt 0x4a34 // 4a34 <__memcpy_fast+0x54> + 4a26: 9160 ld.w r3, (r1, 0x0) + 4a28: 2a03 subi r2, 4 + 4a2a: 2103 addi r1, 4 + 4a2c: b660 st.w r3, (r6, 0x0) + 4a2e: 2603 addi r6, 4 + 4a30: 3a23 cmplti r2, 4 + 4a32: 0ffa bf 0x4a26 // 4a26 <__memcpy_fast+0x46> + 4a34: 3a40 cmpnei r2, 0 + 4a36: 0fe6 bf 0x4a02 // 4a02 <__memcpy_fast+0x22> + 4a38: 8160 ld.b r3, (r1, 0x0) + 4a3a: 2100 addi r1, 1 + 4a3c: 2a00 subi r2, 1 + 4a3e: a660 st.b r3, (r6, 0x0) + 4a40: 2600 addi r6, 1 + 4a42: 07f9 br 0x4a34 // 4a34 <__memcpy_fast+0x54> + +00004a44 <__GI_strncmp>: + 4a44: 14c1 push r4 + 4a46: 6cc3 mov r3, r0 + 4a48: 6080 addu r2, r0 + 4a4a: 040c br 0x4a62 // 4a62 <__GI_strncmp+0x1e> + 4a4c: 8380 ld.b r4, (r3, 0x0) + 4a4e: 8100 ld.b r0, (r1, 0x0) + 4a50: 6012 subu r0, r4 + 4a52: 6c02 nor r0, r0 + 4a54: 2000 addi r0, 1 + 4a56: 3840 cmpnei r0, 0 + 4a58: 0808 bt 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5a: 3c40 cmpnei r4, 0 + 4a5c: 0c06 bf 0x4a68 // 4a68 <__GI_strncmp+0x24> + 4a5e: 2300 addi r3, 1 + 4a60: 2100 addi r1, 1 + 4a62: 648c cmphs r3, r2 + 4a64: 0ff4 bf 0x4a4c // 4a4c <__GI_strncmp+0x8> + 4a66: 3000 movi r0, 0 + 4a68: 1481 pop r4 + ... + +00004a6c : + 4a6c: 14d4 push r4-r7, r15 + 4a6e: 3820 cmplti r0, 1 + 4a70: 6d03 mov r4, r0 + 4a72: 6d47 mov r5, r1 + 4a74: 6df7 mov r7, r13 + 4a76: 080d bt 0x4a90 // 4a90 + 4a78: 6d83 mov r6, r0 + 4a7a: 3e30 cmplti r6, 17 + 4a7c: 9700 ld.w r0, (r7, 0x0) + 4a7e: 0c0a bf 0x4a92 // 4a92 + 4a80: 5c63 subi r3, r4, 1 + 4a82: 4b24 lsri r1, r3, 4 + 4a84: 4164 lsli r3, r1, 4 + 4a86: 9040 ld.w r2, (r0, 0x0) + 4a88: 5c2d subu r1, r4, r3 + 4a8a: 9081 ld.w r4, (r0, 0x4) + 4a8c: 6c17 mov r0, r5 + 4a8e: 7bd1 jsr r4 + 4a90: 1494 pop r4-r7, r15 + 4a92: 9040 ld.w r2, (r0, 0x0) + 4a94: 9061 ld.w r3, (r0, 0x4) + 4a96: 3110 movi r1, 16 + 4a98: 6c17 mov r0, r5 + 4a9a: 7bcd jsr r3 + 4a9c: 2e0f subi r6, 16 + 4a9e: 07ee br 0x4a7a // 4a7a + +00004aa0 <__v2_printf>: + 4aa0: 14d4 push r4-r7, r15 + 4aa2: 143c subi r14, r14, 112 + 4aa4: b826 st.w r1, (r14, 0x18) + 4aa6: 1912 addi r1, r14, 72 + 4aa8: 1b21 addi r3, r14, 132 + 4aaa: b810 st.w r0, (r14, 0x40) + 4aac: 2100 addi r1, 1 + 4aae: 3000 movi r0, 0 + 4ab0: 6d4b mov r5, r2 + 4ab2: b871 st.w r3, (r14, 0x44) + 4ab4: b80a st.w r0, (r14, 0x28) + 4ab6: b809 st.w r0, (r14, 0x24) + 4ab8: b82d st.w r1, (r14, 0x34) + 4aba: 9886 ld.w r4, (r14, 0x18) + 4abc: 3325 movi r3, 37 + 4abe: 84c0 ld.b r6, (r4, 0x0) + 4ac0: 3e40 cmpnei r6, 0 + 4ac2: 0c03 bf 0x4ac8 // 4ac8 <__v2_printf+0x28> + 4ac4: 64da cmpne r6, r3 + 4ac6: 0845 bt 0x4b50 // 4b50 <__v2_printf+0xb0> + 4ac8: 9846 ld.w r2, (r14, 0x18) + 4aca: 5cc9 subu r6, r4, r2 + 4acc: 3e40 cmpnei r6, 0 + 4ace: 0c0a bf 0x4ae2 // 4ae2 <__v2_printf+0x42> + 4ad0: 9870 ld.w r3, (r14, 0x40) + 4ad2: 9340 ld.w r2, (r3, 0x0) + 4ad4: 6c5b mov r1, r6 + 4ad6: 9361 ld.w r3, (r3, 0x4) + 4ad8: 9806 ld.w r0, (r14, 0x18) + 4ada: 7bcd jsr r3 + 4adc: 9809 ld.w r0, (r14, 0x24) + 4ade: 6018 addu r0, r6 + 4ae0: b809 st.w r0, (r14, 0x24) + 4ae2: 8420 ld.b r1, (r4, 0x0) + 4ae4: 3940 cmpnei r1, 0 + 4ae6: 0803 bt 0x4aec // 4aec <__v2_printf+0x4c> + 4ae8: e8000367 br 0x51b6 // 51b6 <__v2_printf+0x716> + 4aec: 3637 movi r6, 55 + 4aee: 1a01 addi r2, r14, 4 + 4af0: 3700 movi r7, 0 + 4af2: 6188 addu r6, r2 + 4af4: a6e0 st.b r7, (r6, 0x0) + 4af6: 3300 movi r3, 0 + 4af8: 3600 movi r6, 0 + 4afa: 2400 addi r4, 1 + 4afc: 3000 movi r0, 0 + 4afe: 3100 movi r1, 0 + 4b00: 2e00 subi r6, 1 + 4b02: b867 st.w r3, (r14, 0x1c) + 4b04: 3700 movi r7, 0 + 4b06: 5c42 addi r2, r4, 1 + 4b08: b846 st.w r2, (r14, 0x18) + 4b0a: 8480 ld.b r4, (r4, 0x0) + 4b0c: 3364 movi r3, 100 + 4b0e: 64d2 cmpne r4, r3 + 4b10: 0d90 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4b12: 650d cmplt r3, r4 + 4b14: 084e bt 0x4bb0 // 4bb0 <__v2_printf+0x110> + 4b16: 322e movi r2, 46 + 4b18: 6492 cmpne r4, r2 + 4b1a: 0d41 bf 0x4d9c // 4d9c <__v2_printf+0x2fc> + 4b1c: 6509 cmplt r2, r4 + 4b1e: 0829 bt 0x4b70 // 4b70 <__v2_printf+0xd0> + 4b20: 332a movi r3, 42 + 4b22: 64d2 cmpne r4, r3 + 4b24: 0d31 bf 0x4d86 // 4d86 <__v2_printf+0x2e6> + 4b26: 650d cmplt r3, r4 + 4b28: 081c bt 0x4b60 // 4b60 <__v2_printf+0xc0> + 4b2a: 3220 movi r2, 32 + 4b2c: 6492 cmpne r4, r2 + 4b2e: 0d25 bf 0x4d78 // 4d78 <__v2_printf+0x2d8> + 4b30: 3323 movi r3, 35 + 4b32: 64d2 cmpne r4, r3 + 4b34: 0d27 bf 0x4d82 // 4d82 <__v2_printf+0x2e2> + 4b36: 3c40 cmpnei r4, 0 + 4b38: 0803 bt 0x4b3e // 4b3e <__v2_printf+0x9e> + 4b3a: e800033e br 0x51b6 // 51b6 <__v2_printf+0x716> + 4b3e: 1e12 addi r6, r14, 72 + 4b40: 3037 movi r0, 55 + 4b42: 1a01 addi r2, r14, 4 + 4b44: a680 st.b r4, (r6, 0x0) + 4b46: 6008 addu r0, r2 + 4b48: 3400 movi r4, 0 + 4b4a: a080 st.b r4, (r0, 0x0) + 4b4c: b8a5 st.w r5, (r14, 0x14) + 4b4e: 042c br 0x4ba6 // 4ba6 <__v2_printf+0x106> + 4b50: 2400 addi r4, 1 + 4b52: 07b6 br 0x4abe // 4abe <__v2_printf+0x1e> + 4b54: 3001 movi r0, 1 + 4b56: 312b movi r1, 43 + 4b58: 9886 ld.w r4, (r14, 0x18) + 4b5a: 07d6 br 0x4b06 // 4b06 <__v2_printf+0x66> + 4b5c: 6d4f mov r5, r3 + 4b5e: 07fd br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b60: 322b movi r2, 43 + 4b62: 6492 cmpne r4, r2 + 4b64: 0ff8 bf 0x4b54 // 4b54 <__v2_printf+0xb4> + 4b66: 332d movi r3, 45 + 4b68: 64d2 cmpne r4, r3 + 4b6a: 0be6 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b6c: 3fa2 bseti r7, 2 + 4b6e: 07f5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b70: 3339 movi r3, 57 + 4b72: 650d cmplt r3, r4 + 4b74: 0809 bt 0x4b86 // 4b86 <__v2_printf+0xe6> + 4b76: 3231 movi r2, 49 + 4b78: 6491 cmplt r4, r2 + 4b7a: 0d34 bf 0x4de2 // 4de2 <__v2_printf+0x342> + 4b7c: 3330 movi r3, 48 + 4b7e: 64d2 cmpne r4, r3 + 4b80: 0bdb bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b82: 3fa7 bseti r7, 7 + 4b84: 07ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4b86: 3258 movi r2, 88 + 4b88: 6492 cmpne r4, r2 + 4b8a: 0cd3 bf 0x4d30 // 4d30 <__v2_printf+0x290> + 4b8c: 3063 movi r0, 99 + 4b8e: 6412 cmpne r4, r0 + 4b90: 0bd3 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4b92: 3337 movi r3, 55 + 4b94: 1a01 addi r2, r14, 4 + 4b96: 5d2e addi r1, r5, 4 + 4b98: 85c0 ld.b r6, (r5, 0x0) + 4b9a: 3400 movi r4, 0 + 4b9c: 1d12 addi r5, r14, 72 + 4b9e: 60c8 addu r3, r2 + 4ba0: b825 st.w r1, (r14, 0x14) + 4ba2: a5c0 st.b r6, (r5, 0x0) + 4ba4: a380 st.b r4, (r3, 0x0) + 4ba6: 3601 movi r6, 1 + 4ba8: 3500 movi r5, 0 + 4baa: 1c12 addi r4, r14, 72 + 4bac: e8000295 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4bb0: 336d movi r3, 109 + 4bb2: 64d2 cmpne r4, r3 + 4bb4: 0d2d bf 0x4e0e // 4e0e <__v2_printf+0x36e> + 4bb6: 650d cmplt r3, r4 + 4bb8: 0883 bt 0x4cbe // 4cbe <__v2_printf+0x21e> + 4bba: 3268 movi r2, 104 + 4bbc: 6492 cmpne r4, r2 + 4bbe: 0d24 bf 0x4e06 // 4e06 <__v2_printf+0x366> + 4bc0: 6509 cmplt r2, r4 + 4bc2: 086f bt 0x4ca0 // 4ca0 <__v2_printf+0x200> + 4bc4: 3366 movi r3, 102 + 4bc6: 64d1 cmplt r4, r3 + 4bc8: 0bb7 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4bca: 3840 cmpnei r0, 0 + 4bcc: 0c05 bf 0x4bd6 // 4bd6 <__v2_printf+0x136> + 4bce: 3037 movi r0, 55 + 4bd0: 1a01 addi r2, r14, 4 + 4bd2: 6008 addu r0, r2 + 4bd4: a020 st.b r1, (r0, 0x0) + 4bd6: 5d3e addi r1, r5, 8 + 4bd8: b825 st.w r1, (r14, 0x14) + 4bda: 9500 ld.w r0, (r5, 0x0) + 4bdc: 9521 ld.w r1, (r5, 0x4) + 4bde: 98a7 ld.w r5, (r14, 0x1c) + 4be0: 3d40 cmpnei r5, 0 + 4be2: 0803 bt 0x4be8 // 4be8 <__v2_printf+0x148> + 4be4: 3301 movi r3, 1 + 4be6: b867 st.w r3, (r14, 0x1c) + 4be8: 3200 movi r2, 0 + 4bea: 2a00 subi r2, 1 + 4bec: 649a cmpne r6, r2 + 4bee: 0d58 bf 0x4e9e // 4e9e <__v2_printf+0x3fe> + 4bf0: 6d5b mov r5, r6 + 4bf2: 9867 ld.w r3, (r14, 0x1c) + 4bf4: b860 st.w r3, (r14, 0x0) + 4bf6: b8a1 st.w r5, (r14, 0x4) + 4bf8: 3328 movi r3, 40 + 4bfa: 1a12 addi r2, r14, 72 + 4bfc: e000069d bsr 0x5936 // 5936 <__GI___dtostr> + 4c00: 3100 movi r1, 0 + 4c02: 2900 subi r1, 1 + 4c04: 645a cmpne r6, r1 + 4c06: b808 st.w r0, (r14, 0x20) + 4c08: 0c1a bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4c0a: 312e movi r1, 46 + 4c0c: 980d ld.w r0, (r14, 0x34) + 4c0e: e00008c9 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c12: 3840 cmpnei r0, 0 + 4c14: 98c8 ld.w r6, (r14, 0x20) + 4c16: 0d48 bf 0x4ea6 // 4ea6 <__v2_printf+0x406> + 4c18: 3d40 cmpnei r5, 0 + 4c1a: 0805 bt 0x4c24 // 4c24 <__v2_printf+0x184> + 4c1c: 3101 movi r1, 1 + 4c1e: 685c and r1, r7 + 4c20: 3940 cmpnei r1, 0 + 4c22: 0d40 bf 0x4ea2 // 4ea2 <__v2_printf+0x402> + 4c24: 58c2 addi r6, r0, 1 + 4c26: 2500 addi r5, 1 + 4c28: 5d59 subu r2, r5, r6 + 4c2a: 6080 addu r2, r0 + 4c2c: 3a20 cmplti r2, 1 + 4c2e: 0805 bt 0x4c38 // 4c38 <__v2_printf+0x198> + 4c30: 2600 addi r6, 1 + 4c32: 8660 ld.b r3, (r6, 0x0) + 4c34: 3b40 cmpnei r3, 0 + 4c36: 0bf9 bt 0x4c28 // 4c28 <__v2_printf+0x188> + 4c38: 3500 movi r5, 0 + 4c3a: a6a0 st.b r5, (r6, 0x0) + 4c3c: 3067 movi r0, 103 + 4c3e: 6412 cmpne r4, r0 + 4c40: 0822 bt 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c42: 312e movi r1, 46 + 4c44: 1812 addi r0, r14, 72 + 4c46: e00008ad bsr 0x5da0 // 5da0 <__GI_strchr> + 4c4a: 3840 cmpnei r0, 0 + 4c4c: 6d03 mov r4, r0 + 4c4e: 0c1b bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c50: 3165 movi r1, 101 + 4c52: e00008a7 bsr 0x5da0 // 5da0 <__GI_strchr> + 4c56: 6c43 mov r1, r0 + 4c58: 84c0 ld.b r6, (r4, 0x0) + 4c5a: 3e40 cmpnei r6, 0 + 4c5c: 0930 bt 0x4ebc // 4ebc <__v2_printf+0x41c> + 4c5e: 3940 cmpnei r1, 0 + 4c60: 0c02 bf 0x4c64 // 4c64 <__v2_printf+0x1c4> + 4c62: 6d07 mov r4, r1 + 4c64: 3630 movi r6, 48 + 4c66: 5c63 subi r3, r4, 1 + 4c68: 8340 ld.b r2, (r3, 0x0) + 4c6a: 658a cmpne r2, r6 + 4c6c: 0d2a bf 0x4ec0 // 4ec0 <__v2_printf+0x420> + 4c6e: 352e movi r5, 46 + 4c70: 654a cmpne r2, r5 + 4c72: 0802 bt 0x4c76 // 4c76 <__v2_printf+0x1d6> + 4c74: 6d0f mov r4, r3 + 4c76: 3000 movi r0, 0 + 4c78: 3940 cmpnei r1, 0 + 4c7a: a400 st.b r0, (r4, 0x0) + 4c7c: 0c04 bf 0x4c84 // 4c84 <__v2_printf+0x1e4> + 4c7e: 6c13 mov r0, r4 + 4c80: e0000838 bsr 0x5cf0 // 5cf0 <__strcpy_fast> + 4c84: 1912 addi r1, r14, 72 + 4c86: 81c0 ld.b r6, (r1, 0x0) + 4c88: 332d movi r3, 45 + 4c8a: 64da cmpne r6, r3 + 4c8c: 0c02 bf 0x4c90 // 4c90 <__v2_printf+0x1f0> + 4c8e: 05ef br 0x506c // 506c <__v2_printf+0x5cc> + 4c90: 3437 movi r4, 55 + 4c92: 1801 addi r0, r14, 4 + 4c94: 352d movi r5, 45 + 4c96: 6100 addu r4, r0 + 4c98: a4a0 st.b r5, (r4, 0x0) + 4c9a: 1912 addi r1, r14, 72 + 4c9c: 5982 addi r4, r1, 1 + 4c9e: 05ec br 0x5076 // 5076 <__v2_printf+0x5d6> + 4ca0: 3369 movi r3, 105 + 4ca2: 64d2 cmpne r4, r3 + 4ca4: 0cc6 bf 0x4e30 // 4e30 <__v2_printf+0x390> + 4ca6: 326c movi r2, 108 + 4ca8: 6492 cmpne r4, r2 + 4caa: 0b46 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cac: 9866 ld.w r3, (r14, 0x18) + 4cae: 8340 ld.b r2, (r3, 0x0) + 4cb0: 650a cmpne r2, r4 + 4cb2: 08ac bt 0x4e0a // 4e0a <__v2_printf+0x36a> + 4cb4: 9886 ld.w r4, (r14, 0x18) + 4cb6: 2400 addi r4, 1 + 4cb8: b886 st.w r4, (r14, 0x18) + 4cba: 3fa5 bseti r7, 5 + 4cbc: 074e br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4cbe: 3371 movi r3, 113 + 4cc0: 64d2 cmpne r4, r3 + 4cc2: 0ffc bf 0x4cba // 4cba <__v2_printf+0x21a> + 4cc4: 650d cmplt r3, r4 + 4cc6: 081a bt 0x4cfa // 4cfa <__v2_printf+0x25a> + 4cc8: 306f movi r0, 111 + 4cca: 6412 cmpne r4, r0 + 4ccc: 0cfc bf 0x4ec4 // 4ec4 <__v2_printf+0x424> + 4cce: 3170 movi r1, 112 + 4cd0: 6452 cmpne r4, r1 + 4cd2: 0b32 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4cd4: 5d4e addi r2, r5, 4 + 4cd6: 3400 movi r4, 0 + 4cd8: 95a0 ld.w r5, (r5, 0x0) + 4cda: b845 st.w r2, (r14, 0x14) + 4cdc: 1901 addi r1, r14, 4 + 4cde: 3239 movi r2, 57 + 4ce0: b8a3 st.w r5, (r14, 0xc) + 4ce2: b884 st.w r4, (r14, 0x10) + 4ce4: 3330 movi r3, 48 + 4ce6: 180f addi r0, r14, 60 + 4ce8: 3578 movi r5, 120 + 4cea: 6084 addu r2, r1 + 4cec: 0195 lrw r4, 0xbaea // 5014 <__v2_printf+0x574> + 4cee: 3fa1 bseti r7, 1 + 4cf0: a060 st.b r3, (r0, 0x0) + 4cf2: a2a0 st.b r5, (r2, 0x0) + 4cf4: b88a st.w r4, (r14, 0x28) + 4cf6: 3402 movi r4, 2 + 4cf8: 04f1 br 0x4eda // 4eda <__v2_printf+0x43a> + 4cfa: 3275 movi r2, 117 + 4cfc: 6492 cmpne r4, r2 + 4cfe: 0d28 bf 0x4f4e // 4f4e <__v2_printf+0x4ae> + 4d00: 3378 movi r3, 120 + 4d02: 64d2 cmpne r4, r3 + 4d04: 0d44 bf 0x4f8c // 4f8c <__v2_printf+0x4ec> + 4d06: 3173 movi r1, 115 + 4d08: 6452 cmpne r4, r1 + 4d0a: 0b16 bt 0x4b36 // 4b36 <__v2_printf+0x96> + 4d0c: 3200 movi r2, 0 + 4d0e: 3037 movi r0, 55 + 4d10: 1901 addi r1, r14, 4 + 4d12: 2a00 subi r2, 1 + 4d14: 5d6e addi r3, r5, 4 + 4d16: 9580 ld.w r4, (r5, 0x0) + 4d18: 6004 addu r0, r1 + 4d1a: 3500 movi r5, 0 + 4d1c: 649a cmpne r6, r2 + 4d1e: b865 st.w r3, (r14, 0x14) + 4d20: a0a0 st.b r5, (r0, 0x0) + 4d22: 090b bt 0x4f38 // 4f38 <__v2_printf+0x498> + 4d24: 6cd3 mov r3, r4 + 4d26: 83c0 ld.b r6, (r3, 0x0) + 4d28: 3e40 cmpnei r6, 0 + 4d2a: 0910 bt 0x4f4a // 4f4a <__v2_printf+0x4aa> + 4d2c: 5bd1 subu r6, r3, r4 + 4d2e: 047f br 0x4e2c // 4e2c <__v2_printf+0x38c> + 4d30: 3840 cmpnei r0, 0 + 4d32: 0c05 bf 0x4d3c // 4d3c <__v2_printf+0x29c> + 4d34: 3037 movi r0, 55 + 4d36: 1b01 addi r3, r14, 4 + 4d38: 600c addu r0, r3 + 4d3a: a020 st.b r1, (r0, 0x0) + 4d3c: 0228 lrw r1, 0xbad9 // 5018 <__v2_printf+0x578> + 4d3e: 3020 movi r0, 32 + 4d40: 681c and r0, r7 + 4d42: 3840 cmpnei r0, 0 + 4d44: b82a st.w r1, (r14, 0x28) + 4d46: 0d2b bf 0x4f9c // 4f9c <__v2_printf+0x4fc> + 4d48: 5d5e addi r2, r5, 8 + 4d4a: b845 st.w r2, (r14, 0x14) + 4d4c: 9520 ld.w r1, (r5, 0x0) + 4d4e: 9541 ld.w r2, (r5, 0x4) + 4d50: b823 st.w r1, (r14, 0xc) + 4d52: b844 st.w r2, (r14, 0x10) + 4d54: 3001 movi r0, 1 + 4d56: 681c and r0, r7 + 4d58: 3840 cmpnei r0, 0 + 4d5a: 0fce bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d5c: 98a3 ld.w r5, (r14, 0xc) + 4d5e: 9864 ld.w r3, (r14, 0x10) + 4d60: 6d4c or r5, r3 + 4d62: 3d40 cmpnei r5, 0 + 4d64: 0fc9 bf 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d66: 3039 movi r0, 57 + 4d68: 1d01 addi r5, r14, 4 + 4d6a: 3130 movi r1, 48 + 4d6c: 1a0f addi r2, r14, 60 + 4d6e: 6014 addu r0, r5 + 4d70: a220 st.b r1, (r2, 0x0) + 4d72: a080 st.b r4, (r0, 0x0) + 4d74: 3fa1 bseti r7, 1 + 4d76: 07c0 br 0x4cf6 // 4cf6 <__v2_printf+0x256> + 4d78: 3940 cmpnei r1, 0 + 4d7a: 0aef bt 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d7c: 3001 movi r0, 1 + 4d7e: 3120 movi r1, 32 + 4d80: 06ec br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d82: 3fa0 bseti r7, 0 + 4d84: 06ea br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4d86: 9580 ld.w r4, (r5, 0x0) + 4d88: 3cdf btsti r4, 31 + 4d8a: 5d6e addi r3, r5, 4 + 4d8c: b887 st.w r4, (r14, 0x1c) + 4d8e: 0ee7 bf 0x4b5c // 4b5c <__v2_printf+0xbc> + 4d90: 9847 ld.w r2, (r14, 0x1c) + 4d92: 3500 movi r5, 0 + 4d94: 614a subu r5, r2 + 4d96: b8a7 st.w r5, (r14, 0x1c) + 4d98: 6d4f mov r5, r3 + 4d9a: 06e9 br 0x4b6c // 4b6c <__v2_printf+0xcc> + 4d9c: 98c6 ld.w r6, (r14, 0x18) + 4d9e: 8680 ld.b r4, (r6, 0x0) + 4da0: 322a movi r2, 42 + 4da2: 9866 ld.w r3, (r14, 0x18) + 4da4: 6492 cmpne r4, r2 + 4da6: 2300 addi r3, 1 + 4da8: 0c0b bf 0x4dbe // 4dbe <__v2_printf+0x31e> + 4daa: b865 st.w r3, (r14, 0x14) + 4dac: 3600 movi r6, 0 + 4dae: 3300 movi r3, 0 + 4db0: 2b2f subi r3, 48 + 4db2: 60d0 addu r3, r4 + 4db4: 3b09 cmphsi r3, 10 + 4db6: 9845 ld.w r2, (r14, 0x14) + 4db8: 0c0c bf 0x4dd0 // 4dd0 <__v2_printf+0x330> + 4dba: b846 st.w r2, (r14, 0x18) + 4dbc: 06a8 br 0x4b0c // 4b0c <__v2_printf+0x6c> + 4dbe: 95c0 ld.w r6, (r5, 0x0) + 4dc0: 3edf btsti r6, 31 + 4dc2: 5d8e addi r4, r5, 4 + 4dc4: 0c03 bf 0x4dca // 4dca <__v2_printf+0x32a> + 4dc6: 3600 movi r6, 0 + 4dc8: 2e00 subi r6, 1 + 4dca: 6d53 mov r5, r4 + 4dcc: b866 st.w r3, (r14, 0x18) + 4dce: 06c5 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4dd0: 340a movi r4, 10 + 4dd2: 7d18 mult r4, r6 + 4dd4: 9845 ld.w r2, (r14, 0x14) + 4dd6: 6d8f mov r6, r3 + 4dd8: 6190 addu r6, r4 + 4dda: 8280 ld.b r4, (r2, 0x0) + 4ddc: 2200 addi r2, 1 + 4dde: b845 st.w r2, (r14, 0x14) + 4de0: 07e7 br 0x4dae // 4dae <__v2_printf+0x30e> + 4de2: 3200 movi r2, 0 + 4de4: b847 st.w r2, (r14, 0x1c) + 4de6: 9867 ld.w r3, (r14, 0x1c) + 4de8: 320a movi r2, 10 + 4dea: 7cc8 mult r3, r2 + 4dec: 2c2f subi r4, 48 + 4dee: 610c addu r4, r3 + 4df0: b887 st.w r4, (r14, 0x1c) + 4df2: 3300 movi r3, 0 + 4df4: 9886 ld.w r4, (r14, 0x18) + 4df6: 5c42 addi r2, r4, 1 + 4df8: 2b2f subi r3, 48 + 4dfa: 8480 ld.b r4, (r4, 0x0) + 4dfc: 60d0 addu r3, r4 + 4dfe: 3b09 cmphsi r3, 10 + 4e00: b846 st.w r2, (r14, 0x18) + 4e02: 0ff2 bf 0x4de6 // 4de6 <__v2_printf+0x346> + 4e04: 07db br 0x4dba // 4dba <__v2_printf+0x31a> + 4e06: 3fa6 bseti r7, 6 + 4e08: 06a8 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0a: 3fa4 bseti r7, 4 + 4e0c: 06a6 br 0x4b58 // 4b58 <__v2_printf+0xb8> + 4e0e: 3840 cmpnei r0, 0 + 4e10: 0c05 bf 0x4e1a // 4e1a <__v2_printf+0x37a> + 4e12: 3637 movi r6, 55 + 4e14: 1b01 addi r3, r14, 4 + 4e16: 618c addu r6, r3 + 4e18: a620 st.b r1, (r6, 0x0) + 4e1a: 033e lrw r1, 0x20000af4 // 501c <__v2_printf+0x57c> + 4e1c: 9100 ld.w r0, (r1, 0x0) + 4e1e: e00007cb bsr 0x5db4 // 5db4 <__GI_strerror> + 4e22: 6d03 mov r4, r0 + 4e24: e000073c bsr 0x5c9c // 5c9c <__strlen_fast> + 4e28: 6d83 mov r6, r0 + 4e2a: b8a5 st.w r5, (r14, 0x14) + 4e2c: 3500 movi r5, 0 + 4e2e: 0554 br 0x50d6 // 50d6 <__v2_printf+0x636> + 4e30: 3840 cmpnei r0, 0 + 4e32: 0c05 bf 0x4e3c // 4e3c <__v2_printf+0x39c> + 4e34: 3037 movi r0, 55 + 4e36: 1a01 addi r2, r14, 4 + 4e38: 6008 addu r0, r2 + 4e3a: a020 st.b r1, (r0, 0x0) + 4e3c: 3420 movi r4, 32 + 4e3e: 691c and r4, r7 + 4e40: 3c40 cmpnei r4, 0 + 4e42: 0c1a bf 0x4e76 // 4e76 <__v2_printf+0x3d6> + 4e44: 5d7e addi r3, r5, 8 + 4e46: 9520 ld.w r1, (r5, 0x0) + 4e48: 9541 ld.w r2, (r5, 0x4) + 4e4a: b865 st.w r3, (r14, 0x14) + 4e4c: b823 st.w r1, (r14, 0xc) + 4e4e: b844 st.w r2, (r14, 0x10) + 4e50: 9804 ld.w r0, (r14, 0x10) + 4e52: 38df btsti r0, 31 + 4e54: 0c0f bf 0x4e72 // 4e72 <__v2_printf+0x3d2> + 4e56: 9883 ld.w r4, (r14, 0xc) + 4e58: 98a4 ld.w r5, (r14, 0x10) + 4e5a: 3200 movi r2, 0 + 4e5c: 3300 movi r3, 0 + 4e5e: 6488 cmphs r2, r2 + 4e60: 6093 subc r2, r4 + 4e62: 60d7 subc r3, r5 + 4e64: b843 st.w r2, (r14, 0xc) + 4e66: b864 st.w r3, (r14, 0x10) + 4e68: 3237 movi r2, 55 + 4e6a: 1b01 addi r3, r14, 4 + 4e6c: 352d movi r5, 45 + 4e6e: 608c addu r2, r3 + 4e70: a2a0 st.b r5, (r2, 0x0) + 4e72: 3401 movi r4, 1 + 4e74: 0438 br 0x4ee4 // 4ee4 <__v2_printf+0x444> + 4e76: 3310 movi r3, 16 + 4e78: 68dc and r3, r7 + 4e7a: 3b40 cmpnei r3, 0 + 4e7c: 0c08 bf 0x4e8c // 4e8c <__v2_printf+0x3ec> + 4e7e: 5d4e addi r2, r5, 4 + 4e80: b845 st.w r2, (r14, 0x14) + 4e82: 95a0 ld.w r5, (r5, 0x0) + 4e84: 559f asri r4, r5, 31 + 4e86: b8a3 st.w r5, (r14, 0xc) + 4e88: b884 st.w r4, (r14, 0x10) + 4e8a: 07e3 br 0x4e50 // 4e50 <__v2_printf+0x3b0> + 4e8c: 3140 movi r1, 64 + 4e8e: 685c and r1, r7 + 4e90: 5d0e addi r0, r5, 4 + 4e92: 3940 cmpnei r1, 0 + 4e94: 95a0 ld.w r5, (r5, 0x0) + 4e96: b805 st.w r0, (r14, 0x14) + 4e98: 0ff6 bf 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9a: 7557 sexth r5, r5 + 4e9c: 07f4 br 0x4e84 // 4e84 <__v2_printf+0x3e4> + 4e9e: 3506 movi r5, 6 + 4ea0: 06a9 br 0x4bf2 // 4bf2 <__v2_printf+0x152> + 4ea2: 6d83 mov r6, r0 + 4ea4: 06ca br 0x4c38 // 4c38 <__v2_printf+0x198> + 4ea6: 3201 movi r2, 1 + 4ea8: 689c and r2, r7 + 4eaa: 3a40 cmpnei r2, 0 + 4eac: 0ec8 bf 0x4c3c // 4c3c <__v2_printf+0x19c> + 4eae: 1d12 addi r5, r14, 72 + 4eb0: 6158 addu r5, r6 + 4eb2: 332e movi r3, 46 + 4eb4: 3000 movi r0, 0 + 4eb6: a560 st.b r3, (r5, 0x0) + 4eb8: a501 st.b r0, (r5, 0x1) + 4eba: 06c1 br 0x4c3c // 4c3c <__v2_printf+0x19c> + 4ebc: 2400 addi r4, 1 + 4ebe: 06cd br 0x4c58 // 4c58 <__v2_printf+0x1b8> + 4ec0: 6d0f mov r4, r3 + 4ec2: 06d2 br 0x4c66 // 4c66 <__v2_printf+0x1c6> + 4ec4: 3320 movi r3, 32 + 4ec6: 68dc and r3, r7 + 4ec8: 3b40 cmpnei r3, 0 + 4eca: 0c24 bf 0x4f12 // 4f12 <__v2_printf+0x472> + 4ecc: 5d7e addi r3, r5, 8 + 4ece: 9500 ld.w r0, (r5, 0x0) + 4ed0: 9521 ld.w r1, (r5, 0x4) + 4ed2: b865 st.w r3, (r14, 0x14) + 4ed4: b803 st.w r0, (r14, 0xc) + 4ed6: b824 st.w r1, (r14, 0x10) + 4ed8: 3400 movi r4, 0 + 4eda: 3537 movi r5, 55 + 4edc: 1801 addi r0, r14, 4 + 4ede: 3200 movi r2, 0 + 4ee0: 6140 addu r5, r0 + 4ee2: a540 st.b r2, (r5, 0x0) + 4ee4: 3100 movi r1, 0 + 4ee6: 2900 subi r1, 1 + 4ee8: 9803 ld.w r0, (r14, 0xc) + 4eea: 98a4 ld.w r5, (r14, 0x10) + 4eec: 645a cmpne r6, r1 + 4eee: 6c14 or r0, r5 + 4ef0: 0cc8 bf 0x5080 // 5080 <__v2_printf+0x5e0> + 4ef2: 6c9f mov r2, r7 + 4ef4: 3a87 bclri r2, 7 + 4ef6: 3840 cmpnei r0, 0 + 4ef8: b848 st.w r2, (r14, 0x20) + 4efa: 08c6 bt 0x5086 // 5086 <__v2_printf+0x5e6> + 4efc: 3e40 cmpnei r6, 0 + 4efe: 0cac bf 0x5056 // 5056 <__v2_printf+0x5b6> + 4f00: 3c41 cmpnei r4, 1 + 4f02: 0c68 bf 0x4fd2 // 4fd2 <__v2_printf+0x532> + 4f04: 3c42 cmpnei r4, 2 + 4f06: 0c8d bf 0x5020 // 5020 <__v2_printf+0x580> + 4f08: 3300 movi r3, 0 + 4f0a: 3400 movi r4, 0 + 4f0c: b863 st.w r3, (r14, 0xc) + 4f0e: b884 st.w r4, (r14, 0x10) + 4f10: 04bf br 0x508e // 508e <__v2_printf+0x5ee> + 4f12: 3010 movi r0, 16 + 4f14: 681c and r0, r7 + 4f16: 3840 cmpnei r0, 0 + 4f18: 0c05 bf 0x4f22 // 4f22 <__v2_printf+0x482> + 4f1a: 5d8e addi r4, r5, 4 + 4f1c: b885 st.w r4, (r14, 0x14) + 4f1e: 95a0 ld.w r5, (r5, 0x0) + 4f20: 0408 br 0x4f30 // 4f30 <__v2_printf+0x490> + 4f22: 3240 movi r2, 64 + 4f24: 689c and r2, r7 + 4f26: 5d2e addi r1, r5, 4 + 4f28: 3a40 cmpnei r2, 0 + 4f2a: b825 st.w r1, (r14, 0x14) + 4f2c: 0ff9 bf 0x4f1e // 4f1e <__v2_printf+0x47e> + 4f2e: 8da0 ld.h r5, (r5, 0x0) + 4f30: 3400 movi r4, 0 + 4f32: b8a3 st.w r5, (r14, 0xc) + 4f34: b884 st.w r4, (r14, 0x10) + 4f36: 07d2 br 0x4eda // 4eda <__v2_printf+0x43a> + 4f38: 5cb8 addu r5, r4, r6 + 4f3a: 6cd3 mov r3, r4 + 4f3c: 654e cmpne r3, r5 + 4f3e: 0f77 bf 0x4e2c // 4e2c <__v2_printf+0x38c> + 4f40: 8300 ld.b r0, (r3, 0x0) + 4f42: 3840 cmpnei r0, 0 + 4f44: 0ef4 bf 0x4d2c // 4d2c <__v2_printf+0x28c> + 4f46: 2300 addi r3, 1 + 4f48: 07fa br 0x4f3c // 4f3c <__v2_printf+0x49c> + 4f4a: 2300 addi r3, 1 + 4f4c: 06ed br 0x4d26 // 4d26 <__v2_printf+0x286> + 4f4e: 3420 movi r4, 32 + 4f50: 691c and r4, r7 + 4f52: 3c40 cmpnei r4, 0 + 4f54: 0c09 bf 0x4f66 // 4f66 <__v2_printf+0x4c6> + 4f56: 5d7e addi r3, r5, 8 + 4f58: 9520 ld.w r1, (r5, 0x0) + 4f5a: 9541 ld.w r2, (r5, 0x4) + 4f5c: b865 st.w r3, (r14, 0x14) + 4f5e: b823 st.w r1, (r14, 0xc) + 4f60: b844 st.w r2, (r14, 0x10) + 4f62: 3401 movi r4, 1 + 4f64: 07bb br 0x4eda // 4eda <__v2_printf+0x43a> + 4f66: 3310 movi r3, 16 + 4f68: 68dc and r3, r7 + 4f6a: 3b40 cmpnei r3, 0 + 4f6c: 0c05 bf 0x4f76 // 4f76 <__v2_printf+0x4d6> + 4f6e: 5d0e addi r0, r5, 4 + 4f70: b805 st.w r0, (r14, 0x14) + 4f72: 95a0 ld.w r5, (r5, 0x0) + 4f74: 0408 br 0x4f84 // 4f84 <__v2_printf+0x4e4> + 4f76: 3140 movi r1, 64 + 4f78: 685c and r1, r7 + 4f7a: 5d4e addi r2, r5, 4 + 4f7c: 3940 cmpnei r1, 0 + 4f7e: b845 st.w r2, (r14, 0x14) + 4f80: 0ff9 bf 0x4f72 // 4f72 <__v2_printf+0x4d2> + 4f82: 8da0 ld.h r5, (r5, 0x0) + 4f84: 3400 movi r4, 0 + 4f86: b8a3 st.w r5, (r14, 0xc) + 4f88: b884 st.w r4, (r14, 0x10) + 4f8a: 07ec br 0x4f62 // 4f62 <__v2_printf+0x4c2> + 4f8c: 3840 cmpnei r0, 0 + 4f8e: 0c05 bf 0x4f98 // 4f98 <__v2_printf+0x4f8> + 4f90: 3337 movi r3, 55 + 4f92: 1a01 addi r2, r14, 4 + 4f94: 60c8 addu r3, r2 + 4f96: a320 st.b r1, (r3, 0x0) + 4f98: 103f lrw r1, 0xbaea // 5014 <__v2_printf+0x574> + 4f9a: 06d2 br 0x4d3e // 4d3e <__v2_printf+0x29e> + 4f9c: 3310 movi r3, 16 + 4f9e: 68dc and r3, r7 + 4fa0: 3b40 cmpnei r3, 0 + 4fa2: 0c05 bf 0x4fac // 4fac <__v2_printf+0x50c> + 4fa4: 5d0e addi r0, r5, 4 + 4fa6: b805 st.w r0, (r14, 0x14) + 4fa8: 95a0 ld.w r5, (r5, 0x0) + 4faa: 0408 br 0x4fba // 4fba <__v2_printf+0x51a> + 4fac: 3240 movi r2, 64 + 4fae: 689c and r2, r7 + 4fb0: 5d2e addi r1, r5, 4 + 4fb2: 3a40 cmpnei r2, 0 + 4fb4: b825 st.w r1, (r14, 0x14) + 4fb6: 0ff9 bf 0x4fa8 // 4fa8 <__v2_printf+0x508> + 4fb8: 8da0 ld.h r5, (r5, 0x0) + 4fba: 3300 movi r3, 0 + 4fbc: b8a3 st.w r5, (r14, 0xc) + 4fbe: b864 st.w r3, (r14, 0x10) + 4fc0: 06ca br 0x4d54 // 4d54 <__v2_printf+0x2b4> + 4fc2: 6cd3 mov r3, r4 + 4fc4: 0467 br 0x5092 // 5092 <__v2_printf+0x5f2> + 4fc6: 9884 ld.w r4, (r14, 0x10) + 4fc8: 3c40 cmpnei r4, 0 + 4fca: 080b bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fcc: 9843 ld.w r2, (r14, 0xc) + 4fce: 3a09 cmphsi r2, 10 + 4fd0: 0808 bt 0x4fe0 // 4fe0 <__v2_printf+0x540> + 4fd2: 9883 ld.w r4, (r14, 0xc) + 4fd4: 242f addi r4, 48 + 4fd6: 1f1a addi r7, r14, 104 + 4fd8: a787 st.b r4, (r7, 0x7) + 4fda: 1c12 addi r4, r14, 72 + 4fdc: 2426 addi r4, 39 + 4fde: 0478 br 0x50ce // 50ce <__v2_printf+0x62e> + 4fe0: 1c1c addi r4, r14, 112 + 4fe2: 3530 movi r5, 48 + 4fe4: 320a movi r2, 10 + 4fe6: 3300 movi r3, 0 + 4fe8: 9803 ld.w r0, (r14, 0xc) + 4fea: 9824 ld.w r1, (r14, 0x10) + 4fec: e00002c2 bsr 0x5570 // 5570 <__umoddi3> + 4ff0: 6014 addu r0, r5 + 4ff2: 2c00 subi r4, 1 + 4ff4: a400 st.b r0, (r4, 0x0) + 4ff6: 320a movi r2, 10 + 4ff8: 9803 ld.w r0, (r14, 0xc) + 4ffa: 9824 ld.w r1, (r14, 0x10) + 4ffc: 3300 movi r3, 0 + 4ffe: e00000e3 bsr 0x51c4 // 51c4 <__udivdi3> + 5002: b803 st.w r0, (r14, 0xc) + 5004: b824 st.w r1, (r14, 0x10) + 5006: 9823 ld.w r1, (r14, 0xc) + 5008: 98e4 ld.w r7, (r14, 0x10) + 500a: 6c5c or r1, r7 + 500c: 3940 cmpnei r1, 0 + 500e: 0beb bt 0x4fe4 // 4fe4 <__v2_printf+0x544> + 5010: 045f br 0x50ce // 50ce <__v2_printf+0x62e> + 5012: 0000 bkpt + 5014: 0000baea .long 0x0000baea + 5018: 0000bad9 .long 0x0000bad9 + 501c: 20000af4 .long 0x20000af4 + 5020: 3300 movi r3, 0 + 5022: 3400 movi r4, 0 + 5024: b863 st.w r3, (r14, 0xc) + 5026: b884 st.w r4, (r14, 0x10) + 5028: 1c1c addi r4, r14, 112 + 502a: 320f movi r2, 15 + 502c: 9803 ld.w r0, (r14, 0xc) + 502e: 982a ld.w r1, (r14, 0x28) + 5030: 6808 and r0, r2 + 5032: 6004 addu r0, r1 + 5034: 80a0 ld.b r5, (r0, 0x0) + 5036: 2c00 subi r4, 1 + 5038: 98e4 ld.w r7, (r14, 0x10) + 503a: a4a0 st.b r5, (r4, 0x0) + 503c: 98a4 ld.w r5, (r14, 0x10) + 503e: 9863 ld.w r3, (r14, 0xc) + 5040: 471c lsli r0, r7, 28 + 5042: 4de4 lsri r7, r5, 4 + 5044: 4b24 lsri r1, r3, 4 + 5046: b8e4 st.w r7, (r14, 0x10) + 5048: 6c04 or r0, r1 + 504a: 9864 ld.w r3, (r14, 0x10) + 504c: b803 st.w r0, (r14, 0xc) + 504e: 6c0c or r0, r3 + 5050: 3840 cmpnei r0, 0 + 5052: 0bed bt 0x502c // 502c <__v2_printf+0x58c> + 5054: 043d br 0x50ce // 50ce <__v2_printf+0x62e> + 5056: 3c40 cmpnei r4, 0 + 5058: 0808 bt 0x5068 // 5068 <__v2_printf+0x5c8> + 505a: 3301 movi r3, 1 + 505c: 68dc and r3, r7 + 505e: 3b40 cmpnei r3, 0 + 5060: 0c04 bf 0x5068 // 5068 <__v2_printf+0x5c8> + 5062: 1f1a addi r7, r14, 104 + 5064: 3430 movi r4, 48 + 5066: 07b9 br 0x4fd8 // 4fd8 <__v2_printf+0x538> + 5068: 1c1c addi r4, r14, 112 + 506a: 0432 br 0x50ce // 50ce <__v2_printf+0x62e> + 506c: 322b movi r2, 43 + 506e: 649a cmpne r6, r2 + 5070: 0802 bt 0x5074 // 5074 <__v2_printf+0x5d4> + 5072: 0614 br 0x4c9a // 4c9a <__v2_printf+0x1fa> + 5074: 1c12 addi r4, r14, 72 + 5076: 6c13 mov r0, r4 + 5078: e0000612 bsr 0x5c9c // 5c9c <__strlen_fast> + 507c: 6d83 mov r6, r0 + 507e: 06d7 br 0x4e2c // 4e2c <__v2_printf+0x38c> + 5080: 3840 cmpnei r0, 0 + 5082: b8e8 st.w r7, (r14, 0x20) + 5084: 0f3e bf 0x4f00 // 4f00 <__v2_printf+0x460> + 5086: 3c41 cmpnei r4, 1 + 5088: 0f9f bf 0x4fc6 // 4fc6 <__v2_printf+0x526> + 508a: 3c42 cmpnei r4, 2 + 508c: 0fce bf 0x5028 // 5028 <__v2_printf+0x588> + 508e: 1b1c addi r3, r14, 112 + 5090: 3707 movi r7, 7 + 5092: 9823 ld.w r1, (r14, 0xc) + 5094: 685c and r1, r7 + 5096: 212f addi r1, 48 + 5098: 9804 ld.w r0, (r14, 0x10) + 509a: 7484 zextb r2, r1 + 509c: 9823 ld.w r1, (r14, 0xc) + 509e: 40bd lsli r5, r0, 29 + 50a0: 4903 lsri r0, r1, 3 + 50a2: 9824 ld.w r1, (r14, 0x10) + 50a4: 4923 lsri r1, r1, 3 + 50a6: b824 st.w r1, (r14, 0x10) + 50a8: 6d40 or r5, r0 + 50aa: 9804 ld.w r0, (r14, 0x10) + 50ac: b8a3 st.w r5, (r14, 0xc) + 50ae: 6d40 or r5, r0 + 50b0: 5b83 subi r4, r3, 1 + 50b2: 3d40 cmpnei r5, 0 + 50b4: a440 st.b r2, (r4, 0x0) + 50b6: 0b86 bt 0x4fc2 // 4fc2 <__v2_printf+0x522> + 50b8: 3701 movi r7, 1 + 50ba: 9828 ld.w r1, (r14, 0x20) + 50bc: 69c4 and r7, r1 + 50be: 3f40 cmpnei r7, 0 + 50c0: 0c07 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c2: 3530 movi r5, 48 + 50c4: 654a cmpne r2, r5 + 50c6: 0c04 bf 0x50ce // 50ce <__v2_printf+0x62e> + 50c8: 5b87 subi r4, r3, 2 + 50ca: 3330 movi r3, 48 + 50cc: a460 st.b r3, (r4, 0x0) + 50ce: 6d5b mov r5, r6 + 50d0: 1e1c addi r6, r14, 112 + 50d2: 6192 subu r6, r4 + 50d4: 98e8 ld.w r7, (r14, 0x20) + 50d6: 6595 cmplt r5, r6 + 50d8: b8a8 st.w r5, (r14, 0x20) + 50da: 0c02 bf 0x50de // 50de <__v2_printf+0x63e> + 50dc: b8c8 st.w r6, (r14, 0x20) + 50de: 3037 movi r0, 55 + 50e0: 1b01 addi r3, r14, 4 + 50e2: 600c addu r0, r3 + 50e4: 8040 ld.b r2, (r0, 0x0) + 50e6: 3a40 cmpnei r2, 0 + 50e8: 0c04 bf 0x50f0 // 50f0 <__v2_printf+0x650> + 50ea: 9828 ld.w r1, (r14, 0x20) + 50ec: 2100 addi r1, 1 + 50ee: b828 st.w r1, (r14, 0x20) + 50f0: 3002 movi r0, 2 + 50f2: 681c and r0, r7 + 50f4: 3840 cmpnei r0, 0 + 50f6: b80b st.w r0, (r14, 0x2c) + 50f8: 0c04 bf 0x5100 // 5100 <__v2_printf+0x660> + 50fa: 9868 ld.w r3, (r14, 0x20) + 50fc: 2301 addi r3, 2 + 50fe: b868 st.w r3, (r14, 0x20) + 5100: 3284 movi r2, 132 + 5102: 689c and r2, r7 + 5104: 3a40 cmpnei r2, 0 + 5106: b84c st.w r2, (r14, 0x30) + 5108: 080b bt 0x511e // 511e <__v2_printf+0x67e> + 510a: 3310 movi r3, 16 + 510c: 1a0c addi r2, r14, 48 + 510e: 9827 ld.w r1, (r14, 0x1c) + 5110: 9808 ld.w r0, (r14, 0x20) + 5112: 60c8 addu r3, r2 + 5114: 5901 subu r0, r1, r0 + 5116: 6f4f mov r13, r3 + 5118: 1129 lrw r1, 0xad10 // 51bc <__v2_printf+0x71c> + 511a: e3fffca9 bsr 0x4a6c // 4a6c + 511e: 3137 movi r1, 55 + 5120: 1801 addi r0, r14, 4 + 5122: 6040 addu r1, r0 + 5124: 8160 ld.b r3, (r1, 0x0) + 5126: 3b40 cmpnei r3, 0 + 5128: 0c0b bf 0x513e // 513e <__v2_printf+0x69e> + 512a: 9830 ld.w r1, (r14, 0x40) + 512c: 9101 ld.w r0, (r1, 0x4) + 512e: b802 st.w r0, (r14, 0x8) + 5130: 1b0c addi r3, r14, 48 + 5132: 300b movi r0, 11 + 5134: 9140 ld.w r2, (r1, 0x0) + 5136: 600c addu r0, r3 + 5138: 3101 movi r1, 1 + 513a: 9862 ld.w r3, (r14, 0x8) + 513c: 7bcd jsr r3 + 513e: 984b ld.w r2, (r14, 0x2c) + 5140: 3a40 cmpnei r2, 0 + 5142: 0c07 bf 0x5150 // 5150 <__v2_printf+0x6b0> + 5144: 9830 ld.w r1, (r14, 0x40) + 5146: 9140 ld.w r2, (r1, 0x0) + 5148: 9161 ld.w r3, (r1, 0x4) + 514a: 180f addi r0, r14, 60 + 514c: 3102 movi r1, 2 + 514e: 7bcd jsr r3 + 5150: 3080 movi r0, 128 + 5152: 984c ld.w r2, (r14, 0x30) + 5154: 640a cmpne r2, r0 + 5156: 080b bt 0x516c // 516c <__v2_printf+0x6cc> + 5158: 9827 ld.w r1, (r14, 0x1c) + 515a: 9868 ld.w r3, (r14, 0x20) + 515c: 590d subu r0, r1, r3 + 515e: 1a0c addi r2, r14, 48 + 5160: 3110 movi r1, 16 + 5162: 6048 addu r1, r2 + 5164: 6f47 mov r13, r1 + 5166: 1037 lrw r1, 0xad20 // 51c0 <__v2_printf+0x720> + 5168: e3fffc82 bsr 0x4a6c // 4a6c + 516c: 5d19 subu r0, r5, r6 + 516e: 1b0c addi r3, r14, 48 + 5170: 3510 movi r5, 16 + 5172: 614c addu r5, r3 + 5174: 6f57 mov r13, r5 + 5176: 6d77 mov r5, r13 + 5178: 1032 lrw r1, 0xad20 // 51c0 <__v2_printf+0x720> + 517a: e3fffc79 bsr 0x4a6c // 4a6c + 517e: 9500 ld.w r0, (r5, 0x0) + 5180: 9040 ld.w r2, (r0, 0x0) + 5182: 9061 ld.w r3, (r0, 0x4) + 5184: 6c13 mov r0, r4 + 5186: 3404 movi r4, 4 + 5188: 6c5b mov r1, r6 + 518a: 691c and r4, r7 + 518c: 7bcd jsr r3 + 518e: 3c40 cmpnei r4, 0 + 5190: 0c08 bf 0x51a0 // 51a0 <__v2_printf+0x700> + 5192: 9828 ld.w r1, (r14, 0x20) + 5194: 98c7 ld.w r6, (r14, 0x1c) + 5196: 5e05 subu r0, r6, r1 + 5198: 6f57 mov r13, r5 + 519a: 1029 lrw r1, 0xad10 // 51bc <__v2_printf+0x71c> + 519c: e3fffc68 bsr 0x4a6c // 4a6c + 51a0: 98a7 ld.w r5, (r14, 0x1c) + 51a2: 9848 ld.w r2, (r14, 0x20) + 51a4: 6495 cmplt r5, r2 + 51a6: 0c02 bf 0x51aa // 51aa <__v2_printf+0x70a> + 51a8: 6d4b mov r5, r2 + 51aa: 9809 ld.w r0, (r14, 0x24) + 51ac: 6014 addu r0, r5 + 51ae: b809 st.w r0, (r14, 0x24) + 51b0: 98a5 ld.w r5, (r14, 0x14) + 51b2: e800fc84 br 0x4aba // 4aba <__v2_printf+0x1a> + 51b6: 9809 ld.w r0, (r14, 0x24) + 51b8: 141c addi r14, r14, 112 + 51ba: 1494 pop r4-r7, r15 + 51bc: 0000ad10 .long 0x0000ad10 + 51c0: 0000ad20 .long 0x0000ad20 + +000051c4 <__udivdi3>: + 51c4: 14d4 push r4-r7, r15 + 51c6: 1426 subi r14, r14, 24 + 51c8: 6dc7 mov r7, r1 + 51ca: 3b40 cmpnei r3, 0 + 51cc: 6d03 mov r4, r0 + 51ce: 6c4f mov r1, r3 + 51d0: 6d8b mov r6, r2 + 51d2: b800 st.w r0, (r14, 0x0) + 51d4: 6d5f mov r5, r7 + 51d6: 085b bt 0x528c // 528c <__udivdi3+0xc8> + 51d8: 649c cmphs r7, r2 + 51da: 0874 bt 0x52c2 // 52c2 <__udivdi3+0xfe> + 51dc: 003d lrw r1, 0xffff // 5564 <__udivdi3+0x3a0> + 51de: 6484 cmphs r1, r2 + 51e0: 0cdc bf 0x5398 // 5398 <__udivdi3+0x1d4> + 51e2: 31ff movi r1, 255 + 51e4: 6484 cmphs r1, r2 + 51e6: 0802 bt 0x51ea // 51ea <__udivdi3+0x26> + 51e8: 3308 movi r3, 8 + 51ea: 6c4b mov r1, r2 + 51ec: 704d lsr r1, r3 + 51ee: 0100 lrw r0, 0xac10 // 5568 <__udivdi3+0x3a4> + 51f0: 6040 addu r1, r0 + 51f2: 8120 ld.b r1, (r1, 0x0) + 51f4: 60c4 addu r3, r1 + 51f6: 3120 movi r1, 32 + 51f8: 604e subu r1, r3 + 51fa: 3940 cmpnei r1, 0 + 51fc: 0c09 bf 0x520e // 520e <__udivdi3+0x4a> + 51fe: 6d53 mov r5, r4 + 5200: 7084 lsl r2, r1 + 5202: 71c4 lsl r7, r1 + 5204: 714d lsr r5, r3 + 5206: 7104 lsl r4, r1 + 5208: 6d8b mov r6, r2 + 520a: 6d5c or r5, r7 + 520c: b880 st.w r4, (r14, 0x0) + 520e: 4e90 lsri r4, r6, 16 + 5210: 6c53 mov r1, r4 + 5212: 6c17 mov r0, r5 + 5214: e000117e bsr 0x7510 // 7510 <__umodsi3> + 5218: b801 st.w r0, (r14, 0x4) + 521a: 6c53 mov r1, r4 + 521c: 6c17 mov r0, r5 + 521e: e0001155 bsr 0x74c8 // 74c8 <__udivsi3> + 5222: 75d9 zexth r7, r6 + 5224: 9861 ld.w r3, (r14, 0x4) + 5226: 9820 ld.w r1, (r14, 0x0) + 5228: 6c9f mov r2, r7 + 522a: 4370 lsli r3, r3, 16 + 522c: 4930 lsri r1, r1, 16 + 522e: 7c80 mult r2, r0 + 5230: 6cc4 or r3, r1 + 5232: 648c cmphs r3, r2 + 5234: 6d43 mov r5, r0 + 5236: 0808 bt 0x5246 // 5246 <__udivdi3+0x82> + 5238: 60d8 addu r3, r6 + 523a: 658c cmphs r3, r6 + 523c: 5823 subi r1, r0, 1 + 523e: 0c03 bf 0x5244 // 5244 <__udivdi3+0x80> + 5240: 648c cmphs r3, r2 + 5242: 0d8e bf 0x555e // 555e <__udivdi3+0x39a> + 5244: 6d47 mov r5, r1 + 5246: 60ca subu r3, r2 + 5248: 6c53 mov r1, r4 + 524a: 6c0f mov r0, r3 + 524c: b862 st.w r3, (r14, 0x8) + 524e: e0001161 bsr 0x7510 // 7510 <__umodsi3> + 5252: 9862 ld.w r3, (r14, 0x8) + 5254: b801 st.w r0, (r14, 0x4) + 5256: 6c53 mov r1, r4 + 5258: 6c0f mov r0, r3 + 525a: e0001137 bsr 0x74c8 // 74c8 <__udivsi3> + 525e: 9841 ld.w r2, (r14, 0x4) + 5260: d86e1000 ld.h r3, (r14, 0x0) + 5264: 4250 lsli r2, r2, 16 + 5266: 74cd zexth r3, r3 + 5268: 7dc0 mult r7, r0 + 526a: 6c8c or r2, r3 + 526c: 65c8 cmphs r2, r7 + 526e: 6d03 mov r4, r0 + 5270: 0808 bt 0x5280 // 5280 <__udivdi3+0xbc> + 5272: 6098 addu r2, r6 + 5274: 6588 cmphs r2, r6 + 5276: 5863 subi r3, r0, 1 + 5278: 0d4d bf 0x5512 // 5512 <__udivdi3+0x34e> + 527a: 65c8 cmphs r2, r7 + 527c: 094b bt 0x5512 // 5512 <__udivdi3+0x34e> + 527e: 2c01 subi r4, 2 + 5280: 4510 lsli r0, r5, 16 + 5282: 3700 movi r7, 0 + 5284: 6c10 or r0, r4 + 5286: 6c5f mov r1, r7 + 5288: 1406 addi r14, r14, 24 + 528a: 1494 pop r4-r7, r15 + 528c: 64dc cmphs r7, r3 + 528e: 0c76 bf 0x537a // 537a <__udivdi3+0x1b6> + 5290: 026a lrw r3, 0xffff // 5564 <__udivdi3+0x3a0> + 5292: 644c cmphs r3, r1 + 5294: 0878 bt 0x5384 // 5384 <__udivdi3+0x1c0> + 5296: 0269 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 5298: 644c cmphs r3, r1 + 529a: 0d48 bf 0x552a // 552a <__udivdi3+0x366> + 529c: 3610 movi r6, 16 + 529e: 6cc7 mov r3, r1 + 52a0: 70d9 lsr r3, r6 + 52a2: 020d lrw r0, 0xac10 // 5568 <__udivdi3+0x3a4> + 52a4: 60c0 addu r3, r0 + 52a6: 8360 ld.b r3, (r3, 0x0) + 52a8: 618c addu r6, r3 + 52aa: 3020 movi r0, 32 + 52ac: 5879 subu r3, r0, r6 + 52ae: 3b40 cmpnei r3, 0 + 52b0: b860 st.w r3, (r14, 0x0) + 52b2: 0878 bt 0x53a2 // 53a2 <__udivdi3+0x1de> + 52b4: 65c4 cmphs r1, r7 + 52b6: 0d40 bf 0x5536 // 5536 <__udivdi3+0x372> + 52b8: 6490 cmphs r4, r2 + 52ba: 6c0f mov r0, r3 + 52bc: 600d addc r0, r3 + 52be: 3700 movi r7, 0 + 52c0: 045f br 0x537e // 537e <__udivdi3+0x1ba> + 52c2: 3a40 cmpnei r2, 0 + 52c4: 0808 bt 0x52d4 // 52d4 <__udivdi3+0x110> + 52c6: 3100 movi r1, 0 + 52c8: 3001 movi r0, 1 + 52ca: b861 st.w r3, (r14, 0x4) + 52cc: e00010fe bsr 0x74c8 // 74c8 <__udivsi3> + 52d0: 6d83 mov r6, r0 + 52d2: 9861 ld.w r3, (r14, 0x4) + 52d4: 025b lrw r2, 0xffff // 5564 <__udivdi3+0x3a0> + 52d6: 6588 cmphs r2, r6 + 52d8: 085b bt 0x538e // 538e <__udivdi3+0x1ca> + 52da: 027a lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 52dc: 658c cmphs r3, r6 + 52de: 0d28 bf 0x552e // 552e <__udivdi3+0x36a> + 52e0: 3310 movi r3, 16 + 52e2: 6c9b mov r2, r6 + 52e4: 023e lrw r1, 0xac10 // 5568 <__udivdi3+0x3a4> + 52e6: 708d lsr r2, r3 + 52e8: 6084 addu r2, r1 + 52ea: 8240 ld.b r2, (r2, 0x0) + 52ec: 5a2c addu r1, r2, r3 + 52ee: 3220 movi r2, 32 + 52f0: 6086 subu r2, r1 + 52f2: 3a40 cmpnei r2, 0 + 52f4: 08c0 bt 0x5474 // 5474 <__udivdi3+0x2b0> + 52f6: 74d9 zexth r3, r6 + 52f8: 5f99 subu r4, r7, r6 + 52fa: 4eb0 lsri r5, r6, 16 + 52fc: b861 st.w r3, (r14, 0x4) + 52fe: 3701 movi r7, 1 + 5300: 6c57 mov r1, r5 + 5302: 6c13 mov r0, r4 + 5304: e0001106 bsr 0x7510 // 7510 <__umodsi3> + 5308: b802 st.w r0, (r14, 0x8) + 530a: 6c57 mov r1, r5 + 530c: 6c13 mov r0, r4 + 530e: e00010dd bsr 0x74c8 // 74c8 <__udivsi3> + 5312: 9862 ld.w r3, (r14, 0x8) + 5314: 4330 lsli r1, r3, 16 + 5316: 9860 ld.w r3, (r14, 0x0) + 5318: 9841 ld.w r2, (r14, 0x4) + 531a: 4b70 lsri r3, r3, 16 + 531c: 7c80 mult r2, r0 + 531e: 6cc4 or r3, r1 + 5320: 648c cmphs r3, r2 + 5322: 6d03 mov r4, r0 + 5324: 0808 bt 0x5334 // 5334 <__udivdi3+0x170> + 5326: 60d8 addu r3, r6 + 5328: 658c cmphs r3, r6 + 532a: 5823 subi r1, r0, 1 + 532c: 0c03 bf 0x5332 // 5332 <__udivdi3+0x16e> + 532e: 648c cmphs r3, r2 + 5330: 0d14 bf 0x5558 // 5558 <__udivdi3+0x394> + 5332: 6d07 mov r4, r1 + 5334: 60ca subu r3, r2 + 5336: 6c57 mov r1, r5 + 5338: 6c0f mov r0, r3 + 533a: b863 st.w r3, (r14, 0xc) + 533c: e00010ea bsr 0x7510 // 7510 <__umodsi3> + 5340: 9863 ld.w r3, (r14, 0xc) + 5342: 6c57 mov r1, r5 + 5344: b802 st.w r0, (r14, 0x8) + 5346: 6c0f mov r0, r3 + 5348: e00010c0 bsr 0x74c8 // 74c8 <__udivsi3> + 534c: 9842 ld.w r2, (r14, 0x8) + 534e: d86e1000 ld.h r3, (r14, 0x0) + 5352: 9821 ld.w r1, (r14, 0x4) + 5354: 4250 lsli r2, r2, 16 + 5356: 74cd zexth r3, r3 + 5358: 7c40 mult r1, r0 + 535a: 6cc8 or r3, r2 + 535c: 644c cmphs r3, r1 + 535e: 6d43 mov r5, r0 + 5360: 0808 bt 0x5370 // 5370 <__udivdi3+0x1ac> + 5362: 60d8 addu r3, r6 + 5364: 658c cmphs r3, r6 + 5366: 5843 subi r2, r0, 1 + 5368: 0cd3 bf 0x550e // 550e <__udivdi3+0x34a> + 536a: 644c cmphs r3, r1 + 536c: 08d1 bt 0x550e // 550e <__udivdi3+0x34a> + 536e: 2d01 subi r5, 2 + 5370: 4410 lsli r0, r4, 16 + 5372: 6c14 or r0, r5 + 5374: 6c5f mov r1, r7 + 5376: 1406 addi r14, r14, 24 + 5378: 1494 pop r4-r7, r15 + 537a: 3700 movi r7, 0 + 537c: 3000 movi r0, 0 + 537e: 6c5f mov r1, r7 + 5380: 1406 addi r14, r14, 24 + 5382: 1494 pop r4-r7, r15 + 5384: 33ff movi r3, 255 + 5386: 644c cmphs r3, r1 + 5388: 6583 mvcv r6 + 538a: 46c3 lsli r6, r6, 3 + 538c: 0789 br 0x529e // 529e <__udivdi3+0xda> + 538e: 32ff movi r2, 255 + 5390: 6588 cmphs r2, r6 + 5392: 0ba8 bt 0x52e2 // 52e2 <__udivdi3+0x11e> + 5394: 3308 movi r3, 8 + 5396: 07a6 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5398: 1375 lrw r3, 0xffffff // 556c <__udivdi3+0x3a8> + 539a: 648c cmphs r3, r2 + 539c: 0ccb bf 0x5532 // 5532 <__udivdi3+0x36e> + 539e: 3310 movi r3, 16 + 53a0: 0725 br 0x51ea // 51ea <__udivdi3+0x26> + 53a2: 9800 ld.w r0, (r14, 0x0) + 53a4: 6ccb mov r3, r2 + 53a6: 6d4b mov r5, r2 + 53a8: 7040 lsl r1, r0 + 53aa: 7140 lsl r5, r0 + 53ac: 70d9 lsr r3, r6 + 53ae: 6cc4 or r3, r1 + 53b0: b8a3 st.w r5, (r14, 0xc) + 53b2: 6d53 mov r5, r4 + 53b4: 6c4f mov r1, r3 + 53b6: 7159 lsr r5, r6 + 53b8: 6cdf mov r3, r7 + 53ba: 71c0 lsl r7, r0 + 53bc: 6d5c or r5, r7 + 53be: 70d9 lsr r3, r6 + 53c0: b8a1 st.w r5, (r14, 0x4) + 53c2: 49b0 lsri r5, r1, 16 + 53c4: b822 st.w r1, (r14, 0x8) + 53c6: 75c5 zexth r7, r1 + 53c8: 6c0f mov r0, r3 + 53ca: 6c57 mov r1, r5 + 53cc: b864 st.w r3, (r14, 0x10) + 53ce: e00010a1 bsr 0x7510 // 7510 <__umodsi3> + 53d2: 9864 ld.w r3, (r14, 0x10) + 53d4: 6d83 mov r6, r0 + 53d6: 6c57 mov r1, r5 + 53d8: 6c0f mov r0, r3 + 53da: e0001077 bsr 0x74c8 // 74c8 <__udivsi3> + 53de: 6c5f mov r1, r7 + 53e0: 7c40 mult r1, r0 + 53e2: 6c87 mov r2, r1 + 53e4: 4630 lsli r1, r6, 16 + 53e6: 98c1 ld.w r6, (r14, 0x4) + 53e8: 4ed0 lsri r6, r6, 16 + 53ea: 6d84 or r6, r1 + 53ec: 6498 cmphs r6, r2 + 53ee: 6cc3 mov r3, r0 + 53f0: 0807 bt 0x53fe // 53fe <__udivdi3+0x23a> + 53f2: 5823 subi r1, r0, 1 + 53f4: 9802 ld.w r0, (r14, 0x8) + 53f6: 6180 addu r6, r0 + 53f8: 6418 cmphs r6, r0 + 53fa: 08a6 bt 0x5546 // 5546 <__udivdi3+0x382> + 53fc: 6cc7 mov r3, r1 + 53fe: 618a subu r6, r2 + 5400: 6c57 mov r1, r5 + 5402: 6c1b mov r0, r6 + 5404: b865 st.w r3, (r14, 0x14) + 5406: e0001085 bsr 0x7510 // 7510 <__umodsi3> + 540a: b804 st.w r0, (r14, 0x10) + 540c: 6c57 mov r1, r5 + 540e: 6c1b mov r0, r6 + 5410: e000105c bsr 0x74c8 // 74c8 <__udivsi3> + 5414: 9864 ld.w r3, (r14, 0x10) + 5416: 6c9f mov r2, r7 + 5418: 43f0 lsli r7, r3, 16 + 541a: d86e1002 ld.h r3, (r14, 0x4) + 541e: 744d zexth r1, r3 + 5420: 7c80 mult r2, r0 + 5422: 6dc4 or r7, r1 + 5424: 649c cmphs r7, r2 + 5426: 9865 ld.w r3, (r14, 0x14) + 5428: 0807 bt 0x5436 // 5436 <__udivdi3+0x272> + 542a: 98a2 ld.w r5, (r14, 0x8) + 542c: 61d4 addu r7, r5 + 542e: 655c cmphs r7, r5 + 5430: 5823 subi r1, r0, 1 + 5432: 0885 bt 0x553c // 553c <__udivdi3+0x378> + 5434: 6c07 mov r0, r1 + 5436: 4370 lsli r3, r3, 16 + 5438: 6c0c or r0, r3 + 543a: 74c1 zexth r3, r0 + 543c: 61ca subu r7, r2 + 543e: 9843 ld.w r2, (r14, 0xc) + 5440: 7549 zexth r5, r2 + 5442: 4830 lsri r1, r0, 16 + 5444: 4a50 lsri r2, r2, 16 + 5446: 6d8f mov r6, r3 + 5448: 7d94 mult r6, r5 + 544a: 7cc8 mult r3, r2 + 544c: 7d44 mult r5, r1 + 544e: 60d4 addu r3, r5 + 5450: 7c48 mult r1, r2 + 5452: 4e50 lsri r2, r6, 16 + 5454: 60c8 addu r3, r2 + 5456: 654c cmphs r3, r5 + 5458: 0804 bt 0x5460 // 5460 <__udivdi3+0x29c> + 545a: 3280 movi r2, 128 + 545c: 4249 lsli r2, r2, 9 + 545e: 6048 addu r1, r2 + 5460: 4b50 lsri r2, r3, 16 + 5462: 6048 addu r1, r2 + 5464: 645c cmphs r7, r1 + 5466: 0c5f bf 0x5524 // 5524 <__udivdi3+0x360> + 5468: 645e cmpne r7, r1 + 546a: 0c56 bf 0x5516 // 5516 <__udivdi3+0x352> + 546c: 3700 movi r7, 0 + 546e: 6c5f mov r1, r7 + 5470: 1406 addi r14, r14, 24 + 5472: 1494 pop r4-r7, r15 + 5474: 6d53 mov r5, r4 + 5476: 6cdf mov r3, r7 + 5478: 7145 lsr r5, r1 + 547a: 71c8 lsl r7, r2 + 547c: 7188 lsl r6, r2 + 547e: 6d5c or r5, r7 + 5480: 70c5 lsr r3, r1 + 5482: 6dd7 mov r7, r5 + 5484: b8a3 st.w r5, (r14, 0xc) + 5486: 4eb0 lsri r5, r6, 16 + 5488: 7108 lsl r4, r2 + 548a: 6c57 mov r1, r5 + 548c: 7499 zexth r2, r6 + 548e: 6c0f mov r0, r3 + 5490: b841 st.w r2, (r14, 0x4) + 5492: b880 st.w r4, (r14, 0x0) + 5494: b862 st.w r3, (r14, 0x8) + 5496: e000103d bsr 0x7510 // 7510 <__umodsi3> + 549a: 9862 ld.w r3, (r14, 0x8) + 549c: 6d03 mov r4, r0 + 549e: 6c57 mov r1, r5 + 54a0: 6c0f mov r0, r3 + 54a2: e0001013 bsr 0x74c8 // 74c8 <__udivsi3> + 54a6: 6cc3 mov r3, r0 + 54a8: 7499 zexth r2, r6 + 54aa: 7cc8 mult r3, r2 + 54ac: 4450 lsli r2, r4, 16 + 54ae: 4f90 lsri r4, r7, 16 + 54b0: 6d08 or r4, r2 + 54b2: 64d0 cmphs r4, r3 + 54b4: 6c43 mov r1, r0 + 54b6: b802 st.w r0, (r14, 0x8) + 54b8: 080b bt 0x54ce // 54ce <__udivdi3+0x30a> + 54ba: 6118 addu r4, r6 + 54bc: 6c87 mov r2, r1 + 54be: 6590 cmphs r4, r6 + 54c0: 2a00 subi r2, 1 + 54c2: 0c49 bf 0x5554 // 5554 <__udivdi3+0x390> + 54c4: 64d0 cmphs r4, r3 + 54c6: 0847 bt 0x5554 // 5554 <__udivdi3+0x390> + 54c8: 2a00 subi r2, 1 + 54ca: b842 st.w r2, (r14, 0x8) + 54cc: 6118 addu r4, r6 + 54ce: 610e subu r4, r3 + 54d0: 6c57 mov r1, r5 + 54d2: 6c13 mov r0, r4 + 54d4: e000101e bsr 0x7510 // 7510 <__umodsi3> + 54d8: 6dc3 mov r7, r0 + 54da: 6c57 mov r1, r5 + 54dc: 6c13 mov r0, r4 + 54de: e0000ff5 bsr 0x74c8 // 74c8 <__udivsi3> + 54e2: d84e1006 ld.h r2, (r14, 0xc) + 54e6: 74d9 zexth r3, r6 + 54e8: 47f0 lsli r7, r7, 16 + 54ea: 7509 zexth r4, r2 + 54ec: 7cc0 mult r3, r0 + 54ee: 6dd0 or r7, r4 + 54f0: 64dc cmphs r7, r3 + 54f2: 0809 bt 0x5504 // 5504 <__udivdi3+0x340> + 54f4: 61d8 addu r7, r6 + 54f6: 659c cmphs r7, r6 + 54f8: 5843 subi r2, r0, 1 + 54fa: 0c2b bf 0x5550 // 5550 <__udivdi3+0x38c> + 54fc: 64dc cmphs r7, r3 + 54fe: 0829 bt 0x5550 // 5550 <__udivdi3+0x38c> + 5500: 2801 subi r0, 2 + 5502: 61d8 addu r7, r6 + 5504: 5f8d subu r4, r7, r3 + 5506: 9862 ld.w r3, (r14, 0x8) + 5508: 43f0 lsli r7, r3, 16 + 550a: 6dc0 or r7, r0 + 550c: 06fa br 0x5300 // 5300 <__udivdi3+0x13c> + 550e: 6d4b mov r5, r2 + 5510: 0730 br 0x5370 // 5370 <__udivdi3+0x1ac> + 5512: 6d0f mov r4, r3 + 5514: 06b6 br 0x5280 // 5280 <__udivdi3+0xbc> + 5516: 9840 ld.w r2, (r14, 0x0) + 5518: 4370 lsli r3, r3, 16 + 551a: 7599 zexth r6, r6 + 551c: 7108 lsl r4, r2 + 551e: 60d8 addu r3, r6 + 5520: 64d0 cmphs r4, r3 + 5522: 0ba5 bt 0x546c // 546c <__udivdi3+0x2a8> + 5524: 2800 subi r0, 1 + 5526: 3700 movi r7, 0 + 5528: 07a3 br 0x546e // 546e <__udivdi3+0x2aa> + 552a: 3618 movi r6, 24 + 552c: 06b9 br 0x529e // 529e <__udivdi3+0xda> + 552e: 3318 movi r3, 24 + 5530: 06d9 br 0x52e2 // 52e2 <__udivdi3+0x11e> + 5532: 3318 movi r3, 24 + 5534: 065b br 0x51ea // 51ea <__udivdi3+0x26> + 5536: 3700 movi r7, 0 + 5538: 3001 movi r0, 1 + 553a: 0722 br 0x537e // 537e <__udivdi3+0x1ba> + 553c: 649c cmphs r7, r2 + 553e: 0b7b bt 0x5434 // 5434 <__udivdi3+0x270> + 5540: 2801 subi r0, 2 + 5542: 61d4 addu r7, r5 + 5544: 0779 br 0x5436 // 5436 <__udivdi3+0x272> + 5546: 6498 cmphs r6, r2 + 5548: 0b5a bt 0x53fc // 53fc <__udivdi3+0x238> + 554a: 2b01 subi r3, 2 + 554c: 6180 addu r6, r0 + 554e: 0758 br 0x53fe // 53fe <__udivdi3+0x23a> + 5550: 6c0b mov r0, r2 + 5552: 07d9 br 0x5504 // 5504 <__udivdi3+0x340> + 5554: b842 st.w r2, (r14, 0x8) + 5556: 07bc br 0x54ce // 54ce <__udivdi3+0x30a> + 5558: 2c01 subi r4, 2 + 555a: 60d8 addu r3, r6 + 555c: 06ec br 0x5334 // 5334 <__udivdi3+0x170> + 555e: 2d01 subi r5, 2 + 5560: 60d8 addu r3, r6 + 5562: 0672 br 0x5246 // 5246 <__udivdi3+0x82> + 5564: 0000ffff .long 0x0000ffff + 5568: 0000ac10 .long 0x0000ac10 + 556c: 00ffffff .long 0x00ffffff + +00005570 <__umoddi3>: + 5570: 14d4 push r4-r7, r15 + 5572: 1427 subi r14, r14, 28 + 5574: 6d07 mov r4, r1 + 5576: 6c4f mov r1, r3 + 5578: 6d43 mov r5, r0 + 557a: 3940 cmpnei r1, 0 + 557c: 6dcf mov r7, r3 + 557e: 6c0b mov r0, r2 + 5580: b8a0 st.w r5, (r14, 0x0) + 5582: 6cd3 mov r3, r4 + 5584: 085a bt 0x5638 // 5638 <__umoddi3+0xc8> + 5586: 6490 cmphs r4, r2 + 5588: 0877 bt 0x5676 // 5676 <__umoddi3+0x106> + 558a: 0120 lrw r1, 0xffff // 5904 <__umoddi3+0x394> + 558c: 6484 cmphs r1, r2 + 558e: 0cd2 bf 0x5732 // 5732 <__umoddi3+0x1c2> + 5590: 31ff movi r1, 255 + 5592: 6484 cmphs r1, r2 + 5594: 0802 bt 0x5598 // 5598 <__umoddi3+0x28> + 5596: 3708 movi r7, 8 + 5598: 6c43 mov r1, r0 + 559a: 705d lsr r1, r7 + 559c: 01c4 lrw r6, 0xac10 // 5908 <__umoddi3+0x398> + 559e: 6058 addu r1, r6 + 55a0: 8120 ld.b r1, (r1, 0x0) + 55a2: 61c4 addu r7, r1 + 55a4: 3120 movi r1, 32 + 55a6: 605e subu r1, r7 + 55a8: 3940 cmpnei r1, 0 + 55aa: b821 st.w r1, (r14, 0x4) + 55ac: 0c09 bf 0x55be // 55be <__umoddi3+0x4e> + 55ae: 6cd7 mov r3, r5 + 55b0: 6c83 mov r2, r0 + 55b2: 7104 lsl r4, r1 + 55b4: 70dd lsr r3, r7 + 55b6: 7144 lsl r5, r1 + 55b8: 7084 lsl r2, r1 + 55ba: 6cd0 or r3, r4 + 55bc: b8a0 st.w r5, (r14, 0x0) + 55be: 4a90 lsri r4, r2, 16 + 55c0: 6c53 mov r1, r4 + 55c2: 6c0f mov r0, r3 + 55c4: 75c9 zexth r7, r2 + 55c6: b843 st.w r2, (r14, 0xc) + 55c8: b862 st.w r3, (r14, 0x8) + 55ca: e0000fa3 bsr 0x7510 // 7510 <__umodsi3> + 55ce: 9862 ld.w r3, (r14, 0x8) + 55d0: 6d43 mov r5, r0 + 55d2: 6c53 mov r1, r4 + 55d4: 6c0f mov r0, r3 + 55d6: e0000f79 bsr 0x74c8 // 74c8 <__udivsi3> + 55da: 9840 ld.w r2, (r14, 0x0) + 55dc: 4570 lsli r3, r5, 16 + 55de: 4ab0 lsri r5, r2, 16 + 55e0: 7c1c mult r0, r7 + 55e2: 6cd4 or r3, r5 + 55e4: 640c cmphs r3, r0 + 55e6: 9843 ld.w r2, (r14, 0xc) + 55e8: 0806 bt 0x55f4 // 55f4 <__umoddi3+0x84> + 55ea: 60c8 addu r3, r2 + 55ec: 648c cmphs r3, r2 + 55ee: 0c03 bf 0x55f4 // 55f4 <__umoddi3+0x84> + 55f0: 640c cmphs r3, r0 + 55f2: 0d7d bf 0x58ec // 58ec <__umoddi3+0x37c> + 55f4: 60c2 subu r3, r0 + 55f6: 6c53 mov r1, r4 + 55f8: 6c0f mov r0, r3 + 55fa: b843 st.w r2, (r14, 0xc) + 55fc: b862 st.w r3, (r14, 0x8) + 55fe: e0000f89 bsr 0x7510 // 7510 <__umodsi3> + 5602: 9862 ld.w r3, (r14, 0x8) + 5604: 6d43 mov r5, r0 + 5606: 6c53 mov r1, r4 + 5608: 6c0f mov r0, r3 + 560a: e0000f5f bsr 0x74c8 // 74c8 <__udivsi3> + 560e: d86e1000 ld.h r3, (r14, 0x0) + 5612: 7dc0 mult r7, r0 + 5614: 45b0 lsli r5, r5, 16 + 5616: 740d zexth r0, r3 + 5618: 6d40 or r5, r0 + 561a: 65d4 cmphs r5, r7 + 561c: 0807 bt 0x562a // 562a <__umoddi3+0xba> + 561e: 9843 ld.w r2, (r14, 0xc) + 5620: 6148 addu r5, r2 + 5622: 6494 cmphs r5, r2 + 5624: 0c03 bf 0x562a // 562a <__umoddi3+0xba> + 5626: 65d4 cmphs r5, r7 + 5628: 0d5e bf 0x58e4 // 58e4 <__umoddi3+0x374> + 562a: 615e subu r5, r7 + 562c: 6c17 mov r0, r5 + 562e: 9861 ld.w r3, (r14, 0x4) + 5630: 700d lsr r0, r3 + 5632: 3100 movi r1, 0 + 5634: 1407 addi r14, r14, 28 + 5636: 1494 pop r4-r7, r15 + 5638: 6450 cmphs r4, r1 + 563a: 0c6e bf 0x5716 // 5716 <__umoddi3+0x1a6> + 563c: 024d lrw r2, 0xffff // 5904 <__umoddi3+0x394> + 563e: 6448 cmphs r2, r1 + 5640: 086f bt 0x571e // 571e <__umoddi3+0x1ae> + 5642: 024c lrw r2, 0xffffff // 590c <__umoddi3+0x39c> + 5644: 6448 cmphs r2, r1 + 5646: 0d3f bf 0x58c4 // 58c4 <__umoddi3+0x354> + 5648: 3610 movi r6, 16 + 564a: 6c87 mov r2, r1 + 564c: 7099 lsr r2, r6 + 564e: 02f0 lrw r7, 0xac10 // 5908 <__umoddi3+0x398> + 5650: 609c addu r2, r7 + 5652: 8240 ld.b r2, (r2, 0x0) + 5654: 6188 addu r6, r2 + 5656: 3720 movi r7, 32 + 5658: 61da subu r7, r6 + 565a: 3f40 cmpnei r7, 0 + 565c: 0870 bt 0x573c // 573c <__umoddi3+0x1cc> + 565e: 6504 cmphs r1, r4 + 5660: 0c03 bf 0x5666 // 5666 <__umoddi3+0xf6> + 5662: 6414 cmphs r5, r0 + 5664: 0d46 bf 0x58f0 // 58f0 <__umoddi3+0x380> + 5666: 5d01 subu r0, r5, r0 + 5668: 6414 cmphs r5, r0 + 566a: 6106 subu r4, r1 + 566c: 6483 mvcv r2 + 566e: 5c69 subu r3, r4, r2 + 5670: 6c4f mov r1, r3 + 5672: 1407 addi r14, r14, 28 + 5674: 1494 pop r4-r7, r15 + 5676: 3a40 cmpnei r2, 0 + 5678: 0806 bt 0x5684 // 5684 <__umoddi3+0x114> + 567a: 3100 movi r1, 0 + 567c: 3001 movi r0, 1 + 567e: e0000f25 bsr 0x74c8 // 74c8 <__udivsi3> + 5682: 6c83 mov r2, r0 + 5684: 027f lrw r3, 0xffff // 5904 <__umoddi3+0x394> + 5686: 648c cmphs r3, r2 + 5688: 0850 bt 0x5728 // 5728 <__umoddi3+0x1b8> + 568a: 027e lrw r3, 0xffffff // 590c <__umoddi3+0x39c> + 568c: 648c cmphs r3, r2 + 568e: 0d1d bf 0x58c8 // 58c8 <__umoddi3+0x358> + 5690: 3710 movi r7, 16 + 5692: 6ccb mov r3, r2 + 5694: 70dd lsr r3, r7 + 5696: 0322 lrw r1, 0xac10 // 5908 <__umoddi3+0x398> + 5698: 60c4 addu r3, r1 + 569a: 8360 ld.b r3, (r3, 0x0) + 569c: 61cc addu r7, r3 + 569e: 3320 movi r3, 32 + 56a0: 60de subu r3, r7 + 56a2: 3b40 cmpnei r3, 0 + 56a4: b861 st.w r3, (r14, 0x4) + 56a6: 08c2 bt 0x582a // 582a <__umoddi3+0x2ba> + 56a8: 74c9 zexth r3, r2 + 56aa: 610a subu r4, r2 + 56ac: 4af0 lsri r7, r2, 16 + 56ae: 6d8f mov r6, r3 + 56b0: 6c5f mov r1, r7 + 56b2: 6c13 mov r0, r4 + 56b4: b842 st.w r2, (r14, 0x8) + 56b6: e0000f2d bsr 0x7510 // 7510 <__umodsi3> + 56ba: 6d43 mov r5, r0 + 56bc: 6c5f mov r1, r7 + 56be: 6c13 mov r0, r4 + 56c0: e0000f04 bsr 0x74c8 // 74c8 <__udivsi3> + 56c4: 9860 ld.w r3, (r14, 0x0) + 56c6: 4590 lsli r4, r5, 16 + 56c8: 4bb0 lsri r5, r3, 16 + 56ca: 7c18 mult r0, r6 + 56cc: 6d14 or r4, r5 + 56ce: 6410 cmphs r4, r0 + 56d0: 9842 ld.w r2, (r14, 0x8) + 56d2: 0806 bt 0x56de // 56de <__umoddi3+0x16e> + 56d4: 6108 addu r4, r2 + 56d6: 6490 cmphs r4, r2 + 56d8: 0c03 bf 0x56de // 56de <__umoddi3+0x16e> + 56da: 6410 cmphs r4, r0 + 56dc: 0d06 bf 0x58e8 // 58e8 <__umoddi3+0x378> + 56de: 6102 subu r4, r0 + 56e0: 6c5f mov r1, r7 + 56e2: 6c13 mov r0, r4 + 56e4: b842 st.w r2, (r14, 0x8) + 56e6: e0000f15 bsr 0x7510 // 7510 <__umodsi3> + 56ea: 6d43 mov r5, r0 + 56ec: 6c5f mov r1, r7 + 56ee: 6c13 mov r0, r4 + 56f0: e0000eec bsr 0x74c8 // 74c8 <__udivsi3> + 56f4: d86e1000 ld.h r3, (r14, 0x0) + 56f8: 7c18 mult r0, r6 + 56fa: 45b0 lsli r5, r5, 16 + 56fc: 758d zexth r6, r3 + 56fe: 6d58 or r5, r6 + 5700: 6414 cmphs r5, r0 + 5702: 0808 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5704: 9842 ld.w r2, (r14, 0x8) + 5706: 6148 addu r5, r2 + 5708: 6494 cmphs r5, r2 + 570a: 0c04 bf 0x5712 // 5712 <__umoddi3+0x1a2> + 570c: 6414 cmphs r5, r0 + 570e: 0802 bt 0x5712 // 5712 <__umoddi3+0x1a2> + 5710: 6148 addu r5, r2 + 5712: 6142 subu r5, r0 + 5714: 078c br 0x562c // 562c <__umoddi3+0xbc> + 5716: 6c17 mov r0, r5 + 5718: 6c53 mov r1, r4 + 571a: 1407 addi r14, r14, 28 + 571c: 1494 pop r4-r7, r15 + 571e: 32ff movi r2, 255 + 5720: 6448 cmphs r2, r1 + 5722: 6583 mvcv r6 + 5724: 46c3 lsli r6, r6, 3 + 5726: 0792 br 0x564a // 564a <__umoddi3+0xda> + 5728: 33ff movi r3, 255 + 572a: 648c cmphs r3, r2 + 572c: 0bb3 bt 0x5692 // 5692 <__umoddi3+0x122> + 572e: 3708 movi r7, 8 + 5730: 07b1 br 0x5692 // 5692 <__umoddi3+0x122> + 5732: 1337 lrw r1, 0xffffff // 590c <__umoddi3+0x39c> + 5734: 6484 cmphs r1, r2 + 5736: 0ccb bf 0x58cc // 58cc <__umoddi3+0x35c> + 5738: 3710 movi r7, 16 + 573a: 072f br 0x5598 // 5598 <__umoddi3+0x28> + 573c: 6cc3 mov r3, r0 + 573e: 705c lsl r1, r7 + 5740: 70d9 lsr r3, r6 + 5742: 6cc4 or r3, r1 + 5744: 6c57 mov r1, r5 + 5746: 6c93 mov r2, r4 + 5748: 7059 lsr r1, r6 + 574a: 711c lsl r4, r7 + 574c: 7099 lsr r2, r6 + 574e: 6c50 or r1, r4 + 5750: 701c lsl r0, r7 + 5752: 4b90 lsri r4, r3, 16 + 5754: 715c lsl r5, r7 + 5756: b803 st.w r0, (r14, 0xc) + 5758: b820 st.w r1, (r14, 0x0) + 575a: b8a4 st.w r5, (r14, 0x10) + 575c: 6c53 mov r1, r4 + 575e: 754d zexth r5, r3 + 5760: 6c0b mov r0, r2 + 5762: b862 st.w r3, (r14, 0x8) + 5764: b8a1 st.w r5, (r14, 0x4) + 5766: b846 st.w r2, (r14, 0x18) + 5768: e0000ed4 bsr 0x7510 // 7510 <__umodsi3> + 576c: 9846 ld.w r2, (r14, 0x18) + 576e: b805 st.w r0, (r14, 0x14) + 5770: 6c53 mov r1, r4 + 5772: 6c0b mov r0, r2 + 5774: e0000eaa bsr 0x74c8 // 74c8 <__udivsi3> + 5778: 9841 ld.w r2, (r14, 0x4) + 577a: 7c80 mult r2, r0 + 577c: 9865 ld.w r3, (r14, 0x14) + 577e: 6d43 mov r5, r0 + 5780: 9800 ld.w r0, (r14, 0x0) + 5782: 4330 lsli r1, r3, 16 + 5784: 4870 lsri r3, r0, 16 + 5786: 6cc4 or r3, r1 + 5788: 648c cmphs r3, r2 + 578a: 0807 bt 0x5798 // 5798 <__umoddi3+0x228> + 578c: 9802 ld.w r0, (r14, 0x8) + 578e: 60c0 addu r3, r0 + 5790: 640c cmphs r3, r0 + 5792: 5d23 subi r1, r5, 1 + 5794: 08a3 bt 0x58da // 58da <__umoddi3+0x36a> + 5796: 6d47 mov r5, r1 + 5798: 60ca subu r3, r2 + 579a: 6c53 mov r1, r4 + 579c: 6c0f mov r0, r3 + 579e: b866 st.w r3, (r14, 0x18) + 57a0: e0000eb8 bsr 0x7510 // 7510 <__umodsi3> + 57a4: 9866 ld.w r3, (r14, 0x18) + 57a6: 6c53 mov r1, r4 + 57a8: b805 st.w r0, (r14, 0x14) + 57aa: 6c0f mov r0, r3 + 57ac: e0000e8e bsr 0x74c8 // 74c8 <__udivsi3> + 57b0: 9845 ld.w r2, (r14, 0x14) + 57b2: d86e1000 ld.h r3, (r14, 0x0) + 57b6: 9821 ld.w r1, (r14, 0x4) + 57b8: 4250 lsli r2, r2, 16 + 57ba: 750d zexth r4, r3 + 57bc: 7c40 mult r1, r0 + 57be: 6c90 or r2, r4 + 57c0: 6448 cmphs r2, r1 + 57c2: 0807 bt 0x57d0 // 57d0 <__umoddi3+0x260> + 57c4: 9882 ld.w r4, (r14, 0x8) + 57c6: 6090 addu r2, r4 + 57c8: 6508 cmphs r2, r4 + 57ca: 5863 subi r3, r0, 1 + 57cc: 0882 bt 0x58d0 // 58d0 <__umoddi3+0x360> + 57ce: 6c0f mov r0, r3 + 57d0: 45b0 lsli r5, r5, 16 + 57d2: 6d40 or r5, r0 + 57d4: 74d5 zexth r3, r5 + 57d6: 9803 ld.w r0, (r14, 0xc) + 57d8: 4db0 lsri r5, r5, 16 + 57da: 6d0f mov r4, r3 + 57dc: 6086 subu r2, r1 + 57de: 7441 zexth r1, r0 + 57e0: 4810 lsri r0, r0, 16 + 57e2: 7d04 mult r4, r1 + 57e4: 7cc0 mult r3, r0 + 57e6: 7c54 mult r1, r5 + 57e8: 60c4 addu r3, r1 + 57ea: 7d40 mult r5, r0 + 57ec: 4c10 lsri r0, r4, 16 + 57ee: 60c0 addu r3, r0 + 57f0: 644c cmphs r3, r1 + 57f2: 0804 bt 0x57fa // 57fa <__umoddi3+0x28a> + 57f4: 3180 movi r1, 128 + 57f6: 4129 lsli r1, r1, 9 + 57f8: 6144 addu r5, r1 + 57fa: 4b30 lsri r1, r3, 16 + 57fc: 6144 addu r5, r1 + 57fe: 4370 lsli r3, r3, 16 + 5800: 7511 zexth r4, r4 + 5802: 6548 cmphs r2, r5 + 5804: 60d0 addu r3, r4 + 5806: 0c56 bf 0x58b2 // 58b2 <__umoddi3+0x342> + 5808: 654a cmpne r2, r5 + 580a: 0c76 bf 0x58f6 // 58f6 <__umoddi3+0x386> + 580c: 5a35 subu r1, r2, r5 + 580e: 6c0f mov r0, r3 + 5810: 9864 ld.w r3, (r14, 0x10) + 5812: 5b01 subu r0, r3, r0 + 5814: 640c cmphs r3, r0 + 5816: 64c3 mvcv r3 + 5818: 598d subu r4, r1, r3 + 581a: 6d53 mov r5, r4 + 581c: 7158 lsl r5, r6 + 581e: 701d lsr r0, r7 + 5820: 6c53 mov r1, r4 + 5822: 6c14 or r0, r5 + 5824: 705d lsr r1, r7 + 5826: 1407 addi r14, r14, 28 + 5828: 1494 pop r4-r7, r15 + 582a: 9801 ld.w r0, (r14, 0x4) + 582c: 6c57 mov r1, r5 + 582e: 6cd3 mov r3, r4 + 5830: 705d lsr r1, r7 + 5832: 7100 lsl r4, r0 + 5834: 7080 lsl r2, r0 + 5836: 6c50 or r1, r4 + 5838: 70dd lsr r3, r7 + 583a: 6d07 mov r4, r1 + 583c: 4af0 lsri r7, r2, 16 + 583e: b822 st.w r1, (r14, 0x8) + 5840: 7449 zexth r1, r2 + 5842: 7140 lsl r5, r0 + 5844: 6d87 mov r6, r1 + 5846: 6c0f mov r0, r3 + 5848: 6c5f mov r1, r7 + 584a: b844 st.w r2, (r14, 0x10) + 584c: b8a0 st.w r5, (r14, 0x0) + 584e: b863 st.w r3, (r14, 0xc) + 5850: e0000e60 bsr 0x7510 // 7510 <__umodsi3> + 5854: 9863 ld.w r3, (r14, 0xc) + 5856: 6d43 mov r5, r0 + 5858: 6c5f mov r1, r7 + 585a: 6c0f mov r0, r3 + 585c: e0000e36 bsr 0x74c8 // 74c8 <__udivsi3> + 5860: 45b0 lsli r5, r5, 16 + 5862: 4c70 lsri r3, r4, 16 + 5864: 7c18 mult r0, r6 + 5866: 6d4c or r5, r3 + 5868: 6414 cmphs r5, r0 + 586a: 9844 ld.w r2, (r14, 0x10) + 586c: 0807 bt 0x587a // 587a <__umoddi3+0x30a> + 586e: 6148 addu r5, r2 + 5870: 6494 cmphs r5, r2 + 5872: 0c04 bf 0x587a // 587a <__umoddi3+0x30a> + 5874: 6414 cmphs r5, r0 + 5876: 0802 bt 0x587a // 587a <__umoddi3+0x30a> + 5878: 6148 addu r5, r2 + 587a: 6142 subu r5, r0 + 587c: 6c5f mov r1, r7 + 587e: 6c17 mov r0, r5 + 5880: b843 st.w r2, (r14, 0xc) + 5882: e0000e47 bsr 0x7510 // 7510 <__umodsi3> + 5886: 6d03 mov r4, r0 + 5888: 6c5f mov r1, r7 + 588a: 6c17 mov r0, r5 + 588c: e0000e1e bsr 0x74c8 // 74c8 <__udivsi3> + 5890: d86e1004 ld.h r3, (r14, 0x8) + 5894: 4490 lsli r4, r4, 16 + 5896: 744d zexth r1, r3 + 5898: 7c18 mult r0, r6 + 589a: 6d04 or r4, r1 + 589c: 6410 cmphs r4, r0 + 589e: 9843 ld.w r2, (r14, 0xc) + 58a0: 0807 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58a2: 6108 addu r4, r2 + 58a4: 6490 cmphs r4, r2 + 58a6: 0c04 bf 0x58ae // 58ae <__umoddi3+0x33e> + 58a8: 6410 cmphs r4, r0 + 58aa: 0802 bt 0x58ae // 58ae <__umoddi3+0x33e> + 58ac: 6108 addu r4, r2 + 58ae: 6102 subu r4, r0 + 58b0: 0700 br 0x56b0 // 56b0 <__umoddi3+0x140> + 58b2: 9823 ld.w r1, (r14, 0xc) + 58b4: 5b05 subu r0, r3, r1 + 58b6: 640c cmphs r3, r0 + 58b8: 9822 ld.w r1, (r14, 0x8) + 58ba: 6146 subu r5, r1 + 58bc: 64c3 mvcv r3 + 58be: 614e subu r5, r3 + 58c0: 5a35 subu r1, r2, r5 + 58c2: 07a7 br 0x5810 // 5810 <__umoddi3+0x2a0> + 58c4: 3618 movi r6, 24 + 58c6: 06c2 br 0x564a // 564a <__umoddi3+0xda> + 58c8: 3718 movi r7, 24 + 58ca: 06e4 br 0x5692 // 5692 <__umoddi3+0x122> + 58cc: 3718 movi r7, 24 + 58ce: 0665 br 0x5598 // 5598 <__umoddi3+0x28> + 58d0: 6448 cmphs r2, r1 + 58d2: 0b7e bt 0x57ce // 57ce <__umoddi3+0x25e> + 58d4: 2801 subi r0, 2 + 58d6: 6090 addu r2, r4 + 58d8: 077c br 0x57d0 // 57d0 <__umoddi3+0x260> + 58da: 648c cmphs r3, r2 + 58dc: 0b5d bt 0x5796 // 5796 <__umoddi3+0x226> + 58de: 2d01 subi r5, 2 + 58e0: 60c0 addu r3, r0 + 58e2: 075b br 0x5798 // 5798 <__umoddi3+0x228> + 58e4: 6148 addu r5, r2 + 58e6: 06a2 br 0x562a // 562a <__umoddi3+0xba> + 58e8: 6108 addu r4, r2 + 58ea: 06fa br 0x56de // 56de <__umoddi3+0x16e> + 58ec: 60c8 addu r3, r2 + 58ee: 0683 br 0x55f4 // 55f4 <__umoddi3+0x84> + 58f0: 6c17 mov r0, r5 + 58f2: 6c4f mov r1, r3 + 58f4: 06bf br 0x5672 // 5672 <__umoddi3+0x102> + 58f6: 9824 ld.w r1, (r14, 0x10) + 58f8: 64c4 cmphs r1, r3 + 58fa: 0fdc bf 0x58b2 // 58b2 <__umoddi3+0x342> + 58fc: 6c0f mov r0, r3 + 58fe: 3100 movi r1, 0 + 5900: 0788 br 0x5810 // 5810 <__umoddi3+0x2a0> + 5902: 0000 bkpt + 5904: 0000ffff .long 0x0000ffff + 5908: 0000ac10 .long 0x0000ac10 + 590c: 00ffffff .long 0x00ffffff + +00005910 : + 5910: 14c2 push r4-r5 + 5912: 3300 movi r3, 0 + 5914: 644d cmplt r3, r1 + 5916: 0803 bt 0x591c // 591c + 5918: 6c0f mov r0, r3 + 591a: 1482 pop r4-r5 + 591c: 5aac addu r5, r2, r3 + 591e: 588c addu r4, r0, r3 + 5920: 2300 addi r3, 1 + 5922: 85a0 ld.b r5, (r5, 0x0) + 5924: 3b43 cmpnei r3, 3 + 5926: a4a0 st.b r5, (r4, 0x0) + 5928: 0bf6 bt 0x5914 // 5914 + 592a: 3923 cmplti r1, 4 + 592c: 0bf6 bt 0x5918 // 5918 + 592e: 3300 movi r3, 0 + 5930: a063 st.b r3, (r0, 0x3) + 5932: 3304 movi r3, 4 + 5934: 07f2 br 0x5918 // 5918 + +00005936 <__GI___dtostr>: + 5936: 14d4 push r4-r7, r15 + 5938: 142c subi r14, r14, 48 + 593a: 6d8f mov r6, r3 + 593c: 9871 ld.w r3, (r14, 0x44) + 593e: b80a st.w r0, (r14, 0x28) + 5940: b824 st.w r1, (r14, 0x10) + 5942: b842 st.w r2, (r14, 0x8) + 5944: b86b st.w r3, (r14, 0x2c) + 5946: 98f2 ld.w r7, (r14, 0x48) + 5948: e0000244 bsr 0x5dd0 // 5dd0 <__isinf> + 594c: 3840 cmpnei r0, 0 + 594e: 0c0a bf 0x5962 // 5962 <__GI___dtostr+0x2c> + 5950: 0244 lrw r2, 0xbafb // 5c3c <__GI___dtostr+0x306> + 5952: 6c5b mov r1, r6 + 5954: 9802 ld.w r0, (r14, 0x8) + 5956: e3ffffdd bsr 0x5910 // 5910 + 595a: b809 st.w r0, (r14, 0x24) + 595c: 9809 ld.w r0, (r14, 0x24) + 595e: 140c addi r14, r14, 48 + 5960: 1494 pop r4-r7, r15 + 5962: 980a ld.w r0, (r14, 0x28) + 5964: 9824 ld.w r1, (r14, 0x10) + 5966: e0000185 bsr 0x5c70 // 5c70 <__isnan> + 596a: 3840 cmpnei r0, 0 + 596c: b809 st.w r0, (r14, 0x24) + 596e: 0c03 bf 0x5974 // 5974 <__GI___dtostr+0x3e> + 5970: 024b lrw r2, 0xbaff // 5c40 <__GI___dtostr+0x30a> + 5972: 07f0 br 0x5952 // 5952 <__GI___dtostr+0x1c> + 5974: 3200 movi r2, 0 + 5976: 3300 movi r3, 0 + 5978: 980a ld.w r0, (r14, 0x28) + 597a: 9824 ld.w r1, (r14, 0x10) + 597c: e0000242 bsr 0x5e00 // 5e00 <__eqdf2> + 5980: 3840 cmpnei r0, 0 + 5982: 082d bt 0x59dc // 59dc <__GI___dtostr+0xa6> + 5984: 3f40 cmpnei r7, 0 + 5986: 0d57 bf 0x5c34 // 5c34 <__GI___dtostr+0x2fe> + 5988: 5fa6 addi r5, r7, 2 + 598a: 6558 cmphs r6, r5 + 598c: 0d56 bf 0x5c38 // 5c38 <__GI___dtostr+0x302> + 598e: 3d40 cmpnei r5, 0 + 5990: 0c0b bf 0x59a6 // 59a6 <__GI___dtostr+0x70> + 5992: 9824 ld.w r1, (r14, 0x10) + 5994: 39df btsti r1, 31 + 5996: 0c1a bf 0x59ca // 59ca <__GI___dtostr+0x94> + 5998: 9802 ld.w r0, (r14, 0x8) + 599a: 322d movi r2, 45 + 599c: a040 st.b r2, (r0, 0x0) + 599e: 5d02 addi r0, r5, 1 + 59a0: 3501 movi r5, 1 + 59a2: 6414 cmphs r5, r0 + 59a4: 0c16 bf 0x59d0 // 59d0 <__GI___dtostr+0x9a> + 59a6: 9882 ld.w r4, (r14, 0x8) + 59a8: 8420 ld.b r1, (r4, 0x0) + 59aa: 3330 movi r3, 48 + 59ac: 64c6 cmpne r1, r3 + 59ae: 3000 movi r0, 0 + 59b0: 6001 addc r0, r0 + 59b2: 9842 ld.w r2, (r14, 0x8) + 59b4: 9822 ld.w r1, (r14, 0x8) + 59b6: 6008 addu r0, r2 + 59b8: 342e movi r4, 46 + 59ba: 6054 addu r1, r5 + 59bc: 3300 movi r3, 0 + 59be: a081 st.b r4, (r0, 0x1) + 59c0: b8a9 st.w r5, (r14, 0x24) + 59c2: a160 st.b r3, (r1, 0x0) + 59c4: 07cc br 0x595c // 595c <__GI___dtostr+0x26> + 59c6: 3501 movi r5, 1 + 59c8: 07e5 br 0x5992 // 5992 <__GI___dtostr+0x5c> + 59ca: 6c17 mov r0, r5 + 59cc: 3500 movi r5, 0 + 59ce: 07ea br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59d0: 9842 ld.w r2, (r14, 0x8) + 59d2: 6094 addu r2, r5 + 59d4: 3430 movi r4, 48 + 59d6: a280 st.b r4, (r2, 0x0) + 59d8: 2500 addi r5, 1 + 59da: 07e4 br 0x59a2 // 59a2 <__GI___dtostr+0x6c> + 59dc: 3200 movi r2, 0 + 59de: 3300 movi r3, 0 + 59e0: 980a ld.w r0, (r14, 0x28) + 59e2: 9824 ld.w r1, (r14, 0x10) + 59e4: e000022c bsr 0x5e3c // 5e3c <__ltdf2> + 59e8: 38df btsti r0, 31 + 59ea: 0c8e bf 0x5b06 // 5b06 <__GI___dtostr+0x1d0> + 59ec: 3180 movi r1, 128 + 59ee: 98a2 ld.w r5, (r14, 0x8) + 59f0: 9884 ld.w r4, (r14, 0x10) + 59f2: 4158 lsli r2, r1, 24 + 59f4: 332d movi r3, 45 + 59f6: a560 st.b r3, (r5, 0x0) + 59f8: 6108 addu r4, r2 + 59fa: 2e00 subi r6, 1 + 59fc: 2500 addi r5, 1 + 59fe: 3000 movi r0, 0 + 5a00: 032e lrw r1, 0x3fe00000 // 5c44 <__GI___dtostr+0x30e> + 5a02: 3300 movi r3, 0 + 5a04: b865 st.w r3, (r14, 0x14) + 5a06: 9845 ld.w r2, (r14, 0x14) + 5a08: 65ca cmpne r2, r7 + 5a0a: 0881 bt 0x5b0c // 5b0c <__GI___dtostr+0x1d6> + 5a0c: 6c83 mov r2, r0 + 5a0e: 6cc7 mov r3, r1 + 5a10: 980a ld.w r0, (r14, 0x28) + 5a12: 6c53 mov r1, r4 + 5a14: e3fff190 bsr 0x3d34 // 3d34 <__adddf3> + 5a18: 3200 movi r2, 0 + 5a1a: 0373 lrw r3, 0x3ff00000 // 5c48 <__GI___dtostr+0x312> + 5a1c: b806 st.w r0, (r14, 0x18) + 5a1e: b827 st.w r1, (r14, 0x1c) + 5a20: e000020e bsr 0x5e3c // 5e3c <__ltdf2> + 5a24: 38df btsti r0, 31 + 5a26: 0c05 bf 0x5a30 // 5a30 <__GI___dtostr+0xfa> + 5a28: 3430 movi r4, 48 + 5a2a: a580 st.b r4, (r5, 0x0) + 5a2c: 2e00 subi r6, 1 + 5a2e: 2500 addi r5, 1 + 5a30: 9804 ld.w r0, (r14, 0x10) + 5a32: 4021 lsli r1, r0, 1 + 5a34: 0379 lrw r3, 0xfffffc01 // 5c4c <__GI___dtostr+0x316> + 5a36: 4915 lsri r0, r1, 21 + 5a38: 600c addu r0, r3 + 5a3a: e3fff3cf bsr 0x41d8 // 41d8 <__floatsidf> + 5a3e: 035a lrw r2, 0x509f79ff // 5c50 <__GI___dtostr+0x31a> + 5a40: 037a lrw r3, 0x3fd34413 // 5c54 <__GI___dtostr+0x31e> + 5a42: e3fff1ad bsr 0x3d9c // 3d9c <__muldf3> + 5a46: e3fff401 bsr 0x4248 // 4248 <__fixdfsi> + 5a4a: 5842 addi r2, r0, 1 + 5a4c: 3a20 cmplti r2, 1 + 5a4e: b848 st.w r2, (r14, 0x20) + 5a50: 08e7 bt 0x5c1e // 5c1e <__GI___dtostr+0x2e8> + 5a52: 033d lrw r1, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5a54: 6dcb mov r7, r2 + 5a56: 3400 movi r4, 0 + 5a58: b823 st.w r1, (r14, 0xc) + 5a5a: 3f0a cmphsi r7, 11 + 5a5c: 085f bt 0x5b1a // 5b1a <__GI___dtostr+0x1e4> + 5a5e: 3f41 cmpnei r7, 1 + 5a60: 0868 bt 0x5b30 // 5b30 <__GI___dtostr+0x1fa> + 5a62: 135f lrw r2, 0xcccccccd // 5c5c <__GI___dtostr+0x326> + 5a64: 137f lrw r3, 0x3feccccc // 5c60 <__GI___dtostr+0x32a> + 5a66: 6c13 mov r0, r4 + 5a68: 9823 ld.w r1, (r14, 0xc) + 5a6a: e3fff35d bsr 0x4124 // 4124 <__gtdf2> + 5a6e: 3820 cmplti r0, 1 + 5a70: 0c6a bf 0x5b44 // 5b44 <__GI___dtostr+0x20e> + 5a72: 9862 ld.w r3, (r14, 0x8) + 5a74: 64d6 cmpne r5, r3 + 5a76: 0807 bt 0x5a84 // 5a84 <__GI___dtostr+0x14e> + 5a78: 3e40 cmpnei r6, 0 + 5a7a: 0f71 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a7c: 3230 movi r2, 48 + 5a7e: a540 st.b r2, (r5, 0x0) + 5a80: 2e00 subi r6, 1 + 5a82: 2500 addi r5, 1 + 5a84: 9805 ld.w r0, (r14, 0x14) + 5a86: 3840 cmpnei r0, 0 + 5a88: 08cf bt 0x5c26 // 5c26 <__GI___dtostr+0x2f0> + 5a8a: 9822 ld.w r1, (r14, 0x8) + 5a8c: 5d65 subu r3, r5, r1 + 5a8e: 2300 addi r3, 1 + 5a90: 984b ld.w r2, (r14, 0x2c) + 5a92: 648c cmphs r3, r2 + 5a94: 08a5 bt 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5a96: 3e40 cmpnei r6, 0 + 5a98: 0f62 bf 0x595c // 595c <__GI___dtostr+0x26> + 5a9a: 372e movi r7, 46 + 5a9c: a5e0 st.b r7, (r5, 0x0) + 5a9e: 980b ld.w r0, (r14, 0x2c) + 5aa0: 5de2 addi r7, r5, 1 + 5aa2: 9822 ld.w r1, (r14, 0x8) + 5aa4: 2000 addi r0, 1 + 5aa6: 5f65 subu r3, r7, r1 + 5aa8: 584d subu r2, r0, r3 + 5aaa: 2e00 subi r6, 1 + 5aac: b845 st.w r2, (r14, 0x14) + 5aae: 9805 ld.w r0, (r14, 0x14) + 5ab0: 6418 cmphs r6, r0 + 5ab2: 0f55 bf 0x595c // 595c <__GI___dtostr+0x26> + 5ab4: 6d43 mov r5, r0 + 5ab6: 615c addu r5, r7 + 5ab8: 36ff movi r6, 255 + 5aba: 655e cmpne r7, r5 + 5abc: 0c91 bf 0x5bde // 5bde <__GI___dtostr+0x2a8> + 5abe: 6c93 mov r2, r4 + 5ac0: 9863 ld.w r3, (r14, 0xc) + 5ac2: 9806 ld.w r0, (r14, 0x18) + 5ac4: 9827 ld.w r1, (r14, 0x1c) + 5ac6: e3fff285 bsr 0x3fd0 // 3fd0 <__divdf3> + 5aca: e3fff3bf bsr 0x4248 // 4248 <__fixdfsi> + 5ace: 3130 movi r1, 48 + 5ad0: 6040 addu r1, r0 + 5ad2: a720 st.b r1, (r7, 0x0) + 5ad4: 6818 and r0, r6 + 5ad6: e3fff381 bsr 0x41d8 // 41d8 <__floatsidf> + 5ada: 6c93 mov r2, r4 + 5adc: 9863 ld.w r3, (r14, 0xc) + 5ade: e3fff15f bsr 0x3d9c // 3d9c <__muldf3> + 5ae2: 6c83 mov r2, r0 + 5ae4: 6cc7 mov r3, r1 + 5ae6: 9806 ld.w r0, (r14, 0x18) + 5ae8: 9827 ld.w r1, (r14, 0x1c) + 5aea: e3fff13d bsr 0x3d64 // 3d64 <__subdf3> + 5aee: b806 st.w r0, (r14, 0x18) + 5af0: b827 st.w r1, (r14, 0x1c) + 5af2: 6c13 mov r0, r4 + 5af4: 9823 ld.w r1, (r14, 0xc) + 5af6: 3200 movi r2, 0 + 5af8: 1278 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5afa: e3fff26b bsr 0x3fd0 // 3fd0 <__divdf3> + 5afe: 2700 addi r7, 1 + 5b00: 6d03 mov r4, r0 + 5b02: b823 st.w r1, (r14, 0xc) + 5b04: 07db br 0x5aba // 5aba <__GI___dtostr+0x184> + 5b06: 98a2 ld.w r5, (r14, 0x8) + 5b08: 9884 ld.w r4, (r14, 0x10) + 5b0a: 077a br 0x59fe // 59fe <__GI___dtostr+0xc8> + 5b0c: 1276 lrw r3, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5b0e: 1257 lrw r2, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5b10: e3fff146 bsr 0x3d9c // 3d9c <__muldf3> + 5b14: 9865 ld.w r3, (r14, 0x14) + 5b16: 2300 addi r3, 1 + 5b18: 0776 br 0x5a04 // 5a04 <__GI___dtostr+0xce> + 5b1a: 3080 movi r0, 128 + 5b1c: 4056 lsli r2, r0, 22 + 5b1e: 9823 ld.w r1, (r14, 0xc) + 5b20: 6c13 mov r0, r4 + 5b22: 1273 lrw r3, 0x4202a05f // 5c6c <__GI___dtostr+0x336> + 5b24: e3fff13c bsr 0x3d9c // 3d9c <__muldf3> + 5b28: 6d03 mov r4, r0 + 5b2a: b823 st.w r1, (r14, 0xc) + 5b2c: 2f09 subi r7, 10 + 5b2e: 0796 br 0x5a5a // 5a5a <__GI___dtostr+0x124> + 5b30: 6c13 mov r0, r4 + 5b32: 9823 ld.w r1, (r14, 0xc) + 5b34: 3200 movi r2, 0 + 5b36: 1269 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5b38: e3fff132 bsr 0x3d9c // 3d9c <__muldf3> + 5b3c: 6d03 mov r4, r0 + 5b3e: b823 st.w r1, (r14, 0xc) + 5b40: 2f00 subi r7, 1 + 5b42: 078e br 0x5a5e // 5a5e <__GI___dtostr+0x128> + 5b44: 9863 ld.w r3, (r14, 0xc) + 5b46: 6c93 mov r2, r4 + 5b48: 9806 ld.w r0, (r14, 0x18) + 5b4a: 9827 ld.w r1, (r14, 0x1c) + 5b4c: e3fff242 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b50: e3fff37c bsr 0x4248 // 4248 <__fixdfsi> + 5b54: 3f40 cmpnei r7, 0 + 5b56: 74c0 zextb r3, r0 + 5b58: 0c03 bf 0x5b5e // 5b5e <__GI___dtostr+0x228> + 5b5a: 3b40 cmpnei r3, 0 + 5b5c: 0c58 bf 0x5c0c // 5c0c <__GI___dtostr+0x2d6> + 5b5e: 232f addi r3, 48 + 5b60: 3e40 cmpnei r6, 0 + 5b62: a560 st.b r3, (r5, 0x0) + 5b64: 2500 addi r5, 1 + 5b66: 0842 bt 0x5bea // 5bea <__GI___dtostr+0x2b4> + 5b68: 6c93 mov r2, r4 + 5b6a: 9863 ld.w r3, (r14, 0xc) + 5b6c: 980a ld.w r0, (r14, 0x28) + 5b6e: 9824 ld.w r1, (r14, 0x10) + 5b70: e3fff230 bsr 0x3fd0 // 3fd0 <__divdf3> + 5b74: 9845 ld.w r2, (r14, 0x14) + 5b76: 988b ld.w r4, (r14, 0x2c) + 5b78: b841 st.w r2, (r14, 0x4) + 5b7a: b880 st.w r4, (r14, 0x0) + 5b7c: 3300 movi r3, 0 + 5b7e: 9842 ld.w r2, (r14, 0x8) + 5b80: e3fffedb bsr 0x5936 // 5936 <__GI___dtostr> + 5b84: 3840 cmpnei r0, 0 + 5b86: 0eeb bf 0x595c // 595c <__GI___dtostr+0x26> + 5b88: 5dc0 addu r6, r5, r0 + 5b8a: 37fa movi r7, 250 + 5b8c: 3565 movi r5, 101 + 5b8e: 6c02 nor r0, r0 + 5b90: a6a0 st.b r5, (r6, 0x0) + 5b92: 6d03 mov r4, r0 + 5b94: 5ea2 addi r5, r6, 1 + 5b96: 3101 movi r1, 1 + 5b98: 3604 movi r6, 4 + 5b9a: 47e2 lsli r7, r7, 2 + 5b9c: 9808 ld.w r0, (r14, 0x20) + 5b9e: 65c1 cmplt r0, r7 + 5ba0: 0c03 bf 0x5ba6 // 5ba6 <__GI___dtostr+0x270> + 5ba2: 3940 cmpnei r1, 0 + 5ba4: 0811 bt 0x5bc6 // 5bc6 <__GI___dtostr+0x290> + 5ba6: 3c40 cmpnei r4, 0 + 5ba8: 0c08 bf 0x5bb8 // 5bb8 <__GI___dtostr+0x282> + 5baa: 6c5f mov r1, r7 + 5bac: 9808 ld.w r0, (r14, 0x20) + 5bae: e0000c7b bsr 0x74a4 // 74a4 <__divsi3> + 5bb2: 202f addi r0, 48 + 5bb4: a500 st.b r0, (r5, 0x0) + 5bb6: 2500 addi r5, 1 + 5bb8: 6c5f mov r1, r7 + 5bba: 9808 ld.w r0, (r14, 0x20) + 5bbc: e0000c98 bsr 0x74ec // 74ec <__modsi3> + 5bc0: 2c00 subi r4, 1 + 5bc2: b808 st.w r0, (r14, 0x20) + 5bc4: 3100 movi r1, 0 + 5bc6: b823 st.w r1, (r14, 0xc) + 5bc8: 6c1f mov r0, r7 + 5bca: 310a movi r1, 10 + 5bcc: 2e00 subi r6, 1 + 5bce: e0000c6b bsr 0x74a4 // 74a4 <__divsi3> + 5bd2: 3e40 cmpnei r6, 0 + 5bd4: 6dc3 mov r7, r0 + 5bd6: 9823 ld.w r1, (r14, 0xc) + 5bd8: 0be2 bt 0x5b9c // 5b9c <__GI___dtostr+0x266> + 5bda: 3c40 cmpnei r4, 0 + 5bdc: 0ec0 bf 0x595c // 595c <__GI___dtostr+0x26> + 5bde: 9842 ld.w r2, (r14, 0x8) + 5be0: 3300 movi r3, 0 + 5be2: 5d89 subu r4, r5, r2 + 5be4: a560 st.b r3, (r5, 0x0) + 5be6: b889 st.w r4, (r14, 0x24) + 5be8: 06ba br 0x595c // 595c <__GI___dtostr+0x26> + 5bea: 7400 zextb r0, r0 + 5bec: e3fff2f6 bsr 0x41d8 // 41d8 <__floatsidf> + 5bf0: 6c93 mov r2, r4 + 5bf2: 9863 ld.w r3, (r14, 0xc) + 5bf4: e3fff0d4 bsr 0x3d9c // 3d9c <__muldf3> + 5bf8: 6c83 mov r2, r0 + 5bfa: 6cc7 mov r3, r1 + 5bfc: 9806 ld.w r0, (r14, 0x18) + 5bfe: 9827 ld.w r1, (r14, 0x1c) + 5c00: e3fff0b2 bsr 0x3d64 // 3d64 <__subdf3> + 5c04: b806 st.w r0, (r14, 0x18) + 5c06: b827 st.w r1, (r14, 0x1c) + 5c08: 2e00 subi r6, 1 + 5c0a: 3700 movi r7, 0 + 5c0c: 6c13 mov r0, r4 + 5c0e: 9823 ld.w r1, (r14, 0xc) + 5c10: 3200 movi r2, 0 + 5c12: 1072 lrw r3, 0x40240000 // 5c58 <__GI___dtostr+0x322> + 5c14: e3fff1de bsr 0x3fd0 // 3fd0 <__divdf3> + 5c18: 6d03 mov r4, r0 + 5c1a: b823 st.w r1, (r14, 0xc) + 5c1c: 0723 br 0x5a62 // 5a62 <__GI___dtostr+0x12c> + 5c1e: 1012 lrw r0, 0x3fb99999 // 5c64 <__GI___dtostr+0x32e> + 5c20: 1092 lrw r4, 0x9999999a // 5c68 <__GI___dtostr+0x332> + 5c22: b803 st.w r0, (r14, 0xc) + 5c24: 0727 br 0x5a72 // 5a72 <__GI___dtostr+0x13c> + 5c26: 3e40 cmpnei r6, 0 + 5c28: 0e9a bf 0x595c // 595c <__GI___dtostr+0x26> + 5c2a: 372e movi r7, 46 + 5c2c: a5e0 st.b r7, (r5, 0x0) + 5c2e: 2e00 subi r6, 1 + 5c30: 5de2 addi r7, r5, 1 + 5c32: 073e br 0x5aae // 5aae <__GI___dtostr+0x178> + 5c34: 3e40 cmpnei r6, 0 + 5c36: 0ac8 bt 0x59c6 // 59c6 <__GI___dtostr+0x90> + 5c38: 3508 movi r5, 8 + 5c3a: 06ac br 0x5992 // 5992 <__GI___dtostr+0x5c> + 5c3c: 0000bafb .long 0x0000bafb + 5c40: 0000baff .long 0x0000baff + 5c44: 3fe00000 .long 0x3fe00000 + 5c48: 3ff00000 .long 0x3ff00000 + 5c4c: fffffc01 .long 0xfffffc01 + 5c50: 509f79ff .long 0x509f79ff + 5c54: 3fd34413 .long 0x3fd34413 + 5c58: 40240000 .long 0x40240000 + 5c5c: cccccccd .long 0xcccccccd + 5c60: 3feccccc .long 0x3feccccc + 5c64: 3fb99999 .long 0x3fb99999 + 5c68: 9999999a .long 0x9999999a + 5c6c: 4202a05f .long 0x4202a05f + +00005c70 <__isnan>: + 5c70: 416c lsli r3, r1, 12 + 5c72: 4b4c lsri r2, r3, 12 + 5c74: 6c08 or r0, r2 + 5c76: 3840 cmpnei r0, 0 + 5c78: 0c0e bf 0x5c94 // 5c94 <__isnan+0x24> + 5c7a: 1008 lrw r0, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c7c: 6840 and r1, r0 + 5c7e: 6cc7 mov r3, r1 + 5c80: 3000 movi r0, 0 + 5c82: 1026 lrw r1, 0x7ff00000 // 5c98 <__isnan+0x28> + 5c84: 3200 movi r2, 0 + 5c86: 6c81 xor r2, r0 + 5c88: 6cc5 xor r3, r1 + 5c8a: 6c8c or r2, r3 + 5c8c: 3a40 cmpnei r2, 0 + 5c8e: 6443 mvcv r1 + 5c90: 7404 zextb r0, r1 + 5c92: 783c jmp r15 + 5c94: 3000 movi r0, 0 + 5c96: 07fe br 0x5c92 // 5c92 <__isnan+0x22> + 5c98: 7ff00000 .long 0x7ff00000 + +00005c9c <__strlen_fast>: + 5c9c: 6c43 mov r1, r0 + 5c9e: 3203 movi r2, 3 + 5ca0: 6808 and r0, r2 + 5ca2: 3840 cmpnei r0, 0 + 5ca4: 0c08 bf 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5ca6: 3000 movi r0, 0 + 5ca8: 8140 ld.b r2, (r1, 0x0) + 5caa: 3a40 cmpnei r2, 0 + 5cac: 0c20 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cae: 2100 addi r1, 1 + 5cb0: 2000 addi r0, 1 + 5cb2: 07fb br 0x5ca8 // 5ca8 <__strlen_fast+0xc> + 5cb4: 9140 ld.w r2, (r1, 0x0) + 5cb6: 680b tstnbz r2 + 5cb8: 0c04 bf 0x5cc0 // 5cc0 <__strlen_fast+0x24> + 5cba: 2103 addi r1, 4 + 5cbc: 2003 addi r0, 4 + 5cbe: 07fb br 0x5cb4 // 5cb4 <__strlen_fast+0x18> + 5cc0: 31ff movi r1, 255 + 5cc2: 6ccb mov r3, r2 + 5cc4: 68c4 and r3, r1 + 5cc6: 3b40 cmpnei r3, 0 + 5cc8: 0c12 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cca: 2000 addi r0, 1 + 5ccc: 3110 movi r1, 16 + 5cce: 6ccb mov r3, r2 + 5cd0: 70c4 lsl r3, r1 + 5cd2: 3118 movi r1, 24 + 5cd4: 70c5 lsr r3, r1 + 5cd6: 3b40 cmpnei r3, 0 + 5cd8: 0c0a bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cda: 2000 addi r0, 1 + 5cdc: 3108 movi r1, 8 + 5cde: 6ccb mov r3, r2 + 5ce0: 70c4 lsl r3, r1 + 5ce2: 3118 movi r1, 24 + 5ce4: 70c5 lsr r3, r1 + 5ce6: 3b40 cmpnei r3, 0 + 5ce8: 0c02 bf 0x5cec // 5cec <__strlen_fast+0x50> + 5cea: 2000 addi r0, 1 + 5cec: 783c jmp r15 + ... + +00005cf0 <__strcpy_fast>: + 5cf0: 14c1 push r4 + 5cf2: 6d03 mov r4, r0 + 5cf4: 6c87 mov r2, r1 + 5cf6: 6c90 or r2, r4 + 5cf8: 3303 movi r3, 3 + 5cfa: 688c and r2, r3 + 5cfc: 3a40 cmpnei r2, 0 + 5cfe: 0c08 bf 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d00: 8160 ld.b r3, (r1, 0x0) + 5d02: a460 st.b r3, (r4, 0x0) + 5d04: 2100 addi r1, 1 + 5d06: 2400 addi r4, 1 + 5d08: 3b40 cmpnei r3, 0 + 5d0a: 0bfb bt 0x5d00 // 5d00 <__strcpy_fast+0x10> + 5d0c: 1481 pop r4 + 5d0e: 9160 ld.w r3, (r1, 0x0) + 5d10: 680f tstnbz r3 + 5d12: 0c2e bf 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d14: b460 st.w r3, (r4, 0x0) + 5d16: 9161 ld.w r3, (r1, 0x4) + 5d18: 680f tstnbz r3 + 5d1a: 0c1d bf 0x5d54 // 5d54 <__strcpy_fast+0x64> + 5d1c: b461 st.w r3, (r4, 0x4) + 5d1e: 9162 ld.w r3, (r1, 0x8) + 5d20: 680f tstnbz r3 + 5d22: 0c1b bf 0x5d58 // 5d58 <__strcpy_fast+0x68> + 5d24: b462 st.w r3, (r4, 0x8) + 5d26: 9163 ld.w r3, (r1, 0xc) + 5d28: 680f tstnbz r3 + 5d2a: 0c19 bf 0x5d5c // 5d5c <__strcpy_fast+0x6c> + 5d2c: b463 st.w r3, (r4, 0xc) + 5d2e: 9164 ld.w r3, (r1, 0x10) + 5d30: 680f tstnbz r3 + 5d32: 0c17 bf 0x5d60 // 5d60 <__strcpy_fast+0x70> + 5d34: b464 st.w r3, (r4, 0x10) + 5d36: 9165 ld.w r3, (r1, 0x14) + 5d38: 680f tstnbz r3 + 5d3a: 0c15 bf 0x5d64 // 5d64 <__strcpy_fast+0x74> + 5d3c: b465 st.w r3, (r4, 0x14) + 5d3e: 9166 ld.w r3, (r1, 0x18) + 5d40: 680f tstnbz r3 + 5d42: 0c13 bf 0x5d68 // 5d68 <__strcpy_fast+0x78> + 5d44: b466 st.w r3, (r4, 0x18) + 5d46: 9167 ld.w r3, (r1, 0x1c) + 5d48: 680f tstnbz r3 + 5d4a: 0c11 bf 0x5d6c // 5d6c <__strcpy_fast+0x7c> + 5d4c: b467 st.w r3, (r4, 0x1c) + 5d4e: 241f addi r4, 32 + 5d50: 211f addi r1, 32 + 5d52: 07de br 0x5d0e // 5d0e <__strcpy_fast+0x1e> + 5d54: 2403 addi r4, 4 + 5d56: 040c br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d58: 2407 addi r4, 8 + 5d5a: 040a br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d5c: 240b addi r4, 12 + 5d5e: 0408 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d60: 240f addi r4, 16 + 5d62: 0406 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d64: 2413 addi r4, 20 + 5d66: 0404 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d68: 2417 addi r4, 24 + 5d6a: 0402 br 0x5d6e // 5d6e <__strcpy_fast+0x7e> + 5d6c: 241b addi r4, 28 + 5d6e: 3118 movi r1, 24 + 5d70: 6c8f mov r2, r3 + 5d72: 7084 lsl r2, r1 + 5d74: 7085 lsr r2, r1 + 5d76: a440 st.b r2, (r4, 0x0) + 5d78: 3a40 cmpnei r2, 0 + 5d7a: 0c12 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d7c: 3110 movi r1, 16 + 5d7e: 6c8f mov r2, r3 + 5d80: 7084 lsl r2, r1 + 5d82: 3118 movi r1, 24 + 5d84: 7085 lsr r2, r1 + 5d86: a441 st.b r2, (r4, 0x1) + 5d88: 3a40 cmpnei r2, 0 + 5d8a: 0c0a bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d8c: 3108 movi r1, 8 + 5d8e: 6c8f mov r2, r3 + 5d90: 7084 lsl r2, r1 + 5d92: 3118 movi r1, 24 + 5d94: 7085 lsr r2, r1 + 5d96: a442 st.b r2, (r4, 0x2) + 5d98: 3a40 cmpnei r2, 0 + 5d9a: 0c02 bf 0x5d9e // 5d9e <__strcpy_fast+0xae> + 5d9c: b460 st.w r3, (r4, 0x0) + 5d9e: 1481 pop r4 + +00005da0 <__GI_strchr>: + 5da0: 8040 ld.b r2, (r0, 0x0) + 5da2: 644a cmpne r2, r1 + 5da4: 0c06 bf 0x5db0 // 5db0 <__GI_strchr+0x10> + 5da6: 3a40 cmpnei r2, 0 + 5da8: 0c03 bf 0x5dae // 5dae <__GI_strchr+0xe> + 5daa: 2000 addi r0, 1 + 5dac: 07fa br 0x5da0 // 5da0 <__GI_strchr> + 5dae: 6c0b mov r0, r2 + 5db0: 783c jmp r15 + ... + +00005db4 <__GI_strerror>: + 5db4: 338f movi r3, 143 + 5db6: 640c cmphs r3, r0 + 5db8: 0c06 bf 0x5dc4 // 5dc4 <__GI_strerror+0x10> + 5dba: 4002 lsli r0, r0, 2 + 5dbc: 1023 lrw r1, 0xad30 // 5dc8 <__GI_strerror+0x14> + 5dbe: 6004 addu r0, r1 + 5dc0: 9000 ld.w r0, (r0, 0x0) + 5dc2: 783c jmp r15 + 5dc4: 1002 lrw r0, 0xafad // 5dcc <__GI_strerror+0x18> + 5dc6: 07fe br 0x5dc2 // 5dc2 <__GI_strerror+0xe> + 5dc8: 0000ad30 .long 0x0000ad30 + 5dcc: 0000afad .long 0x0000afad + +00005dd0 <__isinf>: + 5dd0: 3840 cmpnei r0, 0 + 5dd2: 6c83 mov r2, r0 + 5dd4: 6cc7 mov r3, r1 + 5dd6: 0804 bt 0x5dde // 5dde <__isinf+0xe> + 5dd8: 1028 lrw r1, 0x7ff00000 // 5df8 <__isinf+0x28> + 5dda: 644e cmpne r3, r1 + 5ddc: 0c0b bf 0x5df2 // 5df2 <__isinf+0x22> + 5dde: 3000 movi r0, 0 + 5de0: 1027 lrw r1, 0xfff00000 // 5dfc <__isinf+0x2c> + 5de2: 6c81 xor r2, r0 + 5de4: 6cc5 xor r3, r1 + 5de6: 6c8c or r2, r3 + 5de8: 3a40 cmpnei r2, 0 + 5dea: 64c3 mvcv r3 + 5dec: 3000 movi r0, 0 + 5dee: 600e subu r0, r3 + 5df0: 783c jmp r15 + 5df2: 3001 movi r0, 1 + 5df4: 07fe br 0x5df0 // 5df0 <__isinf+0x20> + 5df6: 0000 bkpt + 5df8: 7ff00000 .long 0x7ff00000 + 5dfc: fff00000 .long 0xfff00000 + +00005e00 <__eqdf2>: + 5e00: 14d0 push r15 + 5e02: 142e subi r14, r14, 56 + 5e04: b800 st.w r0, (r14, 0x0) + 5e06: b821 st.w r1, (r14, 0x4) + 5e08: 6c3b mov r0, r14 + 5e0a: 1904 addi r1, r14, 16 + 5e0c: b863 st.w r3, (r14, 0xc) + 5e0e: b842 st.w r2, (r14, 0x8) + 5e10: e3fff4a0 bsr 0x4750 // 4750 <__unpack_d> + 5e14: 1909 addi r1, r14, 36 + 5e16: 1802 addi r0, r14, 8 + 5e18: e3fff49c bsr 0x4750 // 4750 <__unpack_d> + 5e1c: 9864 ld.w r3, (r14, 0x10) + 5e1e: 3b01 cmphsi r3, 2 + 5e20: 0c0a bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e22: 9869 ld.w r3, (r14, 0x24) + 5e24: 3b01 cmphsi r3, 2 + 5e26: 0c07 bf 0x5e34 // 5e34 <__eqdf2+0x34> + 5e28: 1909 addi r1, r14, 36 + 5e2a: 1804 addi r0, r14, 16 + 5e2c: e3fff4f4 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e30: 140e addi r14, r14, 56 + 5e32: 1490 pop r15 + 5e34: 3001 movi r0, 1 + 5e36: 140e addi r14, r14, 56 + 5e38: 1490 pop r15 + ... + +00005e3c <__ltdf2>: + 5e3c: 14d0 push r15 + 5e3e: 142e subi r14, r14, 56 + 5e40: b800 st.w r0, (r14, 0x0) + 5e42: b821 st.w r1, (r14, 0x4) + 5e44: 6c3b mov r0, r14 + 5e46: 1904 addi r1, r14, 16 + 5e48: b863 st.w r3, (r14, 0xc) + 5e4a: b842 st.w r2, (r14, 0x8) + 5e4c: e3fff482 bsr 0x4750 // 4750 <__unpack_d> + 5e50: 1909 addi r1, r14, 36 + 5e52: 1802 addi r0, r14, 8 + 5e54: e3fff47e bsr 0x4750 // 4750 <__unpack_d> + 5e58: 9864 ld.w r3, (r14, 0x10) + 5e5a: 3b01 cmphsi r3, 2 + 5e5c: 0c0a bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e5e: 9869 ld.w r3, (r14, 0x24) + 5e60: 3b01 cmphsi r3, 2 + 5e62: 0c07 bf 0x5e70 // 5e70 <__ltdf2+0x34> + 5e64: 1909 addi r1, r14, 36 + 5e66: 1804 addi r0, r14, 16 + 5e68: e3fff4d6 bsr 0x4814 // 4814 <__fpcmp_parts_d> + 5e6c: 140e addi r14, r14, 56 + 5e6e: 1490 pop r15 + 5e70: 3001 movi r0, 1 + 5e72: 140e addi r14, r14, 56 + 5e74: 1490 pop r15 + +Disassembly of section .text.__main: + +00005e78 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 5e78: 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 ) { + 5e7a: 1009 lrw r0, 0x20000000 // 5e9c <__main+0x24> + 5e7c: 1029 lrw r1, 0xc28c // 5ea0 <__main+0x28> + 5e7e: 6442 cmpne r0, r1 + 5e80: 0c05 bf 0x5e8a // 5e8a <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 5e82: 1049 lrw r2, 0x2000009c // 5ea4 <__main+0x2c> + 5e84: 6082 subu r2, r0 + 5e86: e3fff5ad bsr 0x49e0 // 49e0 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 5e8a: 1048 lrw r2, 0x20000afc // 5ea8 <__main+0x30> + 5e8c: 1008 lrw r0, 0x200000bc // 5eac <__main+0x34> + 5e8e: 640a cmpne r2, r0 + 5e90: 0c05 bf 0x5e9a // 5e9a <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 5e92: 6082 subu r2, r0 + 5e94: 3100 movi r1, 0 + 5e96: e3fff561 bsr 0x4958 // 4958 <__memset_fast> + } + + +} + 5e9a: 1490 pop r15 + 5e9c: 20000000 .long 0x20000000 + 5ea0: 0000c28c .long 0x0000c28c + 5ea4: 2000009c .long 0x2000009c + 5ea8: 20000afc .long 0x20000afc + 5eac: 200000bc .long 0x200000bc + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00005eb0 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 5eb0: 3848 cmpnei r0, 8 + 5eb2: 080a bt 0x5ec6 // 5ec6 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 5eb4: 107a lrw r3, 0x2000004c // 5f1c + 5eb6: 32ff movi r2, 255 + 5eb8: 9320 ld.w r1, (r3, 0x0) + 5eba: 9160 ld.w r3, (r1, 0x0) + 5ebc: 424c lsli r2, r2, 12 + 5ebe: 68c9 andn r3, r2 + 5ec0: 3bae bseti r3, 14 + 5ec2: 3bb2 bseti r3, 18 + 5ec4: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 5ec6: 1077 lrw r3, 0x2000005c // 5f20 + 5ec8: 9360 ld.w r3, (r3, 0x0) + 5eca: 9341 ld.w r2, (r3, 0x4) + 5ecc: 6c80 or r2, r0 + 5ece: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 5ed0: 9343 ld.w r2, (r3, 0xc) + 5ed2: 6880 and r2, r0 + 5ed4: 3a40 cmpnei r2, 0 + 5ed6: 0ffd bf 0x5ed0 // 5ed0 + switch(ENDIS_X) + 5ed8: 3842 cmpnei r0, 2 + 5eda: 0807 bt 0x5ee8 // 5ee8 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 5edc: 3102 movi r1, 2 + 5ede: 9344 ld.w r2, (r3, 0x10) + 5ee0: 6884 and r2, r1 + 5ee2: 3a40 cmpnei r2, 0 + 5ee4: 0ffd bf 0x5ede // 5ede + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 5ee6: 783c jmp r15 + switch(ENDIS_X) + 5ee8: 3802 cmphsi r0, 3 + 5eea: 0809 bt 0x5efc // 5efc + 5eec: 3841 cmpnei r0, 1 + 5eee: 0bfc bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 5ef0: 3101 movi r1, 1 + 5ef2: 9344 ld.w r2, (r3, 0x10) + 5ef4: 6884 and r2, r1 + 5ef6: 3a40 cmpnei r2, 0 + 5ef8: 0ffd bf 0x5ef2 // 5ef2 + 5efa: 07f6 br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5efc: 3848 cmpnei r0, 8 + 5efe: 0807 bt 0x5f0c // 5f0c + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 5f00: 3108 movi r1, 8 + 5f02: 9344 ld.w r2, (r3, 0x10) + 5f04: 6884 and r2, r1 + 5f06: 3a40 cmpnei r2, 0 + 5f08: 0ffd bf 0x5f02 // 5f02 + 5f0a: 07ee br 0x5ee6 // 5ee6 + switch(ENDIS_X) + 5f0c: 3850 cmpnei r0, 16 + 5f0e: 0bec bt 0x5ee6 // 5ee6 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 5f10: 3110 movi r1, 16 + 5f12: 9344 ld.w r2, (r3, 0x10) + 5f14: 6884 and r2, r1 + 5f16: 3a40 cmpnei r2, 0 + 5f18: 0ffd bf 0x5f12 // 5f12 + 5f1a: 07e6 br 0x5ee6 // 5ee6 + 5f1c: 2000004c .long 0x2000004c + 5f20: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00005f24 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 5f24: 106c lrw r3, 0x2000005c // 5f54 + 5f26: 104d lrw r2, 0xffff // 5f58 + 5f28: 9360 ld.w r3, (r3, 0x0) + 5f2a: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 5f2c: 104c lrw r2, 0xffffff // 5f5c + 5f2e: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 5f30: 104c lrw r2, 0xd22d0000 // 5f60 + 5f32: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 5f34: 104c lrw r2, 0x70ff3bff // 5f64 + 5f36: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 5f38: 320a movi r2, 10 + 5f3a: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f3c: 102b lrw r1, 0x70c // 5f68 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 5f3e: 237f addi r3, 128 + 5f40: 3200 movi r2, 0 + 5f42: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 5f44: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f46: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 5f48: 1029 lrw r1, 0x3fe // 5f6c + 5f4a: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 5f4c: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 5f4e: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 5f50: b35f st.w r2, (r3, 0x7c) +} + 5f52: 783c jmp r15 + 5f54: 2000005c .long 0x2000005c + 5f58: 0000ffff .long 0x0000ffff + 5f5c: 00ffffff .long 0x00ffffff + 5f60: d22d0000 .long 0xd22d0000 + 5f64: 70ff3bff .long 0x70ff3bff + 5f68: 0000070c .long 0x0000070c + 5f6c: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00005f70 : +{ + 5f70: 14d0 push r15 + if (NewState != DISABLE) + 5f72: 3840 cmpnei r0, 0 + 5f74: 0c05 bf 0x5f7e // 5f7e + 5f76: 6c07 mov r0, r1 + 5f78: e3ffff9c bsr 0x5eb0 // 5eb0 +} + 5f7c: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 5f7e: 1068 lrw r3, 0x2000005c // 5f9c + 5f80: 9360 ld.w r3, (r3, 0x0) + 5f82: 9342 ld.w r2, (r3, 0x8) + 5f84: 6c84 or r2, r1 + 5f86: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 5f88: 9343 ld.w r2, (r3, 0xc) + 5f8a: 6884 and r2, r1 + 5f8c: 3a40 cmpnei r2, 0 + 5f8e: 0bfd bt 0x5f88 // 5f88 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 5f90: 237f addi r3, 128 + 5f92: 9301 ld.w r0, (r3, 0x4) + 5f94: 6c40 or r1, r0 + 5f96: b321 st.w r1, (r3, 0x4) +} + 5f98: 07f2 br 0x5f7c // 5f7c + 5f9a: 0000 bkpt + 5f9c: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00005fa0 : +//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 ) +{ + 5fa0: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 5fa2: 3b48 cmpnei r3, 8 + 5fa4: 0828 bt 0x5ff4 // 5ff4 + { + IFC->CEDR=0X01; //CLKEN + 5fa6: 109d lrw r4, 0x20000060 // 6018 + 5fa8: 3501 movi r5, 1 + 5faa: 9480 ld.w r4, (r4, 0x0) + 5fac: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 5fae: 3504 movi r5, 4 + 5fb0: 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)) + 5fb2: 5b83 subi r4, r3, 1 + 5fb4: 3c01 cmphsi r4, 2 + 5fb6: 0c2b bf 0x600c // 600c + { + 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)) + 5fb8: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 5fba: 3c04 cmphsi r4, 5 + 5fbc: 0c03 bf 0x5fc2 // 5fc2 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 5fbe: 3b4b cmpnei r3, 11 + 5fc0: 0807 bt 0x5fce // 5fce + { + IFC->CEDR=0X01; //CLKEN + 5fc2: 1076 lrw r3, 0x20000060 // 6018 + 5fc4: 3401 movi r4, 1 + 5fc6: 9360 ld.w r3, (r3, 0x0) + 5fc8: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 5fca: 3400 movi r4, 0 + 5fcc: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fce: 1094 lrw r4, 0xd22d0000 // 601c + 5fd0: 6c10 or r0, r4 + 5fd2: 1074 lrw r3, 0x2000005c // 6020 + 5fd4: 6c40 or r1, r0 + 5fd6: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fd8: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fda: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fdc: 4001 lsli r0, r0, 1 + 5fde: 9324 ld.w r1, (r3, 0x10) + 5fe0: 6840 and r1, r0 + 5fe2: 3940 cmpnei r1, 0 + 5fe4: 0ffd bf 0x5fde // 5fde + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 5fe6: 1030 lrw r1, 0xc33c0000 // 6024 + 5fe8: 6c48 or r1, r2 + 5fea: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 5fec: 9328 ld.w r1, (r3, 0x20) + 5fee: 644a cmpne r2, r1 + 5ff0: 0bfe bt 0x5fec // 5fec +} + 5ff2: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 5ff4: 3b40 cmpnei r3, 0 + 5ff6: 0c03 bf 0x5ffc // 5ffc + 5ff8: 3b49 cmpnei r3, 9 + 5ffa: 0807 bt 0x6008 // 6008 + IFC->CEDR=0X01; //CLKEN + 5ffc: 1087 lrw r4, 0x20000060 // 6018 + 5ffe: 3501 movi r5, 1 + 6000: 9480 ld.w r4, (r4, 0x0) + 6002: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 6004: 3502 movi r5, 2 + 6006: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 6008: 3b4a cmpnei r3, 10 + 600a: 0bd4 bt 0x5fb2 // 5fb2 + IFC->CEDR=0X01; //CLKEN + 600c: 1083 lrw r4, 0x20000060 // 6018 + 600e: 3501 movi r5, 1 + 6010: 9480 ld.w r4, (r4, 0x0) + 6012: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 6014: b4a5 st.w r5, (r4, 0x14) + 6016: 07d1 br 0x5fb8 // 5fb8 + 6018: 20000060 .long 0x20000060 + 601c: d22d0000 .long 0xd22d0000 + 6020: 2000005c .long 0x2000005c + 6024: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00006028 : +//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) +{ + 6028: 14d1 push r4, r15 + 602a: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 602c: 3110 movi r1, 16 + 602e: 3000 movi r0, 0 + 6030: e3ffffa0 bsr 0x5f70 // 5f70 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 6034: 1066 lrw r3, 0x2000005c // 604c + 6036: 9360 ld.w r3, (r3, 0x0) + 6038: 9319 ld.w r0, (r3, 0x64) + 603a: 3884 bclri r0, 4 + 603c: 3885 bclri r0, 5 + 603e: 6c10 or r0, r4 + 6040: b319 st.w r0, (r3, 0x64) + 6042: 3010 movi r0, 16 + 6044: e3ffff36 bsr 0x5eb0 // 5eb0 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 6048: 1491 pop r4, r15 + 604a: 0000 bkpt + 604c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00006050 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 6050: 106c lrw r3, 0x2000005c // 6080 + if(NewState != DISABLE) + 6052: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 6054: 9360 ld.w r3, (r3, 0x0) + 6056: 237f addi r3, 128 + if(NewState != DISABLE) + 6058: 0c0a bf 0x606c // 606c + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605a: 104b lrw r2, 0x78870000 // 6084 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 605c: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 605e: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 6060: 4125 lsli r1, r1, 5 + 6062: 934d ld.w r2, (r3, 0x34) + 6064: 6884 and r2, r1 + 6066: 3a40 cmpnei r2, 0 + 6068: 0ffd bf 0x6062 // 6062 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 606a: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 606c: 1047 lrw r2, 0x788755aa // 6088 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 606e: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 6070: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 6072: 4125 lsli r1, r1, 5 + 6074: 934d ld.w r2, (r3, 0x34) + 6076: 6884 and r2, r1 + 6078: 3a40 cmpnei r2, 0 + 607a: 0bfd bt 0x6074 // 6074 + 607c: 07f7 br 0x606a // 606a + 607e: 0000 bkpt + 6080: 2000005c .long 0x2000005c + 6084: 78870000 .long 0x78870000 + 6088: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +0000608c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 608c: 1064 lrw r3, 0x2000005c // 609c + 608e: 32b4 movi r2, 180 + 6090: 9360 ld.w r3, (r3, 0x0) + 6092: 237f addi r3, 128 + 6094: 4257 lsli r2, r2, 23 + 6096: b34e st.w r2, (r3, 0x38) +} + 6098: 783c jmp r15 + 609a: 0000 bkpt + 609c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +000060a0 : +//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; + 60a0: 1044 lrw r2, 0x87780000 // 60b0 + 60a2: 1065 lrw r3, 0x2000005c // 60b4 + 60a4: 6c48 or r1, r2 + 60a6: 9360 ld.w r3, (r3, 0x0) + 60a8: 6c04 or r0, r1 + 60aa: 237f addi r3, 128 + 60ac: b30d st.w r0, (r3, 0x34) +} + 60ae: 783c jmp r15 + 60b0: 87780000 .long 0x87780000 + 60b4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +000060b8 : +//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) +{ + 60b8: 14c3 push r4-r6 + 60ba: 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; + 60bc: 10c5 lrw r6, 0xb44b0000 // 60d0 + 60be: 6d18 or r4, r6 + 60c0: 6cd0 or r3, r4 + 60c2: 6c8c or r2, r3 + 60c4: 6c48 or r1, r2 + 60c6: 10a4 lrw r5, 0x2000005c // 60d4 + 60c8: 6c04 or r0, r1 + 60ca: 95a0 ld.w r5, (r5, 0x0) + 60cc: b513 st.w r0, (r5, 0x4c) +} + 60ce: 1483 pop r4-r6 + 60d0: b44b0000 .long 0xb44b0000 + 60d4: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +000060d8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 60d8: 1066 lrw r3, 0x2000005c // 60f0 + 60da: 3180 movi r1, 128 + 60dc: 9360 ld.w r3, (r3, 0x0) + 60de: 3280 movi r2, 128 + 60e0: 604c addu r1, r3 + 60e2: 4244 lsli r2, r2, 4 + 60e4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 60e6: 935d ld.w r2, (r3, 0x74) + 60e8: 3aab bseti r2, 11 + 60ea: b35d st.w r2, (r3, 0x74) +} + 60ec: 783c jmp r15 + 60ee: 0000 bkpt + 60f0: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +000060f4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 60f4: 1066 lrw r3, 0x2000005c // 610c + 60f6: 3180 movi r1, 128 + 60f8: 9360 ld.w r3, (r3, 0x0) + 60fa: 3280 movi r2, 128 + 60fc: 604c addu r1, r3 + 60fe: 4241 lsli r2, r2, 1 + 6100: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 6102: 935d ld.w r2, (r3, 0x74) + 6104: 3aa8 bseti r2, 8 + 6106: b35d st.w r2, (r3, 0x74) +} + 6108: 783c jmp r15 + 610a: 0000 bkpt + 610c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00006110 : +//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) + 6110: 3a40 cmpnei r2, 0 + 6112: 0c04 bf 0x611a // 611a + 6114: 3a41 cmpnei r2, 1 + 6116: 0c0e bf 0x6132 // 6132 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 6118: 783c jmp r15 + 611a: 106d lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 611c: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 611e: 9360 ld.w r3, (r3, 0x0) + 6120: 237f addi r3, 128 + 6122: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 6124: 0c04 bf 0x612c // 612c + SYSCON->EXIRT |=EXIPIN; + 6126: 6c48 or r1, r2 + 6128: b325 st.w r1, (r3, 0x14) + 612a: 07f7 br 0x6118 // 6118 + SYSCON->EXIRT &=~EXIPIN; + 612c: 6885 andn r2, r1 + 612e: b345 st.w r2, (r3, 0x14) + 6130: 07f4 br 0x6118 // 6118 + 6132: 1067 lrw r3, 0x2000005c // 614c + if(NewState != DISABLE) + 6134: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 6136: 9360 ld.w r3, (r3, 0x0) + 6138: 237f addi r3, 128 + 613a: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 613c: 0c04 bf 0x6144 // 6144 + SYSCON->EXIFT |=EXIPIN; + 613e: 6c48 or r1, r2 + 6140: b326 st.w r1, (r3, 0x18) + 6142: 07eb br 0x6118 // 6118 + SYSCON->EXIFT &=~EXIPIN; + 6144: 6885 andn r2, r1 + 6146: b346 st.w r2, (r3, 0x18) +} + 6148: 07e8 br 0x6118 // 6118 + 614a: 0000 bkpt + 614c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00006150 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 6150: 106b lrw r3, 0x2000005c // 617c + 6152: 104c lrw r2, 0x3fff // 6180 + 6154: 9360 ld.w r3, (r3, 0x0) + 6156: 237f addi r3, 128 + if(NewState != DISABLE) + 6158: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 615a: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 615c: 0c0c bf 0x6174 // 6174 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 615e: 9347 ld.w r2, (r3, 0x1c) + 6160: 6c84 or r2, r1 + 6162: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 6164: 9349 ld.w r2, (r3, 0x24) + 6166: 6884 and r2, r1 + 6168: 3a40 cmpnei r2, 0 + 616a: 0ffd bf 0x6164 // 6164 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 616c: 934b ld.w r2, (r3, 0x2c) + 616e: 6c48 or r1, r2 + 6170: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 6172: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 6174: 9348 ld.w r2, (r3, 0x20) + 6176: 6c48 or r1, r2 + 6178: b328 st.w r1, (r3, 0x20) +} + 617a: 07fc br 0x6172 // 6172 + 617c: 2000005c .long 0x2000005c + 6180: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00006184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 6184: b02b st.w r1, (r0, 0x2c) +} + 6186: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00006188 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 6188: 3380 movi r3, 128 + 618a: 4370 lsli r3, r3, 16 + 618c: 1042 lrw r2, 0xe000e100 // 6194 + 618e: b260 st.w r3, (r2, 0x0) +} + 6190: 783c jmp r15 + 6192: 0000 bkpt + 6194: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00006198 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 6198: 3202 movi r2, 2 + 619a: 1062 lrw r3, 0xe000e100 // 61a0 + 619c: b340 st.w r2, (r3, 0x0) +} + 619e: 783c jmp r15 + 61a0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +000061a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 61a4: 3202 movi r2, 2 + 61a6: 1062 lrw r3, 0xe000e180 // 61ac + 61a8: b340 st.w r2, (r3, 0x0) +} + 61aa: 783c jmp r15 + 61ac: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_Software_Reset: + +000061b0 : +//EntryParameter:None +//ReturnValue:MCU reset +/*************************************************************/ +void SYSCON_Software_Reset(void) +{ + SYSCON->IDCCR=IDCCR_KEY|SWRST; + 61b0: 1063 lrw r3, 0x2000005c // 61bc + 61b2: 1044 lrw r2, 0xe11e0080 // 61c0 + 61b4: 9360 ld.w r3, (r3, 0x0) + 61b6: b340 st.w r2, (r3, 0x0) +} + 61b8: 783c jmp r15 + 61ba: 0000 bkpt + 61bc: 2000005c .long 0x2000005c + 61c0: e11e0080 .long 0xe11e0080 + +Disassembly of section .text.SYSCON_INT_Priority: + +000061c4 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61c4: 1066 lrw r3, 0xe000e400 // 61dc + 61c6: 1047 lrw r2, 0xc0c0c0c0 // 61e0 + 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 + 61c8: 1027 lrw r1, 0xc0c000c0 // 61e4 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61ca: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 61cc: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 61ce: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 61d0: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 61d2: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 61d4: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 61d6: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 61d8: b347 st.w r2, (r3, 0x1c) +} + 61da: 783c jmp r15 + 61dc: e000e400 .long 0xe000e400 + 61e0: c0c0c0c0 .long 0xc0c0c0c0 + 61e4: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000061e8 : +//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) +{ + 61e8: 14c1 push r4 + 61ea: 4862 lsri r3, r0, 2 + 61ec: 4342 lsli r2, r3, 2 + 61ee: 106a lrw r3, 0x20000064 // 6214 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 61f0: 3403 movi r4, 3 + 61f2: 9360 ld.w r3, (r3, 0x0) + 61f4: 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)); + 6206: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 620a: 7040 lsl r1, r0 + 620c: 6c48 or r1, r2 + 620e: b320 st.w r1, (r3, 0x0) +} + 6210: 1481 pop r4 + 6212: 0000 bkpt + 6214: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +00006218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 6218: 1075 lrw r3, 0x2000004c // 626c + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 621a: 1036 lrw r1, 0x20000048 // 6270 + 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; + 621c: 1016 lrw r0, 0xffff // 6274 + GPIOA0->CONLR &= 0xFF000000; + 621e: 9340 ld.w r2, (r3, 0x0) + 6220: 9260 ld.w r3, (r2, 0x0) + 6222: 4b78 lsri r3, r3, 24 + 6224: 4378 lsli r3, r3, 24 + 6226: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 6228: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 622a: 3300 movi r3, 0 + 622c: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 622e: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 6230: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 6232: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 6234: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 6236: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 6238: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 623a: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 623c: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 623e: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 6240: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 6242: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 6244: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 6246: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 6248: 303f movi r0, 63 + 624a: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 624c: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 624e: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 6250: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 6252: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 6254: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 6256: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 6258: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 625a: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 625c: 1047 lrw r2, 0x20000044 // 6278 + 625e: 9240 ld.w r2, (r2, 0x0) + 6260: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 6262: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 6264: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 6266: 330f movi r3, 15 + 6268: b263 st.w r3, (r2, 0xc) +} + 626a: 783c jmp r15 + 626c: 2000004c .long 0x2000004c + 6270: 20000048 .long 0x20000048 + 6274: 0000ffff .long 0x0000ffff + 6278: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +0000627c : +//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) +{ + 627c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 627e: 3907 cmphsi r1, 8 +{ + 6280: 6d03 mov r4, r0 + if(PinNum<8) + 6282: 0830 bt 0x62e2 // 62e2 + { + switch (PinNum) + 6284: 5903 subi r0, r1, 1 + 6286: 3806 cmphsi r0, 7 + 6288: 0827 bt 0x62d6 // 62d6 + 628a: e3ffe939 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 628e: 1004 .short 0x1004 + 6290: 1d1a1613 .long 0x1d1a1613 + 6294: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 6296: 3300 movi r3, 0 + 6298: 3104 movi r1, 4 + 629a: 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) + 629c: 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< + 62b2: 07f5 br 0x629c // 629c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 62b4: 310c movi r1, 12 + 62b6: 1166 lrw r3, 0xffff0fff // 634c + 62b8: 07f2 br 0x629c // 629c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 62ba: 3110 movi r1, 16 + 62bc: 1165 lrw r3, 0xfff10000 // 6350 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62be: 2b00 subi r3, 1 + 62c0: 07ee br 0x629c // 629c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 62c2: 3114 movi r1, 20 + 62c4: 1164 lrw r3, 0xff100000 // 6354 + 62c6: 07fc br 0x62be // 62be + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62c8: 33f1 movi r3, 241 + 62ca: 3118 movi r1, 24 + 62cc: 4378 lsli r3, r3, 24 + 62ce: 07f8 br 0x62be // 62be + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 62d0: 311c movi r1, 28 + 62d2: 1162 lrw r3, 0xfffffff // 6358 + 62d4: 07e4 br 0x629c // 629c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 62d6: 3300 movi r3, 0 + 62d8: 3100 movi r1, 0 + 62da: 2b0f subi r3, 16 + 62dc: 07e0 br 0x629c // 629c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 62e2: 390f cmphsi r1, 16 + 62e4: 0be4 bt 0x62ac // 62ac + switch (PinNum) + 62e6: 2908 subi r1, 9 + 62e8: 3906 cmphsi r1, 7 + 62ea: 6c07 mov r0, r1 + 62ec: 0827 bt 0x633a // 633a + 62ee: e3ffe907 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 62f2: 1004 .short 0x1004 + 62f4: 1d1a1613 .long 0x1d1a1613 + 62f8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 62fa: 3300 movi r3, 0 + 62fc: 3104 movi r1, 4 + 62fe: 2bf0 subi r3, 241 + if (Dir) + 6300: 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; + 6312: 3108 movi r1, 8 + 6314: 106d lrw r3, 0xfffff0ff // 6348 + 6316: 07f5 br 0x6300 // 6300 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 6318: 310c movi r1, 12 + 631a: 106d lrw r3, 0xffff0fff // 634c + 631c: 07f2 br 0x6300 // 6300 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 631e: 3110 movi r1, 16 + 6320: 106c lrw r3, 0xfff10000 // 6350 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 6322: 2b00 subi r3, 1 + 6324: 07ee br 0x6300 // 6300 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 6326: 3114 movi r1, 20 + 6328: 106b lrw r3, 0xff100000 // 6354 + 632a: 07fc br 0x6322 // 6322 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 632c: 33f1 movi r3, 241 + 632e: 3118 movi r1, 24 + 6330: 4378 lsli r3, r3, 24 + 6332: 07f8 br 0x6322 // 6322 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 6334: 311c movi r1, 28 + 6336: 1069 lrw r3, 0xfffffff // 6358 + 6338: 07e4 br 0x6300 // 6300 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 633a: 3300 movi r3, 0 + 633c: 3100 movi r1, 0 + 633e: 2b0f subi r3, 16 + 6340: 07e0 br 0x6300 // 6300 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 6346: 0000 bkpt + 6348: fffff0ff .long 0xfffff0ff + 634c: ffff0fff .long 0xffff0fff + 6350: fff10000 .long 0xfff10000 + 6354: ff100000 .long 0xff100000 + 6358: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000635c : +//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)); + 635c: 4121 lsli r1, r1, 1 + 635e: 3203 movi r2, 3 + 6360: 9068 ld.w r3, (r0, 0x20) + 6362: 7084 lsl r2, r1 + 6364: 68c9 andn r3, r2 + 6366: 3201 movi r2, 1 + 6368: 7084 lsl r2, r1 + 636a: 6cc8 or r3, r2 + 636c: b068 st.w r3, (r0, 0x20) +} + 636e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00006370 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 6370: 4121 lsli r1, r1, 1 + 6372: 3301 movi r3, 1 + 6374: 9049 ld.w r2, (r0, 0x24) + 6376: 70c4 lsl r3, r1 + 6378: 6cc8 or r3, r2 + 637a: b069 st.w r3, (r0, 0x24) +} + 637c: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00006380 : +//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) +{ + 6380: 14c1 push r4 + 6382: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 6384: 3a0f cmphsi r2, 16 + 6386: 084f bt 0x6424 // 6424 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 6388: 6ccb mov r3, r2 + 638a: 3b83 bclri r3, 3 + 638c: 3b40 cmpnei r3, 0 + 638e: 0813 bt 0x63b4 // 63b4 + { + R_data_temp=0xfffffff0; + 6390: 2b0f subi r3, 16 + 6392: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 6394: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 6396: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 6398: dc6e0003 st.b r3, (r14, 0x3) + 639c: 1176 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x<8) + 639e: 0c38 bf 0x640e // 640e + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 63b4: 3b41 cmpnei r3, 1 + 63b6: 0806 bt 0x63c2 // 63c2 + R_data_temp=0xffffff0f; + 63b8: 3300 movi r3, 0 + 63ba: 2bf0 subi r3, 241 + 63bc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 63be: 3304 movi r3, 4 + 63c0: 07eb br 0x6396 // 6396 + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 63c2: 3b42 cmpnei r3, 2 + 63c4: 0805 bt 0x63ce // 63ce + R_data_temp=0xfffff0ff; + 63c6: 116d lrw r3, 0xfffff0ff // 6478 + 63c8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 63ca: 3308 movi r3, 8 + 63cc: 07e5 br 0x6396 // 6396 + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 63ce: 3b43 cmpnei r3, 3 + 63d0: 0805 bt 0x63da // 63da + R_data_temp=0xffff0fff; + 63d2: 116b lrw r3, 0xffff0fff // 647c + 63d4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 63d6: 330c movi r3, 12 + 63d8: 07df br 0x6396 // 6396 + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 63da: 3b44 cmpnei r3, 4 + 63dc: 0806 bt 0x63e8 // 63e8 + R_data_temp=0xfff0ffff; + 63de: 1169 lrw r3, 0xfff10000 // 6480 + 63e0: 2b00 subi r3, 1 + 63e2: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 63e4: 3310 movi r3, 16 + 63e6: 07d8 br 0x6396 // 6396 + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 63e8: 3b45 cmpnei r3, 5 + 63ea: 0806 bt 0x63f6 // 63f6 + R_data_temp=0xff0fffff; + 63ec: 1166 lrw r3, 0xff100000 // 6484 + 63ee: 2b00 subi r3, 1 + 63f0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 63f2: 3314 movi r3, 20 + 63f4: 07d1 br 0x6396 // 6396 + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 63f6: 3b46 cmpnei r3, 6 + 63f8: 0807 bt 0x6406 // 6406 + R_data_temp=0xf0ffffff; + 63fa: 33f1 movi r3, 241 + 63fc: 4378 lsli r3, r3, 24 + 63fe: 2b00 subi r3, 1 + 6400: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 6402: 3318 movi r3, 24 + 6404: 07c9 br 0x6396 // 6396 + R_data_temp=0x0fffffff; + 6406: 1161 lrw r3, 0xfffffff // 6488 + 6408: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 640a: 331c movi r3, 28 + 640c: 07c5 br 0x6396 // 6396 + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 6420: 1402 addi r14, r14, 8 + 6422: 1481 pop r4 + else if(Selete_EXI_x<20) + 6424: 3a13 cmphsi r2, 20 + 6426: 0bfd bt 0x6420 // 6420 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 6428: 3840 cmpnei r0, 0 + 642a: 0814 bt 0x6452 // 6452 + 642c: 3300 movi r3, 0 + 642e: 2b0f subi r3, 16 + 6430: 60c8 addu r3, r2 + 6432: 3b01 cmphsi r3, 2 + 6434: 0bf6 bt 0x6420 // 6420 + if(Selete_EXI_x==16) + 6436: 3a50 cmpnei r2, 16 + 6438: 106f lrw r3, 0x20000044 // 6474 + 643a: 0806 bt 0x6446 // 6446 + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 643c: 9340 ld.w r2, (r3, 0x0) + 643e: 9262 ld.w r3, (r2, 0x8) + 6440: 6c4c or r1, r3 + 6442: b222 st.w r1, (r2, 0x8) + 6444: 07ee br 0x6420 // 6420 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 6446: 9360 ld.w r3, (r3, 0x0) + 6448: 9342 ld.w r2, (r3, 0x8) + 644a: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 644c: 6c48 or r1, r2 + 644e: b322 st.w r1, (r3, 0x8) +} + 6450: 07e8 br 0x6420 // 6420 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 6452: 3842 cmpnei r0, 2 + 6454: 0be6 bt 0x6420 // 6420 + 6456: 3300 movi r3, 0 + 6458: 2b11 subi r3, 18 + 645a: 60c8 addu r3, r2 + 645c: 3b01 cmphsi r3, 2 + 645e: 0be1 bt 0x6420 // 6420 + 6460: 1065 lrw r3, 0x20000044 // 6474 + if(Selete_EXI_x==18) + 6462: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 6464: 9360 ld.w r3, (r3, 0x0) + 6466: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 6468: 0803 bt 0x646e // 646e + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 646a: 4128 lsli r1, r1, 8 + 646c: 07f0 br 0x644c // 644c + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 646e: 412c lsli r1, r1, 12 + 6470: 07ee br 0x644c // 644c + 6472: 0000 bkpt + 6474: 20000044 .long 0x20000044 + 6478: fffff0ff .long 0xfffff0ff + 647c: ffff0fff .long 0xffff0fff + 6480: fff10000 .long 0xfff10000 + 6484: ff100000 .long 0xff100000 + 6488: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +0000648c : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 648c: 14d0 push r15 + switch (EXI_IO) + 648e: 380f cmphsi r0, 16 + 6490: 0812 bt 0x64b4 // 64b4 + 6492: 117d lrw r3, 0x2000004c // 6584 + 6494: e3ffe834 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6498: 1d150f08 .long 0x1d150f08 + 649c: 39322b24 .long 0x39322b24 + 64a0: 544c463f .long 0x544c463f + 64a4: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 64a8: 9340 ld.w r2, (r3, 0x0) + 64aa: 9260 ld.w r3, (r2, 0x0) + 64ac: 310f movi r1, 15 + 64ae: 68c5 andn r3, r1 + 64b0: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b2: b260 st.w r3, (r2, 0x0) + 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; + } +} + 64b4: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 64b6: 9340 ld.w r2, (r3, 0x0) + 64b8: 9260 ld.w r3, (r2, 0x0) + 64ba: 31f0 movi r1, 240 + 64bc: 68c5 andn r3, r1 + 64be: 3ba4 bseti r3, 4 + 64c0: 07f9 br 0x64b2 // 64b2 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 64c2: 9320 ld.w r1, (r3, 0x0) + 64c4: 32f0 movi r2, 240 + 64c6: 9160 ld.w r3, (r1, 0x0) + 64c8: 4244 lsli r2, r2, 4 + 64ca: 68c9 andn r3, r2 + 64cc: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64ce: b160 st.w r3, (r1, 0x0) + 64d0: 07f2 br 0x64b4 // 64b4 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 64d2: 9320 ld.w r1, (r3, 0x0) + 64d4: 32f0 movi r2, 240 + 64d6: 9160 ld.w r3, (r1, 0x0) + 64d8: 4248 lsli r2, r2, 8 + 64da: 68c9 andn r3, r2 + 64dc: 3bac bseti r3, 12 + 64de: 07f8 br 0x64ce // 64ce + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 64e0: 9320 ld.w r1, (r3, 0x0) + 64e2: 32f0 movi r2, 240 + 64e4: 9160 ld.w r3, (r1, 0x0) + 64e6: 424c lsli r2, r2, 12 + 64e8: 68c9 andn r3, r2 + 64ea: 3bb0 bseti r3, 16 + 64ec: 07f1 br 0x64ce // 64ce + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 64ee: 9320 ld.w r1, (r3, 0x0) + 64f0: 32f0 movi r2, 240 + 64f2: 9160 ld.w r3, (r1, 0x0) + 64f4: 4250 lsli r2, r2, 16 + 64f6: 68c9 andn r3, r2 + 64f8: 3bb4 bseti r3, 20 + 64fa: 07ea br 0x64ce // 64ce + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64fc: 9320 ld.w r1, (r3, 0x0) + 64fe: 32f0 movi r2, 240 + 6500: 9160 ld.w r3, (r1, 0x0) + 6502: 4254 lsli r2, r2, 20 + 6504: 68c9 andn r3, r2 + 6506: 3bb8 bseti r3, 24 + 6508: 07e3 br 0x64ce // 64ce + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 650a: 9340 ld.w r2, (r3, 0x0) + 650c: 9260 ld.w r3, (r2, 0x0) + 650e: 4364 lsli r3, r3, 4 + 6510: 4b64 lsri r3, r3, 4 + 6512: 3bbc bseti r3, 28 + 6514: 07cf br 0x64b2 // 64b2 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 6516: 9340 ld.w r2, (r3, 0x0) + 6518: 9261 ld.w r3, (r2, 0x4) + 651a: 310f movi r1, 15 + 651c: 68c5 andn r3, r1 + 651e: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6520: b261 st.w r3, (r2, 0x4) +} + 6522: 07c9 br 0x64b4 // 64b4 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 6524: 9340 ld.w r2, (r3, 0x0) + 6526: 9261 ld.w r3, (r2, 0x4) + 6528: 31f0 movi r1, 240 + 652a: 68c5 andn r3, r1 + 652c: 3ba4 bseti r3, 4 + 652e: 07f9 br 0x6520 // 6520 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 6530: 9320 ld.w r1, (r3, 0x0) + 6532: 32f0 movi r2, 240 + 6534: 9161 ld.w r3, (r1, 0x4) + 6536: 4244 lsli r2, r2, 4 + 6538: 68c9 andn r3, r2 + 653a: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 653c: b161 st.w r3, (r1, 0x4) + 653e: 07bb br 0x64b4 // 64b4 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 6540: 9320 ld.w r1, (r3, 0x0) + 6542: 32f0 movi r2, 240 + 6544: 9161 ld.w r3, (r1, 0x4) + 6546: 4248 lsli r2, r2, 8 + 6548: 68c9 andn r3, r2 + 654a: 3bac bseti r3, 12 + 654c: 07f8 br 0x653c // 653c + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 654e: 9320 ld.w r1, (r3, 0x0) + 6550: 32f0 movi r2, 240 + 6552: 9161 ld.w r3, (r1, 0x4) + 6554: 424c lsli r2, r2, 12 + 6556: 68c9 andn r3, r2 + 6558: 3bb0 bseti r3, 16 + 655a: 07f1 br 0x653c // 653c + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 655c: 9320 ld.w r1, (r3, 0x0) + 655e: 32f0 movi r2, 240 + 6560: 9161 ld.w r3, (r1, 0x4) + 6562: 4250 lsli r2, r2, 16 + 6564: 68c9 andn r3, r2 + 6566: 3bb4 bseti r3, 20 + 6568: 07ea br 0x653c // 653c + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 656a: 9320 ld.w r1, (r3, 0x0) + 656c: 32f0 movi r2, 240 + 656e: 9161 ld.w r3, (r1, 0x4) + 6570: 4254 lsli r2, r2, 20 + 6572: 68c9 andn r3, r2 + 6574: 3bb8 bseti r3, 24 + 6576: 07e3 br 0x653c // 653c + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6578: 9340 ld.w r2, (r3, 0x0) + 657a: 9261 ld.w r3, (r2, 0x4) + 657c: 4364 lsli r3, r3, 4 + 657e: 4b64 lsri r3, r3, 4 + 6580: 3bbc bseti r3, 28 + 6582: 07cf br 0x6520 // 6520 + 6584: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +00006588 : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 6598: 9045 ld.w r2, (r0, 0x14) + 659a: 3301 movi r3, 1 + 659c: 7085 lsr r2, r1 + 659e: 688c and r2, r3 + { + if (dat==1) + 65a0: 3a40 cmpnei r2, 0 + 65a2: 70c4 lsl r3, r1 + 65a4: 0c03 bf 0x65aa // 65aa + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000065ae : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 65c0: 1064 lrw r3, 0x20000014 // 65d0 + 65c2: 9340 ld.w r2, (r3, 0x0) + 65c4: 9261 ld.w r3, (r2, 0x4) + 65c6: 3bac bseti r3, 12 + 65c8: 3bae bseti r3, 14 + 65ca: b261 st.w r3, (r2, 0x4) +} + 65cc: 783c jmp r15 + 65ce: 0000 bkpt + 65d0: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000065d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 65d4: 1063 lrw r3, 0x20000010 // 65e0 + 65d6: 9360 ld.w r3, (r3, 0x0) + 65d8: 9340 ld.w r2, (r3, 0x0) + 65da: 6c08 or r0, r2 + 65dc: b300 st.w r0, (r3, 0x0) +} + 65de: 783c jmp r15 + 65e0: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000065e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 65e4: 3300 movi r3, 0 + 65e6: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 65e8: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 65ea: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 65ec: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 65ee: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 65f0: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 65f2: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 65f4: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 65f6: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 65f8: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 65fa: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 65fc: b06d st.w r3, (r0, 0x34) +} + 65fe: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00006600 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 6600: 9060 ld.w r3, (r0, 0x0) + 6602: 3ba0 bseti r3, 0 + 6604: b060 st.w r3, (r0, 0x0) +} + 6606: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00006608 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 6608: 9060 ld.w r3, (r0, 0x0) + 660a: 3bac bseti r3, 12 + 660c: 3bae bseti r3, 14 + 660e: b060 st.w r3, (r0, 0x0) +} + 6610: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00006612 : +//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) +{ + 6612: 14c3 push r4-r6 + 6614: 98a4 ld.w r5, (r14, 0x10) + 6616: 6d97 mov r6, r5 + 6618: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 661a: 6d18 or r4, r6 + 661c: 6cd0 or r3, r4 + 661e: 90a1 ld.w r5, (r0, 0x4) + 6620: 6c4c or r1, r3 + 6622: 6c54 or r1, r5 + 6624: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 6626: b042 st.w r2, (r0, 0x8) +} + 6628: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000662a : +//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) +{ + 662a: 14c4 push r4-r7 + 662c: 1421 subi r14, r14, 4 + 662e: 9885 ld.w r4, (r14, 0x14) + 6630: 6dd3 mov r7, r4 + 6632: 9886 ld.w r4, (r14, 0x18) + 6634: b880 st.w r4, (r14, 0x0) + 6636: 9887 ld.w r4, (r14, 0x1c) + 6638: 6d93 mov r6, r4 + 663a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 663c: 6d58 or r5, r6 + 663e: 98c0 ld.w r6, (r14, 0x0) + 6640: 6d58 or r5, r6 + 6642: 6d5c or r5, r7 + 6644: 6cd4 or r3, r5 + 6646: 6c8c or r2, r3 + 6648: 9081 ld.w r4, (r0, 0x4) + 664a: 6c48 or r1, r2 + 664c: 6d04 or r4, r1 + 664e: 6d9f mov r6, r7 + 6650: b081 st.w r4, (r0, 0x4) +} + 6652: 1401 addi r14, r14, 4 + 6654: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00006656 : +//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; + 6656: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 6658: b044 st.w r2, (r0, 0x10) +} + 665a: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +0000665c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 665c: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 665e: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 6660: 0c04 bf 0x6668 // 6668 + BTx->IMCR |= BT_IMSCR_X; + 6662: 6c8c or r2, r3 + 6664: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 6666: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 6668: 68c9 andn r3, r2 + 666a: b06b st.w r3, (r0, 0x2c) +} + 666c: 07fd br 0x6666 // 6666 + +Disassembly of section .text.BT1_INT_ENABLE: + +00006670 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 6670: 3380 movi r3, 128 + 6672: 4376 lsli r3, r3, 22 + 6674: 1042 lrw r2, 0xe000e100 // 667c + 6676: b260 st.w r3, (r2, 0x0) +} + 6678: 783c jmp r15 + 667a: 0000 bkpt + 667c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00006680 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 6680: 1065 lrw r3, 0x20000040 // 6694 + 6682: 3200 movi r2, 0 + 6684: 9360 ld.w r3, (r3, 0x0) + 6686: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 6688: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 668a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 668c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 668e: b344 st.w r2, (r3, 0x10) +} + 6690: 783c jmp r15 + 6692: 0000 bkpt + 6694: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00006698 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 6698: 1065 lrw r3, 0x2000003c // 66ac + 669a: 3200 movi r2, 0 + 669c: 9360 ld.w r3, (r3, 0x0) + 669e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 66a0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 66a2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 66a4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 66a6: b344 st.w r2, (r3, 0x10) +} + 66a8: 783c jmp r15 + 66aa: 0000 bkpt + 66ac: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000066b0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 66b0: 1065 lrw r3, 0x20000038 // 66c4 + 66b2: 3200 movi r2, 0 + 66b4: 9360 ld.w r3, (r3, 0x0) + 66b6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 66b8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 66ba: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 66bc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 66be: b344 st.w r2, (r3, 0x10) +} + 66c0: 783c jmp r15 + 66c2: 0000 bkpt + 66c4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000066c8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 66c8: 1065 lrw r3, 0x20000040 // 66dc + 66ca: 320f movi r2, 15 + 66cc: 9360 ld.w r3, (r3, 0x0) + 66ce: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66d0: 3380 movi r3, 128 + 66d2: 4366 lsli r3, r3, 6 + 66d4: 1043 lrw r2, 0xe000e100 // 66e0 + 66d6: b260 st.w r3, (r2, 0x0) +} + 66d8: 783c jmp r15 + 66da: 0000 bkpt + 66dc: 20000040 .long 0x20000040 + 66e0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART1_Int_Enable: + +000066e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 66e4: 1065 lrw r3, 0x2000003c // 66f8 + 66e6: 320f movi r2, 15 + 66e8: 9360 ld.w r3, (r3, 0x0) + 66ea: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66ec: 3380 movi r3, 128 + 66ee: 4367 lsli r3, r3, 7 + 66f0: 1043 lrw r2, 0xe000e100 // 66fc + 66f2: b260 st.w r3, (r2, 0x0) +} + 66f4: 783c jmp r15 + 66f6: 0000 bkpt + 66f8: 2000003c .long 0x2000003c + 66fc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00006700 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 6700: 1065 lrw r3, 0x20000038 // 6714 + 6702: 320f movi r2, 15 + 6704: 9360 ld.w r3, (r3, 0x0) + 6706: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 6708: 3380 movi r3, 128 + 670a: 4368 lsli r3, r3, 8 + 670c: 1043 lrw r2, 0xe000e100 // 6718 + 670e: b260 st.w r3, (r2, 0x0) +} + 6710: 783c jmp r15 + 6712: 0000 bkpt + 6714: 20000038 .long 0x20000038 + 6718: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000671c : +//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) + 671c: 3840 cmpnei r0, 0 + 671e: 0821 bt 0x6760 // 6760 + { + if(UART_IO_G==0) + 6720: 3940 cmpnei r1, 0 + 6722: 080a bt 0x6736 // 6736 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 6724: 1177 lrw r3, 0x2000004c // 6800 + 6726: 31ff movi r1, 255 + 6728: 9340 ld.w r2, (r3, 0x0) + 672a: 9260 ld.w r3, (r2, 0x0) + 672c: 68c5 andn r3, r1 + 672e: 3ba2 bseti r3, 2 + 6730: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 6732: b260 st.w r3, (r2, 0x0) + 6734: 0415 br 0x675e // 675e + else if(UART_IO_G==1) + 6736: 3941 cmpnei r1, 1 + 6738: 0813 bt 0x675e // 675e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 673a: 1172 lrw r3, 0x2000004c // 6800 + 673c: 31f0 movi r1, 240 + 673e: 9340 ld.w r2, (r3, 0x0) + 6740: 9260 ld.w r3, (r2, 0x0) + 6742: 4130 lsli r1, r1, 16 + 6744: 68c5 andn r3, r1 + 6746: 31e0 movi r1, 224 + 6748: 412f lsli r1, r1, 15 + 674a: 6cc4 or r3, r1 + 674c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 674e: 31f0 movi r1, 240 + 6750: 9261 ld.w r3, (r2, 0x4) + 6752: 412c lsli r1, r1, 12 + 6754: 68c5 andn r3, r1 + 6756: 31e0 movi r1, 224 + 6758: 412b lsli r1, r1, 11 + 675a: 6cc4 or r3, r1 + 675c: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 675e: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 6760: 3841 cmpnei r0, 1 + 6762: 082d bt 0x67bc // 67bc + if(UART_IO_G==0) + 6764: 3940 cmpnei r1, 0 + 6766: 0814 bt 0x678e // 678e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 6768: 1167 lrw r3, 0x20000048 // 6804 + 676a: 310f movi r1, 15 + 676c: 9340 ld.w r2, (r3, 0x0) + 676e: 9260 ld.w r3, (r2, 0x0) + 6770: 68c5 andn r3, r1 + 6772: 3107 movi r1, 7 + 6774: 6cc4 or r3, r1 + 6776: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 6778: 32f0 movi r2, 240 + 677a: 1162 lrw r3, 0x2000004c // 6800 + 677c: 4250 lsli r2, r2, 16 + 677e: 9320 ld.w r1, (r3, 0x0) + 6780: 9161 ld.w r3, (r1, 0x4) + 6782: 68c9 andn r3, r2 + 6784: 32e0 movi r2, 224 + 6786: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 6788: 6cc8 or r3, r2 + 678a: b161 st.w r3, (r1, 0x4) + 678c: 07e9 br 0x675e // 675e + else if(UART_IO_G==1) + 678e: 3941 cmpnei r1, 1 + 6790: 080c bt 0x67a8 // 67a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 6792: 107c lrw r3, 0x2000004c // 6800 + 6794: 32ff movi r2, 255 + 6796: 9320 ld.w r1, (r3, 0x0) + 6798: 424c lsli r2, r2, 12 + 679a: 9160 ld.w r3, (r1, 0x0) + 679c: 68c9 andn r3, r2 + 679e: 32ee movi r2, 238 + 67a0: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67a2: 6cc8 or r3, r2 + 67a4: b160 st.w r3, (r1, 0x0) +} + 67a6: 07dc br 0x675e // 675e + else if(UART_IO_G==2) + 67a8: 3942 cmpnei r1, 2 + 67aa: 0bda bt 0x675e // 675e + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 67ac: 1075 lrw r3, 0x2000004c // 6800 + 67ae: 32ee movi r2, 238 + 67b0: 9320 ld.w r1, (r3, 0x0) + 67b2: 9161 ld.w r3, (r1, 0x4) + 67b4: 4368 lsli r3, r3, 8 + 67b6: 4b68 lsri r3, r3, 8 + 67b8: 4257 lsli r2, r2, 23 + 67ba: 07e7 br 0x6788 // 6788 + if (IO_UART_NUM==IO_UART2) + 67bc: 3842 cmpnei r0, 2 + 67be: 0bd0 bt 0x675e // 675e + if(UART_IO_G==0) + 67c0: 3940 cmpnei r1, 0 + 67c2: 0809 bt 0x67d4 // 67d4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 67c4: 106f lrw r3, 0x2000004c // 6800 + 67c6: 31ff movi r1, 255 + 67c8: 9340 ld.w r2, (r3, 0x0) + 67ca: 9260 ld.w r3, (r2, 0x0) + 67cc: 68c5 andn r3, r1 + 67ce: 3177 movi r1, 119 + 67d0: 6cc4 or r3, r1 + 67d2: 07b0 br 0x6732 // 6732 + else if(UART_IO_G==1) + 67d4: 3941 cmpnei r1, 1 + 67d6: 0809 bt 0x67e8 // 67e8 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 67d8: 106a lrw r3, 0x2000004c // 6800 + 67da: 32ee movi r2, 238 + 67dc: 9320 ld.w r1, (r3, 0x0) + 67de: 9160 ld.w r3, (r1, 0x0) + 67e0: 4368 lsli r3, r3, 8 + 67e2: 4b68 lsri r3, r3, 8 + 67e4: 4257 lsli r2, r2, 23 + 67e6: 07de br 0x67a2 // 67a2 + else if(UART_IO_G==2) + 67e8: 3942 cmpnei r1, 2 + 67ea: 0bba bt 0x675e // 675e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67ec: 1066 lrw r3, 0x20000048 // 6804 + 67ee: 32ff movi r2, 255 + 67f0: 9320 ld.w r1, (r3, 0x0) + 67f2: 4250 lsli r2, r2, 16 + 67f4: 9160 ld.w r3, (r1, 0x0) + 67f6: 68c9 andn r3, r2 + 67f8: 32cc movi r2, 204 + 67fa: 424f lsli r2, r2, 15 + 67fc: 07d3 br 0x67a2 // 67a2 + 67fe: 0000 bkpt + 6800: 2000004c .long 0x2000004c + 6804: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00006808 : +//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); + 6808: 1063 lrw r3, 0x8000f // 6814 + 680a: 6c8c or r2, r3 + 680c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 680e: b024 st.w r1, (r0, 0x10) +} + 6810: 783c jmp r15 + 6812: 0000 bkpt + 6814: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00006818 : +//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) +{ + 6818: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681a: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 681c: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 681e: 5b85 subu r4, r3, r1 + 6820: 6490 cmphs r4, r2 + 6822: 0c02 bf 0x6826 // 6826 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 6824: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 6826: 8380 ld.b r4, (r3, 0x0) + 6828: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 682a: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 682c: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 682e: 3c40 cmpnei r4, 0 + 6830: 0bfd bt 0x682a // 682a + 6832: 2300 addi r3, 1 + 6834: 07f5 br 0x681e // 681e + +Disassembly of section .text.EPT_Stop: + +00006838 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 6838: 1068 lrw r3, 0x20000020 // 6858 + 683a: 3280 movi r2, 128 + 683c: 9360 ld.w r3, (r3, 0x0) + 683e: 608c addu r2, r3 + 6840: 1027 lrw r1, 0xa55ac73a // 685c + 6842: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 6844: 9341 ld.w r2, (r3, 0x4) + 6846: 31fe movi r1, 254 + 6848: 6884 and r2, r1 + 684a: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 684c: 3101 movi r1, 1 + 684e: 9341 ld.w r2, (r3, 0x4) + 6850: 6884 and r2, r1 + 6852: 3a40 cmpnei r2, 0 + 6854: 0bfd bt 0x684e // 684e +} + 6856: 783c jmp r15 + 6858: 20000020 .long 0x20000020 + 685c: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00006860 : + 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) +{ + 6860: 14c4 push r4-r7 + 6862: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 6864: 1165 lrw r3, 0x20000060 // 68f8 + 6866: 1186 lrw r4, 0x5a5a5a5a // 68fc + 6868: 9360 ld.w r3, (r3, 0x0) + 686a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 686c: 3407 movi r4, 7 + 686e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6870: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 6872: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 6874: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 6876: 9384 ld.w r4, (r3, 0x10) + 6878: 3c40 cmpnei r4, 0 + 687a: 0bfe bt 0x6876 // 6876 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 687c: 2102 addi r1, 3 + 687e: 4922 lsri r1, r1, 2 + 6880: 4122 lsli r1, r1, 2 + 6882: 6048 addu r1, r2 + 6884: b820 st.w r1, (r14, 0x0) + 6886: 5829 subu r1, r0, r2 + 6888: b821 st.w r1, (r14, 0x4) + 688a: 9820 ld.w r1, (r14, 0x0) + 688c: 644a cmpne r2, r1 + 688e: 0826 bt 0x68da // 68da + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 6890: 3106 movi r1, 6 + SetUserKey; + 6892: 105b lrw r2, 0x5a5a5a5a // 68fc + 6894: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 6896: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6898: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 689a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 689c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 689e: 9324 ld.w r1, (r3, 0x10) + 68a0: 3940 cmpnei r1, 0 + 68a2: 0bfe bt 0x689e // 689e + //Perform pre-programming 4 + SetUserKey; + 68a4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68a6: 3201 movi r2, 1 + 68a8: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68aa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ac: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 68ae: 934a ld.w r2, (r3, 0x28) + 68b0: 3a44 cmpnei r2, 4 + 68b2: 0bfe bt 0x68ae // 68ae + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 68b4: 3102 movi r1, 2 + SetUserKey; + 68b6: 1052 lrw r2, 0x5a5a5a5a // 68fc + 68b8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 68ba: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 68bc: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 68be: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68c0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 68c2: 932a ld.w r1, (r3, 0x28) + 68c4: 3941 cmpnei r1, 1 + 68c6: 0bfe bt 0x68c2 // 68c2 + //Write page cache data to flash memory 6 + SetUserKey; + 68c8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68ca: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68cc: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68ce: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 68d0: 934a ld.w r2, (r3, 0x28) + 68d2: 3a42 cmpnei r2, 2 + 68d4: 0bfe bt 0x68d0 // 68d0 +} + 68d6: 1402 addi r14, r14, 8 + 68d8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 68da: 82e0 ld.b r7, (r2, 0x0) + 68dc: 8281 ld.b r4, (r2, 0x1) + 68de: 4488 lsli r4, r4, 8 + 68e0: 8222 ld.b r1, (r2, 0x2) + 68e2: 611c addu r4, r7 + 68e4: 82a3 ld.b r5, (r2, 0x3) + 68e6: 4130 lsli r1, r1, 16 + 68e8: 98c1 ld.w r6, (r14, 0x4) + 68ea: 6050 addu r1, r4 + 68ec: 45b8 lsli r5, r5, 24 + 68ee: 6188 addu r6, r2 + 68f0: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 68f2: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 68f4: 2203 addi r2, 4 + 68f6: 07ca br 0x688a // 688a + 68f8: 20000060 .long 0x20000060 + 68fc: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00006900 : +//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) +{ + 6900: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 690c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 690e: 3b40 cmpnei r3, 0 + 6910: 0c06 bf 0x691c // 691c + 6912: 6d0f mov r4, r3 + 6914: 6914 and r4, r5 + 6916: 3c40 cmpnei r4, 0 + 6918: 0802 bt 0x691c // 691c + RdStartAdd +=4; + 691a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 691c: 6d0f mov r4, r3 + 691e: 6914 and r4, r5 + 6920: 6100 addu r4, r0 + 6922: 8480 ld.b r4, (r4, 0x0) + 6924: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +0000692c
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 692c: 14d0 push r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 692e: e00000ab bsr 0x6a84 // 6a84 + + Dbg_Println(DBG_BIT_SYS_STATUS,"APP Run Start! 111 %s",Project_Boot_Support); + 6932: 102d lrw r1, 0xaf70 // 6964 + 6934: 3000 movi r0, 0 + 6936: 104d lrw r2, 0x2000009c // 6968 + 6938: e000087e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 693c: 102c lrw r1, 0xaf86 // 696c + 693e: 3000 movi r0, 0 + 6940: e000087a bsr 0x7a34 // 7a34 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 6944: e3fffba4 bsr 0x608c // 608c + + UART0_TASK(); + 6948: e00006da bsr 0x76fc // 76fc + + UART1_TASK(); + 694c: e000097a bsr 0x7c40 // 7c40 + + UART2_TASK(); + 6950: e00009be bsr 0x7ccc // 7ccc + + DIP_ScanTask(); + 6954: e0000a9e bsr 0x7e90 // 7e90 + + BLV_EngDetect_Tack(); + 6958: e0001804 bsr 0x9960 // 9960 + + BUS485Send_Task(); + 695c: e00008fc bsr 0x7b54 // 7b54 + 6960: 07f2 br 0x6944 // 6944 + 6962: 0000 bkpt + 6964: 0000af70 .long 0x0000af70 + 6968: 2000009c .long 0x2000009c + 696c: 0000af86 .long 0x0000af86 + +Disassembly of section .text.delay_nms: + +00006970 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 6970: 14d0 push r15 + 6972: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 6974: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 6976: 3300 movi r3, 0 + j = 50* t; + 6978: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 697a: b862 st.w r3, (r14, 0x8) + j = 50* t; + 697c: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 697e: b860 st.w r3, (r14, 0x0) + 6980: 9840 ld.w r2, (r14, 0x0) + 6982: 9861 ld.w r3, (r14, 0x4) + 6984: 64c8 cmphs r2, r3 + 6986: 0c03 bf 0x698c // 698c + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 6988: 1403 addi r14, r14, 12 + 698a: 1490 pop r15 + k++; + 698c: 9862 ld.w r3, (r14, 0x8) + 698e: 2300 addi r3, 1 + 6990: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 6992: e3fffb7d bsr 0x608c // 608c + for ( i = 0; i < j; i++ ) + 6996: 9860 ld.w r3, (r14, 0x0) + 6998: 2300 addi r3, 1 + 699a: 07f2 br 0x697e // 697e + +Disassembly of section .text.delay_nus: + +0000699c : +void delay_nus(unsigned int t) +{ + 699c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 699e: 3300 movi r3, 0 + 69a0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 69a2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 69a4: b860 st.w r3, (r14, 0x0) + 69a6: 9840 ld.w r2, (r14, 0x0) + 69a8: 9861 ld.w r3, (r14, 0x4) + 69aa: 64c8 cmphs r2, r3 + 69ac: 0c03 bf 0x69b2 // 69b2 + { + k++; + } +} + 69ae: 1403 addi r14, r14, 12 + 69b0: 783c jmp r15 + k++; + 69b2: 9862 ld.w r3, (r14, 0x8) + 69b4: 2300 addi r3, 1 + 69b6: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 69b8: 9860 ld.w r3, (r14, 0x0) + 69ba: 2300 addi r3, 1 + 69bc: 07f4 br 0x69a4 // 69a4 + +Disassembly of section .text.BT_CONFIG: + +000069c0 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 69c0: 14d2 push r4-r5, r15 + 69c2: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 69c4: 1095 lrw r4, 0x20000008 // 6a18 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69c6: 3500 movi r5, 0 + BT_DeInit(BT1); + 69c8: 9400 ld.w r0, (r4, 0x0) + 69ca: e3fffe0d bsr 0x65e4 // 65e4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69ce: 9400 ld.w r0, (r4, 0x0) + 69d0: b8a1 st.w r5, (r14, 0x4) + 69d2: b8a0 st.w r5, (r14, 0x0) + 69d4: 3308 movi r3, 8 + 69d6: 3200 movi r2, 0 + 69d8: 3101 movi r1, 1 + 69da: e3fffe1c bsr 0x6612 // 6612 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 69de: 3380 movi r3, 128 + 69e0: 4363 lsli r3, r3, 3 + 69e2: b861 st.w r3, (r14, 0x4) + 69e4: 9400 ld.w r0, (r4, 0x0) + 69e6: 3300 movi r3, 0 + 69e8: b8a3 st.w r5, (r14, 0xc) + 69ea: b8a2 st.w r5, (r14, 0x8) + 69ec: b8a0 st.w r5, (r14, 0x0) + 69ee: 3200 movi r2, 0 + 69f0: 3180 movi r1, 128 + 69f2: e3fffe1c bsr 0x662a // 662a + BT_Period_CMP_Write(BT1,4780,1); + 69f6: 3201 movi r2, 1 + 69f8: 1029 lrw r1, 0x12ac // 6a1c + 69fa: 9400 ld.w r0, (r4, 0x0) + 69fc: e3fffe2d bsr 0x6656 // 6656 + BT_Start(BT1); + 6a00: 9400 ld.w r0, (r4, 0x0) + 6a02: e3fffdff bsr 0x6600 // 6600 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 6a06: 9400 ld.w r0, (r4, 0x0) + 6a08: 3202 movi r2, 2 + 6a0a: 3101 movi r1, 1 + 6a0c: e3fffe28 bsr 0x665c // 665c + BT1_INT_ENABLE(); + 6a10: e3fffe30 bsr 0x6670 // 6670 + +} + 6a14: 1404 addi r14, r14, 16 + 6a16: 1492 pop r4-r5, r15 + 6a18: 20000008 .long 0x20000008 + 6a1c: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00006a20 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 6a20: 14d0 push r15 + 6a22: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 6a24: e3fffa80 bsr 0x5f24 // 5f24 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 6a28: 3101 movi r1, 1 + 6a2a: 3001 movi r0, 1 + 6a2c: e3fffaa2 bsr 0x5f70 // 5f70 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 6a30: 3000 movi r0, 0 + 6a32: e3fffafb bsr 0x6028 // 6028 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 6a36: 3180 movi r1, 128 + 6a38: 3308 movi r3, 8 + 6a3a: 3200 movi r2, 0 + 6a3c: 4121 lsli r1, r1, 1 + 6a3e: 3002 movi r0, 2 + 6a40: e3fffab0 bsr 0x5fa0 // 5fa0 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 6a44: 3080 movi r0, 128 + 6a46: 3118 movi r1, 24 + 6a48: 4002 lsli r0, r0, 2 + 6a4a: e3fffb2b bsr 0x60a0 // 60a0 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 6a4e: 3001 movi r0, 1 + 6a50: e3fffb00 bsr 0x6050 // 6050 + SYSCON_IWDCNT_Reload(); //reload WDT + 6a54: e3fffb1c bsr 0x608c // 608c + IWDT_Int_Enable(); + 6a58: e3fffb4e bsr 0x60f4 // 60f4 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 6a5c: 3340 movi r3, 64 + 6a5e: b860 st.w r3, (r14, 0x0) + 6a60: 31c0 movi r1, 192 + 6a62: 3380 movi r3, 128 + 6a64: 4364 lsli r3, r3, 4 + 6a66: 3200 movi r2, 0 + 6a68: 4123 lsli r1, r1, 3 + 6a6a: 3000 movi r0, 0 + 6a6c: e3fffb26 bsr 0x60b8 // 60b8 + LVD_Int_Enable(); + 6a70: e3fffb34 bsr 0x60d8 // 60d8 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 6a74: e3fffb92 bsr 0x6198 // 6198 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 6a78: 3000 movi r0, 0 + 6a7a: e0001f53 bsr 0xa920 // a920 + +} + 6a7e: 1401 addi r14, r14, 4 + 6a80: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00006a84 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 6a84: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a86: 1079 lrw r3, 0x2000005c // 6ae8 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a88: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a8a: 9340 ld.w r2, (r3, 0x0) + 6a8c: 1078 lrw r3, 0xfffffff // 6aec + 6a8e: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 6a90: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a92: 926c ld.w r3, (r2, 0x30) + 6a94: 68c4 and r3, r1 + 6a96: 3b40 cmpnei r3, 0 + 6a98: 0ffd bf 0x6a92 // 6a92 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 6a9a: e3ffffc3 bsr 0x6a20 // 6a20 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 6a9e: e000054b bsr 0x7534 // 7534 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 6aa2: e3fffb91 bsr 0x61c4 // 61c4 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART0_IRQ,1); + 6aa6: 3101 movi r1, 1 + 6aa8: 300d movi r0, 13 + 6aaa: e3fffb9f bsr 0x61e8 // 61e8 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 6aae: 3101 movi r1, 1 + 6ab0: 300e movi r0, 14 + 6ab2: e3fffb9b bsr 0x61e8 // 61e8 + + Set_INT_Priority(UART2_IRQ,1); + 6ab6: 3101 movi r1, 1 + 6ab8: 300f movi r0, 15 + 6aba: e3fffb97 bsr 0x61e8 // 61e8 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 6abe: e3fffbad bsr 0x6218 // 6218 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 6ac2: e3ffff7f bsr 0x69c0 // 69c0 + + UARTx_Init(UART_0,HLW8110_RecvData_Processing); + 6ac6: 102b lrw r1, 0x8f18 // 6af0 + 6ac8: 3000 movi r0, 0 + 6aca: e000053b bsr 0x7540 // 7540 + + UARTx_Init(UART_1,HLW_485Recv_Processing); + 6ace: 102a lrw r1, 0x9cc8 // 6af4 + 6ad0: 3001 movi r0, 1 + 6ad2: e0000537 bsr 0x7540 // 7540 + + UARTx_Init(UART_2,BT_Recv_Processing); + 6ad6: 1029 lrw r1, 0x9e28 // 6af8 + 6ad8: 3002 movi r0, 2 + 6ada: e0000533 bsr 0x7540 // 7540 + + Boot_Function_Init(); + 6ade: e0001a31 bsr 0x9f40 // 9f40 + + DIP_Switch_Init(); + 6ae2: e000098d bsr 0x7dfc // 7dfc +} + 6ae6: 1490 pop r15 + 6ae8: 2000005c .long 0x2000005c + 6aec: 0fffffff .long 0x0fffffff + 6af0: 00008f18 .long 0x00008f18 + 6af4: 00009cc8 .long 0x00009cc8 + 6af8: 00009e28 .long 0x00009e28 + +Disassembly of section .text.SYSCONIntHandler: + +00006afc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 6afc: 1460 nie + 6afe: 1462 ipush + // ISR content ... + nop; + 6b00: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 6b02: 117a lrw r3, 0x2000005c // 6be8 + 6b04: 3280 movi r2, 128 + 6b06: 9360 ld.w r3, (r3, 0x0) + 6b08: 60c8 addu r3, r2 + 6b0a: 9323 ld.w r1, (r3, 0xc) + 6b0c: 3001 movi r0, 1 + 6b0e: 6840 and r1, r0 + 6b10: 3940 cmpnei r1, 0 + 6b12: 0c04 bf 0x6b1a // 6b1a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 6b14: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 6b16: 1463 ipop + 6b18: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 6b1a: 9323 ld.w r1, (r3, 0xc) + 6b1c: 3002 movi r0, 2 + 6b1e: 6840 and r1, r0 + 6b20: 3940 cmpnei r1, 0 + 6b22: 0bf9 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 6b24: 9323 ld.w r1, (r3, 0xc) + 6b26: 3008 movi r0, 8 + 6b28: 6840 and r1, r0 + 6b2a: 3940 cmpnei r1, 0 + 6b2c: 0bf4 bt 0x6b14 // 6b14 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 6b2e: 9323 ld.w r1, (r3, 0xc) + 6b30: 3010 movi r0, 16 + 6b32: 6840 and r1, r0 + 6b34: 3940 cmpnei r1, 0 + 6b36: 0bef bt 0x6b14 // 6b14 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 6b38: 9323 ld.w r1, (r3, 0xc) + 6b3a: 6848 and r1, r2 + 6b3c: 3940 cmpnei r1, 0 + 6b3e: 0c03 bf 0x6b44 // 6b44 + SYSCON->ICR = CMD_ERR_ST; + 6b40: b341 st.w r2, (r3, 0x4) +} + 6b42: 07ea br 0x6b16 // 6b16 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 6b44: 3280 movi r2, 128 + 6b46: 9323 ld.w r1, (r3, 0xc) + 6b48: 4241 lsli r2, r2, 1 + 6b4a: 6848 and r1, r2 + 6b4c: 3940 cmpnei r1, 0 + 6b4e: 0bf9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 6b50: 3280 movi r2, 128 + 6b52: 9323 ld.w r1, (r3, 0xc) + 6b54: 4242 lsli r2, r2, 2 + 6b56: 6848 and r1, r2 + 6b58: 3940 cmpnei r1, 0 + 6b5a: 0bf3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 6b5c: 3280 movi r2, 128 + 6b5e: 9323 ld.w r1, (r3, 0xc) + 6b60: 4243 lsli r2, r2, 3 + 6b62: 6848 and r1, r2 + 6b64: 3940 cmpnei r1, 0 + 6b66: 0bed bt 0x6b40 // 6b40 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 6b68: 3280 movi r2, 128 + 6b6a: 9323 ld.w r1, (r3, 0xc) + 6b6c: 4244 lsli r2, r2, 4 + 6b6e: 6848 and r1, r2 + 6b70: 3940 cmpnei r1, 0 + 6b72: 0c03 bf 0x6b78 // 6b78 + nop; + 6b74: 6c03 mov r0, r0 + 6b76: 07e5 br 0x6b40 // 6b40 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 6b78: 3280 movi r2, 128 + 6b7a: 9323 ld.w r1, (r3, 0xc) + 6b7c: 4245 lsli r2, r2, 5 + 6b7e: 6848 and r1, r2 + 6b80: 3940 cmpnei r1, 0 + 6b82: 0bdf bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 6b84: 3280 movi r2, 128 + 6b86: 9323 ld.w r1, (r3, 0xc) + 6b88: 4246 lsli r2, r2, 6 + 6b8a: 6848 and r1, r2 + 6b8c: 3940 cmpnei r1, 0 + 6b8e: 0bd9 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 6b90: 3280 movi r2, 128 + 6b92: 9323 ld.w r1, (r3, 0xc) + 6b94: 4247 lsli r2, r2, 7 + 6b96: 6848 and r1, r2 + 6b98: 3940 cmpnei r1, 0 + 6b9a: 0bd3 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 6b9c: 3280 movi r2, 128 + 6b9e: 9323 ld.w r1, (r3, 0xc) + 6ba0: 424b lsli r2, r2, 11 + 6ba2: 6848 and r1, r2 + 6ba4: 3940 cmpnei r1, 0 + 6ba6: 0bcd bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 6ba8: 3280 movi r2, 128 + 6baa: 9323 ld.w r1, (r3, 0xc) + 6bac: 424c lsli r2, r2, 12 + 6bae: 6848 and r1, r2 + 6bb0: 3940 cmpnei r1, 0 + 6bb2: 0bc7 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 6bb4: 3280 movi r2, 128 + 6bb6: 9323 ld.w r1, (r3, 0xc) + 6bb8: 424d lsli r2, r2, 13 + 6bba: 6848 and r1, r2 + 6bbc: 3940 cmpnei r1, 0 + 6bbe: 0bc1 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 6bc0: 3280 movi r2, 128 + 6bc2: 9323 ld.w r1, (r3, 0xc) + 6bc4: 424e lsli r2, r2, 14 + 6bc6: 6848 and r1, r2 + 6bc8: 3940 cmpnei r1, 0 + 6bca: 0bbb bt 0x6b40 // 6b40 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 6bcc: 3280 movi r2, 128 + 6bce: 9323 ld.w r1, (r3, 0xc) + 6bd0: 424f lsli r2, r2, 15 + 6bd2: 6848 and r1, r2 + 6bd4: 3940 cmpnei r1, 0 + 6bd6: 0bb5 bt 0x6b40 // 6b40 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 6bd8: 3280 movi r2, 128 + 6bda: 9323 ld.w r1, (r3, 0xc) + 6bdc: 4256 lsli r2, r2, 22 + 6bde: 6848 and r1, r2 + 6be0: 3940 cmpnei r1, 0 + 6be2: 0baf bt 0x6b40 // 6b40 + 6be4: 0799 br 0x6b16 // 6b16 + 6be6: 0000 bkpt + 6be8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00006bec : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 6bec: 1460 nie + 6bee: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 6bf0: 1078 lrw r3, 0x20000060 // 6c50 + 6bf2: 3101 movi r1, 1 + 6bf4: 9360 ld.w r3, (r3, 0x0) + 6bf6: 934b ld.w r2, (r3, 0x2c) + 6bf8: 6884 and r2, r1 + 6bfa: 3a40 cmpnei r2, 0 + 6bfc: 0c04 bf 0x6c04 // 6c04 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 6bfe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 6c00: 1463 ipop + 6c02: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 6c04: 934b ld.w r2, (r3, 0x2c) + 6c06: 3102 movi r1, 2 + 6c08: 6884 and r2, r1 + 6c0a: 3a40 cmpnei r2, 0 + 6c0c: 0bf9 bt 0x6bfe // 6bfe + else if(IFC->MISR&PEP_END_INT) + 6c0e: 934b ld.w r2, (r3, 0x2c) + 6c10: 3104 movi r1, 4 + 6c12: 6884 and r2, r1 + 6c14: 3a40 cmpnei r2, 0 + 6c16: 0bf4 bt 0x6bfe // 6bfe + else if(IFC->MISR&PROT_ERR_INT) + 6c18: 3280 movi r2, 128 + 6c1a: 932b ld.w r1, (r3, 0x2c) + 6c1c: 4245 lsli r2, r2, 5 + 6c1e: 6848 and r1, r2 + 6c20: 3940 cmpnei r1, 0 + 6c22: 0c03 bf 0x6c28 // 6c28 + IFC->ICR=OVW_ERR_INT; + 6c24: b34c st.w r2, (r3, 0x30) +} + 6c26: 07ed br 0x6c00 // 6c00 + else if(IFC->MISR&UDEF_ERR_INT) + 6c28: 3280 movi r2, 128 + 6c2a: 932b ld.w r1, (r3, 0x2c) + 6c2c: 4246 lsli r2, r2, 6 + 6c2e: 6848 and r1, r2 + 6c30: 3940 cmpnei r1, 0 + 6c32: 0bf9 bt 0x6c24 // 6c24 + else if(IFC->MISR&ADDR_ERR_INT) + 6c34: 3280 movi r2, 128 + 6c36: 932b ld.w r1, (r3, 0x2c) + 6c38: 4247 lsli r2, r2, 7 + 6c3a: 6848 and r1, r2 + 6c3c: 3940 cmpnei r1, 0 + 6c3e: 0bf3 bt 0x6c24 // 6c24 + else if(IFC->MISR&OVW_ERR_INT) + 6c40: 3280 movi r2, 128 + 6c42: 932b ld.w r1, (r3, 0x2c) + 6c44: 4248 lsli r2, r2, 8 + 6c46: 6848 and r1, r2 + 6c48: 3940 cmpnei r1, 0 + 6c4a: 0bed bt 0x6c24 // 6c24 + 6c4c: 07da br 0x6c00 // 6c00 + 6c4e: 0000 bkpt + 6c50: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00006c54 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 6c54: 1460 nie + 6c56: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 6c58: 1078 lrw r3, 0x20000050 // 6cb8 + 6c5a: 3101 movi r1, 1 + 6c5c: 9360 ld.w r3, (r3, 0x0) + 6c5e: 9348 ld.w r2, (r3, 0x20) + 6c60: 6884 and r2, r1 + 6c62: 3a40 cmpnei r2, 0 + 6c64: 0c04 bf 0x6c6c // 6c6c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 6c66: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 6c68: 1463 ipop + 6c6a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 6c6c: 9348 ld.w r2, (r3, 0x20) + 6c6e: 3102 movi r1, 2 + 6c70: 6884 and r2, r1 + 6c72: 3a40 cmpnei r2, 0 + 6c74: 0bf9 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 6c76: 9348 ld.w r2, (r3, 0x20) + 6c78: 3104 movi r1, 4 + 6c7a: 6884 and r2, r1 + 6c7c: 3a40 cmpnei r2, 0 + 6c7e: 0bf4 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 6c80: 9348 ld.w r2, (r3, 0x20) + 6c82: 3110 movi r1, 16 + 6c84: 6884 and r2, r1 + 6c86: 3a40 cmpnei r2, 0 + 6c88: 0bef bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 6c8a: 9348 ld.w r2, (r3, 0x20) + 6c8c: 3120 movi r1, 32 + 6c8e: 6884 and r2, r1 + 6c90: 3a40 cmpnei r2, 0 + 6c92: 0bea bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 6c94: 9348 ld.w r2, (r3, 0x20) + 6c96: 3140 movi r1, 64 + 6c98: 6884 and r2, r1 + 6c9a: 3a40 cmpnei r2, 0 + 6c9c: 0be5 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 6c9e: 9348 ld.w r2, (r3, 0x20) + 6ca0: 3180 movi r1, 128 + 6ca2: 6884 and r2, r1 + 6ca4: 3a40 cmpnei r2, 0 + 6ca6: 0be0 bt 0x6c66 // 6c66 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 6ca8: 3280 movi r2, 128 + 6caa: 9328 ld.w r1, (r3, 0x20) + 6cac: 4249 lsli r2, r2, 9 + 6cae: 6848 and r1, r2 + 6cb0: 3940 cmpnei r1, 0 + 6cb2: 0fdb bf 0x6c68 // 6c68 + ADC0->CSR = ADC12_SEQ_END0; + 6cb4: b347 st.w r2, (r3, 0x1c) +} + 6cb6: 07d9 br 0x6c68 // 6c68 + 6cb8: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00006cbc : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 6cbc: 1460 nie + 6cbe: 1462 ipush + 6cc0: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 6cc2: 1387 lrw r4, 0x20000020 // 6e5c + 6cc4: 3280 movi r2, 128 + 6cc6: 9460 ld.w r3, (r4, 0x0) + 6cc8: 60c8 addu r3, r2 + 6cca: 9335 ld.w r1, (r3, 0x54) + 6ccc: 3001 movi r0, 1 + 6cce: 6840 and r1, r0 + 6cd0: 3940 cmpnei r1, 0 + 6cd2: 0c03 bf 0x6cd8 // 6cd8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 6cd4: b317 st.w r0, (r3, 0x5c) + 6cd6: 0424 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 6cd8: 9335 ld.w r1, (r3, 0x54) + 6cda: 3002 movi r0, 2 + 6cdc: 6840 and r1, r0 + 6cde: 3940 cmpnei r1, 0 + 6ce0: 0bfa bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 6ce2: 9335 ld.w r1, (r3, 0x54) + 6ce4: 3004 movi r0, 4 + 6ce6: 6840 and r1, r0 + 6ce8: 3940 cmpnei r1, 0 + 6cea: 0bf5 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 6cec: 9335 ld.w r1, (r3, 0x54) + 6cee: 3008 movi r0, 8 + 6cf0: 6840 and r1, r0 + 6cf2: 3940 cmpnei r1, 0 + 6cf4: 0bf0 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 6cf6: 9335 ld.w r1, (r3, 0x54) + 6cf8: 3010 movi r0, 16 + 6cfa: 6840 and r1, r0 + 6cfc: 3940 cmpnei r1, 0 + 6cfe: 0c1f bf 0x6d3c // 6d3c + EPT0->ICR=EPT_CAP_LD0; + 6d00: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 6d02: 3200 movi r2, 0 + 6d04: 3101 movi r1, 1 + 6d06: 3000 movi r0, 0 + 6d08: e3fffa04 bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 6d0c: 3201 movi r2, 1 + 6d0e: 3101 movi r1, 1 + 6d10: 3001 movi r0, 1 + 6d12: e3fff9ff bsr 0x6110 // 6110 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 6d16: 9460 ld.w r3, (r4, 0x0) + 6d18: 934b ld.w r2, (r3, 0x2c) + 6d1a: 1272 lrw r3, 0x20000210 // 6e60 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d1c: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 6d1e: 9460 ld.w r3, (r4, 0x0) + 6d20: 3280 movi r2, 128 + 6d22: 60c8 addu r3, r2 + 6d24: 932b ld.w r1, (r3, 0x2c) + 6d26: 3001 movi r0, 1 + 6d28: 6840 and r1, r0 + 6d2a: 3940 cmpnei r1, 0 + 6d2c: 0c61 bf 0x6dee // 6dee + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 6d2e: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 6d30: d9ee2001 ld.w r15, (r14, 0x4) + 6d34: 9880 ld.w r4, (r14, 0x0) + 6d36: 1402 addi r14, r14, 8 + 6d38: 1463 ipop + 6d3a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 6d3c: 9335 ld.w r1, (r3, 0x54) + 6d3e: 3020 movi r0, 32 + 6d40: 6840 and r1, r0 + 6d42: 3940 cmpnei r1, 0 + 6d44: 0c10 bf 0x6d64 // 6d64 + EPT0->ICR=EPT_CAP_LD1; + 6d46: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 6d48: 3200 movi r2, 0 + 6d4a: 3101 movi r1, 1 + 6d4c: 3001 movi r0, 1 + 6d4e: e3fff9e1 bsr 0x6110 // 6110 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 6d52: 3201 movi r2, 1 + 6d54: 3101 movi r1, 1 + 6d56: 3000 movi r0, 0 + 6d58: e3fff9dc bsr 0x6110 // 6110 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d5c: 9460 ld.w r3, (r4, 0x0) + 6d5e: 934c ld.w r2, (r3, 0x30) + 6d60: 1261 lrw r3, 0x2000020c // 6e64 + 6d62: 07dd br 0x6d1c // 6d1c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 6d64: 9335 ld.w r1, (r3, 0x54) + 6d66: 3040 movi r0, 64 + 6d68: 6840 and r1, r0 + 6d6a: 3940 cmpnei r1, 0 + 6d6c: 0bb4 bt 0x6cd4 // 6cd4 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 6d6e: 9335 ld.w r1, (r3, 0x54) + 6d70: 6848 and r1, r2 + 6d72: 3940 cmpnei r1, 0 + 6d74: 0c03 bf 0x6d7a // 6d7a + EPT0->ICR=EPT_CDD; + 6d76: b357 st.w r2, (r3, 0x5c) + 6d78: 07d3 br 0x6d1e // 6d1e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 6d7a: 3280 movi r2, 128 + 6d7c: 9335 ld.w r1, (r3, 0x54) + 6d7e: 4241 lsli r2, r2, 1 + 6d80: 6848 and r1, r2 + 6d82: 3940 cmpnei r1, 0 + 6d84: 0bf9 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 6d86: 3280 movi r2, 128 + 6d88: 9335 ld.w r1, (r3, 0x54) + 6d8a: 4242 lsli r2, r2, 2 + 6d8c: 6848 and r1, r2 + 6d8e: 3940 cmpnei r1, 0 + 6d90: 0bf3 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 6d92: 3280 movi r2, 128 + 6d94: 9335 ld.w r1, (r3, 0x54) + 6d96: 4243 lsli r2, r2, 3 + 6d98: 6848 and r1, r2 + 6d9a: 3940 cmpnei r1, 0 + 6d9c: 0bed bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 6d9e: 3280 movi r2, 128 + 6da0: 9335 ld.w r1, (r3, 0x54) + 6da2: 4244 lsli r2, r2, 4 + 6da4: 6848 and r1, r2 + 6da6: 3940 cmpnei r1, 0 + 6da8: 0be7 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 6daa: 3280 movi r2, 128 + 6dac: 9335 ld.w r1, (r3, 0x54) + 6dae: 4245 lsli r2, r2, 5 + 6db0: 6848 and r1, r2 + 6db2: 3940 cmpnei r1, 0 + 6db4: 0be1 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 6db6: 3280 movi r2, 128 + 6db8: 9335 ld.w r1, (r3, 0x54) + 6dba: 4246 lsli r2, r2, 6 + 6dbc: 6848 and r1, r2 + 6dbe: 3940 cmpnei r1, 0 + 6dc0: 0bdb bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 6dc2: 3280 movi r2, 128 + 6dc4: 9335 ld.w r1, (r3, 0x54) + 6dc6: 4247 lsli r2, r2, 7 + 6dc8: 6848 and r1, r2 + 6dca: 3940 cmpnei r1, 0 + 6dcc: 0bd5 bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 6dce: 3280 movi r2, 128 + 6dd0: 9335 ld.w r1, (r3, 0x54) + 6dd2: 4248 lsli r2, r2, 8 + 6dd4: 6848 and r1, r2 + 6dd6: 3940 cmpnei r1, 0 + 6dd8: 0bcf bt 0x6d76 // 6d76 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 6dda: 3280 movi r2, 128 + 6ddc: 9335 ld.w r1, (r3, 0x54) + 6dde: 4249 lsli r2, r2, 9 + 6de0: 6848 and r1, r2 + 6de2: 3940 cmpnei r1, 0 + 6de4: 0f9d bf 0x6d1e // 6d1e + EPT0->ICR=EPT_PEND; + 6de6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 6de8: e3fffd28 bsr 0x6838 // 6838 + 6dec: 0799 br 0x6d1e // 6d1e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 6dee: 932b ld.w r1, (r3, 0x2c) + 6df0: 3002 movi r0, 2 + 6df2: 6840 and r1, r0 + 6df4: 3940 cmpnei r1, 0 + 6df6: 0b9c bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 6df8: 932b ld.w r1, (r3, 0x2c) + 6dfa: 3004 movi r0, 4 + 6dfc: 6840 and r1, r0 + 6dfe: 3940 cmpnei r1, 0 + 6e00: 0b97 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 6e02: 932b ld.w r1, (r3, 0x2c) + 6e04: 3008 movi r0, 8 + 6e06: 6840 and r1, r0 + 6e08: 3940 cmpnei r1, 0 + 6e0a: 0b92 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 6e0c: 932b ld.w r1, (r3, 0x2c) + 6e0e: 3010 movi r0, 16 + 6e10: 6840 and r1, r0 + 6e12: 3940 cmpnei r1, 0 + 6e14: 0b8d bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 6e16: 932b ld.w r1, (r3, 0x2c) + 6e18: 3020 movi r0, 32 + 6e1a: 6840 and r1, r0 + 6e1c: 3940 cmpnei r1, 0 + 6e1e: 0b88 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 6e20: 932b ld.w r1, (r3, 0x2c) + 6e22: 3040 movi r0, 64 + 6e24: 6840 and r1, r0 + 6e26: 3940 cmpnei r1, 0 + 6e28: 0b83 bt 0x6d2e // 6d2e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 6e2a: 932b ld.w r1, (r3, 0x2c) + 6e2c: 6848 and r1, r2 + 6e2e: 3940 cmpnei r1, 0 + 6e30: 0c03 bf 0x6e36 // 6e36 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 6e32: b34d st.w r2, (r3, 0x34) +} + 6e34: 077e br 0x6d30 // 6d30 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 6e36: 3280 movi r2, 128 + 6e38: 932b ld.w r1, (r3, 0x2c) + 6e3a: 4241 lsli r2, r2, 1 + 6e3c: 6848 and r1, r2 + 6e3e: 3940 cmpnei r1, 0 + 6e40: 0bf9 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 6e42: 3280 movi r2, 128 + 6e44: 932b ld.w r1, (r3, 0x2c) + 6e46: 4242 lsli r2, r2, 2 + 6e48: 6848 and r1, r2 + 6e4a: 3940 cmpnei r1, 0 + 6e4c: 0bf3 bt 0x6e32 // 6e32 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 6e4e: 3280 movi r2, 128 + 6e50: 932b ld.w r1, (r3, 0x2c) + 6e52: 4243 lsli r2, r2, 3 + 6e54: 6848 and r1, r2 + 6e56: 3940 cmpnei r1, 0 + 6e58: 0bed bt 0x6e32 // 6e32 + 6e5a: 076b br 0x6d30 // 6d30 + 6e5c: 20000020 .long 0x20000020 + 6e60: 20000210 .long 0x20000210 + 6e64: 2000020c .long 0x2000020c + +Disassembly of section .text.WWDTHandler: + +00006e68 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 6e68: 1460 nie + 6e6a: 1462 ipush + 6e6c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 6e6e: 10ab lrw r5, 0x20000010 // 6e98 + 6e70: 3401 movi r4, 1 + 6e72: 9560 ld.w r3, (r5, 0x0) + 6e74: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 6e76: 30ff movi r0, 255 + 6e78: e3fffbae bsr 0x65d4 // 65d4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 6e7c: 9540 ld.w r2, (r5, 0x0) + 6e7e: 9263 ld.w r3, (r2, 0xc) + 6e80: 68d0 and r3, r4 + 6e82: 3b40 cmpnei r3, 0 + 6e84: 0c02 bf 0x6e88 // 6e88 + { + WWDT->ICR = WWDT_EVI; + 6e86: b285 st.w r4, (r2, 0x14) + } +} + 6e88: d9ee2002 ld.w r15, (r14, 0x8) + 6e8c: 98a1 ld.w r5, (r14, 0x4) + 6e8e: 9880 ld.w r4, (r14, 0x0) + 6e90: 1403 addi r14, r14, 12 + 6e92: 1463 ipop + 6e94: 1461 nir + 6e96: 0000 bkpt + 6e98: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00006e9c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 6e9c: 1460 nie + 6e9e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 6ea0: 107e lrw r3, 0x20000024 // 6f18 + 6ea2: 3101 movi r1, 1 + 6ea4: 9360 ld.w r3, (r3, 0x0) + 6ea6: 237f addi r3, 128 + 6ea8: 9355 ld.w r2, (r3, 0x54) + 6eaa: 6884 and r2, r1 + 6eac: 3a40 cmpnei r2, 0 + 6eae: 0c04 bf 0x6eb6 // 6eb6 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 6eb0: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 6eb2: 1463 ipop + 6eb4: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 6eb6: 9355 ld.w r2, (r3, 0x54) + 6eb8: 3102 movi r1, 2 + 6eba: 6884 and r2, r1 + 6ebc: 3a40 cmpnei r2, 0 + 6ebe: 0bf9 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 6ec0: 9355 ld.w r2, (r3, 0x54) + 6ec2: 3110 movi r1, 16 + 6ec4: 6884 and r2, r1 + 6ec6: 3a40 cmpnei r2, 0 + 6ec8: 0bf4 bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 6eca: 9355 ld.w r2, (r3, 0x54) + 6ecc: 3120 movi r1, 32 + 6ece: 6884 and r2, r1 + 6ed0: 3a40 cmpnei r2, 0 + 6ed2: 0bef bt 0x6eb0 // 6eb0 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 6ed4: 3280 movi r2, 128 + 6ed6: 9335 ld.w r1, (r3, 0x54) + 6ed8: 4241 lsli r2, r2, 1 + 6eda: 6848 and r1, r2 + 6edc: 3940 cmpnei r1, 0 + 6ede: 0c03 bf 0x6ee4 // 6ee4 + GPT0->ICR = GPT_INT_PEND; + 6ee0: b357 st.w r2, (r3, 0x5c) +} + 6ee2: 07e8 br 0x6eb2 // 6eb2 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 6ee4: 3280 movi r2, 128 + 6ee6: 9335 ld.w r1, (r3, 0x54) + 6ee8: 4242 lsli r2, r2, 2 + 6eea: 6848 and r1, r2 + 6eec: 3940 cmpnei r1, 0 + 6eee: 0bf9 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 6ef0: 3280 movi r2, 128 + 6ef2: 9335 ld.w r1, (r3, 0x54) + 6ef4: 4243 lsli r2, r2, 3 + 6ef6: 6848 and r1, r2 + 6ef8: 3940 cmpnei r1, 0 + 6efa: 0bf3 bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 6efc: 3280 movi r2, 128 + 6efe: 9335 ld.w r1, (r3, 0x54) + 6f00: 4244 lsli r2, r2, 4 + 6f02: 6848 and r1, r2 + 6f04: 3940 cmpnei r1, 0 + 6f06: 0bed bt 0x6ee0 // 6ee0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 6f08: 3280 movi r2, 128 + 6f0a: 9335 ld.w r1, (r3, 0x54) + 6f0c: 4249 lsli r2, r2, 9 + 6f0e: 6848 and r1, r2 + 6f10: 3940 cmpnei r1, 0 + 6f12: 0be7 bt 0x6ee0 // 6ee0 + 6f14: 07cf br 0x6eb2 // 6eb2 + 6f16: 0000 bkpt + 6f18: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00006f1c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 6f1c: 1460 nie + 6f1e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 6f20: 1079 lrw r3, 0x20000018 // 6f84 + 6f22: 3101 movi r1, 1 + 6f24: 9360 ld.w r3, (r3, 0x0) + 6f26: 934a ld.w r2, (r3, 0x28) + 6f28: 6884 and r2, r1 + 6f2a: 3a40 cmpnei r2, 0 + 6f2c: 0c14 bf 0x6f54 // 6f54 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 6f2e: 1057 lrw r2, 0xca53 // 6f88 + RTC->ICR=ALRA_INT; + 6f30: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 6f32: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 6f34: 9342 ld.w r2, (r3, 0x8) + 6f36: 6c84 or r2, r1 + 6f38: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 6f3a: 3280 movi r2, 128 + 6f3c: 424d lsli r2, r2, 13 + 6f3e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 6f40: 3102 movi r1, 2 + 6f42: 9342 ld.w r2, (r3, 0x8) + 6f44: 6884 and r2, r1 + 6f46: 3a40 cmpnei r2, 0 + 6f48: 0bfd bt 0x6f42 // 6f42 + RTC->CR &= ~0x1; + 6f4a: 9342 ld.w r2, (r3, 0x8) + 6f4c: 3a80 bclri r2, 0 + 6f4e: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 6f50: 1463 ipop + 6f52: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 6f54: 934a ld.w r2, (r3, 0x28) + 6f56: 3102 movi r1, 2 + 6f58: 6884 and r2, r1 + 6f5a: 3a40 cmpnei r2, 0 + 6f5c: 0c03 bf 0x6f62 // 6f62 + RTC->ICR=RTC_TRGEV1_INT; + 6f5e: b32b st.w r1, (r3, 0x2c) +} + 6f60: 07f8 br 0x6f50 // 6f50 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 6f62: 934a ld.w r2, (r3, 0x28) + 6f64: 3104 movi r1, 4 + 6f66: 6884 and r2, r1 + 6f68: 3a40 cmpnei r2, 0 + 6f6a: 0bfa bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 6f6c: 934a ld.w r2, (r3, 0x28) + 6f6e: 3108 movi r1, 8 + 6f70: 6884 and r2, r1 + 6f72: 3a40 cmpnei r2, 0 + 6f74: 0bf5 bt 0x6f5e // 6f5e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 6f76: 934a ld.w r2, (r3, 0x28) + 6f78: 3110 movi r1, 16 + 6f7a: 6884 and r2, r1 + 6f7c: 3a40 cmpnei r2, 0 + 6f7e: 0bf0 bt 0x6f5e // 6f5e + 6f80: 07e8 br 0x6f50 // 6f50 + 6f82: 0000 bkpt + 6f84: 20000018 .long 0x20000018 + 6f88: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00006f8c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 6f8c: 1460 nie + 6f8e: 1462 ipush + 6f90: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6f92: 1076 lrw r3, 0x20000040 // 6fe8 + 6f94: 3102 movi r1, 2 + 6f96: 9360 ld.w r3, (r3, 0x0) + 6f98: 9343 ld.w r2, (r3, 0xc) + 6f9a: 6884 and r2, r1 + 6f9c: 3a40 cmpnei r2, 0 + 6f9e: 0c0b bf 0x6fb4 // 6fb4 + { + UART0->ISR=UART_RX_INT_S; + 6fa0: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 6fa2: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 6fa4: 7400 zextb r0, r0 + 6fa6: e0000391 bsr 0x76c8 // 76c8 + } + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } +} + 6faa: d9ee2000 ld.w r15, (r14, 0x0) + 6fae: 1401 addi r14, r14, 4 + 6fb0: 1463 ipop + 6fb2: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 6fb4: 9343 ld.w r2, (r3, 0xc) + 6fb6: 3101 movi r1, 1 + 6fb8: 6884 and r2, r1 + 6fba: 3a40 cmpnei r2, 0 + 6fbc: 0c03 bf 0x6fc2 // 6fc2 + UART0->ISR=UART_TX_IOV_S; + 6fbe: b323 st.w r1, (r3, 0xc) + 6fc0: 07f5 br 0x6faa // 6faa + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 6fc2: 9343 ld.w r2, (r3, 0xc) + 6fc4: 3108 movi r1, 8 + 6fc6: 6884 and r2, r1 + 6fc8: 3a40 cmpnei r2, 0 + 6fca: 0bfa bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 6fcc: 9343 ld.w r2, (r3, 0xc) + 6fce: 3104 movi r1, 4 + 6fd0: 6884 and r2, r1 + 6fd2: 3a40 cmpnei r2, 0 + 6fd4: 0bf5 bt 0x6fbe // 6fbe + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 6fd6: 3280 movi r2, 128 + 6fd8: 9323 ld.w r1, (r3, 0xc) + 6fda: 424c lsli r2, r2, 12 + 6fdc: 6848 and r1, r2 + 6fde: 3940 cmpnei r1, 0 + 6fe0: 0fe5 bf 0x6faa // 6faa + UART0->ISR=UART_TX_DONE_S; + 6fe2: b343 st.w r2, (r3, 0xc) +} + 6fe4: 07e3 br 0x6faa // 6faa + 6fe6: 0000 bkpt + 6fe8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00006fec : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 6fec: 1460 nie + 6fee: 1462 ipush + 6ff0: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6ff2: 107f lrw r3, 0x2000003c // 706c + 6ff4: 3102 movi r1, 2 + 6ff6: 9360 ld.w r3, (r3, 0x0) + 6ff8: 9343 ld.w r2, (r3, 0xc) + 6ffa: 6884 and r2, r1 + 6ffc: 3a40 cmpnei r2, 0 + 6ffe: 0c0b bf 0x7014 // 7014 + { + UART1->ISR=UART_RX_INT_S; + 7000: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 7002: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 7004: 7400 zextb r0, r0 + 7006: e00003ab bsr 0x775c // 775c + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 700a: d9ee2000 ld.w r15, (r14, 0x0) + 700e: 1401 addi r14, r14, 4 + 7010: 1463 ipop + 7012: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 7014: 9323 ld.w r1, (r3, 0xc) + 7016: 3201 movi r2, 1 + 7018: 6848 and r1, r2 + 701a: 3940 cmpnei r1, 0 + 701c: 0c0d bf 0x7036 // 7036 + UART1->ISR=UART_TX_INT_S; + 701e: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 7020: 1074 lrw r3, 0x200000c8 // 7070 + 7022: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7024: 1074 lrw r3, 0x200000cc // 7074 + 7026: 9360 ld.w r3, (r3, 0x0) + 7028: 3b41 cmpnei r3, 1 + 702a: 0bf0 bt 0x700a // 700a + RS485_Comm_Start ++; + 702c: 1053 lrw r2, 0x200000d0 // 7078 + RS485_Comm_End ++; + 702e: 9260 ld.w r3, (r2, 0x0) + 7030: 2300 addi r3, 1 + 7032: b260 st.w r3, (r2, 0x0) +} + 7034: 07eb br 0x700a // 700a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 7036: 9343 ld.w r2, (r3, 0xc) + 7038: 3108 movi r1, 8 + 703a: 6884 and r2, r1 + 703c: 3a40 cmpnei r2, 0 + 703e: 0c03 bf 0x7044 // 7044 + UART1->ISR=UART_TX_IOV_S; + 7040: b323 st.w r1, (r3, 0xc) + 7042: 07e4 br 0x700a // 700a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 7044: 9343 ld.w r2, (r3, 0xc) + 7046: 3104 movi r1, 4 + 7048: 6884 and r2, r1 + 704a: 3a40 cmpnei r2, 0 + 704c: 0bfa bt 0x7040 // 7040 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 704e: 3180 movi r1, 128 + 7050: 9303 ld.w r0, (r3, 0xc) + 7052: 412c lsli r1, r1, 12 + 7054: 6804 and r0, r1 + 7056: 3840 cmpnei r0, 0 + 7058: 0fd9 bf 0x700a // 700a + UART1->ISR=UART_TX_DONE_S; + 705a: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 705c: 1065 lrw r3, 0x200000c8 // 7070 + 705e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7060: 1065 lrw r3, 0x200000cc // 7074 + 7062: 9360 ld.w r3, (r3, 0x0) + 7064: 3b41 cmpnei r3, 1 + 7066: 0bd2 bt 0x700a // 700a + RS485_Comm_End ++; + 7068: 1045 lrw r2, 0x200000d4 // 707c + 706a: 07e2 br 0x702e // 702e + 706c: 2000003c .long 0x2000003c + 7070: 200000c8 .long 0x200000c8 + 7074: 200000cc .long 0x200000cc + 7078: 200000d0 .long 0x200000d0 + 707c: 200000d4 .long 0x200000d4 + +Disassembly of section .text.UART2IntHandler: + +00007080 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 7080: 1460 nie + 7082: 1462 ipush + 7084: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 7086: 1076 lrw r3, 0x20000038 // 70dc + 7088: 3102 movi r1, 2 + 708a: 9360 ld.w r3, (r3, 0x0) + 708c: 9343 ld.w r2, (r3, 0xc) + 708e: 6884 and r2, r1 + 7090: 3a40 cmpnei r2, 0 + 7092: 0c0b bf 0x70a8 // 70a8 + { + UART2->ISR=UART_RX_INT_S; + 7094: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 7096: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 7098: 7400 zextb r0, r0 + 709a: e000037b bsr 0x7790 // 7790 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART2->ISR=UART_TX_DONE_S; + } + +} + 709e: d9ee2000 ld.w r15, (r14, 0x0) + 70a2: 1401 addi r14, r14, 4 + 70a4: 1463 ipop + 70a6: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 70a8: 9343 ld.w r2, (r3, 0xc) + 70aa: 3101 movi r1, 1 + 70ac: 6884 and r2, r1 + 70ae: 3a40 cmpnei r2, 0 + 70b0: 0c03 bf 0x70b6 // 70b6 + UART2->ISR=UART_TX_IOV_S; + 70b2: b323 st.w r1, (r3, 0xc) + 70b4: 07f5 br 0x709e // 709e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 70b6: 9343 ld.w r2, (r3, 0xc) + 70b8: 3108 movi r1, 8 + 70ba: 6884 and r2, r1 + 70bc: 3a40 cmpnei r2, 0 + 70be: 0bfa bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 70c0: 9343 ld.w r2, (r3, 0xc) + 70c2: 3104 movi r1, 4 + 70c4: 6884 and r2, r1 + 70c6: 3a40 cmpnei r2, 0 + 70c8: 0bf5 bt 0x70b2 // 70b2 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 70ca: 3280 movi r2, 128 + 70cc: 9323 ld.w r1, (r3, 0xc) + 70ce: 424c lsli r2, r2, 12 + 70d0: 6848 and r1, r2 + 70d2: 3940 cmpnei r1, 0 + 70d4: 0fe5 bf 0x709e // 709e + UART2->ISR=UART_TX_DONE_S; + 70d6: b343 st.w r2, (r3, 0xc) +} + 70d8: 07e3 br 0x709e // 709e + 70da: 0000 bkpt + 70dc: 20000038 .long 0x20000038 + +Disassembly of section .text.SPI0IntHandler: + +000070e0 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 70e0: 1460 nie + 70e2: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 70e4: 1178 lrw r3, 0x20000034 // 71c4 + 70e6: 3101 movi r1, 1 + 70e8: 9360 ld.w r3, (r3, 0x0) + 70ea: 9347 ld.w r2, (r3, 0x1c) + 70ec: 6884 and r2, r1 + 70ee: 3a40 cmpnei r2, 0 + 70f0: 0c03 bf 0x70f6 // 70f6 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 70f2: b328 st.w r1, (r3, 0x20) + } + +} + 70f4: 0407 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 70f6: 9347 ld.w r2, (r3, 0x1c) + 70f8: 3002 movi r0, 2 + 70fa: 6880 and r2, r0 + 70fc: 3a40 cmpnei r2, 0 + 70fe: 0c04 bf 0x7106 // 7106 + SPI0->ICR = SPI_RTIM; + 7100: b308 st.w r0, (r3, 0x20) +} + 7102: 1463 ipop + 7104: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 7106: 9347 ld.w r2, (r3, 0x1c) + 7108: 3004 movi r0, 4 + 710a: 6880 and r2, r0 + 710c: 3a40 cmpnei r2, 0 + 710e: 0c55 bf 0x71b8 // 71b8 + SPI0->ICR = SPI_RXIM; + 7110: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 7112: 9302 ld.w r0, (r3, 0x8) + 7114: 32aa movi r2, 170 + 7116: 6482 cmpne r0, r2 + 7118: 083e bt 0x7194 // 7194 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 711a: 3102 movi r1, 2 + 711c: 9343 ld.w r2, (r3, 0xc) + 711e: 6884 and r2, r1 + 7120: 3a40 cmpnei r2, 0 + 7122: 0ffd bf 0x711c // 711c + SPI0->DR = 0x11; + 7124: 3211 movi r2, 17 + 7126: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7128: 3110 movi r1, 16 + 712a: 9343 ld.w r2, (r3, 0xc) + 712c: 6884 and r2, r1 + 712e: 3a40 cmpnei r2, 0 + 7130: 0bfd bt 0x712a // 712a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7132: 3102 movi r1, 2 + 7134: 9343 ld.w r2, (r3, 0xc) + 7136: 6884 and r2, r1 + 7138: 3a40 cmpnei r2, 0 + 713a: 0ffd bf 0x7134 // 7134 + SPI0->DR = 0x12; + 713c: 3212 movi r2, 18 + 713e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7140: 3110 movi r1, 16 + 7142: 9343 ld.w r2, (r3, 0xc) + 7144: 6884 and r2, r1 + 7146: 3a40 cmpnei r2, 0 + 7148: 0bfd bt 0x7142 // 7142 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 714a: 3102 movi r1, 2 + 714c: 9343 ld.w r2, (r3, 0xc) + 714e: 6884 and r2, r1 + 7150: 3a40 cmpnei r2, 0 + 7152: 0ffd bf 0x714c // 714c + SPI0->DR = 0x13; + 7154: 3213 movi r2, 19 + 7156: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7158: 3110 movi r1, 16 + 715a: 9343 ld.w r2, (r3, 0xc) + 715c: 6884 and r2, r1 + 715e: 3a40 cmpnei r2, 0 + 7160: 0bfd bt 0x715a // 715a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7162: 3102 movi r1, 2 + 7164: 9343 ld.w r2, (r3, 0xc) + 7166: 6884 and r2, r1 + 7168: 3a40 cmpnei r2, 0 + 716a: 0ffd bf 0x7164 // 7164 + SPI0->DR = 0x14; + 716c: 3214 movi r2, 20 + 716e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7170: 3110 movi r1, 16 + 7172: 9343 ld.w r2, (r3, 0xc) + 7174: 6884 and r2, r1 + 7176: 3a40 cmpnei r2, 0 + 7178: 0bfd bt 0x7172 // 7172 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 717a: 3102 movi r1, 2 + 717c: 9343 ld.w r2, (r3, 0xc) + 717e: 6884 and r2, r1 + 7180: 3a40 cmpnei r2, 0 + 7182: 0ffd bf 0x717c // 717c + SPI0->DR = 0x15; + 7184: 3215 movi r2, 21 + 7186: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7188: 3110 movi r1, 16 + 718a: 9343 ld.w r2, (r3, 0xc) + 718c: 6884 and r2, r1 + 718e: 3a40 cmpnei r2, 0 + 7190: 0bfd bt 0x718a // 718a + 7192: 07b8 br 0x7102 // 7102 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 7194: 9343 ld.w r2, (r3, 0xc) + 7196: 6884 and r2, r1 + 7198: 3a40 cmpnei r2, 0 + 719a: 0bb4 bt 0x7102 // 7102 + SPI0->DR=0x0; //FIFO=0 + 719c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 719e: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 71a0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71a8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71aa: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 71ac: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 71ae: 9343 ld.w r2, (r3, 0xc) + 71b0: 6884 and r2, r1 + 71b2: 3a40 cmpnei r2, 0 + 71b4: 0bfd bt 0x71ae // 71ae + 71b6: 07a6 br 0x7102 // 7102 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 71b8: 9347 ld.w r2, (r3, 0x1c) + 71ba: 3108 movi r1, 8 + 71bc: 6884 and r2, r1 + 71be: 3a40 cmpnei r2, 0 + 71c0: 0b99 bt 0x70f2 // 70f2 + 71c2: 07a0 br 0x7102 // 7102 + 71c4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000071c8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 71c8: 1460 nie + 71ca: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 71cc: 1073 lrw r3, 0x2000002c // 7218 + 71ce: 3104 movi r1, 4 + 71d0: 9360 ld.w r3, (r3, 0x0) + 71d2: 9349 ld.w r2, (r3, 0x24) + 71d4: 6884 and r2, r1 + 71d6: 3a40 cmpnei r2, 0 + 71d8: 0c02 bf 0x71dc // 71dc + { + SIO0->ICR=0X04; + 71da: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 71dc: 9349 ld.w r2, (r3, 0x24) + 71de: 3101 movi r1, 1 + 71e0: 6884 and r2, r1 + 71e2: 3a40 cmpnei r2, 0 + 71e4: 0c02 bf 0x71e8 // 71e8 + { + SIO0->ICR=0X01; + 71e6: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 71e8: 9349 ld.w r2, (r3, 0x24) + 71ea: 3102 movi r1, 2 + 71ec: 6884 and r2, r1 + 71ee: 3a40 cmpnei r2, 0 + 71f0: 0c03 bf 0x71f6 // 71f6 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 71f2: b32b st.w r1, (r3, 0x2c) + } +} + 71f4: 0410 br 0x7214 // 7214 + else if(SIO0->MISR&0X08) //RXBUFFULL + 71f6: 9349 ld.w r2, (r3, 0x24) + 71f8: 3108 movi r1, 8 + 71fa: 6884 and r2, r1 + 71fc: 3a40 cmpnei r2, 0 + 71fe: 0bfa bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X010) //BREAK + 7200: 9349 ld.w r2, (r3, 0x24) + 7202: 3110 movi r1, 16 + 7204: 6884 and r2, r1 + 7206: 3a40 cmpnei r2, 0 + 7208: 0bf5 bt 0x71f2 // 71f2 + else if(SIO0->MISR&0X020) //TIMEOUT + 720a: 9349 ld.w r2, (r3, 0x24) + 720c: 3120 movi r1, 32 + 720e: 6884 and r2, r1 + 7210: 3a40 cmpnei r2, 0 + 7212: 0bf0 bt 0x71f2 // 71f2 +} + 7214: 1463 ipop + 7216: 1461 nir + 7218: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +0000721c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 721c: 1460 nie + 721e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 7220: 106a lrw r3, 0x2000005c // 7248 + 7222: 3101 movi r1, 1 + 7224: 9360 ld.w r3, (r3, 0x0) + 7226: 237f addi r3, 128 + 7228: 934c ld.w r2, (r3, 0x30) + 722a: 6884 and r2, r1 + 722c: 3a40 cmpnei r2, 0 + 722e: 0c04 bf 0x7236 // 7236 + { + SYSCON->EXICR = EXI_PIN0; + 7230: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 7232: 1463 ipop + 7234: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 7236: 3280 movi r2, 128 + 7238: 932c ld.w r1, (r3, 0x30) + 723a: 4249 lsli r2, r2, 9 + 723c: 6848 and r1, r2 + 723e: 3940 cmpnei r1, 0 + 7240: 0ff9 bf 0x7232 // 7232 + SYSCON->EXICR = EXI_PIN16; + 7242: b34b st.w r2, (r3, 0x2c) +} + 7244: 07f7 br 0x7232 // 7232 + 7246: 0000 bkpt + 7248: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +0000724c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 724c: 1460 nie + 724e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 7250: 106a lrw r3, 0x2000005c // 7278 + 7252: 3102 movi r1, 2 + 7254: 9360 ld.w r3, (r3, 0x0) + 7256: 237f addi r3, 128 + 7258: 934c ld.w r2, (r3, 0x30) + 725a: 6884 and r2, r1 + 725c: 3a40 cmpnei r2, 0 + 725e: 0c04 bf 0x7266 // 7266 + { + SYSCON->EXICR = EXI_PIN1; + 7260: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 7262: 1463 ipop + 7264: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 7266: 3280 movi r2, 128 + 7268: 932c ld.w r1, (r3, 0x30) + 726a: 424a lsli r2, r2, 10 + 726c: 6848 and r1, r2 + 726e: 3940 cmpnei r1, 0 + 7270: 0ff9 bf 0x7262 // 7262 + SYSCON->EXICR = EXI_PIN17; + 7272: b34b st.w r2, (r3, 0x2c) +} + 7274: 07f7 br 0x7262 // 7262 + 7276: 0000 bkpt + 7278: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +0000727c : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 727c: 1460 nie + 727e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 7280: 1070 lrw r3, 0x2000005c // 72c0 + 7282: 3104 movi r1, 4 + 7284: 9360 ld.w r3, (r3, 0x0) + 7286: 237f addi r3, 128 + 7288: 934c ld.w r2, (r3, 0x30) + 728a: 6884 and r2, r1 + 728c: 3a40 cmpnei r2, 0 + 728e: 0c04 bf 0x7296 // 7296 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 7290: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 7292: 1463 ipop + 7294: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 7296: 934c ld.w r2, (r3, 0x30) + 7298: 3108 movi r1, 8 + 729a: 6884 and r2, r1 + 729c: 3a40 cmpnei r2, 0 + 729e: 0bf9 bt 0x7290 // 7290 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 72a0: 3280 movi r2, 128 + 72a2: 932c ld.w r1, (r3, 0x30) + 72a4: 424b lsli r2, r2, 11 + 72a6: 6848 and r1, r2 + 72a8: 3940 cmpnei r1, 0 + 72aa: 0c03 bf 0x72b0 // 72b0 + SYSCON->EXICR = EXI_PIN19; + 72ac: b34b st.w r2, (r3, 0x2c) +} + 72ae: 07f2 br 0x7292 // 7292 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 72b0: 3280 movi r2, 128 + 72b2: 932c ld.w r1, (r3, 0x30) + 72b4: 424c lsli r2, r2, 12 + 72b6: 6848 and r1, r2 + 72b8: 3940 cmpnei r1, 0 + 72ba: 0bf9 bt 0x72ac // 72ac + 72bc: 07eb br 0x7292 // 7292 + 72be: 0000 bkpt + 72c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000072c4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 72c4: 1460 nie + 72c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 72c8: 1066 lrw r3, 0x2000005c // 72e0 + 72ca: 3110 movi r1, 16 + 72cc: 9360 ld.w r3, (r3, 0x0) + 72ce: 237f addi r3, 128 + 72d0: 934c ld.w r2, (r3, 0x30) + 72d2: 6884 and r2, r1 + 72d4: 3a40 cmpnei r2, 0 + 72d6: 0c02 bf 0x72da // 72da + { + SYSCON->EXICR = EXI_PIN4; + 72d8: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 72da: 1463 ipop + 72dc: 1461 nir + 72de: 0000 bkpt + 72e0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +000072e4 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 72e4: 1460 nie + 72e6: 1462 ipush + 72e8: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 72ea: 1079 lrw r3, 0x2000005c // 734c + 72ec: 3280 movi r2, 128 + 72ee: 9360 ld.w r3, (r3, 0x0) + 72f0: 237f addi r3, 128 + 72f2: 932c ld.w r1, (r3, 0x30) + 72f4: 4243 lsli r2, r2, 3 + 72f6: 6848 and r1, r2 + 72f8: 3940 cmpnei r1, 0 + 72fa: 0c07 bf 0x7308 // 7308 + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 72fc: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 72fe: d9ee2000 ld.w r15, (r14, 0x0) + 7302: 1401 addi r14, r14, 4 + 7304: 1463 ipop + 7306: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 7308: 3280 movi r2, 128 + 730a: 932c ld.w r1, (r3, 0x30) + 730c: 4244 lsli r2, r2, 4 + 730e: 6848 and r1, r2 + 7310: 3940 cmpnei r1, 0 + 7312: 0bf5 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 7314: 3280 movi r2, 128 + 7316: 932c ld.w r1, (r3, 0x30) + 7318: 4245 lsli r2, r2, 5 + 731a: 6848 and r1, r2 + 731c: 3940 cmpnei r1, 0 + 731e: 0bef bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 7320: 3280 movi r2, 128 + 7322: 932c ld.w r1, (r3, 0x30) + 7324: 4246 lsli r2, r2, 6 + 7326: 6848 and r1, r2 + 7328: 3940 cmpnei r1, 0 + 732a: 0be9 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 732c: 3280 movi r2, 128 + 732e: 932c ld.w r1, (r3, 0x30) + 7330: 4247 lsli r2, r2, 7 + 7332: 6848 and r1, r2 + 7334: 3940 cmpnei r1, 0 + 7336: 0be3 bt 0x72fc // 72fc + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 7338: 3280 movi r2, 128 + 733a: 932c ld.w r1, (r3, 0x30) + 733c: 4248 lsli r2, r2, 8 + 733e: 6848 and r1, r2 + 7340: 3940 cmpnei r1, 0 + 7342: 0fde bf 0x72fe // 72fe + SYSCON->EXICR = EXI_PIN15; + 7344: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 7346: e0000349 bsr 0x79d8 // 79d8 +} + 734a: 07da br 0x72fe // 72fe + 734c: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00007350 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 7350: 1460 nie + 7352: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 7354: 106b lrw r3, 0x20000014 // 7380 + 7356: 3101 movi r1, 1 + 7358: 9360 ld.w r3, (r3, 0x0) + 735a: 934e ld.w r2, (r3, 0x38) + 735c: 6884 and r2, r1 + 735e: 3a40 cmpnei r2, 0 + 7360: 0c03 bf 0x7366 // 7366 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 7362: b330 st.w r1, (r3, 0x40) + } +} + 7364: 040b br 0x737a // 737a + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 7366: 934e ld.w r2, (r3, 0x38) + 7368: 3102 movi r1, 2 + 736a: 6884 and r2, r1 + 736c: 3a40 cmpnei r2, 0 + 736e: 0bfa bt 0x7362 // 7362 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 7370: 934e ld.w r2, (r3, 0x38) + 7372: 3104 movi r1, 4 + 7374: 6884 and r2, r1 + 7376: 3a40 cmpnei r2, 0 + 7378: 0bf5 bt 0x7362 // 7362 +} + 737a: 1463 ipop + 737c: 1461 nir + 737e: 0000 bkpt + 7380: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00007384 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 7384: 1460 nie + 7386: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 7388: 1071 lrw r3, 0x2000000c // 73cc + 738a: 3101 movi r1, 1 + 738c: 9360 ld.w r3, (r3, 0x0) + 738e: 934c ld.w r2, (r3, 0x30) + 7390: 6884 and r2, r1 + 7392: 3a40 cmpnei r2, 0 + 7394: 0c0a bf 0x73a8 // 73a8 + { + BT0->ICR = BT_PEND; + 7396: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 7398: 9341 ld.w r2, (r3, 0x4) + 739a: 3a86 bclri r2, 6 + 739c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 739e: 9340 ld.w r2, (r3, 0x0) + 73a0: 3200 movi r2, 0 + 73a2: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 73a4: 1463 ipop + 73a6: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 73a8: 934c ld.w r2, (r3, 0x30) + 73aa: 3102 movi r1, 2 + 73ac: 6884 and r2, r1 + 73ae: 3a40 cmpnei r2, 0 + 73b0: 0c03 bf 0x73b6 // 73b6 + BT0->ICR = BT_EVTRG; + 73b2: b32d st.w r1, (r3, 0x34) +} + 73b4: 07f8 br 0x73a4 // 73a4 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 73b6: 934c ld.w r2, (r3, 0x30) + 73b8: 3104 movi r1, 4 + 73ba: 6884 and r2, r1 + 73bc: 3a40 cmpnei r2, 0 + 73be: 0bfa bt 0x73b2 // 73b2 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 73c0: 934c ld.w r2, (r3, 0x30) + 73c2: 3108 movi r1, 8 + 73c4: 6884 and r2, r1 + 73c6: 3a40 cmpnei r2, 0 + 73c8: 0bf5 bt 0x73b2 // 73b2 + 73ca: 07ed br 0x73a4 // 73a4 + 73cc: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000073d0 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 73d0: 1460 nie + 73d2: 1462 ipush + 73d4: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 73d6: 1079 lrw r3, 0x20000008 // 7438 + 73d8: 3101 movi r1, 1 + 73da: 9360 ld.w r3, (r3, 0x0) + 73dc: 934c ld.w r2, (r3, 0x30) + 73de: 6884 and r2, r1 + 73e0: 3a40 cmpnei r2, 0 + 73e2: 0c03 bf 0x73e8 // 73e8 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 73e4: b32d st.w r1, (r3, 0x34) + } +} + 73e6: 0418 br 0x7416 // 7416 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 73e8: 934c ld.w r2, (r3, 0x30) + 73ea: 3102 movi r1, 2 + 73ec: 6884 and r2, r1 + 73ee: 3a40 cmpnei r2, 0 + 73f0: 0c18 bf 0x7420 // 7420 + BT1->ICR = BT_CMP; + 73f2: b32d st.w r1, (r3, 0x34) + NUM++; + 73f4: 1072 lrw r3, 0x200000bc // 743c + 73f6: 8340 ld.b r2, (r3, 0x0) + 73f8: 2200 addi r2, 1 + 73fa: 7488 zextb r2, r2 + SysTick_100us++; + 73fc: 9321 ld.w r1, (r3, 0x4) + 73fe: 2100 addi r1, 1 + if(NUM >= 10){ + 7400: 3a09 cmphsi r2, 10 + NUM++; + 7402: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 7404: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 7406: 0c08 bf 0x7416 // 7416 + NUM = 0; + 7408: 3200 movi r2, 0 + 740a: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 740c: 9342 ld.w r2, (r3, 0x8) + 740e: 2200 addi r2, 1 + 7410: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 7412: e00002c3 bsr 0x7998 // 7998 +} + 7416: d9ee2000 ld.w r15, (r14, 0x0) + 741a: 1401 addi r14, r14, 4 + 741c: 1463 ipop + 741e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 7420: 934c ld.w r2, (r3, 0x30) + 7422: 3104 movi r1, 4 + 7424: 6884 and r2, r1 + 7426: 3a40 cmpnei r2, 0 + 7428: 0bde bt 0x73e4 // 73e4 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 742a: 934c ld.w r2, (r3, 0x30) + 742c: 3108 movi r1, 8 + 742e: 6884 and r2, r1 + 7430: 3a40 cmpnei r2, 0 + 7432: 0bd9 bt 0x73e4 // 73e4 + 7434: 07f1 br 0x7416 // 7416 + 7436: 0000 bkpt + 7438: 20000008 .long 0x20000008 + 743c: 200000bc .long 0x200000bc + +Disassembly of section .text.PriviledgeVioHandler: + +00007440 : + 7440: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00007442 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 7442: 1460 nie + 7444: 1462 ipush + // ISR content ... + +} + 7446: 1463 ipop + 7448: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000744a : + 744a: 1460 nie + 744c: 1462 ipush + 744e: 1463 ipop + 7450: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00007452 : + 7452: 1460 nie + 7454: 1462 ipush + 7456: 1463 ipop + 7458: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000745a : + 745a: 1460 nie + 745c: 1462 ipush + 745e: 1463 ipop + 7460: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00007462 : + 7462: 1460 nie + 7464: 1462 ipush + 7466: 1463 ipop + 7468: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000746a : + 746a: 1460 nie + 746c: 1462 ipush + 746e: 1463 ipop + 7470: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00007472 : + 7472: 1460 nie + 7474: 1462 ipush + 7476: 1463 ipop + 7478: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +0000747a : + 747a: 1460 nie + 747c: 1462 ipush + 747e: 1463 ipop + 7480: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00007482 : + 7482: 1460 nie + 7484: 1462 ipush + 7486: 1463 ipop + 7488: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +0000748a : + 748a: 1460 nie + 748c: 1462 ipush + 748e: 1463 ipop + 7490: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00007492 : + 7492: 1460 nie + 7494: 1462 ipush + 7496: 1463 ipop + 7498: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000749a : + 749a: 1460 nie + 749c: 1462 ipush + 749e: 1463 ipop + 74a0: 1461 nir + +Disassembly of section .text.__divsi3: + +000074a4 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 74a4: 14c1 push r4 + int PSR; + __asm volatile( + 74a6: c0006023 mfcr r3, cr<0, 0> + 74aa: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74ae: 1046 lrw r2, 0x20000000 // 74c4 <__divsi3+0x20> + 74b0: 3400 movi r4, 0 + 74b2: 9240 ld.w r2, (r2, 0x0) + 74b4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74b6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74b8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74ba: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74bc: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74c0: 9202 ld.w r0, (r2, 0x8) +} + 74c2: 1481 pop r4 + 74c4: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000074c8 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 74c8: 14c1 push r4 + int PSR; + __asm volatile( + 74ca: c0006023 mfcr r3, cr<0, 0> + 74ce: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 74d2: 1046 lrw r2, 0x20000000 // 74e8 <__udivsi3+0x20> + 74d4: 3401 movi r4, 1 + 74d6: 9240 ld.w r2, (r2, 0x0) + 74d8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74da: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74dc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74de: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74e0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74e4: 9202 ld.w r0, (r2, 0x8) +} + 74e6: 1481 pop r4 + 74e8: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +000074ec <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 74ec: 14c1 push r4 + int PSR; + __asm volatile( + 74ee: c0006023 mfcr r3, cr<0, 0> + 74f2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74f6: 1046 lrw r2, 0x20000000 // 750c <__modsi3+0x20> + 74f8: 3400 movi r4, 0 + 74fa: 9240 ld.w r2, (r2, 0x0) + 74fc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74fe: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7500: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7502: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7504: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 7508: 9203 ld.w r0, (r2, 0xc) +} + 750a: 1481 pop r4 + 750c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00007510 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 7510: 14c1 push r4 + int PSR; + __asm volatile( + 7512: c0006023 mfcr r3, cr<0, 0> + 7516: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 751a: 1046 lrw r2, 0x20000000 // 7530 <__umodsi3+0x20> + 751c: 3401 movi r4, 1 + 751e: 9240 ld.w r2, (r2, 0x0) + 7520: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 7522: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7524: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7526: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7528: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 752c: 9203 ld.w r0, (r2, 0xc) +} + 752e: 1481 pop r4 + 7530: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00007534 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 7534: c1807420 psrset ee, ie +} + 7538: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000753a : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 753a: c0807020 psrclr ie +} + 753e: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00007540 : +UART_t g_uart; +UART_t g_uart1; +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7540: 14d2 push r4-r5, r15 + switch((U8_T)uart_id){ + 7542: 7400 zextb r0, r0 + 7544: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7546: 6d47 mov r5, r1 + switch((U8_T)uart_id){ + 7548: 0c1f bf 0x7586 // 7586 + 754a: 3840 cmpnei r0, 0 + 754c: 0c04 bf 0x7554 // 7554 + 754e: 3842 cmpnei r0, 2 + 7550: 0c8c bf 0x7668 // 7668 + g_uart.RecvTimeout = Recv_9600_TimeOut; + g_uart.processing_cf = prt_cf; + + break; + } +} + 7552: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 7554: e3fff896 bsr 0x6680 // 6680 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 7558: 3100 movi r1, 0 + 755a: 3000 movi r0, 0 + 755c: e3fff8e0 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART0,5000,UART_PAR_EVEN); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 7560: 126d lrw r3, 0x20000040 // 7694 + 7562: 3280 movi r2, 128 + 7564: 9300 ld.w r0, (r3, 0x0) + 7566: 4243 lsli r2, r2, 3 + 7568: 122c lrw r1, 0x1388 // 7698 + 756a: e3fff94f bsr 0x6808 // 6808 + UART0_Int_Enable(); + 756e: e3fff8ad bsr 0x66c8 // 66c8 + memset(&g_uart0,0,sizeof(UART_t)); + 7572: 3294 movi r2, 148 + 7574: 3100 movi r1, 0 + 7576: 120a lrw r0, 0x200002d0 // 769c + 7578: e3ffe9f0 bsr 0x4958 // 4958 <__memset_fast> + g_uart0.RecvTimeout = Recv_9600_TimeOut; + 757c: 1269 lrw r3, 0x20000350 // 76a0 + g_uart.RecvTimeout = Recv_9600_TimeOut; + 757e: 3203 movi r2, 3 + 7580: b342 st.w r2, (r3, 0x8) + g_uart.processing_cf = prt_cf; + 7582: b3a4 st.w r5, (r3, 0x10) +} + 7584: 07e7 br 0x7552 // 7552 + memset(&m_send,0,sizeof(MULIT_t)); + 7586: 1288 lrw r4, 0x200003f8 // 76a4 + memset(&g_uart1,0,sizeof(UART_t)); + 7588: 3294 movi r2, 148 + 758a: 3100 movi r1, 0 + 758c: 1207 lrw r0, 0x20000364 // 76a8 + 758e: e3ffe9e5 bsr 0x4958 // 4958 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 7592: 3288 movi r2, 136 + 7594: 3100 movi r1, 0 + 7596: 6c13 mov r0, r4 + 7598: e3ffe9e0 bsr 0x4958 // 4958 <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 759c: 1264 lrw r3, 0x200003e4 // 76ac + 759e: 3203 movi r2, 3 + 75a0: b342 st.w r2, (r3, 0x8) + g_uart1.processing_cf = prt_cf; + 75a2: b3a4 st.w r5, (r3, 0x10) + m_send.HighBit_Flag = 0x01; + 75a4: 245f addi r4, 96 + m_send.BusState_Tick = SysTick_1ms; + 75a6: 1263 lrw r3, 0x200000c4 // 76b0 + GPIO_PullHigh_Init(GPIOA0,15); + 75a8: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 75aa: 9360 ld.w r3, (r3, 0x0) + 75ac: b467 st.w r3, (r4, 0x1c) + m_send.HighBit_Flag = 0x01; + 75ae: 3301 movi r3, 1 + 75b0: a465 st.b r3, (r4, 0x5) + GPIO_PullHigh_Init(GPIOA0,15); + 75b2: 1281 lrw r4, 0x2000004c // 76b4 + 75b4: 9400 ld.w r0, (r4, 0x0) + 75b6: e3fff6d3 bsr 0x635c // 635c + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 75ba: 320f movi r2, 15 + 75bc: 310f movi r1, 15 + 75be: 3000 movi r0, 0 + 75c0: e3fff6e0 bsr 0x6380 // 6380 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 75c4: 300f movi r0, 15 + 75c6: e3fff763 bsr 0x648c // 648c + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 75ca: 3180 movi r1, 128 + 75cc: 3201 movi r2, 1 + 75ce: 4128 lsli r1, r1, 8 + 75d0: 3001 movi r0, 1 + 75d2: e3fff59f bsr 0x6110 // 6110 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 75d6: 3180 movi r1, 128 + 75d8: 3200 movi r2, 0 + 75da: 4128 lsli r1, r1, 8 + 75dc: 3001 movi r0, 1 + 75de: e3fff599 bsr 0x6110 // 6110 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 75e2: 3180 movi r1, 128 + 75e4: 4128 lsli r1, r1, 8 + 75e6: 3001 movi r0, 1 + 75e8: e3fff5b4 bsr 0x6150 // 6150 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 75ec: 3180 movi r1, 128 + 75ee: 9400 ld.w r0, (r4, 0x0) + 75f0: 4128 lsli r1, r1, 8 + 75f2: e3fff5c9 bsr 0x6184 // 6184 + EXI4_Int_Enable(); + 75f6: e3fff5c9 bsr 0x6188 // 6188 + UART1_DeInit(); //clear all UART Register + 75fa: e3fff84f bsr 0x6698 // 6698 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 75fe: 3102 movi r1, 2 + 7600: 3001 movi r0, 1 + 7602: e3fff88d bsr 0x671c // 671c + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 7606: 116d lrw r3, 0x2000003c // 76b8 + 7608: 3200 movi r2, 0 + 760a: 9300 ld.w r0, (r3, 0x0) + 760c: 1123 lrw r1, 0x1388 // 7698 + 760e: e3fff8fd bsr 0x6808 // 6808 + UART1_Int_Enable(); + 7612: e3fff869 bsr 0x66e4 // 66e4 + GPIO_Init(GPIOA0,LED_HLW_PIN,Output); + 7616: 9400 ld.w r0, (r4, 0x0) + 7618: 3200 movi r2, 0 + 761a: 310b movi r1, 11 + 761c: e3fff630 bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_BUS_PIN,Output); + 7620: 9400 ld.w r0, (r4, 0x0) + 7622: 3200 movi r2, 0 + 7624: 310c movi r1, 12 + 7626: e3fff62b bsr 0x627c // 627c + GPIO_Init(GPIOA0,LED_STATUS_PIN,Output); + 762a: 3200 movi r2, 0 + 762c: 9400 ld.w r0, (r4, 0x0) + 762e: 310d movi r1, 13 + 7630: e3fff626 bsr 0x627c // 627c + HLW_LED_ON; + 7634: 9400 ld.w r0, (r4, 0x0) + 7636: 310b movi r1, 11 + 7638: e3fff7ac bsr 0x6590 // 6590 + BUS_LED_ON; + 763c: 9400 ld.w r0, (r4, 0x0) + 763e: 310c movi r1, 12 + 7640: e3fff7a8 bsr 0x6590 // 6590 + STATUS_LED_ON; + 7644: 9400 ld.w r0, (r4, 0x0) + 7646: 310d movi r1, 13 + 7648: e3fff7a4 bsr 0x6590 // 6590 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 764c: 3200 movi r2, 0 + 764e: 9400 ld.w r0, (r4, 0x0) + 7650: 3107 movi r1, 7 + 7652: e3fff615 bsr 0x627c // 627c + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 7656: 9400 ld.w r0, (r4, 0x0) + 7658: 3107 movi r1, 7 + 765a: e3fff68b bsr 0x6370 // 6370 + WRITE_LOW_DR; + 765e: 9400 ld.w r0, (r4, 0x0) + 7660: 3107 movi r1, 7 + 7662: e3fff797 bsr 0x6590 // 6590 + break; + 7666: 0776 br 0x7552 // 7552 + UART2_DeInit(); //clear all UART Register + 7668: e3fff824 bsr 0x66b0 // 66b0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 766c: 3102 movi r1, 2 + 766e: 3002 movi r0, 2 + 7670: e3fff856 bsr 0x671c // 671c + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled , + 7674: 1072 lrw r3, 0x20000038 // 76bc + 7676: 3200 movi r2, 0 + 7678: 9300 ld.w r0, (r3, 0x0) + 767a: 1028 lrw r1, 0x1388 // 7698 + 767c: e3fff8c6 bsr 0x6808 // 6808 + UART2_Int_Enable(); + 7680: e3fff840 bsr 0x6700 // 6700 + memset(&g_uart,0,sizeof(UART_t)); + 7684: 3294 movi r2, 148 + 7686: 3100 movi r1, 0 + 7688: 100e lrw r0, 0x2000023c // 76c0 + 768a: e3ffe967 bsr 0x4958 // 4958 <__memset_fast> + g_uart.RecvTimeout = Recv_9600_TimeOut; + 768e: 106e lrw r3, 0x200002bc // 76c4 + 7690: 0777 br 0x757e // 757e + 7692: 0000 bkpt + 7694: 20000040 .long 0x20000040 + 7698: 00001388 .long 0x00001388 + 769c: 200002d0 .long 0x200002d0 + 76a0: 20000350 .long 0x20000350 + 76a4: 200003f8 .long 0x200003f8 + 76a8: 20000364 .long 0x20000364 + 76ac: 200003e4 .long 0x200003e4 + 76b0: 200000c4 .long 0x200000c4 + 76b4: 2000004c .long 0x2000004c + 76b8: 2000003c .long 0x2000003c + 76bc: 20000038 .long 0x20000038 + 76c0: 2000023c .long 0x2000023c + 76c4: 200002bc .long 0x200002bc + +Disassembly of section .text.UART0_RecvINT_Processing: + +000076c8 : +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + if((g_uart0.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart0.RecvLen = 0; + 76c8: 106a lrw r3, 0x20000350 // 76f0 + 76ca: 8b22 ld.h r1, (r3, 0x4) + 76cc: 323e movi r2, 62 + 76ce: 6449 cmplt r2, r1 + 76d0: 0c03 bf 0x76d6 // 76d6 + 76d2: 3200 movi r2, 0 + 76d4: ab42 st.h r2, (r3, 0x4) + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + 76d6: 8b42 ld.h r2, (r3, 0x4) + 76d8: 5a22 addi r1, r2, 1 + 76da: ab22 st.h r1, (r3, 0x4) + 76dc: 1026 lrw r1, 0x200002d0 // 76f4 + 76de: 6084 addu r2, r1 + 76e0: a200 st.b r0, (r2, 0x0) + + g_uart0.RecvIdleTiming = SysTick_1ms; + 76e2: 1046 lrw r2, 0x200000c4 // 76f8 + 76e4: 9240 ld.w r2, (r2, 0x0) + 76e6: b343 st.w r2, (r3, 0xc) + g_uart0.Receiving = 0x01; + 76e8: 3201 movi r2, 1 + 76ea: a340 st.b r2, (r3, 0x0) +} + 76ec: 783c jmp r15 + 76ee: 0000 bkpt + 76f0: 20000350 .long 0x20000350 + 76f4: 200002d0 .long 0x200002d0 + 76f8: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART0_TASK: + +000076fc : + +void UART0_TASK(void){ + 76fc: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart0.Receiving == 0x01){ + 76fe: 1094 lrw r4, 0x20000350 // 774c + 7700: 8460 ld.b r3, (r4, 0x0) + 7702: 3b41 cmpnei r3, 1 + 7704: 0823 bt 0x774a // 774a + if(SysTick_1ms - g_uart0.RecvIdleTiming > g_uart0.RecvTimeout){ + 7706: 10b3 lrw r5, 0x200000c4 // 7750 + 7708: 9560 ld.w r3, (r5, 0x0) + 770a: 9443 ld.w r2, (r4, 0xc) + 770c: 60ca subu r3, r2 + 770e: 9442 ld.w r2, (r4, 0x8) + 7710: 64c8 cmphs r2, r3 + 7712: 081c bt 0x774a // 774a + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7714: e3fff548 bsr 0x61a4 // 61a4 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7718: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 771a: 8c42 ld.h r2, (r4, 0x4) + 771c: 102e lrw r1, 0x200002d0 // 7754 + 771e: 100f lrw r0, 0x20000310 // 7758 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7720: b463 st.w r3, (r4, 0xc) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 7722: e3ffe95f bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart0.DealLen = g_uart0.RecvLen; + 7726: 8c62 ld.h r3, (r4, 0x4) + 7728: ac61 st.h r3, (r4, 0x2) + g_uart0.RecvLen = 0; + 772a: 3300 movi r3, 0 + 772c: ac62 st.h r3, (r4, 0x4) + g_uart0.Receiving = 0; + 772e: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7730: e3fff534 bsr 0x6198 // 6198 + +#if DBG_LOG_EN + //Dbg_Println(DBG_BIT_SYS_STATUS, "UART0 revLen %d", g_uart0.DealLen); + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART0 buff",g_uart0.DealBuffer,g_uart0.DealLen); +#endif + if(g_uart0.processing_cf != NULL){ + 7734: 9464 ld.w r3, (r4, 0x10) + 7736: 3b40 cmpnei r3, 0 + 7738: 0c04 bf 0x7740 // 7740 + rev = g_uart0.processing_cf(g_uart0.DealBuffer,g_uart0.DealLen); + 773a: 8c21 ld.h r1, (r4, 0x2) + 773c: 1007 lrw r0, 0x20000310 // 7758 + 773e: 7bcd jsr r3 + } + + memset(g_uart0.DealBuffer,0,USART_BUFFER_SIZE); + 7740: 3240 movi r2, 64 + 7742: 3100 movi r1, 0 + 7744: 1005 lrw r0, 0x20000310 // 7758 + 7746: e3ffe909 bsr 0x4958 // 4958 <__memset_fast> + } + } +} + 774a: 1492 pop r4-r5, r15 + 774c: 20000350 .long 0x20000350 + 7750: 200000c4 .long 0x200000c4 + 7754: 200002d0 .long 0x200002d0 + 7758: 20000310 .long 0x20000310 + +Disassembly of section .text.UART1_RecvINT_Processing: + +0000775c : +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 775c: 106a lrw r3, 0x200003e4 // 7784 + 775e: 8b22 ld.h r1, (r3, 0x4) + 7760: 323e movi r2, 62 + 7762: 6449 cmplt r2, r1 + 7764: 0c03 bf 0x776a // 776a + 7766: 3200 movi r2, 0 + 7768: ab42 st.h r2, (r3, 0x4) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 776a: 8b42 ld.h r2, (r3, 0x4) + 776c: 5a22 addi r1, r2, 1 + 776e: ab22 st.h r1, (r3, 0x4) + 7770: 1026 lrw r1, 0x20000364 // 7788 + 7772: 6084 addu r2, r1 + 7774: a200 st.b r0, (r2, 0x0) + + g_uart1.RecvIdleTiming = SysTick_1ms; + 7776: 1046 lrw r2, 0x200000c4 // 778c + 7778: 9240 ld.w r2, (r2, 0x0) + 777a: b343 st.w r2, (r3, 0xc) + g_uart1.Receiving = 0x01; + 777c: 3201 movi r2, 1 + 777e: a340 st.b r2, (r3, 0x0) + +} + 7780: 783c jmp r15 + 7782: 0000 bkpt + 7784: 200003e4 .long 0x200003e4 + 7788: 20000364 .long 0x20000364 + 778c: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00007790 : +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 7790: 106a lrw r3, 0x200002bc // 77b8 + 7792: 8b22 ld.h r1, (r3, 0x4) + 7794: 323e movi r2, 62 + 7796: 6449 cmplt r2, r1 + 7798: 0c03 bf 0x779e // 779e + 779a: 3200 movi r2, 0 + 779c: ab42 st.h r2, (r3, 0x4) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 779e: 8b42 ld.h r2, (r3, 0x4) + 77a0: 5a22 addi r1, r2, 1 + 77a2: ab22 st.h r1, (r3, 0x4) + 77a4: 1026 lrw r1, 0x2000023c // 77bc + 77a6: 6084 addu r2, r1 + 77a8: a200 st.b r0, (r2, 0x0) + + g_uart.RecvIdleTiming = SysTick_1ms; + 77aa: 1046 lrw r2, 0x200000c4 // 77c0 + 77ac: 9240 ld.w r2, (r2, 0x0) + 77ae: b343 st.w r2, (r3, 0xc) + g_uart.Receiving = 0x01; + 77b0: 3201 movi r2, 1 + 77b2: a340 st.b r2, (r3, 0x0) +} + 77b4: 783c jmp r15 + 77b6: 0000 bkpt + 77b8: 200002bc .long 0x200002bc + 77bc: 2000023c .long 0x2000023c + 77c0: 200000c4 .long 0x200000c4 + +Disassembly of section .text.MCU485_SendData: + +000077c4 : + }while(Dataval == 0x00); //发送完成 + uart->ISR=UART_TX_DONE_S; +} + +volatile int RS485_Comm_Flag = 0,RS485_Comm_Start = 0,RS485_Comm_End = 0,RS485_Comming = 0; +void MCU485_SendData(U8_T *buff,U16_T len){ + 77c4: 14d4 push r4-r7, r15 + 77c6: 1421 subi r14, r14, 4 + 77c8: b800 st.w r0, (r14, 0x0) + 77ca: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 77cc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 77ce: 109f lrw r4, 0x200000c8 // 7848 + 77d0: 10df lrw r6, 0x2000004c // 784c + 77d2: 9460 ld.w r3, (r4, 0x0) + 77d4: 3b41 cmpnei r3, 1 + 77d6: 0c2d bf 0x7830 // 7830 + } + + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + } + + CK_CPU_DisAllNormalIrq(); + 77d8: e3fffeb1 bsr 0x753a // 753a + + WRITE_HIGH_DR; //GPIO_Write_High(GPIOA0,7); + 77dc: 3107 movi r1, 7 + 77de: 9600 ld.w r0, (r6, 0x0) + 77e0: e3fff6d4 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 77e4: 3301 movi r3, 1 + 77e6: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 77e8: 3300 movi r3, 0 + 77ea: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 77ec: b463 st.w r3, (r4, 0xc) + CK_CPU_EnAllNormalIrq(); + 77ee: e3fffea3 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 77f2: 1078 lrw r3, 0x2000003c // 7850 + 77f4: 6c9f mov r2, r7 + 77f6: 9300 ld.w r0, (r3, 0x0) + 77f8: 9820 ld.w r1, (r14, 0x0) + 77fa: e3fff80f bsr 0x6818 // 6818 + + do{ + delay_nus(100); + 77fe: 3064 movi r0, 100 + 7800: e3fff8ce bsr 0x699c // 699c + + delay_cnt ++; + 7804: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7806: 3363 movi r3, 99 + 7808: 654c cmphs r3, r5 + 780a: 0c07 bf 0x7818 // 7818 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 780c: 9462 ld.w r3, (r4, 0x8) + 780e: 65cd cmplt r3, r7 + 7810: 0bf7 bt 0x77fe // 77fe + 7812: 9463 ld.w r3, (r4, 0xc) + 7814: 65cd cmplt r3, r7 + 7816: 0bf4 bt 0x77fe // 77fe + + CK_CPU_DisAllNormalIrq(); + 7818: e3fffe91 bsr 0x753a // 753a + WRITE_LOW_DR; //GPIO_Write_Low(GPIOA0,7); + 781c: 9600 ld.w r0, (r6, 0x0) + 781e: 3107 movi r1, 7 + 7820: e3fff6b8 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 7824: 3300 movi r3, 0 + 7826: b461 st.w r3, (r4, 0x4) + CK_CPU_EnAllNormalIrq(); + 7828: e3fffe86 bsr 0x7534 // 7534 +} + 782c: 1401 addi r14, r14, 4 + 782e: 1494 pop r4-r7, r15 + delay_nus(100); + 7830: 3064 movi r0, 100 + 7832: e3fff8b5 bsr 0x699c // 699c + delay_cnt ++; + 7836: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7838: 3364 movi r3, 100 + 783a: 64d6 cmpne r5, r3 + 783c: 0fce bf 0x77d8 // 77d8 + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + 783e: 3107 movi r1, 7 + 7840: 9600 ld.w r0, (r6, 0x0) + 7842: e3fff6ab bsr 0x6598 // 6598 + 7846: 07c6 br 0x77d2 // 77d2 + 7848: 200000c8 .long 0x200000c8 + 784c: 2000004c .long 0x2000004c + 7850: 2000003c .long 0x2000003c + +Disassembly of section .text.BUS485_Send: + +00007854 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 7854: 14d4 push r4-r7, r15 + 7856: 1423 subi r14, r14, 12 + 7858: b802 st.w r0, (r14, 0x8) + 785a: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 785c: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 785e: 1189 lrw r4, 0x200000c8 // 7900 + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 7860: 11c9 lrw r6, 0x2000004c // 7904 + while(RS485_Comming == 0x01){ + 7862: 9460 ld.w r3, (r4, 0x0) + 7864: 3b41 cmpnei r3, 1 + 7866: 0c3e bf 0x78e2 // 78e2 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 7868: 1168 lrw r3, 0x20000458 // 7908 + 786a: 83c4 ld.b r6, (r3, 0x4) + 786c: 3e40 cmpnei r6, 0 + 786e: b861 st.w r3, (r14, 0x4) + 7870: 0845 bt 0x78fa // 78fa + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //485_DR + 7872: 11e5 lrw r7, 0x2000004c // 7904 + CK_CPU_DisAllNormalIrq(); + 7874: e3fffe63 bsr 0x753a // 753a + WRITE_HIGH_DR; //485_DR + 7878: 3107 movi r1, 7 + 787a: 9700 ld.w r0, (r7, 0x0) + 787c: e3fff686 bsr 0x6588 // 6588 + + RS485_Comm_Flag = 0x01; + 7880: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7882: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 7884: b441 st.w r2, (r4, 0x4) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 7886: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 7888: b4c2 st.w r6, (r4, 0x8) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 788a: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 788c: b4c3 st.w r6, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 788e: e3fffe53 bsr 0x7534 // 7534 + + UARTTransmit(UART1,buff,len); + 7892: 105f lrw r2, 0x2000003c // 790c + 7894: 9200 ld.w r0, (r2, 0x0) + 7896: 9822 ld.w r1, (r14, 0x8) + 7898: 9840 ld.w r2, (r14, 0x0) + 789a: e3fff7bf bsr 0x6818 // 6818 + do{ + delay_nus(100); + 789e: 3064 movi r0, 100 + 78a0: e3fff87e bsr 0x699c // 699c + delay_cnt ++; + 78a4: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78a6: 3363 movi r3, 99 + 78a8: 654c cmphs r3, r5 + 78aa: 0c08 bf 0x78ba // 78ba + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 78ac: 9462 ld.w r3, (r4, 0x8) + 78ae: 9840 ld.w r2, (r14, 0x0) + 78b0: 648d cmplt r3, r2 + 78b2: 0bf6 bt 0x789e // 789e + 78b4: 9463 ld.w r3, (r4, 0xc) + 78b6: 648d cmplt r3, r2 + 78b8: 0bf3 bt 0x789e // 789e + + CK_CPU_DisAllNormalIrq(); + 78ba: e3fffe40 bsr 0x753a // 753a + + WRITE_LOW_DR; //485_DR + 78be: 9700 ld.w r0, (r7, 0x0) + 78c0: 3107 movi r1, 7 + 78c2: e3fff667 bsr 0x6590 // 6590 + + RS485_Comm_Flag = 0x00; + 78c6: 3300 movi r3, 0 + 78c8: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 78ca: 1072 lrw r3, 0x200000c4 // 7910 + 78cc: 9340 ld.w r2, (r3, 0x0) + 78ce: 1072 lrw r3, 0x200003f8 // 7914 + 78d0: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 78d2: 9861 ld.w r3, (r14, 0x4) + 78d4: 3200 movi r2, 0 + 78d6: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 78d8: e3fffe2e bsr 0x7534 // 7534 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 78dc: 6c1b mov r0, r6 + 78de: 1403 addi r14, r14, 12 + 78e0: 1494 pop r4-r7, r15 + delay_nus(100); + 78e2: 3064 movi r0, 100 + 78e4: e3fff85c bsr 0x699c // 699c + delay_cnt ++; + 78e8: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 78ea: 3364 movi r3, 100 + 78ec: 64d6 cmpne r5, r3 + 78ee: 0fbd bf 0x7868 // 7868 + REVERISE_DR; //485_DR + 78f0: 3107 movi r1, 7 + 78f2: 9600 ld.w r0, (r6, 0x0) + 78f4: e3fff652 bsr 0x6598 // 6598 + 78f8: 07b5 br 0x7862 // 7862 + return UART_BUSBUSY; //发送失败 + 78fa: 3601 movi r6, 1 + 78fc: 07f0 br 0x78dc // 78dc + 78fe: 0000 bkpt + 7900: 200000c8 .long 0x200000c8 + 7904: 2000004c .long 0x2000004c + 7908: 20000458 .long 0x20000458 + 790c: 2000003c .long 0x2000003c + 7910: 200000c4 .long 0x200000c4 + 7914: 200003f8 .long 0x200003f8 + +Disassembly of section .text.Set_GroupSend: + +00007918 : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 7918: 14d4 push r4-r7, r15 + 791a: 1422 subi r14, r14, 8 + 791c: 6d8b mov r6, r2 + 791e: 9847 ld.w r2, (r14, 0x1c) + 7920: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7922: 5943 subi r2, r1, 1 +{ + 7924: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7926: 7489 zexth r2, r2 + 7928: 3163 movi r1, 99 + 792a: 6484 cmphs r1, r2 +{ + 792c: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 792e: 0c20 bf 0x796e // 796e + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 7930: 1091 lrw r4, 0x200003f8 // 7974 + 7932: 3264 movi r2, 100 + 7934: 3100 movi r1, 0 + 7936: 6c13 mov r0, r4 + 7938: b861 st.w r3, (r14, 0x4) + 793a: e3ffe80f bsr 0x4958 // 4958 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 793e: 6c97 mov r2, r5 + 7940: 6c13 mov r0, r4 + 7942: 6c5f mov r1, r7 + 7944: e3ffe84e bsr 0x49e0 // 49e0 <__memcpy_fast> + m_send.SendLen = sled; + 7948: 3240 movi r2, 64 + 794a: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 794c: 9861 ld.w r3, (r14, 0x4) + 794e: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 7950: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 7952: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7954: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 7956: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7958: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 795a: 3201 movi r2, 1 + 795c: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 795e: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 7960: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 7962: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 7964: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 7966: 247f addi r4, 128 + 7968: 1064 lrw r3, 0x200000c4 // 7978 + 796a: 9360 ld.w r3, (r3, 0x0) + 796c: b461 st.w r3, (r4, 0x4) +} + 796e: 1402 addi r14, r14, 8 + 7970: 1494 pop r4-r7, r15 + 7972: 0000 bkpt + 7974: 200003f8 .long 0x200003f8 + 7978: 200000c4 .long 0x200000c4 + +Disassembly of section .text.Clear_SendFlag: + +0000797c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 797c: 1063 lrw r3, 0x20000458 // 7988 + 797e: 3200 movi r2, 0 + 7980: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 7982: a347 st.b r2, (r3, 0x7) +} + 7984: 783c jmp r15 + 7986: 0000 bkpt + 7988: 20000458 .long 0x20000458 + +Disassembly of section .text.BUS485_Jump_Boot: + +0000798c : + +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 798c: 1062 lrw r3, 0x20000458 // 7994 + 798e: a30c st.b r0, (r3, 0xc) +} + 7990: 783c jmp r15 + 7992: 0000 bkpt + 7994: 20000458 .long 0x20000458 + +Disassembly of section .text.BusIdle_Task: + +00007998 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 7998: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 799a: 10ae lrw r5, 0x200003f8 // 79d0 + 799c: 3460 movi r4, 96 + 799e: 6114 addu r4, r5 + 79a0: 8464 ld.b r3, (r4, 0x4) + 79a2: 3b40 cmpnei r3, 0 + 79a4: 0c15 bf 0x79ce // 79ce + 79a6: 8466 ld.b r3, (r4, 0x6) + 79a8: 3b41 cmpnei r3, 1 + 79aa: 0c12 bf 0x79ce // 79ce + { + CK_CPU_DisAllNormalIrq(); + 79ac: e3fffdc7 bsr 0x753a // 753a + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 79b0: 8465 ld.b r3, (r4, 0x5) + 79b2: 3b41 cmpnei r3, 1 + 79b4: 080b bt 0x79ca // 79ca + 79b6: 1068 lrw r3, 0x200000c4 // 79d4 + 79b8: 9340 ld.w r2, (r3, 0x0) + 79ba: 957f ld.w r3, (r5, 0x7c) + 79bc: 608e subu r2, r3 + 79be: 957c ld.w r3, (r5, 0x70) + 79c0: 2305 addi r3, 6 + 79c2: 64c8 cmphs r2, r3 + 79c4: 0c03 bf 0x79ca // 79ca + { + m_send.BusState_Flag = UART_BUSIDLE; + 79c6: 3300 movi r3, 0 + 79c8: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 79ca: e3fffdb5 bsr 0x7534 // 7534 + } +} + 79ce: 1492 pop r4-r5, r15 + 79d0: 200003f8 .long 0x200003f8 + 79d4: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BusBusy_Task: + +000079d8 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 79d8: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 79da: 1094 lrw r4, 0x200003f8 // 7a28 + 79dc: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 79de: e3fffdae bsr 0x753a // 753a + m_send.BusState_Flag = UART_BUSBUSY; + 79e2: 6150 addu r5, r4 + 79e4: 3301 movi r3, 1 + 79e6: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79e8: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 79ea: 1071 lrw r3, 0x200000c4 // 7a2c + 79ec: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79ee: 9300 ld.w r0, (r3, 0x0) + 79f0: 3380 movi r3, 128 + 79f2: 60d0 addu r3, r4 + 79f4: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 79f6: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 79f8: 600e subu r0, r3 + 79fa: e3fffd8b bsr 0x7510 // 7510 <__umodsi3> + 79fe: b41c st.w r0, (r4, 0x70) + + if(READ_RX_LEVEL_STATE == 0x01){ + 7a00: 310f movi r1, 15 + 7a02: 108c lrw r4, 0x2000004c // 7a30 + 7a04: 9400 ld.w r0, (r4, 0x0) + 7a06: e3fff5d4 bsr 0x65ae // 65ae + 7a0a: 3841 cmpnei r0, 1 + 7a0c: 0806 bt 0x7a18 // 7a18 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 7a0e: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 7a10: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 7a12: e3fffd91 bsr 0x7534 // 7534 +} + 7a16: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 7a18: 9400 ld.w r0, (r4, 0x0) + 7a1a: 310f movi r1, 15 + 7a1c: e3fff5c9 bsr 0x65ae // 65ae + 7a20: 3840 cmpnei r0, 0 + 7a22: 0bf8 bt 0x7a12 // 7a12 + m_send.HighBit_Flag = 0x00; //低电平 + 7a24: 3300 movi r3, 0 + 7a26: 07f5 br 0x7a10 // 7a10 + 7a28: 200003f8 .long 0x200003f8 + 7a2c: 200000c4 .long 0x200000c4 + 7a30: 2000004c .long 0x2000004c + +Disassembly of section .text.Dbg_Println: + +00007a34 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 7a34: 1423 subi r14, r14, 12 + 7a36: b862 st.w r3, (r14, 0x8) + 7a38: b841 st.w r2, (r14, 0x4) + 7a3a: b820 st.w r1, (r14, 0x0) + 7a3c: 14d1 push r4, r15 + 7a3e: 1422 subi r14, r14, 8 + 7a40: 9864 ld.w r3, (r14, 0x10) + 7a42: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7a44: 3301 movi r3, 1 + 7a46: 1098 lrw r4, 0x200000c8 // 7aa4 + 7a48: 70c0 lsl r3, r0 + 7a4a: 9444 ld.w r2, (r4, 0x10) + 7a4c: 68c8 and r3, r2 + 7a4e: 3b40 cmpnei r3, 0 + 7a50: 0c24 bf 0x7a98 // 7a98 + SysTick_Now = SysTick_1ms; + 7a52: 1076 lrw r3, 0x200000c4 // 7aa8 + 7a54: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a56: 9446 ld.w r2, (r4, 0x18) + 7a58: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7a5a: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7a5c: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7a5e: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7a60: 3020 movi r0, 32 + 7a62: b840 st.w r2, (r14, 0x0) + 7a64: 3180 movi r1, 128 + 7a66: 1052 lrw r2, 0xaf9d // 7aac + 7a68: 6010 addu r0, r4 + 7a6a: e3ffe71b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7a6e: 7441 zexth r1, r0 + 7a70: 3020 movi r0, 32 + 7a72: 6010 addu r0, r4 + 7a74: e3fffea8 bsr 0x77c4 // 77c4 + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7a78: 3020 movi r0, 32 + 7a7a: 1b05 addi r3, r14, 20 + 7a7c: 9841 ld.w r2, (r14, 0x4) + 7a7e: 3180 movi r1, 128 + 7a80: 6010 addu r0, r4 + 7a82: e3ffe73e bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 7a86: 7441 zexth r1, r0 + 7a88: 6c13 mov r0, r4 + 7a8a: 201f addi r0, 32 + 7a8c: e3fffe9c bsr 0x77c4 // 77c4 + + DBG_Printf("\r\n",2); + 7a90: 3102 movi r1, 2 + 7a92: 1008 lrw r0, 0xafab // 7ab0 + 7a94: e3fffe98 bsr 0x77c4 // 77c4 + + + } + +#endif +} + 7a98: 1402 addi r14, r14, 8 + 7a9a: d9ee2001 ld.w r15, (r14, 0x4) + 7a9e: 9880 ld.w r4, (r14, 0x0) + 7aa0: 1405 addi r14, r14, 20 + 7aa2: 783c jmp r15 + 7aa4: 200000c8 .long 0x200000c8 + 7aa8: 200000c4 .long 0x200000c4 + 7aac: 0000af9d .long 0x0000af9d + 7ab0: 0000afab .long 0x0000afab + +Disassembly of section .text.MultSend_Task: + +00007ab4 : +{ + 7ab4: 14d4 push r4-r7, r15 + 7ab6: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ab8: 5963 subi r3, r1, 1 + 7aba: 74cd zexth r3, r3 + 7abc: 3463 movi r4, 99 + 7abe: 64d0 cmphs r4, r3 +{ + 7ac0: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7ac2: 0c3c bf 0x7b3a // 7b3a + if(DatSd == 0x01) + 7ac4: 3a41 cmpnei r2, 1 + 7ac6: 0c05 bf 0x7ad0 // 7ad0 + return BUSSEND_WAIT;//等待 + 7ac8: 3601 movi r6, 1 +} + 7aca: 6c1b mov r0, r6 + 7acc: 1401 addi r14, r14, 4 + 7ace: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 7ad0: 107c lrw r3, 0x200003f8 // 7b40 + 7ad2: 3760 movi r7, 96 + 7ad4: 61cc addu r7, r3 + 7ad6: 8748 ld.b r2, (r7, 0x8) + 7ad8: 878a ld.b r4, (r7, 0xa) + 7ada: 6508 cmphs r2, r4 + 7adc: 0829 bt 0x7b2e // 7b2e + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 7ade: 3480 movi r4, 128 + 7ae0: 10b9 lrw r5, 0x200000c4 // 7b44 + 7ae2: 610c addu r4, r3 + 7ae4: 9401 ld.w r0, (r4, 0x4) + 7ae6: 95c0 ld.w r6, (r5, 0x0) + 7ae8: 6182 subu r6, r0 + 7aea: 931e ld.w r0, (r3, 0x78) + 7aec: 6418 cmphs r6, r0 + 7aee: 081a bt 0x7b22 // 7b22 + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 7af0: 3a40 cmpnei r2, 0 + 7af2: 0c07 bf 0x7b00 // 7b00 + 7af4: 9540 ld.w r2, (r5, 0x0) + 7af6: 94c0 ld.w r6, (r4, 0x0) + 7af8: 609a subu r2, r6 + 7afa: 937d ld.w r3, (r3, 0x74) + 7afc: 64c8 cmphs r2, r3 + 7afe: 0fe5 bf 0x7ac8 // 7ac8 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 7b00: 9800 ld.w r0, (r14, 0x0) + 7b02: e3fffea9 bsr 0x7854 // 7854 + 7b06: 3840 cmpnei r0, 0 + 7b08: 6d83 mov r6, r0 + 7b0a: 0bdf bt 0x7ac8 // 7ac8 + m_send.ResendCnt++; + 7b0c: 8748 ld.b r2, (r7, 0x8) + 7b0e: 2200 addi r2, 1 + m_send.ASend_Tick = SysTick_1ms; + 7b10: 9560 ld.w r3, (r5, 0x0) + m_send.ResendCnt++; + 7b12: 7488 zextb r2, r2 + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b14: 102d lrw r1, 0xafae // 7b48 + 7b16: 3002 movi r0, 2 + m_send.ASend_Tick = SysTick_1ms; + 7b18: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 7b1a: a748 st.b r2, (r7, 0x8) + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 7b1c: e3ffff8c bsr 0x7a34 // 7a34 + 7b20: 07d5 br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"data end"); + 7b22: 102b lrw r1, 0xafc1 // 7b4c + 7b24: 3002 movi r0, 2 + 7b26: e3ffff87 bsr 0x7a34 // 7a34 + return DATA_END;//数据有效期结束 + 7b2a: 3602 movi r6, 2 + 7b2c: 07cf br 0x7aca // 7aca + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + 7b2e: 1029 lrw r1, 0xafca // 7b50 + 7b30: 3002 movi r0, 2 + 7b32: e3ffff81 bsr 0x7a34 // 7a34 + return RETRY_END;//没有重发次数 + 7b36: 3603 movi r6, 3 + 7b38: 07c9 br 0x7aca // 7aca + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7b3a: 3604 movi r6, 4 + 7b3c: 07c7 br 0x7aca // 7aca + 7b3e: 0000 bkpt + 7b40: 200003f8 .long 0x200003f8 + 7b44: 200000c4 .long 0x200000c4 + 7b48: 0000afae .long 0x0000afae + 7b4c: 0000afc1 .long 0x0000afc1 + 7b50: 0000afca .long 0x0000afca + +Disassembly of section .text.BUS485Send_Task: + +00007b54 : +{ + 7b54: 14d1 push r4, r15 + if(m_send.ASend_Flag == 0x01) + 7b56: 1093 lrw r4, 0x20000458 // 7ba0 + 7b58: 8469 ld.b r3, (r4, 0x9) + 7b5a: 3b41 cmpnei r3, 1 + 7b5c: 0821 bt 0x7b9e // 7b9e + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 7b5e: 1072 lrw r3, 0x20000438 // 7ba4 + 7b60: 8b37 ld.h r1, (r3, 0x2e) + 7b62: 3201 movi r2, 1 + 7b64: 1011 lrw r0, 0x200003f8 // 7ba8 + 7b66: e3ffffa7 bsr 0x7ab4 // 7ab4 + 7b6a: a407 st.b r0, (r4, 0x7) + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 7b6c: 2801 subi r0, 2 + 7b6e: 7400 zextb r0, r0 + 7b70: 3801 cmphsi r0, 2 + 7b72: 0816 bt 0x7b9e // 7b9e + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + 7b74: 102e lrw r1, 0xafd7 // 7bac + 7b76: 3002 movi r0, 2 + 7b78: e3ffff5e bsr 0x7a34 // 7a34 + m_send.ASend_Flag = 0x00; //清除发送标志位 + 7b7c: 3300 movi r3, 0 + 7b7e: a469 st.b r3, (r4, 0x9) + if(m_send.Jump_Flag == 0x01){ + 7b80: 846c ld.b r3, (r4, 0xc) + 7b82: 3b41 cmpnei r3, 1 + 7b84: 080d bt 0x7b9e // 7b9e + Dbg_Println(DBG_BIT_Debug_STATUS,"Jump Boot"); + 7b86: 102b lrw r1, 0xafe0 // 7bb0 + 7b88: 3002 movi r0, 2 + 7b8a: e3ffff55 bsr 0x7a34 // 7a34 + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 7b8e: 106a lrw r3, 0x2000005c // 7bb4 + 7b90: 104a lrw r2, 0x200006f0 // 7bb8 + 7b92: 9360 ld.w r3, (r3, 0x0) + 7b94: 924d ld.w r2, (r2, 0x34) + 7b96: 23ff addi r3, 256 + 7b98: b343 st.w r2, (r3, 0xc) + SYSCON_Software_Reset(); + 7b9a: e3fff30b bsr 0x61b0 // 61b0 +} + 7b9e: 1491 pop r4, r15 + 7ba0: 20000458 .long 0x20000458 + 7ba4: 20000438 .long 0x20000438 + 7ba8: 200003f8 .long 0x200003f8 + 7bac: 0000afd7 .long 0x0000afd7 + 7bb0: 0000afe0 .long 0x0000afe0 + 7bb4: 2000005c .long 0x2000005c + 7bb8: 200006f0 .long 0x200006f0 + +Disassembly of section .text.Dbg_Print_Buff: + +00007bbc : + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bbc: 14d4 push r4-r7, r15 + 7bbe: 1422 subi r14, r14, 8 + 7bc0: 6dcf mov r7, r3 +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bc2: 109b lrw r4, 0x200000c8 // 7c2c + 7bc4: 3301 movi r3, 1 +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7bc6: 6d8b mov r6, r2 + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bc8: 70c0 lsl r3, r0 + 7bca: 9444 ld.w r2, (r4, 0x10) + 7bcc: 68c8 and r3, r2 + 7bce: 3b40 cmpnei r3, 0 + 7bd0: 0c1f bf 0x7c0e // 7c0e + SysTick_Now = SysTick_1ms; + 7bd2: 1078 lrw r3, 0x200000c4 // 7c30 + 7bd4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bd6: 9446 ld.w r2, (r4, 0x18) + 7bd8: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7bda: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bdc: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7bde: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7be0: 3020 movi r0, 32 + 7be2: b840 st.w r2, (r14, 0x0) + 7be4: 3180 movi r1, 128 + 7be6: 1054 lrw r2, 0xaf9d // 7c34 + 7be8: 6010 addu r0, r4 + 7bea: e3ffe65b bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7bee: 7441 zexth r1, r0 + 7bf0: 3020 movi r0, 32 + 7bf2: 6010 addu r0, r4 + 7bf4: e3fffde8 bsr 0x77c4 // 77c4 + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7bf8: 1070 lrw r3, 0xafea // 7c38 + DBG_Printf(Dbg_Buffer,str_offset); + 7bfa: 6d5b mov r5, r6 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7bfc: b861 st.w r3, (r14, 0x4) + 7bfe: 241f addi r4, 32 + for (uint32_t i = 0; i < len; i++) { + 7c00: 5d79 subu r3, r5, r6 + 7c02: 65cc cmphs r3, r7 + 7c04: 0c07 bf 0x7c12 // 7c12 + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + 7c06: 3102 movi r1, 2 + 7c08: 100d lrw r0, 0xafab // 7c3c + 7c0a: e3fffddd bsr 0x77c4 // 77c4 + } + +#endif +} + 7c0e: 1402 addi r14, r14, 8 + 7c10: 1494 pop r4-r7, r15 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7c12: 8560 ld.b r3, (r5, 0x0) + 7c14: 9841 ld.w r2, (r14, 0x4) + 7c16: 3180 movi r1, 128 + 7c18: 6c13 mov r0, r4 + 7c1a: e3ffe643 bsr 0x48a0 // 48a0 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7c1e: 7441 zexth r1, r0 + 7c20: 6c13 mov r0, r4 + 7c22: e3fffdd1 bsr 0x77c4 // 77c4 + 7c26: 2500 addi r5, 1 + 7c28: 07ec br 0x7c00 // 7c00 + 7c2a: 0000 bkpt + 7c2c: 200000c8 .long 0x200000c8 + 7c30: 200000c4 .long 0x200000c4 + 7c34: 0000af9d .long 0x0000af9d + 7c38: 0000afea .long 0x0000afea + 7c3c: 0000afab .long 0x0000afab + +Disassembly of section .text.UART1_TASK: + +00007c40 : +void UART1_TASK(void){ + 7c40: 14d2 push r4-r5, r15 + if(g_uart1.Receiving == 0x01){ + 7c42: 109d lrw r4, 0x200003e4 // 7cb4 + 7c44: 8460 ld.b r3, (r4, 0x0) + 7c46: 3b41 cmpnei r3, 1 + 7c48: 082f bt 0x7ca6 // 7ca6 + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + 7c4a: 10bc lrw r5, 0x200000c4 // 7cb8 + 7c4c: 9560 ld.w r3, (r5, 0x0) + 7c4e: 9443 ld.w r2, (r4, 0xc) + 7c50: 60ca subu r3, r2 + 7c52: 9442 ld.w r2, (r4, 0x8) + 7c54: 64c8 cmphs r2, r3 + 7c56: 0828 bt 0x7ca6 // 7ca6 + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7c58: e3fff2a6 bsr 0x61a4 // 61a4 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c5c: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c5e: 8c42 ld.h r2, (r4, 0x4) + 7c60: 1037 lrw r1, 0x20000364 // 7cbc + 7c62: 1018 lrw r0, 0x200003a4 // 7cc0 + g_uart1.RecvIdleTiming = SysTick_1ms; + 7c64: b463 st.w r3, (r4, 0xc) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 7c66: e3ffe6bd bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart1.DealLen = g_uart1.RecvLen; + 7c6a: 8c62 ld.h r3, (r4, 0x4) + 7c6c: ac61 st.h r3, (r4, 0x2) + g_uart1.RecvLen = 0; + 7c6e: 3300 movi r3, 0 + 7c70: ac62 st.h r3, (r4, 0x4) + g_uart1.Receiving = 0; + 7c72: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7c74: e3fff292 bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + 7c78: 8c41 ld.h r2, (r4, 0x2) + 7c7a: 1033 lrw r1, 0xaff0 // 7cc4 + 7c7c: 3000 movi r0, 0 + 7c7e: e3fffedb bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); + 7c82: 8c61 ld.h r3, (r4, 0x2) + 7c84: 104f lrw r2, 0x200003a4 // 7cc0 + 7c86: 1031 lrw r1, 0xb002 // 7cc8 + 7c88: 3000 movi r0, 0 + 7c8a: e3ffff99 bsr 0x7bbc // 7bbc + if(g_uart1.processing_cf != NULL){ + 7c8e: 9464 ld.w r3, (r4, 0x10) + 7c90: 3b40 cmpnei r3, 0 + 7c92: 080b bt 0x7ca8 // 7ca8 + Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); + 7c94: 8c21 ld.h r1, (r4, 0x2) + 7c96: 100b lrw r0, 0x200003a4 // 7cc0 + 7c98: e0001206 bsr 0xa0a4 // a0a4 + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + 7c9c: 3240 movi r2, 64 + 7c9e: 3100 movi r1, 0 + 7ca0: 1008 lrw r0, 0x200003a4 // 7cc0 + 7ca2: e3ffe65b bsr 0x4958 // 4958 <__memset_fast> +} + 7ca6: 1492 pop r4-r5, r15 + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + 7ca8: 8c21 ld.h r1, (r4, 0x2) + 7caa: 1006 lrw r0, 0x200003a4 // 7cc0 + 7cac: 7bcd jsr r3 + if(rev != 0x00) + 7cae: 3840 cmpnei r0, 0 + 7cb0: 0ff6 bf 0x7c9c // 7c9c + 7cb2: 07f1 br 0x7c94 // 7c94 + 7cb4: 200003e4 .long 0x200003e4 + 7cb8: 200000c4 .long 0x200000c4 + 7cbc: 20000364 .long 0x20000364 + 7cc0: 200003a4 .long 0x200003a4 + 7cc4: 0000aff0 .long 0x0000aff0 + 7cc8: 0000b002 .long 0x0000b002 + +Disassembly of section .text.UART2_TASK: + +00007ccc : +void UART2_TASK(void){ + 7ccc: 14d2 push r4-r5, r15 + if(g_uart.Receiving == 0x01){ + 7cce: 1180 lrw r4, 0x200002bc // 7d4c + 7cd0: 8460 ld.b r3, (r4, 0x0) + 7cd2: 3b41 cmpnei r3, 1 + 7cd4: 0835 bt 0x7d3e // 7d3e + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 7cd6: 10bf lrw r5, 0x200000c4 // 7d50 + 7cd8: 9560 ld.w r3, (r5, 0x0) + 7cda: 9443 ld.w r2, (r4, 0xc) + 7cdc: 60ca subu r3, r2 + 7cde: 9442 ld.w r2, (r4, 0x8) + 7ce0: 64c8 cmphs r2, r3 + 7ce2: 082e bt 0x7d3e // 7d3e + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7ce4: e3fff260 bsr 0x61a4 // 61a4 + g_uart.RecvIdleTiming = SysTick_1ms; + 7ce8: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7cea: 8c42 ld.h r2, (r4, 0x4) + 7cec: 103a lrw r1, 0x2000023c // 7d54 + 7cee: 101b lrw r0, 0x2000027c // 7d58 + g_uart.RecvIdleTiming = SysTick_1ms; + 7cf0: b463 st.w r3, (r4, 0xc) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7cf2: e3ffe677 bsr 0x49e0 // 49e0 <__memcpy_fast> + g_uart.DealLen = g_uart.RecvLen; + 7cf6: 8c62 ld.h r3, (r4, 0x4) + 7cf8: ac61 st.h r3, (r4, 0x2) + g_uart.RecvLen = 0; + 7cfa: 3300 movi r3, 0 + 7cfc: ac62 st.h r3, (r4, 0x4) + g_uart.Receiving = 0; + 7cfe: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7d00: e3fff24c bsr 0x6198 // 6198 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 revLen %d", g_uart.DealLen); + 7d04: 8c41 ld.h r2, (r4, 0x2) + 7d06: 1036 lrw r1, 0xb00d // 7d5c + 7d08: 3000 movi r0, 0 + 7d0a: e3fffe95 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 rev:%s", g_uart.DealBuffer); + 7d0e: 1053 lrw r2, 0x2000027c // 7d58 + 7d10: 1034 lrw r1, 0xb01d // 7d60 + 7d12: 3000 movi r0, 0 + 7d14: e3fffe90 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart.DealBuffer,g_uart.DealLen); + 7d18: 8c61 ld.h r3, (r4, 0x2) + 7d1a: 1050 lrw r2, 0x2000027c // 7d58 + 7d1c: 1032 lrw r1, 0xb02a // 7d64 + 7d1e: 3000 movi r0, 0 + 7d20: e3ffff4e bsr 0x7bbc // 7bbc + if(g_uart.processing_cf != NULL){ + 7d24: 9464 ld.w r3, (r4, 0x10) + 7d26: 3b40 cmpnei r3, 0 + 7d28: 080c bt 0x7d40 // 7d40 + BT_Uart_Packing(g_uart.DealBuffer,g_uart.DealLen,6); + 7d2a: 8422 ld.b r1, (r4, 0x2) + 7d2c: 3206 movi r2, 6 + 7d2e: 100b lrw r0, 0x2000027c // 7d58 + 7d30: e0000cc2 bsr 0x96b4 // 96b4 + memset(g_uart.DealBuffer,0,USART_BUFFER_SIZE); + 7d34: 3240 movi r2, 64 + 7d36: 3100 movi r1, 0 + 7d38: 1008 lrw r0, 0x2000027c // 7d58 + 7d3a: e3ffe60f bsr 0x4958 // 4958 <__memset_fast> +} + 7d3e: 1492 pop r4-r5, r15 + rev = g_uart.processing_cf(g_uart.DealBuffer,g_uart.DealLen); + 7d40: 8c21 ld.h r1, (r4, 0x2) + 7d42: 1006 lrw r0, 0x2000027c // 7d58 + 7d44: 7bcd jsr r3 + if(rev != 0x00) + 7d46: 3840 cmpnei r0, 0 + 7d48: 0ff6 bf 0x7d34 // 7d34 + 7d4a: 07f0 br 0x7d2a // 7d2a + 7d4c: 200002bc .long 0x200002bc + 7d50: 200000c4 .long 0x200000c4 + 7d54: 2000023c .long 0x2000023c + 7d58: 2000027c .long 0x2000027c + 7d5c: 0000b00d .long 0x0000b00d + 7d60: 0000b01d .long 0x0000b01d + 7d64: 0000b02a .long 0x0000b02a + +Disassembly of section .text.Dbg_BT_Println: + +00007d68 : + +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...){ + 7d68: 1423 subi r14, r14, 12 + 7d6a: b862 st.w r3, (r14, 0x8) + 7d6c: b841 st.w r2, (r14, 0x4) + 7d6e: b820 st.w r1, (r14, 0x0) + 7d70: 14d2 push r4-r5, r15 + 7d72: 1421 subi r14, r14, 4 + 7d74: 9864 ld.w r3, (r14, 0x10) + 7d76: b860 st.w r3, (r14, 0x0) +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7d78: 3301 movi r3, 1 + 7d7a: 1091 lrw r4, 0x200000c8 // 7dbc + 7d7c: 70c0 lsl r3, r0 + 7d7e: 9444 ld.w r2, (r4, 0x10) + 7d80: 68c8 and r3, r2 + 7d82: 3b40 cmpnei r3, 0 + 7d84: 0c14 bf 0x7dac // 7dac + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7d86: 3020 movi r0, 32 + 7d88: 1b05 addi r3, r14, 20 + 7d8a: 9840 ld.w r2, (r14, 0x0) + 7d8c: 3180 movi r1, 128 + 7d8e: 6010 addu r0, r4 + 7d90: e3ffe5b7 bsr 0x48fe // 48fe <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_BTPrintf(Dbg_Buffer,str_offset); + 7d94: 10ab lrw r5, 0x20000038 // 7dc0 + 7d96: 6c53 mov r1, r4 + 7d98: 7481 zexth r2, r0 + 7d9a: 211f addi r1, 32 + 7d9c: 9500 ld.w r0, (r5, 0x0) + 7d9e: e3fff53d bsr 0x6818 // 6818 + + DBG_BTPrintf("\r\n",2); + 7da2: 9500 ld.w r0, (r5, 0x0) + 7da4: 3202 movi r2, 2 + 7da6: 1028 lrw r1, 0xafab // 7dc4 + 7da8: e3fff538 bsr 0x6818 // 6818 + } + +#endif +} + 7dac: 1401 addi r14, r14, 4 + 7dae: d9ee2002 ld.w r15, (r14, 0x8) + 7db2: 98a1 ld.w r5, (r14, 0x4) + 7db4: 9880 ld.w r4, (r14, 0x0) + 7db6: 1406 addi r14, r14, 24 + 7db8: 783c jmp r15 + 7dba: 0000 bkpt + 7dbc: 200000c8 .long 0x200000c8 + 7dc0: 20000038 .long 0x20000038 + 7dc4: 0000afab .long 0x0000afab + +Disassembly of section .text.DIP_GetSwitchState: + +00007dc8 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 7dc8: 14d0 push r15 + U8_T val = 0; + + switch (i) + 7dca: 3841 cmpnei r0, 1 + 7dcc: 0c0d bf 0x7de6 // 7de6 + 7dce: 3840 cmpnei r0, 0 + 7dd0: 0c05 bf 0x7dda // 7dda + 7dd2: 3842 cmpnei r0, 2 + 7dd4: 0c0d bf 0x7dee // 7dee + U8_T val = 0; + 7dd6: 3000 movi r0, 0 + 7dd8: 0406 br 0x7de4 // 7de4 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 7dda: 1068 lrw r3, 0x2000004c // 7df8 + 7ddc: 310a movi r1, 10 + 7dde: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 7de0: e3fff3e7 bsr 0x65ae // 65ae + break; + + } + return val; +} + 7de4: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 7de6: 1065 lrw r3, 0x2000004c // 7df8 + 7de8: 3109 movi r1, 9 + 7dea: 9300 ld.w r0, (r3, 0x0) + 7dec: 07fa br 0x7de0 // 7de0 + val = GPIO_Read_Status(GPIOA0,8); + 7dee: 1063 lrw r3, 0x2000004c // 7df8 + 7df0: 3108 movi r1, 8 + 7df2: 9300 ld.w r0, (r3, 0x0) + 7df4: 07f6 br 0x7de0 // 7de0 + 7df6: 0000 bkpt + 7df8: 2000004c .long 0x2000004c + +Disassembly of section .text.DIP_Switch_Init: + +00007dfc : +void DIP_Switch_Init(void){ + 7dfc: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 7dfe: 1182 lrw r4, 0x2000004c // 7e84 + 7e00: 3201 movi r2, 1 + 7e02: 9400 ld.w r0, (r4, 0x0) + 7e04: 310a movi r1, 10 + 7e06: e3fff23b bsr 0x627c // 627c + GPIO_Init(GPIOA0,9,Intput); + 7e0a: 9400 ld.w r0, (r4, 0x0) + 7e0c: 3201 movi r2, 1 + 7e0e: 3109 movi r1, 9 + 7e10: e3fff236 bsr 0x627c // 627c + GPIO_Init(GPIOA0,8,Intput); + 7e14: 3201 movi r2, 1 + 7e16: 9400 ld.w r0, (r4, 0x0) + 7e18: 3108 movi r1, 8 + 7e1a: e3fff231 bsr 0x627c // 627c + GPIO_PullHigh_Init(GPIOA0,10); + 7e1e: 9400 ld.w r0, (r4, 0x0) + 7e20: 310a movi r1, 10 + 7e22: e3fff29d bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,9); + 7e26: 9400 ld.w r0, (r4, 0x0) + 7e28: 3109 movi r1, 9 + 7e2a: e3fff299 bsr 0x635c // 635c + GPIO_PullHigh_Init(GPIOA0,8); + 7e2e: 9400 ld.w r0, (r4, 0x0) + 7e30: 3108 movi r1, 8 + 7e32: e3fff295 bsr 0x635c // 635c + memset(&g_Dip,0,sizeof(DIP_t)); + 7e36: 3214 movi r2, 20 + 7e38: 3100 movi r1, 0 + 7e3a: 1014 lrw r0, 0x20000480 // 7e88 + 7e3c: e3ffe58e bsr 0x4958 // 4958 <__memset_fast> + delay_nms(20); + 7e40: 3014 movi r0, 20 + 7e42: e3fff597 bsr 0x6970 // 6970 + 7e46: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e48: 10b0 lrw r5, 0x20000480 // 7e88 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 7e4a: 7410 zextb r0, r4 + 7e4c: e3ffffbe bsr 0x7dc8 // 7dc8 + 7e50: 3840 cmpnei r0, 0 + 7e52: 0807 bt 0x7e60 // 7e60 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e54: 3301 movi r3, 1 + 7e56: 70d0 lsl r3, r4 + 7e58: 6c8f mov r2, r3 + 7e5a: 9563 ld.w r3, (r5, 0xc) + 7e5c: 6cc8 or r3, r2 + 7e5e: b563 st.w r3, (r5, 0xc) + 7e60: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 7e62: 3c43 cmpnei r4, 3 + 7e64: 0bf3 bt 0x7e4a // 7e4a + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e66: 1069 lrw r3, 0x20000480 // 7e88 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e68: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e6a: 9343 ld.w r2, (r3, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e6c: 6848 and r1, r2 + 7e6e: a326 st.b r1, (r3, 0x6) + g_Dip.Dev_Port = Passive_Port; + 7e70: 3100 movi r1, 0 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e72: b344 st.w r2, (r3, 0x10) + g_Dip.Dev_Port = Passive_Port; + 7e74: a327 st.b r1, (r3, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); + 7e76: 3000 movi r0, 0 + 7e78: 3300 movi r3, 0 + 7e7a: 1025 lrw r1, 0xb035 // 7e8c + 7e7c: e3fffddc bsr 0x7a34 // 7a34 +} + 7e80: 1492 pop r4-r5, r15 + 7e82: 0000 bkpt + 7e84: 2000004c .long 0x2000004c + 7e88: 20000480 .long 0x20000480 + 7e8c: 0000b035 .long 0x0000b035 + +Disassembly of section .text.DIP_ScanTask: + +00007e90 : + +void DIP_ScanTask(void) +{ + 7e90: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 7e92: 1122 lrw r1, 0x200000c4 // 7f18 + 7e94: 1142 lrw r2, 0x20000168 // 7f1c + 7e96: 11a3 lrw r5, 0x20000480 // 7f20 + 7e98: 9200 ld.w r0, (r2, 0x0) + 7e9a: 9160 ld.w r3, (r1, 0x0) + 7e9c: 60c2 subu r3, r0 + 7e9e: 3b14 cmphsi r3, 21 + 7ea0: 0806 bt 0x7eac // 7eac + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 7ea2: 9543 ld.w r2, (r5, 0xc) + 7ea4: 9564 ld.w r3, (r5, 0x10) + 7ea6: 64ca cmpne r2, r3 + 7ea8: 082e bt 0x7f04 // 7f04 + g_Dip.addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + } + +} + 7eaa: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 7eac: 9160 ld.w r3, (r1, 0x0) + 7eae: b260 st.w r3, (r2, 0x0) + 7eb0: 6d17 mov r4, r5 + 7eb2: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7eb4: 7418 zextb r0, r6 + 7eb6: e3ffff89 bsr 0x7dc8 // 7dc8 + 7eba: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 7ebc: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7ebe: 0814 bt 0x7ee6 // 7ee6 + g_Dip.delayCnt_OFF[i] = 0; + 7ec0: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 7ec2: 8460 ld.b r3, (r4, 0x0) + 7ec4: 3b04 cmphsi r3, 5 + 7ec6: 0808 bt 0x7ed6 // 7ed6 + g_Dip.delayCnt_ON[i]++; + 7ec8: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 7eca: a460 st.b r3, (r4, 0x0) + 7ecc: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 7ece: 3e43 cmpnei r6, 3 + 7ed0: 2400 addi r4, 1 + 7ed2: 0bf1 bt 0x7eb4 // 7eb4 + 7ed4: 07e7 br 0x7ea2 // 7ea2 + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 7ed6: 3301 movi r3, 1 + 7ed8: 70d8 lsl r3, r6 + 7eda: 6c8f mov r2, r3 + 7edc: 9563 ld.w r3, (r5, 0xc) + 7ede: 6cc8 or r3, r2 + 7ee0: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_ON[i] = 0; + 7ee2: 3300 movi r3, 0 + 7ee4: 07f3 br 0x7eca // 7eca + g_Dip.delayCnt_ON[i] = 0; + 7ee6: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 7ee8: 8463 ld.b r3, (r4, 0x3) + 7eea: 3b04 cmphsi r3, 5 + 7eec: 0804 bt 0x7ef4 // 7ef4 + g_Dip.delayCnt_OFF[i]++; + 7eee: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 7ef0: a463 st.b r3, (r4, 0x3) + 7ef2: 07ed br 0x7ecc // 7ecc + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 7ef4: 3300 movi r3, 0 + 7ef6: 2b01 subi r3, 2 + 7ef8: 9543 ld.w r2, (r5, 0xc) + 7efa: 70db rotl r3, r6 + 7efc: 68c8 and r3, r2 + 7efe: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_OFF[i] = 0; + 7f00: 3300 movi r3, 0 + 7f02: 07f7 br 0x7ef0 // 7ef0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f04: 3307 movi r3, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7f06: b544 st.w r2, (r5, 0x10) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f08: 3000 movi r0, 0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f0a: 688c and r2, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f0c: 1026 lrw r1, 0xb04c // 7f24 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7f0e: a546 st.b r2, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7f10: e3fffd92 bsr 0x7a34 // 7a34 +} + 7f14: 07cb br 0x7eaa // 7eaa + 7f16: 0000 bkpt + 7f18: 200000c4 .long 0x200000c4 + 7f1c: 20000168 .long 0x20000168 + 7f20: 20000480 .long 0x20000480 + 7f24: 0000b04c .long 0x0000b04c + +Disassembly of section .text.EEPROM_CheckSum: + +00007f28 : +E_MCU_DEV_INFO g_mcu_dev; +ENERGY_SAVE_PARA e_save; +ENERGY_SAVE eng_info; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 7f28: 6cc3 mov r3, r0 + 7f2a: 6040 addu r1, r0 + U8_T data_sum = 0; + 7f2c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 7f32: 783c jmp r15 + data_sum += data[i]; + 7f34: 8340 ld.b r2, (r3, 0x0) + 7f36: 6008 addu r0, r2 + 7f38: 7400 zextb r0, r0 + 7f3a: 2300 addi r3, 1 + 7f3c: 07f9 br 0x7f2e // 7f2e + +Disassembly of section .text.EEOROM_ENERGY_ReadSet: + +00007f40 : +* Description : 读取电能检测参数 +* Parameter : +* info :读取参数指针 +*******************************************************************/ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info) +{ + 7f40: 14d1 push r4, r15 + 7f42: 142f subi r14, r14, 60 + 7f44: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 7f46: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 7f48: 3232 movi r2, 50 + 7f4a: 3100 movi r1, 0 + 7f4c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7f4e: b860 st.w r3, (r14, 0x0) + 7f50: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 7f54: e3ffe502 bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr,4,read_info); + 7f58: 6cbb mov r2, r14 + 7f5a: 3104 movi r1, 4 + 7f5c: 111f lrw r0, 0x10000180 // 8058 + 7f5e: e3fff4d1 bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_ENERGY_SAVE_FLAG){ + 7f62: d84e0000 ld.b r2, (r14, 0x0) + 7f66: 33a6 movi r3, 166 + 7f68: 64ca cmpne r2, r3 + 7f6a: 0c04 bf 0x7f72 // 7f72 + return 0x00; + } + } + } + + return 0x01; + 7f6c: 3001 movi r0, 1 + +} + 7f6e: 140f addi r14, r14, 60 + 7f70: 1491 pop r4, r15 + read_len |= read_info[1]; + 7f72: d82e0002 ld.b r1, (r14, 0x2) + 7f76: d86e0001 ld.b r3, (r14, 0x1) + 7f7a: 4128 lsli r1, r1, 8 + 7f7c: 6c4c or r1, r3 + if(read_len <= EEPROM_ENERGY_SIZE){ + 7f7e: 3332 movi r3, 50 + 7f80: 644c cmphs r3, r1 + 7f82: 0ff5 bf 0x7f6c // 7f6c + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr+EEPROM_Offset_Data,read_len,para_data); + 7f84: 1a02 addi r2, r14, 8 + 7f86: 1116 lrw r0, 0x10000184 // 805c + 7f88: e3fff4bc bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE_PARA)) == read_info[3]){ + 7f8c: 312c movi r1, 44 + 7f8e: 1802 addi r0, r14, 8 + 7f90: e3ffffcc bsr 0x7f28 // 7f28 + 7f94: d86e0003 ld.b r3, (r14, 0x3) + 7f98: 640e cmpne r3, r0 + 7f9a: 0be9 bt 0x7f6c // 7f6c + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE_PARA)); + 7f9c: 322c movi r2, 44 + 7f9e: 1902 addi r1, r14, 8 + 7fa0: 6c13 mov r0, r4 + 7fa2: e3ffe51f bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fa6: 118f lrw r4, 0x20000494 // 8060 + SYSCON_IWDCNT_Reload(); + 7fa8: e3fff072 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7fac: 9400 ld.w r0, (r4, 0x0) + 7fae: e3ffdd47 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fb2: 6c83 mov r2, r0 + 7fb4: 6cc7 mov r3, r1 + 7fb6: 3000 movi r0, 0 + 7fb8: 112b lrw r1, 0xb058 // 8064 + 7fba: e3fffd3d bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K1:%f",e_save.i_k1_val); + 7fbe: 9401 ld.w r0, (r4, 0x4) + 7fc0: e3ffdd3e bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fc4: 6c83 mov r2, r0 + 7fc6: 6cc7 mov r3, r1 + 7fc8: 3000 movi r0, 0 + 7fca: 1128 lrw r1, 0xb063 // 8068 + 7fcc: e3fffd34 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K2:%f",e_save.i_k2_val); + 7fd0: 9402 ld.w r0, (r4, 0x8) + 7fd2: e3ffdd35 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fd6: 6c83 mov r2, r0 + 7fd8: 6cc7 mov r3, r1 + 7fda: 3000 movi r0, 0 + 7fdc: 1124 lrw r1, 0xb06f // 806c + 7fde: e3fffd2b bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_K:%f",e_save.p_k_val); + 7fe2: 9403 ld.w r0, (r4, 0xc) + 7fe4: e3ffdd2c bsr 0x3a3c // 3a3c <__extendsfdf2> + 7fe8: 6c83 mov r2, r0 + 7fea: 6cc7 mov r3, r1 + 7fec: 3000 movi r0, 0 + 7fee: 1121 lrw r1, 0xb07b // 8070 + 7ff0: e3fffd22 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_OffSet:%f",e_save.i_OffSetVal); + 7ff4: 9404 ld.w r0, (r4, 0x10) + 7ff6: e3ffdd23 bsr 0x3a3c // 3a3c <__extendsfdf2> + 7ffa: 6c83 mov r2, r0 + 7ffc: 6cc7 mov r3, r1 + 7ffe: 3000 movi r0, 0 + 8000: 103d lrw r1, 0xb086 // 8074 + 8002: e3fffd19 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_OffSet:%f",e_save.p_OffSetVal); + 8006: 9405 ld.w r0, (r4, 0x14) + 8008: e3ffdd1a bsr 0x3a3c // 3a3c <__extendsfdf2> + 800c: 6cc7 mov r3, r1 + 800e: 6c83 mov r2, r0 + 8010: 103a lrw r1, 0xb096 // 8078 + 8012: 3000 movi r0, 0 + 8014: e3fffd10 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 8018: e3fff03a bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_max:%d",e_save.eng_save_max); + 801c: 9446 ld.w r2, (r4, 0x18) + 801e: 3000 movi r0, 0 + 8020: 1037 lrw r1, 0xb0a6 // 807c + 8022: e3fffd09 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_offset:%d",e_save.eng_save_offset); + 8026: 9447 ld.w r2, (r4, 0x1c) + 8028: 3000 movi r0, 0 + 802a: 1036 lrw r1, 0xb0b6 // 8080 + 802c: e3fffd04 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Collect_Tim:%d",e_save.Collect_Tim); + 8030: 9448 ld.w r2, (r4, 0x20) + 8032: 3000 movi r0, 0 + 8034: 1034 lrw r1, 0xb0c9 // 8084 + 8036: e3fffcff bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Report_Tim:%d",e_save.Report_Tim); + 803a: 9449 ld.w r2, (r4, 0x24) + 803c: 3000 movi r0, 0 + 803e: 1033 lrw r1, 0xb0dc // 8088 + 8040: e3fffcfa bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 8044: 3000 movi r0, 0 + 8046: 944a ld.w r2, (r4, 0x28) + 8048: 1031 lrw r1, 0xb0ee // 808c + 804a: e3fffcf5 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 804e: e3fff01f bsr 0x608c // 608c + return 0x00; + 8052: 3000 movi r0, 0 + 8054: 078d br 0x7f6e // 7f6e + 8056: 0000 bkpt + 8058: 10000180 .long 0x10000180 + 805c: 10000184 .long 0x10000184 + 8060: 20000494 .long 0x20000494 + 8064: 0000b058 .long 0x0000b058 + 8068: 0000b063 .long 0x0000b063 + 806c: 0000b06f .long 0x0000b06f + 8070: 0000b07b .long 0x0000b07b + 8074: 0000b086 .long 0x0000b086 + 8078: 0000b096 .long 0x0000b096 + 807c: 0000b0a6 .long 0x0000b0a6 + 8080: 0000b0b6 .long 0x0000b0b6 + 8084: 0000b0c9 .long 0x0000b0c9 + 8088: 0000b0dc .long 0x0000b0dc + 808c: 0000b0ee .long 0x0000b0ee + +Disassembly of section .text.EEOROM_ENERGY_WriteSet: + +00008090 : +/******************************************************************************* +* Function Name : EEOROM_ENERGY_WriteSet +* Description : 将电能设置参数写入到EEPROM中 +*******************************************************************************/ +U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info) +{ + 8090: 14d0 push r15 + 8092: 142e subi r14, r14, 56 + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(ENERGY_SAVE_PARA); + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 8094: 3300 movi r3, 0 + 8096: 2b59 subi r3, 90 + 8098: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 809c: 332c movi r3, 44 + 809e: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 80a2: 3300 movi r3, 0 + 80a4: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80a8: 1b01 addi r3, r14, 4 +{ + 80aa: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 80ac: 322c movi r2, 44 + 80ae: 6c0f mov r0, r3 + 80b0: e3ffe498 bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 80b4: 312c movi r1, 44 + 80b6: e3ffff39 bsr 0x7f28 // 7f28 + 80ba: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ENERGE_PARA_SaveAddr,save_len,save_data); + 80be: 6cbb mov r2, r14 + 80c0: 3130 movi r1, 48 + 80c2: 1004 lrw r0, 0x10000180 // 80d0 + 80c4: e3fff3ce bsr 0x6860 // 6860 + + return 0; +} + 80c8: 3000 movi r0, 0 + 80ca: 140e addi r14, r14, 56 + 80cc: 1490 pop r15 + 80ce: 0000 bkpt + 80d0: 10000180 .long 0x10000180 + +Disassembly of section .text.EEPROM_ENERGY_Validate: + +000080d4 : +/******************************************************************************* +* Function Name : EEPROM_ENERGY_Validate +* Description : 比对当前参数,确认是否有改变需要写入 +*******************************************************************************/ +void EEPROM_ENERGY_Validate(void) +{ + 80d4: 14d4 push r4-r7, r15 + U8_T save_flag = 0; + + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 80d6: 12a9 lrw r5, 0x20000578 // 81f8 + 80d8: 1289 lrw r4, 0x20000494 // 81fc + 80da: 95d4 ld.w r6, (r5, 0x50) + 80dc: 6c5b mov r1, r6 + 80de: 9401 ld.w r0, (r4, 0x4) + 80e0: e3ffdc1a bsr 0x3914 // 3914 <__nesf2> + 80e4: 3840 cmpnei r0, 0 + 80e6: 0c80 bf 0x81e6 // 81e6 + { + e_save.i_k1_val = g_Eng.I_K1_Val; + 80e8: b4c1 st.w r6, (r4, 0x4) + save_flag = 1; + 80ea: 3601 movi r6, 1 + } + + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 80ec: 95f5 ld.w r7, (r5, 0x54) + 80ee: 6c5f mov r1, r7 + 80f0: 9402 ld.w r0, (r4, 0x8) + 80f2: e3ffdc11 bsr 0x3914 // 3914 <__nesf2> + 80f6: 3840 cmpnei r0, 0 + 80f8: 0c03 bf 0x80fe // 80fe + { + e_save.i_k2_val = g_Eng.I_K2_Val; + 80fa: b4e2 st.w r7, (r4, 0x8) + save_flag = 1; + 80fc: 3601 movi r6, 1 + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + 80fe: 95f3 ld.w r7, (r5, 0x4c) + 8100: 6c5f mov r1, r7 + 8102: 9400 ld.w r0, (r4, 0x0) + 8104: e3ffdc08 bsr 0x3914 // 3914 <__nesf2> + 8108: 3840 cmpnei r0, 0 + 810a: 0c03 bf 0x8110 // 8110 + { + e_save.v_k_val = g_Eng.V_K_Val; + 810c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 810e: 3601 movi r6, 1 + } + + if(e_save.p_k_val != g_Eng.P_K_Val) + 8110: 9536 ld.w r1, (r5, 0x58) + 8112: 9403 ld.w r0, (r4, 0xc) + 8114: e3ffdc00 bsr 0x3914 // 3914 <__nesf2> + 8118: 3840 cmpnei r0, 0 + 811a: 0c03 bf 0x8120 // 8120 + { + e_save.v_k_val = g_Eng.V_K_Val; + 811c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 811e: 3601 movi r6, 1 + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8120: 9537 ld.w r1, (r5, 0x5c) + 8122: 9404 ld.w r0, (r4, 0x10) + 8124: e3ffdbf8 bsr 0x3914 // 3914 <__nesf2> + 8128: 3840 cmpnei r0, 0 + 812a: 0c03 bf 0x8130 // 8130 + { + e_save.v_k_val = g_Eng.V_K_Val; + 812c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 812e: 3601 movi r6, 1 + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8130: 9538 ld.w r1, (r5, 0x60) + 8132: 9405 ld.w r0, (r4, 0x14) + 8134: e3ffdbf0 bsr 0x3914 // 3914 <__nesf2> + 8138: 3840 cmpnei r0, 0 + 813a: 0c03 bf 0x8140 // 8140 + { + e_save.v_k_val = g_Eng.V_K_Val; + 813c: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 813e: 3601 movi r6, 1 + } + + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 8140: 9579 ld.w r3, (r5, 0x64) + 8142: 9448 ld.w r2, (r4, 0x20) + 8144: 64ca cmpne r2, r3 + 8146: 0c03 bf 0x814c // 814c + { + e_save.Collect_Tim = g_Eng.Collect_Tim; + 8148: b468 st.w r3, (r4, 0x20) + save_flag = 1; + 814a: 3601 movi r6, 1 + } + + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 814c: 957b ld.w r3, (r5, 0x6c) + 814e: 944a ld.w r2, (r4, 0x28) + 8150: 64ca cmpne r2, r3 + 8152: 0c03 bf 0x8158 // 8158 + { + e_save.SaveFlash_Tim = g_Eng.SaveFlash_Tim; + 8154: b46a st.w r3, (r4, 0x28) + save_flag = 1; + 8156: 3601 movi r6, 1 + } + + if(e_save.Report_Tim != g_Eng.Report_Tim) + 8158: 957a ld.w r3, (r5, 0x68) + 815a: 9449 ld.w r2, (r4, 0x24) + 815c: 64ca cmpne r2, r3 + 815e: 0c46 bf 0x81ea // 81ea + { + e_save.Report_Tim = g_Eng.Report_Tim; + 8160: b469 st.w r3, (r4, 0x24) + save_flag = 1; + } + + if(save_flag == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + 8162: 1107 lrw r0, 0x20000494 // 81fc + 8164: e3ffff96 bsr 0x8090 // 8090 + +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + 8168: e3ffef92 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Need Save Energy"); + 816c: 1125 lrw r1, 0xb116 // 8200 + 816e: 3000 movi r0, 0 + 8170: e3fffc62 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"V_K:%f",e_save.v_k_val); + 8174: 9400 ld.w r0, (r4, 0x0) + 8176: e3ffdc63 bsr 0x3a3c // 3a3c <__extendsfdf2> + 817a: 6c83 mov r2, r0 + 817c: 6cc7 mov r3, r1 + 817e: 3000 movi r0, 0 + 8180: 1121 lrw r1, 0xb05c // 8204 + 8182: e3fffc59 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K1:%f",e_save.i_k1_val); + 8186: 9401 ld.w r0, (r4, 0x4) + 8188: e3ffdc5a bsr 0x3a3c // 3a3c <__extendsfdf2> + 818c: 6c83 mov r2, r0 + 818e: 6cc7 mov r3, r1 + 8190: 3000 movi r0, 0 + 8192: 103e lrw r1, 0xb067 // 8208 + 8194: e3fffc50 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K2:%f",e_save.i_k2_val); + 8198: 9402 ld.w r0, (r4, 0x8) + 819a: e3ffdc51 bsr 0x3a3c // 3a3c <__extendsfdf2> + 819e: 6c83 mov r2, r0 + 81a0: 6cc7 mov r3, r1 + 81a2: 3000 movi r0, 0 + 81a4: 103a lrw r1, 0xb073 // 820c + 81a6: e3fffc47 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_K:%f",e_save.p_k_val); + 81aa: 9403 ld.w r0, (r4, 0xc) + 81ac: e3ffdc48 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81b0: 6c83 mov r2, r0 + 81b2: 6cc7 mov r3, r1 + 81b4: 3000 movi r0, 0 + 81b6: 1037 lrw r1, 0xb07f // 8210 + 81b8: e3fffc3e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_OS:%f",e_save.i_OffSetVal); + 81bc: 9404 ld.w r0, (r4, 0x10) + 81be: e3ffdc3f bsr 0x3a3c // 3a3c <__extendsfdf2> + 81c2: 6c83 mov r2, r0 + 81c4: 6cc7 mov r3, r1 + 81c6: 3000 movi r0, 0 + 81c8: 1033 lrw r1, 0xb103 // 8214 + 81ca: e3fffc35 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_OS:%f",e_save.p_OffSetVal); + 81ce: 9405 ld.w r0, (r4, 0x14) + 81d0: e3ffdc36 bsr 0x3a3c // 3a3c <__extendsfdf2> + 81d4: 6c83 mov r2, r0 + 81d6: 6cc7 mov r3, r1 + 81d8: 3000 movi r0, 0 + 81da: 1030 lrw r1, 0xb10b // 8218 + 81dc: e3fffc2c bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 81e0: e3ffef56 bsr 0x608c // 608c +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + +#endif + } +} + 81e4: 1494 pop r4-r7, r15 + U8_T save_flag = 0; + 81e6: 3600 movi r6, 0 + 81e8: 0782 br 0x80ec // 80ec + if(save_flag == 0x01) + 81ea: 3e41 cmpnei r6, 1 + 81ec: 0fbb bf 0x8162 // 8162 + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + 81ee: 102c lrw r1, 0xb113 // 821c + 81f0: 3000 movi r0, 0 + 81f2: e3fffc21 bsr 0x7a34 // 7a34 +} + 81f6: 07f7 br 0x81e4 // 81e4 + 81f8: 20000578 .long 0x20000578 + 81fc: 20000494 .long 0x20000494 + 8200: 0000b116 .long 0x0000b116 + 8204: 0000b05c .long 0x0000b05c + 8208: 0000b067 .long 0x0000b067 + 820c: 0000b073 .long 0x0000b073 + 8210: 0000b07f .long 0x0000b07f + 8214: 0000b103 .long 0x0000b103 + 8218: 0000b10b .long 0x0000b10b + 821c: 0000b113 .long 0x0000b113 + +Disassembly of section .text.EEPROM_Default_ENERGY: + +00008220 : +/******************************************************************************* +* Function Name : EEPROM_Default_ENERGY +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info) +{ + 8220: 14d1 push r4, r15 + /*APP 区域*/ + info->i_k1_val = 1; + 8222: 33fe movi r3, 254 + 8224: 4376 lsli r3, r3, 22 + 8226: b061 st.w r3, (r0, 0x4) + info->i_k2_val = 1; + 8228: b062 st.w r3, (r0, 0x8) + info->v_k_val = 2; + info->p_k_val = 1; + 822a: b063 st.w r3, (r0, 0xc) + info->i_OffSetVal = 0; + 822c: 3300 movi r3, 0 + 822e: b064 st.w r3, (r0, 0x10) + info->p_OffSetVal = 0; + 8230: b065 st.w r3, (r0, 0x14) + info->eng_save_max = EEPROM_SAVEADDR_CNT; + 8232: 1176 lrw r3, 0x9c40 // 8308 + 8234: b066 st.w r3, (r0, 0x18) + info->eng_save_offset = 1; //存储偏移编号从1开始 + 8236: 3301 movi r3, 1 + 8238: b067 st.w r3, (r0, 0x1c) + info->SaveFlash_Tim = EEPROM_SAVETIME; + 823a: 1175 lrw r3, 0x36ee80 // 830c + 823c: b06a st.w r3, (r0, 0x28) + info->v_k_val = 2; + 823e: 3280 movi r2, 128 + info->Collect_Tim = EEPROM_COLLTIME; + 8240: 1174 lrw r3, 0xbb8 // 8310 + info->v_k_val = 2; + 8242: 4257 lsli r2, r2, 23 + info->Collect_Tim = EEPROM_COLLTIME; + 8244: b068 st.w r3, (r0, 0x20) + info->Report_Tim = EEPROM_REPTIME; + 8246: 1174 lrw r3, 0x927c0 // 8314 + info->v_k_val = 2; + 8248: b040 st.w r2, (r0, 0x0) + info->Report_Tim = EEPROM_REPTIME; + 824a: b069 st.w r3, (r0, 0x24) + + + EEOROM_ENERGY_WriteSet(info); + 824c: e3ffff22 bsr 0x8090 // 8090 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Energy Use Default Para"); + 8250: 1132 lrw r1, 0xb127 // 8318 + 8252: 3000 movi r0, 0 + 8254: e3fffbf0 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 8258: 1191 lrw r4, 0x20000494 // 831c + SYSCON_IWDCNT_Reload(); + 825a: e3ffef19 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 825e: 9400 ld.w r0, (r4, 0x0) + 8260: e3ffdbee bsr 0x3a3c // 3a3c <__extendsfdf2> + 8264: 6c83 mov r2, r0 + 8266: 6cc7 mov r3, r1 + 8268: 3000 movi r0, 0 + 826a: 112e lrw r1, 0xb13f // 8320 + 826c: e3fffbe4 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K1:%f",e_save.i_k1_val); + 8270: 9401 ld.w r0, (r4, 0x4) + 8272: e3ffdbe5 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8276: 6c83 mov r2, r0 + 8278: 6cc7 mov r3, r1 + 827a: 3000 movi r0, 0 + 827c: 112a lrw r1, 0xb14e // 8324 + 827e: e3fffbdb bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K2:%f",e_save.i_k2_val); + 8282: 9402 ld.w r0, (r4, 0x8) + 8284: e3ffdbdc bsr 0x3a3c // 3a3c <__extendsfdf2> + 8288: 6c83 mov r2, r0 + 828a: 6cc7 mov r3, r1 + 828c: 3000 movi r0, 0 + 828e: 1127 lrw r1, 0xb15e // 8328 + 8290: e3fffbd2 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_K:%f",e_save.p_k_val); + 8294: 9403 ld.w r0, (r4, 0xc) + 8296: e3ffdbd3 bsr 0x3a3c // 3a3c <__extendsfdf2> + 829a: 6c83 mov r2, r0 + 829c: 6cc7 mov r3, r1 + 829e: 3000 movi r0, 0 + 82a0: 1123 lrw r1, 0xb16e // 832c + 82a2: e3fffbc9 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_OffSet:%f",e_save.i_OffSetVal); + 82a6: 9404 ld.w r0, (r4, 0x10) + 82a8: e3ffdbca bsr 0x3a3c // 3a3c <__extendsfdf2> + 82ac: 6c83 mov r2, r0 + 82ae: 6cc7 mov r3, r1 + 82b0: 3000 movi r0, 0 + 82b2: 1120 lrw r1, 0xb17d // 8330 + 82b4: e3fffbc0 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_OffSet:%f",e_save.p_OffSetVal); + 82b8: 9405 ld.w r0, (r4, 0x14) + 82ba: e3ffdbc1 bsr 0x3a3c // 3a3c <__extendsfdf2> + 82be: 6cc7 mov r3, r1 + 82c0: 6c83 mov r2, r0 + 82c2: 103d lrw r1, 0xb191 // 8334 + 82c4: 3000 movi r0, 0 + 82c6: e3fffbb7 bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 82ca: e3ffeee1 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_max:%d",e_save.eng_save_max); + 82ce: 9446 ld.w r2, (r4, 0x18) + 82d0: 3000 movi r0, 0 + 82d2: 103a lrw r1, 0xb1a5 // 8338 + 82d4: e3fffbb0 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_offset:%d",e_save.eng_save_offset); + 82d8: 9447 ld.w r2, (r4, 0x1c) + 82da: 3000 movi r0, 0 + 82dc: 1038 lrw r1, 0xb1b9 // 833c + 82de: e3fffbab bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Collect_Tim:%d",e_save.Collect_Tim); + 82e2: 9448 ld.w r2, (r4, 0x20) + 82e4: 3000 movi r0, 0 + 82e6: 1037 lrw r1, 0xb1d0 // 8340 + 82e8: e3fffba6 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Report_Tim:%d",e_save.Report_Tim); + 82ec: 9449 ld.w r2, (r4, 0x24) + 82ee: 3000 movi r0, 0 + 82f0: 1035 lrw r1, 0xb1e7 // 8344 + 82f2: e3fffba1 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 82f6: 944a ld.w r2, (r4, 0x28) + 82f8: 3000 movi r0, 0 + 82fa: 1034 lrw r1, 0xb1fd // 8348 + 82fc: e3fffb9c bsr 0x7a34 // 7a34 + + SYSCON_IWDCNT_Reload(); + 8300: e3ffeec6 bsr 0x608c // 608c + +#endif + +} + 8304: 1491 pop r4, r15 + 8306: 0000 bkpt + 8308: 00009c40 .long 0x00009c40 + 830c: 0036ee80 .long 0x0036ee80 + 8310: 00000bb8 .long 0x00000bb8 + 8314: 000927c0 .long 0x000927c0 + 8318: 0000b127 .long 0x0000b127 + 831c: 20000494 .long 0x20000494 + 8320: 0000b13f .long 0x0000b13f + 8324: 0000b14e .long 0x0000b14e + 8328: 0000b15e .long 0x0000b15e + 832c: 0000b16e .long 0x0000b16e + 8330: 0000b17d .long 0x0000b17d + 8334: 0000b191 .long 0x0000b191 + 8338: 0000b1a5 .long 0x0000b1a5 + 833c: 0000b1b9 .long 0x0000b1b9 + 8340: 0000b1d0 .long 0x0000b1d0 + 8344: 0000b1e7 .long 0x0000b1e7 + 8348: 0000b1fd .long 0x0000b1fd + +Disassembly of section .text.EEPROM_ReadTotalEng: + +0000834c : +/********************************************************************* + * Function Name : EEPROM_ReadTotalEng + * Description : 读取总电量、存储总次数 + *********************************************************************/ +U8_T EEPROM_ReadTotalEng(ENERGY_SAVE *info) +{ + 834c: 14d2 push r4-r5, r15 + 834e: 1430 subi r14, r14, 64 + 8350: 6d43 mov r5, r0 + U8_T read_info[10]; //帧头 + U8_T para_data[EEPROM_ENERGY_SIZE]; //存储数据 + UINT16 read_len = 0; //存储数据长度 + uint32_t save_block = 0; //存储扇区编号 + + memset(read_info,0,sizeof(read_info)); + 8352: 320a movi r2, 10 + 8354: 3100 movi r1, 0 + 8356: 6c3b mov r0, r14 + 8358: e3ffe300 bsr 0x4958 // 4958 <__memset_fast> + memset(para_data,0,sizeof(para_data)); + 835c: 3232 movi r2, 50 + 835e: 3100 movi r1, 0 + 8360: 1803 addi r0, r14, 12 + 8362: e3ffe2fb bsr 0x4958 // 4958 <__memset_fast> + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8366: 1163 lrw r3, 0x20000494 // 83f0 + 8368: 9387 ld.w r4, (r3, 0x1c) + 836a: 3c40 cmpnei r4, 0 + 836c: 0c3b bf 0x83e2 // 83e2 + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + + temp_addr = EEPROM_EngSave_StartAddr + (save_block - 1) * EEPROM_OFFSET_ADDRSIZE; //通过扇区编号计算当前总能耗存储扇区地址 + 836e: 1162 lrw r3, 0x400008 // 83f4 + 8370: 610c addu r4, r3 + 8372: 4486 lsli r4, r4, 6 + + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 8374: 1141 lrw r2, 0xeffffdc0 // 83f8 + 8376: 33b0 movi r3, 176 + 8378: 6090 addu r2, r4 + 837a: 4363 lsli r3, r3, 3 + 837c: 648c cmphs r3, r2 + 837e: 0c34 bf 0x83e6 // 83e6 + + ReadDataArry_U8(temp_addr,4,read_info); //读取目标地址的标志位和存储数据长度 + 8380: 6cbb mov r2, r14 + 8382: 3104 movi r1, 4 + 8384: 6c13 mov r0, r4 + 8386: e3fff2bd bsr 0x6900 // 6900 + + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 838a: d84e0000 ld.b r2, (r14, 0x0) + 838e: 33a6 movi r3, 166 + 8390: 64ca cmpne r2, r3 + 8392: 082c bt 0x83ea // 83ea + + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 8394: d82e0002 ld.b r1, (r14, 0x2) + 8398: d86e0001 ld.b r3, (r14, 0x1) + 839c: 4128 lsli r1, r1, 8 + 839e: 6c4c or r1, r3 + + if(read_len <= EEPROM_ENERGY_SIZE){ + 83a0: 3332 movi r3, 50 + 83a2: 644c cmphs r3, r1 + 83a4: 0c16 bf 0x83d0 // 83d0 + + ReadDataArry_U8(temp_addr+EEPROM_Offset_Data,read_len,para_data); + 83a6: 5c0e addi r0, r4, 4 + 83a8: 1a03 addi r2, r14, 12 + 83aa: e3fff2ab bsr 0x6900 // 6900 + + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE)) == read_info[3]){ + 83ae: 310c movi r1, 12 + 83b0: 1803 addi r0, r14, 12 + 83b2: e3fffdbb bsr 0x7f28 // 7f28 + 83b6: d86e0003 ld.b r3, (r14, 0x3) + 83ba: 640e cmpne r3, r0 + 83bc: 080c bt 0x83d4 // 83d4 + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE)); + 83be: 1903 addi r1, r14, 12 + 83c0: 320c movi r2, 12 + 83c2: 6c17 mov r0, r5 + 83c4: e3ffe30e bsr 0x49e0 // 49e0 <__memcpy_fast> + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadSucc"); + 83c8: 102d lrw r1, 0xb216 // 83fc + 83ca: 3000 movi r0, 0 + 83cc: e3fffb34 bsr 0x7a34 // 7a34 + return 0x04; + } + + } + + return 0x00; + 83d0: 3000 movi r0, 0 + 83d2: 0406 br 0x83de // 83de + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadFail"); + 83d4: 3000 movi r0, 0 + 83d6: 102b lrw r1, 0xb22b // 8400 + 83d8: e3fffb2e bsr 0x7a34 // 7a34 + return 0x04; + 83dc: 3004 movi r0, 4 +} + 83de: 1410 addi r14, r14, 64 + 83e0: 1492 pop r4-r5, r15 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 83e2: 3001 movi r0, 1 + 83e4: 07fd br 0x83de // 83de + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 83e6: 3002 movi r0, 2 + 83e8: 07fb br 0x83de // 83de + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 83ea: 3003 movi r0, 3 + 83ec: 07f9 br 0x83de // 83de + 83ee: 0000 bkpt + 83f0: 20000494 .long 0x20000494 + 83f4: 00400008 .long 0x00400008 + 83f8: effffdc0 .long 0xeffffdc0 + 83fc: 0000b216 .long 0x0000b216 + 8400: 0000b22b .long 0x0000b22b + +Disassembly of section .text.EEPROM_WriteTotalEng: + +00008404 : +/********************************************************************* + * Function Name : EEPROM_WriteTotalEng + * Description : 写入总电量 + *********************************************************************/ +U8_T EEPROM_WriteTotalEng(ENERGY_SAVE *info) +{ + 8404: 14d4 push r4-r7, r15 + 8406: 142f subi r14, r14, 60 + U8_T savepara_falg = 0x00; + U32_T temp_addr = EEPROM_EngSave_StartAddr; + U16_T save_len = sizeof(ENERGY_SAVE); + uint32_t save_block = 0,save_cnt = 0; + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 8408: 11c7 lrw r6, 0x20000494 // 84a4 +{ + 840a: 6dc3 mov r7, r0 + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 840c: 9667 ld.w r3, (r6, 0x1c) + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 840e: 3b40 cmpnei r3, 0 + 8410: 0c43 bf 0x8496 // 8496 + if(e_save.eng_save_max == 0) return 0x02; + 8412: 9626 ld.w r1, (r6, 0x18) + 8414: 3940 cmpnei r1, 0 + 8416: 0c42 bf 0x849a // 849a + + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 8418: 3200 movi r2, 0 + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + 841a: 9001 ld.w r0, (r0, 0x4) + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 841c: 2a00 subi r2, 1 + 841e: 6482 cmpne r0, r2 + 8420: 0c3f bf 0x849e // 849e + return 0x03; + } + info->eng_save_cnt++; + 8422: 2000 addi r0, 1 + + if(info->eng_save_cnt > e_save.eng_save_max) + 8424: 6404 cmphs r1, r0 + info->eng_save_cnt++; + 8426: b701 st.w r0, (r7, 0x4) + if(info->eng_save_cnt > e_save.eng_save_max) + 8428: 0835 bt 0x8492 // 8492 + 842a: b860 st.w r3, (r14, 0x0) + { + e_save.eng_save_offset = (info->eng_save_cnt/e_save.eng_save_max)+1; //更新扇区编号 + 842c: e3fff84e bsr 0x74c8 // 74c8 <__udivsi3> + 8430: 2000 addi r0, 1 + 8432: b607 st.w r0, (r6, 0x1c) + savepara_falg = 0x01; + 8434: 3401 movi r4, 1 + 8436: 9860 ld.w r3, (r14, 0x0) + + } + + //通过扇区编号计算当前总能耗存储扇区地址 + temp_addr = EEPROM_EngSave_StartAddr + (e_save.eng_save_offset - 1) * EEPROM_OFFSET_ADDRSIZE; + 8438: 105c lrw r2, 0x400008 // 84a8 + 843a: 96a7 ld.w r5, (r6, 0x1c) + 843c: 6148 addu r5, r2 + 843e: 45a6 lsli r5, r5, 6 + + if(temp_addr > EEPROM_EngSave_EndAddr ) //超限,不再改变存储扇区 + 8440: 105b lrw r2, 0x100007c0 // 84ac + 8442: 6548 cmphs r2, r5 + 8444: 0804 bt 0x844c // 844c + { + e_save.eng_save_offset = save_block; + 8446: b667 st.w r3, (r6, 0x1c) + savepara_falg = 0x00; + //info->eng_save_cnt = save_cnt; + temp_addr = EEPROM_EngSave_EndAddr; + 8448: 6d4b mov r5, r2 + savepara_falg = 0x00; + 844a: 3400 movi r4, 0 + } + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 844c: 3300 movi r3, 0 + 844e: 2b59 subi r3, 90 + 8450: dc6e0004 st.b r3, (r14, 0x4) + save_data[1] = save_len & 0xFF; + 8454: 330c movi r3, 12 + 8456: dc6e0005 st.b r3, (r14, 0x5) + save_data[2] = (save_len >> 8) & 0xFF; + 845a: 3300 movi r3, 0 + 845c: dc6e0006 st.b r3, (r14, 0x6) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8460: 1b02 addi r3, r14, 8 + 8462: 320c movi r2, 12 + 8464: 6c0f mov r0, r3 + 8466: 6c5f mov r1, r7 + 8468: e3ffe2bc bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 846c: 310c movi r1, 12 + 846e: e3fffd5d bsr 0x7f28 // 7f28 + 8472: dc0e0007 st.b r0, (r14, 0x7) + + save_len+=4; + + Page_ProgramData(temp_addr,save_len,save_data); + 8476: 1a01 addi r2, r14, 4 + 8478: 3110 movi r1, 16 + 847a: 6c17 mov r0, r5 + 847c: e3fff1f2 bsr 0x6860 // 6860 + + + if(savepara_falg == 0x01) + 8480: 3c41 cmpnei r4, 1 + 8482: 0805 bt 0x848c // 848c + { + EEOROM_ENERGY_WriteSet(&e_save); + 8484: 1008 lrw r0, 0x20000494 // 84a4 + 8486: e3fffe05 bsr 0x8090 // 8090 + } + + return 0; + 848a: 3400 movi r4, 0 +} + 848c: 6c13 mov r0, r4 + 848e: 140f addi r14, r14, 60 + 8490: 1494 pop r4-r7, r15 + U8_T savepara_falg = 0x00; + 8492: 3400 movi r4, 0 + 8494: 07d2 br 0x8438 // 8438 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 8496: 3401 movi r4, 1 + 8498: 07fa br 0x848c // 848c + if(e_save.eng_save_max == 0) return 0x02; + 849a: 3402 movi r4, 2 + 849c: 07f8 br 0x848c // 848c + return 0x03; + 849e: 3403 movi r4, 3 + 84a0: 07f6 br 0x848c // 848c + 84a2: 0000 bkpt + 84a4: 20000494 .long 0x20000494 + 84a8: 00400008 .long 0x00400008 + 84ac: 100007c0 .long 0x100007c0 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +000084b0 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 84b0: 14d1 push r4, r15 + 84b2: 1432 subi r14, r14, 72 + 84b4: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 84b6: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 84b8: 3240 movi r2, 64 + 84ba: 3100 movi r1, 0 + 84bc: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 84be: b860 st.w r3, (r14, 0x0) + 84c0: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 84c4: e3ffe24a bsr 0x4958 // 4958 <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 84c8: 3080 movi r0, 128 + 84ca: 6cbb mov r2, r14 + 84cc: 3104 movi r1, 4 + 84ce: 4015 lsli r0, r0, 21 + 84d0: e3fff218 bsr 0x6900 // 6900 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 84d4: d84e0000 ld.b r2, (r14, 0x0) + 84d8: 33ae movi r3, 174 + 84da: 64ca cmpne r2, r3 + 84dc: 0c04 bf 0x84e4 // 84e4 + return 0x00; + } + } + } + + return 0x01; + 84de: 3001 movi r0, 1 +} + 84e0: 1412 addi r14, r14, 72 + 84e2: 1491 pop r4, r15 + read_len |= read_info[1]; + 84e4: d82e0002 ld.b r1, (r14, 0x2) + 84e8: d86e0001 ld.b r3, (r14, 0x1) + 84ec: 4128 lsli r1, r1, 8 + 84ee: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 84f0: 3340 movi r3, 64 + 84f2: 644c cmphs r3, r1 + 84f4: 0ff5 bf 0x84de // 84de + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 84f6: 1a02 addi r2, r14, 8 + 84f8: 101b lrw r0, 0x10000004 // 8564 + 84fa: e3fff203 bsr 0x6900 // 6900 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 84fe: 3125 movi r1, 37 + 8500: 1802 addi r0, r14, 8 + 8502: e3fffd13 bsr 0x7f28 // 7f28 + 8506: d86e0003 ld.b r3, (r14, 0x3) + 850a: 640e cmpne r3, r0 + 850c: 0be9 bt 0x84de // 84de + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 850e: 3225 movi r2, 37 + 8510: 1902 addi r1, r14, 8 + 8512: 6c13 mov r0, r4 + 8514: e3ffe266 bsr 0x49e0 // 49e0 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 8518: 1094 lrw r4, 0x200004c0 // 8568 + SYSCON_IWDCNT_Reload(); + 851a: e3ffedb9 bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 851e: 8440 ld.b r2, (r4, 0x0) + 8520: 1033 lrw r1, 0xb293 // 856c + 8522: 3000 movi r0, 0 + 8524: e3fffa88 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevType:%d",g_mcu_dev.dev_type); + 8528: 8441 ld.b r2, (r4, 0x1) + 852a: 1032 lrw r1, 0xb2a1 // 8570 + 852c: 3000 movi r0, 0 + 852e: e3fffa83 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 8532: 8442 ld.b r2, (r4, 0x2) + 8534: 1030 lrw r1, 0xb2af // 8574 + 8536: 3000 movi r0, 0 + 8538: e3fffa7e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAppVer:%d",g_mcu_dev.dev_app_ver); + 853c: 8443 ld.b r2, (r4, 0x3) + 853e: 102f lrw r1, 0xb2c0 // 8578 + 8540: 3000 movi r0, 0 + 8542: e3fffa79 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 8546: 8444 ld.b r2, (r4, 0x4) + 8548: 102d lrw r1, 0xb2d0 // 857c + 854a: 3000 movi r0, 0 + 854c: e3fffa74 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8550: 3000 movi r0, 0 + 8552: 5c52 addi r2, r4, 5 + 8554: 102b lrw r1, 0xb2e1 // 8580 + 8556: e3fffa6f bsr 0x7a34 // 7a34 + SYSCON_IWDCNT_Reload(); + 855a: e3ffed99 bsr 0x608c // 608c + return 0x00; + 855e: 3000 movi r0, 0 + 8560: 07c0 br 0x84e0 // 84e0 + 8562: 0000 bkpt + 8564: 10000004 .long 0x10000004 + 8568: 200004c0 .long 0x200004c0 + 856c: 0000b293 .long 0x0000b293 + 8570: 0000b2a1 .long 0x0000b2a1 + 8574: 0000b2af .long 0x0000b2af + 8578: 0000b2c0 .long 0x0000b2c0 + 857c: 0000b2d0 .long 0x0000b2d0 + 8580: 0000b2e1 .long 0x0000b2e1 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00008584 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 8584: 14d0 push r15 + 8586: 1432 subi r14, r14, 72 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 8588: 3300 movi r3, 0 + 858a: 2b51 subi r3, 82 + 858c: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 8590: 3325 movi r3, 37 + 8592: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 8596: 3300 movi r3, 0 + 8598: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 859c: 1b01 addi r3, r14, 4 +{ + 859e: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 85a0: 3225 movi r2, 37 + 85a2: 6c0f mov r0, r3 + 85a4: e3ffe21e bsr 0x49e0 // 49e0 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 85a8: 3125 movi r1, 37 + 85aa: e3fffcbf bsr 0x7f28 // 7f28 + 85ae: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 85b2: 3080 movi r0, 128 + 85b4: 4015 lsli r0, r0, 21 + 85b6: 6cbb mov r2, r14 + 85b8: 3129 movi r1, 41 + 85ba: e3fff153 bsr 0x6860 // 6860 + + return 0; +} + 85be: 3000 movi r0, 0 + 85c0: 1412 addi r14, r14, 72 + 85c2: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +000085c4 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85c4: 14d2 push r4-r5, r15 + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + 85c6: 3300 movi r3, 0 + 85c8: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 85ca: 3306 movi r3, 6 + 85cc: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 85ce: 3304 movi r3, 4 + 85d0: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85d2: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 85d4: 3311 movi r3, 17 + 85d6: a064 st.b r3, (r0, 0x4) +{ + 85d8: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 85da: 3220 movi r2, 32 + 85dc: 3100 movi r1, 0 + 85de: 6c17 mov r0, r5 + 85e0: e3ffe1bc bsr 0x4958 // 4958 <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 85e4: 3211 movi r2, 17 + 85e6: 1025 lrw r1, 0xb2ef // 85f8 + 85e8: 6c17 mov r0, r5 + 85ea: e3ffe1fb bsr 0x49e0 // 49e0 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 85ee: 6c13 mov r0, r4 + 85f0: e3ffffca bsr 0x8584 // 8584 +#endif +} + 85f4: 1492 pop r4-r5, r15 + 85f6: 0000 bkpt + 85f8: 0000b2ef .long 0x0000b2ef + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +000085fc : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 85fc: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 85fe: 8063 ld.b r3, (r0, 0x3) + 8600: 3b44 cmpnei r3, 4 +{ + 8602: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 8604: 0c21 bf 0x8646 // 8646 + { + info->dev_app_ver = Project_FW_Version; + 8606: 3304 movi r3, 4 + 8608: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 860a: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 860c: 8461 ld.b r3, (r4, 0x1) + 860e: 3b46 cmpnei r3, 6 + 8610: 0c04 bf 0x8618 // 8618 + { + info->dev_type = Project_Type; + 8612: 3306 movi r3, 6 + 8614: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 8616: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 8618: 8464 ld.b r3, (r4, 0x4) + 861a: 3b51 cmpnei r3, 17 + 861c: 0c04 bf 0x8624 // 8624 + { + info->dev_name_len = sizeof(Peoject_Name); + 861e: 3311 movi r3, 17 + 8620: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 8622: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 8624: 5cd2 addi r6, r4, 5 + 8626: 3211 movi r2, 17 + 8628: 102a lrw r1, 0xb2ef // 8650 + 862a: 6c1b mov r0, r6 + 862c: e3ffe20c bsr 0x4a44 // 4a44 <__GI_strncmp> + 8630: 3840 cmpnei r0, 0 + 8632: 0c0c bf 0x864a // 864a + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 8634: 8444 ld.b r2, (r4, 0x4) + 8636: 1027 lrw r1, 0xb2ef // 8650 + 8638: 6c1b mov r0, r6 + 863a: e3ffe1d3 bsr 0x49e0 // 49e0 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 863e: 6c13 mov r0, r4 + 8640: e3ffffa2 bsr 0x8584 // 8584 + } +#endif +} + 8644: 0405 br 0x864e // 864e + U8_T save_flag = 0; + 8646: 3500 movi r5, 0 + 8648: 07e2 br 0x860c // 860c + if(save_flag == 0x01) + 864a: 3d41 cmpnei r5, 1 + 864c: 0ff9 bf 0x863e // 863e +} + 864e: 1493 pop r4-r6, r15 + 8650: 0000b2ef .long 0x0000b2ef + +Disassembly of section .text.EEPROM_Init: + +00008654 : +{ + 8654: 14d2 push r4-r5, r15 + EnIFCClk; //使能 IFC 时钟 + 8656: 117b lrw r3, 0x20000060 // 8740 + 8658: 3201 movi r2, 1 + 865a: 9360 ld.w r3, (r3, 0x0) + 865c: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 865e: 9345 ld.w r2, (r3, 0x14) + 8660: 3aa1 bseti r2, 1 + 8662: 3ab0 bseti r2, 16 + 8664: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 8666: 300a movi r0, 10 + 8668: e3fff184 bsr 0x6970 // 6970 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 866c: 1196 lrw r4, 0x200004c0 // 8744 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read MCU_DEV <*****************/"); + 866e: 1137 lrw r1, 0xb300 // 8748 + 8670: 3000 movi r0, 0 + 8672: e3fff9e1 bsr 0x7a34 // 7a34 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 8676: 3225 movi r2, 37 + 8678: 3100 movi r1, 0 + 867a: 6c13 mov r0, r4 + 867c: e3ffe16e bsr 0x4958 // 4958 <__memset_fast> + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 8680: 6c13 mov r0, r4 + 8682: e3ffff17 bsr 0x84b0 // 84b0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 8686: 1172 lrw r3, 0x20000480 // 874c + 8688: 8366 ld.b r3, (r3, 0x6) + 868a: 8440 ld.b r2, (r4, 0x0) + 868c: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 868e: 6d43 mov r5, r0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 8690: 0c05 bf 0x869a // 869a + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 8692: 6c13 mov r0, r4 + g_mcu_dev.dev_addr = g_Dip.addr; + 8694: a460 st.b r3, (r4, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 8696: e3ffff77 bsr 0x8584 // 8584 + if(rev == 0x00){ + 869a: 3d40 cmpnei r5, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 869c: 110a lrw r0, 0x200004c0 // 8744 + if(rev == 0x00){ + 869e: 0837 bt 0x870c // 870c + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 86a0: e3ffffae bsr 0x85fc // 85fc + BLV_DetEnergy_Init(); + 86a4: e000008e bsr 0x87c0 // 87c0 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read EngPara <*****************/"); + 86a8: 112a lrw r1, 0xb349 // 8750 + 86aa: 3000 movi r0, 0 + 86ac: e3fff9c4 bsr 0x7a34 // 7a34 + memset(&e_save,0,sizeof(ENERGY_SAVE_PARA)); + 86b0: 322c movi r2, 44 + 86b2: 3100 movi r1, 0 + 86b4: 1108 lrw r0, 0x20000494 // 8754 + 86b6: e3ffe151 bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEOROM_ENERGY_ReadSet(&e_save); //电能检测参数,读取 + 86ba: 1107 lrw r0, 0x20000494 // 8754 + 86bc: e3fffc42 bsr 0x7f40 // 7f40 + 86c0: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init1 ReadEngPara Rev:%d",eng_rev); + 86c2: 6c83 mov r2, r0 + 86c4: 1125 lrw r1, 0xb37e // 8758 + 86c6: 3000 movi r0, 0 + 86c8: e3fff9b6 bsr 0x7a34 // 7a34 + if(eng_rev == 0) + 86cc: 3c40 cmpnei r4, 0 + 86ce: 0c04 bf 0x86d6 // 86d6 + EEPROM_Default_ENERGY(&e_save); + 86d0: 1101 lrw r0, 0x20000494 // 8754 + 86d2: e3fffda7 bsr 0x8220 // 8220 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read TotalEng <*****************/"); + 86d6: 1122 lrw r1, 0xb397 // 875c + 86d8: 3000 movi r0, 0 + 86da: e3fff9ad bsr 0x7a34 // 7a34 + memset(&eng_info,0,sizeof(ENERGY_SAVE)); + 86de: 320c movi r2, 12 + 86e0: 3100 movi r1, 0 + 86e2: 1100 lrw r0, 0x200004e8 // 8760 + 86e4: e3ffe13a bsr 0x4958 // 4958 <__memset_fast> + eng_rev = EEPROM_ReadTotalEng(&eng_info); // + 86e8: 101e lrw r0, 0x200004e8 // 8760 + 86ea: e3fffe31 bsr 0x834c // 834c + 86ee: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Rev:%d",eng_rev); + 86f0: 6c83 mov r2, r0 + 86f2: 103d lrw r1, 0xb3cd // 8764 + 86f4: 3000 movi r0, 0 + 86f6: e3fff99f bsr 0x7a34 // 7a34 + if(eng_rev == 0x00){ + 86fa: 3c40 cmpnei r4, 0 + 86fc: 0820 bt 0x873c // 873c + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal SUCC"); + 86fe: 103b lrw r1, 0xb3e4 // 8768 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 8700: 3000 movi r0, 0 + 8702: e3fff999 bsr 0x7a34 // 7a34 + BLV_DetEnergy_Default(); + 8706: e0000075 bsr 0x87f0 // 87f0 +} + 870a: 1492 pop r4-r5, r15 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 870c: e3ffff5c bsr 0x85c4 // 85c4 + SYSCON_IWDCNT_Reload(); + 8710: e3ffecbe bsr 0x608c // 608c + Dbg_Println(DBG_BIT_SYS_STATUS,"EE Use Defalut Para"); + 8714: 1036 lrw r1, 0xb335 // 876c + 8716: 3000 movi r0, 0 + 8718: e3fff98e bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 871c: 8442 ld.b r2, (r4, 0x2) + 871e: 1035 lrw r1, 0xb2af // 8770 + 8720: 3000 movi r0, 0 + 8722: e3fff989 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 8726: 8444 ld.b r2, (r4, 0x4) + 8728: 1033 lrw r1, 0xb2d0 // 8774 + 872a: 3000 movi r0, 0 + 872c: e3fff984 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8730: 1052 lrw r2, 0x200004c5 // 8778 + 8732: 1033 lrw r1, 0xb2e1 // 877c + 8734: 3000 movi r0, 0 + 8736: e3fff97f bsr 0x7a34 // 7a34 + 873a: 07b5 br 0x86a4 // 86a4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 873c: 1031 lrw r1, 0xb3f9 // 8780 + 873e: 07e1 br 0x8700 // 8700 + 8740: 20000060 .long 0x20000060 + 8744: 200004c0 .long 0x200004c0 + 8748: 0000b300 .long 0x0000b300 + 874c: 20000480 .long 0x20000480 + 8750: 0000b349 .long 0x0000b349 + 8754: 20000494 .long 0x20000494 + 8758: 0000b37e .long 0x0000b37e + 875c: 0000b397 .long 0x0000b397 + 8760: 200004e8 .long 0x200004e8 + 8764: 0000b3cd .long 0x0000b3cd + 8768: 0000b3e4 .long 0x0000b3e4 + 876c: 0000b335 .long 0x0000b335 + 8770: 0000b2af .long 0x0000b2af + 8774: 0000b2d0 .long 0x0000b2d0 + 8778: 200004c5 .long 0x200004c5 + 877c: 0000b2e1 .long 0x0000b2e1 + 8780: 0000b3f9 .long 0x0000b3f9 + +Disassembly of section .text.BT_Uart_Packing.part.3: + +00008784 : + +} + + +//组包发送,用于蓝牙设置的回复 +void BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag) + 8784: 14d4 push r4-r7, r15 + 8786: 3914 cmphsi r1, 21 + 8788: 6d83 mov r6, r0 + 878a: 6d4b mov r5, r2 + 878c: 6d07 mov r4, r1 + 878e: 0c02 bf 0x8792 // 8792 + 8790: 3414 movi r4, 20 + 8792: 75d0 zextb r7, r4 + + if(BT_Len > 20){ + BT_Len = 20; + } + + memset(g_Eng.BT_SdBuff,0,20); + 8794: 3214 movi r2, 20 + 8796: 3100 movi r1, 0 + 8798: 1008 lrw r0, 0x2000057d // 87b8 + 879a: e3ffe0df bsr 0x4958 // 4958 <__memset_fast> + memcpy(g_Eng.BT_SdBuff, data, BT_Len); + 879e: 6c9f mov r2, r7 + 87a0: 6c5b mov r1, r6 + 87a2: 1006 lrw r0, 0x2000057d // 87b8 + 87a4: e3ffe11e bsr 0x49e0 // 49e0 <__memcpy_fast> + g_Eng.BT_SdLen = BT_Len; + 87a8: 1045 lrw r2, 0x20000578 // 87bc + + g_Eng.BT_SendFlag |= (0x01 << flag); + 87aa: 3301 movi r3, 1 + 87ac: 8a2d ld.h r1, (r2, 0x1a) + 87ae: 70d4 lsl r3, r5 + 87b0: 6cc4 or r3, r1 + g_Eng.BT_SdLen = BT_Len; + 87b2: a299 st.b r4, (r2, 0x19) + g_Eng.BT_SendFlag |= (0x01 << flag); + 87b4: aa6d st.h r3, (r2, 0x1a) +} + 87b6: 1494 pop r4-r7, r15 + 87b8: 2000057d .long 0x2000057d + 87bc: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_DetEnergy_Init: + +000087c0 : +{ + 87c0: 14d0 push r15 + memset(&u_det,0,sizeof(DetUart_t)); + 87c2: 3248 movi r2, 72 + 87c4: 3100 movi r1, 0 + 87c6: 1008 lrw r0, 0x200004f4 // 87e4 + 87c8: e3ffe0c8 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_CalFactor,0,sizeof(HLW8110_REG)); + 87cc: 323c movi r2, 60 + 87ce: 3100 movi r1, 0 + 87d0: 1006 lrw r0, 0x2000053c // 87e8 + 87d2: e3ffe0c3 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_Eng,0,sizeof(DetEng_Info)); + 87d6: 3278 movi r2, 120 + 87d8: 3100 movi r1, 0 + 87da: 1005 lrw r0, 0x20000578 // 87ec + 87dc: e3ffe0be bsr 0x4958 // 4958 <__memset_fast> +} + 87e0: 1490 pop r15 + 87e2: 0000 bkpt + 87e4: 200004f4 .long 0x200004f4 + 87e8: 2000053c .long 0x2000053c + 87ec: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_DetEnergy_Default: + +000087f0 : +{ + 87f0: 14d3 push r4-r6, r15 + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 87f2: 11aa lrw r5, 0x20000494 // 8898 + 87f4: 118a lrw r4, 0x20000578 // 889c + 87f6: 95c1 ld.w r6, (r5, 0x4) + 87f8: 9434 ld.w r1, (r4, 0x50) + 87fa: 6c1b mov r0, r6 + 87fc: e3ffd88c bsr 0x3914 // 3914 <__nesf2> + 8800: 3840 cmpnei r0, 0 + 8802: 0c02 bf 0x8806 // 8806 + g_Eng.I_K1_Val = e_save.i_k1_val; + 8804: b4d4 st.w r6, (r4, 0x50) + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 8806: 95c2 ld.w r6, (r5, 0x8) + 8808: 9435 ld.w r1, (r4, 0x54) + 880a: 6c1b mov r0, r6 + 880c: e3ffd884 bsr 0x3914 // 3914 <__nesf2> + 8810: 3840 cmpnei r0, 0 + 8812: 0c02 bf 0x8816 // 8816 + g_Eng.I_K2_Val = e_save.i_k2_val; + 8814: b4d5 st.w r6, (r4, 0x54) + if(e_save.v_k_val != g_Eng.V_K_Val) + 8816: 95c0 ld.w r6, (r5, 0x0) + 8818: 9433 ld.w r1, (r4, 0x4c) + 881a: 6c1b mov r0, r6 + 881c: e3ffd87c bsr 0x3914 // 3914 <__nesf2> + 8820: 3840 cmpnei r0, 0 + 8822: 0c02 bf 0x8826 // 8826 + g_Eng.V_K_Val = e_save.v_k_val; + 8824: b4d3 st.w r6, (r4, 0x4c) + if(e_save.p_k_val != g_Eng.P_K_Val) + 8826: 95c3 ld.w r6, (r5, 0xc) + 8828: 9436 ld.w r1, (r4, 0x58) + 882a: 6c1b mov r0, r6 + 882c: e3ffd874 bsr 0x3914 // 3914 <__nesf2> + 8830: 3840 cmpnei r0, 0 + 8832: 0c02 bf 0x8836 // 8836 + g_Eng.P_K_Val = e_save.p_k_val; + 8834: b4d6 st.w r6, (r4, 0x58) + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8836: 95c4 ld.w r6, (r5, 0x10) + 8838: 9437 ld.w r1, (r4, 0x5c) + 883a: 6c1b mov r0, r6 + 883c: e3ffd86c bsr 0x3914 // 3914 <__nesf2> + 8840: 3840 cmpnei r0, 0 + 8842: 0c02 bf 0x8846 // 8846 + g_Eng.I_OffSetVal = e_save.i_OffSetVal; + 8844: b4d7 st.w r6, (r4, 0x5c) + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8846: 95c5 ld.w r6, (r5, 0x14) + 8848: 9438 ld.w r1, (r4, 0x60) + 884a: 6c1b mov r0, r6 + 884c: e3ffd864 bsr 0x3914 // 3914 <__nesf2> + 8850: 3840 cmpnei r0, 0 + 8852: 0c02 bf 0x8856 // 8856 + g_Eng.P_OffSetVal = e_save.p_OffSetVal; + 8854: b4d8 st.w r6, (r4, 0x60) + if(eng_info.eng_total != g_Eng.Total_Eng) + 8856: 1073 lrw r3, 0x200004e8 // 88a0 + 8858: 9340 ld.w r2, (r3, 0x0) + 885a: 9428 ld.w r1, (r4, 0x20) + 885c: 644a cmpne r2, r1 + 885e: 0c03 bf 0x8864 // 8864 + g_Eng.Total_Eng = eng_info.eng_total; + 8860: b448 st.w r2, (r4, 0x20) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 8862: b449 st.w r2, (r4, 0x24) + if(eng_info.U32_EnergyA_RegData != g_Eng.U32_EnergyA_RegData) + 8864: 9362 ld.w r3, (r3, 0x8) + 8866: 944f ld.w r2, (r4, 0x3c) + 8868: 648e cmpne r3, r2 + 886a: 0c02 bf 0x886e // 886e + g_Eng.U32_EnergyA_RegData = eng_info.U32_EnergyA_RegData; + 886c: b46f st.w r3, (r4, 0x3c) + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 886e: 9568 ld.w r3, (r5, 0x20) + 8870: 9459 ld.w r2, (r4, 0x64) + 8872: 648e cmpne r3, r2 + 8874: 0c02 bf 0x8878 // 8878 + g_Eng.Collect_Tim = e_save.Collect_Tim; + 8876: b479 st.w r3, (r4, 0x64) + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 8878: 956a ld.w r3, (r5, 0x28) + 887a: 945b ld.w r2, (r4, 0x6c) + 887c: 648e cmpne r3, r2 + 887e: 0c02 bf 0x8882 // 8882 + g_Eng.SaveFlash_Tim = e_save.SaveFlash_Tim; + 8880: b47b st.w r3, (r4, 0x6c) + if(e_save.Report_Tim != g_Eng.Report_Tim) + 8882: 9569 ld.w r3, (r5, 0x24) + 8884: 945a ld.w r2, (r4, 0x68) + 8886: 648e cmpne r3, r2 + 8888: 0c02 bf 0x888c // 888c + g_Eng.Report_Tim = e_save.Report_Tim; + 888a: b47a st.w r3, (r4, 0x68) + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_DetEnergy_Default Init"); + 888c: 1026 lrw r1, 0xb40e // 88a4 + 888e: 3000 movi r0, 0 + 8890: e3fff8d2 bsr 0x7a34 // 7a34 +} + 8894: 1493 pop r4-r6, r15 + 8896: 0000 bkpt + 8898: 20000494 .long 0x20000494 + 889c: 20000578 .long 0x20000578 + 88a0: 200004e8 .long 0x200004e8 + 88a4: 0000b40e .long 0x0000b40e + +Disassembly of section .text.HLW8110_CheckSum: + +000088a8 : +{ + 88a8: 6040 addu r1, r0 + U8_T data_sum = 0; + 88aa: 3300 movi r3, 0 + for(U16_T i = 0;i + return ~data_sum; + 88b0: 6cce nor r3, r3 + 88b2: 740c zextb r0, r3 +} + 88b4: 783c jmp r15 + data_sum += data[i]; + 88b6: 8040 ld.b r2, (r0, 0x0) + 88b8: 60c8 addu r3, r2 + 88ba: 74cc zextb r3, r3 + 88bc: 2000 addi r0, 1 + 88be: 07f7 br 0x88ac // 88ac + +Disassembly of section .text.HLW8110_WriteREG_EN: + +000088c0 : +{ + 88c0: 14d0 push r15 + 88c2: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 88c4: 3300 movi r3, 0 + 88c6: b860 st.w r3, (r14, 0x0) + 88c8: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 88cc: 3300 movi r3, 0 + 88ce: 2b5a subi r3, 91 + 88d0: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 88d4: 3300 movi r3, 0 + 88d6: 2b15 subi r3, 22 + 88d8: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xE5; + 88dc: 3300 movi r3, 0 + 88de: 2b1a subi r3, 27 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88e0: 3103 movi r1, 3 + 88e2: 6c3b mov r0, r14 + SendData[SendLen++] = 0xE5; + 88e4: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 88e8: e3ffffe0 bsr 0x88a8 // 88a8 + 88ec: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_EN len %d:",SendLen); + 88f0: 3204 movi r2, 4 + 88f2: 1027 lrw r1, 0xb429 // 890c + 88f4: 3002 movi r0, 2 + 88f6: e3fff89f bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 88fa: 1066 lrw r3, 0x20000040 // 8910 + 88fc: 3204 movi r2, 4 + 88fe: 9300 ld.w r0, (r3, 0x0) + 8900: 6c7b mov r1, r14 + 8902: e3ffef8b bsr 0x6818 // 6818 +} + 8906: 1402 addi r14, r14, 8 + 8908: 1490 pop r15 + 890a: 0000 bkpt + 890c: 0000b429 .long 0x0000b429 + 8910: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_WriteREG_DIS: + +00008914 : +{ + 8914: 14d0 push r15 + 8916: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 8918: 3300 movi r3, 0 + 891a: b860 st.w r3, (r14, 0x0) + 891c: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 8920: 3300 movi r3, 0 + 8922: 2b5a subi r3, 91 + 8924: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 8928: 3300 movi r3, 0 + 892a: 2b15 subi r3, 22 + 892c: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xDC; + 8930: 3300 movi r3, 0 + 8932: 2b23 subi r3, 36 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8934: 3103 movi r1, 3 + 8936: 6c3b mov r0, r14 + SendData[SendLen++] = 0xDC; + 8938: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 893c: e3ffffb6 bsr 0x88a8 // 88a8 + 8940: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_DIS len%d:",SendLen); + 8944: 3204 movi r2, 4 + 8946: 1027 lrw r1, 0xb43d // 8960 + 8948: 3002 movi r0, 2 + 894a: e3fff875 bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 894e: 1066 lrw r3, 0x20000040 // 8964 + 8950: 3204 movi r2, 4 + 8952: 9300 ld.w r0, (r3, 0x0) + 8954: 6c7b mov r1, r14 + 8956: e3ffef61 bsr 0x6818 // 6818 +} + 895a: 1402 addi r14, r14, 8 + 895c: 1490 pop r15 + 895e: 0000 bkpt + 8960: 0000b43d .long 0x0000b43d + 8964: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_Reset: + +00008968 : +{ + 8968: 14d0 push r15 + 896a: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 896c: 3300 movi r3, 0 + 896e: b860 st.w r3, (r14, 0x0) + 8970: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = 0xA5; + 8974: 3300 movi r3, 0 + 8976: 2b5a subi r3, 91 + 8978: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 897c: 3300 movi r3, 0 + 897e: 2b15 subi r3, 22 + 8980: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0x96; + 8984: 3300 movi r3, 0 + 8986: 2b69 subi r3, 106 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8988: 3103 movi r1, 3 + 898a: 6c3b mov r0, r14 + SendData[SendLen++] = 0x96; + 898c: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8990: e3ffff8c bsr 0x88a8 // 88a8 + 8994: dc0e0003 st.b r0, (r14, 0x3) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"HLW8110 Reset"); + 8998: 3001 movi r0, 1 + 899a: 1026 lrw r1, 0xb451 // 89b0 + 899c: e3fff84c bsr 0x7a34 // 7a34 + UARTTransmit(UART0,SendData,SendLen); + 89a0: 1065 lrw r3, 0x20000040 // 89b4 + 89a2: 3204 movi r2, 4 + 89a4: 9300 ld.w r0, (r3, 0x0) + 89a6: 6c7b mov r1, r14 + 89a8: e3ffef38 bsr 0x6818 // 6818 +} + 89ac: 1402 addi r14, r14, 8 + 89ae: 1490 pop r15 + 89b0: 0000b451 .long 0x0000b451 + 89b4: 20000040 .long 0x20000040 + +Disassembly of section .text.BLV_HLW8110_RWCMD_Packaging: + +000089b8 : +{ + 89b8: 14d4 push r4-r7, r15 + 89ba: 1421 subi r14, r14, 4 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 89bc: 1181 lrw r4, 0x200004f4 // 8a40 +{ + 89be: 6dc3 mov r7, r0 + 89c0: 6d47 mov r5, r1 + 89c2: 6d8b mov r6, r2 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 89c4: 3100 movi r1, 0 + 89c6: 321e movi r2, 30 + 89c8: 6c13 mov r0, r4 + 89ca: e3ffdfc7 bsr 0x4958 // 4958 <__memset_fast> + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89ce: 3300 movi r3, 0 + 89d0: 2b5a subi r3, 91 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89d2: 3220 movi r2, 32 + 89d4: 6090 addu r2, r4 + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 89d6: a460 st.b r3, (r4, 0x0) + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89d8: 3302 movi r3, 2 + 89da: a27c st.b r3, (r2, 0x1c) + 89dc: 3300 movi r3, 0 + 89de: 2b7f subi r3, 128 + 89e0: 6dcc or r7, r3 + u_det.Resent = 0x00; + 89e2: 3340 movi r3, 64 + 89e4: 60d0 addu r3, r4 + 89e6: 3100 movi r1, 0 + if( len > 0) + 89e8: 3d40 cmpnei r5, 0 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 89ea: a4e1 st.b r7, (r4, 0x1) + u_det.Resent = 0x00; + 89ec: a321 st.b r1, (r3, 0x1) + u_det.RevNum = 0x00; + 89ee: a322 st.b r1, (r3, 0x2) + 89f0: 6dcb mov r7, r2 + if( len > 0) + 89f2: 0c22 bf 0x8a36 // 8a36 + u_det.State = 0x01; + 89f4: 3201 movi r2, 1 + 89f6: a75e st.b r2, (r7, 0x1e) + u_det.WR_flag = SEND_W; + 89f8: 3202 movi r2, 2 + 89fa: a340 st.b r2, (r3, 0x0) + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 89fc: 5d43 subi r2, r5, 1 + for (U8_T i = 0; i < len; i++) + 89fe: 3300 movi r3, 0 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a00: b840 st.w r2, (r14, 0x0) + for (U8_T i = 0; i < len; i++) + 8a02: 654c cmphs r3, r5 + 8a04: 0c0f bf 0x8a22 // 8a22 + u_det.SendLen += len; + 8a06: 7554 zextb r5, r5 + 8a08: 5dc6 addi r6, r5, 2 + 8a0a: 7598 zextb r6, r6 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 8a0c: 7459 zexth r1, r6 + 8a0e: 100d lrw r0, 0x200004f4 // 8a40 + 8a10: 6118 addu r4, r6 + u_det.SendLen += len; + 8a12: a7dc st.b r6, (r7, 0x1c) + u_det.SendLen += 1; + 8a14: 2502 addi r5, 3 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 8a16: e3ffff49 bsr 0x88a8 // 88a8 + 8a1a: a400 st.b r0, (r4, 0x0) + u_det.SendLen += 1; + 8a1c: a7bc st.b r5, (r7, 0x1c) +} + 8a1e: 1401 addi r14, r14, 4 + 8a20: 1494 pop r4-r7, r15 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a22: 9840 ld.w r2, (r14, 0x0) + 8a24: 608e subu r2, r3 + 8a26: 4243 lsli r2, r2, 3 + 8a28: 6c5b mov r1, r6 + 8a2a: 5c0c addu r0, r4, r3 + 8a2c: 7049 lsr r1, r2 + for (U8_T i = 0; i < len; i++) + 8a2e: 2300 addi r3, 1 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8a30: a022 st.b r1, (r0, 0x2) + for (U8_T i = 0; i < len; i++) + 8a32: 74cc zextb r3, r3 + 8a34: 07e7 br 0x8a02 // 8a02 + u_det.State = 0x01; + 8a36: 3101 movi r1, 1 + 8a38: a23e st.b r1, (r2, 0x1e) + u_det.WR_flag = SEND_R; + 8a3a: 3201 movi r2, 1 + 8a3c: a340 st.b r2, (r3, 0x0) +} + 8a3e: 07f0 br 0x8a1e // 8a1e + 8a40: 200004f4 .long 0x200004f4 + +Disassembly of section .text.HLW8110_RWCMD_Send: + +00008a44 : +{ + 8a44: 14d1 push r4, r15 + 8a46: 1428 subi r14, r14, 32 + if( (WR_SelFlag == SEND_W)&&(u_det.SendLen > 3) ) + 8a48: 3842 cmpnei r0, 2 + 8a4a: 0818 bt 0x8a7a // 8a7a + 8a4c: 1076 lrw r3, 0x20000514 // 8aa4 + 8a4e: 839c ld.b r4, (r3, 0x1c) + 8a50: 3c03 cmphsi r4, 4 + 8a52: 0c22 bf 0x8a96 // 8a96 + memcpy(SendData,u_det.SendBuff,u_det.SendLen); + 8a54: 6c93 mov r2, r4 + 8a56: 1035 lrw r1, 0x200004f4 // 8aa8 + 8a58: 6c3b mov r0, r14 + 8a5a: e3ffdfc3 bsr 0x49e0 // 49e0 <__memcpy_fast> + SendLen = u_det.SendLen; + 8a5e: 7511 zexth r4, r4 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"SendBuff:",SendData,SendLen); + 8a60: 6cd3 mov r3, r4 + 8a62: 6cbb mov r2, r14 + 8a64: 1032 lrw r1, 0xb46c // 8aac + 8a66: 3002 movi r0, 2 + 8a68: e3fff8aa bsr 0x7bbc // 7bbc + UARTTransmit(UART0,SendData,SendLen); + 8a6c: 1071 lrw r3, 0x20000040 // 8ab0 + 8a6e: 6c93 mov r2, r4 + 8a70: 9300 ld.w r0, (r3, 0x0) + 8a72: 6c7b mov r1, r14 + 8a74: e3ffeed2 bsr 0x6818 // 6818 + 8a78: 0413 br 0x8a9e // 8a9e + else if(WR_SelFlag == SEND_R) + 8a7a: 3841 cmpnei r0, 1 + 8a7c: 080d bt 0x8a96 // 8a96 + memcpy(SendData,u_det.SendBuff,2); + 8a7e: 106b lrw r3, 0x200004f4 // 8aa8 + 8a80: 8b40 ld.h r2, (r3, 0x0) + 8a82: 74c9 zexth r3, r2 + 8a84: dc4e1000 st.h r2, (r14, 0x0) + SendData[1] = (SendData[1] &0x7f ); + 8a88: 4b68 lsri r3, r3, 8 + 8a8a: 327f movi r2, 127 + 8a8c: 68c8 and r3, r2 + 8a8e: dc6e0001 st.b r3, (r14, 0x1) + SendLen = 2; + 8a92: 3402 movi r4, 2 + 8a94: 07e6 br 0x8a60 // 8a60 + Dbg_Println(DBG_BIT_Debug_STATUS,"Send Err!:%d"); + 8a96: 1028 lrw r1, 0xb45f // 8ab4 + 8a98: 3002 movi r0, 2 + 8a9a: e3fff7cd bsr 0x7a34 // 7a34 +} + 8a9e: 1408 addi r14, r14, 32 + 8aa0: 1491 pop r4, r15 + 8aa2: 0000 bkpt + 8aa4: 20000514 .long 0x20000514 + 8aa8: 200004f4 .long 0x200004f4 + 8aac: 0000b46c .long 0x0000b46c + 8ab0: 20000040 .long 0x20000040 + 8ab4: 0000b45f .long 0x0000b45f + +Disassembly of section .text.HLW8110_CleanSdFlag: + +00008ab8 : + u_det.WR_flag = SEND_NONE; + 8ab8: 1063 lrw r3, 0x20000534 // 8ac4 + 8aba: 3200 movi r2, 0 + 8abc: a340 st.b r2, (r3, 0x0) + u_det.RevNum = REV_NONE; + 8abe: a342 st.b r2, (r3, 0x2) +} + 8ac0: 783c jmp r15 + 8ac2: 0000 bkpt + 8ac4: 20000534 .long 0x20000534 + +Disassembly of section .text.Get_RevState: + +00008ac8 : + if(u_det.RevNum == REV_OK) + 8ac8: 1065 lrw r3, 0x20000534 // 8adc + 8aca: 8302 ld.b r0, (r3, 0x2) + 8acc: 3841 cmpnei r0, 1 + 8ace: 0804 bt 0x8ad6 // 8ad6 + u_det.RevNum = REV_NONE; + 8ad0: 3200 movi r2, 0 + 8ad2: a342 st.b r2, (r3, 0x2) +} + 8ad4: 783c jmp r15 + return REV_NONE; + 8ad6: 3000 movi r0, 0 + 8ad8: 07fe br 0x8ad4 // 8ad4 + 8ada: 0000 bkpt + 8adc: 20000534 .long 0x20000534 + +Disassembly of section .text.Get_SendState: + +00008ae0 : + if(u_det.SendState == SEND_STATE_SUCC) + 8ae0: 1066 lrw r3, 0x20000534 // 8af8 + 8ae2: 8303 ld.b r0, (r3, 0x3) + 8ae4: 3841 cmpnei r0, 1 + 8ae6: 0804 bt 0x8aee // 8aee + u_det.SendState = SEND_STATE_NONE; + 8ae8: 3200 movi r2, 0 + 8aea: a343 st.b r2, (r3, 0x3) +} + 8aec: 783c jmp r15 + else if(u_det.SendState == SEND_STATE_FAIL) + 8aee: 3842 cmpnei r0, 2 + 8af0: 0ffc bf 0x8ae8 // 8ae8 + return SEND_STATE_NONE; + 8af2: 3000 movi r0, 0 + 8af4: 07fc br 0x8aec // 8aec + 8af6: 0000 bkpt + 8af8: 20000534 .long 0x20000534 + +Disassembly of section .text.BLV_HLW8110_SendData_Tack: + +00008afc : +{ + 8afc: 14d4 push r4-r7, r15 + 8afe: 1422 subi r14, r14, 8 + switch(u_det.State) + 8b00: 1392 lrw r4, 0x20000514 // 8cc8 + 8b02: 841e ld.b r0, (r4, 0x1e) + 8b04: 2800 subi r0, 1 + 8b06: 3808 cmphsi r0, 9 + 8b08: 0816 bt 0x8b34 // 8b34 + 8b0a: e3ffd503 bsr 0x3510 // 3510 <___gnu_csky_case_uhi> + 8b0e: 0009 .short 0x0009 + 8b10: 005b001d .long 0x005b001d + 8b14: 00730069 .long 0x00730069 + 8b18: 009f0082 .long 0x009f0082 + 8b1c: 00ce00c0 .long 0x00ce00c0 + if(u_det.WR_flag == SEND_R) //读,需要等待回复校验 + 8b20: 136b lrw r3, 0x20000534 // 8ccc + 8b22: 8360 ld.b r3, (r3, 0x0) + 8b24: 3b41 cmpnei r3, 1 + 8b26: 0809 bt 0x8b38 // 8b38 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b28: 136a lrw r3, 0x200000c4 // 8cd0 + 8b2a: 9340 ld.w r2, (r3, 0x0) + 8b2c: 136a lrw r3, 0x2000016c // 8cd4 + 8b2e: b340 st.w r2, (r3, 0x0) + u_det.State = 0x02; + 8b30: 3302 movi r3, 2 + u_det.State = 0x03; + 8b32: a47e st.b r3, (r4, 0x1e) +} + 8b34: 1402 addi r14, r14, 8 + 8b36: 1494 pop r4-r7, r15 + else if(u_det.WR_flag == SEND_W) //写,需要先写使能 + 8b38: 3b42 cmpnei r3, 2 + 8b3a: 0bfd bt 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b3c: 1365 lrw r3, 0x200000c4 // 8cd0 + 8b3e: 9340 ld.w r2, (r3, 0x0) + 8b40: 1365 lrw r3, 0x2000016c // 8cd4 + 8b42: b340 st.w r2, (r3, 0x0) + u_det.State = 0x03; + 8b44: 3303 movi r3, 3 + 8b46: 07f6 br 0x8b32 // 8b32 + if(u_det.WR_flag == SEND_R) + 8b48: 13c4 lrw r6, 0x200004f4 // 8cd8 + 8b4a: 3540 movi r5, 64 + 8b4c: 6158 addu r5, r6 + 8b4e: 8560 ld.b r3, (r5, 0x0) + 8b50: 3b41 cmpnei r3, 1 + 8b52: b8c1 st.w r6, (r14, 0x4) + 8b54: b8a0 st.w r5, (r14, 0x0) + 8b56: 0bef bt 0x8b34 // 8b34 + if((u_det.Resent == 0x00)||(SysTick_1ms - HLW8110_Sned_Tisk >= 80) ) + 8b58: 8541 ld.b r2, (r5, 0x1) + 8b5a: 3a40 cmpnei r2, 0 + 8b5c: 127d lrw r3, 0x200000c4 // 8cd0 + 8b5e: 12fe lrw r7, 0x2000016c // 8cd4 + 8b60: 0c07 bf 0x8b6e // 8b6e + 8b62: 9700 ld.w r0, (r7, 0x0) + 8b64: 9320 ld.w r1, (r3, 0x0) + 8b66: 6042 subu r1, r0 + 8b68: 304f movi r0, 79 + 8b6a: 6440 cmphs r0, r1 + 8b6c: 081b bt 0x8ba2 // 8ba2 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b6e: 9360 ld.w r3, (r3, 0x0) + if(u_det.Resent < 3) + 8b70: 3a02 cmphsi r2, 3 + HLW8110_Sned_Tisk = SysTick_1ms; + 8b72: b760 st.w r3, (r7, 0x0) + if(u_det.Resent < 3) + 8b74: 080a bt 0x8b88 // 8b88 + HLW8110_RWCMD_Send(SEND_R); + 8b76: 3001 movi r0, 1 + 8b78: e3ffff66 bsr 0x8a44 // 8a44 + u_det.Resent++; + 8b7c: 9860 ld.w r3, (r14, 0x0) + 8b7e: 8361 ld.b r3, (r3, 0x1) + 8b80: 2300 addi r3, 1 + 8b82: 9840 ld.w r2, (r14, 0x0) + u_det.Resent++; + 8b84: a261 st.b r3, (r2, 0x1) + break; + 8b86: 07d7 br 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_FAIL; + 8b88: 9860 ld.w r3, (r14, 0x0) + 8b8a: 3202 movi r2, 2 + 8b8c: a343 st.b r2, (r3, 0x3) + u_det.State = HLW_WAIT; + 8b8e: 3309 movi r3, 9 + 8b90: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8b92: 3300 movi r3, 0 + 8b94: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8b96: 9841 ld.w r2, (r14, 0x4) + 8b98: 1271 lrw r3, 0xbb8 // 8cdc + 8b9a: b271 st.w r3, (r2, 0x44) + HLW8110_CleanSdFlag(); + 8b9c: e3ffff8e bsr 0x8ab8 // 8ab8 + break; + 8ba0: 07ca br 0x8b34 // 8b34 + 8ba2: b860 st.w r3, (r14, 0x0) + if(Get_RevState() == REV_OK) + 8ba4: e3ffff92 bsr 0x8ac8 // 8ac8 + 8ba8: 3841 cmpnei r0, 1 + 8baa: 9860 ld.w r3, (r14, 0x0) + 8bac: 0bc4 bt 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bae: 9360 ld.w r3, (r3, 0x0) + 8bb0: b760 st.w r3, (r7, 0x0) + u_det.State = HLW_WAIT; + 8bb2: 3309 movi r3, 9 + 8bb4: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bb6: 3300 movi r3, 0 + u_det.SendState = SEND_STATE_SUCC; + 8bb8: 3201 movi r2, 1 + u_det.Pub_NextState = NextState; + 8bba: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bbc: 330a movi r3, 10 + u_det.SendState = SEND_STATE_SUCC; + 8bbe: a543 st.b r2, (r5, 0x3) + u_det.Pub_WaitTim = WaitTime; + 8bc0: b671 st.w r3, (r6, 0x44) + 8bc2: 07ed br 0x8b9c // 8b9c + HLW8110_Sned_Tisk = SysTick_1ms; + 8bc4: 1263 lrw r3, 0x200000c4 // 8cd0 + 8bc6: 9340 ld.w r2, (r3, 0x0) + 8bc8: 1263 lrw r3, 0x2000016c // 8cd4 + 8bca: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8bcc: 3309 movi r3, 9 + 8bce: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8bd0: 3304 movi r3, 4 + 8bd2: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8bd4: 320a movi r2, 10 + 8bd6: 1261 lrw r3, 0x200004f4 // 8cd8 + 8bd8: b351 st.w r2, (r3, 0x44) + HLW8110_WriteREG_EN(); + 8bda: e3fffe73 bsr 0x88c0 // 88c0 + break; + 8bde: 07ab br 0x8b34 // 8b34 + HLW8110_Sned_Tisk = SysTick_1ms; + 8be0: 117c lrw r3, 0x200000c4 // 8cd0 + 8be2: 9340 ld.w r2, (r3, 0x0) + 8be4: 117c lrw r3, 0x2000016c // 8cd4 + 8be6: b340 st.w r2, (r3, 0x0) + u_det.Resent = 0x00; + 8be8: 1179 lrw r3, 0x20000534 // 8ccc + 8bea: 3200 movi r2, 0 + 8bec: a341 st.b r2, (r3, 0x1) + u_det.RevNum = 0x00; + 8bee: a342 st.b r2, (r3, 0x2) + u_det.State = 0x05; + 8bf0: 3305 movi r3, 5 + 8bf2: 07a0 br 0x8b32 // 8b32 + HLW8110_RWCMD_Send(SEND_W); + 8bf4: 3002 movi r0, 2 + 8bf6: e3ffff27 bsr 0x8a44 // 8a44 + HLW8110_Sned_Tisk = SysTick_1ms; + 8bfa: 1176 lrw r3, 0x200000c4 // 8cd0 + 8bfc: 9340 ld.w r2, (r3, 0x0) + 8bfe: 1176 lrw r3, 0x2000016c // 8cd4 + 8c00: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 8c02: 3309 movi r3, 9 + 8c04: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c06: 3306 movi r3, 6 + 8c08: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c0a: 320a movi r2, 10 + 8c0c: 1173 lrw r3, 0x200004f4 // 8cd8 + 8c0e: b351 st.w r2, (r3, 0x44) + 8c10: 0792 br 0x8b34 // 8b34 + if(u_det.Resent < 3) + 8c12: 1172 lrw r3, 0x200004f4 // 8cd8 + 8c14: 3240 movi r2, 64 + 8c16: 608c addu r2, r3 + 8c18: 8221 ld.b r1, (r2, 0x1) + 8c1a: 3902 cmphsi r1, 3 + 8c1c: 11cd lrw r6, 0x200000c4 // 8cd0 + 8c1e: 11ae lrw r5, 0x2000016c // 8cd4 + 8c20: 080b bt 0x8c36 // 8c36 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c22: 9660 ld.w r3, (r6, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c24: 3001 movi r0, 1 + HLW8110_Sned_Tisk = SysTick_1ms; + 8c26: b560 st.w r3, (r5, 0x0) + HLW8110_RWCMD_Send(SEND_R); + 8c28: e3ffff0e bsr 0x8a44 // 8a44 + u_det.State = 0x07; + 8c2c: 3307 movi r3, 7 + 8c2e: a47e st.b r3, (r4, 0x1e) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c30: 9660 ld.w r3, (r6, 0x0) + 8c32: b560 st.w r3, (r5, 0x0) + break; + 8c34: 0780 br 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_FAIL; + 8c36: 3102 movi r1, 2 + 8c38: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c3a: 9640 ld.w r2, (r6, 0x0) + 8c3c: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c3e: 3209 movi r2, 9 + 8c40: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c42: 3208 movi r2, 8 + 8c44: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c46: 1146 lrw r2, 0xbb8 // 8cdc + 8c48: b351 st.w r2, (r3, 0x44) + 8c4a: 07a9 br 0x8b9c // 8b9c + if(SysTick_1ms - HLW8110_Sned_Tisk >= 80) + 8c4c: 11c1 lrw r6, 0x200000c4 // 8cd0 + 8c4e: 11a2 lrw r5, 0x2000016c // 8cd4 + 8c50: 9660 ld.w r3, (r6, 0x0) + 8c52: 9540 ld.w r2, (r5, 0x0) + 8c54: 60ca subu r3, r2 + 8c56: 324f movi r2, 79 + 8c58: 64c8 cmphs r2, r3 + 8c5a: 0809 bt 0x8c6c // 8c6c + HLW8110_Sned_Tisk = SysTick_1ms; + 8c5c: 9660 ld.w r3, (r6, 0x0) + 8c5e: b560 st.w r3, (r5, 0x0) + u_det.Resent++; + 8c60: 105b lrw r2, 0x20000534 // 8ccc + u_det.State = 0x05; + 8c62: 3305 movi r3, 5 + 8c64: a47e st.b r3, (r4, 0x1e) + u_det.Resent++; + 8c66: 8261 ld.b r3, (r2, 0x1) + 8c68: 2300 addi r3, 1 + 8c6a: 078d br 0x8b84 // 8b84 + if(Get_RevState() == REV_OK) + 8c6c: e3ffff2e bsr 0x8ac8 // 8ac8 + 8c70: 3841 cmpnei r0, 1 + 8c72: 0b61 bt 0x8b34 // 8b34 + u_det.SendState = SEND_STATE_SUCC; + 8c74: 1079 lrw r3, 0x200004f4 // 8cd8 + 8c76: 3240 movi r2, 64 + 8c78: 608c addu r2, r3 + 8c7a: 3101 movi r1, 1 + 8c7c: a223 st.b r1, (r2, 0x3) + HLW8110_Sned_Tisk = SysTick_1ms; + 8c7e: 9640 ld.w r2, (r6, 0x0) + 8c80: b540 st.w r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8c82: 3209 movi r2, 9 + 8c84: a45e st.b r2, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c86: 3208 movi r2, 8 + 8c88: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c8a: 320a movi r2, 10 + 8c8c: 07de br 0x8c48 // 8c48 + HLW8110_WriteREG_DIS(); + 8c8e: e3fffe43 bsr 0x8914 // 8914 + u_det.State = HLW_WAIT; + 8c92: 3309 movi r3, 9 + 8c94: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8c96: 3300 movi r3, 0 + u_det.Pub_WaitTim = WaitTime; + 8c98: 320a movi r2, 10 + u_det.Pub_NextState = NextState; + 8c9a: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8c9c: 106f lrw r3, 0x200004f4 // 8cd8 + 8c9e: b351 st.w r2, (r3, 0x44) + HLW8110_Sned_Tisk = SysTick_1ms; + 8ca0: 106c lrw r3, 0x200000c4 // 8cd0 + 8ca2: 9340 ld.w r2, (r3, 0x0) + 8ca4: 106c lrw r3, 0x2000016c // 8cd4 + 8ca6: b340 st.w r2, (r3, 0x0) + break; + 8ca8: 0746 br 0x8b34 // 8b34 + if(SysTick_1ms - HLW8110_Sned_Tisk >= u_det.Pub_WaitTim) + 8caa: 106a lrw r3, 0x200000c4 // 8cd0 + 8cac: 104a lrw r2, 0x2000016c // 8cd4 + 8cae: 9360 ld.w r3, (r3, 0x0) + 8cb0: 9240 ld.w r2, (r2, 0x0) + 8cb2: 60ca subu r3, r2 + 8cb4: 1049 lrw r2, 0x200004f4 // 8cd8 + 8cb6: 9251 ld.w r2, (r2, 0x44) + 8cb8: 648c cmphs r3, r2 + 8cba: 0f3d bf 0x8b34 // 8b34 + u_det.State = u_det.Pub_NextState; + 8cbc: 847f ld.b r3, (r4, 0x1f) + 8cbe: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = 0x00; + 8cc0: 3300 movi r3, 0 + 8cc2: a47f st.b r3, (r4, 0x1f) +} + 8cc4: 0738 br 0x8b34 // 8b34 + 8cc6: 0000 bkpt + 8cc8: 20000514 .long 0x20000514 + 8ccc: 20000534 .long 0x20000534 + 8cd0: 200000c4 .long 0x200000c4 + 8cd4: 2000016c .long 0x2000016c + 8cd8: 200004f4 .long 0x200004f4 + 8cdc: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.HLW8110_Convert_CurrentRegA_Value: + +00008ce0 : +{ + 8ce0: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8ce2: 109e lrw r4, 0x2000053c // 8d58 + 8ce4: 3280 movi r2, 128 + 8ce6: 9468 ld.w r3, (r4, 0x20) + 8ce8: 4250 lsli r2, r2, 16 + 8cea: 68c8 and r3, r2 + 8cec: 3b40 cmpnei r3, 0 + 8cee: 10bc lrw r5, 0x20000578 // 8d5c + 8cf0: 0831 bt 0x8d52 // 8d52 + Conv_Val = value / 1000.0; + 8cf2: e3ffdb0f bsr 0x4310 // 4310 <__floatunsidf> + 8cf6: 3200 movi r2, 0 + 8cf8: 107a lrw r3, 0x408f4000 // 8d60 + 8cfa: e3ffd96b bsr 0x3fd0 // 3fd0 <__divdf3> + 8cfe: e3ffdaf1 bsr 0x42e0 // 42e0 <__truncdfsf2> + 8d02: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIAC_RegData; + 8d04: 8c00 ld.h r0, (r4, 0x0) + 8d06: e3ffd63f bsr 0x3984 // 3984 <__floatsisf> + 8d0a: 6c5b mov r1, r6 + 8d0c: e3ffd51a bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x800; + 8d10: 31e8 movi r1, 232 + 8d12: 4136 lsli r1, r1, 22 + 8d14: e3ffd516 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x1000; + 8d18: 31e6 movi r1, 230 + 8d1a: 4136 lsli r1, r1, 22 + 8d1c: e3ffd512 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val; + 8d20: 9534 ld.w r1, (r5, 0x50) + 8d22: e3ffd50f bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + 8d26: 9537 ld.w r1, (r5, 0x5c) + 8d28: e3ffd4dc bsr 0x36e0 // 36e0 <__addsf3> + 8d2c: 6d03 mov r4, r0 + g_Eng.det_ectA = (Conv_Val * 100); //单位10mA + 8d2e: 102e lrw r1, 0x42c80000 // 8d64 + 8d30: 6c13 mov r0, r4 + 8d32: e3ffd507 bsr 0x3740 // 3740 <__mulsf3> + 8d36: e3ffd3fb bsr 0x352c // 352c <__fixunssfsi> + 8d3a: b50c st.w r0, (r5, 0x30) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"CurReg:%f",Conv_Val); + 8d3c: 6c13 mov r0, r4 + 8d3e: e3ffd67f bsr 0x3a3c // 3a3c <__extendsfdf2> + 8d42: 6c83 mov r2, r0 + 8d44: 6cc7 mov r3, r1 + 8d46: 3001 movi r0, 1 + 8d48: 1028 lrw r1, 0xb476 // 8d68 + 8d4a: e3fff675 bsr 0x7a34 // 7a34 +} + 8d4e: 6c13 mov r0, r4 + 8d50: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8d52: 3400 movi r4, 0 + 8d54: 07ed br 0x8d2e // 8d2e + 8d56: 0000 bkpt + 8d58: 2000053c .long 0x2000053c + 8d5c: 20000578 .long 0x20000578 + 8d60: 408f4000 .long 0x408f4000 + 8d64: 42c80000 .long 0x42c80000 + 8d68: 0000b476 .long 0x0000b476 + +Disassembly of section .text.HLW8110_Convert_VoltageReg_Value: + +00008d6c : +{ + 8d6c: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8d6e: 109a lrw r4, 0x2000053c // 8dd4 + 8d70: 3280 movi r2, 128 + 8d72: 9468 ld.w r3, (r4, 0x20) + 8d74: 4250 lsli r2, r2, 16 + 8d76: 68c8 and r3, r2 + 8d78: 3b40 cmpnei r3, 0 + 8d7a: 10b8 lrw r5, 0x20000578 // 8dd8 + 8d7c: 082a bt 0x8dd0 // 8dd0 + Conv_Val = value / 100.0; + 8d7e: e3ffdac9 bsr 0x4310 // 4310 <__floatunsidf> + 8d82: 3200 movi r2, 0 + 8d84: 1076 lrw r3, 0x40590000 // 8ddc + 8d86: e3ffd925 bsr 0x3fd0 // 3fd0 <__divdf3> + 8d8a: e3ffdaab bsr 0x42e0 // 42e0 <__truncdfsf2> + 8d8e: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSUC_RegData; + 8d90: 8c02 ld.h r0, (r4, 0x4) + 8d92: e3ffd5f9 bsr 0x3984 // 3984 <__floatsisf> + 8d96: 6c5b mov r1, r6 + 8d98: e3ffd4d4 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x400000; + 8d9c: 31d2 movi r1, 210 + 8d9e: 4136 lsli r1, r1, 22 + 8da0: e3ffd4d0 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.V_K_Val;//VK_Val; + 8da4: 9533 ld.w r1, (r5, 0x4c) + 8da6: e3ffd4cd bsr 0x3740 // 3740 <__mulsf3> + 8daa: 6d03 mov r4, r0 + g_Eng.det_V = (Conv_Val * 100); //单位:10mV + 8dac: 102d lrw r1, 0x42c80000 // 8de0 + 8dae: 6c13 mov r0, r4 + 8db0: e3ffd4c8 bsr 0x3740 // 3740 <__mulsf3> + 8db4: e3ffd3bc bsr 0x352c // 352c <__fixunssfsi> + 8db8: b50b st.w r0, (r5, 0x2c) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"VolReg:%f",Conv_Val); + 8dba: 6c13 mov r0, r4 + 8dbc: e3ffd640 bsr 0x3a3c // 3a3c <__extendsfdf2> + 8dc0: 6c83 mov r2, r0 + 8dc2: 6cc7 mov r3, r1 + 8dc4: 3001 movi r0, 1 + 8dc6: 1028 lrw r1, 0xb480 // 8de4 + 8dc8: e3fff636 bsr 0x7a34 // 7a34 +} + 8dcc: 6c13 mov r0, r4 + 8dce: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8dd0: 3400 movi r4, 0 + 8dd2: 07ed br 0x8dac // 8dac + 8dd4: 2000053c .long 0x2000053c + 8dd8: 20000578 .long 0x20000578 + 8ddc: 40590000 .long 0x40590000 + 8de0: 42c80000 .long 0x42c80000 + 8de4: 0000b480 .long 0x0000b480 + +Disassembly of section .text.HLW8110_Convert_PowerReg_Value: + +00008de8 : +{ + 8de8: 14d4 push r4-r7, r15 + 8dea: 1422 subi r14, r14, 8 + Conv_Val = abs((int)value); + 8dec: 38df btsti r0, 31 +{ + 8dee: 6d43 mov r5, r0 + Conv_Val = abs((int)value); + 8df0: 0c03 bf 0x8df6 // 8df6 + 8df2: 3000 movi r0, 0 + 8df4: 6016 subu r0, r5 + 8df6: e3ffd5c7 bsr 0x3984 // 3984 <__floatsisf> + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8dfa: 1079 lrw r3, 0x2000053c // 8e5c + 8dfc: 8be3 ld.h r7, (r3, 0x6) + Conv_Val = abs((int)value); + 8dfe: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8e00: 6c1f mov r0, r7 + 8e02: e3ffd5c1 bsr 0x3984 // 3984 <__floatsisf> + 8e06: 6c53 mov r1, r4 + 8e08: e3ffd49c bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x8000; + 8e0c: 31e0 movi r1, 224 + 8e0e: 4136 lsli r1, r1, 22 + 8e10: e3ffd498 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x10000; + 8e14: 31de movi r1, 222 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8e16: 1093 lrw r4, 0x20000578 // 8e60 + Conv_Val = Conv_Val / 0x10000; + 8e18: 4136 lsli r1, r1, 22 + 8e1a: e3ffd493 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 8e1e: 9434 ld.w r1, (r4, 0x50) + 8e20: e3ffd490 bsr 0x3740 // 3740 <__mulsf3> + 8e24: 9436 ld.w r1, (r4, 0x58) + 8e26: e3ffd48d bsr 0x3740 // 3740 <__mulsf3> + 8e2a: 9433 ld.w r1, (r4, 0x4c) + 8e2c: e3ffd48a bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8e30: 9438 ld.w r1, (r4, 0x60) + 8e32: e3ffd457 bsr 0x36e0 // 36e0 <__addsf3> + 8e36: 6d83 mov r6, r0 + g_Eng.det_powA = Conv_Val; //单位:W + 8e38: e3ffd37a bsr 0x352c // 352c <__fixunssfsi> + 8e3c: b40e st.w r0, (r4, 0x38) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"PowReg:%f,%d,%d",Conv_Val,value,g_CalFactor.U16_PowerPAC_RegData); + 8e3e: 6c1b mov r0, r6 + 8e40: e3ffd5fe bsr 0x3a3c // 3a3c <__extendsfdf2> + 8e44: 6c83 mov r2, r0 + 8e46: 6cc7 mov r3, r1 + 8e48: b8e1 st.w r7, (r14, 0x4) + 8e4a: b8a0 st.w r5, (r14, 0x0) + 8e4c: 3001 movi r0, 1 + 8e4e: 1026 lrw r1, 0xb48a // 8e64 + 8e50: e3fff5f2 bsr 0x7a34 // 7a34 +} + 8e54: 6c1b mov r0, r6 + 8e56: 1402 addi r14, r14, 8 + 8e58: 1494 pop r4-r7, r15 + 8e5a: 0000 bkpt + 8e5c: 2000053c .long 0x2000053c + 8e60: 20000578 .long 0x20000578 + 8e64: 0000b48a .long 0x0000b48a + +Disassembly of section .text.HLW8110_Convert_EnergyReg_Value: + +00008e68 : +{ + 8e68: 14d4 push r4-r7, r15 + 8e6a: 1424 subi r14, r14, 16 + g_Eng.U32_EnergyA_RegData_Diff = 0x00; + 8e6c: 1187 lrw r4, 0x20000578 // 8f08 +{ + 8e6e: 6d43 mov r5, r0 + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //记录的上次读取的电能寄存器值小于此次读取到的电能寄存器值 + 8e70: 9451 ld.w r2, (r4, 0x44) + 8e72: 6480 cmphs r0, r2 + 8e74: 4068 lsli r3, r0, 8 + 8e76: 0c41 bf 0x8ef8 // 8ef8 + g_Eng.U32_EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 8e78: 4248 lsli r2, r2, 8 + 8e7a: 4a48 lsri r2, r2, 8 + 8e7c: 5849 subu r2, r0, r2 + 8e7e: b450 st.w r2, (r4, 0x40) + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e80: 4b68 lsri r3, r3, 8 + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e82: 9450 ld.w r2, (r4, 0x40) + 8e84: 940f ld.w r0, (r4, 0x3c) + 8e86: 6008 addu r0, r2 + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8e88: b471 st.w r3, (r4, 0x44) + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 8e8a: b40f st.w r0, (r4, 0x3c) + 8e8c: b843 st.w r2, (r14, 0xc) + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + 8e8e: e3ffda41 bsr 0x4310 // 4310 <__floatunsidf> + 8e92: e3ffda27 bsr 0x42e0 // 42e0 <__truncdfsf2> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e96: 9434 ld.w r1, (r4, 0x50) + 8e98: e3ffd454 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e9c: 10fc lrw r7, 0x2000053c // 8f0c + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8e9e: 9433 ld.w r1, (r4, 0x4c) + 8ea0: e3ffd450 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8ea4: 8f66 ld.h r3, (r7, 0xc) + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 8ea6: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8ea8: 6c0f mov r0, r3 + 8eaa: b862 st.w r3, (r14, 0x8) + 8eac: e3ffd56c bsr 0x3984 // 3984 <__floatsisf> + 8eb0: 6c5b mov r1, r6 + 8eb2: e3ffd447 bsr 0x3740 // 3740 <__mulsf3> + Conv_Val = Conv_Val / 0x20000000; + 8eb6: 31c4 movi r1, 196 + 8eb8: 4136 lsli r1, r1, 22 + 8eba: e3ffd443 bsr 0x3740 // 3740 <__mulsf3> + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8ebe: 1035 lrw r1, 0x447a0000 // 8f10 + Conv_Val = Conv_Val / 0x20000000; + 8ec0: 6d83 mov r6, r0 + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8ec2: e3ffd43f bsr 0x3740 // 3740 <__mulsf3> + 8ec6: e3ffd333 bsr 0x352c // 352c <__fixunssfsi> + Dbg_Println(DBG_BIT_DEVICE_STATUS,"diff:%d, value:%d, EngAC:%d, Total_Eng:%d",g_Eng.U32_EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng); + 8eca: 9862 ld.w r3, (r14, 0x8) + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8ecc: b408 st.w r0, (r4, 0x20) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"diff:%d, value:%d, EngAC:%d, Total_Eng:%d",g_Eng.U32_EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng); + 8ece: b801 st.w r0, (r14, 0x4) + 8ed0: b860 st.w r3, (r14, 0x0) + 8ed2: 9843 ld.w r2, (r14, 0xc) + 8ed4: 6cd7 mov r3, r5 + 8ed6: 1030 lrw r1, 0xb49a // 8f14 + 8ed8: 3001 movi r0, 1 + 8eda: e3fff5ad bsr 0x7a34 // 7a34 + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"diff:%d, value:%d, EngAC:%d, Total_Eng:%d",g_Eng.U32_EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng); + 8ede: 9468 ld.w r3, (r4, 0x20) + 8ee0: b861 st.w r3, (r14, 0x4) + 8ee2: 8f66 ld.h r3, (r7, 0xc) + 8ee4: b860 st.w r3, (r14, 0x0) + 8ee6: 9450 ld.w r2, (r4, 0x40) + 8ee8: 6cd7 mov r3, r5 + 8eea: 102b lrw r1, 0xb49a // 8f14 + 8eec: 3004 movi r0, 4 + 8eee: e3fff73d bsr 0x7d68 // 7d68 +} + 8ef2: 6c1b mov r0, r6 + 8ef4: 1404 addi r14, r14, 16 + 8ef6: 1494 pop r4-r7, r15 + g_Eng.U32_EnergyA_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyA_RegData_LastRecord ); + 8ef8: 4b68 lsri r3, r3, 8 + 8efa: 3180 movi r1, 128 + 8efc: 5b49 subu r2, r3, r2 + 8efe: 4131 lsli r1, r1, 17 + 8f00: 6084 addu r2, r1 + 8f02: b450 st.w r2, (r4, 0x40) + 8f04: 07bf br 0x8e82 // 8e82 + 8f06: 0000 bkpt + 8f08: 20000578 .long 0x20000578 + 8f0c: 2000053c .long 0x2000053c + 8f10: 447a0000 .long 0x447a0000 + 8f14: 0000b49a .long 0x0000b49a + +Disassembly of section .text.HLW8110_RecvData_Processing: + +00008f18 : +{ + 8f18: 14d4 push r4-r7, r15 + 8f1a: 1424 subi r14, r14, 16 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8f1c: 5947 subi r2, r1, 2 + 8f1e: 7489 zexth r2, r2 + 8f20: 3a08 cmphsi r2, 9 +{ + 8f22: b803 st.w r0, (r14, 0xc) + 8f24: 6dc7 mov r7, r1 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 8f26: 0c09 bf 0x8f38 // 8f38 + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",RecvLen); + 8f28: 6c87 mov r2, r1 + 8f2a: 3000 movi r0, 0 + 8f2c: 0337 lrw r1, 0xb4c4 // 914c + 8f2e: e3fff583 bsr 0x7a34 // 7a34 + return 0x01; + 8f32: 3001 movi r0, 1 +} + 8f34: 1404 addi r14, r14, 16 + 8f36: 1494 pop r4-r7, r15 + if(u_det.WR_flag == SEND_NONE) + 8f38: 03b9 lrw r5, 0x200004f4 // 9150 + 8f3a: 3340 movi r3, 64 + 8f3c: 60d4 addu r3, r5 + 8f3e: 8340 ld.b r2, (r3, 0x0) + 8f40: 3a40 cmpnei r2, 0 + 8f42: b861 st.w r3, (r14, 0x4) + 8f44: b862 st.w r3, (r14, 0x8) + 8f46: 0807 bt 0x8f54 // 8f54 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not Tack "); + 8f48: 3000 movi r0, 0 + 8f4a: 033c lrw r1, 0xb4cf // 9154 + 8f4c: e3fff574 bsr 0x7a34 // 7a34 + return 0x02; + 8f50: 3002 movi r0, 2 + 8f52: 07f1 br 0x8f34 // 8f34 + memset(u_det.RevBuff,0,REV_BUFFER_SIZE); + 8f54: 301e movi r0, 30 + 8f56: 321e movi r2, 30 + 8f58: 3100 movi r1, 0 + 8f5a: 6014 addu r0, r5 + 8f5c: e3ffdcfe bsr 0x4958 // 4958 <__memset_fast> + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f60: 8d40 ld.h r2, (r5, 0x0) + 8f62: 7589 zexth r6, r2 + u_det.RevLen += 2; + 8f64: 3420 movi r4, 32 + 8f66: 6114 addu r4, r5 + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 8f68: ad4f st.h r2, (r5, 0x1e) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f6a: 4ec8 lsri r6, r6, 8 + 8f6c: 327f movi r2, 127 + u_det.RevLen += 2; + 8f6e: 3302 movi r3, 2 + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f70: 6988 and r6, r2 + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f72: 9823 ld.w r1, (r14, 0xc) + 8f74: 6c9f mov r2, r7 + 8f76: 6c13 mov r0, r4 + u_det.RevLen += 2; + 8f78: a47d st.b r3, (r4, 0x1d) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8f7a: a5df st.b r6, (r5, 0x1f) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 8f7c: e3ffdd32 bsr 0x49e0 // 49e0 <__memcpy_fast> + u_det.RevLen += RecvLen; + 8f80: 843d ld.b r1, (r4, 0x1d) + 8f82: 605c addu r1, r7 + 8f84: 7444 zextb r1, r1 + 8f86: a43d st.b r1, (r4, 0x1d) + if(HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1) != RecvData[RecvLen-1]) + 8f88: 301e movi r0, 30 + 8f8a: 2900 subi r1, 1 + 8f8c: 7445 zexth r1, r1 + 8f8e: 6014 addu r0, r5 + 8f90: e3fffc8c bsr 0x88a8 // 88a8 + 8f94: 9863 ld.w r3, (r14, 0xc) + 8f96: 60dc addu r3, r7 + 8f98: 6dcf mov r7, r3 + 8f9a: 2f00 subi r7, 1 + 8f9c: 8760 ld.b r3, (r7, 0x0) + 8f9e: 64c2 cmpne r0, r3 + 8fa0: 6c83 mov r2, r0 + 8fa2: 6dd3 mov r7, r4 + 8fa4: 0c12 bf 0x8fc8 // 8fc8 + Dbg_Println(DBG_BIT_SYS_STATUS,"CRC Err:%x,%x,CMD:%02x",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + 8fa6: 132d lrw r1, 0xb4d9 // 9158 + 8fa8: 3000 movi r0, 0 + 8faa: b8c0 st.w r6, (r14, 0x0) + 8fac: e3fff544 bsr 0x7a34 // 7a34 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); + 8fb0: 6c97 mov r2, r5 + 8fb2: 847d ld.b r3, (r4, 0x1d) + 8fb4: 221d addi r2, 30 + 8fb6: 3002 movi r0, 2 + 8fb8: 1329 lrw r1, 0xb4f0 // 915c + 8fba: e3fff601 bsr 0x7bbc // 7bbc + u_det.RevNum = REV_ERR; + 8fbe: 9861 ld.w r3, (r14, 0x4) + 8fc0: 3202 movi r2, 2 + 8fc2: a342 st.b r2, (r3, 0x2) + return 0x04; + 8fc4: 3004 movi r0, 4 + 8fc6: 07b7 br 0x8f34 // 8f34 + u_det.RevNum = REV_OK; + 8fc8: 9862 ld.w r3, (r14, 0x8) + 8fca: 3201 movi r2, 1 + 8fcc: a342 st.b r2, (r3, 0x2) + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW8110_Recv CMD:%02X",u_det.RevBuff[1]); + 8fce: 3002 movi r0, 2 + 8fd0: 6c9b mov r2, r6 + 8fd2: 1324 lrw r1, 0xb4f4 // 9160 + 8fd4: e3fff530 bsr 0x7a34 // 7a34 + switch(u_det.RevBuff[1]) + 8fd8: 857f ld.b r3, (r5, 0x1f) + 8fda: 316f movi r1, 111 + 8fdc: 644e cmpne r3, r1 + 8fde: 1342 lrw r2, 0x2000053c // 9164 + 8fe0: 0c6b bf 0x90b6 // 90b6 + 8fe2: 64c4 cmphs r1, r3 + 8fe4: 0c28 bf 0x9034 // 9034 + 8fe6: 3124 movi r1, 36 + 8fe8: 644e cmpne r3, r1 + 8fea: 0c8c bf 0x9102 // 9102 + 8fec: 64c4 cmphs r1, r3 + 8fee: 0c0f bf 0x900c // 900c + 8ff0: 3b41 cmpnei r3, 1 + 8ff2: 0c52 bf 0x9096 // 9096 + 8ff4: 3b40 cmpnei r3, 0 + 8ff6: 0c40 bf 0x9076 // 9076 + 8ff8: 3b53 cmpnei r3, 19 + 8ffa: 0c56 bf 0x90a6 // 90a6 + g_CalFactor.U16_HFConst_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 8ffc: 8760 ld.b r3, (r7, 0x0) + 8ffe: 4368 lsli r3, r3, 8 + 9000: 8721 ld.b r1, (r7, 0x1) + 9002: 60c4 addu r3, r1 + 9004: b26e st.w r3, (r2, 0x38) + g_Eng.hfcount = g_CalFactor.U16_HFConst_RegData; + 9006: 1259 lrw r2, 0x20000578 // 9168 + 9008: aa6e st.h r3, (r2, 0x1c) + 900a: 0442 br 0x908e // 908e + switch(u_det.RevBuff[1]) + 900c: 3128 movi r1, 40 + 900e: 644e cmpne r3, r1 + 9010: 0c84 bf 0x9118 // 9118 + 9012: 312c movi r1, 44 + 9014: 644e cmpne r3, r1 + 9016: 0c8c bf 0x912e // 912e + 9018: 3126 movi r1, 38 + 901a: 644e cmpne r3, r1 + 901c: 0bf0 bt 0x8ffc // 8ffc + g_CalFactor.U24_Voltage_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 901e: 8400 ld.b r0, (r4, 0x0) + 9020: 8461 ld.b r3, (r4, 0x1) + 9022: 4368 lsli r3, r3, 8 + 9024: 4010 lsli r0, r0, 16 + 9026: 600c addu r0, r3 + 9028: 8462 ld.b r3, (r4, 0x2) + 902a: 600c addu r0, r3 + 902c: b207 st.w r0, (r2, 0x1c) + HLW8110_Convert_VoltageReg_Value(g_CalFactor.U24_Voltage_RegData); + 902e: e3fffe9f bsr 0x8d6c // 8d6c + 9032: 042e br 0x908e // 908e + switch(u_det.RevBuff[1]) + 9034: 3173 movi r1, 115 + 9036: 644e cmpne r3, r1 + 9038: 0c4d bf 0x90d2 // 90d2 + 903a: 64c4 cmphs r1, r3 + 903c: 0c0c bf 0x9054 // 9054 + 903e: 3571 movi r5, 113 + 9040: 654e cmpne r3, r5 + 9042: 8420 ld.b r1, (r4, 0x0) + 9044: 8401 ld.b r0, (r4, 0x1) + 9046: 0c42 bf 0x90ca // 90ca + 9048: 64d4 cmphs r5, r3 + 904a: 083c bt 0x90c2 // 90c2 + g_CalFactor.U16_RMSUC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 904c: 4128 lsli r1, r1, 8 + 904e: 6040 addu r1, r0 + 9050: aa22 st.h r1, (r2, 0x4) + 9052: 041e br 0x908e // 908e + switch(u_det.RevBuff[1]) + 9054: 3175 movi r1, 117 + 9056: 644e cmpne r3, r1 + 9058: 0c49 bf 0x90ea // 90ea + 905a: 644c cmphs r3, r1 + 905c: 0c41 bf 0x90de // 90de + 905e: 3176 movi r1, 118 + 9060: 644e cmpne r3, r1 + 9062: 0c4a bf 0x90f6 // 90f6 + 9064: 3177 movi r1, 119 + 9066: 644e cmpne r3, r1 + 9068: 0bca bt 0x8ffc // 8ffc + g_CalFactor.U16_EnergyBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 906a: 8460 ld.b r3, (r4, 0x0) + 906c: 4368 lsli r3, r3, 8 + 906e: 8421 ld.b r1, (r4, 0x1) + 9070: 60c4 addu r3, r1 + 9072: aa67 st.h r3, (r2, 0xe) + 9074: 040d br 0x908e // 908e + g_CalFactor.U16_Check_SysconReg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9076: 8460 ld.b r3, (r4, 0x0) + 9078: 4368 lsli r3, r3, 8 + 907a: 8421 ld.b r1, (r4, 0x1) + 907c: 60c4 addu r3, r1 + 907e: 74cd zexth r3, r3 + 9080: aa6a st.h r3, (r2, 0x14) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 9082: 115b lrw r2, 0xa04 // 916c + 9084: 648e cmpne r3, r2 + u_det.RevNum = REV_OK; + 9086: 9862 ld.w r3, (r14, 0x8) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 9088: 0805 bt 0x9092 // 9092 + u_det.RevNum = REV_OK; + 908a: 3201 movi r2, 1 + u_det.RevNum = REV_ERR; + 908c: a342 st.b r2, (r3, 0x2) + return 0x00; + 908e: 3000 movi r0, 0 + break; + 9090: 0752 br 0x8f34 // 8f34 + u_det.RevNum = REV_ERR; + 9092: 3202 movi r2, 2 + 9094: 07fc br 0x908c // 908c + g_CalFactor.U16_Check_Emucon1Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 9096: 8460 ld.b r3, (r4, 0x0) + 9098: 4368 lsli r3, r3, 8 + 909a: 8421 ld.b r1, (r4, 0x1) + 909c: 60c4 addu r3, r1 + 909e: 74cd zexth r3, r3 + 90a0: aa6b st.h r3, (r2, 0x16) + if(g_CalFactor.U16_Check_Emucon1Reg_Data == EMUCON1_DEFAULT){ + 90a2: 3b41 cmpnei r3, 1 + 90a4: 07f1 br 0x9086 // 9086 + g_CalFactor.U16_Check_Emucon2Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90a6: 8460 ld.b r3, (r4, 0x0) + 90a8: 4368 lsli r3, r3, 8 + 90aa: 8421 ld.b r1, (r4, 0x1) + 90ac: 60c4 addu r3, r1 + 90ae: 74cd zexth r3, r3 + 90b0: aa6c st.h r3, (r2, 0x18) + if(g_CalFactor.U16_Check_Emucon2Reg_Data == EMUCON2_DEFAULT){ + 90b2: 1150 lrw r2, 0x465 // 9170 + 90b4: 07e8 br 0x9084 // 9084 + g_CalFactor.U16_CheckSUM_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90b6: 8460 ld.b r3, (r4, 0x0) + 90b8: 4368 lsli r3, r3, 8 + 90ba: 8421 ld.b r1, (r4, 0x1) + 90bc: 60c4 addu r3, r1 + 90be: aa68 st.h r3, (r2, 0x10) + 90c0: 07e7 br 0x908e // 908e + g_CalFactor.U16_RMSIAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90c2: 4128 lsli r1, r1, 8 + 90c4: 6040 addu r1, r0 + 90c6: aa20 st.h r1, (r2, 0x0) + 90c8: 07e3 br 0x908e // 908e + g_CalFactor.U16_RMSIBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90ca: 4128 lsli r1, r1, 8 + 90cc: 6040 addu r1, r0 + 90ce: aa21 st.h r1, (r2, 0x2) + 90d0: 07df br 0x908e // 908e + g_CalFactor.U16_PowerPAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90d2: 8460 ld.b r3, (r4, 0x0) + 90d4: 4368 lsli r3, r3, 8 + 90d6: 8421 ld.b r1, (r4, 0x1) + 90d8: 60c4 addu r3, r1 + 90da: aa63 st.h r3, (r2, 0x6) + 90dc: 07d9 br 0x908e // 908e + g_CalFactor.U16_PowerPBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90de: 8460 ld.b r3, (r4, 0x0) + 90e0: 4368 lsli r3, r3, 8 + 90e2: 8421 ld.b r1, (r4, 0x1) + 90e4: 60c4 addu r3, r1 + 90e6: aa64 st.h r3, (r2, 0x8) + 90e8: 07d3 br 0x908e // 908e + g_CalFactor.U16_PowerSC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90ea: 8460 ld.b r3, (r4, 0x0) + 90ec: 4368 lsli r3, r3, 8 + 90ee: 8421 ld.b r1, (r4, 0x1) + 90f0: 60c4 addu r3, r1 + 90f2: aa65 st.h r3, (r2, 0xa) + 90f4: 07cd br 0x908e // 908e + g_CalFactor.U16_EnergyAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 90f6: 8460 ld.b r3, (r4, 0x0) + 90f8: 4368 lsli r3, r3, 8 + 90fa: 8421 ld.b r1, (r4, 0x1) + 90fc: 60c4 addu r3, r1 + 90fe: aa66 st.h r3, (r2, 0xc) + 9100: 07c7 br 0x908e // 908e + g_CalFactor.U24_CurrentA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 9102: 8400 ld.b r0, (r4, 0x0) + 9104: 8461 ld.b r3, (r4, 0x1) + 9106: 4368 lsli r3, r3, 8 + 9108: 4010 lsli r0, r0, 16 + 910a: 600c addu r0, r3 + 910c: 8462 ld.b r3, (r4, 0x2) + 910e: 600c addu r0, r3 + 9110: b208 st.w r0, (r2, 0x20) + HLW8110_Convert_CurrentRegA_Value(g_CalFactor.U24_CurrentA_RegData); + 9112: e3fffde7 bsr 0x8ce0 // 8ce0 + 9116: 07bc br 0x908e // 908e + g_CalFactor.U24_EnergyA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 9118: 8400 ld.b r0, (r4, 0x0) + 911a: 8461 ld.b r3, (r4, 0x1) + 911c: 4368 lsli r3, r3, 8 + 911e: 4010 lsli r0, r0, 16 + 9120: 600c addu r0, r3 + 9122: 8462 ld.b r3, (r4, 0x2) + 9124: 600c addu r0, r3 + 9126: b20c st.w r0, (r2, 0x30) + HLW8110_Convert_EnergyReg_Value(g_CalFactor.U24_EnergyA_RegData); + 9128: e3fffea0 bsr 0x8e68 // 8e68 + 912c: 07b1 br 0x908e // 908e + g_CalFactor.U32_PowerA_RegData = (u_det.RevBuff[2]<<24) + (u_det.RevBuff[3]<<16) + (u_det.RevBuff[4]<<8) + u_det.RevBuff[5]; + 912e: 8400 ld.b r0, (r4, 0x0) + 9130: 8461 ld.b r3, (r4, 0x1) + 9132: 4370 lsli r3, r3, 16 + 9134: 4018 lsli r0, r0, 24 + 9136: 600c addu r0, r3 + 9138: 8462 ld.b r3, (r4, 0x2) + 913a: 4368 lsli r3, r3, 8 + 913c: 600c addu r0, r3 + 913e: 8463 ld.b r3, (r4, 0x3) + 9140: 600c addu r0, r3 + 9142: b20a st.w r0, (r2, 0x28) + HLW8110_Convert_PowerReg_Value(g_CalFactor.U32_PowerA_RegData); + 9144: e3fffe52 bsr 0x8de8 // 8de8 + 9148: 07a3 br 0x908e // 908e + 914a: 0000 bkpt + 914c: 0000b4c4 .long 0x0000b4c4 + 9150: 200004f4 .long 0x200004f4 + 9154: 0000b4cf .long 0x0000b4cf + 9158: 0000b4d9 .long 0x0000b4d9 + 915c: 0000b4f0 .long 0x0000b4f0 + 9160: 0000b4f4 .long 0x0000b4f4 + 9164: 2000053c .long 0x2000053c + 9168: 20000578 .long 0x20000578 + 916c: 00000a04 .long 0x00000a04 + 9170: 00000465 .long 0x00000465 + +Disassembly of section .text.HLW8110_SysPara_Check: + +00009174 : + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9174: 8841 ld.h r2, (r0, 0x2) + 9176: 8860 ld.h r3, (r0, 0x0) + 9178: 60c8 addu r3, r2 + 917a: 8842 ld.h r2, (r0, 0x4) + 917c: 60c8 addu r3, r2 + 917e: 8843 ld.h r2, (r0, 0x6) + 9180: 60c8 addu r3, r2 + g_CC->U16_PowerPAC_RegData + g_CC->U16_PowerPBC_RegData + g_CC->U16_PowerSC_RegData + + 9182: 8844 ld.h r2, (r0, 0x8) + 9184: 60c8 addu r3, r2 + 9186: 8845 ld.h r2, (r0, 0xa) + 9188: 60c8 addu r3, r2 + 918a: 8846 ld.h r2, (r0, 0xc) + 918c: 60c8 addu r3, r2 + g_CC->U16_EnergyAC_RegData + g_CC->U16_EnergyBC_RegData ); + 918e: 8847 ld.h r2, (r0, 0xe) + 9190: 60c8 addu r3, r2 + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 9192: 3000 movi r0, 0 + 9194: 600e subu r0, r3 + return CRC_p; + 9196: 7401 zexth r0, r0 +} + 9198: 783c jmp r15 + +Disassembly of section .text.HLW8110_ReadSysPara: + +0000919c : +{ + 919c: 14d3 push r4-r6, r15 + switch(g_Eng.rWCh_Num) + 919e: 037b lrw r3, 0x20000578 // 93ac + 91a0: 8301 ld.b r0, (r3, 0x1) + 91a2: 380a cmphsi r0, 11 + 91a4: 6d0f mov r4, r3 + 91a6: 08fd bt 0x93a0 // 93a0 + 91a8: e3ffd1aa bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 91ac: 351b0f06 .long 0x351b0f06 + 91b0: 8f79634d .long 0x8f79634d + 91b4: 00d1bba5 .long 0x00d1bba5 + HLW8110_Reset_Tack = SysTick_1ms; + 91b8: 137e lrw r3, 0x200000c4 // 93b0 + 91ba: 9340 ld.w r2, (r3, 0x0) + 91bc: 137e lrw r3, 0x2000016c // 93b4 + 91be: b341 st.w r2, (r3, 0x4) + g_Eng.rWCh_Num = 0x01; + 91c0: 3301 movi r3, 1 + 91c2: a461 st.b r3, (r4, 0x1) + HLW8110_Reset(); + 91c4: e3fffbd2 bsr 0x8968 // 8968 +} + 91c8: 1493 pop r4-r6, r15 + if(SysTick_1ms - HLW8110_Reset_Tack >= 1000) //复位HLW8110时间 + 91ca: 133a lrw r1, 0x200000c4 // 93b0 + 91cc: 135a lrw r2, 0x2000016c // 93b4 + 91ce: 9160 ld.w r3, (r1, 0x0) + 91d0: 9201 ld.w r0, (r2, 0x4) + 91d2: 60c2 subu r3, r0 + 91d4: 1319 lrw r0, 0x3e7 // 93b8 + 91d6: 64c0 cmphs r0, r3 + 91d8: 0805 bt 0x91e2 // 91e2 + HLW8110_Reset_Tack = SysTick_1ms; + 91da: 9160 ld.w r3, (r1, 0x0) + 91dc: b261 st.w r3, (r2, 0x4) + g_Eng.rWCh_Num = 0x02; + 91de: 3302 movi r3, 2 + 91e0: a461 st.b r3, (r4, 0x1) + if(Get_SendState() == SEND_STATE_SUCC) + 91e2: e3fffc7f bsr 0x8ae0 // 8ae0 + 91e6: 3841 cmpnei r0, 1 + 91e8: 0804 bt 0x91f0 // 91f0 + g_Eng.rWCh_Num = 0x03; + 91ea: 3303 movi r3, 3 + g_Eng.rWCh_Num = 0x04; + 91ec: a461 st.b r3, (r4, 0x1) + break; + 91ee: 07ed br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 91f0: e3fffc78 bsr 0x8ae0 // 8ae0 + 91f4: 3842 cmpnei r0, 2 + 91f6: 0806 bt 0x9202 // 9202 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IAC_ADDR ERR!"); + 91f8: 1331 lrw r1, 0xb50a // 93bc + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 91fa: 3000 movi r0, 0 + 91fc: e3fff41c bsr 0x7a34 // 7a34 + break; + 9200: 07e4 br 0x91c8 // 91c8 + if(u_det.WR_flag == SEND_NONE) + 9202: 1370 lrw r3, 0x20000534 // 93c0 + 9204: 8360 ld.b r3, (r3, 0x0) + 9206: 3b40 cmpnei r3, 0 + 9208: 0be0 bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IAC_ADDR,0,0); + 920a: 3200 movi r2, 0 + 920c: 3100 movi r1, 0 + 920e: 3070 movi r0, 112 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 9210: e3fffbd4 bsr 0x89b8 // 89b8 + 9214: 07da br 0x91c8 // 91c8 + if(Get_SendState() == SEND_STATE_SUCC) + 9216: e3fffc65 bsr 0x8ae0 // 8ae0 + 921a: 3841 cmpnei r0, 1 + 921c: 0803 bt 0x9222 // 9222 + g_Eng.rWCh_Num = 0x04; + 921e: 3304 movi r3, 4 + 9220: 07e6 br 0x91ec // 91ec + else if(Get_SendState() == SEND_STATE_FAIL) + 9222: e3fffc5f bsr 0x8ae0 // 8ae0 + 9226: 3842 cmpnei r0, 2 + 9228: 0807 bt 0x9236 // 9236 + g_Eng.rWCh_Num = 0x00; + 922a: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 922c: 1326 lrw r1, 0xb520 // 93c4 + 922e: 3000 movi r0, 0 + g_Eng.rWCh_Num = 0x00; + 9230: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 9232: e3fff401 bsr 0x7a34 // 7a34 + if(u_det.WR_flag == SEND_NONE) + 9236: 1363 lrw r3, 0x20000534 // 93c0 + 9238: 8360 ld.b r3, (r3, 0x0) + 923a: 3b40 cmpnei r3, 0 + 923c: 0bc6 bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IBC_ADDR,0,0); + 923e: 3200 movi r2, 0 + 9240: 3100 movi r1, 0 + 9242: 3071 movi r0, 113 + 9244: 07e6 br 0x9210 // 9210 + if(Get_SendState() == SEND_STATE_SUCC) + 9246: e3fffc4d bsr 0x8ae0 // 8ae0 + 924a: 3841 cmpnei r0, 1 + 924c: 0803 bt 0x9252 // 9252 + g_Eng.rWCh_Num = 0x05; + 924e: 3305 movi r3, 5 + 9250: 07ce br 0x91ec // 91ec + else if(Get_SendState() == SEND_STATE_FAIL) + 9252: e3fffc47 bsr 0x8ae0 // 8ae0 + 9256: 3842 cmpnei r0, 2 + 9258: 0805 bt 0x9262 // 9262 + g_Eng.rWCh_Num = 0x00; + 925a: 3300 movi r3, 0 + 925c: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_UC_ADDR ERR!"); + 925e: 123b lrw r1, 0xb536 // 93c8 + 9260: 07cd br 0x91fa // 91fa + if(u_det.WR_flag == SEND_NONE) + 9262: 1278 lrw r3, 0x20000534 // 93c0 + 9264: 8360 ld.b r3, (r3, 0x0) + 9266: 3b40 cmpnei r3, 0 + 9268: 0bb0 bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_UC_ADDR,0,0); + 926a: 3200 movi r2, 0 + 926c: 3100 movi r1, 0 + 926e: 3072 movi r0, 114 + 9270: 07d0 br 0x9210 // 9210 + if(Get_SendState() == SEND_STATE_SUCC) + 9272: e3fffc37 bsr 0x8ae0 // 8ae0 + 9276: 3841 cmpnei r0, 1 + 9278: 0803 bt 0x927e // 927e + g_Eng.rWCh_Num = 0x06; + 927a: 3306 movi r3, 6 + 927c: 07b8 br 0x91ec // 91ec + else if(Get_SendState() == SEND_STATE_FAIL) + 927e: e3fffc31 bsr 0x8ae0 // 8ae0 + 9282: 3842 cmpnei r0, 2 + 9284: 0805 bt 0x928e // 928e + g_Eng.rWCh_Num = 0x00; + 9286: 3300 movi r3, 0 + 9288: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PAC_ADDR ERR!"); + 928a: 1231 lrw r1, 0xb54b // 93cc + 928c: 07b7 br 0x91fa // 91fa + if(u_det.WR_flag == SEND_NONE) + 928e: 126d lrw r3, 0x20000534 // 93c0 + 9290: 8360 ld.b r3, (r3, 0x0) + 9292: 3b40 cmpnei r3, 0 + 9294: 0b9a bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PAC_ADDR,0,0); + 9296: 3200 movi r2, 0 + 9298: 3100 movi r1, 0 + 929a: 3073 movi r0, 115 + 929c: 07ba br 0x9210 // 9210 + if(Get_SendState() == SEND_STATE_SUCC) + 929e: e3fffc21 bsr 0x8ae0 // 8ae0 + 92a2: 3841 cmpnei r0, 1 + 92a4: 0803 bt 0x92aa // 92aa + g_Eng.rWCh_Num = 0x07; + 92a6: 3307 movi r3, 7 + 92a8: 07a2 br 0x91ec // 91ec + else if(Get_SendState() == SEND_STATE_FAIL) + 92aa: e3fffc1b bsr 0x8ae0 // 8ae0 + 92ae: 3842 cmpnei r0, 2 + 92b0: 0805 bt 0x92ba // 92ba + g_Eng.rWCh_Num = 0x00; + 92b2: 3300 movi r3, 0 + 92b4: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PBC_ADDR ERR!"); + 92b6: 1227 lrw r1, 0xb563 // 93d0 + 92b8: 07a1 br 0x91fa // 91fa + if(u_det.WR_flag == SEND_NONE) + 92ba: 1262 lrw r3, 0x20000534 // 93c0 + 92bc: 8360 ld.b r3, (r3, 0x0) + 92be: 3b40 cmpnei r3, 0 + 92c0: 0b84 bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PBC_ADDR,0,0); + 92c2: 3200 movi r2, 0 + 92c4: 3100 movi r1, 0 + 92c6: 3074 movi r0, 116 + 92c8: 07a4 br 0x9210 // 9210 + if(Get_SendState() == SEND_STATE_SUCC) + 92ca: e3fffc0b bsr 0x8ae0 // 8ae0 + 92ce: 3841 cmpnei r0, 1 + 92d0: 0803 bt 0x92d6 // 92d6 + g_Eng.rWCh_Num = 0x08; + 92d2: 3308 movi r3, 8 + 92d4: 078c br 0x91ec // 91ec + else if(Get_SendState() == SEND_STATE_FAIL) + 92d6: e3fffc05 bsr 0x8ae0 // 8ae0 + 92da: 3842 cmpnei r0, 2 + 92dc: 0805 bt 0x92e6 // 92e6 + g_Eng.rWCh_Num = 0x00; + 92de: 3300 movi r3, 0 + 92e0: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_SC_ADDR ERR!"); + 92e2: 113d lrw r1, 0xb57b // 93d4 + 92e4: 078b br 0x91fa // 91fa + if(u_det.WR_flag == SEND_NONE) + 92e6: 1177 lrw r3, 0x20000534 // 93c0 + 92e8: 8360 ld.b r3, (r3, 0x0) + 92ea: 3b40 cmpnei r3, 0 + 92ec: 0b6e bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_SC_ADDR,0,0); + 92ee: 3200 movi r2, 0 + 92f0: 3100 movi r1, 0 + 92f2: 3075 movi r0, 117 + 92f4: 078e br 0x9210 // 9210 + if(Get_SendState() == SEND_STATE_SUCC) + 92f6: e3fffbf5 bsr 0x8ae0 // 8ae0 + 92fa: 3841 cmpnei r0, 1 + 92fc: 0803 bt 0x9302 // 9302 + g_Eng.rWCh_Num = 0x09; + 92fe: 3309 movi r3, 9 + 9300: 0776 br 0x91ec // 91ec + else if(Get_SendState() == SEND_STATE_FAIL) + 9302: e3fffbef bsr 0x8ae0 // 8ae0 + 9306: 3842 cmpnei r0, 2 + 9308: 0805 bt 0x9312 // 9312 + g_Eng.rWCh_Num = 0x00; + 930a: 3300 movi r3, 0 + 930c: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_AC_ADDR ERR!"); + 930e: 1133 lrw r1, 0xb592 // 93d8 + 9310: 0775 br 0x91fa // 91fa + if(u_det.WR_flag == SEND_NONE) + 9312: 116c lrw r3, 0x20000534 // 93c0 + 9314: 8360 ld.b r3, (r3, 0x0) + 9316: 3b40 cmpnei r3, 0 + 9318: 0b58 bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_AC_ADDR,0,0); + 931a: 3200 movi r2, 0 + 931c: 3100 movi r1, 0 + 931e: 3076 movi r0, 118 + 9320: 0778 br 0x9210 // 9210 + if(Get_SendState() == SEND_STATE_SUCC) + 9322: e3fffbdf bsr 0x8ae0 // 8ae0 + 9326: 3841 cmpnei r0, 1 + 9328: 0803 bt 0x932e // 932e + g_Eng.rWCh_Num = 0x0A; + 932a: 330a movi r3, 10 + 932c: 0760 br 0x91ec // 91ec + else if(Get_SendState() == SEND_STATE_FAIL) + 932e: e3fffbd9 bsr 0x8ae0 // 8ae0 + 9332: 3842 cmpnei r0, 2 + 9334: 0805 bt 0x933e // 933e + g_Eng.rWCh_Num = 0x00; + 9336: 3300 movi r3, 0 + 9338: a461 st.b r3, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_BC_ADDR ERR!"); + 933a: 1129 lrw r1, 0xb5aa // 93dc + 933c: 075f br 0x91fa // 91fa + if(u_det.WR_flag == SEND_NONE) + 933e: 1161 lrw r3, 0x20000534 // 93c0 + 9340: 8360 ld.b r3, (r3, 0x0) + 9342: 3b40 cmpnei r3, 0 + 9344: 0b42 bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_BC_ADDR,0,0); + 9346: 3200 movi r2, 0 + 9348: 3100 movi r1, 0 + 934a: 3077 movi r0, 119 + 934c: 0762 br 0x9210 // 9210 + if(Get_SendState() == SEND_STATE_SUCC) + 934e: e3fffbc9 bsr 0x8ae0 // 8ae0 + 9352: 3841 cmpnei r0, 1 + 9354: 0818 bt 0x9384 // 9384 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 9356: 11a3 lrw r5, 0x2000053c // 93e0 + 9358: 6c17 mov r0, r5 + 935a: e3ffff0d bsr 0x9174 // 9174 + 935e: 8dc8 ld.h r6, (r5, 0x10) + g_Eng.rWCh_Num = 0x00; + 9360: 3300 movi r3, 0 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 9362: 641a cmpne r6, r0 + g_Eng.rWCh_Num = 0x00; + 9364: a461 st.b r3, (r4, 0x1) + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 9366: 0805 bt 0x9370 // 9370 + g_Eng.Tack_State = 0x02; + 9368: 3302 movi r3, 2 + 936a: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK SUCC!"); + 936c: 103e lrw r1, 0xb5c2 // 93e4 + 936e: 0746 br 0x91fa // 91fa + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK ERR:%x,%x",g_CalFactor.U16_CheckSUM_RegData,HLW8110_SysPara_Check(&g_CalFactor)); + 9370: 6c17 mov r0, r5 + 9372: e3ffff01 bsr 0x9174 // 9174 + 9376: 6cc3 mov r3, r0 + 9378: 6c9b mov r2, r6 + 937a: 103c lrw r1, 0xb5d2 // 93e8 + 937c: 3000 movi r0, 0 + 937e: e3fff35b bsr 0x7a34 // 7a34 + break; + 9382: 0723 br 0x91c8 // 91c8 + else if(Get_SendState() == SEND_STATE_FAIL) + 9384: e3fffbae bsr 0x8ae0 // 8ae0 + 9388: 3842 cmpnei r0, 2 + 938a: 0803 bt 0x9390 // 9390 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 938c: 1038 lrw r1, 0xb5e6 // 93ec + 938e: 0736 br 0x91fa // 91fa + if(u_det.WR_flag == SEND_NONE) + 9390: 106c lrw r3, 0x20000534 // 93c0 + 9392: 8360 ld.b r3, (r3, 0x0) + 9394: 3b40 cmpnei r3, 0 + 9396: 0b19 bt 0x91c8 // 91c8 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 9398: 3200 movi r2, 0 + 939a: 3100 movi r1, 0 + 939c: 306f movi r0, 111 + 939e: 0739 br 0x9210 // 9210 + g_Eng.rWCh_Num = 0x00; + 93a0: 3200 movi r2, 0 + 93a2: a341 st.b r2, (r3, 0x1) + g_Eng.Tack_State = 0x01; + 93a4: 3201 movi r2, 1 + 93a6: a340 st.b r2, (r3, 0x0) +} + 93a8: 0710 br 0x91c8 // 91c8 + 93aa: 0000 bkpt + 93ac: 20000578 .long 0x20000578 + 93b0: 200000c4 .long 0x200000c4 + 93b4: 2000016c .long 0x2000016c + 93b8: 000003e7 .long 0x000003e7 + 93bc: 0000b50a .long 0x0000b50a + 93c0: 20000534 .long 0x20000534 + 93c4: 0000b520 .long 0x0000b520 + 93c8: 0000b536 .long 0x0000b536 + 93cc: 0000b54b .long 0x0000b54b + 93d0: 0000b563 .long 0x0000b563 + 93d4: 0000b57b .long 0x0000b57b + 93d8: 0000b592 .long 0x0000b592 + 93dc: 0000b5aa .long 0x0000b5aa + 93e0: 2000053c .long 0x2000053c + 93e4: 0000b5c2 .long 0x0000b5c2 + 93e8: 0000b5d2 .long 0x0000b5d2 + 93ec: 0000b5e6 .long 0x0000b5e6 + +Disassembly of section .text.HLW8110_ReadSysCtrlPara: + +000093f0 : +{ + 93f0: 14d1 push r4, r15 + switch(g_Eng.rWSysCtrl) + 93f2: 118b lrw r4, 0x20000578 // 949c + 93f4: 8462 ld.b r3, (r4, 0x2) + 93f6: 3b41 cmpnei r3, 1 + 93f8: 0c23 bf 0x943e // 943e + 93fa: 3b40 cmpnei r3, 0 + 93fc: 0c07 bf 0x940a // 940a + 93fe: 3b42 cmpnei r3, 2 + 9400: 0c35 bf 0x946a // 946a + g_Eng.rWSysCtrl = 0x00; + 9402: 3300 movi r3, 0 + 9404: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x02; + 9406: 3302 movi r3, 2 + 9408: 0438 br 0x9478 // 9478 + if(Get_SendState() == SEND_STATE_SUCC) + 940a: e3fffb6b bsr 0x8ae0 // 8ae0 + 940e: 3841 cmpnei r0, 1 + 9410: 0804 bt 0x9418 // 9418 + g_Eng.rWSysCtrl = 0x01; + 9412: 3301 movi r3, 1 + g_Eng.rWSysCtrl = 0x02; + 9414: a462 st.b r3, (r4, 0x2) +} + 9416: 1491 pop r4, r15 + else if(Get_SendState() == SEND_STATE_FAIL) + 9418: e3fffb64 bsr 0x8ae0 // 8ae0 + 941c: 3842 cmpnei r0, 2 + 941e: 0806 bt 0x942a // 942a + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_SYSCON_ADDR ERR!"); + 9420: 1120 lrw r1, 0xb5fd // 94a0 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 9422: 3000 movi r0, 0 + 9424: e3fff308 bsr 0x7a34 // 7a34 + break; + 9428: 07f7 br 0x9416 // 9416 + if(u_det.WR_flag == SEND_NONE) + 942a: 107f lrw r3, 0x20000534 // 94a4 + 942c: 8360 ld.b r3, (r3, 0x0) + 942e: 3b40 cmpnei r3, 0 + 9430: 0bf3 bt 0x9416 // 9416 + BLV_HLW8110_RWCMD_Packaging(REG_SYSCON_ADDR,2,SYSCON_DEFAULT); + 9432: 105e lrw r2, 0xa04 // 94a8 + 9434: 3102 movi r1, 2 + 9436: 3000 movi r0, 0 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 9438: e3fffac0 bsr 0x89b8 // 89b8 + 943c: 07ed br 0x9416 // 9416 + if(Get_SendState() == SEND_STATE_SUCC) + 943e: e3fffb51 bsr 0x8ae0 // 8ae0 + 9442: 3841 cmpnei r0, 1 + 9444: 0803 bt 0x944a // 944a + g_Eng.rWSysCtrl = 0x02; + 9446: 3302 movi r3, 2 + 9448: 07e6 br 0x9414 // 9414 + else if(Get_SendState() == SEND_STATE_FAIL) + 944a: e3fffb4b bsr 0x8ae0 // 8ae0 + 944e: 3842 cmpnei r0, 2 + 9450: 0805 bt 0x945a // 945a + g_Eng.rWSysCtrl = 0x00; + 9452: 3300 movi r3, 0 + 9454: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON1_ADDR ERR!"); + 9456: 1036 lrw r1, 0xb612 // 94ac + 9458: 07e5 br 0x9422 // 9422 + if(u_det.WR_flag == SEND_NONE) + 945a: 1073 lrw r3, 0x20000534 // 94a4 + 945c: 8360 ld.b r3, (r3, 0x0) + 945e: 3b40 cmpnei r3, 0 + 9460: 0bdb bt 0x9416 // 9416 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON1_ADDR,2,EMUCON1_DEFAULT); + 9462: 3201 movi r2, 1 + 9464: 3102 movi r1, 2 + 9466: 3001 movi r0, 1 + 9468: 07e8 br 0x9438 // 9438 + if(Get_SendState() == SEND_STATE_SUCC) + 946a: e3fffb3b bsr 0x8ae0 // 8ae0 + 946e: 3841 cmpnei r0, 1 + 9470: 0806 bt 0x947c // 947c + g_Eng.rWSysCtrl = 0x00; + 9472: 3300 movi r3, 0 + 9474: a462 st.b r3, (r4, 0x2) + g_Eng.Tack_State = 0x03; + 9476: 3303 movi r3, 3 + g_Eng.Tack_State = 0x02; + 9478: a460 st.b r3, (r4, 0x0) +} + 947a: 07ce br 0x9416 // 9416 + else if(Get_SendState() == SEND_STATE_FAIL) + 947c: e3fffb32 bsr 0x8ae0 // 8ae0 + 9480: 3842 cmpnei r0, 2 + 9482: 0805 bt 0x948c // 948c + g_Eng.rWSysCtrl = 0x00; + 9484: 3300 movi r3, 0 + 9486: a462 st.b r3, (r4, 0x2) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 9488: 102a lrw r1, 0xb628 // 94b0 + 948a: 07cc br 0x9422 // 9422 + if(u_det.WR_flag == SEND_NONE) + 948c: 1066 lrw r3, 0x20000534 // 94a4 + 948e: 8360 ld.b r3, (r3, 0x0) + 9490: 3b40 cmpnei r3, 0 + 9492: 0bc2 bt 0x9416 // 9416 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 9494: 1048 lrw r2, 0x465 // 94b4 + 9496: 3102 movi r1, 2 + 9498: 3013 movi r0, 19 + 949a: 07cf br 0x9438 // 9438 + 949c: 20000578 .long 0x20000578 + 94a0: 0000b5fd .long 0x0000b5fd + 94a4: 20000534 .long 0x20000534 + 94a8: 00000a04 .long 0x00000a04 + 94ac: 0000b612 .long 0x0000b612 + 94b0: 0000b628 .long 0x0000b628 + 94b4: 00000465 .long 0x00000465 + +Disassembly of section .text.GetEnergy_Para: + +000094b8 : +{ + 94b8: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_V :%d 10mV",g_Eng.det_V); + 94ba: 1092 lrw r4, 0x20000578 // 9500 + 94bc: 1032 lrw r1, 0xb63e // 9504 + 94be: 3000 movi r0, 0 + 94c0: 944b ld.w r2, (r4, 0x2c) + 94c2: e3fff2b9 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_I :%d 10mA",g_Eng.det_ectA); + 94c6: 944c ld.w r2, (r4, 0x30) + 94c8: 3000 movi r0, 0 + 94ca: 1030 lrw r1, 0xb64d // 9508 + 94cc: e3fff2b4 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_P :%d W",g_Eng.det_powA); + 94d0: 944e ld.w r2, (r4, 0x38) + 94d2: 3000 movi r0, 0 + 94d4: 102e lrw r1, 0xb65c // 950c + 94d6: e3fff2af bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_E :%d W/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 94da: 9469 ld.w r3, (r4, 0x24) + 94dc: 9448 ld.w r2, (r4, 0x20) + 94de: 608e subu r2, r3 + 94e0: 102c lrw r1, 0xb668 // 9510 + 94e2: 3000 movi r0, 0 + 94e4: e3fff2a8 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_TE:%d W/h",g_Eng.Total_Eng); + 94e8: 9448 ld.w r2, (r4, 0x20) + 94ea: 3000 movi r0, 0 + 94ec: 102a lrw r1, 0xb676 // 9514 + 94ee: e3fff2a3 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_HF:%d",g_Eng.hfcount); + 94f2: 8c4e ld.h r2, (r4, 0x1c) + 94f4: 1029 lrw r1, 0xb684 // 9518 + 94f6: 3000 movi r0, 0 + 94f8: e3fff29e bsr 0x7a34 // 7a34 +} + 94fc: 1491 pop r4, r15 + 94fe: 0000 bkpt + 9500: 20000578 .long 0x20000578 + 9504: 0000b63e .long 0x0000b63e + 9508: 0000b64d .long 0x0000b64d + 950c: 0000b65c .long 0x0000b65c + 9510: 0000b668 .long 0x0000b668 + 9514: 0000b676 .long 0x0000b676 + 9518: 0000b684 .long 0x0000b684 + +Disassembly of section .text.HLW8110_ReadValue: + +0000951c : +{ + 951c: 14d1 push r4, r15 + switch(g_Eng.rDValue_State) + 951e: 128c lrw r4, 0x20000578 // 964c + 9520: 8403 ld.b r0, (r4, 0x3) + 9522: 3805 cmphsi r0, 6 + 9524: 0816 bt 0x9550 // 9550 + 9526: e3ffcfeb bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 952a: 1403 .short 0x1403 + 952c: 78624c34 .long 0x78624c34 + if(SysTick_1ms - Wait_ReadValue_Tisk >= g_Eng.Collect_Tim) //S读取一次 + 9530: 1248 lrw r2, 0x200000c4 // 9650 + 9532: 1229 lrw r1, 0x2000016c // 9654 + 9534: 9260 ld.w r3, (r2, 0x0) + 9536: 9102 ld.w r0, (r1, 0x8) + 9538: 60c2 subu r3, r0 + 953a: 9419 ld.w r0, (r4, 0x64) + 953c: 640c cmphs r3, r0 + 953e: 0c09 bf 0x9550 // 9550 + Wait_ReadValue_Tisk = SysTick_1ms; + 9540: 9240 ld.w r2, (r2, 0x0) + 9542: b142 st.w r2, (r1, 0x8) + g_Eng.rDValue_State = 0x01; + 9544: 3301 movi r3, 1 + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 9546: 1225 lrw r1, 0xb68e // 9658 + 9548: 3000 movi r0, 0 + g_Eng.rDValue_State = 0x01; + 954a: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 954c: e3fff274 bsr 0x7a34 // 7a34 +} + 9550: 1491 pop r4, r15 + if(Get_SendState() == SEND_STATE_SUCC) + 9552: e3fffac7 bsr 0x8ae0 // 8ae0 + 9556: 3841 cmpnei r0, 1 + 9558: 0804 bt 0x9560 // 9560 + g_Eng.rDValue_State = 0x02; + 955a: 3302 movi r3, 2 + g_Eng.rDValue_State = 0x03; + 955c: a463 st.b r3, (r4, 0x3) + break; + 955e: 07f9 br 0x9550 // 9550 + else if(Get_SendState() == SEND_STATE_FAIL) + 9560: e3fffac0 bsr 0x8ae0 // 8ae0 + 9564: 3842 cmpnei r0, 2 + 9566: 0808 bt 0x9576 // 9576 + g_Eng.rDValue_State = 0x00; + 9568: 3300 movi r3, 0 + 956a: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIA_ADDR ERR!"); + 956c: 113c lrw r1, 0xb69b // 965c + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 956e: 3000 movi r0, 0 + 9570: e3fff262 bsr 0x7a34 // 7a34 + break; + 9574: 07ee br 0x9550 // 9550 + if(u_det.WR_flag == SEND_NONE) + 9576: 117b lrw r3, 0x20000534 // 9660 + 9578: 8360 ld.b r3, (r3, 0x0) + 957a: 3b40 cmpnei r3, 0 + 957c: 0806 bt 0x9588 // 9588 + BLV_HLW8110_RWCMD_Packaging(REG_RMSIA_ADDR,0,0); + 957e: 3200 movi r2, 0 + 9580: 3100 movi r1, 0 + 9582: 3024 movi r0, 36 + 9584: e3fffa1a bsr 0x89b8 // 89b8 + Wait_ReadValue_Tisk = SysTick_1ms; + 9588: 1172 lrw r3, 0x200000c4 // 9650 + 958a: 9340 ld.w r2, (r3, 0x0) + 958c: 1172 lrw r3, 0x2000016c // 9654 + 958e: b342 st.w r2, (r3, 0x8) + break; + 9590: 07e0 br 0x9550 // 9550 + if(Get_SendState() == SEND_STATE_SUCC) + 9592: e3fffaa7 bsr 0x8ae0 // 8ae0 + 9596: 3841 cmpnei r0, 1 + 9598: 0803 bt 0x959e // 959e + g_Eng.rDValue_State = 0x03; + 959a: 3303 movi r3, 3 + 959c: 07e0 br 0x955c // 955c + else if(Get_SendState() == SEND_STATE_FAIL) + 959e: e3fffaa1 bsr 0x8ae0 // 8ae0 + 95a2: 3842 cmpnei r0, 2 + 95a4: 0805 bt 0x95ae // 95ae + g_Eng.rDValue_State = 0x00; + 95a6: 3300 movi r3, 0 + 95a8: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSU_ADDR ERR!"); + 95aa: 112f lrw r1, 0xb6af // 9664 + 95ac: 07e1 br 0x956e // 956e + if(u_det.WR_flag == SEND_NONE) + 95ae: 116d lrw r3, 0x20000534 // 9660 + 95b0: 8360 ld.b r3, (r3, 0x0) + 95b2: 3b40 cmpnei r3, 0 + 95b4: 0bce bt 0x9550 // 9550 + BLV_HLW8110_RWCMD_Packaging(REG_RMSU_ADDR,0,0); + 95b6: 3200 movi r2, 0 + 95b8: 3100 movi r1, 0 + 95ba: 3026 movi r0, 38 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 95bc: e3fff9fe bsr 0x89b8 // 89b8 +} + 95c0: 07c8 br 0x9550 // 9550 + if(Get_SendState() == SEND_STATE_SUCC) + 95c2: e3fffa8f bsr 0x8ae0 // 8ae0 + 95c6: 3841 cmpnei r0, 1 + 95c8: 0803 bt 0x95ce // 95ce + g_Eng.rDValue_State = 0x04; + 95ca: 3304 movi r3, 4 + 95cc: 07c8 br 0x955c // 955c + else if(Get_SendState() == SEND_STATE_FAIL) + 95ce: e3fffa89 bsr 0x8ae0 // 8ae0 + 95d2: 3842 cmpnei r0, 2 + 95d4: 0805 bt 0x95de // 95de + g_Eng.rDValue_State = 0x00; + 95d6: 3300 movi r3, 0 + 95d8: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PA_ADDR ERR!"); + 95da: 1124 lrw r1, 0xb6c2 // 9668 + 95dc: 07c9 br 0x956e // 956e + if(u_det.WR_flag == SEND_NONE) + 95de: 1161 lrw r3, 0x20000534 // 9660 + 95e0: 8360 ld.b r3, (r3, 0x0) + 95e2: 3b40 cmpnei r3, 0 + 95e4: 0bb6 bt 0x9550 // 9550 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PA_ADDR,0,0); + 95e6: 3200 movi r2, 0 + 95e8: 3100 movi r1, 0 + 95ea: 302c movi r0, 44 + 95ec: 07e8 br 0x95bc // 95bc + if(Get_SendState() == SEND_STATE_SUCC) + 95ee: e3fffa79 bsr 0x8ae0 // 8ae0 + 95f2: 3841 cmpnei r0, 1 + 95f4: 0803 bt 0x95fa // 95fa + g_Eng.rDValue_State = 0x05; + 95f6: 3305 movi r3, 5 + 95f8: 07b2 br 0x955c // 955c + else if(Get_SendState() == SEND_STATE_FAIL) + 95fa: e3fffa73 bsr 0x8ae0 // 8ae0 + 95fe: 3842 cmpnei r0, 2 + 9600: 0805 bt 0x960a // 960a + g_Eng.rDValue_State = 0x00; + 9602: 3300 movi r3, 0 + 9604: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PA_ADDR ERR!"); + 9606: 103a lrw r1, 0xb6d9 // 966c + 9608: 07b3 br 0x956e // 956e + if(u_det.WR_flag == SEND_NONE) + 960a: 1076 lrw r3, 0x20000534 // 9660 + 960c: 8360 ld.b r3, (r3, 0x0) + 960e: 3b40 cmpnei r3, 0 + 9610: 0ba0 bt 0x9550 // 9550 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PA_ADDR,0,0); + 9612: 3200 movi r2, 0 + 9614: 3100 movi r1, 0 + 9616: 3028 movi r0, 40 + 9618: 07d2 br 0x95bc // 95bc + if(Get_SendState() == SEND_STATE_SUCC) + 961a: e3fffa63 bsr 0x8ae0 // 8ae0 + 961e: 3841 cmpnei r0, 1 + 9620: 0805 bt 0x962a // 962a + GetEnergy_Para(); + 9622: e3ffff4b bsr 0x94b8 // 94b8 + g_Eng.rDValue_State = 0x00; + 9626: 3300 movi r3, 0 + 9628: 079a br 0x955c // 955c + else if(Get_SendState() == SEND_STATE_FAIL) + 962a: e3fffa5b bsr 0x8ae0 // 8ae0 + 962e: 3842 cmpnei r0, 2 + 9630: 0805 bt 0x963a // 963a + g_Eng.rDValue_State = 0x00; + 9632: 3300 movi r3, 0 + 9634: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 9636: 102f lrw r1, 0xb6f1 // 9670 + 9638: 079b br 0x956e // 956e + if(u_det.WR_flag == SEND_NONE) + 963a: 106a lrw r3, 0x20000534 // 9660 + 963c: 8360 ld.b r3, (r3, 0x0) + 963e: 3b40 cmpnei r3, 0 + 9640: 0b88 bt 0x9550 // 9550 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 9642: 3200 movi r2, 0 + 9644: 3100 movi r1, 0 + 9646: 3002 movi r0, 2 + 9648: 07ba br 0x95bc // 95bc + 964a: 0000 bkpt + 964c: 20000578 .long 0x20000578 + 9650: 200000c4 .long 0x200000c4 + 9654: 2000016c .long 0x2000016c + 9658: 0000b68e .long 0x0000b68e + 965c: 0000b69b .long 0x0000b69b + 9660: 20000534 .long 0x20000534 + 9664: 0000b6af .long 0x0000b6af + 9668: 0000b6c2 .long 0x0000b6c2 + 966c: 0000b6d9 .long 0x0000b6d9 + 9670: 0000b6f1 .long 0x0000b6f1 + +Disassembly of section .text.BLV_HLW8110_Tack: + +00009674 : +{ + 9674: 14d0 push r15 + switch(g_Eng.Tack_State) + 9676: 106d lrw r3, 0x20000578 // 96a8 + 9678: 8300 ld.b r0, (r3, 0x0) + 967a: 3803 cmphsi r0, 4 + 967c: 080c bt 0x9694 // 9694 + 967e: e3ffcf3f bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9682: 0a02 .short 0x0a02 + 9684: 100d .short 0x100d + if(SysTick_1ms > 1500) + 9686: 104a lrw r2, 0x200000c4 // 96ac + 9688: 9220 ld.w r1, (r2, 0x0) + 968a: 104a lrw r2, 0x5dc // 96b0 + 968c: 6448 cmphs r2, r1 + 968e: 0803 bt 0x9694 // 9694 + g_Eng.Tack_State = 0x01; + 9690: 3201 movi r2, 1 + 9692: a340 st.b r2, (r3, 0x0) +} + 9694: 1490 pop r15 + HLW8110_ReadSysPara(); + 9696: e3fffd83 bsr 0x919c // 919c + break; + 969a: 07fd br 0x9694 // 9694 + HLW8110_ReadSysCtrlPara(); + 969c: e3fffeaa bsr 0x93f0 // 93f0 + break; + 96a0: 07fa br 0x9694 // 9694 + HLW8110_ReadValue(); + 96a2: e3ffff3d bsr 0x951c // 951c +} + 96a6: 07f7 br 0x9694 // 9694 + 96a8: 20000578 .long 0x20000578 + 96ac: 200000c4 .long 0x200000c4 + 96b0: 000005dc .long 0x000005dc + +Disassembly of section .text.BT_Uart_Packing: + +000096b4 : +{ + 96b4: 14d0 push r15 + if(flag <= 3 ) return; + 96b6: 3a03 cmphsi r2, 4 + 96b8: 0c03 bf 0x96be // 96be + 96ba: e3fff865 bsr 0x8784 // 8784 +} + 96be: 1490 pop r15 + +Disassembly of section .text.BT_UART_Print: + +000096c0 : + +//蓝牙打印调试 +void BT_UART_Print(void) +{ + 96c0: 14d2 push r4-r5, r15 + static U32_T BT_State = 0x00; + static U32_T BT_WaitOutTim = 0x00; + + for(U8_T i = 10;i > 3;i--) + { + if( (g_Eng.BT_SendFlag & (0x01 << i )) != 0x00 ){ + 96c2: 1176 lrw r3, 0x20000578 // 9798 + 96c4: 8b8d ld.h r4, (r3, 0x1a) + 96c6: 320a movi r2, 10 + 96c8: 3001 movi r0, 1 + 96ca: 6c53 mov r1, r4 + 96cc: 704a asr r1, r2 + 96ce: 6840 and r1, r0 + 96d0: 3940 cmpnei r1, 0 + 96d2: 0c17 bf 0x9700 // 9700 + BT_State = i; + 96d4: 7488 zextb r2, r2 + 96d6: 1132 lrw r1, 0x2000016c // 979c + 96d8: b143 st.w r2, (r1, 0xc) + break; + } + } + + if(SysTick_1ms - g_Eng.BT_Print_Tim >= 100) + 96da: 1132 lrw r1, 0x200000c4 // 97a0 + 96dc: 9140 ld.w r2, (r1, 0x0) + 96de: 931d ld.w r0, (r3, 0x74) + 96e0: 6082 subu r2, r0 + 96e2: 3063 movi r0, 99 + 96e4: 6480 cmphs r0, r2 + 96e6: 081a bt 0x971a // 971a + { + g_Eng.BT_Print_Tim = SysTick_1ms; + switch(BT_State) + 96e8: 11ad lrw r5, 0x2000016c // 979c + 96ea: 9503 ld.w r0, (r5, 0xc) + g_Eng.BT_Print_Tim = SysTick_1ms; + 96ec: 9140 ld.w r2, (r1, 0x0) + switch(BT_State) + 96ee: 3806 cmphsi r0, 7 + g_Eng.BT_Print_Tim = SysTick_1ms; + 96f0: b35d st.w r2, (r3, 0x74) + switch(BT_State) + 96f2: 084c bt 0x978a // 978a + 96f4: e3ffcf04 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 96f8: 21191208 .long 0x21191208 + 96fc: 003c312a .long 0x003c312a + 9700: 2a00 subi r2, 1 + for(U8_T i = 10;i > 3;i--) + 9702: 3a43 cmpnei r2, 3 + 9704: 0be3 bt 0x96ca // 96ca + 9706: 07ea br 0x96da // 96da + { + case 0x00: + BT_State = 0x01; + 9708: 3101 movi r1, 1 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 970a: 936b ld.w r3, (r3, 0x2c) + 970c: 320a movi r2, 10 + BT_State = 0x01; + 970e: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 9710: 7c8c mult r2, r3 + 9712: 1125 lrw r1, 0xb707 // 97a4 + break; + case 0x01: + BT_State = 0x02; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 9714: 3003 movi r0, 3 + 9716: e3fff329 bsr 0x7d68 // 7d68 + BT_State = 0x03; + break; + } + + } +} + 971a: 1492 pop r4-r5, r15 + BT_State = 0x02; + 971c: 3102 movi r1, 2 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 971e: 936c ld.w r3, (r3, 0x30) + 9720: 320a movi r2, 10 + BT_State = 0x02; + 9722: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%dmA",g_Eng.det_ectA*10); + 9724: 7c8c mult r2, r3 + 9726: 1121 lrw r1, 0xb70e // 97a8 + 9728: 07f6 br 0x9714 // 9714 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 972a: 934e ld.w r2, (r3, 0x38) + 972c: 33fa movi r3, 250 + BT_State = 0x03; + 972e: 3103 movi r1, 3 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 9730: 4362 lsli r3, r3, 2 + BT_State = 0x03; + 9732: b523 st.w r1, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%dmW",(g_Eng.det_powA*1000) ); + 9734: 7c8c mult r2, r3 + 9736: 103e lrw r1, 0xb715 // 97ac + 9738: 07ee br 0x9714 // 9714 + BT_WaitOutTim = SysTick_1ms; + 973a: 9120 ld.w r1, (r1, 0x0) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 973c: 9348 ld.w r2, (r3, 0x20) + BT_State = 0x04; + 973e: 3004 movi r0, 4 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 9740: 9369 ld.w r3, (r3, 0x24) + BT_WaitOutTim = SysTick_1ms; + 9742: b524 st.w r1, (r5, 0x10) + BT_State = 0x04; + 9744: b503 st.w r0, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%dW/h",g_Eng.Total_Eng - g_Eng.LastPhase_Eng); + 9746: 608e subu r2, r3 + 9748: 103a lrw r1, 0xb71d // 97b0 + 974a: 07e5 br 0x9714 // 9714 + BT_WaitOutTim = SysTick_1ms; + 974c: 9120 ld.w r1, (r1, 0x0) + BT_State = 0x05; + 974e: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 9750: b524 st.w r1, (r5, 0x10) + BT_State = 0x05; + 9752: b503 st.w r0, (r5, 0xc) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TE:%dW/h",g_Eng.Total_Eng); + 9754: 9348 ld.w r2, (r3, 0x20) + 9756: 1038 lrw r1, 0xb71c // 97b4 + 9758: 07de br 0x9714 // 9714 + if(SysTick_1ms - BT_WaitOutTim >= 3000) + 975a: 9504 ld.w r0, (r5, 0x10) + 975c: 9160 ld.w r3, (r1, 0x0) + 975e: 60c2 subu r3, r0 + 9760: 1016 lrw r0, 0xbb7 // 97b8 + 9762: 64c0 cmphs r0, r3 + 9764: 0bdb bt 0x971a // 971a + BT_WaitOutTim = SysTick_1ms; + 9766: 9160 ld.w r3, (r1, 0x0) + 9768: b564 st.w r3, (r5, 0x10) + BT_State = 0x00; + 976a: 3300 movi r3, 0 + 976c: b563 st.w r3, (r5, 0xc) + 976e: 07d6 br 0x971a // 971a + g_Eng.BT_SendFlag &= (~(0x01 << 6)); + 9770: 3c86 bclri r4, 6 + 9772: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x05; + 9774: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 9776: 9120 ld.w r1, (r1, 0x0) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 9778: 8359 ld.b r2, (r3, 0x19) + 977a: 1071 lrw r3, 0x20000038 // 97bc + BT_State = 0x05; + 977c: b503 st.w r0, (r5, 0xc) + BT_WaitOutTim = SysTick_1ms; + 977e: b524 st.w r1, (r5, 0x10) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 9780: 9300 ld.w r0, (r3, 0x0) + 9782: 1030 lrw r1, 0x2000057d // 97c0 + 9784: e3ffe84a bsr 0x6818 // 6818 + 9788: 07c9 br 0x971a // 971a + g_Eng.BT_SendFlag &= (~0xFFE0); + 978a: 321f movi r2, 31 + 978c: 6908 and r4, r2 + 978e: ab8d st.h r4, (r3, 0x1a) + BT_State = 0x03; + 9790: 3303 movi r3, 3 + 9792: b563 st.w r3, (r5, 0xc) +} + 9794: 07c3 br 0x971a // 971a + 9796: 0000 bkpt + 9798: 20000578 .long 0x20000578 + 979c: 2000016c .long 0x2000016c + 97a0: 200000c4 .long 0x200000c4 + 97a4: 0000b707 .long 0x0000b707 + 97a8: 0000b70e .long 0x0000b70e + 97ac: 0000b715 .long 0x0000b715 + 97b0: 0000b71d .long 0x0000b71d + 97b4: 0000b71c .long 0x0000b71c + 97b8: 00000bb7 .long 0x00000bb7 + 97bc: 20000038 .long 0x20000038 + 97c0: 2000057d .long 0x2000057d + +Disassembly of section .text.BLV_Energy_ActiveRep_Packing: + +000097c4 : + + + +//电参数主动上报组包 +void BLV_Energy_ActiveRep_Packing(void) +{ + 97c4: 14d1 push r4, r15 + 97c6: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 97c8: 1801 addi r0, r14, 4 + 97ca: 3232 movi r2, 50 + 97cc: 3100 movi r1, 0 + 97ce: e3ffd8c5 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97d2: 1175 lrw r3, 0x20000578 // 98a4 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; +// g_Eng.det_LastReprot_Eng = g_Eng.det_energyA; +// Dbg_Println(DBG_BIT_SYS_STATUS,"ReportEng1:%d",Energy_Rep); + + g_Eng.SdSN++; + 97d4: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97d6: 32fa movi r2, 250 + g_Eng.SdSN++; + 97d8: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97da: 932e ld.w r1, (r3, 0x38) + 97dc: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 97de: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 97e0: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 97e2: 9309 ld.w r0, (r3, 0x24) + 97e4: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 97e6: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 97e8: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 97ea: 085a bt 0x989e // 989e + 97ec: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 97ee: 3400 movi r4, 0 + 97f0: 2c75 subi r4, 118 + 97f2: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 97f6: 8384 ld.b r4, (r3, 0x4) + 97f8: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 97fc: 3400 movi r4, 0 + 97fe: 2c0b subi r4, 12 + 9800: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 9804: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 9808: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 980c: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 9810: 1186 lrw r4, 0x20000480 // 98a8 + 9812: 8486 ld.b r4, (r4, 0x6) + 9814: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x01; //cmd + 9818: 3401 movi r4, 1 + 981a: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 981e: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 9822: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 9824: 936c ld.w r3, (r3, 0x30) + 9826: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 982a: 4b68 lsri r3, r3, 8 + 982c: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 9830: 4a68 lsri r3, r2, 8 + 9832: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 9836: 4a70 lsri r3, r2, 16 + 9838: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 983c: 4868 lsri r3, r0, 8 + 983e: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 9842: 4870 lsri r3, r0, 16 + 9844: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 9848: 4968 lsri r3, r1, 8 + 984a: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 984e: 4970 lsri r3, r1, 16 + 9850: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 9854: 4978 lsri r3, r1, 24 + 9856: dc6e001b st.b r3, (r14, 0x1b) + + send_data[send_len++] = ENERGY_TAIL; + 985a: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 985c: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 985e: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 9860: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 9864: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 9868: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 986c: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 986e: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9870: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9872: 3119 movi r1, 25 + 9874: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9876: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 987a: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 987e: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9882: e3fff813 bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 9886: 33c8 movi r3, 200 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9888: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 + 988c: b860 st.w r3, (r14, 0x0) + 988e: 3203 movi r2, 3 + 9890: 1067 lrw r3, 0xbb8 // 98ac + 9892: 3119 movi r1, 25 + 9894: 1801 addi r0, r14, 4 + 9896: e3fff041 bsr 0x7918 // 7918 +} + 989a: 140e addi r14, r14, 56 + 989c: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 989e: 3400 movi r4, 0 + 98a0: 07a6 br 0x97ec // 97ec + 98a2: 0000 bkpt + 98a4: 20000578 .long 0x20000578 + 98a8: 20000480 .long 0x20000480 + 98ac: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BLV_ElectricPara_Processing: + +000098b0 : +{ + 98b0: 14d3 push r4-r6, r15 + if (SysTick_1ms - Eng_Save_Tim >= g_Eng.SaveFlash_Tim) //1小时 + 98b2: 11a2 lrw r5, 0x200000c4 // 9938 + 98b4: 1142 lrw r2, 0x2000016c // 993c + 98b6: 1183 lrw r4, 0x20000578 // 9940 + 98b8: 9225 ld.w r1, (r2, 0x14) + 98ba: 9560 ld.w r3, (r5, 0x0) + 98bc: 60c6 subu r3, r1 + 98be: 943b ld.w r1, (r4, 0x6c) + 98c0: 644c cmphs r3, r1 + 98c2: 0c2b bf 0x9918 // 9918 + Eng_Save_Tim = SysTick_1ms; + 98c4: 9560 ld.w r3, (r5, 0x0) + 98c6: b265 st.w r3, (r2, 0x14) + if( (g_Eng.Total_Eng > g_Eng.LastSave_Total_Eng)||(g_Eng.U32_EnergyA_RegData > g_Eng.U32_EnergyA_RegData_LastSave) ) + 98c8: 9468 ld.w r3, (r4, 0x20) + 98ca: 944a ld.w r2, (r4, 0x28) + 98cc: 64c8 cmphs r2, r3 + 98ce: 0c05 bf 0x98d8 // 98d8 + 98d0: 942f ld.w r1, (r4, 0x3c) + 98d2: 9452 ld.w r2, (r4, 0x48) + 98d4: 6448 cmphs r2, r1 + 98d6: 0821 bt 0x9918 // 9918 + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 98d8: 10db lrw r6, 0x200004e8 // 9944 + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 98da: 6c1b mov r0, r6 + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 98dc: 944f ld.w r2, (r4, 0x3c) + g_Eng.LastSave_Total_Eng = g_Eng.Total_Eng; + 98de: b46a st.w r3, (r4, 0x28) + eng_info.eng_total = g_Eng.Total_Eng; //更新总能耗 + 98e0: b660 st.w r3, (r6, 0x0) + g_Eng.U32_EnergyA_RegData_LastSave = g_Eng.U32_EnergyA_RegData; + 98e2: b452 st.w r2, (r4, 0x48) + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 98e4: b642 st.w r2, (r6, 0x8) + WriteEng_rev = EEPROM_WriteTotalEng(&eng_info); + 98e6: e3fff58f bsr 0x8404 // 8404 + 98ea: 6c83 mov r2, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng:%d",WriteEng_rev); + 98ec: 1037 lrw r1, 0xb725 // 9948 + 98ee: 3000 movi r0, 0 + 98f0: e3fff0a2 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEng_Cnt:%d,TEng:%d",eng_info.eng_save_cnt,eng_info.eng_total); + 98f4: 9660 ld.w r3, (r6, 0x0) + 98f6: 9641 ld.w r2, (r6, 0x4) + 98f8: 3000 movi r0, 0 + 98fa: 1035 lrw r1, 0xb72f // 994c + 98fc: e3fff09c bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"WtTEngReg_NUM:%d",eng_info.U32_EnergyA_RegData ); + 9900: 9642 ld.w r2, (r6, 0x8) + 9902: 3000 movi r0, 0 + 9904: 1033 lrw r1, 0xb745 // 9950 + 9906: e3fff097 bsr 0x7a34 // 7a34 + Dbg_Println(DBG_BIT_SYS_STATUS,"save SN:%d,MAX:%d",e_save.eng_save_offset,e_save.eng_save_max); + 990a: 1053 lrw r2, 0x20000494 // 9954 + 990c: 1033 lrw r1, 0xb756 // 9958 + 990e: 3000 movi r0, 0 + 9910: 9266 ld.w r3, (r2, 0x18) + 9912: 9247 ld.w r2, (r2, 0x1c) + 9914: e3fff090 bsr 0x7a34 // 7a34 + if( (g_Dip.Dev_Port == Active_Port)&&(SysTick_1ms - g_Eng.Eng_Report_Tim >= g_Eng.Report_Tim) ) + 9918: 1071 lrw r3, 0x20000480 // 995c + 991a: 8367 ld.b r3, (r3, 0x7) + 991c: 3b41 cmpnei r3, 1 + 991e: 080b bt 0x9934 // 9934 + 9920: 945c ld.w r2, (r4, 0x70) + 9922: 9560 ld.w r3, (r5, 0x0) + 9924: 60ca subu r3, r2 + 9926: 945a ld.w r2, (r4, 0x68) + 9928: 648c cmphs r3, r2 + 992a: 0c05 bf 0x9934 // 9934 + g_Eng.Eng_Report_Tim = SysTick_1ms; + 992c: 9560 ld.w r3, (r5, 0x0) + 992e: b47c st.w r3, (r4, 0x70) + BLV_Energy_ActiveRep_Packing(); + 9930: e3ffff4a bsr 0x97c4 // 97c4 +} + 9934: 1493 pop r4-r6, r15 + 9936: 0000 bkpt + 9938: 200000c4 .long 0x200000c4 + 993c: 2000016c .long 0x2000016c + 9940: 20000578 .long 0x20000578 + 9944: 200004e8 .long 0x200004e8 + 9948: 0000b725 .long 0x0000b725 + 994c: 0000b72f .long 0x0000b72f + 9950: 0000b745 .long 0x0000b745 + 9954: 20000494 .long 0x20000494 + 9958: 0000b756 .long 0x0000b756 + 995c: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_EngDetect_Tack: + +00009960 : +{ + 9960: 14d0 push r15 + BLV_HLW8110_Tack(); + 9962: e3fffe89 bsr 0x9674 // 9674 + BLV_HLW8110_SendData_Tack(); + 9966: e3fff8cb bsr 0x8afc // 8afc + BLV_ElectricPara_Processing(); + 996a: e3ffffa3 bsr 0x98b0 // 98b0 + BT_UART_Print(); + 996e: e3fffea9 bsr 0x96c0 // 96c0 +} + 9972: 1490 pop r15 + +Disassembly of section .text.BLV_Energy_PassiveRep_Packing: + +00009974 : + +//电参数查询回复组包 +void BLV_Energy_PassiveRep_Packing(void) +{ + 9974: 14d1 push r4, r15 + 9976: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9978: 1801 addi r0, r14, 4 + 997a: 3232 movi r2, 50 + 997c: 3100 movi r1, 0 + 997e: e3ffd7ed bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9982: 1176 lrw r3, 0x20000578 // 9a58 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + + + g_Eng.SdSN++; + 9984: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9986: 32fa movi r2, 250 + g_Eng.SdSN++; + 9988: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 998a: 932e ld.w r1, (r3, 0x38) + 998c: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 998e: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 9990: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9992: 9309 ld.w r0, (r3, 0x24) + 9994: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9996: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9998: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 999a: 085c bt 0x9a52 // 9a52 + 999c: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 999e: 3400 movi r4, 0 + 99a0: 2c75 subi r4, 118 + 99a2: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 99a6: 8384 ld.b r4, (r3, 0x4) + 99a8: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 99ac: 3400 movi r4, 0 + 99ae: 2c0b subi r4, 12 + 99b0: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 99b4: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 99b8: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 99bc: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 99c0: 1187 lrw r4, 0x20000480 // 9a5c + 99c2: 8486 ld.b r4, (r4, 0x6) + 99c4: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x02; //cmd + 99c8: 3402 movi r4, 2 + 99ca: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 99ce: 3401 movi r4, 1 + 99d0: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 99d4: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 99d6: 936c ld.w r3, (r3, 0x30) + 99d8: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 99dc: 4b68 lsri r3, r3, 8 + 99de: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 99e2: 4a68 lsri r3, r2, 8 + 99e4: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 99e8: 4a70 lsri r3, r2, 16 + 99ea: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 99ee: 4868 lsri r3, r0, 8 + 99f0: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 99f4: 4870 lsri r3, r0, 16 + 99f6: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 99fa: 4968 lsri r3, r1, 8 + 99fc: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 9a00: 4970 lsri r3, r1, 16 + 9a02: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 9a06: 4978 lsri r3, r1, 24 + 9a08: dc6e001b st.b r3, (r14, 0x1b) + send_data[send_len++] = ENERGY_TAIL; + 9a0c: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 9a0e: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 9a10: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 9a12: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 9a16: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 9a1a: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9a1e: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 9a20: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9a22: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9a24: 3119 movi r1, 25 + 9a26: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 9a28: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 9a2c: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9a30: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9a34: e3fff73a bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9a38: 3332 movi r3, 50 + 9a3a: b860 st.w r3, (r14, 0x0) + 9a3c: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9a3e: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9a42: 4361 lsli r3, r3, 1 + 9a44: 3201 movi r2, 1 + 9a46: 3119 movi r1, 25 + 9a48: 1801 addi r0, r14, 4 + 9a4a: e3ffef67 bsr 0x7918 // 7918 + +} + 9a4e: 140e addi r14, r14, 56 + 9a50: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9a52: 3400 movi r4, 0 + 9a54: 07a4 br 0x999c // 999c + 9a56: 0000 bkpt + 9a58: 20000578 .long 0x20000578 + 9a5c: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_Energy_SetTime_Packing: + +00009a60 : + +//MCU设置周期 +U8_T BLV_Energy_SetTime_Packing(U8_T *data,U16_T lens) +{ + 9a60: 14d2 push r4-r5, r15 + 9a62: 1421 subi r14, r14, 4 + if(lens < 18) return 0x01; + 9a64: 3911 cmphsi r1, 18 +{ + 9a66: 6d03 mov r4, r0 + 9a68: 6d47 mov r5, r1 + if(lens < 18) return 0x01; + 9a6a: 0c43 bf 0x9af0 // 9af0 + + U32_T temp_T = 0; + + if( ( (data[7])&0x01) == 0x01) + 9a6c: 8067 ld.b r3, (r0, 0x7) + 9a6e: 3201 movi r2, 1 + 9a70: 68c8 and r3, r2 + 9a72: 3b40 cmpnei r3, 0 + 9a74: 0c10 bf 0x9a94 // 9a94 + { + temp_T = (data[11]<<24) + (data[10]<<16) + (data[9]<<8) + data[8]; + 9a76: 806b ld.b r3, (r0, 0xb) + 9a78: 804a ld.b r2, (r0, 0xa) + 9a7a: 4250 lsli r2, r2, 16 + 9a7c: 4378 lsli r3, r3, 24 + 9a7e: 60c8 addu r3, r2 + 9a80: 8049 ld.b r2, (r0, 0x9) + 9a82: 4248 lsli r2, r2, 8 + 9a84: 60c8 addu r3, r2 + 9a86: 8048 ld.b r2, (r0, 0x8) + 9a88: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 9a8a: 105b lrw r2, 0x3e7 // 9af4 + 9a8c: 64c8 cmphs r2, r3 + 9a8e: 0803 bt 0x9a94 // 9a94 + g_Eng.Collect_Tim = temp_T; + 9a90: 105a lrw r2, 0x20000578 // 9af8 + 9a92: b279 st.w r3, (r2, 0x64) + } + } + + if(data[12] == 0x00) + 9a94: 846c ld.b r3, (r4, 0xc) + { + g_Dip.Dev_Port = Passive_Port; + 9a96: 3b40 cmpnei r3, 0 + 9a98: 3300 movi r3, 0 + 9a9a: 60cd addc r3, r3 + 9a9c: 1058 lrw r2, 0x20000480 // 9afc + 9a9e: a267 st.b r3, (r2, 0x7) + } + else{ + g_Dip.Dev_Port = Active_Port; + } + + if( ((data[7] >> 1)&0x01) == 0x01) + 9aa0: 8467 ld.b r3, (r4, 0x7) + 9aa2: 4b61 lsri r3, r3, 1 + 9aa4: 3201 movi r2, 1 + 9aa6: 68c8 and r3, r2 + 9aa8: 3b40 cmpnei r3, 0 + 9aaa: 0c10 bf 0x9aca // 9aca + { + temp_T = (data[16]<<24) + (data[15]<<16) + (data[14]<<8) + data[13]; + 9aac: 8470 ld.b r3, (r4, 0x10) + 9aae: 844f ld.b r2, (r4, 0xf) + 9ab0: 4250 lsli r2, r2, 16 + 9ab2: 4378 lsli r3, r3, 24 + 9ab4: 60c8 addu r3, r2 + 9ab6: 844e ld.b r2, (r4, 0xe) + 9ab8: 4248 lsli r2, r2, 8 + 9aba: 60c8 addu r3, r2 + 9abc: 844d ld.b r2, (r4, 0xd) + 9abe: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 9ac0: 104d lrw r2, 0x3e7 // 9af4 + 9ac2: 64c8 cmphs r2, r3 + 9ac4: 0803 bt 0x9aca // 9aca + g_Eng.Report_Tim = temp_T; + 9ac6: 104d lrw r2, 0x20000578 // 9af8 + 9ac8: b27a st.w r3, (r2, 0x68) + } + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9aca: e3fff305 bsr 0x80d4 // 80d4 + + //数据原样返回 + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9ace: 3314 movi r3, 20 + 9ad0: b860 st.w r3, (r14, 0x0) + 9ad2: 3396 movi r3, 150 + 9ad4: 4361 lsli r3, r3, 1 + 9ad6: 3201 movi r2, 1 + 9ad8: 6c57 mov r1, r5 + 9ada: 6c13 mov r0, r4 + 9adc: e3ffef1e bsr 0x7918 // 7918 + 9ae0: 6c13 mov r0, r4 + 9ae2: 7454 zextb r1, r5 + 9ae4: 3206 movi r2, 6 + 9ae6: e3fff64f bsr 0x8784 // 8784 + 9aea: 3000 movi r0, 0 + BT_Uart_Packing(data,lens,6); + + return 0x00; +} + 9aec: 1401 addi r14, r14, 4 + 9aee: 1492 pop r4-r5, r15 + if(lens < 18) return 0x01; + 9af0: 3001 movi r0, 1 + 9af2: 07fd br 0x9aec // 9aec + 9af4: 000003e7 .long 0x000003e7 + 9af8: 20000578 .long 0x20000578 + 9afc: 20000480 .long 0x20000480 + +Disassembly of section .text.BLV_Energy_QueryVersion_Packing: + +00009b00 : + +//版本查询回复组包 +void BLV_Energy_QueryVersion_Packing(void) +{ + 9b00: 14d0 push r15 + 9b02: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9b04: 1801 addi r0, r14, 4 + 9b06: 3232 movi r2, 50 + 9b08: 3100 movi r1, 0 + 9b0a: e3ffd727 bsr 0x4958 // 4958 <__memset_fast> + U16_T send_len = 0x00; + + g_Eng.SdSN++; + 9b0e: 1161 lrw r3, 0x20000578 // 9b90 + 9b10: 8344 ld.b r2, (r3, 0x4) + 9b12: 2200 addi r2, 1 + 9b14: 7488 zextb r2, r2 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9b16: 3a0f cmphsi r2, 16 + 9b18: 0839 bt 0x9b8a // 9b8a + 9b1a: a344 st.b r2, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + send_data[send_len++] = g_Eng.SdSN; //sn; + 9b1c: 8364 ld.b r3, (r3, 0x4) + 9b1e: dc6e0005 st.b r3, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9b22: 3300 movi r3, 0 + 9b24: 2b0b subi r3, 12 + send_data[send_len++] = ENERGY_HEAD; + 9b26: 3200 movi r2, 0 + send_data[send_len++] = DEV_TYPE; //type + 9b28: dc6e0006 st.b r3, (r14, 0x6) + send_data[send_len++] = ENERGY_HEAD; + 9b2c: 2a75 subi r2, 118 + send_data[send_len++] = g_Dip.addr; + 9b2e: 107a lrw r3, 0x20000480 // 9b94 + send_data[send_len++] = g_Dip.Dev_Port; + + send_data[send_len++] = ENERGY_TAIL; + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b30: 310b movi r1, 11 + send_data[send_len++] = ENERGY_HEAD; + 9b32: dc4e0004 st.b r2, (r14, 0x4) + send_data[send_len++] = g_Dip.addr; + 9b36: 8346 ld.b r2, (r3, 0x6) + send_data[send_len++] = g_Dip.Dev_Port; + 9b38: 8367 ld.b r3, (r3, 0x7) + 9b3a: dc6e000d st.b r3, (r14, 0xd) + send_data[send_len++] = ENERGY_TAIL; + 9b3e: 3300 movi r3, 0 + send_data[send_len++] = g_Dip.addr; + 9b40: dc4e0007 st.b r2, (r14, 0x7) + send_data[send_len++] = ENERGY_TAIL; + 9b44: 2b57 subi r3, 88 + send_data[send_len++] = 0x04; //cmd + 9b46: 3204 movi r2, 4 + 9b48: dc4e000a st.b r2, (r14, 0xa) + send_data[send_len++] = Project_FW_Version; + 9b4c: dc4e000b st.b r2, (r14, 0xb) + send_data[send_len++] = ENERGY_TAIL; + 9b50: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = Project_HW_Version; + 9b54: 3201 movi r2, 1 + send_data[4] = send_len; + 9b56: 330b movi r3, 11 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b58: 1801 addi r0, r14, 4 + send_data[send_len++] = Project_HW_Version; + 9b5a: dc4e000c st.b r2, (r14, 0xc) + send_data[4] = send_len; + 9b5e: dc6e0008 st.b r3, (r14, 0x8) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b62: e3fff6a3 bsr 0x88a8 // 88a8 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9b66: 3332 movi r3, 50 + 9b68: b860 st.w r3, (r14, 0x0) + 9b6a: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b6c: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9b70: 4361 lsli r3, r3, 1 + 9b72: 1801 addi r0, r14, 4 + 9b74: 3201 movi r2, 1 + 9b76: 310b movi r1, 11 + 9b78: e3ffeed0 bsr 0x7918 // 7918 + 9b7c: 3206 movi r2, 6 + 9b7e: 310b movi r1, 11 + 9b80: 1801 addi r0, r14, 4 + 9b82: e3fff601 bsr 0x8784 // 8784 + BT_Uart_Packing(send_data,send_len,6); +} + 9b86: 140e addi r14, r14, 56 + 9b88: 1490 pop r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9b8a: 3200 movi r2, 0 + 9b8c: 07c7 br 0x9b1a // 9b1a + 9b8e: 0000 bkpt + 9b90: 20000578 .long 0x20000578 + 9b94: 20000480 .long 0x20000480 + +Disassembly of section .text.SetCalibFactor_Switch: + +00009b98 : +// +// return 0x00; +//} + +U8_T SetCalibFactor_Switch(U8_T ch,F32_T value) +{ + 9b98: 14d0 push r15 + switch(ch) + 9b9a: 3805 cmphsi r0, 6 + 9b9c: 0808 bt 0x9bac // 9bac + 9b9e: 106a lrw r3, 0x20000578 // 9bc4 + 9ba0: e3ffccae bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9ba4: 0a080603 .long 0x0a080603 + 9ba8: 0e0c .short 0x0e0c + { + case 0x00: + g_Eng.V_K_Val = value; + 9baa: b333 st.w r1, (r3, 0x4c) + break; + default: + break; + } + return 0; +} + 9bac: 3000 movi r0, 0 + 9bae: 1490 pop r15 + g_Eng.I_K1_Val = value; + 9bb0: b334 st.w r1, (r3, 0x50) + break; + 9bb2: 07fd br 0x9bac // 9bac + g_Eng.I_K2_Val = value; + 9bb4: b335 st.w r1, (r3, 0x54) + break; + 9bb6: 07fb br 0x9bac // 9bac + g_Eng.P_K_Val = value; + 9bb8: b336 st.w r1, (r3, 0x58) + break; + 9bba: 07f9 br 0x9bac // 9bac + g_Eng.I_OffSetVal = value; + 9bbc: b337 st.w r1, (r3, 0x5c) + break; + 9bbe: 07f7 br 0x9bac // 9bac + g_Eng.P_OffSetVal = value; + 9bc0: b338 st.w r1, (r3, 0x60) + break; + 9bc2: 07f5 br 0x9bac // 9bac + 9bc4: 20000578 .long 0x20000578 + +Disassembly of section .text.BLV_Energy_SetCalibFactor: + +00009bc8 : +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor(U8_T *data,U16_T lens) +{ + 9bc8: 14d4 push r4-r7, r15 + 9bca: 1423 subi r14, r14, 12 + if(lens < 10) return 0x01; + 9bcc: 3909 cmphsi r1, 10 +{ + 9bce: 6d43 mov r5, r0 + 9bd0: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9bd2: 0c36 bf 0x9c3e // 9c3e + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9bd4: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9bd6: 3c05 cmphsi r4, 6 + 9bd8: 0835 bt 0x9c42 // 9c42 + U8_T temp_num = ((data[8])&0xff); + 9bda: 8028 ld.b r1, (r0, 0x8) + 9bdc: 3209 movi r2, 9 + 9bde: 3906 cmphsi r1, 7 + 9be0: 6080 addu r2, r0 + 9be2: 6cc7 mov r3, r1 + 9be4: 0c02 bf 0x9be8 // 9be8 + 9be6: 3306 movi r3, 6 + 9be8: 60d0 addu r3, r4 + 9bea: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9bec: 10f7 lrw r7, 0x47c35000 // 9c48 + for(U8_T i = 0;i< temp_num;i++) + 9bee: 64d2 cmpne r4, r3 + 9bf0: 080f bt 0x9c0e // 9c0e + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9bf2: e3fff271 bsr 0x80d4 // 80d4 + + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9bf6: 3314 movi r3, 20 + 9bf8: b860 st.w r3, (r14, 0x0) + 9bfa: 3396 movi r3, 150 + 9bfc: 6c17 mov r0, r5 + 9bfe: 4361 lsli r3, r3, 1 + 9c00: 3201 movi r2, 1 + 9c02: 6c5b mov r1, r6 + 9c04: e3ffee8a bsr 0x7918 // 7918 + 9c08: 3000 movi r0, 0 + + return 0x00; +} + 9c0a: 1403 addi r14, r14, 12 + 9c0c: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9c0e: 8201 ld.b r0, (r2, 0x1) + 9c10: 8220 ld.b r1, (r2, 0x0) + 9c12: 4008 lsli r0, r0, 8 + 9c14: 6004 addu r0, r1 + 9c16: 8222 ld.b r1, (r2, 0x2) + 9c18: 4130 lsli r1, r1, 16 + 9c1a: 6004 addu r0, r1 + 9c1c: b862 st.w r3, (r14, 0x8) + 9c1e: b841 st.w r2, (r14, 0x4) + 9c20: e3ffceb2 bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9c24: 6c5f mov r1, r7 + 9c26: e3ffce19 bsr 0x3858 // 3858 <__divsf3> + 9c2a: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9c2c: 6c13 mov r0, r4 + 9c2e: e3ffffb5 bsr 0x9b98 // 9b98 + 9c32: 2400 addi r4, 1 + 9c34: 9841 ld.w r2, (r14, 0x4) + 9c36: 2202 addi r2, 3 + 9c38: 7510 zextb r4, r4 + 9c3a: 9862 ld.w r3, (r14, 0x8) + 9c3c: 07d9 br 0x9bee // 9bee + if(lens < 10) return 0x01; + 9c3e: 3001 movi r0, 1 + 9c40: 07e5 br 0x9c0a // 9c0a + if( ctrl_num > 0x05) return 0x02; + 9c42: 3002 movi r0, 2 + 9c44: 07e3 br 0x9c0a // 9c0a + 9c46: 0000 bkpt + 9c48: 47c35000 .long 0x47c35000 + +Disassembly of section .text.BLV_Energy_SetCalibFactor_2: + +00009c4c : + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor_2(U8_T *data,U16_T lens) +{ + 9c4c: 14d4 push r4-r7, r15 + 9c4e: 1422 subi r14, r14, 8 + if(lens < 10) return 0x01; + 9c50: 3909 cmphsi r1, 10 +{ + 9c52: 6d43 mov r5, r0 + 9c54: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9c56: 0c32 bf 0x9cba // 9cba + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9c58: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9c5a: 3c05 cmphsi r4, 6 + 9c5c: 0831 bt 0x9cbe // 9cbe + U8_T temp_num = ((data[8])&0xff); + 9c5e: 8028 ld.b r1, (r0, 0x8) + 9c60: 3209 movi r2, 9 + 9c62: 3903 cmphsi r1, 4 + 9c64: 6080 addu r2, r0 + 9c66: 6cc7 mov r3, r1 + 9c68: 0c02 bf 0x9c6c // 9c6c + 9c6a: 3303 movi r3, 3 + 9c6c: 60d0 addu r3, r4 + 9c6e: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9c70: 10f5 lrw r7, 0x47c35000 // 9cc4 + for(U8_T i = 0;i< temp_num;i++) + 9c72: 64d2 cmpne r4, r3 + 9c74: 080b bt 0x9c8a // 9c8a + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9c76: e3fff22f bsr 0x80d4 // 80d4 + 9c7a: 6c17 mov r0, r5 + 9c7c: 7458 zextb r1, r6 + 9c7e: 3206 movi r2, 6 + 9c80: e3fff582 bsr 0x8784 // 8784 + 9c84: 3000 movi r0, 0 + + //数据原样返回 + BT_Uart_Packing(data,lens,6); //蓝牙发送 + + return 0x00; +} + 9c86: 1402 addi r14, r14, 8 + 9c88: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9c8a: 8201 ld.b r0, (r2, 0x1) + 9c8c: 8220 ld.b r1, (r2, 0x0) + 9c8e: 4008 lsli r0, r0, 8 + 9c90: 6004 addu r0, r1 + 9c92: 8222 ld.b r1, (r2, 0x2) + 9c94: 4130 lsli r1, r1, 16 + 9c96: 6004 addu r0, r1 + 9c98: b861 st.w r3, (r14, 0x4) + 9c9a: b840 st.w r2, (r14, 0x0) + 9c9c: e3ffce74 bsr 0x3984 // 3984 <__floatsisf> + temp_T /= 100000.0; + 9ca0: 6c5f mov r1, r7 + 9ca2: e3ffcddb bsr 0x3858 // 3858 <__divsf3> + 9ca6: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9ca8: 6c13 mov r0, r4 + 9caa: e3ffff77 bsr 0x9b98 // 9b98 + 9cae: 2400 addi r4, 1 + 9cb0: 9840 ld.w r2, (r14, 0x0) + 9cb2: 2202 addi r2, 3 + 9cb4: 7510 zextb r4, r4 + 9cb6: 9861 ld.w r3, (r14, 0x4) + 9cb8: 07dd br 0x9c72 // 9c72 + if(lens < 10) return 0x01; + 9cba: 3001 movi r0, 1 + 9cbc: 07e5 br 0x9c86 // 9c86 + if( ctrl_num > 0x05) return 0x02; + 9cbe: 3002 movi r0, 2 + 9cc0: 07e3 br 0x9c86 // 9c86 + 9cc2: 0000 bkpt + 9cc4: 47c35000 .long 0x47c35000 + +Disassembly of section .text.HLW_485Recv_Processing: + +00009cc8 : + + +//485处理函数 +U8_T HLW_485Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9cc8: 14d4 push r4-r7, r15 + 9cca: 1421 subi r14, r14, 4 + + if(RecvLen < 8){ + 9ccc: 3907 cmphsi r1, 8 +{ + 9cce: 6d03 mov r4, r0 + 9cd0: 6d87 mov r6, r1 + if(RecvLen < 8){ + 9cd2: 0c54 bf 0x9d7a // 9d7a + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9cd4: 8024 ld.b r1, (r0, 0x4) + 9cd6: 6586 cmpne r1, r6 + 9cd8: 0c0a bf 0x9cec // 9cec + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Data Len Error",__func__); + 9cda: 1248 lrw r2, 0xaba4 // 9df8 + 9cdc: 1228 lrw r1, 0xb768 // 9dfc + 9cde: 3000 movi r0, 0 + 9ce0: e3ffeeaa bsr 0x7a34 // 7a34 + return 0x02; + 9ce4: 3502 movi r5, 2 + return 0x01; + break; + } + + return 0; +} + 9ce6: 6c17 mov r0, r5 + 9ce8: 1401 addi r14, r14, 4 + 9cea: 1494 pop r4-r7, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9cec: 8040 ld.b r2, (r0, 0x0) + 9cee: 338a movi r3, 138 + 9cf0: 64ca cmpne r2, r3 + 9cf2: 0807 bt 0x9d00 // 9d00 + 9cf4: 5864 addu r3, r0, r1 + 9cf6: 2b00 subi r3, 1 + 9cf8: 8340 ld.b r2, (r3, 0x0) + 9cfa: 33a8 movi r3, 168 + 9cfc: 64ca cmpne r2, r3 + 9cfe: 0c08 bf 0x9d0e // 9d0e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Head Error",__func__); + 9d00: 115e lrw r2, 0xaba4 // 9df8 + 9d02: 1220 lrw r1, 0xb77a // 9e00 + 9d04: 3000 movi r0, 0 + 9d06: e3ffee97 bsr 0x7a34 // 7a34 + return 0x03; + 9d0a: 3503 movi r5, 3 + 9d0c: 07ed br 0x9ce6 // 9ce6 + if(RecvData[2] != DEV_TYPE){// + 9d0e: 8042 ld.b r2, (r0, 0x2) + 9d10: 33f4 movi r3, 244 + 9d12: 64ca cmpne r2, r3 + 9d14: 0c08 bf 0x9d24 // 9d24 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s TYPE Error",__func__); + 9d16: 1159 lrw r2, 0xaba4 // 9df8 + 9d18: 113b lrw r1, 0xb788 // 9e04 + 9d1a: 3000 movi r0, 0 + 9d1c: e3ffee8c bsr 0x7a34 // 7a34 + return 0x04; + 9d20: 3504 movi r5, 4 + 9d22: 07e2 br 0x9ce6 // 9ce6 + if(RecvData[3] != g_Dip.addr){// + 9d24: 1179 lrw r3, 0x20000480 // 9e08 + 9d26: 8043 ld.b r2, (r0, 0x3) + 9d28: 8366 ld.b r3, (r3, 0x6) + 9d2a: 64ca cmpne r2, r3 + 9d2c: 0c08 bf 0x9d3c // 9d3c + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error",__func__); + 9d2e: 1153 lrw r2, 0xaba4 // 9df8 + 9d30: 1137 lrw r1, 0xb796 // 9e0c + 9d32: 3000 movi r0, 0 + 9d34: e3ffee80 bsr 0x7a34 // 7a34 + return 0x05; + 9d38: 3505 movi r5, 5 + 9d3a: 07d6 br 0x9ce6 // 9ce6 + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9d3c: e3fff5b6 bsr 0x88a8 // 88a8 + 9d40: 3840 cmpnei r0, 0 + 9d42: 6d43 mov r5, r0 + 9d44: 0c08 bf 0x9d54 // 9d54 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 9d46: 114d lrw r2, 0xaba4 // 9df8 + 9d48: 1132 lrw r1, 0xb7a4 // 9e10 + 9d4a: 3000 movi r0, 0 + 9d4c: e3ffee74 bsr 0x7a34 // 7a34 + return 0x06; + 9d50: 3506 movi r5, 6 + 9d52: 07ca br 0x9ce6 // 9ce6 + g_Eng.SdSN = RecvData[1]; //序列号 + 9d54: 8461 ld.b r3, (r4, 0x1) + 9d56: 11f0 lrw r7, 0x20000578 // 9e14 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9d58: 8446 ld.b r2, (r4, 0x6) + 9d5a: 1130 lrw r1, 0xb4f4 // 9e18 + 9d5c: 3000 movi r0, 0 + g_Eng.SdSN = RecvData[1]; //序列号 + 9d5e: a764 st.b r3, (r7, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9d60: e3ffee6a bsr 0x7a34 // 7a34 + switch(RecvData[6]) + 9d64: 8466 ld.b r3, (r4, 0x6) + 9d66: 3b44 cmpnei r3, 4 + 9d68: 0c36 bf 0x9dd4 // 9dd4 + 9d6a: 3b04 cmphsi r3, 5 + 9d6c: 0809 bt 0x9d7e // 9d7e + 9d6e: 3b42 cmpnei r3, 2 + 9d70: 0c2a bf 0x9dc4 // 9dc4 + 9d72: 3b02 cmphsi r3, 3 + 9d74: 082b bt 0x9dca // 9dca + 9d76: 3b41 cmpnei r3, 1 + 9d78: 0c23 bf 0x9dbe // 9dbe + return 0x01; + 9d7a: 3501 movi r5, 1 + 9d7c: 07b5 br 0x9ce6 // 9ce6 + switch(RecvData[6]) + 9d7e: 3b54 cmpnei r3, 20 + 9d80: 0c2d bf 0x9dda // 9dda + 9d82: 3b14 cmphsi r3, 21 + 9d84: 0812 bt 0x9da8 // 9da8 + 9d86: 3b53 cmpnei r3, 19 + 9d88: 0bf9 bt 0x9d7a // 9d7a + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9d8a: 9768 ld.w r3, (r7, 0x20) + 9d8c: b769 st.w r3, (r7, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9d8e: 1164 lrw r3, 0x200000c4 // 9e1c + 9d90: 9360 ld.w r3, (r3, 0x0) + 9d92: b77c st.w r3, (r7, 0x70) + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 9d94: 3314 movi r3, 20 + 9d96: b860 st.w r3, (r14, 0x0) + 9d98: 3396 movi r3, 150 + 9d9a: 4361 lsli r3, r3, 1 + 9d9c: 3201 movi r2, 1 + 9d9e: 6c5b mov r1, r6 + 9da0: 6c13 mov r0, r4 + 9da2: e3ffedbb bsr 0x7918 // 7918 + break; + 9da6: 07a0 br 0x9ce6 // 9ce6 + switch(RecvData[6]) + 9da8: 3b55 cmpnei r3, 21 + 9daa: 0c22 bf 0x9dee // 9dee + 9dac: 3221 movi r2, 33 + 9dae: 648e cmpne r3, r2 + 9db0: 0be5 bt 0x9d7a // 9d7a + Dbg_Switch = (RecvData[7]&0x0f); + 9db2: 320f movi r2, 15 + 9db4: 8467 ld.b r3, (r4, 0x7) + 9db6: 68c8 and r3, r2 + 9db8: 105a lrw r2, 0x200000d8 // 9e20 + 9dba: b260 st.w r3, (r2, 0x0) + 9dbc: 07ec br 0x9d94 // 9d94 + Clear_SendFlag(); + 9dbe: e3ffeddf bsr 0x797c // 797c + break; + 9dc2: 0792 br 0x9ce6 // 9ce6 + BLV_Energy_PassiveRep_Packing(); + 9dc4: e3fffdd8 bsr 0x9974 // 9974 + break; + 9dc8: 078f br 0x9ce6 // 9ce6 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9dca: 6c5b mov r1, r6 + 9dcc: 6c13 mov r0, r4 + 9dce: e3fffe49 bsr 0x9a60 // 9a60 + break; + 9dd2: 078a br 0x9ce6 // 9ce6 + BLV_Energy_QueryVersion_Packing(); + 9dd4: e3fffe96 bsr 0x9b00 // 9b00 + break; + 9dd8: 0787 br 0x9ce6 // 9ce6 + g_Eng.Total_Eng = 0; + 9dda: 3300 movi r3, 0 + eng_info.eng_total = g_Eng.Total_Eng; + 9ddc: 1012 lrw r0, 0x200004e8 // 9e24 + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 9dde: b062 st.w r3, (r0, 0x8) + g_Eng.Total_Eng = 0; + 9de0: b768 st.w r3, (r7, 0x20) + g_Eng.U32_EnergyA_RegData = 0x00; + 9de2: b76f st.w r3, (r7, 0x3c) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9de4: b769 st.w r3, (r7, 0x24) + eng_info.eng_total = g_Eng.Total_Eng; + 9de6: b060 st.w r3, (r0, 0x0) + EEPROM_WriteTotalEng(&eng_info); + 9de8: e3fff30e bsr 0x8404 // 8404 + 9dec: 07d4 br 0x9d94 // 9d94 + BLV_Energy_SetCalibFactor(RecvData,RecvLen); + 9dee: 6c5b mov r1, r6 + 9df0: 6c13 mov r0, r4 + 9df2: e3fffeeb bsr 0x9bc8 // 9bc8 + break; + 9df6: 0778 br 0x9ce6 // 9ce6 + 9df8: 0000aba4 .long 0x0000aba4 + 9dfc: 0000b768 .long 0x0000b768 + 9e00: 0000b77a .long 0x0000b77a + 9e04: 0000b788 .long 0x0000b788 + 9e08: 20000480 .long 0x20000480 + 9e0c: 0000b796 .long 0x0000b796 + 9e10: 0000b7a4 .long 0x0000b7a4 + 9e14: 20000578 .long 0x20000578 + 9e18: 0000b4f4 .long 0x0000b4f4 + 9e1c: 200000c4 .long 0x200000c4 + 9e20: 200000d8 .long 0x200000d8 + 9e24: 200004e8 .long 0x200004e8 + +Disassembly of section .text.BT_Recv_Processing: + +00009e28 : + + + +//BT处理函数 +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9e28: 14d3 push r4-r6, r15 + if(RecvLen < 8){ + 9e2a: 3907 cmphsi r1, 8 +{ + 9e2c: 6d03 mov r4, r0 + 9e2e: 6d47 mov r5, r1 + if(RecvLen < 8){ + 9e30: 0c49 bf 0x9ec2 // 9ec2 + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9e32: 8024 ld.b r1, (r0, 0x4) + 9e34: 6546 cmpne r1, r5 + 9e36: 0c08 bf 0x9e46 // 9e46 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"DatLenErr"); + 9e38: 1139 lrw r1, 0xb7b3 // 9f1c + 9e3a: 3003 movi r0, 3 + 9e3c: e3ffef96 bsr 0x7d68 // 7d68 + return 0x02; + 9e40: 3602 movi r6, 2 + return 0x01; + break; + } + + return 0; +} + 9e42: 6c1b mov r0, r6 + 9e44: 1493 pop r4-r6, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9e46: 8040 ld.b r2, (r0, 0x0) + 9e48: 338a movi r3, 138 + 9e4a: 64ca cmpne r2, r3 + 9e4c: 0807 bt 0x9e5a // 9e5a + 9e4e: 5864 addu r3, r0, r1 + 9e50: 2b00 subi r3, 1 + 9e52: 8340 ld.b r2, (r3, 0x0) + 9e54: 33a8 movi r3, 168 + 9e56: 64ca cmpne r2, r3 + 9e58: 0c07 bf 0x9e66 // 9e66 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"HeadErr"); + 9e5a: 1132 lrw r1, 0xb7bd // 9f20 + 9e5c: 3003 movi r0, 3 + 9e5e: e3ffef85 bsr 0x7d68 // 7d68 + return 0x03; + 9e62: 3603 movi r6, 3 + 9e64: 07ef br 0x9e42 // 9e42 + if(RecvData[2] != DEV_TYPE){// + 9e66: 8042 ld.b r2, (r0, 0x2) + 9e68: 33f4 movi r3, 244 + 9e6a: 64ca cmpne r2, r3 + 9e6c: 0c07 bf 0x9e7a // 9e7a + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TYPEErr"); + 9e6e: 112e lrw r1, 0xb7c5 // 9f24 + 9e70: 3003 movi r0, 3 + 9e72: e3ffef7b bsr 0x7d68 // 7d68 + return 0x04; + 9e76: 3604 movi r6, 4 + 9e78: 07e5 br 0x9e42 // 9e42 + if(RecvData[3] != g_Dip.addr){// + 9e7a: 116c lrw r3, 0x20000480 // 9f28 + 9e7c: 8043 ld.b r2, (r0, 0x3) + 9e7e: 8366 ld.b r3, (r3, 0x6) + 9e80: 64ca cmpne r2, r3 + 9e82: 0c07 bf 0x9e90 // 9e90 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"AddrErr"); + 9e84: 112a lrw r1, 0xb7cd // 9f2c + 9e86: 3003 movi r0, 3 + 9e88: e3ffef70 bsr 0x7d68 // 7d68 + return 0x05; + 9e8c: 3605 movi r6, 5 + 9e8e: 07da br 0x9e42 // 9e42 + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9e90: e3fff50c bsr 0x88a8 // 88a8 + 9e94: 3840 cmpnei r0, 0 + 9e96: 6d83 mov r6, r0 + 9e98: 0c07 bf 0x9ea6 // 9ea6 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"CheckErr"); + 9e9a: 1126 lrw r1, 0xb7d5 // 9f30 + 9e9c: 3003 movi r0, 3 + 9e9e: e3ffef65 bsr 0x7d68 // 7d68 + return 0x06; + 9ea2: 3606 movi r6, 6 + 9ea4: 07cf br 0x9e42 // 9e42 + g_Eng.SdSN = (RecvData[1]&0x0F); //序列号 + 9ea6: 8461 ld.b r3, (r4, 0x1) + 9ea8: 310f movi r1, 15 + 9eaa: 68c4 and r3, r1 + 9eac: 1142 lrw r2, 0x20000578 // 9f34 + 9eae: a264 st.b r3, (r2, 0x4) + switch(RecvData[6]) + 9eb0: 8466 ld.b r3, (r4, 0x6) + 9eb2: 3b44 cmpnei r3, 4 + 9eb4: 0c20 bf 0x9ef4 // 9ef4 + 9eb6: 3b04 cmphsi r3, 5 + 9eb8: 0807 bt 0x9ec6 // 9ec6 + 9eba: 3b42 cmpnei r3, 2 + 9ebc: 0fc3 bf 0x9e42 // 9e42 + 9ebe: 3b43 cmpnei r3, 3 + 9ec0: 0c15 bf 0x9eea // 9eea + return 0x01; + 9ec2: 3601 movi r6, 1 + 9ec4: 07bf br 0x9e42 // 9e42 + switch(RecvData[6]) + 9ec6: 3b55 cmpnei r3, 21 + 9ec8: 0c19 bf 0x9efa // 9efa + 9eca: 3121 movi r1, 33 + 9ecc: 644e cmpne r3, r1 + 9ece: 0c1b bf 0x9f04 // 9f04 + 9ed0: 3b53 cmpnei r3, 19 + 9ed2: 0bf8 bt 0x9ec2 // 9ec2 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9ed4: 9268 ld.w r3, (r2, 0x20) + 9ed6: b269 st.w r3, (r2, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9ed8: 1078 lrw r3, 0x200000c4 // 9f38 + 9eda: 9360 ld.w r3, (r3, 0x0) + 9edc: b27c st.w r3, (r2, 0x70) + 9ede: 7454 zextb r1, r5 + 9ee0: 3206 movi r2, 6 + 9ee2: 6c13 mov r0, r4 + 9ee4: e3fff450 bsr 0x8784 // 8784 + 9ee8: 07ad br 0x9e42 // 9e42 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9eea: 6c57 mov r1, r5 + 9eec: 6c13 mov r0, r4 + 9eee: e3fffdb9 bsr 0x9a60 // 9a60 + break; + 9ef2: 07a8 br 0x9e42 // 9e42 + BLV_Energy_QueryVersion_Packing(); + 9ef4: e3fffe06 bsr 0x9b00 // 9b00 + break; + 9ef8: 07a5 br 0x9e42 // 9e42 + BLV_Energy_SetCalibFactor_2(RecvData,RecvLen); + 9efa: 6c57 mov r1, r5 + 9efc: 6c13 mov r0, r4 + 9efe: e3fffea7 bsr 0x9c4c // 9c4c + break; + 9f02: 07a0 br 0x9e42 // 9e42 + if( (RecvData[7]&0x08) != 0x00 ){ + 9f04: 3208 movi r2, 8 + 9f06: 8467 ld.b r3, (r4, 0x7) + 9f08: 68c8 and r3, r2 + 9f0a: 3b40 cmpnei r3, 0 + 9f0c: 106c lrw r3, 0x200000d8 // 9f3c + Dbg_Switch |= 0x08; + 9f0e: 9340 ld.w r2, (r3, 0x0) + if( (RecvData[7]&0x08) != 0x00 ){ + 9f10: 0c04 bf 0x9f18 // 9f18 + Dbg_Switch |= 0x08; + 9f12: 3aa3 bseti r2, 3 + Dbg_Switch &= (~0x08); + 9f14: b340 st.w r2, (r3, 0x0) + 9f16: 07e4 br 0x9ede // 9ede + 9f18: 3a83 bclri r2, 3 + 9f1a: 07fd br 0x9f14 // 9f14 + 9f1c: 0000b7b3 .long 0x0000b7b3 + 9f20: 0000b7bd .long 0x0000b7bd + 9f24: 0000b7c5 .long 0x0000b7c5 + 9f28: 20000480 .long 0x20000480 + 9f2c: 0000b7cd .long 0x0000b7cd + 9f30: 0000b7d5 .long 0x0000b7d5 + 9f34: 20000578 .long 0x20000578 + 9f38: 200000c4 .long 0x200000c4 + 9f3c: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Boot_Function_Init: + +00009f40 : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 9f40: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f42: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f44: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f46: 4241 lsli r2, r2, 1 + 9f48: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f4a: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 9f4c: 1101 lrw r0, 0x200005f0 // 9fd0 + 9f4e: e3ffd505 bsr 0x4958 // 4958 <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 9f52: 6c97 mov r2, r5 + 9f54: 3100 movi r1, 0 + 9f56: 1100 lrw r0, 0x2000072c // 9fd4 + 9f58: e3ffd500 bsr 0x4958 // 4958 <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 9f5c: 33fa movi r3, 250 + 9f5e: 4362 lsli r3, r3, 2 + 9f60: 109e lrw r4, 0x200006f0 // 9fd8 + 9f62: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 9f64: e3fff378 bsr 0x8654 // 8654 +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 9f68: 107d lrw r3, 0x2000005c // 9fdc + 9f6a: 9360 ld.w r3, (r3, 0x0) + 9f6c: 23ff addi r3, 256 + 9f6e: 9343 ld.w r2, (r3, 0xc) + 9f70: 7449 zexth r1, r2 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 9f72: 6546 cmpne r1, r5 + 9f74: 0808 bt 0x9f84 // 9f84 + { + g_boot.bootTimeout = 5000; + 9f76: 107b lrw r3, 0x1388 // 9fe0 + 9f78: b46d st.w r3, (r4, 0x34) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS," Boot software reset"); + 9f7a: 103b lrw r1, 0xb7de // 9fe4 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9f7c: 3000 movi r0, 0 + 9f7e: e3ffed5b bsr 0x7a34 // 7a34 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 9f82: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 9f84: 3941 cmpnei r1, 1 + 9f86: 0806 bt 0x9f92 // 9f92 + g_boot.bootTimeout = 500; + 9f88: 33fa movi r3, 250 + 9f8a: 4361 lsli r3, r3, 1 + 9f8c: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot power on reset"); + 9f8e: 1037 lrw r1, 0xb7f3 // 9fe8 + 9f90: 07f6 br 0x9f7c // 9f7c + 9f92: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x04) //外部手动复位 + 9f94: 3944 cmpnei r1, 4 + 9f96: 4363 lsli r3, r3, 3 + 9f98: 0804 bt 0x9fa0 // 9fa0 + g_boot.bootTimeout = 2000; + 9f9a: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex-pin reset"); + 9f9c: 1034 lrw r1, 0xb807 // 9fec + 9f9e: 07ef br 0x9f7c // 9f7c + }else if(sys_reset_sta == 0x10) //看门狗超时复位 --升级完成复位源 + 9fa0: 3950 cmpnei r1, 16 + 9fa2: 0804 bt 0x9faa // 9faa + g_boot.bootTimeout = 2000; + 9fa4: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot wdt reset"); + 9fa6: 1033 lrw r1, 0xb819 // 9ff0 + 9fa8: 07ea br 0x9f7c // 9f7c + }else if(sys_reset_sta == 0x40) //外部时钟无效复位 + 9faa: 3040 movi r0, 64 + 9fac: 6406 cmpne r1, r0 + 9fae: 0804 bt 0x9fb6 // 9fb6 + g_boot.bootTimeout = 2000; + 9fb0: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex clock invalid reset"); + 9fb2: 1031 lrw r1, 0xb828 // 9ff4 + 9fb4: 07e4 br 0x9f7c // 9f7c + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9fb6: 3080 movi r0, 128 + 9fb8: 6406 cmpne r1, r0 + g_boot.bootTimeout = 2000; + 9fba: b46d st.w r3, (r4, 0x34) + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 9fbc: 0803 bt 0x9fc2 // 9fc2 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 9fbe: 102f lrw r1, 0xb844 // 9ff8 + 9fc0: 07de br 0x9f7c // 9f7c + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); + 9fc2: 7489 zexth r2, r2 + 9fc4: 102e lrw r1, 0xb85b // 9ffc + 9fc6: 3000 movi r0, 0 + 9fc8: e3ffed36 bsr 0x7a34 // 7a34 +} + 9fcc: 07db br 0x9f82 // 9f82 + 9fce: 0000 bkpt + 9fd0: 200005f0 .long 0x200005f0 + 9fd4: 2000072c .long 0x2000072c + 9fd8: 200006f0 .long 0x200006f0 + 9fdc: 2000005c .long 0x2000005c + 9fe0: 00001388 .long 0x00001388 + 9fe4: 0000b7de .long 0x0000b7de + 9fe8: 0000b7f3 .long 0x0000b7f3 + 9fec: 0000b807 .long 0x0000b807 + 9ff0: 0000b819 .long 0x0000b819 + 9ff4: 0000b828 .long 0x0000b828 + 9ff8: 0000b844 .long 0x0000b844 + 9ffc: 0000b85b .long 0x0000b85b + +Disassembly of section .text.Boot_Comm_CheckSum: + +0000a000 : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + a000: 14c1 push r4 + U8_T sum = 0; + a002: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + a004: 1047 lrw r2, 0xffff // a020 + a006: 2900 subi r1, 1 + a008: 7445 zexth r1, r1 + a00a: 6486 cmpne r1, r2 + a00c: 0804 bt 0xa014 // a014 + { + sum += buffer[i]; + i++; + } + return (~sum); + a00e: 6cce nor r3, r3 + a010: 740c zextb r0, r3 +} + a012: 1481 pop r4 + sum += buffer[i]; + a014: 8080 ld.b r4, (r0, 0x0) + a016: 60d0 addu r3, r4 + a018: 74cc zextb r3, r3 + a01a: 2000 addi r0, 1 + a01c: 07f5 br 0xa006 // a006 + a01e: 0000 bkpt + a020: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +0000a024 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + a024: 14d4 push r4-r7, r15 + a026: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a028: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a02a: 1077 lrw r3, 0x200004c0 // a084 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a02c: 47e1 lsli r7, r7, 1 + a02e: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a030: 8340 ld.b r2, (r3, 0x0) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + a032: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a034: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + a036: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a038: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + a03a: 1074 lrw r3, 0x200005f0 // a088 + a03c: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a03e: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + a040: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + a042: 8062 ld.b r3, (r0, 0x2) + a044: a06b st.b r3, (r0, 0xb) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + a046: 4d68 lsri r3, r5, 8 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a048: 58ce addi r6, r0, 4 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a04a: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + a04c: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + a04e: 8041 ld.b r2, (r0, 0x1) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a050: 3300 movi r3, 0 +{ + a052: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + a054: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + a056: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a058: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a05a: 6c57 mov r1, r5 + a05c: 6c1b mov r0, r6 + a05e: e3ffffd1 bsr 0xa000 // a000 + a062: a40a st.b r0, (r4, 0xa) + +#if DBG_LOG_EN + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"ACKBuff ",ack_uart->ackBuffer,data_len); + a064: 6cd7 mov r3, r5 + a066: 6c9b mov r2, r6 + a068: 1029 lrw r1, 0xb871 // a08c + a06a: 3000 movi r0, 0 + a06c: e3ffeda8 bsr 0x7bbc // 7bbc +#endif + + //MCU485_SendData(ack_uart->ackBuffer, data_len); + Set_GroupSend(ack_uart->ackBuffer,data_len,0x01,ack_uart->ackValidity,100); + a070: 3264 movi r2, 100 + a072: 8f79 ld.h r3, (r7, 0x32) + a074: 6c57 mov r1, r5 + a076: b840 st.w r2, (r14, 0x0) + a078: 6c1b mov r0, r6 + a07a: 3201 movi r2, 1 + a07c: e3ffec4e bsr 0x7918 // 7918 + + //ack_uart->ackLen = 0x00; +} + a080: 1401 addi r14, r14, 4 + a082: 1494 pop r4-r7, r15 + a084: 200004c0 .long 0x200004c0 + a088: 200005f0 .long 0x200005f0 + a08c: 0000b871 .long 0x0000b871 + +Disassembly of section .text.Boot_Time_Refresh: + +0000a090 : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + a090: 1063 lrw r3, 0x200000c4 // a09c + a092: 9340 ld.w r2, (r3, 0x0) + a094: 1063 lrw r3, 0x200006f0 // a0a0 + a096: b34e st.w r2, (r3, 0x38) +} + a098: 783c jmp r15 + a09a: 0000 bkpt + a09c: 200000c4 .long 0x200000c4 + a0a0: 200006f0 .long 0x200006f0 + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +0000a0a4 : +{ + a0a4: 14d4 push r4-r7, r15 + a0a6: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + a0a8: 8065 ld.b r3, (r0, 0x5) + a0aa: 8044 ld.b r2, (r0, 0x4) + a0ac: 4368 lsli r3, r3, 8 + a0ae: 6cc8 or r3, r2 + if(len != data_len) { + a0b0: 644e cmpne r3, r1 +{ + a0b2: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + a0b4: b862 st.w r3, (r14, 0x8) + if(len != data_len) { + a0b6: 0c08 bf 0xa0c6 // a0c6 + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Fail "); + a0b8: 3000 movi r0, 0 + a0ba: 1333 lrw r1, 0xb87a // a284 + a0bc: e3ffecbc bsr 0x7a34 // 7a34 + return 0x01; + a0c0: 3001 movi r0, 1 +} + a0c2: 1403 addi r14, r14, 12 + a0c4: 1494 pop r4-r7, r15 + if(Boot_Comm_CheckSum(data,len) != 0) { + a0c6: 9822 ld.w r1, (r14, 0x8) + a0c8: e3ffff9c bsr 0xa000 // a000 + a0cc: 3840 cmpnei r0, 0 + a0ce: b801 st.w r0, (r14, 0x4) + a0d0: 0c07 bf 0xa0de // a0de + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_CheckSum Fail "); + a0d2: 3000 movi r0, 0 + a0d4: 132d lrw r1, 0xb884 // a288 + a0d6: e3ffecaf bsr 0x7a34 // 7a34 + return 0x02; + a0da: 3002 movi r0, 2 + a0dc: 07f3 br 0xa0c2 // a0c2 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a0de: 8561 ld.b r3, (r5, 0x1) + a0e0: 748e sextb r2, r3 + a0e2: 3adf btsti r2, 31 + a0e4: 138a lrw r4, 0x200005f0 // a28c + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a0e6: 8421 ld.b r1, (r4, 0x1) + a0e8: 320f movi r2, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a0ea: 0c23 bf 0xa130 // a130 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a0ec: 68c8 and r3, r2 + a0ee: 64c6 cmpne r1, r3 + a0f0: 0c0b bf 0xa106 // a106 + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN Disaffinity,Processing Data"); + a0f2: 1328 lrw r1, 0xb89d // a290 + a0f4: 3000 movi r0, 0 + a0f6: e3ffec9f bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a0fa: 3300 movi r3, 0 + a0fc: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a0fe: 3701 movi r7, 1 + deal_flag = 0x01; + a100: 3301 movi r3, 1 + deal_flag = 0x01; + a102: b861 st.w r3, (r14, 0x4) + a104: 0408 br 0xa114 // a114 + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN The Same,No Processing Data"); + a106: 1324 lrw r1, 0xb8c7 // a294 + a108: 3000 movi r0, 0 + a10a: e3ffec95 bsr 0x7a34 // 7a34 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a10e: 3300 movi r3, 0 + a110: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a112: 3701 movi r7, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + a114: 13c1 lrw r6, 0x200004c0 // a298 + a116: 8562 ld.b r3, (r5, 0x2) + a118: 8641 ld.b r2, (r6, 0x1) + a11a: 648e cmpne r3, r2 + a11c: 0c28 bf 0xa16c // a16c + a11e: 31ff movi r1, 255 + a120: 644e cmpne r3, r1 + a122: 0c25 bf 0xa16c // a16c + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvType %d - %d ",g_mcu_dev.dev_type,data[BCOMM_FMT_TYPE]); + a124: 3000 movi r0, 0 + a126: 123e lrw r1, 0xb947 // a29c + a128: e3ffec86 bsr 0x7a34 // 7a34 + return 0x03; + a12c: 3003 movi r0, 3 + a12e: 07ca br 0xa0c2 // a0c2 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a130: 688c and r2, r3 + a132: 6486 cmpne r1, r2 + a134: 0c09 bf 0xa146 // a146 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN Disaffinity,Processing Data"); + a136: 123b lrw r1, 0xb8f1 // a2a0 + a138: 3000 movi r0, 0 + a13a: e3ffec7d bsr 0x7a34 // 7a34 + reply_flag = 0x01; + a13e: 3301 movi r3, 1 + group_flag = 0x00; + a140: 3700 movi r7, 0 + reply_flag = 0x01; + a142: b860 st.w r3, (r14, 0x0) + a144: 07df br 0xa102 // a102 + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + a146: 3240 movi r2, 64 + a148: 68c8 and r3, r2 + a14a: 3b40 cmpnei r3, 0 + a14c: 0c0d bf 0xa166 // a166 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + a14e: 846b ld.b r3, (r4, 0xb) + a150: 8547 ld.b r2, (r5, 0x7) + a152: 64ca cmpne r2, r3 + a154: 64c3 mvcv r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a156: 74cc zextb r3, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a158: 1233 lrw r1, 0xb91c // a2a4 + a15a: 3000 movi r0, 0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a15c: b860 st.w r3, (r14, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a15e: e3ffec6b bsr 0x7a34 // 7a34 + group_flag = 0x00; + a162: 3700 movi r7, 0 + a164: 07d8 br 0xa114 // a114 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a166: 3300 movi r3, 0 + a168: b860 st.w r3, (r14, 0x0) + a16a: 07fc br 0xa162 // a162 + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + a16c: 8563 ld.b r3, (r5, 0x3) + a16e: 8640 ld.b r2, (r6, 0x0) + a170: 648e cmpne r3, r2 + a172: 0c0a bf 0xa186 // a186 + a174: 31ff movi r1, 255 + a176: 644e cmpne r3, r1 + a178: 0c07 bf 0xa186 // a186 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvAddr %d - %d ",g_mcu_dev.dev_addr,data[BCOMM_FMT_RXAddr]); + a17a: 3000 movi r0, 0 + a17c: 122b lrw r1, 0xb963 // a2a8 + a17e: e3ffec5b bsr 0x7a34 // 7a34 + return 0x04; + a182: 3004 movi r0, 4 + a184: 079f br 0xa0c2 // a0c2 + Boot_Time_Refresh(); + a186: e3ffff85 bsr 0xa090 // a090 + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + a18a: 8560 ld.b r3, (r5, 0x0) + a18c: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + a18e: 8561 ld.b r3, (r5, 0x1) + a190: 320f movi r2, 15 + a192: 68c8 and r3, r2 + a194: a461 st.b r3, (r4, 0x1) + switch(g_boot.cmd){ + a196: 32c0 movi r2, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a198: 8567 ld.b r3, (r5, 0x7) + switch(g_boot.cmd){ + a19a: 648e cmpne r3, r2 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a19c: a462 st.b r3, (r4, 0x2) + switch(g_boot.cmd){ + a19e: 0c06 bf 0xa1aa // a1aa + a1a0: 32c1 movi r2, 193 + a1a2: 648e cmpne r3, r2 + a1a4: 0c53 bf 0xa24a // a24a + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a1a6: 3301 movi r3, 1 + a1a8: 045f br 0xa266 // a266 + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + a1aa: 9861 ld.w r3, (r14, 0x4) + a1ac: 3b41 cmpnei r3, 1 + a1ae: 081d bt 0xa1e8 // a1e8 + a1b0: 9862 ld.w r3, (r14, 0x8) + a1b2: 3b0b cmphsi r3, 12 + a1b4: 0c1a bf 0xa1e8 // a1e8 + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Handshake Proecessing "); + a1b6: 113e lrw r1, 0xb97f // a2ac + a1b8: 3000 movi r0, 0 + a1ba: e3ffec3d bsr 0x7a34 // 7a34 + temp_data |= data[BCOMM_FMT_PARAM]; + a1be: 8549 ld.b r2, (r5, 0x9) + a1c0: 8568 ld.b r3, (r5, 0x8) + a1c2: 4248 lsli r2, r2, 8 + a1c4: 6c8c or r2, r3 + if(temp_data != g_boot.bootTimeout){ + a1c6: 117b lrw r3, 0x200006f0 // a2b0 + a1c8: 932d ld.w r1, (r3, 0x34) + a1ca: 644a cmpne r2, r1 + a1cc: 0c09 bf 0xa1de // a1de + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a1ce: 3a09 cmphsi r2, 10 + a1d0: 0c3b bf 0xa246 // a246 + a1d2: b34d st.w r2, (r3, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + a1d4: 31fa movi r1, 250 + a1d6: 934d ld.w r2, (r3, 0x34) + a1d8: 4122 lsli r1, r1, 2 + a1da: 7c84 mult r2, r1 + a1dc: b34d st.w r2, (r3, 0x34) + a1de: 854b ld.b r2, (r5, 0xb) + a1e0: 852a ld.b r1, (r5, 0xa) + a1e2: 4248 lsli r2, r2, 8 + a1e4: 6c84 or r2, r1 + g_boot.ackValidity = temp_data; + a1e6: ab59 st.h r2, (r3, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + a1e8: 9860 ld.w r3, (r14, 0x0) + a1ea: 3b41 cmpnei r3, 1 + a1ec: 0b6b bt 0xa0c2 // a0c2 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + a1ee: 3302 movi r3, 2 + a1f0: a46c st.b r3, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + a1f2: 8662 ld.b r3, (r6, 0x2) + a1f4: a46d st.b r3, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + a1f6: 8663 ld.b r3, (r6, 0x3) + a1f8: a46e st.b r3, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + a1fa: 3303 movi r3, 3 + a1fc: a46f st.b r3, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + a1fe: 116e lrw r3, 0x2000005c // a2b4 + a200: 9360 ld.w r3, (r3, 0x0) + a202: 237f addi r3, 128 + a204: 9359 ld.w r2, (r3, 0x64) + a206: a450 st.b r2, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + a208: 935a ld.w r2, (r3, 0x68) + a20a: a451 st.b r2, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + a20c: 937b ld.w r3, (r3, 0x6c) + a20e: a472 st.b r3, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + a210: 8644 ld.b r2, (r6, 0x4) + a212: 3320 movi r3, 32 + a214: 648c cmphs r3, r2 + a216: 0802 bt 0xa21a // a21a + a218: a664 st.b r3, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + a21a: 8664 ld.b r3, (r6, 0x4) + a21c: a473 st.b r3, (r4, 0x13) + a21e: 3320 movi r3, 32 + a220: 103e lrw r1, 0x200004c0 // a298 + a222: 105b lrw r2, 0x200005f0 // a28c + a224: 2b00 subi r3, 1 + a226: 74cc zextb r3, r3 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + a228: 8105 ld.b r0, (r1, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + a234: 107f lrw r3, 0x200006f0 // a2b0 + a236: 3228 movi r2, 40 + a238: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a23a: 3f40 cmpnei r7, 0 + a23c: 0b43 bt 0xa0c2 // a0c2 + Boot_Comm_FillReplyPack(&g_boot); + a23e: 1014 lrw r0, 0x200005f0 // a28c + a240: e3fffef2 bsr 0xa024 // a024 + a244: 073f br 0xa0c2 // a0c2 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a246: 320a movi r2, 10 + a248: 07c5 br 0xa1d2 // a1d2 + if(deal_flag != 0x01) break; //不处理直接退出 + a24a: 9861 ld.w r3, (r14, 0x4) + a24c: 3b41 cmpnei r3, 1 + a24e: 0810 bt 0xa26e // a26e + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Jump Proecessing "); + a250: 103a lrw r1, 0xb9a0 // a2b8 + a252: 3000 movi r0, 0 + a254: e3ffebf0 bsr 0x7a34 // 7a34 + if(data[BCOMM_FMT_PARAM] == 0x01){ + a258: 8568 ld.b r3, (r5, 0x8) + a25a: 3b41 cmpnei r3, 1 + a25c: 080e bt 0xa278 // a278 + BUS485_Jump_Boot(0x01); + a25e: 3001 movi r0, 1 + a260: e3ffeb96 bsr 0x798c // 798c + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + a264: 3300 movi r3, 0 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a266: a46c st.b r3, (r4, 0xc) + g_boot.ackLen = 1; + a268: 3201 movi r2, 1 + a26a: 1072 lrw r3, 0x200006f0 // a2b0 + a26c: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a26e: 3f40 cmpnei r7, 0 + a270: 0b29 bt 0xa0c2 // a0c2 + a272: 9860 ld.w r3, (r14, 0x0) + a274: 3b41 cmpnei r3, 1 + a276: 07e3 br 0xa23c // a23c + Dbg_Println(DBG_BIT_SYS_STATUS,"ERR:Jump_boot"); + a278: 1031 lrw r1, 0xb9bc // a2bc + a27a: 3000 movi r0, 0 + a27c: e3ffebdc bsr 0x7a34 // 7a34 + a280: 0793 br 0xa1a6 // a1a6 + a282: 0000 bkpt + a284: 0000b87a .long 0x0000b87a + a288: 0000b884 .long 0x0000b884 + a28c: 200005f0 .long 0x200005f0 + a290: 0000b89d .long 0x0000b89d + a294: 0000b8c7 .long 0x0000b8c7 + a298: 200004c0 .long 0x200004c0 + a29c: 0000b947 .long 0x0000b947 + a2a0: 0000b8f1 .long 0x0000b8f1 + a2a4: 0000b91c .long 0x0000b91c + a2a8: 0000b963 .long 0x0000b963 + a2ac: 0000b97f .long 0x0000b97f + a2b0: 200006f0 .long 0x200006f0 + a2b4: 2000005c .long 0x2000005c + a2b8: 0000b9a0 .long 0x0000b9a0 + a2bc: 0000b9bc .long 0x0000b9bc + +Disassembly of section .text.TK_Sampling_prog: + +0000a2c0 : + a2c0: 14c4 push r4-r7 + a2c2: 1072 lrw r3, 0x20000054 // a308 + a2c4: 1012 lrw r0, 0x20000ad2 // a30c + a2c6: 1093 lrw r4, 0x20000943 // a310 + a2c8: 6d83 mov r6, r0 + a2ca: 93a0 ld.w r5, (r3, 0x0) + a2cc: 3300 movi r3, 0 + a2ce: 4342 lsli r2, r3, 2 + a2d0: 6094 addu r2, r5 + a2d2: 9220 ld.w r1, (r2, 0x0) + a2d4: 4341 lsli r2, r3, 1 + a2d6: 6080 addu r2, r0 + a2d8: 7445 zexth r1, r1 + a2da: aa20 st.h r1, (r2, 0x0) + a2dc: 8440 ld.b r2, (r4, 0x0) + a2de: 3a41 cmpnei r2, 1 + a2e0: 080f bt 0xa2fe // a2fe + a2e2: 3300 movi r3, 0 + a2e4: 10ec lrw r7, 0x2000082c // a314 + a2e6: 4341 lsli r2, r3, 1 + a2e8: 5e28 addu r1, r6, r2 + a2ea: 8920 ld.h r1, (r1, 0x0) + a2ec: 2300 addi r3, 1 + a2ee: 7445 zexth r1, r1 + a2f0: 609c addu r2, r7 + a2f2: 3b51 cmpnei r3, 17 + a2f4: aa20 st.h r1, (r2, 0x0) + a2f6: 0bf8 bt 0xa2e6 // a2e6 + a2f8: 3300 movi r3, 0 + a2fa: a460 st.b r3, (r4, 0x0) + a2fc: 3311 movi r3, 17 + a2fe: 2300 addi r3, 1 + a300: 74cc zextb r3, r3 + a302: 3b10 cmphsi r3, 17 + a304: 0fe5 bf 0xa2ce // a2ce + a306: 1484 pop r4-r7 + a308: 20000054 .long 0x20000054 + a30c: 20000ad2 .long 0x20000ad2 + a310: 20000943 .long 0x20000943 + a314: 2000082c .long 0x2000082c + +Disassembly of section .text.TKEYIntHandler: + +0000a318 : + a318: 1460 nie + a31a: 1462 ipush + a31c: 14d1 push r4, r15 + a31e: 109e lrw r4, 0x20000068 // a394 + a320: 9460 ld.w r3, (r4, 0x0) + a322: 3b40 cmpnei r3, 0 + a324: 080b bt 0xa33a // a33a + a326: 3301 movi r3, 1 + a328: b460 st.w r3, (r4, 0x0) + a32a: 107c lrw r3, 0x200008c0 // a398 + a32c: 8360 ld.b r3, (r3, 0x0) + a32e: 3b41 cmpnei r3, 1 + a330: 0805 bt 0xa33a // a33a + a332: e3ffffc7 bsr 0xa2c0 // a2c0 + a336: 3301 movi r3, 1 + a338: a464 st.b r3, (r4, 0x4) + a33a: 1079 lrw r3, 0x20000058 // a39c + a33c: 3101 movi r1, 1 + a33e: 9360 ld.w r3, (r3, 0x0) + a340: 934a ld.w r2, (r3, 0x28) + a342: 6884 and r2, r1 + a344: 3a40 cmpnei r2, 0 + a346: 0c02 bf 0xa34a // a34a + a348: b32c st.w r1, (r3, 0x30) + a34a: 934a ld.w r2, (r3, 0x28) + a34c: 3102 movi r1, 2 + a34e: 6884 and r2, r1 + a350: 3a40 cmpnei r2, 0 + a352: 0c02 bf 0xa356 // a356 + a354: b32c st.w r1, (r3, 0x30) + a356: 934a ld.w r2, (r3, 0x28) + a358: 3104 movi r1, 4 + a35a: 6884 and r2, r1 + a35c: 3a40 cmpnei r2, 0 + a35e: 0c02 bf 0xa362 // a362 + a360: b32c st.w r1, (r3, 0x30) + a362: 934a ld.w r2, (r3, 0x28) + a364: 3108 movi r1, 8 + a366: 6884 and r2, r1 + a368: 3a40 cmpnei r2, 0 + a36a: 0c02 bf 0xa36e // a36e + a36c: b32c st.w r1, (r3, 0x30) + a36e: 934a ld.w r2, (r3, 0x28) + a370: 3110 movi r1, 16 + a372: 6884 and r2, r1 + a374: 3a40 cmpnei r2, 0 + a376: 0c02 bf 0xa37a // a37a + a378: b32c st.w r1, (r3, 0x30) + a37a: 934a ld.w r2, (r3, 0x28) + a37c: 3120 movi r1, 32 + a37e: 6884 and r2, r1 + a380: 3a40 cmpnei r2, 0 + a382: 0c02 bf 0xa386 // a386 + a384: b32c st.w r1, (r3, 0x30) + a386: d9ee2001 ld.w r15, (r14, 0x4) + a38a: 9880 ld.w r4, (r14, 0x0) + a38c: 1402 addi r14, r14, 8 + a38e: 1463 ipop + a390: 1461 nir + a392: 0000 bkpt + a394: 20000068 .long 0x20000068 + a398: 200008c0 .long 0x200008c0 + a39c: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000a3a0 : + a3a0: 14c2 push r4-r5 + a3a2: 3200 movi r2, 0 + a3a4: 3000 movi r0, 0 + a3a6: 1088 lrw r4, 0x20000960 // a3c4 + a3a8: 3501 movi r5, 1 + a3aa: 3120 movi r1, 32 + a3ac: 9460 ld.w r3, (r4, 0x0) + a3ae: 70c9 lsr r3, r2 + a3b0: 68d4 and r3, r5 + a3b2: 3b40 cmpnei r3, 0 + a3b4: 0c02 bf 0xa3b8 // a3b8 + a3b6: 2000 addi r0, 1 + a3b8: 2200 addi r2, 1 + a3ba: 644a cmpne r2, r1 + a3bc: 0bf8 bt 0xa3ac // a3ac + a3be: 7400 zextb r0, r0 + a3c0: 1482 pop r4-r5 + a3c2: 0000 bkpt + a3c4: 20000960 .long 0x20000960 + +Disassembly of section .text.TK_Scan_Start: + +0000a3c8 : + a3c8: 1046 lrw r2, 0x20000068 // a3e0 + a3ca: 8264 ld.b r3, (r2, 0x4) + a3cc: 74cc zextb r3, r3 + a3ce: 3b41 cmpnei r3, 1 + a3d0: 0807 bt 0xa3de // a3de + a3d2: 1025 lrw r1, 0x20000058 // a3e4 + a3d4: 9120 ld.w r1, (r1, 0x0) + a3d6: b162 st.w r3, (r1, 0x8) + a3d8: 3300 movi r3, 0 + a3da: b260 st.w r3, (r2, 0x0) + a3dc: a264 st.b r3, (r2, 0x4) + a3de: 783c jmp r15 + a3e0: 20000068 .long 0x20000068 + a3e4: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +0000a3e8 : + a3e8: 14d4 push r4-r7, r15 + a3ea: 1425 subi r14, r14, 20 + a3ec: 1271 lrw r3, 0x200001b0 // a530 + a3ee: 8360 ld.b r3, (r3, 0x0) + a3f0: b860 st.w r3, (r14, 0x0) + a3f2: 3400 movi r4, 0 + a3f4: 1270 lrw r3, 0x20000184 // a534 + a3f6: 8360 ld.b r3, (r3, 0x0) + a3f8: b861 st.w r3, (r14, 0x4) + a3fa: 12f0 lrw r7, 0x200008d6 // a538 + a3fc: 1270 lrw r3, 0x2000018d // a53c + a3fe: 83a0 ld.b r5, (r3, 0x0) + a400: 1270 lrw r3, 0x2000018c // a540 + a402: 8360 ld.b r3, (r3, 0x0) + a404: b862 st.w r3, (r14, 0x8) + a406: 6d9f mov r6, r7 + a408: 126f lrw r3, 0x20000ad2 // a544 + a40a: b863 st.w r3, (r14, 0xc) + a40c: 4461 lsli r3, r4, 1 + a40e: 9843 ld.w r2, (r14, 0xc) + a410: 608c addu r2, r3 + a412: 122e lrw r1, 0x2000082c // a548 + a414: 604c addu r1, r3 + a416: 8a40 ld.h r2, (r2, 0x0) + a418: 8920 ld.h r1, (r1, 0x0) + a41a: 6086 subu r2, r1 + a41c: 748b sexth r2, r2 + a41e: 5f2c addu r1, r7, r3 + a420: a940 st.h r2, (r1, 0x0) + a422: 8940 ld.h r2, (r1, 0x0) + a424: 748b sexth r2, r2 + a426: 3adf btsti r2, 31 + a428: 1249 lrw r2, 0x20000a8e // a54c + a42a: 608c addu r2, r3 + a42c: 0c37 bf 0xa49a // a49a + a42e: 3100 movi r1, 0 + a430: aa20 st.h r1, (r2, 0x0) + a432: 9840 ld.w r2, (r14, 0x0) + a434: 3a01 cmphsi r2, 2 + a436: 0c6d bf 0xa510 // a510 + a438: 4461 lsli r3, r4, 1 + a43a: 5e2c addu r1, r6, r3 + a43c: 1205 lrw r0, 0x200001de // a550 + a43e: 8940 ld.h r2, (r1, 0x0) + a440: 60c0 addu r3, r0 + a442: 748b sexth r2, r2 + a444: 8b60 ld.h r3, (r3, 0x0) + a446: 648d cmplt r3, r2 + a448: 9840 ld.w r2, (r14, 0x0) + a44a: 7cc8 mult r3, r2 + a44c: 0c2a bf 0xa4a0 // a4a0 + a44e: 8940 ld.h r2, (r1, 0x0) + a450: 748b sexth r2, r2 + a452: 64c9 cmplt r2, r3 + a454: 0c26 bf 0xa4a0 // a4a0 + a456: 1240 lrw r2, 0x200008c4 // a554 + a458: 6090 addu r2, r4 + a45a: 8260 ld.b r3, (r2, 0x0) + a45c: 2300 addi r3, 1 + a45e: 74cc zextb r3, r3 + a460: a260 st.b r3, (r2, 0x0) + a462: 3100 movi r1, 0 + a464: 117d lrw r3, 0x200008aa // a558 + a466: 60d0 addu r3, r4 + a468: a320 st.b r1, (r3, 0x0) + a46a: 117d lrw r3, 0x20000986 // a55c + a46c: 60d0 addu r3, r4 + a46e: a320 st.b r1, (r3, 0x0) + a470: 117c lrw r3, 0x20000a00 // a560 + a472: 60d0 addu r3, r4 + a474: a320 st.b r1, (r3, 0x0) + a476: 8260 ld.b r3, (r2, 0x0) + a478: 9821 ld.w r1, (r14, 0x4) + a47a: 64c4 cmphs r1, r3 + a47c: 081f bt 0xa4ba // a4ba + a47e: 3d40 cmpnei r5, 0 + a480: 0852 bt 0xa524 // a524 + a482: 1139 lrw r1, 0x200008bc // a564 + a484: 9160 ld.w r3, (r1, 0x0) + a486: 3b40 cmpnei r3, 0 + a488: 0806 bt 0xa494 // a494 + a48a: 9100 ld.w r0, (r1, 0x0) + a48c: 3301 movi r3, 1 + a48e: 70d0 lsl r3, r4 + a490: 6cc0 or r3, r0 + a492: b160 st.w r3, (r1, 0x0) + a494: 3300 movi r3, 0 + a496: a260 st.b r3, (r2, 0x0) + a498: 0411 br 0xa4ba // a4ba + a49a: 8920 ld.h r1, (r1, 0x0) + a49c: 7445 zexth r1, r1 + a49e: 07c9 br 0xa430 // a430 + a4a0: 4441 lsli r2, r4, 1 + a4a2: 6098 addu r2, r6 + a4a4: 8a40 ld.h r2, (r2, 0x0) + a4a6: 748b sexth r2, r2 + a4a8: 648d cmplt r3, r2 + a4aa: 0c08 bf 0xa4ba // a4ba + a4ac: 3300 movi r3, 0 + a4ae: 114e lrw r2, 0x200008bc // a564 + a4b0: 2b01 subi r3, 2 + a4b2: 9220 ld.w r1, (r2, 0x0) + a4b4: 70d3 rotl r3, r4 + a4b6: 68c4 and r3, r1 + a4b8: b260 st.w r3, (r2, 0x0) + a4ba: 4441 lsli r2, r4, 1 + a4bc: 5e68 addu r3, r6, r2 + a4be: 8b60 ld.h r3, (r3, 0x0) + a4c0: 74cf sexth r3, r3 + a4c2: b864 st.w r3, (r14, 0x10) + a4c4: 3105 movi r1, 5 + a4c6: 1163 lrw r3, 0x200001de // a550 + a4c8: 608c addu r2, r3 + a4ca: 8a00 ld.h r0, (r2, 0x0) + a4cc: 4002 lsli r0, r0, 2 + a4ce: e3ffe7eb bsr 0x74a4 // 74a4 <__divsi3> + a4d2: 9864 ld.w r3, (r14, 0x10) + a4d4: 640d cmplt r3, r0 + a4d6: 0c18 bf 0xa506 // a506 + a4d8: 1140 lrw r2, 0x200008aa // a558 + a4da: 6090 addu r2, r4 + a4dc: 8260 ld.b r3, (r2, 0x0) + a4de: 2300 addi r3, 1 + a4e0: 74cc zextb r3, r3 + a4e2: a260 st.b r3, (r2, 0x0) + a4e4: 3100 movi r1, 0 + a4e6: 107c lrw r3, 0x200008c4 // a554 + a4e8: 60d0 addu r3, r4 + a4ea: a320 st.b r1, (r3, 0x0) + a4ec: 8260 ld.b r3, (r2, 0x0) + a4ee: 9822 ld.w r1, (r14, 0x8) + a4f0: 64c4 cmphs r1, r3 + a4f2: 080a bt 0xa506 // a506 + a4f4: 3300 movi r3, 0 + a4f6: 103c lrw r1, 0x200008bc // a564 + a4f8: 2b01 subi r3, 2 + a4fa: 9100 ld.w r0, (r1, 0x0) + a4fc: 70d3 rotl r3, r4 + a4fe: 68c0 and r3, r0 + a500: b160 st.w r3, (r1, 0x0) + a502: 3300 movi r3, 0 + a504: a260 st.b r3, (r2, 0x0) + a506: 2400 addi r4, 1 + a508: 3c51 cmpnei r4, 17 + a50a: 0b81 bt 0xa40c // a40c + a50c: 1405 addi r14, r14, 20 + a50e: 1494 pop r4-r7, r15 + a510: 60d8 addu r3, r6 + a512: 4441 lsli r2, r4, 1 + a514: 102f lrw r1, 0x200001de // a550 + a516: 8b60 ld.h r3, (r3, 0x0) + a518: 6084 addu r2, r1 + a51a: 74cf sexth r3, r3 + a51c: 8a40 ld.h r2, (r2, 0x0) + a51e: 64c9 cmplt r2, r3 + a520: 0fcd bf 0xa4ba // a4ba + a522: 079a br 0xa456 // a456 + a524: 3d41 cmpnei r5, 1 + a526: 0bb7 bt 0xa494 // a494 + a528: 102f lrw r1, 0x200008bc // a564 + a52a: 6cd7 mov r3, r5 + a52c: 9100 ld.w r0, (r1, 0x0) + a52e: 07b0 br 0xa48e // a48e + a530: 200001b0 .long 0x200001b0 + a534: 20000184 .long 0x20000184 + a538: 200008d6 .long 0x200008d6 + a53c: 2000018d .long 0x2000018d + a540: 2000018c .long 0x2000018c + a544: 20000ad2 .long 0x20000ad2 + a548: 2000082c .long 0x2000082c + a54c: 20000a8e .long 0x20000a8e + a550: 200001de .long 0x200001de + a554: 200008c4 .long 0x200008c4 + a558: 200008aa .long 0x200008aa + a55c: 20000986 .long 0x20000986 + a560: 20000a00 .long 0x20000a00 + a564: 200008bc .long 0x200008bc + +Disassembly of section .text.TK_overflow_predict: + +0000a568 : + a568: 14d4 push r4-r7, r15 + a56a: 1421 subi r14, r14, 4 + a56c: 11d9 lrw r6, 0x20000068 // a650 + a56e: 8665 ld.b r3, (r6, 0x5) + a570: 3b41 cmpnei r3, 1 + a572: 085f bt 0xa630 // a630 + a574: 1158 lrw r2, 0x200009dc // a654 + a576: 8260 ld.b r3, (r2, 0x0) + a578: 2300 addi r3, 1 + a57a: 74cc zextb r3, r3 + a57c: a260 st.b r3, (r2, 0x0) + a57e: 8260 ld.b r3, (r2, 0x0) + a580: 1136 lrw r1, 0x200001b1 // a658 + a582: 8120 ld.b r1, (r1, 0x0) + a584: 64c4 cmphs r1, r3 + a586: 0855 bt 0xa630 // a630 + a588: 3300 movi r3, 0 + a58a: a260 st.b r3, (r2, 0x0) + a58c: 3500 movi r5, 0 + a58e: 11f4 lrw r7, 0x200001b4 // a65c + a590: 2605 addi r6, 6 + a592: 9760 ld.w r3, (r7, 0x0) + a594: 70d5 lsr r3, r5 + a596: 3201 movi r2, 1 + a598: 68c8 and r3, r2 + a59a: 3b40 cmpnei r3, 0 + a59c: 0c34 bf 0xa604 // a604 + a59e: 4581 lsli r4, r5, 1 + a5a0: 5e70 addu r3, r6, r4 + a5a2: 8b00 ld.h r0, (r3, 0x0) + a5a4: e3ffceb6 bsr 0x4310 // 4310 <__floatunsidf> + a5a8: 6cc7 mov r3, r1 + a5aa: 3180 movi r1, 128 + a5ac: 6c83 mov r2, r0 + a5ae: 4137 lsli r1, r1, 23 + a5b0: 3000 movi r0, 0 + a5b2: e3ffc201 bsr 0x29b4 // 29b4 <__GI_pow> + a5b6: 116b lrw r3, 0x200001ba // a660 + a5b8: 60d0 addu r3, r4 + a5ba: 8b60 ld.h r3, (r3, 0x0) + a5bc: 4364 lsli r3, r3, 4 + a5be: 230e addi r3, 15 + a5c0: b860 st.w r3, (r14, 0x0) + a5c2: e3ffc7cd bsr 0x355c // 355c <__fixunsdfsi> + a5c6: 9860 ld.w r3, (r14, 0x0) + a5c8: 7cc0 mult r3, r0 + a5ca: 1147 lrw r2, 0x20000a6c // a664 + a5cc: 740d zexth r0, r3 + a5ce: 6090 addu r2, r4 + a5d0: 1166 lrw r3, 0x20000ad2 // a668 + a5d2: 60d0 addu r3, r4 + a5d4: aa00 st.h r0, (r2, 0x0) + a5d6: 8b60 ld.h r3, (r3, 0x0) + a5d8: 8a00 ld.h r0, (r2, 0x0) + a5da: 7401 zexth r0, r0 + a5dc: 325f movi r2, 95 + a5de: 74cd zexth r3, r3 + a5e0: 7c08 mult r0, r2 + a5e2: 3164 movi r1, 100 + a5e4: b860 st.w r3, (r14, 0x0) + a5e6: e3ffe75f bsr 0x74a4 // 74a4 <__divsi3> + a5ea: 9860 ld.w r3, (r14, 0x0) + a5ec: 64c1 cmplt r0, r3 + a5ee: 0c0b bf 0xa604 // a604 + a5f0: 107f lrw r3, 0x2000018e // a66c + a5f2: 610c addu r4, r3 + a5f4: 8c60 ld.h r3, (r4, 0x0) + a5f6: 3b06 cmphsi r3, 7 + a5f8: 0806 bt 0xa604 // a604 + a5fa: 2300 addi r3, 1 + a5fc: ac60 st.h r3, (r4, 0x0) + a5fe: 3201 movi r2, 1 + a600: 107c lrw r3, 0x20000931 // a670 + a602: a340 st.b r2, (r3, 0x0) + a604: 2500 addi r5, 1 + a606: 3d51 cmpnei r5, 17 + a608: 0bc5 bt 0xa592 // a592 + a60a: 107a lrw r3, 0x20000931 // a670 + a60c: 8340 ld.b r2, (r3, 0x0) + a60e: 3a41 cmpnei r2, 1 + a610: 0810 bt 0xa630 // a630 + a612: 3200 movi r2, 0 + a614: a340 st.b r2, (r3, 0x0) + a616: 3200 movi r2, 0 + a618: 1077 lrw r3, 0x20000058 // a674 + a61a: 1018 lrw r0, 0x200009ff // a678 + a61c: 10b8 lrw r5, 0x20000a38 // a67c + a61e: 10d4 lrw r6, 0x2000018e // a66c + a620: 9360 ld.w r3, (r3, 0x0) + a622: b342 st.w r2, (r3, 0x8) + a624: 1077 lrw r3, 0x20000054 // a680 + a626: 9380 ld.w r4, (r3, 0x0) + a628: 3300 movi r3, 0 + a62a: 8040 ld.b r2, (r0, 0x0) + a62c: 648c cmphs r3, r2 + a62e: 0c03 bf 0xa634 // a634 + a630: 1401 addi r14, r14, 4 + a632: 1494 pop r4-r7, r15 + a634: 5d4c addu r2, r5, r3 + a636: 8240 ld.b r2, (r2, 0x0) + a638: 4241 lsli r2, r2, 1 + a63a: 4322 lsli r1, r3, 2 + a63c: 6098 addu r2, r6 + a63e: 6050 addu r1, r4 + a640: 8a40 ld.h r2, (r2, 0x0) + a642: 91f2 ld.w r7, (r1, 0x48) + a644: 4254 lsli r2, r2, 20 + a646: 6c9c or r2, r7 + a648: 2300 addi r3, 1 + a64a: b152 st.w r2, (r1, 0x48) + a64c: 74cc zextb r3, r3 + a64e: 07ee br 0xa62a // a62a + a650: 20000068 .long 0x20000068 + a654: 200009dc .long 0x200009dc + a658: 200001b1 .long 0x200001b1 + a65c: 200001b4 .long 0x200001b4 + a660: 200001ba .long 0x200001ba + a664: 20000a6c .long 0x20000a6c + a668: 20000ad2 .long 0x20000ad2 + a66c: 2000018e .long 0x2000018e + a670: 20000931 .long 0x20000931 + a674: 20000058 .long 0x20000058 + a678: 200009ff .long 0x200009ff + a67c: 20000a38 .long 0x20000a38 + a680: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +0000a684 : + a684: 14c4 push r4-r7 + a686: 1422 subi r14, r14, 8 + a688: 1348 lrw r2, 0x2000095e // a828 + a68a: 8260 ld.b r3, (r2, 0x0) + a68c: 2300 addi r3, 1 + a68e: 74cc zextb r3, r3 + a690: a260 st.b r3, (r2, 0x0) + a692: 8260 ld.b r3, (r2, 0x0) + a694: 1326 lrw r1, 0x200001b1 // a82c + a696: 8120 ld.b r1, (r1, 0x0) + a698: 644c cmphs r3, r1 + a69a: 0cad bf 0xa7f4 // a7f4 + a69c: 3300 movi r3, 0 + a69e: a260 st.b r3, (r2, 0x0) + a6a0: 1364 lrw r3, 0x200008bc // a830 + a6a2: 9360 ld.w r3, (r3, 0x0) + a6a4: 3b40 cmpnei r3, 0 + a6a6: 08a7 bt 0xa7f4 // a7f4 + a6a8: 1323 lrw r1, 0x200008d6 // a834 + a6aa: 6dc7 mov r7, r1 + a6ac: b820 st.w r1, (r14, 0x0) + a6ae: 3200 movi r2, 0 + a6b0: 1362 lrw r3, 0x200001de // a838 + a6b2: 1323 lrw r1, 0x2000082c // a83c + a6b4: 4201 lsli r0, r2, 1 + a6b6: 9880 ld.w r4, (r14, 0x0) + a6b8: 6100 addu r4, r0 + a6ba: 8c80 ld.h r4, (r4, 0x0) + a6bc: 7513 sexth r4, r4 + a6be: 3cdf btsti r4, 31 + a6c0: 0c27 bf 0xa70e // a70e + a6c2: 13a0 lrw r5, 0x20000ad2 // a840 + a6c4: 5980 addu r4, r1, r0 + a6c6: 6014 addu r0, r5 + a6c8: b881 st.w r4, (r14, 0x4) + a6ca: 8c80 ld.h r4, (r4, 0x0) + a6cc: 88c0 ld.h r6, (r0, 0x0) + a6ce: 7511 zexth r4, r4 + a6d0: 7599 zexth r6, r6 + a6d2: 8ba0 ld.h r5, (r3, 0x0) + a6d4: 611a subu r4, r6 + a6d6: 6551 cmplt r4, r5 + a6d8: 081b bt 0xa70e // a70e + a6da: 9881 ld.w r4, (r14, 0x4) + a6dc: 8c80 ld.h r4, (r4, 0x0) + a6de: 8800 ld.h r0, (r0, 0x0) + a6e0: 7511 zexth r4, r4 + a6e2: 7401 zexth r0, r0 + a6e4: 5c01 subu r0, r4, r0 + a6e6: 4581 lsli r4, r5, 1 + a6e8: 6150 addu r5, r4 + a6ea: 6541 cmplt r0, r5 + a6ec: 0c11 bf 0xa70e // a70e + a6ee: 1296 lrw r4, 0x20000a00 // a844 + a6f0: 6108 addu r4, r2 + a6f2: 8400 ld.b r0, (r4, 0x0) + a6f4: 2000 addi r0, 1 + a6f6: 7400 zextb r0, r0 + a6f8: a400 st.b r0, (r4, 0x0) + a6fa: 1214 lrw r0, 0x20000088 // a848 + a6fc: 84a0 ld.b r5, (r4, 0x0) + a6fe: 8008 ld.b r0, (r0, 0x8) + a700: 6540 cmphs r0, r5 + a702: 0806 bt 0xa70e // a70e + a704: 1212 lrw r0, 0x20000943 // a84c + a706: 3501 movi r5, 1 + a708: a0a0 st.b r5, (r0, 0x0) + a70a: 3000 movi r0, 0 + a70c: a400 st.b r0, (r4, 0x0) + a70e: 4201 lsli r0, r2, 1 + a710: 5f80 addu r4, r7, r0 + a712: 8c80 ld.h r4, (r4, 0x0) + a714: 7513 sexth r4, r4 + a716: 3c20 cmplti r4, 1 + a718: 0870 bt 0xa7f8 // a7f8 + a71a: 128a lrw r4, 0x20000ad2 // a840 + a71c: 6100 addu r4, r0 + a71e: 59a0 addu r5, r1, r0 + a720: 8c80 ld.h r4, (r4, 0x0) + a722: 8da0 ld.h r5, (r5, 0x0) + a724: 7555 zexth r5, r5 + a726: 7511 zexth r4, r4 + a728: 6116 subu r4, r5 + a72a: 8ba0 ld.h r5, (r3, 0x0) + a72c: 45a2 lsli r5, r5, 2 + a72e: 6551 cmplt r4, r5 + a730: 0864 bt 0xa7f8 // a7f8 + a732: 1288 lrw r4, 0x20000986 // a850 + a734: 6108 addu r4, r2 + a736: 84a0 ld.b r5, (r4, 0x0) + a738: 2500 addi r5, 1 + a73a: 7554 zextb r5, r5 + a73c: a4a0 st.b r5, (r4, 0x0) + a73e: 12a3 lrw r5, 0x20000088 // a848 + a740: 84c0 ld.b r6, (r4, 0x0) + a742: 85a9 ld.b r5, (r5, 0x9) + a744: 6594 cmphs r5, r6 + a746: 0806 bt 0xa752 // a752 + a748: 12a1 lrw r5, 0x20000943 // a84c + a74a: 3601 movi r6, 1 + a74c: a5c0 st.b r6, (r5, 0x0) + a74e: 3500 movi r5, 0 + a750: a4a0 st.b r5, (r4, 0x0) + a752: 5f80 addu r4, r7, r0 + a754: 8c80 ld.h r4, (r4, 0x0) + a756: 7513 sexth r4, r4 + a758: 3cdf btsti r4, 31 + a75a: 0c10 bf 0xa77a // a77a + a75c: 11d9 lrw r6, 0x20000ad2 // a840 + a75e: 59a0 addu r5, r1, r0 + a760: 6180 addu r6, r0 + a762: 8d80 ld.h r4, (r5, 0x0) + a764: 8ec0 ld.h r6, (r6, 0x0) + a766: 7599 zexth r6, r6 + a768: 7511 zexth r4, r4 + a76a: 611a subu r4, r6 + a76c: 8bc0 ld.h r6, (r3, 0x0) + a76e: 6591 cmplt r4, r6 + a770: 0c05 bf 0xa77a // a77a + a772: 8d80 ld.h r4, (r5, 0x0) + a774: 2c00 subi r4, 1 + a776: 7511 zexth r4, r4 + a778: ad80 st.h r4, (r5, 0x0) + a77a: 5f80 addu r4, r7, r0 + a77c: 8c80 ld.h r4, (r4, 0x0) + a77e: 7513 sexth r4, r4 + a780: 3cdf btsti r4, 31 + a782: 0c11 bf 0xa7a4 // a7a4 + a784: 11cf lrw r6, 0x20000ad2 // a840 + a786: 59a0 addu r5, r1, r0 + a788: 6180 addu r6, r0 + a78a: 8d80 ld.h r4, (r5, 0x0) + a78c: 8ec0 ld.h r6, (r6, 0x0) + a78e: 7599 zexth r6, r6 + a790: 7511 zexth r4, r4 + a792: 611a subu r4, r6 + a794: 8bc0 ld.h r6, (r3, 0x0) + a796: 4ec1 lsri r6, r6, 1 + a798: 6591 cmplt r4, r6 + a79a: 0805 bt 0xa7a4 // a7a4 + a79c: 8d80 ld.h r4, (r5, 0x0) + a79e: 2c01 subi r4, 2 + a7a0: 7511 zexth r4, r4 + a7a2: ad80 st.h r4, (r5, 0x0) + a7a4: 5fa0 addu r5, r7, r0 + a7a6: 8d80 ld.h r4, (r5, 0x0) + a7a8: 7513 sexth r4, r4 + a7aa: 3c20 cmplti r4, 1 + a7ac: 080c bt 0xa7c4 // a7c4 + a7ae: 8da0 ld.h r5, (r5, 0x0) + a7b0: 8b80 ld.h r4, (r3, 0x0) + a7b2: 7557 sexth r5, r5 + a7b4: 4c81 lsri r4, r4, 1 + a7b6: 6515 cmplt r5, r4 + a7b8: 0c06 bf 0xa7c4 // a7c4 + a7ba: 59a0 addu r5, r1, r0 + a7bc: 8d80 ld.h r4, (r5, 0x0) + a7be: 2400 addi r4, 1 + a7c0: 7511 zexth r4, r4 + a7c2: ad80 st.h r4, (r5, 0x0) + a7c4: 5fa0 addu r5, r7, r0 + a7c6: 8d80 ld.h r4, (r5, 0x0) + a7c8: 7513 sexth r4, r4 + a7ca: 3c20 cmplti r4, 1 + a7cc: 0810 bt 0xa7ec // a7ec + a7ce: 8dc0 ld.h r6, (r5, 0x0) + a7d0: 759b sexth r6, r6 + a7d2: 8b80 ld.h r4, (r3, 0x0) + a7d4: 6519 cmplt r6, r4 + a7d6: 0c0b bf 0xa7ec // a7ec + a7d8: 8da0 ld.h r5, (r5, 0x0) + a7da: 7557 sexth r5, r5 + a7dc: 4c81 lsri r4, r4, 1 + a7de: 6515 cmplt r5, r4 + a7e0: 0806 bt 0xa7ec // a7ec + a7e2: 6004 addu r0, r1 + a7e4: 8880 ld.h r4, (r0, 0x0) + a7e6: 2401 addi r4, 2 + a7e8: 7511 zexth r4, r4 + a7ea: a880 st.h r4, (r0, 0x0) + a7ec: 2200 addi r2, 1 + a7ee: 3a51 cmpnei r2, 17 + a7f0: 2301 addi r3, 2 + a7f2: 0b61 bt 0xa6b4 // a6b4 + a7f4: 1402 addi r14, r14, 8 + a7f6: 1484 pop r4-r7 + a7f8: 5f80 addu r4, r7, r0 + a7fa: 8c80 ld.h r4, (r4, 0x0) + a7fc: 7513 sexth r4, r4 + a7fe: 3cdf btsti r4, 31 + a800: 0fa9 bf 0xa752 // a752 + a802: 10b0 lrw r5, 0x20000ad2 // a840 + a804: 5980 addu r4, r1, r0 + a806: 6140 addu r5, r0 + a808: 8c80 ld.h r4, (r4, 0x0) + a80a: 8da0 ld.h r5, (r5, 0x0) + a80c: 7555 zexth r5, r5 + a80e: 8bc0 ld.h r6, (r3, 0x0) + a810: 7511 zexth r4, r4 + a812: 6116 subu r4, r5 + a814: 46a1 lsli r5, r6, 1 + a816: 6158 addu r5, r6 + a818: 6551 cmplt r4, r5 + a81a: 0b9c bt 0xa752 // a752 + a81c: 108c lrw r4, 0x20000943 // a84c + a81e: 3501 movi r5, 1 + a820: a4a0 st.b r5, (r4, 0x0) + a822: 6c03 mov r0, r0 + a824: 0797 br 0xa752 // a752 + a826: 0000 bkpt + a828: 2000095e .long 0x2000095e + a82c: 200001b1 .long 0x200001b1 + a830: 200008bc .long 0x200008bc + a834: 200008d6 .long 0x200008d6 + a838: 200001de .long 0x200001de + a83c: 2000082c .long 0x2000082c + a840: 20000ad2 .long 0x20000ad2 + a844: 20000a00 .long 0x20000a00 + a848: 20000088 .long 0x20000088 + a84c: 20000943 .long 0x20000943 + a850: 20000986 .long 0x20000986 + +Disassembly of section .text.TK_result_prog: + +0000a854 : + a854: 14d2 push r4-r5, r15 + a856: 1050 lrw r2, 0x200008bc // a894 + a858: 1090 lrw r4, 0x20000960 // a898 + a85a: 9260 ld.w r3, (r2, 0x0) + a85c: 3b40 cmpnei r3, 0 + a85e: 0c02 bf 0xa862 // a862 + a860: 9260 ld.w r3, (r2, 0x0) + a862: b460 st.w r3, (r4, 0x0) + a864: 9460 ld.w r3, (r4, 0x0) + a866: 3b40 cmpnei r3, 0 + a868: 10ad lrw r5, 0x20000a34 // a89c + a86a: 0c11 bf 0xa88c // a88c + a86c: 9440 ld.w r2, (r4, 0x0) + a86e: 9560 ld.w r3, (r5, 0x0) + a870: 64ca cmpne r2, r3 + a872: 0c03 bf 0xa878 // a878 + a874: 9460 ld.w r3, (r4, 0x0) + a876: b560 st.w r3, (r5, 0x0) + a878: e3fffd94 bsr 0xa3a0 // a3a0 + a87c: 1069 lrw r3, 0x200001b8 // a8a0 + a87e: 8360 ld.b r3, (r3, 0x0) + a880: 640c cmphs r3, r0 + a882: 0804 bt 0xa88a // a88a + a884: 3300 movi r3, 0 + a886: b460 st.w r3, (r4, 0x0) + a888: b560 st.w r3, (r5, 0x0) + a88a: 1492 pop r4-r5, r15 + a88c: 1046 lrw r2, 0x20000958 // a8a4 + a88e: b560 st.w r3, (r5, 0x0) + a890: b260 st.w r3, (r2, 0x0) + a892: 07fc br 0xa88a // a88a + a894: 200008bc .long 0x200008bc + a898: 20000960 .long 0x20000960 + a89c: 20000a34 .long 0x20000a34 + a8a0: 200001b8 .long 0x200001b8 + a8a4: 20000958 .long 0x20000958 + +Disassembly of section .text.CORETHandler: + +0000a8a8 : + a8a8: 1460 nie + a8aa: 1462 ipush + a8ac: 14d1 push r4, r15 + a8ae: 1077 lrw r3, 0x20000064 // a908 + a8b0: 3400 movi r4, 0 + a8b2: 9360 ld.w r3, (r3, 0x0) + a8b4: b386 st.w r4, (r3, 0x18) + a8b6: 1076 lrw r3, 0x200008c0 // a90c + a8b8: 8360 ld.b r3, (r3, 0x0) + a8ba: 3b41 cmpnei r3, 1 + a8bc: 0820 bt 0xa8fc // a8fc + a8be: e3fffd85 bsr 0xa3c8 // a3c8 + a8c2: e3fffd93 bsr 0xa3e8 // a3e8 + a8c6: e3fffe51 bsr 0xa568 // a568 + a8ca: e3fffedd bsr 0xa684 // a684 + a8ce: e3ffffc3 bsr 0xa854 // a854 + a8d2: 1070 lrw r3, 0x20000960 // a910 + a8d4: 9360 ld.w r3, (r3, 0x0) + a8d6: 3b40 cmpnei r3, 0 + a8d8: 0c12 bf 0xa8fc // a8fc + a8da: 106f lrw r3, 0x20000188 // a914 + a8dc: 9340 ld.w r2, (r3, 0x0) + a8de: 3a40 cmpnei r2, 0 + a8e0: 0c0e bf 0xa8fc // a8fc + a8e2: 106e lrw r3, 0x20000958 // a918 + a8e4: 3064 movi r0, 100 + a8e6: 9320 ld.w r1, (r3, 0x0) + a8e8: 2100 addi r1, 1 + a8ea: b320 st.w r1, (r3, 0x0) + a8ec: 9320 ld.w r1, (r3, 0x0) + a8ee: 7c80 mult r2, r0 + a8f0: 6448 cmphs r2, r1 + a8f2: 0805 bt 0xa8fc // a8fc + a8f4: 104a lrw r2, 0x20000943 // a91c + a8f6: 3101 movi r1, 1 + a8f8: a220 st.b r1, (r2, 0x0) + a8fa: b380 st.w r4, (r3, 0x0) + a8fc: d9ee2001 ld.w r15, (r14, 0x4) + a900: 9880 ld.w r4, (r14, 0x0) + a902: 1402 addi r14, r14, 8 + a904: 1463 ipop + a906: 1461 nir + a908: 20000064 .long 0x20000064 + a90c: 200008c0 .long 0x200008c0 + a910: 20000960 .long 0x20000960 + a914: 20000188 .long 0x20000188 + a918: 20000958 .long 0x20000958 + a91c: 20000943 .long 0x20000943 + +Disassembly of section .text.std_clk_calib: + +0000a920 : + a920: 14d4 push r4-r7, r15 + a922: 142d subi r14, r14, 52 + a924: 3201 movi r2, 1 + a926: 03ce lrw r6, 0x2000005c // ab68 + a928: 6cc3 mov r3, r0 + a92a: dc4e000a st.b r2, (r14, 0xa) + a92e: 9640 ld.w r2, (r6, 0x0) + a930: 9247 ld.w r2, (r2, 0x1c) + a932: 7488 zextb r2, r2 + a934: dc4e0009 st.b r2, (r14, 0x9) + a938: d84e0009 ld.b r2, (r14, 0x9) + a93c: 3a40 cmpnei r2, 0 + a93e: 0c08 bf 0xa94e // a94e + a940: d84e0009 ld.b r2, (r14, 0x9) + a944: 3a42 cmpnei r2, 2 + a946: 0c04 bf 0xa94e // a94e + a948: 3000 movi r0, 0 + a94a: 140d addi r14, r14, 52 + a94c: 1494 pop r4-r7, r15 + a94e: 0397 lrw r4, 0x2000000c // ab6c + a950: 3209 movi r2, 9 + a952: 9400 ld.w r0, (r4, 0x0) + a954: 3b40 cmpnei r3, 0 + a956: b041 st.w r2, (r0, 0x4) + a958: 0857 bt 0xaa06 // aa06 + a95a: 3307 movi r3, 7 + a95c: dc6e000b st.b r3, (r14, 0xb) + a960: 037b lrw r3, 0x2dc6c00 // ab70 + a962: b863 st.w r3, (r14, 0xc) + a964: 3380 movi r3, 128 + a966: 4362 lsli r3, r3, 2 + a968: b867 st.w r3, (r14, 0x1c) + a96a: d86e000b ld.b r3, (r14, 0xb) + a96e: 74cc zextb r3, r3 + a970: b062 st.w r3, (r0, 0x8) + a972: 037e lrw r3, 0xffff // ab74 + a974: b063 st.w r3, (r0, 0xc) + a976: 3201 movi r2, 1 + a978: 3101 movi r1, 1 + a97a: 03bf lrw r5, 0x20000014 // ab78 + a97c: e3ffde70 bsr 0x665c // 665c + a980: 95e0 ld.w r7, (r5, 0x0) + a982: 137f lrw r3, 0xbe9c0005 // ab7c + a984: b760 st.w r3, (r7, 0x0) + a986: 135f lrw r2, 0x30010 // ab80 + a988: 3300 movi r3, 0 + a98a: b762 st.w r3, (r7, 0x8) + a98c: b743 st.w r2, (r7, 0xc) + a98e: 32d8 movi r2, 216 + a990: b745 st.w r2, (r7, 0x14) + a992: 974f ld.w r2, (r7, 0x3c) + a994: 3aa2 bseti r2, 2 + a996: b74f st.w r2, (r7, 0x3c) + a998: 9803 ld.w r0, (r14, 0xc) + a99a: d82e000b ld.b r1, (r14, 0xb) + a99e: 327d movi r2, 125 + a9a0: 2100 addi r1, 1 + a9a2: 7c48 mult r1, r2 + a9a4: b861 st.w r3, (r14, 0x4) + a9a6: e3ffe591 bsr 0x74c8 // 74c8 <__udivsi3> + a9aa: b804 st.w r0, (r14, 0x10) + a9ac: 32fa movi r2, 250 + a9ae: 9824 ld.w r1, (r14, 0x10) + a9b0: 4242 lsli r2, r2, 2 + a9b2: 6448 cmphs r2, r1 + a9b4: 0bca bt 0xa948 // a948 + a9b6: 9844 ld.w r2, (r14, 0x10) + a9b8: 3178 movi r1, 120 + a9ba: 9804 ld.w r0, (r14, 0x10) + a9bc: b840 st.w r2, (r14, 0x0) + a9be: e3ffe585 bsr 0x74c8 // 74c8 <__udivsi3> + a9c2: 9840 ld.w r2, (r14, 0x0) + a9c4: 6082 subu r2, r0 + a9c6: b845 st.w r2, (r14, 0x14) + a9c8: 9804 ld.w r0, (r14, 0x10) + a9ca: 3178 movi r1, 120 + a9cc: 9844 ld.w r2, (r14, 0x10) + a9ce: b840 st.w r2, (r14, 0x0) + a9d0: e3ffe57c bsr 0x74c8 // 74c8 <__udivsi3> + a9d4: 9840 ld.w r2, (r14, 0x0) + a9d6: 6008 addu r0, r2 + a9d8: b806 st.w r0, (r14, 0x18) + a9da: c0807020 psrclr ie + a9de: 9640 ld.w r2, (r6, 0x0) + a9e0: 9254 ld.w r2, (r2, 0x50) + a9e2: b848 st.w r2, (r14, 0x20) + a9e4: 9861 ld.w r3, (r14, 0x4) + a9e6: 9440 ld.w r2, (r4, 0x0) + a9e8: b260 st.w r3, (r2, 0x0) + a9ea: b761 st.w r3, (r7, 0x4) + a9ec: d86e000a ld.b r3, (r14, 0xa) + a9f0: 3b40 cmpnei r3, 0 + a9f2: 083e bt 0xaa6e // aa6e + a9f4: e3ffdde6 bsr 0x65c0 // 65c0 + a9f8: 9400 ld.w r0, (r4, 0x0) + a9fa: e3ffde07 bsr 0x6608 // 6608 + a9fe: c1807420 psrset ee, ie + aa02: 3001 movi r0, 1 + aa04: 07a3 br 0xa94a // a94a + aa06: 3b41 cmpnei r3, 1 + aa08: 0806 bt 0xaa14 // aa14 + aa0a: 3303 movi r3, 3 + aa0c: dc6e000b st.b r3, (r14, 0xb) + aa10: 127d lrw r3, 0x16e3600 // ab84 + aa12: 07a8 br 0xa962 // a962 + aa14: 3b42 cmpnei r3, 2 + aa16: 0806 bt 0xaa22 // aa22 + aa18: 3301 movi r3, 1 + aa1a: dc6e000b st.b r3, (r14, 0xb) + aa1e: 127b lrw r3, 0xb71b00 // ab88 + aa20: 07a1 br 0xa962 // a962 + aa22: 3b43 cmpnei r3, 3 + aa24: 0806 bt 0xaa30 // aa30 + aa26: 3300 movi r3, 0 + aa28: dc6e000b st.b r3, (r14, 0xb) + aa2c: 1278 lrw r3, 0x5b8d80 // ab8c + aa2e: 079a br 0xa962 // a962 + aa30: 3b44 cmpnei r3, 4 + aa32: 0809 bt 0xaa44 // aa44 + aa34: 3300 movi r3, 0 + aa36: dc6e000b st.b r3, (r14, 0xb) + aa3a: 1276 lrw r3, 0x54c720 // ab90 + aa3c: b863 st.w r3, (r14, 0xc) + aa3e: 3380 movi r3, 128 + aa40: 4369 lsli r3, r3, 9 + aa42: 0793 br 0xa968 // a968 + aa44: 3b45 cmpnei r3, 5 + aa46: 0806 bt 0xaa52 // aa52 + aa48: 3300 movi r3, 0 + aa4a: dc6e000b st.b r3, (r14, 0xb) + aa4e: 1272 lrw r3, 0x3ffed0 // ab94 + aa50: 07f6 br 0xaa3c // aa3c + aa52: 3b46 cmpnei r3, 6 + aa54: 0806 bt 0xaa60 // aa60 + aa56: 3300 movi r3, 0 + aa58: dc6e000b st.b r3, (r14, 0xb) + aa5c: 126f lrw r3, 0x1fff68 // ab98 + aa5e: 07ef br 0xaa3c // aa3c + aa60: 3b47 cmpnei r3, 7 + aa62: 0b84 bt 0xa96a // a96a + aa64: 3300 movi r3, 0 + aa66: dc6e000b st.b r3, (r14, 0xb) + aa6a: 126d lrw r3, 0x1ffb8 // ab9c + aa6c: 07e8 br 0xaa3c // aa3c + aa6e: 9560 ld.w r3, (r5, 0x0) + aa70: 3101 movi r1, 1 + aa72: 9440 ld.w r2, (r4, 0x0) + aa74: b321 st.w r1, (r3, 0x4) + aa76: b220 st.w r1, (r2, 0x0) + aa78: 3100 movi r1, 0 + aa7a: b327 st.w r1, (r3, 0x1c) + aa7c: 3004 movi r0, 4 + aa7e: b225 st.w r1, (r2, 0x14) + aa80: 932e ld.w r1, (r3, 0x38) + aa82: 6840 and r1, r0 + aa84: 3940 cmpnei r1, 0 + aa86: 0ffd bf 0xaa80 // aa80 + aa88: 9225 ld.w r1, (r2, 0x14) + aa8a: b82a st.w r1, (r14, 0x28) + aa8c: 3100 movi r1, 0 + aa8e: b310 st.w r0, (r3, 0x40) + aa90: b327 st.w r1, (r3, 0x1c) + aa92: 3004 movi r0, 4 + aa94: b225 st.w r1, (r2, 0x14) + aa96: 932e ld.w r1, (r3, 0x38) + aa98: 6840 and r1, r0 + aa9a: 3940 cmpnei r1, 0 + aa9c: 0ffd bf 0xaa96 // aa96 + aa9e: 9225 ld.w r1, (r2, 0x14) + aaa0: b82b st.w r1, (r14, 0x2c) + aaa2: 3100 movi r1, 0 + aaa4: b310 st.w r0, (r3, 0x40) + aaa6: b327 st.w r1, (r3, 0x1c) + aaa8: 3004 movi r0, 4 + aaaa: b225 st.w r1, (r2, 0x14) + aaac: 932e ld.w r1, (r3, 0x38) + aaae: 6840 and r1, r0 + aab0: 3940 cmpnei r1, 0 + aab2: 0ffd bf 0xaaac // aaac + aab4: 9225 ld.w r1, (r2, 0x14) + aab6: b82c st.w r1, (r14, 0x30) + aab8: b310 st.w r0, (r3, 0x40) + aaba: 982b ld.w r1, (r14, 0x2c) + aabc: 980c ld.w r0, (r14, 0x30) + aabe: 6040 addu r1, r0 + aac0: b829 st.w r1, (r14, 0x24) + aac2: 9829 ld.w r1, (r14, 0x24) + aac4: 4921 lsri r1, r1, 1 + aac6: b829 st.w r1, (r14, 0x24) + aac8: 3100 movi r1, 0 + aaca: b321 st.w r1, (r3, 0x4) + aacc: b220 st.w r1, (r2, 0x0) + aace: b327 st.w r1, (r3, 0x1c) + aad0: b225 st.w r1, (r2, 0x14) + aad2: d86e0009 ld.b r3, (r14, 0x9) + aad6: 3b42 cmpnei r3, 2 + aad8: 9849 ld.w r2, (r14, 0x24) + aada: 082c bt 0xab32 // ab32 + aadc: 1171 lrw r3, 0x7ff // aba0 + aade: 648c cmphs r3, r2 + aae0: 0c03 bf 0xaae6 // aae6 + aae2: 3300 movi r3, 0 + aae4: 040f br 0xab02 // ab02 + aae6: 9849 ld.w r2, (r14, 0x24) + aae8: 9866 ld.w r3, (r14, 0x18) + aaea: 648c cmphs r3, r2 + aaec: 080e bt 0xab08 // ab08 + aaee: 9868 ld.w r3, (r14, 0x20) + aaf0: 9847 ld.w r2, (r14, 0x1c) + aaf2: 60ca subu r3, r2 + aaf4: b868 st.w r3, (r14, 0x20) + aaf6: 32fe movi r2, 254 + aaf8: 9868 ld.w r3, (r14, 0x20) + aafa: 4248 lsli r2, r2, 8 + aafc: 68c8 and r3, r2 + aafe: 3b40 cmpnei r3, 0 + ab00: 0812 bt 0xab24 // ab24 + ab02: dc6e000a st.b r3, (r14, 0xa) + ab06: 0721 br 0xa948 // a948 + ab08: 9849 ld.w r2, (r14, 0x24) + ab0a: 9865 ld.w r3, (r14, 0x14) + ab0c: 64c8 cmphs r2, r3 + ab0e: 0829 bt 0xab60 // ab60 + ab10: 9868 ld.w r3, (r14, 0x20) + ab12: 9847 ld.w r2, (r14, 0x1c) + ab14: 60c8 addu r3, r2 + ab16: b868 st.w r3, (r14, 0x20) + ab18: 33fe movi r3, 254 + ab1a: 9848 ld.w r2, (r14, 0x20) + ab1c: 4368 lsli r3, r3, 8 + ab1e: 688c and r2, r3 + ab20: 64ca cmpne r2, r3 + ab22: 0fe0 bf 0xaae2 // aae2 + ab24: 9660 ld.w r3, (r6, 0x0) + ab26: 9848 ld.w r2, (r14, 0x20) + ab28: b354 st.w r2, (r3, 0x50) + ab2a: 3001 movi r0, 1 + ab2c: e3ffdf22 bsr 0x6970 // 6970 + ab30: 075e br 0xa9ec // a9ec + ab32: 9866 ld.w r3, (r14, 0x18) + ab34: 648c cmphs r3, r2 + ab36: 0809 bt 0xab48 // ab48 + ab38: 9868 ld.w r3, (r14, 0x20) + ab3a: 9847 ld.w r2, (r14, 0x1c) + ab3c: 60ca subu r3, r2 + ab3e: b868 st.w r3, (r14, 0x20) + ab40: 32ff movi r2, 255 + ab42: 9868 ld.w r3, (r14, 0x20) + ab44: 4250 lsli r2, r2, 16 + ab46: 07db br 0xaafc // aafc + ab48: 9849 ld.w r2, (r14, 0x24) + ab4a: 9865 ld.w r3, (r14, 0x14) + ab4c: 64c8 cmphs r2, r3 + ab4e: 0809 bt 0xab60 // ab60 + ab50: 9868 ld.w r3, (r14, 0x20) + ab52: 9847 ld.w r2, (r14, 0x1c) + ab54: 60c8 addu r3, r2 + ab56: b868 st.w r3, (r14, 0x20) + ab58: 33ff movi r3, 255 + ab5a: 9848 ld.w r2, (r14, 0x20) + ab5c: 4370 lsli r3, r3, 16 + ab5e: 07e0 br 0xab1e // ab1e + ab60: 3300 movi r3, 0 + ab62: dc6e000a st.b r3, (r14, 0xa) + ab66: 07e2 br 0xab2a // ab2a + ab68: 2000005c .long 0x2000005c + ab6c: 2000000c .long 0x2000000c + ab70: 02dc6c00 .long 0x02dc6c00 + ab74: 0000ffff .long 0x0000ffff + ab78: 20000014 .long 0x20000014 + ab7c: be9c0005 .long 0xbe9c0005 + ab80: 00030010 .long 0x00030010 + ab84: 016e3600 .long 0x016e3600 + ab88: 00b71b00 .long 0x00b71b00 + ab8c: 005b8d80 .long 0x005b8d80 + ab90: 0054c720 .long 0x0054c720 + ab94: 003ffed0 .long 0x003ffed0 + ab98: 001fff68 .long 0x001fff68 + ab9c: 0001ffb8 .long 0x0001ffb8 + aba0: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251106.map b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251106.map new file mode 100644 index 0000000..f2211b2 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V03_20251106.map @@ -0,0 +1,3049 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x290c + Start of program headers: 52 (bytes into file) + Start of section headers: 379128 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 205 + Section header string table index: 202 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00002800 000800 003676 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00005e78 003e78 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00005eb0 003eb0 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00005f24 003f24 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00005f70 003f70 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00005fa0 003fa0 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00006028 004028 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00006050 004050 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 0000608c 00408c 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 000060a0 0040a0 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 000060b8 0040b8 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 000060d8 0040d8 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 000060f4 0040f4 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00006110 004110 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00006150 004150 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00006184 004184 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00006188 004188 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00006198 004198 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 000061a4 0041a4 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Soft PROGBITS 000061b0 0041b0 000014 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 000061c4 0041c4 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000061e8 0041e8 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 00006218 004218 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 0000627c 00427c 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 0000635c 00435c 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00006370 004370 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00006380 004380 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 0000648c 00448c 0000fc 00 AX 0 0 4 + [29] .text.GPIO_Write_ PROGBITS 00006588 004588 000008 00 AX 0 0 2 + [30] .text.GPIO_Write_ PROGBITS 00006590 004590 000008 00 AX 0 0 2 + [31] .text.GPIO_Revers PROGBITS 00006598 004598 000016 00 AX 0 0 2 + [32] .text.GPIO_Read_S PROGBITS 000065ae 0045ae 000010 00 AX 0 0 2 + [33] .text.LPT_Soft_Re PROGBITS 000065c0 0045c0 000014 00 AX 0 0 4 + [34] .text.WWDT_CNT_Lo PROGBITS 000065d4 0045d4 000010 00 AX 0 0 4 + [35] .text.BT_DeInit PROGBITS 000065e4 0045e4 00001c 00 AX 0 0 2 + [36] .text.BT_Start PROGBITS 00006600 004600 000008 00 AX 0 0 2 + [37] .text.BT_Soft_Res PROGBITS 00006608 004608 00000a 00 AX 0 0 2 + [38] .text.BT_Configur PROGBITS 00006612 004612 000018 00 AX 0 0 2 + [39] .text.BT_ControlS PROGBITS 0000662a 00462a 00002c 00 AX 0 0 2 + [40] .text.BT_Period_C PROGBITS 00006656 004656 000006 00 AX 0 0 2 + [41] .text.BT_ConfigIn PROGBITS 0000665c 00465c 000012 00 AX 0 0 2 + [42] .text.BT1_INT_ENA PROGBITS 00006670 004670 000010 00 AX 0 0 4 + [43] .text.UART0_DeIni PROGBITS 00006680 004680 000018 00 AX 0 0 4 + [44] .text.UART1_DeIni PROGBITS 00006698 004698 000018 00 AX 0 0 4 + [45] .text.UART2_DeIni PROGBITS 000066b0 0046b0 000018 00 AX 0 0 4 + [46] .text.UART0_Int_E PROGBITS 000066c8 0046c8 00001c 00 AX 0 0 4 + [47] .text.UART1_Int_E PROGBITS 000066e4 0046e4 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 00006700 004700 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 0000671c 00471c 0000ec 00 AX 0 0 4 + [50] .text.UARTInitRxT PROGBITS 00006808 004808 000010 00 AX 0 0 4 + [51] .text.UARTTransmi PROGBITS 00006818 004818 00001e 00 AX 0 0 2 + [52] .text.EPT_Stop PROGBITS 00006838 004838 000028 00 AX 0 0 4 + [53] .text.Page_Progra PROGBITS 00006860 004860 0000a0 00 AX 0 0 4 + [54] .text.ReadDataArr PROGBITS 00006900 004900 00002a 00 AX 0 0 2 + [55] .text.startup.mai PROGBITS 0000692c 00492c 000044 00 AX 0 0 4 + [56] .text.delay_nms PROGBITS 00006970 004970 00002c 00 AX 0 0 2 + [57] .text.delay_nus PROGBITS 0000699c 00499c 000022 00 AX 0 0 2 + [58] .text.BT_CONFIG PROGBITS 000069c0 0049c0 000060 00 AX 0 0 4 + [59] .text.SYSCON_CONF PROGBITS 00006a20 004a20 000062 00 AX 0 0 2 + [60] .text.APT32F102_i PROGBITS 00006a84 004a84 000078 00 AX 0 0 4 + [61] .text.SYSCONIntHa PROGBITS 00006afc 004afc 0000f0 00 AX 0 0 4 + [62] .text.IFCIntHandl PROGBITS 00006bec 004bec 000068 00 AX 0 0 4 + [63] .text.ADCIntHandl PROGBITS 00006c54 004c54 000068 00 AX 0 0 4 + [64] .text.EPT0IntHand PROGBITS 00006cbc 004cbc 0001ac 00 AX 0 0 4 + [65] .text.WWDTHandler PROGBITS 00006e68 004e68 000034 00 AX 0 0 4 + [66] .text.GPT0IntHand PROGBITS 00006e9c 004e9c 000080 00 AX 0 0 4 + [67] .text.RTCIntHandl PROGBITS 00006f1c 004f1c 000070 00 AX 0 0 4 + [68] .text.UART0IntHan PROGBITS 00006f8c 004f8c 000060 00 AX 0 0 4 + [69] .text.UART1IntHan PROGBITS 00006fec 004fec 000094 00 AX 0 0 4 + [70] .text.UART2IntHan PROGBITS 00007080 005080 000060 00 AX 0 0 4 + [71] .text.SPI0IntHand PROGBITS 000070e0 0050e0 0000e8 00 AX 0 0 4 + [72] .text.SIO0IntHand PROGBITS 000071c8 0051c8 000054 00 AX 0 0 4 + [73] .text.EXI0IntHand PROGBITS 0000721c 00521c 000030 00 AX 0 0 4 + [74] .text.EXI1IntHand PROGBITS 0000724c 00524c 000030 00 AX 0 0 4 + [75] .text.EXI2to3IntH PROGBITS 0000727c 00527c 000048 00 AX 0 0 4 + [76] .text.EXI4to9IntH PROGBITS 000072c4 0052c4 000020 00 AX 0 0 4 + [77] .text.EXI10to15In PROGBITS 000072e4 0052e4 00006c 00 AX 0 0 4 + [78] .text.LPTIntHandl PROGBITS 00007350 005350 000034 00 AX 0 0 4 + [79] .text.BT0IntHandl PROGBITS 00007384 005384 00004c 00 AX 0 0 4 + [80] .text.BT1IntHandl PROGBITS 000073d0 0053d0 000070 00 AX 0 0 4 + [81] .text.PriviledgeV PROGBITS 00007440 005440 000002 00 AX 0 0 2 + [82] .text.PendTrapHan PROGBITS 00007442 005442 000008 00 AX 0 0 2 + [83] .text.Trap3Handle PROGBITS 0000744a 00544a 000008 00 AX 0 0 2 + [84] .text.Trap2Handle PROGBITS 00007452 005452 000008 00 AX 0 0 2 + [85] .text.Trap1Handle PROGBITS 0000745a 00545a 000008 00 AX 0 0 2 + [86] .text.Trap0Handle PROGBITS 00007462 005462 000008 00 AX 0 0 2 + [87] .text.UnrecExecpH PROGBITS 0000746a 00546a 000008 00 AX 0 0 2 + [88] .text.BreakPointH PROGBITS 00007472 005472 000008 00 AX 0 0 2 + [89] .text.AccessErrHa PROGBITS 0000747a 00547a 000008 00 AX 0 0 2 + [90] .text.IllegalInst PROGBITS 00007482 005482 000008 00 AX 0 0 2 + [91] .text.MisalignedH PROGBITS 0000748a 00548a 000008 00 AX 0 0 2 + [92] .text.CNTAIntHand PROGBITS 00007492 005492 000008 00 AX 0 0 2 + [93] .text.I2CIntHandl PROGBITS 0000749a 00549a 000008 00 AX 0 0 2 + [94] .text.__divsi3 PROGBITS 000074a4 0054a4 000024 00 AX 0 0 4 + [95] .text.__udivsi3 PROGBITS 000074c8 0054c8 000024 00 AX 0 0 4 + [96] .text.__modsi3 PROGBITS 000074ec 0054ec 000024 00 AX 0 0 4 + [97] .text.__umodsi3 PROGBITS 00007510 005510 000024 00 AX 0 0 4 + [98] .text.CK_CPU_EnAl PROGBITS 00007534 005534 000006 00 AX 0 0 2 + [99] .text.CK_CPU_DisA PROGBITS 0000753a 00553a 000006 00 AX 0 0 2 + [100] .text.UARTx_Init PROGBITS 00007540 005540 000188 00 AX 0 0 4 + [101] .text.UART0_RecvI PROGBITS 000076c8 0056c8 000034 00 AX 0 0 4 + [102] .text.UART0_TASK PROGBITS 000076fc 0056fc 000060 00 AX 0 0 4 + [103] .text.UART1_RecvI PROGBITS 0000775c 00575c 000034 00 AX 0 0 4 + [104] .text.UART2_RecvI PROGBITS 00007790 005790 000034 00 AX 0 0 4 + [105] .text.MCU485_Send PROGBITS 000077c4 0057c4 000090 00 AX 0 0 4 + [106] .text.BUS485_Send PROGBITS 00007854 005854 0000c4 00 AX 0 0 4 + [107] .text.Set_GroupSe PROGBITS 00007918 005918 000064 00 AX 0 0 4 + [108] .text.Clear_SendF PROGBITS 0000797c 00597c 000010 00 AX 0 0 4 + [109] .text.BUS485_Jump PROGBITS 0000798c 00598c 00000c 00 AX 0 0 4 + [110] .text.BusIdle_Tas PROGBITS 00007998 005998 000040 00 AX 0 0 4 + [111] .text.BusBusy_Tas PROGBITS 000079d8 0059d8 00005c 00 AX 0 0 4 + [112] .text.Dbg_Println PROGBITS 00007a34 005a34 000080 00 AX 0 0 4 + [113] .text.MultSend_Ta PROGBITS 00007ab4 005ab4 0000a0 00 AX 0 0 4 + [114] .text.BUS485Send_ PROGBITS 00007b54 005b54 000068 00 AX 0 0 4 + [115] .text.Dbg_Print_B PROGBITS 00007bbc 005bbc 000084 00 AX 0 0 4 + [116] .text.UART1_TASK PROGBITS 00007c40 005c40 00008c 00 AX 0 0 4 + [117] .text.UART2_TASK PROGBITS 00007ccc 005ccc 00009c 00 AX 0 0 4 + [118] .text.Dbg_BT_Prin PROGBITS 00007d68 005d68 000060 00 AX 0 0 4 + [119] .text.DIP_GetSwit PROGBITS 00007dc8 005dc8 000034 00 AX 0 0 4 + [120] .text.DIP_Switch_ PROGBITS 00007dfc 005dfc 000094 00 AX 0 0 4 + [121] .text.DIP_ScanTas PROGBITS 00007e90 005e90 000098 00 AX 0 0 4 + [122] .text.EEPROM_Chec PROGBITS 00007f28 005f28 000016 00 AX 0 0 2 + [123] .text.EEOROM_ENER PROGBITS 00007f40 005f40 000150 00 AX 0 0 4 + [124] .text.EEOROM_ENER PROGBITS 00008090 006090 000044 00 AX 0 0 4 + [125] .text.EEPROM_ENER PROGBITS 000080d4 0060d4 00014c 00 AX 0 0 4 + [126] .text.EEPROM_Defa PROGBITS 00008220 006220 00012c 00 AX 0 0 4 + [127] .text.EEPROM_Read PROGBITS 0000834c 00634c 0000b8 00 AX 0 0 4 + [128] .text.EEPROM_Writ PROGBITS 00008404 006404 0000ac 00 AX 0 0 4 + [129] .text.EEPROM_Read PROGBITS 000084b0 0064b0 0000d4 00 AX 0 0 4 + [130] .text.EEPROM_Writ PROGBITS 00008584 006584 000040 00 AX 0 0 2 + [131] .text.EEPROM_Defa PROGBITS 000085c4 0065c4 000038 00 AX 0 0 4 + [132] .text.EEPROM_Vali PROGBITS 000085fc 0065fc 000058 00 AX 0 0 4 + [133] .text.EEPROM_Init PROGBITS 00008654 006654 000130 00 AX 0 0 4 + [134] .text.BT_Uart_Pac PROGBITS 00008784 006784 00003c 00 AX 0 0 4 + [135] .text.BLV_DetEner PROGBITS 000087c0 0067c0 000030 00 AX 0 0 4 + [136] .text.BLV_DetEner PROGBITS 000087f0 0067f0 0000b8 00 AX 0 0 4 + [137] .text.HLW8110_Che PROGBITS 000088a8 0068a8 000018 00 AX 0 0 2 + [138] .text.HLW8110_Wri PROGBITS 000088c0 0068c0 000054 00 AX 0 0 4 + [139] .text.HLW8110_Wri PROGBITS 00008914 006914 000054 00 AX 0 0 4 + [140] .text.HLW8110_Res PROGBITS 00008968 006968 000050 00 AX 0 0 4 + [141] .text.BLV_HLW8110 PROGBITS 000089b8 0069b8 00008c 00 AX 0 0 4 + [142] .text.HLW8110_RWC PROGBITS 00008a44 006a44 000074 00 AX 0 0 4 + [143] .text.HLW8110_Cle PROGBITS 00008ab8 006ab8 000010 00 AX 0 0 4 + [144] .text.Get_RevStat PROGBITS 00008ac8 006ac8 000018 00 AX 0 0 4 + [145] .text.Get_SendSta PROGBITS 00008ae0 006ae0 00001c 00 AX 0 0 4 + [146] .text.BLV_HLW8110 PROGBITS 00008afc 006afc 0001e4 00 AX 0 0 4 + [147] .text.HLW8110_Con PROGBITS 00008ce0 006ce0 00008c 00 AX 0 0 4 + [148] .text.HLW8110_Con PROGBITS 00008d6c 006d6c 00007c 00 AX 0 0 4 + [149] .text.HLW8110_Con PROGBITS 00008de8 006de8 000080 00 AX 0 0 4 + [150] .text.HLW8110_Con PROGBITS 00008e68 006e68 0000b0 00 AX 0 0 4 + [151] .text.HLW8110_Rec PROGBITS 00008f18 006f18 00025c 00 AX 0 0 4 + [152] .text.HLW8110_Sys PROGBITS 00009174 007174 000026 00 AX 0 0 2 + [153] .text.HLW8110_Rea PROGBITS 0000919c 00719c 000254 00 AX 0 0 4 + [154] .text.HLW8110_Rea PROGBITS 000093f0 0073f0 0000c8 00 AX 0 0 4 + [155] .text.GetEnergy_P PROGBITS 000094b8 0074b8 000064 00 AX 0 0 4 + [156] .text.HLW8110_Rea PROGBITS 0000951c 00751c 000158 00 AX 0 0 4 + [157] .text.BLV_HLW8110 PROGBITS 00009674 007674 000040 00 AX 0 0 4 + [158] .text.BT_Uart_Pac PROGBITS 000096b4 0076b4 00000c 00 AX 0 0 2 + [159] .text.BT_UART_Pri PROGBITS 000096c0 0076c0 000104 00 AX 0 0 4 + [160] .text.BLV_Energy_ PROGBITS 000097c4 0077c4 0000ec 00 AX 0 0 4 + [161] .text.BLV_Electri PROGBITS 000098b0 0078b0 0000b0 00 AX 0 0 4 + [162] .text.BLV_EngDete PROGBITS 00009960 007960 000014 00 AX 0 0 2 + [163] .text.BLV_Energy_ PROGBITS 00009974 007974 0000ec 00 AX 0 0 4 + [164] .text.BLV_Energy_ PROGBITS 00009a60 007a60 0000a0 00 AX 0 0 4 + [165] .text.BLV_Energy_ PROGBITS 00009b00 007b00 000098 00 AX 0 0 4 + [166] .text.SetCalibFac PROGBITS 00009b98 007b98 000030 00 AX 0 0 4 + [167] .text.BLV_Energy_ PROGBITS 00009bc8 007bc8 000084 00 AX 0 0 4 + [168] .text.BLV_Energy_ PROGBITS 00009c4c 007c4c 00007c 00 AX 0 0 4 + [169] .text.HLW_485Recv PROGBITS 00009cc8 007cc8 000160 00 AX 0 0 4 + [170] .text.BT_Recv_Pro PROGBITS 00009e28 007e28 000118 00 AX 0 0 4 + [171] .text.Boot_Functi PROGBITS 00009f40 007f40 0000c0 00 AX 0 0 4 + [172] .text.Boot_Comm_C PROGBITS 0000a000 008000 000024 00 AX 0 0 4 + [173] .text.Boot_Comm_F PROGBITS 0000a024 008024 00006c 00 AX 0 0 4 + [174] .text.Boot_Time_R PROGBITS 0000a090 008090 000014 00 AX 0 0 4 + [175] .text.Boot_Comm_U PROGBITS 0000a0a4 0080a4 00021c 00 AX 0 0 4 + [176] .text.TK_Sampling PROGBITS 0000a2c0 0082c0 000058 00 AX 0 0 4 + [177] .text.TKEYIntHand PROGBITS 0000a318 008318 000088 00 AX 0 0 4 + [178] .text.get_key_num PROGBITS 0000a3a0 0083a0 000028 00 AX 0 0 4 + [179] .text.TK_Scan_Sta PROGBITS 0000a3c8 0083c8 000020 00 AX 0 0 4 + [180] .text.TK_Keymap_p PROGBITS 0000a3e8 0083e8 000180 00 AX 0 0 4 + [181] .text.TK_overflow PROGBITS 0000a568 008568 00011c 00 AX 0 0 4 + [182] .text.TK_Baseline PROGBITS 0000a684 008684 0001d0 00 AX 0 0 4 + [183] .text.TK_result_p PROGBITS 0000a854 008854 000054 00 AX 0 0 4 + [184] .text.CORETHandle PROGBITS 0000a8a8 0088a8 000078 00 AX 0 0 4 + [185] .text.std_clk_cal PROGBITS 0000a920 008920 000284 00 AX 0 0 4 + [186] .RomCode PROGBITS 0000aba4 00b0bc 000000 00 W 0 0 1 + [187] .rodata PROGBITS 0000aba4 008ba4 0016e8 00 A 0 0 4 + [188] .data PROGBITS 20000000 00b000 00009c 00 WA 0 0 4 + [189] .textcsky.VinFlas PROGBITS 2000009c 00b09c 000020 00 WA 0 0 1 + [190] .bss NOBITS 200000bc 00b0bc 000a40 00 WA 0 0 4 + [191] .csky.attributes CSKY_ATTRIBUTES 00000000 00b0bc 000022 00 0 0 1 + [192] .comment PROGBITS 00000000 00b0de 000042 01 MS 0 0 1 + [193] .csky_stack_size PROGBITS 00000000 00b120 000aec 00 0 0 16 + [194] .debug_line PROGBITS 00000000 00bc0c 0043c6 00 0 0 1 + [195] .debug_info PROGBITS 00000000 00ffd2 0319a4 00 0 0 1 + [196] .debug_abbrev PROGBITS 00000000 041976 002d7e 00 0 0 1 + [197] .debug_aranges PROGBITS 00000000 0446f8 000d68 00 0 0 8 + [198] .debug_ranges PROGBITS 00000000 045460 000d80 00 0 0 1 + [199] .debug_str PROGBITS 00000000 0461e0 009119 01 MS 0 0 1 + [200] .debug_frame PROGBITS 00000000 04f2fc 002148 00 0 0 4 + [201] .debug_loc PROGBITS 00000000 051444 00325d 00 0 0 1 + [202] .shstrtab STRTAB 00000000 05b709 0011ef 00 0 0 1 + [203] .symtab SYMTAB 00000000 0546a4 005540 10 204 974 4 + [204] .strtab STRTAB 00000000 059be4 001b25 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x000000 0x00002000 0x00002000 0x0a28c 0x0a28c R E 0x1000 + LOAD 0x00b000 0x20000000 0x0000c28c 0x000bc 0x00afc RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .text.SYSCON_Software_Reset .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_DeInit .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.Page_ProgramData .text.ReadDataArry_U8 .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART0_RecvINT_Processing .text.UART0_TASK .text.UART1_RecvINT_Processing .text.UART2_RecvINT_Processing .text.MCU485_SendData .text.BUS485_Send .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.MultSend_Task .text.BUS485Send_Task .text.Dbg_Print_Buff .text.UART1_TASK .text.UART2_TASK .text.Dbg_BT_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.EEPROM_CheckSum .text.EEOROM_ENERGY_ReadSet .text.EEOROM_ENERGY_WriteSet .text.EEPROM_ENERGY_Validate .text.EEPROM_Default_ENERGY .text.EEPROM_ReadTotalEng .text.EEPROM_WriteTotalEng .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.BT_Uart_Packing.part.3 .text.BLV_DetEnergy_Init .text.BLV_DetEnergy_Default .text.HLW8110_CheckSum .text.HLW8110_WriteREG_EN .text.HLW8110_WriteREG_DIS .text.HLW8110_Reset .text.BLV_HLW8110_RWCMD_Packaging .text.HLW8110_RWCMD_Send .text.HLW8110_CleanSdFlag .text.Get_RevState .text.Get_SendState .text.BLV_HLW8110_SendData_Tack .text.HLW8110_Convert_CurrentRegA_Value .text.HLW8110_Convert_VoltageReg_Value .text.HLW8110_Convert_PowerReg_Value .text.HLW8110_Convert_EnergyReg_Value .text.HLW8110_RecvData_Processing .text.HLW8110_SysPara_Check .text.HLW8110_ReadSysPara .text.HLW8110_ReadSysCtrlPara .text.GetEnergy_Para .text.HLW8110_ReadValue .text.BLV_HLW8110_Tack .text.BT_Uart_Packing .text.BT_UART_Print .text.BLV_Energy_ActiveRep_Packing .text.BLV_ElectricPara_Processing .text.BLV_EngDetect_Tack .text.BLV_Energy_PassiveRep_Packing .text.BLV_Energy_SetTime_Packing .text.BLV_Energy_QueryVersion_Packing .text.SetCalibFactor_Switch .text.BLV_Energy_SetCalibFactor .text.BLV_Energy_SetCalibFactor_2 .text.HLW_485Recv_Processing .text.BT_Recv_Processing .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .textcsky.VinFlash .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Software_Reset) for SYSCON_Software_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DeInit) for GPIO_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART0IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART0_RecvINT_Processing) for UART0_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART0_TASK) for UART0_TASK + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.BUS485_Jump_Boot) for BUS485_Jump_Boot + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART1_TASK) for UART1_TASK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_TASK + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) for DIP_ScanTask + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) for EEOROM_ENERGY_ReadSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) for EEPROM_Default_ENERGY + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) for EEPROM_ReadTotalEng + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) for EEPROM_ReadMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) for EEPROM_Default_MCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) for BLV_DetEnergy_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) for BLV_DetEnergy_Default + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) for HLW8110_WriteREG_EN + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) for HLW8110_WriteREG_DIS + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) for HLW8110_Reset + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) for HLW8110_RWCMD_Send + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CleanSdFlag) for HLW8110_CleanSdFlag + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.Get_RevState) for Get_RevState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) for BLV_HLW8110_SendData_Tack + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) for HLW8110_Convert_CurrentRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) for HLW8110_Convert_VoltageReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) for HLW8110_Convert_PowerReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) for HLW8110_Convert_EnergyReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_SysPara_Check) for HLW8110_SysPara_Check + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) for HLW8110_ReadSysPara + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) for HLW8110_ReadSysCtrlPara + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) for GetEnergy_Para + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) for HLW8110_ReadValue + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) for BLV_HLW8110_Tack + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) for BT_UART_Print + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) for BLV_Energy_ActiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) for BLV_ElectricPara_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) for BLV_EngDetect_Tack + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) for BLV_Energy_PassiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) for BLV_Energy_SetCalibFactor + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) for BLV_Energy_SetCalibFactor_2 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) for Boot_Function_Init + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) for Boot_Comm_FillReplyPack + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Time_Refresh) for Boot_Time_Refresh + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _addsub_sf.o(.text) for __addsf3 + _fixunssfsi.o(.text) refers to _addsub_sf.o(.text) for __subsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _ne_sf.o(.text) for __nesf2 + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to _ne_sf.o(.text) for __nesf2 + _fixunssfsi.o(.text) refers to _ge_sf.o(.text) for __gesf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _si_to_sf.o(.text) for __floatsisf + _fixunssfsi.o(.text) refers to _sf_to_si.o(.text) for __fixsfsi + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_sf.o(.text) refers to _muldi3.o(.text) for __muldi3 + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_sf.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _mul_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _si_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _make_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _mul_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _div_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ge_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_si.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_df.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _ge_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _df_to_sf.o(.text) refers to _make_sf.o(.text) for __make_fp + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _make_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_sf.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_ActiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.3) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to strncmp.o(.text) for strncmp + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2907 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3101 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3418 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3163 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_IO_Init(Obj/FWlib_apt32f102_gpt.o), (160 bytes). + Removing .text.GPT_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveCtrl_Configure(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_WaveLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveOut_Configure(Obj/FWlib_apt32f102_gpt.o), (180 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Start(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Period_CMP_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_gpt.o), (28 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_gpt.o), (11442 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_gpt.o), (562 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_gpt.o), (2212 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_gpt.o), (256 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_gpt.o), (240 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_gpt.o), (754 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_gpt.o), (8026 bytes). + Removing .comment(Obj/FWlib_apt32f102_gpt.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_gpt.o), (616 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4131 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3534 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3650 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4850 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4958 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2856 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .bss(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (116 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ReadPara(Obj/SYSTEM_eeprom.o), (128 bytes). + Removing .text.EEPROM_ValidateWrite(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_WritePara(Obj/SYSTEM_eeprom.o), (104 bytes). + Removing .text(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .data(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .text.HLW8110_ToWaitState(Obj/SYSTEM_det_energy.o), (24 bytes). + Removing .text(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .text.NetCRC16(Obj/SYSTEM_Bootload_fun.o), (60 bytes). + Removing .text.APP_Flash_AllEase(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.MCU_EEPROM_AllEase(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing .text.APP_FEATURE_Flash_Ease(Obj/SYSTEM_Bootload_fun.o), (12 bytes). + Removing .text.Boot_TimeOut_Task(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Jump_To_APP(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Check_APP_Feature(Obj/SYSTEM_Bootload_fun.o), (456 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (121 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.o), (0 bytes). + Removing .data(_fixunssfsi.o), (0 bytes). + Removing .bss(_fixunssfsi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_sf.o), (0 bytes). + Removing .bss(_addsub_sf.o), (0 bytes). + Removing .data(_mul_sf.o), (0 bytes). + Removing .bss(_mul_sf.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.o), (0 bytes). + Removing .data(_ne_sf.o), (0 bytes). + Removing .bss(_ne_sf.o), (0 bytes). + Removing .data(_ge_sf.o), (0 bytes). + Removing .bss(_ge_sf.o), (0 bytes). + Removing .data(_si_to_sf.o), (0 bytes). + Removing .bss(_si_to_sf.o), (0 bytes). + Removing .data(_sf_to_si.o), (0 bytes). + Removing .bss(_sf_to_si.o), (0 bytes). + Removing .data(_sf_to_df.o), (0 bytes). + Removing .bss(_sf_to_df.o), (0 bytes). + Removing .text(_thenan_sf.o), (0 bytes). + Removing .data(_thenan_sf.o), (0 bytes). + Removing .bss(_thenan_sf.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .data(_make_df.o), (0 bytes). + Removing .bss(_make_df.o), (0 bytes). + Removing .data(_df_to_sf.o), (0 bytes). + Removing .bss(_df_to_sf.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_sf.o), (0 bytes). + Removing .bss(_pack_sf.o), (0 bytes). + Removing .data(_unpack_sf.o), (0 bytes). + Removing .bss(_unpack_sf.o), (0 bytes). + Removing .data(_fpcmp_parts_sf.o), (0 bytes). + Removing .bss(_fpcmp_parts_sf.o), (0 bytes). + Removing .data(_make_sf.o), (0 bytes). + Removing .bss(_make_sf.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +690 unused seciton(s) (total 184135 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ifc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_Bootload_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_det_energy.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _addsub_sf.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uhi.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_sf.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _div_sf.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fixunssfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _fpcmp_parts_sf.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _ge_sf.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _make_df.o 0x00000000 df 0 *ABS* + _make_sf.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _mul_sf.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _ne_sf.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _sf_to_si.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _si_to_sf.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _unpack_sf.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + strncmp.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00002800 0 .text + $t 0x0000290c 0 .text + INIT_KERLE_STACK 0x0000293e 0 .text + __to_main 0x00002946 0 .text + __dummy 0x00002982 0 .text + $d 0x00002986 0 .text + $d 0x000029b4 0 .text + $t 0x000029b4 0 .text + $d 0x00002d78 0 .text + $t 0x00002de0 0 .text + $d 0x000032a8 0 .text + $t 0x00003358 0 .text + $d 0x0000335e 0 .text + $t 0x0000335e 0 .text + $d 0x00003364 0 .text + $t 0x00003364 0 .text + $d 0x00003380 0 .text + $d 0x00003384 0 .text + $t 0x00003384 0 .text + $d 0x000034f0 0 .text + $d 0x000034fc 0 .text + $t 0x000034fc 0 .text + $d 0x00003510 0 .text + $t 0x00003510 0 .text + $d 0x0000352c 0 .text + $t 0x0000352c 0 .text + $d 0x0000355c 0 .text + $t 0x0000355c 0 .text + $d 0x00003590 0 .text + _fpadd_parts 0x00003594 F 332 .text + $d 0x00003594 0 .text + $t 0x00003594 0 .text + $d 0x000036d8 0 .text + $t 0x000036e0 0 .text + $d 0x00003740 0 .text + $t 0x00003740 0 .text + $d 0x00003850 0 .text + $d 0x00003858 0 .text + $t 0x00003858 0 .text + $d 0x00003910 0 .text + $d 0x00003914 0 .text + $t 0x00003914 0 .text + $d 0x0000394c 0 .text + $t 0x0000394c 0 .text + $d 0x00003984 0 .text + $t 0x00003984 0 .text + $d 0x000039e8 0 .text + $t 0x000039e8 0 .text + $d 0x00003a38 0 .text + $d 0x00003a3c 0 .text + $t 0x00003a3c 0 .text + _fpadd_parts 0x00003a60 F 724 .text + $d 0x00003a60 0 .text + $t 0x00003a60 0 .text + $d 0x00003d28 0 .text + $t 0x00003d34 0 .text + $d 0x00003d9c 0 .text + $t 0x00003d9c 0 .text + $d 0x00003fc4 0 .text + $d 0x00003fd0 0 .text + $t 0x00003fd0 0 .text + $d 0x00004120 0 .text + $d 0x00004124 0 .text + $t 0x00004124 0 .text + $d 0x00004160 0 .text + $t 0x00004160 0 .text + $d 0x0000419c 0 .text + $t 0x0000419c 0 .text + $d 0x000041d8 0 .text + $t 0x000041d8 0 .text + $d 0x00004244 0 .text + $d 0x00004248 0 .text + $t 0x00004248 0 .text + $d 0x000042b4 0 .text + $d 0x000042b8 0 .text + $t 0x000042b8 0 .text + $d 0x000042e0 0 .text + $t 0x000042e0 0 .text + $d 0x00004310 0 .text + $t 0x00004310 0 .text + $d 0x00004364 0 .text + $t 0x00004364 0 .text + $d 0x000043a8 0 .text + $t 0x000043a8 0 .text + $d 0x000043dc 0 .text + $d 0x000043e8 0 .text + $t 0x000043e8 0 .text + $d 0x0000449c 0 .text + $d 0x000044a0 0 .text + $t 0x000044a0 0 .text + $d 0x0000451c 0 .text + $d 0x00004524 0 .text + $t 0x00004524 0 .text + $d 0x0000459c 0 .text + $t 0x0000459c 0 .text + $d 0x000045b4 0 .text + $t 0x000045b4 0 .text + $d 0x0000473c 0 .text + $d 0x00004750 0 .text + $t 0x00004750 0 .text + $d 0x00004808 0 .text + $d 0x00004814 0 .text + $t 0x00004814 0 .text + $d 0x000048a0 0 .text + $t 0x000048a0 0 .text + swrite 0x000048c0 F 62 .text + $d 0x000048c0 0 .text + $t 0x000048c0 0 .text + $d 0x00004954 0 .text + $d 0x00004958 0 .text + $t 0x00004958 0 .text + $d 0x000049e0 0 .text + $t 0x000049e0 0 .text + $d 0x00004a44 0 .text + $t 0x00004a44 0 .text + PAD.1851 0x00004a6c F 52 .text + $d 0x00004a6c 0 .text + $t 0x00004a6c 0 .text + $d 0x00005014 0 .text + $t 0x00005020 0 .text + $d 0x000051bc 0 .text + $d 0x000051c4 0 .text + $t 0x000051c4 0 .text + $d 0x00005564 0 .text + $d 0x00005570 0 .text + $t 0x00005570 0 .text + $d 0x00005904 0 .text + copystring 0x00005910 F 38 .text + $d 0x00005910 0 .text + $t 0x00005910 0 .text + $d 0x00005c3c 0 .text + $d 0x00005c70 0 .text + $t 0x00005c70 0 .text + $d 0x00005c98 0 .text + $d 0x00005c9c 0 .text + $t 0x00005c9c 0 .text + $d 0x00005cf0 0 .text + $t 0x00005cf0 0 .text + $d 0x00005da0 0 .text + $t 0x00005da0 0 .text + $d 0x00005db4 0 .text + $t 0x00005db4 0 .text + $d 0x00005dc8 0 .text + $d 0x00005dd0 0 .text + $t 0x00005dd0 0 .text + $d 0x00005df8 0 .text + $d 0x00005e00 0 .text + $t 0x00005e00 0 .text + $d 0x00005e3c 0 .text + $t 0x00005e3c 0 .text + $d 0x00005e78 0 .text.__main + $t 0x00005e78 0 .text.__main + $d 0x00005e9c 0 .text.__main + SYSCON_General_CMD.part.0 0x00005eb0 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $t 0x00005eb0 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f1c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f24 0 .text.SYSCON_RST_VALUE + $t 0x00005f24 0 .text.SYSCON_RST_VALUE + $d 0x00005f54 0 .text.SYSCON_RST_VALUE + $d 0x00005f70 0 .text.SYSCON_General_CMD + $t 0x00005f70 0 .text.SYSCON_General_CMD + $d 0x00005f9c 0 .text.SYSCON_General_CMD + $d 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00005fa0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006018 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00006028 0 .text.SYSCON_HFOSC_SELECTE + $d 0x0000604c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00006050 0 .text.SYSCON_WDT_CMD + $t 0x00006050 0 .text.SYSCON_WDT_CMD + $d 0x00006080 0 .text.SYSCON_WDT_CMD + $d 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $t 0x0000608c 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000609c 0 .text.SYSCON_IWDCNT_Reload + $d 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $t 0x000060a0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b0 0 .text.SYSCON_IWDCNT_Config + $d 0x000060b8 0 .text.SYSCON_LVD_Config + $t 0x000060b8 0 .text.SYSCON_LVD_Config + $d 0x000060d0 0 .text.SYSCON_LVD_Config + $d 0x000060d8 0 .text.LVD_Int_Enable + $t 0x000060d8 0 .text.LVD_Int_Enable + $d 0x000060f0 0 .text.LVD_Int_Enable + $d 0x000060f4 0 .text.IWDT_Int_Enable + $t 0x000060f4 0 .text.IWDT_Int_Enable + $d 0x0000610c 0 .text.IWDT_Int_Enable + $d 0x00006110 0 .text.EXTI_trigger_CMD + $t 0x00006110 0 .text.EXTI_trigger_CMD + $d 0x0000614c 0 .text.EXTI_trigger_CMD + $d 0x00006150 0 .text.EXTI_interrupt_CMD + $t 0x00006150 0 .text.EXTI_interrupt_CMD + $d 0x0000617c 0 .text.EXTI_interrupt_CMD + $d 0x00006184 0 .text.GPIO_EXTI_interrupt + $t 0x00006184 0 .text.GPIO_EXTI_interrupt + $d 0x00006188 0 .text.EXI4_Int_Enable + $t 0x00006188 0 .text.EXI4_Int_Enable + $d 0x00006194 0 .text.EXI4_Int_Enable + $d 0x00006198 0 .text.SYSCON_Int_Enable + $t 0x00006198 0 .text.SYSCON_Int_Enable + $d 0x000061a0 0 .text.SYSCON_Int_Enable + $d 0x000061a4 0 .text.SYSCON_Int_Disable + $t 0x000061a4 0 .text.SYSCON_Int_Disable + $d 0x000061ac 0 .text.SYSCON_Int_Disable + $d 0x000061b0 0 .text.SYSCON_Software_Reset + $t 0x000061b0 0 .text.SYSCON_Software_Reset + $d 0x000061bc 0 .text.SYSCON_Software_Reset + $d 0x000061c4 0 .text.SYSCON_INT_Priority + $t 0x000061c4 0 .text.SYSCON_INT_Priority + $d 0x000061dc 0 .text.SYSCON_INT_Priority + $d 0x000061e8 0 .text.Set_INT_Priority + $t 0x000061e8 0 .text.Set_INT_Priority + $d 0x00006214 0 .text.Set_INT_Priority + $d 0x00006218 0 .text.GPIO_DeInit + $t 0x00006218 0 .text.GPIO_DeInit + $d 0x0000626c 0 .text.GPIO_DeInit + $d 0x0000627c 0 .text.GPIO_Init + $t 0x0000627c 0 .text.GPIO_Init + $d 0x0000628e 0 .text.GPIO_Init + $t 0x00006296 0 .text.GPIO_Init + $d 0x000062f2 0 .text.GPIO_Init + $t 0x000062fa 0 .text.GPIO_Init + $d 0x00006348 0 .text.GPIO_Init + $d 0x0000635c 0 .text.GPIO_PullHigh_Init + $t 0x0000635c 0 .text.GPIO_PullHigh_Init + $d 0x00006370 0 .text.GPIO_DriveStrength_EN + $t 0x00006370 0 .text.GPIO_DriveStrength_EN + $d 0x00006380 0 .text.GPIO_IntGroup_Set + $t 0x00006380 0 .text.GPIO_IntGroup_Set + $d 0x00006474 0 .text.GPIO_IntGroup_Set + $d 0x0000648c 0 .text.GPIOA0_EXI_Init + $t 0x0000648c 0 .text.GPIOA0_EXI_Init + $d 0x00006498 0 .text.GPIOA0_EXI_Init + $t 0x000064a8 0 .text.GPIOA0_EXI_Init + $d 0x00006584 0 .text.GPIOA0_EXI_Init + $d 0x00006588 0 .text.GPIO_Write_High + $t 0x00006588 0 .text.GPIO_Write_High + $d 0x00006590 0 .text.GPIO_Write_Low + $t 0x00006590 0 .text.GPIO_Write_Low + $d 0x00006598 0 .text.GPIO_Reverse + $t 0x00006598 0 .text.GPIO_Reverse + $d 0x000065ae 0 .text.GPIO_Read_Status + $t 0x000065ae 0 .text.GPIO_Read_Status + $d 0x000065c0 0 .text.LPT_Soft_Reset + $t 0x000065c0 0 .text.LPT_Soft_Reset + $d 0x000065d0 0 .text.LPT_Soft_Reset + $d 0x000065d4 0 .text.WWDT_CNT_Load + $t 0x000065d4 0 .text.WWDT_CNT_Load + $d 0x000065e0 0 .text.WWDT_CNT_Load + $d 0x000065e4 0 .text.BT_DeInit + $t 0x000065e4 0 .text.BT_DeInit + $d 0x00006600 0 .text.BT_Start + $t 0x00006600 0 .text.BT_Start + $d 0x00006608 0 .text.BT_Soft_Reset + $t 0x00006608 0 .text.BT_Soft_Reset + $d 0x00006612 0 .text.BT_Configure + $t 0x00006612 0 .text.BT_Configure + $d 0x0000662a 0 .text.BT_ControlSet_Configure + $t 0x0000662a 0 .text.BT_ControlSet_Configure + $d 0x00006656 0 .text.BT_Period_CMP_Write + $t 0x00006656 0 .text.BT_Period_CMP_Write + $d 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $t 0x0000665c 0 .text.BT_ConfigInterrupt_CMD + $d 0x00006670 0 .text.BT1_INT_ENABLE + $t 0x00006670 0 .text.BT1_INT_ENABLE + $d 0x0000667c 0 .text.BT1_INT_ENABLE + $d 0x00006680 0 .text.UART0_DeInit + $t 0x00006680 0 .text.UART0_DeInit + $d 0x00006694 0 .text.UART0_DeInit + $d 0x00006698 0 .text.UART1_DeInit + $t 0x00006698 0 .text.UART1_DeInit + $d 0x000066ac 0 .text.UART1_DeInit + $d 0x000066b0 0 .text.UART2_DeInit + $t 0x000066b0 0 .text.UART2_DeInit + $d 0x000066c4 0 .text.UART2_DeInit + $d 0x000066c8 0 .text.UART0_Int_Enable + $t 0x000066c8 0 .text.UART0_Int_Enable + $d 0x000066dc 0 .text.UART0_Int_Enable + $d 0x000066e4 0 .text.UART1_Int_Enable + $t 0x000066e4 0 .text.UART1_Int_Enable + $d 0x000066f8 0 .text.UART1_Int_Enable + $d 0x00006700 0 .text.UART2_Int_Enable + $t 0x00006700 0 .text.UART2_Int_Enable + $d 0x00006714 0 .text.UART2_Int_Enable + $d 0x0000671c 0 .text.UART_IO_Init + $t 0x0000671c 0 .text.UART_IO_Init + $d 0x00006800 0 .text.UART_IO_Init + $d 0x00006808 0 .text.UARTInitRxTxIntEn + $t 0x00006808 0 .text.UARTInitRxTxIntEn + $d 0x00006814 0 .text.UARTInitRxTxIntEn + $d 0x00006818 0 .text.UARTTransmit + $t 0x00006818 0 .text.UARTTransmit + $d 0x00006838 0 .text.EPT_Stop + $t 0x00006838 0 .text.EPT_Stop + $d 0x00006858 0 .text.EPT_Stop + $d 0x00006860 0 .text.Page_ProgramData + $t 0x00006860 0 .text.Page_ProgramData + $d 0x000068f8 0 .text.Page_ProgramData + $d 0x00006900 0 .text.ReadDataArry_U8 + $t 0x00006900 0 .text.ReadDataArry_U8 + $d 0x0000692c 0 .text.startup.main + $t 0x0000692c 0 .text.startup.main + $d 0x00006964 0 .text.startup.main + $d 0x00006970 0 .text.delay_nms + $t 0x00006970 0 .text.delay_nms + $d 0x0000699c 0 .text.delay_nus + $t 0x0000699c 0 .text.delay_nus + $d 0x000069c0 0 .text.BT_CONFIG + $t 0x000069c0 0 .text.BT_CONFIG + $d 0x00006a18 0 .text.BT_CONFIG + $d 0x00006a20 0 .text.SYSCON_CONFIG + $t 0x00006a20 0 .text.SYSCON_CONFIG + $d 0x00006a84 0 .text.APT32F102_init + $t 0x00006a84 0 .text.APT32F102_init + $d 0x00006ae8 0 .text.APT32F102_init + $d 0x00006afc 0 .text.SYSCONIntHandler + $t 0x00006afc 0 .text.SYSCONIntHandler + $d 0x00006be8 0 .text.SYSCONIntHandler + $d 0x00006bec 0 .text.IFCIntHandler + $t 0x00006bec 0 .text.IFCIntHandler + $d 0x00006c50 0 .text.IFCIntHandler + $d 0x00006c54 0 .text.ADCIntHandler + $t 0x00006c54 0 .text.ADCIntHandler + $d 0x00006cb8 0 .text.ADCIntHandler + $d 0x00006cbc 0 .text.EPT0IntHandler + $t 0x00006cbc 0 .text.EPT0IntHandler + $d 0x00006e5c 0 .text.EPT0IntHandler + $d 0x00006e68 0 .text.WWDTHandler + $t 0x00006e68 0 .text.WWDTHandler + $d 0x00006e98 0 .text.WWDTHandler + $d 0x00006e9c 0 .text.GPT0IntHandler + $t 0x00006e9c 0 .text.GPT0IntHandler + $d 0x00006f18 0 .text.GPT0IntHandler + $d 0x00006f1c 0 .text.RTCIntHandler + $t 0x00006f1c 0 .text.RTCIntHandler + $d 0x00006f84 0 .text.RTCIntHandler + $d 0x00006f8c 0 .text.UART0IntHandler + $t 0x00006f8c 0 .text.UART0IntHandler + $d 0x00006fe8 0 .text.UART0IntHandler + $d 0x00006fec 0 .text.UART1IntHandler + $t 0x00006fec 0 .text.UART1IntHandler + $d 0x0000706c 0 .text.UART1IntHandler + $d 0x00007080 0 .text.UART2IntHandler + $t 0x00007080 0 .text.UART2IntHandler + $d 0x000070dc 0 .text.UART2IntHandler + $d 0x000070e0 0 .text.SPI0IntHandler + $t 0x000070e0 0 .text.SPI0IntHandler + $d 0x000071c4 0 .text.SPI0IntHandler + $d 0x000071c8 0 .text.SIO0IntHandler + $t 0x000071c8 0 .text.SIO0IntHandler + $d 0x00007218 0 .text.SIO0IntHandler + $d 0x0000721c 0 .text.EXI0IntHandler + $t 0x0000721c 0 .text.EXI0IntHandler + $d 0x00007248 0 .text.EXI0IntHandler + $d 0x0000724c 0 .text.EXI1IntHandler + $t 0x0000724c 0 .text.EXI1IntHandler + $d 0x00007278 0 .text.EXI1IntHandler + $d 0x0000727c 0 .text.EXI2to3IntHandler + $t 0x0000727c 0 .text.EXI2to3IntHandler + $d 0x000072c0 0 .text.EXI2to3IntHandler + $d 0x000072c4 0 .text.EXI4to9IntHandler + $t 0x000072c4 0 .text.EXI4to9IntHandler + $d 0x000072e0 0 .text.EXI4to9IntHandler + $d 0x000072e4 0 .text.EXI10to15IntHandler + $t 0x000072e4 0 .text.EXI10to15IntHandler + $d 0x0000734c 0 .text.EXI10to15IntHandler + $d 0x00007350 0 .text.LPTIntHandler + $t 0x00007350 0 .text.LPTIntHandler + $d 0x00007380 0 .text.LPTIntHandler + $d 0x00007384 0 .text.BT0IntHandler + $t 0x00007384 0 .text.BT0IntHandler + $d 0x000073cc 0 .text.BT0IntHandler + $d 0x000073d0 0 .text.BT1IntHandler + $t 0x000073d0 0 .text.BT1IntHandler + $d 0x00007438 0 .text.BT1IntHandler + $d 0x00007440 0 .text.PriviledgeVioHandler + $t 0x00007440 0 .text.PriviledgeVioHandler + $d 0x00007442 0 .text.PendTrapHandler + $t 0x00007442 0 .text.PendTrapHandler + $d 0x0000744a 0 .text.Trap3Handler + $t 0x0000744a 0 .text.Trap3Handler + $d 0x00007452 0 .text.Trap2Handler + $t 0x00007452 0 .text.Trap2Handler + $d 0x0000745a 0 .text.Trap1Handler + $t 0x0000745a 0 .text.Trap1Handler + $d 0x00007462 0 .text.Trap0Handler + $t 0x00007462 0 .text.Trap0Handler + $d 0x0000746a 0 .text.UnrecExecpHandler + $t 0x0000746a 0 .text.UnrecExecpHandler + $d 0x00007472 0 .text.BreakPointHandler + $t 0x00007472 0 .text.BreakPointHandler + $d 0x0000747a 0 .text.AccessErrHandler + $t 0x0000747a 0 .text.AccessErrHandler + $d 0x00007482 0 .text.IllegalInstrHandler + $t 0x00007482 0 .text.IllegalInstrHandler + $d 0x0000748a 0 .text.MisalignedHandler + $t 0x0000748a 0 .text.MisalignedHandler + $d 0x00007492 0 .text.CNTAIntHandler + $t 0x00007492 0 .text.CNTAIntHandler + $d 0x0000749a 0 .text.I2CIntHandler + $t 0x0000749a 0 .text.I2CIntHandler + $d 0x000074a4 0 .text.__divsi3 + $t 0x000074a4 0 .text.__divsi3 + $d 0x000074c4 0 .text.__divsi3 + $d 0x000074c8 0 .text.__udivsi3 + $t 0x000074c8 0 .text.__udivsi3 + $d 0x000074e8 0 .text.__udivsi3 + $d 0x000074ec 0 .text.__modsi3 + $t 0x000074ec 0 .text.__modsi3 + $d 0x0000750c 0 .text.__modsi3 + $d 0x00007510 0 .text.__umodsi3 + $t 0x00007510 0 .text.__umodsi3 + $d 0x00007530 0 .text.__umodsi3 + $d 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00007534 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000753a 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00007540 0 .text.UARTx_Init + $t 0x00007540 0 .text.UARTx_Init + $d 0x00007694 0 .text.UARTx_Init + $d 0x000076c8 0 .text.UART0_RecvINT_Processing + $t 0x000076c8 0 .text.UART0_RecvINT_Processing + $d 0x000076f0 0 .text.UART0_RecvINT_Processing + $d 0x000076fc 0 .text.UART0_TASK + $t 0x000076fc 0 .text.UART0_TASK + $d 0x0000774c 0 .text.UART0_TASK + $d 0x0000775c 0 .text.UART1_RecvINT_Processing + $t 0x0000775c 0 .text.UART1_RecvINT_Processing + $d 0x00007784 0 .text.UART1_RecvINT_Processing + $d 0x00007790 0 .text.UART2_RecvINT_Processing + $t 0x00007790 0 .text.UART2_RecvINT_Processing + $d 0x000077b8 0 .text.UART2_RecvINT_Processing + $d 0x000077c4 0 .text.MCU485_SendData + $t 0x000077c4 0 .text.MCU485_SendData + $d 0x00007848 0 .text.MCU485_SendData + $d 0x00007854 0 .text.BUS485_Send + $t 0x00007854 0 .text.BUS485_Send + $d 0x00007900 0 .text.BUS485_Send + $d 0x00007918 0 .text.Set_GroupSend + $t 0x00007918 0 .text.Set_GroupSend + $d 0x00007974 0 .text.Set_GroupSend + $d 0x0000797c 0 .text.Clear_SendFlag + $t 0x0000797c 0 .text.Clear_SendFlag + $d 0x00007988 0 .text.Clear_SendFlag + $d 0x0000798c 0 .text.BUS485_Jump_Boot + $t 0x0000798c 0 .text.BUS485_Jump_Boot + $d 0x00007994 0 .text.BUS485_Jump_Boot + $d 0x00007998 0 .text.BusIdle_Task + $t 0x00007998 0 .text.BusIdle_Task + $d 0x000079d0 0 .text.BusIdle_Task + $d 0x000079d8 0 .text.BusBusy_Task + $t 0x000079d8 0 .text.BusBusy_Task + $d 0x00007a28 0 .text.BusBusy_Task + $d 0x00007a34 0 .text.Dbg_Println + $t 0x00007a34 0 .text.Dbg_Println + $d 0x00007aa4 0 .text.Dbg_Println + $d 0x00007ab4 0 .text.MultSend_Task + $t 0x00007ab4 0 .text.MultSend_Task + $d 0x00007b40 0 .text.MultSend_Task + $d 0x00007b54 0 .text.BUS485Send_Task + $t 0x00007b54 0 .text.BUS485Send_Task + $d 0x00007ba0 0 .text.BUS485Send_Task + $d 0x00007bbc 0 .text.Dbg_Print_Buff + $t 0x00007bbc 0 .text.Dbg_Print_Buff + $d 0x00007c2c 0 .text.Dbg_Print_Buff + $d 0x00007c40 0 .text.UART1_TASK + $t 0x00007c40 0 .text.UART1_TASK + $d 0x00007cb4 0 .text.UART1_TASK + $d 0x00007ccc 0 .text.UART2_TASK + $t 0x00007ccc 0 .text.UART2_TASK + $d 0x00007d4c 0 .text.UART2_TASK + $d 0x00007d68 0 .text.Dbg_BT_Println + $t 0x00007d68 0 .text.Dbg_BT_Println + $d 0x00007dbc 0 .text.Dbg_BT_Println + $d 0x00007dc8 0 .text.DIP_GetSwitchState + $t 0x00007dc8 0 .text.DIP_GetSwitchState + $d 0x00007df8 0 .text.DIP_GetSwitchState + $d 0x00007dfc 0 .text.DIP_Switch_Init + $t 0x00007dfc 0 .text.DIP_Switch_Init + $d 0x00007e84 0 .text.DIP_Switch_Init + $d 0x00007e90 0 .text.DIP_ScanTask + $t 0x00007e90 0 .text.DIP_ScanTask + $d 0x00007f18 0 .text.DIP_ScanTask + $d 0x00007f28 0 .text.EEPROM_CheckSum + $t 0x00007f28 0 .text.EEPROM_CheckSum + $d 0x00007f40 0 .text.EEOROM_ENERGY_ReadSet + $t 0x00007f40 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008058 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008090 0 .text.EEOROM_ENERGY_WriteSet + $t 0x00008090 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080d0 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080d4 0 .text.EEPROM_ENERGY_Validate + $t 0x000080d4 0 .text.EEPROM_ENERGY_Validate + $d 0x000081f8 0 .text.EEPROM_ENERGY_Validate + $d 0x00008220 0 .text.EEPROM_Default_ENERGY + $t 0x00008220 0 .text.EEPROM_Default_ENERGY + $d 0x00008308 0 .text.EEPROM_Default_ENERGY + $d 0x0000834c 0 .text.EEPROM_ReadTotalEng + $t 0x0000834c 0 .text.EEPROM_ReadTotalEng + $d 0x000083f0 0 .text.EEPROM_ReadTotalEng + $d 0x00008404 0 .text.EEPROM_WriteTotalEng + $t 0x00008404 0 .text.EEPROM_WriteTotalEng + $d 0x000084a4 0 .text.EEPROM_WriteTotalEng + $d 0x000084b0 0 .text.EEPROM_ReadMCUDevInfo + $t 0x000084b0 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008564 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008584 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00008584 0 .text.EEPROM_WriteMCUDevInfo + $d 0x000085c4 0 .text.EEPROM_Default_MCUDevInfo + $t 0x000085c4 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000085f8 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000085fc 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x000085fc 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008650 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008654 0 .text.EEPROM_Init + $t 0x00008654 0 .text.EEPROM_Init + $d 0x00008740 0 .text.EEPROM_Init + BT_Uart_Packing.part.3 0x00008784 F 60 .text.BT_Uart_Packing.part.3 + $d 0x00008784 0 .text.BT_Uart_Packing.part.3 + $t 0x00008784 0 .text.BT_Uart_Packing.part.3 + $d 0x000087b8 0 .text.BT_Uart_Packing.part.3 + $d 0x000087c0 0 .text.BLV_DetEnergy_Init + $t 0x000087c0 0 .text.BLV_DetEnergy_Init + $d 0x000087e4 0 .text.BLV_DetEnergy_Init + $d 0x000087f0 0 .text.BLV_DetEnergy_Default + $t 0x000087f0 0 .text.BLV_DetEnergy_Default + $d 0x00008898 0 .text.BLV_DetEnergy_Default + $d 0x000088a8 0 .text.HLW8110_CheckSum + $t 0x000088a8 0 .text.HLW8110_CheckSum + $d 0x000088c0 0 .text.HLW8110_WriteREG_EN + $t 0x000088c0 0 .text.HLW8110_WriteREG_EN + $d 0x0000890c 0 .text.HLW8110_WriteREG_EN + $d 0x00008914 0 .text.HLW8110_WriteREG_DIS + $t 0x00008914 0 .text.HLW8110_WriteREG_DIS + $d 0x00008960 0 .text.HLW8110_WriteREG_DIS + $d 0x00008968 0 .text.HLW8110_Reset + $t 0x00008968 0 .text.HLW8110_Reset + $d 0x000089b0 0 .text.HLW8110_Reset + $d 0x000089b8 0 .text.BLV_HLW8110_RWCMD_Packaging + $t 0x000089b8 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a40 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x00008a44 0 .text.HLW8110_RWCMD_Send + $t 0x00008a44 0 .text.HLW8110_RWCMD_Send + $d 0x00008aa4 0 .text.HLW8110_RWCMD_Send + $d 0x00008ab8 0 .text.HLW8110_CleanSdFlag + $t 0x00008ab8 0 .text.HLW8110_CleanSdFlag + $d 0x00008ac4 0 .text.HLW8110_CleanSdFlag + $d 0x00008ac8 0 .text.Get_RevState + $t 0x00008ac8 0 .text.Get_RevState + $d 0x00008adc 0 .text.Get_RevState + $d 0x00008ae0 0 .text.Get_SendState + $t 0x00008ae0 0 .text.Get_SendState + $d 0x00008af8 0 .text.Get_SendState + $d 0x00008afc 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008afc 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008b0e 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008b20 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008cc8 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008ce0 0 .text.HLW8110_Convert_CurrentRegA_Value + $t 0x00008ce0 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d58 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008d6c 0 .text.HLW8110_Convert_VoltageReg_Value + $t 0x00008d6c 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008dd4 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008de8 0 .text.HLW8110_Convert_PowerReg_Value + $t 0x00008de8 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e5c 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00008e68 0 .text.HLW8110_Convert_EnergyReg_Value + $t 0x00008e68 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008f08 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00008f18 0 .text.HLW8110_RecvData_Processing + $t 0x00008f18 0 .text.HLW8110_RecvData_Processing + $d 0x0000914c 0 .text.HLW8110_RecvData_Processing + $d 0x00009174 0 .text.HLW8110_SysPara_Check + $t 0x00009174 0 .text.HLW8110_SysPara_Check + $d 0x0000919c 0 .text.HLW8110_ReadSysPara + $t 0x0000919c 0 .text.HLW8110_ReadSysPara + $d 0x000091ac 0 .text.HLW8110_ReadSysPara + $t 0x000091b8 0 .text.HLW8110_ReadSysPara + $d 0x000093ac 0 .text.HLW8110_ReadSysPara + $d 0x000093f0 0 .text.HLW8110_ReadSysCtrlPara + $t 0x000093f0 0 .text.HLW8110_ReadSysCtrlPara + $d 0x0000949c 0 .text.HLW8110_ReadSysCtrlPara + $d 0x000094b8 0 .text.GetEnergy_Para + $t 0x000094b8 0 .text.GetEnergy_Para + $d 0x00009500 0 .text.GetEnergy_Para + $d 0x0000951c 0 .text.HLW8110_ReadValue + $t 0x0000951c 0 .text.HLW8110_ReadValue + $d 0x0000952a 0 .text.HLW8110_ReadValue + $t 0x00009530 0 .text.HLW8110_ReadValue + $d 0x0000964c 0 .text.HLW8110_ReadValue + $d 0x00009674 0 .text.BLV_HLW8110_Tack + $t 0x00009674 0 .text.BLV_HLW8110_Tack + $d 0x00009682 0 .text.BLV_HLW8110_Tack + $t 0x00009686 0 .text.BLV_HLW8110_Tack + $d 0x000096a8 0 .text.BLV_HLW8110_Tack + $d 0x000096b4 0 .text.BT_Uart_Packing + $t 0x000096b4 0 .text.BT_Uart_Packing + $d 0x000096c0 0 .text.BT_UART_Print + $t 0x000096c0 0 .text.BT_UART_Print + $d 0x000096f8 0 .text.BT_UART_Print + $t 0x00009700 0 .text.BT_UART_Print + $d 0x00009798 0 .text.BT_UART_Print + $d 0x000097c4 0 .text.BLV_Energy_ActiveRep_Packing + $t 0x000097c4 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x000098a4 0 .text.BLV_Energy_ActiveRep_Packing + $d 0x000098b0 0 .text.BLV_ElectricPara_Processing + $t 0x000098b0 0 .text.BLV_ElectricPara_Processing + $d 0x00009938 0 .text.BLV_ElectricPara_Processing + $d 0x00009960 0 .text.BLV_EngDetect_Tack + $t 0x00009960 0 .text.BLV_EngDetect_Tack + $d 0x00009974 0 .text.BLV_Energy_PassiveRep_Packing + $t 0x00009974 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009a58 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009a60 0 .text.BLV_Energy_SetTime_Packing + $t 0x00009a60 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009af4 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009b00 0 .text.BLV_Energy_QueryVersion_Packing + $t 0x00009b00 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b90 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009b98 0 .text.SetCalibFactor_Switch + $t 0x00009b98 0 .text.SetCalibFactor_Switch + $d 0x00009ba4 0 .text.SetCalibFactor_Switch + $t 0x00009baa 0 .text.SetCalibFactor_Switch + $d 0x00009bc4 0 .text.SetCalibFactor_Switch + $d 0x00009bc8 0 .text.BLV_Energy_SetCalibFactor + $t 0x00009bc8 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009c48 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009c4c 0 .text.BLV_Energy_SetCalibFactor_2 + $t 0x00009c4c 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009cc4 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009cc8 0 .text.HLW_485Recv_Processing + $t 0x00009cc8 0 .text.HLW_485Recv_Processing + $d 0x00009df8 0 .text.HLW_485Recv_Processing + $d 0x00009e28 0 .text.BT_Recv_Processing + $t 0x00009e28 0 .text.BT_Recv_Processing + $d 0x00009f1c 0 .text.BT_Recv_Processing + $d 0x00009f40 0 .text.Boot_Function_Init + $t 0x00009f40 0 .text.Boot_Function_Init + $d 0x00009fd0 0 .text.Boot_Function_Init + $d 0x0000a000 0 .text.Boot_Comm_CheckSum + $t 0x0000a000 0 .text.Boot_Comm_CheckSum + $d 0x0000a020 0 .text.Boot_Comm_CheckSum + $d 0x0000a024 0 .text.Boot_Comm_FillReplyPack + $t 0x0000a024 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a084 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a090 0 .text.Boot_Time_Refresh + $t 0x0000a090 0 .text.Boot_Time_Refresh + $d 0x0000a09c 0 .text.Boot_Time_Refresh + $d 0x0000a0a4 0 .text.Boot_Comm_UpgradeProcess + $t 0x0000a0a4 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a284 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a2c0 0 .text.TK_Sampling_prog + $t 0x0000a2c0 0 .text.TK_Sampling_prog + $d 0x0000a308 0 .text.TK_Sampling_prog + $d 0x0000a318 0 .text.TKEYIntHandler + $t 0x0000a318 0 .text.TKEYIntHandler + $d 0x0000a394 0 .text.TKEYIntHandler + $d 0x0000a3a0 0 .text.get_key_number + $t 0x0000a3a0 0 .text.get_key_number + $d 0x0000a3c4 0 .text.get_key_number + $d 0x0000a3c8 0 .text.TK_Scan_Start + $t 0x0000a3c8 0 .text.TK_Scan_Start + $d 0x0000a3e0 0 .text.TK_Scan_Start + $d 0x0000a3e8 0 .text.TK_Keymap_prog + $t 0x0000a3e8 0 .text.TK_Keymap_prog + $d 0x0000a530 0 .text.TK_Keymap_prog + $d 0x0000a568 0 .text.TK_overflow_predict + $t 0x0000a568 0 .text.TK_overflow_predict + $d 0x0000a650 0 .text.TK_overflow_predict + $d 0x0000a684 0 .text.TK_Baseline_tracking + $t 0x0000a684 0 .text.TK_Baseline_tracking + $d 0x0000a828 0 .text.TK_Baseline_tracking + $d 0x0000a854 0 .text.TK_result_prog + $t 0x0000a854 0 .text.TK_result_prog + $d 0x0000a894 0 .text.TK_result_prog + $d 0x0000a8a8 0 .text.CORETHandler + $t 0x0000a8a8 0 .text.CORETHandler + $d 0x0000a908 0 .text.CORETHandler + $d 0x0000a920 0 .text.std_clk_calib + $t 0x0000a920 0 .text.std_clk_calib + $d 0x0000ab68 0 .text.std_clk_calib + __func__.6746 0x0000aba4 O 23 .rodata + bp 0x0000abbc O 16 .rodata + dp_l 0x0000abcc O 16 .rodata + dp_h 0x0000abdc O 16 .rodata + blanks.1847 0x0000ad10 O 16 .rodata + zeroes.1848 0x0000ad20 O 16 .rodata + CSWTCH.1 0x0000ad30 O 576 .rodata + NUM.6261 0x200000bc O 1 .bss + update_20ms.6167 0x20000168 O 4 .bss + HLW8110_Sned_Tisk.6549 0x2000016c O 4 .bss + HLW8110_Reset_Tack.6607 0x20000170 O 4 .bss + Wait_ReadValue_Tisk.6632 0x20000174 O 4 .bss + BT_State.6666 0x20000178 O 4 .bss + BT_WaitOutTim.6667 0x2000017c O 4 .bss + Eng_Save_Tim.6655 0x20000180 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00002800 0 .text + __start 0x0000290c 0 .text + __exit 0x00002960 0 .text + __fail 0x00002976 0 .text + DummyHandler 0x00002984 0 .text + __GI_pow 0x000029b4 F 2474 .text + pow 0x000029b4 F 2474 .text + __GI_fabs 0x0000335e F 6 .text + fabs 0x0000335e F 6 .text + __GI_scalbn 0x00003364 F 32 .text + scalbn 0x00003364 F 32 .text + __GI_sqrt 0x00003384 F 376 .text + sqrt 0x00003384 F 376 .text + ___gnu_csky_case_uqi 0x000034fc F 20 .text + ___gnu_csky_case_uhi 0x00003510 F 26 .text + __fixunssfsi 0x0000352c F 46 .text + __fixunsdfsi 0x0000355c F 56 .text + __addsf3 0x000036e0 F 42 .text + __subsf3 0x0000370c F 50 .text + __mulsf3 0x00003740 F 280 .text + __divsf3 0x00003858 F 188 .text + __nesf2 0x00003914 F 54 .text + __gesf2 0x0000394c F 56 .text + __floatsisf 0x00003984 F 100 .text + __fixsfsi 0x000039e8 F 84 .text + __extendsfdf2 0x00003a3c F 36 .text + __adddf3 0x00003d34 F 46 .text + __subdf3 0x00003d64 F 54 .text + __muldf3 0x00003d9c F 564 .text + __divdf3 0x00003fd0 F 340 .text + __gtdf2 0x00004124 F 60 .text + __gedf2 0x00004160 F 60 .text + __ledf2 0x0000419c F 58 .text + __floatsidf 0x000041d8 F 112 .text + __fixdfsi 0x00004248 F 112 .text + __make_dp 0x000042b8 F 40 .text + __truncdfsf2 0x000042e0 F 48 .text + __floatunsidf 0x00004310 F 84 .text + __muldi3 0x00004364 F 68 .text + __clzsi2 0x000043a8 F 64 .text + __pack_f 0x000043e8 F 184 .text + __unpack_f 0x000044a0 F 132 .text + __fpcmp_parts_f 0x00004524 F 120 .text + __make_fp 0x0000459c F 22 .text + __pack_d 0x000045b4 F 412 .text + __unpack_d 0x00004750 F 196 .text + __fpcmp_parts_d 0x00004814 F 140 .text + __cskyvprintfsnprintf 0x000048a0 F 32 .text + __cskyvprintfvsnprintf 0x000048fe F 90 .text + __memset_fast 0x00004958 w F 136 .text + memset 0x00004958 w F 136 .text + __memcpy_fast 0x000049e0 w F 100 .text + memcpy 0x000049e0 w F 100 .text + __GI_strncmp 0x00004a44 F 38 .text + strncmp 0x00004a44 w F 38 .text + __v2_printf 0x00004aa0 F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00004aa0 F 1828 .text + __udivdi3 0x000051c4 F 940 .text + __umoddi3 0x00005570 F 928 .text + __GI___dtostr 0x00005936 F 826 .text + __dtostr 0x00005936 F 826 .text + __isnan 0x00005c70 F 44 .text + __strlen_fast 0x00005c9c w F 82 .text + strlen 0x00005c9c w F 82 .text + __strcpy_fast 0x00005cf0 w F 176 .text + strcpy 0x00005cf0 w F 176 .text + __GI_strchr 0x00005da0 F 18 .text + strchr 0x00005da0 w F 18 .text + __GI_strerror 0x00005db4 F 28 .text + strerror 0x00005db4 F 28 .text + __isinf 0x00005dd0 F 48 .text + __eqdf2 0x00005e00 F 58 .text + __ltdf2 0x00005e3c F 58 .text + __main 0x00005e78 F 56 .text.__main + SYSCON_RST_VALUE 0x00005f24 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00005f70 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00005fa0 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00006028 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00006050 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x0000608c F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x000060a0 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x000060b8 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x000060d8 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x000060f4 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00006110 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00006150 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00006184 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00006188 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00006198 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x000061a4 F 12 .text.SYSCON_Int_Disable + SYSCON_Software_Reset 0x000061b0 F 20 .text.SYSCON_Software_Reset + SYSCON_INT_Priority 0x000061c4 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000061e8 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x00006218 F 100 .text.GPIO_DeInit + GPIO_Init 0x0000627c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000635c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00006370 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00006380 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x0000648c F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x00006588 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00006590 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00006598 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000065ae F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000065c0 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000065d4 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000065e4 F 28 .text.BT_DeInit + BT_Start 0x00006600 F 8 .text.BT_Start + BT_Soft_Reset 0x00006608 F 10 .text.BT_Soft_Reset + BT_Configure 0x00006612 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000662a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00006656 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x0000665c F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00006670 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00006680 F 24 .text.UART0_DeInit + UART1_DeInit 0x00006698 F 24 .text.UART1_DeInit + UART2_DeInit 0x000066b0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000066c8 F 28 .text.UART0_Int_Enable + UART1_Int_Enable 0x000066e4 F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00006700 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000671c F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00006808 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00006818 F 30 .text.UARTTransmit + EPT_Stop 0x00006838 F 40 .text.EPT_Stop + Page_ProgramData 0x00006860 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00006900 F 42 .text.ReadDataArry_U8 + main 0x0000692c F 68 .text.startup.main + delay_nms 0x00006970 F 44 .text.delay_nms + delay_nus 0x0000699c F 34 .text.delay_nus + BT_CONFIG 0x000069c0 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00006a20 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00006a84 F 120 .text.APT32F102_init + SYSCONIntHandler 0x00006afc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00006bec F 104 .text.IFCIntHandler + ADCIntHandler 0x00006c54 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00006cbc F 428 .text.EPT0IntHandler + WWDTHandler 0x00006e68 F 52 .text.WWDTHandler + GPT0IntHandler 0x00006e9c F 128 .text.GPT0IntHandler + RTCIntHandler 0x00006f1c F 112 .text.RTCIntHandler + UART0IntHandler 0x00006f8c F 96 .text.UART0IntHandler + UART1IntHandler 0x00006fec F 148 .text.UART1IntHandler + UART2IntHandler 0x00007080 F 96 .text.UART2IntHandler + SPI0IntHandler 0x000070e0 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000071c8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x0000721c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x0000724c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x0000727c F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000072c4 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x000072e4 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x00007350 F 52 .text.LPTIntHandler + BT0IntHandler 0x00007384 F 76 .text.BT0IntHandler + BT1IntHandler 0x000073d0 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00007440 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00007442 F 8 .text.PendTrapHandler + Trap3Handler 0x0000744a F 8 .text.Trap3Handler + Trap2Handler 0x00007452 F 8 .text.Trap2Handler + Trap1Handler 0x0000745a F 8 .text.Trap1Handler + Trap0Handler 0x00007462 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000746a F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00007472 F 8 .text.BreakPointHandler + AccessErrHandler 0x0000747a F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00007482 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x0000748a F 8 .text.MisalignedHandler + CNTAIntHandler 0x00007492 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000749a F 8 .text.I2CIntHandler + __divsi3 0x000074a4 F 36 .text.__divsi3 + __udivsi3 0x000074c8 F 36 .text.__udivsi3 + __modsi3 0x000074ec F 36 .text.__modsi3 + __umodsi3 0x00007510 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00007534 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000753a F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00007540 F 392 .text.UARTx_Init + UART0_RecvINT_Processing 0x000076c8 F 52 .text.UART0_RecvINT_Processing + UART0_TASK 0x000076fc F 96 .text.UART0_TASK + UART1_RecvINT_Processing 0x0000775c F 52 .text.UART1_RecvINT_Processing + UART2_RecvINT_Processing 0x00007790 F 52 .text.UART2_RecvINT_Processing + MCU485_SendData 0x000077c4 F 144 .text.MCU485_SendData + BUS485_Send 0x00007854 F 196 .text.BUS485_Send + Set_GroupSend 0x00007918 F 100 .text.Set_GroupSend + Clear_SendFlag 0x0000797c F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x0000798c F 12 .text.BUS485_Jump_Boot + BusIdle_Task 0x00007998 F 64 .text.BusIdle_Task + BusBusy_Task 0x000079d8 F 92 .text.BusBusy_Task + Dbg_Println 0x00007a34 F 128 .text.Dbg_Println + MultSend_Task 0x00007ab4 F 160 .text.MultSend_Task + BUS485Send_Task 0x00007b54 F 104 .text.BUS485Send_Task + Dbg_Print_Buff 0x00007bbc F 132 .text.Dbg_Print_Buff + UART1_TASK 0x00007c40 F 140 .text.UART1_TASK + UART2_TASK 0x00007ccc F 156 .text.UART2_TASK + Dbg_BT_Println 0x00007d68 F 96 .text.Dbg_BT_Println + DIP_GetSwitchState 0x00007dc8 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x00007dfc F 148 .text.DIP_Switch_Init + DIP_ScanTask 0x00007e90 F 152 .text.DIP_ScanTask + EEPROM_CheckSum 0x00007f28 F 22 .text.EEPROM_CheckSum + EEOROM_ENERGY_ReadSet 0x00007f40 F 336 .text.EEOROM_ENERGY_ReadSet + EEOROM_ENERGY_WriteSet 0x00008090 F 68 .text.EEOROM_ENERGY_WriteSet + EEPROM_ENERGY_Validate 0x000080d4 F 332 .text.EEPROM_ENERGY_Validate + EEPROM_Default_ENERGY 0x00008220 F 300 .text.EEPROM_Default_ENERGY + EEPROM_ReadTotalEng 0x0000834c F 184 .text.EEPROM_ReadTotalEng + EEPROM_WriteTotalEng 0x00008404 F 172 .text.EEPROM_WriteTotalEng + EEPROM_ReadMCUDevInfo 0x000084b0 F 212 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00008584 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x000085c4 F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x000085fc F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00008654 F 304 .text.EEPROM_Init + BLV_DetEnergy_Init 0x000087c0 F 48 .text.BLV_DetEnergy_Init + BLV_DetEnergy_Default 0x000087f0 F 184 .text.BLV_DetEnergy_Default + HLW8110_CheckSum 0x000088a8 F 24 .text.HLW8110_CheckSum + HLW8110_WriteREG_EN 0x000088c0 F 84 .text.HLW8110_WriteREG_EN + HLW8110_WriteREG_DIS 0x00008914 F 84 .text.HLW8110_WriteREG_DIS + HLW8110_Reset 0x00008968 F 80 .text.HLW8110_Reset + BLV_HLW8110_RWCMD_Packaging 0x000089b8 F 140 .text.BLV_HLW8110_RWCMD_Packaging + HLW8110_RWCMD_Send 0x00008a44 F 116 .text.HLW8110_RWCMD_Send + HLW8110_CleanSdFlag 0x00008ab8 F 16 .text.HLW8110_CleanSdFlag + Get_RevState 0x00008ac8 F 24 .text.Get_RevState + Get_SendState 0x00008ae0 F 28 .text.Get_SendState + BLV_HLW8110_SendData_Tack 0x00008afc F 484 .text.BLV_HLW8110_SendData_Tack + HLW8110_Convert_CurrentRegA_Value 0x00008ce0 F 140 .text.HLW8110_Convert_CurrentRegA_Value + HLW8110_Convert_VoltageReg_Value 0x00008d6c F 124 .text.HLW8110_Convert_VoltageReg_Value + HLW8110_Convert_PowerReg_Value 0x00008de8 F 128 .text.HLW8110_Convert_PowerReg_Value + HLW8110_Convert_EnergyReg_Value 0x00008e68 F 176 .text.HLW8110_Convert_EnergyReg_Value + HLW8110_RecvData_Processing 0x00008f18 F 604 .text.HLW8110_RecvData_Processing + HLW8110_SysPara_Check 0x00009174 F 38 .text.HLW8110_SysPara_Check + HLW8110_ReadSysPara 0x0000919c F 596 .text.HLW8110_ReadSysPara + HLW8110_ReadSysCtrlPara 0x000093f0 F 200 .text.HLW8110_ReadSysCtrlPara + GetEnergy_Para 0x000094b8 F 100 .text.GetEnergy_Para + HLW8110_ReadValue 0x0000951c F 344 .text.HLW8110_ReadValue + BLV_HLW8110_Tack 0x00009674 F 64 .text.BLV_HLW8110_Tack + BT_Uart_Packing 0x000096b4 F 12 .text.BT_Uart_Packing + BT_UART_Print 0x000096c0 F 260 .text.BT_UART_Print + BLV_Energy_ActiveRep_Packing 0x000097c4 F 236 .text.BLV_Energy_ActiveRep_Packing + BLV_ElectricPara_Processing 0x000098b0 F 176 .text.BLV_ElectricPara_Processing + BLV_EngDetect_Tack 0x00009960 F 20 .text.BLV_EngDetect_Tack + BLV_Energy_PassiveRep_Packing 0x00009974 F 236 .text.BLV_Energy_PassiveRep_Packing + BLV_Energy_SetTime_Packing 0x00009a60 F 160 .text.BLV_Energy_SetTime_Packing + BLV_Energy_QueryVersion_Packing 0x00009b00 F 152 .text.BLV_Energy_QueryVersion_Packing + SetCalibFactor_Switch 0x00009b98 F 48 .text.SetCalibFactor_Switch + BLV_Energy_SetCalibFactor 0x00009bc8 F 132 .text.BLV_Energy_SetCalibFactor + BLV_Energy_SetCalibFactor_2 0x00009c4c F 124 .text.BLV_Energy_SetCalibFactor_2 + HLW_485Recv_Processing 0x00009cc8 F 352 .text.HLW_485Recv_Processing + BT_Recv_Processing 0x00009e28 F 280 .text.BT_Recv_Processing + Boot_Function_Init 0x00009f40 F 192 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x0000a000 F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x0000a024 F 108 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x0000a090 F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x0000a0a4 F 540 .text.Boot_Comm_UpgradeProcess + TK_Sampling_prog 0x0000a2c0 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x0000a318 F 136 .text.TKEYIntHandler + get_key_number 0x0000a3a0 F 40 .text.get_key_number + TK_Scan_Start 0x0000a3c8 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x0000a3e8 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000a568 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000a684 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x0000a854 F 84 .text.TK_result_prog + CORETHandler 0x0000a8a8 F 120 .text.CORETHandler + std_clk_calib 0x0000a920 F 644 .text.std_clk_calib + __thenan_sf 0x0000abec O 16 .rodata + __thenan_df 0x0000abfc O 20 .rodata + __clz_tab 0x0000ac10 O 256 .rodata + _end_rodata 0x0000c28c 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + Project_Boot_Support 0x2000009c O 32 .textcsky.VinFlash + _bss_start 0x200000bc 0 .bss + SysTick_100us 0x200000c0 O 4 .bss + SysTick_1ms 0x200000c4 O 4 .bss + RS485_Comming 0x200000c8 O 4 .bss + RS485_Comm_Flag 0x200000cc O 4 .bss + RS485_Comm_Start 0x200000d0 O 4 .bss + RS485_Comm_End 0x200000d4 O 4 .bss + Dbg_Switch 0x200000d8 O 4 .bss + SysTick_Now 0x200000dc O 4 .bss + SysTick_Last 0x200000e0 O 4 .bss + SysTick_Diff 0x200000e4 O 4 .bss + Dbg_Buffer 0x200000e8 O 128 .bss + Press_debounce_data 0x20000184 O 1 .bss + TK_Lowpower_mode 0x20000185 O 1 .bss + TK_Lowpower_level 0x20000186 O 1 .bss + TK_longpress_time 0x20000188 O 4 .bss + Release_debounce_data 0x2000018c O 1 .bss + Key_mode 0x2000018d O 1 .bss + TK_icon 0x2000018e O 34 .bss + MultiTimes_Filter 0x200001b0 O 1 .bss + Base_Speed 0x200001b1 O 1 .bss + TK_IO_ENABLE 0x200001b4 O 4 .bss + Valid_Key_Num 0x200001b8 O 1 .bss + TK_senprd 0x200001ba O 34 .bss + TK_Wakeup_level 0x200001dc O 1 .bss + TK_Triggerlevel 0x200001de O 34 .bss + TK_EC_LEVEL 0x20000200 O 2 .bss + TK_FVR_LEVEL 0x20000202 O 2 .bss + TK_BaseCnt 0x20000204 O 4 .bss + TK_PSEL_MODE 0x20000208 O 2 .bss + R_CMPB_BUF 0x2000020c O 4 .bss + R_CMPA_BUF 0x20000210 O 4 .bss + R_SIORX_buf 0x20000214 O 40 .bss + g_uart 0x2000023c O 148 .bss + g_uart0 0x200002d0 O 148 .bss + g_uart1 0x20000364 O 148 .bss + m_send 0x200003f8 O 136 .bss + g_Dip 0x20000480 O 20 .bss + e_save 0x20000494 O 44 .bss + g_mcu_dev 0x200004c0 O 37 .bss + eng_info 0x200004e8 O 12 .bss + u_det 0x200004f4 O 72 .bss + g_CalFactor 0x2000053c O 60 .bss + g_Eng 0x20000578 O 120 .bss + g_boot 0x200005f0 O 316 .bss + g_app_feature 0x2000072c O 256 .bss + baseline_data0 0x2000082c O 34 .bss + TK_Postive_build2 0x2000084e O 17 .bss + Key_Map1 0x20000860 O 4 .bss + offset_data2_abs 0x20000864 O 34 .bss + scan_f 0x20000886 O 1 .bss + offset_data1_abs 0x20000888 O 34 .bss + Release_debounce0 0x200008aa O 17 .bss + Key_Map0 0x200008bc O 4 .bss + bsae_over_f 0x200008c0 O 1 .bss + scan_cnt 0x200008c2 O 2 .bss + Press_debounce0 0x200008c4 O 17 .bss + offset_data0 0x200008d6 O 34 .bss + sampling_data1 0x200008f8 O 34 .bss + Key_Map2 0x2000091c O 4 .bss + Release_debounce1 0x20000920 O 17 .bss + tk_overflow_f 0x20000931 O 1 .bss + TK_Negtive_build2 0x20000932 O 17 .bss + base_update_f 0x20000943 O 1 .bss + TK_Postive_build1 0x20000944 O 17 .bss + time_cnt 0x20000958 O 4 .bss + lpt_scan_pend_cnt 0x2000095c O 2 .bss + TK_track_cnt 0x2000095e O 1 .bss + Key_Map 0x20000960 O 4 .bss + baseline_data1 0x20000964 O 34 .bss + TK_Postive_build0 0x20000986 O 17 .bss + sampling_data2 0x20000998 O 34 .bss + offset_data1 0x200009ba O 34 .bss + TK_ovrdect_cnt 0x200009dc O 1 .bss + Press_debounce2 0x200009dd O 17 .bss + TK_Negtive_build1 0x200009ee O 17 .bss + tk_num 0x200009ff O 1 .bss + TK_Negtive_build0 0x20000a00 O 17 .bss + Press_debounce1 0x20000a11 O 17 .bss + Release_debounce2 0x20000a22 O 17 .bss + r_Key_Map_Temp 0x20000a34 O 4 .bss + tk_seque 0x20000a38 O 17 .bss + scan_step 0x20000a49 O 1 .bss + baseline_data2 0x20000a4a O 34 .bss + tk_sampling_max 0x20000a6c O 34 .bss + offset_data0_abs 0x20000a8e O 34 .bss + offset_data2 0x20000ab0 O 34 .bss + sampling_data0 0x20000ad2 O 34 .bss + errno 0x20000af4 O 4 .bss + __malloc_lock 0x20000af8 O 4 .bss + _ebss 0x20000afc 0 .bss + _end 0x20000afc 0 .bss + end 0x20000afc 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000290c + + Region ROM (Base: 0x00002800, Size: 0x00009a8c, Max: 0x0000d800) + + Base Addr Size Type Attr Idx Section Name Object + 0x00002800 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000029b4 0x000009aa Code RO 1068 .text pow.o + 0x0000335e 0x00000006 Code RO 1076 .text fabs.o + 0x00003364 0x00000020 Code RO 1082 .text scalbn.o + 0x00003384 0x00000178 Code RO 1089 .text sqrt.o + 0x000034fc 0x00000014 Code RO 1100 .text _csky_case_uqi.o + 0x00003510 0x0000001a Code RO 1105 .text _csky_case_uhi.o + 0x0000352a 0x00000002 PAD + 0x0000352c 0x0000002e Code RO 1110 .text _fixunssfsi.o + 0x0000355a 0x00000002 PAD + 0x0000355c 0x00000038 Code RO 1117 .text _fixunsdfsi.o + 0x00003594 0x000001aa Code RO 1124 .text _addsub_sf.o + 0x0000373e 0x00000002 PAD + 0x00003740 0x00000118 Code RO 1131 .text _mul_sf.o + 0x00003858 0x000000bc Code RO 1138 .text _div_sf.o + 0x00003914 0x00000036 Code RO 1145 .text _ne_sf.o + 0x0000394a 0x00000002 PAD + 0x0000394c 0x00000038 Code RO 1152 .text _ge_sf.o + 0x00003984 0x00000064 Code RO 1159 .text _si_to_sf.o + 0x000039e8 0x00000054 Code RO 1166 .text _sf_to_si.o + 0x00003a3c 0x00000024 Code RO 1173 .text _sf_to_df.o + 0x00003a60 0x0000033a Code RO 1187 .text _addsub_df.o + 0x00003d9a 0x00000002 PAD + 0x00003d9c 0x00000234 Code RO 1194 .text _mul_df.o + 0x00003fd0 0x00000154 Code RO 1201 .text _div_df.o + 0x00004124 0x0000003c Code RO 1208 .text _gt_df.o + 0x00004160 0x0000003c Code RO 1215 .text _ge_df.o + 0x0000419c 0x0000003a Code RO 1222 .text _le_df.o + 0x000041d6 0x00000002 PAD + 0x000041d8 0x00000070 Code RO 1229 .text _si_to_df.o + 0x00004248 0x00000070 Code RO 1236 .text _df_to_si.o + 0x000042b8 0x00000028 Code RO 1243 .text _make_df.o + 0x000042e0 0x00000030 Code RO 1250 .text _df_to_sf.o + 0x00004310 0x00000054 Code RO 1264 .text _usi_to_df.o + 0x00004364 0x00000044 Code RO 1271 .text _muldi3.o + 0x000043a8 0x00000040 Code RO 1278 .text _clzsi2.o + 0x000043e8 0x000000b8 Code RO 1284 .text _pack_sf.o + 0x000044a0 0x00000084 Code RO 1291 .text _unpack_sf.o + 0x00004524 0x00000078 Code RO 1298 .text _fpcmp_parts_sf.o + 0x0000459c 0x00000016 Code RO 1305 .text _make_sf.o + 0x000045b2 0x00000002 PAD + 0x000045b4 0x0000019c Code RO 1312 .text _pack_df.o + 0x00004750 0x000000c4 Code RO 1319 .text _unpack_df.o + 0x00004814 0x0000008c Code RO 1326 .text _fpcmp_parts_df.o + 0x000048a0 0x00000020 Code RO 1347 .text snprintf_required.o + 0x000048c0 0x00000098 Code RO 1354 .text vsnprintf_required.o + 0x00004958 0x00000088 Code RO 1361 .text memset_fast.o + 0x000049e0 0x00000064 Code RO 1366 .text memcpy_fast.o + 0x00004a44 0x00000026 Code RO 1372 .text strncmp.o + 0x00004a6a 0x00000002 PAD + 0x00004a6c 0x00000758 Code RO 1530 .text __v2_printfDFHLlMOPpSSsWp.o + 0x000051c4 0x000003ac Code RO 1589 .text _udivdi3.o + 0x00005570 0x000003a0 Code RO 1596 .text _umoddi3.o + 0x00005910 0x00000360 Code RO 1617 .text __dtostr.o + 0x00005c70 0x0000002c Code RO 1625 .text __isnan.o + 0x00005c9c 0x00000052 Code RO 1637 .text strlen_fast.o + 0x00005cee 0x00000002 PAD + 0x00005cf0 0x000000b0 Code RO 1642 .text strcpy_fast.o + 0x00005da0 0x00000012 Code RO 1647 .text strchr.o + 0x00005db2 0x00000002 PAD + 0x00005db4 0x0000001c Code RO 1652 .text strerror.o + 0x00005dd0 0x00000030 Code RO 1660 .text __isinf.o + 0x00005e00 0x0000003a Code RO 1666 .text _eq_df.o + 0x00005e3a 0x00000002 PAD + 0x00005e3c 0x0000003a Code RO 1673 .text _lt_df.o + 0x00005e78 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00005eb0 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00005f24 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00005f70 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00005fa0 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00006028 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00006050 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000608c 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x000060a0 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x000060b8 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x000060d8 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000060f4 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006110 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006150 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006184 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00006188 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006198 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000061a4 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x000061b0 0x00000014 Code RO 111 .text.SYSCON_Software_Reset Obj/FWlib_apt32f102_syscon.o + 0x000061c4 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000061e8 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00006218 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x0000627c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000635c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00006370 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00006380 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x0000648c 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00006588 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00006590 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00006598 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000065ae 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000065c0 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000065d4 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000065e4 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00006600 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00006608 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00006612 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000662a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00006656 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x0000665c 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00006670 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00006680 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00006698 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066b0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066c8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000066e4 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00006700 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000671c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00006808 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00006818 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00006838 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00006860 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00006900 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x0000692c 0x00000044 Code RO 690 .text.startup.main Obj/main.o + 0x00006970 0x0000002c Code RO 708 .text.delay_nms Obj/mcu_initial.o + 0x0000699c 0x00000022 Code RO 709 .text.delay_nus Obj/mcu_initial.o + 0x000069c0 0x00000060 Code RO 713 .text.BT_CONFIG Obj/mcu_initial.o + 0x00006a20 0x00000062 Code RO 719 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00006a84 0x00000078 Code RO 720 .text.APT32F102_init Obj/mcu_initial.o + 0x00006afc 0x000000f0 Code RO 736 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00006bec 0x00000068 Code RO 737 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00006c54 0x00000068 Code RO 738 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00006cbc 0x000001ac Code RO 739 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00006e68 0x00000034 Code RO 740 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00006e9c 0x00000080 Code RO 741 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00006f1c 0x00000070 Code RO 742 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00006f8c 0x00000060 Code RO 743 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00006fec 0x00000094 Code RO 744 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00007080 0x00000060 Code RO 745 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000070e0 0x000000e8 Code RO 746 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000071c8 0x00000054 Code RO 747 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x0000721c 0x00000030 Code RO 748 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x0000724c 0x00000030 Code RO 749 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x0000727c 0x00000048 Code RO 750 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000072c4 0x00000020 Code RO 751 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x000072e4 0x0000006c Code RO 752 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00007350 0x00000034 Code RO 753 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00007384 0x0000004c Code RO 754 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000073d0 0x00000070 Code RO 755 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00007440 0x00000002 Code RO 756 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00007442 0x00000008 Code RO 758 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000744a 0x00000008 Code RO 759 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00007452 0x00000008 Code RO 760 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000745a 0x00000008 Code RO 761 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00007462 0x00000008 Code RO 762 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000746a 0x00000008 Code RO 763 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00007472 0x00000008 Code RO 764 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x0000747a 0x00000008 Code RO 765 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00007482 0x00000008 Code RO 766 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x0000748a 0x00000008 Code RO 767 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00007492 0x00000008 Code RO 768 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000749a 0x00000008 Code RO 769 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000074a4 0x00000024 Code RO 786 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000074c8 0x00000024 Code RO 787 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000074ec 0x00000024 Code RO 788 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00007510 0x00000024 Code RO 789 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00007534 0x00000006 Code RO 807 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000753a 0x00000006 Code RO 808 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00007540 0x00000188 Code RO 822 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000076c8 0x00000034 Code RO 823 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000076fc 0x00000060 Code RO 824 .text.UART0_TASK Obj/SYSTEM_uart.o + 0x0000775c 0x00000034 Code RO 825 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00007790 0x00000034 Code RO 826 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000077c4 0x00000090 Code RO 828 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00007854 0x000000c4 Code RO 829 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00007918 0x00000064 Code RO 830 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000797c 0x00000010 Code RO 831 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000798c 0x0000000c Code RO 832 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00007998 0x00000040 Code RO 834 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000079d8 0x0000005c Code RO 835 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00007a34 0x00000080 Code RO 837 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00007ab4 0x000000a0 Code RO 838 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00007b54 0x00000068 Code RO 839 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00007bbc 0x00000084 Code RO 840 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00007c40 0x0000008c Code RO 841 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x00007ccc 0x0000009c Code RO 842 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00007d68 0x00000060 Code RO 843 .text.Dbg_BT_Println Obj/SYSTEM_uart.o + 0x00007dc8 0x00000034 Code RO 861 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x00007dfc 0x00000094 Code RO 862 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x00007e90 0x00000098 Code RO 863 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00007f28 0x00000016 Code RO 881 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00007f40 0x00000150 Code RO 882 .text.EEOROM_ENERGY_ReadSet Obj/SYSTEM_eeprom.o + 0x00008090 0x00000044 Code RO 883 .text.EEOROM_ENERGY_WriteSet Obj/SYSTEM_eeprom.o + 0x000080d4 0x0000014c Code RO 884 .text.EEPROM_ENERGY_Validate Obj/SYSTEM_eeprom.o + 0x00008220 0x0000012c Code RO 885 .text.EEPROM_Default_ENERGY Obj/SYSTEM_eeprom.o + 0x0000834c 0x000000b8 Code RO 886 .text.EEPROM_ReadTotalEng Obj/SYSTEM_eeprom.o + 0x00008404 0x000000ac Code RO 887 .text.EEPROM_WriteTotalEng Obj/SYSTEM_eeprom.o + 0x000084b0 0x000000d4 Code RO 891 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008584 0x00000040 Code RO 892 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085c4 0x00000038 Code RO 893 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x000085fc 0x00000058 Code RO 894 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008654 0x00000130 Code RO 895 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00008784 0x0000003c Code RO 913 .text.BT_Uart_Packing.part.3 Obj/SYSTEM_det_energy.o + 0x000087c0 0x00000030 Code RO 914 .text.BLV_DetEnergy_Init Obj/SYSTEM_det_energy.o + 0x000087f0 0x000000b8 Code RO 915 .text.BLV_DetEnergy_Default Obj/SYSTEM_det_energy.o + 0x000088a8 0x00000018 Code RO 916 .text.HLW8110_CheckSum Obj/SYSTEM_det_energy.o + 0x000088c0 0x00000054 Code RO 917 .text.HLW8110_WriteREG_EN Obj/SYSTEM_det_energy.o + 0x00008914 0x00000054 Code RO 918 .text.HLW8110_WriteREG_DIS Obj/SYSTEM_det_energy.o + 0x00008968 0x00000050 Code RO 919 .text.HLW8110_Reset Obj/SYSTEM_det_energy.o + 0x000089b8 0x0000008c Code RO 920 .text.BLV_HLW8110_RWCMD_Packaging Obj/SYSTEM_det_energy.o + 0x00008a44 0x00000074 Code RO 921 .text.HLW8110_RWCMD_Send Obj/SYSTEM_det_energy.o + 0x00008ab8 0x00000010 Code RO 922 .text.HLW8110_CleanSdFlag Obj/SYSTEM_det_energy.o + 0x00008ac8 0x00000018 Code RO 923 .text.Get_RevState Obj/SYSTEM_det_energy.o + 0x00008ae0 0x0000001c Code RO 924 .text.Get_SendState Obj/SYSTEM_det_energy.o + 0x00008afc 0x000001e4 Code RO 926 .text.BLV_HLW8110_SendData_Tack Obj/SYSTEM_det_energy.o + 0x00008ce0 0x0000008c Code RO 927 .text.HLW8110_Convert_CurrentRegA_Value Obj/SYSTEM_det_energy.o + 0x00008d6c 0x0000007c Code RO 928 .text.HLW8110_Convert_VoltageReg_Value Obj/SYSTEM_det_energy.o + 0x00008de8 0x00000080 Code RO 929 .text.HLW8110_Convert_PowerReg_Value Obj/SYSTEM_det_energy.o + 0x00008e68 0x000000b0 Code RO 930 .text.HLW8110_Convert_EnergyReg_Value Obj/SYSTEM_det_energy.o + 0x00008f18 0x0000025c Code RO 931 .text.HLW8110_RecvData_Processing Obj/SYSTEM_det_energy.o + 0x00009174 0x00000026 Code RO 932 .text.HLW8110_SysPara_Check Obj/SYSTEM_det_energy.o + 0x0000919c 0x00000254 Code RO 933 .text.HLW8110_ReadSysPara Obj/SYSTEM_det_energy.o + 0x000093f0 0x000000c8 Code RO 934 .text.HLW8110_ReadSysCtrlPara Obj/SYSTEM_det_energy.o + 0x000094b8 0x00000064 Code RO 935 .text.GetEnergy_Para Obj/SYSTEM_det_energy.o + 0x0000951c 0x00000158 Code RO 936 .text.HLW8110_ReadValue Obj/SYSTEM_det_energy.o + 0x00009674 0x00000040 Code RO 937 .text.BLV_HLW8110_Tack Obj/SYSTEM_det_energy.o + 0x000096b4 0x0000000c Code RO 938 .text.BT_Uart_Packing Obj/SYSTEM_det_energy.o + 0x000096c0 0x00000104 Code RO 939 .text.BT_UART_Print Obj/SYSTEM_det_energy.o + 0x000097c4 0x000000ec Code RO 940 .text.BLV_Energy_ActiveRep_Packing Obj/SYSTEM_det_energy.o + 0x000098b0 0x000000b0 Code RO 941 .text.BLV_ElectricPara_Processing Obj/SYSTEM_det_energy.o + 0x00009960 0x00000014 Code RO 942 .text.BLV_EngDetect_Tack Obj/SYSTEM_det_energy.o + 0x00009974 0x000000ec Code RO 943 .text.BLV_Energy_PassiveRep_Packing Obj/SYSTEM_det_energy.o + 0x00009a60 0x000000a0 Code RO 944 .text.BLV_Energy_SetTime_Packing Obj/SYSTEM_det_energy.o + 0x00009b00 0x00000098 Code RO 945 .text.BLV_Energy_QueryVersion_Packing Obj/SYSTEM_det_energy.o + 0x00009b98 0x00000030 Code RO 946 .text.SetCalibFactor_Switch Obj/SYSTEM_det_energy.o + 0x00009bc8 0x00000084 Code RO 947 .text.BLV_Energy_SetCalibFactor Obj/SYSTEM_det_energy.o + 0x00009c4c 0x0000007c Code RO 948 .text.BLV_Energy_SetCalibFactor_2 Obj/SYSTEM_det_energy.o + 0x00009cc8 0x00000160 Code RO 949 .text.HLW_485Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009e28 0x00000118 Code RO 950 .text.BT_Recv_Processing Obj/SYSTEM_det_energy.o + 0x00009f40 0x000000c0 Code RO 969 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x0000a000 0x00000024 Code RO 970 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x0000a024 0x0000006c Code RO 972 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x0000a090 0x00000014 Code RO 976 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x0000a0a4 0x0000021c Code RO 977 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x0000a2c0 0x00000058 Code RO 1014 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a318 0x00000088 Code RO 1018 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a3a0 0x00000028 Code RO 1019 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x0000a3c8 0x00000020 Code RO 1021 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x0000a3e8 0x00000180 Code RO 1022 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a568 0x0000011c Code RO 1023 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x0000a684 0x000001d0 Code RO 1024 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x0000a854 0x00000054 Code RO 1025 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000a8a8 0x00000078 Code RO 1026 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000a920 0x00000284 Code RO 1048 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000aba4 0x00000017 Data RO 951 .rodata Obj/SYSTEM_det_energy.o + 0x0000abbb 0x00000001 PAD + 0x0000abbc 0x00000030 Data RO 1071 .rodata pow.o + 0x0000abec 0x00000010 Data RO 1183 .rodata _thenan_sf.o + 0x0000abfc 0x00000014 Data RO 1260 .rodata _thenan_df.o + 0x0000ac10 0x00000100 Data RO 1336 .rodata _clz.o + 0x0000ad10 0x00000020 Data RO 1533 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x0000ad30 0x00000240 Data RO 1655 .rodata strerror.o + 0x0000af70 0x00000021 Data RO 691 .rodata.str1.1 Obj/main.o + 0x0000af91 0x000000a4 Data RO 844 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x0000b035 0x00000023 Data RO 864 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x0000b058 0x000003b6 Data RO 896 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000b40e 0x000003d0 Data RO 952 .rodata.str1.1 Obj/SYSTEM_det_energy.o + 0x0000b7de 0x000002fb Data RO 981 .rodata.str1.1 Obj/SYSTEM_Bootload_fun.o + 0x0000bad9 0x00000022 Data RO 1534 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x0000bafb 0x00000008 Data RO 1620 .rodata.str1.1 __dtostr.o + 0x0000bb03 0x00000787 Data RO 1656 .rodata.str1.1 strerror.o + 0x0000c28a 0x00000002 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000afc, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 784 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 1005 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x00000020 Data RW 692 .textcsky.VinFlash Obj/main.o + 0x200000bc 0x0000000c Zero RW 735 .bss Obj/mcu_interrupt.o + 0x200000c8 0x000000a0 Zero RW 821 .bss Obj/SYSTEM_uart.o + 0x20000168 0x00000004 Zero RW 860 .bss Obj/SYSTEM_dip_switch.o + 0x2000016c 0x00000018 Zero RW 912 .bss Obj/SYSTEM_det_energy.o + 0x20000184 0x00000086 Zero RW 704 COMMON Obj/main.o + 0x2000020a 0x00000002 PAD + 0x2000020c 0x00000030 Zero RW 782 COMMON Obj/mcu_interrupt.o + 0x2000023c 0x00000244 Zero RW 857 COMMON Obj/SYSTEM_uart.o + 0x20000480 0x00000014 Zero RW 877 COMMON Obj/SYSTEM_dip_switch.o + 0x20000494 0x00000060 Zero RW 909 COMMON Obj/SYSTEM_eeprom.o + 0x200004f4 0x000000fc Zero RW 965 COMMON Obj/SYSTEM_det_energy.o + 0x200005f0 0x0000023c Zero RW 994 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000082c 0x000002c8 Zero RW 1044 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000af4 0x00000008 Zero RW 1610 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 282 Obj/arch_crt0.o + 56 0 0 0 816 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 872 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 932 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13549 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 438 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 68 33 32 134 12757 Obj/main.o + 392 0 0 0 16599 Obj/mcu_initial.o + 2470 0 0 60 15410 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 2184 164 0 740 17321 Obj/SYSTEM_uart.o + 352 35 0 24 11554 Obj/SYSTEM_dip_switch.o + 2138 950 0 96 17222 Obj/SYSTEM_eeprom.o + 6074 999 0 276 22603 Obj/SYSTEM_det_energy.o + 896 763 0 572 16797 Obj/SYSTEM_Bootload_fun.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 17896 2944 136 1902 272600 Object Totals + 22 3 3 2 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 26 0 0 0 0 _csky_case_uhi.o + 46 0 0 0 0 _fixunssfsi.o + 56 0 0 0 0 _fixunsdfsi.o + 426 0 0 0 0 _addsub_sf.o + 280 0 0 0 0 _mul_sf.o + 188 0 0 0 0 _div_sf.o + 54 0 0 0 0 _ne_sf.o + 56 0 0 0 0 _ge_sf.o + 100 0 0 0 0 _si_to_sf.o + 84 0 0 0 0 _sf_to_si.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 40 0 0 0 0 _make_df.o + 48 0 0 0 0 _df_to_sf.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 184 0 0 0 0 _pack_sf.o + 132 0 0 0 0 _unpack_sf.o + 120 0 0 0 0 _fpcmp_parts_sf.o + 22 0 0 0 0 _make_sf.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 6882 292 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 38 0 0 0 0 strncmp.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3598 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 33678 5864 188 2624 297614 Grand Totals + 33678 5864 188 2624 297614 Elf Image Totals + 33678 5864 188 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 39542 ( 38.62kB) +Total RW Size (RW Data + ZI Data) 2812 ( 2.75kB) +Total ROM Size (Code + RO Data + RW Data) 39730 ( 38.80kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V04_20251201.asm b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V04_20251201.asm new file mode 100644 index 0000000..69057f8 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V04_20251201.asm @@ -0,0 +1,18099 @@ + +.//Obj/BLV_CS_AC100_V04_20251201.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00004cd6 .long 0x00004cd6 + 8: 00004cc6 .long 0x00004cc6 + c: 00000184 .long 0x00000184 + 10: 00004cce .long 0x00004cce + 14: 00004c8c .long 0x00004c8c + 18: 00000184 .long 0x00000184 + 1c: 00004cbe .long 0x00004cbe + 20: 00004cb6 .long 0x00004cb6 + 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: 00004cae .long 0x00004cae + 44: 00004ca6 .long 0x00004ca6 + 48: 00004c9e .long 0x00004c9e + 4c: 00004c96 .long 0x00004c96 + 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: 00004c8e .long 0x00004c8e + 80: 0000738c .long 0x0000738c + 84: 00004348 .long 0x00004348 + 88: 00004438 .long 0x00004438 + 8c: 000044a0 .long 0x000044a0 + 90: 00004508 .long 0x00004508 + 94: 00000184 .long 0x00000184 + 98: 000046b4 .long 0x000046b4 + 9c: 00004a68 .long 0x00004a68 + a0: 00004a98 .long 0x00004a98 + a4: 000046e8 .long 0x000046e8 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00004768 .long 0x00004768 + b4: 000047d8 .long 0x000047d8 + b8: 00004838 .long 0x00004838 + bc: 000048cc .long 0x000048cc + c0: 00000184 .long 0x00000184 + c4: 00004ce6 .long 0x00004ce6 + c8: 00000184 .long 0x00000184 + cc: 0000492c .long 0x0000492c + d0: 00004a14 .long 0x00004a14 + d4: 00004ac8 .long 0x00004ac8 + d8: 00004b10 .long 0x00004b10 + dc: 00004b30 .long 0x00004b30 + e0: 00004cde .long 0x00004cde + e4: 00006dfc .long 0x00006dfc + e8: 00004b9c .long 0x00004b9c + ec: 00000184 .long 0x00000184 + f0: 00004bd0 .long 0x00004bd0 + f4: 00004c1c .long 0x00004c1c + 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, 0x365c // 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, 0x4104 // 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: 0000365c .long 0x0000365c + 198: 00000160 .long 0x00000160 + 19c: 00004104 .long 0x00004104 + 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: e0000991 bsr 0x1518 // 1518 <__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: e0000977 bsr 0x1548 // 1548 <__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: e0000a8c bsr 0x17b4 // 17b4 <__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: e000094e bsr 0x1580 // 1580 <__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: e0000a42 bsr 0x17b4 // 17b4 <__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: e00008fd bsr 0x1548 // 1548 <__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: e00008c8 bsr 0x1548 // 1548 <__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: e00008de bsr 0x1580 // 1580 <__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: e00008d6 bsr 0x1580 // 1580 <__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: e00008ce bsr 0x1580 // 1580 <__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: e00008ac bsr 0x1548 // 1548 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e00008c4 bsr 0x1580 // 1580 <__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: e00008a2 bsr 0x1548 // 1548 <__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: e00008b6 bsr 0x1580 // 1580 <__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: e00008b0 bsr 0x1580 // 1580 <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e00008ac bsr 0x1580 // 1580 <__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: e000088a bsr 0x1548 // 1548 <__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: e000086a bsr 0x1518 // 1518 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e000087c bsr 0x1548 // 1548 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e0000876 bsr 0x1548 // 1548 <__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: e0000865 bsr 0x1548 // 1548 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e000087d bsr 0x1580 // 1580 <__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: e0000875 bsr 0x1580 // 1580 <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e000083b bsr 0x1518 // 1518 <__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: e0000867 bsr 0x1580 // 1580 <__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: e0000829 bsr 0x1518 // 1518 <__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: e0000849 bsr 0x1580 // 1580 <__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: e000083e bsr 0x1580 // 1580 <__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, 0x76a0 // 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: e00007fc bsr 0x1548 // 1548 <__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: e00007dc bsr 0x1518 // 1518 <__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: e0000924 bsr 0x17b4 // 17b4 <__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: 000076a0 .long 0x000076a0 + 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: e00007cc bsr 0x1580 // 1580 <__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: e00007bd bsr 0x1580 // 1580 <__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: e000079b bsr 0x1548 // 1548 <__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: e0000793 bsr 0x1548 // 1548 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e000078d bsr 0x1548 // 1548 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e00007a5 bsr 0x1580 // 1580 <__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: e0000783 bsr 0x1548 // 1548 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e000079b bsr 0x1580 // 1580 <__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: e0000793 bsr 0x1580 // 1580 <__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: e000078b bsr 0x1580 // 1580 <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e0000751 bsr 0x1518 // 1518 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e0000781 bsr 0x1580 // 1580 <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e0000747 bsr 0x1518 // 1518 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e0000777 bsr 0x1580 // 1580 <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e000073d bsr 0x1518 // 1518 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e000076d bsr 0x1580 // 1580 <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e0000733 bsr 0x1518 // 1518 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e0000763 bsr 0x1580 // 1580 <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e0000729 bsr 0x1518 // 1518 <__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: e0000755 bsr 0x1580 // 1580 <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e000074f bsr 0x1580 // 1580 <__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: e0000713 bsr 0x1518 // 1518 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e0000743 bsr 0x1580 // 1580 <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e000070b bsr 0x1518 // 1518 <__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: e0000737 bsr 0x1580 // 1580 <__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: e00006fd bsr 0x1518 // 1518 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e00006f9 bsr 0x1518 // 1518 <__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: e0000726 bsr 0x1580 // 1580 <__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: e0000702 bsr 0x1548 // 1548 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e00006fe bsr 0x1548 // 1548 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e00006f8 bsr 0x1548 // 1548 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e0000710 bsr 0x1580 // 1580 <__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: e0000708 bsr 0x1580 // 1580 <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e00006ce bsr 0x1518 // 1518 <__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: e00006c6 bsr 0x1518 // 1518 <__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: e00006f3 bsr 0x1580 // 1580 <__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: e00006cf bsr 0x1548 // 1548 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e00006c9 bsr 0x1548 // 1548 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e00006e1 bsr 0x1580 // 1580 <__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: e00006d9 bsr 0x1580 // 1580 <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e000069f bsr 0x1518 // 1518 <__adddf3> + 7de: 01db lrw r6, 0x76a0 // 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: e0000698 bsr 0x1518 // 1518 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e00008e5 bsr 0x19bc // 19bc <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0x76a0 // 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: e0000685 bsr 0x1518 // 1518 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e0000681 bsr 0x1518 // 1518 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e000067d bsr 0x1518 // 1518 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e000068f bsr 0x1548 // 1548 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e000068b bsr 0x1548 // 1548 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e0000687 bsr 0x1548 // 1548 <__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: e000065e bsr 0x1518 // 1518 <__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: e000066e bsr 0x1548 // 1548 <__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: e0000848 bsr 0x1908 // 1908 <__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: e000063e bsr 0x1548 // 1548 <__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: e000061e bsr 0x1518 // 1518 <__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: e000064c bsr 0x1580 // 1580 <__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: e0000628 bsr 0x1548 // 1548 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e0000622 bsr 0x1548 // 1548 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e000063a bsr 0x1580 // 1580 <__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: e0000632 bsr 0x1580 // 1580 <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e00005f8 bsr 0x1518 // 1518 <__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: e00005f0 bsr 0x1518 // 1518 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e0000602 bsr 0x1548 // 1548 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e00005fc bsr 0x1548 // 1548 <__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: e0000610 bsr 0x1580 // 1580 <__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: e000060a bsr 0x1580 // 1580 <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e00005ea bsr 0x1548 // 1548 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e0000602 bsr 0x1580 // 1580 <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e00005ca bsr 0x1518 // 1518 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e00005fa bsr 0x1580 // 1580 <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e00005da bsr 0x1548 // 1548 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e00005f2 bsr 0x1580 // 1580 <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e00005ba bsr 0x1518 // 1518 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e00005ea bsr 0x1580 // 1580 <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e00005c8 bsr 0x1548 // 1548 <__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: e00005dc bsr 0x1580 // 1580 <__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: e00005b7 bsr 0x1548 // 1548 <__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: e00006e7 bsr 0x17b4 // 17b4 <__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: e00005c5 bsr 0x1580 // 1580 <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e000058d bsr 0x1518 // 1518 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e000059f bsr 0x1548 // 1548 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e000059b bsr 0x1548 // 1548 <__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: e0000595 bsr 0x1548 // 1548 <__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: e0000593 bsr 0x1580 // 1580 <__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: e000056d bsr 0x1548 // 1548 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e0000783 bsr 0x1980 // 1980 <__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: 000076a0 .long 0x000076a0 + 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: e00004f1 bsr 0x1580 // 1580 <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e00004b7 bsr 0x1518 // 1518 <__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: e00004ba bsr 0x1548 // 1548 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e00005ec bsr 0x17b4 // 17b4 <__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 <__fixunssfsi>: + d10: 14d1 push r4, r15 + d12: 319e movi r1, 158 + d14: 4137 lsli r1, r1, 23 + d16: 6d03 mov r4, r0 + d18: e000020c bsr 0x1130 // 1130 <__gesf2> + d1c: 38df btsti r0, 31 + d1e: 0c05 bf 0xd28 // d28 <__fixunssfsi+0x18> + d20: 6c13 mov r0, r4 + d22: e0000255 bsr 0x11cc // 11cc <__fixsfsi> + d26: 1491 pop r4, r15 + d28: 319e movi r1, 158 + d2a: 4137 lsli r1, r1, 23 + d2c: 6c13 mov r0, r4 + d2e: e00000e1 bsr 0xef0 // ef0 <__subsf3> + d32: e000024d bsr 0x11cc // 11cc <__fixsfsi> + d36: 3380 movi r3, 128 + d38: 4378 lsli r3, r3, 24 + d3a: 600c addu r0, r3 + d3c: 1491 pop r4, r15 + ... + +00000d40 <__fixunsdfsi>: + d40: 14d2 push r4-r5, r15 + d42: 3200 movi r2, 0 + d44: 106c lrw r3, 0x41e00000 // d74 <__fixunsdfsi+0x34> + d46: 6d43 mov r5, r0 + d48: 6d07 mov r4, r1 + d4a: e00005fd bsr 0x1944 // 1944 <__gedf2> + d4e: 38df btsti r0, 31 + d50: 0c06 bf 0xd5c // d5c <__fixunsdfsi+0x1c> + d52: 6c17 mov r0, r5 + d54: 6c53 mov r1, r4 + d56: e000066b bsr 0x1a2c // 1a2c <__fixdfsi> + d5a: 1492 pop r4-r5, r15 + d5c: 3200 movi r2, 0 + d5e: 1066 lrw r3, 0x41e00000 // d74 <__fixunsdfsi+0x34> + d60: 6c17 mov r0, r5 + d62: 6c53 mov r1, r4 + d64: e00003f2 bsr 0x1548 // 1548 <__subdf3> + d68: e0000662 bsr 0x1a2c // 1a2c <__fixdfsi> + d6c: 3380 movi r3, 128 + d6e: 4378 lsli r3, r3, 24 + d70: 600c addu r0, r3 + d72: 1492 pop r4-r5, r15 + d74: 41e00000 .long 0x41e00000 + +00000d78 <_fpadd_parts>: + d78: 14c4 push r4-r7 + d7a: 1421 subi r14, r14, 4 + d7c: 9060 ld.w r3, (r0, 0x0) + d7e: 3b01 cmphsi r3, 2 + d80: 0c3b bf 0xdf6 // df6 <_fpadd_parts+0x7e> + d82: 9180 ld.w r4, (r1, 0x0) + d84: 3c01 cmphsi r4, 2 + d86: 0c3a bf 0xdfa // dfa <_fpadd_parts+0x82> + d88: 3b44 cmpnei r3, 4 + d8a: 0c76 bf 0xe76 // e76 <_fpadd_parts+0xfe> + d8c: 3c44 cmpnei r4, 4 + d8e: 0c36 bf 0xdfa // dfa <_fpadd_parts+0x82> + d90: 3c42 cmpnei r4, 2 + d92: 0c5c bf 0xe4a // e4a <_fpadd_parts+0xd2> + d94: 3b42 cmpnei r3, 2 + d96: 0c32 bf 0xdfa // dfa <_fpadd_parts+0x82> + d98: 90a2 ld.w r5, (r0, 0x8) + d9a: 91e2 ld.w r7, (r1, 0x8) + d9c: 5d9d subu r4, r5, r7 + d9e: 9063 ld.w r3, (r0, 0xc) + da0: 3cdf btsti r4, 31 + da2: b860 st.w r3, (r14, 0x0) + da4: 6d93 mov r6, r4 + da6: 9163 ld.w r3, (r1, 0xc) + da8: 086f bt 0xe86 // e86 <_fpadd_parts+0x10e> + daa: 3e3f cmplti r6, 32 + dac: 082a bt 0xe00 // e00 <_fpadd_parts+0x88> + dae: 655d cmplt r7, r5 + db0: 0c5f bf 0xe6e // e6e <_fpadd_parts+0xf6> + db2: 3300 movi r3, 0 + db4: 9001 ld.w r0, (r0, 0x4) + db6: 9121 ld.w r1, (r1, 0x4) + db8: 6442 cmpne r0, r1 + dba: 0c33 bf 0xe20 // e20 <_fpadd_parts+0xa8> + dbc: 3840 cmpnei r0, 0 + dbe: 9820 ld.w r1, (r14, 0x0) + dc0: 0c54 bf 0xe68 // e68 <_fpadd_parts+0xf0> + dc2: 60c6 subu r3, r1 + dc4: 3bdf btsti r3, 31 + dc6: 0863 bt 0xe8c // e8c <_fpadd_parts+0x114> + dc8: 3100 movi r1, 0 + dca: b221 st.w r1, (r2, 0x4) + dcc: b2a2 st.w r5, (r2, 0x8) + dce: b263 st.w r3, (r2, 0xc) + dd0: 5b23 subi r1, r3, 1 + dd2: 119b lrw r4, 0x3fffffff // ebc <_fpadd_parts+0x144> + dd4: 6504 cmphs r1, r4 + dd6: 080b bt 0xdec // dec <_fpadd_parts+0x74> + dd8: 9222 ld.w r1, (r2, 0x8) + dda: 2900 subi r1, 1 + ddc: 4361 lsli r3, r3, 1 + dde: 5b03 subi r0, r3, 1 + de0: 6410 cmphs r4, r0 + de2: 6d47 mov r5, r1 + de4: 2900 subi r1, 1 + de6: 0bfb bt 0xddc // ddc <_fpadd_parts+0x64> + de8: b263 st.w r3, (r2, 0xc) + dea: b2a2 st.w r5, (r2, 0x8) + dec: 3103 movi r1, 3 + dee: 3bdf btsti r3, 31 + df0: b220 st.w r1, (r2, 0x0) + df2: 0821 bt 0xe34 // e34 <_fpadd_parts+0xbc> + df4: 6c0b mov r0, r2 + df6: 1401 addi r14, r14, 4 + df8: 1484 pop r4-r7 + dfa: 6c07 mov r0, r1 + dfc: 1401 addi r14, r14, 4 + dfe: 1484 pop r4-r7 + e00: 3c20 cmplti r4, 1 + e02: 084c bt 0xe9a // e9a <_fpadd_parts+0x122> + e04: 3401 movi r4, 1 + e06: 7118 lsl r4, r6 + e08: 2c00 subi r4, 1 + e0a: 6dcf mov r7, r3 + e0c: 68d0 and r3, r4 + e0e: 3b40 cmpnei r3, 0 + e10: 9001 ld.w r0, (r0, 0x4) + e12: 3300 movi r3, 0 + e14: 9121 ld.w r1, (r1, 0x4) + e16: 60cd addc r3, r3 + e18: 71d9 lsr r7, r6 + e1a: 6442 cmpne r0, r1 + e1c: 6cdc or r3, r7 + e1e: 0bcf bt 0xdbc // dbc <_fpadd_parts+0x44> + e20: 9820 ld.w r1, (r14, 0x0) + e22: 604c addu r1, r3 + e24: 6cc7 mov r3, r1 + e26: b223 st.w r1, (r2, 0xc) + e28: 3bdf btsti r3, 31 + e2a: 3103 movi r1, 3 + e2c: b201 st.w r0, (r2, 0x4) + e2e: b2a2 st.w r5, (r2, 0x8) + e30: b220 st.w r1, (r2, 0x0) + e32: 0fe1 bf 0xdf4 // df4 <_fpadd_parts+0x7c> + e34: 3001 movi r0, 1 + e36: 4b21 lsri r1, r3, 1 + e38: 68c0 and r3, r0 + e3a: 6cc4 or r3, r1 + e3c: b263 st.w r3, (r2, 0xc) + e3e: 9262 ld.w r3, (r2, 0x8) + e40: 2300 addi r3, 1 + e42: 6c0b mov r0, r2 + e44: b262 st.w r3, (r2, 0x8) + e46: 1401 addi r14, r14, 4 + e48: 1484 pop r4-r7 + e4a: 3b42 cmpnei r3, 2 + e4c: 0bd5 bt 0xdf6 // df6 <_fpadd_parts+0x7e> + e4e: b260 st.w r3, (r2, 0x0) + e50: 9061 ld.w r3, (r0, 0x4) + e52: b261 st.w r3, (r2, 0x4) + e54: 9062 ld.w r3, (r0, 0x8) + e56: b262 st.w r3, (r2, 0x8) + e58: 9063 ld.w r3, (r0, 0xc) + e5a: 9121 ld.w r1, (r1, 0x4) + e5c: b263 st.w r3, (r2, 0xc) + e5e: 9061 ld.w r3, (r0, 0x4) + e60: 68c4 and r3, r1 + e62: b261 st.w r3, (r2, 0x4) + e64: 6c0b mov r0, r2 + e66: 07c8 br 0xdf6 // df6 <_fpadd_parts+0x7e> + e68: 604e subu r1, r3 + e6a: 6cc7 mov r3, r1 + e6c: 07ac br 0xdc4 // dc4 <_fpadd_parts+0x4c> + e6e: 3400 movi r4, 0 + e70: 6d5f mov r5, r7 + e72: b880 st.w r4, (r14, 0x0) + e74: 07a0 br 0xdb4 // db4 <_fpadd_parts+0x3c> + e76: 3c44 cmpnei r4, 4 + e78: 0bbf bt 0xdf6 // df6 <_fpadd_parts+0x7e> + e7a: 9041 ld.w r2, (r0, 0x4) + e7c: 9161 ld.w r3, (r1, 0x4) + e7e: 64ca cmpne r2, r3 + e80: 0fbb bf 0xdf6 // df6 <_fpadd_parts+0x7e> + e82: 1010 lrw r0, 0x76d0 // ec0 <_fpadd_parts+0x148> + e84: 07b9 br 0xdf6 // df6 <_fpadd_parts+0x7e> + e86: 3600 movi r6, 0 + e88: 6192 subu r6, r4 + e8a: 0790 br 0xdaa // daa <_fpadd_parts+0x32> + e8c: 3101 movi r1, 1 + e8e: b221 st.w r1, (r2, 0x4) + e90: 3100 movi r1, 0 + e92: 596d subu r3, r1, r3 + e94: b2a2 st.w r5, (r2, 0x8) + e96: b263 st.w r3, (r2, 0xc) + e98: 079c br 0xdd0 // dd0 <_fpadd_parts+0x58> + e9a: 3c40 cmpnei r4, 0 + e9c: 0f8c bf 0xdb4 // db4 <_fpadd_parts+0x3c> + e9e: 3401 movi r4, 1 + ea0: 98e0 ld.w r7, (r14, 0x0) + ea2: 7118 lsl r4, r6 + ea4: 71d9 lsr r7, r6 + ea6: 6158 addu r5, r6 + ea8: 2c00 subi r4, 1 + eaa: 98c0 ld.w r6, (r14, 0x0) + eac: 6918 and r4, r6 + eae: 3c40 cmpnei r4, 0 + eb0: 3400 movi r4, 0 + eb2: 6111 addc r4, r4 + eb4: 6dd0 or r7, r4 + eb6: b8e0 st.w r7, (r14, 0x0) + eb8: 077e br 0xdb4 // db4 <_fpadd_parts+0x3c> + eba: 0000 bkpt + ebc: 3fffffff .long 0x3fffffff + ec0: 000076d0 .long 0x000076d0 + +00000ec4 <__addsf3>: + ec4: 14d0 push r15 + ec6: 142e subi r14, r14, 56 + ec8: b800 st.w r0, (r14, 0x0) + eca: b821 st.w r1, (r14, 0x4) + ecc: 6c3b mov r0, r14 + ece: 1902 addi r1, r14, 8 + ed0: e00006da bsr 0x1c84 // 1c84 <__unpack_f> + ed4: 1906 addi r1, r14, 24 + ed6: 1801 addi r0, r14, 4 + ed8: e00006d6 bsr 0x1c84 // 1c84 <__unpack_f> + edc: 1a0a addi r2, r14, 40 + ede: 1906 addi r1, r14, 24 + ee0: 1802 addi r0, r14, 8 + ee2: e3ffff4b bsr 0xd78 // d78 <_fpadd_parts> + ee6: e0000673 bsr 0x1bcc // 1bcc <__pack_f> + eea: 140e addi r14, r14, 56 + eec: 1490 pop r15 + ... + +00000ef0 <__subsf3>: + ef0: 14d0 push r15 + ef2: 142e subi r14, r14, 56 + ef4: b800 st.w r0, (r14, 0x0) + ef6: b821 st.w r1, (r14, 0x4) + ef8: 6c3b mov r0, r14 + efa: 1902 addi r1, r14, 8 + efc: e00006c4 bsr 0x1c84 // 1c84 <__unpack_f> + f00: 1906 addi r1, r14, 24 + f02: 1801 addi r0, r14, 4 + f04: e00006c0 bsr 0x1c84 // 1c84 <__unpack_f> + f08: 9867 ld.w r3, (r14, 0x1c) + f0a: 3201 movi r2, 1 + f0c: 6cc9 xor r3, r2 + f0e: 1906 addi r1, r14, 24 + f10: 1a0a addi r2, r14, 40 + f12: 1802 addi r0, r14, 8 + f14: b867 st.w r3, (r14, 0x1c) + f16: e3ffff31 bsr 0xd78 // d78 <_fpadd_parts> + f1a: e0000659 bsr 0x1bcc // 1bcc <__pack_f> + f1e: 140e addi r14, r14, 56 + f20: 1490 pop r15 + ... + +00000f24 <__mulsf3>: + f24: 14d4 push r4-r7, r15 + f26: 1430 subi r14, r14, 64 + f28: b802 st.w r0, (r14, 0x8) + f2a: b823 st.w r1, (r14, 0xc) + f2c: 1802 addi r0, r14, 8 + f2e: 1904 addi r1, r14, 16 + f30: e00006aa bsr 0x1c84 // 1c84 <__unpack_f> + f34: 1908 addi r1, r14, 32 + f36: 1803 addi r0, r14, 12 + f38: e00006a6 bsr 0x1c84 // 1c84 <__unpack_f> + f3c: 9864 ld.w r3, (r14, 0x10) + f3e: 3b01 cmphsi r3, 2 + f40: 0c4d bf 0xfda // fda <__mulsf3+0xb6> + f42: 9848 ld.w r2, (r14, 0x20) + f44: 3a01 cmphsi r2, 2 + f46: 0c3d bf 0xfc0 // fc0 <__mulsf3+0x9c> + f48: 3b44 cmpnei r3, 4 + f4a: 0c46 bf 0xfd6 // fd6 <__mulsf3+0xb2> + f4c: 3a44 cmpnei r2, 4 + f4e: 0c37 bf 0xfbc // fbc <__mulsf3+0x98> + f50: 3b42 cmpnei r3, 2 + f52: 0c44 bf 0xfda // fda <__mulsf3+0xb6> + f54: 3a42 cmpnei r2, 2 + f56: 0c35 bf 0xfc0 // fc0 <__mulsf3+0x9c> + f58: 9867 ld.w r3, (r14, 0x1c) + f5a: b860 st.w r3, (r14, 0x0) + f5c: 986b ld.w r3, (r14, 0x2c) + f5e: 6c8f mov r2, r3 + f60: b861 st.w r3, (r14, 0x4) + f62: 9800 ld.w r0, (r14, 0x0) + f64: 3300 movi r3, 0 + f66: 3100 movi r1, 0 + f68: e00005f0 bsr 0x1b48 // 1b48 <__muldi3> + f6c: 98c6 ld.w r6, (r14, 0x18) + f6e: 984a ld.w r2, (r14, 0x28) + f70: 6098 addu r2, r6 + f72: 5ac6 addi r6, r2, 2 + f74: b8ce st.w r6, (r14, 0x38) + f76: 98e5 ld.w r7, (r14, 0x14) + f78: 98c9 ld.w r6, (r14, 0x24) + f7a: 659e cmpne r7, r6 + f7c: 3400 movi r4, 0 + f7e: 6111 addc r4, r4 + f80: 39df btsti r1, 31 + f82: 6cc7 mov r3, r1 + f84: 6d43 mov r5, r0 + f86: b88d st.w r4, (r14, 0x34) + f88: 0c3f bf 0x1006 // 1006 <__mulsf3+0xe2> + f8a: 3301 movi r3, 1 + f8c: 68c4 and r3, r1 + f8e: 3b40 cmpnei r3, 0 + f90: 2202 addi r2, 3 + f92: 0811 bt 0xfb4 // fb4 <__mulsf3+0x90> + f94: 4961 lsri r3, r1, 1 + f96: b84e st.w r2, (r14, 0x38) + f98: 317f movi r1, 127 + f9a: 6c8f mov r2, r3 + f9c: 6884 and r2, r1 + f9e: 3040 movi r0, 64 + fa0: 640a cmpne r2, r0 + fa2: 0c27 bf 0xff0 // ff0 <__mulsf3+0xcc> + fa4: b86f st.w r3, (r14, 0x3c) + fa6: 3303 movi r3, 3 + fa8: b86c st.w r3, (r14, 0x30) + faa: 180c addi r0, r14, 48 + fac: e0000610 bsr 0x1bcc // 1bcc <__pack_f> + fb0: 1410 addi r14, r14, 64 + fb2: 1494 pop r4-r7, r15 + fb4: 4801 lsri r0, r0, 1 + fb6: 38bf bseti r0, 31 + fb8: 6d43 mov r5, r0 + fba: 07ed br 0xf94 // f94 <__mulsf3+0x70> + fbc: 3b42 cmpnei r3, 2 + fbe: 0c22 bf 0x1002 // 1002 <__mulsf3+0xde> + fc0: 9869 ld.w r3, (r14, 0x24) + fc2: 9845 ld.w r2, (r14, 0x14) + fc4: 64ca cmpne r2, r3 + fc6: 3300 movi r3, 0 + fc8: 60cd addc r3, r3 + fca: 1808 addi r0, r14, 32 + fcc: b869 st.w r3, (r14, 0x24) + fce: e00005ff bsr 0x1bcc // 1bcc <__pack_f> + fd2: 1410 addi r14, r14, 64 + fd4: 1494 pop r4-r7, r15 + fd6: 3a42 cmpnei r2, 2 + fd8: 0c15 bf 0x1002 // 1002 <__mulsf3+0xde> + fda: 9845 ld.w r2, (r14, 0x14) + fdc: 9869 ld.w r3, (r14, 0x24) + fde: 64ca cmpne r2, r3 + fe0: 3300 movi r3, 0 + fe2: 60cd addc r3, r3 + fe4: 1804 addi r0, r14, 16 + fe6: b865 st.w r3, (r14, 0x14) + fe8: e00005f2 bsr 0x1bcc // 1bcc <__pack_f> + fec: 1410 addi r14, r14, 64 + fee: 1494 pop r4-r7, r15 + ff0: 3080 movi r0, 128 + ff2: 680c and r0, r3 + ff4: 3840 cmpnei r0, 0 + ff6: 0bd7 bt 0xfa4 // fa4 <__mulsf3+0x80> + ff8: 3d40 cmpnei r5, 0 + ffa: 0fd5 bf 0xfa4 // fa4 <__mulsf3+0x80> + ffc: 60c8 addu r3, r2 + ffe: 68c5 andn r3, r1 + 1000: 07d2 br 0xfa4 // fa4 <__mulsf3+0x80> + 1002: 100d lrw r0, 0x76d0 // 1034 <__mulsf3+0x110> + 1004: 07d4 br 0xfac // fac <__mulsf3+0x88> + 1006: 108d lrw r4, 0x3fffffff // 1038 <__mulsf3+0x114> + 1008: 6450 cmphs r4, r1 + 100a: 0fc7 bf 0xf98 // f98 <__mulsf3+0x74> + 100c: 2200 addi r2, 1 + 100e: 3001 movi r0, 1 + 1010: 6c53 mov r1, r4 + 1012: 0405 br 0x101c // 101c <__mulsf3+0xf8> + 1014: 64c4 cmphs r1, r3 + 1016: 45a1 lsli r5, r5, 1 + 1018: 2a00 subi r2, 1 + 101a: 0c0a bf 0x102e // 102e <__mulsf3+0x10a> + 101c: 3ddf btsti r5, 31 + 101e: 6d0b mov r4, r2 + 1020: 4361 lsli r3, r3, 1 + 1022: 0ff9 bf 0x1014 // 1014 <__mulsf3+0xf0> + 1024: 6cc0 or r3, r0 + 1026: 64c4 cmphs r1, r3 + 1028: 45a1 lsli r5, r5, 1 + 102a: 2a00 subi r2, 1 + 102c: 0bf8 bt 0x101c // 101c <__mulsf3+0xf8> + 102e: b88e st.w r4, (r14, 0x38) + 1030: 07b4 br 0xf98 // f98 <__mulsf3+0x74> + 1032: 0000 bkpt + 1034: 000076d0 .long 0x000076d0 + 1038: 3fffffff .long 0x3fffffff + +0000103c <__divsf3>: + 103c: 14d1 push r4, r15 + 103e: 142a subi r14, r14, 40 + 1040: b800 st.w r0, (r14, 0x0) + 1042: b821 st.w r1, (r14, 0x4) + 1044: 6c3b mov r0, r14 + 1046: 1902 addi r1, r14, 8 + 1048: e000061e bsr 0x1c84 // 1c84 <__unpack_f> + 104c: 1906 addi r1, r14, 24 + 104e: 1801 addi r0, r14, 4 + 1050: e000061a bsr 0x1c84 // 1c84 <__unpack_f> + 1054: 9862 ld.w r3, (r14, 0x8) + 1056: 3b01 cmphsi r3, 2 + 1058: 0c2c bf 0x10b0 // 10b0 <__divsf3+0x74> + 105a: 9826 ld.w r1, (r14, 0x18) + 105c: 3901 cmphsi r1, 2 + 105e: 0c48 bf 0x10ee // 10ee <__divsf3+0xb2> + 1060: 9843 ld.w r2, (r14, 0xc) + 1062: 9807 ld.w r0, (r14, 0x1c) + 1064: 6c81 xor r2, r0 + 1066: 3b44 cmpnei r3, 4 + 1068: b843 st.w r2, (r14, 0xc) + 106a: 0c28 bf 0x10ba // 10ba <__divsf3+0x7e> + 106c: 3b42 cmpnei r3, 2 + 106e: 0c26 bf 0x10ba // 10ba <__divsf3+0x7e> + 1070: 3944 cmpnei r1, 4 + 1072: 0c2c bf 0x10ca // 10ca <__divsf3+0x8e> + 1074: 3942 cmpnei r1, 2 + 1076: 0c38 bf 0x10e6 // 10e6 <__divsf3+0xaa> + 1078: 9844 ld.w r2, (r14, 0x10) + 107a: 9868 ld.w r3, (r14, 0x20) + 107c: 608e subu r2, r3 + 107e: 9809 ld.w r0, (r14, 0x24) + 1080: 9865 ld.w r3, (r14, 0x14) + 1082: 640c cmphs r3, r0 + 1084: b844 st.w r2, (r14, 0x10) + 1086: 0c1e bf 0x10c2 // 10c2 <__divsf3+0x86> + 1088: 3180 movi r1, 128 + 108a: 321f movi r2, 31 + 108c: 3400 movi r4, 0 + 108e: 4137 lsli r1, r1, 23 + 1090: 640c cmphs r3, r0 + 1092: 0c03 bf 0x1098 // 1098 <__divsf3+0x5c> + 1094: 6d04 or r4, r1 + 1096: 60c2 subu r3, r0 + 1098: 2a00 subi r2, 1 + 109a: 3a40 cmpnei r2, 0 + 109c: 4921 lsri r1, r1, 1 + 109e: 4361 lsli r3, r3, 1 + 10a0: 0bf8 bt 0x1090 // 1090 <__divsf3+0x54> + 10a2: 317f movi r1, 127 + 10a4: 6c93 mov r2, r4 + 10a6: 6884 and r2, r1 + 10a8: 3040 movi r0, 64 + 10aa: 640a cmpne r2, r0 + 10ac: 0c14 bf 0x10d4 // 10d4 <__divsf3+0x98> + 10ae: b885 st.w r4, (r14, 0x14) + 10b0: 1802 addi r0, r14, 8 + 10b2: e000058d bsr 0x1bcc // 1bcc <__pack_f> + 10b6: 140a addi r14, r14, 40 + 10b8: 1491 pop r4, r15 + 10ba: 644e cmpne r3, r1 + 10bc: 0bfa bt 0x10b0 // 10b0 <__divsf3+0x74> + 10be: 100e lrw r0, 0x76d0 // 10f4 <__divsf3+0xb8> + 10c0: 07f9 br 0x10b2 // 10b2 <__divsf3+0x76> + 10c2: 2a00 subi r2, 1 + 10c4: 4361 lsli r3, r3, 1 + 10c6: b844 st.w r2, (r14, 0x10) + 10c8: 07e0 br 0x1088 // 1088 <__divsf3+0x4c> + 10ca: 3300 movi r3, 0 + 10cc: b865 st.w r3, (r14, 0x14) + 10ce: b864 st.w r3, (r14, 0x10) + 10d0: 1802 addi r0, r14, 8 + 10d2: 07f0 br 0x10b2 // 10b2 <__divsf3+0x76> + 10d4: 3080 movi r0, 128 + 10d6: 6810 and r0, r4 + 10d8: 3840 cmpnei r0, 0 + 10da: 0bea bt 0x10ae // 10ae <__divsf3+0x72> + 10dc: 3b40 cmpnei r3, 0 + 10de: 0fe8 bf 0x10ae // 10ae <__divsf3+0x72> + 10e0: 6108 addu r4, r2 + 10e2: 6905 andn r4, r1 + 10e4: 07e5 br 0x10ae // 10ae <__divsf3+0x72> + 10e6: 3304 movi r3, 4 + 10e8: b862 st.w r3, (r14, 0x8) + 10ea: 1802 addi r0, r14, 8 + 10ec: 07e3 br 0x10b2 // 10b2 <__divsf3+0x76> + 10ee: 1806 addi r0, r14, 24 + 10f0: 07e1 br 0x10b2 // 10b2 <__divsf3+0x76> + 10f2: 0000 bkpt + 10f4: 000076d0 .long 0x000076d0 + +000010f8 <__nesf2>: + 10f8: 14d0 push r15 + 10fa: 142a subi r14, r14, 40 + 10fc: b800 st.w r0, (r14, 0x0) + 10fe: b821 st.w r1, (r14, 0x4) + 1100: 6c3b mov r0, r14 + 1102: 1902 addi r1, r14, 8 + 1104: e00005c0 bsr 0x1c84 // 1c84 <__unpack_f> + 1108: 1906 addi r1, r14, 24 + 110a: 1801 addi r0, r14, 4 + 110c: e00005bc bsr 0x1c84 // 1c84 <__unpack_f> + 1110: 9862 ld.w r3, (r14, 0x8) + 1112: 3b01 cmphsi r3, 2 + 1114: 0c0a bf 0x1128 // 1128 <__nesf2+0x30> + 1116: 9866 ld.w r3, (r14, 0x18) + 1118: 3b01 cmphsi r3, 2 + 111a: 0c07 bf 0x1128 // 1128 <__nesf2+0x30> + 111c: 1906 addi r1, r14, 24 + 111e: 1802 addi r0, r14, 8 + 1120: e00005f4 bsr 0x1d08 // 1d08 <__fpcmp_parts_f> + 1124: 140a addi r14, r14, 40 + 1126: 1490 pop r15 + 1128: 3001 movi r0, 1 + 112a: 140a addi r14, r14, 40 + 112c: 1490 pop r15 + ... + +00001130 <__gesf2>: + 1130: 14d0 push r15 + 1132: 142a subi r14, r14, 40 + 1134: b800 st.w r0, (r14, 0x0) + 1136: b821 st.w r1, (r14, 0x4) + 1138: 6c3b mov r0, r14 + 113a: 1902 addi r1, r14, 8 + 113c: e00005a4 bsr 0x1c84 // 1c84 <__unpack_f> + 1140: 1906 addi r1, r14, 24 + 1142: 1801 addi r0, r14, 4 + 1144: e00005a0 bsr 0x1c84 // 1c84 <__unpack_f> + 1148: 9862 ld.w r3, (r14, 0x8) + 114a: 3b01 cmphsi r3, 2 + 114c: 0c0a bf 0x1160 // 1160 <__gesf2+0x30> + 114e: 9866 ld.w r3, (r14, 0x18) + 1150: 3b01 cmphsi r3, 2 + 1152: 0c07 bf 0x1160 // 1160 <__gesf2+0x30> + 1154: 1906 addi r1, r14, 24 + 1156: 1802 addi r0, r14, 8 + 1158: e00005d8 bsr 0x1d08 // 1d08 <__fpcmp_parts_f> + 115c: 140a addi r14, r14, 40 + 115e: 1490 pop r15 + 1160: 3000 movi r0, 0 + 1162: 2800 subi r0, 1 + 1164: 140a addi r14, r14, 40 + 1166: 1490 pop r15 + +00001168 <__floatsisf>: + 1168: 14d1 push r4, r15 + 116a: 1424 subi r14, r14, 16 + 116c: 3303 movi r3, 3 + 116e: b860 st.w r3, (r14, 0x0) + 1170: 3840 cmpnei r0, 0 + 1172: 487f lsri r3, r0, 31 + 1174: b861 st.w r3, (r14, 0x4) + 1176: 0808 bt 0x1186 // 1186 <__floatsisf+0x1e> + 1178: 3302 movi r3, 2 + 117a: b860 st.w r3, (r14, 0x0) + 117c: 6c3b mov r0, r14 + 117e: e0000527 bsr 0x1bcc // 1bcc <__pack_f> + 1182: 1404 addi r14, r14, 16 + 1184: 1491 pop r4, r15 + 1186: 331e movi r3, 30 + 1188: 38df btsti r0, 31 + 118a: b862 st.w r3, (r14, 0x8) + 118c: 080f bt 0x11aa // 11aa <__floatsisf+0x42> + 118e: 6d03 mov r4, r0 + 1190: 6c13 mov r0, r4 + 1192: e00004fd bsr 0x1b8c // 1b8c <__clzsi2> + 1196: 5863 subi r3, r0, 1 + 1198: 3b40 cmpnei r3, 0 + 119a: 0c14 bf 0x11c2 // 11c2 <__floatsisf+0x5a> + 119c: 6c13 mov r0, r4 + 119e: 321e movi r2, 30 + 11a0: 700c lsl r0, r3 + 11a2: 5a6d subu r3, r2, r3 + 11a4: b803 st.w r0, (r14, 0xc) + 11a6: b862 st.w r3, (r14, 0x8) + 11a8: 07ea br 0x117c // 117c <__floatsisf+0x14> + 11aa: 3380 movi r3, 128 + 11ac: 4378 lsli r3, r3, 24 + 11ae: 64c2 cmpne r0, r3 + 11b0: 0c0b bf 0x11c6 // 11c6 <__floatsisf+0x5e> + 11b2: 3400 movi r4, 0 + 11b4: 6102 subu r4, r0 + 11b6: 6c13 mov r0, r4 + 11b8: e00004ea bsr 0x1b8c // 1b8c <__clzsi2> + 11bc: 5863 subi r3, r0, 1 + 11be: 3b40 cmpnei r3, 0 + 11c0: 0bee bt 0x119c // 119c <__floatsisf+0x34> + 11c2: b883 st.w r4, (r14, 0xc) + 11c4: 07dc br 0x117c // 117c <__floatsisf+0x14> + 11c6: 30cf movi r0, 207 + 11c8: 4018 lsli r0, r0, 24 + 11ca: 07dc br 0x1182 // 1182 <__floatsisf+0x1a> + +000011cc <__fixsfsi>: + 11cc: 14d0 push r15 + 11ce: 1425 subi r14, r14, 20 + 11d0: b800 st.w r0, (r14, 0x0) + 11d2: 1901 addi r1, r14, 4 + 11d4: 6c3b mov r0, r14 + 11d6: e0000557 bsr 0x1c84 // 1c84 <__unpack_f> + 11da: 9861 ld.w r3, (r14, 0x4) + 11dc: 3b02 cmphsi r3, 3 + 11de: 0c1b bf 0x1214 // 1214 <__fixsfsi+0x48> + 11e0: 3b44 cmpnei r3, 4 + 11e2: 0c06 bf 0x11ee // 11ee <__fixsfsi+0x22> + 11e4: 9863 ld.w r3, (r14, 0xc) + 11e6: 3bdf btsti r3, 31 + 11e8: 0816 bt 0x1214 // 1214 <__fixsfsi+0x48> + 11ea: 3b3e cmplti r3, 31 + 11ec: 0809 bt 0x11fe // 11fe <__fixsfsi+0x32> + 11ee: 9862 ld.w r3, (r14, 0x8) + 11f0: 3b40 cmpnei r3, 0 + 11f2: 3000 movi r0, 0 + 11f4: 6001 addc r0, r0 + 11f6: 106a lrw r3, 0x7fffffff // 121c <__fixsfsi+0x50> + 11f8: 600c addu r0, r3 + 11fa: 1405 addi r14, r14, 20 + 11fc: 1490 pop r15 + 11fe: 321e movi r2, 30 + 1200: 5a6d subu r3, r2, r3 + 1202: 9804 ld.w r0, (r14, 0x10) + 1204: 700d lsr r0, r3 + 1206: 9862 ld.w r3, (r14, 0x8) + 1208: 3b40 cmpnei r3, 0 + 120a: 0ff8 bf 0x11fa // 11fa <__fixsfsi+0x2e> + 120c: 3300 movi r3, 0 + 120e: 5b01 subu r0, r3, r0 + 1210: 1405 addi r14, r14, 20 + 1212: 1490 pop r15 + 1214: 3000 movi r0, 0 + 1216: 1405 addi r14, r14, 20 + 1218: 1490 pop r15 + 121a: 0000 bkpt + 121c: 7fffffff .long 0x7fffffff + +00001220 <__extendsfdf2>: + 1220: 14d1 push r4, r15 + 1222: 1426 subi r14, r14, 24 + 1224: b801 st.w r0, (r14, 0x4) + 1226: 1902 addi r1, r14, 8 + 1228: 1801 addi r0, r14, 4 + 122a: e000052d bsr 0x1c84 // 1c84 <__unpack_f> + 122e: 9865 ld.w r3, (r14, 0x14) + 1230: 4b82 lsri r4, r3, 2 + 1232: 9844 ld.w r2, (r14, 0x10) + 1234: 437e lsli r3, r3, 30 + 1236: 9823 ld.w r1, (r14, 0xc) + 1238: 9802 ld.w r0, (r14, 0x8) + 123a: b880 st.w r4, (r14, 0x0) + 123c: e0000430 bsr 0x1a9c // 1a9c <__make_dp> + 1240: 1406 addi r14, r14, 24 + 1242: 1491 pop r4, r15 + +00001244 <_fpadd_parts>: + 1244: 14c4 push r4-r7 + 1246: 142a subi r14, r14, 40 + 1248: 9060 ld.w r3, (r0, 0x0) + 124a: 3b01 cmphsi r3, 2 + 124c: 6dcb mov r7, r2 + 124e: 0c67 bf 0x131c // 131c <_fpadd_parts+0xd8> + 1250: 9140 ld.w r2, (r1, 0x0) + 1252: 3a01 cmphsi r2, 2 + 1254: 0c66 bf 0x1320 // 1320 <_fpadd_parts+0xdc> + 1256: 3b44 cmpnei r3, 4 + 1258: 0cde bf 0x1414 // 1414 <_fpadd_parts+0x1d0> + 125a: 3a44 cmpnei r2, 4 + 125c: 0c62 bf 0x1320 // 1320 <_fpadd_parts+0xdc> + 125e: 3a42 cmpnei r2, 2 + 1260: 0cb7 bf 0x13ce // 13ce <_fpadd_parts+0x18a> + 1262: 3b42 cmpnei r3, 2 + 1264: 0c5e bf 0x1320 // 1320 <_fpadd_parts+0xdc> + 1266: 9043 ld.w r2, (r0, 0xc) + 1268: 9064 ld.w r3, (r0, 0x10) + 126a: 9082 ld.w r4, (r0, 0x8) + 126c: 91a2 ld.w r5, (r1, 0x8) + 126e: b842 st.w r2, (r14, 0x8) + 1270: b863 st.w r3, (r14, 0xc) + 1272: 9143 ld.w r2, (r1, 0xc) + 1274: 9164 ld.w r3, (r1, 0x10) + 1276: b840 st.w r2, (r14, 0x0) + 1278: b861 st.w r3, (r14, 0x4) + 127a: 5c75 subu r3, r4, r5 + 127c: 3bdf btsti r3, 31 + 127e: 6c8f mov r2, r3 + 1280: 08d2 bt 0x1424 // 1424 <_fpadd_parts+0x1e0> + 1282: 363f movi r6, 63 + 1284: 6499 cmplt r6, r2 + 1286: 0c50 bf 0x1326 // 1326 <_fpadd_parts+0xe2> + 1288: 6515 cmplt r5, r4 + 128a: 0cbf bf 0x1408 // 1408 <_fpadd_parts+0x1c4> + 128c: 3200 movi r2, 0 + 128e: 3300 movi r3, 0 + 1290: b840 st.w r2, (r14, 0x0) + 1292: b861 st.w r3, (r14, 0x4) + 1294: 9061 ld.w r3, (r0, 0x4) + 1296: 9141 ld.w r2, (r1, 0x4) + 1298: 648e cmpne r3, r2 + 129a: 0c78 bf 0x138a // 138a <_fpadd_parts+0x146> + 129c: 3b40 cmpnei r3, 0 + 129e: 0cad bf 0x13f8 // 13f8 <_fpadd_parts+0x1b4> + 12a0: 9800 ld.w r0, (r14, 0x0) + 12a2: 9821 ld.w r1, (r14, 0x4) + 12a4: 9842 ld.w r2, (r14, 0x8) + 12a6: 9863 ld.w r3, (r14, 0xc) + 12a8: 6400 cmphs r0, r0 + 12aa: 600b subc r0, r2 + 12ac: 604f subc r1, r3 + 12ae: 39df btsti r1, 31 + 12b0: 08bd bt 0x142a // 142a <_fpadd_parts+0x1e6> + 12b2: 3300 movi r3, 0 + 12b4: b761 st.w r3, (r7, 0x4) + 12b6: b782 st.w r4, (r7, 0x8) + 12b8: 6c83 mov r2, r0 + 12ba: 6cc7 mov r3, r1 + 12bc: b703 st.w r0, (r7, 0xc) + 12be: b724 st.w r1, (r7, 0x10) + 12c0: 3000 movi r0, 0 + 12c2: 3100 movi r1, 0 + 12c4: 2800 subi r0, 1 + 12c6: 2900 subi r1, 1 + 12c8: 6401 cmplt r0, r0 + 12ca: 6009 addc r0, r2 + 12cc: 604d addc r1, r3 + 12ce: 038f lrw r4, 0xfffffff // 150c <_fpadd_parts+0x2c8> + 12d0: 6450 cmphs r4, r1 + 12d2: 0c67 bf 0x13a0 // 13a0 <_fpadd_parts+0x15c> + 12d4: 6506 cmpne r1, r4 + 12d6: 0cfd bf 0x14d0 // 14d0 <_fpadd_parts+0x28c> + 12d8: 3000 movi r0, 0 + 12da: 9722 ld.w r1, (r7, 0x8) + 12dc: 2801 subi r0, 2 + 12de: 2900 subi r1, 1 + 12e0: 03d4 lrw r6, 0xfffffff // 150c <_fpadd_parts+0x2c8> + 12e2: b802 st.w r0, (r14, 0x8) + 12e4: b8e0 st.w r7, (r14, 0x0) + 12e6: 0403 br 0x12ec // 12ec <_fpadd_parts+0xa8> + 12e8: 6596 cmpne r5, r6 + 12ea: 0c83 bf 0x13f0 // 13f0 <_fpadd_parts+0x1ac> + 12ec: 4301 lsli r0, r3, 1 + 12ee: 4a9f lsri r4, r2, 31 + 12f0: 6d00 or r4, r0 + 12f2: 42a1 lsli r5, r2, 1 + 12f4: 6c97 mov r2, r5 + 12f6: 6cd3 mov r3, r4 + 12f8: 3500 movi r5, 0 + 12fa: 3400 movi r4, 0 + 12fc: 2c00 subi r4, 1 + 12fe: 2d00 subi r5, 1 + 1300: 6511 cmplt r4, r4 + 1302: 6109 addc r4, r2 + 1304: 614d addc r5, r3 + 1306: 6558 cmphs r6, r5 + 1308: 6c07 mov r0, r1 + 130a: 2900 subi r1, 1 + 130c: 0bee bt 0x12e8 // 12e8 <_fpadd_parts+0xa4> + 130e: 98e0 ld.w r7, (r14, 0x0) + 1310: b743 st.w r2, (r7, 0xc) + 1312: b764 st.w r3, (r7, 0x10) + 1314: 3303 movi r3, 3 + 1316: b702 st.w r0, (r7, 0x8) + 1318: b760 st.w r3, (r7, 0x0) + 131a: 6c1f mov r0, r7 + 131c: 140a addi r14, r14, 40 + 131e: 1484 pop r4-r7 + 1320: 6c07 mov r0, r1 + 1322: 140a addi r14, r14, 40 + 1324: 1484 pop r4-r7 + 1326: 3b20 cmplti r3, 1 + 1328: 088c bt 0x1440 // 1440 <_fpadd_parts+0x1fc> + 132a: 3300 movi r3, 0 + 132c: 2b1f subi r3, 32 + 132e: 60c8 addu r3, r2 + 1330: 3bdf btsti r3, 31 + 1332: b866 st.w r3, (r14, 0x18) + 1334: 08bb bt 0x14aa // 14aa <_fpadd_parts+0x266> + 1336: 98a1 ld.w r5, (r14, 0x4) + 1338: 714d lsr r5, r3 + 133a: b8a4 st.w r5, (r14, 0x10) + 133c: 3500 movi r5, 0 + 133e: b8a5 st.w r5, (r14, 0x14) + 1340: 9866 ld.w r3, (r14, 0x18) + 1342: 3bdf btsti r3, 31 + 1344: 3500 movi r5, 0 + 1346: 3600 movi r6, 0 + 1348: 08ad bt 0x14a2 // 14a2 <_fpadd_parts+0x25e> + 134a: 3201 movi r2, 1 + 134c: 708c lsl r2, r3 + 134e: 6d8b mov r6, r2 + 1350: 3200 movi r2, 0 + 1352: 3300 movi r3, 0 + 1354: 2a00 subi r2, 1 + 1356: 2b00 subi r3, 1 + 1358: 6489 cmplt r2, r2 + 135a: 6095 addc r2, r5 + 135c: 60d9 addc r3, r6 + 135e: 98a0 ld.w r5, (r14, 0x0) + 1360: 98c1 ld.w r6, (r14, 0x4) + 1362: 6948 and r5, r2 + 1364: 698c and r6, r3 + 1366: 6c97 mov r2, r5 + 1368: 6cdb mov r3, r6 + 136a: 6c8c or r2, r3 + 136c: 3a40 cmpnei r2, 0 + 136e: 3500 movi r5, 0 + 1370: 6155 addc r5, r5 + 1372: 6c97 mov r2, r5 + 1374: 3300 movi r3, 0 + 1376: 98a4 ld.w r5, (r14, 0x10) + 1378: 98c5 ld.w r6, (r14, 0x14) + 137a: 6d48 or r5, r2 + 137c: 6d8c or r6, r3 + 137e: 9061 ld.w r3, (r0, 0x4) + 1380: 9141 ld.w r2, (r1, 0x4) + 1382: 648e cmpne r3, r2 + 1384: b8a0 st.w r5, (r14, 0x0) + 1386: b8c1 st.w r6, (r14, 0x4) + 1388: 0b8a bt 0x129c // 129c <_fpadd_parts+0x58> + 138a: b761 st.w r3, (r7, 0x4) + 138c: 9800 ld.w r0, (r14, 0x0) + 138e: 9821 ld.w r1, (r14, 0x4) + 1390: 9842 ld.w r2, (r14, 0x8) + 1392: 9863 ld.w r3, (r14, 0xc) + 1394: 6489 cmplt r2, r2 + 1396: 6081 addc r2, r0 + 1398: 60c5 addc r3, r1 + 139a: b782 st.w r4, (r7, 0x8) + 139c: b743 st.w r2, (r7, 0xc) + 139e: b764 st.w r3, (r7, 0x10) + 13a0: 3103 movi r1, 3 + 13a2: b720 st.w r1, (r7, 0x0) + 13a4: 123b lrw r1, 0x1fffffff // 1510 <_fpadd_parts+0x2cc> + 13a6: 64c4 cmphs r1, r3 + 13a8: 0810 bt 0x13c8 // 13c8 <_fpadd_parts+0x184> + 13aa: 439f lsli r4, r3, 31 + 13ac: 4a01 lsri r0, r2, 1 + 13ae: 6c10 or r0, r4 + 13b0: 3500 movi r5, 0 + 13b2: 3401 movi r4, 1 + 13b4: 4b21 lsri r1, r3, 1 + 13b6: 6890 and r2, r4 + 13b8: 68d4 and r3, r5 + 13ba: 6c80 or r2, r0 + 13bc: 6cc4 or r3, r1 + 13be: b743 st.w r2, (r7, 0xc) + 13c0: b764 st.w r3, (r7, 0x10) + 13c2: 9762 ld.w r3, (r7, 0x8) + 13c4: 2300 addi r3, 1 + 13c6: b762 st.w r3, (r7, 0x8) + 13c8: 6c1f mov r0, r7 + 13ca: 140a addi r14, r14, 40 + 13cc: 1484 pop r4-r7 + 13ce: 3b42 cmpnei r3, 2 + 13d0: 0ba6 bt 0x131c // 131c <_fpadd_parts+0xd8> + 13d2: b760 st.w r3, (r7, 0x0) + 13d4: 9061 ld.w r3, (r0, 0x4) + 13d6: b761 st.w r3, (r7, 0x4) + 13d8: 9062 ld.w r3, (r0, 0x8) + 13da: b762 st.w r3, (r7, 0x8) + 13dc: 9063 ld.w r3, (r0, 0xc) + 13de: b763 st.w r3, (r7, 0xc) + 13e0: 9064 ld.w r3, (r0, 0x10) + 13e2: 9141 ld.w r2, (r1, 0x4) + 13e4: b764 st.w r3, (r7, 0x10) + 13e6: 9061 ld.w r3, (r0, 0x4) + 13e8: 68c8 and r3, r2 + 13ea: b761 st.w r3, (r7, 0x4) + 13ec: 6c1f mov r0, r7 + 13ee: 0797 br 0x131c // 131c <_fpadd_parts+0xd8> + 13f0: 98e2 ld.w r7, (r14, 0x8) + 13f2: 651c cmphs r7, r4 + 13f4: 0b7c bt 0x12ec // 12ec <_fpadd_parts+0xa8> + 13f6: 078c br 0x130e // 130e <_fpadd_parts+0xca> + 13f8: 9802 ld.w r0, (r14, 0x8) + 13fa: 9823 ld.w r1, (r14, 0xc) + 13fc: 9840 ld.w r2, (r14, 0x0) + 13fe: 9861 ld.w r3, (r14, 0x4) + 1400: 6400 cmphs r0, r0 + 1402: 600b subc r0, r2 + 1404: 604f subc r1, r3 + 1406: 0754 br 0x12ae // 12ae <_fpadd_parts+0x6a> + 1408: 3200 movi r2, 0 + 140a: 3300 movi r3, 0 + 140c: 6d17 mov r4, r5 + 140e: b842 st.w r2, (r14, 0x8) + 1410: b863 st.w r3, (r14, 0xc) + 1412: 0741 br 0x1294 // 1294 <_fpadd_parts+0x50> + 1414: 3a44 cmpnei r2, 4 + 1416: 0b83 bt 0x131c // 131c <_fpadd_parts+0xd8> + 1418: 9041 ld.w r2, (r0, 0x4) + 141a: 9161 ld.w r3, (r1, 0x4) + 141c: 64ca cmpne r2, r3 + 141e: 0f7f bf 0x131c // 131c <_fpadd_parts+0xd8> + 1420: 111d lrw r0, 0x76e0 // 1514 <_fpadd_parts+0x2d0> + 1422: 077d br 0x131c // 131c <_fpadd_parts+0xd8> + 1424: 3200 movi r2, 0 + 1426: 608e subu r2, r3 + 1428: 072d br 0x1282 // 1282 <_fpadd_parts+0x3e> + 142a: 3301 movi r3, 1 + 142c: b761 st.w r3, (r7, 0x4) + 142e: 3200 movi r2, 0 + 1430: 3300 movi r3, 0 + 1432: 6488 cmphs r2, r2 + 1434: 6083 subc r2, r0 + 1436: 60c7 subc r3, r1 + 1438: b782 st.w r4, (r7, 0x8) + 143a: b743 st.w r2, (r7, 0xc) + 143c: b764 st.w r3, (r7, 0x10) + 143e: 0741 br 0x12c0 // 12c0 <_fpadd_parts+0x7c> + 1440: 3b40 cmpnei r3, 0 + 1442: 0f29 bf 0x1294 // 1294 <_fpadd_parts+0x50> + 1444: 3300 movi r3, 0 + 1446: 2b1f subi r3, 32 + 1448: 60c8 addu r3, r2 + 144a: 3bdf btsti r3, 31 + 144c: 6108 addu r4, r2 + 144e: b866 st.w r3, (r14, 0x18) + 1450: 0849 bt 0x14e2 // 14e2 <_fpadd_parts+0x29e> + 1452: 9863 ld.w r3, (r14, 0xc) + 1454: 98a6 ld.w r5, (r14, 0x18) + 1456: 70d5 lsr r3, r5 + 1458: b864 st.w r3, (r14, 0x10) + 145a: 3300 movi r3, 0 + 145c: b865 st.w r3, (r14, 0x14) + 145e: 9866 ld.w r3, (r14, 0x18) + 1460: 3bdf btsti r3, 31 + 1462: 3500 movi r5, 0 + 1464: 3600 movi r6, 0 + 1466: 083a bt 0x14da // 14da <_fpadd_parts+0x296> + 1468: 3201 movi r2, 1 + 146a: 708c lsl r2, r3 + 146c: 6d8b mov r6, r2 + 146e: 3200 movi r2, 0 + 1470: 3300 movi r3, 0 + 1472: 2a00 subi r2, 1 + 1474: 2b00 subi r3, 1 + 1476: 6489 cmplt r2, r2 + 1478: 6095 addc r2, r5 + 147a: 60d9 addc r3, r6 + 147c: 98a2 ld.w r5, (r14, 0x8) + 147e: 98c3 ld.w r6, (r14, 0xc) + 1480: 6948 and r5, r2 + 1482: 698c and r6, r3 + 1484: 6c97 mov r2, r5 + 1486: 6cdb mov r3, r6 + 1488: 6c8c or r2, r3 + 148a: 3a40 cmpnei r2, 0 + 148c: 3500 movi r5, 0 + 148e: 6155 addc r5, r5 + 1490: 6c97 mov r2, r5 + 1492: 3300 movi r3, 0 + 1494: 98a4 ld.w r5, (r14, 0x10) + 1496: 98c5 ld.w r6, (r14, 0x14) + 1498: 6d48 or r5, r2 + 149a: 6d8c or r6, r3 + 149c: b8a2 st.w r5, (r14, 0x8) + 149e: b8c3 st.w r6, (r14, 0xc) + 14a0: 06fa br 0x1294 // 1294 <_fpadd_parts+0x50> + 14a2: 3301 movi r3, 1 + 14a4: 70c8 lsl r3, r2 + 14a6: 6d4f mov r5, r3 + 14a8: 0754 br 0x1350 // 1350 <_fpadd_parts+0x10c> + 14aa: 9861 ld.w r3, (r14, 0x4) + 14ac: 361f movi r6, 31 + 14ae: 43a1 lsli r5, r3, 1 + 14b0: 618a subu r6, r2 + 14b2: 7158 lsl r5, r6 + 14b4: b8a9 st.w r5, (r14, 0x24) + 14b6: 98a0 ld.w r5, (r14, 0x0) + 14b8: 98c1 ld.w r6, (r14, 0x4) + 14ba: b8a7 st.w r5, (r14, 0x1c) + 14bc: b8c8 st.w r6, (r14, 0x20) + 14be: 9867 ld.w r3, (r14, 0x1c) + 14c0: 70c9 lsr r3, r2 + 14c2: 98a9 ld.w r5, (r14, 0x24) + 14c4: 6cd4 or r3, r5 + 14c6: b864 st.w r3, (r14, 0x10) + 14c8: 9868 ld.w r3, (r14, 0x20) + 14ca: 70c9 lsr r3, r2 + 14cc: b865 st.w r3, (r14, 0x14) + 14ce: 0739 br 0x1340 // 1340 <_fpadd_parts+0xfc> + 14d0: 3100 movi r1, 0 + 14d2: 2901 subi r1, 2 + 14d4: 6404 cmphs r1, r0 + 14d6: 0b01 bt 0x12d8 // 12d8 <_fpadd_parts+0x94> + 14d8: 0764 br 0x13a0 // 13a0 <_fpadd_parts+0x15c> + 14da: 3301 movi r3, 1 + 14dc: 70c8 lsl r3, r2 + 14de: 6d4f mov r5, r3 + 14e0: 07c7 br 0x146e // 146e <_fpadd_parts+0x22a> + 14e2: 9863 ld.w r3, (r14, 0xc) + 14e4: 43c1 lsli r6, r3, 1 + 14e6: 351f movi r5, 31 + 14e8: 5d69 subu r3, r5, r2 + 14ea: 6d5b mov r5, r6 + 14ec: 714c lsl r5, r3 + 14ee: b8a9 st.w r5, (r14, 0x24) + 14f0: 98a2 ld.w r5, (r14, 0x8) + 14f2: 98c3 ld.w r6, (r14, 0xc) + 14f4: b8a7 st.w r5, (r14, 0x1c) + 14f6: b8c8 st.w r6, (r14, 0x20) + 14f8: 9867 ld.w r3, (r14, 0x1c) + 14fa: 70c9 lsr r3, r2 + 14fc: 98a9 ld.w r5, (r14, 0x24) + 14fe: 6cd4 or r3, r5 + 1500: b864 st.w r3, (r14, 0x10) + 1502: 9868 ld.w r3, (r14, 0x20) + 1504: 70c9 lsr r3, r2 + 1506: b865 st.w r3, (r14, 0x14) + 1508: 07ab br 0x145e // 145e <_fpadd_parts+0x21a> + 150a: 0000 bkpt + 150c: 0fffffff .long 0x0fffffff + 1510: 1fffffff .long 0x1fffffff + 1514: 000076e0 .long 0x000076e0 + +00001518 <__adddf3>: + 1518: 14d0 push r15 + 151a: 1433 subi r14, r14, 76 + 151c: b800 st.w r0, (r14, 0x0) + 151e: b821 st.w r1, (r14, 0x4) + 1520: 6c3b mov r0, r14 + 1522: 1904 addi r1, r14, 16 + 1524: b863 st.w r3, (r14, 0xc) + 1526: b842 st.w r2, (r14, 0x8) + 1528: e0000506 bsr 0x1f34 // 1f34 <__unpack_d> + 152c: 1909 addi r1, r14, 36 + 152e: 1802 addi r0, r14, 8 + 1530: e0000502 bsr 0x1f34 // 1f34 <__unpack_d> + 1534: 1a0e addi r2, r14, 56 + 1536: 1909 addi r1, r14, 36 + 1538: 1804 addi r0, r14, 16 + 153a: e3fffe85 bsr 0x1244 // 1244 <_fpadd_parts> + 153e: e000042d bsr 0x1d98 // 1d98 <__pack_d> + 1542: 1413 addi r14, r14, 76 + 1544: 1490 pop r15 + ... + +00001548 <__subdf3>: + 1548: 14d0 push r15 + 154a: 1433 subi r14, r14, 76 + 154c: b800 st.w r0, (r14, 0x0) + 154e: b821 st.w r1, (r14, 0x4) + 1550: 6c3b mov r0, r14 + 1552: 1904 addi r1, r14, 16 + 1554: b842 st.w r2, (r14, 0x8) + 1556: b863 st.w r3, (r14, 0xc) + 1558: e00004ee bsr 0x1f34 // 1f34 <__unpack_d> + 155c: 1909 addi r1, r14, 36 + 155e: 1802 addi r0, r14, 8 + 1560: e00004ea bsr 0x1f34 // 1f34 <__unpack_d> + 1564: 986a ld.w r3, (r14, 0x28) + 1566: 3201 movi r2, 1 + 1568: 6cc9 xor r3, r2 + 156a: 1909 addi r1, r14, 36 + 156c: 1a0e addi r2, r14, 56 + 156e: 1804 addi r0, r14, 16 + 1570: b86a st.w r3, (r14, 0x28) + 1572: e3fffe69 bsr 0x1244 // 1244 <_fpadd_parts> + 1576: e0000411 bsr 0x1d98 // 1d98 <__pack_d> + 157a: 1413 addi r14, r14, 76 + 157c: 1490 pop r15 + ... + +00001580 <__muldf3>: + 1580: 14d4 push r4-r7, r15 + 1582: 143b subi r14, r14, 108 + 1584: b808 st.w r0, (r14, 0x20) + 1586: b829 st.w r1, (r14, 0x24) + 1588: 1808 addi r0, r14, 32 + 158a: 190c addi r1, r14, 48 + 158c: b86b st.w r3, (r14, 0x2c) + 158e: b84a st.w r2, (r14, 0x28) + 1590: e00004d2 bsr 0x1f34 // 1f34 <__unpack_d> + 1594: 1911 addi r1, r14, 68 + 1596: 180a addi r0, r14, 40 + 1598: e00004ce bsr 0x1f34 // 1f34 <__unpack_d> + 159c: 986c ld.w r3, (r14, 0x30) + 159e: 3b01 cmphsi r3, 2 + 15a0: 0cac bf 0x16f8 // 16f8 <__muldf3+0x178> + 15a2: 9851 ld.w r2, (r14, 0x44) + 15a4: 3a01 cmphsi r2, 2 + 15a6: 0c9c bf 0x16de // 16de <__muldf3+0x15e> + 15a8: 3b44 cmpnei r3, 4 + 15aa: 0ca5 bf 0x16f4 // 16f4 <__muldf3+0x174> + 15ac: 3a44 cmpnei r2, 4 + 15ae: 0c96 bf 0x16da // 16da <__muldf3+0x15a> + 15b0: 3b42 cmpnei r3, 2 + 15b2: 0ca3 bf 0x16f8 // 16f8 <__muldf3+0x178> + 15b4: 3a42 cmpnei r2, 2 + 15b6: 0c94 bf 0x16de // 16de <__muldf3+0x15e> + 15b8: 98ef ld.w r7, (r14, 0x3c) + 15ba: 98b4 ld.w r5, (r14, 0x50) + 15bc: 9875 ld.w r3, (r14, 0x54) + 15be: 6d8f mov r6, r3 + 15c0: 6c9f mov r2, r7 + 15c2: 3300 movi r3, 0 + 15c4: 6c17 mov r0, r5 + 15c6: 3100 movi r1, 0 + 15c8: e00002c0 bsr 0x1b48 // 1b48 <__muldi3> + 15cc: b804 st.w r0, (r14, 0x10) + 15ce: b825 st.w r1, (r14, 0x14) + 15d0: 6c9f mov r2, r7 + 15d2: 3300 movi r3, 0 + 15d4: 6c1b mov r0, r6 + 15d6: 3100 movi r1, 0 + 15d8: 9890 ld.w r4, (r14, 0x40) + 15da: b8c2 st.w r6, (r14, 0x8) + 15dc: e00002b6 bsr 0x1b48 // 1b48 <__muldi3> + 15e0: 6d83 mov r6, r0 + 15e2: 6dc7 mov r7, r1 + 15e4: 9842 ld.w r2, (r14, 0x8) + 15e6: 3300 movi r3, 0 + 15e8: 6c13 mov r0, r4 + 15ea: 3100 movi r1, 0 + 15ec: e00002ae bsr 0x1b48 // 1b48 <__muldi3> + 15f0: b806 st.w r0, (r14, 0x18) + 15f2: b827 st.w r1, (r14, 0x1c) + 15f4: 6c97 mov r2, r5 + 15f6: 3300 movi r3, 0 + 15f8: 6c13 mov r0, r4 + 15fa: 3100 movi r1, 0 + 15fc: e00002a6 bsr 0x1b48 // 1b48 <__muldi3> + 1600: 6401 cmplt r0, r0 + 1602: 6019 addc r0, r6 + 1604: 605d addc r1, r7 + 1606: 65c4 cmphs r1, r7 + 1608: 0c91 bf 0x172a // 172a <__muldf3+0x1aa> + 160a: 645e cmpne r7, r1 + 160c: 0c8d bf 0x1726 // 1726 <__muldf3+0x1a6> + 160e: 3300 movi r3, 0 + 1610: 3400 movi r4, 0 + 1612: b862 st.w r3, (r14, 0x8) + 1614: b883 st.w r4, (r14, 0xc) + 1616: 9884 ld.w r4, (r14, 0x10) + 1618: 98a5 ld.w r5, (r14, 0x14) + 161a: 3600 movi r6, 0 + 161c: 6dc3 mov r7, r0 + 161e: 6c93 mov r2, r4 + 1620: 6cd7 mov r3, r5 + 1622: 6489 cmplt r2, r2 + 1624: 6099 addc r2, r6 + 1626: 60dd addc r3, r7 + 1628: 6d8b mov r6, r2 + 162a: 6dcf mov r7, r3 + 162c: 6c93 mov r2, r4 + 162e: 6cd7 mov r3, r5 + 1630: 64dc cmphs r7, r3 + 1632: 0c70 bf 0x1712 // 1712 <__muldf3+0x192> + 1634: 65ce cmpne r3, r7 + 1636: 0c6c bf 0x170e // 170e <__muldf3+0x18e> + 1638: 6c87 mov r2, r1 + 163a: 3300 movi r3, 0 + 163c: 9806 ld.w r0, (r14, 0x18) + 163e: 9827 ld.w r1, (r14, 0x1c) + 1640: 6401 cmplt r0, r0 + 1642: 6009 addc r0, r2 + 1644: 604d addc r1, r3 + 1646: 6c83 mov r2, r0 + 1648: 6cc7 mov r3, r1 + 164a: 9802 ld.w r0, (r14, 0x8) + 164c: 9823 ld.w r1, (r14, 0xc) + 164e: 6401 cmplt r0, r0 + 1650: 6009 addc r0, r2 + 1652: 604d addc r1, r3 + 1654: 6c83 mov r2, r0 + 1656: 6cc7 mov r3, r1 + 1658: 988e ld.w r4, (r14, 0x38) + 165a: 9833 ld.w r1, (r14, 0x4c) + 165c: 6104 addu r4, r1 + 165e: 5c2e addi r1, r4, 4 + 1660: b838 st.w r1, (r14, 0x60) + 1662: 980d ld.w r0, (r14, 0x34) + 1664: 9832 ld.w r1, (r14, 0x48) + 1666: 6442 cmpne r0, r1 + 1668: 12b0 lrw r5, 0x1fffffff // 17a8 <__muldf3+0x228> + 166a: 3100 movi r1, 0 + 166c: 6045 addc r1, r1 + 166e: 64d4 cmphs r5, r3 + 1670: b837 st.w r1, (r14, 0x5c) + 1672: 0879 bt 0x1764 // 1764 <__muldf3+0x1e4> + 1674: 2404 addi r4, 5 + 1676: b8a4 st.w r5, (r14, 0x10) + 1678: 3001 movi r0, 1 + 167a: 3100 movi r1, 0 + 167c: 6808 and r0, r2 + 167e: 684c and r1, r3 + 1680: 6c04 or r0, r1 + 1682: 3840 cmpnei r0, 0 + 1684: b882 st.w r4, (r14, 0x8) + 1686: 0c0e bf 0x16a2 // 16a2 <__muldf3+0x122> + 1688: 473f lsli r1, r7, 31 + 168a: 4e01 lsri r0, r6, 1 + 168c: 6c04 or r0, r1 + 168e: 4f21 lsri r1, r7, 1 + 1690: b800 st.w r0, (r14, 0x0) + 1692: b821 st.w r1, (r14, 0x4) + 1694: 3180 movi r1, 128 + 1696: 98c0 ld.w r6, (r14, 0x0) + 1698: 98e1 ld.w r7, (r14, 0x4) + 169a: 3000 movi r0, 0 + 169c: 4138 lsli r1, r1, 24 + 169e: 6d80 or r6, r0 + 16a0: 6dc4 or r7, r1 + 16a2: 4b21 lsri r1, r3, 1 + 16a4: 43bf lsli r5, r3, 31 + 16a6: 4a01 lsri r0, r2, 1 + 16a8: 6cc7 mov r3, r1 + 16aa: 9824 ld.w r1, (r14, 0x10) + 16ac: 6d40 or r5, r0 + 16ae: 64c4 cmphs r1, r3 + 16b0: 6c97 mov r2, r5 + 16b2: 2400 addi r4, 1 + 16b4: 0fe2 bf 0x1678 // 1678 <__muldf3+0xf8> + 16b6: 9822 ld.w r1, (r14, 0x8) + 16b8: b838 st.w r1, (r14, 0x60) + 16ba: 30ff movi r0, 255 + 16bc: 3100 movi r1, 0 + 16be: 6808 and r0, r2 + 16c0: 684c and r1, r3 + 16c2: 3480 movi r4, 128 + 16c4: 6502 cmpne r0, r4 + 16c6: 0c37 bf 0x1734 // 1734 <__muldf3+0x1b4> + 16c8: b859 st.w r2, (r14, 0x64) + 16ca: b87a st.w r3, (r14, 0x68) + 16cc: 3303 movi r3, 3 + 16ce: b876 st.w r3, (r14, 0x58) + 16d0: 1816 addi r0, r14, 88 + 16d2: e0000363 bsr 0x1d98 // 1d98 <__pack_d> + 16d6: 141b addi r14, r14, 108 + 16d8: 1494 pop r4-r7, r15 + 16da: 3b42 cmpnei r3, 2 + 16dc: 0c42 bf 0x1760 // 1760 <__muldf3+0x1e0> + 16de: 9872 ld.w r3, (r14, 0x48) + 16e0: 984d ld.w r2, (r14, 0x34) + 16e2: 64ca cmpne r2, r3 + 16e4: 3300 movi r3, 0 + 16e6: 60cd addc r3, r3 + 16e8: 1811 addi r0, r14, 68 + 16ea: b872 st.w r3, (r14, 0x48) + 16ec: e0000356 bsr 0x1d98 // 1d98 <__pack_d> + 16f0: 141b addi r14, r14, 108 + 16f2: 1494 pop r4-r7, r15 + 16f4: 3a42 cmpnei r2, 2 + 16f6: 0c35 bf 0x1760 // 1760 <__muldf3+0x1e0> + 16f8: 984d ld.w r2, (r14, 0x34) + 16fa: 9872 ld.w r3, (r14, 0x48) + 16fc: 64ca cmpne r2, r3 + 16fe: 3300 movi r3, 0 + 1700: 60cd addc r3, r3 + 1702: 180c addi r0, r14, 48 + 1704: b86d st.w r3, (r14, 0x34) + 1706: e0000349 bsr 0x1d98 // 1d98 <__pack_d> + 170a: 141b addi r14, r14, 108 + 170c: 1494 pop r4-r7, r15 + 170e: 6498 cmphs r6, r2 + 1710: 0b94 bt 0x1638 // 1638 <__muldf3+0xb8> + 1712: 9882 ld.w r4, (r14, 0x8) + 1714: 98a3 ld.w r5, (r14, 0xc) + 1716: 3201 movi r2, 1 + 1718: 3300 movi r3, 0 + 171a: 6511 cmplt r4, r4 + 171c: 6109 addc r4, r2 + 171e: 614d addc r5, r3 + 1720: b882 st.w r4, (r14, 0x8) + 1722: b8a3 st.w r5, (r14, 0xc) + 1724: 078a br 0x1638 // 1638 <__muldf3+0xb8> + 1726: 6580 cmphs r0, r6 + 1728: 0b73 bt 0x160e // 160e <__muldf3+0x8e> + 172a: 3300 movi r3, 0 + 172c: 3401 movi r4, 1 + 172e: b862 st.w r3, (r14, 0x8) + 1730: b883 st.w r4, (r14, 0xc) + 1732: 0772 br 0x1616 // 1616 <__muldf3+0x96> + 1734: 3940 cmpnei r1, 0 + 1736: 0bc9 bt 0x16c8 // 16c8 <__muldf3+0x148> + 1738: 3180 movi r1, 128 + 173a: 4121 lsli r1, r1, 1 + 173c: 6848 and r1, r2 + 173e: 3940 cmpnei r1, 0 + 1740: 0bc4 bt 0x16c8 // 16c8 <__muldf3+0x148> + 1742: 6c5b mov r1, r6 + 1744: 6c5c or r1, r7 + 1746: 3940 cmpnei r1, 0 + 1748: 0fc0 bf 0x16c8 // 16c8 <__muldf3+0x148> + 174a: 3080 movi r0, 128 + 174c: 3100 movi r1, 0 + 174e: 6401 cmplt r0, r0 + 1750: 6009 addc r0, r2 + 1752: 604d addc r1, r3 + 1754: 34ff movi r4, 255 + 1756: 6d43 mov r5, r0 + 1758: 6951 andn r5, r4 + 175a: 6c97 mov r2, r5 + 175c: 6cc7 mov r3, r1 + 175e: 07b5 br 0x16c8 // 16c8 <__muldf3+0x148> + 1760: 1013 lrw r0, 0x76e0 // 17ac <__muldf3+0x22c> + 1762: 07b8 br 0x16d2 // 16d2 <__muldf3+0x152> + 1764: 1033 lrw r1, 0xfffffff // 17b0 <__muldf3+0x230> + 1766: 64c4 cmphs r1, r3 + 1768: 0fa9 bf 0x16ba // 16ba <__muldf3+0x13a> + 176a: 2402 addi r4, 3 + 176c: b822 st.w r1, (r14, 0x8) + 176e: 4a1f lsri r0, r2, 31 + 1770: 4321 lsli r1, r3, 1 + 1772: 42a1 lsli r5, r2, 1 + 1774: 6c04 or r0, r1 + 1776: 3fdf btsti r7, 31 + 1778: b880 st.w r4, (r14, 0x0) + 177a: 6c97 mov r2, r5 + 177c: 6cc3 mov r3, r0 + 177e: 0c07 bf 0x178c // 178c <__muldf3+0x20c> + 1780: 3001 movi r0, 1 + 1782: 3100 movi r1, 0 + 1784: 6c08 or r0, r2 + 1786: 6c4c or r1, r3 + 1788: 6c83 mov r2, r0 + 178a: 6cc7 mov r3, r1 + 178c: 4721 lsli r1, r7, 1 + 178e: 4e1f lsri r0, r6, 31 + 1790: 6c04 or r0, r1 + 1792: 9822 ld.w r1, (r14, 0x8) + 1794: 46a1 lsli r5, r6, 1 + 1796: 64c4 cmphs r1, r3 + 1798: 6d97 mov r6, r5 + 179a: 6dc3 mov r7, r0 + 179c: 2c00 subi r4, 1 + 179e: 0be8 bt 0x176e // 176e <__muldf3+0x1ee> + 17a0: 9820 ld.w r1, (r14, 0x0) + 17a2: b838 st.w r1, (r14, 0x60) + 17a4: 078b br 0x16ba // 16ba <__muldf3+0x13a> + 17a6: 0000 bkpt + 17a8: 1fffffff .long 0x1fffffff + 17ac: 000076e0 .long 0x000076e0 + 17b0: 0fffffff .long 0x0fffffff + +000017b4 <__divdf3>: + 17b4: 14d4 push r4-r7, r15 + 17b6: 1432 subi r14, r14, 72 + 17b8: b804 st.w r0, (r14, 0x10) + 17ba: b825 st.w r1, (r14, 0x14) + 17bc: 1804 addi r0, r14, 16 + 17be: 1908 addi r1, r14, 32 + 17c0: b867 st.w r3, (r14, 0x1c) + 17c2: b846 st.w r2, (r14, 0x18) + 17c4: e00003b8 bsr 0x1f34 // 1f34 <__unpack_d> + 17c8: 190d addi r1, r14, 52 + 17ca: 1806 addi r0, r14, 24 + 17cc: e00003b4 bsr 0x1f34 // 1f34 <__unpack_d> + 17d0: 9868 ld.w r3, (r14, 0x20) + 17d2: 3b01 cmphsi r3, 2 + 17d4: 0c66 bf 0x18a0 // 18a0 <__divdf3+0xec> + 17d6: 982d ld.w r1, (r14, 0x34) + 17d8: 3901 cmphsi r1, 2 + 17da: 0c92 bf 0x18fe // 18fe <__divdf3+0x14a> + 17dc: 9849 ld.w r2, (r14, 0x24) + 17de: 980e ld.w r0, (r14, 0x38) + 17e0: 6c81 xor r2, r0 + 17e2: 3b44 cmpnei r3, 4 + 17e4: b849 st.w r2, (r14, 0x24) + 17e6: 0c62 bf 0x18aa // 18aa <__divdf3+0xf6> + 17e8: 3b42 cmpnei r3, 2 + 17ea: 0c60 bf 0x18aa // 18aa <__divdf3+0xf6> + 17ec: 3944 cmpnei r1, 4 + 17ee: 0c62 bf 0x18b2 // 18b2 <__divdf3+0xfe> + 17f0: 3942 cmpnei r1, 2 + 17f2: 0c82 bf 0x18f6 // 18f6 <__divdf3+0x142> + 17f4: 982a ld.w r1, (r14, 0x28) + 17f6: 986f ld.w r3, (r14, 0x3c) + 17f8: 604e subu r1, r3 + 17fa: 9890 ld.w r4, (r14, 0x40) + 17fc: 98b1 ld.w r5, (r14, 0x44) + 17fe: 984b ld.w r2, (r14, 0x2c) + 1800: 986c ld.w r3, (r14, 0x30) + 1802: 654c cmphs r3, r5 + 1804: b82a st.w r1, (r14, 0x28) + 1806: 6d93 mov r6, r4 + 1808: 6dd7 mov r7, r5 + 180a: 0c05 bf 0x1814 // 1814 <__divdf3+0x60> + 180c: 64d6 cmpne r5, r3 + 180e: 080b bt 0x1824 // 1824 <__divdf3+0x70> + 1810: 6508 cmphs r2, r4 + 1812: 0809 bt 0x1824 // 1824 <__divdf3+0x70> + 1814: 4a9f lsri r4, r2, 31 + 1816: 4301 lsli r0, r3, 1 + 1818: 42a1 lsli r5, r2, 1 + 181a: 6d00 or r4, r0 + 181c: 2900 subi r1, 1 + 181e: 6c97 mov r2, r5 + 1820: 6cd3 mov r3, r4 + 1822: b82a st.w r1, (r14, 0x28) + 1824: 3000 movi r0, 0 + 1826: 3100 movi r1, 0 + 1828: b802 st.w r0, (r14, 0x8) + 182a: b823 st.w r1, (r14, 0xc) + 182c: 3180 movi r1, 128 + 182e: 343d movi r4, 61 + 1830: 3000 movi r0, 0 + 1832: 4135 lsli r1, r1, 21 + 1834: b8c0 st.w r6, (r14, 0x0) + 1836: b8e1 st.w r7, (r14, 0x4) + 1838: 98a0 ld.w r5, (r14, 0x0) + 183a: 98c1 ld.w r6, (r14, 0x4) + 183c: 658c cmphs r3, r6 + 183e: 0c10 bf 0x185e // 185e <__divdf3+0xaa> + 1840: 64da cmpne r6, r3 + 1842: 0803 bt 0x1848 // 1848 <__divdf3+0x94> + 1844: 6548 cmphs r2, r5 + 1846: 0c0c bf 0x185e // 185e <__divdf3+0xaa> + 1848: 98a2 ld.w r5, (r14, 0x8) + 184a: 98c3 ld.w r6, (r14, 0xc) + 184c: 6d40 or r5, r0 + 184e: 6d84 or r6, r1 + 1850: b8a2 st.w r5, (r14, 0x8) + 1852: b8c3 st.w r6, (r14, 0xc) + 1854: 98a0 ld.w r5, (r14, 0x0) + 1856: 98c1 ld.w r6, (r14, 0x4) + 1858: 6488 cmphs r2, r2 + 185a: 6097 subc r2, r5 + 185c: 60db subc r3, r6 + 185e: 41bf lsli r5, r1, 31 + 1860: 48e1 lsri r7, r0, 1 + 1862: 6d97 mov r6, r5 + 1864: 49a1 lsri r5, r1, 1 + 1866: 6d9c or r6, r7 + 1868: 6c57 mov r1, r5 + 186a: 4abf lsri r5, r2, 31 + 186c: 6c1b mov r0, r6 + 186e: 2c00 subi r4, 1 + 1870: 6d97 mov r6, r5 + 1872: 43a1 lsli r5, r3, 1 + 1874: 6d94 or r6, r5 + 1876: 4261 lsli r3, r2, 1 + 1878: 3c40 cmpnei r4, 0 + 187a: 6dcf mov r7, r3 + 187c: 6c8f mov r2, r3 + 187e: 6cdb mov r3, r6 + 1880: 0bdc bt 0x1838 // 1838 <__divdf3+0x84> + 1882: 30ff movi r0, 255 + 1884: 3100 movi r1, 0 + 1886: 9882 ld.w r4, (r14, 0x8) + 1888: 98a3 ld.w r5, (r14, 0xc) + 188a: 6900 and r4, r0 + 188c: 6944 and r5, r1 + 188e: 6c13 mov r0, r4 + 1890: 6c57 mov r1, r5 + 1892: 3480 movi r4, 128 + 1894: 6502 cmpne r0, r4 + 1896: 0c15 bf 0x18c0 // 18c0 <__divdf3+0x10c> + 1898: 9862 ld.w r3, (r14, 0x8) + 189a: 9883 ld.w r4, (r14, 0xc) + 189c: b86b st.w r3, (r14, 0x2c) + 189e: b88c st.w r4, (r14, 0x30) + 18a0: 1808 addi r0, r14, 32 + 18a2: e000027b bsr 0x1d98 // 1d98 <__pack_d> + 18a6: 1412 addi r14, r14, 72 + 18a8: 1494 pop r4-r7, r15 + 18aa: 644e cmpne r3, r1 + 18ac: 0bfa bt 0x18a0 // 18a0 <__divdf3+0xec> + 18ae: 1016 lrw r0, 0x76e0 // 1904 <__divdf3+0x150> + 18b0: 07f9 br 0x18a2 // 18a2 <__divdf3+0xee> + 18b2: 3300 movi r3, 0 + 18b4: 3400 movi r4, 0 + 18b6: b86b st.w r3, (r14, 0x2c) + 18b8: b88c st.w r4, (r14, 0x30) + 18ba: b86a st.w r3, (r14, 0x28) + 18bc: 1808 addi r0, r14, 32 + 18be: 07f2 br 0x18a2 // 18a2 <__divdf3+0xee> + 18c0: 3940 cmpnei r1, 0 + 18c2: 0beb bt 0x1898 // 1898 <__divdf3+0xe4> + 18c4: 3180 movi r1, 128 + 18c6: 4121 lsli r1, r1, 1 + 18c8: 9882 ld.w r4, (r14, 0x8) + 18ca: 98a3 ld.w r5, (r14, 0xc) + 18cc: 6850 and r1, r4 + 18ce: 3940 cmpnei r1, 0 + 18d0: 0be4 bt 0x1898 // 1898 <__divdf3+0xe4> + 18d2: 6c98 or r2, r6 + 18d4: 3a40 cmpnei r2, 0 + 18d6: 0fe1 bf 0x1898 // 1898 <__divdf3+0xe4> + 18d8: 3280 movi r2, 128 + 18da: 3300 movi r3, 0 + 18dc: 6c13 mov r0, r4 + 18de: 6c57 mov r1, r5 + 18e0: 6401 cmplt r0, r0 + 18e2: 6009 addc r0, r2 + 18e4: 604d addc r1, r3 + 18e6: 6c83 mov r2, r0 + 18e8: 6cc7 mov r3, r1 + 18ea: 6c0b mov r0, r2 + 18ec: 31ff movi r1, 255 + 18ee: 6805 andn r0, r1 + 18f0: b802 st.w r0, (r14, 0x8) + 18f2: b863 st.w r3, (r14, 0xc) + 18f4: 07d2 br 0x1898 // 1898 <__divdf3+0xe4> + 18f6: 3304 movi r3, 4 + 18f8: b868 st.w r3, (r14, 0x20) + 18fa: 1808 addi r0, r14, 32 + 18fc: 07d3 br 0x18a2 // 18a2 <__divdf3+0xee> + 18fe: 180d addi r0, r14, 52 + 1900: 07d1 br 0x18a2 // 18a2 <__divdf3+0xee> + 1902: 0000 bkpt + 1904: 000076e0 .long 0x000076e0 + +00001908 <__gtdf2>: + 1908: 14d0 push r15 + 190a: 142e subi r14, r14, 56 + 190c: b800 st.w r0, (r14, 0x0) + 190e: b821 st.w r1, (r14, 0x4) + 1910: 6c3b mov r0, r14 + 1912: 1904 addi r1, r14, 16 + 1914: b863 st.w r3, (r14, 0xc) + 1916: b842 st.w r2, (r14, 0x8) + 1918: e000030e bsr 0x1f34 // 1f34 <__unpack_d> + 191c: 1909 addi r1, r14, 36 + 191e: 1802 addi r0, r14, 8 + 1920: e000030a bsr 0x1f34 // 1f34 <__unpack_d> + 1924: 9864 ld.w r3, (r14, 0x10) + 1926: 3b01 cmphsi r3, 2 + 1928: 0c0a bf 0x193c // 193c <__gtdf2+0x34> + 192a: 9869 ld.w r3, (r14, 0x24) + 192c: 3b01 cmphsi r3, 2 + 192e: 0c07 bf 0x193c // 193c <__gtdf2+0x34> + 1930: 1909 addi r1, r14, 36 + 1932: 1804 addi r0, r14, 16 + 1934: e0000362 bsr 0x1ff8 // 1ff8 <__fpcmp_parts_d> + 1938: 140e addi r14, r14, 56 + 193a: 1490 pop r15 + 193c: 3000 movi r0, 0 + 193e: 2800 subi r0, 1 + 1940: 140e addi r14, r14, 56 + 1942: 1490 pop r15 + +00001944 <__gedf2>: + 1944: 14d0 push r15 + 1946: 142e subi r14, r14, 56 + 1948: b800 st.w r0, (r14, 0x0) + 194a: b821 st.w r1, (r14, 0x4) + 194c: 6c3b mov r0, r14 + 194e: 1904 addi r1, r14, 16 + 1950: b863 st.w r3, (r14, 0xc) + 1952: b842 st.w r2, (r14, 0x8) + 1954: e00002f0 bsr 0x1f34 // 1f34 <__unpack_d> + 1958: 1909 addi r1, r14, 36 + 195a: 1802 addi r0, r14, 8 + 195c: e00002ec bsr 0x1f34 // 1f34 <__unpack_d> + 1960: 9864 ld.w r3, (r14, 0x10) + 1962: 3b01 cmphsi r3, 2 + 1964: 0c0a bf 0x1978 // 1978 <__gedf2+0x34> + 1966: 9869 ld.w r3, (r14, 0x24) + 1968: 3b01 cmphsi r3, 2 + 196a: 0c07 bf 0x1978 // 1978 <__gedf2+0x34> + 196c: 1909 addi r1, r14, 36 + 196e: 1804 addi r0, r14, 16 + 1970: e0000344 bsr 0x1ff8 // 1ff8 <__fpcmp_parts_d> + 1974: 140e addi r14, r14, 56 + 1976: 1490 pop r15 + 1978: 3000 movi r0, 0 + 197a: 2800 subi r0, 1 + 197c: 140e addi r14, r14, 56 + 197e: 1490 pop r15 + +00001980 <__ledf2>: + 1980: 14d0 push r15 + 1982: 142e subi r14, r14, 56 + 1984: b800 st.w r0, (r14, 0x0) + 1986: b821 st.w r1, (r14, 0x4) + 1988: 6c3b mov r0, r14 + 198a: 1904 addi r1, r14, 16 + 198c: b863 st.w r3, (r14, 0xc) + 198e: b842 st.w r2, (r14, 0x8) + 1990: e00002d2 bsr 0x1f34 // 1f34 <__unpack_d> + 1994: 1909 addi r1, r14, 36 + 1996: 1802 addi r0, r14, 8 + 1998: e00002ce bsr 0x1f34 // 1f34 <__unpack_d> + 199c: 9864 ld.w r3, (r14, 0x10) + 199e: 3b01 cmphsi r3, 2 + 19a0: 0c0a bf 0x19b4 // 19b4 <__ledf2+0x34> + 19a2: 9869 ld.w r3, (r14, 0x24) + 19a4: 3b01 cmphsi r3, 2 + 19a6: 0c07 bf 0x19b4 // 19b4 <__ledf2+0x34> + 19a8: 1909 addi r1, r14, 36 + 19aa: 1804 addi r0, r14, 16 + 19ac: e0000326 bsr 0x1ff8 // 1ff8 <__fpcmp_parts_d> + 19b0: 140e addi r14, r14, 56 + 19b2: 1490 pop r15 + 19b4: 3001 movi r0, 1 + 19b6: 140e addi r14, r14, 56 + 19b8: 1490 pop r15 + ... + +000019bc <__floatsidf>: + 19bc: 14d1 push r4, r15 + 19be: 1425 subi r14, r14, 20 + 19c0: 3303 movi r3, 3 + 19c2: b860 st.w r3, (r14, 0x0) + 19c4: 3840 cmpnei r0, 0 + 19c6: 487f lsri r3, r0, 31 + 19c8: b861 st.w r3, (r14, 0x4) + 19ca: 0808 bt 0x19da // 19da <__floatsidf+0x1e> + 19cc: 3302 movi r3, 2 + 19ce: b860 st.w r3, (r14, 0x0) + 19d0: 6c3b mov r0, r14 + 19d2: e00001e3 bsr 0x1d98 // 1d98 <__pack_d> + 19d6: 1405 addi r14, r14, 20 + 19d8: 1491 pop r4, r15 + 19da: 38df btsti r0, 31 + 19dc: 0812 bt 0x1a00 // 1a00 <__floatsidf+0x44> + 19de: 6d03 mov r4, r0 + 19e0: 6c13 mov r0, r4 + 19e2: e00000d5 bsr 0x1b8c // 1b8c <__clzsi2> + 19e6: 321d movi r2, 29 + 19e8: 6080 addu r2, r0 + 19ea: 2802 subi r0, 3 + 19ec: 38df btsti r0, 31 + 19ee: 0810 bt 0x1a0e // 1a0e <__floatsidf+0x52> + 19f0: 7100 lsl r4, r0 + 19f2: 3300 movi r3, 0 + 19f4: b884 st.w r4, (r14, 0x10) + 19f6: b863 st.w r3, (r14, 0xc) + 19f8: 333c movi r3, 60 + 19fa: 60ca subu r3, r2 + 19fc: b862 st.w r3, (r14, 0x8) + 19fe: 07e9 br 0x19d0 // 19d0 <__floatsidf+0x14> + 1a00: 3380 movi r3, 128 + 1a02: 4378 lsli r3, r3, 24 + 1a04: 64c2 cmpne r0, r3 + 1a06: 0c0d bf 0x1a20 // 1a20 <__floatsidf+0x64> + 1a08: 3400 movi r4, 0 + 1a0a: 6102 subu r4, r0 + 1a0c: 07ea br 0x19e0 // 19e0 <__floatsidf+0x24> + 1a0e: 311f movi r1, 31 + 1a10: 4c61 lsri r3, r4, 1 + 1a12: 604a subu r1, r2 + 1a14: 6c13 mov r0, r4 + 1a16: 70c5 lsr r3, r1 + 1a18: 7008 lsl r0, r2 + 1a1a: b864 st.w r3, (r14, 0x10) + 1a1c: b803 st.w r0, (r14, 0xc) + 1a1e: 07ed br 0x19f8 // 19f8 <__floatsidf+0x3c> + 1a20: 3000 movi r0, 0 + 1a22: 1022 lrw r1, 0xc1e00000 // 1a28 <__floatsidf+0x6c> + 1a24: 07d9 br 0x19d6 // 19d6 <__floatsidf+0x1a> + 1a26: 0000 bkpt + 1a28: c1e00000 .long 0xc1e00000 + +00001a2c <__fixdfsi>: + 1a2c: 14d0 push r15 + 1a2e: 1427 subi r14, r14, 28 + 1a30: b800 st.w r0, (r14, 0x0) + 1a32: b821 st.w r1, (r14, 0x4) + 1a34: 6c3b mov r0, r14 + 1a36: 1902 addi r1, r14, 8 + 1a38: e000027e bsr 0x1f34 // 1f34 <__unpack_d> + 1a3c: 9862 ld.w r3, (r14, 0x8) + 1a3e: 3b02 cmphsi r3, 3 + 1a40: 0c20 bf 0x1a80 // 1a80 <__fixdfsi+0x54> + 1a42: 3b44 cmpnei r3, 4 + 1a44: 0c16 bf 0x1a70 // 1a70 <__fixdfsi+0x44> + 1a46: 9864 ld.w r3, (r14, 0x10) + 1a48: 3bdf btsti r3, 31 + 1a4a: 081b bt 0x1a80 // 1a80 <__fixdfsi+0x54> + 1a4c: 3b3e cmplti r3, 31 + 1a4e: 0c11 bf 0x1a70 // 1a70 <__fixdfsi+0x44> + 1a50: 323c movi r2, 60 + 1a52: 5a6d subu r3, r2, r3 + 1a54: 3200 movi r2, 0 + 1a56: 2a1f subi r2, 32 + 1a58: 608c addu r2, r3 + 1a5a: 3adf btsti r2, 31 + 1a5c: 0815 bt 0x1a86 // 1a86 <__fixdfsi+0x5a> + 1a5e: 9806 ld.w r0, (r14, 0x18) + 1a60: 7009 lsr r0, r2 + 1a62: 9863 ld.w r3, (r14, 0xc) + 1a64: 3b40 cmpnei r3, 0 + 1a66: 0c0b bf 0x1a7c // 1a7c <__fixdfsi+0x50> + 1a68: 3300 movi r3, 0 + 1a6a: 5b01 subu r0, r3, r0 + 1a6c: 1407 addi r14, r14, 28 + 1a6e: 1490 pop r15 + 1a70: 9863 ld.w r3, (r14, 0xc) + 1a72: 3b40 cmpnei r3, 0 + 1a74: 3000 movi r0, 0 + 1a76: 6001 addc r0, r0 + 1a78: 1068 lrw r3, 0x7fffffff // 1a98 <__fixdfsi+0x6c> + 1a7a: 600c addu r0, r3 + 1a7c: 1407 addi r14, r14, 28 + 1a7e: 1490 pop r15 + 1a80: 3000 movi r0, 0 + 1a82: 1407 addi r14, r14, 28 + 1a84: 1490 pop r15 + 1a86: 9846 ld.w r2, (r14, 0x18) + 1a88: 311f movi r1, 31 + 1a8a: 4241 lsli r2, r2, 1 + 1a8c: 604e subu r1, r3 + 1a8e: 9805 ld.w r0, (r14, 0x14) + 1a90: 7084 lsl r2, r1 + 1a92: 700d lsr r0, r3 + 1a94: 6c08 or r0, r2 + 1a96: 07e6 br 0x1a62 // 1a62 <__fixdfsi+0x36> + 1a98: 7fffffff .long 0x7fffffff + +00001a9c <__make_dp>: + 1a9c: 1421 subi r14, r14, 4 + 1a9e: 14d1 push r4, r15 + 1aa0: 1425 subi r14, r14, 20 + 1aa2: b867 st.w r3, (r14, 0x1c) + 1aa4: 9867 ld.w r3, (r14, 0x1c) + 1aa6: 9888 ld.w r4, (r14, 0x20) + 1aa8: b800 st.w r0, (r14, 0x0) + 1aaa: 6c3b mov r0, r14 + 1aac: b821 st.w r1, (r14, 0x4) + 1aae: b842 st.w r2, (r14, 0x8) + 1ab0: b863 st.w r3, (r14, 0xc) + 1ab2: b884 st.w r4, (r14, 0x10) + 1ab4: e0000172 bsr 0x1d98 // 1d98 <__pack_d> + 1ab8: 1405 addi r14, r14, 20 + 1aba: d9ee2001 ld.w r15, (r14, 0x4) + 1abe: 9880 ld.w r4, (r14, 0x0) + 1ac0: 1403 addi r14, r14, 12 + 1ac2: 783c jmp r15 + +00001ac4 <__truncdfsf2>: + 1ac4: 14d0 push r15 + 1ac6: 1427 subi r14, r14, 28 + 1ac8: b800 st.w r0, (r14, 0x0) + 1aca: b821 st.w r1, (r14, 0x4) + 1acc: 6c3b mov r0, r14 + 1ace: 1902 addi r1, r14, 8 + 1ad0: e0000232 bsr 0x1f34 // 1f34 <__unpack_d> + 1ad4: 9845 ld.w r2, (r14, 0x14) + 1ad6: 4a3e lsri r1, r2, 30 + 1ad8: 9866 ld.w r3, (r14, 0x18) + 1ada: 4242 lsli r2, r2, 2 + 1adc: 4362 lsli r3, r3, 2 + 1ade: 3a40 cmpnei r2, 0 + 1ae0: 6cc4 or r3, r1 + 1ae2: 0c02 bf 0x1ae6 // 1ae6 <__truncdfsf2+0x22> + 1ae4: 3ba0 bseti r3, 0 + 1ae6: 9844 ld.w r2, (r14, 0x10) + 1ae8: 9823 ld.w r1, (r14, 0xc) + 1aea: 9802 ld.w r0, (r14, 0x8) + 1aec: e000014a bsr 0x1d80 // 1d80 <__make_fp> + 1af0: 1407 addi r14, r14, 28 + 1af2: 1490 pop r15 + +00001af4 <__floatunsidf>: + 1af4: 14d2 push r4-r5, r15 + 1af6: 1425 subi r14, r14, 20 + 1af8: 3840 cmpnei r0, 0 + 1afa: 3500 movi r5, 0 + 1afc: 6d03 mov r4, r0 + 1afe: b8a1 st.w r5, (r14, 0x4) + 1b00: 0c15 bf 0x1b2a // 1b2a <__floatunsidf+0x36> + 1b02: 3303 movi r3, 3 + 1b04: b860 st.w r3, (r14, 0x0) + 1b06: e0000043 bsr 0x1b8c // 1b8c <__clzsi2> + 1b0a: 321d movi r2, 29 + 1b0c: 6080 addu r2, r0 + 1b0e: 2802 subi r0, 3 + 1b10: 38df btsti r0, 31 + 1b12: 0813 bt 0x1b38 // 1b38 <__floatunsidf+0x44> + 1b14: 7100 lsl r4, r0 + 1b16: b884 st.w r4, (r14, 0x10) + 1b18: b8a3 st.w r5, (r14, 0xc) + 1b1a: 333c movi r3, 60 + 1b1c: 60ca subu r3, r2 + 1b1e: 6c3b mov r0, r14 + 1b20: b862 st.w r3, (r14, 0x8) + 1b22: e000013b bsr 0x1d98 // 1d98 <__pack_d> + 1b26: 1405 addi r14, r14, 20 + 1b28: 1492 pop r4-r5, r15 + 1b2a: 3302 movi r3, 2 + 1b2c: 6c3b mov r0, r14 + 1b2e: b860 st.w r3, (r14, 0x0) + 1b30: e0000134 bsr 0x1d98 // 1d98 <__pack_d> + 1b34: 1405 addi r14, r14, 20 + 1b36: 1492 pop r4-r5, r15 + 1b38: 311f movi r1, 31 + 1b3a: 4c61 lsri r3, r4, 1 + 1b3c: 604a subu r1, r2 + 1b3e: 70c5 lsr r3, r1 + 1b40: 7108 lsl r4, r2 + 1b42: b864 st.w r3, (r14, 0x10) + 1b44: b883 st.w r4, (r14, 0xc) + 1b46: 07ea br 0x1b1a // 1b1a <__floatunsidf+0x26> + +00001b48 <__muldi3>: + 1b48: 14c4 push r4-r7 + 1b4a: 1421 subi r14, r14, 4 + 1b4c: 7501 zexth r4, r0 + 1b4e: 48b0 lsri r5, r0, 16 + 1b50: 75c9 zexth r7, r2 + 1b52: 6d83 mov r6, r0 + 1b54: b820 st.w r1, (r14, 0x0) + 1b56: 6c13 mov r0, r4 + 1b58: 4a30 lsri r1, r2, 16 + 1b5a: 7c1c mult r0, r7 + 1b5c: 7d04 mult r4, r1 + 1b5e: 7dd4 mult r7, r5 + 1b60: 611c addu r4, r7 + 1b62: 7d44 mult r5, r1 + 1b64: 4830 lsri r1, r0, 16 + 1b66: 6104 addu r4, r1 + 1b68: 65d0 cmphs r4, r7 + 1b6a: 0804 bt 0x1b72 // 1b72 <__muldi3+0x2a> + 1b6c: 3180 movi r1, 128 + 1b6e: 4129 lsli r1, r1, 9 + 1b70: 6144 addu r5, r1 + 1b72: 4c30 lsri r1, r4, 16 + 1b74: 7cd8 mult r3, r6 + 1b76: 6144 addu r5, r1 + 1b78: 6c4f mov r1, r3 + 1b7a: 9860 ld.w r3, (r14, 0x0) + 1b7c: 7cc8 mult r3, r2 + 1b7e: 4490 lsli r4, r4, 16 + 1b80: 604c addu r1, r3 + 1b82: 7401 zexth r0, r0 + 1b84: 6010 addu r0, r4 + 1b86: 6054 addu r1, r5 + 1b88: 1401 addi r14, r14, 4 + 1b8a: 1484 pop r4-r7 + +00001b8c <__clzsi2>: + 1b8c: 106d lrw r3, 0xffff // 1bc0 <__clzsi2+0x34> + 1b8e: 640c cmphs r3, r0 + 1b90: 0c07 bf 0x1b9e // 1b9e <__clzsi2+0x12> + 1b92: 33ff movi r3, 255 + 1b94: 640c cmphs r3, r0 + 1b96: 0c0f bf 0x1bb4 // 1bb4 <__clzsi2+0x28> + 1b98: 3320 movi r3, 32 + 1b9a: 3200 movi r2, 0 + 1b9c: 0406 br 0x1ba8 // 1ba8 <__clzsi2+0x1c> + 1b9e: 106a lrw r3, 0xffffff // 1bc4 <__clzsi2+0x38> + 1ba0: 640c cmphs r3, r0 + 1ba2: 080c bt 0x1bba // 1bba <__clzsi2+0x2e> + 1ba4: 3308 movi r3, 8 + 1ba6: 3218 movi r2, 24 + 1ba8: 7009 lsr r0, r2 + 1baa: 1048 lrw r2, 0x76f4 // 1bc8 <__clzsi2+0x3c> + 1bac: 6008 addu r0, r2 + 1bae: 8040 ld.b r2, (r0, 0x0) + 1bb0: 5b09 subu r0, r3, r2 + 1bb2: 783c jmp r15 + 1bb4: 3318 movi r3, 24 + 1bb6: 3208 movi r2, 8 + 1bb8: 07f8 br 0x1ba8 // 1ba8 <__clzsi2+0x1c> + 1bba: 3310 movi r3, 16 + 1bbc: 3210 movi r2, 16 + 1bbe: 07f5 br 0x1ba8 // 1ba8 <__clzsi2+0x1c> + 1bc0: 0000ffff .long 0x0000ffff + 1bc4: 00ffffff .long 0x00ffffff + 1bc8: 000076f4 .long 0x000076f4 + +00001bcc <__pack_f>: + 1bcc: 14c2 push r4-r5 + 1bce: 9040 ld.w r2, (r0, 0x0) + 1bd0: 3a01 cmphsi r2, 2 + 1bd2: 9063 ld.w r3, (r0, 0xc) + 1bd4: 9021 ld.w r1, (r0, 0x4) + 1bd6: 0c27 bf 0x1c24 // 1c24 <__pack_f+0x58> + 1bd8: 3a44 cmpnei r2, 4 + 1bda: 0c22 bf 0x1c1e // 1c1e <__pack_f+0x52> + 1bdc: 3a42 cmpnei r2, 2 + 1bde: 0c1d bf 0x1c18 // 1c18 <__pack_f+0x4c> + 1be0: 3b40 cmpnei r3, 0 + 1be2: 0c1b bf 0x1c18 // 1c18 <__pack_f+0x4c> + 1be4: 3400 movi r4, 0 + 1be6: 9042 ld.w r2, (r0, 0x8) + 1be8: 2c7d subi r4, 126 + 1bea: 6509 cmplt r2, r4 + 1bec: 082a bt 0x1c40 // 1c40 <__pack_f+0x74> + 1bee: 347f movi r4, 127 + 1bf0: 6491 cmplt r4, r2 + 1bf2: 0816 bt 0x1c1e // 1c1e <__pack_f+0x52> + 1bf4: 690c and r4, r3 + 1bf6: 3540 movi r5, 64 + 1bf8: 6552 cmpne r4, r5 + 1bfa: 0c1a bf 0x1c2e // 1c2e <__pack_f+0x62> + 1bfc: 233e addi r3, 63 + 1bfe: 3bdf btsti r3, 31 + 1c00: 081d bt 0x1c3a // 1c3a <__pack_f+0x6e> + 1c02: 227e addi r2, 127 + 1c04: 4302 lsli r0, r3, 2 + 1c06: 4809 lsri r0, r0, 9 + 1c08: 74c8 zextb r3, r2 + 1c0a: 4009 lsli r0, r0, 9 + 1c0c: 4377 lsli r3, r3, 23 + 1c0e: 4809 lsri r0, r0, 9 + 1c10: 413f lsli r1, r1, 31 + 1c12: 6c0c or r0, r3 + 1c14: 6c04 or r0, r1 + 1c16: 1482 pop r4-r5 + 1c18: 3300 movi r3, 0 + 1c1a: 3000 movi r0, 0 + 1c1c: 07f7 br 0x1c0a // 1c0a <__pack_f+0x3e> + 1c1e: 33ff movi r3, 255 + 1c20: 3000 movi r0, 0 + 1c22: 07f4 br 0x1c0a // 1c0a <__pack_f+0x3e> + 1c24: 4303 lsli r0, r3, 3 + 1c26: 480a lsri r0, r0, 10 + 1c28: 38b6 bseti r0, 22 + 1c2a: 33ff movi r3, 255 + 1c2c: 07ef br 0x1c0a // 1c0a <__pack_f+0x3e> + 1c2e: 3080 movi r0, 128 + 1c30: 680c and r0, r3 + 1c32: 3840 cmpnei r0, 0 + 1c34: 0fe5 bf 0x1bfe // 1bfe <__pack_f+0x32> + 1c36: 60d0 addu r3, r4 + 1c38: 07e3 br 0x1bfe // 1bfe <__pack_f+0x32> + 1c3a: 4b61 lsri r3, r3, 1 + 1c3c: 227f addi r2, 128 + 1c3e: 07e3 br 0x1c04 // 1c04 <__pack_f+0x38> + 1c40: 610a subu r4, r2 + 1c42: 3c39 cmplti r4, 26 + 1c44: 0fea bf 0x1c18 // 1c18 <__pack_f+0x4c> + 1c46: 3201 movi r2, 1 + 1c48: 7090 lsl r2, r4 + 1c4a: 2a00 subi r2, 1 + 1c4c: 6c0f mov r0, r3 + 1c4e: 68c8 and r3, r2 + 1c50: 3b40 cmpnei r3, 0 + 1c52: 3300 movi r3, 0 + 1c54: 7011 lsr r0, r4 + 1c56: 60cd addc r3, r3 + 1c58: 6cc0 or r3, r0 + 1c5a: 307f movi r0, 127 + 1c5c: 680c and r0, r3 + 1c5e: 3240 movi r2, 64 + 1c60: 6482 cmpne r0, r2 + 1c62: 080d bt 0x1c7c // 1c7c <__pack_f+0xb0> + 1c64: 3280 movi r2, 128 + 1c66: 688c and r2, r3 + 1c68: 3a40 cmpnei r2, 0 + 1c6a: 0c02 bf 0x1c6e // 1c6e <__pack_f+0xa2> + 1c6c: 60c0 addu r3, r0 + 1c6e: 1045 lrw r2, 0x3fffffff // 1c80 <__pack_f+0xb4> + 1c70: 64c8 cmphs r2, r3 + 1c72: 4302 lsli r0, r3, 2 + 1c74: 64c3 mvcv r3 + 1c76: 4809 lsri r0, r0, 9 + 1c78: 74cc zextb r3, r3 + 1c7a: 07c8 br 0x1c0a // 1c0a <__pack_f+0x3e> + 1c7c: 233e addi r3, 63 + 1c7e: 07f8 br 0x1c6e // 1c6e <__pack_f+0xa2> + 1c80: 3fffffff .long 0x3fffffff + +00001c84 <__unpack_f>: + 1c84: 14c1 push r4 + 1c86: 8861 ld.h r3, (r0, 0x2) + 1c88: 4371 lsli r3, r3, 17 + 1c8a: 9040 ld.w r2, (r0, 0x0) + 1c8c: 4b78 lsri r3, r3, 24 + 1c8e: 8003 ld.b r0, (r0, 0x3) + 1c90: 4249 lsli r2, r2, 9 + 1c92: 4807 lsri r0, r0, 7 + 1c94: 3b40 cmpnei r3, 0 + 1c96: 4a49 lsri r2, r2, 9 + 1c98: b101 st.w r0, (r1, 0x4) + 1c9a: 0811 bt 0x1cbc // 1cbc <__unpack_f+0x38> + 1c9c: 3a40 cmpnei r2, 0 + 1c9e: 0c1a bf 0x1cd2 // 1cd2 <__unpack_f+0x4e> + 1ca0: 3303 movi r3, 3 + 1ca2: b160 st.w r3, (r1, 0x0) + 1ca4: 3300 movi r3, 0 + 1ca6: 4247 lsli r2, r2, 7 + 1ca8: 2b7e subi r3, 127 + 1caa: 1096 lrw r4, 0x3fffffff // 1d00 <__unpack_f+0x7c> + 1cac: 4241 lsli r2, r2, 1 + 1cae: 6490 cmphs r4, r2 + 1cb0: 6c0f mov r0, r3 + 1cb2: 2b00 subi r3, 1 + 1cb4: 0bfc bt 0x1cac // 1cac <__unpack_f+0x28> + 1cb6: b102 st.w r0, (r1, 0x8) + 1cb8: b143 st.w r2, (r1, 0xc) + 1cba: 1481 pop r4 + 1cbc: 30ff movi r0, 255 + 1cbe: 640e cmpne r3, r0 + 1cc0: 0c0c bf 0x1cd8 // 1cd8 <__unpack_f+0x54> + 1cc2: 2b7e subi r3, 127 + 1cc4: 4247 lsli r2, r2, 7 + 1cc6: b162 st.w r3, (r1, 0x8) + 1cc8: 3abe bseti r2, 30 + 1cca: 3303 movi r3, 3 + 1ccc: b160 st.w r3, (r1, 0x0) + 1cce: b143 st.w r2, (r1, 0xc) + 1cd0: 1481 pop r4 + 1cd2: 3302 movi r3, 2 + 1cd4: b160 st.w r3, (r1, 0x0) + 1cd6: 1481 pop r4 + 1cd8: 3a40 cmpnei r2, 0 + 1cda: 0c0d bf 0x1cf4 // 1cf4 <__unpack_f+0x70> + 1cdc: 3380 movi r3, 128 + 1cde: 436f lsli r3, r3, 15 + 1ce0: 68c8 and r3, r2 + 1ce2: 3b40 cmpnei r3, 0 + 1ce4: 0c0b bf 0x1cfa // 1cfa <__unpack_f+0x76> + 1ce6: 3301 movi r3, 1 + 1ce8: b160 st.w r3, (r1, 0x0) + 1cea: 1067 lrw r3, 0x2000007f // 1d04 <__unpack_f+0x80> + 1cec: 4247 lsli r2, r2, 7 + 1cee: 688d andn r2, r3 + 1cf0: b143 st.w r2, (r1, 0xc) + 1cf2: 1481 pop r4 + 1cf4: 3304 movi r3, 4 + 1cf6: b160 st.w r3, (r1, 0x0) + 1cf8: 1481 pop r4 + 1cfa: b160 st.w r3, (r1, 0x0) + 1cfc: 07f7 br 0x1cea // 1cea <__unpack_f+0x66> + 1cfe: 0000 bkpt + 1d00: 3fffffff .long 0x3fffffff + 1d04: 2000007f .long 0x2000007f + +00001d08 <__fpcmp_parts_f>: + 1d08: 14c1 push r4 + 1d0a: 9060 ld.w r3, (r0, 0x0) + 1d0c: 3b01 cmphsi r3, 2 + 1d0e: 0c12 bf 0x1d32 // 1d32 <__fpcmp_parts_f+0x2a> + 1d10: 9140 ld.w r2, (r1, 0x0) + 1d12: 3a01 cmphsi r2, 2 + 1d14: 0c0f bf 0x1d32 // 1d32 <__fpcmp_parts_f+0x2a> + 1d16: 3b44 cmpnei r3, 4 + 1d18: 0c17 bf 0x1d46 // 1d46 <__fpcmp_parts_f+0x3e> + 1d1a: 3a44 cmpnei r2, 4 + 1d1c: 0c0f bf 0x1d3a // 1d3a <__fpcmp_parts_f+0x32> + 1d1e: 3b42 cmpnei r3, 2 + 1d20: 0c0b bf 0x1d36 // 1d36 <__fpcmp_parts_f+0x2e> + 1d22: 3a42 cmpnei r2, 2 + 1d24: 0c13 bf 0x1d4a // 1d4a <__fpcmp_parts_f+0x42> + 1d26: 9061 ld.w r3, (r0, 0x4) + 1d28: 9141 ld.w r2, (r1, 0x4) + 1d2a: 648e cmpne r3, r2 + 1d2c: 0c14 bf 0x1d54 // 1d54 <__fpcmp_parts_f+0x4c> + 1d2e: 3b40 cmpnei r3, 0 + 1d30: 0808 bt 0x1d40 // 1d40 <__fpcmp_parts_f+0x38> + 1d32: 3001 movi r0, 1 + 1d34: 1481 pop r4 + 1d36: 3a42 cmpnei r2, 2 + 1d38: 0c1e bf 0x1d74 // 1d74 <__fpcmp_parts_f+0x6c> + 1d3a: 9161 ld.w r3, (r1, 0x4) + 1d3c: 3b40 cmpnei r3, 0 + 1d3e: 0bfa bt 0x1d32 // 1d32 <__fpcmp_parts_f+0x2a> + 1d40: 3000 movi r0, 0 + 1d42: 2800 subi r0, 1 + 1d44: 1481 pop r4 + 1d46: 3a44 cmpnei r2, 4 + 1d48: 0c18 bf 0x1d78 // 1d78 <__fpcmp_parts_f+0x70> + 1d4a: 9061 ld.w r3, (r0, 0x4) + 1d4c: 3b40 cmpnei r3, 0 + 1d4e: 0bf9 bt 0x1d40 // 1d40 <__fpcmp_parts_f+0x38> + 1d50: 3001 movi r0, 1 + 1d52: 07f1 br 0x1d34 // 1d34 <__fpcmp_parts_f+0x2c> + 1d54: 9082 ld.w r4, (r0, 0x8) + 1d56: 9142 ld.w r2, (r1, 0x8) + 1d58: 6509 cmplt r2, r4 + 1d5a: 0bea bt 0x1d2e // 1d2e <__fpcmp_parts_f+0x26> + 1d5c: 6491 cmplt r4, r2 + 1d5e: 0807 bt 0x1d6c // 1d6c <__fpcmp_parts_f+0x64> + 1d60: 9003 ld.w r0, (r0, 0xc) + 1d62: 9143 ld.w r2, (r1, 0xc) + 1d64: 6408 cmphs r2, r0 + 1d66: 0fe4 bf 0x1d2e // 1d2e <__fpcmp_parts_f+0x26> + 1d68: 6480 cmphs r0, r2 + 1d6a: 0805 bt 0x1d74 // 1d74 <__fpcmp_parts_f+0x6c> + 1d6c: 3b40 cmpnei r3, 0 + 1d6e: 0fe9 bf 0x1d40 // 1d40 <__fpcmp_parts_f+0x38> + 1d70: 3001 movi r0, 1 + 1d72: 07e1 br 0x1d34 // 1d34 <__fpcmp_parts_f+0x2c> + 1d74: 3000 movi r0, 0 + 1d76: 1481 pop r4 + 1d78: 9161 ld.w r3, (r1, 0x4) + 1d7a: 9041 ld.w r2, (r0, 0x4) + 1d7c: 5b09 subu r0, r3, r2 + 1d7e: 1481 pop r4 + +00001d80 <__make_fp>: + 1d80: 14d0 push r15 + 1d82: 1424 subi r14, r14, 16 + 1d84: b800 st.w r0, (r14, 0x0) + 1d86: 6c3b mov r0, r14 + 1d88: b821 st.w r1, (r14, 0x4) + 1d8a: b842 st.w r2, (r14, 0x8) + 1d8c: b863 st.w r3, (r14, 0xc) + 1d8e: e3ffff1f bsr 0x1bcc // 1bcc <__pack_f> + 1d92: 1404 addi r14, r14, 16 + 1d94: 1490 pop r15 + ... + +00001d98 <__pack_d>: + 1d98: 14c4 push r4-r7 + 1d9a: 1422 subi r14, r14, 8 + 1d9c: 9060 ld.w r3, (r0, 0x0) + 1d9e: 3b01 cmphsi r3, 2 + 1da0: 90c3 ld.w r6, (r0, 0xc) + 1da2: 90e4 ld.w r7, (r0, 0x10) + 1da4: 9021 ld.w r1, (r0, 0x4) + 1da6: 0c46 bf 0x1e32 // 1e32 <__pack_d+0x9a> + 1da8: 3b44 cmpnei r3, 4 + 1daa: 0c40 bf 0x1e2a // 1e2a <__pack_d+0x92> + 1dac: 3b42 cmpnei r3, 2 + 1dae: 0c27 bf 0x1dfc // 1dfc <__pack_d+0x64> + 1db0: 6cdb mov r3, r6 + 1db2: 6cdc or r3, r7 + 1db4: 3b40 cmpnei r3, 0 + 1db6: 0c23 bf 0x1dfc // 1dfc <__pack_d+0x64> + 1db8: 9062 ld.w r3, (r0, 0x8) + 1dba: 125a lrw r2, 0xfffffc02 // 1f20 <__pack_d+0x188> + 1dbc: 648d cmplt r3, r2 + 1dbe: 0855 bt 0x1e68 // 1e68 <__pack_d+0xd0> + 1dc0: 1259 lrw r2, 0x3ff // 1f24 <__pack_d+0x18c> + 1dc2: 64c9 cmplt r2, r3 + 1dc4: 0833 bt 0x1e2a // 1e2a <__pack_d+0x92> + 1dc6: 34ff movi r4, 255 + 1dc8: 3500 movi r5, 0 + 1dca: 6918 and r4, r6 + 1dcc: 695c and r5, r7 + 1dce: 3280 movi r2, 128 + 1dd0: 6492 cmpne r4, r2 + 1dd2: 0c3f bf 0x1e50 // 1e50 <__pack_d+0xb8> + 1dd4: 347f movi r4, 127 + 1dd6: 3500 movi r5, 0 + 1dd8: 6599 cmplt r6, r6 + 1dda: 6191 addc r6, r4 + 1ddc: 61d5 addc r7, r5 + 1dde: 1253 lrw r2, 0x1fffffff // 1f28 <__pack_d+0x190> + 1de0: 65c8 cmphs r2, r7 + 1de2: 0c1a bf 0x1e16 // 1e16 <__pack_d+0x7e> + 1de4: 1290 lrw r4, 0x3ff // 1f24 <__pack_d+0x18c> + 1de6: 610c addu r4, r3 + 1de8: 4718 lsli r0, r7, 24 + 1dea: 4f68 lsri r3, r7, 8 + 1dec: 4e48 lsri r2, r6, 8 + 1dee: 6c80 or r2, r0 + 1df0: 430c lsli r0, r3, 12 + 1df2: 486c lsri r3, r0, 12 + 1df4: 120e lrw r0, 0x7ff // 1f2c <__pack_d+0x194> + 1df6: 6d4b mov r5, r2 + 1df8: 6900 and r4, r0 + 1dfa: 0404 br 0x1e02 // 1e02 <__pack_d+0x6a> + 1dfc: 3400 movi r4, 0 + 1dfe: 3200 movi r2, 0 + 1e00: 3300 movi r3, 0 + 1e02: 430c lsli r0, r3, 12 + 1e04: 480c lsri r0, r0, 12 + 1e06: 4474 lsli r3, r4, 20 + 1e08: 419f lsli r4, r1, 31 + 1e0a: 6c43 mov r1, r0 + 1e0c: 6c4c or r1, r3 + 1e0e: 6c50 or r1, r4 + 1e10: 6c0b mov r0, r2 + 1e12: 1402 addi r14, r14, 8 + 1e14: 1484 pop r4-r7 + 1e16: 479f lsli r4, r7, 31 + 1e18: 4e01 lsri r0, r6, 1 + 1e1a: 6d00 or r4, r0 + 1e1c: 6d93 mov r6, r4 + 1e1e: 3480 movi r4, 128 + 1e20: 4f41 lsri r2, r7, 1 + 1e22: 4483 lsli r4, r4, 3 + 1e24: 6dcb mov r7, r2 + 1e26: 610c addu r4, r3 + 1e28: 07e0 br 0x1de8 // 1de8 <__pack_d+0x50> + 1e2a: 1281 lrw r4, 0x7ff // 1f2c <__pack_d+0x194> + 1e2c: 3200 movi r2, 0 + 1e2e: 3300 movi r3, 0 + 1e30: 07e9 br 0x1e02 // 1e02 <__pack_d+0x6a> + 1e32: 4e08 lsri r0, r6, 8 + 1e34: 4798 lsli r4, r7, 24 + 1e36: 6d00 or r4, r0 + 1e38: 3580 movi r5, 128 + 1e3a: 4705 lsli r0, r7, 5 + 1e3c: 6c93 mov r2, r4 + 1e3e: 486d lsri r3, r0, 13 + 1e40: 3400 movi r4, 0 + 1e42: 45ac lsli r5, r5, 12 + 1e44: 6c90 or r2, r4 + 1e46: 6cd4 or r3, r5 + 1e48: 430c lsli r0, r3, 12 + 1e4a: 486c lsri r3, r0, 12 + 1e4c: 1198 lrw r4, 0x7ff // 1f2c <__pack_d+0x194> + 1e4e: 07da br 0x1e02 // 1e02 <__pack_d+0x6a> + 1e50: 3d40 cmpnei r5, 0 + 1e52: 0bc1 bt 0x1dd4 // 1dd4 <__pack_d+0x3c> + 1e54: 4241 lsli r2, r2, 1 + 1e56: 6898 and r2, r6 + 1e58: 3a40 cmpnei r2, 0 + 1e5a: 0fc2 bf 0x1dde // 1dde <__pack_d+0x46> + 1e5c: 3480 movi r4, 128 + 1e5e: 3500 movi r5, 0 + 1e60: 6599 cmplt r6, r6 + 1e62: 6191 addc r6, r4 + 1e64: 61d5 addc r7, r5 + 1e66: 07bc br 0x1dde // 1dde <__pack_d+0x46> + 1e68: 5a6d subu r3, r2, r3 + 1e6a: 3238 movi r2, 56 + 1e6c: 64c9 cmplt r2, r3 + 1e6e: 0bc7 bt 0x1dfc // 1dfc <__pack_d+0x64> + 1e70: 3200 movi r2, 0 + 1e72: 2a1f subi r2, 32 + 1e74: 608c addu r2, r3 + 1e76: 3adf btsti r2, 31 + 1e78: 0848 bt 0x1f08 // 1f08 <__pack_d+0x170> + 1e7a: 6c1f mov r0, r7 + 1e7c: 7009 lsr r0, r2 + 1e7e: b800 st.w r0, (r14, 0x0) + 1e80: 3000 movi r0, 0 + 1e82: b801 st.w r0, (r14, 0x4) + 1e84: 3adf btsti r2, 31 + 1e86: 083c bt 0x1efe // 1efe <__pack_d+0x166> + 1e88: 3301 movi r3, 1 + 1e8a: 70c8 lsl r3, r2 + 1e8c: 6d4f mov r5, r3 + 1e8e: 3300 movi r3, 0 + 1e90: 6d0f mov r4, r3 + 1e92: 3200 movi r2, 0 + 1e94: 3300 movi r3, 0 + 1e96: 2a00 subi r2, 1 + 1e98: 2b00 subi r3, 1 + 1e9a: 6511 cmplt r4, r4 + 1e9c: 6109 addc r4, r2 + 1e9e: 614d addc r5, r3 + 1ea0: 6990 and r6, r4 + 1ea2: 69d4 and r7, r5 + 1ea4: 6d9c or r6, r7 + 1ea6: 3e40 cmpnei r6, 0 + 1ea8: 3000 movi r0, 0 + 1eaa: 6001 addc r0, r0 + 1eac: 6c83 mov r2, r0 + 1eae: 3300 movi r3, 0 + 1eb0: 9880 ld.w r4, (r14, 0x0) + 1eb2: 98a1 ld.w r5, (r14, 0x4) + 1eb4: 6d08 or r4, r2 + 1eb6: 6d4c or r5, r3 + 1eb8: 32ff movi r2, 255 + 1eba: 3300 movi r3, 0 + 1ebc: 6890 and r2, r4 + 1ebe: 68d4 and r3, r5 + 1ec0: 3080 movi r0, 128 + 1ec2: 640a cmpne r2, r0 + 1ec4: 081b bt 0x1efa // 1efa <__pack_d+0x162> + 1ec6: 3b40 cmpnei r3, 0 + 1ec8: 0819 bt 0x1efa // 1efa <__pack_d+0x162> + 1eca: 3380 movi r3, 128 + 1ecc: 4361 lsli r3, r3, 1 + 1ece: 68d0 and r3, r4 + 1ed0: 3b40 cmpnei r3, 0 + 1ed2: 0c06 bf 0x1ede // 1ede <__pack_d+0x146> + 1ed4: 3280 movi r2, 128 + 1ed6: 3300 movi r3, 0 + 1ed8: 6511 cmplt r4, r4 + 1eda: 6109 addc r4, r2 + 1edc: 614d addc r5, r3 + 1ede: 4518 lsli r0, r5, 24 + 1ee0: 4c48 lsri r2, r4, 8 + 1ee2: 4d68 lsri r3, r5, 8 + 1ee4: 1093 lrw r4, 0xfffffff // 1f30 <__pack_d+0x198> + 1ee6: 6c80 or r2, r0 + 1ee8: 6550 cmphs r4, r5 + 1eea: 430c lsli r0, r3, 12 + 1eec: 486c lsri r3, r0, 12 + 1eee: 3001 movi r0, 1 + 1ef0: 0c02 bf 0x1ef4 // 1ef4 <__pack_d+0x15c> + 1ef2: 3000 movi r0, 0 + 1ef4: 108e lrw r4, 0x7ff // 1f2c <__pack_d+0x194> + 1ef6: 6900 and r4, r0 + 1ef8: 0785 br 0x1e02 // 1e02 <__pack_d+0x6a> + 1efa: 327f movi r2, 127 + 1efc: 07ed br 0x1ed6 // 1ed6 <__pack_d+0x13e> + 1efe: 3201 movi r2, 1 + 1f00: 708c lsl r2, r3 + 1f02: 3500 movi r5, 0 + 1f04: 6d0b mov r4, r2 + 1f06: 07c6 br 0x1e92 // 1e92 <__pack_d+0xfa> + 1f08: 341f movi r4, 31 + 1f0a: 610e subu r4, r3 + 1f0c: 4701 lsli r0, r7, 1 + 1f0e: 7010 lsl r0, r4 + 1f10: 6d1b mov r4, r6 + 1f12: 710d lsr r4, r3 + 1f14: 6d00 or r4, r0 + 1f16: 6c1f mov r0, r7 + 1f18: 700d lsr r0, r3 + 1f1a: b880 st.w r4, (r14, 0x0) + 1f1c: b801 st.w r0, (r14, 0x4) + 1f1e: 07b3 br 0x1e84 // 1e84 <__pack_d+0xec> + 1f20: fffffc02 .long 0xfffffc02 + 1f24: 000003ff .long 0x000003ff + 1f28: 1fffffff .long 0x1fffffff + 1f2c: 000007ff .long 0x000007ff + 1f30: 0fffffff .long 0x0fffffff + +00001f34 <__unpack_d>: + 1f34: 1423 subi r14, r14, 12 + 1f36: b880 st.w r4, (r14, 0x0) + 1f38: b8c1 st.w r6, (r14, 0x4) + 1f3a: b8e2 st.w r7, (r14, 0x8) + 1f3c: 8843 ld.h r2, (r0, 0x6) + 1f3e: 4251 lsli r2, r2, 17 + 1f40: 9061 ld.w r3, (r0, 0x4) + 1f42: 9080 ld.w r4, (r0, 0x0) + 1f44: 4a55 lsri r2, r2, 21 + 1f46: 8007 ld.b r0, (r0, 0x7) + 1f48: 436c lsli r3, r3, 12 + 1f4a: 4807 lsri r0, r0, 7 + 1f4c: 3a40 cmpnei r2, 0 + 1f4e: 4b6c lsri r3, r3, 12 + 1f50: b101 st.w r0, (r1, 0x4) + 1f52: 0819 bt 0x1f84 // 1f84 <__unpack_d+0x50> + 1f54: 6c93 mov r2, r4 + 1f56: 6c8c or r2, r3 + 1f58: 3a40 cmpnei r2, 0 + 1f5a: 0c2d bf 0x1fb4 // 1fb4 <__unpack_d+0x80> + 1f5c: 4c58 lsri r2, r4, 24 + 1f5e: 4368 lsli r3, r3, 8 + 1f60: 6cc8 or r3, r2 + 1f62: 3203 movi r2, 3 + 1f64: 4408 lsli r0, r4, 8 + 1f66: b140 st.w r2, (r1, 0x0) + 1f68: 1181 lrw r4, 0xfffffc01 // 1fec <__unpack_d+0xb8> + 1f6a: 11c2 lrw r6, 0xfffffff // 1ff0 <__unpack_d+0xbc> + 1f6c: 485f lsri r2, r0, 31 + 1f6e: 4361 lsli r3, r3, 1 + 1f70: 6cc8 or r3, r2 + 1f72: 64d8 cmphs r6, r3 + 1f74: 6c93 mov r2, r4 + 1f76: 4001 lsli r0, r0, 1 + 1f78: 2c00 subi r4, 1 + 1f7a: 0bf9 bt 0x1f6c // 1f6c <__unpack_d+0x38> + 1f7c: b142 st.w r2, (r1, 0x8) + 1f7e: b103 st.w r0, (r1, 0xc) + 1f80: b164 st.w r3, (r1, 0x10) + 1f82: 0414 br 0x1faa // 1faa <__unpack_d+0x76> + 1f84: 101c lrw r0, 0x7ff // 1ff4 <__unpack_d+0xc0> + 1f86: 640a cmpne r2, r0 + 1f88: 0c19 bf 0x1fba // 1fba <__unpack_d+0x86> + 1f8a: 1019 lrw r0, 0xfffffc01 // 1fec <__unpack_d+0xb8> + 1f8c: 6080 addu r2, r0 + 1f8e: b142 st.w r2, (r1, 0x8) + 1f90: 3203 movi r2, 3 + 1f92: 43e8 lsli r7, r3, 8 + 1f94: b140 st.w r2, (r1, 0x0) + 1f96: 3380 movi r3, 128 + 1f98: 4c58 lsri r2, r4, 24 + 1f9a: 6dc8 or r7, r2 + 1f9c: 44c8 lsli r6, r4, 8 + 1f9e: 3200 movi r2, 0 + 1fa0: 4375 lsli r3, r3, 21 + 1fa2: 6d88 or r6, r2 + 1fa4: 6dcc or r7, r3 + 1fa6: b1c3 st.w r6, (r1, 0xc) + 1fa8: b1e4 st.w r7, (r1, 0x10) + 1faa: 98e2 ld.w r7, (r14, 0x8) + 1fac: 98c1 ld.w r6, (r14, 0x4) + 1fae: 9880 ld.w r4, (r14, 0x0) + 1fb0: 1403 addi r14, r14, 12 + 1fb2: 783c jmp r15 + 1fb4: 3302 movi r3, 2 + 1fb6: b160 st.w r3, (r1, 0x0) + 1fb8: 07f9 br 0x1faa // 1faa <__unpack_d+0x76> + 1fba: 6c93 mov r2, r4 + 1fbc: 6c8c or r2, r3 + 1fbe: 3a40 cmpnei r2, 0 + 1fc0: 0c10 bf 0x1fe0 // 1fe0 <__unpack_d+0xac> + 1fc2: 3280 movi r2, 128 + 1fc4: 424c lsli r2, r2, 12 + 1fc6: 688c and r2, r3 + 1fc8: 3a40 cmpnei r2, 0 + 1fca: 0c0e bf 0x1fe6 // 1fe6 <__unpack_d+0xb2> + 1fcc: 3201 movi r2, 1 + 1fce: b140 st.w r2, (r1, 0x0) + 1fd0: 4c58 lsri r2, r4, 24 + 1fd2: 4368 lsli r3, r3, 8 + 1fd4: 6cc8 or r3, r2 + 1fd6: 4408 lsli r0, r4, 8 + 1fd8: 3b9b bclri r3, 27 + 1fda: b103 st.w r0, (r1, 0xc) + 1fdc: b164 st.w r3, (r1, 0x10) + 1fde: 07e6 br 0x1faa // 1faa <__unpack_d+0x76> + 1fe0: 3304 movi r3, 4 + 1fe2: b160 st.w r3, (r1, 0x0) + 1fe4: 07e3 br 0x1faa // 1faa <__unpack_d+0x76> + 1fe6: b140 st.w r2, (r1, 0x0) + 1fe8: 07f4 br 0x1fd0 // 1fd0 <__unpack_d+0x9c> + 1fea: 0000 bkpt + 1fec: fffffc01 .long 0xfffffc01 + 1ff0: 0fffffff .long 0x0fffffff + 1ff4: 000007ff .long 0x000007ff + +00001ff8 <__fpcmp_parts_d>: + 1ff8: 14c1 push r4 + 1ffa: 9060 ld.w r3, (r0, 0x0) + 1ffc: 3b01 cmphsi r3, 2 + 1ffe: 0c12 bf 0x2022 // 2022 <__fpcmp_parts_d+0x2a> + 2000: 9140 ld.w r2, (r1, 0x0) + 2002: 3a01 cmphsi r2, 2 + 2004: 0c0f bf 0x2022 // 2022 <__fpcmp_parts_d+0x2a> + 2006: 3b44 cmpnei r3, 4 + 2008: 0c17 bf 0x2036 // 2036 <__fpcmp_parts_d+0x3e> + 200a: 3a44 cmpnei r2, 4 + 200c: 0c0f bf 0x202a // 202a <__fpcmp_parts_d+0x32> + 200e: 3b42 cmpnei r3, 2 + 2010: 0c0b bf 0x2026 // 2026 <__fpcmp_parts_d+0x2e> + 2012: 3a42 cmpnei r2, 2 + 2014: 0c13 bf 0x203a // 203a <__fpcmp_parts_d+0x42> + 2016: 9061 ld.w r3, (r0, 0x4) + 2018: 9141 ld.w r2, (r1, 0x4) + 201a: 648e cmpne r3, r2 + 201c: 0c14 bf 0x2044 // 2044 <__fpcmp_parts_d+0x4c> + 201e: 3b40 cmpnei r3, 0 + 2020: 0808 bt 0x2030 // 2030 <__fpcmp_parts_d+0x38> + 2022: 3001 movi r0, 1 + 2024: 1481 pop r4 + 2026: 3a42 cmpnei r2, 2 + 2028: 0c28 bf 0x2078 // 2078 <__fpcmp_parts_d+0x80> + 202a: 9161 ld.w r3, (r1, 0x4) + 202c: 3b40 cmpnei r3, 0 + 202e: 0bfa bt 0x2022 // 2022 <__fpcmp_parts_d+0x2a> + 2030: 3000 movi r0, 0 + 2032: 2800 subi r0, 1 + 2034: 1481 pop r4 + 2036: 3a44 cmpnei r2, 4 + 2038: 0c22 bf 0x207c // 207c <__fpcmp_parts_d+0x84> + 203a: 9061 ld.w r3, (r0, 0x4) + 203c: 3b40 cmpnei r3, 0 + 203e: 0bf9 bt 0x2030 // 2030 <__fpcmp_parts_d+0x38> + 2040: 3001 movi r0, 1 + 2042: 07f1 br 0x2024 // 2024 <__fpcmp_parts_d+0x2c> + 2044: 9082 ld.w r4, (r0, 0x8) + 2046: 9142 ld.w r2, (r1, 0x8) + 2048: 6509 cmplt r2, r4 + 204a: 0bea bt 0x201e // 201e <__fpcmp_parts_d+0x26> + 204c: 6491 cmplt r4, r2 + 204e: 080d bt 0x2068 // 2068 <__fpcmp_parts_d+0x70> + 2050: 9044 ld.w r2, (r0, 0x10) + 2052: 9083 ld.w r4, (r0, 0xc) + 2054: 9103 ld.w r0, (r1, 0xc) + 2056: 9124 ld.w r1, (r1, 0x10) + 2058: 6484 cmphs r1, r2 + 205a: 0fe2 bf 0x201e // 201e <__fpcmp_parts_d+0x26> + 205c: 644a cmpne r2, r1 + 205e: 0803 bt 0x2064 // 2064 <__fpcmp_parts_d+0x6c> + 2060: 6500 cmphs r0, r4 + 2062: 0fde bf 0x201e // 201e <__fpcmp_parts_d+0x26> + 2064: 6448 cmphs r2, r1 + 2066: 0805 bt 0x2070 // 2070 <__fpcmp_parts_d+0x78> + 2068: 3b40 cmpnei r3, 0 + 206a: 0fe3 bf 0x2030 // 2030 <__fpcmp_parts_d+0x38> + 206c: 3001 movi r0, 1 + 206e: 07db br 0x2024 // 2024 <__fpcmp_parts_d+0x2c> + 2070: 6486 cmpne r1, r2 + 2072: 0803 bt 0x2078 // 2078 <__fpcmp_parts_d+0x80> + 2074: 6410 cmphs r4, r0 + 2076: 0ff9 bf 0x2068 // 2068 <__fpcmp_parts_d+0x70> + 2078: 3000 movi r0, 0 + 207a: 1481 pop r4 + 207c: 9161 ld.w r3, (r1, 0x4) + 207e: 9041 ld.w r2, (r0, 0x4) + 2080: 5b09 subu r0, r3, r2 + 2082: 1481 pop r4 + +00002084 <__cskyvprintfsnprintf>: + 2084: 1422 subi r14, r14, 8 + 2086: b861 st.w r3, (r14, 0x4) + 2088: b840 st.w r2, (r14, 0x0) + 208a: 14d0 push r15 + 208c: 1421 subi r14, r14, 4 + 208e: 9862 ld.w r3, (r14, 0x8) + 2090: b860 st.w r3, (r14, 0x0) + 2092: 9840 ld.w r2, (r14, 0x0) + 2094: 1b03 addi r3, r14, 12 + 2096: e0000026 bsr 0x20e2 // 20e2 <__cskyvprintfvsnprintf> + 209a: 1401 addi r14, r14, 4 + 209c: d9ee2000 ld.w r15, (r14, 0x0) + 20a0: 1403 addi r14, r14, 12 + 20a2: 783c jmp r15 + +000020a4 : + 20a4: 14d3 push r4-r6, r15 + 20a6: 6d4b mov r5, r2 + 20a8: 9582 ld.w r4, (r5, 0x8) + 20aa: 9241 ld.w r2, (r2, 0x4) + 20ac: 610a subu r4, r2 + 20ae: 3c40 cmpnei r4, 0 + 20b0: 6d87 mov r6, r1 + 20b2: 0c16 bf 0x20de // 20de + 20b4: 6504 cmphs r1, r4 + 20b6: 0802 bt 0x20ba // 20ba + 20b8: 6d07 mov r4, r1 + 20ba: 9560 ld.w r3, (r5, 0x0) + 20bc: 3b40 cmpnei r3, 0 + 20be: 0c0d bf 0x20d8 // 20d8 + 20c0: 60c8 addu r3, r2 + 20c2: 6c43 mov r1, r0 + 20c4: 6c93 mov r2, r4 + 20c6: 6c0f mov r0, r3 + 20c8: e000007e bsr 0x21c4 // 21c4 <__memcpy_fast> + 20cc: 9500 ld.w r0, (r5, 0x0) + 20ce: 9521 ld.w r1, (r5, 0x4) + 20d0: 6010 addu r0, r4 + 20d2: 6004 addu r0, r1 + 20d4: 3200 movi r2, 0 + 20d6: a040 st.b r2, (r0, 0x0) + 20d8: 9561 ld.w r3, (r5, 0x4) + 20da: 610c addu r4, r3 + 20dc: b581 st.w r4, (r5, 0x4) + 20de: 6c1b mov r0, r6 + 20e0: 1493 pop r4-r6, r15 + +000020e2 <__cskyvprintfvsnprintf>: + 20e2: 14d3 push r4-r6, r15 + 20e4: 1425 subi r14, r14, 20 + 20e6: 6d07 mov r4, r1 + 20e8: 6d43 mov r5, r0 + 20ea: 6c4b mov r1, r2 + 20ec: 1802 addi r0, r14, 8 + 20ee: 3200 movi r2, 0 + 20f0: 3c40 cmpnei r4, 0 + 20f2: b0a0 st.w r5, (r0, 0x0) + 20f4: b041 st.w r2, (r0, 0x4) + 20f6: 0c1c bf 0x212e // 212e <__cskyvprintfvsnprintf+0x4c> + 20f8: 5cc3 subi r6, r4, 1 + 20fa: b0c2 st.w r6, (r0, 0x8) + 20fc: b800 st.w r0, (r14, 0x0) + 20fe: 6c8f mov r2, r3 + 2100: 100e lrw r0, 0x20a4 // 2138 <__cskyvprintfvsnprintf+0x56> + 2102: b801 st.w r0, (r14, 0x4) + 2104: 6c3b mov r0, r14 + 2106: e00000bf bsr 0x2284 // 2284 <__v2_printf> + 210a: 3d40 cmpnei r5, 0 + 210c: 0c0f bf 0x212a // 212a <__cskyvprintfvsnprintf+0x48> + 210e: 3c40 cmpnei r4, 0 + 2110: 0c0d bf 0x212a // 212a <__cskyvprintfvsnprintf+0x48> + 2112: 38df btsti r0, 31 + 2114: 080b bt 0x212a // 212a <__cskyvprintfvsnprintf+0x48> + 2116: 3300 movi r3, 0 + 2118: 2b00 subi r3, 1 + 211a: 64d2 cmpne r4, r3 + 211c: 0c0b bf 0x2132 // 2132 <__cskyvprintfvsnprintf+0x50> + 211e: 6500 cmphs r0, r4 + 2120: 0c09 bf 0x2132 // 2132 <__cskyvprintfvsnprintf+0x50> + 2122: 6114 addu r4, r5 + 2124: 2c00 subi r4, 1 + 2126: 3100 movi r1, 0 + 2128: a420 st.b r1, (r4, 0x0) + 212a: 1405 addi r14, r14, 20 + 212c: 1493 pop r4-r6, r15 + 212e: 3600 movi r6, 0 + 2130: 07e5 br 0x20fa // 20fa <__cskyvprintfvsnprintf+0x18> + 2132: 5d80 addu r4, r5, r0 + 2134: 07f9 br 0x2126 // 2126 <__cskyvprintfvsnprintf+0x44> + 2136: 0000 bkpt + 2138: 000020a4 .long 0x000020a4 + +0000213c <__memset_fast>: + 213c: 14c3 push r4-r6 + 213e: 7444 zextb r1, r1 + 2140: 3a40 cmpnei r2, 0 + 2142: 0c1f bf 0x2180 // 2180 <__memset_fast+0x44> + 2144: 6d43 mov r5, r0 + 2146: 6d03 mov r4, r0 + 2148: 3603 movi r6, 3 + 214a: 6918 and r4, r6 + 214c: 3c40 cmpnei r4, 0 + 214e: 0c1a bf 0x2182 // 2182 <__memset_fast+0x46> + 2150: a520 st.b r1, (r5, 0x0) + 2152: 2a00 subi r2, 1 + 2154: 3a40 cmpnei r2, 0 + 2156: 0c15 bf 0x2180 // 2180 <__memset_fast+0x44> + 2158: 2500 addi r5, 1 + 215a: 6d17 mov r4, r5 + 215c: 3603 movi r6, 3 + 215e: 6918 and r4, r6 + 2160: 3c40 cmpnei r4, 0 + 2162: 0c10 bf 0x2182 // 2182 <__memset_fast+0x46> + 2164: a520 st.b r1, (r5, 0x0) + 2166: 2a00 subi r2, 1 + 2168: 3a40 cmpnei r2, 0 + 216a: 0c0b bf 0x2180 // 2180 <__memset_fast+0x44> + 216c: 2500 addi r5, 1 + 216e: 6d17 mov r4, r5 + 2170: 3603 movi r6, 3 + 2172: 6918 and r4, r6 + 2174: 3c40 cmpnei r4, 0 + 2176: 0c06 bf 0x2182 // 2182 <__memset_fast+0x46> + 2178: a520 st.b r1, (r5, 0x0) + 217a: 2a00 subi r2, 1 + 217c: 2500 addi r5, 1 + 217e: 0402 br 0x2182 // 2182 <__memset_fast+0x46> + 2180: 1483 pop r4-r6 + 2182: 4168 lsli r3, r1, 8 + 2184: 6c4c or r1, r3 + 2186: 4170 lsli r3, r1, 16 + 2188: 6c4c or r1, r3 + 218a: 3a2f cmplti r2, 16 + 218c: 0809 bt 0x219e // 219e <__memset_fast+0x62> + 218e: b520 st.w r1, (r5, 0x0) + 2190: b521 st.w r1, (r5, 0x4) + 2192: b522 st.w r1, (r5, 0x8) + 2194: b523 st.w r1, (r5, 0xc) + 2196: 2a0f subi r2, 16 + 2198: 250f addi r5, 16 + 219a: 3a2f cmplti r2, 16 + 219c: 0ff9 bf 0x218e // 218e <__memset_fast+0x52> + 219e: 3a23 cmplti r2, 4 + 21a0: 0806 bt 0x21ac // 21ac <__memset_fast+0x70> + 21a2: 2a03 subi r2, 4 + 21a4: b520 st.w r1, (r5, 0x0) + 21a6: 2503 addi r5, 4 + 21a8: 3a23 cmplti r2, 4 + 21aa: 0ffc bf 0x21a2 // 21a2 <__memset_fast+0x66> + 21ac: 3a40 cmpnei r2, 0 + 21ae: 0fe9 bf 0x2180 // 2180 <__memset_fast+0x44> + 21b0: 2a00 subi r2, 1 + 21b2: a520 st.b r1, (r5, 0x0) + 21b4: 3a40 cmpnei r2, 0 + 21b6: 0fe5 bf 0x2180 // 2180 <__memset_fast+0x44> + 21b8: 2a00 subi r2, 1 + 21ba: a521 st.b r1, (r5, 0x1) + 21bc: 3a40 cmpnei r2, 0 + 21be: 0fe1 bf 0x2180 // 2180 <__memset_fast+0x44> + 21c0: a522 st.b r1, (r5, 0x2) + 21c2: 1483 pop r4-r6 + +000021c4 <__memcpy_fast>: + 21c4: 14c3 push r4-r6 + 21c6: 6d83 mov r6, r0 + 21c8: 6d07 mov r4, r1 + 21ca: 6d18 or r4, r6 + 21cc: 3303 movi r3, 3 + 21ce: 690c and r4, r3 + 21d0: 3c40 cmpnei r4, 0 + 21d2: 0c0b bf 0x21e8 // 21e8 <__memcpy_fast+0x24> + 21d4: 3a40 cmpnei r2, 0 + 21d6: 0c08 bf 0x21e6 // 21e6 <__memcpy_fast+0x22> + 21d8: 8160 ld.b r3, (r1, 0x0) + 21da: 2100 addi r1, 1 + 21dc: 2a00 subi r2, 1 + 21de: a660 st.b r3, (r6, 0x0) + 21e0: 2600 addi r6, 1 + 21e2: 3a40 cmpnei r2, 0 + 21e4: 0bfa bt 0x21d8 // 21d8 <__memcpy_fast+0x14> + 21e6: 1483 pop r4-r6 + 21e8: 3a2f cmplti r2, 16 + 21ea: 080e bt 0x2206 // 2206 <__memcpy_fast+0x42> + 21ec: 91a0 ld.w r5, (r1, 0x0) + 21ee: 9161 ld.w r3, (r1, 0x4) + 21f0: 9182 ld.w r4, (r1, 0x8) + 21f2: b6a0 st.w r5, (r6, 0x0) + 21f4: 91a3 ld.w r5, (r1, 0xc) + 21f6: b661 st.w r3, (r6, 0x4) + 21f8: b682 st.w r4, (r6, 0x8) + 21fa: b6a3 st.w r5, (r6, 0xc) + 21fc: 2a0f subi r2, 16 + 21fe: 210f addi r1, 16 + 2200: 260f addi r6, 16 + 2202: 3a2f cmplti r2, 16 + 2204: 0ff4 bf 0x21ec // 21ec <__memcpy_fast+0x28> + 2206: 3a23 cmplti r2, 4 + 2208: 0808 bt 0x2218 // 2218 <__memcpy_fast+0x54> + 220a: 9160 ld.w r3, (r1, 0x0) + 220c: 2a03 subi r2, 4 + 220e: 2103 addi r1, 4 + 2210: b660 st.w r3, (r6, 0x0) + 2212: 2603 addi r6, 4 + 2214: 3a23 cmplti r2, 4 + 2216: 0ffa bf 0x220a // 220a <__memcpy_fast+0x46> + 2218: 3a40 cmpnei r2, 0 + 221a: 0fe6 bf 0x21e6 // 21e6 <__memcpy_fast+0x22> + 221c: 8160 ld.b r3, (r1, 0x0) + 221e: 2100 addi r1, 1 + 2220: 2a00 subi r2, 1 + 2222: a660 st.b r3, (r6, 0x0) + 2224: 2600 addi r6, 1 + 2226: 07f9 br 0x2218 // 2218 <__memcpy_fast+0x54> + +00002228 <__GI_strncmp>: + 2228: 14c1 push r4 + 222a: 6cc3 mov r3, r0 + 222c: 6080 addu r2, r0 + 222e: 040c br 0x2246 // 2246 <__GI_strncmp+0x1e> + 2230: 8380 ld.b r4, (r3, 0x0) + 2232: 8100 ld.b r0, (r1, 0x0) + 2234: 6012 subu r0, r4 + 2236: 6c02 nor r0, r0 + 2238: 2000 addi r0, 1 + 223a: 3840 cmpnei r0, 0 + 223c: 0808 bt 0x224c // 224c <__GI_strncmp+0x24> + 223e: 3c40 cmpnei r4, 0 + 2240: 0c06 bf 0x224c // 224c <__GI_strncmp+0x24> + 2242: 2300 addi r3, 1 + 2244: 2100 addi r1, 1 + 2246: 648c cmphs r3, r2 + 2248: 0ff4 bf 0x2230 // 2230 <__GI_strncmp+0x8> + 224a: 3000 movi r0, 0 + 224c: 1481 pop r4 + ... + +00002250 : + 2250: 14d4 push r4-r7, r15 + 2252: 3820 cmplti r0, 1 + 2254: 6d03 mov r4, r0 + 2256: 6d47 mov r5, r1 + 2258: 6df7 mov r7, r13 + 225a: 080d bt 0x2274 // 2274 + 225c: 6d83 mov r6, r0 + 225e: 3e30 cmplti r6, 17 + 2260: 9700 ld.w r0, (r7, 0x0) + 2262: 0c0a bf 0x2276 // 2276 + 2264: 5c63 subi r3, r4, 1 + 2266: 4b24 lsri r1, r3, 4 + 2268: 4164 lsli r3, r1, 4 + 226a: 9040 ld.w r2, (r0, 0x0) + 226c: 5c2d subu r1, r4, r3 + 226e: 9081 ld.w r4, (r0, 0x4) + 2270: 6c17 mov r0, r5 + 2272: 7bd1 jsr r4 + 2274: 1494 pop r4-r7, r15 + 2276: 9040 ld.w r2, (r0, 0x0) + 2278: 9061 ld.w r3, (r0, 0x4) + 227a: 3110 movi r1, 16 + 227c: 6c17 mov r0, r5 + 227e: 7bcd jsr r3 + 2280: 2e0f subi r6, 16 + 2282: 07ee br 0x225e // 225e + +00002284 <__v2_printf>: + 2284: 14d4 push r4-r7, r15 + 2286: 143c subi r14, r14, 112 + 2288: b826 st.w r1, (r14, 0x18) + 228a: 1912 addi r1, r14, 72 + 228c: 1b21 addi r3, r14, 132 + 228e: b810 st.w r0, (r14, 0x40) + 2290: 2100 addi r1, 1 + 2292: 3000 movi r0, 0 + 2294: 6d4b mov r5, r2 + 2296: b871 st.w r3, (r14, 0x44) + 2298: b80a st.w r0, (r14, 0x28) + 229a: b809 st.w r0, (r14, 0x24) + 229c: b82d st.w r1, (r14, 0x34) + 229e: 9886 ld.w r4, (r14, 0x18) + 22a0: 3325 movi r3, 37 + 22a2: 84c0 ld.b r6, (r4, 0x0) + 22a4: 3e40 cmpnei r6, 0 + 22a6: 0c03 bf 0x22ac // 22ac <__v2_printf+0x28> + 22a8: 64da cmpne r6, r3 + 22aa: 0845 bt 0x2334 // 2334 <__v2_printf+0xb0> + 22ac: 9846 ld.w r2, (r14, 0x18) + 22ae: 5cc9 subu r6, r4, r2 + 22b0: 3e40 cmpnei r6, 0 + 22b2: 0c0a bf 0x22c6 // 22c6 <__v2_printf+0x42> + 22b4: 9870 ld.w r3, (r14, 0x40) + 22b6: 9340 ld.w r2, (r3, 0x0) + 22b8: 6c5b mov r1, r6 + 22ba: 9361 ld.w r3, (r3, 0x4) + 22bc: 9806 ld.w r0, (r14, 0x18) + 22be: 7bcd jsr r3 + 22c0: 9809 ld.w r0, (r14, 0x24) + 22c2: 6018 addu r0, r6 + 22c4: b809 st.w r0, (r14, 0x24) + 22c6: 8420 ld.b r1, (r4, 0x0) + 22c8: 3940 cmpnei r1, 0 + 22ca: 0803 bt 0x22d0 // 22d0 <__v2_printf+0x4c> + 22cc: e8000367 br 0x299a // 299a <__v2_printf+0x716> + 22d0: 3637 movi r6, 55 + 22d2: 1a01 addi r2, r14, 4 + 22d4: 3700 movi r7, 0 + 22d6: 6188 addu r6, r2 + 22d8: a6e0 st.b r7, (r6, 0x0) + 22da: 3300 movi r3, 0 + 22dc: 3600 movi r6, 0 + 22de: 2400 addi r4, 1 + 22e0: 3000 movi r0, 0 + 22e2: 3100 movi r1, 0 + 22e4: 2e00 subi r6, 1 + 22e6: b867 st.w r3, (r14, 0x1c) + 22e8: 3700 movi r7, 0 + 22ea: 5c42 addi r2, r4, 1 + 22ec: b846 st.w r2, (r14, 0x18) + 22ee: 8480 ld.b r4, (r4, 0x0) + 22f0: 3364 movi r3, 100 + 22f2: 64d2 cmpne r4, r3 + 22f4: 0d90 bf 0x2614 // 2614 <__v2_printf+0x390> + 22f6: 650d cmplt r3, r4 + 22f8: 084e bt 0x2394 // 2394 <__v2_printf+0x110> + 22fa: 322e movi r2, 46 + 22fc: 6492 cmpne r4, r2 + 22fe: 0d41 bf 0x2580 // 2580 <__v2_printf+0x2fc> + 2300: 6509 cmplt r2, r4 + 2302: 0829 bt 0x2354 // 2354 <__v2_printf+0xd0> + 2304: 332a movi r3, 42 + 2306: 64d2 cmpne r4, r3 + 2308: 0d31 bf 0x256a // 256a <__v2_printf+0x2e6> + 230a: 650d cmplt r3, r4 + 230c: 081c bt 0x2344 // 2344 <__v2_printf+0xc0> + 230e: 3220 movi r2, 32 + 2310: 6492 cmpne r4, r2 + 2312: 0d25 bf 0x255c // 255c <__v2_printf+0x2d8> + 2314: 3323 movi r3, 35 + 2316: 64d2 cmpne r4, r3 + 2318: 0d27 bf 0x2566 // 2566 <__v2_printf+0x2e2> + 231a: 3c40 cmpnei r4, 0 + 231c: 0803 bt 0x2322 // 2322 <__v2_printf+0x9e> + 231e: e800033e br 0x299a // 299a <__v2_printf+0x716> + 2322: 1e12 addi r6, r14, 72 + 2324: 3037 movi r0, 55 + 2326: 1a01 addi r2, r14, 4 + 2328: a680 st.b r4, (r6, 0x0) + 232a: 6008 addu r0, r2 + 232c: 3400 movi r4, 0 + 232e: a080 st.b r4, (r0, 0x0) + 2330: b8a5 st.w r5, (r14, 0x14) + 2332: 042c br 0x238a // 238a <__v2_printf+0x106> + 2334: 2400 addi r4, 1 + 2336: 07b6 br 0x22a2 // 22a2 <__v2_printf+0x1e> + 2338: 3001 movi r0, 1 + 233a: 312b movi r1, 43 + 233c: 9886 ld.w r4, (r14, 0x18) + 233e: 07d6 br 0x22ea // 22ea <__v2_printf+0x66> + 2340: 6d4f mov r5, r3 + 2342: 07fd br 0x233c // 233c <__v2_printf+0xb8> + 2344: 322b movi r2, 43 + 2346: 6492 cmpne r4, r2 + 2348: 0ff8 bf 0x2338 // 2338 <__v2_printf+0xb4> + 234a: 332d movi r3, 45 + 234c: 64d2 cmpne r4, r3 + 234e: 0be6 bt 0x231a // 231a <__v2_printf+0x96> + 2350: 3fa2 bseti r7, 2 + 2352: 07f5 br 0x233c // 233c <__v2_printf+0xb8> + 2354: 3339 movi r3, 57 + 2356: 650d cmplt r3, r4 + 2358: 0809 bt 0x236a // 236a <__v2_printf+0xe6> + 235a: 3231 movi r2, 49 + 235c: 6491 cmplt r4, r2 + 235e: 0d34 bf 0x25c6 // 25c6 <__v2_printf+0x342> + 2360: 3330 movi r3, 48 + 2362: 64d2 cmpne r4, r3 + 2364: 0bdb bt 0x231a // 231a <__v2_printf+0x96> + 2366: 3fa7 bseti r7, 7 + 2368: 07ea br 0x233c // 233c <__v2_printf+0xb8> + 236a: 3258 movi r2, 88 + 236c: 6492 cmpne r4, r2 + 236e: 0cd3 bf 0x2514 // 2514 <__v2_printf+0x290> + 2370: 3063 movi r0, 99 + 2372: 6412 cmpne r4, r0 + 2374: 0bd3 bt 0x231a // 231a <__v2_printf+0x96> + 2376: 3337 movi r3, 55 + 2378: 1a01 addi r2, r14, 4 + 237a: 5d2e addi r1, r5, 4 + 237c: 85c0 ld.b r6, (r5, 0x0) + 237e: 3400 movi r4, 0 + 2380: 1d12 addi r5, r14, 72 + 2382: 60c8 addu r3, r2 + 2384: b825 st.w r1, (r14, 0x14) + 2386: a5c0 st.b r6, (r5, 0x0) + 2388: a380 st.b r4, (r3, 0x0) + 238a: 3601 movi r6, 1 + 238c: 3500 movi r5, 0 + 238e: 1c12 addi r4, r14, 72 + 2390: e8000295 br 0x28ba // 28ba <__v2_printf+0x636> + 2394: 336d movi r3, 109 + 2396: 64d2 cmpne r4, r3 + 2398: 0d2d bf 0x25f2 // 25f2 <__v2_printf+0x36e> + 239a: 650d cmplt r3, r4 + 239c: 0883 bt 0x24a2 // 24a2 <__v2_printf+0x21e> + 239e: 3268 movi r2, 104 + 23a0: 6492 cmpne r4, r2 + 23a2: 0d24 bf 0x25ea // 25ea <__v2_printf+0x366> + 23a4: 6509 cmplt r2, r4 + 23a6: 086f bt 0x2484 // 2484 <__v2_printf+0x200> + 23a8: 3366 movi r3, 102 + 23aa: 64d1 cmplt r4, r3 + 23ac: 0bb7 bt 0x231a // 231a <__v2_printf+0x96> + 23ae: 3840 cmpnei r0, 0 + 23b0: 0c05 bf 0x23ba // 23ba <__v2_printf+0x136> + 23b2: 3037 movi r0, 55 + 23b4: 1a01 addi r2, r14, 4 + 23b6: 6008 addu r0, r2 + 23b8: a020 st.b r1, (r0, 0x0) + 23ba: 5d3e addi r1, r5, 8 + 23bc: b825 st.w r1, (r14, 0x14) + 23be: 9500 ld.w r0, (r5, 0x0) + 23c0: 9521 ld.w r1, (r5, 0x4) + 23c2: 98a7 ld.w r5, (r14, 0x1c) + 23c4: 3d40 cmpnei r5, 0 + 23c6: 0803 bt 0x23cc // 23cc <__v2_printf+0x148> + 23c8: 3301 movi r3, 1 + 23ca: b867 st.w r3, (r14, 0x1c) + 23cc: 3200 movi r2, 0 + 23ce: 2a00 subi r2, 1 + 23d0: 649a cmpne r6, r2 + 23d2: 0d58 bf 0x2682 // 2682 <__v2_printf+0x3fe> + 23d4: 6d5b mov r5, r6 + 23d6: 9867 ld.w r3, (r14, 0x1c) + 23d8: b860 st.w r3, (r14, 0x0) + 23da: b8a1 st.w r5, (r14, 0x4) + 23dc: 3328 movi r3, 40 + 23de: 1a12 addi r2, r14, 72 + 23e0: e000069d bsr 0x311a // 311a <__GI___dtostr> + 23e4: 3100 movi r1, 0 + 23e6: 2900 subi r1, 1 + 23e8: 645a cmpne r6, r1 + 23ea: b808 st.w r0, (r14, 0x20) + 23ec: 0c1a bf 0x2420 // 2420 <__v2_printf+0x19c> + 23ee: 312e movi r1, 46 + 23f0: 980d ld.w r0, (r14, 0x34) + 23f2: e00008c9 bsr 0x3584 // 3584 <__GI_strchr> + 23f6: 3840 cmpnei r0, 0 + 23f8: 98c8 ld.w r6, (r14, 0x20) + 23fa: 0d48 bf 0x268a // 268a <__v2_printf+0x406> + 23fc: 3d40 cmpnei r5, 0 + 23fe: 0805 bt 0x2408 // 2408 <__v2_printf+0x184> + 2400: 3101 movi r1, 1 + 2402: 685c and r1, r7 + 2404: 3940 cmpnei r1, 0 + 2406: 0d40 bf 0x2686 // 2686 <__v2_printf+0x402> + 2408: 58c2 addi r6, r0, 1 + 240a: 2500 addi r5, 1 + 240c: 5d59 subu r2, r5, r6 + 240e: 6080 addu r2, r0 + 2410: 3a20 cmplti r2, 1 + 2412: 0805 bt 0x241c // 241c <__v2_printf+0x198> + 2414: 2600 addi r6, 1 + 2416: 8660 ld.b r3, (r6, 0x0) + 2418: 3b40 cmpnei r3, 0 + 241a: 0bf9 bt 0x240c // 240c <__v2_printf+0x188> + 241c: 3500 movi r5, 0 + 241e: a6a0 st.b r5, (r6, 0x0) + 2420: 3067 movi r0, 103 + 2422: 6412 cmpne r4, r0 + 2424: 0822 bt 0x2468 // 2468 <__v2_printf+0x1e4> + 2426: 312e movi r1, 46 + 2428: 1812 addi r0, r14, 72 + 242a: e00008ad bsr 0x3584 // 3584 <__GI_strchr> + 242e: 3840 cmpnei r0, 0 + 2430: 6d03 mov r4, r0 + 2432: 0c1b bf 0x2468 // 2468 <__v2_printf+0x1e4> + 2434: 3165 movi r1, 101 + 2436: e00008a7 bsr 0x3584 // 3584 <__GI_strchr> + 243a: 6c43 mov r1, r0 + 243c: 84c0 ld.b r6, (r4, 0x0) + 243e: 3e40 cmpnei r6, 0 + 2440: 0930 bt 0x26a0 // 26a0 <__v2_printf+0x41c> + 2442: 3940 cmpnei r1, 0 + 2444: 0c02 bf 0x2448 // 2448 <__v2_printf+0x1c4> + 2446: 6d07 mov r4, r1 + 2448: 3630 movi r6, 48 + 244a: 5c63 subi r3, r4, 1 + 244c: 8340 ld.b r2, (r3, 0x0) + 244e: 658a cmpne r2, r6 + 2450: 0d2a bf 0x26a4 // 26a4 <__v2_printf+0x420> + 2452: 352e movi r5, 46 + 2454: 654a cmpne r2, r5 + 2456: 0802 bt 0x245a // 245a <__v2_printf+0x1d6> + 2458: 6d0f mov r4, r3 + 245a: 3000 movi r0, 0 + 245c: 3940 cmpnei r1, 0 + 245e: a400 st.b r0, (r4, 0x0) + 2460: 0c04 bf 0x2468 // 2468 <__v2_printf+0x1e4> + 2462: 6c13 mov r0, r4 + 2464: e0000838 bsr 0x34d4 // 34d4 <__strcpy_fast> + 2468: 1912 addi r1, r14, 72 + 246a: 81c0 ld.b r6, (r1, 0x0) + 246c: 332d movi r3, 45 + 246e: 64da cmpne r6, r3 + 2470: 0c02 bf 0x2474 // 2474 <__v2_printf+0x1f0> + 2472: 05ef br 0x2850 // 2850 <__v2_printf+0x5cc> + 2474: 3437 movi r4, 55 + 2476: 1801 addi r0, r14, 4 + 2478: 352d movi r5, 45 + 247a: 6100 addu r4, r0 + 247c: a4a0 st.b r5, (r4, 0x0) + 247e: 1912 addi r1, r14, 72 + 2480: 5982 addi r4, r1, 1 + 2482: 05ec br 0x285a // 285a <__v2_printf+0x5d6> + 2484: 3369 movi r3, 105 + 2486: 64d2 cmpne r4, r3 + 2488: 0cc6 bf 0x2614 // 2614 <__v2_printf+0x390> + 248a: 326c movi r2, 108 + 248c: 6492 cmpne r4, r2 + 248e: 0b46 bt 0x231a // 231a <__v2_printf+0x96> + 2490: 9866 ld.w r3, (r14, 0x18) + 2492: 8340 ld.b r2, (r3, 0x0) + 2494: 650a cmpne r2, r4 + 2496: 08ac bt 0x25ee // 25ee <__v2_printf+0x36a> + 2498: 9886 ld.w r4, (r14, 0x18) + 249a: 2400 addi r4, 1 + 249c: b886 st.w r4, (r14, 0x18) + 249e: 3fa5 bseti r7, 5 + 24a0: 074e br 0x233c // 233c <__v2_printf+0xb8> + 24a2: 3371 movi r3, 113 + 24a4: 64d2 cmpne r4, r3 + 24a6: 0ffc bf 0x249e // 249e <__v2_printf+0x21a> + 24a8: 650d cmplt r3, r4 + 24aa: 081a bt 0x24de // 24de <__v2_printf+0x25a> + 24ac: 306f movi r0, 111 + 24ae: 6412 cmpne r4, r0 + 24b0: 0cfc bf 0x26a8 // 26a8 <__v2_printf+0x424> + 24b2: 3170 movi r1, 112 + 24b4: 6452 cmpne r4, r1 + 24b6: 0b32 bt 0x231a // 231a <__v2_printf+0x96> + 24b8: 5d4e addi r2, r5, 4 + 24ba: 3400 movi r4, 0 + 24bc: 95a0 ld.w r5, (r5, 0x0) + 24be: b845 st.w r2, (r14, 0x14) + 24c0: 1901 addi r1, r14, 4 + 24c2: 3239 movi r2, 57 + 24c4: b8a3 st.w r5, (r14, 0xc) + 24c6: b884 st.w r4, (r14, 0x10) + 24c8: 3330 movi r3, 48 + 24ca: 180f addi r0, r14, 60 + 24cc: 3578 movi r5, 120 + 24ce: 6084 addu r2, r1 + 24d0: 0195 lrw r4, 0x8603 // 27f8 <__v2_printf+0x574> + 24d2: 3fa1 bseti r7, 1 + 24d4: a060 st.b r3, (r0, 0x0) + 24d6: a2a0 st.b r5, (r2, 0x0) + 24d8: b88a st.w r4, (r14, 0x28) + 24da: 3402 movi r4, 2 + 24dc: 04f1 br 0x26be // 26be <__v2_printf+0x43a> + 24de: 3275 movi r2, 117 + 24e0: 6492 cmpne r4, r2 + 24e2: 0d28 bf 0x2732 // 2732 <__v2_printf+0x4ae> + 24e4: 3378 movi r3, 120 + 24e6: 64d2 cmpne r4, r3 + 24e8: 0d44 bf 0x2770 // 2770 <__v2_printf+0x4ec> + 24ea: 3173 movi r1, 115 + 24ec: 6452 cmpne r4, r1 + 24ee: 0b16 bt 0x231a // 231a <__v2_printf+0x96> + 24f0: 3200 movi r2, 0 + 24f2: 3037 movi r0, 55 + 24f4: 1901 addi r1, r14, 4 + 24f6: 2a00 subi r2, 1 + 24f8: 5d6e addi r3, r5, 4 + 24fa: 9580 ld.w r4, (r5, 0x0) + 24fc: 6004 addu r0, r1 + 24fe: 3500 movi r5, 0 + 2500: 649a cmpne r6, r2 + 2502: b865 st.w r3, (r14, 0x14) + 2504: a0a0 st.b r5, (r0, 0x0) + 2506: 090b bt 0x271c // 271c <__v2_printf+0x498> + 2508: 6cd3 mov r3, r4 + 250a: 83c0 ld.b r6, (r3, 0x0) + 250c: 3e40 cmpnei r6, 0 + 250e: 0910 bt 0x272e // 272e <__v2_printf+0x4aa> + 2510: 5bd1 subu r6, r3, r4 + 2512: 047f br 0x2610 // 2610 <__v2_printf+0x38c> + 2514: 3840 cmpnei r0, 0 + 2516: 0c05 bf 0x2520 // 2520 <__v2_printf+0x29c> + 2518: 3037 movi r0, 55 + 251a: 1b01 addi r3, r14, 4 + 251c: 600c addu r0, r3 + 251e: a020 st.b r1, (r0, 0x0) + 2520: 0228 lrw r1, 0x85f2 // 27fc <__v2_printf+0x578> + 2522: 3020 movi r0, 32 + 2524: 681c and r0, r7 + 2526: 3840 cmpnei r0, 0 + 2528: b82a st.w r1, (r14, 0x28) + 252a: 0d2b bf 0x2780 // 2780 <__v2_printf+0x4fc> + 252c: 5d5e addi r2, r5, 8 + 252e: b845 st.w r2, (r14, 0x14) + 2530: 9520 ld.w r1, (r5, 0x0) + 2532: 9541 ld.w r2, (r5, 0x4) + 2534: b823 st.w r1, (r14, 0xc) + 2536: b844 st.w r2, (r14, 0x10) + 2538: 3001 movi r0, 1 + 253a: 681c and r0, r7 + 253c: 3840 cmpnei r0, 0 + 253e: 0fce bf 0x24da // 24da <__v2_printf+0x256> + 2540: 98a3 ld.w r5, (r14, 0xc) + 2542: 9864 ld.w r3, (r14, 0x10) + 2544: 6d4c or r5, r3 + 2546: 3d40 cmpnei r5, 0 + 2548: 0fc9 bf 0x24da // 24da <__v2_printf+0x256> + 254a: 3039 movi r0, 57 + 254c: 1d01 addi r5, r14, 4 + 254e: 3130 movi r1, 48 + 2550: 1a0f addi r2, r14, 60 + 2552: 6014 addu r0, r5 + 2554: a220 st.b r1, (r2, 0x0) + 2556: a080 st.b r4, (r0, 0x0) + 2558: 3fa1 bseti r7, 1 + 255a: 07c0 br 0x24da // 24da <__v2_printf+0x256> + 255c: 3940 cmpnei r1, 0 + 255e: 0aef bt 0x233c // 233c <__v2_printf+0xb8> + 2560: 3001 movi r0, 1 + 2562: 3120 movi r1, 32 + 2564: 06ec br 0x233c // 233c <__v2_printf+0xb8> + 2566: 3fa0 bseti r7, 0 + 2568: 06ea br 0x233c // 233c <__v2_printf+0xb8> + 256a: 9580 ld.w r4, (r5, 0x0) + 256c: 3cdf btsti r4, 31 + 256e: 5d6e addi r3, r5, 4 + 2570: b887 st.w r4, (r14, 0x1c) + 2572: 0ee7 bf 0x2340 // 2340 <__v2_printf+0xbc> + 2574: 9847 ld.w r2, (r14, 0x1c) + 2576: 3500 movi r5, 0 + 2578: 614a subu r5, r2 + 257a: b8a7 st.w r5, (r14, 0x1c) + 257c: 6d4f mov r5, r3 + 257e: 06e9 br 0x2350 // 2350 <__v2_printf+0xcc> + 2580: 98c6 ld.w r6, (r14, 0x18) + 2582: 8680 ld.b r4, (r6, 0x0) + 2584: 322a movi r2, 42 + 2586: 9866 ld.w r3, (r14, 0x18) + 2588: 6492 cmpne r4, r2 + 258a: 2300 addi r3, 1 + 258c: 0c0b bf 0x25a2 // 25a2 <__v2_printf+0x31e> + 258e: b865 st.w r3, (r14, 0x14) + 2590: 3600 movi r6, 0 + 2592: 3300 movi r3, 0 + 2594: 2b2f subi r3, 48 + 2596: 60d0 addu r3, r4 + 2598: 3b09 cmphsi r3, 10 + 259a: 9845 ld.w r2, (r14, 0x14) + 259c: 0c0c bf 0x25b4 // 25b4 <__v2_printf+0x330> + 259e: b846 st.w r2, (r14, 0x18) + 25a0: 06a8 br 0x22f0 // 22f0 <__v2_printf+0x6c> + 25a2: 95c0 ld.w r6, (r5, 0x0) + 25a4: 3edf btsti r6, 31 + 25a6: 5d8e addi r4, r5, 4 + 25a8: 0c03 bf 0x25ae // 25ae <__v2_printf+0x32a> + 25aa: 3600 movi r6, 0 + 25ac: 2e00 subi r6, 1 + 25ae: 6d53 mov r5, r4 + 25b0: b866 st.w r3, (r14, 0x18) + 25b2: 06c5 br 0x233c // 233c <__v2_printf+0xb8> + 25b4: 340a movi r4, 10 + 25b6: 7d18 mult r4, r6 + 25b8: 9845 ld.w r2, (r14, 0x14) + 25ba: 6d8f mov r6, r3 + 25bc: 6190 addu r6, r4 + 25be: 8280 ld.b r4, (r2, 0x0) + 25c0: 2200 addi r2, 1 + 25c2: b845 st.w r2, (r14, 0x14) + 25c4: 07e7 br 0x2592 // 2592 <__v2_printf+0x30e> + 25c6: 3200 movi r2, 0 + 25c8: b847 st.w r2, (r14, 0x1c) + 25ca: 9867 ld.w r3, (r14, 0x1c) + 25cc: 320a movi r2, 10 + 25ce: 7cc8 mult r3, r2 + 25d0: 2c2f subi r4, 48 + 25d2: 610c addu r4, r3 + 25d4: b887 st.w r4, (r14, 0x1c) + 25d6: 3300 movi r3, 0 + 25d8: 9886 ld.w r4, (r14, 0x18) + 25da: 5c42 addi r2, r4, 1 + 25dc: 2b2f subi r3, 48 + 25de: 8480 ld.b r4, (r4, 0x0) + 25e0: 60d0 addu r3, r4 + 25e2: 3b09 cmphsi r3, 10 + 25e4: b846 st.w r2, (r14, 0x18) + 25e6: 0ff2 bf 0x25ca // 25ca <__v2_printf+0x346> + 25e8: 07db br 0x259e // 259e <__v2_printf+0x31a> + 25ea: 3fa6 bseti r7, 6 + 25ec: 06a8 br 0x233c // 233c <__v2_printf+0xb8> + 25ee: 3fa4 bseti r7, 4 + 25f0: 06a6 br 0x233c // 233c <__v2_printf+0xb8> + 25f2: 3840 cmpnei r0, 0 + 25f4: 0c05 bf 0x25fe // 25fe <__v2_printf+0x37a> + 25f6: 3637 movi r6, 55 + 25f8: 1b01 addi r3, r14, 4 + 25fa: 618c addu r6, r3 + 25fc: a620 st.b r1, (r6, 0x0) + 25fe: 033e lrw r1, 0x20000ae4 // 2800 <__v2_printf+0x57c> + 2600: 9100 ld.w r0, (r1, 0x0) + 2602: e00007cb bsr 0x3598 // 3598 <__GI_strerror> + 2606: 6d03 mov r4, r0 + 2608: e000073c bsr 0x3480 // 3480 <__strlen_fast> + 260c: 6d83 mov r6, r0 + 260e: b8a5 st.w r5, (r14, 0x14) + 2610: 3500 movi r5, 0 + 2612: 0554 br 0x28ba // 28ba <__v2_printf+0x636> + 2614: 3840 cmpnei r0, 0 + 2616: 0c05 bf 0x2620 // 2620 <__v2_printf+0x39c> + 2618: 3037 movi r0, 55 + 261a: 1a01 addi r2, r14, 4 + 261c: 6008 addu r0, r2 + 261e: a020 st.b r1, (r0, 0x0) + 2620: 3420 movi r4, 32 + 2622: 691c and r4, r7 + 2624: 3c40 cmpnei r4, 0 + 2626: 0c1a bf 0x265a // 265a <__v2_printf+0x3d6> + 2628: 5d7e addi r3, r5, 8 + 262a: 9520 ld.w r1, (r5, 0x0) + 262c: 9541 ld.w r2, (r5, 0x4) + 262e: b865 st.w r3, (r14, 0x14) + 2630: b823 st.w r1, (r14, 0xc) + 2632: b844 st.w r2, (r14, 0x10) + 2634: 9804 ld.w r0, (r14, 0x10) + 2636: 38df btsti r0, 31 + 2638: 0c0f bf 0x2656 // 2656 <__v2_printf+0x3d2> + 263a: 9883 ld.w r4, (r14, 0xc) + 263c: 98a4 ld.w r5, (r14, 0x10) + 263e: 3200 movi r2, 0 + 2640: 3300 movi r3, 0 + 2642: 6488 cmphs r2, r2 + 2644: 6093 subc r2, r4 + 2646: 60d7 subc r3, r5 + 2648: b843 st.w r2, (r14, 0xc) + 264a: b864 st.w r3, (r14, 0x10) + 264c: 3237 movi r2, 55 + 264e: 1b01 addi r3, r14, 4 + 2650: 352d movi r5, 45 + 2652: 608c addu r2, r3 + 2654: a2a0 st.b r5, (r2, 0x0) + 2656: 3401 movi r4, 1 + 2658: 0438 br 0x26c8 // 26c8 <__v2_printf+0x444> + 265a: 3310 movi r3, 16 + 265c: 68dc and r3, r7 + 265e: 3b40 cmpnei r3, 0 + 2660: 0c08 bf 0x2670 // 2670 <__v2_printf+0x3ec> + 2662: 5d4e addi r2, r5, 4 + 2664: b845 st.w r2, (r14, 0x14) + 2666: 95a0 ld.w r5, (r5, 0x0) + 2668: 559f asri r4, r5, 31 + 266a: b8a3 st.w r5, (r14, 0xc) + 266c: b884 st.w r4, (r14, 0x10) + 266e: 07e3 br 0x2634 // 2634 <__v2_printf+0x3b0> + 2670: 3140 movi r1, 64 + 2672: 685c and r1, r7 + 2674: 5d0e addi r0, r5, 4 + 2676: 3940 cmpnei r1, 0 + 2678: 95a0 ld.w r5, (r5, 0x0) + 267a: b805 st.w r0, (r14, 0x14) + 267c: 0ff6 bf 0x2668 // 2668 <__v2_printf+0x3e4> + 267e: 7557 sexth r5, r5 + 2680: 07f4 br 0x2668 // 2668 <__v2_printf+0x3e4> + 2682: 3506 movi r5, 6 + 2684: 06a9 br 0x23d6 // 23d6 <__v2_printf+0x152> + 2686: 6d83 mov r6, r0 + 2688: 06ca br 0x241c // 241c <__v2_printf+0x198> + 268a: 3201 movi r2, 1 + 268c: 689c and r2, r7 + 268e: 3a40 cmpnei r2, 0 + 2690: 0ec8 bf 0x2420 // 2420 <__v2_printf+0x19c> + 2692: 1d12 addi r5, r14, 72 + 2694: 6158 addu r5, r6 + 2696: 332e movi r3, 46 + 2698: 3000 movi r0, 0 + 269a: a560 st.b r3, (r5, 0x0) + 269c: a501 st.b r0, (r5, 0x1) + 269e: 06c1 br 0x2420 // 2420 <__v2_printf+0x19c> + 26a0: 2400 addi r4, 1 + 26a2: 06cd br 0x243c // 243c <__v2_printf+0x1b8> + 26a4: 6d0f mov r4, r3 + 26a6: 06d2 br 0x244a // 244a <__v2_printf+0x1c6> + 26a8: 3320 movi r3, 32 + 26aa: 68dc and r3, r7 + 26ac: 3b40 cmpnei r3, 0 + 26ae: 0c24 bf 0x26f6 // 26f6 <__v2_printf+0x472> + 26b0: 5d7e addi r3, r5, 8 + 26b2: 9500 ld.w r0, (r5, 0x0) + 26b4: 9521 ld.w r1, (r5, 0x4) + 26b6: b865 st.w r3, (r14, 0x14) + 26b8: b803 st.w r0, (r14, 0xc) + 26ba: b824 st.w r1, (r14, 0x10) + 26bc: 3400 movi r4, 0 + 26be: 3537 movi r5, 55 + 26c0: 1801 addi r0, r14, 4 + 26c2: 3200 movi r2, 0 + 26c4: 6140 addu r5, r0 + 26c6: a540 st.b r2, (r5, 0x0) + 26c8: 3100 movi r1, 0 + 26ca: 2900 subi r1, 1 + 26cc: 9803 ld.w r0, (r14, 0xc) + 26ce: 98a4 ld.w r5, (r14, 0x10) + 26d0: 645a cmpne r6, r1 + 26d2: 6c14 or r0, r5 + 26d4: 0cc8 bf 0x2864 // 2864 <__v2_printf+0x5e0> + 26d6: 6c9f mov r2, r7 + 26d8: 3a87 bclri r2, 7 + 26da: 3840 cmpnei r0, 0 + 26dc: b848 st.w r2, (r14, 0x20) + 26de: 08c6 bt 0x286a // 286a <__v2_printf+0x5e6> + 26e0: 3e40 cmpnei r6, 0 + 26e2: 0cac bf 0x283a // 283a <__v2_printf+0x5b6> + 26e4: 3c41 cmpnei r4, 1 + 26e6: 0c68 bf 0x27b6 // 27b6 <__v2_printf+0x532> + 26e8: 3c42 cmpnei r4, 2 + 26ea: 0c8d bf 0x2804 // 2804 <__v2_printf+0x580> + 26ec: 3300 movi r3, 0 + 26ee: 3400 movi r4, 0 + 26f0: b863 st.w r3, (r14, 0xc) + 26f2: b884 st.w r4, (r14, 0x10) + 26f4: 04bf br 0x2872 // 2872 <__v2_printf+0x5ee> + 26f6: 3010 movi r0, 16 + 26f8: 681c and r0, r7 + 26fa: 3840 cmpnei r0, 0 + 26fc: 0c05 bf 0x2706 // 2706 <__v2_printf+0x482> + 26fe: 5d8e addi r4, r5, 4 + 2700: b885 st.w r4, (r14, 0x14) + 2702: 95a0 ld.w r5, (r5, 0x0) + 2704: 0408 br 0x2714 // 2714 <__v2_printf+0x490> + 2706: 3240 movi r2, 64 + 2708: 689c and r2, r7 + 270a: 5d2e addi r1, r5, 4 + 270c: 3a40 cmpnei r2, 0 + 270e: b825 st.w r1, (r14, 0x14) + 2710: 0ff9 bf 0x2702 // 2702 <__v2_printf+0x47e> + 2712: 8da0 ld.h r5, (r5, 0x0) + 2714: 3400 movi r4, 0 + 2716: b8a3 st.w r5, (r14, 0xc) + 2718: b884 st.w r4, (r14, 0x10) + 271a: 07d2 br 0x26be // 26be <__v2_printf+0x43a> + 271c: 5cb8 addu r5, r4, r6 + 271e: 6cd3 mov r3, r4 + 2720: 654e cmpne r3, r5 + 2722: 0f77 bf 0x2610 // 2610 <__v2_printf+0x38c> + 2724: 8300 ld.b r0, (r3, 0x0) + 2726: 3840 cmpnei r0, 0 + 2728: 0ef4 bf 0x2510 // 2510 <__v2_printf+0x28c> + 272a: 2300 addi r3, 1 + 272c: 07fa br 0x2720 // 2720 <__v2_printf+0x49c> + 272e: 2300 addi r3, 1 + 2730: 06ed br 0x250a // 250a <__v2_printf+0x286> + 2732: 3420 movi r4, 32 + 2734: 691c and r4, r7 + 2736: 3c40 cmpnei r4, 0 + 2738: 0c09 bf 0x274a // 274a <__v2_printf+0x4c6> + 273a: 5d7e addi r3, r5, 8 + 273c: 9520 ld.w r1, (r5, 0x0) + 273e: 9541 ld.w r2, (r5, 0x4) + 2740: b865 st.w r3, (r14, 0x14) + 2742: b823 st.w r1, (r14, 0xc) + 2744: b844 st.w r2, (r14, 0x10) + 2746: 3401 movi r4, 1 + 2748: 07bb br 0x26be // 26be <__v2_printf+0x43a> + 274a: 3310 movi r3, 16 + 274c: 68dc and r3, r7 + 274e: 3b40 cmpnei r3, 0 + 2750: 0c05 bf 0x275a // 275a <__v2_printf+0x4d6> + 2752: 5d0e addi r0, r5, 4 + 2754: b805 st.w r0, (r14, 0x14) + 2756: 95a0 ld.w r5, (r5, 0x0) + 2758: 0408 br 0x2768 // 2768 <__v2_printf+0x4e4> + 275a: 3140 movi r1, 64 + 275c: 685c and r1, r7 + 275e: 5d4e addi r2, r5, 4 + 2760: 3940 cmpnei r1, 0 + 2762: b845 st.w r2, (r14, 0x14) + 2764: 0ff9 bf 0x2756 // 2756 <__v2_printf+0x4d2> + 2766: 8da0 ld.h r5, (r5, 0x0) + 2768: 3400 movi r4, 0 + 276a: b8a3 st.w r5, (r14, 0xc) + 276c: b884 st.w r4, (r14, 0x10) + 276e: 07ec br 0x2746 // 2746 <__v2_printf+0x4c2> + 2770: 3840 cmpnei r0, 0 + 2772: 0c05 bf 0x277c // 277c <__v2_printf+0x4f8> + 2774: 3337 movi r3, 55 + 2776: 1a01 addi r2, r14, 4 + 2778: 60c8 addu r3, r2 + 277a: a320 st.b r1, (r3, 0x0) + 277c: 103f lrw r1, 0x8603 // 27f8 <__v2_printf+0x574> + 277e: 06d2 br 0x2522 // 2522 <__v2_printf+0x29e> + 2780: 3310 movi r3, 16 + 2782: 68dc and r3, r7 + 2784: 3b40 cmpnei r3, 0 + 2786: 0c05 bf 0x2790 // 2790 <__v2_printf+0x50c> + 2788: 5d0e addi r0, r5, 4 + 278a: b805 st.w r0, (r14, 0x14) + 278c: 95a0 ld.w r5, (r5, 0x0) + 278e: 0408 br 0x279e // 279e <__v2_printf+0x51a> + 2790: 3240 movi r2, 64 + 2792: 689c and r2, r7 + 2794: 5d2e addi r1, r5, 4 + 2796: 3a40 cmpnei r2, 0 + 2798: b825 st.w r1, (r14, 0x14) + 279a: 0ff9 bf 0x278c // 278c <__v2_printf+0x508> + 279c: 8da0 ld.h r5, (r5, 0x0) + 279e: 3300 movi r3, 0 + 27a0: b8a3 st.w r5, (r14, 0xc) + 27a2: b864 st.w r3, (r14, 0x10) + 27a4: 06ca br 0x2538 // 2538 <__v2_printf+0x2b4> + 27a6: 6cd3 mov r3, r4 + 27a8: 0467 br 0x2876 // 2876 <__v2_printf+0x5f2> + 27aa: 9884 ld.w r4, (r14, 0x10) + 27ac: 3c40 cmpnei r4, 0 + 27ae: 080b bt 0x27c4 // 27c4 <__v2_printf+0x540> + 27b0: 9843 ld.w r2, (r14, 0xc) + 27b2: 3a09 cmphsi r2, 10 + 27b4: 0808 bt 0x27c4 // 27c4 <__v2_printf+0x540> + 27b6: 9883 ld.w r4, (r14, 0xc) + 27b8: 242f addi r4, 48 + 27ba: 1f1a addi r7, r14, 104 + 27bc: a787 st.b r4, (r7, 0x7) + 27be: 1c12 addi r4, r14, 72 + 27c0: 2426 addi r4, 39 + 27c2: 0478 br 0x28b2 // 28b2 <__v2_printf+0x62e> + 27c4: 1c1c addi r4, r14, 112 + 27c6: 3530 movi r5, 48 + 27c8: 320a movi r2, 10 + 27ca: 3300 movi r3, 0 + 27cc: 9803 ld.w r0, (r14, 0xc) + 27ce: 9824 ld.w r1, (r14, 0x10) + 27d0: e00002c2 bsr 0x2d54 // 2d54 <__umoddi3> + 27d4: 6014 addu r0, r5 + 27d6: 2c00 subi r4, 1 + 27d8: a400 st.b r0, (r4, 0x0) + 27da: 320a movi r2, 10 + 27dc: 9803 ld.w r0, (r14, 0xc) + 27de: 9824 ld.w r1, (r14, 0x10) + 27e0: 3300 movi r3, 0 + 27e2: e00000e3 bsr 0x29a8 // 29a8 <__udivdi3> + 27e6: b803 st.w r0, (r14, 0xc) + 27e8: b824 st.w r1, (r14, 0x10) + 27ea: 9823 ld.w r1, (r14, 0xc) + 27ec: 98e4 ld.w r7, (r14, 0x10) + 27ee: 6c5c or r1, r7 + 27f0: 3940 cmpnei r1, 0 + 27f2: 0beb bt 0x27c8 // 27c8 <__v2_printf+0x544> + 27f4: 045f br 0x28b2 // 28b2 <__v2_printf+0x62e> + 27f6: 0000 bkpt + 27f8: 00008603 .long 0x00008603 + 27fc: 000085f2 .long 0x000085f2 + 2800: 20000ae4 .long 0x20000ae4 + 2804: 3300 movi r3, 0 + 2806: 3400 movi r4, 0 + 2808: b863 st.w r3, (r14, 0xc) + 280a: b884 st.w r4, (r14, 0x10) + 280c: 1c1c addi r4, r14, 112 + 280e: 320f movi r2, 15 + 2810: 9803 ld.w r0, (r14, 0xc) + 2812: 982a ld.w r1, (r14, 0x28) + 2814: 6808 and r0, r2 + 2816: 6004 addu r0, r1 + 2818: 80a0 ld.b r5, (r0, 0x0) + 281a: 2c00 subi r4, 1 + 281c: 98e4 ld.w r7, (r14, 0x10) + 281e: a4a0 st.b r5, (r4, 0x0) + 2820: 98a4 ld.w r5, (r14, 0x10) + 2822: 9863 ld.w r3, (r14, 0xc) + 2824: 471c lsli r0, r7, 28 + 2826: 4de4 lsri r7, r5, 4 + 2828: 4b24 lsri r1, r3, 4 + 282a: b8e4 st.w r7, (r14, 0x10) + 282c: 6c04 or r0, r1 + 282e: 9864 ld.w r3, (r14, 0x10) + 2830: b803 st.w r0, (r14, 0xc) + 2832: 6c0c or r0, r3 + 2834: 3840 cmpnei r0, 0 + 2836: 0bed bt 0x2810 // 2810 <__v2_printf+0x58c> + 2838: 043d br 0x28b2 // 28b2 <__v2_printf+0x62e> + 283a: 3c40 cmpnei r4, 0 + 283c: 0808 bt 0x284c // 284c <__v2_printf+0x5c8> + 283e: 3301 movi r3, 1 + 2840: 68dc and r3, r7 + 2842: 3b40 cmpnei r3, 0 + 2844: 0c04 bf 0x284c // 284c <__v2_printf+0x5c8> + 2846: 1f1a addi r7, r14, 104 + 2848: 3430 movi r4, 48 + 284a: 07b9 br 0x27bc // 27bc <__v2_printf+0x538> + 284c: 1c1c addi r4, r14, 112 + 284e: 0432 br 0x28b2 // 28b2 <__v2_printf+0x62e> + 2850: 322b movi r2, 43 + 2852: 649a cmpne r6, r2 + 2854: 0802 bt 0x2858 // 2858 <__v2_printf+0x5d4> + 2856: 0614 br 0x247e // 247e <__v2_printf+0x1fa> + 2858: 1c12 addi r4, r14, 72 + 285a: 6c13 mov r0, r4 + 285c: e0000612 bsr 0x3480 // 3480 <__strlen_fast> + 2860: 6d83 mov r6, r0 + 2862: 06d7 br 0x2610 // 2610 <__v2_printf+0x38c> + 2864: 3840 cmpnei r0, 0 + 2866: b8e8 st.w r7, (r14, 0x20) + 2868: 0f3e bf 0x26e4 // 26e4 <__v2_printf+0x460> + 286a: 3c41 cmpnei r4, 1 + 286c: 0f9f bf 0x27aa // 27aa <__v2_printf+0x526> + 286e: 3c42 cmpnei r4, 2 + 2870: 0fce bf 0x280c // 280c <__v2_printf+0x588> + 2872: 1b1c addi r3, r14, 112 + 2874: 3707 movi r7, 7 + 2876: 9823 ld.w r1, (r14, 0xc) + 2878: 685c and r1, r7 + 287a: 212f addi r1, 48 + 287c: 9804 ld.w r0, (r14, 0x10) + 287e: 7484 zextb r2, r1 + 2880: 9823 ld.w r1, (r14, 0xc) + 2882: 40bd lsli r5, r0, 29 + 2884: 4903 lsri r0, r1, 3 + 2886: 9824 ld.w r1, (r14, 0x10) + 2888: 4923 lsri r1, r1, 3 + 288a: b824 st.w r1, (r14, 0x10) + 288c: 6d40 or r5, r0 + 288e: 9804 ld.w r0, (r14, 0x10) + 2890: b8a3 st.w r5, (r14, 0xc) + 2892: 6d40 or r5, r0 + 2894: 5b83 subi r4, r3, 1 + 2896: 3d40 cmpnei r5, 0 + 2898: a440 st.b r2, (r4, 0x0) + 289a: 0b86 bt 0x27a6 // 27a6 <__v2_printf+0x522> + 289c: 3701 movi r7, 1 + 289e: 9828 ld.w r1, (r14, 0x20) + 28a0: 69c4 and r7, r1 + 28a2: 3f40 cmpnei r7, 0 + 28a4: 0c07 bf 0x28b2 // 28b2 <__v2_printf+0x62e> + 28a6: 3530 movi r5, 48 + 28a8: 654a cmpne r2, r5 + 28aa: 0c04 bf 0x28b2 // 28b2 <__v2_printf+0x62e> + 28ac: 5b87 subi r4, r3, 2 + 28ae: 3330 movi r3, 48 + 28b0: a460 st.b r3, (r4, 0x0) + 28b2: 6d5b mov r5, r6 + 28b4: 1e1c addi r6, r14, 112 + 28b6: 6192 subu r6, r4 + 28b8: 98e8 ld.w r7, (r14, 0x20) + 28ba: 6595 cmplt r5, r6 + 28bc: b8a8 st.w r5, (r14, 0x20) + 28be: 0c02 bf 0x28c2 // 28c2 <__v2_printf+0x63e> + 28c0: b8c8 st.w r6, (r14, 0x20) + 28c2: 3037 movi r0, 55 + 28c4: 1b01 addi r3, r14, 4 + 28c6: 600c addu r0, r3 + 28c8: 8040 ld.b r2, (r0, 0x0) + 28ca: 3a40 cmpnei r2, 0 + 28cc: 0c04 bf 0x28d4 // 28d4 <__v2_printf+0x650> + 28ce: 9828 ld.w r1, (r14, 0x20) + 28d0: 2100 addi r1, 1 + 28d2: b828 st.w r1, (r14, 0x20) + 28d4: 3002 movi r0, 2 + 28d6: 681c and r0, r7 + 28d8: 3840 cmpnei r0, 0 + 28da: b80b st.w r0, (r14, 0x2c) + 28dc: 0c04 bf 0x28e4 // 28e4 <__v2_printf+0x660> + 28de: 9868 ld.w r3, (r14, 0x20) + 28e0: 2301 addi r3, 2 + 28e2: b868 st.w r3, (r14, 0x20) + 28e4: 3284 movi r2, 132 + 28e6: 689c and r2, r7 + 28e8: 3a40 cmpnei r2, 0 + 28ea: b84c st.w r2, (r14, 0x30) + 28ec: 080b bt 0x2902 // 2902 <__v2_printf+0x67e> + 28ee: 3310 movi r3, 16 + 28f0: 1a0c addi r2, r14, 48 + 28f2: 9827 ld.w r1, (r14, 0x1c) + 28f4: 9808 ld.w r0, (r14, 0x20) + 28f6: 60c8 addu r3, r2 + 28f8: 5901 subu r0, r1, r0 + 28fa: 6f4f mov r13, r3 + 28fc: 1129 lrw r1, 0x77f4 // 29a0 <__v2_printf+0x71c> + 28fe: e3fffca9 bsr 0x2250 // 2250 + 2902: 3137 movi r1, 55 + 2904: 1801 addi r0, r14, 4 + 2906: 6040 addu r1, r0 + 2908: 8160 ld.b r3, (r1, 0x0) + 290a: 3b40 cmpnei r3, 0 + 290c: 0c0b bf 0x2922 // 2922 <__v2_printf+0x69e> + 290e: 9830 ld.w r1, (r14, 0x40) + 2910: 9101 ld.w r0, (r1, 0x4) + 2912: b802 st.w r0, (r14, 0x8) + 2914: 1b0c addi r3, r14, 48 + 2916: 300b movi r0, 11 + 2918: 9140 ld.w r2, (r1, 0x0) + 291a: 600c addu r0, r3 + 291c: 3101 movi r1, 1 + 291e: 9862 ld.w r3, (r14, 0x8) + 2920: 7bcd jsr r3 + 2922: 984b ld.w r2, (r14, 0x2c) + 2924: 3a40 cmpnei r2, 0 + 2926: 0c07 bf 0x2934 // 2934 <__v2_printf+0x6b0> + 2928: 9830 ld.w r1, (r14, 0x40) + 292a: 9140 ld.w r2, (r1, 0x0) + 292c: 9161 ld.w r3, (r1, 0x4) + 292e: 180f addi r0, r14, 60 + 2930: 3102 movi r1, 2 + 2932: 7bcd jsr r3 + 2934: 3080 movi r0, 128 + 2936: 984c ld.w r2, (r14, 0x30) + 2938: 640a cmpne r2, r0 + 293a: 080b bt 0x2950 // 2950 <__v2_printf+0x6cc> + 293c: 9827 ld.w r1, (r14, 0x1c) + 293e: 9868 ld.w r3, (r14, 0x20) + 2940: 590d subu r0, r1, r3 + 2942: 1a0c addi r2, r14, 48 + 2944: 3110 movi r1, 16 + 2946: 6048 addu r1, r2 + 2948: 6f47 mov r13, r1 + 294a: 1037 lrw r1, 0x7804 // 29a4 <__v2_printf+0x720> + 294c: e3fffc82 bsr 0x2250 // 2250 + 2950: 5d19 subu r0, r5, r6 + 2952: 1b0c addi r3, r14, 48 + 2954: 3510 movi r5, 16 + 2956: 614c addu r5, r3 + 2958: 6f57 mov r13, r5 + 295a: 6d77 mov r5, r13 + 295c: 1032 lrw r1, 0x7804 // 29a4 <__v2_printf+0x720> + 295e: e3fffc79 bsr 0x2250 // 2250 + 2962: 9500 ld.w r0, (r5, 0x0) + 2964: 9040 ld.w r2, (r0, 0x0) + 2966: 9061 ld.w r3, (r0, 0x4) + 2968: 6c13 mov r0, r4 + 296a: 3404 movi r4, 4 + 296c: 6c5b mov r1, r6 + 296e: 691c and r4, r7 + 2970: 7bcd jsr r3 + 2972: 3c40 cmpnei r4, 0 + 2974: 0c08 bf 0x2984 // 2984 <__v2_printf+0x700> + 2976: 9828 ld.w r1, (r14, 0x20) + 2978: 98c7 ld.w r6, (r14, 0x1c) + 297a: 5e05 subu r0, r6, r1 + 297c: 6f57 mov r13, r5 + 297e: 1029 lrw r1, 0x77f4 // 29a0 <__v2_printf+0x71c> + 2980: e3fffc68 bsr 0x2250 // 2250 + 2984: 98a7 ld.w r5, (r14, 0x1c) + 2986: 9848 ld.w r2, (r14, 0x20) + 2988: 6495 cmplt r5, r2 + 298a: 0c02 bf 0x298e // 298e <__v2_printf+0x70a> + 298c: 6d4b mov r5, r2 + 298e: 9809 ld.w r0, (r14, 0x24) + 2990: 6014 addu r0, r5 + 2992: b809 st.w r0, (r14, 0x24) + 2994: 98a5 ld.w r5, (r14, 0x14) + 2996: e800fc84 br 0x229e // 229e <__v2_printf+0x1a> + 299a: 9809 ld.w r0, (r14, 0x24) + 299c: 141c addi r14, r14, 112 + 299e: 1494 pop r4-r7, r15 + 29a0: 000077f4 .long 0x000077f4 + 29a4: 00007804 .long 0x00007804 + +000029a8 <__udivdi3>: + 29a8: 14d4 push r4-r7, r15 + 29aa: 1426 subi r14, r14, 24 + 29ac: 6dc7 mov r7, r1 + 29ae: 3b40 cmpnei r3, 0 + 29b0: 6d03 mov r4, r0 + 29b2: 6c4f mov r1, r3 + 29b4: 6d8b mov r6, r2 + 29b6: b800 st.w r0, (r14, 0x0) + 29b8: 6d5f mov r5, r7 + 29ba: 085b bt 0x2a70 // 2a70 <__udivdi3+0xc8> + 29bc: 649c cmphs r7, r2 + 29be: 0874 bt 0x2aa6 // 2aa6 <__udivdi3+0xfe> + 29c0: 003d lrw r1, 0xffff // 2d48 <__udivdi3+0x3a0> + 29c2: 6484 cmphs r1, r2 + 29c4: 0cdc bf 0x2b7c // 2b7c <__udivdi3+0x1d4> + 29c6: 31ff movi r1, 255 + 29c8: 6484 cmphs r1, r2 + 29ca: 0802 bt 0x29ce // 29ce <__udivdi3+0x26> + 29cc: 3308 movi r3, 8 + 29ce: 6c4b mov r1, r2 + 29d0: 704d lsr r1, r3 + 29d2: 0100 lrw r0, 0x76f4 // 2d4c <__udivdi3+0x3a4> + 29d4: 6040 addu r1, r0 + 29d6: 8120 ld.b r1, (r1, 0x0) + 29d8: 60c4 addu r3, r1 + 29da: 3120 movi r1, 32 + 29dc: 604e subu r1, r3 + 29de: 3940 cmpnei r1, 0 + 29e0: 0c09 bf 0x29f2 // 29f2 <__udivdi3+0x4a> + 29e2: 6d53 mov r5, r4 + 29e4: 7084 lsl r2, r1 + 29e6: 71c4 lsl r7, r1 + 29e8: 714d lsr r5, r3 + 29ea: 7104 lsl r4, r1 + 29ec: 6d8b mov r6, r2 + 29ee: 6d5c or r5, r7 + 29f0: b880 st.w r4, (r14, 0x0) + 29f2: 4e90 lsri r4, r6, 16 + 29f4: 6c53 mov r1, r4 + 29f6: 6c17 mov r0, r5 + 29f8: e00011b2 bsr 0x4d5c // 4d5c <__umodsi3> + 29fc: b801 st.w r0, (r14, 0x4) + 29fe: 6c53 mov r1, r4 + 2a00: 6c17 mov r0, r5 + 2a02: e0001189 bsr 0x4d14 // 4d14 <__udivsi3> + 2a06: 75d9 zexth r7, r6 + 2a08: 9861 ld.w r3, (r14, 0x4) + 2a0a: 9820 ld.w r1, (r14, 0x0) + 2a0c: 6c9f mov r2, r7 + 2a0e: 4370 lsli r3, r3, 16 + 2a10: 4930 lsri r1, r1, 16 + 2a12: 7c80 mult r2, r0 + 2a14: 6cc4 or r3, r1 + 2a16: 648c cmphs r3, r2 + 2a18: 6d43 mov r5, r0 + 2a1a: 0808 bt 0x2a2a // 2a2a <__udivdi3+0x82> + 2a1c: 60d8 addu r3, r6 + 2a1e: 658c cmphs r3, r6 + 2a20: 5823 subi r1, r0, 1 + 2a22: 0c03 bf 0x2a28 // 2a28 <__udivdi3+0x80> + 2a24: 648c cmphs r3, r2 + 2a26: 0d8e bf 0x2d42 // 2d42 <__udivdi3+0x39a> + 2a28: 6d47 mov r5, r1 + 2a2a: 60ca subu r3, r2 + 2a2c: 6c53 mov r1, r4 + 2a2e: 6c0f mov r0, r3 + 2a30: b862 st.w r3, (r14, 0x8) + 2a32: e0001195 bsr 0x4d5c // 4d5c <__umodsi3> + 2a36: 9862 ld.w r3, (r14, 0x8) + 2a38: b801 st.w r0, (r14, 0x4) + 2a3a: 6c53 mov r1, r4 + 2a3c: 6c0f mov r0, r3 + 2a3e: e000116b bsr 0x4d14 // 4d14 <__udivsi3> + 2a42: 9841 ld.w r2, (r14, 0x4) + 2a44: d86e1000 ld.h r3, (r14, 0x0) + 2a48: 4250 lsli r2, r2, 16 + 2a4a: 74cd zexth r3, r3 + 2a4c: 7dc0 mult r7, r0 + 2a4e: 6c8c or r2, r3 + 2a50: 65c8 cmphs r2, r7 + 2a52: 6d03 mov r4, r0 + 2a54: 0808 bt 0x2a64 // 2a64 <__udivdi3+0xbc> + 2a56: 6098 addu r2, r6 + 2a58: 6588 cmphs r2, r6 + 2a5a: 5863 subi r3, r0, 1 + 2a5c: 0d4d bf 0x2cf6 // 2cf6 <__udivdi3+0x34e> + 2a5e: 65c8 cmphs r2, r7 + 2a60: 094b bt 0x2cf6 // 2cf6 <__udivdi3+0x34e> + 2a62: 2c01 subi r4, 2 + 2a64: 4510 lsli r0, r5, 16 + 2a66: 3700 movi r7, 0 + 2a68: 6c10 or r0, r4 + 2a6a: 6c5f mov r1, r7 + 2a6c: 1406 addi r14, r14, 24 + 2a6e: 1494 pop r4-r7, r15 + 2a70: 64dc cmphs r7, r3 + 2a72: 0c76 bf 0x2b5e // 2b5e <__udivdi3+0x1b6> + 2a74: 026a lrw r3, 0xffff // 2d48 <__udivdi3+0x3a0> + 2a76: 644c cmphs r3, r1 + 2a78: 0878 bt 0x2b68 // 2b68 <__udivdi3+0x1c0> + 2a7a: 0269 lrw r3, 0xffffff // 2d50 <__udivdi3+0x3a8> + 2a7c: 644c cmphs r3, r1 + 2a7e: 0d48 bf 0x2d0e // 2d0e <__udivdi3+0x366> + 2a80: 3610 movi r6, 16 + 2a82: 6cc7 mov r3, r1 + 2a84: 70d9 lsr r3, r6 + 2a86: 020d lrw r0, 0x76f4 // 2d4c <__udivdi3+0x3a4> + 2a88: 60c0 addu r3, r0 + 2a8a: 8360 ld.b r3, (r3, 0x0) + 2a8c: 618c addu r6, r3 + 2a8e: 3020 movi r0, 32 + 2a90: 5879 subu r3, r0, r6 + 2a92: 3b40 cmpnei r3, 0 + 2a94: b860 st.w r3, (r14, 0x0) + 2a96: 0878 bt 0x2b86 // 2b86 <__udivdi3+0x1de> + 2a98: 65c4 cmphs r1, r7 + 2a9a: 0d40 bf 0x2d1a // 2d1a <__udivdi3+0x372> + 2a9c: 6490 cmphs r4, r2 + 2a9e: 6c0f mov r0, r3 + 2aa0: 600d addc r0, r3 + 2aa2: 3700 movi r7, 0 + 2aa4: 045f br 0x2b62 // 2b62 <__udivdi3+0x1ba> + 2aa6: 3a40 cmpnei r2, 0 + 2aa8: 0808 bt 0x2ab8 // 2ab8 <__udivdi3+0x110> + 2aaa: 3100 movi r1, 0 + 2aac: 3001 movi r0, 1 + 2aae: b861 st.w r3, (r14, 0x4) + 2ab0: e0001132 bsr 0x4d14 // 4d14 <__udivsi3> + 2ab4: 6d83 mov r6, r0 + 2ab6: 9861 ld.w r3, (r14, 0x4) + 2ab8: 025b lrw r2, 0xffff // 2d48 <__udivdi3+0x3a0> + 2aba: 6588 cmphs r2, r6 + 2abc: 085b bt 0x2b72 // 2b72 <__udivdi3+0x1ca> + 2abe: 027a lrw r3, 0xffffff // 2d50 <__udivdi3+0x3a8> + 2ac0: 658c cmphs r3, r6 + 2ac2: 0d28 bf 0x2d12 // 2d12 <__udivdi3+0x36a> + 2ac4: 3310 movi r3, 16 + 2ac6: 6c9b mov r2, r6 + 2ac8: 023e lrw r1, 0x76f4 // 2d4c <__udivdi3+0x3a4> + 2aca: 708d lsr r2, r3 + 2acc: 6084 addu r2, r1 + 2ace: 8240 ld.b r2, (r2, 0x0) + 2ad0: 5a2c addu r1, r2, r3 + 2ad2: 3220 movi r2, 32 + 2ad4: 6086 subu r2, r1 + 2ad6: 3a40 cmpnei r2, 0 + 2ad8: 08c0 bt 0x2c58 // 2c58 <__udivdi3+0x2b0> + 2ada: 74d9 zexth r3, r6 + 2adc: 5f99 subu r4, r7, r6 + 2ade: 4eb0 lsri r5, r6, 16 + 2ae0: b861 st.w r3, (r14, 0x4) + 2ae2: 3701 movi r7, 1 + 2ae4: 6c57 mov r1, r5 + 2ae6: 6c13 mov r0, r4 + 2ae8: e000113a bsr 0x4d5c // 4d5c <__umodsi3> + 2aec: b802 st.w r0, (r14, 0x8) + 2aee: 6c57 mov r1, r5 + 2af0: 6c13 mov r0, r4 + 2af2: e0001111 bsr 0x4d14 // 4d14 <__udivsi3> + 2af6: 9862 ld.w r3, (r14, 0x8) + 2af8: 4330 lsli r1, r3, 16 + 2afa: 9860 ld.w r3, (r14, 0x0) + 2afc: 9841 ld.w r2, (r14, 0x4) + 2afe: 4b70 lsri r3, r3, 16 + 2b00: 7c80 mult r2, r0 + 2b02: 6cc4 or r3, r1 + 2b04: 648c cmphs r3, r2 + 2b06: 6d03 mov r4, r0 + 2b08: 0808 bt 0x2b18 // 2b18 <__udivdi3+0x170> + 2b0a: 60d8 addu r3, r6 + 2b0c: 658c cmphs r3, r6 + 2b0e: 5823 subi r1, r0, 1 + 2b10: 0c03 bf 0x2b16 // 2b16 <__udivdi3+0x16e> + 2b12: 648c cmphs r3, r2 + 2b14: 0d14 bf 0x2d3c // 2d3c <__udivdi3+0x394> + 2b16: 6d07 mov r4, r1 + 2b18: 60ca subu r3, r2 + 2b1a: 6c57 mov r1, r5 + 2b1c: 6c0f mov r0, r3 + 2b1e: b863 st.w r3, (r14, 0xc) + 2b20: e000111e bsr 0x4d5c // 4d5c <__umodsi3> + 2b24: 9863 ld.w r3, (r14, 0xc) + 2b26: 6c57 mov r1, r5 + 2b28: b802 st.w r0, (r14, 0x8) + 2b2a: 6c0f mov r0, r3 + 2b2c: e00010f4 bsr 0x4d14 // 4d14 <__udivsi3> + 2b30: 9842 ld.w r2, (r14, 0x8) + 2b32: d86e1000 ld.h r3, (r14, 0x0) + 2b36: 9821 ld.w r1, (r14, 0x4) + 2b38: 4250 lsli r2, r2, 16 + 2b3a: 74cd zexth r3, r3 + 2b3c: 7c40 mult r1, r0 + 2b3e: 6cc8 or r3, r2 + 2b40: 644c cmphs r3, r1 + 2b42: 6d43 mov r5, r0 + 2b44: 0808 bt 0x2b54 // 2b54 <__udivdi3+0x1ac> + 2b46: 60d8 addu r3, r6 + 2b48: 658c cmphs r3, r6 + 2b4a: 5843 subi r2, r0, 1 + 2b4c: 0cd3 bf 0x2cf2 // 2cf2 <__udivdi3+0x34a> + 2b4e: 644c cmphs r3, r1 + 2b50: 08d1 bt 0x2cf2 // 2cf2 <__udivdi3+0x34a> + 2b52: 2d01 subi r5, 2 + 2b54: 4410 lsli r0, r4, 16 + 2b56: 6c14 or r0, r5 + 2b58: 6c5f mov r1, r7 + 2b5a: 1406 addi r14, r14, 24 + 2b5c: 1494 pop r4-r7, r15 + 2b5e: 3700 movi r7, 0 + 2b60: 3000 movi r0, 0 + 2b62: 6c5f mov r1, r7 + 2b64: 1406 addi r14, r14, 24 + 2b66: 1494 pop r4-r7, r15 + 2b68: 33ff movi r3, 255 + 2b6a: 644c cmphs r3, r1 + 2b6c: 6583 mvcv r6 + 2b6e: 46c3 lsli r6, r6, 3 + 2b70: 0789 br 0x2a82 // 2a82 <__udivdi3+0xda> + 2b72: 32ff movi r2, 255 + 2b74: 6588 cmphs r2, r6 + 2b76: 0ba8 bt 0x2ac6 // 2ac6 <__udivdi3+0x11e> + 2b78: 3308 movi r3, 8 + 2b7a: 07a6 br 0x2ac6 // 2ac6 <__udivdi3+0x11e> + 2b7c: 1375 lrw r3, 0xffffff // 2d50 <__udivdi3+0x3a8> + 2b7e: 648c cmphs r3, r2 + 2b80: 0ccb bf 0x2d16 // 2d16 <__udivdi3+0x36e> + 2b82: 3310 movi r3, 16 + 2b84: 0725 br 0x29ce // 29ce <__udivdi3+0x26> + 2b86: 9800 ld.w r0, (r14, 0x0) + 2b88: 6ccb mov r3, r2 + 2b8a: 6d4b mov r5, r2 + 2b8c: 7040 lsl r1, r0 + 2b8e: 7140 lsl r5, r0 + 2b90: 70d9 lsr r3, r6 + 2b92: 6cc4 or r3, r1 + 2b94: b8a3 st.w r5, (r14, 0xc) + 2b96: 6d53 mov r5, r4 + 2b98: 6c4f mov r1, r3 + 2b9a: 7159 lsr r5, r6 + 2b9c: 6cdf mov r3, r7 + 2b9e: 71c0 lsl r7, r0 + 2ba0: 6d5c or r5, r7 + 2ba2: 70d9 lsr r3, r6 + 2ba4: b8a1 st.w r5, (r14, 0x4) + 2ba6: 49b0 lsri r5, r1, 16 + 2ba8: b822 st.w r1, (r14, 0x8) + 2baa: 75c5 zexth r7, r1 + 2bac: 6c0f mov r0, r3 + 2bae: 6c57 mov r1, r5 + 2bb0: b864 st.w r3, (r14, 0x10) + 2bb2: e00010d5 bsr 0x4d5c // 4d5c <__umodsi3> + 2bb6: 9864 ld.w r3, (r14, 0x10) + 2bb8: 6d83 mov r6, r0 + 2bba: 6c57 mov r1, r5 + 2bbc: 6c0f mov r0, r3 + 2bbe: e00010ab bsr 0x4d14 // 4d14 <__udivsi3> + 2bc2: 6c5f mov r1, r7 + 2bc4: 7c40 mult r1, r0 + 2bc6: 6c87 mov r2, r1 + 2bc8: 4630 lsli r1, r6, 16 + 2bca: 98c1 ld.w r6, (r14, 0x4) + 2bcc: 4ed0 lsri r6, r6, 16 + 2bce: 6d84 or r6, r1 + 2bd0: 6498 cmphs r6, r2 + 2bd2: 6cc3 mov r3, r0 + 2bd4: 0807 bt 0x2be2 // 2be2 <__udivdi3+0x23a> + 2bd6: 5823 subi r1, r0, 1 + 2bd8: 9802 ld.w r0, (r14, 0x8) + 2bda: 6180 addu r6, r0 + 2bdc: 6418 cmphs r6, r0 + 2bde: 08a6 bt 0x2d2a // 2d2a <__udivdi3+0x382> + 2be0: 6cc7 mov r3, r1 + 2be2: 618a subu r6, r2 + 2be4: 6c57 mov r1, r5 + 2be6: 6c1b mov r0, r6 + 2be8: b865 st.w r3, (r14, 0x14) + 2bea: e00010b9 bsr 0x4d5c // 4d5c <__umodsi3> + 2bee: b804 st.w r0, (r14, 0x10) + 2bf0: 6c57 mov r1, r5 + 2bf2: 6c1b mov r0, r6 + 2bf4: e0001090 bsr 0x4d14 // 4d14 <__udivsi3> + 2bf8: 9864 ld.w r3, (r14, 0x10) + 2bfa: 6c9f mov r2, r7 + 2bfc: 43f0 lsli r7, r3, 16 + 2bfe: d86e1002 ld.h r3, (r14, 0x4) + 2c02: 744d zexth r1, r3 + 2c04: 7c80 mult r2, r0 + 2c06: 6dc4 or r7, r1 + 2c08: 649c cmphs r7, r2 + 2c0a: 9865 ld.w r3, (r14, 0x14) + 2c0c: 0807 bt 0x2c1a // 2c1a <__udivdi3+0x272> + 2c0e: 98a2 ld.w r5, (r14, 0x8) + 2c10: 61d4 addu r7, r5 + 2c12: 655c cmphs r7, r5 + 2c14: 5823 subi r1, r0, 1 + 2c16: 0885 bt 0x2d20 // 2d20 <__udivdi3+0x378> + 2c18: 6c07 mov r0, r1 + 2c1a: 4370 lsli r3, r3, 16 + 2c1c: 6c0c or r0, r3 + 2c1e: 74c1 zexth r3, r0 + 2c20: 61ca subu r7, r2 + 2c22: 9843 ld.w r2, (r14, 0xc) + 2c24: 7549 zexth r5, r2 + 2c26: 4830 lsri r1, r0, 16 + 2c28: 4a50 lsri r2, r2, 16 + 2c2a: 6d8f mov r6, r3 + 2c2c: 7d94 mult r6, r5 + 2c2e: 7cc8 mult r3, r2 + 2c30: 7d44 mult r5, r1 + 2c32: 60d4 addu r3, r5 + 2c34: 7c48 mult r1, r2 + 2c36: 4e50 lsri r2, r6, 16 + 2c38: 60c8 addu r3, r2 + 2c3a: 654c cmphs r3, r5 + 2c3c: 0804 bt 0x2c44 // 2c44 <__udivdi3+0x29c> + 2c3e: 3280 movi r2, 128 + 2c40: 4249 lsli r2, r2, 9 + 2c42: 6048 addu r1, r2 + 2c44: 4b50 lsri r2, r3, 16 + 2c46: 6048 addu r1, r2 + 2c48: 645c cmphs r7, r1 + 2c4a: 0c5f bf 0x2d08 // 2d08 <__udivdi3+0x360> + 2c4c: 645e cmpne r7, r1 + 2c4e: 0c56 bf 0x2cfa // 2cfa <__udivdi3+0x352> + 2c50: 3700 movi r7, 0 + 2c52: 6c5f mov r1, r7 + 2c54: 1406 addi r14, r14, 24 + 2c56: 1494 pop r4-r7, r15 + 2c58: 6d53 mov r5, r4 + 2c5a: 6cdf mov r3, r7 + 2c5c: 7145 lsr r5, r1 + 2c5e: 71c8 lsl r7, r2 + 2c60: 7188 lsl r6, r2 + 2c62: 6d5c or r5, r7 + 2c64: 70c5 lsr r3, r1 + 2c66: 6dd7 mov r7, r5 + 2c68: b8a3 st.w r5, (r14, 0xc) + 2c6a: 4eb0 lsri r5, r6, 16 + 2c6c: 7108 lsl r4, r2 + 2c6e: 6c57 mov r1, r5 + 2c70: 7499 zexth r2, r6 + 2c72: 6c0f mov r0, r3 + 2c74: b841 st.w r2, (r14, 0x4) + 2c76: b880 st.w r4, (r14, 0x0) + 2c78: b862 st.w r3, (r14, 0x8) + 2c7a: e0001071 bsr 0x4d5c // 4d5c <__umodsi3> + 2c7e: 9862 ld.w r3, (r14, 0x8) + 2c80: 6d03 mov r4, r0 + 2c82: 6c57 mov r1, r5 + 2c84: 6c0f mov r0, r3 + 2c86: e0001047 bsr 0x4d14 // 4d14 <__udivsi3> + 2c8a: 6cc3 mov r3, r0 + 2c8c: 7499 zexth r2, r6 + 2c8e: 7cc8 mult r3, r2 + 2c90: 4450 lsli r2, r4, 16 + 2c92: 4f90 lsri r4, r7, 16 + 2c94: 6d08 or r4, r2 + 2c96: 64d0 cmphs r4, r3 + 2c98: 6c43 mov r1, r0 + 2c9a: b802 st.w r0, (r14, 0x8) + 2c9c: 080b bt 0x2cb2 // 2cb2 <__udivdi3+0x30a> + 2c9e: 6118 addu r4, r6 + 2ca0: 6c87 mov r2, r1 + 2ca2: 6590 cmphs r4, r6 + 2ca4: 2a00 subi r2, 1 + 2ca6: 0c49 bf 0x2d38 // 2d38 <__udivdi3+0x390> + 2ca8: 64d0 cmphs r4, r3 + 2caa: 0847 bt 0x2d38 // 2d38 <__udivdi3+0x390> + 2cac: 2a00 subi r2, 1 + 2cae: b842 st.w r2, (r14, 0x8) + 2cb0: 6118 addu r4, r6 + 2cb2: 610e subu r4, r3 + 2cb4: 6c57 mov r1, r5 + 2cb6: 6c13 mov r0, r4 + 2cb8: e0001052 bsr 0x4d5c // 4d5c <__umodsi3> + 2cbc: 6dc3 mov r7, r0 + 2cbe: 6c57 mov r1, r5 + 2cc0: 6c13 mov r0, r4 + 2cc2: e0001029 bsr 0x4d14 // 4d14 <__udivsi3> + 2cc6: d84e1006 ld.h r2, (r14, 0xc) + 2cca: 74d9 zexth r3, r6 + 2ccc: 47f0 lsli r7, r7, 16 + 2cce: 7509 zexth r4, r2 + 2cd0: 7cc0 mult r3, r0 + 2cd2: 6dd0 or r7, r4 + 2cd4: 64dc cmphs r7, r3 + 2cd6: 0809 bt 0x2ce8 // 2ce8 <__udivdi3+0x340> + 2cd8: 61d8 addu r7, r6 + 2cda: 659c cmphs r7, r6 + 2cdc: 5843 subi r2, r0, 1 + 2cde: 0c2b bf 0x2d34 // 2d34 <__udivdi3+0x38c> + 2ce0: 64dc cmphs r7, r3 + 2ce2: 0829 bt 0x2d34 // 2d34 <__udivdi3+0x38c> + 2ce4: 2801 subi r0, 2 + 2ce6: 61d8 addu r7, r6 + 2ce8: 5f8d subu r4, r7, r3 + 2cea: 9862 ld.w r3, (r14, 0x8) + 2cec: 43f0 lsli r7, r3, 16 + 2cee: 6dc0 or r7, r0 + 2cf0: 06fa br 0x2ae4 // 2ae4 <__udivdi3+0x13c> + 2cf2: 6d4b mov r5, r2 + 2cf4: 0730 br 0x2b54 // 2b54 <__udivdi3+0x1ac> + 2cf6: 6d0f mov r4, r3 + 2cf8: 06b6 br 0x2a64 // 2a64 <__udivdi3+0xbc> + 2cfa: 9840 ld.w r2, (r14, 0x0) + 2cfc: 4370 lsli r3, r3, 16 + 2cfe: 7599 zexth r6, r6 + 2d00: 7108 lsl r4, r2 + 2d02: 60d8 addu r3, r6 + 2d04: 64d0 cmphs r4, r3 + 2d06: 0ba5 bt 0x2c50 // 2c50 <__udivdi3+0x2a8> + 2d08: 2800 subi r0, 1 + 2d0a: 3700 movi r7, 0 + 2d0c: 07a3 br 0x2c52 // 2c52 <__udivdi3+0x2aa> + 2d0e: 3618 movi r6, 24 + 2d10: 06b9 br 0x2a82 // 2a82 <__udivdi3+0xda> + 2d12: 3318 movi r3, 24 + 2d14: 06d9 br 0x2ac6 // 2ac6 <__udivdi3+0x11e> + 2d16: 3318 movi r3, 24 + 2d18: 065b br 0x29ce // 29ce <__udivdi3+0x26> + 2d1a: 3700 movi r7, 0 + 2d1c: 3001 movi r0, 1 + 2d1e: 0722 br 0x2b62 // 2b62 <__udivdi3+0x1ba> + 2d20: 649c cmphs r7, r2 + 2d22: 0b7b bt 0x2c18 // 2c18 <__udivdi3+0x270> + 2d24: 2801 subi r0, 2 + 2d26: 61d4 addu r7, r5 + 2d28: 0779 br 0x2c1a // 2c1a <__udivdi3+0x272> + 2d2a: 6498 cmphs r6, r2 + 2d2c: 0b5a bt 0x2be0 // 2be0 <__udivdi3+0x238> + 2d2e: 2b01 subi r3, 2 + 2d30: 6180 addu r6, r0 + 2d32: 0758 br 0x2be2 // 2be2 <__udivdi3+0x23a> + 2d34: 6c0b mov r0, r2 + 2d36: 07d9 br 0x2ce8 // 2ce8 <__udivdi3+0x340> + 2d38: b842 st.w r2, (r14, 0x8) + 2d3a: 07bc br 0x2cb2 // 2cb2 <__udivdi3+0x30a> + 2d3c: 2c01 subi r4, 2 + 2d3e: 60d8 addu r3, r6 + 2d40: 06ec br 0x2b18 // 2b18 <__udivdi3+0x170> + 2d42: 2d01 subi r5, 2 + 2d44: 60d8 addu r3, r6 + 2d46: 0672 br 0x2a2a // 2a2a <__udivdi3+0x82> + 2d48: 0000ffff .long 0x0000ffff + 2d4c: 000076f4 .long 0x000076f4 + 2d50: 00ffffff .long 0x00ffffff + +00002d54 <__umoddi3>: + 2d54: 14d4 push r4-r7, r15 + 2d56: 1427 subi r14, r14, 28 + 2d58: 6d07 mov r4, r1 + 2d5a: 6c4f mov r1, r3 + 2d5c: 6d43 mov r5, r0 + 2d5e: 3940 cmpnei r1, 0 + 2d60: 6dcf mov r7, r3 + 2d62: 6c0b mov r0, r2 + 2d64: b8a0 st.w r5, (r14, 0x0) + 2d66: 6cd3 mov r3, r4 + 2d68: 085a bt 0x2e1c // 2e1c <__umoddi3+0xc8> + 2d6a: 6490 cmphs r4, r2 + 2d6c: 0877 bt 0x2e5a // 2e5a <__umoddi3+0x106> + 2d6e: 0120 lrw r1, 0xffff // 30e8 <__umoddi3+0x394> + 2d70: 6484 cmphs r1, r2 + 2d72: 0cd2 bf 0x2f16 // 2f16 <__umoddi3+0x1c2> + 2d74: 31ff movi r1, 255 + 2d76: 6484 cmphs r1, r2 + 2d78: 0802 bt 0x2d7c // 2d7c <__umoddi3+0x28> + 2d7a: 3708 movi r7, 8 + 2d7c: 6c43 mov r1, r0 + 2d7e: 705d lsr r1, r7 + 2d80: 01c4 lrw r6, 0x76f4 // 30ec <__umoddi3+0x398> + 2d82: 6058 addu r1, r6 + 2d84: 8120 ld.b r1, (r1, 0x0) + 2d86: 61c4 addu r7, r1 + 2d88: 3120 movi r1, 32 + 2d8a: 605e subu r1, r7 + 2d8c: 3940 cmpnei r1, 0 + 2d8e: b821 st.w r1, (r14, 0x4) + 2d90: 0c09 bf 0x2da2 // 2da2 <__umoddi3+0x4e> + 2d92: 6cd7 mov r3, r5 + 2d94: 6c83 mov r2, r0 + 2d96: 7104 lsl r4, r1 + 2d98: 70dd lsr r3, r7 + 2d9a: 7144 lsl r5, r1 + 2d9c: 7084 lsl r2, r1 + 2d9e: 6cd0 or r3, r4 + 2da0: b8a0 st.w r5, (r14, 0x0) + 2da2: 4a90 lsri r4, r2, 16 + 2da4: 6c53 mov r1, r4 + 2da6: 6c0f mov r0, r3 + 2da8: 75c9 zexth r7, r2 + 2daa: b843 st.w r2, (r14, 0xc) + 2dac: b862 st.w r3, (r14, 0x8) + 2dae: e0000fd7 bsr 0x4d5c // 4d5c <__umodsi3> + 2db2: 9862 ld.w r3, (r14, 0x8) + 2db4: 6d43 mov r5, r0 + 2db6: 6c53 mov r1, r4 + 2db8: 6c0f mov r0, r3 + 2dba: e0000fad bsr 0x4d14 // 4d14 <__udivsi3> + 2dbe: 9840 ld.w r2, (r14, 0x0) + 2dc0: 4570 lsli r3, r5, 16 + 2dc2: 4ab0 lsri r5, r2, 16 + 2dc4: 7c1c mult r0, r7 + 2dc6: 6cd4 or r3, r5 + 2dc8: 640c cmphs r3, r0 + 2dca: 9843 ld.w r2, (r14, 0xc) + 2dcc: 0806 bt 0x2dd8 // 2dd8 <__umoddi3+0x84> + 2dce: 60c8 addu r3, r2 + 2dd0: 648c cmphs r3, r2 + 2dd2: 0c03 bf 0x2dd8 // 2dd8 <__umoddi3+0x84> + 2dd4: 640c cmphs r3, r0 + 2dd6: 0d7d bf 0x30d0 // 30d0 <__umoddi3+0x37c> + 2dd8: 60c2 subu r3, r0 + 2dda: 6c53 mov r1, r4 + 2ddc: 6c0f mov r0, r3 + 2dde: b843 st.w r2, (r14, 0xc) + 2de0: b862 st.w r3, (r14, 0x8) + 2de2: e0000fbd bsr 0x4d5c // 4d5c <__umodsi3> + 2de6: 9862 ld.w r3, (r14, 0x8) + 2de8: 6d43 mov r5, r0 + 2dea: 6c53 mov r1, r4 + 2dec: 6c0f mov r0, r3 + 2dee: e0000f93 bsr 0x4d14 // 4d14 <__udivsi3> + 2df2: d86e1000 ld.h r3, (r14, 0x0) + 2df6: 7dc0 mult r7, r0 + 2df8: 45b0 lsli r5, r5, 16 + 2dfa: 740d zexth r0, r3 + 2dfc: 6d40 or r5, r0 + 2dfe: 65d4 cmphs r5, r7 + 2e00: 0807 bt 0x2e0e // 2e0e <__umoddi3+0xba> + 2e02: 9843 ld.w r2, (r14, 0xc) + 2e04: 6148 addu r5, r2 + 2e06: 6494 cmphs r5, r2 + 2e08: 0c03 bf 0x2e0e // 2e0e <__umoddi3+0xba> + 2e0a: 65d4 cmphs r5, r7 + 2e0c: 0d5e bf 0x30c8 // 30c8 <__umoddi3+0x374> + 2e0e: 615e subu r5, r7 + 2e10: 6c17 mov r0, r5 + 2e12: 9861 ld.w r3, (r14, 0x4) + 2e14: 700d lsr r0, r3 + 2e16: 3100 movi r1, 0 + 2e18: 1407 addi r14, r14, 28 + 2e1a: 1494 pop r4-r7, r15 + 2e1c: 6450 cmphs r4, r1 + 2e1e: 0c6e bf 0x2efa // 2efa <__umoddi3+0x1a6> + 2e20: 024d lrw r2, 0xffff // 30e8 <__umoddi3+0x394> + 2e22: 6448 cmphs r2, r1 + 2e24: 086f bt 0x2f02 // 2f02 <__umoddi3+0x1ae> + 2e26: 024c lrw r2, 0xffffff // 30f0 <__umoddi3+0x39c> + 2e28: 6448 cmphs r2, r1 + 2e2a: 0d3f bf 0x30a8 // 30a8 <__umoddi3+0x354> + 2e2c: 3610 movi r6, 16 + 2e2e: 6c87 mov r2, r1 + 2e30: 7099 lsr r2, r6 + 2e32: 02f0 lrw r7, 0x76f4 // 30ec <__umoddi3+0x398> + 2e34: 609c addu r2, r7 + 2e36: 8240 ld.b r2, (r2, 0x0) + 2e38: 6188 addu r6, r2 + 2e3a: 3720 movi r7, 32 + 2e3c: 61da subu r7, r6 + 2e3e: 3f40 cmpnei r7, 0 + 2e40: 0870 bt 0x2f20 // 2f20 <__umoddi3+0x1cc> + 2e42: 6504 cmphs r1, r4 + 2e44: 0c03 bf 0x2e4a // 2e4a <__umoddi3+0xf6> + 2e46: 6414 cmphs r5, r0 + 2e48: 0d46 bf 0x30d4 // 30d4 <__umoddi3+0x380> + 2e4a: 5d01 subu r0, r5, r0 + 2e4c: 6414 cmphs r5, r0 + 2e4e: 6106 subu r4, r1 + 2e50: 6483 mvcv r2 + 2e52: 5c69 subu r3, r4, r2 + 2e54: 6c4f mov r1, r3 + 2e56: 1407 addi r14, r14, 28 + 2e58: 1494 pop r4-r7, r15 + 2e5a: 3a40 cmpnei r2, 0 + 2e5c: 0806 bt 0x2e68 // 2e68 <__umoddi3+0x114> + 2e5e: 3100 movi r1, 0 + 2e60: 3001 movi r0, 1 + 2e62: e0000f59 bsr 0x4d14 // 4d14 <__udivsi3> + 2e66: 6c83 mov r2, r0 + 2e68: 027f lrw r3, 0xffff // 30e8 <__umoddi3+0x394> + 2e6a: 648c cmphs r3, r2 + 2e6c: 0850 bt 0x2f0c // 2f0c <__umoddi3+0x1b8> + 2e6e: 027e lrw r3, 0xffffff // 30f0 <__umoddi3+0x39c> + 2e70: 648c cmphs r3, r2 + 2e72: 0d1d bf 0x30ac // 30ac <__umoddi3+0x358> + 2e74: 3710 movi r7, 16 + 2e76: 6ccb mov r3, r2 + 2e78: 70dd lsr r3, r7 + 2e7a: 0322 lrw r1, 0x76f4 // 30ec <__umoddi3+0x398> + 2e7c: 60c4 addu r3, r1 + 2e7e: 8360 ld.b r3, (r3, 0x0) + 2e80: 61cc addu r7, r3 + 2e82: 3320 movi r3, 32 + 2e84: 60de subu r3, r7 + 2e86: 3b40 cmpnei r3, 0 + 2e88: b861 st.w r3, (r14, 0x4) + 2e8a: 08c2 bt 0x300e // 300e <__umoddi3+0x2ba> + 2e8c: 74c9 zexth r3, r2 + 2e8e: 610a subu r4, r2 + 2e90: 4af0 lsri r7, r2, 16 + 2e92: 6d8f mov r6, r3 + 2e94: 6c5f mov r1, r7 + 2e96: 6c13 mov r0, r4 + 2e98: b842 st.w r2, (r14, 0x8) + 2e9a: e0000f61 bsr 0x4d5c // 4d5c <__umodsi3> + 2e9e: 6d43 mov r5, r0 + 2ea0: 6c5f mov r1, r7 + 2ea2: 6c13 mov r0, r4 + 2ea4: e0000f38 bsr 0x4d14 // 4d14 <__udivsi3> + 2ea8: 9860 ld.w r3, (r14, 0x0) + 2eaa: 4590 lsli r4, r5, 16 + 2eac: 4bb0 lsri r5, r3, 16 + 2eae: 7c18 mult r0, r6 + 2eb0: 6d14 or r4, r5 + 2eb2: 6410 cmphs r4, r0 + 2eb4: 9842 ld.w r2, (r14, 0x8) + 2eb6: 0806 bt 0x2ec2 // 2ec2 <__umoddi3+0x16e> + 2eb8: 6108 addu r4, r2 + 2eba: 6490 cmphs r4, r2 + 2ebc: 0c03 bf 0x2ec2 // 2ec2 <__umoddi3+0x16e> + 2ebe: 6410 cmphs r4, r0 + 2ec0: 0d06 bf 0x30cc // 30cc <__umoddi3+0x378> + 2ec2: 6102 subu r4, r0 + 2ec4: 6c5f mov r1, r7 + 2ec6: 6c13 mov r0, r4 + 2ec8: b842 st.w r2, (r14, 0x8) + 2eca: e0000f49 bsr 0x4d5c // 4d5c <__umodsi3> + 2ece: 6d43 mov r5, r0 + 2ed0: 6c5f mov r1, r7 + 2ed2: 6c13 mov r0, r4 + 2ed4: e0000f20 bsr 0x4d14 // 4d14 <__udivsi3> + 2ed8: d86e1000 ld.h r3, (r14, 0x0) + 2edc: 7c18 mult r0, r6 + 2ede: 45b0 lsli r5, r5, 16 + 2ee0: 758d zexth r6, r3 + 2ee2: 6d58 or r5, r6 + 2ee4: 6414 cmphs r5, r0 + 2ee6: 0808 bt 0x2ef6 // 2ef6 <__umoddi3+0x1a2> + 2ee8: 9842 ld.w r2, (r14, 0x8) + 2eea: 6148 addu r5, r2 + 2eec: 6494 cmphs r5, r2 + 2eee: 0c04 bf 0x2ef6 // 2ef6 <__umoddi3+0x1a2> + 2ef0: 6414 cmphs r5, r0 + 2ef2: 0802 bt 0x2ef6 // 2ef6 <__umoddi3+0x1a2> + 2ef4: 6148 addu r5, r2 + 2ef6: 6142 subu r5, r0 + 2ef8: 078c br 0x2e10 // 2e10 <__umoddi3+0xbc> + 2efa: 6c17 mov r0, r5 + 2efc: 6c53 mov r1, r4 + 2efe: 1407 addi r14, r14, 28 + 2f00: 1494 pop r4-r7, r15 + 2f02: 32ff movi r2, 255 + 2f04: 6448 cmphs r2, r1 + 2f06: 6583 mvcv r6 + 2f08: 46c3 lsli r6, r6, 3 + 2f0a: 0792 br 0x2e2e // 2e2e <__umoddi3+0xda> + 2f0c: 33ff movi r3, 255 + 2f0e: 648c cmphs r3, r2 + 2f10: 0bb3 bt 0x2e76 // 2e76 <__umoddi3+0x122> + 2f12: 3708 movi r7, 8 + 2f14: 07b1 br 0x2e76 // 2e76 <__umoddi3+0x122> + 2f16: 1337 lrw r1, 0xffffff // 30f0 <__umoddi3+0x39c> + 2f18: 6484 cmphs r1, r2 + 2f1a: 0ccb bf 0x30b0 // 30b0 <__umoddi3+0x35c> + 2f1c: 3710 movi r7, 16 + 2f1e: 072f br 0x2d7c // 2d7c <__umoddi3+0x28> + 2f20: 6cc3 mov r3, r0 + 2f22: 705c lsl r1, r7 + 2f24: 70d9 lsr r3, r6 + 2f26: 6cc4 or r3, r1 + 2f28: 6c57 mov r1, r5 + 2f2a: 6c93 mov r2, r4 + 2f2c: 7059 lsr r1, r6 + 2f2e: 711c lsl r4, r7 + 2f30: 7099 lsr r2, r6 + 2f32: 6c50 or r1, r4 + 2f34: 701c lsl r0, r7 + 2f36: 4b90 lsri r4, r3, 16 + 2f38: 715c lsl r5, r7 + 2f3a: b803 st.w r0, (r14, 0xc) + 2f3c: b820 st.w r1, (r14, 0x0) + 2f3e: b8a4 st.w r5, (r14, 0x10) + 2f40: 6c53 mov r1, r4 + 2f42: 754d zexth r5, r3 + 2f44: 6c0b mov r0, r2 + 2f46: b862 st.w r3, (r14, 0x8) + 2f48: b8a1 st.w r5, (r14, 0x4) + 2f4a: b846 st.w r2, (r14, 0x18) + 2f4c: e0000f08 bsr 0x4d5c // 4d5c <__umodsi3> + 2f50: 9846 ld.w r2, (r14, 0x18) + 2f52: b805 st.w r0, (r14, 0x14) + 2f54: 6c53 mov r1, r4 + 2f56: 6c0b mov r0, r2 + 2f58: e0000ede bsr 0x4d14 // 4d14 <__udivsi3> + 2f5c: 9841 ld.w r2, (r14, 0x4) + 2f5e: 7c80 mult r2, r0 + 2f60: 9865 ld.w r3, (r14, 0x14) + 2f62: 6d43 mov r5, r0 + 2f64: 9800 ld.w r0, (r14, 0x0) + 2f66: 4330 lsli r1, r3, 16 + 2f68: 4870 lsri r3, r0, 16 + 2f6a: 6cc4 or r3, r1 + 2f6c: 648c cmphs r3, r2 + 2f6e: 0807 bt 0x2f7c // 2f7c <__umoddi3+0x228> + 2f70: 9802 ld.w r0, (r14, 0x8) + 2f72: 60c0 addu r3, r0 + 2f74: 640c cmphs r3, r0 + 2f76: 5d23 subi r1, r5, 1 + 2f78: 08a3 bt 0x30be // 30be <__umoddi3+0x36a> + 2f7a: 6d47 mov r5, r1 + 2f7c: 60ca subu r3, r2 + 2f7e: 6c53 mov r1, r4 + 2f80: 6c0f mov r0, r3 + 2f82: b866 st.w r3, (r14, 0x18) + 2f84: e0000eec bsr 0x4d5c // 4d5c <__umodsi3> + 2f88: 9866 ld.w r3, (r14, 0x18) + 2f8a: 6c53 mov r1, r4 + 2f8c: b805 st.w r0, (r14, 0x14) + 2f8e: 6c0f mov r0, r3 + 2f90: e0000ec2 bsr 0x4d14 // 4d14 <__udivsi3> + 2f94: 9845 ld.w r2, (r14, 0x14) + 2f96: d86e1000 ld.h r3, (r14, 0x0) + 2f9a: 9821 ld.w r1, (r14, 0x4) + 2f9c: 4250 lsli r2, r2, 16 + 2f9e: 750d zexth r4, r3 + 2fa0: 7c40 mult r1, r0 + 2fa2: 6c90 or r2, r4 + 2fa4: 6448 cmphs r2, r1 + 2fa6: 0807 bt 0x2fb4 // 2fb4 <__umoddi3+0x260> + 2fa8: 9882 ld.w r4, (r14, 0x8) + 2faa: 6090 addu r2, r4 + 2fac: 6508 cmphs r2, r4 + 2fae: 5863 subi r3, r0, 1 + 2fb0: 0882 bt 0x30b4 // 30b4 <__umoddi3+0x360> + 2fb2: 6c0f mov r0, r3 + 2fb4: 45b0 lsli r5, r5, 16 + 2fb6: 6d40 or r5, r0 + 2fb8: 74d5 zexth r3, r5 + 2fba: 9803 ld.w r0, (r14, 0xc) + 2fbc: 4db0 lsri r5, r5, 16 + 2fbe: 6d0f mov r4, r3 + 2fc0: 6086 subu r2, r1 + 2fc2: 7441 zexth r1, r0 + 2fc4: 4810 lsri r0, r0, 16 + 2fc6: 7d04 mult r4, r1 + 2fc8: 7cc0 mult r3, r0 + 2fca: 7c54 mult r1, r5 + 2fcc: 60c4 addu r3, r1 + 2fce: 7d40 mult r5, r0 + 2fd0: 4c10 lsri r0, r4, 16 + 2fd2: 60c0 addu r3, r0 + 2fd4: 644c cmphs r3, r1 + 2fd6: 0804 bt 0x2fde // 2fde <__umoddi3+0x28a> + 2fd8: 3180 movi r1, 128 + 2fda: 4129 lsli r1, r1, 9 + 2fdc: 6144 addu r5, r1 + 2fde: 4b30 lsri r1, r3, 16 + 2fe0: 6144 addu r5, r1 + 2fe2: 4370 lsli r3, r3, 16 + 2fe4: 7511 zexth r4, r4 + 2fe6: 6548 cmphs r2, r5 + 2fe8: 60d0 addu r3, r4 + 2fea: 0c56 bf 0x3096 // 3096 <__umoddi3+0x342> + 2fec: 654a cmpne r2, r5 + 2fee: 0c76 bf 0x30da // 30da <__umoddi3+0x386> + 2ff0: 5a35 subu r1, r2, r5 + 2ff2: 6c0f mov r0, r3 + 2ff4: 9864 ld.w r3, (r14, 0x10) + 2ff6: 5b01 subu r0, r3, r0 + 2ff8: 640c cmphs r3, r0 + 2ffa: 64c3 mvcv r3 + 2ffc: 598d subu r4, r1, r3 + 2ffe: 6d53 mov r5, r4 + 3000: 7158 lsl r5, r6 + 3002: 701d lsr r0, r7 + 3004: 6c53 mov r1, r4 + 3006: 6c14 or r0, r5 + 3008: 705d lsr r1, r7 + 300a: 1407 addi r14, r14, 28 + 300c: 1494 pop r4-r7, r15 + 300e: 9801 ld.w r0, (r14, 0x4) + 3010: 6c57 mov r1, r5 + 3012: 6cd3 mov r3, r4 + 3014: 705d lsr r1, r7 + 3016: 7100 lsl r4, r0 + 3018: 7080 lsl r2, r0 + 301a: 6c50 or r1, r4 + 301c: 70dd lsr r3, r7 + 301e: 6d07 mov r4, r1 + 3020: 4af0 lsri r7, r2, 16 + 3022: b822 st.w r1, (r14, 0x8) + 3024: 7449 zexth r1, r2 + 3026: 7140 lsl r5, r0 + 3028: 6d87 mov r6, r1 + 302a: 6c0f mov r0, r3 + 302c: 6c5f mov r1, r7 + 302e: b844 st.w r2, (r14, 0x10) + 3030: b8a0 st.w r5, (r14, 0x0) + 3032: b863 st.w r3, (r14, 0xc) + 3034: e0000e94 bsr 0x4d5c // 4d5c <__umodsi3> + 3038: 9863 ld.w r3, (r14, 0xc) + 303a: 6d43 mov r5, r0 + 303c: 6c5f mov r1, r7 + 303e: 6c0f mov r0, r3 + 3040: e0000e6a bsr 0x4d14 // 4d14 <__udivsi3> + 3044: 45b0 lsli r5, r5, 16 + 3046: 4c70 lsri r3, r4, 16 + 3048: 7c18 mult r0, r6 + 304a: 6d4c or r5, r3 + 304c: 6414 cmphs r5, r0 + 304e: 9844 ld.w r2, (r14, 0x10) + 3050: 0807 bt 0x305e // 305e <__umoddi3+0x30a> + 3052: 6148 addu r5, r2 + 3054: 6494 cmphs r5, r2 + 3056: 0c04 bf 0x305e // 305e <__umoddi3+0x30a> + 3058: 6414 cmphs r5, r0 + 305a: 0802 bt 0x305e // 305e <__umoddi3+0x30a> + 305c: 6148 addu r5, r2 + 305e: 6142 subu r5, r0 + 3060: 6c5f mov r1, r7 + 3062: 6c17 mov r0, r5 + 3064: b843 st.w r2, (r14, 0xc) + 3066: e0000e7b bsr 0x4d5c // 4d5c <__umodsi3> + 306a: 6d03 mov r4, r0 + 306c: 6c5f mov r1, r7 + 306e: 6c17 mov r0, r5 + 3070: e0000e52 bsr 0x4d14 // 4d14 <__udivsi3> + 3074: d86e1004 ld.h r3, (r14, 0x8) + 3078: 4490 lsli r4, r4, 16 + 307a: 744d zexth r1, r3 + 307c: 7c18 mult r0, r6 + 307e: 6d04 or r4, r1 + 3080: 6410 cmphs r4, r0 + 3082: 9843 ld.w r2, (r14, 0xc) + 3084: 0807 bt 0x3092 // 3092 <__umoddi3+0x33e> + 3086: 6108 addu r4, r2 + 3088: 6490 cmphs r4, r2 + 308a: 0c04 bf 0x3092 // 3092 <__umoddi3+0x33e> + 308c: 6410 cmphs r4, r0 + 308e: 0802 bt 0x3092 // 3092 <__umoddi3+0x33e> + 3090: 6108 addu r4, r2 + 3092: 6102 subu r4, r0 + 3094: 0700 br 0x2e94 // 2e94 <__umoddi3+0x140> + 3096: 9823 ld.w r1, (r14, 0xc) + 3098: 5b05 subu r0, r3, r1 + 309a: 640c cmphs r3, r0 + 309c: 9822 ld.w r1, (r14, 0x8) + 309e: 6146 subu r5, r1 + 30a0: 64c3 mvcv r3 + 30a2: 614e subu r5, r3 + 30a4: 5a35 subu r1, r2, r5 + 30a6: 07a7 br 0x2ff4 // 2ff4 <__umoddi3+0x2a0> + 30a8: 3618 movi r6, 24 + 30aa: 06c2 br 0x2e2e // 2e2e <__umoddi3+0xda> + 30ac: 3718 movi r7, 24 + 30ae: 06e4 br 0x2e76 // 2e76 <__umoddi3+0x122> + 30b0: 3718 movi r7, 24 + 30b2: 0665 br 0x2d7c // 2d7c <__umoddi3+0x28> + 30b4: 6448 cmphs r2, r1 + 30b6: 0b7e bt 0x2fb2 // 2fb2 <__umoddi3+0x25e> + 30b8: 2801 subi r0, 2 + 30ba: 6090 addu r2, r4 + 30bc: 077c br 0x2fb4 // 2fb4 <__umoddi3+0x260> + 30be: 648c cmphs r3, r2 + 30c0: 0b5d bt 0x2f7a // 2f7a <__umoddi3+0x226> + 30c2: 2d01 subi r5, 2 + 30c4: 60c0 addu r3, r0 + 30c6: 075b br 0x2f7c // 2f7c <__umoddi3+0x228> + 30c8: 6148 addu r5, r2 + 30ca: 06a2 br 0x2e0e // 2e0e <__umoddi3+0xba> + 30cc: 6108 addu r4, r2 + 30ce: 06fa br 0x2ec2 // 2ec2 <__umoddi3+0x16e> + 30d0: 60c8 addu r3, r2 + 30d2: 0683 br 0x2dd8 // 2dd8 <__umoddi3+0x84> + 30d4: 6c17 mov r0, r5 + 30d6: 6c4f mov r1, r3 + 30d8: 06bf br 0x2e56 // 2e56 <__umoddi3+0x102> + 30da: 9824 ld.w r1, (r14, 0x10) + 30dc: 64c4 cmphs r1, r3 + 30de: 0fdc bf 0x3096 // 3096 <__umoddi3+0x342> + 30e0: 6c0f mov r0, r3 + 30e2: 3100 movi r1, 0 + 30e4: 0788 br 0x2ff4 // 2ff4 <__umoddi3+0x2a0> + 30e6: 0000 bkpt + 30e8: 0000ffff .long 0x0000ffff + 30ec: 000076f4 .long 0x000076f4 + 30f0: 00ffffff .long 0x00ffffff + +000030f4 : + 30f4: 14c2 push r4-r5 + 30f6: 3300 movi r3, 0 + 30f8: 644d cmplt r3, r1 + 30fa: 0803 bt 0x3100 // 3100 + 30fc: 6c0f mov r0, r3 + 30fe: 1482 pop r4-r5 + 3100: 5aac addu r5, r2, r3 + 3102: 588c addu r4, r0, r3 + 3104: 2300 addi r3, 1 + 3106: 85a0 ld.b r5, (r5, 0x0) + 3108: 3b43 cmpnei r3, 3 + 310a: a4a0 st.b r5, (r4, 0x0) + 310c: 0bf6 bt 0x30f8 // 30f8 + 310e: 3923 cmplti r1, 4 + 3110: 0bf6 bt 0x30fc // 30fc + 3112: 3300 movi r3, 0 + 3114: a063 st.b r3, (r0, 0x3) + 3116: 3304 movi r3, 4 + 3118: 07f2 br 0x30fc // 30fc + +0000311a <__GI___dtostr>: + 311a: 14d4 push r4-r7, r15 + 311c: 142c subi r14, r14, 48 + 311e: 6d8f mov r6, r3 + 3120: 9871 ld.w r3, (r14, 0x44) + 3122: b80a st.w r0, (r14, 0x28) + 3124: b824 st.w r1, (r14, 0x10) + 3126: b842 st.w r2, (r14, 0x8) + 3128: b86b st.w r3, (r14, 0x2c) + 312a: 98f2 ld.w r7, (r14, 0x48) + 312c: e0000244 bsr 0x35b4 // 35b4 <__isinf> + 3130: 3840 cmpnei r0, 0 + 3132: 0c0a bf 0x3146 // 3146 <__GI___dtostr+0x2c> + 3134: 0244 lrw r2, 0x8614 // 3420 <__GI___dtostr+0x306> + 3136: 6c5b mov r1, r6 + 3138: 9802 ld.w r0, (r14, 0x8) + 313a: e3ffffdd bsr 0x30f4 // 30f4 + 313e: b809 st.w r0, (r14, 0x24) + 3140: 9809 ld.w r0, (r14, 0x24) + 3142: 140c addi r14, r14, 48 + 3144: 1494 pop r4-r7, r15 + 3146: 980a ld.w r0, (r14, 0x28) + 3148: 9824 ld.w r1, (r14, 0x10) + 314a: e0000185 bsr 0x3454 // 3454 <__isnan> + 314e: 3840 cmpnei r0, 0 + 3150: b809 st.w r0, (r14, 0x24) + 3152: 0c03 bf 0x3158 // 3158 <__GI___dtostr+0x3e> + 3154: 024b lrw r2, 0x8618 // 3424 <__GI___dtostr+0x30a> + 3156: 07f0 br 0x3136 // 3136 <__GI___dtostr+0x1c> + 3158: 3200 movi r2, 0 + 315a: 3300 movi r3, 0 + 315c: 980a ld.w r0, (r14, 0x28) + 315e: 9824 ld.w r1, (r14, 0x10) + 3160: e0000242 bsr 0x35e4 // 35e4 <__eqdf2> + 3164: 3840 cmpnei r0, 0 + 3166: 082d bt 0x31c0 // 31c0 <__GI___dtostr+0xa6> + 3168: 3f40 cmpnei r7, 0 + 316a: 0d57 bf 0x3418 // 3418 <__GI___dtostr+0x2fe> + 316c: 5fa6 addi r5, r7, 2 + 316e: 6558 cmphs r6, r5 + 3170: 0d56 bf 0x341c // 341c <__GI___dtostr+0x302> + 3172: 3d40 cmpnei r5, 0 + 3174: 0c0b bf 0x318a // 318a <__GI___dtostr+0x70> + 3176: 9824 ld.w r1, (r14, 0x10) + 3178: 39df btsti r1, 31 + 317a: 0c1a bf 0x31ae // 31ae <__GI___dtostr+0x94> + 317c: 9802 ld.w r0, (r14, 0x8) + 317e: 322d movi r2, 45 + 3180: a040 st.b r2, (r0, 0x0) + 3182: 5d02 addi r0, r5, 1 + 3184: 3501 movi r5, 1 + 3186: 6414 cmphs r5, r0 + 3188: 0c16 bf 0x31b4 // 31b4 <__GI___dtostr+0x9a> + 318a: 9882 ld.w r4, (r14, 0x8) + 318c: 8420 ld.b r1, (r4, 0x0) + 318e: 3330 movi r3, 48 + 3190: 64c6 cmpne r1, r3 + 3192: 3000 movi r0, 0 + 3194: 6001 addc r0, r0 + 3196: 9842 ld.w r2, (r14, 0x8) + 3198: 9822 ld.w r1, (r14, 0x8) + 319a: 6008 addu r0, r2 + 319c: 342e movi r4, 46 + 319e: 6054 addu r1, r5 + 31a0: 3300 movi r3, 0 + 31a2: a081 st.b r4, (r0, 0x1) + 31a4: b8a9 st.w r5, (r14, 0x24) + 31a6: a160 st.b r3, (r1, 0x0) + 31a8: 07cc br 0x3140 // 3140 <__GI___dtostr+0x26> + 31aa: 3501 movi r5, 1 + 31ac: 07e5 br 0x3176 // 3176 <__GI___dtostr+0x5c> + 31ae: 6c17 mov r0, r5 + 31b0: 3500 movi r5, 0 + 31b2: 07ea br 0x3186 // 3186 <__GI___dtostr+0x6c> + 31b4: 9842 ld.w r2, (r14, 0x8) + 31b6: 6094 addu r2, r5 + 31b8: 3430 movi r4, 48 + 31ba: a280 st.b r4, (r2, 0x0) + 31bc: 2500 addi r5, 1 + 31be: 07e4 br 0x3186 // 3186 <__GI___dtostr+0x6c> + 31c0: 3200 movi r2, 0 + 31c2: 3300 movi r3, 0 + 31c4: 980a ld.w r0, (r14, 0x28) + 31c6: 9824 ld.w r1, (r14, 0x10) + 31c8: e000022c bsr 0x3620 // 3620 <__ltdf2> + 31cc: 38df btsti r0, 31 + 31ce: 0c8e bf 0x32ea // 32ea <__GI___dtostr+0x1d0> + 31d0: 3180 movi r1, 128 + 31d2: 98a2 ld.w r5, (r14, 0x8) + 31d4: 9884 ld.w r4, (r14, 0x10) + 31d6: 4158 lsli r2, r1, 24 + 31d8: 332d movi r3, 45 + 31da: a560 st.b r3, (r5, 0x0) + 31dc: 6108 addu r4, r2 + 31de: 2e00 subi r6, 1 + 31e0: 2500 addi r5, 1 + 31e2: 3000 movi r0, 0 + 31e4: 032e lrw r1, 0x3fe00000 // 3428 <__GI___dtostr+0x30e> + 31e6: 3300 movi r3, 0 + 31e8: b865 st.w r3, (r14, 0x14) + 31ea: 9845 ld.w r2, (r14, 0x14) + 31ec: 65ca cmpne r2, r7 + 31ee: 0881 bt 0x32f0 // 32f0 <__GI___dtostr+0x1d6> + 31f0: 6c83 mov r2, r0 + 31f2: 6cc7 mov r3, r1 + 31f4: 980a ld.w r0, (r14, 0x28) + 31f6: 6c53 mov r1, r4 + 31f8: e3fff190 bsr 0x1518 // 1518 <__adddf3> + 31fc: 3200 movi r2, 0 + 31fe: 0373 lrw r3, 0x3ff00000 // 342c <__GI___dtostr+0x312> + 3200: b806 st.w r0, (r14, 0x18) + 3202: b827 st.w r1, (r14, 0x1c) + 3204: e000020e bsr 0x3620 // 3620 <__ltdf2> + 3208: 38df btsti r0, 31 + 320a: 0c05 bf 0x3214 // 3214 <__GI___dtostr+0xfa> + 320c: 3430 movi r4, 48 + 320e: a580 st.b r4, (r5, 0x0) + 3210: 2e00 subi r6, 1 + 3212: 2500 addi r5, 1 + 3214: 9804 ld.w r0, (r14, 0x10) + 3216: 4021 lsli r1, r0, 1 + 3218: 0379 lrw r3, 0xfffffc01 // 3430 <__GI___dtostr+0x316> + 321a: 4915 lsri r0, r1, 21 + 321c: 600c addu r0, r3 + 321e: e3fff3cf bsr 0x19bc // 19bc <__floatsidf> + 3222: 035a lrw r2, 0x509f79ff // 3434 <__GI___dtostr+0x31a> + 3224: 037a lrw r3, 0x3fd34413 // 3438 <__GI___dtostr+0x31e> + 3226: e3fff1ad bsr 0x1580 // 1580 <__muldf3> + 322a: e3fff401 bsr 0x1a2c // 1a2c <__fixdfsi> + 322e: 5842 addi r2, r0, 1 + 3230: 3a20 cmplti r2, 1 + 3232: b848 st.w r2, (r14, 0x20) + 3234: 08e7 bt 0x3402 // 3402 <__GI___dtostr+0x2e8> + 3236: 033d lrw r1, 0x40240000 // 343c <__GI___dtostr+0x322> + 3238: 6dcb mov r7, r2 + 323a: 3400 movi r4, 0 + 323c: b823 st.w r1, (r14, 0xc) + 323e: 3f0a cmphsi r7, 11 + 3240: 085f bt 0x32fe // 32fe <__GI___dtostr+0x1e4> + 3242: 3f41 cmpnei r7, 1 + 3244: 0868 bt 0x3314 // 3314 <__GI___dtostr+0x1fa> + 3246: 135f lrw r2, 0xcccccccd // 3440 <__GI___dtostr+0x326> + 3248: 137f lrw r3, 0x3feccccc // 3444 <__GI___dtostr+0x32a> + 324a: 6c13 mov r0, r4 + 324c: 9823 ld.w r1, (r14, 0xc) + 324e: e3fff35d bsr 0x1908 // 1908 <__gtdf2> + 3252: 3820 cmplti r0, 1 + 3254: 0c6a bf 0x3328 // 3328 <__GI___dtostr+0x20e> + 3256: 9862 ld.w r3, (r14, 0x8) + 3258: 64d6 cmpne r5, r3 + 325a: 0807 bt 0x3268 // 3268 <__GI___dtostr+0x14e> + 325c: 3e40 cmpnei r6, 0 + 325e: 0f71 bf 0x3140 // 3140 <__GI___dtostr+0x26> + 3260: 3230 movi r2, 48 + 3262: a540 st.b r2, (r5, 0x0) + 3264: 2e00 subi r6, 1 + 3266: 2500 addi r5, 1 + 3268: 9805 ld.w r0, (r14, 0x14) + 326a: 3840 cmpnei r0, 0 + 326c: 08cf bt 0x340a // 340a <__GI___dtostr+0x2f0> + 326e: 9822 ld.w r1, (r14, 0x8) + 3270: 5d65 subu r3, r5, r1 + 3272: 2300 addi r3, 1 + 3274: 984b ld.w r2, (r14, 0x2c) + 3276: 648c cmphs r3, r2 + 3278: 08a5 bt 0x33c2 // 33c2 <__GI___dtostr+0x2a8> + 327a: 3e40 cmpnei r6, 0 + 327c: 0f62 bf 0x3140 // 3140 <__GI___dtostr+0x26> + 327e: 372e movi r7, 46 + 3280: a5e0 st.b r7, (r5, 0x0) + 3282: 980b ld.w r0, (r14, 0x2c) + 3284: 5de2 addi r7, r5, 1 + 3286: 9822 ld.w r1, (r14, 0x8) + 3288: 2000 addi r0, 1 + 328a: 5f65 subu r3, r7, r1 + 328c: 584d subu r2, r0, r3 + 328e: 2e00 subi r6, 1 + 3290: b845 st.w r2, (r14, 0x14) + 3292: 9805 ld.w r0, (r14, 0x14) + 3294: 6418 cmphs r6, r0 + 3296: 0f55 bf 0x3140 // 3140 <__GI___dtostr+0x26> + 3298: 6d43 mov r5, r0 + 329a: 615c addu r5, r7 + 329c: 36ff movi r6, 255 + 329e: 655e cmpne r7, r5 + 32a0: 0c91 bf 0x33c2 // 33c2 <__GI___dtostr+0x2a8> + 32a2: 6c93 mov r2, r4 + 32a4: 9863 ld.w r3, (r14, 0xc) + 32a6: 9806 ld.w r0, (r14, 0x18) + 32a8: 9827 ld.w r1, (r14, 0x1c) + 32aa: e3fff285 bsr 0x17b4 // 17b4 <__divdf3> + 32ae: e3fff3bf bsr 0x1a2c // 1a2c <__fixdfsi> + 32b2: 3130 movi r1, 48 + 32b4: 6040 addu r1, r0 + 32b6: a720 st.b r1, (r7, 0x0) + 32b8: 6818 and r0, r6 + 32ba: e3fff381 bsr 0x19bc // 19bc <__floatsidf> + 32be: 6c93 mov r2, r4 + 32c0: 9863 ld.w r3, (r14, 0xc) + 32c2: e3fff15f bsr 0x1580 // 1580 <__muldf3> + 32c6: 6c83 mov r2, r0 + 32c8: 6cc7 mov r3, r1 + 32ca: 9806 ld.w r0, (r14, 0x18) + 32cc: 9827 ld.w r1, (r14, 0x1c) + 32ce: e3fff13d bsr 0x1548 // 1548 <__subdf3> + 32d2: b806 st.w r0, (r14, 0x18) + 32d4: b827 st.w r1, (r14, 0x1c) + 32d6: 6c13 mov r0, r4 + 32d8: 9823 ld.w r1, (r14, 0xc) + 32da: 3200 movi r2, 0 + 32dc: 1278 lrw r3, 0x40240000 // 343c <__GI___dtostr+0x322> + 32de: e3fff26b bsr 0x17b4 // 17b4 <__divdf3> + 32e2: 2700 addi r7, 1 + 32e4: 6d03 mov r4, r0 + 32e6: b823 st.w r1, (r14, 0xc) + 32e8: 07db br 0x329e // 329e <__GI___dtostr+0x184> + 32ea: 98a2 ld.w r5, (r14, 0x8) + 32ec: 9884 ld.w r4, (r14, 0x10) + 32ee: 077a br 0x31e2 // 31e2 <__GI___dtostr+0xc8> + 32f0: 1276 lrw r3, 0x3fb99999 // 3448 <__GI___dtostr+0x32e> + 32f2: 1257 lrw r2, 0x9999999a // 344c <__GI___dtostr+0x332> + 32f4: e3fff146 bsr 0x1580 // 1580 <__muldf3> + 32f8: 9865 ld.w r3, (r14, 0x14) + 32fa: 2300 addi r3, 1 + 32fc: 0776 br 0x31e8 // 31e8 <__GI___dtostr+0xce> + 32fe: 3080 movi r0, 128 + 3300: 4056 lsli r2, r0, 22 + 3302: 9823 ld.w r1, (r14, 0xc) + 3304: 6c13 mov r0, r4 + 3306: 1273 lrw r3, 0x4202a05f // 3450 <__GI___dtostr+0x336> + 3308: e3fff13c bsr 0x1580 // 1580 <__muldf3> + 330c: 6d03 mov r4, r0 + 330e: b823 st.w r1, (r14, 0xc) + 3310: 2f09 subi r7, 10 + 3312: 0796 br 0x323e // 323e <__GI___dtostr+0x124> + 3314: 6c13 mov r0, r4 + 3316: 9823 ld.w r1, (r14, 0xc) + 3318: 3200 movi r2, 0 + 331a: 1269 lrw r3, 0x40240000 // 343c <__GI___dtostr+0x322> + 331c: e3fff132 bsr 0x1580 // 1580 <__muldf3> + 3320: 6d03 mov r4, r0 + 3322: b823 st.w r1, (r14, 0xc) + 3324: 2f00 subi r7, 1 + 3326: 078e br 0x3242 // 3242 <__GI___dtostr+0x128> + 3328: 9863 ld.w r3, (r14, 0xc) + 332a: 6c93 mov r2, r4 + 332c: 9806 ld.w r0, (r14, 0x18) + 332e: 9827 ld.w r1, (r14, 0x1c) + 3330: e3fff242 bsr 0x17b4 // 17b4 <__divdf3> + 3334: e3fff37c bsr 0x1a2c // 1a2c <__fixdfsi> + 3338: 3f40 cmpnei r7, 0 + 333a: 74c0 zextb r3, r0 + 333c: 0c03 bf 0x3342 // 3342 <__GI___dtostr+0x228> + 333e: 3b40 cmpnei r3, 0 + 3340: 0c58 bf 0x33f0 // 33f0 <__GI___dtostr+0x2d6> + 3342: 232f addi r3, 48 + 3344: 3e40 cmpnei r6, 0 + 3346: a560 st.b r3, (r5, 0x0) + 3348: 2500 addi r5, 1 + 334a: 0842 bt 0x33ce // 33ce <__GI___dtostr+0x2b4> + 334c: 6c93 mov r2, r4 + 334e: 9863 ld.w r3, (r14, 0xc) + 3350: 980a ld.w r0, (r14, 0x28) + 3352: 9824 ld.w r1, (r14, 0x10) + 3354: e3fff230 bsr 0x17b4 // 17b4 <__divdf3> + 3358: 9845 ld.w r2, (r14, 0x14) + 335a: 988b ld.w r4, (r14, 0x2c) + 335c: b841 st.w r2, (r14, 0x4) + 335e: b880 st.w r4, (r14, 0x0) + 3360: 3300 movi r3, 0 + 3362: 9842 ld.w r2, (r14, 0x8) + 3364: e3fffedb bsr 0x311a // 311a <__GI___dtostr> + 3368: 3840 cmpnei r0, 0 + 336a: 0eeb bf 0x3140 // 3140 <__GI___dtostr+0x26> + 336c: 5dc0 addu r6, r5, r0 + 336e: 37fa movi r7, 250 + 3370: 3565 movi r5, 101 + 3372: 6c02 nor r0, r0 + 3374: a6a0 st.b r5, (r6, 0x0) + 3376: 6d03 mov r4, r0 + 3378: 5ea2 addi r5, r6, 1 + 337a: 3101 movi r1, 1 + 337c: 3604 movi r6, 4 + 337e: 47e2 lsli r7, r7, 2 + 3380: 9808 ld.w r0, (r14, 0x20) + 3382: 65c1 cmplt r0, r7 + 3384: 0c03 bf 0x338a // 338a <__GI___dtostr+0x270> + 3386: 3940 cmpnei r1, 0 + 3388: 0811 bt 0x33aa // 33aa <__GI___dtostr+0x290> + 338a: 3c40 cmpnei r4, 0 + 338c: 0c08 bf 0x339c // 339c <__GI___dtostr+0x282> + 338e: 6c5f mov r1, r7 + 3390: 9808 ld.w r0, (r14, 0x20) + 3392: e0000caf bsr 0x4cf0 // 4cf0 <__divsi3> + 3396: 202f addi r0, 48 + 3398: a500 st.b r0, (r5, 0x0) + 339a: 2500 addi r5, 1 + 339c: 6c5f mov r1, r7 + 339e: 9808 ld.w r0, (r14, 0x20) + 33a0: e0000ccc bsr 0x4d38 // 4d38 <__modsi3> + 33a4: 2c00 subi r4, 1 + 33a6: b808 st.w r0, (r14, 0x20) + 33a8: 3100 movi r1, 0 + 33aa: b823 st.w r1, (r14, 0xc) + 33ac: 6c1f mov r0, r7 + 33ae: 310a movi r1, 10 + 33b0: 2e00 subi r6, 1 + 33b2: e0000c9f bsr 0x4cf0 // 4cf0 <__divsi3> + 33b6: 3e40 cmpnei r6, 0 + 33b8: 6dc3 mov r7, r0 + 33ba: 9823 ld.w r1, (r14, 0xc) + 33bc: 0be2 bt 0x3380 // 3380 <__GI___dtostr+0x266> + 33be: 3c40 cmpnei r4, 0 + 33c0: 0ec0 bf 0x3140 // 3140 <__GI___dtostr+0x26> + 33c2: 9842 ld.w r2, (r14, 0x8) + 33c4: 3300 movi r3, 0 + 33c6: 5d89 subu r4, r5, r2 + 33c8: a560 st.b r3, (r5, 0x0) + 33ca: b889 st.w r4, (r14, 0x24) + 33cc: 06ba br 0x3140 // 3140 <__GI___dtostr+0x26> + 33ce: 7400 zextb r0, r0 + 33d0: e3fff2f6 bsr 0x19bc // 19bc <__floatsidf> + 33d4: 6c93 mov r2, r4 + 33d6: 9863 ld.w r3, (r14, 0xc) + 33d8: e3fff0d4 bsr 0x1580 // 1580 <__muldf3> + 33dc: 6c83 mov r2, r0 + 33de: 6cc7 mov r3, r1 + 33e0: 9806 ld.w r0, (r14, 0x18) + 33e2: 9827 ld.w r1, (r14, 0x1c) + 33e4: e3fff0b2 bsr 0x1548 // 1548 <__subdf3> + 33e8: b806 st.w r0, (r14, 0x18) + 33ea: b827 st.w r1, (r14, 0x1c) + 33ec: 2e00 subi r6, 1 + 33ee: 3700 movi r7, 0 + 33f0: 6c13 mov r0, r4 + 33f2: 9823 ld.w r1, (r14, 0xc) + 33f4: 3200 movi r2, 0 + 33f6: 1072 lrw r3, 0x40240000 // 343c <__GI___dtostr+0x322> + 33f8: e3fff1de bsr 0x17b4 // 17b4 <__divdf3> + 33fc: 6d03 mov r4, r0 + 33fe: b823 st.w r1, (r14, 0xc) + 3400: 0723 br 0x3246 // 3246 <__GI___dtostr+0x12c> + 3402: 1012 lrw r0, 0x3fb99999 // 3448 <__GI___dtostr+0x32e> + 3404: 1092 lrw r4, 0x9999999a // 344c <__GI___dtostr+0x332> + 3406: b803 st.w r0, (r14, 0xc) + 3408: 0727 br 0x3256 // 3256 <__GI___dtostr+0x13c> + 340a: 3e40 cmpnei r6, 0 + 340c: 0e9a bf 0x3140 // 3140 <__GI___dtostr+0x26> + 340e: 372e movi r7, 46 + 3410: a5e0 st.b r7, (r5, 0x0) + 3412: 2e00 subi r6, 1 + 3414: 5de2 addi r7, r5, 1 + 3416: 073e br 0x3292 // 3292 <__GI___dtostr+0x178> + 3418: 3e40 cmpnei r6, 0 + 341a: 0ac8 bt 0x31aa // 31aa <__GI___dtostr+0x90> + 341c: 3508 movi r5, 8 + 341e: 06ac br 0x3176 // 3176 <__GI___dtostr+0x5c> + 3420: 00008614 .long 0x00008614 + 3424: 00008618 .long 0x00008618 + 3428: 3fe00000 .long 0x3fe00000 + 342c: 3ff00000 .long 0x3ff00000 + 3430: fffffc01 .long 0xfffffc01 + 3434: 509f79ff .long 0x509f79ff + 3438: 3fd34413 .long 0x3fd34413 + 343c: 40240000 .long 0x40240000 + 3440: cccccccd .long 0xcccccccd + 3444: 3feccccc .long 0x3feccccc + 3448: 3fb99999 .long 0x3fb99999 + 344c: 9999999a .long 0x9999999a + 3450: 4202a05f .long 0x4202a05f + +00003454 <__isnan>: + 3454: 416c lsli r3, r1, 12 + 3456: 4b4c lsri r2, r3, 12 + 3458: 6c08 or r0, r2 + 345a: 3840 cmpnei r0, 0 + 345c: 0c0e bf 0x3478 // 3478 <__isnan+0x24> + 345e: 1008 lrw r0, 0x7ff00000 // 347c <__isnan+0x28> + 3460: 6840 and r1, r0 + 3462: 6cc7 mov r3, r1 + 3464: 3000 movi r0, 0 + 3466: 1026 lrw r1, 0x7ff00000 // 347c <__isnan+0x28> + 3468: 3200 movi r2, 0 + 346a: 6c81 xor r2, r0 + 346c: 6cc5 xor r3, r1 + 346e: 6c8c or r2, r3 + 3470: 3a40 cmpnei r2, 0 + 3472: 6443 mvcv r1 + 3474: 7404 zextb r0, r1 + 3476: 783c jmp r15 + 3478: 3000 movi r0, 0 + 347a: 07fe br 0x3476 // 3476 <__isnan+0x22> + 347c: 7ff00000 .long 0x7ff00000 + +00003480 <__strlen_fast>: + 3480: 6c43 mov r1, r0 + 3482: 3203 movi r2, 3 + 3484: 6808 and r0, r2 + 3486: 3840 cmpnei r0, 0 + 3488: 0c08 bf 0x3498 // 3498 <__strlen_fast+0x18> + 348a: 3000 movi r0, 0 + 348c: 8140 ld.b r2, (r1, 0x0) + 348e: 3a40 cmpnei r2, 0 + 3490: 0c20 bf 0x34d0 // 34d0 <__strlen_fast+0x50> + 3492: 2100 addi r1, 1 + 3494: 2000 addi r0, 1 + 3496: 07fb br 0x348c // 348c <__strlen_fast+0xc> + 3498: 9140 ld.w r2, (r1, 0x0) + 349a: 680b tstnbz r2 + 349c: 0c04 bf 0x34a4 // 34a4 <__strlen_fast+0x24> + 349e: 2103 addi r1, 4 + 34a0: 2003 addi r0, 4 + 34a2: 07fb br 0x3498 // 3498 <__strlen_fast+0x18> + 34a4: 31ff movi r1, 255 + 34a6: 6ccb mov r3, r2 + 34a8: 68c4 and r3, r1 + 34aa: 3b40 cmpnei r3, 0 + 34ac: 0c12 bf 0x34d0 // 34d0 <__strlen_fast+0x50> + 34ae: 2000 addi r0, 1 + 34b0: 3110 movi r1, 16 + 34b2: 6ccb mov r3, r2 + 34b4: 70c4 lsl r3, r1 + 34b6: 3118 movi r1, 24 + 34b8: 70c5 lsr r3, r1 + 34ba: 3b40 cmpnei r3, 0 + 34bc: 0c0a bf 0x34d0 // 34d0 <__strlen_fast+0x50> + 34be: 2000 addi r0, 1 + 34c0: 3108 movi r1, 8 + 34c2: 6ccb mov r3, r2 + 34c4: 70c4 lsl r3, r1 + 34c6: 3118 movi r1, 24 + 34c8: 70c5 lsr r3, r1 + 34ca: 3b40 cmpnei r3, 0 + 34cc: 0c02 bf 0x34d0 // 34d0 <__strlen_fast+0x50> + 34ce: 2000 addi r0, 1 + 34d0: 783c jmp r15 + ... + +000034d4 <__strcpy_fast>: + 34d4: 14c1 push r4 + 34d6: 6d03 mov r4, r0 + 34d8: 6c87 mov r2, r1 + 34da: 6c90 or r2, r4 + 34dc: 3303 movi r3, 3 + 34de: 688c and r2, r3 + 34e0: 3a40 cmpnei r2, 0 + 34e2: 0c08 bf 0x34f2 // 34f2 <__strcpy_fast+0x1e> + 34e4: 8160 ld.b r3, (r1, 0x0) + 34e6: a460 st.b r3, (r4, 0x0) + 34e8: 2100 addi r1, 1 + 34ea: 2400 addi r4, 1 + 34ec: 3b40 cmpnei r3, 0 + 34ee: 0bfb bt 0x34e4 // 34e4 <__strcpy_fast+0x10> + 34f0: 1481 pop r4 + 34f2: 9160 ld.w r3, (r1, 0x0) + 34f4: 680f tstnbz r3 + 34f6: 0c2e bf 0x3552 // 3552 <__strcpy_fast+0x7e> + 34f8: b460 st.w r3, (r4, 0x0) + 34fa: 9161 ld.w r3, (r1, 0x4) + 34fc: 680f tstnbz r3 + 34fe: 0c1d bf 0x3538 // 3538 <__strcpy_fast+0x64> + 3500: b461 st.w r3, (r4, 0x4) + 3502: 9162 ld.w r3, (r1, 0x8) + 3504: 680f tstnbz r3 + 3506: 0c1b bf 0x353c // 353c <__strcpy_fast+0x68> + 3508: b462 st.w r3, (r4, 0x8) + 350a: 9163 ld.w r3, (r1, 0xc) + 350c: 680f tstnbz r3 + 350e: 0c19 bf 0x3540 // 3540 <__strcpy_fast+0x6c> + 3510: b463 st.w r3, (r4, 0xc) + 3512: 9164 ld.w r3, (r1, 0x10) + 3514: 680f tstnbz r3 + 3516: 0c17 bf 0x3544 // 3544 <__strcpy_fast+0x70> + 3518: b464 st.w r3, (r4, 0x10) + 351a: 9165 ld.w r3, (r1, 0x14) + 351c: 680f tstnbz r3 + 351e: 0c15 bf 0x3548 // 3548 <__strcpy_fast+0x74> + 3520: b465 st.w r3, (r4, 0x14) + 3522: 9166 ld.w r3, (r1, 0x18) + 3524: 680f tstnbz r3 + 3526: 0c13 bf 0x354c // 354c <__strcpy_fast+0x78> + 3528: b466 st.w r3, (r4, 0x18) + 352a: 9167 ld.w r3, (r1, 0x1c) + 352c: 680f tstnbz r3 + 352e: 0c11 bf 0x3550 // 3550 <__strcpy_fast+0x7c> + 3530: b467 st.w r3, (r4, 0x1c) + 3532: 241f addi r4, 32 + 3534: 211f addi r1, 32 + 3536: 07de br 0x34f2 // 34f2 <__strcpy_fast+0x1e> + 3538: 2403 addi r4, 4 + 353a: 040c br 0x3552 // 3552 <__strcpy_fast+0x7e> + 353c: 2407 addi r4, 8 + 353e: 040a br 0x3552 // 3552 <__strcpy_fast+0x7e> + 3540: 240b addi r4, 12 + 3542: 0408 br 0x3552 // 3552 <__strcpy_fast+0x7e> + 3544: 240f addi r4, 16 + 3546: 0406 br 0x3552 // 3552 <__strcpy_fast+0x7e> + 3548: 2413 addi r4, 20 + 354a: 0404 br 0x3552 // 3552 <__strcpy_fast+0x7e> + 354c: 2417 addi r4, 24 + 354e: 0402 br 0x3552 // 3552 <__strcpy_fast+0x7e> + 3550: 241b addi r4, 28 + 3552: 3118 movi r1, 24 + 3554: 6c8f mov r2, r3 + 3556: 7084 lsl r2, r1 + 3558: 7085 lsr r2, r1 + 355a: a440 st.b r2, (r4, 0x0) + 355c: 3a40 cmpnei r2, 0 + 355e: 0c12 bf 0x3582 // 3582 <__strcpy_fast+0xae> + 3560: 3110 movi r1, 16 + 3562: 6c8f mov r2, r3 + 3564: 7084 lsl r2, r1 + 3566: 3118 movi r1, 24 + 3568: 7085 lsr r2, r1 + 356a: a441 st.b r2, (r4, 0x1) + 356c: 3a40 cmpnei r2, 0 + 356e: 0c0a bf 0x3582 // 3582 <__strcpy_fast+0xae> + 3570: 3108 movi r1, 8 + 3572: 6c8f mov r2, r3 + 3574: 7084 lsl r2, r1 + 3576: 3118 movi r1, 24 + 3578: 7085 lsr r2, r1 + 357a: a442 st.b r2, (r4, 0x2) + 357c: 3a40 cmpnei r2, 0 + 357e: 0c02 bf 0x3582 // 3582 <__strcpy_fast+0xae> + 3580: b460 st.w r3, (r4, 0x0) + 3582: 1481 pop r4 + +00003584 <__GI_strchr>: + 3584: 8040 ld.b r2, (r0, 0x0) + 3586: 644a cmpne r2, r1 + 3588: 0c06 bf 0x3594 // 3594 <__GI_strchr+0x10> + 358a: 3a40 cmpnei r2, 0 + 358c: 0c03 bf 0x3592 // 3592 <__GI_strchr+0xe> + 358e: 2000 addi r0, 1 + 3590: 07fa br 0x3584 // 3584 <__GI_strchr> + 3592: 6c0b mov r0, r2 + 3594: 783c jmp r15 + ... + +00003598 <__GI_strerror>: + 3598: 338f movi r3, 143 + 359a: 640c cmphs r3, r0 + 359c: 0c06 bf 0x35a8 // 35a8 <__GI_strerror+0x10> + 359e: 4002 lsli r0, r0, 2 + 35a0: 1023 lrw r1, 0x7814 // 35ac <__GI_strerror+0x14> + 35a2: 6004 addu r0, r1 + 35a4: 9000 ld.w r0, (r0, 0x0) + 35a6: 783c jmp r15 + 35a8: 1002 lrw r0, 0x7ac9 // 35b0 <__GI_strerror+0x18> + 35aa: 07fe br 0x35a6 // 35a6 <__GI_strerror+0xe> + 35ac: 00007814 .long 0x00007814 + 35b0: 00007ac9 .long 0x00007ac9 + +000035b4 <__isinf>: + 35b4: 3840 cmpnei r0, 0 + 35b6: 6c83 mov r2, r0 + 35b8: 6cc7 mov r3, r1 + 35ba: 0804 bt 0x35c2 // 35c2 <__isinf+0xe> + 35bc: 1028 lrw r1, 0x7ff00000 // 35dc <__isinf+0x28> + 35be: 644e cmpne r3, r1 + 35c0: 0c0b bf 0x35d6 // 35d6 <__isinf+0x22> + 35c2: 3000 movi r0, 0 + 35c4: 1027 lrw r1, 0xfff00000 // 35e0 <__isinf+0x2c> + 35c6: 6c81 xor r2, r0 + 35c8: 6cc5 xor r3, r1 + 35ca: 6c8c or r2, r3 + 35cc: 3a40 cmpnei r2, 0 + 35ce: 64c3 mvcv r3 + 35d0: 3000 movi r0, 0 + 35d2: 600e subu r0, r3 + 35d4: 783c jmp r15 + 35d6: 3001 movi r0, 1 + 35d8: 07fe br 0x35d4 // 35d4 <__isinf+0x20> + 35da: 0000 bkpt + 35dc: 7ff00000 .long 0x7ff00000 + 35e0: fff00000 .long 0xfff00000 + +000035e4 <__eqdf2>: + 35e4: 14d0 push r15 + 35e6: 142e subi r14, r14, 56 + 35e8: b800 st.w r0, (r14, 0x0) + 35ea: b821 st.w r1, (r14, 0x4) + 35ec: 6c3b mov r0, r14 + 35ee: 1904 addi r1, r14, 16 + 35f0: b863 st.w r3, (r14, 0xc) + 35f2: b842 st.w r2, (r14, 0x8) + 35f4: e3fff4a0 bsr 0x1f34 // 1f34 <__unpack_d> + 35f8: 1909 addi r1, r14, 36 + 35fa: 1802 addi r0, r14, 8 + 35fc: e3fff49c bsr 0x1f34 // 1f34 <__unpack_d> + 3600: 9864 ld.w r3, (r14, 0x10) + 3602: 3b01 cmphsi r3, 2 + 3604: 0c0a bf 0x3618 // 3618 <__eqdf2+0x34> + 3606: 9869 ld.w r3, (r14, 0x24) + 3608: 3b01 cmphsi r3, 2 + 360a: 0c07 bf 0x3618 // 3618 <__eqdf2+0x34> + 360c: 1909 addi r1, r14, 36 + 360e: 1804 addi r0, r14, 16 + 3610: e3fff4f4 bsr 0x1ff8 // 1ff8 <__fpcmp_parts_d> + 3614: 140e addi r14, r14, 56 + 3616: 1490 pop r15 + 3618: 3001 movi r0, 1 + 361a: 140e addi r14, r14, 56 + 361c: 1490 pop r15 + ... + +00003620 <__ltdf2>: + 3620: 14d0 push r15 + 3622: 142e subi r14, r14, 56 + 3624: b800 st.w r0, (r14, 0x0) + 3626: b821 st.w r1, (r14, 0x4) + 3628: 6c3b mov r0, r14 + 362a: 1904 addi r1, r14, 16 + 362c: b863 st.w r3, (r14, 0xc) + 362e: b842 st.w r2, (r14, 0x8) + 3630: e3fff482 bsr 0x1f34 // 1f34 <__unpack_d> + 3634: 1909 addi r1, r14, 36 + 3636: 1802 addi r0, r14, 8 + 3638: e3fff47e bsr 0x1f34 // 1f34 <__unpack_d> + 363c: 9864 ld.w r3, (r14, 0x10) + 363e: 3b01 cmphsi r3, 2 + 3640: 0c0a bf 0x3654 // 3654 <__ltdf2+0x34> + 3642: 9869 ld.w r3, (r14, 0x24) + 3644: 3b01 cmphsi r3, 2 + 3646: 0c07 bf 0x3654 // 3654 <__ltdf2+0x34> + 3648: 1909 addi r1, r14, 36 + 364a: 1804 addi r0, r14, 16 + 364c: e3fff4d6 bsr 0x1ff8 // 1ff8 <__fpcmp_parts_d> + 3650: 140e addi r14, r14, 56 + 3652: 1490 pop r15 + 3654: 3001 movi r0, 1 + 3656: 140e addi r14, r14, 56 + 3658: 1490 pop r15 + +Disassembly of section .text.__main: + +0000365c <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 365c: 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 ) { + 365e: 1009 lrw r0, 0x20000000 // 3680 <__main+0x24> + 3660: 1029 lrw r1, 0x8da4 // 3684 <__main+0x28> + 3662: 6442 cmpne r0, r1 + 3664: 0c05 bf 0x366e // 366e <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 3666: 1049 lrw r2, 0x200000a4 // 3688 <__main+0x2c> + 3668: 6082 subu r2, r0 + 366a: e3fff5ad bsr 0x21c4 // 21c4 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 366e: 1048 lrw r2, 0x20000aec // 368c <__main+0x30> + 3670: 1008 lrw r0, 0x200000c4 // 3690 <__main+0x34> + 3672: 640a cmpne r2, r0 + 3674: 0c05 bf 0x367e // 367e <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 3676: 6082 subu r2, r0 + 3678: 3100 movi r1, 0 + 367a: e3fff561 bsr 0x213c // 213c <__memset_fast> + } + + +} + 367e: 1490 pop r15 + 3680: 20000000 .long 0x20000000 + 3684: 00008da4 .long 0x00008da4 + 3688: 200000a4 .long 0x200000a4 + 368c: 20000aec .long 0x20000aec + 3690: 200000c4 .long 0x200000c4 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00003694 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 3694: 3848 cmpnei r0, 8 + 3696: 080a bt 0x36aa // 36aa + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 3698: 107a lrw r3, 0x20000050 // 3700 + 369a: 32ff movi r2, 255 + 369c: 9320 ld.w r1, (r3, 0x0) + 369e: 9160 ld.w r3, (r1, 0x0) + 36a0: 424c lsli r2, r2, 12 + 36a2: 68c9 andn r3, r2 + 36a4: 3bae bseti r3, 14 + 36a6: 3bb2 bseti r3, 18 + 36a8: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 36aa: 1077 lrw r3, 0x20000060 // 3704 + 36ac: 9360 ld.w r3, (r3, 0x0) + 36ae: 9341 ld.w r2, (r3, 0x4) + 36b0: 6c80 or r2, r0 + 36b2: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 36b4: 9343 ld.w r2, (r3, 0xc) + 36b6: 6880 and r2, r0 + 36b8: 3a40 cmpnei r2, 0 + 36ba: 0ffd bf 0x36b4 // 36b4 + switch(ENDIS_X) + 36bc: 3842 cmpnei r0, 2 + 36be: 0807 bt 0x36cc // 36cc + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 36c0: 3102 movi r1, 2 + 36c2: 9344 ld.w r2, (r3, 0x10) + 36c4: 6884 and r2, r1 + 36c6: 3a40 cmpnei r2, 0 + 36c8: 0ffd bf 0x36c2 // 36c2 + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 36ca: 783c jmp r15 + switch(ENDIS_X) + 36cc: 3802 cmphsi r0, 3 + 36ce: 0809 bt 0x36e0 // 36e0 + 36d0: 3841 cmpnei r0, 1 + 36d2: 0bfc bt 0x36ca // 36ca + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 36d4: 3101 movi r1, 1 + 36d6: 9344 ld.w r2, (r3, 0x10) + 36d8: 6884 and r2, r1 + 36da: 3a40 cmpnei r2, 0 + 36dc: 0ffd bf 0x36d6 // 36d6 + 36de: 07f6 br 0x36ca // 36ca + switch(ENDIS_X) + 36e0: 3848 cmpnei r0, 8 + 36e2: 0807 bt 0x36f0 // 36f0 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 36e4: 3108 movi r1, 8 + 36e6: 9344 ld.w r2, (r3, 0x10) + 36e8: 6884 and r2, r1 + 36ea: 3a40 cmpnei r2, 0 + 36ec: 0ffd bf 0x36e6 // 36e6 + 36ee: 07ee br 0x36ca // 36ca + switch(ENDIS_X) + 36f0: 3850 cmpnei r0, 16 + 36f2: 0bec bt 0x36ca // 36ca + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 36f4: 3110 movi r1, 16 + 36f6: 9344 ld.w r2, (r3, 0x10) + 36f8: 6884 and r2, r1 + 36fa: 3a40 cmpnei r2, 0 + 36fc: 0ffd bf 0x36f6 // 36f6 + 36fe: 07e6 br 0x36ca // 36ca + 3700: 20000050 .long 0x20000050 + 3704: 20000060 .long 0x20000060 + +Disassembly of section .text.SYSCON_RST_VALUE: + +00003708 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 3708: 106c lrw r3, 0x20000060 // 3738 + 370a: 104d lrw r2, 0xffff // 373c + 370c: 9360 ld.w r3, (r3, 0x0) + 370e: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 3710: 104c lrw r2, 0xffffff // 3740 + 3712: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 3714: 104c lrw r2, 0xd22d0000 // 3744 + 3716: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 3718: 104c lrw r2, 0x70ff3bff // 3748 + 371a: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 371c: 320a movi r2, 10 + 371e: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 3720: 102b lrw r1, 0x70c // 374c + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 3722: 237f addi r3, 128 + 3724: 3200 movi r2, 0 + 3726: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 3728: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 372a: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 372c: 1029 lrw r1, 0x3fe // 3750 + 372e: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 3730: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 3732: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 3734: b35f st.w r2, (r3, 0x7c) +} + 3736: 783c jmp r15 + 3738: 20000060 .long 0x20000060 + 373c: 0000ffff .long 0x0000ffff + 3740: 00ffffff .long 0x00ffffff + 3744: d22d0000 .long 0xd22d0000 + 3748: 70ff3bff .long 0x70ff3bff + 374c: 0000070c .long 0x0000070c + 3750: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00003754 : +{ + 3754: 14d0 push r15 + if (NewState != DISABLE) + 3756: 3840 cmpnei r0, 0 + 3758: 0c05 bf 0x3762 // 3762 + 375a: 6c07 mov r0, r1 + 375c: e3ffff9c bsr 0x3694 // 3694 +} + 3760: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 3762: 1068 lrw r3, 0x20000060 // 3780 + 3764: 9360 ld.w r3, (r3, 0x0) + 3766: 9342 ld.w r2, (r3, 0x8) + 3768: 6c84 or r2, r1 + 376a: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 376c: 9343 ld.w r2, (r3, 0xc) + 376e: 6884 and r2, r1 + 3770: 3a40 cmpnei r2, 0 + 3772: 0bfd bt 0x376c // 376c + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 3774: 237f addi r3, 128 + 3776: 9301 ld.w r0, (r3, 0x4) + 3778: 6c40 or r1, r0 + 377a: b321 st.w r1, (r3, 0x4) +} + 377c: 07f2 br 0x3760 // 3760 + 377e: 0000 bkpt + 3780: 20000060 .long 0x20000060 + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00003784 : +//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 ) +{ + 3784: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 3786: 3b48 cmpnei r3, 8 + 3788: 0828 bt 0x37d8 // 37d8 + { + IFC->CEDR=0X01; //CLKEN + 378a: 109d lrw r4, 0x20000064 // 37fc + 378c: 3501 movi r5, 1 + 378e: 9480 ld.w r4, (r4, 0x0) + 3790: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 3792: 3504 movi r5, 4 + 3794: 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)) + 3796: 5b83 subi r4, r3, 1 + 3798: 3c01 cmphsi r4, 2 + 379a: 0c2b bf 0x37f0 // 37f0 + { + 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)) + 379c: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 379e: 3c04 cmphsi r4, 5 + 37a0: 0c03 bf 0x37a6 // 37a6 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 37a2: 3b4b cmpnei r3, 11 + 37a4: 0807 bt 0x37b2 // 37b2 + { + IFC->CEDR=0X01; //CLKEN + 37a6: 1076 lrw r3, 0x20000064 // 37fc + 37a8: 3401 movi r4, 1 + 37aa: 9360 ld.w r3, (r3, 0x0) + 37ac: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 37ae: 3400 movi r4, 0 + 37b0: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 37b2: 1094 lrw r4, 0xd22d0000 // 3800 + 37b4: 6c10 or r0, r4 + 37b6: 1074 lrw r3, 0x20000060 // 3804 + 37b8: 6c40 or r1, r0 + 37ba: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 37bc: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 37be: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 37c0: 4001 lsli r0, r0, 1 + 37c2: 9324 ld.w r1, (r3, 0x10) + 37c4: 6840 and r1, r0 + 37c6: 3940 cmpnei r1, 0 + 37c8: 0ffd bf 0x37c2 // 37c2 + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 37ca: 1030 lrw r1, 0xc33c0000 // 3808 + 37cc: 6c48 or r1, r2 + 37ce: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 37d0: 9328 ld.w r1, (r3, 0x20) + 37d2: 644a cmpne r2, r1 + 37d4: 0bfe bt 0x37d0 // 37d0 +} + 37d6: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 37d8: 3b40 cmpnei r3, 0 + 37da: 0c03 bf 0x37e0 // 37e0 + 37dc: 3b49 cmpnei r3, 9 + 37de: 0807 bt 0x37ec // 37ec + IFC->CEDR=0X01; //CLKEN + 37e0: 1087 lrw r4, 0x20000064 // 37fc + 37e2: 3501 movi r5, 1 + 37e4: 9480 ld.w r4, (r4, 0x0) + 37e6: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 37e8: 3502 movi r5, 2 + 37ea: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 37ec: 3b4a cmpnei r3, 10 + 37ee: 0bd4 bt 0x3796 // 3796 + IFC->CEDR=0X01; //CLKEN + 37f0: 1083 lrw r4, 0x20000064 // 37fc + 37f2: 3501 movi r5, 1 + 37f4: 9480 ld.w r4, (r4, 0x0) + 37f6: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 37f8: b4a5 st.w r5, (r4, 0x14) + 37fa: 07d1 br 0x379c // 379c + 37fc: 20000064 .long 0x20000064 + 3800: d22d0000 .long 0xd22d0000 + 3804: 20000060 .long 0x20000060 + 3808: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +0000380c : +//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) +{ + 380c: 14d1 push r4, r15 + 380e: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 3810: 3110 movi r1, 16 + 3812: 3000 movi r0, 0 + 3814: e3ffffa0 bsr 0x3754 // 3754 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 3818: 1066 lrw r3, 0x20000060 // 3830 + 381a: 9360 ld.w r3, (r3, 0x0) + 381c: 9319 ld.w r0, (r3, 0x64) + 381e: 3884 bclri r0, 4 + 3820: 3885 bclri r0, 5 + 3822: 6c10 or r0, r4 + 3824: b319 st.w r0, (r3, 0x64) + 3826: 3010 movi r0, 16 + 3828: e3ffff36 bsr 0x3694 // 3694 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 382c: 1491 pop r4, r15 + 382e: 0000 bkpt + 3830: 20000060 .long 0x20000060 + +Disassembly of section .text.SYSCON_WDT_CMD: + +00003834 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 3834: 106c lrw r3, 0x20000060 // 3864 + if(NewState != DISABLE) + 3836: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 3838: 9360 ld.w r3, (r3, 0x0) + 383a: 237f addi r3, 128 + if(NewState != DISABLE) + 383c: 0c0a bf 0x3850 // 3850 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 383e: 104b lrw r2, 0x78870000 // 3868 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 3840: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 3842: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 3844: 4125 lsli r1, r1, 5 + 3846: 934d ld.w r2, (r3, 0x34) + 3848: 6884 and r2, r1 + 384a: 3a40 cmpnei r2, 0 + 384c: 0ffd bf 0x3846 // 3846 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 384e: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 3850: 1047 lrw r2, 0x788755aa // 386c + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 3852: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 3854: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 3856: 4125 lsli r1, r1, 5 + 3858: 934d ld.w r2, (r3, 0x34) + 385a: 6884 and r2, r1 + 385c: 3a40 cmpnei r2, 0 + 385e: 0bfd bt 0x3858 // 3858 + 3860: 07f7 br 0x384e // 384e + 3862: 0000 bkpt + 3864: 20000060 .long 0x20000060 + 3868: 78870000 .long 0x78870000 + 386c: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00003870 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 3870: 1064 lrw r3, 0x20000060 // 3880 + 3872: 32b4 movi r2, 180 + 3874: 9360 ld.w r3, (r3, 0x0) + 3876: 237f addi r3, 128 + 3878: 4257 lsli r2, r2, 23 + 387a: b34e st.w r2, (r3, 0x38) +} + 387c: 783c jmp r15 + 387e: 0000 bkpt + 3880: 20000060 .long 0x20000060 + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00003884 : +//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; + 3884: 1044 lrw r2, 0x87780000 // 3894 + 3886: 1065 lrw r3, 0x20000060 // 3898 + 3888: 6c48 or r1, r2 + 388a: 9360 ld.w r3, (r3, 0x0) + 388c: 6c04 or r0, r1 + 388e: 237f addi r3, 128 + 3890: b30d st.w r0, (r3, 0x34) +} + 3892: 783c jmp r15 + 3894: 87780000 .long 0x87780000 + 3898: 20000060 .long 0x20000060 + +Disassembly of section .text.SYSCON_LVD_Config: + +0000389c : +//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) +{ + 389c: 14c3 push r4-r6 + 389e: 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; + 38a0: 10c5 lrw r6, 0xb44b0000 // 38b4 + 38a2: 6d18 or r4, r6 + 38a4: 6cd0 or r3, r4 + 38a6: 6c8c or r2, r3 + 38a8: 6c48 or r1, r2 + 38aa: 10a4 lrw r5, 0x20000060 // 38b8 + 38ac: 6c04 or r0, r1 + 38ae: 95a0 ld.w r5, (r5, 0x0) + 38b0: b513 st.w r0, (r5, 0x4c) +} + 38b2: 1483 pop r4-r6 + 38b4: b44b0000 .long 0xb44b0000 + 38b8: 20000060 .long 0x20000060 + +Disassembly of section .text.LVD_Int_Enable: + +000038bc : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 38bc: 1066 lrw r3, 0x20000060 // 38d4 + 38be: 3180 movi r1, 128 + 38c0: 9360 ld.w r3, (r3, 0x0) + 38c2: 3280 movi r2, 128 + 38c4: 604c addu r1, r3 + 38c6: 4244 lsli r2, r2, 4 + 38c8: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 38ca: 935d ld.w r2, (r3, 0x74) + 38cc: 3aab bseti r2, 11 + 38ce: b35d st.w r2, (r3, 0x74) +} + 38d0: 783c jmp r15 + 38d2: 0000 bkpt + 38d4: 20000060 .long 0x20000060 + +Disassembly of section .text.IWDT_Int_Enable: + +000038d8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 38d8: 1066 lrw r3, 0x20000060 // 38f0 + 38da: 3180 movi r1, 128 + 38dc: 9360 ld.w r3, (r3, 0x0) + 38de: 3280 movi r2, 128 + 38e0: 604c addu r1, r3 + 38e2: 4241 lsli r2, r2, 1 + 38e4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 38e6: 935d ld.w r2, (r3, 0x74) + 38e8: 3aa8 bseti r2, 8 + 38ea: b35d st.w r2, (r3, 0x74) +} + 38ec: 783c jmp r15 + 38ee: 0000 bkpt + 38f0: 20000060 .long 0x20000060 + +Disassembly of section .text.EXTI_trigger_CMD: + +000038f4 : +//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) + 38f4: 3a40 cmpnei r2, 0 + 38f6: 0c04 bf 0x38fe // 38fe + 38f8: 3a41 cmpnei r2, 1 + 38fa: 0c0e bf 0x3916 // 3916 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 38fc: 783c jmp r15 + 38fe: 106d lrw r3, 0x20000060 // 3930 + if(NewState != DISABLE) + 3900: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 3902: 9360 ld.w r3, (r3, 0x0) + 3904: 237f addi r3, 128 + 3906: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 3908: 0c04 bf 0x3910 // 3910 + SYSCON->EXIRT |=EXIPIN; + 390a: 6c48 or r1, r2 + 390c: b325 st.w r1, (r3, 0x14) + 390e: 07f7 br 0x38fc // 38fc + SYSCON->EXIRT &=~EXIPIN; + 3910: 6885 andn r2, r1 + 3912: b345 st.w r2, (r3, 0x14) + 3914: 07f4 br 0x38fc // 38fc + 3916: 1067 lrw r3, 0x20000060 // 3930 + if(NewState != DISABLE) + 3918: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 391a: 9360 ld.w r3, (r3, 0x0) + 391c: 237f addi r3, 128 + 391e: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 3920: 0c04 bf 0x3928 // 3928 + SYSCON->EXIFT |=EXIPIN; + 3922: 6c48 or r1, r2 + 3924: b326 st.w r1, (r3, 0x18) + 3926: 07eb br 0x38fc // 38fc + SYSCON->EXIFT &=~EXIPIN; + 3928: 6885 andn r2, r1 + 392a: b346 st.w r2, (r3, 0x18) +} + 392c: 07e8 br 0x38fc // 38fc + 392e: 0000 bkpt + 3930: 20000060 .long 0x20000060 + +Disassembly of section .text.EXTI_interrupt_CMD: + +00003934 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 3934: 106b lrw r3, 0x20000060 // 3960 + 3936: 104c lrw r2, 0x3fff // 3964 + 3938: 9360 ld.w r3, (r3, 0x0) + 393a: 237f addi r3, 128 + if(NewState != DISABLE) + 393c: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 393e: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 3940: 0c0c bf 0x3958 // 3958 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 3942: 9347 ld.w r2, (r3, 0x1c) + 3944: 6c84 or r2, r1 + 3946: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 3948: 9349 ld.w r2, (r3, 0x24) + 394a: 6884 and r2, r1 + 394c: 3a40 cmpnei r2, 0 + 394e: 0ffd bf 0x3948 // 3948 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 3950: 934b ld.w r2, (r3, 0x2c) + 3952: 6c48 or r1, r2 + 3954: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 3956: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 3958: 9348 ld.w r2, (r3, 0x20) + 395a: 6c48 or r1, r2 + 395c: b328 st.w r1, (r3, 0x20) +} + 395e: 07fc br 0x3956 // 3956 + 3960: 20000060 .long 0x20000060 + 3964: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00003968 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 3968: b02b st.w r1, (r0, 0x2c) +} + 396a: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +0000396c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 396c: 3380 movi r3, 128 + 396e: 4370 lsli r3, r3, 16 + 3970: 1042 lrw r2, 0xe000e100 // 3978 + 3972: b260 st.w r3, (r2, 0x0) +} + 3974: 783c jmp r15 + 3976: 0000 bkpt + 3978: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +0000397c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 397c: 3202 movi r2, 2 + 397e: 1062 lrw r3, 0xe000e100 // 3984 + 3980: b340 st.w r2, (r3, 0x0) +} + 3982: 783c jmp r15 + 3984: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Software_Reset: + +00003988 : +//EntryParameter:None +//ReturnValue:MCU reset +/*************************************************************/ +void SYSCON_Software_Reset(void) +{ + SYSCON->IDCCR=IDCCR_KEY|SWRST; + 3988: 1063 lrw r3, 0x20000060 // 3994 + 398a: 1044 lrw r2, 0xe11e0080 // 3998 + 398c: 9360 ld.w r3, (r3, 0x0) + 398e: b340 st.w r2, (r3, 0x0) +} + 3990: 783c jmp r15 + 3992: 0000 bkpt + 3994: 20000060 .long 0x20000060 + 3998: e11e0080 .long 0xe11e0080 + +Disassembly of section .text.SYSCON_INT_Priority: + +0000399c : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 399c: 1066 lrw r3, 0xe000e400 // 39b4 + 399e: 1047 lrw r2, 0xc0c0c0c0 // 39b8 + 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 + 39a0: 1027 lrw r1, 0xc0c000c0 // 39bc + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 39a2: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 39a4: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 39a6: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 39a8: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 39aa: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 39ac: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 39ae: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 39b0: b347 st.w r2, (r3, 0x1c) +} + 39b2: 783c jmp r15 + 39b4: e000e400 .long 0xe000e400 + 39b8: c0c0c0c0 .long 0xc0c0c0c0 + 39bc: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000039c0 : +//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) +{ + 39c0: 14c1 push r4 + 39c2: 4862 lsri r3, r0, 2 + 39c4: 4342 lsli r2, r3, 2 + 39c6: 106a lrw r3, 0x20000068 // 39ec + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 39c8: 3403 movi r4, 3 + 39ca: 9360 ld.w r3, (r3, 0x0) + 39cc: 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)); + 39de: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 39e2: 7040 lsl r1, r0 + 39e4: 6c48 or r1, r2 + 39e6: b320 st.w r1, (r3, 0x0) +} + 39e8: 1481 pop r4 + 39ea: 0000 bkpt + 39ec: 20000068 .long 0x20000068 + +Disassembly of section .text.GPIO_DeInit: + +000039f0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 39f0: 1075 lrw r3, 0x20000050 // 3a44 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 39f2: 1036 lrw r1, 0x2000004c // 3a48 + 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; + 39f4: 1016 lrw r0, 0xffff // 3a4c + GPIOA0->CONLR &= 0xFF000000; + 39f6: 9340 ld.w r2, (r3, 0x0) + 39f8: 9260 ld.w r3, (r2, 0x0) + 39fa: 4b78 lsri r3, r3, 24 + 39fc: 4378 lsli r3, r3, 24 + 39fe: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 3a00: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 3a02: 3300 movi r3, 0 + 3a04: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 3a06: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 3a08: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 3a0a: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 3a0c: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 3a0e: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 3a10: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 3a12: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 3a14: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 3a16: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 3a18: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 3a1a: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 3a1c: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 3a1e: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 3a20: 303f movi r0, 63 + 3a22: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 3a24: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 3a26: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 3a28: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 3a2a: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 3a2c: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 3a2e: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 3a30: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 3a32: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 3a34: 1047 lrw r2, 0x20000048 // 3a50 + 3a36: 9240 ld.w r2, (r2, 0x0) + 3a38: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 3a3a: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 3a3c: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 3a3e: 330f movi r3, 15 + 3a40: b263 st.w r3, (r2, 0xc) +} + 3a42: 783c jmp r15 + 3a44: 20000050 .long 0x20000050 + 3a48: 2000004c .long 0x2000004c + 3a4c: 0000ffff .long 0x0000ffff + 3a50: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Init: + +00003a54 : +//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) +{ + 3a54: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 3a56: 3907 cmphsi r1, 8 +{ + 3a58: 6d03 mov r4, r0 + if(PinNum<8) + 3a5a: 0830 bt 0x3aba // 3aba + { + switch (PinNum) + 3a5c: 5903 subi r0, r1, 1 + 3a5e: 3806 cmphsi r0, 7 + 3a60: 0827 bt 0x3aae // 3aae + 3a62: e3ffe94d bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3a66: 1004 .short 0x1004 + 3a68: 1d1a1613 .long 0x1d1a1613 + 3a6c: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 3a6e: 3300 movi r3, 0 + 3a70: 3104 movi r1, 4 + 3a72: 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) + 3a74: 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< + 3a8a: 07f5 br 0x3a74 // 3a74 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 3a8c: 310c movi r1, 12 + 3a8e: 1166 lrw r3, 0xffff0fff // 3b24 + 3a90: 07f2 br 0x3a74 // 3a74 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 3a92: 3110 movi r1, 16 + 3a94: 1165 lrw r3, 0xfff10000 // 3b28 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3a96: 2b00 subi r3, 1 + 3a98: 07ee br 0x3a74 // 3a74 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 3a9a: 3114 movi r1, 20 + 3a9c: 1164 lrw r3, 0xff100000 // 3b2c + 3a9e: 07fc br 0x3a96 // 3a96 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3aa0: 33f1 movi r3, 241 + 3aa2: 3118 movi r1, 24 + 3aa4: 4378 lsli r3, r3, 24 + 3aa6: 07f8 br 0x3a96 // 3a96 + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 3aa8: 311c movi r1, 28 + 3aaa: 1162 lrw r3, 0xfffffff // 3b30 + 3aac: 07e4 br 0x3a74 // 3a74 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 3aae: 3300 movi r3, 0 + 3ab0: 3100 movi r1, 0 + 3ab2: 2b0f subi r3, 16 + 3ab4: 07e0 br 0x3a74 // 3a74 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 3aba: 390f cmphsi r1, 16 + 3abc: 0be4 bt 0x3a84 // 3a84 + switch (PinNum) + 3abe: 2908 subi r1, 9 + 3ac0: 3906 cmphsi r1, 7 + 3ac2: 6c07 mov r0, r1 + 3ac4: 0827 bt 0x3b12 // 3b12 + 3ac6: e3ffe91b bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3aca: 1004 .short 0x1004 + 3acc: 1d1a1613 .long 0x1d1a1613 + 3ad0: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 3ad2: 3300 movi r3, 0 + 3ad4: 3104 movi r1, 4 + 3ad6: 2bf0 subi r3, 241 + if (Dir) + 3ad8: 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; + 3aea: 3108 movi r1, 8 + 3aec: 106d lrw r3, 0xfffff0ff // 3b20 + 3aee: 07f5 br 0x3ad8 // 3ad8 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 3af0: 310c movi r1, 12 + 3af2: 106d lrw r3, 0xffff0fff // 3b24 + 3af4: 07f2 br 0x3ad8 // 3ad8 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 3af6: 3110 movi r1, 16 + 3af8: 106c lrw r3, 0xfff10000 // 3b28 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3afa: 2b00 subi r3, 1 + 3afc: 07ee br 0x3ad8 // 3ad8 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 3afe: 3114 movi r1, 20 + 3b00: 106b lrw r3, 0xff100000 // 3b2c + 3b02: 07fc br 0x3afa // 3afa + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3b04: 33f1 movi r3, 241 + 3b06: 3118 movi r1, 24 + 3b08: 4378 lsli r3, r3, 24 + 3b0a: 07f8 br 0x3afa // 3afa + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 3b0c: 311c movi r1, 28 + 3b0e: 1069 lrw r3, 0xfffffff // 3b30 + 3b10: 07e4 br 0x3ad8 // 3ad8 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 3b12: 3300 movi r3, 0 + 3b14: 3100 movi r1, 0 + 3b16: 2b0f subi r3, 16 + 3b18: 07e0 br 0x3ad8 // 3ad8 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 3b1e: 0000 bkpt + 3b20: fffff0ff .long 0xfffff0ff + 3b24: ffff0fff .long 0xffff0fff + 3b28: fff10000 .long 0xfff10000 + 3b2c: ff100000 .long 0xff100000 + 3b30: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00003b34 : +//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)); + 3b34: 4121 lsli r1, r1, 1 + 3b36: 3203 movi r2, 3 + 3b38: 9068 ld.w r3, (r0, 0x20) + 3b3a: 7084 lsl r2, r1 + 3b3c: 68c9 andn r3, r2 + 3b3e: 3201 movi r2, 1 + 3b40: 7084 lsl r2, r1 + 3b42: 6cc8 or r3, r2 + 3b44: b068 st.w r3, (r0, 0x20) +} + 3b46: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00003b48 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 3b48: 4121 lsli r1, r1, 1 + 3b4a: 3301 movi r3, 1 + 3b4c: 9049 ld.w r2, (r0, 0x24) + 3b4e: 70c4 lsl r3, r1 + 3b50: 6cc8 or r3, r2 + 3b52: b069 st.w r3, (r0, 0x24) +} + 3b54: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00003b58 : +//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) +{ + 3b58: 14c1 push r4 + 3b5a: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 3b5c: 3a0f cmphsi r2, 16 + 3b5e: 084f bt 0x3bfc // 3bfc + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 3b60: 6ccb mov r3, r2 + 3b62: 3b83 bclri r3, 3 + 3b64: 3b40 cmpnei r3, 0 + 3b66: 0813 bt 0x3b8c // 3b8c + { + R_data_temp=0xfffffff0; + 3b68: 2b0f subi r3, 16 + 3b6a: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 3b6c: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 3b6e: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 3b70: dc6e0003 st.b r3, (r14, 0x3) + 3b74: 1176 lrw r3, 0x20000048 // 3c4c + if(Selete_EXI_x<8) + 3b76: 0c38 bf 0x3be6 // 3be6 + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 3b8c: 3b41 cmpnei r3, 1 + 3b8e: 0806 bt 0x3b9a // 3b9a + R_data_temp=0xffffff0f; + 3b90: 3300 movi r3, 0 + 3b92: 2bf0 subi r3, 241 + 3b94: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 3b96: 3304 movi r3, 4 + 3b98: 07eb br 0x3b6e // 3b6e + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 3b9a: 3b42 cmpnei r3, 2 + 3b9c: 0805 bt 0x3ba6 // 3ba6 + R_data_temp=0xfffff0ff; + 3b9e: 116d lrw r3, 0xfffff0ff // 3c50 + 3ba0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 3ba2: 3308 movi r3, 8 + 3ba4: 07e5 br 0x3b6e // 3b6e + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 3ba6: 3b43 cmpnei r3, 3 + 3ba8: 0805 bt 0x3bb2 // 3bb2 + R_data_temp=0xffff0fff; + 3baa: 116b lrw r3, 0xffff0fff // 3c54 + 3bac: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 3bae: 330c movi r3, 12 + 3bb0: 07df br 0x3b6e // 3b6e + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 3bb2: 3b44 cmpnei r3, 4 + 3bb4: 0806 bt 0x3bc0 // 3bc0 + R_data_temp=0xfff0ffff; + 3bb6: 1169 lrw r3, 0xfff10000 // 3c58 + 3bb8: 2b00 subi r3, 1 + 3bba: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 3bbc: 3310 movi r3, 16 + 3bbe: 07d8 br 0x3b6e // 3b6e + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 3bc0: 3b45 cmpnei r3, 5 + 3bc2: 0806 bt 0x3bce // 3bce + R_data_temp=0xff0fffff; + 3bc4: 1166 lrw r3, 0xff100000 // 3c5c + 3bc6: 2b00 subi r3, 1 + 3bc8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 3bca: 3314 movi r3, 20 + 3bcc: 07d1 br 0x3b6e // 3b6e + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 3bce: 3b46 cmpnei r3, 6 + 3bd0: 0807 bt 0x3bde // 3bde + R_data_temp=0xf0ffffff; + 3bd2: 33f1 movi r3, 241 + 3bd4: 4378 lsli r3, r3, 24 + 3bd6: 2b00 subi r3, 1 + 3bd8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 3bda: 3318 movi r3, 24 + 3bdc: 07c9 br 0x3b6e // 3b6e + R_data_temp=0x0fffffff; + 3bde: 1161 lrw r3, 0xfffffff // 3c60 + 3be0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 3be2: 331c movi r3, 28 + 3be4: 07c5 br 0x3b6e // 3b6e + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 3bf8: 1402 addi r14, r14, 8 + 3bfa: 1481 pop r4 + else if(Selete_EXI_x<20) + 3bfc: 3a13 cmphsi r2, 20 + 3bfe: 0bfd bt 0x3bf8 // 3bf8 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 3c00: 3840 cmpnei r0, 0 + 3c02: 0814 bt 0x3c2a // 3c2a + 3c04: 3300 movi r3, 0 + 3c06: 2b0f subi r3, 16 + 3c08: 60c8 addu r3, r2 + 3c0a: 3b01 cmphsi r3, 2 + 3c0c: 0bf6 bt 0x3bf8 // 3bf8 + if(Selete_EXI_x==16) + 3c0e: 3a50 cmpnei r2, 16 + 3c10: 106f lrw r3, 0x20000048 // 3c4c + 3c12: 0806 bt 0x3c1e // 3c1e + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 3c14: 9340 ld.w r2, (r3, 0x0) + 3c16: 9262 ld.w r3, (r2, 0x8) + 3c18: 6c4c or r1, r3 + 3c1a: b222 st.w r1, (r2, 0x8) + 3c1c: 07ee br 0x3bf8 // 3bf8 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 3c1e: 9360 ld.w r3, (r3, 0x0) + 3c20: 9342 ld.w r2, (r3, 0x8) + 3c22: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 3c24: 6c48 or r1, r2 + 3c26: b322 st.w r1, (r3, 0x8) +} + 3c28: 07e8 br 0x3bf8 // 3bf8 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 3c2a: 3842 cmpnei r0, 2 + 3c2c: 0be6 bt 0x3bf8 // 3bf8 + 3c2e: 3300 movi r3, 0 + 3c30: 2b11 subi r3, 18 + 3c32: 60c8 addu r3, r2 + 3c34: 3b01 cmphsi r3, 2 + 3c36: 0be1 bt 0x3bf8 // 3bf8 + 3c38: 1065 lrw r3, 0x20000048 // 3c4c + if(Selete_EXI_x==18) + 3c3a: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 3c3c: 9360 ld.w r3, (r3, 0x0) + 3c3e: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 3c40: 0803 bt 0x3c46 // 3c46 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 3c42: 4128 lsli r1, r1, 8 + 3c44: 07f0 br 0x3c24 // 3c24 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 3c46: 412c lsli r1, r1, 12 + 3c48: 07ee br 0x3c24 // 3c24 + 3c4a: 0000 bkpt + 3c4c: 20000048 .long 0x20000048 + 3c50: fffff0ff .long 0xfffff0ff + 3c54: ffff0fff .long 0xffff0fff + 3c58: fff10000 .long 0xfff10000 + 3c5c: ff100000 .long 0xff100000 + 3c60: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00003c64 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 3c64: 14d0 push r15 + switch (EXI_IO) + 3c66: 380f cmphsi r0, 16 + 3c68: 0812 bt 0x3c8c // 3c8c + 3c6a: 117d lrw r3, 0x20000050 // 3d5c + 3c6c: e3ffe848 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3c70: 1d150f08 .long 0x1d150f08 + 3c74: 39322b24 .long 0x39322b24 + 3c78: 544c463f .long 0x544c463f + 3c7c: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 3c80: 9340 ld.w r2, (r3, 0x0) + 3c82: 9260 ld.w r3, (r2, 0x0) + 3c84: 310f movi r1, 15 + 3c86: 68c5 andn r3, r1 + 3c88: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 3c8a: b260 st.w r3, (r2, 0x0) + 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; + } +} + 3c8c: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 3c8e: 9340 ld.w r2, (r3, 0x0) + 3c90: 9260 ld.w r3, (r2, 0x0) + 3c92: 31f0 movi r1, 240 + 3c94: 68c5 andn r3, r1 + 3c96: 3ba4 bseti r3, 4 + 3c98: 07f9 br 0x3c8a // 3c8a + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 3c9a: 9320 ld.w r1, (r3, 0x0) + 3c9c: 32f0 movi r2, 240 + 3c9e: 9160 ld.w r3, (r1, 0x0) + 3ca0: 4244 lsli r2, r2, 4 + 3ca2: 68c9 andn r3, r2 + 3ca4: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 3ca6: b160 st.w r3, (r1, 0x0) + 3ca8: 07f2 br 0x3c8c // 3c8c + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 3caa: 9320 ld.w r1, (r3, 0x0) + 3cac: 32f0 movi r2, 240 + 3cae: 9160 ld.w r3, (r1, 0x0) + 3cb0: 4248 lsli r2, r2, 8 + 3cb2: 68c9 andn r3, r2 + 3cb4: 3bac bseti r3, 12 + 3cb6: 07f8 br 0x3ca6 // 3ca6 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 3cb8: 9320 ld.w r1, (r3, 0x0) + 3cba: 32f0 movi r2, 240 + 3cbc: 9160 ld.w r3, (r1, 0x0) + 3cbe: 424c lsli r2, r2, 12 + 3cc0: 68c9 andn r3, r2 + 3cc2: 3bb0 bseti r3, 16 + 3cc4: 07f1 br 0x3ca6 // 3ca6 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 3cc6: 9320 ld.w r1, (r3, 0x0) + 3cc8: 32f0 movi r2, 240 + 3cca: 9160 ld.w r3, (r1, 0x0) + 3ccc: 4250 lsli r2, r2, 16 + 3cce: 68c9 andn r3, r2 + 3cd0: 3bb4 bseti r3, 20 + 3cd2: 07ea br 0x3ca6 // 3ca6 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 3cd4: 9320 ld.w r1, (r3, 0x0) + 3cd6: 32f0 movi r2, 240 + 3cd8: 9160 ld.w r3, (r1, 0x0) + 3cda: 4254 lsli r2, r2, 20 + 3cdc: 68c9 andn r3, r2 + 3cde: 3bb8 bseti r3, 24 + 3ce0: 07e3 br 0x3ca6 // 3ca6 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 3ce2: 9340 ld.w r2, (r3, 0x0) + 3ce4: 9260 ld.w r3, (r2, 0x0) + 3ce6: 4364 lsli r3, r3, 4 + 3ce8: 4b64 lsri r3, r3, 4 + 3cea: 3bbc bseti r3, 28 + 3cec: 07cf br 0x3c8a // 3c8a + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 3cee: 9340 ld.w r2, (r3, 0x0) + 3cf0: 9261 ld.w r3, (r2, 0x4) + 3cf2: 310f movi r1, 15 + 3cf4: 68c5 andn r3, r1 + 3cf6: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 3cf8: b261 st.w r3, (r2, 0x4) +} + 3cfa: 07c9 br 0x3c8c // 3c8c + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 3cfc: 9340 ld.w r2, (r3, 0x0) + 3cfe: 9261 ld.w r3, (r2, 0x4) + 3d00: 31f0 movi r1, 240 + 3d02: 68c5 andn r3, r1 + 3d04: 3ba4 bseti r3, 4 + 3d06: 07f9 br 0x3cf8 // 3cf8 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 3d08: 9320 ld.w r1, (r3, 0x0) + 3d0a: 32f0 movi r2, 240 + 3d0c: 9161 ld.w r3, (r1, 0x4) + 3d0e: 4244 lsli r2, r2, 4 + 3d10: 68c9 andn r3, r2 + 3d12: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 3d14: b161 st.w r3, (r1, 0x4) + 3d16: 07bb br 0x3c8c // 3c8c + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 3d18: 9320 ld.w r1, (r3, 0x0) + 3d1a: 32f0 movi r2, 240 + 3d1c: 9161 ld.w r3, (r1, 0x4) + 3d1e: 4248 lsli r2, r2, 8 + 3d20: 68c9 andn r3, r2 + 3d22: 3bac bseti r3, 12 + 3d24: 07f8 br 0x3d14 // 3d14 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 3d26: 9320 ld.w r1, (r3, 0x0) + 3d28: 32f0 movi r2, 240 + 3d2a: 9161 ld.w r3, (r1, 0x4) + 3d2c: 424c lsli r2, r2, 12 + 3d2e: 68c9 andn r3, r2 + 3d30: 3bb0 bseti r3, 16 + 3d32: 07f1 br 0x3d14 // 3d14 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 3d34: 9320 ld.w r1, (r3, 0x0) + 3d36: 32f0 movi r2, 240 + 3d38: 9161 ld.w r3, (r1, 0x4) + 3d3a: 4250 lsli r2, r2, 16 + 3d3c: 68c9 andn r3, r2 + 3d3e: 3bb4 bseti r3, 20 + 3d40: 07ea br 0x3d14 // 3d14 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 3d42: 9320 ld.w r1, (r3, 0x0) + 3d44: 32f0 movi r2, 240 + 3d46: 9161 ld.w r3, (r1, 0x4) + 3d48: 4254 lsli r2, r2, 20 + 3d4a: 68c9 andn r3, r2 + 3d4c: 3bb8 bseti r3, 24 + 3d4e: 07e3 br 0x3d14 // 3d14 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 3d50: 9340 ld.w r2, (r3, 0x0) + 3d52: 9261 ld.w r3, (r2, 0x4) + 3d54: 4364 lsli r3, r3, 4 + 3d56: 4b64 lsri r3, r3, 4 + 3d58: 3bbc bseti r3, 28 + 3d5a: 07cf br 0x3cf8 // 3cf8 + 3d5c: 20000050 .long 0x20000050 + +Disassembly of section .text.GPIO_Write_High: + +00003d60 : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 3d70: 9045 ld.w r2, (r0, 0x14) + 3d72: 3301 movi r3, 1 + 3d74: 7085 lsr r2, r1 + 3d76: 688c and r2, r3 + { + if (dat==1) + 3d78: 3a40 cmpnei r2, 0 + 3d7a: 70c4 lsl r3, r1 + 3d7c: 0c03 bf 0x3d82 // 3d82 + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00003d86 : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 3d98: 1064 lrw r3, 0x20000018 // 3da8 + 3d9a: 9340 ld.w r2, (r3, 0x0) + 3d9c: 9261 ld.w r3, (r2, 0x4) + 3d9e: 3bac bseti r3, 12 + 3da0: 3bae bseti r3, 14 + 3da2: b261 st.w r3, (r2, 0x4) +} + 3da4: 783c jmp r15 + 3da6: 0000 bkpt + 3da8: 20000018 .long 0x20000018 + +Disassembly of section .text.WWDT_CNT_Load: + +00003dac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 3dac: 1063 lrw r3, 0x20000014 // 3db8 + 3dae: 9360 ld.w r3, (r3, 0x0) + 3db0: 9340 ld.w r2, (r3, 0x0) + 3db2: 6c08 or r0, r2 + 3db4: b300 st.w r0, (r3, 0x0) +} + 3db6: 783c jmp r15 + 3db8: 20000014 .long 0x20000014 + +Disassembly of section .text.BT_DeInit: + +00003dbc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 3dbc: 3300 movi r3, 0 + 3dbe: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 3dc0: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 3dc2: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 3dc4: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 3dc6: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 3dc8: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 3dca: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 3dcc: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 3dce: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 3dd0: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 3dd2: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 3dd4: b06d st.w r3, (r0, 0x34) +} + 3dd6: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00003dd8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 3dd8: 9060 ld.w r3, (r0, 0x0) + 3dda: 3ba0 bseti r3, 0 + 3ddc: b060 st.w r3, (r0, 0x0) +} + 3dde: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00003de0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 3de0: 9060 ld.w r3, (r0, 0x0) + 3de2: 3bac bseti r3, 12 + 3de4: 3bae bseti r3, 14 + 3de6: b060 st.w r3, (r0, 0x0) +} + 3de8: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00003dea : +//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) +{ + 3dea: 14c3 push r4-r6 + 3dec: 98a4 ld.w r5, (r14, 0x10) + 3dee: 6d97 mov r6, r5 + 3df0: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 3df2: 6d18 or r4, r6 + 3df4: 6cd0 or r3, r4 + 3df6: 90a1 ld.w r5, (r0, 0x4) + 3df8: 6c4c or r1, r3 + 3dfa: 6c54 or r1, r5 + 3dfc: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 3dfe: b042 st.w r2, (r0, 0x8) +} + 3e00: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +00003e02 : +//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) +{ + 3e02: 14c4 push r4-r7 + 3e04: 1421 subi r14, r14, 4 + 3e06: 9885 ld.w r4, (r14, 0x14) + 3e08: 6dd3 mov r7, r4 + 3e0a: 9886 ld.w r4, (r14, 0x18) + 3e0c: b880 st.w r4, (r14, 0x0) + 3e0e: 9887 ld.w r4, (r14, 0x1c) + 3e10: 6d93 mov r6, r4 + 3e12: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 3e14: 6d58 or r5, r6 + 3e16: 98c0 ld.w r6, (r14, 0x0) + 3e18: 6d58 or r5, r6 + 3e1a: 6d5c or r5, r7 + 3e1c: 6cd4 or r3, r5 + 3e1e: 6c8c or r2, r3 + 3e20: 9081 ld.w r4, (r0, 0x4) + 3e22: 6c48 or r1, r2 + 3e24: 6d04 or r4, r1 + 3e26: 6d9f mov r6, r7 + 3e28: b081 st.w r4, (r0, 0x4) +} + 3e2a: 1401 addi r14, r14, 4 + 3e2c: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00003e2e : +//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; + 3e2e: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 3e30: b044 st.w r2, (r0, 0x10) +} + 3e32: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00003e34 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 3e34: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 3e36: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 3e38: 0c04 bf 0x3e40 // 3e40 + BTx->IMCR |= BT_IMSCR_X; + 3e3a: 6c8c or r2, r3 + 3e3c: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 3e3e: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 3e40: 68c9 andn r3, r2 + 3e42: b06b st.w r3, (r0, 0x2c) +} + 3e44: 07fd br 0x3e3e // 3e3e + +Disassembly of section .text.BT1_INT_ENABLE: + +00003e48 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 3e48: 3380 movi r3, 128 + 3e4a: 4376 lsli r3, r3, 22 + 3e4c: 1042 lrw r2, 0xe000e100 // 3e54 + 3e4e: b260 st.w r3, (r2, 0x0) +} + 3e50: 783c jmp r15 + 3e52: 0000 bkpt + 3e54: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00003e58 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 3e58: 1065 lrw r3, 0x20000044 // 3e6c + 3e5a: 3200 movi r2, 0 + 3e5c: 9360 ld.w r3, (r3, 0x0) + 3e5e: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 3e60: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 3e62: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 3e64: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 3e66: b344 st.w r2, (r3, 0x10) +} + 3e68: 783c jmp r15 + 3e6a: 0000 bkpt + 3e6c: 20000044 .long 0x20000044 + +Disassembly of section .text.UART1_DeInit: + +00003e70 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 3e70: 1065 lrw r3, 0x20000040 // 3e84 + 3e72: 3200 movi r2, 0 + 3e74: 9360 ld.w r3, (r3, 0x0) + 3e76: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 3e78: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 3e7a: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 3e7c: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 3e7e: b344 st.w r2, (r3, 0x10) +} + 3e80: 783c jmp r15 + 3e82: 0000 bkpt + 3e84: 20000040 .long 0x20000040 + +Disassembly of section .text.UART2_DeInit: + +00003e88 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 3e88: 1065 lrw r3, 0x2000003c // 3e9c + 3e8a: 3200 movi r2, 0 + 3e8c: 9360 ld.w r3, (r3, 0x0) + 3e8e: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 3e90: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 3e92: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 3e94: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 3e96: b344 st.w r2, (r3, 0x10) +} + 3e98: 783c jmp r15 + 3e9a: 0000 bkpt + 3e9c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART0_Int_Enable: + +00003ea0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 3ea0: 1065 lrw r3, 0x20000044 // 3eb4 + 3ea2: 320f movi r2, 15 + 3ea4: 9360 ld.w r3, (r3, 0x0) + 3ea6: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 3ea8: 3380 movi r3, 128 + 3eaa: 4366 lsli r3, r3, 6 + 3eac: 1043 lrw r2, 0xe000e100 // 3eb8 + 3eae: b260 st.w r3, (r2, 0x0) +} + 3eb0: 783c jmp r15 + 3eb2: 0000 bkpt + 3eb4: 20000044 .long 0x20000044 + 3eb8: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART1_Int_Enable: + +00003ebc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 3ebc: 1065 lrw r3, 0x20000040 // 3ed0 + 3ebe: 320f movi r2, 15 + 3ec0: 9360 ld.w r3, (r3, 0x0) + 3ec2: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 3ec4: 3380 movi r3, 128 + 3ec6: 4367 lsli r3, r3, 7 + 3ec8: 1043 lrw r2, 0xe000e100 // 3ed4 + 3eca: b260 st.w r3, (r2, 0x0) +} + 3ecc: 783c jmp r15 + 3ece: 0000 bkpt + 3ed0: 20000040 .long 0x20000040 + 3ed4: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00003ed8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 3ed8: 1065 lrw r3, 0x2000003c // 3eec + 3eda: 320f movi r2, 15 + 3edc: 9360 ld.w r3, (r3, 0x0) + 3ede: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 3ee0: 3380 movi r3, 128 + 3ee2: 4368 lsli r3, r3, 8 + 3ee4: 1043 lrw r2, 0xe000e100 // 3ef0 + 3ee6: b260 st.w r3, (r2, 0x0) +} + 3ee8: 783c jmp r15 + 3eea: 0000 bkpt + 3eec: 2000003c .long 0x2000003c + 3ef0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00003ef4 : +//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) + 3ef4: 3840 cmpnei r0, 0 + 3ef6: 0821 bt 0x3f38 // 3f38 + { + if(UART_IO_G==0) + 3ef8: 3940 cmpnei r1, 0 + 3efa: 080a bt 0x3f0e // 3f0e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 3efc: 1177 lrw r3, 0x20000050 // 3fd8 + 3efe: 31ff movi r1, 255 + 3f00: 9340 ld.w r2, (r3, 0x0) + 3f02: 9260 ld.w r3, (r2, 0x0) + 3f04: 68c5 andn r3, r1 + 3f06: 3ba2 bseti r3, 2 + 3f08: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 3f0a: b260 st.w r3, (r2, 0x0) + 3f0c: 0415 br 0x3f36 // 3f36 + else if(UART_IO_G==1) + 3f0e: 3941 cmpnei r1, 1 + 3f10: 0813 bt 0x3f36 // 3f36 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 3f12: 1172 lrw r3, 0x20000050 // 3fd8 + 3f14: 31f0 movi r1, 240 + 3f16: 9340 ld.w r2, (r3, 0x0) + 3f18: 9260 ld.w r3, (r2, 0x0) + 3f1a: 4130 lsli r1, r1, 16 + 3f1c: 68c5 andn r3, r1 + 3f1e: 31e0 movi r1, 224 + 3f20: 412f lsli r1, r1, 15 + 3f22: 6cc4 or r3, r1 + 3f24: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 3f26: 31f0 movi r1, 240 + 3f28: 9261 ld.w r3, (r2, 0x4) + 3f2a: 412c lsli r1, r1, 12 + 3f2c: 68c5 andn r3, r1 + 3f2e: 31e0 movi r1, 224 + 3f30: 412b lsli r1, r1, 11 + 3f32: 6cc4 or r3, r1 + 3f34: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 3f36: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 3f38: 3841 cmpnei r0, 1 + 3f3a: 082d bt 0x3f94 // 3f94 + if(UART_IO_G==0) + 3f3c: 3940 cmpnei r1, 0 + 3f3e: 0814 bt 0x3f66 // 3f66 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 3f40: 1167 lrw r3, 0x2000004c // 3fdc + 3f42: 310f movi r1, 15 + 3f44: 9340 ld.w r2, (r3, 0x0) + 3f46: 9260 ld.w r3, (r2, 0x0) + 3f48: 68c5 andn r3, r1 + 3f4a: 3107 movi r1, 7 + 3f4c: 6cc4 or r3, r1 + 3f4e: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 3f50: 32f0 movi r2, 240 + 3f52: 1162 lrw r3, 0x20000050 // 3fd8 + 3f54: 4250 lsli r2, r2, 16 + 3f56: 9320 ld.w r1, (r3, 0x0) + 3f58: 9161 ld.w r3, (r1, 0x4) + 3f5a: 68c9 andn r3, r2 + 3f5c: 32e0 movi r2, 224 + 3f5e: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 3f60: 6cc8 or r3, r2 + 3f62: b161 st.w r3, (r1, 0x4) + 3f64: 07e9 br 0x3f36 // 3f36 + else if(UART_IO_G==1) + 3f66: 3941 cmpnei r1, 1 + 3f68: 080c bt 0x3f80 // 3f80 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 3f6a: 107c lrw r3, 0x20000050 // 3fd8 + 3f6c: 32ff movi r2, 255 + 3f6e: 9320 ld.w r1, (r3, 0x0) + 3f70: 424c lsli r2, r2, 12 + 3f72: 9160 ld.w r3, (r1, 0x0) + 3f74: 68c9 andn r3, r2 + 3f76: 32ee movi r2, 238 + 3f78: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 3f7a: 6cc8 or r3, r2 + 3f7c: b160 st.w r3, (r1, 0x0) +} + 3f7e: 07dc br 0x3f36 // 3f36 + else if(UART_IO_G==2) + 3f80: 3942 cmpnei r1, 2 + 3f82: 0bda bt 0x3f36 // 3f36 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 3f84: 1075 lrw r3, 0x20000050 // 3fd8 + 3f86: 32ee movi r2, 238 + 3f88: 9320 ld.w r1, (r3, 0x0) + 3f8a: 9161 ld.w r3, (r1, 0x4) + 3f8c: 4368 lsli r3, r3, 8 + 3f8e: 4b68 lsri r3, r3, 8 + 3f90: 4257 lsli r2, r2, 23 + 3f92: 07e7 br 0x3f60 // 3f60 + if (IO_UART_NUM==IO_UART2) + 3f94: 3842 cmpnei r0, 2 + 3f96: 0bd0 bt 0x3f36 // 3f36 + if(UART_IO_G==0) + 3f98: 3940 cmpnei r1, 0 + 3f9a: 0809 bt 0x3fac // 3fac + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 3f9c: 106f lrw r3, 0x20000050 // 3fd8 + 3f9e: 31ff movi r1, 255 + 3fa0: 9340 ld.w r2, (r3, 0x0) + 3fa2: 9260 ld.w r3, (r2, 0x0) + 3fa4: 68c5 andn r3, r1 + 3fa6: 3177 movi r1, 119 + 3fa8: 6cc4 or r3, r1 + 3faa: 07b0 br 0x3f0a // 3f0a + else if(UART_IO_G==1) + 3fac: 3941 cmpnei r1, 1 + 3fae: 0809 bt 0x3fc0 // 3fc0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 3fb0: 106a lrw r3, 0x20000050 // 3fd8 + 3fb2: 32ee movi r2, 238 + 3fb4: 9320 ld.w r1, (r3, 0x0) + 3fb6: 9160 ld.w r3, (r1, 0x0) + 3fb8: 4368 lsli r3, r3, 8 + 3fba: 4b68 lsri r3, r3, 8 + 3fbc: 4257 lsli r2, r2, 23 + 3fbe: 07de br 0x3f7a // 3f7a + else if(UART_IO_G==2) + 3fc0: 3942 cmpnei r1, 2 + 3fc2: 0bba bt 0x3f36 // 3f36 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 3fc4: 1066 lrw r3, 0x2000004c // 3fdc + 3fc6: 32ff movi r2, 255 + 3fc8: 9320 ld.w r1, (r3, 0x0) + 3fca: 4250 lsli r2, r2, 16 + 3fcc: 9160 ld.w r3, (r1, 0x0) + 3fce: 68c9 andn r3, r2 + 3fd0: 32cc movi r2, 204 + 3fd2: 424f lsli r2, r2, 15 + 3fd4: 07d3 br 0x3f7a // 3f7a + 3fd6: 0000 bkpt + 3fd8: 20000050 .long 0x20000050 + 3fdc: 2000004c .long 0x2000004c + +Disassembly of section .text.UARTInitRxTxIntEn: + +00003fe0 : +//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); + 3fe0: 1063 lrw r3, 0x8000f // 3fec + 3fe2: 6c8c or r2, r3 + 3fe4: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 3fe6: b024 st.w r1, (r0, 0x10) +} + 3fe8: 783c jmp r15 + 3fea: 0000 bkpt + 3fec: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00003ff0 : +//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) +{ + 3ff0: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 3ff2: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 3ff4: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 3ff6: 5b85 subu r4, r3, r1 + 3ff8: 6490 cmphs r4, r2 + 3ffa: 0c02 bf 0x3ffe // 3ffe + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 3ffc: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 3ffe: 8380 ld.b r4, (r3, 0x0) + 4000: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 4002: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 4004: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 4006: 3c40 cmpnei r4, 0 + 4008: 0bfd bt 0x4002 // 4002 + 400a: 2300 addi r3, 1 + 400c: 07f5 br 0x3ff6 // 3ff6 + +Disassembly of section .text.EPT_Stop: + +00004010 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 4010: 1068 lrw r3, 0x20000024 // 4030 + 4012: 3280 movi r2, 128 + 4014: 9360 ld.w r3, (r3, 0x0) + 4016: 608c addu r2, r3 + 4018: 1027 lrw r1, 0xa55ac73a // 4034 + 401a: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 401c: 9341 ld.w r2, (r3, 0x4) + 401e: 31fe movi r1, 254 + 4020: 6884 and r2, r1 + 4022: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 4024: 3101 movi r1, 1 + 4026: 9341 ld.w r2, (r3, 0x4) + 4028: 6884 and r2, r1 + 402a: 3a40 cmpnei r2, 0 + 402c: 0bfd bt 0x4026 // 4026 +} + 402e: 783c jmp r15 + 4030: 20000024 .long 0x20000024 + 4034: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00004038 : + 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) +{ + 4038: 14c4 push r4-r7 + 403a: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 403c: 1165 lrw r3, 0x20000064 // 40d0 + 403e: 1186 lrw r4, 0x5a5a5a5a // 40d4 + 4040: 9360 ld.w r3, (r3, 0x0) + 4042: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 4044: 3407 movi r4, 7 + 4046: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 4048: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 404a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 404c: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 404e: 9384 ld.w r4, (r3, 0x10) + 4050: 3c40 cmpnei r4, 0 + 4052: 0bfe bt 0x404e // 404e + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 4054: 2102 addi r1, 3 + 4056: 4922 lsri r1, r1, 2 + 4058: 4122 lsli r1, r1, 2 + 405a: 6048 addu r1, r2 + 405c: b820 st.w r1, (r14, 0x0) + 405e: 5829 subu r1, r0, r2 + 4060: b821 st.w r1, (r14, 0x4) + 4062: 9820 ld.w r1, (r14, 0x0) + 4064: 644a cmpne r2, r1 + 4066: 0826 bt 0x40b2 // 40b2 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 4068: 3106 movi r1, 6 + SetUserKey; + 406a: 105b lrw r2, 0x5a5a5a5a // 40d4 + 406c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 406e: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 4070: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 4072: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 4074: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 4076: 9324 ld.w r1, (r3, 0x10) + 4078: 3940 cmpnei r1, 0 + 407a: 0bfe bt 0x4076 // 4076 + //Perform pre-programming 4 + SetUserKey; + 407c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 407e: 3201 movi r2, 1 + 4080: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 4082: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 4084: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 4086: 934a ld.w r2, (r3, 0x28) + 4088: 3a44 cmpnei r2, 4 + 408a: 0bfe bt 0x4086 // 4086 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 408c: 3102 movi r1, 2 + SetUserKey; + 408e: 1052 lrw r2, 0x5a5a5a5a // 40d4 + 4090: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 4092: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 4094: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 4096: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 4098: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 409a: 932a ld.w r1, (r3, 0x28) + 409c: 3941 cmpnei r1, 1 + 409e: 0bfe bt 0x409a // 409a + //Write page cache data to flash memory 6 + SetUserKey; + 40a0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 40a2: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 40a4: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 40a6: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 40a8: 934a ld.w r2, (r3, 0x28) + 40aa: 3a42 cmpnei r2, 2 + 40ac: 0bfe bt 0x40a8 // 40a8 +} + 40ae: 1402 addi r14, r14, 8 + 40b0: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 40b2: 82e0 ld.b r7, (r2, 0x0) + 40b4: 8281 ld.b r4, (r2, 0x1) + 40b6: 4488 lsli r4, r4, 8 + 40b8: 8222 ld.b r1, (r2, 0x2) + 40ba: 611c addu r4, r7 + 40bc: 82a3 ld.b r5, (r2, 0x3) + 40be: 4130 lsli r1, r1, 16 + 40c0: 98c1 ld.w r6, (r14, 0x4) + 40c2: 6050 addu r1, r4 + 40c4: 45b8 lsli r5, r5, 24 + 40c6: 6188 addu r6, r2 + 40c8: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 40ca: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 40cc: 2203 addi r2, 4 + 40ce: 07ca br 0x4062 // 4062 + 40d0: 20000064 .long 0x20000064 + 40d4: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +000040d8 : +//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) +{ + 40d8: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 40e4: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 40e6: 3b40 cmpnei r3, 0 + 40e8: 0c06 bf 0x40f4 // 40f4 + 40ea: 6d0f mov r4, r3 + 40ec: 6914 and r4, r5 + 40ee: 3c40 cmpnei r4, 0 + 40f0: 0802 bt 0x40f4 // 40f4 + RdStartAdd +=4; + 40f2: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 40f4: 6d0f mov r4, r3 + 40f6: 6914 and r4, r5 + 40f8: 6100 addu r4, r0 + 40fa: 8480 ld.b r4, (r4, 0x0) + 40fc: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +00004104
: +U8_T data = 0xAA; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 4104: 14d2 push r4-r5, r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 4106: e00000e1 bsr 0x42c8 // 42c8 + + Dbg_Println(DBG_OPT_BTDebug_STATUS,"APP Run Start! 111 %s",Project_Boot_Support); + 410a: 1141 lrw r2, 0x200000a4 // 418c + 410c: 1121 lrw r1, 0x7a54 // 4190 + 410e: 3001 movi r0, 1 + 4110: e0000884 bsr 0x5218 // 5218 + Dbg_BT_Println(DBG_OPT_BTDebug_STATUS,"MCU Start!"); + 4114: 1120 lrw r1, 0x7a6a // 4194 + 4116: 3001 movi r0, 1 + 4118: e000098c bsr 0x5430 // 5430 +// BLV_EngDetect_Tack(); + + BUS485Send_Task(); + + + if(SysTick_1ms - YYW_tick >= 3000) + 411c: 10bf lrw r5, 0x200000d4 // 4198 + 411e: 1180 lrw r4, 0x200000c4 // 419c + SYSCON_IWDCNT_Reload(); //IWDT Clear + 4120: e3fffba8 bsr 0x3870 // 3870 + BUS485Send_Task(); + 4124: e000090e bsr 0x5340 // 5340 + if(SysTick_1ms - YYW_tick >= 3000) + 4128: 9440 ld.w r2, (r4, 0x0) + 412a: 9560 ld.w r3, (r5, 0x0) + 412c: 60ca subu r3, r2 + 412e: 105d lrw r2, 0xbb7 // 41a0 + 4130: 64c8 cmphs r2, r3 + 4132: 0bf7 bt 0x4120 // 4120 + { + YYW_tick = SysTick_1ms; + 4134: 9560 ld.w r3, (r5, 0x0) + 4136: b460 st.w r3, (r4, 0x0) + Ret = 0x00; + 4138: 3300 movi r3, 0 + 413a: a464 st.b r3, (r4, 0x4) + + if(YYW_Flag == 0x00) + 413c: 8465 ld.b r3, (r4, 0x5) + 413e: 3b40 cmpnei r3, 0 + 4140: 0814 bt 0x4168 // 4168 + { + YYW_Flag = 0x01; + 4142: 3301 movi r3, 1 + 4144: a465 st.b r3, (r4, 0x5) + + Ret = Fram_I2C_WriteByte(addr,data); + 4146: 1078 lrw r3, 0x20000000 // 41a4 + 4148: 8320 ld.b r1, (r3, 0x0) + 414a: 8b01 ld.h r0, (r3, 0x2) + 414c: e00015d2 bsr 0x6cf0 // 6cf0 + + if(Ret == 0x01) + 4150: 3841 cmpnei r0, 1 + Ret = Fram_I2C_WriteByte(addr,data); + 4152: a404 st.b r0, (r4, 0x4) + if(Ret == 0x01) + 4154: 0805 bt 0x415e // 415e + { + Dbg_Println(DBG_OPT_BTDebug_STATUS, "IIC写入失败"); + 4156: 1035 lrw r1, 0x7a75 // 41a8 + } + else if(Ret == 0x02) + { + Dbg_Println(DBG_OPT_BTDebug_STATUS, "IIC写入成功"); + 4158: e0000860 bsr 0x5218 // 5218 + 415c: 07e2 br 0x4120 // 4120 + else if(Ret == 0x02) + 415e: 3842 cmpnei r0, 2 + 4160: 0be0 bt 0x4120 // 4120 + Dbg_Println(DBG_OPT_BTDebug_STATUS, "IIC写入成功"); + 4162: 1033 lrw r1, 0x7a85 // 41ac + 4164: 3001 movi r0, 1 + 4166: 07f9 br 0x4158 // 4158 + } + } + else if(YYW_Flag == 0x01) + 4168: 3b41 cmpnei r3, 1 + 416a: 0bdb bt 0x4120 // 4120 + { + YYW_Flag = 0x02; + 416c: 3302 movi r3, 2 + 416e: a465 st.b r3, (r4, 0x5) + + Ret = Fram_I2C_ReadByte(addr); + 4170: 106d lrw r3, 0x20000000 // 41a4 + 4172: 8b01 ld.h r0, (r3, 0x2) + 4174: e00015e6 bsr 0x6d40 // 6d40 + + if(Ret != 0x00) + 4178: 3840 cmpnei r0, 0 + Ret = Fram_I2C_ReadByte(addr); + 417a: 6c83 mov r2, r0 + 417c: a404 st.b r0, (r4, 0x4) + if(Ret != 0x00) + 417e: 0fd1 bf 0x4120 // 4120 + { + Dbg_Println(DBG_OPT_BTDebug_STATUS, "IIC读取到数据 :%02",Ret); + 4180: 102c lrw r1, 0x7a95 // 41b0 + 4182: 3001 movi r0, 1 + 4184: e000084a bsr 0x5218 // 5218 + 4188: 07cc br 0x4120 // 4120 + 418a: 0000 bkpt + 418c: 200000a4 .long 0x200000a4 + 4190: 00007a54 .long 0x00007a54 + 4194: 00007a6a .long 0x00007a6a + 4198: 200000d4 .long 0x200000d4 + 419c: 200000c4 .long 0x200000c4 + 41a0: 00000bb7 .long 0x00000bb7 + 41a4: 20000000 .long 0x20000000 + 41a8: 00007a75 .long 0x00007a75 + 41ac: 00007a85 .long 0x00007a85 + 41b0: 00007a95 .long 0x00007a95 + +Disassembly of section .text.delay_nms: + +000041b4 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 41b4: 14d0 push r15 + 41b6: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 41b8: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 41ba: 3300 movi r3, 0 + j = 50* t; + 41bc: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 41be: b862 st.w r3, (r14, 0x8) + j = 50* t; + 41c0: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 41c2: b860 st.w r3, (r14, 0x0) + 41c4: 9840 ld.w r2, (r14, 0x0) + 41c6: 9861 ld.w r3, (r14, 0x4) + 41c8: 64c8 cmphs r2, r3 + 41ca: 0c03 bf 0x41d0 // 41d0 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 41cc: 1403 addi r14, r14, 12 + 41ce: 1490 pop r15 + k++; + 41d0: 9862 ld.w r3, (r14, 0x8) + 41d2: 2300 addi r3, 1 + 41d4: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 41d6: e3fffb4d bsr 0x3870 // 3870 + for ( i = 0; i < j; i++ ) + 41da: 9860 ld.w r3, (r14, 0x0) + 41dc: 2300 addi r3, 1 + 41de: 07f2 br 0x41c2 // 41c2 + +Disassembly of section .text.delay_nus: + +000041e0 : +void delay_nus(unsigned int t) +{ + 41e0: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 41e2: 3300 movi r3, 0 + 41e4: b862 st.w r3, (r14, 0x8) + j = 1* t; + 41e6: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 41e8: b860 st.w r3, (r14, 0x0) + 41ea: 9840 ld.w r2, (r14, 0x0) + 41ec: 9861 ld.w r3, (r14, 0x4) + 41ee: 64c8 cmphs r2, r3 + 41f0: 0c03 bf 0x41f6 // 41f6 + { + k++; + } +} + 41f2: 1403 addi r14, r14, 12 + 41f4: 783c jmp r15 + k++; + 41f6: 9862 ld.w r3, (r14, 0x8) + 41f8: 2300 addi r3, 1 + 41fa: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 41fc: 9860 ld.w r3, (r14, 0x0) + 41fe: 2300 addi r3, 1 + 4200: 07f4 br 0x41e8 // 41e8 + +Disassembly of section .text.BT_CONFIG: + +00004204 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 4204: 14d2 push r4-r5, r15 + 4206: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 4208: 1095 lrw r4, 0x2000000c // 425c + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 420a: 3500 movi r5, 0 + BT_DeInit(BT1); + 420c: 9400 ld.w r0, (r4, 0x0) + 420e: e3fffdd7 bsr 0x3dbc // 3dbc + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 4212: 9400 ld.w r0, (r4, 0x0) + 4214: b8a1 st.w r5, (r14, 0x4) + 4216: b8a0 st.w r5, (r14, 0x0) + 4218: 3308 movi r3, 8 + 421a: 3200 movi r2, 0 + 421c: 3101 movi r1, 1 + 421e: e3fffde6 bsr 0x3dea // 3dea + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 4222: 3380 movi r3, 128 + 4224: 4363 lsli r3, r3, 3 + 4226: b861 st.w r3, (r14, 0x4) + 4228: 9400 ld.w r0, (r4, 0x0) + 422a: 3300 movi r3, 0 + 422c: b8a3 st.w r5, (r14, 0xc) + 422e: b8a2 st.w r5, (r14, 0x8) + 4230: b8a0 st.w r5, (r14, 0x0) + 4232: 3200 movi r2, 0 + 4234: 3180 movi r1, 128 + 4236: e3fffde6 bsr 0x3e02 // 3e02 + BT_Period_CMP_Write(BT1,4780,1); + 423a: 3201 movi r2, 1 + 423c: 1029 lrw r1, 0x12ac // 4260 + 423e: 9400 ld.w r0, (r4, 0x0) + 4240: e3fffdf7 bsr 0x3e2e // 3e2e + BT_Start(BT1); + 4244: 9400 ld.w r0, (r4, 0x0) + 4246: e3fffdc9 bsr 0x3dd8 // 3dd8 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 424a: 9400 ld.w r0, (r4, 0x0) + 424c: 3202 movi r2, 2 + 424e: 3101 movi r1, 1 + 4250: e3fffdf2 bsr 0x3e34 // 3e34 + BT1_INT_ENABLE(); + 4254: e3fffdfa bsr 0x3e48 // 3e48 + +} + 4258: 1404 addi r14, r14, 16 + 425a: 1492 pop r4-r5, r15 + 425c: 2000000c .long 0x2000000c + 4260: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00004264 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 4264: 14d0 push r15 + 4266: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 4268: e3fffa50 bsr 0x3708 // 3708 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 426c: 3101 movi r1, 1 + 426e: 3001 movi r0, 1 + 4270: e3fffa72 bsr 0x3754 // 3754 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 4274: 3000 movi r0, 0 + 4276: e3fffacb bsr 0x380c // 380c + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 427a: 3180 movi r1, 128 + 427c: 3308 movi r3, 8 + 427e: 3200 movi r2, 0 + 4280: 4121 lsli r1, r1, 1 + 4282: 3002 movi r0, 2 + 4284: e3fffa80 bsr 0x3784 // 3784 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 4288: 3080 movi r0, 128 + 428a: 3118 movi r1, 24 + 428c: 4002 lsli r0, r0, 2 + 428e: e3fffafb bsr 0x3884 // 3884 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 4292: 3001 movi r0, 1 + 4294: e3fffad0 bsr 0x3834 // 3834 + SYSCON_IWDCNT_Reload(); //reload WDT + 4298: e3fffaec bsr 0x3870 // 3870 + IWDT_Int_Enable(); + 429c: e3fffb1e bsr 0x38d8 // 38d8 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 42a0: 3340 movi r3, 64 + 42a2: b860 st.w r3, (r14, 0x0) + 42a4: 31c0 movi r1, 192 + 42a6: 3380 movi r3, 128 + 42a8: 4364 lsli r3, r3, 4 + 42aa: 3200 movi r2, 0 + 42ac: 4123 lsli r1, r1, 3 + 42ae: 3000 movi r0, 0 + 42b0: e3fffaf6 bsr 0x389c // 389c + LVD_Int_Enable(); + 42b4: e3fffb04 bsr 0x38bc // 38bc +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 42b8: e3fffb62 bsr 0x397c // 397c + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 42bc: 3000 movi r0, 0 + 42be: e00018a3 bsr 0x7404 // 7404 + +} + 42c2: 1401 addi r14, r14, 4 + 42c4: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +000042c8 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 42c8: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 42ca: 107b lrw r3, 0x20000060 // 4334 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 42cc: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 42ce: 9340 ld.w r2, (r3, 0x0) + 42d0: 107a lrw r3, 0xfffffff // 4338 + 42d2: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 42d4: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 42d6: 926c ld.w r3, (r2, 0x30) + 42d8: 68c4 and r3, r1 + 42da: 3b40 cmpnei r3, 0 + 42dc: 0ffd bf 0x42d6 // 42d6 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 42de: e3ffffc3 bsr 0x4264 // 4264 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 42e2: e000054f bsr 0x4d80 // 4d80 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 42e6: e3fffb5b bsr 0x399c // 399c + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART0_IRQ,1); + 42ea: 3101 movi r1, 1 + 42ec: 300d movi r0, 13 + 42ee: e3fffb69 bsr 0x39c0 // 39c0 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 42f2: 3101 movi r1, 1 + 42f4: 300e movi r0, 14 + 42f6: e3fffb65 bsr 0x39c0 // 39c0 + Set_INT_Priority(UART2_IRQ,1); + 42fa: 3101 movi r1, 1 + 42fc: 300f movi r0, 15 + 42fe: e3fffb61 bsr 0x39c0 // 39c0 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 4302: e3fffb77 bsr 0x39f0 // 39f0 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 4306: e3ffff7f bsr 0x4204 // 4204 + + UARTx_Init(UART_0,HLW8110_RecvData_Processing); + 430a: 102d lrw r1, 0x6134 // 433c + 430c: 3000 movi r0, 0 + 430e: e000053f bsr 0x4d8c // 4d8c + UARTx_Init(UART_1,HLW_485Recv_Processing); + 4312: 102c lrw r1, 0x6730 // 4340 + 4314: 3001 movi r0, 1 + 4316: e000053b bsr 0x4d8c // 4d8c + UARTx_Init(UART_2,BT_Recv_Processing); + 431a: 102b lrw r1, 0x689c // 4344 + 431c: 3002 movi r0, 2 + 431e: e0000537 bsr 0x4d8c // 4d8c + + DIP_Switch_Init(); + 4322: e00008bf bsr 0x54a0 // 54a0 + + BLV_DetEnergy_Init(); + 4326: e0000d4f bsr 0x5dc4 // 5dc4 + + Bsp_I2C_Fram_Init(); + 432a: e00013b7 bsr 0x6a98 // 6a98 + + Boot_Function_Init(); + 432e: e0001343 bsr 0x69b4 // 69b4 +} + 4332: 1490 pop r15 + 4334: 20000060 .long 0x20000060 + 4338: 0fffffff .long 0x0fffffff + 433c: 00006134 .long 0x00006134 + 4340: 00006730 .long 0x00006730 + 4344: 0000689c .long 0x0000689c + +Disassembly of section .text.SYSCONIntHandler: + +00004348 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 4348: 1460 nie + 434a: 1462 ipush + // ISR content ... + nop; + 434c: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 434e: 117a lrw r3, 0x20000060 // 4434 + 4350: 3280 movi r2, 128 + 4352: 9360 ld.w r3, (r3, 0x0) + 4354: 60c8 addu r3, r2 + 4356: 9323 ld.w r1, (r3, 0xc) + 4358: 3001 movi r0, 1 + 435a: 6840 and r1, r0 + 435c: 3940 cmpnei r1, 0 + 435e: 0c04 bf 0x4366 // 4366 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 4360: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 4362: 1463 ipop + 4364: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 4366: 9323 ld.w r1, (r3, 0xc) + 4368: 3002 movi r0, 2 + 436a: 6840 and r1, r0 + 436c: 3940 cmpnei r1, 0 + 436e: 0bf9 bt 0x4360 // 4360 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 4370: 9323 ld.w r1, (r3, 0xc) + 4372: 3008 movi r0, 8 + 4374: 6840 and r1, r0 + 4376: 3940 cmpnei r1, 0 + 4378: 0bf4 bt 0x4360 // 4360 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 437a: 9323 ld.w r1, (r3, 0xc) + 437c: 3010 movi r0, 16 + 437e: 6840 and r1, r0 + 4380: 3940 cmpnei r1, 0 + 4382: 0bef bt 0x4360 // 4360 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 4384: 9323 ld.w r1, (r3, 0xc) + 4386: 6848 and r1, r2 + 4388: 3940 cmpnei r1, 0 + 438a: 0c03 bf 0x4390 // 4390 + SYSCON->ICR = CMD_ERR_ST; + 438c: b341 st.w r2, (r3, 0x4) +} + 438e: 07ea br 0x4362 // 4362 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 4390: 3280 movi r2, 128 + 4392: 9323 ld.w r1, (r3, 0xc) + 4394: 4241 lsli r2, r2, 1 + 4396: 6848 and r1, r2 + 4398: 3940 cmpnei r1, 0 + 439a: 0bf9 bt 0x438c // 438c + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 439c: 3280 movi r2, 128 + 439e: 9323 ld.w r1, (r3, 0xc) + 43a0: 4242 lsli r2, r2, 2 + 43a2: 6848 and r1, r2 + 43a4: 3940 cmpnei r1, 0 + 43a6: 0bf3 bt 0x438c // 438c + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 43a8: 3280 movi r2, 128 + 43aa: 9323 ld.w r1, (r3, 0xc) + 43ac: 4243 lsli r2, r2, 3 + 43ae: 6848 and r1, r2 + 43b0: 3940 cmpnei r1, 0 + 43b2: 0bed bt 0x438c // 438c + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 43b4: 3280 movi r2, 128 + 43b6: 9323 ld.w r1, (r3, 0xc) + 43b8: 4244 lsli r2, r2, 4 + 43ba: 6848 and r1, r2 + 43bc: 3940 cmpnei r1, 0 + 43be: 0c03 bf 0x43c4 // 43c4 + nop; + 43c0: 6c03 mov r0, r0 + 43c2: 07e5 br 0x438c // 438c + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 43c4: 3280 movi r2, 128 + 43c6: 9323 ld.w r1, (r3, 0xc) + 43c8: 4245 lsli r2, r2, 5 + 43ca: 6848 and r1, r2 + 43cc: 3940 cmpnei r1, 0 + 43ce: 0bdf bt 0x438c // 438c + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 43d0: 3280 movi r2, 128 + 43d2: 9323 ld.w r1, (r3, 0xc) + 43d4: 4246 lsli r2, r2, 6 + 43d6: 6848 and r1, r2 + 43d8: 3940 cmpnei r1, 0 + 43da: 0bd9 bt 0x438c // 438c + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 43dc: 3280 movi r2, 128 + 43de: 9323 ld.w r1, (r3, 0xc) + 43e0: 4247 lsli r2, r2, 7 + 43e2: 6848 and r1, r2 + 43e4: 3940 cmpnei r1, 0 + 43e6: 0bd3 bt 0x438c // 438c + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 43e8: 3280 movi r2, 128 + 43ea: 9323 ld.w r1, (r3, 0xc) + 43ec: 424b lsli r2, r2, 11 + 43ee: 6848 and r1, r2 + 43f0: 3940 cmpnei r1, 0 + 43f2: 0bcd bt 0x438c // 438c + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 43f4: 3280 movi r2, 128 + 43f6: 9323 ld.w r1, (r3, 0xc) + 43f8: 424c lsli r2, r2, 12 + 43fa: 6848 and r1, r2 + 43fc: 3940 cmpnei r1, 0 + 43fe: 0bc7 bt 0x438c // 438c + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 4400: 3280 movi r2, 128 + 4402: 9323 ld.w r1, (r3, 0xc) + 4404: 424d lsli r2, r2, 13 + 4406: 6848 and r1, r2 + 4408: 3940 cmpnei r1, 0 + 440a: 0bc1 bt 0x438c // 438c + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 440c: 3280 movi r2, 128 + 440e: 9323 ld.w r1, (r3, 0xc) + 4410: 424e lsli r2, r2, 14 + 4412: 6848 and r1, r2 + 4414: 3940 cmpnei r1, 0 + 4416: 0bbb bt 0x438c // 438c + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 4418: 3280 movi r2, 128 + 441a: 9323 ld.w r1, (r3, 0xc) + 441c: 424f lsli r2, r2, 15 + 441e: 6848 and r1, r2 + 4420: 3940 cmpnei r1, 0 + 4422: 0bb5 bt 0x438c // 438c + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 4424: 3280 movi r2, 128 + 4426: 9323 ld.w r1, (r3, 0xc) + 4428: 4256 lsli r2, r2, 22 + 442a: 6848 and r1, r2 + 442c: 3940 cmpnei r1, 0 + 442e: 0baf bt 0x438c // 438c + 4430: 0799 br 0x4362 // 4362 + 4432: 0000 bkpt + 4434: 20000060 .long 0x20000060 + +Disassembly of section .text.IFCIntHandler: + +00004438 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 4438: 1460 nie + 443a: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 443c: 1078 lrw r3, 0x20000064 // 449c + 443e: 3101 movi r1, 1 + 4440: 9360 ld.w r3, (r3, 0x0) + 4442: 934b ld.w r2, (r3, 0x2c) + 4444: 6884 and r2, r1 + 4446: 3a40 cmpnei r2, 0 + 4448: 0c04 bf 0x4450 // 4450 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 444a: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 444c: 1463 ipop + 444e: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 4450: 934b ld.w r2, (r3, 0x2c) + 4452: 3102 movi r1, 2 + 4454: 6884 and r2, r1 + 4456: 3a40 cmpnei r2, 0 + 4458: 0bf9 bt 0x444a // 444a + else if(IFC->MISR&PEP_END_INT) + 445a: 934b ld.w r2, (r3, 0x2c) + 445c: 3104 movi r1, 4 + 445e: 6884 and r2, r1 + 4460: 3a40 cmpnei r2, 0 + 4462: 0bf4 bt 0x444a // 444a + else if(IFC->MISR&PROT_ERR_INT) + 4464: 3280 movi r2, 128 + 4466: 932b ld.w r1, (r3, 0x2c) + 4468: 4245 lsli r2, r2, 5 + 446a: 6848 and r1, r2 + 446c: 3940 cmpnei r1, 0 + 446e: 0c03 bf 0x4474 // 4474 + IFC->ICR=OVW_ERR_INT; + 4470: b34c st.w r2, (r3, 0x30) +} + 4472: 07ed br 0x444c // 444c + else if(IFC->MISR&UDEF_ERR_INT) + 4474: 3280 movi r2, 128 + 4476: 932b ld.w r1, (r3, 0x2c) + 4478: 4246 lsli r2, r2, 6 + 447a: 6848 and r1, r2 + 447c: 3940 cmpnei r1, 0 + 447e: 0bf9 bt 0x4470 // 4470 + else if(IFC->MISR&ADDR_ERR_INT) + 4480: 3280 movi r2, 128 + 4482: 932b ld.w r1, (r3, 0x2c) + 4484: 4247 lsli r2, r2, 7 + 4486: 6848 and r1, r2 + 4488: 3940 cmpnei r1, 0 + 448a: 0bf3 bt 0x4470 // 4470 + else if(IFC->MISR&OVW_ERR_INT) + 448c: 3280 movi r2, 128 + 448e: 932b ld.w r1, (r3, 0x2c) + 4490: 4248 lsli r2, r2, 8 + 4492: 6848 and r1, r2 + 4494: 3940 cmpnei r1, 0 + 4496: 0bed bt 0x4470 // 4470 + 4498: 07da br 0x444c // 444c + 449a: 0000 bkpt + 449c: 20000064 .long 0x20000064 + +Disassembly of section .text.ADCIntHandler: + +000044a0 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 44a0: 1460 nie + 44a2: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 44a4: 1078 lrw r3, 0x20000054 // 4504 + 44a6: 3101 movi r1, 1 + 44a8: 9360 ld.w r3, (r3, 0x0) + 44aa: 9348 ld.w r2, (r3, 0x20) + 44ac: 6884 and r2, r1 + 44ae: 3a40 cmpnei r2, 0 + 44b0: 0c04 bf 0x44b8 // 44b8 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 44b2: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 44b4: 1463 ipop + 44b6: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 44b8: 9348 ld.w r2, (r3, 0x20) + 44ba: 3102 movi r1, 2 + 44bc: 6884 and r2, r1 + 44be: 3a40 cmpnei r2, 0 + 44c0: 0bf9 bt 0x44b2 // 44b2 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 44c2: 9348 ld.w r2, (r3, 0x20) + 44c4: 3104 movi r1, 4 + 44c6: 6884 and r2, r1 + 44c8: 3a40 cmpnei r2, 0 + 44ca: 0bf4 bt 0x44b2 // 44b2 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 44cc: 9348 ld.w r2, (r3, 0x20) + 44ce: 3110 movi r1, 16 + 44d0: 6884 and r2, r1 + 44d2: 3a40 cmpnei r2, 0 + 44d4: 0bef bt 0x44b2 // 44b2 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 44d6: 9348 ld.w r2, (r3, 0x20) + 44d8: 3120 movi r1, 32 + 44da: 6884 and r2, r1 + 44dc: 3a40 cmpnei r2, 0 + 44de: 0bea bt 0x44b2 // 44b2 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 44e0: 9348 ld.w r2, (r3, 0x20) + 44e2: 3140 movi r1, 64 + 44e4: 6884 and r2, r1 + 44e6: 3a40 cmpnei r2, 0 + 44e8: 0be5 bt 0x44b2 // 44b2 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 44ea: 9348 ld.w r2, (r3, 0x20) + 44ec: 3180 movi r1, 128 + 44ee: 6884 and r2, r1 + 44f0: 3a40 cmpnei r2, 0 + 44f2: 0be0 bt 0x44b2 // 44b2 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 44f4: 3280 movi r2, 128 + 44f6: 9328 ld.w r1, (r3, 0x20) + 44f8: 4249 lsli r2, r2, 9 + 44fa: 6848 and r1, r2 + 44fc: 3940 cmpnei r1, 0 + 44fe: 0fdb bf 0x44b4 // 44b4 + ADC0->CSR = ADC12_SEQ_END0; + 4500: b347 st.w r2, (r3, 0x1c) +} + 4502: 07d9 br 0x44b4 // 44b4 + 4504: 20000054 .long 0x20000054 + +Disassembly of section .text.EPT0IntHandler: + +00004508 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 4508: 1460 nie + 450a: 1462 ipush + 450c: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 450e: 1387 lrw r4, 0x20000024 // 46a8 + 4510: 3280 movi r2, 128 + 4512: 9460 ld.w r3, (r4, 0x0) + 4514: 60c8 addu r3, r2 + 4516: 9335 ld.w r1, (r3, 0x54) + 4518: 3001 movi r0, 1 + 451a: 6840 and r1, r0 + 451c: 3940 cmpnei r1, 0 + 451e: 0c03 bf 0x4524 // 4524 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 4520: b317 st.w r0, (r3, 0x5c) + 4522: 0424 br 0x456a // 456a + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 4524: 9335 ld.w r1, (r3, 0x54) + 4526: 3002 movi r0, 2 + 4528: 6840 and r1, r0 + 452a: 3940 cmpnei r1, 0 + 452c: 0bfa bt 0x4520 // 4520 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 452e: 9335 ld.w r1, (r3, 0x54) + 4530: 3004 movi r0, 4 + 4532: 6840 and r1, r0 + 4534: 3940 cmpnei r1, 0 + 4536: 0bf5 bt 0x4520 // 4520 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 4538: 9335 ld.w r1, (r3, 0x54) + 453a: 3008 movi r0, 8 + 453c: 6840 and r1, r0 + 453e: 3940 cmpnei r1, 0 + 4540: 0bf0 bt 0x4520 // 4520 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 4542: 9335 ld.w r1, (r3, 0x54) + 4544: 3010 movi r0, 16 + 4546: 6840 and r1, r0 + 4548: 3940 cmpnei r1, 0 + 454a: 0c1f bf 0x4588 // 4588 + EPT0->ICR=EPT_CAP_LD0; + 454c: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 454e: 3200 movi r2, 0 + 4550: 3101 movi r1, 1 + 4552: 3000 movi r0, 0 + 4554: e3fff9d0 bsr 0x38f4 // 38f4 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 4558: 3201 movi r2, 1 + 455a: 3101 movi r1, 1 + 455c: 3001 movi r0, 1 + 455e: e3fff9cb bsr 0x38f4 // 38f4 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 4562: 9460 ld.w r3, (r4, 0x0) + 4564: 934b ld.w r2, (r3, 0x2c) + 4566: 1272 lrw r3, 0x20000200 // 46ac + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 4568: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 456a: 9460 ld.w r3, (r4, 0x0) + 456c: 3280 movi r2, 128 + 456e: 60c8 addu r3, r2 + 4570: 932b ld.w r1, (r3, 0x2c) + 4572: 3001 movi r0, 1 + 4574: 6840 and r1, r0 + 4576: 3940 cmpnei r1, 0 + 4578: 0c61 bf 0x463a // 463a + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 457a: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 457c: d9ee2001 ld.w r15, (r14, 0x4) + 4580: 9880 ld.w r4, (r14, 0x0) + 4582: 1402 addi r14, r14, 8 + 4584: 1463 ipop + 4586: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 4588: 9335 ld.w r1, (r3, 0x54) + 458a: 3020 movi r0, 32 + 458c: 6840 and r1, r0 + 458e: 3940 cmpnei r1, 0 + 4590: 0c10 bf 0x45b0 // 45b0 + EPT0->ICR=EPT_CAP_LD1; + 4592: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 4594: 3200 movi r2, 0 + 4596: 3101 movi r1, 1 + 4598: 3001 movi r0, 1 + 459a: e3fff9ad bsr 0x38f4 // 38f4 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 459e: 3201 movi r2, 1 + 45a0: 3101 movi r1, 1 + 45a2: 3000 movi r0, 0 + 45a4: e3fff9a8 bsr 0x38f4 // 38f4 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 45a8: 9460 ld.w r3, (r4, 0x0) + 45aa: 934c ld.w r2, (r3, 0x30) + 45ac: 1261 lrw r3, 0x200001fc // 46b0 + 45ae: 07dd br 0x4568 // 4568 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 45b0: 9335 ld.w r1, (r3, 0x54) + 45b2: 3040 movi r0, 64 + 45b4: 6840 and r1, r0 + 45b6: 3940 cmpnei r1, 0 + 45b8: 0bb4 bt 0x4520 // 4520 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 45ba: 9335 ld.w r1, (r3, 0x54) + 45bc: 6848 and r1, r2 + 45be: 3940 cmpnei r1, 0 + 45c0: 0c03 bf 0x45c6 // 45c6 + EPT0->ICR=EPT_CDD; + 45c2: b357 st.w r2, (r3, 0x5c) + 45c4: 07d3 br 0x456a // 456a + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 45c6: 3280 movi r2, 128 + 45c8: 9335 ld.w r1, (r3, 0x54) + 45ca: 4241 lsli r2, r2, 1 + 45cc: 6848 and r1, r2 + 45ce: 3940 cmpnei r1, 0 + 45d0: 0bf9 bt 0x45c2 // 45c2 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 45d2: 3280 movi r2, 128 + 45d4: 9335 ld.w r1, (r3, 0x54) + 45d6: 4242 lsli r2, r2, 2 + 45d8: 6848 and r1, r2 + 45da: 3940 cmpnei r1, 0 + 45dc: 0bf3 bt 0x45c2 // 45c2 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 45de: 3280 movi r2, 128 + 45e0: 9335 ld.w r1, (r3, 0x54) + 45e2: 4243 lsli r2, r2, 3 + 45e4: 6848 and r1, r2 + 45e6: 3940 cmpnei r1, 0 + 45e8: 0bed bt 0x45c2 // 45c2 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 45ea: 3280 movi r2, 128 + 45ec: 9335 ld.w r1, (r3, 0x54) + 45ee: 4244 lsli r2, r2, 4 + 45f0: 6848 and r1, r2 + 45f2: 3940 cmpnei r1, 0 + 45f4: 0be7 bt 0x45c2 // 45c2 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 45f6: 3280 movi r2, 128 + 45f8: 9335 ld.w r1, (r3, 0x54) + 45fa: 4245 lsli r2, r2, 5 + 45fc: 6848 and r1, r2 + 45fe: 3940 cmpnei r1, 0 + 4600: 0be1 bt 0x45c2 // 45c2 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 4602: 3280 movi r2, 128 + 4604: 9335 ld.w r1, (r3, 0x54) + 4606: 4246 lsli r2, r2, 6 + 4608: 6848 and r1, r2 + 460a: 3940 cmpnei r1, 0 + 460c: 0bdb bt 0x45c2 // 45c2 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 460e: 3280 movi r2, 128 + 4610: 9335 ld.w r1, (r3, 0x54) + 4612: 4247 lsli r2, r2, 7 + 4614: 6848 and r1, r2 + 4616: 3940 cmpnei r1, 0 + 4618: 0bd5 bt 0x45c2 // 45c2 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 461a: 3280 movi r2, 128 + 461c: 9335 ld.w r1, (r3, 0x54) + 461e: 4248 lsli r2, r2, 8 + 4620: 6848 and r1, r2 + 4622: 3940 cmpnei r1, 0 + 4624: 0bcf bt 0x45c2 // 45c2 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 4626: 3280 movi r2, 128 + 4628: 9335 ld.w r1, (r3, 0x54) + 462a: 4249 lsli r2, r2, 9 + 462c: 6848 and r1, r2 + 462e: 3940 cmpnei r1, 0 + 4630: 0f9d bf 0x456a // 456a + EPT0->ICR=EPT_PEND; + 4632: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 4634: e3fffcee bsr 0x4010 // 4010 + 4638: 0799 br 0x456a // 456a + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 463a: 932b ld.w r1, (r3, 0x2c) + 463c: 3002 movi r0, 2 + 463e: 6840 and r1, r0 + 4640: 3940 cmpnei r1, 0 + 4642: 0b9c bt 0x457a // 457a + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 4644: 932b ld.w r1, (r3, 0x2c) + 4646: 3004 movi r0, 4 + 4648: 6840 and r1, r0 + 464a: 3940 cmpnei r1, 0 + 464c: 0b97 bt 0x457a // 457a + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 464e: 932b ld.w r1, (r3, 0x2c) + 4650: 3008 movi r0, 8 + 4652: 6840 and r1, r0 + 4654: 3940 cmpnei r1, 0 + 4656: 0b92 bt 0x457a // 457a + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 4658: 932b ld.w r1, (r3, 0x2c) + 465a: 3010 movi r0, 16 + 465c: 6840 and r1, r0 + 465e: 3940 cmpnei r1, 0 + 4660: 0b8d bt 0x457a // 457a + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 4662: 932b ld.w r1, (r3, 0x2c) + 4664: 3020 movi r0, 32 + 4666: 6840 and r1, r0 + 4668: 3940 cmpnei r1, 0 + 466a: 0b88 bt 0x457a // 457a + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 466c: 932b ld.w r1, (r3, 0x2c) + 466e: 3040 movi r0, 64 + 4670: 6840 and r1, r0 + 4672: 3940 cmpnei r1, 0 + 4674: 0b83 bt 0x457a // 457a + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 4676: 932b ld.w r1, (r3, 0x2c) + 4678: 6848 and r1, r2 + 467a: 3940 cmpnei r1, 0 + 467c: 0c03 bf 0x4682 // 4682 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 467e: b34d st.w r2, (r3, 0x34) +} + 4680: 077e br 0x457c // 457c + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 4682: 3280 movi r2, 128 + 4684: 932b ld.w r1, (r3, 0x2c) + 4686: 4241 lsli r2, r2, 1 + 4688: 6848 and r1, r2 + 468a: 3940 cmpnei r1, 0 + 468c: 0bf9 bt 0x467e // 467e + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 468e: 3280 movi r2, 128 + 4690: 932b ld.w r1, (r3, 0x2c) + 4692: 4242 lsli r2, r2, 2 + 4694: 6848 and r1, r2 + 4696: 3940 cmpnei r1, 0 + 4698: 0bf3 bt 0x467e // 467e + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 469a: 3280 movi r2, 128 + 469c: 932b ld.w r1, (r3, 0x2c) + 469e: 4243 lsli r2, r2, 3 + 46a0: 6848 and r1, r2 + 46a2: 3940 cmpnei r1, 0 + 46a4: 0bed bt 0x467e // 467e + 46a6: 076b br 0x457c // 457c + 46a8: 20000024 .long 0x20000024 + 46ac: 20000200 .long 0x20000200 + 46b0: 200001fc .long 0x200001fc + +Disassembly of section .text.WWDTHandler: + +000046b4 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 46b4: 1460 nie + 46b6: 1462 ipush + 46b8: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 46ba: 10ab lrw r5, 0x20000014 // 46e4 + 46bc: 3401 movi r4, 1 + 46be: 9560 ld.w r3, (r5, 0x0) + 46c0: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 46c2: 30ff movi r0, 255 + 46c4: e3fffb74 bsr 0x3dac // 3dac + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 46c8: 9540 ld.w r2, (r5, 0x0) + 46ca: 9263 ld.w r3, (r2, 0xc) + 46cc: 68d0 and r3, r4 + 46ce: 3b40 cmpnei r3, 0 + 46d0: 0c02 bf 0x46d4 // 46d4 + { + WWDT->ICR = WWDT_EVI; + 46d2: b285 st.w r4, (r2, 0x14) + } +} + 46d4: d9ee2002 ld.w r15, (r14, 0x8) + 46d8: 98a1 ld.w r5, (r14, 0x4) + 46da: 9880 ld.w r4, (r14, 0x0) + 46dc: 1403 addi r14, r14, 12 + 46de: 1463 ipop + 46e0: 1461 nir + 46e2: 0000 bkpt + 46e4: 20000014 .long 0x20000014 + +Disassembly of section .text.GPT0IntHandler: + +000046e8 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 46e8: 1460 nie + 46ea: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 46ec: 107e lrw r3, 0x20000028 // 4764 + 46ee: 3101 movi r1, 1 + 46f0: 9360 ld.w r3, (r3, 0x0) + 46f2: 237f addi r3, 128 + 46f4: 9355 ld.w r2, (r3, 0x54) + 46f6: 6884 and r2, r1 + 46f8: 3a40 cmpnei r2, 0 + 46fa: 0c04 bf 0x4702 // 4702 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 46fc: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 46fe: 1463 ipop + 4700: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 4702: 9355 ld.w r2, (r3, 0x54) + 4704: 3102 movi r1, 2 + 4706: 6884 and r2, r1 + 4708: 3a40 cmpnei r2, 0 + 470a: 0bf9 bt 0x46fc // 46fc + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 470c: 9355 ld.w r2, (r3, 0x54) + 470e: 3110 movi r1, 16 + 4710: 6884 and r2, r1 + 4712: 3a40 cmpnei r2, 0 + 4714: 0bf4 bt 0x46fc // 46fc + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 4716: 9355 ld.w r2, (r3, 0x54) + 4718: 3120 movi r1, 32 + 471a: 6884 and r2, r1 + 471c: 3a40 cmpnei r2, 0 + 471e: 0bef bt 0x46fc // 46fc + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 4720: 3280 movi r2, 128 + 4722: 9335 ld.w r1, (r3, 0x54) + 4724: 4241 lsli r2, r2, 1 + 4726: 6848 and r1, r2 + 4728: 3940 cmpnei r1, 0 + 472a: 0c03 bf 0x4730 // 4730 + GPT0->ICR = GPT_INT_PEND; + 472c: b357 st.w r2, (r3, 0x5c) +} + 472e: 07e8 br 0x46fe // 46fe + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 4730: 3280 movi r2, 128 + 4732: 9335 ld.w r1, (r3, 0x54) + 4734: 4242 lsli r2, r2, 2 + 4736: 6848 and r1, r2 + 4738: 3940 cmpnei r1, 0 + 473a: 0bf9 bt 0x472c // 472c + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 473c: 3280 movi r2, 128 + 473e: 9335 ld.w r1, (r3, 0x54) + 4740: 4243 lsli r2, r2, 3 + 4742: 6848 and r1, r2 + 4744: 3940 cmpnei r1, 0 + 4746: 0bf3 bt 0x472c // 472c + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 4748: 3280 movi r2, 128 + 474a: 9335 ld.w r1, (r3, 0x54) + 474c: 4244 lsli r2, r2, 4 + 474e: 6848 and r1, r2 + 4750: 3940 cmpnei r1, 0 + 4752: 0bed bt 0x472c // 472c + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 4754: 3280 movi r2, 128 + 4756: 9335 ld.w r1, (r3, 0x54) + 4758: 4249 lsli r2, r2, 9 + 475a: 6848 and r1, r2 + 475c: 3940 cmpnei r1, 0 + 475e: 0be7 bt 0x472c // 472c + 4760: 07cf br 0x46fe // 46fe + 4762: 0000 bkpt + 4764: 20000028 .long 0x20000028 + +Disassembly of section .text.RTCIntHandler: + +00004768 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 4768: 1460 nie + 476a: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 476c: 1079 lrw r3, 0x2000001c // 47d0 + 476e: 3101 movi r1, 1 + 4770: 9360 ld.w r3, (r3, 0x0) + 4772: 934a ld.w r2, (r3, 0x28) + 4774: 6884 and r2, r1 + 4776: 3a40 cmpnei r2, 0 + 4778: 0c14 bf 0x47a0 // 47a0 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 477a: 1057 lrw r2, 0xca53 // 47d4 + RTC->ICR=ALRA_INT; + 477c: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 477e: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 4780: 9342 ld.w r2, (r3, 0x8) + 4782: 6c84 or r2, r1 + 4784: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 4786: 3280 movi r2, 128 + 4788: 424d lsli r2, r2, 13 + 478a: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 478c: 3102 movi r1, 2 + 478e: 9342 ld.w r2, (r3, 0x8) + 4790: 6884 and r2, r1 + 4792: 3a40 cmpnei r2, 0 + 4794: 0bfd bt 0x478e // 478e + RTC->CR &= ~0x1; + 4796: 9342 ld.w r2, (r3, 0x8) + 4798: 3a80 bclri r2, 0 + 479a: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 479c: 1463 ipop + 479e: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 47a0: 934a ld.w r2, (r3, 0x28) + 47a2: 3102 movi r1, 2 + 47a4: 6884 and r2, r1 + 47a6: 3a40 cmpnei r2, 0 + 47a8: 0c03 bf 0x47ae // 47ae + RTC->ICR=RTC_TRGEV1_INT; + 47aa: b32b st.w r1, (r3, 0x2c) +} + 47ac: 07f8 br 0x479c // 479c + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 47ae: 934a ld.w r2, (r3, 0x28) + 47b0: 3104 movi r1, 4 + 47b2: 6884 and r2, r1 + 47b4: 3a40 cmpnei r2, 0 + 47b6: 0bfa bt 0x47aa // 47aa + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 47b8: 934a ld.w r2, (r3, 0x28) + 47ba: 3108 movi r1, 8 + 47bc: 6884 and r2, r1 + 47be: 3a40 cmpnei r2, 0 + 47c0: 0bf5 bt 0x47aa // 47aa + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 47c2: 934a ld.w r2, (r3, 0x28) + 47c4: 3110 movi r1, 16 + 47c6: 6884 and r2, r1 + 47c8: 3a40 cmpnei r2, 0 + 47ca: 0bf0 bt 0x47aa // 47aa + 47cc: 07e8 br 0x479c // 479c + 47ce: 0000 bkpt + 47d0: 2000001c .long 0x2000001c + 47d4: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +000047d8 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 47d8: 1460 nie + 47da: 1462 ipush + 47dc: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 47de: 1076 lrw r3, 0x20000044 // 4834 + 47e0: 3102 movi r1, 2 + 47e2: 9360 ld.w r3, (r3, 0x0) + 47e4: 9343 ld.w r2, (r3, 0xc) + 47e6: 6884 and r2, r1 + 47e8: 3a40 cmpnei r2, 0 + 47ea: 0c0b bf 0x4800 // 4800 + { + UART0->ISR=UART_RX_INT_S; + 47ec: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 47ee: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 47f0: 7400 zextb r0, r0 + 47f2: e0000393 bsr 0x4f18 // 4f18 + } + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } +} + 47f6: d9ee2000 ld.w r15, (r14, 0x0) + 47fa: 1401 addi r14, r14, 4 + 47fc: 1463 ipop + 47fe: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 4800: 9343 ld.w r2, (r3, 0xc) + 4802: 3101 movi r1, 1 + 4804: 6884 and r2, r1 + 4806: 3a40 cmpnei r2, 0 + 4808: 0c03 bf 0x480e // 480e + UART0->ISR=UART_TX_IOV_S; + 480a: b323 st.w r1, (r3, 0xc) + 480c: 07f5 br 0x47f6 // 47f6 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 480e: 9343 ld.w r2, (r3, 0xc) + 4810: 3108 movi r1, 8 + 4812: 6884 and r2, r1 + 4814: 3a40 cmpnei r2, 0 + 4816: 0bfa bt 0x480a // 480a + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 4818: 9343 ld.w r2, (r3, 0xc) + 481a: 3104 movi r1, 4 + 481c: 6884 and r2, r1 + 481e: 3a40 cmpnei r2, 0 + 4820: 0bf5 bt 0x480a // 480a + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 4822: 3280 movi r2, 128 + 4824: 9323 ld.w r1, (r3, 0xc) + 4826: 424c lsli r2, r2, 12 + 4828: 6848 and r1, r2 + 482a: 3940 cmpnei r1, 0 + 482c: 0fe5 bf 0x47f6 // 47f6 + UART0->ISR=UART_TX_DONE_S; + 482e: b343 st.w r2, (r3, 0xc) +} + 4830: 07e3 br 0x47f6 // 47f6 + 4832: 0000 bkpt + 4834: 20000044 .long 0x20000044 + +Disassembly of section .text.UART1IntHandler: + +00004838 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 4838: 1460 nie + 483a: 1462 ipush + 483c: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 483e: 107f lrw r3, 0x20000040 // 48b8 + 4840: 3102 movi r1, 2 + 4842: 9360 ld.w r3, (r3, 0x0) + 4844: 9343 ld.w r2, (r3, 0xc) + 4846: 6884 and r2, r1 + 4848: 3a40 cmpnei r2, 0 + 484a: 0c0b bf 0x4860 // 4860 + { + UART1->ISR=UART_RX_INT_S; + 484c: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 484e: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 4850: 7400 zextb r0, r0 + 4852: e000037d bsr 0x4f4c // 4f4c + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 4856: d9ee2000 ld.w r15, (r14, 0x0) + 485a: 1401 addi r14, r14, 4 + 485c: 1463 ipop + 485e: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 4860: 9323 ld.w r1, (r3, 0xc) + 4862: 3201 movi r2, 1 + 4864: 6848 and r1, r2 + 4866: 3940 cmpnei r1, 0 + 4868: 0c0d bf 0x4882 // 4882 + UART1->ISR=UART_TX_INT_S; + 486a: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 486c: 1074 lrw r3, 0x200000d8 // 48bc + 486e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 4870: 1074 lrw r3, 0x200000dc // 48c0 + 4872: 9360 ld.w r3, (r3, 0x0) + 4874: 3b41 cmpnei r3, 1 + 4876: 0bf0 bt 0x4856 // 4856 + RS485_Comm_Start ++; + 4878: 1053 lrw r2, 0x200000e0 // 48c4 + RS485_Comm_End ++; + 487a: 9260 ld.w r3, (r2, 0x0) + 487c: 2300 addi r3, 1 + 487e: b260 st.w r3, (r2, 0x0) +} + 4880: 07eb br 0x4856 // 4856 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 4882: 9343 ld.w r2, (r3, 0xc) + 4884: 3108 movi r1, 8 + 4886: 6884 and r2, r1 + 4888: 3a40 cmpnei r2, 0 + 488a: 0c03 bf 0x4890 // 4890 + UART1->ISR=UART_TX_IOV_S; + 488c: b323 st.w r1, (r3, 0xc) + 488e: 07e4 br 0x4856 // 4856 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 4890: 9343 ld.w r2, (r3, 0xc) + 4892: 3104 movi r1, 4 + 4894: 6884 and r2, r1 + 4896: 3a40 cmpnei r2, 0 + 4898: 0bfa bt 0x488c // 488c + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 489a: 3180 movi r1, 128 + 489c: 9303 ld.w r0, (r3, 0xc) + 489e: 412c lsli r1, r1, 12 + 48a0: 6804 and r0, r1 + 48a2: 3840 cmpnei r0, 0 + 48a4: 0fd9 bf 0x4856 // 4856 + UART1->ISR=UART_TX_DONE_S; + 48a6: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 48a8: 1065 lrw r3, 0x200000d8 // 48bc + 48aa: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 48ac: 1065 lrw r3, 0x200000dc // 48c0 + 48ae: 9360 ld.w r3, (r3, 0x0) + 48b0: 3b41 cmpnei r3, 1 + 48b2: 0bd2 bt 0x4856 // 4856 + RS485_Comm_End ++; + 48b4: 1045 lrw r2, 0x200000e4 // 48c8 + 48b6: 07e2 br 0x487a // 487a + 48b8: 20000040 .long 0x20000040 + 48bc: 200000d8 .long 0x200000d8 + 48c0: 200000dc .long 0x200000dc + 48c4: 200000e0 .long 0x200000e0 + 48c8: 200000e4 .long 0x200000e4 + +Disassembly of section .text.UART2IntHandler: + +000048cc : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 48cc: 1460 nie + 48ce: 1462 ipush + 48d0: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 48d2: 1076 lrw r3, 0x2000003c // 4928 + 48d4: 3102 movi r1, 2 + 48d6: 9360 ld.w r3, (r3, 0x0) + 48d8: 9343 ld.w r2, (r3, 0xc) + 48da: 6884 and r2, r1 + 48dc: 3a40 cmpnei r2, 0 + 48de: 0c0b bf 0x48f4 // 48f4 + { + UART2->ISR=UART_RX_INT_S; + 48e0: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 48e2: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 48e4: 7400 zextb r0, r0 + 48e6: e000034d bsr 0x4f80 // 4f80 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART2->ISR=UART_TX_DONE_S; + } + +} + 48ea: d9ee2000 ld.w r15, (r14, 0x0) + 48ee: 1401 addi r14, r14, 4 + 48f0: 1463 ipop + 48f2: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 48f4: 9343 ld.w r2, (r3, 0xc) + 48f6: 3101 movi r1, 1 + 48f8: 6884 and r2, r1 + 48fa: 3a40 cmpnei r2, 0 + 48fc: 0c03 bf 0x4902 // 4902 + UART2->ISR=UART_TX_IOV_S; + 48fe: b323 st.w r1, (r3, 0xc) + 4900: 07f5 br 0x48ea // 48ea + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 4902: 9343 ld.w r2, (r3, 0xc) + 4904: 3108 movi r1, 8 + 4906: 6884 and r2, r1 + 4908: 3a40 cmpnei r2, 0 + 490a: 0bfa bt 0x48fe // 48fe + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 490c: 9343 ld.w r2, (r3, 0xc) + 490e: 3104 movi r1, 4 + 4910: 6884 and r2, r1 + 4912: 3a40 cmpnei r2, 0 + 4914: 0bf5 bt 0x48fe // 48fe + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 4916: 3280 movi r2, 128 + 4918: 9323 ld.w r1, (r3, 0xc) + 491a: 424c lsli r2, r2, 12 + 491c: 6848 and r1, r2 + 491e: 3940 cmpnei r1, 0 + 4920: 0fe5 bf 0x48ea // 48ea + UART2->ISR=UART_TX_DONE_S; + 4922: b343 st.w r2, (r3, 0xc) +} + 4924: 07e3 br 0x48ea // 48ea + 4926: 0000 bkpt + 4928: 2000003c .long 0x2000003c + +Disassembly of section .text.SPI0IntHandler: + +0000492c : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 492c: 1460 nie + 492e: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 4930: 1178 lrw r3, 0x20000038 // 4a10 + 4932: 3101 movi r1, 1 + 4934: 9360 ld.w r3, (r3, 0x0) + 4936: 9347 ld.w r2, (r3, 0x1c) + 4938: 6884 and r2, r1 + 493a: 3a40 cmpnei r2, 0 + 493c: 0c03 bf 0x4942 // 4942 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 493e: b328 st.w r1, (r3, 0x20) + } + +} + 4940: 0407 br 0x494e // 494e + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 4942: 9347 ld.w r2, (r3, 0x1c) + 4944: 3002 movi r0, 2 + 4946: 6880 and r2, r0 + 4948: 3a40 cmpnei r2, 0 + 494a: 0c04 bf 0x4952 // 4952 + SPI0->ICR = SPI_RTIM; + 494c: b308 st.w r0, (r3, 0x20) +} + 494e: 1463 ipop + 4950: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 4952: 9347 ld.w r2, (r3, 0x1c) + 4954: 3004 movi r0, 4 + 4956: 6880 and r2, r0 + 4958: 3a40 cmpnei r2, 0 + 495a: 0c55 bf 0x4a04 // 4a04 + SPI0->ICR = SPI_RXIM; + 495c: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 495e: 9302 ld.w r0, (r3, 0x8) + 4960: 32aa movi r2, 170 + 4962: 6482 cmpne r0, r2 + 4964: 083e bt 0x49e0 // 49e0 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4966: 3102 movi r1, 2 + 4968: 9343 ld.w r2, (r3, 0xc) + 496a: 6884 and r2, r1 + 496c: 3a40 cmpnei r2, 0 + 496e: 0ffd bf 0x4968 // 4968 + SPI0->DR = 0x11; + 4970: 3211 movi r2, 17 + 4972: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4974: 3110 movi r1, 16 + 4976: 9343 ld.w r2, (r3, 0xc) + 4978: 6884 and r2, r1 + 497a: 3a40 cmpnei r2, 0 + 497c: 0bfd bt 0x4976 // 4976 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 497e: 3102 movi r1, 2 + 4980: 9343 ld.w r2, (r3, 0xc) + 4982: 6884 and r2, r1 + 4984: 3a40 cmpnei r2, 0 + 4986: 0ffd bf 0x4980 // 4980 + SPI0->DR = 0x12; + 4988: 3212 movi r2, 18 + 498a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 498c: 3110 movi r1, 16 + 498e: 9343 ld.w r2, (r3, 0xc) + 4990: 6884 and r2, r1 + 4992: 3a40 cmpnei r2, 0 + 4994: 0bfd bt 0x498e // 498e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4996: 3102 movi r1, 2 + 4998: 9343 ld.w r2, (r3, 0xc) + 499a: 6884 and r2, r1 + 499c: 3a40 cmpnei r2, 0 + 499e: 0ffd bf 0x4998 // 4998 + SPI0->DR = 0x13; + 49a0: 3213 movi r2, 19 + 49a2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 49a4: 3110 movi r1, 16 + 49a6: 9343 ld.w r2, (r3, 0xc) + 49a8: 6884 and r2, r1 + 49aa: 3a40 cmpnei r2, 0 + 49ac: 0bfd bt 0x49a6 // 49a6 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 49ae: 3102 movi r1, 2 + 49b0: 9343 ld.w r2, (r3, 0xc) + 49b2: 6884 and r2, r1 + 49b4: 3a40 cmpnei r2, 0 + 49b6: 0ffd bf 0x49b0 // 49b0 + SPI0->DR = 0x14; + 49b8: 3214 movi r2, 20 + 49ba: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 49bc: 3110 movi r1, 16 + 49be: 9343 ld.w r2, (r3, 0xc) + 49c0: 6884 and r2, r1 + 49c2: 3a40 cmpnei r2, 0 + 49c4: 0bfd bt 0x49be // 49be + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 49c6: 3102 movi r1, 2 + 49c8: 9343 ld.w r2, (r3, 0xc) + 49ca: 6884 and r2, r1 + 49cc: 3a40 cmpnei r2, 0 + 49ce: 0ffd bf 0x49c8 // 49c8 + SPI0->DR = 0x15; + 49d0: 3215 movi r2, 21 + 49d2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 49d4: 3110 movi r1, 16 + 49d6: 9343 ld.w r2, (r3, 0xc) + 49d8: 6884 and r2, r1 + 49da: 3a40 cmpnei r2, 0 + 49dc: 0bfd bt 0x49d6 // 49d6 + 49de: 07b8 br 0x494e // 494e + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 49e0: 9343 ld.w r2, (r3, 0xc) + 49e2: 6884 and r2, r1 + 49e4: 3a40 cmpnei r2, 0 + 49e6: 0bb4 bt 0x494e // 494e + SPI0->DR=0x0; //FIFO=0 + 49e8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 49ea: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 49ec: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 49ee: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 49f0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 49f2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 49f4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 49f6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 49f8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 49fa: 9343 ld.w r2, (r3, 0xc) + 49fc: 6884 and r2, r1 + 49fe: 3a40 cmpnei r2, 0 + 4a00: 0bfd bt 0x49fa // 49fa + 4a02: 07a6 br 0x494e // 494e + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 4a04: 9347 ld.w r2, (r3, 0x1c) + 4a06: 3108 movi r1, 8 + 4a08: 6884 and r2, r1 + 4a0a: 3a40 cmpnei r2, 0 + 4a0c: 0b99 bt 0x493e // 493e + 4a0e: 07a0 br 0x494e // 494e + 4a10: 20000038 .long 0x20000038 + +Disassembly of section .text.SIO0IntHandler: + +00004a14 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 4a14: 1460 nie + 4a16: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 4a18: 1073 lrw r3, 0x20000030 // 4a64 + 4a1a: 3104 movi r1, 4 + 4a1c: 9360 ld.w r3, (r3, 0x0) + 4a1e: 9349 ld.w r2, (r3, 0x24) + 4a20: 6884 and r2, r1 + 4a22: 3a40 cmpnei r2, 0 + 4a24: 0c02 bf 0x4a28 // 4a28 + { + SIO0->ICR=0X04; + 4a26: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 4a28: 9349 ld.w r2, (r3, 0x24) + 4a2a: 3101 movi r1, 1 + 4a2c: 6884 and r2, r1 + 4a2e: 3a40 cmpnei r2, 0 + 4a30: 0c02 bf 0x4a34 // 4a34 + { + SIO0->ICR=0X01; + 4a32: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 4a34: 9349 ld.w r2, (r3, 0x24) + 4a36: 3102 movi r1, 2 + 4a38: 6884 and r2, r1 + 4a3a: 3a40 cmpnei r2, 0 + 4a3c: 0c03 bf 0x4a42 // 4a42 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 4a3e: b32b st.w r1, (r3, 0x2c) + } +} + 4a40: 0410 br 0x4a60 // 4a60 + else if(SIO0->MISR&0X08) //RXBUFFULL + 4a42: 9349 ld.w r2, (r3, 0x24) + 4a44: 3108 movi r1, 8 + 4a46: 6884 and r2, r1 + 4a48: 3a40 cmpnei r2, 0 + 4a4a: 0bfa bt 0x4a3e // 4a3e + else if(SIO0->MISR&0X010) //BREAK + 4a4c: 9349 ld.w r2, (r3, 0x24) + 4a4e: 3110 movi r1, 16 + 4a50: 6884 and r2, r1 + 4a52: 3a40 cmpnei r2, 0 + 4a54: 0bf5 bt 0x4a3e // 4a3e + else if(SIO0->MISR&0X020) //TIMEOUT + 4a56: 9349 ld.w r2, (r3, 0x24) + 4a58: 3120 movi r1, 32 + 4a5a: 6884 and r2, r1 + 4a5c: 3a40 cmpnei r2, 0 + 4a5e: 0bf0 bt 0x4a3e // 4a3e +} + 4a60: 1463 ipop + 4a62: 1461 nir + 4a64: 20000030 .long 0x20000030 + +Disassembly of section .text.EXI0IntHandler: + +00004a68 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 4a68: 1460 nie + 4a6a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 4a6c: 106a lrw r3, 0x20000060 // 4a94 + 4a6e: 3101 movi r1, 1 + 4a70: 9360 ld.w r3, (r3, 0x0) + 4a72: 237f addi r3, 128 + 4a74: 934c ld.w r2, (r3, 0x30) + 4a76: 6884 and r2, r1 + 4a78: 3a40 cmpnei r2, 0 + 4a7a: 0c04 bf 0x4a82 // 4a82 + { + SYSCON->EXICR = EXI_PIN0; + 4a7c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 4a7e: 1463 ipop + 4a80: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 4a82: 3280 movi r2, 128 + 4a84: 932c ld.w r1, (r3, 0x30) + 4a86: 4249 lsli r2, r2, 9 + 4a88: 6848 and r1, r2 + 4a8a: 3940 cmpnei r1, 0 + 4a8c: 0ff9 bf 0x4a7e // 4a7e + SYSCON->EXICR = EXI_PIN16; + 4a8e: b34b st.w r2, (r3, 0x2c) +} + 4a90: 07f7 br 0x4a7e // 4a7e + 4a92: 0000 bkpt + 4a94: 20000060 .long 0x20000060 + +Disassembly of section .text.EXI1IntHandler: + +00004a98 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 4a98: 1460 nie + 4a9a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 4a9c: 106a lrw r3, 0x20000060 // 4ac4 + 4a9e: 3102 movi r1, 2 + 4aa0: 9360 ld.w r3, (r3, 0x0) + 4aa2: 237f addi r3, 128 + 4aa4: 934c ld.w r2, (r3, 0x30) + 4aa6: 6884 and r2, r1 + 4aa8: 3a40 cmpnei r2, 0 + 4aaa: 0c04 bf 0x4ab2 // 4ab2 + { + SYSCON->EXICR = EXI_PIN1; + 4aac: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 4aae: 1463 ipop + 4ab0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 4ab2: 3280 movi r2, 128 + 4ab4: 932c ld.w r1, (r3, 0x30) + 4ab6: 424a lsli r2, r2, 10 + 4ab8: 6848 and r1, r2 + 4aba: 3940 cmpnei r1, 0 + 4abc: 0ff9 bf 0x4aae // 4aae + SYSCON->EXICR = EXI_PIN17; + 4abe: b34b st.w r2, (r3, 0x2c) +} + 4ac0: 07f7 br 0x4aae // 4aae + 4ac2: 0000 bkpt + 4ac4: 20000060 .long 0x20000060 + +Disassembly of section .text.EXI2to3IntHandler: + +00004ac8 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 4ac8: 1460 nie + 4aca: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 4acc: 1070 lrw r3, 0x20000060 // 4b0c + 4ace: 3104 movi r1, 4 + 4ad0: 9360 ld.w r3, (r3, 0x0) + 4ad2: 237f addi r3, 128 + 4ad4: 934c ld.w r2, (r3, 0x30) + 4ad6: 6884 and r2, r1 + 4ad8: 3a40 cmpnei r2, 0 + 4ada: 0c04 bf 0x4ae2 // 4ae2 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 4adc: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 4ade: 1463 ipop + 4ae0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 4ae2: 934c ld.w r2, (r3, 0x30) + 4ae4: 3108 movi r1, 8 + 4ae6: 6884 and r2, r1 + 4ae8: 3a40 cmpnei r2, 0 + 4aea: 0bf9 bt 0x4adc // 4adc + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 4aec: 3280 movi r2, 128 + 4aee: 932c ld.w r1, (r3, 0x30) + 4af0: 424b lsli r2, r2, 11 + 4af2: 6848 and r1, r2 + 4af4: 3940 cmpnei r1, 0 + 4af6: 0c03 bf 0x4afc // 4afc + SYSCON->EXICR = EXI_PIN19; + 4af8: b34b st.w r2, (r3, 0x2c) +} + 4afa: 07f2 br 0x4ade // 4ade + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 4afc: 3280 movi r2, 128 + 4afe: 932c ld.w r1, (r3, 0x30) + 4b00: 424c lsli r2, r2, 12 + 4b02: 6848 and r1, r2 + 4b04: 3940 cmpnei r1, 0 + 4b06: 0bf9 bt 0x4af8 // 4af8 + 4b08: 07eb br 0x4ade // 4ade + 4b0a: 0000 bkpt + 4b0c: 20000060 .long 0x20000060 + +Disassembly of section .text.EXI4to9IntHandler: + +00004b10 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 4b10: 1460 nie + 4b12: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 4b14: 1066 lrw r3, 0x20000060 // 4b2c + 4b16: 3110 movi r1, 16 + 4b18: 9360 ld.w r3, (r3, 0x0) + 4b1a: 237f addi r3, 128 + 4b1c: 934c ld.w r2, (r3, 0x30) + 4b1e: 6884 and r2, r1 + 4b20: 3a40 cmpnei r2, 0 + 4b22: 0c02 bf 0x4b26 // 4b26 + { + SYSCON->EXICR = EXI_PIN4; + 4b24: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 4b26: 1463 ipop + 4b28: 1461 nir + 4b2a: 0000 bkpt + 4b2c: 20000060 .long 0x20000060 + +Disassembly of section .text.EXI10to15IntHandler: + +00004b30 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 4b30: 1460 nie + 4b32: 1462 ipush + 4b34: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 4b36: 1079 lrw r3, 0x20000060 // 4b98 + 4b38: 3280 movi r2, 128 + 4b3a: 9360 ld.w r3, (r3, 0x0) + 4b3c: 237f addi r3, 128 + 4b3e: 932c ld.w r1, (r3, 0x30) + 4b40: 4243 lsli r2, r2, 3 + 4b42: 6848 and r1, r2 + 4b44: 3940 cmpnei r1, 0 + 4b46: 0c07 bf 0x4b54 // 4b54 + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 4b48: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 4b4a: d9ee2000 ld.w r15, (r14, 0x0) + 4b4e: 1401 addi r14, r14, 4 + 4b50: 1463 ipop + 4b52: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 4b54: 3280 movi r2, 128 + 4b56: 932c ld.w r1, (r3, 0x30) + 4b58: 4244 lsli r2, r2, 4 + 4b5a: 6848 and r1, r2 + 4b5c: 3940 cmpnei r1, 0 + 4b5e: 0bf5 bt 0x4b48 // 4b48 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 4b60: 3280 movi r2, 128 + 4b62: 932c ld.w r1, (r3, 0x30) + 4b64: 4245 lsli r2, r2, 5 + 4b66: 6848 and r1, r2 + 4b68: 3940 cmpnei r1, 0 + 4b6a: 0bef bt 0x4b48 // 4b48 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 4b6c: 3280 movi r2, 128 + 4b6e: 932c ld.w r1, (r3, 0x30) + 4b70: 4246 lsli r2, r2, 6 + 4b72: 6848 and r1, r2 + 4b74: 3940 cmpnei r1, 0 + 4b76: 0be9 bt 0x4b48 // 4b48 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 4b78: 3280 movi r2, 128 + 4b7a: 932c ld.w r1, (r3, 0x30) + 4b7c: 4247 lsli r2, r2, 7 + 4b7e: 6848 and r1, r2 + 4b80: 3940 cmpnei r1, 0 + 4b82: 0be3 bt 0x4b48 // 4b48 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 4b84: 3280 movi r2, 128 + 4b86: 932c ld.w r1, (r3, 0x30) + 4b88: 4248 lsli r2, r2, 8 + 4b8a: 6848 and r1, r2 + 4b8c: 3940 cmpnei r1, 0 + 4b8e: 0fde bf 0x4b4a // 4b4a + SYSCON->EXICR = EXI_PIN15; + 4b90: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 4b92: e0000315 bsr 0x51bc // 51bc +} + 4b96: 07da br 0x4b4a // 4b4a + 4b98: 20000060 .long 0x20000060 + +Disassembly of section .text.LPTIntHandler: + +00004b9c : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 4b9c: 1460 nie + 4b9e: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 4ba0: 106b lrw r3, 0x20000018 // 4bcc + 4ba2: 3101 movi r1, 1 + 4ba4: 9360 ld.w r3, (r3, 0x0) + 4ba6: 934e ld.w r2, (r3, 0x38) + 4ba8: 6884 and r2, r1 + 4baa: 3a40 cmpnei r2, 0 + 4bac: 0c03 bf 0x4bb2 // 4bb2 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 4bae: b330 st.w r1, (r3, 0x40) + } +} + 4bb0: 040b br 0x4bc6 // 4bc6 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 4bb2: 934e ld.w r2, (r3, 0x38) + 4bb4: 3102 movi r1, 2 + 4bb6: 6884 and r2, r1 + 4bb8: 3a40 cmpnei r2, 0 + 4bba: 0bfa bt 0x4bae // 4bae + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 4bbc: 934e ld.w r2, (r3, 0x38) + 4bbe: 3104 movi r1, 4 + 4bc0: 6884 and r2, r1 + 4bc2: 3a40 cmpnei r2, 0 + 4bc4: 0bf5 bt 0x4bae // 4bae +} + 4bc6: 1463 ipop + 4bc8: 1461 nir + 4bca: 0000 bkpt + 4bcc: 20000018 .long 0x20000018 + +Disassembly of section .text.BT0IntHandler: + +00004bd0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 4bd0: 1460 nie + 4bd2: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 4bd4: 1071 lrw r3, 0x20000010 // 4c18 + 4bd6: 3101 movi r1, 1 + 4bd8: 9360 ld.w r3, (r3, 0x0) + 4bda: 934c ld.w r2, (r3, 0x30) + 4bdc: 6884 and r2, r1 + 4bde: 3a40 cmpnei r2, 0 + 4be0: 0c0a bf 0x4bf4 // 4bf4 + { + BT0->ICR = BT_PEND; + 4be2: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 4be4: 9341 ld.w r2, (r3, 0x4) + 4be6: 3a86 bclri r2, 6 + 4be8: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 4bea: 9340 ld.w r2, (r3, 0x0) + 4bec: 3200 movi r2, 0 + 4bee: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 4bf0: 1463 ipop + 4bf2: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 4bf4: 934c ld.w r2, (r3, 0x30) + 4bf6: 3102 movi r1, 2 + 4bf8: 6884 and r2, r1 + 4bfa: 3a40 cmpnei r2, 0 + 4bfc: 0c03 bf 0x4c02 // 4c02 + BT0->ICR = BT_EVTRG; + 4bfe: b32d st.w r1, (r3, 0x34) +} + 4c00: 07f8 br 0x4bf0 // 4bf0 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 4c02: 934c ld.w r2, (r3, 0x30) + 4c04: 3104 movi r1, 4 + 4c06: 6884 and r2, r1 + 4c08: 3a40 cmpnei r2, 0 + 4c0a: 0bfa bt 0x4bfe // 4bfe + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 4c0c: 934c ld.w r2, (r3, 0x30) + 4c0e: 3108 movi r1, 8 + 4c10: 6884 and r2, r1 + 4c12: 3a40 cmpnei r2, 0 + 4c14: 0bf5 bt 0x4bfe // 4bfe + 4c16: 07ed br 0x4bf0 // 4bf0 + 4c18: 20000010 .long 0x20000010 + +Disassembly of section .text.BT1IntHandler: + +00004c1c : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 4c1c: 1460 nie + 4c1e: 1462 ipush + 4c20: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 4c22: 1079 lrw r3, 0x2000000c // 4c84 + 4c24: 3101 movi r1, 1 + 4c26: 9360 ld.w r3, (r3, 0x0) + 4c28: 934c ld.w r2, (r3, 0x30) + 4c2a: 6884 and r2, r1 + 4c2c: 3a40 cmpnei r2, 0 + 4c2e: 0c03 bf 0x4c34 // 4c34 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 4c30: b32d st.w r1, (r3, 0x34) + } +} + 4c32: 0418 br 0x4c62 // 4c62 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 4c34: 934c ld.w r2, (r3, 0x30) + 4c36: 3102 movi r1, 2 + 4c38: 6884 and r2, r1 + 4c3a: 3a40 cmpnei r2, 0 + 4c3c: 0c18 bf 0x4c6c // 4c6c + BT1->ICR = BT_CMP; + 4c3e: b32d st.w r1, (r3, 0x34) + NUM++; + 4c40: 1072 lrw r3, 0x200000cc // 4c88 + 4c42: 8340 ld.b r2, (r3, 0x0) + 4c44: 2200 addi r2, 1 + 4c46: 7488 zextb r2, r2 + SysTick_100us++; + 4c48: 9321 ld.w r1, (r3, 0x4) + 4c4a: 2100 addi r1, 1 + if(NUM >= 10){ + 4c4c: 3a09 cmphsi r2, 10 + NUM++; + 4c4e: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 4c50: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 4c52: 0c08 bf 0x4c62 // 4c62 + NUM = 0; + 4c54: 3200 movi r2, 0 + 4c56: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 4c58: 9342 ld.w r2, (r3, 0x8) + 4c5a: 2200 addi r2, 1 + 4c5c: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 4c5e: e000028f bsr 0x517c // 517c +} + 4c62: d9ee2000 ld.w r15, (r14, 0x0) + 4c66: 1401 addi r14, r14, 4 + 4c68: 1463 ipop + 4c6a: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 4c6c: 934c ld.w r2, (r3, 0x30) + 4c6e: 3104 movi r1, 4 + 4c70: 6884 and r2, r1 + 4c72: 3a40 cmpnei r2, 0 + 4c74: 0bde bt 0x4c30 // 4c30 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 4c76: 934c ld.w r2, (r3, 0x30) + 4c78: 3108 movi r1, 8 + 4c7a: 6884 and r2, r1 + 4c7c: 3a40 cmpnei r2, 0 + 4c7e: 0bd9 bt 0x4c30 // 4c30 + 4c80: 07f1 br 0x4c62 // 4c62 + 4c82: 0000 bkpt + 4c84: 2000000c .long 0x2000000c + 4c88: 200000cc .long 0x200000cc + +Disassembly of section .text.PriviledgeVioHandler: + +00004c8c : + 4c8c: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00004c8e : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 4c8e: 1460 nie + 4c90: 1462 ipush + // ISR content ... + +} + 4c92: 1463 ipop + 4c94: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00004c96 : + 4c96: 1460 nie + 4c98: 1462 ipush + 4c9a: 1463 ipop + 4c9c: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00004c9e : + 4c9e: 1460 nie + 4ca0: 1462 ipush + 4ca2: 1463 ipop + 4ca4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00004ca6 : + 4ca6: 1460 nie + 4ca8: 1462 ipush + 4caa: 1463 ipop + 4cac: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00004cae : + 4cae: 1460 nie + 4cb0: 1462 ipush + 4cb2: 1463 ipop + 4cb4: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00004cb6 : + 4cb6: 1460 nie + 4cb8: 1462 ipush + 4cba: 1463 ipop + 4cbc: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00004cbe : + 4cbe: 1460 nie + 4cc0: 1462 ipush + 4cc2: 1463 ipop + 4cc4: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00004cc6 : + 4cc6: 1460 nie + 4cc8: 1462 ipush + 4cca: 1463 ipop + 4ccc: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00004cce : + 4cce: 1460 nie + 4cd0: 1462 ipush + 4cd2: 1463 ipop + 4cd4: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00004cd6 : + 4cd6: 1460 nie + 4cd8: 1462 ipush + 4cda: 1463 ipop + 4cdc: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00004cde : + 4cde: 1460 nie + 4ce0: 1462 ipush + 4ce2: 1463 ipop + 4ce4: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00004ce6 : + 4ce6: 1460 nie + 4ce8: 1462 ipush + 4cea: 1463 ipop + 4cec: 1461 nir + +Disassembly of section .text.__divsi3: + +00004cf0 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 4cf0: 14c1 push r4 + int PSR; + __asm volatile( + 4cf2: c0006023 mfcr r3, cr<0, 0> + 4cf6: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 4cfa: 1046 lrw r2, 0x20000004 // 4d10 <__divsi3+0x20> + 4cfc: 3400 movi r4, 0 + 4cfe: 9240 ld.w r2, (r2, 0x0) + 4d00: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4d02: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4d04: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4d06: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4d08: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4d0c: 9202 ld.w r0, (r2, 0x8) +} + 4d0e: 1481 pop r4 + 4d10: 20000004 .long 0x20000004 + +Disassembly of section .text.__udivsi3: + +00004d14 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 4d14: 14c1 push r4 + int PSR; + __asm volatile( + 4d16: c0006023 mfcr r3, cr<0, 0> + 4d1a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 4d1e: 1046 lrw r2, 0x20000004 // 4d34 <__udivsi3+0x20> + 4d20: 3401 movi r4, 1 + 4d22: 9240 ld.w r2, (r2, 0x0) + 4d24: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4d26: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4d28: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4d2a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4d2c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4d30: 9202 ld.w r0, (r2, 0x8) +} + 4d32: 1481 pop r4 + 4d34: 20000004 .long 0x20000004 + +Disassembly of section .text.__modsi3: + +00004d38 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 4d38: 14c1 push r4 + int PSR; + __asm volatile( + 4d3a: c0006023 mfcr r3, cr<0, 0> + 4d3e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 4d42: 1046 lrw r2, 0x20000004 // 4d58 <__modsi3+0x20> + 4d44: 3400 movi r4, 0 + 4d46: 9240 ld.w r2, (r2, 0x0) + 4d48: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4d4a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4d4c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4d4e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4d50: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4d54: 9203 ld.w r0, (r2, 0xc) +} + 4d56: 1481 pop r4 + 4d58: 20000004 .long 0x20000004 + +Disassembly of section .text.__umodsi3: + +00004d5c <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 4d5c: 14c1 push r4 + int PSR; + __asm volatile( + 4d5e: c0006023 mfcr r3, cr<0, 0> + 4d62: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 4d66: 1046 lrw r2, 0x20000004 // 4d7c <__umodsi3+0x20> + 4d68: 3401 movi r4, 1 + 4d6a: 9240 ld.w r2, (r2, 0x0) + 4d6c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4d6e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4d70: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4d72: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4d74: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4d78: 9203 ld.w r0, (r2, 0xc) +} + 4d7a: 1481 pop r4 + 4d7c: 20000004 .long 0x20000004 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00004d80 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 4d80: c1807420 psrset ee, ie +} + 4d84: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +00004d86 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 4d86: c0807020 psrclr ie +} + 4d8a: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00004d8c : +UART_t g_uart; +UART_t g_uart1; +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4d8c: 14d2 push r4-r5, r15 + switch((U8_T)uart_id){ + 4d8e: 7400 zextb r0, r0 + 4d90: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4d92: 6d47 mov r5, r1 + switch((U8_T)uart_id){ + 4d94: 0c1f bf 0x4dd2 // 4dd2 + 4d96: 3840 cmpnei r0, 0 + 4d98: 0c04 bf 0x4da0 // 4da0 + 4d9a: 3842 cmpnei r0, 2 + 4d9c: 0c8d bf 0x4eb6 // 4eb6 + g_uart.RecvTimeout = Recv_9600_TimeOut; + g_uart.processing_cf = prt_cf; + + break; + } +} + 4d9e: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 4da0: e3fff85c bsr 0x3e58 // 3e58 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 4da4: 3100 movi r1, 0 + 4da6: 3000 movi r0, 0 + 4da8: e3fff8a6 bsr 0x3ef4 // 3ef4 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_EVEN); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 4dac: 126d lrw r3, 0x20000044 // 4ee0 + 4dae: 3280 movi r2, 128 + 4db0: 9300 ld.w r0, (r3, 0x0) + 4db2: 4243 lsli r2, r2, 3 + 4db4: 122c lrw r1, 0x1388 // 4ee4 + 4db6: e3fff915 bsr 0x3fe0 // 3fe0 + UART0_Int_Enable(); + 4dba: e3fff873 bsr 0x3ea0 // 3ea0 + memset(&g_uart0,0,sizeof(UART_t)); + 4dbe: 3294 movi r2, 148 + 4dc0: 3100 movi r1, 0 + 4dc2: 120a lrw r0, 0x200002c0 // 4ee8 + 4dc4: e3ffe9bc bsr 0x213c // 213c <__memset_fast> + g_uart0.RecvTimeout = Recv_9600_TimeOut; + 4dc8: 1269 lrw r3, 0x20000340 // 4eec + g_uart.RecvTimeout = Recv_9600_TimeOut; + 4dca: 3203 movi r2, 3 + 4dcc: b342 st.w r2, (r3, 0x8) + g_uart.processing_cf = prt_cf; + 4dce: b3a4 st.w r5, (r3, 0x10) +} + 4dd0: 07e7 br 0x4d9e // 4d9e + memset(&m_send,0,sizeof(MULIT_t)); + 4dd2: 1288 lrw r4, 0x200003e8 // 4ef0 + memset(&g_uart1,0,sizeof(UART_t)); + 4dd4: 3294 movi r2, 148 + 4dd6: 3100 movi r1, 0 + 4dd8: 1207 lrw r0, 0x20000354 // 4ef4 + 4dda: e3ffe9b1 bsr 0x213c // 213c <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 4dde: 3288 movi r2, 136 + 4de0: 3100 movi r1, 0 + 4de2: 6c13 mov r0, r4 + 4de4: e3ffe9ac bsr 0x213c // 213c <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 4de8: 1264 lrw r3, 0x200003d4 // 4ef8 + 4dea: 3203 movi r2, 3 + 4dec: b342 st.w r2, (r3, 0x8) + g_uart1.processing_cf = prt_cf; + 4dee: b3a4 st.w r5, (r3, 0x10) + m_send.HighBit_Flag = 0x01; + 4df0: 245f addi r4, 96 + m_send.BusState_Tick = SysTick_1ms; + 4df2: 1263 lrw r3, 0x200000d4 // 4efc + GPIO_PullHigh_Init(GPIOA0,15); + 4df4: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 4df6: 9360 ld.w r3, (r3, 0x0) + 4df8: b467 st.w r3, (r4, 0x1c) + m_send.HighBit_Flag = 0x01; + 4dfa: 3301 movi r3, 1 + 4dfc: a465 st.b r3, (r4, 0x5) + GPIO_PullHigh_Init(GPIOA0,15); + 4dfe: 1281 lrw r4, 0x20000050 // 4f00 + 4e00: 9400 ld.w r0, (r4, 0x0) + 4e02: e3fff699 bsr 0x3b34 // 3b34 + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 4e06: 320f movi r2, 15 + 4e08: 310f movi r1, 15 + 4e0a: 3000 movi r0, 0 + 4e0c: e3fff6a6 bsr 0x3b58 // 3b58 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 4e10: 300f movi r0, 15 + 4e12: e3fff729 bsr 0x3c64 // 3c64 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 4e16: 3180 movi r1, 128 + 4e18: 3201 movi r2, 1 + 4e1a: 4128 lsli r1, r1, 8 + 4e1c: 3001 movi r0, 1 + 4e1e: e3fff56b bsr 0x38f4 // 38f4 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 4e22: 3180 movi r1, 128 + 4e24: 3200 movi r2, 0 + 4e26: 4128 lsli r1, r1, 8 + 4e28: 3001 movi r0, 1 + 4e2a: e3fff565 bsr 0x38f4 // 38f4 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 4e2e: 3180 movi r1, 128 + 4e30: 4128 lsli r1, r1, 8 + 4e32: 3001 movi r0, 1 + 4e34: e3fff580 bsr 0x3934 // 3934 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 4e38: 3180 movi r1, 128 + 4e3a: 9400 ld.w r0, (r4, 0x0) + 4e3c: 4128 lsli r1, r1, 8 + 4e3e: e3fff595 bsr 0x3968 // 3968 + EXI4_Int_Enable(); + 4e42: e3fff595 bsr 0x396c // 396c + UART1_DeInit(); //clear all UART Register + 4e46: e3fff815 bsr 0x3e70 // 3e70 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 4e4a: 3102 movi r1, 2 + 4e4c: 3001 movi r0, 1 + 4e4e: e3fff853 bsr 0x3ef4 // 3ef4 + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 4e52: 116d lrw r3, 0x20000040 // 4f04 + 4e54: 3200 movi r2, 0 + 4e56: 9300 ld.w r0, (r3, 0x0) + 4e58: 1123 lrw r1, 0x1388 // 4ee4 + 4e5a: e3fff8c3 bsr 0x3fe0 // 3fe0 + UART1_Int_Enable(); + 4e5e: e3fff82f bsr 0x3ebc // 3ebc + GPIO_Init(GPIOA0,LED_HLW_PIN,Output); + 4e62: 9400 ld.w r0, (r4, 0x0) + 4e64: 3200 movi r2, 0 + 4e66: 310b movi r1, 11 + 4e68: e3fff5f6 bsr 0x3a54 // 3a54 + GPIO_Init(GPIOA0,LED_BUS_PIN,Output); + 4e6c: 9400 ld.w r0, (r4, 0x0) + 4e6e: 3200 movi r2, 0 + 4e70: 310c movi r1, 12 + 4e72: e3fff5f1 bsr 0x3a54 // 3a54 + GPIO_Init(GPIOA0,LED_STATUS_PIN,Output); + 4e76: 3200 movi r2, 0 + 4e78: 9400 ld.w r0, (r4, 0x0) + 4e7a: 3103 movi r1, 3 + 4e7c: e3fff5ec bsr 0x3a54 // 3a54 + HLW_LED_ON; + 4e80: 9400 ld.w r0, (r4, 0x0) + 4e82: 310b movi r1, 11 + 4e84: e3fff772 bsr 0x3d68 // 3d68 + BUS_LED_ON; + 4e88: 9400 ld.w r0, (r4, 0x0) + 4e8a: 310c movi r1, 12 + 4e8c: e3fff76e bsr 0x3d68 // 3d68 + STATUS_LED_ON; + 4e90: 107e lrw r3, 0x2000004c // 4f08 + 4e92: 3103 movi r1, 3 + 4e94: 9300 ld.w r0, (r3, 0x0) + 4e96: e3fff769 bsr 0x3d68 // 3d68 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 4e9a: 3200 movi r2, 0 + 4e9c: 9400 ld.w r0, (r4, 0x0) + 4e9e: 3107 movi r1, 7 + 4ea0: e3fff5da bsr 0x3a54 // 3a54 + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 4ea4: 9400 ld.w r0, (r4, 0x0) + 4ea6: 3107 movi r1, 7 + 4ea8: e3fff650 bsr 0x3b48 // 3b48 + WRITE_LOW_DR; + 4eac: 9400 ld.w r0, (r4, 0x0) + 4eae: 3107 movi r1, 7 + 4eb0: e3fff75c bsr 0x3d68 // 3d68 + break; + 4eb4: 0775 br 0x4d9e // 4d9e + UART2_DeInit(); //clear all UART Register + 4eb6: e3fff7e9 bsr 0x3e88 // 3e88 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 4eba: 3102 movi r1, 2 + 4ebc: 3002 movi r0, 2 + 4ebe: e3fff81b bsr 0x3ef4 // 3ef4 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled , + 4ec2: 1073 lrw r3, 0x2000003c // 4f0c + 4ec4: 3200 movi r2, 0 + 4ec6: 9300 ld.w r0, (r3, 0x0) + 4ec8: 1027 lrw r1, 0x1388 // 4ee4 + 4eca: e3fff88b bsr 0x3fe0 // 3fe0 + UART2_Int_Enable(); + 4ece: e3fff805 bsr 0x3ed8 // 3ed8 + memset(&g_uart,0,sizeof(UART_t)); + 4ed2: 3294 movi r2, 148 + 4ed4: 3100 movi r1, 0 + 4ed6: 100f lrw r0, 0x2000022c // 4f10 + 4ed8: e3ffe932 bsr 0x213c // 213c <__memset_fast> + g_uart.RecvTimeout = Recv_9600_TimeOut; + 4edc: 106e lrw r3, 0x200002ac // 4f14 + 4ede: 0776 br 0x4dca // 4dca + 4ee0: 20000044 .long 0x20000044 + 4ee4: 00001388 .long 0x00001388 + 4ee8: 200002c0 .long 0x200002c0 + 4eec: 20000340 .long 0x20000340 + 4ef0: 200003e8 .long 0x200003e8 + 4ef4: 20000354 .long 0x20000354 + 4ef8: 200003d4 .long 0x200003d4 + 4efc: 200000d4 .long 0x200000d4 + 4f00: 20000050 .long 0x20000050 + 4f04: 20000040 .long 0x20000040 + 4f08: 2000004c .long 0x2000004c + 4f0c: 2000003c .long 0x2000003c + 4f10: 2000022c .long 0x2000022c + 4f14: 200002ac .long 0x200002ac + +Disassembly of section .text.UART0_RecvINT_Processing: + +00004f18 : +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + if((g_uart0.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart0.RecvLen = 0; + 4f18: 106a lrw r3, 0x20000340 // 4f40 + 4f1a: 8b22 ld.h r1, (r3, 0x4) + 4f1c: 323e movi r2, 62 + 4f1e: 6449 cmplt r2, r1 + 4f20: 0c03 bf 0x4f26 // 4f26 + 4f22: 3200 movi r2, 0 + 4f24: ab42 st.h r2, (r3, 0x4) + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + 4f26: 8b42 ld.h r2, (r3, 0x4) + 4f28: 5a22 addi r1, r2, 1 + 4f2a: ab22 st.h r1, (r3, 0x4) + 4f2c: 1026 lrw r1, 0x200002c0 // 4f44 + 4f2e: 6084 addu r2, r1 + 4f30: a200 st.b r0, (r2, 0x0) + + g_uart0.RecvIdleTiming = SysTick_1ms; + 4f32: 1046 lrw r2, 0x200000d4 // 4f48 + 4f34: 9240 ld.w r2, (r2, 0x0) + 4f36: b343 st.w r2, (r3, 0xc) + g_uart0.Receiving = 0x01; + 4f38: 3201 movi r2, 1 + 4f3a: a340 st.b r2, (r3, 0x0) +} + 4f3c: 783c jmp r15 + 4f3e: 0000 bkpt + 4f40: 20000340 .long 0x20000340 + 4f44: 200002c0 .long 0x200002c0 + 4f48: 200000d4 .long 0x200000d4 + +Disassembly of section .text.UART1_RecvINT_Processing: + +00004f4c : +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 4f4c: 106a lrw r3, 0x200003d4 // 4f74 + 4f4e: 8b22 ld.h r1, (r3, 0x4) + 4f50: 323e movi r2, 62 + 4f52: 6449 cmplt r2, r1 + 4f54: 0c03 bf 0x4f5a // 4f5a + 4f56: 3200 movi r2, 0 + 4f58: ab42 st.h r2, (r3, 0x4) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 4f5a: 8b42 ld.h r2, (r3, 0x4) + 4f5c: 5a22 addi r1, r2, 1 + 4f5e: ab22 st.h r1, (r3, 0x4) + 4f60: 1026 lrw r1, 0x20000354 // 4f78 + 4f62: 6084 addu r2, r1 + 4f64: a200 st.b r0, (r2, 0x0) + + g_uart1.RecvIdleTiming = SysTick_1ms; + 4f66: 1046 lrw r2, 0x200000d4 // 4f7c + 4f68: 9240 ld.w r2, (r2, 0x0) + 4f6a: b343 st.w r2, (r3, 0xc) + g_uart1.Receiving = 0x01; + 4f6c: 3201 movi r2, 1 + 4f6e: a340 st.b r2, (r3, 0x0) + +} + 4f70: 783c jmp r15 + 4f72: 0000 bkpt + 4f74: 200003d4 .long 0x200003d4 + 4f78: 20000354 .long 0x20000354 + 4f7c: 200000d4 .long 0x200000d4 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00004f80 : +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 4f80: 106a lrw r3, 0x200002ac // 4fa8 + 4f82: 8b22 ld.h r1, (r3, 0x4) + 4f84: 323e movi r2, 62 + 4f86: 6449 cmplt r2, r1 + 4f88: 0c03 bf 0x4f8e // 4f8e + 4f8a: 3200 movi r2, 0 + 4f8c: ab42 st.h r2, (r3, 0x4) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 4f8e: 8b42 ld.h r2, (r3, 0x4) + 4f90: 5a22 addi r1, r2, 1 + 4f92: ab22 st.h r1, (r3, 0x4) + 4f94: 1026 lrw r1, 0x2000022c // 4fac + 4f96: 6084 addu r2, r1 + 4f98: a200 st.b r0, (r2, 0x0) + + g_uart.RecvIdleTiming = SysTick_1ms; + 4f9a: 1046 lrw r2, 0x200000d4 // 4fb0 + 4f9c: 9240 ld.w r2, (r2, 0x0) + 4f9e: b343 st.w r2, (r3, 0xc) + g_uart.Receiving = 0x01; + 4fa0: 3201 movi r2, 1 + 4fa2: a340 st.b r2, (r3, 0x0) +} + 4fa4: 783c jmp r15 + 4fa6: 0000 bkpt + 4fa8: 200002ac .long 0x200002ac + 4fac: 2000022c .long 0x2000022c + 4fb0: 200000d4 .long 0x200000d4 + +Disassembly of section .text.MCU485_SendData: + +00004fb4 : + }while(Dataval == 0x00); //发送完成 + uart->ISR=UART_TX_DONE_S; +} + +volatile int RS485_Comm_Flag = 0,RS485_Comm_Start = 0,RS485_Comm_End = 0,RS485_Comming = 0; +void MCU485_SendData(U8_T *buff,U16_T len){ + 4fb4: 14d4 push r4-r7, r15 + 4fb6: 1421 subi r14, r14, 4 + 4fb8: b800 st.w r0, (r14, 0x0) + 4fba: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 4fbc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 4fbe: 109f lrw r4, 0x200000d8 // 5038 + 4fc0: 10df lrw r6, 0x20000050 // 503c + 4fc2: 9460 ld.w r3, (r4, 0x0) + 4fc4: 3b41 cmpnei r3, 1 + 4fc6: 0c2d bf 0x5020 // 5020 + } + + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + } + + CK_CPU_DisAllNormalIrq(); + 4fc8: e3fffedf bsr 0x4d86 // 4d86 + + WRITE_HIGH_DR; //GPIO_Write_High(GPIOA0,7); + 4fcc: 3107 movi r1, 7 + 4fce: 9600 ld.w r0, (r6, 0x0) + 4fd0: e3fff6c8 bsr 0x3d60 // 3d60 + + RS485_Comm_Flag = 0x01; + 4fd4: 3301 movi r3, 1 + 4fd6: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 4fd8: 3300 movi r3, 0 + 4fda: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 4fdc: b463 st.w r3, (r4, 0xc) + CK_CPU_EnAllNormalIrq(); + 4fde: e3fffed1 bsr 0x4d80 // 4d80 + + UARTTransmit(UART1,buff,len); + 4fe2: 1078 lrw r3, 0x20000040 // 5040 + 4fe4: 6c9f mov r2, r7 + 4fe6: 9300 ld.w r0, (r3, 0x0) + 4fe8: 9820 ld.w r1, (r14, 0x0) + 4fea: e3fff803 bsr 0x3ff0 // 3ff0 + + do{ + delay_nus(100); + 4fee: 3064 movi r0, 100 + 4ff0: e3fff8f8 bsr 0x41e0 // 41e0 + + delay_cnt ++; + 4ff4: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 4ff6: 3363 movi r3, 99 + 4ff8: 654c cmphs r3, r5 + 4ffa: 0c07 bf 0x5008 // 5008 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 4ffc: 9462 ld.w r3, (r4, 0x8) + 4ffe: 65cd cmplt r3, r7 + 5000: 0bf7 bt 0x4fee // 4fee + 5002: 9463 ld.w r3, (r4, 0xc) + 5004: 65cd cmplt r3, r7 + 5006: 0bf4 bt 0x4fee // 4fee + + CK_CPU_DisAllNormalIrq(); + 5008: e3fffebf bsr 0x4d86 // 4d86 + WRITE_LOW_DR; //GPIO_Write_Low(GPIOA0,7); + 500c: 9600 ld.w r0, (r6, 0x0) + 500e: 3107 movi r1, 7 + 5010: e3fff6ac bsr 0x3d68 // 3d68 + + RS485_Comm_Flag = 0x00; + 5014: 3300 movi r3, 0 + 5016: b461 st.w r3, (r4, 0x4) + CK_CPU_EnAllNormalIrq(); + 5018: e3fffeb4 bsr 0x4d80 // 4d80 +} + 501c: 1401 addi r14, r14, 4 + 501e: 1494 pop r4-r7, r15 + delay_nus(100); + 5020: 3064 movi r0, 100 + 5022: e3fff8df bsr 0x41e0 // 41e0 + delay_cnt ++; + 5026: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 5028: 3364 movi r3, 100 + 502a: 64d6 cmpne r5, r3 + 502c: 0fce bf 0x4fc8 // 4fc8 + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + 502e: 3107 movi r1, 7 + 5030: 9600 ld.w r0, (r6, 0x0) + 5032: e3fff69f bsr 0x3d70 // 3d70 + 5036: 07c6 br 0x4fc2 // 4fc2 + 5038: 200000d8 .long 0x200000d8 + 503c: 20000050 .long 0x20000050 + 5040: 20000040 .long 0x20000040 + +Disassembly of section .text.BUS485_Send: + +00005044 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 5044: 14d4 push r4-r7, r15 + 5046: 1423 subi r14, r14, 12 + 5048: b802 st.w r0, (r14, 0x8) + 504a: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 504c: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 504e: 1189 lrw r4, 0x200000d8 // 50f0 + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 5050: 11c9 lrw r6, 0x20000050 // 50f4 + while(RS485_Comming == 0x01){ + 5052: 9460 ld.w r3, (r4, 0x0) + 5054: 3b41 cmpnei r3, 1 + 5056: 0c3e bf 0x50d2 // 50d2 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 5058: 1168 lrw r3, 0x20000448 // 50f8 + 505a: 83c4 ld.b r6, (r3, 0x4) + 505c: 3e40 cmpnei r6, 0 + 505e: b861 st.w r3, (r14, 0x4) + 5060: 0845 bt 0x50ea // 50ea + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //485_DR + 5062: 11e5 lrw r7, 0x20000050 // 50f4 + CK_CPU_DisAllNormalIrq(); + 5064: e3fffe91 bsr 0x4d86 // 4d86 + WRITE_HIGH_DR; //485_DR + 5068: 3107 movi r1, 7 + 506a: 9700 ld.w r0, (r7, 0x0) + 506c: e3fff67a bsr 0x3d60 // 3d60 + + RS485_Comm_Flag = 0x01; + 5070: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 5072: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 5074: b441 st.w r2, (r4, 0x4) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 5076: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 5078: b4c2 st.w r6, (r4, 0x8) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 507a: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 507c: b4c3 st.w r6, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 507e: e3fffe81 bsr 0x4d80 // 4d80 + + UARTTransmit(UART1,buff,len); + 5082: 105f lrw r2, 0x20000040 // 50fc + 5084: 9200 ld.w r0, (r2, 0x0) + 5086: 9822 ld.w r1, (r14, 0x8) + 5088: 9840 ld.w r2, (r14, 0x0) + 508a: e3fff7b3 bsr 0x3ff0 // 3ff0 + do{ + delay_nus(100); + 508e: 3064 movi r0, 100 + 5090: e3fff8a8 bsr 0x41e0 // 41e0 + delay_cnt ++; + 5094: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 5096: 3363 movi r3, 99 + 5098: 654c cmphs r3, r5 + 509a: 0c08 bf 0x50aa // 50aa + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 509c: 9462 ld.w r3, (r4, 0x8) + 509e: 9840 ld.w r2, (r14, 0x0) + 50a0: 648d cmplt r3, r2 + 50a2: 0bf6 bt 0x508e // 508e + 50a4: 9463 ld.w r3, (r4, 0xc) + 50a6: 648d cmplt r3, r2 + 50a8: 0bf3 bt 0x508e // 508e + + CK_CPU_DisAllNormalIrq(); + 50aa: e3fffe6e bsr 0x4d86 // 4d86 + + WRITE_LOW_DR; //485_DR + 50ae: 9700 ld.w r0, (r7, 0x0) + 50b0: 3107 movi r1, 7 + 50b2: e3fff65b bsr 0x3d68 // 3d68 + + RS485_Comm_Flag = 0x00; + 50b6: 3300 movi r3, 0 + 50b8: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 50ba: 1072 lrw r3, 0x200000d4 // 5100 + 50bc: 9340 ld.w r2, (r3, 0x0) + 50be: 1072 lrw r3, 0x200003e8 // 5104 + 50c0: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 50c2: 9861 ld.w r3, (r14, 0x4) + 50c4: 3200 movi r2, 0 + 50c6: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 50c8: e3fffe5c bsr 0x4d80 // 4d80 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 50cc: 6c1b mov r0, r6 + 50ce: 1403 addi r14, r14, 12 + 50d0: 1494 pop r4-r7, r15 + delay_nus(100); + 50d2: 3064 movi r0, 100 + 50d4: e3fff886 bsr 0x41e0 // 41e0 + delay_cnt ++; + 50d8: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 50da: 3364 movi r3, 100 + 50dc: 64d6 cmpne r5, r3 + 50de: 0fbd bf 0x5058 // 5058 + REVERISE_DR; //485_DR + 50e0: 3107 movi r1, 7 + 50e2: 9600 ld.w r0, (r6, 0x0) + 50e4: e3fff646 bsr 0x3d70 // 3d70 + 50e8: 07b5 br 0x5052 // 5052 + return UART_BUSBUSY; //发送失败 + 50ea: 3601 movi r6, 1 + 50ec: 07f0 br 0x50cc // 50cc + 50ee: 0000 bkpt + 50f0: 200000d8 .long 0x200000d8 + 50f4: 20000050 .long 0x20000050 + 50f8: 20000448 .long 0x20000448 + 50fc: 20000040 .long 0x20000040 + 5100: 200000d4 .long 0x200000d4 + 5104: 200003e8 .long 0x200003e8 + +Disassembly of section .text.Set_GroupSend: + +00005108 : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 5108: 14d4 push r4-r7, r15 + 510a: 1422 subi r14, r14, 8 + 510c: 6d8b mov r6, r2 + 510e: 9847 ld.w r2, (r14, 0x1c) + 5110: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 5112: 5943 subi r2, r1, 1 +{ + 5114: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 5116: 7489 zexth r2, r2 + 5118: 3163 movi r1, 99 + 511a: 6484 cmphs r1, r2 +{ + 511c: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 511e: 0c20 bf 0x515e // 515e + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 5120: 1091 lrw r4, 0x200003e8 // 5164 + 5122: 3264 movi r2, 100 + 5124: 3100 movi r1, 0 + 5126: 6c13 mov r0, r4 + 5128: b861 st.w r3, (r14, 0x4) + 512a: e3ffe809 bsr 0x213c // 213c <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 512e: 6c97 mov r2, r5 + 5130: 6c13 mov r0, r4 + 5132: 6c5f mov r1, r7 + 5134: e3ffe848 bsr 0x21c4 // 21c4 <__memcpy_fast> + m_send.SendLen = sled; + 5138: 3240 movi r2, 64 + 513a: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 513c: 9861 ld.w r3, (r14, 0x4) + 513e: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 5140: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 5142: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 5144: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 5146: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 5148: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 514a: 3201 movi r2, 1 + 514c: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 514e: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 5150: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 5152: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 5154: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 5156: 247f addi r4, 128 + 5158: 1064 lrw r3, 0x200000d4 // 5168 + 515a: 9360 ld.w r3, (r3, 0x0) + 515c: b461 st.w r3, (r4, 0x4) +} + 515e: 1402 addi r14, r14, 8 + 5160: 1494 pop r4-r7, r15 + 5162: 0000 bkpt + 5164: 200003e8 .long 0x200003e8 + 5168: 200000d4 .long 0x200000d4 + +Disassembly of section .text.Clear_SendFlag: + +0000516c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 516c: 1063 lrw r3, 0x20000448 // 5178 + 516e: 3200 movi r2, 0 + 5170: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 5172: a347 st.b r2, (r3, 0x7) +} + 5174: 783c jmp r15 + 5176: 0000 bkpt + 5178: 20000448 .long 0x20000448 + +Disassembly of section .text.BusIdle_Task: + +0000517c : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 517c: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 517e: 10ae lrw r5, 0x200003e8 // 51b4 + 5180: 3460 movi r4, 96 + 5182: 6114 addu r4, r5 + 5184: 8464 ld.b r3, (r4, 0x4) + 5186: 3b40 cmpnei r3, 0 + 5188: 0c15 bf 0x51b2 // 51b2 + 518a: 8466 ld.b r3, (r4, 0x6) + 518c: 3b41 cmpnei r3, 1 + 518e: 0c12 bf 0x51b2 // 51b2 + { + CK_CPU_DisAllNormalIrq(); + 5190: e3fffdfb bsr 0x4d86 // 4d86 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 5194: 8465 ld.b r3, (r4, 0x5) + 5196: 3b41 cmpnei r3, 1 + 5198: 080b bt 0x51ae // 51ae + 519a: 1068 lrw r3, 0x200000d4 // 51b8 + 519c: 9340 ld.w r2, (r3, 0x0) + 519e: 957f ld.w r3, (r5, 0x7c) + 51a0: 608e subu r2, r3 + 51a2: 957c ld.w r3, (r5, 0x70) + 51a4: 2305 addi r3, 6 + 51a6: 64c8 cmphs r2, r3 + 51a8: 0c03 bf 0x51ae // 51ae + { + m_send.BusState_Flag = UART_BUSIDLE; + 51aa: 3300 movi r3, 0 + 51ac: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 51ae: e3fffde9 bsr 0x4d80 // 4d80 + } +} + 51b2: 1492 pop r4-r5, r15 + 51b4: 200003e8 .long 0x200003e8 + 51b8: 200000d4 .long 0x200000d4 + +Disassembly of section .text.BusBusy_Task: + +000051bc : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 51bc: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 51be: 1094 lrw r4, 0x200003e8 // 520c + 51c0: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 51c2: e3fffde2 bsr 0x4d86 // 4d86 + m_send.BusState_Flag = UART_BUSBUSY; + 51c6: 6150 addu r5, r4 + 51c8: 3301 movi r3, 1 + 51ca: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 51cc: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 51ce: 1071 lrw r3, 0x200000d4 // 5210 + 51d0: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 51d2: 9300 ld.w r0, (r3, 0x0) + 51d4: 3380 movi r3, 128 + 51d6: 60d0 addu r3, r4 + 51d8: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 51da: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 51dc: 600e subu r0, r3 + 51de: e3fffdbf bsr 0x4d5c // 4d5c <__umodsi3> + 51e2: b41c st.w r0, (r4, 0x70) + + if(READ_RX_LEVEL_STATE == 0x01){ + 51e4: 310f movi r1, 15 + 51e6: 108c lrw r4, 0x20000050 // 5214 + 51e8: 9400 ld.w r0, (r4, 0x0) + 51ea: e3fff5ce bsr 0x3d86 // 3d86 + 51ee: 3841 cmpnei r0, 1 + 51f0: 0806 bt 0x51fc // 51fc + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 51f2: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 51f4: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 51f6: e3fffdc5 bsr 0x4d80 // 4d80 +} + 51fa: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 51fc: 9400 ld.w r0, (r4, 0x0) + 51fe: 310f movi r1, 15 + 5200: e3fff5c3 bsr 0x3d86 // 3d86 + 5204: 3840 cmpnei r0, 0 + 5206: 0bf8 bt 0x51f6 // 51f6 + m_send.HighBit_Flag = 0x00; //低电平 + 5208: 3300 movi r3, 0 + 520a: 07f5 br 0x51f4 // 51f4 + 520c: 200003e8 .long 0x200003e8 + 5210: 200000d4 .long 0x200000d4 + 5214: 20000050 .long 0x20000050 + +Disassembly of section .text.Dbg_Println: + +00005218 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 5218: 1423 subi r14, r14, 12 + 521a: b862 st.w r3, (r14, 0x8) + 521c: b841 st.w r2, (r14, 0x4) + 521e: b820 st.w r1, (r14, 0x0) + 5220: 14d1 push r4, r15 + 5222: 1422 subi r14, r14, 8 + 5224: 9864 ld.w r3, (r14, 0x10) + 5226: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 5228: 3301 movi r3, 1 + 522a: 1059 lrw r2, 0x2000006c // 528c + 522c: 70c0 lsl r3, r0 + 522e: 9240 ld.w r2, (r2, 0x0) + 5230: 68c8 and r3, r2 + 5232: 3b40 cmpnei r3, 0 + 5234: 0c25 bf 0x527e // 527e + SysTick_Now = SysTick_1ms; + 5236: 1097 lrw r4, 0x200000d8 // 5290 + 5238: 1077 lrw r3, 0x200000d4 // 5294 + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 523a: 9445 ld.w r2, (r4, 0x14) + SysTick_Now = SysTick_1ms; + 523c: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 523e: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 5240: b464 st.w r3, (r4, 0x10) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 5242: b446 st.w r2, (r4, 0x18) + SysTick_Last = SysTick_Now; + 5244: b465 st.w r3, (r4, 0x14) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 5246: 301c movi r0, 28 + 5248: b840 st.w r2, (r14, 0x0) + 524a: 3180 movi r1, 128 + 524c: 1053 lrw r2, 0x7ab9 // 5298 + 524e: 6010 addu r0, r4 + 5250: e3ffe71a bsr 0x2084 // 2084 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 5254: 7441 zexth r1, r0 + 5256: 301c movi r0, 28 + 5258: 6010 addu r0, r4 + 525a: e3fffead bsr 0x4fb4 // 4fb4 + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 525e: 301c movi r0, 28 + 5260: 1b05 addi r3, r14, 20 + 5262: 9841 ld.w r2, (r14, 0x4) + 5264: 3180 movi r1, 128 + 5266: 6010 addu r0, r4 + 5268: e3ffe73d bsr 0x20e2 // 20e2 <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 526c: 7441 zexth r1, r0 + 526e: 6c13 mov r0, r4 + 5270: 201b addi r0, 28 + 5272: e3fffea1 bsr 0x4fb4 // 4fb4 + + DBG_Printf("\r\n",2); + 5276: 3102 movi r1, 2 + 5278: 1009 lrw r0, 0x7ac7 // 529c + 527a: e3fffe9d bsr 0x4fb4 // 4fb4 + + + } + +#endif +} + 527e: 1402 addi r14, r14, 8 + 5280: d9ee2001 ld.w r15, (r14, 0x4) + 5284: 9880 ld.w r4, (r14, 0x0) + 5286: 1405 addi r14, r14, 20 + 5288: 783c jmp r15 + 528a: 0000 bkpt + 528c: 2000006c .long 0x2000006c + 5290: 200000d8 .long 0x200000d8 + 5294: 200000d4 .long 0x200000d4 + 5298: 00007ab9 .long 0x00007ab9 + 529c: 00007ac7 .long 0x00007ac7 + +Disassembly of section .text.MultSend_Task: + +000052a0 : +{ + 52a0: 14d4 push r4-r7, r15 + 52a2: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 52a4: 5963 subi r3, r1, 1 + 52a6: 74cd zexth r3, r3 + 52a8: 3463 movi r4, 99 + 52aa: 64d0 cmphs r4, r3 +{ + 52ac: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 52ae: 0c3c bf 0x5326 // 5326 + if(DatSd == 0x01) + 52b0: 3a41 cmpnei r2, 1 + 52b2: 0c05 bf 0x52bc // 52bc + return BUSSEND_WAIT;//等待 + 52b4: 3601 movi r6, 1 +} + 52b6: 6c1b mov r0, r6 + 52b8: 1401 addi r14, r14, 4 + 52ba: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 52bc: 107c lrw r3, 0x200003e8 // 532c + 52be: 3760 movi r7, 96 + 52c0: 61cc addu r7, r3 + 52c2: 8748 ld.b r2, (r7, 0x8) + 52c4: 878a ld.b r4, (r7, 0xa) + 52c6: 6508 cmphs r2, r4 + 52c8: 0829 bt 0x531a // 531a + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 52ca: 3480 movi r4, 128 + 52cc: 10b9 lrw r5, 0x200000d4 // 5330 + 52ce: 610c addu r4, r3 + 52d0: 9401 ld.w r0, (r4, 0x4) + 52d2: 95c0 ld.w r6, (r5, 0x0) + 52d4: 6182 subu r6, r0 + 52d6: 931e ld.w r0, (r3, 0x78) + 52d8: 6418 cmphs r6, r0 + 52da: 081a bt 0x530e // 530e + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 52dc: 3a40 cmpnei r2, 0 + 52de: 0c07 bf 0x52ec // 52ec + 52e0: 9540 ld.w r2, (r5, 0x0) + 52e2: 94c0 ld.w r6, (r4, 0x0) + 52e4: 609a subu r2, r6 + 52e6: 937d ld.w r3, (r3, 0x74) + 52e8: 64c8 cmphs r2, r3 + 52ea: 0fe5 bf 0x52b4 // 52b4 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 52ec: 9800 ld.w r0, (r14, 0x0) + 52ee: e3fffeab bsr 0x5044 // 5044 + 52f2: 3840 cmpnei r0, 0 + 52f4: 6d83 mov r6, r0 + 52f6: 0bdf bt 0x52b4 // 52b4 + m_send.ResendCnt++; + 52f8: 8748 ld.b r2, (r7, 0x8) + 52fa: 2200 addi r2, 1 + m_send.ASend_Tick = SysTick_1ms; + 52fc: 9560 ld.w r3, (r5, 0x0) + m_send.ResendCnt++; + 52fe: 7488 zextb r2, r2 + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 5300: 102d lrw r1, 0x7aca // 5334 + 5302: 3002 movi r0, 2 + m_send.ASend_Tick = SysTick_1ms; + 5304: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 5306: a748 st.b r2, (r7, 0x8) + Dbg_Println(DBG_BIT_Debug_STATUS,"SendCnt:%d success",m_send.ResendCnt); + 5308: e3ffff88 bsr 0x5218 // 5218 + 530c: 07d5 br 0x52b6 // 52b6 + Dbg_Println(DBG_BIT_Debug_STATUS,"data end"); + 530e: 102b lrw r1, 0x7add // 5338 + 5310: 3002 movi r0, 2 + 5312: e3ffff83 bsr 0x5218 // 5218 + return DATA_END;//数据有效期结束 + 5316: 3602 movi r6, 2 + 5318: 07cf br 0x52b6 // 52b6 + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + 531a: 1029 lrw r1, 0x7ae6 // 533c + 531c: 3002 movi r0, 2 + 531e: e3ffff7d bsr 0x5218 // 5218 + return RETRY_END;//没有重发次数 + 5322: 3603 movi r6, 3 + 5324: 07c9 br 0x52b6 // 52b6 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 5326: 3604 movi r6, 4 + 5328: 07c7 br 0x52b6 // 52b6 + 532a: 0000 bkpt + 532c: 200003e8 .long 0x200003e8 + 5330: 200000d4 .long 0x200000d4 + 5334: 00007aca .long 0x00007aca + 5338: 00007add .long 0x00007add + 533c: 00007ae6 .long 0x00007ae6 + +Disassembly of section .text.BUS485Send_Task: + +00005340 : +{ + 5340: 14d1 push r4, r15 + if(m_send.ASend_Flag == 0x01) + 5342: 1093 lrw r4, 0x20000448 // 538c + 5344: 8469 ld.b r3, (r4, 0x9) + 5346: 3b41 cmpnei r3, 1 + 5348: 0821 bt 0x538a // 538a + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 534a: 1072 lrw r3, 0x20000428 // 5390 + 534c: 8b37 ld.h r1, (r3, 0x2e) + 534e: 3201 movi r2, 1 + 5350: 1011 lrw r0, 0x200003e8 // 5394 + 5352: e3ffffa7 bsr 0x52a0 // 52a0 + 5356: a407 st.b r0, (r4, 0x7) + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 5358: 2801 subi r0, 2 + 535a: 7400 zextb r0, r0 + 535c: 3801 cmphsi r0, 2 + 535e: 0816 bt 0x538a // 538a + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + 5360: 102e lrw r1, 0x7af3 // 5398 + 5362: 3002 movi r0, 2 + 5364: e3ffff5a bsr 0x5218 // 5218 + m_send.ASend_Flag = 0x00; //清除发送标志位 + 5368: 3300 movi r3, 0 + 536a: a469 st.b r3, (r4, 0x9) + if(m_send.Jump_Flag == 0x01){ + 536c: 846c ld.b r3, (r4, 0xc) + 536e: 3b41 cmpnei r3, 1 + 5370: 080d bt 0x538a // 538a + Dbg_Println(DBG_BIT_Debug_STATUS,"Jump Boot"); + 5372: 102b lrw r1, 0x7afc // 539c + 5374: 3002 movi r0, 2 + 5376: e3ffff51 bsr 0x5218 // 5218 + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 537a: 106a lrw r3, 0x20000060 // 53a0 + 537c: 104a lrw r2, 0x200006e0 // 53a4 + 537e: 9360 ld.w r3, (r3, 0x0) + 5380: 924d ld.w r2, (r2, 0x34) + 5382: 23ff addi r3, 256 + 5384: b343 st.w r2, (r3, 0xc) + SYSCON_Software_Reset(); + 5386: e3fff301 bsr 0x3988 // 3988 +} + 538a: 1491 pop r4, r15 + 538c: 20000448 .long 0x20000448 + 5390: 20000428 .long 0x20000428 + 5394: 200003e8 .long 0x200003e8 + 5398: 00007af3 .long 0x00007af3 + 539c: 00007afc .long 0x00007afc + 53a0: 20000060 .long 0x20000060 + 53a4: 200006e0 .long 0x200006e0 + +Disassembly of section .text.Dbg_Print_Buff: + +000053a8 : + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 53a8: 14d4 push r4-r7, r15 + 53aa: 1422 subi r14, r14, 8 + 53ac: 6d8b mov r6, r2 + 53ae: 6dcf mov r7, r3 +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 53b0: 105a lrw r2, 0x2000006c // 5418 + 53b2: 3301 movi r3, 1 + 53b4: 70c0 lsl r3, r0 + 53b6: 9240 ld.w r2, (r2, 0x0) + 53b8: 68c8 and r3, r2 + 53ba: 3b40 cmpnei r3, 0 + 53bc: 0c20 bf 0x53fc // 53fc + SysTick_Now = SysTick_1ms; + 53be: 1098 lrw r4, 0x200000d8 // 541c + 53c0: 1078 lrw r3, 0x200000d4 // 5420 + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 53c2: 9445 ld.w r2, (r4, 0x14) + SysTick_Now = SysTick_1ms; + 53c4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 53c6: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 53c8: b464 st.w r3, (r4, 0x10) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 53ca: b446 st.w r2, (r4, 0x18) + SysTick_Last = SysTick_Now; + 53cc: b465 st.w r3, (r4, 0x14) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 53ce: 301c movi r0, 28 + 53d0: b840 st.w r2, (r14, 0x0) + 53d2: 3180 movi r1, 128 + 53d4: 1054 lrw r2, 0x7ab9 // 5424 + 53d6: 6010 addu r0, r4 + 53d8: e3ffe656 bsr 0x2084 // 2084 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 53dc: 7441 zexth r1, r0 + 53de: 301c movi r0, 28 + 53e0: 6010 addu r0, r4 + 53e2: e3fffde9 bsr 0x4fb4 // 4fb4 + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 53e6: 1071 lrw r3, 0x7b06 // 5428 + DBG_Printf(Dbg_Buffer,str_offset); + 53e8: 6d5b mov r5, r6 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 53ea: b861 st.w r3, (r14, 0x4) + 53ec: 241b addi r4, 28 + for (uint32_t i = 0; i < len; i++) { + 53ee: 5d79 subu r3, r5, r6 + 53f0: 65cc cmphs r3, r7 + 53f2: 0c07 bf 0x5400 // 5400 + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + 53f4: 3102 movi r1, 2 + 53f6: 100e lrw r0, 0x7ac7 // 542c + 53f8: e3fffdde bsr 0x4fb4 // 4fb4 + } + +#endif +} + 53fc: 1402 addi r14, r14, 8 + 53fe: 1494 pop r4-r7, r15 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 5400: 8560 ld.b r3, (r5, 0x0) + 5402: 9841 ld.w r2, (r14, 0x4) + 5404: 3180 movi r1, 128 + 5406: 6c13 mov r0, r4 + 5408: e3ffe63e bsr 0x2084 // 2084 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 540c: 7441 zexth r1, r0 + 540e: 6c13 mov r0, r4 + 5410: e3fffdd2 bsr 0x4fb4 // 4fb4 + 5414: 2500 addi r5, 1 + 5416: 07ec br 0x53ee // 53ee + 5418: 2000006c .long 0x2000006c + 541c: 200000d8 .long 0x200000d8 + 5420: 200000d4 .long 0x200000d4 + 5424: 00007ab9 .long 0x00007ab9 + 5428: 00007b06 .long 0x00007b06 + 542c: 00007ac7 .long 0x00007ac7 + +Disassembly of section .text.Dbg_BT_Println: + +00005430 : + +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...){ + 5430: 1423 subi r14, r14, 12 + 5432: b862 st.w r3, (r14, 0x8) + 5434: b841 st.w r2, (r14, 0x4) + 5436: b820 st.w r1, (r14, 0x0) + 5438: 14d0 push r15 + 543a: 1421 subi r14, r14, 4 + 543c: 9862 ld.w r3, (r14, 0x8) + 543e: b860 st.w r3, (r14, 0x0) +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 5440: 3301 movi r3, 1 + 5442: 1049 lrw r2, 0x2000006c // 5464 + 5444: 70c0 lsl r3, r0 + 5446: 9240 ld.w r2, (r2, 0x0) + 5448: 68c8 and r3, r2 + 544a: 3b40 cmpnei r3, 0 + 544c: 0c07 bf 0x545a // 545a + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 544e: 1b03 addi r3, r14, 12 + 5450: 9840 ld.w r2, (r14, 0x0) + 5452: 3180 movi r1, 128 + 5454: 1005 lrw r0, 0x200000f4 // 5468 + 5456: e3ffe646 bsr 0x20e2 // 20e2 <__cskyvprintfvsnprintf> + + DBG_BTPrintf("\r\n",2); + } + +#endif +} + 545a: 1401 addi r14, r14, 4 + 545c: d9ee2000 ld.w r15, (r14, 0x0) + 5460: 1404 addi r14, r14, 16 + 5462: 783c jmp r15 + 5464: 2000006c .long 0x2000006c + 5468: 200000f4 .long 0x200000f4 + +Disassembly of section .text.DIP_GetSwitchState: + +0000546c : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 546c: 14d0 push r15 + U8_T val = 0; + + switch (i) + 546e: 3841 cmpnei r0, 1 + 5470: 0c0d bf 0x548a // 548a + 5472: 3840 cmpnei r0, 0 + 5474: 0c05 bf 0x547e // 547e + 5476: 3842 cmpnei r0, 2 + 5478: 0c0d bf 0x5492 // 5492 + U8_T val = 0; + 547a: 3000 movi r0, 0 + 547c: 0406 br 0x5488 // 5488 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 547e: 1068 lrw r3, 0x20000050 // 549c + 5480: 310a movi r1, 10 + 5482: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 5484: e3fff481 bsr 0x3d86 // 3d86 + break; + + } + return val; +} + 5488: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 548a: 1065 lrw r3, 0x20000050 // 549c + 548c: 3109 movi r1, 9 + 548e: 9300 ld.w r0, (r3, 0x0) + 5490: 07fa br 0x5484 // 5484 + val = GPIO_Read_Status(GPIOA0,8); + 5492: 1063 lrw r3, 0x20000050 // 549c + 5494: 3108 movi r1, 8 + 5496: 9300 ld.w r0, (r3, 0x0) + 5498: 07f6 br 0x5484 // 5484 + 549a: 0000 bkpt + 549c: 20000050 .long 0x20000050 + +Disassembly of section .text.DIP_Switch_Init: + +000054a0 : +void DIP_Switch_Init(void){ + 54a0: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 54a2: 1182 lrw r4, 0x20000050 // 5528 + 54a4: 3201 movi r2, 1 + 54a6: 9400 ld.w r0, (r4, 0x0) + 54a8: 310a movi r1, 10 + 54aa: e3fff2d5 bsr 0x3a54 // 3a54 + GPIO_Init(GPIOA0,9,Intput); + 54ae: 9400 ld.w r0, (r4, 0x0) + 54b0: 3201 movi r2, 1 + 54b2: 3109 movi r1, 9 + 54b4: e3fff2d0 bsr 0x3a54 // 3a54 + GPIO_Init(GPIOA0,8,Intput); + 54b8: 3201 movi r2, 1 + 54ba: 9400 ld.w r0, (r4, 0x0) + 54bc: 3108 movi r1, 8 + 54be: e3fff2cb bsr 0x3a54 // 3a54 + GPIO_PullHigh_Init(GPIOA0,10); + 54c2: 9400 ld.w r0, (r4, 0x0) + 54c4: 310a movi r1, 10 + 54c6: e3fff337 bsr 0x3b34 // 3b34 + GPIO_PullHigh_Init(GPIOA0,9); + 54ca: 9400 ld.w r0, (r4, 0x0) + 54cc: 3109 movi r1, 9 + 54ce: e3fff333 bsr 0x3b34 // 3b34 + GPIO_PullHigh_Init(GPIOA0,8); + 54d2: 9400 ld.w r0, (r4, 0x0) + 54d4: 3108 movi r1, 8 + 54d6: e3fff32f bsr 0x3b34 // 3b34 + memset(&g_Dip,0,sizeof(DIP_t)); + 54da: 3214 movi r2, 20 + 54dc: 3100 movi r1, 0 + 54de: 1014 lrw r0, 0x20000470 // 552c + 54e0: e3ffe62e bsr 0x213c // 213c <__memset_fast> + delay_nms(20); + 54e4: 3014 movi r0, 20 + 54e6: e3fff667 bsr 0x41b4 // 41b4 + 54ea: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 54ec: 10b0 lrw r5, 0x20000470 // 552c + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 54ee: 7410 zextb r0, r4 + 54f0: e3ffffbe bsr 0x546c // 546c + 54f4: 3840 cmpnei r0, 0 + 54f6: 0807 bt 0x5504 // 5504 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 54f8: 3301 movi r3, 1 + 54fa: 70d0 lsl r3, r4 + 54fc: 6c8f mov r2, r3 + 54fe: 9563 ld.w r3, (r5, 0xc) + 5500: 6cc8 or r3, r2 + 5502: b563 st.w r3, (r5, 0xc) + 5504: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 5506: 3c43 cmpnei r4, 3 + 5508: 0bf3 bt 0x54ee // 54ee + g_Dip.DIP_last_val = g_Dip.DIP_val; + 550a: 1069 lrw r3, 0x20000470 // 552c + g_Dip.addr = g_Dip.DIP_val & 0x07; + 550c: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 550e: 9343 ld.w r2, (r3, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 5510: 6848 and r1, r2 + 5512: a326 st.b r1, (r3, 0x6) + g_Dip.Dev_Port = Passive_Port; + 5514: 3100 movi r1, 0 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 5516: b344 st.w r2, (r3, 0x10) + g_Dip.Dev_Port = Passive_Port; + 5518: a327 st.b r1, (r3, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); + 551a: 3000 movi r0, 0 + 551c: 3300 movi r3, 0 + 551e: 1025 lrw r1, 0x7b29 // 5530 + 5520: e3fffe7c bsr 0x5218 // 5218 +} + 5524: 1492 pop r4-r5, r15 + 5526: 0000 bkpt + 5528: 20000050 .long 0x20000050 + 552c: 20000470 .long 0x20000470 + 5530: 00007b29 .long 0x00007b29 + +Disassembly of section .text.EEPROM_CheckSum: + +00005534 : +E_MCU_DEV_INFO g_mcu_dev; +ENERGY_SAVE_PARA e_save; +ENERGY_SAVE eng_info; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 5534: 6cc3 mov r3, r0 + 5536: 6040 addu r1, r0 + U8_T data_sum = 0; + 5538: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 553e: 783c jmp r15 + data_sum += data[i]; + 5540: 8340 ld.b r2, (r3, 0x0) + 5542: 6008 addu r0, r2 + 5544: 7400 zextb r0, r0 + 5546: 2300 addi r3, 1 + 5548: 07f9 br 0x553a // 553a + +Disassembly of section .text.EEOROM_ENERGY_ReadSet: + +0000554c : +* Description : 读取电能检测参数 +* Parameter : +* info :读取参数指针 +*******************************************************************/ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info) +{ + 554c: 14d1 push r4, r15 + 554e: 142f subi r14, r14, 60 + 5550: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 5552: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 5554: 3232 movi r2, 50 + 5556: 3100 movi r1, 0 + 5558: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 555a: b860 st.w r3, (r14, 0x0) + 555c: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 5560: e3ffe5ee bsr 0x213c // 213c <__memset_fast> + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr,4,read_info); + 5564: 6cbb mov r2, r14 + 5566: 3104 movi r1, 4 + 5568: 111f lrw r0, 0x10000180 // 5664 + 556a: e3fff5b7 bsr 0x40d8 // 40d8 + + if(read_info[0] == EEPROM_ENERGY_SAVE_FLAG){ + 556e: d84e0000 ld.b r2, (r14, 0x0) + 5572: 33a6 movi r3, 166 + 5574: 64ca cmpne r2, r3 + 5576: 0c04 bf 0x557e // 557e + return 0x00; + } + } + } + + return 0x01; + 5578: 3001 movi r0, 1 + +} + 557a: 140f addi r14, r14, 60 + 557c: 1491 pop r4, r15 + read_len |= read_info[1]; + 557e: d82e0002 ld.b r1, (r14, 0x2) + 5582: d86e0001 ld.b r3, (r14, 0x1) + 5586: 4128 lsli r1, r1, 8 + 5588: 6c4c or r1, r3 + if(read_len <= EEPROM_ENERGY_SIZE){ + 558a: 3332 movi r3, 50 + 558c: 644c cmphs r3, r1 + 558e: 0ff5 bf 0x5578 // 5578 + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr+EEPROM_Offset_Data,read_len,para_data); + 5590: 1a02 addi r2, r14, 8 + 5592: 1116 lrw r0, 0x10000184 // 5668 + 5594: e3fff5a2 bsr 0x40d8 // 40d8 + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE_PARA)) == read_info[3]){ + 5598: 312c movi r1, 44 + 559a: 1802 addi r0, r14, 8 + 559c: e3ffffcc bsr 0x5534 // 5534 + 55a0: d86e0003 ld.b r3, (r14, 0x3) + 55a4: 640e cmpne r3, r0 + 55a6: 0be9 bt 0x5578 // 5578 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE_PARA)); + 55a8: 322c movi r2, 44 + 55aa: 1902 addi r1, r14, 8 + 55ac: 6c13 mov r0, r4 + 55ae: e3ffe60b bsr 0x21c4 // 21c4 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 55b2: 118f lrw r4, 0x20000484 // 566c + SYSCON_IWDCNT_Reload(); + 55b4: e3fff15e bsr 0x3870 // 3870 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 55b8: 9400 ld.w r0, (r4, 0x0) + 55ba: e3ffde33 bsr 0x1220 // 1220 <__extendsfdf2> + 55be: 6c83 mov r2, r0 + 55c0: 6cc7 mov r3, r1 + 55c2: 3000 movi r0, 0 + 55c4: 112b lrw r1, 0x7b4c // 5670 + 55c6: e3fffe29 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K1:%f",e_save.i_k1_val); + 55ca: 9401 ld.w r0, (r4, 0x4) + 55cc: e3ffde2a bsr 0x1220 // 1220 <__extendsfdf2> + 55d0: 6c83 mov r2, r0 + 55d2: 6cc7 mov r3, r1 + 55d4: 3000 movi r0, 0 + 55d6: 1128 lrw r1, 0x7b57 // 5674 + 55d8: e3fffe20 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_K2:%f",e_save.i_k2_val); + 55dc: 9402 ld.w r0, (r4, 0x8) + 55de: e3ffde21 bsr 0x1220 // 1220 <__extendsfdf2> + 55e2: 6c83 mov r2, r0 + 55e4: 6cc7 mov r3, r1 + 55e6: 3000 movi r0, 0 + 55e8: 1124 lrw r1, 0x7b63 // 5678 + 55ea: e3fffe17 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_K:%f",e_save.p_k_val); + 55ee: 9403 ld.w r0, (r4, 0xc) + 55f0: e3ffde18 bsr 0x1220 // 1220 <__extendsfdf2> + 55f4: 6c83 mov r2, r0 + 55f6: 6cc7 mov r3, r1 + 55f8: 3000 movi r0, 0 + 55fa: 1121 lrw r1, 0x7b6f // 567c + 55fc: e3fffe0e bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_OffSet:%f",e_save.i_OffSetVal); + 5600: 9404 ld.w r0, (r4, 0x10) + 5602: e3ffde0f bsr 0x1220 // 1220 <__extendsfdf2> + 5606: 6c83 mov r2, r0 + 5608: 6cc7 mov r3, r1 + 560a: 3000 movi r0, 0 + 560c: 103d lrw r1, 0x7b7a // 5680 + 560e: e3fffe05 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_OffSet:%f",e_save.p_OffSetVal); + 5612: 9405 ld.w r0, (r4, 0x14) + 5614: e3ffde06 bsr 0x1220 // 1220 <__extendsfdf2> + 5618: 6cc7 mov r3, r1 + 561a: 6c83 mov r2, r0 + 561c: 103a lrw r1, 0x7b8a // 5684 + 561e: 3000 movi r0, 0 + 5620: e3fffdfc bsr 0x5218 // 5218 + SYSCON_IWDCNT_Reload(); + 5624: e3fff126 bsr 0x3870 // 3870 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_max:%d",e_save.eng_save_max); + 5628: 9446 ld.w r2, (r4, 0x18) + 562a: 3000 movi r0, 0 + 562c: 1037 lrw r1, 0x7b9a // 5688 + 562e: e3fffdf5 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_offset:%d",e_save.eng_save_offset); + 5632: 9447 ld.w r2, (r4, 0x1c) + 5634: 3000 movi r0, 0 + 5636: 1036 lrw r1, 0x7baa // 568c + 5638: e3fffdf0 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Collect_Tim:%d",e_save.Collect_Tim); + 563c: 9448 ld.w r2, (r4, 0x20) + 563e: 3000 movi r0, 0 + 5640: 1034 lrw r1, 0x7bbd // 5690 + 5642: e3fffdeb bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng Report_Tim:%d",e_save.Report_Tim); + 5646: 9449 ld.w r2, (r4, 0x24) + 5648: 3000 movi r0, 0 + 564a: 1033 lrw r1, 0x7bd0 // 5694 + 564c: e3fffde6 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 5650: 3000 movi r0, 0 + 5652: 944a ld.w r2, (r4, 0x28) + 5654: 1031 lrw r1, 0x7be2 // 5698 + 5656: e3fffde1 bsr 0x5218 // 5218 + SYSCON_IWDCNT_Reload(); + 565a: e3fff10b bsr 0x3870 // 3870 + return 0x00; + 565e: 3000 movi r0, 0 + 5660: 078d br 0x557a // 557a + 5662: 0000 bkpt + 5664: 10000180 .long 0x10000180 + 5668: 10000184 .long 0x10000184 + 566c: 20000484 .long 0x20000484 + 5670: 00007b4c .long 0x00007b4c + 5674: 00007b57 .long 0x00007b57 + 5678: 00007b63 .long 0x00007b63 + 567c: 00007b6f .long 0x00007b6f + 5680: 00007b7a .long 0x00007b7a + 5684: 00007b8a .long 0x00007b8a + 5688: 00007b9a .long 0x00007b9a + 568c: 00007baa .long 0x00007baa + 5690: 00007bbd .long 0x00007bbd + 5694: 00007bd0 .long 0x00007bd0 + 5698: 00007be2 .long 0x00007be2 + +Disassembly of section .text.EEOROM_ENERGY_WriteSet: + +0000569c : +/******************************************************************************* +* Function Name : EEOROM_ENERGY_WriteSet +* Description : 将电能设置参数写入到EEPROM中 +*******************************************************************************/ +U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info) +{ + 569c: 14d0 push r15 + 569e: 142e subi r14, r14, 56 + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(ENERGY_SAVE_PARA); + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 56a0: 3300 movi r3, 0 + 56a2: 2b59 subi r3, 90 + 56a4: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 56a8: 332c movi r3, 44 + 56aa: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 56ae: 3300 movi r3, 0 + 56b0: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 56b4: 1b01 addi r3, r14, 4 +{ + 56b6: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 56b8: 322c movi r2, 44 + 56ba: 6c0f mov r0, r3 + 56bc: e3ffe584 bsr 0x21c4 // 21c4 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 56c0: 312c movi r1, 44 + 56c2: e3ffff39 bsr 0x5534 // 5534 + 56c6: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ENERGE_PARA_SaveAddr,save_len,save_data); + 56ca: 6cbb mov r2, r14 + 56cc: 3130 movi r1, 48 + 56ce: 1004 lrw r0, 0x10000180 // 56dc + 56d0: e3fff4b4 bsr 0x4038 // 4038 + + return 0; +} + 56d4: 3000 movi r0, 0 + 56d6: 140e addi r14, r14, 56 + 56d8: 1490 pop r15 + 56da: 0000 bkpt + 56dc: 10000180 .long 0x10000180 + +Disassembly of section .text.EEPROM_ENERGY_Validate: + +000056e0 : +/******************************************************************************* +* Function Name : EEPROM_ENERGY_Validate +* Description : 比对当前参数,确认是否有改变需要写入 +*******************************************************************************/ +void EEPROM_ENERGY_Validate(void) +{ + 56e0: 14d4 push r4-r7, r15 + U8_T save_flag = 0; + + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 56e2: 12a9 lrw r5, 0x20000568 // 5804 + 56e4: 1289 lrw r4, 0x20000484 // 5808 + 56e6: 95d4 ld.w r6, (r5, 0x50) + 56e8: 6c5b mov r1, r6 + 56ea: 9401 ld.w r0, (r4, 0x4) + 56ec: e3ffdd06 bsr 0x10f8 // 10f8 <__nesf2> + 56f0: 3840 cmpnei r0, 0 + 56f2: 0c80 bf 0x57f2 // 57f2 + { + e_save.i_k1_val = g_Eng.I_K1_Val; + 56f4: b4c1 st.w r6, (r4, 0x4) + save_flag = 1; + 56f6: 3601 movi r6, 1 + } + + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 56f8: 95f5 ld.w r7, (r5, 0x54) + 56fa: 6c5f mov r1, r7 + 56fc: 9402 ld.w r0, (r4, 0x8) + 56fe: e3ffdcfd bsr 0x10f8 // 10f8 <__nesf2> + 5702: 3840 cmpnei r0, 0 + 5704: 0c03 bf 0x570a // 570a + { + e_save.i_k2_val = g_Eng.I_K2_Val; + 5706: b4e2 st.w r7, (r4, 0x8) + save_flag = 1; + 5708: 3601 movi r6, 1 + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + 570a: 95f3 ld.w r7, (r5, 0x4c) + 570c: 6c5f mov r1, r7 + 570e: 9400 ld.w r0, (r4, 0x0) + 5710: e3ffdcf4 bsr 0x10f8 // 10f8 <__nesf2> + 5714: 3840 cmpnei r0, 0 + 5716: 0c03 bf 0x571c // 571c + { + e_save.v_k_val = g_Eng.V_K_Val; + 5718: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 571a: 3601 movi r6, 1 + } + + if(e_save.p_k_val != g_Eng.P_K_Val) + 571c: 9536 ld.w r1, (r5, 0x58) + 571e: 9403 ld.w r0, (r4, 0xc) + 5720: e3ffdcec bsr 0x10f8 // 10f8 <__nesf2> + 5724: 3840 cmpnei r0, 0 + 5726: 0c03 bf 0x572c // 572c + { + e_save.v_k_val = g_Eng.V_K_Val; + 5728: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 572a: 3601 movi r6, 1 + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 572c: 9537 ld.w r1, (r5, 0x5c) + 572e: 9404 ld.w r0, (r4, 0x10) + 5730: e3ffdce4 bsr 0x10f8 // 10f8 <__nesf2> + 5734: 3840 cmpnei r0, 0 + 5736: 0c03 bf 0x573c // 573c + { + e_save.v_k_val = g_Eng.V_K_Val; + 5738: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 573a: 3601 movi r6, 1 + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 573c: 9538 ld.w r1, (r5, 0x60) + 573e: 9405 ld.w r0, (r4, 0x14) + 5740: e3ffdcdc bsr 0x10f8 // 10f8 <__nesf2> + 5744: 3840 cmpnei r0, 0 + 5746: 0c03 bf 0x574c // 574c + { + e_save.v_k_val = g_Eng.V_K_Val; + 5748: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 574a: 3601 movi r6, 1 + } + + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 574c: 9579 ld.w r3, (r5, 0x64) + 574e: 9448 ld.w r2, (r4, 0x20) + 5750: 64ca cmpne r2, r3 + 5752: 0c03 bf 0x5758 // 5758 + { + e_save.Collect_Tim = g_Eng.Collect_Tim; + 5754: b468 st.w r3, (r4, 0x20) + save_flag = 1; + 5756: 3601 movi r6, 1 + } + + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 5758: 957b ld.w r3, (r5, 0x6c) + 575a: 944a ld.w r2, (r4, 0x28) + 575c: 64ca cmpne r2, r3 + 575e: 0c03 bf 0x5764 // 5764 + { + e_save.SaveFlash_Tim = g_Eng.SaveFlash_Tim; + 5760: b46a st.w r3, (r4, 0x28) + save_flag = 1; + 5762: 3601 movi r6, 1 + } + + if(e_save.Report_Tim != g_Eng.Report_Tim) + 5764: 957a ld.w r3, (r5, 0x68) + 5766: 9449 ld.w r2, (r4, 0x24) + 5768: 64ca cmpne r2, r3 + 576a: 0c46 bf 0x57f6 // 57f6 + { + e_save.Report_Tim = g_Eng.Report_Tim; + 576c: b469 st.w r3, (r4, 0x24) + save_flag = 1; + } + + if(save_flag == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + 576e: 1107 lrw r0, 0x20000484 // 5808 + 5770: e3ffff96 bsr 0x569c // 569c + +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + 5774: e3fff07e bsr 0x3870 // 3870 + Dbg_Println(DBG_BIT_SYS_STATUS,"Need Save Energy"); + 5778: 1125 lrw r1, 0x7c0a // 580c + 577a: 3000 movi r0, 0 + 577c: e3fffd4e bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"V_K:%f",e_save.v_k_val); + 5780: 9400 ld.w r0, (r4, 0x0) + 5782: e3ffdd4f bsr 0x1220 // 1220 <__extendsfdf2> + 5786: 6c83 mov r2, r0 + 5788: 6cc7 mov r3, r1 + 578a: 3000 movi r0, 0 + 578c: 1121 lrw r1, 0x7b50 // 5810 + 578e: e3fffd45 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K1:%f",e_save.i_k1_val); + 5792: 9401 ld.w r0, (r4, 0x4) + 5794: e3ffdd46 bsr 0x1220 // 1220 <__extendsfdf2> + 5798: 6c83 mov r2, r0 + 579a: 6cc7 mov r3, r1 + 579c: 3000 movi r0, 0 + 579e: 103e lrw r1, 0x7b5b // 5814 + 57a0: e3fffd3c bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_K2:%f",e_save.i_k2_val); + 57a4: 9402 ld.w r0, (r4, 0x8) + 57a6: e3ffdd3d bsr 0x1220 // 1220 <__extendsfdf2> + 57aa: 6c83 mov r2, r0 + 57ac: 6cc7 mov r3, r1 + 57ae: 3000 movi r0, 0 + 57b0: 103a lrw r1, 0x7b67 // 5818 + 57b2: e3fffd33 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_K:%f",e_save.p_k_val); + 57b6: 9403 ld.w r0, (r4, 0xc) + 57b8: e3ffdd34 bsr 0x1220 // 1220 <__extendsfdf2> + 57bc: 6c83 mov r2, r0 + 57be: 6cc7 mov r3, r1 + 57c0: 3000 movi r0, 0 + 57c2: 1037 lrw r1, 0x7b73 // 581c + 57c4: e3fffd2a bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_OS:%f",e_save.i_OffSetVal); + 57c8: 9404 ld.w r0, (r4, 0x10) + 57ca: e3ffdd2b bsr 0x1220 // 1220 <__extendsfdf2> + 57ce: 6c83 mov r2, r0 + 57d0: 6cc7 mov r3, r1 + 57d2: 3000 movi r0, 0 + 57d4: 1033 lrw r1, 0x7bf7 // 5820 + 57d6: e3fffd21 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_OS:%f",e_save.p_OffSetVal); + 57da: 9405 ld.w r0, (r4, 0x14) + 57dc: e3ffdd22 bsr 0x1220 // 1220 <__extendsfdf2> + 57e0: 6c83 mov r2, r0 + 57e2: 6cc7 mov r3, r1 + 57e4: 3000 movi r0, 0 + 57e6: 1030 lrw r1, 0x7bff // 5824 + 57e8: e3fffd18 bsr 0x5218 // 5218 + SYSCON_IWDCNT_Reload(); + 57ec: e3fff042 bsr 0x3870 // 3870 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + +#endif + } +} + 57f0: 1494 pop r4-r7, r15 + U8_T save_flag = 0; + 57f2: 3600 movi r6, 0 + 57f4: 0782 br 0x56f8 // 56f8 + if(save_flag == 0x01) + 57f6: 3e41 cmpnei r6, 1 + 57f8: 0fbb bf 0x576e // 576e + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save Energy"); + 57fa: 102c lrw r1, 0x7c07 // 5828 + 57fc: 3000 movi r0, 0 + 57fe: e3fffd0d bsr 0x5218 // 5218 +} + 5802: 07f7 br 0x57f0 // 57f0 + 5804: 20000568 .long 0x20000568 + 5808: 20000484 .long 0x20000484 + 580c: 00007c0a .long 0x00007c0a + 5810: 00007b50 .long 0x00007b50 + 5814: 00007b5b .long 0x00007b5b + 5818: 00007b67 .long 0x00007b67 + 581c: 00007b73 .long 0x00007b73 + 5820: 00007bf7 .long 0x00007bf7 + 5824: 00007bff .long 0x00007bff + 5828: 00007c07 .long 0x00007c07 + +Disassembly of section .text.EEPROM_Default_ENERGY: + +0000582c : +/******************************************************************************* +* Function Name : EEPROM_Default_ENERGY +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info) +{ + 582c: 14d1 push r4, r15 + /*APP 区域*/ + info->i_k1_val = 1; + 582e: 33fe movi r3, 254 + 5830: 4376 lsli r3, r3, 22 + 5832: b061 st.w r3, (r0, 0x4) + info->i_k2_val = 1; + 5834: b062 st.w r3, (r0, 0x8) + info->v_k_val = 2; + info->p_k_val = 1; + 5836: b063 st.w r3, (r0, 0xc) + info->i_OffSetVal = 0; + 5838: 3300 movi r3, 0 + 583a: b064 st.w r3, (r0, 0x10) + info->p_OffSetVal = 0; + 583c: b065 st.w r3, (r0, 0x14) + info->eng_save_max = EEPROM_SAVEADDR_CNT; + 583e: 1175 lrw r3, 0x9c40 // 5910 + 5840: b066 st.w r3, (r0, 0x18) + info->eng_save_offset = 1; //存储偏移编号从1开始 + 5842: 3301 movi r3, 1 + 5844: b067 st.w r3, (r0, 0x1c) + info->SaveFlash_Tim = EEPROM_SAVETIME; + 5846: 1174 lrw r3, 0x36ee80 // 5914 + 5848: b06a st.w r3, (r0, 0x28) + info->v_k_val = 2; + 584a: 3280 movi r2, 128 + info->Collect_Tim = EEPROM_COLLTIME; + 584c: 1173 lrw r3, 0xbb8 // 5918 + info->v_k_val = 2; + 584e: 4257 lsli r2, r2, 23 + info->Collect_Tim = EEPROM_COLLTIME; + 5850: b068 st.w r3, (r0, 0x20) + info->Report_Tim = EEPROM_REPTIME; + 5852: 1173 lrw r3, 0x927c0 // 591c + info->v_k_val = 2; + 5854: b040 st.w r2, (r0, 0x0) + info->Report_Tim = EEPROM_REPTIME; + 5856: b069 st.w r3, (r0, 0x24) + + +// EEOROM_ENERGY_WriteSet(info); + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Energy Use Default Para"); + 5858: 3000 movi r0, 0 + 585a: 1132 lrw r1, 0x7c1b // 5920 + 585c: e3fffcde bsr 0x5218 // 5218 + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 5860: 1191 lrw r4, 0x20000484 // 5924 + SYSCON_IWDCNT_Reload(); + 5862: e3fff007 bsr 0x3870 // 3870 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 5866: 9400 ld.w r0, (r4, 0x0) + 5868: e3ffdcdc bsr 0x1220 // 1220 <__extendsfdf2> + 586c: 6c83 mov r2, r0 + 586e: 6cc7 mov r3, r1 + 5870: 3000 movi r0, 0 + 5872: 112e lrw r1, 0x7c33 // 5928 + 5874: e3fffcd2 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K1:%f",e_save.i_k1_val); + 5878: 9401 ld.w r0, (r4, 0x4) + 587a: e3ffdcd3 bsr 0x1220 // 1220 <__extendsfdf2> + 587e: 6c83 mov r2, r0 + 5880: 6cc7 mov r3, r1 + 5882: 3000 movi r0, 0 + 5884: 112a lrw r1, 0x7c42 // 592c + 5886: e3fffcc9 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_K2:%f",e_save.i_k2_val); + 588a: 9402 ld.w r0, (r4, 0x8) + 588c: e3ffdcca bsr 0x1220 // 1220 <__extendsfdf2> + 5890: 6c83 mov r2, r0 + 5892: 6cc7 mov r3, r1 + 5894: 3000 movi r0, 0 + 5896: 1127 lrw r1, 0x7c52 // 5930 + 5898: e3fffcc0 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_K:%f",e_save.p_k_val); + 589c: 9403 ld.w r0, (r4, 0xc) + 589e: e3ffdcc1 bsr 0x1220 // 1220 <__extendsfdf2> + 58a2: 6c83 mov r2, r0 + 58a4: 6cc7 mov r3, r1 + 58a6: 3000 movi r0, 0 + 58a8: 1123 lrw r1, 0x7c62 // 5934 + 58aa: e3fffcb7 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_OffSet:%f",e_save.i_OffSetVal); + 58ae: 9404 ld.w r0, (r4, 0x10) + 58b0: e3ffdcb8 bsr 0x1220 // 1220 <__extendsfdf2> + 58b4: 6c83 mov r2, r0 + 58b6: 6cc7 mov r3, r1 + 58b8: 3000 movi r0, 0 + 58ba: 1120 lrw r1, 0x7c71 // 5938 + 58bc: e3fffcae bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_OffSet:%f",e_save.p_OffSetVal); + 58c0: 9405 ld.w r0, (r4, 0x14) + 58c2: e3ffdcaf bsr 0x1220 // 1220 <__extendsfdf2> + 58c6: 6cc7 mov r3, r1 + 58c8: 6c83 mov r2, r0 + 58ca: 103d lrw r1, 0x7c85 // 593c + 58cc: 3000 movi r0, 0 + 58ce: e3fffca5 bsr 0x5218 // 5218 + SYSCON_IWDCNT_Reload(); + 58d2: e3ffefcf bsr 0x3870 // 3870 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_max:%d",e_save.eng_save_max); + 58d6: 9446 ld.w r2, (r4, 0x18) + 58d8: 3000 movi r0, 0 + 58da: 103a lrw r1, 0x7c99 // 5940 + 58dc: e3fffc9e bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_offset:%d",e_save.eng_save_offset); + 58e0: 9447 ld.w r2, (r4, 0x1c) + 58e2: 3000 movi r0, 0 + 58e4: 1038 lrw r1, 0x7cad // 5944 + 58e6: e3fffc99 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Collect_Tim:%d",e_save.Collect_Tim); + 58ea: 9448 ld.w r2, (r4, 0x20) + 58ec: 3000 movi r0, 0 + 58ee: 1037 lrw r1, 0x7cc4 // 5948 + 58f0: e3fffc94 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default Report_Tim:%d",e_save.Report_Tim); + 58f4: 9449 ld.w r2, (r4, 0x24) + 58f6: 3000 movi r0, 0 + 58f8: 1035 lrw r1, 0x7cdb // 594c + 58fa: e3fffc8f bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default SaveFlash_Tim:%d",e_save.SaveFlash_Tim); + 58fe: 944a ld.w r2, (r4, 0x28) + 5900: 3000 movi r0, 0 + 5902: 1034 lrw r1, 0x7cf1 // 5950 + 5904: e3fffc8a bsr 0x5218 // 5218 + + SYSCON_IWDCNT_Reload(); + 5908: e3ffefb4 bsr 0x3870 // 3870 + +#endif + +} + 590c: 1491 pop r4, r15 + 590e: 0000 bkpt + 5910: 00009c40 .long 0x00009c40 + 5914: 0036ee80 .long 0x0036ee80 + 5918: 00000bb8 .long 0x00000bb8 + 591c: 000927c0 .long 0x000927c0 + 5920: 00007c1b .long 0x00007c1b + 5924: 20000484 .long 0x20000484 + 5928: 00007c33 .long 0x00007c33 + 592c: 00007c42 .long 0x00007c42 + 5930: 00007c52 .long 0x00007c52 + 5934: 00007c62 .long 0x00007c62 + 5938: 00007c71 .long 0x00007c71 + 593c: 00007c85 .long 0x00007c85 + 5940: 00007c99 .long 0x00007c99 + 5944: 00007cad .long 0x00007cad + 5948: 00007cc4 .long 0x00007cc4 + 594c: 00007cdb .long 0x00007cdb + 5950: 00007cf1 .long 0x00007cf1 + +Disassembly of section .text.EEPROM_ReadTotalEng: + +00005954 : +/********************************************************************* + * Function Name : EEPROM_ReadTotalEng + * Description : 读取总电量、存储总次数 + *********************************************************************/ +U8_T EEPROM_ReadTotalEng(ENERGY_SAVE *info) +{ + 5954: 14d2 push r4-r5, r15 + 5956: 1430 subi r14, r14, 64 + 5958: 6d43 mov r5, r0 + U8_T read_info[10]; //帧头 + U8_T para_data[EEPROM_ENERGY_SIZE]; //存储数据 + UINT16 read_len = 0; //存储数据长度 + uint32_t save_block = 0; //存储扇区编号 + + memset(read_info,0,sizeof(read_info)); + 595a: 320a movi r2, 10 + 595c: 3100 movi r1, 0 + 595e: 6c3b mov r0, r14 + 5960: e3ffe3ee bsr 0x213c // 213c <__memset_fast> + memset(para_data,0,sizeof(para_data)); + 5964: 3232 movi r2, 50 + 5966: 3100 movi r1, 0 + 5968: 1803 addi r0, r14, 12 + 596a: e3ffe3e9 bsr 0x213c // 213c <__memset_fast> + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 596e: 1163 lrw r3, 0x20000484 // 59f8 + 5970: 9387 ld.w r4, (r3, 0x1c) + 5972: 3c40 cmpnei r4, 0 + 5974: 0c3b bf 0x59ea // 59ea + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + + temp_addr = EEPROM_EngSave_StartAddr + (save_block - 1) * EEPROM_OFFSET_ADDRSIZE; //通过扇区编号计算当前总能耗存储扇区地址 + 5976: 1162 lrw r3, 0x400008 // 59fc + 5978: 610c addu r4, r3 + 597a: 4486 lsli r4, r4, 6 + + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 597c: 1141 lrw r2, 0xeffffdc0 // 5a00 + 597e: 33b0 movi r3, 176 + 5980: 6090 addu r2, r4 + 5982: 4363 lsli r3, r3, 3 + 5984: 648c cmphs r3, r2 + 5986: 0c34 bf 0x59ee // 59ee + + ReadDataArry_U8(temp_addr,4,read_info); //读取目标地址的标志位和存储数据长度 + 5988: 6cbb mov r2, r14 + 598a: 3104 movi r1, 4 + 598c: 6c13 mov r0, r4 + 598e: e3fff3a5 bsr 0x40d8 // 40d8 + + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 5992: d84e0000 ld.b r2, (r14, 0x0) + 5996: 33a6 movi r3, 166 + 5998: 64ca cmpne r2, r3 + 599a: 082c bt 0x59f2 // 59f2 + + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 599c: d82e0002 ld.b r1, (r14, 0x2) + 59a0: d86e0001 ld.b r3, (r14, 0x1) + 59a4: 4128 lsli r1, r1, 8 + 59a6: 6c4c or r1, r3 + + if(read_len <= EEPROM_ENERGY_SIZE){ + 59a8: 3332 movi r3, 50 + 59aa: 644c cmphs r3, r1 + 59ac: 0c16 bf 0x59d8 // 59d8 + + ReadDataArry_U8(temp_addr+EEPROM_Offset_Data,read_len,para_data); + 59ae: 5c0e addi r0, r4, 4 + 59b0: 1a03 addi r2, r14, 12 + 59b2: e3fff393 bsr 0x40d8 // 40d8 + + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE)) == read_info[3]){ + 59b6: 310c movi r1, 12 + 59b8: 1803 addi r0, r14, 12 + 59ba: e3fffdbd bsr 0x5534 // 5534 + 59be: d86e0003 ld.b r3, (r14, 0x3) + 59c2: 640e cmpne r3, r0 + 59c4: 080c bt 0x59dc // 59dc + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE)); + 59c6: 1903 addi r1, r14, 12 + 59c8: 320c movi r2, 12 + 59ca: 6c17 mov r0, r5 + 59cc: e3ffe3fc bsr 0x21c4 // 21c4 <__memcpy_fast> + + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadSucc"); + 59d0: 102d lrw r1, 0x7d0a // 5a04 + 59d2: 3000 movi r0, 0 + 59d4: e3fffc22 bsr 0x5218 // 5218 + return 0x04; + } + + } + + return 0x00; + 59d8: 3000 movi r0, 0 + 59da: 0406 br 0x59e6 // 59e6 + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadFail"); + 59dc: 3000 movi r0, 0 + 59de: 102b lrw r1, 0x7d1f // 5a08 + 59e0: e3fffc1c bsr 0x5218 // 5218 + return 0x04; + 59e4: 3004 movi r0, 4 +} + 59e6: 1410 addi r14, r14, 64 + 59e8: 1492 pop r4-r5, r15 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 59ea: 3001 movi r0, 1 + 59ec: 07fd br 0x59e6 // 59e6 + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + 59ee: 3002 movi r0, 2 + 59f0: 07fb br 0x59e6 // 59e6 + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + 59f2: 3003 movi r0, 3 + 59f4: 07f9 br 0x59e6 // 59e6 + 59f6: 0000 bkpt + 59f8: 20000484 .long 0x20000484 + 59fc: 00400008 .long 0x00400008 + 5a00: effffdc0 .long 0xeffffdc0 + 5a04: 00007d0a .long 0x00007d0a + 5a08: 00007d1f .long 0x00007d1f + +Disassembly of section .text.EEPROM_WriteTotalEng: + +00005a0c : +/********************************************************************* + * Function Name : EEPROM_WriteTotalEng + * Description : 写入总电量 + *********************************************************************/ +U8_T EEPROM_WriteTotalEng(ENERGY_SAVE *info) +{ + 5a0c: 14d4 push r4-r7, r15 + 5a0e: 142f subi r14, r14, 60 + U8_T savepara_falg = 0x00; + U32_T temp_addr = EEPROM_EngSave_StartAddr; + U16_T save_len = sizeof(ENERGY_SAVE); + uint32_t save_block = 0,save_cnt = 0; + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 5a10: 11c7 lrw r6, 0x20000484 // 5aac +{ + 5a12: 6dc3 mov r7, r0 + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + 5a14: 9667 ld.w r3, (r6, 0x1c) + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 5a16: 3b40 cmpnei r3, 0 + 5a18: 0c43 bf 0x5a9e // 5a9e + if(e_save.eng_save_max == 0) return 0x02; + 5a1a: 9626 ld.w r1, (r6, 0x18) + 5a1c: 3940 cmpnei r1, 0 + 5a1e: 0c42 bf 0x5aa2 // 5aa2 + + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 5a20: 3200 movi r2, 0 + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + 5a22: 9001 ld.w r0, (r0, 0x4) + if(info->eng_save_cnt >= 0xFFFFFFFF){ + 5a24: 2a00 subi r2, 1 + 5a26: 6482 cmpne r0, r2 + 5a28: 0c3f bf 0x5aa6 // 5aa6 + return 0x03; + } + info->eng_save_cnt++; + 5a2a: 2000 addi r0, 1 + + if(info->eng_save_cnt > e_save.eng_save_max) + 5a2c: 6404 cmphs r1, r0 + info->eng_save_cnt++; + 5a2e: b701 st.w r0, (r7, 0x4) + if(info->eng_save_cnt > e_save.eng_save_max) + 5a30: 0835 bt 0x5a9a // 5a9a + 5a32: b860 st.w r3, (r14, 0x0) + { + e_save.eng_save_offset = (info->eng_save_cnt/e_save.eng_save_max)+1; //更新扇区编号 + 5a34: e3fff970 bsr 0x4d14 // 4d14 <__udivsi3> + 5a38: 2000 addi r0, 1 + 5a3a: b607 st.w r0, (r6, 0x1c) + savepara_falg = 0x01; + 5a3c: 3401 movi r4, 1 + 5a3e: 9860 ld.w r3, (r14, 0x0) + + } + + //通过扇区编号计算当前总能耗存储扇区地址 + temp_addr = EEPROM_EngSave_StartAddr + (e_save.eng_save_offset - 1) * EEPROM_OFFSET_ADDRSIZE; + 5a40: 105c lrw r2, 0x400008 // 5ab0 + 5a42: 96a7 ld.w r5, (r6, 0x1c) + 5a44: 6148 addu r5, r2 + 5a46: 45a6 lsli r5, r5, 6 + + if(temp_addr > EEPROM_EngSave_EndAddr ) //超限,不再改变存储扇区 + 5a48: 105b lrw r2, 0x100007c0 // 5ab4 + 5a4a: 6548 cmphs r2, r5 + 5a4c: 0804 bt 0x5a54 // 5a54 + { + e_save.eng_save_offset = save_block; + 5a4e: b667 st.w r3, (r6, 0x1c) + savepara_falg = 0x00; + //info->eng_save_cnt = save_cnt; + temp_addr = EEPROM_EngSave_EndAddr; + 5a50: 6d4b mov r5, r2 + savepara_falg = 0x00; + 5a52: 3400 movi r4, 0 + } + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 5a54: 3300 movi r3, 0 + 5a56: 2b59 subi r3, 90 + 5a58: dc6e0004 st.b r3, (r14, 0x4) + save_data[1] = save_len & 0xFF; + 5a5c: 330c movi r3, 12 + 5a5e: dc6e0005 st.b r3, (r14, 0x5) + save_data[2] = (save_len >> 8) & 0xFF; + 5a62: 3300 movi r3, 0 + 5a64: dc6e0006 st.b r3, (r14, 0x6) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 5a68: 1b02 addi r3, r14, 8 + 5a6a: 320c movi r2, 12 + 5a6c: 6c0f mov r0, r3 + 5a6e: 6c5f mov r1, r7 + 5a70: e3ffe3aa bsr 0x21c4 // 21c4 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 5a74: 310c movi r1, 12 + 5a76: e3fffd5f bsr 0x5534 // 5534 + 5a7a: dc0e0007 st.b r0, (r14, 0x7) + + save_len+=4; + + Page_ProgramData(temp_addr,save_len,save_data); + 5a7e: 1a01 addi r2, r14, 4 + 5a80: 3110 movi r1, 16 + 5a82: 6c17 mov r0, r5 + 5a84: e3fff2da bsr 0x4038 // 4038 + + + if(savepara_falg == 0x01) + 5a88: 3c41 cmpnei r4, 1 + 5a8a: 0805 bt 0x5a94 // 5a94 + { + EEOROM_ENERGY_WriteSet(&e_save); + 5a8c: 1008 lrw r0, 0x20000484 // 5aac + 5a8e: e3fffe07 bsr 0x569c // 569c + } + + return 0; + 5a92: 3400 movi r4, 0 +} + 5a94: 6c13 mov r0, r4 + 5a96: 140f addi r14, r14, 60 + 5a98: 1494 pop r4-r7, r15 + U8_T savepara_falg = 0x00; + 5a9a: 3400 movi r4, 0 + 5a9c: 07d2 br 0x5a40 // 5a40 + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + 5a9e: 3401 movi r4, 1 + 5aa0: 07fa br 0x5a94 // 5a94 + if(e_save.eng_save_max == 0) return 0x02; + 5aa2: 3402 movi r4, 2 + 5aa4: 07f8 br 0x5a94 // 5a94 + return 0x03; + 5aa6: 3403 movi r4, 3 + 5aa8: 07f6 br 0x5a94 // 5a94 + 5aaa: 0000 bkpt + 5aac: 20000484 .long 0x20000484 + 5ab0: 00400008 .long 0x00400008 + 5ab4: 100007c0 .long 0x100007c0 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +00005ab8 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 5ab8: 14d1 push r4, r15 + 5aba: 1432 subi r14, r14, 72 + 5abc: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 5abe: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 5ac0: 3240 movi r2, 64 + 5ac2: 3100 movi r1, 0 + 5ac4: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 5ac6: b860 st.w r3, (r14, 0x0) + 5ac8: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 5acc: e3ffe338 bsr 0x213c // 213c <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 5ad0: 3080 movi r0, 128 + 5ad2: 6cbb mov r2, r14 + 5ad4: 3104 movi r1, 4 + 5ad6: 4015 lsli r0, r0, 21 + 5ad8: e3fff300 bsr 0x40d8 // 40d8 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 5adc: d84e0000 ld.b r2, (r14, 0x0) + 5ae0: 33ae movi r3, 174 + 5ae2: 64ca cmpne r2, r3 + 5ae4: 0c04 bf 0x5aec // 5aec + return 0x00; + } + } + } + + return 0x01; + 5ae6: 3001 movi r0, 1 +} + 5ae8: 1412 addi r14, r14, 72 + 5aea: 1491 pop r4, r15 + read_len |= read_info[1]; + 5aec: d82e0002 ld.b r1, (r14, 0x2) + 5af0: d86e0001 ld.b r3, (r14, 0x1) + 5af4: 4128 lsli r1, r1, 8 + 5af6: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 5af8: 3340 movi r3, 64 + 5afa: 644c cmphs r3, r1 + 5afc: 0ff5 bf 0x5ae6 // 5ae6 + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 5afe: 1a02 addi r2, r14, 8 + 5b00: 101b lrw r0, 0x10000004 // 5b6c + 5b02: e3fff2eb bsr 0x40d8 // 40d8 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 5b06: 3125 movi r1, 37 + 5b08: 1802 addi r0, r14, 8 + 5b0a: e3fffd15 bsr 0x5534 // 5534 + 5b0e: d86e0003 ld.b r3, (r14, 0x3) + 5b12: 640e cmpne r3, r0 + 5b14: 0be9 bt 0x5ae6 // 5ae6 + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 5b16: 3225 movi r2, 37 + 5b18: 1902 addi r1, r14, 8 + 5b1a: 6c13 mov r0, r4 + 5b1c: e3ffe354 bsr 0x21c4 // 21c4 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 5b20: 1094 lrw r4, 0x200004b0 // 5b70 + SYSCON_IWDCNT_Reload(); + 5b22: e3ffeea7 bsr 0x3870 // 3870 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 5b26: 8440 ld.b r2, (r4, 0x0) + 5b28: 1033 lrw r1, 0x7d87 // 5b74 + 5b2a: 3000 movi r0, 0 + 5b2c: e3fffb76 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevType:%d",g_mcu_dev.dev_type); + 5b30: 8441 ld.b r2, (r4, 0x1) + 5b32: 1032 lrw r1, 0x7d95 // 5b78 + 5b34: 3000 movi r0, 0 + 5b36: e3fffb71 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 5b3a: 8442 ld.b r2, (r4, 0x2) + 5b3c: 1030 lrw r1, 0x7da3 // 5b7c + 5b3e: 3000 movi r0, 0 + 5b40: e3fffb6c bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAppVer:%d",g_mcu_dev.dev_app_ver); + 5b44: 8443 ld.b r2, (r4, 0x3) + 5b46: 102f lrw r1, 0x7db4 // 5b80 + 5b48: 3000 movi r0, 0 + 5b4a: e3fffb67 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 5b4e: 8444 ld.b r2, (r4, 0x4) + 5b50: 102d lrw r1, 0x7dc4 // 5b84 + 5b52: 3000 movi r0, 0 + 5b54: e3fffb62 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 5b58: 3000 movi r0, 0 + 5b5a: 5c52 addi r2, r4, 5 + 5b5c: 102b lrw r1, 0x7dd5 // 5b88 + 5b5e: e3fffb5d bsr 0x5218 // 5218 + SYSCON_IWDCNT_Reload(); + 5b62: e3ffee87 bsr 0x3870 // 3870 + return 0x00; + 5b66: 3000 movi r0, 0 + 5b68: 07c0 br 0x5ae8 // 5ae8 + 5b6a: 0000 bkpt + 5b6c: 10000004 .long 0x10000004 + 5b70: 200004b0 .long 0x200004b0 + 5b74: 00007d87 .long 0x00007d87 + 5b78: 00007d95 .long 0x00007d95 + 5b7c: 00007da3 .long 0x00007da3 + 5b80: 00007db4 .long 0x00007db4 + 5b84: 00007dc4 .long 0x00007dc4 + 5b88: 00007dd5 .long 0x00007dd5 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00005b8c : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 5b8c: 14d0 push r15 + 5b8e: 1432 subi r14, r14, 72 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 5b90: 3300 movi r3, 0 + 5b92: 2b51 subi r3, 82 + 5b94: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 5b98: 3325 movi r3, 37 + 5b9a: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 5b9e: 3300 movi r3, 0 + 5ba0: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 5ba4: 1b01 addi r3, r14, 4 +{ + 5ba6: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 5ba8: 3225 movi r2, 37 + 5baa: 6c0f mov r0, r3 + 5bac: e3ffe30c bsr 0x21c4 // 21c4 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 5bb0: 3125 movi r1, 37 + 5bb2: e3fffcc1 bsr 0x5534 // 5534 + 5bb6: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 5bba: 3080 movi r0, 128 + 5bbc: 4015 lsli r0, r0, 21 + 5bbe: 6cbb mov r2, r14 + 5bc0: 3129 movi r1, 41 + 5bc2: e3fff23b bsr 0x4038 // 4038 + + return 0; +} + 5bc6: 3000 movi r0, 0 + 5bc8: 1412 addi r14, r14, 72 + 5bca: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +00005bcc : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 5bcc: 14d2 push r4-r5, r15 + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + 5bce: 3300 movi r3, 0 + 5bd0: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 5bd2: 3306 movi r3, 6 + 5bd4: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 5bd6: 3305 movi r3, 5 + 5bd8: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 5bda: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 5bdc: 3311 movi r3, 17 + 5bde: a064 st.b r3, (r0, 0x4) +{ + 5be0: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 5be2: 3220 movi r2, 32 + 5be4: 3100 movi r1, 0 + 5be6: 6c17 mov r0, r5 + 5be8: e3ffe2aa bsr 0x213c // 213c <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 5bec: 3211 movi r2, 17 + 5bee: 1025 lrw r1, 0x7de3 // 5c00 + 5bf0: 6c17 mov r0, r5 + 5bf2: e3ffe2e9 bsr 0x21c4 // 21c4 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 5bf6: 6c13 mov r0, r4 + 5bf8: e3ffffca bsr 0x5b8c // 5b8c +#endif +} + 5bfc: 1492 pop r4-r5, r15 + 5bfe: 0000 bkpt + 5c00: 00007de3 .long 0x00007de3 + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +00005c04 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 5c04: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 5c06: 8063 ld.b r3, (r0, 0x3) + 5c08: 3b45 cmpnei r3, 5 +{ + 5c0a: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 5c0c: 0c21 bf 0x5c4e // 5c4e + { + info->dev_app_ver = Project_FW_Version; + 5c0e: 3305 movi r3, 5 + 5c10: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 5c12: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 5c14: 8461 ld.b r3, (r4, 0x1) + 5c16: 3b46 cmpnei r3, 6 + 5c18: 0c04 bf 0x5c20 // 5c20 + { + info->dev_type = Project_Type; + 5c1a: 3306 movi r3, 6 + 5c1c: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 5c1e: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 5c20: 8464 ld.b r3, (r4, 0x4) + 5c22: 3b51 cmpnei r3, 17 + 5c24: 0c04 bf 0x5c2c // 5c2c + { + info->dev_name_len = sizeof(Peoject_Name); + 5c26: 3311 movi r3, 17 + 5c28: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 5c2a: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 5c2c: 5cd2 addi r6, r4, 5 + 5c2e: 3211 movi r2, 17 + 5c30: 102a lrw r1, 0x7de3 // 5c58 + 5c32: 6c1b mov r0, r6 + 5c34: e3ffe2fa bsr 0x2228 // 2228 <__GI_strncmp> + 5c38: 3840 cmpnei r0, 0 + 5c3a: 0c0c bf 0x5c52 // 5c52 + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 5c3c: 8444 ld.b r2, (r4, 0x4) + 5c3e: 1027 lrw r1, 0x7de3 // 5c58 + 5c40: 6c1b mov r0, r6 + 5c42: e3ffe2c1 bsr 0x21c4 // 21c4 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 5c46: 6c13 mov r0, r4 + 5c48: e3ffffa2 bsr 0x5b8c // 5b8c + } +#endif +} + 5c4c: 0405 br 0x5c56 // 5c56 + U8_T save_flag = 0; + 5c4e: 3500 movi r5, 0 + 5c50: 07e2 br 0x5c14 // 5c14 + if(save_flag == 0x01) + 5c52: 3d41 cmpnei r5, 1 + 5c54: 0ff9 bf 0x5c46 // 5c46 +} + 5c56: 1493 pop r4-r6, r15 + 5c58: 00007de3 .long 0x00007de3 + +Disassembly of section .text.EEPROM_Init: + +00005c5c : +{ + 5c5c: 14d2 push r4-r5, r15 + EnIFCClk; //使能 IFC 时钟 + 5c5e: 117a lrw r3, 0x20000064 // 5d44 + 5c60: 3201 movi r2, 1 + 5c62: 9360 ld.w r3, (r3, 0x0) + 5c64: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 5c66: 9345 ld.w r2, (r3, 0x14) + 5c68: 3aa1 bseti r2, 1 + 5c6a: 3ab0 bseti r2, 16 + 5c6c: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 5c6e: 300a movi r0, 10 + 5c70: e3fff2a2 bsr 0x41b4 // 41b4 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 5c74: 1195 lrw r4, 0x200004b0 // 5d48 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read MCU_DEV <*****************/"); + 5c76: 1136 lrw r1, 0x7df4 // 5d4c + 5c78: 3000 movi r0, 0 + 5c7a: e3fffacf bsr 0x5218 // 5218 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 5c7e: 3225 movi r2, 37 + 5c80: 3100 movi r1, 0 + 5c82: 6c13 mov r0, r4 + 5c84: e3ffe25c bsr 0x213c // 213c <__memset_fast> + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 5c88: 6c13 mov r0, r4 + 5c8a: e3ffff17 bsr 0x5ab8 // 5ab8 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 5c8e: 1171 lrw r3, 0x20000470 // 5d50 + 5c90: 8366 ld.b r3, (r3, 0x6) + 5c92: 8440 ld.b r2, (r4, 0x0) + 5c94: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 5c96: 6d43 mov r5, r0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 5c98: 0c05 bf 0x5ca2 // 5ca2 + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 5c9a: 6c13 mov r0, r4 + g_mcu_dev.dev_addr = g_Dip.addr; + 5c9c: a460 st.b r3, (r4, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 5c9e: e3ffff77 bsr 0x5b8c // 5b8c + if(rev == 0x00){ + 5ca2: 3d40 cmpnei r5, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 5ca4: 1109 lrw r0, 0x200004b0 // 5d48 + if(rev == 0x00){ + 5ca6: 0835 bt 0x5d10 // 5d10 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 5ca8: e3ffffae bsr 0x5c04 // 5c04 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read EngPara <*****************/"); + 5cac: 112a lrw r1, 0x7e3d // 5d54 + 5cae: 3000 movi r0, 0 + 5cb0: e3fffab4 bsr 0x5218 // 5218 + memset(&e_save,0,sizeof(ENERGY_SAVE_PARA)); + 5cb4: 322c movi r2, 44 + 5cb6: 3100 movi r1, 0 + 5cb8: 1108 lrw r0, 0x20000484 // 5d58 + 5cba: e3ffe241 bsr 0x213c // 213c <__memset_fast> + eng_rev = EEOROM_ENERGY_ReadSet(&e_save); //电能检测参数,读取 + 5cbe: 1107 lrw r0, 0x20000484 // 5d58 + 5cc0: e3fffc46 bsr 0x554c // 554c + 5cc4: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init1 ReadEngPara Rev:%d",eng_rev); + 5cc6: 6c83 mov r2, r0 + 5cc8: 1125 lrw r1, 0x7e72 // 5d5c + 5cca: 3000 movi r0, 0 + 5ccc: e3fffaa6 bsr 0x5218 // 5218 + if(eng_rev == 0) + 5cd0: 3c40 cmpnei r4, 0 + 5cd2: 0c04 bf 0x5cda // 5cda + EEPROM_Default_ENERGY(&e_save); + 5cd4: 1101 lrw r0, 0x20000484 // 5d58 + 5cd6: e3fffdab bsr 0x582c // 582c + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read TotalEng <*****************/"); + 5cda: 1122 lrw r1, 0x7e8b // 5d60 + 5cdc: 3000 movi r0, 0 + 5cde: e3fffa9d bsr 0x5218 // 5218 + memset(&eng_info,0,sizeof(ENERGY_SAVE)); + 5ce2: 320c movi r2, 12 + 5ce4: 3100 movi r1, 0 + 5ce6: 1100 lrw r0, 0x200004d8 // 5d64 + 5ce8: e3ffe22a bsr 0x213c // 213c <__memset_fast> + eng_rev = EEPROM_ReadTotalEng(&eng_info); // + 5cec: 101e lrw r0, 0x200004d8 // 5d64 + 5cee: e3fffe33 bsr 0x5954 // 5954 + 5cf2: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Rev:%d",eng_rev); + 5cf4: 6c83 mov r2, r0 + 5cf6: 103d lrw r1, 0x7ec1 // 5d68 + 5cf8: 3000 movi r0, 0 + 5cfa: e3fffa8f bsr 0x5218 // 5218 + if(eng_rev == 0x00){ + 5cfe: 3c40 cmpnei r4, 0 + 5d00: 0820 bt 0x5d40 // 5d40 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal SUCC"); + 5d02: 103b lrw r1, 0x7ed8 // 5d6c + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 5d04: 3000 movi r0, 0 + 5d06: e3fffa89 bsr 0x5218 // 5218 + BLV_DetEnergy_Default(); + 5d0a: e0000075 bsr 0x5df4 // 5df4 +} + 5d0e: 1492 pop r4-r5, r15 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 5d10: e3ffff5e bsr 0x5bcc // 5bcc + SYSCON_IWDCNT_Reload(); + 5d14: e3ffedae bsr 0x3870 // 3870 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE Use Defalut Para"); + 5d18: 1036 lrw r1, 0x7e29 // 5d70 + 5d1a: 3000 movi r0, 0 + 5d1c: e3fffa7e bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 5d20: 8442 ld.b r2, (r4, 0x2) + 5d22: 1035 lrw r1, 0x7da3 // 5d74 + 5d24: 3000 movi r0, 0 + 5d26: e3fffa79 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 5d2a: 8444 ld.b r2, (r4, 0x4) + 5d2c: 1033 lrw r1, 0x7dc4 // 5d78 + 5d2e: 3000 movi r0, 0 + 5d30: e3fffa74 bsr 0x5218 // 5218 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 5d34: 1052 lrw r2, 0x200004b5 // 5d7c + 5d36: 1033 lrw r1, 0x7dd5 // 5d80 + 5d38: 3000 movi r0, 0 + 5d3a: e3fffa6f bsr 0x5218 // 5218 + 5d3e: 07b7 br 0x5cac // 5cac + Dbg_Println(DBG_BIT_SYS_STATUS,"Init2 ReadTotal Fail"); + 5d40: 1031 lrw r1, 0x7eed // 5d84 + 5d42: 07e1 br 0x5d04 // 5d04 + 5d44: 20000064 .long 0x20000064 + 5d48: 200004b0 .long 0x200004b0 + 5d4c: 00007df4 .long 0x00007df4 + 5d50: 20000470 .long 0x20000470 + 5d54: 00007e3d .long 0x00007e3d + 5d58: 20000484 .long 0x20000484 + 5d5c: 00007e72 .long 0x00007e72 + 5d60: 00007e8b .long 0x00007e8b + 5d64: 200004d8 .long 0x200004d8 + 5d68: 00007ec1 .long 0x00007ec1 + 5d6c: 00007ed8 .long 0x00007ed8 + 5d70: 00007e29 .long 0x00007e29 + 5d74: 00007da3 .long 0x00007da3 + 5d78: 00007dc4 .long 0x00007dc4 + 5d7c: 200004b5 .long 0x200004b5 + 5d80: 00007dd5 .long 0x00007dd5 + 5d84: 00007eed .long 0x00007eed + +Disassembly of section .text.BT_Uart_Packing.part.2: + +00005d88 : + +} + + +//组包发送,用于蓝牙设置的回复 +void BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag) + 5d88: 14d4 push r4-r7, r15 + 5d8a: 3914 cmphsi r1, 21 + 5d8c: 6d83 mov r6, r0 + 5d8e: 6d4b mov r5, r2 + 5d90: 6d07 mov r4, r1 + 5d92: 0c02 bf 0x5d96 // 5d96 + 5d94: 3414 movi r4, 20 + 5d96: 75d0 zextb r7, r4 + + if(BT_Len > 20){ + BT_Len = 20; + } + + memset(g_Eng.BT_SdBuff,0,20); + 5d98: 3214 movi r2, 20 + 5d9a: 3100 movi r1, 0 + 5d9c: 1008 lrw r0, 0x2000056d // 5dbc + 5d9e: e3ffe1cf bsr 0x213c // 213c <__memset_fast> + memcpy(g_Eng.BT_SdBuff, data, BT_Len); + 5da2: 6c9f mov r2, r7 + 5da4: 6c5b mov r1, r6 + 5da6: 1006 lrw r0, 0x2000056d // 5dbc + 5da8: e3ffe20e bsr 0x21c4 // 21c4 <__memcpy_fast> + g_Eng.BT_SdLen = BT_Len; + 5dac: 1045 lrw r2, 0x20000568 // 5dc0 + + g_Eng.BT_SendFlag |= (0x01 << flag); + 5dae: 3301 movi r3, 1 + 5db0: 8a2d ld.h r1, (r2, 0x1a) + 5db2: 70d4 lsl r3, r5 + 5db4: 6cc4 or r3, r1 + g_Eng.BT_SdLen = BT_Len; + 5db6: a299 st.b r4, (r2, 0x19) + g_Eng.BT_SendFlag |= (0x01 << flag); + 5db8: aa6d st.h r3, (r2, 0x1a) +} + 5dba: 1494 pop r4-r7, r15 + 5dbc: 2000056d .long 0x2000056d + 5dc0: 20000568 .long 0x20000568 + +Disassembly of section .text.BLV_DetEnergy_Init: + +00005dc4 : +{ + 5dc4: 14d0 push r15 + memset(&u_det,0,sizeof(DetUart_t)); + 5dc6: 3248 movi r2, 72 + 5dc8: 3100 movi r1, 0 + 5dca: 1008 lrw r0, 0x200004e4 // 5de8 + 5dcc: e3ffe1b8 bsr 0x213c // 213c <__memset_fast> + memset(&g_CalFactor,0,sizeof(HLW8110_REG)); + 5dd0: 323c movi r2, 60 + 5dd2: 3100 movi r1, 0 + 5dd4: 1006 lrw r0, 0x2000052c // 5dec + 5dd6: e3ffe1b3 bsr 0x213c // 213c <__memset_fast> + memset(&g_Eng,0,sizeof(DetEng_Info)); + 5dda: 3278 movi r2, 120 + 5ddc: 3100 movi r1, 0 + 5dde: 1005 lrw r0, 0x20000568 // 5df0 + 5de0: e3ffe1ae bsr 0x213c // 213c <__memset_fast> +} + 5de4: 1490 pop r15 + 5de6: 0000 bkpt + 5de8: 200004e4 .long 0x200004e4 + 5dec: 2000052c .long 0x2000052c + 5df0: 20000568 .long 0x20000568 + +Disassembly of section .text.BLV_DetEnergy_Default: + +00005df4 : +{ + 5df4: 14d3 push r4-r6, r15 + if(e_save.i_k1_val != g_Eng.I_K1_Val) + 5df6: 11ae lrw r5, 0x20000484 // 5eac + 5df8: 118e lrw r4, 0x20000568 // 5eb0 + 5dfa: 95c1 ld.w r6, (r5, 0x4) + 5dfc: 9434 ld.w r1, (r4, 0x50) + 5dfe: 6c1b mov r0, r6 + 5e00: e3ffd97c bsr 0x10f8 // 10f8 <__nesf2> + 5e04: 3840 cmpnei r0, 0 + 5e06: 0c02 bf 0x5e0a // 5e0a + g_Eng.I_K1_Val = e_save.i_k1_val; + 5e08: b4d4 st.w r6, (r4, 0x50) + if(e_save.i_k2_val != g_Eng.I_K2_Val) + 5e0a: 95c2 ld.w r6, (r5, 0x8) + 5e0c: 9435 ld.w r1, (r4, 0x54) + 5e0e: 6c1b mov r0, r6 + 5e10: e3ffd974 bsr 0x10f8 // 10f8 <__nesf2> + 5e14: 3840 cmpnei r0, 0 + 5e16: 0c02 bf 0x5e1a // 5e1a + g_Eng.I_K2_Val = e_save.i_k2_val; + 5e18: b4d5 st.w r6, (r4, 0x54) + if(e_save.v_k_val != g_Eng.V_K_Val) + 5e1a: 95c0 ld.w r6, (r5, 0x0) + 5e1c: 9433 ld.w r1, (r4, 0x4c) + 5e1e: 6c1b mov r0, r6 + 5e20: e3ffd96c bsr 0x10f8 // 10f8 <__nesf2> + 5e24: 3840 cmpnei r0, 0 + 5e26: 0c02 bf 0x5e2a // 5e2a + g_Eng.V_K_Val = e_save.v_k_val; + 5e28: b4d3 st.w r6, (r4, 0x4c) + if(e_save.p_k_val != g_Eng.P_K_Val) + 5e2a: 95c3 ld.w r6, (r5, 0xc) + 5e2c: 9436 ld.w r1, (r4, 0x58) + 5e2e: 6c1b mov r0, r6 + 5e30: e3ffd964 bsr 0x10f8 // 10f8 <__nesf2> + 5e34: 3840 cmpnei r0, 0 + 5e36: 0c02 bf 0x5e3a // 5e3a + g_Eng.P_K_Val = e_save.p_k_val; + 5e38: b4d6 st.w r6, (r4, 0x58) + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 5e3a: 95c4 ld.w r6, (r5, 0x10) + 5e3c: 9437 ld.w r1, (r4, 0x5c) + 5e3e: 6c1b mov r0, r6 + 5e40: e3ffd95c bsr 0x10f8 // 10f8 <__nesf2> + 5e44: 3840 cmpnei r0, 0 + 5e46: 0c02 bf 0x5e4a // 5e4a + g_Eng.I_OffSetVal = e_save.i_OffSetVal; + 5e48: b4d7 st.w r6, (r4, 0x5c) + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 5e4a: 95c5 ld.w r6, (r5, 0x14) + 5e4c: 9438 ld.w r1, (r4, 0x60) + 5e4e: 6c1b mov r0, r6 + 5e50: e3ffd954 bsr 0x10f8 // 10f8 <__nesf2> + 5e54: 3840 cmpnei r0, 0 + 5e56: 0c02 bf 0x5e5a // 5e5a + g_Eng.P_OffSetVal = e_save.p_OffSetVal; + 5e58: b4d8 st.w r6, (r4, 0x60) + if(eng_info.eng_total != g_Eng.Total_Eng) + 5e5a: 1077 lrw r3, 0x200004d8 // 5eb4 + 5e5c: 6d8f mov r6, r3 + 5e5e: 9340 ld.w r2, (r3, 0x0) + 5e60: 9428 ld.w r1, (r4, 0x20) + 5e62: 644a cmpne r2, r1 + 5e64: 0c07 bf 0x5e72 // 5e72 + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"Default_Eng:%d",g_Eng.Total_Eng); + 5e66: 1035 lrw r1, 0x7f02 // 5eb8 + 5e68: 3004 movi r0, 4 + g_Eng.Total_Eng = eng_info.eng_total; + 5e6a: b448 st.w r2, (r4, 0x20) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 5e6c: b449 st.w r2, (r4, 0x24) + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"Default_Eng:%d",g_Eng.Total_Eng); + 5e6e: e3fffae1 bsr 0x5430 // 5430 + if(eng_info.U32_EnergyA_RegData != g_Eng.U32_EnergyA_RegData) + 5e72: 9642 ld.w r2, (r6, 0x8) + 5e74: 946f ld.w r3, (r4, 0x3c) + 5e76: 64ca cmpne r2, r3 + 5e78: 0c06 bf 0x5e84 // 5e84 + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"Default_RegData:%d",g_Eng.U32_EnergyA_RegData); + 5e7a: 1031 lrw r1, 0x7f11 // 5ebc + 5e7c: 3004 movi r0, 4 + g_Eng.U32_EnergyA_RegData = eng_info.U32_EnergyA_RegData; + 5e7e: b44f st.w r2, (r4, 0x3c) + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"Default_RegData:%d",g_Eng.U32_EnergyA_RegData); + 5e80: e3fffad8 bsr 0x5430 // 5430 + if(e_save.Collect_Tim != g_Eng.Collect_Tim) + 5e84: 9568 ld.w r3, (r5, 0x20) + 5e86: 9459 ld.w r2, (r4, 0x64) + 5e88: 648e cmpne r3, r2 + 5e8a: 0c02 bf 0x5e8e // 5e8e + g_Eng.Collect_Tim = e_save.Collect_Tim; + 5e8c: b479 st.w r3, (r4, 0x64) + if(e_save.SaveFlash_Tim != g_Eng.SaveFlash_Tim) + 5e8e: 956a ld.w r3, (r5, 0x28) + 5e90: 945b ld.w r2, (r4, 0x6c) + 5e92: 648e cmpne r3, r2 + 5e94: 0c02 bf 0x5e98 // 5e98 + g_Eng.SaveFlash_Tim = e_save.SaveFlash_Tim; + 5e96: b47b st.w r3, (r4, 0x6c) + if(e_save.Report_Tim != g_Eng.Report_Tim) + 5e98: 9569 ld.w r3, (r5, 0x24) + 5e9a: 945a ld.w r2, (r4, 0x68) + 5e9c: 648e cmpne r3, r2 + 5e9e: 0c02 bf 0x5ea2 // 5ea2 + g_Eng.Report_Tim = e_save.Report_Tim; + 5ea0: b47a st.w r3, (r4, 0x68) + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_DetEnergy_Default Init"); + 5ea2: 1028 lrw r1, 0x7f24 // 5ec0 + 5ea4: 3000 movi r0, 0 + 5ea6: e3fff9b9 bsr 0x5218 // 5218 +} + 5eaa: 1493 pop r4-r6, r15 + 5eac: 20000484 .long 0x20000484 + 5eb0: 20000568 .long 0x20000568 + 5eb4: 200004d8 .long 0x200004d8 + 5eb8: 00007f02 .long 0x00007f02 + 5ebc: 00007f11 .long 0x00007f11 + 5ec0: 00007f24 .long 0x00007f24 + +Disassembly of section .text.HLW8110_CheckSum: + +00005ec4 : +{ + 5ec4: 6040 addu r1, r0 + U8_T data_sum = 0; + 5ec6: 3300 movi r3, 0 + for(U16_T i = 0;i + return ~data_sum; + 5ecc: 6cce nor r3, r3 + 5ece: 740c zextb r0, r3 +} + 5ed0: 783c jmp r15 + data_sum += data[i]; + 5ed2: 8040 ld.b r2, (r0, 0x0) + 5ed4: 60c8 addu r3, r2 + 5ed6: 74cc zextb r3, r3 + 5ed8: 2000 addi r0, 1 + 5eda: 07f7 br 0x5ec8 // 5ec8 + +Disassembly of section .text.HLW8110_Convert_CurrentRegA_Value: + +00005edc : +{ + 5edc: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 5ede: 109e lrw r4, 0x2000052c // 5f54 + 5ee0: 3280 movi r2, 128 + 5ee2: 9468 ld.w r3, (r4, 0x20) + 5ee4: 4250 lsli r2, r2, 16 + 5ee6: 68c8 and r3, r2 + 5ee8: 3b40 cmpnei r3, 0 + 5eea: 10bc lrw r5, 0x20000568 // 5f58 + 5eec: 0831 bt 0x5f4e // 5f4e + Conv_Val = value / 1000.0; + 5eee: e3ffde03 bsr 0x1af4 // 1af4 <__floatunsidf> + 5ef2: 3200 movi r2, 0 + 5ef4: 107a lrw r3, 0x408f4000 // 5f5c + 5ef6: e3ffdc5f bsr 0x17b4 // 17b4 <__divdf3> + 5efa: e3ffdde5 bsr 0x1ac4 // 1ac4 <__truncdfsf2> + 5efe: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIAC_RegData; + 5f00: 8c00 ld.h r0, (r4, 0x0) + 5f02: e3ffd933 bsr 0x1168 // 1168 <__floatsisf> + 5f06: 6c5b mov r1, r6 + 5f08: e3ffd80e bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val / 0x800; + 5f0c: 31e8 movi r1, 232 + 5f0e: 4136 lsli r1, r1, 22 + 5f10: e3ffd80a bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val / 0x1000; + 5f14: 31e6 movi r1, 230 + 5f16: 4136 lsli r1, r1, 22 + 5f18: e3ffd806 bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val; + 5f1c: 9534 ld.w r1, (r5, 0x50) + 5f1e: e3ffd803 bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + 5f22: 9537 ld.w r1, (r5, 0x5c) + 5f24: e3ffd7d0 bsr 0xec4 // ec4 <__addsf3> + 5f28: 6d03 mov r4, r0 + g_Eng.det_ectA = (Conv_Val * 100); //单位10mA + 5f2a: 102e lrw r1, 0x42c80000 // 5f60 + 5f2c: 6c13 mov r0, r4 + 5f2e: e3ffd7fb bsr 0xf24 // f24 <__mulsf3> + 5f32: e3ffd6ef bsr 0xd10 // d10 <__fixunssfsi> + 5f36: b50c st.w r0, (r5, 0x30) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"CurReg:%f",Conv_Val); + 5f38: 6c13 mov r0, r4 + 5f3a: e3ffd973 bsr 0x1220 // 1220 <__extendsfdf2> + 5f3e: 6c83 mov r2, r0 + 5f40: 6cc7 mov r3, r1 + 5f42: 3001 movi r0, 1 + 5f44: 1028 lrw r1, 0x7f4d // 5f64 + 5f46: e3fff969 bsr 0x5218 // 5218 +} + 5f4a: 6c13 mov r0, r4 + 5f4c: 1493 pop r4-r6, r15 + Conv_Val = 0; + 5f4e: 3400 movi r4, 0 + 5f50: 07ed br 0x5f2a // 5f2a + 5f52: 0000 bkpt + 5f54: 2000052c .long 0x2000052c + 5f58: 20000568 .long 0x20000568 + 5f5c: 408f4000 .long 0x408f4000 + 5f60: 42c80000 .long 0x42c80000 + 5f64: 00007f4d .long 0x00007f4d + +Disassembly of section .text.HLW8110_Convert_VoltageReg_Value: + +00005f68 : +{ + 5f68: 14d3 push r4-r6, r15 + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 5f6a: 109a lrw r4, 0x2000052c // 5fd0 + 5f6c: 3280 movi r2, 128 + 5f6e: 9468 ld.w r3, (r4, 0x20) + 5f70: 4250 lsli r2, r2, 16 + 5f72: 68c8 and r3, r2 + 5f74: 3b40 cmpnei r3, 0 + 5f76: 10b8 lrw r5, 0x20000568 // 5fd4 + 5f78: 082a bt 0x5fcc // 5fcc + Conv_Val = value / 100.0; + 5f7a: e3ffddbd bsr 0x1af4 // 1af4 <__floatunsidf> + 5f7e: 3200 movi r2, 0 + 5f80: 1076 lrw r3, 0x40590000 // 5fd8 + 5f82: e3ffdc19 bsr 0x17b4 // 17b4 <__divdf3> + 5f86: e3ffdd9f bsr 0x1ac4 // 1ac4 <__truncdfsf2> + 5f8a: 6d83 mov r6, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSUC_RegData; + 5f8c: 8c02 ld.h r0, (r4, 0x4) + 5f8e: e3ffd8ed bsr 0x1168 // 1168 <__floatsisf> + 5f92: 6c5b mov r1, r6 + 5f94: e3ffd7c8 bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val / 0x400000; + 5f98: 31d2 movi r1, 210 + 5f9a: 4136 lsli r1, r1, 22 + 5f9c: e3ffd7c4 bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.V_K_Val;//VK_Val; + 5fa0: 9533 ld.w r1, (r5, 0x4c) + 5fa2: e3ffd7c1 bsr 0xf24 // f24 <__mulsf3> + 5fa6: 6d03 mov r4, r0 + g_Eng.det_V = (Conv_Val * 100); //单位:10mV + 5fa8: 102d lrw r1, 0x42c80000 // 5fdc + 5faa: 6c13 mov r0, r4 + 5fac: e3ffd7bc bsr 0xf24 // f24 <__mulsf3> + 5fb0: e3ffd6b0 bsr 0xd10 // d10 <__fixunssfsi> + 5fb4: b50b st.w r0, (r5, 0x2c) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"VolReg:%f",Conv_Val); + 5fb6: 6c13 mov r0, r4 + 5fb8: e3ffd934 bsr 0x1220 // 1220 <__extendsfdf2> + 5fbc: 6c83 mov r2, r0 + 5fbe: 6cc7 mov r3, r1 + 5fc0: 3001 movi r0, 1 + 5fc2: 1028 lrw r1, 0x7f57 // 5fe0 + 5fc4: e3fff92a bsr 0x5218 // 5218 +} + 5fc8: 6c13 mov r0, r4 + 5fca: 1493 pop r4-r6, r15 + Conv_Val = 0; + 5fcc: 3400 movi r4, 0 + 5fce: 07ed br 0x5fa8 // 5fa8 + 5fd0: 2000052c .long 0x2000052c + 5fd4: 20000568 .long 0x20000568 + 5fd8: 40590000 .long 0x40590000 + 5fdc: 42c80000 .long 0x42c80000 + 5fe0: 00007f57 .long 0x00007f57 + +Disassembly of section .text.HLW8110_Convert_PowerReg_Value: + +00005fe4 : +{ + 5fe4: 14d4 push r4-r7, r15 + 5fe6: 1422 subi r14, r14, 8 + Conv_Val = abs((int)value); + 5fe8: 38df btsti r0, 31 +{ + 5fea: 6d43 mov r5, r0 + Conv_Val = abs((int)value); + 5fec: 0c03 bf 0x5ff2 // 5ff2 + 5fee: 3000 movi r0, 0 + 5ff0: 6016 subu r0, r5 + 5ff2: e3ffd8bb bsr 0x1168 // 1168 <__floatsisf> + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 5ff6: 1079 lrw r3, 0x2000052c // 6058 + 5ff8: 8be3 ld.h r7, (r3, 0x6) + Conv_Val = abs((int)value); + 5ffa: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 5ffc: 6c1f mov r0, r7 + 5ffe: e3ffd8b5 bsr 0x1168 // 1168 <__floatsisf> + 6002: 6c53 mov r1, r4 + 6004: e3ffd790 bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val / 0x8000; + 6008: 31e0 movi r1, 224 + 600a: 4136 lsli r1, r1, 22 + 600c: e3ffd78c bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val / 0x10000; + 6010: 31de movi r1, 222 + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 6012: 1093 lrw r4, 0x20000568 // 605c + Conv_Val = Conv_Val / 0x10000; + 6014: 4136 lsli r1, r1, 22 + 6016: e3ffd787 bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.P_K_Val * g_Eng.V_K_Val; + 601a: 9434 ld.w r1, (r4, 0x50) + 601c: e3ffd784 bsr 0xf24 // f24 <__mulsf3> + 6020: 9436 ld.w r1, (r4, 0x58) + 6022: e3ffd781 bsr 0xf24 // f24 <__mulsf3> + 6026: 9433 ld.w r1, (r4, 0x4c) + 6028: e3ffd77e bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 602c: 9438 ld.w r1, (r4, 0x60) + 602e: e3ffd74b bsr 0xec4 // ec4 <__addsf3> + 6032: 6d83 mov r6, r0 + g_Eng.det_powA = Conv_Val; //单位:W + 6034: e3ffd66e bsr 0xd10 // d10 <__fixunssfsi> + 6038: b40e st.w r0, (r4, 0x38) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"PowReg:%f,%d,%d",Conv_Val,value,g_CalFactor.U16_PowerPAC_RegData); + 603a: 6c1b mov r0, r6 + 603c: e3ffd8f2 bsr 0x1220 // 1220 <__extendsfdf2> + 6040: 6c83 mov r2, r0 + 6042: 6cc7 mov r3, r1 + 6044: b8e1 st.w r7, (r14, 0x4) + 6046: b8a0 st.w r5, (r14, 0x0) + 6048: 3001 movi r0, 1 + 604a: 1026 lrw r1, 0x7f61 // 6060 + 604c: e3fff8e6 bsr 0x5218 // 5218 +} + 6050: 6c1b mov r0, r6 + 6052: 1402 addi r14, r14, 8 + 6054: 1494 pop r4-r7, r15 + 6056: 0000 bkpt + 6058: 2000052c .long 0x2000052c + 605c: 20000568 .long 0x20000568 + 6060: 00007f61 .long 0x00007f61 + +Disassembly of section .text.HLW8110_Convert_EnergyReg_Value: + +00006064 : +{ + 6064: 14d4 push r4-r7, r15 + 6066: 1425 subi r14, r14, 20 + g_Eng.U32_EnergyA_RegData_Diff = 0x00; + 6068: 118e lrw r4, 0x20000568 // 6120 + 606a: 3300 movi r3, 0 + 606c: b470 st.w r3, (r4, 0x40) + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"value:%d, LastRecord:%d, Sum_EngReg1:%d",value,g_Eng.U32_EnergyA_RegData_LastRecord,g_Eng.U32_EnergyA_RegData); + 606e: 946f ld.w r3, (r4, 0x3c) +{ + 6070: 6d43 mov r5, r0 + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"value:%d, LastRecord:%d, Sum_EngReg1:%d",value,g_Eng.U32_EnergyA_RegData_LastRecord,g_Eng.U32_EnergyA_RegData); + 6072: 6c83 mov r2, r0 + 6074: b860 st.w r3, (r14, 0x0) + 6076: 3004 movi r0, 4 + 6078: 9471 ld.w r3, (r4, 0x44) + 607a: 112b lrw r1, 0x7f71 // 6124 + 607c: e3fff9da bsr 0x5430 // 5430 + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //记录的上次读取的电能寄存器值小于此次读取到的电能寄存器值 + 6080: 9451 ld.w r2, (r4, 0x44) + 6082: 6494 cmphs r5, r2 + 6084: 4568 lsli r3, r5, 8 + 6086: 0c46 bf 0x6112 // 6112 + g_Eng.U32_EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 6088: 4248 lsli r2, r2, 8 + 608a: 4a48 lsri r2, r2, 8 + 608c: 5d49 subu r2, r5, r2 + 608e: b450 st.w r2, (r4, 0x40) + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 6090: 4b68 lsri r3, r3, 8 + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 6092: 9450 ld.w r2, (r4, 0x40) + 6094: 94cf ld.w r6, (r4, 0x3c) + 6096: 6188 addu r6, r2 + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 6098: b471 st.w r3, (r4, 0x44) + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 609a: b4cf st.w r6, (r4, 0x3c) + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + 609c: 6c1b mov r0, r6 + g_Eng.U32_EnergyA_RegData += g_Eng.U32_EnergyA_RegData_Diff; + 609e: b844 st.w r2, (r14, 0x10) + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + 60a0: e3ffdd2a bsr 0x1af4 // 1af4 <__floatunsidf> + 60a4: e3ffdd10 bsr 0x1ac4 // 1ac4 <__truncdfsf2> + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 60a8: 9434 ld.w r1, (r4, 0x50) + 60aa: e3ffd73d bsr 0xf24 // f24 <__mulsf3> + 60ae: 9433 ld.w r1, (r4, 0x4c) + 60b0: e3ffd73a bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 60b4: 107d lrw r3, 0x2000052c // 6128 + 60b6: 8b66 ld.h r3, (r3, 0xc) + Conv_Val = Conv_Val * g_Eng.I_K1_Val * g_Eng.V_K_Val; + 60b8: 6dc3 mov r7, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 60ba: 6c0f mov r0, r3 + 60bc: b863 st.w r3, (r14, 0xc) + 60be: e3ffd855 bsr 0x1168 // 1168 <__floatsisf> + 60c2: 6c5f mov r1, r7 + 60c4: e3ffd730 bsr 0xf24 // f24 <__mulsf3> + Conv_Val = Conv_Val / 0x20000000; + 60c8: 31c4 movi r1, 196 + 60ca: 4136 lsli r1, r1, 22 + 60cc: e3ffd72c bsr 0xf24 // f24 <__mulsf3> + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 60d0: 1037 lrw r1, 0x447a0000 // 612c + Conv_Val = Conv_Val / 0x20000000; + 60d2: 6dc3 mov r7, r0 + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 60d4: e3ffd728 bsr 0xf24 // f24 <__mulsf3> + 60d8: e3ffd61c bsr 0xd10 // d10 <__fixunssfsi> + Dbg_Println(DBG_BIT_DEVICE_STATUS,"diff:%d, value:%d, EngAC:%d, Total_Eng:%d, Sum_EngReg2:%d",g_Eng.U32_EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng,g_Eng.U32_EnergyA_RegData); + 60dc: 9863 ld.w r3, (r14, 0xc) + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 60de: b408 st.w r0, (r4, 0x20) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"diff:%d, value:%d, EngAC:%d, Total_Eng:%d, Sum_EngReg2:%d",g_Eng.U32_EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng,g_Eng.U32_EnergyA_RegData); + 60e0: b801 st.w r0, (r14, 0x4) + 60e2: b860 st.w r3, (r14, 0x0) + 60e4: 9844 ld.w r2, (r14, 0x10) + 60e6: 6cd7 mov r3, r5 + 60e8: b8c2 st.w r6, (r14, 0x8) + 60ea: 3001 movi r0, 1 + 60ec: 1031 lrw r1, 0x7f99 // 6130 + 60ee: e3fff895 bsr 0x5218 // 5218 + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"diff:%d, value:%d, EngAC:%d, Total_Eng:%d, Sum_EngReg2:%d",g_Eng.U32_EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng,g_Eng.U32_EnergyA_RegData); + 60f2: 946f ld.w r3, (r4, 0x3c) + 60f4: b862 st.w r3, (r14, 0x8) + 60f6: 9468 ld.w r3, (r4, 0x20) + 60f8: b861 st.w r3, (r14, 0x4) + 60fa: 9450 ld.w r2, (r4, 0x40) + 60fc: 3004 movi r0, 4 + 60fe: 106b lrw r3, 0x2000052c // 6128 + 6100: 8b66 ld.h r3, (r3, 0xc) + 6102: b860 st.w r3, (r14, 0x0) + 6104: 6cd7 mov r3, r5 + 6106: 102b lrw r1, 0x7f99 // 6130 + 6108: e3fff994 bsr 0x5430 // 5430 +} + 610c: 6c1f mov r0, r7 + 610e: 1405 addi r14, r14, 20 + 6110: 1494 pop r4-r7, r15 + g_Eng.U32_EnergyA_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyA_RegData_LastRecord ); + 6112: 4b68 lsri r3, r3, 8 + 6114: 3180 movi r1, 128 + 6116: 5b49 subu r2, r3, r2 + 6118: 4131 lsli r1, r1, 17 + 611a: 6084 addu r2, r1 + 611c: b450 st.w r2, (r4, 0x40) + 611e: 07ba br 0x6092 // 6092 + 6120: 20000568 .long 0x20000568 + 6124: 00007f71 .long 0x00007f71 + 6128: 2000052c .long 0x2000052c + 612c: 447a0000 .long 0x447a0000 + 6130: 00007f99 .long 0x00007f99 + +Disassembly of section .text.HLW8110_RecvData_Processing: + +00006134 : +{ + 6134: 14d4 push r4-r7, r15 + 6136: 1424 subi r14, r14, 16 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 6138: 5947 subi r2, r1, 2 + 613a: 7489 zexth r2, r2 + 613c: 3a08 cmphsi r2, 9 +{ + 613e: b802 st.w r0, (r14, 0x8) + 6140: 6d87 mov r6, r1 + if((RecvLen < 0x02)||(RecvLen > 0x0A) ) + 6142: 0c09 bf 0x6154 // 6154 + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",RecvLen); + 6144: 6c87 mov r2, r1 + 6146: 3000 movi r0, 0 + 6148: 0325 lrw r1, 0x7fd3 // 63b0 + 614a: e3fff867 bsr 0x5218 // 5218 + return 0x01; + 614e: 3001 movi r0, 1 +} + 6150: 1404 addi r14, r14, 16 + 6152: 1494 pop r4-r7, r15 + if(u_det.WR_flag == SEND_NONE) + 6154: 03a7 lrw r5, 0x200004e4 // 63b4 + 6156: 3740 movi r7, 64 + 6158: 61d4 addu r7, r5 + 615a: 8740 ld.b r2, (r7, 0x0) + 615c: 3a40 cmpnei r2, 0 + 615e: b8e3 st.w r7, (r14, 0xc) + 6160: 0807 bt 0x616e // 616e + Dbg_Println(DBG_BIT_SYS_STATUS,"Not Tack "); + 6162: 3000 movi r0, 0 + 6164: 032a lrw r1, 0x7fde // 63b8 + 6166: e3fff859 bsr 0x5218 // 5218 + return 0x02; + 616a: 3002 movi r0, 2 + 616c: 07f2 br 0x6150 // 6150 + memset(u_det.RevBuff,0,REV_BUFFER_SIZE); + 616e: 301e movi r0, 30 + 6170: 321e movi r2, 30 + 6172: 3100 movi r1, 0 + 6174: 6014 addu r0, r5 + 6176: e3ffdfe3 bsr 0x213c // 213c <__memset_fast> + memcpy(u_det.RevBuff,u_det.SendBuff,2); + 617a: 8d20 ld.h r1, (r5, 0x0) + 617c: 7485 zexth r2, r1 + 617e: ad2f st.h r1, (r5, 0x1e) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 6180: 4a48 lsri r2, r2, 8 + 6182: 317f movi r1, 127 + 6184: 6884 and r2, r1 + u_det.RevLen += 2; + 6186: 3420 movi r4, 32 + 6188: 6114 addu r4, r5 + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 618a: b841 st.w r2, (r14, 0x4) + u_det.RevLen += 2; + 618c: 3302 movi r3, 2 + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 618e: 6c9b mov r2, r6 + u_det.RevLen += 2; + 6190: a47d st.b r3, (r4, 0x1d) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 6192: 9822 ld.w r1, (r14, 0x8) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 6194: d86e0004 ld.b r3, (r14, 0x4) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 6198: 6c13 mov r0, r4 + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 619a: a57f st.b r3, (r5, 0x1f) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); + 619c: e3ffe014 bsr 0x21c4 // 21c4 <__memcpy_fast> + u_det.RevLen += RecvLen; + 61a0: 843d ld.b r1, (r4, 0x1d) + 61a2: 6058 addu r1, r6 + 61a4: 7444 zextb r1, r1 + 61a6: a43d st.b r1, (r4, 0x1d) + if(HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1) != RecvData[RecvLen-1]) + 61a8: 301e movi r0, 30 + 61aa: 2900 subi r1, 1 + 61ac: 7445 zexth r1, r1 + 61ae: 6014 addu r0, r5 + 61b0: e3fffe8a bsr 0x5ec4 // 5ec4 + 61b4: 5e63 subi r3, r6, 1 + 61b6: 98c2 ld.w r6, (r14, 0x8) + 61b8: 618c addu r6, r3 + 61ba: 8620 ld.b r1, (r6, 0x0) + 61bc: 6442 cmpne r0, r1 + 61be: 6c83 mov r2, r0 + 61c0: 0c22 bf 0x6204 // 6204 + Dbg_Println(DBG_BIT_SYS_STATUS,"CRC Err:%x,%x,CMD:%02x",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + 61c2: 9861 ld.w r3, (r14, 0x4) + 61c4: b860 st.w r3, (r14, 0x0) + 61c6: 3000 movi r0, 0 + 61c8: 6cc7 mov r3, r1 + 61ca: 133d lrw r1, 0x7fe8 // 63bc + 61cc: e3fff826 bsr 0x5218 // 5218 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); + 61d0: 321e movi r2, 30 + 61d2: 847d ld.b r3, (r4, 0x1d) + 61d4: 6094 addu r2, r5 + 61d6: 133b lrw r1, 0x7fff // 63c0 + 61d8: 3002 movi r0, 2 + 61da: e3fff8e7 bsr 0x53a8 // 53a8 + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"CRC Err:%x,%x, CMD:%02x->",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + 61de: 843d ld.b r1, (r4, 0x1d) + 61e0: 2900 subi r1, 1 + 61e2: 301e movi r0, 30 + 61e4: 7445 zexth r1, r1 + 61e6: 6014 addu r0, r5 + 61e8: e3fffe6e bsr 0x5ec4 // 5ec4 + 61ec: 853f ld.b r1, (r5, 0x1f) + 61ee: 8660 ld.b r3, (r6, 0x0) + 61f0: 6c83 mov r2, r0 + 61f2: b820 st.w r1, (r14, 0x0) + 61f4: 3004 movi r0, 4 + 61f6: 1334 lrw r1, 0x8003 // 63c4 + 61f8: e3fff91c bsr 0x5430 // 5430 + u_det.RevNum = REV_ERR; + 61fc: 3302 movi r3, 2 + 61fe: a762 st.b r3, (r7, 0x2) + return 0x04; + 6200: 3004 movi r0, 4 + 6202: 07a7 br 0x6150 // 6150 + u_det.RevNum = REV_OK; + 6204: 3301 movi r3, 1 + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW8110_Recv CMD:%02X",u_det.RevBuff[1]); + 6206: 9841 ld.w r2, (r14, 0x4) + 6208: 3002 movi r0, 2 + 620a: 1330 lrw r1, 0x801d // 63c8 + 620c: b882 st.w r4, (r14, 0x8) + u_det.RevNum = REV_OK; + 620e: a762 st.b r3, (r7, 0x2) + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW8110_Recv CMD:%02X",u_det.RevBuff[1]); + 6210: e3fff804 bsr 0x5218 // 5218 + switch(u_det.RevBuff[1]) + 6214: 855f ld.b r2, (r5, 0x1f) + 6216: 316f movi r1, 111 + 6218: 644a cmpne r2, r1 + 621a: 0c7e bf 0x6316 // 6316 + 621c: 6484 cmphs r1, r2 + 621e: 9862 ld.w r3, (r14, 0x8) + 6220: 0c36 bf 0x628c // 628c + 6222: 3a53 cmpnei r2, 19 + 6224: 0c70 bf 0x6304 // 6304 + 6226: 3a13 cmphsi r2, 20 + 6228: 0809 bt 0x623a // 623a + 622a: 3a41 cmpnei r2, 1 + 622c: 0c63 bf 0x62f2 // 62f2 + 622e: 3a40 cmpnei r2, 0 + 6230: 0c51 bf 0x62d2 // 62d2 + 6232: 3a42 cmpnei r2, 2 + 6234: 0cb4 bf 0x639c // 639c + return 0x00; + 6236: 3000 movi r0, 0 + 6238: 078c br 0x6150 // 6150 + switch(u_det.RevBuff[1]) + 623a: 3126 movi r1, 38 + 623c: 644a cmpne r2, r1 + 623e: 0c97 bf 0x636c // 636c + 6240: 6484 cmphs r1, r2 + 6242: 0c10 bf 0x6262 // 6262 + 6244: 3124 movi r1, 36 + 6246: 644a cmpne r2, r1 + 6248: 0bf7 bt 0x6236 // 6236 + g_CalFactor.U24_CurrentA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 624a: 8300 ld.b r0, (r3, 0x0) + 624c: 8341 ld.b r2, (r3, 0x1) + 624e: 4248 lsli r2, r2, 8 + 6250: 4010 lsli r0, r0, 16 + 6252: 6008 addu r0, r2 + 6254: 8362 ld.b r3, (r3, 0x2) + 6256: 600c addu r0, r3 + 6258: 127d lrw r3, 0x2000052c // 63cc + 625a: b308 st.w r0, (r3, 0x20) + HLW8110_Convert_CurrentRegA_Value(g_CalFactor.U24_CurrentA_RegData); + 625c: e3fffe40 bsr 0x5edc // 5edc + 6260: 07eb br 0x6236 // 6236 + switch(u_det.RevBuff[1]) + 6262: 3128 movi r1, 40 + 6264: 644a cmpne r2, r1 + 6266: 0c8f bf 0x6384 // 6384 + 6268: 312c movi r1, 44 + 626a: 644a cmpne r2, r1 + 626c: 0be5 bt 0x6236 // 6236 + g_CalFactor.U32_PowerA_RegData = (u_det.RevBuff[2]<<24) + (u_det.RevBuff[3]<<16) + (u_det.RevBuff[4]<<8) + u_det.RevBuff[5]; + 626e: 8300 ld.b r0, (r3, 0x0) + 6270: 8341 ld.b r2, (r3, 0x1) + 6272: 4250 lsli r2, r2, 16 + 6274: 4018 lsli r0, r0, 24 + 6276: 6008 addu r0, r2 + 6278: 8342 ld.b r2, (r3, 0x2) + 627a: 4248 lsli r2, r2, 8 + 627c: 6008 addu r0, r2 + 627e: 8363 ld.b r3, (r3, 0x3) + 6280: 600c addu r0, r3 + 6282: 1273 lrw r3, 0x2000052c // 63cc + 6284: b30a st.w r0, (r3, 0x28) + HLW8110_Convert_PowerReg_Value(g_CalFactor.U32_PowerA_RegData); + 6286: e3fffeaf bsr 0x5fe4 // 5fe4 + 628a: 07d6 br 0x6236 // 6236 + switch(u_det.RevBuff[1]) + 628c: 3173 movi r1, 115 + 628e: 644a cmpne r2, r1 + 6290: 0c52 bf 0x6334 // 6334 + 6292: 6484 cmphs r1, r2 + 6294: 0c0d bf 0x62ae // 62ae + 6296: 3571 movi r5, 113 + 6298: 654a cmpne r2, r5 + 629a: 8460 ld.b r3, (r4, 0x0) + 629c: 8401 ld.b r0, (r4, 0x1) + 629e: 122c lrw r1, 0x2000052c // 63cc + 62a0: 0c46 bf 0x632c // 632c + 62a2: 6494 cmphs r5, r2 + 62a4: 0840 bt 0x6324 // 6324 + g_CalFactor.U16_RMSUC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 62a6: 4368 lsli r3, r3, 8 + 62a8: 60c0 addu r3, r0 + 62aa: a962 st.h r3, (r1, 0x4) + 62ac: 07c5 br 0x6236 // 6236 + switch(u_det.RevBuff[1]) + 62ae: 3175 movi r1, 117 + 62b0: 644a cmpne r2, r1 + 62b2: 0c4f bf 0x6350 // 6350 + 62b4: 6448 cmphs r2, r1 + 62b6: 0c46 bf 0x6342 // 6342 + 62b8: 3176 movi r1, 118 + 62ba: 644a cmpne r2, r1 + 62bc: 0c51 bf 0x635e // 635e + 62be: 3177 movi r1, 119 + 62c0: 644a cmpne r2, r1 + 62c2: 0bba bt 0x6236 // 6236 + g_CalFactor.U16_EnergyBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 62c4: 8340 ld.b r2, (r3, 0x0) + 62c6: 4248 lsli r2, r2, 8 + 62c8: 8361 ld.b r3, (r3, 0x1) + 62ca: 60c8 addu r3, r2 + 62cc: 1240 lrw r2, 0x2000052c // 63cc + 62ce: aa67 st.h r3, (r2, 0xe) + 62d0: 07b3 br 0x6236 // 6236 + g_CalFactor.U16_Check_SysconReg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 62d2: 8460 ld.b r3, (r4, 0x0) + 62d4: 8441 ld.b r2, (r4, 0x1) + 62d6: 4368 lsli r3, r3, 8 + 62d8: 60c8 addu r3, r2 + 62da: 74cd zexth r3, r3 + 62dc: 115c lrw r2, 0x2000052c // 63cc + 62de: aa6a st.h r3, (r2, 0x14) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 62e0: 115c lrw r2, 0xa04 // 63d0 + 62e2: 648e cmpne r3, r2 + u_det.RevNum = REV_OK; + 62e4: 9863 ld.w r3, (r14, 0xc) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 62e6: 0804 bt 0x62ee // 62ee + u_det.RevNum = REV_OK; + 62e8: 3201 movi r2, 1 + u_det.RevNum = REV_ERR; + 62ea: a342 st.b r2, (r3, 0x2) + 62ec: 07a5 br 0x6236 // 6236 + 62ee: 3202 movi r2, 2 + 62f0: 07fd br 0x62ea // 62ea + g_CalFactor.U16_Check_Emucon1Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 62f2: 8460 ld.b r3, (r4, 0x0) + 62f4: 8441 ld.b r2, (r4, 0x1) + 62f6: 4368 lsli r3, r3, 8 + 62f8: 60c8 addu r3, r2 + 62fa: 74cd zexth r3, r3 + 62fc: 1154 lrw r2, 0x2000052c // 63cc + if(g_CalFactor.U16_Check_Emucon1Reg_Data == EMUCON1_DEFAULT){ + 62fe: 3b41 cmpnei r3, 1 + g_CalFactor.U16_Check_Emucon1Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 6300: aa6b st.h r3, (r2, 0x16) + 6302: 07f1 br 0x62e4 // 62e4 + g_CalFactor.U16_Check_Emucon2Reg_Data = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 6304: 8460 ld.b r3, (r4, 0x0) + 6306: 8441 ld.b r2, (r4, 0x1) + 6308: 4368 lsli r3, r3, 8 + 630a: 60c8 addu r3, r2 + 630c: 74cd zexth r3, r3 + 630e: 1150 lrw r2, 0x2000052c // 63cc + 6310: aa6c st.h r3, (r2, 0x18) + if(g_CalFactor.U16_Check_Emucon2Reg_Data == EMUCON2_DEFAULT){ + 6312: 1151 lrw r2, 0x465 // 63d4 + 6314: 07e7 br 0x62e2 // 62e2 + g_CalFactor.U16_CheckSUM_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 6316: 8460 ld.b r3, (r4, 0x0) + 6318: 8441 ld.b r2, (r4, 0x1) + 631a: 4368 lsli r3, r3, 8 + 631c: 60c8 addu r3, r2 + 631e: 114c lrw r2, 0x2000052c // 63cc + 6320: aa68 st.h r3, (r2, 0x10) + 6322: 078a br 0x6236 // 6236 + g_CalFactor.U16_RMSIAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 6324: 4368 lsli r3, r3, 8 + 6326: 60c0 addu r3, r0 + 6328: a960 st.h r3, (r1, 0x0) + 632a: 0786 br 0x6236 // 6236 + g_CalFactor.U16_RMSIBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 632c: 4368 lsli r3, r3, 8 + 632e: 60c0 addu r3, r0 + 6330: a961 st.h r3, (r1, 0x2) + 6332: 0782 br 0x6236 // 6236 + g_CalFactor.U16_PowerPAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 6334: 8460 ld.b r3, (r4, 0x0) + 6336: 8441 ld.b r2, (r4, 0x1) + 6338: 4368 lsli r3, r3, 8 + 633a: 60c8 addu r3, r2 + 633c: 1144 lrw r2, 0x2000052c // 63cc + 633e: aa63 st.h r3, (r2, 0x6) + 6340: 077b br 0x6236 // 6236 + g_CalFactor.U16_PowerPBC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 6342: 8460 ld.b r3, (r4, 0x0) + 6344: 8441 ld.b r2, (r4, 0x1) + 6346: 4368 lsli r3, r3, 8 + 6348: 60c8 addu r3, r2 + 634a: 1141 lrw r2, 0x2000052c // 63cc + 634c: aa64 st.h r3, (r2, 0x8) + 634e: 0774 br 0x6236 // 6236 + g_CalFactor.U16_PowerSC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 6350: 8460 ld.b r3, (r4, 0x0) + 6352: 8441 ld.b r2, (r4, 0x1) + 6354: 4368 lsli r3, r3, 8 + 6356: 60c8 addu r3, r2 + 6358: 105d lrw r2, 0x2000052c // 63cc + 635a: aa65 st.h r3, (r2, 0xa) + 635c: 076d br 0x6236 // 6236 + g_CalFactor.U16_EnergyAC_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 635e: 8340 ld.b r2, (r3, 0x0) + 6360: 4248 lsli r2, r2, 8 + 6362: 8361 ld.b r3, (r3, 0x1) + 6364: 60c8 addu r3, r2 + 6366: 105a lrw r2, 0x2000052c // 63cc + 6368: aa66 st.h r3, (r2, 0xc) + 636a: 0766 br 0x6236 // 6236 + g_CalFactor.U24_Voltage_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 636c: 8400 ld.b r0, (r4, 0x0) + 636e: 8461 ld.b r3, (r4, 0x1) + 6370: 4368 lsli r3, r3, 8 + 6372: 4010 lsli r0, r0, 16 + 6374: 600c addu r0, r3 + 6376: 8462 ld.b r3, (r4, 0x2) + 6378: 600c addu r0, r3 + 637a: 1075 lrw r3, 0x2000052c // 63cc + 637c: b307 st.w r0, (r3, 0x1c) + HLW8110_Convert_VoltageReg_Value(g_CalFactor.U24_Voltage_RegData); + 637e: e3fffdf5 bsr 0x5f68 // 5f68 + 6382: 075a br 0x6236 // 6236 + g_CalFactor.U24_EnergyA_RegData = (u_det.RevBuff[2]<<16) + (u_det.RevBuff[3]<<8) + u_det.RevBuff[4] ; + 6384: 8300 ld.b r0, (r3, 0x0) + 6386: 8341 ld.b r2, (r3, 0x1) + 6388: 4248 lsli r2, r2, 8 + 638a: 4010 lsli r0, r0, 16 + 638c: 6008 addu r0, r2 + 638e: 8362 ld.b r3, (r3, 0x2) + 6390: 600c addu r0, r3 + 6392: 106f lrw r3, 0x2000052c // 63cc + 6394: b30c st.w r0, (r3, 0x30) + HLW8110_Convert_EnergyReg_Value(g_CalFactor.U24_EnergyA_RegData); + 6396: e3fffe67 bsr 0x6064 // 6064 + 639a: 074e br 0x6236 // 6236 + g_CalFactor.U16_HFConst_RegData = (u_det.RevBuff[2]<<8) + u_det.RevBuff[3] ; + 639c: 8340 ld.b r2, (r3, 0x0) + 639e: 4248 lsli r2, r2, 8 + 63a0: 8361 ld.b r3, (r3, 0x1) + 63a2: 60c8 addu r3, r2 + 63a4: 104a lrw r2, 0x2000052c // 63cc + 63a6: b26e st.w r3, (r2, 0x38) + g_Eng.hfcount = g_CalFactor.U16_HFConst_RegData; + 63a8: 104c lrw r2, 0x20000568 // 63d8 + 63aa: aa6e st.h r3, (r2, 0x1c) + 63ac: 0745 br 0x6236 // 6236 + 63ae: 0000 bkpt + 63b0: 00007fd3 .long 0x00007fd3 + 63b4: 200004e4 .long 0x200004e4 + 63b8: 00007fde .long 0x00007fde + 63bc: 00007fe8 .long 0x00007fe8 + 63c0: 00007fff .long 0x00007fff + 63c4: 00008003 .long 0x00008003 + 63c8: 0000801d .long 0x0000801d + 63cc: 2000052c .long 0x2000052c + 63d0: 00000a04 .long 0x00000a04 + 63d4: 00000465 .long 0x00000465 + 63d8: 20000568 .long 0x20000568 + +Disassembly of section .text.BLV_Energy_PassiveRep_Packing: + +000063dc : + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //组包 +} + +//电参数查询回复组包 +void BLV_Energy_PassiveRep_Packing(void) +{ + 63dc: 14d1 push r4, r15 + 63de: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 63e0: 1801 addi r0, r14, 4 + 63e2: 3232 movi r2, 50 + 63e4: 3100 movi r1, 0 + 63e6: e3ffdeab bsr 0x213c // 213c <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 63ea: 1176 lrw r3, 0x20000568 // 64c0 + + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + + + g_Eng.SdSN++; + 63ec: 8384 ld.b r4, (r3, 0x4) + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 63ee: 32fa movi r2, 250 + g_Eng.SdSN++; + 63f0: 2400 addi r4, 1 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 63f2: 932e ld.w r1, (r3, 0x38) + 63f4: 4242 lsli r2, r2, 2 + g_Eng.SdSN++; + 63f6: 7510 zextb r4, r4 + U32_T Energy_Rep = 0,Power_Rep = g_Eng.det_powA*1000; + 63f8: 7c84 mult r2, r1 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 63fa: 9309 ld.w r0, (r3, 0x24) + 63fc: 9328 ld.w r1, (r3, 0x20) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 63fe: 3c0f cmphsi r4, 16 + Energy_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 6400: 5901 subu r0, r1, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 6402: 085c bt 0x64ba // 64ba + 6404: a384 st.b r4, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + 6406: 3400 movi r4, 0 + 6408: 2c75 subi r4, 118 + 640a: dc8e0004 st.b r4, (r14, 0x4) + send_data[send_len++] = g_Eng.SdSN; //sn; + 640e: 8384 ld.b r4, (r3, 0x4) + 6410: dc8e0005 st.b r4, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 6414: 3400 movi r4, 0 + 6416: 2c0b subi r4, 12 + 6418: dc8e0006 st.b r4, (r14, 0x6) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = (Power_Rep & 0xff); + 641c: dc4e0010 st.b r2, (r14, 0x10) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + + send_data[send_len++] = (Energy_Rep & 0xff); + 6420: dc0e0014 st.b r0, (r14, 0x14) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + + send_data[send_len++] = (g_Eng.Total_Eng & 0xff); + 6424: dc2e0018 st.b r1, (r14, 0x18) + send_data[send_len++] = g_Dip.addr; + 6428: 1187 lrw r4, 0x20000470 // 64c4 + 642a: 8486 ld.b r4, (r4, 0x6) + 642c: dc8e0007 st.b r4, (r14, 0x7) + send_data[send_len++] = 0x02; //cmd + 6430: 3402 movi r4, 2 + 6432: dc8e000a st.b r4, (r14, 0xa) + send_data[send_len++] = 0x01; //采集通道, + 6436: 3401 movi r4, 1 + 6438: dc8e000b st.b r4, (r14, 0xb) + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 643c: 938b ld.w r4, (r3, 0x2c) + send_data[send_len++] = (g_Eng.det_ectA & 0xff); + 643e: 936c ld.w r3, (r3, 0x30) + 6440: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 6444: 4b68 lsri r3, r3, 8 + 6446: dc6e000f st.b r3, (r14, 0xf) + send_data[send_len++] = ((Power_Rep >> 8) & 0xff); + 644a: 4a68 lsri r3, r2, 8 + 644c: dc6e0011 st.b r3, (r14, 0x11) + send_data[send_len++] = ((Power_Rep >> 16) & 0xff); + 6450: 4a70 lsri r3, r2, 16 + 6452: dc6e0012 st.b r3, (r14, 0x12) + send_data[send_len++] = ((Energy_Rep>> 8) & 0xff); + 6456: 4868 lsri r3, r0, 8 + 6458: dc6e0015 st.b r3, (r14, 0x15) + send_data[send_len++] = ((Energy_Rep >> 16) & 0xff); + 645c: 4870 lsri r3, r0, 16 + 645e: dc6e0016 st.b r3, (r14, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 6462: 4968 lsri r3, r1, 8 + 6464: dc6e0019 st.b r3, (r14, 0x19) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 6468: 4970 lsri r3, r1, 16 + 646a: dc6e001a st.b r3, (r14, 0x1a) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 646e: 4978 lsri r3, r1, 24 + 6470: dc6e001b st.b r3, (r14, 0x1b) + send_data[send_len++] = ENERGY_TAIL; + 6474: 3300 movi r3, 0 + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 6476: 4a58 lsri r2, r2, 24 + send_data[send_len++] = ENERGY_TAIL; + 6478: 2b57 subi r3, 88 + send_data[send_len++] = ((g_Eng.det_V) & 0xff); + 647a: dc8e000c st.b r4, (r14, 0xc) + send_data[send_len++] = ((Power_Rep >> 24) & 0xff); + 647e: dc4e0013 st.b r2, (r14, 0x13) + send_data[send_len++] = ENERGY_TAIL; + 6482: dc6e001c st.b r3, (r14, 0x1c) + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 6486: 4858 lsri r2, r0, 24 + + send_data[4] = send_len; + 6488: 3319 movi r3, 25 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 648a: 4c88 lsri r4, r4, 8 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 648c: 3119 movi r1, 25 + 648e: 1801 addi r0, r14, 4 + send_data[send_len++] = ((Energy_Rep>> 24) & 0xff); + 6490: dc4e0017 st.b r2, (r14, 0x17) + send_data[4] = send_len; + 6494: dc6e0008 st.b r3, (r14, 0x8) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 6498: dc8e000d st.b r4, (r14, 0xd) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 649c: e3fffd14 bsr 0x5ec4 // 5ec4 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 64a0: 3332 movi r3, 50 + 64a2: b860 st.w r3, (r14, 0x0) + 64a4: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 64a6: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 64aa: 4361 lsli r3, r3, 1 + 64ac: 3201 movi r2, 1 + 64ae: 3119 movi r1, 25 + 64b0: 1801 addi r0, r14, 4 + 64b2: e3fff62b bsr 0x5108 // 5108 + +} + 64b6: 140e addi r14, r14, 56 + 64b8: 1491 pop r4, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 64ba: 3400 movi r4, 0 + 64bc: 07a4 br 0x6404 // 6404 + 64be: 0000 bkpt + 64c0: 20000568 .long 0x20000568 + 64c4: 20000470 .long 0x20000470 + +Disassembly of section .text.BLV_Energy_SetTime_Packing: + +000064c8 : + +//MCU设置周期 +U8_T BLV_Energy_SetTime_Packing(U8_T *data,U16_T lens) +{ + 64c8: 14d2 push r4-r5, r15 + 64ca: 1421 subi r14, r14, 4 + if(lens < 18) return 0x01; + 64cc: 3911 cmphsi r1, 18 +{ + 64ce: 6d03 mov r4, r0 + 64d0: 6d47 mov r5, r1 + if(lens < 18) return 0x01; + 64d2: 0c43 bf 0x6558 // 6558 + + U32_T temp_T = 0; + + if( ( (data[7])&0x01) == 0x01) + 64d4: 8067 ld.b r3, (r0, 0x7) + 64d6: 3201 movi r2, 1 + 64d8: 68c8 and r3, r2 + 64da: 3b40 cmpnei r3, 0 + 64dc: 0c10 bf 0x64fc // 64fc + { + temp_T = (data[11]<<24) + (data[10]<<16) + (data[9]<<8) + data[8]; + 64de: 806b ld.b r3, (r0, 0xb) + 64e0: 804a ld.b r2, (r0, 0xa) + 64e2: 4250 lsli r2, r2, 16 + 64e4: 4378 lsli r3, r3, 24 + 64e6: 60c8 addu r3, r2 + 64e8: 8049 ld.b r2, (r0, 0x9) + 64ea: 4248 lsli r2, r2, 8 + 64ec: 60c8 addu r3, r2 + 64ee: 8048 ld.b r2, (r0, 0x8) + 64f0: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 64f2: 105b lrw r2, 0x3e7 // 655c + 64f4: 64c8 cmphs r2, r3 + 64f6: 0803 bt 0x64fc // 64fc + g_Eng.Collect_Tim = temp_T; + 64f8: 105a lrw r2, 0x20000568 // 6560 + 64fa: b279 st.w r3, (r2, 0x64) + } + } + + if(data[12] == 0x00) + 64fc: 846c ld.b r3, (r4, 0xc) + { + g_Dip.Dev_Port = Passive_Port; + 64fe: 3b40 cmpnei r3, 0 + 6500: 3300 movi r3, 0 + 6502: 60cd addc r3, r3 + 6504: 1058 lrw r2, 0x20000470 // 6564 + 6506: a267 st.b r3, (r2, 0x7) + } + else{ + g_Dip.Dev_Port = Active_Port; + } + + if( ((data[7] >> 1)&0x01) == 0x01) + 6508: 8467 ld.b r3, (r4, 0x7) + 650a: 4b61 lsri r3, r3, 1 + 650c: 3201 movi r2, 1 + 650e: 68c8 and r3, r2 + 6510: 3b40 cmpnei r3, 0 + 6512: 0c10 bf 0x6532 // 6532 + { + temp_T = (data[16]<<24) + (data[15]<<16) + (data[14]<<8) + data[13]; + 6514: 8470 ld.b r3, (r4, 0x10) + 6516: 844f ld.b r2, (r4, 0xf) + 6518: 4250 lsli r2, r2, 16 + 651a: 4378 lsli r3, r3, 24 + 651c: 60c8 addu r3, r2 + 651e: 844e ld.b r2, (r4, 0xe) + 6520: 4248 lsli r2, r2, 8 + 6522: 60c8 addu r3, r2 + 6524: 844d ld.b r2, (r4, 0xd) + 6526: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 6528: 104d lrw r2, 0x3e7 // 655c + 652a: 64c8 cmphs r2, r3 + 652c: 0803 bt 0x6532 // 6532 + g_Eng.Report_Tim = temp_T; + 652e: 104d lrw r2, 0x20000568 // 6560 + 6530: b27a st.w r3, (r2, 0x68) + } + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 6532: e3fff8d7 bsr 0x56e0 // 56e0 + + //数据原样返回 + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 6536: 3314 movi r3, 20 + 6538: b860 st.w r3, (r14, 0x0) + 653a: 3396 movi r3, 150 + 653c: 4361 lsli r3, r3, 1 + 653e: 3201 movi r2, 1 + 6540: 6c57 mov r1, r5 + 6542: 6c13 mov r0, r4 + 6544: e3fff5e2 bsr 0x5108 // 5108 + 6548: 6c13 mov r0, r4 + 654a: 7454 zextb r1, r5 + 654c: 3206 movi r2, 6 + 654e: e3fffc1d bsr 0x5d88 // 5d88 + 6552: 3000 movi r0, 0 + BT_Uart_Packing(data,lens,6); + + return 0x00; +} + 6554: 1401 addi r14, r14, 4 + 6556: 1492 pop r4-r5, r15 + if(lens < 18) return 0x01; + 6558: 3001 movi r0, 1 + 655a: 07fd br 0x6554 // 6554 + 655c: 000003e7 .long 0x000003e7 + 6560: 20000568 .long 0x20000568 + 6564: 20000470 .long 0x20000470 + +Disassembly of section .text.BLV_Energy_QueryVersion_Packing: + +00006568 : + +//版本查询回复组包 +void BLV_Energy_QueryVersion_Packing(void) +{ + 6568: 14d0 push r15 + 656a: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 656c: 1801 addi r0, r14, 4 + 656e: 3232 movi r2, 50 + 6570: 3100 movi r1, 0 + 6572: e3ffdde5 bsr 0x213c // 213c <__memset_fast> + U16_T send_len = 0x00; + + g_Eng.SdSN++; + 6576: 1161 lrw r3, 0x20000568 // 65f8 + 6578: 8344 ld.b r2, (r3, 0x4) + 657a: 2200 addi r2, 1 + 657c: 7488 zextb r2, r2 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 657e: 3a0f cmphsi r2, 16 + 6580: 083a bt 0x65f4 // 65f4 + 6582: a344 st.b r2, (r3, 0x4) + + send_data[send_len++] = ENERGY_HEAD; + send_data[send_len++] = g_Eng.SdSN; //sn; + 6584: 8364 ld.b r3, (r3, 0x4) + 6586: dc6e0005 st.b r3, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 658a: 3300 movi r3, 0 + 658c: 2b0b subi r3, 12 + send_data[send_len++] = ENERGY_HEAD; + 658e: 3200 movi r2, 0 + send_data[send_len++] = DEV_TYPE; //type + 6590: dc6e0006 st.b r3, (r14, 0x6) + send_data[send_len++] = ENERGY_HEAD; + 6594: 2a75 subi r2, 118 + send_data[send_len++] = g_Dip.addr; + 6596: 107a lrw r3, 0x20000470 // 65fc + send_data[send_len++] = g_Dip.Dev_Port; + + send_data[send_len++] = ENERGY_TAIL; + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 6598: 310b movi r1, 11 + send_data[send_len++] = ENERGY_HEAD; + 659a: dc4e0004 st.b r2, (r14, 0x4) + send_data[send_len++] = g_Dip.addr; + 659e: 8346 ld.b r2, (r3, 0x6) + send_data[send_len++] = g_Dip.Dev_Port; + 65a0: 8367 ld.b r3, (r3, 0x7) + send_data[send_len++] = g_Dip.addr; + 65a2: dc4e0007 st.b r2, (r14, 0x7) + send_data[send_len++] = g_Dip.Dev_Port; + 65a6: dc6e000d st.b r3, (r14, 0xd) + send_data[send_len++] = 0x04; //cmd + 65aa: 3204 movi r2, 4 + send_data[send_len++] = ENERGY_TAIL; + 65ac: 3300 movi r3, 0 + send_data[send_len++] = 0x04; //cmd + 65ae: dc4e000a st.b r2, (r14, 0xa) + send_data[send_len++] = ENERGY_TAIL; + 65b2: 2b57 subi r3, 88 + send_data[send_len++] = Project_FW_Version; + 65b4: 3205 movi r2, 5 + 65b6: dc4e000b st.b r2, (r14, 0xb) + send_data[send_len++] = ENERGY_TAIL; + 65ba: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = Project_HW_Version; + 65be: 3203 movi r2, 3 + send_data[4] = send_len; + 65c0: 330b movi r3, 11 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 65c2: 1801 addi r0, r14, 4 + send_data[send_len++] = Project_HW_Version; + 65c4: dc4e000c st.b r2, (r14, 0xc) + send_data[4] = send_len; + 65c8: dc6e0008 st.b r3, (r14, 0x8) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 65cc: e3fffc7c bsr 0x5ec4 // 5ec4 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 65d0: 3332 movi r3, 50 + 65d2: b860 st.w r3, (r14, 0x0) + 65d4: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 65d6: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 65da: 4361 lsli r3, r3, 1 + 65dc: 1801 addi r0, r14, 4 + 65de: 3201 movi r2, 1 + 65e0: 310b movi r1, 11 + 65e2: e3fff593 bsr 0x5108 // 5108 + 65e6: 3206 movi r2, 6 + 65e8: 310b movi r1, 11 + 65ea: 1801 addi r0, r14, 4 + 65ec: e3fffbce bsr 0x5d88 // 5d88 + BT_Uart_Packing(send_data,send_len,6); +} + 65f0: 140e addi r14, r14, 56 + 65f2: 1490 pop r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 65f4: 3200 movi r2, 0 + 65f6: 07c6 br 0x6582 // 6582 + 65f8: 20000568 .long 0x20000568 + 65fc: 20000470 .long 0x20000470 + +Disassembly of section .text.SetCalibFactor_Switch: + +00006600 : +// +// return 0x00; +//} + +U8_T SetCalibFactor_Switch(U8_T ch,F32_T value) +{ + 6600: 14d0 push r15 + switch(ch) + 6602: 3805 cmphsi r0, 6 + 6604: 0808 bt 0x6614 // 6614 + 6606: 106a lrw r3, 0x20000568 // 662c + 6608: e3ffd37a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 660c: 0a080603 .long 0x0a080603 + 6610: 0e0c .short 0x0e0c + { + case 0x00: + g_Eng.V_K_Val = value; + 6612: b333 st.w r1, (r3, 0x4c) + break; + default: + break; + } + return 0; +} + 6614: 3000 movi r0, 0 + 6616: 1490 pop r15 + g_Eng.I_K1_Val = value; + 6618: b334 st.w r1, (r3, 0x50) + break; + 661a: 07fd br 0x6614 // 6614 + g_Eng.I_K2_Val = value; + 661c: b335 st.w r1, (r3, 0x54) + break; + 661e: 07fb br 0x6614 // 6614 + g_Eng.P_K_Val = value; + 6620: b336 st.w r1, (r3, 0x58) + break; + 6622: 07f9 br 0x6614 // 6614 + g_Eng.I_OffSetVal = value; + 6624: b337 st.w r1, (r3, 0x5c) + break; + 6626: 07f7 br 0x6614 // 6614 + g_Eng.P_OffSetVal = value; + 6628: b338 st.w r1, (r3, 0x60) + break; + 662a: 07f5 br 0x6614 // 6614 + 662c: 20000568 .long 0x20000568 + +Disassembly of section .text.BLV_Energy_SetCalibFactor: + +00006630 : +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor(U8_T *data,U16_T lens) +{ + 6630: 14d4 push r4-r7, r15 + 6632: 1423 subi r14, r14, 12 + if(lens < 10) return 0x01; + 6634: 3909 cmphsi r1, 10 +{ + 6636: 6d43 mov r5, r0 + 6638: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 663a: 0c36 bf 0x66a6 // 66a6 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 663c: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 663e: 3c05 cmphsi r4, 6 + 6640: 0835 bt 0x66aa // 66aa + U8_T temp_num = ((data[8])&0xff); + 6642: 8028 ld.b r1, (r0, 0x8) + 6644: 3209 movi r2, 9 + 6646: 3906 cmphsi r1, 7 + 6648: 6080 addu r2, r0 + 664a: 6cc7 mov r3, r1 + 664c: 0c02 bf 0x6650 // 6650 + 664e: 3306 movi r3, 6 + 6650: 60d0 addu r3, r4 + 6652: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 6654: 10f7 lrw r7, 0x47c35000 // 66b0 + for(U8_T i = 0;i< temp_num;i++) + 6656: 64d2 cmpne r4, r3 + 6658: 080f bt 0x6676 // 6676 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 665a: e3fff843 bsr 0x56e0 // 56e0 + + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 665e: 3314 movi r3, 20 + 6660: b860 st.w r3, (r14, 0x0) + 6662: 3396 movi r3, 150 + 6664: 6c17 mov r0, r5 + 6666: 4361 lsli r3, r3, 1 + 6668: 3201 movi r2, 1 + 666a: 6c5b mov r1, r6 + 666c: e3fff54e bsr 0x5108 // 5108 + 6670: 3000 movi r0, 0 + + return 0x00; +} + 6672: 1403 addi r14, r14, 12 + 6674: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 6676: 8201 ld.b r0, (r2, 0x1) + 6678: 8220 ld.b r1, (r2, 0x0) + 667a: 4008 lsli r0, r0, 8 + 667c: 6004 addu r0, r1 + 667e: 8222 ld.b r1, (r2, 0x2) + 6680: 4130 lsli r1, r1, 16 + 6682: 6004 addu r0, r1 + 6684: b862 st.w r3, (r14, 0x8) + 6686: b841 st.w r2, (r14, 0x4) + 6688: e3ffd570 bsr 0x1168 // 1168 <__floatsisf> + temp_T /= 100000.0; + 668c: 6c5f mov r1, r7 + 668e: e3ffd4d7 bsr 0x103c // 103c <__divsf3> + 6692: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 6694: 6c13 mov r0, r4 + 6696: e3ffffb5 bsr 0x6600 // 6600 + 669a: 2400 addi r4, 1 + 669c: 9841 ld.w r2, (r14, 0x4) + 669e: 2202 addi r2, 3 + 66a0: 7510 zextb r4, r4 + 66a2: 9862 ld.w r3, (r14, 0x8) + 66a4: 07d9 br 0x6656 // 6656 + if(lens < 10) return 0x01; + 66a6: 3001 movi r0, 1 + 66a8: 07e5 br 0x6672 // 6672 + if( ctrl_num > 0x05) return 0x02; + 66aa: 3002 movi r0, 2 + 66ac: 07e3 br 0x6672 // 6672 + 66ae: 0000 bkpt + 66b0: 47c35000 .long 0x47c35000 + +Disassembly of section .text.BLV_Energy_SetCalibFactor_2: + +000066b4 : + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor_2(U8_T *data,U16_T lens) +{ + 66b4: 14d4 push r4-r7, r15 + 66b6: 1422 subi r14, r14, 8 + if(lens < 10) return 0x01; + 66b8: 3909 cmphsi r1, 10 +{ + 66ba: 6d43 mov r5, r0 + 66bc: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 66be: 0c32 bf 0x6722 // 6722 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 66c0: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 66c2: 3c05 cmphsi r4, 6 + 66c4: 0831 bt 0x6726 // 6726 + U8_T temp_num = ((data[8])&0xff); + 66c6: 8028 ld.b r1, (r0, 0x8) + 66c8: 3209 movi r2, 9 + 66ca: 3903 cmphsi r1, 4 + 66cc: 6080 addu r2, r0 + 66ce: 6cc7 mov r3, r1 + 66d0: 0c02 bf 0x66d4 // 66d4 + 66d2: 3303 movi r3, 3 + 66d4: 60d0 addu r3, r4 + 66d6: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 66d8: 10f5 lrw r7, 0x47c35000 // 672c + for(U8_T i = 0;i< temp_num;i++) + 66da: 64d2 cmpne r4, r3 + 66dc: 080b bt 0x66f2 // 66f2 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 66de: e3fff801 bsr 0x56e0 // 56e0 + 66e2: 6c17 mov r0, r5 + 66e4: 7458 zextb r1, r6 + 66e6: 3206 movi r2, 6 + 66e8: e3fffb50 bsr 0x5d88 // 5d88 + 66ec: 3000 movi r0, 0 + + //数据原样返回 + BT_Uart_Packing(data,lens,6); //蓝牙发送 + + return 0x00; +} + 66ee: 1402 addi r14, r14, 8 + 66f0: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 66f2: 8201 ld.b r0, (r2, 0x1) + 66f4: 8220 ld.b r1, (r2, 0x0) + 66f6: 4008 lsli r0, r0, 8 + 66f8: 6004 addu r0, r1 + 66fa: 8222 ld.b r1, (r2, 0x2) + 66fc: 4130 lsli r1, r1, 16 + 66fe: 6004 addu r0, r1 + 6700: b861 st.w r3, (r14, 0x4) + 6702: b840 st.w r2, (r14, 0x0) + 6704: e3ffd532 bsr 0x1168 // 1168 <__floatsisf> + temp_T /= 100000.0; + 6708: 6c5f mov r1, r7 + 670a: e3ffd499 bsr 0x103c // 103c <__divsf3> + 670e: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 6710: 6c13 mov r0, r4 + 6712: e3ffff77 bsr 0x6600 // 6600 + 6716: 2400 addi r4, 1 + 6718: 9840 ld.w r2, (r14, 0x0) + 671a: 2202 addi r2, 3 + 671c: 7510 zextb r4, r4 + 671e: 9861 ld.w r3, (r14, 0x4) + 6720: 07dd br 0x66da // 66da + if(lens < 10) return 0x01; + 6722: 3001 movi r0, 1 + 6724: 07e5 br 0x66ee // 66ee + if( ctrl_num > 0x05) return 0x02; + 6726: 3002 movi r0, 2 + 6728: 07e3 br 0x66ee // 66ee + 672a: 0000 bkpt + 672c: 47c35000 .long 0x47c35000 + +Disassembly of section .text.HLW_485Recv_Processing: + +00006730 : + + +//485处理函数 +U8_T HLW_485Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 6730: 14d4 push r4-r7, r15 + 6732: 1421 subi r14, r14, 4 + + if(RecvLen < 8){ + 6734: 3907 cmphsi r1, 8 +{ + 6736: 6d03 mov r4, r0 + 6738: 6d87 mov r6, r1 + if(RecvLen < 8){ + 673a: 0c54 bf 0x67e2 // 67e2 + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 673c: 8024 ld.b r1, (r0, 0x4) + 673e: 6586 cmpne r1, r6 + 6740: 0c0a bf 0x6754 // 6754 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Data Len Error",__func__); + 6742: 124a lrw r2, 0x7688 // 6868 + 6744: 122a lrw r1, 0x827c // 686c + 6746: 3000 movi r0, 0 + 6748: e3fff568 bsr 0x5218 // 5218 + return 0x02; + 674c: 3502 movi r5, 2 + return 0x01; + break; + } + + return 0; +} + 674e: 6c17 mov r0, r5 + 6750: 1401 addi r14, r14, 4 + 6752: 1494 pop r4-r7, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 6754: 8040 ld.b r2, (r0, 0x0) + 6756: 338a movi r3, 138 + 6758: 64ca cmpne r2, r3 + 675a: 0807 bt 0x6768 // 6768 + 675c: 5864 addu r3, r0, r1 + 675e: 2b00 subi r3, 1 + 6760: 8340 ld.b r2, (r3, 0x0) + 6762: 33a8 movi r3, 168 + 6764: 64ca cmpne r2, r3 + 6766: 0c08 bf 0x6776 // 6776 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Head Error",__func__); + 6768: 1240 lrw r2, 0x7688 // 6868 + 676a: 1222 lrw r1, 0x828e // 6870 + 676c: 3000 movi r0, 0 + 676e: e3fff555 bsr 0x5218 // 5218 + return 0x03; + 6772: 3503 movi r5, 3 + 6774: 07ed br 0x674e // 674e + if(RecvData[2] != DEV_TYPE){// + 6776: 8042 ld.b r2, (r0, 0x2) + 6778: 33f4 movi r3, 244 + 677a: 64ca cmpne r2, r3 + 677c: 0c08 bf 0x678c // 678c + Dbg_Println(DBG_BIT_SYS_STATUS,"%s TYPE Error",__func__); + 677e: 115b lrw r2, 0x7688 // 6868 + 6780: 113d lrw r1, 0x829c // 6874 + 6782: 3000 movi r0, 0 + 6784: e3fff54a bsr 0x5218 // 5218 + return 0x04; + 6788: 3504 movi r5, 4 + 678a: 07e2 br 0x674e // 674e + if(RecvData[3] != g_Dip.addr){// + 678c: 117b lrw r3, 0x20000470 // 6878 + 678e: 8043 ld.b r2, (r0, 0x3) + 6790: 8366 ld.b r3, (r3, 0x6) + 6792: 64ca cmpne r2, r3 + 6794: 0c08 bf 0x67a4 // 67a4 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error",__func__); + 6796: 1155 lrw r2, 0x7688 // 6868 + 6798: 1139 lrw r1, 0x82aa // 687c + 679a: 3000 movi r0, 0 + 679c: e3fff53e bsr 0x5218 // 5218 + return 0x05; + 67a0: 3505 movi r5, 5 + 67a2: 07d6 br 0x674e // 674e + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 67a4: e3fffb90 bsr 0x5ec4 // 5ec4 + 67a8: 3840 cmpnei r0, 0 + 67aa: 6d43 mov r5, r0 + 67ac: 0c08 bf 0x67bc // 67bc + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 67ae: 114f lrw r2, 0x7688 // 6868 + 67b0: 1134 lrw r1, 0x82b8 // 6880 + 67b2: 3000 movi r0, 0 + 67b4: e3fff532 bsr 0x5218 // 5218 + return 0x06; + 67b8: 3506 movi r5, 6 + 67ba: 07ca br 0x674e // 674e + g_Eng.SdSN = RecvData[1]; //序列号 + 67bc: 8461 ld.b r3, (r4, 0x1) + 67be: 11f2 lrw r7, 0x20000568 // 6884 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 67c0: 8446 ld.b r2, (r4, 0x6) + 67c2: 1132 lrw r1, 0x801d // 6888 + 67c4: 3000 movi r0, 0 + g_Eng.SdSN = RecvData[1]; //序列号 + 67c6: a764 st.b r3, (r7, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 67c8: e3fff528 bsr 0x5218 // 5218 + switch(RecvData[6]) + 67cc: 8466 ld.b r3, (r4, 0x6) + 67ce: 3b44 cmpnei r3, 4 + 67d0: 0c36 bf 0x683c // 683c + 67d2: 3b04 cmphsi r3, 5 + 67d4: 0809 bt 0x67e6 // 67e6 + 67d6: 3b42 cmpnei r3, 2 + 67d8: 0c2a bf 0x682c // 682c + 67da: 3b02 cmphsi r3, 3 + 67dc: 082b bt 0x6832 // 6832 + 67de: 3b41 cmpnei r3, 1 + 67e0: 0c23 bf 0x6826 // 6826 + return 0x01; + 67e2: 3501 movi r5, 1 + 67e4: 07b5 br 0x674e // 674e + switch(RecvData[6]) + 67e6: 3b54 cmpnei r3, 20 + 67e8: 0c2d bf 0x6842 // 6842 + 67ea: 3b14 cmphsi r3, 21 + 67ec: 0812 bt 0x6810 // 6810 + 67ee: 3b53 cmpnei r3, 19 + 67f0: 0bf9 bt 0x67e2 // 67e2 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 67f2: 9768 ld.w r3, (r7, 0x20) + 67f4: b769 st.w r3, (r7, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 67f6: 1166 lrw r3, 0x200000d4 // 688c + 67f8: 9360 ld.w r3, (r3, 0x0) + 67fa: b77c st.w r3, (r7, 0x70) + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 67fc: 3314 movi r3, 20 + 67fe: b860 st.w r3, (r14, 0x0) + 6800: 3396 movi r3, 150 + 6802: 4361 lsli r3, r3, 1 + 6804: 3201 movi r2, 1 + 6806: 6c5b mov r1, r6 + 6808: 6c13 mov r0, r4 + 680a: e3fff47f bsr 0x5108 // 5108 + break; + 680e: 07a0 br 0x674e // 674e + switch(RecvData[6]) + 6810: 3b55 cmpnei r3, 21 + 6812: 0c26 bf 0x685e // 685e + 6814: 3221 movi r2, 33 + 6816: 648e cmpne r3, r2 + 6818: 0be5 bt 0x67e2 // 67e2 + Dbg_Switch = (RecvData[7]&0x1f); + 681a: 321f movi r2, 31 + 681c: 8467 ld.b r3, (r4, 0x7) + 681e: 68c8 and r3, r2 + 6820: 105c lrw r2, 0x2000006c // 6890 + 6822: b260 st.w r3, (r2, 0x0) + 6824: 07ec br 0x67fc // 67fc + Clear_SendFlag(); + 6826: e3fff4a3 bsr 0x516c // 516c + break; + 682a: 0792 br 0x674e // 674e + BLV_Energy_PassiveRep_Packing(); + 682c: e3fffdd8 bsr 0x63dc // 63dc + break; + 6830: 078f br 0x674e // 674e + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 6832: 6c5b mov r1, r6 + 6834: 6c13 mov r0, r4 + 6836: e3fffe49 bsr 0x64c8 // 64c8 + break; + 683a: 078a br 0x674e // 674e + BLV_Energy_QueryVersion_Packing(); + 683c: e3fffe96 bsr 0x6568 // 6568 + break; + 6840: 0787 br 0x674e // 674e + Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"Zero"); + 6842: 1035 lrw r1, 0x82c7 // 6894 + 6844: 3004 movi r0, 4 + 6846: e3fff5f5 bsr 0x5430 // 5430 + g_Eng.Total_Eng = 0; + 684a: 3300 movi r3, 0 + eng_info.eng_total = g_Eng.Total_Eng; + 684c: 1013 lrw r0, 0x200004d8 // 6898 + eng_info.U32_EnergyA_RegData = g_Eng.U32_EnergyA_RegData; + 684e: b062 st.w r3, (r0, 0x8) + g_Eng.Total_Eng = 0; + 6850: b768 st.w r3, (r7, 0x20) + g_Eng.U32_EnergyA_RegData = 0x00; + 6852: b76f st.w r3, (r7, 0x3c) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 6854: b769 st.w r3, (r7, 0x24) + eng_info.eng_total = g_Eng.Total_Eng; + 6856: b060 st.w r3, (r0, 0x0) + EEPROM_WriteTotalEng(&eng_info); + 6858: e3fff8da bsr 0x5a0c // 5a0c + 685c: 07d0 br 0x67fc // 67fc + BLV_Energy_SetCalibFactor(RecvData,RecvLen); + 685e: 6c5b mov r1, r6 + 6860: 6c13 mov r0, r4 + 6862: e3fffee7 bsr 0x6630 // 6630 + break; + 6866: 0774 br 0x674e // 674e + 6868: 00007688 .long 0x00007688 + 686c: 0000827c .long 0x0000827c + 6870: 0000828e .long 0x0000828e + 6874: 0000829c .long 0x0000829c + 6878: 20000470 .long 0x20000470 + 687c: 000082aa .long 0x000082aa + 6880: 000082b8 .long 0x000082b8 + 6884: 20000568 .long 0x20000568 + 6888: 0000801d .long 0x0000801d + 688c: 200000d4 .long 0x200000d4 + 6890: 2000006c .long 0x2000006c + 6894: 000082c7 .long 0x000082c7 + 6898: 200004d8 .long 0x200004d8 + +Disassembly of section .text.BT_Recv_Processing: + +0000689c : + + + +//BT处理函数 +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 689c: 14d3 push r4-r6, r15 + if(RecvLen < 8){ + 689e: 3907 cmphsi r1, 8 +{ + 68a0: 6d03 mov r4, r0 + 68a2: 6d47 mov r5, r1 + if(RecvLen < 8){ + 68a4: 0c49 bf 0x6936 // 6936 + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 68a6: 8024 ld.b r1, (r0, 0x4) + 68a8: 6546 cmpne r1, r5 + 68aa: 0c08 bf 0x68ba // 68ba + Dbg_BT_Println(DBG_BIT_BT_STATUS,"DatLenErr"); + 68ac: 1139 lrw r1, 0x82cc // 6990 + 68ae: 3003 movi r0, 3 + 68b0: e3fff5c0 bsr 0x5430 // 5430 + return 0x02; + 68b4: 3602 movi r6, 2 + return 0x01; + break; + } + + return 0; +} + 68b6: 6c1b mov r0, r6 + 68b8: 1493 pop r4-r6, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 68ba: 8040 ld.b r2, (r0, 0x0) + 68bc: 338a movi r3, 138 + 68be: 64ca cmpne r2, r3 + 68c0: 0807 bt 0x68ce // 68ce + 68c2: 5864 addu r3, r0, r1 + 68c4: 2b00 subi r3, 1 + 68c6: 8340 ld.b r2, (r3, 0x0) + 68c8: 33a8 movi r3, 168 + 68ca: 64ca cmpne r2, r3 + 68cc: 0c07 bf 0x68da // 68da + Dbg_BT_Println(DBG_BIT_BT_STATUS,"HeadErr"); + 68ce: 1132 lrw r1, 0x82d6 // 6994 + 68d0: 3003 movi r0, 3 + 68d2: e3fff5af bsr 0x5430 // 5430 + return 0x03; + 68d6: 3603 movi r6, 3 + 68d8: 07ef br 0x68b6 // 68b6 + if(RecvData[2] != DEV_TYPE){// + 68da: 8042 ld.b r2, (r0, 0x2) + 68dc: 33f4 movi r3, 244 + 68de: 64ca cmpne r2, r3 + 68e0: 0c07 bf 0x68ee // 68ee + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TYPEErr"); + 68e2: 112e lrw r1, 0x82de // 6998 + 68e4: 3003 movi r0, 3 + 68e6: e3fff5a5 bsr 0x5430 // 5430 + return 0x04; + 68ea: 3604 movi r6, 4 + 68ec: 07e5 br 0x68b6 // 68b6 + if(RecvData[3] != g_Dip.addr){// + 68ee: 116c lrw r3, 0x20000470 // 699c + 68f0: 8043 ld.b r2, (r0, 0x3) + 68f2: 8366 ld.b r3, (r3, 0x6) + 68f4: 64ca cmpne r2, r3 + 68f6: 0c07 bf 0x6904 // 6904 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"AddrErr"); + 68f8: 112a lrw r1, 0x82e6 // 69a0 + 68fa: 3003 movi r0, 3 + 68fc: e3fff59a bsr 0x5430 // 5430 + return 0x05; + 6900: 3605 movi r6, 5 + 6902: 07da br 0x68b6 // 68b6 + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 6904: e3fffae0 bsr 0x5ec4 // 5ec4 + 6908: 3840 cmpnei r0, 0 + 690a: 6d83 mov r6, r0 + 690c: 0c07 bf 0x691a // 691a + Dbg_BT_Println(DBG_BIT_BT_STATUS,"CheckErr"); + 690e: 1126 lrw r1, 0x82ee // 69a4 + 6910: 3003 movi r0, 3 + 6912: e3fff58f bsr 0x5430 // 5430 + return 0x06; + 6916: 3606 movi r6, 6 + 6918: 07cf br 0x68b6 // 68b6 + g_Eng.SdSN = (RecvData[1]&0x0F); //序列号 + 691a: 8461 ld.b r3, (r4, 0x1) + 691c: 310f movi r1, 15 + 691e: 68c4 and r3, r1 + 6920: 1142 lrw r2, 0x20000568 // 69a8 + 6922: a264 st.b r3, (r2, 0x4) + switch(RecvData[6]) + 6924: 8466 ld.b r3, (r4, 0x6) + 6926: 3b44 cmpnei r3, 4 + 6928: 0c20 bf 0x6968 // 6968 + 692a: 3b04 cmphsi r3, 5 + 692c: 0807 bt 0x693a // 693a + 692e: 3b42 cmpnei r3, 2 + 6930: 0fc3 bf 0x68b6 // 68b6 + 6932: 3b43 cmpnei r3, 3 + 6934: 0c15 bf 0x695e // 695e + return 0x01; + 6936: 3601 movi r6, 1 + 6938: 07bf br 0x68b6 // 68b6 + switch(RecvData[6]) + 693a: 3b55 cmpnei r3, 21 + 693c: 0c19 bf 0x696e // 696e + 693e: 3121 movi r1, 33 + 6940: 644e cmpne r3, r1 + 6942: 0c1b bf 0x6978 // 6978 + 6944: 3b53 cmpnei r3, 19 + 6946: 0bf8 bt 0x6936 // 6936 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 6948: 9268 ld.w r3, (r2, 0x20) + 694a: b269 st.w r3, (r2, 0x24) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 694c: 1078 lrw r3, 0x200000d4 // 69ac + 694e: 9360 ld.w r3, (r3, 0x0) + 6950: b27c st.w r3, (r2, 0x70) + 6952: 7454 zextb r1, r5 + 6954: 3206 movi r2, 6 + 6956: 6c13 mov r0, r4 + 6958: e3fffa18 bsr 0x5d88 // 5d88 + 695c: 07ad br 0x68b6 // 68b6 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 695e: 6c57 mov r1, r5 + 6960: 6c13 mov r0, r4 + 6962: e3fffdb3 bsr 0x64c8 // 64c8 + break; + 6966: 07a8 br 0x68b6 // 68b6 + BLV_Energy_QueryVersion_Packing(); + 6968: e3fffe00 bsr 0x6568 // 6568 + break; + 696c: 07a5 br 0x68b6 // 68b6 + BLV_Energy_SetCalibFactor_2(RecvData,RecvLen); + 696e: 6c57 mov r1, r5 + 6970: 6c13 mov r0, r4 + 6972: e3fffea1 bsr 0x66b4 // 66b4 + break; + 6976: 07a0 br 0x68b6 // 68b6 + if( (RecvData[7]&0x08) != 0x00 ){ + 6978: 3208 movi r2, 8 + 697a: 8467 ld.b r3, (r4, 0x7) + 697c: 68c8 and r3, r2 + 697e: 3b40 cmpnei r3, 0 + 6980: 106c lrw r3, 0x2000006c // 69b0 + Dbg_Switch |= 0x08; + 6982: 9340 ld.w r2, (r3, 0x0) + if( (RecvData[7]&0x08) != 0x00 ){ + 6984: 0c04 bf 0x698c // 698c + Dbg_Switch |= 0x08; + 6986: 3aa3 bseti r2, 3 + Dbg_Switch &= (~0x08); + 6988: b340 st.w r2, (r3, 0x0) + 698a: 07e4 br 0x6952 // 6952 + 698c: 3a83 bclri r2, 3 + 698e: 07fd br 0x6988 // 6988 + 6990: 000082cc .long 0x000082cc + 6994: 000082d6 .long 0x000082d6 + 6998: 000082de .long 0x000082de + 699c: 20000470 .long 0x20000470 + 69a0: 000082e6 .long 0x000082e6 + 69a4: 000082ee .long 0x000082ee + 69a8: 20000568 .long 0x20000568 + 69ac: 200000d4 .long 0x200000d4 + 69b0: 2000006c .long 0x2000006c + +Disassembly of section .text.Boot_Function_Init: + +000069b4 : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 69b4: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 69b6: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 69b8: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 69ba: 4241 lsli r2, r2, 1 + 69bc: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 69be: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 69c0: 1101 lrw r0, 0x200005e0 // 6a44 + 69c2: e3ffdbbd bsr 0x213c // 213c <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 69c6: 6c97 mov r2, r5 + 69c8: 3100 movi r1, 0 + 69ca: 1100 lrw r0, 0x2000071c // 6a48 + 69cc: e3ffdbb8 bsr 0x213c // 213c <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 69d0: 33fa movi r3, 250 + 69d2: 4362 lsli r3, r3, 2 + 69d4: 109e lrw r4, 0x200006e0 // 6a4c + 69d6: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 69d8: e3fff942 bsr 0x5c5c // 5c5c +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 69dc: 107d lrw r3, 0x20000060 // 6a50 + 69de: 9360 ld.w r3, (r3, 0x0) + 69e0: 23ff addi r3, 256 + 69e2: 9343 ld.w r2, (r3, 0xc) + 69e4: 7449 zexth r1, r2 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 69e6: 6546 cmpne r1, r5 + 69e8: 0808 bt 0x69f8 // 69f8 + { + g_boot.bootTimeout = 5000; + 69ea: 107b lrw r3, 0x1388 // 6a54 + 69ec: b46d st.w r3, (r4, 0x34) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS," Boot software reset"); + 69ee: 103b lrw r1, 0x82f7 // 6a58 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 69f0: 3000 movi r0, 0 + 69f2: e3fff413 bsr 0x5218 // 5218 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 69f6: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 69f8: 3941 cmpnei r1, 1 + 69fa: 0806 bt 0x6a06 // 6a06 + g_boot.bootTimeout = 500; + 69fc: 33fa movi r3, 250 + 69fe: 4361 lsli r3, r3, 1 + 6a00: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot power on reset"); + 6a02: 1037 lrw r1, 0x830c // 6a5c + 6a04: 07f6 br 0x69f0 // 69f0 + 6a06: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x04) //外部手动复位 + 6a08: 3944 cmpnei r1, 4 + 6a0a: 4363 lsli r3, r3, 3 + 6a0c: 0804 bt 0x6a14 // 6a14 + g_boot.bootTimeout = 2000; + 6a0e: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex-pin reset"); + 6a10: 1034 lrw r1, 0x8320 // 6a60 + 6a12: 07ef br 0x69f0 // 69f0 + }else if(sys_reset_sta == 0x10) //看门狗超时复位 --升级完成复位源 + 6a14: 3950 cmpnei r1, 16 + 6a16: 0804 bt 0x6a1e // 6a1e + g_boot.bootTimeout = 2000; + 6a18: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot wdt reset"); + 6a1a: 1033 lrw r1, 0x8332 // 6a64 + 6a1c: 07ea br 0x69f0 // 69f0 + }else if(sys_reset_sta == 0x40) //外部时钟无效复位 + 6a1e: 3040 movi r0, 64 + 6a20: 6406 cmpne r1, r0 + 6a22: 0804 bt 0x6a2a // 6a2a + g_boot.bootTimeout = 2000; + 6a24: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex clock invalid reset"); + 6a26: 1031 lrw r1, 0x8341 // 6a68 + 6a28: 07e4 br 0x69f0 // 69f0 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 6a2a: 3080 movi r0, 128 + 6a2c: 6406 cmpne r1, r0 + g_boot.bootTimeout = 2000; + 6a2e: b46d st.w r3, (r4, 0x34) + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + 6a30: 0803 bt 0x6a36 // 6a36 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + 6a32: 102f lrw r1, 0x835d // 6a6c + 6a34: 07de br 0x69f0 // 69f0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); + 6a36: 7489 zexth r2, r2 + 6a38: 102e lrw r1, 0x8374 // 6a70 + 6a3a: 3000 movi r0, 0 + 6a3c: e3fff3ee bsr 0x5218 // 5218 +} + 6a40: 07db br 0x69f6 // 69f6 + 6a42: 0000 bkpt + 6a44: 200005e0 .long 0x200005e0 + 6a48: 2000071c .long 0x2000071c + 6a4c: 200006e0 .long 0x200006e0 + 6a50: 20000060 .long 0x20000060 + 6a54: 00001388 .long 0x00001388 + 6a58: 000082f7 .long 0x000082f7 + 6a5c: 0000830c .long 0x0000830c + 6a60: 00008320 .long 0x00008320 + 6a64: 00008332 .long 0x00008332 + 6a68: 00008341 .long 0x00008341 + 6a6c: 0000835d .long 0x0000835d + 6a70: 00008374 .long 0x00008374 + +Disassembly of section .text.Fram_SDA_GPIO.part.0: + +00006a74 : + +/******************************************************************************* +* Function Name : +* Description : +*******************************************************************************/ +void Fram_SDA_GPIO(U8_T state) + 6a74: 14d0 push r15 +{ + if(state == 0x01) + { + //设置为输出模式 + GPIO_Init(GPIOA0,FRAM_IIC_SDA,Output); + 6a76: 1067 lrw r3, 0x20000050 // 6a90 + 6a78: 3200 movi r2, 0 + 6a7a: 9300 ld.w r0, (r3, 0x0) + 6a7c: 310d movi r1, 13 + 6a7e: e3ffe7eb bsr 0x3a54 // 3a54 + GPIO_Init(GPIOB0,FRAM_IIC_SCL,Output); + 6a82: 1065 lrw r3, 0x2000004c // 6a94 + 6a84: 3200 movi r2, 0 + 6a86: 9300 ld.w r0, (r3, 0x0) + 6a88: 3100 movi r1, 0 + 6a8a: e3ffe7e5 bsr 0x3a54 // 3a54 + GPIO_Init(GPIOA0,FRAM_IIC_SDA,Intput); + GPIO_Init(GPIOB0,FRAM_IIC_SCL,Intput); + GPIO_PullHigh_Init(GPIOA0,FRAM_IIC_SDA); + GPIO_PullHigh_Init(GPIOB0,FRAM_IIC_SCL); + } +} + 6a8e: 1490 pop r15 + 6a90: 20000050 .long 0x20000050 + 6a94: 2000004c .long 0x2000004c + +Disassembly of section .text.Bsp_I2C_Fram_Init: + +00006a98 : +{ + 6a98: 14d0 push r15 + GPIO_Init(GPIOA0,FRAM_IIC_SDA,Output); + 6a9a: 1067 lrw r3, 0x20000050 // 6ab4 + 6a9c: 3200 movi r2, 0 + 6a9e: 9300 ld.w r0, (r3, 0x0) + 6aa0: 310d movi r1, 13 + 6aa2: e3ffe7d9 bsr 0x3a54 // 3a54 + GPIO_Init(GPIOB0,FRAM_IIC_SCL,Output); + 6aa6: 1065 lrw r3, 0x2000004c // 6ab8 + 6aa8: 3200 movi r2, 0 + 6aaa: 9300 ld.w r0, (r3, 0x0) + 6aac: 3100 movi r1, 0 + 6aae: e3ffe7d3 bsr 0x3a54 // 3a54 +} + 6ab2: 1490 pop r15 + 6ab4: 20000050 .long 0x20000050 + 6ab8: 2000004c .long 0x2000004c + +Disassembly of section .text.Fram_SDA_GPIO: + +00006abc : +{ + 6abc: 14d2 push r4-r5, r15 + if(state == 0x01) + 6abe: 3841 cmpnei r0, 1 + 6ac0: 0804 bt 0x6ac8 // 6ac8 + 6ac2: e3ffffd9 bsr 0x6a74 // 6a74 +} + 6ac6: 1492 pop r4-r5, r15 + GPIO_Init(GPIOA0,FRAM_IIC_SDA,Intput); + 6ac8: 10ab lrw r5, 0x20000050 // 6af4 + GPIO_Init(GPIOB0,FRAM_IIC_SCL,Intput); + 6aca: 108c lrw r4, 0x2000004c // 6af8 + GPIO_Init(GPIOA0,FRAM_IIC_SDA,Intput); + 6acc: 3201 movi r2, 1 + 6ace: 9500 ld.w r0, (r5, 0x0) + 6ad0: 310d movi r1, 13 + 6ad2: e3ffe7c1 bsr 0x3a54 // 3a54 + GPIO_Init(GPIOB0,FRAM_IIC_SCL,Intput); + 6ad6: 3201 movi r2, 1 + 6ad8: 9400 ld.w r0, (r4, 0x0) + 6ada: 3100 movi r1, 0 + 6adc: e3ffe7bc bsr 0x3a54 // 3a54 + GPIO_PullHigh_Init(GPIOA0,FRAM_IIC_SDA); + 6ae0: 9500 ld.w r0, (r5, 0x0) + 6ae2: 310d movi r1, 13 + 6ae4: e3ffe828 bsr 0x3b34 // 3b34 + GPIO_PullHigh_Init(GPIOB0,FRAM_IIC_SCL); + 6ae8: 9400 ld.w r0, (r4, 0x0) + 6aea: 3100 movi r1, 0 + 6aec: e3ffe824 bsr 0x3b34 // 3b34 +} + 6af0: 07eb br 0x6ac6 // 6ac6 + 6af2: 0000 bkpt + 6af4: 20000050 .long 0x20000050 + 6af8: 2000004c .long 0x2000004c + +Disassembly of section .text.IIC_Wait: + +00006afc : +{ +// asm("NOP"); +// asm("NOP"); +// asm("NOP"); +// asm("NOP"); + asm volatile("nop"); + 6afc: 6c03 mov r0, r0 + asm volatile("nop"); + 6afe: 6c03 mov r0, r0 + asm volatile("nop"); + 6b00: 6c03 mov r0, r0 + asm volatile("nop"); + 6b02: 6c03 mov r0, r0 + asm volatile("nop"); + 6b04: 6c03 mov r0, r0 + asm volatile("nop"); + 6b06: 6c03 mov r0, r0 + asm volatile("nop"); + 6b08: 6c03 mov r0, r0 + asm volatile("nop"); + 6b0a: 6c03 mov r0, r0 + asm volatile("nop"); + 6b0c: 6c03 mov r0, r0 + asm volatile("nop"); + 6b0e: 6c03 mov r0, r0 + asm volatile("nop"); + 6b10: 6c03 mov r0, r0 + asm volatile("nop"); + 6b12: 6c03 mov r0, r0 + asm volatile("nop"); + 6b14: 6c03 mov r0, r0 + asm volatile("nop"); + 6b16: 6c03 mov r0, r0 + asm volatile("nop"); + 6b18: 6c03 mov r0, r0 + asm volatile("nop"); + 6b1a: 6c03 mov r0, r0 + asm volatile("nop"); + 6b1c: 6c03 mov r0, r0 + asm volatile("nop"); + 6b1e: 6c03 mov r0, r0 + asm volatile("nop"); + 6b20: 6c03 mov r0, r0 + asm volatile("nop"); + 6b22: 6c03 mov r0, r0 + asm volatile("nop"); + 6b24: 6c03 mov r0, r0 + asm volatile("nop"); + 6b26: 6c03 mov r0, r0 + asm volatile("nop"); + 6b28: 6c03 mov r0, r0 + asm volatile("nop"); + 6b2a: 6c03 mov r0, r0 +} + 6b2c: 783c jmp r15 + +Disassembly of section .text.IIC_Start: + +00006b30 : + + +void IIC_Start(void) +{ + 6b30: 14d2 push r4-r5, r15 + Fram_SDA_GPIO(0x01); + SDA_ON; + 6b32: 10ae lrw r5, 0x20000050 // 6b68 + 6b34: e3ffffa0 bsr 0x6a74 // 6a74 + SCL_ON; + 6b38: 108d lrw r4, 0x2000004c // 6b6c + SDA_ON; + 6b3a: 310d movi r1, 13 + 6b3c: 9500 ld.w r0, (r5, 0x0) + 6b3e: e3ffe911 bsr 0x3d60 // 3d60 + SCL_ON; + 6b42: 9400 ld.w r0, (r4, 0x0) + 6b44: 3100 movi r1, 0 + 6b46: e3ffe90d bsr 0x3d60 // 3d60 + IIC_Wait(); + 6b4a: e3ffffd9 bsr 0x6afc // 6afc + SDA_OFF; + 6b4e: 9500 ld.w r0, (r5, 0x0) + 6b50: 310d movi r1, 13 + 6b52: e3ffe90b bsr 0x3d68 // 3d68 + IIC_Wait(); + 6b56: e3ffffd3 bsr 0x6afc // 6afc + SCL_OFF; + 6b5a: 9400 ld.w r0, (r4, 0x0) + 6b5c: 3100 movi r1, 0 + 6b5e: e3ffe905 bsr 0x3d68 // 3d68 + IIC_Wait(); + 6b62: e3ffffcd bsr 0x6afc // 6afc +} + 6b66: 1492 pop r4-r5, r15 + 6b68: 20000050 .long 0x20000050 + 6b6c: 2000004c .long 0x2000004c + +Disassembly of section .text.IIC_Stop: + +00006b70 : + +void IIC_Stop(void) +{ + 6b70: 14d2 push r4-r5, r15 + Fram_SDA_GPIO(0x01); + SCL_OFF; + 6b72: 10ad lrw r5, 0x2000004c // 6ba4 + 6b74: e3ffff80 bsr 0x6a74 // 6a74 + SDA_OFF; + 6b78: 108c lrw r4, 0x20000050 // 6ba8 + SCL_OFF; + 6b7a: 3100 movi r1, 0 + 6b7c: 9500 ld.w r0, (r5, 0x0) + 6b7e: e3ffe8f5 bsr 0x3d68 // 3d68 + SDA_OFF; + 6b82: 9400 ld.w r0, (r4, 0x0) + 6b84: 310d movi r1, 13 + 6b86: e3ffe8f1 bsr 0x3d68 // 3d68 + IIC_Wait(); + 6b8a: e3ffffb9 bsr 0x6afc // 6afc + SCL_ON; + 6b8e: 9500 ld.w r0, (r5, 0x0) + 6b90: 3100 movi r1, 0 + 6b92: e3ffe8e7 bsr 0x3d60 // 3d60 + IIC_Wait(); + 6b96: e3ffffb3 bsr 0x6afc // 6afc + SDA_ON; + 6b9a: 9400 ld.w r0, (r4, 0x0) + 6b9c: 310d movi r1, 13 + 6b9e: e3ffe8e1 bsr 0x3d60 // 3d60 +} + 6ba2: 1492 pop r4-r5, r15 + 6ba4: 2000004c .long 0x2000004c + 6ba8: 20000050 .long 0x20000050 + +Disassembly of section .text.IIC_NoACK: + +00006bac : + IIC_Wait(); + SCL_OFF; +} + +void IIC_NoACK(void) +{ + 6bac: 14d1 push r4, r15 + Fram_SDA_GPIO(0x01); + SCL_OFF; + 6bae: 108d lrw r4, 0x2000004c // 6be0 + 6bb0: e3ffff62 bsr 0x6a74 // 6a74 + 6bb4: 9400 ld.w r0, (r4, 0x0) + 6bb6: 3100 movi r1, 0 + 6bb8: e3ffe8d8 bsr 0x3d68 // 3d68 + SDA_ON; + 6bbc: 106a lrw r3, 0x20000050 // 6be4 + 6bbe: 310d movi r1, 13 + 6bc0: 9300 ld.w r0, (r3, 0x0) + 6bc2: e3ffe8cf bsr 0x3d60 // 3d60 + IIC_Wait(); + 6bc6: e3ffff9b bsr 0x6afc // 6afc + SCL_ON; + 6bca: 9400 ld.w r0, (r4, 0x0) + 6bcc: 3100 movi r1, 0 + 6bce: e3ffe8c9 bsr 0x3d60 // 3d60 + IIC_Wait(); + 6bd2: e3ffff95 bsr 0x6afc // 6afc + SCL_OFF; + 6bd6: 9400 ld.w r0, (r4, 0x0) + 6bd8: 3100 movi r1, 0 + 6bda: e3ffe8c7 bsr 0x3d68 // 3d68 +} + 6bde: 1491 pop r4, r15 + 6be0: 2000004c .long 0x2000004c + 6be4: 20000050 .long 0x20000050 + +Disassembly of section .text.IIC_Wait_ACK: + +00006be8 : + +uint8_t IIC_Wait_ACK(void) +{ + 6be8: 14d3 push r4-r6, r15 + U16_T temp = 0; + SCL_OFF; + 6bea: 1093 lrw r4, 0x2000004c // 6c34 + 6bec: 3100 movi r1, 0 + 6bee: 9400 ld.w r0, (r4, 0x0) + 6bf0: e3ffe8bc bsr 0x3d68 // 3d68 + Fram_SDA_GPIO(0x00); + SDA_ON; + 6bf4: 10d1 lrw r6, 0x20000050 // 6c38 + Fram_SDA_GPIO(0x00); + 6bf6: 3000 movi r0, 0 + 6bf8: e3ffff62 bsr 0x6abc // 6abc + SDA_ON; + 6bfc: 310d movi r1, 13 + 6bfe: 9600 ld.w r0, (r6, 0x0) + 6c00: e3ffe8b0 bsr 0x3d60 // 3d60 + IIC_Wait(); + 6c04: e3ffff7c bsr 0x6afc // 6afc + SCL_ON; + 6c08: 3100 movi r1, 0 + 6c0a: 9400 ld.w r0, (r4, 0x0) + 6c0c: e3ffe8aa bsr 0x3d60 // 3d60 + while(SDA_READ == 1) + 6c10: 10ab lrw r5, 0x5dd // 6c3c + 6c12: 310d movi r1, 13 + 6c14: 9600 ld.w r0, (r6, 0x0) + 6c16: e3ffe8b8 bsr 0x3d86 // 3d86 + 6c1a: 3841 cmpnei r0, 1 + 6c1c: 0c07 bf 0x6c2a // 6c2a + { + temp++; + if(temp > 1500) return 1; //超时退出 + } + SCL_OFF; + 6c1e: 9400 ld.w r0, (r4, 0x0) + 6c20: 3100 movi r1, 0 + 6c22: e3ffe8a3 bsr 0x3d68 // 3d68 + + return 0; + 6c26: 3000 movi r0, 0 + 6c28: 0405 br 0x6c32 // 6c32 + 6c2a: 2d00 subi r5, 1 + 6c2c: 7555 zexth r5, r5 + if(temp > 1500) return 1; //超时退出 + 6c2e: 3d40 cmpnei r5, 0 + 6c30: 0bf1 bt 0x6c12 // 6c12 +} + 6c32: 1493 pop r4-r6, r15 + 6c34: 2000004c .long 0x2000004c + 6c38: 20000050 .long 0x20000050 + 6c3c: 000005dd .long 0x000005dd + +Disassembly of section .text.IIC_Send_Byte: + +00006c40 : + +void IIC_Send_Byte(uint8_t txd) +{ + 6c40: 14d4 push r4-r7, r15 + 6c42: 6d43 mov r5, r0 + 6c44: 3408 movi r4, 8 + 6c46: e3ffff17 bsr 0x6a74 // 6a74 + uint8_t t; + Fram_SDA_GPIO(0x01); + for(t=0;t<8;t++) + { + SCL_OFF; + 6c4a: 10d2 lrw r6, 0x2000004c // 6c90 + 6c4c: 10f2 lrw r7, 0x20000050 // 6c94 + 6c4e: 3100 movi r1, 0 + 6c50: 9600 ld.w r0, (r6, 0x0) + 6c52: e3ffe88b bsr 0x3d68 // 3d68 + if((txd&0x80)) + 6c56: 74d6 sextb r3, r5 + 6c58: 3bdf btsti r3, 31 + { + SDA_ON; + 6c5a: 310d movi r1, 13 + 6c5c: 9700 ld.w r0, (r7, 0x0) + if((txd&0x80)) + 6c5e: 0c16 bf 0x6c8a // 6c8a + SDA_ON; + 6c60: e3ffe880 bsr 0x3d60 // 3d60 + }else{ + SDA_OFF; + } + txd<<=1; + IIC_Wait(); + 6c64: e3ffff4c bsr 0x6afc // 6afc + 6c68: 2c00 subi r4, 1 + SCL_ON; + 6c6a: 3100 movi r1, 0 + 6c6c: 9600 ld.w r0, (r6, 0x0) + 6c6e: e3ffe879 bsr 0x3d60 // 3d60 + 6c72: 7510 zextb r4, r4 + txd<<=1; + 6c74: 45a1 lsli r5, r5, 1 + IIC_Wait(); + 6c76: e3ffff43 bsr 0x6afc // 6afc + for(t=0;t<8;t++) + 6c7a: 3c40 cmpnei r4, 0 + txd<<=1; + 6c7c: 7554 zextb r5, r5 + for(t=0;t<8;t++) + 6c7e: 0be8 bt 0x6c4e // 6c4e + } + SCL_OFF; + 6c80: 9600 ld.w r0, (r6, 0x0) + 6c82: 3100 movi r1, 0 + 6c84: e3ffe872 bsr 0x3d68 // 3d68 +} + 6c88: 1494 pop r4-r7, r15 + SDA_OFF; + 6c8a: e3ffe86f bsr 0x3d68 // 3d68 + 6c8e: 07eb br 0x6c64 // 6c64 + 6c90: 2000004c .long 0x2000004c + 6c94: 20000050 .long 0x20000050 + +Disassembly of section .text.IIC_Read_Byte: + +00006c98 : + +uint8_t IIC_Read_Byte(void) +{ + 6c98: 14d4 push r4-r7, r15 + uint8_t i = 0,data = 0; + Fram_SDA_GPIO(0x00); + 6c9a: 3000 movi r0, 0 + 6c9c: e3ffff10 bsr 0x6abc // 6abc + 6ca0: 3508 movi r5, 8 + uint8_t i = 0,data = 0; + 6ca2: 3400 movi r4, 0 + + for(i = 0;i < 8;i++) + { + data <<= 1; + SCL_OFF; + 6ca4: 10f1 lrw r7, 0x2000004c // 6ce8 + IIC_Wait(); + SCL_ON; + IIC_Wait(); + if(SDA_READ == 1) data |= 0x01; + 6ca6: 10d2 lrw r6, 0x20000050 // 6cec + SCL_OFF; + 6ca8: 3100 movi r1, 0 + 6caa: 9700 ld.w r0, (r7, 0x0) + 6cac: e3ffe85e bsr 0x3d68 // 3d68 + IIC_Wait(); + 6cb0: e3ffff26 bsr 0x6afc // 6afc + SCL_ON; + 6cb4: 3100 movi r1, 0 + 6cb6: 9700 ld.w r0, (r7, 0x0) + 6cb8: e3ffe854 bsr 0x3d60 // 3d60 + IIC_Wait(); + 6cbc: e3ffff20 bsr 0x6afc // 6afc + if(SDA_READ == 1) data |= 0x01; + 6cc0: 310d movi r1, 13 + 6cc2: 9600 ld.w r0, (r6, 0x0) + 6cc4: e3ffe861 bsr 0x3d86 // 3d86 + data <<= 1; + 6cc8: 4481 lsli r4, r4, 1 + if(SDA_READ == 1) data |= 0x01; + 6cca: 3841 cmpnei r0, 1 + data <<= 1; + 6ccc: 7510 zextb r4, r4 + if(SDA_READ == 1) data |= 0x01; + 6cce: 0802 bt 0x6cd2 // 6cd2 + 6cd0: 3ca0 bseti r4, 0 + 6cd2: 2d00 subi r5, 1 + 6cd4: 7554 zextb r5, r5 + for(i = 0;i < 8;i++) + 6cd6: 3d40 cmpnei r5, 0 + 6cd8: 0be8 bt 0x6ca8 // 6ca8 + } + SCL_OFF; + 6cda: 9700 ld.w r0, (r7, 0x0) + 6cdc: 3100 movi r1, 0 + 6cde: e3ffe845 bsr 0x3d68 // 3d68 + + return data; +} + 6ce2: 6c13 mov r0, r4 + 6ce4: 1494 pop r4-r7, r15 + 6ce6: 0000 bkpt + 6ce8: 2000004c .long 0x2000004c + 6cec: 20000050 .long 0x20000050 + +Disassembly of section .text.Fram_I2C_WriteByte: + +00006cf0 : + * 4、待写入的数据 + * + * */ +// 单字节写入函数 +U8_T Fram_I2C_WriteByte(U16_T addr, U8_T data) +{ + 6cf0: 14d2 push r4-r5, r15 + 6cf2: 6d03 mov r4, r0 + 6cf4: 6d47 mov r5, r1 + + // 计算设备地址:1010 (C1)(C0)(A8)(W/R) + // C1=C0=0, A8是addr的最高位, W/R=0(写) + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + + IIC_Start(); + 6cf6: e3ffff1d bsr 0x6b30 // 6b30 + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + 6cfa: 3302 movi r3, 2 + 6cfc: 5407 asri r0, r4, 7 + 6cfe: 680c and r0, r3 + 6d00: 3300 movi r3, 0 + 6d02: 2b5f subi r3, 96 + 6d04: 6c0c or r0, r3 + IIC_Send_Byte(dev_addr); + 6d06: 7400 zextb r0, r0 + 6d08: e3ffff9c bsr 0x6c40 // 6c40 + if(IIC_Wait_ACK()) + 6d0c: e3ffff6e bsr 0x6be8 // 6be8 + 6d10: 3840 cmpnei r0, 0 + 6d12: 0c05 bf 0x6d1c // 6d1c + { + IIC_Stop(); + 6d14: e3ffff2e bsr 0x6b70 // 6b70 + return 1; // 写入失败 + 6d18: 3001 movi r0, 1 + return 1; // 写入失败 + } + + IIC_Stop(); + return 2; // 写入成功 +} + 6d1a: 1492 pop r4-r5, r15 + IIC_Send_Byte((U8_T)(addr & 0xFF)); + 6d1c: 7410 zextb r0, r4 + 6d1e: e3ffff91 bsr 0x6c40 // 6c40 + if(IIC_Wait_ACK()) + 6d22: e3ffff63 bsr 0x6be8 // 6be8 + 6d26: 3840 cmpnei r0, 0 + 6d28: 0bf6 bt 0x6d14 // 6d14 + IIC_Send_Byte(data); + 6d2a: 6c17 mov r0, r5 + 6d2c: e3ffff8a bsr 0x6c40 // 6c40 + if(IIC_Wait_ACK()) + 6d30: e3ffff5c bsr 0x6be8 // 6be8 + 6d34: 3840 cmpnei r0, 0 + 6d36: 0bef bt 0x6d14 // 6d14 + IIC_Stop(); + 6d38: e3ffff1c bsr 0x6b70 // 6b70 + return 2; // 写入成功 + 6d3c: 3002 movi r0, 2 + 6d3e: 07ee br 0x6d1a // 6d1a + +Disassembly of section .text.Fram_I2C_ReadByte: + +00006d40 : + +// 单字节读取函数 +U8_T Fram_I2C_ReadByte(U16_T addr) +{ + 6d40: 14d2 push r4-r5, r15 + 6d42: 1421 subi r14, r14, 4 + 6d44: 6d43 mov r5, r0 + // 计算设备地址:1010 (C1)(C0)(A8)(W/R) + // C1=C0=0, A8是addr的最高位 + + // 第一步:写入要读取的地址 + IIC_Start(); + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + 6d46: 5587 asri r4, r5, 7 + IIC_Start(); + 6d48: e3fffef4 bsr 0x6b30 // 6b30 + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + 6d4c: 3002 movi r0, 2 + 6d4e: 6900 and r4, r0 + 6d50: 7512 sextb r4, r4 + IIC_Send_Byte(dev_addr); + 6d52: 6c13 mov r0, r4 + 6d54: 38a5 bseti r0, 5 + 6d56: 38a7 bseti r0, 7 + 6d58: e3ffff74 bsr 0x6c40 // 6c40 + if(IIC_Wait_ACK()) + 6d5c: e3ffff46 bsr 0x6be8 // 6be8 + 6d60: 3840 cmpnei r0, 0 + 6d62: 0c06 bf 0x6d6e // 6d6e + { + IIC_Stop(); + 6d64: e3ffff06 bsr 0x6b70 // 6b70 + return 0; // 读取失败 + 6d68: 3000 movi r0, 0 + data = IIC_Read_Byte(); + IIC_NoACK(); + IIC_Stop(); + + return data; +} + 6d6a: 1401 addi r14, r14, 4 + 6d6c: 1492 pop r4-r5, r15 + IIC_Send_Byte((U8_T)(addr & 0xFF)); + 6d6e: 7414 zextb r0, r5 + 6d70: e3ffff68 bsr 0x6c40 // 6c40 + if(IIC_Wait_ACK()) + 6d74: e3ffff3a bsr 0x6be8 // 6be8 + 6d78: 3840 cmpnei r0, 0 + 6d7a: 0bf5 bt 0x6d64 // 6d64 + IIC_Start(); + 6d7c: e3fffeda bsr 0x6b30 // 6b30 + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x01; // W/R=1(读) + 6d80: 30a1 movi r0, 161 + IIC_Send_Byte(dev_addr); + 6d82: 6c10 or r0, r4 + 6d84: e3ffff5e bsr 0x6c40 // 6c40 + if(IIC_Wait_ACK()) + 6d88: e3ffff30 bsr 0x6be8 // 6be8 + 6d8c: 3840 cmpnei r0, 0 + 6d8e: 0beb bt 0x6d64 // 6d64 + data = IIC_Read_Byte(); + 6d90: e3ffff84 bsr 0x6c98 // 6c98 + 6d94: b800 st.w r0, (r14, 0x0) + IIC_NoACK(); + 6d96: e3ffff0b bsr 0x6bac // 6bac + IIC_Stop(); + 6d9a: e3fffeeb bsr 0x6b70 // 6b70 + 6d9e: 9800 ld.w r0, (r14, 0x0) + return data; + 6da0: 07e5 br 0x6d6a // 6d6a + +Disassembly of section .text.TK_Sampling_prog: + +00006da4 : + 6da4: 14c4 push r4-r7 + 6da6: 1072 lrw r3, 0x20000058 // 6dec + 6da8: 1012 lrw r0, 0x20000ac2 // 6df0 + 6daa: 1093 lrw r4, 0x20000933 // 6df4 + 6dac: 6d83 mov r6, r0 + 6dae: 93a0 ld.w r5, (r3, 0x0) + 6db0: 3300 movi r3, 0 + 6db2: 4342 lsli r2, r3, 2 + 6db4: 6094 addu r2, r5 + 6db6: 9220 ld.w r1, (r2, 0x0) + 6db8: 4341 lsli r2, r3, 1 + 6dba: 6080 addu r2, r0 + 6dbc: 7445 zexth r1, r1 + 6dbe: aa20 st.h r1, (r2, 0x0) + 6dc0: 8440 ld.b r2, (r4, 0x0) + 6dc2: 3a41 cmpnei r2, 1 + 6dc4: 080f bt 0x6de2 // 6de2 + 6dc6: 3300 movi r3, 0 + 6dc8: 10ec lrw r7, 0x2000081c // 6df8 + 6dca: 4341 lsli r2, r3, 1 + 6dcc: 5e28 addu r1, r6, r2 + 6dce: 8920 ld.h r1, (r1, 0x0) + 6dd0: 2300 addi r3, 1 + 6dd2: 7445 zexth r1, r1 + 6dd4: 609c addu r2, r7 + 6dd6: 3b51 cmpnei r3, 17 + 6dd8: aa20 st.h r1, (r2, 0x0) + 6dda: 0bf8 bt 0x6dca // 6dca + 6ddc: 3300 movi r3, 0 + 6dde: a460 st.b r3, (r4, 0x0) + 6de0: 3311 movi r3, 17 + 6de2: 2300 addi r3, 1 + 6de4: 74cc zextb r3, r3 + 6de6: 3b10 cmphsi r3, 17 + 6de8: 0fe5 bf 0x6db2 // 6db2 + 6dea: 1484 pop r4-r7 + 6dec: 20000058 .long 0x20000058 + 6df0: 20000ac2 .long 0x20000ac2 + 6df4: 20000933 .long 0x20000933 + 6df8: 2000081c .long 0x2000081c + +Disassembly of section .text.TKEYIntHandler: + +00006dfc : + 6dfc: 1460 nie + 6dfe: 1462 ipush + 6e00: 14d1 push r4, r15 + 6e02: 109e lrw r4, 0x20000070 // 6e78 + 6e04: 9460 ld.w r3, (r4, 0x0) + 6e06: 3b40 cmpnei r3, 0 + 6e08: 080b bt 0x6e1e // 6e1e + 6e0a: 3301 movi r3, 1 + 6e0c: b460 st.w r3, (r4, 0x0) + 6e0e: 107c lrw r3, 0x200008b0 // 6e7c + 6e10: 8360 ld.b r3, (r3, 0x0) + 6e12: 3b41 cmpnei r3, 1 + 6e14: 0805 bt 0x6e1e // 6e1e + 6e16: e3ffffc7 bsr 0x6da4 // 6da4 + 6e1a: 3301 movi r3, 1 + 6e1c: a464 st.b r3, (r4, 0x4) + 6e1e: 1079 lrw r3, 0x2000005c // 6e80 + 6e20: 3101 movi r1, 1 + 6e22: 9360 ld.w r3, (r3, 0x0) + 6e24: 934a ld.w r2, (r3, 0x28) + 6e26: 6884 and r2, r1 + 6e28: 3a40 cmpnei r2, 0 + 6e2a: 0c02 bf 0x6e2e // 6e2e + 6e2c: b32c st.w r1, (r3, 0x30) + 6e2e: 934a ld.w r2, (r3, 0x28) + 6e30: 3102 movi r1, 2 + 6e32: 6884 and r2, r1 + 6e34: 3a40 cmpnei r2, 0 + 6e36: 0c02 bf 0x6e3a // 6e3a + 6e38: b32c st.w r1, (r3, 0x30) + 6e3a: 934a ld.w r2, (r3, 0x28) + 6e3c: 3104 movi r1, 4 + 6e3e: 6884 and r2, r1 + 6e40: 3a40 cmpnei r2, 0 + 6e42: 0c02 bf 0x6e46 // 6e46 + 6e44: b32c st.w r1, (r3, 0x30) + 6e46: 934a ld.w r2, (r3, 0x28) + 6e48: 3108 movi r1, 8 + 6e4a: 6884 and r2, r1 + 6e4c: 3a40 cmpnei r2, 0 + 6e4e: 0c02 bf 0x6e52 // 6e52 + 6e50: b32c st.w r1, (r3, 0x30) + 6e52: 934a ld.w r2, (r3, 0x28) + 6e54: 3110 movi r1, 16 + 6e56: 6884 and r2, r1 + 6e58: 3a40 cmpnei r2, 0 + 6e5a: 0c02 bf 0x6e5e // 6e5e + 6e5c: b32c st.w r1, (r3, 0x30) + 6e5e: 934a ld.w r2, (r3, 0x28) + 6e60: 3120 movi r1, 32 + 6e62: 6884 and r2, r1 + 6e64: 3a40 cmpnei r2, 0 + 6e66: 0c02 bf 0x6e6a // 6e6a + 6e68: b32c st.w r1, (r3, 0x30) + 6e6a: d9ee2001 ld.w r15, (r14, 0x4) + 6e6e: 9880 ld.w r4, (r14, 0x0) + 6e70: 1402 addi r14, r14, 8 + 6e72: 1463 ipop + 6e74: 1461 nir + 6e76: 0000 bkpt + 6e78: 20000070 .long 0x20000070 + 6e7c: 200008b0 .long 0x200008b0 + 6e80: 2000005c .long 0x2000005c + +Disassembly of section .text.get_key_number: + +00006e84 : + 6e84: 14c2 push r4-r5 + 6e86: 3200 movi r2, 0 + 6e88: 3000 movi r0, 0 + 6e8a: 1088 lrw r4, 0x20000950 // 6ea8 + 6e8c: 3501 movi r5, 1 + 6e8e: 3120 movi r1, 32 + 6e90: 9460 ld.w r3, (r4, 0x0) + 6e92: 70c9 lsr r3, r2 + 6e94: 68d4 and r3, r5 + 6e96: 3b40 cmpnei r3, 0 + 6e98: 0c02 bf 0x6e9c // 6e9c + 6e9a: 2000 addi r0, 1 + 6e9c: 2200 addi r2, 1 + 6e9e: 644a cmpne r2, r1 + 6ea0: 0bf8 bt 0x6e90 // 6e90 + 6ea2: 7400 zextb r0, r0 + 6ea4: 1482 pop r4-r5 + 6ea6: 0000 bkpt + 6ea8: 20000950 .long 0x20000950 + +Disassembly of section .text.TK_Scan_Start: + +00006eac : + 6eac: 1046 lrw r2, 0x20000070 // 6ec4 + 6eae: 8264 ld.b r3, (r2, 0x4) + 6eb0: 74cc zextb r3, r3 + 6eb2: 3b41 cmpnei r3, 1 + 6eb4: 0807 bt 0x6ec2 // 6ec2 + 6eb6: 1025 lrw r1, 0x2000005c // 6ec8 + 6eb8: 9120 ld.w r1, (r1, 0x0) + 6eba: b162 st.w r3, (r1, 0x8) + 6ebc: 3300 movi r3, 0 + 6ebe: b260 st.w r3, (r2, 0x0) + 6ec0: a264 st.b r3, (r2, 0x4) + 6ec2: 783c jmp r15 + 6ec4: 20000070 .long 0x20000070 + 6ec8: 2000005c .long 0x2000005c + +Disassembly of section .text.TK_Keymap_prog: + +00006ecc : + 6ecc: 14d4 push r4-r7, r15 + 6ece: 1425 subi r14, r14, 20 + 6ed0: 1271 lrw r3, 0x200001a0 // 7014 + 6ed2: 8360 ld.b r3, (r3, 0x0) + 6ed4: b860 st.w r3, (r14, 0x0) + 6ed6: 3400 movi r4, 0 + 6ed8: 1270 lrw r3, 0x20000174 // 7018 + 6eda: 8360 ld.b r3, (r3, 0x0) + 6edc: b861 st.w r3, (r14, 0x4) + 6ede: 12f0 lrw r7, 0x200008c6 // 701c + 6ee0: 1270 lrw r3, 0x2000017d // 7020 + 6ee2: 83a0 ld.b r5, (r3, 0x0) + 6ee4: 1270 lrw r3, 0x2000017c // 7024 + 6ee6: 8360 ld.b r3, (r3, 0x0) + 6ee8: b862 st.w r3, (r14, 0x8) + 6eea: 6d9f mov r6, r7 + 6eec: 126f lrw r3, 0x20000ac2 // 7028 + 6eee: b863 st.w r3, (r14, 0xc) + 6ef0: 4461 lsli r3, r4, 1 + 6ef2: 9843 ld.w r2, (r14, 0xc) + 6ef4: 608c addu r2, r3 + 6ef6: 122e lrw r1, 0x2000081c // 702c + 6ef8: 604c addu r1, r3 + 6efa: 8a40 ld.h r2, (r2, 0x0) + 6efc: 8920 ld.h r1, (r1, 0x0) + 6efe: 6086 subu r2, r1 + 6f00: 748b sexth r2, r2 + 6f02: 5f2c addu r1, r7, r3 + 6f04: a940 st.h r2, (r1, 0x0) + 6f06: 8940 ld.h r2, (r1, 0x0) + 6f08: 748b sexth r2, r2 + 6f0a: 3adf btsti r2, 31 + 6f0c: 1249 lrw r2, 0x20000a7e // 7030 + 6f0e: 608c addu r2, r3 + 6f10: 0c37 bf 0x6f7e // 6f7e + 6f12: 3100 movi r1, 0 + 6f14: aa20 st.h r1, (r2, 0x0) + 6f16: 9840 ld.w r2, (r14, 0x0) + 6f18: 3a01 cmphsi r2, 2 + 6f1a: 0c6d bf 0x6ff4 // 6ff4 + 6f1c: 4461 lsli r3, r4, 1 + 6f1e: 5e2c addu r1, r6, r3 + 6f20: 1205 lrw r0, 0x200001ce // 7034 + 6f22: 8940 ld.h r2, (r1, 0x0) + 6f24: 60c0 addu r3, r0 + 6f26: 748b sexth r2, r2 + 6f28: 8b60 ld.h r3, (r3, 0x0) + 6f2a: 648d cmplt r3, r2 + 6f2c: 9840 ld.w r2, (r14, 0x0) + 6f2e: 7cc8 mult r3, r2 + 6f30: 0c2a bf 0x6f84 // 6f84 + 6f32: 8940 ld.h r2, (r1, 0x0) + 6f34: 748b sexth r2, r2 + 6f36: 64c9 cmplt r2, r3 + 6f38: 0c26 bf 0x6f84 // 6f84 + 6f3a: 1240 lrw r2, 0x200008b4 // 7038 + 6f3c: 6090 addu r2, r4 + 6f3e: 8260 ld.b r3, (r2, 0x0) + 6f40: 2300 addi r3, 1 + 6f42: 74cc zextb r3, r3 + 6f44: a260 st.b r3, (r2, 0x0) + 6f46: 3100 movi r1, 0 + 6f48: 117d lrw r3, 0x2000089a // 703c + 6f4a: 60d0 addu r3, r4 + 6f4c: a320 st.b r1, (r3, 0x0) + 6f4e: 117d lrw r3, 0x20000976 // 7040 + 6f50: 60d0 addu r3, r4 + 6f52: a320 st.b r1, (r3, 0x0) + 6f54: 117c lrw r3, 0x200009f0 // 7044 + 6f56: 60d0 addu r3, r4 + 6f58: a320 st.b r1, (r3, 0x0) + 6f5a: 8260 ld.b r3, (r2, 0x0) + 6f5c: 9821 ld.w r1, (r14, 0x4) + 6f5e: 64c4 cmphs r1, r3 + 6f60: 081f bt 0x6f9e // 6f9e + 6f62: 3d40 cmpnei r5, 0 + 6f64: 0852 bt 0x7008 // 7008 + 6f66: 1139 lrw r1, 0x200008ac // 7048 + 6f68: 9160 ld.w r3, (r1, 0x0) + 6f6a: 3b40 cmpnei r3, 0 + 6f6c: 0806 bt 0x6f78 // 6f78 + 6f6e: 9100 ld.w r0, (r1, 0x0) + 6f70: 3301 movi r3, 1 + 6f72: 70d0 lsl r3, r4 + 6f74: 6cc0 or r3, r0 + 6f76: b160 st.w r3, (r1, 0x0) + 6f78: 3300 movi r3, 0 + 6f7a: a260 st.b r3, (r2, 0x0) + 6f7c: 0411 br 0x6f9e // 6f9e + 6f7e: 8920 ld.h r1, (r1, 0x0) + 6f80: 7445 zexth r1, r1 + 6f82: 07c9 br 0x6f14 // 6f14 + 6f84: 4441 lsli r2, r4, 1 + 6f86: 6098 addu r2, r6 + 6f88: 8a40 ld.h r2, (r2, 0x0) + 6f8a: 748b sexth r2, r2 + 6f8c: 648d cmplt r3, r2 + 6f8e: 0c08 bf 0x6f9e // 6f9e + 6f90: 3300 movi r3, 0 + 6f92: 114e lrw r2, 0x200008ac // 7048 + 6f94: 2b01 subi r3, 2 + 6f96: 9220 ld.w r1, (r2, 0x0) + 6f98: 70d3 rotl r3, r4 + 6f9a: 68c4 and r3, r1 + 6f9c: b260 st.w r3, (r2, 0x0) + 6f9e: 4441 lsli r2, r4, 1 + 6fa0: 5e68 addu r3, r6, r2 + 6fa2: 8b60 ld.h r3, (r3, 0x0) + 6fa4: 74cf sexth r3, r3 + 6fa6: b864 st.w r3, (r14, 0x10) + 6fa8: 3105 movi r1, 5 + 6faa: 1163 lrw r3, 0x200001ce // 7034 + 6fac: 608c addu r2, r3 + 6fae: 8a00 ld.h r0, (r2, 0x0) + 6fb0: 4002 lsli r0, r0, 2 + 6fb2: e3ffee9f bsr 0x4cf0 // 4cf0 <__divsi3> + 6fb6: 9864 ld.w r3, (r14, 0x10) + 6fb8: 640d cmplt r3, r0 + 6fba: 0c18 bf 0x6fea // 6fea + 6fbc: 1140 lrw r2, 0x2000089a // 703c + 6fbe: 6090 addu r2, r4 + 6fc0: 8260 ld.b r3, (r2, 0x0) + 6fc2: 2300 addi r3, 1 + 6fc4: 74cc zextb r3, r3 + 6fc6: a260 st.b r3, (r2, 0x0) + 6fc8: 3100 movi r1, 0 + 6fca: 107c lrw r3, 0x200008b4 // 7038 + 6fcc: 60d0 addu r3, r4 + 6fce: a320 st.b r1, (r3, 0x0) + 6fd0: 8260 ld.b r3, (r2, 0x0) + 6fd2: 9822 ld.w r1, (r14, 0x8) + 6fd4: 64c4 cmphs r1, r3 + 6fd6: 080a bt 0x6fea // 6fea + 6fd8: 3300 movi r3, 0 + 6fda: 103c lrw r1, 0x200008ac // 7048 + 6fdc: 2b01 subi r3, 2 + 6fde: 9100 ld.w r0, (r1, 0x0) + 6fe0: 70d3 rotl r3, r4 + 6fe2: 68c0 and r3, r0 + 6fe4: b160 st.w r3, (r1, 0x0) + 6fe6: 3300 movi r3, 0 + 6fe8: a260 st.b r3, (r2, 0x0) + 6fea: 2400 addi r4, 1 + 6fec: 3c51 cmpnei r4, 17 + 6fee: 0b81 bt 0x6ef0 // 6ef0 + 6ff0: 1405 addi r14, r14, 20 + 6ff2: 1494 pop r4-r7, r15 + 6ff4: 60d8 addu r3, r6 + 6ff6: 4441 lsli r2, r4, 1 + 6ff8: 102f lrw r1, 0x200001ce // 7034 + 6ffa: 8b60 ld.h r3, (r3, 0x0) + 6ffc: 6084 addu r2, r1 + 6ffe: 74cf sexth r3, r3 + 7000: 8a40 ld.h r2, (r2, 0x0) + 7002: 64c9 cmplt r2, r3 + 7004: 0fcd bf 0x6f9e // 6f9e + 7006: 079a br 0x6f3a // 6f3a + 7008: 3d41 cmpnei r5, 1 + 700a: 0bb7 bt 0x6f78 // 6f78 + 700c: 102f lrw r1, 0x200008ac // 7048 + 700e: 6cd7 mov r3, r5 + 7010: 9100 ld.w r0, (r1, 0x0) + 7012: 07b0 br 0x6f72 // 6f72 + 7014: 200001a0 .long 0x200001a0 + 7018: 20000174 .long 0x20000174 + 701c: 200008c6 .long 0x200008c6 + 7020: 2000017d .long 0x2000017d + 7024: 2000017c .long 0x2000017c + 7028: 20000ac2 .long 0x20000ac2 + 702c: 2000081c .long 0x2000081c + 7030: 20000a7e .long 0x20000a7e + 7034: 200001ce .long 0x200001ce + 7038: 200008b4 .long 0x200008b4 + 703c: 2000089a .long 0x2000089a + 7040: 20000976 .long 0x20000976 + 7044: 200009f0 .long 0x200009f0 + 7048: 200008ac .long 0x200008ac + +Disassembly of section .text.TK_overflow_predict: + +0000704c : + 704c: 14d4 push r4-r7, r15 + 704e: 1421 subi r14, r14, 4 + 7050: 11d9 lrw r6, 0x20000070 // 7134 + 7052: 8665 ld.b r3, (r6, 0x5) + 7054: 3b41 cmpnei r3, 1 + 7056: 085f bt 0x7114 // 7114 + 7058: 1158 lrw r2, 0x200009cc // 7138 + 705a: 8260 ld.b r3, (r2, 0x0) + 705c: 2300 addi r3, 1 + 705e: 74cc zextb r3, r3 + 7060: a260 st.b r3, (r2, 0x0) + 7062: 8260 ld.b r3, (r2, 0x0) + 7064: 1136 lrw r1, 0x200001a1 // 713c + 7066: 8120 ld.b r1, (r1, 0x0) + 7068: 64c4 cmphs r1, r3 + 706a: 0855 bt 0x7114 // 7114 + 706c: 3300 movi r3, 0 + 706e: a260 st.b r3, (r2, 0x0) + 7070: 3500 movi r5, 0 + 7072: 11f4 lrw r7, 0x200001a4 // 7140 + 7074: 2605 addi r6, 6 + 7076: 9760 ld.w r3, (r7, 0x0) + 7078: 70d5 lsr r3, r5 + 707a: 3201 movi r2, 1 + 707c: 68c8 and r3, r2 + 707e: 3b40 cmpnei r3, 0 + 7080: 0c34 bf 0x70e8 // 70e8 + 7082: 4581 lsli r4, r5, 1 + 7084: 5e70 addu r3, r6, r4 + 7086: 8b00 ld.h r0, (r3, 0x0) + 7088: e3ffd536 bsr 0x1af4 // 1af4 <__floatunsidf> + 708c: 6cc7 mov r3, r1 + 708e: 3180 movi r1, 128 + 7090: 6c83 mov r2, r0 + 7092: 4137 lsli r1, r1, 23 + 7094: 3000 movi r0, 0 + 7096: e3ffc88f bsr 0x1b4 // 1b4 <__GI_pow> + 709a: 116b lrw r3, 0x200001aa // 7144 + 709c: 60d0 addu r3, r4 + 709e: 8b60 ld.h r3, (r3, 0x0) + 70a0: 4364 lsli r3, r3, 4 + 70a2: 230e addi r3, 15 + 70a4: b860 st.w r3, (r14, 0x0) + 70a6: e3ffce4d bsr 0xd40 // d40 <__fixunsdfsi> + 70aa: 9860 ld.w r3, (r14, 0x0) + 70ac: 7cc0 mult r3, r0 + 70ae: 1147 lrw r2, 0x20000a5c // 7148 + 70b0: 740d zexth r0, r3 + 70b2: 6090 addu r2, r4 + 70b4: 1166 lrw r3, 0x20000ac2 // 714c + 70b6: 60d0 addu r3, r4 + 70b8: aa00 st.h r0, (r2, 0x0) + 70ba: 8b60 ld.h r3, (r3, 0x0) + 70bc: 8a00 ld.h r0, (r2, 0x0) + 70be: 7401 zexth r0, r0 + 70c0: 325f movi r2, 95 + 70c2: 74cd zexth r3, r3 + 70c4: 7c08 mult r0, r2 + 70c6: 3164 movi r1, 100 + 70c8: b860 st.w r3, (r14, 0x0) + 70ca: e3ffee13 bsr 0x4cf0 // 4cf0 <__divsi3> + 70ce: 9860 ld.w r3, (r14, 0x0) + 70d0: 64c1 cmplt r0, r3 + 70d2: 0c0b bf 0x70e8 // 70e8 + 70d4: 107f lrw r3, 0x2000017e // 7150 + 70d6: 610c addu r4, r3 + 70d8: 8c60 ld.h r3, (r4, 0x0) + 70da: 3b06 cmphsi r3, 7 + 70dc: 0806 bt 0x70e8 // 70e8 + 70de: 2300 addi r3, 1 + 70e0: ac60 st.h r3, (r4, 0x0) + 70e2: 3201 movi r2, 1 + 70e4: 107c lrw r3, 0x20000921 // 7154 + 70e6: a340 st.b r2, (r3, 0x0) + 70e8: 2500 addi r5, 1 + 70ea: 3d51 cmpnei r5, 17 + 70ec: 0bc5 bt 0x7076 // 7076 + 70ee: 107a lrw r3, 0x20000921 // 7154 + 70f0: 8340 ld.b r2, (r3, 0x0) + 70f2: 3a41 cmpnei r2, 1 + 70f4: 0810 bt 0x7114 // 7114 + 70f6: 3200 movi r2, 0 + 70f8: a340 st.b r2, (r3, 0x0) + 70fa: 3200 movi r2, 0 + 70fc: 1077 lrw r3, 0x2000005c // 7158 + 70fe: 1018 lrw r0, 0x200009ef // 715c + 7100: 10b8 lrw r5, 0x20000a28 // 7160 + 7102: 10d4 lrw r6, 0x2000017e // 7150 + 7104: 9360 ld.w r3, (r3, 0x0) + 7106: b342 st.w r2, (r3, 0x8) + 7108: 1077 lrw r3, 0x20000058 // 7164 + 710a: 9380 ld.w r4, (r3, 0x0) + 710c: 3300 movi r3, 0 + 710e: 8040 ld.b r2, (r0, 0x0) + 7110: 648c cmphs r3, r2 + 7112: 0c03 bf 0x7118 // 7118 + 7114: 1401 addi r14, r14, 4 + 7116: 1494 pop r4-r7, r15 + 7118: 5d4c addu r2, r5, r3 + 711a: 8240 ld.b r2, (r2, 0x0) + 711c: 4241 lsli r2, r2, 1 + 711e: 4322 lsli r1, r3, 2 + 7120: 6098 addu r2, r6 + 7122: 6050 addu r1, r4 + 7124: 8a40 ld.h r2, (r2, 0x0) + 7126: 91f2 ld.w r7, (r1, 0x48) + 7128: 4254 lsli r2, r2, 20 + 712a: 6c9c or r2, r7 + 712c: 2300 addi r3, 1 + 712e: b152 st.w r2, (r1, 0x48) + 7130: 74cc zextb r3, r3 + 7132: 07ee br 0x710e // 710e + 7134: 20000070 .long 0x20000070 + 7138: 200009cc .long 0x200009cc + 713c: 200001a1 .long 0x200001a1 + 7140: 200001a4 .long 0x200001a4 + 7144: 200001aa .long 0x200001aa + 7148: 20000a5c .long 0x20000a5c + 714c: 20000ac2 .long 0x20000ac2 + 7150: 2000017e .long 0x2000017e + 7154: 20000921 .long 0x20000921 + 7158: 2000005c .long 0x2000005c + 715c: 200009ef .long 0x200009ef + 7160: 20000a28 .long 0x20000a28 + 7164: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Baseline_tracking: + +00007168 : + 7168: 14c4 push r4-r7 + 716a: 1422 subi r14, r14, 8 + 716c: 1348 lrw r2, 0x2000094e // 730c + 716e: 8260 ld.b r3, (r2, 0x0) + 7170: 2300 addi r3, 1 + 7172: 74cc zextb r3, r3 + 7174: a260 st.b r3, (r2, 0x0) + 7176: 8260 ld.b r3, (r2, 0x0) + 7178: 1326 lrw r1, 0x200001a1 // 7310 + 717a: 8120 ld.b r1, (r1, 0x0) + 717c: 644c cmphs r3, r1 + 717e: 0cad bf 0x72d8 // 72d8 + 7180: 3300 movi r3, 0 + 7182: a260 st.b r3, (r2, 0x0) + 7184: 1364 lrw r3, 0x200008ac // 7314 + 7186: 9360 ld.w r3, (r3, 0x0) + 7188: 3b40 cmpnei r3, 0 + 718a: 08a7 bt 0x72d8 // 72d8 + 718c: 1323 lrw r1, 0x200008c6 // 7318 + 718e: 6dc7 mov r7, r1 + 7190: b820 st.w r1, (r14, 0x0) + 7192: 3200 movi r2, 0 + 7194: 1362 lrw r3, 0x200001ce // 731c + 7196: 1323 lrw r1, 0x2000081c // 7320 + 7198: 4201 lsli r0, r2, 1 + 719a: 9880 ld.w r4, (r14, 0x0) + 719c: 6100 addu r4, r0 + 719e: 8c80 ld.h r4, (r4, 0x0) + 71a0: 7513 sexth r4, r4 + 71a2: 3cdf btsti r4, 31 + 71a4: 0c27 bf 0x71f2 // 71f2 + 71a6: 13a0 lrw r5, 0x20000ac2 // 7324 + 71a8: 5980 addu r4, r1, r0 + 71aa: 6014 addu r0, r5 + 71ac: b881 st.w r4, (r14, 0x4) + 71ae: 8c80 ld.h r4, (r4, 0x0) + 71b0: 88c0 ld.h r6, (r0, 0x0) + 71b2: 7511 zexth r4, r4 + 71b4: 7599 zexth r6, r6 + 71b6: 8ba0 ld.h r5, (r3, 0x0) + 71b8: 611a subu r4, r6 + 71ba: 6551 cmplt r4, r5 + 71bc: 081b bt 0x71f2 // 71f2 + 71be: 9881 ld.w r4, (r14, 0x4) + 71c0: 8c80 ld.h r4, (r4, 0x0) + 71c2: 8800 ld.h r0, (r0, 0x0) + 71c4: 7511 zexth r4, r4 + 71c6: 7401 zexth r0, r0 + 71c8: 5c01 subu r0, r4, r0 + 71ca: 4581 lsli r4, r5, 1 + 71cc: 6150 addu r5, r4 + 71ce: 6541 cmplt r0, r5 + 71d0: 0c11 bf 0x71f2 // 71f2 + 71d2: 1296 lrw r4, 0x200009f0 // 7328 + 71d4: 6108 addu r4, r2 + 71d6: 8400 ld.b r0, (r4, 0x0) + 71d8: 2000 addi r0, 1 + 71da: 7400 zextb r0, r0 + 71dc: a400 st.b r0, (r4, 0x0) + 71de: 1214 lrw r0, 0x20000090 // 732c + 71e0: 84a0 ld.b r5, (r4, 0x0) + 71e2: 8008 ld.b r0, (r0, 0x8) + 71e4: 6540 cmphs r0, r5 + 71e6: 0806 bt 0x71f2 // 71f2 + 71e8: 1212 lrw r0, 0x20000933 // 7330 + 71ea: 3501 movi r5, 1 + 71ec: a0a0 st.b r5, (r0, 0x0) + 71ee: 3000 movi r0, 0 + 71f0: a400 st.b r0, (r4, 0x0) + 71f2: 4201 lsli r0, r2, 1 + 71f4: 5f80 addu r4, r7, r0 + 71f6: 8c80 ld.h r4, (r4, 0x0) + 71f8: 7513 sexth r4, r4 + 71fa: 3c20 cmplti r4, 1 + 71fc: 0870 bt 0x72dc // 72dc + 71fe: 128a lrw r4, 0x20000ac2 // 7324 + 7200: 6100 addu r4, r0 + 7202: 59a0 addu r5, r1, r0 + 7204: 8c80 ld.h r4, (r4, 0x0) + 7206: 8da0 ld.h r5, (r5, 0x0) + 7208: 7555 zexth r5, r5 + 720a: 7511 zexth r4, r4 + 720c: 6116 subu r4, r5 + 720e: 8ba0 ld.h r5, (r3, 0x0) + 7210: 45a2 lsli r5, r5, 2 + 7212: 6551 cmplt r4, r5 + 7214: 0864 bt 0x72dc // 72dc + 7216: 1288 lrw r4, 0x20000976 // 7334 + 7218: 6108 addu r4, r2 + 721a: 84a0 ld.b r5, (r4, 0x0) + 721c: 2500 addi r5, 1 + 721e: 7554 zextb r5, r5 + 7220: a4a0 st.b r5, (r4, 0x0) + 7222: 12a3 lrw r5, 0x20000090 // 732c + 7224: 84c0 ld.b r6, (r4, 0x0) + 7226: 85a9 ld.b r5, (r5, 0x9) + 7228: 6594 cmphs r5, r6 + 722a: 0806 bt 0x7236 // 7236 + 722c: 12a1 lrw r5, 0x20000933 // 7330 + 722e: 3601 movi r6, 1 + 7230: a5c0 st.b r6, (r5, 0x0) + 7232: 3500 movi r5, 0 + 7234: a4a0 st.b r5, (r4, 0x0) + 7236: 5f80 addu r4, r7, r0 + 7238: 8c80 ld.h r4, (r4, 0x0) + 723a: 7513 sexth r4, r4 + 723c: 3cdf btsti r4, 31 + 723e: 0c10 bf 0x725e // 725e + 7240: 11d9 lrw r6, 0x20000ac2 // 7324 + 7242: 59a0 addu r5, r1, r0 + 7244: 6180 addu r6, r0 + 7246: 8d80 ld.h r4, (r5, 0x0) + 7248: 8ec0 ld.h r6, (r6, 0x0) + 724a: 7599 zexth r6, r6 + 724c: 7511 zexth r4, r4 + 724e: 611a subu r4, r6 + 7250: 8bc0 ld.h r6, (r3, 0x0) + 7252: 6591 cmplt r4, r6 + 7254: 0c05 bf 0x725e // 725e + 7256: 8d80 ld.h r4, (r5, 0x0) + 7258: 2c00 subi r4, 1 + 725a: 7511 zexth r4, r4 + 725c: ad80 st.h r4, (r5, 0x0) + 725e: 5f80 addu r4, r7, r0 + 7260: 8c80 ld.h r4, (r4, 0x0) + 7262: 7513 sexth r4, r4 + 7264: 3cdf btsti r4, 31 + 7266: 0c11 bf 0x7288 // 7288 + 7268: 11cf lrw r6, 0x20000ac2 // 7324 + 726a: 59a0 addu r5, r1, r0 + 726c: 6180 addu r6, r0 + 726e: 8d80 ld.h r4, (r5, 0x0) + 7270: 8ec0 ld.h r6, (r6, 0x0) + 7272: 7599 zexth r6, r6 + 7274: 7511 zexth r4, r4 + 7276: 611a subu r4, r6 + 7278: 8bc0 ld.h r6, (r3, 0x0) + 727a: 4ec1 lsri r6, r6, 1 + 727c: 6591 cmplt r4, r6 + 727e: 0805 bt 0x7288 // 7288 + 7280: 8d80 ld.h r4, (r5, 0x0) + 7282: 2c01 subi r4, 2 + 7284: 7511 zexth r4, r4 + 7286: ad80 st.h r4, (r5, 0x0) + 7288: 5fa0 addu r5, r7, r0 + 728a: 8d80 ld.h r4, (r5, 0x0) + 728c: 7513 sexth r4, r4 + 728e: 3c20 cmplti r4, 1 + 7290: 080c bt 0x72a8 // 72a8 + 7292: 8da0 ld.h r5, (r5, 0x0) + 7294: 8b80 ld.h r4, (r3, 0x0) + 7296: 7557 sexth r5, r5 + 7298: 4c81 lsri r4, r4, 1 + 729a: 6515 cmplt r5, r4 + 729c: 0c06 bf 0x72a8 // 72a8 + 729e: 59a0 addu r5, r1, r0 + 72a0: 8d80 ld.h r4, (r5, 0x0) + 72a2: 2400 addi r4, 1 + 72a4: 7511 zexth r4, r4 + 72a6: ad80 st.h r4, (r5, 0x0) + 72a8: 5fa0 addu r5, r7, r0 + 72aa: 8d80 ld.h r4, (r5, 0x0) + 72ac: 7513 sexth r4, r4 + 72ae: 3c20 cmplti r4, 1 + 72b0: 0810 bt 0x72d0 // 72d0 + 72b2: 8dc0 ld.h r6, (r5, 0x0) + 72b4: 759b sexth r6, r6 + 72b6: 8b80 ld.h r4, (r3, 0x0) + 72b8: 6519 cmplt r6, r4 + 72ba: 0c0b bf 0x72d0 // 72d0 + 72bc: 8da0 ld.h r5, (r5, 0x0) + 72be: 7557 sexth r5, r5 + 72c0: 4c81 lsri r4, r4, 1 + 72c2: 6515 cmplt r5, r4 + 72c4: 0806 bt 0x72d0 // 72d0 + 72c6: 6004 addu r0, r1 + 72c8: 8880 ld.h r4, (r0, 0x0) + 72ca: 2401 addi r4, 2 + 72cc: 7511 zexth r4, r4 + 72ce: a880 st.h r4, (r0, 0x0) + 72d0: 2200 addi r2, 1 + 72d2: 3a51 cmpnei r2, 17 + 72d4: 2301 addi r3, 2 + 72d6: 0b61 bt 0x7198 // 7198 + 72d8: 1402 addi r14, r14, 8 + 72da: 1484 pop r4-r7 + 72dc: 5f80 addu r4, r7, r0 + 72de: 8c80 ld.h r4, (r4, 0x0) + 72e0: 7513 sexth r4, r4 + 72e2: 3cdf btsti r4, 31 + 72e4: 0fa9 bf 0x7236 // 7236 + 72e6: 10b0 lrw r5, 0x20000ac2 // 7324 + 72e8: 5980 addu r4, r1, r0 + 72ea: 6140 addu r5, r0 + 72ec: 8c80 ld.h r4, (r4, 0x0) + 72ee: 8da0 ld.h r5, (r5, 0x0) + 72f0: 7555 zexth r5, r5 + 72f2: 8bc0 ld.h r6, (r3, 0x0) + 72f4: 7511 zexth r4, r4 + 72f6: 6116 subu r4, r5 + 72f8: 46a1 lsli r5, r6, 1 + 72fa: 6158 addu r5, r6 + 72fc: 6551 cmplt r4, r5 + 72fe: 0b9c bt 0x7236 // 7236 + 7300: 108c lrw r4, 0x20000933 // 7330 + 7302: 3501 movi r5, 1 + 7304: a4a0 st.b r5, (r4, 0x0) + 7306: 6c03 mov r0, r0 + 7308: 0797 br 0x7236 // 7236 + 730a: 0000 bkpt + 730c: 2000094e .long 0x2000094e + 7310: 200001a1 .long 0x200001a1 + 7314: 200008ac .long 0x200008ac + 7318: 200008c6 .long 0x200008c6 + 731c: 200001ce .long 0x200001ce + 7320: 2000081c .long 0x2000081c + 7324: 20000ac2 .long 0x20000ac2 + 7328: 200009f0 .long 0x200009f0 + 732c: 20000090 .long 0x20000090 + 7330: 20000933 .long 0x20000933 + 7334: 20000976 .long 0x20000976 + +Disassembly of section .text.TK_result_prog: + +00007338 : + 7338: 14d2 push r4-r5, r15 + 733a: 1050 lrw r2, 0x200008ac // 7378 + 733c: 1090 lrw r4, 0x20000950 // 737c + 733e: 9260 ld.w r3, (r2, 0x0) + 7340: 3b40 cmpnei r3, 0 + 7342: 0c02 bf 0x7346 // 7346 + 7344: 9260 ld.w r3, (r2, 0x0) + 7346: b460 st.w r3, (r4, 0x0) + 7348: 9460 ld.w r3, (r4, 0x0) + 734a: 3b40 cmpnei r3, 0 + 734c: 10ad lrw r5, 0x20000a24 // 7380 + 734e: 0c11 bf 0x7370 // 7370 + 7350: 9440 ld.w r2, (r4, 0x0) + 7352: 9560 ld.w r3, (r5, 0x0) + 7354: 64ca cmpne r2, r3 + 7356: 0c03 bf 0x735c // 735c + 7358: 9460 ld.w r3, (r4, 0x0) + 735a: b560 st.w r3, (r5, 0x0) + 735c: e3fffd94 bsr 0x6e84 // 6e84 + 7360: 1069 lrw r3, 0x200001a8 // 7384 + 7362: 8360 ld.b r3, (r3, 0x0) + 7364: 640c cmphs r3, r0 + 7366: 0804 bt 0x736e // 736e + 7368: 3300 movi r3, 0 + 736a: b460 st.w r3, (r4, 0x0) + 736c: b560 st.w r3, (r5, 0x0) + 736e: 1492 pop r4-r5, r15 + 7370: 1046 lrw r2, 0x20000948 // 7388 + 7372: b560 st.w r3, (r5, 0x0) + 7374: b260 st.w r3, (r2, 0x0) + 7376: 07fc br 0x736e // 736e + 7378: 200008ac .long 0x200008ac + 737c: 20000950 .long 0x20000950 + 7380: 20000a24 .long 0x20000a24 + 7384: 200001a8 .long 0x200001a8 + 7388: 20000948 .long 0x20000948 + +Disassembly of section .text.CORETHandler: + +0000738c : + 738c: 1460 nie + 738e: 1462 ipush + 7390: 14d1 push r4, r15 + 7392: 1077 lrw r3, 0x20000068 // 73ec + 7394: 3400 movi r4, 0 + 7396: 9360 ld.w r3, (r3, 0x0) + 7398: b386 st.w r4, (r3, 0x18) + 739a: 1076 lrw r3, 0x200008b0 // 73f0 + 739c: 8360 ld.b r3, (r3, 0x0) + 739e: 3b41 cmpnei r3, 1 + 73a0: 0820 bt 0x73e0 // 73e0 + 73a2: e3fffd85 bsr 0x6eac // 6eac + 73a6: e3fffd93 bsr 0x6ecc // 6ecc + 73aa: e3fffe51 bsr 0x704c // 704c + 73ae: e3fffedd bsr 0x7168 // 7168 + 73b2: e3ffffc3 bsr 0x7338 // 7338 + 73b6: 1070 lrw r3, 0x20000950 // 73f4 + 73b8: 9360 ld.w r3, (r3, 0x0) + 73ba: 3b40 cmpnei r3, 0 + 73bc: 0c12 bf 0x73e0 // 73e0 + 73be: 106f lrw r3, 0x20000178 // 73f8 + 73c0: 9340 ld.w r2, (r3, 0x0) + 73c2: 3a40 cmpnei r2, 0 + 73c4: 0c0e bf 0x73e0 // 73e0 + 73c6: 106e lrw r3, 0x20000948 // 73fc + 73c8: 3064 movi r0, 100 + 73ca: 9320 ld.w r1, (r3, 0x0) + 73cc: 2100 addi r1, 1 + 73ce: b320 st.w r1, (r3, 0x0) + 73d0: 9320 ld.w r1, (r3, 0x0) + 73d2: 7c80 mult r2, r0 + 73d4: 6448 cmphs r2, r1 + 73d6: 0805 bt 0x73e0 // 73e0 + 73d8: 104a lrw r2, 0x20000933 // 7400 + 73da: 3101 movi r1, 1 + 73dc: a220 st.b r1, (r2, 0x0) + 73de: b380 st.w r4, (r3, 0x0) + 73e0: d9ee2001 ld.w r15, (r14, 0x4) + 73e4: 9880 ld.w r4, (r14, 0x0) + 73e6: 1402 addi r14, r14, 8 + 73e8: 1463 ipop + 73ea: 1461 nir + 73ec: 20000068 .long 0x20000068 + 73f0: 200008b0 .long 0x200008b0 + 73f4: 20000950 .long 0x20000950 + 73f8: 20000178 .long 0x20000178 + 73fc: 20000948 .long 0x20000948 + 7400: 20000933 .long 0x20000933 + +Disassembly of section .text.std_clk_calib: + +00007404 : + 7404: 14d4 push r4-r7, r15 + 7406: 142d subi r14, r14, 52 + 7408: 3201 movi r2, 1 + 740a: 03ce lrw r6, 0x20000060 // 764c + 740c: 6cc3 mov r3, r0 + 740e: dc4e000a st.b r2, (r14, 0xa) + 7412: 9640 ld.w r2, (r6, 0x0) + 7414: 9247 ld.w r2, (r2, 0x1c) + 7416: 7488 zextb r2, r2 + 7418: dc4e0009 st.b r2, (r14, 0x9) + 741c: d84e0009 ld.b r2, (r14, 0x9) + 7420: 3a40 cmpnei r2, 0 + 7422: 0c08 bf 0x7432 // 7432 + 7424: d84e0009 ld.b r2, (r14, 0x9) + 7428: 3a42 cmpnei r2, 2 + 742a: 0c04 bf 0x7432 // 7432 + 742c: 3000 movi r0, 0 + 742e: 140d addi r14, r14, 52 + 7430: 1494 pop r4-r7, r15 + 7432: 0397 lrw r4, 0x20000010 // 7650 + 7434: 3209 movi r2, 9 + 7436: 9400 ld.w r0, (r4, 0x0) + 7438: 3b40 cmpnei r3, 0 + 743a: b041 st.w r2, (r0, 0x4) + 743c: 0857 bt 0x74ea // 74ea + 743e: 3307 movi r3, 7 + 7440: dc6e000b st.b r3, (r14, 0xb) + 7444: 037b lrw r3, 0x2dc6c00 // 7654 + 7446: b863 st.w r3, (r14, 0xc) + 7448: 3380 movi r3, 128 + 744a: 4362 lsli r3, r3, 2 + 744c: b867 st.w r3, (r14, 0x1c) + 744e: d86e000b ld.b r3, (r14, 0xb) + 7452: 74cc zextb r3, r3 + 7454: b062 st.w r3, (r0, 0x8) + 7456: 037e lrw r3, 0xffff // 7658 + 7458: b063 st.w r3, (r0, 0xc) + 745a: 3201 movi r2, 1 + 745c: 3101 movi r1, 1 + 745e: 03bf lrw r5, 0x20000018 // 765c + 7460: e3ffe4ea bsr 0x3e34 // 3e34 + 7464: 95e0 ld.w r7, (r5, 0x0) + 7466: 137f lrw r3, 0xbe9c0005 // 7660 + 7468: b760 st.w r3, (r7, 0x0) + 746a: 135f lrw r2, 0x30010 // 7664 + 746c: 3300 movi r3, 0 + 746e: b762 st.w r3, (r7, 0x8) + 7470: b743 st.w r2, (r7, 0xc) + 7472: 32d8 movi r2, 216 + 7474: b745 st.w r2, (r7, 0x14) + 7476: 974f ld.w r2, (r7, 0x3c) + 7478: 3aa2 bseti r2, 2 + 747a: b74f st.w r2, (r7, 0x3c) + 747c: 9803 ld.w r0, (r14, 0xc) + 747e: d82e000b ld.b r1, (r14, 0xb) + 7482: 327d movi r2, 125 + 7484: 2100 addi r1, 1 + 7486: 7c48 mult r1, r2 + 7488: b861 st.w r3, (r14, 0x4) + 748a: e3ffec45 bsr 0x4d14 // 4d14 <__udivsi3> + 748e: b804 st.w r0, (r14, 0x10) + 7490: 32fa movi r2, 250 + 7492: 9824 ld.w r1, (r14, 0x10) + 7494: 4242 lsli r2, r2, 2 + 7496: 6448 cmphs r2, r1 + 7498: 0bca bt 0x742c // 742c + 749a: 9844 ld.w r2, (r14, 0x10) + 749c: 3178 movi r1, 120 + 749e: 9804 ld.w r0, (r14, 0x10) + 74a0: b840 st.w r2, (r14, 0x0) + 74a2: e3ffec39 bsr 0x4d14 // 4d14 <__udivsi3> + 74a6: 9840 ld.w r2, (r14, 0x0) + 74a8: 6082 subu r2, r0 + 74aa: b845 st.w r2, (r14, 0x14) + 74ac: 9804 ld.w r0, (r14, 0x10) + 74ae: 3178 movi r1, 120 + 74b0: 9844 ld.w r2, (r14, 0x10) + 74b2: b840 st.w r2, (r14, 0x0) + 74b4: e3ffec30 bsr 0x4d14 // 4d14 <__udivsi3> + 74b8: 9840 ld.w r2, (r14, 0x0) + 74ba: 6008 addu r0, r2 + 74bc: b806 st.w r0, (r14, 0x18) + 74be: c0807020 psrclr ie + 74c2: 9640 ld.w r2, (r6, 0x0) + 74c4: 9254 ld.w r2, (r2, 0x50) + 74c6: b848 st.w r2, (r14, 0x20) + 74c8: 9861 ld.w r3, (r14, 0x4) + 74ca: 9440 ld.w r2, (r4, 0x0) + 74cc: b260 st.w r3, (r2, 0x0) + 74ce: b761 st.w r3, (r7, 0x4) + 74d0: d86e000a ld.b r3, (r14, 0xa) + 74d4: 3b40 cmpnei r3, 0 + 74d6: 083e bt 0x7552 // 7552 + 74d8: e3ffe460 bsr 0x3d98 // 3d98 + 74dc: 9400 ld.w r0, (r4, 0x0) + 74de: e3ffe481 bsr 0x3de0 // 3de0 + 74e2: c1807420 psrset ee, ie + 74e6: 3001 movi r0, 1 + 74e8: 07a3 br 0x742e // 742e + 74ea: 3b41 cmpnei r3, 1 + 74ec: 0806 bt 0x74f8 // 74f8 + 74ee: 3303 movi r3, 3 + 74f0: dc6e000b st.b r3, (r14, 0xb) + 74f4: 127d lrw r3, 0x16e3600 // 7668 + 74f6: 07a8 br 0x7446 // 7446 + 74f8: 3b42 cmpnei r3, 2 + 74fa: 0806 bt 0x7506 // 7506 + 74fc: 3301 movi r3, 1 + 74fe: dc6e000b st.b r3, (r14, 0xb) + 7502: 127b lrw r3, 0xb71b00 // 766c + 7504: 07a1 br 0x7446 // 7446 + 7506: 3b43 cmpnei r3, 3 + 7508: 0806 bt 0x7514 // 7514 + 750a: 3300 movi r3, 0 + 750c: dc6e000b st.b r3, (r14, 0xb) + 7510: 1278 lrw r3, 0x5b8d80 // 7670 + 7512: 079a br 0x7446 // 7446 + 7514: 3b44 cmpnei r3, 4 + 7516: 0809 bt 0x7528 // 7528 + 7518: 3300 movi r3, 0 + 751a: dc6e000b st.b r3, (r14, 0xb) + 751e: 1276 lrw r3, 0x54c720 // 7674 + 7520: b863 st.w r3, (r14, 0xc) + 7522: 3380 movi r3, 128 + 7524: 4369 lsli r3, r3, 9 + 7526: 0793 br 0x744c // 744c + 7528: 3b45 cmpnei r3, 5 + 752a: 0806 bt 0x7536 // 7536 + 752c: 3300 movi r3, 0 + 752e: dc6e000b st.b r3, (r14, 0xb) + 7532: 1272 lrw r3, 0x3ffed0 // 7678 + 7534: 07f6 br 0x7520 // 7520 + 7536: 3b46 cmpnei r3, 6 + 7538: 0806 bt 0x7544 // 7544 + 753a: 3300 movi r3, 0 + 753c: dc6e000b st.b r3, (r14, 0xb) + 7540: 126f lrw r3, 0x1fff68 // 767c + 7542: 07ef br 0x7520 // 7520 + 7544: 3b47 cmpnei r3, 7 + 7546: 0b84 bt 0x744e // 744e + 7548: 3300 movi r3, 0 + 754a: dc6e000b st.b r3, (r14, 0xb) + 754e: 126d lrw r3, 0x1ffb8 // 7680 + 7550: 07e8 br 0x7520 // 7520 + 7552: 9560 ld.w r3, (r5, 0x0) + 7554: 3101 movi r1, 1 + 7556: 9440 ld.w r2, (r4, 0x0) + 7558: b321 st.w r1, (r3, 0x4) + 755a: b220 st.w r1, (r2, 0x0) + 755c: 3100 movi r1, 0 + 755e: b327 st.w r1, (r3, 0x1c) + 7560: 3004 movi r0, 4 + 7562: b225 st.w r1, (r2, 0x14) + 7564: 932e ld.w r1, (r3, 0x38) + 7566: 6840 and r1, r0 + 7568: 3940 cmpnei r1, 0 + 756a: 0ffd bf 0x7564 // 7564 + 756c: 9225 ld.w r1, (r2, 0x14) + 756e: b82a st.w r1, (r14, 0x28) + 7570: 3100 movi r1, 0 + 7572: b310 st.w r0, (r3, 0x40) + 7574: b327 st.w r1, (r3, 0x1c) + 7576: 3004 movi r0, 4 + 7578: b225 st.w r1, (r2, 0x14) + 757a: 932e ld.w r1, (r3, 0x38) + 757c: 6840 and r1, r0 + 757e: 3940 cmpnei r1, 0 + 7580: 0ffd bf 0x757a // 757a + 7582: 9225 ld.w r1, (r2, 0x14) + 7584: b82b st.w r1, (r14, 0x2c) + 7586: 3100 movi r1, 0 + 7588: b310 st.w r0, (r3, 0x40) + 758a: b327 st.w r1, (r3, 0x1c) + 758c: 3004 movi r0, 4 + 758e: b225 st.w r1, (r2, 0x14) + 7590: 932e ld.w r1, (r3, 0x38) + 7592: 6840 and r1, r0 + 7594: 3940 cmpnei r1, 0 + 7596: 0ffd bf 0x7590 // 7590 + 7598: 9225 ld.w r1, (r2, 0x14) + 759a: b82c st.w r1, (r14, 0x30) + 759c: b310 st.w r0, (r3, 0x40) + 759e: 982b ld.w r1, (r14, 0x2c) + 75a0: 980c ld.w r0, (r14, 0x30) + 75a2: 6040 addu r1, r0 + 75a4: b829 st.w r1, (r14, 0x24) + 75a6: 9829 ld.w r1, (r14, 0x24) + 75a8: 4921 lsri r1, r1, 1 + 75aa: b829 st.w r1, (r14, 0x24) + 75ac: 3100 movi r1, 0 + 75ae: b321 st.w r1, (r3, 0x4) + 75b0: b220 st.w r1, (r2, 0x0) + 75b2: b327 st.w r1, (r3, 0x1c) + 75b4: b225 st.w r1, (r2, 0x14) + 75b6: d86e0009 ld.b r3, (r14, 0x9) + 75ba: 3b42 cmpnei r3, 2 + 75bc: 9849 ld.w r2, (r14, 0x24) + 75be: 082c bt 0x7616 // 7616 + 75c0: 1171 lrw r3, 0x7ff // 7684 + 75c2: 648c cmphs r3, r2 + 75c4: 0c03 bf 0x75ca // 75ca + 75c6: 3300 movi r3, 0 + 75c8: 040f br 0x75e6 // 75e6 + 75ca: 9849 ld.w r2, (r14, 0x24) + 75cc: 9866 ld.w r3, (r14, 0x18) + 75ce: 648c cmphs r3, r2 + 75d0: 080e bt 0x75ec // 75ec + 75d2: 9868 ld.w r3, (r14, 0x20) + 75d4: 9847 ld.w r2, (r14, 0x1c) + 75d6: 60ca subu r3, r2 + 75d8: b868 st.w r3, (r14, 0x20) + 75da: 32fe movi r2, 254 + 75dc: 9868 ld.w r3, (r14, 0x20) + 75de: 4248 lsli r2, r2, 8 + 75e0: 68c8 and r3, r2 + 75e2: 3b40 cmpnei r3, 0 + 75e4: 0812 bt 0x7608 // 7608 + 75e6: dc6e000a st.b r3, (r14, 0xa) + 75ea: 0721 br 0x742c // 742c + 75ec: 9849 ld.w r2, (r14, 0x24) + 75ee: 9865 ld.w r3, (r14, 0x14) + 75f0: 64c8 cmphs r2, r3 + 75f2: 0829 bt 0x7644 // 7644 + 75f4: 9868 ld.w r3, (r14, 0x20) + 75f6: 9847 ld.w r2, (r14, 0x1c) + 75f8: 60c8 addu r3, r2 + 75fa: b868 st.w r3, (r14, 0x20) + 75fc: 33fe movi r3, 254 + 75fe: 9848 ld.w r2, (r14, 0x20) + 7600: 4368 lsli r3, r3, 8 + 7602: 688c and r2, r3 + 7604: 64ca cmpne r2, r3 + 7606: 0fe0 bf 0x75c6 // 75c6 + 7608: 9660 ld.w r3, (r6, 0x0) + 760a: 9848 ld.w r2, (r14, 0x20) + 760c: b354 st.w r2, (r3, 0x50) + 760e: 3001 movi r0, 1 + 7610: e3ffe5d2 bsr 0x41b4 // 41b4 + 7614: 075e br 0x74d0 // 74d0 + 7616: 9866 ld.w r3, (r14, 0x18) + 7618: 648c cmphs r3, r2 + 761a: 0809 bt 0x762c // 762c + 761c: 9868 ld.w r3, (r14, 0x20) + 761e: 9847 ld.w r2, (r14, 0x1c) + 7620: 60ca subu r3, r2 + 7622: b868 st.w r3, (r14, 0x20) + 7624: 32ff movi r2, 255 + 7626: 9868 ld.w r3, (r14, 0x20) + 7628: 4250 lsli r2, r2, 16 + 762a: 07db br 0x75e0 // 75e0 + 762c: 9849 ld.w r2, (r14, 0x24) + 762e: 9865 ld.w r3, (r14, 0x14) + 7630: 64c8 cmphs r2, r3 + 7632: 0809 bt 0x7644 // 7644 + 7634: 9868 ld.w r3, (r14, 0x20) + 7636: 9847 ld.w r2, (r14, 0x1c) + 7638: 60c8 addu r3, r2 + 763a: b868 st.w r3, (r14, 0x20) + 763c: 33ff movi r3, 255 + 763e: 9848 ld.w r2, (r14, 0x20) + 7640: 4370 lsli r3, r3, 16 + 7642: 07e0 br 0x7602 // 7602 + 7644: 3300 movi r3, 0 + 7646: dc6e000a st.b r3, (r14, 0xa) + 764a: 07e2 br 0x760e // 760e + 764c: 20000060 .long 0x20000060 + 7650: 20000010 .long 0x20000010 + 7654: 02dc6c00 .long 0x02dc6c00 + 7658: 0000ffff .long 0x0000ffff + 765c: 20000018 .long 0x20000018 + 7660: be9c0005 .long 0xbe9c0005 + 7664: 00030010 .long 0x00030010 + 7668: 016e3600 .long 0x016e3600 + 766c: 00b71b00 .long 0x00b71b00 + 7670: 005b8d80 .long 0x005b8d80 + 7674: 0054c720 .long 0x0054c720 + 7678: 003ffed0 .long 0x003ffed0 + 767c: 001fff68 .long 0x001fff68 + 7680: 0001ffb8 .long 0x0001ffb8 + 7684: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V04_20251201.map b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V04_20251201.map new file mode 100644 index 0000000..1278ccf --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V04_20251201.map @@ -0,0 +1,2919 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 385956 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 187 + Section header string table index: 184 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 00365a 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 0000365c 00465c 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00003694 004694 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00003708 004708 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00003754 004754 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00003784 004784 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 0000380c 00480c 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00003834 004834 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00003870 004870 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00003884 004884 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 0000389c 00489c 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 000038bc 0048bc 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 000038d8 0048d8 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 000038f4 0048f4 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00003934 004934 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00003968 004968 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 0000396c 00496c 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 0000397c 00497c 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Soft PROGBITS 00003988 004988 000014 00 AX 0 0 4 + [20] .text.SYSCON_INT_ PROGBITS 0000399c 00499c 000024 00 AX 0 0 4 + [21] .text.Set_INT_Pri PROGBITS 000039c0 0049c0 000030 00 AX 0 0 4 + [22] .text.GPIO_DeInit PROGBITS 000039f0 0049f0 000064 00 AX 0 0 4 + [23] .text.GPIO_Init PROGBITS 00003a54 004a54 0000e0 00 AX 0 0 4 + [24] .text.GPIO_PullHi PROGBITS 00003b34 004b34 000014 00 AX 0 0 2 + [25] .text.GPIO_DriveS PROGBITS 00003b48 004b48 00000e 00 AX 0 0 2 + [26] .text.GPIO_IntGro PROGBITS 00003b58 004b58 00010c 00 AX 0 0 4 + [27] .text.GPIOA0_EXI_ PROGBITS 00003c64 004c64 0000fc 00 AX 0 0 4 + [28] .text.GPIO_Write_ PROGBITS 00003d60 004d60 000008 00 AX 0 0 2 + [29] .text.GPIO_Write_ PROGBITS 00003d68 004d68 000008 00 AX 0 0 2 + [30] .text.GPIO_Revers PROGBITS 00003d70 004d70 000016 00 AX 0 0 2 + [31] .text.GPIO_Read_S PROGBITS 00003d86 004d86 000010 00 AX 0 0 2 + [32] .text.LPT_Soft_Re PROGBITS 00003d98 004d98 000014 00 AX 0 0 4 + [33] .text.WWDT_CNT_Lo PROGBITS 00003dac 004dac 000010 00 AX 0 0 4 + [34] .text.BT_DeInit PROGBITS 00003dbc 004dbc 00001c 00 AX 0 0 2 + [35] .text.BT_Start PROGBITS 00003dd8 004dd8 000008 00 AX 0 0 2 + [36] .text.BT_Soft_Res PROGBITS 00003de0 004de0 00000a 00 AX 0 0 2 + [37] .text.BT_Configur PROGBITS 00003dea 004dea 000018 00 AX 0 0 2 + [38] .text.BT_ControlS PROGBITS 00003e02 004e02 00002c 00 AX 0 0 2 + [39] .text.BT_Period_C PROGBITS 00003e2e 004e2e 000006 00 AX 0 0 2 + [40] .text.BT_ConfigIn PROGBITS 00003e34 004e34 000012 00 AX 0 0 2 + [41] .text.BT1_INT_ENA PROGBITS 00003e48 004e48 000010 00 AX 0 0 4 + [42] .text.UART0_DeIni PROGBITS 00003e58 004e58 000018 00 AX 0 0 4 + [43] .text.UART1_DeIni PROGBITS 00003e70 004e70 000018 00 AX 0 0 4 + [44] .text.UART2_DeIni PROGBITS 00003e88 004e88 000018 00 AX 0 0 4 + [45] .text.UART0_Int_E PROGBITS 00003ea0 004ea0 00001c 00 AX 0 0 4 + [46] .text.UART1_Int_E PROGBITS 00003ebc 004ebc 00001c 00 AX 0 0 4 + [47] .text.UART2_Int_E PROGBITS 00003ed8 004ed8 00001c 00 AX 0 0 4 + [48] .text.UART_IO_Ini PROGBITS 00003ef4 004ef4 0000ec 00 AX 0 0 4 + [49] .text.UARTInitRxT PROGBITS 00003fe0 004fe0 000010 00 AX 0 0 4 + [50] .text.UARTTransmi PROGBITS 00003ff0 004ff0 00001e 00 AX 0 0 2 + [51] .text.EPT_Stop PROGBITS 00004010 005010 000028 00 AX 0 0 4 + [52] .text.Page_Progra PROGBITS 00004038 005038 0000a0 00 AX 0 0 4 + [53] .text.ReadDataArr PROGBITS 000040d8 0050d8 00002a 00 AX 0 0 2 + [54] .text.startup.mai PROGBITS 00004104 005104 0000b0 00 AX 0 0 4 + [55] .text.delay_nms PROGBITS 000041b4 0051b4 00002c 00 AX 0 0 2 + [56] .text.delay_nus PROGBITS 000041e0 0051e0 000022 00 AX 0 0 2 + [57] .text.BT_CONFIG PROGBITS 00004204 005204 000060 00 AX 0 0 4 + [58] .text.SYSCON_CONF PROGBITS 00004264 005264 000062 00 AX 0 0 2 + [59] .text.APT32F102_i PROGBITS 000042c8 0052c8 000080 00 AX 0 0 4 + [60] .text.SYSCONIntHa PROGBITS 00004348 005348 0000f0 00 AX 0 0 4 + [61] .text.IFCIntHandl PROGBITS 00004438 005438 000068 00 AX 0 0 4 + [62] .text.ADCIntHandl PROGBITS 000044a0 0054a0 000068 00 AX 0 0 4 + [63] .text.EPT0IntHand PROGBITS 00004508 005508 0001ac 00 AX 0 0 4 + [64] .text.WWDTHandler PROGBITS 000046b4 0056b4 000034 00 AX 0 0 4 + [65] .text.GPT0IntHand PROGBITS 000046e8 0056e8 000080 00 AX 0 0 4 + [66] .text.RTCIntHandl PROGBITS 00004768 005768 000070 00 AX 0 0 4 + [67] .text.UART0IntHan PROGBITS 000047d8 0057d8 000060 00 AX 0 0 4 + [68] .text.UART1IntHan PROGBITS 00004838 005838 000094 00 AX 0 0 4 + [69] .text.UART2IntHan PROGBITS 000048cc 0058cc 000060 00 AX 0 0 4 + [70] .text.SPI0IntHand PROGBITS 0000492c 00592c 0000e8 00 AX 0 0 4 + [71] .text.SIO0IntHand PROGBITS 00004a14 005a14 000054 00 AX 0 0 4 + [72] .text.EXI0IntHand PROGBITS 00004a68 005a68 000030 00 AX 0 0 4 + [73] .text.EXI1IntHand PROGBITS 00004a98 005a98 000030 00 AX 0 0 4 + [74] .text.EXI2to3IntH PROGBITS 00004ac8 005ac8 000048 00 AX 0 0 4 + [75] .text.EXI4to9IntH PROGBITS 00004b10 005b10 000020 00 AX 0 0 4 + [76] .text.EXI10to15In PROGBITS 00004b30 005b30 00006c 00 AX 0 0 4 + [77] .text.LPTIntHandl PROGBITS 00004b9c 005b9c 000034 00 AX 0 0 4 + [78] .text.BT0IntHandl PROGBITS 00004bd0 005bd0 00004c 00 AX 0 0 4 + [79] .text.BT1IntHandl PROGBITS 00004c1c 005c1c 000070 00 AX 0 0 4 + [80] .text.PriviledgeV PROGBITS 00004c8c 005c8c 000002 00 AX 0 0 2 + [81] .text.PendTrapHan PROGBITS 00004c8e 005c8e 000008 00 AX 0 0 2 + [82] .text.Trap3Handle PROGBITS 00004c96 005c96 000008 00 AX 0 0 2 + [83] .text.Trap2Handle PROGBITS 00004c9e 005c9e 000008 00 AX 0 0 2 + [84] .text.Trap1Handle PROGBITS 00004ca6 005ca6 000008 00 AX 0 0 2 + [85] .text.Trap0Handle PROGBITS 00004cae 005cae 000008 00 AX 0 0 2 + [86] .text.UnrecExecpH PROGBITS 00004cb6 005cb6 000008 00 AX 0 0 2 + [87] .text.BreakPointH PROGBITS 00004cbe 005cbe 000008 00 AX 0 0 2 + [88] .text.AccessErrHa PROGBITS 00004cc6 005cc6 000008 00 AX 0 0 2 + [89] .text.IllegalInst PROGBITS 00004cce 005cce 000008 00 AX 0 0 2 + [90] .text.MisalignedH PROGBITS 00004cd6 005cd6 000008 00 AX 0 0 2 + [91] .text.CNTAIntHand PROGBITS 00004cde 005cde 000008 00 AX 0 0 2 + [92] .text.I2CIntHandl PROGBITS 00004ce6 005ce6 000008 00 AX 0 0 2 + [93] .text.__divsi3 PROGBITS 00004cf0 005cf0 000024 00 AX 0 0 4 + [94] .text.__udivsi3 PROGBITS 00004d14 005d14 000024 00 AX 0 0 4 + [95] .text.__modsi3 PROGBITS 00004d38 005d38 000024 00 AX 0 0 4 + [96] .text.__umodsi3 PROGBITS 00004d5c 005d5c 000024 00 AX 0 0 4 + [97] .text.CK_CPU_EnAl PROGBITS 00004d80 005d80 000006 00 AX 0 0 2 + [98] .text.CK_CPU_DisA PROGBITS 00004d86 005d86 000006 00 AX 0 0 2 + [99] .text.UARTx_Init PROGBITS 00004d8c 005d8c 00018c 00 AX 0 0 4 + [100] .text.UART0_RecvI PROGBITS 00004f18 005f18 000034 00 AX 0 0 4 + [101] .text.UART1_RecvI PROGBITS 00004f4c 005f4c 000034 00 AX 0 0 4 + [102] .text.UART2_RecvI PROGBITS 00004f80 005f80 000034 00 AX 0 0 4 + [103] .text.MCU485_Send PROGBITS 00004fb4 005fb4 000090 00 AX 0 0 4 + [104] .text.BUS485_Send PROGBITS 00005044 006044 0000c4 00 AX 0 0 4 + [105] .text.Set_GroupSe PROGBITS 00005108 006108 000064 00 AX 0 0 4 + [106] .text.Clear_SendF PROGBITS 0000516c 00616c 000010 00 AX 0 0 4 + [107] .text.BusIdle_Tas PROGBITS 0000517c 00617c 000040 00 AX 0 0 4 + [108] .text.BusBusy_Tas PROGBITS 000051bc 0061bc 00005c 00 AX 0 0 4 + [109] .text.Dbg_Println PROGBITS 00005218 006218 000088 00 AX 0 0 4 + [110] .text.MultSend_Ta PROGBITS 000052a0 0062a0 0000a0 00 AX 0 0 4 + [111] .text.BUS485Send_ PROGBITS 00005340 006340 000068 00 AX 0 0 4 + [112] .text.Dbg_Print_B PROGBITS 000053a8 0063a8 000088 00 AX 0 0 4 + [113] .text.Dbg_BT_Prin PROGBITS 00005430 006430 00003c 00 AX 0 0 4 + [114] .text.DIP_GetSwit PROGBITS 0000546c 00646c 000034 00 AX 0 0 4 + [115] .text.DIP_Switch_ PROGBITS 000054a0 0064a0 000094 00 AX 0 0 4 + [116] .text.EEPROM_Chec PROGBITS 00005534 006534 000016 00 AX 0 0 2 + [117] .text.EEOROM_ENER PROGBITS 0000554c 00654c 000150 00 AX 0 0 4 + [118] .text.EEOROM_ENER PROGBITS 0000569c 00669c 000044 00 AX 0 0 4 + [119] .text.EEPROM_ENER PROGBITS 000056e0 0066e0 00014c 00 AX 0 0 4 + [120] .text.EEPROM_Defa PROGBITS 0000582c 00682c 000128 00 AX 0 0 4 + [121] .text.EEPROM_Read PROGBITS 00005954 006954 0000b8 00 AX 0 0 4 + [122] .text.EEPROM_Writ PROGBITS 00005a0c 006a0c 0000ac 00 AX 0 0 4 + [123] .text.EEPROM_Read PROGBITS 00005ab8 006ab8 0000d4 00 AX 0 0 4 + [124] .text.EEPROM_Writ PROGBITS 00005b8c 006b8c 000040 00 AX 0 0 2 + [125] .text.EEPROM_Defa PROGBITS 00005bcc 006bcc 000038 00 AX 0 0 4 + [126] .text.EEPROM_Vali PROGBITS 00005c04 006c04 000058 00 AX 0 0 4 + [127] .text.EEPROM_Init PROGBITS 00005c5c 006c5c 00012c 00 AX 0 0 4 + [128] .text.BT_Uart_Pac PROGBITS 00005d88 006d88 00003c 00 AX 0 0 4 + [129] .text.BLV_DetEner PROGBITS 00005dc4 006dc4 000030 00 AX 0 0 4 + [130] .text.BLV_DetEner PROGBITS 00005df4 006df4 0000d0 00 AX 0 0 4 + [131] .text.HLW8110_Che PROGBITS 00005ec4 006ec4 000018 00 AX 0 0 2 + [132] .text.HLW8110_Con PROGBITS 00005edc 006edc 00008c 00 AX 0 0 4 + [133] .text.HLW8110_Con PROGBITS 00005f68 006f68 00007c 00 AX 0 0 4 + [134] .text.HLW8110_Con PROGBITS 00005fe4 006fe4 000080 00 AX 0 0 4 + [135] .text.HLW8110_Con PROGBITS 00006064 007064 0000d0 00 AX 0 0 4 + [136] .text.HLW8110_Rec PROGBITS 00006134 007134 0002a8 00 AX 0 0 4 + [137] .text.BLV_Energy_ PROGBITS 000063dc 0073dc 0000ec 00 AX 0 0 4 + [138] .text.BLV_Energy_ PROGBITS 000064c8 0074c8 0000a0 00 AX 0 0 4 + [139] .text.BLV_Energy_ PROGBITS 00006568 007568 000098 00 AX 0 0 4 + [140] .text.SetCalibFac PROGBITS 00006600 007600 000030 00 AX 0 0 4 + [141] .text.BLV_Energy_ PROGBITS 00006630 007630 000084 00 AX 0 0 4 + [142] .text.BLV_Energy_ PROGBITS 000066b4 0076b4 00007c 00 AX 0 0 4 + [143] .text.HLW_485Recv PROGBITS 00006730 007730 00016c 00 AX 0 0 4 + [144] .text.BT_Recv_Pro PROGBITS 0000689c 00789c 000118 00 AX 0 0 4 + [145] .text.Boot_Functi PROGBITS 000069b4 0079b4 0000c0 00 AX 0 0 4 + [146] .text.Fram_SDA_GP PROGBITS 00006a74 007a74 000024 00 AX 0 0 4 + [147] .text.Bsp_I2C_Fra PROGBITS 00006a98 007a98 000024 00 AX 0 0 4 + [148] .text.Fram_SDA_GP PROGBITS 00006abc 007abc 000040 00 AX 0 0 4 + [149] .text.IIC_Wait PROGBITS 00006afc 007afc 000032 00 AX 0 0 2 + [150] .text.IIC_Start PROGBITS 00006b30 007b30 000040 00 AX 0 0 4 + [151] .text.IIC_Stop PROGBITS 00006b70 007b70 00003c 00 AX 0 0 4 + [152] .text.IIC_NoACK PROGBITS 00006bac 007bac 00003c 00 AX 0 0 4 + [153] .text.IIC_Wait_AC PROGBITS 00006be8 007be8 000058 00 AX 0 0 4 + [154] .text.IIC_Send_By PROGBITS 00006c40 007c40 000058 00 AX 0 0 4 + [155] .text.IIC_Read_By PROGBITS 00006c98 007c98 000058 00 AX 0 0 4 + [156] .text.Fram_I2C_Wr PROGBITS 00006cf0 007cf0 000050 00 AX 0 0 2 + [157] .text.Fram_I2C_Re PROGBITS 00006d40 007d40 000062 00 AX 0 0 2 + [158] .text.TK_Sampling PROGBITS 00006da4 007da4 000058 00 AX 0 0 4 + [159] .text.TKEYIntHand PROGBITS 00006dfc 007dfc 000088 00 AX 0 0 4 + [160] .text.get_key_num PROGBITS 00006e84 007e84 000028 00 AX 0 0 4 + [161] .text.TK_Scan_Sta PROGBITS 00006eac 007eac 000020 00 AX 0 0 4 + [162] .text.TK_Keymap_p PROGBITS 00006ecc 007ecc 000180 00 AX 0 0 4 + [163] .text.TK_overflow PROGBITS 0000704c 00804c 00011c 00 AX 0 0 4 + [164] .text.TK_Baseline PROGBITS 00007168 008168 0001d0 00 AX 0 0 4 + [165] .text.TK_result_p PROGBITS 00007338 008338 000054 00 AX 0 0 4 + [166] .text.CORETHandle PROGBITS 0000738c 00838c 000078 00 AX 0 0 4 + [167] .text.std_clk_cal PROGBITS 00007404 008404 000284 00 AX 0 0 4 + [168] .RomCode PROGBITS 00007688 00a0c4 000000 00 W 0 0 1 + [169] .rodata PROGBITS 00007688 008688 00171c 00 A 0 0 4 + [170] .data PROGBITS 20000000 00a000 0000a4 00 WA 0 0 4 + [171] .textcsky.VinFlas PROGBITS 200000a4 00a0a4 000020 00 WA 0 0 1 + [172] .bss NOBITS 200000c4 00a0c4 000a28 00 WA 0 0 4 + [173] .csky.attributes CSKY_ATTRIBUTES 00000000 00a0c4 000022 00 0 0 1 + [174] .comment PROGBITS 00000000 00a0e6 000042 01 MS 0 0 1 + [175] .csky_stack_size PROGBITS 00000000 00a130 000b6c 00 0 0 16 + [176] .debug_line PROGBITS 00000000 00ac9c 0047ad 00 0 0 1 + [177] .debug_info PROGBITS 00000000 00f449 0342ce 00 0 0 1 + [178] .debug_abbrev PROGBITS 00000000 043717 00303d 00 0 0 1 + [179] .debug_aranges PROGBITS 00000000 046758 000df8 00 0 0 8 + [180] .debug_ranges PROGBITS 00000000 047550 000e00 00 0 0 1 + [181] .debug_str PROGBITS 00000000 048350 009200 01 MS 0 0 1 + [182] .debug_frame PROGBITS 00000000 051550 0022f8 00 0 0 4 + [183] .debug_loc PROGBITS 00000000 053848 00339a 00 0 0 1 + [184] .shstrtab STRTAB 00000000 05d3ac 000ff7 00 0 0 1 + [185] .symtab SYMTAB 00000000 056be4 004eb0 10 186 884 4 + [186] .strtab STRTAB 00000000 05ba94 001918 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x08da4 0x08da4 R E 0x1000 + LOAD 0x00a000 0x20000000 0x00008da4 0x000c4 0x00aec RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Software_Reset .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_DeInit .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.Page_ProgramData .text.ReadDataArry_U8 .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART0_RecvINT_Processing .text.UART1_RecvINT_Processing .text.UART2_RecvINT_Processing .text.MCU485_SendData .text.BUS485_Send .text.Set_GroupSend .text.Clear_SendFlag .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.MultSend_Task .text.BUS485Send_Task .text.Dbg_Print_Buff .text.Dbg_BT_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.EEPROM_CheckSum .text.EEOROM_ENERGY_ReadSet .text.EEOROM_ENERGY_WriteSet .text.EEPROM_ENERGY_Validate .text.EEPROM_Default_ENERGY .text.EEPROM_ReadTotalEng .text.EEPROM_WriteTotalEng .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.BT_Uart_Packing.part.2 .text.BLV_DetEnergy_Init .text.BLV_DetEnergy_Default .text.HLW8110_CheckSum .text.HLW8110_Convert_CurrentRegA_Value .text.HLW8110_Convert_VoltageReg_Value .text.HLW8110_Convert_PowerReg_Value .text.HLW8110_Convert_EnergyReg_Value .text.HLW8110_RecvData_Processing .text.BLV_Energy_PassiveRep_Packing .text.BLV_Energy_SetTime_Packing .text.BLV_Energy_QueryVersion_Packing .text.SetCalibFactor_Switch .text.BLV_Energy_SetCalibFactor .text.BLV_Energy_SetCalibFactor_2 .text.HLW_485Recv_Processing .text.BT_Recv_Processing .text.Boot_Function_Init .text.Fram_SDA_GPIO.part.0 .text.Bsp_I2C_Fram_Init .text.Fram_SDA_GPIO .text.IIC_Wait .text.IIC_Start .text.IIC_Stop .text.IIC_NoACK .text.IIC_Wait_ACK .text.IIC_Send_Byte .text.IIC_Read_Byte .text.Fram_I2C_WriteByte .text.Fram_I2C_ReadByte .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .textcsky.VinFlash .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Software_Reset) for SYSCON_Software_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DeInit) for GPIO_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO.part.0) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_fram_i2c.o(.text.Bsp_I2C_Fram_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_NoACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_NoACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART0IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART0_RecvINT_Processing) for UART0_RecvINT_Processing + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) for EEOROM_ENERGY_ReadSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) for EEPROM_Default_ENERGY + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) for EEPROM_ReadTotalEng + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) for EEPROM_WriteTotalEng + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) for EEPROM_ReadMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) for EEPROM_Default_MCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) for BLV_DetEnergy_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) for BLV_DetEnergy_Default + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) for HLW8110_Convert_CurrentRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) for HLW8110_Convert_VoltageReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) for HLW8110_Convert_PowerReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) for HLW8110_Convert_EnergyReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) for BLV_Energy_PassiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.HLW_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) for BLV_Energy_SetCalibFactor + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) for BLV_Energy_SetCalibFactor_2 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) for Boot_Function_Init + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_fram_i2c.o(.text.Bsp_I2C_Fram_Init) for Bsp_I2C_Fram_Init + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO) for Fram_SDA_GPIO + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO) for Fram_SDA_GPIO + Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_NoACK) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) for IIC_Start + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) for IIC_Start + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) for IIC_Stop + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) for IIC_Stop + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_NoACK) for IIC_NoACK + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) for IIC_Wait_ACK + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) for IIC_Wait_ACK + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) for IIC_Send_Byte + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) for IIC_Send_Byte + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadByte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) for IIC_Read_Byte + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteByte) for Fram_I2C_WriteByte + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadByte) for Fram_I2C_ReadByte + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _addsub_sf.o(.text) for __addsf3 + _fixunssfsi.o(.text) refers to _addsub_sf.o(.text) for __subsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _ne_sf.o(.text) for __nesf2 + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to _ne_sf.o(.text) for __nesf2 + _fixunssfsi.o(.text) refers to _ge_sf.o(.text) for __gesf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _si_to_sf.o(.text) for __floatsisf + _fixunssfsi.o(.text) refers to _sf_to_si.o(.text) for __fixsfsi + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_sf.o(.text) refers to _muldi3.o(.text) for __muldi3 + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_sf.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _mul_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _si_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _make_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _mul_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _div_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ge_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_si.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_df.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _ge_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _df_to_sf.o(.text) refers to _make_sf.o(.text) for __make_fp + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _make_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_sf.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.2) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing.part.2) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to strncmp.o(.text) for strncmp + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2907 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3101 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3418 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3163 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_IO_Init(Obj/FWlib_apt32f102_gpt.o), (160 bytes). + Removing .text.GPT_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveCtrl_Configure(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_WaveLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveOut_Configure(Obj/FWlib_apt32f102_gpt.o), (180 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Start(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Period_CMP_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_gpt.o), (28 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_gpt.o), (11442 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_gpt.o), (562 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_gpt.o), (2212 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_gpt.o), (256 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_gpt.o), (240 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_gpt.o), (754 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_gpt.o), (8026 bytes). + Removing .comment(Obj/FWlib_apt32f102_gpt.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_gpt.o), (616 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4131 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3534 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3650 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4850 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4958 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2856 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (96 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (112 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.BUS485_Jump_Boot(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (124 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .bss(Obj/SYSTEM_dip_switch.o), (4 bytes). + Removing .text.DIP_ScanTask(Obj/SYSTEM_dip_switch.o), (152 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ReadPara(Obj/SYSTEM_eeprom.o), (128 bytes). + Removing .text.EEPROM_ValidateWrite(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_WritePara(Obj/SYSTEM_eeprom.o), (104 bytes). + Removing .text(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .data(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .bss(Obj/SYSTEM_det_energy.o), (25 bytes). + Removing .text.HLW8110_WriteREG_EN(Obj/SYSTEM_det_energy.o), (68 bytes). + Removing .text.HLW8110_WriteREG_DIS(Obj/SYSTEM_det_energy.o), (68 bytes). + Removing .text.HLW8110_Reset(Obj/SYSTEM_det_energy.o), (80 bytes). + Removing .text.BLV_HLW8110_RWCMD_Packaging(Obj/SYSTEM_det_energy.o), (140 bytes). + Removing .text.HLW8110_RWCMD_Send(Obj/SYSTEM_det_energy.o), (84 bytes). + Removing .text.HLW8110_CleanSdFlag(Obj/SYSTEM_det_energy.o), (16 bytes). + Removing .text.Get_RevState(Obj/SYSTEM_det_energy.o), (24 bytes). + Removing .text.Get_SendState(Obj/SYSTEM_det_energy.o), (28 bytes). + Removing .text.HLW8110_ToWaitState(Obj/SYSTEM_det_energy.o), (24 bytes). + Removing .text.BLV_HLW8110_SendData_Tack(Obj/SYSTEM_det_energy.o), (484 bytes). + Removing .text.HLW8110_SysPara_Check(Obj/SYSTEM_det_energy.o), (38 bytes). + Removing .text.HLW8110_ReadSysPara(Obj/SYSTEM_det_energy.o), (596 bytes). + Removing .text.HLW8110_ReadSysCtrlPara(Obj/SYSTEM_det_energy.o), (200 bytes). + Removing .text.GetEnergy_Para(Obj/SYSTEM_det_energy.o), (84 bytes). + Removing .text.HLW8110_ReadValue(Obj/SYSTEM_det_energy.o), (296 bytes). + Removing .text.BLV_HLW8110_Tack(Obj/SYSTEM_det_energy.o), (64 bytes). + Removing .text.BT_Uart_Packing(Obj/SYSTEM_det_energy.o), (12 bytes). + Removing .text.BT_UART_Print(Obj/SYSTEM_det_energy.o), (240 bytes). + Removing .text.BLV_Energy_ActiveRep_Packing(Obj/SYSTEM_det_energy.o), (236 bytes). + Removing .text.BLV_ElectricPara_Processing(Obj/SYSTEM_det_energy.o), (192 bytes). + Removing .text.BLV_EngDetect_Tack(Obj/SYSTEM_det_energy.o), (20 bytes). + Removing .text(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .text.Boot_Comm_CheckSum(Obj/SYSTEM_Bootload_fun.o), (36 bytes). + Removing .text.NetCRC16(Obj/SYSTEM_Bootload_fun.o), (60 bytes). + Removing .text.Boot_Comm_FillReplyPack(Obj/SYSTEM_Bootload_fun.o), (108 bytes). + Removing .text.APP_Flash_AllEase(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.MCU_EEPROM_AllEase(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing .text.APP_FEATURE_Flash_Ease(Obj/SYSTEM_Bootload_fun.o), (12 bytes). + Removing .text.Boot_Time_Refresh(Obj/SYSTEM_Bootload_fun.o), (20 bytes). + Removing .text.Boot_Comm_UpgradeProcess(Obj/SYSTEM_Bootload_fun.o), (540 bytes). + Removing .text.Boot_TimeOut_Task(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Jump_To_APP(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Check_APP_Feature(Obj/SYSTEM_Bootload_fun.o), (456 bytes). + Removing .text(Obj/SYSTEM_fram_i2c.o), (0 bytes). + Removing .data(Obj/SYSTEM_fram_i2c.o), (0 bytes). + Removing .bss(Obj/SYSTEM_fram_i2c.o), (0 bytes). + Removing .text.IIC_ACK(Obj/SYSTEM_fram_i2c.o), (60 bytes). + Removing .text.Fram_I2C_WriteBytes(Obj/SYSTEM_fram_i2c.o), (92 bytes). + Removing .text.Fram_I2C_ReadBytes(Obj/SYSTEM_fram_i2c.o), (122 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (121 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .text(_csky_case_uhi.o), (26 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.o), (0 bytes). + Removing .csky.attributes(_csky_case_uhi.o), (32 bytes). + Removing .data(_fixunssfsi.o), (0 bytes). + Removing .bss(_fixunssfsi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_sf.o), (0 bytes). + Removing .bss(_addsub_sf.o), (0 bytes). + Removing .data(_mul_sf.o), (0 bytes). + Removing .bss(_mul_sf.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.o), (0 bytes). + Removing .data(_ne_sf.o), (0 bytes). + Removing .bss(_ne_sf.o), (0 bytes). + Removing .data(_ge_sf.o), (0 bytes). + Removing .bss(_ge_sf.o), (0 bytes). + Removing .data(_si_to_sf.o), (0 bytes). + Removing .bss(_si_to_sf.o), (0 bytes). + Removing .data(_sf_to_si.o), (0 bytes). + Removing .bss(_sf_to_si.o), (0 bytes). + Removing .data(_sf_to_df.o), (0 bytes). + Removing .bss(_sf_to_df.o), (0 bytes). + Removing .text(_thenan_sf.o), (0 bytes). + Removing .data(_thenan_sf.o), (0 bytes). + Removing .bss(_thenan_sf.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .data(_make_df.o), (0 bytes). + Removing .bss(_make_df.o), (0 bytes). + Removing .data(_df_to_sf.o), (0 bytes). + Removing .bss(_df_to_sf.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_sf.o), (0 bytes). + Removing .bss(_pack_sf.o), (0 bytes). + Removing .data(_unpack_sf.o), (0 bytes). + Removing .bss(_unpack_sf.o), (0 bytes). + Removing .data(_fpcmp_parts_sf.o), (0 bytes). + Removing .bss(_fpcmp_parts_sf.o), (0 bytes). + Removing .data(_make_sf.o), (0 bytes). + Removing .bss(_make_sf.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +727 unused seciton(s) (total 188702 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ifc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_Bootload_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_det_energy.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_fram_i2c.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _addsub_sf.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_sf.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _div_sf.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fixunssfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _fpcmp_parts_sf.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _ge_sf.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _make_df.o 0x00000000 df 0 *ABS* + _make_sf.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _mul_sf.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _ne_sf.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _sf_to_si.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _si_to_sf.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _unpack_sf.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + strncmp.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d40 0 .text + $t 0x00000d40 0 .text + $d 0x00000d74 0 .text + _fpadd_parts 0x00000d78 F 332 .text + $d 0x00000d78 0 .text + $t 0x00000d78 0 .text + $d 0x00000ebc 0 .text + $t 0x00000ec4 0 .text + $d 0x00000f24 0 .text + $t 0x00000f24 0 .text + $d 0x00001034 0 .text + $d 0x0000103c 0 .text + $t 0x0000103c 0 .text + $d 0x000010f4 0 .text + $d 0x000010f8 0 .text + $t 0x000010f8 0 .text + $d 0x00001130 0 .text + $t 0x00001130 0 .text + $d 0x00001168 0 .text + $t 0x00001168 0 .text + $d 0x000011cc 0 .text + $t 0x000011cc 0 .text + $d 0x0000121c 0 .text + $d 0x00001220 0 .text + $t 0x00001220 0 .text + _fpadd_parts 0x00001244 F 724 .text + $d 0x00001244 0 .text + $t 0x00001244 0 .text + $d 0x0000150c 0 .text + $t 0x00001518 0 .text + $d 0x00001580 0 .text + $t 0x00001580 0 .text + $d 0x000017a8 0 .text + $d 0x000017b4 0 .text + $t 0x000017b4 0 .text + $d 0x00001904 0 .text + $d 0x00001908 0 .text + $t 0x00001908 0 .text + $d 0x00001944 0 .text + $t 0x00001944 0 .text + $d 0x00001980 0 .text + $t 0x00001980 0 .text + $d 0x000019bc 0 .text + $t 0x000019bc 0 .text + $d 0x00001a28 0 .text + $d 0x00001a2c 0 .text + $t 0x00001a2c 0 .text + $d 0x00001a98 0 .text + $d 0x00001a9c 0 .text + $t 0x00001a9c 0 .text + $d 0x00001ac4 0 .text + $t 0x00001ac4 0 .text + $d 0x00001af4 0 .text + $t 0x00001af4 0 .text + $d 0x00001b48 0 .text + $t 0x00001b48 0 .text + $d 0x00001b8c 0 .text + $t 0x00001b8c 0 .text + $d 0x00001bc0 0 .text + $d 0x00001bcc 0 .text + $t 0x00001bcc 0 .text + $d 0x00001c80 0 .text + $d 0x00001c84 0 .text + $t 0x00001c84 0 .text + $d 0x00001d00 0 .text + $d 0x00001d08 0 .text + $t 0x00001d08 0 .text + $d 0x00001d80 0 .text + $t 0x00001d80 0 .text + $d 0x00001d98 0 .text + $t 0x00001d98 0 .text + $d 0x00001f20 0 .text + $d 0x00001f34 0 .text + $t 0x00001f34 0 .text + $d 0x00001fec 0 .text + $d 0x00001ff8 0 .text + $t 0x00001ff8 0 .text + $d 0x00002084 0 .text + $t 0x00002084 0 .text + swrite 0x000020a4 F 62 .text + $d 0x000020a4 0 .text + $t 0x000020a4 0 .text + $d 0x00002138 0 .text + $d 0x0000213c 0 .text + $t 0x0000213c 0 .text + $d 0x000021c4 0 .text + $t 0x000021c4 0 .text + $d 0x00002228 0 .text + $t 0x00002228 0 .text + PAD.1851 0x00002250 F 52 .text + $d 0x00002250 0 .text + $t 0x00002250 0 .text + $d 0x000027f8 0 .text + $t 0x00002804 0 .text + $d 0x000029a0 0 .text + $d 0x000029a8 0 .text + $t 0x000029a8 0 .text + $d 0x00002d48 0 .text + $d 0x00002d54 0 .text + $t 0x00002d54 0 .text + $d 0x000030e8 0 .text + copystring 0x000030f4 F 38 .text + $d 0x000030f4 0 .text + $t 0x000030f4 0 .text + $d 0x00003420 0 .text + $d 0x00003454 0 .text + $t 0x00003454 0 .text + $d 0x0000347c 0 .text + $d 0x00003480 0 .text + $t 0x00003480 0 .text + $d 0x000034d4 0 .text + $t 0x000034d4 0 .text + $d 0x00003584 0 .text + $t 0x00003584 0 .text + $d 0x00003598 0 .text + $t 0x00003598 0 .text + $d 0x000035ac 0 .text + $d 0x000035b4 0 .text + $t 0x000035b4 0 .text + $d 0x000035dc 0 .text + $d 0x000035e4 0 .text + $t 0x000035e4 0 .text + $d 0x00003620 0 .text + $t 0x00003620 0 .text + $d 0x0000365c 0 .text.__main + $t 0x0000365c 0 .text.__main + $d 0x00003680 0 .text.__main + SYSCON_General_CMD.part.0 0x00003694 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00003694 0 .text.SYSCON_General_CMD.part.0 + $t 0x00003694 0 .text.SYSCON_General_CMD.part.0 + $d 0x00003700 0 .text.SYSCON_General_CMD.part.0 + $d 0x00003708 0 .text.SYSCON_RST_VALUE + $t 0x00003708 0 .text.SYSCON_RST_VALUE + $d 0x00003738 0 .text.SYSCON_RST_VALUE + $d 0x00003754 0 .text.SYSCON_General_CMD + $t 0x00003754 0 .text.SYSCON_General_CMD + $d 0x00003780 0 .text.SYSCON_General_CMD + $d 0x00003784 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00003784 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000037fc 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x0000380c 0 .text.SYSCON_HFOSC_SELECTE + $t 0x0000380c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00003830 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00003834 0 .text.SYSCON_WDT_CMD + $t 0x00003834 0 .text.SYSCON_WDT_CMD + $d 0x00003864 0 .text.SYSCON_WDT_CMD + $d 0x00003870 0 .text.SYSCON_IWDCNT_Reload + $t 0x00003870 0 .text.SYSCON_IWDCNT_Reload + $d 0x00003880 0 .text.SYSCON_IWDCNT_Reload + $d 0x00003884 0 .text.SYSCON_IWDCNT_Config + $t 0x00003884 0 .text.SYSCON_IWDCNT_Config + $d 0x00003894 0 .text.SYSCON_IWDCNT_Config + $d 0x0000389c 0 .text.SYSCON_LVD_Config + $t 0x0000389c 0 .text.SYSCON_LVD_Config + $d 0x000038b4 0 .text.SYSCON_LVD_Config + $d 0x000038bc 0 .text.LVD_Int_Enable + $t 0x000038bc 0 .text.LVD_Int_Enable + $d 0x000038d4 0 .text.LVD_Int_Enable + $d 0x000038d8 0 .text.IWDT_Int_Enable + $t 0x000038d8 0 .text.IWDT_Int_Enable + $d 0x000038f0 0 .text.IWDT_Int_Enable + $d 0x000038f4 0 .text.EXTI_trigger_CMD + $t 0x000038f4 0 .text.EXTI_trigger_CMD + $d 0x00003930 0 .text.EXTI_trigger_CMD + $d 0x00003934 0 .text.EXTI_interrupt_CMD + $t 0x00003934 0 .text.EXTI_interrupt_CMD + $d 0x00003960 0 .text.EXTI_interrupt_CMD + $d 0x00003968 0 .text.GPIO_EXTI_interrupt + $t 0x00003968 0 .text.GPIO_EXTI_interrupt + $d 0x0000396c 0 .text.EXI4_Int_Enable + $t 0x0000396c 0 .text.EXI4_Int_Enable + $d 0x00003978 0 .text.EXI4_Int_Enable + $d 0x0000397c 0 .text.SYSCON_Int_Enable + $t 0x0000397c 0 .text.SYSCON_Int_Enable + $d 0x00003984 0 .text.SYSCON_Int_Enable + $d 0x00003988 0 .text.SYSCON_Software_Reset + $t 0x00003988 0 .text.SYSCON_Software_Reset + $d 0x00003994 0 .text.SYSCON_Software_Reset + $d 0x0000399c 0 .text.SYSCON_INT_Priority + $t 0x0000399c 0 .text.SYSCON_INT_Priority + $d 0x000039b4 0 .text.SYSCON_INT_Priority + $d 0x000039c0 0 .text.Set_INT_Priority + $t 0x000039c0 0 .text.Set_INT_Priority + $d 0x000039ec 0 .text.Set_INT_Priority + $d 0x000039f0 0 .text.GPIO_DeInit + $t 0x000039f0 0 .text.GPIO_DeInit + $d 0x00003a44 0 .text.GPIO_DeInit + $d 0x00003a54 0 .text.GPIO_Init + $t 0x00003a54 0 .text.GPIO_Init + $d 0x00003a66 0 .text.GPIO_Init + $t 0x00003a6e 0 .text.GPIO_Init + $d 0x00003aca 0 .text.GPIO_Init + $t 0x00003ad2 0 .text.GPIO_Init + $d 0x00003b20 0 .text.GPIO_Init + $d 0x00003b34 0 .text.GPIO_PullHigh_Init + $t 0x00003b34 0 .text.GPIO_PullHigh_Init + $d 0x00003b48 0 .text.GPIO_DriveStrength_EN + $t 0x00003b48 0 .text.GPIO_DriveStrength_EN + $d 0x00003b58 0 .text.GPIO_IntGroup_Set + $t 0x00003b58 0 .text.GPIO_IntGroup_Set + $d 0x00003c4c 0 .text.GPIO_IntGroup_Set + $d 0x00003c64 0 .text.GPIOA0_EXI_Init + $t 0x00003c64 0 .text.GPIOA0_EXI_Init + $d 0x00003c70 0 .text.GPIOA0_EXI_Init + $t 0x00003c80 0 .text.GPIOA0_EXI_Init + $d 0x00003d5c 0 .text.GPIOA0_EXI_Init + $d 0x00003d60 0 .text.GPIO_Write_High + $t 0x00003d60 0 .text.GPIO_Write_High + $d 0x00003d68 0 .text.GPIO_Write_Low + $t 0x00003d68 0 .text.GPIO_Write_Low + $d 0x00003d70 0 .text.GPIO_Reverse + $t 0x00003d70 0 .text.GPIO_Reverse + $d 0x00003d86 0 .text.GPIO_Read_Status + $t 0x00003d86 0 .text.GPIO_Read_Status + $d 0x00003d98 0 .text.LPT_Soft_Reset + $t 0x00003d98 0 .text.LPT_Soft_Reset + $d 0x00003da8 0 .text.LPT_Soft_Reset + $d 0x00003dac 0 .text.WWDT_CNT_Load + $t 0x00003dac 0 .text.WWDT_CNT_Load + $d 0x00003db8 0 .text.WWDT_CNT_Load + $d 0x00003dbc 0 .text.BT_DeInit + $t 0x00003dbc 0 .text.BT_DeInit + $d 0x00003dd8 0 .text.BT_Start + $t 0x00003dd8 0 .text.BT_Start + $d 0x00003de0 0 .text.BT_Soft_Reset + $t 0x00003de0 0 .text.BT_Soft_Reset + $d 0x00003dea 0 .text.BT_Configure + $t 0x00003dea 0 .text.BT_Configure + $d 0x00003e02 0 .text.BT_ControlSet_Configure + $t 0x00003e02 0 .text.BT_ControlSet_Configure + $d 0x00003e2e 0 .text.BT_Period_CMP_Write + $t 0x00003e2e 0 .text.BT_Period_CMP_Write + $d 0x00003e34 0 .text.BT_ConfigInterrupt_CMD + $t 0x00003e34 0 .text.BT_ConfigInterrupt_CMD + $d 0x00003e48 0 .text.BT1_INT_ENABLE + $t 0x00003e48 0 .text.BT1_INT_ENABLE + $d 0x00003e54 0 .text.BT1_INT_ENABLE + $d 0x00003e58 0 .text.UART0_DeInit + $t 0x00003e58 0 .text.UART0_DeInit + $d 0x00003e6c 0 .text.UART0_DeInit + $d 0x00003e70 0 .text.UART1_DeInit + $t 0x00003e70 0 .text.UART1_DeInit + $d 0x00003e84 0 .text.UART1_DeInit + $d 0x00003e88 0 .text.UART2_DeInit + $t 0x00003e88 0 .text.UART2_DeInit + $d 0x00003e9c 0 .text.UART2_DeInit + $d 0x00003ea0 0 .text.UART0_Int_Enable + $t 0x00003ea0 0 .text.UART0_Int_Enable + $d 0x00003eb4 0 .text.UART0_Int_Enable + $d 0x00003ebc 0 .text.UART1_Int_Enable + $t 0x00003ebc 0 .text.UART1_Int_Enable + $d 0x00003ed0 0 .text.UART1_Int_Enable + $d 0x00003ed8 0 .text.UART2_Int_Enable + $t 0x00003ed8 0 .text.UART2_Int_Enable + $d 0x00003eec 0 .text.UART2_Int_Enable + $d 0x00003ef4 0 .text.UART_IO_Init + $t 0x00003ef4 0 .text.UART_IO_Init + $d 0x00003fd8 0 .text.UART_IO_Init + $d 0x00003fe0 0 .text.UARTInitRxTxIntEn + $t 0x00003fe0 0 .text.UARTInitRxTxIntEn + $d 0x00003fec 0 .text.UARTInitRxTxIntEn + $d 0x00003ff0 0 .text.UARTTransmit + $t 0x00003ff0 0 .text.UARTTransmit + $d 0x00004010 0 .text.EPT_Stop + $t 0x00004010 0 .text.EPT_Stop + $d 0x00004030 0 .text.EPT_Stop + $d 0x00004038 0 .text.Page_ProgramData + $t 0x00004038 0 .text.Page_ProgramData + $d 0x000040d0 0 .text.Page_ProgramData + $d 0x000040d8 0 .text.ReadDataArry_U8 + $t 0x000040d8 0 .text.ReadDataArry_U8 + $d 0x00004104 0 .text.startup.main + $t 0x00004104 0 .text.startup.main + $d 0x0000418c 0 .text.startup.main + $d 0x000041b4 0 .text.delay_nms + $t 0x000041b4 0 .text.delay_nms + $d 0x000041e0 0 .text.delay_nus + $t 0x000041e0 0 .text.delay_nus + $d 0x00004204 0 .text.BT_CONFIG + $t 0x00004204 0 .text.BT_CONFIG + $d 0x0000425c 0 .text.BT_CONFIG + $d 0x00004264 0 .text.SYSCON_CONFIG + $t 0x00004264 0 .text.SYSCON_CONFIG + $d 0x000042c8 0 .text.APT32F102_init + $t 0x000042c8 0 .text.APT32F102_init + $d 0x00004334 0 .text.APT32F102_init + $d 0x00004348 0 .text.SYSCONIntHandler + $t 0x00004348 0 .text.SYSCONIntHandler + $d 0x00004434 0 .text.SYSCONIntHandler + $d 0x00004438 0 .text.IFCIntHandler + $t 0x00004438 0 .text.IFCIntHandler + $d 0x0000449c 0 .text.IFCIntHandler + $d 0x000044a0 0 .text.ADCIntHandler + $t 0x000044a0 0 .text.ADCIntHandler + $d 0x00004504 0 .text.ADCIntHandler + $d 0x00004508 0 .text.EPT0IntHandler + $t 0x00004508 0 .text.EPT0IntHandler + $d 0x000046a8 0 .text.EPT0IntHandler + $d 0x000046b4 0 .text.WWDTHandler + $t 0x000046b4 0 .text.WWDTHandler + $d 0x000046e4 0 .text.WWDTHandler + $d 0x000046e8 0 .text.GPT0IntHandler + $t 0x000046e8 0 .text.GPT0IntHandler + $d 0x00004764 0 .text.GPT0IntHandler + $d 0x00004768 0 .text.RTCIntHandler + $t 0x00004768 0 .text.RTCIntHandler + $d 0x000047d0 0 .text.RTCIntHandler + $d 0x000047d8 0 .text.UART0IntHandler + $t 0x000047d8 0 .text.UART0IntHandler + $d 0x00004834 0 .text.UART0IntHandler + $d 0x00004838 0 .text.UART1IntHandler + $t 0x00004838 0 .text.UART1IntHandler + $d 0x000048b8 0 .text.UART1IntHandler + $d 0x000048cc 0 .text.UART2IntHandler + $t 0x000048cc 0 .text.UART2IntHandler + $d 0x00004928 0 .text.UART2IntHandler + $d 0x0000492c 0 .text.SPI0IntHandler + $t 0x0000492c 0 .text.SPI0IntHandler + $d 0x00004a10 0 .text.SPI0IntHandler + $d 0x00004a14 0 .text.SIO0IntHandler + $t 0x00004a14 0 .text.SIO0IntHandler + $d 0x00004a64 0 .text.SIO0IntHandler + $d 0x00004a68 0 .text.EXI0IntHandler + $t 0x00004a68 0 .text.EXI0IntHandler + $d 0x00004a94 0 .text.EXI0IntHandler + $d 0x00004a98 0 .text.EXI1IntHandler + $t 0x00004a98 0 .text.EXI1IntHandler + $d 0x00004ac4 0 .text.EXI1IntHandler + $d 0x00004ac8 0 .text.EXI2to3IntHandler + $t 0x00004ac8 0 .text.EXI2to3IntHandler + $d 0x00004b0c 0 .text.EXI2to3IntHandler + $d 0x00004b10 0 .text.EXI4to9IntHandler + $t 0x00004b10 0 .text.EXI4to9IntHandler + $d 0x00004b2c 0 .text.EXI4to9IntHandler + $d 0x00004b30 0 .text.EXI10to15IntHandler + $t 0x00004b30 0 .text.EXI10to15IntHandler + $d 0x00004b98 0 .text.EXI10to15IntHandler + $d 0x00004b9c 0 .text.LPTIntHandler + $t 0x00004b9c 0 .text.LPTIntHandler + $d 0x00004bcc 0 .text.LPTIntHandler + $d 0x00004bd0 0 .text.BT0IntHandler + $t 0x00004bd0 0 .text.BT0IntHandler + $d 0x00004c18 0 .text.BT0IntHandler + $d 0x00004c1c 0 .text.BT1IntHandler + $t 0x00004c1c 0 .text.BT1IntHandler + $d 0x00004c84 0 .text.BT1IntHandler + $d 0x00004c8c 0 .text.PriviledgeVioHandler + $t 0x00004c8c 0 .text.PriviledgeVioHandler + $d 0x00004c8e 0 .text.PendTrapHandler + $t 0x00004c8e 0 .text.PendTrapHandler + $d 0x00004c96 0 .text.Trap3Handler + $t 0x00004c96 0 .text.Trap3Handler + $d 0x00004c9e 0 .text.Trap2Handler + $t 0x00004c9e 0 .text.Trap2Handler + $d 0x00004ca6 0 .text.Trap1Handler + $t 0x00004ca6 0 .text.Trap1Handler + $d 0x00004cae 0 .text.Trap0Handler + $t 0x00004cae 0 .text.Trap0Handler + $d 0x00004cb6 0 .text.UnrecExecpHandler + $t 0x00004cb6 0 .text.UnrecExecpHandler + $d 0x00004cbe 0 .text.BreakPointHandler + $t 0x00004cbe 0 .text.BreakPointHandler + $d 0x00004cc6 0 .text.AccessErrHandler + $t 0x00004cc6 0 .text.AccessErrHandler + $d 0x00004cce 0 .text.IllegalInstrHandler + $t 0x00004cce 0 .text.IllegalInstrHandler + $d 0x00004cd6 0 .text.MisalignedHandler + $t 0x00004cd6 0 .text.MisalignedHandler + $d 0x00004cde 0 .text.CNTAIntHandler + $t 0x00004cde 0 .text.CNTAIntHandler + $d 0x00004ce6 0 .text.I2CIntHandler + $t 0x00004ce6 0 .text.I2CIntHandler + $d 0x00004cf0 0 .text.__divsi3 + $t 0x00004cf0 0 .text.__divsi3 + $d 0x00004d10 0 .text.__divsi3 + $d 0x00004d14 0 .text.__udivsi3 + $t 0x00004d14 0 .text.__udivsi3 + $d 0x00004d34 0 .text.__udivsi3 + $d 0x00004d38 0 .text.__modsi3 + $t 0x00004d38 0 .text.__modsi3 + $d 0x00004d58 0 .text.__modsi3 + $d 0x00004d5c 0 .text.__umodsi3 + $t 0x00004d5c 0 .text.__umodsi3 + $d 0x00004d7c 0 .text.__umodsi3 + $d 0x00004d80 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00004d80 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00004d86 0 .text.CK_CPU_DisAllNormalIrq + $t 0x00004d86 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00004d8c 0 .text.UARTx_Init + $t 0x00004d8c 0 .text.UARTx_Init + $d 0x00004ee0 0 .text.UARTx_Init + $d 0x00004f18 0 .text.UART0_RecvINT_Processing + $t 0x00004f18 0 .text.UART0_RecvINT_Processing + $d 0x00004f40 0 .text.UART0_RecvINT_Processing + $d 0x00004f4c 0 .text.UART1_RecvINT_Processing + $t 0x00004f4c 0 .text.UART1_RecvINT_Processing + $d 0x00004f74 0 .text.UART1_RecvINT_Processing + $d 0x00004f80 0 .text.UART2_RecvINT_Processing + $t 0x00004f80 0 .text.UART2_RecvINT_Processing + $d 0x00004fa8 0 .text.UART2_RecvINT_Processing + $d 0x00004fb4 0 .text.MCU485_SendData + $t 0x00004fb4 0 .text.MCU485_SendData + $d 0x00005038 0 .text.MCU485_SendData + $d 0x00005044 0 .text.BUS485_Send + $t 0x00005044 0 .text.BUS485_Send + $d 0x000050f0 0 .text.BUS485_Send + $d 0x00005108 0 .text.Set_GroupSend + $t 0x00005108 0 .text.Set_GroupSend + $d 0x00005164 0 .text.Set_GroupSend + $d 0x0000516c 0 .text.Clear_SendFlag + $t 0x0000516c 0 .text.Clear_SendFlag + $d 0x00005178 0 .text.Clear_SendFlag + $d 0x0000517c 0 .text.BusIdle_Task + $t 0x0000517c 0 .text.BusIdle_Task + $d 0x000051b4 0 .text.BusIdle_Task + $d 0x000051bc 0 .text.BusBusy_Task + $t 0x000051bc 0 .text.BusBusy_Task + $d 0x0000520c 0 .text.BusBusy_Task + $d 0x00005218 0 .text.Dbg_Println + $t 0x00005218 0 .text.Dbg_Println + $d 0x0000528c 0 .text.Dbg_Println + $d 0x000052a0 0 .text.MultSend_Task + $t 0x000052a0 0 .text.MultSend_Task + $d 0x0000532c 0 .text.MultSend_Task + $d 0x00005340 0 .text.BUS485Send_Task + $t 0x00005340 0 .text.BUS485Send_Task + $d 0x0000538c 0 .text.BUS485Send_Task + $d 0x000053a8 0 .text.Dbg_Print_Buff + $t 0x000053a8 0 .text.Dbg_Print_Buff + $d 0x00005418 0 .text.Dbg_Print_Buff + $d 0x00005430 0 .text.Dbg_BT_Println + $t 0x00005430 0 .text.Dbg_BT_Println + $d 0x00005464 0 .text.Dbg_BT_Println + $d 0x0000546c 0 .text.DIP_GetSwitchState + $t 0x0000546c 0 .text.DIP_GetSwitchState + $d 0x0000549c 0 .text.DIP_GetSwitchState + $d 0x000054a0 0 .text.DIP_Switch_Init + $t 0x000054a0 0 .text.DIP_Switch_Init + $d 0x00005528 0 .text.DIP_Switch_Init + $d 0x00005534 0 .text.EEPROM_CheckSum + $t 0x00005534 0 .text.EEPROM_CheckSum + $d 0x0000554c 0 .text.EEOROM_ENERGY_ReadSet + $t 0x0000554c 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00005664 0 .text.EEOROM_ENERGY_ReadSet + $d 0x0000569c 0 .text.EEOROM_ENERGY_WriteSet + $t 0x0000569c 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000056dc 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000056e0 0 .text.EEPROM_ENERGY_Validate + $t 0x000056e0 0 .text.EEPROM_ENERGY_Validate + $d 0x00005804 0 .text.EEPROM_ENERGY_Validate + $d 0x0000582c 0 .text.EEPROM_Default_ENERGY + $t 0x0000582c 0 .text.EEPROM_Default_ENERGY + $d 0x00005910 0 .text.EEPROM_Default_ENERGY + $d 0x00005954 0 .text.EEPROM_ReadTotalEng + $t 0x00005954 0 .text.EEPROM_ReadTotalEng + $d 0x000059f8 0 .text.EEPROM_ReadTotalEng + $d 0x00005a0c 0 .text.EEPROM_WriteTotalEng + $t 0x00005a0c 0 .text.EEPROM_WriteTotalEng + $d 0x00005aac 0 .text.EEPROM_WriteTotalEng + $d 0x00005ab8 0 .text.EEPROM_ReadMCUDevInfo + $t 0x00005ab8 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00005b6c 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00005b8c 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00005b8c 0 .text.EEPROM_WriteMCUDevInfo + $d 0x00005bcc 0 .text.EEPROM_Default_MCUDevInfo + $t 0x00005bcc 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00005c00 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00005c04 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x00005c04 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00005c58 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00005c5c 0 .text.EEPROM_Init + $t 0x00005c5c 0 .text.EEPROM_Init + $d 0x00005d44 0 .text.EEPROM_Init + BT_Uart_Packing.part.2 0x00005d88 F 60 .text.BT_Uart_Packing.part.2 + $d 0x00005d88 0 .text.BT_Uart_Packing.part.2 + $t 0x00005d88 0 .text.BT_Uart_Packing.part.2 + $d 0x00005dbc 0 .text.BT_Uart_Packing.part.2 + $d 0x00005dc4 0 .text.BLV_DetEnergy_Init + $t 0x00005dc4 0 .text.BLV_DetEnergy_Init + $d 0x00005de8 0 .text.BLV_DetEnergy_Init + $d 0x00005df4 0 .text.BLV_DetEnergy_Default + $t 0x00005df4 0 .text.BLV_DetEnergy_Default + $d 0x00005eac 0 .text.BLV_DetEnergy_Default + $d 0x00005ec4 0 .text.HLW8110_CheckSum + $t 0x00005ec4 0 .text.HLW8110_CheckSum + $d 0x00005edc 0 .text.HLW8110_Convert_CurrentRegA_Value + $t 0x00005edc 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00005f54 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00005f68 0 .text.HLW8110_Convert_VoltageReg_Value + $t 0x00005f68 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00005fd0 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00005fe4 0 .text.HLW8110_Convert_PowerReg_Value + $t 0x00005fe4 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00006058 0 .text.HLW8110_Convert_PowerReg_Value + $d 0x00006064 0 .text.HLW8110_Convert_EnergyReg_Value + $t 0x00006064 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00006120 0 .text.HLW8110_Convert_EnergyReg_Value + $d 0x00006134 0 .text.HLW8110_RecvData_Processing + $t 0x00006134 0 .text.HLW8110_RecvData_Processing + $d 0x000063b0 0 .text.HLW8110_RecvData_Processing + $d 0x000063dc 0 .text.BLV_Energy_PassiveRep_Packing + $t 0x000063dc 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x000064c0 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x000064c8 0 .text.BLV_Energy_SetTime_Packing + $t 0x000064c8 0 .text.BLV_Energy_SetTime_Packing + $d 0x0000655c 0 .text.BLV_Energy_SetTime_Packing + $d 0x00006568 0 .text.BLV_Energy_QueryVersion_Packing + $t 0x00006568 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x000065f8 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00006600 0 .text.SetCalibFactor_Switch + $t 0x00006600 0 .text.SetCalibFactor_Switch + $d 0x0000660c 0 .text.SetCalibFactor_Switch + $t 0x00006612 0 .text.SetCalibFactor_Switch + $d 0x0000662c 0 .text.SetCalibFactor_Switch + $d 0x00006630 0 .text.BLV_Energy_SetCalibFactor + $t 0x00006630 0 .text.BLV_Energy_SetCalibFactor + $d 0x000066b0 0 .text.BLV_Energy_SetCalibFactor + $d 0x000066b4 0 .text.BLV_Energy_SetCalibFactor_2 + $t 0x000066b4 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x0000672c 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00006730 0 .text.HLW_485Recv_Processing + $t 0x00006730 0 .text.HLW_485Recv_Processing + $d 0x00006868 0 .text.HLW_485Recv_Processing + $d 0x0000689c 0 .text.BT_Recv_Processing + $t 0x0000689c 0 .text.BT_Recv_Processing + $d 0x00006990 0 .text.BT_Recv_Processing + $d 0x000069b4 0 .text.Boot_Function_Init + $t 0x000069b4 0 .text.Boot_Function_Init + $d 0x00006a44 0 .text.Boot_Function_Init + Fram_SDA_GPIO.part.0 0x00006a74 F 36 .text.Fram_SDA_GPIO.part.0 + $d 0x00006a74 0 .text.Fram_SDA_GPIO.part.0 + $t 0x00006a74 0 .text.Fram_SDA_GPIO.part.0 + $d 0x00006a90 0 .text.Fram_SDA_GPIO.part.0 + $d 0x00006a98 0 .text.Bsp_I2C_Fram_Init + $t 0x00006a98 0 .text.Bsp_I2C_Fram_Init + $d 0x00006ab4 0 .text.Bsp_I2C_Fram_Init + $d 0x00006abc 0 .text.Fram_SDA_GPIO + $t 0x00006abc 0 .text.Fram_SDA_GPIO + $d 0x00006af4 0 .text.Fram_SDA_GPIO + $d 0x00006afc 0 .text.IIC_Wait + $t 0x00006afc 0 .text.IIC_Wait + $d 0x00006b30 0 .text.IIC_Start + $t 0x00006b30 0 .text.IIC_Start + $d 0x00006b68 0 .text.IIC_Start + $d 0x00006b70 0 .text.IIC_Stop + $t 0x00006b70 0 .text.IIC_Stop + $d 0x00006ba4 0 .text.IIC_Stop + $d 0x00006bac 0 .text.IIC_NoACK + $t 0x00006bac 0 .text.IIC_NoACK + $d 0x00006be0 0 .text.IIC_NoACK + $d 0x00006be8 0 .text.IIC_Wait_ACK + $t 0x00006be8 0 .text.IIC_Wait_ACK + $d 0x00006c34 0 .text.IIC_Wait_ACK + $d 0x00006c40 0 .text.IIC_Send_Byte + $t 0x00006c40 0 .text.IIC_Send_Byte + $d 0x00006c90 0 .text.IIC_Send_Byte + $d 0x00006c98 0 .text.IIC_Read_Byte + $t 0x00006c98 0 .text.IIC_Read_Byte + $d 0x00006ce8 0 .text.IIC_Read_Byte + $d 0x00006cf0 0 .text.Fram_I2C_WriteByte + $t 0x00006cf0 0 .text.Fram_I2C_WriteByte + $d 0x00006d40 0 .text.Fram_I2C_ReadByte + $t 0x00006d40 0 .text.Fram_I2C_ReadByte + $d 0x00006da4 0 .text.TK_Sampling_prog + $t 0x00006da4 0 .text.TK_Sampling_prog + $d 0x00006dec 0 .text.TK_Sampling_prog + $d 0x00006dfc 0 .text.TKEYIntHandler + $t 0x00006dfc 0 .text.TKEYIntHandler + $d 0x00006e78 0 .text.TKEYIntHandler + $d 0x00006e84 0 .text.get_key_number + $t 0x00006e84 0 .text.get_key_number + $d 0x00006ea8 0 .text.get_key_number + $d 0x00006eac 0 .text.TK_Scan_Start + $t 0x00006eac 0 .text.TK_Scan_Start + $d 0x00006ec4 0 .text.TK_Scan_Start + $d 0x00006ecc 0 .text.TK_Keymap_prog + $t 0x00006ecc 0 .text.TK_Keymap_prog + $d 0x00007014 0 .text.TK_Keymap_prog + $d 0x0000704c 0 .text.TK_overflow_predict + $t 0x0000704c 0 .text.TK_overflow_predict + $d 0x00007134 0 .text.TK_overflow_predict + $d 0x00007168 0 .text.TK_Baseline_tracking + $t 0x00007168 0 .text.TK_Baseline_tracking + $d 0x0000730c 0 .text.TK_Baseline_tracking + $d 0x00007338 0 .text.TK_result_prog + $t 0x00007338 0 .text.TK_result_prog + $d 0x00007378 0 .text.TK_result_prog + $d 0x0000738c 0 .text.CORETHandler + $t 0x0000738c 0 .text.CORETHandler + $d 0x000073ec 0 .text.CORETHandler + $d 0x00007404 0 .text.std_clk_calib + $t 0x00007404 0 .text.std_clk_calib + $d 0x0000764c 0 .text.std_clk_calib + __func__.6753 0x00007688 O 23 .rodata + bp 0x000076a0 O 16 .rodata + dp_l 0x000076b0 O 16 .rodata + dp_h 0x000076c0 O 16 .rodata + blanks.1847 0x000077f4 O 16 .rodata + zeroes.1848 0x00007804 O 16 .rodata + CSWTCH.1 0x00007814 O 576 .rodata + NUM.6268 0x200000cc O 1 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunssfsi 0x00000d10 F 46 .text + __fixunsdfsi 0x00000d40 F 56 .text + __addsf3 0x00000ec4 F 42 .text + __subsf3 0x00000ef0 F 50 .text + __mulsf3 0x00000f24 F 280 .text + __divsf3 0x0000103c F 188 .text + __nesf2 0x000010f8 F 54 .text + __gesf2 0x00001130 F 56 .text + __floatsisf 0x00001168 F 100 .text + __fixsfsi 0x000011cc F 84 .text + __extendsfdf2 0x00001220 F 36 .text + __adddf3 0x00001518 F 46 .text + __subdf3 0x00001548 F 54 .text + __muldf3 0x00001580 F 564 .text + __divdf3 0x000017b4 F 340 .text + __gtdf2 0x00001908 F 60 .text + __gedf2 0x00001944 F 60 .text + __ledf2 0x00001980 F 58 .text + __floatsidf 0x000019bc F 112 .text + __fixdfsi 0x00001a2c F 112 .text + __make_dp 0x00001a9c F 40 .text + __truncdfsf2 0x00001ac4 F 48 .text + __floatunsidf 0x00001af4 F 84 .text + __muldi3 0x00001b48 F 68 .text + __clzsi2 0x00001b8c F 64 .text + __pack_f 0x00001bcc F 184 .text + __unpack_f 0x00001c84 F 132 .text + __fpcmp_parts_f 0x00001d08 F 120 .text + __make_fp 0x00001d80 F 22 .text + __pack_d 0x00001d98 F 412 .text + __unpack_d 0x00001f34 F 196 .text + __fpcmp_parts_d 0x00001ff8 F 140 .text + __cskyvprintfsnprintf 0x00002084 F 32 .text + __cskyvprintfvsnprintf 0x000020e2 F 90 .text + __memset_fast 0x0000213c w F 136 .text + memset 0x0000213c w F 136 .text + __memcpy_fast 0x000021c4 w F 100 .text + memcpy 0x000021c4 w F 100 .text + __GI_strncmp 0x00002228 F 38 .text + strncmp 0x00002228 w F 38 .text + __v2_printf 0x00002284 F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00002284 F 1828 .text + __udivdi3 0x000029a8 F 940 .text + __umoddi3 0x00002d54 F 928 .text + __GI___dtostr 0x0000311a F 826 .text + __dtostr 0x0000311a F 826 .text + __isnan 0x00003454 F 44 .text + __strlen_fast 0x00003480 w F 82 .text + strlen 0x00003480 w F 82 .text + __strcpy_fast 0x000034d4 w F 176 .text + strcpy 0x000034d4 w F 176 .text + __GI_strchr 0x00003584 F 18 .text + strchr 0x00003584 w F 18 .text + __GI_strerror 0x00003598 F 28 .text + strerror 0x00003598 F 28 .text + __isinf 0x000035b4 F 48 .text + __eqdf2 0x000035e4 F 58 .text + __ltdf2 0x00003620 F 58 .text + __main 0x0000365c F 56 .text.__main + SYSCON_RST_VALUE 0x00003708 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00003754 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00003784 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x0000380c F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00003834 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00003870 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00003884 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x0000389c F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x000038bc F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x000038d8 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x000038f4 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00003934 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00003968 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x0000396c F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x0000397c F 12 .text.SYSCON_Int_Enable + SYSCON_Software_Reset 0x00003988 F 20 .text.SYSCON_Software_Reset + SYSCON_INT_Priority 0x0000399c F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000039c0 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x000039f0 F 100 .text.GPIO_DeInit + GPIO_Init 0x00003a54 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00003b34 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00003b48 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00003b58 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00003c64 F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x00003d60 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00003d68 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00003d70 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00003d86 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x00003d98 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00003dac F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00003dbc F 28 .text.BT_DeInit + BT_Start 0x00003dd8 F 8 .text.BT_Start + BT_Soft_Reset 0x00003de0 F 10 .text.BT_Soft_Reset + BT_Configure 0x00003dea F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00003e02 F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00003e2e F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00003e34 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00003e48 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00003e58 F 24 .text.UART0_DeInit + UART1_DeInit 0x00003e70 F 24 .text.UART1_DeInit + UART2_DeInit 0x00003e88 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00003ea0 F 28 .text.UART0_Int_Enable + UART1_Int_Enable 0x00003ebc F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00003ed8 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00003ef4 F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00003fe0 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00003ff0 F 30 .text.UARTTransmit + EPT_Stop 0x00004010 F 40 .text.EPT_Stop + Page_ProgramData 0x00004038 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x000040d8 F 42 .text.ReadDataArry_U8 + main 0x00004104 F 176 .text.startup.main + delay_nms 0x000041b4 F 44 .text.delay_nms + delay_nus 0x000041e0 F 34 .text.delay_nus + BT_CONFIG 0x00004204 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00004264 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x000042c8 F 128 .text.APT32F102_init + SYSCONIntHandler 0x00004348 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00004438 F 104 .text.IFCIntHandler + ADCIntHandler 0x000044a0 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00004508 F 428 .text.EPT0IntHandler + WWDTHandler 0x000046b4 F 52 .text.WWDTHandler + GPT0IntHandler 0x000046e8 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00004768 F 112 .text.RTCIntHandler + UART0IntHandler 0x000047d8 F 96 .text.UART0IntHandler + UART1IntHandler 0x00004838 F 148 .text.UART1IntHandler + UART2IntHandler 0x000048cc F 96 .text.UART2IntHandler + SPI0IntHandler 0x0000492c F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00004a14 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00004a68 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00004a98 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00004ac8 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00004b10 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00004b30 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x00004b9c F 52 .text.LPTIntHandler + BT0IntHandler 0x00004bd0 F 76 .text.BT0IntHandler + BT1IntHandler 0x00004c1c F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00004c8c F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00004c8e F 8 .text.PendTrapHandler + Trap3Handler 0x00004c96 F 8 .text.Trap3Handler + Trap2Handler 0x00004c9e F 8 .text.Trap2Handler + Trap1Handler 0x00004ca6 F 8 .text.Trap1Handler + Trap0Handler 0x00004cae F 8 .text.Trap0Handler + UnrecExecpHandler 0x00004cb6 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00004cbe F 8 .text.BreakPointHandler + AccessErrHandler 0x00004cc6 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00004cce F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00004cd6 F 8 .text.MisalignedHandler + CNTAIntHandler 0x00004cde F 8 .text.CNTAIntHandler + I2CIntHandler 0x00004ce6 F 8 .text.I2CIntHandler + __divsi3 0x00004cf0 F 36 .text.__divsi3 + __udivsi3 0x00004d14 F 36 .text.__udivsi3 + __modsi3 0x00004d38 F 36 .text.__modsi3 + __umodsi3 0x00004d5c F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00004d80 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x00004d86 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00004d8c F 396 .text.UARTx_Init + UART0_RecvINT_Processing 0x00004f18 F 52 .text.UART0_RecvINT_Processing + UART1_RecvINT_Processing 0x00004f4c F 52 .text.UART1_RecvINT_Processing + UART2_RecvINT_Processing 0x00004f80 F 52 .text.UART2_RecvINT_Processing + MCU485_SendData 0x00004fb4 F 144 .text.MCU485_SendData + BUS485_Send 0x00005044 F 196 .text.BUS485_Send + Set_GroupSend 0x00005108 F 100 .text.Set_GroupSend + Clear_SendFlag 0x0000516c F 16 .text.Clear_SendFlag + BusIdle_Task 0x0000517c F 64 .text.BusIdle_Task + BusBusy_Task 0x000051bc F 92 .text.BusBusy_Task + Dbg_Println 0x00005218 F 136 .text.Dbg_Println + MultSend_Task 0x000052a0 F 160 .text.MultSend_Task + BUS485Send_Task 0x00005340 F 104 .text.BUS485Send_Task + Dbg_Print_Buff 0x000053a8 F 136 .text.Dbg_Print_Buff + Dbg_BT_Println 0x00005430 F 60 .text.Dbg_BT_Println + DIP_GetSwitchState 0x0000546c F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x000054a0 F 148 .text.DIP_Switch_Init + EEPROM_CheckSum 0x00005534 F 22 .text.EEPROM_CheckSum + EEOROM_ENERGY_ReadSet 0x0000554c F 336 .text.EEOROM_ENERGY_ReadSet + EEOROM_ENERGY_WriteSet 0x0000569c F 68 .text.EEOROM_ENERGY_WriteSet + EEPROM_ENERGY_Validate 0x000056e0 F 332 .text.EEPROM_ENERGY_Validate + EEPROM_Default_ENERGY 0x0000582c F 296 .text.EEPROM_Default_ENERGY + EEPROM_ReadTotalEng 0x00005954 F 184 .text.EEPROM_ReadTotalEng + EEPROM_WriteTotalEng 0x00005a0c F 172 .text.EEPROM_WriteTotalEng + EEPROM_ReadMCUDevInfo 0x00005ab8 F 212 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00005b8c F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x00005bcc F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x00005c04 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00005c5c F 300 .text.EEPROM_Init + BLV_DetEnergy_Init 0x00005dc4 F 48 .text.BLV_DetEnergy_Init + BLV_DetEnergy_Default 0x00005df4 F 208 .text.BLV_DetEnergy_Default + HLW8110_CheckSum 0x00005ec4 F 24 .text.HLW8110_CheckSum + HLW8110_Convert_CurrentRegA_Value 0x00005edc F 140 .text.HLW8110_Convert_CurrentRegA_Value + HLW8110_Convert_VoltageReg_Value 0x00005f68 F 124 .text.HLW8110_Convert_VoltageReg_Value + HLW8110_Convert_PowerReg_Value 0x00005fe4 F 128 .text.HLW8110_Convert_PowerReg_Value + HLW8110_Convert_EnergyReg_Value 0x00006064 F 208 .text.HLW8110_Convert_EnergyReg_Value + HLW8110_RecvData_Processing 0x00006134 F 680 .text.HLW8110_RecvData_Processing + BLV_Energy_PassiveRep_Packing 0x000063dc F 236 .text.BLV_Energy_PassiveRep_Packing + BLV_Energy_SetTime_Packing 0x000064c8 F 160 .text.BLV_Energy_SetTime_Packing + BLV_Energy_QueryVersion_Packing 0x00006568 F 152 .text.BLV_Energy_QueryVersion_Packing + SetCalibFactor_Switch 0x00006600 F 48 .text.SetCalibFactor_Switch + BLV_Energy_SetCalibFactor 0x00006630 F 132 .text.BLV_Energy_SetCalibFactor + BLV_Energy_SetCalibFactor_2 0x000066b4 F 124 .text.BLV_Energy_SetCalibFactor_2 + HLW_485Recv_Processing 0x00006730 F 364 .text.HLW_485Recv_Processing + BT_Recv_Processing 0x0000689c F 280 .text.BT_Recv_Processing + Boot_Function_Init 0x000069b4 F 192 .text.Boot_Function_Init + Bsp_I2C_Fram_Init 0x00006a98 F 36 .text.Bsp_I2C_Fram_Init + Fram_SDA_GPIO 0x00006abc F 64 .text.Fram_SDA_GPIO + IIC_Wait 0x00006afc F 50 .text.IIC_Wait + IIC_Start 0x00006b30 F 64 .text.IIC_Start + IIC_Stop 0x00006b70 F 60 .text.IIC_Stop + IIC_NoACK 0x00006bac F 60 .text.IIC_NoACK + IIC_Wait_ACK 0x00006be8 F 88 .text.IIC_Wait_ACK + IIC_Send_Byte 0x00006c40 F 88 .text.IIC_Send_Byte + IIC_Read_Byte 0x00006c98 F 88 .text.IIC_Read_Byte + Fram_I2C_WriteByte 0x00006cf0 F 80 .text.Fram_I2C_WriteByte + Fram_I2C_ReadByte 0x00006d40 F 98 .text.Fram_I2C_ReadByte + TK_Sampling_prog 0x00006da4 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00006dfc F 136 .text.TKEYIntHandler + get_key_number 0x00006e84 F 40 .text.get_key_number + TK_Scan_Start 0x00006eac F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00006ecc F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000704c F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00007168 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00007338 F 84 .text.TK_result_prog + CORETHandler 0x0000738c F 120 .text.CORETHandler + std_clk_calib 0x00007404 F 644 .text.std_clk_calib + __thenan_sf 0x000076d0 O 16 .rodata + __thenan_df 0x000076e0 O 20 .rodata + __clz_tab 0x000076f4 O 256 .rodata + _end_rodata 0x00008da4 0 .rodata + _start_data 0x20000000 0 .data + data 0x20000000 O 1 .data + addr 0x20000002 O 2 .data + HWD 0x20000004 O 4 .data + CRC 0x20000008 O 4 .data + BT1 0x2000000c O 4 .data + BT0 0x20000010 O 4 .data + WWDT 0x20000014 O 4 .data + LPT 0x20000018 O 4 .data + RTC 0x2000001c O 4 .data + ETCB 0x20000020 O 4 .data + EPT0 0x20000024 O 4 .data + GPT0 0x20000028 O 4 .data + CA0 0x2000002c O 4 .data + SIO0 0x20000030 O 4 .data + I2C0 0x20000034 O 4 .data + SPI0 0x20000038 O 4 .data + UART2 0x2000003c O 4 .data + UART1 0x20000040 O 4 .data + UART0 0x20000044 O 4 .data + GPIOGRP 0x20000048 O 4 .data + GPIOB0 0x2000004c O 4 .data + GPIOA0 0x20000050 O 4 .data + ADC0 0x20000054 O 4 .data + TKEYBUF 0x20000058 O 4 .data + TKEY 0x2000005c O 4 .data + SYSCON 0x20000060 O 4 .data + IFC 0x20000064 O 4 .data + CK801 0x20000068 O 4 .data + Dbg_Switch 0x2000006c O 4 .data + s_tkey 0x20000070 O 4 .data + samp_setover_f 0x20000074 O 1 .data + tk_overflow_en 0x20000075 O 1 .data + tk_div 0x20000076 O 34 .data + neg_build_bounce 0x20000098 O 1 .data + pos_build_bounce 0x20000099 O 1 .data + tk_scan_para0 0x2000009c O 4 .data + scan_step_temp 0x200000a0 O 1 .data + _end_data 0x200000a4 0 .data + Project_Boot_Support 0x200000a4 O 32 .textcsky.VinFlash + YYW_tick 0x200000c4 O 4 .bss + _bss_start 0x200000c4 0 .bss + Ret 0x200000c8 O 1 .bss + YYW_Flag 0x200000c9 O 1 .bss + SysTick_100us 0x200000d0 O 4 .bss + SysTick_1ms 0x200000d4 O 4 .bss + RS485_Comming 0x200000d8 O 4 .bss + RS485_Comm_Flag 0x200000dc O 4 .bss + RS485_Comm_Start 0x200000e0 O 4 .bss + RS485_Comm_End 0x200000e4 O 4 .bss + SysTick_Now 0x200000e8 O 4 .bss + SysTick_Last 0x200000ec O 4 .bss + SysTick_Diff 0x200000f0 O 4 .bss + Dbg_Buffer 0x200000f4 O 128 .bss + Press_debounce_data 0x20000174 O 1 .bss + TK_Lowpower_mode 0x20000175 O 1 .bss + TK_Lowpower_level 0x20000176 O 1 .bss + TK_longpress_time 0x20000178 O 4 .bss + Release_debounce_data 0x2000017c O 1 .bss + Key_mode 0x2000017d O 1 .bss + TK_icon 0x2000017e O 34 .bss + MultiTimes_Filter 0x200001a0 O 1 .bss + Base_Speed 0x200001a1 O 1 .bss + TK_IO_ENABLE 0x200001a4 O 4 .bss + Valid_Key_Num 0x200001a8 O 1 .bss + TK_senprd 0x200001aa O 34 .bss + TK_Wakeup_level 0x200001cc O 1 .bss + TK_Triggerlevel 0x200001ce O 34 .bss + TK_EC_LEVEL 0x200001f0 O 2 .bss + TK_FVR_LEVEL 0x200001f2 O 2 .bss + TK_BaseCnt 0x200001f4 O 4 .bss + TK_PSEL_MODE 0x200001f8 O 2 .bss + R_CMPB_BUF 0x200001fc O 4 .bss + R_CMPA_BUF 0x20000200 O 4 .bss + R_SIORX_buf 0x20000204 O 40 .bss + g_uart 0x2000022c O 148 .bss + g_uart0 0x200002c0 O 148 .bss + g_uart1 0x20000354 O 148 .bss + m_send 0x200003e8 O 136 .bss + g_Dip 0x20000470 O 20 .bss + e_save 0x20000484 O 44 .bss + g_mcu_dev 0x200004b0 O 37 .bss + eng_info 0x200004d8 O 12 .bss + u_det 0x200004e4 O 72 .bss + g_CalFactor 0x2000052c O 60 .bss + g_Eng 0x20000568 O 120 .bss + g_boot 0x200005e0 O 316 .bss + g_app_feature 0x2000071c O 256 .bss + baseline_data0 0x2000081c O 34 .bss + TK_Postive_build2 0x2000083e O 17 .bss + Key_Map1 0x20000850 O 4 .bss + offset_data2_abs 0x20000854 O 34 .bss + scan_f 0x20000876 O 1 .bss + offset_data1_abs 0x20000878 O 34 .bss + Release_debounce0 0x2000089a O 17 .bss + Key_Map0 0x200008ac O 4 .bss + bsae_over_f 0x200008b0 O 1 .bss + scan_cnt 0x200008b2 O 2 .bss + Press_debounce0 0x200008b4 O 17 .bss + offset_data0 0x200008c6 O 34 .bss + sampling_data1 0x200008e8 O 34 .bss + Key_Map2 0x2000090c O 4 .bss + Release_debounce1 0x20000910 O 17 .bss + tk_overflow_f 0x20000921 O 1 .bss + TK_Negtive_build2 0x20000922 O 17 .bss + base_update_f 0x20000933 O 1 .bss + TK_Postive_build1 0x20000934 O 17 .bss + time_cnt 0x20000948 O 4 .bss + lpt_scan_pend_cnt 0x2000094c O 2 .bss + TK_track_cnt 0x2000094e O 1 .bss + Key_Map 0x20000950 O 4 .bss + baseline_data1 0x20000954 O 34 .bss + TK_Postive_build0 0x20000976 O 17 .bss + sampling_data2 0x20000988 O 34 .bss + offset_data1 0x200009aa O 34 .bss + TK_ovrdect_cnt 0x200009cc O 1 .bss + Press_debounce2 0x200009cd O 17 .bss + TK_Negtive_build1 0x200009de O 17 .bss + tk_num 0x200009ef O 1 .bss + TK_Negtive_build0 0x200009f0 O 17 .bss + Press_debounce1 0x20000a01 O 17 .bss + Release_debounce2 0x20000a12 O 17 .bss + r_Key_Map_Temp 0x20000a24 O 4 .bss + tk_seque 0x20000a28 O 17 .bss + scan_step 0x20000a39 O 1 .bss + baseline_data2 0x20000a3a O 34 .bss + tk_sampling_max 0x20000a5c O 34 .bss + offset_data0_abs 0x20000a7e O 34 .bss + offset_data2 0x20000aa0 O 34 .bss + sampling_data0 0x20000ac2 O 34 .bss + errno 0x20000ae4 O 4 .bss + __malloc_lock 0x20000ae8 O 4 .bss + _ebss 0x20000aec 0 .bss + _end 0x20000aec 0 .bss + end 0x20000aec 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00008da4, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1098 .text pow.o + 0x00000b5e 0x00000006 Code RO 1106 .text fabs.o + 0x00000b64 0x00000020 Code RO 1112 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1119 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1130 .text _csky_case_uqi.o + 0x00000d10 0x0000002e Code RO 1140 .text _fixunssfsi.o + 0x00000d3e 0x00000002 PAD + 0x00000d40 0x00000038 Code RO 1147 .text _fixunsdfsi.o + 0x00000d78 0x000001aa Code RO 1154 .text _addsub_sf.o + 0x00000f22 0x00000002 PAD + 0x00000f24 0x00000118 Code RO 1161 .text _mul_sf.o + 0x0000103c 0x000000bc Code RO 1168 .text _div_sf.o + 0x000010f8 0x00000036 Code RO 1175 .text _ne_sf.o + 0x0000112e 0x00000002 PAD + 0x00001130 0x00000038 Code RO 1182 .text _ge_sf.o + 0x00001168 0x00000064 Code RO 1189 .text _si_to_sf.o + 0x000011cc 0x00000054 Code RO 1196 .text _sf_to_si.o + 0x00001220 0x00000024 Code RO 1203 .text _sf_to_df.o + 0x00001244 0x0000033a Code RO 1217 .text _addsub_df.o + 0x0000157e 0x00000002 PAD + 0x00001580 0x00000234 Code RO 1224 .text _mul_df.o + 0x000017b4 0x00000154 Code RO 1231 .text _div_df.o + 0x00001908 0x0000003c Code RO 1238 .text _gt_df.o + 0x00001944 0x0000003c Code RO 1245 .text _ge_df.o + 0x00001980 0x0000003a Code RO 1252 .text _le_df.o + 0x000019ba 0x00000002 PAD + 0x000019bc 0x00000070 Code RO 1259 .text _si_to_df.o + 0x00001a2c 0x00000070 Code RO 1266 .text _df_to_si.o + 0x00001a9c 0x00000028 Code RO 1273 .text _make_df.o + 0x00001ac4 0x00000030 Code RO 1280 .text _df_to_sf.o + 0x00001af4 0x00000054 Code RO 1294 .text _usi_to_df.o + 0x00001b48 0x00000044 Code RO 1301 .text _muldi3.o + 0x00001b8c 0x00000040 Code RO 1308 .text _clzsi2.o + 0x00001bcc 0x000000b8 Code RO 1314 .text _pack_sf.o + 0x00001c84 0x00000084 Code RO 1321 .text _unpack_sf.o + 0x00001d08 0x00000078 Code RO 1328 .text _fpcmp_parts_sf.o + 0x00001d80 0x00000016 Code RO 1335 .text _make_sf.o + 0x00001d96 0x00000002 PAD + 0x00001d98 0x0000019c Code RO 1342 .text _pack_df.o + 0x00001f34 0x000000c4 Code RO 1349 .text _unpack_df.o + 0x00001ff8 0x0000008c Code RO 1356 .text _fpcmp_parts_df.o + 0x00002084 0x00000020 Code RO 1377 .text snprintf_required.o + 0x000020a4 0x00000098 Code RO 1384 .text vsnprintf_required.o + 0x0000213c 0x00000088 Code RO 1391 .text memset_fast.o + 0x000021c4 0x00000064 Code RO 1396 .text memcpy_fast.o + 0x00002228 0x00000026 Code RO 1402 .text strncmp.o + 0x0000224e 0x00000002 PAD + 0x00002250 0x00000758 Code RO 1560 .text __v2_printfDFHLlMOPpSSsWp.o + 0x000029a8 0x000003ac Code RO 1619 .text _udivdi3.o + 0x00002d54 0x000003a0 Code RO 1626 .text _umoddi3.o + 0x000030f4 0x00000360 Code RO 1647 .text __dtostr.o + 0x00003454 0x0000002c Code RO 1655 .text __isnan.o + 0x00003480 0x00000052 Code RO 1667 .text strlen_fast.o + 0x000034d2 0x00000002 PAD + 0x000034d4 0x000000b0 Code RO 1672 .text strcpy_fast.o + 0x00003584 0x00000012 Code RO 1677 .text strchr.o + 0x00003596 0x00000002 PAD + 0x00003598 0x0000001c Code RO 1682 .text strerror.o + 0x000035b4 0x00000030 Code RO 1690 .text __isinf.o + 0x000035e4 0x0000003a Code RO 1696 .text _eq_df.o + 0x0000361e 0x00000002 PAD + 0x00003620 0x0000003a Code RO 1703 .text _lt_df.o + 0x0000365c 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00003694 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00003708 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00003754 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003784 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x0000380c 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00003834 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003870 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00003884 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x0000389c 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x000038bc 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000038d8 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000038f4 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003934 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003968 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x0000396c 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x0000397c 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00003988 0x00000014 Code RO 111 .text.SYSCON_Software_Reset Obj/FWlib_apt32f102_syscon.o + 0x0000399c 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000039c0 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000039f0 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00003a54 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00003b34 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00003b48 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00003b58 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00003c64 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00003d60 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00003d68 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00003d70 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00003d86 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00003d98 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00003dac 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00003dbc 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00003dd8 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00003de0 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00003dea 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00003e02 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00003e2e 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00003e34 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00003e48 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00003e58 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003e70 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003e88 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003ea0 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00003ebc 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00003ed8 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00003ef4 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00003fe0 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00003ff0 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00004010 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00004038 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x000040d8 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00004104 0x000000b0 Code RO 690 .text.startup.main Obj/main.o + 0x000041b4 0x0000002c Code RO 708 .text.delay_nms Obj/mcu_initial.o + 0x000041e0 0x00000022 Code RO 709 .text.delay_nus Obj/mcu_initial.o + 0x00004204 0x00000060 Code RO 713 .text.BT_CONFIG Obj/mcu_initial.o + 0x00004264 0x00000062 Code RO 719 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x000042c8 0x00000080 Code RO 720 .text.APT32F102_init Obj/mcu_initial.o + 0x00004348 0x000000f0 Code RO 736 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00004438 0x00000068 Code RO 737 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x000044a0 0x00000068 Code RO 738 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00004508 0x000001ac Code RO 739 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x000046b4 0x00000034 Code RO 740 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000046e8 0x00000080 Code RO 741 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00004768 0x00000070 Code RO 742 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x000047d8 0x00000060 Code RO 743 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00004838 0x00000094 Code RO 744 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x000048cc 0x00000060 Code RO 745 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x0000492c 0x000000e8 Code RO 746 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00004a14 0x00000054 Code RO 747 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00004a68 0x00000030 Code RO 748 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00004a98 0x00000030 Code RO 749 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00004ac8 0x00000048 Code RO 750 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00004b10 0x00000020 Code RO 751 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00004b30 0x0000006c Code RO 752 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00004b9c 0x00000034 Code RO 753 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00004bd0 0x0000004c Code RO 754 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00004c1c 0x00000070 Code RO 755 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00004c8c 0x00000002 Code RO 756 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00004c8e 0x00000008 Code RO 758 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00004c96 0x00000008 Code RO 759 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00004c9e 0x00000008 Code RO 760 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00004ca6 0x00000008 Code RO 761 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00004cae 0x00000008 Code RO 762 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00004cb6 0x00000008 Code RO 763 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00004cbe 0x00000008 Code RO 764 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00004cc6 0x00000008 Code RO 765 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00004cce 0x00000008 Code RO 766 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00004cd6 0x00000008 Code RO 767 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00004cde 0x00000008 Code RO 768 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00004ce6 0x00000008 Code RO 769 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00004cf0 0x00000024 Code RO 786 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00004d14 0x00000024 Code RO 787 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00004d38 0x00000024 Code RO 788 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00004d5c 0x00000024 Code RO 789 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00004d80 0x00000006 Code RO 807 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00004d86 0x00000006 Code RO 808 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00004d8c 0x0000018c Code RO 822 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00004f18 0x00000034 Code RO 823 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00004f4c 0x00000034 Code RO 825 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00004f80 0x00000034 Code RO 826 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00004fb4 0x00000090 Code RO 829 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00005044 0x000000c4 Code RO 830 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00005108 0x00000064 Code RO 831 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000516c 0x00000010 Code RO 832 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000517c 0x00000040 Code RO 835 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000051bc 0x0000005c Code RO 836 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00005218 0x00000088 Code RO 838 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x000052a0 0x000000a0 Code RO 839 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00005340 0x00000068 Code RO 840 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x000053a8 0x00000088 Code RO 841 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00005430 0x0000003c Code RO 843 .text.Dbg_BT_Println Obj/SYSTEM_uart.o + 0x0000546c 0x00000034 Code RO 861 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x000054a0 0x00000094 Code RO 862 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x00005534 0x00000016 Code RO 881 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x0000554c 0x00000150 Code RO 882 .text.EEOROM_ENERGY_ReadSet Obj/SYSTEM_eeprom.o + 0x0000569c 0x00000044 Code RO 883 .text.EEOROM_ENERGY_WriteSet Obj/SYSTEM_eeprom.o + 0x000056e0 0x0000014c Code RO 884 .text.EEPROM_ENERGY_Validate Obj/SYSTEM_eeprom.o + 0x0000582c 0x00000128 Code RO 885 .text.EEPROM_Default_ENERGY Obj/SYSTEM_eeprom.o + 0x00005954 0x000000b8 Code RO 886 .text.EEPROM_ReadTotalEng Obj/SYSTEM_eeprom.o + 0x00005a0c 0x000000ac Code RO 887 .text.EEPROM_WriteTotalEng Obj/SYSTEM_eeprom.o + 0x00005ab8 0x000000d4 Code RO 891 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00005b8c 0x00000040 Code RO 892 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00005bcc 0x00000038 Code RO 893 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00005c04 0x00000058 Code RO 894 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00005c5c 0x0000012c Code RO 895 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00005d88 0x0000003c Code RO 913 .text.BT_Uart_Packing.part.2 Obj/SYSTEM_det_energy.o + 0x00005dc4 0x00000030 Code RO 914 .text.BLV_DetEnergy_Init Obj/SYSTEM_det_energy.o + 0x00005df4 0x000000d0 Code RO 915 .text.BLV_DetEnergy_Default Obj/SYSTEM_det_energy.o + 0x00005ec4 0x00000018 Code RO 916 .text.HLW8110_CheckSum Obj/SYSTEM_det_energy.o + 0x00005edc 0x0000008c Code RO 927 .text.HLW8110_Convert_CurrentRegA_Value Obj/SYSTEM_det_energy.o + 0x00005f68 0x0000007c Code RO 928 .text.HLW8110_Convert_VoltageReg_Value Obj/SYSTEM_det_energy.o + 0x00005fe4 0x00000080 Code RO 929 .text.HLW8110_Convert_PowerReg_Value Obj/SYSTEM_det_energy.o + 0x00006064 0x000000d0 Code RO 930 .text.HLW8110_Convert_EnergyReg_Value Obj/SYSTEM_det_energy.o + 0x00006134 0x000002a8 Code RO 931 .text.HLW8110_RecvData_Processing Obj/SYSTEM_det_energy.o + 0x000063dc 0x000000ec Code RO 943 .text.BLV_Energy_PassiveRep_Packing Obj/SYSTEM_det_energy.o + 0x000064c8 0x000000a0 Code RO 944 .text.BLV_Energy_SetTime_Packing Obj/SYSTEM_det_energy.o + 0x00006568 0x00000098 Code RO 945 .text.BLV_Energy_QueryVersion_Packing Obj/SYSTEM_det_energy.o + 0x00006600 0x00000030 Code RO 946 .text.SetCalibFactor_Switch Obj/SYSTEM_det_energy.o + 0x00006630 0x00000084 Code RO 947 .text.BLV_Energy_SetCalibFactor Obj/SYSTEM_det_energy.o + 0x000066b4 0x0000007c Code RO 948 .text.BLV_Energy_SetCalibFactor_2 Obj/SYSTEM_det_energy.o + 0x00006730 0x0000016c Code RO 949 .text.HLW_485Recv_Processing Obj/SYSTEM_det_energy.o + 0x0000689c 0x00000118 Code RO 950 .text.BT_Recv_Processing Obj/SYSTEM_det_energy.o + 0x000069b4 0x000000c0 Code RO 969 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x00006a74 0x00000024 Code RO 998 .text.Fram_SDA_GPIO.part.0 Obj/SYSTEM_fram_i2c.o + 0x00006a98 0x00000024 Code RO 999 .text.Bsp_I2C_Fram_Init Obj/SYSTEM_fram_i2c.o + 0x00006abc 0x00000040 Code RO 1000 .text.Fram_SDA_GPIO Obj/SYSTEM_fram_i2c.o + 0x00006afc 0x00000032 Code RO 1001 .text.IIC_Wait Obj/SYSTEM_fram_i2c.o + 0x00006b30 0x00000040 Code RO 1002 .text.IIC_Start Obj/SYSTEM_fram_i2c.o + 0x00006b70 0x0000003c Code RO 1003 .text.IIC_Stop Obj/SYSTEM_fram_i2c.o + 0x00006bac 0x0000003c Code RO 1005 .text.IIC_NoACK Obj/SYSTEM_fram_i2c.o + 0x00006be8 0x00000058 Code RO 1006 .text.IIC_Wait_ACK Obj/SYSTEM_fram_i2c.o + 0x00006c40 0x00000058 Code RO 1007 .text.IIC_Send_Byte Obj/SYSTEM_fram_i2c.o + 0x00006c98 0x00000058 Code RO 1008 .text.IIC_Read_Byte Obj/SYSTEM_fram_i2c.o + 0x00006cf0 0x00000050 Code RO 1009 .text.Fram_I2C_WriteByte Obj/SYSTEM_fram_i2c.o + 0x00006d40 0x00000062 Code RO 1010 .text.Fram_I2C_ReadByte Obj/SYSTEM_fram_i2c.o + 0x00006da4 0x00000058 Code RO 1044 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006dfc 0x00000088 Code RO 1048 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00006e84 0x00000028 Code RO 1049 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00006eac 0x00000020 Code RO 1051 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00006ecc 0x00000180 Code RO 1052 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000704c 0x0000011c Code RO 1053 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00007168 0x000001d0 Code RO 1054 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00007338 0x00000054 Code RO 1055 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000738c 0x00000078 Code RO 1056 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00007404 0x00000284 Code RO 1078 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00007688 0x00000017 Data RO 951 .rodata Obj/SYSTEM_det_energy.o + 0x0000769f 0x00000001 PAD + 0x000076a0 0x00000030 Data RO 1101 .rodata pow.o + 0x000076d0 0x00000010 Data RO 1213 .rodata _thenan_sf.o + 0x000076e0 0x00000014 Data RO 1290 .rodata _thenan_df.o + 0x000076f4 0x00000100 Data RO 1366 .rodata _clz.o + 0x000077f4 0x00000020 Data RO 1563 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x00007814 0x00000240 Data RO 1685 .rodata strerror.o + 0x00007a54 0x00000059 Data RO 691 .rodata.str1.1 Obj/main.o + 0x00007aad 0x0000007c Data RO 844 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x00007b29 0x00000023 Data RO 864 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x00007b4c 0x000003b6 Data RO 896 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00007f02 0x000003f5 Data RO 952 .rodata.str1.1 Obj/SYSTEM_det_energy.o + 0x000082f7 0x000002fb Data RO 981 .rodata.str1.1 Obj/SYSTEM_Bootload_fun.o + 0x000085f2 0x00000022 Data RO 1564 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x00008614 0x00000008 Data RO 1650 .rodata.str1.1 __dtostr.o + 0x0000861c 0x00000787 Data RO 1686 .rodata.str1.1 strerror.o + 0x00008da3 0x00000001 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000aec, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000004 Data RW 688 .data Obj/main.o + 0x20000004 0x00000068 Data RW 784 .data Obj/drivers_apt32f102.o + 0x2000006c 0x00000004 Data RW 820 .data Obj/SYSTEM_uart.o + 0x20000070 0x00000031 Data RW 1035 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x00000020 Data RW 692 .textcsky.VinFlash Obj/main.o + 0x200000c4 0x00000006 Zero RW 689 .bss Obj/main.o + 0x200000ca 0x00000002 PAD + 0x200000cc 0x0000000c Zero RW 735 .bss Obj/mcu_interrupt.o + 0x200000d8 0x0000009c Zero RW 821 .bss Obj/SYSTEM_uart.o + 0x20000174 0x00000086 Zero RW 704 COMMON Obj/main.o + 0x200001fa 0x00000002 PAD + 0x200001fc 0x00000030 Zero RW 782 COMMON Obj/mcu_interrupt.o + 0x2000022c 0x00000244 Zero RW 857 COMMON Obj/SYSTEM_uart.o + 0x20000470 0x00000014 Zero RW 877 COMMON Obj/SYSTEM_dip_switch.o + 0x20000484 0x00000060 Zero RW 909 COMMON Obj/SYSTEM_eeprom.o + 0x200004e4 0x000000fc Zero RW 965 COMMON Obj/SYSTEM_det_energy.o + 0x200005e0 0x0000023c Zero RW 994 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000081c 0x000002c8 Zero RW 1074 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000ae4 0x00000008 Zero RW 1640 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 282 Obj/arch_crt0.o + 56 0 0 0 816 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 860 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 932 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13549 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 438 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 176 89 36 140 12908 Obj/main.o + 400 0 0 0 16601 Obj/mcu_initial.o + 2470 0 0 60 15410 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1760 124 4 736 17285 Obj/SYSTEM_uart.o + 200 35 0 20 11554 Obj/SYSTEM_dip_switch.o + 2130 950 0 96 17220 Obj/SYSTEM_eeprom.o + 3116 1036 0 252 22524 Obj/SYSTEM_det_energy.o + 192 763 0 572 16797 Obj/SYSTEM_Bootload_fun.o + 812 0 0 0 13456 Obj/SYSTEM_fram_i2c.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 14566 2997 144 1876 286092 Object Totals + 20 2 3 4 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 0 0 0 0 0 _csky_case_uhi.o + 46 0 0 0 0 _fixunssfsi.o + 56 0 0 0 0 _fixunsdfsi.o + 426 0 0 0 0 _addsub_sf.o + 280 0 0 0 0 _mul_sf.o + 188 0 0 0 0 _div_sf.o + 54 0 0 0 0 _ne_sf.o + 56 0 0 0 0 _ge_sf.o + 100 0 0 0 0 _si_to_sf.o + 84 0 0 0 0 _sf_to_si.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 40 0 0 0 0 _make_df.o + 48 0 0 0 0 _df_to_sf.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 184 0 0 0 0 _pack_sf.o + 132 0 0 0 0 _unpack_sf.o + 120 0 0 0 0 _fpcmp_parts_sf.o + 22 0 0 0 0 _make_sf.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 6856 292 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 38 0 0 0 0 strncmp.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3598 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 30320 5916 196 2600 311106 Grand Totals + 30320 5916 196 2600 311106 Elf Image Totals + 30320 5916 196 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 36236 ( 35.39kB) +Total RW Size (RW Data + ZI Data) 2796 ( 2.73kB) +Total ROM Size (Code + RO Data + RW Data) 36432 ( 35.58kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V05.asm b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V05.asm new file mode 100644 index 0000000..cd01113 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V05.asm @@ -0,0 +1,21792 @@ + +.//Obj/BLV_CS_AC100_V05.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00002800 : + 2800: 0000290c .long 0x0000290c + 2804: 00007476 .long 0x00007476 + 2808: 00007466 .long 0x00007466 + 280c: 00002984 .long 0x00002984 + 2810: 0000746e .long 0x0000746e + 2814: 0000742c .long 0x0000742c + 2818: 00002984 .long 0x00002984 + 281c: 0000745e .long 0x0000745e + 2820: 00007456 .long 0x00007456 + 2824: 00002984 .long 0x00002984 + 2828: 00002984 .long 0x00002984 + 282c: 00002984 .long 0x00002984 + 2830: 00002984 .long 0x00002984 + 2834: 00002984 .long 0x00002984 + 2838: 00002984 .long 0x00002984 + 283c: 00002984 .long 0x00002984 + 2840: 0000744e .long 0x0000744e + 2844: 00007446 .long 0x00007446 + 2848: 0000743e .long 0x0000743e + 284c: 00007436 .long 0x00007436 + 2850: 00002984 .long 0x00002984 + 2854: 00002984 .long 0x00002984 + 2858: 00002984 .long 0x00002984 + 285c: 00002984 .long 0x00002984 + 2860: 00002984 .long 0x00002984 + 2864: 00002984 .long 0x00002984 + 2868: 00002984 .long 0x00002984 + 286c: 00002984 .long 0x00002984 + 2870: 00002984 .long 0x00002984 + 2874: 00002984 .long 0x00002984 + 2878: 00002984 .long 0x00002984 + 287c: 0000742e .long 0x0000742e + 2880: 0000afd0 .long 0x0000afd0 + 2884: 00006ae8 .long 0x00006ae8 + 2888: 00006bd8 .long 0x00006bd8 + 288c: 00006c40 .long 0x00006c40 + 2890: 00006ca8 .long 0x00006ca8 + 2894: 00002984 .long 0x00002984 + 2898: 00006e54 .long 0x00006e54 + 289c: 00007208 .long 0x00007208 + 28a0: 00007238 .long 0x00007238 + 28a4: 00006e88 .long 0x00006e88 + 28a8: 00002984 .long 0x00002984 + 28ac: 00002984 .long 0x00002984 + 28b0: 00006f08 .long 0x00006f08 + 28b4: 00006f78 .long 0x00006f78 + 28b8: 00006fd8 .long 0x00006fd8 + 28bc: 0000706c .long 0x0000706c + 28c0: 00002984 .long 0x00002984 + 28c4: 00007486 .long 0x00007486 + 28c8: 00002984 .long 0x00002984 + 28cc: 000070cc .long 0x000070cc + 28d0: 000071b4 .long 0x000071b4 + 28d4: 00007268 .long 0x00007268 + 28d8: 000072b0 .long 0x000072b0 + 28dc: 000072d0 .long 0x000072d0 + 28e0: 0000747e .long 0x0000747e + 28e4: 0000aa40 .long 0x0000aa40 + 28e8: 0000733c .long 0x0000733c + 28ec: 00002984 .long 0x00002984 + 28f0: 00007370 .long 0x00007370 + 28f4: 000073bc .long 0x000073bc + 28f8: 00002984 .long 0x00002984 + 28fc: 00002984 .long 0x00002984 + 2900: 55aa0005 .long 0x55aa0005 + ... + +0000290c <__start>: +// .long __start +__start: + + + //initialize all registers + movi r0, 0 + 290c: 3000 movi r0, 0 + movi r1, 0 + 290e: 3100 movi r1, 0 + movi r2, 0 + 2910: 3200 movi r2, 0 + movi r3, 0 + 2912: 3300 movi r3, 0 + movi r4, 0 + 2914: 3400 movi r4, 0 + movi r5, 0 + 2916: 3500 movi r5, 0 + movi r6, 0 + 2918: 3600 movi r6, 0 + movi r7, 0 + 291a: 3700 movi r7, 0 + //movi r13, 0 + //movi r14, 0 + //movi r15, 0 + +//set VBR + lrw r2, vector_table + 291c: 105b lrw r2, 0x2800 // 2988 + mtcr r2, cr<1,0> + 291e: c0026421 mtcr r2, cr<1, 0> + +//enable EE bit of psr + mfcr r2, cr<0,0> + 2922: c0006022 mfcr r2, cr<0, 0> + bseti r2, r2, 8 + 2926: 3aa8 bseti r2, 8 + mtcr r2, cr<0,0> + 2928: 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 + 292c: 1038 lrw r1, 0xe000ef90 // 298c + movi r2, 0x0 + 292e: 3200 movi r2, 0 + st.w r2, (r1, 0x0) + 2930: b140 st.w r2, (r1, 0x0) + + + +//initialize kernel stack + lrw r7, __kernel_stack + 2932: 10f8 lrw r7, 0x20000ff8 // 2990 + mov r14,r7 + 2934: 6f9f mov r14, r7 + subi r6,r7,0x4 + 2936: 5fcf subi r6, r7, 4 + + //lrw r3, 0x40 + lrw r3, 0x04 + 2938: 3304 movi r3, 4 + + subu r4, r7, r3 + 293a: 5f8d subu r4, r7, r3 + lrw r5, 0x0 + 293c: 3500 movi r5, 0 + +0000293e : +INIT_KERLE_STACK: + addi r4, 0x4 + 293e: 2403 addi r4, 4 + st.w r5, (r4) + 2940: b4a0 st.w r5, (r4, 0x0) + //cmphs r7, r4 + cmphs r6, r4 + 2942: 6518 cmphs r6, r4 + bt INIT_KERLE_STACK + 2944: 0bfd bt 0x293e // 293e + +00002946 <__to_main>: + +__to_main: + lrw r0,__main + 2946: 1014 lrw r0, 0x5e5c // 2994 + jsr r0 + 2948: 7bc1 jsr r0 + mov r0, r0 + 294a: 6c03 mov r0, r0 + mov r0, r0 + 294c: 6c03 mov r0, r0 + + + + lrw r15, __exit + 294e: ea8f0013 lrw r15, 0x2960 // 2998 + lrw r0,main + 2952: 1013 lrw r0, 0x6910 // 299c + jmp r0 + 2954: 7800 jmp r0 + mov r0, r0 + 2956: 6c03 mov r0, r0 + mov r0, r0 + 2958: 6c03 mov r0, r0 + mov r0, r0 + 295a: 6c03 mov r0, r0 + mov r0, r0 + 295c: 6c03 mov r0, r0 + mov r0, r0 + 295e: 6c03 mov r0, r0 + +00002960 <__exit>: + +.export __exit +__exit: + + lrw r4, 0x20003000 + 2960: 1090 lrw r4, 0x20003000 // 29a0 + //lrw r5, 0x0 + mov r5, r0 + 2962: 6d43 mov r5, r0 + st.w r5, (r4) + 2964: b4a0 st.w r5, (r4, 0x0) + + mfcr r1, cr<0,0> + 2966: c0006021 mfcr r1, cr<0, 0> + lrw r1, 0xFFFF + 296a: 102f lrw r1, 0xffff // 29a4 + mtcr r1, cr<11,0> + 296c: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xFFF + 2970: 102e lrw r1, 0xfff // 29a8 + movi r0, 0x0 + 2972: 3000 movi r0, 0 + st r1, (r0) + 2974: b020 st.w r1, (r0, 0x0) + +00002976 <__fail>: + +.export __fail +__fail: + lrw r1, 0xEEEE + 2976: 102e lrw r1, 0xeeee // 29ac + mtcr r1, cr<11,0> + 2978: c001642b mtcr r1, cr<11, 0> + lrw r1, 0xEEE + 297c: 102d lrw r1, 0xeee // 29b0 + movi r0, 0x0 + 297e: 3000 movi r0, 0 + st r1, (r0) + 2980: b020 st.w r1, (r0, 0x0) + +00002982 <__dummy>: + +__dummy: + br __fail + 2982: 07fa br 0x2976 // 2976 <__fail> + +00002984 : + +.export DummyHandler +DummyHandler: + br __fail + 2984: 07f9 br 0x2976 // 2976 <__fail> + 2986: 0000 .short 0x0000 + 2988: 00002800 .long 0x00002800 + 298c: e000ef90 .long 0xe000ef90 + 2990: 20000ff8 .long 0x20000ff8 + 2994: 00005e5c .long 0x00005e5c + 2998: 00002960 .long 0x00002960 + 299c: 00006910 .long 0x00006910 + 29a0: 20003000 .long 0x20003000 + 29a4: 0000ffff .long 0x0000ffff + 29a8: 00000fff .long 0x00000fff + 29ac: 0000eeee .long 0x0000eeee + 29b0: 00000eee .long 0x00000eee + +000029b4 <__GI_pow>: + 29b4: 14d4 push r4-r7, r15 + 29b6: 142d subi r14, r14, 52 + 29b8: b860 st.w r3, (r14, 0x0) + 29ba: 4361 lsli r3, r3, 1 + 29bc: 4b81 lsri r4, r3, 1 + 29be: b842 st.w r2, (r14, 0x8) + 29c0: 6c90 or r2, r4 + 29c2: 3a40 cmpnei r2, 0 + 29c4: 6dc3 mov r7, r0 + 29c6: 6d87 mov r6, r1 + 29c8: 0803 bt 0x29ce // 29ce <__GI_pow+0x1a> + 29ca: e8000462 br 0x328e // 328e <__GI_pow+0x8da> + 29ce: 41a1 lsli r5, r1, 1 + 29d0: 4da1 lsri r5, r5, 1 + 29d2: 0055 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 29d4: 6549 cmplt r2, r5 + 29d6: 080c bt 0x29ee // 29ee <__GI_pow+0x3a> + 29d8: 6496 cmpne r5, r2 + 29da: 0803 bt 0x29e0 // 29e0 <__GI_pow+0x2c> + 29dc: 3840 cmpnei r0, 0 + 29de: 0808 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e0: 6509 cmplt r2, r4 + 29e2: 0806 bt 0x29ee // 29ee <__GI_pow+0x3a> + 29e4: 6492 cmpne r4, r2 + 29e6: 080e bt 0x2a02 // 2a02 <__GI_pow+0x4e> + 29e8: 9802 ld.w r0, (r14, 0x8) + 29ea: 3840 cmpnei r0, 0 + 29ec: 0c0b bf 0x2a02 // 2a02 <__GI_pow+0x4e> + 29ee: 9842 ld.w r2, (r14, 0x8) + 29f0: 9860 ld.w r3, (r14, 0x0) + 29f2: 6c1f mov r0, r7 + 29f4: 6c5b mov r1, r6 + 29f6: e0000991 bsr 0x3d18 // 3d18 <__adddf3> + 29fa: 6d03 mov r4, r0 + 29fc: 6c13 mov r0, r4 + 29fe: 140d addi r14, r14, 52 + 2a00: 1494 pop r4-r7, r15 + 2a02: 3edf btsti r6, 31 + 2a04: 0c51 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a06: 0121 lrw r1, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2a08: 2900 subi r1, 1 + 2a0a: 6505 cmplt r1, r4 + 2a0c: 084b bt 0x2aa2 // 2aa2 <__GI_pow+0xee> + 2a0e: 0162 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a10: 2b00 subi r3, 1 + 2a12: 650d cmplt r3, r4 + 2a14: 0c49 bf 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a16: 5454 asri r2, r4, 20 + 2a18: 0104 lrw r0, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2a1a: 6080 addu r2, r0 + 2a1c: 3a34 cmplti r2, 21 + 2a1e: 0821 bt 0x2a60 // 2a60 <__GI_pow+0xac> + 2a20: 3334 movi r3, 52 + 2a22: 60ca subu r3, r2 + 2a24: 9842 ld.w r2, (r14, 0x8) + 2a26: 708d lsr r2, r3 + 2a28: 6c4b mov r1, r2 + 2a2a: 704c lsl r1, r3 + 2a2c: 9802 ld.w r0, (r14, 0x8) + 2a2e: 6442 cmpne r0, r1 + 2a30: 083b bt 0x2aa6 // 2aa6 <__GI_pow+0xf2> + 2a32: 3101 movi r1, 1 + 2a34: 6884 and r2, r1 + 2a36: 3302 movi r3, 2 + 2a38: 5b49 subu r2, r3, r2 + 2a3a: 9802 ld.w r0, (r14, 0x8) + 2a3c: 3840 cmpnei r0, 0 + 2a3e: b841 st.w r2, (r14, 0x4) + 2a40: 0862 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2a42: 0151 lrw r2, 0x7ff00000 // 2d78 <__GI_pow+0x3c4> + 2a44: 6492 cmpne r4, r2 + 2a46: 081f bt 0x2a84 // 2a84 <__GI_pow+0xd0> + 2a48: 012f lrw r1, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2a4a: 6054 addu r1, r5 + 2a4c: 6dc4 or r7, r1 + 2a4e: 3f40 cmpnei r7, 0 + 2a50: 082d bt 0x2aaa // 2aaa <__GI_pow+0xf6> + 2a52: 9860 ld.w r3, (r14, 0x0) + 2a54: 3200 movi r2, 0 + 2a56: 6c4f mov r1, r3 + 2a58: 3000 movi r0, 0 + 2a5a: e0000977 bsr 0x3d48 // 3d48 <__subdf3> + 2a5e: 07ce br 0x29fa // 29fa <__GI_pow+0x46> + 2a60: 9822 ld.w r1, (r14, 0x8) + 2a62: 3940 cmpnei r1, 0 + 2a64: 084e bt 0x2b00 // 2b00 <__GI_pow+0x14c> + 2a66: 3114 movi r1, 20 + 2a68: 604a subu r1, r2 + 2a6a: 6c93 mov r2, r4 + 2a6c: 7086 asr r2, r1 + 2a6e: 6c0b mov r0, r2 + 2a70: 7004 lsl r0, r1 + 2a72: 6412 cmpne r4, r0 + 2a74: 0c03 bf 0x2a7a // 2a7a <__GI_pow+0xc6> + 2a76: e8000471 br 0x3358 // 3358 <__GI_pow+0x9a4> + 2a7a: 3101 movi r1, 1 + 2a7c: 6884 and r2, r1 + 2a7e: 3002 movi r0, 2 + 2a80: 5869 subu r3, r0, r2 + 2a82: b861 st.w r3, (r14, 0x4) + 2a84: 0220 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a86: 6452 cmpne r4, r1 + 2a88: 0825 bt 0x2ad2 // 2ad2 <__GI_pow+0x11e> + 2a8a: 9880 ld.w r4, (r14, 0x0) + 2a8c: 3cdf btsti r4, 31 + 2a8e: 0803 bt 0x2a94 // 2a94 <__GI_pow+0xe0> + 2a90: e8000407 br 0x329e // 329e <__GI_pow+0x8ea> + 2a94: 6c9f mov r2, r7 + 2a96: 6cdb mov r3, r6 + 2a98: 3000 movi r0, 0 + 2a9a: 0225 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2a9c: e0000a8c bsr 0x3fb4 // 3fb4 <__divdf3> + 2aa0: 07ad br 0x29fa // 29fa <__GI_pow+0x46> + 2aa2: 3202 movi r2, 2 + 2aa4: 07cb br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aa6: 3200 movi r2, 0 + 2aa8: 07c9 br 0x2a3a // 2a3a <__GI_pow+0x86> + 2aaa: 0269 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2aac: 2b00 subi r3, 1 + 2aae: 654d cmplt r3, r5 + 2ab0: 9800 ld.w r0, (r14, 0x0) + 2ab2: 0c08 bf 0x2ac2 // 2ac2 <__GI_pow+0x10e> + 2ab4: 38df btsti r0, 31 + 2ab6: 0803 bt 0x2abc // 2abc <__GI_pow+0x108> + 2ab8: e80003ef br 0x3296 // 3296 <__GI_pow+0x8e2> + 2abc: 3400 movi r4, 0 + 2abe: 3100 movi r1, 0 + 2ac0: 079e br 0x29fc // 29fc <__GI_pow+0x48> + 2ac2: 38df btsti r0, 31 + 2ac4: 0ffc bf 0x2abc // 2abc <__GI_pow+0x108> + 2ac6: 3400 movi r4, 0 + 2ac8: 6c43 mov r1, r0 + 2aca: 3280 movi r2, 128 + 2acc: 4278 lsli r3, r2, 24 + 2ace: 604c addu r1, r3 + 2ad0: 0796 br 0x29fc // 29fc <__GI_pow+0x48> + 2ad2: 3380 movi r3, 128 + 2ad4: 4317 lsli r0, r3, 23 + 2ad6: 9840 ld.w r2, (r14, 0x0) + 2ad8: 640a cmpne r2, r0 + 2ada: 0808 bt 0x2aea // 2aea <__GI_pow+0x136> + 2adc: 6c9f mov r2, r7 + 2ade: 6cdb mov r3, r6 + 2ae0: 6c1f mov r0, r7 + 2ae2: 6c5b mov r1, r6 + 2ae4: e000094e bsr 0x3d80 // 3d80 <__muldf3> + 2ae8: 0789 br 0x29fa // 29fa <__GI_pow+0x46> + 2aea: 0276 lrw r3, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2aec: 9820 ld.w r1, (r14, 0x0) + 2aee: 64c6 cmpne r1, r3 + 2af0: 080a bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af2: 3edf btsti r6, 31 + 2af4: 0808 bt 0x2b04 // 2b04 <__GI_pow+0x150> + 2af6: 6c1f mov r0, r7 + 2af8: 6c5b mov r1, r6 + 2afa: e0000445 bsr 0x3384 // 3384 <__GI_sqrt> + 2afe: 077e br 0x29fa // 29fa <__GI_pow+0x46> + 2b00: 3300 movi r3, 0 + 2b02: b861 st.w r3, (r14, 0x4) + 2b04: 6c1f mov r0, r7 + 2b06: 6c5b mov r1, r6 + 2b08: b883 st.w r4, (r14, 0xc) + 2b0a: e000042a bsr 0x335e // 335e <__GI_fabs> + 2b0e: 3f40 cmpnei r7, 0 + 2b10: 6d03 mov r4, r0 + 2b12: 9863 ld.w r3, (r14, 0xc) + 2b14: 0826 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b16: 3d40 cmpnei r5, 0 + 2b18: 0c05 bf 0x2b22 // 2b22 <__GI_pow+0x16e> + 2b1a: 4642 lsli r2, r6, 2 + 2b1c: 0302 lrw r0, 0xffc00000 // 2d90 <__GI_pow+0x3dc> + 2b1e: 640a cmpne r2, r0 + 2b20: 0820 bt 0x2b60 // 2b60 <__GI_pow+0x1ac> + 2b22: 9840 ld.w r2, (r14, 0x0) + 2b24: 3adf btsti r2, 31 + 2b26: 0c08 bf 0x2b36 // 2b36 <__GI_pow+0x182> + 2b28: 6c93 mov r2, r4 + 2b2a: 6cc7 mov r3, r1 + 2b2c: 3000 movi r0, 0 + 2b2e: 032a lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b30: e0000a42 bsr 0x3fb4 // 3fb4 <__divdf3> + 2b34: 6d03 mov r4, r0 + 2b36: 3edf btsti r6, 31 + 2b38: 0f62 bf 0x29fc // 29fc <__GI_pow+0x48> + 2b3a: 036b lrw r3, 0xc0100000 // 2d88 <__GI_pow+0x3d4> + 2b3c: 614c addu r5, r3 + 2b3e: 9801 ld.w r0, (r14, 0x4) + 2b40: 6d40 or r5, r0 + 2b42: 3d40 cmpnei r5, 0 + 2b44: 080a bt 0x2b58 // 2b58 <__GI_pow+0x1a4> + 2b46: 6c93 mov r2, r4 + 2b48: 6cc7 mov r3, r1 + 2b4a: 6c0b mov r0, r2 + 2b4c: 6c4f mov r1, r3 + 2b4e: e00008fd bsr 0x3d48 // 3d48 <__subdf3> + 2b52: 6c83 mov r2, r0 + 2b54: 6cc7 mov r3, r1 + 2b56: 07a3 br 0x2a9c // 2a9c <__GI_pow+0xe8> + 2b58: 9841 ld.w r2, (r14, 0x4) + 2b5a: 3a41 cmpnei r2, 1 + 2b5c: 0b50 bt 0x29fc // 29fc <__GI_pow+0x48> + 2b5e: 07b6 br 0x2aca // 2aca <__GI_pow+0x116> + 2b60: 4e5f lsri r2, r6, 31 + 2b62: 2a00 subi r2, 1 + 2b64: b847 st.w r2, (r14, 0x1c) + 2b66: 9807 ld.w r0, (r14, 0x1c) + 2b68: 9841 ld.w r2, (r14, 0x4) + 2b6a: 6c80 or r2, r0 + 2b6c: 3a40 cmpnei r2, 0 + 2b6e: 0804 bt 0x2b76 // 2b76 <__GI_pow+0x1c2> + 2b70: 6c9f mov r2, r7 + 2b72: 6cdb mov r3, r6 + 2b74: 07eb br 0x2b4a // 2b4a <__GI_pow+0x196> + 2b76: 0357 lrw r2, 0x41e00000 // 2d94 <__GI_pow+0x3e0> + 2b78: 64c9 cmplt r2, r3 + 2b7a: 0cbf bf 0x2cf8 // 2cf8 <__GI_pow+0x344> + 2b7c: 0358 lrw r2, 0x43f00000 // 2d98 <__GI_pow+0x3e4> + 2b7e: 64c9 cmplt r2, r3 + 2b80: 037f lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2b82: 0c0c bf 0x2b9a // 2b9a <__GI_pow+0x1e6> + 2b84: 2b00 subi r3, 1 + 2b86: 654d cmplt r3, r5 + 2b88: 080f bt 0x2ba6 // 2ba6 <__GI_pow+0x1f2> + 2b8a: 9820 ld.w r1, (r14, 0x0) + 2b8c: 39df btsti r1, 31 + 2b8e: 0f97 bf 0x2abc // 2abc <__GI_pow+0x108> + 2b90: 035c lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2b92: 037b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2b94: 6c0b mov r0, r2 + 2b96: 6c4f mov r1, r3 + 2b98: 07a6 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2b9a: 2b01 subi r3, 2 + 2b9c: 654d cmplt r3, r5 + 2b9e: 0ff6 bf 0x2b8a // 2b8a <__GI_pow+0x1d6> + 2ba0: 1318 lrw r0, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2ba2: 6541 cmplt r0, r5 + 2ba4: 0c05 bf 0x2bae // 2bae <__GI_pow+0x1fa> + 2ba6: 9800 ld.w r0, (r14, 0x0) + 2ba8: 3820 cmplti r0, 1 + 2baa: 0ff3 bf 0x2b90 // 2b90 <__GI_pow+0x1dc> + 2bac: 0788 br 0x2abc // 2abc <__GI_pow+0x108> + 2bae: 3200 movi r2, 0 + 2bb0: 1374 lrw r3, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2bb2: 6c1f mov r0, r7 + 2bb4: 6c5b mov r1, r6 + 2bb6: 36c0 movi r6, 192 + 2bb8: e00008c8 bsr 0x3d48 // 3d48 <__subdf3> + 2bbc: 4657 lsli r2, r6, 23 + 2bbe: 137a lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2bc0: 6d43 mov r5, r0 + 2bc2: 6d07 mov r4, r1 + 2bc4: e00008de bsr 0x3d80 // 3d80 <__muldf3> + 2bc8: 6dc3 mov r7, r0 + 2bca: 6d87 mov r6, r1 + 2bcc: 1357 lrw r2, 0xf85ddf44 // 2da8 <__GI_pow+0x3f4> + 2bce: 1378 lrw r3, 0x3e54ae0b // 2dac <__GI_pow+0x3f8> + 2bd0: 6c17 mov r0, r5 + 2bd2: 6c53 mov r1, r4 + 2bd4: e00008d6 bsr 0x3d80 // 3d80 <__muldf3> + 2bd8: b803 st.w r0, (r14, 0xc) + 2bda: b824 st.w r1, (r14, 0x10) + 2bdc: 3200 movi r2, 0 + 2bde: 1375 lrw r3, 0x3fd00000 // 2db0 <__GI_pow+0x3fc> + 2be0: 6c17 mov r0, r5 + 2be2: 6c53 mov r1, r4 + 2be4: e00008ce bsr 0x3d80 // 3d80 <__muldf3> + 2be8: 6c83 mov r2, r0 + 2bea: 6cc7 mov r3, r1 + 2bec: 1312 lrw r0, 0x55555555 // 2db4 <__GI_pow+0x400> + 2bee: 1333 lrw r1, 0x3fd55555 // 2db8 <__GI_pow+0x404> + 2bf0: e00008ac bsr 0x3d48 // 3d48 <__subdf3> + 2bf4: 6c97 mov r2, r5 + 2bf6: 6cd3 mov r3, r4 + 2bf8: e00008c4 bsr 0x3d80 // 3d80 <__muldf3> + 2bfc: 6c83 mov r2, r0 + 2bfe: 6cc7 mov r3, r1 + 2c00: 3000 movi r0, 0 + 2c02: 1323 lrw r1, 0x3fe00000 // 2d8c <__GI_pow+0x3d8> + 2c04: e00008a2 bsr 0x3d48 // 3d48 <__subdf3> + 2c08: b805 st.w r0, (r14, 0x14) + 2c0a: 6c97 mov r2, r5 + 2c0c: 6cd3 mov r3, r4 + 2c0e: b826 st.w r1, (r14, 0x18) + 2c10: 6c17 mov r0, r5 + 2c12: 6c53 mov r1, r4 + 2c14: e00008b6 bsr 0x3d80 // 3d80 <__muldf3> + 2c18: 6c83 mov r2, r0 + 2c1a: 6cc7 mov r3, r1 + 2c1c: 9805 ld.w r0, (r14, 0x14) + 2c1e: 9826 ld.w r1, (r14, 0x18) + 2c20: e00008b0 bsr 0x3d80 // 3d80 <__muldf3> + 2c24: 1346 lrw r2, 0x652b82fe // 2dbc <__GI_pow+0x408> + 2c26: 1360 lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2c28: e00008ac bsr 0x3d80 // 3d80 <__muldf3> + 2c2c: 6c83 mov r2, r0 + 2c2e: 6cc7 mov r3, r1 + 2c30: 9803 ld.w r0, (r14, 0xc) + 2c32: 9824 ld.w r1, (r14, 0x10) + 2c34: e000088a bsr 0x3d48 // 3d48 <__subdf3> + 2c38: 6c83 mov r2, r0 + 2c3a: 6cc7 mov r3, r1 + 2c3c: 6d43 mov r5, r0 + 2c3e: 6d07 mov r4, r1 + 2c40: 6c1f mov r0, r7 + 2c42: 6c5b mov r1, r6 + 2c44: e000086a bsr 0x3d18 // 3d18 <__adddf3> + 2c48: 6c9f mov r2, r7 + 2c4a: 6cdb mov r3, r6 + 2c4c: 3000 movi r0, 0 + 2c4e: b823 st.w r1, (r14, 0xc) + 2c50: e000087c bsr 0x3d48 // 3d48 <__subdf3> + 2c54: 6c83 mov r2, r0 + 2c56: 6cc7 mov r3, r1 + 2c58: 6c17 mov r0, r5 + 2c5a: 6c53 mov r1, r4 + 2c5c: e0000876 bsr 0x3d48 // 3d48 <__subdf3> + 2c60: 6d07 mov r4, r1 + 2c62: 9821 ld.w r1, (r14, 0x4) + 2c64: 2900 subi r1, 1 + 2c66: 9847 ld.w r2, (r14, 0x1c) + 2c68: 6c48 or r1, r2 + 2c6a: 3940 cmpnei r1, 0 + 2c6c: 6d43 mov r5, r0 + 2c6e: 0c02 bf 0x2c72 // 2c72 <__GI_pow+0x2be> + 2c70: 05f0 br 0x3050 // 3050 <__GI_pow+0x69c> + 2c72: 1274 lrw r3, 0xbff00000 // 2dc0 <__GI_pow+0x40c> + 2c74: b861 st.w r3, (r14, 0x4) + 2c76: 9860 ld.w r3, (r14, 0x0) + 2c78: 3200 movi r2, 0 + 2c7a: 9802 ld.w r0, (r14, 0x8) + 2c7c: 6c4f mov r1, r3 + 2c7e: e0000865 bsr 0x3d48 // 3d48 <__subdf3> + 2c82: 9863 ld.w r3, (r14, 0xc) + 2c84: 3200 movi r2, 0 + 2c86: e000087d bsr 0x3d80 // 3d80 <__muldf3> + 2c8a: 6dc3 mov r7, r0 + 2c8c: 6d87 mov r6, r1 + 2c8e: 9842 ld.w r2, (r14, 0x8) + 2c90: 9860 ld.w r3, (r14, 0x0) + 2c92: 6c17 mov r0, r5 + 2c94: 6c53 mov r1, r4 + 2c96: e0000875 bsr 0x3d80 // 3d80 <__muldf3> + 2c9a: 6c83 mov r2, r0 + 2c9c: 6cc7 mov r3, r1 + 2c9e: 6c1f mov r0, r7 + 2ca0: 6c5b mov r1, r6 + 2ca2: e000083b bsr 0x3d18 // 3d18 <__adddf3> + 2ca6: 6dc3 mov r7, r0 + 2ca8: 9860 ld.w r3, (r14, 0x0) + 2caa: 6d87 mov r6, r1 + 2cac: 3200 movi r2, 0 + 2cae: 9823 ld.w r1, (r14, 0xc) + 2cb0: 3000 movi r0, 0 + 2cb2: e0000867 bsr 0x3d80 // 3d80 <__muldf3> + 2cb6: b802 st.w r0, (r14, 0x8) + 2cb8: b803 st.w r0, (r14, 0xc) + 2cba: b824 st.w r1, (r14, 0x10) + 2cbc: 6c83 mov r2, r0 + 2cbe: 6cc7 mov r3, r1 + 2cc0: 6d47 mov r5, r1 + 2cc2: 6c1f mov r0, r7 + 2cc4: 6c5b mov r1, r6 + 2cc6: e0000829 bsr 0x3d18 // 3d18 <__adddf3> + 2cca: 6d07 mov r4, r1 + 2ccc: 113e lrw r1, 0x40900000 // 2dc4 <__GI_pow+0x410> + 2cce: 2900 subi r1, 1 + 2cd0: 6505 cmplt r1, r4 + 2cd2: b800 st.w r0, (r14, 0x0) + 2cd4: 0803 bt 0x2cda // 2cda <__GI_pow+0x326> + 2cd6: e80002b3 br 0x323c // 323c <__GI_pow+0x888> + 2cda: 117c lrw r3, 0xbf700000 // 2dc8 <__GI_pow+0x414> + 2cdc: 60d0 addu r3, r4 + 2cde: 6cc0 or r3, r0 + 2ce0: 3b40 cmpnei r3, 0 + 2ce2: 0802 bt 0x2ce6 // 2ce6 <__GI_pow+0x332> + 2ce4: 05b8 br 0x3054 // 3054 <__GI_pow+0x6a0> + 2ce6: 114e lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2ce8: 116e lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cea: 3000 movi r0, 0 + 2cec: 9821 ld.w r1, (r14, 0x4) + 2cee: e0000849 bsr 0x3d80 // 3d80 <__muldf3> + 2cf2: 114b lrw r2, 0x8800759c // 2d9c <__GI_pow+0x3e8> + 2cf4: 116b lrw r3, 0x7e37e43c // 2da0 <__GI_pow+0x3ec> + 2cf6: 06f7 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 2cf8: 11d5 lrw r6, 0xfffff // 2dcc <__GI_pow+0x418> + 2cfa: 6559 cmplt r6, r5 + 2cfc: 09a6 bt 0x3048 // 3048 <__GI_pow+0x694> + 2cfe: 6c13 mov r0, r4 + 2d00: 3200 movi r2, 0 + 2d02: 107f lrw r3, 0x43400000 // 2d7c <__GI_pow+0x3c8> + 2d04: e000083e bsr 0x3d80 // 3d80 <__muldf3> + 2d08: 3700 movi r7, 0 + 2d0a: 6d03 mov r4, r0 + 2d0c: 6d47 mov r5, r1 + 2d0e: 2f34 subi r7, 53 + 2d10: 5514 asri r0, r5, 20 + 2d12: 103d lrw r1, 0xfffffc01 // 2d84 <__GI_pow+0x3d0> + 2d14: 45ac lsli r5, r5, 12 + 2d16: 4d4c lsri r2, r5, 12 + 2d18: 6004 addu r0, r1 + 2d1a: 116e lrw r3, 0x3988e // 2dd0 <__GI_pow+0x41c> + 2d1c: 601c addu r0, r7 + 2d1e: 648d cmplt r3, r2 + 2d20: 10f8 lrw r7, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d22: b804 st.w r0, (r14, 0x10) + 2d24: 6dc8 or r7, r2 + 2d26: 0c09 bf 0x2d38 // 2d38 <__GI_pow+0x384> + 2d28: 11cb lrw r6, 0xbb679 // 2dd4 <__GI_pow+0x420> + 2d2a: 6499 cmplt r6, r2 + 2d2c: 0d90 bf 0x304c // 304c <__GI_pow+0x698> + 2d2e: 6c83 mov r2, r0 + 2d30: 2200 addi r2, 1 + 2d32: 110a lrw r0, 0xfff00000 // 2dd8 <__GI_pow+0x424> + 2d34: b844 st.w r2, (r14, 0x10) + 2d36: 61c0 addu r7, r0 + 2d38: 3500 movi r5, 0 + 2d3a: 45c3 lsli r6, r5, 3 + 2d3c: 1168 lrw r3, 0xb2e4 // 2ddc <__GI_pow+0x428> + 2d3e: 4523 lsli r1, r5, 3 + 2d40: 60d8 addu r3, r6 + 2d42: 9340 ld.w r2, (r3, 0x0) + 2d44: b828 st.w r1, (r14, 0x20) + 2d46: 9361 ld.w r3, (r3, 0x4) + 2d48: 6c13 mov r0, r4 + 2d4a: 6c5f mov r1, r7 + 2d4c: b845 st.w r2, (r14, 0x14) + 2d4e: b866 st.w r3, (r14, 0x18) + 2d50: e00007fc bsr 0x3d48 // 3d48 <__subdf3> + 2d54: b809 st.w r0, (r14, 0x24) + 2d56: 9845 ld.w r2, (r14, 0x14) + 2d58: 9866 ld.w r3, (r14, 0x18) + 2d5a: b82a st.w r1, (r14, 0x28) + 2d5c: 6c13 mov r0, r4 + 2d5e: 6c5f mov r1, r7 + 2d60: e00007dc bsr 0x3d18 // 3d18 <__adddf3> + 2d64: 6c83 mov r2, r0 + 2d66: 6cc7 mov r3, r1 + 2d68: 3000 movi r0, 0 + 2d6a: 1026 lrw r1, 0x3ff00000 // 2d80 <__GI_pow+0x3cc> + 2d6c: e0000924 bsr 0x3fb4 // 3fb4 <__divdf3> + 2d70: 6c83 mov r2, r0 + 2d72: 6cc7 mov r3, r1 + 2d74: 0436 br 0x2de0 // 2de0 <__GI_pow+0x42c> + 2d76: 0000 bkpt + 2d78: 7ff00000 .long 0x7ff00000 + 2d7c: 43400000 .long 0x43400000 + 2d80: 3ff00000 .long 0x3ff00000 + 2d84: fffffc01 .long 0xfffffc01 + 2d88: c0100000 .long 0xc0100000 + 2d8c: 3fe00000 .long 0x3fe00000 + 2d90: ffc00000 .long 0xffc00000 + 2d94: 41e00000 .long 0x41e00000 + 2d98: 43f00000 .long 0x43f00000 + 2d9c: 8800759c .long 0x8800759c + 2da0: 7e37e43c .long 0x7e37e43c + 2da4: 3ff71547 .long 0x3ff71547 + 2da8: f85ddf44 .long 0xf85ddf44 + 2dac: 3e54ae0b .long 0x3e54ae0b + 2db0: 3fd00000 .long 0x3fd00000 + 2db4: 55555555 .long 0x55555555 + 2db8: 3fd55555 .long 0x3fd55555 + 2dbc: 652b82fe .long 0x652b82fe + 2dc0: bff00000 .long 0xbff00000 + 2dc4: 40900000 .long 0x40900000 + 2dc8: bf700000 .long 0xbf700000 + 2dcc: 000fffff .long 0x000fffff + 2dd0: 0003988e .long 0x0003988e + 2dd4: 000bb679 .long 0x000bb679 + 2dd8: fff00000 .long 0xfff00000 + 2ddc: 0000b2e4 .long 0x0000b2e4 + 2de0: b80b st.w r0, (r14, 0x2c) + 2de2: b82c st.w r1, (r14, 0x30) + 2de4: 9809 ld.w r0, (r14, 0x24) + 2de6: 982a ld.w r1, (r14, 0x28) + 2de8: e00007cc bsr 0x3d80 // 3d80 <__muldf3> + 2dec: b803 st.w r0, (r14, 0xc) + 2dee: 3280 movi r2, 128 + 2df0: 5701 asri r0, r7, 1 + 2df2: 6d87 mov r6, r1 + 2df4: 38bd bseti r0, 29 + 2df6: 422c lsli r1, r2, 12 + 2df8: 6004 addu r0, r1 + 2dfa: 45b2 lsli r5, r5, 18 + 2dfc: 6140 addu r5, r0 + 2dfe: 6cd7 mov r3, r5 + 2e00: 3200 movi r2, 0 + 2e02: 6c5b mov r1, r6 + 2e04: 3000 movi r0, 0 + 2e06: e00007bd bsr 0x3d80 // 3d80 <__muldf3> + 2e0a: 6c83 mov r2, r0 + 2e0c: 6cc7 mov r3, r1 + 2e0e: 9809 ld.w r0, (r14, 0x24) + 2e10: 982a ld.w r1, (r14, 0x28) + 2e12: e000079b bsr 0x3d48 // 3d48 <__subdf3> + 2e16: b809 st.w r0, (r14, 0x24) + 2e18: 9845 ld.w r2, (r14, 0x14) + 2e1a: 9866 ld.w r3, (r14, 0x18) + 2e1c: b82a st.w r1, (r14, 0x28) + 2e1e: 3000 movi r0, 0 + 2e20: 6c57 mov r1, r5 + 2e22: e0000793 bsr 0x3d48 // 3d48 <__subdf3> + 2e26: 6c83 mov r2, r0 + 2e28: 6cc7 mov r3, r1 + 2e2a: 6c13 mov r0, r4 + 2e2c: 6c5f mov r1, r7 + 2e2e: e000078d bsr 0x3d48 // 3d48 <__subdf3> + 2e32: 6cdb mov r3, r6 + 2e34: 3200 movi r2, 0 + 2e36: e00007a5 bsr 0x3d80 // 3d80 <__muldf3> + 2e3a: 6c83 mov r2, r0 + 2e3c: 6cc7 mov r3, r1 + 2e3e: 9809 ld.w r0, (r14, 0x24) + 2e40: 982a ld.w r1, (r14, 0x28) + 2e42: e0000783 bsr 0x3d48 // 3d48 <__subdf3> + 2e46: 984b ld.w r2, (r14, 0x2c) + 2e48: 986c ld.w r3, (r14, 0x30) + 2e4a: e000079b bsr 0x3d80 // 3d80 <__muldf3> + 2e4e: 9843 ld.w r2, (r14, 0xc) + 2e50: 6cdb mov r3, r6 + 2e52: b805 st.w r0, (r14, 0x14) + 2e54: b826 st.w r1, (r14, 0x18) + 2e56: 6c0b mov r0, r2 + 2e58: 6c5b mov r1, r6 + 2e5a: e0000793 bsr 0x3d80 // 3d80 <__muldf3> + 2e5e: ea820113 lrw r2, 0x4a454eef // 32a8 <__GI_pow+0x8f4> + 2e62: ea830113 lrw r3, 0x3fca7e28 // 32ac <__GI_pow+0x8f8> + 2e66: 6d43 mov r5, r0 + 2e68: 6d07 mov r4, r1 + 2e6a: e000078b bsr 0x3d80 // 3d80 <__muldf3> + 2e6e: ea820111 lrw r2, 0x93c9db65 // 32b0 <__GI_pow+0x8fc> + 2e72: ea830111 lrw r3, 0x3fcd864a // 32b4 <__GI_pow+0x900> + 2e76: e0000751 bsr 0x3d18 // 3d18 <__adddf3> + 2e7a: 6c97 mov r2, r5 + 2e7c: 6cd3 mov r3, r4 + 2e7e: e0000781 bsr 0x3d80 // 3d80 <__muldf3> + 2e82: ea82010e lrw r2, 0xa91d4101 // 32b8 <__GI_pow+0x904> + 2e86: ea83010e lrw r3, 0x3fd17460 // 32bc <__GI_pow+0x908> + 2e8a: e0000747 bsr 0x3d18 // 3d18 <__adddf3> + 2e8e: 6c97 mov r2, r5 + 2e90: 6cd3 mov r3, r4 + 2e92: e0000777 bsr 0x3d80 // 3d80 <__muldf3> + 2e96: ea82010b lrw r2, 0x518f264d // 32c0 <__GI_pow+0x90c> + 2e9a: ea83010b lrw r3, 0x3fd55555 // 32c4 <__GI_pow+0x910> + 2e9e: e000073d bsr 0x3d18 // 3d18 <__adddf3> + 2ea2: 6c97 mov r2, r5 + 2ea4: 6cd3 mov r3, r4 + 2ea6: e000076d bsr 0x3d80 // 3d80 <__muldf3> + 2eaa: ea820108 lrw r2, 0xdb6fabff // 32c8 <__GI_pow+0x914> + 2eae: ea830108 lrw r3, 0x3fdb6db6 // 32cc <__GI_pow+0x918> + 2eb2: e0000733 bsr 0x3d18 // 3d18 <__adddf3> + 2eb6: 6c97 mov r2, r5 + 2eb8: 6cd3 mov r3, r4 + 2eba: e0000763 bsr 0x3d80 // 3d80 <__muldf3> + 2ebe: ea820105 lrw r2, 0x33333303 // 32d0 <__GI_pow+0x91c> + 2ec2: ea830105 lrw r3, 0x3fe33333 // 32d4 <__GI_pow+0x920> + 2ec6: e0000729 bsr 0x3d18 // 3d18 <__adddf3> + 2eca: 6dc3 mov r7, r0 + 2ecc: 6c97 mov r2, r5 + 2ece: 6cd3 mov r3, r4 + 2ed0: b829 st.w r1, (r14, 0x24) + 2ed2: 6c17 mov r0, r5 + 2ed4: 6c53 mov r1, r4 + 2ed6: e0000755 bsr 0x3d80 // 3d80 <__muldf3> + 2eda: 6c83 mov r2, r0 + 2edc: 6cc7 mov r3, r1 + 2ede: 6c1f mov r0, r7 + 2ee0: 9829 ld.w r1, (r14, 0x24) + 2ee2: e000074f bsr 0x3d80 // 3d80 <__muldf3> + 2ee6: 6d43 mov r5, r0 + 2ee8: 6d07 mov r4, r1 + 2eea: 6cdb mov r3, r6 + 2eec: 3200 movi r2, 0 + 2eee: 9803 ld.w r0, (r14, 0xc) + 2ef0: 6c5b mov r1, r6 + 2ef2: e0000713 bsr 0x3d18 // 3d18 <__adddf3> + 2ef6: 9845 ld.w r2, (r14, 0x14) + 2ef8: 9866 ld.w r3, (r14, 0x18) + 2efa: e0000743 bsr 0x3d80 // 3d80 <__muldf3> + 2efe: 6c97 mov r2, r5 + 2f00: 6cd3 mov r3, r4 + 2f02: e000070b bsr 0x3d18 // 3d18 <__adddf3> + 2f06: 6d43 mov r5, r0 + 2f08: 6cdb mov r3, r6 + 2f0a: b829 st.w r1, (r14, 0x24) + 2f0c: 3200 movi r2, 0 + 2f0e: 6c5b mov r1, r6 + 2f10: 3000 movi r0, 0 + 2f12: e0000737 bsr 0x3d80 // 3d80 <__muldf3> + 2f16: 3200 movi r2, 0 + 2f18: 006f lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f1a: 6dc3 mov r7, r0 + 2f1c: b82a st.w r1, (r14, 0x28) + 2f1e: e00006fd bsr 0x3d18 // 3d18 <__adddf3> + 2f22: 6c97 mov r2, r5 + 2f24: 9869 ld.w r3, (r14, 0x24) + 2f26: e00006f9 bsr 0x3d18 // 3d18 <__adddf3> + 2f2a: 6d07 mov r4, r1 + 2f2c: 6cc7 mov r3, r1 + 2f2e: 3200 movi r2, 0 + 2f30: 6c5b mov r1, r6 + 2f32: 3000 movi r0, 0 + 2f34: e0000726 bsr 0x3d80 // 3d80 <__muldf3> + 2f38: b80b st.w r0, (r14, 0x2c) + 2f3a: b82c st.w r1, (r14, 0x30) + 2f3c: 3200 movi r2, 0 + 2f3e: 0078 lrw r3, 0x40080000 // 32d8 <__GI_pow+0x924> + 2f40: 6c53 mov r1, r4 + 2f42: 3000 movi r0, 0 + 2f44: e0000702 bsr 0x3d48 // 3d48 <__subdf3> + 2f48: 6c9f mov r2, r7 + 2f4a: 986a ld.w r3, (r14, 0x28) + 2f4c: e00006fe bsr 0x3d48 // 3d48 <__subdf3> + 2f50: 6c83 mov r2, r0 + 2f52: 6cc7 mov r3, r1 + 2f54: 6c17 mov r0, r5 + 2f56: 9829 ld.w r1, (r14, 0x24) + 2f58: e00006f8 bsr 0x3d48 // 3d48 <__subdf3> + 2f5c: 9843 ld.w r2, (r14, 0xc) + 2f5e: 6cdb mov r3, r6 + 2f60: e0000710 bsr 0x3d80 // 3d80 <__muldf3> + 2f64: 6d83 mov r6, r0 + 2f66: 6d47 mov r5, r1 + 2f68: 6cd3 mov r3, r4 + 2f6a: 3200 movi r2, 0 + 2f6c: 9805 ld.w r0, (r14, 0x14) + 2f6e: 9826 ld.w r1, (r14, 0x18) + 2f70: e0000708 bsr 0x3d80 // 3d80 <__muldf3> + 2f74: 6c83 mov r2, r0 + 2f76: 6cc7 mov r3, r1 + 2f78: 6c1b mov r0, r6 + 2f7a: 6c57 mov r1, r5 + 2f7c: e00006ce bsr 0x3d18 // 3d18 <__adddf3> + 2f80: 6dc3 mov r7, r0 + 2f82: 6d87 mov r6, r1 + 2f84: 6c83 mov r2, r0 + 2f86: 6cc7 mov r3, r1 + 2f88: 980b ld.w r0, (r14, 0x2c) + 2f8a: 982c ld.w r1, (r14, 0x30) + 2f8c: e00006c6 bsr 0x3d18 // 3d18 <__adddf3> + 2f90: 33e0 movi r3, 224 + 2f92: 4358 lsli r2, r3, 24 + 2f94: 3000 movi r0, 0 + 2f96: 016d lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2f98: 6d07 mov r4, r1 + 2f9a: e00006f3 bsr 0x3d80 // 3d80 <__muldf3> + 2f9e: b805 st.w r0, (r14, 0x14) + 2fa0: b826 st.w r1, (r14, 0x18) + 2fa2: 984b ld.w r2, (r14, 0x2c) + 2fa4: 986c ld.w r3, (r14, 0x30) + 2fa6: 6c53 mov r1, r4 + 2fa8: 3000 movi r0, 0 + 2faa: e00006cf bsr 0x3d48 // 3d48 <__subdf3> + 2fae: 6c83 mov r2, r0 + 2fb0: 6cc7 mov r3, r1 + 2fb2: 6c1f mov r0, r7 + 2fb4: 6c5b mov r1, r6 + 2fb6: e00006c9 bsr 0x3d48 // 3d48 <__subdf3> + 2fba: 0155 lrw r2, 0xdc3a03fd // 32e0 <__GI_pow+0x92c> + 2fbc: 0177 lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2fbe: e00006e1 bsr 0x3d80 // 3d80 <__muldf3> + 2fc2: 6dc3 mov r7, r0 + 2fc4: 6d47 mov r5, r1 + 2fc6: 0157 lrw r2, 0x145b01f5 // 32e4 <__GI_pow+0x930> + 2fc8: 0177 lrw r3, 0xbe3e2fe0 // 32e8 <__GI_pow+0x934> + 2fca: 6c53 mov r1, r4 + 2fcc: 3000 movi r0, 0 + 2fce: e00006d9 bsr 0x3d80 // 3d80 <__muldf3> + 2fd2: 6c83 mov r2, r0 + 2fd4: 6cc7 mov r3, r1 + 2fd6: 6c1f mov r0, r7 + 2fd8: 6c57 mov r1, r5 + 2fda: e000069f bsr 0x3d18 // 3d18 <__adddf3> + 2fde: 01db lrw r6, 0xb2e4 // 32ec <__GI_pow+0x938> + 2fe0: 9848 ld.w r2, (r14, 0x20) + 2fe2: 6188 addu r6, r2 + 2fe4: 9644 ld.w r2, (r6, 0x10) + 2fe6: 9665 ld.w r3, (r6, 0x14) + 2fe8: e0000698 bsr 0x3d18 // 3d18 <__adddf3> + 2fec: b809 st.w r0, (r14, 0x24) + 2fee: 9804 ld.w r0, (r14, 0x10) + 2ff0: b82a st.w r1, (r14, 0x28) + 2ff2: e00008e5 bsr 0x41bc // 41bc <__floatsidf> + 2ff6: 6d83 mov r6, r0 + 2ff8: 0202 lrw r0, 0xb2e4 // 32ec <__GI_pow+0x938> + 2ffa: 6d47 mov r5, r1 + 2ffc: 201f addi r0, 32 + 2ffe: 9828 ld.w r1, (r14, 0x20) + 3000: 6004 addu r0, r1 + 3002: 9080 ld.w r4, (r0, 0x0) + 3004: 90e1 ld.w r7, (r0, 0x4) + 3006: 9849 ld.w r2, (r14, 0x24) + 3008: 986a ld.w r3, (r14, 0x28) + 300a: 9805 ld.w r0, (r14, 0x14) + 300c: 9826 ld.w r1, (r14, 0x18) + 300e: e0000685 bsr 0x3d18 // 3d18 <__adddf3> + 3012: 6c93 mov r2, r4 + 3014: 6cdf mov r3, r7 + 3016: e0000681 bsr 0x3d18 // 3d18 <__adddf3> + 301a: 6c9b mov r2, r6 + 301c: 6cd7 mov r3, r5 + 301e: e000067d bsr 0x3d18 // 3d18 <__adddf3> + 3022: 6c9b mov r2, r6 + 3024: 6cd7 mov r3, r5 + 3026: 3000 movi r0, 0 + 3028: b823 st.w r1, (r14, 0xc) + 302a: e000068f bsr 0x3d48 // 3d48 <__subdf3> + 302e: 6c93 mov r2, r4 + 3030: 6cdf mov r3, r7 + 3032: e000068b bsr 0x3d48 // 3d48 <__subdf3> + 3036: 9845 ld.w r2, (r14, 0x14) + 3038: 9866 ld.w r3, (r14, 0x18) + 303a: e0000687 bsr 0x3d48 // 3d48 <__subdf3> + 303e: 6c83 mov r2, r0 + 3040: 6cc7 mov r3, r1 + 3042: 9809 ld.w r0, (r14, 0x24) + 3044: 982a ld.w r1, (r14, 0x28) + 3046: 060b br 0x2c5c // 2c5c <__GI_pow+0x2a8> + 3048: 3700 movi r7, 0 + 304a: 0663 br 0x2d10 // 2d10 <__GI_pow+0x35c> + 304c: 3501 movi r5, 1 + 304e: 0676 br 0x2d3a // 2d3a <__GI_pow+0x386> + 3050: 0277 lrw r3, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3052: 0611 br 0x2c74 // 2c74 <__GI_pow+0x2c0> + 3054: 0257 lrw r2, 0x652b82fe // 32f4 <__GI_pow+0x940> + 3056: 0276 lrw r3, 0x3c971547 // 32f8 <__GI_pow+0x944> + 3058: 6c1f mov r0, r7 + 305a: 6c5b mov r1, r6 + 305c: e000065e bsr 0x3d18 // 3d18 <__adddf3> + 3060: b805 st.w r0, (r14, 0x14) + 3062: b826 st.w r1, (r14, 0x18) + 3064: 9842 ld.w r2, (r14, 0x8) + 3066: 6cd7 mov r3, r5 + 3068: 9800 ld.w r0, (r14, 0x0) + 306a: 6c53 mov r1, r4 + 306c: e000066e bsr 0x3d48 // 3d48 <__subdf3> + 3070: 6c83 mov r2, r0 + 3072: 6cc7 mov r3, r1 + 3074: 9805 ld.w r0, (r14, 0x14) + 3076: 9826 ld.w r1, (r14, 0x18) + 3078: e0000848 bsr 0x4108 // 4108 <__gtdf2> + 307c: 3820 cmplti r0, 1 + 307e: 0802 bt 0x3082 // 3082 <__GI_pow+0x6ce> + 3080: 0633 br 0x2ce6 // 2ce6 <__GI_pow+0x332> + 3082: 4421 lsli r1, r4, 1 + 3084: 4901 lsri r0, r1, 1 + 3086: 0361 lrw r3, 0x3fe00000 // 32fc <__GI_pow+0x948> + 3088: 640d cmplt r3, r0 + 308a: 0cfd bf 0x3284 // 3284 <__GI_pow+0x8d0> + 308c: 5034 asri r1, r0, 20 + 308e: 0342 lrw r2, 0xfffffc02 // 3300 <__GI_pow+0x94c> + 3090: 3080 movi r0, 128 + 3092: 6048 addu r1, r2 + 3094: 404d lsli r2, r0, 13 + 3096: 7086 asr r2, r1 + 3098: 6090 addu r2, r4 + 309a: 4261 lsli r3, r2, 1 + 309c: 4b35 lsri r1, r3, 21 + 309e: 0305 lrw r0, 0xfffffc01 // 3304 <__GI_pow+0x950> + 30a0: 6040 addu r1, r0 + 30a2: 0365 lrw r3, 0xfffff // 3308 <__GI_pow+0x954> + 30a4: 70c6 asr r3, r1 + 30a6: 6c0b mov r0, r2 + 30a8: 680d andn r0, r3 + 30aa: 424c lsli r2, r2, 12 + 30ac: 6cc3 mov r3, r0 + 30ae: 4a4c lsri r2, r2, 12 + 30b0: 3014 movi r0, 20 + 30b2: 3ab4 bseti r2, 20 + 30b4: 5825 subu r1, r0, r1 + 30b6: 7086 asr r2, r1 + 30b8: 3cdf btsti r4, 31 + 30ba: b840 st.w r2, (r14, 0x0) + 30bc: 0c05 bf 0x30c6 // 30c6 <__GI_pow+0x712> + 30be: 9840 ld.w r2, (r14, 0x0) + 30c0: 3400 movi r4, 0 + 30c2: 610a subu r4, r2 + 30c4: b880 st.w r4, (r14, 0x0) + 30c6: 3200 movi r2, 0 + 30c8: 9802 ld.w r0, (r14, 0x8) + 30ca: 6c57 mov r1, r5 + 30cc: e000063e bsr 0x3d48 // 3d48 <__subdf3> + 30d0: b803 st.w r0, (r14, 0xc) + 30d2: b824 st.w r1, (r14, 0x10) + 30d4: 9803 ld.w r0, (r14, 0xc) + 30d6: 6c9f mov r2, r7 + 30d8: 6cdb mov r3, r6 + 30da: 9824 ld.w r1, (r14, 0x10) + 30dc: e000061e bsr 0x3d18 // 3d18 <__adddf3> + 30e0: 3200 movi r2, 0 + 30e2: 0374 lrw r3, 0x3fe62e43 // 330c <__GI_pow+0x958> + 30e4: 3000 movi r0, 0 + 30e6: 6d07 mov r4, r1 + 30e8: e000064c bsr 0x3d80 // 3d80 <__muldf3> + 30ec: 6d47 mov r5, r1 + 30ee: 9843 ld.w r2, (r14, 0xc) + 30f0: 9864 ld.w r3, (r14, 0x10) + 30f2: b802 st.w r0, (r14, 0x8) + 30f4: 6c53 mov r1, r4 + 30f6: 3000 movi r0, 0 + 30f8: e0000628 bsr 0x3d48 // 3d48 <__subdf3> + 30fc: 6c83 mov r2, r0 + 30fe: 6cc7 mov r3, r1 + 3100: 6c1f mov r0, r7 + 3102: 6c5b mov r1, r6 + 3104: e0000622 bsr 0x3d48 // 3d48 <__subdf3> + 3108: 035d lrw r2, 0xfefa39ef // 3310 <__GI_pow+0x95c> + 310a: 037c lrw r3, 0x3fe62e42 // 3314 <__GI_pow+0x960> + 310c: e000063a bsr 0x3d80 // 3d80 <__muldf3> + 3110: 6dc3 mov r7, r0 + 3112: 6d87 mov r6, r1 + 3114: 035e lrw r2, 0xca86c39 // 3318 <__GI_pow+0x964> + 3116: 037d lrw r3, 0xbe205c61 // 331c <__GI_pow+0x968> + 3118: 6c53 mov r1, r4 + 311a: 3000 movi r0, 0 + 311c: e0000632 bsr 0x3d80 // 3d80 <__muldf3> + 3120: 6c83 mov r2, r0 + 3122: 6cc7 mov r3, r1 + 3124: 6c1f mov r0, r7 + 3126: 6c5b mov r1, r6 + 3128: e00005f8 bsr 0x3d18 // 3d18 <__adddf3> + 312c: 6d07 mov r4, r1 + 312e: 6c83 mov r2, r0 + 3130: 6cc7 mov r3, r1 + 3132: b803 st.w r0, (r14, 0xc) + 3134: 6c57 mov r1, r5 + 3136: 9802 ld.w r0, (r14, 0x8) + 3138: e00005f0 bsr 0x3d18 // 3d18 <__adddf3> + 313c: 9842 ld.w r2, (r14, 0x8) + 313e: 6cd7 mov r3, r5 + 3140: 6dc3 mov r7, r0 + 3142: 6d87 mov r6, r1 + 3144: e0000602 bsr 0x3d48 // 3d48 <__subdf3> + 3148: 6c83 mov r2, r0 + 314a: 6cc7 mov r3, r1 + 314c: 9803 ld.w r0, (r14, 0xc) + 314e: 6c53 mov r1, r4 + 3150: e00005fc bsr 0x3d48 // 3d48 <__subdf3> + 3154: b802 st.w r0, (r14, 0x8) + 3156: b823 st.w r1, (r14, 0xc) + 3158: 6c9f mov r2, r7 + 315a: 6cdb mov r3, r6 + 315c: 6c1f mov r0, r7 + 315e: 6c5b mov r1, r6 + 3160: e0000610 bsr 0x3d80 // 3d80 <__muldf3> + 3164: 134f lrw r2, 0x72bea4d0 // 3320 <__GI_pow+0x96c> + 3166: 1370 lrw r3, 0x3e663769 // 3324 <__GI_pow+0x970> + 3168: 6d43 mov r5, r0 + 316a: 6d07 mov r4, r1 + 316c: e000060a bsr 0x3d80 // 3d80 <__muldf3> + 3170: 134e lrw r2, 0xc5d26bf1 // 3328 <__GI_pow+0x974> + 3172: 136f lrw r3, 0x3ebbbd41 // 332c <__GI_pow+0x978> + 3174: e00005ea bsr 0x3d48 // 3d48 <__subdf3> + 3178: 6c97 mov r2, r5 + 317a: 6cd3 mov r3, r4 + 317c: e0000602 bsr 0x3d80 // 3d80 <__muldf3> + 3180: 134c lrw r2, 0xaf25de2c // 3330 <__GI_pow+0x97c> + 3182: 136d lrw r3, 0x3f11566a // 3334 <__GI_pow+0x980> + 3184: e00005ca bsr 0x3d18 // 3d18 <__adddf3> + 3188: 6c97 mov r2, r5 + 318a: 6cd3 mov r3, r4 + 318c: e00005fa bsr 0x3d80 // 3d80 <__muldf3> + 3190: 134a lrw r2, 0x16bebd93 // 3338 <__GI_pow+0x984> + 3192: 136b lrw r3, 0x3f66c16c // 333c <__GI_pow+0x988> + 3194: e00005da bsr 0x3d48 // 3d48 <__subdf3> + 3198: 6c97 mov r2, r5 + 319a: 6cd3 mov r3, r4 + 319c: e00005f2 bsr 0x3d80 // 3d80 <__muldf3> + 31a0: 1348 lrw r2, 0x5555553e // 3340 <__GI_pow+0x98c> + 31a2: 1369 lrw r3, 0x3fc55555 // 3344 <__GI_pow+0x990> + 31a4: e00005ba bsr 0x3d18 // 3d18 <__adddf3> + 31a8: 6c97 mov r2, r5 + 31aa: 6cd3 mov r3, r4 + 31ac: e00005ea bsr 0x3d80 // 3d80 <__muldf3> + 31b0: 6c83 mov r2, r0 + 31b2: 6cc7 mov r3, r1 + 31b4: 6c1f mov r0, r7 + 31b6: 6c5b mov r1, r6 + 31b8: e00005c8 bsr 0x3d48 // 3d48 <__subdf3> + 31bc: 6d43 mov r5, r0 + 31be: 6d07 mov r4, r1 + 31c0: 6c83 mov r2, r0 + 31c2: 6cc7 mov r3, r1 + 31c4: 6c1f mov r0, r7 + 31c6: 6c5b mov r1, r6 + 31c8: e00005dc bsr 0x3d80 // 3d80 <__muldf3> + 31cc: 3380 movi r3, 128 + 31ce: b804 st.w r0, (r14, 0x10) + 31d0: b825 st.w r1, (r14, 0x14) + 31d2: 3200 movi r2, 0 + 31d4: 4377 lsli r3, r3, 23 + 31d6: 6c17 mov r0, r5 + 31d8: 6c53 mov r1, r4 + 31da: e00005b7 bsr 0x3d48 // 3d48 <__subdf3> + 31de: 6c83 mov r2, r0 + 31e0: 6cc7 mov r3, r1 + 31e2: 9804 ld.w r0, (r14, 0x10) + 31e4: 9825 ld.w r1, (r14, 0x14) + 31e6: e00006e7 bsr 0x3fb4 // 3fb4 <__divdf3> + 31ea: 6d07 mov r4, r1 + 31ec: 6d43 mov r5, r0 + 31ee: 9842 ld.w r2, (r14, 0x8) + 31f0: 9863 ld.w r3, (r14, 0xc) + 31f2: 6c1f mov r0, r7 + 31f4: 6c5b mov r1, r6 + 31f6: e00005c5 bsr 0x3d80 // 3d80 <__muldf3> + 31fa: 9842 ld.w r2, (r14, 0x8) + 31fc: 9863 ld.w r3, (r14, 0xc) + 31fe: e000058d bsr 0x3d18 // 3d18 <__adddf3> + 3202: 6c83 mov r2, r0 + 3204: 6cc7 mov r3, r1 + 3206: 6c17 mov r0, r5 + 3208: 6c53 mov r1, r4 + 320a: e000059f bsr 0x3d48 // 3d48 <__subdf3> + 320e: 6c9f mov r2, r7 + 3210: 6cdb mov r3, r6 + 3212: e000059b bsr 0x3d48 // 3d48 <__subdf3> + 3216: 6c83 mov r2, r0 + 3218: 6cc7 mov r3, r1 + 321a: 3000 movi r0, 0 + 321c: 1135 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 321e: e0000595 bsr 0x3d48 // 3d48 <__subdf3> + 3222: 9840 ld.w r2, (r14, 0x0) + 3224: 4274 lsli r3, r2, 20 + 3226: 60c4 addu r3, r1 + 3228: 5394 asri r4, r3, 20 + 322a: 3c20 cmplti r4, 1 + 322c: 0c2f bf 0x328a // 328a <__GI_pow+0x8d6> + 322e: 9840 ld.w r2, (r14, 0x0) + 3230: e000009a bsr 0x3364 // 3364 <__GI_scalbn> + 3234: 3200 movi r2, 0 + 3236: 9861 ld.w r3, (r14, 0x4) + 3238: e800fc56 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 323c: 4401 lsli r0, r4, 1 + 323e: 4861 lsri r3, r0, 1 + 3240: 1242 lrw r2, 0x4090cbff // 3348 <__GI_pow+0x994> + 3242: 64c9 cmplt r2, r3 + 3244: 0f1f bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3246: 1222 lrw r1, 0x3f6f3400 // 334c <__GI_pow+0x998> + 3248: 6050 addu r1, r4 + 324a: 9800 ld.w r0, (r14, 0x0) + 324c: 6c40 or r1, r0 + 324e: 3940 cmpnei r1, 0 + 3250: 0c0b bf 0x3266 // 3266 <__GI_pow+0x8b2> + 3252: 1240 lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3254: 1260 lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3256: 3000 movi r0, 0 + 3258: 9821 ld.w r1, (r14, 0x4) + 325a: e0000593 bsr 0x3d80 // 3d80 <__muldf3> + 325e: 115d lrw r2, 0xc2f8f359 // 3350 <__GI_pow+0x99c> + 3260: 117d lrw r3, 0x1a56e1f // 3354 <__GI_pow+0x9a0> + 3262: e800fc41 br 0x2ae4 // 2ae4 <__GI_pow+0x130> + 3266: 9842 ld.w r2, (r14, 0x8) + 3268: 6cd7 mov r3, r5 + 326a: 9800 ld.w r0, (r14, 0x0) + 326c: 6c53 mov r1, r4 + 326e: e000056d bsr 0x3d48 // 3d48 <__subdf3> + 3272: 6c83 mov r2, r0 + 3274: 6cc7 mov r3, r1 + 3276: 6c1f mov r0, r7 + 3278: 6c5b mov r1, r6 + 327a: e0000783 bsr 0x4180 // 4180 <__ledf2> + 327e: 3820 cmplti r0, 1 + 3280: 0f01 bf 0x3082 // 3082 <__GI_pow+0x6ce> + 3282: 07e8 br 0x3252 // 3252 <__GI_pow+0x89e> + 3284: 3500 movi r5, 0 + 3286: b8a0 st.w r5, (r14, 0x0) + 3288: 0726 br 0x30d4 // 30d4 <__GI_pow+0x720> + 328a: 6c4f mov r1, r3 + 328c: 07d4 br 0x3234 // 3234 <__GI_pow+0x880> + 328e: 3400 movi r4, 0 + 3290: 1038 lrw r1, 0x3ff00000 // 32f0 <__GI_pow+0x93c> + 3292: e800fbb5 br 0x29fc // 29fc <__GI_pow+0x48> + 3296: 3400 movi r4, 0 + 3298: 9820 ld.w r1, (r14, 0x0) + 329a: e800fbb1 br 0x29fc // 29fc <__GI_pow+0x48> + 329e: 6d1f mov r4, r7 + 32a0: 6c5b mov r1, r6 + 32a2: e800fbad br 0x29fc // 29fc <__GI_pow+0x48> + 32a6: 0000 bkpt + 32a8: 4a454eef .long 0x4a454eef + 32ac: 3fca7e28 .long 0x3fca7e28 + 32b0: 93c9db65 .long 0x93c9db65 + 32b4: 3fcd864a .long 0x3fcd864a + 32b8: a91d4101 .long 0xa91d4101 + 32bc: 3fd17460 .long 0x3fd17460 + 32c0: 518f264d .long 0x518f264d + 32c4: 3fd55555 .long 0x3fd55555 + 32c8: db6fabff .long 0xdb6fabff + 32cc: 3fdb6db6 .long 0x3fdb6db6 + 32d0: 33333303 .long 0x33333303 + 32d4: 3fe33333 .long 0x3fe33333 + 32d8: 40080000 .long 0x40080000 + 32dc: 3feec709 .long 0x3feec709 + 32e0: dc3a03fd .long 0xdc3a03fd + 32e4: 145b01f5 .long 0x145b01f5 + 32e8: be3e2fe0 .long 0xbe3e2fe0 + 32ec: 0000b2e4 .long 0x0000b2e4 + 32f0: 3ff00000 .long 0x3ff00000 + 32f4: 652b82fe .long 0x652b82fe + 32f8: 3c971547 .long 0x3c971547 + 32fc: 3fe00000 .long 0x3fe00000 + 3300: fffffc02 .long 0xfffffc02 + 3304: fffffc01 .long 0xfffffc01 + 3308: 000fffff .long 0x000fffff + 330c: 3fe62e43 .long 0x3fe62e43 + 3310: fefa39ef .long 0xfefa39ef + 3314: 3fe62e42 .long 0x3fe62e42 + 3318: 0ca86c39 .long 0x0ca86c39 + 331c: be205c61 .long 0xbe205c61 + 3320: 72bea4d0 .long 0x72bea4d0 + 3324: 3e663769 .long 0x3e663769 + 3328: c5d26bf1 .long 0xc5d26bf1 + 332c: 3ebbbd41 .long 0x3ebbbd41 + 3330: af25de2c .long 0xaf25de2c + 3334: 3f11566a .long 0x3f11566a + 3338: 16bebd93 .long 0x16bebd93 + 333c: 3f66c16c .long 0x3f66c16c + 3340: 5555553e .long 0x5555553e + 3344: 3fc55555 .long 0x3fc55555 + 3348: 4090cbff .long 0x4090cbff + 334c: 3f6f3400 .long 0x3f6f3400 + 3350: c2f8f359 .long 0xc2f8f359 + 3354: 01a56e1f .long 0x01a56e1f + 3358: 3300 movi r3, 0 + 335a: e800fb94 br 0x2a82 // 2a82 <__GI_pow+0xce> + +0000335e <__GI_fabs>: + 335e: 4121 lsli r1, r1, 1 + 3360: 4921 lsri r1, r1, 1 + 3362: 783c jmp r15 + +00003364 <__GI_scalbn>: + 3364: 14c1 push r4 + 3366: 6cc7 mov r3, r1 + 3368: 6cc0 or r3, r0 + 336a: 3b40 cmpnei r3, 0 + 336c: 0c08 bf 0x337c // 337c <__GI_scalbn+0x18> + 336e: 1065 lrw r3, 0x7ff00000 // 3380 <__GI_scalbn+0x1c> + 3370: 6d07 mov r4, r1 + 3372: 690c and r4, r3 + 3374: 4254 lsli r2, r2, 20 + 3376: 6090 addu r2, r4 + 3378: 684d andn r1, r3 + 337a: 6c48 or r1, r2 + 337c: 1481 pop r4 + 337e: 0000 bkpt + 3380: 7ff00000 .long 0x7ff00000 + +00003384 <__GI_sqrt>: + 3384: 14d4 push r4-r7, r15 + 3386: 1423 subi r14, r14, 12 + 3388: 127a lrw r3, 0x7ff00000 // 34f0 <__GI_sqrt+0x16c> + 338a: 6d43 mov r5, r0 + 338c: 6d07 mov r4, r1 + 338e: 6c07 mov r0, r1 + 3390: 684c and r1, r3 + 3392: 64c6 cmpne r1, r3 + 3394: 6c97 mov r2, r5 + 3396: 0812 bt 0x33ba // 33ba <__GI_sqrt+0x36> + 3398: 6cd3 mov r3, r4 + 339a: 6c17 mov r0, r5 + 339c: 6c53 mov r1, r4 + 339e: e00004f1 bsr 0x3d80 // 3d80 <__muldf3> + 33a2: 6c83 mov r2, r0 + 33a4: 6cc7 mov r3, r1 + 33a6: 6c17 mov r0, r5 + 33a8: 6c53 mov r1, r4 + 33aa: e00004b7 bsr 0x3d18 // 3d18 <__adddf3> + 33ae: 6d43 mov r5, r0 + 33b0: 6d07 mov r4, r1 + 33b2: 6c17 mov r0, r5 + 33b4: 6c53 mov r1, r4 + 33b6: 1403 addi r14, r14, 12 + 33b8: 1494 pop r4-r7, r15 + 33ba: 3c20 cmplti r4, 1 + 33bc: 0c13 bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33be: 4461 lsli r3, r4, 1 + 33c0: 4b21 lsri r1, r3, 1 + 33c2: 6c54 or r1, r5 + 33c4: 3940 cmpnei r1, 0 + 33c6: 0ff6 bf 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 33c8: 3c40 cmpnei r4, 0 + 33ca: 0c0c bf 0x33e2 // 33e2 <__GI_sqrt+0x5e> + 33cc: 6c97 mov r2, r5 + 33ce: 6cd3 mov r3, r4 + 33d0: 6c17 mov r0, r5 + 33d2: 6c53 mov r1, r4 + 33d4: e00004ba bsr 0x3d48 // 3d48 <__subdf3> + 33d8: 6c83 mov r2, r0 + 33da: 6cc7 mov r3, r1 + 33dc: e00005ec bsr 0x3fb4 // 3fb4 <__divdf3> + 33e0: 07e7 br 0x33ae // 33ae <__GI_sqrt+0x2a> + 33e2: 5494 asri r4, r4, 20 + 33e4: 3c40 cmpnei r4, 0 + 33e6: 0812 bt 0x340a // 340a <__GI_sqrt+0x86> + 33e8: 3840 cmpnei r0, 0 + 33ea: 0c76 bf 0x34d6 // 34d6 <__GI_sqrt+0x152> + 33ec: 3580 movi r5, 128 + 33ee: 3300 movi r3, 0 + 33f0: 452d lsli r1, r5, 13 + 33f2: 6d83 mov r6, r0 + 33f4: 6984 and r6, r1 + 33f6: 3e40 cmpnei r6, 0 + 33f8: 0c73 bf 0x34de // 34de <__GI_sqrt+0x15a> + 33fa: 5b23 subi r1, r3, 1 + 33fc: 3620 movi r6, 32 + 33fe: 6106 subu r4, r1 + 3400: 618e subu r6, r3 + 3402: 6c4b mov r1, r2 + 3404: 7059 lsr r1, r6 + 3406: 6c04 or r0, r1 + 3408: 708c lsl r2, r3 + 340a: 117b lrw r3, 0xfffffc01 // 34f4 <__GI_sqrt+0x170> + 340c: 610c addu r4, r3 + 340e: 3601 movi r6, 1 + 3410: 400c lsli r0, r0, 12 + 3412: 6990 and r6, r4 + 3414: 480c lsri r0, r0, 12 + 3416: 3e40 cmpnei r6, 0 + 3418: 38b4 bseti r0, 20 + 341a: 0c05 bf 0x3424 // 3424 <__GI_sqrt+0xa0> + 341c: 4a3f lsri r1, r2, 31 + 341e: 40a1 lsli r5, r0, 1 + 3420: 5914 addu r0, r1, r5 + 3422: 4241 lsli r2, r2, 1 + 3424: 4a7f lsri r3, r2, 31 + 3426: 60c0 addu r3, r0 + 3428: 5481 asri r4, r4, 1 + 342a: 3680 movi r6, 128 + 342c: 3100 movi r1, 0 + 342e: 60c0 addu r3, r0 + 3430: b882 st.w r4, (r14, 0x8) + 3432: 4241 lsli r2, r2, 1 + 3434: 3516 movi r5, 22 + 3436: 460e lsli r0, r6, 14 + 3438: b820 st.w r1, (r14, 0x0) + 343a: 5980 addu r4, r1, r0 + 343c: 650d cmplt r3, r4 + 343e: 0806 bt 0x344a // 344a <__GI_sqrt+0xc6> + 3440: 98c0 ld.w r6, (r14, 0x0) + 3442: 6180 addu r6, r0 + 3444: 5c20 addu r1, r4, r0 + 3446: 60d2 subu r3, r4 + 3448: b8c0 st.w r6, (r14, 0x0) + 344a: 2d00 subi r5, 1 + 344c: 4a9f lsri r4, r2, 31 + 344e: 4361 lsli r3, r3, 1 + 3450: 3d40 cmpnei r5, 0 + 3452: 60d0 addu r3, r4 + 3454: 4241 lsli r2, r2, 1 + 3456: 4801 lsri r0, r0, 1 + 3458: 0bf1 bt 0x343a // 343a <__GI_sqrt+0xb6> + 345a: 3620 movi r6, 32 + 345c: 3480 movi r4, 128 + 345e: 3000 movi r0, 0 + 3460: b8c1 st.w r6, (r14, 0x4) + 3462: 4498 lsli r4, r4, 24 + 3464: 64c5 cmplt r1, r3 + 3466: 5cd4 addu r6, r4, r5 + 3468: 0805 bt 0x3472 // 3472 <__GI_sqrt+0xee> + 346a: 644e cmpne r3, r1 + 346c: 0810 bt 0x348c // 348c <__GI_sqrt+0x108> + 346e: 6588 cmphs r2, r6 + 3470: 0c0e bf 0x348c // 348c <__GI_sqrt+0x108> + 3472: 3edf btsti r6, 31 + 3474: 5eb0 addu r5, r6, r4 + 3476: 0c37 bf 0x34e4 // 34e4 <__GI_sqrt+0x160> + 3478: 3ddf btsti r5, 31 + 347a: 0835 bt 0x34e4 // 34e4 <__GI_sqrt+0x160> + 347c: 59e2 addi r7, r1, 1 + 347e: 6588 cmphs r2, r6 + 3480: 60c6 subu r3, r1 + 3482: 0802 bt 0x3486 // 3486 <__GI_sqrt+0x102> + 3484: 2b00 subi r3, 1 + 3486: 609a subu r2, r6 + 3488: 6010 addu r0, r4 + 348a: 6c5f mov r1, r7 + 348c: 4adf lsri r6, r2, 31 + 348e: 618c addu r6, r3 + 3490: 60d8 addu r3, r6 + 3492: 98c1 ld.w r6, (r14, 0x4) + 3494: 2e00 subi r6, 1 + 3496: 3e40 cmpnei r6, 0 + 3498: 4241 lsli r2, r2, 1 + 349a: 4c81 lsri r4, r4, 1 + 349c: b8c1 st.w r6, (r14, 0x4) + 349e: 0be3 bt 0x3464 // 3464 <__GI_sqrt+0xe0> + 34a0: 6cc8 or r3, r2 + 34a2: 3b40 cmpnei r3, 0 + 34a4: 0c09 bf 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34a6: 3300 movi r3, 0 + 34a8: 2b00 subi r3, 1 + 34aa: 64c2 cmpne r0, r3 + 34ac: 081e bt 0x34e8 // 34e8 <__GI_sqrt+0x164> + 34ae: 9800 ld.w r0, (r14, 0x0) + 34b0: 2000 addi r0, 1 + 34b2: b800 st.w r0, (r14, 0x0) + 34b4: 3000 movi r0, 0 + 34b6: 3401 movi r4, 1 + 34b8: 9860 ld.w r3, (r14, 0x0) + 34ba: 98a0 ld.w r5, (r14, 0x0) + 34bc: 690c and r4, r3 + 34be: 5541 asri r2, r5, 1 + 34c0: 102e lrw r1, 0x3fe00000 // 34f8 <__GI_sqrt+0x174> + 34c2: 3c40 cmpnei r4, 0 + 34c4: 6048 addu r1, r2 + 34c6: 4801 lsri r0, r0, 1 + 34c8: 0c02 bf 0x34cc // 34cc <__GI_sqrt+0x148> + 34ca: 38bf bseti r0, 31 + 34cc: 98a2 ld.w r5, (r14, 0x8) + 34ce: 4594 lsli r4, r5, 20 + 34d0: 6104 addu r4, r1 + 34d2: 6d43 mov r5, r0 + 34d4: 076f br 0x33b2 // 33b2 <__GI_sqrt+0x2e> + 34d6: 4a0b lsri r0, r2, 11 + 34d8: 2c14 subi r4, 21 + 34da: 4255 lsli r2, r2, 21 + 34dc: 0786 br 0x33e8 // 33e8 <__GI_sqrt+0x64> + 34de: 4001 lsli r0, r0, 1 + 34e0: 2300 addi r3, 1 + 34e2: 0788 br 0x33f2 // 33f2 <__GI_sqrt+0x6e> + 34e4: 6dc7 mov r7, r1 + 34e6: 07cc br 0x347e // 347e <__GI_sqrt+0xfa> + 34e8: 2000 addi r0, 1 + 34ea: 3880 bclri r0, 0 + 34ec: 07e5 br 0x34b6 // 34b6 <__GI_sqrt+0x132> + 34ee: 0000 bkpt + 34f0: 7ff00000 .long 0x7ff00000 + 34f4: fffffc01 .long 0xfffffc01 + 34f8: 3fe00000 .long 0x3fe00000 + +000034fc <___gnu_csky_case_uqi>: + 34fc: 1421 subi r14, r14, 4 + 34fe: b820 st.w r1, (r14, 0x0) + 3500: 6c7f mov r1, r15 + 3502: 6040 addu r1, r0 + 3504: 8120 ld.b r1, (r1, 0x0) + 3506: 4121 lsli r1, r1, 1 + 3508: 63c4 addu r15, r1 + 350a: 9820 ld.w r1, (r14, 0x0) + 350c: 1401 addi r14, r14, 4 + 350e: 783c jmp r15 + +00003510 <__fixunssfsi>: + 3510: 14d1 push r4, r15 + 3512: 319e movi r1, 158 + 3514: 4137 lsli r1, r1, 23 + 3516: 6d03 mov r4, r0 + 3518: e000020c bsr 0x3930 // 3930 <__gesf2> + 351c: 38df btsti r0, 31 + 351e: 0c05 bf 0x3528 // 3528 <__fixunssfsi+0x18> + 3520: 6c13 mov r0, r4 + 3522: e0000255 bsr 0x39cc // 39cc <__fixsfsi> + 3526: 1491 pop r4, r15 + 3528: 319e movi r1, 158 + 352a: 4137 lsli r1, r1, 23 + 352c: 6c13 mov r0, r4 + 352e: e00000e1 bsr 0x36f0 // 36f0 <__subsf3> + 3532: e000024d bsr 0x39cc // 39cc <__fixsfsi> + 3536: 3380 movi r3, 128 + 3538: 4378 lsli r3, r3, 24 + 353a: 600c addu r0, r3 + 353c: 1491 pop r4, r15 + ... + +00003540 <__fixunsdfsi>: + 3540: 14d2 push r4-r5, r15 + 3542: 3200 movi r2, 0 + 3544: 106c lrw r3, 0x41e00000 // 3574 <__fixunsdfsi+0x34> + 3546: 6d43 mov r5, r0 + 3548: 6d07 mov r4, r1 + 354a: e00005fd bsr 0x4144 // 4144 <__gedf2> + 354e: 38df btsti r0, 31 + 3550: 0c06 bf 0x355c // 355c <__fixunsdfsi+0x1c> + 3552: 6c17 mov r0, r5 + 3554: 6c53 mov r1, r4 + 3556: e000066b bsr 0x422c // 422c <__fixdfsi> + 355a: 1492 pop r4-r5, r15 + 355c: 3200 movi r2, 0 + 355e: 1066 lrw r3, 0x41e00000 // 3574 <__fixunsdfsi+0x34> + 3560: 6c17 mov r0, r5 + 3562: 6c53 mov r1, r4 + 3564: e00003f2 bsr 0x3d48 // 3d48 <__subdf3> + 3568: e0000662 bsr 0x422c // 422c <__fixdfsi> + 356c: 3380 movi r3, 128 + 356e: 4378 lsli r3, r3, 24 + 3570: 600c addu r0, r3 + 3572: 1492 pop r4-r5, r15 + 3574: 41e00000 .long 0x41e00000 + +00003578 <_fpadd_parts>: + 3578: 14c4 push r4-r7 + 357a: 1421 subi r14, r14, 4 + 357c: 9060 ld.w r3, (r0, 0x0) + 357e: 3b01 cmphsi r3, 2 + 3580: 0c3b bf 0x35f6 // 35f6 <_fpadd_parts+0x7e> + 3582: 9180 ld.w r4, (r1, 0x0) + 3584: 3c01 cmphsi r4, 2 + 3586: 0c3a bf 0x35fa // 35fa <_fpadd_parts+0x82> + 3588: 3b44 cmpnei r3, 4 + 358a: 0c76 bf 0x3676 // 3676 <_fpadd_parts+0xfe> + 358c: 3c44 cmpnei r4, 4 + 358e: 0c36 bf 0x35fa // 35fa <_fpadd_parts+0x82> + 3590: 3c42 cmpnei r4, 2 + 3592: 0c5c bf 0x364a // 364a <_fpadd_parts+0xd2> + 3594: 3b42 cmpnei r3, 2 + 3596: 0c32 bf 0x35fa // 35fa <_fpadd_parts+0x82> + 3598: 90a2 ld.w r5, (r0, 0x8) + 359a: 91e2 ld.w r7, (r1, 0x8) + 359c: 5d9d subu r4, r5, r7 + 359e: 9063 ld.w r3, (r0, 0xc) + 35a0: 3cdf btsti r4, 31 + 35a2: b860 st.w r3, (r14, 0x0) + 35a4: 6d93 mov r6, r4 + 35a6: 9163 ld.w r3, (r1, 0xc) + 35a8: 086f bt 0x3686 // 3686 <_fpadd_parts+0x10e> + 35aa: 3e3f cmplti r6, 32 + 35ac: 082a bt 0x3600 // 3600 <_fpadd_parts+0x88> + 35ae: 655d cmplt r7, r5 + 35b0: 0c5f bf 0x366e // 366e <_fpadd_parts+0xf6> + 35b2: 3300 movi r3, 0 + 35b4: 9001 ld.w r0, (r0, 0x4) + 35b6: 9121 ld.w r1, (r1, 0x4) + 35b8: 6442 cmpne r0, r1 + 35ba: 0c33 bf 0x3620 // 3620 <_fpadd_parts+0xa8> + 35bc: 3840 cmpnei r0, 0 + 35be: 9820 ld.w r1, (r14, 0x0) + 35c0: 0c54 bf 0x3668 // 3668 <_fpadd_parts+0xf0> + 35c2: 60c6 subu r3, r1 + 35c4: 3bdf btsti r3, 31 + 35c6: 0863 bt 0x368c // 368c <_fpadd_parts+0x114> + 35c8: 3100 movi r1, 0 + 35ca: b221 st.w r1, (r2, 0x4) + 35cc: b2a2 st.w r5, (r2, 0x8) + 35ce: b263 st.w r3, (r2, 0xc) + 35d0: 5b23 subi r1, r3, 1 + 35d2: 119b lrw r4, 0x3fffffff // 36bc <_fpadd_parts+0x144> + 35d4: 6504 cmphs r1, r4 + 35d6: 080b bt 0x35ec // 35ec <_fpadd_parts+0x74> + 35d8: 9222 ld.w r1, (r2, 0x8) + 35da: 2900 subi r1, 1 + 35dc: 4361 lsli r3, r3, 1 + 35de: 5b03 subi r0, r3, 1 + 35e0: 6410 cmphs r4, r0 + 35e2: 6d47 mov r5, r1 + 35e4: 2900 subi r1, 1 + 35e6: 0bfb bt 0x35dc // 35dc <_fpadd_parts+0x64> + 35e8: b263 st.w r3, (r2, 0xc) + 35ea: b2a2 st.w r5, (r2, 0x8) + 35ec: 3103 movi r1, 3 + 35ee: 3bdf btsti r3, 31 + 35f0: b220 st.w r1, (r2, 0x0) + 35f2: 0821 bt 0x3634 // 3634 <_fpadd_parts+0xbc> + 35f4: 6c0b mov r0, r2 + 35f6: 1401 addi r14, r14, 4 + 35f8: 1484 pop r4-r7 + 35fa: 6c07 mov r0, r1 + 35fc: 1401 addi r14, r14, 4 + 35fe: 1484 pop r4-r7 + 3600: 3c20 cmplti r4, 1 + 3602: 084c bt 0x369a // 369a <_fpadd_parts+0x122> + 3604: 3401 movi r4, 1 + 3606: 7118 lsl r4, r6 + 3608: 2c00 subi r4, 1 + 360a: 6dcf mov r7, r3 + 360c: 68d0 and r3, r4 + 360e: 3b40 cmpnei r3, 0 + 3610: 9001 ld.w r0, (r0, 0x4) + 3612: 3300 movi r3, 0 + 3614: 9121 ld.w r1, (r1, 0x4) + 3616: 60cd addc r3, r3 + 3618: 71d9 lsr r7, r6 + 361a: 6442 cmpne r0, r1 + 361c: 6cdc or r3, r7 + 361e: 0bcf bt 0x35bc // 35bc <_fpadd_parts+0x44> + 3620: 9820 ld.w r1, (r14, 0x0) + 3622: 604c addu r1, r3 + 3624: 6cc7 mov r3, r1 + 3626: b223 st.w r1, (r2, 0xc) + 3628: 3bdf btsti r3, 31 + 362a: 3103 movi r1, 3 + 362c: b201 st.w r0, (r2, 0x4) + 362e: b2a2 st.w r5, (r2, 0x8) + 3630: b220 st.w r1, (r2, 0x0) + 3632: 0fe1 bf 0x35f4 // 35f4 <_fpadd_parts+0x7c> + 3634: 3001 movi r0, 1 + 3636: 4b21 lsri r1, r3, 1 + 3638: 68c0 and r3, r0 + 363a: 6cc4 or r3, r1 + 363c: b263 st.w r3, (r2, 0xc) + 363e: 9262 ld.w r3, (r2, 0x8) + 3640: 2300 addi r3, 1 + 3642: 6c0b mov r0, r2 + 3644: b262 st.w r3, (r2, 0x8) + 3646: 1401 addi r14, r14, 4 + 3648: 1484 pop r4-r7 + 364a: 3b42 cmpnei r3, 2 + 364c: 0bd5 bt 0x35f6 // 35f6 <_fpadd_parts+0x7e> + 364e: b260 st.w r3, (r2, 0x0) + 3650: 9061 ld.w r3, (r0, 0x4) + 3652: b261 st.w r3, (r2, 0x4) + 3654: 9062 ld.w r3, (r0, 0x8) + 3656: b262 st.w r3, (r2, 0x8) + 3658: 9063 ld.w r3, (r0, 0xc) + 365a: 9121 ld.w r1, (r1, 0x4) + 365c: b263 st.w r3, (r2, 0xc) + 365e: 9061 ld.w r3, (r0, 0x4) + 3660: 68c4 and r3, r1 + 3662: b261 st.w r3, (r2, 0x4) + 3664: 6c0b mov r0, r2 + 3666: 07c8 br 0x35f6 // 35f6 <_fpadd_parts+0x7e> + 3668: 604e subu r1, r3 + 366a: 6cc7 mov r3, r1 + 366c: 07ac br 0x35c4 // 35c4 <_fpadd_parts+0x4c> + 366e: 3400 movi r4, 0 + 3670: 6d5f mov r5, r7 + 3672: b880 st.w r4, (r14, 0x0) + 3674: 07a0 br 0x35b4 // 35b4 <_fpadd_parts+0x3c> + 3676: 3c44 cmpnei r4, 4 + 3678: 0bbf bt 0x35f6 // 35f6 <_fpadd_parts+0x7e> + 367a: 9041 ld.w r2, (r0, 0x4) + 367c: 9161 ld.w r3, (r1, 0x4) + 367e: 64ca cmpne r2, r3 + 3680: 0fbb bf 0x35f6 // 35f6 <_fpadd_parts+0x7e> + 3682: 1010 lrw r0, 0xb314 // 36c0 <_fpadd_parts+0x148> + 3684: 07b9 br 0x35f6 // 35f6 <_fpadd_parts+0x7e> + 3686: 3600 movi r6, 0 + 3688: 6192 subu r6, r4 + 368a: 0790 br 0x35aa // 35aa <_fpadd_parts+0x32> + 368c: 3101 movi r1, 1 + 368e: b221 st.w r1, (r2, 0x4) + 3690: 3100 movi r1, 0 + 3692: 596d subu r3, r1, r3 + 3694: b2a2 st.w r5, (r2, 0x8) + 3696: b263 st.w r3, (r2, 0xc) + 3698: 079c br 0x35d0 // 35d0 <_fpadd_parts+0x58> + 369a: 3c40 cmpnei r4, 0 + 369c: 0f8c bf 0x35b4 // 35b4 <_fpadd_parts+0x3c> + 369e: 3401 movi r4, 1 + 36a0: 98e0 ld.w r7, (r14, 0x0) + 36a2: 7118 lsl r4, r6 + 36a4: 71d9 lsr r7, r6 + 36a6: 6158 addu r5, r6 + 36a8: 2c00 subi r4, 1 + 36aa: 98c0 ld.w r6, (r14, 0x0) + 36ac: 6918 and r4, r6 + 36ae: 3c40 cmpnei r4, 0 + 36b0: 3400 movi r4, 0 + 36b2: 6111 addc r4, r4 + 36b4: 6dd0 or r7, r4 + 36b6: b8e0 st.w r7, (r14, 0x0) + 36b8: 077e br 0x35b4 // 35b4 <_fpadd_parts+0x3c> + 36ba: 0000 bkpt + 36bc: 3fffffff .long 0x3fffffff + 36c0: 0000b314 .long 0x0000b314 + +000036c4 <__addsf3>: + 36c4: 14d0 push r15 + 36c6: 142e subi r14, r14, 56 + 36c8: b800 st.w r0, (r14, 0x0) + 36ca: b821 st.w r1, (r14, 0x4) + 36cc: 6c3b mov r0, r14 + 36ce: 1902 addi r1, r14, 8 + 36d0: e00006da bsr 0x4484 // 4484 <__unpack_f> + 36d4: 1906 addi r1, r14, 24 + 36d6: 1801 addi r0, r14, 4 + 36d8: e00006d6 bsr 0x4484 // 4484 <__unpack_f> + 36dc: 1a0a addi r2, r14, 40 + 36de: 1906 addi r1, r14, 24 + 36e0: 1802 addi r0, r14, 8 + 36e2: e3ffff4b bsr 0x3578 // 3578 <_fpadd_parts> + 36e6: e0000673 bsr 0x43cc // 43cc <__pack_f> + 36ea: 140e addi r14, r14, 56 + 36ec: 1490 pop r15 + ... + +000036f0 <__subsf3>: + 36f0: 14d0 push r15 + 36f2: 142e subi r14, r14, 56 + 36f4: b800 st.w r0, (r14, 0x0) + 36f6: b821 st.w r1, (r14, 0x4) + 36f8: 6c3b mov r0, r14 + 36fa: 1902 addi r1, r14, 8 + 36fc: e00006c4 bsr 0x4484 // 4484 <__unpack_f> + 3700: 1906 addi r1, r14, 24 + 3702: 1801 addi r0, r14, 4 + 3704: e00006c0 bsr 0x4484 // 4484 <__unpack_f> + 3708: 9867 ld.w r3, (r14, 0x1c) + 370a: 3201 movi r2, 1 + 370c: 6cc9 xor r3, r2 + 370e: 1906 addi r1, r14, 24 + 3710: 1a0a addi r2, r14, 40 + 3712: 1802 addi r0, r14, 8 + 3714: b867 st.w r3, (r14, 0x1c) + 3716: e3ffff31 bsr 0x3578 // 3578 <_fpadd_parts> + 371a: e0000659 bsr 0x43cc // 43cc <__pack_f> + 371e: 140e addi r14, r14, 56 + 3720: 1490 pop r15 + ... + +00003724 <__mulsf3>: + 3724: 14d4 push r4-r7, r15 + 3726: 1430 subi r14, r14, 64 + 3728: b802 st.w r0, (r14, 0x8) + 372a: b823 st.w r1, (r14, 0xc) + 372c: 1802 addi r0, r14, 8 + 372e: 1904 addi r1, r14, 16 + 3730: e00006aa bsr 0x4484 // 4484 <__unpack_f> + 3734: 1908 addi r1, r14, 32 + 3736: 1803 addi r0, r14, 12 + 3738: e00006a6 bsr 0x4484 // 4484 <__unpack_f> + 373c: 9864 ld.w r3, (r14, 0x10) + 373e: 3b01 cmphsi r3, 2 + 3740: 0c4d bf 0x37da // 37da <__mulsf3+0xb6> + 3742: 9848 ld.w r2, (r14, 0x20) + 3744: 3a01 cmphsi r2, 2 + 3746: 0c3d bf 0x37c0 // 37c0 <__mulsf3+0x9c> + 3748: 3b44 cmpnei r3, 4 + 374a: 0c46 bf 0x37d6 // 37d6 <__mulsf3+0xb2> + 374c: 3a44 cmpnei r2, 4 + 374e: 0c37 bf 0x37bc // 37bc <__mulsf3+0x98> + 3750: 3b42 cmpnei r3, 2 + 3752: 0c44 bf 0x37da // 37da <__mulsf3+0xb6> + 3754: 3a42 cmpnei r2, 2 + 3756: 0c35 bf 0x37c0 // 37c0 <__mulsf3+0x9c> + 3758: 9867 ld.w r3, (r14, 0x1c) + 375a: b860 st.w r3, (r14, 0x0) + 375c: 986b ld.w r3, (r14, 0x2c) + 375e: 6c8f mov r2, r3 + 3760: b861 st.w r3, (r14, 0x4) + 3762: 9800 ld.w r0, (r14, 0x0) + 3764: 3300 movi r3, 0 + 3766: 3100 movi r1, 0 + 3768: e00005f0 bsr 0x4348 // 4348 <__muldi3> + 376c: 98c6 ld.w r6, (r14, 0x18) + 376e: 984a ld.w r2, (r14, 0x28) + 3770: 6098 addu r2, r6 + 3772: 5ac6 addi r6, r2, 2 + 3774: b8ce st.w r6, (r14, 0x38) + 3776: 98e5 ld.w r7, (r14, 0x14) + 3778: 98c9 ld.w r6, (r14, 0x24) + 377a: 659e cmpne r7, r6 + 377c: 3400 movi r4, 0 + 377e: 6111 addc r4, r4 + 3780: 39df btsti r1, 31 + 3782: 6cc7 mov r3, r1 + 3784: 6d43 mov r5, r0 + 3786: b88d st.w r4, (r14, 0x34) + 3788: 0c3f bf 0x3806 // 3806 <__mulsf3+0xe2> + 378a: 3301 movi r3, 1 + 378c: 68c4 and r3, r1 + 378e: 3b40 cmpnei r3, 0 + 3790: 2202 addi r2, 3 + 3792: 0811 bt 0x37b4 // 37b4 <__mulsf3+0x90> + 3794: 4961 lsri r3, r1, 1 + 3796: b84e st.w r2, (r14, 0x38) + 3798: 317f movi r1, 127 + 379a: 6c8f mov r2, r3 + 379c: 6884 and r2, r1 + 379e: 3040 movi r0, 64 + 37a0: 640a cmpne r2, r0 + 37a2: 0c27 bf 0x37f0 // 37f0 <__mulsf3+0xcc> + 37a4: b86f st.w r3, (r14, 0x3c) + 37a6: 3303 movi r3, 3 + 37a8: b86c st.w r3, (r14, 0x30) + 37aa: 180c addi r0, r14, 48 + 37ac: e0000610 bsr 0x43cc // 43cc <__pack_f> + 37b0: 1410 addi r14, r14, 64 + 37b2: 1494 pop r4-r7, r15 + 37b4: 4801 lsri r0, r0, 1 + 37b6: 38bf bseti r0, 31 + 37b8: 6d43 mov r5, r0 + 37ba: 07ed br 0x3794 // 3794 <__mulsf3+0x70> + 37bc: 3b42 cmpnei r3, 2 + 37be: 0c22 bf 0x3802 // 3802 <__mulsf3+0xde> + 37c0: 9869 ld.w r3, (r14, 0x24) + 37c2: 9845 ld.w r2, (r14, 0x14) + 37c4: 64ca cmpne r2, r3 + 37c6: 3300 movi r3, 0 + 37c8: 60cd addc r3, r3 + 37ca: 1808 addi r0, r14, 32 + 37cc: b869 st.w r3, (r14, 0x24) + 37ce: e00005ff bsr 0x43cc // 43cc <__pack_f> + 37d2: 1410 addi r14, r14, 64 + 37d4: 1494 pop r4-r7, r15 + 37d6: 3a42 cmpnei r2, 2 + 37d8: 0c15 bf 0x3802 // 3802 <__mulsf3+0xde> + 37da: 9845 ld.w r2, (r14, 0x14) + 37dc: 9869 ld.w r3, (r14, 0x24) + 37de: 64ca cmpne r2, r3 + 37e0: 3300 movi r3, 0 + 37e2: 60cd addc r3, r3 + 37e4: 1804 addi r0, r14, 16 + 37e6: b865 st.w r3, (r14, 0x14) + 37e8: e00005f2 bsr 0x43cc // 43cc <__pack_f> + 37ec: 1410 addi r14, r14, 64 + 37ee: 1494 pop r4-r7, r15 + 37f0: 3080 movi r0, 128 + 37f2: 680c and r0, r3 + 37f4: 3840 cmpnei r0, 0 + 37f6: 0bd7 bt 0x37a4 // 37a4 <__mulsf3+0x80> + 37f8: 3d40 cmpnei r5, 0 + 37fa: 0fd5 bf 0x37a4 // 37a4 <__mulsf3+0x80> + 37fc: 60c8 addu r3, r2 + 37fe: 68c5 andn r3, r1 + 3800: 07d2 br 0x37a4 // 37a4 <__mulsf3+0x80> + 3802: 100d lrw r0, 0xb314 // 3834 <__mulsf3+0x110> + 3804: 07d4 br 0x37ac // 37ac <__mulsf3+0x88> + 3806: 108d lrw r4, 0x3fffffff // 3838 <__mulsf3+0x114> + 3808: 6450 cmphs r4, r1 + 380a: 0fc7 bf 0x3798 // 3798 <__mulsf3+0x74> + 380c: 2200 addi r2, 1 + 380e: 3001 movi r0, 1 + 3810: 6c53 mov r1, r4 + 3812: 0405 br 0x381c // 381c <__mulsf3+0xf8> + 3814: 64c4 cmphs r1, r3 + 3816: 45a1 lsli r5, r5, 1 + 3818: 2a00 subi r2, 1 + 381a: 0c0a bf 0x382e // 382e <__mulsf3+0x10a> + 381c: 3ddf btsti r5, 31 + 381e: 6d0b mov r4, r2 + 3820: 4361 lsli r3, r3, 1 + 3822: 0ff9 bf 0x3814 // 3814 <__mulsf3+0xf0> + 3824: 6cc0 or r3, r0 + 3826: 64c4 cmphs r1, r3 + 3828: 45a1 lsli r5, r5, 1 + 382a: 2a00 subi r2, 1 + 382c: 0bf8 bt 0x381c // 381c <__mulsf3+0xf8> + 382e: b88e st.w r4, (r14, 0x38) + 3830: 07b4 br 0x3798 // 3798 <__mulsf3+0x74> + 3832: 0000 bkpt + 3834: 0000b314 .long 0x0000b314 + 3838: 3fffffff .long 0x3fffffff + +0000383c <__divsf3>: + 383c: 14d1 push r4, r15 + 383e: 142a subi r14, r14, 40 + 3840: b800 st.w r0, (r14, 0x0) + 3842: b821 st.w r1, (r14, 0x4) + 3844: 6c3b mov r0, r14 + 3846: 1902 addi r1, r14, 8 + 3848: e000061e bsr 0x4484 // 4484 <__unpack_f> + 384c: 1906 addi r1, r14, 24 + 384e: 1801 addi r0, r14, 4 + 3850: e000061a bsr 0x4484 // 4484 <__unpack_f> + 3854: 9862 ld.w r3, (r14, 0x8) + 3856: 3b01 cmphsi r3, 2 + 3858: 0c2c bf 0x38b0 // 38b0 <__divsf3+0x74> + 385a: 9826 ld.w r1, (r14, 0x18) + 385c: 3901 cmphsi r1, 2 + 385e: 0c48 bf 0x38ee // 38ee <__divsf3+0xb2> + 3860: 9843 ld.w r2, (r14, 0xc) + 3862: 9807 ld.w r0, (r14, 0x1c) + 3864: 6c81 xor r2, r0 + 3866: 3b44 cmpnei r3, 4 + 3868: b843 st.w r2, (r14, 0xc) + 386a: 0c28 bf 0x38ba // 38ba <__divsf3+0x7e> + 386c: 3b42 cmpnei r3, 2 + 386e: 0c26 bf 0x38ba // 38ba <__divsf3+0x7e> + 3870: 3944 cmpnei r1, 4 + 3872: 0c2c bf 0x38ca // 38ca <__divsf3+0x8e> + 3874: 3942 cmpnei r1, 2 + 3876: 0c38 bf 0x38e6 // 38e6 <__divsf3+0xaa> + 3878: 9844 ld.w r2, (r14, 0x10) + 387a: 9868 ld.w r3, (r14, 0x20) + 387c: 608e subu r2, r3 + 387e: 9809 ld.w r0, (r14, 0x24) + 3880: 9865 ld.w r3, (r14, 0x14) + 3882: 640c cmphs r3, r0 + 3884: b844 st.w r2, (r14, 0x10) + 3886: 0c1e bf 0x38c2 // 38c2 <__divsf3+0x86> + 3888: 3180 movi r1, 128 + 388a: 321f movi r2, 31 + 388c: 3400 movi r4, 0 + 388e: 4137 lsli r1, r1, 23 + 3890: 640c cmphs r3, r0 + 3892: 0c03 bf 0x3898 // 3898 <__divsf3+0x5c> + 3894: 6d04 or r4, r1 + 3896: 60c2 subu r3, r0 + 3898: 2a00 subi r2, 1 + 389a: 3a40 cmpnei r2, 0 + 389c: 4921 lsri r1, r1, 1 + 389e: 4361 lsli r3, r3, 1 + 38a0: 0bf8 bt 0x3890 // 3890 <__divsf3+0x54> + 38a2: 317f movi r1, 127 + 38a4: 6c93 mov r2, r4 + 38a6: 6884 and r2, r1 + 38a8: 3040 movi r0, 64 + 38aa: 640a cmpne r2, r0 + 38ac: 0c14 bf 0x38d4 // 38d4 <__divsf3+0x98> + 38ae: b885 st.w r4, (r14, 0x14) + 38b0: 1802 addi r0, r14, 8 + 38b2: e000058d bsr 0x43cc // 43cc <__pack_f> + 38b6: 140a addi r14, r14, 40 + 38b8: 1491 pop r4, r15 + 38ba: 644e cmpne r3, r1 + 38bc: 0bfa bt 0x38b0 // 38b0 <__divsf3+0x74> + 38be: 100e lrw r0, 0xb314 // 38f4 <__divsf3+0xb8> + 38c0: 07f9 br 0x38b2 // 38b2 <__divsf3+0x76> + 38c2: 2a00 subi r2, 1 + 38c4: 4361 lsli r3, r3, 1 + 38c6: b844 st.w r2, (r14, 0x10) + 38c8: 07e0 br 0x3888 // 3888 <__divsf3+0x4c> + 38ca: 3300 movi r3, 0 + 38cc: b865 st.w r3, (r14, 0x14) + 38ce: b864 st.w r3, (r14, 0x10) + 38d0: 1802 addi r0, r14, 8 + 38d2: 07f0 br 0x38b2 // 38b2 <__divsf3+0x76> + 38d4: 3080 movi r0, 128 + 38d6: 6810 and r0, r4 + 38d8: 3840 cmpnei r0, 0 + 38da: 0bea bt 0x38ae // 38ae <__divsf3+0x72> + 38dc: 3b40 cmpnei r3, 0 + 38de: 0fe8 bf 0x38ae // 38ae <__divsf3+0x72> + 38e0: 6108 addu r4, r2 + 38e2: 6905 andn r4, r1 + 38e4: 07e5 br 0x38ae // 38ae <__divsf3+0x72> + 38e6: 3304 movi r3, 4 + 38e8: b862 st.w r3, (r14, 0x8) + 38ea: 1802 addi r0, r14, 8 + 38ec: 07e3 br 0x38b2 // 38b2 <__divsf3+0x76> + 38ee: 1806 addi r0, r14, 24 + 38f0: 07e1 br 0x38b2 // 38b2 <__divsf3+0x76> + 38f2: 0000 bkpt + 38f4: 0000b314 .long 0x0000b314 + +000038f8 <__nesf2>: + 38f8: 14d0 push r15 + 38fa: 142a subi r14, r14, 40 + 38fc: b800 st.w r0, (r14, 0x0) + 38fe: b821 st.w r1, (r14, 0x4) + 3900: 6c3b mov r0, r14 + 3902: 1902 addi r1, r14, 8 + 3904: e00005c0 bsr 0x4484 // 4484 <__unpack_f> + 3908: 1906 addi r1, r14, 24 + 390a: 1801 addi r0, r14, 4 + 390c: e00005bc bsr 0x4484 // 4484 <__unpack_f> + 3910: 9862 ld.w r3, (r14, 0x8) + 3912: 3b01 cmphsi r3, 2 + 3914: 0c0a bf 0x3928 // 3928 <__nesf2+0x30> + 3916: 9866 ld.w r3, (r14, 0x18) + 3918: 3b01 cmphsi r3, 2 + 391a: 0c07 bf 0x3928 // 3928 <__nesf2+0x30> + 391c: 1906 addi r1, r14, 24 + 391e: 1802 addi r0, r14, 8 + 3920: e00005f4 bsr 0x4508 // 4508 <__fpcmp_parts_f> + 3924: 140a addi r14, r14, 40 + 3926: 1490 pop r15 + 3928: 3001 movi r0, 1 + 392a: 140a addi r14, r14, 40 + 392c: 1490 pop r15 + ... + +00003930 <__gesf2>: + 3930: 14d0 push r15 + 3932: 142a subi r14, r14, 40 + 3934: b800 st.w r0, (r14, 0x0) + 3936: b821 st.w r1, (r14, 0x4) + 3938: 6c3b mov r0, r14 + 393a: 1902 addi r1, r14, 8 + 393c: e00005a4 bsr 0x4484 // 4484 <__unpack_f> + 3940: 1906 addi r1, r14, 24 + 3942: 1801 addi r0, r14, 4 + 3944: e00005a0 bsr 0x4484 // 4484 <__unpack_f> + 3948: 9862 ld.w r3, (r14, 0x8) + 394a: 3b01 cmphsi r3, 2 + 394c: 0c0a bf 0x3960 // 3960 <__gesf2+0x30> + 394e: 9866 ld.w r3, (r14, 0x18) + 3950: 3b01 cmphsi r3, 2 + 3952: 0c07 bf 0x3960 // 3960 <__gesf2+0x30> + 3954: 1906 addi r1, r14, 24 + 3956: 1802 addi r0, r14, 8 + 3958: e00005d8 bsr 0x4508 // 4508 <__fpcmp_parts_f> + 395c: 140a addi r14, r14, 40 + 395e: 1490 pop r15 + 3960: 3000 movi r0, 0 + 3962: 2800 subi r0, 1 + 3964: 140a addi r14, r14, 40 + 3966: 1490 pop r15 + +00003968 <__floatsisf>: + 3968: 14d1 push r4, r15 + 396a: 1424 subi r14, r14, 16 + 396c: 3303 movi r3, 3 + 396e: b860 st.w r3, (r14, 0x0) + 3970: 3840 cmpnei r0, 0 + 3972: 487f lsri r3, r0, 31 + 3974: b861 st.w r3, (r14, 0x4) + 3976: 0808 bt 0x3986 // 3986 <__floatsisf+0x1e> + 3978: 3302 movi r3, 2 + 397a: b860 st.w r3, (r14, 0x0) + 397c: 6c3b mov r0, r14 + 397e: e0000527 bsr 0x43cc // 43cc <__pack_f> + 3982: 1404 addi r14, r14, 16 + 3984: 1491 pop r4, r15 + 3986: 331e movi r3, 30 + 3988: 38df btsti r0, 31 + 398a: b862 st.w r3, (r14, 0x8) + 398c: 080f bt 0x39aa // 39aa <__floatsisf+0x42> + 398e: 6d03 mov r4, r0 + 3990: 6c13 mov r0, r4 + 3992: e00004fd bsr 0x438c // 438c <__clzsi2> + 3996: 5863 subi r3, r0, 1 + 3998: 3b40 cmpnei r3, 0 + 399a: 0c14 bf 0x39c2 // 39c2 <__floatsisf+0x5a> + 399c: 6c13 mov r0, r4 + 399e: 321e movi r2, 30 + 39a0: 700c lsl r0, r3 + 39a2: 5a6d subu r3, r2, r3 + 39a4: b803 st.w r0, (r14, 0xc) + 39a6: b862 st.w r3, (r14, 0x8) + 39a8: 07ea br 0x397c // 397c <__floatsisf+0x14> + 39aa: 3380 movi r3, 128 + 39ac: 4378 lsli r3, r3, 24 + 39ae: 64c2 cmpne r0, r3 + 39b0: 0c0b bf 0x39c6 // 39c6 <__floatsisf+0x5e> + 39b2: 3400 movi r4, 0 + 39b4: 6102 subu r4, r0 + 39b6: 6c13 mov r0, r4 + 39b8: e00004ea bsr 0x438c // 438c <__clzsi2> + 39bc: 5863 subi r3, r0, 1 + 39be: 3b40 cmpnei r3, 0 + 39c0: 0bee bt 0x399c // 399c <__floatsisf+0x34> + 39c2: b883 st.w r4, (r14, 0xc) + 39c4: 07dc br 0x397c // 397c <__floatsisf+0x14> + 39c6: 30cf movi r0, 207 + 39c8: 4018 lsli r0, r0, 24 + 39ca: 07dc br 0x3982 // 3982 <__floatsisf+0x1a> + +000039cc <__fixsfsi>: + 39cc: 14d0 push r15 + 39ce: 1425 subi r14, r14, 20 + 39d0: b800 st.w r0, (r14, 0x0) + 39d2: 1901 addi r1, r14, 4 + 39d4: 6c3b mov r0, r14 + 39d6: e0000557 bsr 0x4484 // 4484 <__unpack_f> + 39da: 9861 ld.w r3, (r14, 0x4) + 39dc: 3b02 cmphsi r3, 3 + 39de: 0c1b bf 0x3a14 // 3a14 <__fixsfsi+0x48> + 39e0: 3b44 cmpnei r3, 4 + 39e2: 0c06 bf 0x39ee // 39ee <__fixsfsi+0x22> + 39e4: 9863 ld.w r3, (r14, 0xc) + 39e6: 3bdf btsti r3, 31 + 39e8: 0816 bt 0x3a14 // 3a14 <__fixsfsi+0x48> + 39ea: 3b3e cmplti r3, 31 + 39ec: 0809 bt 0x39fe // 39fe <__fixsfsi+0x32> + 39ee: 9862 ld.w r3, (r14, 0x8) + 39f0: 3b40 cmpnei r3, 0 + 39f2: 3000 movi r0, 0 + 39f4: 6001 addc r0, r0 + 39f6: 106a lrw r3, 0x7fffffff // 3a1c <__fixsfsi+0x50> + 39f8: 600c addu r0, r3 + 39fa: 1405 addi r14, r14, 20 + 39fc: 1490 pop r15 + 39fe: 321e movi r2, 30 + 3a00: 5a6d subu r3, r2, r3 + 3a02: 9804 ld.w r0, (r14, 0x10) + 3a04: 700d lsr r0, r3 + 3a06: 9862 ld.w r3, (r14, 0x8) + 3a08: 3b40 cmpnei r3, 0 + 3a0a: 0ff8 bf 0x39fa // 39fa <__fixsfsi+0x2e> + 3a0c: 3300 movi r3, 0 + 3a0e: 5b01 subu r0, r3, r0 + 3a10: 1405 addi r14, r14, 20 + 3a12: 1490 pop r15 + 3a14: 3000 movi r0, 0 + 3a16: 1405 addi r14, r14, 20 + 3a18: 1490 pop r15 + 3a1a: 0000 bkpt + 3a1c: 7fffffff .long 0x7fffffff + +00003a20 <__extendsfdf2>: + 3a20: 14d1 push r4, r15 + 3a22: 1426 subi r14, r14, 24 + 3a24: b801 st.w r0, (r14, 0x4) + 3a26: 1902 addi r1, r14, 8 + 3a28: 1801 addi r0, r14, 4 + 3a2a: e000052d bsr 0x4484 // 4484 <__unpack_f> + 3a2e: 9865 ld.w r3, (r14, 0x14) + 3a30: 4b82 lsri r4, r3, 2 + 3a32: 9844 ld.w r2, (r14, 0x10) + 3a34: 437e lsli r3, r3, 30 + 3a36: 9823 ld.w r1, (r14, 0xc) + 3a38: 9802 ld.w r0, (r14, 0x8) + 3a3a: b880 st.w r4, (r14, 0x0) + 3a3c: e0000430 bsr 0x429c // 429c <__make_dp> + 3a40: 1406 addi r14, r14, 24 + 3a42: 1491 pop r4, r15 + +00003a44 <_fpadd_parts>: + 3a44: 14c4 push r4-r7 + 3a46: 142a subi r14, r14, 40 + 3a48: 9060 ld.w r3, (r0, 0x0) + 3a4a: 3b01 cmphsi r3, 2 + 3a4c: 6dcb mov r7, r2 + 3a4e: 0c67 bf 0x3b1c // 3b1c <_fpadd_parts+0xd8> + 3a50: 9140 ld.w r2, (r1, 0x0) + 3a52: 3a01 cmphsi r2, 2 + 3a54: 0c66 bf 0x3b20 // 3b20 <_fpadd_parts+0xdc> + 3a56: 3b44 cmpnei r3, 4 + 3a58: 0cde bf 0x3c14 // 3c14 <_fpadd_parts+0x1d0> + 3a5a: 3a44 cmpnei r2, 4 + 3a5c: 0c62 bf 0x3b20 // 3b20 <_fpadd_parts+0xdc> + 3a5e: 3a42 cmpnei r2, 2 + 3a60: 0cb7 bf 0x3bce // 3bce <_fpadd_parts+0x18a> + 3a62: 3b42 cmpnei r3, 2 + 3a64: 0c5e bf 0x3b20 // 3b20 <_fpadd_parts+0xdc> + 3a66: 9043 ld.w r2, (r0, 0xc) + 3a68: 9064 ld.w r3, (r0, 0x10) + 3a6a: 9082 ld.w r4, (r0, 0x8) + 3a6c: 91a2 ld.w r5, (r1, 0x8) + 3a6e: b842 st.w r2, (r14, 0x8) + 3a70: b863 st.w r3, (r14, 0xc) + 3a72: 9143 ld.w r2, (r1, 0xc) + 3a74: 9164 ld.w r3, (r1, 0x10) + 3a76: b840 st.w r2, (r14, 0x0) + 3a78: b861 st.w r3, (r14, 0x4) + 3a7a: 5c75 subu r3, r4, r5 + 3a7c: 3bdf btsti r3, 31 + 3a7e: 6c8f mov r2, r3 + 3a80: 08d2 bt 0x3c24 // 3c24 <_fpadd_parts+0x1e0> + 3a82: 363f movi r6, 63 + 3a84: 6499 cmplt r6, r2 + 3a86: 0c50 bf 0x3b26 // 3b26 <_fpadd_parts+0xe2> + 3a88: 6515 cmplt r5, r4 + 3a8a: 0cbf bf 0x3c08 // 3c08 <_fpadd_parts+0x1c4> + 3a8c: 3200 movi r2, 0 + 3a8e: 3300 movi r3, 0 + 3a90: b840 st.w r2, (r14, 0x0) + 3a92: b861 st.w r3, (r14, 0x4) + 3a94: 9061 ld.w r3, (r0, 0x4) + 3a96: 9141 ld.w r2, (r1, 0x4) + 3a98: 648e cmpne r3, r2 + 3a9a: 0c78 bf 0x3b8a // 3b8a <_fpadd_parts+0x146> + 3a9c: 3b40 cmpnei r3, 0 + 3a9e: 0cad bf 0x3bf8 // 3bf8 <_fpadd_parts+0x1b4> + 3aa0: 9800 ld.w r0, (r14, 0x0) + 3aa2: 9821 ld.w r1, (r14, 0x4) + 3aa4: 9842 ld.w r2, (r14, 0x8) + 3aa6: 9863 ld.w r3, (r14, 0xc) + 3aa8: 6400 cmphs r0, r0 + 3aaa: 600b subc r0, r2 + 3aac: 604f subc r1, r3 + 3aae: 39df btsti r1, 31 + 3ab0: 08bd bt 0x3c2a // 3c2a <_fpadd_parts+0x1e6> + 3ab2: 3300 movi r3, 0 + 3ab4: b761 st.w r3, (r7, 0x4) + 3ab6: b782 st.w r4, (r7, 0x8) + 3ab8: 6c83 mov r2, r0 + 3aba: 6cc7 mov r3, r1 + 3abc: b703 st.w r0, (r7, 0xc) + 3abe: b724 st.w r1, (r7, 0x10) + 3ac0: 3000 movi r0, 0 + 3ac2: 3100 movi r1, 0 + 3ac4: 2800 subi r0, 1 + 3ac6: 2900 subi r1, 1 + 3ac8: 6401 cmplt r0, r0 + 3aca: 6009 addc r0, r2 + 3acc: 604d addc r1, r3 + 3ace: 038f lrw r4, 0xfffffff // 3d0c <_fpadd_parts+0x2c8> + 3ad0: 6450 cmphs r4, r1 + 3ad2: 0c67 bf 0x3ba0 // 3ba0 <_fpadd_parts+0x15c> + 3ad4: 6506 cmpne r1, r4 + 3ad6: 0cfd bf 0x3cd0 // 3cd0 <_fpadd_parts+0x28c> + 3ad8: 3000 movi r0, 0 + 3ada: 9722 ld.w r1, (r7, 0x8) + 3adc: 2801 subi r0, 2 + 3ade: 2900 subi r1, 1 + 3ae0: 03d4 lrw r6, 0xfffffff // 3d0c <_fpadd_parts+0x2c8> + 3ae2: b802 st.w r0, (r14, 0x8) + 3ae4: b8e0 st.w r7, (r14, 0x0) + 3ae6: 0403 br 0x3aec // 3aec <_fpadd_parts+0xa8> + 3ae8: 6596 cmpne r5, r6 + 3aea: 0c83 bf 0x3bf0 // 3bf0 <_fpadd_parts+0x1ac> + 3aec: 4301 lsli r0, r3, 1 + 3aee: 4a9f lsri r4, r2, 31 + 3af0: 6d00 or r4, r0 + 3af2: 42a1 lsli r5, r2, 1 + 3af4: 6c97 mov r2, r5 + 3af6: 6cd3 mov r3, r4 + 3af8: 3500 movi r5, 0 + 3afa: 3400 movi r4, 0 + 3afc: 2c00 subi r4, 1 + 3afe: 2d00 subi r5, 1 + 3b00: 6511 cmplt r4, r4 + 3b02: 6109 addc r4, r2 + 3b04: 614d addc r5, r3 + 3b06: 6558 cmphs r6, r5 + 3b08: 6c07 mov r0, r1 + 3b0a: 2900 subi r1, 1 + 3b0c: 0bee bt 0x3ae8 // 3ae8 <_fpadd_parts+0xa4> + 3b0e: 98e0 ld.w r7, (r14, 0x0) + 3b10: b743 st.w r2, (r7, 0xc) + 3b12: b764 st.w r3, (r7, 0x10) + 3b14: 3303 movi r3, 3 + 3b16: b702 st.w r0, (r7, 0x8) + 3b18: b760 st.w r3, (r7, 0x0) + 3b1a: 6c1f mov r0, r7 + 3b1c: 140a addi r14, r14, 40 + 3b1e: 1484 pop r4-r7 + 3b20: 6c07 mov r0, r1 + 3b22: 140a addi r14, r14, 40 + 3b24: 1484 pop r4-r7 + 3b26: 3b20 cmplti r3, 1 + 3b28: 088c bt 0x3c40 // 3c40 <_fpadd_parts+0x1fc> + 3b2a: 3300 movi r3, 0 + 3b2c: 2b1f subi r3, 32 + 3b2e: 60c8 addu r3, r2 + 3b30: 3bdf btsti r3, 31 + 3b32: b866 st.w r3, (r14, 0x18) + 3b34: 08bb bt 0x3caa // 3caa <_fpadd_parts+0x266> + 3b36: 98a1 ld.w r5, (r14, 0x4) + 3b38: 714d lsr r5, r3 + 3b3a: b8a4 st.w r5, (r14, 0x10) + 3b3c: 3500 movi r5, 0 + 3b3e: b8a5 st.w r5, (r14, 0x14) + 3b40: 9866 ld.w r3, (r14, 0x18) + 3b42: 3bdf btsti r3, 31 + 3b44: 3500 movi r5, 0 + 3b46: 3600 movi r6, 0 + 3b48: 08ad bt 0x3ca2 // 3ca2 <_fpadd_parts+0x25e> + 3b4a: 3201 movi r2, 1 + 3b4c: 708c lsl r2, r3 + 3b4e: 6d8b mov r6, r2 + 3b50: 3200 movi r2, 0 + 3b52: 3300 movi r3, 0 + 3b54: 2a00 subi r2, 1 + 3b56: 2b00 subi r3, 1 + 3b58: 6489 cmplt r2, r2 + 3b5a: 6095 addc r2, r5 + 3b5c: 60d9 addc r3, r6 + 3b5e: 98a0 ld.w r5, (r14, 0x0) + 3b60: 98c1 ld.w r6, (r14, 0x4) + 3b62: 6948 and r5, r2 + 3b64: 698c and r6, r3 + 3b66: 6c97 mov r2, r5 + 3b68: 6cdb mov r3, r6 + 3b6a: 6c8c or r2, r3 + 3b6c: 3a40 cmpnei r2, 0 + 3b6e: 3500 movi r5, 0 + 3b70: 6155 addc r5, r5 + 3b72: 6c97 mov r2, r5 + 3b74: 3300 movi r3, 0 + 3b76: 98a4 ld.w r5, (r14, 0x10) + 3b78: 98c5 ld.w r6, (r14, 0x14) + 3b7a: 6d48 or r5, r2 + 3b7c: 6d8c or r6, r3 + 3b7e: 9061 ld.w r3, (r0, 0x4) + 3b80: 9141 ld.w r2, (r1, 0x4) + 3b82: 648e cmpne r3, r2 + 3b84: b8a0 st.w r5, (r14, 0x0) + 3b86: b8c1 st.w r6, (r14, 0x4) + 3b88: 0b8a bt 0x3a9c // 3a9c <_fpadd_parts+0x58> + 3b8a: b761 st.w r3, (r7, 0x4) + 3b8c: 9800 ld.w r0, (r14, 0x0) + 3b8e: 9821 ld.w r1, (r14, 0x4) + 3b90: 9842 ld.w r2, (r14, 0x8) + 3b92: 9863 ld.w r3, (r14, 0xc) + 3b94: 6489 cmplt r2, r2 + 3b96: 6081 addc r2, r0 + 3b98: 60c5 addc r3, r1 + 3b9a: b782 st.w r4, (r7, 0x8) + 3b9c: b743 st.w r2, (r7, 0xc) + 3b9e: b764 st.w r3, (r7, 0x10) + 3ba0: 3103 movi r1, 3 + 3ba2: b720 st.w r1, (r7, 0x0) + 3ba4: 123b lrw r1, 0x1fffffff // 3d10 <_fpadd_parts+0x2cc> + 3ba6: 64c4 cmphs r1, r3 + 3ba8: 0810 bt 0x3bc8 // 3bc8 <_fpadd_parts+0x184> + 3baa: 439f lsli r4, r3, 31 + 3bac: 4a01 lsri r0, r2, 1 + 3bae: 6c10 or r0, r4 + 3bb0: 3500 movi r5, 0 + 3bb2: 3401 movi r4, 1 + 3bb4: 4b21 lsri r1, r3, 1 + 3bb6: 6890 and r2, r4 + 3bb8: 68d4 and r3, r5 + 3bba: 6c80 or r2, r0 + 3bbc: 6cc4 or r3, r1 + 3bbe: b743 st.w r2, (r7, 0xc) + 3bc0: b764 st.w r3, (r7, 0x10) + 3bc2: 9762 ld.w r3, (r7, 0x8) + 3bc4: 2300 addi r3, 1 + 3bc6: b762 st.w r3, (r7, 0x8) + 3bc8: 6c1f mov r0, r7 + 3bca: 140a addi r14, r14, 40 + 3bcc: 1484 pop r4-r7 + 3bce: 3b42 cmpnei r3, 2 + 3bd0: 0ba6 bt 0x3b1c // 3b1c <_fpadd_parts+0xd8> + 3bd2: b760 st.w r3, (r7, 0x0) + 3bd4: 9061 ld.w r3, (r0, 0x4) + 3bd6: b761 st.w r3, (r7, 0x4) + 3bd8: 9062 ld.w r3, (r0, 0x8) + 3bda: b762 st.w r3, (r7, 0x8) + 3bdc: 9063 ld.w r3, (r0, 0xc) + 3bde: b763 st.w r3, (r7, 0xc) + 3be0: 9064 ld.w r3, (r0, 0x10) + 3be2: 9141 ld.w r2, (r1, 0x4) + 3be4: b764 st.w r3, (r7, 0x10) + 3be6: 9061 ld.w r3, (r0, 0x4) + 3be8: 68c8 and r3, r2 + 3bea: b761 st.w r3, (r7, 0x4) + 3bec: 6c1f mov r0, r7 + 3bee: 0797 br 0x3b1c // 3b1c <_fpadd_parts+0xd8> + 3bf0: 98e2 ld.w r7, (r14, 0x8) + 3bf2: 651c cmphs r7, r4 + 3bf4: 0b7c bt 0x3aec // 3aec <_fpadd_parts+0xa8> + 3bf6: 078c br 0x3b0e // 3b0e <_fpadd_parts+0xca> + 3bf8: 9802 ld.w r0, (r14, 0x8) + 3bfa: 9823 ld.w r1, (r14, 0xc) + 3bfc: 9840 ld.w r2, (r14, 0x0) + 3bfe: 9861 ld.w r3, (r14, 0x4) + 3c00: 6400 cmphs r0, r0 + 3c02: 600b subc r0, r2 + 3c04: 604f subc r1, r3 + 3c06: 0754 br 0x3aae // 3aae <_fpadd_parts+0x6a> + 3c08: 3200 movi r2, 0 + 3c0a: 3300 movi r3, 0 + 3c0c: 6d17 mov r4, r5 + 3c0e: b842 st.w r2, (r14, 0x8) + 3c10: b863 st.w r3, (r14, 0xc) + 3c12: 0741 br 0x3a94 // 3a94 <_fpadd_parts+0x50> + 3c14: 3a44 cmpnei r2, 4 + 3c16: 0b83 bt 0x3b1c // 3b1c <_fpadd_parts+0xd8> + 3c18: 9041 ld.w r2, (r0, 0x4) + 3c1a: 9161 ld.w r3, (r1, 0x4) + 3c1c: 64ca cmpne r2, r3 + 3c1e: 0f7f bf 0x3b1c // 3b1c <_fpadd_parts+0xd8> + 3c20: 111d lrw r0, 0xb324 // 3d14 <_fpadd_parts+0x2d0> + 3c22: 077d br 0x3b1c // 3b1c <_fpadd_parts+0xd8> + 3c24: 3200 movi r2, 0 + 3c26: 608e subu r2, r3 + 3c28: 072d br 0x3a82 // 3a82 <_fpadd_parts+0x3e> + 3c2a: 3301 movi r3, 1 + 3c2c: b761 st.w r3, (r7, 0x4) + 3c2e: 3200 movi r2, 0 + 3c30: 3300 movi r3, 0 + 3c32: 6488 cmphs r2, r2 + 3c34: 6083 subc r2, r0 + 3c36: 60c7 subc r3, r1 + 3c38: b782 st.w r4, (r7, 0x8) + 3c3a: b743 st.w r2, (r7, 0xc) + 3c3c: b764 st.w r3, (r7, 0x10) + 3c3e: 0741 br 0x3ac0 // 3ac0 <_fpadd_parts+0x7c> + 3c40: 3b40 cmpnei r3, 0 + 3c42: 0f29 bf 0x3a94 // 3a94 <_fpadd_parts+0x50> + 3c44: 3300 movi r3, 0 + 3c46: 2b1f subi r3, 32 + 3c48: 60c8 addu r3, r2 + 3c4a: 3bdf btsti r3, 31 + 3c4c: 6108 addu r4, r2 + 3c4e: b866 st.w r3, (r14, 0x18) + 3c50: 0849 bt 0x3ce2 // 3ce2 <_fpadd_parts+0x29e> + 3c52: 9863 ld.w r3, (r14, 0xc) + 3c54: 98a6 ld.w r5, (r14, 0x18) + 3c56: 70d5 lsr r3, r5 + 3c58: b864 st.w r3, (r14, 0x10) + 3c5a: 3300 movi r3, 0 + 3c5c: b865 st.w r3, (r14, 0x14) + 3c5e: 9866 ld.w r3, (r14, 0x18) + 3c60: 3bdf btsti r3, 31 + 3c62: 3500 movi r5, 0 + 3c64: 3600 movi r6, 0 + 3c66: 083a bt 0x3cda // 3cda <_fpadd_parts+0x296> + 3c68: 3201 movi r2, 1 + 3c6a: 708c lsl r2, r3 + 3c6c: 6d8b mov r6, r2 + 3c6e: 3200 movi r2, 0 + 3c70: 3300 movi r3, 0 + 3c72: 2a00 subi r2, 1 + 3c74: 2b00 subi r3, 1 + 3c76: 6489 cmplt r2, r2 + 3c78: 6095 addc r2, r5 + 3c7a: 60d9 addc r3, r6 + 3c7c: 98a2 ld.w r5, (r14, 0x8) + 3c7e: 98c3 ld.w r6, (r14, 0xc) + 3c80: 6948 and r5, r2 + 3c82: 698c and r6, r3 + 3c84: 6c97 mov r2, r5 + 3c86: 6cdb mov r3, r6 + 3c88: 6c8c or r2, r3 + 3c8a: 3a40 cmpnei r2, 0 + 3c8c: 3500 movi r5, 0 + 3c8e: 6155 addc r5, r5 + 3c90: 6c97 mov r2, r5 + 3c92: 3300 movi r3, 0 + 3c94: 98a4 ld.w r5, (r14, 0x10) + 3c96: 98c5 ld.w r6, (r14, 0x14) + 3c98: 6d48 or r5, r2 + 3c9a: 6d8c or r6, r3 + 3c9c: b8a2 st.w r5, (r14, 0x8) + 3c9e: b8c3 st.w r6, (r14, 0xc) + 3ca0: 06fa br 0x3a94 // 3a94 <_fpadd_parts+0x50> + 3ca2: 3301 movi r3, 1 + 3ca4: 70c8 lsl r3, r2 + 3ca6: 6d4f mov r5, r3 + 3ca8: 0754 br 0x3b50 // 3b50 <_fpadd_parts+0x10c> + 3caa: 9861 ld.w r3, (r14, 0x4) + 3cac: 361f movi r6, 31 + 3cae: 43a1 lsli r5, r3, 1 + 3cb0: 618a subu r6, r2 + 3cb2: 7158 lsl r5, r6 + 3cb4: b8a9 st.w r5, (r14, 0x24) + 3cb6: 98a0 ld.w r5, (r14, 0x0) + 3cb8: 98c1 ld.w r6, (r14, 0x4) + 3cba: b8a7 st.w r5, (r14, 0x1c) + 3cbc: b8c8 st.w r6, (r14, 0x20) + 3cbe: 9867 ld.w r3, (r14, 0x1c) + 3cc0: 70c9 lsr r3, r2 + 3cc2: 98a9 ld.w r5, (r14, 0x24) + 3cc4: 6cd4 or r3, r5 + 3cc6: b864 st.w r3, (r14, 0x10) + 3cc8: 9868 ld.w r3, (r14, 0x20) + 3cca: 70c9 lsr r3, r2 + 3ccc: b865 st.w r3, (r14, 0x14) + 3cce: 0739 br 0x3b40 // 3b40 <_fpadd_parts+0xfc> + 3cd0: 3100 movi r1, 0 + 3cd2: 2901 subi r1, 2 + 3cd4: 6404 cmphs r1, r0 + 3cd6: 0b01 bt 0x3ad8 // 3ad8 <_fpadd_parts+0x94> + 3cd8: 0764 br 0x3ba0 // 3ba0 <_fpadd_parts+0x15c> + 3cda: 3301 movi r3, 1 + 3cdc: 70c8 lsl r3, r2 + 3cde: 6d4f mov r5, r3 + 3ce0: 07c7 br 0x3c6e // 3c6e <_fpadd_parts+0x22a> + 3ce2: 9863 ld.w r3, (r14, 0xc) + 3ce4: 43c1 lsli r6, r3, 1 + 3ce6: 351f movi r5, 31 + 3ce8: 5d69 subu r3, r5, r2 + 3cea: 6d5b mov r5, r6 + 3cec: 714c lsl r5, r3 + 3cee: b8a9 st.w r5, (r14, 0x24) + 3cf0: 98a2 ld.w r5, (r14, 0x8) + 3cf2: 98c3 ld.w r6, (r14, 0xc) + 3cf4: b8a7 st.w r5, (r14, 0x1c) + 3cf6: b8c8 st.w r6, (r14, 0x20) + 3cf8: 9867 ld.w r3, (r14, 0x1c) + 3cfa: 70c9 lsr r3, r2 + 3cfc: 98a9 ld.w r5, (r14, 0x24) + 3cfe: 6cd4 or r3, r5 + 3d00: b864 st.w r3, (r14, 0x10) + 3d02: 9868 ld.w r3, (r14, 0x20) + 3d04: 70c9 lsr r3, r2 + 3d06: b865 st.w r3, (r14, 0x14) + 3d08: 07ab br 0x3c5e // 3c5e <_fpadd_parts+0x21a> + 3d0a: 0000 bkpt + 3d0c: 0fffffff .long 0x0fffffff + 3d10: 1fffffff .long 0x1fffffff + 3d14: 0000b324 .long 0x0000b324 + +00003d18 <__adddf3>: + 3d18: 14d0 push r15 + 3d1a: 1433 subi r14, r14, 76 + 3d1c: b800 st.w r0, (r14, 0x0) + 3d1e: b821 st.w r1, (r14, 0x4) + 3d20: 6c3b mov r0, r14 + 3d22: 1904 addi r1, r14, 16 + 3d24: b863 st.w r3, (r14, 0xc) + 3d26: b842 st.w r2, (r14, 0x8) + 3d28: e0000506 bsr 0x4734 // 4734 <__unpack_d> + 3d2c: 1909 addi r1, r14, 36 + 3d2e: 1802 addi r0, r14, 8 + 3d30: e0000502 bsr 0x4734 // 4734 <__unpack_d> + 3d34: 1a0e addi r2, r14, 56 + 3d36: 1909 addi r1, r14, 36 + 3d38: 1804 addi r0, r14, 16 + 3d3a: e3fffe85 bsr 0x3a44 // 3a44 <_fpadd_parts> + 3d3e: e000042d bsr 0x4598 // 4598 <__pack_d> + 3d42: 1413 addi r14, r14, 76 + 3d44: 1490 pop r15 + ... + +00003d48 <__subdf3>: + 3d48: 14d0 push r15 + 3d4a: 1433 subi r14, r14, 76 + 3d4c: b800 st.w r0, (r14, 0x0) + 3d4e: b821 st.w r1, (r14, 0x4) + 3d50: 6c3b mov r0, r14 + 3d52: 1904 addi r1, r14, 16 + 3d54: b842 st.w r2, (r14, 0x8) + 3d56: b863 st.w r3, (r14, 0xc) + 3d58: e00004ee bsr 0x4734 // 4734 <__unpack_d> + 3d5c: 1909 addi r1, r14, 36 + 3d5e: 1802 addi r0, r14, 8 + 3d60: e00004ea bsr 0x4734 // 4734 <__unpack_d> + 3d64: 986a ld.w r3, (r14, 0x28) + 3d66: 3201 movi r2, 1 + 3d68: 6cc9 xor r3, r2 + 3d6a: 1909 addi r1, r14, 36 + 3d6c: 1a0e addi r2, r14, 56 + 3d6e: 1804 addi r0, r14, 16 + 3d70: b86a st.w r3, (r14, 0x28) + 3d72: e3fffe69 bsr 0x3a44 // 3a44 <_fpadd_parts> + 3d76: e0000411 bsr 0x4598 // 4598 <__pack_d> + 3d7a: 1413 addi r14, r14, 76 + 3d7c: 1490 pop r15 + ... + +00003d80 <__muldf3>: + 3d80: 14d4 push r4-r7, r15 + 3d82: 143b subi r14, r14, 108 + 3d84: b808 st.w r0, (r14, 0x20) + 3d86: b829 st.w r1, (r14, 0x24) + 3d88: 1808 addi r0, r14, 32 + 3d8a: 190c addi r1, r14, 48 + 3d8c: b86b st.w r3, (r14, 0x2c) + 3d8e: b84a st.w r2, (r14, 0x28) + 3d90: e00004d2 bsr 0x4734 // 4734 <__unpack_d> + 3d94: 1911 addi r1, r14, 68 + 3d96: 180a addi r0, r14, 40 + 3d98: e00004ce bsr 0x4734 // 4734 <__unpack_d> + 3d9c: 986c ld.w r3, (r14, 0x30) + 3d9e: 3b01 cmphsi r3, 2 + 3da0: 0cac bf 0x3ef8 // 3ef8 <__muldf3+0x178> + 3da2: 9851 ld.w r2, (r14, 0x44) + 3da4: 3a01 cmphsi r2, 2 + 3da6: 0c9c bf 0x3ede // 3ede <__muldf3+0x15e> + 3da8: 3b44 cmpnei r3, 4 + 3daa: 0ca5 bf 0x3ef4 // 3ef4 <__muldf3+0x174> + 3dac: 3a44 cmpnei r2, 4 + 3dae: 0c96 bf 0x3eda // 3eda <__muldf3+0x15a> + 3db0: 3b42 cmpnei r3, 2 + 3db2: 0ca3 bf 0x3ef8 // 3ef8 <__muldf3+0x178> + 3db4: 3a42 cmpnei r2, 2 + 3db6: 0c94 bf 0x3ede // 3ede <__muldf3+0x15e> + 3db8: 98ef ld.w r7, (r14, 0x3c) + 3dba: 98b4 ld.w r5, (r14, 0x50) + 3dbc: 9875 ld.w r3, (r14, 0x54) + 3dbe: 6d8f mov r6, r3 + 3dc0: 6c9f mov r2, r7 + 3dc2: 3300 movi r3, 0 + 3dc4: 6c17 mov r0, r5 + 3dc6: 3100 movi r1, 0 + 3dc8: e00002c0 bsr 0x4348 // 4348 <__muldi3> + 3dcc: b804 st.w r0, (r14, 0x10) + 3dce: b825 st.w r1, (r14, 0x14) + 3dd0: 6c9f mov r2, r7 + 3dd2: 3300 movi r3, 0 + 3dd4: 6c1b mov r0, r6 + 3dd6: 3100 movi r1, 0 + 3dd8: 9890 ld.w r4, (r14, 0x40) + 3dda: b8c2 st.w r6, (r14, 0x8) + 3ddc: e00002b6 bsr 0x4348 // 4348 <__muldi3> + 3de0: 6d83 mov r6, r0 + 3de2: 6dc7 mov r7, r1 + 3de4: 9842 ld.w r2, (r14, 0x8) + 3de6: 3300 movi r3, 0 + 3de8: 6c13 mov r0, r4 + 3dea: 3100 movi r1, 0 + 3dec: e00002ae bsr 0x4348 // 4348 <__muldi3> + 3df0: b806 st.w r0, (r14, 0x18) + 3df2: b827 st.w r1, (r14, 0x1c) + 3df4: 6c97 mov r2, r5 + 3df6: 3300 movi r3, 0 + 3df8: 6c13 mov r0, r4 + 3dfa: 3100 movi r1, 0 + 3dfc: e00002a6 bsr 0x4348 // 4348 <__muldi3> + 3e00: 6401 cmplt r0, r0 + 3e02: 6019 addc r0, r6 + 3e04: 605d addc r1, r7 + 3e06: 65c4 cmphs r1, r7 + 3e08: 0c91 bf 0x3f2a // 3f2a <__muldf3+0x1aa> + 3e0a: 645e cmpne r7, r1 + 3e0c: 0c8d bf 0x3f26 // 3f26 <__muldf3+0x1a6> + 3e0e: 3300 movi r3, 0 + 3e10: 3400 movi r4, 0 + 3e12: b862 st.w r3, (r14, 0x8) + 3e14: b883 st.w r4, (r14, 0xc) + 3e16: 9884 ld.w r4, (r14, 0x10) + 3e18: 98a5 ld.w r5, (r14, 0x14) + 3e1a: 3600 movi r6, 0 + 3e1c: 6dc3 mov r7, r0 + 3e1e: 6c93 mov r2, r4 + 3e20: 6cd7 mov r3, r5 + 3e22: 6489 cmplt r2, r2 + 3e24: 6099 addc r2, r6 + 3e26: 60dd addc r3, r7 + 3e28: 6d8b mov r6, r2 + 3e2a: 6dcf mov r7, r3 + 3e2c: 6c93 mov r2, r4 + 3e2e: 6cd7 mov r3, r5 + 3e30: 64dc cmphs r7, r3 + 3e32: 0c70 bf 0x3f12 // 3f12 <__muldf3+0x192> + 3e34: 65ce cmpne r3, r7 + 3e36: 0c6c bf 0x3f0e // 3f0e <__muldf3+0x18e> + 3e38: 6c87 mov r2, r1 + 3e3a: 3300 movi r3, 0 + 3e3c: 9806 ld.w r0, (r14, 0x18) + 3e3e: 9827 ld.w r1, (r14, 0x1c) + 3e40: 6401 cmplt r0, r0 + 3e42: 6009 addc r0, r2 + 3e44: 604d addc r1, r3 + 3e46: 6c83 mov r2, r0 + 3e48: 6cc7 mov r3, r1 + 3e4a: 9802 ld.w r0, (r14, 0x8) + 3e4c: 9823 ld.w r1, (r14, 0xc) + 3e4e: 6401 cmplt r0, r0 + 3e50: 6009 addc r0, r2 + 3e52: 604d addc r1, r3 + 3e54: 6c83 mov r2, r0 + 3e56: 6cc7 mov r3, r1 + 3e58: 988e ld.w r4, (r14, 0x38) + 3e5a: 9833 ld.w r1, (r14, 0x4c) + 3e5c: 6104 addu r4, r1 + 3e5e: 5c2e addi r1, r4, 4 + 3e60: b838 st.w r1, (r14, 0x60) + 3e62: 980d ld.w r0, (r14, 0x34) + 3e64: 9832 ld.w r1, (r14, 0x48) + 3e66: 6442 cmpne r0, r1 + 3e68: 12b0 lrw r5, 0x1fffffff // 3fa8 <__muldf3+0x228> + 3e6a: 3100 movi r1, 0 + 3e6c: 6045 addc r1, r1 + 3e6e: 64d4 cmphs r5, r3 + 3e70: b837 st.w r1, (r14, 0x5c) + 3e72: 0879 bt 0x3f64 // 3f64 <__muldf3+0x1e4> + 3e74: 2404 addi r4, 5 + 3e76: b8a4 st.w r5, (r14, 0x10) + 3e78: 3001 movi r0, 1 + 3e7a: 3100 movi r1, 0 + 3e7c: 6808 and r0, r2 + 3e7e: 684c and r1, r3 + 3e80: 6c04 or r0, r1 + 3e82: 3840 cmpnei r0, 0 + 3e84: b882 st.w r4, (r14, 0x8) + 3e86: 0c0e bf 0x3ea2 // 3ea2 <__muldf3+0x122> + 3e88: 473f lsli r1, r7, 31 + 3e8a: 4e01 lsri r0, r6, 1 + 3e8c: 6c04 or r0, r1 + 3e8e: 4f21 lsri r1, r7, 1 + 3e90: b800 st.w r0, (r14, 0x0) + 3e92: b821 st.w r1, (r14, 0x4) + 3e94: 3180 movi r1, 128 + 3e96: 98c0 ld.w r6, (r14, 0x0) + 3e98: 98e1 ld.w r7, (r14, 0x4) + 3e9a: 3000 movi r0, 0 + 3e9c: 4138 lsli r1, r1, 24 + 3e9e: 6d80 or r6, r0 + 3ea0: 6dc4 or r7, r1 + 3ea2: 4b21 lsri r1, r3, 1 + 3ea4: 43bf lsli r5, r3, 31 + 3ea6: 4a01 lsri r0, r2, 1 + 3ea8: 6cc7 mov r3, r1 + 3eaa: 9824 ld.w r1, (r14, 0x10) + 3eac: 6d40 or r5, r0 + 3eae: 64c4 cmphs r1, r3 + 3eb0: 6c97 mov r2, r5 + 3eb2: 2400 addi r4, 1 + 3eb4: 0fe2 bf 0x3e78 // 3e78 <__muldf3+0xf8> + 3eb6: 9822 ld.w r1, (r14, 0x8) + 3eb8: b838 st.w r1, (r14, 0x60) + 3eba: 30ff movi r0, 255 + 3ebc: 3100 movi r1, 0 + 3ebe: 6808 and r0, r2 + 3ec0: 684c and r1, r3 + 3ec2: 3480 movi r4, 128 + 3ec4: 6502 cmpne r0, r4 + 3ec6: 0c37 bf 0x3f34 // 3f34 <__muldf3+0x1b4> + 3ec8: b859 st.w r2, (r14, 0x64) + 3eca: b87a st.w r3, (r14, 0x68) + 3ecc: 3303 movi r3, 3 + 3ece: b876 st.w r3, (r14, 0x58) + 3ed0: 1816 addi r0, r14, 88 + 3ed2: e0000363 bsr 0x4598 // 4598 <__pack_d> + 3ed6: 141b addi r14, r14, 108 + 3ed8: 1494 pop r4-r7, r15 + 3eda: 3b42 cmpnei r3, 2 + 3edc: 0c42 bf 0x3f60 // 3f60 <__muldf3+0x1e0> + 3ede: 9872 ld.w r3, (r14, 0x48) + 3ee0: 984d ld.w r2, (r14, 0x34) + 3ee2: 64ca cmpne r2, r3 + 3ee4: 3300 movi r3, 0 + 3ee6: 60cd addc r3, r3 + 3ee8: 1811 addi r0, r14, 68 + 3eea: b872 st.w r3, (r14, 0x48) + 3eec: e0000356 bsr 0x4598 // 4598 <__pack_d> + 3ef0: 141b addi r14, r14, 108 + 3ef2: 1494 pop r4-r7, r15 + 3ef4: 3a42 cmpnei r2, 2 + 3ef6: 0c35 bf 0x3f60 // 3f60 <__muldf3+0x1e0> + 3ef8: 984d ld.w r2, (r14, 0x34) + 3efa: 9872 ld.w r3, (r14, 0x48) + 3efc: 64ca cmpne r2, r3 + 3efe: 3300 movi r3, 0 + 3f00: 60cd addc r3, r3 + 3f02: 180c addi r0, r14, 48 + 3f04: b86d st.w r3, (r14, 0x34) + 3f06: e0000349 bsr 0x4598 // 4598 <__pack_d> + 3f0a: 141b addi r14, r14, 108 + 3f0c: 1494 pop r4-r7, r15 + 3f0e: 6498 cmphs r6, r2 + 3f10: 0b94 bt 0x3e38 // 3e38 <__muldf3+0xb8> + 3f12: 9882 ld.w r4, (r14, 0x8) + 3f14: 98a3 ld.w r5, (r14, 0xc) + 3f16: 3201 movi r2, 1 + 3f18: 3300 movi r3, 0 + 3f1a: 6511 cmplt r4, r4 + 3f1c: 6109 addc r4, r2 + 3f1e: 614d addc r5, r3 + 3f20: b882 st.w r4, (r14, 0x8) + 3f22: b8a3 st.w r5, (r14, 0xc) + 3f24: 078a br 0x3e38 // 3e38 <__muldf3+0xb8> + 3f26: 6580 cmphs r0, r6 + 3f28: 0b73 bt 0x3e0e // 3e0e <__muldf3+0x8e> + 3f2a: 3300 movi r3, 0 + 3f2c: 3401 movi r4, 1 + 3f2e: b862 st.w r3, (r14, 0x8) + 3f30: b883 st.w r4, (r14, 0xc) + 3f32: 0772 br 0x3e16 // 3e16 <__muldf3+0x96> + 3f34: 3940 cmpnei r1, 0 + 3f36: 0bc9 bt 0x3ec8 // 3ec8 <__muldf3+0x148> + 3f38: 3180 movi r1, 128 + 3f3a: 4121 lsli r1, r1, 1 + 3f3c: 6848 and r1, r2 + 3f3e: 3940 cmpnei r1, 0 + 3f40: 0bc4 bt 0x3ec8 // 3ec8 <__muldf3+0x148> + 3f42: 6c5b mov r1, r6 + 3f44: 6c5c or r1, r7 + 3f46: 3940 cmpnei r1, 0 + 3f48: 0fc0 bf 0x3ec8 // 3ec8 <__muldf3+0x148> + 3f4a: 3080 movi r0, 128 + 3f4c: 3100 movi r1, 0 + 3f4e: 6401 cmplt r0, r0 + 3f50: 6009 addc r0, r2 + 3f52: 604d addc r1, r3 + 3f54: 34ff movi r4, 255 + 3f56: 6d43 mov r5, r0 + 3f58: 6951 andn r5, r4 + 3f5a: 6c97 mov r2, r5 + 3f5c: 6cc7 mov r3, r1 + 3f5e: 07b5 br 0x3ec8 // 3ec8 <__muldf3+0x148> + 3f60: 1013 lrw r0, 0xb324 // 3fac <__muldf3+0x22c> + 3f62: 07b8 br 0x3ed2 // 3ed2 <__muldf3+0x152> + 3f64: 1033 lrw r1, 0xfffffff // 3fb0 <__muldf3+0x230> + 3f66: 64c4 cmphs r1, r3 + 3f68: 0fa9 bf 0x3eba // 3eba <__muldf3+0x13a> + 3f6a: 2402 addi r4, 3 + 3f6c: b822 st.w r1, (r14, 0x8) + 3f6e: 4a1f lsri r0, r2, 31 + 3f70: 4321 lsli r1, r3, 1 + 3f72: 42a1 lsli r5, r2, 1 + 3f74: 6c04 or r0, r1 + 3f76: 3fdf btsti r7, 31 + 3f78: b880 st.w r4, (r14, 0x0) + 3f7a: 6c97 mov r2, r5 + 3f7c: 6cc3 mov r3, r0 + 3f7e: 0c07 bf 0x3f8c // 3f8c <__muldf3+0x20c> + 3f80: 3001 movi r0, 1 + 3f82: 3100 movi r1, 0 + 3f84: 6c08 or r0, r2 + 3f86: 6c4c or r1, r3 + 3f88: 6c83 mov r2, r0 + 3f8a: 6cc7 mov r3, r1 + 3f8c: 4721 lsli r1, r7, 1 + 3f8e: 4e1f lsri r0, r6, 31 + 3f90: 6c04 or r0, r1 + 3f92: 9822 ld.w r1, (r14, 0x8) + 3f94: 46a1 lsli r5, r6, 1 + 3f96: 64c4 cmphs r1, r3 + 3f98: 6d97 mov r6, r5 + 3f9a: 6dc3 mov r7, r0 + 3f9c: 2c00 subi r4, 1 + 3f9e: 0be8 bt 0x3f6e // 3f6e <__muldf3+0x1ee> + 3fa0: 9820 ld.w r1, (r14, 0x0) + 3fa2: b838 st.w r1, (r14, 0x60) + 3fa4: 078b br 0x3eba // 3eba <__muldf3+0x13a> + 3fa6: 0000 bkpt + 3fa8: 1fffffff .long 0x1fffffff + 3fac: 0000b324 .long 0x0000b324 + 3fb0: 0fffffff .long 0x0fffffff + +00003fb4 <__divdf3>: + 3fb4: 14d4 push r4-r7, r15 + 3fb6: 1432 subi r14, r14, 72 + 3fb8: b804 st.w r0, (r14, 0x10) + 3fba: b825 st.w r1, (r14, 0x14) + 3fbc: 1804 addi r0, r14, 16 + 3fbe: 1908 addi r1, r14, 32 + 3fc0: b867 st.w r3, (r14, 0x1c) + 3fc2: b846 st.w r2, (r14, 0x18) + 3fc4: e00003b8 bsr 0x4734 // 4734 <__unpack_d> + 3fc8: 190d addi r1, r14, 52 + 3fca: 1806 addi r0, r14, 24 + 3fcc: e00003b4 bsr 0x4734 // 4734 <__unpack_d> + 3fd0: 9868 ld.w r3, (r14, 0x20) + 3fd2: 3b01 cmphsi r3, 2 + 3fd4: 0c66 bf 0x40a0 // 40a0 <__divdf3+0xec> + 3fd6: 982d ld.w r1, (r14, 0x34) + 3fd8: 3901 cmphsi r1, 2 + 3fda: 0c92 bf 0x40fe // 40fe <__divdf3+0x14a> + 3fdc: 9849 ld.w r2, (r14, 0x24) + 3fde: 980e ld.w r0, (r14, 0x38) + 3fe0: 6c81 xor r2, r0 + 3fe2: 3b44 cmpnei r3, 4 + 3fe4: b849 st.w r2, (r14, 0x24) + 3fe6: 0c62 bf 0x40aa // 40aa <__divdf3+0xf6> + 3fe8: 3b42 cmpnei r3, 2 + 3fea: 0c60 bf 0x40aa // 40aa <__divdf3+0xf6> + 3fec: 3944 cmpnei r1, 4 + 3fee: 0c62 bf 0x40b2 // 40b2 <__divdf3+0xfe> + 3ff0: 3942 cmpnei r1, 2 + 3ff2: 0c82 bf 0x40f6 // 40f6 <__divdf3+0x142> + 3ff4: 982a ld.w r1, (r14, 0x28) + 3ff6: 986f ld.w r3, (r14, 0x3c) + 3ff8: 604e subu r1, r3 + 3ffa: 9890 ld.w r4, (r14, 0x40) + 3ffc: 98b1 ld.w r5, (r14, 0x44) + 3ffe: 984b ld.w r2, (r14, 0x2c) + 4000: 986c ld.w r3, (r14, 0x30) + 4002: 654c cmphs r3, r5 + 4004: b82a st.w r1, (r14, 0x28) + 4006: 6d93 mov r6, r4 + 4008: 6dd7 mov r7, r5 + 400a: 0c05 bf 0x4014 // 4014 <__divdf3+0x60> + 400c: 64d6 cmpne r5, r3 + 400e: 080b bt 0x4024 // 4024 <__divdf3+0x70> + 4010: 6508 cmphs r2, r4 + 4012: 0809 bt 0x4024 // 4024 <__divdf3+0x70> + 4014: 4a9f lsri r4, r2, 31 + 4016: 4301 lsli r0, r3, 1 + 4018: 42a1 lsli r5, r2, 1 + 401a: 6d00 or r4, r0 + 401c: 2900 subi r1, 1 + 401e: 6c97 mov r2, r5 + 4020: 6cd3 mov r3, r4 + 4022: b82a st.w r1, (r14, 0x28) + 4024: 3000 movi r0, 0 + 4026: 3100 movi r1, 0 + 4028: b802 st.w r0, (r14, 0x8) + 402a: b823 st.w r1, (r14, 0xc) + 402c: 3180 movi r1, 128 + 402e: 343d movi r4, 61 + 4030: 3000 movi r0, 0 + 4032: 4135 lsli r1, r1, 21 + 4034: b8c0 st.w r6, (r14, 0x0) + 4036: b8e1 st.w r7, (r14, 0x4) + 4038: 98a0 ld.w r5, (r14, 0x0) + 403a: 98c1 ld.w r6, (r14, 0x4) + 403c: 658c cmphs r3, r6 + 403e: 0c10 bf 0x405e // 405e <__divdf3+0xaa> + 4040: 64da cmpne r6, r3 + 4042: 0803 bt 0x4048 // 4048 <__divdf3+0x94> + 4044: 6548 cmphs r2, r5 + 4046: 0c0c bf 0x405e // 405e <__divdf3+0xaa> + 4048: 98a2 ld.w r5, (r14, 0x8) + 404a: 98c3 ld.w r6, (r14, 0xc) + 404c: 6d40 or r5, r0 + 404e: 6d84 or r6, r1 + 4050: b8a2 st.w r5, (r14, 0x8) + 4052: b8c3 st.w r6, (r14, 0xc) + 4054: 98a0 ld.w r5, (r14, 0x0) + 4056: 98c1 ld.w r6, (r14, 0x4) + 4058: 6488 cmphs r2, r2 + 405a: 6097 subc r2, r5 + 405c: 60db subc r3, r6 + 405e: 41bf lsli r5, r1, 31 + 4060: 48e1 lsri r7, r0, 1 + 4062: 6d97 mov r6, r5 + 4064: 49a1 lsri r5, r1, 1 + 4066: 6d9c or r6, r7 + 4068: 6c57 mov r1, r5 + 406a: 4abf lsri r5, r2, 31 + 406c: 6c1b mov r0, r6 + 406e: 2c00 subi r4, 1 + 4070: 6d97 mov r6, r5 + 4072: 43a1 lsli r5, r3, 1 + 4074: 6d94 or r6, r5 + 4076: 4261 lsli r3, r2, 1 + 4078: 3c40 cmpnei r4, 0 + 407a: 6dcf mov r7, r3 + 407c: 6c8f mov r2, r3 + 407e: 6cdb mov r3, r6 + 4080: 0bdc bt 0x4038 // 4038 <__divdf3+0x84> + 4082: 30ff movi r0, 255 + 4084: 3100 movi r1, 0 + 4086: 9882 ld.w r4, (r14, 0x8) + 4088: 98a3 ld.w r5, (r14, 0xc) + 408a: 6900 and r4, r0 + 408c: 6944 and r5, r1 + 408e: 6c13 mov r0, r4 + 4090: 6c57 mov r1, r5 + 4092: 3480 movi r4, 128 + 4094: 6502 cmpne r0, r4 + 4096: 0c15 bf 0x40c0 // 40c0 <__divdf3+0x10c> + 4098: 9862 ld.w r3, (r14, 0x8) + 409a: 9883 ld.w r4, (r14, 0xc) + 409c: b86b st.w r3, (r14, 0x2c) + 409e: b88c st.w r4, (r14, 0x30) + 40a0: 1808 addi r0, r14, 32 + 40a2: e000027b bsr 0x4598 // 4598 <__pack_d> + 40a6: 1412 addi r14, r14, 72 + 40a8: 1494 pop r4-r7, r15 + 40aa: 644e cmpne r3, r1 + 40ac: 0bfa bt 0x40a0 // 40a0 <__divdf3+0xec> + 40ae: 1016 lrw r0, 0xb324 // 4104 <__divdf3+0x150> + 40b0: 07f9 br 0x40a2 // 40a2 <__divdf3+0xee> + 40b2: 3300 movi r3, 0 + 40b4: 3400 movi r4, 0 + 40b6: b86b st.w r3, (r14, 0x2c) + 40b8: b88c st.w r4, (r14, 0x30) + 40ba: b86a st.w r3, (r14, 0x28) + 40bc: 1808 addi r0, r14, 32 + 40be: 07f2 br 0x40a2 // 40a2 <__divdf3+0xee> + 40c0: 3940 cmpnei r1, 0 + 40c2: 0beb bt 0x4098 // 4098 <__divdf3+0xe4> + 40c4: 3180 movi r1, 128 + 40c6: 4121 lsli r1, r1, 1 + 40c8: 9882 ld.w r4, (r14, 0x8) + 40ca: 98a3 ld.w r5, (r14, 0xc) + 40cc: 6850 and r1, r4 + 40ce: 3940 cmpnei r1, 0 + 40d0: 0be4 bt 0x4098 // 4098 <__divdf3+0xe4> + 40d2: 6c98 or r2, r6 + 40d4: 3a40 cmpnei r2, 0 + 40d6: 0fe1 bf 0x4098 // 4098 <__divdf3+0xe4> + 40d8: 3280 movi r2, 128 + 40da: 3300 movi r3, 0 + 40dc: 6c13 mov r0, r4 + 40de: 6c57 mov r1, r5 + 40e0: 6401 cmplt r0, r0 + 40e2: 6009 addc r0, r2 + 40e4: 604d addc r1, r3 + 40e6: 6c83 mov r2, r0 + 40e8: 6cc7 mov r3, r1 + 40ea: 6c0b mov r0, r2 + 40ec: 31ff movi r1, 255 + 40ee: 6805 andn r0, r1 + 40f0: b802 st.w r0, (r14, 0x8) + 40f2: b863 st.w r3, (r14, 0xc) + 40f4: 07d2 br 0x4098 // 4098 <__divdf3+0xe4> + 40f6: 3304 movi r3, 4 + 40f8: b868 st.w r3, (r14, 0x20) + 40fa: 1808 addi r0, r14, 32 + 40fc: 07d3 br 0x40a2 // 40a2 <__divdf3+0xee> + 40fe: 180d addi r0, r14, 52 + 4100: 07d1 br 0x40a2 // 40a2 <__divdf3+0xee> + 4102: 0000 bkpt + 4104: 0000b324 .long 0x0000b324 + +00004108 <__gtdf2>: + 4108: 14d0 push r15 + 410a: 142e subi r14, r14, 56 + 410c: b800 st.w r0, (r14, 0x0) + 410e: b821 st.w r1, (r14, 0x4) + 4110: 6c3b mov r0, r14 + 4112: 1904 addi r1, r14, 16 + 4114: b863 st.w r3, (r14, 0xc) + 4116: b842 st.w r2, (r14, 0x8) + 4118: e000030e bsr 0x4734 // 4734 <__unpack_d> + 411c: 1909 addi r1, r14, 36 + 411e: 1802 addi r0, r14, 8 + 4120: e000030a bsr 0x4734 // 4734 <__unpack_d> + 4124: 9864 ld.w r3, (r14, 0x10) + 4126: 3b01 cmphsi r3, 2 + 4128: 0c0a bf 0x413c // 413c <__gtdf2+0x34> + 412a: 9869 ld.w r3, (r14, 0x24) + 412c: 3b01 cmphsi r3, 2 + 412e: 0c07 bf 0x413c // 413c <__gtdf2+0x34> + 4130: 1909 addi r1, r14, 36 + 4132: 1804 addi r0, r14, 16 + 4134: e0000362 bsr 0x47f8 // 47f8 <__fpcmp_parts_d> + 4138: 140e addi r14, r14, 56 + 413a: 1490 pop r15 + 413c: 3000 movi r0, 0 + 413e: 2800 subi r0, 1 + 4140: 140e addi r14, r14, 56 + 4142: 1490 pop r15 + +00004144 <__gedf2>: + 4144: 14d0 push r15 + 4146: 142e subi r14, r14, 56 + 4148: b800 st.w r0, (r14, 0x0) + 414a: b821 st.w r1, (r14, 0x4) + 414c: 6c3b mov r0, r14 + 414e: 1904 addi r1, r14, 16 + 4150: b863 st.w r3, (r14, 0xc) + 4152: b842 st.w r2, (r14, 0x8) + 4154: e00002f0 bsr 0x4734 // 4734 <__unpack_d> + 4158: 1909 addi r1, r14, 36 + 415a: 1802 addi r0, r14, 8 + 415c: e00002ec bsr 0x4734 // 4734 <__unpack_d> + 4160: 9864 ld.w r3, (r14, 0x10) + 4162: 3b01 cmphsi r3, 2 + 4164: 0c0a bf 0x4178 // 4178 <__gedf2+0x34> + 4166: 9869 ld.w r3, (r14, 0x24) + 4168: 3b01 cmphsi r3, 2 + 416a: 0c07 bf 0x4178 // 4178 <__gedf2+0x34> + 416c: 1909 addi r1, r14, 36 + 416e: 1804 addi r0, r14, 16 + 4170: e0000344 bsr 0x47f8 // 47f8 <__fpcmp_parts_d> + 4174: 140e addi r14, r14, 56 + 4176: 1490 pop r15 + 4178: 3000 movi r0, 0 + 417a: 2800 subi r0, 1 + 417c: 140e addi r14, r14, 56 + 417e: 1490 pop r15 + +00004180 <__ledf2>: + 4180: 14d0 push r15 + 4182: 142e subi r14, r14, 56 + 4184: b800 st.w r0, (r14, 0x0) + 4186: b821 st.w r1, (r14, 0x4) + 4188: 6c3b mov r0, r14 + 418a: 1904 addi r1, r14, 16 + 418c: b863 st.w r3, (r14, 0xc) + 418e: b842 st.w r2, (r14, 0x8) + 4190: e00002d2 bsr 0x4734 // 4734 <__unpack_d> + 4194: 1909 addi r1, r14, 36 + 4196: 1802 addi r0, r14, 8 + 4198: e00002ce bsr 0x4734 // 4734 <__unpack_d> + 419c: 9864 ld.w r3, (r14, 0x10) + 419e: 3b01 cmphsi r3, 2 + 41a0: 0c0a bf 0x41b4 // 41b4 <__ledf2+0x34> + 41a2: 9869 ld.w r3, (r14, 0x24) + 41a4: 3b01 cmphsi r3, 2 + 41a6: 0c07 bf 0x41b4 // 41b4 <__ledf2+0x34> + 41a8: 1909 addi r1, r14, 36 + 41aa: 1804 addi r0, r14, 16 + 41ac: e0000326 bsr 0x47f8 // 47f8 <__fpcmp_parts_d> + 41b0: 140e addi r14, r14, 56 + 41b2: 1490 pop r15 + 41b4: 3001 movi r0, 1 + 41b6: 140e addi r14, r14, 56 + 41b8: 1490 pop r15 + ... + +000041bc <__floatsidf>: + 41bc: 14d1 push r4, r15 + 41be: 1425 subi r14, r14, 20 + 41c0: 3303 movi r3, 3 + 41c2: b860 st.w r3, (r14, 0x0) + 41c4: 3840 cmpnei r0, 0 + 41c6: 487f lsri r3, r0, 31 + 41c8: b861 st.w r3, (r14, 0x4) + 41ca: 0808 bt 0x41da // 41da <__floatsidf+0x1e> + 41cc: 3302 movi r3, 2 + 41ce: b860 st.w r3, (r14, 0x0) + 41d0: 6c3b mov r0, r14 + 41d2: e00001e3 bsr 0x4598 // 4598 <__pack_d> + 41d6: 1405 addi r14, r14, 20 + 41d8: 1491 pop r4, r15 + 41da: 38df btsti r0, 31 + 41dc: 0812 bt 0x4200 // 4200 <__floatsidf+0x44> + 41de: 6d03 mov r4, r0 + 41e0: 6c13 mov r0, r4 + 41e2: e00000d5 bsr 0x438c // 438c <__clzsi2> + 41e6: 321d movi r2, 29 + 41e8: 6080 addu r2, r0 + 41ea: 2802 subi r0, 3 + 41ec: 38df btsti r0, 31 + 41ee: 0810 bt 0x420e // 420e <__floatsidf+0x52> + 41f0: 7100 lsl r4, r0 + 41f2: 3300 movi r3, 0 + 41f4: b884 st.w r4, (r14, 0x10) + 41f6: b863 st.w r3, (r14, 0xc) + 41f8: 333c movi r3, 60 + 41fa: 60ca subu r3, r2 + 41fc: b862 st.w r3, (r14, 0x8) + 41fe: 07e9 br 0x41d0 // 41d0 <__floatsidf+0x14> + 4200: 3380 movi r3, 128 + 4202: 4378 lsli r3, r3, 24 + 4204: 64c2 cmpne r0, r3 + 4206: 0c0d bf 0x4220 // 4220 <__floatsidf+0x64> + 4208: 3400 movi r4, 0 + 420a: 6102 subu r4, r0 + 420c: 07ea br 0x41e0 // 41e0 <__floatsidf+0x24> + 420e: 311f movi r1, 31 + 4210: 4c61 lsri r3, r4, 1 + 4212: 604a subu r1, r2 + 4214: 6c13 mov r0, r4 + 4216: 70c5 lsr r3, r1 + 4218: 7008 lsl r0, r2 + 421a: b864 st.w r3, (r14, 0x10) + 421c: b803 st.w r0, (r14, 0xc) + 421e: 07ed br 0x41f8 // 41f8 <__floatsidf+0x3c> + 4220: 3000 movi r0, 0 + 4222: 1022 lrw r1, 0xc1e00000 // 4228 <__floatsidf+0x6c> + 4224: 07d9 br 0x41d6 // 41d6 <__floatsidf+0x1a> + 4226: 0000 bkpt + 4228: c1e00000 .long 0xc1e00000 + +0000422c <__fixdfsi>: + 422c: 14d0 push r15 + 422e: 1427 subi r14, r14, 28 + 4230: b800 st.w r0, (r14, 0x0) + 4232: b821 st.w r1, (r14, 0x4) + 4234: 6c3b mov r0, r14 + 4236: 1902 addi r1, r14, 8 + 4238: e000027e bsr 0x4734 // 4734 <__unpack_d> + 423c: 9862 ld.w r3, (r14, 0x8) + 423e: 3b02 cmphsi r3, 3 + 4240: 0c20 bf 0x4280 // 4280 <__fixdfsi+0x54> + 4242: 3b44 cmpnei r3, 4 + 4244: 0c16 bf 0x4270 // 4270 <__fixdfsi+0x44> + 4246: 9864 ld.w r3, (r14, 0x10) + 4248: 3bdf btsti r3, 31 + 424a: 081b bt 0x4280 // 4280 <__fixdfsi+0x54> + 424c: 3b3e cmplti r3, 31 + 424e: 0c11 bf 0x4270 // 4270 <__fixdfsi+0x44> + 4250: 323c movi r2, 60 + 4252: 5a6d subu r3, r2, r3 + 4254: 3200 movi r2, 0 + 4256: 2a1f subi r2, 32 + 4258: 608c addu r2, r3 + 425a: 3adf btsti r2, 31 + 425c: 0815 bt 0x4286 // 4286 <__fixdfsi+0x5a> + 425e: 9806 ld.w r0, (r14, 0x18) + 4260: 7009 lsr r0, r2 + 4262: 9863 ld.w r3, (r14, 0xc) + 4264: 3b40 cmpnei r3, 0 + 4266: 0c0b bf 0x427c // 427c <__fixdfsi+0x50> + 4268: 3300 movi r3, 0 + 426a: 5b01 subu r0, r3, r0 + 426c: 1407 addi r14, r14, 28 + 426e: 1490 pop r15 + 4270: 9863 ld.w r3, (r14, 0xc) + 4272: 3b40 cmpnei r3, 0 + 4274: 3000 movi r0, 0 + 4276: 6001 addc r0, r0 + 4278: 1068 lrw r3, 0x7fffffff // 4298 <__fixdfsi+0x6c> + 427a: 600c addu r0, r3 + 427c: 1407 addi r14, r14, 28 + 427e: 1490 pop r15 + 4280: 3000 movi r0, 0 + 4282: 1407 addi r14, r14, 28 + 4284: 1490 pop r15 + 4286: 9846 ld.w r2, (r14, 0x18) + 4288: 311f movi r1, 31 + 428a: 4241 lsli r2, r2, 1 + 428c: 604e subu r1, r3 + 428e: 9805 ld.w r0, (r14, 0x14) + 4290: 7084 lsl r2, r1 + 4292: 700d lsr r0, r3 + 4294: 6c08 or r0, r2 + 4296: 07e6 br 0x4262 // 4262 <__fixdfsi+0x36> + 4298: 7fffffff .long 0x7fffffff + +0000429c <__make_dp>: + 429c: 1421 subi r14, r14, 4 + 429e: 14d1 push r4, r15 + 42a0: 1425 subi r14, r14, 20 + 42a2: b867 st.w r3, (r14, 0x1c) + 42a4: 9867 ld.w r3, (r14, 0x1c) + 42a6: 9888 ld.w r4, (r14, 0x20) + 42a8: b800 st.w r0, (r14, 0x0) + 42aa: 6c3b mov r0, r14 + 42ac: b821 st.w r1, (r14, 0x4) + 42ae: b842 st.w r2, (r14, 0x8) + 42b0: b863 st.w r3, (r14, 0xc) + 42b2: b884 st.w r4, (r14, 0x10) + 42b4: e0000172 bsr 0x4598 // 4598 <__pack_d> + 42b8: 1405 addi r14, r14, 20 + 42ba: d9ee2001 ld.w r15, (r14, 0x4) + 42be: 9880 ld.w r4, (r14, 0x0) + 42c0: 1403 addi r14, r14, 12 + 42c2: 783c jmp r15 + +000042c4 <__truncdfsf2>: + 42c4: 14d0 push r15 + 42c6: 1427 subi r14, r14, 28 + 42c8: b800 st.w r0, (r14, 0x0) + 42ca: b821 st.w r1, (r14, 0x4) + 42cc: 6c3b mov r0, r14 + 42ce: 1902 addi r1, r14, 8 + 42d0: e0000232 bsr 0x4734 // 4734 <__unpack_d> + 42d4: 9845 ld.w r2, (r14, 0x14) + 42d6: 4a3e lsri r1, r2, 30 + 42d8: 9866 ld.w r3, (r14, 0x18) + 42da: 4242 lsli r2, r2, 2 + 42dc: 4362 lsli r3, r3, 2 + 42de: 3a40 cmpnei r2, 0 + 42e0: 6cc4 or r3, r1 + 42e2: 0c02 bf 0x42e6 // 42e6 <__truncdfsf2+0x22> + 42e4: 3ba0 bseti r3, 0 + 42e6: 9844 ld.w r2, (r14, 0x10) + 42e8: 9823 ld.w r1, (r14, 0xc) + 42ea: 9802 ld.w r0, (r14, 0x8) + 42ec: e000014a bsr 0x4580 // 4580 <__make_fp> + 42f0: 1407 addi r14, r14, 28 + 42f2: 1490 pop r15 + +000042f4 <__floatunsidf>: + 42f4: 14d2 push r4-r5, r15 + 42f6: 1425 subi r14, r14, 20 + 42f8: 3840 cmpnei r0, 0 + 42fa: 3500 movi r5, 0 + 42fc: 6d03 mov r4, r0 + 42fe: b8a1 st.w r5, (r14, 0x4) + 4300: 0c15 bf 0x432a // 432a <__floatunsidf+0x36> + 4302: 3303 movi r3, 3 + 4304: b860 st.w r3, (r14, 0x0) + 4306: e0000043 bsr 0x438c // 438c <__clzsi2> + 430a: 321d movi r2, 29 + 430c: 6080 addu r2, r0 + 430e: 2802 subi r0, 3 + 4310: 38df btsti r0, 31 + 4312: 0813 bt 0x4338 // 4338 <__floatunsidf+0x44> + 4314: 7100 lsl r4, r0 + 4316: b884 st.w r4, (r14, 0x10) + 4318: b8a3 st.w r5, (r14, 0xc) + 431a: 333c movi r3, 60 + 431c: 60ca subu r3, r2 + 431e: 6c3b mov r0, r14 + 4320: b862 st.w r3, (r14, 0x8) + 4322: e000013b bsr 0x4598 // 4598 <__pack_d> + 4326: 1405 addi r14, r14, 20 + 4328: 1492 pop r4-r5, r15 + 432a: 3302 movi r3, 2 + 432c: 6c3b mov r0, r14 + 432e: b860 st.w r3, (r14, 0x0) + 4330: e0000134 bsr 0x4598 // 4598 <__pack_d> + 4334: 1405 addi r14, r14, 20 + 4336: 1492 pop r4-r5, r15 + 4338: 311f movi r1, 31 + 433a: 4c61 lsri r3, r4, 1 + 433c: 604a subu r1, r2 + 433e: 70c5 lsr r3, r1 + 4340: 7108 lsl r4, r2 + 4342: b864 st.w r3, (r14, 0x10) + 4344: b883 st.w r4, (r14, 0xc) + 4346: 07ea br 0x431a // 431a <__floatunsidf+0x26> + +00004348 <__muldi3>: + 4348: 14c4 push r4-r7 + 434a: 1421 subi r14, r14, 4 + 434c: 7501 zexth r4, r0 + 434e: 48b0 lsri r5, r0, 16 + 4350: 75c9 zexth r7, r2 + 4352: 6d83 mov r6, r0 + 4354: b820 st.w r1, (r14, 0x0) + 4356: 6c13 mov r0, r4 + 4358: 4a30 lsri r1, r2, 16 + 435a: 7c1c mult r0, r7 + 435c: 7d04 mult r4, r1 + 435e: 7dd4 mult r7, r5 + 4360: 611c addu r4, r7 + 4362: 7d44 mult r5, r1 + 4364: 4830 lsri r1, r0, 16 + 4366: 6104 addu r4, r1 + 4368: 65d0 cmphs r4, r7 + 436a: 0804 bt 0x4372 // 4372 <__muldi3+0x2a> + 436c: 3180 movi r1, 128 + 436e: 4129 lsli r1, r1, 9 + 4370: 6144 addu r5, r1 + 4372: 4c30 lsri r1, r4, 16 + 4374: 7cd8 mult r3, r6 + 4376: 6144 addu r5, r1 + 4378: 6c4f mov r1, r3 + 437a: 9860 ld.w r3, (r14, 0x0) + 437c: 7cc8 mult r3, r2 + 437e: 4490 lsli r4, r4, 16 + 4380: 604c addu r1, r3 + 4382: 7401 zexth r0, r0 + 4384: 6010 addu r0, r4 + 4386: 6054 addu r1, r5 + 4388: 1401 addi r14, r14, 4 + 438a: 1484 pop r4-r7 + +0000438c <__clzsi2>: + 438c: 106d lrw r3, 0xffff // 43c0 <__clzsi2+0x34> + 438e: 640c cmphs r3, r0 + 4390: 0c07 bf 0x439e // 439e <__clzsi2+0x12> + 4392: 33ff movi r3, 255 + 4394: 640c cmphs r3, r0 + 4396: 0c0f bf 0x43b4 // 43b4 <__clzsi2+0x28> + 4398: 3320 movi r3, 32 + 439a: 3200 movi r2, 0 + 439c: 0406 br 0x43a8 // 43a8 <__clzsi2+0x1c> + 439e: 106a lrw r3, 0xffffff // 43c4 <__clzsi2+0x38> + 43a0: 640c cmphs r3, r0 + 43a2: 080c bt 0x43ba // 43ba <__clzsi2+0x2e> + 43a4: 3308 movi r3, 8 + 43a6: 3218 movi r2, 24 + 43a8: 7009 lsr r0, r2 + 43aa: 1048 lrw r2, 0xb338 // 43c8 <__clzsi2+0x3c> + 43ac: 6008 addu r0, r2 + 43ae: 8040 ld.b r2, (r0, 0x0) + 43b0: 5b09 subu r0, r3, r2 + 43b2: 783c jmp r15 + 43b4: 3318 movi r3, 24 + 43b6: 3208 movi r2, 8 + 43b8: 07f8 br 0x43a8 // 43a8 <__clzsi2+0x1c> + 43ba: 3310 movi r3, 16 + 43bc: 3210 movi r2, 16 + 43be: 07f5 br 0x43a8 // 43a8 <__clzsi2+0x1c> + 43c0: 0000ffff .long 0x0000ffff + 43c4: 00ffffff .long 0x00ffffff + 43c8: 0000b338 .long 0x0000b338 + +000043cc <__pack_f>: + 43cc: 14c2 push r4-r5 + 43ce: 9040 ld.w r2, (r0, 0x0) + 43d0: 3a01 cmphsi r2, 2 + 43d2: 9063 ld.w r3, (r0, 0xc) + 43d4: 9021 ld.w r1, (r0, 0x4) + 43d6: 0c27 bf 0x4424 // 4424 <__pack_f+0x58> + 43d8: 3a44 cmpnei r2, 4 + 43da: 0c22 bf 0x441e // 441e <__pack_f+0x52> + 43dc: 3a42 cmpnei r2, 2 + 43de: 0c1d bf 0x4418 // 4418 <__pack_f+0x4c> + 43e0: 3b40 cmpnei r3, 0 + 43e2: 0c1b bf 0x4418 // 4418 <__pack_f+0x4c> + 43e4: 3400 movi r4, 0 + 43e6: 9042 ld.w r2, (r0, 0x8) + 43e8: 2c7d subi r4, 126 + 43ea: 6509 cmplt r2, r4 + 43ec: 082a bt 0x4440 // 4440 <__pack_f+0x74> + 43ee: 347f movi r4, 127 + 43f0: 6491 cmplt r4, r2 + 43f2: 0816 bt 0x441e // 441e <__pack_f+0x52> + 43f4: 690c and r4, r3 + 43f6: 3540 movi r5, 64 + 43f8: 6552 cmpne r4, r5 + 43fa: 0c1a bf 0x442e // 442e <__pack_f+0x62> + 43fc: 233e addi r3, 63 + 43fe: 3bdf btsti r3, 31 + 4400: 081d bt 0x443a // 443a <__pack_f+0x6e> + 4402: 227e addi r2, 127 + 4404: 4302 lsli r0, r3, 2 + 4406: 4809 lsri r0, r0, 9 + 4408: 74c8 zextb r3, r2 + 440a: 4009 lsli r0, r0, 9 + 440c: 4377 lsli r3, r3, 23 + 440e: 4809 lsri r0, r0, 9 + 4410: 413f lsli r1, r1, 31 + 4412: 6c0c or r0, r3 + 4414: 6c04 or r0, r1 + 4416: 1482 pop r4-r5 + 4418: 3300 movi r3, 0 + 441a: 3000 movi r0, 0 + 441c: 07f7 br 0x440a // 440a <__pack_f+0x3e> + 441e: 33ff movi r3, 255 + 4420: 3000 movi r0, 0 + 4422: 07f4 br 0x440a // 440a <__pack_f+0x3e> + 4424: 4303 lsli r0, r3, 3 + 4426: 480a lsri r0, r0, 10 + 4428: 38b6 bseti r0, 22 + 442a: 33ff movi r3, 255 + 442c: 07ef br 0x440a // 440a <__pack_f+0x3e> + 442e: 3080 movi r0, 128 + 4430: 680c and r0, r3 + 4432: 3840 cmpnei r0, 0 + 4434: 0fe5 bf 0x43fe // 43fe <__pack_f+0x32> + 4436: 60d0 addu r3, r4 + 4438: 07e3 br 0x43fe // 43fe <__pack_f+0x32> + 443a: 4b61 lsri r3, r3, 1 + 443c: 227f addi r2, 128 + 443e: 07e3 br 0x4404 // 4404 <__pack_f+0x38> + 4440: 610a subu r4, r2 + 4442: 3c39 cmplti r4, 26 + 4444: 0fea bf 0x4418 // 4418 <__pack_f+0x4c> + 4446: 3201 movi r2, 1 + 4448: 7090 lsl r2, r4 + 444a: 2a00 subi r2, 1 + 444c: 6c0f mov r0, r3 + 444e: 68c8 and r3, r2 + 4450: 3b40 cmpnei r3, 0 + 4452: 3300 movi r3, 0 + 4454: 7011 lsr r0, r4 + 4456: 60cd addc r3, r3 + 4458: 6cc0 or r3, r0 + 445a: 307f movi r0, 127 + 445c: 680c and r0, r3 + 445e: 3240 movi r2, 64 + 4460: 6482 cmpne r0, r2 + 4462: 080d bt 0x447c // 447c <__pack_f+0xb0> + 4464: 3280 movi r2, 128 + 4466: 688c and r2, r3 + 4468: 3a40 cmpnei r2, 0 + 446a: 0c02 bf 0x446e // 446e <__pack_f+0xa2> + 446c: 60c0 addu r3, r0 + 446e: 1045 lrw r2, 0x3fffffff // 4480 <__pack_f+0xb4> + 4470: 64c8 cmphs r2, r3 + 4472: 4302 lsli r0, r3, 2 + 4474: 64c3 mvcv r3 + 4476: 4809 lsri r0, r0, 9 + 4478: 74cc zextb r3, r3 + 447a: 07c8 br 0x440a // 440a <__pack_f+0x3e> + 447c: 233e addi r3, 63 + 447e: 07f8 br 0x446e // 446e <__pack_f+0xa2> + 4480: 3fffffff .long 0x3fffffff + +00004484 <__unpack_f>: + 4484: 14c1 push r4 + 4486: 8861 ld.h r3, (r0, 0x2) + 4488: 4371 lsli r3, r3, 17 + 448a: 9040 ld.w r2, (r0, 0x0) + 448c: 4b78 lsri r3, r3, 24 + 448e: 8003 ld.b r0, (r0, 0x3) + 4490: 4249 lsli r2, r2, 9 + 4492: 4807 lsri r0, r0, 7 + 4494: 3b40 cmpnei r3, 0 + 4496: 4a49 lsri r2, r2, 9 + 4498: b101 st.w r0, (r1, 0x4) + 449a: 0811 bt 0x44bc // 44bc <__unpack_f+0x38> + 449c: 3a40 cmpnei r2, 0 + 449e: 0c1a bf 0x44d2 // 44d2 <__unpack_f+0x4e> + 44a0: 3303 movi r3, 3 + 44a2: b160 st.w r3, (r1, 0x0) + 44a4: 3300 movi r3, 0 + 44a6: 4247 lsli r2, r2, 7 + 44a8: 2b7e subi r3, 127 + 44aa: 1096 lrw r4, 0x3fffffff // 4500 <__unpack_f+0x7c> + 44ac: 4241 lsli r2, r2, 1 + 44ae: 6490 cmphs r4, r2 + 44b0: 6c0f mov r0, r3 + 44b2: 2b00 subi r3, 1 + 44b4: 0bfc bt 0x44ac // 44ac <__unpack_f+0x28> + 44b6: b102 st.w r0, (r1, 0x8) + 44b8: b143 st.w r2, (r1, 0xc) + 44ba: 1481 pop r4 + 44bc: 30ff movi r0, 255 + 44be: 640e cmpne r3, r0 + 44c0: 0c0c bf 0x44d8 // 44d8 <__unpack_f+0x54> + 44c2: 2b7e subi r3, 127 + 44c4: 4247 lsli r2, r2, 7 + 44c6: b162 st.w r3, (r1, 0x8) + 44c8: 3abe bseti r2, 30 + 44ca: 3303 movi r3, 3 + 44cc: b160 st.w r3, (r1, 0x0) + 44ce: b143 st.w r2, (r1, 0xc) + 44d0: 1481 pop r4 + 44d2: 3302 movi r3, 2 + 44d4: b160 st.w r3, (r1, 0x0) + 44d6: 1481 pop r4 + 44d8: 3a40 cmpnei r2, 0 + 44da: 0c0d bf 0x44f4 // 44f4 <__unpack_f+0x70> + 44dc: 3380 movi r3, 128 + 44de: 436f lsli r3, r3, 15 + 44e0: 68c8 and r3, r2 + 44e2: 3b40 cmpnei r3, 0 + 44e4: 0c0b bf 0x44fa // 44fa <__unpack_f+0x76> + 44e6: 3301 movi r3, 1 + 44e8: b160 st.w r3, (r1, 0x0) + 44ea: 1067 lrw r3, 0x2000007f // 4504 <__unpack_f+0x80> + 44ec: 4247 lsli r2, r2, 7 + 44ee: 688d andn r2, r3 + 44f0: b143 st.w r2, (r1, 0xc) + 44f2: 1481 pop r4 + 44f4: 3304 movi r3, 4 + 44f6: b160 st.w r3, (r1, 0x0) + 44f8: 1481 pop r4 + 44fa: b160 st.w r3, (r1, 0x0) + 44fc: 07f7 br 0x44ea // 44ea <__unpack_f+0x66> + 44fe: 0000 bkpt + 4500: 3fffffff .long 0x3fffffff + 4504: 2000007f .long 0x2000007f + +00004508 <__fpcmp_parts_f>: + 4508: 14c1 push r4 + 450a: 9060 ld.w r3, (r0, 0x0) + 450c: 3b01 cmphsi r3, 2 + 450e: 0c12 bf 0x4532 // 4532 <__fpcmp_parts_f+0x2a> + 4510: 9140 ld.w r2, (r1, 0x0) + 4512: 3a01 cmphsi r2, 2 + 4514: 0c0f bf 0x4532 // 4532 <__fpcmp_parts_f+0x2a> + 4516: 3b44 cmpnei r3, 4 + 4518: 0c17 bf 0x4546 // 4546 <__fpcmp_parts_f+0x3e> + 451a: 3a44 cmpnei r2, 4 + 451c: 0c0f bf 0x453a // 453a <__fpcmp_parts_f+0x32> + 451e: 3b42 cmpnei r3, 2 + 4520: 0c0b bf 0x4536 // 4536 <__fpcmp_parts_f+0x2e> + 4522: 3a42 cmpnei r2, 2 + 4524: 0c13 bf 0x454a // 454a <__fpcmp_parts_f+0x42> + 4526: 9061 ld.w r3, (r0, 0x4) + 4528: 9141 ld.w r2, (r1, 0x4) + 452a: 648e cmpne r3, r2 + 452c: 0c14 bf 0x4554 // 4554 <__fpcmp_parts_f+0x4c> + 452e: 3b40 cmpnei r3, 0 + 4530: 0808 bt 0x4540 // 4540 <__fpcmp_parts_f+0x38> + 4532: 3001 movi r0, 1 + 4534: 1481 pop r4 + 4536: 3a42 cmpnei r2, 2 + 4538: 0c1e bf 0x4574 // 4574 <__fpcmp_parts_f+0x6c> + 453a: 9161 ld.w r3, (r1, 0x4) + 453c: 3b40 cmpnei r3, 0 + 453e: 0bfa bt 0x4532 // 4532 <__fpcmp_parts_f+0x2a> + 4540: 3000 movi r0, 0 + 4542: 2800 subi r0, 1 + 4544: 1481 pop r4 + 4546: 3a44 cmpnei r2, 4 + 4548: 0c18 bf 0x4578 // 4578 <__fpcmp_parts_f+0x70> + 454a: 9061 ld.w r3, (r0, 0x4) + 454c: 3b40 cmpnei r3, 0 + 454e: 0bf9 bt 0x4540 // 4540 <__fpcmp_parts_f+0x38> + 4550: 3001 movi r0, 1 + 4552: 07f1 br 0x4534 // 4534 <__fpcmp_parts_f+0x2c> + 4554: 9082 ld.w r4, (r0, 0x8) + 4556: 9142 ld.w r2, (r1, 0x8) + 4558: 6509 cmplt r2, r4 + 455a: 0bea bt 0x452e // 452e <__fpcmp_parts_f+0x26> + 455c: 6491 cmplt r4, r2 + 455e: 0807 bt 0x456c // 456c <__fpcmp_parts_f+0x64> + 4560: 9003 ld.w r0, (r0, 0xc) + 4562: 9143 ld.w r2, (r1, 0xc) + 4564: 6408 cmphs r2, r0 + 4566: 0fe4 bf 0x452e // 452e <__fpcmp_parts_f+0x26> + 4568: 6480 cmphs r0, r2 + 456a: 0805 bt 0x4574 // 4574 <__fpcmp_parts_f+0x6c> + 456c: 3b40 cmpnei r3, 0 + 456e: 0fe9 bf 0x4540 // 4540 <__fpcmp_parts_f+0x38> + 4570: 3001 movi r0, 1 + 4572: 07e1 br 0x4534 // 4534 <__fpcmp_parts_f+0x2c> + 4574: 3000 movi r0, 0 + 4576: 1481 pop r4 + 4578: 9161 ld.w r3, (r1, 0x4) + 457a: 9041 ld.w r2, (r0, 0x4) + 457c: 5b09 subu r0, r3, r2 + 457e: 1481 pop r4 + +00004580 <__make_fp>: + 4580: 14d0 push r15 + 4582: 1424 subi r14, r14, 16 + 4584: b800 st.w r0, (r14, 0x0) + 4586: 6c3b mov r0, r14 + 4588: b821 st.w r1, (r14, 0x4) + 458a: b842 st.w r2, (r14, 0x8) + 458c: b863 st.w r3, (r14, 0xc) + 458e: e3ffff1f bsr 0x43cc // 43cc <__pack_f> + 4592: 1404 addi r14, r14, 16 + 4594: 1490 pop r15 + ... + +00004598 <__pack_d>: + 4598: 14c4 push r4-r7 + 459a: 1422 subi r14, r14, 8 + 459c: 9060 ld.w r3, (r0, 0x0) + 459e: 3b01 cmphsi r3, 2 + 45a0: 90c3 ld.w r6, (r0, 0xc) + 45a2: 90e4 ld.w r7, (r0, 0x10) + 45a4: 9021 ld.w r1, (r0, 0x4) + 45a6: 0c46 bf 0x4632 // 4632 <__pack_d+0x9a> + 45a8: 3b44 cmpnei r3, 4 + 45aa: 0c40 bf 0x462a // 462a <__pack_d+0x92> + 45ac: 3b42 cmpnei r3, 2 + 45ae: 0c27 bf 0x45fc // 45fc <__pack_d+0x64> + 45b0: 6cdb mov r3, r6 + 45b2: 6cdc or r3, r7 + 45b4: 3b40 cmpnei r3, 0 + 45b6: 0c23 bf 0x45fc // 45fc <__pack_d+0x64> + 45b8: 9062 ld.w r3, (r0, 0x8) + 45ba: 125a lrw r2, 0xfffffc02 // 4720 <__pack_d+0x188> + 45bc: 648d cmplt r3, r2 + 45be: 0855 bt 0x4668 // 4668 <__pack_d+0xd0> + 45c0: 1259 lrw r2, 0x3ff // 4724 <__pack_d+0x18c> + 45c2: 64c9 cmplt r2, r3 + 45c4: 0833 bt 0x462a // 462a <__pack_d+0x92> + 45c6: 34ff movi r4, 255 + 45c8: 3500 movi r5, 0 + 45ca: 6918 and r4, r6 + 45cc: 695c and r5, r7 + 45ce: 3280 movi r2, 128 + 45d0: 6492 cmpne r4, r2 + 45d2: 0c3f bf 0x4650 // 4650 <__pack_d+0xb8> + 45d4: 347f movi r4, 127 + 45d6: 3500 movi r5, 0 + 45d8: 6599 cmplt r6, r6 + 45da: 6191 addc r6, r4 + 45dc: 61d5 addc r7, r5 + 45de: 1253 lrw r2, 0x1fffffff // 4728 <__pack_d+0x190> + 45e0: 65c8 cmphs r2, r7 + 45e2: 0c1a bf 0x4616 // 4616 <__pack_d+0x7e> + 45e4: 1290 lrw r4, 0x3ff // 4724 <__pack_d+0x18c> + 45e6: 610c addu r4, r3 + 45e8: 4718 lsli r0, r7, 24 + 45ea: 4f68 lsri r3, r7, 8 + 45ec: 4e48 lsri r2, r6, 8 + 45ee: 6c80 or r2, r0 + 45f0: 430c lsli r0, r3, 12 + 45f2: 486c lsri r3, r0, 12 + 45f4: 120e lrw r0, 0x7ff // 472c <__pack_d+0x194> + 45f6: 6d4b mov r5, r2 + 45f8: 6900 and r4, r0 + 45fa: 0404 br 0x4602 // 4602 <__pack_d+0x6a> + 45fc: 3400 movi r4, 0 + 45fe: 3200 movi r2, 0 + 4600: 3300 movi r3, 0 + 4602: 430c lsli r0, r3, 12 + 4604: 480c lsri r0, r0, 12 + 4606: 4474 lsli r3, r4, 20 + 4608: 419f lsli r4, r1, 31 + 460a: 6c43 mov r1, r0 + 460c: 6c4c or r1, r3 + 460e: 6c50 or r1, r4 + 4610: 6c0b mov r0, r2 + 4612: 1402 addi r14, r14, 8 + 4614: 1484 pop r4-r7 + 4616: 479f lsli r4, r7, 31 + 4618: 4e01 lsri r0, r6, 1 + 461a: 6d00 or r4, r0 + 461c: 6d93 mov r6, r4 + 461e: 3480 movi r4, 128 + 4620: 4f41 lsri r2, r7, 1 + 4622: 4483 lsli r4, r4, 3 + 4624: 6dcb mov r7, r2 + 4626: 610c addu r4, r3 + 4628: 07e0 br 0x45e8 // 45e8 <__pack_d+0x50> + 462a: 1281 lrw r4, 0x7ff // 472c <__pack_d+0x194> + 462c: 3200 movi r2, 0 + 462e: 3300 movi r3, 0 + 4630: 07e9 br 0x4602 // 4602 <__pack_d+0x6a> + 4632: 4e08 lsri r0, r6, 8 + 4634: 4798 lsli r4, r7, 24 + 4636: 6d00 or r4, r0 + 4638: 3580 movi r5, 128 + 463a: 4705 lsli r0, r7, 5 + 463c: 6c93 mov r2, r4 + 463e: 486d lsri r3, r0, 13 + 4640: 3400 movi r4, 0 + 4642: 45ac lsli r5, r5, 12 + 4644: 6c90 or r2, r4 + 4646: 6cd4 or r3, r5 + 4648: 430c lsli r0, r3, 12 + 464a: 486c lsri r3, r0, 12 + 464c: 1198 lrw r4, 0x7ff // 472c <__pack_d+0x194> + 464e: 07da br 0x4602 // 4602 <__pack_d+0x6a> + 4650: 3d40 cmpnei r5, 0 + 4652: 0bc1 bt 0x45d4 // 45d4 <__pack_d+0x3c> + 4654: 4241 lsli r2, r2, 1 + 4656: 6898 and r2, r6 + 4658: 3a40 cmpnei r2, 0 + 465a: 0fc2 bf 0x45de // 45de <__pack_d+0x46> + 465c: 3480 movi r4, 128 + 465e: 3500 movi r5, 0 + 4660: 6599 cmplt r6, r6 + 4662: 6191 addc r6, r4 + 4664: 61d5 addc r7, r5 + 4666: 07bc br 0x45de // 45de <__pack_d+0x46> + 4668: 5a6d subu r3, r2, r3 + 466a: 3238 movi r2, 56 + 466c: 64c9 cmplt r2, r3 + 466e: 0bc7 bt 0x45fc // 45fc <__pack_d+0x64> + 4670: 3200 movi r2, 0 + 4672: 2a1f subi r2, 32 + 4674: 608c addu r2, r3 + 4676: 3adf btsti r2, 31 + 4678: 0848 bt 0x4708 // 4708 <__pack_d+0x170> + 467a: 6c1f mov r0, r7 + 467c: 7009 lsr r0, r2 + 467e: b800 st.w r0, (r14, 0x0) + 4680: 3000 movi r0, 0 + 4682: b801 st.w r0, (r14, 0x4) + 4684: 3adf btsti r2, 31 + 4686: 083c bt 0x46fe // 46fe <__pack_d+0x166> + 4688: 3301 movi r3, 1 + 468a: 70c8 lsl r3, r2 + 468c: 6d4f mov r5, r3 + 468e: 3300 movi r3, 0 + 4690: 6d0f mov r4, r3 + 4692: 3200 movi r2, 0 + 4694: 3300 movi r3, 0 + 4696: 2a00 subi r2, 1 + 4698: 2b00 subi r3, 1 + 469a: 6511 cmplt r4, r4 + 469c: 6109 addc r4, r2 + 469e: 614d addc r5, r3 + 46a0: 6990 and r6, r4 + 46a2: 69d4 and r7, r5 + 46a4: 6d9c or r6, r7 + 46a6: 3e40 cmpnei r6, 0 + 46a8: 3000 movi r0, 0 + 46aa: 6001 addc r0, r0 + 46ac: 6c83 mov r2, r0 + 46ae: 3300 movi r3, 0 + 46b0: 9880 ld.w r4, (r14, 0x0) + 46b2: 98a1 ld.w r5, (r14, 0x4) + 46b4: 6d08 or r4, r2 + 46b6: 6d4c or r5, r3 + 46b8: 32ff movi r2, 255 + 46ba: 3300 movi r3, 0 + 46bc: 6890 and r2, r4 + 46be: 68d4 and r3, r5 + 46c0: 3080 movi r0, 128 + 46c2: 640a cmpne r2, r0 + 46c4: 081b bt 0x46fa // 46fa <__pack_d+0x162> + 46c6: 3b40 cmpnei r3, 0 + 46c8: 0819 bt 0x46fa // 46fa <__pack_d+0x162> + 46ca: 3380 movi r3, 128 + 46cc: 4361 lsli r3, r3, 1 + 46ce: 68d0 and r3, r4 + 46d0: 3b40 cmpnei r3, 0 + 46d2: 0c06 bf 0x46de // 46de <__pack_d+0x146> + 46d4: 3280 movi r2, 128 + 46d6: 3300 movi r3, 0 + 46d8: 6511 cmplt r4, r4 + 46da: 6109 addc r4, r2 + 46dc: 614d addc r5, r3 + 46de: 4518 lsli r0, r5, 24 + 46e0: 4c48 lsri r2, r4, 8 + 46e2: 4d68 lsri r3, r5, 8 + 46e4: 1093 lrw r4, 0xfffffff // 4730 <__pack_d+0x198> + 46e6: 6c80 or r2, r0 + 46e8: 6550 cmphs r4, r5 + 46ea: 430c lsli r0, r3, 12 + 46ec: 486c lsri r3, r0, 12 + 46ee: 3001 movi r0, 1 + 46f0: 0c02 bf 0x46f4 // 46f4 <__pack_d+0x15c> + 46f2: 3000 movi r0, 0 + 46f4: 108e lrw r4, 0x7ff // 472c <__pack_d+0x194> + 46f6: 6900 and r4, r0 + 46f8: 0785 br 0x4602 // 4602 <__pack_d+0x6a> + 46fa: 327f movi r2, 127 + 46fc: 07ed br 0x46d6 // 46d6 <__pack_d+0x13e> + 46fe: 3201 movi r2, 1 + 4700: 708c lsl r2, r3 + 4702: 3500 movi r5, 0 + 4704: 6d0b mov r4, r2 + 4706: 07c6 br 0x4692 // 4692 <__pack_d+0xfa> + 4708: 341f movi r4, 31 + 470a: 610e subu r4, r3 + 470c: 4701 lsli r0, r7, 1 + 470e: 7010 lsl r0, r4 + 4710: 6d1b mov r4, r6 + 4712: 710d lsr r4, r3 + 4714: 6d00 or r4, r0 + 4716: 6c1f mov r0, r7 + 4718: 700d lsr r0, r3 + 471a: b880 st.w r4, (r14, 0x0) + 471c: b801 st.w r0, (r14, 0x4) + 471e: 07b3 br 0x4684 // 4684 <__pack_d+0xec> + 4720: fffffc02 .long 0xfffffc02 + 4724: 000003ff .long 0x000003ff + 4728: 1fffffff .long 0x1fffffff + 472c: 000007ff .long 0x000007ff + 4730: 0fffffff .long 0x0fffffff + +00004734 <__unpack_d>: + 4734: 1423 subi r14, r14, 12 + 4736: b880 st.w r4, (r14, 0x0) + 4738: b8c1 st.w r6, (r14, 0x4) + 473a: b8e2 st.w r7, (r14, 0x8) + 473c: 8843 ld.h r2, (r0, 0x6) + 473e: 4251 lsli r2, r2, 17 + 4740: 9061 ld.w r3, (r0, 0x4) + 4742: 9080 ld.w r4, (r0, 0x0) + 4744: 4a55 lsri r2, r2, 21 + 4746: 8007 ld.b r0, (r0, 0x7) + 4748: 436c lsli r3, r3, 12 + 474a: 4807 lsri r0, r0, 7 + 474c: 3a40 cmpnei r2, 0 + 474e: 4b6c lsri r3, r3, 12 + 4750: b101 st.w r0, (r1, 0x4) + 4752: 0819 bt 0x4784 // 4784 <__unpack_d+0x50> + 4754: 6c93 mov r2, r4 + 4756: 6c8c or r2, r3 + 4758: 3a40 cmpnei r2, 0 + 475a: 0c2d bf 0x47b4 // 47b4 <__unpack_d+0x80> + 475c: 4c58 lsri r2, r4, 24 + 475e: 4368 lsli r3, r3, 8 + 4760: 6cc8 or r3, r2 + 4762: 3203 movi r2, 3 + 4764: 4408 lsli r0, r4, 8 + 4766: b140 st.w r2, (r1, 0x0) + 4768: 1181 lrw r4, 0xfffffc01 // 47ec <__unpack_d+0xb8> + 476a: 11c2 lrw r6, 0xfffffff // 47f0 <__unpack_d+0xbc> + 476c: 485f lsri r2, r0, 31 + 476e: 4361 lsli r3, r3, 1 + 4770: 6cc8 or r3, r2 + 4772: 64d8 cmphs r6, r3 + 4774: 6c93 mov r2, r4 + 4776: 4001 lsli r0, r0, 1 + 4778: 2c00 subi r4, 1 + 477a: 0bf9 bt 0x476c // 476c <__unpack_d+0x38> + 477c: b142 st.w r2, (r1, 0x8) + 477e: b103 st.w r0, (r1, 0xc) + 4780: b164 st.w r3, (r1, 0x10) + 4782: 0414 br 0x47aa // 47aa <__unpack_d+0x76> + 4784: 101c lrw r0, 0x7ff // 47f4 <__unpack_d+0xc0> + 4786: 640a cmpne r2, r0 + 4788: 0c19 bf 0x47ba // 47ba <__unpack_d+0x86> + 478a: 1019 lrw r0, 0xfffffc01 // 47ec <__unpack_d+0xb8> + 478c: 6080 addu r2, r0 + 478e: b142 st.w r2, (r1, 0x8) + 4790: 3203 movi r2, 3 + 4792: 43e8 lsli r7, r3, 8 + 4794: b140 st.w r2, (r1, 0x0) + 4796: 3380 movi r3, 128 + 4798: 4c58 lsri r2, r4, 24 + 479a: 6dc8 or r7, r2 + 479c: 44c8 lsli r6, r4, 8 + 479e: 3200 movi r2, 0 + 47a0: 4375 lsli r3, r3, 21 + 47a2: 6d88 or r6, r2 + 47a4: 6dcc or r7, r3 + 47a6: b1c3 st.w r6, (r1, 0xc) + 47a8: b1e4 st.w r7, (r1, 0x10) + 47aa: 98e2 ld.w r7, (r14, 0x8) + 47ac: 98c1 ld.w r6, (r14, 0x4) + 47ae: 9880 ld.w r4, (r14, 0x0) + 47b0: 1403 addi r14, r14, 12 + 47b2: 783c jmp r15 + 47b4: 3302 movi r3, 2 + 47b6: b160 st.w r3, (r1, 0x0) + 47b8: 07f9 br 0x47aa // 47aa <__unpack_d+0x76> + 47ba: 6c93 mov r2, r4 + 47bc: 6c8c or r2, r3 + 47be: 3a40 cmpnei r2, 0 + 47c0: 0c10 bf 0x47e0 // 47e0 <__unpack_d+0xac> + 47c2: 3280 movi r2, 128 + 47c4: 424c lsli r2, r2, 12 + 47c6: 688c and r2, r3 + 47c8: 3a40 cmpnei r2, 0 + 47ca: 0c0e bf 0x47e6 // 47e6 <__unpack_d+0xb2> + 47cc: 3201 movi r2, 1 + 47ce: b140 st.w r2, (r1, 0x0) + 47d0: 4c58 lsri r2, r4, 24 + 47d2: 4368 lsli r3, r3, 8 + 47d4: 6cc8 or r3, r2 + 47d6: 4408 lsli r0, r4, 8 + 47d8: 3b9b bclri r3, 27 + 47da: b103 st.w r0, (r1, 0xc) + 47dc: b164 st.w r3, (r1, 0x10) + 47de: 07e6 br 0x47aa // 47aa <__unpack_d+0x76> + 47e0: 3304 movi r3, 4 + 47e2: b160 st.w r3, (r1, 0x0) + 47e4: 07e3 br 0x47aa // 47aa <__unpack_d+0x76> + 47e6: b140 st.w r2, (r1, 0x0) + 47e8: 07f4 br 0x47d0 // 47d0 <__unpack_d+0x9c> + 47ea: 0000 bkpt + 47ec: fffffc01 .long 0xfffffc01 + 47f0: 0fffffff .long 0x0fffffff + 47f4: 000007ff .long 0x000007ff + +000047f8 <__fpcmp_parts_d>: + 47f8: 14c1 push r4 + 47fa: 9060 ld.w r3, (r0, 0x0) + 47fc: 3b01 cmphsi r3, 2 + 47fe: 0c12 bf 0x4822 // 4822 <__fpcmp_parts_d+0x2a> + 4800: 9140 ld.w r2, (r1, 0x0) + 4802: 3a01 cmphsi r2, 2 + 4804: 0c0f bf 0x4822 // 4822 <__fpcmp_parts_d+0x2a> + 4806: 3b44 cmpnei r3, 4 + 4808: 0c17 bf 0x4836 // 4836 <__fpcmp_parts_d+0x3e> + 480a: 3a44 cmpnei r2, 4 + 480c: 0c0f bf 0x482a // 482a <__fpcmp_parts_d+0x32> + 480e: 3b42 cmpnei r3, 2 + 4810: 0c0b bf 0x4826 // 4826 <__fpcmp_parts_d+0x2e> + 4812: 3a42 cmpnei r2, 2 + 4814: 0c13 bf 0x483a // 483a <__fpcmp_parts_d+0x42> + 4816: 9061 ld.w r3, (r0, 0x4) + 4818: 9141 ld.w r2, (r1, 0x4) + 481a: 648e cmpne r3, r2 + 481c: 0c14 bf 0x4844 // 4844 <__fpcmp_parts_d+0x4c> + 481e: 3b40 cmpnei r3, 0 + 4820: 0808 bt 0x4830 // 4830 <__fpcmp_parts_d+0x38> + 4822: 3001 movi r0, 1 + 4824: 1481 pop r4 + 4826: 3a42 cmpnei r2, 2 + 4828: 0c28 bf 0x4878 // 4878 <__fpcmp_parts_d+0x80> + 482a: 9161 ld.w r3, (r1, 0x4) + 482c: 3b40 cmpnei r3, 0 + 482e: 0bfa bt 0x4822 // 4822 <__fpcmp_parts_d+0x2a> + 4830: 3000 movi r0, 0 + 4832: 2800 subi r0, 1 + 4834: 1481 pop r4 + 4836: 3a44 cmpnei r2, 4 + 4838: 0c22 bf 0x487c // 487c <__fpcmp_parts_d+0x84> + 483a: 9061 ld.w r3, (r0, 0x4) + 483c: 3b40 cmpnei r3, 0 + 483e: 0bf9 bt 0x4830 // 4830 <__fpcmp_parts_d+0x38> + 4840: 3001 movi r0, 1 + 4842: 07f1 br 0x4824 // 4824 <__fpcmp_parts_d+0x2c> + 4844: 9082 ld.w r4, (r0, 0x8) + 4846: 9142 ld.w r2, (r1, 0x8) + 4848: 6509 cmplt r2, r4 + 484a: 0bea bt 0x481e // 481e <__fpcmp_parts_d+0x26> + 484c: 6491 cmplt r4, r2 + 484e: 080d bt 0x4868 // 4868 <__fpcmp_parts_d+0x70> + 4850: 9044 ld.w r2, (r0, 0x10) + 4852: 9083 ld.w r4, (r0, 0xc) + 4854: 9103 ld.w r0, (r1, 0xc) + 4856: 9124 ld.w r1, (r1, 0x10) + 4858: 6484 cmphs r1, r2 + 485a: 0fe2 bf 0x481e // 481e <__fpcmp_parts_d+0x26> + 485c: 644a cmpne r2, r1 + 485e: 0803 bt 0x4864 // 4864 <__fpcmp_parts_d+0x6c> + 4860: 6500 cmphs r0, r4 + 4862: 0fde bf 0x481e // 481e <__fpcmp_parts_d+0x26> + 4864: 6448 cmphs r2, r1 + 4866: 0805 bt 0x4870 // 4870 <__fpcmp_parts_d+0x78> + 4868: 3b40 cmpnei r3, 0 + 486a: 0fe3 bf 0x4830 // 4830 <__fpcmp_parts_d+0x38> + 486c: 3001 movi r0, 1 + 486e: 07db br 0x4824 // 4824 <__fpcmp_parts_d+0x2c> + 4870: 6486 cmpne r1, r2 + 4872: 0803 bt 0x4878 // 4878 <__fpcmp_parts_d+0x80> + 4874: 6410 cmphs r4, r0 + 4876: 0ff9 bf 0x4868 // 4868 <__fpcmp_parts_d+0x70> + 4878: 3000 movi r0, 0 + 487a: 1481 pop r4 + 487c: 9161 ld.w r3, (r1, 0x4) + 487e: 9041 ld.w r2, (r0, 0x4) + 4880: 5b09 subu r0, r3, r2 + 4882: 1481 pop r4 + +00004884 <__cskyvprintfsnprintf>: + 4884: 1422 subi r14, r14, 8 + 4886: b861 st.w r3, (r14, 0x4) + 4888: b840 st.w r2, (r14, 0x0) + 488a: 14d0 push r15 + 488c: 1421 subi r14, r14, 4 + 488e: 9862 ld.w r3, (r14, 0x8) + 4890: b860 st.w r3, (r14, 0x0) + 4892: 9840 ld.w r2, (r14, 0x0) + 4894: 1b03 addi r3, r14, 12 + 4896: e0000026 bsr 0x48e2 // 48e2 <__cskyvprintfvsnprintf> + 489a: 1401 addi r14, r14, 4 + 489c: d9ee2000 ld.w r15, (r14, 0x0) + 48a0: 1403 addi r14, r14, 12 + 48a2: 783c jmp r15 + +000048a4 : + 48a4: 14d3 push r4-r6, r15 + 48a6: 6d4b mov r5, r2 + 48a8: 9582 ld.w r4, (r5, 0x8) + 48aa: 9241 ld.w r2, (r2, 0x4) + 48ac: 610a subu r4, r2 + 48ae: 3c40 cmpnei r4, 0 + 48b0: 6d87 mov r6, r1 + 48b2: 0c16 bf 0x48de // 48de + 48b4: 6504 cmphs r1, r4 + 48b6: 0802 bt 0x48ba // 48ba + 48b8: 6d07 mov r4, r1 + 48ba: 9560 ld.w r3, (r5, 0x0) + 48bc: 3b40 cmpnei r3, 0 + 48be: 0c0d bf 0x48d8 // 48d8 + 48c0: 60c8 addu r3, r2 + 48c2: 6c43 mov r1, r0 + 48c4: 6c93 mov r2, r4 + 48c6: 6c0f mov r0, r3 + 48c8: e000007e bsr 0x49c4 // 49c4 <__memcpy_fast> + 48cc: 9500 ld.w r0, (r5, 0x0) + 48ce: 9521 ld.w r1, (r5, 0x4) + 48d0: 6010 addu r0, r4 + 48d2: 6004 addu r0, r1 + 48d4: 3200 movi r2, 0 + 48d6: a040 st.b r2, (r0, 0x0) + 48d8: 9561 ld.w r3, (r5, 0x4) + 48da: 610c addu r4, r3 + 48dc: b581 st.w r4, (r5, 0x4) + 48de: 6c1b mov r0, r6 + 48e0: 1493 pop r4-r6, r15 + +000048e2 <__cskyvprintfvsnprintf>: + 48e2: 14d3 push r4-r6, r15 + 48e4: 1425 subi r14, r14, 20 + 48e6: 6d07 mov r4, r1 + 48e8: 6d43 mov r5, r0 + 48ea: 6c4b mov r1, r2 + 48ec: 1802 addi r0, r14, 8 + 48ee: 3200 movi r2, 0 + 48f0: 3c40 cmpnei r4, 0 + 48f2: b0a0 st.w r5, (r0, 0x0) + 48f4: b041 st.w r2, (r0, 0x4) + 48f6: 0c1c bf 0x492e // 492e <__cskyvprintfvsnprintf+0x4c> + 48f8: 5cc3 subi r6, r4, 1 + 48fa: b0c2 st.w r6, (r0, 0x8) + 48fc: b800 st.w r0, (r14, 0x0) + 48fe: 6c8f mov r2, r3 + 4900: 100e lrw r0, 0x48a4 // 4938 <__cskyvprintfvsnprintf+0x56> + 4902: b801 st.w r0, (r14, 0x4) + 4904: 6c3b mov r0, r14 + 4906: e00000bf bsr 0x4a84 // 4a84 <__v2_printf> + 490a: 3d40 cmpnei r5, 0 + 490c: 0c0f bf 0x492a // 492a <__cskyvprintfvsnprintf+0x48> + 490e: 3c40 cmpnei r4, 0 + 4910: 0c0d bf 0x492a // 492a <__cskyvprintfvsnprintf+0x48> + 4912: 38df btsti r0, 31 + 4914: 080b bt 0x492a // 492a <__cskyvprintfvsnprintf+0x48> + 4916: 3300 movi r3, 0 + 4918: 2b00 subi r3, 1 + 491a: 64d2 cmpne r4, r3 + 491c: 0c0b bf 0x4932 // 4932 <__cskyvprintfvsnprintf+0x50> + 491e: 6500 cmphs r0, r4 + 4920: 0c09 bf 0x4932 // 4932 <__cskyvprintfvsnprintf+0x50> + 4922: 6114 addu r4, r5 + 4924: 2c00 subi r4, 1 + 4926: 3100 movi r1, 0 + 4928: a420 st.b r1, (r4, 0x0) + 492a: 1405 addi r14, r14, 20 + 492c: 1493 pop r4-r6, r15 + 492e: 3600 movi r6, 0 + 4930: 07e5 br 0x48fa // 48fa <__cskyvprintfvsnprintf+0x18> + 4932: 5d80 addu r4, r5, r0 + 4934: 07f9 br 0x4926 // 4926 <__cskyvprintfvsnprintf+0x44> + 4936: 0000 bkpt + 4938: 000048a4 .long 0x000048a4 + +0000493c <__memset_fast>: + 493c: 14c3 push r4-r6 + 493e: 7444 zextb r1, r1 + 4940: 3a40 cmpnei r2, 0 + 4942: 0c1f bf 0x4980 // 4980 <__memset_fast+0x44> + 4944: 6d43 mov r5, r0 + 4946: 6d03 mov r4, r0 + 4948: 3603 movi r6, 3 + 494a: 6918 and r4, r6 + 494c: 3c40 cmpnei r4, 0 + 494e: 0c1a bf 0x4982 // 4982 <__memset_fast+0x46> + 4950: a520 st.b r1, (r5, 0x0) + 4952: 2a00 subi r2, 1 + 4954: 3a40 cmpnei r2, 0 + 4956: 0c15 bf 0x4980 // 4980 <__memset_fast+0x44> + 4958: 2500 addi r5, 1 + 495a: 6d17 mov r4, r5 + 495c: 3603 movi r6, 3 + 495e: 6918 and r4, r6 + 4960: 3c40 cmpnei r4, 0 + 4962: 0c10 bf 0x4982 // 4982 <__memset_fast+0x46> + 4964: a520 st.b r1, (r5, 0x0) + 4966: 2a00 subi r2, 1 + 4968: 3a40 cmpnei r2, 0 + 496a: 0c0b bf 0x4980 // 4980 <__memset_fast+0x44> + 496c: 2500 addi r5, 1 + 496e: 6d17 mov r4, r5 + 4970: 3603 movi r6, 3 + 4972: 6918 and r4, r6 + 4974: 3c40 cmpnei r4, 0 + 4976: 0c06 bf 0x4982 // 4982 <__memset_fast+0x46> + 4978: a520 st.b r1, (r5, 0x0) + 497a: 2a00 subi r2, 1 + 497c: 2500 addi r5, 1 + 497e: 0402 br 0x4982 // 4982 <__memset_fast+0x46> + 4980: 1483 pop r4-r6 + 4982: 4168 lsli r3, r1, 8 + 4984: 6c4c or r1, r3 + 4986: 4170 lsli r3, r1, 16 + 4988: 6c4c or r1, r3 + 498a: 3a2f cmplti r2, 16 + 498c: 0809 bt 0x499e // 499e <__memset_fast+0x62> + 498e: b520 st.w r1, (r5, 0x0) + 4990: b521 st.w r1, (r5, 0x4) + 4992: b522 st.w r1, (r5, 0x8) + 4994: b523 st.w r1, (r5, 0xc) + 4996: 2a0f subi r2, 16 + 4998: 250f addi r5, 16 + 499a: 3a2f cmplti r2, 16 + 499c: 0ff9 bf 0x498e // 498e <__memset_fast+0x52> + 499e: 3a23 cmplti r2, 4 + 49a0: 0806 bt 0x49ac // 49ac <__memset_fast+0x70> + 49a2: 2a03 subi r2, 4 + 49a4: b520 st.w r1, (r5, 0x0) + 49a6: 2503 addi r5, 4 + 49a8: 3a23 cmplti r2, 4 + 49aa: 0ffc bf 0x49a2 // 49a2 <__memset_fast+0x66> + 49ac: 3a40 cmpnei r2, 0 + 49ae: 0fe9 bf 0x4980 // 4980 <__memset_fast+0x44> + 49b0: 2a00 subi r2, 1 + 49b2: a520 st.b r1, (r5, 0x0) + 49b4: 3a40 cmpnei r2, 0 + 49b6: 0fe5 bf 0x4980 // 4980 <__memset_fast+0x44> + 49b8: 2a00 subi r2, 1 + 49ba: a521 st.b r1, (r5, 0x1) + 49bc: 3a40 cmpnei r2, 0 + 49be: 0fe1 bf 0x4980 // 4980 <__memset_fast+0x44> + 49c0: a522 st.b r1, (r5, 0x2) + 49c2: 1483 pop r4-r6 + +000049c4 <__memcpy_fast>: + 49c4: 14c3 push r4-r6 + 49c6: 6d83 mov r6, r0 + 49c8: 6d07 mov r4, r1 + 49ca: 6d18 or r4, r6 + 49cc: 3303 movi r3, 3 + 49ce: 690c and r4, r3 + 49d0: 3c40 cmpnei r4, 0 + 49d2: 0c0b bf 0x49e8 // 49e8 <__memcpy_fast+0x24> + 49d4: 3a40 cmpnei r2, 0 + 49d6: 0c08 bf 0x49e6 // 49e6 <__memcpy_fast+0x22> + 49d8: 8160 ld.b r3, (r1, 0x0) + 49da: 2100 addi r1, 1 + 49dc: 2a00 subi r2, 1 + 49de: a660 st.b r3, (r6, 0x0) + 49e0: 2600 addi r6, 1 + 49e2: 3a40 cmpnei r2, 0 + 49e4: 0bfa bt 0x49d8 // 49d8 <__memcpy_fast+0x14> + 49e6: 1483 pop r4-r6 + 49e8: 3a2f cmplti r2, 16 + 49ea: 080e bt 0x4a06 // 4a06 <__memcpy_fast+0x42> + 49ec: 91a0 ld.w r5, (r1, 0x0) + 49ee: 9161 ld.w r3, (r1, 0x4) + 49f0: 9182 ld.w r4, (r1, 0x8) + 49f2: b6a0 st.w r5, (r6, 0x0) + 49f4: 91a3 ld.w r5, (r1, 0xc) + 49f6: b661 st.w r3, (r6, 0x4) + 49f8: b682 st.w r4, (r6, 0x8) + 49fa: b6a3 st.w r5, (r6, 0xc) + 49fc: 2a0f subi r2, 16 + 49fe: 210f addi r1, 16 + 4a00: 260f addi r6, 16 + 4a02: 3a2f cmplti r2, 16 + 4a04: 0ff4 bf 0x49ec // 49ec <__memcpy_fast+0x28> + 4a06: 3a23 cmplti r2, 4 + 4a08: 0808 bt 0x4a18 // 4a18 <__memcpy_fast+0x54> + 4a0a: 9160 ld.w r3, (r1, 0x0) + 4a0c: 2a03 subi r2, 4 + 4a0e: 2103 addi r1, 4 + 4a10: b660 st.w r3, (r6, 0x0) + 4a12: 2603 addi r6, 4 + 4a14: 3a23 cmplti r2, 4 + 4a16: 0ffa bf 0x4a0a // 4a0a <__memcpy_fast+0x46> + 4a18: 3a40 cmpnei r2, 0 + 4a1a: 0fe6 bf 0x49e6 // 49e6 <__memcpy_fast+0x22> + 4a1c: 8160 ld.b r3, (r1, 0x0) + 4a1e: 2100 addi r1, 1 + 4a20: 2a00 subi r2, 1 + 4a22: a660 st.b r3, (r6, 0x0) + 4a24: 2600 addi r6, 1 + 4a26: 07f9 br 0x4a18 // 4a18 <__memcpy_fast+0x54> + +00004a28 <__GI_strncmp>: + 4a28: 14c1 push r4 + 4a2a: 6cc3 mov r3, r0 + 4a2c: 6080 addu r2, r0 + 4a2e: 040c br 0x4a46 // 4a46 <__GI_strncmp+0x1e> + 4a30: 8380 ld.b r4, (r3, 0x0) + 4a32: 8100 ld.b r0, (r1, 0x0) + 4a34: 6012 subu r0, r4 + 4a36: 6c02 nor r0, r0 + 4a38: 2000 addi r0, 1 + 4a3a: 3840 cmpnei r0, 0 + 4a3c: 0808 bt 0x4a4c // 4a4c <__GI_strncmp+0x24> + 4a3e: 3c40 cmpnei r4, 0 + 4a40: 0c06 bf 0x4a4c // 4a4c <__GI_strncmp+0x24> + 4a42: 2300 addi r3, 1 + 4a44: 2100 addi r1, 1 + 4a46: 648c cmphs r3, r2 + 4a48: 0ff4 bf 0x4a30 // 4a30 <__GI_strncmp+0x8> + 4a4a: 3000 movi r0, 0 + 4a4c: 1481 pop r4 + ... + +00004a50 : + 4a50: 14d4 push r4-r7, r15 + 4a52: 3820 cmplti r0, 1 + 4a54: 6d03 mov r4, r0 + 4a56: 6d47 mov r5, r1 + 4a58: 6df7 mov r7, r13 + 4a5a: 080d bt 0x4a74 // 4a74 + 4a5c: 6d83 mov r6, r0 + 4a5e: 3e30 cmplti r6, 17 + 4a60: 9700 ld.w r0, (r7, 0x0) + 4a62: 0c0a bf 0x4a76 // 4a76 + 4a64: 5c63 subi r3, r4, 1 + 4a66: 4b24 lsri r1, r3, 4 + 4a68: 4164 lsli r3, r1, 4 + 4a6a: 9040 ld.w r2, (r0, 0x0) + 4a6c: 5c2d subu r1, r4, r3 + 4a6e: 9081 ld.w r4, (r0, 0x4) + 4a70: 6c17 mov r0, r5 + 4a72: 7bd1 jsr r4 + 4a74: 1494 pop r4-r7, r15 + 4a76: 9040 ld.w r2, (r0, 0x0) + 4a78: 9061 ld.w r3, (r0, 0x4) + 4a7a: 3110 movi r1, 16 + 4a7c: 6c17 mov r0, r5 + 4a7e: 7bcd jsr r3 + 4a80: 2e0f subi r6, 16 + 4a82: 07ee br 0x4a5e // 4a5e + +00004a84 <__v2_printf>: + 4a84: 14d4 push r4-r7, r15 + 4a86: 143c subi r14, r14, 112 + 4a88: b826 st.w r1, (r14, 0x18) + 4a8a: 1912 addi r1, r14, 72 + 4a8c: 1b21 addi r3, r14, 132 + 4a8e: b810 st.w r0, (r14, 0x40) + 4a90: 2100 addi r1, 1 + 4a92: 3000 movi r0, 0 + 4a94: 6d4b mov r5, r2 + 4a96: b871 st.w r3, (r14, 0x44) + 4a98: b80a st.w r0, (r14, 0x28) + 4a9a: b809 st.w r0, (r14, 0x24) + 4a9c: b82d st.w r1, (r14, 0x34) + 4a9e: 9886 ld.w r4, (r14, 0x18) + 4aa0: 3325 movi r3, 37 + 4aa2: 84c0 ld.b r6, (r4, 0x0) + 4aa4: 3e40 cmpnei r6, 0 + 4aa6: 0c03 bf 0x4aac // 4aac <__v2_printf+0x28> + 4aa8: 64da cmpne r6, r3 + 4aaa: 0845 bt 0x4b34 // 4b34 <__v2_printf+0xb0> + 4aac: 9846 ld.w r2, (r14, 0x18) + 4aae: 5cc9 subu r6, r4, r2 + 4ab0: 3e40 cmpnei r6, 0 + 4ab2: 0c0a bf 0x4ac6 // 4ac6 <__v2_printf+0x42> + 4ab4: 9870 ld.w r3, (r14, 0x40) + 4ab6: 9340 ld.w r2, (r3, 0x0) + 4ab8: 6c5b mov r1, r6 + 4aba: 9361 ld.w r3, (r3, 0x4) + 4abc: 9806 ld.w r0, (r14, 0x18) + 4abe: 7bcd jsr r3 + 4ac0: 9809 ld.w r0, (r14, 0x24) + 4ac2: 6018 addu r0, r6 + 4ac4: b809 st.w r0, (r14, 0x24) + 4ac6: 8420 ld.b r1, (r4, 0x0) + 4ac8: 3940 cmpnei r1, 0 + 4aca: 0803 bt 0x4ad0 // 4ad0 <__v2_printf+0x4c> + 4acc: e8000367 br 0x519a // 519a <__v2_printf+0x716> + 4ad0: 3637 movi r6, 55 + 4ad2: 1a01 addi r2, r14, 4 + 4ad4: 3700 movi r7, 0 + 4ad6: 6188 addu r6, r2 + 4ad8: a6e0 st.b r7, (r6, 0x0) + 4ada: 3300 movi r3, 0 + 4adc: 3600 movi r6, 0 + 4ade: 2400 addi r4, 1 + 4ae0: 3000 movi r0, 0 + 4ae2: 3100 movi r1, 0 + 4ae4: 2e00 subi r6, 1 + 4ae6: b867 st.w r3, (r14, 0x1c) + 4ae8: 3700 movi r7, 0 + 4aea: 5c42 addi r2, r4, 1 + 4aec: b846 st.w r2, (r14, 0x18) + 4aee: 8480 ld.b r4, (r4, 0x0) + 4af0: 3364 movi r3, 100 + 4af2: 64d2 cmpne r4, r3 + 4af4: 0d90 bf 0x4e14 // 4e14 <__v2_printf+0x390> + 4af6: 650d cmplt r3, r4 + 4af8: 084e bt 0x4b94 // 4b94 <__v2_printf+0x110> + 4afa: 322e movi r2, 46 + 4afc: 6492 cmpne r4, r2 + 4afe: 0d41 bf 0x4d80 // 4d80 <__v2_printf+0x2fc> + 4b00: 6509 cmplt r2, r4 + 4b02: 0829 bt 0x4b54 // 4b54 <__v2_printf+0xd0> + 4b04: 332a movi r3, 42 + 4b06: 64d2 cmpne r4, r3 + 4b08: 0d31 bf 0x4d6a // 4d6a <__v2_printf+0x2e6> + 4b0a: 650d cmplt r3, r4 + 4b0c: 081c bt 0x4b44 // 4b44 <__v2_printf+0xc0> + 4b0e: 3220 movi r2, 32 + 4b10: 6492 cmpne r4, r2 + 4b12: 0d25 bf 0x4d5c // 4d5c <__v2_printf+0x2d8> + 4b14: 3323 movi r3, 35 + 4b16: 64d2 cmpne r4, r3 + 4b18: 0d27 bf 0x4d66 // 4d66 <__v2_printf+0x2e2> + 4b1a: 3c40 cmpnei r4, 0 + 4b1c: 0803 bt 0x4b22 // 4b22 <__v2_printf+0x9e> + 4b1e: e800033e br 0x519a // 519a <__v2_printf+0x716> + 4b22: 1e12 addi r6, r14, 72 + 4b24: 3037 movi r0, 55 + 4b26: 1a01 addi r2, r14, 4 + 4b28: a680 st.b r4, (r6, 0x0) + 4b2a: 6008 addu r0, r2 + 4b2c: 3400 movi r4, 0 + 4b2e: a080 st.b r4, (r0, 0x0) + 4b30: b8a5 st.w r5, (r14, 0x14) + 4b32: 042c br 0x4b8a // 4b8a <__v2_printf+0x106> + 4b34: 2400 addi r4, 1 + 4b36: 07b6 br 0x4aa2 // 4aa2 <__v2_printf+0x1e> + 4b38: 3001 movi r0, 1 + 4b3a: 312b movi r1, 43 + 4b3c: 9886 ld.w r4, (r14, 0x18) + 4b3e: 07d6 br 0x4aea // 4aea <__v2_printf+0x66> + 4b40: 6d4f mov r5, r3 + 4b42: 07fd br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4b44: 322b movi r2, 43 + 4b46: 6492 cmpne r4, r2 + 4b48: 0ff8 bf 0x4b38 // 4b38 <__v2_printf+0xb4> + 4b4a: 332d movi r3, 45 + 4b4c: 64d2 cmpne r4, r3 + 4b4e: 0be6 bt 0x4b1a // 4b1a <__v2_printf+0x96> + 4b50: 3fa2 bseti r7, 2 + 4b52: 07f5 br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4b54: 3339 movi r3, 57 + 4b56: 650d cmplt r3, r4 + 4b58: 0809 bt 0x4b6a // 4b6a <__v2_printf+0xe6> + 4b5a: 3231 movi r2, 49 + 4b5c: 6491 cmplt r4, r2 + 4b5e: 0d34 bf 0x4dc6 // 4dc6 <__v2_printf+0x342> + 4b60: 3330 movi r3, 48 + 4b62: 64d2 cmpne r4, r3 + 4b64: 0bdb bt 0x4b1a // 4b1a <__v2_printf+0x96> + 4b66: 3fa7 bseti r7, 7 + 4b68: 07ea br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4b6a: 3258 movi r2, 88 + 4b6c: 6492 cmpne r4, r2 + 4b6e: 0cd3 bf 0x4d14 // 4d14 <__v2_printf+0x290> + 4b70: 3063 movi r0, 99 + 4b72: 6412 cmpne r4, r0 + 4b74: 0bd3 bt 0x4b1a // 4b1a <__v2_printf+0x96> + 4b76: 3337 movi r3, 55 + 4b78: 1a01 addi r2, r14, 4 + 4b7a: 5d2e addi r1, r5, 4 + 4b7c: 85c0 ld.b r6, (r5, 0x0) + 4b7e: 3400 movi r4, 0 + 4b80: 1d12 addi r5, r14, 72 + 4b82: 60c8 addu r3, r2 + 4b84: b825 st.w r1, (r14, 0x14) + 4b86: a5c0 st.b r6, (r5, 0x0) + 4b88: a380 st.b r4, (r3, 0x0) + 4b8a: 3601 movi r6, 1 + 4b8c: 3500 movi r5, 0 + 4b8e: 1c12 addi r4, r14, 72 + 4b90: e8000295 br 0x50ba // 50ba <__v2_printf+0x636> + 4b94: 336d movi r3, 109 + 4b96: 64d2 cmpne r4, r3 + 4b98: 0d2d bf 0x4df2 // 4df2 <__v2_printf+0x36e> + 4b9a: 650d cmplt r3, r4 + 4b9c: 0883 bt 0x4ca2 // 4ca2 <__v2_printf+0x21e> + 4b9e: 3268 movi r2, 104 + 4ba0: 6492 cmpne r4, r2 + 4ba2: 0d24 bf 0x4dea // 4dea <__v2_printf+0x366> + 4ba4: 6509 cmplt r2, r4 + 4ba6: 086f bt 0x4c84 // 4c84 <__v2_printf+0x200> + 4ba8: 3366 movi r3, 102 + 4baa: 64d1 cmplt r4, r3 + 4bac: 0bb7 bt 0x4b1a // 4b1a <__v2_printf+0x96> + 4bae: 3840 cmpnei r0, 0 + 4bb0: 0c05 bf 0x4bba // 4bba <__v2_printf+0x136> + 4bb2: 3037 movi r0, 55 + 4bb4: 1a01 addi r2, r14, 4 + 4bb6: 6008 addu r0, r2 + 4bb8: a020 st.b r1, (r0, 0x0) + 4bba: 5d3e addi r1, r5, 8 + 4bbc: b825 st.w r1, (r14, 0x14) + 4bbe: 9500 ld.w r0, (r5, 0x0) + 4bc0: 9521 ld.w r1, (r5, 0x4) + 4bc2: 98a7 ld.w r5, (r14, 0x1c) + 4bc4: 3d40 cmpnei r5, 0 + 4bc6: 0803 bt 0x4bcc // 4bcc <__v2_printf+0x148> + 4bc8: 3301 movi r3, 1 + 4bca: b867 st.w r3, (r14, 0x1c) + 4bcc: 3200 movi r2, 0 + 4bce: 2a00 subi r2, 1 + 4bd0: 649a cmpne r6, r2 + 4bd2: 0d58 bf 0x4e82 // 4e82 <__v2_printf+0x3fe> + 4bd4: 6d5b mov r5, r6 + 4bd6: 9867 ld.w r3, (r14, 0x1c) + 4bd8: b860 st.w r3, (r14, 0x0) + 4bda: b8a1 st.w r5, (r14, 0x4) + 4bdc: 3328 movi r3, 40 + 4bde: 1a12 addi r2, r14, 72 + 4be0: e000069d bsr 0x591a // 591a <__GI___dtostr> + 4be4: 3100 movi r1, 0 + 4be6: 2900 subi r1, 1 + 4be8: 645a cmpne r6, r1 + 4bea: b808 st.w r0, (r14, 0x20) + 4bec: 0c1a bf 0x4c20 // 4c20 <__v2_printf+0x19c> + 4bee: 312e movi r1, 46 + 4bf0: 980d ld.w r0, (r14, 0x34) + 4bf2: e00008c9 bsr 0x5d84 // 5d84 <__GI_strchr> + 4bf6: 3840 cmpnei r0, 0 + 4bf8: 98c8 ld.w r6, (r14, 0x20) + 4bfa: 0d48 bf 0x4e8a // 4e8a <__v2_printf+0x406> + 4bfc: 3d40 cmpnei r5, 0 + 4bfe: 0805 bt 0x4c08 // 4c08 <__v2_printf+0x184> + 4c00: 3101 movi r1, 1 + 4c02: 685c and r1, r7 + 4c04: 3940 cmpnei r1, 0 + 4c06: 0d40 bf 0x4e86 // 4e86 <__v2_printf+0x402> + 4c08: 58c2 addi r6, r0, 1 + 4c0a: 2500 addi r5, 1 + 4c0c: 5d59 subu r2, r5, r6 + 4c0e: 6080 addu r2, r0 + 4c10: 3a20 cmplti r2, 1 + 4c12: 0805 bt 0x4c1c // 4c1c <__v2_printf+0x198> + 4c14: 2600 addi r6, 1 + 4c16: 8660 ld.b r3, (r6, 0x0) + 4c18: 3b40 cmpnei r3, 0 + 4c1a: 0bf9 bt 0x4c0c // 4c0c <__v2_printf+0x188> + 4c1c: 3500 movi r5, 0 + 4c1e: a6a0 st.b r5, (r6, 0x0) + 4c20: 3067 movi r0, 103 + 4c22: 6412 cmpne r4, r0 + 4c24: 0822 bt 0x4c68 // 4c68 <__v2_printf+0x1e4> + 4c26: 312e movi r1, 46 + 4c28: 1812 addi r0, r14, 72 + 4c2a: e00008ad bsr 0x5d84 // 5d84 <__GI_strchr> + 4c2e: 3840 cmpnei r0, 0 + 4c30: 6d03 mov r4, r0 + 4c32: 0c1b bf 0x4c68 // 4c68 <__v2_printf+0x1e4> + 4c34: 3165 movi r1, 101 + 4c36: e00008a7 bsr 0x5d84 // 5d84 <__GI_strchr> + 4c3a: 6c43 mov r1, r0 + 4c3c: 84c0 ld.b r6, (r4, 0x0) + 4c3e: 3e40 cmpnei r6, 0 + 4c40: 0930 bt 0x4ea0 // 4ea0 <__v2_printf+0x41c> + 4c42: 3940 cmpnei r1, 0 + 4c44: 0c02 bf 0x4c48 // 4c48 <__v2_printf+0x1c4> + 4c46: 6d07 mov r4, r1 + 4c48: 3630 movi r6, 48 + 4c4a: 5c63 subi r3, r4, 1 + 4c4c: 8340 ld.b r2, (r3, 0x0) + 4c4e: 658a cmpne r2, r6 + 4c50: 0d2a bf 0x4ea4 // 4ea4 <__v2_printf+0x420> + 4c52: 352e movi r5, 46 + 4c54: 654a cmpne r2, r5 + 4c56: 0802 bt 0x4c5a // 4c5a <__v2_printf+0x1d6> + 4c58: 6d0f mov r4, r3 + 4c5a: 3000 movi r0, 0 + 4c5c: 3940 cmpnei r1, 0 + 4c5e: a400 st.b r0, (r4, 0x0) + 4c60: 0c04 bf 0x4c68 // 4c68 <__v2_printf+0x1e4> + 4c62: 6c13 mov r0, r4 + 4c64: e0000838 bsr 0x5cd4 // 5cd4 <__strcpy_fast> + 4c68: 1912 addi r1, r14, 72 + 4c6a: 81c0 ld.b r6, (r1, 0x0) + 4c6c: 332d movi r3, 45 + 4c6e: 64da cmpne r6, r3 + 4c70: 0c02 bf 0x4c74 // 4c74 <__v2_printf+0x1f0> + 4c72: 05ef br 0x5050 // 5050 <__v2_printf+0x5cc> + 4c74: 3437 movi r4, 55 + 4c76: 1801 addi r0, r14, 4 + 4c78: 352d movi r5, 45 + 4c7a: 6100 addu r4, r0 + 4c7c: a4a0 st.b r5, (r4, 0x0) + 4c7e: 1912 addi r1, r14, 72 + 4c80: 5982 addi r4, r1, 1 + 4c82: 05ec br 0x505a // 505a <__v2_printf+0x5d6> + 4c84: 3369 movi r3, 105 + 4c86: 64d2 cmpne r4, r3 + 4c88: 0cc6 bf 0x4e14 // 4e14 <__v2_printf+0x390> + 4c8a: 326c movi r2, 108 + 4c8c: 6492 cmpne r4, r2 + 4c8e: 0b46 bt 0x4b1a // 4b1a <__v2_printf+0x96> + 4c90: 9866 ld.w r3, (r14, 0x18) + 4c92: 8340 ld.b r2, (r3, 0x0) + 4c94: 650a cmpne r2, r4 + 4c96: 08ac bt 0x4dee // 4dee <__v2_printf+0x36a> + 4c98: 9886 ld.w r4, (r14, 0x18) + 4c9a: 2400 addi r4, 1 + 4c9c: b886 st.w r4, (r14, 0x18) + 4c9e: 3fa5 bseti r7, 5 + 4ca0: 074e br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4ca2: 3371 movi r3, 113 + 4ca4: 64d2 cmpne r4, r3 + 4ca6: 0ffc bf 0x4c9e // 4c9e <__v2_printf+0x21a> + 4ca8: 650d cmplt r3, r4 + 4caa: 081a bt 0x4cde // 4cde <__v2_printf+0x25a> + 4cac: 306f movi r0, 111 + 4cae: 6412 cmpne r4, r0 + 4cb0: 0cfc bf 0x4ea8 // 4ea8 <__v2_printf+0x424> + 4cb2: 3170 movi r1, 112 + 4cb4: 6452 cmpne r4, r1 + 4cb6: 0b32 bt 0x4b1a // 4b1a <__v2_printf+0x96> + 4cb8: 5d4e addi r2, r5, 4 + 4cba: 3400 movi r4, 0 + 4cbc: 95a0 ld.w r5, (r5, 0x0) + 4cbe: b845 st.w r2, (r14, 0x14) + 4cc0: 1901 addi r1, r14, 4 + 4cc2: 3239 movi r2, 57 + 4cc4: b8a3 st.w r5, (r14, 0xc) + 4cc6: b884 st.w r4, (r14, 0x10) + 4cc8: 3330 movi r3, 48 + 4cca: 180f addi r0, r14, 60 + 4ccc: 3578 movi r5, 120 + 4cce: 6084 addu r2, r1 + 4cd0: 0195 lrw r4, 0xc319 // 4ff8 <__v2_printf+0x574> + 4cd2: 3fa1 bseti r7, 1 + 4cd4: a060 st.b r3, (r0, 0x0) + 4cd6: a2a0 st.b r5, (r2, 0x0) + 4cd8: b88a st.w r4, (r14, 0x28) + 4cda: 3402 movi r4, 2 + 4cdc: 04f1 br 0x4ebe // 4ebe <__v2_printf+0x43a> + 4cde: 3275 movi r2, 117 + 4ce0: 6492 cmpne r4, r2 + 4ce2: 0d28 bf 0x4f32 // 4f32 <__v2_printf+0x4ae> + 4ce4: 3378 movi r3, 120 + 4ce6: 64d2 cmpne r4, r3 + 4ce8: 0d44 bf 0x4f70 // 4f70 <__v2_printf+0x4ec> + 4cea: 3173 movi r1, 115 + 4cec: 6452 cmpne r4, r1 + 4cee: 0b16 bt 0x4b1a // 4b1a <__v2_printf+0x96> + 4cf0: 3200 movi r2, 0 + 4cf2: 3037 movi r0, 55 + 4cf4: 1901 addi r1, r14, 4 + 4cf6: 2a00 subi r2, 1 + 4cf8: 5d6e addi r3, r5, 4 + 4cfa: 9580 ld.w r4, (r5, 0x0) + 4cfc: 6004 addu r0, r1 + 4cfe: 3500 movi r5, 0 + 4d00: 649a cmpne r6, r2 + 4d02: b865 st.w r3, (r14, 0x14) + 4d04: a0a0 st.b r5, (r0, 0x0) + 4d06: 090b bt 0x4f1c // 4f1c <__v2_printf+0x498> + 4d08: 6cd3 mov r3, r4 + 4d0a: 83c0 ld.b r6, (r3, 0x0) + 4d0c: 3e40 cmpnei r6, 0 + 4d0e: 0910 bt 0x4f2e // 4f2e <__v2_printf+0x4aa> + 4d10: 5bd1 subu r6, r3, r4 + 4d12: 047f br 0x4e10 // 4e10 <__v2_printf+0x38c> + 4d14: 3840 cmpnei r0, 0 + 4d16: 0c05 bf 0x4d20 // 4d20 <__v2_printf+0x29c> + 4d18: 3037 movi r0, 55 + 4d1a: 1b01 addi r3, r14, 4 + 4d1c: 600c addu r0, r3 + 4d1e: a020 st.b r1, (r0, 0x0) + 4d20: 0228 lrw r1, 0xc308 // 4ffc <__v2_printf+0x578> + 4d22: 3020 movi r0, 32 + 4d24: 681c and r0, r7 + 4d26: 3840 cmpnei r0, 0 + 4d28: b82a st.w r1, (r14, 0x28) + 4d2a: 0d2b bf 0x4f80 // 4f80 <__v2_printf+0x4fc> + 4d2c: 5d5e addi r2, r5, 8 + 4d2e: b845 st.w r2, (r14, 0x14) + 4d30: 9520 ld.w r1, (r5, 0x0) + 4d32: 9541 ld.w r2, (r5, 0x4) + 4d34: b823 st.w r1, (r14, 0xc) + 4d36: b844 st.w r2, (r14, 0x10) + 4d38: 3001 movi r0, 1 + 4d3a: 681c and r0, r7 + 4d3c: 3840 cmpnei r0, 0 + 4d3e: 0fce bf 0x4cda // 4cda <__v2_printf+0x256> + 4d40: 98a3 ld.w r5, (r14, 0xc) + 4d42: 9864 ld.w r3, (r14, 0x10) + 4d44: 6d4c or r5, r3 + 4d46: 3d40 cmpnei r5, 0 + 4d48: 0fc9 bf 0x4cda // 4cda <__v2_printf+0x256> + 4d4a: 3039 movi r0, 57 + 4d4c: 1d01 addi r5, r14, 4 + 4d4e: 3130 movi r1, 48 + 4d50: 1a0f addi r2, r14, 60 + 4d52: 6014 addu r0, r5 + 4d54: a220 st.b r1, (r2, 0x0) + 4d56: a080 st.b r4, (r0, 0x0) + 4d58: 3fa1 bseti r7, 1 + 4d5a: 07c0 br 0x4cda // 4cda <__v2_printf+0x256> + 4d5c: 3940 cmpnei r1, 0 + 4d5e: 0aef bt 0x4b3c // 4b3c <__v2_printf+0xb8> + 4d60: 3001 movi r0, 1 + 4d62: 3120 movi r1, 32 + 4d64: 06ec br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4d66: 3fa0 bseti r7, 0 + 4d68: 06ea br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4d6a: 9580 ld.w r4, (r5, 0x0) + 4d6c: 3cdf btsti r4, 31 + 4d6e: 5d6e addi r3, r5, 4 + 4d70: b887 st.w r4, (r14, 0x1c) + 4d72: 0ee7 bf 0x4b40 // 4b40 <__v2_printf+0xbc> + 4d74: 9847 ld.w r2, (r14, 0x1c) + 4d76: 3500 movi r5, 0 + 4d78: 614a subu r5, r2 + 4d7a: b8a7 st.w r5, (r14, 0x1c) + 4d7c: 6d4f mov r5, r3 + 4d7e: 06e9 br 0x4b50 // 4b50 <__v2_printf+0xcc> + 4d80: 98c6 ld.w r6, (r14, 0x18) + 4d82: 8680 ld.b r4, (r6, 0x0) + 4d84: 322a movi r2, 42 + 4d86: 9866 ld.w r3, (r14, 0x18) + 4d88: 6492 cmpne r4, r2 + 4d8a: 2300 addi r3, 1 + 4d8c: 0c0b bf 0x4da2 // 4da2 <__v2_printf+0x31e> + 4d8e: b865 st.w r3, (r14, 0x14) + 4d90: 3600 movi r6, 0 + 4d92: 3300 movi r3, 0 + 4d94: 2b2f subi r3, 48 + 4d96: 60d0 addu r3, r4 + 4d98: 3b09 cmphsi r3, 10 + 4d9a: 9845 ld.w r2, (r14, 0x14) + 4d9c: 0c0c bf 0x4db4 // 4db4 <__v2_printf+0x330> + 4d9e: b846 st.w r2, (r14, 0x18) + 4da0: 06a8 br 0x4af0 // 4af0 <__v2_printf+0x6c> + 4da2: 95c0 ld.w r6, (r5, 0x0) + 4da4: 3edf btsti r6, 31 + 4da6: 5d8e addi r4, r5, 4 + 4da8: 0c03 bf 0x4dae // 4dae <__v2_printf+0x32a> + 4daa: 3600 movi r6, 0 + 4dac: 2e00 subi r6, 1 + 4dae: 6d53 mov r5, r4 + 4db0: b866 st.w r3, (r14, 0x18) + 4db2: 06c5 br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4db4: 340a movi r4, 10 + 4db6: 7d18 mult r4, r6 + 4db8: 9845 ld.w r2, (r14, 0x14) + 4dba: 6d8f mov r6, r3 + 4dbc: 6190 addu r6, r4 + 4dbe: 8280 ld.b r4, (r2, 0x0) + 4dc0: 2200 addi r2, 1 + 4dc2: b845 st.w r2, (r14, 0x14) + 4dc4: 07e7 br 0x4d92 // 4d92 <__v2_printf+0x30e> + 4dc6: 3200 movi r2, 0 + 4dc8: b847 st.w r2, (r14, 0x1c) + 4dca: 9867 ld.w r3, (r14, 0x1c) + 4dcc: 320a movi r2, 10 + 4dce: 7cc8 mult r3, r2 + 4dd0: 2c2f subi r4, 48 + 4dd2: 610c addu r4, r3 + 4dd4: b887 st.w r4, (r14, 0x1c) + 4dd6: 3300 movi r3, 0 + 4dd8: 9886 ld.w r4, (r14, 0x18) + 4dda: 5c42 addi r2, r4, 1 + 4ddc: 2b2f subi r3, 48 + 4dde: 8480 ld.b r4, (r4, 0x0) + 4de0: 60d0 addu r3, r4 + 4de2: 3b09 cmphsi r3, 10 + 4de4: b846 st.w r2, (r14, 0x18) + 4de6: 0ff2 bf 0x4dca // 4dca <__v2_printf+0x346> + 4de8: 07db br 0x4d9e // 4d9e <__v2_printf+0x31a> + 4dea: 3fa6 bseti r7, 6 + 4dec: 06a8 br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4dee: 3fa4 bseti r7, 4 + 4df0: 06a6 br 0x4b3c // 4b3c <__v2_printf+0xb8> + 4df2: 3840 cmpnei r0, 0 + 4df4: 0c05 bf 0x4dfe // 4dfe <__v2_printf+0x37a> + 4df6: 3637 movi r6, 55 + 4df8: 1b01 addi r3, r14, 4 + 4dfa: 618c addu r6, r3 + 4dfc: a620 st.b r1, (r6, 0x0) + 4dfe: 033e lrw r1, 0x20000b20 // 5000 <__v2_printf+0x57c> + 4e00: 9100 ld.w r0, (r1, 0x0) + 4e02: e00007cb bsr 0x5d98 // 5d98 <__GI_strerror> + 4e06: 6d03 mov r4, r0 + 4e08: e000073c bsr 0x5c80 // 5c80 <__strlen_fast> + 4e0c: 6d83 mov r6, r0 + 4e0e: b8a5 st.w r5, (r14, 0x14) + 4e10: 3500 movi r5, 0 + 4e12: 0554 br 0x50ba // 50ba <__v2_printf+0x636> + 4e14: 3840 cmpnei r0, 0 + 4e16: 0c05 bf 0x4e20 // 4e20 <__v2_printf+0x39c> + 4e18: 3037 movi r0, 55 + 4e1a: 1a01 addi r2, r14, 4 + 4e1c: 6008 addu r0, r2 + 4e1e: a020 st.b r1, (r0, 0x0) + 4e20: 3420 movi r4, 32 + 4e22: 691c and r4, r7 + 4e24: 3c40 cmpnei r4, 0 + 4e26: 0c1a bf 0x4e5a // 4e5a <__v2_printf+0x3d6> + 4e28: 5d7e addi r3, r5, 8 + 4e2a: 9520 ld.w r1, (r5, 0x0) + 4e2c: 9541 ld.w r2, (r5, 0x4) + 4e2e: b865 st.w r3, (r14, 0x14) + 4e30: b823 st.w r1, (r14, 0xc) + 4e32: b844 st.w r2, (r14, 0x10) + 4e34: 9804 ld.w r0, (r14, 0x10) + 4e36: 38df btsti r0, 31 + 4e38: 0c0f bf 0x4e56 // 4e56 <__v2_printf+0x3d2> + 4e3a: 9883 ld.w r4, (r14, 0xc) + 4e3c: 98a4 ld.w r5, (r14, 0x10) + 4e3e: 3200 movi r2, 0 + 4e40: 3300 movi r3, 0 + 4e42: 6488 cmphs r2, r2 + 4e44: 6093 subc r2, r4 + 4e46: 60d7 subc r3, r5 + 4e48: b843 st.w r2, (r14, 0xc) + 4e4a: b864 st.w r3, (r14, 0x10) + 4e4c: 3237 movi r2, 55 + 4e4e: 1b01 addi r3, r14, 4 + 4e50: 352d movi r5, 45 + 4e52: 608c addu r2, r3 + 4e54: a2a0 st.b r5, (r2, 0x0) + 4e56: 3401 movi r4, 1 + 4e58: 0438 br 0x4ec8 // 4ec8 <__v2_printf+0x444> + 4e5a: 3310 movi r3, 16 + 4e5c: 68dc and r3, r7 + 4e5e: 3b40 cmpnei r3, 0 + 4e60: 0c08 bf 0x4e70 // 4e70 <__v2_printf+0x3ec> + 4e62: 5d4e addi r2, r5, 4 + 4e64: b845 st.w r2, (r14, 0x14) + 4e66: 95a0 ld.w r5, (r5, 0x0) + 4e68: 559f asri r4, r5, 31 + 4e6a: b8a3 st.w r5, (r14, 0xc) + 4e6c: b884 st.w r4, (r14, 0x10) + 4e6e: 07e3 br 0x4e34 // 4e34 <__v2_printf+0x3b0> + 4e70: 3140 movi r1, 64 + 4e72: 685c and r1, r7 + 4e74: 5d0e addi r0, r5, 4 + 4e76: 3940 cmpnei r1, 0 + 4e78: 95a0 ld.w r5, (r5, 0x0) + 4e7a: b805 st.w r0, (r14, 0x14) + 4e7c: 0ff6 bf 0x4e68 // 4e68 <__v2_printf+0x3e4> + 4e7e: 7557 sexth r5, r5 + 4e80: 07f4 br 0x4e68 // 4e68 <__v2_printf+0x3e4> + 4e82: 3506 movi r5, 6 + 4e84: 06a9 br 0x4bd6 // 4bd6 <__v2_printf+0x152> + 4e86: 6d83 mov r6, r0 + 4e88: 06ca br 0x4c1c // 4c1c <__v2_printf+0x198> + 4e8a: 3201 movi r2, 1 + 4e8c: 689c and r2, r7 + 4e8e: 3a40 cmpnei r2, 0 + 4e90: 0ec8 bf 0x4c20 // 4c20 <__v2_printf+0x19c> + 4e92: 1d12 addi r5, r14, 72 + 4e94: 6158 addu r5, r6 + 4e96: 332e movi r3, 46 + 4e98: 3000 movi r0, 0 + 4e9a: a560 st.b r3, (r5, 0x0) + 4e9c: a501 st.b r0, (r5, 0x1) + 4e9e: 06c1 br 0x4c20 // 4c20 <__v2_printf+0x19c> + 4ea0: 2400 addi r4, 1 + 4ea2: 06cd br 0x4c3c // 4c3c <__v2_printf+0x1b8> + 4ea4: 6d0f mov r4, r3 + 4ea6: 06d2 br 0x4c4a // 4c4a <__v2_printf+0x1c6> + 4ea8: 3320 movi r3, 32 + 4eaa: 68dc and r3, r7 + 4eac: 3b40 cmpnei r3, 0 + 4eae: 0c24 bf 0x4ef6 // 4ef6 <__v2_printf+0x472> + 4eb0: 5d7e addi r3, r5, 8 + 4eb2: 9500 ld.w r0, (r5, 0x0) + 4eb4: 9521 ld.w r1, (r5, 0x4) + 4eb6: b865 st.w r3, (r14, 0x14) + 4eb8: b803 st.w r0, (r14, 0xc) + 4eba: b824 st.w r1, (r14, 0x10) + 4ebc: 3400 movi r4, 0 + 4ebe: 3537 movi r5, 55 + 4ec0: 1801 addi r0, r14, 4 + 4ec2: 3200 movi r2, 0 + 4ec4: 6140 addu r5, r0 + 4ec6: a540 st.b r2, (r5, 0x0) + 4ec8: 3100 movi r1, 0 + 4eca: 2900 subi r1, 1 + 4ecc: 9803 ld.w r0, (r14, 0xc) + 4ece: 98a4 ld.w r5, (r14, 0x10) + 4ed0: 645a cmpne r6, r1 + 4ed2: 6c14 or r0, r5 + 4ed4: 0cc8 bf 0x5064 // 5064 <__v2_printf+0x5e0> + 4ed6: 6c9f mov r2, r7 + 4ed8: 3a87 bclri r2, 7 + 4eda: 3840 cmpnei r0, 0 + 4edc: b848 st.w r2, (r14, 0x20) + 4ede: 08c6 bt 0x506a // 506a <__v2_printf+0x5e6> + 4ee0: 3e40 cmpnei r6, 0 + 4ee2: 0cac bf 0x503a // 503a <__v2_printf+0x5b6> + 4ee4: 3c41 cmpnei r4, 1 + 4ee6: 0c68 bf 0x4fb6 // 4fb6 <__v2_printf+0x532> + 4ee8: 3c42 cmpnei r4, 2 + 4eea: 0c8d bf 0x5004 // 5004 <__v2_printf+0x580> + 4eec: 3300 movi r3, 0 + 4eee: 3400 movi r4, 0 + 4ef0: b863 st.w r3, (r14, 0xc) + 4ef2: b884 st.w r4, (r14, 0x10) + 4ef4: 04bf br 0x5072 // 5072 <__v2_printf+0x5ee> + 4ef6: 3010 movi r0, 16 + 4ef8: 681c and r0, r7 + 4efa: 3840 cmpnei r0, 0 + 4efc: 0c05 bf 0x4f06 // 4f06 <__v2_printf+0x482> + 4efe: 5d8e addi r4, r5, 4 + 4f00: b885 st.w r4, (r14, 0x14) + 4f02: 95a0 ld.w r5, (r5, 0x0) + 4f04: 0408 br 0x4f14 // 4f14 <__v2_printf+0x490> + 4f06: 3240 movi r2, 64 + 4f08: 689c and r2, r7 + 4f0a: 5d2e addi r1, r5, 4 + 4f0c: 3a40 cmpnei r2, 0 + 4f0e: b825 st.w r1, (r14, 0x14) + 4f10: 0ff9 bf 0x4f02 // 4f02 <__v2_printf+0x47e> + 4f12: 8da0 ld.h r5, (r5, 0x0) + 4f14: 3400 movi r4, 0 + 4f16: b8a3 st.w r5, (r14, 0xc) + 4f18: b884 st.w r4, (r14, 0x10) + 4f1a: 07d2 br 0x4ebe // 4ebe <__v2_printf+0x43a> + 4f1c: 5cb8 addu r5, r4, r6 + 4f1e: 6cd3 mov r3, r4 + 4f20: 654e cmpne r3, r5 + 4f22: 0f77 bf 0x4e10 // 4e10 <__v2_printf+0x38c> + 4f24: 8300 ld.b r0, (r3, 0x0) + 4f26: 3840 cmpnei r0, 0 + 4f28: 0ef4 bf 0x4d10 // 4d10 <__v2_printf+0x28c> + 4f2a: 2300 addi r3, 1 + 4f2c: 07fa br 0x4f20 // 4f20 <__v2_printf+0x49c> + 4f2e: 2300 addi r3, 1 + 4f30: 06ed br 0x4d0a // 4d0a <__v2_printf+0x286> + 4f32: 3420 movi r4, 32 + 4f34: 691c and r4, r7 + 4f36: 3c40 cmpnei r4, 0 + 4f38: 0c09 bf 0x4f4a // 4f4a <__v2_printf+0x4c6> + 4f3a: 5d7e addi r3, r5, 8 + 4f3c: 9520 ld.w r1, (r5, 0x0) + 4f3e: 9541 ld.w r2, (r5, 0x4) + 4f40: b865 st.w r3, (r14, 0x14) + 4f42: b823 st.w r1, (r14, 0xc) + 4f44: b844 st.w r2, (r14, 0x10) + 4f46: 3401 movi r4, 1 + 4f48: 07bb br 0x4ebe // 4ebe <__v2_printf+0x43a> + 4f4a: 3310 movi r3, 16 + 4f4c: 68dc and r3, r7 + 4f4e: 3b40 cmpnei r3, 0 + 4f50: 0c05 bf 0x4f5a // 4f5a <__v2_printf+0x4d6> + 4f52: 5d0e addi r0, r5, 4 + 4f54: b805 st.w r0, (r14, 0x14) + 4f56: 95a0 ld.w r5, (r5, 0x0) + 4f58: 0408 br 0x4f68 // 4f68 <__v2_printf+0x4e4> + 4f5a: 3140 movi r1, 64 + 4f5c: 685c and r1, r7 + 4f5e: 5d4e addi r2, r5, 4 + 4f60: 3940 cmpnei r1, 0 + 4f62: b845 st.w r2, (r14, 0x14) + 4f64: 0ff9 bf 0x4f56 // 4f56 <__v2_printf+0x4d2> + 4f66: 8da0 ld.h r5, (r5, 0x0) + 4f68: 3400 movi r4, 0 + 4f6a: b8a3 st.w r5, (r14, 0xc) + 4f6c: b884 st.w r4, (r14, 0x10) + 4f6e: 07ec br 0x4f46 // 4f46 <__v2_printf+0x4c2> + 4f70: 3840 cmpnei r0, 0 + 4f72: 0c05 bf 0x4f7c // 4f7c <__v2_printf+0x4f8> + 4f74: 3337 movi r3, 55 + 4f76: 1a01 addi r2, r14, 4 + 4f78: 60c8 addu r3, r2 + 4f7a: a320 st.b r1, (r3, 0x0) + 4f7c: 103f lrw r1, 0xc319 // 4ff8 <__v2_printf+0x574> + 4f7e: 06d2 br 0x4d22 // 4d22 <__v2_printf+0x29e> + 4f80: 3310 movi r3, 16 + 4f82: 68dc and r3, r7 + 4f84: 3b40 cmpnei r3, 0 + 4f86: 0c05 bf 0x4f90 // 4f90 <__v2_printf+0x50c> + 4f88: 5d0e addi r0, r5, 4 + 4f8a: b805 st.w r0, (r14, 0x14) + 4f8c: 95a0 ld.w r5, (r5, 0x0) + 4f8e: 0408 br 0x4f9e // 4f9e <__v2_printf+0x51a> + 4f90: 3240 movi r2, 64 + 4f92: 689c and r2, r7 + 4f94: 5d2e addi r1, r5, 4 + 4f96: 3a40 cmpnei r2, 0 + 4f98: b825 st.w r1, (r14, 0x14) + 4f9a: 0ff9 bf 0x4f8c // 4f8c <__v2_printf+0x508> + 4f9c: 8da0 ld.h r5, (r5, 0x0) + 4f9e: 3300 movi r3, 0 + 4fa0: b8a3 st.w r5, (r14, 0xc) + 4fa2: b864 st.w r3, (r14, 0x10) + 4fa4: 06ca br 0x4d38 // 4d38 <__v2_printf+0x2b4> + 4fa6: 6cd3 mov r3, r4 + 4fa8: 0467 br 0x5076 // 5076 <__v2_printf+0x5f2> + 4faa: 9884 ld.w r4, (r14, 0x10) + 4fac: 3c40 cmpnei r4, 0 + 4fae: 080b bt 0x4fc4 // 4fc4 <__v2_printf+0x540> + 4fb0: 9843 ld.w r2, (r14, 0xc) + 4fb2: 3a09 cmphsi r2, 10 + 4fb4: 0808 bt 0x4fc4 // 4fc4 <__v2_printf+0x540> + 4fb6: 9883 ld.w r4, (r14, 0xc) + 4fb8: 242f addi r4, 48 + 4fba: 1f1a addi r7, r14, 104 + 4fbc: a787 st.b r4, (r7, 0x7) + 4fbe: 1c12 addi r4, r14, 72 + 4fc0: 2426 addi r4, 39 + 4fc2: 0478 br 0x50b2 // 50b2 <__v2_printf+0x62e> + 4fc4: 1c1c addi r4, r14, 112 + 4fc6: 3530 movi r5, 48 + 4fc8: 320a movi r2, 10 + 4fca: 3300 movi r3, 0 + 4fcc: 9803 ld.w r0, (r14, 0xc) + 4fce: 9824 ld.w r1, (r14, 0x10) + 4fd0: e00002c2 bsr 0x5554 // 5554 <__umoddi3> + 4fd4: 6014 addu r0, r5 + 4fd6: 2c00 subi r4, 1 + 4fd8: a400 st.b r0, (r4, 0x0) + 4fda: 320a movi r2, 10 + 4fdc: 9803 ld.w r0, (r14, 0xc) + 4fde: 9824 ld.w r1, (r14, 0x10) + 4fe0: 3300 movi r3, 0 + 4fe2: e00000e3 bsr 0x51a8 // 51a8 <__udivdi3> + 4fe6: b803 st.w r0, (r14, 0xc) + 4fe8: b824 st.w r1, (r14, 0x10) + 4fea: 9823 ld.w r1, (r14, 0xc) + 4fec: 98e4 ld.w r7, (r14, 0x10) + 4fee: 6c5c or r1, r7 + 4ff0: 3940 cmpnei r1, 0 + 4ff2: 0beb bt 0x4fc8 // 4fc8 <__v2_printf+0x544> + 4ff4: 045f br 0x50b2 // 50b2 <__v2_printf+0x62e> + 4ff6: 0000 bkpt + 4ff8: 0000c319 .long 0x0000c319 + 4ffc: 0000c308 .long 0x0000c308 + 5000: 20000b20 .long 0x20000b20 + 5004: 3300 movi r3, 0 + 5006: 3400 movi r4, 0 + 5008: b863 st.w r3, (r14, 0xc) + 500a: b884 st.w r4, (r14, 0x10) + 500c: 1c1c addi r4, r14, 112 + 500e: 320f movi r2, 15 + 5010: 9803 ld.w r0, (r14, 0xc) + 5012: 982a ld.w r1, (r14, 0x28) + 5014: 6808 and r0, r2 + 5016: 6004 addu r0, r1 + 5018: 80a0 ld.b r5, (r0, 0x0) + 501a: 2c00 subi r4, 1 + 501c: 98e4 ld.w r7, (r14, 0x10) + 501e: a4a0 st.b r5, (r4, 0x0) + 5020: 98a4 ld.w r5, (r14, 0x10) + 5022: 9863 ld.w r3, (r14, 0xc) + 5024: 471c lsli r0, r7, 28 + 5026: 4de4 lsri r7, r5, 4 + 5028: 4b24 lsri r1, r3, 4 + 502a: b8e4 st.w r7, (r14, 0x10) + 502c: 6c04 or r0, r1 + 502e: 9864 ld.w r3, (r14, 0x10) + 5030: b803 st.w r0, (r14, 0xc) + 5032: 6c0c or r0, r3 + 5034: 3840 cmpnei r0, 0 + 5036: 0bed bt 0x5010 // 5010 <__v2_printf+0x58c> + 5038: 043d br 0x50b2 // 50b2 <__v2_printf+0x62e> + 503a: 3c40 cmpnei r4, 0 + 503c: 0808 bt 0x504c // 504c <__v2_printf+0x5c8> + 503e: 3301 movi r3, 1 + 5040: 68dc and r3, r7 + 5042: 3b40 cmpnei r3, 0 + 5044: 0c04 bf 0x504c // 504c <__v2_printf+0x5c8> + 5046: 1f1a addi r7, r14, 104 + 5048: 3430 movi r4, 48 + 504a: 07b9 br 0x4fbc // 4fbc <__v2_printf+0x538> + 504c: 1c1c addi r4, r14, 112 + 504e: 0432 br 0x50b2 // 50b2 <__v2_printf+0x62e> + 5050: 322b movi r2, 43 + 5052: 649a cmpne r6, r2 + 5054: 0802 bt 0x5058 // 5058 <__v2_printf+0x5d4> + 5056: 0614 br 0x4c7e // 4c7e <__v2_printf+0x1fa> + 5058: 1c12 addi r4, r14, 72 + 505a: 6c13 mov r0, r4 + 505c: e0000612 bsr 0x5c80 // 5c80 <__strlen_fast> + 5060: 6d83 mov r6, r0 + 5062: 06d7 br 0x4e10 // 4e10 <__v2_printf+0x38c> + 5064: 3840 cmpnei r0, 0 + 5066: b8e8 st.w r7, (r14, 0x20) + 5068: 0f3e bf 0x4ee4 // 4ee4 <__v2_printf+0x460> + 506a: 3c41 cmpnei r4, 1 + 506c: 0f9f bf 0x4faa // 4faa <__v2_printf+0x526> + 506e: 3c42 cmpnei r4, 2 + 5070: 0fce bf 0x500c // 500c <__v2_printf+0x588> + 5072: 1b1c addi r3, r14, 112 + 5074: 3707 movi r7, 7 + 5076: 9823 ld.w r1, (r14, 0xc) + 5078: 685c and r1, r7 + 507a: 212f addi r1, 48 + 507c: 9804 ld.w r0, (r14, 0x10) + 507e: 7484 zextb r2, r1 + 5080: 9823 ld.w r1, (r14, 0xc) + 5082: 40bd lsli r5, r0, 29 + 5084: 4903 lsri r0, r1, 3 + 5086: 9824 ld.w r1, (r14, 0x10) + 5088: 4923 lsri r1, r1, 3 + 508a: b824 st.w r1, (r14, 0x10) + 508c: 6d40 or r5, r0 + 508e: 9804 ld.w r0, (r14, 0x10) + 5090: b8a3 st.w r5, (r14, 0xc) + 5092: 6d40 or r5, r0 + 5094: 5b83 subi r4, r3, 1 + 5096: 3d40 cmpnei r5, 0 + 5098: a440 st.b r2, (r4, 0x0) + 509a: 0b86 bt 0x4fa6 // 4fa6 <__v2_printf+0x522> + 509c: 3701 movi r7, 1 + 509e: 9828 ld.w r1, (r14, 0x20) + 50a0: 69c4 and r7, r1 + 50a2: 3f40 cmpnei r7, 0 + 50a4: 0c07 bf 0x50b2 // 50b2 <__v2_printf+0x62e> + 50a6: 3530 movi r5, 48 + 50a8: 654a cmpne r2, r5 + 50aa: 0c04 bf 0x50b2 // 50b2 <__v2_printf+0x62e> + 50ac: 5b87 subi r4, r3, 2 + 50ae: 3330 movi r3, 48 + 50b0: a460 st.b r3, (r4, 0x0) + 50b2: 6d5b mov r5, r6 + 50b4: 1e1c addi r6, r14, 112 + 50b6: 6192 subu r6, r4 + 50b8: 98e8 ld.w r7, (r14, 0x20) + 50ba: 6595 cmplt r5, r6 + 50bc: b8a8 st.w r5, (r14, 0x20) + 50be: 0c02 bf 0x50c2 // 50c2 <__v2_printf+0x63e> + 50c0: b8c8 st.w r6, (r14, 0x20) + 50c2: 3037 movi r0, 55 + 50c4: 1b01 addi r3, r14, 4 + 50c6: 600c addu r0, r3 + 50c8: 8040 ld.b r2, (r0, 0x0) + 50ca: 3a40 cmpnei r2, 0 + 50cc: 0c04 bf 0x50d4 // 50d4 <__v2_printf+0x650> + 50ce: 9828 ld.w r1, (r14, 0x20) + 50d0: 2100 addi r1, 1 + 50d2: b828 st.w r1, (r14, 0x20) + 50d4: 3002 movi r0, 2 + 50d6: 681c and r0, r7 + 50d8: 3840 cmpnei r0, 0 + 50da: b80b st.w r0, (r14, 0x2c) + 50dc: 0c04 bf 0x50e4 // 50e4 <__v2_printf+0x660> + 50de: 9868 ld.w r3, (r14, 0x20) + 50e0: 2301 addi r3, 2 + 50e2: b868 st.w r3, (r14, 0x20) + 50e4: 3284 movi r2, 132 + 50e6: 689c and r2, r7 + 50e8: 3a40 cmpnei r2, 0 + 50ea: b84c st.w r2, (r14, 0x30) + 50ec: 080b bt 0x5102 // 5102 <__v2_printf+0x67e> + 50ee: 3310 movi r3, 16 + 50f0: 1a0c addi r2, r14, 48 + 50f2: 9827 ld.w r1, (r14, 0x1c) + 50f4: 9808 ld.w r0, (r14, 0x20) + 50f6: 60c8 addu r3, r2 + 50f8: 5901 subu r0, r1, r0 + 50fa: 6f4f mov r13, r3 + 50fc: 1129 lrw r1, 0xb438 // 51a0 <__v2_printf+0x71c> + 50fe: e3fffca9 bsr 0x4a50 // 4a50 + 5102: 3137 movi r1, 55 + 5104: 1801 addi r0, r14, 4 + 5106: 6040 addu r1, r0 + 5108: 8160 ld.b r3, (r1, 0x0) + 510a: 3b40 cmpnei r3, 0 + 510c: 0c0b bf 0x5122 // 5122 <__v2_printf+0x69e> + 510e: 9830 ld.w r1, (r14, 0x40) + 5110: 9101 ld.w r0, (r1, 0x4) + 5112: b802 st.w r0, (r14, 0x8) + 5114: 1b0c addi r3, r14, 48 + 5116: 300b movi r0, 11 + 5118: 9140 ld.w r2, (r1, 0x0) + 511a: 600c addu r0, r3 + 511c: 3101 movi r1, 1 + 511e: 9862 ld.w r3, (r14, 0x8) + 5120: 7bcd jsr r3 + 5122: 984b ld.w r2, (r14, 0x2c) + 5124: 3a40 cmpnei r2, 0 + 5126: 0c07 bf 0x5134 // 5134 <__v2_printf+0x6b0> + 5128: 9830 ld.w r1, (r14, 0x40) + 512a: 9140 ld.w r2, (r1, 0x0) + 512c: 9161 ld.w r3, (r1, 0x4) + 512e: 180f addi r0, r14, 60 + 5130: 3102 movi r1, 2 + 5132: 7bcd jsr r3 + 5134: 3080 movi r0, 128 + 5136: 984c ld.w r2, (r14, 0x30) + 5138: 640a cmpne r2, r0 + 513a: 080b bt 0x5150 // 5150 <__v2_printf+0x6cc> + 513c: 9827 ld.w r1, (r14, 0x1c) + 513e: 9868 ld.w r3, (r14, 0x20) + 5140: 590d subu r0, r1, r3 + 5142: 1a0c addi r2, r14, 48 + 5144: 3110 movi r1, 16 + 5146: 6048 addu r1, r2 + 5148: 6f47 mov r13, r1 + 514a: 1037 lrw r1, 0xb448 // 51a4 <__v2_printf+0x720> + 514c: e3fffc82 bsr 0x4a50 // 4a50 + 5150: 5d19 subu r0, r5, r6 + 5152: 1b0c addi r3, r14, 48 + 5154: 3510 movi r5, 16 + 5156: 614c addu r5, r3 + 5158: 6f57 mov r13, r5 + 515a: 6d77 mov r5, r13 + 515c: 1032 lrw r1, 0xb448 // 51a4 <__v2_printf+0x720> + 515e: e3fffc79 bsr 0x4a50 // 4a50 + 5162: 9500 ld.w r0, (r5, 0x0) + 5164: 9040 ld.w r2, (r0, 0x0) + 5166: 9061 ld.w r3, (r0, 0x4) + 5168: 6c13 mov r0, r4 + 516a: 3404 movi r4, 4 + 516c: 6c5b mov r1, r6 + 516e: 691c and r4, r7 + 5170: 7bcd jsr r3 + 5172: 3c40 cmpnei r4, 0 + 5174: 0c08 bf 0x5184 // 5184 <__v2_printf+0x700> + 5176: 9828 ld.w r1, (r14, 0x20) + 5178: 98c7 ld.w r6, (r14, 0x1c) + 517a: 5e05 subu r0, r6, r1 + 517c: 6f57 mov r13, r5 + 517e: 1029 lrw r1, 0xb438 // 51a0 <__v2_printf+0x71c> + 5180: e3fffc68 bsr 0x4a50 // 4a50 + 5184: 98a7 ld.w r5, (r14, 0x1c) + 5186: 9848 ld.w r2, (r14, 0x20) + 5188: 6495 cmplt r5, r2 + 518a: 0c02 bf 0x518e // 518e <__v2_printf+0x70a> + 518c: 6d4b mov r5, r2 + 518e: 9809 ld.w r0, (r14, 0x24) + 5190: 6014 addu r0, r5 + 5192: b809 st.w r0, (r14, 0x24) + 5194: 98a5 ld.w r5, (r14, 0x14) + 5196: e800fc84 br 0x4a9e // 4a9e <__v2_printf+0x1a> + 519a: 9809 ld.w r0, (r14, 0x24) + 519c: 141c addi r14, r14, 112 + 519e: 1494 pop r4-r7, r15 + 51a0: 0000b438 .long 0x0000b438 + 51a4: 0000b448 .long 0x0000b448 + +000051a8 <__udivdi3>: + 51a8: 14d4 push r4-r7, r15 + 51aa: 1426 subi r14, r14, 24 + 51ac: 6dc7 mov r7, r1 + 51ae: 3b40 cmpnei r3, 0 + 51b0: 6d03 mov r4, r0 + 51b2: 6c4f mov r1, r3 + 51b4: 6d8b mov r6, r2 + 51b6: b800 st.w r0, (r14, 0x0) + 51b8: 6d5f mov r5, r7 + 51ba: 085b bt 0x5270 // 5270 <__udivdi3+0xc8> + 51bc: 649c cmphs r7, r2 + 51be: 0874 bt 0x52a6 // 52a6 <__udivdi3+0xfe> + 51c0: 003d lrw r1, 0xffff // 5548 <__udivdi3+0x3a0> + 51c2: 6484 cmphs r1, r2 + 51c4: 0cdc bf 0x537c // 537c <__udivdi3+0x1d4> + 51c6: 31ff movi r1, 255 + 51c8: 6484 cmphs r1, r2 + 51ca: 0802 bt 0x51ce // 51ce <__udivdi3+0x26> + 51cc: 3308 movi r3, 8 + 51ce: 6c4b mov r1, r2 + 51d0: 704d lsr r1, r3 + 51d2: 0100 lrw r0, 0xb338 // 554c <__udivdi3+0x3a4> + 51d4: 6040 addu r1, r0 + 51d6: 8120 ld.b r1, (r1, 0x0) + 51d8: 60c4 addu r3, r1 + 51da: 3120 movi r1, 32 + 51dc: 604e subu r1, r3 + 51de: 3940 cmpnei r1, 0 + 51e0: 0c09 bf 0x51f2 // 51f2 <__udivdi3+0x4a> + 51e2: 6d53 mov r5, r4 + 51e4: 7084 lsl r2, r1 + 51e6: 71c4 lsl r7, r1 + 51e8: 714d lsr r5, r3 + 51ea: 7104 lsl r4, r1 + 51ec: 6d8b mov r6, r2 + 51ee: 6d5c or r5, r7 + 51f0: b880 st.w r4, (r14, 0x0) + 51f2: 4e90 lsri r4, r6, 16 + 51f4: 6c53 mov r1, r4 + 51f6: 6c17 mov r0, r5 + 51f8: e0001182 bsr 0x74fc // 74fc <__umodsi3> + 51fc: b801 st.w r0, (r14, 0x4) + 51fe: 6c53 mov r1, r4 + 5200: 6c17 mov r0, r5 + 5202: e0001159 bsr 0x74b4 // 74b4 <__udivsi3> + 5206: 75d9 zexth r7, r6 + 5208: 9861 ld.w r3, (r14, 0x4) + 520a: 9820 ld.w r1, (r14, 0x0) + 520c: 6c9f mov r2, r7 + 520e: 4370 lsli r3, r3, 16 + 5210: 4930 lsri r1, r1, 16 + 5212: 7c80 mult r2, r0 + 5214: 6cc4 or r3, r1 + 5216: 648c cmphs r3, r2 + 5218: 6d43 mov r5, r0 + 521a: 0808 bt 0x522a // 522a <__udivdi3+0x82> + 521c: 60d8 addu r3, r6 + 521e: 658c cmphs r3, r6 + 5220: 5823 subi r1, r0, 1 + 5222: 0c03 bf 0x5228 // 5228 <__udivdi3+0x80> + 5224: 648c cmphs r3, r2 + 5226: 0d8e bf 0x5542 // 5542 <__udivdi3+0x39a> + 5228: 6d47 mov r5, r1 + 522a: 60ca subu r3, r2 + 522c: 6c53 mov r1, r4 + 522e: 6c0f mov r0, r3 + 5230: b862 st.w r3, (r14, 0x8) + 5232: e0001165 bsr 0x74fc // 74fc <__umodsi3> + 5236: 9862 ld.w r3, (r14, 0x8) + 5238: b801 st.w r0, (r14, 0x4) + 523a: 6c53 mov r1, r4 + 523c: 6c0f mov r0, r3 + 523e: e000113b bsr 0x74b4 // 74b4 <__udivsi3> + 5242: 9841 ld.w r2, (r14, 0x4) + 5244: d86e1000 ld.h r3, (r14, 0x0) + 5248: 4250 lsli r2, r2, 16 + 524a: 74cd zexth r3, r3 + 524c: 7dc0 mult r7, r0 + 524e: 6c8c or r2, r3 + 5250: 65c8 cmphs r2, r7 + 5252: 6d03 mov r4, r0 + 5254: 0808 bt 0x5264 // 5264 <__udivdi3+0xbc> + 5256: 6098 addu r2, r6 + 5258: 6588 cmphs r2, r6 + 525a: 5863 subi r3, r0, 1 + 525c: 0d4d bf 0x54f6 // 54f6 <__udivdi3+0x34e> + 525e: 65c8 cmphs r2, r7 + 5260: 094b bt 0x54f6 // 54f6 <__udivdi3+0x34e> + 5262: 2c01 subi r4, 2 + 5264: 4510 lsli r0, r5, 16 + 5266: 3700 movi r7, 0 + 5268: 6c10 or r0, r4 + 526a: 6c5f mov r1, r7 + 526c: 1406 addi r14, r14, 24 + 526e: 1494 pop r4-r7, r15 + 5270: 64dc cmphs r7, r3 + 5272: 0c76 bf 0x535e // 535e <__udivdi3+0x1b6> + 5274: 026a lrw r3, 0xffff // 5548 <__udivdi3+0x3a0> + 5276: 644c cmphs r3, r1 + 5278: 0878 bt 0x5368 // 5368 <__udivdi3+0x1c0> + 527a: 0269 lrw r3, 0xffffff // 5550 <__udivdi3+0x3a8> + 527c: 644c cmphs r3, r1 + 527e: 0d48 bf 0x550e // 550e <__udivdi3+0x366> + 5280: 3610 movi r6, 16 + 5282: 6cc7 mov r3, r1 + 5284: 70d9 lsr r3, r6 + 5286: 020d lrw r0, 0xb338 // 554c <__udivdi3+0x3a4> + 5288: 60c0 addu r3, r0 + 528a: 8360 ld.b r3, (r3, 0x0) + 528c: 618c addu r6, r3 + 528e: 3020 movi r0, 32 + 5290: 5879 subu r3, r0, r6 + 5292: 3b40 cmpnei r3, 0 + 5294: b860 st.w r3, (r14, 0x0) + 5296: 0878 bt 0x5386 // 5386 <__udivdi3+0x1de> + 5298: 65c4 cmphs r1, r7 + 529a: 0d40 bf 0x551a // 551a <__udivdi3+0x372> + 529c: 6490 cmphs r4, r2 + 529e: 6c0f mov r0, r3 + 52a0: 600d addc r0, r3 + 52a2: 3700 movi r7, 0 + 52a4: 045f br 0x5362 // 5362 <__udivdi3+0x1ba> + 52a6: 3a40 cmpnei r2, 0 + 52a8: 0808 bt 0x52b8 // 52b8 <__udivdi3+0x110> + 52aa: 3100 movi r1, 0 + 52ac: 3001 movi r0, 1 + 52ae: b861 st.w r3, (r14, 0x4) + 52b0: e0001102 bsr 0x74b4 // 74b4 <__udivsi3> + 52b4: 6d83 mov r6, r0 + 52b6: 9861 ld.w r3, (r14, 0x4) + 52b8: 025b lrw r2, 0xffff // 5548 <__udivdi3+0x3a0> + 52ba: 6588 cmphs r2, r6 + 52bc: 085b bt 0x5372 // 5372 <__udivdi3+0x1ca> + 52be: 027a lrw r3, 0xffffff // 5550 <__udivdi3+0x3a8> + 52c0: 658c cmphs r3, r6 + 52c2: 0d28 bf 0x5512 // 5512 <__udivdi3+0x36a> + 52c4: 3310 movi r3, 16 + 52c6: 6c9b mov r2, r6 + 52c8: 023e lrw r1, 0xb338 // 554c <__udivdi3+0x3a4> + 52ca: 708d lsr r2, r3 + 52cc: 6084 addu r2, r1 + 52ce: 8240 ld.b r2, (r2, 0x0) + 52d0: 5a2c addu r1, r2, r3 + 52d2: 3220 movi r2, 32 + 52d4: 6086 subu r2, r1 + 52d6: 3a40 cmpnei r2, 0 + 52d8: 08c0 bt 0x5458 // 5458 <__udivdi3+0x2b0> + 52da: 74d9 zexth r3, r6 + 52dc: 5f99 subu r4, r7, r6 + 52de: 4eb0 lsri r5, r6, 16 + 52e0: b861 st.w r3, (r14, 0x4) + 52e2: 3701 movi r7, 1 + 52e4: 6c57 mov r1, r5 + 52e6: 6c13 mov r0, r4 + 52e8: e000110a bsr 0x74fc // 74fc <__umodsi3> + 52ec: b802 st.w r0, (r14, 0x8) + 52ee: 6c57 mov r1, r5 + 52f0: 6c13 mov r0, r4 + 52f2: e00010e1 bsr 0x74b4 // 74b4 <__udivsi3> + 52f6: 9862 ld.w r3, (r14, 0x8) + 52f8: 4330 lsli r1, r3, 16 + 52fa: 9860 ld.w r3, (r14, 0x0) + 52fc: 9841 ld.w r2, (r14, 0x4) + 52fe: 4b70 lsri r3, r3, 16 + 5300: 7c80 mult r2, r0 + 5302: 6cc4 or r3, r1 + 5304: 648c cmphs r3, r2 + 5306: 6d03 mov r4, r0 + 5308: 0808 bt 0x5318 // 5318 <__udivdi3+0x170> + 530a: 60d8 addu r3, r6 + 530c: 658c cmphs r3, r6 + 530e: 5823 subi r1, r0, 1 + 5310: 0c03 bf 0x5316 // 5316 <__udivdi3+0x16e> + 5312: 648c cmphs r3, r2 + 5314: 0d14 bf 0x553c // 553c <__udivdi3+0x394> + 5316: 6d07 mov r4, r1 + 5318: 60ca subu r3, r2 + 531a: 6c57 mov r1, r5 + 531c: 6c0f mov r0, r3 + 531e: b863 st.w r3, (r14, 0xc) + 5320: e00010ee bsr 0x74fc // 74fc <__umodsi3> + 5324: 9863 ld.w r3, (r14, 0xc) + 5326: 6c57 mov r1, r5 + 5328: b802 st.w r0, (r14, 0x8) + 532a: 6c0f mov r0, r3 + 532c: e00010c4 bsr 0x74b4 // 74b4 <__udivsi3> + 5330: 9842 ld.w r2, (r14, 0x8) + 5332: d86e1000 ld.h r3, (r14, 0x0) + 5336: 9821 ld.w r1, (r14, 0x4) + 5338: 4250 lsli r2, r2, 16 + 533a: 74cd zexth r3, r3 + 533c: 7c40 mult r1, r0 + 533e: 6cc8 or r3, r2 + 5340: 644c cmphs r3, r1 + 5342: 6d43 mov r5, r0 + 5344: 0808 bt 0x5354 // 5354 <__udivdi3+0x1ac> + 5346: 60d8 addu r3, r6 + 5348: 658c cmphs r3, r6 + 534a: 5843 subi r2, r0, 1 + 534c: 0cd3 bf 0x54f2 // 54f2 <__udivdi3+0x34a> + 534e: 644c cmphs r3, r1 + 5350: 08d1 bt 0x54f2 // 54f2 <__udivdi3+0x34a> + 5352: 2d01 subi r5, 2 + 5354: 4410 lsli r0, r4, 16 + 5356: 6c14 or r0, r5 + 5358: 6c5f mov r1, r7 + 535a: 1406 addi r14, r14, 24 + 535c: 1494 pop r4-r7, r15 + 535e: 3700 movi r7, 0 + 5360: 3000 movi r0, 0 + 5362: 6c5f mov r1, r7 + 5364: 1406 addi r14, r14, 24 + 5366: 1494 pop r4-r7, r15 + 5368: 33ff movi r3, 255 + 536a: 644c cmphs r3, r1 + 536c: 6583 mvcv r6 + 536e: 46c3 lsli r6, r6, 3 + 5370: 0789 br 0x5282 // 5282 <__udivdi3+0xda> + 5372: 32ff movi r2, 255 + 5374: 6588 cmphs r2, r6 + 5376: 0ba8 bt 0x52c6 // 52c6 <__udivdi3+0x11e> + 5378: 3308 movi r3, 8 + 537a: 07a6 br 0x52c6 // 52c6 <__udivdi3+0x11e> + 537c: 1375 lrw r3, 0xffffff // 5550 <__udivdi3+0x3a8> + 537e: 648c cmphs r3, r2 + 5380: 0ccb bf 0x5516 // 5516 <__udivdi3+0x36e> + 5382: 3310 movi r3, 16 + 5384: 0725 br 0x51ce // 51ce <__udivdi3+0x26> + 5386: 9800 ld.w r0, (r14, 0x0) + 5388: 6ccb mov r3, r2 + 538a: 6d4b mov r5, r2 + 538c: 7040 lsl r1, r0 + 538e: 7140 lsl r5, r0 + 5390: 70d9 lsr r3, r6 + 5392: 6cc4 or r3, r1 + 5394: b8a3 st.w r5, (r14, 0xc) + 5396: 6d53 mov r5, r4 + 5398: 6c4f mov r1, r3 + 539a: 7159 lsr r5, r6 + 539c: 6cdf mov r3, r7 + 539e: 71c0 lsl r7, r0 + 53a0: 6d5c or r5, r7 + 53a2: 70d9 lsr r3, r6 + 53a4: b8a1 st.w r5, (r14, 0x4) + 53a6: 49b0 lsri r5, r1, 16 + 53a8: b822 st.w r1, (r14, 0x8) + 53aa: 75c5 zexth r7, r1 + 53ac: 6c0f mov r0, r3 + 53ae: 6c57 mov r1, r5 + 53b0: b864 st.w r3, (r14, 0x10) + 53b2: e00010a5 bsr 0x74fc // 74fc <__umodsi3> + 53b6: 9864 ld.w r3, (r14, 0x10) + 53b8: 6d83 mov r6, r0 + 53ba: 6c57 mov r1, r5 + 53bc: 6c0f mov r0, r3 + 53be: e000107b bsr 0x74b4 // 74b4 <__udivsi3> + 53c2: 6c5f mov r1, r7 + 53c4: 7c40 mult r1, r0 + 53c6: 6c87 mov r2, r1 + 53c8: 4630 lsli r1, r6, 16 + 53ca: 98c1 ld.w r6, (r14, 0x4) + 53cc: 4ed0 lsri r6, r6, 16 + 53ce: 6d84 or r6, r1 + 53d0: 6498 cmphs r6, r2 + 53d2: 6cc3 mov r3, r0 + 53d4: 0807 bt 0x53e2 // 53e2 <__udivdi3+0x23a> + 53d6: 5823 subi r1, r0, 1 + 53d8: 9802 ld.w r0, (r14, 0x8) + 53da: 6180 addu r6, r0 + 53dc: 6418 cmphs r6, r0 + 53de: 08a6 bt 0x552a // 552a <__udivdi3+0x382> + 53e0: 6cc7 mov r3, r1 + 53e2: 618a subu r6, r2 + 53e4: 6c57 mov r1, r5 + 53e6: 6c1b mov r0, r6 + 53e8: b865 st.w r3, (r14, 0x14) + 53ea: e0001089 bsr 0x74fc // 74fc <__umodsi3> + 53ee: b804 st.w r0, (r14, 0x10) + 53f0: 6c57 mov r1, r5 + 53f2: 6c1b mov r0, r6 + 53f4: e0001060 bsr 0x74b4 // 74b4 <__udivsi3> + 53f8: 9864 ld.w r3, (r14, 0x10) + 53fa: 6c9f mov r2, r7 + 53fc: 43f0 lsli r7, r3, 16 + 53fe: d86e1002 ld.h r3, (r14, 0x4) + 5402: 744d zexth r1, r3 + 5404: 7c80 mult r2, r0 + 5406: 6dc4 or r7, r1 + 5408: 649c cmphs r7, r2 + 540a: 9865 ld.w r3, (r14, 0x14) + 540c: 0807 bt 0x541a // 541a <__udivdi3+0x272> + 540e: 98a2 ld.w r5, (r14, 0x8) + 5410: 61d4 addu r7, r5 + 5412: 655c cmphs r7, r5 + 5414: 5823 subi r1, r0, 1 + 5416: 0885 bt 0x5520 // 5520 <__udivdi3+0x378> + 5418: 6c07 mov r0, r1 + 541a: 4370 lsli r3, r3, 16 + 541c: 6c0c or r0, r3 + 541e: 74c1 zexth r3, r0 + 5420: 61ca subu r7, r2 + 5422: 9843 ld.w r2, (r14, 0xc) + 5424: 7549 zexth r5, r2 + 5426: 4830 lsri r1, r0, 16 + 5428: 4a50 lsri r2, r2, 16 + 542a: 6d8f mov r6, r3 + 542c: 7d94 mult r6, r5 + 542e: 7cc8 mult r3, r2 + 5430: 7d44 mult r5, r1 + 5432: 60d4 addu r3, r5 + 5434: 7c48 mult r1, r2 + 5436: 4e50 lsri r2, r6, 16 + 5438: 60c8 addu r3, r2 + 543a: 654c cmphs r3, r5 + 543c: 0804 bt 0x5444 // 5444 <__udivdi3+0x29c> + 543e: 3280 movi r2, 128 + 5440: 4249 lsli r2, r2, 9 + 5442: 6048 addu r1, r2 + 5444: 4b50 lsri r2, r3, 16 + 5446: 6048 addu r1, r2 + 5448: 645c cmphs r7, r1 + 544a: 0c5f bf 0x5508 // 5508 <__udivdi3+0x360> + 544c: 645e cmpne r7, r1 + 544e: 0c56 bf 0x54fa // 54fa <__udivdi3+0x352> + 5450: 3700 movi r7, 0 + 5452: 6c5f mov r1, r7 + 5454: 1406 addi r14, r14, 24 + 5456: 1494 pop r4-r7, r15 + 5458: 6d53 mov r5, r4 + 545a: 6cdf mov r3, r7 + 545c: 7145 lsr r5, r1 + 545e: 71c8 lsl r7, r2 + 5460: 7188 lsl r6, r2 + 5462: 6d5c or r5, r7 + 5464: 70c5 lsr r3, r1 + 5466: 6dd7 mov r7, r5 + 5468: b8a3 st.w r5, (r14, 0xc) + 546a: 4eb0 lsri r5, r6, 16 + 546c: 7108 lsl r4, r2 + 546e: 6c57 mov r1, r5 + 5470: 7499 zexth r2, r6 + 5472: 6c0f mov r0, r3 + 5474: b841 st.w r2, (r14, 0x4) + 5476: b880 st.w r4, (r14, 0x0) + 5478: b862 st.w r3, (r14, 0x8) + 547a: e0001041 bsr 0x74fc // 74fc <__umodsi3> + 547e: 9862 ld.w r3, (r14, 0x8) + 5480: 6d03 mov r4, r0 + 5482: 6c57 mov r1, r5 + 5484: 6c0f mov r0, r3 + 5486: e0001017 bsr 0x74b4 // 74b4 <__udivsi3> + 548a: 6cc3 mov r3, r0 + 548c: 7499 zexth r2, r6 + 548e: 7cc8 mult r3, r2 + 5490: 4450 lsli r2, r4, 16 + 5492: 4f90 lsri r4, r7, 16 + 5494: 6d08 or r4, r2 + 5496: 64d0 cmphs r4, r3 + 5498: 6c43 mov r1, r0 + 549a: b802 st.w r0, (r14, 0x8) + 549c: 080b bt 0x54b2 // 54b2 <__udivdi3+0x30a> + 549e: 6118 addu r4, r6 + 54a0: 6c87 mov r2, r1 + 54a2: 6590 cmphs r4, r6 + 54a4: 2a00 subi r2, 1 + 54a6: 0c49 bf 0x5538 // 5538 <__udivdi3+0x390> + 54a8: 64d0 cmphs r4, r3 + 54aa: 0847 bt 0x5538 // 5538 <__udivdi3+0x390> + 54ac: 2a00 subi r2, 1 + 54ae: b842 st.w r2, (r14, 0x8) + 54b0: 6118 addu r4, r6 + 54b2: 610e subu r4, r3 + 54b4: 6c57 mov r1, r5 + 54b6: 6c13 mov r0, r4 + 54b8: e0001022 bsr 0x74fc // 74fc <__umodsi3> + 54bc: 6dc3 mov r7, r0 + 54be: 6c57 mov r1, r5 + 54c0: 6c13 mov r0, r4 + 54c2: e0000ff9 bsr 0x74b4 // 74b4 <__udivsi3> + 54c6: d84e1006 ld.h r2, (r14, 0xc) + 54ca: 74d9 zexth r3, r6 + 54cc: 47f0 lsli r7, r7, 16 + 54ce: 7509 zexth r4, r2 + 54d0: 7cc0 mult r3, r0 + 54d2: 6dd0 or r7, r4 + 54d4: 64dc cmphs r7, r3 + 54d6: 0809 bt 0x54e8 // 54e8 <__udivdi3+0x340> + 54d8: 61d8 addu r7, r6 + 54da: 659c cmphs r7, r6 + 54dc: 5843 subi r2, r0, 1 + 54de: 0c2b bf 0x5534 // 5534 <__udivdi3+0x38c> + 54e0: 64dc cmphs r7, r3 + 54e2: 0829 bt 0x5534 // 5534 <__udivdi3+0x38c> + 54e4: 2801 subi r0, 2 + 54e6: 61d8 addu r7, r6 + 54e8: 5f8d subu r4, r7, r3 + 54ea: 9862 ld.w r3, (r14, 0x8) + 54ec: 43f0 lsli r7, r3, 16 + 54ee: 6dc0 or r7, r0 + 54f0: 06fa br 0x52e4 // 52e4 <__udivdi3+0x13c> + 54f2: 6d4b mov r5, r2 + 54f4: 0730 br 0x5354 // 5354 <__udivdi3+0x1ac> + 54f6: 6d0f mov r4, r3 + 54f8: 06b6 br 0x5264 // 5264 <__udivdi3+0xbc> + 54fa: 9840 ld.w r2, (r14, 0x0) + 54fc: 4370 lsli r3, r3, 16 + 54fe: 7599 zexth r6, r6 + 5500: 7108 lsl r4, r2 + 5502: 60d8 addu r3, r6 + 5504: 64d0 cmphs r4, r3 + 5506: 0ba5 bt 0x5450 // 5450 <__udivdi3+0x2a8> + 5508: 2800 subi r0, 1 + 550a: 3700 movi r7, 0 + 550c: 07a3 br 0x5452 // 5452 <__udivdi3+0x2aa> + 550e: 3618 movi r6, 24 + 5510: 06b9 br 0x5282 // 5282 <__udivdi3+0xda> + 5512: 3318 movi r3, 24 + 5514: 06d9 br 0x52c6 // 52c6 <__udivdi3+0x11e> + 5516: 3318 movi r3, 24 + 5518: 065b br 0x51ce // 51ce <__udivdi3+0x26> + 551a: 3700 movi r7, 0 + 551c: 3001 movi r0, 1 + 551e: 0722 br 0x5362 // 5362 <__udivdi3+0x1ba> + 5520: 649c cmphs r7, r2 + 5522: 0b7b bt 0x5418 // 5418 <__udivdi3+0x270> + 5524: 2801 subi r0, 2 + 5526: 61d4 addu r7, r5 + 5528: 0779 br 0x541a // 541a <__udivdi3+0x272> + 552a: 6498 cmphs r6, r2 + 552c: 0b5a bt 0x53e0 // 53e0 <__udivdi3+0x238> + 552e: 2b01 subi r3, 2 + 5530: 6180 addu r6, r0 + 5532: 0758 br 0x53e2 // 53e2 <__udivdi3+0x23a> + 5534: 6c0b mov r0, r2 + 5536: 07d9 br 0x54e8 // 54e8 <__udivdi3+0x340> + 5538: b842 st.w r2, (r14, 0x8) + 553a: 07bc br 0x54b2 // 54b2 <__udivdi3+0x30a> + 553c: 2c01 subi r4, 2 + 553e: 60d8 addu r3, r6 + 5540: 06ec br 0x5318 // 5318 <__udivdi3+0x170> + 5542: 2d01 subi r5, 2 + 5544: 60d8 addu r3, r6 + 5546: 0672 br 0x522a // 522a <__udivdi3+0x82> + 5548: 0000ffff .long 0x0000ffff + 554c: 0000b338 .long 0x0000b338 + 5550: 00ffffff .long 0x00ffffff + +00005554 <__umoddi3>: + 5554: 14d4 push r4-r7, r15 + 5556: 1427 subi r14, r14, 28 + 5558: 6d07 mov r4, r1 + 555a: 6c4f mov r1, r3 + 555c: 6d43 mov r5, r0 + 555e: 3940 cmpnei r1, 0 + 5560: 6dcf mov r7, r3 + 5562: 6c0b mov r0, r2 + 5564: b8a0 st.w r5, (r14, 0x0) + 5566: 6cd3 mov r3, r4 + 5568: 085a bt 0x561c // 561c <__umoddi3+0xc8> + 556a: 6490 cmphs r4, r2 + 556c: 0877 bt 0x565a // 565a <__umoddi3+0x106> + 556e: 0120 lrw r1, 0xffff // 58e8 <__umoddi3+0x394> + 5570: 6484 cmphs r1, r2 + 5572: 0cd2 bf 0x5716 // 5716 <__umoddi3+0x1c2> + 5574: 31ff movi r1, 255 + 5576: 6484 cmphs r1, r2 + 5578: 0802 bt 0x557c // 557c <__umoddi3+0x28> + 557a: 3708 movi r7, 8 + 557c: 6c43 mov r1, r0 + 557e: 705d lsr r1, r7 + 5580: 01c4 lrw r6, 0xb338 // 58ec <__umoddi3+0x398> + 5582: 6058 addu r1, r6 + 5584: 8120 ld.b r1, (r1, 0x0) + 5586: 61c4 addu r7, r1 + 5588: 3120 movi r1, 32 + 558a: 605e subu r1, r7 + 558c: 3940 cmpnei r1, 0 + 558e: b821 st.w r1, (r14, 0x4) + 5590: 0c09 bf 0x55a2 // 55a2 <__umoddi3+0x4e> + 5592: 6cd7 mov r3, r5 + 5594: 6c83 mov r2, r0 + 5596: 7104 lsl r4, r1 + 5598: 70dd lsr r3, r7 + 559a: 7144 lsl r5, r1 + 559c: 7084 lsl r2, r1 + 559e: 6cd0 or r3, r4 + 55a0: b8a0 st.w r5, (r14, 0x0) + 55a2: 4a90 lsri r4, r2, 16 + 55a4: 6c53 mov r1, r4 + 55a6: 6c0f mov r0, r3 + 55a8: 75c9 zexth r7, r2 + 55aa: b843 st.w r2, (r14, 0xc) + 55ac: b862 st.w r3, (r14, 0x8) + 55ae: e0000fa7 bsr 0x74fc // 74fc <__umodsi3> + 55b2: 9862 ld.w r3, (r14, 0x8) + 55b4: 6d43 mov r5, r0 + 55b6: 6c53 mov r1, r4 + 55b8: 6c0f mov r0, r3 + 55ba: e0000f7d bsr 0x74b4 // 74b4 <__udivsi3> + 55be: 9840 ld.w r2, (r14, 0x0) + 55c0: 4570 lsli r3, r5, 16 + 55c2: 4ab0 lsri r5, r2, 16 + 55c4: 7c1c mult r0, r7 + 55c6: 6cd4 or r3, r5 + 55c8: 640c cmphs r3, r0 + 55ca: 9843 ld.w r2, (r14, 0xc) + 55cc: 0806 bt 0x55d8 // 55d8 <__umoddi3+0x84> + 55ce: 60c8 addu r3, r2 + 55d0: 648c cmphs r3, r2 + 55d2: 0c03 bf 0x55d8 // 55d8 <__umoddi3+0x84> + 55d4: 640c cmphs r3, r0 + 55d6: 0d7d bf 0x58d0 // 58d0 <__umoddi3+0x37c> + 55d8: 60c2 subu r3, r0 + 55da: 6c53 mov r1, r4 + 55dc: 6c0f mov r0, r3 + 55de: b843 st.w r2, (r14, 0xc) + 55e0: b862 st.w r3, (r14, 0x8) + 55e2: e0000f8d bsr 0x74fc // 74fc <__umodsi3> + 55e6: 9862 ld.w r3, (r14, 0x8) + 55e8: 6d43 mov r5, r0 + 55ea: 6c53 mov r1, r4 + 55ec: 6c0f mov r0, r3 + 55ee: e0000f63 bsr 0x74b4 // 74b4 <__udivsi3> + 55f2: d86e1000 ld.h r3, (r14, 0x0) + 55f6: 7dc0 mult r7, r0 + 55f8: 45b0 lsli r5, r5, 16 + 55fa: 740d zexth r0, r3 + 55fc: 6d40 or r5, r0 + 55fe: 65d4 cmphs r5, r7 + 5600: 0807 bt 0x560e // 560e <__umoddi3+0xba> + 5602: 9843 ld.w r2, (r14, 0xc) + 5604: 6148 addu r5, r2 + 5606: 6494 cmphs r5, r2 + 5608: 0c03 bf 0x560e // 560e <__umoddi3+0xba> + 560a: 65d4 cmphs r5, r7 + 560c: 0d5e bf 0x58c8 // 58c8 <__umoddi3+0x374> + 560e: 615e subu r5, r7 + 5610: 6c17 mov r0, r5 + 5612: 9861 ld.w r3, (r14, 0x4) + 5614: 700d lsr r0, r3 + 5616: 3100 movi r1, 0 + 5618: 1407 addi r14, r14, 28 + 561a: 1494 pop r4-r7, r15 + 561c: 6450 cmphs r4, r1 + 561e: 0c6e bf 0x56fa // 56fa <__umoddi3+0x1a6> + 5620: 024d lrw r2, 0xffff // 58e8 <__umoddi3+0x394> + 5622: 6448 cmphs r2, r1 + 5624: 086f bt 0x5702 // 5702 <__umoddi3+0x1ae> + 5626: 024c lrw r2, 0xffffff // 58f0 <__umoddi3+0x39c> + 5628: 6448 cmphs r2, r1 + 562a: 0d3f bf 0x58a8 // 58a8 <__umoddi3+0x354> + 562c: 3610 movi r6, 16 + 562e: 6c87 mov r2, r1 + 5630: 7099 lsr r2, r6 + 5632: 02f0 lrw r7, 0xb338 // 58ec <__umoddi3+0x398> + 5634: 609c addu r2, r7 + 5636: 8240 ld.b r2, (r2, 0x0) + 5638: 6188 addu r6, r2 + 563a: 3720 movi r7, 32 + 563c: 61da subu r7, r6 + 563e: 3f40 cmpnei r7, 0 + 5640: 0870 bt 0x5720 // 5720 <__umoddi3+0x1cc> + 5642: 6504 cmphs r1, r4 + 5644: 0c03 bf 0x564a // 564a <__umoddi3+0xf6> + 5646: 6414 cmphs r5, r0 + 5648: 0d46 bf 0x58d4 // 58d4 <__umoddi3+0x380> + 564a: 5d01 subu r0, r5, r0 + 564c: 6414 cmphs r5, r0 + 564e: 6106 subu r4, r1 + 5650: 6483 mvcv r2 + 5652: 5c69 subu r3, r4, r2 + 5654: 6c4f mov r1, r3 + 5656: 1407 addi r14, r14, 28 + 5658: 1494 pop r4-r7, r15 + 565a: 3a40 cmpnei r2, 0 + 565c: 0806 bt 0x5668 // 5668 <__umoddi3+0x114> + 565e: 3100 movi r1, 0 + 5660: 3001 movi r0, 1 + 5662: e0000f29 bsr 0x74b4 // 74b4 <__udivsi3> + 5666: 6c83 mov r2, r0 + 5668: 027f lrw r3, 0xffff // 58e8 <__umoddi3+0x394> + 566a: 648c cmphs r3, r2 + 566c: 0850 bt 0x570c // 570c <__umoddi3+0x1b8> + 566e: 027e lrw r3, 0xffffff // 58f0 <__umoddi3+0x39c> + 5670: 648c cmphs r3, r2 + 5672: 0d1d bf 0x58ac // 58ac <__umoddi3+0x358> + 5674: 3710 movi r7, 16 + 5676: 6ccb mov r3, r2 + 5678: 70dd lsr r3, r7 + 567a: 0322 lrw r1, 0xb338 // 58ec <__umoddi3+0x398> + 567c: 60c4 addu r3, r1 + 567e: 8360 ld.b r3, (r3, 0x0) + 5680: 61cc addu r7, r3 + 5682: 3320 movi r3, 32 + 5684: 60de subu r3, r7 + 5686: 3b40 cmpnei r3, 0 + 5688: b861 st.w r3, (r14, 0x4) + 568a: 08c2 bt 0x580e // 580e <__umoddi3+0x2ba> + 568c: 74c9 zexth r3, r2 + 568e: 610a subu r4, r2 + 5690: 4af0 lsri r7, r2, 16 + 5692: 6d8f mov r6, r3 + 5694: 6c5f mov r1, r7 + 5696: 6c13 mov r0, r4 + 5698: b842 st.w r2, (r14, 0x8) + 569a: e0000f31 bsr 0x74fc // 74fc <__umodsi3> + 569e: 6d43 mov r5, r0 + 56a0: 6c5f mov r1, r7 + 56a2: 6c13 mov r0, r4 + 56a4: e0000f08 bsr 0x74b4 // 74b4 <__udivsi3> + 56a8: 9860 ld.w r3, (r14, 0x0) + 56aa: 4590 lsli r4, r5, 16 + 56ac: 4bb0 lsri r5, r3, 16 + 56ae: 7c18 mult r0, r6 + 56b0: 6d14 or r4, r5 + 56b2: 6410 cmphs r4, r0 + 56b4: 9842 ld.w r2, (r14, 0x8) + 56b6: 0806 bt 0x56c2 // 56c2 <__umoddi3+0x16e> + 56b8: 6108 addu r4, r2 + 56ba: 6490 cmphs r4, r2 + 56bc: 0c03 bf 0x56c2 // 56c2 <__umoddi3+0x16e> + 56be: 6410 cmphs r4, r0 + 56c0: 0d06 bf 0x58cc // 58cc <__umoddi3+0x378> + 56c2: 6102 subu r4, r0 + 56c4: 6c5f mov r1, r7 + 56c6: 6c13 mov r0, r4 + 56c8: b842 st.w r2, (r14, 0x8) + 56ca: e0000f19 bsr 0x74fc // 74fc <__umodsi3> + 56ce: 6d43 mov r5, r0 + 56d0: 6c5f mov r1, r7 + 56d2: 6c13 mov r0, r4 + 56d4: e0000ef0 bsr 0x74b4 // 74b4 <__udivsi3> + 56d8: d86e1000 ld.h r3, (r14, 0x0) + 56dc: 7c18 mult r0, r6 + 56de: 45b0 lsli r5, r5, 16 + 56e0: 758d zexth r6, r3 + 56e2: 6d58 or r5, r6 + 56e4: 6414 cmphs r5, r0 + 56e6: 0808 bt 0x56f6 // 56f6 <__umoddi3+0x1a2> + 56e8: 9842 ld.w r2, (r14, 0x8) + 56ea: 6148 addu r5, r2 + 56ec: 6494 cmphs r5, r2 + 56ee: 0c04 bf 0x56f6 // 56f6 <__umoddi3+0x1a2> + 56f0: 6414 cmphs r5, r0 + 56f2: 0802 bt 0x56f6 // 56f6 <__umoddi3+0x1a2> + 56f4: 6148 addu r5, r2 + 56f6: 6142 subu r5, r0 + 56f8: 078c br 0x5610 // 5610 <__umoddi3+0xbc> + 56fa: 6c17 mov r0, r5 + 56fc: 6c53 mov r1, r4 + 56fe: 1407 addi r14, r14, 28 + 5700: 1494 pop r4-r7, r15 + 5702: 32ff movi r2, 255 + 5704: 6448 cmphs r2, r1 + 5706: 6583 mvcv r6 + 5708: 46c3 lsli r6, r6, 3 + 570a: 0792 br 0x562e // 562e <__umoddi3+0xda> + 570c: 33ff movi r3, 255 + 570e: 648c cmphs r3, r2 + 5710: 0bb3 bt 0x5676 // 5676 <__umoddi3+0x122> + 5712: 3708 movi r7, 8 + 5714: 07b1 br 0x5676 // 5676 <__umoddi3+0x122> + 5716: 1337 lrw r1, 0xffffff // 58f0 <__umoddi3+0x39c> + 5718: 6484 cmphs r1, r2 + 571a: 0ccb bf 0x58b0 // 58b0 <__umoddi3+0x35c> + 571c: 3710 movi r7, 16 + 571e: 072f br 0x557c // 557c <__umoddi3+0x28> + 5720: 6cc3 mov r3, r0 + 5722: 705c lsl r1, r7 + 5724: 70d9 lsr r3, r6 + 5726: 6cc4 or r3, r1 + 5728: 6c57 mov r1, r5 + 572a: 6c93 mov r2, r4 + 572c: 7059 lsr r1, r6 + 572e: 711c lsl r4, r7 + 5730: 7099 lsr r2, r6 + 5732: 6c50 or r1, r4 + 5734: 701c lsl r0, r7 + 5736: 4b90 lsri r4, r3, 16 + 5738: 715c lsl r5, r7 + 573a: b803 st.w r0, (r14, 0xc) + 573c: b820 st.w r1, (r14, 0x0) + 573e: b8a4 st.w r5, (r14, 0x10) + 5740: 6c53 mov r1, r4 + 5742: 754d zexth r5, r3 + 5744: 6c0b mov r0, r2 + 5746: b862 st.w r3, (r14, 0x8) + 5748: b8a1 st.w r5, (r14, 0x4) + 574a: b846 st.w r2, (r14, 0x18) + 574c: e0000ed8 bsr 0x74fc // 74fc <__umodsi3> + 5750: 9846 ld.w r2, (r14, 0x18) + 5752: b805 st.w r0, (r14, 0x14) + 5754: 6c53 mov r1, r4 + 5756: 6c0b mov r0, r2 + 5758: e0000eae bsr 0x74b4 // 74b4 <__udivsi3> + 575c: 9841 ld.w r2, (r14, 0x4) + 575e: 7c80 mult r2, r0 + 5760: 9865 ld.w r3, (r14, 0x14) + 5762: 6d43 mov r5, r0 + 5764: 9800 ld.w r0, (r14, 0x0) + 5766: 4330 lsli r1, r3, 16 + 5768: 4870 lsri r3, r0, 16 + 576a: 6cc4 or r3, r1 + 576c: 648c cmphs r3, r2 + 576e: 0807 bt 0x577c // 577c <__umoddi3+0x228> + 5770: 9802 ld.w r0, (r14, 0x8) + 5772: 60c0 addu r3, r0 + 5774: 640c cmphs r3, r0 + 5776: 5d23 subi r1, r5, 1 + 5778: 08a3 bt 0x58be // 58be <__umoddi3+0x36a> + 577a: 6d47 mov r5, r1 + 577c: 60ca subu r3, r2 + 577e: 6c53 mov r1, r4 + 5780: 6c0f mov r0, r3 + 5782: b866 st.w r3, (r14, 0x18) + 5784: e0000ebc bsr 0x74fc // 74fc <__umodsi3> + 5788: 9866 ld.w r3, (r14, 0x18) + 578a: 6c53 mov r1, r4 + 578c: b805 st.w r0, (r14, 0x14) + 578e: 6c0f mov r0, r3 + 5790: e0000e92 bsr 0x74b4 // 74b4 <__udivsi3> + 5794: 9845 ld.w r2, (r14, 0x14) + 5796: d86e1000 ld.h r3, (r14, 0x0) + 579a: 9821 ld.w r1, (r14, 0x4) + 579c: 4250 lsli r2, r2, 16 + 579e: 750d zexth r4, r3 + 57a0: 7c40 mult r1, r0 + 57a2: 6c90 or r2, r4 + 57a4: 6448 cmphs r2, r1 + 57a6: 0807 bt 0x57b4 // 57b4 <__umoddi3+0x260> + 57a8: 9882 ld.w r4, (r14, 0x8) + 57aa: 6090 addu r2, r4 + 57ac: 6508 cmphs r2, r4 + 57ae: 5863 subi r3, r0, 1 + 57b0: 0882 bt 0x58b4 // 58b4 <__umoddi3+0x360> + 57b2: 6c0f mov r0, r3 + 57b4: 45b0 lsli r5, r5, 16 + 57b6: 6d40 or r5, r0 + 57b8: 74d5 zexth r3, r5 + 57ba: 9803 ld.w r0, (r14, 0xc) + 57bc: 4db0 lsri r5, r5, 16 + 57be: 6d0f mov r4, r3 + 57c0: 6086 subu r2, r1 + 57c2: 7441 zexth r1, r0 + 57c4: 4810 lsri r0, r0, 16 + 57c6: 7d04 mult r4, r1 + 57c8: 7cc0 mult r3, r0 + 57ca: 7c54 mult r1, r5 + 57cc: 60c4 addu r3, r1 + 57ce: 7d40 mult r5, r0 + 57d0: 4c10 lsri r0, r4, 16 + 57d2: 60c0 addu r3, r0 + 57d4: 644c cmphs r3, r1 + 57d6: 0804 bt 0x57de // 57de <__umoddi3+0x28a> + 57d8: 3180 movi r1, 128 + 57da: 4129 lsli r1, r1, 9 + 57dc: 6144 addu r5, r1 + 57de: 4b30 lsri r1, r3, 16 + 57e0: 6144 addu r5, r1 + 57e2: 4370 lsli r3, r3, 16 + 57e4: 7511 zexth r4, r4 + 57e6: 6548 cmphs r2, r5 + 57e8: 60d0 addu r3, r4 + 57ea: 0c56 bf 0x5896 // 5896 <__umoddi3+0x342> + 57ec: 654a cmpne r2, r5 + 57ee: 0c76 bf 0x58da // 58da <__umoddi3+0x386> + 57f0: 5a35 subu r1, r2, r5 + 57f2: 6c0f mov r0, r3 + 57f4: 9864 ld.w r3, (r14, 0x10) + 57f6: 5b01 subu r0, r3, r0 + 57f8: 640c cmphs r3, r0 + 57fa: 64c3 mvcv r3 + 57fc: 598d subu r4, r1, r3 + 57fe: 6d53 mov r5, r4 + 5800: 7158 lsl r5, r6 + 5802: 701d lsr r0, r7 + 5804: 6c53 mov r1, r4 + 5806: 6c14 or r0, r5 + 5808: 705d lsr r1, r7 + 580a: 1407 addi r14, r14, 28 + 580c: 1494 pop r4-r7, r15 + 580e: 9801 ld.w r0, (r14, 0x4) + 5810: 6c57 mov r1, r5 + 5812: 6cd3 mov r3, r4 + 5814: 705d lsr r1, r7 + 5816: 7100 lsl r4, r0 + 5818: 7080 lsl r2, r0 + 581a: 6c50 or r1, r4 + 581c: 70dd lsr r3, r7 + 581e: 6d07 mov r4, r1 + 5820: 4af0 lsri r7, r2, 16 + 5822: b822 st.w r1, (r14, 0x8) + 5824: 7449 zexth r1, r2 + 5826: 7140 lsl r5, r0 + 5828: 6d87 mov r6, r1 + 582a: 6c0f mov r0, r3 + 582c: 6c5f mov r1, r7 + 582e: b844 st.w r2, (r14, 0x10) + 5830: b8a0 st.w r5, (r14, 0x0) + 5832: b863 st.w r3, (r14, 0xc) + 5834: e0000e64 bsr 0x74fc // 74fc <__umodsi3> + 5838: 9863 ld.w r3, (r14, 0xc) + 583a: 6d43 mov r5, r0 + 583c: 6c5f mov r1, r7 + 583e: 6c0f mov r0, r3 + 5840: e0000e3a bsr 0x74b4 // 74b4 <__udivsi3> + 5844: 45b0 lsli r5, r5, 16 + 5846: 4c70 lsri r3, r4, 16 + 5848: 7c18 mult r0, r6 + 584a: 6d4c or r5, r3 + 584c: 6414 cmphs r5, r0 + 584e: 9844 ld.w r2, (r14, 0x10) + 5850: 0807 bt 0x585e // 585e <__umoddi3+0x30a> + 5852: 6148 addu r5, r2 + 5854: 6494 cmphs r5, r2 + 5856: 0c04 bf 0x585e // 585e <__umoddi3+0x30a> + 5858: 6414 cmphs r5, r0 + 585a: 0802 bt 0x585e // 585e <__umoddi3+0x30a> + 585c: 6148 addu r5, r2 + 585e: 6142 subu r5, r0 + 5860: 6c5f mov r1, r7 + 5862: 6c17 mov r0, r5 + 5864: b843 st.w r2, (r14, 0xc) + 5866: e0000e4b bsr 0x74fc // 74fc <__umodsi3> + 586a: 6d03 mov r4, r0 + 586c: 6c5f mov r1, r7 + 586e: 6c17 mov r0, r5 + 5870: e0000e22 bsr 0x74b4 // 74b4 <__udivsi3> + 5874: d86e1004 ld.h r3, (r14, 0x8) + 5878: 4490 lsli r4, r4, 16 + 587a: 744d zexth r1, r3 + 587c: 7c18 mult r0, r6 + 587e: 6d04 or r4, r1 + 5880: 6410 cmphs r4, r0 + 5882: 9843 ld.w r2, (r14, 0xc) + 5884: 0807 bt 0x5892 // 5892 <__umoddi3+0x33e> + 5886: 6108 addu r4, r2 + 5888: 6490 cmphs r4, r2 + 588a: 0c04 bf 0x5892 // 5892 <__umoddi3+0x33e> + 588c: 6410 cmphs r4, r0 + 588e: 0802 bt 0x5892 // 5892 <__umoddi3+0x33e> + 5890: 6108 addu r4, r2 + 5892: 6102 subu r4, r0 + 5894: 0700 br 0x5694 // 5694 <__umoddi3+0x140> + 5896: 9823 ld.w r1, (r14, 0xc) + 5898: 5b05 subu r0, r3, r1 + 589a: 640c cmphs r3, r0 + 589c: 9822 ld.w r1, (r14, 0x8) + 589e: 6146 subu r5, r1 + 58a0: 64c3 mvcv r3 + 58a2: 614e subu r5, r3 + 58a4: 5a35 subu r1, r2, r5 + 58a6: 07a7 br 0x57f4 // 57f4 <__umoddi3+0x2a0> + 58a8: 3618 movi r6, 24 + 58aa: 06c2 br 0x562e // 562e <__umoddi3+0xda> + 58ac: 3718 movi r7, 24 + 58ae: 06e4 br 0x5676 // 5676 <__umoddi3+0x122> + 58b0: 3718 movi r7, 24 + 58b2: 0665 br 0x557c // 557c <__umoddi3+0x28> + 58b4: 6448 cmphs r2, r1 + 58b6: 0b7e bt 0x57b2 // 57b2 <__umoddi3+0x25e> + 58b8: 2801 subi r0, 2 + 58ba: 6090 addu r2, r4 + 58bc: 077c br 0x57b4 // 57b4 <__umoddi3+0x260> + 58be: 648c cmphs r3, r2 + 58c0: 0b5d bt 0x577a // 577a <__umoddi3+0x226> + 58c2: 2d01 subi r5, 2 + 58c4: 60c0 addu r3, r0 + 58c6: 075b br 0x577c // 577c <__umoddi3+0x228> + 58c8: 6148 addu r5, r2 + 58ca: 06a2 br 0x560e // 560e <__umoddi3+0xba> + 58cc: 6108 addu r4, r2 + 58ce: 06fa br 0x56c2 // 56c2 <__umoddi3+0x16e> + 58d0: 60c8 addu r3, r2 + 58d2: 0683 br 0x55d8 // 55d8 <__umoddi3+0x84> + 58d4: 6c17 mov r0, r5 + 58d6: 6c4f mov r1, r3 + 58d8: 06bf br 0x5656 // 5656 <__umoddi3+0x102> + 58da: 9824 ld.w r1, (r14, 0x10) + 58dc: 64c4 cmphs r1, r3 + 58de: 0fdc bf 0x5896 // 5896 <__umoddi3+0x342> + 58e0: 6c0f mov r0, r3 + 58e2: 3100 movi r1, 0 + 58e4: 0788 br 0x57f4 // 57f4 <__umoddi3+0x2a0> + 58e6: 0000 bkpt + 58e8: 0000ffff .long 0x0000ffff + 58ec: 0000b338 .long 0x0000b338 + 58f0: 00ffffff .long 0x00ffffff + +000058f4 : + 58f4: 14c2 push r4-r5 + 58f6: 3300 movi r3, 0 + 58f8: 644d cmplt r3, r1 + 58fa: 0803 bt 0x5900 // 5900 + 58fc: 6c0f mov r0, r3 + 58fe: 1482 pop r4-r5 + 5900: 5aac addu r5, r2, r3 + 5902: 588c addu r4, r0, r3 + 5904: 2300 addi r3, 1 + 5906: 85a0 ld.b r5, (r5, 0x0) + 5908: 3b43 cmpnei r3, 3 + 590a: a4a0 st.b r5, (r4, 0x0) + 590c: 0bf6 bt 0x58f8 // 58f8 + 590e: 3923 cmplti r1, 4 + 5910: 0bf6 bt 0x58fc // 58fc + 5912: 3300 movi r3, 0 + 5914: a063 st.b r3, (r0, 0x3) + 5916: 3304 movi r3, 4 + 5918: 07f2 br 0x58fc // 58fc + +0000591a <__GI___dtostr>: + 591a: 14d4 push r4-r7, r15 + 591c: 142c subi r14, r14, 48 + 591e: 6d8f mov r6, r3 + 5920: 9871 ld.w r3, (r14, 0x44) + 5922: b80a st.w r0, (r14, 0x28) + 5924: b824 st.w r1, (r14, 0x10) + 5926: b842 st.w r2, (r14, 0x8) + 5928: b86b st.w r3, (r14, 0x2c) + 592a: 98f2 ld.w r7, (r14, 0x48) + 592c: e0000244 bsr 0x5db4 // 5db4 <__isinf> + 5930: 3840 cmpnei r0, 0 + 5932: 0c0a bf 0x5946 // 5946 <__GI___dtostr+0x2c> + 5934: 0244 lrw r2, 0xc32a // 5c20 <__GI___dtostr+0x306> + 5936: 6c5b mov r1, r6 + 5938: 9802 ld.w r0, (r14, 0x8) + 593a: e3ffffdd bsr 0x58f4 // 58f4 + 593e: b809 st.w r0, (r14, 0x24) + 5940: 9809 ld.w r0, (r14, 0x24) + 5942: 140c addi r14, r14, 48 + 5944: 1494 pop r4-r7, r15 + 5946: 980a ld.w r0, (r14, 0x28) + 5948: 9824 ld.w r1, (r14, 0x10) + 594a: e0000185 bsr 0x5c54 // 5c54 <__isnan> + 594e: 3840 cmpnei r0, 0 + 5950: b809 st.w r0, (r14, 0x24) + 5952: 0c03 bf 0x5958 // 5958 <__GI___dtostr+0x3e> + 5954: 024b lrw r2, 0xc32e // 5c24 <__GI___dtostr+0x30a> + 5956: 07f0 br 0x5936 // 5936 <__GI___dtostr+0x1c> + 5958: 3200 movi r2, 0 + 595a: 3300 movi r3, 0 + 595c: 980a ld.w r0, (r14, 0x28) + 595e: 9824 ld.w r1, (r14, 0x10) + 5960: e0000242 bsr 0x5de4 // 5de4 <__eqdf2> + 5964: 3840 cmpnei r0, 0 + 5966: 082d bt 0x59c0 // 59c0 <__GI___dtostr+0xa6> + 5968: 3f40 cmpnei r7, 0 + 596a: 0d57 bf 0x5c18 // 5c18 <__GI___dtostr+0x2fe> + 596c: 5fa6 addi r5, r7, 2 + 596e: 6558 cmphs r6, r5 + 5970: 0d56 bf 0x5c1c // 5c1c <__GI___dtostr+0x302> + 5972: 3d40 cmpnei r5, 0 + 5974: 0c0b bf 0x598a // 598a <__GI___dtostr+0x70> + 5976: 9824 ld.w r1, (r14, 0x10) + 5978: 39df btsti r1, 31 + 597a: 0c1a bf 0x59ae // 59ae <__GI___dtostr+0x94> + 597c: 9802 ld.w r0, (r14, 0x8) + 597e: 322d movi r2, 45 + 5980: a040 st.b r2, (r0, 0x0) + 5982: 5d02 addi r0, r5, 1 + 5984: 3501 movi r5, 1 + 5986: 6414 cmphs r5, r0 + 5988: 0c16 bf 0x59b4 // 59b4 <__GI___dtostr+0x9a> + 598a: 9882 ld.w r4, (r14, 0x8) + 598c: 8420 ld.b r1, (r4, 0x0) + 598e: 3330 movi r3, 48 + 5990: 64c6 cmpne r1, r3 + 5992: 3000 movi r0, 0 + 5994: 6001 addc r0, r0 + 5996: 9842 ld.w r2, (r14, 0x8) + 5998: 9822 ld.w r1, (r14, 0x8) + 599a: 6008 addu r0, r2 + 599c: 342e movi r4, 46 + 599e: 6054 addu r1, r5 + 59a0: 3300 movi r3, 0 + 59a2: a081 st.b r4, (r0, 0x1) + 59a4: b8a9 st.w r5, (r14, 0x24) + 59a6: a160 st.b r3, (r1, 0x0) + 59a8: 07cc br 0x5940 // 5940 <__GI___dtostr+0x26> + 59aa: 3501 movi r5, 1 + 59ac: 07e5 br 0x5976 // 5976 <__GI___dtostr+0x5c> + 59ae: 6c17 mov r0, r5 + 59b0: 3500 movi r5, 0 + 59b2: 07ea br 0x5986 // 5986 <__GI___dtostr+0x6c> + 59b4: 9842 ld.w r2, (r14, 0x8) + 59b6: 6094 addu r2, r5 + 59b8: 3430 movi r4, 48 + 59ba: a280 st.b r4, (r2, 0x0) + 59bc: 2500 addi r5, 1 + 59be: 07e4 br 0x5986 // 5986 <__GI___dtostr+0x6c> + 59c0: 3200 movi r2, 0 + 59c2: 3300 movi r3, 0 + 59c4: 980a ld.w r0, (r14, 0x28) + 59c6: 9824 ld.w r1, (r14, 0x10) + 59c8: e000022c bsr 0x5e20 // 5e20 <__ltdf2> + 59cc: 38df btsti r0, 31 + 59ce: 0c8e bf 0x5aea // 5aea <__GI___dtostr+0x1d0> + 59d0: 3180 movi r1, 128 + 59d2: 98a2 ld.w r5, (r14, 0x8) + 59d4: 9884 ld.w r4, (r14, 0x10) + 59d6: 4158 lsli r2, r1, 24 + 59d8: 332d movi r3, 45 + 59da: a560 st.b r3, (r5, 0x0) + 59dc: 6108 addu r4, r2 + 59de: 2e00 subi r6, 1 + 59e0: 2500 addi r5, 1 + 59e2: 3000 movi r0, 0 + 59e4: 032e lrw r1, 0x3fe00000 // 5c28 <__GI___dtostr+0x30e> + 59e6: 3300 movi r3, 0 + 59e8: b865 st.w r3, (r14, 0x14) + 59ea: 9845 ld.w r2, (r14, 0x14) + 59ec: 65ca cmpne r2, r7 + 59ee: 0881 bt 0x5af0 // 5af0 <__GI___dtostr+0x1d6> + 59f0: 6c83 mov r2, r0 + 59f2: 6cc7 mov r3, r1 + 59f4: 980a ld.w r0, (r14, 0x28) + 59f6: 6c53 mov r1, r4 + 59f8: e3fff190 bsr 0x3d18 // 3d18 <__adddf3> + 59fc: 3200 movi r2, 0 + 59fe: 0373 lrw r3, 0x3ff00000 // 5c2c <__GI___dtostr+0x312> + 5a00: b806 st.w r0, (r14, 0x18) + 5a02: b827 st.w r1, (r14, 0x1c) + 5a04: e000020e bsr 0x5e20 // 5e20 <__ltdf2> + 5a08: 38df btsti r0, 31 + 5a0a: 0c05 bf 0x5a14 // 5a14 <__GI___dtostr+0xfa> + 5a0c: 3430 movi r4, 48 + 5a0e: a580 st.b r4, (r5, 0x0) + 5a10: 2e00 subi r6, 1 + 5a12: 2500 addi r5, 1 + 5a14: 9804 ld.w r0, (r14, 0x10) + 5a16: 4021 lsli r1, r0, 1 + 5a18: 0379 lrw r3, 0xfffffc01 // 5c30 <__GI___dtostr+0x316> + 5a1a: 4915 lsri r0, r1, 21 + 5a1c: 600c addu r0, r3 + 5a1e: e3fff3cf bsr 0x41bc // 41bc <__floatsidf> + 5a22: 035a lrw r2, 0x509f79ff // 5c34 <__GI___dtostr+0x31a> + 5a24: 037a lrw r3, 0x3fd34413 // 5c38 <__GI___dtostr+0x31e> + 5a26: e3fff1ad bsr 0x3d80 // 3d80 <__muldf3> + 5a2a: e3fff401 bsr 0x422c // 422c <__fixdfsi> + 5a2e: 5842 addi r2, r0, 1 + 5a30: 3a20 cmplti r2, 1 + 5a32: b848 st.w r2, (r14, 0x20) + 5a34: 08e7 bt 0x5c02 // 5c02 <__GI___dtostr+0x2e8> + 5a36: 033d lrw r1, 0x40240000 // 5c3c <__GI___dtostr+0x322> + 5a38: 6dcb mov r7, r2 + 5a3a: 3400 movi r4, 0 + 5a3c: b823 st.w r1, (r14, 0xc) + 5a3e: 3f0a cmphsi r7, 11 + 5a40: 085f bt 0x5afe // 5afe <__GI___dtostr+0x1e4> + 5a42: 3f41 cmpnei r7, 1 + 5a44: 0868 bt 0x5b14 // 5b14 <__GI___dtostr+0x1fa> + 5a46: 135f lrw r2, 0xcccccccd // 5c40 <__GI___dtostr+0x326> + 5a48: 137f lrw r3, 0x3feccccc // 5c44 <__GI___dtostr+0x32a> + 5a4a: 6c13 mov r0, r4 + 5a4c: 9823 ld.w r1, (r14, 0xc) + 5a4e: e3fff35d bsr 0x4108 // 4108 <__gtdf2> + 5a52: 3820 cmplti r0, 1 + 5a54: 0c6a bf 0x5b28 // 5b28 <__GI___dtostr+0x20e> + 5a56: 9862 ld.w r3, (r14, 0x8) + 5a58: 64d6 cmpne r5, r3 + 5a5a: 0807 bt 0x5a68 // 5a68 <__GI___dtostr+0x14e> + 5a5c: 3e40 cmpnei r6, 0 + 5a5e: 0f71 bf 0x5940 // 5940 <__GI___dtostr+0x26> + 5a60: 3230 movi r2, 48 + 5a62: a540 st.b r2, (r5, 0x0) + 5a64: 2e00 subi r6, 1 + 5a66: 2500 addi r5, 1 + 5a68: 9805 ld.w r0, (r14, 0x14) + 5a6a: 3840 cmpnei r0, 0 + 5a6c: 08cf bt 0x5c0a // 5c0a <__GI___dtostr+0x2f0> + 5a6e: 9822 ld.w r1, (r14, 0x8) + 5a70: 5d65 subu r3, r5, r1 + 5a72: 2300 addi r3, 1 + 5a74: 984b ld.w r2, (r14, 0x2c) + 5a76: 648c cmphs r3, r2 + 5a78: 08a5 bt 0x5bc2 // 5bc2 <__GI___dtostr+0x2a8> + 5a7a: 3e40 cmpnei r6, 0 + 5a7c: 0f62 bf 0x5940 // 5940 <__GI___dtostr+0x26> + 5a7e: 372e movi r7, 46 + 5a80: a5e0 st.b r7, (r5, 0x0) + 5a82: 980b ld.w r0, (r14, 0x2c) + 5a84: 5de2 addi r7, r5, 1 + 5a86: 9822 ld.w r1, (r14, 0x8) + 5a88: 2000 addi r0, 1 + 5a8a: 5f65 subu r3, r7, r1 + 5a8c: 584d subu r2, r0, r3 + 5a8e: 2e00 subi r6, 1 + 5a90: b845 st.w r2, (r14, 0x14) + 5a92: 9805 ld.w r0, (r14, 0x14) + 5a94: 6418 cmphs r6, r0 + 5a96: 0f55 bf 0x5940 // 5940 <__GI___dtostr+0x26> + 5a98: 6d43 mov r5, r0 + 5a9a: 615c addu r5, r7 + 5a9c: 36ff movi r6, 255 + 5a9e: 655e cmpne r7, r5 + 5aa0: 0c91 bf 0x5bc2 // 5bc2 <__GI___dtostr+0x2a8> + 5aa2: 6c93 mov r2, r4 + 5aa4: 9863 ld.w r3, (r14, 0xc) + 5aa6: 9806 ld.w r0, (r14, 0x18) + 5aa8: 9827 ld.w r1, (r14, 0x1c) + 5aaa: e3fff285 bsr 0x3fb4 // 3fb4 <__divdf3> + 5aae: e3fff3bf bsr 0x422c // 422c <__fixdfsi> + 5ab2: 3130 movi r1, 48 + 5ab4: 6040 addu r1, r0 + 5ab6: a720 st.b r1, (r7, 0x0) + 5ab8: 6818 and r0, r6 + 5aba: e3fff381 bsr 0x41bc // 41bc <__floatsidf> + 5abe: 6c93 mov r2, r4 + 5ac0: 9863 ld.w r3, (r14, 0xc) + 5ac2: e3fff15f bsr 0x3d80 // 3d80 <__muldf3> + 5ac6: 6c83 mov r2, r0 + 5ac8: 6cc7 mov r3, r1 + 5aca: 9806 ld.w r0, (r14, 0x18) + 5acc: 9827 ld.w r1, (r14, 0x1c) + 5ace: e3fff13d bsr 0x3d48 // 3d48 <__subdf3> + 5ad2: b806 st.w r0, (r14, 0x18) + 5ad4: b827 st.w r1, (r14, 0x1c) + 5ad6: 6c13 mov r0, r4 + 5ad8: 9823 ld.w r1, (r14, 0xc) + 5ada: 3200 movi r2, 0 + 5adc: 1278 lrw r3, 0x40240000 // 5c3c <__GI___dtostr+0x322> + 5ade: e3fff26b bsr 0x3fb4 // 3fb4 <__divdf3> + 5ae2: 2700 addi r7, 1 + 5ae4: 6d03 mov r4, r0 + 5ae6: b823 st.w r1, (r14, 0xc) + 5ae8: 07db br 0x5a9e // 5a9e <__GI___dtostr+0x184> + 5aea: 98a2 ld.w r5, (r14, 0x8) + 5aec: 9884 ld.w r4, (r14, 0x10) + 5aee: 077a br 0x59e2 // 59e2 <__GI___dtostr+0xc8> + 5af0: 1276 lrw r3, 0x3fb99999 // 5c48 <__GI___dtostr+0x32e> + 5af2: 1257 lrw r2, 0x9999999a // 5c4c <__GI___dtostr+0x332> + 5af4: e3fff146 bsr 0x3d80 // 3d80 <__muldf3> + 5af8: 9865 ld.w r3, (r14, 0x14) + 5afa: 2300 addi r3, 1 + 5afc: 0776 br 0x59e8 // 59e8 <__GI___dtostr+0xce> + 5afe: 3080 movi r0, 128 + 5b00: 4056 lsli r2, r0, 22 + 5b02: 9823 ld.w r1, (r14, 0xc) + 5b04: 6c13 mov r0, r4 + 5b06: 1273 lrw r3, 0x4202a05f // 5c50 <__GI___dtostr+0x336> + 5b08: e3fff13c bsr 0x3d80 // 3d80 <__muldf3> + 5b0c: 6d03 mov r4, r0 + 5b0e: b823 st.w r1, (r14, 0xc) + 5b10: 2f09 subi r7, 10 + 5b12: 0796 br 0x5a3e // 5a3e <__GI___dtostr+0x124> + 5b14: 6c13 mov r0, r4 + 5b16: 9823 ld.w r1, (r14, 0xc) + 5b18: 3200 movi r2, 0 + 5b1a: 1269 lrw r3, 0x40240000 // 5c3c <__GI___dtostr+0x322> + 5b1c: e3fff132 bsr 0x3d80 // 3d80 <__muldf3> + 5b20: 6d03 mov r4, r0 + 5b22: b823 st.w r1, (r14, 0xc) + 5b24: 2f00 subi r7, 1 + 5b26: 078e br 0x5a42 // 5a42 <__GI___dtostr+0x128> + 5b28: 9863 ld.w r3, (r14, 0xc) + 5b2a: 6c93 mov r2, r4 + 5b2c: 9806 ld.w r0, (r14, 0x18) + 5b2e: 9827 ld.w r1, (r14, 0x1c) + 5b30: e3fff242 bsr 0x3fb4 // 3fb4 <__divdf3> + 5b34: e3fff37c bsr 0x422c // 422c <__fixdfsi> + 5b38: 3f40 cmpnei r7, 0 + 5b3a: 74c0 zextb r3, r0 + 5b3c: 0c03 bf 0x5b42 // 5b42 <__GI___dtostr+0x228> + 5b3e: 3b40 cmpnei r3, 0 + 5b40: 0c58 bf 0x5bf0 // 5bf0 <__GI___dtostr+0x2d6> + 5b42: 232f addi r3, 48 + 5b44: 3e40 cmpnei r6, 0 + 5b46: a560 st.b r3, (r5, 0x0) + 5b48: 2500 addi r5, 1 + 5b4a: 0842 bt 0x5bce // 5bce <__GI___dtostr+0x2b4> + 5b4c: 6c93 mov r2, r4 + 5b4e: 9863 ld.w r3, (r14, 0xc) + 5b50: 980a ld.w r0, (r14, 0x28) + 5b52: 9824 ld.w r1, (r14, 0x10) + 5b54: e3fff230 bsr 0x3fb4 // 3fb4 <__divdf3> + 5b58: 9845 ld.w r2, (r14, 0x14) + 5b5a: 988b ld.w r4, (r14, 0x2c) + 5b5c: b841 st.w r2, (r14, 0x4) + 5b5e: b880 st.w r4, (r14, 0x0) + 5b60: 3300 movi r3, 0 + 5b62: 9842 ld.w r2, (r14, 0x8) + 5b64: e3fffedb bsr 0x591a // 591a <__GI___dtostr> + 5b68: 3840 cmpnei r0, 0 + 5b6a: 0eeb bf 0x5940 // 5940 <__GI___dtostr+0x26> + 5b6c: 5dc0 addu r6, r5, r0 + 5b6e: 37fa movi r7, 250 + 5b70: 3565 movi r5, 101 + 5b72: 6c02 nor r0, r0 + 5b74: a6a0 st.b r5, (r6, 0x0) + 5b76: 6d03 mov r4, r0 + 5b78: 5ea2 addi r5, r6, 1 + 5b7a: 3101 movi r1, 1 + 5b7c: 3604 movi r6, 4 + 5b7e: 47e2 lsli r7, r7, 2 + 5b80: 9808 ld.w r0, (r14, 0x20) + 5b82: 65c1 cmplt r0, r7 + 5b84: 0c03 bf 0x5b8a // 5b8a <__GI___dtostr+0x270> + 5b86: 3940 cmpnei r1, 0 + 5b88: 0811 bt 0x5baa // 5baa <__GI___dtostr+0x290> + 5b8a: 3c40 cmpnei r4, 0 + 5b8c: 0c08 bf 0x5b9c // 5b9c <__GI___dtostr+0x282> + 5b8e: 6c5f mov r1, r7 + 5b90: 9808 ld.w r0, (r14, 0x20) + 5b92: e0000c7f bsr 0x7490 // 7490 <__divsi3> + 5b96: 202f addi r0, 48 + 5b98: a500 st.b r0, (r5, 0x0) + 5b9a: 2500 addi r5, 1 + 5b9c: 6c5f mov r1, r7 + 5b9e: 9808 ld.w r0, (r14, 0x20) + 5ba0: e0000c9c bsr 0x74d8 // 74d8 <__modsi3> + 5ba4: 2c00 subi r4, 1 + 5ba6: b808 st.w r0, (r14, 0x20) + 5ba8: 3100 movi r1, 0 + 5baa: b823 st.w r1, (r14, 0xc) + 5bac: 6c1f mov r0, r7 + 5bae: 310a movi r1, 10 + 5bb0: 2e00 subi r6, 1 + 5bb2: e0000c6f bsr 0x7490 // 7490 <__divsi3> + 5bb6: 3e40 cmpnei r6, 0 + 5bb8: 6dc3 mov r7, r0 + 5bba: 9823 ld.w r1, (r14, 0xc) + 5bbc: 0be2 bt 0x5b80 // 5b80 <__GI___dtostr+0x266> + 5bbe: 3c40 cmpnei r4, 0 + 5bc0: 0ec0 bf 0x5940 // 5940 <__GI___dtostr+0x26> + 5bc2: 9842 ld.w r2, (r14, 0x8) + 5bc4: 3300 movi r3, 0 + 5bc6: 5d89 subu r4, r5, r2 + 5bc8: a560 st.b r3, (r5, 0x0) + 5bca: b889 st.w r4, (r14, 0x24) + 5bcc: 06ba br 0x5940 // 5940 <__GI___dtostr+0x26> + 5bce: 7400 zextb r0, r0 + 5bd0: e3fff2f6 bsr 0x41bc // 41bc <__floatsidf> + 5bd4: 6c93 mov r2, r4 + 5bd6: 9863 ld.w r3, (r14, 0xc) + 5bd8: e3fff0d4 bsr 0x3d80 // 3d80 <__muldf3> + 5bdc: 6c83 mov r2, r0 + 5bde: 6cc7 mov r3, r1 + 5be0: 9806 ld.w r0, (r14, 0x18) + 5be2: 9827 ld.w r1, (r14, 0x1c) + 5be4: e3fff0b2 bsr 0x3d48 // 3d48 <__subdf3> + 5be8: b806 st.w r0, (r14, 0x18) + 5bea: b827 st.w r1, (r14, 0x1c) + 5bec: 2e00 subi r6, 1 + 5bee: 3700 movi r7, 0 + 5bf0: 6c13 mov r0, r4 + 5bf2: 9823 ld.w r1, (r14, 0xc) + 5bf4: 3200 movi r2, 0 + 5bf6: 1072 lrw r3, 0x40240000 // 5c3c <__GI___dtostr+0x322> + 5bf8: e3fff1de bsr 0x3fb4 // 3fb4 <__divdf3> + 5bfc: 6d03 mov r4, r0 + 5bfe: b823 st.w r1, (r14, 0xc) + 5c00: 0723 br 0x5a46 // 5a46 <__GI___dtostr+0x12c> + 5c02: 1012 lrw r0, 0x3fb99999 // 5c48 <__GI___dtostr+0x32e> + 5c04: 1092 lrw r4, 0x9999999a // 5c4c <__GI___dtostr+0x332> + 5c06: b803 st.w r0, (r14, 0xc) + 5c08: 0727 br 0x5a56 // 5a56 <__GI___dtostr+0x13c> + 5c0a: 3e40 cmpnei r6, 0 + 5c0c: 0e9a bf 0x5940 // 5940 <__GI___dtostr+0x26> + 5c0e: 372e movi r7, 46 + 5c10: a5e0 st.b r7, (r5, 0x0) + 5c12: 2e00 subi r6, 1 + 5c14: 5de2 addi r7, r5, 1 + 5c16: 073e br 0x5a92 // 5a92 <__GI___dtostr+0x178> + 5c18: 3e40 cmpnei r6, 0 + 5c1a: 0ac8 bt 0x59aa // 59aa <__GI___dtostr+0x90> + 5c1c: 3508 movi r5, 8 + 5c1e: 06ac br 0x5976 // 5976 <__GI___dtostr+0x5c> + 5c20: 0000c32a .long 0x0000c32a + 5c24: 0000c32e .long 0x0000c32e + 5c28: 3fe00000 .long 0x3fe00000 + 5c2c: 3ff00000 .long 0x3ff00000 + 5c30: fffffc01 .long 0xfffffc01 + 5c34: 509f79ff .long 0x509f79ff + 5c38: 3fd34413 .long 0x3fd34413 + 5c3c: 40240000 .long 0x40240000 + 5c40: cccccccd .long 0xcccccccd + 5c44: 3feccccc .long 0x3feccccc + 5c48: 3fb99999 .long 0x3fb99999 + 5c4c: 9999999a .long 0x9999999a + 5c50: 4202a05f .long 0x4202a05f + +00005c54 <__isnan>: + 5c54: 416c lsli r3, r1, 12 + 5c56: 4b4c lsri r2, r3, 12 + 5c58: 6c08 or r0, r2 + 5c5a: 3840 cmpnei r0, 0 + 5c5c: 0c0e bf 0x5c78 // 5c78 <__isnan+0x24> + 5c5e: 1008 lrw r0, 0x7ff00000 // 5c7c <__isnan+0x28> + 5c60: 6840 and r1, r0 + 5c62: 6cc7 mov r3, r1 + 5c64: 3000 movi r0, 0 + 5c66: 1026 lrw r1, 0x7ff00000 // 5c7c <__isnan+0x28> + 5c68: 3200 movi r2, 0 + 5c6a: 6c81 xor r2, r0 + 5c6c: 6cc5 xor r3, r1 + 5c6e: 6c8c or r2, r3 + 5c70: 3a40 cmpnei r2, 0 + 5c72: 6443 mvcv r1 + 5c74: 7404 zextb r0, r1 + 5c76: 783c jmp r15 + 5c78: 3000 movi r0, 0 + 5c7a: 07fe br 0x5c76 // 5c76 <__isnan+0x22> + 5c7c: 7ff00000 .long 0x7ff00000 + +00005c80 <__strlen_fast>: + 5c80: 6c43 mov r1, r0 + 5c82: 3203 movi r2, 3 + 5c84: 6808 and r0, r2 + 5c86: 3840 cmpnei r0, 0 + 5c88: 0c08 bf 0x5c98 // 5c98 <__strlen_fast+0x18> + 5c8a: 3000 movi r0, 0 + 5c8c: 8140 ld.b r2, (r1, 0x0) + 5c8e: 3a40 cmpnei r2, 0 + 5c90: 0c20 bf 0x5cd0 // 5cd0 <__strlen_fast+0x50> + 5c92: 2100 addi r1, 1 + 5c94: 2000 addi r0, 1 + 5c96: 07fb br 0x5c8c // 5c8c <__strlen_fast+0xc> + 5c98: 9140 ld.w r2, (r1, 0x0) + 5c9a: 680b tstnbz r2 + 5c9c: 0c04 bf 0x5ca4 // 5ca4 <__strlen_fast+0x24> + 5c9e: 2103 addi r1, 4 + 5ca0: 2003 addi r0, 4 + 5ca2: 07fb br 0x5c98 // 5c98 <__strlen_fast+0x18> + 5ca4: 31ff movi r1, 255 + 5ca6: 6ccb mov r3, r2 + 5ca8: 68c4 and r3, r1 + 5caa: 3b40 cmpnei r3, 0 + 5cac: 0c12 bf 0x5cd0 // 5cd0 <__strlen_fast+0x50> + 5cae: 2000 addi r0, 1 + 5cb0: 3110 movi r1, 16 + 5cb2: 6ccb mov r3, r2 + 5cb4: 70c4 lsl r3, r1 + 5cb6: 3118 movi r1, 24 + 5cb8: 70c5 lsr r3, r1 + 5cba: 3b40 cmpnei r3, 0 + 5cbc: 0c0a bf 0x5cd0 // 5cd0 <__strlen_fast+0x50> + 5cbe: 2000 addi r0, 1 + 5cc0: 3108 movi r1, 8 + 5cc2: 6ccb mov r3, r2 + 5cc4: 70c4 lsl r3, r1 + 5cc6: 3118 movi r1, 24 + 5cc8: 70c5 lsr r3, r1 + 5cca: 3b40 cmpnei r3, 0 + 5ccc: 0c02 bf 0x5cd0 // 5cd0 <__strlen_fast+0x50> + 5cce: 2000 addi r0, 1 + 5cd0: 783c jmp r15 + ... + +00005cd4 <__strcpy_fast>: + 5cd4: 14c1 push r4 + 5cd6: 6d03 mov r4, r0 + 5cd8: 6c87 mov r2, r1 + 5cda: 6c90 or r2, r4 + 5cdc: 3303 movi r3, 3 + 5cde: 688c and r2, r3 + 5ce0: 3a40 cmpnei r2, 0 + 5ce2: 0c08 bf 0x5cf2 // 5cf2 <__strcpy_fast+0x1e> + 5ce4: 8160 ld.b r3, (r1, 0x0) + 5ce6: a460 st.b r3, (r4, 0x0) + 5ce8: 2100 addi r1, 1 + 5cea: 2400 addi r4, 1 + 5cec: 3b40 cmpnei r3, 0 + 5cee: 0bfb bt 0x5ce4 // 5ce4 <__strcpy_fast+0x10> + 5cf0: 1481 pop r4 + 5cf2: 9160 ld.w r3, (r1, 0x0) + 5cf4: 680f tstnbz r3 + 5cf6: 0c2e bf 0x5d52 // 5d52 <__strcpy_fast+0x7e> + 5cf8: b460 st.w r3, (r4, 0x0) + 5cfa: 9161 ld.w r3, (r1, 0x4) + 5cfc: 680f tstnbz r3 + 5cfe: 0c1d bf 0x5d38 // 5d38 <__strcpy_fast+0x64> + 5d00: b461 st.w r3, (r4, 0x4) + 5d02: 9162 ld.w r3, (r1, 0x8) + 5d04: 680f tstnbz r3 + 5d06: 0c1b bf 0x5d3c // 5d3c <__strcpy_fast+0x68> + 5d08: b462 st.w r3, (r4, 0x8) + 5d0a: 9163 ld.w r3, (r1, 0xc) + 5d0c: 680f tstnbz r3 + 5d0e: 0c19 bf 0x5d40 // 5d40 <__strcpy_fast+0x6c> + 5d10: b463 st.w r3, (r4, 0xc) + 5d12: 9164 ld.w r3, (r1, 0x10) + 5d14: 680f tstnbz r3 + 5d16: 0c17 bf 0x5d44 // 5d44 <__strcpy_fast+0x70> + 5d18: b464 st.w r3, (r4, 0x10) + 5d1a: 9165 ld.w r3, (r1, 0x14) + 5d1c: 680f tstnbz r3 + 5d1e: 0c15 bf 0x5d48 // 5d48 <__strcpy_fast+0x74> + 5d20: b465 st.w r3, (r4, 0x14) + 5d22: 9166 ld.w r3, (r1, 0x18) + 5d24: 680f tstnbz r3 + 5d26: 0c13 bf 0x5d4c // 5d4c <__strcpy_fast+0x78> + 5d28: b466 st.w r3, (r4, 0x18) + 5d2a: 9167 ld.w r3, (r1, 0x1c) + 5d2c: 680f tstnbz r3 + 5d2e: 0c11 bf 0x5d50 // 5d50 <__strcpy_fast+0x7c> + 5d30: b467 st.w r3, (r4, 0x1c) + 5d32: 241f addi r4, 32 + 5d34: 211f addi r1, 32 + 5d36: 07de br 0x5cf2 // 5cf2 <__strcpy_fast+0x1e> + 5d38: 2403 addi r4, 4 + 5d3a: 040c br 0x5d52 // 5d52 <__strcpy_fast+0x7e> + 5d3c: 2407 addi r4, 8 + 5d3e: 040a br 0x5d52 // 5d52 <__strcpy_fast+0x7e> + 5d40: 240b addi r4, 12 + 5d42: 0408 br 0x5d52 // 5d52 <__strcpy_fast+0x7e> + 5d44: 240f addi r4, 16 + 5d46: 0406 br 0x5d52 // 5d52 <__strcpy_fast+0x7e> + 5d48: 2413 addi r4, 20 + 5d4a: 0404 br 0x5d52 // 5d52 <__strcpy_fast+0x7e> + 5d4c: 2417 addi r4, 24 + 5d4e: 0402 br 0x5d52 // 5d52 <__strcpy_fast+0x7e> + 5d50: 241b addi r4, 28 + 5d52: 3118 movi r1, 24 + 5d54: 6c8f mov r2, r3 + 5d56: 7084 lsl r2, r1 + 5d58: 7085 lsr r2, r1 + 5d5a: a440 st.b r2, (r4, 0x0) + 5d5c: 3a40 cmpnei r2, 0 + 5d5e: 0c12 bf 0x5d82 // 5d82 <__strcpy_fast+0xae> + 5d60: 3110 movi r1, 16 + 5d62: 6c8f mov r2, r3 + 5d64: 7084 lsl r2, r1 + 5d66: 3118 movi r1, 24 + 5d68: 7085 lsr r2, r1 + 5d6a: a441 st.b r2, (r4, 0x1) + 5d6c: 3a40 cmpnei r2, 0 + 5d6e: 0c0a bf 0x5d82 // 5d82 <__strcpy_fast+0xae> + 5d70: 3108 movi r1, 8 + 5d72: 6c8f mov r2, r3 + 5d74: 7084 lsl r2, r1 + 5d76: 3118 movi r1, 24 + 5d78: 7085 lsr r2, r1 + 5d7a: a442 st.b r2, (r4, 0x2) + 5d7c: 3a40 cmpnei r2, 0 + 5d7e: 0c02 bf 0x5d82 // 5d82 <__strcpy_fast+0xae> + 5d80: b460 st.w r3, (r4, 0x0) + 5d82: 1481 pop r4 + +00005d84 <__GI_strchr>: + 5d84: 8040 ld.b r2, (r0, 0x0) + 5d86: 644a cmpne r2, r1 + 5d88: 0c06 bf 0x5d94 // 5d94 <__GI_strchr+0x10> + 5d8a: 3a40 cmpnei r2, 0 + 5d8c: 0c03 bf 0x5d92 // 5d92 <__GI_strchr+0xe> + 5d8e: 2000 addi r0, 1 + 5d90: 07fa br 0x5d84 // 5d84 <__GI_strchr> + 5d92: 6c0b mov r0, r2 + 5d94: 783c jmp r15 + ... + +00005d98 <__GI_strerror>: + 5d98: 338f movi r3, 143 + 5d9a: 640c cmphs r3, r0 + 5d9c: 0c06 bf 0x5da8 // 5da8 <__GI_strerror+0x10> + 5d9e: 4002 lsli r0, r0, 2 + 5da0: 1023 lrw r1, 0xb458 // 5dac <__GI_strerror+0x14> + 5da2: 6004 addu r0, r1 + 5da4: 9000 ld.w r0, (r0, 0x0) + 5da6: 783c jmp r15 + 5da8: 1002 lrw r0, 0xb6d5 // 5db0 <__GI_strerror+0x18> + 5daa: 07fe br 0x5da6 // 5da6 <__GI_strerror+0xe> + 5dac: 0000b458 .long 0x0000b458 + 5db0: 0000b6d5 .long 0x0000b6d5 + +00005db4 <__isinf>: + 5db4: 3840 cmpnei r0, 0 + 5db6: 6c83 mov r2, r0 + 5db8: 6cc7 mov r3, r1 + 5dba: 0804 bt 0x5dc2 // 5dc2 <__isinf+0xe> + 5dbc: 1028 lrw r1, 0x7ff00000 // 5ddc <__isinf+0x28> + 5dbe: 644e cmpne r3, r1 + 5dc0: 0c0b bf 0x5dd6 // 5dd6 <__isinf+0x22> + 5dc2: 3000 movi r0, 0 + 5dc4: 1027 lrw r1, 0xfff00000 // 5de0 <__isinf+0x2c> + 5dc6: 6c81 xor r2, r0 + 5dc8: 6cc5 xor r3, r1 + 5dca: 6c8c or r2, r3 + 5dcc: 3a40 cmpnei r2, 0 + 5dce: 64c3 mvcv r3 + 5dd0: 3000 movi r0, 0 + 5dd2: 600e subu r0, r3 + 5dd4: 783c jmp r15 + 5dd6: 3001 movi r0, 1 + 5dd8: 07fe br 0x5dd4 // 5dd4 <__isinf+0x20> + 5dda: 0000 bkpt + 5ddc: 7ff00000 .long 0x7ff00000 + 5de0: fff00000 .long 0xfff00000 + +00005de4 <__eqdf2>: + 5de4: 14d0 push r15 + 5de6: 142e subi r14, r14, 56 + 5de8: b800 st.w r0, (r14, 0x0) + 5dea: b821 st.w r1, (r14, 0x4) + 5dec: 6c3b mov r0, r14 + 5dee: 1904 addi r1, r14, 16 + 5df0: b863 st.w r3, (r14, 0xc) + 5df2: b842 st.w r2, (r14, 0x8) + 5df4: e3fff4a0 bsr 0x4734 // 4734 <__unpack_d> + 5df8: 1909 addi r1, r14, 36 + 5dfa: 1802 addi r0, r14, 8 + 5dfc: e3fff49c bsr 0x4734 // 4734 <__unpack_d> + 5e00: 9864 ld.w r3, (r14, 0x10) + 5e02: 3b01 cmphsi r3, 2 + 5e04: 0c0a bf 0x5e18 // 5e18 <__eqdf2+0x34> + 5e06: 9869 ld.w r3, (r14, 0x24) + 5e08: 3b01 cmphsi r3, 2 + 5e0a: 0c07 bf 0x5e18 // 5e18 <__eqdf2+0x34> + 5e0c: 1909 addi r1, r14, 36 + 5e0e: 1804 addi r0, r14, 16 + 5e10: e3fff4f4 bsr 0x47f8 // 47f8 <__fpcmp_parts_d> + 5e14: 140e addi r14, r14, 56 + 5e16: 1490 pop r15 + 5e18: 3001 movi r0, 1 + 5e1a: 140e addi r14, r14, 56 + 5e1c: 1490 pop r15 + ... + +00005e20 <__ltdf2>: + 5e20: 14d0 push r15 + 5e22: 142e subi r14, r14, 56 + 5e24: b800 st.w r0, (r14, 0x0) + 5e26: b821 st.w r1, (r14, 0x4) + 5e28: 6c3b mov r0, r14 + 5e2a: 1904 addi r1, r14, 16 + 5e2c: b863 st.w r3, (r14, 0xc) + 5e2e: b842 st.w r2, (r14, 0x8) + 5e30: e3fff482 bsr 0x4734 // 4734 <__unpack_d> + 5e34: 1909 addi r1, r14, 36 + 5e36: 1802 addi r0, r14, 8 + 5e38: e3fff47e bsr 0x4734 // 4734 <__unpack_d> + 5e3c: 9864 ld.w r3, (r14, 0x10) + 5e3e: 3b01 cmphsi r3, 2 + 5e40: 0c0a bf 0x5e54 // 5e54 <__ltdf2+0x34> + 5e42: 9869 ld.w r3, (r14, 0x24) + 5e44: 3b01 cmphsi r3, 2 + 5e46: 0c07 bf 0x5e54 // 5e54 <__ltdf2+0x34> + 5e48: 1909 addi r1, r14, 36 + 5e4a: 1804 addi r0, r14, 16 + 5e4c: e3fff4d6 bsr 0x47f8 // 47f8 <__fpcmp_parts_d> + 5e50: 140e addi r14, r14, 56 + 5e52: 1490 pop r15 + 5e54: 3001 movi r0, 1 + 5e56: 140e addi r14, r14, 56 + 5e58: 1490 pop r15 + +Disassembly of section .text.__main: + +00005e5c <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 5e5c: 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 ) { + 5e5e: 1009 lrw r0, 0x20000000 // 5e80 <__main+0x24> + 5e60: 1029 lrw r1, 0xcabc // 5e84 <__main+0x28> + 5e62: 6442 cmpne r0, r1 + 5e64: 0c05 bf 0x5e6e // 5e6e <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 5e66: 1049 lrw r2, 0x2000009c // 5e88 <__main+0x2c> + 5e68: 6082 subu r2, r0 + 5e6a: e3fff5ad bsr 0x49c4 // 49c4 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 5e6e: 1048 lrw r2, 0x20000b28 // 5e8c <__main+0x30> + 5e70: 1008 lrw r0, 0x200000bc // 5e90 <__main+0x34> + 5e72: 640a cmpne r2, r0 + 5e74: 0c05 bf 0x5e7e // 5e7e <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 5e76: 6082 subu r2, r0 + 5e78: 3100 movi r1, 0 + 5e7a: e3fff561 bsr 0x493c // 493c <__memset_fast> + } + + +} + 5e7e: 1490 pop r15 + 5e80: 20000000 .long 0x20000000 + 5e84: 0000cabc .long 0x0000cabc + 5e88: 2000009c .long 0x2000009c + 5e8c: 20000b28 .long 0x20000b28 + 5e90: 200000bc .long 0x200000bc + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00005e94 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 5e94: 3848 cmpnei r0, 8 + 5e96: 080a bt 0x5eaa // 5eaa + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 5e98: 107a lrw r3, 0x2000004c // 5f00 + 5e9a: 32ff movi r2, 255 + 5e9c: 9320 ld.w r1, (r3, 0x0) + 5e9e: 9160 ld.w r3, (r1, 0x0) + 5ea0: 424c lsli r2, r2, 12 + 5ea2: 68c9 andn r3, r2 + 5ea4: 3bae bseti r3, 14 + 5ea6: 3bb2 bseti r3, 18 + 5ea8: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 5eaa: 1077 lrw r3, 0x2000005c // 5f04 + 5eac: 9360 ld.w r3, (r3, 0x0) + 5eae: 9341 ld.w r2, (r3, 0x4) + 5eb0: 6c80 or r2, r0 + 5eb2: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 5eb4: 9343 ld.w r2, (r3, 0xc) + 5eb6: 6880 and r2, r0 + 5eb8: 3a40 cmpnei r2, 0 + 5eba: 0ffd bf 0x5eb4 // 5eb4 + switch(ENDIS_X) + 5ebc: 3842 cmpnei r0, 2 + 5ebe: 0807 bt 0x5ecc // 5ecc + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 5ec0: 3102 movi r1, 2 + 5ec2: 9344 ld.w r2, (r3, 0x10) + 5ec4: 6884 and r2, r1 + 5ec6: 3a40 cmpnei r2, 0 + 5ec8: 0ffd bf 0x5ec2 // 5ec2 + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 5eca: 783c jmp r15 + switch(ENDIS_X) + 5ecc: 3802 cmphsi r0, 3 + 5ece: 0809 bt 0x5ee0 // 5ee0 + 5ed0: 3841 cmpnei r0, 1 + 5ed2: 0bfc bt 0x5eca // 5eca + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 5ed4: 3101 movi r1, 1 + 5ed6: 9344 ld.w r2, (r3, 0x10) + 5ed8: 6884 and r2, r1 + 5eda: 3a40 cmpnei r2, 0 + 5edc: 0ffd bf 0x5ed6 // 5ed6 + 5ede: 07f6 br 0x5eca // 5eca + switch(ENDIS_X) + 5ee0: 3848 cmpnei r0, 8 + 5ee2: 0807 bt 0x5ef0 // 5ef0 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 5ee4: 3108 movi r1, 8 + 5ee6: 9344 ld.w r2, (r3, 0x10) + 5ee8: 6884 and r2, r1 + 5eea: 3a40 cmpnei r2, 0 + 5eec: 0ffd bf 0x5ee6 // 5ee6 + 5eee: 07ee br 0x5eca // 5eca + switch(ENDIS_X) + 5ef0: 3850 cmpnei r0, 16 + 5ef2: 0bec bt 0x5eca // 5eca + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 5ef4: 3110 movi r1, 16 + 5ef6: 9344 ld.w r2, (r3, 0x10) + 5ef8: 6884 and r2, r1 + 5efa: 3a40 cmpnei r2, 0 + 5efc: 0ffd bf 0x5ef6 // 5ef6 + 5efe: 07e6 br 0x5eca // 5eca + 5f00: 2000004c .long 0x2000004c + 5f04: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00005f08 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 5f08: 106c lrw r3, 0x2000005c // 5f38 + 5f0a: 104d lrw r2, 0xffff // 5f3c + 5f0c: 9360 ld.w r3, (r3, 0x0) + 5f0e: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 5f10: 104c lrw r2, 0xffffff // 5f40 + 5f12: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 5f14: 104c lrw r2, 0xd22d0000 // 5f44 + 5f16: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 5f18: 104c lrw r2, 0x70ff3bff // 5f48 + 5f1a: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 5f1c: 320a movi r2, 10 + 5f1e: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f20: 102b lrw r1, 0x70c // 5f4c + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 5f22: 237f addi r3, 128 + 5f24: 3200 movi r2, 0 + 5f26: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 5f28: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 5f2a: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 5f2c: 1029 lrw r1, 0x3fe // 5f50 + 5f2e: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 5f30: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 5f32: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 5f34: b35f st.w r2, (r3, 0x7c) +} + 5f36: 783c jmp r15 + 5f38: 2000005c .long 0x2000005c + 5f3c: 0000ffff .long 0x0000ffff + 5f40: 00ffffff .long 0x00ffffff + 5f44: d22d0000 .long 0xd22d0000 + 5f48: 70ff3bff .long 0x70ff3bff + 5f4c: 0000070c .long 0x0000070c + 5f50: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00005f54 : +{ + 5f54: 14d0 push r15 + if (NewState != DISABLE) + 5f56: 3840 cmpnei r0, 0 + 5f58: 0c05 bf 0x5f62 // 5f62 + 5f5a: 6c07 mov r0, r1 + 5f5c: e3ffff9c bsr 0x5e94 // 5e94 +} + 5f60: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 5f62: 1068 lrw r3, 0x2000005c // 5f80 + 5f64: 9360 ld.w r3, (r3, 0x0) + 5f66: 9342 ld.w r2, (r3, 0x8) + 5f68: 6c84 or r2, r1 + 5f6a: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 5f6c: 9343 ld.w r2, (r3, 0xc) + 5f6e: 6884 and r2, r1 + 5f70: 3a40 cmpnei r2, 0 + 5f72: 0bfd bt 0x5f6c // 5f6c + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 5f74: 237f addi r3, 128 + 5f76: 9301 ld.w r0, (r3, 0x4) + 5f78: 6c40 or r1, r0 + 5f7a: b321 st.w r1, (r3, 0x4) +} + 5f7c: 07f2 br 0x5f60 // 5f60 + 5f7e: 0000 bkpt + 5f80: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00005f84 : +//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 ) +{ + 5f84: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 5f86: 3b48 cmpnei r3, 8 + 5f88: 0828 bt 0x5fd8 // 5fd8 + { + IFC->CEDR=0X01; //CLKEN + 5f8a: 109d lrw r4, 0x20000060 // 5ffc + 5f8c: 3501 movi r5, 1 + 5f8e: 9480 ld.w r4, (r4, 0x0) + 5f90: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 5f92: 3504 movi r5, 4 + 5f94: 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)) + 5f96: 5b83 subi r4, r3, 1 + 5f98: 3c01 cmphsi r4, 2 + 5f9a: 0c2b bf 0x5ff0 // 5ff0 + { + 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)) + 5f9c: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 5f9e: 3c04 cmphsi r4, 5 + 5fa0: 0c03 bf 0x5fa6 // 5fa6 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 5fa2: 3b4b cmpnei r3, 11 + 5fa4: 0807 bt 0x5fb2 // 5fb2 + { + IFC->CEDR=0X01; //CLKEN + 5fa6: 1076 lrw r3, 0x20000060 // 5ffc + 5fa8: 3401 movi r4, 1 + 5faa: 9360 ld.w r3, (r3, 0x0) + 5fac: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 5fae: 3400 movi r4, 0 + 5fb0: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fb2: 1094 lrw r4, 0xd22d0000 // 6000 + 5fb4: 6c10 or r0, r4 + 5fb6: 1074 lrw r3, 0x2000005c // 6004 + 5fb8: 6c40 or r1, r0 + 5fba: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fbc: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 5fbe: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 5fc0: 4001 lsli r0, r0, 1 + 5fc2: 9324 ld.w r1, (r3, 0x10) + 5fc4: 6840 and r1, r0 + 5fc6: 3940 cmpnei r1, 0 + 5fc8: 0ffd bf 0x5fc2 // 5fc2 + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 5fca: 1030 lrw r1, 0xc33c0000 // 6008 + 5fcc: 6c48 or r1, r2 + 5fce: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 5fd0: 9328 ld.w r1, (r3, 0x20) + 5fd2: 644a cmpne r2, r1 + 5fd4: 0bfe bt 0x5fd0 // 5fd0 +} + 5fd6: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 5fd8: 3b40 cmpnei r3, 0 + 5fda: 0c03 bf 0x5fe0 // 5fe0 + 5fdc: 3b49 cmpnei r3, 9 + 5fde: 0807 bt 0x5fec // 5fec + IFC->CEDR=0X01; //CLKEN + 5fe0: 1087 lrw r4, 0x20000060 // 5ffc + 5fe2: 3501 movi r5, 1 + 5fe4: 9480 ld.w r4, (r4, 0x0) + 5fe6: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 5fe8: 3502 movi r5, 2 + 5fea: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 5fec: 3b4a cmpnei r3, 10 + 5fee: 0bd4 bt 0x5f96 // 5f96 + IFC->CEDR=0X01; //CLKEN + 5ff0: 1083 lrw r4, 0x20000060 // 5ffc + 5ff2: 3501 movi r5, 1 + 5ff4: 9480 ld.w r4, (r4, 0x0) + 5ff6: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 5ff8: b4a5 st.w r5, (r4, 0x14) + 5ffa: 07d1 br 0x5f9c // 5f9c + 5ffc: 20000060 .long 0x20000060 + 6000: d22d0000 .long 0xd22d0000 + 6004: 2000005c .long 0x2000005c + 6008: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +0000600c : +//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) +{ + 600c: 14d1 push r4, r15 + 600e: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 6010: 3110 movi r1, 16 + 6012: 3000 movi r0, 0 + 6014: e3ffffa0 bsr 0x5f54 // 5f54 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 6018: 1066 lrw r3, 0x2000005c // 6030 + 601a: 9360 ld.w r3, (r3, 0x0) + 601c: 9319 ld.w r0, (r3, 0x64) + 601e: 3884 bclri r0, 4 + 6020: 3885 bclri r0, 5 + 6022: 6c10 or r0, r4 + 6024: b319 st.w r0, (r3, 0x64) + 6026: 3010 movi r0, 16 + 6028: e3ffff36 bsr 0x5e94 // 5e94 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 602c: 1491 pop r4, r15 + 602e: 0000 bkpt + 6030: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00006034 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 6034: 106c lrw r3, 0x2000005c // 6064 + if(NewState != DISABLE) + 6036: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 6038: 9360 ld.w r3, (r3, 0x0) + 603a: 237f addi r3, 128 + if(NewState != DISABLE) + 603c: 0c0a bf 0x6050 // 6050 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 603e: 104b lrw r2, 0x78870000 // 6068 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 6040: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 6042: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 6044: 4125 lsli r1, r1, 5 + 6046: 934d ld.w r2, (r3, 0x34) + 6048: 6884 and r2, r1 + 604a: 3a40 cmpnei r2, 0 + 604c: 0ffd bf 0x6046 // 6046 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 604e: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 6050: 1047 lrw r2, 0x788755aa // 606c + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 6052: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 6054: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 6056: 4125 lsli r1, r1, 5 + 6058: 934d ld.w r2, (r3, 0x34) + 605a: 6884 and r2, r1 + 605c: 3a40 cmpnei r2, 0 + 605e: 0bfd bt 0x6058 // 6058 + 6060: 07f7 br 0x604e // 604e + 6062: 0000 bkpt + 6064: 2000005c .long 0x2000005c + 6068: 78870000 .long 0x78870000 + 606c: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00006070 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 6070: 1064 lrw r3, 0x2000005c // 6080 + 6072: 32b4 movi r2, 180 + 6074: 9360 ld.w r3, (r3, 0x0) + 6076: 237f addi r3, 128 + 6078: 4257 lsli r2, r2, 23 + 607a: b34e st.w r2, (r3, 0x38) +} + 607c: 783c jmp r15 + 607e: 0000 bkpt + 6080: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00006084 : +//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; + 6084: 1044 lrw r2, 0x87780000 // 6094 + 6086: 1065 lrw r3, 0x2000005c // 6098 + 6088: 6c48 or r1, r2 + 608a: 9360 ld.w r3, (r3, 0x0) + 608c: 6c04 or r0, r1 + 608e: 237f addi r3, 128 + 6090: b30d st.w r0, (r3, 0x34) +} + 6092: 783c jmp r15 + 6094: 87780000 .long 0x87780000 + 6098: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +0000609c : +//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) +{ + 609c: 14c3 push r4-r6 + 609e: 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; + 60a0: 10c5 lrw r6, 0xb44b0000 // 60b4 + 60a2: 6d18 or r4, r6 + 60a4: 6cd0 or r3, r4 + 60a6: 6c8c or r2, r3 + 60a8: 6c48 or r1, r2 + 60aa: 10a4 lrw r5, 0x2000005c // 60b8 + 60ac: 6c04 or r0, r1 + 60ae: 95a0 ld.w r5, (r5, 0x0) + 60b0: b513 st.w r0, (r5, 0x4c) +} + 60b2: 1483 pop r4-r6 + 60b4: b44b0000 .long 0xb44b0000 + 60b8: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +000060bc : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 60bc: 1066 lrw r3, 0x2000005c // 60d4 + 60be: 3180 movi r1, 128 + 60c0: 9360 ld.w r3, (r3, 0x0) + 60c2: 3280 movi r2, 128 + 60c4: 604c addu r1, r3 + 60c6: 4244 lsli r2, r2, 4 + 60c8: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 60ca: 935d ld.w r2, (r3, 0x74) + 60cc: 3aab bseti r2, 11 + 60ce: b35d st.w r2, (r3, 0x74) +} + 60d0: 783c jmp r15 + 60d2: 0000 bkpt + 60d4: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +000060d8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 60d8: 1066 lrw r3, 0x2000005c // 60f0 + 60da: 3180 movi r1, 128 + 60dc: 9360 ld.w r3, (r3, 0x0) + 60de: 3280 movi r2, 128 + 60e0: 604c addu r1, r3 + 60e2: 4241 lsli r2, r2, 1 + 60e4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 60e6: 935d ld.w r2, (r3, 0x74) + 60e8: 3aa8 bseti r2, 8 + 60ea: b35d st.w r2, (r3, 0x74) +} + 60ec: 783c jmp r15 + 60ee: 0000 bkpt + 60f0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +000060f4 : +//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) + 60f4: 3a40 cmpnei r2, 0 + 60f6: 0c04 bf 0x60fe // 60fe + 60f8: 3a41 cmpnei r2, 1 + 60fa: 0c0e bf 0x6116 // 6116 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 60fc: 783c jmp r15 + 60fe: 106d lrw r3, 0x2000005c // 6130 + if(NewState != DISABLE) + 6100: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 6102: 9360 ld.w r3, (r3, 0x0) + 6104: 237f addi r3, 128 + 6106: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 6108: 0c04 bf 0x6110 // 6110 + SYSCON->EXIRT |=EXIPIN; + 610a: 6c48 or r1, r2 + 610c: b325 st.w r1, (r3, 0x14) + 610e: 07f7 br 0x60fc // 60fc + SYSCON->EXIRT &=~EXIPIN; + 6110: 6885 andn r2, r1 + 6112: b345 st.w r2, (r3, 0x14) + 6114: 07f4 br 0x60fc // 60fc + 6116: 1067 lrw r3, 0x2000005c // 6130 + if(NewState != DISABLE) + 6118: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 611a: 9360 ld.w r3, (r3, 0x0) + 611c: 237f addi r3, 128 + 611e: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 6120: 0c04 bf 0x6128 // 6128 + SYSCON->EXIFT |=EXIPIN; + 6122: 6c48 or r1, r2 + 6124: b326 st.w r1, (r3, 0x18) + 6126: 07eb br 0x60fc // 60fc + SYSCON->EXIFT &=~EXIPIN; + 6128: 6885 andn r2, r1 + 612a: b346 st.w r2, (r3, 0x18) +} + 612c: 07e8 br 0x60fc // 60fc + 612e: 0000 bkpt + 6130: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00006134 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 6134: 106b lrw r3, 0x2000005c // 6160 + 6136: 104c lrw r2, 0x3fff // 6164 + 6138: 9360 ld.w r3, (r3, 0x0) + 613a: 237f addi r3, 128 + if(NewState != DISABLE) + 613c: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 613e: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 6140: 0c0c bf 0x6158 // 6158 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 6142: 9347 ld.w r2, (r3, 0x1c) + 6144: 6c84 or r2, r1 + 6146: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 6148: 9349 ld.w r2, (r3, 0x24) + 614a: 6884 and r2, r1 + 614c: 3a40 cmpnei r2, 0 + 614e: 0ffd bf 0x6148 // 6148 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 6150: 934b ld.w r2, (r3, 0x2c) + 6152: 6c48 or r1, r2 + 6154: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 6156: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 6158: 9348 ld.w r2, (r3, 0x20) + 615a: 6c48 or r1, r2 + 615c: b328 st.w r1, (r3, 0x20) +} + 615e: 07fc br 0x6156 // 6156 + 6160: 2000005c .long 0x2000005c + 6164: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00006168 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 6168: b02b st.w r1, (r0, 0x2c) +} + 616a: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +0000616c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 616c: 3380 movi r3, 128 + 616e: 4370 lsli r3, r3, 16 + 6170: 1042 lrw r2, 0xe000e100 // 6178 + 6172: b260 st.w r3, (r2, 0x0) +} + 6174: 783c jmp r15 + 6176: 0000 bkpt + 6178: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +0000617c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 617c: 3202 movi r2, 2 + 617e: 1062 lrw r3, 0xe000e100 // 6184 + 6180: b340 st.w r2, (r3, 0x0) +} + 6182: 783c jmp r15 + 6184: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +00006188 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 6188: 3202 movi r2, 2 + 618a: 1062 lrw r3, 0xe000e180 // 6190 + 618c: b340 st.w r2, (r3, 0x0) +} + 618e: 783c jmp r15 + 6190: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_Software_Reset: + +00006194 : +//EntryParameter:None +//ReturnValue:MCU reset +/*************************************************************/ +void SYSCON_Software_Reset(void) +{ + SYSCON->IDCCR=IDCCR_KEY|SWRST; + 6194: 1063 lrw r3, 0x2000005c // 61a0 + 6196: 1044 lrw r2, 0xe11e0080 // 61a4 + 6198: 9360 ld.w r3, (r3, 0x0) + 619a: b340 st.w r2, (r3, 0x0) +} + 619c: 783c jmp r15 + 619e: 0000 bkpt + 61a0: 2000005c .long 0x2000005c + 61a4: e11e0080 .long 0xe11e0080 + +Disassembly of section .text.SYSCON_INT_Priority: + +000061a8 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61a8: 1066 lrw r3, 0xe000e400 // 61c0 + 61aa: 1047 lrw r2, 0xc0c0c0c0 // 61c4 + 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 + 61ac: 1027 lrw r1, 0xc0c000c0 // 61c8 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 61ae: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 61b0: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 61b2: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 61b4: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 61b6: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 61b8: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 61ba: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 61bc: b347 st.w r2, (r3, 0x1c) +} + 61be: 783c jmp r15 + 61c0: e000e400 .long 0xe000e400 + 61c4: c0c0c0c0 .long 0xc0c0c0c0 + 61c8: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000061cc : +//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) +{ + 61cc: 14c1 push r4 + 61ce: 4862 lsri r3, r0, 2 + 61d0: 4342 lsli r2, r3, 2 + 61d2: 106a lrw r3, 0x20000064 // 61f8 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 61d4: 3403 movi r4, 3 + 61d6: 9360 ld.w r3, (r3, 0x0) + 61d8: 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)); + 61ea: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 61ee: 7040 lsl r1, r0 + 61f0: 6c48 or r1, r2 + 61f2: b320 st.w r1, (r3, 0x0) +} + 61f4: 1481 pop r4 + 61f6: 0000 bkpt + 61f8: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +000061fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 61fc: 1075 lrw r3, 0x2000004c // 6250 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 61fe: 1036 lrw r1, 0x20000048 // 6254 + 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; + 6200: 1016 lrw r0, 0xffff // 6258 + GPIOA0->CONLR &= 0xFF000000; + 6202: 9340 ld.w r2, (r3, 0x0) + 6204: 9260 ld.w r3, (r2, 0x0) + 6206: 4b78 lsri r3, r3, 24 + 6208: 4378 lsli r3, r3, 24 + 620a: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 620c: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 620e: 3300 movi r3, 0 + 6210: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 6212: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 6214: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 6216: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 6218: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 621a: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 621c: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 621e: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 6220: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 6222: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 6224: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 6226: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 6228: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 622a: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 622c: 303f movi r0, 63 + 622e: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 6230: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 6232: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 6234: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 6236: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 6238: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 623a: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 623c: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 623e: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 6240: 1047 lrw r2, 0x20000044 // 625c + 6242: 9240 ld.w r2, (r2, 0x0) + 6244: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 6246: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 6248: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 624a: 330f movi r3, 15 + 624c: b263 st.w r3, (r2, 0xc) +} + 624e: 783c jmp r15 + 6250: 2000004c .long 0x2000004c + 6254: 20000048 .long 0x20000048 + 6258: 0000ffff .long 0x0000ffff + 625c: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +00006260 : +//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) +{ + 6260: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 6262: 3907 cmphsi r1, 8 +{ + 6264: 6d03 mov r4, r0 + if(PinNum<8) + 6266: 0830 bt 0x62c6 // 62c6 + { + switch (PinNum) + 6268: 5903 subi r0, r1, 1 + 626a: 3806 cmphsi r0, 7 + 626c: 0827 bt 0x62ba // 62ba + 626e: e3ffe947 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6272: 1004 .short 0x1004 + 6274: 1d1a1613 .long 0x1d1a1613 + 6278: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 627a: 3300 movi r3, 0 + 627c: 3104 movi r1, 4 + 627e: 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) + 6280: 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< + 6296: 07f5 br 0x6280 // 6280 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 6298: 310c movi r1, 12 + 629a: 1166 lrw r3, 0xffff0fff // 6330 + 629c: 07f2 br 0x6280 // 6280 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 629e: 3110 movi r1, 16 + 62a0: 1165 lrw r3, 0xfff10000 // 6334 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62a2: 2b00 subi r3, 1 + 62a4: 07ee br 0x6280 // 6280 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 62a6: 3114 movi r1, 20 + 62a8: 1164 lrw r3, 0xff100000 // 6338 + 62aa: 07fc br 0x62a2 // 62a2 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 62ac: 33f1 movi r3, 241 + 62ae: 3118 movi r1, 24 + 62b0: 4378 lsli r3, r3, 24 + 62b2: 07f8 br 0x62a2 // 62a2 + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 62b4: 311c movi r1, 28 + 62b6: 1162 lrw r3, 0xfffffff // 633c + 62b8: 07e4 br 0x6280 // 6280 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 62ba: 3300 movi r3, 0 + 62bc: 3100 movi r1, 0 + 62be: 2b0f subi r3, 16 + 62c0: 07e0 br 0x6280 // 6280 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 62c6: 390f cmphsi r1, 16 + 62c8: 0be4 bt 0x6290 // 6290 + switch (PinNum) + 62ca: 2908 subi r1, 9 + 62cc: 3906 cmphsi r1, 7 + 62ce: 6c07 mov r0, r1 + 62d0: 0827 bt 0x631e // 631e + 62d2: e3ffe915 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 62d6: 1004 .short 0x1004 + 62d8: 1d1a1613 .long 0x1d1a1613 + 62dc: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 62de: 3300 movi r3, 0 + 62e0: 3104 movi r1, 4 + 62e2: 2bf0 subi r3, 241 + if (Dir) + 62e4: 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; + 62f6: 3108 movi r1, 8 + 62f8: 106d lrw r3, 0xfffff0ff // 632c + 62fa: 07f5 br 0x62e4 // 62e4 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 62fc: 310c movi r1, 12 + 62fe: 106d lrw r3, 0xffff0fff // 6330 + 6300: 07f2 br 0x62e4 // 62e4 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 6302: 3110 movi r1, 16 + 6304: 106c lrw r3, 0xfff10000 // 6334 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 6306: 2b00 subi r3, 1 + 6308: 07ee br 0x62e4 // 62e4 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 630a: 3114 movi r1, 20 + 630c: 106b lrw r3, 0xff100000 // 6338 + 630e: 07fc br 0x6306 // 6306 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 6310: 33f1 movi r3, 241 + 6312: 3118 movi r1, 24 + 6314: 4378 lsli r3, r3, 24 + 6316: 07f8 br 0x6306 // 6306 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 6318: 311c movi r1, 28 + 631a: 1069 lrw r3, 0xfffffff // 633c + 631c: 07e4 br 0x62e4 // 62e4 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 631e: 3300 movi r3, 0 + 6320: 3100 movi r1, 0 + 6322: 2b0f subi r3, 16 + 6324: 07e0 br 0x62e4 // 62e4 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 632a: 0000 bkpt + 632c: fffff0ff .long 0xfffff0ff + 6330: ffff0fff .long 0xffff0fff + 6334: fff10000 .long 0xfff10000 + 6338: ff100000 .long 0xff100000 + 633c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00006340 : +//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)); + 6340: 4121 lsli r1, r1, 1 + 6342: 3203 movi r2, 3 + 6344: 9068 ld.w r3, (r0, 0x20) + 6346: 7084 lsl r2, r1 + 6348: 68c9 andn r3, r2 + 634a: 3201 movi r2, 1 + 634c: 7084 lsl r2, r1 + 634e: 6cc8 or r3, r2 + 6350: b068 st.w r3, (r0, 0x20) +} + 6352: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00006354 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 6354: 4121 lsli r1, r1, 1 + 6356: 3301 movi r3, 1 + 6358: 9049 ld.w r2, (r0, 0x24) + 635a: 70c4 lsl r3, r1 + 635c: 6cc8 or r3, r2 + 635e: b069 st.w r3, (r0, 0x24) +} + 6360: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00006364 : +//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) +{ + 6364: 14c1 push r4 + 6366: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 6368: 3a0f cmphsi r2, 16 + 636a: 084f bt 0x6408 // 6408 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 636c: 6ccb mov r3, r2 + 636e: 3b83 bclri r3, 3 + 6370: 3b40 cmpnei r3, 0 + 6372: 0813 bt 0x6398 // 6398 + { + R_data_temp=0xfffffff0; + 6374: 2b0f subi r3, 16 + 6376: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 6378: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 637a: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 637c: dc6e0003 st.b r3, (r14, 0x3) + 6380: 1176 lrw r3, 0x20000044 // 6458 + if(Selete_EXI_x<8) + 6382: 0c38 bf 0x63f2 // 63f2 + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 6398: 3b41 cmpnei r3, 1 + 639a: 0806 bt 0x63a6 // 63a6 + R_data_temp=0xffffff0f; + 639c: 3300 movi r3, 0 + 639e: 2bf0 subi r3, 241 + 63a0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 63a2: 3304 movi r3, 4 + 63a4: 07eb br 0x637a // 637a + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 63a6: 3b42 cmpnei r3, 2 + 63a8: 0805 bt 0x63b2 // 63b2 + R_data_temp=0xfffff0ff; + 63aa: 116d lrw r3, 0xfffff0ff // 645c + 63ac: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 63ae: 3308 movi r3, 8 + 63b0: 07e5 br 0x637a // 637a + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 63b2: 3b43 cmpnei r3, 3 + 63b4: 0805 bt 0x63be // 63be + R_data_temp=0xffff0fff; + 63b6: 116b lrw r3, 0xffff0fff // 6460 + 63b8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 63ba: 330c movi r3, 12 + 63bc: 07df br 0x637a // 637a + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 63be: 3b44 cmpnei r3, 4 + 63c0: 0806 bt 0x63cc // 63cc + R_data_temp=0xfff0ffff; + 63c2: 1169 lrw r3, 0xfff10000 // 6464 + 63c4: 2b00 subi r3, 1 + 63c6: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 63c8: 3310 movi r3, 16 + 63ca: 07d8 br 0x637a // 637a + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 63cc: 3b45 cmpnei r3, 5 + 63ce: 0806 bt 0x63da // 63da + R_data_temp=0xff0fffff; + 63d0: 1166 lrw r3, 0xff100000 // 6468 + 63d2: 2b00 subi r3, 1 + 63d4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 63d6: 3314 movi r3, 20 + 63d8: 07d1 br 0x637a // 637a + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 63da: 3b46 cmpnei r3, 6 + 63dc: 0807 bt 0x63ea // 63ea + R_data_temp=0xf0ffffff; + 63de: 33f1 movi r3, 241 + 63e0: 4378 lsli r3, r3, 24 + 63e2: 2b00 subi r3, 1 + 63e4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 63e6: 3318 movi r3, 24 + 63e8: 07c9 br 0x637a // 637a + R_data_temp=0x0fffffff; + 63ea: 1161 lrw r3, 0xfffffff // 646c + 63ec: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 63ee: 331c movi r3, 28 + 63f0: 07c5 br 0x637a // 637a + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 6404: 1402 addi r14, r14, 8 + 6406: 1481 pop r4 + else if(Selete_EXI_x<20) + 6408: 3a13 cmphsi r2, 20 + 640a: 0bfd bt 0x6404 // 6404 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 640c: 3840 cmpnei r0, 0 + 640e: 0814 bt 0x6436 // 6436 + 6410: 3300 movi r3, 0 + 6412: 2b0f subi r3, 16 + 6414: 60c8 addu r3, r2 + 6416: 3b01 cmphsi r3, 2 + 6418: 0bf6 bt 0x6404 // 6404 + if(Selete_EXI_x==16) + 641a: 3a50 cmpnei r2, 16 + 641c: 106f lrw r3, 0x20000044 // 6458 + 641e: 0806 bt 0x642a // 642a + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 6420: 9340 ld.w r2, (r3, 0x0) + 6422: 9262 ld.w r3, (r2, 0x8) + 6424: 6c4c or r1, r3 + 6426: b222 st.w r1, (r2, 0x8) + 6428: 07ee br 0x6404 // 6404 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 642a: 9360 ld.w r3, (r3, 0x0) + 642c: 9342 ld.w r2, (r3, 0x8) + 642e: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 6430: 6c48 or r1, r2 + 6432: b322 st.w r1, (r3, 0x8) +} + 6434: 07e8 br 0x6404 // 6404 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 6436: 3842 cmpnei r0, 2 + 6438: 0be6 bt 0x6404 // 6404 + 643a: 3300 movi r3, 0 + 643c: 2b11 subi r3, 18 + 643e: 60c8 addu r3, r2 + 6440: 3b01 cmphsi r3, 2 + 6442: 0be1 bt 0x6404 // 6404 + 6444: 1065 lrw r3, 0x20000044 // 6458 + if(Selete_EXI_x==18) + 6446: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 6448: 9360 ld.w r3, (r3, 0x0) + 644a: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 644c: 0803 bt 0x6452 // 6452 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 644e: 4128 lsli r1, r1, 8 + 6450: 07f0 br 0x6430 // 6430 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 6452: 412c lsli r1, r1, 12 + 6454: 07ee br 0x6430 // 6430 + 6456: 0000 bkpt + 6458: 20000044 .long 0x20000044 + 645c: fffff0ff .long 0xfffff0ff + 6460: ffff0fff .long 0xffff0fff + 6464: fff10000 .long 0xfff10000 + 6468: ff100000 .long 0xff100000 + 646c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00006470 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 6470: 14d0 push r15 + switch (EXI_IO) + 6472: 380f cmphsi r0, 16 + 6474: 0812 bt 0x6498 // 6498 + 6476: 117d lrw r3, 0x2000004c // 6568 + 6478: e3ffe842 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 647c: 1d150f08 .long 0x1d150f08 + 6480: 39322b24 .long 0x39322b24 + 6484: 544c463f .long 0x544c463f + 6488: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 648c: 9340 ld.w r2, (r3, 0x0) + 648e: 9260 ld.w r3, (r2, 0x0) + 6490: 310f movi r1, 15 + 6492: 68c5 andn r3, r1 + 6494: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 6496: b260 st.w r3, (r2, 0x0) + 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; + } +} + 6498: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 649a: 9340 ld.w r2, (r3, 0x0) + 649c: 9260 ld.w r3, (r2, 0x0) + 649e: 31f0 movi r1, 240 + 64a0: 68c5 andn r3, r1 + 64a2: 3ba4 bseti r3, 4 + 64a4: 07f9 br 0x6496 // 6496 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 64a6: 9320 ld.w r1, (r3, 0x0) + 64a8: 32f0 movi r2, 240 + 64aa: 9160 ld.w r3, (r1, 0x0) + 64ac: 4244 lsli r2, r2, 4 + 64ae: 68c9 andn r3, r2 + 64b0: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64b2: b160 st.w r3, (r1, 0x0) + 64b4: 07f2 br 0x6498 // 6498 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 64b6: 9320 ld.w r1, (r3, 0x0) + 64b8: 32f0 movi r2, 240 + 64ba: 9160 ld.w r3, (r1, 0x0) + 64bc: 4248 lsli r2, r2, 8 + 64be: 68c9 andn r3, r2 + 64c0: 3bac bseti r3, 12 + 64c2: 07f8 br 0x64b2 // 64b2 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 64c4: 9320 ld.w r1, (r3, 0x0) + 64c6: 32f0 movi r2, 240 + 64c8: 9160 ld.w r3, (r1, 0x0) + 64ca: 424c lsli r2, r2, 12 + 64cc: 68c9 andn r3, r2 + 64ce: 3bb0 bseti r3, 16 + 64d0: 07f1 br 0x64b2 // 64b2 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 64d2: 9320 ld.w r1, (r3, 0x0) + 64d4: 32f0 movi r2, 240 + 64d6: 9160 ld.w r3, (r1, 0x0) + 64d8: 4250 lsli r2, r2, 16 + 64da: 68c9 andn r3, r2 + 64dc: 3bb4 bseti r3, 20 + 64de: 07ea br 0x64b2 // 64b2 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 64e0: 9320 ld.w r1, (r3, 0x0) + 64e2: 32f0 movi r2, 240 + 64e4: 9160 ld.w r3, (r1, 0x0) + 64e6: 4254 lsli r2, r2, 20 + 64e8: 68c9 andn r3, r2 + 64ea: 3bb8 bseti r3, 24 + 64ec: 07e3 br 0x64b2 // 64b2 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 64ee: 9340 ld.w r2, (r3, 0x0) + 64f0: 9260 ld.w r3, (r2, 0x0) + 64f2: 4364 lsli r3, r3, 4 + 64f4: 4b64 lsri r3, r3, 4 + 64f6: 3bbc bseti r3, 28 + 64f8: 07cf br 0x6496 // 6496 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 64fa: 9340 ld.w r2, (r3, 0x0) + 64fc: 9261 ld.w r3, (r2, 0x4) + 64fe: 310f movi r1, 15 + 6500: 68c5 andn r3, r1 + 6502: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 6504: b261 st.w r3, (r2, 0x4) +} + 6506: 07c9 br 0x6498 // 6498 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 6508: 9340 ld.w r2, (r3, 0x0) + 650a: 9261 ld.w r3, (r2, 0x4) + 650c: 31f0 movi r1, 240 + 650e: 68c5 andn r3, r1 + 6510: 3ba4 bseti r3, 4 + 6512: 07f9 br 0x6504 // 6504 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 6514: 9320 ld.w r1, (r3, 0x0) + 6516: 32f0 movi r2, 240 + 6518: 9161 ld.w r3, (r1, 0x4) + 651a: 4244 lsli r2, r2, 4 + 651c: 68c9 andn r3, r2 + 651e: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 6520: b161 st.w r3, (r1, 0x4) + 6522: 07bb br 0x6498 // 6498 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 6524: 9320 ld.w r1, (r3, 0x0) + 6526: 32f0 movi r2, 240 + 6528: 9161 ld.w r3, (r1, 0x4) + 652a: 4248 lsli r2, r2, 8 + 652c: 68c9 andn r3, r2 + 652e: 3bac bseti r3, 12 + 6530: 07f8 br 0x6520 // 6520 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 6532: 9320 ld.w r1, (r3, 0x0) + 6534: 32f0 movi r2, 240 + 6536: 9161 ld.w r3, (r1, 0x4) + 6538: 424c lsli r2, r2, 12 + 653a: 68c9 andn r3, r2 + 653c: 3bb0 bseti r3, 16 + 653e: 07f1 br 0x6520 // 6520 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 6540: 9320 ld.w r1, (r3, 0x0) + 6542: 32f0 movi r2, 240 + 6544: 9161 ld.w r3, (r1, 0x4) + 6546: 4250 lsli r2, r2, 16 + 6548: 68c9 andn r3, r2 + 654a: 3bb4 bseti r3, 20 + 654c: 07ea br 0x6520 // 6520 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 654e: 9320 ld.w r1, (r3, 0x0) + 6550: 32f0 movi r2, 240 + 6552: 9161 ld.w r3, (r1, 0x4) + 6554: 4254 lsli r2, r2, 20 + 6556: 68c9 andn r3, r2 + 6558: 3bb8 bseti r3, 24 + 655a: 07e3 br 0x6520 // 6520 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 655c: 9340 ld.w r2, (r3, 0x0) + 655e: 9261 ld.w r3, (r2, 0x4) + 6560: 4364 lsli r3, r3, 4 + 6562: 4b64 lsri r3, r3, 4 + 6564: 3bbc bseti r3, 28 + 6566: 07cf br 0x6504 // 6504 + 6568: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +0000656c : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 657c: 9045 ld.w r2, (r0, 0x14) + 657e: 3301 movi r3, 1 + 6580: 7085 lsr r2, r1 + 6582: 688c and r2, r3 + { + if (dat==1) + 6584: 3a40 cmpnei r2, 0 + 6586: 70c4 lsl r3, r1 + 6588: 0c03 bf 0x658e // 658e + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00006592 : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 65a4: 1064 lrw r3, 0x20000014 // 65b4 + 65a6: 9340 ld.w r2, (r3, 0x0) + 65a8: 9261 ld.w r3, (r2, 0x4) + 65aa: 3bac bseti r3, 12 + 65ac: 3bae bseti r3, 14 + 65ae: b261 st.w r3, (r2, 0x4) +} + 65b0: 783c jmp r15 + 65b2: 0000 bkpt + 65b4: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000065b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 65b8: 1063 lrw r3, 0x20000010 // 65c4 + 65ba: 9360 ld.w r3, (r3, 0x0) + 65bc: 9340 ld.w r2, (r3, 0x0) + 65be: 6c08 or r0, r2 + 65c0: b300 st.w r0, (r3, 0x0) +} + 65c2: 783c jmp r15 + 65c4: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000065c8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 65c8: 3300 movi r3, 0 + 65ca: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 65cc: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 65ce: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 65d0: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 65d2: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 65d4: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 65d6: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 65d8: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 65da: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 65dc: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 65de: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 65e0: b06d st.w r3, (r0, 0x34) +} + 65e2: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000065e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 65e4: 9060 ld.w r3, (r0, 0x0) + 65e6: 3ba0 bseti r3, 0 + 65e8: b060 st.w r3, (r0, 0x0) +} + 65ea: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000065ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 65ec: 9060 ld.w r3, (r0, 0x0) + 65ee: 3bac bseti r3, 12 + 65f0: 3bae bseti r3, 14 + 65f2: b060 st.w r3, (r0, 0x0) +} + 65f4: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000065f6 : +//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) +{ + 65f6: 14c3 push r4-r6 + 65f8: 98a4 ld.w r5, (r14, 0x10) + 65fa: 6d97 mov r6, r5 + 65fc: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 65fe: 6d18 or r4, r6 + 6600: 6cd0 or r3, r4 + 6602: 90a1 ld.w r5, (r0, 0x4) + 6604: 6c4c or r1, r3 + 6606: 6c54 or r1, r5 + 6608: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 660a: b042 st.w r2, (r0, 0x8) +} + 660c: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000660e : +//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) +{ + 660e: 14c4 push r4-r7 + 6610: 1421 subi r14, r14, 4 + 6612: 9885 ld.w r4, (r14, 0x14) + 6614: 6dd3 mov r7, r4 + 6616: 9886 ld.w r4, (r14, 0x18) + 6618: b880 st.w r4, (r14, 0x0) + 661a: 9887 ld.w r4, (r14, 0x1c) + 661c: 6d93 mov r6, r4 + 661e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 6620: 6d58 or r5, r6 + 6622: 98c0 ld.w r6, (r14, 0x0) + 6624: 6d58 or r5, r6 + 6626: 6d5c or r5, r7 + 6628: 6cd4 or r3, r5 + 662a: 6c8c or r2, r3 + 662c: 9081 ld.w r4, (r0, 0x4) + 662e: 6c48 or r1, r2 + 6630: 6d04 or r4, r1 + 6632: 6d9f mov r6, r7 + 6634: b081 st.w r4, (r0, 0x4) +} + 6636: 1401 addi r14, r14, 4 + 6638: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000663a : +//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; + 663a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 663c: b044 st.w r2, (r0, 0x10) +} + 663e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00006640 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 6640: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 6642: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 6644: 0c04 bf 0x664c // 664c + BTx->IMCR |= BT_IMSCR_X; + 6646: 6c8c or r2, r3 + 6648: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 664a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 664c: 68c9 andn r3, r2 + 664e: b06b st.w r3, (r0, 0x2c) +} + 6650: 07fd br 0x664a // 664a + +Disassembly of section .text.BT1_INT_ENABLE: + +00006654 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 6654: 3380 movi r3, 128 + 6656: 4376 lsli r3, r3, 22 + 6658: 1042 lrw r2, 0xe000e100 // 6660 + 665a: b260 st.w r3, (r2, 0x0) +} + 665c: 783c jmp r15 + 665e: 0000 bkpt + 6660: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00006664 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 6664: 1065 lrw r3, 0x20000040 // 6678 + 6666: 3200 movi r2, 0 + 6668: 9360 ld.w r3, (r3, 0x0) + 666a: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 666c: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 666e: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 6670: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 6672: b344 st.w r2, (r3, 0x10) +} + 6674: 783c jmp r15 + 6676: 0000 bkpt + 6678: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +0000667c : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 667c: 1065 lrw r3, 0x2000003c // 6690 + 667e: 3200 movi r2, 0 + 6680: 9360 ld.w r3, (r3, 0x0) + 6682: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 6684: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 6686: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 6688: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 668a: b344 st.w r2, (r3, 0x10) +} + 668c: 783c jmp r15 + 668e: 0000 bkpt + 6690: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00006694 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 6694: 1065 lrw r3, 0x20000038 // 66a8 + 6696: 3200 movi r2, 0 + 6698: 9360 ld.w r3, (r3, 0x0) + 669a: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 669c: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 669e: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 66a0: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 66a2: b344 st.w r2, (r3, 0x10) +} + 66a4: 783c jmp r15 + 66a6: 0000 bkpt + 66a8: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000066ac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 66ac: 1065 lrw r3, 0x20000040 // 66c0 + 66ae: 320f movi r2, 15 + 66b0: 9360 ld.w r3, (r3, 0x0) + 66b2: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66b4: 3380 movi r3, 128 + 66b6: 4366 lsli r3, r3, 6 + 66b8: 1043 lrw r2, 0xe000e100 // 66c4 + 66ba: b260 st.w r3, (r2, 0x0) +} + 66bc: 783c jmp r15 + 66be: 0000 bkpt + 66c0: 20000040 .long 0x20000040 + 66c4: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART1_Int_Enable: + +000066c8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 66c8: 1065 lrw r3, 0x2000003c // 66dc + 66ca: 320f movi r2, 15 + 66cc: 9360 ld.w r3, (r3, 0x0) + 66ce: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66d0: 3380 movi r3, 128 + 66d2: 4367 lsli r3, r3, 7 + 66d4: 1043 lrw r2, 0xe000e100 // 66e0 + 66d6: b260 st.w r3, (r2, 0x0) +} + 66d8: 783c jmp r15 + 66da: 0000 bkpt + 66dc: 2000003c .long 0x2000003c + 66e0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000066e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 66e4: 1065 lrw r3, 0x20000038 // 66f8 + 66e6: 320f movi r2, 15 + 66e8: 9360 ld.w r3, (r3, 0x0) + 66ea: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 66ec: 3380 movi r3, 128 + 66ee: 4368 lsli r3, r3, 8 + 66f0: 1043 lrw r2, 0xe000e100 // 66fc + 66f2: b260 st.w r3, (r2, 0x0) +} + 66f4: 783c jmp r15 + 66f6: 0000 bkpt + 66f8: 20000038 .long 0x20000038 + 66fc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00006700 : +//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) + 6700: 3840 cmpnei r0, 0 + 6702: 0821 bt 0x6744 // 6744 + { + if(UART_IO_G==0) + 6704: 3940 cmpnei r1, 0 + 6706: 080a bt 0x671a // 671a + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 6708: 1177 lrw r3, 0x2000004c // 67e4 + 670a: 31ff movi r1, 255 + 670c: 9340 ld.w r2, (r3, 0x0) + 670e: 9260 ld.w r3, (r2, 0x0) + 6710: 68c5 andn r3, r1 + 6712: 3ba2 bseti r3, 2 + 6714: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 6716: b260 st.w r3, (r2, 0x0) + 6718: 0415 br 0x6742 // 6742 + else if(UART_IO_G==1) + 671a: 3941 cmpnei r1, 1 + 671c: 0813 bt 0x6742 // 6742 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 671e: 1172 lrw r3, 0x2000004c // 67e4 + 6720: 31f0 movi r1, 240 + 6722: 9340 ld.w r2, (r3, 0x0) + 6724: 9260 ld.w r3, (r2, 0x0) + 6726: 4130 lsli r1, r1, 16 + 6728: 68c5 andn r3, r1 + 672a: 31e0 movi r1, 224 + 672c: 412f lsli r1, r1, 15 + 672e: 6cc4 or r3, r1 + 6730: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 6732: 31f0 movi r1, 240 + 6734: 9261 ld.w r3, (r2, 0x4) + 6736: 412c lsli r1, r1, 12 + 6738: 68c5 andn r3, r1 + 673a: 31e0 movi r1, 224 + 673c: 412b lsli r1, r1, 11 + 673e: 6cc4 or r3, r1 + 6740: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 6742: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 6744: 3841 cmpnei r0, 1 + 6746: 082d bt 0x67a0 // 67a0 + if(UART_IO_G==0) + 6748: 3940 cmpnei r1, 0 + 674a: 0814 bt 0x6772 // 6772 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 674c: 1167 lrw r3, 0x20000048 // 67e8 + 674e: 310f movi r1, 15 + 6750: 9340 ld.w r2, (r3, 0x0) + 6752: 9260 ld.w r3, (r2, 0x0) + 6754: 68c5 andn r3, r1 + 6756: 3107 movi r1, 7 + 6758: 6cc4 or r3, r1 + 675a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 675c: 32f0 movi r2, 240 + 675e: 1162 lrw r3, 0x2000004c // 67e4 + 6760: 4250 lsli r2, r2, 16 + 6762: 9320 ld.w r1, (r3, 0x0) + 6764: 9161 ld.w r3, (r1, 0x4) + 6766: 68c9 andn r3, r2 + 6768: 32e0 movi r2, 224 + 676a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 676c: 6cc8 or r3, r2 + 676e: b161 st.w r3, (r1, 0x4) + 6770: 07e9 br 0x6742 // 6742 + else if(UART_IO_G==1) + 6772: 3941 cmpnei r1, 1 + 6774: 080c bt 0x678c // 678c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 6776: 107c lrw r3, 0x2000004c // 67e4 + 6778: 32ff movi r2, 255 + 677a: 9320 ld.w r1, (r3, 0x0) + 677c: 424c lsli r2, r2, 12 + 677e: 9160 ld.w r3, (r1, 0x0) + 6780: 68c9 andn r3, r2 + 6782: 32ee movi r2, 238 + 6784: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 6786: 6cc8 or r3, r2 + 6788: b160 st.w r3, (r1, 0x0) +} + 678a: 07dc br 0x6742 // 6742 + else if(UART_IO_G==2) + 678c: 3942 cmpnei r1, 2 + 678e: 0bda bt 0x6742 // 6742 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 6790: 1075 lrw r3, 0x2000004c // 67e4 + 6792: 32ee movi r2, 238 + 6794: 9320 ld.w r1, (r3, 0x0) + 6796: 9161 ld.w r3, (r1, 0x4) + 6798: 4368 lsli r3, r3, 8 + 679a: 4b68 lsri r3, r3, 8 + 679c: 4257 lsli r2, r2, 23 + 679e: 07e7 br 0x676c // 676c + if (IO_UART_NUM==IO_UART2) + 67a0: 3842 cmpnei r0, 2 + 67a2: 0bd0 bt 0x6742 // 6742 + if(UART_IO_G==0) + 67a4: 3940 cmpnei r1, 0 + 67a6: 0809 bt 0x67b8 // 67b8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 67a8: 106f lrw r3, 0x2000004c // 67e4 + 67aa: 31ff movi r1, 255 + 67ac: 9340 ld.w r2, (r3, 0x0) + 67ae: 9260 ld.w r3, (r2, 0x0) + 67b0: 68c5 andn r3, r1 + 67b2: 3177 movi r1, 119 + 67b4: 6cc4 or r3, r1 + 67b6: 07b0 br 0x6716 // 6716 + else if(UART_IO_G==1) + 67b8: 3941 cmpnei r1, 1 + 67ba: 0809 bt 0x67cc // 67cc + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 67bc: 106a lrw r3, 0x2000004c // 67e4 + 67be: 32ee movi r2, 238 + 67c0: 9320 ld.w r1, (r3, 0x0) + 67c2: 9160 ld.w r3, (r1, 0x0) + 67c4: 4368 lsli r3, r3, 8 + 67c6: 4b68 lsri r3, r3, 8 + 67c8: 4257 lsli r2, r2, 23 + 67ca: 07de br 0x6786 // 6786 + else if(UART_IO_G==2) + 67cc: 3942 cmpnei r1, 2 + 67ce: 0bba bt 0x6742 // 6742 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 67d0: 1066 lrw r3, 0x20000048 // 67e8 + 67d2: 32ff movi r2, 255 + 67d4: 9320 ld.w r1, (r3, 0x0) + 67d6: 4250 lsli r2, r2, 16 + 67d8: 9160 ld.w r3, (r1, 0x0) + 67da: 68c9 andn r3, r2 + 67dc: 32cc movi r2, 204 + 67de: 424f lsli r2, r2, 15 + 67e0: 07d3 br 0x6786 // 6786 + 67e2: 0000 bkpt + 67e4: 2000004c .long 0x2000004c + 67e8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000067ec : +//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); + 67ec: 1063 lrw r3, 0x8000f // 67f8 + 67ee: 6c8c or r2, r3 + 67f0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 67f2: b024 st.w r1, (r0, 0x10) +} + 67f4: 783c jmp r15 + 67f6: 0000 bkpt + 67f8: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000067fc : +//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) +{ + 67fc: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 67fe: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 6800: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 6802: 5b85 subu r4, r3, r1 + 6804: 6490 cmphs r4, r2 + 6806: 0c02 bf 0x680a // 680a + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 6808: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 680a: 8380 ld.b r4, (r3, 0x0) + 680c: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 680e: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 6810: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 6812: 3c40 cmpnei r4, 0 + 6814: 0bfd bt 0x680e // 680e + 6816: 2300 addi r3, 1 + 6818: 07f5 br 0x6802 // 6802 + +Disassembly of section .text.EPT_Stop: + +0000681c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 681c: 1068 lrw r3, 0x20000020 // 683c + 681e: 3280 movi r2, 128 + 6820: 9360 ld.w r3, (r3, 0x0) + 6822: 608c addu r2, r3 + 6824: 1027 lrw r1, 0xa55ac73a // 6840 + 6826: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 6828: 9341 ld.w r2, (r3, 0x4) + 682a: 31fe movi r1, 254 + 682c: 6884 and r2, r1 + 682e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 6830: 3101 movi r1, 1 + 6832: 9341 ld.w r2, (r3, 0x4) + 6834: 6884 and r2, r1 + 6836: 3a40 cmpnei r2, 0 + 6838: 0bfd bt 0x6832 // 6832 +} + 683a: 783c jmp r15 + 683c: 20000020 .long 0x20000020 + 6840: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00006844 : + 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) +{ + 6844: 14c4 push r4-r7 + 6846: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 6848: 1165 lrw r3, 0x20000060 // 68dc + 684a: 1186 lrw r4, 0x5a5a5a5a // 68e0 + 684c: 9360 ld.w r3, (r3, 0x0) + 684e: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 6850: 3407 movi r4, 7 + 6852: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 6854: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 6856: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 6858: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 685a: 9384 ld.w r4, (r3, 0x10) + 685c: 3c40 cmpnei r4, 0 + 685e: 0bfe bt 0x685a // 685a + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 6860: 2102 addi r1, 3 + 6862: 4922 lsri r1, r1, 2 + 6864: 4122 lsli r1, r1, 2 + 6866: 6048 addu r1, r2 + 6868: b820 st.w r1, (r14, 0x0) + 686a: 5829 subu r1, r0, r2 + 686c: b821 st.w r1, (r14, 0x4) + 686e: 9820 ld.w r1, (r14, 0x0) + 6870: 644a cmpne r2, r1 + 6872: 0826 bt 0x68be // 68be + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 6874: 3106 movi r1, 6 + SetUserKey; + 6876: 105b lrw r2, 0x5a5a5a5a // 68e0 + 6878: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 687a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 687c: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 687e: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 6880: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 6882: 9324 ld.w r1, (r3, 0x10) + 6884: 3940 cmpnei r1, 0 + 6886: 0bfe bt 0x6882 // 6882 + //Perform pre-programming 4 + SetUserKey; + 6888: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 688a: 3201 movi r2, 1 + 688c: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 688e: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 6890: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 6892: 934a ld.w r2, (r3, 0x28) + 6894: 3a44 cmpnei r2, 4 + 6896: 0bfe bt 0x6892 // 6892 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 6898: 3102 movi r1, 2 + SetUserKey; + 689a: 1052 lrw r2, 0x5a5a5a5a // 68e0 + 689c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 689e: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 68a0: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 68a2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68a4: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 68a6: 932a ld.w r1, (r3, 0x28) + 68a8: 3941 cmpnei r1, 1 + 68aa: 0bfe bt 0x68a6 // 68a6 + //Write page cache data to flash memory 6 + SetUserKey; + 68ac: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 68ae: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 68b0: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 68b2: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 68b4: 934a ld.w r2, (r3, 0x28) + 68b6: 3a42 cmpnei r2, 2 + 68b8: 0bfe bt 0x68b4 // 68b4 +} + 68ba: 1402 addi r14, r14, 8 + 68bc: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 68be: 82e0 ld.b r7, (r2, 0x0) + 68c0: 8281 ld.b r4, (r2, 0x1) + 68c2: 4488 lsli r4, r4, 8 + 68c4: 8222 ld.b r1, (r2, 0x2) + 68c6: 611c addu r4, r7 + 68c8: 82a3 ld.b r5, (r2, 0x3) + 68ca: 4130 lsli r1, r1, 16 + 68cc: 98c1 ld.w r6, (r14, 0x4) + 68ce: 6050 addu r1, r4 + 68d0: 45b8 lsli r5, r5, 24 + 68d2: 6188 addu r6, r2 + 68d4: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 68d6: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 68d8: 2203 addi r2, 4 + 68da: 07ca br 0x686e // 686e + 68dc: 20000060 .long 0x20000060 + 68e0: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +000068e4 : +//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) +{ + 68e4: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 68f0: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 68f2: 3b40 cmpnei r3, 0 + 68f4: 0c06 bf 0x6900 // 6900 + 68f6: 6d0f mov r4, r3 + 68f8: 6914 and r4, r5 + 68fa: 3c40 cmpnei r4, 0 + 68fc: 0802 bt 0x6900 // 6900 + RdStartAdd +=4; + 68fe: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 6900: 6d0f mov r4, r3 + 6902: 6914 and r4, r5 + 6904: 6100 addu r4, r0 + 6906: 8480 ld.b r4, (r4, 0x0) + 6908: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +00006910
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 6910: 14d0 push r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 6912: e00000ab bsr 0x6a68 // 6a68 + + Dbg_Println(DBG_BIT_SYS_STATUS,"APP Run Start! 111 %s",Project_Boot_Support); + 6916: 102d lrw r1, 0xb698 // 6948 + 6918: 3000 movi r0, 0 + 691a: 104d lrw r2, 0x2000009c // 694c + 691c: e0000954 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 6920: 102c lrw r1, 0xb6ae // 6950 + 6922: 3000 movi r0, 0 + 6924: e0000950 bsr 0x7bc4 // 7bc4 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 6928: e3fffba4 bsr 0x6070 // 6070 + + UART0_TASK(); + 692c: e00006e8 bsr 0x76fc // 76fc + + UART1_TASK(); + 6930: e0000740 bsr 0x77b0 // 77b0 + + UART2_TASK(); + 6934: e000079e bsr 0x7870 // 7870 + + DIP_ScanTask(); + 6938: e0000a90 bsr 0x7e58 // 7e58 + + BLV_EngDetect_Tack(); + 693c: e0001966 bsr 0x9c08 // 9c08 + + BUS485Send_Task(); + 6940: e0000982 bsr 0x7c44 // 7c44 + 6944: 07f2 br 0x6928 // 6928 + 6946: 0000 bkpt + 6948: 0000b698 .long 0x0000b698 + 694c: 2000009c .long 0x2000009c + 6950: 0000b6ae .long 0x0000b6ae + +Disassembly of section .text.delay_nms: + +00006954 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 6954: 14d0 push r15 + 6956: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 6958: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 695a: 3300 movi r3, 0 + j = 50* t; + 695c: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 695e: b862 st.w r3, (r14, 0x8) + j = 50* t; + 6960: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 6962: b860 st.w r3, (r14, 0x0) + 6964: 9840 ld.w r2, (r14, 0x0) + 6966: 9861 ld.w r3, (r14, 0x4) + 6968: 64c8 cmphs r2, r3 + 696a: 0c03 bf 0x6970 // 6970 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 696c: 1403 addi r14, r14, 12 + 696e: 1490 pop r15 + k++; + 6970: 9862 ld.w r3, (r14, 0x8) + 6972: 2300 addi r3, 1 + 6974: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 6976: e3fffb7d bsr 0x6070 // 6070 + for ( i = 0; i < j; i++ ) + 697a: 9860 ld.w r3, (r14, 0x0) + 697c: 2300 addi r3, 1 + 697e: 07f2 br 0x6962 // 6962 + +Disassembly of section .text.delay_nus: + +00006980 : +void delay_nus(unsigned int t) +{ + 6980: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 6982: 3300 movi r3, 0 + 6984: b862 st.w r3, (r14, 0x8) + j = 1* t; + 6986: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 6988: b860 st.w r3, (r14, 0x0) + 698a: 9840 ld.w r2, (r14, 0x0) + 698c: 9861 ld.w r3, (r14, 0x4) + 698e: 64c8 cmphs r2, r3 + 6990: 0c03 bf 0x6996 // 6996 + { + k++; + } +} + 6992: 1403 addi r14, r14, 12 + 6994: 783c jmp r15 + k++; + 6996: 9862 ld.w r3, (r14, 0x8) + 6998: 2300 addi r3, 1 + 699a: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 699c: 9860 ld.w r3, (r14, 0x0) + 699e: 2300 addi r3, 1 + 69a0: 07f4 br 0x6988 // 6988 + +Disassembly of section .text.BT_CONFIG: + +000069a4 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 69a4: 14d2 push r4-r5, r15 + 69a6: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 69a8: 1095 lrw r4, 0x20000008 // 69fc + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69aa: 3500 movi r5, 0 + BT_DeInit(BT1); + 69ac: 9400 ld.w r0, (r4, 0x0) + 69ae: e3fffe0d bsr 0x65c8 // 65c8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 69b2: 9400 ld.w r0, (r4, 0x0) + 69b4: b8a1 st.w r5, (r14, 0x4) + 69b6: b8a0 st.w r5, (r14, 0x0) + 69b8: 3308 movi r3, 8 + 69ba: 3200 movi r2, 0 + 69bc: 3101 movi r1, 1 + 69be: e3fffe1c bsr 0x65f6 // 65f6 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 69c2: 3380 movi r3, 128 + 69c4: 4363 lsli r3, r3, 3 + 69c6: b861 st.w r3, (r14, 0x4) + 69c8: 9400 ld.w r0, (r4, 0x0) + 69ca: 3300 movi r3, 0 + 69cc: b8a3 st.w r5, (r14, 0xc) + 69ce: b8a2 st.w r5, (r14, 0x8) + 69d0: b8a0 st.w r5, (r14, 0x0) + 69d2: 3200 movi r2, 0 + 69d4: 3180 movi r1, 128 + 69d6: e3fffe1c bsr 0x660e // 660e + BT_Period_CMP_Write(BT1,4780,1); + 69da: 3201 movi r2, 1 + 69dc: 1029 lrw r1, 0x12ac // 6a00 + 69de: 9400 ld.w r0, (r4, 0x0) + 69e0: e3fffe2d bsr 0x663a // 663a + BT_Start(BT1); + 69e4: 9400 ld.w r0, (r4, 0x0) + 69e6: e3fffdff bsr 0x65e4 // 65e4 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 69ea: 9400 ld.w r0, (r4, 0x0) + 69ec: 3202 movi r2, 2 + 69ee: 3101 movi r1, 1 + 69f0: e3fffe28 bsr 0x6640 // 6640 + BT1_INT_ENABLE(); + 69f4: e3fffe30 bsr 0x6654 // 6654 + +} + 69f8: 1404 addi r14, r14, 16 + 69fa: 1492 pop r4-r5, r15 + 69fc: 20000008 .long 0x20000008 + 6a00: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00006a04 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 6a04: 14d0 push r15 + 6a06: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 6a08: e3fffa80 bsr 0x5f08 // 5f08 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 6a0c: 3101 movi r1, 1 + 6a0e: 3001 movi r0, 1 + 6a10: e3fffaa2 bsr 0x5f54 // 5f54 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 6a14: 3000 movi r0, 0 + 6a16: e3fffafb bsr 0x600c // 600c + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 6a1a: 3180 movi r1, 128 + 6a1c: 3308 movi r3, 8 + 6a1e: 3200 movi r2, 0 + 6a20: 4121 lsli r1, r1, 1 + 6a22: 3002 movi r0, 2 + 6a24: e3fffab0 bsr 0x5f84 // 5f84 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 6a28: 3080 movi r0, 128 + 6a2a: 3118 movi r1, 24 + 6a2c: 4002 lsli r0, r0, 2 + 6a2e: e3fffb2b bsr 0x6084 // 6084 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 6a32: 3001 movi r0, 1 + 6a34: e3fffb00 bsr 0x6034 // 6034 + SYSCON_IWDCNT_Reload(); //reload WDT + 6a38: e3fffb1c bsr 0x6070 // 6070 + IWDT_Int_Enable(); + 6a3c: e3fffb4e bsr 0x60d8 // 60d8 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 6a40: 3340 movi r3, 64 + 6a42: b860 st.w r3, (r14, 0x0) + 6a44: 31c0 movi r1, 192 + 6a46: 3380 movi r3, 128 + 6a48: 4364 lsli r3, r3, 4 + 6a4a: 3200 movi r2, 0 + 6a4c: 4123 lsli r1, r1, 3 + 6a4e: 3000 movi r0, 0 + 6a50: e3fffb26 bsr 0x609c // 609c + LVD_Int_Enable(); + 6a54: e3fffb34 bsr 0x60bc // 60bc +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 6a58: e3fffb92 bsr 0x617c // 617c + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 6a5c: 3000 movi r0, 0 + 6a5e: e00022f5 bsr 0xb048 // b048 + +} + 6a62: 1401 addi r14, r14, 4 + 6a64: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00006a68 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 6a68: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a6a: 107b lrw r3, 0x2000005c // 6ad4 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a6c: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 6a6e: 9340 ld.w r2, (r3, 0x0) + 6a70: 107a lrw r3, 0xfffffff // 6ad8 + 6a72: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 6a74: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 6a76: 926c ld.w r3, (r2, 0x30) + 6a78: 68c4 and r3, r1 + 6a7a: 3b40 cmpnei r3, 0 + 6a7c: 0ffd bf 0x6a76 // 6a76 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 6a7e: e3ffffc3 bsr 0x6a04 // 6a04 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 6a82: e000054f bsr 0x7520 // 7520 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 6a86: e3fffb91 bsr 0x61a8 // 61a8 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART0_IRQ,1); + 6a8a: 3101 movi r1, 1 + 6a8c: 300d movi r0, 13 + 6a8e: e3fffb9f bsr 0x61cc // 61cc + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 6a92: 3101 movi r1, 1 + 6a94: 300e movi r0, 14 + 6a96: e3fffb9b bsr 0x61cc // 61cc + Set_INT_Priority(UART2_IRQ,1); + 6a9a: 3101 movi r1, 1 + 6a9c: 300f movi r0, 15 + 6a9e: e3fffb97 bsr 0x61cc // 61cc + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 6aa2: e3fffbad bsr 0x61fc // 61fc +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 6aa6: e3ffff7f bsr 0x69a4 // 69a4 + + UARTx_Init(UART_0,HLW8110_RecvData_Processing); + 6aaa: 102d lrw r1, 0x8fa4 // 6adc + 6aac: 3000 movi r0, 0 + 6aae: e000053f bsr 0x752c // 752c + UARTx_Init(UART_1,BLV_485Recv_Processing); + 6ab2: 102c lrw r1, 0x9e80 // 6ae0 + 6ab4: 3001 movi r0, 1 + 6ab6: e000053b bsr 0x752c // 752c + UARTx_Init(UART_2,BT_Recv_Processing); + 6aba: 102b lrw r1, 0xa014 // 6ae4 + 6abc: 3002 movi r0, 2 + 6abe: e0000537 bsr 0x752c // 752c + + DIP_Switch_Init(); + 6ac2: e0000981 bsr 0x7dc4 // 7dc4 + + BLV_DetEnergy_Init(); + 6ac6: e0000d9b bsr 0x85fc // 85fc + + Bsp_I2C_Fram_Init(); + 6aca: e0001f61 bsr 0xa98c // a98c + + Boot_Function_Init(); + 6ace: e0001b45 bsr 0xa158 // a158 +} + 6ad2: 1490 pop r15 + 6ad4: 2000005c .long 0x2000005c + 6ad8: 0fffffff .long 0x0fffffff + 6adc: 00008fa4 .long 0x00008fa4 + 6ae0: 00009e80 .long 0x00009e80 + 6ae4: 0000a014 .long 0x0000a014 + +Disassembly of section .text.SYSCONIntHandler: + +00006ae8 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 6ae8: 1460 nie + 6aea: 1462 ipush + // ISR content ... + nop; + 6aec: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 6aee: 117a lrw r3, 0x2000005c // 6bd4 + 6af0: 3280 movi r2, 128 + 6af2: 9360 ld.w r3, (r3, 0x0) + 6af4: 60c8 addu r3, r2 + 6af6: 9323 ld.w r1, (r3, 0xc) + 6af8: 3001 movi r0, 1 + 6afa: 6840 and r1, r0 + 6afc: 3940 cmpnei r1, 0 + 6afe: 0c04 bf 0x6b06 // 6b06 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 6b00: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 6b02: 1463 ipop + 6b04: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 6b06: 9323 ld.w r1, (r3, 0xc) + 6b08: 3002 movi r0, 2 + 6b0a: 6840 and r1, r0 + 6b0c: 3940 cmpnei r1, 0 + 6b0e: 0bf9 bt 0x6b00 // 6b00 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 6b10: 9323 ld.w r1, (r3, 0xc) + 6b12: 3008 movi r0, 8 + 6b14: 6840 and r1, r0 + 6b16: 3940 cmpnei r1, 0 + 6b18: 0bf4 bt 0x6b00 // 6b00 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 6b1a: 9323 ld.w r1, (r3, 0xc) + 6b1c: 3010 movi r0, 16 + 6b1e: 6840 and r1, r0 + 6b20: 3940 cmpnei r1, 0 + 6b22: 0bef bt 0x6b00 // 6b00 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 6b24: 9323 ld.w r1, (r3, 0xc) + 6b26: 6848 and r1, r2 + 6b28: 3940 cmpnei r1, 0 + 6b2a: 0c03 bf 0x6b30 // 6b30 + SYSCON->ICR = CMD_ERR_ST; + 6b2c: b341 st.w r2, (r3, 0x4) +} + 6b2e: 07ea br 0x6b02 // 6b02 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 6b30: 3280 movi r2, 128 + 6b32: 9323 ld.w r1, (r3, 0xc) + 6b34: 4241 lsli r2, r2, 1 + 6b36: 6848 and r1, r2 + 6b38: 3940 cmpnei r1, 0 + 6b3a: 0bf9 bt 0x6b2c // 6b2c + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 6b3c: 3280 movi r2, 128 + 6b3e: 9323 ld.w r1, (r3, 0xc) + 6b40: 4242 lsli r2, r2, 2 + 6b42: 6848 and r1, r2 + 6b44: 3940 cmpnei r1, 0 + 6b46: 0bf3 bt 0x6b2c // 6b2c + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 6b48: 3280 movi r2, 128 + 6b4a: 9323 ld.w r1, (r3, 0xc) + 6b4c: 4243 lsli r2, r2, 3 + 6b4e: 6848 and r1, r2 + 6b50: 3940 cmpnei r1, 0 + 6b52: 0bed bt 0x6b2c // 6b2c + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 6b54: 3280 movi r2, 128 + 6b56: 9323 ld.w r1, (r3, 0xc) + 6b58: 4244 lsli r2, r2, 4 + 6b5a: 6848 and r1, r2 + 6b5c: 3940 cmpnei r1, 0 + 6b5e: 0c03 bf 0x6b64 // 6b64 + nop; + 6b60: 6c03 mov r0, r0 + 6b62: 07e5 br 0x6b2c // 6b2c + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 6b64: 3280 movi r2, 128 + 6b66: 9323 ld.w r1, (r3, 0xc) + 6b68: 4245 lsli r2, r2, 5 + 6b6a: 6848 and r1, r2 + 6b6c: 3940 cmpnei r1, 0 + 6b6e: 0bdf bt 0x6b2c // 6b2c + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 6b70: 3280 movi r2, 128 + 6b72: 9323 ld.w r1, (r3, 0xc) + 6b74: 4246 lsli r2, r2, 6 + 6b76: 6848 and r1, r2 + 6b78: 3940 cmpnei r1, 0 + 6b7a: 0bd9 bt 0x6b2c // 6b2c + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 6b7c: 3280 movi r2, 128 + 6b7e: 9323 ld.w r1, (r3, 0xc) + 6b80: 4247 lsli r2, r2, 7 + 6b82: 6848 and r1, r2 + 6b84: 3940 cmpnei r1, 0 + 6b86: 0bd3 bt 0x6b2c // 6b2c + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 6b88: 3280 movi r2, 128 + 6b8a: 9323 ld.w r1, (r3, 0xc) + 6b8c: 424b lsli r2, r2, 11 + 6b8e: 6848 and r1, r2 + 6b90: 3940 cmpnei r1, 0 + 6b92: 0bcd bt 0x6b2c // 6b2c + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 6b94: 3280 movi r2, 128 + 6b96: 9323 ld.w r1, (r3, 0xc) + 6b98: 424c lsli r2, r2, 12 + 6b9a: 6848 and r1, r2 + 6b9c: 3940 cmpnei r1, 0 + 6b9e: 0bc7 bt 0x6b2c // 6b2c + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 6ba0: 3280 movi r2, 128 + 6ba2: 9323 ld.w r1, (r3, 0xc) + 6ba4: 424d lsli r2, r2, 13 + 6ba6: 6848 and r1, r2 + 6ba8: 3940 cmpnei r1, 0 + 6baa: 0bc1 bt 0x6b2c // 6b2c + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 6bac: 3280 movi r2, 128 + 6bae: 9323 ld.w r1, (r3, 0xc) + 6bb0: 424e lsli r2, r2, 14 + 6bb2: 6848 and r1, r2 + 6bb4: 3940 cmpnei r1, 0 + 6bb6: 0bbb bt 0x6b2c // 6b2c + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 6bb8: 3280 movi r2, 128 + 6bba: 9323 ld.w r1, (r3, 0xc) + 6bbc: 424f lsli r2, r2, 15 + 6bbe: 6848 and r1, r2 + 6bc0: 3940 cmpnei r1, 0 + 6bc2: 0bb5 bt 0x6b2c // 6b2c + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 6bc4: 3280 movi r2, 128 + 6bc6: 9323 ld.w r1, (r3, 0xc) + 6bc8: 4256 lsli r2, r2, 22 + 6bca: 6848 and r1, r2 + 6bcc: 3940 cmpnei r1, 0 + 6bce: 0baf bt 0x6b2c // 6b2c + 6bd0: 0799 br 0x6b02 // 6b02 + 6bd2: 0000 bkpt + 6bd4: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00006bd8 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 6bd8: 1460 nie + 6bda: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 6bdc: 1078 lrw r3, 0x20000060 // 6c3c + 6bde: 3101 movi r1, 1 + 6be0: 9360 ld.w r3, (r3, 0x0) + 6be2: 934b ld.w r2, (r3, 0x2c) + 6be4: 6884 and r2, r1 + 6be6: 3a40 cmpnei r2, 0 + 6be8: 0c04 bf 0x6bf0 // 6bf0 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 6bea: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 6bec: 1463 ipop + 6bee: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 6bf0: 934b ld.w r2, (r3, 0x2c) + 6bf2: 3102 movi r1, 2 + 6bf4: 6884 and r2, r1 + 6bf6: 3a40 cmpnei r2, 0 + 6bf8: 0bf9 bt 0x6bea // 6bea + else if(IFC->MISR&PEP_END_INT) + 6bfa: 934b ld.w r2, (r3, 0x2c) + 6bfc: 3104 movi r1, 4 + 6bfe: 6884 and r2, r1 + 6c00: 3a40 cmpnei r2, 0 + 6c02: 0bf4 bt 0x6bea // 6bea + else if(IFC->MISR&PROT_ERR_INT) + 6c04: 3280 movi r2, 128 + 6c06: 932b ld.w r1, (r3, 0x2c) + 6c08: 4245 lsli r2, r2, 5 + 6c0a: 6848 and r1, r2 + 6c0c: 3940 cmpnei r1, 0 + 6c0e: 0c03 bf 0x6c14 // 6c14 + IFC->ICR=OVW_ERR_INT; + 6c10: b34c st.w r2, (r3, 0x30) +} + 6c12: 07ed br 0x6bec // 6bec + else if(IFC->MISR&UDEF_ERR_INT) + 6c14: 3280 movi r2, 128 + 6c16: 932b ld.w r1, (r3, 0x2c) + 6c18: 4246 lsli r2, r2, 6 + 6c1a: 6848 and r1, r2 + 6c1c: 3940 cmpnei r1, 0 + 6c1e: 0bf9 bt 0x6c10 // 6c10 + else if(IFC->MISR&ADDR_ERR_INT) + 6c20: 3280 movi r2, 128 + 6c22: 932b ld.w r1, (r3, 0x2c) + 6c24: 4247 lsli r2, r2, 7 + 6c26: 6848 and r1, r2 + 6c28: 3940 cmpnei r1, 0 + 6c2a: 0bf3 bt 0x6c10 // 6c10 + else if(IFC->MISR&OVW_ERR_INT) + 6c2c: 3280 movi r2, 128 + 6c2e: 932b ld.w r1, (r3, 0x2c) + 6c30: 4248 lsli r2, r2, 8 + 6c32: 6848 and r1, r2 + 6c34: 3940 cmpnei r1, 0 + 6c36: 0bed bt 0x6c10 // 6c10 + 6c38: 07da br 0x6bec // 6bec + 6c3a: 0000 bkpt + 6c3c: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00006c40 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 6c40: 1460 nie + 6c42: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 6c44: 1078 lrw r3, 0x20000050 // 6ca4 + 6c46: 3101 movi r1, 1 + 6c48: 9360 ld.w r3, (r3, 0x0) + 6c4a: 9348 ld.w r2, (r3, 0x20) + 6c4c: 6884 and r2, r1 + 6c4e: 3a40 cmpnei r2, 0 + 6c50: 0c04 bf 0x6c58 // 6c58 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 6c52: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 6c54: 1463 ipop + 6c56: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 6c58: 9348 ld.w r2, (r3, 0x20) + 6c5a: 3102 movi r1, 2 + 6c5c: 6884 and r2, r1 + 6c5e: 3a40 cmpnei r2, 0 + 6c60: 0bf9 bt 0x6c52 // 6c52 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 6c62: 9348 ld.w r2, (r3, 0x20) + 6c64: 3104 movi r1, 4 + 6c66: 6884 and r2, r1 + 6c68: 3a40 cmpnei r2, 0 + 6c6a: 0bf4 bt 0x6c52 // 6c52 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 6c6c: 9348 ld.w r2, (r3, 0x20) + 6c6e: 3110 movi r1, 16 + 6c70: 6884 and r2, r1 + 6c72: 3a40 cmpnei r2, 0 + 6c74: 0bef bt 0x6c52 // 6c52 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 6c76: 9348 ld.w r2, (r3, 0x20) + 6c78: 3120 movi r1, 32 + 6c7a: 6884 and r2, r1 + 6c7c: 3a40 cmpnei r2, 0 + 6c7e: 0bea bt 0x6c52 // 6c52 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 6c80: 9348 ld.w r2, (r3, 0x20) + 6c82: 3140 movi r1, 64 + 6c84: 6884 and r2, r1 + 6c86: 3a40 cmpnei r2, 0 + 6c88: 0be5 bt 0x6c52 // 6c52 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 6c8a: 9348 ld.w r2, (r3, 0x20) + 6c8c: 3180 movi r1, 128 + 6c8e: 6884 and r2, r1 + 6c90: 3a40 cmpnei r2, 0 + 6c92: 0be0 bt 0x6c52 // 6c52 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 6c94: 3280 movi r2, 128 + 6c96: 9328 ld.w r1, (r3, 0x20) + 6c98: 4249 lsli r2, r2, 9 + 6c9a: 6848 and r1, r2 + 6c9c: 3940 cmpnei r1, 0 + 6c9e: 0fdb bf 0x6c54 // 6c54 + ADC0->CSR = ADC12_SEQ_END0; + 6ca0: b347 st.w r2, (r3, 0x1c) +} + 6ca2: 07d9 br 0x6c54 // 6c54 + 6ca4: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00006ca8 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 6ca8: 1460 nie + 6caa: 1462 ipush + 6cac: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 6cae: 1387 lrw r4, 0x20000020 // 6e48 + 6cb0: 3280 movi r2, 128 + 6cb2: 9460 ld.w r3, (r4, 0x0) + 6cb4: 60c8 addu r3, r2 + 6cb6: 9335 ld.w r1, (r3, 0x54) + 6cb8: 3001 movi r0, 1 + 6cba: 6840 and r1, r0 + 6cbc: 3940 cmpnei r1, 0 + 6cbe: 0c03 bf 0x6cc4 // 6cc4 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 6cc0: b317 st.w r0, (r3, 0x5c) + 6cc2: 0424 br 0x6d0a // 6d0a + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 6cc4: 9335 ld.w r1, (r3, 0x54) + 6cc6: 3002 movi r0, 2 + 6cc8: 6840 and r1, r0 + 6cca: 3940 cmpnei r1, 0 + 6ccc: 0bfa bt 0x6cc0 // 6cc0 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 6cce: 9335 ld.w r1, (r3, 0x54) + 6cd0: 3004 movi r0, 4 + 6cd2: 6840 and r1, r0 + 6cd4: 3940 cmpnei r1, 0 + 6cd6: 0bf5 bt 0x6cc0 // 6cc0 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 6cd8: 9335 ld.w r1, (r3, 0x54) + 6cda: 3008 movi r0, 8 + 6cdc: 6840 and r1, r0 + 6cde: 3940 cmpnei r1, 0 + 6ce0: 0bf0 bt 0x6cc0 // 6cc0 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 6ce2: 9335 ld.w r1, (r3, 0x54) + 6ce4: 3010 movi r0, 16 + 6ce6: 6840 and r1, r0 + 6ce8: 3940 cmpnei r1, 0 + 6cea: 0c1f bf 0x6d28 // 6d28 + EPT0->ICR=EPT_CAP_LD0; + 6cec: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 6cee: 3200 movi r2, 0 + 6cf0: 3101 movi r1, 1 + 6cf2: 3000 movi r0, 0 + 6cf4: e3fffa00 bsr 0x60f4 // 60f4 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 6cf8: 3201 movi r2, 1 + 6cfa: 3101 movi r1, 1 + 6cfc: 3001 movi r0, 1 + 6cfe: e3fff9fb bsr 0x60f4 // 60f4 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 6d02: 9460 ld.w r3, (r4, 0x0) + 6d04: 934b ld.w r2, (r3, 0x2c) + 6d06: 1272 lrw r3, 0x20000214 // 6e4c + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d08: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 6d0a: 9460 ld.w r3, (r4, 0x0) + 6d0c: 3280 movi r2, 128 + 6d0e: 60c8 addu r3, r2 + 6d10: 932b ld.w r1, (r3, 0x2c) + 6d12: 3001 movi r0, 1 + 6d14: 6840 and r1, r0 + 6d16: 3940 cmpnei r1, 0 + 6d18: 0c61 bf 0x6dda // 6dda + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 6d1a: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 6d1c: d9ee2001 ld.w r15, (r14, 0x4) + 6d20: 9880 ld.w r4, (r14, 0x0) + 6d22: 1402 addi r14, r14, 8 + 6d24: 1463 ipop + 6d26: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 6d28: 9335 ld.w r1, (r3, 0x54) + 6d2a: 3020 movi r0, 32 + 6d2c: 6840 and r1, r0 + 6d2e: 3940 cmpnei r1, 0 + 6d30: 0c10 bf 0x6d50 // 6d50 + EPT0->ICR=EPT_CAP_LD1; + 6d32: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 6d34: 3200 movi r2, 0 + 6d36: 3101 movi r1, 1 + 6d38: 3001 movi r0, 1 + 6d3a: e3fff9dd bsr 0x60f4 // 60f4 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 6d3e: 3201 movi r2, 1 + 6d40: 3101 movi r1, 1 + 6d42: 3000 movi r0, 0 + 6d44: e3fff9d8 bsr 0x60f4 // 60f4 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 6d48: 9460 ld.w r3, (r4, 0x0) + 6d4a: 934c ld.w r2, (r3, 0x30) + 6d4c: 1261 lrw r3, 0x20000210 // 6e50 + 6d4e: 07dd br 0x6d08 // 6d08 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 6d50: 9335 ld.w r1, (r3, 0x54) + 6d52: 3040 movi r0, 64 + 6d54: 6840 and r1, r0 + 6d56: 3940 cmpnei r1, 0 + 6d58: 0bb4 bt 0x6cc0 // 6cc0 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 6d5a: 9335 ld.w r1, (r3, 0x54) + 6d5c: 6848 and r1, r2 + 6d5e: 3940 cmpnei r1, 0 + 6d60: 0c03 bf 0x6d66 // 6d66 + EPT0->ICR=EPT_CDD; + 6d62: b357 st.w r2, (r3, 0x5c) + 6d64: 07d3 br 0x6d0a // 6d0a + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 6d66: 3280 movi r2, 128 + 6d68: 9335 ld.w r1, (r3, 0x54) + 6d6a: 4241 lsli r2, r2, 1 + 6d6c: 6848 and r1, r2 + 6d6e: 3940 cmpnei r1, 0 + 6d70: 0bf9 bt 0x6d62 // 6d62 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 6d72: 3280 movi r2, 128 + 6d74: 9335 ld.w r1, (r3, 0x54) + 6d76: 4242 lsli r2, r2, 2 + 6d78: 6848 and r1, r2 + 6d7a: 3940 cmpnei r1, 0 + 6d7c: 0bf3 bt 0x6d62 // 6d62 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 6d7e: 3280 movi r2, 128 + 6d80: 9335 ld.w r1, (r3, 0x54) + 6d82: 4243 lsli r2, r2, 3 + 6d84: 6848 and r1, r2 + 6d86: 3940 cmpnei r1, 0 + 6d88: 0bed bt 0x6d62 // 6d62 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 6d8a: 3280 movi r2, 128 + 6d8c: 9335 ld.w r1, (r3, 0x54) + 6d8e: 4244 lsli r2, r2, 4 + 6d90: 6848 and r1, r2 + 6d92: 3940 cmpnei r1, 0 + 6d94: 0be7 bt 0x6d62 // 6d62 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 6d96: 3280 movi r2, 128 + 6d98: 9335 ld.w r1, (r3, 0x54) + 6d9a: 4245 lsli r2, r2, 5 + 6d9c: 6848 and r1, r2 + 6d9e: 3940 cmpnei r1, 0 + 6da0: 0be1 bt 0x6d62 // 6d62 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 6da2: 3280 movi r2, 128 + 6da4: 9335 ld.w r1, (r3, 0x54) + 6da6: 4246 lsli r2, r2, 6 + 6da8: 6848 and r1, r2 + 6daa: 3940 cmpnei r1, 0 + 6dac: 0bdb bt 0x6d62 // 6d62 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 6dae: 3280 movi r2, 128 + 6db0: 9335 ld.w r1, (r3, 0x54) + 6db2: 4247 lsli r2, r2, 7 + 6db4: 6848 and r1, r2 + 6db6: 3940 cmpnei r1, 0 + 6db8: 0bd5 bt 0x6d62 // 6d62 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 6dba: 3280 movi r2, 128 + 6dbc: 9335 ld.w r1, (r3, 0x54) + 6dbe: 4248 lsli r2, r2, 8 + 6dc0: 6848 and r1, r2 + 6dc2: 3940 cmpnei r1, 0 + 6dc4: 0bcf bt 0x6d62 // 6d62 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 6dc6: 3280 movi r2, 128 + 6dc8: 9335 ld.w r1, (r3, 0x54) + 6dca: 4249 lsli r2, r2, 9 + 6dcc: 6848 and r1, r2 + 6dce: 3940 cmpnei r1, 0 + 6dd0: 0f9d bf 0x6d0a // 6d0a + EPT0->ICR=EPT_PEND; + 6dd2: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 6dd4: e3fffd24 bsr 0x681c // 681c + 6dd8: 0799 br 0x6d0a // 6d0a + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 6dda: 932b ld.w r1, (r3, 0x2c) + 6ddc: 3002 movi r0, 2 + 6dde: 6840 and r1, r0 + 6de0: 3940 cmpnei r1, 0 + 6de2: 0b9c bt 0x6d1a // 6d1a + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 6de4: 932b ld.w r1, (r3, 0x2c) + 6de6: 3004 movi r0, 4 + 6de8: 6840 and r1, r0 + 6dea: 3940 cmpnei r1, 0 + 6dec: 0b97 bt 0x6d1a // 6d1a + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 6dee: 932b ld.w r1, (r3, 0x2c) + 6df0: 3008 movi r0, 8 + 6df2: 6840 and r1, r0 + 6df4: 3940 cmpnei r1, 0 + 6df6: 0b92 bt 0x6d1a // 6d1a + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 6df8: 932b ld.w r1, (r3, 0x2c) + 6dfa: 3010 movi r0, 16 + 6dfc: 6840 and r1, r0 + 6dfe: 3940 cmpnei r1, 0 + 6e00: 0b8d bt 0x6d1a // 6d1a + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 6e02: 932b ld.w r1, (r3, 0x2c) + 6e04: 3020 movi r0, 32 + 6e06: 6840 and r1, r0 + 6e08: 3940 cmpnei r1, 0 + 6e0a: 0b88 bt 0x6d1a // 6d1a + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 6e0c: 932b ld.w r1, (r3, 0x2c) + 6e0e: 3040 movi r0, 64 + 6e10: 6840 and r1, r0 + 6e12: 3940 cmpnei r1, 0 + 6e14: 0b83 bt 0x6d1a // 6d1a + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 6e16: 932b ld.w r1, (r3, 0x2c) + 6e18: 6848 and r1, r2 + 6e1a: 3940 cmpnei r1, 0 + 6e1c: 0c03 bf 0x6e22 // 6e22 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 6e1e: b34d st.w r2, (r3, 0x34) +} + 6e20: 077e br 0x6d1c // 6d1c + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 6e22: 3280 movi r2, 128 + 6e24: 932b ld.w r1, (r3, 0x2c) + 6e26: 4241 lsli r2, r2, 1 + 6e28: 6848 and r1, r2 + 6e2a: 3940 cmpnei r1, 0 + 6e2c: 0bf9 bt 0x6e1e // 6e1e + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 6e2e: 3280 movi r2, 128 + 6e30: 932b ld.w r1, (r3, 0x2c) + 6e32: 4242 lsli r2, r2, 2 + 6e34: 6848 and r1, r2 + 6e36: 3940 cmpnei r1, 0 + 6e38: 0bf3 bt 0x6e1e // 6e1e + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 6e3a: 3280 movi r2, 128 + 6e3c: 932b ld.w r1, (r3, 0x2c) + 6e3e: 4243 lsli r2, r2, 3 + 6e40: 6848 and r1, r2 + 6e42: 3940 cmpnei r1, 0 + 6e44: 0bed bt 0x6e1e // 6e1e + 6e46: 076b br 0x6d1c // 6d1c + 6e48: 20000020 .long 0x20000020 + 6e4c: 20000214 .long 0x20000214 + 6e50: 20000210 .long 0x20000210 + +Disassembly of section .text.WWDTHandler: + +00006e54 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 6e54: 1460 nie + 6e56: 1462 ipush + 6e58: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 6e5a: 10ab lrw r5, 0x20000010 // 6e84 + 6e5c: 3401 movi r4, 1 + 6e5e: 9560 ld.w r3, (r5, 0x0) + 6e60: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 6e62: 30ff movi r0, 255 + 6e64: e3fffbaa bsr 0x65b8 // 65b8 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 6e68: 9540 ld.w r2, (r5, 0x0) + 6e6a: 9263 ld.w r3, (r2, 0xc) + 6e6c: 68d0 and r3, r4 + 6e6e: 3b40 cmpnei r3, 0 + 6e70: 0c02 bf 0x6e74 // 6e74 + { + WWDT->ICR = WWDT_EVI; + 6e72: b285 st.w r4, (r2, 0x14) + } +} + 6e74: d9ee2002 ld.w r15, (r14, 0x8) + 6e78: 98a1 ld.w r5, (r14, 0x4) + 6e7a: 9880 ld.w r4, (r14, 0x0) + 6e7c: 1403 addi r14, r14, 12 + 6e7e: 1463 ipop + 6e80: 1461 nir + 6e82: 0000 bkpt + 6e84: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00006e88 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 6e88: 1460 nie + 6e8a: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 6e8c: 107e lrw r3, 0x20000024 // 6f04 + 6e8e: 3101 movi r1, 1 + 6e90: 9360 ld.w r3, (r3, 0x0) + 6e92: 237f addi r3, 128 + 6e94: 9355 ld.w r2, (r3, 0x54) + 6e96: 6884 and r2, r1 + 6e98: 3a40 cmpnei r2, 0 + 6e9a: 0c04 bf 0x6ea2 // 6ea2 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 6e9c: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 6e9e: 1463 ipop + 6ea0: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 6ea2: 9355 ld.w r2, (r3, 0x54) + 6ea4: 3102 movi r1, 2 + 6ea6: 6884 and r2, r1 + 6ea8: 3a40 cmpnei r2, 0 + 6eaa: 0bf9 bt 0x6e9c // 6e9c + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 6eac: 9355 ld.w r2, (r3, 0x54) + 6eae: 3110 movi r1, 16 + 6eb0: 6884 and r2, r1 + 6eb2: 3a40 cmpnei r2, 0 + 6eb4: 0bf4 bt 0x6e9c // 6e9c + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 6eb6: 9355 ld.w r2, (r3, 0x54) + 6eb8: 3120 movi r1, 32 + 6eba: 6884 and r2, r1 + 6ebc: 3a40 cmpnei r2, 0 + 6ebe: 0bef bt 0x6e9c // 6e9c + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 6ec0: 3280 movi r2, 128 + 6ec2: 9335 ld.w r1, (r3, 0x54) + 6ec4: 4241 lsli r2, r2, 1 + 6ec6: 6848 and r1, r2 + 6ec8: 3940 cmpnei r1, 0 + 6eca: 0c03 bf 0x6ed0 // 6ed0 + GPT0->ICR = GPT_INT_PEND; + 6ecc: b357 st.w r2, (r3, 0x5c) +} + 6ece: 07e8 br 0x6e9e // 6e9e + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 6ed0: 3280 movi r2, 128 + 6ed2: 9335 ld.w r1, (r3, 0x54) + 6ed4: 4242 lsli r2, r2, 2 + 6ed6: 6848 and r1, r2 + 6ed8: 3940 cmpnei r1, 0 + 6eda: 0bf9 bt 0x6ecc // 6ecc + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 6edc: 3280 movi r2, 128 + 6ede: 9335 ld.w r1, (r3, 0x54) + 6ee0: 4243 lsli r2, r2, 3 + 6ee2: 6848 and r1, r2 + 6ee4: 3940 cmpnei r1, 0 + 6ee6: 0bf3 bt 0x6ecc // 6ecc + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 6ee8: 3280 movi r2, 128 + 6eea: 9335 ld.w r1, (r3, 0x54) + 6eec: 4244 lsli r2, r2, 4 + 6eee: 6848 and r1, r2 + 6ef0: 3940 cmpnei r1, 0 + 6ef2: 0bed bt 0x6ecc // 6ecc + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 6ef4: 3280 movi r2, 128 + 6ef6: 9335 ld.w r1, (r3, 0x54) + 6ef8: 4249 lsli r2, r2, 9 + 6efa: 6848 and r1, r2 + 6efc: 3940 cmpnei r1, 0 + 6efe: 0be7 bt 0x6ecc // 6ecc + 6f00: 07cf br 0x6e9e // 6e9e + 6f02: 0000 bkpt + 6f04: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00006f08 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 6f08: 1460 nie + 6f0a: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 6f0c: 1079 lrw r3, 0x20000018 // 6f70 + 6f0e: 3101 movi r1, 1 + 6f10: 9360 ld.w r3, (r3, 0x0) + 6f12: 934a ld.w r2, (r3, 0x28) + 6f14: 6884 and r2, r1 + 6f16: 3a40 cmpnei r2, 0 + 6f18: 0c14 bf 0x6f40 // 6f40 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 6f1a: 1057 lrw r2, 0xca53 // 6f74 + RTC->ICR=ALRA_INT; + 6f1c: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 6f1e: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 6f20: 9342 ld.w r2, (r3, 0x8) + 6f22: 6c84 or r2, r1 + 6f24: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 6f26: 3280 movi r2, 128 + 6f28: 424d lsli r2, r2, 13 + 6f2a: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 6f2c: 3102 movi r1, 2 + 6f2e: 9342 ld.w r2, (r3, 0x8) + 6f30: 6884 and r2, r1 + 6f32: 3a40 cmpnei r2, 0 + 6f34: 0bfd bt 0x6f2e // 6f2e + RTC->CR &= ~0x1; + 6f36: 9342 ld.w r2, (r3, 0x8) + 6f38: 3a80 bclri r2, 0 + 6f3a: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 6f3c: 1463 ipop + 6f3e: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 6f40: 934a ld.w r2, (r3, 0x28) + 6f42: 3102 movi r1, 2 + 6f44: 6884 and r2, r1 + 6f46: 3a40 cmpnei r2, 0 + 6f48: 0c03 bf 0x6f4e // 6f4e + RTC->ICR=RTC_TRGEV1_INT; + 6f4a: b32b st.w r1, (r3, 0x2c) +} + 6f4c: 07f8 br 0x6f3c // 6f3c + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 6f4e: 934a ld.w r2, (r3, 0x28) + 6f50: 3104 movi r1, 4 + 6f52: 6884 and r2, r1 + 6f54: 3a40 cmpnei r2, 0 + 6f56: 0bfa bt 0x6f4a // 6f4a + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 6f58: 934a ld.w r2, (r3, 0x28) + 6f5a: 3108 movi r1, 8 + 6f5c: 6884 and r2, r1 + 6f5e: 3a40 cmpnei r2, 0 + 6f60: 0bf5 bt 0x6f4a // 6f4a + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 6f62: 934a ld.w r2, (r3, 0x28) + 6f64: 3110 movi r1, 16 + 6f66: 6884 and r2, r1 + 6f68: 3a40 cmpnei r2, 0 + 6f6a: 0bf0 bt 0x6f4a // 6f4a + 6f6c: 07e8 br 0x6f3c // 6f3c + 6f6e: 0000 bkpt + 6f70: 20000018 .long 0x20000018 + 6f74: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00006f78 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 6f78: 1460 nie + 6f7a: 1462 ipush + 6f7c: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6f7e: 1076 lrw r3, 0x20000040 // 6fd4 + 6f80: 3102 movi r1, 2 + 6f82: 9360 ld.w r3, (r3, 0x0) + 6f84: 9343 ld.w r2, (r3, 0xc) + 6f86: 6884 and r2, r1 + 6f88: 3a40 cmpnei r2, 0 + 6f8a: 0c0b bf 0x6fa0 // 6fa0 + { + UART0->ISR=UART_RX_INT_S; + 6f8c: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 6f8e: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 6f90: 7400 zextb r0, r0 + 6f92: e0000393 bsr 0x76b8 // 76b8 + } + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } +} + 6f96: d9ee2000 ld.w r15, (r14, 0x0) + 6f9a: 1401 addi r14, r14, 4 + 6f9c: 1463 ipop + 6f9e: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 6fa0: 9343 ld.w r2, (r3, 0xc) + 6fa2: 3101 movi r1, 1 + 6fa4: 6884 and r2, r1 + 6fa6: 3a40 cmpnei r2, 0 + 6fa8: 0c03 bf 0x6fae // 6fae + UART0->ISR=UART_TX_IOV_S; + 6faa: b323 st.w r1, (r3, 0xc) + 6fac: 07f5 br 0x6f96 // 6f96 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 6fae: 9343 ld.w r2, (r3, 0xc) + 6fb0: 3108 movi r1, 8 + 6fb2: 6884 and r2, r1 + 6fb4: 3a40 cmpnei r2, 0 + 6fb6: 0bfa bt 0x6faa // 6faa + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 6fb8: 9343 ld.w r2, (r3, 0xc) + 6fba: 3104 movi r1, 4 + 6fbc: 6884 and r2, r1 + 6fbe: 3a40 cmpnei r2, 0 + 6fc0: 0bf5 bt 0x6faa // 6faa + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 6fc2: 3280 movi r2, 128 + 6fc4: 9323 ld.w r1, (r3, 0xc) + 6fc6: 424c lsli r2, r2, 12 + 6fc8: 6848 and r1, r2 + 6fca: 3940 cmpnei r1, 0 + 6fcc: 0fe5 bf 0x6f96 // 6f96 + UART0->ISR=UART_TX_DONE_S; + 6fce: b343 st.w r2, (r3, 0xc) +} + 6fd0: 07e3 br 0x6f96 // 6f96 + 6fd2: 0000 bkpt + 6fd4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00006fd8 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 6fd8: 1460 nie + 6fda: 1462 ipush + 6fdc: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 6fde: 107f lrw r3, 0x2000003c // 7058 + 6fe0: 3102 movi r1, 2 + 6fe2: 9360 ld.w r3, (r3, 0x0) + 6fe4: 9343 ld.w r2, (r3, 0xc) + 6fe6: 6884 and r2, r1 + 6fe8: 3a40 cmpnei r2, 0 + 6fea: 0c0b bf 0x7000 // 7000 + { + UART1->ISR=UART_RX_INT_S; + 6fec: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 6fee: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 6ff0: 7400 zextb r0, r0 + 6ff2: e00003bd bsr 0x776c // 776c + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 6ff6: d9ee2000 ld.w r15, (r14, 0x0) + 6ffa: 1401 addi r14, r14, 4 + 6ffc: 1463 ipop + 6ffe: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 7000: 9323 ld.w r1, (r3, 0xc) + 7002: 3201 movi r2, 1 + 7004: 6848 and r1, r2 + 7006: 3940 cmpnei r1, 0 + 7008: 0c0d bf 0x7022 // 7022 + UART1->ISR=UART_TX_INT_S; + 700a: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 700c: 1074 lrw r3, 0x200000c8 // 705c + 700e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 7010: 1074 lrw r3, 0x200000cc // 7060 + 7012: 9360 ld.w r3, (r3, 0x0) + 7014: 3b41 cmpnei r3, 1 + 7016: 0bf0 bt 0x6ff6 // 6ff6 + RS485_Comm_Start ++; + 7018: 1053 lrw r2, 0x200000d0 // 7064 + RS485_Comm_End ++; + 701a: 9260 ld.w r3, (r2, 0x0) + 701c: 2300 addi r3, 1 + 701e: b260 st.w r3, (r2, 0x0) +} + 7020: 07eb br 0x6ff6 // 6ff6 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 7022: 9343 ld.w r2, (r3, 0xc) + 7024: 3108 movi r1, 8 + 7026: 6884 and r2, r1 + 7028: 3a40 cmpnei r2, 0 + 702a: 0c03 bf 0x7030 // 7030 + UART1->ISR=UART_TX_IOV_S; + 702c: b323 st.w r1, (r3, 0xc) + 702e: 07e4 br 0x6ff6 // 6ff6 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 7030: 9343 ld.w r2, (r3, 0xc) + 7032: 3104 movi r1, 4 + 7034: 6884 and r2, r1 + 7036: 3a40 cmpnei r2, 0 + 7038: 0bfa bt 0x702c // 702c + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 703a: 3180 movi r1, 128 + 703c: 9303 ld.w r0, (r3, 0xc) + 703e: 412c lsli r1, r1, 12 + 7040: 6804 and r0, r1 + 7042: 3840 cmpnei r0, 0 + 7044: 0fd9 bf 0x6ff6 // 6ff6 + UART1->ISR=UART_TX_DONE_S; + 7046: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 7048: 1065 lrw r3, 0x200000c8 // 705c + 704a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 704c: 1065 lrw r3, 0x200000cc // 7060 + 704e: 9360 ld.w r3, (r3, 0x0) + 7050: 3b41 cmpnei r3, 1 + 7052: 0bd2 bt 0x6ff6 // 6ff6 + RS485_Comm_End ++; + 7054: 1045 lrw r2, 0x200000d4 // 7068 + 7056: 07e2 br 0x701a // 701a + 7058: 2000003c .long 0x2000003c + 705c: 200000c8 .long 0x200000c8 + 7060: 200000cc .long 0x200000cc + 7064: 200000d0 .long 0x200000d0 + 7068: 200000d4 .long 0x200000d4 + +Disassembly of section .text.UART2IntHandler: + +0000706c : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 706c: 1460 nie + 706e: 1462 ipush + 7070: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 7072: 1076 lrw r3, 0x20000038 // 70c8 + 7074: 3102 movi r1, 2 + 7076: 9360 ld.w r3, (r3, 0x0) + 7078: 9343 ld.w r2, (r3, 0xc) + 707a: 6884 and r2, r1 + 707c: 3a40 cmpnei r2, 0 + 707e: 0c0b bf 0x7094 // 7094 + { + UART2->ISR=UART_RX_INT_S; + 7080: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 7082: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 7084: 7400 zextb r0, r0 + 7086: e00003d3 bsr 0x782c // 782c + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART2->ISR=UART_TX_DONE_S; + } + +} + 708a: d9ee2000 ld.w r15, (r14, 0x0) + 708e: 1401 addi r14, r14, 4 + 7090: 1463 ipop + 7092: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 7094: 9343 ld.w r2, (r3, 0xc) + 7096: 3101 movi r1, 1 + 7098: 6884 and r2, r1 + 709a: 3a40 cmpnei r2, 0 + 709c: 0c03 bf 0x70a2 // 70a2 + UART2->ISR=UART_TX_IOV_S; + 709e: b323 st.w r1, (r3, 0xc) + 70a0: 07f5 br 0x708a // 708a + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 70a2: 9343 ld.w r2, (r3, 0xc) + 70a4: 3108 movi r1, 8 + 70a6: 6884 and r2, r1 + 70a8: 3a40 cmpnei r2, 0 + 70aa: 0bfa bt 0x709e // 709e + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 70ac: 9343 ld.w r2, (r3, 0xc) + 70ae: 3104 movi r1, 4 + 70b0: 6884 and r2, r1 + 70b2: 3a40 cmpnei r2, 0 + 70b4: 0bf5 bt 0x709e // 709e + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 70b6: 3280 movi r2, 128 + 70b8: 9323 ld.w r1, (r3, 0xc) + 70ba: 424c lsli r2, r2, 12 + 70bc: 6848 and r1, r2 + 70be: 3940 cmpnei r1, 0 + 70c0: 0fe5 bf 0x708a // 708a + UART2->ISR=UART_TX_DONE_S; + 70c2: b343 st.w r2, (r3, 0xc) +} + 70c4: 07e3 br 0x708a // 708a + 70c6: 0000 bkpt + 70c8: 20000038 .long 0x20000038 + +Disassembly of section .text.SPI0IntHandler: + +000070cc : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 70cc: 1460 nie + 70ce: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 70d0: 1178 lrw r3, 0x20000034 // 71b0 + 70d2: 3101 movi r1, 1 + 70d4: 9360 ld.w r3, (r3, 0x0) + 70d6: 9347 ld.w r2, (r3, 0x1c) + 70d8: 6884 and r2, r1 + 70da: 3a40 cmpnei r2, 0 + 70dc: 0c03 bf 0x70e2 // 70e2 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 70de: b328 st.w r1, (r3, 0x20) + } + +} + 70e0: 0407 br 0x70ee // 70ee + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 70e2: 9347 ld.w r2, (r3, 0x1c) + 70e4: 3002 movi r0, 2 + 70e6: 6880 and r2, r0 + 70e8: 3a40 cmpnei r2, 0 + 70ea: 0c04 bf 0x70f2 // 70f2 + SPI0->ICR = SPI_RTIM; + 70ec: b308 st.w r0, (r3, 0x20) +} + 70ee: 1463 ipop + 70f0: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 70f2: 9347 ld.w r2, (r3, 0x1c) + 70f4: 3004 movi r0, 4 + 70f6: 6880 and r2, r0 + 70f8: 3a40 cmpnei r2, 0 + 70fa: 0c55 bf 0x71a4 // 71a4 + SPI0->ICR = SPI_RXIM; + 70fc: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 70fe: 9302 ld.w r0, (r3, 0x8) + 7100: 32aa movi r2, 170 + 7102: 6482 cmpne r0, r2 + 7104: 083e bt 0x7180 // 7180 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7106: 3102 movi r1, 2 + 7108: 9343 ld.w r2, (r3, 0xc) + 710a: 6884 and r2, r1 + 710c: 3a40 cmpnei r2, 0 + 710e: 0ffd bf 0x7108 // 7108 + SPI0->DR = 0x11; + 7110: 3211 movi r2, 17 + 7112: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7114: 3110 movi r1, 16 + 7116: 9343 ld.w r2, (r3, 0xc) + 7118: 6884 and r2, r1 + 711a: 3a40 cmpnei r2, 0 + 711c: 0bfd bt 0x7116 // 7116 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 711e: 3102 movi r1, 2 + 7120: 9343 ld.w r2, (r3, 0xc) + 7122: 6884 and r2, r1 + 7124: 3a40 cmpnei r2, 0 + 7126: 0ffd bf 0x7120 // 7120 + SPI0->DR = 0x12; + 7128: 3212 movi r2, 18 + 712a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 712c: 3110 movi r1, 16 + 712e: 9343 ld.w r2, (r3, 0xc) + 7130: 6884 and r2, r1 + 7132: 3a40 cmpnei r2, 0 + 7134: 0bfd bt 0x712e // 712e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7136: 3102 movi r1, 2 + 7138: 9343 ld.w r2, (r3, 0xc) + 713a: 6884 and r2, r1 + 713c: 3a40 cmpnei r2, 0 + 713e: 0ffd bf 0x7138 // 7138 + SPI0->DR = 0x13; + 7140: 3213 movi r2, 19 + 7142: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7144: 3110 movi r1, 16 + 7146: 9343 ld.w r2, (r3, 0xc) + 7148: 6884 and r2, r1 + 714a: 3a40 cmpnei r2, 0 + 714c: 0bfd bt 0x7146 // 7146 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 714e: 3102 movi r1, 2 + 7150: 9343 ld.w r2, (r3, 0xc) + 7152: 6884 and r2, r1 + 7154: 3a40 cmpnei r2, 0 + 7156: 0ffd bf 0x7150 // 7150 + SPI0->DR = 0x14; + 7158: 3214 movi r2, 20 + 715a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 715c: 3110 movi r1, 16 + 715e: 9343 ld.w r2, (r3, 0xc) + 7160: 6884 and r2, r1 + 7162: 3a40 cmpnei r2, 0 + 7164: 0bfd bt 0x715e // 715e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 7166: 3102 movi r1, 2 + 7168: 9343 ld.w r2, (r3, 0xc) + 716a: 6884 and r2, r1 + 716c: 3a40 cmpnei r2, 0 + 716e: 0ffd bf 0x7168 // 7168 + SPI0->DR = 0x15; + 7170: 3215 movi r2, 21 + 7172: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 7174: 3110 movi r1, 16 + 7176: 9343 ld.w r2, (r3, 0xc) + 7178: 6884 and r2, r1 + 717a: 3a40 cmpnei r2, 0 + 717c: 0bfd bt 0x7176 // 7176 + 717e: 07b8 br 0x70ee // 70ee + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 7180: 9343 ld.w r2, (r3, 0xc) + 7182: 6884 and r2, r1 + 7184: 3a40 cmpnei r2, 0 + 7186: 0bb4 bt 0x70ee // 70ee + SPI0->DR=0x0; //FIFO=0 + 7188: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 718a: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 718c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 718e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 7190: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 7192: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 7194: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 7196: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 7198: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 719a: 9343 ld.w r2, (r3, 0xc) + 719c: 6884 and r2, r1 + 719e: 3a40 cmpnei r2, 0 + 71a0: 0bfd bt 0x719a // 719a + 71a2: 07a6 br 0x70ee // 70ee + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 71a4: 9347 ld.w r2, (r3, 0x1c) + 71a6: 3108 movi r1, 8 + 71a8: 6884 and r2, r1 + 71aa: 3a40 cmpnei r2, 0 + 71ac: 0b99 bt 0x70de // 70de + 71ae: 07a0 br 0x70ee // 70ee + 71b0: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000071b4 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 71b4: 1460 nie + 71b6: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 71b8: 1073 lrw r3, 0x2000002c // 7204 + 71ba: 3104 movi r1, 4 + 71bc: 9360 ld.w r3, (r3, 0x0) + 71be: 9349 ld.w r2, (r3, 0x24) + 71c0: 6884 and r2, r1 + 71c2: 3a40 cmpnei r2, 0 + 71c4: 0c02 bf 0x71c8 // 71c8 + { + SIO0->ICR=0X04; + 71c6: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 71c8: 9349 ld.w r2, (r3, 0x24) + 71ca: 3101 movi r1, 1 + 71cc: 6884 and r2, r1 + 71ce: 3a40 cmpnei r2, 0 + 71d0: 0c02 bf 0x71d4 // 71d4 + { + SIO0->ICR=0X01; + 71d2: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 71d4: 9349 ld.w r2, (r3, 0x24) + 71d6: 3102 movi r1, 2 + 71d8: 6884 and r2, r1 + 71da: 3a40 cmpnei r2, 0 + 71dc: 0c03 bf 0x71e2 // 71e2 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 71de: b32b st.w r1, (r3, 0x2c) + } +} + 71e0: 0410 br 0x7200 // 7200 + else if(SIO0->MISR&0X08) //RXBUFFULL + 71e2: 9349 ld.w r2, (r3, 0x24) + 71e4: 3108 movi r1, 8 + 71e6: 6884 and r2, r1 + 71e8: 3a40 cmpnei r2, 0 + 71ea: 0bfa bt 0x71de // 71de + else if(SIO0->MISR&0X010) //BREAK + 71ec: 9349 ld.w r2, (r3, 0x24) + 71ee: 3110 movi r1, 16 + 71f0: 6884 and r2, r1 + 71f2: 3a40 cmpnei r2, 0 + 71f4: 0bf5 bt 0x71de // 71de + else if(SIO0->MISR&0X020) //TIMEOUT + 71f6: 9349 ld.w r2, (r3, 0x24) + 71f8: 3120 movi r1, 32 + 71fa: 6884 and r2, r1 + 71fc: 3a40 cmpnei r2, 0 + 71fe: 0bf0 bt 0x71de // 71de +} + 7200: 1463 ipop + 7202: 1461 nir + 7204: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00007208 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 7208: 1460 nie + 720a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 720c: 106a lrw r3, 0x2000005c // 7234 + 720e: 3101 movi r1, 1 + 7210: 9360 ld.w r3, (r3, 0x0) + 7212: 237f addi r3, 128 + 7214: 934c ld.w r2, (r3, 0x30) + 7216: 6884 and r2, r1 + 7218: 3a40 cmpnei r2, 0 + 721a: 0c04 bf 0x7222 // 7222 + { + SYSCON->EXICR = EXI_PIN0; + 721c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 721e: 1463 ipop + 7220: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 7222: 3280 movi r2, 128 + 7224: 932c ld.w r1, (r3, 0x30) + 7226: 4249 lsli r2, r2, 9 + 7228: 6848 and r1, r2 + 722a: 3940 cmpnei r1, 0 + 722c: 0ff9 bf 0x721e // 721e + SYSCON->EXICR = EXI_PIN16; + 722e: b34b st.w r2, (r3, 0x2c) +} + 7230: 07f7 br 0x721e // 721e + 7232: 0000 bkpt + 7234: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00007238 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 7238: 1460 nie + 723a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 723c: 106a lrw r3, 0x2000005c // 7264 + 723e: 3102 movi r1, 2 + 7240: 9360 ld.w r3, (r3, 0x0) + 7242: 237f addi r3, 128 + 7244: 934c ld.w r2, (r3, 0x30) + 7246: 6884 and r2, r1 + 7248: 3a40 cmpnei r2, 0 + 724a: 0c04 bf 0x7252 // 7252 + { + SYSCON->EXICR = EXI_PIN1; + 724c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 724e: 1463 ipop + 7250: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 7252: 3280 movi r2, 128 + 7254: 932c ld.w r1, (r3, 0x30) + 7256: 424a lsli r2, r2, 10 + 7258: 6848 and r1, r2 + 725a: 3940 cmpnei r1, 0 + 725c: 0ff9 bf 0x724e // 724e + SYSCON->EXICR = EXI_PIN17; + 725e: b34b st.w r2, (r3, 0x2c) +} + 7260: 07f7 br 0x724e // 724e + 7262: 0000 bkpt + 7264: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00007268 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 7268: 1460 nie + 726a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 726c: 1070 lrw r3, 0x2000005c // 72ac + 726e: 3104 movi r1, 4 + 7270: 9360 ld.w r3, (r3, 0x0) + 7272: 237f addi r3, 128 + 7274: 934c ld.w r2, (r3, 0x30) + 7276: 6884 and r2, r1 + 7278: 3a40 cmpnei r2, 0 + 727a: 0c04 bf 0x7282 // 7282 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 727c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 727e: 1463 ipop + 7280: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 7282: 934c ld.w r2, (r3, 0x30) + 7284: 3108 movi r1, 8 + 7286: 6884 and r2, r1 + 7288: 3a40 cmpnei r2, 0 + 728a: 0bf9 bt 0x727c // 727c + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 728c: 3280 movi r2, 128 + 728e: 932c ld.w r1, (r3, 0x30) + 7290: 424b lsli r2, r2, 11 + 7292: 6848 and r1, r2 + 7294: 3940 cmpnei r1, 0 + 7296: 0c03 bf 0x729c // 729c + SYSCON->EXICR = EXI_PIN19; + 7298: b34b st.w r2, (r3, 0x2c) +} + 729a: 07f2 br 0x727e // 727e + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 729c: 3280 movi r2, 128 + 729e: 932c ld.w r1, (r3, 0x30) + 72a0: 424c lsli r2, r2, 12 + 72a2: 6848 and r1, r2 + 72a4: 3940 cmpnei r1, 0 + 72a6: 0bf9 bt 0x7298 // 7298 + 72a8: 07eb br 0x727e // 727e + 72aa: 0000 bkpt + 72ac: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000072b0 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 72b0: 1460 nie + 72b2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 72b4: 1066 lrw r3, 0x2000005c // 72cc + 72b6: 3110 movi r1, 16 + 72b8: 9360 ld.w r3, (r3, 0x0) + 72ba: 237f addi r3, 128 + 72bc: 934c ld.w r2, (r3, 0x30) + 72be: 6884 and r2, r1 + 72c0: 3a40 cmpnei r2, 0 + 72c2: 0c02 bf 0x72c6 // 72c6 + { + SYSCON->EXICR = EXI_PIN4; + 72c4: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 72c6: 1463 ipop + 72c8: 1461 nir + 72ca: 0000 bkpt + 72cc: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +000072d0 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 72d0: 1460 nie + 72d2: 1462 ipush + 72d4: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 72d6: 1079 lrw r3, 0x2000005c // 7338 + 72d8: 3280 movi r2, 128 + 72da: 9360 ld.w r3, (r3, 0x0) + 72dc: 237f addi r3, 128 + 72de: 932c ld.w r1, (r3, 0x30) + 72e0: 4243 lsli r2, r2, 3 + 72e2: 6848 and r1, r2 + 72e4: 3940 cmpnei r1, 0 + 72e6: 0c07 bf 0x72f4 // 72f4 + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 72e8: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 72ea: d9ee2000 ld.w r15, (r14, 0x0) + 72ee: 1401 addi r14, r14, 4 + 72f0: 1463 ipop + 72f2: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 72f4: 3280 movi r2, 128 + 72f6: 932c ld.w r1, (r3, 0x30) + 72f8: 4244 lsli r2, r2, 4 + 72fa: 6848 and r1, r2 + 72fc: 3940 cmpnei r1, 0 + 72fe: 0bf5 bt 0x72e8 // 72e8 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 7300: 3280 movi r2, 128 + 7302: 932c ld.w r1, (r3, 0x30) + 7304: 4245 lsli r2, r2, 5 + 7306: 6848 and r1, r2 + 7308: 3940 cmpnei r1, 0 + 730a: 0bef bt 0x72e8 // 72e8 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 730c: 3280 movi r2, 128 + 730e: 932c ld.w r1, (r3, 0x30) + 7310: 4246 lsli r2, r2, 6 + 7312: 6848 and r1, r2 + 7314: 3940 cmpnei r1, 0 + 7316: 0be9 bt 0x72e8 // 72e8 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 7318: 3280 movi r2, 128 + 731a: 932c ld.w r1, (r3, 0x30) + 731c: 4247 lsli r2, r2, 7 + 731e: 6848 and r1, r2 + 7320: 3940 cmpnei r1, 0 + 7322: 0be3 bt 0x72e8 // 72e8 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 7324: 3280 movi r2, 128 + 7326: 932c ld.w r1, (r3, 0x30) + 7328: 4248 lsli r2, r2, 8 + 732a: 6848 and r1, r2 + 732c: 3940 cmpnei r1, 0 + 732e: 0fde bf 0x72ea // 72ea + SYSCON->EXICR = EXI_PIN15; + 7330: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 7332: e000041b bsr 0x7b68 // 7b68 +} + 7336: 07da br 0x72ea // 72ea + 7338: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +0000733c : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 733c: 1460 nie + 733e: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 7340: 106b lrw r3, 0x20000014 // 736c + 7342: 3101 movi r1, 1 + 7344: 9360 ld.w r3, (r3, 0x0) + 7346: 934e ld.w r2, (r3, 0x38) + 7348: 6884 and r2, r1 + 734a: 3a40 cmpnei r2, 0 + 734c: 0c03 bf 0x7352 // 7352 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 734e: b330 st.w r1, (r3, 0x40) + } +} + 7350: 040b br 0x7366 // 7366 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 7352: 934e ld.w r2, (r3, 0x38) + 7354: 3102 movi r1, 2 + 7356: 6884 and r2, r1 + 7358: 3a40 cmpnei r2, 0 + 735a: 0bfa bt 0x734e // 734e + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 735c: 934e ld.w r2, (r3, 0x38) + 735e: 3104 movi r1, 4 + 7360: 6884 and r2, r1 + 7362: 3a40 cmpnei r2, 0 + 7364: 0bf5 bt 0x734e // 734e +} + 7366: 1463 ipop + 7368: 1461 nir + 736a: 0000 bkpt + 736c: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00007370 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 7370: 1460 nie + 7372: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 7374: 1071 lrw r3, 0x2000000c // 73b8 + 7376: 3101 movi r1, 1 + 7378: 9360 ld.w r3, (r3, 0x0) + 737a: 934c ld.w r2, (r3, 0x30) + 737c: 6884 and r2, r1 + 737e: 3a40 cmpnei r2, 0 + 7380: 0c0a bf 0x7394 // 7394 + { + BT0->ICR = BT_PEND; + 7382: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 7384: 9341 ld.w r2, (r3, 0x4) + 7386: 3a86 bclri r2, 6 + 7388: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 738a: 9340 ld.w r2, (r3, 0x0) + 738c: 3200 movi r2, 0 + 738e: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 7390: 1463 ipop + 7392: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 7394: 934c ld.w r2, (r3, 0x30) + 7396: 3102 movi r1, 2 + 7398: 6884 and r2, r1 + 739a: 3a40 cmpnei r2, 0 + 739c: 0c03 bf 0x73a2 // 73a2 + BT0->ICR = BT_EVTRG; + 739e: b32d st.w r1, (r3, 0x34) +} + 73a0: 07f8 br 0x7390 // 7390 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 73a2: 934c ld.w r2, (r3, 0x30) + 73a4: 3104 movi r1, 4 + 73a6: 6884 and r2, r1 + 73a8: 3a40 cmpnei r2, 0 + 73aa: 0bfa bt 0x739e // 739e + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 73ac: 934c ld.w r2, (r3, 0x30) + 73ae: 3108 movi r1, 8 + 73b0: 6884 and r2, r1 + 73b2: 3a40 cmpnei r2, 0 + 73b4: 0bf5 bt 0x739e // 739e + 73b6: 07ed br 0x7390 // 7390 + 73b8: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000073bc : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 73bc: 1460 nie + 73be: 1462 ipush + 73c0: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 73c2: 1079 lrw r3, 0x20000008 // 7424 + 73c4: 3101 movi r1, 1 + 73c6: 9360 ld.w r3, (r3, 0x0) + 73c8: 934c ld.w r2, (r3, 0x30) + 73ca: 6884 and r2, r1 + 73cc: 3a40 cmpnei r2, 0 + 73ce: 0c03 bf 0x73d4 // 73d4 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 73d0: b32d st.w r1, (r3, 0x34) + } +} + 73d2: 0418 br 0x7402 // 7402 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 73d4: 934c ld.w r2, (r3, 0x30) + 73d6: 3102 movi r1, 2 + 73d8: 6884 and r2, r1 + 73da: 3a40 cmpnei r2, 0 + 73dc: 0c18 bf 0x740c // 740c + BT1->ICR = BT_CMP; + 73de: b32d st.w r1, (r3, 0x34) + NUM++; + 73e0: 1072 lrw r3, 0x200000bc // 7428 + 73e2: 8340 ld.b r2, (r3, 0x0) + 73e4: 2200 addi r2, 1 + 73e6: 7488 zextb r2, r2 + SysTick_100us++; + 73e8: 9321 ld.w r1, (r3, 0x4) + 73ea: 2100 addi r1, 1 + if(NUM >= 10){ + 73ec: 3a09 cmphsi r2, 10 + NUM++; + 73ee: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 73f0: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 73f2: 0c08 bf 0x7402 // 7402 + NUM = 0; + 73f4: 3200 movi r2, 0 + 73f6: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 73f8: 9342 ld.w r2, (r3, 0x8) + 73fa: 2200 addi r2, 1 + 73fc: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 73fe: e0000395 bsr 0x7b28 // 7b28 +} + 7402: d9ee2000 ld.w r15, (r14, 0x0) + 7406: 1401 addi r14, r14, 4 + 7408: 1463 ipop + 740a: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 740c: 934c ld.w r2, (r3, 0x30) + 740e: 3104 movi r1, 4 + 7410: 6884 and r2, r1 + 7412: 3a40 cmpnei r2, 0 + 7414: 0bde bt 0x73d0 // 73d0 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 7416: 934c ld.w r2, (r3, 0x30) + 7418: 3108 movi r1, 8 + 741a: 6884 and r2, r1 + 741c: 3a40 cmpnei r2, 0 + 741e: 0bd9 bt 0x73d0 // 73d0 + 7420: 07f1 br 0x7402 // 7402 + 7422: 0000 bkpt + 7424: 20000008 .long 0x20000008 + 7428: 200000bc .long 0x200000bc + +Disassembly of section .text.PriviledgeVioHandler: + +0000742c : + 742c: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +0000742e : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 742e: 1460 nie + 7430: 1462 ipush + // ISR content ... + +} + 7432: 1463 ipop + 7434: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00007436 : + 7436: 1460 nie + 7438: 1462 ipush + 743a: 1463 ipop + 743c: 1461 nir + +Disassembly of section .text.Trap2Handler: + +0000743e : + 743e: 1460 nie + 7440: 1462 ipush + 7442: 1463 ipop + 7444: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00007446 : + 7446: 1460 nie + 7448: 1462 ipush + 744a: 1463 ipop + 744c: 1461 nir + +Disassembly of section .text.Trap0Handler: + +0000744e : + 744e: 1460 nie + 7450: 1462 ipush + 7452: 1463 ipop + 7454: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00007456 : + 7456: 1460 nie + 7458: 1462 ipush + 745a: 1463 ipop + 745c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000745e : + 745e: 1460 nie + 7460: 1462 ipush + 7462: 1463 ipop + 7464: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00007466 : + 7466: 1460 nie + 7468: 1462 ipush + 746a: 1463 ipop + 746c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000746e : + 746e: 1460 nie + 7470: 1462 ipush + 7472: 1463 ipop + 7474: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00007476 : + 7476: 1460 nie + 7478: 1462 ipush + 747a: 1463 ipop + 747c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000747e : + 747e: 1460 nie + 7480: 1462 ipush + 7482: 1463 ipop + 7484: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00007486 : + 7486: 1460 nie + 7488: 1462 ipush + 748a: 1463 ipop + 748c: 1461 nir + +Disassembly of section .text.__divsi3: + +00007490 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 7490: 14c1 push r4 + int PSR; + __asm volatile( + 7492: c0006023 mfcr r3, cr<0, 0> + 7496: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 749a: 1046 lrw r2, 0x20000000 // 74b0 <__divsi3+0x20> + 749c: 3400 movi r4, 0 + 749e: 9240 ld.w r2, (r2, 0x0) + 74a0: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74a2: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74a4: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74a6: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74a8: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74ac: 9202 ld.w r0, (r2, 0x8) +} + 74ae: 1481 pop r4 + 74b0: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000074b4 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 74b4: 14c1 push r4 + int PSR; + __asm volatile( + 74b6: c0006023 mfcr r3, cr<0, 0> + 74ba: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 74be: 1046 lrw r2, 0x20000000 // 74d4 <__udivsi3+0x20> + 74c0: 3401 movi r4, 1 + 74c2: 9240 ld.w r2, (r2, 0x0) + 74c4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74c6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74c8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74ca: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74cc: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 74d0: 9202 ld.w r0, (r2, 0x8) +} + 74d2: 1481 pop r4 + 74d4: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +000074d8 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 74d8: 14c1 push r4 + int PSR; + __asm volatile( + 74da: c0006023 mfcr r3, cr<0, 0> + 74de: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 74e2: 1046 lrw r2, 0x20000000 // 74f8 <__modsi3+0x20> + 74e4: 3400 movi r4, 0 + 74e6: 9240 ld.w r2, (r2, 0x0) + 74e8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 74ea: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 74ec: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 74ee: b221 st.w r1, (r2, 0x4) + __asm volatile( + 74f0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 74f4: 9203 ld.w r0, (r2, 0xc) +} + 74f6: 1481 pop r4 + 74f8: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +000074fc <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 74fc: 14c1 push r4 + int PSR; + __asm volatile( + 74fe: c0006023 mfcr r3, cr<0, 0> + 7502: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 7506: 1046 lrw r2, 0x20000000 // 751c <__umodsi3+0x20> + 7508: 3401 movi r4, 1 + 750a: 9240 ld.w r2, (r2, 0x0) + 750c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 750e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 7510: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 7512: b221 st.w r1, (r2, 0x4) + __asm volatile( + 7514: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 7518: 9203 ld.w r0, (r2, 0xc) +} + 751a: 1481 pop r4 + 751c: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00007520 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 7520: c1807420 psrset ee, ie +} + 7524: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +00007526 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 7526: c0807020 psrclr ie +} + 752a: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +0000752c : +UART_t g_uart1; +UART_t g_uart; +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 752c: 14d2 push r4-r5, r15 + switch((U8_T)uart_id){ + 752e: 7400 zextb r0, r0 + 7530: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 7532: 6d47 mov r5, r1 + switch((U8_T)uart_id){ + 7534: 0c1f bf 0x7572 // 7572 + 7536: 3840 cmpnei r0, 0 + 7538: 0c04 bf 0x7540 // 7540 + 753a: 3842 cmpnei r0, 2 + 753c: 0c8d bf 0x7656 // 7656 + g_uart.RecvTimeout = Recv_9600_TimeOut; + g_uart.processing_cf = prt_cf; + + break; + } +} + 753e: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 7540: e3fff892 bsr 0x6664 // 6664 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 7544: 3100 movi r1, 0 + 7546: 3000 movi r0, 0 + 7548: e3fff8dc bsr 0x6700 // 6700 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_EVEN); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 754c: 126d lrw r3, 0x20000040 // 7680 + 754e: 3280 movi r2, 128 + 7550: 9300 ld.w r0, (r3, 0x0) + 7552: 4243 lsli r2, r2, 3 + 7554: 122c lrw r1, 0x1388 // 7684 + 7556: e3fff94b bsr 0x67ec // 67ec + UART0_Int_Enable(); + 755a: e3fff8a9 bsr 0x66ac // 66ac + memset(&g_uart0,0,sizeof(UART_t)); + 755e: 3294 movi r2, 148 + 7560: 3100 movi r1, 0 + 7562: 120a lrw r0, 0x200002d4 // 7688 + 7564: e3ffe9ec bsr 0x493c // 493c <__memset_fast> + g_uart0.RecvTimeout = Recv_9600_TimeOut; + 7568: 1269 lrw r3, 0x20000354 // 768c + g_uart.RecvTimeout = Recv_9600_TimeOut; + 756a: 3203 movi r2, 3 + 756c: b342 st.w r2, (r3, 0x8) + g_uart.processing_cf = prt_cf; + 756e: b3a4 st.w r5, (r3, 0x10) +} + 7570: 07e7 br 0x753e // 753e + memset(&m_send,0,sizeof(MULIT_t)); + 7572: 1288 lrw r4, 0x200003fc // 7690 + memset(&g_uart1,0,sizeof(UART_t)); + 7574: 3294 movi r2, 148 + 7576: 3100 movi r1, 0 + 7578: 1207 lrw r0, 0x20000368 // 7694 + 757a: e3ffe9e1 bsr 0x493c // 493c <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 757e: 3288 movi r2, 136 + 7580: 3100 movi r1, 0 + 7582: 6c13 mov r0, r4 + 7584: e3ffe9dc bsr 0x493c // 493c <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 7588: 1264 lrw r3, 0x200003e8 // 7698 + 758a: 3203 movi r2, 3 + 758c: b342 st.w r2, (r3, 0x8) + g_uart1.processing_cf = prt_cf; + 758e: b3a4 st.w r5, (r3, 0x10) + m_send.HighBit_Flag = 0x01; + 7590: 245f addi r4, 96 + m_send.BusState_Tick = SysTick_1ms; + 7592: 1263 lrw r3, 0x200000c4 // 769c + GPIO_PullHigh_Init(GPIOA0,15); + 7594: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 7596: 9360 ld.w r3, (r3, 0x0) + 7598: b467 st.w r3, (r4, 0x1c) + m_send.HighBit_Flag = 0x01; + 759a: 3301 movi r3, 1 + 759c: a465 st.b r3, (r4, 0x5) + GPIO_Init(GPIOB0,LED_STATUS_PIN,Output); + 759e: 12a1 lrw r5, 0x20000048 // 76a0 + GPIO_PullHigh_Init(GPIOA0,15); + 75a0: 1281 lrw r4, 0x2000004c // 76a4 + 75a2: 9400 ld.w r0, (r4, 0x0) + 75a4: e3fff6ce bsr 0x6340 // 6340 + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 75a8: 320f movi r2, 15 + 75aa: 310f movi r1, 15 + 75ac: 3000 movi r0, 0 + 75ae: e3fff6db bsr 0x6364 // 6364 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 75b2: 300f movi r0, 15 + 75b4: e3fff75e bsr 0x6470 // 6470 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 75b8: 3180 movi r1, 128 + 75ba: 3201 movi r2, 1 + 75bc: 4128 lsli r1, r1, 8 + 75be: 3001 movi r0, 1 + 75c0: e3fff59a bsr 0x60f4 // 60f4 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 75c4: 3180 movi r1, 128 + 75c6: 3200 movi r2, 0 + 75c8: 4128 lsli r1, r1, 8 + 75ca: 3001 movi r0, 1 + 75cc: e3fff594 bsr 0x60f4 // 60f4 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 75d0: 3180 movi r1, 128 + 75d2: 4128 lsli r1, r1, 8 + 75d4: 3001 movi r0, 1 + 75d6: e3fff5af bsr 0x6134 // 6134 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 75da: 3180 movi r1, 128 + 75dc: 9400 ld.w r0, (r4, 0x0) + 75de: 4128 lsli r1, r1, 8 + 75e0: e3fff5c4 bsr 0x6168 // 6168 + EXI4_Int_Enable(); + 75e4: e3fff5c4 bsr 0x616c // 616c + UART1_DeInit(); //clear all UART Register + 75e8: e3fff84a bsr 0x667c // 667c + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 75ec: 3102 movi r1, 2 + 75ee: 3001 movi r0, 1 + 75f0: e3fff888 bsr 0x6700 // 6700 + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 75f4: 116d lrw r3, 0x2000003c // 76a8 + 75f6: 3200 movi r2, 0 + 75f8: 9300 ld.w r0, (r3, 0x0) + 75fa: 1123 lrw r1, 0x1388 // 7684 + 75fc: e3fff8f8 bsr 0x67ec // 67ec + UART1_Int_Enable(); + 7600: e3fff864 bsr 0x66c8 // 66c8 + GPIO_Init(GPIOA0,LED_HLW_PIN,Output); + 7604: 9400 ld.w r0, (r4, 0x0) + 7606: 3200 movi r2, 0 + 7608: 310b movi r1, 11 + 760a: e3fff62b bsr 0x6260 // 6260 + GPIO_Init(GPIOA0,LED_BUS_PIN,Output); + 760e: 9400 ld.w r0, (r4, 0x0) + 7610: 3200 movi r2, 0 + 7612: 310c movi r1, 12 + 7614: e3fff626 bsr 0x6260 // 6260 + GPIO_Init(GPIOB0,LED_STATUS_PIN,Output); + 7618: 3200 movi r2, 0 + 761a: 9500 ld.w r0, (r5, 0x0) + 761c: 3103 movi r1, 3 + 761e: e3fff621 bsr 0x6260 // 6260 + HLW_LED_ON; + 7622: 9400 ld.w r0, (r4, 0x0) + 7624: 310b movi r1, 11 + 7626: e3fff7a7 bsr 0x6574 // 6574 + BUS_LED_ON; + 762a: 9400 ld.w r0, (r4, 0x0) + 762c: 310c movi r1, 12 + 762e: e3fff7a3 bsr 0x6574 // 6574 + STATUS_LED_ON; + 7632: 9500 ld.w r0, (r5, 0x0) + 7634: 3103 movi r1, 3 + 7636: e3fff79f bsr 0x6574 // 6574 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 763a: 3200 movi r2, 0 + 763c: 9400 ld.w r0, (r4, 0x0) + 763e: 3107 movi r1, 7 + 7640: e3fff610 bsr 0x6260 // 6260 + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 7644: 9400 ld.w r0, (r4, 0x0) + 7646: 3107 movi r1, 7 + 7648: e3fff686 bsr 0x6354 // 6354 + WRITE_LOW_DR; + 764c: 9400 ld.w r0, (r4, 0x0) + 764e: 3107 movi r1, 7 + 7650: e3fff792 bsr 0x6574 // 6574 + break; + 7654: 0775 br 0x753e // 753e + UART2_DeInit(); //clear all UART Register + 7656: e3fff81f bsr 0x6694 // 6694 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 765a: 3102 movi r1, 2 + 765c: 3002 movi r0, 2 + 765e: e3fff851 bsr 0x6700 // 6700 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled , + 7662: 1073 lrw r3, 0x20000038 // 76ac + 7664: 3200 movi r2, 0 + 7666: 9300 ld.w r0, (r3, 0x0) + 7668: 1027 lrw r1, 0x1388 // 7684 + 766a: e3fff8c1 bsr 0x67ec // 67ec + UART2_Int_Enable(); + 766e: e3fff83b bsr 0x66e4 // 66e4 + memset(&g_uart,0,sizeof(UART_t)); + 7672: 3294 movi r2, 148 + 7674: 3100 movi r1, 0 + 7676: 100f lrw r0, 0x20000240 // 76b0 + 7678: e3ffe962 bsr 0x493c // 493c <__memset_fast> + g_uart.RecvTimeout = Recv_9600_TimeOut; + 767c: 106e lrw r3, 0x200002c0 // 76b4 + 767e: 0776 br 0x756a // 756a + 7680: 20000040 .long 0x20000040 + 7684: 00001388 .long 0x00001388 + 7688: 200002d4 .long 0x200002d4 + 768c: 20000354 .long 0x20000354 + 7690: 200003fc .long 0x200003fc + 7694: 20000368 .long 0x20000368 + 7698: 200003e8 .long 0x200003e8 + 769c: 200000c4 .long 0x200000c4 + 76a0: 20000048 .long 0x20000048 + 76a4: 2000004c .long 0x2000004c + 76a8: 2000003c .long 0x2000003c + 76ac: 20000038 .long 0x20000038 + 76b0: 20000240 .long 0x20000240 + 76b4: 200002c0 .long 0x200002c0 + +Disassembly of section .text.UART0_RecvINT_Processing: + +000076b8 : + +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + 76b8: 14d1 push r4, r15 + if((g_uart0.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart0.RecvLen = 0; + 76ba: 108d lrw r4, 0x20000354 // 76ec + 76bc: 8c42 ld.h r2, (r4, 0x4) + 76be: 333e movi r3, 62 + 76c0: 648d cmplt r3, r2 + 76c2: 0c03 bf 0x76c8 // 76c8 + 76c4: 3300 movi r3, 0 + 76c6: ac62 st.h r3, (r4, 0x4) + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + 76c8: 8c62 ld.h r3, (r4, 0x4) + 76ca: 5b42 addi r2, r3, 1 + 76cc: ac42 st.h r2, (r4, 0x4) + + HLW_LED_OFF; + 76ce: 310b movi r1, 11 + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + 76d0: 1048 lrw r2, 0x200002d4 // 76f0 + 76d2: 60c8 addu r3, r2 + 76d4: a300 st.b r0, (r3, 0x0) + HLW_LED_OFF; + 76d6: 1068 lrw r3, 0x2000004c // 76f4 + 76d8: 9300 ld.w r0, (r3, 0x0) + 76da: e3fff749 bsr 0x656c // 656c + + g_uart0.RecvIdleTiming = SysTick_1ms; + 76de: 1067 lrw r3, 0x200000c4 // 76f8 + 76e0: 9360 ld.w r3, (r3, 0x0) + 76e2: b463 st.w r3, (r4, 0xc) + g_uart0.Receiving = 0x01; + 76e4: 3301 movi r3, 1 + 76e6: a460 st.b r3, (r4, 0x0) +} + 76e8: 1491 pop r4, r15 + 76ea: 0000 bkpt + 76ec: 20000354 .long 0x20000354 + 76f0: 200002d4 .long 0x200002d4 + 76f4: 2000004c .long 0x2000004c + 76f8: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART0_TASK: + +000076fc : + +void UART0_TASK(void){ + 76fc: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart0.Receiving == 0x01){ + 76fe: 1097 lrw r4, 0x20000354 // 7758 + 7700: 8460 ld.b r3, (r4, 0x0) + 7702: 3b41 cmpnei r3, 1 + 7704: 0828 bt 0x7754 // 7754 + if(SysTick_1ms - g_uart0.RecvIdleTiming > g_uart0.RecvTimeout){ + 7706: 10b6 lrw r5, 0x200000c4 // 775c + 7708: 9560 ld.w r3, (r5, 0x0) + 770a: 9443 ld.w r2, (r4, 0xc) + 770c: 60ca subu r3, r2 + 770e: 9442 ld.w r2, (r4, 0x8) + 7710: 64c8 cmphs r2, r3 + 7712: 0821 bt 0x7754 // 7754 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7714: e3fff53a bsr 0x6188 // 6188 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7718: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 771a: 8c42 ld.h r2, (r4, 0x4) + 771c: 1031 lrw r1, 0x200002d4 // 7760 + 771e: 1012 lrw r0, 0x20000314 // 7764 + g_uart0.RecvIdleTiming = SysTick_1ms; + 7720: b463 st.w r3, (r4, 0xc) + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + 7722: e3ffe951 bsr 0x49c4 // 49c4 <__memcpy_fast> + g_uart0.DealLen = g_uart0.RecvLen; + 7726: 8c62 ld.h r3, (r4, 0x4) + 7728: ac61 st.h r3, (r4, 0x2) + g_uart0.RecvLen = 0; + 772a: 3300 movi r3, 0 + 772c: ac62 st.h r3, (r4, 0x4) + g_uart0.Receiving = 0; + 772e: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 7730: e3fff526 bsr 0x617c // 617c + +#if DBG_LOG_EN + // Dbg_Println(DBG_BIT_SYS_STATUS, "UART0 revLen %d", g_uart0.DealLen); + // Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART0 buff",g_uart0.DealBuffer,g_uart0.DealLen); +#endif + if(g_uart0.processing_cf != NULL){ + 7734: 9464 ld.w r3, (r4, 0x10) + 7736: 3b40 cmpnei r3, 0 + 7738: 0c04 bf 0x7740 // 7740 + rev = g_uart0.processing_cf(g_uart0.DealBuffer,g_uart0.DealLen); + 773a: 8c21 ld.h r1, (r4, 0x2) + 773c: 100a lrw r0, 0x20000314 // 7764 + 773e: 7bcd jsr r3 + } + HLW_LED_ON; + 7740: 106a lrw r3, 0x2000004c // 7768 + 7742: 310b movi r1, 11 + 7744: 9300 ld.w r0, (r3, 0x0) + 7746: e3fff717 bsr 0x6574 // 6574 + memset(g_uart0.DealBuffer,0,USART_BUFFER_SIZE); + 774a: 3240 movi r2, 64 + 774c: 3100 movi r1, 0 + 774e: 1006 lrw r0, 0x20000314 // 7764 + 7750: e3ffe8f6 bsr 0x493c // 493c <__memset_fast> + } + } +} + 7754: 1492 pop r4-r5, r15 + 7756: 0000 bkpt + 7758: 20000354 .long 0x20000354 + 775c: 200000c4 .long 0x200000c4 + 7760: 200002d4 .long 0x200002d4 + 7764: 20000314 .long 0x20000314 + 7768: 2000004c .long 0x2000004c + +Disassembly of section .text.UART1_RecvINT_Processing: + +0000776c : + +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + 776c: 14d1 push r4, r15 + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 776e: 108d lrw r4, 0x200003e8 // 77a0 + 7770: 8c42 ld.h r2, (r4, 0x4) + 7772: 333e movi r3, 62 + 7774: 648d cmplt r3, r2 + 7776: 0c03 bf 0x777c // 777c + 7778: 3300 movi r3, 0 + 777a: ac62 st.h r3, (r4, 0x4) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 777c: 8c62 ld.h r3, (r4, 0x4) + 777e: 5b42 addi r2, r3, 1 + 7780: ac42 st.h r2, (r4, 0x4) + BUS_LED_OFF; + 7782: 310c movi r1, 12 + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 7784: 1048 lrw r2, 0x20000368 // 77a4 + 7786: 60c8 addu r3, r2 + 7788: a300 st.b r0, (r3, 0x0) + BUS_LED_OFF; + 778a: 1068 lrw r3, 0x2000004c // 77a8 + 778c: 9300 ld.w r0, (r3, 0x0) + 778e: e3fff6ef bsr 0x656c // 656c + g_uart1.RecvIdleTiming = SysTick_1ms; + 7792: 1067 lrw r3, 0x200000c4 // 77ac + 7794: 9360 ld.w r3, (r3, 0x0) + 7796: b463 st.w r3, (r4, 0xc) + g_uart1.Receiving = 0x01; + 7798: 3301 movi r3, 1 + 779a: a460 st.b r3, (r4, 0x0) + +} + 779c: 1491 pop r4, r15 + 779e: 0000 bkpt + 77a0: 200003e8 .long 0x200003e8 + 77a4: 20000368 .long 0x20000368 + 77a8: 2000004c .long 0x2000004c + 77ac: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART1_TASK: + +000077b0 : + +void UART1_TASK(void){ + 77b0: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart1.Receiving == 0x01){ + 77b2: 109a lrw r4, 0x200003e8 // 7818 + 77b4: 8460 ld.b r3, (r4, 0x0) + 77b6: 3b41 cmpnei r3, 1 + 77b8: 0829 bt 0x780a // 780a + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + 77ba: 10b9 lrw r5, 0x200000c4 // 781c + 77bc: 9560 ld.w r3, (r5, 0x0) + 77be: 9443 ld.w r2, (r4, 0xc) + 77c0: 60ca subu r3, r2 + 77c2: 9442 ld.w r2, (r4, 0x8) + 77c4: 64c8 cmphs r2, r3 + 77c6: 0822 bt 0x780a // 780a + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 77c8: e3fff4e0 bsr 0x6188 // 6188 + g_uart1.RecvIdleTiming = SysTick_1ms; + 77cc: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 77ce: 8c42 ld.h r2, (r4, 0x4) + 77d0: 1034 lrw r1, 0x20000368 // 7820 + 77d2: 1015 lrw r0, 0x200003a8 // 7824 + g_uart1.RecvIdleTiming = SysTick_1ms; + 77d4: b463 st.w r3, (r4, 0xc) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 77d6: e3ffe8f7 bsr 0x49c4 // 49c4 <__memcpy_fast> + g_uart1.DealLen = g_uart1.RecvLen; + 77da: 8c62 ld.h r3, (r4, 0x4) + 77dc: ac61 st.h r3, (r4, 0x2) + g_uart1.RecvLen = 0; + 77de: 3300 movi r3, 0 + 77e0: ac62 st.h r3, (r4, 0x4) + g_uart1.Receiving = 0; + 77e2: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 77e4: e3fff4cc bsr 0x617c // 617c + +#if DBG_LOG_EN + // Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + // Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); +#endif + if(g_uart1.processing_cf != NULL){ + 77e8: 9464 ld.w r3, (r4, 0x10) + 77ea: 3b40 cmpnei r3, 0 + 77ec: 0810 bt 0x780c // 780c + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + } + /*Boot处理函数 */ + if(rev != 0x00) + { + Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); + 77ee: 8c21 ld.h r1, (r4, 0x2) + 77f0: 100d lrw r0, 0x200003a8 // 7824 + 77f2: e0001565 bsr 0xa2bc // a2bc + } + + BUS_LED_ON; + 77f6: 106d lrw r3, 0x2000004c // 7828 + 77f8: 310c movi r1, 12 + 77fa: 9300 ld.w r0, (r3, 0x0) + 77fc: e3fff6bc bsr 0x6574 // 6574 + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + 7800: 3240 movi r2, 64 + 7802: 3100 movi r1, 0 + 7804: 1008 lrw r0, 0x200003a8 // 7824 + 7806: e3ffe89b bsr 0x493c // 493c <__memset_fast> + } + } +} + 780a: 1492 pop r4-r5, r15 + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + 780c: 8c21 ld.h r1, (r4, 0x2) + 780e: 1006 lrw r0, 0x200003a8 // 7824 + 7810: 7bcd jsr r3 + if(rev != 0x00) + 7812: 3840 cmpnei r0, 0 + 7814: 0ff1 bf 0x77f6 // 77f6 + 7816: 07ec br 0x77ee // 77ee + 7818: 200003e8 .long 0x200003e8 + 781c: 200000c4 .long 0x200000c4 + 7820: 20000368 .long 0x20000368 + 7824: 200003a8 .long 0x200003a8 + 7828: 2000004c .long 0x2000004c + +Disassembly of section .text.UART2_RecvINT_Processing: + +0000782c : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 782c: 14d1 push r4, r15 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 782e: 108d lrw r4, 0x200002c0 // 7860 + 7830: 8c42 ld.h r2, (r4, 0x4) + 7832: 333e movi r3, 62 + 7834: 648d cmplt r3, r2 + 7836: 0c03 bf 0x783c // 783c + 7838: 3300 movi r3, 0 + 783a: ac62 st.h r3, (r4, 0x4) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 783c: 8c62 ld.h r3, (r4, 0x4) + 783e: 5b42 addi r2, r3, 1 + 7840: ac42 st.h r2, (r4, 0x4) + STATUS_LED_OFF; + 7842: 3103 movi r1, 3 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 7844: 1048 lrw r2, 0x20000240 // 7864 + 7846: 60c8 addu r3, r2 + 7848: a300 st.b r0, (r3, 0x0) + STATUS_LED_OFF; + 784a: 1068 lrw r3, 0x20000048 // 7868 + 784c: 9300 ld.w r0, (r3, 0x0) + 784e: e3fff68f bsr 0x656c // 656c + g_uart.RecvIdleTiming = SysTick_1ms; + 7852: 1067 lrw r3, 0x200000c4 // 786c + 7854: 9360 ld.w r3, (r3, 0x0) + 7856: b463 st.w r3, (r4, 0xc) + g_uart.Receiving = 0x01; + 7858: 3301 movi r3, 1 + 785a: a460 st.b r3, (r4, 0x0) +} + 785c: 1491 pop r4, r15 + 785e: 0000 bkpt + 7860: 200002c0 .long 0x200002c0 + 7864: 20000240 .long 0x20000240 + 7868: 20000048 .long 0x20000048 + 786c: 200000c4 .long 0x200000c4 + +Disassembly of section .text.UART2_TASK: + +00007870 : + +void UART2_TASK(void){ + 7870: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart.Receiving == 0x01){ + 7872: 1097 lrw r4, 0x200002c0 // 78cc + 7874: 8460 ld.b r3, (r4, 0x0) + 7876: 3b41 cmpnei r3, 1 + 7878: 0828 bt 0x78c8 // 78c8 + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 787a: 10b6 lrw r5, 0x200000c4 // 78d0 + 787c: 9560 ld.w r3, (r5, 0x0) + 787e: 9443 ld.w r2, (r4, 0xc) + 7880: 60ca subu r3, r2 + 7882: 9442 ld.w r2, (r4, 0x8) + 7884: 64c8 cmphs r2, r3 + 7886: 0821 bt 0x78c8 // 78c8 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 7888: e3fff480 bsr 0x6188 // 6188 + g_uart.RecvIdleTiming = SysTick_1ms; + 788c: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 788e: 8c42 ld.h r2, (r4, 0x4) + 7890: 1031 lrw r1, 0x20000240 // 78d4 + 7892: 1012 lrw r0, 0x20000280 // 78d8 + g_uart.RecvIdleTiming = SysTick_1ms; + 7894: b463 st.w r3, (r4, 0xc) + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + 7896: e3ffe897 bsr 0x49c4 // 49c4 <__memcpy_fast> + g_uart.DealLen = g_uart.RecvLen; + 789a: 8c62 ld.h r3, (r4, 0x4) + 789c: ac61 st.h r3, (r4, 0x2) + g_uart.RecvLen = 0; + 789e: 3300 movi r3, 0 + 78a0: ac62 st.h r3, (r4, 0x4) + g_uart.Receiving = 0; + 78a2: a460 st.b r3, (r4, 0x0) + SYSCON_Int_Enable(); + 78a4: e3fff46c bsr 0x617c // 617c + +#if DBG_LOG_EN + // Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 revLen %d", g_uart.DealLen); + // Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart.DealBuffer,g_uart.DealLen); +#endif + if(g_uart.processing_cf != NULL){ + 78a8: 9464 ld.w r3, (r4, 0x10) + 78aa: 3b40 cmpnei r3, 0 + 78ac: 0c04 bf 0x78b4 // 78b4 + rev = g_uart.processing_cf(g_uart.DealBuffer,g_uart.DealLen); + 78ae: 8c21 ld.h r1, (r4, 0x2) + 78b0: 100a lrw r0, 0x20000280 // 78d8 + 78b2: 7bcd jsr r3 + if(rev != 0x00) + { + //UARTTransmit(UART2,g_uart.DealBuffer,g_uart.DealLen);//回返 + // BT_Uart_Packing(g_uart.DealBuffer,g_uart.DealLen,REG_BTDEBUG_FLAG); + } + STATUS_LED_ON; + 78b4: 106a lrw r3, 0x20000048 // 78dc + 78b6: 3103 movi r1, 3 + 78b8: 9300 ld.w r0, (r3, 0x0) + 78ba: e3fff65d bsr 0x6574 // 6574 + memset(g_uart.DealBuffer,0,USART_BUFFER_SIZE); + 78be: 3240 movi r2, 64 + 78c0: 3100 movi r1, 0 + 78c2: 1006 lrw r0, 0x20000280 // 78d8 + 78c4: e3ffe83c bsr 0x493c // 493c <__memset_fast> + + } + } +} + 78c8: 1492 pop r4-r5, r15 + 78ca: 0000 bkpt + 78cc: 200002c0 .long 0x200002c0 + 78d0: 200000c4 .long 0x200000c4 + 78d4: 20000240 .long 0x20000240 + 78d8: 20000280 .long 0x20000280 + 78dc: 20000048 .long 0x20000048 + +Disassembly of section .text.MCU485_SendData: + +000078e0 : + }while(Dataval == 0x00); //发送完成 + uart->ISR=UART_TX_DONE_S; +} + +volatile int RS485_Comm_Flag = 0,RS485_Comm_Start = 0,RS485_Comm_End = 0,RS485_Comming = 0; +void MCU485_SendData(U8_T *buff,U16_T len){ + 78e0: 14d4 push r4-r7, r15 + 78e2: 1421 subi r14, r14, 4 + 78e4: b800 st.w r0, (r14, 0x0) + 78e6: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 78e8: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 78ea: 109f lrw r4, 0x200000c8 // 7964 + 78ec: 10df lrw r6, 0x2000004c // 7968 + 78ee: 9460 ld.w r3, (r4, 0x0) + 78f0: 3b41 cmpnei r3, 1 + 78f2: 0c2d bf 0x794c // 794c + } + + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + } + + CK_CPU_DisAllNormalIrq(); + 78f4: e3fffe19 bsr 0x7526 // 7526 + + WRITE_HIGH_DR; //GPIO_Write_High(GPIOA0,7); + 78f8: 3107 movi r1, 7 + 78fa: 9600 ld.w r0, (r6, 0x0) + 78fc: e3fff638 bsr 0x656c // 656c + + RS485_Comm_Flag = 0x01; + 7900: 3301 movi r3, 1 + 7902: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 7904: 3300 movi r3, 0 + 7906: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 7908: b463 st.w r3, (r4, 0xc) + CK_CPU_EnAllNormalIrq(); + 790a: e3fffe0b bsr 0x7520 // 7520 + + UARTTransmit(UART1,buff,len); + 790e: 1078 lrw r3, 0x2000003c // 796c + 7910: 6c9f mov r2, r7 + 7912: 9300 ld.w r0, (r3, 0x0) + 7914: 9820 ld.w r1, (r14, 0x0) + 7916: e3fff773 bsr 0x67fc // 67fc + + do{ + delay_nus(100); + 791a: 3064 movi r0, 100 + 791c: e3fff832 bsr 0x6980 // 6980 + + delay_cnt ++; + 7920: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7922: 3363 movi r3, 99 + 7924: 654c cmphs r3, r5 + 7926: 0c07 bf 0x7934 // 7934 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 7928: 9462 ld.w r3, (r4, 0x8) + 792a: 65cd cmplt r3, r7 + 792c: 0bf7 bt 0x791a // 791a + 792e: 9463 ld.w r3, (r4, 0xc) + 7930: 65cd cmplt r3, r7 + 7932: 0bf4 bt 0x791a // 791a + + CK_CPU_DisAllNormalIrq(); + 7934: e3fffdf9 bsr 0x7526 // 7526 + WRITE_LOW_DR; //GPIO_Write_Low(GPIOA0,7); + 7938: 9600 ld.w r0, (r6, 0x0) + 793a: 3107 movi r1, 7 + 793c: e3fff61c bsr 0x6574 // 6574 + + RS485_Comm_Flag = 0x00; + 7940: 3300 movi r3, 0 + 7942: b461 st.w r3, (r4, 0x4) + CK_CPU_EnAllNormalIrq(); + 7944: e3fffdee bsr 0x7520 // 7520 +} + 7948: 1401 addi r14, r14, 4 + 794a: 1494 pop r4-r7, r15 + delay_nus(100); + 794c: 3064 movi r0, 100 + 794e: e3fff819 bsr 0x6980 // 6980 + delay_cnt ++; + 7952: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7954: 3364 movi r3, 100 + 7956: 64d6 cmpne r5, r3 + 7958: 0fce bf 0x78f4 // 78f4 + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + 795a: 3107 movi r1, 7 + 795c: 9600 ld.w r0, (r6, 0x0) + 795e: e3fff60f bsr 0x657c // 657c + 7962: 07c6 br 0x78ee // 78ee + 7964: 200000c8 .long 0x200000c8 + 7968: 2000004c .long 0x2000004c + 796c: 2000003c .long 0x2000003c + +Disassembly of section .text.BUS485_Send: + +00007970 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 7970: 14d4 push r4-r7, r15 + 7972: 1423 subi r14, r14, 12 + 7974: b802 st.w r0, (r14, 0x8) + 7976: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 7978: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 797a: 1189 lrw r4, 0x200000c8 // 7a1c + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 797c: 11c9 lrw r6, 0x2000004c // 7a20 + while(RS485_Comming == 0x01){ + 797e: 9460 ld.w r3, (r4, 0x0) + 7980: 3b41 cmpnei r3, 1 + 7982: 0c3e bf 0x79fe // 79fe + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 7984: 1168 lrw r3, 0x2000045c // 7a24 + 7986: 83c4 ld.b r6, (r3, 0x4) + 7988: 3e40 cmpnei r6, 0 + 798a: b861 st.w r3, (r14, 0x4) + 798c: 0845 bt 0x7a16 // 7a16 + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //485_DR + 798e: 11e5 lrw r7, 0x2000004c // 7a20 + CK_CPU_DisAllNormalIrq(); + 7990: e3fffdcb bsr 0x7526 // 7526 + WRITE_HIGH_DR; //485_DR + 7994: 3107 movi r1, 7 + 7996: 9700 ld.w r0, (r7, 0x0) + 7998: e3fff5ea bsr 0x656c // 656c + + RS485_Comm_Flag = 0x01; + 799c: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 799e: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 79a0: b441 st.w r2, (r4, 0x4) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 79a2: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 79a4: b4c2 st.w r6, (r4, 0x8) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 79a6: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 79a8: b4c3 st.w r6, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 79aa: e3fffdbb bsr 0x7520 // 7520 + + UARTTransmit(UART1,buff,len); + 79ae: 105f lrw r2, 0x2000003c // 7a28 + 79b0: 9200 ld.w r0, (r2, 0x0) + 79b2: 9822 ld.w r1, (r14, 0x8) + 79b4: 9840 ld.w r2, (r14, 0x0) + 79b6: e3fff723 bsr 0x67fc // 67fc + do{ + delay_nus(100); + 79ba: 3064 movi r0, 100 + 79bc: e3fff7e2 bsr 0x6980 // 6980 + delay_cnt ++; + 79c0: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 79c2: 3363 movi r3, 99 + 79c4: 654c cmphs r3, r5 + 79c6: 0c08 bf 0x79d6 // 79d6 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 79c8: 9462 ld.w r3, (r4, 0x8) + 79ca: 9840 ld.w r2, (r14, 0x0) + 79cc: 648d cmplt r3, r2 + 79ce: 0bf6 bt 0x79ba // 79ba + 79d0: 9463 ld.w r3, (r4, 0xc) + 79d2: 648d cmplt r3, r2 + 79d4: 0bf3 bt 0x79ba // 79ba + + CK_CPU_DisAllNormalIrq(); + 79d6: e3fffda8 bsr 0x7526 // 7526 + + WRITE_LOW_DR; //485_DR + 79da: 9700 ld.w r0, (r7, 0x0) + 79dc: 3107 movi r1, 7 + 79de: e3fff5cb bsr 0x6574 // 6574 + + RS485_Comm_Flag = 0x00; + 79e2: 3300 movi r3, 0 + 79e4: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 79e6: 1072 lrw r3, 0x200000c4 // 7a2c + 79e8: 9340 ld.w r2, (r3, 0x0) + 79ea: 1072 lrw r3, 0x200003fc // 7a30 + 79ec: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 79ee: 9861 ld.w r3, (r14, 0x4) + 79f0: 3200 movi r2, 0 + 79f2: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 79f4: e3fffd96 bsr 0x7520 // 7520 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 79f8: 6c1b mov r0, r6 + 79fa: 1403 addi r14, r14, 12 + 79fc: 1494 pop r4-r7, r15 + delay_nus(100); + 79fe: 3064 movi r0, 100 + 7a00: e3fff7c0 bsr 0x6980 // 6980 + delay_cnt ++; + 7a04: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 7a06: 3364 movi r3, 100 + 7a08: 64d6 cmpne r5, r3 + 7a0a: 0fbd bf 0x7984 // 7984 + REVERISE_DR; //485_DR + 7a0c: 3107 movi r1, 7 + 7a0e: 9600 ld.w r0, (r6, 0x0) + 7a10: e3fff5b6 bsr 0x657c // 657c + 7a14: 07b5 br 0x797e // 797e + return UART_BUSBUSY; //发送失败 + 7a16: 3601 movi r6, 1 + 7a18: 07f0 br 0x79f8 // 79f8 + 7a1a: 0000 bkpt + 7a1c: 200000c8 .long 0x200000c8 + 7a20: 2000004c .long 0x2000004c + 7a24: 2000045c .long 0x2000045c + 7a28: 2000003c .long 0x2000003c + 7a2c: 200000c4 .long 0x200000c4 + 7a30: 200003fc .long 0x200003fc + +Disassembly of section .text.MultSend_Task: + +00007a34 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 7a34: 14d4 push r4-r7, r15 + 7a36: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7a38: 5963 subi r3, r1, 1 + 7a3a: 74cd zexth r3, r3 + 7a3c: 3463 movi r4, 99 + 7a3e: 64d0 cmphs r4, r3 +{ + 7a40: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7a42: 0c29 bf 0x7a94 // 7a94 + + if(DatSd == 0x01) + 7a44: 3a41 cmpnei r2, 1 + 7a46: 0c04 bf 0x7a4e // 7a4e + } + }else{ + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 7a48: 3001 movi r0, 1 +} + 7a4a: 1401 addi r14, r14, 4 + 7a4c: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 7a4e: 1075 lrw r3, 0x200003fc // 7aa0 + 7a50: 3760 movi r7, 96 + 7a52: 61cc addu r7, r3 + 7a54: 87c8 ld.b r6, (r7, 0x8) + 7a56: 874a ld.b r2, (r7, 0xa) + 7a58: 6498 cmphs r6, r2 + 7a5a: 081f bt 0x7a98 // 7a98 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 7a5c: 3480 movi r4, 128 + 7a5e: 10b2 lrw r5, 0x200000c4 // 7aa4 + 7a60: 610c addu r4, r3 + 7a62: 9401 ld.w r0, (r4, 0x4) + 7a64: 9540 ld.w r2, (r5, 0x0) + 7a66: 6082 subu r2, r0 + 7a68: 931e ld.w r0, (r3, 0x78) + 7a6a: 6408 cmphs r2, r0 + 7a6c: 0818 bt 0x7a9c // 7a9c + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 7a6e: 3e40 cmpnei r6, 0 + 7a70: 0c07 bf 0x7a7e // 7a7e + 7a72: 9540 ld.w r2, (r5, 0x0) + 7a74: 94c0 ld.w r6, (r4, 0x0) + 7a76: 609a subu r2, r6 + 7a78: 937d ld.w r3, (r3, 0x74) + 7a7a: 64c8 cmphs r2, r3 + 7a7c: 0fe6 bf 0x7a48 // 7a48 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 7a7e: 9800 ld.w r0, (r14, 0x0) + 7a80: e3ffff78 bsr 0x7970 // 7970 + 7a84: 3840 cmpnei r0, 0 + 7a86: 0be1 bt 0x7a48 // 7a48 + m_send.ASend_Tick = SysTick_1ms; + 7a88: 9560 ld.w r3, (r5, 0x0) + 7a8a: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 7a8c: 8768 ld.b r3, (r7, 0x8) + 7a8e: 2300 addi r3, 1 + 7a90: a768 st.b r3, (r7, 0x8) + 7a92: 07dc br 0x7a4a // 7a4a + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 7a94: 3004 movi r0, 4 + 7a96: 07da br 0x7a4a // 7a4a + return RETRY_END;//没有重发次数 + 7a98: 3003 movi r0, 3 + 7a9a: 07d8 br 0x7a4a // 7a4a + return DATA_END;//数据有效期结束 + 7a9c: 3002 movi r0, 2 + 7a9e: 07d6 br 0x7a4a // 7a4a + 7aa0: 200003fc .long 0x200003fc + 7aa4: 200000c4 .long 0x200000c4 + +Disassembly of section .text.Set_GroupSend: + +00007aa8 : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 7aa8: 14d4 push r4-r7, r15 + 7aaa: 1422 subi r14, r14, 8 + 7aac: 6d8b mov r6, r2 + 7aae: 9847 ld.w r2, (r14, 0x1c) + 7ab0: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7ab2: 5943 subi r2, r1, 1 +{ + 7ab4: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7ab6: 7489 zexth r2, r2 + 7ab8: 3163 movi r1, 99 + 7aba: 6484 cmphs r1, r2 +{ + 7abc: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 7abe: 0c20 bf 0x7afe // 7afe + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 7ac0: 1091 lrw r4, 0x200003fc // 7b04 + 7ac2: 3264 movi r2, 100 + 7ac4: 3100 movi r1, 0 + 7ac6: 6c13 mov r0, r4 + 7ac8: b861 st.w r3, (r14, 0x4) + 7aca: e3ffe739 bsr 0x493c // 493c <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 7ace: 6c97 mov r2, r5 + 7ad0: 6c13 mov r0, r4 + 7ad2: 6c5f mov r1, r7 + 7ad4: e3ffe778 bsr 0x49c4 // 49c4 <__memcpy_fast> + m_send.SendLen = sled; + 7ad8: 3240 movi r2, 64 + 7ada: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 7adc: 9861 ld.w r3, (r14, 0x4) + 7ade: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 7ae0: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 7ae2: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7ae4: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 7ae6: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 7ae8: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 7aea: 3201 movi r2, 1 + 7aec: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 7aee: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 7af0: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 7af2: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 7af4: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 7af6: 247f addi r4, 128 + 7af8: 1064 lrw r3, 0x200000c4 // 7b08 + 7afa: 9360 ld.w r3, (r3, 0x0) + 7afc: b461 st.w r3, (r4, 0x4) +} + 7afe: 1402 addi r14, r14, 8 + 7b00: 1494 pop r4-r7, r15 + 7b02: 0000 bkpt + 7b04: 200003fc .long 0x200003fc + 7b08: 200000c4 .long 0x200000c4 + +Disassembly of section .text.Clear_SendFlag: + +00007b0c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 7b0c: 1063 lrw r3, 0x2000045c // 7b18 + 7b0e: 3200 movi r2, 0 + 7b10: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 7b12: a347 st.b r2, (r3, 0x7) +} + 7b14: 783c jmp r15 + 7b16: 0000 bkpt + 7b18: 2000045c .long 0x2000045c + +Disassembly of section .text.BUS485_Jump_Boot: + +00007b1c : + +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 7b1c: 1062 lrw r3, 0x2000045c // 7b24 + 7b1e: a30c st.b r0, (r3, 0xc) +} + 7b20: 783c jmp r15 + 7b22: 0000 bkpt + 7b24: 2000045c .long 0x2000045c + +Disassembly of section .text.BusIdle_Task: + +00007b28 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 7b28: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 7b2a: 10ae lrw r5, 0x200003fc // 7b60 + 7b2c: 3460 movi r4, 96 + 7b2e: 6114 addu r4, r5 + 7b30: 8464 ld.b r3, (r4, 0x4) + 7b32: 3b40 cmpnei r3, 0 + 7b34: 0c15 bf 0x7b5e // 7b5e + 7b36: 8466 ld.b r3, (r4, 0x6) + 7b38: 3b41 cmpnei r3, 1 + 7b3a: 0c12 bf 0x7b5e // 7b5e + { + CK_CPU_DisAllNormalIrq(); + 7b3c: e3fffcf5 bsr 0x7526 // 7526 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 7b40: 8465 ld.b r3, (r4, 0x5) + 7b42: 3b41 cmpnei r3, 1 + 7b44: 080b bt 0x7b5a // 7b5a + 7b46: 1068 lrw r3, 0x200000c4 // 7b64 + 7b48: 9340 ld.w r2, (r3, 0x0) + 7b4a: 957f ld.w r3, (r5, 0x7c) + 7b4c: 608e subu r2, r3 + 7b4e: 957c ld.w r3, (r5, 0x70) + 7b50: 2305 addi r3, 6 + 7b52: 64c8 cmphs r2, r3 + 7b54: 0c03 bf 0x7b5a // 7b5a + { + m_send.BusState_Flag = UART_BUSIDLE; + 7b56: 3300 movi r3, 0 + 7b58: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 7b5a: e3fffce3 bsr 0x7520 // 7520 + } +} + 7b5e: 1492 pop r4-r5, r15 + 7b60: 200003fc .long 0x200003fc + 7b64: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BusBusy_Task: + +00007b68 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 7b68: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 7b6a: 1094 lrw r4, 0x200003fc // 7bb8 + 7b6c: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 7b6e: e3fffcdc bsr 0x7526 // 7526 + m_send.BusState_Flag = UART_BUSBUSY; + 7b72: 6150 addu r5, r4 + 7b74: 3301 movi r3, 1 + 7b76: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 7b78: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 7b7a: 1071 lrw r3, 0x200000c4 // 7bbc + 7b7c: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 7b7e: 9300 ld.w r0, (r3, 0x0) + 7b80: 3380 movi r3, 128 + 7b82: 60d0 addu r3, r4 + 7b84: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 7b86: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 7b88: 600e subu r0, r3 + 7b8a: e3fffcb9 bsr 0x74fc // 74fc <__umodsi3> + 7b8e: b41c st.w r0, (r4, 0x70) + + if(READ_RX_LEVEL_STATE == 0x01){ + 7b90: 310f movi r1, 15 + 7b92: 108c lrw r4, 0x2000004c // 7bc0 + 7b94: 9400 ld.w r0, (r4, 0x0) + 7b96: e3fff4fe bsr 0x6592 // 6592 + 7b9a: 3841 cmpnei r0, 1 + 7b9c: 0806 bt 0x7ba8 // 7ba8 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 7b9e: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 7ba0: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 7ba2: e3fffcbf bsr 0x7520 // 7520 +} + 7ba6: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 7ba8: 9400 ld.w r0, (r4, 0x0) + 7baa: 310f movi r1, 15 + 7bac: e3fff4f3 bsr 0x6592 // 6592 + 7bb0: 3840 cmpnei r0, 0 + 7bb2: 0bf8 bt 0x7ba2 // 7ba2 + m_send.HighBit_Flag = 0x00; //低电平 + 7bb4: 3300 movi r3, 0 + 7bb6: 07f5 br 0x7ba0 // 7ba0 + 7bb8: 200003fc .long 0x200003fc + 7bbc: 200000c4 .long 0x200000c4 + 7bc0: 2000004c .long 0x2000004c + +Disassembly of section .text.Dbg_Println: + +00007bc4 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 7bc4: 1423 subi r14, r14, 12 + 7bc6: b862 st.w r3, (r14, 0x8) + 7bc8: b841 st.w r2, (r14, 0x4) + 7bca: b820 st.w r1, (r14, 0x0) + 7bcc: 14d1 push r4, r15 + 7bce: 1422 subi r14, r14, 8 + 7bd0: 9864 ld.w r3, (r14, 0x10) + 7bd2: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7bd4: 3301 movi r3, 1 + 7bd6: 1098 lrw r4, 0x200000c8 // 7c34 + 7bd8: 70c0 lsl r3, r0 + 7bda: 9444 ld.w r2, (r4, 0x10) + 7bdc: 68c8 and r3, r2 + 7bde: 3b40 cmpnei r3, 0 + 7be0: 0c24 bf 0x7c28 // 7c28 + SysTick_Now = SysTick_1ms; + 7be2: 1076 lrw r3, 0x200000c4 // 7c38 + 7be4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7be6: 9446 ld.w r2, (r4, 0x18) + 7be8: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7bea: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7bec: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7bee: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7bf0: 3020 movi r0, 32 + 7bf2: b840 st.w r2, (r14, 0x0) + 7bf4: 3180 movi r1, 128 + 7bf6: 1052 lrw r2, 0xb6c5 // 7c3c + 7bf8: 6010 addu r0, r4 + 7bfa: e3ffe645 bsr 0x4884 // 4884 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7bfe: 7441 zexth r1, r0 + 7c00: 3020 movi r0, 32 + 7c02: 6010 addu r0, r4 + 7c04: e3fffe6e bsr 0x78e0 // 78e0 + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7c08: 3020 movi r0, 32 + 7c0a: 1b05 addi r3, r14, 20 + 7c0c: 9841 ld.w r2, (r14, 0x4) + 7c0e: 3180 movi r1, 128 + 7c10: 6010 addu r0, r4 + 7c12: e3ffe668 bsr 0x48e2 // 48e2 <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 7c16: 7441 zexth r1, r0 + 7c18: 6c13 mov r0, r4 + 7c1a: 201f addi r0, 32 + 7c1c: e3fffe62 bsr 0x78e0 // 78e0 + + DBG_Printf("\r\n",2); + 7c20: 3102 movi r1, 2 + 7c22: 1008 lrw r0, 0xb6d3 // 7c40 + 7c24: e3fffe5e bsr 0x78e0 // 78e0 + + + } + +#endif +} + 7c28: 1402 addi r14, r14, 8 + 7c2a: d9ee2001 ld.w r15, (r14, 0x4) + 7c2e: 9880 ld.w r4, (r14, 0x0) + 7c30: 1405 addi r14, r14, 20 + 7c32: 783c jmp r15 + 7c34: 200000c8 .long 0x200000c8 + 7c38: 200000c4 .long 0x200000c4 + 7c3c: 0000b6c5 .long 0x0000b6c5 + 7c40: 0000b6d3 .long 0x0000b6d3 + +Disassembly of section .text.BUS485Send_Task: + +00007c44 : +{ + 7c44: 14d1 push r4, r15 + if(m_send.ASend_Flag == 0x01) + 7c46: 1093 lrw r4, 0x2000045c // 7c90 + 7c48: 8469 ld.b r3, (r4, 0x9) + 7c4a: 3b41 cmpnei r3, 1 + 7c4c: 0821 bt 0x7c8e // 7c8e + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 7c4e: 1072 lrw r3, 0x2000043c // 7c94 + 7c50: 8b37 ld.h r1, (r3, 0x2e) + 7c52: 3201 movi r2, 1 + 7c54: 1011 lrw r0, 0x200003fc // 7c98 + 7c56: e3fffeef bsr 0x7a34 // 7a34 + 7c5a: a407 st.b r0, (r4, 0x7) + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 7c5c: 2801 subi r0, 2 + 7c5e: 7400 zextb r0, r0 + 7c60: 3801 cmphsi r0, 2 + 7c62: 0816 bt 0x7c8e // 7c8e + Dbg_Println(DBG_BIT_DEVICE_STATUS,"send end"); + 7c64: 102e lrw r1, 0xb6d6 // 7c9c + 7c66: 3001 movi r0, 1 + 7c68: e3ffffae bsr 0x7bc4 // 7bc4 + m_send.ASend_Flag = 0x00; //清除发送标志位 + 7c6c: 3300 movi r3, 0 + 7c6e: a469 st.b r3, (r4, 0x9) + if(m_send.Jump_Flag == 0x01){ + 7c70: 846c ld.b r3, (r4, 0xc) + 7c72: 3b41 cmpnei r3, 1 + 7c74: 080d bt 0x7c8e // 7c8e + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Jump Boot"); + 7c76: 102b lrw r1, 0xb6df // 7ca0 + 7c78: 3001 movi r0, 1 + 7c7a: e3ffffa5 bsr 0x7bc4 // 7bc4 + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 7c7e: 106a lrw r3, 0x2000005c // 7ca4 + 7c80: 104a lrw r2, 0x2000070c // 7ca8 + 7c82: 9360 ld.w r3, (r3, 0x0) + 7c84: 924d ld.w r2, (r2, 0x34) + 7c86: 23ff addi r3, 256 + 7c88: b343 st.w r2, (r3, 0xc) + SYSCON_Software_Reset(); + 7c8a: e3fff285 bsr 0x6194 // 6194 +} + 7c8e: 1491 pop r4, r15 + 7c90: 2000045c .long 0x2000045c + 7c94: 2000043c .long 0x2000043c + 7c98: 200003fc .long 0x200003fc + 7c9c: 0000b6d6 .long 0x0000b6d6 + 7ca0: 0000b6df .long 0x0000b6df + 7ca4: 2000005c .long 0x2000005c + 7ca8: 2000070c .long 0x2000070c + +Disassembly of section .text.Dbg_Print_Buff: + +00007cac : + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7cac: 14d4 push r4-r7, r15 + 7cae: 1422 subi r14, r14, 8 + 7cb0: 6dcf mov r7, r3 +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7cb2: 109b lrw r4, 0x200000c8 // 7d1c + 7cb4: 3301 movi r3, 1 +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 7cb6: 6d8b mov r6, r2 + if (Dbg_Switch & (1 << DbgOptBit)) { + 7cb8: 70c0 lsl r3, r0 + 7cba: 9444 ld.w r2, (r4, 0x10) + 7cbc: 68c8 and r3, r2 + 7cbe: 3b40 cmpnei r3, 0 + 7cc0: 0c1f bf 0x7cfe // 7cfe + SysTick_Now = SysTick_1ms; + 7cc2: 1078 lrw r3, 0x200000c4 // 7d20 + 7cc4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7cc6: 9446 ld.w r2, (r4, 0x18) + 7cc8: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 7cca: b465 st.w r3, (r4, 0x14) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 7ccc: b447 st.w r2, (r4, 0x1c) + SysTick_Last = SysTick_Now; + 7cce: b466 st.w r3, (r4, 0x18) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 7cd0: 3020 movi r0, 32 + 7cd2: b840 st.w r2, (r14, 0x0) + 7cd4: 3180 movi r1, 128 + 7cd6: 1054 lrw r2, 0xb6c5 // 7d24 + 7cd8: 6010 addu r0, r4 + 7cda: e3ffe5d5 bsr 0x4884 // 4884 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7cde: 7441 zexth r1, r0 + 7ce0: 3020 movi r0, 32 + 7ce2: 6010 addu r0, r4 + 7ce4: e3fffdfe bsr 0x78e0 // 78e0 + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7ce8: 1070 lrw r3, 0xb6e9 // 7d28 + for (uint32_t i = 0; i < len; i++) { + 7cea: 6d5b mov r5, r6 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7cec: b861 st.w r3, (r14, 0x4) + 7cee: 241f addi r4, 32 + for (uint32_t i = 0; i < len; i++) { + 7cf0: 5d79 subu r3, r5, r6 + 7cf2: 65cc cmphs r3, r7 + 7cf4: 0c07 bf 0x7d02 // 7d02 + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + 7cf6: 3102 movi r1, 2 + 7cf8: 100d lrw r0, 0xb6d3 // 7d2c + 7cfa: e3fffdf3 bsr 0x78e0 // 78e0 + } + +#endif +} + 7cfe: 1402 addi r14, r14, 8 + 7d00: 1494 pop r4-r7, r15 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 7d02: 8560 ld.b r3, (r5, 0x0) + 7d04: 9841 ld.w r2, (r14, 0x4) + 7d06: 3180 movi r1, 128 + 7d08: 6c13 mov r0, r4 + 7d0a: e3ffe5bd bsr 0x4884 // 4884 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 7d0e: 7441 zexth r1, r0 + 7d10: 6c13 mov r0, r4 + 7d12: e3fffde7 bsr 0x78e0 // 78e0 + 7d16: 2500 addi r5, 1 + 7d18: 07ec br 0x7cf0 // 7cf0 + 7d1a: 0000 bkpt + 7d1c: 200000c8 .long 0x200000c8 + 7d20: 200000c4 .long 0x200000c4 + 7d24: 0000b6c5 .long 0x0000b6c5 + 7d28: 0000b6e9 .long 0x0000b6e9 + 7d2c: 0000b6d3 .long 0x0000b6d3 + +Disassembly of section .text.Dbg_BT_Println: + +00007d30 : + +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...){ + 7d30: 1423 subi r14, r14, 12 + 7d32: b862 st.w r3, (r14, 0x8) + 7d34: b841 st.w r2, (r14, 0x4) + 7d36: b820 st.w r1, (r14, 0x0) + 7d38: 14d2 push r4-r5, r15 + 7d3a: 1421 subi r14, r14, 4 + 7d3c: 9864 ld.w r3, (r14, 0x10) + 7d3e: b860 st.w r3, (r14, 0x0) +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 7d40: 3301 movi r3, 1 + 7d42: 1091 lrw r4, 0x200000c8 // 7d84 + 7d44: 70c0 lsl r3, r0 + 7d46: 9444 ld.w r2, (r4, 0x10) + 7d48: 68c8 and r3, r2 + 7d4a: 3b40 cmpnei r3, 0 + 7d4c: 0c14 bf 0x7d74 // 7d74 + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 7d4e: 3020 movi r0, 32 + 7d50: 1b05 addi r3, r14, 20 + 7d52: 9840 ld.w r2, (r14, 0x0) + 7d54: 3180 movi r1, 128 + 7d56: 6010 addu r0, r4 + 7d58: e3ffe5c5 bsr 0x48e2 // 48e2 <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_BTPrintf(Dbg_Buffer,str_offset); + 7d5c: 10ab lrw r5, 0x20000038 // 7d88 + 7d5e: 6c53 mov r1, r4 + 7d60: 7481 zexth r2, r0 + 7d62: 211f addi r1, 32 + 7d64: 9500 ld.w r0, (r5, 0x0) + 7d66: e3fff54b bsr 0x67fc // 67fc + + DBG_BTPrintf("\r\n",2); + 7d6a: 9500 ld.w r0, (r5, 0x0) + 7d6c: 3202 movi r2, 2 + 7d6e: 1028 lrw r1, 0xb6d3 // 7d8c + 7d70: e3fff546 bsr 0x67fc // 67fc + } + +#endif +} + 7d74: 1401 addi r14, r14, 4 + 7d76: d9ee2002 ld.w r15, (r14, 0x8) + 7d7a: 98a1 ld.w r5, (r14, 0x4) + 7d7c: 9880 ld.w r4, (r14, 0x0) + 7d7e: 1406 addi r14, r14, 24 + 7d80: 783c jmp r15 + 7d82: 0000 bkpt + 7d84: 200000c8 .long 0x200000c8 + 7d88: 20000038 .long 0x20000038 + 7d8c: 0000b6d3 .long 0x0000b6d3 + +Disassembly of section .text.DIP_GetSwitchState: + +00007d90 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 7d90: 14d0 push r15 + U8_T val = 0; + + switch (i) + 7d92: 3841 cmpnei r0, 1 + 7d94: 0c0d bf 0x7dae // 7dae + 7d96: 3840 cmpnei r0, 0 + 7d98: 0c05 bf 0x7da2 // 7da2 + 7d9a: 3842 cmpnei r0, 2 + 7d9c: 0c0d bf 0x7db6 // 7db6 + U8_T val = 0; + 7d9e: 3000 movi r0, 0 + 7da0: 0406 br 0x7dac // 7dac + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 7da2: 1068 lrw r3, 0x2000004c // 7dc0 + 7da4: 310a movi r1, 10 + 7da6: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 7da8: e3fff3f5 bsr 0x6592 // 6592 + break; + + } + return val; +} + 7dac: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 7dae: 1065 lrw r3, 0x2000004c // 7dc0 + 7db0: 3109 movi r1, 9 + 7db2: 9300 ld.w r0, (r3, 0x0) + 7db4: 07fa br 0x7da8 // 7da8 + val = GPIO_Read_Status(GPIOA0,8); + 7db6: 1063 lrw r3, 0x2000004c // 7dc0 + 7db8: 3108 movi r1, 8 + 7dba: 9300 ld.w r0, (r3, 0x0) + 7dbc: 07f6 br 0x7da8 // 7da8 + 7dbe: 0000 bkpt + 7dc0: 2000004c .long 0x2000004c + +Disassembly of section .text.DIP_Switch_Init: + +00007dc4 : +void DIP_Switch_Init(void){ + 7dc4: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 7dc6: 1182 lrw r4, 0x2000004c // 7e4c + 7dc8: 3201 movi r2, 1 + 7dca: 9400 ld.w r0, (r4, 0x0) + 7dcc: 310a movi r1, 10 + 7dce: e3fff249 bsr 0x6260 // 6260 + GPIO_Init(GPIOA0,9,Intput); + 7dd2: 9400 ld.w r0, (r4, 0x0) + 7dd4: 3201 movi r2, 1 + 7dd6: 3109 movi r1, 9 + 7dd8: e3fff244 bsr 0x6260 // 6260 + GPIO_Init(GPIOA0,8,Intput); + 7ddc: 3201 movi r2, 1 + 7dde: 9400 ld.w r0, (r4, 0x0) + 7de0: 3108 movi r1, 8 + 7de2: e3fff23f bsr 0x6260 // 6260 + GPIO_PullHigh_Init(GPIOA0,10); + 7de6: 9400 ld.w r0, (r4, 0x0) + 7de8: 310a movi r1, 10 + 7dea: e3fff2ab bsr 0x6340 // 6340 + GPIO_PullHigh_Init(GPIOA0,9); + 7dee: 9400 ld.w r0, (r4, 0x0) + 7df0: 3109 movi r1, 9 + 7df2: e3fff2a7 bsr 0x6340 // 6340 + GPIO_PullHigh_Init(GPIOA0,8); + 7df6: 9400 ld.w r0, (r4, 0x0) + 7df8: 3108 movi r1, 8 + 7dfa: e3fff2a3 bsr 0x6340 // 6340 + memset(&g_Dip,0,sizeof(DIP_t)); + 7dfe: 3214 movi r2, 20 + 7e00: 3100 movi r1, 0 + 7e02: 1014 lrw r0, 0x20000484 // 7e50 + 7e04: e3ffe59c bsr 0x493c // 493c <__memset_fast> + delay_nms(20); + 7e08: 3014 movi r0, 20 + 7e0a: e3fff5a5 bsr 0x6954 // 6954 + 7e0e: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e10: 10b0 lrw r5, 0x20000484 // 7e50 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 7e12: 7410 zextb r0, r4 + 7e14: e3ffffbe bsr 0x7d90 // 7d90 + 7e18: 3840 cmpnei r0, 0 + 7e1a: 0807 bt 0x7e28 // 7e28 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 7e1c: 3301 movi r3, 1 + 7e1e: 70d0 lsl r3, r4 + 7e20: 6c8f mov r2, r3 + 7e22: 9563 ld.w r3, (r5, 0xc) + 7e24: 6cc8 or r3, r2 + 7e26: b563 st.w r3, (r5, 0xc) + 7e28: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 7e2a: 3c43 cmpnei r4, 3 + 7e2c: 0bf3 bt 0x7e12 // 7e12 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e2e: 1069 lrw r3, 0x20000484 // 7e50 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e30: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e32: 9343 ld.w r2, (r3, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7e34: 6848 and r1, r2 + 7e36: a326 st.b r1, (r3, 0x6) + g_Dip.Dev_Port = Passive_Port; + 7e38: 3100 movi r1, 0 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7e3a: b344 st.w r2, (r3, 0x10) + g_Dip.Dev_Port = Passive_Port; + 7e3c: a327 st.b r1, (r3, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); + 7e3e: 3000 movi r0, 0 + 7e40: 3300 movi r3, 0 + 7e42: 1025 lrw r1, 0xb6ef // 7e54 + 7e44: e3fffec0 bsr 0x7bc4 // 7bc4 +} + 7e48: 1492 pop r4-r5, r15 + 7e4a: 0000 bkpt + 7e4c: 2000004c .long 0x2000004c + 7e50: 20000484 .long 0x20000484 + 7e54: 0000b6ef .long 0x0000b6ef + +Disassembly of section .text.DIP_ScanTask: + +00007e58 : + +void DIP_ScanTask(void) +{ + 7e58: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 7e5a: 1122 lrw r1, 0x200000c4 // 7ee0 + 7e5c: 1142 lrw r2, 0x20000168 // 7ee4 + 7e5e: 11a3 lrw r5, 0x20000484 // 7ee8 + 7e60: 9200 ld.w r0, (r2, 0x0) + 7e62: 9160 ld.w r3, (r1, 0x0) + 7e64: 60c2 subu r3, r0 + 7e66: 3b14 cmphsi r3, 21 + 7e68: 0806 bt 0x7e74 // 7e74 + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 7e6a: 9543 ld.w r2, (r5, 0xc) + 7e6c: 9564 ld.w r3, (r5, 0x10) + 7e6e: 64ca cmpne r2, r3 + 7e70: 082e bt 0x7ecc // 7ecc + g_Dip.addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + } + +} + 7e72: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 7e74: 9160 ld.w r3, (r1, 0x0) + 7e76: b260 st.w r3, (r2, 0x0) + 7e78: 6d17 mov r4, r5 + 7e7a: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7e7c: 7418 zextb r0, r6 + 7e7e: e3ffff89 bsr 0x7d90 // 7d90 + 7e82: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 7e84: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 7e86: 0814 bt 0x7eae // 7eae + g_Dip.delayCnt_OFF[i] = 0; + 7e88: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 7e8a: 8460 ld.b r3, (r4, 0x0) + 7e8c: 3b04 cmphsi r3, 5 + 7e8e: 0808 bt 0x7e9e // 7e9e + g_Dip.delayCnt_ON[i]++; + 7e90: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 7e92: a460 st.b r3, (r4, 0x0) + 7e94: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 7e96: 3e43 cmpnei r6, 3 + 7e98: 2400 addi r4, 1 + 7e9a: 0bf1 bt 0x7e7c // 7e7c + 7e9c: 07e7 br 0x7e6a // 7e6a + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 7e9e: 3301 movi r3, 1 + 7ea0: 70d8 lsl r3, r6 + 7ea2: 6c8f mov r2, r3 + 7ea4: 9563 ld.w r3, (r5, 0xc) + 7ea6: 6cc8 or r3, r2 + 7ea8: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_ON[i] = 0; + 7eaa: 3300 movi r3, 0 + 7eac: 07f3 br 0x7e92 // 7e92 + g_Dip.delayCnt_ON[i] = 0; + 7eae: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 7eb0: 8463 ld.b r3, (r4, 0x3) + 7eb2: 3b04 cmphsi r3, 5 + 7eb4: 0804 bt 0x7ebc // 7ebc + g_Dip.delayCnt_OFF[i]++; + 7eb6: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 7eb8: a463 st.b r3, (r4, 0x3) + 7eba: 07ed br 0x7e94 // 7e94 + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 7ebc: 3300 movi r3, 0 + 7ebe: 2b01 subi r3, 2 + 7ec0: 9543 ld.w r2, (r5, 0xc) + 7ec2: 70db rotl r3, r6 + 7ec4: 68c8 and r3, r2 + 7ec6: b563 st.w r3, (r5, 0xc) + g_Dip.delayCnt_OFF[i] = 0; + 7ec8: 3300 movi r3, 0 + 7eca: 07f7 br 0x7eb8 // 7eb8 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7ecc: 3307 movi r3, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 7ece: b544 st.w r2, (r5, 0x10) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7ed0: 3000 movi r0, 0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7ed2: 688c and r2, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7ed4: 1026 lrw r1, 0xb706 // 7eec + g_Dip.addr = g_Dip.DIP_val & 0x07; + 7ed6: a546 st.b r2, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + 7ed8: e3fffe76 bsr 0x7bc4 // 7bc4 +} + 7edc: 07cb br 0x7e72 // 7e72 + 7ede: 0000 bkpt + 7ee0: 200000c4 .long 0x200000c4 + 7ee4: 20000168 .long 0x20000168 + 7ee8: 20000484 .long 0x20000484 + 7eec: 0000b706 .long 0x0000b706 + +Disassembly of section .text.EEPROM_CheckSum: + +00007ef0 : + +E_MCU_DEV_INFO g_mcu_dev; +ENERGY_SAVE_PARA e_save; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 7ef0: 6cc3 mov r3, r0 + 7ef2: 6040 addu r1, r0 + U8_T data_sum = 0; + 7ef4: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 7efa: 783c jmp r15 + data_sum += data[i]; + 7efc: 8340 ld.b r2, (r3, 0x0) + 7efe: 6008 addu r0, r2 + 7f00: 7400 zextb r0, r0 + 7f02: 2300 addi r3, 1 + 7f04: 07f9 br 0x7ef6 // 7ef6 + +Disassembly of section .text.EEOROM_ENERGY_ReadSet: + +00007f08 : +* Description : 读取电能检测参数 +* Parameter : +* info :读取参数指针 +*******************************************************************/ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info) +{ + 7f08: 14d1 push r4, r15 + 7f0a: 142f subi r14, r14, 60 + 7f0c: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 7f0e: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 7f10: 3232 movi r2, 50 + 7f12: 3100 movi r1, 0 + 7f14: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7f16: b860 st.w r3, (r14, 0x0) + 7f18: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 7f1c: e3ffe510 bsr 0x493c // 493c <__memset_fast> + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr,4,read_info); + 7f20: 6cbb mov r2, r14 + 7f22: 3104 movi r1, 4 + 7f24: 1203 lrw r0, 0x10000180 // 8030 + 7f26: e3fff4df bsr 0x68e4 // 68e4 + + if(read_info[0] == EEPROM_ENERGY_SAVE_FLAG){ + 7f2a: d84e0000 ld.b r2, (r14, 0x0) + 7f2e: 33a6 movi r3, 166 + 7f30: 64ca cmpne r2, r3 + 7f32: 0c04 bf 0x7f3a // 7f3a + return 0x00; + } + } + } + + return 0x01; + 7f34: 3001 movi r0, 1 + +} + 7f36: 140f addi r14, r14, 60 + 7f38: 1491 pop r4, r15 + read_len |= read_info[1]; + 7f3a: d82e0002 ld.b r1, (r14, 0x2) + 7f3e: d86e0001 ld.b r3, (r14, 0x1) + 7f42: 4128 lsli r1, r1, 8 + 7f44: 6c4c or r1, r3 + if(read_len <= EEPROM_ENERGY_SIZE){ + 7f46: 3332 movi r3, 50 + 7f48: 644c cmphs r3, r1 + 7f4a: 0ff5 bf 0x7f34 // 7f34 + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr+EEPROM_Offset_Data,read_len,para_data); + 7f4c: 1a02 addi r2, r14, 8 + 7f4e: 111a lrw r0, 0x10000184 // 8034 + 7f50: e3fff4ca bsr 0x68e4 // 68e4 + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE_PARA)) == read_info[3]){ + 7f54: 3130 movi r1, 48 + 7f56: 1802 addi r0, r14, 8 + 7f58: e3ffffcc bsr 0x7ef0 // 7ef0 + 7f5c: d86e0003 ld.b r3, (r14, 0x3) + 7f60: 640e cmpne r3, r0 + 7f62: 0be9 bt 0x7f34 // 7f34 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE_PARA)); + 7f64: 3230 movi r2, 48 + 7f66: 1902 addi r1, r14, 8 + 7f68: 6c13 mov r0, r4 + 7f6a: e3ffe52d bsr 0x49c4 // 49c4 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7f6e: 1193 lrw r4, 0x20000498 // 8038 + SYSCON_IWDCNT_Reload(); + 7f70: e3fff080 bsr 0x6070 // 6070 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + 7f74: 9400 ld.w r0, (r4, 0x0) + 7f76: e3ffdd55 bsr 0x3a20 // 3a20 <__extendsfdf2> + 7f7a: 6c83 mov r2, r0 + 7f7c: 6cc7 mov r3, r1 + 7f7e: 3000 movi r0, 0 + 7f80: 112f lrw r1, 0xb712 // 803c + 7f82: e3fffe21 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng IA_K:%f",e_save.ia_k_val); + 7f86: 9401 ld.w r0, (r4, 0x4) + 7f88: e3ffdd4c bsr 0x3a20 // 3a20 <__extendsfdf2> + 7f8c: 6c83 mov r2, r0 + 7f8e: 6cc7 mov r3, r1 + 7f90: 3000 movi r0, 0 + 7f92: 112c lrw r1, 0xb71d // 8040 + 7f94: e3fffe18 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng IB_K:%f",e_save.ib_k_val); + 7f98: 9402 ld.w r0, (r4, 0x8) + 7f9a: e3ffdd43 bsr 0x3a20 // 3a20 <__extendsfdf2> + 7f9e: 6c83 mov r2, r0 + 7fa0: 6cc7 mov r3, r1 + 7fa2: 3000 movi r0, 0 + 7fa4: 1128 lrw r1, 0xb729 // 8044 + 7fa6: e3fffe0f bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng PA_K:%f",e_save.pa_k_val); + 7faa: 9403 ld.w r0, (r4, 0xc) + 7fac: e3ffdd3a bsr 0x3a20 // 3a20 <__extendsfdf2> + 7fb0: 6c83 mov r2, r0 + 7fb2: 6cc7 mov r3, r1 + 7fb4: 3000 movi r0, 0 + 7fb6: 1125 lrw r1, 0xb735 // 8048 + 7fb8: e3fffe06 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng PB_K:%f",e_save.pb_k_val); + 7fbc: 9404 ld.w r0, (r4, 0x10) + 7fbe: e3ffdd31 bsr 0x3a20 // 3a20 <__extendsfdf2> + 7fc2: 6c83 mov r2, r0 + 7fc4: 6cc7 mov r3, r1 + 7fc6: 3000 movi r0, 0 + 7fc8: 1121 lrw r1, 0xb741 // 804c + 7fca: e3fffdfd bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_OffSet:%f",e_save.i_OffSetVal); + 7fce: 9405 ld.w r0, (r4, 0x14) + 7fd0: e3ffdd28 bsr 0x3a20 // 3a20 <__extendsfdf2> + 7fd4: 6c83 mov r2, r0 + 7fd6: 6cc7 mov r3, r1 + 7fd8: 3000 movi r0, 0 + 7fda: 103e lrw r1, 0xb74d // 8050 + 7fdc: e3fffdf4 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_OffSet:%f",e_save.p_OffSetVal); + 7fe0: 9406 ld.w r0, (r4, 0x18) + 7fe2: e3ffdd1f bsr 0x3a20 // 3a20 <__extendsfdf2> + 7fe6: 6cc7 mov r3, r1 + 7fe8: 6c83 mov r2, r0 + 7fea: 103b lrw r1, 0xb75d // 8054 + 7fec: 3000 movi r0, 0 + 7fee: e3fffdeb bsr 0x7bc4 // 7bc4 + SYSCON_IWDCNT_Reload(); + 7ff2: e3fff03f bsr 0x6070 // 6070 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_max:%d",e_save.eng_save_max); + 7ff6: 9447 ld.w r2, (r4, 0x1c) + 7ff8: 3000 movi r0, 0 + 7ffa: 1038 lrw r1, 0xb76d // 8058 + 7ffc: e3fffde4 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_offset:%d",e_save.eng_save_offset); + 8000: 9448 ld.w r2, (r4, 0x20) + 8002: 3000 movi r0, 0 + 8004: 1036 lrw r1, 0xb77d // 805c + 8006: e3fffddf bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng collect_tim:%d",e_save.collect_tim); + 800a: 9449 ld.w r2, (r4, 0x24) + 800c: 3000 movi r0, 0 + 800e: 1035 lrw r1, 0xb790 // 8060 + 8010: e3fffdda bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng report_tim:%d",e_save.report_tim); + 8014: 944a ld.w r2, (r4, 0x28) + 8016: 3000 movi r0, 0 + 8018: 1033 lrw r1, 0xb7a3 // 8064 + 801a: e3fffdd5 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng SaveFlash_Tim:%d",e_save.saveFlash_tim); + 801e: 3000 movi r0, 0 + 8020: 944b ld.w r2, (r4, 0x2c) + 8022: 1032 lrw r1, 0xb7b5 // 8068 + 8024: e3fffdd0 bsr 0x7bc4 // 7bc4 + SYSCON_IWDCNT_Reload(); + 8028: e3fff024 bsr 0x6070 // 6070 + return 0x00; + 802c: 3000 movi r0, 0 + 802e: 0784 br 0x7f36 // 7f36 + 8030: 10000180 .long 0x10000180 + 8034: 10000184 .long 0x10000184 + 8038: 20000498 .long 0x20000498 + 803c: 0000b712 .long 0x0000b712 + 8040: 0000b71d .long 0x0000b71d + 8044: 0000b729 .long 0x0000b729 + 8048: 0000b735 .long 0x0000b735 + 804c: 0000b741 .long 0x0000b741 + 8050: 0000b74d .long 0x0000b74d + 8054: 0000b75d .long 0x0000b75d + 8058: 0000b76d .long 0x0000b76d + 805c: 0000b77d .long 0x0000b77d + 8060: 0000b790 .long 0x0000b790 + 8064: 0000b7a3 .long 0x0000b7a3 + 8068: 0000b7b5 .long 0x0000b7b5 + +Disassembly of section .text.EEOROM_ENERGY_WriteSet: + +0000806c : +/******************************************************************************* +* Function Name : EEOROM_ENERGY_WriteSet +* Description : 将电能设置参数写入到EEPROM中 +*******************************************************************************/ +U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info) +{ + 806c: 14d0 push r15 + 806e: 142e subi r14, r14, 56 + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(ENERGY_SAVE_PARA); + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + 8070: 3300 movi r3, 0 + 8072: 2b59 subi r3, 90 + 8074: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 8078: 3330 movi r3, 48 + 807a: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 807e: 3300 movi r3, 0 + 8080: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8084: 1b01 addi r3, r14, 4 +{ + 8086: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8088: 3230 movi r2, 48 + 808a: 6c0f mov r0, r3 + 808c: e3ffe49c bsr 0x49c4 // 49c4 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 8090: 3130 movi r1, 48 + 8092: e3ffff2f bsr 0x7ef0 // 7ef0 + 8096: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ENERGE_PARA_SaveAddr,save_len,save_data); + 809a: 6cbb mov r2, r14 + 809c: 3134 movi r1, 52 + 809e: 1004 lrw r0, 0x10000180 // 80ac + 80a0: e3fff3d2 bsr 0x6844 // 6844 + + return 0; +} + 80a4: 3000 movi r0, 0 + 80a6: 140e addi r14, r14, 56 + 80a8: 1490 pop r15 + 80aa: 0000 bkpt + 80ac: 10000180 .long 0x10000180 + +Disassembly of section .text.EEPROM_ENERGY_Validate: + +000080b0 : +/******************************************************************************* +* Function Name : EEPROM_ENERGY_Validate +* Description : 比对当前参数,确认是否有改变需要写入 +*******************************************************************************/ +void EEPROM_ENERGY_Validate(void) +{ + 80b0: 14d4 push r4-r7, r15 + U8_T save_flag = 0; + + if(e_save.ia_k_val != g_Eng.IA_K_Val) + 80b2: 12d5 lrw r6, 0x20000574 // 8204 + 80b4: 1295 lrw r4, 0x20000498 // 8208 + 80b6: 96bb ld.w r5, (r6, 0x6c) + 80b8: 6c57 mov r1, r5 + 80ba: 9401 ld.w r0, (r4, 0x4) + 80bc: e3ffdc1e bsr 0x38f8 // 38f8 <__nesf2> + 80c0: 3840 cmpnei r0, 0 + 80c2: 0c97 bf 0x81f0 // 81f0 + { + e_save.ia_k_val = g_Eng.IA_K_Val; + 80c4: b4a1 st.w r5, (r4, 0x4) + save_flag = 1; + 80c6: 3501 movi r5, 1 + } + + if(e_save.ib_k_val != g_Eng.IB_K_Val) + 80c8: 96fc ld.w r7, (r6, 0x70) + 80ca: 6c5f mov r1, r7 + 80cc: 9402 ld.w r0, (r4, 0x8) + 80ce: e3ffdc15 bsr 0x38f8 // 38f8 <__nesf2> + 80d2: 3840 cmpnei r0, 0 + 80d4: 0c03 bf 0x80da // 80da + { + e_save.ib_k_val = g_Eng.IB_K_Val; + 80d6: b4e2 st.w r7, (r4, 0x8) + save_flag = 1; + 80d8: 3501 movi r5, 1 + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + 80da: 96fa ld.w r7, (r6, 0x68) + 80dc: 6c5f mov r1, r7 + 80de: 9400 ld.w r0, (r4, 0x0) + 80e0: e3ffdc0c bsr 0x38f8 // 38f8 <__nesf2> + 80e4: 3840 cmpnei r0, 0 + 80e6: 0c03 bf 0x80ec // 80ec + { + e_save.v_k_val = g_Eng.V_K_Val; + 80e8: b4e0 st.w r7, (r4, 0x0) + save_flag = 1; + 80ea: 3501 movi r5, 1 + } + + if(e_save.pa_k_val != g_Eng.PA_K_Val) + 80ec: 96fd ld.w r7, (r6, 0x74) + 80ee: 6c5f mov r1, r7 + 80f0: 9403 ld.w r0, (r4, 0xc) + 80f2: e3ffdc03 bsr 0x38f8 // 38f8 <__nesf2> + 80f6: 3840 cmpnei r0, 0 + 80f8: 0c03 bf 0x80fe // 80fe + { + e_save.pa_k_val = g_Eng.PA_K_Val; + 80fa: b4e3 st.w r7, (r4, 0xc) + save_flag = 1; + 80fc: 3501 movi r5, 1 + } + + if(e_save.pb_k_val != g_Eng.PB_K_Val) + 80fe: 96fe ld.w r7, (r6, 0x78) + 8100: 6c5f mov r1, r7 + 8102: 9404 ld.w r0, (r4, 0x10) + 8104: e3ffdbfa bsr 0x38f8 // 38f8 <__nesf2> + 8108: 3840 cmpnei r0, 0 + 810a: 0c03 bf 0x8110 // 8110 + { + e_save.pb_k_val = g_Eng.PB_K_Val; + 810c: b4e4 st.w r7, (r4, 0x10) + save_flag = 1; + 810e: 3501 movi r5, 1 + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8110: 96df ld.w r6, (r6, 0x7c) + 8112: 6c5b mov r1, r6 + 8114: 9405 ld.w r0, (r4, 0x14) + 8116: e3ffdbf1 bsr 0x38f8 // 38f8 <__nesf2> + 811a: 3840 cmpnei r0, 0 + 811c: 0c03 bf 0x8122 // 8122 + { + e_save.i_OffSetVal = g_Eng.I_OffSetVal; + 811e: b4c5 st.w r6, (r4, 0x14) + save_flag = 1; + 8120: 3501 movi r5, 1 + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8122: 11db lrw r6, 0x200005f4 // 820c + 8124: 96e0 ld.w r7, (r6, 0x0) + 8126: 6c5f mov r1, r7 + 8128: 9406 ld.w r0, (r4, 0x18) + 812a: e3ffdbe7 bsr 0x38f8 // 38f8 <__nesf2> + 812e: 3840 cmpnei r0, 0 + 8130: 6cdb mov r3, r6 + 8132: 0c03 bf 0x8138 // 8138 + { + e_save.p_OffSetVal = g_Eng.P_OffSetVal; + 8134: b4e6 st.w r7, (r4, 0x18) + save_flag = 1; + 8136: 3501 movi r5, 1 + } + + if(e_save.collect_tim != g_Eng.Collect_Tim) + 8138: 9341 ld.w r2, (r3, 0x4) + 813a: 9429 ld.w r1, (r4, 0x24) + 813c: 6486 cmpne r1, r2 + 813e: 0c03 bf 0x8144 // 8144 + { + e_save.collect_tim = g_Eng.Collect_Tim; + 8140: b449 st.w r2, (r4, 0x24) + save_flag = 1; + 8142: 3501 movi r5, 1 + } + + if(e_save.saveFlash_tim != g_Eng.SaveFlash_Tim) + 8144: 9343 ld.w r2, (r3, 0xc) + 8146: 942b ld.w r1, (r4, 0x2c) + 8148: 6486 cmpne r1, r2 + 814a: 0c03 bf 0x8150 // 8150 + { + e_save.saveFlash_tim = g_Eng.SaveFlash_Tim; + 814c: b44b st.w r2, (r4, 0x2c) + save_flag = 1; + 814e: 3501 movi r5, 1 + } + + if(e_save.report_tim != g_Eng.Report_Tim) + 8150: 9362 ld.w r3, (r3, 0x8) + 8152: 944a ld.w r2, (r4, 0x28) + 8154: 64ca cmpne r2, r3 + 8156: 0c4f bf 0x81f4 // 81f4 + { + e_save.report_tim = g_Eng.Report_Tim; + 8158: b46a st.w r3, (r4, 0x28) + save_flag = 1; + } + + if(save_flag == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + 815a: 110c lrw r0, 0x20000498 // 8208 + 815c: e3ffff88 bsr 0x806c // 806c + + #if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + 8160: e3ffef88 bsr 0x6070 // 6070 + Dbg_Println(DBG_BIT_SYS_STATUS,"Need Save EngParam"); + 8164: 112b lrw r1, 0xb7dd // 8210 + 8166: 3000 movi r0, 0 + 8168: e3fffd2e bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"V_K:%f",e_save.v_k_val); + 816c: 9400 ld.w r0, (r4, 0x0) + 816e: e3ffdc59 bsr 0x3a20 // 3a20 <__extendsfdf2> + 8172: 6c83 mov r2, r0 + 8174: 6cc7 mov r3, r1 + 8176: 3000 movi r0, 0 + 8178: 1127 lrw r1, 0xb716 // 8214 + 817a: e3fffd25 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"IA_K:%f",e_save.ia_k_val); + 817e: 9401 ld.w r0, (r4, 0x4) + 8180: e3ffdc50 bsr 0x3a20 // 3a20 <__extendsfdf2> + 8184: 6c83 mov r2, r0 + 8186: 6cc7 mov r3, r1 + 8188: 3000 movi r0, 0 + 818a: 1124 lrw r1, 0xb721 // 8218 + 818c: e3fffd1c bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"IB_K:%f",e_save.ib_k_val); + 8190: 9402 ld.w r0, (r4, 0x8) + 8192: e3ffdc47 bsr 0x3a20 // 3a20 <__extendsfdf2> + 8196: 6c83 mov r2, r0 + 8198: 6cc7 mov r3, r1 + 819a: 3000 movi r0, 0 + 819c: 1120 lrw r1, 0xb72d // 821c + 819e: e3fffd13 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"PA_K:%f",e_save.pa_k_val); + 81a2: 9403 ld.w r0, (r4, 0xc) + 81a4: e3ffdc3e bsr 0x3a20 // 3a20 <__extendsfdf2> + 81a8: 6c83 mov r2, r0 + 81aa: 6cc7 mov r3, r1 + 81ac: 3000 movi r0, 0 + 81ae: 103d lrw r1, 0xb739 // 8220 + 81b0: e3fffd0a bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"PB_K:%f",e_save.pb_k_val); + 81b4: 9404 ld.w r0, (r4, 0x10) + 81b6: e3ffdc35 bsr 0x3a20 // 3a20 <__extendsfdf2> + 81ba: 6c83 mov r2, r0 + 81bc: 6cc7 mov r3, r1 + 81be: 3000 movi r0, 0 + 81c0: 1039 lrw r1, 0xb745 // 8224 + 81c2: e3fffd01 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"I_OS:%f",e_save.i_OffSetVal); + 81c6: 9405 ld.w r0, (r4, 0x14) + 81c8: e3ffdc2c bsr 0x3a20 // 3a20 <__extendsfdf2> + 81cc: 6c83 mov r2, r0 + 81ce: 6cc7 mov r3, r1 + 81d0: 3000 movi r0, 0 + 81d2: 1036 lrw r1, 0xb7ca // 8228 + 81d4: e3fffcf8 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"P_OS:%f",e_save.p_OffSetVal); + 81d8: 9406 ld.w r0, (r4, 0x18) + 81da: e3ffdc23 bsr 0x3a20 // 3a20 <__extendsfdf2> + 81de: 6c83 mov r2, r0 + 81e0: 6cc7 mov r3, r1 + 81e2: 3000 movi r0, 0 + 81e4: 1032 lrw r1, 0xb7d2 // 822c + 81e6: e3fffcef bsr 0x7bc4 // 7bc4 + SYSCON_IWDCNT_Reload(); + 81ea: e3ffef43 bsr 0x6070 // 6070 + { + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save EngParam"); + #endif + } +} + 81ee: 1494 pop r4-r7, r15 + U8_T save_flag = 0; + 81f0: 3500 movi r5, 0 + 81f2: 076b br 0x80c8 // 80c8 + if(save_flag == 0x01) + 81f4: 3d41 cmpnei r5, 1 + 81f6: 0fb2 bf 0x815a // 815a + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save EngParam"); + 81f8: 102e lrw r1, 0xb7da // 8230 + 81fa: 3000 movi r0, 0 + 81fc: e3fffce4 bsr 0x7bc4 // 7bc4 +} + 8200: 07f7 br 0x81ee // 81ee + 8202: 0000 bkpt + 8204: 20000574 .long 0x20000574 + 8208: 20000498 .long 0x20000498 + 820c: 200005f4 .long 0x200005f4 + 8210: 0000b7dd .long 0x0000b7dd + 8214: 0000b716 .long 0x0000b716 + 8218: 0000b721 .long 0x0000b721 + 821c: 0000b72d .long 0x0000b72d + 8220: 0000b739 .long 0x0000b739 + 8224: 0000b745 .long 0x0000b745 + 8228: 0000b7ca .long 0x0000b7ca + 822c: 0000b7d2 .long 0x0000b7d2 + 8230: 0000b7da .long 0x0000b7da + +Disassembly of section .text.EEPROM_Default_ENERGY: + +00008234 : +/******************************************************************************* +* Function Name : EEPROM_Default_ENERGY +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info) +{ + 8234: 14d1 push r4, r15 + /*APP 区域*/ + info->ia_k_val = 1; + 8236: 33fe movi r3, 254 + 8238: 4376 lsli r3, r3, 22 + 823a: b061 st.w r3, (r0, 0x4) + info->ib_k_val = 1; + 823c: b062 st.w r3, (r0, 0x8) + info->v_k_val = 2; + info->pa_k_val = 1; + 823e: b063 st.w r3, (r0, 0xc) + info->pb_k_val = 1; + 8240: b064 st.w r3, (r0, 0x10) + info->i_OffSetVal = 0; + 8242: 3300 movi r3, 0 + 8244: b065 st.w r3, (r0, 0x14) + info->p_OffSetVal = 0; + 8246: b066 st.w r3, (r0, 0x18) + info->eng_save_max = EEPROM_SAVEADDR_CNT; + 8248: 1179 lrw r3, 0x9c40 // 832c + 824a: b067 st.w r3, (r0, 0x1c) + info->eng_save_offset = 1; //存储偏移编号从1开始 + 824c: 3301 movi r3, 1 + 824e: b068 st.w r3, (r0, 0x20) + info->saveFlash_tim = EEPROM_SAVETIME; + 8250: 1178 lrw r3, 0x36ee80 // 8330 + 8252: b06b st.w r3, (r0, 0x2c) + info->v_k_val = 2; + 8254: 3280 movi r2, 128 + info->collect_tim = EEPROM_COLLTIME; + 8256: 1178 lrw r3, 0x1388 // 8334 + info->v_k_val = 2; + 8258: 4257 lsli r2, r2, 23 + info->collect_tim = EEPROM_COLLTIME; + 825a: b069 st.w r3, (r0, 0x24) + info->report_tim = EEPROM_REPTIME; + 825c: 1177 lrw r3, 0xea60 // 8338 + info->v_k_val = 2; + 825e: b040 st.w r2, (r0, 0x0) + info->report_tim = EEPROM_REPTIME; + 8260: b06a st.w r3, (r0, 0x28) + + +// EEOROM_ENERGY_WriteSet(info); + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Energy Use Default Para"); + 8262: 3000 movi r0, 0 + 8264: 1136 lrw r1, 0xb7f0 // 833c + 8266: e3fffcaf bsr 0x7bc4 // 7bc4 + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 826a: 1196 lrw r4, 0x20000498 // 8340 + SYSCON_IWDCNT_Reload(); + 826c: e3ffef02 bsr 0x6070 // 6070 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + 8270: 9400 ld.w r0, (r4, 0x0) + 8272: e3ffdbd7 bsr 0x3a20 // 3a20 <__extendsfdf2> + 8276: 6c83 mov r2, r0 + 8278: 6cc7 mov r3, r1 + 827a: 3000 movi r0, 0 + 827c: 1132 lrw r1, 0xb808 // 8344 + 827e: e3fffca3 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default IA_K:%f",e_save.ia_k_val); + 8282: 9401 ld.w r0, (r4, 0x4) + 8284: e3ffdbce bsr 0x3a20 // 3a20 <__extendsfdf2> + 8288: 6c83 mov r2, r0 + 828a: 6cc7 mov r3, r1 + 828c: 3000 movi r0, 0 + 828e: 112f lrw r1, 0xb817 // 8348 + 8290: e3fffc9a bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default IB_K:%f",e_save.ib_k_val); + 8294: 9402 ld.w r0, (r4, 0x8) + 8296: e3ffdbc5 bsr 0x3a20 // 3a20 <__extendsfdf2> + 829a: 6c83 mov r2, r0 + 829c: 6cc7 mov r3, r1 + 829e: 3000 movi r0, 0 + 82a0: 112b lrw r1, 0xb827 // 834c + 82a2: e3fffc91 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default PA_K:%f",e_save.pa_k_val); + 82a6: 9403 ld.w r0, (r4, 0xc) + 82a8: e3ffdbbc bsr 0x3a20 // 3a20 <__extendsfdf2> + 82ac: 6c83 mov r2, r0 + 82ae: 6cc7 mov r3, r1 + 82b0: 3000 movi r0, 0 + 82b2: 1128 lrw r1, 0xb837 // 8350 + 82b4: e3fffc88 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default PB_K:%f",e_save.pb_k_val); + 82b8: 9404 ld.w r0, (r4, 0x10) + 82ba: e3ffdbb3 bsr 0x3a20 // 3a20 <__extendsfdf2> + 82be: 6c83 mov r2, r0 + 82c0: 6cc7 mov r3, r1 + 82c2: 3000 movi r0, 0 + 82c4: 1124 lrw r1, 0xb847 // 8354 + 82c6: e3fffc7f bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_OffSet:%f",e_save.i_OffSetVal); + 82ca: 9405 ld.w r0, (r4, 0x14) + 82cc: e3ffdbaa bsr 0x3a20 // 3a20 <__extendsfdf2> + 82d0: 6c83 mov r2, r0 + 82d2: 6cc7 mov r3, r1 + 82d4: 3000 movi r0, 0 + 82d6: 1121 lrw r1, 0xb857 // 8358 + 82d8: e3fffc76 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_OffSet:%f",e_save.p_OffSetVal); + 82dc: 9406 ld.w r0, (r4, 0x18) + 82de: e3ffdba1 bsr 0x3a20 // 3a20 <__extendsfdf2> + 82e2: 6cc7 mov r3, r1 + 82e4: 6c83 mov r2, r0 + 82e6: 103e lrw r1, 0xb86b // 835c + 82e8: 3000 movi r0, 0 + 82ea: e3fffc6d bsr 0x7bc4 // 7bc4 + SYSCON_IWDCNT_Reload(); + 82ee: e3ffeec1 bsr 0x6070 // 6070 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_max:%d",e_save.eng_save_max); + 82f2: 9447 ld.w r2, (r4, 0x1c) + 82f4: 3000 movi r0, 0 + 82f6: 103b lrw r1, 0xb87f // 8360 + 82f8: e3fffc66 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_offset:%d",e_save.eng_save_offset); + 82fc: 9448 ld.w r2, (r4, 0x20) + 82fe: 3000 movi r0, 0 + 8300: 1039 lrw r1, 0xb893 // 8364 + 8302: e3fffc61 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default collect_tim:%d",e_save.collect_tim); + 8306: 9449 ld.w r2, (r4, 0x24) + 8308: 3000 movi r0, 0 + 830a: 1038 lrw r1, 0xb8aa // 8368 + 830c: e3fffc5c bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default report_tim:%d",e_save.report_tim); + 8310: 944a ld.w r2, (r4, 0x28) + 8312: 3000 movi r0, 0 + 8314: 1036 lrw r1, 0xb8c1 // 836c + 8316: e3fffc57 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default saveFlash_tim:%d",e_save.saveFlash_tim); + 831a: 944b ld.w r2, (r4, 0x2c) + 831c: 3000 movi r0, 0 + 831e: 1035 lrw r1, 0xb8d7 // 8370 + 8320: e3fffc52 bsr 0x7bc4 // 7bc4 + + SYSCON_IWDCNT_Reload(); + 8324: e3ffeea6 bsr 0x6070 // 6070 + +#endif + +} + 8328: 1491 pop r4, r15 + 832a: 0000 bkpt + 832c: 00009c40 .long 0x00009c40 + 8330: 0036ee80 .long 0x0036ee80 + 8334: 00001388 .long 0x00001388 + 8338: 0000ea60 .long 0x0000ea60 + 833c: 0000b7f0 .long 0x0000b7f0 + 8340: 20000498 .long 0x20000498 + 8344: 0000b808 .long 0x0000b808 + 8348: 0000b817 .long 0x0000b817 + 834c: 0000b827 .long 0x0000b827 + 8350: 0000b837 .long 0x0000b837 + 8354: 0000b847 .long 0x0000b847 + 8358: 0000b857 .long 0x0000b857 + 835c: 0000b86b .long 0x0000b86b + 8360: 0000b87f .long 0x0000b87f + 8364: 0000b893 .long 0x0000b893 + 8368: 0000b8aa .long 0x0000b8aa + 836c: 0000b8c1 .long 0x0000b8c1 + 8370: 0000b8d7 .long 0x0000b8d7 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +00008374 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 8374: 14d1 push r4, r15 + 8376: 1432 subi r14, r14, 72 + 8378: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 837a: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 837c: 3240 movi r2, 64 + 837e: 3100 movi r1, 0 + 8380: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 8382: b860 st.w r3, (r14, 0x0) + 8384: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 8388: e3ffe2da bsr 0x493c // 493c <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 838c: 3080 movi r0, 128 + 838e: 6cbb mov r2, r14 + 8390: 3104 movi r1, 4 + 8392: 4015 lsli r0, r0, 21 + 8394: e3fff2a8 bsr 0x68e4 // 68e4 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 8398: d84e0000 ld.b r2, (r14, 0x0) + 839c: 33ae movi r3, 174 + 839e: 64ca cmpne r2, r3 + 83a0: 0c04 bf 0x83a8 // 83a8 + return 0x00; + } + } + } + + return 0x01; + 83a2: 3001 movi r0, 1 +} + 83a4: 1412 addi r14, r14, 72 + 83a6: 1491 pop r4, r15 + read_len |= read_info[1]; + 83a8: d82e0002 ld.b r1, (r14, 0x2) + 83ac: d86e0001 ld.b r3, (r14, 0x1) + 83b0: 4128 lsli r1, r1, 8 + 83b2: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 83b4: 3340 movi r3, 64 + 83b6: 644c cmphs r3, r1 + 83b8: 0ff5 bf 0x83a2 // 83a2 + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 83ba: 1a02 addi r2, r14, 8 + 83bc: 101b lrw r0, 0x10000004 // 8428 + 83be: e3fff293 bsr 0x68e4 // 68e4 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 83c2: 3125 movi r1, 37 + 83c4: 1802 addi r0, r14, 8 + 83c6: e3fffd95 bsr 0x7ef0 // 7ef0 + 83ca: d86e0003 ld.b r3, (r14, 0x3) + 83ce: 640e cmpne r3, r0 + 83d0: 0be9 bt 0x83a2 // 83a2 + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 83d2: 3225 movi r2, 37 + 83d4: 1902 addi r1, r14, 8 + 83d6: 6c13 mov r0, r4 + 83d8: e3ffe2f6 bsr 0x49c4 // 49c4 <__memcpy_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 83dc: 1094 lrw r4, 0x200004c8 // 842c + SYSCON_IWDCNT_Reload(); + 83de: e3ffee49 bsr 0x6070 // 6070 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + 83e2: 8440 ld.b r2, (r4, 0x0) + 83e4: 1033 lrw r1, 0xb96d // 8430 + 83e6: 3000 movi r0, 0 + 83e8: e3fffbee bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevType:%d",g_mcu_dev.dev_type); + 83ec: 8441 ld.b r2, (r4, 0x1) + 83ee: 1032 lrw r1, 0xb97b // 8434 + 83f0: 3000 movi r0, 0 + 83f2: e3fffbe9 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 83f6: 8442 ld.b r2, (r4, 0x2) + 83f8: 1030 lrw r1, 0xb989 // 8438 + 83fa: 3000 movi r0, 0 + 83fc: e3fffbe4 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAppVer:%d",g_mcu_dev.dev_app_ver); + 8400: 8443 ld.b r2, (r4, 0x3) + 8402: 102f lrw r1, 0xb99a // 843c + 8404: 3000 movi r0, 0 + 8406: e3fffbdf bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 840a: 8444 ld.b r2, (r4, 0x4) + 840c: 102d lrw r1, 0xb9aa // 8440 + 840e: 3000 movi r0, 0 + 8410: e3fffbda bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 8414: 3000 movi r0, 0 + 8416: 5c52 addi r2, r4, 5 + 8418: 102b lrw r1, 0xb9bb // 8444 + 841a: e3fffbd5 bsr 0x7bc4 // 7bc4 + SYSCON_IWDCNT_Reload(); + 841e: e3ffee29 bsr 0x6070 // 6070 + return 0x00; + 8422: 3000 movi r0, 0 + 8424: 07c0 br 0x83a4 // 83a4 + 8426: 0000 bkpt + 8428: 10000004 .long 0x10000004 + 842c: 200004c8 .long 0x200004c8 + 8430: 0000b96d .long 0x0000b96d + 8434: 0000b97b .long 0x0000b97b + 8438: 0000b989 .long 0x0000b989 + 843c: 0000b99a .long 0x0000b99a + 8440: 0000b9aa .long 0x0000b9aa + 8444: 0000b9bb .long 0x0000b9bb + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00008448 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 8448: 14d0 push r15 + 844a: 1432 subi r14, r14, 72 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 844c: 3300 movi r3, 0 + 844e: 2b51 subi r3, 82 + 8450: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 8454: 3325 movi r3, 37 + 8456: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 845a: 3300 movi r3, 0 + 845c: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8460: 1b01 addi r3, r14, 4 +{ + 8462: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 8464: 3225 movi r2, 37 + 8466: 6c0f mov r0, r3 + 8468: e3ffe2ae bsr 0x49c4 // 49c4 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 846c: 3125 movi r1, 37 + 846e: e3fffd41 bsr 0x7ef0 // 7ef0 + 8472: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 8476: 3080 movi r0, 128 + 8478: 4015 lsli r0, r0, 21 + 847a: 6cbb mov r2, r14 + 847c: 3129 movi r1, 41 + 847e: e3fff1e3 bsr 0x6844 // 6844 + + return 0; +} + 8482: 3000 movi r0, 0 + 8484: 1412 addi r14, r14, 72 + 8486: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +00008488 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 8488: 14d2 push r4-r5, r15 + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + 848a: 3300 movi r3, 0 + 848c: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 848e: 3306 movi r3, 6 + 8490: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 8492: 3305 movi r3, 5 + 8494: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 8496: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 8498: 3311 movi r3, 17 + 849a: a064 st.b r3, (r0, 0x4) +{ + 849c: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 849e: 3220 movi r2, 32 + 84a0: 3100 movi r1, 0 + 84a2: 6c17 mov r0, r5 + 84a4: e3ffe24c bsr 0x493c // 493c <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 84a8: 3211 movi r2, 17 + 84aa: 1025 lrw r1, 0xb9c9 // 84bc + 84ac: 6c17 mov r0, r5 + 84ae: e3ffe28b bsr 0x49c4 // 49c4 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 84b2: 6c13 mov r0, r4 + 84b4: e3ffffca bsr 0x8448 // 8448 +#endif +} + 84b8: 1492 pop r4-r5, r15 + 84ba: 0000 bkpt + 84bc: 0000b9c9 .long 0x0000b9c9 + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +000084c0 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 84c0: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 84c2: 8063 ld.b r3, (r0, 0x3) + 84c4: 3b45 cmpnei r3, 5 +{ + 84c6: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 84c8: 0c21 bf 0x850a // 850a + { + info->dev_app_ver = Project_FW_Version; + 84ca: 3305 movi r3, 5 + 84cc: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 84ce: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 84d0: 8461 ld.b r3, (r4, 0x1) + 84d2: 3b46 cmpnei r3, 6 + 84d4: 0c04 bf 0x84dc // 84dc + { + info->dev_type = Project_Type; + 84d6: 3306 movi r3, 6 + 84d8: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 84da: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 84dc: 8464 ld.b r3, (r4, 0x4) + 84de: 3b51 cmpnei r3, 17 + 84e0: 0c04 bf 0x84e8 // 84e8 + { + info->dev_name_len = sizeof(Peoject_Name); + 84e2: 3311 movi r3, 17 + 84e4: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 84e6: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 84e8: 5cd2 addi r6, r4, 5 + 84ea: 3211 movi r2, 17 + 84ec: 102a lrw r1, 0xb9c9 // 8514 + 84ee: 6c1b mov r0, r6 + 84f0: e3ffe29c bsr 0x4a28 // 4a28 <__GI_strncmp> + 84f4: 3840 cmpnei r0, 0 + 84f6: 0c0c bf 0x850e // 850e + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 84f8: 8444 ld.b r2, (r4, 0x4) + 84fa: 1027 lrw r1, 0xb9c9 // 8514 + 84fc: 6c1b mov r0, r6 + 84fe: e3ffe263 bsr 0x49c4 // 49c4 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 8502: 6c13 mov r0, r4 + 8504: e3ffffa2 bsr 0x8448 // 8448 + } +#endif +} + 8508: 0405 br 0x8512 // 8512 + U8_T save_flag = 0; + 850a: 3500 movi r5, 0 + 850c: 07e2 br 0x84d0 // 84d0 + if(save_flag == 0x01) + 850e: 3d41 cmpnei r5, 1 + 8510: 0ff9 bf 0x8502 // 8502 +} + 8512: 1493 pop r4-r6, r15 + 8514: 0000b9c9 .long 0x0000b9c9 + +Disassembly of section .text.EEPROM_Init: + +00008518 : +{ + 8518: 14d2 push r4-r5, r15 + EnIFCClk; //使能 IFC 时钟 + 851a: 116d lrw r3, 0x20000060 // 85cc + 851c: 3201 movi r2, 1 + 851e: 9360 ld.w r3, (r3, 0x0) + 8520: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 8522: 9345 ld.w r2, (r3, 0x14) + 8524: 3aa1 bseti r2, 1 + 8526: 3ab0 bseti r2, 16 + 8528: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 852a: 300a movi r0, 10 + 852c: e3fff214 bsr 0x6954 // 6954 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 8530: 1188 lrw r4, 0x200004c8 // 85d0 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read MCU_DEV <*****************/"); + 8532: 1129 lrw r1, 0xb9da // 85d4 + 8534: 3000 movi r0, 0 + 8536: e3fffb47 bsr 0x7bc4 // 7bc4 + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 853a: 3225 movi r2, 37 + 853c: 3100 movi r1, 0 + 853e: 6c13 mov r0, r4 + 8540: e3ffe1fe bsr 0x493c // 493c <__memset_fast> + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 8544: 6c13 mov r0, r4 + 8546: e3ffff17 bsr 0x8374 // 8374 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 854a: 1164 lrw r3, 0x20000484 // 85d8 + 854c: 8366 ld.b r3, (r3, 0x6) + 854e: 8440 ld.b r2, (r4, 0x0) + 8550: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 8552: 6d43 mov r5, r0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 8554: 0c05 bf 0x855e // 855e + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 8556: 6c13 mov r0, r4 + g_mcu_dev.dev_addr = g_Dip.addr; + 8558: a460 st.b r3, (r4, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 855a: e3ffff77 bsr 0x8448 // 8448 + if(rev == 0x00){ + 855e: 3d40 cmpnei r5, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 8560: 101c lrw r0, 0x200004c8 // 85d0 + if(rev == 0x00){ + 8562: 081d bt 0x859c // 859c + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 8564: e3ffffae bsr 0x84c0 // 84c0 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read EngPara <*****************/"); + 8568: 103d lrw r1, 0xba23 // 85dc + 856a: 3000 movi r0, 0 + 856c: e3fffb2c bsr 0x7bc4 // 7bc4 + memset(&e_save,0,sizeof(ENERGY_SAVE_PARA)); + 8570: 3230 movi r2, 48 + 8572: 3100 movi r1, 0 + 8574: 101b lrw r0, 0x20000498 // 85e0 + 8576: e3ffe1e3 bsr 0x493c // 493c <__memset_fast> + eng_rev = EEOROM_ENERGY_ReadSet(&e_save); //电能检测参数,读取 + 857a: 101a lrw r0, 0x20000498 // 85e0 + 857c: e3fffcc6 bsr 0x7f08 // 7f08 + 8580: 6d03 mov r4, r0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init1 ReadEngPara Rev:%d",eng_rev); + 8582: 6c83 mov r2, r0 + 8584: 1038 lrw r1, 0xba58 // 85e4 + 8586: 3000 movi r0, 0 + 8588: e3fffb1e bsr 0x7bc4 // 7bc4 + if(eng_rev == 0) + 858c: 3c40 cmpnei r4, 0 + 858e: 0c04 bf 0x8596 // 8596 + EEPROM_Default_ENERGY(&e_save); + 8590: 1014 lrw r0, 0x20000498 // 85e0 + 8592: e3fffe51 bsr 0x8234 // 8234 + BLV_DetEnergy_Default(); + 8596: e000004b bsr 0x862c // 862c +} + 859a: 1492 pop r4-r5, r15 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 859c: e3ffff76 bsr 0x8488 // 8488 + SYSCON_IWDCNT_Reload(); + 85a0: e3ffed68 bsr 0x6070 // 6070 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE Use Defalut Para"); + 85a4: 1031 lrw r1, 0xba0f // 85e8 + 85a6: 3000 movi r0, 0 + 85a8: e3fffb0e bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + 85ac: 8442 ld.b r2, (r4, 0x2) + 85ae: 1030 lrw r1, 0xb989 // 85ec + 85b0: 3000 movi r0, 0 + 85b2: e3fffb09 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + 85b6: 8444 ld.b r2, (r4, 0x4) + 85b8: 102e lrw r1, 0xb9aa // 85f0 + 85ba: 3000 movi r0, 0 + 85bc: e3fffb04 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + 85c0: 104d lrw r2, 0x200004cd // 85f4 + 85c2: 102e lrw r1, 0xb9bb // 85f8 + 85c4: 3000 movi r0, 0 + 85c6: e3fffaff bsr 0x7bc4 // 7bc4 + 85ca: 07cf br 0x8568 // 8568 + 85cc: 20000060 .long 0x20000060 + 85d0: 200004c8 .long 0x200004c8 + 85d4: 0000b9da .long 0x0000b9da + 85d8: 20000484 .long 0x20000484 + 85dc: 0000ba23 .long 0x0000ba23 + 85e0: 20000498 .long 0x20000498 + 85e4: 0000ba58 .long 0x0000ba58 + 85e8: 0000ba0f .long 0x0000ba0f + 85ec: 0000b989 .long 0x0000b989 + 85f0: 0000b9aa .long 0x0000b9aa + 85f4: 200004cd .long 0x200004cd + 85f8: 0000b9bb .long 0x0000b9bb + +Disassembly of section .text.BLV_DetEnergy_Init: + +000085fc : +DetUart_t u_det; +HLW8110_REG g_CalFactor; //合力为电参数 +DetEng_Info g_Eng; + +void BLV_DetEnergy_Init(void) +{ + 85fc: 14d0 push r15 + memset(&u_det,0,sizeof(DetUart_t)); + 85fe: 3248 movi r2, 72 + 8600: 3100 movi r1, 0 + 8602: 1008 lrw r0, 0x200004f0 // 8620 + 8604: e3ffe19c bsr 0x493c // 493c <__memset_fast> + memset(&g_CalFactor,0,sizeof(HLW8110_REG)); + 8608: 323c movi r2, 60 + 860a: 3100 movi r1, 0 + 860c: 1006 lrw r0, 0x20000538 // 8624 + 860e: e3ffe197 bsr 0x493c // 493c <__memset_fast> + memset(&g_Eng,0,sizeof(DetEng_Info)); + 8612: 3298 movi r2, 152 + 8614: 3100 movi r1, 0 + 8616: 1005 lrw r0, 0x20000574 // 8628 + 8618: e3ffe192 bsr 0x493c // 493c <__memset_fast> + + + +} + 861c: 1490 pop r15 + 861e: 0000 bkpt + 8620: 200004f0 .long 0x200004f0 + 8624: 20000538 .long 0x20000538 + 8628: 20000574 .long 0x20000574 + +Disassembly of section .text.BLV_DetEnergy_Default: + +0000862c : + +//同步flash中保存的参数 +void BLV_DetEnergy_Default(void) +{ + 862c: 14d4 push r4-r7, r15 + if(e_save.ia_k_val != g_Eng.IA_K_Val) + 862e: 11b4 lrw r5, 0x20000498 // 86fc + 8630: 1194 lrw r4, 0x20000574 // 8700 + 8632: 95c1 ld.w r6, (r5, 0x4) + 8634: 943b ld.w r1, (r4, 0x6c) + 8636: 6c1b mov r0, r6 + 8638: e3ffd960 bsr 0x38f8 // 38f8 <__nesf2> + 863c: 3840 cmpnei r0, 0 + 863e: 0c02 bf 0x8642 // 8642 + { + g_Eng.IA_K_Val = e_save.ia_k_val; + 8640: b4db st.w r6, (r4, 0x6c) + } + + if(e_save.ib_k_val != g_Eng.IB_K_Val) + 8642: 95c2 ld.w r6, (r5, 0x8) + 8644: 943c ld.w r1, (r4, 0x70) + 8646: 6c1b mov r0, r6 + 8648: e3ffd958 bsr 0x38f8 // 38f8 <__nesf2> + 864c: 3840 cmpnei r0, 0 + 864e: 0c02 bf 0x8652 // 8652 + { + g_Eng.IB_K_Val = e_save.ib_k_val; + 8650: b4dc st.w r6, (r4, 0x70) + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + 8652: 95c0 ld.w r6, (r5, 0x0) + 8654: 943a ld.w r1, (r4, 0x68) + 8656: 6c1b mov r0, r6 + 8658: e3ffd950 bsr 0x38f8 // 38f8 <__nesf2> + 865c: 3840 cmpnei r0, 0 + 865e: 0c02 bf 0x8662 // 8662 + { + g_Eng.V_K_Val = e_save.v_k_val; + 8660: b4da st.w r6, (r4, 0x68) + } + + if(e_save.pa_k_val != g_Eng.PA_K_Val) + 8662: 95c3 ld.w r6, (r5, 0xc) + 8664: 943d ld.w r1, (r4, 0x74) + 8666: 6c1b mov r0, r6 + 8668: e3ffd948 bsr 0x38f8 // 38f8 <__nesf2> + 866c: 3840 cmpnei r0, 0 + 866e: 0c02 bf 0x8672 // 8672 + { + g_Eng.PA_K_Val = e_save.pa_k_val; + 8670: b4dd st.w r6, (r4, 0x74) + } + + if(e_save.pb_k_val != g_Eng.PB_K_Val) + 8672: 95c4 ld.w r6, (r5, 0x10) + 8674: 943e ld.w r1, (r4, 0x78) + 8676: 6c1b mov r0, r6 + 8678: e3ffd940 bsr 0x38f8 // 38f8 <__nesf2> + 867c: 3840 cmpnei r0, 0 + 867e: 0c02 bf 0x8682 // 8682 + { + g_Eng.PB_K_Val = e_save.pb_k_val; + 8680: b4de st.w r6, (r4, 0x78) + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + 8682: 95c5 ld.w r6, (r5, 0x14) + 8684: 943f ld.w r1, (r4, 0x7c) + 8686: 6c1b mov r0, r6 + 8688: e3ffd938 bsr 0x38f8 // 38f8 <__nesf2> + 868c: 3840 cmpnei r0, 0 + 868e: 0c02 bf 0x8692 // 8692 + { + g_Eng.I_OffSetVal = e_save.i_OffSetVal; + 8690: b4df st.w r6, (r4, 0x7c) + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + 8692: 10fd lrw r7, 0x200005f4 // 8704 + 8694: 95c6 ld.w r6, (r5, 0x18) + 8696: 9720 ld.w r1, (r7, 0x0) + 8698: 6c1b mov r0, r6 + 869a: e3ffd92f bsr 0x38f8 // 38f8 <__nesf2> + 869e: 3840 cmpnei r0, 0 + 86a0: 6cdf mov r3, r7 + 86a2: 0c02 bf 0x86a6 // 86a6 + { + g_Eng.P_OffSetVal = e_save.p_OffSetVal; + 86a4: b7c0 st.w r6, (r7, 0x0) + } + + if(e_save.collect_tim != g_Eng.Collect_Tim) + 86a6: 9549 ld.w r2, (r5, 0x24) + 86a8: 9321 ld.w r1, (r3, 0x4) + 86aa: 644a cmpne r2, r1 + 86ac: 0c02 bf 0x86b0 // 86b0 + { + g_Eng.Collect_Tim = e_save.collect_tim; + 86ae: b341 st.w r2, (r3, 0x4) + } + + if(e_save.saveFlash_tim != g_Eng.SaveFlash_Tim) + 86b0: 954b ld.w r2, (r5, 0x2c) + 86b2: 9323 ld.w r1, (r3, 0xc) + 86b4: 644a cmpne r2, r1 + 86b6: 0c02 bf 0x86ba // 86ba + { + g_Eng.SaveFlash_Tim = e_save.saveFlash_tim; + 86b8: b343 st.w r2, (r3, 0xc) + } + + if(e_save.report_tim != g_Eng.Report_Tim) + 86ba: 954a ld.w r2, (r5, 0x28) + 86bc: 9322 ld.w r1, (r3, 0x8) + 86be: 644a cmpne r2, r1 + 86c0: 0c02 bf 0x86c4 // 86c4 + { + g_Eng.Report_Tim = e_save.report_tim; + 86c2: b342 st.w r2, (r3, 0x8) + } + + //同步FRAM保存的总能耗 + if(g_engfram.total_A_eng != g_Eng.Total_Eng) + 86c4: 1071 lrw r3, 0x20000848 // 8708 + 86c6: 9340 ld.w r2, (r3, 0x0) + 86c8: 9430 ld.w r1, (r4, 0x40) + 86ca: 644a cmpne r2, r1 + 86cc: 0c03 bf 0x86d2 // 86d2 + { + g_Eng.Total_Eng = g_engfram.total_A_eng; + 86ce: b450 st.w r2, (r4, 0x40) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 86d0: b451 st.w r2, (r4, 0x44) + } + + if(g_engfram.total_B_eng != g_Eng.Total_Eng_B) + 86d2: 9341 ld.w r2, (r3, 0x4) + 86d4: 9433 ld.w r1, (r4, 0x4c) + 86d6: 644a cmpne r2, r1 + 86d8: 0c03 bf 0x86de // 86de + { + g_Eng.Total_Eng_B = g_engfram.total_B_eng; + 86da: b453 st.w r2, (r4, 0x4c) + g_Eng.LastPhase_Eng_B = g_Eng.Total_Eng_B; + 86dc: b454 st.w r2, (r4, 0x50) + } + + if(g_engfram.Eng_A_RegData != g_Eng.U32_EnergyA_RegData) + 86de: 9342 ld.w r2, (r3, 0x8) + 86e0: 9436 ld.w r1, (r4, 0x58) + 86e2: 644a cmpne r2, r1 + 86e4: 0c02 bf 0x86e8 // 86e8 + { + g_Eng.U32_EnergyA_RegData = g_engfram.Eng_A_RegData; + 86e6: b456 st.w r2, (r4, 0x58) + } + + if(g_engfram.Eng_B_RegData != g_Eng.U32_EnergyB_RegData) + 86e8: 9363 ld.w r3, (r3, 0xc) + 86ea: 9458 ld.w r2, (r4, 0x60) + 86ec: 648e cmpne r3, r2 + 86ee: 0c02 bf 0x86f2 // 86f2 + { + g_Eng.U32_EnergyB_RegData = g_engfram.Eng_B_RegData; + 86f0: b478 st.w r3, (r4, 0x60) + } + + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_DetEnergy_Default Init"); + 86f2: 1027 lrw r1, 0xba71 // 870c + 86f4: 3000 movi r0, 0 + 86f6: e3fffa67 bsr 0x7bc4 // 7bc4 +#endif + +} + 86fa: 1494 pop r4-r7, r15 + 86fc: 20000498 .long 0x20000498 + 8700: 20000574 .long 0x20000574 + 8704: 200005f4 .long 0x200005f4 + 8708: 20000848 .long 0x20000848 + 870c: 0000ba71 .long 0x0000ba71 + +Disassembly of section .text.SaveFram_TEng: + +00008710 : + +//保存能耗数据到FRAM +void SaveFram_TEng(void) +{ + 8710: 14d1 push r4, r15 + if( (g_Eng.Total_Eng != g_engfram.total_A_eng) + 8712: 102f lrw r1, 0x20000574 // 874c + 8714: 106f lrw r3, 0x20000848 // 8750 + 8716: 9150 ld.w r2, (r1, 0x40) + 8718: 9300 ld.w r0, (r3, 0x0) + 871a: 640a cmpne r2, r0 + 871c: 080d bt 0x8736 // 8736 + || (g_Eng.Total_Eng_B != g_engfram.total_B_eng) + 871e: 9301 ld.w r0, (r3, 0x4) + 8720: 9193 ld.w r4, (r1, 0x4c) + 8722: 6412 cmpne r4, r0 + 8724: 0809 bt 0x8736 // 8736 + || (g_Eng.U32_EnergyA_RegData != g_engfram.Eng_A_RegData) + 8726: 9302 ld.w r0, (r3, 0x8) + 8728: 9196 ld.w r4, (r1, 0x58) + 872a: 6412 cmpne r4, r0 + 872c: 0805 bt 0x8736 // 8736 + || (g_Eng.U32_EnergyB_RegData != g_engfram.Eng_B_RegData) ) + 872e: 9303 ld.w r0, (r3, 0xc) + 8730: 9198 ld.w r4, (r1, 0x60) + 8732: 6412 cmpne r4, r0 + 8734: 0c0b bf 0x874a // 874a + { + g_engfram.total_A_eng = g_Eng.Total_Eng; + 8736: b340 st.w r2, (r3, 0x0) + g_engfram.total_B_eng = g_Eng.Total_Eng_B; + 8738: 9153 ld.w r2, (r1, 0x4c) + 873a: b341 st.w r2, (r3, 0x4) + g_engfram.Eng_A_RegData = g_Eng.U32_EnergyA_RegData; + 873c: 9156 ld.w r2, (r1, 0x58) + 873e: b342 st.w r2, (r3, 0x8) + g_engfram.Eng_B_RegData = g_Eng.U32_EnergyB_RegData; + 8740: 9158 ld.w r2, (r1, 0x60) + 8742: b343 st.w r2, (r3, 0xc) + + + FRAM_WriteTotalEng(&g_engfram); + 8744: 1003 lrw r0, 0x20000848 // 8750 + 8746: e000109f bsr 0xa884 // a884 + } + +} + 874a: 1491 pop r4, r15 + 874c: 20000574 .long 0x20000574 + 8750: 20000848 .long 0x20000848 + +Disassembly of section .text.HLW8110_CheckSum: + +00008754 : + + + +//校验和取反 +U8_T HLW8110_CheckSum(U8_T *data,U16_T len) +{ + 8754: 6040 addu r1, r0 + U8_T data_sum = 0; + 8756: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 875c: 6cce nor r3, r3 + 875e: 740c zextb r0, r3 +} + 8760: 783c jmp r15 + data_sum += data[i]; + 8762: 8040 ld.b r2, (r0, 0x0) + 8764: 60c8 addu r3, r2 + 8766: 74cc zextb r3, r3 + 8768: 2000 addi r0, 1 + 876a: 07f7 br 0x8758 // 8758 + +Disassembly of section .text.HLW8110_WriteREG_EN: + +0000876c : + + +//写使能 +void HLW8110_WriteREG_EN(void) +{ + 876c: 14d0 push r15 + 876e: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 8770: 3300 movi r3, 0 + 8772: b860 st.w r3, (r14, 0x0) + 8774: dc6e0004 st.b r3, (r14, 0x4) + U16_T SendLen = 0x00; + + SendData[SendLen++] = 0xA5; + 8778: 3300 movi r3, 0 + 877a: 2b5a subi r3, 91 + 877c: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 8780: 3300 movi r3, 0 + 8782: 2b15 subi r3, 22 + 8784: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xE5; + 8788: 3300 movi r3, 0 + 878a: 2b1a subi r3, 27 + + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 878c: 3103 movi r1, 3 + 878e: 6c3b mov r0, r14 + SendData[SendLen++] = 0xE5; + 8790: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8794: e3ffffe0 bsr 0x8754 // 8754 + +#if DBG_LOG_EN +// Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_EN len %d:",SendLen); +// Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"WriteREG_EN:",SendData,SendLen); +#endif + UARTTransmit(UART0,SendData,SendLen); + 8798: 1065 lrw r3, 0x20000040 // 87ac + 879a: 3204 movi r2, 4 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 879c: dc0e0003 st.b r0, (r14, 0x3) + UARTTransmit(UART0,SendData,SendLen); + 87a0: 6c7b mov r1, r14 + 87a2: 9300 ld.w r0, (r3, 0x0) + 87a4: e3fff02c bsr 0x67fc // 67fc +} + 87a8: 1402 addi r14, r14, 8 + 87aa: 1490 pop r15 + 87ac: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_WriteREG_DIS: + +000087b0 : + + +//写失能 +void HLW8110_WriteREG_DIS(void) +{ + 87b0: 14d0 push r15 + 87b2: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 87b4: 3300 movi r3, 0 + 87b6: b860 st.w r3, (r14, 0x0) + 87b8: dc6e0004 st.b r3, (r14, 0x4) + U16_T SendLen = 0x00; + + SendData[SendLen++] = 0xA5; + 87bc: 3300 movi r3, 0 + 87be: 2b5a subi r3, 91 + 87c0: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 87c4: 3300 movi r3, 0 + 87c6: 2b15 subi r3, 22 + 87c8: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0xDC; + 87cc: 3300 movi r3, 0 + 87ce: 2b23 subi r3, 36 + + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 87d0: 3103 movi r1, 3 + 87d2: 6c3b mov r0, r14 + SendData[SendLen++] = 0xDC; + 87d4: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 87d8: e3ffffbe bsr 0x8754 // 8754 +#if DBG_LOG_EN +// Dbg_Println(DBG_BIT_Debug_STATUS,"WriteREG_DIS len%d:",SendLen); +// Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"WriteREG_DIS:",SendData,SendLen); +#endif + + UARTTransmit(UART0,SendData,SendLen); + 87dc: 1065 lrw r3, 0x20000040 // 87f0 + 87de: 3204 movi r2, 4 + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 87e0: dc0e0003 st.b r0, (r14, 0x3) + UARTTransmit(UART0,SendData,SendLen); + 87e4: 6c7b mov r1, r14 + 87e6: 9300 ld.w r0, (r3, 0x0) + 87e8: e3fff00a bsr 0x67fc // 67fc +} + 87ec: 1402 addi r14, r14, 8 + 87ee: 1490 pop r15 + 87f0: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_Reset: + +000087f4 : + + +//复位HLW8110 +void HLW8110_Reset(void) +{ + 87f4: 14d0 push r15 + 87f6: 1422 subi r14, r14, 8 + U8_T SendData[5] = {0}; + 87f8: 3300 movi r3, 0 + 87fa: b860 st.w r3, (r14, 0x0) + 87fc: dc6e0004 st.b r3, (r14, 0x4) + U16_T SendLen = 0x00; + + SendData[SendLen++] = 0xA5; + 8800: 3300 movi r3, 0 + 8802: 2b5a subi r3, 91 + 8804: dc6e0000 st.b r3, (r14, 0x0) + SendData[SendLen++] = 0xEA; + 8808: 3300 movi r3, 0 + 880a: 2b15 subi r3, 22 + 880c: dc6e0001 st.b r3, (r14, 0x1) + SendData[SendLen++] = 0x96; + 8810: 3300 movi r3, 0 + 8812: 2b69 subi r3, 106 + + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 8814: 3103 movi r1, 3 + 8816: 6c3b mov r0, r14 + SendData[SendLen++] = 0x96; + 8818: dc6e0002 st.b r3, (r14, 0x2) + SendData[SendLen] = HLW8110_CheckSum(SendData,SendLen); + 881c: e3ffff9c bsr 0x8754 // 8754 + 8820: dc0e0003 st.b r0, (r14, 0x3) + SendLen +=1; + + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW8110 Reset"); + 8824: 3002 movi r0, 2 + 8826: 1026 lrw r1, 0xba8c // 883c + 8828: e3fff9ce bsr 0x7bc4 // 7bc4 + + UARTTransmit(UART0,SendData,SendLen); + 882c: 1065 lrw r3, 0x20000040 // 8840 + 882e: 3204 movi r2, 4 + 8830: 9300 ld.w r0, (r3, 0x0) + 8832: 6c7b mov r1, r14 + 8834: e3ffefe4 bsr 0x67fc // 67fc +} + 8838: 1402 addi r14, r14, 8 + 883a: 1490 pop r15 + 883c: 0000ba8c .long 0x0000ba8c + 8840: 20000040 .long 0x20000040 + +Disassembly of section .text.BLV_HLW8110_RWCMD_Packaging: + +00008844 : + * @para len : 写入数据长度,为0时是读寄存器,> 0时是写寄存器 + * @para value : 要写入的数据,len == 0 时无效 + * @retval : None + * */ +void BLV_HLW8110_RWCMD_Packaging(U8_T ADDR_Reg,U16_T len,U32_T value) +{ + 8844: 14d4 push r4-r7, r15 + 8846: 1421 subi r14, r14, 4 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 8848: 109f lrw r4, 0x200004f0 // 88c4 +{ + 884a: 6dc3 mov r7, r0 + 884c: 6d47 mov r5, r1 + 884e: 6d8b mov r6, r2 + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + 8850: 3100 movi r1, 0 + 8852: 321e movi r2, 30 + 8854: 6c13 mov r0, r4 + 8856: e3ffe073 bsr 0x493c // 493c <__memset_fast> + u_det.SendLen = 0x00; + + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 885a: 3300 movi r3, 0 + 885c: 2b5a subi r3, 91 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 885e: 3220 movi r2, 32 + 8860: 6090 addu r2, r4 + u_det.SendBuff[u_det.SendLen++] = 0xA5; + 8862: a460 st.b r3, (r4, 0x0) + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 8864: 3302 movi r3, 2 + 8866: a27c st.b r3, (r2, 0x1c) + 8868: 3300 movi r3, 0 + 886a: 2b7f subi r3, 128 + 886c: 6dcc or r7, r3 + + u_det.Resent = 0x00; + 886e: 3340 movi r3, 64 + 8870: 60d0 addu r3, r4 + 8872: 3100 movi r1, 0 + u_det.RevNum = 0x00; + + if( len > 0) + 8874: 3d40 cmpnei r5, 0 + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + 8876: a4e1 st.b r7, (r4, 0x1) + u_det.Resent = 0x00; + 8878: a321 st.b r1, (r3, 0x1) + u_det.RevNum = 0x00; + 887a: a322 st.b r1, (r3, 0x2) + 887c: 6dcb mov r7, r2 + if( len > 0) + 887e: 0c20 bf 0x88be // 88be + { + u_det.WR_flag = SEND_W; + 8880: 3202 movi r2, 2 + 8882: a340 st.b r2, (r3, 0x0) + for (U8_T i = 0; i < len; i++) + { + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8884: 5d43 subi r2, r5, 1 + for (U8_T i = 0; i < len; i++) + 8886: 3300 movi r3, 0 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 8888: b840 st.w r2, (r14, 0x0) + for (U8_T i = 0; i < len; i++) + 888a: 654c cmphs r3, r5 + 888c: 0c0f bf 0x88aa // 88aa + } + + u_det.SendLen += len; + 888e: 7554 zextb r5, r5 + 8890: 5dc6 addi r6, r5, 2 + 8892: 7598 zextb r6, r6 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 8894: 7459 zexth r1, r6 + 8896: 100c lrw r0, 0x200004f0 // 88c4 + 8898: 6118 addu r4, r6 + u_det.SendLen += len; + 889a: a7dc st.b r6, (r7, 0x1c) + u_det.SendLen += 1; + 889c: 2502 addi r5, 3 + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + 889e: e3ffff5b bsr 0x8754 // 8754 + 88a2: a400 st.b r0, (r4, 0x0) + u_det.SendLen += 1; + 88a4: a7bc st.b r5, (r7, 0x1c) + else + { + u_det.WR_flag = SEND_R; + } + +} + 88a6: 1401 addi r14, r14, 4 + 88a8: 1494 pop r4-r7, r15 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 88aa: 9840 ld.w r2, (r14, 0x0) + 88ac: 608e subu r2, r3 + 88ae: 4243 lsli r2, r2, 3 + 88b0: 6c5b mov r1, r6 + 88b2: 5c0c addu r0, r4, r3 + 88b4: 7049 lsr r1, r2 + for (U8_T i = 0; i < len; i++) + 88b6: 2300 addi r3, 1 + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + 88b8: a022 st.b r1, (r0, 0x2) + for (U8_T i = 0; i < len; i++) + 88ba: 74cc zextb r3, r3 + 88bc: 07e7 br 0x888a // 888a + u_det.WR_flag = SEND_R; + 88be: 3201 movi r2, 1 + 88c0: a340 st.b r2, (r3, 0x0) +} + 88c2: 07f2 br 0x88a6 // 88a6 + 88c4: 200004f0 .long 0x200004f0 + +Disassembly of section .text.HLW8110_RWCMD_Send: + +000088c8 : + * @para WR_SelFlag:读/写寄存器选择 + * + * @retval None + * */ +void HLW8110_RWCMD_Send(U8_T WR_SelFlag) +{ + 88c8: 14d1 push r4, r15 + 88ca: 1429 subi r14, r14, 36 + U8_T SendData[30]; + U16_T SendLen = 0x00; + + + if( (WR_SelFlag == SEND_W)&&(u_det.SendLen > 3) ) + 88cc: 3842 cmpnei r0, 2 + 88ce: 081d bt 0x8908 // 8908 + 88d0: 1075 lrw r3, 0x20000510 // 8924 + 88d2: 839c ld.b r4, (r3, 0x1c) + 88d4: 3c03 cmphsi r4, 4 + 88d6: 0c17 bf 0x8904 // 8904 + { + memcpy(SendData,u_det.SendBuff,u_det.SendLen); + 88d8: 6c93 mov r2, r4 + 88da: 1034 lrw r1, 0x200004f0 // 8928 + 88dc: 1801 addi r0, r14, 4 + 88de: e3ffe073 bsr 0x49c4 // 49c4 <__memcpy_fast> + SendLen = u_det.SendLen; + 88e2: 7511 zexth r4, r4 + { + return; + } + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_Debug_STATUS,"CMD:%02x,len:%d,SdCt:%d",SendData[1],SendLen,u_det.Resent); + 88e4: 1072 lrw r3, 0x20000530 // 892c + 88e6: 8361 ld.b r3, (r3, 0x1) + 88e8: d84e0005 ld.b r2, (r14, 0x5) + 88ec: b860 st.w r3, (r14, 0x0) + 88ee: 3002 movi r0, 2 + 88f0: 6cd3 mov r3, r4 + 88f2: 1030 lrw r1, 0xba9a // 8930 + 88f4: e3fff968 bsr 0x7bc4 // 7bc4 +// Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"SendBuff:",SendData,SendLen); +#endif + + + UARTTransmit(UART0,SendData,SendLen); + 88f8: 106f lrw r3, 0x20000040 // 8934 + 88fa: 6c93 mov r2, r4 + 88fc: 9300 ld.w r0, (r3, 0x0) + 88fe: 1901 addi r1, r14, 4 + 8900: e3ffef7e bsr 0x67fc // 67fc +} + 8904: 1409 addi r14, r14, 36 + 8906: 1491 pop r4, r15 + else if(WR_SelFlag == SEND_R) + 8908: 3841 cmpnei r0, 1 + 890a: 0bfd bt 0x8904 // 8904 + memcpy(SendData,u_det.SendBuff,2); + 890c: 1067 lrw r3, 0x200004f0 // 8928 + 890e: 8b40 ld.h r2, (r3, 0x0) + 8910: 74c9 zexth r3, r2 + 8912: dc4e1002 st.h r2, (r14, 0x4) + SendData[1] = (SendData[1] &0x7f ); + 8916: 4b68 lsri r3, r3, 8 + 8918: 327f movi r2, 127 + 891a: 68c8 and r3, r2 + 891c: dc6e0005 st.b r3, (r14, 0x5) + SendLen = 2; + 8920: 3402 movi r4, 2 + 8922: 07e1 br 0x88e4 // 88e4 + 8924: 20000510 .long 0x20000510 + 8928: 200004f0 .long 0x200004f0 + 892c: 20000530 .long 0x20000530 + 8930: 0000ba9a .long 0x0000ba9a + 8934: 20000040 .long 0x20000040 + +Disassembly of section .text.HLW8110_CleanSdFlag: + +00008938 : + + +//清除发送标志位 +U8_T HLW8110_CleanSdFlag(void) +{ + u_det.WR_flag = SEND_NONE; + 8938: 1063 lrw r3, 0x20000530 // 8944 + 893a: 3200 movi r2, 0 + 893c: a340 st.b r2, (r3, 0x0) + u_det.RevNum = REV_NONE; + 893e: a342 st.b r2, (r3, 0x2) +} + 8940: 783c jmp r15 + 8942: 0000 bkpt + 8944: 20000530 .long 0x20000530 + +Disassembly of section .text.Get_RevState: + +00008948 : +//返回回复状态 +U8_T Get_RevState(void) +{ + U8_T ret = 0x00; + + if(u_det.RevNum == REV_OK) + 8948: 1066 lrw r3, 0x20000530 // 8960 + 894a: 8302 ld.b r0, (r3, 0x2) + 894c: 3841 cmpnei r0, 1 + 894e: 0804 bt 0x8956 // 8956 + u_det.RevNum = REV_NONE; + return REV_OK; + } + else if(u_det.RevNum == REV_ERR) + { + u_det.RevNum = REV_NONE; + 8950: 3200 movi r2, 0 + 8952: a342 st.b r2, (r3, 0x2) + return REV_ERR; + } + return REV_NONE; +} + 8954: 783c jmp r15 + else if(u_det.RevNum == REV_ERR) + 8956: 3842 cmpnei r0, 2 + 8958: 0ffc bf 0x8950 // 8950 + return REV_NONE; + 895a: 3000 movi r0, 0 + 895c: 07fc br 0x8954 // 8954 + 895e: 0000 bkpt + 8960: 20000530 .long 0x20000530 + +Disassembly of section .text.Get_SendState: + +00008964 : + + +//返回发送状态 +U8_T Get_SendState(void) +{ + if(u_det.SendState == SEND_STATE_SUCC) + 8964: 1066 lrw r3, 0x20000530 // 897c + 8966: 8303 ld.b r0, (r3, 0x3) + 8968: 3841 cmpnei r0, 1 + 896a: 0804 bt 0x8972 // 8972 + u_det.SendState = SEND_STATE_NONE; + return SEND_STATE_SUCC; + } + else if(u_det.SendState == SEND_STATE_FAIL) + { + u_det.SendState = SEND_STATE_NONE; + 896c: 3200 movi r2, 0 + 896e: a343 st.b r2, (r3, 0x3) + return SEND_STATE_FAIL; + } + + return SEND_STATE_NONE; + +} + 8970: 783c jmp r15 + else if(u_det.SendState == SEND_STATE_FAIL) + 8972: 3842 cmpnei r0, 2 + 8974: 0ffc bf 0x896c // 896c + return SEND_STATE_NONE; + 8976: 3000 movi r0, 0 + 8978: 07fc br 0x8970 // 8970 + 897a: 0000 bkpt + 897c: 20000530 .long 0x20000530 + +Disassembly of section .text.BLV_HLW8110_SendData_Tack: + +00008980 : +} + + +//发送 读/写寄存器状态机 +void BLV_HLW8110_SendData_Tack(void) +{ + 8980: 14d3 push r4-r6, r15 + static U32_T HLW8110_Sned_Tisk = 0x00; //发送读写寄存器的时间戳 + + switch(u_det.State) + 8982: 128c lrw r4, 0x20000510 // 8ab0 + 8984: 841e ld.b r0, (r4, 0x1e) + 8986: 3805 cmphsi r0, 6 + 8988: 0813 bt 0x89ae // 89ae + 898a: e3ffd5b9 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 898e: 1103 .short 0x1103 + 8990: 82743527 .long 0x82743527 + { + case HLW_IDLE: + if(u_det.WR_flag == SEND_R) //读,需要等待回复校验 + 8994: 1268 lrw r3, 0x20000530 // 8ab4 + 8996: 8360 ld.b r3, (r3, 0x0) + 8998: 3b41 cmpnei r3, 1 + 899a: 0808 bt 0x89aa // 89aa + HLW8110_Sned_Tisk = SysTick_1ms; + u_det.State = HLW_SEND_INIT; + } + else if(u_det.WR_flag == SEND_W) //写,需要先写使能 + { + HLW8110_Sned_Tisk = SysTick_1ms; + 899c: 1267 lrw r3, 0x200000c4 // 8ab8 + 899e: 9340 ld.w r2, (r3, 0x0) + 89a0: 1267 lrw r3, 0x2000016c // 8abc + 89a2: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_SEND_INIT; + 89a4: 3301 movi r3, 1 + 89a6: a47e st.b r3, (r4, 0x1e) + 89a8: 0403 br 0x89ae // 89ae + else if(u_det.WR_flag == SEND_W) //写,需要先写使能 + 89aa: 3b42 cmpnei r3, 2 + 89ac: 0ff8 bf 0x899c // 899c + u_det.Pub_NextState = 0x00; + } + break; + } + +} + 89ae: 1493 pop r4-r6, r15 + u_det.Resent = 0x00; + 89b0: 12a4 lrw r5, 0x200004f0 // 8ac0 + 89b2: 3340 movi r3, 64 + 89b4: 60d4 addu r3, r5 + 89b6: 3200 movi r2, 0 + 89b8: a341 st.b r2, (r3, 0x1) + u_det.RevNum = 0x00; + 89ba: a342 st.b r2, (r3, 0x2) + if(u_det.WR_flag == SEND_W){ + 89bc: 8360 ld.b r3, (r3, 0x0) + 89be: 3b42 cmpnei r3, 2 + 89c0: 080a bt 0x89d4 // 89d4 + HLW8110_WriteREG_EN();//发 写使能,等待20ms+ + 89c2: e3fffed5 bsr 0x876c // 876c + u_det.State = HLW_WAIT; + 89c6: 3305 movi r3, 5 + 89c8: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 89ca: 3302 movi r3, 2 + 89cc: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 89ce: 3332 movi r3, 50 + 89d0: b571 st.w r3, (r5, 0x44) + 89d2: 07ee br 0x89ae // 89ae + u_det.State = HLW_WAIT; + 89d4: 3305 movi r3, 5 + 89d6: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 89d8: 3303 movi r3, 3 + 89da: 07f9 br 0x89cc // 89cc + HLW8110_RWCMD_Send(SEND_W); + 89dc: 3002 movi r0, 2 + 89de: e3ffff75 bsr 0x88c8 // 88c8 + HLW8110_Sned_Tisk = SysTick_1ms; + 89e2: 1176 lrw r3, 0x200000c4 // 8ab8 + 89e4: 9340 ld.w r2, (r3, 0x0) + 89e6: 1176 lrw r3, 0x2000016c // 8abc + 89e8: b340 st.w r2, (r3, 0x0) + u_det.State = HLW_WAIT; + 89ea: 3305 movi r3, 5 + 89ec: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 89ee: 3303 movi r3, 3 + 89f0: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 89f2: 3232 movi r2, 50 + 89f4: 1173 lrw r3, 0x200004f0 // 8ac0 + 89f6: b351 st.w r2, (r3, 0x44) + if(SysTick_1ms - HLW8110_Sned_Tisk >= SEND_TIME) + 89f8: 11d0 lrw r6, 0x200000c4 // 8ab8 + 89fa: 11b1 lrw r5, 0x2000016c // 8abc + 89fc: 9660 ld.w r3, (r6, 0x0) + 89fe: 9540 ld.w r2, (r5, 0x0) + 8a00: 60ca subu r3, r2 + 8a02: 1151 lrw r2, 0x12b // 8ac4 + 8a04: 64c8 cmphs r2, r3 + 8a06: 0820 bt 0x8a46 // 8a46 + HLW8110_Sned_Tisk = SysTick_1ms; + 8a08: 9660 ld.w r3, (r6, 0x0) + 8a0a: b560 st.w r3, (r5, 0x0) + if(u_det.Resent < 3) + 8a0c: 3540 movi r5, 64 + 8a0e: 116d lrw r3, 0x200004f0 // 8ac0 + 8a10: 614c addu r5, r3 + 8a12: 8541 ld.b r2, (r5, 0x1) + 8a14: 3a02 cmphsi r2, 3 + 8a16: 0808 bt 0x8a26 // 8a26 + HLW8110_RWCMD_Send(SEND_R); + 8a18: 3001 movi r0, 1 + 8a1a: e3ffff57 bsr 0x88c8 // 88c8 + u_det.Resent++; + 8a1e: 8561 ld.b r3, (r5, 0x1) + 8a20: 2300 addi r3, 1 + 8a22: a561 st.b r3, (r5, 0x1) + 8a24: 07c5 br 0x89ae // 89ae + u_det.SendState = SEND_STATE_FAIL; + 8a26: 3202 movi r2, 2 + 8a28: a543 st.b r2, (r5, 0x3) + if(u_det.WR_flag == SEND_W){ + 8a2a: 8540 ld.b r2, (r5, 0x0) + u_det.State = HLW_WAIT; + 8a2c: 3105 movi r1, 5 + if(u_det.WR_flag == SEND_W){ + 8a2e: 3a42 cmpnei r2, 2 + u_det.State = HLW_WAIT; + 8a30: a43e st.b r1, (r4, 0x1e) + 8a32: 1146 lrw r2, 0xbb8 // 8ac8 + if(u_det.WR_flag == SEND_W){ + 8a34: 0807 bt 0x8a42 // 8a42 + u_det.Pub_NextState = NextState; + 8a36: 3104 movi r1, 4 + 8a38: a43f st.b r1, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8a3a: b351 st.w r2, (r3, 0x44) + HLW8110_CleanSdFlag(); + 8a3c: e3ffff7e bsr 0x8938 // 8938 + 8a40: 07b7 br 0x89ae // 89ae + u_det.Pub_NextState = NextState; + 8a42: 3100 movi r1, 0 + 8a44: 07fa br 0x8a38 // 8a38 + if(Get_RevState() == REV_OK) + 8a46: e3ffff81 bsr 0x8948 // 8948 + 8a4a: 3841 cmpnei r0, 1 + 8a4c: 0bb1 bt 0x89ae // 89ae + u_det.SendState = SEND_STATE_SUCC; + 8a4e: 107d lrw r3, 0x200004f0 // 8ac0 + 8a50: 3240 movi r2, 64 + 8a52: 608c addu r2, r3 + 8a54: 3101 movi r1, 1 + 8a56: a223 st.b r1, (r2, 0x3) + if(u_det.WR_flag == SEND_W){ + 8a58: 8240 ld.b r2, (r2, 0x0) + HLW8110_Sned_Tisk = SysTick_1ms; + 8a5a: 9620 ld.w r1, (r6, 0x0) + if(u_det.WR_flag == SEND_W){ + 8a5c: 3a42 cmpnei r2, 2 + u_det.State = HLW_WAIT; + 8a5e: 3205 movi r2, 5 + HLW8110_Sned_Tisk = SysTick_1ms; + 8a60: b520 st.w r1, (r5, 0x0) + u_det.State = HLW_WAIT; + 8a62: a45e st.b r2, (r4, 0x1e) + if(u_det.WR_flag == SEND_W){ + 8a64: 0805 bt 0x8a6e // 8a6e + u_det.Pub_NextState = NextState; + 8a66: 3204 movi r2, 4 + 8a68: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8a6a: 3232 movi r2, 50 + 8a6c: 07e7 br 0x8a3a // 8a3a + u_det.Pub_NextState = NextState; + 8a6e: 3200 movi r2, 0 + 8a70: a45f st.b r2, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8a72: 3264 movi r2, 100 + 8a74: 07e3 br 0x8a3a // 8a3a + HLW8110_WriteREG_DIS(); + 8a76: e3fffe9d bsr 0x87b0 // 87b0 + u_det.State = HLW_WAIT; + 8a7a: 3305 movi r3, 5 + 8a7c: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = NextState; + 8a7e: 3300 movi r3, 0 + u_det.Pub_WaitTim = WaitTime; + 8a80: 3232 movi r2, 50 + u_det.Pub_NextState = NextState; + 8a82: a47f st.b r3, (r4, 0x1f) + u_det.Pub_WaitTim = WaitTime; + 8a84: 106f lrw r3, 0x200004f0 // 8ac0 + 8a86: b351 st.w r2, (r3, 0x44) + HLW8110_Sned_Tisk = SysTick_1ms; + 8a88: 106c lrw r3, 0x200000c4 // 8ab8 + 8a8a: 9340 ld.w r2, (r3, 0x0) + 8a8c: 106c lrw r3, 0x2000016c // 8abc + 8a8e: b340 st.w r2, (r3, 0x0) + break; + 8a90: 078f br 0x89ae // 89ae + if(SysTick_1ms - HLW8110_Sned_Tisk >= u_det.Pub_WaitTim) + 8a92: 106a lrw r3, 0x200000c4 // 8ab8 + 8a94: 104a lrw r2, 0x2000016c // 8abc + 8a96: 9360 ld.w r3, (r3, 0x0) + 8a98: 9240 ld.w r2, (r2, 0x0) + 8a9a: 60ca subu r3, r2 + 8a9c: 1049 lrw r2, 0x200004f0 // 8ac0 + 8a9e: 9251 ld.w r2, (r2, 0x44) + 8aa0: 648c cmphs r3, r2 + 8aa2: 0f86 bf 0x89ae // 89ae + u_det.State = u_det.Pub_NextState; + 8aa4: 847f ld.b r3, (r4, 0x1f) + 8aa6: a47e st.b r3, (r4, 0x1e) + u_det.Pub_NextState = 0x00; + 8aa8: 3300 movi r3, 0 + 8aaa: a47f st.b r3, (r4, 0x1f) +} + 8aac: 0781 br 0x89ae // 89ae + 8aae: 0000 bkpt + 8ab0: 20000510 .long 0x20000510 + 8ab4: 20000530 .long 0x20000530 + 8ab8: 200000c4 .long 0x200000c4 + 8abc: 2000016c .long 0x2000016c + 8ac0: 200004f0 .long 0x200004f0 + 8ac4: 0000012b .long 0x0000012b + 8ac8: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.HLW8110_Convert_VoltageReg_Value: + +00008acc : + + +//转换电压值 +F32_T HLW8110_Convert_VoltageReg_Value(U32_T value) +{ + 8acc: 14d3 push r4-r6, r15 + 8ace: 1421 subi r14, r14, 4 + F32_T Conv_Val = 0.0; + + if( (g_CalFactor.U24_Voltage_RegData&0x800000) == 0x800000) + 8ad0: 10bb lrw r5, 0x20000538 // 8b3c + 8ad2: 3280 movi r2, 128 + 8ad4: 9567 ld.w r3, (r5, 0x1c) + 8ad6: 4250 lsli r2, r2, 16 + 8ad8: 68c8 and r3, r2 + 8ada: 3b40 cmpnei r3, 0 + 8adc: 10d9 lrw r6, 0x20000574 // 8b40 + 8ade: 082d bt 0x8b38 // 8b38 + //g_Eng.det_ectA = 0x00; + Conv_Val = 0; + } + else + { + Conv_Val = value / 100.0; + 8ae0: e3ffdc0a bsr 0x42f4 // 42f4 <__floatunsidf> + 8ae4: 3200 movi r2, 0 + 8ae6: 1078 lrw r3, 0x40590000 // 8b44 + 8ae8: e3ffda66 bsr 0x3fb4 // 3fb4 <__divdf3> + 8aec: e3ffdbec bsr 0x42c4 // 42c4 <__truncdfsf2> + 8af0: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSUC_RegData; + 8af2: 8d02 ld.h r0, (r5, 0x4) + 8af4: e3ffd73a bsr 0x3968 // 3968 <__floatsisf> + 8af8: 6c53 mov r1, r4 + 8afa: e3ffd615 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x400000; + 8afe: 31d2 movi r1, 210 + 8b00: 4136 lsli r1, r1, 22 + 8b02: e3ffd611 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.V_K_Val;//VK_Val; + 8b06: 963a ld.w r1, (r6, 0x68) + 8b08: e3ffd60e bsr 0x3724 // 3724 <__mulsf3> + 8b0c: 6d03 mov r4, r0 + } + + g_Eng.det_V = (Conv_Val * 100); //单位:10mV + 8b0e: 102f lrw r1, 0x42c80000 // 8b48 + 8b10: 6c13 mov r0, r4 + 8b12: e3ffd609 bsr 0x3724 // 3724 <__mulsf3> + 8b16: e3ffd4fd bsr 0x3510 // 3510 <__fixunssfsi> + 8b1a: b609 st.w r0, (r6, 0x24) + + Dbg_Println(DBG_BIT_Debug_STATUS,"VolReg:%f, %d",Conv_Val,g_CalFactor.U16_RMSUC_RegData); + 8b1c: 6c13 mov r0, r4 + 8b1e: e3ffd781 bsr 0x3a20 // 3a20 <__extendsfdf2> + 8b22: 6cc7 mov r3, r1 + 8b24: 8d22 ld.h r1, (r5, 0x4) + 8b26: 6c83 mov r2, r0 + 8b28: b820 st.w r1, (r14, 0x0) + 8b2a: 3002 movi r0, 2 + 8b2c: 1028 lrw r1, 0xbab2 // 8b4c + 8b2e: e3fff84b bsr 0x7bc4 // 7bc4 + + return Conv_Val; +} + 8b32: 6c13 mov r0, r4 + 8b34: 1401 addi r14, r14, 4 + 8b36: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8b38: 3400 movi r4, 0 + 8b3a: 07ea br 0x8b0e // 8b0e + 8b3c: 20000538 .long 0x20000538 + 8b40: 20000574 .long 0x20000574 + 8b44: 40590000 .long 0x40590000 + 8b48: 42c80000 .long 0x42c80000 + 8b4c: 0000bab2 .long 0x0000bab2 + +Disassembly of section .text.HLW8110_Convert_CurrentRegA_Value: + +00008b50 : + + +//转换A通道电流值 +F32_T HLW8110_Convert_CurrentRegA_Value(U32_T value) +{ + 8b50: 14d3 push r4-r6, r15 + 8b52: 1421 subi r14, r14, 4 + F32_T Conv_Val = 0.0; + + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + 8b54: 10bf lrw r5, 0x20000538 // 8bd0 + 8b56: 3280 movi r2, 128 + 8b58: 9568 ld.w r3, (r5, 0x20) + 8b5a: 4250 lsli r2, r2, 16 + 8b5c: 68c8 and r3, r2 + 8b5e: 3b40 cmpnei r3, 0 + 8b60: 10dd lrw r6, 0x20000574 // 8bd4 + 8b62: 0834 bt 0x8bca // 8bca + Conv_Val = 0; + } + else + { + //此处需要换算电流值 + Conv_Val = value / 1000.0; + 8b64: e3ffdbc8 bsr 0x42f4 // 42f4 <__floatunsidf> + 8b68: 3200 movi r2, 0 + 8b6a: 107c lrw r3, 0x408f4000 // 8bd8 + 8b6c: e3ffda24 bsr 0x3fb4 // 3fb4 <__divdf3> + 8b70: e3ffdbaa bsr 0x42c4 // 42c4 <__truncdfsf2> + 8b74: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIAC_RegData; + 8b76: 8d00 ld.h r0, (r5, 0x0) + 8b78: e3ffd6f8 bsr 0x3968 // 3968 <__floatsisf> + 8b7c: 6c53 mov r1, r4 + 8b7e: e3ffd5d3 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x800; + 8b82: 31e8 movi r1, 232 + 8b84: 4136 lsli r1, r1, 22 + 8b86: e3ffd5cf bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x1000; + 8b8a: 31e6 movi r1, 230 + 8b8c: 4136 lsli r1, r1, 22 + 8b8e: e3ffd5cb bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.IA_K_Val; + 8b92: 963b ld.w r1, (r6, 0x6c) + 8b94: e3ffd5c8 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + 8b98: 963f ld.w r1, (r6, 0x7c) + 8b9a: e3ffd595 bsr 0x36c4 // 36c4 <__addsf3> + 8b9e: 6d03 mov r4, r0 + } + + g_Eng.det_ectA = (Conv_Val * 100); //单位10mA + 8ba0: 102f lrw r1, 0x42c80000 // 8bdc + 8ba2: 6c13 mov r0, r4 + 8ba4: e3ffd5c0 bsr 0x3724 // 3724 <__mulsf3> + 8ba8: e3ffd4b4 bsr 0x3510 // 3510 <__fixunssfsi> + 8bac: b60a st.w r0, (r6, 0x28) + + + Dbg_Println(DBG_BIT_Debug_STATUS,"CurReg_A:%f, %d",Conv_Val,g_CalFactor.U16_RMSIAC_RegData); + 8bae: 6c13 mov r0, r4 + 8bb0: e3ffd738 bsr 0x3a20 // 3a20 <__extendsfdf2> + 8bb4: 6cc7 mov r3, r1 + 8bb6: 8d20 ld.h r1, (r5, 0x0) + 8bb8: 6c83 mov r2, r0 + 8bba: b820 st.w r1, (r14, 0x0) + 8bbc: 3002 movi r0, 2 + 8bbe: 1029 lrw r1, 0xbac0 // 8be0 + 8bc0: e3fff802 bsr 0x7bc4 // 7bc4 + + return Conv_Val; +} + 8bc4: 6c13 mov r0, r4 + 8bc6: 1401 addi r14, r14, 4 + 8bc8: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8bca: 3400 movi r4, 0 + 8bcc: 07ea br 0x8ba0 // 8ba0 + 8bce: 0000 bkpt + 8bd0: 20000538 .long 0x20000538 + 8bd4: 20000574 .long 0x20000574 + 8bd8: 408f4000 .long 0x408f4000 + 8bdc: 42c80000 .long 0x42c80000 + 8be0: 0000bac0 .long 0x0000bac0 + +Disassembly of section .text.HLW8110_Convert_CurrentRegB_Value: + +00008be4 : + + +//转换B通道电流值 +F32_T HLW8110_Convert_CurrentRegB_Value(U32_T value) +{ + 8be4: 14d3 push r4-r6, r15 + 8be6: 1421 subi r14, r14, 4 + F32_T Conv_Val = 0.0; + + if( (g_CalFactor.U24_CurrentB_RegData&0x800000) == 0x800000) + 8be8: 10bf lrw r5, 0x20000538 // 8c64 + 8bea: 3280 movi r2, 128 + 8bec: 9569 ld.w r3, (r5, 0x24) + 8bee: 4250 lsli r2, r2, 16 + 8bf0: 68c8 and r3, r2 + 8bf2: 3b40 cmpnei r3, 0 + 8bf4: 10dd lrw r6, 0x20000574 // 8c68 + 8bf6: 0834 bt 0x8c5e // 8c5e + Conv_Val = 0; + } + else + { + //此处需要换算电流值 + Conv_Val = value / 1000.0; + 8bf8: e3ffdb7e bsr 0x42f4 // 42f4 <__floatunsidf> + 8bfc: 3200 movi r2, 0 + 8bfe: 107c lrw r3, 0x408f4000 // 8c6c + 8c00: e3ffd9da bsr 0x3fb4 // 3fb4 <__divdf3> + 8c04: e3ffdb60 bsr 0x42c4 // 42c4 <__truncdfsf2> + 8c08: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIBC_RegData; + 8c0a: 8d01 ld.h r0, (r5, 0x2) + 8c0c: e3ffd6ae bsr 0x3968 // 3968 <__floatsisf> + 8c10: 6c53 mov r1, r4 + 8c12: e3ffd589 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x800; + 8c16: 31e8 movi r1, 232 + 8c18: 4136 lsli r1, r1, 22 + 8c1a: e3ffd585 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x1000; + 8c1e: 31e6 movi r1, 230 + 8c20: 4136 lsli r1, r1, 22 + 8c22: e3ffd581 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.IB_K_Val; + 8c26: 963c ld.w r1, (r6, 0x70) + 8c28: e3ffd57e bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + 8c2c: 963f ld.w r1, (r6, 0x7c) + 8c2e: e3ffd54b bsr 0x36c4 // 36c4 <__addsf3> + 8c32: 6d03 mov r4, r0 + } + + g_Eng.det_ectB = (Conv_Val * 100); //单位10mA + 8c34: 102f lrw r1, 0x42c80000 // 8c70 + 8c36: 6c13 mov r0, r4 + 8c38: e3ffd576 bsr 0x3724 // 3724 <__mulsf3> + 8c3c: e3ffd46a bsr 0x3510 // 3510 <__fixunssfsi> + 8c40: b60d st.w r0, (r6, 0x34) + + + Dbg_Println(DBG_BIT_Debug_STATUS,"CurReg_B:%f, %d",Conv_Val,g_CalFactor.U16_RMSIBC_RegData); + 8c42: 6c13 mov r0, r4 + 8c44: e3ffd6ee bsr 0x3a20 // 3a20 <__extendsfdf2> + 8c48: 6cc7 mov r3, r1 + 8c4a: 8d21 ld.h r1, (r5, 0x2) + 8c4c: 6c83 mov r2, r0 + 8c4e: b820 st.w r1, (r14, 0x0) + 8c50: 3002 movi r0, 2 + 8c52: 1029 lrw r1, 0xbad0 // 8c74 + 8c54: e3fff7b8 bsr 0x7bc4 // 7bc4 + + return Conv_Val; +} + 8c58: 6c13 mov r0, r4 + 8c5a: 1401 addi r14, r14, 4 + 8c5c: 1493 pop r4-r6, r15 + Conv_Val = 0; + 8c5e: 3400 movi r4, 0 + 8c60: 07ea br 0x8c34 // 8c34 + 8c62: 0000 bkpt + 8c64: 20000538 .long 0x20000538 + 8c68: 20000574 .long 0x20000574 + 8c6c: 408f4000 .long 0x408f4000 + 8c70: 42c80000 .long 0x42c80000 + 8c74: 0000bad0 .long 0x0000bad0 + +Disassembly of section .text.HLW8110_Convert_PowerRegA_Value: + +00008c78 : + + + +//转换A通道有功功率 +F32_T HLW8110_Convert_PowerRegA_Value(U32_T value) +{ + 8c78: 14d4 push r4-r7, r15 + 8c7a: 1422 subi r14, r14, 8 + F32_T Conv_Val = 0.0; + + Conv_Val = abs((int)value); + 8c7c: 38df btsti r0, 31 +{ + 8c7e: 6d43 mov r5, r0 + Conv_Val = abs((int)value); + 8c80: 0c03 bf 0x8c86 // 8c86 + 8c82: 3000 movi r0, 0 + 8c84: 6016 subu r0, r5 + 8c86: e3ffd671 bsr 0x3968 // 3968 <__floatsisf> + + Conv_Val = Conv_Val / 1.0; //电流系数 + Conv_Val = Conv_Val / 1.0; //电压系数 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8c8a: 107b lrw r3, 0x20000538 // 8cf4 + 8c8c: 8be3 ld.h r7, (r3, 0x6) + Conv_Val = abs((int)value); + 8c8e: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + 8c90: 6c1f mov r0, r7 + 8c92: e3ffd66b bsr 0x3968 // 3968 <__floatsisf> + 8c96: 6c53 mov r1, r4 + 8c98: e3ffd546 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x8000; + 8c9c: 31e0 movi r1, 224 + 8c9e: 4136 lsli r1, r1, 22 + 8ca0: e3ffd542 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x10000; + 8ca4: 31de movi r1, 222 + Conv_Val = Conv_Val * g_Eng.IA_K_Val * g_Eng.PA_K_Val * g_Eng.V_K_Val; + 8ca6: 1095 lrw r4, 0x20000574 // 8cf8 + Conv_Val = Conv_Val / 0x10000; + 8ca8: 4136 lsli r1, r1, 22 + 8caa: e3ffd53d bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.IA_K_Val * g_Eng.PA_K_Val * g_Eng.V_K_Val; + 8cae: 943b ld.w r1, (r4, 0x6c) + 8cb0: e3ffd53a bsr 0x3724 // 3724 <__mulsf3> + 8cb4: 943d ld.w r1, (r4, 0x74) + 8cb6: e3ffd537 bsr 0x3724 // 3724 <__mulsf3> + 8cba: 943a ld.w r1, (r4, 0x68) + 8cbc: e3ffd534 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8cc0: 3380 movi r3, 128 + 8cc2: 60d0 addu r3, r4 + 8cc4: 9320 ld.w r1, (r3, 0x0) + 8cc6: e3ffd4ff bsr 0x36c4 // 36c4 <__addsf3> + + g_Eng.det_powA = (Conv_Val*1000); //单位:mW + 8cca: 102d lrw r1, 0x447a0000 // 8cfc + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8ccc: 6d83 mov r6, r0 + g_Eng.det_powA = (Conv_Val*1000); //单位:mW + 8cce: e3ffd52b bsr 0x3724 // 3724 <__mulsf3> + 8cd2: e3ffd41f bsr 0x3510 // 3510 <__fixunssfsi> + 8cd6: b40c st.w r0, (r4, 0x30) + + + Dbg_Println(DBG_BIT_Debug_STATUS,"PowReg_A:%f, %d, %d",Conv_Val,value,g_CalFactor.U16_PowerPAC_RegData); + 8cd8: 6c1b mov r0, r6 + 8cda: e3ffd6a3 bsr 0x3a20 // 3a20 <__extendsfdf2> + 8cde: 6c83 mov r2, r0 + 8ce0: 6cc7 mov r3, r1 + 8ce2: b8e1 st.w r7, (r14, 0x4) + 8ce4: b8a0 st.w r5, (r14, 0x0) + 8ce6: 3002 movi r0, 2 + 8ce8: 1026 lrw r1, 0xbae0 // 8d00 + 8cea: e3fff76d bsr 0x7bc4 // 7bc4 + + return Conv_Val; +} + 8cee: 6c1b mov r0, r6 + 8cf0: 1402 addi r14, r14, 8 + 8cf2: 1494 pop r4-r7, r15 + 8cf4: 20000538 .long 0x20000538 + 8cf8: 20000574 .long 0x20000574 + 8cfc: 447a0000 .long 0x447a0000 + 8d00: 0000bae0 .long 0x0000bae0 + +Disassembly of section .text.HLW8110_Convert_PowerRegB_Value: + +00008d04 : + + +//转换B通道有功功率 +F32_T HLW8110_Convert_PowerRegB_Value(U32_T value) +{ + 8d04: 14d4 push r4-r7, r15 + 8d06: 1422 subi r14, r14, 8 + F32_T Conv_Val = 0.0; + + Conv_Val = abs((int)value); + 8d08: 38df btsti r0, 31 +{ + 8d0a: 6d43 mov r5, r0 + Conv_Val = abs((int)value); + 8d0c: 0c03 bf 0x8d12 // 8d12 + 8d0e: 3000 movi r0, 0 + 8d10: 6016 subu r0, r5 + 8d12: e3ffd62b bsr 0x3968 // 3968 <__floatsisf> + + Conv_Val = Conv_Val / 1.0; //电流系数 + Conv_Val = Conv_Val / 1.0; //电压系数 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPBC_RegData; + 8d16: 107b lrw r3, 0x20000538 // 8d80 + 8d18: 8be4 ld.h r7, (r3, 0x8) + Conv_Val = abs((int)value); + 8d1a: 6d03 mov r4, r0 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPBC_RegData; + 8d1c: 6c1f mov r0, r7 + 8d1e: e3ffd625 bsr 0x3968 // 3968 <__floatsisf> + 8d22: 6c53 mov r1, r4 + 8d24: e3ffd500 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x8000; + 8d28: 31e0 movi r1, 224 + 8d2a: 4136 lsli r1, r1, 22 + 8d2c: e3ffd4fc bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x10000; + 8d30: 31de movi r1, 222 + Conv_Val = Conv_Val * g_Eng.IB_K_Val * g_Eng.PB_K_Val * g_Eng.V_K_Val; + 8d32: 1095 lrw r4, 0x20000574 // 8d84 + Conv_Val = Conv_Val / 0x10000; + 8d34: 4136 lsli r1, r1, 22 + 8d36: e3ffd4f7 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val * g_Eng.IB_K_Val * g_Eng.PB_K_Val * g_Eng.V_K_Val; + 8d3a: 943c ld.w r1, (r4, 0x70) + 8d3c: e3ffd4f4 bsr 0x3724 // 3724 <__mulsf3> + 8d40: 943e ld.w r1, (r4, 0x78) + 8d42: e3ffd4f1 bsr 0x3724 // 3724 <__mulsf3> + 8d46: 943a ld.w r1, (r4, 0x68) + 8d48: e3ffd4ee bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8d4c: 3380 movi r3, 128 + 8d4e: 60d0 addu r3, r4 + 8d50: 9320 ld.w r1, (r3, 0x0) + 8d52: e3ffd4b9 bsr 0x36c4 // 36c4 <__addsf3> + + g_Eng.det_powB = (Conv_Val*1000); //单位:mW + 8d56: 102d lrw r1, 0x447a0000 // 8d88 + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + 8d58: 6d83 mov r6, r0 + g_Eng.det_powB = (Conv_Val*1000); //单位:mW + 8d5a: e3ffd4e5 bsr 0x3724 // 3724 <__mulsf3> + 8d5e: e3ffd3d9 bsr 0x3510 // 3510 <__fixunssfsi> + 8d62: b40f st.w r0, (r4, 0x3c) + + Dbg_Println(DBG_BIT_Debug_STATUS,"PowReg_B:%f, %d, %d",Conv_Val,value,g_CalFactor.U16_PowerPBC_RegData); + 8d64: 6c1b mov r0, r6 + 8d66: e3ffd65d bsr 0x3a20 // 3a20 <__extendsfdf2> + 8d6a: 6c83 mov r2, r0 + 8d6c: 6cc7 mov r3, r1 + 8d6e: b8e1 st.w r7, (r14, 0x4) + 8d70: b8a0 st.w r5, (r14, 0x0) + 8d72: 3002 movi r0, 2 + 8d74: 1026 lrw r1, 0xbaf4 // 8d8c + 8d76: e3fff727 bsr 0x7bc4 // 7bc4 + + return Conv_Val; +} + 8d7a: 6c1b mov r0, r6 + 8d7c: 1402 addi r14, r14, 8 + 8d7e: 1494 pop r4-r7, r15 + 8d80: 20000538 .long 0x20000538 + 8d84: 20000574 .long 0x20000574 + 8d88: 447a0000 .long 0x447a0000 + 8d8c: 0000baf4 .long 0x0000baf4 + +Disassembly of section .text.HLW8110_Convert_EnergyRegA_Value: + +00008d90 : + + +//转换A通道电能能耗 +U8_T HLW8110_Convert_EnergyRegA_Value(U32_T value) +{ + 8d90: 14d4 push r4-r7, r15 + 8d92: 1425 subi r14, r14, 20 + F32_T Conv_Val = 0.0; + U32_T EnergyA_RegData_Diff = 0x00; //本次读取电量寄存器值和上次读取到的电量寄存器值的差值 + + if(value > 0xFFFFFF){ + 8d94: 1176 lrw r3, 0xffffff // 8e6c + 8d96: 640c cmphs r3, r0 +{ + 8d98: 6d83 mov r6, r0 + if(value > 0xFFFFFF){ + 8d9a: 0c66 bf 0x8e66 // 8e66 + return 0x02; + } + +// Dbg_BT_Println(DBG_BIT_BTDebug_STATUS," valA:%d, Last:%d, SumRg1:%d",value,g_Eng.U32_EnergyA_RegData_LastRecord,g_Eng.U32_EnergyA_RegData); + + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //记录的上次读取的电能寄存器值小于此次读取到的电能寄存器值 + 8d9c: 1195 lrw r4, 0x20000574 // 8e70 + 8d9e: 9437 ld.w r1, (r4, 0x5c) + 8da0: 6440 cmphs r0, r1 + 8da2: 0c1e bf 0x8dde // 8dde + { + EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + 8da4: 4128 lsli r1, r1, 8 + 8da6: 4928 lsri r1, r1, 8 + 8da8: 58a5 subu r5, r0, r1 + }else { + EnergyA_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyA_RegData_LastRecord ); + } + + + if(EnergyA_RegData_Diff > REG_DEBUG_NUM){ //差值大,不处理 + 8daa: 3332 movi r3, 50 + 8dac: 654c cmphs r3, r5 + 8dae: 081f bt 0x8dec // 8dec + g_Eng.EnergyA_reset_cnt++; + 8db0: 8461 ld.b r3, (r4, 0x1) + 8db2: 2300 addi r3, 1 + 8db4: 74cc zextb r3, r3 + if(g_Eng.EnergyA_reset_cnt >= REG_DEBUG_CNT){ //连续7次差值过大,复位HLW的IC + 8db6: 3b06 cmphsi r3, 7 + g_Eng.EnergyA_reset_cnt++; + 8db8: a461 st.b r3, (r4, 0x1) + if(g_Eng.EnergyA_reset_cnt >= REG_DEBUG_CNT){ //连续7次差值过大,复位HLW的IC + 8dba: 0c09 bf 0x8dcc // 8dcc + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER111"); + 8dbc: 112e lrw r1, 0xbb08 // 8e74 + 8dbe: 3000 movi r0, 0 + 8dc0: e3fff702 bsr 0x7bc4 // 7bc4 + g_Eng.EnergyA_reset_cnt = 0x00; + 8dc4: 3300 movi r3, 0 + 8dc6: a461 st.b r3, (r4, 0x1) + g_Eng.tack_reset_flag = 0x01; + 8dc8: 3301 movi r3, 1 + 8dca: a460 st.b r3, (r4, 0x0) + } + + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, retCntA:%d",EnergyA_RegData_Diff,g_Eng.EnergyA_reset_cnt); + 8dcc: 3002 movi r0, 2 + 8dce: 8461 ld.b r3, (r4, 0x1) + 8dd0: 6c97 mov r2, r5 + 8dd2: 112a lrw r1, 0xbb11 // 8e78 + 8dd4: e3fff6f8 bsr 0x7bc4 // 7bc4 + return 0x01; + 8dd8: 3001 movi r0, 1 + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER222"); + g_Eng.tack_reset_flag = 0x01; + } + + return 0x00; +} + 8dda: 1405 addi r14, r14, 20 + 8ddc: 1494 pop r4-r7, r15 + EnergyA_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyA_RegData_LastRecord ); + 8dde: 40a8 lsli r5, r0, 8 + 8de0: 4da8 lsri r5, r5, 8 + 8de2: 3380 movi r3, 128 + 8de4: 6146 subu r5, r1 + 8de6: 4371 lsli r3, r3, 17 + 8de8: 614c addu r5, r3 + 8dea: 07e0 br 0x8daa // 8daa + g_Eng.U32_EnergyA_RegData += EnergyA_RegData_Diff; + 8dec: 94f6 ld.w r7, (r4, 0x58) + g_Eng.EnergyA_reset_cnt = 0x00; + 8dee: 3300 movi r3, 0 + g_Eng.U32_EnergyA_RegData += EnergyA_RegData_Diff; + 8df0: 61d4 addu r7, r5 + g_Eng.EnergyA_reset_cnt = 0x00; + 8df2: a461 st.b r3, (r4, 0x1) + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + 8df4: b4d7 st.w r6, (r4, 0x5c) + g_Eng.U32_EnergyA_RegData += EnergyA_RegData_Diff; + 8df6: b4f6 st.w r7, (r4, 0x58) + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + 8df8: 6c1f mov r0, r7 + 8dfa: e3ffda7d bsr 0x42f4 // 42f4 <__floatunsidf> + 8dfe: e3ffda63 bsr 0x42c4 // 42c4 <__truncdfsf2> + Conv_Val = Conv_Val * g_Eng.IA_K_Val * g_Eng.V_K_Val; + 8e02: 943b ld.w r1, (r4, 0x6c) + 8e04: e3ffd490 bsr 0x3724 // 3724 <__mulsf3> + 8e08: 943a ld.w r1, (r4, 0x68) + 8e0a: e3ffd48d bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e0e: 107c lrw r3, 0x20000538 // 8e7c + 8e10: 8b66 ld.h r3, (r3, 0xc) + Conv_Val = Conv_Val * g_Eng.IA_K_Val * g_Eng.V_K_Val; + 8e12: b804 st.w r0, (r14, 0x10) + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + 8e14: 6c0f mov r0, r3 + 8e16: b863 st.w r3, (r14, 0xc) + 8e18: e3ffd5a8 bsr 0x3968 // 3968 <__floatsisf> + 8e1c: 9824 ld.w r1, (r14, 0x10) + 8e1e: e3ffd483 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x20000000; + 8e22: 31c4 movi r1, 196 + 8e24: 4136 lsli r1, r1, 22 + 8e26: e3ffd47f bsr 0x3724 // 3724 <__mulsf3> + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8e2a: 1036 lrw r1, 0x447a0000 // 8e80 + 8e2c: e3ffd47c bsr 0x3724 // 3724 <__mulsf3> + 8e30: e3ffd370 bsr 0x3510 // 3510 <__fixunssfsi> + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, value:%d, EngAC:%d, TolEng:%d, SumEReg2:%d",EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng,g_Eng.U32_EnergyA_RegData); + 8e34: 9863 ld.w r3, (r14, 0xc) + 8e36: 6c97 mov r2, r5 + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + 8e38: b410 st.w r0, (r4, 0x40) + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, value:%d, EngAC:%d, TolEng:%d, SumEReg2:%d",EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng,g_Eng.U32_EnergyA_RegData); + 8e3a: b801 st.w r0, (r14, 0x4) + 8e3c: b860 st.w r3, (r14, 0x0) + 8e3e: 3002 movi r0, 2 + 8e40: 6cdb mov r3, r6 + 8e42: 1031 lrw r1, 0xbb25 // 8e84 + 8e44: b8e2 st.w r7, (r14, 0x8) + 8e46: e3fff6bf bsr 0x7bc4 // 7bc4 + SaveFram_TEng(); + 8e4a: e3fffc63 bsr 0x8710 // 8710 + if(g_Eng.U32_EnergyA_RegData_LastRecord >= REG_SUM_MAX){ + 8e4e: 9457 ld.w r2, (r4, 0x5c) + 8e50: 106e lrw r3, 0xe4e1bf // 8e88 + 8e52: 648c cmphs r3, r2 + 8e54: 0807 bt 0x8e62 // 8e62 + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER222"); + 8e56: 102e lrw r1, 0xbb59 // 8e8c + 8e58: 3000 movi r0, 0 + 8e5a: e3fff6b5 bsr 0x7bc4 // 7bc4 + g_Eng.tack_reset_flag = 0x01; + 8e5e: 3301 movi r3, 1 + 8e60: a460 st.b r3, (r4, 0x0) + return 0x00; + 8e62: 3000 movi r0, 0 + 8e64: 07bb br 0x8dda // 8dda + return 0x02; + 8e66: 3002 movi r0, 2 + 8e68: 07b9 br 0x8dda // 8dda + 8e6a: 0000 bkpt + 8e6c: 00ffffff .long 0x00ffffff + 8e70: 20000574 .long 0x20000574 + 8e74: 0000bb08 .long 0x0000bb08 + 8e78: 0000bb11 .long 0x0000bb11 + 8e7c: 20000538 .long 0x20000538 + 8e80: 447a0000 .long 0x447a0000 + 8e84: 0000bb25 .long 0x0000bb25 + 8e88: 00e4e1bf .long 0x00e4e1bf + 8e8c: 0000bb59 .long 0x0000bb59 + +Disassembly of section .text.HLW8110_Convert_EnergyRegB_Value: + +00008e90 : + + + +//转换B通道电能能耗 +U8_T HLW8110_Convert_EnergyRegB_Value(U32_T value) +{ + 8e90: 14d4 push r4-r7, r15 + 8e92: 1425 subi r14, r14, 20 + F32_T Conv_Val = 0.0; + U32_T EnergyB_RegData_Diff = 0x00; //本次读取电量寄存器值和上次读取到的电量寄存器值的差值 + + if(value > 0xFFFFFF){ + 8e94: 1176 lrw r3, 0xffffff // 8f6c + 8e96: 640c cmphs r3, r0 +{ + 8e98: 6d83 mov r6, r0 + if(value > 0xFFFFFF){ + 8e9a: 0c66 bf 0x8f66 // 8f66 + return 0x02; + } + +// Dbg_BT_Println(DBG_BIT_BTDebug_STATUS," valB:%d, Last:%d, SumRg1:%d",value,g_Eng.U32_EnergyB_RegData_LastRecord,g_Eng.U32_EnergyB_RegData); + + if( g_Eng.U32_EnergyB_RegData_LastRecord <= value ) //记录的上次读取的电能寄存器值小于此次读取到的电能寄存器值 + 8e9c: 1195 lrw r4, 0x20000574 // 8f70 + 8e9e: 9439 ld.w r1, (r4, 0x64) + 8ea0: 6440 cmphs r0, r1 + 8ea2: 0c1e bf 0x8ede // 8ede + { + EnergyB_RegData_Diff = ( value - (g_Eng.U32_EnergyB_RegData_LastRecord & 0x00FFFFFF) ); + 8ea4: 4128 lsli r1, r1, 8 + 8ea6: 4928 lsri r1, r1, 8 + 8ea8: 58a5 subu r5, r0, r1 + }else { + EnergyB_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyB_RegData_LastRecord ); + } + + if(EnergyB_RegData_Diff > REG_DEBUG_NUM){ //差值大,不处理,要结合硬件修改 + 8eaa: 3332 movi r3, 50 + 8eac: 654c cmphs r3, r5 + 8eae: 081f bt 0x8eec // 8eec + g_Eng.EnergyB_reset_cnt++; + 8eb0: 8462 ld.b r3, (r4, 0x2) + 8eb2: 2300 addi r3, 1 + 8eb4: 74cc zextb r3, r3 + if(g_Eng.EnergyB_reset_cnt >= REG_DEBUG_CNT){ + 8eb6: 3b06 cmphsi r3, 7 + g_Eng.EnergyB_reset_cnt++; + 8eb8: a462 st.b r3, (r4, 0x2) + if(g_Eng.EnergyB_reset_cnt >= REG_DEBUG_CNT){ + 8eba: 0c09 bf 0x8ecc // 8ecc + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER333"); + 8ebc: 112e lrw r1, 0xbb62 // 8f74 + 8ebe: 3000 movi r0, 0 + 8ec0: e3fff682 bsr 0x7bc4 // 7bc4 + g_Eng.EnergyB_reset_cnt = 0x00; + 8ec4: 3300 movi r3, 0 + 8ec6: a462 st.b r3, (r4, 0x2) + g_Eng.tack_reset_flag = 0x01; + 8ec8: 3301 movi r3, 1 + 8eca: a460 st.b r3, (r4, 0x0) + } + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, retCntB:%d",EnergyB_RegData_Diff,g_Eng.EnergyB_reset_cnt); + 8ecc: 3002 movi r0, 2 + 8ece: 8462 ld.b r3, (r4, 0x2) + 8ed0: 6c97 mov r2, r5 + 8ed2: 112a lrw r1, 0xbb6b // 8f78 + 8ed4: e3fff678 bsr 0x7bc4 // 7bc4 + return 0x01; + 8ed8: 3001 movi r0, 1 + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER444"); + g_Eng.tack_reset_flag = 0x01; + } + + return 0x00; +} + 8eda: 1405 addi r14, r14, 20 + 8edc: 1494 pop r4-r7, r15 + EnergyB_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyB_RegData_LastRecord ); + 8ede: 40a8 lsli r5, r0, 8 + 8ee0: 4da8 lsri r5, r5, 8 + 8ee2: 3380 movi r3, 128 + 8ee4: 6146 subu r5, r1 + 8ee6: 4371 lsli r3, r3, 17 + 8ee8: 614c addu r5, r3 + 8eea: 07e0 br 0x8eaa // 8eaa + g_Eng.U32_EnergyB_RegData += EnergyB_RegData_Diff; + 8eec: 94f8 ld.w r7, (r4, 0x60) + g_Eng.EnergyB_reset_cnt = 0x00; + 8eee: 3300 movi r3, 0 + g_Eng.U32_EnergyB_RegData += EnergyB_RegData_Diff; + 8ef0: 61d4 addu r7, r5 + g_Eng.EnergyB_reset_cnt = 0x00; + 8ef2: a462 st.b r3, (r4, 0x2) + g_Eng.U32_EnergyB_RegData_LastRecord = (value & 0xFFFFFF); + 8ef4: b4d9 st.w r6, (r4, 0x64) + g_Eng.U32_EnergyB_RegData += EnergyB_RegData_Diff; + 8ef6: b4f8 st.w r7, (r4, 0x60) + Conv_Val = g_Eng.U32_EnergyB_RegData / 1.0; + 8ef8: 6c1f mov r0, r7 + 8efa: e3ffd9fd bsr 0x42f4 // 42f4 <__floatunsidf> + 8efe: e3ffd9e3 bsr 0x42c4 // 42c4 <__truncdfsf2> + Conv_Val = Conv_Val * g_Eng.IB_K_Val * g_Eng.V_K_Val; + 8f02: 943c ld.w r1, (r4, 0x70) + 8f04: e3ffd410 bsr 0x3724 // 3724 <__mulsf3> + 8f08: 943a ld.w r1, (r4, 0x68) + 8f0a: e3ffd40d bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyBC_RegData; + 8f0e: 107c lrw r3, 0x20000538 // 8f7c + 8f10: 8b67 ld.h r3, (r3, 0xe) + Conv_Val = Conv_Val * g_Eng.IB_K_Val * g_Eng.V_K_Val; + 8f12: b804 st.w r0, (r14, 0x10) + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyBC_RegData; + 8f14: 6c0f mov r0, r3 + 8f16: b863 st.w r3, (r14, 0xc) + 8f18: e3ffd528 bsr 0x3968 // 3968 <__floatsisf> + 8f1c: 9824 ld.w r1, (r14, 0x10) + 8f1e: e3ffd403 bsr 0x3724 // 3724 <__mulsf3> + Conv_Val = Conv_Val / 0x20000000; + 8f22: 31c4 movi r1, 196 + 8f24: 4136 lsli r1, r1, 22 + 8f26: e3ffd3ff bsr 0x3724 // 3724 <__mulsf3> + g_Eng.Total_Eng_B = (Conv_Val * 1000); //累计值,单位,W/H + 8f2a: 1036 lrw r1, 0x447a0000 // 8f80 + 8f2c: e3ffd3fc bsr 0x3724 // 3724 <__mulsf3> + 8f30: e3ffd2f0 bsr 0x3510 // 3510 <__fixunssfsi> + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, value:%d, EngBC:%d, TolEng:%d, SumEReg2:%d",EnergyB_RegData_Diff, value, g_CalFactor.U16_EnergyBC_RegData, g_Eng.Total_Eng_B,g_Eng.U32_EnergyB_RegData); + 8f34: 9863 ld.w r3, (r14, 0xc) + 8f36: 6c97 mov r2, r5 + g_Eng.Total_Eng_B = (Conv_Val * 1000); //累计值,单位,W/H + 8f38: b413 st.w r0, (r4, 0x4c) + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, value:%d, EngBC:%d, TolEng:%d, SumEReg2:%d",EnergyB_RegData_Diff, value, g_CalFactor.U16_EnergyBC_RegData, g_Eng.Total_Eng_B,g_Eng.U32_EnergyB_RegData); + 8f3a: b801 st.w r0, (r14, 0x4) + 8f3c: b860 st.w r3, (r14, 0x0) + 8f3e: 3002 movi r0, 2 + 8f40: 6cdb mov r3, r6 + 8f42: 1031 lrw r1, 0xbb7f // 8f84 + 8f44: b8e2 st.w r7, (r14, 0x8) + 8f46: e3fff63f bsr 0x7bc4 // 7bc4 + SaveFram_TEng(); + 8f4a: e3fffbe3 bsr 0x8710 // 8710 + if(g_Eng.U32_EnergyB_RegData_LastRecord >= REG_SUM_MAX){ + 8f4e: 9459 ld.w r2, (r4, 0x64) + 8f50: 106e lrw r3, 0xe4e1bf // 8f88 + 8f52: 648c cmphs r3, r2 + 8f54: 0807 bt 0x8f62 // 8f62 + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER444"); + 8f56: 102e lrw r1, 0xbbb3 // 8f8c + 8f58: 3000 movi r0, 0 + 8f5a: e3fff635 bsr 0x7bc4 // 7bc4 + g_Eng.tack_reset_flag = 0x01; + 8f5e: 3301 movi r3, 1 + 8f60: a460 st.b r3, (r4, 0x0) + return 0x00; + 8f62: 3000 movi r0, 0 + 8f64: 07bb br 0x8eda // 8eda + return 0x02; + 8f66: 3002 movi r0, 2 + 8f68: 07b9 br 0x8eda // 8eda + 8f6a: 0000 bkpt + 8f6c: 00ffffff .long 0x00ffffff + 8f70: 20000574 .long 0x20000574 + 8f74: 0000bb62 .long 0x0000bb62 + 8f78: 0000bb6b .long 0x0000bb6b + 8f7c: 20000538 .long 0x20000538 + 8f80: 447a0000 .long 0x447a0000 + 8f84: 0000bb7f .long 0x0000bb7f + 8f88: 00e4e1bf .long 0x00e4e1bf + 8f8c: 0000bbb3 .long 0x0000bbb3 + +Disassembly of section .text.HLW8110_ClearFlag: + +00008f90 : + + +//复位HLW8110前,清除各种数据 +void HLW8110_ClearFlag(void) +{ + g_Eng.EnergyA_reset_cnt = 0x00; + 8f90: 1064 lrw r3, 0x20000574 // 8fa0 + 8f92: 3200 movi r2, 0 + 8f94: a341 st.b r2, (r3, 0x1) + g_Eng.EnergyB_reset_cnt = 0x00; + 8f96: a342 st.b r2, (r3, 0x2) + g_Eng.U32_EnergyA_RegData_LastRecord = 0x00; + 8f98: 3200 movi r2, 0 + 8f9a: b357 st.w r2, (r3, 0x5c) + g_Eng.U32_EnergyB_RegData_LastRecord = 0x00; + 8f9c: b359 st.w r2, (r3, 0x64) + +} + 8f9e: 783c jmp r15 + 8fa0: 20000574 .long 0x20000574 + +Disassembly of section .text.HLW8110_RecvData_Processing: + +00008fa4 : + + +//接收处理 +U8_T HLW8110_RecvData_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 8fa4: 14d4 push r4-r7, r15 + 8fa6: 1423 subi r14, r14, 12 + //必定有1校验+1数据 + if((RecvLen < 0x02)||(RecvLen > 0x05) ) + 8fa8: 5967 subi r3, r1, 2 + 8faa: 74cd zexth r3, r3 + 8fac: 3b03 cmphsi r3, 4 +{ + 8fae: 6d03 mov r4, r0 + 8fb0: 6d87 mov r6, r1 + if((RecvLen < 0x02)||(RecvLen > 0x05) ) + 8fb2: 0c09 bf 0x8fc4 // 8fc4 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Len0 Err:%d",RecvLen); + 8fb4: 6c87 mov r2, r1 + 8fb6: 3000 movi r0, 0 + 8fb8: 0139 lrw r1, 0xbbbc // 92d0 + 8fba: e3fff605 bsr 0x7bc4 // 7bc4 + return 0x01; + 8fbe: 3001 movi r0, 1 + break; + } + + return 0x00; + +} + 8fc0: 1403 addi r14, r14, 12 + 8fc2: 1494 pop r4-r7, r15 + if(u_det.WR_flag == SEND_NONE) + 8fc4: 01fb lrw r7, 0x200004f0 // 92d4 + 8fc6: 3340 movi r3, 64 + 8fc8: 60dc addu r3, r7 + 8fca: 8340 ld.b r2, (r3, 0x0) + 8fcc: 3a40 cmpnei r2, 0 + 8fce: b861 st.w r3, (r14, 0x4) + 8fd0: 0807 bt 0x8fde // 8fde + Dbg_Println(DBG_BIT_SYS_STATUS,"Not Tack "); + 8fd2: 3000 movi r0, 0 + 8fd4: 013e lrw r1, 0xbbc8 // 92d8 + 8fd6: e3fff5f7 bsr 0x7bc4 // 7bc4 + return 0x02; + 8fda: 3002 movi r0, 2 + 8fdc: 07f2 br 0x8fc0 // 8fc0 + memset(u_det.RevBuff,0,REV_BUFFER_SIZE); //清零接收缓冲 + 8fde: 301e movi r0, 30 + 8fe0: 321e movi r2, 30 + 8fe2: 3100 movi r1, 0 + 8fe4: 601c addu r0, r7 + 8fe6: e3ffdcab bsr 0x493c // 493c <__memset_fast> + memcpy(u_det.RevBuff,u_det.SendBuff,2); //发送的帧头、地址 + 8fea: 8f60 ld.h r3, (r7, 0x0) + 8fec: af6f st.h r3, (r7, 0x1e) + 8fee: 754d zexth r5, r3 + u_det.RevLen += 2; + 8ff0: 3320 movi r3, 32 + 8ff2: 60dc addu r3, r7 + 8ff4: 3202 movi r2, 2 + 8ff6: a35d st.b r2, (r3, 0x1d) + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 8ff8: 4da8 lsri r5, r5, 8 + 8ffa: 327f movi r2, 127 + 8ffc: 6948 and r5, r2 + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); //接收的数据位校验位 + 8ffe: 6c53 mov r1, r4 + 9000: 6c9b mov r2, r6 + 9002: 6c0f mov r0, r3 + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + 9004: a7bf st.b r5, (r7, 0x1f) + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); //接收的数据位校验位 + 9006: e3ffdcdf bsr 0x49c4 // 49c4 <__memcpy_fast> + u_det.RevLen += RecvLen; + 900a: 803d ld.b r1, (r0, 0x1d) + 900c: 6058 addu r1, r6 + switch(u_det.RevBuff[1]) + 900e: 3229 movi r2, 41 + u_det.RevLen += RecvLen; + 9010: 7444 zextb r1, r1 + switch(u_det.RevBuff[1]) + 9012: 6548 cmphs r2, r5 + u_det.RevLen += RecvLen; + 9014: a03d st.b r1, (r0, 0x1d) + 9016: b802 st.w r0, (r14, 0x8) + switch(u_det.RevBuff[1]) + 9018: 0c31 bf 0x907a // 907a + 901a: 3328 movi r3, 40 + 901c: 64d4 cmphs r5, r3 + 901e: 0829 bt 0x9070 // 9070 + 9020: 3d53 cmpnei r5, 19 + 9022: 0c38 bf 0x9092 // 9092 + 9024: 3d13 cmphsi r5, 20 + 9026: 081f bt 0x9064 // 9064 + 9028: 3d02 cmphsi r5, 3 + 902a: 0c34 bf 0x9092 // 9092 + if(HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1) != RecvData[RecvLen-1]) + 902c: 2900 subi r1, 1 + 902e: 6190 addu r6, r4 + 9030: 7445 zexth r1, r1 + 9032: 0214 lrw r0, 0x2000050e // 92dc + 9034: 2e00 subi r6, 1 + 9036: e3fffb8f bsr 0x8754 // 8754 + 903a: 8660 ld.b r3, (r6, 0x0) + 903c: 64c2 cmpne r0, r3 + 903e: 6c83 mov r2, r0 + 9040: 0c37 bf 0x90ae // 90ae + Dbg_Println(DBG_BIT_SYS_STATUS,"CRC Err:%x,%x,CMD:%02x",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + 9042: 0237 lrw r1, 0xbbf9 // 92e0 + 9044: 3000 movi r0, 0 + 9046: b8a0 st.w r5, (r14, 0x0) + 9048: e3fff5be bsr 0x7bc4 // 7bc4 + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); + 904c: 9862 ld.w r3, (r14, 0x8) + 904e: 837d ld.b r3, (r3, 0x1d) + 9050: 025c lrw r2, 0x2000050e // 92dc + 9052: 3002 movi r0, 2 + 9054: 023b lrw r1, 0xbb0d // 92e4 + 9056: e3fff62b bsr 0x7cac // 7cac + u_det.RevNum = REV_ERR; + 905a: 9861 ld.w r3, (r14, 0x4) + 905c: 3202 movi r2, 2 + 905e: a342 st.b r2, (r3, 0x2) + return 0x04; + 9060: 3004 movi r0, 4 + 9062: 07af br 0x8fc0 // 8fc0 + switch(u_det.RevBuff[1]) + 9064: 3200 movi r2, 0 + 9066: 2a23 subi r2, 36 + 9068: 6094 addu r2, r5 + 906a: 3302 movi r3, 2 + 906c: 648c cmphs r3, r2 + 906e: 0fdf bf 0x902c // 902c + if(RecvLen != 0x04){ + 9070: 3e44 cmpnei r6, 4 + 9072: 0fdd bf 0x902c // 902c + Dbg_Println(DBG_BIT_SYS_STATUS,"Len 4 Err:%d",RecvLen); + 9074: 6c9b mov r2, r6 + 9076: 0322 lrw r1, 0xbbdf // 92e8 + 9078: 0411 br 0x909a // 909a + switch(u_det.RevBuff[1]) + 907a: 332c movi r3, 44 + 907c: 64d4 cmphs r5, r3 + 907e: 0fd7 bf 0x902c // 902c + 9080: 332d movi r3, 45 + 9082: 654c cmphs r3, r5 + 9084: 0810 bt 0x90a4 // 90a4 + 9086: 3200 movi r2, 0 + 9088: 2a6e subi r2, 111 + 908a: 6094 addu r2, r5 + 908c: 3308 movi r3, 8 + 908e: 648c cmphs r3, r2 + 9090: 0fce bf 0x902c // 902c + if(RecvLen != 0x03){ + 9092: 3e43 cmpnei r6, 3 + 9094: 0fcc bf 0x902c // 902c + Dbg_Println(DBG_BIT_SYS_STATUS,"Len 3 Err:%d",RecvLen); + 9096: 6c9b mov r2, r6 + 9098: 032a lrw r1, 0xbbd2 // 92ec + Dbg_Println(DBG_BIT_SYS_STATUS,"Len 4 Err:%d",RecvLen); + 909a: 3000 movi r0, 0 + 909c: e3fff594 bsr 0x7bc4 // 7bc4 + return 0x03; + 90a0: 3003 movi r0, 3 + 90a2: 078f br 0x8fc0 // 8fc0 + if(RecvLen != 0x05){ + 90a4: 3e45 cmpnei r6, 5 + 90a6: 0fc3 bf 0x902c // 902c + Dbg_Println(DBG_BIT_SYS_STATUS,"Len 5 Err:%d",RecvLen); + 90a8: 6c9b mov r2, r6 + 90aa: 032d lrw r1, 0xbbec // 92f0 + 90ac: 07f7 br 0x909a // 909a + u_det.RevNum = REV_OK; + 90ae: 9861 ld.w r3, (r14, 0x4) + 90b0: 3201 movi r2, 1 + 90b2: a342 st.b r2, (r3, 0x2) + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW_Recv CMD:%02X",u_det.RevBuff[1]); + 90b4: 3002 movi r0, 2 + 90b6: 6c97 mov r2, r5 + 90b8: 0330 lrw r1, 0xbc10 // 92f4 + 90ba: e3fff585 bsr 0x7bc4 // 7bc4 + switch(u_det.RevBuff[1]) + 90be: 877f ld.b r3, (r7, 0x1f) + 90c0: 322c movi r2, 44 + 90c2: 648e cmpne r3, r2 + 90c4: 0cea bf 0x9298 // 9298 + 90c6: 64c8 cmphs r2, r3 + 90c8: 0c27 bf 0x9116 // 9116 + 90ca: 3224 movi r2, 36 + 90cc: 648e cmpne r3, r2 + 90ce: 0ccd bf 0x9268 // 9268 + 90d0: 64c8 cmphs r2, r3 + 90d2: 0c0b bf 0x90e8 // 90e8 + 90d4: 3b41 cmpnei r3, 1 + 90d6: 0c78 bf 0x91c6 // 91c6 + 90d8: 3b40 cmpnei r3, 0 + 90da: 0c66 bf 0x91a6 // 91a6 + 90dc: 3b42 cmpnei r3, 2 + 90de: 0cb0 bf 0x923e // 923e + 90e0: 3b53 cmpnei r3, 19 + 90e2: 0c7b bf 0x91d8 // 91d8 + return 0x00; + 90e4: 3000 movi r0, 0 + 90e6: 076d br 0x8fc0 // 8fc0 + switch(u_det.RevBuff[1]) + 90e8: 3226 movi r2, 38 + 90ea: 648e cmpne r3, r2 + 90ec: 0cb2 bf 0x9250 // 9250 + 90ee: 648c cmphs r3, r2 + 90f0: 0ce3 bf 0x92b6 // 92b6 + 90f2: 3228 movi r2, 40 + 90f4: 648e cmpne r3, r2 + 90f6: 0cc5 bf 0x9280 // 9280 + 90f8: 3229 movi r2, 41 + 90fa: 648e cmpne r3, r2 + 90fc: 0bf4 bt 0x90e4 // 90e4 + g_CalFactor.U24_EnergyB_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + 90fe: 8400 ld.b r0, (r4, 0x0) + 9100: 8461 ld.b r3, (r4, 0x1) + 9102: 4368 lsli r3, r3, 8 + 9104: 4010 lsli r0, r0, 16 + 9106: 600c addu r0, r3 + 9108: 8462 ld.b r3, (r4, 0x2) + 910a: 600c addu r0, r3 + 910c: 137b lrw r3, 0x20000538 // 92f8 + 910e: b30d st.w r0, (r3, 0x34) + HLW8110_Convert_EnergyRegB_Value(g_CalFactor.U24_EnergyB_RegData); + 9110: e3fffec0 bsr 0x8e90 // 8e90 + 9114: 07e8 br 0x90e4 // 90e4 + switch(u_det.RevBuff[1]) + 9116: 3272 movi r2, 114 + 9118: 648e cmpne r3, r2 + 911a: 0c76 bf 0x9206 // 9206 + 911c: 64c8 cmphs r2, r3 + 911e: 0c25 bf 0x9168 // 9168 + 9120: 326f movi r2, 111 + 9122: 648e cmpne r3, r2 + 9124: 0c63 bf 0x91ea // 91ea + 9126: 64c8 cmphs r2, r3 + 9128: 0c13 bf 0x914e // 914e + 912a: 322d movi r2, 45 + 912c: 648e cmpne r3, r2 + 912e: 0bdb bt 0x90e4 // 90e4 + g_CalFactor.U32_PowerB_RegData = ( (RecvData[0]<<24) + (RecvData[1]<<16) + (RecvData[2]<<8) + RecvData[3] ); + 9130: 8400 ld.b r0, (r4, 0x0) + 9132: 8461 ld.b r3, (r4, 0x1) + 9134: 4370 lsli r3, r3, 16 + 9136: 4018 lsli r0, r0, 24 + 9138: 600c addu r0, r3 + 913a: 8462 ld.b r3, (r4, 0x2) + 913c: 4368 lsli r3, r3, 8 + 913e: 600c addu r0, r3 + 9140: 8463 ld.b r3, (r4, 0x3) + 9142: 600c addu r0, r3 + 9144: 136d lrw r3, 0x20000538 // 92f8 + 9146: b30b st.w r0, (r3, 0x2c) + HLW8110_Convert_PowerRegB_Value(g_CalFactor.U32_PowerB_RegData); + 9148: e3fffdde bsr 0x8d04 // 8d04 + 914c: 07cc br 0x90e4 // 90e4 + switch(u_det.RevBuff[1]) + 914e: 3270 movi r2, 112 + 9150: 648e cmpne r3, r2 + 9152: 0c53 bf 0x91f8 // 91f8 + 9154: 3271 movi r2, 113 + 9156: 648e cmpne r3, r2 + 9158: 0bc6 bt 0x90e4 // 90e4 + g_CalFactor.U16_RMSIBC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 915a: 8460 ld.b r3, (r4, 0x0) + 915c: 8441 ld.b r2, (r4, 0x1) + 915e: 4368 lsli r3, r3, 8 + 9160: 60c8 addu r3, r2 + 9162: 1346 lrw r2, 0x20000538 // 92f8 + 9164: aa61 st.h r3, (r2, 0x2) + 9166: 07bf br 0x90e4 // 90e4 + switch(u_det.RevBuff[1]) + 9168: 3275 movi r2, 117 + 916a: 648e cmpne r3, r2 + 916c: 0c5b bf 0x9222 // 9222 + 916e: 64c8 cmphs r2, r3 + 9170: 0c0e bf 0x918c // 918c + 9172: 3273 movi r2, 115 + 9174: 648e cmpne r3, r2 + 9176: 0c4f bf 0x9214 // 9214 + 9178: 3274 movi r2, 116 + 917a: 648e cmpne r3, r2 + 917c: 0bb4 bt 0x90e4 // 90e4 + g_CalFactor.U16_PowerPBC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 917e: 8460 ld.b r3, (r4, 0x0) + 9180: 8441 ld.b r2, (r4, 0x1) + 9182: 4368 lsli r3, r3, 8 + 9184: 60c8 addu r3, r2 + 9186: 125d lrw r2, 0x20000538 // 92f8 + 9188: aa64 st.h r3, (r2, 0x8) + 918a: 07ad br 0x90e4 // 90e4 + switch(u_det.RevBuff[1]) + 918c: 3276 movi r2, 118 + 918e: 648e cmpne r3, r2 + 9190: 0c50 bf 0x9230 // 9230 + 9192: 3277 movi r2, 119 + 9194: 648e cmpne r3, r2 + 9196: 0ba7 bt 0x90e4 // 90e4 + g_CalFactor.U16_EnergyBC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 9198: 8460 ld.b r3, (r4, 0x0) + 919a: 8441 ld.b r2, (r4, 0x1) + 919c: 4368 lsli r3, r3, 8 + 919e: 60c8 addu r3, r2 + 91a0: 1256 lrw r2, 0x20000538 // 92f8 + 91a2: aa67 st.h r3, (r2, 0xe) + 91a4: 07a0 br 0x90e4 // 90e4 + g_CalFactor.U16_Check_SysconReg_Data = ( (RecvData[0]<<8) + RecvData[1] ); + 91a6: 8460 ld.b r3, (r4, 0x0) + 91a8: 8441 ld.b r2, (r4, 0x1) + 91aa: 4368 lsli r3, r3, 8 + 91ac: 60c8 addu r3, r2 + 91ae: 74cd zexth r3, r3 + 91b0: 1252 lrw r2, 0x20000538 // 92f8 + 91b2: aa6a st.h r3, (r2, 0x14) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 91b4: 1252 lrw r2, 0xf04 // 92fc + 91b6: 648e cmpne r3, r2 + u_det.RevNum = REV_OK; //写寄存器后的回读校验 + 91b8: 9861 ld.w r3, (r14, 0x4) + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + 91ba: 0804 bt 0x91c2 // 91c2 + u_det.RevNum = REV_OK; //写寄存器后的回读校验 + 91bc: 3201 movi r2, 1 + u_det.RevNum = REV_ERR; + 91be: a342 st.b r2, (r3, 0x2) + 91c0: 0792 br 0x90e4 // 90e4 + 91c2: 3202 movi r2, 2 + 91c4: 07fd br 0x91be // 91be + g_CalFactor.U16_Check_Emucon1Reg_Data = ( (RecvData[0]<<8) + RecvData[1] ); + 91c6: 8460 ld.b r3, (r4, 0x0) + 91c8: 8441 ld.b r2, (r4, 0x1) + 91ca: 4368 lsli r3, r3, 8 + 91cc: 60c8 addu r3, r2 + 91ce: 74cd zexth r3, r3 + 91d0: 124a lrw r2, 0x20000538 // 92f8 + 91d2: aa6b st.h r3, (r2, 0x16) + if(g_CalFactor.U16_Check_Emucon1Reg_Data == EMUCON1_DEFAULT){ + 91d4: 124b lrw r2, 0x1103 // 9300 + 91d6: 07f0 br 0x91b6 // 91b6 + g_CalFactor.U16_Check_Emucon2Reg_Data = ( (RecvData[0]<<8) + RecvData[1] ); + 91d8: 8460 ld.b r3, (r4, 0x0) + 91da: 8441 ld.b r2, (r4, 0x1) + 91dc: 4368 lsli r3, r3, 8 + 91de: 60c8 addu r3, r2 + 91e0: 74cd zexth r3, r3 + 91e2: 1246 lrw r2, 0x20000538 // 92f8 + 91e4: aa6c st.h r3, (r2, 0x18) + if(g_CalFactor.U16_Check_Emucon2Reg_Data == EMUCON2_DEFAULT){ + 91e6: 1248 lrw r2, 0xfff // 9304 + 91e8: 07e7 br 0x91b6 // 91b6 + g_CalFactor.U16_CheckSUM_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 91ea: 8460 ld.b r3, (r4, 0x0) + 91ec: 8441 ld.b r2, (r4, 0x1) + 91ee: 4368 lsli r3, r3, 8 + 91f0: 60c8 addu r3, r2 + 91f2: 1242 lrw r2, 0x20000538 // 92f8 + 91f4: aa68 st.h r3, (r2, 0x10) + 91f6: 0777 br 0x90e4 // 90e4 + g_CalFactor.U16_RMSIAC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 91f8: 8460 ld.b r3, (r4, 0x0) + 91fa: 8441 ld.b r2, (r4, 0x1) + 91fc: 4368 lsli r3, r3, 8 + 91fe: 60c8 addu r3, r2 + 9200: 115e lrw r2, 0x20000538 // 92f8 + 9202: aa60 st.h r3, (r2, 0x0) + 9204: 0770 br 0x90e4 // 90e4 + g_CalFactor.U16_RMSUC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 9206: 8460 ld.b r3, (r4, 0x0) + 9208: 8441 ld.b r2, (r4, 0x1) + 920a: 4368 lsli r3, r3, 8 + 920c: 60c8 addu r3, r2 + 920e: 115b lrw r2, 0x20000538 // 92f8 + 9210: aa62 st.h r3, (r2, 0x4) + 9212: 0769 br 0x90e4 // 90e4 + g_CalFactor.U16_PowerPAC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 9214: 8460 ld.b r3, (r4, 0x0) + 9216: 8441 ld.b r2, (r4, 0x1) + 9218: 4368 lsli r3, r3, 8 + 921a: 60c8 addu r3, r2 + 921c: 1157 lrw r2, 0x20000538 // 92f8 + 921e: aa63 st.h r3, (r2, 0x6) + 9220: 0762 br 0x90e4 // 90e4 + g_CalFactor.U16_PowerSC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 9222: 8460 ld.b r3, (r4, 0x0) + 9224: 8441 ld.b r2, (r4, 0x1) + 9226: 4368 lsli r3, r3, 8 + 9228: 60c8 addu r3, r2 + 922a: 1154 lrw r2, 0x20000538 // 92f8 + 922c: aa65 st.h r3, (r2, 0xa) + 922e: 075b br 0x90e4 // 90e4 + g_CalFactor.U16_EnergyAC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 9230: 8460 ld.b r3, (r4, 0x0) + 9232: 8441 ld.b r2, (r4, 0x1) + 9234: 4368 lsli r3, r3, 8 + 9236: 60c8 addu r3, r2 + 9238: 1150 lrw r2, 0x20000538 // 92f8 + 923a: aa66 st.h r3, (r2, 0xc) + 923c: 0754 br 0x90e4 // 90e4 + g_CalFactor.U16_HFConst_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + 923e: 8460 ld.b r3, (r4, 0x0) + 9240: 8441 ld.b r2, (r4, 0x1) + 9242: 4368 lsli r3, r3, 8 + 9244: 60c8 addu r3, r2 + 9246: 114d lrw r2, 0x20000538 // 92f8 + 9248: b26e st.w r3, (r2, 0x38) + g_Eng.hfcount = g_CalFactor.U16_HFConst_RegData; + 924a: 1150 lrw r2, 0x20000574 // 9308 + 924c: aa70 st.h r3, (r2, 0x20) + 924e: 074b br 0x90e4 // 90e4 + g_CalFactor.U24_Voltage_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + 9250: 8400 ld.b r0, (r4, 0x0) + 9252: 8461 ld.b r3, (r4, 0x1) + 9254: 4368 lsli r3, r3, 8 + 9256: 4010 lsli r0, r0, 16 + 9258: 600c addu r0, r3 + 925a: 8462 ld.b r3, (r4, 0x2) + 925c: 600c addu r0, r3 + 925e: 1167 lrw r3, 0x20000538 // 92f8 + 9260: b307 st.w r0, (r3, 0x1c) + HLW8110_Convert_VoltageReg_Value(g_CalFactor.U24_Voltage_RegData); + 9262: e3fffc35 bsr 0x8acc // 8acc + 9266: 073f br 0x90e4 // 90e4 + g_CalFactor.U24_CurrentA_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + 9268: 8400 ld.b r0, (r4, 0x0) + 926a: 8461 ld.b r3, (r4, 0x1) + 926c: 4368 lsli r3, r3, 8 + 926e: 4010 lsli r0, r0, 16 + 9270: 600c addu r0, r3 + 9272: 8462 ld.b r3, (r4, 0x2) + 9274: 600c addu r0, r3 + 9276: 1161 lrw r3, 0x20000538 // 92f8 + 9278: b308 st.w r0, (r3, 0x20) + HLW8110_Convert_CurrentRegA_Value(g_CalFactor.U24_CurrentA_RegData); + 927a: e3fffc6b bsr 0x8b50 // 8b50 + 927e: 0733 br 0x90e4 // 90e4 + g_CalFactor.U24_EnergyA_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + 9280: 8400 ld.b r0, (r4, 0x0) + 9282: 8461 ld.b r3, (r4, 0x1) + 9284: 4368 lsli r3, r3, 8 + 9286: 4010 lsli r0, r0, 16 + 9288: 600c addu r0, r3 + 928a: 8462 ld.b r3, (r4, 0x2) + 928c: 600c addu r0, r3 + 928e: 107b lrw r3, 0x20000538 // 92f8 + 9290: b30c st.w r0, (r3, 0x30) + HLW8110_Convert_EnergyRegA_Value(g_CalFactor.U24_EnergyA_RegData); + 9292: e3fffd7f bsr 0x8d90 // 8d90 + 9296: 0727 br 0x90e4 // 90e4 + g_CalFactor.U32_PowerA_RegData = ( (RecvData[0]<<24) + (RecvData[1]<<16) + (RecvData[2]<<8) + RecvData[3] ); + 9298: 8400 ld.b r0, (r4, 0x0) + 929a: 8461 ld.b r3, (r4, 0x1) + 929c: 4370 lsli r3, r3, 16 + 929e: 4018 lsli r0, r0, 24 + 92a0: 600c addu r0, r3 + 92a2: 8462 ld.b r3, (r4, 0x2) + 92a4: 4368 lsli r3, r3, 8 + 92a6: 600c addu r0, r3 + 92a8: 8463 ld.b r3, (r4, 0x3) + 92aa: 600c addu r0, r3 + 92ac: 1073 lrw r3, 0x20000538 // 92f8 + 92ae: b30a st.w r0, (r3, 0x28) + HLW8110_Convert_PowerRegA_Value(g_CalFactor.U32_PowerA_RegData); + 92b0: e3fffce4 bsr 0x8c78 // 8c78 + 92b4: 0718 br 0x90e4 // 90e4 + g_CalFactor.U24_CurrentB_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + 92b6: 8400 ld.b r0, (r4, 0x0) + 92b8: 8461 ld.b r3, (r4, 0x1) + 92ba: 4368 lsli r3, r3, 8 + 92bc: 4010 lsli r0, r0, 16 + 92be: 600c addu r0, r3 + 92c0: 8462 ld.b r3, (r4, 0x2) + 92c2: 600c addu r0, r3 + 92c4: 106d lrw r3, 0x20000538 // 92f8 + 92c6: b309 st.w r0, (r3, 0x24) + HLW8110_Convert_CurrentRegB_Value(g_CalFactor.U24_CurrentB_RegData); + 92c8: e3fffc8e bsr 0x8be4 // 8be4 + 92cc: 070c br 0x90e4 // 90e4 + 92ce: 0000 bkpt + 92d0: 0000bbbc .long 0x0000bbbc + 92d4: 200004f0 .long 0x200004f0 + 92d8: 0000bbc8 .long 0x0000bbc8 + 92dc: 2000050e .long 0x2000050e + 92e0: 0000bbf9 .long 0x0000bbf9 + 92e4: 0000bb0d .long 0x0000bb0d + 92e8: 0000bbdf .long 0x0000bbdf + 92ec: 0000bbd2 .long 0x0000bbd2 + 92f0: 0000bbec .long 0x0000bbec + 92f4: 0000bc10 .long 0x0000bc10 + 92f8: 20000538 .long 0x20000538 + 92fc: 00000f04 .long 0x00000f04 + 9300: 00001103 .long 0x00001103 + 9304: 00000fff .long 0x00000fff + 9308: 20000574 .long 0x20000574 + +Disassembly of section .text.HLW8110_SysPara_Check: + +0000930c : +//系数寄存器内容校验 +U16_T HLW8110_SysPara_Check(HLW8110_REG *g_CC) +{ + U16_T CRC_p = 0x00; + + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 930c: 8841 ld.h r2, (r0, 0x2) + 930e: 8860 ld.h r3, (r0, 0x0) + 9310: 60c8 addu r3, r2 + 9312: 8842 ld.h r2, (r0, 0x4) + 9314: 60c8 addu r3, r2 + 9316: 8843 ld.h r2, (r0, 0x6) + 9318: 60c8 addu r3, r2 + g_CC->U16_PowerPAC_RegData + g_CC->U16_PowerPBC_RegData + g_CC->U16_PowerSC_RegData + + 931a: 8844 ld.h r2, (r0, 0x8) + 931c: 60c8 addu r3, r2 + 931e: 8845 ld.h r2, (r0, 0xa) + 9320: 60c8 addu r3, r2 + 9322: 8846 ld.h r2, (r0, 0xc) + 9324: 60c8 addu r3, r2 + g_CC->U16_EnergyAC_RegData + g_CC->U16_EnergyBC_RegData ); + 9326: 8847 ld.h r2, (r0, 0xe) + 9328: 60c8 addu r3, r2 + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + 932a: 3000 movi r0, 0 + 932c: 600e subu r0, r3 + CRC_p = (CRC_p&0xFFFF); + + return CRC_p; + 932e: 7401 zexth r0, r0 +} + 9330: 783c jmp r15 + +Disassembly of section .text.HLW8110_ReadSysPara: + +00009334 : + + + +//系统系数读取 +void HLW8110_ReadSysPara(void) +{ + 9334: 14d3 push r4-r6, r15 + static U32_T HLW8110_Reset_Tack = 0x00; + + switch(g_Eng.rWCh_Num) + 9336: 037c lrw r3, 0x20000574 // 9540 + 9338: 8304 ld.b r0, (r3, 0x4) + 933a: 380a cmphsi r0, 11 + 933c: 6d0f mov r4, r3 + 933e: 08fb bt 0x9534 // 9534 + 9340: e3ffd0de bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9344: 351c0f06 .long 0x351c0f06 + 9348: 8d77614b .long 0x8d77614b + 934c: 00cfb9a3 .long 0x00cfb9a3 + { + case 0x00: + HLW8110_Reset_Tack = SysTick_1ms; + 9350: 137d lrw r3, 0x200000c4 // 9544 + 9352: 9340 ld.w r2, (r3, 0x0) + 9354: 137d lrw r3, 0x2000016c // 9548 + 9356: b341 st.w r2, (r3, 0x4) + g_Eng.rWCh_Num = 0x01; + 9358: 3301 movi r3, 1 + 935a: a464 st.b r3, (r4, 0x4) + HLW8110_Reset(); + 935c: e3fffa4c bsr 0x87f4 // 87f4 + g_Eng.rWCh_Num = 0x00; + g_Eng.Tack_State = 0x01; + break; + } + +} + 9360: 1493 pop r4-r6, r15 + if(SysTick_1ms - HLW8110_Reset_Tack >= 1000) //复位HLW8110时间 + 9362: 1339 lrw r1, 0x200000c4 // 9544 + 9364: 1359 lrw r2, 0x2000016c // 9548 + 9366: 9160 ld.w r3, (r1, 0x0) + 9368: 9201 ld.w r0, (r2, 0x4) + 936a: 60c2 subu r3, r0 + 936c: 1318 lrw r0, 0x3e7 // 954c + 936e: 64c0 cmphs r0, r3 + 9370: 0bf8 bt 0x9360 // 9360 + HLW8110_Reset_Tack = SysTick_1ms; + 9372: 9160 ld.w r3, (r1, 0x0) + 9374: b261 st.w r3, (r2, 0x4) + g_Eng.rWCh_Num = 0x02; + 9376: 3302 movi r3, 2 + g_Eng.rWCh_Num = 0x03; + 9378: a464 st.b r3, (r4, 0x4) + break; + 937a: 07f3 br 0x9360 // 9360 + if(Get_SendState() == SEND_STATE_SUCC) + 937c: e3fffaf4 bsr 0x8964 // 8964 + 9380: 3841 cmpnei r0, 1 + 9382: 0803 bt 0x9388 // 9388 + g_Eng.rWCh_Num = 0x03; + 9384: 3303 movi r3, 3 + 9386: 07f9 br 0x9378 // 9378 + else if(Get_SendState() == SEND_STATE_FAIL) + 9388: e3fffaee bsr 0x8964 // 8964 + 938c: 3842 cmpnei r0, 2 + 938e: 0806 bt 0x939a // 939a + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IAC_ADDR ERR!"); + 9390: 1330 lrw r1, 0xbc22 // 9550 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 9392: 3000 movi r0, 0 + 9394: e3fff418 bsr 0x7bc4 // 7bc4 + break; + 9398: 07e4 br 0x9360 // 9360 + if(u_det.WR_flag == SEND_NONE) + 939a: 136f lrw r3, 0x20000530 // 9554 + 939c: 8360 ld.b r3, (r3, 0x0) + 939e: 3b40 cmpnei r3, 0 + 93a0: 0be0 bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IAC_ADDR,0,0); + 93a2: 3200 movi r2, 0 + 93a4: 3100 movi r1, 0 + 93a6: 3070 movi r0, 112 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 93a8: e3fffa4e bsr 0x8844 // 8844 + break; + 93ac: 07da br 0x9360 // 9360 + if(Get_SendState() == SEND_STATE_SUCC) + 93ae: e3fffadb bsr 0x8964 // 8964 + 93b2: 3841 cmpnei r0, 1 + 93b4: 0803 bt 0x93ba // 93ba + g_Eng.rWCh_Num = 0x04; + 93b6: 3304 movi r3, 4 + 93b8: 07e0 br 0x9378 // 9378 + else if(Get_SendState() == SEND_STATE_FAIL) + 93ba: e3fffad5 bsr 0x8964 // 8964 + 93be: 3842 cmpnei r0, 2 + 93c0: 0805 bt 0x93ca // 93ca + g_Eng.rWCh_Num = 0x02; + 93c2: 3302 movi r3, 2 + 93c4: a464 st.b r3, (r4, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + 93c6: 1325 lrw r1, 0xbc38 // 9558 + 93c8: 07e5 br 0x9392 // 9392 + if(u_det.WR_flag == SEND_NONE) + 93ca: 1363 lrw r3, 0x20000530 // 9554 + 93cc: 8360 ld.b r3, (r3, 0x0) + 93ce: 3b40 cmpnei r3, 0 + 93d0: 0bc8 bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IBC_ADDR,0,0); + 93d2: 3200 movi r2, 0 + 93d4: 3100 movi r1, 0 + 93d6: 3071 movi r0, 113 + 93d8: 07e8 br 0x93a8 // 93a8 + if(Get_SendState() == SEND_STATE_SUCC) + 93da: e3fffac5 bsr 0x8964 // 8964 + 93de: 3841 cmpnei r0, 1 + 93e0: 0803 bt 0x93e6 // 93e6 + g_Eng.rWCh_Num = 0x05; + 93e2: 3305 movi r3, 5 + 93e4: 07ca br 0x9378 // 9378 + else if(Get_SendState() == SEND_STATE_FAIL) + 93e6: e3fffabf bsr 0x8964 // 8964 + 93ea: 3842 cmpnei r0, 2 + 93ec: 0805 bt 0x93f6 // 93f6 + g_Eng.rWCh_Num = 0x02; + 93ee: 3302 movi r3, 2 + 93f0: a464 st.b r3, (r4, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_UC_ADDR ERR!"); + 93f2: 123b lrw r1, 0xbc4e // 955c + 93f4: 07cf br 0x9392 // 9392 + if(u_det.WR_flag == SEND_NONE) + 93f6: 1278 lrw r3, 0x20000530 // 9554 + 93f8: 8360 ld.b r3, (r3, 0x0) + 93fa: 3b40 cmpnei r3, 0 + 93fc: 0bb2 bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_RMS_UC_ADDR,0,0); + 93fe: 3200 movi r2, 0 + 9400: 3100 movi r1, 0 + 9402: 3072 movi r0, 114 + 9404: 07d2 br 0x93a8 // 93a8 + if(Get_SendState() == SEND_STATE_SUCC) + 9406: e3fffaaf bsr 0x8964 // 8964 + 940a: 3841 cmpnei r0, 1 + 940c: 0803 bt 0x9412 // 9412 + g_Eng.rWCh_Num = 0x06; + 940e: 3306 movi r3, 6 + 9410: 07b4 br 0x9378 // 9378 + else if(Get_SendState() == SEND_STATE_FAIL) + 9412: e3fffaa9 bsr 0x8964 // 8964 + 9416: 3842 cmpnei r0, 2 + 9418: 0805 bt 0x9422 // 9422 + g_Eng.rWCh_Num = 0x02; + 941a: 3302 movi r3, 2 + 941c: a464 st.b r3, (r4, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PAC_ADDR ERR!"); + 941e: 1231 lrw r1, 0xbc63 // 9560 + 9420: 07b9 br 0x9392 // 9392 + if(u_det.WR_flag == SEND_NONE) + 9422: 126d lrw r3, 0x20000530 // 9554 + 9424: 8360 ld.b r3, (r3, 0x0) + 9426: 3b40 cmpnei r3, 0 + 9428: 0b9c bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PAC_ADDR,0,0); + 942a: 3200 movi r2, 0 + 942c: 3100 movi r1, 0 + 942e: 3073 movi r0, 115 + 9430: 07bc br 0x93a8 // 93a8 + if(Get_SendState() == SEND_STATE_SUCC) + 9432: e3fffa99 bsr 0x8964 // 8964 + 9436: 3841 cmpnei r0, 1 + 9438: 0803 bt 0x943e // 943e + g_Eng.rWCh_Num = 0x07; + 943a: 3307 movi r3, 7 + 943c: 079e br 0x9378 // 9378 + else if(Get_SendState() == SEND_STATE_FAIL) + 943e: e3fffa93 bsr 0x8964 // 8964 + 9442: 3842 cmpnei r0, 2 + 9444: 0805 bt 0x944e // 944e + g_Eng.rWCh_Num = 0x02; + 9446: 3302 movi r3, 2 + 9448: a464 st.b r3, (r4, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PBC_ADDR ERR!"); + 944a: 1227 lrw r1, 0xbc7b // 9564 + 944c: 07a3 br 0x9392 // 9392 + if(u_det.WR_flag == SEND_NONE) + 944e: 1262 lrw r3, 0x20000530 // 9554 + 9450: 8360 ld.b r3, (r3, 0x0) + 9452: 3b40 cmpnei r3, 0 + 9454: 0b86 bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PBC_ADDR,0,0); + 9456: 3200 movi r2, 0 + 9458: 3100 movi r1, 0 + 945a: 3074 movi r0, 116 + 945c: 07a6 br 0x93a8 // 93a8 + if(Get_SendState() == SEND_STATE_SUCC) + 945e: e3fffa83 bsr 0x8964 // 8964 + 9462: 3841 cmpnei r0, 1 + 9464: 0803 bt 0x946a // 946a + g_Eng.rWCh_Num = 0x08; + 9466: 3308 movi r3, 8 + 9468: 0788 br 0x9378 // 9378 + else if(Get_SendState() == SEND_STATE_FAIL) + 946a: e3fffa7d bsr 0x8964 // 8964 + 946e: 3842 cmpnei r0, 2 + 9470: 0805 bt 0x947a // 947a + g_Eng.rWCh_Num = 0x02; + 9472: 3302 movi r3, 2 + 9474: a464 st.b r3, (r4, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_SC_ADDR ERR!"); + 9476: 113d lrw r1, 0xbc93 // 9568 + 9478: 078d br 0x9392 // 9392 + if(u_det.WR_flag == SEND_NONE) + 947a: 1177 lrw r3, 0x20000530 // 9554 + 947c: 8360 ld.b r3, (r3, 0x0) + 947e: 3b40 cmpnei r3, 0 + 9480: 0b70 bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_SC_ADDR,0,0); + 9482: 3200 movi r2, 0 + 9484: 3100 movi r1, 0 + 9486: 3075 movi r0, 117 + 9488: 0790 br 0x93a8 // 93a8 + if(Get_SendState() == SEND_STATE_SUCC) + 948a: e3fffa6d bsr 0x8964 // 8964 + 948e: 3841 cmpnei r0, 1 + 9490: 0803 bt 0x9496 // 9496 + g_Eng.rWCh_Num = 0x09; + 9492: 3309 movi r3, 9 + 9494: 0772 br 0x9378 // 9378 + else if(Get_SendState() == SEND_STATE_FAIL) + 9496: e3fffa67 bsr 0x8964 // 8964 + 949a: 3842 cmpnei r0, 2 + 949c: 0805 bt 0x94a6 // 94a6 + g_Eng.rWCh_Num = 0x02; + 949e: 3302 movi r3, 2 + 94a0: a464 st.b r3, (r4, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_AC_ADDR ERR!"); + 94a2: 1133 lrw r1, 0xbcaa // 956c + 94a4: 0777 br 0x9392 // 9392 + if(u_det.WR_flag == SEND_NONE) + 94a6: 116c lrw r3, 0x20000530 // 9554 + 94a8: 8360 ld.b r3, (r3, 0x0) + 94aa: 3b40 cmpnei r3, 0 + 94ac: 0b5a bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_AC_ADDR,0,0); + 94ae: 3200 movi r2, 0 + 94b0: 3100 movi r1, 0 + 94b2: 3076 movi r0, 118 + 94b4: 077a br 0x93a8 // 93a8 + if(Get_SendState() == SEND_STATE_SUCC) + 94b6: e3fffa57 bsr 0x8964 // 8964 + 94ba: 3841 cmpnei r0, 1 + 94bc: 0803 bt 0x94c2 // 94c2 + g_Eng.rWCh_Num = 0x0A; + 94be: 330a movi r3, 10 + 94c0: 075c br 0x9378 // 9378 + else if(Get_SendState() == SEND_STATE_FAIL) + 94c2: e3fffa51 bsr 0x8964 // 8964 + 94c6: 3842 cmpnei r0, 2 + 94c8: 0805 bt 0x94d2 // 94d2 + g_Eng.rWCh_Num = 0x02; + 94ca: 3302 movi r3, 2 + 94cc: a464 st.b r3, (r4, 0x4) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_BC_ADDR ERR!"); + 94ce: 1129 lrw r1, 0xbcc2 // 9570 + 94d0: 0761 br 0x9392 // 9392 + if(u_det.WR_flag == SEND_NONE) + 94d2: 1161 lrw r3, 0x20000530 // 9554 + 94d4: 8360 ld.b r3, (r3, 0x0) + 94d6: 3b40 cmpnei r3, 0 + 94d8: 0b44 bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_BC_ADDR,0,0); + 94da: 3200 movi r2, 0 + 94dc: 3100 movi r1, 0 + 94de: 3077 movi r0, 119 + 94e0: 0764 br 0x93a8 // 93a8 + if(Get_SendState() == SEND_STATE_SUCC) + 94e2: e3fffa41 bsr 0x8964 // 8964 + 94e6: 3841 cmpnei r0, 1 + 94e8: 0818 bt 0x9518 // 9518 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 94ea: 11a3 lrw r5, 0x20000538 // 9574 + 94ec: 6c17 mov r0, r5 + 94ee: e3ffff0f bsr 0x930c // 930c + 94f2: 8dc8 ld.h r6, (r5, 0x10) + g_Eng.rWCh_Num = 0x00; + 94f4: 3300 movi r3, 0 + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 94f6: 641a cmpne r6, r0 + g_Eng.rWCh_Num = 0x00; + 94f8: a464 st.b r3, (r4, 0x4) + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + 94fa: 0805 bt 0x9504 // 9504 + g_Eng.Tack_State = 0x02; + 94fc: 3302 movi r3, 2 + 94fe: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK SUCC!"); + 9500: 103e lrw r1, 0xbcda // 9578 + 9502: 0748 br 0x9392 // 9392 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK ERR:%x,%x",g_CalFactor.U16_CheckSUM_RegData,HLW8110_SysPara_Check(&g_CalFactor)); + 9504: 6c17 mov r0, r5 + 9506: e3ffff03 bsr 0x930c // 930c + 950a: 6cc3 mov r3, r0 + 950c: 6c9b mov r2, r6 + 950e: 103c lrw r1, 0xbcea // 957c + 9510: 3000 movi r0, 0 + 9512: e3fff359 bsr 0x7bc4 // 7bc4 + break; + 9516: 0725 br 0x9360 // 9360 + else if(Get_SendState() == SEND_STATE_FAIL) + 9518: e3fffa26 bsr 0x8964 // 8964 + 951c: 3842 cmpnei r0, 2 + 951e: 0803 bt 0x9524 // 9524 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + 9520: 1038 lrw r1, 0xbcfe // 9580 + 9522: 0738 br 0x9392 // 9392 + if(u_det.WR_flag == SEND_NONE) + 9524: 106c lrw r3, 0x20000530 // 9554 + 9526: 8360 ld.b r3, (r3, 0x0) + 9528: 3b40 cmpnei r3, 0 + 952a: 0b1b bt 0x9360 // 9360 + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + 952c: 3200 movi r2, 0 + 952e: 3100 movi r1, 0 + 9530: 306f movi r0, 111 + 9532: 073b br 0x93a8 // 93a8 + g_Eng.rWCh_Num = 0x00; + 9534: 3200 movi r2, 0 + 9536: a344 st.b r2, (r3, 0x4) + g_Eng.Tack_State = 0x01; + 9538: 3201 movi r2, 1 + 953a: a343 st.b r2, (r3, 0x3) +} + 953c: 0712 br 0x9360 // 9360 + 953e: 0000 bkpt + 9540: 20000574 .long 0x20000574 + 9544: 200000c4 .long 0x200000c4 + 9548: 2000016c .long 0x2000016c + 954c: 000003e7 .long 0x000003e7 + 9550: 0000bc22 .long 0x0000bc22 + 9554: 20000530 .long 0x20000530 + 9558: 0000bc38 .long 0x0000bc38 + 955c: 0000bc4e .long 0x0000bc4e + 9560: 0000bc63 .long 0x0000bc63 + 9564: 0000bc7b .long 0x0000bc7b + 9568: 0000bc93 .long 0x0000bc93 + 956c: 0000bcaa .long 0x0000bcaa + 9570: 0000bcc2 .long 0x0000bcc2 + 9574: 20000538 .long 0x20000538 + 9578: 0000bcda .long 0x0000bcda + 957c: 0000bcea .long 0x0000bcea + 9580: 0000bcfe .long 0x0000bcfe + +Disassembly of section .text.HLW8110_ReadSysCtrlPara: + +00009584 : + +//写系统控制、计量控制寄存器 +void HLW8110_ReadSysCtrlPara(void) +{ + 9584: 14d1 push r4, r15 + switch(g_Eng.rWSysCtrl) + 9586: 1177 lrw r3, 0x20000574 // 9660 + 9588: 8305 ld.b r0, (r3, 0x5) + 958a: 3803 cmphsi r0, 4 + 958c: 6d0f mov r4, r3 + 958e: 0864 bt 0x9656 // 9656 + 9590: e3ffcfb6 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9594: 48321c02 .long 0x48321c02 + { + case 0x00: //写系统控制寄存器 + if(Get_SendState() == SEND_STATE_SUCC) + 9598: e3fff9e6 bsr 0x8964 // 8964 + 959c: 3841 cmpnei r0, 1 + 959e: 0804 bt 0x95a6 // 95a6 + { + g_Eng.rWSysCtrl = 0x01; + 95a0: 3301 movi r3, 1 + } + break; + case 0x01: //写计量控制寄存器1 + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWSysCtrl = 0x02; + 95a2: a465 st.b r3, (r4, 0x5) + default: + g_Eng.rWSysCtrl = 0x00; + g_Eng.Tack_State = 0x02; + break; + } +} + 95a4: 1491 pop r4, r15 + else if(Get_SendState() == SEND_STATE_FAIL) + 95a6: e3fff9df bsr 0x8964 // 8964 + 95aa: 3842 cmpnei r0, 2 + 95ac: 0806 bt 0x95b8 // 95b8 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_SYSCON_ADDR ERR!"); + 95ae: 112e lrw r1, 0xbd15 // 9664 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 95b0: 3000 movi r0, 0 + 95b2: e3fff309 bsr 0x7bc4 // 7bc4 + break; + 95b6: 07f7 br 0x95a4 // 95a4 + if(u_det.WR_flag == SEND_NONE) + 95b8: 116c lrw r3, 0x20000530 // 9668 + 95ba: 8360 ld.b r3, (r3, 0x0) + 95bc: 3b40 cmpnei r3, 0 + 95be: 0bf3 bt 0x95a4 // 95a4 + BLV_HLW8110_RWCMD_Packaging(REG_SYSCON_ADDR,2,SYSCON_DEFAULT); + 95c0: 114b lrw r2, 0xf04 // 966c + 95c2: 3102 movi r1, 2 + 95c4: 3000 movi r0, 0 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 95c6: e3fff93f bsr 0x8844 // 8844 + break; + 95ca: 07ed br 0x95a4 // 95a4 + if(Get_SendState() == SEND_STATE_SUCC) + 95cc: e3fff9cc bsr 0x8964 // 8964 + 95d0: 3841 cmpnei r0, 1 + 95d2: 0803 bt 0x95d8 // 95d8 + g_Eng.rWSysCtrl = 0x02; + 95d4: 3302 movi r3, 2 + 95d6: 07e6 br 0x95a2 // 95a2 + else if(Get_SendState() == SEND_STATE_FAIL) + 95d8: e3fff9c6 bsr 0x8964 // 8964 + 95dc: 3842 cmpnei r0, 2 + 95de: 0805 bt 0x95e8 // 95e8 + g_Eng.rWSysCtrl = 0x00; + 95e0: 3300 movi r3, 0 + 95e2: a465 st.b r3, (r4, 0x5) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON1_ADDR ERR!"); + 95e4: 1123 lrw r1, 0xbd2a // 9670 + 95e6: 07e5 br 0x95b0 // 95b0 + if(u_det.WR_flag == SEND_NONE) + 95e8: 1160 lrw r3, 0x20000530 // 9668 + 95ea: 8360 ld.b r3, (r3, 0x0) + 95ec: 3b40 cmpnei r3, 0 + 95ee: 0bdb bt 0x95a4 // 95a4 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON1_ADDR,2,EMUCON1_DEFAULT); + 95f0: 1141 lrw r2, 0x1103 // 9674 + 95f2: 3102 movi r1, 2 + 95f4: 3001 movi r0, 1 + 95f6: 07e8 br 0x95c6 // 95c6 + if(Get_SendState() == SEND_STATE_SUCC) + 95f8: e3fff9b6 bsr 0x8964 // 8964 + 95fc: 3841 cmpnei r0, 1 + 95fe: 0803 bt 0x9604 // 9604 + g_Eng.rWSysCtrl = 0x03; + 9600: 3303 movi r3, 3 + 9602: 07d0 br 0x95a2 // 95a2 + else if(Get_SendState() == SEND_STATE_FAIL) + 9604: e3fff9b0 bsr 0x8964 // 8964 + 9608: 3842 cmpnei r0, 2 + 960a: 0805 bt 0x9614 // 9614 + g_Eng.rWSysCtrl = 0x00; + 960c: 3300 movi r3, 0 + 960e: a465 st.b r3, (r4, 0x5) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + 9610: 103a lrw r1, 0xbd40 // 9678 + 9612: 07cf br 0x95b0 // 95b0 + if(u_det.WR_flag == SEND_NONE) + 9614: 1075 lrw r3, 0x20000530 // 9668 + 9616: 8360 ld.b r3, (r3, 0x0) + 9618: 3b40 cmpnei r3, 0 + 961a: 0bc5 bt 0x95a4 // 95a4 + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + 961c: 1058 lrw r2, 0xfff // 967c + 961e: 3102 movi r1, 2 + 9620: 3013 movi r0, 19 + 9622: 07d2 br 0x95c6 // 95c6 + if(Get_SendState() == SEND_STATE_SUCC) + 9624: e3fff9a0 bsr 0x8964 // 8964 + 9628: 3841 cmpnei r0, 1 + 962a: 0806 bt 0x9636 // 9636 + g_Eng.rWSysCtrl = 0x00; + 962c: 3300 movi r3, 0 + 962e: a465 st.b r3, (r4, 0x5) + g_Eng.Tack_State = 0x03; + 9630: 3303 movi r3, 3 + 9632: a463 st.b r3, (r4, 0x3) + break; + 9634: 07b8 br 0x95a4 // 95a4 + else if(Get_SendState() == SEND_STATE_FAIL) + 9636: e3fff997 bsr 0x8964 // 8964 + 963a: 3842 cmpnei r0, 2 + 963c: 0805 bt 0x9646 // 9646 + g_Eng.rWSysCtrl = 0x00; + 963e: 3300 movi r3, 0 + 9640: a465 st.b r3, (r4, 0x5) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + 9642: 1030 lrw r1, 0xbd56 // 9680 + 9644: 07b6 br 0x95b0 // 95b0 + if(u_det.WR_flag == SEND_NONE) + 9646: 1069 lrw r3, 0x20000530 // 9668 + 9648: 8360 ld.b r3, (r3, 0x0) + 964a: 3b40 cmpnei r3, 0 + 964c: 0bac bt 0x95a4 // 95a4 + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + 964e: 3200 movi r2, 0 + 9650: 3100 movi r1, 0 + 9652: 3002 movi r0, 2 + 9654: 07b9 br 0x95c6 // 95c6 + g_Eng.rWSysCtrl = 0x00; + 9656: 3200 movi r2, 0 + 9658: a345 st.b r2, (r3, 0x5) + g_Eng.Tack_State = 0x02; + 965a: 3202 movi r2, 2 + 965c: a343 st.b r2, (r3, 0x3) +} + 965e: 07a3 br 0x95a4 // 95a4 + 9660: 20000574 .long 0x20000574 + 9664: 0000bd15 .long 0x0000bd15 + 9668: 20000530 .long 0x20000530 + 966c: 00000f04 .long 0x00000f04 + 9670: 0000bd2a .long 0x0000bd2a + 9674: 00001103 .long 0x00001103 + 9678: 0000bd40 .long 0x0000bd40 + 967c: 00000fff .long 0x00000fff + 9680: 0000bd56 .long 0x0000bd56 + +Disassembly of section .text.GetEnergy_Para: + +00009684 : + +} + +//打印采集数据 +void GetEnergy_Para(void) +{ + 9684: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_V :%d /10mV",g_Eng.det_V); + 9686: 1095 lrw r4, 0x20000574 // 96d8 + 9688: 1035 lrw r1, 0xbd6c // 96dc + 968a: 3000 movi r0, 0 + 968c: 9449 ld.w r2, (r4, 0x24) + 968e: e3fff29b bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_IA:%d, IB:%d /10mA",g_Eng.det_ectA,g_Eng.det_ectB); + 9692: 946d ld.w r3, (r4, 0x34) + 9694: 944a ld.w r2, (r4, 0x28) + 9696: 3000 movi r0, 0 + 9698: 1032 lrw r1, 0xbd7c // 96e0 + 969a: e3fff295 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_PA:%d, PB:%d /mW",g_Eng.det_powA,g_Eng.det_powB); + 969e: 946f ld.w r3, (r4, 0x3c) + 96a0: 944c ld.w r2, (r4, 0x30) + 96a2: 3000 movi r0, 0 + 96a4: 1030 lrw r1, 0xbd93 // 96e4 + 96a6: e3fff28f bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_EA:%d, EB:%d /W/h",(g_Eng.Total_Eng - g_Eng.LastPhase_Eng),(g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B) ); + 96aa: 9454 ld.w r2, (r4, 0x50) + 96ac: 9473 ld.w r3, (r4, 0x4c) + 96ae: 9431 ld.w r1, (r4, 0x44) + 96b0: 60ca subu r3, r2 + 96b2: 9450 ld.w r2, (r4, 0x40) + 96b4: 6086 subu r2, r1 + 96b6: 3000 movi r0, 0 + 96b8: 102c lrw r1, 0xbda8 // 96e8 + 96ba: e3fff285 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLWTEA:%d, TEB:%d /W/h",g_Eng.Total_Eng,g_Eng.Total_Eng_B); + 96be: 9473 ld.w r3, (r4, 0x4c) + 96c0: 9450 ld.w r2, (r4, 0x40) + 96c2: 3000 movi r0, 0 + 96c4: 102a lrw r1, 0xbdbe // 96ec + 96c6: e3fff27f bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_HF:%d",g_Eng.hfcount); + 96ca: 8c50 ld.h r2, (r4, 0x20) + 96cc: 1029 lrw r1, 0xbdd5 // 96f0 + 96ce: 3000 movi r0, 0 + 96d0: e3fff27a bsr 0x7bc4 // 7bc4 +} + 96d4: 1491 pop r4, r15 + 96d6: 0000 bkpt + 96d8: 20000574 .long 0x20000574 + 96dc: 0000bd6c .long 0x0000bd6c + 96e0: 0000bd7c .long 0x0000bd7c + 96e4: 0000bd93 .long 0x0000bd93 + 96e8: 0000bda8 .long 0x0000bda8 + 96ec: 0000bdbe .long 0x0000bdbe + 96f0: 0000bdd5 .long 0x0000bdd5 + +Disassembly of section .text.HLW8110_ReadValue: + +000096f4 : +{ + 96f4: 14d1 push r4, r15 + switch(g_Eng.rDValue_State) + 96f6: 1384 lrw r4, 0x20000574 // 9884 + 96f8: 8406 ld.b r0, (r4, 0x6) + 96fa: 3807 cmphsi r0, 8 + 96fc: 0818 bt 0x972c // 972c + 96fe: e3ffceff bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9702: 1604 .short 0x1604 + 9704: 7c664c32 .long 0x7c664c32 + 9708: a892 .short 0xa892 + if(SysTick_1ms - Wait_ReadValue_Tisk >= g_Eng.Collect_Tim) //S读取一次 + 970a: 1340 lrw r2, 0x200000c4 // 9888 + 970c: 1320 lrw r1, 0x2000016c // 988c + 970e: 9260 ld.w r3, (r2, 0x0) + 9710: 9102 ld.w r0, (r1, 0x8) + 9712: 60c2 subu r3, r0 + 9714: 121f lrw r0, 0x200005f4 // 9890 + 9716: 9001 ld.w r0, (r0, 0x4) + 9718: 640c cmphs r3, r0 + 971a: 0c09 bf 0x972c // 972c + Wait_ReadValue_Tisk = SysTick_1ms; + 971c: 9240 ld.w r2, (r2, 0x0) + 971e: b142 st.w r2, (r1, 0x8) + g_Eng.rDValue_State = READ_U; + 9720: 3301 movi r3, 1 + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 9722: 123d lrw r1, 0xbddf // 9894 + 9724: 3000 movi r0, 0 + g_Eng.rDValue_State = READ_U; + 9726: a466 st.b r3, (r4, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + 9728: e3fff24e bsr 0x7bc4 // 7bc4 +} + 972c: 1491 pop r4, r15 + if(Get_SendState() == SEND_STATE_SUCC) + 972e: e3fff91b bsr 0x8964 // 8964 + 9732: 3841 cmpnei r0, 1 + 9734: 0804 bt 0x973c // 973c + g_Eng.rDValue_State = READ_IA; + 9736: 3302 movi r3, 2 + g_Eng.rDValue_State = READ_IB; + 9738: a466 st.b r3, (r4, 0x6) + break; + 973a: 07f9 br 0x972c // 972c + else if(Get_SendState() == SEND_STATE_FAIL) + 973c: e3fff914 bsr 0x8964 // 8964 + 9740: 3842 cmpnei r0, 2 + 9742: 0808 bt 0x9752 // 9752 + g_Eng.rDValue_State = READ_IDLE; + 9744: 3300 movi r3, 0 + 9746: a466 st.b r3, (r4, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSU_ADDR ERR!"); + 9748: 1234 lrw r1, 0xbdec // 9898 + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PB_ADDR ERR!"); + 974a: 3000 movi r0, 0 + 974c: e3fff23c bsr 0x7bc4 // 7bc4 + break; + 9750: 07ee br 0x972c // 972c + if(u_det.WR_flag == SEND_NONE) + 9752: 1273 lrw r3, 0x20000530 // 989c + 9754: 8360 ld.b r3, (r3, 0x0) + 9756: 3b40 cmpnei r3, 0 + 9758: 0bea bt 0x972c // 972c + BLV_HLW8110_RWCMD_Packaging(REG_RMSU_ADDR,0,0); + 975a: 3200 movi r2, 0 + 975c: 3100 movi r1, 0 + 975e: 3026 movi r0, 38 + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PB_ADDR,0,0); + 9760: e3fff872 bsr 0x8844 // 8844 +} + 9764: 07e4 br 0x972c // 972c + Wait_ReadValue_Tisk = SysTick_1ms; + 9766: 1269 lrw r3, 0x200000c4 // 9888 + 9768: 9340 ld.w r2, (r3, 0x0) + 976a: 1269 lrw r3, 0x2000016c // 988c + 976c: b342 st.w r2, (r3, 0x8) + if(Get_SendState() == SEND_STATE_SUCC) + 976e: e3fff8fb bsr 0x8964 // 8964 + 9772: 3841 cmpnei r0, 1 + 9774: 0803 bt 0x977a // 977a + g_Eng.rDValue_State = READ_IB; + 9776: 3303 movi r3, 3 + 9778: 07e0 br 0x9738 // 9738 + else if(Get_SendState() == SEND_STATE_FAIL) + 977a: e3fff8f5 bsr 0x8964 // 8964 + 977e: 3842 cmpnei r0, 2 + 9780: 0805 bt 0x978a // 978a + g_Eng.rDValue_State = READ_IDLE; + 9782: 3300 movi r3, 0 + 9784: a466 st.b r3, (r4, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIA_ADDR ERR!"); + 9786: 1227 lrw r1, 0xbdff // 98a0 + 9788: 07e1 br 0x974a // 974a + if(u_det.WR_flag == SEND_NONE) + 978a: 1265 lrw r3, 0x20000530 // 989c + 978c: 8360 ld.b r3, (r3, 0x0) + 978e: 3b40 cmpnei r3, 0 + 9790: 0bce bt 0x972c // 972c + BLV_HLW8110_RWCMD_Packaging(REG_RMSIA_ADDR,0,0); + 9792: 3200 movi r2, 0 + 9794: 3100 movi r1, 0 + 9796: 3024 movi r0, 36 + 9798: 07e4 br 0x9760 // 9760 + Wait_ReadValue_Tisk = SysTick_1ms; + 979a: 117c lrw r3, 0x200000c4 // 9888 + 979c: 9340 ld.w r2, (r3, 0x0) + 979e: 117c lrw r3, 0x2000016c // 988c + 97a0: b342 st.w r2, (r3, 0x8) + if(Get_SendState() == SEND_STATE_SUCC) + 97a2: e3fff8e1 bsr 0x8964 // 8964 + 97a6: 3841 cmpnei r0, 1 + 97a8: 0803 bt 0x97ae // 97ae + g_Eng.rDValue_State = READ_EA; + 97aa: 3304 movi r3, 4 + 97ac: 07c6 br 0x9738 // 9738 + else if(Get_SendState() == SEND_STATE_FAIL) + 97ae: e3fff8db bsr 0x8964 // 8964 + 97b2: 3842 cmpnei r0, 2 + 97b4: 0805 bt 0x97be // 97be + g_Eng.rDValue_State = READ_IDLE; + 97b6: 3300 movi r3, 0 + 97b8: a466 st.b r3, (r4, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIB_ADDR ERR!"); + 97ba: 113b lrw r1, 0xbe13 // 98a4 + 97bc: 07c7 br 0x974a // 974a + if(u_det.WR_flag == SEND_NONE) + 97be: 1178 lrw r3, 0x20000530 // 989c + 97c0: 8360 ld.b r3, (r3, 0x0) + 97c2: 3b40 cmpnei r3, 0 + 97c4: 0bb4 bt 0x972c // 972c + BLV_HLW8110_RWCMD_Packaging(REG_RMSIB_ADDR,0,0); + 97c6: 3200 movi r2, 0 + 97c8: 3100 movi r1, 0 + 97ca: 3025 movi r0, 37 + 97cc: 07ca br 0x9760 // 9760 + if(Get_SendState() == SEND_STATE_SUCC) + 97ce: e3fff8cb bsr 0x8964 // 8964 + 97d2: 3841 cmpnei r0, 1 + 97d4: 0803 bt 0x97da // 97da + g_Eng.rDValue_State = READ_EB; + 97d6: 3305 movi r3, 5 + 97d8: 07b0 br 0x9738 // 9738 + else if(Get_SendState() == SEND_STATE_FAIL) + 97da: e3fff8c5 bsr 0x8964 // 8964 + 97de: 3842 cmpnei r0, 2 + 97e0: 0805 bt 0x97ea // 97ea + g_Eng.rDValue_State = READ_IDLE; + 97e2: 3300 movi r3, 0 + 97e4: a466 st.b r3, (r4, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PA_ADDR ERR!"); + 97e6: 1131 lrw r1, 0xbe27 // 98a8 + 97e8: 07b1 br 0x974a // 974a + if(u_det.WR_flag == SEND_NONE) + 97ea: 116d lrw r3, 0x20000530 // 989c + 97ec: 8360 ld.b r3, (r3, 0x0) + 97ee: 3b40 cmpnei r3, 0 + 97f0: 0b9e bt 0x972c // 972c + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PA_ADDR,0,0); + 97f2: 3200 movi r2, 0 + 97f4: 3100 movi r1, 0 + 97f6: 3028 movi r0, 40 + 97f8: 07b4 br 0x9760 // 9760 + if(Get_SendState() == SEND_STATE_SUCC) + 97fa: e3fff8b5 bsr 0x8964 // 8964 + 97fe: 3841 cmpnei r0, 1 + 9800: 0803 bt 0x9806 // 9806 + g_Eng.rDValue_State = READ_PA; + 9802: 3306 movi r3, 6 + 9804: 079a br 0x9738 // 9738 + else if(Get_SendState() == SEND_STATE_FAIL) + 9806: e3fff8af bsr 0x8964 // 8964 + 980a: 3842 cmpnei r0, 2 + 980c: 0805 bt 0x9816 // 9816 + g_Eng.rDValue_State = READ_IDLE; + 980e: 3300 movi r3, 0 + 9810: a466 st.b r3, (r4, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PB_ADDR ERR!"); + 9812: 1127 lrw r1, 0xbe3f // 98ac + 9814: 079b br 0x974a // 974a + if(u_det.WR_flag == SEND_NONE) + 9816: 1162 lrw r3, 0x20000530 // 989c + 9818: 8360 ld.b r3, (r3, 0x0) + 981a: 3b40 cmpnei r3, 0 + 981c: 0b88 bt 0x972c // 972c + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PB_ADDR,0,0); + 981e: 3200 movi r2, 0 + 9820: 3100 movi r1, 0 + 9822: 3029 movi r0, 41 + 9824: 079e br 0x9760 // 9760 + if(Get_SendState() == SEND_STATE_SUCC) + 9826: e3fff89f bsr 0x8964 // 8964 + 982a: 3841 cmpnei r0, 1 + 982c: 0803 bt 0x9832 // 9832 + g_Eng.rDValue_State = READ_PB; + 982e: 3307 movi r3, 7 + 9830: 0784 br 0x9738 // 9738 + else if(Get_SendState() == SEND_STATE_FAIL) + 9832: e3fff899 bsr 0x8964 // 8964 + 9836: 3842 cmpnei r0, 2 + 9838: 0805 bt 0x9842 // 9842 + g_Eng.rDValue_State = READ_IDLE; + 983a: 3300 movi r3, 0 + 983c: a466 st.b r3, (r4, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PA_ADDR ERR!"); + 983e: 103d lrw r1, 0xbe57 // 98b0 + 9840: 0785 br 0x974a // 974a + if(u_det.WR_flag == SEND_NONE) + 9842: 1077 lrw r3, 0x20000530 // 989c + 9844: 8360 ld.b r3, (r3, 0x0) + 9846: 3b40 cmpnei r3, 0 + 9848: 0b72 bt 0x972c // 972c + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PA_ADDR,0,0); + 984a: 3200 movi r2, 0 + 984c: 3100 movi r1, 0 + 984e: 302c movi r0, 44 + 9850: 0788 br 0x9760 // 9760 + if(Get_SendState() == SEND_STATE_SUCC) + 9852: e3fff889 bsr 0x8964 // 8964 + 9856: 3841 cmpnei r0, 1 + 9858: 0805 bt 0x9862 // 9862 + GetEnergy_Para(); + 985a: e3ffff15 bsr 0x9684 // 9684 + g_Eng.rDValue_State = READ_IDLE; + 985e: 3300 movi r3, 0 + 9860: 076c br 0x9738 // 9738 + else if(Get_SendState() == SEND_STATE_FAIL) + 9862: e3fff881 bsr 0x8964 // 8964 + 9866: 3842 cmpnei r0, 2 + 9868: 0805 bt 0x9872 // 9872 + g_Eng.rDValue_State = READ_IDLE; + 986a: 3300 movi r3, 0 + 986c: a466 st.b r3, (r4, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PB_ADDR ERR!"); + 986e: 1032 lrw r1, 0xbe6e // 98b4 + 9870: 076d br 0x974a // 974a + if(u_det.WR_flag == SEND_NONE) + 9872: 106b lrw r3, 0x20000530 // 989c + 9874: 8360 ld.b r3, (r3, 0x0) + 9876: 3b40 cmpnei r3, 0 + 9878: 0b5a bt 0x972c // 972c + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PB_ADDR,0,0); + 987a: 3200 movi r2, 0 + 987c: 3100 movi r1, 0 + 987e: 302d movi r0, 45 + 9880: 0770 br 0x9760 // 9760 + 9882: 0000 bkpt + 9884: 20000574 .long 0x20000574 + 9888: 200000c4 .long 0x200000c4 + 988c: 2000016c .long 0x2000016c + 9890: 200005f4 .long 0x200005f4 + 9894: 0000bddf .long 0x0000bddf + 9898: 0000bdec .long 0x0000bdec + 989c: 20000530 .long 0x20000530 + 98a0: 0000bdff .long 0x0000bdff + 98a4: 0000be13 .long 0x0000be13 + 98a8: 0000be27 .long 0x0000be27 + 98ac: 0000be3f .long 0x0000be3f + 98b0: 0000be57 .long 0x0000be57 + 98b4: 0000be6e .long 0x0000be6e + +Disassembly of section .text.BLV_HLW8110_Tack: + +000098b8 : +{ + 98b8: 14d1 push r4, r15 + switch(g_Eng.Tack_State) + 98ba: 1096 lrw r4, 0x20000574 // 9910 + 98bc: 8403 ld.b r0, (r4, 0x3) + 98be: 3803 cmphsi r0, 4 + 98c0: 0815 bt 0x98ea // 98ea + 98c2: e3ffce1d bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 98c6: 1002 .short 0x1002 + 98c8: 1613 .short 0x1613 + if(SysTick_1ms - HLW_State_Tisk > 1000) + 98ca: 1013 lrw r0, 0x200000c4 // 9914 + 98cc: 1033 lrw r1, 0x2000016c // 9918 + 98ce: 9040 ld.w r2, (r0, 0x0) + 98d0: 9163 ld.w r3, (r1, 0xc) + 98d2: 608e subu r2, r3 + 98d4: 33fa movi r3, 250 + 98d6: 4362 lsli r3, r3, 2 + 98d8: 648c cmphs r3, r2 + 98da: 0808 bt 0x98ea // 98ea + HLW_State_Tisk = SysTick_1ms; + 98dc: 9060 ld.w r3, (r0, 0x0) + 98de: b163 st.w r3, (r1, 0xc) + g_Eng.Tack_State = 0x01; + 98e0: 3301 movi r3, 1 + 98e2: a463 st.b r3, (r4, 0x3) +} + 98e4: 0403 br 0x98ea // 98ea + HLW8110_ReadSysPara(); + 98e6: e3fffd27 bsr 0x9334 // 9334 +} + 98ea: 1491 pop r4, r15 + HLW8110_ReadSysCtrlPara(); + 98ec: e3fffe4c bsr 0x9584 // 9584 + break; + 98f0: 07fd br 0x98ea // 98ea + HLW8110_ReadValue(); + 98f2: e3ffff01 bsr 0x96f4 // 96f4 + if(g_Eng.tack_reset_flag == 0x01) + 98f6: 8460 ld.b r3, (r4, 0x0) + 98f8: 3b41 cmpnei r3, 1 + 98fa: 0bf8 bt 0x98ea // 98ea + g_Eng.tack_reset_flag = 0x00; + 98fc: 3300 movi r3, 0 + 98fe: a460 st.b r3, (r4, 0x0) + HLW8110_ClearFlag(); + 9900: e3fffb48 bsr 0x8f90 // 8f90 + HLW_State_Tisk = SysTick_1ms; + 9904: 1064 lrw r3, 0x200000c4 // 9914 + 9906: 9340 ld.w r2, (r3, 0x0) + 9908: 1064 lrw r3, 0x2000016c // 9918 + 990a: b343 st.w r2, (r3, 0xc) + 990c: 07ea br 0x98e0 // 98e0 + 990e: 0000 bkpt + 9910: 20000574 .long 0x20000574 + 9914: 200000c4 .long 0x200000c4 + 9918: 2000016c .long 0x2000016c + +Disassembly of section .text.BT_Uart_Packing: + +0000991c : +} + + +//组包发送,用于蓝牙设置的回复 +U8_T BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag) +{ + 991c: 14d4 push r4-r7, r15 + if(flag <= 3 ) return 0x01; + 991e: 3a03 cmphsi r2, 4 +{ + 9920: 6d83 mov r6, r0 + 9922: 6d4b mov r5, r2 + if(flag <= 3 ) return 0x01; + 9924: 0c19 bf 0x9956 // 9956 + 9926: 3914 cmphsi r1, 21 + 9928: 6d07 mov r4, r1 + 992a: 0c02 bf 0x992e // 992e + 992c: 3414 movi r4, 20 + + if(BT_Len > 20){ + BT_Len = 20; + } + + memset(g_Eng.BT_SdBuff,0,20); + 992e: 3214 movi r2, 20 + 9930: 3100 movi r1, 0 + 9932: 75d0 zextb r7, r4 + 9934: 100a lrw r0, 0x2000057c // 995c + 9936: e3ffd803 bsr 0x493c // 493c <__memset_fast> + memcpy(g_Eng.BT_SdBuff, data, BT_Len); + 993a: 6c9f mov r2, r7 + 993c: 6c5b mov r1, r6 + 993e: 1008 lrw r0, 0x2000057c // 995c + 9940: e3ffd842 bsr 0x49c4 // 49c4 <__memcpy_fast> + g_Eng.BT_SdLen = BT_Len; + 9944: 1047 lrw r2, 0x20000574 // 9960 + + g_Eng.BT_SendFlag |= (0x01 << flag); + 9946: 3301 movi r3, 1 + 9948: 8a2f ld.h r1, (r2, 0x1e) + 994a: 70d4 lsl r3, r5 + 994c: 6cc4 or r3, r1 + g_Eng.BT_SdLen = BT_Len; + 994e: a29c st.b r4, (r2, 0x1c) + g_Eng.BT_SendFlag |= (0x01 << flag); + 9950: aa6f st.h r3, (r2, 0x1e) + 9952: 3000 movi r0, 0 + + return 0x00; +} + 9954: 1494 pop r4-r7, r15 + if(flag <= 3 ) return 0x01; + 9956: 3001 movi r0, 1 + 9958: 07fe br 0x9954 // 9954 + 995a: 0000 bkpt + 995c: 2000057c .long 0x2000057c + 9960: 20000574 .long 0x20000574 + +Disassembly of section .text.BT_UART_Print: + +00009964 : + + + +//蓝牙打印调试 +void BT_UART_Print(void) +{ + 9964: 14d2 push r4-r5, r15 + static U32_T BT_State = 0x00; + static U32_T BT_WaitOutTim = 0x00; + static U32_T BT_Print_Tim = 0x00; + + if( ((Dbg_Switch&0x08) != 0x00)&&(SysTick_1ms - g_Eng.BT_Print_valid >= 180000) ) + 9966: 1222 lrw r1, 0x200000d8 // 9a6c + 9968: 3208 movi r2, 8 + 996a: 9160 ld.w r3, (r1, 0x0) + 996c: 688c and r2, r3 + 996e: 3a40 cmpnei r2, 0 + 9970: 0c0d bf 0x998a // 998a + 9972: 1280 lrw r4, 0x200000c4 // 9a70 + 9974: 1200 lrw r0, 0x200005f4 // 9a74 + 9976: 90a5 ld.w r5, (r0, 0x14) + 9978: 9440 ld.w r2, (r4, 0x0) + 997a: 6096 subu r2, r5 + 997c: 11bf lrw r5, 0x2bf1f // 9a78 + 997e: 6494 cmphs r5, r2 + 9980: 0805 bt 0x998a // 998a + { + g_Eng.BT_Print_valid = SysTick_1ms; + 9982: 9440 ld.w r2, (r4, 0x0) + + Dbg_Switch &= (~0x08); + 9984: 3b83 bclri r3, 3 + g_Eng.BT_Print_valid = SysTick_1ms; + 9986: b045 st.w r2, (r0, 0x14) + Dbg_Switch &= (~0x08); + 9988: b160 st.w r3, (r1, 0x0) + } + + + for(U8_T i = 10;i > 3;i--) + { + if( (g_Eng.BT_SendFlag & (0x01 << i )) != 0x00 ) + 998a: 113d lrw r1, 0x20000574 // 9a7c + 998c: 898f ld.h r4, (r1, 0x1e) + 998e: 330a movi r3, 10 + 9990: 3001 movi r0, 1 + 9992: 6c93 mov r2, r4 + 9994: 708e asr r2, r3 + 9996: 6880 and r2, r0 + 9998: 3a40 cmpnei r2, 0 + 999a: 0c17 bf 0x99c8 // 99c8 + { + BT_State = i; + 999c: 74cc zextb r3, r3 + 999e: 1159 lrw r2, 0x2000016c // 9a80 + 99a0: b264 st.w r3, (r2, 0x10) + break; + } + } + + if(SysTick_1ms - BT_Print_Tim >= 150) + 99a2: 1154 lrw r2, 0x200000c4 // 9a70 + 99a4: 11b7 lrw r5, 0x2000016c // 9a80 + 99a6: 9260 ld.w r3, (r2, 0x0) + 99a8: 9505 ld.w r0, (r5, 0x14) + 99aa: 60c2 subu r3, r0 + 99ac: 3095 movi r0, 149 + 99ae: 64c0 cmphs r0, r3 + 99b0: 0819 bt 0x99e2 // 99e2 + { + BT_Print_Tim = SysTick_1ms; + 99b2: 9200 ld.w r0, (r2, 0x0) + 99b4: b505 st.w r0, (r5, 0x14) + switch(BT_State) + 99b6: 9504 ld.w r0, (r5, 0x10) + 99b8: 3806 cmphsi r0, 7 + 99ba: 0853 bt 0x9a60 // 9a60 + 99bc: e3ffcda0 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 99c0: 241e1208 .long 0x241e1208 + 99c4: 00433830 .long 0x00433830 + 99c8: 2b00 subi r3, 1 + for(U8_T i = 10;i > 3;i--) + 99ca: 3b43 cmpnei r3, 3 + 99cc: 0be3 bt 0x9992 // 9992 + 99ce: 07ea br 0x99a2 // 99a2 + { + case 0x00: + BT_State = 0x01; + 99d0: 3201 movi r2, 1 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 99d2: 9169 ld.w r3, (r1, 0x24) + BT_State = 0x01; + 99d4: b544 st.w r2, (r5, 0x10) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + 99d6: 320a movi r2, 10 + 99d8: 7c8c mult r2, r3 + 99da: 112b lrw r1, 0xbe85 // 9a84 + 99dc: 3003 movi r0, 3 + 99de: e3fff1a9 bsr 0x7d30 // 7d30 + BT_State = 0x03; + break; + } + + } +} + 99e2: 1492 pop r4-r5, r15 + BT_State = 0x02; + 99e4: 3202 movi r2, 2 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%d,%dmA",(g_Eng.det_ectA*10),(g_Eng.det_ectB*10)); + 99e6: 916d ld.w r3, (r1, 0x34) + BT_State = 0x02; + 99e8: b544 st.w r2, (r5, 0x10) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%d,%dmA",(g_Eng.det_ectA*10),(g_Eng.det_ectB*10)); + 99ea: 912a ld.w r1, (r1, 0x28) + 99ec: 320a movi r2, 10 + 99ee: 7cc8 mult r3, r2 + 99f0: 7c84 mult r2, r1 + 99f2: 1126 lrw r1, 0xbe8c // 9a88 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%d,%dmW",g_Eng.det_powA,g_Eng.det_powB); + 99f4: 3003 movi r0, 3 + 99f6: e3fff19d bsr 0x7d30 // 7d30 + 99fa: 07f4 br 0x99e2 // 99e2 + BT_State = 0x03; + 99fc: 3203 movi r2, 3 + 99fe: b544 st.w r2, (r5, 0x10) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%d,%dmW",g_Eng.det_powA,g_Eng.det_powB); + 9a00: 916f ld.w r3, (r1, 0x3c) + 9a02: 914c ld.w r2, (r1, 0x30) + 9a04: 1122 lrw r1, 0xbe96 // 9a8c + 9a06: 07f7 br 0x99f4 // 99f4 + BT_WaitOutTim = SysTick_1ms; + 9a08: 9240 ld.w r2, (r2, 0x0) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%d,%d",(g_Eng.Total_Eng - g_Eng.LastPhase_Eng),(g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B)); + 9a0a: 9173 ld.w r3, (r1, 0x4c) + BT_WaitOutTim = SysTick_1ms; + 9a0c: b546 st.w r2, (r5, 0x18) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%d,%d",(g_Eng.Total_Eng - g_Eng.LastPhase_Eng),(g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B)); + 9a0e: 9154 ld.w r2, (r1, 0x50) + BT_State = 0x04; + 9a10: 3004 movi r0, 4 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%d,%d",(g_Eng.Total_Eng - g_Eng.LastPhase_Eng),(g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B)); + 9a12: 60ca subu r3, r2 + 9a14: 9150 ld.w r2, (r1, 0x40) + 9a16: 9131 ld.w r1, (r1, 0x44) + 9a18: 6086 subu r2, r1 + BT_State = 0x04; + 9a1a: b504 st.w r0, (r5, 0x10) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%d,%d",(g_Eng.Total_Eng - g_Eng.LastPhase_Eng),(g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B)); + 9a1c: 103d lrw r1, 0xbea0 // 9a90 + 9a1e: 07eb br 0x99f4 // 99f4 + BT_WaitOutTim = SysTick_1ms; + 9a20: 9240 ld.w r2, (r2, 0x0) + BT_State = 0x05; + 9a22: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 9a24: b546 st.w r2, (r5, 0x18) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"T:%d,%d",g_Eng.Total_Eng,g_Eng.Total_Eng_B); + 9a26: 9173 ld.w r3, (r1, 0x4c) + 9a28: 9150 ld.w r2, (r1, 0x40) + BT_State = 0x05; + 9a2a: b504 st.w r0, (r5, 0x10) + Dbg_BT_Println(DBG_BIT_BT_STATUS,"T:%d,%d",g_Eng.Total_Eng,g_Eng.Total_Eng_B); + 9a2c: 103a lrw r1, 0xbea8 // 9a94 + 9a2e: 07e3 br 0x99f4 // 99f4 + if(SysTick_1ms - BT_WaitOutTim >= 3000) + 9a30: 9506 ld.w r0, (r5, 0x18) + 9a32: 9220 ld.w r1, (r2, 0x0) + 9a34: 6042 subu r1, r0 + 9a36: 1019 lrw r0, 0xbb7 // 9a98 + 9a38: 6440 cmphs r0, r1 + 9a3a: 0bd4 bt 0x99e2 // 99e2 + BT_WaitOutTim = SysTick_1ms; + 9a3c: 9240 ld.w r2, (r2, 0x0) + 9a3e: b546 st.w r2, (r5, 0x18) + BT_State = 0x00; + 9a40: 3200 movi r2, 0 + 9a42: b544 st.w r2, (r5, 0x10) + 9a44: 07cf br 0x99e2 // 99e2 + g_Eng.BT_SendFlag &= (~(0x01 << REG_BTDEBUG_FLAG)); + 9a46: 3c86 bclri r4, 6 + BT_State = 0x05; + 9a48: 3005 movi r0, 5 + BT_WaitOutTim = SysTick_1ms; + 9a4a: 9240 ld.w r2, (r2, 0x0) + g_Eng.BT_SendFlag &= (~(0x01 << REG_BTDEBUG_FLAG)); + 9a4c: a98f st.h r4, (r1, 0x1e) + BT_State = 0x05; + 9a4e: b504 st.w r0, (r5, 0x10) + BT_WaitOutTim = SysTick_1ms; + 9a50: b546 st.w r2, (r5, 0x18) + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + 9a52: 815c ld.b r2, (r1, 0x1c) + 9a54: 1072 lrw r3, 0x20000038 // 9a9c + 9a56: 1033 lrw r1, 0x2000057c // 9aa0 + 9a58: 9300 ld.w r0, (r3, 0x0) + 9a5a: e3ffe6d1 bsr 0x67fc // 67fc + 9a5e: 07c2 br 0x99e2 // 99e2 + g_Eng.BT_SendFlag &= (~0xFFE0); + 9a60: 331f movi r3, 31 + 9a62: 690c and r4, r3 + BT_State = 0x03; + 9a64: 3303 movi r3, 3 + g_Eng.BT_SendFlag &= (~0xFFE0); + 9a66: a98f st.h r4, (r1, 0x1e) + BT_State = 0x03; + 9a68: b564 st.w r3, (r5, 0x10) +} + 9a6a: 07bc br 0x99e2 // 99e2 + 9a6c: 200000d8 .long 0x200000d8 + 9a70: 200000c4 .long 0x200000c4 + 9a74: 200005f4 .long 0x200005f4 + 9a78: 0002bf1f .long 0x0002bf1f + 9a7c: 20000574 .long 0x20000574 + 9a80: 2000016c .long 0x2000016c + 9a84: 0000be85 .long 0x0000be85 + 9a88: 0000be8c .long 0x0000be8c + 9a8c: 0000be96 .long 0x0000be96 + 9a90: 0000bea0 .long 0x0000bea0 + 9a94: 0000bea8 .long 0x0000bea8 + 9a98: 00000bb7 .long 0x00000bb7 + 9a9c: 20000038 .long 0x20000038 + 9aa0: 2000057c .long 0x2000057c + +Disassembly of section .text.BLV_Energy_PassiveRep_Packing: + +00009aa4 : + + + +//电参数查询回复组包 +void BLV_Energy_PassiveRep_Packing(U8_T cmd) +{ + 9aa4: 14d4 push r4-r7, r15 + 9aa6: 1431 subi r14, r14, 68 + U8_T send_data[50] = {0}; + 9aa8: 1c04 addi r4, r14, 16 +{ + 9aaa: b801 st.w r0, (r14, 0x4) + U8_T send_data[50] = {0}; + 9aac: 3232 movi r2, 50 + 9aae: 3100 movi r1, 0 + 9ab0: 6c13 mov r0, r4 + 9ab2: e3ffd745 bsr 0x493c // 493c <__memset_fast> + U16_T send_len = 0x00; + U32_T Energy_A_Rep = 0,Energy_B_Rep = 0; + + Energy_A_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9ab6: 1265 lrw r3, 0x20000574 // 9bc8 + Energy_B_Rep = g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B; + + + g_Eng.SdSN++; + 9ab8: 83c7 ld.b r6, (r3, 0x7) + 9aba: 2600 addi r6, 1 + Energy_A_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9abc: 9351 ld.w r2, (r3, 0x44) + 9abe: 9330 ld.w r1, (r3, 0x40) + g_Eng.SdSN++; + 9ac0: 7598 zextb r6, r6 + Energy_A_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + 9ac2: 59a9 subu r5, r1, r2 + Energy_B_Rep = g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B; + 9ac4: 9314 ld.w r0, (r3, 0x50) + 9ac6: 9353 ld.w r2, (r3, 0x4c) + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9ac8: 3e0f cmphsi r6, 16 + Energy_B_Rep = g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B; + 9aca: 5a01 subu r0, r2, r0 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9acc: 0872 bt 0x9bb0 // 9bb0 + 9ace: a3c7 st.b r6, (r3, 0x7) + + send_data[send_len++] = ENERGY_HEAD; //帧 + 9ad0: 3600 movi r6, 0 + 9ad2: 2e75 subi r6, 118 + 9ad4: a4c0 st.b r6, (r4, 0x0) + send_data[send_len++] = g_Eng.SdSN; //sn; + 9ad6: 83c7 ld.b r6, (r3, 0x7) + 9ad8: a4c1 st.b r6, (r4, 0x1) + send_data[send_len++] = DEV_TYPE; //type + 9ada: 3600 movi r6, 0 + 9adc: 2e0b subi r6, 12 + 9ade: a4c2 st.b r6, (r4, 0x2) + send_data[send_len++] = ( g_Eng.det_powA & 0xff); + send_data[send_len++] = ((g_Eng.det_powA >> 8) & 0xff); + send_data[send_len++] = ((g_Eng.det_powA >> 16) & 0xff); + send_data[send_len++] = ((g_Eng.det_powA >> 24) & 0xff); + + send_data[send_len++] = ( Energy_A_Rep & 0xff); + 9ae0: a4b0 st.b r5, (r4, 0x10) + send_data[send_len++] = ((Energy_A_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_A_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_A_Rep>> 24) & 0xff); + + send_data[send_len++] = ( g_Eng.Total_Eng & 0xff); + 9ae2: a434 st.b r1, (r4, 0x14) + send_data[send_len++] = g_Dip.addr; + 9ae4: 11da lrw r6, 0x20000484 // 9bcc + 9ae6: 86c6 ld.b r6, (r6, 0x6) + 9ae8: a4c3 st.b r6, (r4, 0x3) + send_data[send_len++] = cmd; //cmd,0x01:主动上报,0x02:轮询回复 + 9aea: d8ce0004 ld.b r6, (r14, 0x4) + 9aee: a4c6 st.b r6, (r4, 0x6) + send_data[send_len++] = 0x03; //采集通道,一个bit置1代表一个通道 + 9af0: 3603 movi r6, 3 + 9af2: a4c7 st.b r6, (r4, 0x7) + send_data[send_len++] = ( (g_Eng.det_V) & 0xff); + 9af4: 93c9 ld.w r6, (r3, 0x24) + 9af6: 75d8 zextb r7, r6 + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9af8: 4ec8 lsri r6, r6, 8 + 9afa: 7598 zextb r6, r6 + 9afc: b8c3 st.w r6, (r14, 0xc) + 9afe: d8ce000c ld.b r6, (r14, 0xc) + 9b02: a4c9 st.b r6, (r4, 0x9) + send_data[send_len++] = ( g_Eng.det_ectA & 0xff); + 9b04: 93ca ld.w r6, (r3, 0x28) + send_data[send_len++] = ( (g_Eng.det_V) & 0xff); + 9b06: b8e2 st.w r7, (r14, 0x8) + send_data[send_len++] = ( g_Eng.det_ectA & 0xff); + 9b08: a4ca st.b r6, (r4, 0xa) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 9b0a: 4ec8 lsri r6, r6, 8 + send_data[send_len++] = ( (g_Eng.det_V) & 0xff); + 9b0c: d8ee0008 ld.b r7, (r14, 0x8) + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + 9b10: a4cb st.b r6, (r4, 0xb) + send_data[send_len++] = ( g_Eng.det_powA & 0xff); + 9b12: 93cc ld.w r6, (r3, 0x30) + send_data[send_len++] = ( (g_Eng.det_V) & 0xff); + 9b14: a4e8 st.b r7, (r4, 0x8) + send_data[send_len++] = ((g_Eng.det_powA >> 8) & 0xff); + 9b16: 4ee8 lsri r7, r6, 8 + send_data[send_len++] = ( g_Eng.det_powA & 0xff); + 9b18: a4cc st.b r6, (r4, 0xc) + send_data[send_len++] = ((g_Eng.det_powA >> 8) & 0xff); + 9b1a: a4ed st.b r7, (r4, 0xd) + send_data[send_len++] = ((g_Eng.det_powA >> 16) & 0xff); + 9b1c: 4ef0 lsri r7, r6, 16 + send_data[send_len++] = ((g_Eng.det_powA >> 24) & 0xff); + 9b1e: 4ed8 lsri r6, r6, 24 + 9b20: a4cf st.b r6, (r4, 0xf) + send_data[send_len++] = ((Energy_A_Rep>> 8) & 0xff); + 9b22: 4dc8 lsri r6, r5, 8 + 9b24: a4d1 st.b r6, (r4, 0x11) + send_data[send_len++] = ((Energy_A_Rep >> 16) & 0xff); + 9b26: 4dd0 lsri r6, r5, 16 + send_data[send_len++] = ((Energy_A_Rep>> 24) & 0xff); + 9b28: 4db8 lsri r5, r5, 24 + 9b2a: a4b3 st.b r5, (r4, 0x13) + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + 9b2c: 49a8 lsri r5, r1, 8 + 9b2e: a4b5 st.b r5, (r4, 0x15) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 9b30: 49b0 lsri r5, r1, 16 + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 9b32: 4938 lsri r1, r1, 24 + send_data[send_len++] = ((g_Eng.det_powA >> 16) & 0xff); + 9b34: a4ee st.b r7, (r4, 0xe) + send_data[send_len++] = ((Energy_A_Rep >> 16) & 0xff); + 9b36: a4d2 st.b r6, (r4, 0x12) + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + 9b38: a4b6 st.b r5, (r4, 0x16) + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + 9b3a: a437 st.b r1, (r4, 0x17) + + + /*** B通道 ***/ + send_data[send_len++] = ( (g_Eng.det_V) & 0xff); + 9b3c: d82e0008 ld.b r1, (r14, 0x8) + 9b40: a438 st.b r1, (r4, 0x18) + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + 9b42: d82e000c ld.b r1, (r14, 0xc) + 9b46: a439 st.b r1, (r4, 0x19) + + send_data[send_len++] = ( g_Eng.det_ectB & 0xff); + 9b48: 932d ld.w r1, (r3, 0x34) + 9b4a: a43a st.b r1, (r4, 0x1a) + send_data[send_len++] = ((g_Eng.det_ectB >> 8) & 0xff); + + send_data[send_len++] = ( g_Eng.det_powB & 0xff); + 9b4c: 936f ld.w r3, (r3, 0x3c) + send_data[send_len++] = ((g_Eng.det_ectB >> 8) & 0xff); + 9b4e: 4928 lsri r1, r1, 8 + 9b50: a43b st.b r1, (r4, 0x1b) + send_data[send_len++] = ((g_Eng.det_powB >> 8) & 0xff); + 9b52: 4b28 lsri r1, r3, 8 + send_data[send_len++] = ( g_Eng.det_powB & 0xff); + 9b54: a47c st.b r3, (r4, 0x1c) + send_data[send_len++] = ((g_Eng.det_powB >> 8) & 0xff); + 9b56: a43d st.b r1, (r4, 0x1d) + send_data[send_len++] = ((g_Eng.det_powB >> 16) & 0xff); + 9b58: 4b30 lsri r1, r3, 16 + send_data[send_len++] = ((g_Eng.det_powB >> 24) & 0xff); + 9b5a: 4b78 lsri r3, r3, 24 + 9b5c: a47f st.b r3, (r4, 0x1f) + + send_data[send_len++] = ( Energy_B_Rep & 0xff); + 9b5e: 3320 movi r3, 32 + 9b60: 60d0 addu r3, r4 + send_data[send_len++] = ((g_Eng.det_powB >> 16) & 0xff); + 9b62: a43e st.b r1, (r4, 0x1e) + send_data[send_len++] = ((Energy_B_Rep>> 8) & 0xff); + 9b64: 4828 lsri r1, r0, 8 + 9b66: a321 st.b r1, (r3, 0x1) + send_data[send_len++] = ((Energy_B_Rep >> 16) & 0xff); + 9b68: 4830 lsri r1, r0, 16 + 9b6a: a322 st.b r1, (r3, 0x2) + send_data[send_len++] = ((Energy_B_Rep>> 24) & 0xff); + + send_data[send_len++] = ( g_Eng.Total_Eng_B & 0xff); + send_data[send_len++] = ((g_Eng.Total_Eng_B >> 8) & 0xff); + 9b6c: 4a28 lsri r1, r2, 8 + send_data[send_len++] = ( g_Eng.Total_Eng_B & 0xff); + 9b6e: a344 st.b r2, (r3, 0x4) + send_data[send_len++] = ((g_Eng.Total_Eng_B >> 8) & 0xff); + 9b70: a325 st.b r1, (r3, 0x5) + send_data[send_len++] = ((g_Eng.Total_Eng_B >> 16) & 0xff); + 9b72: 4a30 lsri r1, r2, 16 + send_data[send_len++] = ((g_Eng.Total_Eng_B >> 24) & 0xff); + 9b74: 4a58 lsri r2, r2, 24 + 9b76: a347 st.b r2, (r3, 0x7) + + + send_data[send_len++] = ENERGY_TAIL; //帧尾 + 9b78: 3200 movi r2, 0 + send_data[send_len++] = ( Energy_B_Rep & 0xff); + 9b7a: a300 st.b r0, (r3, 0x0) + send_data[send_len++] = ENERGY_TAIL; //帧尾 + 9b7c: 2a57 subi r2, 88 + send_data[send_len++] = ((Energy_B_Rep>> 24) & 0xff); + 9b7e: 4818 lsri r0, r0, 24 + 9b80: a303 st.b r0, (r3, 0x3) + send_data[send_len++] = ((g_Eng.Total_Eng_B >> 16) & 0xff); + 9b82: a326 st.b r1, (r3, 0x6) + send_data[send_len++] = ENERGY_TAIL; //帧尾 + 9b84: a348 st.b r2, (r3, 0x8) + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b86: 3129 movi r1, 41 + send_data[4] = send_len; + 9b88: 3329 movi r3, 41 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b8a: 6c13 mov r0, r4 + send_data[4] = send_len; + 9b8c: a464 st.b r3, (r4, 0x4) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b8e: e3fff5e3 bsr 0x8754 // 8754 + + if(cmd == 0x02){ + 9b92: 9861 ld.w r3, (r14, 0x4) + 9b94: 3b42 cmpnei r3, 2 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9b96: a405 st.b r0, (r4, 0x5) + if(cmd == 0x02){ + 9b98: 080e bt 0x9bb4 // 9bb4 + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //轮询回复组包 + 9b9a: 3332 movi r3, 50 + 9b9c: b860 st.w r3, (r14, 0x0) + 9b9e: 3396 movi r3, 150 + 9ba0: 4361 lsli r3, r3, 1 + 9ba2: 3201 movi r2, 1 + }else if(cmd == 0x01){ + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //主动上报组包 + 9ba4: 3129 movi r1, 41 + 9ba6: 6c13 mov r0, r4 + 9ba8: e3ffef80 bsr 0x7aa8 // 7aa8 + } + + +} + 9bac: 1411 addi r14, r14, 68 + 9bae: 1494 pop r4-r7, r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9bb0: 3600 movi r6, 0 + 9bb2: 078e br 0x9ace // 9ace + }else if(cmd == 0x01){ + 9bb4: 9861 ld.w r3, (r14, 0x4) + 9bb6: 3b41 cmpnei r3, 1 + 9bb8: 0bfa bt 0x9bac // 9bac + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //主动上报组包 + 9bba: 33fa movi r3, 250 + 9bbc: 4361 lsli r3, r3, 1 + 9bbe: b860 st.w r3, (r14, 0x0) + 9bc0: 3203 movi r2, 3 + 9bc2: 1064 lrw r3, 0xbb8 // 9bd0 + 9bc4: 07f0 br 0x9ba4 // 9ba4 + 9bc6: 0000 bkpt + 9bc8: 20000574 .long 0x20000574 + 9bcc: 20000484 .long 0x20000484 + 9bd0: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BLV_ElectricPara_Processing: + +00009bd4 : +{ + 9bd4: 14d0 push r15 + if( (g_Dip.Dev_Port == Active_Port)&&(SysTick_1ms - g_Eng.Eng_Report_Tim >= g_Eng.Report_Tim) ) + 9bd6: 106a lrw r3, 0x20000484 // 9bfc + 9bd8: 8367 ld.b r3, (r3, 0x7) + 9bda: 3b41 cmpnei r3, 1 + 9bdc: 080e bt 0x9bf8 // 9bf8 + 9bde: 1069 lrw r3, 0x200005f4 // 9c00 + 9be0: 1029 lrw r1, 0x200000c4 // 9c04 + 9be2: 9140 ld.w r2, (r1, 0x0) + 9be4: 9304 ld.w r0, (r3, 0x10) + 9be6: 6082 subu r2, r0 + 9be8: 9302 ld.w r0, (r3, 0x8) + 9bea: 6408 cmphs r2, r0 + 9bec: 0c06 bf 0x9bf8 // 9bf8 + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9bee: 9140 ld.w r2, (r1, 0x0) + BLV_Energy_PassiveRep_Packing(0x01); + 9bf0: 3001 movi r0, 1 + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9bf2: b344 st.w r2, (r3, 0x10) + BLV_Energy_PassiveRep_Packing(0x01); + 9bf4: e3ffff58 bsr 0x9aa4 // 9aa4 +} + 9bf8: 1490 pop r15 + 9bfa: 0000 bkpt + 9bfc: 20000484 .long 0x20000484 + 9c00: 200005f4 .long 0x200005f4 + 9c04: 200000c4 .long 0x200000c4 + +Disassembly of section .text.BLV_EngDetect_Tack: + +00009c08 : +{ + 9c08: 14d0 push r15 + BLV_HLW8110_Tack(); + 9c0a: e3fffe57 bsr 0x98b8 // 98b8 + BLV_HLW8110_SendData_Tack(); + 9c0e: e3fff6b9 bsr 0x8980 // 8980 + BLV_ElectricPara_Processing(); + 9c12: e3ffffe1 bsr 0x9bd4 // 9bd4 + BT_UART_Print(); + 9c16: e3fffea7 bsr 0x9964 // 9964 +} + 9c1a: 1490 pop r15 + +Disassembly of section .text.BLV_Energy_SetTime_Packing: + +00009c1c : + +//MCU设置周期 +U8_T BLV_Energy_SetTime_Packing(U8_T *data,U16_T lens) +{ + 9c1c: 14d2 push r4-r5, r15 + 9c1e: 1421 subi r14, r14, 4 + if(lens < 18) return 0x01; + 9c20: 3911 cmphsi r1, 18 +{ + 9c22: 6d03 mov r4, r0 + 9c24: 6d47 mov r5, r1 + if(lens < 18) return 0x01; + 9c26: 0c43 bf 0x9cac // 9cac + + U32_T temp_T = 0; + + if( ( (data[7])&0x01) == 0x01) + 9c28: 8067 ld.b r3, (r0, 0x7) + 9c2a: 3201 movi r2, 1 + 9c2c: 68c8 and r3, r2 + 9c2e: 3b40 cmpnei r3, 0 + 9c30: 0c10 bf 0x9c50 // 9c50 + { + temp_T = (data[11]<<24) + (data[10]<<16) + (data[9]<<8) + data[8]; + 9c32: 806b ld.b r3, (r0, 0xb) + 9c34: 804a ld.b r2, (r0, 0xa) + 9c36: 4250 lsli r2, r2, 16 + 9c38: 4378 lsli r3, r3, 24 + 9c3a: 60c8 addu r3, r2 + 9c3c: 8049 ld.b r2, (r0, 0x9) + 9c3e: 4248 lsli r2, r2, 8 + 9c40: 60c8 addu r3, r2 + 9c42: 8048 ld.b r2, (r0, 0x8) + 9c44: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 9c46: 105b lrw r2, 0x3e7 // 9cb0 + 9c48: 64c8 cmphs r2, r3 + 9c4a: 0803 bt 0x9c50 // 9c50 + g_Eng.Collect_Tim = temp_T; + 9c4c: 105a lrw r2, 0x200005f4 // 9cb4 + 9c4e: b261 st.w r3, (r2, 0x4) + } + } + + if(data[12] == 0x00) + 9c50: 846c ld.b r3, (r4, 0xc) + { + g_Dip.Dev_Port = Passive_Port; + 9c52: 3b40 cmpnei r3, 0 + 9c54: 3300 movi r3, 0 + 9c56: 60cd addc r3, r3 + 9c58: 1058 lrw r2, 0x20000484 // 9cb8 + 9c5a: a267 st.b r3, (r2, 0x7) + } + else{ + g_Dip.Dev_Port = Active_Port; + } + + if( ((data[7] >> 1)&0x01) == 0x01) + 9c5c: 8467 ld.b r3, (r4, 0x7) + 9c5e: 4b61 lsri r3, r3, 1 + 9c60: 3201 movi r2, 1 + 9c62: 68c8 and r3, r2 + 9c64: 3b40 cmpnei r3, 0 + 9c66: 0c10 bf 0x9c86 // 9c86 + { + temp_T = (data[16]<<24) + (data[15]<<16) + (data[14]<<8) + data[13]; + 9c68: 8470 ld.b r3, (r4, 0x10) + 9c6a: 844f ld.b r2, (r4, 0xf) + 9c6c: 4250 lsli r2, r2, 16 + 9c6e: 4378 lsli r3, r3, 24 + 9c70: 60c8 addu r3, r2 + 9c72: 844e ld.b r2, (r4, 0xe) + 9c74: 4248 lsli r2, r2, 8 + 9c76: 60c8 addu r3, r2 + 9c78: 844d ld.b r2, (r4, 0xd) + 9c7a: 60c8 addu r3, r2 + if(temp_T >= 1000){ + 9c7c: 104d lrw r2, 0x3e7 // 9cb0 + 9c7e: 64c8 cmphs r2, r3 + 9c80: 0803 bt 0x9c86 // 9c86 + g_Eng.Report_Tim = temp_T; + 9c82: 104d lrw r2, 0x200005f4 // 9cb4 + 9c84: b262 st.w r3, (r2, 0x8) + } + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9c86: e3fff215 bsr 0x80b0 // 80b0 + + //数据原样返回 + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9c8a: 3314 movi r3, 20 + 9c8c: b860 st.w r3, (r14, 0x0) + 9c8e: 3396 movi r3, 150 + 9c90: 4361 lsli r3, r3, 1 + 9c92: 3201 movi r2, 1 + 9c94: 6c57 mov r1, r5 + 9c96: 6c13 mov r0, r4 + 9c98: e3ffef08 bsr 0x7aa8 // 7aa8 + BT_Uart_Packing(data,lens,REG_BTDEBUG_FLAG); + 9c9c: 7454 zextb r1, r5 + 9c9e: 3206 movi r2, 6 + 9ca0: 6c13 mov r0, r4 + 9ca2: e3fffe3d bsr 0x991c // 991c + 9ca6: 3000 movi r0, 0 + + return 0x00; +} + 9ca8: 1401 addi r14, r14, 4 + 9caa: 1492 pop r4-r5, r15 + if(lens < 18) return 0x01; + 9cac: 3001 movi r0, 1 + 9cae: 07fd br 0x9ca8 // 9ca8 + 9cb0: 000003e7 .long 0x000003e7 + 9cb4: 200005f4 .long 0x200005f4 + 9cb8: 20000484 .long 0x20000484 + +Disassembly of section .text.BLV_Energy_QueryVersion_Packing: + +00009cbc : + +//版本查询回复组包 +void BLV_Energy_QueryVersion_Packing(void) +{ + 9cbc: 14d0 push r15 + 9cbe: 142e subi r14, r14, 56 + U8_T send_data[50] = {0}; + 9cc0: 1801 addi r0, r14, 4 + 9cc2: 3232 movi r2, 50 + 9cc4: 3100 movi r1, 0 + 9cc6: e3ffd63b bsr 0x493c // 493c <__memset_fast> + U16_T send_len = 0x00; + + g_Eng.SdSN++; + 9cca: 1161 lrw r3, 0x20000574 // 9d4c + 9ccc: 8347 ld.b r2, (r3, 0x7) + 9cce: 2200 addi r2, 1 + 9cd0: 7488 zextb r2, r2 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9cd2: 3a0f cmphsi r2, 16 + 9cd4: 083a bt 0x9d48 // 9d48 + 9cd6: a347 st.b r2, (r3, 0x7) + + send_data[send_len++] = ENERGY_HEAD; + send_data[send_len++] = g_Eng.SdSN; //sn; + 9cd8: 8367 ld.b r3, (r3, 0x7) + 9cda: dc6e0005 st.b r3, (r14, 0x5) + send_data[send_len++] = DEV_TYPE; //type + 9cde: 3300 movi r3, 0 + 9ce0: 2b0b subi r3, 12 + send_data[send_len++] = ENERGY_HEAD; + 9ce2: 3200 movi r2, 0 + send_data[send_len++] = DEV_TYPE; //type + 9ce4: dc6e0006 st.b r3, (r14, 0x6) + send_data[send_len++] = ENERGY_HEAD; + 9ce8: 2a75 subi r2, 118 + send_data[send_len++] = g_Dip.addr; + 9cea: 107a lrw r3, 0x20000484 // 9d50 + send_data[send_len++] = g_Dip.Dev_Port; + + send_data[send_len++] = ENERGY_TAIL; + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9cec: 310b movi r1, 11 + send_data[send_len++] = ENERGY_HEAD; + 9cee: dc4e0004 st.b r2, (r14, 0x4) + send_data[send_len++] = g_Dip.addr; + 9cf2: 8346 ld.b r2, (r3, 0x6) + send_data[send_len++] = g_Dip.Dev_Port; + 9cf4: 8367 ld.b r3, (r3, 0x7) + send_data[send_len++] = g_Dip.addr; + 9cf6: dc4e0007 st.b r2, (r14, 0x7) + send_data[send_len++] = g_Dip.Dev_Port; + 9cfa: dc6e000d st.b r3, (r14, 0xd) + send_data[send_len++] = 0x04; //cmd + 9cfe: 3204 movi r2, 4 + send_data[send_len++] = ENERGY_TAIL; + 9d00: 3300 movi r3, 0 + send_data[send_len++] = 0x04; //cmd + 9d02: dc4e000a st.b r2, (r14, 0xa) + send_data[send_len++] = ENERGY_TAIL; + 9d06: 2b57 subi r3, 88 + send_data[send_len++] = Project_FW_Version; + 9d08: 3205 movi r2, 5 + 9d0a: dc4e000b st.b r2, (r14, 0xb) + send_data[send_len++] = ENERGY_TAIL; + 9d0e: dc6e000e st.b r3, (r14, 0xe) + send_data[send_len++] = Project_HW_Version; + 9d12: 3203 movi r2, 3 + send_data[4] = send_len; + 9d14: 330b movi r3, 11 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9d16: 1801 addi r0, r14, 4 + send_data[send_len++] = Project_HW_Version; + 9d18: dc4e000c st.b r2, (r14, 0xc) + send_data[4] = send_len; + 9d1c: dc6e0008 st.b r3, (r14, 0x8) + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9d20: e3fff51a bsr 0x8754 // 8754 + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9d24: 3332 movi r3, 50 + 9d26: b860 st.w r3, (r14, 0x0) + 9d28: 3396 movi r3, 150 + send_data[5] = HLW8110_CheckSum(send_data,send_len); + 9d2a: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + 9d2e: 4361 lsli r3, r3, 1 + 9d30: 1801 addi r0, r14, 4 + 9d32: 3201 movi r2, 1 + 9d34: 310b movi r1, 11 + 9d36: e3ffeeb9 bsr 0x7aa8 // 7aa8 + BT_Uart_Packing(send_data,send_len,REG_BTDEBUG_FLAG); + 9d3a: 3206 movi r2, 6 + 9d3c: 310b movi r1, 11 + 9d3e: 1801 addi r0, r14, 4 + 9d40: e3fffdee bsr 0x991c // 991c +} + 9d44: 140e addi r14, r14, 56 + 9d46: 1490 pop r15 + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + 9d48: 3200 movi r2, 0 + 9d4a: 07c6 br 0x9cd6 // 9cd6 + 9d4c: 20000574 .long 0x20000574 + 9d50: 20000484 .long 0x20000484 + +Disassembly of section .text.SetCalibFactor_Switch: + +00009d54 : + + +//串口设置硬件校准系数 +U8_T SetCalibFactor_Switch(U8_T ch,F32_T value) +{ + 9d54: 14d0 push r15 + switch(ch) + 9d56: 3804 cmphsi r0, 5 + 9d58: 0808 bt 0x9d68 // 9d68 + 9d5a: 1069 lrw r3, 0x20000574 // 9d7c + 9d5c: e3ffcbd0 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 9d60: 0a080603 .long 0x0a080603 + 9d64: 000c .short 0x000c + { + case 0x00: + g_Eng.V_K_Val = value; + 9d66: b33a st.w r1, (r3, 0x68) + break; + default: + break; + } + return 0; +} + 9d68: 3000 movi r0, 0 + 9d6a: 1490 pop r15 + g_Eng.IA_K_Val = value; + 9d6c: b33b st.w r1, (r3, 0x6c) + break; + 9d6e: 07fd br 0x9d68 // 9d68 + g_Eng.IB_K_Val = value; + 9d70: b33c st.w r1, (r3, 0x70) + break; + 9d72: 07fb br 0x9d68 // 9d68 + g_Eng.PA_K_Val = value; + 9d74: b33d st.w r1, (r3, 0x74) + break; + 9d76: 07f9 br 0x9d68 // 9d68 + g_Eng.PB_K_Val = value; + 9d78: b33e st.w r1, (r3, 0x78) + break; + 9d7a: 07f7 br 0x9d68 // 9d68 + 9d7c: 20000574 .long 0x20000574 + +Disassembly of section .text.BLV_Energy_SetCalibFactor: + +00009d80 : + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor(U8_T *data,U16_T lens) +{ + 9d80: 14d4 push r4-r7, r15 + 9d82: 1423 subi r14, r14, 12 + if(lens < 10) return 0x01; + 9d84: 3909 cmphsi r1, 10 +{ + 9d86: 6d43 mov r5, r0 + 9d88: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9d8a: 0c36 bf 0x9df6 // 9df6 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9d8c: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x04) return 0x02; + 9d8e: 3c04 cmphsi r4, 5 + 9d90: 0835 bt 0x9dfa // 9dfa + U8_T temp_num = ((data[8])&0xff); + 9d92: 8028 ld.b r1, (r0, 0x8) + 9d94: 3209 movi r2, 9 + 9d96: 3905 cmphsi r1, 6 + 9d98: 6080 addu r2, r0 + 9d9a: 6cc7 mov r3, r1 + 9d9c: 0c02 bf 0x9da0 // 9da0 + 9d9e: 3305 movi r3, 5 + 9da0: 60d0 addu r3, r4 + 9da2: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9da4: 10f7 lrw r7, 0x47c35000 // 9e00 + for(U8_T i = 0;i< temp_num;i++) + 9da6: 64d2 cmpne r4, r3 + 9da8: 080f bt 0x9dc6 // 9dc6 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9daa: e3fff183 bsr 0x80b0 // 80b0 + + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + 9dae: 3314 movi r3, 20 + 9db0: b860 st.w r3, (r14, 0x0) + 9db2: 3396 movi r3, 150 + 9db4: 6c17 mov r0, r5 + 9db6: 4361 lsli r3, r3, 1 + 9db8: 3201 movi r2, 1 + 9dba: 6c5b mov r1, r6 + 9dbc: e3ffee76 bsr 0x7aa8 // 7aa8 + 9dc0: 3000 movi r0, 0 + + return 0x00; +} + 9dc2: 1403 addi r14, r14, 12 + 9dc4: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9dc6: 8201 ld.b r0, (r2, 0x1) + 9dc8: 8220 ld.b r1, (r2, 0x0) + 9dca: 4008 lsli r0, r0, 8 + 9dcc: 6004 addu r0, r1 + 9dce: 8222 ld.b r1, (r2, 0x2) + 9dd0: 4130 lsli r1, r1, 16 + 9dd2: 6004 addu r0, r1 + 9dd4: b862 st.w r3, (r14, 0x8) + 9dd6: b841 st.w r2, (r14, 0x4) + 9dd8: e3ffcdc8 bsr 0x3968 // 3968 <__floatsisf> + temp_T /= 100000.0; + 9ddc: 6c5f mov r1, r7 + 9dde: e3ffcd2f bsr 0x383c // 383c <__divsf3> + 9de2: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9de4: 6c13 mov r0, r4 + 9de6: e3ffffb7 bsr 0x9d54 // 9d54 + 9dea: 2400 addi r4, 1 + 9dec: 9841 ld.w r2, (r14, 0x4) + 9dee: 2202 addi r2, 3 + 9df0: 7510 zextb r4, r4 + 9df2: 9862 ld.w r3, (r14, 0x8) + 9df4: 07d9 br 0x9da6 // 9da6 + if(lens < 10) return 0x01; + 9df6: 3001 movi r0, 1 + 9df8: 07e5 br 0x9dc2 // 9dc2 + if( ctrl_num > 0x04) return 0x02; + 9dfa: 3002 movi r0, 2 + 9dfc: 07e3 br 0x9dc2 // 9dc2 + 9dfe: 0000 bkpt + 9e00: 47c35000 .long 0x47c35000 + +Disassembly of section .text.BLV_Energy_SetCalibFactor_2: + +00009e04 : + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor_2(U8_T *data,U16_T lens) +{ + 9e04: 14d4 push r4-r7, r15 + 9e06: 1422 subi r14, r14, 8 + if(lens < 10) return 0x01; + 9e08: 3909 cmphsi r1, 10 +{ + 9e0a: 6d43 mov r5, r0 + 9e0c: 6d87 mov r6, r1 + if(lens < 10) return 0x01; + 9e0e: 0c32 bf 0x9e72 // 9e72 + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + 9e10: 8087 ld.b r4, (r0, 0x7) + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + 9e12: 3c05 cmphsi r4, 6 + 9e14: 0831 bt 0x9e76 // 9e76 + U8_T temp_num = ((data[8])&0xff); + 9e16: 8028 ld.b r1, (r0, 0x8) + 9e18: 3209 movi r2, 9 + 9e1a: 3903 cmphsi r1, 4 + 9e1c: 6080 addu r2, r0 + 9e1e: 6cc7 mov r3, r1 + 9e20: 0c02 bf 0x9e24 // 9e24 + 9e22: 3303 movi r3, 3 + 9e24: 60d0 addu r3, r4 + 9e26: 74cc zextb r3, r3 + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + 9e28: 10f5 lrw r7, 0x47c35000 // 9e7c + for(U8_T i = 0;i< temp_num;i++) + 9e2a: 64d2 cmpne r4, r3 + 9e2c: 080b bt 0x9e42 // 9e42 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + 9e2e: e3fff141 bsr 0x80b0 // 80b0 + + //数据原样返回 + BT_Uart_Packing(data,lens,REG_BTDEBUG_FLAG); //蓝牙发送 + 9e32: 7458 zextb r1, r6 + 9e34: 3206 movi r2, 6 + 9e36: 6c17 mov r0, r5 + 9e38: e3fffd72 bsr 0x991c // 991c + 9e3c: 3000 movi r0, 0 + + return 0x00; +} + 9e3e: 1402 addi r14, r14, 8 + 9e40: 1494 pop r4-r7, r15 + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + 9e42: 8201 ld.b r0, (r2, 0x1) + 9e44: 8220 ld.b r1, (r2, 0x0) + 9e46: 4008 lsli r0, r0, 8 + 9e48: 6004 addu r0, r1 + 9e4a: 8222 ld.b r1, (r2, 0x2) + 9e4c: 4130 lsli r1, r1, 16 + 9e4e: 6004 addu r0, r1 + 9e50: b861 st.w r3, (r14, 0x4) + 9e52: b840 st.w r2, (r14, 0x0) + 9e54: e3ffcd8a bsr 0x3968 // 3968 <__floatsisf> + temp_T /= 100000.0; + 9e58: 6c5f mov r1, r7 + 9e5a: e3ffccf1 bsr 0x383c // 383c <__divsf3> + 9e5e: 6c43 mov r1, r0 + SetCalibFactor_Switch(ctrl_num+i,temp_T); + 9e60: 6c13 mov r0, r4 + 9e62: e3ffff79 bsr 0x9d54 // 9d54 + 9e66: 2400 addi r4, 1 + 9e68: 9840 ld.w r2, (r14, 0x0) + 9e6a: 2202 addi r2, 3 + 9e6c: 7510 zextb r4, r4 + 9e6e: 9861 ld.w r3, (r14, 0x4) + 9e70: 07dd br 0x9e2a // 9e2a + if(lens < 10) return 0x01; + 9e72: 3001 movi r0, 1 + 9e74: 07e5 br 0x9e3e // 9e3e + if( ctrl_num > 0x05) return 0x02; + 9e76: 3002 movi r0, 2 + 9e78: 07e3 br 0x9e3e // 9e3e + 9e7a: 0000 bkpt + 9e7c: 47c35000 .long 0x47c35000 + +Disassembly of section .text.BLV_485Recv_Processing: + +00009e80 : + + +//485处理函数 +U8_T BLV_485Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + 9e80: 14d4 push r4-r7, r15 + 9e82: 1421 subi r14, r14, 4 + + if(RecvLen < 8){ + 9e84: 3907 cmphsi r1, 8 +{ + 9e86: 6d03 mov r4, r0 + 9e88: 6d87 mov r6, r1 + if(RecvLen < 8){ + 9e8a: 0c54 bf 0x9f32 // 9f32 + return 0x01; + } + + if(RecvData[4] != RecvLen){ + 9e8c: 8024 ld.b r1, (r0, 0x4) + 9e8e: 6586 cmpne r1, r6 + 9e90: 0c0a bf 0x9ea4 // 9ea4 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Data Len Error",__func__); + 9e92: 1254 lrw r2, 0xb2cc // 9fe0 + 9e94: 1234 lrw r1, 0xbeb0 // 9fe4 + 9e96: 3000 movi r0, 0 + 9e98: e3ffee96 bsr 0x7bc4 // 7bc4 + return 0x02; + 9e9c: 3502 movi r5, 2 + return 0x01; + break; + } + + return 0; +} + 9e9e: 6c17 mov r0, r5 + 9ea0: 1401 addi r14, r14, 4 + 9ea2: 1494 pop r4-r7, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + 9ea4: 8040 ld.b r2, (r0, 0x0) + 9ea6: 338a movi r3, 138 + 9ea8: 64ca cmpne r2, r3 + 9eaa: 0807 bt 0x9eb8 // 9eb8 + 9eac: 5864 addu r3, r0, r1 + 9eae: 2b00 subi r3, 1 + 9eb0: 8340 ld.b r2, (r3, 0x0) + 9eb2: 33a8 movi r3, 168 + 9eb4: 64ca cmpne r2, r3 + 9eb6: 0c08 bf 0x9ec6 // 9ec6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Head Error",__func__); + 9eb8: 124a lrw r2, 0xb2cc // 9fe0 + 9eba: 122c lrw r1, 0xbec2 // 9fe8 + 9ebc: 3000 movi r0, 0 + 9ebe: e3ffee83 bsr 0x7bc4 // 7bc4 + return 0x03; + 9ec2: 3503 movi r5, 3 + 9ec4: 07ed br 0x9e9e // 9e9e + if(RecvData[2] != DEV_TYPE){// + 9ec6: 8042 ld.b r2, (r0, 0x2) + 9ec8: 33f4 movi r3, 244 + 9eca: 64ca cmpne r2, r3 + 9ecc: 0c08 bf 0x9edc // 9edc + Dbg_Println(DBG_BIT_SYS_STATUS,"%s TYPE Error",__func__); + 9ece: 1245 lrw r2, 0xb2cc // 9fe0 + 9ed0: 1227 lrw r1, 0xbed0 // 9fec + 9ed2: 3000 movi r0, 0 + 9ed4: e3ffee78 bsr 0x7bc4 // 7bc4 + return 0x04; + 9ed8: 3504 movi r5, 4 + 9eda: 07e2 br 0x9e9e // 9e9e + if(RecvData[3] != g_Dip.addr){// + 9edc: 1265 lrw r3, 0x20000484 // 9ff0 + 9ede: 8043 ld.b r2, (r0, 0x3) + 9ee0: 8366 ld.b r3, (r3, 0x6) + 9ee2: 64ca cmpne r2, r3 + 9ee4: 0c08 bf 0x9ef4 // 9ef4 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error",__func__); + 9ee6: 115f lrw r2, 0xb2cc // 9fe0 + 9ee8: 1223 lrw r1, 0xbede // 9ff4 + 9eea: 3000 movi r0, 0 + 9eec: e3ffee6c bsr 0x7bc4 // 7bc4 + return 0x05; + 9ef0: 3505 movi r5, 5 + 9ef2: 07d6 br 0x9e9e // 9e9e + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + 9ef4: e3fff430 bsr 0x8754 // 8754 + 9ef8: 3840 cmpnei r0, 0 + 9efa: 6d43 mov r5, r0 + 9efc: 0c08 bf 0x9f0c // 9f0c + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 9efe: 1159 lrw r2, 0xb2cc // 9fe0 + 9f00: 113e lrw r1, 0xbeec // 9ff8 + 9f02: 3000 movi r0, 0 + 9f04: e3ffee60 bsr 0x7bc4 // 7bc4 + return 0x06; + 9f08: 3506 movi r5, 6 + 9f0a: 07ca br 0x9e9e // 9e9e + g_Eng.SdSN = RecvData[1]; //序列号 + 9f0c: 8461 ld.b r3, (r4, 0x1) + 9f0e: 11fc lrw r7, 0x20000574 // 9ffc + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9f10: 113c lrw r1, 0xbefb // a000 + 9f12: 3000 movi r0, 0 + g_Eng.SdSN = RecvData[1]; //序列号 + 9f14: a767 st.b r3, (r7, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + 9f16: 8446 ld.b r2, (r4, 0x6) + 9f18: e3ffee56 bsr 0x7bc4 // 7bc4 + switch(RecvData[6]) + 9f1c: 8446 ld.b r2, (r4, 0x6) + 9f1e: 3a44 cmpnei r2, 4 + 9f20: 0c47 bf 0x9fae // 9fae + 9f22: 3a04 cmphsi r2, 5 + 9f24: 0809 bt 0x9f36 // 9f36 + 9f26: 3a42 cmpnei r2, 2 + 9f28: 0c3a bf 0x9f9c // 9f9c + 9f2a: 3a02 cmphsi r2, 3 + 9f2c: 083c bt 0x9fa4 // 9fa4 + 9f2e: 3a41 cmpnei r2, 1 + 9f30: 0c33 bf 0x9f96 // 9f96 + return 0x01; + 9f32: 3501 movi r5, 1 + 9f34: 07b5 br 0x9e9e // 9e9e + switch(RecvData[6]) + 9f36: 3a54 cmpnei r2, 20 + 9f38: 0c3e bf 0x9fb4 // 9fb4 + 9f3a: 3a14 cmphsi r2, 21 + 9f3c: 0815 bt 0x9f66 // 9f66 + 9f3e: 3a53 cmpnei r2, 19 + 9f40: 0bf9 bt 0x9f32 // 9f32 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9f42: 9750 ld.w r2, (r7, 0x40) + 9f44: b751 st.w r2, (r7, 0x44) + g_Eng.LastPhase_Eng_B = g_Eng.Total_Eng_B; + 9f46: 9753 ld.w r2, (r7, 0x4c) + 9f48: b754 st.w r2, (r7, 0x50) + g_Eng.Eng_Report_Tim = SysTick_1ms; + 9f4a: 116f lrw r3, 0x200000c4 // a004 + 9f4c: 9340 ld.w r2, (r3, 0x0) + 9f4e: 116f lrw r3, 0x200005f4 // a008 + 9f50: b344 st.w r2, (r3, 0x10) + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 9f52: 3314 movi r3, 20 + 9f54: b860 st.w r3, (r14, 0x0) + 9f56: 3396 movi r3, 150 + 9f58: 4361 lsli r3, r3, 1 + 9f5a: 3201 movi r2, 1 + 9f5c: 6c5b mov r1, r6 + 9f5e: 6c13 mov r0, r4 + 9f60: e3ffeda4 bsr 0x7aa8 // 7aa8 + break; + 9f64: 079d br 0x9e9e // 9e9e + switch(RecvData[6]) + 9f66: 3a55 cmpnei r2, 21 + 9f68: 0c36 bf 0x9fd4 // 9fd4 + 9f6a: 3321 movi r3, 33 + 9f6c: 64ca cmpne r2, r3 + 9f6e: 0be2 bt 0x9f32 // 9f32 + Dbg_Switch = (RecvData[7]&0x1f); + 9f70: 8467 ld.b r3, (r4, 0x7) + 9f72: 321f movi r2, 31 + 9f74: 68c8 and r3, r2 + 9f76: 1146 lrw r2, 0x200000d8 // a00c + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 9f78: 6c5b mov r1, r6 + Dbg_Switch = (RecvData[7]&0x1f); + 9f7a: b260 st.w r3, (r2, 0x0) + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + 9f7c: 3314 movi r3, 20 + 9f7e: b860 st.w r3, (r14, 0x0) + 9f80: 3396 movi r3, 150 + 9f82: 4361 lsli r3, r3, 1 + 9f84: 3201 movi r2, 1 + 9f86: 6c13 mov r0, r4 + 9f88: e3ffed90 bsr 0x7aa8 // 7aa8 + g_Eng.BT_Print_valid = SysTick_1ms; + 9f8c: 107e lrw r3, 0x200000c4 // a004 + 9f8e: 9340 ld.w r2, (r3, 0x0) + 9f90: 107e lrw r3, 0x200005f4 // a008 + 9f92: b345 st.w r2, (r3, 0x14) + break; + 9f94: 0785 br 0x9e9e // 9e9e + Clear_SendFlag(); + 9f96: e3ffedbb bsr 0x7b0c // 7b0c + break; + 9f9a: 0782 br 0x9e9e // 9e9e + BLV_Energy_PassiveRep_Packing(0x02); + 9f9c: 3002 movi r0, 2 + 9f9e: e3fffd83 bsr 0x9aa4 // 9aa4 + break; + 9fa2: 077e br 0x9e9e // 9e9e + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + 9fa4: 6c5b mov r1, r6 + 9fa6: 6c13 mov r0, r4 + 9fa8: e3fffe3a bsr 0x9c1c // 9c1c + break; + 9fac: 0779 br 0x9e9e // 9e9e + BLV_Energy_QueryVersion_Packing(); + 9fae: e3fffe87 bsr 0x9cbc // 9cbc + break; + 9fb2: 0776 br 0x9e9e // 9e9e + g_Eng.Total_Eng = 0; + 9fb4: 3200 movi r2, 0 + 9fb6: b750 st.w r2, (r7, 0x40) + g_Eng.U32_EnergyA_RegData = 0x00; + 9fb8: b756 st.w r2, (r7, 0x58) + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + 9fba: b751 st.w r2, (r7, 0x44) + g_Eng.Total_Eng_B = 0; + 9fbc: b753 st.w r2, (r7, 0x4c) + g_Eng.U32_EnergyB_RegData = 0x00; + 9fbe: b758 st.w r2, (r7, 0x60) + g_Eng.LastPhase_Eng_B = g_Eng.Total_Eng_B; + 9fc0: b754 st.w r2, (r7, 0x50) + memset(&g_engfram,0,sizeof(FRAM_ENG_t)); + 9fc2: 3100 movi r1, 0 + 9fc4: 3210 movi r2, 16 + 9fc6: 1013 lrw r0, 0x20000848 // a010 + 9fc8: e3ffd4ba bsr 0x493c // 493c <__memset_fast> + FRAM_WriteTotalEng(&g_engfram); + 9fcc: 1011 lrw r0, 0x20000848 // a010 + 9fce: e000045b bsr 0xa884 // a884 + 9fd2: 07c0 br 0x9f52 // 9f52 + BLV_Energy_SetCalibFactor(RecvData,RecvLen); + 9fd4: 6c5b mov r1, r6 + 9fd6: 6c13 mov r0, r4 + 9fd8: e3fffed4 bsr 0x9d80 // 9d80 + break; + 9fdc: 0761 br 0x9e9e // 9e9e + 9fde: 0000 bkpt + 9fe0: 0000b2cc .long 0x0000b2cc + 9fe4: 0000beb0 .long 0x0000beb0 + 9fe8: 0000bec2 .long 0x0000bec2 + 9fec: 0000bed0 .long 0x0000bed0 + 9ff0: 20000484 .long 0x20000484 + 9ff4: 0000bede .long 0x0000bede + 9ff8: 0000beec .long 0x0000beec + 9ffc: 20000574 .long 0x20000574 + a000: 0000befb .long 0x0000befb + a004: 200000c4 .long 0x200000c4 + a008: 200005f4 .long 0x200005f4 + a00c: 200000d8 .long 0x200000d8 + a010: 20000848 .long 0x20000848 + +Disassembly of section .text.BT_Recv_Processing: + +0000a014 : + + + +//BT处理函数 +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + a014: 14d2 push r4-r5, r15 + a016: 1421 subi r14, r14, 4 + if(RecvLen < 8){ + a018: 3907 cmphsi r1, 8 +{ + a01a: 6d03 mov r4, r0 + a01c: 6c87 mov r2, r1 + if(RecvLen < 8){ + a01e: 0807 bt 0xa02c // a02c + Dbg_BT_Println(DBG_BIT_BT_STATUS,"LenMaxErr:%d",RecvLen); + a020: 1223 lrw r1, 0xbf11 // a12c + a022: 3003 movi r0, 3 + a024: e3ffee86 bsr 0x7d30 // 7d30 + Dbg_Switch &= (~0x08); + } + BT_Uart_Packing(RecvData,RecvLen,REG_BTDEBUG_FLAG); + break; + default: + return 0x01; + a028: 3501 movi r5, 1 + a02a: 0409 br 0xa03c // a03c + if(RecvData[4] != RecvLen){ + a02c: 8024 ld.b r1, (r0, 0x4) + a02e: 6486 cmpne r1, r2 + a030: 0c09 bf 0xa042 // a042 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"Len1Err:%d",RecvLen); + a032: 1220 lrw r1, 0xbf1e // a130 + a034: 3003 movi r0, 3 + a036: e3ffee7d bsr 0x7d30 // 7d30 + return 0x02; + a03a: 3502 movi r5, 2 + break; + } + + return 0; +} + a03c: 6c17 mov r0, r5 + a03e: 1401 addi r14, r14, 4 + a040: 1492 pop r4-r5, r15 + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + a042: 8000 ld.b r0, (r0, 0x0) + a044: 338a movi r3, 138 + a046: 64c2 cmpne r0, r3 + a048: 0807 bt 0xa056 // a056 + a04a: 5c64 addu r3, r4, r1 + a04c: 2b00 subi r3, 1 + a04e: 8300 ld.b r0, (r3, 0x0) + a050: 33a8 movi r3, 168 + a052: 64c2 cmpne r0, r3 + a054: 0c07 bf 0xa062 // a062 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"HeadErr"); + a056: 1138 lrw r1, 0xbf29 // a134 + a058: 3003 movi r0, 3 + a05a: e3ffee6b bsr 0x7d30 // 7d30 + return 0x03; + a05e: 3503 movi r5, 3 + a060: 07ee br 0xa03c // a03c + if(RecvData[2] != DEV_TYPE){// + a062: 8402 ld.b r0, (r4, 0x2) + a064: 33f4 movi r3, 244 + a066: 64c2 cmpne r0, r3 + a068: 0c07 bf 0xa076 // a076 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TYPEErr"); + a06a: 1134 lrw r1, 0xbf31 // a138 + a06c: 3003 movi r0, 3 + a06e: e3ffee61 bsr 0x7d30 // 7d30 + return 0x04; + a072: 3504 movi r5, 4 + a074: 07e4 br 0xa03c // a03c + if(RecvData[3] != g_Dip.addr){// + a076: 1172 lrw r3, 0x20000484 // a13c + a078: 8403 ld.b r0, (r4, 0x3) + a07a: 8366 ld.b r3, (r3, 0x6) + a07c: 64c2 cmpne r0, r3 + a07e: 0c07 bf 0xa08c // a08c + Dbg_BT_Println(DBG_BIT_BT_STATUS,"AddrErr"); + a080: 1130 lrw r1, 0xbf39 // a140 + a082: 3003 movi r0, 3 + a084: e3ffee56 bsr 0x7d30 // 7d30 + return 0x05; + a088: 3505 movi r5, 5 + a08a: 07d9 br 0xa03c // a03c + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + a08c: 6c13 mov r0, r4 + a08e: b840 st.w r2, (r14, 0x0) + a090: e3fff362 bsr 0x8754 // 8754 + a094: 3840 cmpnei r0, 0 + a096: 6d43 mov r5, r0 + a098: 9840 ld.w r2, (r14, 0x0) + a09a: 0c07 bf 0xa0a8 // a0a8 + Dbg_BT_Println(DBG_BIT_BT_STATUS,"CheckErr"); + a09c: 112a lrw r1, 0xbf41 // a144 + a09e: 3003 movi r0, 3 + a0a0: e3ffee48 bsr 0x7d30 // 7d30 + return 0x06; + a0a4: 3506 movi r5, 6 + a0a6: 07cb br 0xa03c // a03c + g_Eng.SdSN = (RecvData[1]&0x0F); //序列号 + a0a8: 8421 ld.b r1, (r4, 0x1) + a0aa: 300f movi r0, 15 + a0ac: 6840 and r1, r0 + a0ae: 1167 lrw r3, 0x20000574 // a148 + a0b0: a327 st.b r1, (r3, 0x7) + switch(RecvData[6]) + a0b2: 8426 ld.b r1, (r4, 0x6) + a0b4: 3944 cmpnei r1, 4 + a0b6: 0c21 bf 0xa0f8 // a0f8 + a0b8: 3904 cmphsi r1, 5 + a0ba: 080a bt 0xa0ce // a0ce + a0bc: 3942 cmpnei r1, 2 + a0be: 0fbf bf 0xa03c // a03c + a0c0: 3943 cmpnei r1, 3 + a0c2: 0bb3 bt 0xa028 // a028 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + a0c4: 6c4b mov r1, r2 + a0c6: 6c13 mov r0, r4 + a0c8: e3fffdaa bsr 0x9c1c // 9c1c + break; + a0cc: 07b8 br 0xa03c // a03c + switch(RecvData[6]) + a0ce: 3955 cmpnei r1, 21 + a0d0: 0c17 bf 0xa0fe // a0fe + a0d2: 3021 movi r0, 33 + a0d4: 6406 cmpne r1, r0 + a0d6: 0c19 bf 0xa108 // a108 + a0d8: 3953 cmpnei r1, 19 + a0da: 0ba7 bt 0xa028 // a028 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + a0dc: 9330 ld.w r1, (r3, 0x40) + a0de: b331 st.w r1, (r3, 0x44) + g_Eng.LastPhase_Eng_B = g_Eng.Total_Eng_B; + a0e0: 9333 ld.w r1, (r3, 0x4c) + a0e2: b334 st.w r1, (r3, 0x50) + g_Eng.Eng_Report_Tim = SysTick_1ms; + a0e4: 107a lrw r3, 0x200000c4 // a14c + a0e6: 9320 ld.w r1, (r3, 0x0) + a0e8: 107a lrw r3, 0x200005f4 // a150 + a0ea: b324 st.w r1, (r3, 0x10) + BT_Uart_Packing(RecvData,RecvLen,REG_BTDEBUG_FLAG); + a0ec: 7448 zextb r1, r2 + a0ee: 6c13 mov r0, r4 + a0f0: 3206 movi r2, 6 + a0f2: e3fffc15 bsr 0x991c // 991c + break; + a0f6: 07a3 br 0xa03c // a03c + BLV_Energy_QueryVersion_Packing(); + a0f8: e3fffde2 bsr 0x9cbc // 9cbc + break; + a0fc: 07a0 br 0xa03c // a03c + BLV_Energy_SetCalibFactor_2(RecvData,RecvLen); + a0fe: 6c4b mov r1, r2 + a100: 6c13 mov r0, r4 + a102: e3fffe81 bsr 0x9e04 // 9e04 + break; + a106: 079b br 0xa03c // a03c + if( (RecvData[7]&0x08) != 0x00 ){ + a108: 3108 movi r1, 8 + a10a: 8467 ld.b r3, (r4, 0x7) + a10c: 68c4 and r3, r1 + a10e: 3b40 cmpnei r3, 0 + a110: 1071 lrw r3, 0x200000d8 // a154 + Dbg_Switch |= 0x08; + a112: 9320 ld.w r1, (r3, 0x0) + if( (RecvData[7]&0x08) != 0x00 ){ + a114: 0c08 bf 0xa124 // a124 + Dbg_Switch |= 0x08; + a116: 39a3 bseti r1, 3 + a118: b320 st.w r1, (r3, 0x0) + g_Eng.BT_Print_valid = SysTick_1ms; + a11a: 106d lrw r3, 0x200000c4 // a14c + a11c: 9320 ld.w r1, (r3, 0x0) + a11e: 106d lrw r3, 0x200005f4 // a150 + a120: b325 st.w r1, (r3, 0x14) + a122: 07e5 br 0xa0ec // a0ec + Dbg_Switch &= (~0x08); + a124: 3983 bclri r1, 3 + a126: b320 st.w r1, (r3, 0x0) + a128: 07e2 br 0xa0ec // a0ec + a12a: 0000 bkpt + a12c: 0000bf11 .long 0x0000bf11 + a130: 0000bf1e .long 0x0000bf1e + a134: 0000bf29 .long 0x0000bf29 + a138: 0000bf31 .long 0x0000bf31 + a13c: 20000484 .long 0x20000484 + a140: 0000bf39 .long 0x0000bf39 + a144: 0000bf41 .long 0x0000bf41 + a148: 20000574 .long 0x20000574 + a14c: 200000c4 .long 0x200000c4 + a150: 200005f4 .long 0x200005f4 + a154: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Boot_Function_Init: + +0000a158 : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + a158: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + a15a: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + a15c: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + a15e: 4241 lsli r2, r2, 1 + a160: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + a162: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + a164: 1101 lrw r0, 0x2000060c // a1e8 + a166: e3ffd3eb bsr 0x493c // 493c <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + a16a: 6c97 mov r2, r5 + a16c: 3100 movi r1, 0 + a16e: 1100 lrw r0, 0x20000748 // a1ec + a170: e3ffd3e6 bsr 0x493c // 493c <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + a174: 33fa movi r3, 250 + a176: 4362 lsli r3, r3, 2 + a178: 109e lrw r4, 0x2000070c // a1f0 + a17a: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + a17c: e3fff1ce bsr 0x8518 // 8518 +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + a180: 107d lrw r3, 0x2000005c // a1f4 + a182: 9360 ld.w r3, (r3, 0x0) + a184: 23ff addi r3, 256 + a186: 9343 ld.w r2, (r3, 0xc) + a188: 7449 zexth r1, r2 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + a18a: 6546 cmpne r1, r5 + a18c: 0808 bt 0xa19c // a19c + { + g_boot.bootTimeout = 5000; + a18e: 107b lrw r3, 0x1388 // a1f8 + a190: b46d st.w r3, (r4, 0x34) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS," Boot software reset"); + a192: 103b lrw r1, 0xbf4a // a1fc + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + a194: 3000 movi r0, 0 + a196: e3ffed17 bsr 0x7bc4 // 7bc4 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + a19a: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + a19c: 3941 cmpnei r1, 1 + a19e: 0806 bt 0xa1aa // a1aa + g_boot.bootTimeout = 500; + a1a0: 33fa movi r3, 250 + a1a2: 4361 lsli r3, r3, 1 + a1a4: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot power on reset"); + a1a6: 1037 lrw r1, 0xbf5f // a200 + a1a8: 07f6 br 0xa194 // a194 + a1aa: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x04) //外部手动复位 + a1ac: 3944 cmpnei r1, 4 + a1ae: 4363 lsli r3, r3, 3 + a1b0: 0804 bt 0xa1b8 // a1b8 + g_boot.bootTimeout = 2000; + a1b2: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex-pin reset"); + a1b4: 1034 lrw r1, 0xbf73 // a204 + a1b6: 07ef br 0xa194 // a194 + }else if(sys_reset_sta == 0x10) //看门狗超时复位 --升级完成复位源 + a1b8: 3950 cmpnei r1, 16 + a1ba: 0804 bt 0xa1c2 // a1c2 + g_boot.bootTimeout = 2000; + a1bc: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot wdt reset"); + a1be: 1033 lrw r1, 0xbf85 // a208 + a1c0: 07ea br 0xa194 // a194 + }else if(sys_reset_sta == 0x40) //外部时钟无效复位 + a1c2: 3040 movi r0, 64 + a1c4: 6406 cmpne r1, r0 + a1c6: 0804 bt 0xa1ce // a1ce + g_boot.bootTimeout = 2000; + a1c8: b46d st.w r3, (r4, 0x34) + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex clock invalid reset"); + a1ca: 1031 lrw r1, 0xbf94 // a20c + a1cc: 07e4 br 0xa194 // a194 + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + a1ce: 3080 movi r0, 128 + a1d0: 6406 cmpne r1, r0 + g_boot.bootTimeout = 2000; + a1d2: b46d st.w r3, (r4, 0x34) + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + a1d4: 0803 bt 0xa1da // a1da + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); + a1d6: 102f lrw r1, 0xbfb0 // a210 + a1d8: 07de br 0xa194 // a194 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); + a1da: 7489 zexth r2, r2 + a1dc: 102e lrw r1, 0xbfc7 // a214 + a1de: 3000 movi r0, 0 + a1e0: e3ffecf2 bsr 0x7bc4 // 7bc4 +} + a1e4: 07db br 0xa19a // a19a + a1e6: 0000 bkpt + a1e8: 2000060c .long 0x2000060c + a1ec: 20000748 .long 0x20000748 + a1f0: 2000070c .long 0x2000070c + a1f4: 2000005c .long 0x2000005c + a1f8: 00001388 .long 0x00001388 + a1fc: 0000bf4a .long 0x0000bf4a + a200: 0000bf5f .long 0x0000bf5f + a204: 0000bf73 .long 0x0000bf73 + a208: 0000bf85 .long 0x0000bf85 + a20c: 0000bf94 .long 0x0000bf94 + a210: 0000bfb0 .long 0x0000bfb0 + a214: 0000bfc7 .long 0x0000bfc7 + +Disassembly of section .text.Boot_Comm_CheckSum: + +0000a218 : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + a218: 14c1 push r4 + U8_T sum = 0; + a21a: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + a21c: 1047 lrw r2, 0xffff // a238 + a21e: 2900 subi r1, 1 + a220: 7445 zexth r1, r1 + a222: 6486 cmpne r1, r2 + a224: 0804 bt 0xa22c // a22c + { + sum += buffer[i]; + i++; + } + return (~sum); + a226: 6cce nor r3, r3 + a228: 740c zextb r0, r3 +} + a22a: 1481 pop r4 + sum += buffer[i]; + a22c: 8080 ld.b r4, (r0, 0x0) + a22e: 60d0 addu r3, r4 + a230: 74cc zextb r3, r3 + a232: 2000 addi r0, 1 + a234: 07f5 br 0xa21e // a21e + a236: 0000 bkpt + a238: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +0000a23c : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + a23c: 14d4 push r4-r7, r15 + a23e: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a240: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a242: 1077 lrw r3, 0x200004c8 // a29c + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a244: 47e1 lsli r7, r7, 1 + a246: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a248: 8340 ld.b r2, (r3, 0x0) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + a24a: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a24c: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + a24e: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a250: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + a252: 1074 lrw r3, 0x2000060c // a2a0 + a254: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + a256: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + a258: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + a25a: 8062 ld.b r3, (r0, 0x2) + a25c: a06b st.b r3, (r0, 0xb) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + a25e: 4d68 lsri r3, r5, 8 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a260: 58ce addi r6, r0, 4 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + a262: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + a264: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + a266: 8041 ld.b r2, (r0, 0x1) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a268: 3300 movi r3, 0 +{ + a26a: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + a26c: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + a26e: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + a270: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + a272: 6c57 mov r1, r5 + a274: 6c1b mov r0, r6 + a276: e3ffffd1 bsr 0xa218 // a218 + a27a: a40a st.b r0, (r4, 0xa) + +#if DBG_LOG_EN + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"ACKBuff ",ack_uart->ackBuffer,data_len); + a27c: 6cd7 mov r3, r5 + a27e: 6c9b mov r2, r6 + a280: 1029 lrw r1, 0xbfdd // a2a4 + a282: 3000 movi r0, 0 + a284: e3ffed14 bsr 0x7cac // 7cac +#endif + + //MCU485_SendData(ack_uart->ackBuffer, data_len); + Set_GroupSend(ack_uart->ackBuffer,data_len,0x01,ack_uart->ackValidity,100); + a288: 3264 movi r2, 100 + a28a: 8f79 ld.h r3, (r7, 0x32) + a28c: 6c57 mov r1, r5 + a28e: b840 st.w r2, (r14, 0x0) + a290: 6c1b mov r0, r6 + a292: 3201 movi r2, 1 + a294: e3ffec0a bsr 0x7aa8 // 7aa8 + + //ack_uart->ackLen = 0x00; +} + a298: 1401 addi r14, r14, 4 + a29a: 1494 pop r4-r7, r15 + a29c: 200004c8 .long 0x200004c8 + a2a0: 2000060c .long 0x2000060c + a2a4: 0000bfdd .long 0x0000bfdd + +Disassembly of section .text.Boot_Time_Refresh: + +0000a2a8 : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + a2a8: 1063 lrw r3, 0x200000c4 // a2b4 + a2aa: 9340 ld.w r2, (r3, 0x0) + a2ac: 1063 lrw r3, 0x2000070c // a2b8 + a2ae: b34e st.w r2, (r3, 0x38) +} + a2b0: 783c jmp r15 + a2b2: 0000 bkpt + a2b4: 200000c4 .long 0x200000c4 + a2b8: 2000070c .long 0x2000070c + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +0000a2bc : +{ + a2bc: 14d4 push r4-r7, r15 + a2be: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + a2c0: 8065 ld.b r3, (r0, 0x5) + a2c2: 8044 ld.b r2, (r0, 0x4) + a2c4: 4368 lsli r3, r3, 8 + a2c6: 6cc8 or r3, r2 + if(len != data_len) { + a2c8: 644e cmpne r3, r1 +{ + a2ca: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + a2cc: b862 st.w r3, (r14, 0x8) + if(len != data_len) { + a2ce: 0c08 bf 0xa2de // a2de + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Fail "); + a2d0: 3000 movi r0, 0 + a2d2: 1333 lrw r1, 0xbfe6 // a49c + a2d4: e3ffec78 bsr 0x7bc4 // 7bc4 + return 0x01; + a2d8: 3001 movi r0, 1 +} + a2da: 1403 addi r14, r14, 12 + a2dc: 1494 pop r4-r7, r15 + if(Boot_Comm_CheckSum(data,len) != 0) { + a2de: 9822 ld.w r1, (r14, 0x8) + a2e0: e3ffff9c bsr 0xa218 // a218 + a2e4: 3840 cmpnei r0, 0 + a2e6: b801 st.w r0, (r14, 0x4) + a2e8: 0c07 bf 0xa2f6 // a2f6 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_CheckSum Fail "); + a2ea: 3000 movi r0, 0 + a2ec: 132d lrw r1, 0xbff0 // a4a0 + a2ee: e3ffec6b bsr 0x7bc4 // 7bc4 + return 0x02; + a2f2: 3002 movi r0, 2 + a2f4: 07f3 br 0xa2da // a2da + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a2f6: 8561 ld.b r3, (r5, 0x1) + a2f8: 748e sextb r2, r3 + a2fa: 3adf btsti r2, 31 + a2fc: 138a lrw r4, 0x2000060c // a4a4 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a2fe: 8421 ld.b r1, (r4, 0x1) + a300: 320f movi r2, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + a302: 0c23 bf 0xa348 // a348 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a304: 68c8 and r3, r2 + a306: 64c6 cmpne r1, r3 + a308: 0c0b bf 0xa31e // a31e + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN Disaffinity,Processing Data"); + a30a: 1328 lrw r1, 0xc009 // a4a8 + a30c: 3000 movi r0, 0 + a30e: e3ffec5b bsr 0x7bc4 // 7bc4 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a312: 3300 movi r3, 0 + a314: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a316: 3701 movi r7, 1 + deal_flag = 0x01; + a318: 3301 movi r3, 1 + deal_flag = 0x01; + a31a: b861 st.w r3, (r14, 0x4) + a31c: 0408 br 0xa32c // a32c + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN The Same,No Processing Data"); + a31e: 1324 lrw r1, 0xc033 // a4ac + a320: 3000 movi r0, 0 + a322: e3ffec51 bsr 0x7bc4 // 7bc4 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a326: 3300 movi r3, 0 + a328: b860 st.w r3, (r14, 0x0) + group_flag = 0x01; + a32a: 3701 movi r7, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + a32c: 13c1 lrw r6, 0x200004c8 // a4b0 + a32e: 8562 ld.b r3, (r5, 0x2) + a330: 8641 ld.b r2, (r6, 0x1) + a332: 648e cmpne r3, r2 + a334: 0c28 bf 0xa384 // a384 + a336: 31ff movi r1, 255 + a338: 644e cmpne r3, r1 + a33a: 0c25 bf 0xa384 // a384 + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvType %d - %d ",g_mcu_dev.dev_type,data[BCOMM_FMT_TYPE]); + a33c: 3000 movi r0, 0 + a33e: 123e lrw r1, 0xc0b3 // a4b4 + a340: e3ffec42 bsr 0x7bc4 // 7bc4 + return 0x03; + a344: 3003 movi r0, 3 + a346: 07ca br 0xa2da // a2da + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + a348: 688c and r2, r3 + a34a: 6486 cmpne r1, r2 + a34c: 0c09 bf 0xa35e // a35e + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN Disaffinity,Processing Data"); + a34e: 123b lrw r1, 0xc05d // a4b8 + a350: 3000 movi r0, 0 + a352: e3ffec39 bsr 0x7bc4 // 7bc4 + reply_flag = 0x01; + a356: 3301 movi r3, 1 + group_flag = 0x00; + a358: 3700 movi r7, 0 + reply_flag = 0x01; + a35a: b860 st.w r3, (r14, 0x0) + a35c: 07df br 0xa31a // a31a + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + a35e: 3240 movi r2, 64 + a360: 68c8 and r3, r2 + a362: 3b40 cmpnei r3, 0 + a364: 0c0d bf 0xa37e // a37e + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + a366: 846b ld.b r3, (r4, 0xb) + a368: 8547 ld.b r2, (r5, 0x7) + a36a: 64ca cmpne r2, r3 + a36c: 64c3 mvcv r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a36e: 74cc zextb r3, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a370: 1233 lrw r1, 0xc088 // a4bc + a372: 3000 movi r0, 0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a374: b860 st.w r3, (r14, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); + a376: e3ffec27 bsr 0x7bc4 // 7bc4 + group_flag = 0x00; + a37a: 3700 movi r7, 0 + a37c: 07d8 br 0xa32c // a32c + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + a37e: 3300 movi r3, 0 + a380: b860 st.w r3, (r14, 0x0) + a382: 07fc br 0xa37a // a37a + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + a384: 8563 ld.b r3, (r5, 0x3) + a386: 8640 ld.b r2, (r6, 0x0) + a388: 648e cmpne r3, r2 + a38a: 0c0a bf 0xa39e // a39e + a38c: 31ff movi r1, 255 + a38e: 644e cmpne r3, r1 + a390: 0c07 bf 0xa39e // a39e + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvAddr %d - %d ",g_mcu_dev.dev_addr,data[BCOMM_FMT_RXAddr]); + a392: 3000 movi r0, 0 + a394: 122b lrw r1, 0xc0cf // a4c0 + a396: e3ffec17 bsr 0x7bc4 // 7bc4 + return 0x04; + a39a: 3004 movi r0, 4 + a39c: 079f br 0xa2da // a2da + Boot_Time_Refresh(); + a39e: e3ffff85 bsr 0xa2a8 // a2a8 + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + a3a2: 8560 ld.b r3, (r5, 0x0) + a3a4: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + a3a6: 8561 ld.b r3, (r5, 0x1) + a3a8: 320f movi r2, 15 + a3aa: 68c8 and r3, r2 + a3ac: a461 st.b r3, (r4, 0x1) + switch(g_boot.cmd){ + a3ae: 32c0 movi r2, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a3b0: 8567 ld.b r3, (r5, 0x7) + switch(g_boot.cmd){ + a3b2: 648e cmpne r3, r2 + g_boot.cmd = data[BCOMM_FMT_CMD]; + a3b4: a462 st.b r3, (r4, 0x2) + switch(g_boot.cmd){ + a3b6: 0c06 bf 0xa3c2 // a3c2 + a3b8: 32c1 movi r2, 193 + a3ba: 648e cmpne r3, r2 + a3bc: 0c53 bf 0xa462 // a462 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a3be: 3301 movi r3, 1 + a3c0: 045f br 0xa47e // a47e + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + a3c2: 9861 ld.w r3, (r14, 0x4) + a3c4: 3b41 cmpnei r3, 1 + a3c6: 081d bt 0xa400 // a400 + a3c8: 9862 ld.w r3, (r14, 0x8) + a3ca: 3b0b cmphsi r3, 12 + a3cc: 0c1a bf 0xa400 // a400 + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Handshake Proecessing "); + a3ce: 113e lrw r1, 0xc0eb // a4c4 + a3d0: 3000 movi r0, 0 + a3d2: e3ffebf9 bsr 0x7bc4 // 7bc4 + temp_data |= data[BCOMM_FMT_PARAM]; + a3d6: 8549 ld.b r2, (r5, 0x9) + a3d8: 8568 ld.b r3, (r5, 0x8) + a3da: 4248 lsli r2, r2, 8 + a3dc: 6c8c or r2, r3 + if(temp_data != g_boot.bootTimeout){ + a3de: 117b lrw r3, 0x2000070c // a4c8 + a3e0: 932d ld.w r1, (r3, 0x34) + a3e2: 644a cmpne r2, r1 + a3e4: 0c09 bf 0xa3f6 // a3f6 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a3e6: 3a09 cmphsi r2, 10 + a3e8: 0c3b bf 0xa45e // a45e + a3ea: b34d st.w r2, (r3, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + a3ec: 31fa movi r1, 250 + a3ee: 934d ld.w r2, (r3, 0x34) + a3f0: 4122 lsli r1, r1, 2 + a3f2: 7c84 mult r2, r1 + a3f4: b34d st.w r2, (r3, 0x34) + a3f6: 854b ld.b r2, (r5, 0xb) + a3f8: 852a ld.b r1, (r5, 0xa) + a3fa: 4248 lsli r2, r2, 8 + a3fc: 6c84 or r2, r1 + g_boot.ackValidity = temp_data; + a3fe: ab59 st.h r2, (r3, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + a400: 9860 ld.w r3, (r14, 0x0) + a402: 3b41 cmpnei r3, 1 + a404: 0b6b bt 0xa2da // a2da + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + a406: 3302 movi r3, 2 + a408: a46c st.b r3, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + a40a: 8662 ld.b r3, (r6, 0x2) + a40c: a46d st.b r3, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + a40e: 8663 ld.b r3, (r6, 0x3) + a410: a46e st.b r3, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + a412: 3303 movi r3, 3 + a414: a46f st.b r3, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + a416: 116e lrw r3, 0x2000005c // a4cc + a418: 9360 ld.w r3, (r3, 0x0) + a41a: 237f addi r3, 128 + a41c: 9359 ld.w r2, (r3, 0x64) + a41e: a450 st.b r2, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + a420: 935a ld.w r2, (r3, 0x68) + a422: a451 st.b r2, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + a424: 937b ld.w r3, (r3, 0x6c) + a426: a472 st.b r3, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + a428: 8644 ld.b r2, (r6, 0x4) + a42a: 3320 movi r3, 32 + a42c: 648c cmphs r3, r2 + a42e: 0802 bt 0xa432 // a432 + a430: a664 st.b r3, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + a432: 8664 ld.b r3, (r6, 0x4) + a434: a473 st.b r3, (r4, 0x13) + a436: 3320 movi r3, 32 + a438: 103e lrw r1, 0x200004c8 // a4b0 + a43a: 105b lrw r2, 0x2000060c // a4a4 + a43c: 2b00 subi r3, 1 + a43e: 74cc zextb r3, r3 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + a440: 8105 ld.b r0, (r1, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + a44c: 107f lrw r3, 0x2000070c // a4c8 + a44e: 3228 movi r2, 40 + a450: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a452: 3f40 cmpnei r7, 0 + a454: 0b43 bt 0xa2da // a2da + Boot_Comm_FillReplyPack(&g_boot); + a456: 1014 lrw r0, 0x2000060c // a4a4 + a458: e3fffef2 bsr 0xa23c // a23c + a45c: 073f br 0xa2da // a2da + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + a45e: 320a movi r2, 10 + a460: 07c5 br 0xa3ea // a3ea + if(deal_flag != 0x01) break; //不处理直接退出 + a462: 9861 ld.w r3, (r14, 0x4) + a464: 3b41 cmpnei r3, 1 + a466: 0810 bt 0xa486 // a486 + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Jump Proecessing "); + a468: 103a lrw r1, 0xc10c // a4d0 + a46a: 3000 movi r0, 0 + a46c: e3ffebac bsr 0x7bc4 // 7bc4 + if(data[BCOMM_FMT_PARAM] == 0x01){ + a470: 8568 ld.b r3, (r5, 0x8) + a472: 3b41 cmpnei r3, 1 + a474: 080e bt 0xa490 // a490 + BUS485_Jump_Boot(0x01); + a476: 3001 movi r0, 1 + a478: e3ffeb52 bsr 0x7b1c // 7b1c + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + a47c: 3300 movi r3, 0 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + a47e: a46c st.b r3, (r4, 0xc) + g_boot.ackLen = 1; + a480: 3201 movi r2, 1 + a482: 1072 lrw r3, 0x2000070c // a4c8 + a484: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + a486: 3f40 cmpnei r7, 0 + a488: 0b29 bt 0xa2da // a2da + a48a: 9860 ld.w r3, (r14, 0x0) + a48c: 3b41 cmpnei r3, 1 + a48e: 07e3 br 0xa454 // a454 + Dbg_Println(DBG_BIT_SYS_STATUS,"ERR:Jump_boot"); + a490: 1031 lrw r1, 0xc128 // a4d4 + a492: 3000 movi r0, 0 + a494: e3ffeb98 bsr 0x7bc4 // 7bc4 + a498: 0793 br 0xa3be // a3be + a49a: 0000 bkpt + a49c: 0000bfe6 .long 0x0000bfe6 + a4a0: 0000bff0 .long 0x0000bff0 + a4a4: 2000060c .long 0x2000060c + a4a8: 0000c009 .long 0x0000c009 + a4ac: 0000c033 .long 0x0000c033 + a4b0: 200004c8 .long 0x200004c8 + a4b4: 0000c0b3 .long 0x0000c0b3 + a4b8: 0000c05d .long 0x0000c05d + a4bc: 0000c088 .long 0x0000c088 + a4c0: 0000c0cf .long 0x0000c0cf + a4c4: 0000c0eb .long 0x0000c0eb + a4c8: 2000070c .long 0x2000070c + a4cc: 2000005c .long 0x2000005c + a4d0: 0000c10c .long 0x0000c10c + a4d4: 0000c128 .long 0x0000c128 + +Disassembly of section .text.Fram_SDA_GPIO.part.0: + +0000a4d8 : + * @brief : 修改IIC通讯的SDA输入/输出模式 + * @param : state : 0x01,输出模式; other : 输入模式(有硬件上拉) + * @retval : 无 + * @note : 注意输入模式要上拉 +*******************************************************************************/ +void Fram_SDA_GPIO(U8_T state) + a4d8: 14d0 push r15 +{ + if(state == 0x01) + { + //设置为输出模式 + GPIO_Init(GPIOB0,FRAM_IIC_SDA,Output); + a4da: 1064 lrw r3, 0x20000048 // a4e8 + a4dc: 3200 movi r2, 0 + a4de: 9300 ld.w r0, (r3, 0x0) + a4e0: 3100 movi r1, 0 + a4e2: e3ffdebf bsr 0x6260 // 6260 + }else { + //设置为输入上拉模式 + GPIO_Init(GPIOB0,FRAM_IIC_SDA,Intput); + } +} + a4e6: 1490 pop r15 + a4e8: 20000048 .long 0x20000048 + +Disassembly of section .text.Fram_SDA_GPIO: + +0000a4ec : +{ + a4ec: 14d0 push r15 + if(state == 0x01) + a4ee: 3841 cmpnei r0, 1 + a4f0: 0804 bt 0xa4f8 // a4f8 + a4f2: e3fffff3 bsr 0xa4d8 // a4d8 +} + a4f6: 1490 pop r15 + GPIO_Init(GPIOB0,FRAM_IIC_SDA,Intput); + a4f8: 1064 lrw r3, 0x20000048 // a508 + a4fa: 3201 movi r2, 1 + a4fc: 9300 ld.w r0, (r3, 0x0) + a4fe: 3100 movi r1, 0 + a500: e3ffdeb0 bsr 0x6260 // 6260 +} + a504: 07f9 br 0xa4f6 // a4f6 + a506: 0000 bkpt + a508: 20000048 .long 0x20000048 + +Disassembly of section .text.IIC_Wait: + +0000a50c : + * 1、本项目主频48M, 时钟周期nop约为20.8ns + * 2、IIC快速模式延时需要0.6亅= 29个nop +*******************************************************************************/ +void IIC_Wait(void) +{ + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + a50c: 6c03 mov r0, r0 + a50e: 6c03 mov r0, r0 + a510: 6c03 mov r0, r0 + a512: 6c03 mov r0, r0 + a514: 6c03 mov r0, r0 + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + a516: 6c03 mov r0, r0 + a518: 6c03 mov r0, r0 + a51a: 6c03 mov r0, r0 + a51c: 6c03 mov r0, r0 + a51e: 6c03 mov r0, r0 + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + a520: 6c03 mov r0, r0 + a522: 6c03 mov r0, r0 + a524: 6c03 mov r0, r0 + a526: 6c03 mov r0, r0 + a528: 6c03 mov r0, r0 + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + a52a: 6c03 mov r0, r0 + a52c: 6c03 mov r0, r0 + a52e: 6c03 mov r0, r0 + a530: 6c03 mov r0, r0 + a532: 6c03 mov r0, r0 + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + a534: 6c03 mov r0, r0 + a536: 6c03 mov r0, r0 + a538: 6c03 mov r0, r0 + a53a: 6c03 mov r0, r0 + a53c: 6c03 mov r0, r0 + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + a53e: 6c03 mov r0, r0 + a540: 6c03 mov r0, r0 + a542: 6c03 mov r0, r0 + a544: 6c03 mov r0, r0 +} + a546: 783c jmp r15 + +Disassembly of section .text.IIC_Start: + +0000a548 : + * @brief : IIC通讯开始 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_Start(void) +{ + a548: 14d2 push r4-r5, r15 + Fram_SDA_GPIO(0x01); + SDA_ON; + a54a: 10ae lrw r5, 0x20000048 // a580 + a54c: e3ffffc6 bsr 0xa4d8 // a4d8 + SCL_ON; + a550: 108d lrw r4, 0x2000004c // a584 + SDA_ON; + a552: 3100 movi r1, 0 + a554: 9500 ld.w r0, (r5, 0x0) + a556: e3ffe00b bsr 0x656c // 656c + SCL_ON; + a55a: 9400 ld.w r0, (r4, 0x0) + a55c: 310d movi r1, 13 + a55e: e3ffe007 bsr 0x656c // 656c + IIC_Wait(); + a562: e3ffffd5 bsr 0xa50c // a50c + SDA_OFF; + a566: 9500 ld.w r0, (r5, 0x0) + a568: 3100 movi r1, 0 + a56a: e3ffe005 bsr 0x6574 // 6574 + IIC_Wait(); + a56e: e3ffffcf bsr 0xa50c // a50c + SCL_OFF; + a572: 9400 ld.w r0, (r4, 0x0) + a574: 310d movi r1, 13 + a576: e3ffdfff bsr 0x6574 // 6574 + IIC_Wait(); + a57a: e3ffffc9 bsr 0xa50c // a50c +} + a57e: 1492 pop r4-r5, r15 + a580: 20000048 .long 0x20000048 + a584: 2000004c .long 0x2000004c + +Disassembly of section .text.IIC_Stop: + +0000a588 : + * @brief : IIC通讯结束 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_Stop(void) +{ + a588: 14d2 push r4-r5, r15 + Fram_SDA_GPIO(0x01); + SCL_OFF; + a58a: 10ad lrw r5, 0x2000004c // a5bc + a58c: e3ffffa6 bsr 0xa4d8 // a4d8 + SDA_OFF; + a590: 108c lrw r4, 0x20000048 // a5c0 + SCL_OFF; + a592: 310d movi r1, 13 + a594: 9500 ld.w r0, (r5, 0x0) + a596: e3ffdfef bsr 0x6574 // 6574 + SDA_OFF; + a59a: 9400 ld.w r0, (r4, 0x0) + a59c: 3100 movi r1, 0 + a59e: e3ffdfeb bsr 0x6574 // 6574 + IIC_Wait(); + a5a2: e3ffffb5 bsr 0xa50c // a50c + SCL_ON; + a5a6: 9500 ld.w r0, (r5, 0x0) + a5a8: 310d movi r1, 13 + a5aa: e3ffdfe1 bsr 0x656c // 656c + IIC_Wait(); + a5ae: e3ffffaf bsr 0xa50c // a50c + SDA_ON; + a5b2: 9400 ld.w r0, (r4, 0x0) + a5b4: 3100 movi r1, 0 + a5b6: e3ffdfdb bsr 0x656c // 656c +} + a5ba: 1492 pop r4-r5, r15 + a5bc: 2000004c .long 0x2000004c + a5c0: 20000048 .long 0x20000048 + +Disassembly of section .text.IIC_ACK: + +0000a5c4 : + * @brief : IIC通讯应答 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_ACK(void) +{ + a5c4: 14d1 push r4, r15 + Fram_SDA_GPIO(0x01); + SCL_OFF; + a5c6: 108d lrw r4, 0x2000004c // a5f8 + a5c8: e3ffff88 bsr 0xa4d8 // a4d8 + a5cc: 9400 ld.w r0, (r4, 0x0) + a5ce: 310d movi r1, 13 + a5d0: e3ffdfd2 bsr 0x6574 // 6574 + SDA_OFF; + a5d4: 106a lrw r3, 0x20000048 // a5fc + a5d6: 3100 movi r1, 0 + a5d8: 9300 ld.w r0, (r3, 0x0) + a5da: e3ffdfcd bsr 0x6574 // 6574 + IIC_Wait(); + a5de: e3ffff97 bsr 0xa50c // a50c + SCL_ON; + a5e2: 9400 ld.w r0, (r4, 0x0) + a5e4: 310d movi r1, 13 + a5e6: e3ffdfc3 bsr 0x656c // 656c + IIC_Wait(); + a5ea: e3ffff91 bsr 0xa50c // a50c + SCL_OFF; + a5ee: 9400 ld.w r0, (r4, 0x0) + a5f0: 310d movi r1, 13 + a5f2: e3ffdfc1 bsr 0x6574 // 6574 +} + a5f6: 1491 pop r4, r15 + a5f8: 2000004c .long 0x2000004c + a5fc: 20000048 .long 0x20000048 + +Disassembly of section .text.IIC_NoACK: + +0000a600 : + * @brief : IIC通讯接收数据结束 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_NoACK(void) +{ + a600: 14d1 push r4, r15 + Fram_SDA_GPIO(0x01); + SCL_OFF; + a602: 108d lrw r4, 0x2000004c // a634 + a604: e3ffff6a bsr 0xa4d8 // a4d8 + a608: 9400 ld.w r0, (r4, 0x0) + a60a: 310d movi r1, 13 + a60c: e3ffdfb4 bsr 0x6574 // 6574 + SDA_ON; + a610: 106a lrw r3, 0x20000048 // a638 + a612: 3100 movi r1, 0 + a614: 9300 ld.w r0, (r3, 0x0) + a616: e3ffdfab bsr 0x656c // 656c + IIC_Wait(); + a61a: e3ffff79 bsr 0xa50c // a50c + SCL_ON; + a61e: 9400 ld.w r0, (r4, 0x0) + a620: 310d movi r1, 13 + a622: e3ffdfa5 bsr 0x656c // 656c + IIC_Wait(); + a626: e3ffff73 bsr 0xa50c // a50c + SCL_OFF; + a62a: 9400 ld.w r0, (r4, 0x0) + a62c: 310d movi r1, 13 + a62e: e3ffdfa3 bsr 0x6574 // 6574 +} + a632: 1491 pop r4, r15 + a634: 2000004c .long 0x2000004c + a638: 20000048 .long 0x20000048 + +Disassembly of section .text.IIC_Wait_ACK: + +0000a63c : + * @brief : IIC通讯等待应答 + * @retval : 无 + * @note : +*******************************************************************************/ +uint8_t IIC_Wait_ACK(void) +{ + a63c: 14d4 push r4-r7, r15 + U16_T temp = 0; + const U16_T ACK_TIMEOUT = 1000; + + // 确保SCL初始状态为低电平 + SCL_OFF; + a63e: 1096 lrw r4, 0x2000004c // a694 + a640: 310d movi r1, 13 + a642: 9400 ld.w r0, (r4, 0x0) + a644: e3ffdf98 bsr 0x6574 // 6574 + Fram_SDA_GPIO(0x00); + a648: 3000 movi r0, 0 + a64a: e3ffff51 bsr 0xa4ec // a4ec + IIC_Wait(); + a64e: e3ffff5f bsr 0xa50c // a50c + SCL_ON; // 拉高SCL,开始ACK检测 + a652: 310d movi r1, 13 + a654: 9400 ld.w r0, (r4, 0x0) + a656: e3ffdf8b bsr 0x656c // 656c + IIC_Wait(); + a65a: e3ffff59 bsr 0xa50c // a50c + while(SDA_READ == 1) + a65e: 10af lrw r5, 0x3e9 // a698 + a660: 10ef lrw r7, 0x20000048 // a69c + a662: 3100 movi r1, 0 + a664: 9700 ld.w r0, (r7, 0x0) + a666: e3ffdf96 bsr 0x6592 // 6592 + a66a: 3841 cmpnei r0, 1 + a66c: 6d83 mov r6, r0 + a66e: 0c07 bf 0xa67c // a67c + } + asm volatile("nop");// 添加小延时,避免CPU过度占用 + } + + // 检测到ACK,拉低SCL结束周期 + SCL_OFF; + a670: 9400 ld.w r0, (r4, 0x0) + a672: 310d movi r1, 13 + a674: e3ffdf80 bsr 0x6574 // 6574 + return 0; + a678: 3600 movi r6, 0 + a67a: 0409 br 0xa68c // a68c + a67c: 2d00 subi r5, 1 + a67e: 7555 zexth r5, r5 + if(temp > ACK_TIMEOUT) + a680: 3d40 cmpnei r5, 0 + a682: 0807 bt 0xa690 // a690 + SCL_OFF; // 超时处理:恢复总线状态 + a684: 9400 ld.w r0, (r4, 0x0) + a686: 310d movi r1, 13 + a688: e3ffdf76 bsr 0x6574 // 6574 +} + a68c: 6c1b mov r0, r6 + a68e: 1494 pop r4-r7, r15 + asm volatile("nop");// 添加小延时,避免CPU过度占用 + a690: 6c03 mov r0, r0 + a692: 07e8 br 0xa662 // a662 + a694: 2000004c .long 0x2000004c + a698: 000003e9 .long 0x000003e9 + a69c: 20000048 .long 0x20000048 + +Disassembly of section .text.IIC_Send_Byte: + +0000a6a0 : + * @param : txd : 写入字节 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_Send_Byte(uint8_t txd) +{ + a6a0: 14d4 push r4-r7, r15 + a6a2: 6d43 mov r5, r0 + a6a4: 3408 movi r4, 8 + a6a6: e3ffff19 bsr 0xa4d8 // a4d8 + uint8_t t; + Fram_SDA_GPIO(0x01); + for(t=0;t<8;t++) + { + SCL_OFF; + a6aa: 10d2 lrw r6, 0x2000004c // a6f0 + a6ac: 10f2 lrw r7, 0x20000048 // a6f4 + a6ae: 310d movi r1, 13 + a6b0: 9600 ld.w r0, (r6, 0x0) + a6b2: e3ffdf61 bsr 0x6574 // 6574 + if((txd&0x80)) + a6b6: 74d6 sextb r3, r5 + a6b8: 3bdf btsti r3, 31 + { + SDA_ON; + a6ba: 3100 movi r1, 0 + a6bc: 9700 ld.w r0, (r7, 0x0) + if((txd&0x80)) + a6be: 0c16 bf 0xa6ea // a6ea + SDA_ON; + a6c0: e3ffdf56 bsr 0x656c // 656c + }else{ + SDA_OFF; + } + txd<<=1; + IIC_Wait(); + a6c4: e3ffff24 bsr 0xa50c // a50c + a6c8: 2c00 subi r4, 1 + SCL_ON; + a6ca: 310d movi r1, 13 + a6cc: 9600 ld.w r0, (r6, 0x0) + a6ce: e3ffdf4f bsr 0x656c // 656c + a6d2: 7510 zextb r4, r4 + txd<<=1; + a6d4: 45a1 lsli r5, r5, 1 + IIC_Wait(); + a6d6: e3ffff1b bsr 0xa50c // a50c + for(t=0;t<8;t++) + a6da: 3c40 cmpnei r4, 0 + txd<<=1; + a6dc: 7554 zextb r5, r5 + for(t=0;t<8;t++) + a6de: 0be8 bt 0xa6ae // a6ae + } + SCL_OFF; + a6e0: 9600 ld.w r0, (r6, 0x0) + a6e2: 310d movi r1, 13 + a6e4: e3ffdf48 bsr 0x6574 // 6574 +} + a6e8: 1494 pop r4-r7, r15 + SDA_OFF; + a6ea: e3ffdf45 bsr 0x6574 // 6574 + a6ee: 07eb br 0xa6c4 // a6c4 + a6f0: 2000004c .long 0x2000004c + a6f4: 20000048 .long 0x20000048 + +Disassembly of section .text.IIC_Read_Byte: + +0000a6f8 : + * @param : + * @retval : data : 接收到的数据 + * @note : +*******************************************************************************/ +uint8_t IIC_Read_Byte(void) +{ + a6f8: 14d4 push r4-r7, r15 + uint8_t i = 0,data = 0; + Fram_SDA_GPIO(0x00); + a6fa: 3000 movi r0, 0 + a6fc: e3fffef8 bsr 0xa4ec // a4ec + a700: 3508 movi r5, 8 + uint8_t i = 0,data = 0; + a702: 3400 movi r4, 0 + + for(i = 0;i < 8;i++) + { + data <<= 1; + SCL_OFF; + a704: 10f1 lrw r7, 0x2000004c // a748 + IIC_Wait(); + SCL_ON; + IIC_Wait(); + if(SDA_READ == 1) data |= 0x01; + a706: 10d2 lrw r6, 0x20000048 // a74c + SCL_OFF; + a708: 310d movi r1, 13 + a70a: 9700 ld.w r0, (r7, 0x0) + a70c: e3ffdf34 bsr 0x6574 // 6574 + IIC_Wait(); + a710: e3fffefe bsr 0xa50c // a50c + SCL_ON; + a714: 310d movi r1, 13 + a716: 9700 ld.w r0, (r7, 0x0) + a718: e3ffdf2a bsr 0x656c // 656c + IIC_Wait(); + a71c: e3fffef8 bsr 0xa50c // a50c + if(SDA_READ == 1) data |= 0x01; + a720: 3100 movi r1, 0 + a722: 9600 ld.w r0, (r6, 0x0) + a724: e3ffdf37 bsr 0x6592 // 6592 + data <<= 1; + a728: 4481 lsli r4, r4, 1 + if(SDA_READ == 1) data |= 0x01; + a72a: 3841 cmpnei r0, 1 + data <<= 1; + a72c: 7510 zextb r4, r4 + if(SDA_READ == 1) data |= 0x01; + a72e: 0802 bt 0xa732 // a732 + a730: 3ca0 bseti r4, 0 + a732: 2d00 subi r5, 1 + a734: 7554 zextb r5, r5 + for(i = 0;i < 8;i++) + a736: 3d40 cmpnei r5, 0 + a738: 0be8 bt 0xa708 // a708 + } + SCL_OFF; + a73a: 9700 ld.w r0, (r7, 0x0) + a73c: 310d movi r1, 13 + a73e: e3ffdf1b bsr 0x6574 // 6574 + + return data; +} + a742: 6c13 mov r0, r4 + a744: 1494 pop r4-r7, r15 + a746: 0000 bkpt + a748: 2000004c .long 0x2000004c + a74c: 20000048 .long 0x20000048 + +Disassembly of section .text.Fram_I2C_WriteBytes: + +0000a750 : + * len : 写入数据长度 + * @retval : 1:成功, 2~4:写入失败, 5:写入地址越界、结束地址越界、长度越界、数据指针为空 + * @note : +*******************************************************************************/ +U8_T Fram_I2C_WriteBytes(U16_T addr, U8_T *data, U16_T len) +{ + a750: 14d3 push r4-r6, r15 + + U8_T dev_addr; + U16_T i; + + if((addr > 0x1FF) || ((addr + len) > 0x200) || (len == 0) || (data == NULL)) + a752: 1162 lrw r3, 0x1ff // a7d8 + a754: 640c cmphs r3, r0 +{ + a756: 6d43 mov r5, r0 + a758: 6d07 mov r4, r1 + a75a: 6d8b mov r6, r2 + if((addr > 0x1FF) || ((addr + len) > 0x200) || (len == 0) || (data == NULL)) + a75c: 0c3b bf 0xa7d2 // a7d2 + a75e: 3380 movi r3, 128 + a760: 6080 addu r2, r0 + a762: 4362 lsli r3, r3, 2 + a764: 648d cmplt r3, r2 + a766: 0836 bt 0xa7d2 // a7d2 + a768: 3e40 cmpnei r6, 0 + a76a: 0c34 bf 0xa7d2 // a7d2 + a76c: 3940 cmpnei r1, 0 + a76e: 0c32 bf 0xa7d2 // a7d2 + } + + // 计算设备地址:1010 (C1)(C0)(A8)(W/R) + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + + IIC_Start(); + a770: e3fffeec bsr 0xa548 // a548 + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + a774: 3302 movi r3, 2 + a776: 5507 asri r0, r5, 7 + a778: 680c and r0, r3 + a77a: 3300 movi r3, 0 + a77c: 2b5f subi r3, 96 + a77e: 6c0c or r0, r3 + IIC_Send_Byte(dev_addr); + a780: 7400 zextb r0, r0 + a782: e3ffff8f bsr 0xa6a0 // a6a0 + if(IIC_Wait_ACK()) + a786: e3ffff5b bsr 0xa63c // a63c + a78a: 3840 cmpnei r0, 0 + a78c: 0c05 bf 0xa796 // a796 + { + IIC_Stop(); + a78e: e3fffefd bsr 0xa588 // a588 + return 2; // 发送设备类型码失败 + a792: 3002 movi r0, 2 + } + } + + IIC_Stop(); + return 1; // 写入成功 +} + a794: 1493 pop r4-r6, r15 + IIC_Send_Byte((U8_T)(addr & 0xFF)); + a796: 7414 zextb r0, r5 + a798: e3ffff84 bsr 0xa6a0 // a6a0 + if(IIC_Wait_ACK()) + a79c: e3ffff50 bsr 0xa63c // a63c + a7a0: 3840 cmpnei r0, 0 + a7a2: 0814 bt 0xa7ca // a7ca + a7a4: 6190 addu r6, r4 + for(i = 0; i < len; i++) + a7a6: 6592 cmpne r4, r6 + a7a8: 0805 bt 0xa7b2 // a7b2 + IIC_Stop(); + a7aa: e3fffeef bsr 0xa588 // a588 + return 1; // 写入成功 + a7ae: 3001 movi r0, 1 + a7b0: 07f2 br 0xa794 // a794 + IIC_Send_Byte(data[i]); + a7b2: 8400 ld.b r0, (r4, 0x0) + a7b4: e3ffff76 bsr 0xa6a0 // a6a0 + if(IIC_Wait_ACK()) + a7b8: e3ffff42 bsr 0xa63c // a63c + a7bc: 3840 cmpnei r0, 0 + a7be: 2400 addi r4, 1 + a7c0: 0ff3 bf 0xa7a6 // a7a6 + IIC_Stop(); + a7c2: e3fffee3 bsr 0xa588 // a588 + return 4; // 写入数据失败 + a7c6: 3004 movi r0, 4 + a7c8: 07e6 br 0xa794 // a794 + IIC_Stop(); + a7ca: e3fffedf bsr 0xa588 // a588 + return 3; // 发送内存地址失败 + a7ce: 3003 movi r0, 3 + a7d0: 07e2 br 0xa794 // a794 + return 5; // 长度或地址错误 + a7d2: 3005 movi r0, 5 + a7d4: 07e0 br 0xa794 // a794 + a7d6: 0000 bkpt + a7d8: 000001ff .long 0x000001ff + +Disassembly of section .text.Fram_I2C_ReadBytes: + +0000a7dc : + * len : 读取数据长度 + * @retval : 1:成功, 2~4:读取失败, 5:读取地址越界、结束地址越界、长度越界、接收数据指针为空 + * @note : +*******************************************************************************/ +U8_T Fram_I2C_ReadBytes(U16_T addr, U8_T *buf, U16_T len) +{ + a7dc: 14d4 push r4-r7, r15 + U8_T dev_addr; + U16_T i; + + if((addr > 0x1FF) || ((addr + len) > 0x200) || (len == 0) || (buf == NULL)) + a7de: 1169 lrw r3, 0x1ff // a880 + a7e0: 640c cmphs r3, r0 +{ + a7e2: 6d43 mov r5, r0 + a7e4: 6dc7 mov r7, r1 + a7e6: 6d8b mov r6, r2 + if((addr > 0x1FF) || ((addr + len) > 0x200) || (len == 0) || (buf == NULL)) + a7e8: 0c4a bf 0xa87c // a87c + a7ea: 3380 movi r3, 128 + a7ec: 6080 addu r2, r0 + a7ee: 4362 lsli r3, r3, 2 + a7f0: 648d cmplt r3, r2 + a7f2: 0845 bt 0xa87c // a87c + a7f4: 3e40 cmpnei r6, 0 + a7f6: 0c43 bf 0xa87c // a87c + a7f8: 3940 cmpnei r1, 0 + a7fa: 0c41 bf 0xa87c // a87c + { + return 5; // 长度或地址错误 + } + + // 第一步:写入要读取的地址 + IIC_Start(); + a7fc: e3fffea6 bsr 0xa548 // a548 + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + a800: 5587 asri r4, r5, 7 + a802: 3002 movi r0, 2 + a804: 6900 and r4, r0 + a806: 7512 sextb r4, r4 + IIC_Send_Byte(dev_addr); + a808: 6c13 mov r0, r4 + a80a: 38a5 bseti r0, 5 + a80c: 38a7 bseti r0, 7 + a80e: e3ffff49 bsr 0xa6a0 // a6a0 + if(IIC_Wait_ACK()) + a812: e3ffff15 bsr 0xa63c // a63c + a816: 3840 cmpnei r0, 0 + a818: 0c05 bf 0xa822 // a822 + { + IIC_Stop(); + a81a: e3fffeb7 bsr 0xa588 // a588 + return 2; // 发送设备类型码失败 + a81e: 3002 movi r0, 2 + } + } + + IIC_Stop(); + return 1; // 读取成功 +} + a820: 1494 pop r4-r7, r15 + IIC_Send_Byte((U8_T)(addr & 0xFF)); + a822: 7414 zextb r0, r5 + a824: e3ffff3e bsr 0xa6a0 // a6a0 + if(IIC_Wait_ACK()) + a828: e3ffff0a bsr 0xa63c // a63c + a82c: 3840 cmpnei r0, 0 + a82e: 0c05 bf 0xa838 // a838 + IIC_Stop(); + a830: e3fffeac bsr 0xa588 // a588 + return 3; // 发送内存地址失败 + a834: 3003 movi r0, 3 + a836: 07f5 br 0xa820 // a820 + IIC_Start(); + a838: e3fffe88 bsr 0xa548 // a548 + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x01; // W/R=1(读) + a83c: 30a1 movi r0, 161 + IIC_Send_Byte(dev_addr); + a83e: 6c10 or r0, r4 + a840: e3ffff30 bsr 0xa6a0 // a6a0 + if(IIC_Wait_ACK()) + a844: e3fffefc bsr 0xa63c // a63c + a848: 3840 cmpnei r0, 0 + a84a: 0812 bt 0xa86e // a86e + a84c: 3400 movi r4, 0 + if(i < len - 1) + a84e: 5ea3 subi r5, r6, 1 + buf[i] = IIC_Read_Byte(); + a850: e3ffff54 bsr 0xa6f8 // a6f8 + a854: 5f70 addu r3, r7, r4 + if(i < len - 1) + a856: 6551 cmplt r4, r5 + buf[i] = IIC_Read_Byte(); + a858: a300 st.b r0, (r3, 0x0) + if(i < len - 1) + a85a: 0c0e bf 0xa876 // a876 + IIC_ACK(); + a85c: e3fffeb4 bsr 0xa5c4 // a5c4 + a860: 2400 addi r4, 1 + for(i = 0; i < len; i++) + a862: 6592 cmpne r4, r6 + a864: 0bf6 bt 0xa850 // a850 + IIC_Stop(); + a866: e3fffe91 bsr 0xa588 // a588 + return 1; // 读取成功 + a86a: 3001 movi r0, 1 + a86c: 07da br 0xa820 // a820 + IIC_Stop(); + a86e: e3fffe8d bsr 0xa588 // a588 + return 4; // 发送读取 + a872: 3004 movi r0, 4 + a874: 07d6 br 0xa820 // a820 + IIC_NoACK(); + a876: e3fffec5 bsr 0xa600 // a600 + a87a: 07f3 br 0xa860 // a860 + return 5; // 长度或地址错误 + a87c: 3005 movi r0, 5 + a87e: 07d1 br 0xa820 // a820 + a880: 000001ff .long 0x000001ff + +Disassembly of section .text.FRAM_WriteTotalEng: + +0000a884 : + * @param : info : 电量结构体 + * @retval : 0x00 : 写入成功, + * @note : +*******************************************************************************/ +U8_T FRAM_WriteTotalEng(FRAM_ENG_t *info) +{ + a884: 14d0 push r15 + a886: 142e subi r14, r14, 56 + U8_T save_data[FRAM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(FRAM_ENG_t); + + if(save_len >= FRAM_ENERGY_SIZE) save_len = FRAM_ENERGY_SIZE; + + save_data[0] = FRAM_ENERGY_SAVE_FLAG; + a888: 3300 movi r3, 0 + a88a: 2b59 subi r3, 90 + a88c: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + a890: 3310 movi r3, 16 + a892: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + a896: 3300 movi r3, 0 + a898: dc6e0002 st.b r3, (r14, 0x2) + save_data[3] = 0x00; //和校验字 + a89c: dc6e0003 st.b r3, (r14, 0x3) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + a8a0: 1b01 addi r3, r14, 4 +{ + a8a2: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + a8a4: 3210 movi r2, 16 + a8a6: 6c0f mov r0, r3 + a8a8: e3ffd08e bsr 0x49c4 // 49c4 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + a8ac: 3110 movi r1, 16 + a8ae: e3ffeb21 bsr 0x7ef0 // 7ef0 + a8b2: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + rev = Fram_I2C_WriteBytes(FRAM_ENERGY_SAVE_ADDR,save_data,save_len); + a8b6: 3214 movi r2, 20 + a8b8: 6c7b mov r1, r14 + a8ba: 3010 movi r0, 16 + a8bc: e3ffff4a bsr 0xa750 // a750 + + if(rev != 0x01){ + a8c0: 3841 cmpnei r0, 1 + a8c2: 0c08 bf 0xa8d2 // a8d2 + Dbg_Println(DBG_BIT_SYS_STATUS, "writc total_eng err"); + a8c4: 3000 movi r0, 0 + a8c6: 1027 lrw r1, 0xc245 // a8e0 + a8c8: e3ffe97e bsr 0x7bc4 // 7bc4 + return 0x01; + a8cc: 3001 movi r0, 1 + } + + Dbg_Println(DBG_BIT_SYS_STATUS, "writc total_eng succ"); + return 0x00; +} + a8ce: 140e addi r14, r14, 56 + a8d0: 1490 pop r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "writc total_eng succ"); + a8d2: 3000 movi r0, 0 + a8d4: 1024 lrw r1, 0xc259 // a8e4 + a8d6: e3ffe977 bsr 0x7bc4 // 7bc4 + return 0x00; + a8da: 3000 movi r0, 0 + a8dc: 07f9 br 0xa8ce // a8ce + a8de: 0000 bkpt + a8e0: 0000c245 .long 0x0000c245 + a8e4: 0000c259 .long 0x0000c259 + +Disassembly of section .text.FRAM_ReadTotalEng: + +0000a8e8 : + * @param : info : 电量结构体 + * @retval : 0x00 : 读取成功, + * @note : +*******************************************************************************/ +U8_T FRAM_ReadTotalEng(FRAM_ENG_t *info) +{ + a8e8: 14d1 push r4, r15 + a8ea: 142f subi r14, r14, 60 + a8ec: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[FRAM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + a8ee: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + a8f0: 3232 movi r2, 50 + a8f2: 3100 movi r1, 0 + a8f4: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + a8f6: b860 st.w r3, (r14, 0x0) + a8f8: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + a8fc: e3ffd020 bsr 0x493c // 493c <__memset_fast> + + Fram_I2C_ReadBytes(FRAM_ENERGY_SAVE_ADDR,read_info,4); + a900: 3204 movi r2, 4 + a902: 6c7b mov r1, r14 + a904: 3010 movi r0, 16 + a906: e3ffff6b bsr 0xa7dc // a7dc + + if(read_info[0] == FRAM_ENERGY_SAVE_FLAG){ + a90a: d84e0000 ld.b r2, (r14, 0x0) + a90e: 33a6 movi r3, 166 + a910: 64ca cmpne r2, r3 + a912: 0c04 bf 0xa91a // a91a + return 0x00; + } + } + } + + return 0x01; + a914: 3001 movi r0, 1 +} + a916: 140f addi r14, r14, 60 + a918: 1491 pop r4, r15 + read_len |= read_info[1]; + a91a: d84e0002 ld.b r2, (r14, 0x2) + a91e: d86e0001 ld.b r3, (r14, 0x1) + a922: 4248 lsli r2, r2, 8 + a924: 6c8c or r2, r3 + if(read_len <= FRAM_ENERGY_SIZE){ + a926: 3332 movi r3, 50 + a928: 648c cmphs r3, r2 + a92a: 0ff5 bf 0xa914 // a914 + Fram_I2C_ReadBytes(FRAM_ENERGY_SAVE_ADDR + PRAM_Offset_Data,para_data,read_len); + a92c: 1902 addi r1, r14, 8 + a92e: 3014 movi r0, 20 + a930: e3ffff56 bsr 0xa7dc // a7dc + if(EEPROM_CheckSum(para_data,sizeof(FRAM_ENG_t)) == read_info[3]){ + a934: 3110 movi r1, 16 + a936: 1802 addi r0, r14, 8 + a938: e3ffeadc bsr 0x7ef0 // 7ef0 + a93c: d86e0003 ld.b r3, (r14, 0x3) + a940: 640e cmpne r3, r0 + a942: 0be9 bt 0xa914 // a914 + memcpy((uint8_t *)info,para_data,sizeof(FRAM_ENG_t)); + a944: 3210 movi r2, 16 + a946: 1902 addi r1, r14, 8 + a948: 6c13 mov r0, r4 + a94a: e3ffd03d bsr 0x49c4 // 49c4 <__memcpy_fast> + SYSCON_IWDCNT_Reload(); + a94e: e3ffdb91 bsr 0x6070 // 6070 + Dbg_Println(DBG_BIT_SYS_STATUS,"total_A_eng : %d",info->total_A_eng); + a952: 9440 ld.w r2, (r4, 0x0) + a954: 3000 movi r0, 0 + a956: 102b lrw r1, 0xc26e // a980 + a958: e3ffe936 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"total_B_eng : %d",info->total_B_eng); + a95c: 9441 ld.w r2, (r4, 0x4) + a95e: 3000 movi r0, 0 + a960: 1029 lrw r1, 0xc280 // a984 + a962: e3ffe931 bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng_A_RegData : %d",info->Eng_A_RegData); + a966: 9442 ld.w r2, (r4, 0x8) + a968: 3000 movi r0, 0 + a96a: 1028 lrw r1, 0xc292 // a988 + a96c: e3ffe92c bsr 0x7bc4 // 7bc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng_A_RegData : %d",info->Eng_B_RegData); + a970: 3000 movi r0, 0 + a972: 9443 ld.w r2, (r4, 0xc) + a974: 1025 lrw r1, 0xc292 // a988 + a976: e3ffe927 bsr 0x7bc4 // 7bc4 + return 0x00; + a97a: 3000 movi r0, 0 + a97c: 07cd br 0xa916 // a916 + a97e: 0000 bkpt + a980: 0000c26e .long 0x0000c26e + a984: 0000c280 .long 0x0000c280 + a988: 0000c292 .long 0x0000c292 + +Disassembly of section .text.Bsp_I2C_Fram_Init: + +0000a98c : +{ + a98c: 14d0 push r15 + GPIO_Init(GPIOB0,FRAM_IIC_SDA,Output); + a98e: 1071 lrw r3, 0x20000048 // a9d0 + a990: 3200 movi r2, 0 + a992: 9300 ld.w r0, (r3, 0x0) + a994: 3100 movi r1, 0 + a996: e3ffdc65 bsr 0x6260 // 6260 + GPIO_Init(GPIOA0,FRAM_IIC_SCL,Output); + a99a: 106f lrw r3, 0x2000004c // a9d4 + a99c: 3200 movi r2, 0 + a99e: 9300 ld.w r0, (r3, 0x0) + a9a0: 310d movi r1, 13 + a9a2: e3ffdc5f bsr 0x6260 // 6260 + memset(&g_engfram,0,sizeof(FRAM_ENG_t)); + a9a6: 3210 movi r2, 16 + a9a8: 3100 movi r1, 0 + a9aa: 100c lrw r0, 0x20000848 // a9d8 + a9ac: e3ffcfc8 bsr 0x493c // 493c <__memset_fast> + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Fram_Init Read TotalEng <*****************/"); + a9b0: 102b lrw r1, 0xc2a5 // a9dc + a9b2: 3000 movi r0, 0 + a9b4: e3ffe908 bsr 0x7bc4 // 7bc4 + rev = FRAM_ReadTotalEng(&g_engfram); + a9b8: 1008 lrw r0, 0x20000848 // a9d8 + a9ba: e3ffff97 bsr 0xa8e8 // a8e8 + if(rev == 0x00) + a9be: 3840 cmpnei r0, 0 + a9c0: 0805 bt 0xa9ca // a9ca + Dbg_Println(DBG_BIT_SYS_STATUS,"Init Total_Eng Succ"); + a9c2: 1028 lrw r1, 0xc2e0 // a9e0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init Total_Eng Fail"); + a9c4: e3ffe900 bsr 0x7bc4 // 7bc4 +} + a9c8: 1490 pop r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init Total_Eng Fail"); + a9ca: 1027 lrw r1, 0xc2f4 // a9e4 + a9cc: 3000 movi r0, 0 + a9ce: 07fb br 0xa9c4 // a9c4 + a9d0: 20000048 .long 0x20000048 + a9d4: 2000004c .long 0x2000004c + a9d8: 20000848 .long 0x20000848 + a9dc: 0000c2a5 .long 0x0000c2a5 + a9e0: 0000c2e0 .long 0x0000c2e0 + a9e4: 0000c2f4 .long 0x0000c2f4 + +Disassembly of section .text.TK_Sampling_prog: + +0000a9e8 : + a9e8: 14c4 push r4-r7 + a9ea: 1072 lrw r3, 0x20000054 // aa30 + a9ec: 1012 lrw r0, 0x20000afe // aa34 + a9ee: 1093 lrw r4, 0x2000096f // aa38 + a9f0: 6d83 mov r6, r0 + a9f2: 93a0 ld.w r5, (r3, 0x0) + a9f4: 3300 movi r3, 0 + a9f6: 4342 lsli r2, r3, 2 + a9f8: 6094 addu r2, r5 + a9fa: 9220 ld.w r1, (r2, 0x0) + a9fc: 4341 lsli r2, r3, 1 + a9fe: 6080 addu r2, r0 + aa00: 7445 zexth r1, r1 + aa02: aa20 st.h r1, (r2, 0x0) + aa04: 8440 ld.b r2, (r4, 0x0) + aa06: 3a41 cmpnei r2, 1 + aa08: 080f bt 0xaa26 // aa26 + aa0a: 3300 movi r3, 0 + aa0c: 10ec lrw r7, 0x20000858 // aa3c + aa0e: 4341 lsli r2, r3, 1 + aa10: 5e28 addu r1, r6, r2 + aa12: 8920 ld.h r1, (r1, 0x0) + aa14: 2300 addi r3, 1 + aa16: 7445 zexth r1, r1 + aa18: 609c addu r2, r7 + aa1a: 3b51 cmpnei r3, 17 + aa1c: aa20 st.h r1, (r2, 0x0) + aa1e: 0bf8 bt 0xaa0e // aa0e + aa20: 3300 movi r3, 0 + aa22: a460 st.b r3, (r4, 0x0) + aa24: 3311 movi r3, 17 + aa26: 2300 addi r3, 1 + aa28: 74cc zextb r3, r3 + aa2a: 3b10 cmphsi r3, 17 + aa2c: 0fe5 bf 0xa9f6 // a9f6 + aa2e: 1484 pop r4-r7 + aa30: 20000054 .long 0x20000054 + aa34: 20000afe .long 0x20000afe + aa38: 2000096f .long 0x2000096f + aa3c: 20000858 .long 0x20000858 + +Disassembly of section .text.TKEYIntHandler: + +0000aa40 : + aa40: 1460 nie + aa42: 1462 ipush + aa44: 14d1 push r4, r15 + aa46: 109e lrw r4, 0x20000068 // aabc + aa48: 9460 ld.w r3, (r4, 0x0) + aa4a: 3b40 cmpnei r3, 0 + aa4c: 080b bt 0xaa62 // aa62 + aa4e: 3301 movi r3, 1 + aa50: b460 st.w r3, (r4, 0x0) + aa52: 107c lrw r3, 0x200008ec // aac0 + aa54: 8360 ld.b r3, (r3, 0x0) + aa56: 3b41 cmpnei r3, 1 + aa58: 0805 bt 0xaa62 // aa62 + aa5a: e3ffffc7 bsr 0xa9e8 // a9e8 + aa5e: 3301 movi r3, 1 + aa60: a464 st.b r3, (r4, 0x4) + aa62: 1079 lrw r3, 0x20000058 // aac4 + aa64: 3101 movi r1, 1 + aa66: 9360 ld.w r3, (r3, 0x0) + aa68: 934a ld.w r2, (r3, 0x28) + aa6a: 6884 and r2, r1 + aa6c: 3a40 cmpnei r2, 0 + aa6e: 0c02 bf 0xaa72 // aa72 + aa70: b32c st.w r1, (r3, 0x30) + aa72: 934a ld.w r2, (r3, 0x28) + aa74: 3102 movi r1, 2 + aa76: 6884 and r2, r1 + aa78: 3a40 cmpnei r2, 0 + aa7a: 0c02 bf 0xaa7e // aa7e + aa7c: b32c st.w r1, (r3, 0x30) + aa7e: 934a ld.w r2, (r3, 0x28) + aa80: 3104 movi r1, 4 + aa82: 6884 and r2, r1 + aa84: 3a40 cmpnei r2, 0 + aa86: 0c02 bf 0xaa8a // aa8a + aa88: b32c st.w r1, (r3, 0x30) + aa8a: 934a ld.w r2, (r3, 0x28) + aa8c: 3108 movi r1, 8 + aa8e: 6884 and r2, r1 + aa90: 3a40 cmpnei r2, 0 + aa92: 0c02 bf 0xaa96 // aa96 + aa94: b32c st.w r1, (r3, 0x30) + aa96: 934a ld.w r2, (r3, 0x28) + aa98: 3110 movi r1, 16 + aa9a: 6884 and r2, r1 + aa9c: 3a40 cmpnei r2, 0 + aa9e: 0c02 bf 0xaaa2 // aaa2 + aaa0: b32c st.w r1, (r3, 0x30) + aaa2: 934a ld.w r2, (r3, 0x28) + aaa4: 3120 movi r1, 32 + aaa6: 6884 and r2, r1 + aaa8: 3a40 cmpnei r2, 0 + aaaa: 0c02 bf 0xaaae // aaae + aaac: b32c st.w r1, (r3, 0x30) + aaae: d9ee2001 ld.w r15, (r14, 0x4) + aab2: 9880 ld.w r4, (r14, 0x0) + aab4: 1402 addi r14, r14, 8 + aab6: 1463 ipop + aab8: 1461 nir + aaba: 0000 bkpt + aabc: 20000068 .long 0x20000068 + aac0: 200008ec .long 0x200008ec + aac4: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000aac8 : + aac8: 14c2 push r4-r5 + aaca: 3200 movi r2, 0 + aacc: 3000 movi r0, 0 + aace: 1088 lrw r4, 0x2000098c // aaec + aad0: 3501 movi r5, 1 + aad2: 3120 movi r1, 32 + aad4: 9460 ld.w r3, (r4, 0x0) + aad6: 70c9 lsr r3, r2 + aad8: 68d4 and r3, r5 + aada: 3b40 cmpnei r3, 0 + aadc: 0c02 bf 0xaae0 // aae0 + aade: 2000 addi r0, 1 + aae0: 2200 addi r2, 1 + aae2: 644a cmpne r2, r1 + aae4: 0bf8 bt 0xaad4 // aad4 + aae6: 7400 zextb r0, r0 + aae8: 1482 pop r4-r5 + aaea: 0000 bkpt + aaec: 2000098c .long 0x2000098c + +Disassembly of section .text.TK_Scan_Start: + +0000aaf0 : + aaf0: 1046 lrw r2, 0x20000068 // ab08 + aaf2: 8264 ld.b r3, (r2, 0x4) + aaf4: 74cc zextb r3, r3 + aaf6: 3b41 cmpnei r3, 1 + aaf8: 0807 bt 0xab06 // ab06 + aafa: 1025 lrw r1, 0x20000058 // ab0c + aafc: 9120 ld.w r1, (r1, 0x0) + aafe: b162 st.w r3, (r1, 0x8) + ab00: 3300 movi r3, 0 + ab02: b260 st.w r3, (r2, 0x0) + ab04: a264 st.b r3, (r2, 0x4) + ab06: 783c jmp r15 + ab08: 20000068 .long 0x20000068 + ab0c: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +0000ab10 : + ab10: 14d4 push r4-r7, r15 + ab12: 1425 subi r14, r14, 20 + ab14: 1271 lrw r3, 0x200001b4 // ac58 + ab16: 8360 ld.b r3, (r3, 0x0) + ab18: b860 st.w r3, (r14, 0x0) + ab1a: 3400 movi r4, 0 + ab1c: 1270 lrw r3, 0x20000188 // ac5c + ab1e: 8360 ld.b r3, (r3, 0x0) + ab20: b861 st.w r3, (r14, 0x4) + ab22: 12f0 lrw r7, 0x20000902 // ac60 + ab24: 1270 lrw r3, 0x20000191 // ac64 + ab26: 83a0 ld.b r5, (r3, 0x0) + ab28: 1270 lrw r3, 0x20000190 // ac68 + ab2a: 8360 ld.b r3, (r3, 0x0) + ab2c: b862 st.w r3, (r14, 0x8) + ab2e: 6d9f mov r6, r7 + ab30: 126f lrw r3, 0x20000afe // ac6c + ab32: b863 st.w r3, (r14, 0xc) + ab34: 4461 lsli r3, r4, 1 + ab36: 9843 ld.w r2, (r14, 0xc) + ab38: 608c addu r2, r3 + ab3a: 122e lrw r1, 0x20000858 // ac70 + ab3c: 604c addu r1, r3 + ab3e: 8a40 ld.h r2, (r2, 0x0) + ab40: 8920 ld.h r1, (r1, 0x0) + ab42: 6086 subu r2, r1 + ab44: 748b sexth r2, r2 + ab46: 5f2c addu r1, r7, r3 + ab48: a940 st.h r2, (r1, 0x0) + ab4a: 8940 ld.h r2, (r1, 0x0) + ab4c: 748b sexth r2, r2 + ab4e: 3adf btsti r2, 31 + ab50: 1249 lrw r2, 0x20000aba // ac74 + ab52: 608c addu r2, r3 + ab54: 0c37 bf 0xabc2 // abc2 + ab56: 3100 movi r1, 0 + ab58: aa20 st.h r1, (r2, 0x0) + ab5a: 9840 ld.w r2, (r14, 0x0) + ab5c: 3a01 cmphsi r2, 2 + ab5e: 0c6d bf 0xac38 // ac38 + ab60: 4461 lsli r3, r4, 1 + ab62: 5e2c addu r1, r6, r3 + ab64: 1205 lrw r0, 0x200001e2 // ac78 + ab66: 8940 ld.h r2, (r1, 0x0) + ab68: 60c0 addu r3, r0 + ab6a: 748b sexth r2, r2 + ab6c: 8b60 ld.h r3, (r3, 0x0) + ab6e: 648d cmplt r3, r2 + ab70: 9840 ld.w r2, (r14, 0x0) + ab72: 7cc8 mult r3, r2 + ab74: 0c2a bf 0xabc8 // abc8 + ab76: 8940 ld.h r2, (r1, 0x0) + ab78: 748b sexth r2, r2 + ab7a: 64c9 cmplt r2, r3 + ab7c: 0c26 bf 0xabc8 // abc8 + ab7e: 1240 lrw r2, 0x200008f0 // ac7c + ab80: 6090 addu r2, r4 + ab82: 8260 ld.b r3, (r2, 0x0) + ab84: 2300 addi r3, 1 + ab86: 74cc zextb r3, r3 + ab88: a260 st.b r3, (r2, 0x0) + ab8a: 3100 movi r1, 0 + ab8c: 117d lrw r3, 0x200008d6 // ac80 + ab8e: 60d0 addu r3, r4 + ab90: a320 st.b r1, (r3, 0x0) + ab92: 117d lrw r3, 0x200009b2 // ac84 + ab94: 60d0 addu r3, r4 + ab96: a320 st.b r1, (r3, 0x0) + ab98: 117c lrw r3, 0x20000a2c // ac88 + ab9a: 60d0 addu r3, r4 + ab9c: a320 st.b r1, (r3, 0x0) + ab9e: 8260 ld.b r3, (r2, 0x0) + aba0: 9821 ld.w r1, (r14, 0x4) + aba2: 64c4 cmphs r1, r3 + aba4: 081f bt 0xabe2 // abe2 + aba6: 3d40 cmpnei r5, 0 + aba8: 0852 bt 0xac4c // ac4c + abaa: 1139 lrw r1, 0x200008e8 // ac8c + abac: 9160 ld.w r3, (r1, 0x0) + abae: 3b40 cmpnei r3, 0 + abb0: 0806 bt 0xabbc // abbc + abb2: 9100 ld.w r0, (r1, 0x0) + abb4: 3301 movi r3, 1 + abb6: 70d0 lsl r3, r4 + abb8: 6cc0 or r3, r0 + abba: b160 st.w r3, (r1, 0x0) + abbc: 3300 movi r3, 0 + abbe: a260 st.b r3, (r2, 0x0) + abc0: 0411 br 0xabe2 // abe2 + abc2: 8920 ld.h r1, (r1, 0x0) + abc4: 7445 zexth r1, r1 + abc6: 07c9 br 0xab58 // ab58 + abc8: 4441 lsli r2, r4, 1 + abca: 6098 addu r2, r6 + abcc: 8a40 ld.h r2, (r2, 0x0) + abce: 748b sexth r2, r2 + abd0: 648d cmplt r3, r2 + abd2: 0c08 bf 0xabe2 // abe2 + abd4: 3300 movi r3, 0 + abd6: 114e lrw r2, 0x200008e8 // ac8c + abd8: 2b01 subi r3, 2 + abda: 9220 ld.w r1, (r2, 0x0) + abdc: 70d3 rotl r3, r4 + abde: 68c4 and r3, r1 + abe0: b260 st.w r3, (r2, 0x0) + abe2: 4441 lsli r2, r4, 1 + abe4: 5e68 addu r3, r6, r2 + abe6: 8b60 ld.h r3, (r3, 0x0) + abe8: 74cf sexth r3, r3 + abea: b864 st.w r3, (r14, 0x10) + abec: 3105 movi r1, 5 + abee: 1163 lrw r3, 0x200001e2 // ac78 + abf0: 608c addu r2, r3 + abf2: 8a00 ld.h r0, (r2, 0x0) + abf4: 4002 lsli r0, r0, 2 + abf6: e3ffe44d bsr 0x7490 // 7490 <__divsi3> + abfa: 9864 ld.w r3, (r14, 0x10) + abfc: 640d cmplt r3, r0 + abfe: 0c18 bf 0xac2e // ac2e + ac00: 1140 lrw r2, 0x200008d6 // ac80 + ac02: 6090 addu r2, r4 + ac04: 8260 ld.b r3, (r2, 0x0) + ac06: 2300 addi r3, 1 + ac08: 74cc zextb r3, r3 + ac0a: a260 st.b r3, (r2, 0x0) + ac0c: 3100 movi r1, 0 + ac0e: 107c lrw r3, 0x200008f0 // ac7c + ac10: 60d0 addu r3, r4 + ac12: a320 st.b r1, (r3, 0x0) + ac14: 8260 ld.b r3, (r2, 0x0) + ac16: 9822 ld.w r1, (r14, 0x8) + ac18: 64c4 cmphs r1, r3 + ac1a: 080a bt 0xac2e // ac2e + ac1c: 3300 movi r3, 0 + ac1e: 103c lrw r1, 0x200008e8 // ac8c + ac20: 2b01 subi r3, 2 + ac22: 9100 ld.w r0, (r1, 0x0) + ac24: 70d3 rotl r3, r4 + ac26: 68c0 and r3, r0 + ac28: b160 st.w r3, (r1, 0x0) + ac2a: 3300 movi r3, 0 + ac2c: a260 st.b r3, (r2, 0x0) + ac2e: 2400 addi r4, 1 + ac30: 3c51 cmpnei r4, 17 + ac32: 0b81 bt 0xab34 // ab34 + ac34: 1405 addi r14, r14, 20 + ac36: 1494 pop r4-r7, r15 + ac38: 60d8 addu r3, r6 + ac3a: 4441 lsli r2, r4, 1 + ac3c: 102f lrw r1, 0x200001e2 // ac78 + ac3e: 8b60 ld.h r3, (r3, 0x0) + ac40: 6084 addu r2, r1 + ac42: 74cf sexth r3, r3 + ac44: 8a40 ld.h r2, (r2, 0x0) + ac46: 64c9 cmplt r2, r3 + ac48: 0fcd bf 0xabe2 // abe2 + ac4a: 079a br 0xab7e // ab7e + ac4c: 3d41 cmpnei r5, 1 + ac4e: 0bb7 bt 0xabbc // abbc + ac50: 102f lrw r1, 0x200008e8 // ac8c + ac52: 6cd7 mov r3, r5 + ac54: 9100 ld.w r0, (r1, 0x0) + ac56: 07b0 br 0xabb6 // abb6 + ac58: 200001b4 .long 0x200001b4 + ac5c: 20000188 .long 0x20000188 + ac60: 20000902 .long 0x20000902 + ac64: 20000191 .long 0x20000191 + ac68: 20000190 .long 0x20000190 + ac6c: 20000afe .long 0x20000afe + ac70: 20000858 .long 0x20000858 + ac74: 20000aba .long 0x20000aba + ac78: 200001e2 .long 0x200001e2 + ac7c: 200008f0 .long 0x200008f0 + ac80: 200008d6 .long 0x200008d6 + ac84: 200009b2 .long 0x200009b2 + ac88: 20000a2c .long 0x20000a2c + ac8c: 200008e8 .long 0x200008e8 + +Disassembly of section .text.TK_overflow_predict: + +0000ac90 : + ac90: 14d4 push r4-r7, r15 + ac92: 1421 subi r14, r14, 4 + ac94: 11d9 lrw r6, 0x20000068 // ad78 + ac96: 8665 ld.b r3, (r6, 0x5) + ac98: 3b41 cmpnei r3, 1 + ac9a: 085f bt 0xad58 // ad58 + ac9c: 1158 lrw r2, 0x20000a08 // ad7c + ac9e: 8260 ld.b r3, (r2, 0x0) + aca0: 2300 addi r3, 1 + aca2: 74cc zextb r3, r3 + aca4: a260 st.b r3, (r2, 0x0) + aca6: 8260 ld.b r3, (r2, 0x0) + aca8: 1136 lrw r1, 0x200001b5 // ad80 + acaa: 8120 ld.b r1, (r1, 0x0) + acac: 64c4 cmphs r1, r3 + acae: 0855 bt 0xad58 // ad58 + acb0: 3300 movi r3, 0 + acb2: a260 st.b r3, (r2, 0x0) + acb4: 3500 movi r5, 0 + acb6: 11f4 lrw r7, 0x200001b8 // ad84 + acb8: 2605 addi r6, 6 + acba: 9760 ld.w r3, (r7, 0x0) + acbc: 70d5 lsr r3, r5 + acbe: 3201 movi r2, 1 + acc0: 68c8 and r3, r2 + acc2: 3b40 cmpnei r3, 0 + acc4: 0c34 bf 0xad2c // ad2c + acc6: 4581 lsli r4, r5, 1 + acc8: 5e70 addu r3, r6, r4 + acca: 8b00 ld.h r0, (r3, 0x0) + accc: e3ffcb14 bsr 0x42f4 // 42f4 <__floatunsidf> + acd0: 6cc7 mov r3, r1 + acd2: 3180 movi r1, 128 + acd4: 6c83 mov r2, r0 + acd6: 4137 lsli r1, r1, 23 + acd8: 3000 movi r0, 0 + acda: e3ffbe6d bsr 0x29b4 // 29b4 <__GI_pow> + acde: 116b lrw r3, 0x200001be // ad88 + ace0: 60d0 addu r3, r4 + ace2: 8b60 ld.h r3, (r3, 0x0) + ace4: 4364 lsli r3, r3, 4 + ace6: 230e addi r3, 15 + ace8: b860 st.w r3, (r14, 0x0) + acea: e3ffc42b bsr 0x3540 // 3540 <__fixunsdfsi> + acee: 9860 ld.w r3, (r14, 0x0) + acf0: 7cc0 mult r3, r0 + acf2: 1147 lrw r2, 0x20000a98 // ad8c + acf4: 740d zexth r0, r3 + acf6: 6090 addu r2, r4 + acf8: 1166 lrw r3, 0x20000afe // ad90 + acfa: 60d0 addu r3, r4 + acfc: aa00 st.h r0, (r2, 0x0) + acfe: 8b60 ld.h r3, (r3, 0x0) + ad00: 8a00 ld.h r0, (r2, 0x0) + ad02: 7401 zexth r0, r0 + ad04: 325f movi r2, 95 + ad06: 74cd zexth r3, r3 + ad08: 7c08 mult r0, r2 + ad0a: 3164 movi r1, 100 + ad0c: b860 st.w r3, (r14, 0x0) + ad0e: e3ffe3c1 bsr 0x7490 // 7490 <__divsi3> + ad12: 9860 ld.w r3, (r14, 0x0) + ad14: 64c1 cmplt r0, r3 + ad16: 0c0b bf 0xad2c // ad2c + ad18: 107f lrw r3, 0x20000192 // ad94 + ad1a: 610c addu r4, r3 + ad1c: 8c60 ld.h r3, (r4, 0x0) + ad1e: 3b06 cmphsi r3, 7 + ad20: 0806 bt 0xad2c // ad2c + ad22: 2300 addi r3, 1 + ad24: ac60 st.h r3, (r4, 0x0) + ad26: 3201 movi r2, 1 + ad28: 107c lrw r3, 0x2000095d // ad98 + ad2a: a340 st.b r2, (r3, 0x0) + ad2c: 2500 addi r5, 1 + ad2e: 3d51 cmpnei r5, 17 + ad30: 0bc5 bt 0xacba // acba + ad32: 107a lrw r3, 0x2000095d // ad98 + ad34: 8340 ld.b r2, (r3, 0x0) + ad36: 3a41 cmpnei r2, 1 + ad38: 0810 bt 0xad58 // ad58 + ad3a: 3200 movi r2, 0 + ad3c: a340 st.b r2, (r3, 0x0) + ad3e: 3200 movi r2, 0 + ad40: 1077 lrw r3, 0x20000058 // ad9c + ad42: 1018 lrw r0, 0x20000a2b // ada0 + ad44: 10b8 lrw r5, 0x20000a64 // ada4 + ad46: 10d4 lrw r6, 0x20000192 // ad94 + ad48: 9360 ld.w r3, (r3, 0x0) + ad4a: b342 st.w r2, (r3, 0x8) + ad4c: 1077 lrw r3, 0x20000054 // ada8 + ad4e: 9380 ld.w r4, (r3, 0x0) + ad50: 3300 movi r3, 0 + ad52: 8040 ld.b r2, (r0, 0x0) + ad54: 648c cmphs r3, r2 + ad56: 0c03 bf 0xad5c // ad5c + ad58: 1401 addi r14, r14, 4 + ad5a: 1494 pop r4-r7, r15 + ad5c: 5d4c addu r2, r5, r3 + ad5e: 8240 ld.b r2, (r2, 0x0) + ad60: 4241 lsli r2, r2, 1 + ad62: 4322 lsli r1, r3, 2 + ad64: 6098 addu r2, r6 + ad66: 6050 addu r1, r4 + ad68: 8a40 ld.h r2, (r2, 0x0) + ad6a: 91f2 ld.w r7, (r1, 0x48) + ad6c: 4254 lsli r2, r2, 20 + ad6e: 6c9c or r2, r7 + ad70: 2300 addi r3, 1 + ad72: b152 st.w r2, (r1, 0x48) + ad74: 74cc zextb r3, r3 + ad76: 07ee br 0xad52 // ad52 + ad78: 20000068 .long 0x20000068 + ad7c: 20000a08 .long 0x20000a08 + ad80: 200001b5 .long 0x200001b5 + ad84: 200001b8 .long 0x200001b8 + ad88: 200001be .long 0x200001be + ad8c: 20000a98 .long 0x20000a98 + ad90: 20000afe .long 0x20000afe + ad94: 20000192 .long 0x20000192 + ad98: 2000095d .long 0x2000095d + ad9c: 20000058 .long 0x20000058 + ada0: 20000a2b .long 0x20000a2b + ada4: 20000a64 .long 0x20000a64 + ada8: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +0000adac : + adac: 14c4 push r4-r7 + adae: 1422 subi r14, r14, 8 + adb0: 1348 lrw r2, 0x2000098a // af50 + adb2: 8260 ld.b r3, (r2, 0x0) + adb4: 2300 addi r3, 1 + adb6: 74cc zextb r3, r3 + adb8: a260 st.b r3, (r2, 0x0) + adba: 8260 ld.b r3, (r2, 0x0) + adbc: 1326 lrw r1, 0x200001b5 // af54 + adbe: 8120 ld.b r1, (r1, 0x0) + adc0: 644c cmphs r3, r1 + adc2: 0cad bf 0xaf1c // af1c + adc4: 3300 movi r3, 0 + adc6: a260 st.b r3, (r2, 0x0) + adc8: 1364 lrw r3, 0x200008e8 // af58 + adca: 9360 ld.w r3, (r3, 0x0) + adcc: 3b40 cmpnei r3, 0 + adce: 08a7 bt 0xaf1c // af1c + add0: 1323 lrw r1, 0x20000902 // af5c + add2: 6dc7 mov r7, r1 + add4: b820 st.w r1, (r14, 0x0) + add6: 3200 movi r2, 0 + add8: 1362 lrw r3, 0x200001e2 // af60 + adda: 1323 lrw r1, 0x20000858 // af64 + addc: 4201 lsli r0, r2, 1 + adde: 9880 ld.w r4, (r14, 0x0) + ade0: 6100 addu r4, r0 + ade2: 8c80 ld.h r4, (r4, 0x0) + ade4: 7513 sexth r4, r4 + ade6: 3cdf btsti r4, 31 + ade8: 0c27 bf 0xae36 // ae36 + adea: 13a0 lrw r5, 0x20000afe // af68 + adec: 5980 addu r4, r1, r0 + adee: 6014 addu r0, r5 + adf0: b881 st.w r4, (r14, 0x4) + adf2: 8c80 ld.h r4, (r4, 0x0) + adf4: 88c0 ld.h r6, (r0, 0x0) + adf6: 7511 zexth r4, r4 + adf8: 7599 zexth r6, r6 + adfa: 8ba0 ld.h r5, (r3, 0x0) + adfc: 611a subu r4, r6 + adfe: 6551 cmplt r4, r5 + ae00: 081b bt 0xae36 // ae36 + ae02: 9881 ld.w r4, (r14, 0x4) + ae04: 8c80 ld.h r4, (r4, 0x0) + ae06: 8800 ld.h r0, (r0, 0x0) + ae08: 7511 zexth r4, r4 + ae0a: 7401 zexth r0, r0 + ae0c: 5c01 subu r0, r4, r0 + ae0e: 4581 lsli r4, r5, 1 + ae10: 6150 addu r5, r4 + ae12: 6541 cmplt r0, r5 + ae14: 0c11 bf 0xae36 // ae36 + ae16: 1296 lrw r4, 0x20000a2c // af6c + ae18: 6108 addu r4, r2 + ae1a: 8400 ld.b r0, (r4, 0x0) + ae1c: 2000 addi r0, 1 + ae1e: 7400 zextb r0, r0 + ae20: a400 st.b r0, (r4, 0x0) + ae22: 1214 lrw r0, 0x20000088 // af70 + ae24: 84a0 ld.b r5, (r4, 0x0) + ae26: 8008 ld.b r0, (r0, 0x8) + ae28: 6540 cmphs r0, r5 + ae2a: 0806 bt 0xae36 // ae36 + ae2c: 1212 lrw r0, 0x2000096f // af74 + ae2e: 3501 movi r5, 1 + ae30: a0a0 st.b r5, (r0, 0x0) + ae32: 3000 movi r0, 0 + ae34: a400 st.b r0, (r4, 0x0) + ae36: 4201 lsli r0, r2, 1 + ae38: 5f80 addu r4, r7, r0 + ae3a: 8c80 ld.h r4, (r4, 0x0) + ae3c: 7513 sexth r4, r4 + ae3e: 3c20 cmplti r4, 1 + ae40: 0870 bt 0xaf20 // af20 + ae42: 128a lrw r4, 0x20000afe // af68 + ae44: 6100 addu r4, r0 + ae46: 59a0 addu r5, r1, r0 + ae48: 8c80 ld.h r4, (r4, 0x0) + ae4a: 8da0 ld.h r5, (r5, 0x0) + ae4c: 7555 zexth r5, r5 + ae4e: 7511 zexth r4, r4 + ae50: 6116 subu r4, r5 + ae52: 8ba0 ld.h r5, (r3, 0x0) + ae54: 45a2 lsli r5, r5, 2 + ae56: 6551 cmplt r4, r5 + ae58: 0864 bt 0xaf20 // af20 + ae5a: 1288 lrw r4, 0x200009b2 // af78 + ae5c: 6108 addu r4, r2 + ae5e: 84a0 ld.b r5, (r4, 0x0) + ae60: 2500 addi r5, 1 + ae62: 7554 zextb r5, r5 + ae64: a4a0 st.b r5, (r4, 0x0) + ae66: 12a3 lrw r5, 0x20000088 // af70 + ae68: 84c0 ld.b r6, (r4, 0x0) + ae6a: 85a9 ld.b r5, (r5, 0x9) + ae6c: 6594 cmphs r5, r6 + ae6e: 0806 bt 0xae7a // ae7a + ae70: 12a1 lrw r5, 0x2000096f // af74 + ae72: 3601 movi r6, 1 + ae74: a5c0 st.b r6, (r5, 0x0) + ae76: 3500 movi r5, 0 + ae78: a4a0 st.b r5, (r4, 0x0) + ae7a: 5f80 addu r4, r7, r0 + ae7c: 8c80 ld.h r4, (r4, 0x0) + ae7e: 7513 sexth r4, r4 + ae80: 3cdf btsti r4, 31 + ae82: 0c10 bf 0xaea2 // aea2 + ae84: 11d9 lrw r6, 0x20000afe // af68 + ae86: 59a0 addu r5, r1, r0 + ae88: 6180 addu r6, r0 + ae8a: 8d80 ld.h r4, (r5, 0x0) + ae8c: 8ec0 ld.h r6, (r6, 0x0) + ae8e: 7599 zexth r6, r6 + ae90: 7511 zexth r4, r4 + ae92: 611a subu r4, r6 + ae94: 8bc0 ld.h r6, (r3, 0x0) + ae96: 6591 cmplt r4, r6 + ae98: 0c05 bf 0xaea2 // aea2 + ae9a: 8d80 ld.h r4, (r5, 0x0) + ae9c: 2c00 subi r4, 1 + ae9e: 7511 zexth r4, r4 + aea0: ad80 st.h r4, (r5, 0x0) + aea2: 5f80 addu r4, r7, r0 + aea4: 8c80 ld.h r4, (r4, 0x0) + aea6: 7513 sexth r4, r4 + aea8: 3cdf btsti r4, 31 + aeaa: 0c11 bf 0xaecc // aecc + aeac: 11cf lrw r6, 0x20000afe // af68 + aeae: 59a0 addu r5, r1, r0 + aeb0: 6180 addu r6, r0 + aeb2: 8d80 ld.h r4, (r5, 0x0) + aeb4: 8ec0 ld.h r6, (r6, 0x0) + aeb6: 7599 zexth r6, r6 + aeb8: 7511 zexth r4, r4 + aeba: 611a subu r4, r6 + aebc: 8bc0 ld.h r6, (r3, 0x0) + aebe: 4ec1 lsri r6, r6, 1 + aec0: 6591 cmplt r4, r6 + aec2: 0805 bt 0xaecc // aecc + aec4: 8d80 ld.h r4, (r5, 0x0) + aec6: 2c01 subi r4, 2 + aec8: 7511 zexth r4, r4 + aeca: ad80 st.h r4, (r5, 0x0) + aecc: 5fa0 addu r5, r7, r0 + aece: 8d80 ld.h r4, (r5, 0x0) + aed0: 7513 sexth r4, r4 + aed2: 3c20 cmplti r4, 1 + aed4: 080c bt 0xaeec // aeec + aed6: 8da0 ld.h r5, (r5, 0x0) + aed8: 8b80 ld.h r4, (r3, 0x0) + aeda: 7557 sexth r5, r5 + aedc: 4c81 lsri r4, r4, 1 + aede: 6515 cmplt r5, r4 + aee0: 0c06 bf 0xaeec // aeec + aee2: 59a0 addu r5, r1, r0 + aee4: 8d80 ld.h r4, (r5, 0x0) + aee6: 2400 addi r4, 1 + aee8: 7511 zexth r4, r4 + aeea: ad80 st.h r4, (r5, 0x0) + aeec: 5fa0 addu r5, r7, r0 + aeee: 8d80 ld.h r4, (r5, 0x0) + aef0: 7513 sexth r4, r4 + aef2: 3c20 cmplti r4, 1 + aef4: 0810 bt 0xaf14 // af14 + aef6: 8dc0 ld.h r6, (r5, 0x0) + aef8: 759b sexth r6, r6 + aefa: 8b80 ld.h r4, (r3, 0x0) + aefc: 6519 cmplt r6, r4 + aefe: 0c0b bf 0xaf14 // af14 + af00: 8da0 ld.h r5, (r5, 0x0) + af02: 7557 sexth r5, r5 + af04: 4c81 lsri r4, r4, 1 + af06: 6515 cmplt r5, r4 + af08: 0806 bt 0xaf14 // af14 + af0a: 6004 addu r0, r1 + af0c: 8880 ld.h r4, (r0, 0x0) + af0e: 2401 addi r4, 2 + af10: 7511 zexth r4, r4 + af12: a880 st.h r4, (r0, 0x0) + af14: 2200 addi r2, 1 + af16: 3a51 cmpnei r2, 17 + af18: 2301 addi r3, 2 + af1a: 0b61 bt 0xaddc // addc + af1c: 1402 addi r14, r14, 8 + af1e: 1484 pop r4-r7 + af20: 5f80 addu r4, r7, r0 + af22: 8c80 ld.h r4, (r4, 0x0) + af24: 7513 sexth r4, r4 + af26: 3cdf btsti r4, 31 + af28: 0fa9 bf 0xae7a // ae7a + af2a: 10b0 lrw r5, 0x20000afe // af68 + af2c: 5980 addu r4, r1, r0 + af2e: 6140 addu r5, r0 + af30: 8c80 ld.h r4, (r4, 0x0) + af32: 8da0 ld.h r5, (r5, 0x0) + af34: 7555 zexth r5, r5 + af36: 8bc0 ld.h r6, (r3, 0x0) + af38: 7511 zexth r4, r4 + af3a: 6116 subu r4, r5 + af3c: 46a1 lsli r5, r6, 1 + af3e: 6158 addu r5, r6 + af40: 6551 cmplt r4, r5 + af42: 0b9c bt 0xae7a // ae7a + af44: 108c lrw r4, 0x2000096f // af74 + af46: 3501 movi r5, 1 + af48: a4a0 st.b r5, (r4, 0x0) + af4a: 6c03 mov r0, r0 + af4c: 0797 br 0xae7a // ae7a + af4e: 0000 bkpt + af50: 2000098a .long 0x2000098a + af54: 200001b5 .long 0x200001b5 + af58: 200008e8 .long 0x200008e8 + af5c: 20000902 .long 0x20000902 + af60: 200001e2 .long 0x200001e2 + af64: 20000858 .long 0x20000858 + af68: 20000afe .long 0x20000afe + af6c: 20000a2c .long 0x20000a2c + af70: 20000088 .long 0x20000088 + af74: 2000096f .long 0x2000096f + af78: 200009b2 .long 0x200009b2 + +Disassembly of section .text.TK_result_prog: + +0000af7c : + af7c: 14d2 push r4-r5, r15 + af7e: 1050 lrw r2, 0x200008e8 // afbc + af80: 1090 lrw r4, 0x2000098c // afc0 + af82: 9260 ld.w r3, (r2, 0x0) + af84: 3b40 cmpnei r3, 0 + af86: 0c02 bf 0xaf8a // af8a + af88: 9260 ld.w r3, (r2, 0x0) + af8a: b460 st.w r3, (r4, 0x0) + af8c: 9460 ld.w r3, (r4, 0x0) + af8e: 3b40 cmpnei r3, 0 + af90: 10ad lrw r5, 0x20000a60 // afc4 + af92: 0c11 bf 0xafb4 // afb4 + af94: 9440 ld.w r2, (r4, 0x0) + af96: 9560 ld.w r3, (r5, 0x0) + af98: 64ca cmpne r2, r3 + af9a: 0c03 bf 0xafa0 // afa0 + af9c: 9460 ld.w r3, (r4, 0x0) + af9e: b560 st.w r3, (r5, 0x0) + afa0: e3fffd94 bsr 0xaac8 // aac8 + afa4: 1069 lrw r3, 0x200001bc // afc8 + afa6: 8360 ld.b r3, (r3, 0x0) + afa8: 640c cmphs r3, r0 + afaa: 0804 bt 0xafb2 // afb2 + afac: 3300 movi r3, 0 + afae: b460 st.w r3, (r4, 0x0) + afb0: b560 st.w r3, (r5, 0x0) + afb2: 1492 pop r4-r5, r15 + afb4: 1046 lrw r2, 0x20000984 // afcc + afb6: b560 st.w r3, (r5, 0x0) + afb8: b260 st.w r3, (r2, 0x0) + afba: 07fc br 0xafb2 // afb2 + afbc: 200008e8 .long 0x200008e8 + afc0: 2000098c .long 0x2000098c + afc4: 20000a60 .long 0x20000a60 + afc8: 200001bc .long 0x200001bc + afcc: 20000984 .long 0x20000984 + +Disassembly of section .text.CORETHandler: + +0000afd0 : + afd0: 1460 nie + afd2: 1462 ipush + afd4: 14d1 push r4, r15 + afd6: 1077 lrw r3, 0x20000064 // b030 + afd8: 3400 movi r4, 0 + afda: 9360 ld.w r3, (r3, 0x0) + afdc: b386 st.w r4, (r3, 0x18) + afde: 1076 lrw r3, 0x200008ec // b034 + afe0: 8360 ld.b r3, (r3, 0x0) + afe2: 3b41 cmpnei r3, 1 + afe4: 0820 bt 0xb024 // b024 + afe6: e3fffd85 bsr 0xaaf0 // aaf0 + afea: e3fffd93 bsr 0xab10 // ab10 + afee: e3fffe51 bsr 0xac90 // ac90 + aff2: e3fffedd bsr 0xadac // adac + aff6: e3ffffc3 bsr 0xaf7c // af7c + affa: 1070 lrw r3, 0x2000098c // b038 + affc: 9360 ld.w r3, (r3, 0x0) + affe: 3b40 cmpnei r3, 0 + b000: 0c12 bf 0xb024 // b024 + b002: 106f lrw r3, 0x2000018c // b03c + b004: 9340 ld.w r2, (r3, 0x0) + b006: 3a40 cmpnei r2, 0 + b008: 0c0e bf 0xb024 // b024 + b00a: 106e lrw r3, 0x20000984 // b040 + b00c: 3064 movi r0, 100 + b00e: 9320 ld.w r1, (r3, 0x0) + b010: 2100 addi r1, 1 + b012: b320 st.w r1, (r3, 0x0) + b014: 9320 ld.w r1, (r3, 0x0) + b016: 7c80 mult r2, r0 + b018: 6448 cmphs r2, r1 + b01a: 0805 bt 0xb024 // b024 + b01c: 104a lrw r2, 0x2000096f // b044 + b01e: 3101 movi r1, 1 + b020: a220 st.b r1, (r2, 0x0) + b022: b380 st.w r4, (r3, 0x0) + b024: d9ee2001 ld.w r15, (r14, 0x4) + b028: 9880 ld.w r4, (r14, 0x0) + b02a: 1402 addi r14, r14, 8 + b02c: 1463 ipop + b02e: 1461 nir + b030: 20000064 .long 0x20000064 + b034: 200008ec .long 0x200008ec + b038: 2000098c .long 0x2000098c + b03c: 2000018c .long 0x2000018c + b040: 20000984 .long 0x20000984 + b044: 2000096f .long 0x2000096f + +Disassembly of section .text.std_clk_calib: + +0000b048 : + b048: 14d4 push r4-r7, r15 + b04a: 142d subi r14, r14, 52 + b04c: 3201 movi r2, 1 + b04e: 03ce lrw r6, 0x2000005c // b290 + b050: 6cc3 mov r3, r0 + b052: dc4e000a st.b r2, (r14, 0xa) + b056: 9640 ld.w r2, (r6, 0x0) + b058: 9247 ld.w r2, (r2, 0x1c) + b05a: 7488 zextb r2, r2 + b05c: dc4e0009 st.b r2, (r14, 0x9) + b060: d84e0009 ld.b r2, (r14, 0x9) + b064: 3a40 cmpnei r2, 0 + b066: 0c08 bf 0xb076 // b076 + b068: d84e0009 ld.b r2, (r14, 0x9) + b06c: 3a42 cmpnei r2, 2 + b06e: 0c04 bf 0xb076 // b076 + b070: 3000 movi r0, 0 + b072: 140d addi r14, r14, 52 + b074: 1494 pop r4-r7, r15 + b076: 0397 lrw r4, 0x2000000c // b294 + b078: 3209 movi r2, 9 + b07a: 9400 ld.w r0, (r4, 0x0) + b07c: 3b40 cmpnei r3, 0 + b07e: b041 st.w r2, (r0, 0x4) + b080: 0857 bt 0xb12e // b12e + b082: 3307 movi r3, 7 + b084: dc6e000b st.b r3, (r14, 0xb) + b088: 037b lrw r3, 0x2dc6c00 // b298 + b08a: b863 st.w r3, (r14, 0xc) + b08c: 3380 movi r3, 128 + b08e: 4362 lsli r3, r3, 2 + b090: b867 st.w r3, (r14, 0x1c) + b092: d86e000b ld.b r3, (r14, 0xb) + b096: 74cc zextb r3, r3 + b098: b062 st.w r3, (r0, 0x8) + b09a: 037e lrw r3, 0xffff // b29c + b09c: b063 st.w r3, (r0, 0xc) + b09e: 3201 movi r2, 1 + b0a0: 3101 movi r1, 1 + b0a2: 03bf lrw r5, 0x20000014 // b2a0 + b0a4: e3ffdace bsr 0x6640 // 6640 + b0a8: 95e0 ld.w r7, (r5, 0x0) + b0aa: 137f lrw r3, 0xbe9c0005 // b2a4 + b0ac: b760 st.w r3, (r7, 0x0) + b0ae: 135f lrw r2, 0x30010 // b2a8 + b0b0: 3300 movi r3, 0 + b0b2: b762 st.w r3, (r7, 0x8) + b0b4: b743 st.w r2, (r7, 0xc) + b0b6: 32d8 movi r2, 216 + b0b8: b745 st.w r2, (r7, 0x14) + b0ba: 974f ld.w r2, (r7, 0x3c) + b0bc: 3aa2 bseti r2, 2 + b0be: b74f st.w r2, (r7, 0x3c) + b0c0: 9803 ld.w r0, (r14, 0xc) + b0c2: d82e000b ld.b r1, (r14, 0xb) + b0c6: 327d movi r2, 125 + b0c8: 2100 addi r1, 1 + b0ca: 7c48 mult r1, r2 + b0cc: b861 st.w r3, (r14, 0x4) + b0ce: e3ffe1f3 bsr 0x74b4 // 74b4 <__udivsi3> + b0d2: b804 st.w r0, (r14, 0x10) + b0d4: 32fa movi r2, 250 + b0d6: 9824 ld.w r1, (r14, 0x10) + b0d8: 4242 lsli r2, r2, 2 + b0da: 6448 cmphs r2, r1 + b0dc: 0bca bt 0xb070 // b070 + b0de: 9844 ld.w r2, (r14, 0x10) + b0e0: 3178 movi r1, 120 + b0e2: 9804 ld.w r0, (r14, 0x10) + b0e4: b840 st.w r2, (r14, 0x0) + b0e6: e3ffe1e7 bsr 0x74b4 // 74b4 <__udivsi3> + b0ea: 9840 ld.w r2, (r14, 0x0) + b0ec: 6082 subu r2, r0 + b0ee: b845 st.w r2, (r14, 0x14) + b0f0: 9804 ld.w r0, (r14, 0x10) + b0f2: 3178 movi r1, 120 + b0f4: 9844 ld.w r2, (r14, 0x10) + b0f6: b840 st.w r2, (r14, 0x0) + b0f8: e3ffe1de bsr 0x74b4 // 74b4 <__udivsi3> + b0fc: 9840 ld.w r2, (r14, 0x0) + b0fe: 6008 addu r0, r2 + b100: b806 st.w r0, (r14, 0x18) + b102: c0807020 psrclr ie + b106: 9640 ld.w r2, (r6, 0x0) + b108: 9254 ld.w r2, (r2, 0x50) + b10a: b848 st.w r2, (r14, 0x20) + b10c: 9861 ld.w r3, (r14, 0x4) + b10e: 9440 ld.w r2, (r4, 0x0) + b110: b260 st.w r3, (r2, 0x0) + b112: b761 st.w r3, (r7, 0x4) + b114: d86e000a ld.b r3, (r14, 0xa) + b118: 3b40 cmpnei r3, 0 + b11a: 083e bt 0xb196 // b196 + b11c: e3ffda44 bsr 0x65a4 // 65a4 + b120: 9400 ld.w r0, (r4, 0x0) + b122: e3ffda65 bsr 0x65ec // 65ec + b126: c1807420 psrset ee, ie + b12a: 3001 movi r0, 1 + b12c: 07a3 br 0xb072 // b072 + b12e: 3b41 cmpnei r3, 1 + b130: 0806 bt 0xb13c // b13c + b132: 3303 movi r3, 3 + b134: dc6e000b st.b r3, (r14, 0xb) + b138: 127d lrw r3, 0x16e3600 // b2ac + b13a: 07a8 br 0xb08a // b08a + b13c: 3b42 cmpnei r3, 2 + b13e: 0806 bt 0xb14a // b14a + b140: 3301 movi r3, 1 + b142: dc6e000b st.b r3, (r14, 0xb) + b146: 127b lrw r3, 0xb71b00 // b2b0 + b148: 07a1 br 0xb08a // b08a + b14a: 3b43 cmpnei r3, 3 + b14c: 0806 bt 0xb158 // b158 + b14e: 3300 movi r3, 0 + b150: dc6e000b st.b r3, (r14, 0xb) + b154: 1278 lrw r3, 0x5b8d80 // b2b4 + b156: 079a br 0xb08a // b08a + b158: 3b44 cmpnei r3, 4 + b15a: 0809 bt 0xb16c // b16c + b15c: 3300 movi r3, 0 + b15e: dc6e000b st.b r3, (r14, 0xb) + b162: 1276 lrw r3, 0x54c720 // b2b8 + b164: b863 st.w r3, (r14, 0xc) + b166: 3380 movi r3, 128 + b168: 4369 lsli r3, r3, 9 + b16a: 0793 br 0xb090 // b090 + b16c: 3b45 cmpnei r3, 5 + b16e: 0806 bt 0xb17a // b17a + b170: 3300 movi r3, 0 + b172: dc6e000b st.b r3, (r14, 0xb) + b176: 1272 lrw r3, 0x3ffed0 // b2bc + b178: 07f6 br 0xb164 // b164 + b17a: 3b46 cmpnei r3, 6 + b17c: 0806 bt 0xb188 // b188 + b17e: 3300 movi r3, 0 + b180: dc6e000b st.b r3, (r14, 0xb) + b184: 126f lrw r3, 0x1fff68 // b2c0 + b186: 07ef br 0xb164 // b164 + b188: 3b47 cmpnei r3, 7 + b18a: 0b84 bt 0xb092 // b092 + b18c: 3300 movi r3, 0 + b18e: dc6e000b st.b r3, (r14, 0xb) + b192: 126d lrw r3, 0x1ffb8 // b2c4 + b194: 07e8 br 0xb164 // b164 + b196: 9560 ld.w r3, (r5, 0x0) + b198: 3101 movi r1, 1 + b19a: 9440 ld.w r2, (r4, 0x0) + b19c: b321 st.w r1, (r3, 0x4) + b19e: b220 st.w r1, (r2, 0x0) + b1a0: 3100 movi r1, 0 + b1a2: b327 st.w r1, (r3, 0x1c) + b1a4: 3004 movi r0, 4 + b1a6: b225 st.w r1, (r2, 0x14) + b1a8: 932e ld.w r1, (r3, 0x38) + b1aa: 6840 and r1, r0 + b1ac: 3940 cmpnei r1, 0 + b1ae: 0ffd bf 0xb1a8 // b1a8 + b1b0: 9225 ld.w r1, (r2, 0x14) + b1b2: b82a st.w r1, (r14, 0x28) + b1b4: 3100 movi r1, 0 + b1b6: b310 st.w r0, (r3, 0x40) + b1b8: b327 st.w r1, (r3, 0x1c) + b1ba: 3004 movi r0, 4 + b1bc: b225 st.w r1, (r2, 0x14) + b1be: 932e ld.w r1, (r3, 0x38) + b1c0: 6840 and r1, r0 + b1c2: 3940 cmpnei r1, 0 + b1c4: 0ffd bf 0xb1be // b1be + b1c6: 9225 ld.w r1, (r2, 0x14) + b1c8: b82b st.w r1, (r14, 0x2c) + b1ca: 3100 movi r1, 0 + b1cc: b310 st.w r0, (r3, 0x40) + b1ce: b327 st.w r1, (r3, 0x1c) + b1d0: 3004 movi r0, 4 + b1d2: b225 st.w r1, (r2, 0x14) + b1d4: 932e ld.w r1, (r3, 0x38) + b1d6: 6840 and r1, r0 + b1d8: 3940 cmpnei r1, 0 + b1da: 0ffd bf 0xb1d4 // b1d4 + b1dc: 9225 ld.w r1, (r2, 0x14) + b1de: b82c st.w r1, (r14, 0x30) + b1e0: b310 st.w r0, (r3, 0x40) + b1e2: 982b ld.w r1, (r14, 0x2c) + b1e4: 980c ld.w r0, (r14, 0x30) + b1e6: 6040 addu r1, r0 + b1e8: b829 st.w r1, (r14, 0x24) + b1ea: 9829 ld.w r1, (r14, 0x24) + b1ec: 4921 lsri r1, r1, 1 + b1ee: b829 st.w r1, (r14, 0x24) + b1f0: 3100 movi r1, 0 + b1f2: b321 st.w r1, (r3, 0x4) + b1f4: b220 st.w r1, (r2, 0x0) + b1f6: b327 st.w r1, (r3, 0x1c) + b1f8: b225 st.w r1, (r2, 0x14) + b1fa: d86e0009 ld.b r3, (r14, 0x9) + b1fe: 3b42 cmpnei r3, 2 + b200: 9849 ld.w r2, (r14, 0x24) + b202: 082c bt 0xb25a // b25a + b204: 1171 lrw r3, 0x7ff // b2c8 + b206: 648c cmphs r3, r2 + b208: 0c03 bf 0xb20e // b20e + b20a: 3300 movi r3, 0 + b20c: 040f br 0xb22a // b22a + b20e: 9849 ld.w r2, (r14, 0x24) + b210: 9866 ld.w r3, (r14, 0x18) + b212: 648c cmphs r3, r2 + b214: 080e bt 0xb230 // b230 + b216: 9868 ld.w r3, (r14, 0x20) + b218: 9847 ld.w r2, (r14, 0x1c) + b21a: 60ca subu r3, r2 + b21c: b868 st.w r3, (r14, 0x20) + b21e: 32fe movi r2, 254 + b220: 9868 ld.w r3, (r14, 0x20) + b222: 4248 lsli r2, r2, 8 + b224: 68c8 and r3, r2 + b226: 3b40 cmpnei r3, 0 + b228: 0812 bt 0xb24c // b24c + b22a: dc6e000a st.b r3, (r14, 0xa) + b22e: 0721 br 0xb070 // b070 + b230: 9849 ld.w r2, (r14, 0x24) + b232: 9865 ld.w r3, (r14, 0x14) + b234: 64c8 cmphs r2, r3 + b236: 0829 bt 0xb288 // b288 + b238: 9868 ld.w r3, (r14, 0x20) + b23a: 9847 ld.w r2, (r14, 0x1c) + b23c: 60c8 addu r3, r2 + b23e: b868 st.w r3, (r14, 0x20) + b240: 33fe movi r3, 254 + b242: 9848 ld.w r2, (r14, 0x20) + b244: 4368 lsli r3, r3, 8 + b246: 688c and r2, r3 + b248: 64ca cmpne r2, r3 + b24a: 0fe0 bf 0xb20a // b20a + b24c: 9660 ld.w r3, (r6, 0x0) + b24e: 9848 ld.w r2, (r14, 0x20) + b250: b354 st.w r2, (r3, 0x50) + b252: 3001 movi r0, 1 + b254: e3ffdb80 bsr 0x6954 // 6954 + b258: 075e br 0xb114 // b114 + b25a: 9866 ld.w r3, (r14, 0x18) + b25c: 648c cmphs r3, r2 + b25e: 0809 bt 0xb270 // b270 + b260: 9868 ld.w r3, (r14, 0x20) + b262: 9847 ld.w r2, (r14, 0x1c) + b264: 60ca subu r3, r2 + b266: b868 st.w r3, (r14, 0x20) + b268: 32ff movi r2, 255 + b26a: 9868 ld.w r3, (r14, 0x20) + b26c: 4250 lsli r2, r2, 16 + b26e: 07db br 0xb224 // b224 + b270: 9849 ld.w r2, (r14, 0x24) + b272: 9865 ld.w r3, (r14, 0x14) + b274: 64c8 cmphs r2, r3 + b276: 0809 bt 0xb288 // b288 + b278: 9868 ld.w r3, (r14, 0x20) + b27a: 9847 ld.w r2, (r14, 0x1c) + b27c: 60c8 addu r3, r2 + b27e: b868 st.w r3, (r14, 0x20) + b280: 33ff movi r3, 255 + b282: 9848 ld.w r2, (r14, 0x20) + b284: 4370 lsli r3, r3, 16 + b286: 07e0 br 0xb246 // b246 + b288: 3300 movi r3, 0 + b28a: dc6e000a st.b r3, (r14, 0xa) + b28e: 07e2 br 0xb252 // b252 + b290: 2000005c .long 0x2000005c + b294: 2000000c .long 0x2000000c + b298: 02dc6c00 .long 0x02dc6c00 + b29c: 0000ffff .long 0x0000ffff + b2a0: 20000014 .long 0x20000014 + b2a4: be9c0005 .long 0xbe9c0005 + b2a8: 00030010 .long 0x00030010 + b2ac: 016e3600 .long 0x016e3600 + b2b0: 00b71b00 .long 0x00b71b00 + b2b4: 005b8d80 .long 0x005b8d80 + b2b8: 0054c720 .long 0x0054c720 + b2bc: 003ffed0 .long 0x003ffed0 + b2c0: 001fff68 .long 0x001fff68 + b2c4: 0001ffb8 .long 0x0001ffb8 + b2c8: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V05.map b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V05.map new file mode 100644 index 0000000..494f76f --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/BLV_CS_AC100_V05.map @@ -0,0 +1,3218 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x290c + Start of program headers: 52 (bytes into file) + Start of section headers: 398624 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 221 + Section header string table index: 218 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00002800 000800 00365a 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00005e5c 003e5c 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00005e94 003e94 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00005f08 003f08 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00005f54 003f54 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00005f84 003f84 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 0000600c 00400c 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00006034 004034 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00006070 004070 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00006084 004084 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 0000609c 00409c 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 000060bc 0040bc 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 000060d8 0040d8 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 000060f4 0040f4 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00006134 004134 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00006168 004168 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 0000616c 00416c 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 0000617c 00417c 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 00006188 004188 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Soft PROGBITS 00006194 004194 000014 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 000061a8 0041a8 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000061cc 0041cc 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 000061fc 0041fc 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 00006260 004260 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 00006340 004340 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00006354 004354 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00006364 004364 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 00006470 004470 0000fc 00 AX 0 0 4 + [29] .text.GPIO_Write_ PROGBITS 0000656c 00456c 000008 00 AX 0 0 2 + [30] .text.GPIO_Write_ PROGBITS 00006574 004574 000008 00 AX 0 0 2 + [31] .text.GPIO_Revers PROGBITS 0000657c 00457c 000016 00 AX 0 0 2 + [32] .text.GPIO_Read_S PROGBITS 00006592 004592 000010 00 AX 0 0 2 + [33] .text.LPT_Soft_Re PROGBITS 000065a4 0045a4 000014 00 AX 0 0 4 + [34] .text.WWDT_CNT_Lo PROGBITS 000065b8 0045b8 000010 00 AX 0 0 4 + [35] .text.BT_DeInit PROGBITS 000065c8 0045c8 00001c 00 AX 0 0 2 + [36] .text.BT_Start PROGBITS 000065e4 0045e4 000008 00 AX 0 0 2 + [37] .text.BT_Soft_Res PROGBITS 000065ec 0045ec 00000a 00 AX 0 0 2 + [38] .text.BT_Configur PROGBITS 000065f6 0045f6 000018 00 AX 0 0 2 + [39] .text.BT_ControlS PROGBITS 0000660e 00460e 00002c 00 AX 0 0 2 + [40] .text.BT_Period_C PROGBITS 0000663a 00463a 000006 00 AX 0 0 2 + [41] .text.BT_ConfigIn PROGBITS 00006640 004640 000012 00 AX 0 0 2 + [42] .text.BT1_INT_ENA PROGBITS 00006654 004654 000010 00 AX 0 0 4 + [43] .text.UART0_DeIni PROGBITS 00006664 004664 000018 00 AX 0 0 4 + [44] .text.UART1_DeIni PROGBITS 0000667c 00467c 000018 00 AX 0 0 4 + [45] .text.UART2_DeIni PROGBITS 00006694 004694 000018 00 AX 0 0 4 + [46] .text.UART0_Int_E PROGBITS 000066ac 0046ac 00001c 00 AX 0 0 4 + [47] .text.UART1_Int_E PROGBITS 000066c8 0046c8 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 000066e4 0046e4 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 00006700 004700 0000ec 00 AX 0 0 4 + [50] .text.UARTInitRxT PROGBITS 000067ec 0047ec 000010 00 AX 0 0 4 + [51] .text.UARTTransmi PROGBITS 000067fc 0047fc 00001e 00 AX 0 0 2 + [52] .text.EPT_Stop PROGBITS 0000681c 00481c 000028 00 AX 0 0 4 + [53] .text.Page_Progra PROGBITS 00006844 004844 0000a0 00 AX 0 0 4 + [54] .text.ReadDataArr PROGBITS 000068e4 0048e4 00002a 00 AX 0 0 2 + [55] .text.startup.mai PROGBITS 00006910 004910 000044 00 AX 0 0 4 + [56] .text.delay_nms PROGBITS 00006954 004954 00002c 00 AX 0 0 2 + [57] .text.delay_nus PROGBITS 00006980 004980 000022 00 AX 0 0 2 + [58] .text.BT_CONFIG PROGBITS 000069a4 0049a4 000060 00 AX 0 0 4 + [59] .text.SYSCON_CONF PROGBITS 00006a04 004a04 000062 00 AX 0 0 2 + [60] .text.APT32F102_i PROGBITS 00006a68 004a68 000080 00 AX 0 0 4 + [61] .text.SYSCONIntHa PROGBITS 00006ae8 004ae8 0000f0 00 AX 0 0 4 + [62] .text.IFCIntHandl PROGBITS 00006bd8 004bd8 000068 00 AX 0 0 4 + [63] .text.ADCIntHandl PROGBITS 00006c40 004c40 000068 00 AX 0 0 4 + [64] .text.EPT0IntHand PROGBITS 00006ca8 004ca8 0001ac 00 AX 0 0 4 + [65] .text.WWDTHandler PROGBITS 00006e54 004e54 000034 00 AX 0 0 4 + [66] .text.GPT0IntHand PROGBITS 00006e88 004e88 000080 00 AX 0 0 4 + [67] .text.RTCIntHandl PROGBITS 00006f08 004f08 000070 00 AX 0 0 4 + [68] .text.UART0IntHan PROGBITS 00006f78 004f78 000060 00 AX 0 0 4 + [69] .text.UART1IntHan PROGBITS 00006fd8 004fd8 000094 00 AX 0 0 4 + [70] .text.UART2IntHan PROGBITS 0000706c 00506c 000060 00 AX 0 0 4 + [71] .text.SPI0IntHand PROGBITS 000070cc 0050cc 0000e8 00 AX 0 0 4 + [72] .text.SIO0IntHand PROGBITS 000071b4 0051b4 000054 00 AX 0 0 4 + [73] .text.EXI0IntHand PROGBITS 00007208 005208 000030 00 AX 0 0 4 + [74] .text.EXI1IntHand PROGBITS 00007238 005238 000030 00 AX 0 0 4 + [75] .text.EXI2to3IntH PROGBITS 00007268 005268 000048 00 AX 0 0 4 + [76] .text.EXI4to9IntH PROGBITS 000072b0 0052b0 000020 00 AX 0 0 4 + [77] .text.EXI10to15In PROGBITS 000072d0 0052d0 00006c 00 AX 0 0 4 + [78] .text.LPTIntHandl PROGBITS 0000733c 00533c 000034 00 AX 0 0 4 + [79] .text.BT0IntHandl PROGBITS 00007370 005370 00004c 00 AX 0 0 4 + [80] .text.BT1IntHandl PROGBITS 000073bc 0053bc 000070 00 AX 0 0 4 + [81] .text.PriviledgeV PROGBITS 0000742c 00542c 000002 00 AX 0 0 2 + [82] .text.PendTrapHan PROGBITS 0000742e 00542e 000008 00 AX 0 0 2 + [83] .text.Trap3Handle PROGBITS 00007436 005436 000008 00 AX 0 0 2 + [84] .text.Trap2Handle PROGBITS 0000743e 00543e 000008 00 AX 0 0 2 + [85] .text.Trap1Handle PROGBITS 00007446 005446 000008 00 AX 0 0 2 + [86] .text.Trap0Handle PROGBITS 0000744e 00544e 000008 00 AX 0 0 2 + [87] .text.UnrecExecpH PROGBITS 00007456 005456 000008 00 AX 0 0 2 + [88] .text.BreakPointH PROGBITS 0000745e 00545e 000008 00 AX 0 0 2 + [89] .text.AccessErrHa PROGBITS 00007466 005466 000008 00 AX 0 0 2 + [90] .text.IllegalInst PROGBITS 0000746e 00546e 000008 00 AX 0 0 2 + [91] .text.MisalignedH PROGBITS 00007476 005476 000008 00 AX 0 0 2 + [92] .text.CNTAIntHand PROGBITS 0000747e 00547e 000008 00 AX 0 0 2 + [93] .text.I2CIntHandl PROGBITS 00007486 005486 000008 00 AX 0 0 2 + [94] .text.__divsi3 PROGBITS 00007490 005490 000024 00 AX 0 0 4 + [95] .text.__udivsi3 PROGBITS 000074b4 0054b4 000024 00 AX 0 0 4 + [96] .text.__modsi3 PROGBITS 000074d8 0054d8 000024 00 AX 0 0 4 + [97] .text.__umodsi3 PROGBITS 000074fc 0054fc 000024 00 AX 0 0 4 + [98] .text.CK_CPU_EnAl PROGBITS 00007520 005520 000006 00 AX 0 0 2 + [99] .text.CK_CPU_DisA PROGBITS 00007526 005526 000006 00 AX 0 0 2 + [100] .text.UARTx_Init PROGBITS 0000752c 00552c 00018c 00 AX 0 0 4 + [101] .text.UART0_RecvI PROGBITS 000076b8 0056b8 000044 00 AX 0 0 4 + [102] .text.UART0_TASK PROGBITS 000076fc 0056fc 000070 00 AX 0 0 4 + [103] .text.UART1_RecvI PROGBITS 0000776c 00576c 000044 00 AX 0 0 4 + [104] .text.UART1_TASK PROGBITS 000077b0 0057b0 00007c 00 AX 0 0 4 + [105] .text.UART2_RecvI PROGBITS 0000782c 00582c 000044 00 AX 0 0 4 + [106] .text.UART2_TASK PROGBITS 00007870 005870 000070 00 AX 0 0 4 + [107] .text.MCU485_Send PROGBITS 000078e0 0058e0 000090 00 AX 0 0 4 + [108] .text.BUS485_Send PROGBITS 00007970 005970 0000c4 00 AX 0 0 4 + [109] .text.MultSend_Ta PROGBITS 00007a34 005a34 000074 00 AX 0 0 4 + [110] .text.Set_GroupSe PROGBITS 00007aa8 005aa8 000064 00 AX 0 0 4 + [111] .text.Clear_SendF PROGBITS 00007b0c 005b0c 000010 00 AX 0 0 4 + [112] .text.BUS485_Jump PROGBITS 00007b1c 005b1c 00000c 00 AX 0 0 4 + [113] .text.BusIdle_Tas PROGBITS 00007b28 005b28 000040 00 AX 0 0 4 + [114] .text.BusBusy_Tas PROGBITS 00007b68 005b68 00005c 00 AX 0 0 4 + [115] .text.Dbg_Println PROGBITS 00007bc4 005bc4 000080 00 AX 0 0 4 + [116] .text.BUS485Send_ PROGBITS 00007c44 005c44 000068 00 AX 0 0 4 + [117] .text.Dbg_Print_B PROGBITS 00007cac 005cac 000084 00 AX 0 0 4 + [118] .text.Dbg_BT_Prin PROGBITS 00007d30 005d30 000060 00 AX 0 0 4 + [119] .text.DIP_GetSwit PROGBITS 00007d90 005d90 000034 00 AX 0 0 4 + [120] .text.DIP_Switch_ PROGBITS 00007dc4 005dc4 000094 00 AX 0 0 4 + [121] .text.DIP_ScanTas PROGBITS 00007e58 005e58 000098 00 AX 0 0 4 + [122] .text.EEPROM_Chec PROGBITS 00007ef0 005ef0 000016 00 AX 0 0 2 + [123] .text.EEOROM_ENER PROGBITS 00007f08 005f08 000164 00 AX 0 0 4 + [124] .text.EEOROM_ENER PROGBITS 0000806c 00606c 000044 00 AX 0 0 4 + [125] .text.EEPROM_ENER PROGBITS 000080b0 0060b0 000184 00 AX 0 0 4 + [126] .text.EEPROM_Defa PROGBITS 00008234 006234 000140 00 AX 0 0 4 + [127] .text.EEPROM_Read PROGBITS 00008374 006374 0000d4 00 AX 0 0 4 + [128] .text.EEPROM_Writ PROGBITS 00008448 006448 000040 00 AX 0 0 2 + [129] .text.EEPROM_Defa PROGBITS 00008488 006488 000038 00 AX 0 0 4 + [130] .text.EEPROM_Vali PROGBITS 000084c0 0064c0 000058 00 AX 0 0 4 + [131] .text.EEPROM_Init PROGBITS 00008518 006518 0000e4 00 AX 0 0 4 + [132] .text.BLV_DetEner PROGBITS 000085fc 0065fc 000030 00 AX 0 0 4 + [133] .text.BLV_DetEner PROGBITS 0000862c 00662c 0000e4 00 AX 0 0 4 + [134] .text.SaveFram_TE PROGBITS 00008710 006710 000044 00 AX 0 0 4 + [135] .text.HLW8110_Che PROGBITS 00008754 006754 000018 00 AX 0 0 2 + [136] .text.HLW8110_Wri PROGBITS 0000876c 00676c 000044 00 AX 0 0 4 + [137] .text.HLW8110_Wri PROGBITS 000087b0 0067b0 000044 00 AX 0 0 4 + [138] .text.HLW8110_Res PROGBITS 000087f4 0067f4 000050 00 AX 0 0 4 + [139] .text.BLV_HLW8110 PROGBITS 00008844 006844 000084 00 AX 0 0 4 + [140] .text.HLW8110_RWC PROGBITS 000088c8 0068c8 000070 00 AX 0 0 4 + [141] .text.HLW8110_Cle PROGBITS 00008938 006938 000010 00 AX 0 0 4 + [142] .text.Get_RevStat PROGBITS 00008948 006948 00001c 00 AX 0 0 4 + [143] .text.Get_SendSta PROGBITS 00008964 006964 00001c 00 AX 0 0 4 + [144] .text.BLV_HLW8110 PROGBITS 00008980 006980 00014c 00 AX 0 0 4 + [145] .text.HLW8110_Con PROGBITS 00008acc 006acc 000084 00 AX 0 0 4 + [146] .text.HLW8110_Con PROGBITS 00008b50 006b50 000094 00 AX 0 0 4 + [147] .text.HLW8110_Con PROGBITS 00008be4 006be4 000094 00 AX 0 0 4 + [148] .text.HLW8110_Con PROGBITS 00008c78 006c78 00008c 00 AX 0 0 4 + [149] .text.HLW8110_Con PROGBITS 00008d04 006d04 00008c 00 AX 0 0 4 + [150] .text.HLW8110_Con PROGBITS 00008d90 006d90 000100 00 AX 0 0 4 + [151] .text.HLW8110_Con PROGBITS 00008e90 006e90 000100 00 AX 0 0 4 + [152] .text.HLW8110_Cle PROGBITS 00008f90 006f90 000014 00 AX 0 0 4 + [153] .text.HLW8110_Rec PROGBITS 00008fa4 006fa4 000368 00 AX 0 0 4 + [154] .text.HLW8110_Sys PROGBITS 0000930c 00730c 000026 00 AX 0 0 2 + [155] .text.HLW8110_Rea PROGBITS 00009334 007334 000250 00 AX 0 0 4 + [156] .text.HLW8110_Rea PROGBITS 00009584 007584 000100 00 AX 0 0 4 + [157] .text.GetEnergy_P PROGBITS 00009684 007684 000070 00 AX 0 0 4 + [158] .text.HLW8110_Rea PROGBITS 000096f4 0076f4 0001c4 00 AX 0 0 4 + [159] .text.BLV_HLW8110 PROGBITS 000098b8 0078b8 000064 00 AX 0 0 4 + [160] .text.BT_Uart_Pac PROGBITS 0000991c 00791c 000048 00 AX 0 0 4 + [161] .text.BT_UART_Pri PROGBITS 00009964 007964 000140 00 AX 0 0 4 + [162] .text.BLV_Energy_ PROGBITS 00009aa4 007aa4 000130 00 AX 0 0 4 + [163] .text.BLV_Electri PROGBITS 00009bd4 007bd4 000034 00 AX 0 0 4 + [164] .text.BLV_EngDete PROGBITS 00009c08 007c08 000014 00 AX 0 0 2 + [165] .text.BLV_Energy_ PROGBITS 00009c1c 007c1c 0000a0 00 AX 0 0 4 + [166] .text.BLV_Energy_ PROGBITS 00009cbc 007cbc 000098 00 AX 0 0 4 + [167] .text.SetCalibFac PROGBITS 00009d54 007d54 00002c 00 AX 0 0 4 + [168] .text.BLV_Energy_ PROGBITS 00009d80 007d80 000084 00 AX 0 0 4 + [169] .text.BLV_Energy_ PROGBITS 00009e04 007e04 00007c 00 AX 0 0 4 + [170] .text.BLV_485Recv PROGBITS 00009e80 007e80 000194 00 AX 0 0 4 + [171] .text.BT_Recv_Pro PROGBITS 0000a014 008014 000144 00 AX 0 0 4 + [172] .text.Boot_Functi PROGBITS 0000a158 008158 0000c0 00 AX 0 0 4 + [173] .text.Boot_Comm_C PROGBITS 0000a218 008218 000024 00 AX 0 0 4 + [174] .text.Boot_Comm_F PROGBITS 0000a23c 00823c 00006c 00 AX 0 0 4 + [175] .text.Boot_Time_R PROGBITS 0000a2a8 0082a8 000014 00 AX 0 0 4 + [176] .text.Boot_Comm_U PROGBITS 0000a2bc 0082bc 00021c 00 AX 0 0 4 + [177] .text.Fram_SDA_GP PROGBITS 0000a4d8 0084d8 000014 00 AX 0 0 4 + [178] .text.Fram_SDA_GP PROGBITS 0000a4ec 0084ec 000020 00 AX 0 0 4 + [179] .text.IIC_Wait PROGBITS 0000a50c 00850c 00003c 00 AX 0 0 2 + [180] .text.IIC_Start PROGBITS 0000a548 008548 000040 00 AX 0 0 4 + [181] .text.IIC_Stop PROGBITS 0000a588 008588 00003c 00 AX 0 0 4 + [182] .text.IIC_ACK PROGBITS 0000a5c4 0085c4 00003c 00 AX 0 0 4 + [183] .text.IIC_NoACK PROGBITS 0000a600 008600 00003c 00 AX 0 0 4 + [184] .text.IIC_Wait_AC PROGBITS 0000a63c 00863c 000064 00 AX 0 0 4 + [185] .text.IIC_Send_By PROGBITS 0000a6a0 0086a0 000058 00 AX 0 0 4 + [186] .text.IIC_Read_By PROGBITS 0000a6f8 0086f8 000058 00 AX 0 0 4 + [187] .text.Fram_I2C_Wr PROGBITS 0000a750 008750 00008c 00 AX 0 0 4 + [188] .text.Fram_I2C_Re PROGBITS 0000a7dc 0087dc 0000a8 00 AX 0 0 4 + [189] .text.FRAM_WriteT PROGBITS 0000a884 008884 000064 00 AX 0 0 4 + [190] .text.FRAM_ReadTo PROGBITS 0000a8e8 0088e8 0000a4 00 AX 0 0 4 + [191] .text.Bsp_I2C_Fra PROGBITS 0000a98c 00898c 00005c 00 AX 0 0 4 + [192] .text.TK_Sampling PROGBITS 0000a9e8 0089e8 000058 00 AX 0 0 4 + [193] .text.TKEYIntHand PROGBITS 0000aa40 008a40 000088 00 AX 0 0 4 + [194] .text.get_key_num PROGBITS 0000aac8 008ac8 000028 00 AX 0 0 4 + [195] .text.TK_Scan_Sta PROGBITS 0000aaf0 008af0 000020 00 AX 0 0 4 + [196] .text.TK_Keymap_p PROGBITS 0000ab10 008b10 000180 00 AX 0 0 4 + [197] .text.TK_overflow PROGBITS 0000ac90 008c90 00011c 00 AX 0 0 4 + [198] .text.TK_Baseline PROGBITS 0000adac 008dac 0001d0 00 AX 0 0 4 + [199] .text.TK_result_p PROGBITS 0000af7c 008f7c 000054 00 AX 0 0 4 + [200] .text.CORETHandle PROGBITS 0000afd0 008fd0 000078 00 AX 0 0 4 + [201] .text.std_clk_cal PROGBITS 0000b048 009048 000284 00 AX 0 0 4 + [202] .RomCode PROGBITS 0000b2cc 00b0bc 000000 00 W 0 0 1 + [203] .rodata PROGBITS 0000b2cc 0092cc 0017f0 00 A 0 0 4 + [204] .data PROGBITS 20000000 00b000 00009c 00 WA 0 0 4 + [205] .textcsky.VinFlas PROGBITS 2000009c 00b09c 000020 00 WA 0 0 1 + [206] .bss NOBITS 200000bc 00b0bc 000a6c 00 WA 0 0 4 + [207] .csky.attributes CSKY_ATTRIBUTES 00000000 00b0bc 000022 00 0 0 1 + [208] .comment PROGBITS 00000000 00b0de 000042 01 MS 0 0 1 + [209] .csky_stack_size PROGBITS 00000000 00b120 000b9c 00 0 0 16 + [210] .debug_line PROGBITS 00000000 00bcbc 004915 00 0 0 1 + [211] .debug_info PROGBITS 00000000 0105d1 034acb 00 0 0 1 + [212] .debug_abbrev PROGBITS 00000000 04509c 003046 00 0 0 1 + [213] .debug_aranges PROGBITS 00000000 0480e8 000e28 00 0 0 8 + [214] .debug_ranges PROGBITS 00000000 048f10 000ea8 00 0 0 1 + [215] .debug_str PROGBITS 00000000 049db8 009445 01 MS 0 0 1 + [216] .debug_frame PROGBITS 00000000 053200 0023cc 00 0 0 4 + [217] .debug_loc PROGBITS 00000000 0555cc 003598 00 0 0 1 + [218] .shstrtab STRTAB 00000000 0601ce 00134f 00 0 0 1 + [219] .symtab SYMTAB 00000000 058b64 005a40 10 220 1039 4 + [220] .strtab STRTAB 00000000 05e5a4 001c2a 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x000000 0x00002000 0x00002000 0x0aabc 0x0aabc R E 0x1000 + LOAD 0x00b000 0x20000000 0x0000cabc 0x000bc 0x00b28 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .text.SYSCON_Software_Reset .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_DeInit .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.Page_ProgramData .text.ReadDataArry_U8 .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART0_RecvINT_Processing .text.UART0_TASK .text.UART1_RecvINT_Processing .text.UART1_TASK .text.UART2_RecvINT_Processing .text.UART2_TASK .text.MCU485_SendData .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.BUS485Send_Task .text.Dbg_Print_Buff .text.Dbg_BT_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.EEPROM_CheckSum .text.EEOROM_ENERGY_ReadSet .text.EEOROM_ENERGY_WriteSet .text.EEPROM_ENERGY_Validate .text.EEPROM_Default_ENERGY .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.BLV_DetEnergy_Init .text.BLV_DetEnergy_Default .text.SaveFram_TEng .text.HLW8110_CheckSum .text.HLW8110_WriteREG_EN .text.HLW8110_WriteREG_DIS .text.HLW8110_Reset .text.BLV_HLW8110_RWCMD_Packaging .text.HLW8110_RWCMD_Send .text.HLW8110_CleanSdFlag .text.Get_RevState .text.Get_SendState .text.BLV_HLW8110_SendData_Tack .text.HLW8110_Convert_VoltageReg_Value .text.HLW8110_Convert_CurrentRegA_Value .text.HLW8110_Convert_CurrentRegB_Value .text.HLW8110_Convert_PowerRegA_Value .text.HLW8110_Convert_PowerRegB_Value .text.HLW8110_Convert_EnergyRegA_Value .text.HLW8110_Convert_EnergyRegB_Value .text.HLW8110_ClearFlag .text.HLW8110_RecvData_Processing .text.HLW8110_SysPara_Check .text.HLW8110_ReadSysPara .text.HLW8110_ReadSysCtrlPara .text.GetEnergy_Para .text.HLW8110_ReadValue .text.BLV_HLW8110_Tack .text.BT_Uart_Packing .text.BT_UART_Print .text.BLV_Energy_PassiveRep_Packing .text.BLV_ElectricPara_Processing .text.BLV_EngDetect_Tack .text.BLV_Energy_SetTime_Packing .text.BLV_Energy_QueryVersion_Packing .text.SetCalibFactor_Switch .text.BLV_Energy_SetCalibFactor .text.BLV_Energy_SetCalibFactor_2 .text.BLV_485Recv_Processing .text.BT_Recv_Processing .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.Fram_SDA_GPIO.part.0 .text.Fram_SDA_GPIO .text.IIC_Wait .text.IIC_Start .text.IIC_Stop .text.IIC_ACK .text.IIC_NoACK .text.IIC_Wait_ACK .text.IIC_Send_Byte .text.IIC_Read_Byte .text.Fram_I2C_WriteBytes .text.Fram_I2C_ReadBytes .text.FRAM_WriteTotalEng .text.FRAM_ReadTotalEng .text.Bsp_I2C_Fram_Init .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .textcsky.VinFlash .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_fram_i2c.o(.text.FRAM_ReadTotalEng) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Software_Reset) for SYSCON_Software_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_ACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_NoACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DeInit) for GPIO_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO.part.0) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_fram_i2c.o(.text.Bsp_I2C_Fram_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.UART0_RecvINT_Processing) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_ACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_NoACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegB_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegA_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegB_Value) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_fram_i2c.o(.text.FRAM_WriteTotalEng) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_fram_i2c.o(.text.FRAM_ReadTotalEng) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_fram_i2c.o(.text.Bsp_I2C_Fram_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) for Dbg_BT_Println + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART0IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART0_RecvINT_Processing) for UART0_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART0_TASK) for UART0_TASK + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART1_TASK) for UART1_TASK + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_TASK + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_uart.o(.text.BUS485_Jump_Boot) for BUS485_Jump_Boot + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) for DIP_ScanTask + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_fram_i2c.o(.text.FRAM_WriteTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_fram_i2c.o(.text.FRAM_ReadTotalEng) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) for EEOROM_ENERGY_ReadSet + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) for EEOROM_ENERGY_WriteSet + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) for EEPROM_ENERGY_Validate + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) for EEPROM_Default_ENERGY + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) for EEPROM_ReadMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) for EEPROM_Default_MCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) for BLV_DetEnergy_Init + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) for BLV_DetEnergy_Default + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegA_Value) refers to Obj/SYSTEM_det_energy.o(.text.SaveFram_TEng) for SaveFram_TEng + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegB_Value) refers to Obj/SYSTEM_det_energy.o(.text.SaveFram_TEng) for SaveFram_TEng + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CheckSum) for HLW8110_CheckSum + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_EN) for HLW8110_WriteREG_EN + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_WriteREG_DIS) for HLW8110_WriteREG_DIS + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Reset) for HLW8110_Reset + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) for BLV_HLW8110_RWCMD_Packaging + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) for HLW8110_RWCMD_Send + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_CleanSdFlag) for HLW8110_CleanSdFlag + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to Obj/SYSTEM_det_energy.o(.text.Get_RevState) for Get_RevState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.Get_SendState) for Get_SendState + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) for BLV_HLW8110_SendData_Tack + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) for HLW8110_Convert_VoltageReg_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) for HLW8110_Convert_CurrentRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) for HLW8110_Convert_CurrentRegB_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegA_Value) for HLW8110_Convert_PowerRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegB_Value) for HLW8110_Convert_PowerRegB_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegA_Value) for HLW8110_Convert_EnergyRegA_Value + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegB_Value) for HLW8110_Convert_EnergyRegB_Value + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ClearFlag) for HLW8110_ClearFlag + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_SysPara_Check) for HLW8110_SysPara_Check + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) for HLW8110_ReadSysPara + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) for HLW8110_ReadSysCtrlPara + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to Obj/SYSTEM_det_energy.o(.text.GetEnergy_Para) for GetEnergy_Para + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) for HLW8110_ReadValue + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) for BLV_HLW8110_Tack + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) for BT_Uart_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) for BT_UART_Print + Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) for BLV_Energy_PassiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) for BLV_Energy_PassiveRep_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) refers to Obj/SYSTEM_det_energy.o(.text.BLV_ElectricPara_Processing) for BLV_ElectricPara_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_det_energy.o(.text.BLV_EngDetect_Tack) for BLV_EngDetect_Tack + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetTime_Packing) for BLV_Energy_SetTime_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) for BLV_Energy_QueryVersion_Packing + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) for SetCalibFactor_Switch + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) for BLV_Energy_SetCalibFactor + Obj/SYSTEM_det_energy.o(.text.BT_Recv_Processing) refers to Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) for BLV_Energy_SetCalibFactor_2 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) for Boot_Function_Init + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_CheckSum) for Boot_Comm_CheckSum + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) for Boot_Comm_FillReplyPack + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Time_Refresh) for Boot_Time_Refresh + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO) for Fram_SDA_GPIO + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/SYSTEM_fram_i2c.o(.text.Fram_SDA_GPIO) for Fram_SDA_GPIO + Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_ACK) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_NoACK) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait) for IIC_Wait + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) for IIC_Start + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Start) for IIC_Start + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) for IIC_Stop + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Stop) for IIC_Stop + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_ACK) for IIC_ACK + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_NoACK) for IIC_NoACK + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) for IIC_Wait_ACK + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Wait_ACK) for IIC_Wait_ACK + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) for IIC_Send_Byte + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Send_Byte) for IIC_Send_Byte + Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadBytes) refers to Obj/SYSTEM_fram_i2c.o(.text.IIC_Read_Byte) for IIC_Read_Byte + Obj/SYSTEM_fram_i2c.o(.text.FRAM_WriteTotalEng) refers to Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_WriteBytes) for Fram_I2C_WriteBytes + Obj/SYSTEM_fram_i2c.o(.text.FRAM_ReadTotalEng) refers to Obj/SYSTEM_fram_i2c.o(.text.Fram_I2C_ReadBytes) for Fram_I2C_ReadBytes + Obj/SYSTEM_det_energy.o(.text.SaveFram_TEng) refers to Obj/SYSTEM_fram_i2c.o(.text.FRAM_WriteTotalEng) for FRAM_WriteTotalEng + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to Obj/SYSTEM_fram_i2c.o(.text.FRAM_WriteTotalEng) for FRAM_WriteTotalEng + Obj/SYSTEM_fram_i2c.o(.text.Bsp_I2C_Fram_Init) refers to Obj/SYSTEM_fram_i2c.o(.text.FRAM_ReadTotalEng) for FRAM_ReadTotalEng + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_fram_i2c.o(.text.Bsp_I2C_Fram_Init) for Bsp_I2C_Fram_Init + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_SendData_Tack) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysPara) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadSysCtrlPara) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_ReadValue) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_Tack) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.BT_UART_Print) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.SetCalibFactor_Switch) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegB_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegA_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegB_Value) refers to _fixunssfsi.o(.text) for __fixunssfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegA_Value) refers to _addsub_sf.o(.text) for __addsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegB_Value) refers to _addsub_sf.o(.text) for __addsf3 + _fixunssfsi.o(.text) refers to _addsub_sf.o(.text) for __subsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegB_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegA_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegB_Value) refers to _mul_sf.o(.text) for __mulsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _ne_sf.o(.text) for __nesf2 + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Default) refers to _ne_sf.o(.text) for __nesf2 + _fixunssfsi.o(.text) refers to _ge_sf.o(.text) for __gesf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegB_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegA_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegB_Value) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor) refers to _si_to_sf.o(.text) for __floatsisf + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_SetCalibFactor_2) refers to _si_to_sf.o(.text) for __floatsisf + _fixunssfsi.o(.text) refers to _sf_to_si.o(.text) for __fixsfsi + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ENERGY_Validate) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ENERGY) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegA_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_PowerRegB_Value) refers to _sf_to_df.o(.text) for __extendsfdf2 + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _div_df.o(.text) for __divdf3 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegA_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegB_Value) refers to _df_to_sf.o(.text) for __truncdfsf2 + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_VoltageReg_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegA_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_CurrentRegB_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegA_Value) refers to _usi_to_df.o(.text) for __floatunsidf + Obj/SYSTEM_det_energy.o(.text.HLW8110_Convert_EnergyRegB_Value) refers to _usi_to_df.o(.text) for __floatunsidf + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_sf.o(.text) refers to _muldi3.o(.text) for __muldi3 + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_sf.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _mul_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _si_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _make_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _addsub_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _mul_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _div_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ge_sf.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_si.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _sf_to_df.o(.text) refers to _unpack_sf.o(.text) for __unpack_f + _ne_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _ge_sf.o(.text) refers to _fpcmp_parts_sf.o(.text) for __fpcmp_parts_f + _df_to_sf.o(.text) refers to _make_sf.o(.text) for __make_fp + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _make_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_sf.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_BT_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_DetEnergy_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_HLW8110_RWCMD_Packaging) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_PassiveRep_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_Energy_QueryVersion_Packing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_det_energy.o(.text.BLV_485Recv_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_Bootload_fun.o(.text.Boot_Function_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_fram_i2c.o(.text.FRAM_ReadTotalEng) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_fram_i2c.o(.text.Bsp_I2C_Fram_Init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART0_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_ReadSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEOROM_ENERGY_WriteSet) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RWCMD_Send) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.HLW8110_RecvData_Processing) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_det_energy.o(.text.BT_Uart_Packing) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_fram_i2c.o(.text.FRAM_WriteTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_fram_i2c.o(.text.FRAM_ReadTotalEng) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to strncmp.o(.text) for strncmp + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2907 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3101 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3418 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3163 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_IO_Init(Obj/FWlib_apt32f102_gpt.o), (160 bytes). + Removing .text.GPT_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveCtrl_Configure(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_WaveLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_WaveOut_Configure(Obj/FWlib_apt32f102_gpt.o), (180 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Start(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Period_CMP_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_gpt.o), (28 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_gpt.o), (11442 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_gpt.o), (562 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_gpt.o), (2212 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_gpt.o), (256 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_gpt.o), (240 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_gpt.o), (754 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_gpt.o), (8026 bytes). + Removing .comment(Obj/FWlib_apt32f102_gpt.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_gpt.o), (616 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4131 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3534 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3650 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4850 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4958 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2856 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .bss(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (116 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ReadTotalEng(Obj/SYSTEM_eeprom.o), (184 bytes). + Removing .text.EEPROM_WriteTotalEng(Obj/SYSTEM_eeprom.o), (172 bytes). + Removing .text.EEPROM_ReadPara(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_ValidateWrite(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_WritePara(Obj/SYSTEM_eeprom.o), (104 bytes). + Removing .text(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .data(Obj/SYSTEM_det_energy.o), (0 bytes). + Removing .text.HLW8110_ToWaitState(Obj/SYSTEM_det_energy.o), (24 bytes). + Removing .text(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_Bootload_fun.o), (0 bytes). + Removing .text.NetCRC16(Obj/SYSTEM_Bootload_fun.o), (60 bytes). + Removing .text.APP_Flash_AllEase(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.MCU_EEPROM_AllEase(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing .text.APP_FEATURE_Flash_Ease(Obj/SYSTEM_Bootload_fun.o), (12 bytes). + Removing .text.Boot_TimeOut_Task(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Jump_To_APP(Obj/SYSTEM_Bootload_fun.o), (28 bytes). + Removing .text.Check_APP_Feature(Obj/SYSTEM_Bootload_fun.o), (456 bytes). + Removing .text(Obj/SYSTEM_fram_i2c.o), (0 bytes). + Removing .data(Obj/SYSTEM_fram_i2c.o), (0 bytes). + Removing .bss(Obj/SYSTEM_fram_i2c.o), (0 bytes). + Removing .text.IIC_Wait_ACK2(Obj/SYSTEM_fram_i2c.o), (88 bytes). + Removing .text.Fram_I2C_WriteByte(Obj/SYSTEM_fram_i2c.o), (112 bytes). + Removing .text.Fram_I2C_ReadByte(Obj/SYSTEM_fram_i2c.o), (128 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (121 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunssfsi.o), (0 bytes). + Removing .bss(_fixunssfsi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_sf.o), (0 bytes). + Removing .bss(_addsub_sf.o), (0 bytes). + Removing .data(_mul_sf.o), (0 bytes). + Removing .bss(_mul_sf.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.o), (0 bytes). + Removing .data(_ne_sf.o), (0 bytes). + Removing .bss(_ne_sf.o), (0 bytes). + Removing .data(_ge_sf.o), (0 bytes). + Removing .bss(_ge_sf.o), (0 bytes). + Removing .data(_si_to_sf.o), (0 bytes). + Removing .bss(_si_to_sf.o), (0 bytes). + Removing .data(_sf_to_si.o), (0 bytes). + Removing .bss(_sf_to_si.o), (0 bytes). + Removing .data(_sf_to_df.o), (0 bytes). + Removing .bss(_sf_to_df.o), (0 bytes). + Removing .text(_thenan_sf.o), (0 bytes). + Removing .data(_thenan_sf.o), (0 bytes). + Removing .bss(_thenan_sf.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .data(_make_df.o), (0 bytes). + Removing .bss(_make_df.o), (0 bytes). + Removing .data(_df_to_sf.o), (0 bytes). + Removing .bss(_df_to_sf.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_sf.o), (0 bytes). + Removing .bss(_pack_sf.o), (0 bytes). + Removing .data(_unpack_sf.o), (0 bytes). + Removing .bss(_unpack_sf.o), (0 bytes). + Removing .data(_fpcmp_parts_sf.o), (0 bytes). + Removing .bss(_fpcmp_parts_sf.o), (0 bytes). + Removing .data(_make_sf.o), (0 bytes). + Removing .bss(_make_sf.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +696 unused seciton(s) (total 184807 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ifc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_Bootload_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_det_energy.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_fram_i2c.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _addsub_sf.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_sf.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _div_sf.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fixunssfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _fpcmp_parts_sf.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _ge_sf.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _make_df.o 0x00000000 df 0 *ABS* + _make_sf.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _mul_sf.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _ne_sf.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _sf_to_si.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _si_to_sf.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _unpack_sf.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + strncmp.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00002800 0 .text + $t 0x0000290c 0 .text + INIT_KERLE_STACK 0x0000293e 0 .text + __to_main 0x00002946 0 .text + __dummy 0x00002982 0 .text + $d 0x00002986 0 .text + $d 0x000029b4 0 .text + $t 0x000029b4 0 .text + $d 0x00002d78 0 .text + $t 0x00002de0 0 .text + $d 0x000032a8 0 .text + $t 0x00003358 0 .text + $d 0x0000335e 0 .text + $t 0x0000335e 0 .text + $d 0x00003364 0 .text + $t 0x00003364 0 .text + $d 0x00003380 0 .text + $d 0x00003384 0 .text + $t 0x00003384 0 .text + $d 0x000034f0 0 .text + $d 0x000034fc 0 .text + $t 0x000034fc 0 .text + $d 0x00003510 0 .text + $t 0x00003510 0 .text + $d 0x00003540 0 .text + $t 0x00003540 0 .text + $d 0x00003574 0 .text + _fpadd_parts 0x00003578 F 332 .text + $d 0x00003578 0 .text + $t 0x00003578 0 .text + $d 0x000036bc 0 .text + $t 0x000036c4 0 .text + $d 0x00003724 0 .text + $t 0x00003724 0 .text + $d 0x00003834 0 .text + $d 0x0000383c 0 .text + $t 0x0000383c 0 .text + $d 0x000038f4 0 .text + $d 0x000038f8 0 .text + $t 0x000038f8 0 .text + $d 0x00003930 0 .text + $t 0x00003930 0 .text + $d 0x00003968 0 .text + $t 0x00003968 0 .text + $d 0x000039cc 0 .text + $t 0x000039cc 0 .text + $d 0x00003a1c 0 .text + $d 0x00003a20 0 .text + $t 0x00003a20 0 .text + _fpadd_parts 0x00003a44 F 724 .text + $d 0x00003a44 0 .text + $t 0x00003a44 0 .text + $d 0x00003d0c 0 .text + $t 0x00003d18 0 .text + $d 0x00003d80 0 .text + $t 0x00003d80 0 .text + $d 0x00003fa8 0 .text + $d 0x00003fb4 0 .text + $t 0x00003fb4 0 .text + $d 0x00004104 0 .text + $d 0x00004108 0 .text + $t 0x00004108 0 .text + $d 0x00004144 0 .text + $t 0x00004144 0 .text + $d 0x00004180 0 .text + $t 0x00004180 0 .text + $d 0x000041bc 0 .text + $t 0x000041bc 0 .text + $d 0x00004228 0 .text + $d 0x0000422c 0 .text + $t 0x0000422c 0 .text + $d 0x00004298 0 .text + $d 0x0000429c 0 .text + $t 0x0000429c 0 .text + $d 0x000042c4 0 .text + $t 0x000042c4 0 .text + $d 0x000042f4 0 .text + $t 0x000042f4 0 .text + $d 0x00004348 0 .text + $t 0x00004348 0 .text + $d 0x0000438c 0 .text + $t 0x0000438c 0 .text + $d 0x000043c0 0 .text + $d 0x000043cc 0 .text + $t 0x000043cc 0 .text + $d 0x00004480 0 .text + $d 0x00004484 0 .text + $t 0x00004484 0 .text + $d 0x00004500 0 .text + $d 0x00004508 0 .text + $t 0x00004508 0 .text + $d 0x00004580 0 .text + $t 0x00004580 0 .text + $d 0x00004598 0 .text + $t 0x00004598 0 .text + $d 0x00004720 0 .text + $d 0x00004734 0 .text + $t 0x00004734 0 .text + $d 0x000047ec 0 .text + $d 0x000047f8 0 .text + $t 0x000047f8 0 .text + $d 0x00004884 0 .text + $t 0x00004884 0 .text + swrite 0x000048a4 F 62 .text + $d 0x000048a4 0 .text + $t 0x000048a4 0 .text + $d 0x00004938 0 .text + $d 0x0000493c 0 .text + $t 0x0000493c 0 .text + $d 0x000049c4 0 .text + $t 0x000049c4 0 .text + $d 0x00004a28 0 .text + $t 0x00004a28 0 .text + PAD.1851 0x00004a50 F 52 .text + $d 0x00004a50 0 .text + $t 0x00004a50 0 .text + $d 0x00004ff8 0 .text + $t 0x00005004 0 .text + $d 0x000051a0 0 .text + $d 0x000051a8 0 .text + $t 0x000051a8 0 .text + $d 0x00005548 0 .text + $d 0x00005554 0 .text + $t 0x00005554 0 .text + $d 0x000058e8 0 .text + copystring 0x000058f4 F 38 .text + $d 0x000058f4 0 .text + $t 0x000058f4 0 .text + $d 0x00005c20 0 .text + $d 0x00005c54 0 .text + $t 0x00005c54 0 .text + $d 0x00005c7c 0 .text + $d 0x00005c80 0 .text + $t 0x00005c80 0 .text + $d 0x00005cd4 0 .text + $t 0x00005cd4 0 .text + $d 0x00005d84 0 .text + $t 0x00005d84 0 .text + $d 0x00005d98 0 .text + $t 0x00005d98 0 .text + $d 0x00005dac 0 .text + $d 0x00005db4 0 .text + $t 0x00005db4 0 .text + $d 0x00005ddc 0 .text + $d 0x00005de4 0 .text + $t 0x00005de4 0 .text + $d 0x00005e20 0 .text + $t 0x00005e20 0 .text + $d 0x00005e5c 0 .text.__main + $t 0x00005e5c 0 .text.__main + $d 0x00005e80 0 .text.__main + SYSCON_General_CMD.part.0 0x00005e94 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00005e94 0 .text.SYSCON_General_CMD.part.0 + $t 0x00005e94 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f00 0 .text.SYSCON_General_CMD.part.0 + $d 0x00005f08 0 .text.SYSCON_RST_VALUE + $t 0x00005f08 0 .text.SYSCON_RST_VALUE + $d 0x00005f38 0 .text.SYSCON_RST_VALUE + $d 0x00005f54 0 .text.SYSCON_General_CMD + $t 0x00005f54 0 .text.SYSCON_General_CMD + $d 0x00005f80 0 .text.SYSCON_General_CMD + $d 0x00005f84 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00005f84 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00005ffc 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x0000600c 0 .text.SYSCON_HFOSC_SELECTE + $t 0x0000600c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00006030 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00006034 0 .text.SYSCON_WDT_CMD + $t 0x00006034 0 .text.SYSCON_WDT_CMD + $d 0x00006064 0 .text.SYSCON_WDT_CMD + $d 0x00006070 0 .text.SYSCON_IWDCNT_Reload + $t 0x00006070 0 .text.SYSCON_IWDCNT_Reload + $d 0x00006080 0 .text.SYSCON_IWDCNT_Reload + $d 0x00006084 0 .text.SYSCON_IWDCNT_Config + $t 0x00006084 0 .text.SYSCON_IWDCNT_Config + $d 0x00006094 0 .text.SYSCON_IWDCNT_Config + $d 0x0000609c 0 .text.SYSCON_LVD_Config + $t 0x0000609c 0 .text.SYSCON_LVD_Config + $d 0x000060b4 0 .text.SYSCON_LVD_Config + $d 0x000060bc 0 .text.LVD_Int_Enable + $t 0x000060bc 0 .text.LVD_Int_Enable + $d 0x000060d4 0 .text.LVD_Int_Enable + $d 0x000060d8 0 .text.IWDT_Int_Enable + $t 0x000060d8 0 .text.IWDT_Int_Enable + $d 0x000060f0 0 .text.IWDT_Int_Enable + $d 0x000060f4 0 .text.EXTI_trigger_CMD + $t 0x000060f4 0 .text.EXTI_trigger_CMD + $d 0x00006130 0 .text.EXTI_trigger_CMD + $d 0x00006134 0 .text.EXTI_interrupt_CMD + $t 0x00006134 0 .text.EXTI_interrupt_CMD + $d 0x00006160 0 .text.EXTI_interrupt_CMD + $d 0x00006168 0 .text.GPIO_EXTI_interrupt + $t 0x00006168 0 .text.GPIO_EXTI_interrupt + $d 0x0000616c 0 .text.EXI4_Int_Enable + $t 0x0000616c 0 .text.EXI4_Int_Enable + $d 0x00006178 0 .text.EXI4_Int_Enable + $d 0x0000617c 0 .text.SYSCON_Int_Enable + $t 0x0000617c 0 .text.SYSCON_Int_Enable + $d 0x00006184 0 .text.SYSCON_Int_Enable + $d 0x00006188 0 .text.SYSCON_Int_Disable + $t 0x00006188 0 .text.SYSCON_Int_Disable + $d 0x00006190 0 .text.SYSCON_Int_Disable + $d 0x00006194 0 .text.SYSCON_Software_Reset + $t 0x00006194 0 .text.SYSCON_Software_Reset + $d 0x000061a0 0 .text.SYSCON_Software_Reset + $d 0x000061a8 0 .text.SYSCON_INT_Priority + $t 0x000061a8 0 .text.SYSCON_INT_Priority + $d 0x000061c0 0 .text.SYSCON_INT_Priority + $d 0x000061cc 0 .text.Set_INT_Priority + $t 0x000061cc 0 .text.Set_INT_Priority + $d 0x000061f8 0 .text.Set_INT_Priority + $d 0x000061fc 0 .text.GPIO_DeInit + $t 0x000061fc 0 .text.GPIO_DeInit + $d 0x00006250 0 .text.GPIO_DeInit + $d 0x00006260 0 .text.GPIO_Init + $t 0x00006260 0 .text.GPIO_Init + $d 0x00006272 0 .text.GPIO_Init + $t 0x0000627a 0 .text.GPIO_Init + $d 0x000062d6 0 .text.GPIO_Init + $t 0x000062de 0 .text.GPIO_Init + $d 0x0000632c 0 .text.GPIO_Init + $d 0x00006340 0 .text.GPIO_PullHigh_Init + $t 0x00006340 0 .text.GPIO_PullHigh_Init + $d 0x00006354 0 .text.GPIO_DriveStrength_EN + $t 0x00006354 0 .text.GPIO_DriveStrength_EN + $d 0x00006364 0 .text.GPIO_IntGroup_Set + $t 0x00006364 0 .text.GPIO_IntGroup_Set + $d 0x00006458 0 .text.GPIO_IntGroup_Set + $d 0x00006470 0 .text.GPIOA0_EXI_Init + $t 0x00006470 0 .text.GPIOA0_EXI_Init + $d 0x0000647c 0 .text.GPIOA0_EXI_Init + $t 0x0000648c 0 .text.GPIOA0_EXI_Init + $d 0x00006568 0 .text.GPIOA0_EXI_Init + $d 0x0000656c 0 .text.GPIO_Write_High + $t 0x0000656c 0 .text.GPIO_Write_High + $d 0x00006574 0 .text.GPIO_Write_Low + $t 0x00006574 0 .text.GPIO_Write_Low + $d 0x0000657c 0 .text.GPIO_Reverse + $t 0x0000657c 0 .text.GPIO_Reverse + $d 0x00006592 0 .text.GPIO_Read_Status + $t 0x00006592 0 .text.GPIO_Read_Status + $d 0x000065a4 0 .text.LPT_Soft_Reset + $t 0x000065a4 0 .text.LPT_Soft_Reset + $d 0x000065b4 0 .text.LPT_Soft_Reset + $d 0x000065b8 0 .text.WWDT_CNT_Load + $t 0x000065b8 0 .text.WWDT_CNT_Load + $d 0x000065c4 0 .text.WWDT_CNT_Load + $d 0x000065c8 0 .text.BT_DeInit + $t 0x000065c8 0 .text.BT_DeInit + $d 0x000065e4 0 .text.BT_Start + $t 0x000065e4 0 .text.BT_Start + $d 0x000065ec 0 .text.BT_Soft_Reset + $t 0x000065ec 0 .text.BT_Soft_Reset + $d 0x000065f6 0 .text.BT_Configure + $t 0x000065f6 0 .text.BT_Configure + $d 0x0000660e 0 .text.BT_ControlSet_Configure + $t 0x0000660e 0 .text.BT_ControlSet_Configure + $d 0x0000663a 0 .text.BT_Period_CMP_Write + $t 0x0000663a 0 .text.BT_Period_CMP_Write + $d 0x00006640 0 .text.BT_ConfigInterrupt_CMD + $t 0x00006640 0 .text.BT_ConfigInterrupt_CMD + $d 0x00006654 0 .text.BT1_INT_ENABLE + $t 0x00006654 0 .text.BT1_INT_ENABLE + $d 0x00006660 0 .text.BT1_INT_ENABLE + $d 0x00006664 0 .text.UART0_DeInit + $t 0x00006664 0 .text.UART0_DeInit + $d 0x00006678 0 .text.UART0_DeInit + $d 0x0000667c 0 .text.UART1_DeInit + $t 0x0000667c 0 .text.UART1_DeInit + $d 0x00006690 0 .text.UART1_DeInit + $d 0x00006694 0 .text.UART2_DeInit + $t 0x00006694 0 .text.UART2_DeInit + $d 0x000066a8 0 .text.UART2_DeInit + $d 0x000066ac 0 .text.UART0_Int_Enable + $t 0x000066ac 0 .text.UART0_Int_Enable + $d 0x000066c0 0 .text.UART0_Int_Enable + $d 0x000066c8 0 .text.UART1_Int_Enable + $t 0x000066c8 0 .text.UART1_Int_Enable + $d 0x000066dc 0 .text.UART1_Int_Enable + $d 0x000066e4 0 .text.UART2_Int_Enable + $t 0x000066e4 0 .text.UART2_Int_Enable + $d 0x000066f8 0 .text.UART2_Int_Enable + $d 0x00006700 0 .text.UART_IO_Init + $t 0x00006700 0 .text.UART_IO_Init + $d 0x000067e4 0 .text.UART_IO_Init + $d 0x000067ec 0 .text.UARTInitRxTxIntEn + $t 0x000067ec 0 .text.UARTInitRxTxIntEn + $d 0x000067f8 0 .text.UARTInitRxTxIntEn + $d 0x000067fc 0 .text.UARTTransmit + $t 0x000067fc 0 .text.UARTTransmit + $d 0x0000681c 0 .text.EPT_Stop + $t 0x0000681c 0 .text.EPT_Stop + $d 0x0000683c 0 .text.EPT_Stop + $d 0x00006844 0 .text.Page_ProgramData + $t 0x00006844 0 .text.Page_ProgramData + $d 0x000068dc 0 .text.Page_ProgramData + $d 0x000068e4 0 .text.ReadDataArry_U8 + $t 0x000068e4 0 .text.ReadDataArry_U8 + $d 0x00006910 0 .text.startup.main + $t 0x00006910 0 .text.startup.main + $d 0x00006948 0 .text.startup.main + $d 0x00006954 0 .text.delay_nms + $t 0x00006954 0 .text.delay_nms + $d 0x00006980 0 .text.delay_nus + $t 0x00006980 0 .text.delay_nus + $d 0x000069a4 0 .text.BT_CONFIG + $t 0x000069a4 0 .text.BT_CONFIG + $d 0x000069fc 0 .text.BT_CONFIG + $d 0x00006a04 0 .text.SYSCON_CONFIG + $t 0x00006a04 0 .text.SYSCON_CONFIG + $d 0x00006a68 0 .text.APT32F102_init + $t 0x00006a68 0 .text.APT32F102_init + $d 0x00006ad4 0 .text.APT32F102_init + $d 0x00006ae8 0 .text.SYSCONIntHandler + $t 0x00006ae8 0 .text.SYSCONIntHandler + $d 0x00006bd4 0 .text.SYSCONIntHandler + $d 0x00006bd8 0 .text.IFCIntHandler + $t 0x00006bd8 0 .text.IFCIntHandler + $d 0x00006c3c 0 .text.IFCIntHandler + $d 0x00006c40 0 .text.ADCIntHandler + $t 0x00006c40 0 .text.ADCIntHandler + $d 0x00006ca4 0 .text.ADCIntHandler + $d 0x00006ca8 0 .text.EPT0IntHandler + $t 0x00006ca8 0 .text.EPT0IntHandler + $d 0x00006e48 0 .text.EPT0IntHandler + $d 0x00006e54 0 .text.WWDTHandler + $t 0x00006e54 0 .text.WWDTHandler + $d 0x00006e84 0 .text.WWDTHandler + $d 0x00006e88 0 .text.GPT0IntHandler + $t 0x00006e88 0 .text.GPT0IntHandler + $d 0x00006f04 0 .text.GPT0IntHandler + $d 0x00006f08 0 .text.RTCIntHandler + $t 0x00006f08 0 .text.RTCIntHandler + $d 0x00006f70 0 .text.RTCIntHandler + $d 0x00006f78 0 .text.UART0IntHandler + $t 0x00006f78 0 .text.UART0IntHandler + $d 0x00006fd4 0 .text.UART0IntHandler + $d 0x00006fd8 0 .text.UART1IntHandler + $t 0x00006fd8 0 .text.UART1IntHandler + $d 0x00007058 0 .text.UART1IntHandler + $d 0x0000706c 0 .text.UART2IntHandler + $t 0x0000706c 0 .text.UART2IntHandler + $d 0x000070c8 0 .text.UART2IntHandler + $d 0x000070cc 0 .text.SPI0IntHandler + $t 0x000070cc 0 .text.SPI0IntHandler + $d 0x000071b0 0 .text.SPI0IntHandler + $d 0x000071b4 0 .text.SIO0IntHandler + $t 0x000071b4 0 .text.SIO0IntHandler + $d 0x00007204 0 .text.SIO0IntHandler + $d 0x00007208 0 .text.EXI0IntHandler + $t 0x00007208 0 .text.EXI0IntHandler + $d 0x00007234 0 .text.EXI0IntHandler + $d 0x00007238 0 .text.EXI1IntHandler + $t 0x00007238 0 .text.EXI1IntHandler + $d 0x00007264 0 .text.EXI1IntHandler + $d 0x00007268 0 .text.EXI2to3IntHandler + $t 0x00007268 0 .text.EXI2to3IntHandler + $d 0x000072ac 0 .text.EXI2to3IntHandler + $d 0x000072b0 0 .text.EXI4to9IntHandler + $t 0x000072b0 0 .text.EXI4to9IntHandler + $d 0x000072cc 0 .text.EXI4to9IntHandler + $d 0x000072d0 0 .text.EXI10to15IntHandler + $t 0x000072d0 0 .text.EXI10to15IntHandler + $d 0x00007338 0 .text.EXI10to15IntHandler + $d 0x0000733c 0 .text.LPTIntHandler + $t 0x0000733c 0 .text.LPTIntHandler + $d 0x0000736c 0 .text.LPTIntHandler + $d 0x00007370 0 .text.BT0IntHandler + $t 0x00007370 0 .text.BT0IntHandler + $d 0x000073b8 0 .text.BT0IntHandler + $d 0x000073bc 0 .text.BT1IntHandler + $t 0x000073bc 0 .text.BT1IntHandler + $d 0x00007424 0 .text.BT1IntHandler + $d 0x0000742c 0 .text.PriviledgeVioHandler + $t 0x0000742c 0 .text.PriviledgeVioHandler + $d 0x0000742e 0 .text.PendTrapHandler + $t 0x0000742e 0 .text.PendTrapHandler + $d 0x00007436 0 .text.Trap3Handler + $t 0x00007436 0 .text.Trap3Handler + $d 0x0000743e 0 .text.Trap2Handler + $t 0x0000743e 0 .text.Trap2Handler + $d 0x00007446 0 .text.Trap1Handler + $t 0x00007446 0 .text.Trap1Handler + $d 0x0000744e 0 .text.Trap0Handler + $t 0x0000744e 0 .text.Trap0Handler + $d 0x00007456 0 .text.UnrecExecpHandler + $t 0x00007456 0 .text.UnrecExecpHandler + $d 0x0000745e 0 .text.BreakPointHandler + $t 0x0000745e 0 .text.BreakPointHandler + $d 0x00007466 0 .text.AccessErrHandler + $t 0x00007466 0 .text.AccessErrHandler + $d 0x0000746e 0 .text.IllegalInstrHandler + $t 0x0000746e 0 .text.IllegalInstrHandler + $d 0x00007476 0 .text.MisalignedHandler + $t 0x00007476 0 .text.MisalignedHandler + $d 0x0000747e 0 .text.CNTAIntHandler + $t 0x0000747e 0 .text.CNTAIntHandler + $d 0x00007486 0 .text.I2CIntHandler + $t 0x00007486 0 .text.I2CIntHandler + $d 0x00007490 0 .text.__divsi3 + $t 0x00007490 0 .text.__divsi3 + $d 0x000074b0 0 .text.__divsi3 + $d 0x000074b4 0 .text.__udivsi3 + $t 0x000074b4 0 .text.__udivsi3 + $d 0x000074d4 0 .text.__udivsi3 + $d 0x000074d8 0 .text.__modsi3 + $t 0x000074d8 0 .text.__modsi3 + $d 0x000074f8 0 .text.__modsi3 + $d 0x000074fc 0 .text.__umodsi3 + $t 0x000074fc 0 .text.__umodsi3 + $d 0x0000751c 0 .text.__umodsi3 + $d 0x00007520 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00007520 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00007526 0 .text.CK_CPU_DisAllNormalIrq + $t 0x00007526 0 .text.CK_CPU_DisAllNormalIrq + $d 0x0000752c 0 .text.UARTx_Init + $t 0x0000752c 0 .text.UARTx_Init + $d 0x00007680 0 .text.UARTx_Init + $d 0x000076b8 0 .text.UART0_RecvINT_Processing + $t 0x000076b8 0 .text.UART0_RecvINT_Processing + $d 0x000076ec 0 .text.UART0_RecvINT_Processing + $d 0x000076fc 0 .text.UART0_TASK + $t 0x000076fc 0 .text.UART0_TASK + $d 0x00007758 0 .text.UART0_TASK + $d 0x0000776c 0 .text.UART1_RecvINT_Processing + $t 0x0000776c 0 .text.UART1_RecvINT_Processing + $d 0x000077a0 0 .text.UART1_RecvINT_Processing + $d 0x000077b0 0 .text.UART1_TASK + $t 0x000077b0 0 .text.UART1_TASK + $d 0x00007818 0 .text.UART1_TASK + $d 0x0000782c 0 .text.UART2_RecvINT_Processing + $t 0x0000782c 0 .text.UART2_RecvINT_Processing + $d 0x00007860 0 .text.UART2_RecvINT_Processing + $d 0x00007870 0 .text.UART2_TASK + $t 0x00007870 0 .text.UART2_TASK + $d 0x000078cc 0 .text.UART2_TASK + $d 0x000078e0 0 .text.MCU485_SendData + $t 0x000078e0 0 .text.MCU485_SendData + $d 0x00007964 0 .text.MCU485_SendData + $d 0x00007970 0 .text.BUS485_Send + $t 0x00007970 0 .text.BUS485_Send + $d 0x00007a1c 0 .text.BUS485_Send + $d 0x00007a34 0 .text.MultSend_Task + $t 0x00007a34 0 .text.MultSend_Task + $d 0x00007aa0 0 .text.MultSend_Task + $d 0x00007aa8 0 .text.Set_GroupSend + $t 0x00007aa8 0 .text.Set_GroupSend + $d 0x00007b04 0 .text.Set_GroupSend + $d 0x00007b0c 0 .text.Clear_SendFlag + $t 0x00007b0c 0 .text.Clear_SendFlag + $d 0x00007b18 0 .text.Clear_SendFlag + $d 0x00007b1c 0 .text.BUS485_Jump_Boot + $t 0x00007b1c 0 .text.BUS485_Jump_Boot + $d 0x00007b24 0 .text.BUS485_Jump_Boot + $d 0x00007b28 0 .text.BusIdle_Task + $t 0x00007b28 0 .text.BusIdle_Task + $d 0x00007b60 0 .text.BusIdle_Task + $d 0x00007b68 0 .text.BusBusy_Task + $t 0x00007b68 0 .text.BusBusy_Task + $d 0x00007bb8 0 .text.BusBusy_Task + $d 0x00007bc4 0 .text.Dbg_Println + $t 0x00007bc4 0 .text.Dbg_Println + $d 0x00007c34 0 .text.Dbg_Println + $d 0x00007c44 0 .text.BUS485Send_Task + $t 0x00007c44 0 .text.BUS485Send_Task + $d 0x00007c90 0 .text.BUS485Send_Task + $d 0x00007cac 0 .text.Dbg_Print_Buff + $t 0x00007cac 0 .text.Dbg_Print_Buff + $d 0x00007d1c 0 .text.Dbg_Print_Buff + $d 0x00007d30 0 .text.Dbg_BT_Println + $t 0x00007d30 0 .text.Dbg_BT_Println + $d 0x00007d84 0 .text.Dbg_BT_Println + $d 0x00007d90 0 .text.DIP_GetSwitchState + $t 0x00007d90 0 .text.DIP_GetSwitchState + $d 0x00007dc0 0 .text.DIP_GetSwitchState + $d 0x00007dc4 0 .text.DIP_Switch_Init + $t 0x00007dc4 0 .text.DIP_Switch_Init + $d 0x00007e4c 0 .text.DIP_Switch_Init + $d 0x00007e58 0 .text.DIP_ScanTask + $t 0x00007e58 0 .text.DIP_ScanTask + $d 0x00007ee0 0 .text.DIP_ScanTask + $d 0x00007ef0 0 .text.EEPROM_CheckSum + $t 0x00007ef0 0 .text.EEPROM_CheckSum + $d 0x00007f08 0 .text.EEOROM_ENERGY_ReadSet + $t 0x00007f08 0 .text.EEOROM_ENERGY_ReadSet + $d 0x00008030 0 .text.EEOROM_ENERGY_ReadSet + $d 0x0000806c 0 .text.EEOROM_ENERGY_WriteSet + $t 0x0000806c 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080ac 0 .text.EEOROM_ENERGY_WriteSet + $d 0x000080b0 0 .text.EEPROM_ENERGY_Validate + $t 0x000080b0 0 .text.EEPROM_ENERGY_Validate + $d 0x00008204 0 .text.EEPROM_ENERGY_Validate + $d 0x00008234 0 .text.EEPROM_Default_ENERGY + $t 0x00008234 0 .text.EEPROM_Default_ENERGY + $d 0x0000832c 0 .text.EEPROM_Default_ENERGY + $d 0x00008374 0 .text.EEPROM_ReadMCUDevInfo + $t 0x00008374 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008428 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00008448 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00008448 0 .text.EEPROM_WriteMCUDevInfo + $d 0x00008488 0 .text.EEPROM_Default_MCUDevInfo + $t 0x00008488 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000084bc 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000084c0 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x000084c0 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008514 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00008518 0 .text.EEPROM_Init + $t 0x00008518 0 .text.EEPROM_Init + $d 0x000085cc 0 .text.EEPROM_Init + $d 0x000085fc 0 .text.BLV_DetEnergy_Init + $t 0x000085fc 0 .text.BLV_DetEnergy_Init + $d 0x00008620 0 .text.BLV_DetEnergy_Init + $d 0x0000862c 0 .text.BLV_DetEnergy_Default + $t 0x0000862c 0 .text.BLV_DetEnergy_Default + $d 0x000086fc 0 .text.BLV_DetEnergy_Default + $d 0x00008710 0 .text.SaveFram_TEng + $t 0x00008710 0 .text.SaveFram_TEng + $d 0x0000874c 0 .text.SaveFram_TEng + $d 0x00008754 0 .text.HLW8110_CheckSum + $t 0x00008754 0 .text.HLW8110_CheckSum + $d 0x0000876c 0 .text.HLW8110_WriteREG_EN + $t 0x0000876c 0 .text.HLW8110_WriteREG_EN + $d 0x000087ac 0 .text.HLW8110_WriteREG_EN + $d 0x000087b0 0 .text.HLW8110_WriteREG_DIS + $t 0x000087b0 0 .text.HLW8110_WriteREG_DIS + $d 0x000087f0 0 .text.HLW8110_WriteREG_DIS + $d 0x000087f4 0 .text.HLW8110_Reset + $t 0x000087f4 0 .text.HLW8110_Reset + $d 0x0000883c 0 .text.HLW8110_Reset + $d 0x00008844 0 .text.BLV_HLW8110_RWCMD_Packaging + $t 0x00008844 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x000088c4 0 .text.BLV_HLW8110_RWCMD_Packaging + $d 0x000088c8 0 .text.HLW8110_RWCMD_Send + $t 0x000088c8 0 .text.HLW8110_RWCMD_Send + $d 0x00008924 0 .text.HLW8110_RWCMD_Send + $d 0x00008938 0 .text.HLW8110_CleanSdFlag + $t 0x00008938 0 .text.HLW8110_CleanSdFlag + $d 0x00008944 0 .text.HLW8110_CleanSdFlag + $d 0x00008948 0 .text.Get_RevState + $t 0x00008948 0 .text.Get_RevState + $d 0x00008960 0 .text.Get_RevState + $d 0x00008964 0 .text.Get_SendState + $t 0x00008964 0 .text.Get_SendState + $d 0x0000897c 0 .text.Get_SendState + $d 0x00008980 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008980 0 .text.BLV_HLW8110_SendData_Tack + $d 0x0000898e 0 .text.BLV_HLW8110_SendData_Tack + $t 0x00008994 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008ab0 0 .text.BLV_HLW8110_SendData_Tack + $d 0x00008acc 0 .text.HLW8110_Convert_VoltageReg_Value + $t 0x00008acc 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008b3c 0 .text.HLW8110_Convert_VoltageReg_Value + $d 0x00008b50 0 .text.HLW8110_Convert_CurrentRegA_Value + $t 0x00008b50 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008bd0 0 .text.HLW8110_Convert_CurrentRegA_Value + $d 0x00008be4 0 .text.HLW8110_Convert_CurrentRegB_Value + $t 0x00008be4 0 .text.HLW8110_Convert_CurrentRegB_Value + $d 0x00008c64 0 .text.HLW8110_Convert_CurrentRegB_Value + $d 0x00008c78 0 .text.HLW8110_Convert_PowerRegA_Value + $t 0x00008c78 0 .text.HLW8110_Convert_PowerRegA_Value + $d 0x00008cf4 0 .text.HLW8110_Convert_PowerRegA_Value + $d 0x00008d04 0 .text.HLW8110_Convert_PowerRegB_Value + $t 0x00008d04 0 .text.HLW8110_Convert_PowerRegB_Value + $d 0x00008d80 0 .text.HLW8110_Convert_PowerRegB_Value + $d 0x00008d90 0 .text.HLW8110_Convert_EnergyRegA_Value + $t 0x00008d90 0 .text.HLW8110_Convert_EnergyRegA_Value + $d 0x00008e6c 0 .text.HLW8110_Convert_EnergyRegA_Value + $d 0x00008e90 0 .text.HLW8110_Convert_EnergyRegB_Value + $t 0x00008e90 0 .text.HLW8110_Convert_EnergyRegB_Value + $d 0x00008f6c 0 .text.HLW8110_Convert_EnergyRegB_Value + $d 0x00008f90 0 .text.HLW8110_ClearFlag + $t 0x00008f90 0 .text.HLW8110_ClearFlag + $d 0x00008fa0 0 .text.HLW8110_ClearFlag + $d 0x00008fa4 0 .text.HLW8110_RecvData_Processing + $t 0x00008fa4 0 .text.HLW8110_RecvData_Processing + $d 0x000092d0 0 .text.HLW8110_RecvData_Processing + $d 0x0000930c 0 .text.HLW8110_SysPara_Check + $t 0x0000930c 0 .text.HLW8110_SysPara_Check + $d 0x00009334 0 .text.HLW8110_ReadSysPara + $t 0x00009334 0 .text.HLW8110_ReadSysPara + $d 0x00009344 0 .text.HLW8110_ReadSysPara + $t 0x00009350 0 .text.HLW8110_ReadSysPara + $d 0x00009540 0 .text.HLW8110_ReadSysPara + $d 0x00009584 0 .text.HLW8110_ReadSysCtrlPara + $t 0x00009584 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009594 0 .text.HLW8110_ReadSysCtrlPara + $t 0x00009598 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009660 0 .text.HLW8110_ReadSysCtrlPara + $d 0x00009684 0 .text.GetEnergy_Para + $t 0x00009684 0 .text.GetEnergy_Para + $d 0x000096d8 0 .text.GetEnergy_Para + $d 0x000096f4 0 .text.HLW8110_ReadValue + $t 0x000096f4 0 .text.HLW8110_ReadValue + $d 0x00009702 0 .text.HLW8110_ReadValue + $t 0x0000970a 0 .text.HLW8110_ReadValue + $d 0x00009884 0 .text.HLW8110_ReadValue + $d 0x000098b8 0 .text.BLV_HLW8110_Tack + $t 0x000098b8 0 .text.BLV_HLW8110_Tack + $d 0x000098c6 0 .text.BLV_HLW8110_Tack + $t 0x000098ca 0 .text.BLV_HLW8110_Tack + $d 0x00009910 0 .text.BLV_HLW8110_Tack + $d 0x0000991c 0 .text.BT_Uart_Packing + $t 0x0000991c 0 .text.BT_Uart_Packing + $d 0x0000995c 0 .text.BT_Uart_Packing + $d 0x00009964 0 .text.BT_UART_Print + $t 0x00009964 0 .text.BT_UART_Print + $d 0x000099c0 0 .text.BT_UART_Print + $t 0x000099c8 0 .text.BT_UART_Print + $d 0x00009a6c 0 .text.BT_UART_Print + $d 0x00009aa4 0 .text.BLV_Energy_PassiveRep_Packing + $t 0x00009aa4 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009bc8 0 .text.BLV_Energy_PassiveRep_Packing + $d 0x00009bd4 0 .text.BLV_ElectricPara_Processing + $t 0x00009bd4 0 .text.BLV_ElectricPara_Processing + $d 0x00009bfc 0 .text.BLV_ElectricPara_Processing + $d 0x00009c08 0 .text.BLV_EngDetect_Tack + $t 0x00009c08 0 .text.BLV_EngDetect_Tack + $d 0x00009c1c 0 .text.BLV_Energy_SetTime_Packing + $t 0x00009c1c 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009cb0 0 .text.BLV_Energy_SetTime_Packing + $d 0x00009cbc 0 .text.BLV_Energy_QueryVersion_Packing + $t 0x00009cbc 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009d4c 0 .text.BLV_Energy_QueryVersion_Packing + $d 0x00009d54 0 .text.SetCalibFactor_Switch + $t 0x00009d54 0 .text.SetCalibFactor_Switch + $d 0x00009d60 0 .text.SetCalibFactor_Switch + $t 0x00009d66 0 .text.SetCalibFactor_Switch + $d 0x00009d7c 0 .text.SetCalibFactor_Switch + $d 0x00009d80 0 .text.BLV_Energy_SetCalibFactor + $t 0x00009d80 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009e00 0 .text.BLV_Energy_SetCalibFactor + $d 0x00009e04 0 .text.BLV_Energy_SetCalibFactor_2 + $t 0x00009e04 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009e7c 0 .text.BLV_Energy_SetCalibFactor_2 + $d 0x00009e80 0 .text.BLV_485Recv_Processing + $t 0x00009e80 0 .text.BLV_485Recv_Processing + $d 0x00009fe0 0 .text.BLV_485Recv_Processing + $d 0x0000a014 0 .text.BT_Recv_Processing + $t 0x0000a014 0 .text.BT_Recv_Processing + $d 0x0000a12c 0 .text.BT_Recv_Processing + $d 0x0000a158 0 .text.Boot_Function_Init + $t 0x0000a158 0 .text.Boot_Function_Init + $d 0x0000a1e8 0 .text.Boot_Function_Init + $d 0x0000a218 0 .text.Boot_Comm_CheckSum + $t 0x0000a218 0 .text.Boot_Comm_CheckSum + $d 0x0000a238 0 .text.Boot_Comm_CheckSum + $d 0x0000a23c 0 .text.Boot_Comm_FillReplyPack + $t 0x0000a23c 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a29c 0 .text.Boot_Comm_FillReplyPack + $d 0x0000a2a8 0 .text.Boot_Time_Refresh + $t 0x0000a2a8 0 .text.Boot_Time_Refresh + $d 0x0000a2b4 0 .text.Boot_Time_Refresh + $d 0x0000a2bc 0 .text.Boot_Comm_UpgradeProcess + $t 0x0000a2bc 0 .text.Boot_Comm_UpgradeProcess + $d 0x0000a49c 0 .text.Boot_Comm_UpgradeProcess + Fram_SDA_GPIO.part.0 0x0000a4d8 F 20 .text.Fram_SDA_GPIO.part.0 + $d 0x0000a4d8 0 .text.Fram_SDA_GPIO.part.0 + $t 0x0000a4d8 0 .text.Fram_SDA_GPIO.part.0 + $d 0x0000a4e8 0 .text.Fram_SDA_GPIO.part.0 + $d 0x0000a4ec 0 .text.Fram_SDA_GPIO + $t 0x0000a4ec 0 .text.Fram_SDA_GPIO + $d 0x0000a508 0 .text.Fram_SDA_GPIO + $d 0x0000a50c 0 .text.IIC_Wait + $t 0x0000a50c 0 .text.IIC_Wait + $d 0x0000a548 0 .text.IIC_Start + $t 0x0000a548 0 .text.IIC_Start + $d 0x0000a580 0 .text.IIC_Start + $d 0x0000a588 0 .text.IIC_Stop + $t 0x0000a588 0 .text.IIC_Stop + $d 0x0000a5bc 0 .text.IIC_Stop + $d 0x0000a5c4 0 .text.IIC_ACK + $t 0x0000a5c4 0 .text.IIC_ACK + $d 0x0000a5f8 0 .text.IIC_ACK + $d 0x0000a600 0 .text.IIC_NoACK + $t 0x0000a600 0 .text.IIC_NoACK + $d 0x0000a634 0 .text.IIC_NoACK + $d 0x0000a63c 0 .text.IIC_Wait_ACK + $t 0x0000a63c 0 .text.IIC_Wait_ACK + $d 0x0000a694 0 .text.IIC_Wait_ACK + $d 0x0000a6a0 0 .text.IIC_Send_Byte + $t 0x0000a6a0 0 .text.IIC_Send_Byte + $d 0x0000a6f0 0 .text.IIC_Send_Byte + $d 0x0000a6f8 0 .text.IIC_Read_Byte + $t 0x0000a6f8 0 .text.IIC_Read_Byte + $d 0x0000a748 0 .text.IIC_Read_Byte + $d 0x0000a750 0 .text.Fram_I2C_WriteBytes + $t 0x0000a750 0 .text.Fram_I2C_WriteBytes + $d 0x0000a7d8 0 .text.Fram_I2C_WriteBytes + $d 0x0000a7dc 0 .text.Fram_I2C_ReadBytes + $t 0x0000a7dc 0 .text.Fram_I2C_ReadBytes + $d 0x0000a880 0 .text.Fram_I2C_ReadBytes + $d 0x0000a884 0 .text.FRAM_WriteTotalEng + $t 0x0000a884 0 .text.FRAM_WriteTotalEng + $d 0x0000a8e0 0 .text.FRAM_WriteTotalEng + $d 0x0000a8e8 0 .text.FRAM_ReadTotalEng + $t 0x0000a8e8 0 .text.FRAM_ReadTotalEng + $d 0x0000a980 0 .text.FRAM_ReadTotalEng + $d 0x0000a98c 0 .text.Bsp_I2C_Fram_Init + $t 0x0000a98c 0 .text.Bsp_I2C_Fram_Init + $d 0x0000a9d0 0 .text.Bsp_I2C_Fram_Init + $d 0x0000a9e8 0 .text.TK_Sampling_prog + $t 0x0000a9e8 0 .text.TK_Sampling_prog + $d 0x0000aa30 0 .text.TK_Sampling_prog + $d 0x0000aa40 0 .text.TKEYIntHandler + $t 0x0000aa40 0 .text.TKEYIntHandler + $d 0x0000aabc 0 .text.TKEYIntHandler + $d 0x0000aac8 0 .text.get_key_number + $t 0x0000aac8 0 .text.get_key_number + $d 0x0000aaec 0 .text.get_key_number + $d 0x0000aaf0 0 .text.TK_Scan_Start + $t 0x0000aaf0 0 .text.TK_Scan_Start + $d 0x0000ab08 0 .text.TK_Scan_Start + $d 0x0000ab10 0 .text.TK_Keymap_prog + $t 0x0000ab10 0 .text.TK_Keymap_prog + $d 0x0000ac58 0 .text.TK_Keymap_prog + $d 0x0000ac90 0 .text.TK_overflow_predict + $t 0x0000ac90 0 .text.TK_overflow_predict + $d 0x0000ad78 0 .text.TK_overflow_predict + $d 0x0000adac 0 .text.TK_Baseline_tracking + $t 0x0000adac 0 .text.TK_Baseline_tracking + $d 0x0000af50 0 .text.TK_Baseline_tracking + $d 0x0000af7c 0 .text.TK_result_prog + $t 0x0000af7c 0 .text.TK_result_prog + $d 0x0000afbc 0 .text.TK_result_prog + $d 0x0000afd0 0 .text.CORETHandler + $t 0x0000afd0 0 .text.CORETHandler + $d 0x0000b030 0 .text.CORETHandler + $d 0x0000b048 0 .text.std_clk_calib + $t 0x0000b048 0 .text.std_clk_calib + $d 0x0000b290 0 .text.std_clk_calib + __func__.6842 0x0000b2cc O 23 .rodata + bp 0x0000b2e4 O 16 .rodata + dp_l 0x0000b2f4 O 16 .rodata + dp_h 0x0000b304 O 16 .rodata + blanks.1847 0x0000b438 O 16 .rodata + zeroes.1848 0x0000b448 O 16 .rodata + CSWTCH.1 0x0000b458 O 576 .rodata + NUM.6318 0x200000bc O 1 .bss + update_20ms.6224 0x20000168 O 4 .bss + HLW8110_Sned_Tisk.6609 0x2000016c O 4 .bss + HLW8110_Reset_Tack.6705 0x20000170 O 4 .bss + Wait_ReadValue_Tisk.6731 0x20000174 O 4 .bss + HLW_State_Tisk.6745 0x20000178 O 4 .bss + BT_State.6769 0x2000017c O 4 .bss + BT_Print_Tim.6771 0x20000180 O 4 .bss + BT_WaitOutTim.6770 0x20000184 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00002800 0 .text + __start 0x0000290c 0 .text + __exit 0x00002960 0 .text + __fail 0x00002976 0 .text + DummyHandler 0x00002984 0 .text + __GI_pow 0x000029b4 F 2474 .text + pow 0x000029b4 F 2474 .text + __GI_fabs 0x0000335e F 6 .text + fabs 0x0000335e F 6 .text + __GI_scalbn 0x00003364 F 32 .text + scalbn 0x00003364 F 32 .text + __GI_sqrt 0x00003384 F 376 .text + sqrt 0x00003384 F 376 .text + ___gnu_csky_case_uqi 0x000034fc F 20 .text + __fixunssfsi 0x00003510 F 46 .text + __fixunsdfsi 0x00003540 F 56 .text + __addsf3 0x000036c4 F 42 .text + __subsf3 0x000036f0 F 50 .text + __mulsf3 0x00003724 F 280 .text + __divsf3 0x0000383c F 188 .text + __nesf2 0x000038f8 F 54 .text + __gesf2 0x00003930 F 56 .text + __floatsisf 0x00003968 F 100 .text + __fixsfsi 0x000039cc F 84 .text + __extendsfdf2 0x00003a20 F 36 .text + __adddf3 0x00003d18 F 46 .text + __subdf3 0x00003d48 F 54 .text + __muldf3 0x00003d80 F 564 .text + __divdf3 0x00003fb4 F 340 .text + __gtdf2 0x00004108 F 60 .text + __gedf2 0x00004144 F 60 .text + __ledf2 0x00004180 F 58 .text + __floatsidf 0x000041bc F 112 .text + __fixdfsi 0x0000422c F 112 .text + __make_dp 0x0000429c F 40 .text + __truncdfsf2 0x000042c4 F 48 .text + __floatunsidf 0x000042f4 F 84 .text + __muldi3 0x00004348 F 68 .text + __clzsi2 0x0000438c F 64 .text + __pack_f 0x000043cc F 184 .text + __unpack_f 0x00004484 F 132 .text + __fpcmp_parts_f 0x00004508 F 120 .text + __make_fp 0x00004580 F 22 .text + __pack_d 0x00004598 F 412 .text + __unpack_d 0x00004734 F 196 .text + __fpcmp_parts_d 0x000047f8 F 140 .text + __cskyvprintfsnprintf 0x00004884 F 32 .text + __cskyvprintfvsnprintf 0x000048e2 F 90 .text + __memset_fast 0x0000493c w F 136 .text + memset 0x0000493c w F 136 .text + __memcpy_fast 0x000049c4 w F 100 .text + memcpy 0x000049c4 w F 100 .text + __GI_strncmp 0x00004a28 F 38 .text + strncmp 0x00004a28 w F 38 .text + __v2_printf 0x00004a84 F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00004a84 F 1828 .text + __udivdi3 0x000051a8 F 940 .text + __umoddi3 0x00005554 F 928 .text + __GI___dtostr 0x0000591a F 826 .text + __dtostr 0x0000591a F 826 .text + __isnan 0x00005c54 F 44 .text + __strlen_fast 0x00005c80 w F 82 .text + strlen 0x00005c80 w F 82 .text + __strcpy_fast 0x00005cd4 w F 176 .text + strcpy 0x00005cd4 w F 176 .text + __GI_strchr 0x00005d84 F 18 .text + strchr 0x00005d84 w F 18 .text + __GI_strerror 0x00005d98 F 28 .text + strerror 0x00005d98 F 28 .text + __isinf 0x00005db4 F 48 .text + __eqdf2 0x00005de4 F 58 .text + __ltdf2 0x00005e20 F 58 .text + __main 0x00005e5c F 56 .text.__main + SYSCON_RST_VALUE 0x00005f08 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00005f54 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00005f84 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x0000600c F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00006034 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00006070 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00006084 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x0000609c F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x000060bc F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x000060d8 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x000060f4 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00006134 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00006168 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x0000616c F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x0000617c F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x00006188 F 12 .text.SYSCON_Int_Disable + SYSCON_Software_Reset 0x00006194 F 20 .text.SYSCON_Software_Reset + SYSCON_INT_Priority 0x000061a8 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000061cc F 48 .text.Set_INT_Priority + GPIO_DeInit 0x000061fc F 100 .text.GPIO_DeInit + GPIO_Init 0x00006260 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00006340 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00006354 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00006364 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00006470 F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x0000656c F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00006574 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x0000657c F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00006592 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000065a4 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000065b8 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000065c8 F 28 .text.BT_DeInit + BT_Start 0x000065e4 F 8 .text.BT_Start + BT_Soft_Reset 0x000065ec F 10 .text.BT_Soft_Reset + BT_Configure 0x000065f6 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000660e F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000663a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00006640 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00006654 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00006664 F 24 .text.UART0_DeInit + UART1_DeInit 0x0000667c F 24 .text.UART1_DeInit + UART2_DeInit 0x00006694 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000066ac F 28 .text.UART0_Int_Enable + UART1_Int_Enable 0x000066c8 F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x000066e4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00006700 F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x000067ec F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000067fc F 30 .text.UARTTransmit + EPT_Stop 0x0000681c F 40 .text.EPT_Stop + Page_ProgramData 0x00006844 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x000068e4 F 42 .text.ReadDataArry_U8 + main 0x00006910 F 68 .text.startup.main + delay_nms 0x00006954 F 44 .text.delay_nms + delay_nus 0x00006980 F 34 .text.delay_nus + BT_CONFIG 0x000069a4 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00006a04 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00006a68 F 128 .text.APT32F102_init + SYSCONIntHandler 0x00006ae8 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00006bd8 F 104 .text.IFCIntHandler + ADCIntHandler 0x00006c40 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00006ca8 F 428 .text.EPT0IntHandler + WWDTHandler 0x00006e54 F 52 .text.WWDTHandler + GPT0IntHandler 0x00006e88 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00006f08 F 112 .text.RTCIntHandler + UART0IntHandler 0x00006f78 F 96 .text.UART0IntHandler + UART1IntHandler 0x00006fd8 F 148 .text.UART1IntHandler + UART2IntHandler 0x0000706c F 96 .text.UART2IntHandler + SPI0IntHandler 0x000070cc F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000071b4 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00007208 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00007238 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00007268 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000072b0 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x000072d0 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x0000733c F 52 .text.LPTIntHandler + BT0IntHandler 0x00007370 F 76 .text.BT0IntHandler + BT1IntHandler 0x000073bc F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x0000742c F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x0000742e F 8 .text.PendTrapHandler + Trap3Handler 0x00007436 F 8 .text.Trap3Handler + Trap2Handler 0x0000743e F 8 .text.Trap2Handler + Trap1Handler 0x00007446 F 8 .text.Trap1Handler + Trap0Handler 0x0000744e F 8 .text.Trap0Handler + UnrecExecpHandler 0x00007456 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000745e F 8 .text.BreakPointHandler + AccessErrHandler 0x00007466 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000746e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00007476 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000747e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00007486 F 8 .text.I2CIntHandler + __divsi3 0x00007490 F 36 .text.__divsi3 + __udivsi3 0x000074b4 F 36 .text.__udivsi3 + __modsi3 0x000074d8 F 36 .text.__modsi3 + __umodsi3 0x000074fc F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00007520 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x00007526 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x0000752c F 396 .text.UARTx_Init + UART0_RecvINT_Processing 0x000076b8 F 68 .text.UART0_RecvINT_Processing + UART0_TASK 0x000076fc F 112 .text.UART0_TASK + UART1_RecvINT_Processing 0x0000776c F 68 .text.UART1_RecvINT_Processing + UART1_TASK 0x000077b0 F 124 .text.UART1_TASK + UART2_RecvINT_Processing 0x0000782c F 68 .text.UART2_RecvINT_Processing + UART2_TASK 0x00007870 F 112 .text.UART2_TASK + MCU485_SendData 0x000078e0 F 144 .text.MCU485_SendData + BUS485_Send 0x00007970 F 196 .text.BUS485_Send + MultSend_Task 0x00007a34 F 116 .text.MultSend_Task + Set_GroupSend 0x00007aa8 F 100 .text.Set_GroupSend + Clear_SendFlag 0x00007b0c F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x00007b1c F 12 .text.BUS485_Jump_Boot + BusIdle_Task 0x00007b28 F 64 .text.BusIdle_Task + BusBusy_Task 0x00007b68 F 92 .text.BusBusy_Task + Dbg_Println 0x00007bc4 F 128 .text.Dbg_Println + BUS485Send_Task 0x00007c44 F 104 .text.BUS485Send_Task + Dbg_Print_Buff 0x00007cac F 132 .text.Dbg_Print_Buff + Dbg_BT_Println 0x00007d30 F 96 .text.Dbg_BT_Println + DIP_GetSwitchState 0x00007d90 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x00007dc4 F 148 .text.DIP_Switch_Init + DIP_ScanTask 0x00007e58 F 152 .text.DIP_ScanTask + EEPROM_CheckSum 0x00007ef0 F 22 .text.EEPROM_CheckSum + EEOROM_ENERGY_ReadSet 0x00007f08 F 356 .text.EEOROM_ENERGY_ReadSet + EEOROM_ENERGY_WriteSet 0x0000806c F 68 .text.EEOROM_ENERGY_WriteSet + EEPROM_ENERGY_Validate 0x000080b0 F 388 .text.EEPROM_ENERGY_Validate + EEPROM_Default_ENERGY 0x00008234 F 320 .text.EEPROM_Default_ENERGY + EEPROM_ReadMCUDevInfo 0x00008374 F 212 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00008448 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x00008488 F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x000084c0 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00008518 F 228 .text.EEPROM_Init + BLV_DetEnergy_Init 0x000085fc F 48 .text.BLV_DetEnergy_Init + BLV_DetEnergy_Default 0x0000862c F 228 .text.BLV_DetEnergy_Default + SaveFram_TEng 0x00008710 F 68 .text.SaveFram_TEng + HLW8110_CheckSum 0x00008754 F 24 .text.HLW8110_CheckSum + HLW8110_WriteREG_EN 0x0000876c F 68 .text.HLW8110_WriteREG_EN + HLW8110_WriteREG_DIS 0x000087b0 F 68 .text.HLW8110_WriteREG_DIS + HLW8110_Reset 0x000087f4 F 80 .text.HLW8110_Reset + BLV_HLW8110_RWCMD_Packaging 0x00008844 F 132 .text.BLV_HLW8110_RWCMD_Packaging + HLW8110_RWCMD_Send 0x000088c8 F 112 .text.HLW8110_RWCMD_Send + HLW8110_CleanSdFlag 0x00008938 F 16 .text.HLW8110_CleanSdFlag + Get_RevState 0x00008948 F 28 .text.Get_RevState + Get_SendState 0x00008964 F 28 .text.Get_SendState + BLV_HLW8110_SendData_Tack 0x00008980 F 332 .text.BLV_HLW8110_SendData_Tack + HLW8110_Convert_VoltageReg_Value 0x00008acc F 132 .text.HLW8110_Convert_VoltageReg_Value + HLW8110_Convert_CurrentRegA_Value 0x00008b50 F 148 .text.HLW8110_Convert_CurrentRegA_Value + HLW8110_Convert_CurrentRegB_Value 0x00008be4 F 148 .text.HLW8110_Convert_CurrentRegB_Value + HLW8110_Convert_PowerRegA_Value 0x00008c78 F 140 .text.HLW8110_Convert_PowerRegA_Value + HLW8110_Convert_PowerRegB_Value 0x00008d04 F 140 .text.HLW8110_Convert_PowerRegB_Value + HLW8110_Convert_EnergyRegA_Value 0x00008d90 F 256 .text.HLW8110_Convert_EnergyRegA_Value + HLW8110_Convert_EnergyRegB_Value 0x00008e90 F 256 .text.HLW8110_Convert_EnergyRegB_Value + HLW8110_ClearFlag 0x00008f90 F 20 .text.HLW8110_ClearFlag + HLW8110_RecvData_Processing 0x00008fa4 F 872 .text.HLW8110_RecvData_Processing + HLW8110_SysPara_Check 0x0000930c F 38 .text.HLW8110_SysPara_Check + HLW8110_ReadSysPara 0x00009334 F 592 .text.HLW8110_ReadSysPara + HLW8110_ReadSysCtrlPara 0x00009584 F 256 .text.HLW8110_ReadSysCtrlPara + GetEnergy_Para 0x00009684 F 112 .text.GetEnergy_Para + HLW8110_ReadValue 0x000096f4 F 452 .text.HLW8110_ReadValue + BLV_HLW8110_Tack 0x000098b8 F 100 .text.BLV_HLW8110_Tack + BT_Uart_Packing 0x0000991c F 72 .text.BT_Uart_Packing + BT_UART_Print 0x00009964 F 320 .text.BT_UART_Print + BLV_Energy_PassiveRep_Packing 0x00009aa4 F 304 .text.BLV_Energy_PassiveRep_Packing + BLV_ElectricPara_Processing 0x00009bd4 F 52 .text.BLV_ElectricPara_Processing + BLV_EngDetect_Tack 0x00009c08 F 20 .text.BLV_EngDetect_Tack + BLV_Energy_SetTime_Packing 0x00009c1c F 160 .text.BLV_Energy_SetTime_Packing + BLV_Energy_QueryVersion_Packing 0x00009cbc F 152 .text.BLV_Energy_QueryVersion_Packing + SetCalibFactor_Switch 0x00009d54 F 44 .text.SetCalibFactor_Switch + BLV_Energy_SetCalibFactor 0x00009d80 F 132 .text.BLV_Energy_SetCalibFactor + BLV_Energy_SetCalibFactor_2 0x00009e04 F 124 .text.BLV_Energy_SetCalibFactor_2 + BLV_485Recv_Processing 0x00009e80 F 404 .text.BLV_485Recv_Processing + BT_Recv_Processing 0x0000a014 F 324 .text.BT_Recv_Processing + Boot_Function_Init 0x0000a158 F 192 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x0000a218 F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x0000a23c F 108 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x0000a2a8 F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x0000a2bc F 540 .text.Boot_Comm_UpgradeProcess + Fram_SDA_GPIO 0x0000a4ec F 32 .text.Fram_SDA_GPIO + IIC_Wait 0x0000a50c F 60 .text.IIC_Wait + IIC_Start 0x0000a548 F 64 .text.IIC_Start + IIC_Stop 0x0000a588 F 60 .text.IIC_Stop + IIC_ACK 0x0000a5c4 F 60 .text.IIC_ACK + IIC_NoACK 0x0000a600 F 60 .text.IIC_NoACK + IIC_Wait_ACK 0x0000a63c F 100 .text.IIC_Wait_ACK + IIC_Send_Byte 0x0000a6a0 F 88 .text.IIC_Send_Byte + IIC_Read_Byte 0x0000a6f8 F 88 .text.IIC_Read_Byte + Fram_I2C_WriteBytes 0x0000a750 F 140 .text.Fram_I2C_WriteBytes + Fram_I2C_ReadBytes 0x0000a7dc F 168 .text.Fram_I2C_ReadBytes + FRAM_WriteTotalEng 0x0000a884 F 100 .text.FRAM_WriteTotalEng + FRAM_ReadTotalEng 0x0000a8e8 F 164 .text.FRAM_ReadTotalEng + Bsp_I2C_Fram_Init 0x0000a98c F 92 .text.Bsp_I2C_Fram_Init + TK_Sampling_prog 0x0000a9e8 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x0000aa40 F 136 .text.TKEYIntHandler + get_key_number 0x0000aac8 F 40 .text.get_key_number + TK_Scan_Start 0x0000aaf0 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x0000ab10 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000ac90 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000adac F 464 .text.TK_Baseline_tracking + TK_result_prog 0x0000af7c F 84 .text.TK_result_prog + CORETHandler 0x0000afd0 F 120 .text.CORETHandler + std_clk_calib 0x0000b048 F 644 .text.std_clk_calib + __thenan_sf 0x0000b314 O 16 .rodata + __thenan_df 0x0000b324 O 20 .rodata + __clz_tab 0x0000b338 O 256 .rodata + _end_rodata 0x0000cabc 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + Project_Boot_Support 0x2000009c O 32 .textcsky.VinFlash + _bss_start 0x200000bc 0 .bss + SysTick_100us 0x200000c0 O 4 .bss + SysTick_1ms 0x200000c4 O 4 .bss + RS485_Comming 0x200000c8 O 4 .bss + RS485_Comm_Flag 0x200000cc O 4 .bss + RS485_Comm_Start 0x200000d0 O 4 .bss + RS485_Comm_End 0x200000d4 O 4 .bss + Dbg_Switch 0x200000d8 O 4 .bss + SysTick_Now 0x200000dc O 4 .bss + SysTick_Last 0x200000e0 O 4 .bss + SysTick_Diff 0x200000e4 O 4 .bss + Dbg_Buffer 0x200000e8 O 128 .bss + Press_debounce_data 0x20000188 O 1 .bss + TK_Lowpower_mode 0x20000189 O 1 .bss + TK_Lowpower_level 0x2000018a O 1 .bss + TK_longpress_time 0x2000018c O 4 .bss + Release_debounce_data 0x20000190 O 1 .bss + Key_mode 0x20000191 O 1 .bss + TK_icon 0x20000192 O 34 .bss + MultiTimes_Filter 0x200001b4 O 1 .bss + Base_Speed 0x200001b5 O 1 .bss + TK_IO_ENABLE 0x200001b8 O 4 .bss + Valid_Key_Num 0x200001bc O 1 .bss + TK_senprd 0x200001be O 34 .bss + TK_Wakeup_level 0x200001e0 O 1 .bss + TK_Triggerlevel 0x200001e2 O 34 .bss + TK_EC_LEVEL 0x20000204 O 2 .bss + TK_FVR_LEVEL 0x20000206 O 2 .bss + TK_BaseCnt 0x20000208 O 4 .bss + TK_PSEL_MODE 0x2000020c O 2 .bss + R_CMPB_BUF 0x20000210 O 4 .bss + R_CMPA_BUF 0x20000214 O 4 .bss + R_SIORX_buf 0x20000218 O 40 .bss + g_uart 0x20000240 O 148 .bss + g_uart0 0x200002d4 O 148 .bss + g_uart1 0x20000368 O 148 .bss + m_send 0x200003fc O 136 .bss + g_Dip 0x20000484 O 20 .bss + e_save 0x20000498 O 48 .bss + g_mcu_dev 0x200004c8 O 37 .bss + u_det 0x200004f0 O 72 .bss + g_CalFactor 0x20000538 O 60 .bss + g_Eng 0x20000574 O 152 .bss + g_boot 0x2000060c O 316 .bss + g_app_feature 0x20000748 O 256 .bss + g_engfram 0x20000848 O 16 .bss + baseline_data0 0x20000858 O 34 .bss + TK_Postive_build2 0x2000087a O 17 .bss + Key_Map1 0x2000088c O 4 .bss + offset_data2_abs 0x20000890 O 34 .bss + scan_f 0x200008b2 O 1 .bss + offset_data1_abs 0x200008b4 O 34 .bss + Release_debounce0 0x200008d6 O 17 .bss + Key_Map0 0x200008e8 O 4 .bss + bsae_over_f 0x200008ec O 1 .bss + scan_cnt 0x200008ee O 2 .bss + Press_debounce0 0x200008f0 O 17 .bss + offset_data0 0x20000902 O 34 .bss + sampling_data1 0x20000924 O 34 .bss + Key_Map2 0x20000948 O 4 .bss + Release_debounce1 0x2000094c O 17 .bss + tk_overflow_f 0x2000095d O 1 .bss + TK_Negtive_build2 0x2000095e O 17 .bss + base_update_f 0x2000096f O 1 .bss + TK_Postive_build1 0x20000970 O 17 .bss + time_cnt 0x20000984 O 4 .bss + lpt_scan_pend_cnt 0x20000988 O 2 .bss + TK_track_cnt 0x2000098a O 1 .bss + Key_Map 0x2000098c O 4 .bss + baseline_data1 0x20000990 O 34 .bss + TK_Postive_build0 0x200009b2 O 17 .bss + sampling_data2 0x200009c4 O 34 .bss + offset_data1 0x200009e6 O 34 .bss + TK_ovrdect_cnt 0x20000a08 O 1 .bss + Press_debounce2 0x20000a09 O 17 .bss + TK_Negtive_build1 0x20000a1a O 17 .bss + tk_num 0x20000a2b O 1 .bss + TK_Negtive_build0 0x20000a2c O 17 .bss + Press_debounce1 0x20000a3d O 17 .bss + Release_debounce2 0x20000a4e O 17 .bss + r_Key_Map_Temp 0x20000a60 O 4 .bss + tk_seque 0x20000a64 O 17 .bss + scan_step 0x20000a75 O 1 .bss + baseline_data2 0x20000a76 O 34 .bss + tk_sampling_max 0x20000a98 O 34 .bss + offset_data0_abs 0x20000aba O 34 .bss + offset_data2 0x20000adc O 34 .bss + sampling_data0 0x20000afe O 34 .bss + errno 0x20000b20 O 4 .bss + __malloc_lock 0x20000b24 O 4 .bss + _ebss 0x20000b28 0 .bss + _end 0x20000b28 0 .bss + end 0x20000b28 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000290c + + Region ROM (Base: 0x00002800, Size: 0x0000a2bc, Max: 0x0000d800) + + Base Addr Size Type Attr Idx Section Name Object + 0x00002800 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000029b4 0x000009aa Code RO 1106 .text pow.o + 0x0000335e 0x00000006 Code RO 1114 .text fabs.o + 0x00003364 0x00000020 Code RO 1120 .text scalbn.o + 0x00003384 0x00000178 Code RO 1127 .text sqrt.o + 0x000034fc 0x00000014 Code RO 1138 .text _csky_case_uqi.o + 0x00003510 0x0000002e Code RO 1143 .text _fixunssfsi.o + 0x0000353e 0x00000002 PAD + 0x00003540 0x00000038 Code RO 1150 .text _fixunsdfsi.o + 0x00003578 0x000001aa Code RO 1157 .text _addsub_sf.o + 0x00003722 0x00000002 PAD + 0x00003724 0x00000118 Code RO 1164 .text _mul_sf.o + 0x0000383c 0x000000bc Code RO 1171 .text _div_sf.o + 0x000038f8 0x00000036 Code RO 1178 .text _ne_sf.o + 0x0000392e 0x00000002 PAD + 0x00003930 0x00000038 Code RO 1185 .text _ge_sf.o + 0x00003968 0x00000064 Code RO 1192 .text _si_to_sf.o + 0x000039cc 0x00000054 Code RO 1199 .text _sf_to_si.o + 0x00003a20 0x00000024 Code RO 1206 .text _sf_to_df.o + 0x00003a44 0x0000033a Code RO 1220 .text _addsub_df.o + 0x00003d7e 0x00000002 PAD + 0x00003d80 0x00000234 Code RO 1227 .text _mul_df.o + 0x00003fb4 0x00000154 Code RO 1234 .text _div_df.o + 0x00004108 0x0000003c Code RO 1241 .text _gt_df.o + 0x00004144 0x0000003c Code RO 1248 .text _ge_df.o + 0x00004180 0x0000003a Code RO 1255 .text _le_df.o + 0x000041ba 0x00000002 PAD + 0x000041bc 0x00000070 Code RO 1262 .text _si_to_df.o + 0x0000422c 0x00000070 Code RO 1269 .text _df_to_si.o + 0x0000429c 0x00000028 Code RO 1276 .text _make_df.o + 0x000042c4 0x00000030 Code RO 1283 .text _df_to_sf.o + 0x000042f4 0x00000054 Code RO 1297 .text _usi_to_df.o + 0x00004348 0x00000044 Code RO 1304 .text _muldi3.o + 0x0000438c 0x00000040 Code RO 1311 .text _clzsi2.o + 0x000043cc 0x000000b8 Code RO 1317 .text _pack_sf.o + 0x00004484 0x00000084 Code RO 1324 .text _unpack_sf.o + 0x00004508 0x00000078 Code RO 1331 .text _fpcmp_parts_sf.o + 0x00004580 0x00000016 Code RO 1338 .text _make_sf.o + 0x00004596 0x00000002 PAD + 0x00004598 0x0000019c Code RO 1345 .text _pack_df.o + 0x00004734 0x000000c4 Code RO 1352 .text _unpack_df.o + 0x000047f8 0x0000008c Code RO 1359 .text _fpcmp_parts_df.o + 0x00004884 0x00000020 Code RO 1380 .text snprintf_required.o + 0x000048a4 0x00000098 Code RO 1387 .text vsnprintf_required.o + 0x0000493c 0x00000088 Code RO 1394 .text memset_fast.o + 0x000049c4 0x00000064 Code RO 1399 .text memcpy_fast.o + 0x00004a28 0x00000026 Code RO 1405 .text strncmp.o + 0x00004a4e 0x00000002 PAD + 0x00004a50 0x00000758 Code RO 1563 .text __v2_printfDFHLlMOPpSSsWp.o + 0x000051a8 0x000003ac Code RO 1622 .text _udivdi3.o + 0x00005554 0x000003a0 Code RO 1629 .text _umoddi3.o + 0x000058f4 0x00000360 Code RO 1650 .text __dtostr.o + 0x00005c54 0x0000002c Code RO 1658 .text __isnan.o + 0x00005c80 0x00000052 Code RO 1670 .text strlen_fast.o + 0x00005cd2 0x00000002 PAD + 0x00005cd4 0x000000b0 Code RO 1675 .text strcpy_fast.o + 0x00005d84 0x00000012 Code RO 1680 .text strchr.o + 0x00005d96 0x00000002 PAD + 0x00005d98 0x0000001c Code RO 1685 .text strerror.o + 0x00005db4 0x00000030 Code RO 1693 .text __isinf.o + 0x00005de4 0x0000003a Code RO 1699 .text _eq_df.o + 0x00005e1e 0x00000002 PAD + 0x00005e20 0x0000003a Code RO 1706 .text _lt_df.o + 0x00005e5c 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00005e94 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00005f08 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00005f54 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00005f84 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x0000600c 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00006034 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006070 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00006084 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x0000609c 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x000060bc 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000060d8 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000060f4 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006134 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00006168 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x0000616c 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x0000617c 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00006188 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x00006194 0x00000014 Code RO 111 .text.SYSCON_Software_Reset Obj/FWlib_apt32f102_syscon.o + 0x000061a8 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000061cc 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000061fc 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00006260 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00006340 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00006354 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00006364 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00006470 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x0000656c 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00006574 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x0000657c 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00006592 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000065a4 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000065b8 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000065c8 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000065e4 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000065ec 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000065f6 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000660e 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000663a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00006640 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00006654 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00006664 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x0000667c 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00006694 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000066ac 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000066c8 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000066e4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00006700 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000067ec 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000067fc 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x0000681c 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00006844 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x000068e4 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00006910 0x00000044 Code RO 690 .text.startup.main Obj/main.o + 0x00006954 0x0000002c Code RO 708 .text.delay_nms Obj/mcu_initial.o + 0x00006980 0x00000022 Code RO 709 .text.delay_nus Obj/mcu_initial.o + 0x000069a4 0x00000060 Code RO 713 .text.BT_CONFIG Obj/mcu_initial.o + 0x00006a04 0x00000062 Code RO 719 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00006a68 0x00000080 Code RO 720 .text.APT32F102_init Obj/mcu_initial.o + 0x00006ae8 0x000000f0 Code RO 736 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00006bd8 0x00000068 Code RO 737 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00006c40 0x00000068 Code RO 738 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00006ca8 0x000001ac Code RO 739 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00006e54 0x00000034 Code RO 740 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00006e88 0x00000080 Code RO 741 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00006f08 0x00000070 Code RO 742 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00006f78 0x00000060 Code RO 743 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00006fd8 0x00000094 Code RO 744 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x0000706c 0x00000060 Code RO 745 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000070cc 0x000000e8 Code RO 746 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000071b4 0x00000054 Code RO 747 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00007208 0x00000030 Code RO 748 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00007238 0x00000030 Code RO 749 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00007268 0x00000048 Code RO 750 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000072b0 0x00000020 Code RO 751 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x000072d0 0x0000006c Code RO 752 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x0000733c 0x00000034 Code RO 753 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00007370 0x0000004c Code RO 754 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000073bc 0x00000070 Code RO 755 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x0000742c 0x00000002 Code RO 756 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x0000742e 0x00000008 Code RO 758 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00007436 0x00000008 Code RO 759 .text.Trap3Handler Obj/mcu_interrupt.o + 0x0000743e 0x00000008 Code RO 760 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00007446 0x00000008 Code RO 761 .text.Trap1Handler Obj/mcu_interrupt.o + 0x0000744e 0x00000008 Code RO 762 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00007456 0x00000008 Code RO 763 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000745e 0x00000008 Code RO 764 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00007466 0x00000008 Code RO 765 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000746e 0x00000008 Code RO 766 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00007476 0x00000008 Code RO 767 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000747e 0x00000008 Code RO 768 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00007486 0x00000008 Code RO 769 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00007490 0x00000024 Code RO 786 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000074b4 0x00000024 Code RO 787 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000074d8 0x00000024 Code RO 788 .text.__modsi3 Obj/drivers_apt32f102.o + 0x000074fc 0x00000024 Code RO 789 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00007520 0x00000006 Code RO 807 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00007526 0x00000006 Code RO 808 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000752c 0x0000018c Code RO 822 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000076b8 0x00000044 Code RO 823 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000076fc 0x00000070 Code RO 824 .text.UART0_TASK Obj/SYSTEM_uart.o + 0x0000776c 0x00000044 Code RO 825 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000077b0 0x0000007c Code RO 826 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x0000782c 0x00000044 Code RO 827 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00007870 0x00000070 Code RO 828 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x000078e0 0x00000090 Code RO 830 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00007970 0x000000c4 Code RO 831 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00007a34 0x00000074 Code RO 832 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00007aa8 0x00000064 Code RO 833 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x00007b0c 0x00000010 Code RO 834 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x00007b1c 0x0000000c Code RO 835 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00007b28 0x00000040 Code RO 837 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x00007b68 0x0000005c Code RO 838 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00007bc4 0x00000080 Code RO 840 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00007c44 0x00000068 Code RO 841 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00007cac 0x00000084 Code RO 842 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00007d30 0x00000060 Code RO 843 .text.Dbg_BT_Println Obj/SYSTEM_uart.o + 0x00007d90 0x00000034 Code RO 861 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x00007dc4 0x00000094 Code RO 862 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x00007e58 0x00000098 Code RO 863 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00007ef0 0x00000016 Code RO 881 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00007f08 0x00000164 Code RO 882 .text.EEOROM_ENERGY_ReadSet Obj/SYSTEM_eeprom.o + 0x0000806c 0x00000044 Code RO 883 .text.EEOROM_ENERGY_WriteSet Obj/SYSTEM_eeprom.o + 0x000080b0 0x00000184 Code RO 884 .text.EEPROM_ENERGY_Validate Obj/SYSTEM_eeprom.o + 0x00008234 0x00000140 Code RO 885 .text.EEPROM_Default_ENERGY Obj/SYSTEM_eeprom.o + 0x00008374 0x000000d4 Code RO 891 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008448 0x00000040 Code RO 892 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008488 0x00000038 Code RO 893 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x000084c0 0x00000058 Code RO 894 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00008518 0x000000e4 Code RO 895 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000085fc 0x00000030 Code RO 913 .text.BLV_DetEnergy_Init Obj/SYSTEM_det_energy.o + 0x0000862c 0x000000e4 Code RO 914 .text.BLV_DetEnergy_Default Obj/SYSTEM_det_energy.o + 0x00008710 0x00000044 Code RO 915 .text.SaveFram_TEng Obj/SYSTEM_det_energy.o + 0x00008754 0x00000018 Code RO 916 .text.HLW8110_CheckSum Obj/SYSTEM_det_energy.o + 0x0000876c 0x00000044 Code RO 917 .text.HLW8110_WriteREG_EN Obj/SYSTEM_det_energy.o + 0x000087b0 0x00000044 Code RO 918 .text.HLW8110_WriteREG_DIS Obj/SYSTEM_det_energy.o + 0x000087f4 0x00000050 Code RO 919 .text.HLW8110_Reset Obj/SYSTEM_det_energy.o + 0x00008844 0x00000084 Code RO 920 .text.BLV_HLW8110_RWCMD_Packaging Obj/SYSTEM_det_energy.o + 0x000088c8 0x00000070 Code RO 921 .text.HLW8110_RWCMD_Send Obj/SYSTEM_det_energy.o + 0x00008938 0x00000010 Code RO 922 .text.HLW8110_CleanSdFlag Obj/SYSTEM_det_energy.o + 0x00008948 0x0000001c Code RO 923 .text.Get_RevState Obj/SYSTEM_det_energy.o + 0x00008964 0x0000001c Code RO 924 .text.Get_SendState Obj/SYSTEM_det_energy.o + 0x00008980 0x0000014c Code RO 926 .text.BLV_HLW8110_SendData_Tack Obj/SYSTEM_det_energy.o + 0x00008acc 0x00000084 Code RO 927 .text.HLW8110_Convert_VoltageReg_Value Obj/SYSTEM_det_energy.o + 0x00008b50 0x00000094 Code RO 928 .text.HLW8110_Convert_CurrentRegA_Value Obj/SYSTEM_det_energy.o + 0x00008be4 0x00000094 Code RO 929 .text.HLW8110_Convert_CurrentRegB_Value Obj/SYSTEM_det_energy.o + 0x00008c78 0x0000008c Code RO 930 .text.HLW8110_Convert_PowerRegA_Value Obj/SYSTEM_det_energy.o + 0x00008d04 0x0000008c Code RO 931 .text.HLW8110_Convert_PowerRegB_Value Obj/SYSTEM_det_energy.o + 0x00008d90 0x00000100 Code RO 932 .text.HLW8110_Convert_EnergyRegA_Value Obj/SYSTEM_det_energy.o + 0x00008e90 0x00000100 Code RO 933 .text.HLW8110_Convert_EnergyRegB_Value Obj/SYSTEM_det_energy.o + 0x00008f90 0x00000014 Code RO 934 .text.HLW8110_ClearFlag Obj/SYSTEM_det_energy.o + 0x00008fa4 0x00000368 Code RO 935 .text.HLW8110_RecvData_Processing Obj/SYSTEM_det_energy.o + 0x0000930c 0x00000026 Code RO 936 .text.HLW8110_SysPara_Check Obj/SYSTEM_det_energy.o + 0x00009334 0x00000250 Code RO 937 .text.HLW8110_ReadSysPara Obj/SYSTEM_det_energy.o + 0x00009584 0x00000100 Code RO 938 .text.HLW8110_ReadSysCtrlPara Obj/SYSTEM_det_energy.o + 0x00009684 0x00000070 Code RO 939 .text.GetEnergy_Para Obj/SYSTEM_det_energy.o + 0x000096f4 0x000001c4 Code RO 940 .text.HLW8110_ReadValue Obj/SYSTEM_det_energy.o + 0x000098b8 0x00000064 Code RO 941 .text.BLV_HLW8110_Tack Obj/SYSTEM_det_energy.o + 0x0000991c 0x00000048 Code RO 942 .text.BT_Uart_Packing Obj/SYSTEM_det_energy.o + 0x00009964 0x00000140 Code RO 943 .text.BT_UART_Print Obj/SYSTEM_det_energy.o + 0x00009aa4 0x00000130 Code RO 944 .text.BLV_Energy_PassiveRep_Packing Obj/SYSTEM_det_energy.o + 0x00009bd4 0x00000034 Code RO 945 .text.BLV_ElectricPara_Processing Obj/SYSTEM_det_energy.o + 0x00009c08 0x00000014 Code RO 946 .text.BLV_EngDetect_Tack Obj/SYSTEM_det_energy.o + 0x00009c1c 0x000000a0 Code RO 947 .text.BLV_Energy_SetTime_Packing Obj/SYSTEM_det_energy.o + 0x00009cbc 0x00000098 Code RO 948 .text.BLV_Energy_QueryVersion_Packing Obj/SYSTEM_det_energy.o + 0x00009d54 0x0000002c Code RO 949 .text.SetCalibFactor_Switch Obj/SYSTEM_det_energy.o + 0x00009d80 0x00000084 Code RO 950 .text.BLV_Energy_SetCalibFactor Obj/SYSTEM_det_energy.o + 0x00009e04 0x0000007c Code RO 951 .text.BLV_Energy_SetCalibFactor_2 Obj/SYSTEM_det_energy.o + 0x00009e80 0x00000194 Code RO 952 .text.BLV_485Recv_Processing Obj/SYSTEM_det_energy.o + 0x0000a014 0x00000144 Code RO 953 .text.BT_Recv_Processing Obj/SYSTEM_det_energy.o + 0x0000a158 0x000000c0 Code RO 972 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x0000a218 0x00000024 Code RO 973 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x0000a23c 0x0000006c Code RO 975 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x0000a2a8 0x00000014 Code RO 979 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x0000a2bc 0x0000021c Code RO 980 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x0000a4d8 0x00000014 Code RO 1001 .text.Fram_SDA_GPIO.part.0 Obj/SYSTEM_fram_i2c.o + 0x0000a4ec 0x00000020 Code RO 1002 .text.Fram_SDA_GPIO Obj/SYSTEM_fram_i2c.o + 0x0000a50c 0x0000003c Code RO 1003 .text.IIC_Wait Obj/SYSTEM_fram_i2c.o + 0x0000a548 0x00000040 Code RO 1004 .text.IIC_Start Obj/SYSTEM_fram_i2c.o + 0x0000a588 0x0000003c Code RO 1005 .text.IIC_Stop Obj/SYSTEM_fram_i2c.o + 0x0000a5c4 0x0000003c Code RO 1006 .text.IIC_ACK Obj/SYSTEM_fram_i2c.o + 0x0000a600 0x0000003c Code RO 1007 .text.IIC_NoACK Obj/SYSTEM_fram_i2c.o + 0x0000a63c 0x00000064 Code RO 1009 .text.IIC_Wait_ACK Obj/SYSTEM_fram_i2c.o + 0x0000a6a0 0x00000058 Code RO 1010 .text.IIC_Send_Byte Obj/SYSTEM_fram_i2c.o + 0x0000a6f8 0x00000058 Code RO 1011 .text.IIC_Read_Byte Obj/SYSTEM_fram_i2c.o + 0x0000a750 0x0000008c Code RO 1014 .text.Fram_I2C_WriteBytes Obj/SYSTEM_fram_i2c.o + 0x0000a7dc 0x000000a8 Code RO 1015 .text.Fram_I2C_ReadBytes Obj/SYSTEM_fram_i2c.o + 0x0000a884 0x00000064 Code RO 1016 .text.FRAM_WriteTotalEng Obj/SYSTEM_fram_i2c.o + 0x0000a8e8 0x000000a4 Code RO 1017 .text.FRAM_ReadTotalEng Obj/SYSTEM_fram_i2c.o + 0x0000a98c 0x0000005c Code RO 1018 .text.Bsp_I2C_Fram_Init Obj/SYSTEM_fram_i2c.o + 0x0000a9e8 0x00000058 Code RO 1052 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000aa40 0x00000088 Code RO 1056 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000aac8 0x00000028 Code RO 1057 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x0000aaf0 0x00000020 Code RO 1059 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x0000ab10 0x00000180 Code RO 1060 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000ac90 0x0000011c Code RO 1061 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x0000adac 0x000001d0 Code RO 1062 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x0000af7c 0x00000054 Code RO 1063 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000afd0 0x00000078 Code RO 1064 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000b048 0x00000284 Code RO 1086 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000b2cc 0x00000017 Data RO 954 .rodata Obj/SYSTEM_det_energy.o + 0x0000b2e3 0x00000001 PAD + 0x0000b2e4 0x00000030 Data RO 1109 .rodata pow.o + 0x0000b314 0x00000010 Data RO 1216 .rodata _thenan_sf.o + 0x0000b324 0x00000014 Data RO 1293 .rodata _thenan_df.o + 0x0000b338 0x00000100 Data RO 1369 .rodata _clz.o + 0x0000b438 0x00000020 Data RO 1566 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x0000b458 0x00000240 Data RO 1688 .rodata strerror.o + 0x0000b698 0x00000021 Data RO 691 .rodata.str1.1 Obj/main.o + 0x0000b6b9 0x00000036 Data RO 844 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x0000b6ef 0x00000023 Data RO 864 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x0000b712 0x0000035f Data RO 896 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000ba71 0x000004d9 Data RO 955 .rodata.str1.1 Obj/SYSTEM_det_energy.o + 0x0000bf4a 0x000002fb Data RO 984 .rodata.str1.1 Obj/SYSTEM_Bootload_fun.o + 0x0000c245 0x000000c3 Data RO 1019 .rodata.str1.1 Obj/SYSTEM_fram_i2c.o + 0x0000c308 0x00000022 Data RO 1567 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x0000c32a 0x00000008 Data RO 1653 .rodata.str1.1 __dtostr.o + 0x0000c332 0x00000787 Data RO 1689 .rodata.str1.1 strerror.o + 0x0000cab9 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000b28, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 784 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 1043 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x00000020 Data RW 692 .textcsky.VinFlash Obj/main.o + 0x200000bc 0x0000000c Zero RW 735 .bss Obj/mcu_interrupt.o + 0x200000c8 0x000000a0 Zero RW 821 .bss Obj/SYSTEM_uart.o + 0x20000168 0x00000004 Zero RW 860 .bss Obj/SYSTEM_dip_switch.o + 0x2000016c 0x0000001c Zero RW 912 .bss Obj/SYSTEM_det_energy.o + 0x20000188 0x00000086 Zero RW 704 COMMON Obj/main.o + 0x2000020e 0x00000002 PAD + 0x20000210 0x00000030 Zero RW 782 COMMON Obj/mcu_interrupt.o + 0x20000240 0x00000244 Zero RW 857 COMMON Obj/SYSTEM_uart.o + 0x20000484 0x00000014 Zero RW 877 COMMON Obj/SYSTEM_dip_switch.o + 0x20000498 0x00000055 Zero RW 909 COMMON Obj/SYSTEM_eeprom.o + 0x200004ed 0x00000003 PAD + 0x200004f0 0x0000011c Zero RW 968 COMMON Obj/SYSTEM_det_energy.o + 0x2000060c 0x0000023c Zero RW 997 COMMON Obj/SYSTEM_Bootload_fun.o + 0x20000848 0x00000010 Zero RW 1032 COMMON Obj/SYSTEM_fram_i2c.o + 0x20000858 0x000002c8 Zero RW 1082 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000b20 0x00000008 Zero RW 1643 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 282 Obj/arch_crt0.o + 56 0 0 0 816 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 872 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 932 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13549 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 438 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 68 33 32 134 13116 Obj/main.o + 400 0 0 0 16759 Obj/mcu_initial.o + 2470 0 0 60 15568 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 2148 54 0 740 17302 Obj/SYSTEM_uart.o + 352 35 0 24 11712 Obj/SYSTEM_dip_switch.o + 1802 863 0 85 17438 Obj/SYSTEM_eeprom.o + 7002 1264 0 312 23858 Obj/SYSTEM_det_energy.o + 896 763 0 572 16955 Obj/SYSTEM_Bootload_fun.o + 1296 195 0 16 14980 Obj/SYSTEM_fram_i2c.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 19756 3207 136 1943 290025 Object Totals + 20 4 3 5 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 46 0 0 0 0 _fixunssfsi.o + 56 0 0 0 0 _fixunsdfsi.o + 426 0 0 0 0 _addsub_sf.o + 280 0 0 0 0 _mul_sf.o + 188 0 0 0 0 _div_sf.o + 54 0 0 0 0 _ne_sf.o + 56 0 0 0 0 _ge_sf.o + 100 0 0 0 0 _si_to_sf.o + 84 0 0 0 0 _sf_to_si.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 40 0 0 0 0 _make_df.o + 48 0 0 0 0 _df_to_sf.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 184 0 0 0 0 _pack_sf.o + 132 0 0 0 0 _unpack_sf.o + 120 0 0 0 0 _fpcmp_parts_sf.o + 22 0 0 0 0 _make_sf.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 6856 292 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 38 0 0 0 0 strncmp.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3598 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 35510 6128 188 2668 315039 Grand Totals + 35510 6128 188 2668 315039 Elf Image Totals + 35510 6128 188 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 41638 ( 40.66kB) +Total RW Size (RW Data + ZI Data) 2856 ( 2.79kB) +Total ROM Size (Code + RO Data + RW Data) 41826 ( 40.85kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/NRF_T1F_CR_V01_20240415.asm b/BLV_CS_AC100_V05/Source/Lst/NRF_T1F_CR_V01_20240415.asm new file mode 100644 index 0000000..b984ed2 --- /dev/null +++ b/BLV_CS_AC100_V05/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 : +//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) + 21f8: 3840 cmpnei r0, 0 + 21fa: 0821 bt 0x223c // 223c + { + if(UART_IO_G==0) + 21fc: 3940 cmpnei r1, 0 + 21fe: 080a bt 0x2212 // 2212 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2200: 1177 lrw r3, 0x2000004c // 22dc + 2202: 31ff movi r1, 255 + 2204: 9340 ld.w r2, (r3, 0x0) + 2206: 9260 ld.w r3, (r2, 0x0) + 2208: 68c5 andn r3, r1 + 220a: 3ba2 bseti r3, 2 + 220c: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 220e: b260 st.w r3, (r2, 0x0) + 2210: 0415 br 0x223a // 223a + else if(UART_IO_G==1) + 2212: 3941 cmpnei r1, 1 + 2214: 0813 bt 0x223a // 223a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 2216: 1172 lrw r3, 0x2000004c // 22dc + 2218: 31f0 movi r1, 240 + 221a: 9340 ld.w r2, (r3, 0x0) + 221c: 9260 ld.w r3, (r2, 0x0) + 221e: 4130 lsli r1, r1, 16 + 2220: 68c5 andn r3, r1 + 2222: 31e0 movi r1, 224 + 2224: 412f lsli r1, r1, 15 + 2226: 6cc4 or r3, r1 + 2228: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 222a: 31f0 movi r1, 240 + 222c: 9261 ld.w r3, (r2, 0x4) + 222e: 412c lsli r1, r1, 12 + 2230: 68c5 andn r3, r1 + 2232: 31e0 movi r1, 224 + 2234: 412b lsli r1, r1, 11 + 2236: 6cc4 or r3, r1 + 2238: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 223a: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 223c: 3841 cmpnei r0, 1 + 223e: 082d bt 0x2298 // 2298 + if(UART_IO_G==0) + 2240: 3940 cmpnei r1, 0 + 2242: 0814 bt 0x226a // 226a + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2244: 1167 lrw r3, 0x20000048 // 22e0 + 2246: 310f movi r1, 15 + 2248: 9340 ld.w r2, (r3, 0x0) + 224a: 9260 ld.w r3, (r2, 0x0) + 224c: 68c5 andn r3, r1 + 224e: 3107 movi r1, 7 + 2250: 6cc4 or r3, r1 + 2252: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2254: 32f0 movi r2, 240 + 2256: 1162 lrw r3, 0x2000004c // 22dc + 2258: 4250 lsli r2, r2, 16 + 225a: 9320 ld.w r1, (r3, 0x0) + 225c: 9161 ld.w r3, (r1, 0x4) + 225e: 68c9 andn r3, r2 + 2260: 32e0 movi r2, 224 + 2262: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2264: 6cc8 or r3, r2 + 2266: b161 st.w r3, (r1, 0x4) + 2268: 07e9 br 0x223a // 223a + else if(UART_IO_G==1) + 226a: 3941 cmpnei r1, 1 + 226c: 080c bt 0x2284 // 2284 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 226e: 107c lrw r3, 0x2000004c // 22dc + 2270: 32ff movi r2, 255 + 2272: 9320 ld.w r1, (r3, 0x0) + 2274: 424c lsli r2, r2, 12 + 2276: 9160 ld.w r3, (r1, 0x0) + 2278: 68c9 andn r3, r2 + 227a: 32ee movi r2, 238 + 227c: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 227e: 6cc8 or r3, r2 + 2280: b160 st.w r3, (r1, 0x0) +} + 2282: 07dc br 0x223a // 223a + else if(UART_IO_G==2) + 2284: 3942 cmpnei r1, 2 + 2286: 0bda bt 0x223a // 223a + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2288: 1075 lrw r3, 0x2000004c // 22dc + 228a: 32ee movi r2, 238 + 228c: 9320 ld.w r1, (r3, 0x0) + 228e: 9161 ld.w r3, (r1, 0x4) + 2290: 4368 lsli r3, r3, 8 + 2292: 4b68 lsri r3, r3, 8 + 2294: 4257 lsli r2, r2, 23 + 2296: 07e7 br 0x2264 // 2264 + if (IO_UART_NUM==IO_UART2) + 2298: 3842 cmpnei r0, 2 + 229a: 0bd0 bt 0x223a // 223a + if(UART_IO_G==0) + 229c: 3940 cmpnei r1, 0 + 229e: 0809 bt 0x22b0 // 22b0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 22a0: 106f lrw r3, 0x2000004c // 22dc + 22a2: 31ff movi r1, 255 + 22a4: 9340 ld.w r2, (r3, 0x0) + 22a6: 9260 ld.w r3, (r2, 0x0) + 22a8: 68c5 andn r3, r1 + 22aa: 3177 movi r1, 119 + 22ac: 6cc4 or r3, r1 + 22ae: 07b0 br 0x220e // 220e + else if(UART_IO_G==1) + 22b0: 3941 cmpnei r1, 1 + 22b2: 0809 bt 0x22c4 // 22c4 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 22b4: 106a lrw r3, 0x2000004c // 22dc + 22b6: 32ee movi r2, 238 + 22b8: 9320 ld.w r1, (r3, 0x0) + 22ba: 9160 ld.w r3, (r1, 0x0) + 22bc: 4368 lsli r3, r3, 8 + 22be: 4b68 lsri r3, r3, 8 + 22c0: 4257 lsli r2, r2, 23 + 22c2: 07de br 0x227e // 227e + else if(UART_IO_G==2) + 22c4: 3942 cmpnei r1, 2 + 22c6: 0bba bt 0x223a // 223a + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 22c8: 1066 lrw r3, 0x20000048 // 22e0 + 22ca: 32ff movi r2, 255 + 22cc: 9320 ld.w r1, (r3, 0x0) + 22ce: 4250 lsli r2, r2, 16 + 22d0: 9160 ld.w r3, (r1, 0x0) + 22d2: 68c9 andn r3, r2 + 22d4: 32cc movi r2, 204 + 22d6: 424f lsli r2, r2, 15 + 22d8: 07d3 br 0x227e // 227e + 22da: 0000 bkpt + 22dc: 2000004c .long 0x2000004c + 22e0: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000022e4 : +//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); + 22e4: 1063 lrw r3, 0x80003 // 22f0 + 22e6: 6c8c or r2, r3 + 22e8: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 22ea: b024 st.w r1, (r0, 0x10) +} + 22ec: 783c jmp r15 + 22ee: 0000 bkpt + 22f0: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000022f4 : +//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); + 22f4: 1063 lrw r3, 0x8000f // 2300 + 22f6: 6c8c or r2, r3 + 22f8: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 22fa: b024 st.w r1, (r0, 0x10) +} + 22fc: 783c jmp r15 + 22fe: 0000 bkpt + 2300: 0008000f .long 0x0008000f + +Disassembly of section .text.EPT_Stop: + +00002304 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2304: 1068 lrw r3, 0x20000020 // 2324 + 2306: 3280 movi r2, 128 + 2308: 9360 ld.w r3, (r3, 0x0) + 230a: 608c addu r2, r3 + 230c: 1027 lrw r1, 0xa55ac73a // 2328 + 230e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2310: 9341 ld.w r2, (r3, 0x4) + 2312: 31fe movi r1, 254 + 2314: 6884 and r2, r1 + 2316: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2318: 3101 movi r1, 1 + 231a: 9341 ld.w r2, (r3, 0x4) + 231c: 6884 and r2, r1 + 231e: 3a40 cmpnei r2, 0 + 2320: 0bfd bt 0x231a // 231a +} + 2322: 783c jmp r15 + 2324: 20000020 .long 0x20000020 + 2328: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +0000232c
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 232c: 14d1 push r4, r15 + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 232e: 1093 lrw r4, 0x20000048 // 2378 + 2330: 3201 movi r2, 1 + 2332: 9400 ld.w r0, (r4, 0x0) + 2334: 3102 movi r1, 2 + 2336: e3fffd29 bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOB0,DET_RF_MODULE_PIN); + 233a: 9400 ld.w r0, (r4, 0x0) + 233c: 3102 movi r1, 2 + 233e: e3fffd95 bsr 0x1e68 // 1e68 + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 2342: 3102 movi r1, 2 + 2344: 9400 ld.w r0, (r4, 0x0) + 2346: e3fffdaa bsr 0x1e9a // 1e9a + 234a: 108d lrw r4, 0x2000009c // 237c + 234c: a400 st.b r0, (r4, 0x0) + + APT32F102_init(); //102 initial + 234e: e00000dd bsr 0x2508 // 2508 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 2352: 102c lrw r1, 0x4564 // 2380 + 2354: 3000 movi r0, 0 + 2356: e0000697 bsr 0x3084 // 3084 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 235a: e3fffc85 bsr 0x1c64 // 1c64 + + //UART2_TASK(); + + Card_Read_TasK(); + 235e: e000095f bsr 0x361c // 361c + + if(rf_exist == 0x01) + 2362: 8460 ld.b r3, (r4, 0x0) + 2364: 3b41 cmpnei r3, 1 + 2366: 0804 bt 0x236e // 236e + { + LogicCtrl_NoRF_Task(); //无RF模块轮询任务 + 2368: e0000ab0 bsr 0x38c8 // 38c8 + 236c: 07f7 br 0x235a // 235a + } + else if(rf_exist == 0x00) + 236e: 3b40 cmpnei r3, 0 + 2370: 0bf5 bt 0x235a // 235a + { + LogicCtrl_Task(); //带RF模块执行逻辑 + 2372: e0000a2f bsr 0x37d0 // 37d0 + 2376: 07f2 br 0x235a // 235a + 2378: 20000048 .long 0x20000048 + 237c: 2000009c .long 0x2000009c + 2380: 00004564 .long 0x00004564 + +Disassembly of section .text.delay_nms: + +00002384 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2384: 14d0 push r15 + 2386: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2388: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 238a: 3300 movi r3, 0 + j = 50* t; + 238c: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 238e: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2390: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2392: b860 st.w r3, (r14, 0x0) + 2394: 9840 ld.w r2, (r14, 0x0) + 2396: 9861 ld.w r3, (r14, 0x4) + 2398: 64c8 cmphs r2, r3 + 239a: 0c03 bf 0x23a0 // 23a0 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 239c: 1403 addi r14, r14, 12 + 239e: 1490 pop r15 + k++; + 23a0: 9862 ld.w r3, (r14, 0x8) + 23a2: 2300 addi r3, 1 + 23a4: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 23a6: e3fffc5f bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 23aa: 9860 ld.w r3, (r14, 0x0) + 23ac: 2300 addi r3, 1 + 23ae: 07f2 br 0x2392 // 2392 + +Disassembly of section .text.GPT0_CONFIG: + +000023b0 : +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + 23b0: 14d0 push r15 + 23b2: 1429 subi r14, r14, 36 + GPT_IO_Init(GPT_CHA_PB01); + 23b4: 3000 movi r0, 0 + 23b6: e3fffde3 bsr 0x1f7c // 1f7c + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 23ba: 3300 movi r3, 0 + 23bc: 3240 movi r2, 64 + 23be: 3100 movi r1, 0 + 23c0: 3001 movi r0, 1 + 23c2: e3fffe2d bsr 0x201c // 201c + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 23c6: 3300 movi r3, 0 + 23c8: b865 st.w r3, (r14, 0x14) + 23ca: b864 st.w r3, (r14, 0x10) + 23cc: b863 st.w r3, (r14, 0xc) + 23ce: b862 st.w r3, (r14, 0x8) + 23d0: b861 st.w r3, (r14, 0x4) + 23d2: b860 st.w r3, (r14, 0x0) + 23d4: 3208 movi r2, 8 + 23d6: 3100 movi r1, 0 + 23d8: 3000 movi r0, 0 + 23da: e3fffe2b bsr 0x2030 // 2030 + if(rf_exist == 0x01) + 23de: 1079 lrw r3, 0x2000009c // 2440 + 23e0: 8360 ld.b r3, (r3, 0x0) + 23e2: 3b41 cmpnei r3, 1 + 23e4: 0827 bt 0x2432 // 2432 + { + GPT_Period_CMP_Write(2000,2000,0); + 23e6: 31fa movi r1, 250 + 23e8: 4123 lsli r1, r1, 3 + 23ea: 3200 movi r2, 0 + 23ec: 6c07 mov r0, r1 + } + else if(rf_exist == 0x00) + { + GPT_Period_CMP_Write(2000,0,0); + 23ee: e3fffeaf bsr 0x214c // 214c + } + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 23f2: 3320 movi r3, 32 + 23f4: 3204 movi r2, 4 + 23f6: 3100 movi r1, 0 + 23f8: 3001 movi r0, 1 + 23fa: e3fffe3d bsr 0x2074 // 2074 + GPT_WaveOut_Configure(GPT_CHA,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 23fe: 3300 movi r3, 0 + 2400: 3201 movi r2, 1 + 2402: b868 st.w r3, (r14, 0x20) + 2404: b867 st.w r3, (r14, 0x1c) + 2406: b866 st.w r3, (r14, 0x18) + 2408: b865 st.w r3, (r14, 0x14) + 240a: b864 st.w r3, (r14, 0x10) + 240c: b863 st.w r3, (r14, 0xc) + 240e: b842 st.w r2, (r14, 0x8) + 2410: b841 st.w r2, (r14, 0x4) + 2412: b860 st.w r3, (r14, 0x0) + 2414: 3200 movi r2, 0 + 2416: 3302 movi r3, 2 + 2418: 3100 movi r1, 0 + 241a: 3000 movi r0, 0 + 241c: e3fffe36 bsr 0x2088 // 2088 + +// GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPB,2,0,0,0,1,1,0,0,0,0); + //GPT_SyncSet_Configure(GPT_SYNCUSR0_EN,GPT_OST_CONTINUOUS,GPT_TXREARM_DIS,GPT_TRGO0SEL_SR0,GPT_TRG10SEL_SR0,GPT_AREARM_DIS); + //GPT_Trigger_Configure(GPT_SRCSEL_TRGUSR0EN,GPT_BLKINV_DIS,GPT_ALIGNMD_PRD,GPT_CROSSMD_DIS,5,5); + //GPT_EVTRG_Configure(GPT_TRGSRC0_PRD,GPT_TRGSRC1_PRD,GPT_ESYN0OE_EN,GPT_ESYN1OE_EN,GPT_CNT0INIT_EN,GPT_CNT1INIT_EN,3,3,3,3); + GPT_Start(); + 2420: e3fffe8e bsr 0x213c // 213c + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 2424: 3180 movi r1, 128 + 2426: 4129 lsli r1, r1, 9 + 2428: 3001 movi r0, 1 + 242a: e3fffe99 bsr 0x215c // 215c +// GPT_INT_ENABLE(); + //INTC_ISER_WRITE(GPT0_INT); + //INTC_IWER_WRITE(GPT0_INT); +} + 242e: 1409 addi r14, r14, 36 + 2430: 1490 pop r15 + else if(rf_exist == 0x00) + 2432: 3b40 cmpnei r3, 0 + 2434: 0bdf bt 0x23f2 // 23f2 + GPT_Period_CMP_Write(2000,0,0); + 2436: 30fa movi r0, 250 + 2438: 3200 movi r2, 0 + 243a: 3100 movi r1, 0 + 243c: 4003 lsli r0, r0, 3 + 243e: 07d8 br 0x23ee // 23ee + 2440: 2000009c .long 0x2000009c + +Disassembly of section .text.BT_CONFIG: + +00002444 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2444: 14d2 push r4-r5, r15 + 2446: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2448: 1095 lrw r4, 0x20000008 // 249c + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 244a: 3500 movi r5, 0 + BT_DeInit(BT1); + 244c: 9400 ld.w r0, (r4, 0x0) + 244e: e3fffd49 bsr 0x1ee0 // 1ee0 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2452: 9400 ld.w r0, (r4, 0x0) + 2454: b8a1 st.w r5, (r14, 0x4) + 2456: b8a0 st.w r5, (r14, 0x0) + 2458: 3308 movi r3, 8 + 245a: 3200 movi r2, 0 + 245c: 3101 movi r1, 1 + 245e: e3fffd58 bsr 0x1f0e // 1f0e + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 2462: 3380 movi r3, 128 + 2464: 4363 lsli r3, r3, 3 + 2466: b861 st.w r3, (r14, 0x4) + 2468: 9400 ld.w r0, (r4, 0x0) + 246a: 3300 movi r3, 0 + 246c: b8a3 st.w r5, (r14, 0xc) + 246e: b8a2 st.w r5, (r14, 0x8) + 2470: b8a0 st.w r5, (r14, 0x0) + 2472: 3200 movi r2, 0 + 2474: 3180 movi r1, 128 + 2476: e3fffd58 bsr 0x1f26 // 1f26 + BT_Period_CMP_Write(BT1,4780,1); + 247a: 3201 movi r2, 1 + 247c: 1029 lrw r1, 0x12ac // 24a0 + 247e: 9400 ld.w r0, (r4, 0x0) + 2480: e3fffd69 bsr 0x1f52 // 1f52 + BT_Start(BT1); + 2484: 9400 ld.w r0, (r4, 0x0) + 2486: e3fffd3b bsr 0x1efc // 1efc + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 248a: 9400 ld.w r0, (r4, 0x0) + 248c: 3202 movi r2, 2 + 248e: 3101 movi r1, 1 + 2490: e3fffd64 bsr 0x1f58 // 1f58 + BT1_INT_ENABLE(); + 2494: e3fffd6c bsr 0x1f6c // 1f6c + +} + 2498: 1404 addi r14, r14, 16 + 249a: 1492 pop r4-r5, r15 + 249c: 20000008 .long 0x20000008 + 24a0: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +000024a4 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 24a4: 14d0 push r15 + 24a6: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 24a8: e3fffb2a bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 24ac: 3101 movi r1, 1 + 24ae: 3001 movi r0, 1 + 24b0: e3fffb4c bsr 0x1b48 // 1b48 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 24b4: 3000 movi r0, 0 + 24b6: e3fffba5 bsr 0x1c00 // 1c00 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 24ba: 3180 movi r1, 128 + 24bc: 3308 movi r3, 8 + 24be: 3200 movi r2, 0 + 24c0: 4121 lsli r1, r1, 1 + 24c2: 3002 movi r0, 2 + 24c4: e3fffb5a bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 24c8: 3080 movi r0, 128 + 24ca: 3118 movi r1, 24 + 24cc: 4002 lsli r0, r0, 2 + 24ce: e3fffbd5 bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 24d2: 3001 movi r0, 1 + 24d4: e3fffbaa bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 24d8: e3fffbc6 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 24dc: e3fffbf8 bsr 0x1ccc // 1ccc + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 24e0: 3340 movi r3, 64 + 24e2: b860 st.w r3, (r14, 0x0) + 24e4: 31c0 movi r1, 192 + 24e6: 3380 movi r3, 128 + 24e8: 4364 lsli r3, r3, 4 + 24ea: 3200 movi r2, 0 + 24ec: 4123 lsli r1, r1, 3 + 24ee: 3000 movi r0, 0 + 24f0: e3fffbd0 bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 24f4: e3fffbde bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 24f8: e3fffc18 bsr 0x1d28 // 1d28 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 24fc: 3000 movi r0, 0 + 24fe: e0000e4f bsr 0x419c // 419c + +} + 2502: 1401 addi r14, r14, 4 + 2504: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002508 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2508: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 250a: 1078 lrw r3, 0x2000005c // 2568 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 250c: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 250e: 9340 ld.w r2, (r3, 0x0) + 2510: 1077 lrw r3, 0xfffffff // 256c + 2512: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2514: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2516: 926c ld.w r3, (r2, 0x30) + 2518: 68c4 and r3, r1 + 251a: 3b40 cmpnei r3, 0 + 251c: 0ffd bf 0x2516 // 2516 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 251e: e3ffffc3 bsr 0x24a4 // 24a4 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2522: e000050f bsr 0x2f40 // 2f40 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2526: e3fffc07 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 252a: 3101 movi r1, 1 + 252c: 300f movi r0, 15 + 252e: e3fffc15 bsr 0x1d58 // 1d58 +// Set_INT_Priority(SIO_IRQ,1); //SIO优先级最高 +// + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2532: 3102 movi r1, 2 + 2534: 3019 movi r0, 25 + 2536: e3fffc11 bsr 0x1d58 // 1d58 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 253a: e3ffff85 bsr 0x2444 // 2444 + + GPT0_CONFIG(); + 253e: e3ffff39 bsr 0x23b0 // 23b0 + + UARTx_Init(UART_1,NULL); + 2542: 3100 movi r1, 0 + 2544: 3001 movi r0, 1 + 2546: e0000501 bsr 0x2f48 // 2f48 +// UARTx_Init(UART_2,NULL); + + RC522_Init(); + 254a: e00006b7 bsr 0x32b8 // 32b8 + + + if(rf_exist == 0x01) //不带无线模块初始化 + 254e: 1069 lrw r3, 0x2000009c // 2570 + 2550: 8360 ld.b r3, (r3, 0x0) + 2552: 3b41 cmpnei r3, 1 + 2554: 0804 bt 0x255c // 255c + { + LogicCtrl_NoRF_Init(); + 2556: e0000989 bsr 0x3868 // 3868 + } + else if(rf_exist == 0x00) //带无线模块初始化 + { + LogicCtrl_Init(); + } +} + 255a: 1490 pop r15 + else if(rf_exist == 0x00) //带无线模块初始化 + 255c: 3b40 cmpnei r3, 0 + 255e: 0bfe bt 0x255a // 255a + LogicCtrl_Init(); + 2560: e0000922 bsr 0x37a4 // 37a4 +} + 2564: 07fb br 0x255a // 255a + 2566: 0000 bkpt + 2568: 2000005c .long 0x2000005c + 256c: 0fffffff .long 0x0fffffff + 2570: 2000009c .long 0x2000009c + +Disassembly of section .text.SYSCONIntHandler: + +00002574 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2574: 1460 nie + 2576: 1462 ipush + // ISR content ... + nop; + 2578: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 257a: 117a lrw r3, 0x2000005c // 2660 + 257c: 3280 movi r2, 128 + 257e: 9360 ld.w r3, (r3, 0x0) + 2580: 60c8 addu r3, r2 + 2582: 9323 ld.w r1, (r3, 0xc) + 2584: 3001 movi r0, 1 + 2586: 6840 and r1, r0 + 2588: 3940 cmpnei r1, 0 + 258a: 0c04 bf 0x2592 // 2592 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 258c: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 258e: 1463 ipop + 2590: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2592: 9323 ld.w r1, (r3, 0xc) + 2594: 3002 movi r0, 2 + 2596: 6840 and r1, r0 + 2598: 3940 cmpnei r1, 0 + 259a: 0bf9 bt 0x258c // 258c + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 259c: 9323 ld.w r1, (r3, 0xc) + 259e: 3008 movi r0, 8 + 25a0: 6840 and r1, r0 + 25a2: 3940 cmpnei r1, 0 + 25a4: 0bf4 bt 0x258c // 258c + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 25a6: 9323 ld.w r1, (r3, 0xc) + 25a8: 3010 movi r0, 16 + 25aa: 6840 and r1, r0 + 25ac: 3940 cmpnei r1, 0 + 25ae: 0bef bt 0x258c // 258c + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 25b0: 9323 ld.w r1, (r3, 0xc) + 25b2: 6848 and r1, r2 + 25b4: 3940 cmpnei r1, 0 + 25b6: 0c03 bf 0x25bc // 25bc + SYSCON->ICR = CMD_ERR_ST; + 25b8: b341 st.w r2, (r3, 0x4) +} + 25ba: 07ea br 0x258e // 258e + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 25bc: 3280 movi r2, 128 + 25be: 9323 ld.w r1, (r3, 0xc) + 25c0: 4241 lsli r2, r2, 1 + 25c2: 6848 and r1, r2 + 25c4: 3940 cmpnei r1, 0 + 25c6: 0bf9 bt 0x25b8 // 25b8 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 25c8: 3280 movi r2, 128 + 25ca: 9323 ld.w r1, (r3, 0xc) + 25cc: 4242 lsli r2, r2, 2 + 25ce: 6848 and r1, r2 + 25d0: 3940 cmpnei r1, 0 + 25d2: 0bf3 bt 0x25b8 // 25b8 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 25d4: 3280 movi r2, 128 + 25d6: 9323 ld.w r1, (r3, 0xc) + 25d8: 4243 lsli r2, r2, 3 + 25da: 6848 and r1, r2 + 25dc: 3940 cmpnei r1, 0 + 25de: 0bed bt 0x25b8 // 25b8 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 25e0: 3280 movi r2, 128 + 25e2: 9323 ld.w r1, (r3, 0xc) + 25e4: 4244 lsli r2, r2, 4 + 25e6: 6848 and r1, r2 + 25e8: 3940 cmpnei r1, 0 + 25ea: 0c03 bf 0x25f0 // 25f0 + nop; + 25ec: 6c03 mov r0, r0 + 25ee: 07e5 br 0x25b8 // 25b8 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 25f0: 3280 movi r2, 128 + 25f2: 9323 ld.w r1, (r3, 0xc) + 25f4: 4245 lsli r2, r2, 5 + 25f6: 6848 and r1, r2 + 25f8: 3940 cmpnei r1, 0 + 25fa: 0bdf bt 0x25b8 // 25b8 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 25fc: 3280 movi r2, 128 + 25fe: 9323 ld.w r1, (r3, 0xc) + 2600: 4246 lsli r2, r2, 6 + 2602: 6848 and r1, r2 + 2604: 3940 cmpnei r1, 0 + 2606: 0bd9 bt 0x25b8 // 25b8 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2608: 3280 movi r2, 128 + 260a: 9323 ld.w r1, (r3, 0xc) + 260c: 4247 lsli r2, r2, 7 + 260e: 6848 and r1, r2 + 2610: 3940 cmpnei r1, 0 + 2612: 0bd3 bt 0x25b8 // 25b8 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2614: 3280 movi r2, 128 + 2616: 9323 ld.w r1, (r3, 0xc) + 2618: 424b lsli r2, r2, 11 + 261a: 6848 and r1, r2 + 261c: 3940 cmpnei r1, 0 + 261e: 0bcd bt 0x25b8 // 25b8 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2620: 3280 movi r2, 128 + 2622: 9323 ld.w r1, (r3, 0xc) + 2624: 424c lsli r2, r2, 12 + 2626: 6848 and r1, r2 + 2628: 3940 cmpnei r1, 0 + 262a: 0bc7 bt 0x25b8 // 25b8 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 262c: 3280 movi r2, 128 + 262e: 9323 ld.w r1, (r3, 0xc) + 2630: 424d lsli r2, r2, 13 + 2632: 6848 and r1, r2 + 2634: 3940 cmpnei r1, 0 + 2636: 0bc1 bt 0x25b8 // 25b8 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2638: 3280 movi r2, 128 + 263a: 9323 ld.w r1, (r3, 0xc) + 263c: 424e lsli r2, r2, 14 + 263e: 6848 and r1, r2 + 2640: 3940 cmpnei r1, 0 + 2642: 0bbb bt 0x25b8 // 25b8 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2644: 3280 movi r2, 128 + 2646: 9323 ld.w r1, (r3, 0xc) + 2648: 424f lsli r2, r2, 15 + 264a: 6848 and r1, r2 + 264c: 3940 cmpnei r1, 0 + 264e: 0bb5 bt 0x25b8 // 25b8 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2650: 3280 movi r2, 128 + 2652: 9323 ld.w r1, (r3, 0xc) + 2654: 4256 lsli r2, r2, 22 + 2656: 6848 and r1, r2 + 2658: 3940 cmpnei r1, 0 + 265a: 0baf bt 0x25b8 // 25b8 + 265c: 0799 br 0x258e // 258e + 265e: 0000 bkpt + 2660: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002664 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2664: 1460 nie + 2666: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2668: 1078 lrw r3, 0x20000060 // 26c8 + 266a: 3101 movi r1, 1 + 266c: 9360 ld.w r3, (r3, 0x0) + 266e: 934b ld.w r2, (r3, 0x2c) + 2670: 6884 and r2, r1 + 2672: 3a40 cmpnei r2, 0 + 2674: 0c04 bf 0x267c // 267c + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2676: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2678: 1463 ipop + 267a: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 267c: 934b ld.w r2, (r3, 0x2c) + 267e: 3102 movi r1, 2 + 2680: 6884 and r2, r1 + 2682: 3a40 cmpnei r2, 0 + 2684: 0bf9 bt 0x2676 // 2676 + else if(IFC->MISR&PEP_END_INT) + 2686: 934b ld.w r2, (r3, 0x2c) + 2688: 3104 movi r1, 4 + 268a: 6884 and r2, r1 + 268c: 3a40 cmpnei r2, 0 + 268e: 0bf4 bt 0x2676 // 2676 + else if(IFC->MISR&PROT_ERR_INT) + 2690: 3280 movi r2, 128 + 2692: 932b ld.w r1, (r3, 0x2c) + 2694: 4245 lsli r2, r2, 5 + 2696: 6848 and r1, r2 + 2698: 3940 cmpnei r1, 0 + 269a: 0c03 bf 0x26a0 // 26a0 + IFC->ICR=OVW_ERR_INT; + 269c: b34c st.w r2, (r3, 0x30) +} + 269e: 07ed br 0x2678 // 2678 + else if(IFC->MISR&UDEF_ERR_INT) + 26a0: 3280 movi r2, 128 + 26a2: 932b ld.w r1, (r3, 0x2c) + 26a4: 4246 lsli r2, r2, 6 + 26a6: 6848 and r1, r2 + 26a8: 3940 cmpnei r1, 0 + 26aa: 0bf9 bt 0x269c // 269c + else if(IFC->MISR&ADDR_ERR_INT) + 26ac: 3280 movi r2, 128 + 26ae: 932b ld.w r1, (r3, 0x2c) + 26b0: 4247 lsli r2, r2, 7 + 26b2: 6848 and r1, r2 + 26b4: 3940 cmpnei r1, 0 + 26b6: 0bf3 bt 0x269c // 269c + else if(IFC->MISR&OVW_ERR_INT) + 26b8: 3280 movi r2, 128 + 26ba: 932b ld.w r1, (r3, 0x2c) + 26bc: 4248 lsli r2, r2, 8 + 26be: 6848 and r1, r2 + 26c0: 3940 cmpnei r1, 0 + 26c2: 0bed bt 0x269c // 269c + 26c4: 07da br 0x2678 // 2678 + 26c6: 0000 bkpt + 26c8: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +000026cc : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 26cc: 1460 nie + 26ce: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 26d0: 1078 lrw r3, 0x20000050 // 2730 + 26d2: 3101 movi r1, 1 + 26d4: 9360 ld.w r3, (r3, 0x0) + 26d6: 9348 ld.w r2, (r3, 0x20) + 26d8: 6884 and r2, r1 + 26da: 3a40 cmpnei r2, 0 + 26dc: 0c04 bf 0x26e4 // 26e4 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 26de: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 26e0: 1463 ipop + 26e2: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 26e4: 9348 ld.w r2, (r3, 0x20) + 26e6: 3102 movi r1, 2 + 26e8: 6884 and r2, r1 + 26ea: 3a40 cmpnei r2, 0 + 26ec: 0bf9 bt 0x26de // 26de + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 26ee: 9348 ld.w r2, (r3, 0x20) + 26f0: 3104 movi r1, 4 + 26f2: 6884 and r2, r1 + 26f4: 3a40 cmpnei r2, 0 + 26f6: 0bf4 bt 0x26de // 26de + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 26f8: 9348 ld.w r2, (r3, 0x20) + 26fa: 3110 movi r1, 16 + 26fc: 6884 and r2, r1 + 26fe: 3a40 cmpnei r2, 0 + 2700: 0bef bt 0x26de // 26de + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 2702: 9348 ld.w r2, (r3, 0x20) + 2704: 3120 movi r1, 32 + 2706: 6884 and r2, r1 + 2708: 3a40 cmpnei r2, 0 + 270a: 0bea bt 0x26de // 26de + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 270c: 9348 ld.w r2, (r3, 0x20) + 270e: 3140 movi r1, 64 + 2710: 6884 and r2, r1 + 2712: 3a40 cmpnei r2, 0 + 2714: 0be5 bt 0x26de // 26de + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 2716: 9348 ld.w r2, (r3, 0x20) + 2718: 3180 movi r1, 128 + 271a: 6884 and r2, r1 + 271c: 3a40 cmpnei r2, 0 + 271e: 0be0 bt 0x26de // 26de + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 2720: 3280 movi r2, 128 + 2722: 9328 ld.w r1, (r3, 0x20) + 2724: 4249 lsli r2, r2, 9 + 2726: 6848 and r1, r2 + 2728: 3940 cmpnei r1, 0 + 272a: 0fdb bf 0x26e0 // 26e0 + ADC0->CSR = ADC12_SEQ_END0; + 272c: b347 st.w r2, (r3, 0x1c) +} + 272e: 07d9 br 0x26e0 // 26e0 + 2730: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00002734 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 2734: 1460 nie + 2736: 1462 ipush + 2738: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 273a: 1387 lrw r4, 0x20000020 // 28d4 + 273c: 3280 movi r2, 128 + 273e: 9460 ld.w r3, (r4, 0x0) + 2740: 60c8 addu r3, r2 + 2742: 9335 ld.w r1, (r3, 0x54) + 2744: 3001 movi r0, 1 + 2746: 6840 and r1, r0 + 2748: 3940 cmpnei r1, 0 + 274a: 0c03 bf 0x2750 // 2750 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 274c: b317 st.w r0, (r3, 0x5c) + 274e: 0424 br 0x2796 // 2796 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2750: 9335 ld.w r1, (r3, 0x54) + 2752: 3002 movi r0, 2 + 2754: 6840 and r1, r0 + 2756: 3940 cmpnei r1, 0 + 2758: 0bfa bt 0x274c // 274c + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 275a: 9335 ld.w r1, (r3, 0x54) + 275c: 3004 movi r0, 4 + 275e: 6840 and r1, r0 + 2760: 3940 cmpnei r1, 0 + 2762: 0bf5 bt 0x274c // 274c + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 2764: 9335 ld.w r1, (r3, 0x54) + 2766: 3008 movi r0, 8 + 2768: 6840 and r1, r0 + 276a: 3940 cmpnei r1, 0 + 276c: 0bf0 bt 0x274c // 274c + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 276e: 9335 ld.w r1, (r3, 0x54) + 2770: 3010 movi r0, 16 + 2772: 6840 and r1, r0 + 2774: 3940 cmpnei r1, 0 + 2776: 0c1f bf 0x27b4 // 27b4 + EPT0->ICR=EPT_CAP_LD0; + 2778: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 277a: 3200 movi r2, 0 + 277c: 3101 movi r1, 1 + 277e: 3000 movi r0, 0 + 2780: e3fffab4 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 2784: 3201 movi r2, 1 + 2786: 3101 movi r1, 1 + 2788: 3001 movi r0, 1 + 278a: e3fffaaf bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 278e: 9460 ld.w r3, (r4, 0x0) + 2790: 934b ld.w r2, (r3, 0x2c) + 2792: 1272 lrw r3, 0x20000158 // 28d8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2794: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 2796: 9460 ld.w r3, (r4, 0x0) + 2798: 3280 movi r2, 128 + 279a: 60c8 addu r3, r2 + 279c: 932b ld.w r1, (r3, 0x2c) + 279e: 3001 movi r0, 1 + 27a0: 6840 and r1, r0 + 27a2: 3940 cmpnei r1, 0 + 27a4: 0c61 bf 0x2866 // 2866 + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 27a6: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 27a8: d9ee2001 ld.w r15, (r14, 0x4) + 27ac: 9880 ld.w r4, (r14, 0x0) + 27ae: 1402 addi r14, r14, 8 + 27b0: 1463 ipop + 27b2: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 27b4: 9335 ld.w r1, (r3, 0x54) + 27b6: 3020 movi r0, 32 + 27b8: 6840 and r1, r0 + 27ba: 3940 cmpnei r1, 0 + 27bc: 0c10 bf 0x27dc // 27dc + EPT0->ICR=EPT_CAP_LD1; + 27be: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 27c0: 3200 movi r2, 0 + 27c2: 3101 movi r1, 1 + 27c4: 3001 movi r0, 1 + 27c6: e3fffa91 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 27ca: 3201 movi r2, 1 + 27cc: 3101 movi r1, 1 + 27ce: 3000 movi r0, 0 + 27d0: e3fffa8c bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 27d4: 9460 ld.w r3, (r4, 0x0) + 27d6: 934c ld.w r2, (r3, 0x30) + 27d8: 1261 lrw r3, 0x20000154 // 28dc + 27da: 07dd br 0x2794 // 2794 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 27dc: 9335 ld.w r1, (r3, 0x54) + 27de: 3040 movi r0, 64 + 27e0: 6840 and r1, r0 + 27e2: 3940 cmpnei r1, 0 + 27e4: 0bb4 bt 0x274c // 274c + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 27e6: 9335 ld.w r1, (r3, 0x54) + 27e8: 6848 and r1, r2 + 27ea: 3940 cmpnei r1, 0 + 27ec: 0c03 bf 0x27f2 // 27f2 + EPT0->ICR=EPT_CDD; + 27ee: b357 st.w r2, (r3, 0x5c) + 27f0: 07d3 br 0x2796 // 2796 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 27f2: 3280 movi r2, 128 + 27f4: 9335 ld.w r1, (r3, 0x54) + 27f6: 4241 lsli r2, r2, 1 + 27f8: 6848 and r1, r2 + 27fa: 3940 cmpnei r1, 0 + 27fc: 0bf9 bt 0x27ee // 27ee + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 27fe: 3280 movi r2, 128 + 2800: 9335 ld.w r1, (r3, 0x54) + 2802: 4242 lsli r2, r2, 2 + 2804: 6848 and r1, r2 + 2806: 3940 cmpnei r1, 0 + 2808: 0bf3 bt 0x27ee // 27ee + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 280a: 3280 movi r2, 128 + 280c: 9335 ld.w r1, (r3, 0x54) + 280e: 4243 lsli r2, r2, 3 + 2810: 6848 and r1, r2 + 2812: 3940 cmpnei r1, 0 + 2814: 0bed bt 0x27ee // 27ee + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 2816: 3280 movi r2, 128 + 2818: 9335 ld.w r1, (r3, 0x54) + 281a: 4244 lsli r2, r2, 4 + 281c: 6848 and r1, r2 + 281e: 3940 cmpnei r1, 0 + 2820: 0be7 bt 0x27ee // 27ee + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 2822: 3280 movi r2, 128 + 2824: 9335 ld.w r1, (r3, 0x54) + 2826: 4245 lsli r2, r2, 5 + 2828: 6848 and r1, r2 + 282a: 3940 cmpnei r1, 0 + 282c: 0be1 bt 0x27ee // 27ee + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 282e: 3280 movi r2, 128 + 2830: 9335 ld.w r1, (r3, 0x54) + 2832: 4246 lsli r2, r2, 6 + 2834: 6848 and r1, r2 + 2836: 3940 cmpnei r1, 0 + 2838: 0bdb bt 0x27ee // 27ee + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 283a: 3280 movi r2, 128 + 283c: 9335 ld.w r1, (r3, 0x54) + 283e: 4247 lsli r2, r2, 7 + 2840: 6848 and r1, r2 + 2842: 3940 cmpnei r1, 0 + 2844: 0bd5 bt 0x27ee // 27ee + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 2846: 3280 movi r2, 128 + 2848: 9335 ld.w r1, (r3, 0x54) + 284a: 4248 lsli r2, r2, 8 + 284c: 6848 and r1, r2 + 284e: 3940 cmpnei r1, 0 + 2850: 0bcf bt 0x27ee // 27ee + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 2852: 3280 movi r2, 128 + 2854: 9335 ld.w r1, (r3, 0x54) + 2856: 4249 lsli r2, r2, 9 + 2858: 6848 and r1, r2 + 285a: 3940 cmpnei r1, 0 + 285c: 0f9d bf 0x2796 // 2796 + EPT0->ICR=EPT_PEND; + 285e: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 2860: e3fffd52 bsr 0x2304 // 2304 + 2864: 0799 br 0x2796 // 2796 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 2866: 932b ld.w r1, (r3, 0x2c) + 2868: 3002 movi r0, 2 + 286a: 6840 and r1, r0 + 286c: 3940 cmpnei r1, 0 + 286e: 0b9c bt 0x27a6 // 27a6 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 2870: 932b ld.w r1, (r3, 0x2c) + 2872: 3004 movi r0, 4 + 2874: 6840 and r1, r0 + 2876: 3940 cmpnei r1, 0 + 2878: 0b97 bt 0x27a6 // 27a6 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 287a: 932b ld.w r1, (r3, 0x2c) + 287c: 3008 movi r0, 8 + 287e: 6840 and r1, r0 + 2880: 3940 cmpnei r1, 0 + 2882: 0b92 bt 0x27a6 // 27a6 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 2884: 932b ld.w r1, (r3, 0x2c) + 2886: 3010 movi r0, 16 + 2888: 6840 and r1, r0 + 288a: 3940 cmpnei r1, 0 + 288c: 0b8d bt 0x27a6 // 27a6 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 288e: 932b ld.w r1, (r3, 0x2c) + 2890: 3020 movi r0, 32 + 2892: 6840 and r1, r0 + 2894: 3940 cmpnei r1, 0 + 2896: 0b88 bt 0x27a6 // 27a6 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 2898: 932b ld.w r1, (r3, 0x2c) + 289a: 3040 movi r0, 64 + 289c: 6840 and r1, r0 + 289e: 3940 cmpnei r1, 0 + 28a0: 0b83 bt 0x27a6 // 27a6 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 28a2: 932b ld.w r1, (r3, 0x2c) + 28a4: 6848 and r1, r2 + 28a6: 3940 cmpnei r1, 0 + 28a8: 0c03 bf 0x28ae // 28ae + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 28aa: b34d st.w r2, (r3, 0x34) +} + 28ac: 077e br 0x27a8 // 27a8 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 28ae: 3280 movi r2, 128 + 28b0: 932b ld.w r1, (r3, 0x2c) + 28b2: 4241 lsli r2, r2, 1 + 28b4: 6848 and r1, r2 + 28b6: 3940 cmpnei r1, 0 + 28b8: 0bf9 bt 0x28aa // 28aa + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 28ba: 3280 movi r2, 128 + 28bc: 932b ld.w r1, (r3, 0x2c) + 28be: 4242 lsli r2, r2, 2 + 28c0: 6848 and r1, r2 + 28c2: 3940 cmpnei r1, 0 + 28c4: 0bf3 bt 0x28aa // 28aa + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 28c6: 3280 movi r2, 128 + 28c8: 932b ld.w r1, (r3, 0x2c) + 28ca: 4243 lsli r2, r2, 3 + 28cc: 6848 and r1, r2 + 28ce: 3940 cmpnei r1, 0 + 28d0: 0bed bt 0x28aa // 28aa + 28d2: 076b br 0x27a8 // 27a8 + 28d4: 20000020 .long 0x20000020 + 28d8: 20000158 .long 0x20000158 + 28dc: 20000154 .long 0x20000154 + +Disassembly of section .text.WWDTHandler: + +000028e0 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 28e0: 1460 nie + 28e2: 1462 ipush + 28e4: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 28e6: 10ab lrw r5, 0x20000010 // 2910 + 28e8: 3401 movi r4, 1 + 28ea: 9560 ld.w r3, (r5, 0x0) + 28ec: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 28ee: 30ff movi r0, 255 + 28f0: e3fffaf0 bsr 0x1ed0 // 1ed0 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 28f4: 9540 ld.w r2, (r5, 0x0) + 28f6: 9263 ld.w r3, (r2, 0xc) + 28f8: 68d0 and r3, r4 + 28fa: 3b40 cmpnei r3, 0 + 28fc: 0c02 bf 0x2900 // 2900 + { + WWDT->ICR = WWDT_EVI; + 28fe: b285 st.w r4, (r2, 0x14) + } +} + 2900: d9ee2002 ld.w r15, (r14, 0x8) + 2904: 98a1 ld.w r5, (r14, 0x4) + 2906: 9880 ld.w r4, (r14, 0x0) + 2908: 1403 addi r14, r14, 12 + 290a: 1463 ipop + 290c: 1461 nir + 290e: 0000 bkpt + 2910: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00002914 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 2914: 1460 nie + 2916: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 2918: 107e lrw r3, 0x20000024 // 2990 + 291a: 3101 movi r1, 1 + 291c: 9360 ld.w r3, (r3, 0x0) + 291e: 237f addi r3, 128 + 2920: 9355 ld.w r2, (r3, 0x54) + 2922: 6884 and r2, r1 + 2924: 3a40 cmpnei r2, 0 + 2926: 0c04 bf 0x292e // 292e + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 2928: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 292a: 1463 ipop + 292c: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 292e: 9355 ld.w r2, (r3, 0x54) + 2930: 3102 movi r1, 2 + 2932: 6884 and r2, r1 + 2934: 3a40 cmpnei r2, 0 + 2936: 0bf9 bt 0x2928 // 2928 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 2938: 9355 ld.w r2, (r3, 0x54) + 293a: 3110 movi r1, 16 + 293c: 6884 and r2, r1 + 293e: 3a40 cmpnei r2, 0 + 2940: 0bf4 bt 0x2928 // 2928 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 2942: 9355 ld.w r2, (r3, 0x54) + 2944: 3120 movi r1, 32 + 2946: 6884 and r2, r1 + 2948: 3a40 cmpnei r2, 0 + 294a: 0bef bt 0x2928 // 2928 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 294c: 3280 movi r2, 128 + 294e: 9335 ld.w r1, (r3, 0x54) + 2950: 4241 lsli r2, r2, 1 + 2952: 6848 and r1, r2 + 2954: 3940 cmpnei r1, 0 + 2956: 0c03 bf 0x295c // 295c + GPT0->ICR = GPT_INT_PEND; + 2958: b357 st.w r2, (r3, 0x5c) +} + 295a: 07e8 br 0x292a // 292a + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 295c: 3280 movi r2, 128 + 295e: 9335 ld.w r1, (r3, 0x54) + 2960: 4242 lsli r2, r2, 2 + 2962: 6848 and r1, r2 + 2964: 3940 cmpnei r1, 0 + 2966: 0bf9 bt 0x2958 // 2958 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 2968: 3280 movi r2, 128 + 296a: 9335 ld.w r1, (r3, 0x54) + 296c: 4243 lsli r2, r2, 3 + 296e: 6848 and r1, r2 + 2970: 3940 cmpnei r1, 0 + 2972: 0bf3 bt 0x2958 // 2958 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 2974: 3280 movi r2, 128 + 2976: 9335 ld.w r1, (r3, 0x54) + 2978: 4244 lsli r2, r2, 4 + 297a: 6848 and r1, r2 + 297c: 3940 cmpnei r1, 0 + 297e: 0bed bt 0x2958 // 2958 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 2980: 3280 movi r2, 128 + 2982: 9335 ld.w r1, (r3, 0x54) + 2984: 4249 lsli r2, r2, 9 + 2986: 6848 and r1, r2 + 2988: 3940 cmpnei r1, 0 + 298a: 0be7 bt 0x2958 // 2958 + 298c: 07cf br 0x292a // 292a + 298e: 0000 bkpt + 2990: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00002994 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 2994: 1460 nie + 2996: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 2998: 1079 lrw r3, 0x20000018 // 29fc + 299a: 3101 movi r1, 1 + 299c: 9360 ld.w r3, (r3, 0x0) + 299e: 934a ld.w r2, (r3, 0x28) + 29a0: 6884 and r2, r1 + 29a2: 3a40 cmpnei r2, 0 + 29a4: 0c14 bf 0x29cc // 29cc + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 29a6: 1057 lrw r2, 0xca53 // 2a00 + RTC->ICR=ALRA_INT; + 29a8: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 29aa: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 29ac: 9342 ld.w r2, (r3, 0x8) + 29ae: 6c84 or r2, r1 + 29b0: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 29b2: 3280 movi r2, 128 + 29b4: 424d lsli r2, r2, 13 + 29b6: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 29b8: 3102 movi r1, 2 + 29ba: 9342 ld.w r2, (r3, 0x8) + 29bc: 6884 and r2, r1 + 29be: 3a40 cmpnei r2, 0 + 29c0: 0bfd bt 0x29ba // 29ba + RTC->CR &= ~0x1; + 29c2: 9342 ld.w r2, (r3, 0x8) + 29c4: 3a80 bclri r2, 0 + 29c6: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 29c8: 1463 ipop + 29ca: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 29cc: 934a ld.w r2, (r3, 0x28) + 29ce: 3102 movi r1, 2 + 29d0: 6884 and r2, r1 + 29d2: 3a40 cmpnei r2, 0 + 29d4: 0c03 bf 0x29da // 29da + RTC->ICR=RTC_TRGEV1_INT; + 29d6: b32b st.w r1, (r3, 0x2c) +} + 29d8: 07f8 br 0x29c8 // 29c8 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 29da: 934a ld.w r2, (r3, 0x28) + 29dc: 3104 movi r1, 4 + 29de: 6884 and r2, r1 + 29e0: 3a40 cmpnei r2, 0 + 29e2: 0bfa bt 0x29d6 // 29d6 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 29e4: 934a ld.w r2, (r3, 0x28) + 29e6: 3108 movi r1, 8 + 29e8: 6884 and r2, r1 + 29ea: 3a40 cmpnei r2, 0 + 29ec: 0bf5 bt 0x29d6 // 29d6 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 29ee: 934a ld.w r2, (r3, 0x28) + 29f0: 3110 movi r1, 16 + 29f2: 6884 and r2, r1 + 29f4: 3a40 cmpnei r2, 0 + 29f6: 0bf0 bt 0x29d6 // 29d6 + 29f8: 07e8 br 0x29c8 // 29c8 + 29fa: 0000 bkpt + 29fc: 20000018 .long 0x20000018 + 2a00: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00002a04 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 2a04: 1460 nie + 2a06: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2a08: 106d lrw r3, 0x20000040 // 2a3c + 2a0a: 3102 movi r1, 2 + 2a0c: 9360 ld.w r3, (r3, 0x0) + 2a0e: 9343 ld.w r2, (r3, 0xc) + 2a10: 6884 and r2, r1 + 2a12: 3a40 cmpnei r2, 0 + 2a14: 0c03 bf 0x2a1a // 2a1a + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 2a16: b323 st.w r1, (r3, 0xc) + } +} + 2a18: 0410 br 0x2a38 // 2a38 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2a1a: 9343 ld.w r2, (r3, 0xc) + 2a1c: 3101 movi r1, 1 + 2a1e: 6884 and r2, r1 + 2a20: 3a40 cmpnei r2, 0 + 2a22: 0bfa bt 0x2a16 // 2a16 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2a24: 9343 ld.w r2, (r3, 0xc) + 2a26: 3108 movi r1, 8 + 2a28: 6884 and r2, r1 + 2a2a: 3a40 cmpnei r2, 0 + 2a2c: 0bf5 bt 0x2a16 // 2a16 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2a2e: 9343 ld.w r2, (r3, 0xc) + 2a30: 3104 movi r1, 4 + 2a32: 6884 and r2, r1 + 2a34: 3a40 cmpnei r2, 0 + 2a36: 0bf0 bt 0x2a16 // 2a16 +} + 2a38: 1463 ipop + 2a3a: 1461 nir + 2a3c: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00002a40 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 2a40: 1460 nie + 2a42: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2a44: 106d lrw r3, 0x2000003c // 2a78 + 2a46: 3102 movi r1, 2 + 2a48: 9360 ld.w r3, (r3, 0x0) + 2a4a: 9343 ld.w r2, (r3, 0xc) + 2a4c: 6884 and r2, r1 + 2a4e: 3a40 cmpnei r2, 0 + 2a50: 0c03 bf 0x2a56 // 2a56 + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + 2a52: b323 st.w r1, (r3, 0xc) + } +} + 2a54: 0410 br 0x2a74 // 2a74 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2a56: 9343 ld.w r2, (r3, 0xc) + 2a58: 3101 movi r1, 1 + 2a5a: 6884 and r2, r1 + 2a5c: 3a40 cmpnei r2, 0 + 2a5e: 0bfa bt 0x2a52 // 2a52 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2a60: 9343 ld.w r2, (r3, 0xc) + 2a62: 3108 movi r1, 8 + 2a64: 6884 and r2, r1 + 2a66: 3a40 cmpnei r2, 0 + 2a68: 0bf5 bt 0x2a52 // 2a52 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2a6a: 9343 ld.w r2, (r3, 0xc) + 2a6c: 3104 movi r1, 4 + 2a6e: 6884 and r2, r1 + 2a70: 3a40 cmpnei r2, 0 + 2a72: 0bf0 bt 0x2a52 // 2a52 +} + 2a74: 1463 ipop + 2a76: 1461 nir + 2a78: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00002a7c : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 2a7c: 1460 nie + 2a7e: 1462 ipush + 2a80: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2a82: 107f lrw r3, 0x20000038 // 2afc + 2a84: 3102 movi r1, 2 + 2a86: 9360 ld.w r3, (r3, 0x0) + 2a88: 9343 ld.w r2, (r3, 0xc) + 2a8a: 6884 and r2, r1 + 2a8c: 3a40 cmpnei r2, 0 + 2a8e: 0c0b bf 0x2aa4 // 2aa4 + { + UART2->ISR=UART_RX_INT_S; + 2a90: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 2a92: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 2a94: 7400 zextb r0, r0 + 2a96: e00002c5 bsr 0x3020 // 3020 + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 2a9a: d9ee2000 ld.w r15, (r14, 0x0) + 2a9e: 1401 addi r14, r14, 4 + 2aa0: 1463 ipop + 2aa2: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2aa4: 9323 ld.w r1, (r3, 0xc) + 2aa6: 3201 movi r2, 1 + 2aa8: 6848 and r1, r2 + 2aaa: 3940 cmpnei r1, 0 + 2aac: 0c0d bf 0x2ac6 // 2ac6 + UART2->ISR=UART_TX_INT_S; + 2aae: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 2ab0: 1074 lrw r3, 0x200000ac // 2b00 + 2ab2: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2ab4: 1074 lrw r3, 0x200000b0 // 2b04 + 2ab6: 9360 ld.w r3, (r3, 0x0) + 2ab8: 3b41 cmpnei r3, 1 + 2aba: 0bf0 bt 0x2a9a // 2a9a + RS485_Comm_Start ++; + 2abc: 1053 lrw r2, 0x200000b4 // 2b08 + RS485_Comm_End ++; + 2abe: 9260 ld.w r3, (r2, 0x0) + 2ac0: 2300 addi r3, 1 + 2ac2: b260 st.w r3, (r2, 0x0) +} + 2ac4: 07eb br 0x2a9a // 2a9a + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2ac6: 9343 ld.w r2, (r3, 0xc) + 2ac8: 3108 movi r1, 8 + 2aca: 6884 and r2, r1 + 2acc: 3a40 cmpnei r2, 0 + 2ace: 0c03 bf 0x2ad4 // 2ad4 + UART2->ISR=UART_TX_IOV_S; + 2ad0: b323 st.w r1, (r3, 0xc) + 2ad2: 07e4 br 0x2a9a // 2a9a + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2ad4: 9343 ld.w r2, (r3, 0xc) + 2ad6: 3104 movi r1, 4 + 2ad8: 6884 and r2, r1 + 2ada: 3a40 cmpnei r2, 0 + 2adc: 0bfa bt 0x2ad0 // 2ad0 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2ade: 3180 movi r1, 128 + 2ae0: 9303 ld.w r0, (r3, 0xc) + 2ae2: 412c lsli r1, r1, 12 + 2ae4: 6804 and r0, r1 + 2ae6: 3840 cmpnei r0, 0 + 2ae8: 0fd9 bf 0x2a9a // 2a9a + UART2->ISR=UART_TX_DONE_S; + 2aea: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 2aec: 1065 lrw r3, 0x200000ac // 2b00 + 2aee: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2af0: 1065 lrw r3, 0x200000b0 // 2b04 + 2af2: 9360 ld.w r3, (r3, 0x0) + 2af4: 3b41 cmpnei r3, 1 + 2af6: 0bd2 bt 0x2a9a // 2a9a + RS485_Comm_End ++; + 2af8: 1045 lrw r2, 0x200000b8 // 2b0c + 2afa: 07e2 br 0x2abe // 2abe + 2afc: 20000038 .long 0x20000038 + 2b00: 200000ac .long 0x200000ac + 2b04: 200000b0 .long 0x200000b0 + 2b08: 200000b4 .long 0x200000b4 + 2b0c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.SPI0IntHandler: + +00002b10 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 2b10: 1460 nie + 2b12: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 2b14: 1178 lrw r3, 0x20000034 // 2bf4 + 2b16: 3101 movi r1, 1 + 2b18: 9360 ld.w r3, (r3, 0x0) + 2b1a: 9347 ld.w r2, (r3, 0x1c) + 2b1c: 6884 and r2, r1 + 2b1e: 3a40 cmpnei r2, 0 + 2b20: 0c03 bf 0x2b26 // 2b26 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 2b22: b328 st.w r1, (r3, 0x20) + } + +} + 2b24: 0407 br 0x2b32 // 2b32 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 2b26: 9347 ld.w r2, (r3, 0x1c) + 2b28: 3002 movi r0, 2 + 2b2a: 6880 and r2, r0 + 2b2c: 3a40 cmpnei r2, 0 + 2b2e: 0c04 bf 0x2b36 // 2b36 + SPI0->ICR = SPI_RTIM; + 2b30: b308 st.w r0, (r3, 0x20) +} + 2b32: 1463 ipop + 2b34: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 2b36: 9347 ld.w r2, (r3, 0x1c) + 2b38: 3004 movi r0, 4 + 2b3a: 6880 and r2, r0 + 2b3c: 3a40 cmpnei r2, 0 + 2b3e: 0c55 bf 0x2be8 // 2be8 + SPI0->ICR = SPI_RXIM; + 2b40: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 2b42: 9302 ld.w r0, (r3, 0x8) + 2b44: 32aa movi r2, 170 + 2b46: 6482 cmpne r0, r2 + 2b48: 083e bt 0x2bc4 // 2bc4 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2b4a: 3102 movi r1, 2 + 2b4c: 9343 ld.w r2, (r3, 0xc) + 2b4e: 6884 and r2, r1 + 2b50: 3a40 cmpnei r2, 0 + 2b52: 0ffd bf 0x2b4c // 2b4c + SPI0->DR = 0x11; + 2b54: 3211 movi r2, 17 + 2b56: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2b58: 3110 movi r1, 16 + 2b5a: 9343 ld.w r2, (r3, 0xc) + 2b5c: 6884 and r2, r1 + 2b5e: 3a40 cmpnei r2, 0 + 2b60: 0bfd bt 0x2b5a // 2b5a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2b62: 3102 movi r1, 2 + 2b64: 9343 ld.w r2, (r3, 0xc) + 2b66: 6884 and r2, r1 + 2b68: 3a40 cmpnei r2, 0 + 2b6a: 0ffd bf 0x2b64 // 2b64 + SPI0->DR = 0x12; + 2b6c: 3212 movi r2, 18 + 2b6e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2b70: 3110 movi r1, 16 + 2b72: 9343 ld.w r2, (r3, 0xc) + 2b74: 6884 and r2, r1 + 2b76: 3a40 cmpnei r2, 0 + 2b78: 0bfd bt 0x2b72 // 2b72 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2b7a: 3102 movi r1, 2 + 2b7c: 9343 ld.w r2, (r3, 0xc) + 2b7e: 6884 and r2, r1 + 2b80: 3a40 cmpnei r2, 0 + 2b82: 0ffd bf 0x2b7c // 2b7c + SPI0->DR = 0x13; + 2b84: 3213 movi r2, 19 + 2b86: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2b88: 3110 movi r1, 16 + 2b8a: 9343 ld.w r2, (r3, 0xc) + 2b8c: 6884 and r2, r1 + 2b8e: 3a40 cmpnei r2, 0 + 2b90: 0bfd bt 0x2b8a // 2b8a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2b92: 3102 movi r1, 2 + 2b94: 9343 ld.w r2, (r3, 0xc) + 2b96: 6884 and r2, r1 + 2b98: 3a40 cmpnei r2, 0 + 2b9a: 0ffd bf 0x2b94 // 2b94 + SPI0->DR = 0x14; + 2b9c: 3214 movi r2, 20 + 2b9e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2ba0: 3110 movi r1, 16 + 2ba2: 9343 ld.w r2, (r3, 0xc) + 2ba4: 6884 and r2, r1 + 2ba6: 3a40 cmpnei r2, 0 + 2ba8: 0bfd bt 0x2ba2 // 2ba2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2baa: 3102 movi r1, 2 + 2bac: 9343 ld.w r2, (r3, 0xc) + 2bae: 6884 and r2, r1 + 2bb0: 3a40 cmpnei r2, 0 + 2bb2: 0ffd bf 0x2bac // 2bac + SPI0->DR = 0x15; + 2bb4: 3215 movi r2, 21 + 2bb6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bb8: 3110 movi r1, 16 + 2bba: 9343 ld.w r2, (r3, 0xc) + 2bbc: 6884 and r2, r1 + 2bbe: 3a40 cmpnei r2, 0 + 2bc0: 0bfd bt 0x2bba // 2bba + 2bc2: 07b8 br 0x2b32 // 2b32 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 2bc4: 9343 ld.w r2, (r3, 0xc) + 2bc6: 6884 and r2, r1 + 2bc8: 3a40 cmpnei r2, 0 + 2bca: 0bb4 bt 0x2b32 // 2b32 + SPI0->DR=0x0; //FIFO=0 + 2bcc: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bce: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 2bd0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2bd2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2bd4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2bd6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2bd8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2bda: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2bdc: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bde: 9343 ld.w r2, (r3, 0xc) + 2be0: 6884 and r2, r1 + 2be2: 3a40 cmpnei r2, 0 + 2be4: 0bfd bt 0x2bde // 2bde + 2be6: 07a6 br 0x2b32 // 2b32 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 2be8: 9347 ld.w r2, (r3, 0x1c) + 2bea: 3108 movi r1, 8 + 2bec: 6884 and r2, r1 + 2bee: 3a40 cmpnei r2, 0 + 2bf0: 0b99 bt 0x2b22 // 2b22 + 2bf2: 07a0 br 0x2b32 // 2b32 + 2bf4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00002bf8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 2bf8: 1460 nie + 2bfa: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 2bfc: 1073 lrw r3, 0x2000002c // 2c48 + 2bfe: 3104 movi r1, 4 + 2c00: 9360 ld.w r3, (r3, 0x0) + 2c02: 9349 ld.w r2, (r3, 0x24) + 2c04: 6884 and r2, r1 + 2c06: 3a40 cmpnei r2, 0 + 2c08: 0c02 bf 0x2c0c // 2c0c + { + SIO0->ICR=0X04; + 2c0a: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 2c0c: 9349 ld.w r2, (r3, 0x24) + 2c0e: 3101 movi r1, 1 + 2c10: 6884 and r2, r1 + 2c12: 3a40 cmpnei r2, 0 + 2c14: 0c02 bf 0x2c18 // 2c18 + { + SIO0->ICR=0X01; + 2c16: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 2c18: 9349 ld.w r2, (r3, 0x24) + 2c1a: 3102 movi r1, 2 + 2c1c: 6884 and r2, r1 + 2c1e: 3a40 cmpnei r2, 0 + 2c20: 0c03 bf 0x2c26 // 2c26 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 2c22: b32b st.w r1, (r3, 0x2c) + } +} + 2c24: 0410 br 0x2c44 // 2c44 + else if(SIO0->MISR&0X08) //RXBUFFULL + 2c26: 9349 ld.w r2, (r3, 0x24) + 2c28: 3108 movi r1, 8 + 2c2a: 6884 and r2, r1 + 2c2c: 3a40 cmpnei r2, 0 + 2c2e: 0bfa bt 0x2c22 // 2c22 + else if(SIO0->MISR&0X010) //BREAK + 2c30: 9349 ld.w r2, (r3, 0x24) + 2c32: 3110 movi r1, 16 + 2c34: 6884 and r2, r1 + 2c36: 3a40 cmpnei r2, 0 + 2c38: 0bf5 bt 0x2c22 // 2c22 + else if(SIO0->MISR&0X020) //TIMEOUT + 2c3a: 9349 ld.w r2, (r3, 0x24) + 2c3c: 3120 movi r1, 32 + 2c3e: 6884 and r2, r1 + 2c40: 3a40 cmpnei r2, 0 + 2c42: 0bf0 bt 0x2c22 // 2c22 +} + 2c44: 1463 ipop + 2c46: 1461 nir + 2c48: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00002c4c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 2c4c: 1460 nie + 2c4e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 2c50: 106a lrw r3, 0x2000005c // 2c78 + 2c52: 3101 movi r1, 1 + 2c54: 9360 ld.w r3, (r3, 0x0) + 2c56: 237f addi r3, 128 + 2c58: 934c ld.w r2, (r3, 0x30) + 2c5a: 6884 and r2, r1 + 2c5c: 3a40 cmpnei r2, 0 + 2c5e: 0c04 bf 0x2c66 // 2c66 + { + SYSCON->EXICR = EXI_PIN0; + 2c60: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 2c62: 1463 ipop + 2c64: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 2c66: 3280 movi r2, 128 + 2c68: 932c ld.w r1, (r3, 0x30) + 2c6a: 4249 lsli r2, r2, 9 + 2c6c: 6848 and r1, r2 + 2c6e: 3940 cmpnei r1, 0 + 2c70: 0ff9 bf 0x2c62 // 2c62 + SYSCON->EXICR = EXI_PIN16; + 2c72: b34b st.w r2, (r3, 0x2c) +} + 2c74: 07f7 br 0x2c62 // 2c62 + 2c76: 0000 bkpt + 2c78: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00002c7c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 2c7c: 1460 nie + 2c7e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 2c80: 106a lrw r3, 0x2000005c // 2ca8 + 2c82: 3102 movi r1, 2 + 2c84: 9360 ld.w r3, (r3, 0x0) + 2c86: 237f addi r3, 128 + 2c88: 934c ld.w r2, (r3, 0x30) + 2c8a: 6884 and r2, r1 + 2c8c: 3a40 cmpnei r2, 0 + 2c8e: 0c04 bf 0x2c96 // 2c96 + { + SYSCON->EXICR = EXI_PIN1; + 2c90: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 2c92: 1463 ipop + 2c94: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 2c96: 3280 movi r2, 128 + 2c98: 932c ld.w r1, (r3, 0x30) + 2c9a: 424a lsli r2, r2, 10 + 2c9c: 6848 and r1, r2 + 2c9e: 3940 cmpnei r1, 0 + 2ca0: 0ff9 bf 0x2c92 // 2c92 + SYSCON->EXICR = EXI_PIN17; + 2ca2: b34b st.w r2, (r3, 0x2c) +} + 2ca4: 07f7 br 0x2c92 // 2c92 + 2ca6: 0000 bkpt + 2ca8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00002cac : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 2cac: 1460 nie + 2cae: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 2cb0: 1070 lrw r3, 0x2000005c // 2cf0 + 2cb2: 3104 movi r1, 4 + 2cb4: 9360 ld.w r3, (r3, 0x0) + 2cb6: 237f addi r3, 128 + 2cb8: 934c ld.w r2, (r3, 0x30) + 2cba: 6884 and r2, r1 + 2cbc: 3a40 cmpnei r2, 0 + 2cbe: 0c04 bf 0x2cc6 // 2cc6 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 2cc0: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 2cc2: 1463 ipop + 2cc4: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 2cc6: 934c ld.w r2, (r3, 0x30) + 2cc8: 3108 movi r1, 8 + 2cca: 6884 and r2, r1 + 2ccc: 3a40 cmpnei r2, 0 + 2cce: 0bf9 bt 0x2cc0 // 2cc0 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 2cd0: 3280 movi r2, 128 + 2cd2: 932c ld.w r1, (r3, 0x30) + 2cd4: 424b lsli r2, r2, 11 + 2cd6: 6848 and r1, r2 + 2cd8: 3940 cmpnei r1, 0 + 2cda: 0c03 bf 0x2ce0 // 2ce0 + SYSCON->EXICR = EXI_PIN19; + 2cdc: b34b st.w r2, (r3, 0x2c) +} + 2cde: 07f2 br 0x2cc2 // 2cc2 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 2ce0: 3280 movi r2, 128 + 2ce2: 932c ld.w r1, (r3, 0x30) + 2ce4: 424c lsli r2, r2, 12 + 2ce6: 6848 and r1, r2 + 2ce8: 3940 cmpnei r1, 0 + 2cea: 0bf9 bt 0x2cdc // 2cdc + 2cec: 07eb br 0x2cc2 // 2cc2 + 2cee: 0000 bkpt + 2cf0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00002cf4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 2cf4: 1460 nie + 2cf6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 2cf8: 1075 lrw r3, 0x2000005c // 2d4c + 2cfa: 3280 movi r2, 128 + 2cfc: 9360 ld.w r3, (r3, 0x0) + 2cfe: 60c8 addu r3, r2 + 2d00: 932c ld.w r1, (r3, 0x30) + 2d02: 3010 movi r0, 16 + 2d04: 6840 and r1, r0 + 2d06: 3940 cmpnei r1, 0 + 2d08: 0c04 bf 0x2d10 // 2d10 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 2d0a: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 2d0c: 1463 ipop + 2d0e: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 2d10: 932c ld.w r1, (r3, 0x30) + 2d12: 3020 movi r0, 32 + 2d14: 6840 and r1, r0 + 2d16: 3940 cmpnei r1, 0 + 2d18: 0bf9 bt 0x2d0a // 2d0a + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 2d1a: 932c ld.w r1, (r3, 0x30) + 2d1c: 3040 movi r0, 64 + 2d1e: 6840 and r1, r0 + 2d20: 3940 cmpnei r1, 0 + 2d22: 0bf4 bt 0x2d0a // 2d0a + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 2d24: 932c ld.w r1, (r3, 0x30) + 2d26: 6848 and r1, r2 + 2d28: 3940 cmpnei r1, 0 + 2d2a: 0c03 bf 0x2d30 // 2d30 + SYSCON->EXICR = EXI_PIN9; + 2d2c: b34b st.w r2, (r3, 0x2c) +} + 2d2e: 07ef br 0x2d0c // 2d0c + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 2d30: 3280 movi r2, 128 + 2d32: 932c ld.w r1, (r3, 0x30) + 2d34: 4241 lsli r2, r2, 1 + 2d36: 6848 and r1, r2 + 2d38: 3940 cmpnei r1, 0 + 2d3a: 0bf9 bt 0x2d2c // 2d2c + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 2d3c: 3280 movi r2, 128 + 2d3e: 932c ld.w r1, (r3, 0x30) + 2d40: 4242 lsli r2, r2, 2 + 2d42: 6848 and r1, r2 + 2d44: 3940 cmpnei r1, 0 + 2d46: 0bf3 bt 0x2d2c // 2d2c + 2d48: 07e2 br 0x2d0c // 2d0c + 2d4a: 0000 bkpt + 2d4c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00002d50 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 2d50: 1460 nie + 2d52: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 2d54: 1076 lrw r3, 0x2000005c // 2dac + 2d56: 3280 movi r2, 128 + 2d58: 9360 ld.w r3, (r3, 0x0) + 2d5a: 237f addi r3, 128 + 2d5c: 932c ld.w r1, (r3, 0x30) + 2d5e: 4243 lsli r2, r2, 3 + 2d60: 6848 and r1, r2 + 2d62: 3940 cmpnei r1, 0 + 2d64: 0c03 bf 0x2d6a // 2d6a + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 2d66: b34b st.w r2, (r3, 0x2c) + } +} + 2d68: 041f br 0x2da6 // 2da6 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 2d6a: 3280 movi r2, 128 + 2d6c: 932c ld.w r1, (r3, 0x30) + 2d6e: 4244 lsli r2, r2, 4 + 2d70: 6848 and r1, r2 + 2d72: 3940 cmpnei r1, 0 + 2d74: 0bf9 bt 0x2d66 // 2d66 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 2d76: 3280 movi r2, 128 + 2d78: 932c ld.w r1, (r3, 0x30) + 2d7a: 4245 lsli r2, r2, 5 + 2d7c: 6848 and r1, r2 + 2d7e: 3940 cmpnei r1, 0 + 2d80: 0bf3 bt 0x2d66 // 2d66 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 2d82: 3280 movi r2, 128 + 2d84: 932c ld.w r1, (r3, 0x30) + 2d86: 4246 lsli r2, r2, 6 + 2d88: 6848 and r1, r2 + 2d8a: 3940 cmpnei r1, 0 + 2d8c: 0bed bt 0x2d66 // 2d66 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 2d8e: 3280 movi r2, 128 + 2d90: 932c ld.w r1, (r3, 0x30) + 2d92: 4247 lsli r2, r2, 7 + 2d94: 6848 and r1, r2 + 2d96: 3940 cmpnei r1, 0 + 2d98: 0be7 bt 0x2d66 // 2d66 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 2d9a: 3280 movi r2, 128 + 2d9c: 932c ld.w r1, (r3, 0x30) + 2d9e: 4248 lsli r2, r2, 8 + 2da0: 6848 and r1, r2 + 2da2: 3940 cmpnei r1, 0 + 2da4: 0be1 bt 0x2d66 // 2d66 +} + 2da6: 1463 ipop + 2da8: 1461 nir + 2daa: 0000 bkpt + 2dac: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00002db0 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 2db0: 1460 nie + 2db2: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 2db4: 106b lrw r3, 0x20000014 // 2de0 + 2db6: 3101 movi r1, 1 + 2db8: 9360 ld.w r3, (r3, 0x0) + 2dba: 934e ld.w r2, (r3, 0x38) + 2dbc: 6884 and r2, r1 + 2dbe: 3a40 cmpnei r2, 0 + 2dc0: 0c03 bf 0x2dc6 // 2dc6 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 2dc2: b330 st.w r1, (r3, 0x40) + } +} + 2dc4: 040b br 0x2dda // 2dda + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 2dc6: 934e ld.w r2, (r3, 0x38) + 2dc8: 3102 movi r1, 2 + 2dca: 6884 and r2, r1 + 2dcc: 3a40 cmpnei r2, 0 + 2dce: 0bfa bt 0x2dc2 // 2dc2 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 2dd0: 934e ld.w r2, (r3, 0x38) + 2dd2: 3104 movi r1, 4 + 2dd4: 6884 and r2, r1 + 2dd6: 3a40 cmpnei r2, 0 + 2dd8: 0bf5 bt 0x2dc2 // 2dc2 +} + 2dda: 1463 ipop + 2ddc: 1461 nir + 2dde: 0000 bkpt + 2de0: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00002de4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 2de4: 1460 nie + 2de6: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 2de8: 1071 lrw r3, 0x2000000c // 2e2c + 2dea: 3101 movi r1, 1 + 2dec: 9360 ld.w r3, (r3, 0x0) + 2dee: 934c ld.w r2, (r3, 0x30) + 2df0: 6884 and r2, r1 + 2df2: 3a40 cmpnei r2, 0 + 2df4: 0c0a bf 0x2e08 // 2e08 + { + BT0->ICR = BT_PEND; + 2df6: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 2df8: 9341 ld.w r2, (r3, 0x4) + 2dfa: 3a86 bclri r2, 6 + 2dfc: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 2dfe: 9340 ld.w r2, (r3, 0x0) + 2e00: 3200 movi r2, 0 + 2e02: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 2e04: 1463 ipop + 2e06: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 2e08: 934c ld.w r2, (r3, 0x30) + 2e0a: 3102 movi r1, 2 + 2e0c: 6884 and r2, r1 + 2e0e: 3a40 cmpnei r2, 0 + 2e10: 0c03 bf 0x2e16 // 2e16 + BT0->ICR = BT_EVTRG; + 2e12: b32d st.w r1, (r3, 0x34) +} + 2e14: 07f8 br 0x2e04 // 2e04 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 2e16: 934c ld.w r2, (r3, 0x30) + 2e18: 3104 movi r1, 4 + 2e1a: 6884 and r2, r1 + 2e1c: 3a40 cmpnei r2, 0 + 2e1e: 0bfa bt 0x2e12 // 2e12 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 2e20: 934c ld.w r2, (r3, 0x30) + 2e22: 3108 movi r1, 8 + 2e24: 6884 and r2, r1 + 2e26: 3a40 cmpnei r2, 0 + 2e28: 0bf5 bt 0x2e12 // 2e12 + 2e2a: 07ed br 0x2e04 // 2e04 + 2e2c: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00002e30 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 2e30: 1460 nie + 2e32: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 2e34: 1076 lrw r3, 0x20000008 // 2e8c + 2e36: 3101 movi r1, 1 + 2e38: 9360 ld.w r3, (r3, 0x0) + 2e3a: 934c ld.w r2, (r3, 0x30) + 2e3c: 6884 and r2, r1 + 2e3e: 3a40 cmpnei r2, 0 + 2e40: 0c03 bf 0x2e46 // 2e46 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 2e42: b32d st.w r1, (r3, 0x34) + } +} + 2e44: 0416 br 0x2e70 // 2e70 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 2e46: 934c ld.w r2, (r3, 0x30) + 2e48: 3102 movi r1, 2 + 2e4a: 6884 and r2, r1 + 2e4c: 3a40 cmpnei r2, 0 + 2e4e: 0c13 bf 0x2e74 // 2e74 + BT1->ICR = BT_CMP; + 2e50: b32d st.w r1, (r3, 0x34) + NUM++; + 2e52: 1070 lrw r3, 0x200000a0 // 2e90 + 2e54: 8340 ld.b r2, (r3, 0x0) + 2e56: 2200 addi r2, 1 + 2e58: 7488 zextb r2, r2 + SysTick_100us++; + 2e5a: 9321 ld.w r1, (r3, 0x4) + 2e5c: 2100 addi r1, 1 + if(NUM >= 10){ + 2e5e: 3a09 cmphsi r2, 10 + NUM++; + 2e60: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 2e62: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 2e64: 0c06 bf 0x2e70 // 2e70 + NUM = 0; + 2e66: 3200 movi r2, 0 + 2e68: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 2e6a: 9342 ld.w r2, (r3, 0x8) + 2e6c: 2200 addi r2, 1 + 2e6e: b342 st.w r2, (r3, 0x8) +} + 2e70: 1463 ipop + 2e72: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 2e74: 934c ld.w r2, (r3, 0x30) + 2e76: 3104 movi r1, 4 + 2e78: 6884 and r2, r1 + 2e7a: 3a40 cmpnei r2, 0 + 2e7c: 0be3 bt 0x2e42 // 2e42 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 2e7e: 934c ld.w r2, (r3, 0x30) + 2e80: 3108 movi r1, 8 + 2e82: 6884 and r2, r1 + 2e84: 3a40 cmpnei r2, 0 + 2e86: 0bde bt 0x2e42 // 2e42 + 2e88: 07f4 br 0x2e70 // 2e70 + 2e8a: 0000 bkpt + 2e8c: 20000008 .long 0x20000008 + 2e90: 200000a0 .long 0x200000a0 + +Disassembly of section .text.PriviledgeVioHandler: + +00002e94 : + 2e94: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00002e96 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 2e96: 1460 nie + 2e98: 1462 ipush + // ISR content ... + +} + 2e9a: 1463 ipop + 2e9c: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00002e9e : + 2e9e: 1460 nie + 2ea0: 1462 ipush + 2ea2: 1463 ipop + 2ea4: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00002ea6 : + 2ea6: 1460 nie + 2ea8: 1462 ipush + 2eaa: 1463 ipop + 2eac: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00002eae : + 2eae: 1460 nie + 2eb0: 1462 ipush + 2eb2: 1463 ipop + 2eb4: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00002eb6 : + 2eb6: 1460 nie + 2eb8: 1462 ipush + 2eba: 1463 ipop + 2ebc: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00002ebe : + 2ebe: 1460 nie + 2ec0: 1462 ipush + 2ec2: 1463 ipop + 2ec4: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00002ec6 : + 2ec6: 1460 nie + 2ec8: 1462 ipush + 2eca: 1463 ipop + 2ecc: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00002ece : + 2ece: 1460 nie + 2ed0: 1462 ipush + 2ed2: 1463 ipop + 2ed4: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00002ed6 : + 2ed6: 1460 nie + 2ed8: 1462 ipush + 2eda: 1463 ipop + 2edc: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00002ede : + 2ede: 1460 nie + 2ee0: 1462 ipush + 2ee2: 1463 ipop + 2ee4: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00002ee6 : + 2ee6: 1460 nie + 2ee8: 1462 ipush + 2eea: 1463 ipop + 2eec: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00002eee : + 2eee: 1460 nie + 2ef0: 1462 ipush + 2ef2: 1463 ipop + 2ef4: 1461 nir + +Disassembly of section .text.__divsi3: + +00002ef8 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 2ef8: 14c1 push r4 + int PSR; + __asm volatile( + 2efa: c0006023 mfcr r3, cr<0, 0> + 2efe: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 2f02: 1046 lrw r2, 0x20000000 // 2f18 <__divsi3+0x20> + 2f04: 3400 movi r4, 0 + 2f06: 9240 ld.w r2, (r2, 0x0) + 2f08: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 2f0a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 2f0c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 2f0e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 2f10: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 2f14: 9202 ld.w r0, (r2, 0x8) +} + 2f16: 1481 pop r4 + 2f18: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00002f1c <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 2f1c: 14c1 push r4 + int PSR; + __asm volatile( + 2f1e: c0006023 mfcr r3, cr<0, 0> + 2f22: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 2f26: 1046 lrw r2, 0x20000000 // 2f3c <__udivsi3+0x20> + 2f28: 3401 movi r4, 1 + 2f2a: 9240 ld.w r2, (r2, 0x0) + 2f2c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 2f2e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 2f30: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 2f32: b221 st.w r1, (r2, 0x4) + __asm volatile( + 2f34: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 2f38: 9202 ld.w r0, (r2, 0x8) +} + 2f3a: 1481 pop r4 + 2f3c: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00002f40 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 2f40: c1807420 psrset ee, ie +} + 2f44: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00002f48 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 2f48: 14d1 push r4, r15 + switch(uart_id){ + 2f4a: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 2f4c: 6d07 mov r4, r1 + switch(uart_id){ + 2f4e: 0c1a bf 0x2f82 // 2f82 + 2f50: 3840 cmpnei r0, 0 + 2f52: 0c04 bf 0x2f5a // 2f5a + 2f54: 3842 cmpnei r0, 2 + 2f56: 0c2a bf 0x2faa // 2faa + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 2f58: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 2f5a: e3fff90f bsr 0x2178 // 2178 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 2f5e: 118a lrw r4, 0x20000040 // 3004 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 2f60: 3100 movi r1, 0 + 2f62: 3000 movi r0, 0 + 2f64: e3fff94a bsr 0x21f8 // 21f8 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 2f68: 9400 ld.w r0, (r4, 0x0) + 2f6a: 3200 movi r2, 0 + 2f6c: 1127 lrw r1, 0x2710 // 3008 + 2f6e: e3fff9bb bsr 0x22e4 // 22e4 + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 2f72: 9400 ld.w r0, (r4, 0x0) + 2f74: 3200 movi r2, 0 + 2f76: 1125 lrw r1, 0x2710 // 3008 + 2f78: e3fff9be bsr 0x22f4 // 22f4 + UART0_Int_Enable(); + 2f7c: e3fff922 bsr 0x21c0 // 21c0 + break; + 2f80: 07ec br 0x2f58 // 2f58 + UART1_DeInit(); //clear all UART Register + 2f82: e3fff907 bsr 0x2190 // 2190 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 2f86: 3102 movi r1, 2 + 2f88: 3001 movi r0, 1 + 2f8a: e3fff937 bsr 0x21f8 // 21f8 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 2f8e: 1180 lrw r4, 0x2000003c // 300c + 2f90: 31d0 movi r1, 208 + 2f92: 9400 ld.w r0, (r4, 0x0) + 2f94: 3200 movi r2, 0 + 2f96: 4121 lsli r1, r1, 1 + 2f98: e3fff9a6 bsr 0x22e4 // 22e4 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 2f9c: 31d0 movi r1, 208 + 2f9e: 9400 ld.w r0, (r4, 0x0) + 2fa0: 3200 movi r2, 0 + 2fa2: 4121 lsli r1, r1, 1 + 2fa4: e3fff9a8 bsr 0x22f4 // 22f4 + break; + 2fa8: 07d8 br 0x2f58 // 2f58 + UART2_DeInit(); //clear all UART Register + 2faa: e3fff8ff bsr 0x21a8 // 21a8 + UART_IO_Init(IO_UART2,0); //use PA0.13->RXD1, PB0.0->TXD1 + 2fae: 3100 movi r1, 0 + 2fb0: 3002 movi r0, 2 + 2fb2: e3fff923 bsr 0x21f8 // 21f8 + UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 2fb6: 1077 lrw r3, 0x20000038 // 3010 + 2fb8: 31d0 movi r1, 208 + 2fba: 9300 ld.w r0, (r3, 0x0) + 2fbc: 3200 movi r2, 0 + 2fbe: 4121 lsli r1, r1, 1 + 2fc0: e3fff99a bsr 0x22f4 // 22f4 + UART2_Int_Enable(); + 2fc4: e3fff90c bsr 0x21dc // 21dc + memset(&g_uart,0,sizeof(UART_t)); + 2fc8: 3273 movi r2, 115 + 2fca: 3100 movi r1, 0 + 2fcc: 1012 lrw r0, 0x20000184 // 3014 + 2fce: e3fff4cb bsr 0x1964 // 1964 <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 2fd2: 1072 lrw r3, 0x200001eb // 3018 + 2fd4: 3203 movi r2, 3 + 2fd6: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 2fd8: 4c48 lsri r2, r4, 8 + 2fda: a388 st.b r4, (r3, 0x8) + 2fdc: a349 st.b r2, (r3, 0x9) + 2fde: 4c50 lsri r2, r4, 16 + 2fe0: 4c98 lsri r4, r4, 24 + 2fe2: a38b st.b r4, (r3, 0xb) + 2fe4: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 2fe6: 3103 movi r1, 3 + 2fe8: 108d lrw r4, 0x20000048 // 301c + 2fea: 3200 movi r2, 0 + 2fec: 9400 ld.w r0, (r4, 0x0) + 2fee: e3fff6cd bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOB0,3); + 2ff2: 9400 ld.w r0, (r4, 0x0) + 2ff4: 3103 movi r1, 3 + 2ff6: e3fff743 bsr 0x1e7c // 1e7c + GPIO_Write_Low(GPIOB0,3); + 2ffa: 9400 ld.w r0, (r4, 0x0) + 2ffc: 3103 movi r1, 3 + 2ffe: e3fff74a bsr 0x1e92 // 1e92 +} + 3002: 07ab br 0x2f58 // 2f58 + 3004: 20000040 .long 0x20000040 + 3008: 00002710 .long 0x00002710 + 300c: 2000003c .long 0x2000003c + 3010: 20000038 .long 0x20000038 + 3014: 20000184 .long 0x20000184 + 3018: 200001eb .long 0x200001eb + 301c: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003020 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3020: 14c2 push r4-r5 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 3022: 1075 lrw r3, 0x200001e4 // 3074 + 3024: 8346 ld.b r2, (r3, 0x6) + 3026: 8325 ld.b r1, (r3, 0x5) + 3028: 4248 lsli r2, r2, 8 + 302a: 6c84 or r2, r1 + 302c: 3162 movi r1, 98 + 302e: 10b3 lrw r5, 0x20000184 // 3078 + 3030: 3440 movi r4, 64 + 3032: 6485 cmplt r1, r2 + 3034: 6114 addu r4, r5 + 3036: 0c06 bf 0x3042 // 3042 + 3038: 3225 movi r2, 37 + 303a: 6090 addu r2, r4 + 303c: 3100 movi r1, 0 + 303e: a220 st.b r1, (r2, 0x0) + 3040: a221 st.b r1, (r2, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 3042: 8346 ld.b r2, (r3, 0x6) + 3044: 8325 ld.b r1, (r3, 0x5) + 3046: 4248 lsli r2, r2, 8 + 3048: 6c84 or r2, r1 + 304a: 5a22 addi r1, r2, 1 + 304c: 6094 addu r2, r5 + 304e: a200 st.b r0, (r2, 0x0) + 3050: 2424 addi r4, 37 + 3052: 7445 zexth r1, r1 + + g_uart.RecvIdleTiming = SysTick_1ms; + 3054: 104a lrw r2, 0x200000a8 // 307c + 3056: 9240 ld.w r2, (r2, 0x0) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 3058: a420 st.b r1, (r4, 0x0) + 305a: 4928 lsri r1, r1, 8 + g_uart.RecvIdleTiming = SysTick_1ms; + 305c: 4a08 lsri r0, r2, 8 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 305e: a421 st.b r1, (r4, 0x1) + g_uart.RecvIdleTiming = SysTick_1ms; + 3060: 1028 lrw r1, 0x200001ef // 3080 + 3062: a140 st.b r2, (r1, 0x0) + 3064: a101 st.b r0, (r1, 0x1) + 3066: 4a10 lsri r0, r2, 16 + 3068: 4a58 lsri r2, r2, 24 + 306a: a143 st.b r2, (r1, 0x3) + g_uart.Receiving = 0x01; + 306c: 3201 movi r2, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 306e: a102 st.b r0, (r1, 0x2) + g_uart.Receiving = 0x01; + 3070: a344 st.b r2, (r3, 0x4) +} + 3072: 1482 pop r4-r5 + 3074: 200001e4 .long 0x200001e4 + 3078: 20000184 .long 0x20000184 + 307c: 200000a8 .long 0x200000a8 + 3080: 200001ef .long 0x200001ef + +Disassembly of section .text.Dbg_Println: + +00003084 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3084: 1423 subi r14, r14, 12 + 3086: b862 st.w r3, (r14, 0x8) + 3088: b841 st.w r2, (r14, 0x4) + 308a: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 308c: 1403 addi r14, r14, 12 + 308e: 783c jmp r15 + +Disassembly of section .text.RC522_Delay: + +00003090 : + * @brief 延时函数,纳秒级 + * @param ns 延时时间 + */ +void RC522_Delay(U32_T ns){ + U32_T i; + for (i = 0; i < ns; i++) { + 3090: 3300 movi r3, 0 + 3092: 640e cmpne r3, r0 + 3094: 0802 bt 0x3098 // 3098 + nop; + //延时一个机器周期 + nop; + nop; + } +} + 3096: 783c jmp r15 + nop; + 3098: 6c03 mov r0, r0 + nop; + 309a: 6c03 mov r0, r0 + nop; + 309c: 6c03 mov r0, r0 + for (i = 0; i < ns; i++) { + 309e: 2300 addi r3, 1 + 30a0: 07f9 br 0x3092 // 3092 + +Disassembly of section .text.RC522_ReadWriteOneByte: + +000030a4 : + * @brief 移植接口——SPI读写一个字节 + * @param tx_data:要写入的数据 + * @return 读取的数据 + */ +U8_T RC522_ReadWriteOneByte(U8_T tx_data) +{ + 30a4: 14d4 push r4-r7, r15 + 30a6: 6d83 mov r6, r0 + 30a8: 3508 movi r5, 8 +// delay_nus(1); +// rx_data = SPI0->DR; +// +// return (U8_T)(rx_data & 0xFF); + + U8_T rx_data=0; + 30aa: 3400 movi r4, 0 + U8_T i; + for(i=0;i<8;i++) + { + RC522_SCK_LOW; + 30ac: 10f2 lrw r7, 0x2000004c // 30f4 + 30ae: 3109 movi r1, 9 + 30b0: 9700 ld.w r0, (r7, 0x0) + 30b2: e3fff6f0 bsr 0x1e92 // 1e92 + if(tx_data&0x80) RC522_MOSI_HIGH; + 30b6: 74da sextb r3, r6 + 30b8: 3bdf btsti r3, 31 + 30ba: 310a movi r1, 10 + 30bc: 9700 ld.w r0, (r7, 0x0) + 30be: 0c18 bf 0x30ee // 30ee + 30c0: e3fff6e5 bsr 0x1e8a // 1e8a + else RC522_MOSI_LOW; + tx_data<<=1; + RC522_SCK_HIGH; + 30c4: 3109 movi r1, 9 + 30c6: 9700 ld.w r0, (r7, 0x0) + 30c8: e3fff6e1 bsr 0x1e8a // 1e8a + rx_data<<=1; + if(RC522_MISO_Read) rx_data|=0x01; + 30cc: 310b movi r1, 11 + 30ce: 9700 ld.w r0, (r7, 0x0) + 30d0: e3fff6e5 bsr 0x1e9a // 1e9a + tx_data<<=1; + 30d4: 46c1 lsli r6, r6, 1 + rx_data<<=1; + 30d6: 4481 lsli r4, r4, 1 + if(RC522_MISO_Read) rx_data|=0x01; + 30d8: 3840 cmpnei r0, 0 + tx_data<<=1; + 30da: 7598 zextb r6, r6 + rx_data<<=1; + 30dc: 7510 zextb r4, r4 + if(RC522_MISO_Read) rx_data|=0x01; + 30de: 0c02 bf 0x30e2 // 30e2 + 30e0: 3ca0 bseti r4, 0 + 30e2: 2d00 subi r5, 1 + 30e4: 7554 zextb r5, r5 + for(i=0;i<8;i++) + 30e6: 3d40 cmpnei r5, 0 + 30e8: 0be3 bt 0x30ae // 30ae + } + return rx_data; +} + 30ea: 6c13 mov r0, r4 + 30ec: 1494 pop r4-r7, r15 + else RC522_MOSI_LOW; + 30ee: e3fff6d2 bsr 0x1e92 // 1e92 + 30f2: 07e9 br 0x30c4 // 30c4 + 30f4: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_ReadRawRC: + +000030f8 : +{ + 30f8: 14d2 push r4-r5, r15 + RC522_CS_LOW; //片选选中RC522 + 30fa: 10ad lrw r5, 0x20000048 // 312c + 30fc: 3105 movi r1, 5 +{ + 30fe: 6d03 mov r4, r0 + RC522_CS_LOW; //片选选中RC522 + 3100: 9500 ld.w r0, (r5, 0x0) + 3102: e3fff6c8 bsr 0x1e92 // 1e92 + ucAddr=((Address<<1)&0x7E)|0x80; + 3106: 4401 lsli r0, r4, 1 + 3108: 347e movi r4, 126 + 310a: 6810 and r0, r4 + 310c: 3400 movi r4, 0 + 310e: 2c7f subi r4, 128 + 3110: 6c10 or r0, r4 + RC522_ReadWriteOneByte(ucAddr); //发送命令 + 3112: 7400 zextb r0, r0 + 3114: e3ffffc8 bsr 0x30a4 // 30a4 + ucResult=RC522_ReadWriteOneByte(0); //读取RC522返回的数据 + 3118: 3000 movi r0, 0 + 311a: e3ffffc5 bsr 0x30a4 // 30a4 + 311e: 6d03 mov r4, r0 + RC522_CS_HIGH; //释放片选线(PF0) + 3120: 3105 movi r1, 5 + 3122: 9500 ld.w r0, (r5, 0x0) + 3124: e3fff6b3 bsr 0x1e8a // 1e8a +} + 3128: 6c13 mov r0, r4 + 312a: 1492 pop r4-r5, r15 + 312c: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_WriteRawRC: + +00003130 : +{ + 3130: 14d3 push r4-r6, r15 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 3132: 10ab lrw r5, 0x20000048 // 315c +{ + 3134: 6d87 mov r6, r1 + 3136: 6d03 mov r4, r0 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 3138: 3105 movi r1, 5 + 313a: 9500 ld.w r0, (r5, 0x0) + 313c: e3fff6ab bsr 0x1e92 // 1e92 + ucAddr=((Address<<1)&0x7E); + 3140: 4481 lsli r4, r4, 1 + 3142: 307e movi r0, 126 + RC522_ReadWriteOneByte(ucAddr); //SPI1发送一个字节 + 3144: 6810 and r0, r4 + 3146: e3ffffaf bsr 0x30a4 // 30a4 + RC522_ReadWriteOneByte(value); //SPI1发送一个字节 + 314a: 6c1b mov r0, r6 + 314c: e3ffffac bsr 0x30a4 // 30a4 + RC522_CS_HIGH; //PF1写1(SDA)(SPI1片选线) + 3150: 9500 ld.w r0, (r5, 0x0) + 3152: 3105 movi r1, 5 + 3154: e3fff69b bsr 0x1e8a // 1e8a +} + 3158: 1493 pop r4-r6, r15 + 315a: 0000 bkpt + 315c: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_PcdReset: + +00003160 : +{ + 3160: 14d0 push r15 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 3162: 310f movi r1, 15 + 3164: 3001 movi r0, 1 + 3166: e3ffffe5 bsr 0x3130 // 3130 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 316a: 310f movi r1, 15 + 316c: 3001 movi r0, 1 + 316e: e3ffffe1 bsr 0x3130 // 3130 + RC522_Delay(10); + 3172: 300a movi r0, 10 + 3174: e3ffff8e bsr 0x3090 // 3090 + RC522_WriteRawRC(ModeReg,0x3D); //和Mifare卡通讯,CRC初始值0x6363 + 3178: 313d movi r1, 61 + 317a: 3011 movi r0, 17 + 317c: e3ffffda bsr 0x3130 // 3130 + RC522_WriteRawRC(TReloadRegL,30); //写RC632寄存器 + 3180: 311e movi r1, 30 + 3182: 302d movi r0, 45 + 3184: e3ffffd6 bsr 0x3130 // 3130 + RC522_WriteRawRC(TReloadRegH,0); + 3188: 3100 movi r1, 0 + 318a: 302c movi r0, 44 + 318c: e3ffffd2 bsr 0x3130 // 3130 + RC522_WriteRawRC(TModeReg,0x8D); + 3190: 318d movi r1, 141 + 3192: 302a movi r0, 42 + 3194: e3ffffce bsr 0x3130 // 3130 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 3198: 313e movi r1, 62 + 319a: 302b movi r0, 43 + 319c: e3ffffca bsr 0x3130 // 3130 + RC522_WriteRawRC(TxAutoReg,0x40);//必须要 + 31a0: 3140 movi r1, 64 + 31a2: 3015 movi r0, 21 + 31a4: e3ffffc6 bsr 0x3130 // 3130 +} + 31a8: 3000 movi r0, 0 + 31aa: 1490 pop r15 + +Disassembly of section .text.RC522_SetBitMask: + +000031ac : +{ + 31ac: 14d2 push r4-r5, r15 + 31ae: 6d47 mov r5, r1 + 31b0: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 31b2: e3ffffa3 bsr 0x30f8 // 30f8 + RC522_WriteRawRC(reg,tmp|mask); //写RC632寄存器 + 31b6: 6c43 mov r1, r0 + 31b8: 6c54 or r1, r5 + 31ba: 7444 zextb r1, r1 + 31bc: 6c13 mov r0, r4 + 31be: e3ffffb9 bsr 0x3130 // 3130 +} + 31c2: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOn: + +000031c4 : +{ + 31c4: 14d0 push r15 + i=RC522_ReadRawRC(TxControlReg); + 31c6: 3014 movi r0, 20 + 31c8: e3ffff98 bsr 0x30f8 // 30f8 + if(!(i&0x03)) + 31cc: 3303 movi r3, 3 + 31ce: 680c and r0, r3 + 31d0: 3840 cmpnei r0, 0 + 31d2: 0805 bt 0x31dc // 31dc + RC522_SetBitMask(TxControlReg,0x03); + 31d4: 3103 movi r1, 3 + 31d6: 3014 movi r0, 20 + 31d8: e3ffffea bsr 0x31ac // 31ac +} + 31dc: 1490 pop r15 + +Disassembly of section .text.RC522_ClearBitMask: + +000031de : +{ + 31de: 14d2 push r4-r5, r15 + 31e0: 6d47 mov r5, r1 + 31e2: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 31e4: e3ffff8a bsr 0x30f8 // 30f8 + RC522_WriteRawRC(reg,tmp&~mask); // clear bit mask + 31e8: 6815 andn r0, r5 + 31ea: 7440 zextb r1, r0 + 31ec: 6c13 mov r0, r4 + 31ee: e3ffffa1 bsr 0x3130 // 3130 +} + 31f2: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOff: + +000031f4 : +{ + 31f4: 14d0 push r15 + RC522_ClearBitMask(TxControlReg,0x03); //清RC522寄存器位 + 31f6: 3103 movi r1, 3 + 31f8: 3014 movi r0, 20 + 31fa: e3fffff2 bsr 0x31de // 31de +} + 31fe: 1490 pop r15 + +Disassembly of section .text.RC522_CalulateCRC: + +00003200 : +{ + 3200: 14d3 push r4-r6, r15 + 3202: 6d03 mov r4, r0 + 3204: 6d87 mov r6, r1 + RC522_ClearBitMask(DivIrqReg,0x04); //CRCIrq = 0 + 3206: 3005 movi r0, 5 + 3208: 3104 movi r1, 4 +{ + 320a: 6d4b mov r5, r2 + RC522_ClearBitMask(DivIrqReg,0x04); //CRCIrq = 0 + 320c: e3ffffe9 bsr 0x31de // 31de + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 3210: 3100 movi r1, 0 + 3212: 3001 movi r0, 1 + 3214: e3ffff8e bsr 0x3130 // 3130 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO指针 + 3218: 3180 movi r1, 128 + 321a: 300a movi r0, 10 + 321c: e3ffffc8 bsr 0x31ac // 31ac + 3220: 6190 addu r6, r4 + for(i=0;i + RC522_WriteRawRC(CommandReg,PCD_CALCCRC); //等待CRC计算完成 + 3226: 3103 movi r1, 3 + 3228: 3001 movi r0, 1 + 322a: e3ffff83 bsr 0x3130 // 3130 + 322e: 34ff movi r4, 255 + 3230: 2c00 subi r4, 1 + n=RC522_ReadRawRC(DivIrqReg); + 3232: 3005 movi r0, 5 + 3234: 7510 zextb r4, r4 + 3236: e3ffff61 bsr 0x30f8 // 30f8 + while((i!=0)&&!(n&0x04));//CRCIrq = 1 + 323a: 3c40 cmpnei r4, 0 + 323c: 0c06 bf 0x3248 // 3248 + 323e: 3304 movi r3, 4 + 3240: 680c and r0, r3 + 3242: 7400 zextb r0, r0 + 3244: 3840 cmpnei r0, 0 + 3246: 0ff5 bf 0x3230 // 3230 + pOut[0]=RC522_ReadRawRC(CRCResultRegL); + 3248: 3022 movi r0, 34 + 324a: e3ffff57 bsr 0x30f8 // 30f8 + 324e: a500 st.b r0, (r5, 0x0) + pOut[1]=RC522_ReadRawRC(CRCResultRegM); + 3250: 3021 movi r0, 33 + 3252: e3ffff53 bsr 0x30f8 // 30f8 + 3256: a501 st.b r0, (r5, 0x1) +} + 3258: 1493 pop r4-r6, r15 + RC522_WriteRawRC(FIFODataReg,*(pIn +i)); //开始RCR计算 + 325a: 8420 ld.b r1, (r4, 0x0) + 325c: 3009 movi r0, 9 + 325e: e3ffff69 bsr 0x3130 // 3130 + 3262: 2400 addi r4, 1 + 3264: 07df br 0x3222 // 3222 + +Disassembly of section .text.M500PcdConfigISOType.part.1: + +00003266 : +char M500PcdConfigISOType(U8_T type) + 3266: 14d0 push r15 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 3268: 3108 movi r1, 8 + 326a: 3008 movi r0, 8 + 326c: e3ffffb9 bsr 0x31de // 31de + RC522_WriteRawRC(ModeReg,0x3D); //3F//CRC初始值0x6363 + 3270: 313d movi r1, 61 + 3272: 3011 movi r0, 17 + 3274: e3ffff5e bsr 0x3130 // 3130 + RC522_WriteRawRC(RxSelReg,0x86); //84 + 3278: 3186 movi r1, 134 + 327a: 3017 movi r0, 23 + 327c: e3ffff5a bsr 0x3130 // 3130 + RC522_WriteRawRC(RFCfgReg,0x7F); //4F //调整卡的感应距离//RxGain = 48dB调节卡感应距离 + 3280: 317f movi r1, 127 + 3282: 3026 movi r0, 38 + 3284: e3ffff56 bsr 0x3130 // 3130 + RC522_WriteRawRC(TReloadRegL,30); //tmoLength);// TReloadVal = 'h6a =tmoLength(dec) + 3288: 311e movi r1, 30 + 328a: 302d movi r0, 45 + 328c: e3ffff52 bsr 0x3130 // 3130 + RC522_WriteRawRC(TReloadRegH,0); + 3290: 3100 movi r1, 0 + 3292: 302c movi r0, 44 + 3294: e3ffff4e bsr 0x3130 // 3130 + RC522_WriteRawRC(TModeReg,0x8D); + 3298: 318d movi r1, 141 + 329a: 302a movi r0, 42 + 329c: e3ffff4a bsr 0x3130 // 3130 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 32a0: 313e movi r1, 62 + 32a2: 302b movi r0, 43 + 32a4: e3ffff46 bsr 0x3130 // 3130 + RC522_Delay(1000); + 32a8: 30fa movi r0, 250 + 32aa: 4002 lsli r0, r0, 2 + 32ac: e3fffef2 bsr 0x3090 // 3090 + RC522_PcdAntennaOn(); //开启天线 + 32b0: e3ffff8a bsr 0x31c4 // 31c4 +} + 32b4: 3000 movi r0, 0 + 32b6: 1490 pop r15 + +Disassembly of section .text.RC522_Init: + +000032b8 : +{ + 32b8: 14d1 push r4, r15 + nop; + 32ba: 6c03 mov r0, r0 + GPIO_Init(GPIOA0,9,Output); //SCK + 32bc: 1184 lrw r4, 0x2000004c // 334c + 32be: 3200 movi r2, 0 + 32c0: 9400 ld.w r0, (r4, 0x0) + 32c2: 3109 movi r1, 9 + 32c4: e3fff562 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,10,Output); //MOSI + 32c8: 3200 movi r2, 0 + 32ca: 9400 ld.w r0, (r4, 0x0) + 32cc: 310a movi r1, 10 + 32ce: e3fff55d bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOA0,11); + 32d2: 9400 ld.w r0, (r4, 0x0) + 32d4: 310b movi r1, 11 + 32d6: e3fff5c9 bsr 0x1e68 // 1e68 + GPIO_Init(GPIOA0,11,Intput); //MISO + 32da: 9400 ld.w r0, (r4, 0x0) + 32dc: 3201 movi r2, 1 + GPIO_Init(GPIOB0,5,Output); //CS + 32de: 109d lrw r4, 0x20000048 // 3350 + GPIO_Init(GPIOA0,11,Intput); //MISO + 32e0: 310b movi r1, 11 + 32e2: e3fff553 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,5,Output); //CS + 32e6: 9400 ld.w r0, (r4, 0x0) + 32e8: 3200 movi r2, 0 + 32ea: 3105 movi r1, 5 + 32ec: e3fff54e bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,4,Output); //RST + 32f0: 9400 ld.w r0, (r4, 0x0) + 32f2: 3200 movi r2, 0 + 32f4: 3104 movi r1, 4 + 32f6: e3fff549 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,3,Intput); //IRQ + 32fa: 3201 movi r2, 1 + 32fc: 9400 ld.w r0, (r4, 0x0) + 32fe: 3103 movi r1, 3 + 3300: e3fff544 bsr 0x1d88 // 1d88 + GPIO_Write_High(GPIOB0,5); + 3304: 9400 ld.w r0, (r4, 0x0) + 3306: 3105 movi r1, 5 + 3308: e3fff5c1 bsr 0x1e8a // 1e8a + GPIO_Write_High(GPIOB0,4); + 330c: 3104 movi r1, 4 + 330e: 9400 ld.w r0, (r4, 0x0) + 3310: e3fff5bd bsr 0x1e8a // 1e8a + RC522_PcdReset(); //复位RC522 + 3314: e3ffff26 bsr 0x3160 // 3160 + RC522_PcdAntennaOff(); //关闭天线 + 3318: e3ffff6e bsr 0x31f4 // 31f4 + RC522_Delay(2); //延时2毫秒 + 331c: 3002 movi r0, 2 + 331e: e3fffeb9 bsr 0x3090 // 3090 + RC522_PcdAntennaOn(); //开启天线 + 3322: e3ffff51 bsr 0x31c4 // 31c4 + memset(&CardInfo,0x00,sizeof(CardInfo)); + 3326: 108c lrw r4, 0x200001f7 // 3354 + 3328: e3ffff9f bsr 0x3266 // 3266 + 332c: 3228 movi r2, 40 + 332e: 3100 movi r1, 0 + 3330: 6c13 mov r0, r4 + 3332: e3fff319 bsr 0x1964 // 1964 <__memset_fast> + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 3336: 3318 movi r3, 24 + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 3338: 6c13 mov r0, r4 + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 333a: a468 st.b r3, (r4, 0x8) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 333c: 3206 movi r2, 6 + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 333e: 3360 movi r3, 96 + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 3340: 31ff movi r1, 255 + 3342: 201f addi r0, 32 + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 3344: a47f st.b r3, (r4, 0x1f) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 3346: e3fff30f bsr 0x1964 // 1964 <__memset_fast> +} + 334a: 1491 pop r4, r15 + 334c: 2000004c .long 0x2000004c + 3350: 20000048 .long 0x20000048 + 3354: 200001f7 .long 0x200001f7 + +Disassembly of section .text.RC522_PcdComMF522: + +00003358 : +{ + 3358: 14d4 push r4-r7, r15 + 335a: 1424 subi r14, r14, 16 + 335c: b861 st.w r3, (r14, 0x4) + switch (Command) { + 335e: 384c cmpnei r0, 12 +{ + 3360: 9869 ld.w r3, (r14, 0x24) + 3362: 6d43 mov r5, r0 + 3364: 6dc7 mov r7, r1 + 3366: b860 st.w r3, (r14, 0x0) + switch (Command) { + 3368: 0c4c bf 0x3400 // 3400 + 336a: 384e cmpnei r0, 14 + 336c: 0c4d bf 0x3406 // 3406 + U8_T waitFor=0x00; + 336e: 3600 movi r6, 0 + U8_T irqEn=0x00; + 3370: 3400 movi r4, 0 + RC522_WriteRawRC(ComIEnReg,irqEn|0x80); + 3372: 6c53 mov r1, r4 + 3374: 39a7 bseti r1, 7 + 3376: 3002 movi r0, 2 + 3378: b842 st.w r2, (r14, 0x8) + 337a: e3fffedb bsr 0x3130 // 3130 + RC522_ClearBitMask(ComIrqReg,0x80); //清所有中断位 + 337e: 3180 movi r1, 128 + 3380: 3004 movi r0, 4 + 3382: e3ffff2e bsr 0x31de // 31de + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 3386: 3100 movi r1, 0 + 3388: 3001 movi r0, 1 + 338a: e3fffed3 bsr 0x3130 // 3130 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO缓存 + 338e: 3180 movi r1, 128 + 3390: 300a movi r0, 10 + 3392: e3ffff0d bsr 0x31ac // 31ac + for(i=0;i + RC522_WriteRawRC(CommandReg,Command); + 33a2: 6c57 mov r1, r5 + 33a4: 3001 movi r0, 1 + 33a6: e3fffec5 bsr 0x3130 // 3130 + if(Command==PCD_TRANSCEIVE) + 33aa: 3d4c cmpnei r5, 12 + 33ac: 0805 bt 0x33b6 // 33b6 + RC522_SetBitMask(BitFramingReg,0x80); //开始传送 + 33ae: 3180 movi r1, 128 + 33b0: 300d movi r0, 13 + 33b2: e3fffefd bsr 0x31ac // 31ac + for(i=0;i + i--; + 33c4: 9862 ld.w r3, (r14, 0x8) + 33c6: 2b00 subi r3, 1 + 33c8: 74cd zexth r3, r3 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 33ca: 3b40 cmpnei r3, 0 + n=RC522_ReadRawRC(ComIrqReg); + 33cc: 6dc3 mov r7, r0 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 33ce: 0c05 bf 0x33d8 // 33d8 + 33d0: 6c83 mov r2, r0 + 33d2: 6898 and r2, r6 + 33d4: 3a40 cmpnei r2, 0 + 33d6: 0ff3 bf 0x33bc // 33bc + RC522_ClearBitMask(BitFramingReg,0x80); + 33d8: 3180 movi r1, 128 + 33da: 300d movi r0, 13 + 33dc: b862 st.w r3, (r14, 0x8) + 33de: e3ffff00 bsr 0x31de // 31de + if(i!=0) + 33e2: 9862 ld.w r3, (r14, 0x8) + 33e4: 3b40 cmpnei r3, 0 + 33e6: 081f bt 0x3424 // 3424 + char stats=MI_ERR; + 33e8: 3702 movi r7, 2 + RC522_SetBitMask(ControlReg,0x80);// stop timer now + 33ea: 3180 movi r1, 128 + 33ec: 300c movi r0, 12 + 33ee: e3fffedf bsr 0x31ac // 31ac + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 33f2: 3100 movi r1, 0 + 33f4: 3001 movi r0, 1 + 33f6: e3fffe9d bsr 0x3130 // 3130 +} + 33fa: 6c1f mov r0, r7 + 33fc: 1404 addi r14, r14, 16 + 33fe: 1494 pop r4-r7, r15 + waitFor = 0x30; + 3400: 3630 movi r6, 48 + irqEn = 0x77; + 3402: 3477 movi r4, 119 + break; + 3404: 07b7 br 0x3372 // 3372 + waitFor = 0x10; + 3406: 3610 movi r6, 16 + irqEn = 0x12; + 3408: 3412 movi r4, 18 + 340a: 07b4 br 0x3372 // 3372 + RC522_WriteRawRC(FIFODataReg,pIn[i]); + 340c: 8320 ld.b r1, (r3, 0x0) + 340e: 3009 movi r0, 9 + 3410: b843 st.w r2, (r14, 0xc) + 3412: b862 st.w r3, (r14, 0x8) + for(i=0;i + 341a: 9862 ld.w r3, (r14, 0x8) + for(i=0;i + if(!(RC522_ReadRawRC(ErrorReg)&0x1B)) + 3424: 3006 movi r0, 6 + 3426: e3fffe69 bsr 0x30f8 // 30f8 + 342a: 331b movi r3, 27 + 342c: 680c and r0, r3 + 342e: 3840 cmpnei r0, 0 + 3430: 0bdc bt 0x33e8 // 33e8 + stats=MI_OK; + 3432: 3301 movi r3, 1 + 3434: 690c and r4, r3 + if(Command==PCD_TRANSCEIVE) + 3436: 3d4c cmpnei r5, 12 + stats=MI_OK; + 3438: 69d0 and r7, r4 + if(Command==PCD_TRANSCEIVE) + 343a: 0bd8 bt 0x33ea // 33ea + n=RC522_ReadRawRC(FIFOLevelReg); + 343c: 300a movi r0, 10 + 343e: e3fffe5d bsr 0x30f8 // 30f8 + 3442: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 3444: 300c movi r0, 12 + 3446: e3fffe59 bsr 0x30f8 // 30f8 + 344a: 3307 movi r3, 7 + 344c: 680c and r0, r3 + if(lastBits) + 344e: 3840 cmpnei r0, 0 + 3450: 0c1b bf 0x3486 // 3486 + *pOutLenBit=(n-1)*8+lastBits; + 3452: 5c63 subi r3, r4, 1 + 3454: 4363 lsli r3, r3, 3 + 3456: 600c addu r0, r3 + 3458: 9860 ld.w r3, (r14, 0x0) + 345a: a300 st.b r0, (r3, 0x0) + if(n==0)n=1; + 345c: 3c40 cmpnei r4, 0 + 345e: 0c18 bf 0x348e // 348e + 3460: 6cd3 mov r3, r4 + 3462: 7510 zextb r4, r4 + 3464: 3c12 cmphsi r4, 19 + 3466: 0c02 bf 0x346a // 346a + 3468: 3312 movi r3, 18 + 346a: 74cc zextb r3, r3 + 346c: 98c1 ld.w r6, (r14, 0x4) + for(i=0; i + pOut[i]=RC522_ReadRawRC(FIFODataReg); + 3476: 3009 movi r0, 9 + 3478: e3fffe40 bsr 0x30f8 // 30f8 + for(i=0; i + *pOutLenBit=n*8; + 3486: 4463 lsli r3, r4, 3 + 3488: 9840 ld.w r2, (r14, 0x0) + 348a: a260 st.b r3, (r2, 0x0) + 348c: 07e8 br 0x345c // 345c + if(n==0)n=1; + 348e: 3301 movi r3, 1 + 3490: 07ee br 0x346c // 346c + +Disassembly of section .text.RC522_PcdSelect: + +00003492 : +{ + 3492: 14d1 push r4, r15 + 3494: 1427 subi r14, r14, 28 + ucComMF522Buf[0]=PICC_ANTICOLL1; + 3496: 3300 movi r3, 0 + 3498: 2b6c subi r3, 109 + 349a: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x70; + 349e: 3370 movi r3, 112 + 34a0: dc6e0009 st.b r3, (r14, 0x9) + ucComMF522Buf[6]=0; + 34a4: 3300 movi r3, 0 + 34a6: dc6e000e st.b r3, (r14, 0xe) + 34aa: 1a02 addi r2, r14, 8 + 34ac: 582e addi r1, r0, 4 + ucComMF522Buf[i+2]=*(pSnr+i); + 34ae: 8060 ld.b r3, (r0, 0x0) + 34b0: a262 st.b r3, (r2, 0x2) + ucComMF522Buf[6]^=*(pSnr+i); + 34b2: d88e000e ld.b r4, (r14, 0xe) + 34b6: 2000 addi r0, 1 + 34b8: 6cd1 xor r3, r4 + for(i=0;i<4;i++) + 34ba: 6442 cmpne r0, r1 + ucComMF522Buf[6]^=*(pSnr+i); + 34bc: dc6e000e st.b r3, (r14, 0xe) + 34c0: 2200 addi r2, 1 + for(i=0;i<4;i++) + 34c2: 0bf6 bt 0x34ae // 34ae + RC522_CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]); //用MF522计算CRC16函数,校验数据 + 34c4: 1b02 addi r3, r14, 8 + 34c6: 5b5a addi r2, r3, 7 + 34c8: 6c0f mov r0, r3 + 34ca: 3107 movi r1, 7 + 34cc: e3fffe9a bsr 0x3200 // 3200 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen); + 34d0: 3407 movi r4, 7 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 34d2: 3108 movi r1, 8 + 34d4: 3008 movi r0, 8 + 34d6: e3fffe84 bsr 0x31de // 31de + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen); + 34da: 6138 addu r4, r14 + 34dc: 1b02 addi r3, r14, 8 + 34de: b880 st.w r4, (r14, 0x0) + 34e0: 3209 movi r2, 9 + 34e2: 6c4f mov r1, r3 + 34e4: 300c movi r0, 12 + 34e6: e3ffff39 bsr 0x3358 // 3358 + if((stats==MI_OK)&&(unLen==0x18))stats=MI_OK; + 34ea: 3840 cmpnei r0, 0 + 34ec: 0806 bt 0x34f8 // 34f8 + 34ee: 8460 ld.b r3, (r4, 0x0) + 34f0: 3b58 cmpnei r3, 24 + 34f2: 0803 bt 0x34f8 // 34f8 +} + 34f4: 1407 addi r14, r14, 28 + 34f6: 1491 pop r4, r15 + else stats=MI_ERR; + 34f8: 3002 movi r0, 2 + 34fa: 07fd br 0x34f4 // 34f4 + +Disassembly of section .text.RC522_PcdAuthState: + +000034fc : +{ + 34fc: 14d2 push r4-r5, r15 + 34fe: 1427 subi r14, r14, 28 + 3500: 6d0f mov r4, r3 + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 3502: 1b02 addi r3, r14, 8 +{ + 3504: 6d47 mov r5, r1 + ucComMF522Buf[0]=auth_mode; + 3506: dc0e0008 st.b r0, (r14, 0x8) +{ + 350a: 6c4b mov r1, r2 + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 350c: 5b06 addi r0, r3, 2 + 350e: 3206 movi r2, 6 + ucComMF522Buf[1]=addr; + 3510: dcae0009 st.b r5, (r14, 0x9) + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 3514: e3fff26c bsr 0x19ec // 19ec <__memcpy_fast> + memcpy(&ucComMF522Buf[8],pSnr,4); + 3518: 1b02 addi r3, r14, 8 + 351a: 6c53 mov r1, r4 + 351c: 5b1e addi r0, r3, 8 + 351e: 3204 movi r2, 4 + 3520: e3fff266 bsr 0x19ec // 19ec <__memcpy_fast> + stats=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen); + 3524: 3307 movi r3, 7 + 3526: 60f8 addu r3, r14 + 3528: b860 st.w r3, (r14, 0x0) + 352a: 1b02 addi r3, r14, 8 + 352c: 320c movi r2, 12 + 352e: 6c4f mov r1, r3 + 3530: 300e movi r0, 14 + 3532: e3ffff13 bsr 0x3358 // 3358 + if((stats!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))stats = MI_ERR; + 3536: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen); + 3538: 6d03 mov r4, r0 + if((stats!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))stats = MI_ERR; + 353a: 0809 bt 0x354c // 354c + 353c: 3008 movi r0, 8 + 353e: e3fffddd bsr 0x30f8 // 30f8 + 3542: 3308 movi r3, 8 + 3544: 680c and r0, r3 + 3546: 7400 zextb r0, r0 + 3548: 3840 cmpnei r0, 0 + 354a: 0802 bt 0x354e // 354e + 354c: 3402 movi r4, 2 +} + 354e: 6c13 mov r0, r4 + 3550: 1407 addi r14, r14, 28 + 3552: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdRequest: + +00003554 : +{ + 3554: 14d2 push r4-r5, r15 + 3556: 1427 subi r14, r14, 28 + 3558: 6d43 mov r5, r0 + 355a: 6d07 mov r4, r1 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位,/接收数据命令 + 355c: 3008 movi r0, 8 + 355e: 3108 movi r1, 8 + 3560: e3fffe3f bsr 0x31de // 31de + RC522_WriteRawRC(BitFramingReg,0x07); //写RC632寄存器 + 3564: 3107 movi r1, 7 + 3566: 300d movi r0, 13 + 3568: e3fffde4 bsr 0x3130 // 3130 + RC522_SetBitMask(TxControlReg,0x03); //置RC522寄存器位 + 356c: 3103 movi r1, 3 + 356e: 3014 movi r0, 20 + 3570: e3fffe1e bsr 0x31ac // 31ac + ucComMF522Buf[0]=req_code; //寻卡方式 + 3574: dcae0008 st.b r5, (r14, 0x8) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 3578: 3507 movi r5, 7 + 357a: 1b02 addi r3, r14, 8 + 357c: 6178 addu r5, r14 + 357e: b8a0 st.w r5, (r14, 0x0) + 3580: 3201 movi r2, 1 + 3582: 6c4f mov r1, r3 + 3584: 300c movi r0, 12 + 3586: e3fffee9 bsr 0x3358 // 3358 + if ((stats == MI_OK) && (unLen == 0x10)) { + 358a: 3840 cmpnei r0, 0 + 358c: 080c bt 0x35a4 // 35a4 + 358e: 8560 ld.b r3, (r5, 0x0) + 3590: 3b50 cmpnei r3, 16 + 3592: 0809 bt 0x35a4 // 35a4 + *pTagType = ucComMF522Buf[0]; //将数组里的数据赋值给*pTagType + 3594: d86e0008 ld.b r3, (r14, 0x8) + 3598: a460 st.b r3, (r4, 0x0) + *(pTagType + 1) = ucComMF522Buf[1]; + 359a: d86e0009 ld.b r3, (r14, 0x9) + 359e: a461 st.b r3, (r4, 0x1) +} + 35a0: 1407 addi r14, r14, 28 + 35a2: 1492 pop r4-r5, r15 + stats = MI_ERR; + 35a4: 3002 movi r0, 2 + 35a6: 07fd br 0x35a0 // 35a0 + +Disassembly of section .text.RC522_PcdAnticoll: + +000035a8 : +{ + 35a8: 14d2 push r4-r5, r15 + 35aa: 1427 subi r14, r14, 28 + 35ac: 6d43 mov r5, r0 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 35ae: 3108 movi r1, 8 + 35b0: 3008 movi r0, 8 + 35b2: e3fffe16 bsr 0x31de // 31de + RC522_WriteRawRC(BitFramingReg,0x00); //写 + 35b6: 3100 movi r1, 0 + 35b8: 300d movi r0, 13 + 35ba: e3fffdbb bsr 0x3130 // 3130 + RC522_ClearBitMask(CollReg,0x80); //清 + 35be: 3180 movi r1, 128 + 35c0: 300e movi r0, 14 + 35c2: e3fffe0e bsr 0x31de // 31de + ucComMF522Buf[0]=PICC_ANTICOLL1; //PICC_ANTICOLL1 = 0x93 + 35c6: 3300 movi r3, 0 + 35c8: 2b6c subi r3, 109 + 35ca: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x20; + 35ce: 3320 movi r3, 32 + 35d0: dc6e0009 st.b r3, (r14, 0x9) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 35d4: 3307 movi r3, 7 + 35d6: 60f8 addu r3, r14 + 35d8: b860 st.w r3, (r14, 0x0) + 35da: 1b02 addi r3, r14, 8 + 35dc: 3202 movi r2, 2 + 35de: 6c4f mov r1, r3 + 35e0: 300c movi r0, 12 + 35e2: e3fffebb bsr 0x3358 // 3358 + if(stats==MI_OK) + 35e6: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 35e8: 6d03 mov r4, r0 + if(stats==MI_OK) + 35ea: 0812 bt 0x360e // 360e + 35ec: 3300 movi r3, 0 + 35ee: 3200 movi r2, 0 + *(pSnr+i)=ucComMF522Buf[i]; //把读到的卡号赋值给pSnr + 35f0: 1902 addi r1, r14, 8 + 35f2: 604c addu r1, r3 + 35f4: 8120 ld.b r1, (r1, 0x0) + 35f6: 5d0c addu r0, r5, r3 + 35f8: 2300 addi r3, 1 + 35fa: a020 st.b r1, (r0, 0x0) + for(i=0;i<4;i++) + 35fc: 3b44 cmpnei r3, 4 + snr_check^=ucComMF522Buf[i]; + 35fe: 6c49 xor r1, r2 + 3600: 6c87 mov r2, r1 + for(i=0;i<4;i++) + 3602: 0bf7 bt 0x35f0 // 35f0 + if(snr_check!=ucComMF522Buf[i]) + 3604: d86e000c ld.b r3, (r14, 0xc) + 3608: 644e cmpne r3, r1 + 360a: 0c02 bf 0x360e // 360e + stats = MI_ERR; + 360c: 3402 movi r4, 2 + RC522_SetBitMask(CollReg,0x80); + 360e: 3180 movi r1, 128 + 3610: 300e movi r0, 14 + 3612: e3fffdcd bsr 0x31ac // 31ac +} + 3616: 6c13 mov r0, r4 + 3618: 1407 addi r14, r14, 28 + 361a: 1492 pop r4-r5, r15 + +Disassembly of section .text.Card_Read_TasK: + +0000361c : + + + +//U32_T FailNum = 0; +U32_T scan_tick = 0; +void Card_Read_TasK(void){ + 361c: 14d2 push r4-r5, r15 + + if(SysTick_1ms - scan_tick >= 100){ + 361e: 112b lrw r1, 0x200000a8 // 36c8 + 3620: 114b lrw r2, 0x200000bc // 36cc + 3622: 118c lrw r4, 0x200001f7 // 36d0 + 3624: 9200 ld.w r0, (r2, 0x0) + 3626: 9160 ld.w r3, (r1, 0x0) + 3628: 60c2 subu r3, r0 + 362a: 3063 movi r0, 99 + 362c: 64c0 cmphs r0, r3 + 362e: 082c bt 0x3686 // 3686 + scan_tick = SysTick_1ms; + 3630: 9160 ld.w r3, (r1, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read"); + + //寻卡: 识别天线范围内全部卡 + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 3632: 3119 movi r1, 25 + 3634: 6050 addu r1, r4 + 3636: 3052 movi r0, 82 + scan_tick = SysTick_1ms; + 3638: b260 st.w r3, (r2, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 363a: e3ffff8d bsr 0x3554 // 3554 + 363e: 3520 movi r5, 32 + 3640: 3840 cmpnei r0, 0 + 3642: 6150 addu r5, r4 + 3644: 0836 bt 0x36b0 // 36b0 + CardInfo.FailNum = 0x00; + 3646: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 3648: 1123 lrw r1, 0x456f // 36d4 + CardInfo.FailNum = 0x00; + 364a: a566 st.b r3, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 364c: e3fffd1c bsr 0x3084 // 3084 + //防冲撞:获取IC卡的卡号 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 3650: 301b movi r0, 27 + 3652: 6010 addu r0, r4 + 3654: e3ffffaa bsr 0x35a8 // 35a8 + 3658: 3840 cmpnei r0, 0 + 365a: 0829 bt 0x36ac // 36ac + //选定要进行操作的卡片 + if(RC522_PcdSelect(CardInfo.SN)==MI_OK){ + 365c: 301b movi r0, 27 + 365e: 6010 addu r0, r4 + 3660: e3ffff19 bsr 0x3492 // 3492 + 3664: 3840 cmpnei r0, 0 + 3666: 0821 bt 0x36a8 // 36a8 + //验证卡片密码 + if(RC522_PcdAuthState(CardInfo.CardKeyType, CardInfo.BlockLoc, CardInfo.CardKey, CardInfo.SN)==MI_OK){ + 3668: 331b movi r3, 27 + 366a: 8428 ld.b r1, (r4, 0x8) + 366c: 841f ld.b r0, (r4, 0x1f) + 366e: 60d0 addu r3, r4 + 3670: 6c97 mov r2, r5 + 3672: e3ffff45 bsr 0x34fc // 34fc + 3676: 3840 cmpnei r0, 0 + 3678: 0813 bt 0x369e // 369e + //读取指定块的数据 +// if(RC522_PcdRead(CardInfo.BlockLoc, CardInfo.CradDataBuf)==MI_OK) + { + + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Block %d",CardInfo.BlockLoc); + 367a: 8448 ld.b r2, (r4, 0x8) + 367c: 1037 lrw r1, 0x457f // 36d8 + 367e: e3fffd03 bsr 0x3084 // 3084 + + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS, "Card Data",CardInfo.CradDataBuf,BLOCK_HAVE_BYTE); + + CardInfo.BlockSucc = BLOCK_READ_SUCC; + 3682: 3301 movi r3, 1 + 3684: a467 st.b r3, (r4, 0x7) + CardInfo.FailNum++; + } + } + } + + if(CardInfo.BlockSucc != CardInfo.BlockLast){ + 3686: 8467 ld.b r3, (r4, 0x7) + 3688: 8446 ld.b r2, (r4, 0x6) + 368a: 64ca cmpne r2, r3 + 368c: 0c08 bf 0x369c // 369c + CardInfo.BlockLast = CardInfo.BlockSucc; + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 368e: 3b41 cmpnei r3, 1 + CardInfo.BlockLast = CardInfo.BlockSucc; + 3690: a466 st.b r3, (r4, 0x6) + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 3692: 0805 bt 0x369c // 369c + + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read SUCC"); + 3694: 1032 lrw r1, 0x45d1 // 36dc + 3696: 3000 movi r0, 0 + 3698: e3fffcf6 bsr 0x3084 // 3084 + + } + } + + +} + 369c: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Key Error"); + 369e: 1031 lrw r1, 0x458d // 36e0 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 36a0: 3000 movi r0, 0 + 36a2: e3fffcf1 bsr 0x3084 // 3084 + 36a6: 07f0 br 0x3686 // 3686 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Select Error"); + 36a8: 102f lrw r1, 0x459c // 36e4 + 36aa: 07fb br 0x36a0 // 36a0 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 36ac: 102f lrw r1, 0x45ae // 36e8 + 36ae: 07f9 br 0x36a0 // 36a0 + if(CardInfo.FailNum >= 5){ + 36b0: 8566 ld.b r3, (r5, 0x6) + 36b2: 3b04 cmphsi r3, 5 + 36b4: 0c07 bf 0x36c2 // 36c2 + CardInfo.FailNum = 0; + 36b6: 3300 movi r3, 0 + 36b8: a566 st.b r3, (r5, 0x6) + CardInfo.SuccNum = 0; + 36ba: a567 st.b r3, (r5, 0x7) + CardInfo.BlockSucc = BLOCK_READ_FAILD; + 36bc: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_FAILD"); + 36be: 102c lrw r1, 0x45c0 // 36ec + 36c0: 07f0 br 0x36a0 // 36a0 + CardInfo.FailNum++; + 36c2: 2300 addi r3, 1 + 36c4: a566 st.b r3, (r5, 0x6) + 36c6: 07e0 br 0x3686 // 3686 + 36c8: 200000a8 .long 0x200000a8 + 36cc: 200000bc .long 0x200000bc + 36d0: 200001f7 .long 0x200001f7 + 36d4: 0000456f .long 0x0000456f + 36d8: 0000457f .long 0x0000457f + 36dc: 000045d1 .long 0x000045d1 + 36e0: 0000458d .long 0x0000458d + 36e4: 0000459c .long 0x0000459c + 36e8: 000045ae .long 0x000045ae + 36ec: 000045c0 .long 0x000045c0 + +Disassembly of section .text.RLY_Light_Ctrl.part.0: + +000036f0 : + } +} + + +///无RF模块继电器和背光控制函数 +void RLY_Light_Ctrl(U8_T state) + 36f0: 14d0 push r15 +{ + if(state == 0x01) + { + CTRL_RLY_ON; + 36f2: 1066 lrw r3, 0x2000004c // 3708 + 36f4: 3100 movi r1, 0 + 36f6: 9300 ld.w r0, (r3, 0x0) + 36f8: e3fff3cd bsr 0x1e92 // 1e92 + GPT0->CMPA = 0; + 36fc: 1064 lrw r3, 0x20000024 // 370c + 36fe: 3200 movi r2, 0 + 3700: 9360 ld.w r3, (r3, 0x0) + 3702: b34b st.w r2, (r3, 0x2c) + else if(state == 0x00) + { + CTRL_RLY_OFF; + Ctrl_Backlight(1); + } +} + 3704: 1490 pop r15 + 3706: 0000 bkpt + 3708: 2000004c .long 0x2000004c + 370c: 20000024 .long 0x20000024 + +Disassembly of section .text.KEY1_LONG_PRESS_RELEASE_Handler: + +00003710 : + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_Handler"); +} + +///无RF模块的门磁长按释放事件 +void KEY1_LONG_PRESS_RELEASE_Handler(void* btn) +{ + 3710: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_RELEASE_Handler"); + 3712: 1032 lrw r1, 0x45e0 // 3758 + 3714: 3000 movi r0, 0 + 3716: e3fffcb7 bsr 0x3084 // 3084 + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 371a: 1071 lrw r3, 0x200001f7 // 375c + 371c: 8367 ld.b r3, (r3, 0x7) + 371e: 3b40 cmpnei r3, 0 + 3720: 1090 lrw r4, 0x20000250 // 3760 + 3722: 0818 bt 0x3752 // 3752 + { + if(READ_RLY_STATE != 0x00) + 3724: 1070 lrw r3, 0x2000004c // 3764 + 3726: 3100 movi r1, 0 + 3728: 9300 ld.w r0, (r3, 0x0) + 372a: e3fff3c0 bsr 0x1eaa // 1eaa + 372e: 3840 cmpnei r0, 0 + 3730: 0c07 bf 0x373e // 373e + 3732: e3ffffdf bsr 0x36f0 // 36f0 + { + RLY_Light_Ctrl(1); + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 3736: 102d lrw r1, 0x45fb // 3768 + 3738: 3000 movi r0, 0 + 373a: e3fffca5 bsr 0x3084 // 3084 + } + dm_in.DM_Tick = SysTick_1ms; + 373e: 106c lrw r3, 0x200000a8 // 376c + 3740: 104c lrw r2, 0x20000251 // 3770 + 3742: 9360 ld.w r3, (r3, 0x0) + 3744: 4b28 lsri r1, r3, 8 + 3746: a461 st.b r3, (r4, 0x1) + 3748: a221 st.b r1, (r2, 0x1) + 374a: 4b30 lsri r1, r3, 16 + 374c: 4b78 lsri r3, r3, 24 + 374e: a222 st.b r1, (r2, 0x2) + 3750: a263 st.b r3, (r2, 0x3) + } + + dm_in.DM_State = 0x02; + 3752: 3302 movi r3, 2 + 3754: a460 st.b r3, (r4, 0x0) +} + 3756: 1491 pop r4, r15 + 3758: 000045e0 .long 0x000045e0 + 375c: 200001f7 .long 0x200001f7 + 3760: 20000250 .long 0x20000250 + 3764: 2000004c .long 0x2000004c + 3768: 000045fb .long 0x000045fb + 376c: 200000a8 .long 0x200000a8 + 3770: 20000251 .long 0x20000251 + +Disassembly of section .text.RLY_Light_Ctrl: + +00003774 : +{ + 3774: 14d0 push r15 + if(state == 0x01) + 3776: 3841 cmpnei r0, 1 + 3778: 0804 bt 0x3780 // 3780 + 377a: e3ffffbb bsr 0x36f0 // 36f0 +} + 377e: 1490 pop r15 + else if(state == 0x00) + 3780: 3840 cmpnei r0, 0 + 3782: 0bfe bt 0x377e // 377e + CTRL_RLY_OFF; + 3784: 1066 lrw r3, 0x2000004c // 379c + 3786: 3100 movi r1, 0 + 3788: 9300 ld.w r0, (r3, 0x0) + 378a: e3fff380 bsr 0x1e8a // 1e8a + GPT0->CMPA = 2000; + 378e: 1065 lrw r3, 0x20000024 // 37a0 + 3790: 9340 ld.w r2, (r3, 0x0) + 3792: 33fa movi r3, 250 + 3794: 4363 lsli r3, r3, 3 + 3796: b26b st.w r3, (r2, 0x2c) +} + 3798: 07f3 br 0x377e // 377e + 379a: 0000 bkpt + 379c: 2000004c .long 0x2000004c + 37a0: 20000024 .long 0x20000024 + +Disassembly of section .text.LogicCtrl_Init: + +000037a4 : +{ + 37a4: 14d1 push r4, r15 + GPIO_Init(GPIOB0,CARD_SENS_PIN,Output); //CARD_SENS + 37a6: 1089 lrw r4, 0x20000048 // 37c8 + 37a8: 3200 movi r2, 0 + 37aa: 9400 ld.w r0, (r4, 0x0) + 37ac: 3100 movi r1, 0 + 37ae: e3fff2ed bsr 0x1d88 // 1d88 + CTRL_CARD_OUT; + 37b2: 9400 ld.w r0, (r4, 0x0) + 37b4: 3100 movi r1, 0 + 37b6: e3fff36a bsr 0x1e8a // 1e8a + GPIO_Init(GPIOA0,LED_INPUT_PIN,Intput); //LED_IN + 37ba: 1065 lrw r3, 0x2000004c // 37cc + 37bc: 3201 movi r2, 1 + 37be: 9300 ld.w r0, (r3, 0x0) + 37c0: 310c movi r1, 12 + 37c2: e3fff2e3 bsr 0x1d88 // 1d88 +} + 37c6: 1491 pop r4, r15 + 37c8: 20000048 .long 0x20000048 + 37cc: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Task: + +000037d0 : +{ + 37d0: 14d2 push r4-r5, r15 + if((CardInfo.BlockSucc==BLOCK_READ_SUCC) && (READ_CARD_STATE == 1)) + 37d2: 1161 lrw r3, 0x200001f7 // 3854 + 37d4: 8347 ld.b r2, (r3, 0x7) + 37d6: 3a41 cmpnei r2, 1 + 37d8: 6d0f mov r4, r3 + 37da: 0822 bt 0x381e // 381e + 37dc: 10bf lrw r5, 0x20000048 // 3858 + 37de: 3100 movi r1, 0 + 37e0: 9500 ld.w r0, (r5, 0x0) + 37e2: e3fff364 bsr 0x1eaa // 1eaa + 37e6: 3841 cmpnei r0, 1 + 37e8: 081b bt 0x381e // 381e + CTRL_CARD_IN; + 37ea: 9500 ld.w r0, (r5, 0x0) + 37ec: 3100 movi r1, 0 + 37ee: e3fff352 bsr 0x1e92 // 1e92 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 37f2: 9500 ld.w r0, (r5, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 37f4: 3100 movi r1, 0 + 37f6: e3fff35a bsr 0x1eaa // 1eaa + 37fa: 6c83 mov r2, r0 + 37fc: 1038 lrw r1, 0x460d // 385c + 37fe: 3000 movi r0, 0 + 3800: e3fffc42 bsr 0x3084 // 3084 + if(READ_LED_IN == 0x00) + 3804: 1097 lrw r4, 0x2000004c // 3860 + 3806: 310c movi r1, 12 + 3808: 9400 ld.w r0, (r4, 0x0) + 380a: e3fff348 bsr 0x1e9a // 1e9a + 380e: 3840 cmpnei r0, 0 + 3810: 0817 bt 0x383e // 383e + GPT0->CMPA = 2000; + 3812: 1075 lrw r3, 0x20000024 // 3864 + 3814: 9340 ld.w r2, (r3, 0x0) + 3816: 33fa movi r3, 250 + 3818: 4363 lsli r3, r3, 3 + 381a: b26b st.w r3, (r2, 0x2c) +} + 381c: 1492 pop r4-r5, r15 + else if((CardInfo.BlockSucc==BLOCK_READ_FAILD) && (READ_CARD_STATE == 0)) + 381e: 8467 ld.b r3, (r4, 0x7) + 3820: 3b40 cmpnei r3, 0 + 3822: 0bf1 bt 0x3804 // 3804 + 3824: 108d lrw r4, 0x20000048 // 3858 + 3826: 3100 movi r1, 0 + 3828: 9400 ld.w r0, (r4, 0x0) + 382a: e3fff340 bsr 0x1eaa // 1eaa + 382e: 3840 cmpnei r0, 0 + 3830: 0bea bt 0x3804 // 3804 + CTRL_CARD_OUT; + 3832: 9400 ld.w r0, (r4, 0x0) + 3834: 3100 movi r1, 0 + 3836: e3fff32a bsr 0x1e8a // 1e8a + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 383a: 9400 ld.w r0, (r4, 0x0) + 383c: 07dc br 0x37f4 // 37f4 + else if(READ_LED_IN == 0x01) + 383e: 9400 ld.w r0, (r4, 0x0) + 3840: 310c movi r1, 12 + 3842: e3fff32c bsr 0x1e9a // 1e9a + 3846: 3841 cmpnei r0, 1 + 3848: 0bea bt 0x381c // 381c + GPT0->CMPA = 0; + 384a: 1067 lrw r3, 0x20000024 // 3864 + 384c: 3200 movi r2, 0 + 384e: 9360 ld.w r3, (r3, 0x0) + 3850: b34b st.w r2, (r3, 0x2c) +} + 3852: 07e5 br 0x381c // 381c + 3854: 200001f7 .long 0x200001f7 + 3858: 20000048 .long 0x20000048 + 385c: 0000460d .long 0x0000460d + 3860: 2000004c .long 0x2000004c + 3864: 20000024 .long 0x20000024 + +Disassembly of section .text.LogicCtrl_NoRF_Init: + +00003868 : + + +///无RF模块的初始化 +void LogicCtrl_NoRF_Init(void) +{ + 3868: 14d1 push r4, r15 + GPIO_Init(GPIOA0,RLY_OUT_PIN,Output); + 386a: 1093 lrw r4, 0x2000004c // 38b4 + 386c: 3200 movi r2, 0 + 386e: 9400 ld.w r0, (r4, 0x0) + 3870: 3100 movi r1, 0 + 3872: e3fff28b bsr 0x1d88 // 1d88 + CTRL_RLY_OFF; + 3876: 9400 ld.w r0, (r4, 0x0) + 3878: 3100 movi r1, 0 + 387a: e3fff308 bsr 0x1e8a // 1e8a + + memset(&dm_in,0,sizeof(DM_IN_INF)); + 387e: 3205 movi r2, 5 + 3880: 3100 movi r1, 0 + 3882: 100e lrw r0, 0x20000250 // 38b8 + 3884: e3fff070 bsr 0x1964 // 1964 <__memset_fast> + + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 3888: 9400 ld.w r0, (r4, 0x0) + 388a: 3201 movi r2, 1 + + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 388c: 108c lrw r4, 0x20000220 // 38bc + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 388e: 3101 movi r1, 1 + 3890: e3fff27c bsr 0x1d88 // 1d88 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 3894: 3301 movi r3, 1 + 3896: 6c13 mov r0, r4 + 3898: 3200 movi r2, 0 + 389a: 102a lrw r1, 0x3b28 // 38c0 + 389c: e0000074 bsr 0x3984 // 3984 + +// button_attach(&KEY1, LONG_PRESS_START, KEY1_LONG_PRESS_START_Handler); + button_attach(&KEY1, LONG_PRESS_RELEASE, KEY1_LONG_PRESS_RELEASE_Handler); + 38a0: 1049 lrw r2, 0x3710 // 38c4 + 38a2: 3107 movi r1, 7 + 38a4: 6c13 mov r0, r4 + 38a6: e000008c bsr 0x39be // 39be + button_start(&KEY1); + 38aa: 6c13 mov r0, r4 + 38ac: e000011e bsr 0x3ae8 // 3ae8 +} + 38b0: 1491 pop r4, r15 + 38b2: 0000 bkpt + 38b4: 2000004c .long 0x2000004c + 38b8: 20000250 .long 0x20000250 + 38bc: 20000220 .long 0x20000220 + 38c0: 00003b28 .long 0x00003b28 + 38c4: 00003710 .long 0x00003710 + +Disassembly of section .text.LogicCtrl_NoRF_Task: + +000038c8 : + + +///无RF模块的轮询任务 +void LogicCtrl_NoRF_Task(void) +{ + 38c8: 14d3 push r4-r6, r15 + static U32_T card_tick = 0; + static U32_T test_tick = 0; + + if(SysTick_1ms - test_tick > 5) + 38ca: 1188 lrw r4, 0x200000a8 // 3968 + 38cc: 11a8 lrw r5, 0x200000c0 // 396c + 38ce: 9460 ld.w r3, (r4, 0x0) + 38d0: 9540 ld.w r2, (r5, 0x0) + 38d2: 60ca subu r3, r2 + 38d4: 3b05 cmphsi r3, 6 + 38d6: 0c05 bf 0x38e0 // 38e0 + { + test_tick = SysTick_1ms; + 38d8: 9460 ld.w r3, (r4, 0x0) + 38da: b560 st.w r3, (r5, 0x0) + button_ticks(); + 38dc: e0000118 bsr 0x3b0c // 3b0c + } + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 38e0: 11c4 lrw r6, 0x200001f7 // 3970 + 38e2: 8667 ld.b r3, (r6, 0x7) + 38e4: 3b41 cmpnei r3, 1 + 38e6: 082f bt 0x3944 // 3944 + 38e8: e3ffff04 bsr 0x36f0 // 36f0 + { + RLY_Light_Ctrl(1); + card_tick = SysTick_1ms; + 38ec: 9460 ld.w r3, (r4, 0x0) + 38ee: b561 st.w r3, (r5, 0x4) + dm_in.DM_State = 0x00; + 38f0: 3200 movi r2, 0 + 38f2: 1161 lrw r3, 0x20000250 // 3974 + 38f4: a340 st.b r2, (r3, 0x0) + RLY_Light_Ctrl(0); +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card OUT RLY OFF"); + } + + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 38f6: 8667 ld.b r3, (r6, 0x7) + 38f8: 3b40 cmpnei r3, 0 + 38fa: 0824 bt 0x3942 // 3942 + { + + if((dm_in.DM_State == 0x02) && (SysTick_1ms - dm_in.DM_Tick >= 30000)) + 38fc: 107e lrw r3, 0x20000250 // 3974 + 38fe: 8340 ld.b r2, (r3, 0x0) + 3900: 3a42 cmpnei r2, 2 + 3902: 0820 bt 0x3942 // 3942 + 3904: 8322 ld.b r1, (r3, 0x2) + 3906: 8341 ld.b r2, (r3, 0x1) + 3908: 4128 lsli r1, r1, 8 + 390a: 6c48 or r1, r2 + 390c: 8343 ld.b r2, (r3, 0x3) + 390e: 4250 lsli r2, r2, 16 + 3910: 6c48 or r1, r2 + 3912: 8344 ld.b r2, (r3, 0x4) + 3914: 4258 lsli r2, r2, 24 + 3916: 6c84 or r2, r1 + 3918: 9400 ld.w r0, (r4, 0x0) + 391a: 600a subu r0, r2 + 391c: 1057 lrw r2, 0x752f // 3978 + 391e: 6408 cmphs r2, r0 + 3920: 0811 bt 0x3942 // 3942 + { + dm_in.DM_Tick = SysTick_1ms; + 3922: 9440 ld.w r2, (r4, 0x0) + 3924: 5b22 addi r1, r3, 1 + 3926: a341 st.b r2, (r3, 0x1) + 3928: 4a68 lsri r3, r2, 8 + 392a: a161 st.b r3, (r1, 0x1) + RLY_Light_Ctrl(0); + 392c: 3000 movi r0, 0 + dm_in.DM_Tick = SysTick_1ms; + 392e: 4a70 lsri r3, r2, 16 + 3930: 4a58 lsri r2, r2, 24 + 3932: a162 st.b r3, (r1, 0x2) + 3934: a143 st.b r2, (r1, 0x3) + RLY_Light_Ctrl(0); + 3936: e3ffff1f bsr 0x3774 // 3774 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 393a: 1031 lrw r1, 0x4632 // 397c + 393c: 3000 movi r0, 0 + 393e: e3fffba3 bsr 0x3084 // 3084 + } + } + 3942: 1493 pop r4-r6, r15 + else if((CardInfo.BlockSucc == BLOCK_READ_FAILD) && (dm_in.DM_State == 0x00) && (SysTick_1ms - card_tick >= 40000)) + 3944: 3b40 cmpnei r3, 0 + 3946: 0bd8 bt 0x38f6 // 38f6 + 3948: 106b lrw r3, 0x20000250 // 3974 + 394a: 8360 ld.b r3, (r3, 0x0) + 394c: 3b40 cmpnei r3, 0 + 394e: 0bd4 bt 0x38f6 // 38f6 + 3950: 9541 ld.w r2, (r5, 0x4) + 3952: 9460 ld.w r3, (r4, 0x0) + 3954: 60ca subu r3, r2 + 3956: 104b lrw r2, 0x9c3f // 3980 + 3958: 64c8 cmphs r2, r3 + 395a: 0bce bt 0x38f6 // 38f6 + card_tick = SysTick_1ms; + 395c: 9460 ld.w r3, (r4, 0x0) + RLY_Light_Ctrl(0); + 395e: 3000 movi r0, 0 + card_tick = SysTick_1ms; + 3960: b561 st.w r3, (r5, 0x4) + RLY_Light_Ctrl(0); + 3962: e3ffff09 bsr 0x3774 // 3774 + 3966: 07c8 br 0x38f6 // 38f6 + 3968: 200000a8 .long 0x200000a8 + 396c: 200000c0 .long 0x200000c0 + 3970: 200001f7 .long 0x200001f7 + 3974: 20000250 .long 0x20000250 + 3978: 0000752f .long 0x0000752f + 397c: 00004632 .long 0x00004632 + 3980: 00009c3f .long 0x00009c3f + +Disassembly of section .text.button_init: + +00003984 : + * @param active_level: pressed GPIO level. + * @param button_id: the button id. + * @retval None + */ +void button_init(struct Button* handle, uint8_t(*pin_level)(uint8_t), uint8_t active_level, uint8_t button_id) +{ + 3984: 14d4 push r4-r7, r15 + 3986: 6dc7 mov r7, r1 + 3988: 6d8b mov r6, r2 + memset(handle, 0, sizeof(struct Button)); + 398a: 3100 movi r1, 0 + 398c: 3230 movi r2, 48 +{ + 398e: 6d03 mov r4, r0 + 3990: 6d4f mov r5, r3 + memset(handle, 0, sizeof(struct Button)); + 3992: e3ffefe9 bsr 0x1964 // 1964 <__memset_fast> + handle->event = (uint8_t)NONE_PRESS; + 3996: 3300 movi r3, 0 + 3998: 2b6f subi r3, 112 + 399a: a462 st.b r3, (r4, 0x2) + handle->hal_button_Level = pin_level; + 399c: b4e2 st.w r7, (r4, 0x8) + handle->button_level = handle->hal_button_Level(button_id); + 399e: 6c17 mov r0, r5 + 39a0: 7bdd jsr r7 + 39a2: 8443 ld.b r2, (r4, 0x3) + 39a4: 337f movi r3, 127 + 39a6: 688c and r2, r3 + 39a8: 4007 lsli r0, r0, 7 + 39aa: 6c08 or r0, r2 + handle->active_level = active_level; + 39ac: 3201 movi r2, 1 + 39ae: 6988 and r6, r2 + 39b0: 7480 zextb r2, r0 + 39b2: 46c6 lsli r6, r6, 6 + 39b4: 3a86 bclri r2, 6 + 39b6: 6c98 or r2, r6 + 39b8: a443 st.b r2, (r4, 0x3) + handle->button_id = button_id; + 39ba: a4a4 st.b r5, (r4, 0x4) +} + 39bc: 1494 pop r4-r7, r15 + +Disassembly of section .text.button_attach: + +000039be : + * @param cb: callback function. + * @retval None + */ +void button_attach(struct Button* handle, PressEvent event, BtnCallback cb) +{ + handle->cb[event] = cb; + 39be: 2102 addi r1, 3 + 39c0: 4122 lsli r1, r1, 2 + 39c2: 6040 addu r1, r0 + 39c4: b140 st.w r2, (r1, 0x0) +} + 39c6: 783c jmp r15 + +Disassembly of section .text.button_handler: + +000039c8 : + + + + +void button_handler(struct Button* handle) +{ + 39c8: 14d3 push r4-r6, r15 + 39ca: 6d03 mov r4, r0 + uint8_t read_gpio_level = handle->hal_button_Level(handle->button_id); + 39cc: 9462 ld.w r3, (r4, 0x8) + 39ce: 8004 ld.b r0, (r0, 0x4) + 39d0: 7bcd jsr r3 + + //ticks counter working.. + if((handle->state) > 0) handle->ticks++; + 39d2: 8463 ld.b r3, (r4, 0x3) + 39d4: 433d lsli r1, r3, 29 + 39d6: 493d lsri r1, r1, 29 + 39d8: 3940 cmpnei r1, 0 + 39da: 0c04 bf 0x39e2 // 39e2 + 39dc: 8c40 ld.h r2, (r4, 0x0) + 39de: 2200 addi r2, 1 + 39e0: ac40 st.h r2, (r4, 0x0) + + /*------------button debounce handle---------------*/ + if(read_gpio_level != handle->button_level) { //not equal to prev one + 39e2: 4b47 lsri r2, r3, 7 + 39e4: 640a cmpne r2, r0 + 39e6: 0c21 bf 0x3a28 // 3a28 + //continue read 3 times same new level change + if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) { + 39e8: 435a lsli r2, r3, 26 + 39ea: 4a5d lsri r2, r2, 29 + 39ec: 3507 movi r5, 7 + 39ee: 2200 addi r2, 1 + 39f0: 6894 and r2, r5 + 39f2: 7488 zextb r2, r2 + 39f4: 6948 and r5, r2 + 39f6: 45c3 lsli r6, r5, 3 + 39f8: 3538 movi r5, 56 + 39fa: 68d5 andn r3, r5 + 39fc: 6d8c or r6, r3 + 39fe: 3a02 cmphsi r2, 3 + 3a00: a4c3 st.b r6, (r4, 0x3) + 3a02: 0c09 bf 0x3a14 // 3a14 + handle->button_level = read_gpio_level; + 3a04: 4067 lsli r3, r0, 7 + 3a06: 327f movi r2, 127 + 3a08: 8403 ld.b r0, (r4, 0x3) + 3a0a: 6808 and r0, r2 + 3a0c: 6c0c or r0, r3 + handle->debounce_cnt = 0; + 3a0e: 7400 zextb r0, r0 + 3a10: 6815 andn r0, r5 + 3a12: a403 st.b r0, (r4, 0x3) + } else { //leved not change ,counter reset. + handle->debounce_cnt = 0; + } + + /*-----------------State machine-------------------*/ + switch (handle->state) { + 3a14: 3941 cmpnei r1, 1 + 3a16: 0c2f bf 0x3a74 // 3a74 + 3a18: 3940 cmpnei r1, 0 + 3a1a: 0c0b bf 0x3a30 // 3a30 + 3a1c: 3945 cmpnei r1, 5 + 3a1e: 0c53 bf 0x3ac4 // 3ac4 +// Dbg_Println(DBG_BIT_SYS_STATUS,"key state long press release"); + handle->state = 0; //reset + } + break; + default: + handle->state = 0; //reset + 3a20: 8463 ld.b r3, (r4, 0x3) + 3a22: 3207 movi r2, 7 + 3a24: 68c9 andn r3, r2 + 3a26: 0420 br 0x3a66 // 3a66 + handle->debounce_cnt = 0; + 3a28: 3238 movi r2, 56 + 3a2a: 68c9 andn r3, r2 + 3a2c: a463 st.b r3, (r4, 0x3) + 3a2e: 07f3 br 0x3a14 // 3a14 + if(handle->button_level == handle->active_level) { //start press down + 3a30: 8463 ld.b r3, (r4, 0x3) + 3a32: 4359 lsli r2, r3, 25 + 3a34: 4a5f lsri r2, r2, 31 + 3a36: 4b67 lsri r3, r3, 7 + 3a38: 648e cmpne r3, r2 + 3a3a: 8462 ld.b r3, (r4, 0x2) + handle->event = (uint8_t)PRESS_DOWN; + 3a3c: 320f movi r2, 15 + 3a3e: 68c8 and r3, r2 + if(handle->button_level == handle->active_level) { //start press down + 3a40: 0815 bt 0x3a6a // 3a6a + handle->event = (uint8_t)PRESS_DOWN; + 3a42: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_DOWN); + 3a44: 9463 ld.w r3, (r4, 0xc) + 3a46: 3b40 cmpnei r3, 0 + 3a48: 0c03 bf 0x3a4e // 3a4e + 3a4a: 6c13 mov r0, r4 + 3a4c: 7bcd jsr r3 + handle->ticks = 0; + 3a4e: 3300 movi r3, 0 + handle->repeat = 1; + 3a50: 8442 ld.b r2, (r4, 0x2) + handle->ticks = 0; + 3a52: ac60 st.h r3, (r4, 0x0) + handle->repeat = 1; + 3a54: 330f movi r3, 15 + 3a56: 688d andn r2, r3 + 3a58: 3101 movi r1, 1 + 3a5a: 6c84 or r2, r1 + 3a5c: a442 st.b r2, (r4, 0x2) + handle->state = 1; + 3a5e: 8463 ld.b r3, (r4, 0x3) + 3a60: 3207 movi r2, 7 + 3a62: 68c9 andn r3, r2 + 3a64: 6cc4 or r3, r1 + handle->state = 0; //reset + 3a66: a463 st.b r3, (r4, 0x3) + break; + } +} + 3a68: 0405 br 0x3a72 // 3a72 + handle->event = (uint8_t)NONE_PRESS; + 3a6a: 3200 movi r2, 0 + 3a6c: 2a6f subi r2, 112 + 3a6e: 6cc8 or r3, r2 + 3a70: a462 st.b r3, (r4, 0x2) +} + 3a72: 1493 pop r4-r6, r15 + if(handle->button_level != handle->active_level) { //released press up + 3a74: 8463 ld.b r3, (r4, 0x3) + 3a76: 4359 lsli r2, r3, 25 + 3a78: 4a5f lsri r2, r2, 31 + 3a7a: 4b67 lsri r3, r3, 7 + 3a7c: 648e cmpne r3, r2 + 3a7e: 0c0e bf 0x3a9a // 3a9a + handle->event = (uint8_t)PRESS_UP; + 3a80: 8462 ld.b r3, (r4, 0x2) + 3a82: 320f movi r2, 15 + 3a84: 68c8 and r3, r2 + 3a86: 3ba4 bseti r3, 4 + 3a88: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_UP); + 3a8a: 9464 ld.w r3, (r4, 0x10) + 3a8c: 3b40 cmpnei r3, 0 + 3a8e: 0c03 bf 0x3a94 // 3a94 + 3a90: 6c13 mov r0, r4 + 3a92: 7bcd jsr r3 + handle->ticks = 0; + 3a94: 3300 movi r3, 0 + 3a96: ac60 st.h r3, (r4, 0x0) + 3a98: 07c4 br 0x3a20 // 3a20 + } else if(handle->ticks > LONG_TICKS) { + 3a9a: 8c40 ld.h r2, (r4, 0x0) + 3a9c: 33c8 movi r3, 200 + 3a9e: 648c cmphs r3, r2 + 3aa0: 0be9 bt 0x3a72 // 3a72 + handle->event = (uint8_t)LONG_PRESS_START; + 3aa2: 8462 ld.b r3, (r4, 0x2) + 3aa4: 320f movi r2, 15 + 3aa6: 68c8 and r3, r2 + 3aa8: 3ba4 bseti r3, 4 + 3aaa: 3ba6 bseti r3, 6 + 3aac: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_START); + 3aae: 9468 ld.w r3, (r4, 0x20) + 3ab0: 3b40 cmpnei r3, 0 + 3ab2: 0c03 bf 0x3ab8 // 3ab8 + 3ab4: 6c13 mov r0, r4 + 3ab6: 7bcd jsr r3 + handle->state = 5; + 3ab8: 8463 ld.b r3, (r4, 0x3) + 3aba: 3207 movi r2, 7 + 3abc: 68c9 andn r3, r2 + 3abe: 3ba0 bseti r3, 0 + 3ac0: 3ba2 bseti r3, 2 + 3ac2: 07d2 br 0x3a66 // 3a66 + if(handle->button_level == handle->active_level) { + 3ac4: 8463 ld.b r3, (r4, 0x3) + 3ac6: 4359 lsli r2, r3, 25 + 3ac8: 4a5f lsri r2, r2, 31 + 3aca: 4b67 lsri r3, r3, 7 + 3acc: 648e cmpne r3, r2 + 3ace: 0fd2 bf 0x3a72 // 3a72 + handle->event = (uint8_t)LONG_PRESS_RELEASE; + 3ad0: 8462 ld.b r3, (r4, 0x2) + 3ad2: 320f movi r2, 15 + 3ad4: 68c8 and r3, r2 + 3ad6: 3270 movi r2, 112 + 3ad8: 6cc8 or r3, r2 + 3ada: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_RELEASE); + 3adc: 946a ld.w r3, (r4, 0x28) + 3ade: 3b40 cmpnei r3, 0 + 3ae0: 0fa0 bf 0x3a20 // 3a20 + 3ae2: 6c13 mov r0, r4 + 3ae4: 7bcd jsr r3 + 3ae6: 079d br 0x3a20 // 3a20 + +Disassembly of section .text.button_start: + +00003ae8 : + * @param handle: target handle strcut. + * @retval 0: succeed. -1: already exist. + */ +int button_start(struct Button* handle) +{ + struct Button* target = head_handle; + 3ae8: 1068 lrw r3, 0x200000c8 // 3b08 + 3aea: 9320 ld.w r1, (r3, 0x0) + 3aec: 6c87 mov r2, r1 + while(target) { + 3aee: 3a40 cmpnei r2, 0 + 3af0: 0805 bt 0x3afa // 3afa + if(target == handle) return -1; //already exist. + target = target->next; + } + handle->next = head_handle; + 3af2: b02b st.w r1, (r0, 0x2c) + head_handle = handle; + 3af4: b300 st.w r0, (r3, 0x0) + return 0; + 3af6: 3000 movi r0, 0 +} + 3af8: 783c jmp r15 + if(target == handle) return -1; //already exist. + 3afa: 640a cmpne r2, r0 + 3afc: 0c03 bf 0x3b02 // 3b02 + target = target->next; + 3afe: 924b ld.w r2, (r2, 0x2c) + 3b00: 07f7 br 0x3aee // 3aee + if(target == handle) return -1; //already exist. + 3b02: 3000 movi r0, 0 + 3b04: 2800 subi r0, 1 + 3b06: 07f9 br 0x3af8 // 3af8 + 3b08: 200000c8 .long 0x200000c8 + +Disassembly of section .text.button_ticks: + +00003b0c : + * @brief background ticks, timer repeat invoking interval 5ms. + * @param None. + * @retval None + */ +void button_ticks() +{ + 3b0c: 14d1 push r4, r15 + struct Button* target; + for(target=head_handle; target; target=target->next) { + 3b0e: 1066 lrw r3, 0x200000c8 // 3b24 + 3b10: 9380 ld.w r4, (r3, 0x0) + 3b12: 3c40 cmpnei r4, 0 + 3b14: 0802 bt 0x3b18 // 3b18 + button_handler(target); + } +} + 3b16: 1491 pop r4, r15 + button_handler(target); + 3b18: 6c13 mov r0, r4 + 3b1a: e3ffff57 bsr 0x39c8 // 39c8 + for(target=head_handle; target; target=target->next) { + 3b1e: 948b ld.w r4, (r4, 0x2c) + 3b20: 07f9 br 0x3b12 // 3b12 + 3b22: 0000 bkpt + 3b24: 200000c8 .long 0x200000c8 + +Disassembly of section .text.read_button_GPIO: + +00003b28 : + +//////////////////////////////////////////////////////////////////////// + + +uint8_t read_button_GPIO(uint8_t button_id) +{ + 3b28: 14d0 push r15 + uint8_t state = 0; + state = GPIO_Read_Status(GPIOA0,button_id); + 3b2a: 1064 lrw r3, 0x2000004c // 3b38 +{ + 3b2c: 6c43 mov r1, r0 + state = GPIO_Read_Status(GPIOA0,button_id); + 3b2e: 9300 ld.w r0, (r3, 0x0) + 3b30: e3fff1b5 bsr 0x1e9a // 1e9a + return state; + 3b34: 1490 pop r15 + 3b36: 0000 bkpt + 3b38: 2000004c .long 0x2000004c + +Disassembly of section .text.TK_Sampling_prog: + +00003b3c : + 3b3c: 14c4 push r4-r7 + 3b3e: 1072 lrw r3, 0x20000054 // 3b84 + 3b40: 1012 lrw r0, 0x200004fe // 3b88 + 3b42: 1093 lrw r4, 0x2000036f // 3b8c + 3b44: 6d83 mov r6, r0 + 3b46: 93a0 ld.w r5, (r3, 0x0) + 3b48: 3300 movi r3, 0 + 3b4a: 4342 lsli r2, r3, 2 + 3b4c: 6094 addu r2, r5 + 3b4e: 9220 ld.w r1, (r2, 0x0) + 3b50: 4341 lsli r2, r3, 1 + 3b52: 6080 addu r2, r0 + 3b54: 7445 zexth r1, r1 + 3b56: aa20 st.h r1, (r2, 0x0) + 3b58: 8440 ld.b r2, (r4, 0x0) + 3b5a: 3a41 cmpnei r2, 1 + 3b5c: 080f bt 0x3b7a // 3b7a + 3b5e: 3300 movi r3, 0 + 3b60: 10ec lrw r7, 0x20000258 // 3b90 + 3b62: 4341 lsli r2, r3, 1 + 3b64: 5e28 addu r1, r6, r2 + 3b66: 8920 ld.h r1, (r1, 0x0) + 3b68: 2300 addi r3, 1 + 3b6a: 7445 zexth r1, r1 + 3b6c: 609c addu r2, r7 + 3b6e: 3b51 cmpnei r3, 17 + 3b70: aa20 st.h r1, (r2, 0x0) + 3b72: 0bf8 bt 0x3b62 // 3b62 + 3b74: 3300 movi r3, 0 + 3b76: a460 st.b r3, (r4, 0x0) + 3b78: 3311 movi r3, 17 + 3b7a: 2300 addi r3, 1 + 3b7c: 74cc zextb r3, r3 + 3b7e: 3b10 cmphsi r3, 17 + 3b80: 0fe5 bf 0x3b4a // 3b4a + 3b82: 1484 pop r4-r7 + 3b84: 20000054 .long 0x20000054 + 3b88: 200004fe .long 0x200004fe + 3b8c: 2000036f .long 0x2000036f + 3b90: 20000258 .long 0x20000258 + +Disassembly of section .text.TKEYIntHandler: + +00003b94 : + 3b94: 1460 nie + 3b96: 1462 ipush + 3b98: 14d1 push r4, r15 + 3b9a: 109e lrw r4, 0x20000068 // 3c10 + 3b9c: 9460 ld.w r3, (r4, 0x0) + 3b9e: 3b40 cmpnei r3, 0 + 3ba0: 080b bt 0x3bb6 // 3bb6 + 3ba2: 3301 movi r3, 1 + 3ba4: b460 st.w r3, (r4, 0x0) + 3ba6: 107c lrw r3, 0x200002ec // 3c14 + 3ba8: 8360 ld.b r3, (r3, 0x0) + 3baa: 3b41 cmpnei r3, 1 + 3bac: 0805 bt 0x3bb6 // 3bb6 + 3bae: e3ffffc7 bsr 0x3b3c // 3b3c + 3bb2: 3301 movi r3, 1 + 3bb4: a464 st.b r3, (r4, 0x4) + 3bb6: 1079 lrw r3, 0x20000058 // 3c18 + 3bb8: 3101 movi r1, 1 + 3bba: 9360 ld.w r3, (r3, 0x0) + 3bbc: 934a ld.w r2, (r3, 0x28) + 3bbe: 6884 and r2, r1 + 3bc0: 3a40 cmpnei r2, 0 + 3bc2: 0c02 bf 0x3bc6 // 3bc6 + 3bc4: b32c st.w r1, (r3, 0x30) + 3bc6: 934a ld.w r2, (r3, 0x28) + 3bc8: 3102 movi r1, 2 + 3bca: 6884 and r2, r1 + 3bcc: 3a40 cmpnei r2, 0 + 3bce: 0c02 bf 0x3bd2 // 3bd2 + 3bd0: b32c st.w r1, (r3, 0x30) + 3bd2: 934a ld.w r2, (r3, 0x28) + 3bd4: 3104 movi r1, 4 + 3bd6: 6884 and r2, r1 + 3bd8: 3a40 cmpnei r2, 0 + 3bda: 0c02 bf 0x3bde // 3bde + 3bdc: b32c st.w r1, (r3, 0x30) + 3bde: 934a ld.w r2, (r3, 0x28) + 3be0: 3108 movi r1, 8 + 3be2: 6884 and r2, r1 + 3be4: 3a40 cmpnei r2, 0 + 3be6: 0c02 bf 0x3bea // 3bea + 3be8: b32c st.w r1, (r3, 0x30) + 3bea: 934a ld.w r2, (r3, 0x28) + 3bec: 3110 movi r1, 16 + 3bee: 6884 and r2, r1 + 3bf0: 3a40 cmpnei r2, 0 + 3bf2: 0c02 bf 0x3bf6 // 3bf6 + 3bf4: b32c st.w r1, (r3, 0x30) + 3bf6: 934a ld.w r2, (r3, 0x28) + 3bf8: 3120 movi r1, 32 + 3bfa: 6884 and r2, r1 + 3bfc: 3a40 cmpnei r2, 0 + 3bfe: 0c02 bf 0x3c02 // 3c02 + 3c00: b32c st.w r1, (r3, 0x30) + 3c02: d9ee2001 ld.w r15, (r14, 0x4) + 3c06: 9880 ld.w r4, (r14, 0x0) + 3c08: 1402 addi r14, r14, 8 + 3c0a: 1463 ipop + 3c0c: 1461 nir + 3c0e: 0000 bkpt + 3c10: 20000068 .long 0x20000068 + 3c14: 200002ec .long 0x200002ec + 3c18: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00003c1c : + 3c1c: 14c2 push r4-r5 + 3c1e: 3200 movi r2, 0 + 3c20: 3000 movi r0, 0 + 3c22: 1088 lrw r4, 0x2000038c // 3c40 + 3c24: 3501 movi r5, 1 + 3c26: 3120 movi r1, 32 + 3c28: 9460 ld.w r3, (r4, 0x0) + 3c2a: 70c9 lsr r3, r2 + 3c2c: 68d4 and r3, r5 + 3c2e: 3b40 cmpnei r3, 0 + 3c30: 0c02 bf 0x3c34 // 3c34 + 3c32: 2000 addi r0, 1 + 3c34: 2200 addi r2, 1 + 3c36: 644a cmpne r2, r1 + 3c38: 0bf8 bt 0x3c28 // 3c28 + 3c3a: 7400 zextb r0, r0 + 3c3c: 1482 pop r4-r5 + 3c3e: 0000 bkpt + 3c40: 2000038c .long 0x2000038c + +Disassembly of section .text.TK_Scan_Start: + +00003c44 : + 3c44: 1046 lrw r2, 0x20000068 // 3c5c + 3c46: 8264 ld.b r3, (r2, 0x4) + 3c48: 74cc zextb r3, r3 + 3c4a: 3b41 cmpnei r3, 1 + 3c4c: 0807 bt 0x3c5a // 3c5a + 3c4e: 1025 lrw r1, 0x20000058 // 3c60 + 3c50: 9120 ld.w r1, (r1, 0x0) + 3c52: b162 st.w r3, (r1, 0x8) + 3c54: 3300 movi r3, 0 + 3c56: b260 st.w r3, (r2, 0x0) + 3c58: a264 st.b r3, (r2, 0x4) + 3c5a: 783c jmp r15 + 3c5c: 20000068 .long 0x20000068 + 3c60: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00003c64 : + 3c64: 14d4 push r4-r7, r15 + 3c66: 1425 subi r14, r14, 20 + 3c68: 1271 lrw r3, 0x200000f8 // 3dac + 3c6a: 8360 ld.b r3, (r3, 0x0) + 3c6c: b860 st.w r3, (r14, 0x0) + 3c6e: 3400 movi r4, 0 + 3c70: 1270 lrw r3, 0x200000cc // 3db0 + 3c72: 8360 ld.b r3, (r3, 0x0) + 3c74: b861 st.w r3, (r14, 0x4) + 3c76: 12f0 lrw r7, 0x20000302 // 3db4 + 3c78: 1270 lrw r3, 0x200000d5 // 3db8 + 3c7a: 83a0 ld.b r5, (r3, 0x0) + 3c7c: 1270 lrw r3, 0x200000d4 // 3dbc + 3c7e: 8360 ld.b r3, (r3, 0x0) + 3c80: b862 st.w r3, (r14, 0x8) + 3c82: 6d9f mov r6, r7 + 3c84: 126f lrw r3, 0x200004fe // 3dc0 + 3c86: b863 st.w r3, (r14, 0xc) + 3c88: 4461 lsli r3, r4, 1 + 3c8a: 9843 ld.w r2, (r14, 0xc) + 3c8c: 608c addu r2, r3 + 3c8e: 122e lrw r1, 0x20000258 // 3dc4 + 3c90: 604c addu r1, r3 + 3c92: 8a40 ld.h r2, (r2, 0x0) + 3c94: 8920 ld.h r1, (r1, 0x0) + 3c96: 6086 subu r2, r1 + 3c98: 748b sexth r2, r2 + 3c9a: 5f2c addu r1, r7, r3 + 3c9c: a940 st.h r2, (r1, 0x0) + 3c9e: 8940 ld.h r2, (r1, 0x0) + 3ca0: 748b sexth r2, r2 + 3ca2: 3adf btsti r2, 31 + 3ca4: 1249 lrw r2, 0x200004ba // 3dc8 + 3ca6: 608c addu r2, r3 + 3ca8: 0c37 bf 0x3d16 // 3d16 + 3caa: 3100 movi r1, 0 + 3cac: aa20 st.h r1, (r2, 0x0) + 3cae: 9840 ld.w r2, (r14, 0x0) + 3cb0: 3a01 cmphsi r2, 2 + 3cb2: 0c6d bf 0x3d8c // 3d8c + 3cb4: 4461 lsli r3, r4, 1 + 3cb6: 5e2c addu r1, r6, r3 + 3cb8: 1205 lrw r0, 0x20000126 // 3dcc + 3cba: 8940 ld.h r2, (r1, 0x0) + 3cbc: 60c0 addu r3, r0 + 3cbe: 748b sexth r2, r2 + 3cc0: 8b60 ld.h r3, (r3, 0x0) + 3cc2: 648d cmplt r3, r2 + 3cc4: 9840 ld.w r2, (r14, 0x0) + 3cc6: 7cc8 mult r3, r2 + 3cc8: 0c2a bf 0x3d1c // 3d1c + 3cca: 8940 ld.h r2, (r1, 0x0) + 3ccc: 748b sexth r2, r2 + 3cce: 64c9 cmplt r2, r3 + 3cd0: 0c26 bf 0x3d1c // 3d1c + 3cd2: 1240 lrw r2, 0x200002f0 // 3dd0 + 3cd4: 6090 addu r2, r4 + 3cd6: 8260 ld.b r3, (r2, 0x0) + 3cd8: 2300 addi r3, 1 + 3cda: 74cc zextb r3, r3 + 3cdc: a260 st.b r3, (r2, 0x0) + 3cde: 3100 movi r1, 0 + 3ce0: 117d lrw r3, 0x200002d6 // 3dd4 + 3ce2: 60d0 addu r3, r4 + 3ce4: a320 st.b r1, (r3, 0x0) + 3ce6: 117d lrw r3, 0x200003b2 // 3dd8 + 3ce8: 60d0 addu r3, r4 + 3cea: a320 st.b r1, (r3, 0x0) + 3cec: 117c lrw r3, 0x2000042c // 3ddc + 3cee: 60d0 addu r3, r4 + 3cf0: a320 st.b r1, (r3, 0x0) + 3cf2: 8260 ld.b r3, (r2, 0x0) + 3cf4: 9821 ld.w r1, (r14, 0x4) + 3cf6: 64c4 cmphs r1, r3 + 3cf8: 081f bt 0x3d36 // 3d36 + 3cfa: 3d40 cmpnei r5, 0 + 3cfc: 0852 bt 0x3da0 // 3da0 + 3cfe: 1139 lrw r1, 0x200002e8 // 3de0 + 3d00: 9160 ld.w r3, (r1, 0x0) + 3d02: 3b40 cmpnei r3, 0 + 3d04: 0806 bt 0x3d10 // 3d10 + 3d06: 9100 ld.w r0, (r1, 0x0) + 3d08: 3301 movi r3, 1 + 3d0a: 70d0 lsl r3, r4 + 3d0c: 6cc0 or r3, r0 + 3d0e: b160 st.w r3, (r1, 0x0) + 3d10: 3300 movi r3, 0 + 3d12: a260 st.b r3, (r2, 0x0) + 3d14: 0411 br 0x3d36 // 3d36 + 3d16: 8920 ld.h r1, (r1, 0x0) + 3d18: 7445 zexth r1, r1 + 3d1a: 07c9 br 0x3cac // 3cac + 3d1c: 4441 lsli r2, r4, 1 + 3d1e: 6098 addu r2, r6 + 3d20: 8a40 ld.h r2, (r2, 0x0) + 3d22: 748b sexth r2, r2 + 3d24: 648d cmplt r3, r2 + 3d26: 0c08 bf 0x3d36 // 3d36 + 3d28: 3300 movi r3, 0 + 3d2a: 114e lrw r2, 0x200002e8 // 3de0 + 3d2c: 2b01 subi r3, 2 + 3d2e: 9220 ld.w r1, (r2, 0x0) + 3d30: 70d3 rotl r3, r4 + 3d32: 68c4 and r3, r1 + 3d34: b260 st.w r3, (r2, 0x0) + 3d36: 4441 lsli r2, r4, 1 + 3d38: 5e68 addu r3, r6, r2 + 3d3a: 8b60 ld.h r3, (r3, 0x0) + 3d3c: 74cf sexth r3, r3 + 3d3e: b864 st.w r3, (r14, 0x10) + 3d40: 3105 movi r1, 5 + 3d42: 1163 lrw r3, 0x20000126 // 3dcc + 3d44: 608c addu r2, r3 + 3d46: 8a00 ld.h r0, (r2, 0x0) + 3d48: 4002 lsli r0, r0, 2 + 3d4a: e3fff8d7 bsr 0x2ef8 // 2ef8 <__divsi3> + 3d4e: 9864 ld.w r3, (r14, 0x10) + 3d50: 640d cmplt r3, r0 + 3d52: 0c18 bf 0x3d82 // 3d82 + 3d54: 1140 lrw r2, 0x200002d6 // 3dd4 + 3d56: 6090 addu r2, r4 + 3d58: 8260 ld.b r3, (r2, 0x0) + 3d5a: 2300 addi r3, 1 + 3d5c: 74cc zextb r3, r3 + 3d5e: a260 st.b r3, (r2, 0x0) + 3d60: 3100 movi r1, 0 + 3d62: 107c lrw r3, 0x200002f0 // 3dd0 + 3d64: 60d0 addu r3, r4 + 3d66: a320 st.b r1, (r3, 0x0) + 3d68: 8260 ld.b r3, (r2, 0x0) + 3d6a: 9822 ld.w r1, (r14, 0x8) + 3d6c: 64c4 cmphs r1, r3 + 3d6e: 080a bt 0x3d82 // 3d82 + 3d70: 3300 movi r3, 0 + 3d72: 103c lrw r1, 0x200002e8 // 3de0 + 3d74: 2b01 subi r3, 2 + 3d76: 9100 ld.w r0, (r1, 0x0) + 3d78: 70d3 rotl r3, r4 + 3d7a: 68c0 and r3, r0 + 3d7c: b160 st.w r3, (r1, 0x0) + 3d7e: 3300 movi r3, 0 + 3d80: a260 st.b r3, (r2, 0x0) + 3d82: 2400 addi r4, 1 + 3d84: 3c51 cmpnei r4, 17 + 3d86: 0b81 bt 0x3c88 // 3c88 + 3d88: 1405 addi r14, r14, 20 + 3d8a: 1494 pop r4-r7, r15 + 3d8c: 60d8 addu r3, r6 + 3d8e: 4441 lsli r2, r4, 1 + 3d90: 102f lrw r1, 0x20000126 // 3dcc + 3d92: 8b60 ld.h r3, (r3, 0x0) + 3d94: 6084 addu r2, r1 + 3d96: 74cf sexth r3, r3 + 3d98: 8a40 ld.h r2, (r2, 0x0) + 3d9a: 64c9 cmplt r2, r3 + 3d9c: 0fcd bf 0x3d36 // 3d36 + 3d9e: 079a br 0x3cd2 // 3cd2 + 3da0: 3d41 cmpnei r5, 1 + 3da2: 0bb7 bt 0x3d10 // 3d10 + 3da4: 102f lrw r1, 0x200002e8 // 3de0 + 3da6: 6cd7 mov r3, r5 + 3da8: 9100 ld.w r0, (r1, 0x0) + 3daa: 07b0 br 0x3d0a // 3d0a + 3dac: 200000f8 .long 0x200000f8 + 3db0: 200000cc .long 0x200000cc + 3db4: 20000302 .long 0x20000302 + 3db8: 200000d5 .long 0x200000d5 + 3dbc: 200000d4 .long 0x200000d4 + 3dc0: 200004fe .long 0x200004fe + 3dc4: 20000258 .long 0x20000258 + 3dc8: 200004ba .long 0x200004ba + 3dcc: 20000126 .long 0x20000126 + 3dd0: 200002f0 .long 0x200002f0 + 3dd4: 200002d6 .long 0x200002d6 + 3dd8: 200003b2 .long 0x200003b2 + 3ddc: 2000042c .long 0x2000042c + 3de0: 200002e8 .long 0x200002e8 + +Disassembly of section .text.TK_overflow_predict: + +00003de4 : + 3de4: 14d4 push r4-r7, r15 + 3de6: 1421 subi r14, r14, 4 + 3de8: 11d9 lrw r6, 0x20000068 // 3ecc + 3dea: 8665 ld.b r3, (r6, 0x5) + 3dec: 3b41 cmpnei r3, 1 + 3dee: 085f bt 0x3eac // 3eac + 3df0: 1158 lrw r2, 0x20000408 // 3ed0 + 3df2: 8260 ld.b r3, (r2, 0x0) + 3df4: 2300 addi r3, 1 + 3df6: 74cc zextb r3, r3 + 3df8: a260 st.b r3, (r2, 0x0) + 3dfa: 8260 ld.b r3, (r2, 0x0) + 3dfc: 1136 lrw r1, 0x200000f9 // 3ed4 + 3dfe: 8120 ld.b r1, (r1, 0x0) + 3e00: 64c4 cmphs r1, r3 + 3e02: 0855 bt 0x3eac // 3eac + 3e04: 3300 movi r3, 0 + 3e06: a260 st.b r3, (r2, 0x0) + 3e08: 3500 movi r5, 0 + 3e0a: 11f4 lrw r7, 0x200000fc // 3ed8 + 3e0c: 2605 addi r6, 6 + 3e0e: 9760 ld.w r3, (r7, 0x0) + 3e10: 70d5 lsr r3, r5 + 3e12: 3201 movi r2, 1 + 3e14: 68c8 and r3, r2 + 3e16: 3b40 cmpnei r3, 0 + 3e18: 0c34 bf 0x3e80 // 3e80 + 3e1a: 4581 lsli r4, r5, 1 + 3e1c: 5e70 addu r3, r6, r4 + 3e1e: 8b00 ld.h r0, (r3, 0x0) + 3e20: e3ffebc0 bsr 0x15a0 // 15a0 <__floatunsidf> + 3e24: 6cc7 mov r3, r1 + 3e26: 3180 movi r1, 128 + 3e28: 6c83 mov r2, r0 + 3e2a: 4137 lsli r1, r1, 23 + 3e2c: 3000 movi r0, 0 + 3e2e: e3ffe1c3 bsr 0x1b4 // 1b4 <__GI_pow> + 3e32: 116b lrw r3, 0x20000102 // 3edc + 3e34: 60d0 addu r3, r4 + 3e36: 8b60 ld.h r3, (r3, 0x0) + 3e38: 4364 lsli r3, r3, 4 + 3e3a: 230e addi r3, 15 + 3e3c: b860 st.w r3, (r14, 0x0) + 3e3e: e3ffe769 bsr 0xd10 // d10 <__fixunsdfsi> + 3e42: 9860 ld.w r3, (r14, 0x0) + 3e44: 7cc0 mult r3, r0 + 3e46: 1147 lrw r2, 0x20000498 // 3ee0 + 3e48: 740d zexth r0, r3 + 3e4a: 6090 addu r2, r4 + 3e4c: 1166 lrw r3, 0x200004fe // 3ee4 + 3e4e: 60d0 addu r3, r4 + 3e50: aa00 st.h r0, (r2, 0x0) + 3e52: 8b60 ld.h r3, (r3, 0x0) + 3e54: 8a00 ld.h r0, (r2, 0x0) + 3e56: 7401 zexth r0, r0 + 3e58: 325f movi r2, 95 + 3e5a: 74cd zexth r3, r3 + 3e5c: 7c08 mult r0, r2 + 3e5e: 3164 movi r1, 100 + 3e60: b860 st.w r3, (r14, 0x0) + 3e62: e3fff84b bsr 0x2ef8 // 2ef8 <__divsi3> + 3e66: 9860 ld.w r3, (r14, 0x0) + 3e68: 64c1 cmplt r0, r3 + 3e6a: 0c0b bf 0x3e80 // 3e80 + 3e6c: 107f lrw r3, 0x200000d6 // 3ee8 + 3e6e: 610c addu r4, r3 + 3e70: 8c60 ld.h r3, (r4, 0x0) + 3e72: 3b06 cmphsi r3, 7 + 3e74: 0806 bt 0x3e80 // 3e80 + 3e76: 2300 addi r3, 1 + 3e78: ac60 st.h r3, (r4, 0x0) + 3e7a: 3201 movi r2, 1 + 3e7c: 107c lrw r3, 0x2000035d // 3eec + 3e7e: a340 st.b r2, (r3, 0x0) + 3e80: 2500 addi r5, 1 + 3e82: 3d51 cmpnei r5, 17 + 3e84: 0bc5 bt 0x3e0e // 3e0e + 3e86: 107a lrw r3, 0x2000035d // 3eec + 3e88: 8340 ld.b r2, (r3, 0x0) + 3e8a: 3a41 cmpnei r2, 1 + 3e8c: 0810 bt 0x3eac // 3eac + 3e8e: 3200 movi r2, 0 + 3e90: a340 st.b r2, (r3, 0x0) + 3e92: 3200 movi r2, 0 + 3e94: 1077 lrw r3, 0x20000058 // 3ef0 + 3e96: 1018 lrw r0, 0x2000042b // 3ef4 + 3e98: 10b8 lrw r5, 0x20000464 // 3ef8 + 3e9a: 10d4 lrw r6, 0x200000d6 // 3ee8 + 3e9c: 9360 ld.w r3, (r3, 0x0) + 3e9e: b342 st.w r2, (r3, 0x8) + 3ea0: 1077 lrw r3, 0x20000054 // 3efc + 3ea2: 9380 ld.w r4, (r3, 0x0) + 3ea4: 3300 movi r3, 0 + 3ea6: 8040 ld.b r2, (r0, 0x0) + 3ea8: 648c cmphs r3, r2 + 3eaa: 0c03 bf 0x3eb0 // 3eb0 + 3eac: 1401 addi r14, r14, 4 + 3eae: 1494 pop r4-r7, r15 + 3eb0: 5d4c addu r2, r5, r3 + 3eb2: 8240 ld.b r2, (r2, 0x0) + 3eb4: 4241 lsli r2, r2, 1 + 3eb6: 4322 lsli r1, r3, 2 + 3eb8: 6098 addu r2, r6 + 3eba: 6050 addu r1, r4 + 3ebc: 8a40 ld.h r2, (r2, 0x0) + 3ebe: 91f2 ld.w r7, (r1, 0x48) + 3ec0: 4254 lsli r2, r2, 20 + 3ec2: 6c9c or r2, r7 + 3ec4: 2300 addi r3, 1 + 3ec6: b152 st.w r2, (r1, 0x48) + 3ec8: 74cc zextb r3, r3 + 3eca: 07ee br 0x3ea6 // 3ea6 + 3ecc: 20000068 .long 0x20000068 + 3ed0: 20000408 .long 0x20000408 + 3ed4: 200000f9 .long 0x200000f9 + 3ed8: 200000fc .long 0x200000fc + 3edc: 20000102 .long 0x20000102 + 3ee0: 20000498 .long 0x20000498 + 3ee4: 200004fe .long 0x200004fe + 3ee8: 200000d6 .long 0x200000d6 + 3eec: 2000035d .long 0x2000035d + 3ef0: 20000058 .long 0x20000058 + 3ef4: 2000042b .long 0x2000042b + 3ef8: 20000464 .long 0x20000464 + 3efc: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00003f00 : + 3f00: 14c4 push r4-r7 + 3f02: 1422 subi r14, r14, 8 + 3f04: 1348 lrw r2, 0x2000038a // 40a4 + 3f06: 8260 ld.b r3, (r2, 0x0) + 3f08: 2300 addi r3, 1 + 3f0a: 74cc zextb r3, r3 + 3f0c: a260 st.b r3, (r2, 0x0) + 3f0e: 8260 ld.b r3, (r2, 0x0) + 3f10: 1326 lrw r1, 0x200000f9 // 40a8 + 3f12: 8120 ld.b r1, (r1, 0x0) + 3f14: 644c cmphs r3, r1 + 3f16: 0cad bf 0x4070 // 4070 + 3f18: 3300 movi r3, 0 + 3f1a: a260 st.b r3, (r2, 0x0) + 3f1c: 1364 lrw r3, 0x200002e8 // 40ac + 3f1e: 9360 ld.w r3, (r3, 0x0) + 3f20: 3b40 cmpnei r3, 0 + 3f22: 08a7 bt 0x4070 // 4070 + 3f24: 1323 lrw r1, 0x20000302 // 40b0 + 3f26: 6dc7 mov r7, r1 + 3f28: b820 st.w r1, (r14, 0x0) + 3f2a: 3200 movi r2, 0 + 3f2c: 1362 lrw r3, 0x20000126 // 40b4 + 3f2e: 1323 lrw r1, 0x20000258 // 40b8 + 3f30: 4201 lsli r0, r2, 1 + 3f32: 9880 ld.w r4, (r14, 0x0) + 3f34: 6100 addu r4, r0 + 3f36: 8c80 ld.h r4, (r4, 0x0) + 3f38: 7513 sexth r4, r4 + 3f3a: 3cdf btsti r4, 31 + 3f3c: 0c27 bf 0x3f8a // 3f8a + 3f3e: 13a0 lrw r5, 0x200004fe // 40bc + 3f40: 5980 addu r4, r1, r0 + 3f42: 6014 addu r0, r5 + 3f44: b881 st.w r4, (r14, 0x4) + 3f46: 8c80 ld.h r4, (r4, 0x0) + 3f48: 88c0 ld.h r6, (r0, 0x0) + 3f4a: 7511 zexth r4, r4 + 3f4c: 7599 zexth r6, r6 + 3f4e: 8ba0 ld.h r5, (r3, 0x0) + 3f50: 611a subu r4, r6 + 3f52: 6551 cmplt r4, r5 + 3f54: 081b bt 0x3f8a // 3f8a + 3f56: 9881 ld.w r4, (r14, 0x4) + 3f58: 8c80 ld.h r4, (r4, 0x0) + 3f5a: 8800 ld.h r0, (r0, 0x0) + 3f5c: 7511 zexth r4, r4 + 3f5e: 7401 zexth r0, r0 + 3f60: 5c01 subu r0, r4, r0 + 3f62: 4581 lsli r4, r5, 1 + 3f64: 6150 addu r5, r4 + 3f66: 6541 cmplt r0, r5 + 3f68: 0c11 bf 0x3f8a // 3f8a + 3f6a: 1296 lrw r4, 0x2000042c // 40c0 + 3f6c: 6108 addu r4, r2 + 3f6e: 8400 ld.b r0, (r4, 0x0) + 3f70: 2000 addi r0, 1 + 3f72: 7400 zextb r0, r0 + 3f74: a400 st.b r0, (r4, 0x0) + 3f76: 1214 lrw r0, 0x20000088 // 40c4 + 3f78: 84a0 ld.b r5, (r4, 0x0) + 3f7a: 8008 ld.b r0, (r0, 0x8) + 3f7c: 6540 cmphs r0, r5 + 3f7e: 0806 bt 0x3f8a // 3f8a + 3f80: 1212 lrw r0, 0x2000036f // 40c8 + 3f82: 3501 movi r5, 1 + 3f84: a0a0 st.b r5, (r0, 0x0) + 3f86: 3000 movi r0, 0 + 3f88: a400 st.b r0, (r4, 0x0) + 3f8a: 4201 lsli r0, r2, 1 + 3f8c: 5f80 addu r4, r7, r0 + 3f8e: 8c80 ld.h r4, (r4, 0x0) + 3f90: 7513 sexth r4, r4 + 3f92: 3c20 cmplti r4, 1 + 3f94: 0870 bt 0x4074 // 4074 + 3f96: 128a lrw r4, 0x200004fe // 40bc + 3f98: 6100 addu r4, r0 + 3f9a: 59a0 addu r5, r1, r0 + 3f9c: 8c80 ld.h r4, (r4, 0x0) + 3f9e: 8da0 ld.h r5, (r5, 0x0) + 3fa0: 7555 zexth r5, r5 + 3fa2: 7511 zexth r4, r4 + 3fa4: 6116 subu r4, r5 + 3fa6: 8ba0 ld.h r5, (r3, 0x0) + 3fa8: 45a2 lsli r5, r5, 2 + 3faa: 6551 cmplt r4, r5 + 3fac: 0864 bt 0x4074 // 4074 + 3fae: 1288 lrw r4, 0x200003b2 // 40cc + 3fb0: 6108 addu r4, r2 + 3fb2: 84a0 ld.b r5, (r4, 0x0) + 3fb4: 2500 addi r5, 1 + 3fb6: 7554 zextb r5, r5 + 3fb8: a4a0 st.b r5, (r4, 0x0) + 3fba: 12a3 lrw r5, 0x20000088 // 40c4 + 3fbc: 84c0 ld.b r6, (r4, 0x0) + 3fbe: 85a9 ld.b r5, (r5, 0x9) + 3fc0: 6594 cmphs r5, r6 + 3fc2: 0806 bt 0x3fce // 3fce + 3fc4: 12a1 lrw r5, 0x2000036f // 40c8 + 3fc6: 3601 movi r6, 1 + 3fc8: a5c0 st.b r6, (r5, 0x0) + 3fca: 3500 movi r5, 0 + 3fcc: a4a0 st.b r5, (r4, 0x0) + 3fce: 5f80 addu r4, r7, r0 + 3fd0: 8c80 ld.h r4, (r4, 0x0) + 3fd2: 7513 sexth r4, r4 + 3fd4: 3cdf btsti r4, 31 + 3fd6: 0c10 bf 0x3ff6 // 3ff6 + 3fd8: 11d9 lrw r6, 0x200004fe // 40bc + 3fda: 59a0 addu r5, r1, r0 + 3fdc: 6180 addu r6, r0 + 3fde: 8d80 ld.h r4, (r5, 0x0) + 3fe0: 8ec0 ld.h r6, (r6, 0x0) + 3fe2: 7599 zexth r6, r6 + 3fe4: 7511 zexth r4, r4 + 3fe6: 611a subu r4, r6 + 3fe8: 8bc0 ld.h r6, (r3, 0x0) + 3fea: 6591 cmplt r4, r6 + 3fec: 0c05 bf 0x3ff6 // 3ff6 + 3fee: 8d80 ld.h r4, (r5, 0x0) + 3ff0: 2c00 subi r4, 1 + 3ff2: 7511 zexth r4, r4 + 3ff4: ad80 st.h r4, (r5, 0x0) + 3ff6: 5f80 addu r4, r7, r0 + 3ff8: 8c80 ld.h r4, (r4, 0x0) + 3ffa: 7513 sexth r4, r4 + 3ffc: 3cdf btsti r4, 31 + 3ffe: 0c11 bf 0x4020 // 4020 + 4000: 11cf lrw r6, 0x200004fe // 40bc + 4002: 59a0 addu r5, r1, r0 + 4004: 6180 addu r6, r0 + 4006: 8d80 ld.h r4, (r5, 0x0) + 4008: 8ec0 ld.h r6, (r6, 0x0) + 400a: 7599 zexth r6, r6 + 400c: 7511 zexth r4, r4 + 400e: 611a subu r4, r6 + 4010: 8bc0 ld.h r6, (r3, 0x0) + 4012: 4ec1 lsri r6, r6, 1 + 4014: 6591 cmplt r4, r6 + 4016: 0805 bt 0x4020 // 4020 + 4018: 8d80 ld.h r4, (r5, 0x0) + 401a: 2c01 subi r4, 2 + 401c: 7511 zexth r4, r4 + 401e: ad80 st.h r4, (r5, 0x0) + 4020: 5fa0 addu r5, r7, r0 + 4022: 8d80 ld.h r4, (r5, 0x0) + 4024: 7513 sexth r4, r4 + 4026: 3c20 cmplti r4, 1 + 4028: 080c bt 0x4040 // 4040 + 402a: 8da0 ld.h r5, (r5, 0x0) + 402c: 8b80 ld.h r4, (r3, 0x0) + 402e: 7557 sexth r5, r5 + 4030: 4c81 lsri r4, r4, 1 + 4032: 6515 cmplt r5, r4 + 4034: 0c06 bf 0x4040 // 4040 + 4036: 59a0 addu r5, r1, r0 + 4038: 8d80 ld.h r4, (r5, 0x0) + 403a: 2400 addi r4, 1 + 403c: 7511 zexth r4, r4 + 403e: ad80 st.h r4, (r5, 0x0) + 4040: 5fa0 addu r5, r7, r0 + 4042: 8d80 ld.h r4, (r5, 0x0) + 4044: 7513 sexth r4, r4 + 4046: 3c20 cmplti r4, 1 + 4048: 0810 bt 0x4068 // 4068 + 404a: 8dc0 ld.h r6, (r5, 0x0) + 404c: 759b sexth r6, r6 + 404e: 8b80 ld.h r4, (r3, 0x0) + 4050: 6519 cmplt r6, r4 + 4052: 0c0b bf 0x4068 // 4068 + 4054: 8da0 ld.h r5, (r5, 0x0) + 4056: 7557 sexth r5, r5 + 4058: 4c81 lsri r4, r4, 1 + 405a: 6515 cmplt r5, r4 + 405c: 0806 bt 0x4068 // 4068 + 405e: 6004 addu r0, r1 + 4060: 8880 ld.h r4, (r0, 0x0) + 4062: 2401 addi r4, 2 + 4064: 7511 zexth r4, r4 + 4066: a880 st.h r4, (r0, 0x0) + 4068: 2200 addi r2, 1 + 406a: 3a51 cmpnei r2, 17 + 406c: 2301 addi r3, 2 + 406e: 0b61 bt 0x3f30 // 3f30 + 4070: 1402 addi r14, r14, 8 + 4072: 1484 pop r4-r7 + 4074: 5f80 addu r4, r7, r0 + 4076: 8c80 ld.h r4, (r4, 0x0) + 4078: 7513 sexth r4, r4 + 407a: 3cdf btsti r4, 31 + 407c: 0fa9 bf 0x3fce // 3fce + 407e: 10b0 lrw r5, 0x200004fe // 40bc + 4080: 5980 addu r4, r1, r0 + 4082: 6140 addu r5, r0 + 4084: 8c80 ld.h r4, (r4, 0x0) + 4086: 8da0 ld.h r5, (r5, 0x0) + 4088: 7555 zexth r5, r5 + 408a: 8bc0 ld.h r6, (r3, 0x0) + 408c: 7511 zexth r4, r4 + 408e: 6116 subu r4, r5 + 4090: 46a1 lsli r5, r6, 1 + 4092: 6158 addu r5, r6 + 4094: 6551 cmplt r4, r5 + 4096: 0b9c bt 0x3fce // 3fce + 4098: 108c lrw r4, 0x2000036f // 40c8 + 409a: 3501 movi r5, 1 + 409c: a4a0 st.b r5, (r4, 0x0) + 409e: 6c03 mov r0, r0 + 40a0: 0797 br 0x3fce // 3fce + 40a2: 0000 bkpt + 40a4: 2000038a .long 0x2000038a + 40a8: 200000f9 .long 0x200000f9 + 40ac: 200002e8 .long 0x200002e8 + 40b0: 20000302 .long 0x20000302 + 40b4: 20000126 .long 0x20000126 + 40b8: 20000258 .long 0x20000258 + 40bc: 200004fe .long 0x200004fe + 40c0: 2000042c .long 0x2000042c + 40c4: 20000088 .long 0x20000088 + 40c8: 2000036f .long 0x2000036f + 40cc: 200003b2 .long 0x200003b2 + +Disassembly of section .text.TK_result_prog: + +000040d0 : + 40d0: 14d2 push r4-r5, r15 + 40d2: 1050 lrw r2, 0x200002e8 // 4110 + 40d4: 1090 lrw r4, 0x2000038c // 4114 + 40d6: 9260 ld.w r3, (r2, 0x0) + 40d8: 3b40 cmpnei r3, 0 + 40da: 0c02 bf 0x40de // 40de + 40dc: 9260 ld.w r3, (r2, 0x0) + 40de: b460 st.w r3, (r4, 0x0) + 40e0: 9460 ld.w r3, (r4, 0x0) + 40e2: 3b40 cmpnei r3, 0 + 40e4: 10ad lrw r5, 0x20000460 // 4118 + 40e6: 0c11 bf 0x4108 // 4108 + 40e8: 9440 ld.w r2, (r4, 0x0) + 40ea: 9560 ld.w r3, (r5, 0x0) + 40ec: 64ca cmpne r2, r3 + 40ee: 0c03 bf 0x40f4 // 40f4 + 40f0: 9460 ld.w r3, (r4, 0x0) + 40f2: b560 st.w r3, (r5, 0x0) + 40f4: e3fffd94 bsr 0x3c1c // 3c1c + 40f8: 1069 lrw r3, 0x20000100 // 411c + 40fa: 8360 ld.b r3, (r3, 0x0) + 40fc: 640c cmphs r3, r0 + 40fe: 0804 bt 0x4106 // 4106 + 4100: 3300 movi r3, 0 + 4102: b460 st.w r3, (r4, 0x0) + 4104: b560 st.w r3, (r5, 0x0) + 4106: 1492 pop r4-r5, r15 + 4108: 1046 lrw r2, 0x20000384 // 4120 + 410a: b560 st.w r3, (r5, 0x0) + 410c: b260 st.w r3, (r2, 0x0) + 410e: 07fc br 0x4106 // 4106 + 4110: 200002e8 .long 0x200002e8 + 4114: 2000038c .long 0x2000038c + 4118: 20000460 .long 0x20000460 + 411c: 20000100 .long 0x20000100 + 4120: 20000384 .long 0x20000384 + +Disassembly of section .text.CORETHandler: + +00004124 : + 4124: 1460 nie + 4126: 1462 ipush + 4128: 14d1 push r4, r15 + 412a: 1077 lrw r3, 0x20000064 // 4184 + 412c: 3400 movi r4, 0 + 412e: 9360 ld.w r3, (r3, 0x0) + 4130: b386 st.w r4, (r3, 0x18) + 4132: 1076 lrw r3, 0x200002ec // 4188 + 4134: 8360 ld.b r3, (r3, 0x0) + 4136: 3b41 cmpnei r3, 1 + 4138: 0820 bt 0x4178 // 4178 + 413a: e3fffd85 bsr 0x3c44 // 3c44 + 413e: e3fffd93 bsr 0x3c64 // 3c64 + 4142: e3fffe51 bsr 0x3de4 // 3de4 + 4146: e3fffedd bsr 0x3f00 // 3f00 + 414a: e3ffffc3 bsr 0x40d0 // 40d0 + 414e: 1070 lrw r3, 0x2000038c // 418c + 4150: 9360 ld.w r3, (r3, 0x0) + 4152: 3b40 cmpnei r3, 0 + 4154: 0c12 bf 0x4178 // 4178 + 4156: 106f lrw r3, 0x200000d0 // 4190 + 4158: 9340 ld.w r2, (r3, 0x0) + 415a: 3a40 cmpnei r2, 0 + 415c: 0c0e bf 0x4178 // 4178 + 415e: 106e lrw r3, 0x20000384 // 4194 + 4160: 3064 movi r0, 100 + 4162: 9320 ld.w r1, (r3, 0x0) + 4164: 2100 addi r1, 1 + 4166: b320 st.w r1, (r3, 0x0) + 4168: 9320 ld.w r1, (r3, 0x0) + 416a: 7c80 mult r2, r0 + 416c: 6448 cmphs r2, r1 + 416e: 0805 bt 0x4178 // 4178 + 4170: 104a lrw r2, 0x2000036f // 4198 + 4172: 3101 movi r1, 1 + 4174: a220 st.b r1, (r2, 0x0) + 4176: b380 st.w r4, (r3, 0x0) + 4178: d9ee2001 ld.w r15, (r14, 0x4) + 417c: 9880 ld.w r4, (r14, 0x0) + 417e: 1402 addi r14, r14, 8 + 4180: 1463 ipop + 4182: 1461 nir + 4184: 20000064 .long 0x20000064 + 4188: 200002ec .long 0x200002ec + 418c: 2000038c .long 0x2000038c + 4190: 200000d0 .long 0x200000d0 + 4194: 20000384 .long 0x20000384 + 4198: 2000036f .long 0x2000036f + +Disassembly of section .text.std_clk_calib: + +0000419c : + 419c: 14d4 push r4-r7, r15 + 419e: 142d subi r14, r14, 52 + 41a0: 3201 movi r2, 1 + 41a2: 03ce lrw r6, 0x2000005c // 43e4 + 41a4: 6cc3 mov r3, r0 + 41a6: dc4e000a st.b r2, (r14, 0xa) + 41aa: 9640 ld.w r2, (r6, 0x0) + 41ac: 9247 ld.w r2, (r2, 0x1c) + 41ae: 7488 zextb r2, r2 + 41b0: dc4e0009 st.b r2, (r14, 0x9) + 41b4: d84e0009 ld.b r2, (r14, 0x9) + 41b8: 3a40 cmpnei r2, 0 + 41ba: 0c08 bf 0x41ca // 41ca + 41bc: d84e0009 ld.b r2, (r14, 0x9) + 41c0: 3a42 cmpnei r2, 2 + 41c2: 0c04 bf 0x41ca // 41ca + 41c4: 3000 movi r0, 0 + 41c6: 140d addi r14, r14, 52 + 41c8: 1494 pop r4-r7, r15 + 41ca: 0397 lrw r4, 0x2000000c // 43e8 + 41cc: 3209 movi r2, 9 + 41ce: 9400 ld.w r0, (r4, 0x0) + 41d0: 3b40 cmpnei r3, 0 + 41d2: b041 st.w r2, (r0, 0x4) + 41d4: 0857 bt 0x4282 // 4282 + 41d6: 3307 movi r3, 7 + 41d8: dc6e000b st.b r3, (r14, 0xb) + 41dc: 037b lrw r3, 0x2dc6c00 // 43ec + 41de: b863 st.w r3, (r14, 0xc) + 41e0: 3380 movi r3, 128 + 41e2: 4362 lsli r3, r3, 2 + 41e4: b867 st.w r3, (r14, 0x1c) + 41e6: d86e000b ld.b r3, (r14, 0xb) + 41ea: 74cc zextb r3, r3 + 41ec: b062 st.w r3, (r0, 0x8) + 41ee: 037e lrw r3, 0xffff // 43f0 + 41f0: b063 st.w r3, (r0, 0xc) + 41f2: 3201 movi r2, 1 + 41f4: 3101 movi r1, 1 + 41f6: 03bf lrw r5, 0x20000014 // 43f4 + 41f8: e3ffeeb0 bsr 0x1f58 // 1f58 + 41fc: 95e0 ld.w r7, (r5, 0x0) + 41fe: 137f lrw r3, 0xbe9c0005 // 43f8 + 4200: b760 st.w r3, (r7, 0x0) + 4202: 135f lrw r2, 0x30010 // 43fc + 4204: 3300 movi r3, 0 + 4206: b762 st.w r3, (r7, 0x8) + 4208: b743 st.w r2, (r7, 0xc) + 420a: 32d8 movi r2, 216 + 420c: b745 st.w r2, (r7, 0x14) + 420e: 974f ld.w r2, (r7, 0x3c) + 4210: 3aa2 bseti r2, 2 + 4212: b74f st.w r2, (r7, 0x3c) + 4214: 9803 ld.w r0, (r14, 0xc) + 4216: d82e000b ld.b r1, (r14, 0xb) + 421a: 327d movi r2, 125 + 421c: 2100 addi r1, 1 + 421e: 7c48 mult r1, r2 + 4220: b861 st.w r3, (r14, 0x4) + 4222: e3fff67d bsr 0x2f1c // 2f1c <__udivsi3> + 4226: b804 st.w r0, (r14, 0x10) + 4228: 32fa movi r2, 250 + 422a: 9824 ld.w r1, (r14, 0x10) + 422c: 4242 lsli r2, r2, 2 + 422e: 6448 cmphs r2, r1 + 4230: 0bca bt 0x41c4 // 41c4 + 4232: 9844 ld.w r2, (r14, 0x10) + 4234: 3178 movi r1, 120 + 4236: 9804 ld.w r0, (r14, 0x10) + 4238: b840 st.w r2, (r14, 0x0) + 423a: e3fff671 bsr 0x2f1c // 2f1c <__udivsi3> + 423e: 9840 ld.w r2, (r14, 0x0) + 4240: 6082 subu r2, r0 + 4242: b845 st.w r2, (r14, 0x14) + 4244: 9804 ld.w r0, (r14, 0x10) + 4246: 3178 movi r1, 120 + 4248: 9844 ld.w r2, (r14, 0x10) + 424a: b840 st.w r2, (r14, 0x0) + 424c: e3fff668 bsr 0x2f1c // 2f1c <__udivsi3> + 4250: 9840 ld.w r2, (r14, 0x0) + 4252: 6008 addu r0, r2 + 4254: b806 st.w r0, (r14, 0x18) + 4256: c0807020 psrclr ie + 425a: 9640 ld.w r2, (r6, 0x0) + 425c: 9254 ld.w r2, (r2, 0x50) + 425e: b848 st.w r2, (r14, 0x20) + 4260: 9861 ld.w r3, (r14, 0x4) + 4262: 9440 ld.w r2, (r4, 0x0) + 4264: b260 st.w r3, (r2, 0x0) + 4266: b761 st.w r3, (r7, 0x4) + 4268: d86e000a ld.b r3, (r14, 0xa) + 426c: 3b40 cmpnei r3, 0 + 426e: 083e bt 0x42ea // 42ea + 4270: e3ffee26 bsr 0x1ebc // 1ebc + 4274: 9400 ld.w r0, (r4, 0x0) + 4276: e3ffee47 bsr 0x1f04 // 1f04 + 427a: c1807420 psrset ee, ie + 427e: 3001 movi r0, 1 + 4280: 07a3 br 0x41c6 // 41c6 + 4282: 3b41 cmpnei r3, 1 + 4284: 0806 bt 0x4290 // 4290 + 4286: 3303 movi r3, 3 + 4288: dc6e000b st.b r3, (r14, 0xb) + 428c: 127d lrw r3, 0x16e3600 // 4400 + 428e: 07a8 br 0x41de // 41de + 4290: 3b42 cmpnei r3, 2 + 4292: 0806 bt 0x429e // 429e + 4294: 3301 movi r3, 1 + 4296: dc6e000b st.b r3, (r14, 0xb) + 429a: 127b lrw r3, 0xb71b00 // 4404 + 429c: 07a1 br 0x41de // 41de + 429e: 3b43 cmpnei r3, 3 + 42a0: 0806 bt 0x42ac // 42ac + 42a2: 3300 movi r3, 0 + 42a4: dc6e000b st.b r3, (r14, 0xb) + 42a8: 1278 lrw r3, 0x5b8d80 // 4408 + 42aa: 079a br 0x41de // 41de + 42ac: 3b44 cmpnei r3, 4 + 42ae: 0809 bt 0x42c0 // 42c0 + 42b0: 3300 movi r3, 0 + 42b2: dc6e000b st.b r3, (r14, 0xb) + 42b6: 1276 lrw r3, 0x54c720 // 440c + 42b8: b863 st.w r3, (r14, 0xc) + 42ba: 3380 movi r3, 128 + 42bc: 4369 lsli r3, r3, 9 + 42be: 0793 br 0x41e4 // 41e4 + 42c0: 3b45 cmpnei r3, 5 + 42c2: 0806 bt 0x42ce // 42ce + 42c4: 3300 movi r3, 0 + 42c6: dc6e000b st.b r3, (r14, 0xb) + 42ca: 1272 lrw r3, 0x3ffed0 // 4410 + 42cc: 07f6 br 0x42b8 // 42b8 + 42ce: 3b46 cmpnei r3, 6 + 42d0: 0806 bt 0x42dc // 42dc + 42d2: 3300 movi r3, 0 + 42d4: dc6e000b st.b r3, (r14, 0xb) + 42d8: 126f lrw r3, 0x1fff68 // 4414 + 42da: 07ef br 0x42b8 // 42b8 + 42dc: 3b47 cmpnei r3, 7 + 42de: 0b84 bt 0x41e6 // 41e6 + 42e0: 3300 movi r3, 0 + 42e2: dc6e000b st.b r3, (r14, 0xb) + 42e6: 126d lrw r3, 0x1ffb8 // 4418 + 42e8: 07e8 br 0x42b8 // 42b8 + 42ea: 9560 ld.w r3, (r5, 0x0) + 42ec: 3101 movi r1, 1 + 42ee: 9440 ld.w r2, (r4, 0x0) + 42f0: b321 st.w r1, (r3, 0x4) + 42f2: b220 st.w r1, (r2, 0x0) + 42f4: 3100 movi r1, 0 + 42f6: b327 st.w r1, (r3, 0x1c) + 42f8: 3004 movi r0, 4 + 42fa: b225 st.w r1, (r2, 0x14) + 42fc: 932e ld.w r1, (r3, 0x38) + 42fe: 6840 and r1, r0 + 4300: 3940 cmpnei r1, 0 + 4302: 0ffd bf 0x42fc // 42fc + 4304: 9225 ld.w r1, (r2, 0x14) + 4306: b82a st.w r1, (r14, 0x28) + 4308: 3100 movi r1, 0 + 430a: b310 st.w r0, (r3, 0x40) + 430c: b327 st.w r1, (r3, 0x1c) + 430e: 3004 movi r0, 4 + 4310: b225 st.w r1, (r2, 0x14) + 4312: 932e ld.w r1, (r3, 0x38) + 4314: 6840 and r1, r0 + 4316: 3940 cmpnei r1, 0 + 4318: 0ffd bf 0x4312 // 4312 + 431a: 9225 ld.w r1, (r2, 0x14) + 431c: b82b st.w r1, (r14, 0x2c) + 431e: 3100 movi r1, 0 + 4320: b310 st.w r0, (r3, 0x40) + 4322: b327 st.w r1, (r3, 0x1c) + 4324: 3004 movi r0, 4 + 4326: b225 st.w r1, (r2, 0x14) + 4328: 932e ld.w r1, (r3, 0x38) + 432a: 6840 and r1, r0 + 432c: 3940 cmpnei r1, 0 + 432e: 0ffd bf 0x4328 // 4328 + 4330: 9225 ld.w r1, (r2, 0x14) + 4332: b82c st.w r1, (r14, 0x30) + 4334: b310 st.w r0, (r3, 0x40) + 4336: 982b ld.w r1, (r14, 0x2c) + 4338: 980c ld.w r0, (r14, 0x30) + 433a: 6040 addu r1, r0 + 433c: b829 st.w r1, (r14, 0x24) + 433e: 9829 ld.w r1, (r14, 0x24) + 4340: 4921 lsri r1, r1, 1 + 4342: b829 st.w r1, (r14, 0x24) + 4344: 3100 movi r1, 0 + 4346: b321 st.w r1, (r3, 0x4) + 4348: b220 st.w r1, (r2, 0x0) + 434a: b327 st.w r1, (r3, 0x1c) + 434c: b225 st.w r1, (r2, 0x14) + 434e: d86e0009 ld.b r3, (r14, 0x9) + 4352: 3b42 cmpnei r3, 2 + 4354: 9849 ld.w r2, (r14, 0x24) + 4356: 082c bt 0x43ae // 43ae + 4358: 1171 lrw r3, 0x7ff // 441c + 435a: 648c cmphs r3, r2 + 435c: 0c03 bf 0x4362 // 4362 + 435e: 3300 movi r3, 0 + 4360: 040f br 0x437e // 437e + 4362: 9849 ld.w r2, (r14, 0x24) + 4364: 9866 ld.w r3, (r14, 0x18) + 4366: 648c cmphs r3, r2 + 4368: 080e bt 0x4384 // 4384 + 436a: 9868 ld.w r3, (r14, 0x20) + 436c: 9847 ld.w r2, (r14, 0x1c) + 436e: 60ca subu r3, r2 + 4370: b868 st.w r3, (r14, 0x20) + 4372: 32fe movi r2, 254 + 4374: 9868 ld.w r3, (r14, 0x20) + 4376: 4248 lsli r2, r2, 8 + 4378: 68c8 and r3, r2 + 437a: 3b40 cmpnei r3, 0 + 437c: 0812 bt 0x43a0 // 43a0 + 437e: dc6e000a st.b r3, (r14, 0xa) + 4382: 0721 br 0x41c4 // 41c4 + 4384: 9849 ld.w r2, (r14, 0x24) + 4386: 9865 ld.w r3, (r14, 0x14) + 4388: 64c8 cmphs r2, r3 + 438a: 0829 bt 0x43dc // 43dc + 438c: 9868 ld.w r3, (r14, 0x20) + 438e: 9847 ld.w r2, (r14, 0x1c) + 4390: 60c8 addu r3, r2 + 4392: b868 st.w r3, (r14, 0x20) + 4394: 33fe movi r3, 254 + 4396: 9848 ld.w r2, (r14, 0x20) + 4398: 4368 lsli r3, r3, 8 + 439a: 688c and r2, r3 + 439c: 64ca cmpne r2, r3 + 439e: 0fe0 bf 0x435e // 435e + 43a0: 9660 ld.w r3, (r6, 0x0) + 43a2: 9848 ld.w r2, (r14, 0x20) + 43a4: b354 st.w r2, (r3, 0x50) + 43a6: 3001 movi r0, 1 + 43a8: e3ffefee bsr 0x2384 // 2384 + 43ac: 075e br 0x4268 // 4268 + 43ae: 9866 ld.w r3, (r14, 0x18) + 43b0: 648c cmphs r3, r2 + 43b2: 0809 bt 0x43c4 // 43c4 + 43b4: 9868 ld.w r3, (r14, 0x20) + 43b6: 9847 ld.w r2, (r14, 0x1c) + 43b8: 60ca subu r3, r2 + 43ba: b868 st.w r3, (r14, 0x20) + 43bc: 32ff movi r2, 255 + 43be: 9868 ld.w r3, (r14, 0x20) + 43c0: 4250 lsli r2, r2, 16 + 43c2: 07db br 0x4378 // 4378 + 43c4: 9849 ld.w r2, (r14, 0x24) + 43c6: 9865 ld.w r3, (r14, 0x14) + 43c8: 64c8 cmphs r2, r3 + 43ca: 0809 bt 0x43dc // 43dc + 43cc: 9868 ld.w r3, (r14, 0x20) + 43ce: 9847 ld.w r2, (r14, 0x1c) + 43d0: 60c8 addu r3, r2 + 43d2: b868 st.w r3, (r14, 0x20) + 43d4: 33ff movi r3, 255 + 43d6: 9848 ld.w r2, (r14, 0x20) + 43d8: 4370 lsli r3, r3, 16 + 43da: 07e0 br 0x439a // 439a + 43dc: 3300 movi r3, 0 + 43de: dc6e000a st.b r3, (r14, 0xa) + 43e2: 07e2 br 0x43a6 // 43a6 + 43e4: 2000005c .long 0x2000005c + 43e8: 2000000c .long 0x2000000c + 43ec: 02dc6c00 .long 0x02dc6c00 + 43f0: 0000ffff .long 0x0000ffff + 43f4: 20000014 .long 0x20000014 + 43f8: be9c0005 .long 0xbe9c0005 + 43fc: 00030010 .long 0x00030010 + 4400: 016e3600 .long 0x016e3600 + 4404: 00b71b00 .long 0x00b71b00 + 4408: 005b8d80 .long 0x005b8d80 + 440c: 0054c720 .long 0x0054c720 + 4410: 003ffed0 .long 0x003ffed0 + 4414: 001fff68 .long 0x001fff68 + 4418: 0001ffb8 .long 0x0001ffb8 + 441c: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/NRF_T1F_CR_V01_20240415.map b/BLV_CS_AC100_V05/Source/Lst/NRF_T1F_CR_V01_20240415.map new file mode 100644 index 0000000..3718383 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/NRF_T1F_CR_V01_20240415.map @@ -0,0 +1,2154 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 313356 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 156 + Section header string table index: 153 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 001a50 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001a50 002a50 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001a88 002a88 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001afc 002afc 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001b48 002b48 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001b78 002b78 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c00 002c00 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c28 002c28 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001c64 002c64 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001c78 002c78 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001c90 002c90 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001cb0 002cb0 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001ccc 002ccc 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001ce8 002ce8 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 00001d28 002d28 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 00001d34 002d34 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 00001d58 002d58 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 00001d88 002d88 0000e0 00 AX 0 0 4 + [19] .text.GPIO_PullHi PROGBITS 00001e68 002e68 000014 00 AX 0 0 2 + [20] .text.GPIO_DriveS PROGBITS 00001e7c 002e7c 00000e 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 00001e8a 002e8a 000008 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00001e92 002e92 000008 00 AX 0 0 2 + [23] .text.GPIO_Read_S PROGBITS 00001e9a 002e9a 000010 00 AX 0 0 2 + [24] .text.GPIO_Read_O PROGBITS 00001eaa 002eaa 000010 00 AX 0 0 2 + [25] .text.LPT_Soft_Re PROGBITS 00001ebc 002ebc 000014 00 AX 0 0 4 + [26] .text.WWDT_CNT_Lo PROGBITS 00001ed0 002ed0 000010 00 AX 0 0 4 + [27] .text.BT_DeInit PROGBITS 00001ee0 002ee0 00001c 00 AX 0 0 2 + [28] .text.BT_Start PROGBITS 00001efc 002efc 000008 00 AX 0 0 2 + [29] .text.BT_Soft_Res PROGBITS 00001f04 002f04 00000a 00 AX 0 0 2 + [30] .text.BT_Configur PROGBITS 00001f0e 002f0e 000018 00 AX 0 0 2 + [31] .text.BT_ControlS PROGBITS 00001f26 002f26 00002c 00 AX 0 0 2 + [32] .text.BT_Period_C PROGBITS 00001f52 002f52 000006 00 AX 0 0 2 + [33] .text.BT_ConfigIn PROGBITS 00001f58 002f58 000012 00 AX 0 0 2 + [34] .text.BT1_INT_ENA PROGBITS 00001f6c 002f6c 000010 00 AX 0 0 4 + [35] .text.GPT_IO_Init PROGBITS 00001f7c 002f7c 0000a0 00 AX 0 0 4 + [36] .text.GPT_Configu PROGBITS 0000201c 00301c 000014 00 AX 0 0 4 + [37] .text.GPT_WaveCtr PROGBITS 00002030 003030 000044 00 AX 0 0 4 + [38] .text.GPT_WaveLoa PROGBITS 00002074 003074 000014 00 AX 0 0 4 + [39] .text.GPT_WaveOut PROGBITS 00002088 003088 0000b4 00 AX 0 0 4 + [40] .text.GPT_Start PROGBITS 0000213c 00313c 000010 00 AX 0 0 4 + [41] .text.GPT_Period_ PROGBITS 0000214c 00314c 000010 00 AX 0 0 4 + [42] .text.GPT_ConfigI PROGBITS 0000215c 00315c 00001c 00 AX 0 0 4 + [43] .text.UART0_DeIni PROGBITS 00002178 003178 000018 00 AX 0 0 4 + [44] .text.UART1_DeIni PROGBITS 00002190 003190 000018 00 AX 0 0 4 + [45] .text.UART2_DeIni PROGBITS 000021a8 0031a8 000018 00 AX 0 0 4 + [46] .text.UART0_Int_E PROGBITS 000021c0 0031c0 00001c 00 AX 0 0 4 + [47] .text.UART2_Int_E PROGBITS 000021dc 0031dc 00001c 00 AX 0 0 4 + [48] .text.UART_IO_Ini PROGBITS 000021f8 0031f8 0000ec 00 AX 0 0 4 + [49] .text.UARTInit PROGBITS 000022e4 0032e4 000010 00 AX 0 0 4 + [50] .text.UARTInitRxT PROGBITS 000022f4 0032f4 000010 00 AX 0 0 4 + [51] .text.EPT_Stop PROGBITS 00002304 003304 000028 00 AX 0 0 4 + [52] .text.startup.mai PROGBITS 0000232c 00332c 000058 00 AX 0 0 4 + [53] .text.delay_nms PROGBITS 00002384 003384 00002c 00 AX 0 0 2 + [54] .text.GPT0_CONFIG PROGBITS 000023b0 0033b0 000094 00 AX 0 0 4 + [55] .text.BT_CONFIG PROGBITS 00002444 003444 000060 00 AX 0 0 4 + [56] .text.SYSCON_CONF PROGBITS 000024a4 0034a4 000062 00 AX 0 0 2 + [57] .text.APT32F102_i PROGBITS 00002508 003508 00006c 00 AX 0 0 4 + [58] .text.SYSCONIntHa PROGBITS 00002574 003574 0000f0 00 AX 0 0 4 + [59] .text.IFCIntHandl PROGBITS 00002664 003664 000068 00 AX 0 0 4 + [60] .text.ADCIntHandl PROGBITS 000026cc 0036cc 000068 00 AX 0 0 4 + [61] .text.EPT0IntHand PROGBITS 00002734 003734 0001ac 00 AX 0 0 4 + [62] .text.WWDTHandler PROGBITS 000028e0 0038e0 000034 00 AX 0 0 4 + [63] .text.GPT0IntHand PROGBITS 00002914 003914 000080 00 AX 0 0 4 + [64] .text.RTCIntHandl PROGBITS 00002994 003994 000070 00 AX 0 0 4 + [65] .text.UART0IntHan PROGBITS 00002a04 003a04 00003c 00 AX 0 0 4 + [66] .text.UART1IntHan PROGBITS 00002a40 003a40 00003c 00 AX 0 0 4 + [67] .text.UART2IntHan PROGBITS 00002a7c 003a7c 000094 00 AX 0 0 4 + [68] .text.SPI0IntHand PROGBITS 00002b10 003b10 0000e8 00 AX 0 0 4 + [69] .text.SIO0IntHand PROGBITS 00002bf8 003bf8 000054 00 AX 0 0 4 + [70] .text.EXI0IntHand PROGBITS 00002c4c 003c4c 000030 00 AX 0 0 4 + [71] .text.EXI1IntHand PROGBITS 00002c7c 003c7c 000030 00 AX 0 0 4 + [72] .text.EXI2to3IntH PROGBITS 00002cac 003cac 000048 00 AX 0 0 4 + [73] .text.EXI4to9IntH PROGBITS 00002cf4 003cf4 00005c 00 AX 0 0 4 + [74] .text.EXI10to15In PROGBITS 00002d50 003d50 000060 00 AX 0 0 4 + [75] .text.LPTIntHandl PROGBITS 00002db0 003db0 000034 00 AX 0 0 4 + [76] .text.BT0IntHandl PROGBITS 00002de4 003de4 00004c 00 AX 0 0 4 + [77] .text.BT1IntHandl PROGBITS 00002e30 003e30 000064 00 AX 0 0 4 + [78] .text.PriviledgeV PROGBITS 00002e94 003e94 000002 00 AX 0 0 2 + [79] .text.PendTrapHan PROGBITS 00002e96 003e96 000008 00 AX 0 0 2 + [80] .text.Trap3Handle PROGBITS 00002e9e 003e9e 000008 00 AX 0 0 2 + [81] .text.Trap2Handle PROGBITS 00002ea6 003ea6 000008 00 AX 0 0 2 + [82] .text.Trap1Handle PROGBITS 00002eae 003eae 000008 00 AX 0 0 2 + [83] .text.Trap0Handle PROGBITS 00002eb6 003eb6 000008 00 AX 0 0 2 + [84] .text.UnrecExecpH PROGBITS 00002ebe 003ebe 000008 00 AX 0 0 2 + [85] .text.BreakPointH PROGBITS 00002ec6 003ec6 000008 00 AX 0 0 2 + [86] .text.AccessErrHa PROGBITS 00002ece 003ece 000008 00 AX 0 0 2 + [87] .text.IllegalInst PROGBITS 00002ed6 003ed6 000008 00 AX 0 0 2 + [88] .text.MisalignedH PROGBITS 00002ede 003ede 000008 00 AX 0 0 2 + [89] .text.CNTAIntHand PROGBITS 00002ee6 003ee6 000008 00 AX 0 0 2 + [90] .text.I2CIntHandl PROGBITS 00002eee 003eee 000008 00 AX 0 0 2 + [91] .text.__divsi3 PROGBITS 00002ef8 003ef8 000024 00 AX 0 0 4 + [92] .text.__udivsi3 PROGBITS 00002f1c 003f1c 000024 00 AX 0 0 4 + [93] .text.CK_CPU_EnAl PROGBITS 00002f40 003f40 000006 00 AX 0 0 2 + [94] .text.UARTx_Init PROGBITS 00002f48 003f48 0000d8 00 AX 0 0 4 + [95] .text.UART2_RecvI PROGBITS 00003020 004020 000064 00 AX 0 0 4 + [96] .text.Dbg_Println PROGBITS 00003084 004084 00000c 00 AX 0 0 2 + [97] .text.RC522_Delay PROGBITS 00003090 004090 000012 00 AX 0 0 2 + [98] .text.RC522_ReadW PROGBITS 000030a4 0040a4 000054 00 AX 0 0 4 + [99] .text.RC522_ReadR PROGBITS 000030f8 0040f8 000038 00 AX 0 0 4 + [100] .text.RC522_Write PROGBITS 00003130 004130 000030 00 AX 0 0 4 + [101] .text.RC522_PcdRe PROGBITS 00003160 004160 00004c 00 AX 0 0 2 + [102] .text.RC522_SetBi PROGBITS 000031ac 0041ac 000018 00 AX 0 0 2 + [103] .text.RC522_PcdAn PROGBITS 000031c4 0041c4 00001a 00 AX 0 0 2 + [104] .text.RC522_Clear PROGBITS 000031de 0041de 000016 00 AX 0 0 2 + [105] .text.RC522_PcdAn PROGBITS 000031f4 0041f4 00000c 00 AX 0 0 2 + [106] .text.RC522_Calul PROGBITS 00003200 004200 000066 00 AX 0 0 2 + [107] .text.M500PcdConf PROGBITS 00003266 004266 000052 00 AX 0 0 2 + [108] .text.RC522_Init PROGBITS 000032b8 0042b8 0000a0 00 AX 0 0 4 + [109] .text.RC522_PcdCo PROGBITS 00003358 004358 00013a 00 AX 0 0 2 + [110] .text.RC522_PcdSe PROGBITS 00003492 004492 00006a 00 AX 0 0 2 + [111] .text.RC522_PcdAu PROGBITS 000034fc 0044fc 000058 00 AX 0 0 2 + [112] .text.RC522_PcdRe PROGBITS 00003554 004554 000054 00 AX 0 0 2 + [113] .text.RC522_PcdAn PROGBITS 000035a8 0045a8 000074 00 AX 0 0 2 + [114] .text.Card_Read_T PROGBITS 0000361c 00461c 0000d4 00 AX 0 0 4 + [115] .text.RLY_Light_C PROGBITS 000036f0 0046f0 000020 00 AX 0 0 4 + [116] .text.KEY1_LONG_P PROGBITS 00003710 004710 000064 00 AX 0 0 4 + [117] .text.RLY_Light_C PROGBITS 00003774 004774 000030 00 AX 0 0 4 + [118] .text.LogicCtrl_I PROGBITS 000037a4 0047a4 00002c 00 AX 0 0 4 + [119] .text.LogicCtrl_T PROGBITS 000037d0 0047d0 000098 00 AX 0 0 4 + [120] .text.LogicCtrl_N PROGBITS 00003868 004868 000060 00 AX 0 0 4 + [121] .text.LogicCtrl_N PROGBITS 000038c8 0048c8 0000bc 00 AX 0 0 4 + [122] .text.button_init PROGBITS 00003984 004984 00003a 00 AX 0 0 2 + [123] .text.button_atta PROGBITS 000039be 0049be 00000a 00 AX 0 0 2 + [124] .text.button_hand PROGBITS 000039c8 0049c8 000120 00 AX 0 0 2 + [125] .text.button_star PROGBITS 00003ae8 004ae8 000024 00 AX 0 0 4 + [126] .text.button_tick PROGBITS 00003b0c 004b0c 00001c 00 AX 0 0 4 + [127] .text.read_button PROGBITS 00003b28 004b28 000014 00 AX 0 0 4 + [128] .text.TK_Sampling PROGBITS 00003b3c 004b3c 000058 00 AX 0 0 4 + [129] .text.TKEYIntHand PROGBITS 00003b94 004b94 000088 00 AX 0 0 4 + [130] .text.get_key_num PROGBITS 00003c1c 004c1c 000028 00 AX 0 0 4 + [131] .text.TK_Scan_Sta PROGBITS 00003c44 004c44 000020 00 AX 0 0 4 + [132] .text.TK_Keymap_p PROGBITS 00003c64 004c64 000180 00 AX 0 0 4 + [133] .text.TK_overflow PROGBITS 00003de4 004de4 00011c 00 AX 0 0 4 + [134] .text.TK_Baseline PROGBITS 00003f00 004f00 0001d0 00 AX 0 0 4 + [135] .text.TK_result_p PROGBITS 000040d0 0050d0 000054 00 AX 0 0 4 + [136] .text.CORETHandle PROGBITS 00004124 005124 000078 00 AX 0 0 4 + [137] .text.std_clk_cal PROGBITS 0000419c 00519c 000284 00 AX 0 0 4 + [138] .RomCode PROGBITS 00004420 00609c 000000 00 W 0 0 1 + [139] .rodata PROGBITS 00004420 005420 000224 00 A 0 0 4 + [140] .data PROGBITS 20000000 006000 00009c 00 WA 0 0 4 + [141] .bss NOBITS 2000009c 00609c 000484 00 WA 0 0 4 + [142] .csky.attributes CSKY_ATTRIBUTES 00000000 00609c 000022 00 0 0 1 + [143] .comment PROGBITS 00000000 0060be 000042 01 MS 0 0 1 + [144] .csky_stack_size PROGBITS 00000000 006100 0007fc 00 0 0 16 + [145] .debug_line PROGBITS 00000000 0068fc 003899 00 0 0 1 + [146] .debug_info PROGBITS 00000000 00a195 02ba68 00 0 0 1 + [147] .debug_abbrev PROGBITS 00000000 035bfd 00285b 00 0 0 1 + [148] .debug_aranges PROGBITS 00000000 038458 000ca0 00 0 0 8 + [149] .debug_ranges PROGBITS 00000000 0390f8 000b98 00 0 0 1 + [150] .debug_str PROGBITS 00000000 039c90 008725 01 MS 0 0 1 + [151] .debug_frame PROGBITS 00000000 0423b8 001d7c 00 0 0 4 + [152] .debug_loc PROGBITS 00000000 044134 002db9 00 0 0 1 + [153] .shstrtab STRTAB 00000000 04bb5b 000cae 00 0 0 1 + [154] .symtab SYMTAB 00000000 046ef0 0039e0 10 155 639 4 + [155] .strtab STRTAB 00000000 04a8d0 00128b 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x04644 0x04644 R E 0x1000 + LOAD 0x006000 0x20000000 0x00004644 0x0009c 0x00520 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.SYSCON_Int_Enable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Read_Status .text.GPIO_Read_Output .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.EPT_Stop .text.startup.main .text.delay_nms .text.GPT0_CONFIG .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.Dbg_Println .text.RC522_Delay .text.RC522_ReadWriteOneByte .text.RC522_ReadRawRC .text.RC522_WriteRawRC .text.RC522_PcdReset .text.RC522_SetBitMask .text.RC522_PcdAntennaOn .text.RC522_ClearBitMask .text.RC522_PcdAntennaOff .text.RC522_CalulateCRC .text.M500PcdConfigISOType.part.1 .text.RC522_Init .text.RC522_PcdComMF522 .text.RC522_PcdSelect .text.RC522_PcdAuthState .text.RC522_PcdRequest .text.RC522_PcdAnticoll .text.Card_Read_TasK .text.RLY_Light_Ctrl.part.0 .text.KEY1_LONG_PRESS_RELEASE_Handler .text.RLY_Light_Ctrl .text.LogicCtrl_Init .text.LogicCtrl_Task .text.LogicCtrl_NoRF_Init .text.LogicCtrl_NoRF_Task .text.button_init .text.button_attach .text.button_handler .text.button_start .text.button_ticks .text.read_button_GPIO .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl.part.0) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_button.o(.text.read_button_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInit) for UARTInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPT0_CONFIG) for GPT0_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) for RC522_CalulateCRC + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Init) for RC522_Init + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) for RC522_PcdSelect + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) for RC522_PcdAuthState + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) for RC522_PcdRequest + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) for RC522_PcdAnticoll + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) for Card_Read_TasK + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) for LogicCtrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) for LogicCtrl_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) for LogicCtrl_NoRF_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) for LogicCtrl_NoRF_Task + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_init) for button_init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_attach) for button_attach + Obj/SYSTEM_button.o(.text.button_ticks) refers to Obj/SYSTEM_button.o(.text.button_handler) for button_handler + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_start) for button_start + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_button.o(.text.button_ticks) for button_ticks + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_button.o(.text.button_init) refers to memset_fast.o(.text) for memset + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to memcpy_fast.o(.text) for memcpy + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (491 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2899 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.EXTI_interrupt_CMD(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.GPIO_EXTI_interrupt(Obj/FWlib_apt32f102_syscon.o), (4 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_IntGroup_Set(Obj/FWlib_apt32f102_gpio.o), (268 bytes). + Removing .text.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Reverse(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3093 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3410 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3155 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4123 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3526 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTransmit(Obj/FWlib_apt32f102_uart.o), (30 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3642 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4842 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4950 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7599 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2848 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.delay_nus(Obj/mcu_initial.o), (34 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text.__modsi3(Obj/drivers_apt32f102.o), (36 bytes). + Removing .text.__umodsi3(Obj/drivers_apt32f102.o), (36 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (4 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (148 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (148 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (136 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (2 bytes). + Removing .text(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .data(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .text.RC522_Reset(Obj/SYSTEM_rc522.o), (22 bytes). + Removing .text.M500PcdConfigISOType(Obj/SYSTEM_rc522.o), (18 bytes). + Removing .text.RC522_MFRC522_SelectTag(Obj/SYSTEM_rc522.o), (110 bytes). + Removing .text.RC522_PcdRead(Obj/SYSTEM_rc522.o), (84 bytes). + Removing .text.RC522_PcdWrite(Obj/SYSTEM_rc522.o), (142 bytes). + Removing .text(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .data(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .text.Ctrl_Backlight(Obj/SYSTEM_logic_ctrl.o), (36 bytes). + Removing .text.KEY1_LONG_PRESS_START_Handler(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text(Obj/SYSTEM_button.o), (0 bytes). + Removing .data(Obj/SYSTEM_button.o), (0 bytes). + Removing .text.get_button_event(Obj/SYSTEM_button.o), (6 bytes). + Removing .text.button_stop(Obj/SYSTEM_button.o), (32 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (113 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + +615 unused seciton(s) (total 179309 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + $d 0x00000000 0 .text + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_button.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_logic_ctrl.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_rc522.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + $d 0x000019ec 0 .text + $t 0x000019ec 0 .text + $d 0x00001a50 0 .text.__main + $t 0x00001a50 0 .text.__main + $d 0x00001a74 0 .text.__main + SYSCON_General_CMD.part.0 0x00001a88 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001a88 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001a88 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001af4 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001afc 0 .text.SYSCON_RST_VALUE + $t 0x00001afc 0 .text.SYSCON_RST_VALUE + $d 0x00001b2c 0 .text.SYSCON_RST_VALUE + $d 0x00001b48 0 .text.SYSCON_General_CMD + $t 0x00001b48 0 .text.SYSCON_General_CMD + $d 0x00001b74 0 .text.SYSCON_General_CMD + $d 0x00001b78 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001b78 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001bf0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c00 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c00 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c24 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c28 0 .text.SYSCON_WDT_CMD + $t 0x00001c28 0 .text.SYSCON_WDT_CMD + $d 0x00001c58 0 .text.SYSCON_WDT_CMD + $d 0x00001c64 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001c64 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001c74 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001c78 0 .text.SYSCON_IWDCNT_Config + $t 0x00001c78 0 .text.SYSCON_IWDCNT_Config + $d 0x00001c88 0 .text.SYSCON_IWDCNT_Config + $d 0x00001c90 0 .text.SYSCON_LVD_Config + $t 0x00001c90 0 .text.SYSCON_LVD_Config + $d 0x00001ca8 0 .text.SYSCON_LVD_Config + $d 0x00001cb0 0 .text.LVD_Int_Enable + $t 0x00001cb0 0 .text.LVD_Int_Enable + $d 0x00001cc8 0 .text.LVD_Int_Enable + $d 0x00001ccc 0 .text.IWDT_Int_Enable + $t 0x00001ccc 0 .text.IWDT_Int_Enable + $d 0x00001ce4 0 .text.IWDT_Int_Enable + $d 0x00001ce8 0 .text.EXTI_trigger_CMD + $t 0x00001ce8 0 .text.EXTI_trigger_CMD + $d 0x00001d24 0 .text.EXTI_trigger_CMD + $d 0x00001d28 0 .text.SYSCON_Int_Enable + $t 0x00001d28 0 .text.SYSCON_Int_Enable + $d 0x00001d30 0 .text.SYSCON_Int_Enable + $d 0x00001d34 0 .text.SYSCON_INT_Priority + $t 0x00001d34 0 .text.SYSCON_INT_Priority + $d 0x00001d4c 0 .text.SYSCON_INT_Priority + $d 0x00001d58 0 .text.Set_INT_Priority + $t 0x00001d58 0 .text.Set_INT_Priority + $d 0x00001d84 0 .text.Set_INT_Priority + $d 0x00001d88 0 .text.GPIO_Init + $t 0x00001d88 0 .text.GPIO_Init + $d 0x00001d9a 0 .text.GPIO_Init + $t 0x00001da2 0 .text.GPIO_Init + $d 0x00001dfe 0 .text.GPIO_Init + $t 0x00001e06 0 .text.GPIO_Init + $d 0x00001e54 0 .text.GPIO_Init + $d 0x00001e68 0 .text.GPIO_PullHigh_Init + $t 0x00001e68 0 .text.GPIO_PullHigh_Init + $d 0x00001e7c 0 .text.GPIO_DriveStrength_EN + $t 0x00001e7c 0 .text.GPIO_DriveStrength_EN + $d 0x00001e8a 0 .text.GPIO_Write_High + $t 0x00001e8a 0 .text.GPIO_Write_High + $d 0x00001e92 0 .text.GPIO_Write_Low + $t 0x00001e92 0 .text.GPIO_Write_Low + $d 0x00001e9a 0 .text.GPIO_Read_Status + $t 0x00001e9a 0 .text.GPIO_Read_Status + $d 0x00001eaa 0 .text.GPIO_Read_Output + $t 0x00001eaa 0 .text.GPIO_Read_Output + $d 0x00001ebc 0 .text.LPT_Soft_Reset + $t 0x00001ebc 0 .text.LPT_Soft_Reset + $d 0x00001ecc 0 .text.LPT_Soft_Reset + $d 0x00001ed0 0 .text.WWDT_CNT_Load + $t 0x00001ed0 0 .text.WWDT_CNT_Load + $d 0x00001edc 0 .text.WWDT_CNT_Load + $d 0x00001ee0 0 .text.BT_DeInit + $t 0x00001ee0 0 .text.BT_DeInit + $d 0x00001efc 0 .text.BT_Start + $t 0x00001efc 0 .text.BT_Start + $d 0x00001f04 0 .text.BT_Soft_Reset + $t 0x00001f04 0 .text.BT_Soft_Reset + $d 0x00001f0e 0 .text.BT_Configure + $t 0x00001f0e 0 .text.BT_Configure + $d 0x00001f26 0 .text.BT_ControlSet_Configure + $t 0x00001f26 0 .text.BT_ControlSet_Configure + $d 0x00001f52 0 .text.BT_Period_CMP_Write + $t 0x00001f52 0 .text.BT_Period_CMP_Write + $d 0x00001f58 0 .text.BT_ConfigInterrupt_CMD + $t 0x00001f58 0 .text.BT_ConfigInterrupt_CMD + $d 0x00001f6c 0 .text.BT1_INT_ENABLE + $t 0x00001f6c 0 .text.BT1_INT_ENABLE + $d 0x00001f78 0 .text.BT1_INT_ENABLE + $d 0x00001f7c 0 .text.GPT_IO_Init + $t 0x00001f7c 0 .text.GPT_IO_Init + $d 0x00002014 0 .text.GPT_IO_Init + $d 0x0000201c 0 .text.GPT_Configure + $t 0x0000201c 0 .text.GPT_Configure + $d 0x0000202c 0 .text.GPT_Configure + $d 0x00002030 0 .text.GPT_WaveCtrl_Configure + $t 0x00002030 0 .text.GPT_WaveCtrl_Configure + $d 0x00002070 0 .text.GPT_WaveCtrl_Configure + $d 0x00002074 0 .text.GPT_WaveLoad_Configure + $t 0x00002074 0 .text.GPT_WaveLoad_Configure + $d 0x00002084 0 .text.GPT_WaveLoad_Configure + $d 0x00002088 0 .text.GPT_WaveOut_Configure + $t 0x00002088 0 .text.GPT_WaveOut_Configure + $d 0x00002138 0 .text.GPT_WaveOut_Configure + $d 0x0000213c 0 .text.GPT_Start + $t 0x0000213c 0 .text.GPT_Start + $d 0x00002148 0 .text.GPT_Start + $d 0x0000214c 0 .text.GPT_Period_CMP_Write + $t 0x0000214c 0 .text.GPT_Period_CMP_Write + $d 0x00002158 0 .text.GPT_Period_CMP_Write + $d 0x0000215c 0 .text.GPT_ConfigInterrupt_CMD + $t 0x0000215c 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00002174 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00002178 0 .text.UART0_DeInit + $t 0x00002178 0 .text.UART0_DeInit + $d 0x0000218c 0 .text.UART0_DeInit + $d 0x00002190 0 .text.UART1_DeInit + $t 0x00002190 0 .text.UART1_DeInit + $d 0x000021a4 0 .text.UART1_DeInit + $d 0x000021a8 0 .text.UART2_DeInit + $t 0x000021a8 0 .text.UART2_DeInit + $d 0x000021bc 0 .text.UART2_DeInit + $d 0x000021c0 0 .text.UART0_Int_Enable + $t 0x000021c0 0 .text.UART0_Int_Enable + $d 0x000021d4 0 .text.UART0_Int_Enable + $d 0x000021dc 0 .text.UART2_Int_Enable + $t 0x000021dc 0 .text.UART2_Int_Enable + $d 0x000021f0 0 .text.UART2_Int_Enable + $d 0x000021f8 0 .text.UART_IO_Init + $t 0x000021f8 0 .text.UART_IO_Init + $d 0x000022dc 0 .text.UART_IO_Init + $d 0x000022e4 0 .text.UARTInit + $t 0x000022e4 0 .text.UARTInit + $d 0x000022f0 0 .text.UARTInit + $d 0x000022f4 0 .text.UARTInitRxTxIntEn + $t 0x000022f4 0 .text.UARTInitRxTxIntEn + $d 0x00002300 0 .text.UARTInitRxTxIntEn + $d 0x00002304 0 .text.EPT_Stop + $t 0x00002304 0 .text.EPT_Stop + $d 0x00002324 0 .text.EPT_Stop + $d 0x0000232c 0 .text.startup.main + $t 0x0000232c 0 .text.startup.main + $d 0x00002378 0 .text.startup.main + $d 0x00002384 0 .text.delay_nms + $t 0x00002384 0 .text.delay_nms + $d 0x000023b0 0 .text.GPT0_CONFIG + $t 0x000023b0 0 .text.GPT0_CONFIG + $d 0x00002440 0 .text.GPT0_CONFIG + $d 0x00002444 0 .text.BT_CONFIG + $t 0x00002444 0 .text.BT_CONFIG + $d 0x0000249c 0 .text.BT_CONFIG + $d 0x000024a4 0 .text.SYSCON_CONFIG + $t 0x000024a4 0 .text.SYSCON_CONFIG + $d 0x00002508 0 .text.APT32F102_init + $t 0x00002508 0 .text.APT32F102_init + $d 0x00002568 0 .text.APT32F102_init + $d 0x00002574 0 .text.SYSCONIntHandler + $t 0x00002574 0 .text.SYSCONIntHandler + $d 0x00002660 0 .text.SYSCONIntHandler + $d 0x00002664 0 .text.IFCIntHandler + $t 0x00002664 0 .text.IFCIntHandler + $d 0x000026c8 0 .text.IFCIntHandler + $d 0x000026cc 0 .text.ADCIntHandler + $t 0x000026cc 0 .text.ADCIntHandler + $d 0x00002730 0 .text.ADCIntHandler + $d 0x00002734 0 .text.EPT0IntHandler + $t 0x00002734 0 .text.EPT0IntHandler + $d 0x000028d4 0 .text.EPT0IntHandler + $d 0x000028e0 0 .text.WWDTHandler + $t 0x000028e0 0 .text.WWDTHandler + $d 0x00002910 0 .text.WWDTHandler + $d 0x00002914 0 .text.GPT0IntHandler + $t 0x00002914 0 .text.GPT0IntHandler + $d 0x00002990 0 .text.GPT0IntHandler + $d 0x00002994 0 .text.RTCIntHandler + $t 0x00002994 0 .text.RTCIntHandler + $d 0x000029fc 0 .text.RTCIntHandler + $d 0x00002a04 0 .text.UART0IntHandler + $t 0x00002a04 0 .text.UART0IntHandler + $d 0x00002a3c 0 .text.UART0IntHandler + $d 0x00002a40 0 .text.UART1IntHandler + $t 0x00002a40 0 .text.UART1IntHandler + $d 0x00002a78 0 .text.UART1IntHandler + $d 0x00002a7c 0 .text.UART2IntHandler + $t 0x00002a7c 0 .text.UART2IntHandler + $d 0x00002afc 0 .text.UART2IntHandler + $d 0x00002b10 0 .text.SPI0IntHandler + $t 0x00002b10 0 .text.SPI0IntHandler + $d 0x00002bf4 0 .text.SPI0IntHandler + $d 0x00002bf8 0 .text.SIO0IntHandler + $t 0x00002bf8 0 .text.SIO0IntHandler + $d 0x00002c48 0 .text.SIO0IntHandler + $d 0x00002c4c 0 .text.EXI0IntHandler + $t 0x00002c4c 0 .text.EXI0IntHandler + $d 0x00002c78 0 .text.EXI0IntHandler + $d 0x00002c7c 0 .text.EXI1IntHandler + $t 0x00002c7c 0 .text.EXI1IntHandler + $d 0x00002ca8 0 .text.EXI1IntHandler + $d 0x00002cac 0 .text.EXI2to3IntHandler + $t 0x00002cac 0 .text.EXI2to3IntHandler + $d 0x00002cf0 0 .text.EXI2to3IntHandler + $d 0x00002cf4 0 .text.EXI4to9IntHandler + $t 0x00002cf4 0 .text.EXI4to9IntHandler + $d 0x00002d4c 0 .text.EXI4to9IntHandler + $d 0x00002d50 0 .text.EXI10to15IntHandler + $t 0x00002d50 0 .text.EXI10to15IntHandler + $d 0x00002dac 0 .text.EXI10to15IntHandler + $d 0x00002db0 0 .text.LPTIntHandler + $t 0x00002db0 0 .text.LPTIntHandler + $d 0x00002de0 0 .text.LPTIntHandler + $d 0x00002de4 0 .text.BT0IntHandler + $t 0x00002de4 0 .text.BT0IntHandler + $d 0x00002e2c 0 .text.BT0IntHandler + $d 0x00002e30 0 .text.BT1IntHandler + $t 0x00002e30 0 .text.BT1IntHandler + $d 0x00002e8c 0 .text.BT1IntHandler + $d 0x00002e94 0 .text.PriviledgeVioHandler + $t 0x00002e94 0 .text.PriviledgeVioHandler + $d 0x00002e96 0 .text.PendTrapHandler + $t 0x00002e96 0 .text.PendTrapHandler + $d 0x00002e9e 0 .text.Trap3Handler + $t 0x00002e9e 0 .text.Trap3Handler + $d 0x00002ea6 0 .text.Trap2Handler + $t 0x00002ea6 0 .text.Trap2Handler + $d 0x00002eae 0 .text.Trap1Handler + $t 0x00002eae 0 .text.Trap1Handler + $d 0x00002eb6 0 .text.Trap0Handler + $t 0x00002eb6 0 .text.Trap0Handler + $d 0x00002ebe 0 .text.UnrecExecpHandler + $t 0x00002ebe 0 .text.UnrecExecpHandler + $d 0x00002ec6 0 .text.BreakPointHandler + $t 0x00002ec6 0 .text.BreakPointHandler + $d 0x00002ece 0 .text.AccessErrHandler + $t 0x00002ece 0 .text.AccessErrHandler + $d 0x00002ed6 0 .text.IllegalInstrHandler + $t 0x00002ed6 0 .text.IllegalInstrHandler + $d 0x00002ede 0 .text.MisalignedHandler + $t 0x00002ede 0 .text.MisalignedHandler + $d 0x00002ee6 0 .text.CNTAIntHandler + $t 0x00002ee6 0 .text.CNTAIntHandler + $d 0x00002eee 0 .text.I2CIntHandler + $t 0x00002eee 0 .text.I2CIntHandler + $d 0x00002ef8 0 .text.__divsi3 + $t 0x00002ef8 0 .text.__divsi3 + $d 0x00002f18 0 .text.__divsi3 + $d 0x00002f1c 0 .text.__udivsi3 + $t 0x00002f1c 0 .text.__udivsi3 + $d 0x00002f3c 0 .text.__udivsi3 + $d 0x00002f40 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00002f40 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00002f48 0 .text.UARTx_Init + $t 0x00002f48 0 .text.UARTx_Init + $d 0x00003004 0 .text.UARTx_Init + $d 0x00003020 0 .text.UART2_RecvINT_Processing + $t 0x00003020 0 .text.UART2_RecvINT_Processing + $d 0x00003074 0 .text.UART2_RecvINT_Processing + $d 0x00003084 0 .text.Dbg_Println + $t 0x00003084 0 .text.Dbg_Println + $d 0x00003090 0 .text.RC522_Delay + $t 0x00003090 0 .text.RC522_Delay + $d 0x000030a4 0 .text.RC522_ReadWriteOneByte + $t 0x000030a4 0 .text.RC522_ReadWriteOneByte + $d 0x000030f4 0 .text.RC522_ReadWriteOneByte + $d 0x000030f8 0 .text.RC522_ReadRawRC + $t 0x000030f8 0 .text.RC522_ReadRawRC + $d 0x0000312c 0 .text.RC522_ReadRawRC + $d 0x00003130 0 .text.RC522_WriteRawRC + $t 0x00003130 0 .text.RC522_WriteRawRC + $d 0x0000315c 0 .text.RC522_WriteRawRC + $d 0x00003160 0 .text.RC522_PcdReset + $t 0x00003160 0 .text.RC522_PcdReset + $d 0x000031ac 0 .text.RC522_SetBitMask + $t 0x000031ac 0 .text.RC522_SetBitMask + $d 0x000031c4 0 .text.RC522_PcdAntennaOn + $t 0x000031c4 0 .text.RC522_PcdAntennaOn + $d 0x000031de 0 .text.RC522_ClearBitMask + $t 0x000031de 0 .text.RC522_ClearBitMask + $d 0x000031f4 0 .text.RC522_PcdAntennaOff + $t 0x000031f4 0 .text.RC522_PcdAntennaOff + $d 0x00003200 0 .text.RC522_CalulateCRC + $t 0x00003200 0 .text.RC522_CalulateCRC + M500PcdConfigISOType.part.1 0x00003266 F 82 .text.M500PcdConfigISOType.part.1 + $d 0x00003266 0 .text.M500PcdConfigISOType.part.1 + $t 0x00003266 0 .text.M500PcdConfigISOType.part.1 + $d 0x000032b8 0 .text.RC522_Init + $t 0x000032b8 0 .text.RC522_Init + $d 0x0000334c 0 .text.RC522_Init + $d 0x00003358 0 .text.RC522_PcdComMF522 + $t 0x00003358 0 .text.RC522_PcdComMF522 + $d 0x00003492 0 .text.RC522_PcdSelect + $t 0x00003492 0 .text.RC522_PcdSelect + $d 0x000034fc 0 .text.RC522_PcdAuthState + $t 0x000034fc 0 .text.RC522_PcdAuthState + $d 0x00003554 0 .text.RC522_PcdRequest + $t 0x00003554 0 .text.RC522_PcdRequest + $d 0x000035a8 0 .text.RC522_PcdAnticoll + $t 0x000035a8 0 .text.RC522_PcdAnticoll + $d 0x0000361c 0 .text.Card_Read_TasK + $t 0x0000361c 0 .text.Card_Read_TasK + $d 0x000036c8 0 .text.Card_Read_TasK + RLY_Light_Ctrl.part.0 0x000036f0 F 32 .text.RLY_Light_Ctrl.part.0 + $d 0x000036f0 0 .text.RLY_Light_Ctrl.part.0 + $t 0x000036f0 0 .text.RLY_Light_Ctrl.part.0 + $d 0x00003708 0 .text.RLY_Light_Ctrl.part.0 + $d 0x00003710 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $t 0x00003710 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00003758 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00003774 0 .text.RLY_Light_Ctrl + $t 0x00003774 0 .text.RLY_Light_Ctrl + $d 0x0000379c 0 .text.RLY_Light_Ctrl + $d 0x000037a4 0 .text.LogicCtrl_Init + $t 0x000037a4 0 .text.LogicCtrl_Init + $d 0x000037c8 0 .text.LogicCtrl_Init + $d 0x000037d0 0 .text.LogicCtrl_Task + $t 0x000037d0 0 .text.LogicCtrl_Task + $d 0x00003854 0 .text.LogicCtrl_Task + $d 0x00003868 0 .text.LogicCtrl_NoRF_Init + $t 0x00003868 0 .text.LogicCtrl_NoRF_Init + $d 0x000038b4 0 .text.LogicCtrl_NoRF_Init + $d 0x000038c8 0 .text.LogicCtrl_NoRF_Task + $t 0x000038c8 0 .text.LogicCtrl_NoRF_Task + $d 0x00003968 0 .text.LogicCtrl_NoRF_Task + $d 0x00003984 0 .text.button_init + $t 0x00003984 0 .text.button_init + $d 0x000039be 0 .text.button_attach + $t 0x000039be 0 .text.button_attach + $d 0x000039c8 0 .text.button_handler + $t 0x000039c8 0 .text.button_handler + $d 0x00003ae8 0 .text.button_start + $t 0x00003ae8 0 .text.button_start + $d 0x00003b08 0 .text.button_start + $d 0x00003b0c 0 .text.button_ticks + $t 0x00003b0c 0 .text.button_ticks + $d 0x00003b24 0 .text.button_ticks + $d 0x00003b28 0 .text.read_button_GPIO + $t 0x00003b28 0 .text.read_button_GPIO + $d 0x00003b38 0 .text.read_button_GPIO + $d 0x00003b3c 0 .text.TK_Sampling_prog + $t 0x00003b3c 0 .text.TK_Sampling_prog + $d 0x00003b84 0 .text.TK_Sampling_prog + $d 0x00003b94 0 .text.TKEYIntHandler + $t 0x00003b94 0 .text.TKEYIntHandler + $d 0x00003c10 0 .text.TKEYIntHandler + $d 0x00003c1c 0 .text.get_key_number + $t 0x00003c1c 0 .text.get_key_number + $d 0x00003c40 0 .text.get_key_number + $d 0x00003c44 0 .text.TK_Scan_Start + $t 0x00003c44 0 .text.TK_Scan_Start + $d 0x00003c5c 0 .text.TK_Scan_Start + $d 0x00003c64 0 .text.TK_Keymap_prog + $t 0x00003c64 0 .text.TK_Keymap_prog + $d 0x00003dac 0 .text.TK_Keymap_prog + $d 0x00003de4 0 .text.TK_overflow_predict + $t 0x00003de4 0 .text.TK_overflow_predict + $d 0x00003ecc 0 .text.TK_overflow_predict + $d 0x00003f00 0 .text.TK_Baseline_tracking + $t 0x00003f00 0 .text.TK_Baseline_tracking + $d 0x000040a4 0 .text.TK_Baseline_tracking + $d 0x000040d0 0 .text.TK_result_prog + $t 0x000040d0 0 .text.TK_result_prog + $d 0x00004110 0 .text.TK_result_prog + $d 0x00004124 0 .text.CORETHandler + $t 0x00004124 0 .text.CORETHandler + $d 0x00004184 0 .text.CORETHandler + $d 0x0000419c 0 .text.std_clk_calib + $t 0x0000419c 0 .text.std_clk_calib + $d 0x000043e4 0 .text.std_clk_calib + bp 0x00004420 O 16 .rodata + dp_l 0x00004430 O 16 .rodata + dp_h 0x00004440 O 16 .rodata + NUM.6009 0x200000a0 O 1 .bss + test_tick.5926 0x200000c0 O 4 .bss + card_tick.5925 0x200000c4 O 4 .bss + head_handle 0x200000c8 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __memset_fast 0x00001964 w F 136 .text + memset 0x00001964 w F 136 .text + __memcpy_fast 0x000019ec w F 100 .text + memcpy 0x000019ec w F 100 .text + __main 0x00001a50 F 56 .text.__main + SYSCON_RST_VALUE 0x00001afc F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001b48 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001b78 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c00 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c28 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001c64 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001c78 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001c90 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001cb0 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001ccc F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001ce8 F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x00001d28 F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x00001d34 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001d58 F 48 .text.Set_INT_Priority + GPIO_Init 0x00001d88 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001e68 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001e7c F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e8a F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001e92 F 8 .text.GPIO_Write_Low + GPIO_Read_Status 0x00001e9a F 16 .text.GPIO_Read_Status + GPIO_Read_Output 0x00001eaa F 16 .text.GPIO_Read_Output + LPT_Soft_Reset 0x00001ebc F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00001ed0 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00001ee0 F 28 .text.BT_DeInit + BT_Start 0x00001efc F 8 .text.BT_Start + BT_Soft_Reset 0x00001f04 F 10 .text.BT_Soft_Reset + BT_Configure 0x00001f0e F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00001f26 F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00001f52 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00001f58 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00001f6c F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00001f7c F 160 .text.GPT_IO_Init + GPT_Configure 0x0000201c F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00002030 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x00002074 F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x00002088 F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x0000213c F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x0000214c F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x0000215c F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x00002178 F 24 .text.UART0_DeInit + UART1_DeInit 0x00002190 F 24 .text.UART1_DeInit + UART2_DeInit 0x000021a8 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000021c0 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000021dc F 28 .text.UART2_Int_Enable + UART_IO_Init 0x000021f8 F 236 .text.UART_IO_Init + UARTInit 0x000022e4 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x000022f4 F 16 .text.UARTInitRxTxIntEn + EPT_Stop 0x00002304 F 40 .text.EPT_Stop + main 0x0000232c F 88 .text.startup.main + delay_nms 0x00002384 F 44 .text.delay_nms + GPT0_CONFIG 0x000023b0 F 148 .text.GPT0_CONFIG + BT_CONFIG 0x00002444 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x000024a4 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002508 F 108 .text.APT32F102_init + SYSCONIntHandler 0x00002574 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002664 F 104 .text.IFCIntHandler + ADCIntHandler 0x000026cc F 104 .text.ADCIntHandler + EPT0IntHandler 0x00002734 F 428 .text.EPT0IntHandler + WWDTHandler 0x000028e0 F 52 .text.WWDTHandler + GPT0IntHandler 0x00002914 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00002994 F 112 .text.RTCIntHandler + UART0IntHandler 0x00002a04 F 60 .text.UART0IntHandler + UART1IntHandler 0x00002a40 F 60 .text.UART1IntHandler + UART2IntHandler 0x00002a7c F 148 .text.UART2IntHandler + SPI0IntHandler 0x00002b10 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00002bf8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00002c4c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00002c7c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00002cac F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00002cf4 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00002d50 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x00002db0 F 52 .text.LPTIntHandler + BT0IntHandler 0x00002de4 F 76 .text.BT0IntHandler + BT1IntHandler 0x00002e30 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00002e94 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00002e96 F 8 .text.PendTrapHandler + Trap3Handler 0x00002e9e F 8 .text.Trap3Handler + Trap2Handler 0x00002ea6 F 8 .text.Trap2Handler + Trap1Handler 0x00002eae F 8 .text.Trap1Handler + Trap0Handler 0x00002eb6 F 8 .text.Trap0Handler + UnrecExecpHandler 0x00002ebe F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00002ec6 F 8 .text.BreakPointHandler + AccessErrHandler 0x00002ece F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00002ed6 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00002ede F 8 .text.MisalignedHandler + CNTAIntHandler 0x00002ee6 F 8 .text.CNTAIntHandler + I2CIntHandler 0x00002eee F 8 .text.I2CIntHandler + __divsi3 0x00002ef8 F 36 .text.__divsi3 + __udivsi3 0x00002f1c F 36 .text.__udivsi3 + CK_CPU_EnAllNormalIrq 0x00002f40 F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x00002f48 F 216 .text.UARTx_Init + UART2_RecvINT_Processing 0x00003020 F 100 .text.UART2_RecvINT_Processing + Dbg_Println 0x00003084 F 12 .text.Dbg_Println + RC522_Delay 0x00003090 F 18 .text.RC522_Delay + RC522_ReadWriteOneByte 0x000030a4 F 84 .text.RC522_ReadWriteOneByte + RC522_ReadRawRC 0x000030f8 F 56 .text.RC522_ReadRawRC + RC522_WriteRawRC 0x00003130 F 48 .text.RC522_WriteRawRC + RC522_PcdReset 0x00003160 F 76 .text.RC522_PcdReset + RC522_SetBitMask 0x000031ac F 24 .text.RC522_SetBitMask + RC522_PcdAntennaOn 0x000031c4 F 26 .text.RC522_PcdAntennaOn + RC522_ClearBitMask 0x000031de F 22 .text.RC522_ClearBitMask + RC522_PcdAntennaOff 0x000031f4 F 12 .text.RC522_PcdAntennaOff + RC522_CalulateCRC 0x00003200 F 102 .text.RC522_CalulateCRC + RC522_Init 0x000032b8 F 160 .text.RC522_Init + RC522_PcdComMF522 0x00003358 F 314 .text.RC522_PcdComMF522 + RC522_PcdSelect 0x00003492 F 106 .text.RC522_PcdSelect + RC522_PcdAuthState 0x000034fc F 88 .text.RC522_PcdAuthState + RC522_PcdRequest 0x00003554 F 84 .text.RC522_PcdRequest + RC522_PcdAnticoll 0x000035a8 F 116 .text.RC522_PcdAnticoll + Card_Read_TasK 0x0000361c F 212 .text.Card_Read_TasK + KEY1_LONG_PRESS_RELEASE_Handler 0x00003710 F 100 .text.KEY1_LONG_PRESS_RELEASE_Handler + RLY_Light_Ctrl 0x00003774 F 48 .text.RLY_Light_Ctrl + LogicCtrl_Init 0x000037a4 F 44 .text.LogicCtrl_Init + LogicCtrl_Task 0x000037d0 F 152 .text.LogicCtrl_Task + LogicCtrl_NoRF_Init 0x00003868 F 96 .text.LogicCtrl_NoRF_Init + LogicCtrl_NoRF_Task 0x000038c8 F 188 .text.LogicCtrl_NoRF_Task + button_init 0x00003984 F 58 .text.button_init + button_attach 0x000039be F 10 .text.button_attach + button_handler 0x000039c8 F 288 .text.button_handler + button_start 0x00003ae8 F 36 .text.button_start + button_ticks 0x00003b0c F 28 .text.button_ticks + read_button_GPIO 0x00003b28 F 20 .text.read_button_GPIO + TK_Sampling_prog 0x00003b3c F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00003b94 F 136 .text.TKEYIntHandler + get_key_number 0x00003c1c F 40 .text.get_key_number + TK_Scan_Start 0x00003c44 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00003c64 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00003de4 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00003f00 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x000040d0 F 84 .text.TK_result_prog + CORETHandler 0x00004124 F 120 .text.CORETHandler + std_clk_calib 0x0000419c F 644 .text.std_clk_calib + __thenan_df 0x00004450 O 20 .rodata + __clz_tab 0x00004464 O 256 .rodata + _end_rodata 0x00004644 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + _bss_start 0x2000009c 0 .bss + rf_exist 0x2000009c O 1 .bss + test_state 0x2000009d O 1 .bss + SysTick_100us 0x200000a4 O 4 .bss + SysTick_1ms 0x200000a8 O 4 .bss + RS485_Comming 0x200000ac O 4 .bss + RS485_Comm_Flag 0x200000b0 O 4 .bss + RS485_Comm_Start 0x200000b4 O 4 .bss + RS485_Comm_End 0x200000b8 O 4 .bss + scan_tick 0x200000bc O 4 .bss + Press_debounce_data 0x200000cc O 1 .bss + TK_Lowpower_mode 0x200000cd O 1 .bss + TK_Lowpower_level 0x200000ce O 1 .bss + TK_longpress_time 0x200000d0 O 4 .bss + Release_debounce_data 0x200000d4 O 1 .bss + Key_mode 0x200000d5 O 1 .bss + TK_icon 0x200000d6 O 34 .bss + MultiTimes_Filter 0x200000f8 O 1 .bss + Base_Speed 0x200000f9 O 1 .bss + TK_IO_ENABLE 0x200000fc O 4 .bss + Valid_Key_Num 0x20000100 O 1 .bss + TK_senprd 0x20000102 O 34 .bss + TK_Wakeup_level 0x20000124 O 1 .bss + TK_Triggerlevel 0x20000126 O 34 .bss + TK_EC_LEVEL 0x20000148 O 2 .bss + TK_FVR_LEVEL 0x2000014a O 2 .bss + TK_BaseCnt 0x2000014c O 4 .bss + TK_PSEL_MODE 0x20000150 O 2 .bss + R_CMPB_BUF 0x20000154 O 4 .bss + R_CMPA_BUF 0x20000158 O 4 .bss + R_SIORX_buf 0x2000015c O 40 .bss + g_uart 0x20000184 O 115 .bss + CardInfo 0x200001f7 O 40 .bss + KEY1 0x20000220 O 48 .bss + dm_in 0x20000250 O 5 .bss + baseline_data0 0x20000258 O 34 .bss + TK_Postive_build2 0x2000027a O 17 .bss + Key_Map1 0x2000028c O 4 .bss + offset_data2_abs 0x20000290 O 34 .bss + scan_f 0x200002b2 O 1 .bss + offset_data1_abs 0x200002b4 O 34 .bss + Release_debounce0 0x200002d6 O 17 .bss + Key_Map0 0x200002e8 O 4 .bss + bsae_over_f 0x200002ec O 1 .bss + scan_cnt 0x200002ee O 2 .bss + Press_debounce0 0x200002f0 O 17 .bss + offset_data0 0x20000302 O 34 .bss + sampling_data1 0x20000324 O 34 .bss + Key_Map2 0x20000348 O 4 .bss + Release_debounce1 0x2000034c O 17 .bss + tk_overflow_f 0x2000035d O 1 .bss + TK_Negtive_build2 0x2000035e O 17 .bss + base_update_f 0x2000036f O 1 .bss + TK_Postive_build1 0x20000370 O 17 .bss + time_cnt 0x20000384 O 4 .bss + lpt_scan_pend_cnt 0x20000388 O 2 .bss + TK_track_cnt 0x2000038a O 1 .bss + Key_Map 0x2000038c O 4 .bss + baseline_data1 0x20000390 O 34 .bss + TK_Postive_build0 0x200003b2 O 17 .bss + sampling_data2 0x200003c4 O 34 .bss + offset_data1 0x200003e6 O 34 .bss + TK_ovrdect_cnt 0x20000408 O 1 .bss + Press_debounce2 0x20000409 O 17 .bss + TK_Negtive_build1 0x2000041a O 17 .bss + tk_num 0x2000042b O 1 .bss + TK_Negtive_build0 0x2000042c O 17 .bss + Press_debounce1 0x2000043d O 17 .bss + Release_debounce2 0x2000044e O 17 .bss + r_Key_Map_Temp 0x20000460 O 4 .bss + tk_seque 0x20000464 O 17 .bss + scan_step 0x20000475 O 1 .bss + baseline_data2 0x20000476 O 34 .bss + tk_sampling_max 0x20000498 O 34 .bss + offset_data0_abs 0x200004ba O 34 .bss + offset_data2 0x200004dc O 34 .bss + sampling_data0 0x200004fe O 34 .bss + _ebss 0x20000520 0 .bss + _end 0x20000520 0 .bss + end 0x20000520 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00004644, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1006 .text pow.o + 0x00000b5e 0x00000006 Code RO 1014 .text fabs.o + 0x00000b64 0x00000020 Code RO 1020 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1027 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1038 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1043 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1050 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1057 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1064 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1071 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1078 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1085 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1092 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1099 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1113 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1120 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1127 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1133 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1140 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1147 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1168 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1173 .text memcpy_fast.o + 0x00001a50 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001a88 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001afc 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001b48 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001b78 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c00 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c28 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001c64 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001c78 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c90 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cb0 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001ccc 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001ce8 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d28 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d34 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001d58 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001d88 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001e68 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001e7c 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e8a 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001e92 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001e9a 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00001eaa 0x00000010 Code RO 152 .text.GPIO_Read_Output Obj/FWlib_apt32f102_gpio.o + 0x00001ebc 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00001ed0 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00001ee0 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00001efc 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00001f04 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00001f0e 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f26 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f52 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00001f58 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00001f6c 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00001f7c 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x0000201c 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002030 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002074 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002088 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000213c 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x0000214c 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x0000215c 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x00002178 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002190 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021a8 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021c0 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000021dc 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000021f8 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000022e4 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x000022f4 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002304 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x0000232c 0x00000058 Code RO 690 .text.startup.main Obj/main.o + 0x00002384 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x000023b0 0x00000094 Code RO 711 .text.GPT0_CONFIG Obj/mcu_initial.o + 0x00002444 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x000024a4 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002508 0x0000006c Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00002574 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002664 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x000026cc 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00002734 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x000028e0 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00002914 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00002994 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00002a04 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00002a40 0x0000003c Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00002a7c 0x00000094 Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00002b10 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00002bf8 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00002c4c 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00002c7c 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00002cac 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00002cf4 0x0000005c Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00002d50 0x00000060 Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00002db0 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00002de4 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00002e30 0x00000064 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00002e94 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00002e96 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00002e9e 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00002ea6 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00002eae 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00002eb6 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00002ebe 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00002ec6 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00002ece 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00002ed6 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00002ede 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00002ee6 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00002eee 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00002ef8 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00002f1c 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00002f40 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00002f48 0x000000d8 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003020 0x00000064 Code RO 823 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003084 0x0000000c Code RO 829 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003090 0x00000012 Code RO 847 .text.RC522_Delay Obj/SYSTEM_rc522.o + 0x000030a4 0x00000054 Code RO 848 .text.RC522_ReadWriteOneByte Obj/SYSTEM_rc522.o + 0x000030f8 0x00000038 Code RO 849 .text.RC522_ReadRawRC Obj/SYSTEM_rc522.o + 0x00003130 0x00000030 Code RO 850 .text.RC522_WriteRawRC Obj/SYSTEM_rc522.o + 0x00003160 0x0000004c Code RO 851 .text.RC522_PcdReset Obj/SYSTEM_rc522.o + 0x000031ac 0x00000018 Code RO 852 .text.RC522_SetBitMask Obj/SYSTEM_rc522.o + 0x000031c4 0x0000001a Code RO 853 .text.RC522_PcdAntennaOn Obj/SYSTEM_rc522.o + 0x000031de 0x00000016 Code RO 854 .text.RC522_ClearBitMask Obj/SYSTEM_rc522.o + 0x000031f4 0x0000000c Code RO 855 .text.RC522_PcdAntennaOff Obj/SYSTEM_rc522.o + 0x00003200 0x00000066 Code RO 857 .text.RC522_CalulateCRC Obj/SYSTEM_rc522.o + 0x00003266 0x00000052 Code RO 858 .text.M500PcdConfigISOType.part.1 Obj/SYSTEM_rc522.o + 0x000032b8 0x000000a0 Code RO 860 .text.RC522_Init Obj/SYSTEM_rc522.o + 0x00003358 0x0000013a Code RO 861 .text.RC522_PcdComMF522 Obj/SYSTEM_rc522.o + 0x00003492 0x0000006a Code RO 863 .text.RC522_PcdSelect Obj/SYSTEM_rc522.o + 0x000034fc 0x00000058 Code RO 864 .text.RC522_PcdAuthState Obj/SYSTEM_rc522.o + 0x00003554 0x00000054 Code RO 867 .text.RC522_PcdRequest Obj/SYSTEM_rc522.o + 0x000035a8 0x00000074 Code RO 868 .text.RC522_PcdAnticoll Obj/SYSTEM_rc522.o + 0x0000361c 0x000000d4 Code RO 869 .text.Card_Read_TasK Obj/SYSTEM_rc522.o + 0x000036f0 0x00000020 Code RO 887 .text.RLY_Light_Ctrl.part.0 Obj/SYSTEM_logic_ctrl.o + 0x00003710 0x00000064 Code RO 888 .text.KEY1_LONG_PRESS_RELEASE_Handler Obj/SYSTEM_logic_ctrl.o + 0x00003774 0x00000030 Code RO 890 .text.RLY_Light_Ctrl Obj/SYSTEM_logic_ctrl.o + 0x000037a4 0x0000002c Code RO 891 .text.LogicCtrl_Init Obj/SYSTEM_logic_ctrl.o + 0x000037d0 0x00000098 Code RO 892 .text.LogicCtrl_Task Obj/SYSTEM_logic_ctrl.o + 0x00003868 0x00000060 Code RO 894 .text.LogicCtrl_NoRF_Init Obj/SYSTEM_logic_ctrl.o + 0x000038c8 0x000000bc Code RO 895 .text.LogicCtrl_NoRF_Task Obj/SYSTEM_logic_ctrl.o + 0x00003984 0x0000003a Code RO 913 .text.button_init Obj/SYSTEM_button.o + 0x000039be 0x0000000a Code RO 914 .text.button_attach Obj/SYSTEM_button.o + 0x000039c8 0x00000120 Code RO 916 .text.button_handler Obj/SYSTEM_button.o + 0x00003ae8 0x00000024 Code RO 917 .text.button_start Obj/SYSTEM_button.o + 0x00003b0c 0x0000001c Code RO 919 .text.button_ticks Obj/SYSTEM_button.o + 0x00003b28 0x00000014 Code RO 920 .text.read_button_GPIO Obj/SYSTEM_button.o + 0x00003b3c 0x00000058 Code RO 952 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00003b94 0x00000088 Code RO 956 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00003c1c 0x00000028 Code RO 957 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00003c44 0x00000020 Code RO 959 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00003c64 0x00000180 Code RO 960 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00003de4 0x0000011c Code RO 961 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00003f00 0x000001d0 Code RO 962 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x000040d0 0x00000054 Code RO 963 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00004124 0x00000078 Code RO 964 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000419c 0x00000284 Code RO 986 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00004420 0x00000030 Data RO 1009 .rodata pow.o + 0x00004450 0x00000014 Data RO 1109 .rodata _thenan_df.o + 0x00004464 0x00000100 Data RO 1157 .rodata _clz.o + 0x00004564 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x0000456f 0x00000071 Data RO 870 .rodata.str1.1 Obj/SYSTEM_rc522.o + 0x000045e0 0x00000063 Data RO 896 .rodata.str1.1 Obj/SYSTEM_logic_ctrl.o + 0x00004643 0x00000001 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000520, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 943 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x00000002 Zero RW 689 .bss Obj/main.o + 0x2000009e 0x00000002 PAD + 0x200000a0 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000ac 0x00000010 Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200000bc 0x00000004 Zero RW 846 .bss Obj/SYSTEM_rc522.o + 0x200000c0 0x00000008 Zero RW 886 .bss Obj/SYSTEM_logic_ctrl.o + 0x200000c8 0x00000004 Zero RW 912 .bss Obj/SYSTEM_button.o + 0x200000cc 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x20000152 0x00000002 PAD + 0x20000154 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x20000184 0x00000073 Zero RW 843 COMMON Obj/SYSTEM_uart.o + 0x200001f7 0x00000028 Zero RW 883 COMMON Obj/SYSTEM_rc522.o + 0x2000021f 0x00000001 PAD + 0x20000220 0x00000035 Zero RW 909 COMMON Obj/SYSTEM_logic_ctrl.o + 0x20000255 0x00000003 PAD + 0x20000258 0x000002c8 Zero RW 982 COMMON FWlib_apt32f102_tkey_c_1_17.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 274 Obj/arch_crt0.o + 56 0 0 0 810 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21132 Obj/FWlib_apt32f102_syscon.o + 306 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 396 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 88 11 0 136 10738 Obj/main.o + 494 0 0 0 16057 Obj/mcu_initial.o + 2434 0 0 60 14189 Obj/mcu_interrupt.o + 72 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 328 0 0 131 11962 Obj/SYSTEM_uart.o + 1630 113 0 44 15756 Obj/SYSTEM_rc522.o + 660 99 0 61 11503 Obj/SYSTEM_logic_ctrl.o + 440 0 0 4 11467 Obj/SYSTEM_button.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 8852 223 104 436 238642 Object Totals + 4 1 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16345 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16345 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + ------------------------------------------------------------ + 3172 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + ------------------------------------------------------------ + 236 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 17428 548 156 1156 263662 Grand Totals + 17428 548 156 1156 263662 Elf Image Totals + 17428 548 156 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 17976 ( 17.55kB) +Total RW Size (RW Data + ZI Data) 1312 ( 1.28kB) +Total ROM Size (Code + RO Data + RW Data) 18132 ( 17.71kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20240513.asm b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20240513.asm new file mode 100644 index 0000000..9cc3ffc --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20240513.asm @@ -0,0 +1,13815 @@ + +.//Obj/RF_T1F_CR_V01_20240513.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 000043d2 .long 0x000043d2 + 8: 000043c2 .long 0x000043c2 + c: 00000184 .long 0x00000184 + 10: 000043ca .long 0x000043ca + 14: 00004388 .long 0x00004388 + 18: 00000184 .long 0x00000184 + 1c: 000043ba .long 0x000043ba + 20: 000043b2 .long 0x000043b2 + 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: 000043aa .long 0x000043aa + 44: 000043a2 .long 0x000043a2 + 48: 0000439a .long 0x0000439a + 4c: 00004392 .long 0x00004392 + 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: 0000438a .long 0x0000438a + 80: 0000589c .long 0x0000589c + 84: 00003a68 .long 0x00003a68 + 88: 00003b58 .long 0x00003b58 + 8c: 00003bc0 .long 0x00003bc0 + 90: 00003c28 .long 0x00003c28 + 94: 00000184 .long 0x00000184 + 98: 00003dd4 .long 0x00003dd4 + 9c: 00004140 .long 0x00004140 + a0: 00004170 .long 0x00004170 + a4: 00003e08 .long 0x00003e08 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00003e88 .long 0x00003e88 + b4: 00003ef8 .long 0x00003ef8 + b8: 00003f34 .long 0x00003f34 + bc: 00003f70 .long 0x00003f70 + c0: 00000184 .long 0x00000184 + c4: 000043e2 .long 0x000043e2 + c8: 00000184 .long 0x00000184 + cc: 00004004 .long 0x00004004 + d0: 000040ec .long 0x000040ec + d4: 000041a0 .long 0x000041a0 + d8: 000041e8 .long 0x000041e8 + dc: 00004244 .long 0x00004244 + e0: 000043da .long 0x000043da + e4: 0000530c .long 0x0000530c + e8: 000042a4 .long 0x000042a4 + ec: 00000184 .long 0x00000184 + f0: 000042d8 .long 0x000042d8 + f4: 00004324 .long 0x00004324 + 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, 0x2f14 // 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, 0x3824 // 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: 00002f14 .long 0x00002f14 + 198: 00000160 .long 0x00000160 + 19c: 00003824 .long 0x00003824 + 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, 0x5b98 // 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: 00005b98 .long 0x00005b98 + 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, 0x5b98 // 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, 0x5b98 // 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: 00005b98 .long 0x00005b98 + 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, 0x5bc8 // 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: 00005bc8 .long 0x00005bc8 + +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, 0x5bc8 // 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: 00005bc8 .long 0x00005bc8 + 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, 0x5bc8 // 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: 00005bc8 .long 0x00005bc8 + +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, 0x5bdc // 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: 00005bdc .long 0x00005bdc + +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 <__cskyvprintfsnprintf>: + 1964: 1422 subi r14, r14, 8 + 1966: b861 st.w r3, (r14, 0x4) + 1968: b840 st.w r2, (r14, 0x0) + 196a: 14d0 push r15 + 196c: 1421 subi r14, r14, 4 + 196e: 9862 ld.w r3, (r14, 0x8) + 1970: b860 st.w r3, (r14, 0x0) + 1972: 9840 ld.w r2, (r14, 0x0) + 1974: 1b03 addi r3, r14, 12 + 1976: e0000026 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + 197a: 1401 addi r14, r14, 4 + 197c: d9ee2000 ld.w r15, (r14, 0x0) + 1980: 1403 addi r14, r14, 12 + 1982: 783c jmp r15 + +00001984 : + 1984: 14d3 push r4-r6, r15 + 1986: 6d4b mov r5, r2 + 1988: 9582 ld.w r4, (r5, 0x8) + 198a: 9241 ld.w r2, (r2, 0x4) + 198c: 610a subu r4, r2 + 198e: 3c40 cmpnei r4, 0 + 1990: 6d87 mov r6, r1 + 1992: 0c16 bf 0x19be // 19be + 1994: 6504 cmphs r1, r4 + 1996: 0802 bt 0x199a // 199a + 1998: 6d07 mov r4, r1 + 199a: 9560 ld.w r3, (r5, 0x0) + 199c: 3b40 cmpnei r3, 0 + 199e: 0c0d bf 0x19b8 // 19b8 + 19a0: 60c8 addu r3, r2 + 19a2: 6c43 mov r1, r0 + 19a4: 6c93 mov r2, r4 + 19a6: 6c0f mov r0, r3 + 19a8: e000007e bsr 0x1aa4 // 1aa4 <__memcpy_fast> + 19ac: 9500 ld.w r0, (r5, 0x0) + 19ae: 9521 ld.w r1, (r5, 0x4) + 19b0: 6010 addu r0, r4 + 19b2: 6004 addu r0, r1 + 19b4: 3200 movi r2, 0 + 19b6: a040 st.b r2, (r0, 0x0) + 19b8: 9561 ld.w r3, (r5, 0x4) + 19ba: 610c addu r4, r3 + 19bc: b581 st.w r4, (r5, 0x4) + 19be: 6c1b mov r0, r6 + 19c0: 1493 pop r4-r6, r15 + +000019c2 <__cskyvprintfvsnprintf>: + 19c2: 14d3 push r4-r6, r15 + 19c4: 1425 subi r14, r14, 20 + 19c6: 6d07 mov r4, r1 + 19c8: 6d43 mov r5, r0 + 19ca: 6c4b mov r1, r2 + 19cc: 1802 addi r0, r14, 8 + 19ce: 3200 movi r2, 0 + 19d0: 3c40 cmpnei r4, 0 + 19d2: b0a0 st.w r5, (r0, 0x0) + 19d4: b041 st.w r2, (r0, 0x4) + 19d6: 0c1c bf 0x1a0e // 1a0e <__cskyvprintfvsnprintf+0x4c> + 19d8: 5cc3 subi r6, r4, 1 + 19da: b0c2 st.w r6, (r0, 0x8) + 19dc: b800 st.w r0, (r14, 0x0) + 19de: 6c8f mov r2, r3 + 19e0: 100e lrw r0, 0x1984 // 1a18 <__cskyvprintfvsnprintf+0x56> + 19e2: b801 st.w r0, (r14, 0x4) + 19e4: 6c3b mov r0, r14 + 19e6: e00000ab bsr 0x1b3c // 1b3c <__v2_printf> + 19ea: 3d40 cmpnei r5, 0 + 19ec: 0c0f bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19ee: 3c40 cmpnei r4, 0 + 19f0: 0c0d bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f2: 38df btsti r0, 31 + 19f4: 080b bt 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f6: 3300 movi r3, 0 + 19f8: 2b00 subi r3, 1 + 19fa: 64d2 cmpne r4, r3 + 19fc: 0c0b bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 19fe: 6500 cmphs r0, r4 + 1a00: 0c09 bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 1a02: 6114 addu r4, r5 + 1a04: 2c00 subi r4, 1 + 1a06: 3100 movi r1, 0 + 1a08: a420 st.b r1, (r4, 0x0) + 1a0a: 1405 addi r14, r14, 20 + 1a0c: 1493 pop r4-r6, r15 + 1a0e: 3600 movi r6, 0 + 1a10: 07e5 br 0x19da // 19da <__cskyvprintfvsnprintf+0x18> + 1a12: 5d80 addu r4, r5, r0 + 1a14: 07f9 br 0x1a06 // 1a06 <__cskyvprintfvsnprintf+0x44> + 1a16: 0000 bkpt + 1a18: 00001984 .long 0x00001984 + +00001a1c <__memset_fast>: + 1a1c: 14c3 push r4-r6 + 1a1e: 7444 zextb r1, r1 + 1a20: 3a40 cmpnei r2, 0 + 1a22: 0c1f bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a24: 6d43 mov r5, r0 + 1a26: 6d03 mov r4, r0 + 1a28: 3603 movi r6, 3 + 1a2a: 6918 and r4, r6 + 1a2c: 3c40 cmpnei r4, 0 + 1a2e: 0c1a bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a30: a520 st.b r1, (r5, 0x0) + 1a32: 2a00 subi r2, 1 + 1a34: 3a40 cmpnei r2, 0 + 1a36: 0c15 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a38: 2500 addi r5, 1 + 1a3a: 6d17 mov r4, r5 + 1a3c: 3603 movi r6, 3 + 1a3e: 6918 and r4, r6 + 1a40: 3c40 cmpnei r4, 0 + 1a42: 0c10 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a44: a520 st.b r1, (r5, 0x0) + 1a46: 2a00 subi r2, 1 + 1a48: 3a40 cmpnei r2, 0 + 1a4a: 0c0b bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a4c: 2500 addi r5, 1 + 1a4e: 6d17 mov r4, r5 + 1a50: 3603 movi r6, 3 + 1a52: 6918 and r4, r6 + 1a54: 3c40 cmpnei r4, 0 + 1a56: 0c06 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a58: a520 st.b r1, (r5, 0x0) + 1a5a: 2a00 subi r2, 1 + 1a5c: 2500 addi r5, 1 + 1a5e: 0402 br 0x1a62 // 1a62 <__memset_fast+0x46> + 1a60: 1483 pop r4-r6 + 1a62: 4168 lsli r3, r1, 8 + 1a64: 6c4c or r1, r3 + 1a66: 4170 lsli r3, r1, 16 + 1a68: 6c4c or r1, r3 + 1a6a: 3a2f cmplti r2, 16 + 1a6c: 0809 bt 0x1a7e // 1a7e <__memset_fast+0x62> + 1a6e: b520 st.w r1, (r5, 0x0) + 1a70: b521 st.w r1, (r5, 0x4) + 1a72: b522 st.w r1, (r5, 0x8) + 1a74: b523 st.w r1, (r5, 0xc) + 1a76: 2a0f subi r2, 16 + 1a78: 250f addi r5, 16 + 1a7a: 3a2f cmplti r2, 16 + 1a7c: 0ff9 bf 0x1a6e // 1a6e <__memset_fast+0x52> + 1a7e: 3a23 cmplti r2, 4 + 1a80: 0806 bt 0x1a8c // 1a8c <__memset_fast+0x70> + 1a82: 2a03 subi r2, 4 + 1a84: b520 st.w r1, (r5, 0x0) + 1a86: 2503 addi r5, 4 + 1a88: 3a23 cmplti r2, 4 + 1a8a: 0ffc bf 0x1a82 // 1a82 <__memset_fast+0x66> + 1a8c: 3a40 cmpnei r2, 0 + 1a8e: 0fe9 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a90: 2a00 subi r2, 1 + 1a92: a520 st.b r1, (r5, 0x0) + 1a94: 3a40 cmpnei r2, 0 + 1a96: 0fe5 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a98: 2a00 subi r2, 1 + 1a9a: a521 st.b r1, (r5, 0x1) + 1a9c: 3a40 cmpnei r2, 0 + 1a9e: 0fe1 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1aa0: a522 st.b r1, (r5, 0x2) + 1aa2: 1483 pop r4-r6 + +00001aa4 <__memcpy_fast>: + 1aa4: 14c3 push r4-r6 + 1aa6: 6d83 mov r6, r0 + 1aa8: 6d07 mov r4, r1 + 1aaa: 6d18 or r4, r6 + 1aac: 3303 movi r3, 3 + 1aae: 690c and r4, r3 + 1ab0: 3c40 cmpnei r4, 0 + 1ab2: 0c0b bf 0x1ac8 // 1ac8 <__memcpy_fast+0x24> + 1ab4: 3a40 cmpnei r2, 0 + 1ab6: 0c08 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1ab8: 8160 ld.b r3, (r1, 0x0) + 1aba: 2100 addi r1, 1 + 1abc: 2a00 subi r2, 1 + 1abe: a660 st.b r3, (r6, 0x0) + 1ac0: 2600 addi r6, 1 + 1ac2: 3a40 cmpnei r2, 0 + 1ac4: 0bfa bt 0x1ab8 // 1ab8 <__memcpy_fast+0x14> + 1ac6: 1483 pop r4-r6 + 1ac8: 3a2f cmplti r2, 16 + 1aca: 080e bt 0x1ae6 // 1ae6 <__memcpy_fast+0x42> + 1acc: 91a0 ld.w r5, (r1, 0x0) + 1ace: 9161 ld.w r3, (r1, 0x4) + 1ad0: 9182 ld.w r4, (r1, 0x8) + 1ad2: b6a0 st.w r5, (r6, 0x0) + 1ad4: 91a3 ld.w r5, (r1, 0xc) + 1ad6: b661 st.w r3, (r6, 0x4) + 1ad8: b682 st.w r4, (r6, 0x8) + 1ada: b6a3 st.w r5, (r6, 0xc) + 1adc: 2a0f subi r2, 16 + 1ade: 210f addi r1, 16 + 1ae0: 260f addi r6, 16 + 1ae2: 3a2f cmplti r2, 16 + 1ae4: 0ff4 bf 0x1acc // 1acc <__memcpy_fast+0x28> + 1ae6: 3a23 cmplti r2, 4 + 1ae8: 0808 bt 0x1af8 // 1af8 <__memcpy_fast+0x54> + 1aea: 9160 ld.w r3, (r1, 0x0) + 1aec: 2a03 subi r2, 4 + 1aee: 2103 addi r1, 4 + 1af0: b660 st.w r3, (r6, 0x0) + 1af2: 2603 addi r6, 4 + 1af4: 3a23 cmplti r2, 4 + 1af6: 0ffa bf 0x1aea // 1aea <__memcpy_fast+0x46> + 1af8: 3a40 cmpnei r2, 0 + 1afa: 0fe6 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1afc: 8160 ld.b r3, (r1, 0x0) + 1afe: 2100 addi r1, 1 + 1b00: 2a00 subi r2, 1 + 1b02: a660 st.b r3, (r6, 0x0) + 1b04: 2600 addi r6, 1 + 1b06: 07f9 br 0x1af8 // 1af8 <__memcpy_fast+0x54> + +00001b08 : + 1b08: 14d4 push r4-r7, r15 + 1b0a: 3820 cmplti r0, 1 + 1b0c: 6d03 mov r4, r0 + 1b0e: 6d47 mov r5, r1 + 1b10: 6df7 mov r7, r13 + 1b12: 080d bt 0x1b2c // 1b2c + 1b14: 6d83 mov r6, r0 + 1b16: 3e30 cmplti r6, 17 + 1b18: 9700 ld.w r0, (r7, 0x0) + 1b1a: 0c0a bf 0x1b2e // 1b2e + 1b1c: 5c63 subi r3, r4, 1 + 1b1e: 4b24 lsri r1, r3, 4 + 1b20: 4164 lsli r3, r1, 4 + 1b22: 9040 ld.w r2, (r0, 0x0) + 1b24: 5c2d subu r1, r4, r3 + 1b26: 9081 ld.w r4, (r0, 0x4) + 1b28: 6c17 mov r0, r5 + 1b2a: 7bd1 jsr r4 + 1b2c: 1494 pop r4-r7, r15 + 1b2e: 9040 ld.w r2, (r0, 0x0) + 1b30: 9061 ld.w r3, (r0, 0x4) + 1b32: 3110 movi r1, 16 + 1b34: 6c17 mov r0, r5 + 1b36: 7bcd jsr r3 + 1b38: 2e0f subi r6, 16 + 1b3a: 07ee br 0x1b16 // 1b16 + +00001b3c <__v2_printf>: + 1b3c: 14d4 push r4-r7, r15 + 1b3e: 143c subi r14, r14, 112 + 1b40: b826 st.w r1, (r14, 0x18) + 1b42: 1912 addi r1, r14, 72 + 1b44: 1b21 addi r3, r14, 132 + 1b46: b810 st.w r0, (r14, 0x40) + 1b48: 2100 addi r1, 1 + 1b4a: 3000 movi r0, 0 + 1b4c: 6d4b mov r5, r2 + 1b4e: b871 st.w r3, (r14, 0x44) + 1b50: b80a st.w r0, (r14, 0x28) + 1b52: b809 st.w r0, (r14, 0x24) + 1b54: b82d st.w r1, (r14, 0x34) + 1b56: 9886 ld.w r4, (r14, 0x18) + 1b58: 3325 movi r3, 37 + 1b5a: 84c0 ld.b r6, (r4, 0x0) + 1b5c: 3e40 cmpnei r6, 0 + 1b5e: 0c03 bf 0x1b64 // 1b64 <__v2_printf+0x28> + 1b60: 64da cmpne r6, r3 + 1b62: 0845 bt 0x1bec // 1bec <__v2_printf+0xb0> + 1b64: 9846 ld.w r2, (r14, 0x18) + 1b66: 5cc9 subu r6, r4, r2 + 1b68: 3e40 cmpnei r6, 0 + 1b6a: 0c0a bf 0x1b7e // 1b7e <__v2_printf+0x42> + 1b6c: 9870 ld.w r3, (r14, 0x40) + 1b6e: 9340 ld.w r2, (r3, 0x0) + 1b70: 6c5b mov r1, r6 + 1b72: 9361 ld.w r3, (r3, 0x4) + 1b74: 9806 ld.w r0, (r14, 0x18) + 1b76: 7bcd jsr r3 + 1b78: 9809 ld.w r0, (r14, 0x24) + 1b7a: 6018 addu r0, r6 + 1b7c: b809 st.w r0, (r14, 0x24) + 1b7e: 8420 ld.b r1, (r4, 0x0) + 1b80: 3940 cmpnei r1, 0 + 1b82: 0803 bt 0x1b88 // 1b88 <__v2_printf+0x4c> + 1b84: e8000367 br 0x2252 // 2252 <__v2_printf+0x716> + 1b88: 3637 movi r6, 55 + 1b8a: 1a01 addi r2, r14, 4 + 1b8c: 3700 movi r7, 0 + 1b8e: 6188 addu r6, r2 + 1b90: a6e0 st.b r7, (r6, 0x0) + 1b92: 3300 movi r3, 0 + 1b94: 3600 movi r6, 0 + 1b96: 2400 addi r4, 1 + 1b98: 3000 movi r0, 0 + 1b9a: 3100 movi r1, 0 + 1b9c: 2e00 subi r6, 1 + 1b9e: b867 st.w r3, (r14, 0x1c) + 1ba0: 3700 movi r7, 0 + 1ba2: 5c42 addi r2, r4, 1 + 1ba4: b846 st.w r2, (r14, 0x18) + 1ba6: 8480 ld.b r4, (r4, 0x0) + 1ba8: 3364 movi r3, 100 + 1baa: 64d2 cmpne r4, r3 + 1bac: 0d90 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1bae: 650d cmplt r3, r4 + 1bb0: 084e bt 0x1c4c // 1c4c <__v2_printf+0x110> + 1bb2: 322e movi r2, 46 + 1bb4: 6492 cmpne r4, r2 + 1bb6: 0d41 bf 0x1e38 // 1e38 <__v2_printf+0x2fc> + 1bb8: 6509 cmplt r2, r4 + 1bba: 0829 bt 0x1c0c // 1c0c <__v2_printf+0xd0> + 1bbc: 332a movi r3, 42 + 1bbe: 64d2 cmpne r4, r3 + 1bc0: 0d31 bf 0x1e22 // 1e22 <__v2_printf+0x2e6> + 1bc2: 650d cmplt r3, r4 + 1bc4: 081c bt 0x1bfc // 1bfc <__v2_printf+0xc0> + 1bc6: 3220 movi r2, 32 + 1bc8: 6492 cmpne r4, r2 + 1bca: 0d25 bf 0x1e14 // 1e14 <__v2_printf+0x2d8> + 1bcc: 3323 movi r3, 35 + 1bce: 64d2 cmpne r4, r3 + 1bd0: 0d27 bf 0x1e1e // 1e1e <__v2_printf+0x2e2> + 1bd2: 3c40 cmpnei r4, 0 + 1bd4: 0803 bt 0x1bda // 1bda <__v2_printf+0x9e> + 1bd6: e800033e br 0x2252 // 2252 <__v2_printf+0x716> + 1bda: 1e12 addi r6, r14, 72 + 1bdc: 3037 movi r0, 55 + 1bde: 1a01 addi r2, r14, 4 + 1be0: a680 st.b r4, (r6, 0x0) + 1be2: 6008 addu r0, r2 + 1be4: 3400 movi r4, 0 + 1be6: a080 st.b r4, (r0, 0x0) + 1be8: b8a5 st.w r5, (r14, 0x14) + 1bea: 042c br 0x1c42 // 1c42 <__v2_printf+0x106> + 1bec: 2400 addi r4, 1 + 1bee: 07b6 br 0x1b5a // 1b5a <__v2_printf+0x1e> + 1bf0: 3001 movi r0, 1 + 1bf2: 312b movi r1, 43 + 1bf4: 9886 ld.w r4, (r14, 0x18) + 1bf6: 07d6 br 0x1ba2 // 1ba2 <__v2_printf+0x66> + 1bf8: 6d4f mov r5, r3 + 1bfa: 07fd br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1bfc: 322b movi r2, 43 + 1bfe: 6492 cmpne r4, r2 + 1c00: 0ff8 bf 0x1bf0 // 1bf0 <__v2_printf+0xb4> + 1c02: 332d movi r3, 45 + 1c04: 64d2 cmpne r4, r3 + 1c06: 0be6 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c08: 3fa2 bseti r7, 2 + 1c0a: 07f5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c0c: 3339 movi r3, 57 + 1c0e: 650d cmplt r3, r4 + 1c10: 0809 bt 0x1c22 // 1c22 <__v2_printf+0xe6> + 1c12: 3231 movi r2, 49 + 1c14: 6491 cmplt r4, r2 + 1c16: 0d34 bf 0x1e7e // 1e7e <__v2_printf+0x342> + 1c18: 3330 movi r3, 48 + 1c1a: 64d2 cmpne r4, r3 + 1c1c: 0bdb bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c1e: 3fa7 bseti r7, 7 + 1c20: 07ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c22: 3258 movi r2, 88 + 1c24: 6492 cmpne r4, r2 + 1c26: 0cd3 bf 0x1dcc // 1dcc <__v2_printf+0x290> + 1c28: 3063 movi r0, 99 + 1c2a: 6412 cmpne r4, r0 + 1c2c: 0bd3 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c2e: 3337 movi r3, 55 + 1c30: 1a01 addi r2, r14, 4 + 1c32: 5d2e addi r1, r5, 4 + 1c34: 85c0 ld.b r6, (r5, 0x0) + 1c36: 3400 movi r4, 0 + 1c38: 1d12 addi r5, r14, 72 + 1c3a: 60c8 addu r3, r2 + 1c3c: b825 st.w r1, (r14, 0x14) + 1c3e: a5c0 st.b r6, (r5, 0x0) + 1c40: a380 st.b r4, (r3, 0x0) + 1c42: 3601 movi r6, 1 + 1c44: 3500 movi r5, 0 + 1c46: 1c12 addi r4, r14, 72 + 1c48: e8000295 br 0x2172 // 2172 <__v2_printf+0x636> + 1c4c: 336d movi r3, 109 + 1c4e: 64d2 cmpne r4, r3 + 1c50: 0d2d bf 0x1eaa // 1eaa <__v2_printf+0x36e> + 1c52: 650d cmplt r3, r4 + 1c54: 0883 bt 0x1d5a // 1d5a <__v2_printf+0x21e> + 1c56: 3268 movi r2, 104 + 1c58: 6492 cmpne r4, r2 + 1c5a: 0d24 bf 0x1ea2 // 1ea2 <__v2_printf+0x366> + 1c5c: 6509 cmplt r2, r4 + 1c5e: 086f bt 0x1d3c // 1d3c <__v2_printf+0x200> + 1c60: 3366 movi r3, 102 + 1c62: 64d1 cmplt r4, r3 + 1c64: 0bb7 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c66: 3840 cmpnei r0, 0 + 1c68: 0c05 bf 0x1c72 // 1c72 <__v2_printf+0x136> + 1c6a: 3037 movi r0, 55 + 1c6c: 1a01 addi r2, r14, 4 + 1c6e: 6008 addu r0, r2 + 1c70: a020 st.b r1, (r0, 0x0) + 1c72: 5d3e addi r1, r5, 8 + 1c74: b825 st.w r1, (r14, 0x14) + 1c76: 9500 ld.w r0, (r5, 0x0) + 1c78: 9521 ld.w r1, (r5, 0x4) + 1c7a: 98a7 ld.w r5, (r14, 0x1c) + 1c7c: 3d40 cmpnei r5, 0 + 1c7e: 0803 bt 0x1c84 // 1c84 <__v2_printf+0x148> + 1c80: 3301 movi r3, 1 + 1c82: b867 st.w r3, (r14, 0x1c) + 1c84: 3200 movi r2, 0 + 1c86: 2a00 subi r2, 1 + 1c88: 649a cmpne r6, r2 + 1c8a: 0d58 bf 0x1f3a // 1f3a <__v2_printf+0x3fe> + 1c8c: 6d5b mov r5, r6 + 1c8e: 9867 ld.w r3, (r14, 0x1c) + 1c90: b860 st.w r3, (r14, 0x0) + 1c92: b8a1 st.w r5, (r14, 0x4) + 1c94: 3328 movi r3, 40 + 1c96: 1a12 addi r2, r14, 72 + 1c98: e000069d bsr 0x29d2 // 29d2 <__GI___dtostr> + 1c9c: 3100 movi r1, 0 + 1c9e: 2900 subi r1, 1 + 1ca0: 645a cmpne r6, r1 + 1ca2: b808 st.w r0, (r14, 0x20) + 1ca4: 0c1a bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1ca6: 312e movi r1, 46 + 1ca8: 980d ld.w r0, (r14, 0x34) + 1caa: e00008c9 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cae: 3840 cmpnei r0, 0 + 1cb0: 98c8 ld.w r6, (r14, 0x20) + 1cb2: 0d48 bf 0x1f42 // 1f42 <__v2_printf+0x406> + 1cb4: 3d40 cmpnei r5, 0 + 1cb6: 0805 bt 0x1cc0 // 1cc0 <__v2_printf+0x184> + 1cb8: 3101 movi r1, 1 + 1cba: 685c and r1, r7 + 1cbc: 3940 cmpnei r1, 0 + 1cbe: 0d40 bf 0x1f3e // 1f3e <__v2_printf+0x402> + 1cc0: 58c2 addi r6, r0, 1 + 1cc2: 2500 addi r5, 1 + 1cc4: 5d59 subu r2, r5, r6 + 1cc6: 6080 addu r2, r0 + 1cc8: 3a20 cmplti r2, 1 + 1cca: 0805 bt 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1ccc: 2600 addi r6, 1 + 1cce: 8660 ld.b r3, (r6, 0x0) + 1cd0: 3b40 cmpnei r3, 0 + 1cd2: 0bf9 bt 0x1cc4 // 1cc4 <__v2_printf+0x188> + 1cd4: 3500 movi r5, 0 + 1cd6: a6a0 st.b r5, (r6, 0x0) + 1cd8: 3067 movi r0, 103 + 1cda: 6412 cmpne r4, r0 + 1cdc: 0822 bt 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cde: 312e movi r1, 46 + 1ce0: 1812 addi r0, r14, 72 + 1ce2: e00008ad bsr 0x2e3c // 2e3c <__GI_strchr> + 1ce6: 3840 cmpnei r0, 0 + 1ce8: 6d03 mov r4, r0 + 1cea: 0c1b bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cec: 3165 movi r1, 101 + 1cee: e00008a7 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cf2: 6c43 mov r1, r0 + 1cf4: 84c0 ld.b r6, (r4, 0x0) + 1cf6: 3e40 cmpnei r6, 0 + 1cf8: 0930 bt 0x1f58 // 1f58 <__v2_printf+0x41c> + 1cfa: 3940 cmpnei r1, 0 + 1cfc: 0c02 bf 0x1d00 // 1d00 <__v2_printf+0x1c4> + 1cfe: 6d07 mov r4, r1 + 1d00: 3630 movi r6, 48 + 1d02: 5c63 subi r3, r4, 1 + 1d04: 8340 ld.b r2, (r3, 0x0) + 1d06: 658a cmpne r2, r6 + 1d08: 0d2a bf 0x1f5c // 1f5c <__v2_printf+0x420> + 1d0a: 352e movi r5, 46 + 1d0c: 654a cmpne r2, r5 + 1d0e: 0802 bt 0x1d12 // 1d12 <__v2_printf+0x1d6> + 1d10: 6d0f mov r4, r3 + 1d12: 3000 movi r0, 0 + 1d14: 3940 cmpnei r1, 0 + 1d16: a400 st.b r0, (r4, 0x0) + 1d18: 0c04 bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1d1a: 6c13 mov r0, r4 + 1d1c: e0000838 bsr 0x2d8c // 2d8c <__strcpy_fast> + 1d20: 1912 addi r1, r14, 72 + 1d22: 81c0 ld.b r6, (r1, 0x0) + 1d24: 332d movi r3, 45 + 1d26: 64da cmpne r6, r3 + 1d28: 0c02 bf 0x1d2c // 1d2c <__v2_printf+0x1f0> + 1d2a: 05ef br 0x2108 // 2108 <__v2_printf+0x5cc> + 1d2c: 3437 movi r4, 55 + 1d2e: 1801 addi r0, r14, 4 + 1d30: 352d movi r5, 45 + 1d32: 6100 addu r4, r0 + 1d34: a4a0 st.b r5, (r4, 0x0) + 1d36: 1912 addi r1, r14, 72 + 1d38: 5982 addi r4, r1, 1 + 1d3a: 05ec br 0x2112 // 2112 <__v2_printf+0x5d6> + 1d3c: 3369 movi r3, 105 + 1d3e: 64d2 cmpne r4, r3 + 1d40: 0cc6 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1d42: 326c movi r2, 108 + 1d44: 6492 cmpne r4, r2 + 1d46: 0b46 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d48: 9866 ld.w r3, (r14, 0x18) + 1d4a: 8340 ld.b r2, (r3, 0x0) + 1d4c: 650a cmpne r2, r4 + 1d4e: 08ac bt 0x1ea6 // 1ea6 <__v2_printf+0x36a> + 1d50: 9886 ld.w r4, (r14, 0x18) + 1d52: 2400 addi r4, 1 + 1d54: b886 st.w r4, (r14, 0x18) + 1d56: 3fa5 bseti r7, 5 + 1d58: 074e br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1d5a: 3371 movi r3, 113 + 1d5c: 64d2 cmpne r4, r3 + 1d5e: 0ffc bf 0x1d56 // 1d56 <__v2_printf+0x21a> + 1d60: 650d cmplt r3, r4 + 1d62: 081a bt 0x1d96 // 1d96 <__v2_printf+0x25a> + 1d64: 306f movi r0, 111 + 1d66: 6412 cmpne r4, r0 + 1d68: 0cfc bf 0x1f60 // 1f60 <__v2_printf+0x424> + 1d6a: 3170 movi r1, 112 + 1d6c: 6452 cmpne r4, r1 + 1d6e: 0b32 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d70: 5d4e addi r2, r5, 4 + 1d72: 3400 movi r4, 0 + 1d74: 95a0 ld.w r5, (r5, 0x0) + 1d76: b845 st.w r2, (r14, 0x14) + 1d78: 1901 addi r1, r14, 4 + 1d7a: 3239 movi r2, 57 + 1d7c: b8a3 st.w r5, (r14, 0xc) + 1d7e: b884 st.w r4, (r14, 0x10) + 1d80: 3330 movi r3, 48 + 1d82: 180f addi r0, r14, 60 + 1d84: 3578 movi r5, 120 + 1d86: 6084 addu r2, r1 + 1d88: 0195 lrw r4, 0x6078 // 20b0 <__v2_printf+0x574> + 1d8a: 3fa1 bseti r7, 1 + 1d8c: a060 st.b r3, (r0, 0x0) + 1d8e: a2a0 st.b r5, (r2, 0x0) + 1d90: b88a st.w r4, (r14, 0x28) + 1d92: 3402 movi r4, 2 + 1d94: 04f1 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1d96: 3275 movi r2, 117 + 1d98: 6492 cmpne r4, r2 + 1d9a: 0d28 bf 0x1fea // 1fea <__v2_printf+0x4ae> + 1d9c: 3378 movi r3, 120 + 1d9e: 64d2 cmpne r4, r3 + 1da0: 0d44 bf 0x2028 // 2028 <__v2_printf+0x4ec> + 1da2: 3173 movi r1, 115 + 1da4: 6452 cmpne r4, r1 + 1da6: 0b16 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1da8: 3200 movi r2, 0 + 1daa: 3037 movi r0, 55 + 1dac: 1901 addi r1, r14, 4 + 1dae: 2a00 subi r2, 1 + 1db0: 5d6e addi r3, r5, 4 + 1db2: 9580 ld.w r4, (r5, 0x0) + 1db4: 6004 addu r0, r1 + 1db6: 3500 movi r5, 0 + 1db8: 649a cmpne r6, r2 + 1dba: b865 st.w r3, (r14, 0x14) + 1dbc: a0a0 st.b r5, (r0, 0x0) + 1dbe: 090b bt 0x1fd4 // 1fd4 <__v2_printf+0x498> + 1dc0: 6cd3 mov r3, r4 + 1dc2: 83c0 ld.b r6, (r3, 0x0) + 1dc4: 3e40 cmpnei r6, 0 + 1dc6: 0910 bt 0x1fe6 // 1fe6 <__v2_printf+0x4aa> + 1dc8: 5bd1 subu r6, r3, r4 + 1dca: 047f br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1dcc: 3840 cmpnei r0, 0 + 1dce: 0c05 bf 0x1dd8 // 1dd8 <__v2_printf+0x29c> + 1dd0: 3037 movi r0, 55 + 1dd2: 1b01 addi r3, r14, 4 + 1dd4: 600c addu r0, r3 + 1dd6: a020 st.b r1, (r0, 0x0) + 1dd8: 0228 lrw r1, 0x6067 // 20b4 <__v2_printf+0x578> + 1dda: 3020 movi r0, 32 + 1ddc: 681c and r0, r7 + 1dde: 3840 cmpnei r0, 0 + 1de0: b82a st.w r1, (r14, 0x28) + 1de2: 0d2b bf 0x2038 // 2038 <__v2_printf+0x4fc> + 1de4: 5d5e addi r2, r5, 8 + 1de6: b845 st.w r2, (r14, 0x14) + 1de8: 9520 ld.w r1, (r5, 0x0) + 1dea: 9541 ld.w r2, (r5, 0x4) + 1dec: b823 st.w r1, (r14, 0xc) + 1dee: b844 st.w r2, (r14, 0x10) + 1df0: 3001 movi r0, 1 + 1df2: 681c and r0, r7 + 1df4: 3840 cmpnei r0, 0 + 1df6: 0fce bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1df8: 98a3 ld.w r5, (r14, 0xc) + 1dfa: 9864 ld.w r3, (r14, 0x10) + 1dfc: 6d4c or r5, r3 + 1dfe: 3d40 cmpnei r5, 0 + 1e00: 0fc9 bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1e02: 3039 movi r0, 57 + 1e04: 1d01 addi r5, r14, 4 + 1e06: 3130 movi r1, 48 + 1e08: 1a0f addi r2, r14, 60 + 1e0a: 6014 addu r0, r5 + 1e0c: a220 st.b r1, (r2, 0x0) + 1e0e: a080 st.b r4, (r0, 0x0) + 1e10: 3fa1 bseti r7, 1 + 1e12: 07c0 br 0x1d92 // 1d92 <__v2_printf+0x256> + 1e14: 3940 cmpnei r1, 0 + 1e16: 0aef bt 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e18: 3001 movi r0, 1 + 1e1a: 3120 movi r1, 32 + 1e1c: 06ec br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e1e: 3fa0 bseti r7, 0 + 1e20: 06ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e22: 9580 ld.w r4, (r5, 0x0) + 1e24: 3cdf btsti r4, 31 + 1e26: 5d6e addi r3, r5, 4 + 1e28: b887 st.w r4, (r14, 0x1c) + 1e2a: 0ee7 bf 0x1bf8 // 1bf8 <__v2_printf+0xbc> + 1e2c: 9847 ld.w r2, (r14, 0x1c) + 1e2e: 3500 movi r5, 0 + 1e30: 614a subu r5, r2 + 1e32: b8a7 st.w r5, (r14, 0x1c) + 1e34: 6d4f mov r5, r3 + 1e36: 06e9 br 0x1c08 // 1c08 <__v2_printf+0xcc> + 1e38: 98c6 ld.w r6, (r14, 0x18) + 1e3a: 8680 ld.b r4, (r6, 0x0) + 1e3c: 322a movi r2, 42 + 1e3e: 9866 ld.w r3, (r14, 0x18) + 1e40: 6492 cmpne r4, r2 + 1e42: 2300 addi r3, 1 + 1e44: 0c0b bf 0x1e5a // 1e5a <__v2_printf+0x31e> + 1e46: b865 st.w r3, (r14, 0x14) + 1e48: 3600 movi r6, 0 + 1e4a: 3300 movi r3, 0 + 1e4c: 2b2f subi r3, 48 + 1e4e: 60d0 addu r3, r4 + 1e50: 3b09 cmphsi r3, 10 + 1e52: 9845 ld.w r2, (r14, 0x14) + 1e54: 0c0c bf 0x1e6c // 1e6c <__v2_printf+0x330> + 1e56: b846 st.w r2, (r14, 0x18) + 1e58: 06a8 br 0x1ba8 // 1ba8 <__v2_printf+0x6c> + 1e5a: 95c0 ld.w r6, (r5, 0x0) + 1e5c: 3edf btsti r6, 31 + 1e5e: 5d8e addi r4, r5, 4 + 1e60: 0c03 bf 0x1e66 // 1e66 <__v2_printf+0x32a> + 1e62: 3600 movi r6, 0 + 1e64: 2e00 subi r6, 1 + 1e66: 6d53 mov r5, r4 + 1e68: b866 st.w r3, (r14, 0x18) + 1e6a: 06c5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e6c: 340a movi r4, 10 + 1e6e: 7d18 mult r4, r6 + 1e70: 9845 ld.w r2, (r14, 0x14) + 1e72: 6d8f mov r6, r3 + 1e74: 6190 addu r6, r4 + 1e76: 8280 ld.b r4, (r2, 0x0) + 1e78: 2200 addi r2, 1 + 1e7a: b845 st.w r2, (r14, 0x14) + 1e7c: 07e7 br 0x1e4a // 1e4a <__v2_printf+0x30e> + 1e7e: 3200 movi r2, 0 + 1e80: b847 st.w r2, (r14, 0x1c) + 1e82: 9867 ld.w r3, (r14, 0x1c) + 1e84: 320a movi r2, 10 + 1e86: 7cc8 mult r3, r2 + 1e88: 2c2f subi r4, 48 + 1e8a: 610c addu r4, r3 + 1e8c: b887 st.w r4, (r14, 0x1c) + 1e8e: 3300 movi r3, 0 + 1e90: 9886 ld.w r4, (r14, 0x18) + 1e92: 5c42 addi r2, r4, 1 + 1e94: 2b2f subi r3, 48 + 1e96: 8480 ld.b r4, (r4, 0x0) + 1e98: 60d0 addu r3, r4 + 1e9a: 3b09 cmphsi r3, 10 + 1e9c: b846 st.w r2, (r14, 0x18) + 1e9e: 0ff2 bf 0x1e82 // 1e82 <__v2_printf+0x346> + 1ea0: 07db br 0x1e56 // 1e56 <__v2_printf+0x31a> + 1ea2: 3fa6 bseti r7, 6 + 1ea4: 06a8 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1ea6: 3fa4 bseti r7, 4 + 1ea8: 06a6 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1eaa: 3840 cmpnei r0, 0 + 1eac: 0c05 bf 0x1eb6 // 1eb6 <__v2_printf+0x37a> + 1eae: 3637 movi r6, 55 + 1eb0: 1b01 addi r3, r14, 4 + 1eb2: 618c addu r6, r3 + 1eb4: a620 st.b r1, (r6, 0x0) + 1eb6: 033e lrw r1, 0x20000750 // 20b8 <__v2_printf+0x57c> + 1eb8: 9100 ld.w r0, (r1, 0x0) + 1eba: e00007cb bsr 0x2e50 // 2e50 <__GI_strerror> + 1ebe: 6d03 mov r4, r0 + 1ec0: e000073c bsr 0x2d38 // 2d38 <__strlen_fast> + 1ec4: 6d83 mov r6, r0 + 1ec6: b8a5 st.w r5, (r14, 0x14) + 1ec8: 3500 movi r5, 0 + 1eca: 0554 br 0x2172 // 2172 <__v2_printf+0x636> + 1ecc: 3840 cmpnei r0, 0 + 1ece: 0c05 bf 0x1ed8 // 1ed8 <__v2_printf+0x39c> + 1ed0: 3037 movi r0, 55 + 1ed2: 1a01 addi r2, r14, 4 + 1ed4: 6008 addu r0, r2 + 1ed6: a020 st.b r1, (r0, 0x0) + 1ed8: 3420 movi r4, 32 + 1eda: 691c and r4, r7 + 1edc: 3c40 cmpnei r4, 0 + 1ede: 0c1a bf 0x1f12 // 1f12 <__v2_printf+0x3d6> + 1ee0: 5d7e addi r3, r5, 8 + 1ee2: 9520 ld.w r1, (r5, 0x0) + 1ee4: 9541 ld.w r2, (r5, 0x4) + 1ee6: b865 st.w r3, (r14, 0x14) + 1ee8: b823 st.w r1, (r14, 0xc) + 1eea: b844 st.w r2, (r14, 0x10) + 1eec: 9804 ld.w r0, (r14, 0x10) + 1eee: 38df btsti r0, 31 + 1ef0: 0c0f bf 0x1f0e // 1f0e <__v2_printf+0x3d2> + 1ef2: 9883 ld.w r4, (r14, 0xc) + 1ef4: 98a4 ld.w r5, (r14, 0x10) + 1ef6: 3200 movi r2, 0 + 1ef8: 3300 movi r3, 0 + 1efa: 6488 cmphs r2, r2 + 1efc: 6093 subc r2, r4 + 1efe: 60d7 subc r3, r5 + 1f00: b843 st.w r2, (r14, 0xc) + 1f02: b864 st.w r3, (r14, 0x10) + 1f04: 3237 movi r2, 55 + 1f06: 1b01 addi r3, r14, 4 + 1f08: 352d movi r5, 45 + 1f0a: 608c addu r2, r3 + 1f0c: a2a0 st.b r5, (r2, 0x0) + 1f0e: 3401 movi r4, 1 + 1f10: 0438 br 0x1f80 // 1f80 <__v2_printf+0x444> + 1f12: 3310 movi r3, 16 + 1f14: 68dc and r3, r7 + 1f16: 3b40 cmpnei r3, 0 + 1f18: 0c08 bf 0x1f28 // 1f28 <__v2_printf+0x3ec> + 1f1a: 5d4e addi r2, r5, 4 + 1f1c: b845 st.w r2, (r14, 0x14) + 1f1e: 95a0 ld.w r5, (r5, 0x0) + 1f20: 559f asri r4, r5, 31 + 1f22: b8a3 st.w r5, (r14, 0xc) + 1f24: b884 st.w r4, (r14, 0x10) + 1f26: 07e3 br 0x1eec // 1eec <__v2_printf+0x3b0> + 1f28: 3140 movi r1, 64 + 1f2a: 685c and r1, r7 + 1f2c: 5d0e addi r0, r5, 4 + 1f2e: 3940 cmpnei r1, 0 + 1f30: 95a0 ld.w r5, (r5, 0x0) + 1f32: b805 st.w r0, (r14, 0x14) + 1f34: 0ff6 bf 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f36: 7557 sexth r5, r5 + 1f38: 07f4 br 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f3a: 3506 movi r5, 6 + 1f3c: 06a9 br 0x1c8e // 1c8e <__v2_printf+0x152> + 1f3e: 6d83 mov r6, r0 + 1f40: 06ca br 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1f42: 3201 movi r2, 1 + 1f44: 689c and r2, r7 + 1f46: 3a40 cmpnei r2, 0 + 1f48: 0ec8 bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f4a: 1d12 addi r5, r14, 72 + 1f4c: 6158 addu r5, r6 + 1f4e: 332e movi r3, 46 + 1f50: 3000 movi r0, 0 + 1f52: a560 st.b r3, (r5, 0x0) + 1f54: a501 st.b r0, (r5, 0x1) + 1f56: 06c1 br 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f58: 2400 addi r4, 1 + 1f5a: 06cd br 0x1cf4 // 1cf4 <__v2_printf+0x1b8> + 1f5c: 6d0f mov r4, r3 + 1f5e: 06d2 br 0x1d02 // 1d02 <__v2_printf+0x1c6> + 1f60: 3320 movi r3, 32 + 1f62: 68dc and r3, r7 + 1f64: 3b40 cmpnei r3, 0 + 1f66: 0c24 bf 0x1fae // 1fae <__v2_printf+0x472> + 1f68: 5d7e addi r3, r5, 8 + 1f6a: 9500 ld.w r0, (r5, 0x0) + 1f6c: 9521 ld.w r1, (r5, 0x4) + 1f6e: b865 st.w r3, (r14, 0x14) + 1f70: b803 st.w r0, (r14, 0xc) + 1f72: b824 st.w r1, (r14, 0x10) + 1f74: 3400 movi r4, 0 + 1f76: 3537 movi r5, 55 + 1f78: 1801 addi r0, r14, 4 + 1f7a: 3200 movi r2, 0 + 1f7c: 6140 addu r5, r0 + 1f7e: a540 st.b r2, (r5, 0x0) + 1f80: 3100 movi r1, 0 + 1f82: 2900 subi r1, 1 + 1f84: 9803 ld.w r0, (r14, 0xc) + 1f86: 98a4 ld.w r5, (r14, 0x10) + 1f88: 645a cmpne r6, r1 + 1f8a: 6c14 or r0, r5 + 1f8c: 0cc8 bf 0x211c // 211c <__v2_printf+0x5e0> + 1f8e: 6c9f mov r2, r7 + 1f90: 3a87 bclri r2, 7 + 1f92: 3840 cmpnei r0, 0 + 1f94: b848 st.w r2, (r14, 0x20) + 1f96: 08c6 bt 0x2122 // 2122 <__v2_printf+0x5e6> + 1f98: 3e40 cmpnei r6, 0 + 1f9a: 0cac bf 0x20f2 // 20f2 <__v2_printf+0x5b6> + 1f9c: 3c41 cmpnei r4, 1 + 1f9e: 0c68 bf 0x206e // 206e <__v2_printf+0x532> + 1fa0: 3c42 cmpnei r4, 2 + 1fa2: 0c8d bf 0x20bc // 20bc <__v2_printf+0x580> + 1fa4: 3300 movi r3, 0 + 1fa6: 3400 movi r4, 0 + 1fa8: b863 st.w r3, (r14, 0xc) + 1faa: b884 st.w r4, (r14, 0x10) + 1fac: 04bf br 0x212a // 212a <__v2_printf+0x5ee> + 1fae: 3010 movi r0, 16 + 1fb0: 681c and r0, r7 + 1fb2: 3840 cmpnei r0, 0 + 1fb4: 0c05 bf 0x1fbe // 1fbe <__v2_printf+0x482> + 1fb6: 5d8e addi r4, r5, 4 + 1fb8: b885 st.w r4, (r14, 0x14) + 1fba: 95a0 ld.w r5, (r5, 0x0) + 1fbc: 0408 br 0x1fcc // 1fcc <__v2_printf+0x490> + 1fbe: 3240 movi r2, 64 + 1fc0: 689c and r2, r7 + 1fc2: 5d2e addi r1, r5, 4 + 1fc4: 3a40 cmpnei r2, 0 + 1fc6: b825 st.w r1, (r14, 0x14) + 1fc8: 0ff9 bf 0x1fba // 1fba <__v2_printf+0x47e> + 1fca: 8da0 ld.h r5, (r5, 0x0) + 1fcc: 3400 movi r4, 0 + 1fce: b8a3 st.w r5, (r14, 0xc) + 1fd0: b884 st.w r4, (r14, 0x10) + 1fd2: 07d2 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1fd4: 5cb8 addu r5, r4, r6 + 1fd6: 6cd3 mov r3, r4 + 1fd8: 654e cmpne r3, r5 + 1fda: 0f77 bf 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1fdc: 8300 ld.b r0, (r3, 0x0) + 1fde: 3840 cmpnei r0, 0 + 1fe0: 0ef4 bf 0x1dc8 // 1dc8 <__v2_printf+0x28c> + 1fe2: 2300 addi r3, 1 + 1fe4: 07fa br 0x1fd8 // 1fd8 <__v2_printf+0x49c> + 1fe6: 2300 addi r3, 1 + 1fe8: 06ed br 0x1dc2 // 1dc2 <__v2_printf+0x286> + 1fea: 3420 movi r4, 32 + 1fec: 691c and r4, r7 + 1fee: 3c40 cmpnei r4, 0 + 1ff0: 0c09 bf 0x2002 // 2002 <__v2_printf+0x4c6> + 1ff2: 5d7e addi r3, r5, 8 + 1ff4: 9520 ld.w r1, (r5, 0x0) + 1ff6: 9541 ld.w r2, (r5, 0x4) + 1ff8: b865 st.w r3, (r14, 0x14) + 1ffa: b823 st.w r1, (r14, 0xc) + 1ffc: b844 st.w r2, (r14, 0x10) + 1ffe: 3401 movi r4, 1 + 2000: 07bb br 0x1f76 // 1f76 <__v2_printf+0x43a> + 2002: 3310 movi r3, 16 + 2004: 68dc and r3, r7 + 2006: 3b40 cmpnei r3, 0 + 2008: 0c05 bf 0x2012 // 2012 <__v2_printf+0x4d6> + 200a: 5d0e addi r0, r5, 4 + 200c: b805 st.w r0, (r14, 0x14) + 200e: 95a0 ld.w r5, (r5, 0x0) + 2010: 0408 br 0x2020 // 2020 <__v2_printf+0x4e4> + 2012: 3140 movi r1, 64 + 2014: 685c and r1, r7 + 2016: 5d4e addi r2, r5, 4 + 2018: 3940 cmpnei r1, 0 + 201a: b845 st.w r2, (r14, 0x14) + 201c: 0ff9 bf 0x200e // 200e <__v2_printf+0x4d2> + 201e: 8da0 ld.h r5, (r5, 0x0) + 2020: 3400 movi r4, 0 + 2022: b8a3 st.w r5, (r14, 0xc) + 2024: b884 st.w r4, (r14, 0x10) + 2026: 07ec br 0x1ffe // 1ffe <__v2_printf+0x4c2> + 2028: 3840 cmpnei r0, 0 + 202a: 0c05 bf 0x2034 // 2034 <__v2_printf+0x4f8> + 202c: 3337 movi r3, 55 + 202e: 1a01 addi r2, r14, 4 + 2030: 60c8 addu r3, r2 + 2032: a320 st.b r1, (r3, 0x0) + 2034: 103f lrw r1, 0x6078 // 20b0 <__v2_printf+0x574> + 2036: 06d2 br 0x1dda // 1dda <__v2_printf+0x29e> + 2038: 3310 movi r3, 16 + 203a: 68dc and r3, r7 + 203c: 3b40 cmpnei r3, 0 + 203e: 0c05 bf 0x2048 // 2048 <__v2_printf+0x50c> + 2040: 5d0e addi r0, r5, 4 + 2042: b805 st.w r0, (r14, 0x14) + 2044: 95a0 ld.w r5, (r5, 0x0) + 2046: 0408 br 0x2056 // 2056 <__v2_printf+0x51a> + 2048: 3240 movi r2, 64 + 204a: 689c and r2, r7 + 204c: 5d2e addi r1, r5, 4 + 204e: 3a40 cmpnei r2, 0 + 2050: b825 st.w r1, (r14, 0x14) + 2052: 0ff9 bf 0x2044 // 2044 <__v2_printf+0x508> + 2054: 8da0 ld.h r5, (r5, 0x0) + 2056: 3300 movi r3, 0 + 2058: b8a3 st.w r5, (r14, 0xc) + 205a: b864 st.w r3, (r14, 0x10) + 205c: 06ca br 0x1df0 // 1df0 <__v2_printf+0x2b4> + 205e: 6cd3 mov r3, r4 + 2060: 0467 br 0x212e // 212e <__v2_printf+0x5f2> + 2062: 9884 ld.w r4, (r14, 0x10) + 2064: 3c40 cmpnei r4, 0 + 2066: 080b bt 0x207c // 207c <__v2_printf+0x540> + 2068: 9843 ld.w r2, (r14, 0xc) + 206a: 3a09 cmphsi r2, 10 + 206c: 0808 bt 0x207c // 207c <__v2_printf+0x540> + 206e: 9883 ld.w r4, (r14, 0xc) + 2070: 242f addi r4, 48 + 2072: 1f1a addi r7, r14, 104 + 2074: a787 st.b r4, (r7, 0x7) + 2076: 1c12 addi r4, r14, 72 + 2078: 2426 addi r4, 39 + 207a: 0478 br 0x216a // 216a <__v2_printf+0x62e> + 207c: 1c1c addi r4, r14, 112 + 207e: 3530 movi r5, 48 + 2080: 320a movi r2, 10 + 2082: 3300 movi r3, 0 + 2084: 9803 ld.w r0, (r14, 0xc) + 2086: 9824 ld.w r1, (r14, 0x10) + 2088: e00002c2 bsr 0x260c // 260c <__umoddi3> + 208c: 6014 addu r0, r5 + 208e: 2c00 subi r4, 1 + 2090: a400 st.b r0, (r4, 0x0) + 2092: 320a movi r2, 10 + 2094: 9803 ld.w r0, (r14, 0xc) + 2096: 9824 ld.w r1, (r14, 0x10) + 2098: 3300 movi r3, 0 + 209a: e00000e3 bsr 0x2260 // 2260 <__udivdi3> + 209e: b803 st.w r0, (r14, 0xc) + 20a0: b824 st.w r1, (r14, 0x10) + 20a2: 9823 ld.w r1, (r14, 0xc) + 20a4: 98e4 ld.w r7, (r14, 0x10) + 20a6: 6c5c or r1, r7 + 20a8: 3940 cmpnei r1, 0 + 20aa: 0beb bt 0x2080 // 2080 <__v2_printf+0x544> + 20ac: 045f br 0x216a // 216a <__v2_printf+0x62e> + 20ae: 0000 bkpt + 20b0: 00006078 .long 0x00006078 + 20b4: 00006067 .long 0x00006067 + 20b8: 20000750 .long 0x20000750 + 20bc: 3300 movi r3, 0 + 20be: 3400 movi r4, 0 + 20c0: b863 st.w r3, (r14, 0xc) + 20c2: b884 st.w r4, (r14, 0x10) + 20c4: 1c1c addi r4, r14, 112 + 20c6: 320f movi r2, 15 + 20c8: 9803 ld.w r0, (r14, 0xc) + 20ca: 982a ld.w r1, (r14, 0x28) + 20cc: 6808 and r0, r2 + 20ce: 6004 addu r0, r1 + 20d0: 80a0 ld.b r5, (r0, 0x0) + 20d2: 2c00 subi r4, 1 + 20d4: 98e4 ld.w r7, (r14, 0x10) + 20d6: a4a0 st.b r5, (r4, 0x0) + 20d8: 98a4 ld.w r5, (r14, 0x10) + 20da: 9863 ld.w r3, (r14, 0xc) + 20dc: 471c lsli r0, r7, 28 + 20de: 4de4 lsri r7, r5, 4 + 20e0: 4b24 lsri r1, r3, 4 + 20e2: b8e4 st.w r7, (r14, 0x10) + 20e4: 6c04 or r0, r1 + 20e6: 9864 ld.w r3, (r14, 0x10) + 20e8: b803 st.w r0, (r14, 0xc) + 20ea: 6c0c or r0, r3 + 20ec: 3840 cmpnei r0, 0 + 20ee: 0bed bt 0x20c8 // 20c8 <__v2_printf+0x58c> + 20f0: 043d br 0x216a // 216a <__v2_printf+0x62e> + 20f2: 3c40 cmpnei r4, 0 + 20f4: 0808 bt 0x2104 // 2104 <__v2_printf+0x5c8> + 20f6: 3301 movi r3, 1 + 20f8: 68dc and r3, r7 + 20fa: 3b40 cmpnei r3, 0 + 20fc: 0c04 bf 0x2104 // 2104 <__v2_printf+0x5c8> + 20fe: 1f1a addi r7, r14, 104 + 2100: 3430 movi r4, 48 + 2102: 07b9 br 0x2074 // 2074 <__v2_printf+0x538> + 2104: 1c1c addi r4, r14, 112 + 2106: 0432 br 0x216a // 216a <__v2_printf+0x62e> + 2108: 322b movi r2, 43 + 210a: 649a cmpne r6, r2 + 210c: 0802 bt 0x2110 // 2110 <__v2_printf+0x5d4> + 210e: 0614 br 0x1d36 // 1d36 <__v2_printf+0x1fa> + 2110: 1c12 addi r4, r14, 72 + 2112: 6c13 mov r0, r4 + 2114: e0000612 bsr 0x2d38 // 2d38 <__strlen_fast> + 2118: 6d83 mov r6, r0 + 211a: 06d7 br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 211c: 3840 cmpnei r0, 0 + 211e: b8e8 st.w r7, (r14, 0x20) + 2120: 0f3e bf 0x1f9c // 1f9c <__v2_printf+0x460> + 2122: 3c41 cmpnei r4, 1 + 2124: 0f9f bf 0x2062 // 2062 <__v2_printf+0x526> + 2126: 3c42 cmpnei r4, 2 + 2128: 0fce bf 0x20c4 // 20c4 <__v2_printf+0x588> + 212a: 1b1c addi r3, r14, 112 + 212c: 3707 movi r7, 7 + 212e: 9823 ld.w r1, (r14, 0xc) + 2130: 685c and r1, r7 + 2132: 212f addi r1, 48 + 2134: 9804 ld.w r0, (r14, 0x10) + 2136: 7484 zextb r2, r1 + 2138: 9823 ld.w r1, (r14, 0xc) + 213a: 40bd lsli r5, r0, 29 + 213c: 4903 lsri r0, r1, 3 + 213e: 9824 ld.w r1, (r14, 0x10) + 2140: 4923 lsri r1, r1, 3 + 2142: b824 st.w r1, (r14, 0x10) + 2144: 6d40 or r5, r0 + 2146: 9804 ld.w r0, (r14, 0x10) + 2148: b8a3 st.w r5, (r14, 0xc) + 214a: 6d40 or r5, r0 + 214c: 5b83 subi r4, r3, 1 + 214e: 3d40 cmpnei r5, 0 + 2150: a440 st.b r2, (r4, 0x0) + 2152: 0b86 bt 0x205e // 205e <__v2_printf+0x522> + 2154: 3701 movi r7, 1 + 2156: 9828 ld.w r1, (r14, 0x20) + 2158: 69c4 and r7, r1 + 215a: 3f40 cmpnei r7, 0 + 215c: 0c07 bf 0x216a // 216a <__v2_printf+0x62e> + 215e: 3530 movi r5, 48 + 2160: 654a cmpne r2, r5 + 2162: 0c04 bf 0x216a // 216a <__v2_printf+0x62e> + 2164: 5b87 subi r4, r3, 2 + 2166: 3330 movi r3, 48 + 2168: a460 st.b r3, (r4, 0x0) + 216a: 6d5b mov r5, r6 + 216c: 1e1c addi r6, r14, 112 + 216e: 6192 subu r6, r4 + 2170: 98e8 ld.w r7, (r14, 0x20) + 2172: 6595 cmplt r5, r6 + 2174: b8a8 st.w r5, (r14, 0x20) + 2176: 0c02 bf 0x217a // 217a <__v2_printf+0x63e> + 2178: b8c8 st.w r6, (r14, 0x20) + 217a: 3037 movi r0, 55 + 217c: 1b01 addi r3, r14, 4 + 217e: 600c addu r0, r3 + 2180: 8040 ld.b r2, (r0, 0x0) + 2182: 3a40 cmpnei r2, 0 + 2184: 0c04 bf 0x218c // 218c <__v2_printf+0x650> + 2186: 9828 ld.w r1, (r14, 0x20) + 2188: 2100 addi r1, 1 + 218a: b828 st.w r1, (r14, 0x20) + 218c: 3002 movi r0, 2 + 218e: 681c and r0, r7 + 2190: 3840 cmpnei r0, 0 + 2192: b80b st.w r0, (r14, 0x2c) + 2194: 0c04 bf 0x219c // 219c <__v2_printf+0x660> + 2196: 9868 ld.w r3, (r14, 0x20) + 2198: 2301 addi r3, 2 + 219a: b868 st.w r3, (r14, 0x20) + 219c: 3284 movi r2, 132 + 219e: 689c and r2, r7 + 21a0: 3a40 cmpnei r2, 0 + 21a2: b84c st.w r2, (r14, 0x30) + 21a4: 080b bt 0x21ba // 21ba <__v2_printf+0x67e> + 21a6: 3310 movi r3, 16 + 21a8: 1a0c addi r2, r14, 48 + 21aa: 9827 ld.w r1, (r14, 0x1c) + 21ac: 9808 ld.w r0, (r14, 0x20) + 21ae: 60c8 addu r3, r2 + 21b0: 5901 subu r0, r1, r0 + 21b2: 6f4f mov r13, r3 + 21b4: 1129 lrw r1, 0x5cdc // 2258 <__v2_printf+0x71c> + 21b6: e3fffca9 bsr 0x1b08 // 1b08 + 21ba: 3137 movi r1, 55 + 21bc: 1801 addi r0, r14, 4 + 21be: 6040 addu r1, r0 + 21c0: 8160 ld.b r3, (r1, 0x0) + 21c2: 3b40 cmpnei r3, 0 + 21c4: 0c0b bf 0x21da // 21da <__v2_printf+0x69e> + 21c6: 9830 ld.w r1, (r14, 0x40) + 21c8: 9101 ld.w r0, (r1, 0x4) + 21ca: b802 st.w r0, (r14, 0x8) + 21cc: 1b0c addi r3, r14, 48 + 21ce: 300b movi r0, 11 + 21d0: 9140 ld.w r2, (r1, 0x0) + 21d2: 600c addu r0, r3 + 21d4: 3101 movi r1, 1 + 21d6: 9862 ld.w r3, (r14, 0x8) + 21d8: 7bcd jsr r3 + 21da: 984b ld.w r2, (r14, 0x2c) + 21dc: 3a40 cmpnei r2, 0 + 21de: 0c07 bf 0x21ec // 21ec <__v2_printf+0x6b0> + 21e0: 9830 ld.w r1, (r14, 0x40) + 21e2: 9140 ld.w r2, (r1, 0x0) + 21e4: 9161 ld.w r3, (r1, 0x4) + 21e6: 180f addi r0, r14, 60 + 21e8: 3102 movi r1, 2 + 21ea: 7bcd jsr r3 + 21ec: 3080 movi r0, 128 + 21ee: 984c ld.w r2, (r14, 0x30) + 21f0: 640a cmpne r2, r0 + 21f2: 080b bt 0x2208 // 2208 <__v2_printf+0x6cc> + 21f4: 9827 ld.w r1, (r14, 0x1c) + 21f6: 9868 ld.w r3, (r14, 0x20) + 21f8: 590d subu r0, r1, r3 + 21fa: 1a0c addi r2, r14, 48 + 21fc: 3110 movi r1, 16 + 21fe: 6048 addu r1, r2 + 2200: 6f47 mov r13, r1 + 2202: 1037 lrw r1, 0x5cec // 225c <__v2_printf+0x720> + 2204: e3fffc82 bsr 0x1b08 // 1b08 + 2208: 5d19 subu r0, r5, r6 + 220a: 1b0c addi r3, r14, 48 + 220c: 3510 movi r5, 16 + 220e: 614c addu r5, r3 + 2210: 6f57 mov r13, r5 + 2212: 6d77 mov r5, r13 + 2214: 1032 lrw r1, 0x5cec // 225c <__v2_printf+0x720> + 2216: e3fffc79 bsr 0x1b08 // 1b08 + 221a: 9500 ld.w r0, (r5, 0x0) + 221c: 9040 ld.w r2, (r0, 0x0) + 221e: 9061 ld.w r3, (r0, 0x4) + 2220: 6c13 mov r0, r4 + 2222: 3404 movi r4, 4 + 2224: 6c5b mov r1, r6 + 2226: 691c and r4, r7 + 2228: 7bcd jsr r3 + 222a: 3c40 cmpnei r4, 0 + 222c: 0c08 bf 0x223c // 223c <__v2_printf+0x700> + 222e: 9828 ld.w r1, (r14, 0x20) + 2230: 98c7 ld.w r6, (r14, 0x1c) + 2232: 5e05 subu r0, r6, r1 + 2234: 6f57 mov r13, r5 + 2236: 1029 lrw r1, 0x5cdc // 2258 <__v2_printf+0x71c> + 2238: e3fffc68 bsr 0x1b08 // 1b08 + 223c: 98a7 ld.w r5, (r14, 0x1c) + 223e: 9848 ld.w r2, (r14, 0x20) + 2240: 6495 cmplt r5, r2 + 2242: 0c02 bf 0x2246 // 2246 <__v2_printf+0x70a> + 2244: 6d4b mov r5, r2 + 2246: 9809 ld.w r0, (r14, 0x24) + 2248: 6014 addu r0, r5 + 224a: b809 st.w r0, (r14, 0x24) + 224c: 98a5 ld.w r5, (r14, 0x14) + 224e: e800fc84 br 0x1b56 // 1b56 <__v2_printf+0x1a> + 2252: 9809 ld.w r0, (r14, 0x24) + 2254: 141c addi r14, r14, 112 + 2256: 1494 pop r4-r7, r15 + 2258: 00005cdc .long 0x00005cdc + 225c: 00005cec .long 0x00005cec + +00002260 <__udivdi3>: + 2260: 14d4 push r4-r7, r15 + 2262: 1426 subi r14, r14, 24 + 2264: 6dc7 mov r7, r1 + 2266: 3b40 cmpnei r3, 0 + 2268: 6d03 mov r4, r0 + 226a: 6c4f mov r1, r3 + 226c: 6d8b mov r6, r2 + 226e: b800 st.w r0, (r14, 0x0) + 2270: 6d5f mov r5, r7 + 2272: 085b bt 0x2328 // 2328 <__udivdi3+0xc8> + 2274: 649c cmphs r7, r2 + 2276: 0874 bt 0x235e // 235e <__udivdi3+0xfe> + 2278: 003d lrw r1, 0xffff // 2600 <__udivdi3+0x3a0> + 227a: 6484 cmphs r1, r2 + 227c: 0cdc bf 0x2434 // 2434 <__udivdi3+0x1d4> + 227e: 31ff movi r1, 255 + 2280: 6484 cmphs r1, r2 + 2282: 0802 bt 0x2286 // 2286 <__udivdi3+0x26> + 2284: 3308 movi r3, 8 + 2286: 6c4b mov r1, r2 + 2288: 704d lsr r1, r3 + 228a: 0100 lrw r0, 0x5bdc // 2604 <__udivdi3+0x3a4> + 228c: 6040 addu r1, r0 + 228e: 8120 ld.b r1, (r1, 0x0) + 2290: 60c4 addu r3, r1 + 2292: 3120 movi r1, 32 + 2294: 604e subu r1, r3 + 2296: 3940 cmpnei r1, 0 + 2298: 0c09 bf 0x22aa // 22aa <__udivdi3+0x4a> + 229a: 6d53 mov r5, r4 + 229c: 7084 lsl r2, r1 + 229e: 71c4 lsl r7, r1 + 22a0: 714d lsr r5, r3 + 22a2: 7104 lsl r4, r1 + 22a4: 6d8b mov r6, r2 + 22a6: 6d5c or r5, r7 + 22a8: b880 st.w r4, (r14, 0x0) + 22aa: 4e90 lsri r4, r6, 16 + 22ac: 6c53 mov r1, r4 + 22ae: 6c17 mov r0, r5 + 22b0: e00010d4 bsr 0x4458 // 4458 <__umodsi3> + 22b4: b801 st.w r0, (r14, 0x4) + 22b6: 6c53 mov r1, r4 + 22b8: 6c17 mov r0, r5 + 22ba: e00010ab bsr 0x4410 // 4410 <__udivsi3> + 22be: 75d9 zexth r7, r6 + 22c0: 9861 ld.w r3, (r14, 0x4) + 22c2: 9820 ld.w r1, (r14, 0x0) + 22c4: 6c9f mov r2, r7 + 22c6: 4370 lsli r3, r3, 16 + 22c8: 4930 lsri r1, r1, 16 + 22ca: 7c80 mult r2, r0 + 22cc: 6cc4 or r3, r1 + 22ce: 648c cmphs r3, r2 + 22d0: 6d43 mov r5, r0 + 22d2: 0808 bt 0x22e2 // 22e2 <__udivdi3+0x82> + 22d4: 60d8 addu r3, r6 + 22d6: 658c cmphs r3, r6 + 22d8: 5823 subi r1, r0, 1 + 22da: 0c03 bf 0x22e0 // 22e0 <__udivdi3+0x80> + 22dc: 648c cmphs r3, r2 + 22de: 0d8e bf 0x25fa // 25fa <__udivdi3+0x39a> + 22e0: 6d47 mov r5, r1 + 22e2: 60ca subu r3, r2 + 22e4: 6c53 mov r1, r4 + 22e6: 6c0f mov r0, r3 + 22e8: b862 st.w r3, (r14, 0x8) + 22ea: e00010b7 bsr 0x4458 // 4458 <__umodsi3> + 22ee: 9862 ld.w r3, (r14, 0x8) + 22f0: b801 st.w r0, (r14, 0x4) + 22f2: 6c53 mov r1, r4 + 22f4: 6c0f mov r0, r3 + 22f6: e000108d bsr 0x4410 // 4410 <__udivsi3> + 22fa: 9841 ld.w r2, (r14, 0x4) + 22fc: d86e1000 ld.h r3, (r14, 0x0) + 2300: 4250 lsli r2, r2, 16 + 2302: 74cd zexth r3, r3 + 2304: 7dc0 mult r7, r0 + 2306: 6c8c or r2, r3 + 2308: 65c8 cmphs r2, r7 + 230a: 6d03 mov r4, r0 + 230c: 0808 bt 0x231c // 231c <__udivdi3+0xbc> + 230e: 6098 addu r2, r6 + 2310: 6588 cmphs r2, r6 + 2312: 5863 subi r3, r0, 1 + 2314: 0d4d bf 0x25ae // 25ae <__udivdi3+0x34e> + 2316: 65c8 cmphs r2, r7 + 2318: 094b bt 0x25ae // 25ae <__udivdi3+0x34e> + 231a: 2c01 subi r4, 2 + 231c: 4510 lsli r0, r5, 16 + 231e: 3700 movi r7, 0 + 2320: 6c10 or r0, r4 + 2322: 6c5f mov r1, r7 + 2324: 1406 addi r14, r14, 24 + 2326: 1494 pop r4-r7, r15 + 2328: 64dc cmphs r7, r3 + 232a: 0c76 bf 0x2416 // 2416 <__udivdi3+0x1b6> + 232c: 026a lrw r3, 0xffff // 2600 <__udivdi3+0x3a0> + 232e: 644c cmphs r3, r1 + 2330: 0878 bt 0x2420 // 2420 <__udivdi3+0x1c0> + 2332: 0269 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2334: 644c cmphs r3, r1 + 2336: 0d48 bf 0x25c6 // 25c6 <__udivdi3+0x366> + 2338: 3610 movi r6, 16 + 233a: 6cc7 mov r3, r1 + 233c: 70d9 lsr r3, r6 + 233e: 020d lrw r0, 0x5bdc // 2604 <__udivdi3+0x3a4> + 2340: 60c0 addu r3, r0 + 2342: 8360 ld.b r3, (r3, 0x0) + 2344: 618c addu r6, r3 + 2346: 3020 movi r0, 32 + 2348: 5879 subu r3, r0, r6 + 234a: 3b40 cmpnei r3, 0 + 234c: b860 st.w r3, (r14, 0x0) + 234e: 0878 bt 0x243e // 243e <__udivdi3+0x1de> + 2350: 65c4 cmphs r1, r7 + 2352: 0d40 bf 0x25d2 // 25d2 <__udivdi3+0x372> + 2354: 6490 cmphs r4, r2 + 2356: 6c0f mov r0, r3 + 2358: 600d addc r0, r3 + 235a: 3700 movi r7, 0 + 235c: 045f br 0x241a // 241a <__udivdi3+0x1ba> + 235e: 3a40 cmpnei r2, 0 + 2360: 0808 bt 0x2370 // 2370 <__udivdi3+0x110> + 2362: 3100 movi r1, 0 + 2364: 3001 movi r0, 1 + 2366: b861 st.w r3, (r14, 0x4) + 2368: e0001054 bsr 0x4410 // 4410 <__udivsi3> + 236c: 6d83 mov r6, r0 + 236e: 9861 ld.w r3, (r14, 0x4) + 2370: 025b lrw r2, 0xffff // 2600 <__udivdi3+0x3a0> + 2372: 6588 cmphs r2, r6 + 2374: 085b bt 0x242a // 242a <__udivdi3+0x1ca> + 2376: 027a lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2378: 658c cmphs r3, r6 + 237a: 0d28 bf 0x25ca // 25ca <__udivdi3+0x36a> + 237c: 3310 movi r3, 16 + 237e: 6c9b mov r2, r6 + 2380: 023e lrw r1, 0x5bdc // 2604 <__udivdi3+0x3a4> + 2382: 708d lsr r2, r3 + 2384: 6084 addu r2, r1 + 2386: 8240 ld.b r2, (r2, 0x0) + 2388: 5a2c addu r1, r2, r3 + 238a: 3220 movi r2, 32 + 238c: 6086 subu r2, r1 + 238e: 3a40 cmpnei r2, 0 + 2390: 08c0 bt 0x2510 // 2510 <__udivdi3+0x2b0> + 2392: 74d9 zexth r3, r6 + 2394: 5f99 subu r4, r7, r6 + 2396: 4eb0 lsri r5, r6, 16 + 2398: b861 st.w r3, (r14, 0x4) + 239a: 3701 movi r7, 1 + 239c: 6c57 mov r1, r5 + 239e: 6c13 mov r0, r4 + 23a0: e000105c bsr 0x4458 // 4458 <__umodsi3> + 23a4: b802 st.w r0, (r14, 0x8) + 23a6: 6c57 mov r1, r5 + 23a8: 6c13 mov r0, r4 + 23aa: e0001033 bsr 0x4410 // 4410 <__udivsi3> + 23ae: 9862 ld.w r3, (r14, 0x8) + 23b0: 4330 lsli r1, r3, 16 + 23b2: 9860 ld.w r3, (r14, 0x0) + 23b4: 9841 ld.w r2, (r14, 0x4) + 23b6: 4b70 lsri r3, r3, 16 + 23b8: 7c80 mult r2, r0 + 23ba: 6cc4 or r3, r1 + 23bc: 648c cmphs r3, r2 + 23be: 6d03 mov r4, r0 + 23c0: 0808 bt 0x23d0 // 23d0 <__udivdi3+0x170> + 23c2: 60d8 addu r3, r6 + 23c4: 658c cmphs r3, r6 + 23c6: 5823 subi r1, r0, 1 + 23c8: 0c03 bf 0x23ce // 23ce <__udivdi3+0x16e> + 23ca: 648c cmphs r3, r2 + 23cc: 0d14 bf 0x25f4 // 25f4 <__udivdi3+0x394> + 23ce: 6d07 mov r4, r1 + 23d0: 60ca subu r3, r2 + 23d2: 6c57 mov r1, r5 + 23d4: 6c0f mov r0, r3 + 23d6: b863 st.w r3, (r14, 0xc) + 23d8: e0001040 bsr 0x4458 // 4458 <__umodsi3> + 23dc: 9863 ld.w r3, (r14, 0xc) + 23de: 6c57 mov r1, r5 + 23e0: b802 st.w r0, (r14, 0x8) + 23e2: 6c0f mov r0, r3 + 23e4: e0001016 bsr 0x4410 // 4410 <__udivsi3> + 23e8: 9842 ld.w r2, (r14, 0x8) + 23ea: d86e1000 ld.h r3, (r14, 0x0) + 23ee: 9821 ld.w r1, (r14, 0x4) + 23f0: 4250 lsli r2, r2, 16 + 23f2: 74cd zexth r3, r3 + 23f4: 7c40 mult r1, r0 + 23f6: 6cc8 or r3, r2 + 23f8: 644c cmphs r3, r1 + 23fa: 6d43 mov r5, r0 + 23fc: 0808 bt 0x240c // 240c <__udivdi3+0x1ac> + 23fe: 60d8 addu r3, r6 + 2400: 658c cmphs r3, r6 + 2402: 5843 subi r2, r0, 1 + 2404: 0cd3 bf 0x25aa // 25aa <__udivdi3+0x34a> + 2406: 644c cmphs r3, r1 + 2408: 08d1 bt 0x25aa // 25aa <__udivdi3+0x34a> + 240a: 2d01 subi r5, 2 + 240c: 4410 lsli r0, r4, 16 + 240e: 6c14 or r0, r5 + 2410: 6c5f mov r1, r7 + 2412: 1406 addi r14, r14, 24 + 2414: 1494 pop r4-r7, r15 + 2416: 3700 movi r7, 0 + 2418: 3000 movi r0, 0 + 241a: 6c5f mov r1, r7 + 241c: 1406 addi r14, r14, 24 + 241e: 1494 pop r4-r7, r15 + 2420: 33ff movi r3, 255 + 2422: 644c cmphs r3, r1 + 2424: 6583 mvcv r6 + 2426: 46c3 lsli r6, r6, 3 + 2428: 0789 br 0x233a // 233a <__udivdi3+0xda> + 242a: 32ff movi r2, 255 + 242c: 6588 cmphs r2, r6 + 242e: 0ba8 bt 0x237e // 237e <__udivdi3+0x11e> + 2430: 3308 movi r3, 8 + 2432: 07a6 br 0x237e // 237e <__udivdi3+0x11e> + 2434: 1375 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2436: 648c cmphs r3, r2 + 2438: 0ccb bf 0x25ce // 25ce <__udivdi3+0x36e> + 243a: 3310 movi r3, 16 + 243c: 0725 br 0x2286 // 2286 <__udivdi3+0x26> + 243e: 9800 ld.w r0, (r14, 0x0) + 2440: 6ccb mov r3, r2 + 2442: 6d4b mov r5, r2 + 2444: 7040 lsl r1, r0 + 2446: 7140 lsl r5, r0 + 2448: 70d9 lsr r3, r6 + 244a: 6cc4 or r3, r1 + 244c: b8a3 st.w r5, (r14, 0xc) + 244e: 6d53 mov r5, r4 + 2450: 6c4f mov r1, r3 + 2452: 7159 lsr r5, r6 + 2454: 6cdf mov r3, r7 + 2456: 71c0 lsl r7, r0 + 2458: 6d5c or r5, r7 + 245a: 70d9 lsr r3, r6 + 245c: b8a1 st.w r5, (r14, 0x4) + 245e: 49b0 lsri r5, r1, 16 + 2460: b822 st.w r1, (r14, 0x8) + 2462: 75c5 zexth r7, r1 + 2464: 6c0f mov r0, r3 + 2466: 6c57 mov r1, r5 + 2468: b864 st.w r3, (r14, 0x10) + 246a: e0000ff7 bsr 0x4458 // 4458 <__umodsi3> + 246e: 9864 ld.w r3, (r14, 0x10) + 2470: 6d83 mov r6, r0 + 2472: 6c57 mov r1, r5 + 2474: 6c0f mov r0, r3 + 2476: e0000fcd bsr 0x4410 // 4410 <__udivsi3> + 247a: 6c5f mov r1, r7 + 247c: 7c40 mult r1, r0 + 247e: 6c87 mov r2, r1 + 2480: 4630 lsli r1, r6, 16 + 2482: 98c1 ld.w r6, (r14, 0x4) + 2484: 4ed0 lsri r6, r6, 16 + 2486: 6d84 or r6, r1 + 2488: 6498 cmphs r6, r2 + 248a: 6cc3 mov r3, r0 + 248c: 0807 bt 0x249a // 249a <__udivdi3+0x23a> + 248e: 5823 subi r1, r0, 1 + 2490: 9802 ld.w r0, (r14, 0x8) + 2492: 6180 addu r6, r0 + 2494: 6418 cmphs r6, r0 + 2496: 08a6 bt 0x25e2 // 25e2 <__udivdi3+0x382> + 2498: 6cc7 mov r3, r1 + 249a: 618a subu r6, r2 + 249c: 6c57 mov r1, r5 + 249e: 6c1b mov r0, r6 + 24a0: b865 st.w r3, (r14, 0x14) + 24a2: e0000fdb bsr 0x4458 // 4458 <__umodsi3> + 24a6: b804 st.w r0, (r14, 0x10) + 24a8: 6c57 mov r1, r5 + 24aa: 6c1b mov r0, r6 + 24ac: e0000fb2 bsr 0x4410 // 4410 <__udivsi3> + 24b0: 9864 ld.w r3, (r14, 0x10) + 24b2: 6c9f mov r2, r7 + 24b4: 43f0 lsli r7, r3, 16 + 24b6: d86e1002 ld.h r3, (r14, 0x4) + 24ba: 744d zexth r1, r3 + 24bc: 7c80 mult r2, r0 + 24be: 6dc4 or r7, r1 + 24c0: 649c cmphs r7, r2 + 24c2: 9865 ld.w r3, (r14, 0x14) + 24c4: 0807 bt 0x24d2 // 24d2 <__udivdi3+0x272> + 24c6: 98a2 ld.w r5, (r14, 0x8) + 24c8: 61d4 addu r7, r5 + 24ca: 655c cmphs r7, r5 + 24cc: 5823 subi r1, r0, 1 + 24ce: 0885 bt 0x25d8 // 25d8 <__udivdi3+0x378> + 24d0: 6c07 mov r0, r1 + 24d2: 4370 lsli r3, r3, 16 + 24d4: 6c0c or r0, r3 + 24d6: 74c1 zexth r3, r0 + 24d8: 61ca subu r7, r2 + 24da: 9843 ld.w r2, (r14, 0xc) + 24dc: 7549 zexth r5, r2 + 24de: 4830 lsri r1, r0, 16 + 24e0: 4a50 lsri r2, r2, 16 + 24e2: 6d8f mov r6, r3 + 24e4: 7d94 mult r6, r5 + 24e6: 7cc8 mult r3, r2 + 24e8: 7d44 mult r5, r1 + 24ea: 60d4 addu r3, r5 + 24ec: 7c48 mult r1, r2 + 24ee: 4e50 lsri r2, r6, 16 + 24f0: 60c8 addu r3, r2 + 24f2: 654c cmphs r3, r5 + 24f4: 0804 bt 0x24fc // 24fc <__udivdi3+0x29c> + 24f6: 3280 movi r2, 128 + 24f8: 4249 lsli r2, r2, 9 + 24fa: 6048 addu r1, r2 + 24fc: 4b50 lsri r2, r3, 16 + 24fe: 6048 addu r1, r2 + 2500: 645c cmphs r7, r1 + 2502: 0c5f bf 0x25c0 // 25c0 <__udivdi3+0x360> + 2504: 645e cmpne r7, r1 + 2506: 0c56 bf 0x25b2 // 25b2 <__udivdi3+0x352> + 2508: 3700 movi r7, 0 + 250a: 6c5f mov r1, r7 + 250c: 1406 addi r14, r14, 24 + 250e: 1494 pop r4-r7, r15 + 2510: 6d53 mov r5, r4 + 2512: 6cdf mov r3, r7 + 2514: 7145 lsr r5, r1 + 2516: 71c8 lsl r7, r2 + 2518: 7188 lsl r6, r2 + 251a: 6d5c or r5, r7 + 251c: 70c5 lsr r3, r1 + 251e: 6dd7 mov r7, r5 + 2520: b8a3 st.w r5, (r14, 0xc) + 2522: 4eb0 lsri r5, r6, 16 + 2524: 7108 lsl r4, r2 + 2526: 6c57 mov r1, r5 + 2528: 7499 zexth r2, r6 + 252a: 6c0f mov r0, r3 + 252c: b841 st.w r2, (r14, 0x4) + 252e: b880 st.w r4, (r14, 0x0) + 2530: b862 st.w r3, (r14, 0x8) + 2532: e0000f93 bsr 0x4458 // 4458 <__umodsi3> + 2536: 9862 ld.w r3, (r14, 0x8) + 2538: 6d03 mov r4, r0 + 253a: 6c57 mov r1, r5 + 253c: 6c0f mov r0, r3 + 253e: e0000f69 bsr 0x4410 // 4410 <__udivsi3> + 2542: 6cc3 mov r3, r0 + 2544: 7499 zexth r2, r6 + 2546: 7cc8 mult r3, r2 + 2548: 4450 lsli r2, r4, 16 + 254a: 4f90 lsri r4, r7, 16 + 254c: 6d08 or r4, r2 + 254e: 64d0 cmphs r4, r3 + 2550: 6c43 mov r1, r0 + 2552: b802 st.w r0, (r14, 0x8) + 2554: 080b bt 0x256a // 256a <__udivdi3+0x30a> + 2556: 6118 addu r4, r6 + 2558: 6c87 mov r2, r1 + 255a: 6590 cmphs r4, r6 + 255c: 2a00 subi r2, 1 + 255e: 0c49 bf 0x25f0 // 25f0 <__udivdi3+0x390> + 2560: 64d0 cmphs r4, r3 + 2562: 0847 bt 0x25f0 // 25f0 <__udivdi3+0x390> + 2564: 2a00 subi r2, 1 + 2566: b842 st.w r2, (r14, 0x8) + 2568: 6118 addu r4, r6 + 256a: 610e subu r4, r3 + 256c: 6c57 mov r1, r5 + 256e: 6c13 mov r0, r4 + 2570: e0000f74 bsr 0x4458 // 4458 <__umodsi3> + 2574: 6dc3 mov r7, r0 + 2576: 6c57 mov r1, r5 + 2578: 6c13 mov r0, r4 + 257a: e0000f4b bsr 0x4410 // 4410 <__udivsi3> + 257e: d84e1006 ld.h r2, (r14, 0xc) + 2582: 74d9 zexth r3, r6 + 2584: 47f0 lsli r7, r7, 16 + 2586: 7509 zexth r4, r2 + 2588: 7cc0 mult r3, r0 + 258a: 6dd0 or r7, r4 + 258c: 64dc cmphs r7, r3 + 258e: 0809 bt 0x25a0 // 25a0 <__udivdi3+0x340> + 2590: 61d8 addu r7, r6 + 2592: 659c cmphs r7, r6 + 2594: 5843 subi r2, r0, 1 + 2596: 0c2b bf 0x25ec // 25ec <__udivdi3+0x38c> + 2598: 64dc cmphs r7, r3 + 259a: 0829 bt 0x25ec // 25ec <__udivdi3+0x38c> + 259c: 2801 subi r0, 2 + 259e: 61d8 addu r7, r6 + 25a0: 5f8d subu r4, r7, r3 + 25a2: 9862 ld.w r3, (r14, 0x8) + 25a4: 43f0 lsli r7, r3, 16 + 25a6: 6dc0 or r7, r0 + 25a8: 06fa br 0x239c // 239c <__udivdi3+0x13c> + 25aa: 6d4b mov r5, r2 + 25ac: 0730 br 0x240c // 240c <__udivdi3+0x1ac> + 25ae: 6d0f mov r4, r3 + 25b0: 06b6 br 0x231c // 231c <__udivdi3+0xbc> + 25b2: 9840 ld.w r2, (r14, 0x0) + 25b4: 4370 lsli r3, r3, 16 + 25b6: 7599 zexth r6, r6 + 25b8: 7108 lsl r4, r2 + 25ba: 60d8 addu r3, r6 + 25bc: 64d0 cmphs r4, r3 + 25be: 0ba5 bt 0x2508 // 2508 <__udivdi3+0x2a8> + 25c0: 2800 subi r0, 1 + 25c2: 3700 movi r7, 0 + 25c4: 07a3 br 0x250a // 250a <__udivdi3+0x2aa> + 25c6: 3618 movi r6, 24 + 25c8: 06b9 br 0x233a // 233a <__udivdi3+0xda> + 25ca: 3318 movi r3, 24 + 25cc: 06d9 br 0x237e // 237e <__udivdi3+0x11e> + 25ce: 3318 movi r3, 24 + 25d0: 065b br 0x2286 // 2286 <__udivdi3+0x26> + 25d2: 3700 movi r7, 0 + 25d4: 3001 movi r0, 1 + 25d6: 0722 br 0x241a // 241a <__udivdi3+0x1ba> + 25d8: 649c cmphs r7, r2 + 25da: 0b7b bt 0x24d0 // 24d0 <__udivdi3+0x270> + 25dc: 2801 subi r0, 2 + 25de: 61d4 addu r7, r5 + 25e0: 0779 br 0x24d2 // 24d2 <__udivdi3+0x272> + 25e2: 6498 cmphs r6, r2 + 25e4: 0b5a bt 0x2498 // 2498 <__udivdi3+0x238> + 25e6: 2b01 subi r3, 2 + 25e8: 6180 addu r6, r0 + 25ea: 0758 br 0x249a // 249a <__udivdi3+0x23a> + 25ec: 6c0b mov r0, r2 + 25ee: 07d9 br 0x25a0 // 25a0 <__udivdi3+0x340> + 25f0: b842 st.w r2, (r14, 0x8) + 25f2: 07bc br 0x256a // 256a <__udivdi3+0x30a> + 25f4: 2c01 subi r4, 2 + 25f6: 60d8 addu r3, r6 + 25f8: 06ec br 0x23d0 // 23d0 <__udivdi3+0x170> + 25fa: 2d01 subi r5, 2 + 25fc: 60d8 addu r3, r6 + 25fe: 0672 br 0x22e2 // 22e2 <__udivdi3+0x82> + 2600: 0000ffff .long 0x0000ffff + 2604: 00005bdc .long 0x00005bdc + 2608: 00ffffff .long 0x00ffffff + +0000260c <__umoddi3>: + 260c: 14d4 push r4-r7, r15 + 260e: 1427 subi r14, r14, 28 + 2610: 6d07 mov r4, r1 + 2612: 6c4f mov r1, r3 + 2614: 6d43 mov r5, r0 + 2616: 3940 cmpnei r1, 0 + 2618: 6dcf mov r7, r3 + 261a: 6c0b mov r0, r2 + 261c: b8a0 st.w r5, (r14, 0x0) + 261e: 6cd3 mov r3, r4 + 2620: 085a bt 0x26d4 // 26d4 <__umoddi3+0xc8> + 2622: 6490 cmphs r4, r2 + 2624: 0877 bt 0x2712 // 2712 <__umoddi3+0x106> + 2626: 0120 lrw r1, 0xffff // 29a0 <__umoddi3+0x394> + 2628: 6484 cmphs r1, r2 + 262a: 0cd2 bf 0x27ce // 27ce <__umoddi3+0x1c2> + 262c: 31ff movi r1, 255 + 262e: 6484 cmphs r1, r2 + 2630: 0802 bt 0x2634 // 2634 <__umoddi3+0x28> + 2632: 3708 movi r7, 8 + 2634: 6c43 mov r1, r0 + 2636: 705d lsr r1, r7 + 2638: 01c4 lrw r6, 0x5bdc // 29a4 <__umoddi3+0x398> + 263a: 6058 addu r1, r6 + 263c: 8120 ld.b r1, (r1, 0x0) + 263e: 61c4 addu r7, r1 + 2640: 3120 movi r1, 32 + 2642: 605e subu r1, r7 + 2644: 3940 cmpnei r1, 0 + 2646: b821 st.w r1, (r14, 0x4) + 2648: 0c09 bf 0x265a // 265a <__umoddi3+0x4e> + 264a: 6cd7 mov r3, r5 + 264c: 6c83 mov r2, r0 + 264e: 7104 lsl r4, r1 + 2650: 70dd lsr r3, r7 + 2652: 7144 lsl r5, r1 + 2654: 7084 lsl r2, r1 + 2656: 6cd0 or r3, r4 + 2658: b8a0 st.w r5, (r14, 0x0) + 265a: 4a90 lsri r4, r2, 16 + 265c: 6c53 mov r1, r4 + 265e: 6c0f mov r0, r3 + 2660: 75c9 zexth r7, r2 + 2662: b843 st.w r2, (r14, 0xc) + 2664: b862 st.w r3, (r14, 0x8) + 2666: e0000ef9 bsr 0x4458 // 4458 <__umodsi3> + 266a: 9862 ld.w r3, (r14, 0x8) + 266c: 6d43 mov r5, r0 + 266e: 6c53 mov r1, r4 + 2670: 6c0f mov r0, r3 + 2672: e0000ecf bsr 0x4410 // 4410 <__udivsi3> + 2676: 9840 ld.w r2, (r14, 0x0) + 2678: 4570 lsli r3, r5, 16 + 267a: 4ab0 lsri r5, r2, 16 + 267c: 7c1c mult r0, r7 + 267e: 6cd4 or r3, r5 + 2680: 640c cmphs r3, r0 + 2682: 9843 ld.w r2, (r14, 0xc) + 2684: 0806 bt 0x2690 // 2690 <__umoddi3+0x84> + 2686: 60c8 addu r3, r2 + 2688: 648c cmphs r3, r2 + 268a: 0c03 bf 0x2690 // 2690 <__umoddi3+0x84> + 268c: 640c cmphs r3, r0 + 268e: 0d7d bf 0x2988 // 2988 <__umoddi3+0x37c> + 2690: 60c2 subu r3, r0 + 2692: 6c53 mov r1, r4 + 2694: 6c0f mov r0, r3 + 2696: b843 st.w r2, (r14, 0xc) + 2698: b862 st.w r3, (r14, 0x8) + 269a: e0000edf bsr 0x4458 // 4458 <__umodsi3> + 269e: 9862 ld.w r3, (r14, 0x8) + 26a0: 6d43 mov r5, r0 + 26a2: 6c53 mov r1, r4 + 26a4: 6c0f mov r0, r3 + 26a6: e0000eb5 bsr 0x4410 // 4410 <__udivsi3> + 26aa: d86e1000 ld.h r3, (r14, 0x0) + 26ae: 7dc0 mult r7, r0 + 26b0: 45b0 lsli r5, r5, 16 + 26b2: 740d zexth r0, r3 + 26b4: 6d40 or r5, r0 + 26b6: 65d4 cmphs r5, r7 + 26b8: 0807 bt 0x26c6 // 26c6 <__umoddi3+0xba> + 26ba: 9843 ld.w r2, (r14, 0xc) + 26bc: 6148 addu r5, r2 + 26be: 6494 cmphs r5, r2 + 26c0: 0c03 bf 0x26c6 // 26c6 <__umoddi3+0xba> + 26c2: 65d4 cmphs r5, r7 + 26c4: 0d5e bf 0x2980 // 2980 <__umoddi3+0x374> + 26c6: 615e subu r5, r7 + 26c8: 6c17 mov r0, r5 + 26ca: 9861 ld.w r3, (r14, 0x4) + 26cc: 700d lsr r0, r3 + 26ce: 3100 movi r1, 0 + 26d0: 1407 addi r14, r14, 28 + 26d2: 1494 pop r4-r7, r15 + 26d4: 6450 cmphs r4, r1 + 26d6: 0c6e bf 0x27b2 // 27b2 <__umoddi3+0x1a6> + 26d8: 024d lrw r2, 0xffff // 29a0 <__umoddi3+0x394> + 26da: 6448 cmphs r2, r1 + 26dc: 086f bt 0x27ba // 27ba <__umoddi3+0x1ae> + 26de: 024c lrw r2, 0xffffff // 29a8 <__umoddi3+0x39c> + 26e0: 6448 cmphs r2, r1 + 26e2: 0d3f bf 0x2960 // 2960 <__umoddi3+0x354> + 26e4: 3610 movi r6, 16 + 26e6: 6c87 mov r2, r1 + 26e8: 7099 lsr r2, r6 + 26ea: 02f0 lrw r7, 0x5bdc // 29a4 <__umoddi3+0x398> + 26ec: 609c addu r2, r7 + 26ee: 8240 ld.b r2, (r2, 0x0) + 26f0: 6188 addu r6, r2 + 26f2: 3720 movi r7, 32 + 26f4: 61da subu r7, r6 + 26f6: 3f40 cmpnei r7, 0 + 26f8: 0870 bt 0x27d8 // 27d8 <__umoddi3+0x1cc> + 26fa: 6504 cmphs r1, r4 + 26fc: 0c03 bf 0x2702 // 2702 <__umoddi3+0xf6> + 26fe: 6414 cmphs r5, r0 + 2700: 0d46 bf 0x298c // 298c <__umoddi3+0x380> + 2702: 5d01 subu r0, r5, r0 + 2704: 6414 cmphs r5, r0 + 2706: 6106 subu r4, r1 + 2708: 6483 mvcv r2 + 270a: 5c69 subu r3, r4, r2 + 270c: 6c4f mov r1, r3 + 270e: 1407 addi r14, r14, 28 + 2710: 1494 pop r4-r7, r15 + 2712: 3a40 cmpnei r2, 0 + 2714: 0806 bt 0x2720 // 2720 <__umoddi3+0x114> + 2716: 3100 movi r1, 0 + 2718: 3001 movi r0, 1 + 271a: e0000e7b bsr 0x4410 // 4410 <__udivsi3> + 271e: 6c83 mov r2, r0 + 2720: 027f lrw r3, 0xffff // 29a0 <__umoddi3+0x394> + 2722: 648c cmphs r3, r2 + 2724: 0850 bt 0x27c4 // 27c4 <__umoddi3+0x1b8> + 2726: 027e lrw r3, 0xffffff // 29a8 <__umoddi3+0x39c> + 2728: 648c cmphs r3, r2 + 272a: 0d1d bf 0x2964 // 2964 <__umoddi3+0x358> + 272c: 3710 movi r7, 16 + 272e: 6ccb mov r3, r2 + 2730: 70dd lsr r3, r7 + 2732: 0322 lrw r1, 0x5bdc // 29a4 <__umoddi3+0x398> + 2734: 60c4 addu r3, r1 + 2736: 8360 ld.b r3, (r3, 0x0) + 2738: 61cc addu r7, r3 + 273a: 3320 movi r3, 32 + 273c: 60de subu r3, r7 + 273e: 3b40 cmpnei r3, 0 + 2740: b861 st.w r3, (r14, 0x4) + 2742: 08c2 bt 0x28c6 // 28c6 <__umoddi3+0x2ba> + 2744: 74c9 zexth r3, r2 + 2746: 610a subu r4, r2 + 2748: 4af0 lsri r7, r2, 16 + 274a: 6d8f mov r6, r3 + 274c: 6c5f mov r1, r7 + 274e: 6c13 mov r0, r4 + 2750: b842 st.w r2, (r14, 0x8) + 2752: e0000e83 bsr 0x4458 // 4458 <__umodsi3> + 2756: 6d43 mov r5, r0 + 2758: 6c5f mov r1, r7 + 275a: 6c13 mov r0, r4 + 275c: e0000e5a bsr 0x4410 // 4410 <__udivsi3> + 2760: 9860 ld.w r3, (r14, 0x0) + 2762: 4590 lsli r4, r5, 16 + 2764: 4bb0 lsri r5, r3, 16 + 2766: 7c18 mult r0, r6 + 2768: 6d14 or r4, r5 + 276a: 6410 cmphs r4, r0 + 276c: 9842 ld.w r2, (r14, 0x8) + 276e: 0806 bt 0x277a // 277a <__umoddi3+0x16e> + 2770: 6108 addu r4, r2 + 2772: 6490 cmphs r4, r2 + 2774: 0c03 bf 0x277a // 277a <__umoddi3+0x16e> + 2776: 6410 cmphs r4, r0 + 2778: 0d06 bf 0x2984 // 2984 <__umoddi3+0x378> + 277a: 6102 subu r4, r0 + 277c: 6c5f mov r1, r7 + 277e: 6c13 mov r0, r4 + 2780: b842 st.w r2, (r14, 0x8) + 2782: e0000e6b bsr 0x4458 // 4458 <__umodsi3> + 2786: 6d43 mov r5, r0 + 2788: 6c5f mov r1, r7 + 278a: 6c13 mov r0, r4 + 278c: e0000e42 bsr 0x4410 // 4410 <__udivsi3> + 2790: d86e1000 ld.h r3, (r14, 0x0) + 2794: 7c18 mult r0, r6 + 2796: 45b0 lsli r5, r5, 16 + 2798: 758d zexth r6, r3 + 279a: 6d58 or r5, r6 + 279c: 6414 cmphs r5, r0 + 279e: 0808 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27a0: 9842 ld.w r2, (r14, 0x8) + 27a2: 6148 addu r5, r2 + 27a4: 6494 cmphs r5, r2 + 27a6: 0c04 bf 0x27ae // 27ae <__umoddi3+0x1a2> + 27a8: 6414 cmphs r5, r0 + 27aa: 0802 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27ac: 6148 addu r5, r2 + 27ae: 6142 subu r5, r0 + 27b0: 078c br 0x26c8 // 26c8 <__umoddi3+0xbc> + 27b2: 6c17 mov r0, r5 + 27b4: 6c53 mov r1, r4 + 27b6: 1407 addi r14, r14, 28 + 27b8: 1494 pop r4-r7, r15 + 27ba: 32ff movi r2, 255 + 27bc: 6448 cmphs r2, r1 + 27be: 6583 mvcv r6 + 27c0: 46c3 lsli r6, r6, 3 + 27c2: 0792 br 0x26e6 // 26e6 <__umoddi3+0xda> + 27c4: 33ff movi r3, 255 + 27c6: 648c cmphs r3, r2 + 27c8: 0bb3 bt 0x272e // 272e <__umoddi3+0x122> + 27ca: 3708 movi r7, 8 + 27cc: 07b1 br 0x272e // 272e <__umoddi3+0x122> + 27ce: 1337 lrw r1, 0xffffff // 29a8 <__umoddi3+0x39c> + 27d0: 6484 cmphs r1, r2 + 27d2: 0ccb bf 0x2968 // 2968 <__umoddi3+0x35c> + 27d4: 3710 movi r7, 16 + 27d6: 072f br 0x2634 // 2634 <__umoddi3+0x28> + 27d8: 6cc3 mov r3, r0 + 27da: 705c lsl r1, r7 + 27dc: 70d9 lsr r3, r6 + 27de: 6cc4 or r3, r1 + 27e0: 6c57 mov r1, r5 + 27e2: 6c93 mov r2, r4 + 27e4: 7059 lsr r1, r6 + 27e6: 711c lsl r4, r7 + 27e8: 7099 lsr r2, r6 + 27ea: 6c50 or r1, r4 + 27ec: 701c lsl r0, r7 + 27ee: 4b90 lsri r4, r3, 16 + 27f0: 715c lsl r5, r7 + 27f2: b803 st.w r0, (r14, 0xc) + 27f4: b820 st.w r1, (r14, 0x0) + 27f6: b8a4 st.w r5, (r14, 0x10) + 27f8: 6c53 mov r1, r4 + 27fa: 754d zexth r5, r3 + 27fc: 6c0b mov r0, r2 + 27fe: b862 st.w r3, (r14, 0x8) + 2800: b8a1 st.w r5, (r14, 0x4) + 2802: b846 st.w r2, (r14, 0x18) + 2804: e0000e2a bsr 0x4458 // 4458 <__umodsi3> + 2808: 9846 ld.w r2, (r14, 0x18) + 280a: b805 st.w r0, (r14, 0x14) + 280c: 6c53 mov r1, r4 + 280e: 6c0b mov r0, r2 + 2810: e0000e00 bsr 0x4410 // 4410 <__udivsi3> + 2814: 9841 ld.w r2, (r14, 0x4) + 2816: 7c80 mult r2, r0 + 2818: 9865 ld.w r3, (r14, 0x14) + 281a: 6d43 mov r5, r0 + 281c: 9800 ld.w r0, (r14, 0x0) + 281e: 4330 lsli r1, r3, 16 + 2820: 4870 lsri r3, r0, 16 + 2822: 6cc4 or r3, r1 + 2824: 648c cmphs r3, r2 + 2826: 0807 bt 0x2834 // 2834 <__umoddi3+0x228> + 2828: 9802 ld.w r0, (r14, 0x8) + 282a: 60c0 addu r3, r0 + 282c: 640c cmphs r3, r0 + 282e: 5d23 subi r1, r5, 1 + 2830: 08a3 bt 0x2976 // 2976 <__umoddi3+0x36a> + 2832: 6d47 mov r5, r1 + 2834: 60ca subu r3, r2 + 2836: 6c53 mov r1, r4 + 2838: 6c0f mov r0, r3 + 283a: b866 st.w r3, (r14, 0x18) + 283c: e0000e0e bsr 0x4458 // 4458 <__umodsi3> + 2840: 9866 ld.w r3, (r14, 0x18) + 2842: 6c53 mov r1, r4 + 2844: b805 st.w r0, (r14, 0x14) + 2846: 6c0f mov r0, r3 + 2848: e0000de4 bsr 0x4410 // 4410 <__udivsi3> + 284c: 9845 ld.w r2, (r14, 0x14) + 284e: d86e1000 ld.h r3, (r14, 0x0) + 2852: 9821 ld.w r1, (r14, 0x4) + 2854: 4250 lsli r2, r2, 16 + 2856: 750d zexth r4, r3 + 2858: 7c40 mult r1, r0 + 285a: 6c90 or r2, r4 + 285c: 6448 cmphs r2, r1 + 285e: 0807 bt 0x286c // 286c <__umoddi3+0x260> + 2860: 9882 ld.w r4, (r14, 0x8) + 2862: 6090 addu r2, r4 + 2864: 6508 cmphs r2, r4 + 2866: 5863 subi r3, r0, 1 + 2868: 0882 bt 0x296c // 296c <__umoddi3+0x360> + 286a: 6c0f mov r0, r3 + 286c: 45b0 lsli r5, r5, 16 + 286e: 6d40 or r5, r0 + 2870: 74d5 zexth r3, r5 + 2872: 9803 ld.w r0, (r14, 0xc) + 2874: 4db0 lsri r5, r5, 16 + 2876: 6d0f mov r4, r3 + 2878: 6086 subu r2, r1 + 287a: 7441 zexth r1, r0 + 287c: 4810 lsri r0, r0, 16 + 287e: 7d04 mult r4, r1 + 2880: 7cc0 mult r3, r0 + 2882: 7c54 mult r1, r5 + 2884: 60c4 addu r3, r1 + 2886: 7d40 mult r5, r0 + 2888: 4c10 lsri r0, r4, 16 + 288a: 60c0 addu r3, r0 + 288c: 644c cmphs r3, r1 + 288e: 0804 bt 0x2896 // 2896 <__umoddi3+0x28a> + 2890: 3180 movi r1, 128 + 2892: 4129 lsli r1, r1, 9 + 2894: 6144 addu r5, r1 + 2896: 4b30 lsri r1, r3, 16 + 2898: 6144 addu r5, r1 + 289a: 4370 lsli r3, r3, 16 + 289c: 7511 zexth r4, r4 + 289e: 6548 cmphs r2, r5 + 28a0: 60d0 addu r3, r4 + 28a2: 0c56 bf 0x294e // 294e <__umoddi3+0x342> + 28a4: 654a cmpne r2, r5 + 28a6: 0c76 bf 0x2992 // 2992 <__umoddi3+0x386> + 28a8: 5a35 subu r1, r2, r5 + 28aa: 6c0f mov r0, r3 + 28ac: 9864 ld.w r3, (r14, 0x10) + 28ae: 5b01 subu r0, r3, r0 + 28b0: 640c cmphs r3, r0 + 28b2: 64c3 mvcv r3 + 28b4: 598d subu r4, r1, r3 + 28b6: 6d53 mov r5, r4 + 28b8: 7158 lsl r5, r6 + 28ba: 701d lsr r0, r7 + 28bc: 6c53 mov r1, r4 + 28be: 6c14 or r0, r5 + 28c0: 705d lsr r1, r7 + 28c2: 1407 addi r14, r14, 28 + 28c4: 1494 pop r4-r7, r15 + 28c6: 9801 ld.w r0, (r14, 0x4) + 28c8: 6c57 mov r1, r5 + 28ca: 6cd3 mov r3, r4 + 28cc: 705d lsr r1, r7 + 28ce: 7100 lsl r4, r0 + 28d0: 7080 lsl r2, r0 + 28d2: 6c50 or r1, r4 + 28d4: 70dd lsr r3, r7 + 28d6: 6d07 mov r4, r1 + 28d8: 4af0 lsri r7, r2, 16 + 28da: b822 st.w r1, (r14, 0x8) + 28dc: 7449 zexth r1, r2 + 28de: 7140 lsl r5, r0 + 28e0: 6d87 mov r6, r1 + 28e2: 6c0f mov r0, r3 + 28e4: 6c5f mov r1, r7 + 28e6: b844 st.w r2, (r14, 0x10) + 28e8: b8a0 st.w r5, (r14, 0x0) + 28ea: b863 st.w r3, (r14, 0xc) + 28ec: e0000db6 bsr 0x4458 // 4458 <__umodsi3> + 28f0: 9863 ld.w r3, (r14, 0xc) + 28f2: 6d43 mov r5, r0 + 28f4: 6c5f mov r1, r7 + 28f6: 6c0f mov r0, r3 + 28f8: e0000d8c bsr 0x4410 // 4410 <__udivsi3> + 28fc: 45b0 lsli r5, r5, 16 + 28fe: 4c70 lsri r3, r4, 16 + 2900: 7c18 mult r0, r6 + 2902: 6d4c or r5, r3 + 2904: 6414 cmphs r5, r0 + 2906: 9844 ld.w r2, (r14, 0x10) + 2908: 0807 bt 0x2916 // 2916 <__umoddi3+0x30a> + 290a: 6148 addu r5, r2 + 290c: 6494 cmphs r5, r2 + 290e: 0c04 bf 0x2916 // 2916 <__umoddi3+0x30a> + 2910: 6414 cmphs r5, r0 + 2912: 0802 bt 0x2916 // 2916 <__umoddi3+0x30a> + 2914: 6148 addu r5, r2 + 2916: 6142 subu r5, r0 + 2918: 6c5f mov r1, r7 + 291a: 6c17 mov r0, r5 + 291c: b843 st.w r2, (r14, 0xc) + 291e: e0000d9d bsr 0x4458 // 4458 <__umodsi3> + 2922: 6d03 mov r4, r0 + 2924: 6c5f mov r1, r7 + 2926: 6c17 mov r0, r5 + 2928: e0000d74 bsr 0x4410 // 4410 <__udivsi3> + 292c: d86e1004 ld.h r3, (r14, 0x8) + 2930: 4490 lsli r4, r4, 16 + 2932: 744d zexth r1, r3 + 2934: 7c18 mult r0, r6 + 2936: 6d04 or r4, r1 + 2938: 6410 cmphs r4, r0 + 293a: 9843 ld.w r2, (r14, 0xc) + 293c: 0807 bt 0x294a // 294a <__umoddi3+0x33e> + 293e: 6108 addu r4, r2 + 2940: 6490 cmphs r4, r2 + 2942: 0c04 bf 0x294a // 294a <__umoddi3+0x33e> + 2944: 6410 cmphs r4, r0 + 2946: 0802 bt 0x294a // 294a <__umoddi3+0x33e> + 2948: 6108 addu r4, r2 + 294a: 6102 subu r4, r0 + 294c: 0700 br 0x274c // 274c <__umoddi3+0x140> + 294e: 9823 ld.w r1, (r14, 0xc) + 2950: 5b05 subu r0, r3, r1 + 2952: 640c cmphs r3, r0 + 2954: 9822 ld.w r1, (r14, 0x8) + 2956: 6146 subu r5, r1 + 2958: 64c3 mvcv r3 + 295a: 614e subu r5, r3 + 295c: 5a35 subu r1, r2, r5 + 295e: 07a7 br 0x28ac // 28ac <__umoddi3+0x2a0> + 2960: 3618 movi r6, 24 + 2962: 06c2 br 0x26e6 // 26e6 <__umoddi3+0xda> + 2964: 3718 movi r7, 24 + 2966: 06e4 br 0x272e // 272e <__umoddi3+0x122> + 2968: 3718 movi r7, 24 + 296a: 0665 br 0x2634 // 2634 <__umoddi3+0x28> + 296c: 6448 cmphs r2, r1 + 296e: 0b7e bt 0x286a // 286a <__umoddi3+0x25e> + 2970: 2801 subi r0, 2 + 2972: 6090 addu r2, r4 + 2974: 077c br 0x286c // 286c <__umoddi3+0x260> + 2976: 648c cmphs r3, r2 + 2978: 0b5d bt 0x2832 // 2832 <__umoddi3+0x226> + 297a: 2d01 subi r5, 2 + 297c: 60c0 addu r3, r0 + 297e: 075b br 0x2834 // 2834 <__umoddi3+0x228> + 2980: 6148 addu r5, r2 + 2982: 06a2 br 0x26c6 // 26c6 <__umoddi3+0xba> + 2984: 6108 addu r4, r2 + 2986: 06fa br 0x277a // 277a <__umoddi3+0x16e> + 2988: 60c8 addu r3, r2 + 298a: 0683 br 0x2690 // 2690 <__umoddi3+0x84> + 298c: 6c17 mov r0, r5 + 298e: 6c4f mov r1, r3 + 2990: 06bf br 0x270e // 270e <__umoddi3+0x102> + 2992: 9824 ld.w r1, (r14, 0x10) + 2994: 64c4 cmphs r1, r3 + 2996: 0fdc bf 0x294e // 294e <__umoddi3+0x342> + 2998: 6c0f mov r0, r3 + 299a: 3100 movi r1, 0 + 299c: 0788 br 0x28ac // 28ac <__umoddi3+0x2a0> + 299e: 0000 bkpt + 29a0: 0000ffff .long 0x0000ffff + 29a4: 00005bdc .long 0x00005bdc + 29a8: 00ffffff .long 0x00ffffff + +000029ac : + 29ac: 14c2 push r4-r5 + 29ae: 3300 movi r3, 0 + 29b0: 644d cmplt r3, r1 + 29b2: 0803 bt 0x29b8 // 29b8 + 29b4: 6c0f mov r0, r3 + 29b6: 1482 pop r4-r5 + 29b8: 5aac addu r5, r2, r3 + 29ba: 588c addu r4, r0, r3 + 29bc: 2300 addi r3, 1 + 29be: 85a0 ld.b r5, (r5, 0x0) + 29c0: 3b43 cmpnei r3, 3 + 29c2: a4a0 st.b r5, (r4, 0x0) + 29c4: 0bf6 bt 0x29b0 // 29b0 + 29c6: 3923 cmplti r1, 4 + 29c8: 0bf6 bt 0x29b4 // 29b4 + 29ca: 3300 movi r3, 0 + 29cc: a063 st.b r3, (r0, 0x3) + 29ce: 3304 movi r3, 4 + 29d0: 07f2 br 0x29b4 // 29b4 + +000029d2 <__GI___dtostr>: + 29d2: 14d4 push r4-r7, r15 + 29d4: 142c subi r14, r14, 48 + 29d6: 6d8f mov r6, r3 + 29d8: 9871 ld.w r3, (r14, 0x44) + 29da: b80a st.w r0, (r14, 0x28) + 29dc: b824 st.w r1, (r14, 0x10) + 29de: b842 st.w r2, (r14, 0x8) + 29e0: b86b st.w r3, (r14, 0x2c) + 29e2: 98f2 ld.w r7, (r14, 0x48) + 29e4: e0000244 bsr 0x2e6c // 2e6c <__isinf> + 29e8: 3840 cmpnei r0, 0 + 29ea: 0c0a bf 0x29fe // 29fe <__GI___dtostr+0x2c> + 29ec: 0244 lrw r2, 0x6089 // 2cd8 <__GI___dtostr+0x306> + 29ee: 6c5b mov r1, r6 + 29f0: 9802 ld.w r0, (r14, 0x8) + 29f2: e3ffffdd bsr 0x29ac // 29ac + 29f6: b809 st.w r0, (r14, 0x24) + 29f8: 9809 ld.w r0, (r14, 0x24) + 29fa: 140c addi r14, r14, 48 + 29fc: 1494 pop r4-r7, r15 + 29fe: 980a ld.w r0, (r14, 0x28) + 2a00: 9824 ld.w r1, (r14, 0x10) + 2a02: e0000185 bsr 0x2d0c // 2d0c <__isnan> + 2a06: 3840 cmpnei r0, 0 + 2a08: b809 st.w r0, (r14, 0x24) + 2a0a: 0c03 bf 0x2a10 // 2a10 <__GI___dtostr+0x3e> + 2a0c: 024b lrw r2, 0x608d // 2cdc <__GI___dtostr+0x30a> + 2a0e: 07f0 br 0x29ee // 29ee <__GI___dtostr+0x1c> + 2a10: 3200 movi r2, 0 + 2a12: 3300 movi r3, 0 + 2a14: 980a ld.w r0, (r14, 0x28) + 2a16: 9824 ld.w r1, (r14, 0x10) + 2a18: e0000242 bsr 0x2e9c // 2e9c <__eqdf2> + 2a1c: 3840 cmpnei r0, 0 + 2a1e: 082d bt 0x2a78 // 2a78 <__GI___dtostr+0xa6> + 2a20: 3f40 cmpnei r7, 0 + 2a22: 0d57 bf 0x2cd0 // 2cd0 <__GI___dtostr+0x2fe> + 2a24: 5fa6 addi r5, r7, 2 + 2a26: 6558 cmphs r6, r5 + 2a28: 0d56 bf 0x2cd4 // 2cd4 <__GI___dtostr+0x302> + 2a2a: 3d40 cmpnei r5, 0 + 2a2c: 0c0b bf 0x2a42 // 2a42 <__GI___dtostr+0x70> + 2a2e: 9824 ld.w r1, (r14, 0x10) + 2a30: 39df btsti r1, 31 + 2a32: 0c1a bf 0x2a66 // 2a66 <__GI___dtostr+0x94> + 2a34: 9802 ld.w r0, (r14, 0x8) + 2a36: 322d movi r2, 45 + 2a38: a040 st.b r2, (r0, 0x0) + 2a3a: 5d02 addi r0, r5, 1 + 2a3c: 3501 movi r5, 1 + 2a3e: 6414 cmphs r5, r0 + 2a40: 0c16 bf 0x2a6c // 2a6c <__GI___dtostr+0x9a> + 2a42: 9882 ld.w r4, (r14, 0x8) + 2a44: 8420 ld.b r1, (r4, 0x0) + 2a46: 3330 movi r3, 48 + 2a48: 64c6 cmpne r1, r3 + 2a4a: 3000 movi r0, 0 + 2a4c: 6001 addc r0, r0 + 2a4e: 9842 ld.w r2, (r14, 0x8) + 2a50: 9822 ld.w r1, (r14, 0x8) + 2a52: 6008 addu r0, r2 + 2a54: 342e movi r4, 46 + 2a56: 6054 addu r1, r5 + 2a58: 3300 movi r3, 0 + 2a5a: a081 st.b r4, (r0, 0x1) + 2a5c: b8a9 st.w r5, (r14, 0x24) + 2a5e: a160 st.b r3, (r1, 0x0) + 2a60: 07cc br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2a62: 3501 movi r5, 1 + 2a64: 07e5 br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2a66: 6c17 mov r0, r5 + 2a68: 3500 movi r5, 0 + 2a6a: 07ea br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a6c: 9842 ld.w r2, (r14, 0x8) + 2a6e: 6094 addu r2, r5 + 2a70: 3430 movi r4, 48 + 2a72: a280 st.b r4, (r2, 0x0) + 2a74: 2500 addi r5, 1 + 2a76: 07e4 br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a78: 3200 movi r2, 0 + 2a7a: 3300 movi r3, 0 + 2a7c: 980a ld.w r0, (r14, 0x28) + 2a7e: 9824 ld.w r1, (r14, 0x10) + 2a80: e000022c bsr 0x2ed8 // 2ed8 <__ltdf2> + 2a84: 38df btsti r0, 31 + 2a86: 0c8e bf 0x2ba2 // 2ba2 <__GI___dtostr+0x1d0> + 2a88: 3180 movi r1, 128 + 2a8a: 98a2 ld.w r5, (r14, 0x8) + 2a8c: 9884 ld.w r4, (r14, 0x10) + 2a8e: 4158 lsli r2, r1, 24 + 2a90: 332d movi r3, 45 + 2a92: a560 st.b r3, (r5, 0x0) + 2a94: 6108 addu r4, r2 + 2a96: 2e00 subi r6, 1 + 2a98: 2500 addi r5, 1 + 2a9a: 3000 movi r0, 0 + 2a9c: 032e lrw r1, 0x3fe00000 // 2ce0 <__GI___dtostr+0x30e> + 2a9e: 3300 movi r3, 0 + 2aa0: b865 st.w r3, (r14, 0x14) + 2aa2: 9845 ld.w r2, (r14, 0x14) + 2aa4: 65ca cmpne r2, r7 + 2aa6: 0881 bt 0x2ba8 // 2ba8 <__GI___dtostr+0x1d6> + 2aa8: 6c83 mov r2, r0 + 2aaa: 6cc7 mov r3, r1 + 2aac: 980a ld.w r0, (r14, 0x28) + 2aae: 6c53 mov r1, r4 + 2ab0: e3fff2b6 bsr 0x101c // 101c <__adddf3> + 2ab4: 3200 movi r2, 0 + 2ab6: 0373 lrw r3, 0x3ff00000 // 2ce4 <__GI___dtostr+0x312> + 2ab8: b806 st.w r0, (r14, 0x18) + 2aba: b827 st.w r1, (r14, 0x1c) + 2abc: e000020e bsr 0x2ed8 // 2ed8 <__ltdf2> + 2ac0: 38df btsti r0, 31 + 2ac2: 0c05 bf 0x2acc // 2acc <__GI___dtostr+0xfa> + 2ac4: 3430 movi r4, 48 + 2ac6: a580 st.b r4, (r5, 0x0) + 2ac8: 2e00 subi r6, 1 + 2aca: 2500 addi r5, 1 + 2acc: 9804 ld.w r0, (r14, 0x10) + 2ace: 4021 lsli r1, r0, 1 + 2ad0: 0379 lrw r3, 0xfffffc01 // 2ce8 <__GI___dtostr+0x316> + 2ad2: 4915 lsri r0, r1, 21 + 2ad4: 600c addu r0, r3 + 2ad6: e3fff4f5 bsr 0x14c0 // 14c0 <__floatsidf> + 2ada: 035a lrw r2, 0x509f79ff // 2cec <__GI___dtostr+0x31a> + 2adc: 037a lrw r3, 0x3fd34413 // 2cf0 <__GI___dtostr+0x31e> + 2ade: e3fff2d3 bsr 0x1084 // 1084 <__muldf3> + 2ae2: e3fff527 bsr 0x1530 // 1530 <__fixdfsi> + 2ae6: 5842 addi r2, r0, 1 + 2ae8: 3a20 cmplti r2, 1 + 2aea: b848 st.w r2, (r14, 0x20) + 2aec: 08e7 bt 0x2cba // 2cba <__GI___dtostr+0x2e8> + 2aee: 033d lrw r1, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2af0: 6dcb mov r7, r2 + 2af2: 3400 movi r4, 0 + 2af4: b823 st.w r1, (r14, 0xc) + 2af6: 3f0a cmphsi r7, 11 + 2af8: 085f bt 0x2bb6 // 2bb6 <__GI___dtostr+0x1e4> + 2afa: 3f41 cmpnei r7, 1 + 2afc: 0868 bt 0x2bcc // 2bcc <__GI___dtostr+0x1fa> + 2afe: 135f lrw r2, 0xcccccccd // 2cf8 <__GI___dtostr+0x326> + 2b00: 137f lrw r3, 0x3feccccc // 2cfc <__GI___dtostr+0x32a> + 2b02: 6c13 mov r0, r4 + 2b04: 9823 ld.w r1, (r14, 0xc) + 2b06: e3fff483 bsr 0x140c // 140c <__gtdf2> + 2b0a: 3820 cmplti r0, 1 + 2b0c: 0c6a bf 0x2be0 // 2be0 <__GI___dtostr+0x20e> + 2b0e: 9862 ld.w r3, (r14, 0x8) + 2b10: 64d6 cmpne r5, r3 + 2b12: 0807 bt 0x2b20 // 2b20 <__GI___dtostr+0x14e> + 2b14: 3e40 cmpnei r6, 0 + 2b16: 0f71 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b18: 3230 movi r2, 48 + 2b1a: a540 st.b r2, (r5, 0x0) + 2b1c: 2e00 subi r6, 1 + 2b1e: 2500 addi r5, 1 + 2b20: 9805 ld.w r0, (r14, 0x14) + 2b22: 3840 cmpnei r0, 0 + 2b24: 08cf bt 0x2cc2 // 2cc2 <__GI___dtostr+0x2f0> + 2b26: 9822 ld.w r1, (r14, 0x8) + 2b28: 5d65 subu r3, r5, r1 + 2b2a: 2300 addi r3, 1 + 2b2c: 984b ld.w r2, (r14, 0x2c) + 2b2e: 648c cmphs r3, r2 + 2b30: 08a5 bt 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b32: 3e40 cmpnei r6, 0 + 2b34: 0f62 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b36: 372e movi r7, 46 + 2b38: a5e0 st.b r7, (r5, 0x0) + 2b3a: 980b ld.w r0, (r14, 0x2c) + 2b3c: 5de2 addi r7, r5, 1 + 2b3e: 9822 ld.w r1, (r14, 0x8) + 2b40: 2000 addi r0, 1 + 2b42: 5f65 subu r3, r7, r1 + 2b44: 584d subu r2, r0, r3 + 2b46: 2e00 subi r6, 1 + 2b48: b845 st.w r2, (r14, 0x14) + 2b4a: 9805 ld.w r0, (r14, 0x14) + 2b4c: 6418 cmphs r6, r0 + 2b4e: 0f55 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b50: 6d43 mov r5, r0 + 2b52: 615c addu r5, r7 + 2b54: 36ff movi r6, 255 + 2b56: 655e cmpne r7, r5 + 2b58: 0c91 bf 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b5a: 6c93 mov r2, r4 + 2b5c: 9863 ld.w r3, (r14, 0xc) + 2b5e: 9806 ld.w r0, (r14, 0x18) + 2b60: 9827 ld.w r1, (r14, 0x1c) + 2b62: e3fff3ab bsr 0x12b8 // 12b8 <__divdf3> + 2b66: e3fff4e5 bsr 0x1530 // 1530 <__fixdfsi> + 2b6a: 3130 movi r1, 48 + 2b6c: 6040 addu r1, r0 + 2b6e: a720 st.b r1, (r7, 0x0) + 2b70: 6818 and r0, r6 + 2b72: e3fff4a7 bsr 0x14c0 // 14c0 <__floatsidf> + 2b76: 6c93 mov r2, r4 + 2b78: 9863 ld.w r3, (r14, 0xc) + 2b7a: e3fff285 bsr 0x1084 // 1084 <__muldf3> + 2b7e: 6c83 mov r2, r0 + 2b80: 6cc7 mov r3, r1 + 2b82: 9806 ld.w r0, (r14, 0x18) + 2b84: 9827 ld.w r1, (r14, 0x1c) + 2b86: e3fff263 bsr 0x104c // 104c <__subdf3> + 2b8a: b806 st.w r0, (r14, 0x18) + 2b8c: b827 st.w r1, (r14, 0x1c) + 2b8e: 6c13 mov r0, r4 + 2b90: 9823 ld.w r1, (r14, 0xc) + 2b92: 3200 movi r2, 0 + 2b94: 1278 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2b96: e3fff391 bsr 0x12b8 // 12b8 <__divdf3> + 2b9a: 2700 addi r7, 1 + 2b9c: 6d03 mov r4, r0 + 2b9e: b823 st.w r1, (r14, 0xc) + 2ba0: 07db br 0x2b56 // 2b56 <__GI___dtostr+0x184> + 2ba2: 98a2 ld.w r5, (r14, 0x8) + 2ba4: 9884 ld.w r4, (r14, 0x10) + 2ba6: 077a br 0x2a9a // 2a9a <__GI___dtostr+0xc8> + 2ba8: 1276 lrw r3, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2baa: 1257 lrw r2, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2bac: e3fff26c bsr 0x1084 // 1084 <__muldf3> + 2bb0: 9865 ld.w r3, (r14, 0x14) + 2bb2: 2300 addi r3, 1 + 2bb4: 0776 br 0x2aa0 // 2aa0 <__GI___dtostr+0xce> + 2bb6: 3080 movi r0, 128 + 2bb8: 4056 lsli r2, r0, 22 + 2bba: 9823 ld.w r1, (r14, 0xc) + 2bbc: 6c13 mov r0, r4 + 2bbe: 1273 lrw r3, 0x4202a05f // 2d08 <__GI___dtostr+0x336> + 2bc0: e3fff262 bsr 0x1084 // 1084 <__muldf3> + 2bc4: 6d03 mov r4, r0 + 2bc6: b823 st.w r1, (r14, 0xc) + 2bc8: 2f09 subi r7, 10 + 2bca: 0796 br 0x2af6 // 2af6 <__GI___dtostr+0x124> + 2bcc: 6c13 mov r0, r4 + 2bce: 9823 ld.w r1, (r14, 0xc) + 2bd0: 3200 movi r2, 0 + 2bd2: 1269 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2bd4: e3fff258 bsr 0x1084 // 1084 <__muldf3> + 2bd8: 6d03 mov r4, r0 + 2bda: b823 st.w r1, (r14, 0xc) + 2bdc: 2f00 subi r7, 1 + 2bde: 078e br 0x2afa // 2afa <__GI___dtostr+0x128> + 2be0: 9863 ld.w r3, (r14, 0xc) + 2be2: 6c93 mov r2, r4 + 2be4: 9806 ld.w r0, (r14, 0x18) + 2be6: 9827 ld.w r1, (r14, 0x1c) + 2be8: e3fff368 bsr 0x12b8 // 12b8 <__divdf3> + 2bec: e3fff4a2 bsr 0x1530 // 1530 <__fixdfsi> + 2bf0: 3f40 cmpnei r7, 0 + 2bf2: 74c0 zextb r3, r0 + 2bf4: 0c03 bf 0x2bfa // 2bfa <__GI___dtostr+0x228> + 2bf6: 3b40 cmpnei r3, 0 + 2bf8: 0c58 bf 0x2ca8 // 2ca8 <__GI___dtostr+0x2d6> + 2bfa: 232f addi r3, 48 + 2bfc: 3e40 cmpnei r6, 0 + 2bfe: a560 st.b r3, (r5, 0x0) + 2c00: 2500 addi r5, 1 + 2c02: 0842 bt 0x2c86 // 2c86 <__GI___dtostr+0x2b4> + 2c04: 6c93 mov r2, r4 + 2c06: 9863 ld.w r3, (r14, 0xc) + 2c08: 980a ld.w r0, (r14, 0x28) + 2c0a: 9824 ld.w r1, (r14, 0x10) + 2c0c: e3fff356 bsr 0x12b8 // 12b8 <__divdf3> + 2c10: 9845 ld.w r2, (r14, 0x14) + 2c12: 988b ld.w r4, (r14, 0x2c) + 2c14: b841 st.w r2, (r14, 0x4) + 2c16: b880 st.w r4, (r14, 0x0) + 2c18: 3300 movi r3, 0 + 2c1a: 9842 ld.w r2, (r14, 0x8) + 2c1c: e3fffedb bsr 0x29d2 // 29d2 <__GI___dtostr> + 2c20: 3840 cmpnei r0, 0 + 2c22: 0eeb bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c24: 5dc0 addu r6, r5, r0 + 2c26: 37fa movi r7, 250 + 2c28: 3565 movi r5, 101 + 2c2a: 6c02 nor r0, r0 + 2c2c: a6a0 st.b r5, (r6, 0x0) + 2c2e: 6d03 mov r4, r0 + 2c30: 5ea2 addi r5, r6, 1 + 2c32: 3101 movi r1, 1 + 2c34: 3604 movi r6, 4 + 2c36: 47e2 lsli r7, r7, 2 + 2c38: 9808 ld.w r0, (r14, 0x20) + 2c3a: 65c1 cmplt r0, r7 + 2c3c: 0c03 bf 0x2c42 // 2c42 <__GI___dtostr+0x270> + 2c3e: 3940 cmpnei r1, 0 + 2c40: 0811 bt 0x2c62 // 2c62 <__GI___dtostr+0x290> + 2c42: 3c40 cmpnei r4, 0 + 2c44: 0c08 bf 0x2c54 // 2c54 <__GI___dtostr+0x282> + 2c46: 6c5f mov r1, r7 + 2c48: 9808 ld.w r0, (r14, 0x20) + 2c4a: e0000bd1 bsr 0x43ec // 43ec <__divsi3> + 2c4e: 202f addi r0, 48 + 2c50: a500 st.b r0, (r5, 0x0) + 2c52: 2500 addi r5, 1 + 2c54: 6c5f mov r1, r7 + 2c56: 9808 ld.w r0, (r14, 0x20) + 2c58: e0000bee bsr 0x4434 // 4434 <__modsi3> + 2c5c: 2c00 subi r4, 1 + 2c5e: b808 st.w r0, (r14, 0x20) + 2c60: 3100 movi r1, 0 + 2c62: b823 st.w r1, (r14, 0xc) + 2c64: 6c1f mov r0, r7 + 2c66: 310a movi r1, 10 + 2c68: 2e00 subi r6, 1 + 2c6a: e0000bc1 bsr 0x43ec // 43ec <__divsi3> + 2c6e: 3e40 cmpnei r6, 0 + 2c70: 6dc3 mov r7, r0 + 2c72: 9823 ld.w r1, (r14, 0xc) + 2c74: 0be2 bt 0x2c38 // 2c38 <__GI___dtostr+0x266> + 2c76: 3c40 cmpnei r4, 0 + 2c78: 0ec0 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c7a: 9842 ld.w r2, (r14, 0x8) + 2c7c: 3300 movi r3, 0 + 2c7e: 5d89 subu r4, r5, r2 + 2c80: a560 st.b r3, (r5, 0x0) + 2c82: b889 st.w r4, (r14, 0x24) + 2c84: 06ba br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c86: 7400 zextb r0, r0 + 2c88: e3fff41c bsr 0x14c0 // 14c0 <__floatsidf> + 2c8c: 6c93 mov r2, r4 + 2c8e: 9863 ld.w r3, (r14, 0xc) + 2c90: e3fff1fa bsr 0x1084 // 1084 <__muldf3> + 2c94: 6c83 mov r2, r0 + 2c96: 6cc7 mov r3, r1 + 2c98: 9806 ld.w r0, (r14, 0x18) + 2c9a: 9827 ld.w r1, (r14, 0x1c) + 2c9c: e3fff1d8 bsr 0x104c // 104c <__subdf3> + 2ca0: b806 st.w r0, (r14, 0x18) + 2ca2: b827 st.w r1, (r14, 0x1c) + 2ca4: 2e00 subi r6, 1 + 2ca6: 3700 movi r7, 0 + 2ca8: 6c13 mov r0, r4 + 2caa: 9823 ld.w r1, (r14, 0xc) + 2cac: 3200 movi r2, 0 + 2cae: 1072 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2cb0: e3fff304 bsr 0x12b8 // 12b8 <__divdf3> + 2cb4: 6d03 mov r4, r0 + 2cb6: b823 st.w r1, (r14, 0xc) + 2cb8: 0723 br 0x2afe // 2afe <__GI___dtostr+0x12c> + 2cba: 1012 lrw r0, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2cbc: 1092 lrw r4, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2cbe: b803 st.w r0, (r14, 0xc) + 2cc0: 0727 br 0x2b0e // 2b0e <__GI___dtostr+0x13c> + 2cc2: 3e40 cmpnei r6, 0 + 2cc4: 0e9a bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2cc6: 372e movi r7, 46 + 2cc8: a5e0 st.b r7, (r5, 0x0) + 2cca: 2e00 subi r6, 1 + 2ccc: 5de2 addi r7, r5, 1 + 2cce: 073e br 0x2b4a // 2b4a <__GI___dtostr+0x178> + 2cd0: 3e40 cmpnei r6, 0 + 2cd2: 0ac8 bt 0x2a62 // 2a62 <__GI___dtostr+0x90> + 2cd4: 3508 movi r5, 8 + 2cd6: 06ac br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2cd8: 00006089 .long 0x00006089 + 2cdc: 0000608d .long 0x0000608d + 2ce0: 3fe00000 .long 0x3fe00000 + 2ce4: 3ff00000 .long 0x3ff00000 + 2ce8: fffffc01 .long 0xfffffc01 + 2cec: 509f79ff .long 0x509f79ff + 2cf0: 3fd34413 .long 0x3fd34413 + 2cf4: 40240000 .long 0x40240000 + 2cf8: cccccccd .long 0xcccccccd + 2cfc: 3feccccc .long 0x3feccccc + 2d00: 3fb99999 .long 0x3fb99999 + 2d04: 9999999a .long 0x9999999a + 2d08: 4202a05f .long 0x4202a05f + +00002d0c <__isnan>: + 2d0c: 416c lsli r3, r1, 12 + 2d0e: 4b4c lsri r2, r3, 12 + 2d10: 6c08 or r0, r2 + 2d12: 3840 cmpnei r0, 0 + 2d14: 0c0e bf 0x2d30 // 2d30 <__isnan+0x24> + 2d16: 1008 lrw r0, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d18: 6840 and r1, r0 + 2d1a: 6cc7 mov r3, r1 + 2d1c: 3000 movi r0, 0 + 2d1e: 1026 lrw r1, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d20: 3200 movi r2, 0 + 2d22: 6c81 xor r2, r0 + 2d24: 6cc5 xor r3, r1 + 2d26: 6c8c or r2, r3 + 2d28: 3a40 cmpnei r2, 0 + 2d2a: 6443 mvcv r1 + 2d2c: 7404 zextb r0, r1 + 2d2e: 783c jmp r15 + 2d30: 3000 movi r0, 0 + 2d32: 07fe br 0x2d2e // 2d2e <__isnan+0x22> + 2d34: 7ff00000 .long 0x7ff00000 + +00002d38 <__strlen_fast>: + 2d38: 6c43 mov r1, r0 + 2d3a: 3203 movi r2, 3 + 2d3c: 6808 and r0, r2 + 2d3e: 3840 cmpnei r0, 0 + 2d40: 0c08 bf 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d42: 3000 movi r0, 0 + 2d44: 8140 ld.b r2, (r1, 0x0) + 2d46: 3a40 cmpnei r2, 0 + 2d48: 0c20 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d4a: 2100 addi r1, 1 + 2d4c: 2000 addi r0, 1 + 2d4e: 07fb br 0x2d44 // 2d44 <__strlen_fast+0xc> + 2d50: 9140 ld.w r2, (r1, 0x0) + 2d52: 680b tstnbz r2 + 2d54: 0c04 bf 0x2d5c // 2d5c <__strlen_fast+0x24> + 2d56: 2103 addi r1, 4 + 2d58: 2003 addi r0, 4 + 2d5a: 07fb br 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d5c: 31ff movi r1, 255 + 2d5e: 6ccb mov r3, r2 + 2d60: 68c4 and r3, r1 + 2d62: 3b40 cmpnei r3, 0 + 2d64: 0c12 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d66: 2000 addi r0, 1 + 2d68: 3110 movi r1, 16 + 2d6a: 6ccb mov r3, r2 + 2d6c: 70c4 lsl r3, r1 + 2d6e: 3118 movi r1, 24 + 2d70: 70c5 lsr r3, r1 + 2d72: 3b40 cmpnei r3, 0 + 2d74: 0c0a bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d76: 2000 addi r0, 1 + 2d78: 3108 movi r1, 8 + 2d7a: 6ccb mov r3, r2 + 2d7c: 70c4 lsl r3, r1 + 2d7e: 3118 movi r1, 24 + 2d80: 70c5 lsr r3, r1 + 2d82: 3b40 cmpnei r3, 0 + 2d84: 0c02 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d86: 2000 addi r0, 1 + 2d88: 783c jmp r15 + ... + +00002d8c <__strcpy_fast>: + 2d8c: 14c1 push r4 + 2d8e: 6d03 mov r4, r0 + 2d90: 6c87 mov r2, r1 + 2d92: 6c90 or r2, r4 + 2d94: 3303 movi r3, 3 + 2d96: 688c and r2, r3 + 2d98: 3a40 cmpnei r2, 0 + 2d9a: 0c08 bf 0x2daa // 2daa <__strcpy_fast+0x1e> + 2d9c: 8160 ld.b r3, (r1, 0x0) + 2d9e: a460 st.b r3, (r4, 0x0) + 2da0: 2100 addi r1, 1 + 2da2: 2400 addi r4, 1 + 2da4: 3b40 cmpnei r3, 0 + 2da6: 0bfb bt 0x2d9c // 2d9c <__strcpy_fast+0x10> + 2da8: 1481 pop r4 + 2daa: 9160 ld.w r3, (r1, 0x0) + 2dac: 680f tstnbz r3 + 2dae: 0c2e bf 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2db0: b460 st.w r3, (r4, 0x0) + 2db2: 9161 ld.w r3, (r1, 0x4) + 2db4: 680f tstnbz r3 + 2db6: 0c1d bf 0x2df0 // 2df0 <__strcpy_fast+0x64> + 2db8: b461 st.w r3, (r4, 0x4) + 2dba: 9162 ld.w r3, (r1, 0x8) + 2dbc: 680f tstnbz r3 + 2dbe: 0c1b bf 0x2df4 // 2df4 <__strcpy_fast+0x68> + 2dc0: b462 st.w r3, (r4, 0x8) + 2dc2: 9163 ld.w r3, (r1, 0xc) + 2dc4: 680f tstnbz r3 + 2dc6: 0c19 bf 0x2df8 // 2df8 <__strcpy_fast+0x6c> + 2dc8: b463 st.w r3, (r4, 0xc) + 2dca: 9164 ld.w r3, (r1, 0x10) + 2dcc: 680f tstnbz r3 + 2dce: 0c17 bf 0x2dfc // 2dfc <__strcpy_fast+0x70> + 2dd0: b464 st.w r3, (r4, 0x10) + 2dd2: 9165 ld.w r3, (r1, 0x14) + 2dd4: 680f tstnbz r3 + 2dd6: 0c15 bf 0x2e00 // 2e00 <__strcpy_fast+0x74> + 2dd8: b465 st.w r3, (r4, 0x14) + 2dda: 9166 ld.w r3, (r1, 0x18) + 2ddc: 680f tstnbz r3 + 2dde: 0c13 bf 0x2e04 // 2e04 <__strcpy_fast+0x78> + 2de0: b466 st.w r3, (r4, 0x18) + 2de2: 9167 ld.w r3, (r1, 0x1c) + 2de4: 680f tstnbz r3 + 2de6: 0c11 bf 0x2e08 // 2e08 <__strcpy_fast+0x7c> + 2de8: b467 st.w r3, (r4, 0x1c) + 2dea: 241f addi r4, 32 + 2dec: 211f addi r1, 32 + 2dee: 07de br 0x2daa // 2daa <__strcpy_fast+0x1e> + 2df0: 2403 addi r4, 4 + 2df2: 040c br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df4: 2407 addi r4, 8 + 2df6: 040a br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df8: 240b addi r4, 12 + 2dfa: 0408 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2dfc: 240f addi r4, 16 + 2dfe: 0406 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e00: 2413 addi r4, 20 + 2e02: 0404 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e04: 2417 addi r4, 24 + 2e06: 0402 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e08: 241b addi r4, 28 + 2e0a: 3118 movi r1, 24 + 2e0c: 6c8f mov r2, r3 + 2e0e: 7084 lsl r2, r1 + 2e10: 7085 lsr r2, r1 + 2e12: a440 st.b r2, (r4, 0x0) + 2e14: 3a40 cmpnei r2, 0 + 2e16: 0c12 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e18: 3110 movi r1, 16 + 2e1a: 6c8f mov r2, r3 + 2e1c: 7084 lsl r2, r1 + 2e1e: 3118 movi r1, 24 + 2e20: 7085 lsr r2, r1 + 2e22: a441 st.b r2, (r4, 0x1) + 2e24: 3a40 cmpnei r2, 0 + 2e26: 0c0a bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e28: 3108 movi r1, 8 + 2e2a: 6c8f mov r2, r3 + 2e2c: 7084 lsl r2, r1 + 2e2e: 3118 movi r1, 24 + 2e30: 7085 lsr r2, r1 + 2e32: a442 st.b r2, (r4, 0x2) + 2e34: 3a40 cmpnei r2, 0 + 2e36: 0c02 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e38: b460 st.w r3, (r4, 0x0) + 2e3a: 1481 pop r4 + +00002e3c <__GI_strchr>: + 2e3c: 8040 ld.b r2, (r0, 0x0) + 2e3e: 644a cmpne r2, r1 + 2e40: 0c06 bf 0x2e4c // 2e4c <__GI_strchr+0x10> + 2e42: 3a40 cmpnei r2, 0 + 2e44: 0c03 bf 0x2e4a // 2e4a <__GI_strchr+0xe> + 2e46: 2000 addi r0, 1 + 2e48: 07fa br 0x2e3c // 2e3c <__GI_strchr> + 2e4a: 6c0b mov r0, r2 + 2e4c: 783c jmp r15 + ... + +00002e50 <__GI_strerror>: + 2e50: 338f movi r3, 143 + 2e52: 640c cmphs r3, r0 + 2e54: 0c06 bf 0x2e60 // 2e60 <__GI_strerror+0x10> + 2e56: 4002 lsli r0, r0, 2 + 2e58: 1023 lrw r1, 0x5cfc // 2e64 <__GI_strerror+0x14> + 2e5a: 6004 addu r0, r1 + 2e5c: 9000 ld.w r0, (r0, 0x0) + 2e5e: 783c jmp r15 + 2e60: 1002 lrw r0, 0x5f63 // 2e68 <__GI_strerror+0x18> + 2e62: 07fe br 0x2e5e // 2e5e <__GI_strerror+0xe> + 2e64: 00005cfc .long 0x00005cfc + 2e68: 00005f63 .long 0x00005f63 + +00002e6c <__isinf>: + 2e6c: 3840 cmpnei r0, 0 + 2e6e: 6c83 mov r2, r0 + 2e70: 6cc7 mov r3, r1 + 2e72: 0804 bt 0x2e7a // 2e7a <__isinf+0xe> + 2e74: 1028 lrw r1, 0x7ff00000 // 2e94 <__isinf+0x28> + 2e76: 644e cmpne r3, r1 + 2e78: 0c0b bf 0x2e8e // 2e8e <__isinf+0x22> + 2e7a: 3000 movi r0, 0 + 2e7c: 1027 lrw r1, 0xfff00000 // 2e98 <__isinf+0x2c> + 2e7e: 6c81 xor r2, r0 + 2e80: 6cc5 xor r3, r1 + 2e82: 6c8c or r2, r3 + 2e84: 3a40 cmpnei r2, 0 + 2e86: 64c3 mvcv r3 + 2e88: 3000 movi r0, 0 + 2e8a: 600e subu r0, r3 + 2e8c: 783c jmp r15 + 2e8e: 3001 movi r0, 1 + 2e90: 07fe br 0x2e8c // 2e8c <__isinf+0x20> + 2e92: 0000 bkpt + 2e94: 7ff00000 .long 0x7ff00000 + 2e98: fff00000 .long 0xfff00000 + +00002e9c <__eqdf2>: + 2e9c: 14d0 push r15 + 2e9e: 142e subi r14, r14, 56 + 2ea0: b800 st.w r0, (r14, 0x0) + 2ea2: b821 st.w r1, (r14, 0x4) + 2ea4: 6c3b mov r0, r14 + 2ea6: 1904 addi r1, r14, 16 + 2ea8: b863 st.w r3, (r14, 0xc) + 2eaa: b842 st.w r2, (r14, 0x8) + 2eac: e3fff4b4 bsr 0x1814 // 1814 <__unpack_d> + 2eb0: 1909 addi r1, r14, 36 + 2eb2: 1802 addi r0, r14, 8 + 2eb4: e3fff4b0 bsr 0x1814 // 1814 <__unpack_d> + 2eb8: 9864 ld.w r3, (r14, 0x10) + 2eba: 3b01 cmphsi r3, 2 + 2ebc: 0c0a bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ebe: 9869 ld.w r3, (r14, 0x24) + 2ec0: 3b01 cmphsi r3, 2 + 2ec2: 0c07 bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ec4: 1909 addi r1, r14, 36 + 2ec6: 1804 addi r0, r14, 16 + 2ec8: e3fff508 bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2ecc: 140e addi r14, r14, 56 + 2ece: 1490 pop r15 + 2ed0: 3001 movi r0, 1 + 2ed2: 140e addi r14, r14, 56 + 2ed4: 1490 pop r15 + ... + +00002ed8 <__ltdf2>: + 2ed8: 14d0 push r15 + 2eda: 142e subi r14, r14, 56 + 2edc: b800 st.w r0, (r14, 0x0) + 2ede: b821 st.w r1, (r14, 0x4) + 2ee0: 6c3b mov r0, r14 + 2ee2: 1904 addi r1, r14, 16 + 2ee4: b863 st.w r3, (r14, 0xc) + 2ee6: b842 st.w r2, (r14, 0x8) + 2ee8: e3fff496 bsr 0x1814 // 1814 <__unpack_d> + 2eec: 1909 addi r1, r14, 36 + 2eee: 1802 addi r0, r14, 8 + 2ef0: e3fff492 bsr 0x1814 // 1814 <__unpack_d> + 2ef4: 9864 ld.w r3, (r14, 0x10) + 2ef6: 3b01 cmphsi r3, 2 + 2ef8: 0c0a bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2efa: 9869 ld.w r3, (r14, 0x24) + 2efc: 3b01 cmphsi r3, 2 + 2efe: 0c07 bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2f00: 1909 addi r1, r14, 36 + 2f02: 1804 addi r0, r14, 16 + 2f04: e3fff4ea bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2f08: 140e addi r14, r14, 56 + 2f0a: 1490 pop r15 + 2f0c: 3001 movi r0, 1 + 2f0e: 140e addi r14, r14, 56 + 2f10: 1490 pop r15 + +Disassembly of section .text.__main: + +00002f14 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 2f14: 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 ) { + 2f16: 1009 lrw r0, 0x20000000 // 2f38 <__main+0x24> + 2f18: 1029 lrw r1, 0x6818 // 2f3c <__main+0x28> + 2f1a: 6442 cmpne r0, r1 + 2f1c: 0c05 bf 0x2f26 // 2f26 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 2f1e: 1049 lrw r2, 0x200000a0 // 2f40 <__main+0x2c> + 2f20: 6082 subu r2, r0 + 2f22: e3fff5c1 bsr 0x1aa4 // 1aa4 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 2f26: 1048 lrw r2, 0x20000758 // 2f44 <__main+0x30> + 2f28: 1008 lrw r0, 0x200000a0 // 2f48 <__main+0x34> + 2f2a: 640a cmpne r2, r0 + 2f2c: 0c05 bf 0x2f36 // 2f36 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 2f2e: 6082 subu r2, r0 + 2f30: 3100 movi r1, 0 + 2f32: e3fff575 bsr 0x1a1c // 1a1c <__memset_fast> + } + + +} + 2f36: 1490 pop r15 + 2f38: 20000000 .long 0x20000000 + 2f3c: 00006818 .long 0x00006818 + 2f40: 200000a0 .long 0x200000a0 + 2f44: 20000758 .long 0x20000758 + 2f48: 200000a0 .long 0x200000a0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00002f4c : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 2f4c: 3848 cmpnei r0, 8 + 2f4e: 080a bt 0x2f62 // 2f62 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 2f50: 107a lrw r3, 0x2000004c // 2fb8 + 2f52: 32ff movi r2, 255 + 2f54: 9320 ld.w r1, (r3, 0x0) + 2f56: 9160 ld.w r3, (r1, 0x0) + 2f58: 424c lsli r2, r2, 12 + 2f5a: 68c9 andn r3, r2 + 2f5c: 3bae bseti r3, 14 + 2f5e: 3bb2 bseti r3, 18 + 2f60: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 2f62: 1077 lrw r3, 0x2000005c // 2fbc + 2f64: 9360 ld.w r3, (r3, 0x0) + 2f66: 9341 ld.w r2, (r3, 0x4) + 2f68: 6c80 or r2, r0 + 2f6a: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 2f6c: 9343 ld.w r2, (r3, 0xc) + 2f6e: 6880 and r2, r0 + 2f70: 3a40 cmpnei r2, 0 + 2f72: 0ffd bf 0x2f6c // 2f6c + switch(ENDIS_X) + 2f74: 3842 cmpnei r0, 2 + 2f76: 0807 bt 0x2f84 // 2f84 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 2f78: 3102 movi r1, 2 + 2f7a: 9344 ld.w r2, (r3, 0x10) + 2f7c: 6884 and r2, r1 + 2f7e: 3a40 cmpnei r2, 0 + 2f80: 0ffd bf 0x2f7a // 2f7a + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 2f82: 783c jmp r15 + switch(ENDIS_X) + 2f84: 3802 cmphsi r0, 3 + 2f86: 0809 bt 0x2f98 // 2f98 + 2f88: 3841 cmpnei r0, 1 + 2f8a: 0bfc bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 2f8c: 3101 movi r1, 1 + 2f8e: 9344 ld.w r2, (r3, 0x10) + 2f90: 6884 and r2, r1 + 2f92: 3a40 cmpnei r2, 0 + 2f94: 0ffd bf 0x2f8e // 2f8e + 2f96: 07f6 br 0x2f82 // 2f82 + switch(ENDIS_X) + 2f98: 3848 cmpnei r0, 8 + 2f9a: 0807 bt 0x2fa8 // 2fa8 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 2f9c: 3108 movi r1, 8 + 2f9e: 9344 ld.w r2, (r3, 0x10) + 2fa0: 6884 and r2, r1 + 2fa2: 3a40 cmpnei r2, 0 + 2fa4: 0ffd bf 0x2f9e // 2f9e + 2fa6: 07ee br 0x2f82 // 2f82 + switch(ENDIS_X) + 2fa8: 3850 cmpnei r0, 16 + 2faa: 0bec bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 2fac: 3110 movi r1, 16 + 2fae: 9344 ld.w r2, (r3, 0x10) + 2fb0: 6884 and r2, r1 + 2fb2: 3a40 cmpnei r2, 0 + 2fb4: 0ffd bf 0x2fae // 2fae + 2fb6: 07e6 br 0x2f82 // 2f82 + 2fb8: 2000004c .long 0x2000004c + 2fbc: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00002fc0 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 2fc0: 106c lrw r3, 0x2000005c // 2ff0 + 2fc2: 104d lrw r2, 0xffff // 2ff4 + 2fc4: 9360 ld.w r3, (r3, 0x0) + 2fc6: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 2fc8: 104c lrw r2, 0xffffff // 2ff8 + 2fca: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 2fcc: 104c lrw r2, 0xd22d0000 // 2ffc + 2fce: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 2fd0: 104c lrw r2, 0x70ff3bff // 3000 + 2fd2: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 2fd4: 320a movi r2, 10 + 2fd6: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fd8: 102b lrw r1, 0x70c // 3004 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 2fda: 237f addi r3, 128 + 2fdc: 3200 movi r2, 0 + 2fde: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 2fe0: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fe2: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 2fe4: 1029 lrw r1, 0x3fe // 3008 + 2fe6: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 2fe8: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 2fea: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 2fec: b35f st.w r2, (r3, 0x7c) +} + 2fee: 783c jmp r15 + 2ff0: 2000005c .long 0x2000005c + 2ff4: 0000ffff .long 0x0000ffff + 2ff8: 00ffffff .long 0x00ffffff + 2ffc: d22d0000 .long 0xd22d0000 + 3000: 70ff3bff .long 0x70ff3bff + 3004: 0000070c .long 0x0000070c + 3008: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +0000300c : +{ + 300c: 14d0 push r15 + if (NewState != DISABLE) + 300e: 3840 cmpnei r0, 0 + 3010: 0c05 bf 0x301a // 301a + 3012: 6c07 mov r0, r1 + 3014: e3ffff9c bsr 0x2f4c // 2f4c +} + 3018: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 301a: 1068 lrw r3, 0x2000005c // 3038 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9342 ld.w r2, (r3, 0x8) + 3020: 6c84 or r2, r1 + 3022: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 3024: 9343 ld.w r2, (r3, 0xc) + 3026: 6884 and r2, r1 + 3028: 3a40 cmpnei r2, 0 + 302a: 0bfd bt 0x3024 // 3024 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 302c: 237f addi r3, 128 + 302e: 9301 ld.w r0, (r3, 0x4) + 3030: 6c40 or r1, r0 + 3032: b321 st.w r1, (r3, 0x4) +} + 3034: 07f2 br 0x3018 // 3018 + 3036: 0000 bkpt + 3038: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +0000303c : +//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 ) +{ + 303c: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 303e: 3b48 cmpnei r3, 8 + 3040: 0828 bt 0x3090 // 3090 + { + IFC->CEDR=0X01; //CLKEN + 3042: 109d lrw r4, 0x20000060 // 30b4 + 3044: 3501 movi r5, 1 + 3046: 9480 ld.w r4, (r4, 0x0) + 3048: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 304a: 3504 movi r5, 4 + 304c: 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)) + 304e: 5b83 subi r4, r3, 1 + 3050: 3c01 cmphsi r4, 2 + 3052: 0c2b bf 0x30a8 // 30a8 + { + 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)) + 3054: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 3056: 3c04 cmphsi r4, 5 + 3058: 0c03 bf 0x305e // 305e + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 305a: 3b4b cmpnei r3, 11 + 305c: 0807 bt 0x306a // 306a + { + IFC->CEDR=0X01; //CLKEN + 305e: 1076 lrw r3, 0x20000060 // 30b4 + 3060: 3401 movi r4, 1 + 3062: 9360 ld.w r3, (r3, 0x0) + 3064: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 3066: 3400 movi r4, 0 + 3068: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 306a: 1094 lrw r4, 0xd22d0000 // 30b8 + 306c: 6c10 or r0, r4 + 306e: 1074 lrw r3, 0x2000005c // 30bc + 3070: 6c40 or r1, r0 + 3072: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3074: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 3076: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3078: 4001 lsli r0, r0, 1 + 307a: 9324 ld.w r1, (r3, 0x10) + 307c: 6840 and r1, r0 + 307e: 3940 cmpnei r1, 0 + 3080: 0ffd bf 0x307a // 307a + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 3082: 1030 lrw r1, 0xc33c0000 // 30c0 + 3084: 6c48 or r1, r2 + 3086: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 3088: 9328 ld.w r1, (r3, 0x20) + 308a: 644a cmpne r2, r1 + 308c: 0bfe bt 0x3088 // 3088 +} + 308e: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 3090: 3b40 cmpnei r3, 0 + 3092: 0c03 bf 0x3098 // 3098 + 3094: 3b49 cmpnei r3, 9 + 3096: 0807 bt 0x30a4 // 30a4 + IFC->CEDR=0X01; //CLKEN + 3098: 1087 lrw r4, 0x20000060 // 30b4 + 309a: 3501 movi r5, 1 + 309c: 9480 ld.w r4, (r4, 0x0) + 309e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 30a0: 3502 movi r5, 2 + 30a2: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 30a4: 3b4a cmpnei r3, 10 + 30a6: 0bd4 bt 0x304e // 304e + IFC->CEDR=0X01; //CLKEN + 30a8: 1083 lrw r4, 0x20000060 // 30b4 + 30aa: 3501 movi r5, 1 + 30ac: 9480 ld.w r4, (r4, 0x0) + 30ae: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 30b0: b4a5 st.w r5, (r4, 0x14) + 30b2: 07d1 br 0x3054 // 3054 + 30b4: 20000060 .long 0x20000060 + 30b8: d22d0000 .long 0xd22d0000 + 30bc: 2000005c .long 0x2000005c + 30c0: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +000030c4 : +//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) +{ + 30c4: 14d1 push r4, r15 + 30c6: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 30c8: 3110 movi r1, 16 + 30ca: 3000 movi r0, 0 + 30cc: e3ffffa0 bsr 0x300c // 300c + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 30d0: 1066 lrw r3, 0x2000005c // 30e8 + 30d2: 9360 ld.w r3, (r3, 0x0) + 30d4: 9319 ld.w r0, (r3, 0x64) + 30d6: 3884 bclri r0, 4 + 30d8: 3885 bclri r0, 5 + 30da: 6c10 or r0, r4 + 30dc: b319 st.w r0, (r3, 0x64) + 30de: 3010 movi r0, 16 + 30e0: e3ffff36 bsr 0x2f4c // 2f4c + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 30e4: 1491 pop r4, r15 + 30e6: 0000 bkpt + 30e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +000030ec : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 30ec: 106c lrw r3, 0x2000005c // 311c + if(NewState != DISABLE) + 30ee: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f0: 9360 ld.w r3, (r3, 0x0) + 30f2: 237f addi r3, 128 + if(NewState != DISABLE) + 30f4: 0c0a bf 0x3108 // 3108 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f6: 104b lrw r2, 0x78870000 // 3120 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30f8: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30fa: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30fc: 4125 lsli r1, r1, 5 + 30fe: 934d ld.w r2, (r3, 0x34) + 3100: 6884 and r2, r1 + 3102: 3a40 cmpnei r2, 0 + 3104: 0ffd bf 0x30fe // 30fe + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 3106: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 3108: 1047 lrw r2, 0x788755aa // 3124 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310a: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 310c: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310e: 4125 lsli r1, r1, 5 + 3110: 934d ld.w r2, (r3, 0x34) + 3112: 6884 and r2, r1 + 3114: 3a40 cmpnei r2, 0 + 3116: 0bfd bt 0x3110 // 3110 + 3118: 07f7 br 0x3106 // 3106 + 311a: 0000 bkpt + 311c: 2000005c .long 0x2000005c + 3120: 78870000 .long 0x78870000 + 3124: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00003128 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 3128: 1064 lrw r3, 0x2000005c // 3138 + 312a: 32b4 movi r2, 180 + 312c: 9360 ld.w r3, (r3, 0x0) + 312e: 237f addi r3, 128 + 3130: 4257 lsli r2, r2, 23 + 3132: b34e st.w r2, (r3, 0x38) +} + 3134: 783c jmp r15 + 3136: 0000 bkpt + 3138: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +0000313c : +//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; + 313c: 1044 lrw r2, 0x87780000 // 314c + 313e: 1065 lrw r3, 0x2000005c // 3150 + 3140: 6c48 or r1, r2 + 3142: 9360 ld.w r3, (r3, 0x0) + 3144: 6c04 or r0, r1 + 3146: 237f addi r3, 128 + 3148: b30d st.w r0, (r3, 0x34) +} + 314a: 783c jmp r15 + 314c: 87780000 .long 0x87780000 + 3150: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00003154 : +//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) +{ + 3154: 14c3 push r4-r6 + 3156: 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; + 3158: 10c5 lrw r6, 0xb44b0000 // 316c + 315a: 6d18 or r4, r6 + 315c: 6cd0 or r3, r4 + 315e: 6c8c or r2, r3 + 3160: 6c48 or r1, r2 + 3162: 10a4 lrw r5, 0x2000005c // 3170 + 3164: 6c04 or r0, r1 + 3166: 95a0 ld.w r5, (r5, 0x0) + 3168: b513 st.w r0, (r5, 0x4c) +} + 316a: 1483 pop r4-r6 + 316c: b44b0000 .long 0xb44b0000 + 3170: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00003174 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 3174: 1066 lrw r3, 0x2000005c // 318c + 3176: 3180 movi r1, 128 + 3178: 9360 ld.w r3, (r3, 0x0) + 317a: 3280 movi r2, 128 + 317c: 604c addu r1, r3 + 317e: 4244 lsli r2, r2, 4 + 3180: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 3182: 935d ld.w r2, (r3, 0x74) + 3184: 3aab bseti r2, 11 + 3186: b35d st.w r2, (r3, 0x74) +} + 3188: 783c jmp r15 + 318a: 0000 bkpt + 318c: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00003190 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 3190: 1066 lrw r3, 0x2000005c // 31a8 + 3192: 3180 movi r1, 128 + 3194: 9360 ld.w r3, (r3, 0x0) + 3196: 3280 movi r2, 128 + 3198: 604c addu r1, r3 + 319a: 4241 lsli r2, r2, 1 + 319c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 319e: 935d ld.w r2, (r3, 0x74) + 31a0: 3aa8 bseti r2, 8 + 31a2: b35d st.w r2, (r3, 0x74) +} + 31a4: 783c jmp r15 + 31a6: 0000 bkpt + 31a8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +000031ac : +//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) + 31ac: 3a40 cmpnei r2, 0 + 31ae: 0c04 bf 0x31b6 // 31b6 + 31b0: 3a41 cmpnei r2, 1 + 31b2: 0c0e bf 0x31ce // 31ce + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 31b4: 783c jmp r15 + 31b6: 106d lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31b8: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 31ba: 9360 ld.w r3, (r3, 0x0) + 31bc: 237f addi r3, 128 + 31be: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 31c0: 0c04 bf 0x31c8 // 31c8 + SYSCON->EXIRT |=EXIPIN; + 31c2: 6c48 or r1, r2 + 31c4: b325 st.w r1, (r3, 0x14) + 31c6: 07f7 br 0x31b4 // 31b4 + SYSCON->EXIRT &=~EXIPIN; + 31c8: 6885 andn r2, r1 + 31ca: b345 st.w r2, (r3, 0x14) + 31cc: 07f4 br 0x31b4 // 31b4 + 31ce: 1067 lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31d0: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 31d2: 9360 ld.w r3, (r3, 0x0) + 31d4: 237f addi r3, 128 + 31d6: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 31d8: 0c04 bf 0x31e0 // 31e0 + SYSCON->EXIFT |=EXIPIN; + 31da: 6c48 or r1, r2 + 31dc: b326 st.w r1, (r3, 0x18) + 31de: 07eb br 0x31b4 // 31b4 + SYSCON->EXIFT &=~EXIPIN; + 31e0: 6885 andn r2, r1 + 31e2: b346 st.w r2, (r3, 0x18) +} + 31e4: 07e8 br 0x31b4 // 31b4 + 31e6: 0000 bkpt + 31e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_Int_Enable: + +000031ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 31ec: 3202 movi r2, 2 + 31ee: 1062 lrw r3, 0xe000e100 // 31f4 + 31f0: b340 st.w r2, (r3, 0x0) +} + 31f2: 783c jmp r15 + 31f4: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_INT_Priority: + +000031f8 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31f8: 1066 lrw r3, 0xe000e400 // 3210 + 31fa: 1047 lrw r2, 0xc0c0c0c0 // 3214 + 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 + 31fc: 1027 lrw r1, 0xc0c000c0 // 3218 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31fe: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 3200: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 3202: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 3204: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 3206: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 3208: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 320a: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 320c: b347 st.w r2, (r3, 0x1c) +} + 320e: 783c jmp r15 + 3210: e000e400 .long 0xe000e400 + 3214: c0c0c0c0 .long 0xc0c0c0c0 + 3218: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +0000321c : +//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) +{ + 321c: 14c1 push r4 + 321e: 4862 lsri r3, r0, 2 + 3220: 4342 lsli r2, r3, 2 + 3222: 106a lrw r3, 0x20000064 // 3248 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 3224: 3403 movi r4, 3 + 3226: 9360 ld.w r3, (r3, 0x0) + 3228: 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)); + 323a: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 323e: 7040 lsl r1, r0 + 3240: 6c48 or r1, r2 + 3242: b320 st.w r1, (r3, 0x0) +} + 3244: 1481 pop r4 + 3246: 0000 bkpt + 3248: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +0000324c : +//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) +{ + 324c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 324e: 3907 cmphsi r1, 8 +{ + 3250: 6d03 mov r4, r0 + if(PinNum<8) + 3252: 0830 bt 0x32b2 // 32b2 + { + switch (PinNum) + 3254: 5903 subi r0, r1, 1 + 3256: 3806 cmphsi r0, 7 + 3258: 0827 bt 0x32a6 // 32a6 + 325a: e3ffed51 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 325e: 1004 .short 0x1004 + 3260: 1d1a1613 .long 0x1d1a1613 + 3264: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 3266: 3300 movi r3, 0 + 3268: 3104 movi r1, 4 + 326a: 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) + 326c: 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< + 3282: 07f5 br 0x326c // 326c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 3284: 310c movi r1, 12 + 3286: 1166 lrw r3, 0xffff0fff // 331c + 3288: 07f2 br 0x326c // 326c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 328a: 3110 movi r1, 16 + 328c: 1165 lrw r3, 0xfff10000 // 3320 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 328e: 2b00 subi r3, 1 + 3290: 07ee br 0x326c // 326c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 3292: 3114 movi r1, 20 + 3294: 1164 lrw r3, 0xff100000 // 3324 + 3296: 07fc br 0x328e // 328e + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3298: 33f1 movi r3, 241 + 329a: 3118 movi r1, 24 + 329c: 4378 lsli r3, r3, 24 + 329e: 07f8 br 0x328e // 328e + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 32a0: 311c movi r1, 28 + 32a2: 1162 lrw r3, 0xfffffff // 3328 + 32a4: 07e4 br 0x326c // 326c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 32a6: 3300 movi r3, 0 + 32a8: 3100 movi r1, 0 + 32aa: 2b0f subi r3, 16 + 32ac: 07e0 br 0x326c // 326c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 32b2: 390f cmphsi r1, 16 + 32b4: 0be4 bt 0x327c // 327c + switch (PinNum) + 32b6: 2908 subi r1, 9 + 32b8: 3906 cmphsi r1, 7 + 32ba: 6c07 mov r0, r1 + 32bc: 0827 bt 0x330a // 330a + 32be: e3ffed1f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 32c2: 1004 .short 0x1004 + 32c4: 1d1a1613 .long 0x1d1a1613 + 32c8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 32ca: 3300 movi r3, 0 + 32cc: 3104 movi r1, 4 + 32ce: 2bf0 subi r3, 241 + if (Dir) + 32d0: 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; + 32e2: 3108 movi r1, 8 + 32e4: 106d lrw r3, 0xfffff0ff // 3318 + 32e6: 07f5 br 0x32d0 // 32d0 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 32e8: 310c movi r1, 12 + 32ea: 106d lrw r3, 0xffff0fff // 331c + 32ec: 07f2 br 0x32d0 // 32d0 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 32ee: 3110 movi r1, 16 + 32f0: 106c lrw r3, 0xfff10000 // 3320 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32f2: 2b00 subi r3, 1 + 32f4: 07ee br 0x32d0 // 32d0 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 32f6: 3114 movi r1, 20 + 32f8: 106b lrw r3, 0xff100000 // 3324 + 32fa: 07fc br 0x32f2 // 32f2 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32fc: 33f1 movi r3, 241 + 32fe: 3118 movi r1, 24 + 3300: 4378 lsli r3, r3, 24 + 3302: 07f8 br 0x32f2 // 32f2 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 3304: 311c movi r1, 28 + 3306: 1069 lrw r3, 0xfffffff // 3328 + 3308: 07e4 br 0x32d0 // 32d0 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 330a: 3300 movi r3, 0 + 330c: 3100 movi r1, 0 + 330e: 2b0f subi r3, 16 + 3310: 07e0 br 0x32d0 // 32d0 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 3316: 0000 bkpt + 3318: fffff0ff .long 0xfffff0ff + 331c: ffff0fff .long 0xffff0fff + 3320: fff10000 .long 0xfff10000 + 3324: ff100000 .long 0xff100000 + 3328: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000332c : +//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)); + 332c: 4121 lsli r1, r1, 1 + 332e: 3203 movi r2, 3 + 3330: 9068 ld.w r3, (r0, 0x20) + 3332: 7084 lsl r2, r1 + 3334: 68c9 andn r3, r2 + 3336: 3201 movi r2, 1 + 3338: 7084 lsl r2, r1 + 333a: 6cc8 or r3, r2 + 333c: b068 st.w r3, (r0, 0x20) +} + 333e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00003340 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 3340: 4121 lsli r1, r1, 1 + 3342: 3301 movi r3, 1 + 3344: 9049 ld.w r2, (r0, 0x24) + 3346: 70c4 lsl r3, r1 + 3348: 6cc8 or r3, r2 + 334a: b069 st.w r3, (r0, 0x24) +} + 334c: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +0000334e : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 335e: 9045 ld.w r2, (r0, 0x14) + 3360: 3301 movi r3, 1 + 3362: 7085 lsr r2, r1 + 3364: 688c and r2, r3 + { + if (dat==1) + 3366: 3a40 cmpnei r2, 0 + 3368: 70c4 lsl r3, r1 + 336a: 0c03 bf 0x3370 // 3370 + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00003374 : +/*************************************************************/ +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); + 3394: 1064 lrw r3, 0x20000014 // 33a4 + 3396: 9340 ld.w r2, (r3, 0x0) + 3398: 9261 ld.w r3, (r2, 0x4) + 339a: 3bac bseti r3, 12 + 339c: 3bae bseti r3, 14 + 339e: b261 st.w r3, (r2, 0x4) +} + 33a0: 783c jmp r15 + 33a2: 0000 bkpt + 33a4: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000033a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 33a8: 1063 lrw r3, 0x20000010 // 33b4 + 33aa: 9360 ld.w r3, (r3, 0x0) + 33ac: 9340 ld.w r2, (r3, 0x0) + 33ae: 6c08 or r0, r2 + 33b0: b300 st.w r0, (r3, 0x0) +} + 33b2: 783c jmp r15 + 33b4: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000033b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 33b8: 3300 movi r3, 0 + 33ba: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 33bc: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 33be: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 33c0: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 33c2: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 33c4: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 33c6: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 33c8: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 33ca: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 33cc: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 33ce: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 33d0: b06d st.w r3, (r0, 0x34) +} + 33d2: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000033d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 33d4: 9060 ld.w r3, (r0, 0x0) + 33d6: 3ba0 bseti r3, 0 + 33d8: b060 st.w r3, (r0, 0x0) +} + 33da: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000033dc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 33dc: 9060 ld.w r3, (r0, 0x0) + 33de: 3bac bseti r3, 12 + 33e0: 3bae bseti r3, 14 + 33e2: b060 st.w r3, (r0, 0x0) +} + 33e4: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000033e6 : +//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) +{ + 33e6: 14c3 push r4-r6 + 33e8: 98a4 ld.w r5, (r14, 0x10) + 33ea: 6d97 mov r6, r5 + 33ec: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 33ee: 6d18 or r4, r6 + 33f0: 6cd0 or r3, r4 + 33f2: 90a1 ld.w r5, (r0, 0x4) + 33f4: 6c4c or r1, r3 + 33f6: 6c54 or r1, r5 + 33f8: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 33fa: b042 st.w r2, (r0, 0x8) +} + 33fc: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000033fe : +//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) +{ + 33fe: 14c4 push r4-r7 + 3400: 1421 subi r14, r14, 4 + 3402: 9885 ld.w r4, (r14, 0x14) + 3404: 6dd3 mov r7, r4 + 3406: 9886 ld.w r4, (r14, 0x18) + 3408: b880 st.w r4, (r14, 0x0) + 340a: 9887 ld.w r4, (r14, 0x1c) + 340c: 6d93 mov r6, r4 + 340e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 3410: 6d58 or r5, r6 + 3412: 98c0 ld.w r6, (r14, 0x0) + 3414: 6d58 or r5, r6 + 3416: 6d5c or r5, r7 + 3418: 6cd4 or r3, r5 + 341a: 6c8c or r2, r3 + 341c: 9081 ld.w r4, (r0, 0x4) + 341e: 6c48 or r1, r2 + 3420: 6d04 or r4, r1 + 3422: 6d9f mov r6, r7 + 3424: b081 st.w r4, (r0, 0x4) +} + 3426: 1401 addi r14, r14, 4 + 3428: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000342a : +//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; + 342a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 342c: b044 st.w r2, (r0, 0x10) +} + 342e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00003430 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 3430: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 3432: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 3434: 0c04 bf 0x343c // 343c + BTx->IMCR |= BT_IMSCR_X; + 3436: 6c8c or r2, r3 + 3438: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 343a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 343c: 68c9 andn r3, r2 + 343e: b06b st.w r3, (r0, 0x2c) +} + 3440: 07fd br 0x343a // 343a + +Disassembly of section .text.BT1_INT_ENABLE: + +00003444 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 3444: 3380 movi r3, 128 + 3446: 4376 lsli r3, r3, 22 + 3448: 1042 lrw r2, 0xe000e100 // 3450 + 344a: b260 st.w r3, (r2, 0x0) +} + 344c: 783c jmp r15 + 344e: 0000 bkpt + 3450: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +00003454 : +//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) + 3454: 3840 cmpnei r0, 0 + 3456: 080a bt 0x346a // 346a + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 3458: 1165 lrw r3, 0x20000048 // 34ec + 345a: 31f0 movi r1, 240 + 345c: 9340 ld.w r2, (r3, 0x0) + 345e: 9260 ld.w r3, (r2, 0x0) + 3460: 68c5 andn r3, r1 + 3462: 3ba4 bseti r3, 4 + 3464: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 3466: b260 st.w r3, (r2, 0x0) + } +} + 3468: 040b br 0x347e // 347e + if(IONAME==GPT_CHA_PA09) + 346a: 3841 cmpnei r0, 1 + 346c: 080a bt 0x3480 // 3480 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 346e: 1161 lrw r3, 0x2000004c // 34f0 + 3470: 31f0 movi r1, 240 + 3472: 9340 ld.w r2, (r3, 0x0) + 3474: 9261 ld.w r3, (r2, 0x4) + 3476: 68c5 andn r3, r1 + 3478: 3ba4 bseti r3, 4 + 347a: 3ba6 bseti r3, 6 + 347c: b261 st.w r3, (r2, 0x4) +} + 347e: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 3480: 3842 cmpnei r0, 2 + 3482: 080b bt 0x3498 // 3498 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 3484: 107b lrw r3, 0x2000004c // 34f0 + 3486: 32f0 movi r2, 240 + 3488: 9320 ld.w r1, (r3, 0x0) + 348a: 9161 ld.w r3, (r1, 0x4) + 348c: 4244 lsli r2, r2, 4 + 348e: 68c9 andn r3, r2 + 3490: 3ba9 bseti r3, 9 + 3492: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 3494: b161 st.w r3, (r1, 0x4) + 3496: 07f4 br 0x347e // 347e + if(IONAME==GPT_CHB_PA010) + 3498: 3843 cmpnei r0, 3 + 349a: 080b bt 0x34b0 // 34b0 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 349c: 1075 lrw r3, 0x2000004c // 34f0 + 349e: 32f0 movi r2, 240 + 34a0: 9320 ld.w r1, (r3, 0x0) + 34a2: 4244 lsli r2, r2, 4 + 34a4: 9161 ld.w r3, (r1, 0x4) + 34a6: 68c9 andn r3, r2 + 34a8: 32e0 movi r2, 224 + 34aa: 4243 lsli r2, r2, 3 + 34ac: 6cc8 or r3, r2 + 34ae: 07f3 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PA011) + 34b0: 3844 cmpnei r0, 4 + 34b2: 080a bt 0x34c6 // 34c6 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 34b4: 106f lrw r3, 0x2000004c // 34f0 + 34b6: 32f0 movi r2, 240 + 34b8: 9320 ld.w r1, (r3, 0x0) + 34ba: 9161 ld.w r3, (r1, 0x4) + 34bc: 4248 lsli r2, r2, 8 + 34be: 68c9 andn r3, r2 + 34c0: 3bad bseti r3, 13 + 34c2: 3bae bseti r3, 14 + 34c4: 07e8 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PB00) + 34c6: 3845 cmpnei r0, 5 + 34c8: 0808 bt 0x34d8 // 34d8 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 34ca: 1069 lrw r3, 0x20000048 // 34ec + 34cc: 310f movi r1, 15 + 34ce: 9340 ld.w r2, (r3, 0x0) + 34d0: 9260 ld.w r3, (r2, 0x0) + 34d2: 68c5 andn r3, r1 + 34d4: 3ba2 bseti r3, 2 + 34d6: 07c8 br 0x3466 // 3466 + if(IONAME==GPT_CHB_PB01) + 34d8: 3846 cmpnei r0, 6 + 34da: 0bd2 bt 0x347e // 347e + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 34dc: 1064 lrw r3, 0x20000048 // 34ec + 34de: 31f0 movi r1, 240 + 34e0: 9340 ld.w r2, (r3, 0x0) + 34e2: 9260 ld.w r3, (r2, 0x0) + 34e4: 68c5 andn r3, r1 + 34e6: 3ba5 bseti r3, 5 + 34e8: 3ba6 bseti r3, 6 + 34ea: 07be br 0x3466 // 3466 + 34ec: 20000048 .long 0x20000048 + 34f0: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +000034f4 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 34f4: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 34f6: 6c48 or r1, r2 + 34f8: 1083 lrw r4, 0x20000024 // 3504 + 34fa: 6c04 or r0, r1 + 34fc: 9480 ld.w r4, (r4, 0x0) + 34fe: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 3500: b462 st.w r3, (r4, 0x8) +} + 3502: 1481 pop r4 + 3504: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +00003508 : +/*************************************************************/ +//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) +{ + 3508: 14c4 push r4-r7 + 350a: 1423 subi r14, r14, 12 + 350c: 9887 ld.w r4, (r14, 0x1c) + 350e: 6dd3 mov r7, r4 + 3510: 9888 ld.w r4, (r14, 0x20) + 3512: b880 st.w r4, (r14, 0x0) + 3514: 9889 ld.w r4, (r14, 0x24) + 3516: b881 st.w r4, (r14, 0x4) + 3518: 988a ld.w r4, (r14, 0x28) + 351a: b882 st.w r4, (r14, 0x8) + 351c: 988b ld.w r4, (r14, 0x2c) + 351e: 6d93 mov r6, r4 + 3520: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 3522: 3cb2 bseti r4, 18 + 3524: 6d18 or r4, r6 + 3526: 98c2 ld.w r6, (r14, 0x8) + 3528: 6d18 or r4, r6 + 352a: 98c1 ld.w r6, (r14, 0x4) + 352c: 6d18 or r4, r6 + 352e: 98c0 ld.w r6, (r14, 0x0) + 3530: 6d18 or r4, r6 + 3532: 6d1c or r4, r7 + 3534: 6cd0 or r3, r4 + 3536: 6c8c or r2, r3 + 3538: 6c48 or r1, r2 + 353a: 10a4 lrw r5, 0x20000024 // 3548 + 353c: 6c04 or r0, r1 + 353e: 95a0 ld.w r5, (r5, 0x0) + 3540: 6d9f mov r6, r7 + 3542: b503 st.w r0, (r5, 0xc) +} + 3544: 1403 addi r14, r14, 12 + 3546: 1484 pop r4-r7 + 3548: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +0000354c : +//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) +{ + 354c: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 354e: 6c8c or r2, r3 + 3550: 6c48 or r1, r2 + 3552: 1083 lrw r4, 0x20000024 // 355c + 3554: 6c04 or r0, r1 + 3556: 9480 ld.w r4, (r4, 0x0) + 3558: b411 st.w r0, (r4, 0x44) +} + 355a: 1481 pop r4 + 355c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +00003560 : +//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) +{ + 3560: 14c4 push r4-r7 + 3562: 1425 subi r14, r14, 20 + 3564: 1c09 addi r4, r14, 36 + 3566: 8480 ld.b r4, (r4, 0x0) + 3568: b880 st.w r4, (r14, 0x0) + 356a: 1c0a addi r4, r14, 40 + 356c: 8480 ld.b r4, (r4, 0x0) + 356e: b881 st.w r4, (r14, 0x4) + 3570: 1c0b addi r4, r14, 44 + 3572: 8480 ld.b r4, (r4, 0x0) + 3574: b882 st.w r4, (r14, 0x8) + 3576: 1c0c addi r4, r14, 48 + 3578: 8480 ld.b r4, (r4, 0x0) + 357a: b883 st.w r4, (r14, 0xc) + 357c: 1c0d addi r4, r14, 52 + 357e: 8480 ld.b r4, (r4, 0x0) + 3580: 1e10 addi r6, r14, 64 + 3582: b884 st.w r4, (r14, 0x10) + 3584: 1d0f addi r5, r14, 60 + 3586: 1c0e addi r4, r14, 56 + 3588: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 358a: 3840 cmpnei r0, 0 +{ + 358c: 1e11 addi r6, r14, 68 + 358e: 8480 ld.b r4, (r4, 0x0) + 3590: 85a0 ld.b r5, (r5, 0x0) + 3592: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 3594: 081f bt 0x35d2 // 35d2 + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 3596: 47f0 lsli r7, r7, 16 + 3598: 46d2 lsli r6, r6, 18 + 359a: 45ae lsli r5, r5, 14 + 359c: 6dd8 or r7, r6 + 359e: 6dd4 or r7, r5 + 35a0: 448c lsli r4, r4, 12 + 35a2: 6dd0 or r7, r4 + 35a4: 9884 ld.w r4, (r14, 0x10) + 35a6: 448a lsli r4, r4, 10 + 35a8: 6dd0 or r7, r4 + 35aa: 9883 ld.w r4, (r14, 0xc) + 35ac: 4488 lsli r4, r4, 8 + 35ae: 98a2 ld.w r5, (r14, 0x8) + 35b0: 6d1c or r4, r7 + 35b2: 45e6 lsli r7, r5, 6 + 35b4: 6d1c or r4, r7 + 35b6: 6c90 or r2, r4 + 35b8: 6cc8 or r3, r2 + 35ba: 9841 ld.w r2, (r14, 0x4) + 35bc: 4244 lsli r2, r2, 4 + 35be: 6cc8 or r3, r2 + 35c0: 6c4c or r1, r3 + 35c2: 9860 ld.w r3, (r14, 0x0) + 35c4: 4362 lsli r3, r3, 2 + 35c6: 1013 lrw r0, 0x20000024 // 3610 + 35c8: 6c4c or r1, r3 + 35ca: 9000 ld.w r0, (r0, 0x0) + 35cc: 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); + } +} + 35ce: 1405 addi r14, r14, 20 + 35d0: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 35d2: 3841 cmpnei r0, 1 + 35d4: 0bfd bt 0x35ce // 35ce + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 35d6: 47f0 lsli r7, r7, 16 + 35d8: 46d2 lsli r6, r6, 18 + 35da: 45ae lsli r5, r5, 14 + 35dc: 6dd8 or r7, r6 + 35de: 6dd4 or r7, r5 + 35e0: 448c lsli r4, r4, 12 + 35e2: 6dd0 or r7, r4 + 35e4: 9884 ld.w r4, (r14, 0x10) + 35e6: 448a lsli r4, r4, 10 + 35e8: 6dd0 or r7, r4 + 35ea: 9883 ld.w r4, (r14, 0xc) + 35ec: 4488 lsli r4, r4, 8 + 35ee: 98a2 ld.w r5, (r14, 0x8) + 35f0: 6d1c or r4, r7 + 35f2: 45e6 lsli r7, r5, 6 + 35f4: 6d1c or r4, r7 + 35f6: 6c90 or r2, r4 + 35f8: 6cc8 or r3, r2 + 35fa: 9841 ld.w r2, (r14, 0x4) + 35fc: 4244 lsli r2, r2, 4 + 35fe: 6cc8 or r3, r2 + 3600: 6c4c or r1, r3 + 3602: 9860 ld.w r3, (r14, 0x0) + 3604: 4362 lsli r3, r3, 2 + 3606: 1003 lrw r0, 0x20000024 // 3610 + 3608: 6c4c or r1, r3 + 360a: 9000 ld.w r0, (r0, 0x0) + 360c: b033 st.w r1, (r0, 0x4c) +} + 360e: 07e0 br 0x35ce // 35ce + 3610: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +00003614 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 3614: 1063 lrw r3, 0x20000024 // 3620 + 3616: 9340 ld.w r2, (r3, 0x0) + 3618: 9261 ld.w r3, (r2, 0x4) + 361a: 3ba0 bseti r3, 0 + 361c: b261 st.w r3, (r2, 0x4) +} + 361e: 783c jmp r15 + 3620: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +00003624 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 3624: 1063 lrw r3, 0x20000024 // 3630 + 3626: 9360 ld.w r3, (r3, 0x0) + 3628: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 362a: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 362c: b34c st.w r2, (r3, 0x30) +} + 362e: 783c jmp r15 + 3630: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +00003634 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 3634: 1066 lrw r3, 0x20000024 // 364c + if (NewState != DISABLE) + 3636: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 3638: 9360 ld.w r3, (r3, 0x0) + 363a: 237f addi r3, 128 + 363c: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 363e: 0c04 bf 0x3646 // 3646 + GPT0->IMCR |= GPT_IMSCR_X; + 3640: 6c48 or r1, r2 + 3642: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 3644: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 3646: 6885 andn r2, r1 + 3648: b356 st.w r2, (r3, 0x58) +} + 364a: 07fd br 0x3644 // 3644 + 364c: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +00003650 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 3650: 1065 lrw r3, 0x20000040 // 3664 + 3652: 3200 movi r2, 0 + 3654: 9360 ld.w r3, (r3, 0x0) + 3656: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 3658: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 365a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 365c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 365e: b344 st.w r2, (r3, 0x10) +} + 3660: 783c jmp r15 + 3662: 0000 bkpt + 3664: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00003668 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 3668: 1065 lrw r3, 0x2000003c // 367c + 366a: 3200 movi r2, 0 + 366c: 9360 ld.w r3, (r3, 0x0) + 366e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 3670: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 3672: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 3674: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 3676: b344 st.w r2, (r3, 0x10) +} + 3678: 783c jmp r15 + 367a: 0000 bkpt + 367c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00003680 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 3680: 1065 lrw r3, 0x20000038 // 3694 + 3682: 3200 movi r2, 0 + 3684: 9360 ld.w r3, (r3, 0x0) + 3686: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 3688: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 368a: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 368c: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 368e: b344 st.w r2, (r3, 0x10) +} + 3690: 783c jmp r15 + 3692: 0000 bkpt + 3694: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00003698 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 3698: 1065 lrw r3, 0x20000040 // 36ac + 369a: 320f movi r2, 15 + 369c: 9360 ld.w r3, (r3, 0x0) + 369e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36a0: 3380 movi r3, 128 + 36a2: 4366 lsli r3, r3, 6 + 36a4: 1043 lrw r2, 0xe000e100 // 36b0 + 36a6: b260 st.w r3, (r2, 0x0) +} + 36a8: 783c jmp r15 + 36aa: 0000 bkpt + 36ac: 20000040 .long 0x20000040 + 36b0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000036b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 36b4: 1065 lrw r3, 0x20000038 // 36c8 + 36b6: 320f movi r2, 15 + 36b8: 9360 ld.w r3, (r3, 0x0) + 36ba: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36bc: 3380 movi r3, 128 + 36be: 4368 lsli r3, r3, 8 + 36c0: 1043 lrw r2, 0xe000e100 // 36cc + 36c2: b260 st.w r3, (r2, 0x0) +} + 36c4: 783c jmp r15 + 36c6: 0000 bkpt + 36c8: 20000038 .long 0x20000038 + 36cc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +000036d0 : +//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) + 36d0: 3840 cmpnei r0, 0 + 36d2: 0821 bt 0x3714 // 3714 + { + if(UART_IO_G==0) + 36d4: 3940 cmpnei r1, 0 + 36d6: 080a bt 0x36ea // 36ea + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 36d8: 1177 lrw r3, 0x2000004c // 37b4 + 36da: 31ff movi r1, 255 + 36dc: 9340 ld.w r2, (r3, 0x0) + 36de: 9260 ld.w r3, (r2, 0x0) + 36e0: 68c5 andn r3, r1 + 36e2: 3ba2 bseti r3, 2 + 36e4: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 36e6: b260 st.w r3, (r2, 0x0) + 36e8: 0415 br 0x3712 // 3712 + else if(UART_IO_G==1) + 36ea: 3941 cmpnei r1, 1 + 36ec: 0813 bt 0x3712 // 3712 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 36ee: 1172 lrw r3, 0x2000004c // 37b4 + 36f0: 31f0 movi r1, 240 + 36f2: 9340 ld.w r2, (r3, 0x0) + 36f4: 9260 ld.w r3, (r2, 0x0) + 36f6: 4130 lsli r1, r1, 16 + 36f8: 68c5 andn r3, r1 + 36fa: 31e0 movi r1, 224 + 36fc: 412f lsli r1, r1, 15 + 36fe: 6cc4 or r3, r1 + 3700: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 3702: 31f0 movi r1, 240 + 3704: 9261 ld.w r3, (r2, 0x4) + 3706: 412c lsli r1, r1, 12 + 3708: 68c5 andn r3, r1 + 370a: 31e0 movi r1, 224 + 370c: 412b lsli r1, r1, 11 + 370e: 6cc4 or r3, r1 + 3710: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 3712: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 3714: 3841 cmpnei r0, 1 + 3716: 082d bt 0x3770 // 3770 + if(UART_IO_G==0) + 3718: 3940 cmpnei r1, 0 + 371a: 0814 bt 0x3742 // 3742 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 371c: 1167 lrw r3, 0x20000048 // 37b8 + 371e: 310f movi r1, 15 + 3720: 9340 ld.w r2, (r3, 0x0) + 3722: 9260 ld.w r3, (r2, 0x0) + 3724: 68c5 andn r3, r1 + 3726: 3107 movi r1, 7 + 3728: 6cc4 or r3, r1 + 372a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 372c: 32f0 movi r2, 240 + 372e: 1162 lrw r3, 0x2000004c // 37b4 + 3730: 4250 lsli r2, r2, 16 + 3732: 9320 ld.w r1, (r3, 0x0) + 3734: 9161 ld.w r3, (r1, 0x4) + 3736: 68c9 andn r3, r2 + 3738: 32e0 movi r2, 224 + 373a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 373c: 6cc8 or r3, r2 + 373e: b161 st.w r3, (r1, 0x4) + 3740: 07e9 br 0x3712 // 3712 + else if(UART_IO_G==1) + 3742: 3941 cmpnei r1, 1 + 3744: 080c bt 0x375c // 375c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 3746: 107c lrw r3, 0x2000004c // 37b4 + 3748: 32ff movi r2, 255 + 374a: 9320 ld.w r1, (r3, 0x0) + 374c: 424c lsli r2, r2, 12 + 374e: 9160 ld.w r3, (r1, 0x0) + 3750: 68c9 andn r3, r2 + 3752: 32ee movi r2, 238 + 3754: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 3756: 6cc8 or r3, r2 + 3758: b160 st.w r3, (r1, 0x0) +} + 375a: 07dc br 0x3712 // 3712 + else if(UART_IO_G==2) + 375c: 3942 cmpnei r1, 2 + 375e: 0bda bt 0x3712 // 3712 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 3760: 1075 lrw r3, 0x2000004c // 37b4 + 3762: 32ee movi r2, 238 + 3764: 9320 ld.w r1, (r3, 0x0) + 3766: 9161 ld.w r3, (r1, 0x4) + 3768: 4368 lsli r3, r3, 8 + 376a: 4b68 lsri r3, r3, 8 + 376c: 4257 lsli r2, r2, 23 + 376e: 07e7 br 0x373c // 373c + if (IO_UART_NUM==IO_UART2) + 3770: 3842 cmpnei r0, 2 + 3772: 0bd0 bt 0x3712 // 3712 + if(UART_IO_G==0) + 3774: 3940 cmpnei r1, 0 + 3776: 0809 bt 0x3788 // 3788 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 3778: 106f lrw r3, 0x2000004c // 37b4 + 377a: 31ff movi r1, 255 + 377c: 9340 ld.w r2, (r3, 0x0) + 377e: 9260 ld.w r3, (r2, 0x0) + 3780: 68c5 andn r3, r1 + 3782: 3177 movi r1, 119 + 3784: 6cc4 or r3, r1 + 3786: 07b0 br 0x36e6 // 36e6 + else if(UART_IO_G==1) + 3788: 3941 cmpnei r1, 1 + 378a: 0809 bt 0x379c // 379c + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 378c: 106a lrw r3, 0x2000004c // 37b4 + 378e: 32ee movi r2, 238 + 3790: 9320 ld.w r1, (r3, 0x0) + 3792: 9160 ld.w r3, (r1, 0x0) + 3794: 4368 lsli r3, r3, 8 + 3796: 4b68 lsri r3, r3, 8 + 3798: 4257 lsli r2, r2, 23 + 379a: 07de br 0x3756 // 3756 + else if(UART_IO_G==2) + 379c: 3942 cmpnei r1, 2 + 379e: 0bba bt 0x3712 // 3712 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 37a0: 1066 lrw r3, 0x20000048 // 37b8 + 37a2: 32ff movi r2, 255 + 37a4: 9320 ld.w r1, (r3, 0x0) + 37a6: 4250 lsli r2, r2, 16 + 37a8: 9160 ld.w r3, (r1, 0x0) + 37aa: 68c9 andn r3, r2 + 37ac: 32cc movi r2, 204 + 37ae: 424f lsli r2, r2, 15 + 37b0: 07d3 br 0x3756 // 3756 + 37b2: 0000 bkpt + 37b4: 2000004c .long 0x2000004c + 37b8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000037bc : +//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); + 37bc: 1063 lrw r3, 0x80003 // 37c8 + 37be: 6c8c or r2, r3 + 37c0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37c2: b024 st.w r1, (r0, 0x10) +} + 37c4: 783c jmp r15 + 37c6: 0000 bkpt + 37c8: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000037cc : +//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); + 37cc: 1063 lrw r3, 0x8000f // 37d8 + 37ce: 6c8c or r2, r3 + 37d0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37d2: b024 st.w r1, (r0, 0x10) +} + 37d4: 783c jmp r15 + 37d6: 0000 bkpt + 37d8: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000037dc : +//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) +{ + 37dc: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37de: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 37e0: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37e2: 5b85 subu r4, r3, r1 + 37e4: 6490 cmphs r4, r2 + 37e6: 0c02 bf 0x37ea // 37ea + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 37e8: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 37ea: 8380 ld.b r4, (r3, 0x0) + 37ec: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 37ee: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 37f0: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 37f2: 3c40 cmpnei r4, 0 + 37f4: 0bfd bt 0x37ee // 37ee + 37f6: 2300 addi r3, 1 + 37f8: 07f5 br 0x37e2 // 37e2 + +Disassembly of section .text.EPT_Stop: + +000037fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 37fc: 1068 lrw r3, 0x20000020 // 381c + 37fe: 3280 movi r2, 128 + 3800: 9360 ld.w r3, (r3, 0x0) + 3802: 608c addu r2, r3 + 3804: 1027 lrw r1, 0xa55ac73a // 3820 + 3806: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 3808: 9341 ld.w r2, (r3, 0x4) + 380a: 31fe movi r1, 254 + 380c: 6884 and r2, r1 + 380e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 3810: 3101 movi r1, 1 + 3812: 9341 ld.w r2, (r3, 0x4) + 3814: 6884 and r2, r1 + 3816: 3a40 cmpnei r2, 0 + 3818: 0bfd bt 0x3812 // 3812 +} + 381a: 783c jmp r15 + 381c: 20000020 .long 0x20000020 + 3820: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +00003824
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 3824: 14d1 push r4, r15 + + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 3826: 1099 lrw r4, 0x20000048 // 3888 + 3828: 3201 movi r2, 1 + 382a: 9400 ld.w r0, (r4, 0x0) + 382c: 3102 movi r1, 2 + 382e: e3fffd0f bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOB0,DET_RF_MODULE_PIN); + 3832: 9400 ld.w r0, (r4, 0x0) + 3834: 3102 movi r1, 2 + 3836: e3fffd7b bsr 0x332c // 332c + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 383a: 3102 movi r1, 2 + 383c: 9400 ld.w r0, (r4, 0x0) + 383e: e3fffd9b bsr 0x3374 // 3374 + 3842: 1093 lrw r4, 0x200000a0 // 388c + last_state = rf_exist; + 3844: a401 st.b r0, (r4, 0x1) + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 3846: a400 st.b r0, (r4, 0x0) + APT32F102_init(); //102 initial + 3848: e00000e8 bsr 0x3a18 // 3a18 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 384c: 1031 lrw r1, 0x5f3c // 3890 + 384e: 3000 movi r0, 0 + 3850: e00006b8 bsr 0x45c0 // 45c0 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 3854: e3fffc6a bsr 0x3128 // 3128 + + //UART2_TASK(); + Detect_WIFI_Task(); + 3858: e0000bd6 bsr 0x5004 // 5004 +// test_task(); + BackLight_Task(); + 385c: e0000bba bsr 0x4fd0 // 4fd0 + if (finish_flag == 1) { + 3860: 8462 ld.b r3, (r4, 0x2) + 3862: 3b41 cmpnei r3, 1 + 3864: 0bf8 bt 0x3854 // 3854 + Card_Read_TasK(); + 3866: e00009bf bsr 0x4be4 // 4be4 + + if(rf_exist == 0x01) + 386a: 8460 ld.b r3, (r4, 0x0) + 386c: 3b41 cmpnei r3, 1 + 386e: 0806 bt 0x387a // 387a + { + LogicCtrl_NoRF_Task(); //无RF模块轮询任务 + 3870: e0000b4c bsr 0x4f08 // 4f08 + DM_Led_Task(); + 3874: e0000c12 bsr 0x5098 // 5098 + 3878: 07ee br 0x3854 // 3854 + } + else if(rf_exist == 0x00) + 387a: 3b40 cmpnei r3, 0 + 387c: 0bec bt 0x3854 // 3854 + { + Debounce_Task(); + 387e: e0000a93 bsr 0x4da4 // 4da4 + LogicCtrl_Task(); //带RF模块执行逻辑 + 3882: e0000ac5 bsr 0x4e0c // 4e0c + 3886: 07e7 br 0x3854 // 3854 + 3888: 20000048 .long 0x20000048 + 388c: 200000a0 .long 0x200000a0 + 3890: 00005f3c .long 0x00005f3c + +Disassembly of section .text.delay_nms: + +00003894 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 3894: 14d0 push r15 + 3896: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 3898: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 389a: 3300 movi r3, 0 + j = 50* t; + 389c: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 389e: b862 st.w r3, (r14, 0x8) + j = 50* t; + 38a0: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 38a2: b860 st.w r3, (r14, 0x0) + 38a4: 9840 ld.w r2, (r14, 0x0) + 38a6: 9861 ld.w r3, (r14, 0x4) + 38a8: 64c8 cmphs r2, r3 + 38aa: 0c03 bf 0x38b0 // 38b0 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 38ac: 1403 addi r14, r14, 12 + 38ae: 1490 pop r15 + k++; + 38b0: 9862 ld.w r3, (r14, 0x8) + 38b2: 2300 addi r3, 1 + 38b4: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 38b6: e3fffc39 bsr 0x3128 // 3128 + for ( i = 0; i < j; i++ ) + 38ba: 9860 ld.w r3, (r14, 0x0) + 38bc: 2300 addi r3, 1 + 38be: 07f2 br 0x38a2 // 38a2 + +Disassembly of section .text.GPT0_CONFIG: + +000038c0 : +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + 38c0: 14d0 push r15 + 38c2: 1429 subi r14, r14, 36 + GPT_IO_Init(GPT_CHA_PB01); + 38c4: 3000 movi r0, 0 + 38c6: e3fffdc7 bsr 0x3454 // 3454 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 38ca: 3300 movi r3, 0 + 38cc: 3240 movi r2, 64 + 38ce: 3100 movi r1, 0 + 38d0: 3001 movi r0, 1 + 38d2: e3fffe11 bsr 0x34f4 // 34f4 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 38d6: 3300 movi r3, 0 + 38d8: b865 st.w r3, (r14, 0x14) + 38da: b864 st.w r3, (r14, 0x10) + 38dc: b863 st.w r3, (r14, 0xc) + 38de: b862 st.w r3, (r14, 0x8) + 38e0: b861 st.w r3, (r14, 0x4) + 38e2: b860 st.w r3, (r14, 0x0) + 38e4: 3208 movi r2, 8 + 38e6: 3100 movi r1, 0 + 38e8: 3000 movi r0, 0 + 38ea: e3fffe0f bsr 0x3508 // 3508 + if(rf_exist == 0x01) + 38ee: 1079 lrw r3, 0x200000a0 // 3950 + 38f0: 8360 ld.b r3, (r3, 0x0) + 38f2: 3b41 cmpnei r3, 1 + 38f4: 0827 bt 0x3942 // 3942 + { + GPT_Period_CMP_Write(2000,2000,0); + 38f6: 31fa movi r1, 250 + 38f8: 4123 lsli r1, r1, 3 + 38fa: 3200 movi r2, 0 + 38fc: 6c07 mov r0, r1 + } + else if(rf_exist == 0x00) + { + GPT_Period_CMP_Write(2000,0,0); + 38fe: e3fffe93 bsr 0x3624 // 3624 + } + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 3902: 3320 movi r3, 32 + 3904: 3204 movi r2, 4 + 3906: 3100 movi r1, 0 + 3908: 3001 movi r0, 1 + 390a: e3fffe21 bsr 0x354c // 354c + GPT_WaveOut_Configure(GPT_CHA,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 390e: 3300 movi r3, 0 + 3910: 3201 movi r2, 1 + 3912: b868 st.w r3, (r14, 0x20) + 3914: b867 st.w r3, (r14, 0x1c) + 3916: b866 st.w r3, (r14, 0x18) + 3918: b865 st.w r3, (r14, 0x14) + 391a: b864 st.w r3, (r14, 0x10) + 391c: b863 st.w r3, (r14, 0xc) + 391e: b842 st.w r2, (r14, 0x8) + 3920: b841 st.w r2, (r14, 0x4) + 3922: b860 st.w r3, (r14, 0x0) + 3924: 3200 movi r2, 0 + 3926: 3302 movi r3, 2 + 3928: 3100 movi r1, 0 + 392a: 3000 movi r0, 0 + 392c: e3fffe1a bsr 0x3560 // 3560 + +// GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPB,2,0,0,0,1,1,0,0,0,0); + //GPT_SyncSet_Configure(GPT_SYNCUSR0_EN,GPT_OST_CONTINUOUS,GPT_TXREARM_DIS,GPT_TRGO0SEL_SR0,GPT_TRG10SEL_SR0,GPT_AREARM_DIS); + //GPT_Trigger_Configure(GPT_SRCSEL_TRGUSR0EN,GPT_BLKINV_DIS,GPT_ALIGNMD_PRD,GPT_CROSSMD_DIS,5,5); + //GPT_EVTRG_Configure(GPT_TRGSRC0_PRD,GPT_TRGSRC1_PRD,GPT_ESYN0OE_EN,GPT_ESYN1OE_EN,GPT_CNT0INIT_EN,GPT_CNT1INIT_EN,3,3,3,3); + GPT_Start(); + 3930: e3fffe72 bsr 0x3614 // 3614 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 3934: 3180 movi r1, 128 + 3936: 4129 lsli r1, r1, 9 + 3938: 3001 movi r0, 1 + 393a: e3fffe7d bsr 0x3634 // 3634 +// GPT_INT_ENABLE(); + //INTC_ISER_WRITE(GPT0_INT); + //INTC_IWER_WRITE(GPT0_INT); +} + 393e: 1409 addi r14, r14, 36 + 3940: 1490 pop r15 + else if(rf_exist == 0x00) + 3942: 3b40 cmpnei r3, 0 + 3944: 0bdf bt 0x3902 // 3902 + GPT_Period_CMP_Write(2000,0,0); + 3946: 30fa movi r0, 250 + 3948: 3200 movi r2, 0 + 394a: 3100 movi r1, 0 + 394c: 4003 lsli r0, r0, 3 + 394e: 07d8 br 0x38fe // 38fe + 3950: 200000a0 .long 0x200000a0 + +Disassembly of section .text.BT_CONFIG: + +00003954 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 3954: 14d2 push r4-r5, r15 + 3956: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 3958: 1095 lrw r4, 0x20000008 // 39ac + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 395a: 3500 movi r5, 0 + BT_DeInit(BT1); + 395c: 9400 ld.w r0, (r4, 0x0) + 395e: e3fffd2d bsr 0x33b8 // 33b8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 3962: 9400 ld.w r0, (r4, 0x0) + 3964: b8a1 st.w r5, (r14, 0x4) + 3966: b8a0 st.w r5, (r14, 0x0) + 3968: 3308 movi r3, 8 + 396a: 3200 movi r2, 0 + 396c: 3101 movi r1, 1 + 396e: e3fffd3c bsr 0x33e6 // 33e6 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 3972: 3380 movi r3, 128 + 3974: 4363 lsli r3, r3, 3 + 3976: b861 st.w r3, (r14, 0x4) + 3978: 9400 ld.w r0, (r4, 0x0) + 397a: 3300 movi r3, 0 + 397c: b8a3 st.w r5, (r14, 0xc) + 397e: b8a2 st.w r5, (r14, 0x8) + 3980: b8a0 st.w r5, (r14, 0x0) + 3982: 3200 movi r2, 0 + 3984: 3180 movi r1, 128 + 3986: e3fffd3c bsr 0x33fe // 33fe + BT_Period_CMP_Write(BT1,4780,1); + 398a: 3201 movi r2, 1 + 398c: 1029 lrw r1, 0x12ac // 39b0 + 398e: 9400 ld.w r0, (r4, 0x0) + 3990: e3fffd4d bsr 0x342a // 342a + BT_Start(BT1); + 3994: 9400 ld.w r0, (r4, 0x0) + 3996: e3fffd1f bsr 0x33d4 // 33d4 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 399a: 9400 ld.w r0, (r4, 0x0) + 399c: 3202 movi r2, 2 + 399e: 3101 movi r1, 1 + 39a0: e3fffd48 bsr 0x3430 // 3430 + BT1_INT_ENABLE(); + 39a4: e3fffd50 bsr 0x3444 // 3444 + +} + 39a8: 1404 addi r14, r14, 16 + 39aa: 1492 pop r4-r5, r15 + 39ac: 20000008 .long 0x20000008 + 39b0: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +000039b4 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 39b4: 14d0 push r15 + 39b6: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 39b8: e3fffb04 bsr 0x2fc0 // 2fc0 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 39bc: 3101 movi r1, 1 + 39be: 3001 movi r0, 1 + 39c0: e3fffb26 bsr 0x300c // 300c + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 39c4: 3000 movi r0, 0 + 39c6: e3fffb7f bsr 0x30c4 // 30c4 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 39ca: 3180 movi r1, 128 + 39cc: 3308 movi r3, 8 + 39ce: 3200 movi r2, 0 + 39d0: 4121 lsli r1, r1, 1 + 39d2: 3002 movi r0, 2 + 39d4: e3fffb34 bsr 0x303c // 303c +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 39d8: 3080 movi r0, 128 + 39da: 3118 movi r1, 24 + 39dc: 4002 lsli r0, r0, 2 + 39de: e3fffbaf bsr 0x313c // 313c + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 39e2: 3001 movi r0, 1 + 39e4: e3fffb84 bsr 0x30ec // 30ec + SYSCON_IWDCNT_Reload(); //reload WDT + 39e8: e3fffba0 bsr 0x3128 // 3128 + IWDT_Int_Enable(); + 39ec: e3fffbd2 bsr 0x3190 // 3190 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 39f0: 3340 movi r3, 64 + 39f2: b860 st.w r3, (r14, 0x0) + 39f4: 31c0 movi r1, 192 + 39f6: 3380 movi r3, 128 + 39f8: 4364 lsli r3, r3, 4 + 39fa: 3200 movi r2, 0 + 39fc: 4123 lsli r1, r1, 3 + 39fe: 3000 movi r0, 0 + 3a00: e3fffbaa bsr 0x3154 // 3154 + LVD_Int_Enable(); + 3a04: e3fffbb8 bsr 0x3174 // 3174 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 3a08: e3fffbf2 bsr 0x31ec // 31ec + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 3a0c: 3000 movi r0, 0 + 3a0e: e0000f83 bsr 0x5914 // 5914 + +} + 3a12: 1401 addi r14, r14, 4 + 3a14: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00003a18 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 3a18: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a1a: 1072 lrw r3, 0x2000005c // 3a60 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a1c: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a1e: 9340 ld.w r2, (r3, 0x0) + 3a20: 1071 lrw r3, 0xfffffff // 3a64 + 3a22: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 3a24: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a26: 926c ld.w r3, (r2, 0x30) + 3a28: 68c4 and r3, r1 + 3a2a: 3b40 cmpnei r3, 0 + 3a2c: 0ffd bf 0x3a26 // 3a26 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 3a2e: e3ffffc3 bsr 0x39b4 // 39b4 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 3a32: e0000525 bsr 0x447c // 447c + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 3a36: e3fffbe1 bsr 0x31f8 // 31f8 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 3a3a: 3101 movi r1, 1 + 3a3c: 300f movi r0, 15 + 3a3e: e3fffbef bsr 0x321c // 321c +// Set_INT_Priority(SIO_IRQ,1); //SIO优先级最高 +// + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 3a42: 3102 movi r1, 2 + 3a44: 3019 movi r0, 25 + 3a46: e3fffbeb bsr 0x321c // 321c +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 3a4a: e3ffff85 bsr 0x3954 // 3954 + + GPT0_CONFIG(); + 3a4e: e3ffff39 bsr 0x38c0 // 38c0 + + UARTx_Init(UART_1,NULL); + 3a52: 3100 movi r1, 0 + 3a54: 3001 movi r0, 1 + 3a56: e0000517 bsr 0x4484 // 4484 +// UARTx_Init(UART_2,NULL); + + RC522_Init(); + 3a5a: e0000713 bsr 0x4880 // 4880 +// } +// else if(rf_exist == 0x00) //带无线模块初始化 +// { +// LogicCtrl_Init(); +// } +} + 3a5e: 1490 pop r15 + 3a60: 2000005c .long 0x2000005c + 3a64: 0fffffff .long 0x0fffffff + +Disassembly of section .text.SYSCONIntHandler: + +00003a68 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 3a68: 1460 nie + 3a6a: 1462 ipush + // ISR content ... + nop; + 3a6c: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 3a6e: 117a lrw r3, 0x2000005c // 3b54 + 3a70: 3280 movi r2, 128 + 3a72: 9360 ld.w r3, (r3, 0x0) + 3a74: 60c8 addu r3, r2 + 3a76: 9323 ld.w r1, (r3, 0xc) + 3a78: 3001 movi r0, 1 + 3a7a: 6840 and r1, r0 + 3a7c: 3940 cmpnei r1, 0 + 3a7e: 0c04 bf 0x3a86 // 3a86 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 3a80: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 3a82: 1463 ipop + 3a84: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 3a86: 9323 ld.w r1, (r3, 0xc) + 3a88: 3002 movi r0, 2 + 3a8a: 6840 and r1, r0 + 3a8c: 3940 cmpnei r1, 0 + 3a8e: 0bf9 bt 0x3a80 // 3a80 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 3a90: 9323 ld.w r1, (r3, 0xc) + 3a92: 3008 movi r0, 8 + 3a94: 6840 and r1, r0 + 3a96: 3940 cmpnei r1, 0 + 3a98: 0bf4 bt 0x3a80 // 3a80 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 3a9a: 9323 ld.w r1, (r3, 0xc) + 3a9c: 3010 movi r0, 16 + 3a9e: 6840 and r1, r0 + 3aa0: 3940 cmpnei r1, 0 + 3aa2: 0bef bt 0x3a80 // 3a80 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 3aa4: 9323 ld.w r1, (r3, 0xc) + 3aa6: 6848 and r1, r2 + 3aa8: 3940 cmpnei r1, 0 + 3aaa: 0c03 bf 0x3ab0 // 3ab0 + SYSCON->ICR = CMD_ERR_ST; + 3aac: b341 st.w r2, (r3, 0x4) +} + 3aae: 07ea br 0x3a82 // 3a82 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 3ab0: 3280 movi r2, 128 + 3ab2: 9323 ld.w r1, (r3, 0xc) + 3ab4: 4241 lsli r2, r2, 1 + 3ab6: 6848 and r1, r2 + 3ab8: 3940 cmpnei r1, 0 + 3aba: 0bf9 bt 0x3aac // 3aac + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 3abc: 3280 movi r2, 128 + 3abe: 9323 ld.w r1, (r3, 0xc) + 3ac0: 4242 lsli r2, r2, 2 + 3ac2: 6848 and r1, r2 + 3ac4: 3940 cmpnei r1, 0 + 3ac6: 0bf3 bt 0x3aac // 3aac + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 3ac8: 3280 movi r2, 128 + 3aca: 9323 ld.w r1, (r3, 0xc) + 3acc: 4243 lsli r2, r2, 3 + 3ace: 6848 and r1, r2 + 3ad0: 3940 cmpnei r1, 0 + 3ad2: 0bed bt 0x3aac // 3aac + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 3ad4: 3280 movi r2, 128 + 3ad6: 9323 ld.w r1, (r3, 0xc) + 3ad8: 4244 lsli r2, r2, 4 + 3ada: 6848 and r1, r2 + 3adc: 3940 cmpnei r1, 0 + 3ade: 0c03 bf 0x3ae4 // 3ae4 + nop; + 3ae0: 6c03 mov r0, r0 + 3ae2: 07e5 br 0x3aac // 3aac + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 3ae4: 3280 movi r2, 128 + 3ae6: 9323 ld.w r1, (r3, 0xc) + 3ae8: 4245 lsli r2, r2, 5 + 3aea: 6848 and r1, r2 + 3aec: 3940 cmpnei r1, 0 + 3aee: 0bdf bt 0x3aac // 3aac + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 3af0: 3280 movi r2, 128 + 3af2: 9323 ld.w r1, (r3, 0xc) + 3af4: 4246 lsli r2, r2, 6 + 3af6: 6848 and r1, r2 + 3af8: 3940 cmpnei r1, 0 + 3afa: 0bd9 bt 0x3aac // 3aac + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 3afc: 3280 movi r2, 128 + 3afe: 9323 ld.w r1, (r3, 0xc) + 3b00: 4247 lsli r2, r2, 7 + 3b02: 6848 and r1, r2 + 3b04: 3940 cmpnei r1, 0 + 3b06: 0bd3 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 3b08: 3280 movi r2, 128 + 3b0a: 9323 ld.w r1, (r3, 0xc) + 3b0c: 424b lsli r2, r2, 11 + 3b0e: 6848 and r1, r2 + 3b10: 3940 cmpnei r1, 0 + 3b12: 0bcd bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 3b14: 3280 movi r2, 128 + 3b16: 9323 ld.w r1, (r3, 0xc) + 3b18: 424c lsli r2, r2, 12 + 3b1a: 6848 and r1, r2 + 3b1c: 3940 cmpnei r1, 0 + 3b1e: 0bc7 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3b20: 3280 movi r2, 128 + 3b22: 9323 ld.w r1, (r3, 0xc) + 3b24: 424d lsli r2, r2, 13 + 3b26: 6848 and r1, r2 + 3b28: 3940 cmpnei r1, 0 + 3b2a: 0bc1 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 3b2c: 3280 movi r2, 128 + 3b2e: 9323 ld.w r1, (r3, 0xc) + 3b30: 424e lsli r2, r2, 14 + 3b32: 6848 and r1, r2 + 3b34: 3940 cmpnei r1, 0 + 3b36: 0bbb bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 3b38: 3280 movi r2, 128 + 3b3a: 9323 ld.w r1, (r3, 0xc) + 3b3c: 424f lsli r2, r2, 15 + 3b3e: 6848 and r1, r2 + 3b40: 3940 cmpnei r1, 0 + 3b42: 0bb5 bt 0x3aac // 3aac + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3b44: 3280 movi r2, 128 + 3b46: 9323 ld.w r1, (r3, 0xc) + 3b48: 4256 lsli r2, r2, 22 + 3b4a: 6848 and r1, r2 + 3b4c: 3940 cmpnei r1, 0 + 3b4e: 0baf bt 0x3aac // 3aac + 3b50: 0799 br 0x3a82 // 3a82 + 3b52: 0000 bkpt + 3b54: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00003b58 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 3b58: 1460 nie + 3b5a: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 3b5c: 1078 lrw r3, 0x20000060 // 3bbc + 3b5e: 3101 movi r1, 1 + 3b60: 9360 ld.w r3, (r3, 0x0) + 3b62: 934b ld.w r2, (r3, 0x2c) + 3b64: 6884 and r2, r1 + 3b66: 3a40 cmpnei r2, 0 + 3b68: 0c04 bf 0x3b70 // 3b70 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 3b6a: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 3b6c: 1463 ipop + 3b6e: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 3b70: 934b ld.w r2, (r3, 0x2c) + 3b72: 3102 movi r1, 2 + 3b74: 6884 and r2, r1 + 3b76: 3a40 cmpnei r2, 0 + 3b78: 0bf9 bt 0x3b6a // 3b6a + else if(IFC->MISR&PEP_END_INT) + 3b7a: 934b ld.w r2, (r3, 0x2c) + 3b7c: 3104 movi r1, 4 + 3b7e: 6884 and r2, r1 + 3b80: 3a40 cmpnei r2, 0 + 3b82: 0bf4 bt 0x3b6a // 3b6a + else if(IFC->MISR&PROT_ERR_INT) + 3b84: 3280 movi r2, 128 + 3b86: 932b ld.w r1, (r3, 0x2c) + 3b88: 4245 lsli r2, r2, 5 + 3b8a: 6848 and r1, r2 + 3b8c: 3940 cmpnei r1, 0 + 3b8e: 0c03 bf 0x3b94 // 3b94 + IFC->ICR=OVW_ERR_INT; + 3b90: b34c st.w r2, (r3, 0x30) +} + 3b92: 07ed br 0x3b6c // 3b6c + else if(IFC->MISR&UDEF_ERR_INT) + 3b94: 3280 movi r2, 128 + 3b96: 932b ld.w r1, (r3, 0x2c) + 3b98: 4246 lsli r2, r2, 6 + 3b9a: 6848 and r1, r2 + 3b9c: 3940 cmpnei r1, 0 + 3b9e: 0bf9 bt 0x3b90 // 3b90 + else if(IFC->MISR&ADDR_ERR_INT) + 3ba0: 3280 movi r2, 128 + 3ba2: 932b ld.w r1, (r3, 0x2c) + 3ba4: 4247 lsli r2, r2, 7 + 3ba6: 6848 and r1, r2 + 3ba8: 3940 cmpnei r1, 0 + 3baa: 0bf3 bt 0x3b90 // 3b90 + else if(IFC->MISR&OVW_ERR_INT) + 3bac: 3280 movi r2, 128 + 3bae: 932b ld.w r1, (r3, 0x2c) + 3bb0: 4248 lsli r2, r2, 8 + 3bb2: 6848 and r1, r2 + 3bb4: 3940 cmpnei r1, 0 + 3bb6: 0bed bt 0x3b90 // 3b90 + 3bb8: 07da br 0x3b6c // 3b6c + 3bba: 0000 bkpt + 3bbc: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003bc0 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3bc0: 1460 nie + 3bc2: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3bc4: 1078 lrw r3, 0x20000050 // 3c24 + 3bc6: 3101 movi r1, 1 + 3bc8: 9360 ld.w r3, (r3, 0x0) + 3bca: 9348 ld.w r2, (r3, 0x20) + 3bcc: 6884 and r2, r1 + 3bce: 3a40 cmpnei r2, 0 + 3bd0: 0c04 bf 0x3bd8 // 3bd8 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3bd2: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 3bd4: 1463 ipop + 3bd6: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 3bd8: 9348 ld.w r2, (r3, 0x20) + 3bda: 3102 movi r1, 2 + 3bdc: 6884 and r2, r1 + 3bde: 3a40 cmpnei r2, 0 + 3be0: 0bf9 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3be2: 9348 ld.w r2, (r3, 0x20) + 3be4: 3104 movi r1, 4 + 3be6: 6884 and r2, r1 + 3be8: 3a40 cmpnei r2, 0 + 3bea: 0bf4 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3bec: 9348 ld.w r2, (r3, 0x20) + 3bee: 3110 movi r1, 16 + 3bf0: 6884 and r2, r1 + 3bf2: 3a40 cmpnei r2, 0 + 3bf4: 0bef bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 3bf6: 9348 ld.w r2, (r3, 0x20) + 3bf8: 3120 movi r1, 32 + 3bfa: 6884 and r2, r1 + 3bfc: 3a40 cmpnei r2, 0 + 3bfe: 0bea bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3c00: 9348 ld.w r2, (r3, 0x20) + 3c02: 3140 movi r1, 64 + 3c04: 6884 and r2, r1 + 3c06: 3a40 cmpnei r2, 0 + 3c08: 0be5 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 3c0a: 9348 ld.w r2, (r3, 0x20) + 3c0c: 3180 movi r1, 128 + 3c0e: 6884 and r2, r1 + 3c10: 3a40 cmpnei r2, 0 + 3c12: 0be0 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 3c14: 3280 movi r2, 128 + 3c16: 9328 ld.w r1, (r3, 0x20) + 3c18: 4249 lsli r2, r2, 9 + 3c1a: 6848 and r1, r2 + 3c1c: 3940 cmpnei r1, 0 + 3c1e: 0fdb bf 0x3bd4 // 3bd4 + ADC0->CSR = ADC12_SEQ_END0; + 3c20: b347 st.w r2, (r3, 0x1c) +} + 3c22: 07d9 br 0x3bd4 // 3bd4 + 3c24: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003c28 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3c28: 1460 nie + 3c2a: 1462 ipush + 3c2c: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3c2e: 1387 lrw r4, 0x20000020 // 3dc8 + 3c30: 3280 movi r2, 128 + 3c32: 9460 ld.w r3, (r4, 0x0) + 3c34: 60c8 addu r3, r2 + 3c36: 9335 ld.w r1, (r3, 0x54) + 3c38: 3001 movi r0, 1 + 3c3a: 6840 and r1, r0 + 3c3c: 3940 cmpnei r1, 0 + 3c3e: 0c03 bf 0x3c44 // 3c44 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 3c40: b317 st.w r0, (r3, 0x5c) + 3c42: 0424 br 0x3c8a // 3c8a + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3c44: 9335 ld.w r1, (r3, 0x54) + 3c46: 3002 movi r0, 2 + 3c48: 6840 and r1, r0 + 3c4a: 3940 cmpnei r1, 0 + 3c4c: 0bfa bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3c4e: 9335 ld.w r1, (r3, 0x54) + 3c50: 3004 movi r0, 4 + 3c52: 6840 and r1, r0 + 3c54: 3940 cmpnei r1, 0 + 3c56: 0bf5 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3c58: 9335 ld.w r1, (r3, 0x54) + 3c5a: 3008 movi r0, 8 + 3c5c: 6840 and r1, r0 + 3c5e: 3940 cmpnei r1, 0 + 3c60: 0bf0 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3c62: 9335 ld.w r1, (r3, 0x54) + 3c64: 3010 movi r0, 16 + 3c66: 6840 and r1, r0 + 3c68: 3940 cmpnei r1, 0 + 3c6a: 0c1f bf 0x3ca8 // 3ca8 + EPT0->ICR=EPT_CAP_LD0; + 3c6c: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3c6e: 3200 movi r2, 0 + 3c70: 3101 movi r1, 1 + 3c72: 3000 movi r0, 0 + 3c74: e3fffa9c bsr 0x31ac // 31ac + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 3c78: 3201 movi r2, 1 + 3c7a: 3101 movi r1, 1 + 3c7c: 3001 movi r0, 1 + 3c7e: e3fffa97 bsr 0x31ac // 31ac + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3c82: 9460 ld.w r3, (r4, 0x0) + 3c84: 934b ld.w r2, (r3, 0x2c) + 3c86: 1272 lrw r3, 0x2000037c // 3dcc + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3c88: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 3c8a: 9460 ld.w r3, (r4, 0x0) + 3c8c: 3280 movi r2, 128 + 3c8e: 60c8 addu r3, r2 + 3c90: 932b ld.w r1, (r3, 0x2c) + 3c92: 3001 movi r0, 1 + 3c94: 6840 and r1, r0 + 3c96: 3940 cmpnei r1, 0 + 3c98: 0c61 bf 0x3d5a // 3d5a + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 3c9a: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 3c9c: d9ee2001 ld.w r15, (r14, 0x4) + 3ca0: 9880 ld.w r4, (r14, 0x0) + 3ca2: 1402 addi r14, r14, 8 + 3ca4: 1463 ipop + 3ca6: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 3ca8: 9335 ld.w r1, (r3, 0x54) + 3caa: 3020 movi r0, 32 + 3cac: 6840 and r1, r0 + 3cae: 3940 cmpnei r1, 0 + 3cb0: 0c10 bf 0x3cd0 // 3cd0 + EPT0->ICR=EPT_CAP_LD1; + 3cb2: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3cb4: 3200 movi r2, 0 + 3cb6: 3101 movi r1, 1 + 3cb8: 3001 movi r0, 1 + 3cba: e3fffa79 bsr 0x31ac // 31ac + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3cbe: 3201 movi r2, 1 + 3cc0: 3101 movi r1, 1 + 3cc2: 3000 movi r0, 0 + 3cc4: e3fffa74 bsr 0x31ac // 31ac + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3cc8: 9460 ld.w r3, (r4, 0x0) + 3cca: 934c ld.w r2, (r3, 0x30) + 3ccc: 1261 lrw r3, 0x20000378 // 3dd0 + 3cce: 07dd br 0x3c88 // 3c88 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3cd0: 9335 ld.w r1, (r3, 0x54) + 3cd2: 3040 movi r0, 64 + 3cd4: 6840 and r1, r0 + 3cd6: 3940 cmpnei r1, 0 + 3cd8: 0bb4 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 3cda: 9335 ld.w r1, (r3, 0x54) + 3cdc: 6848 and r1, r2 + 3cde: 3940 cmpnei r1, 0 + 3ce0: 0c03 bf 0x3ce6 // 3ce6 + EPT0->ICR=EPT_CDD; + 3ce2: b357 st.w r2, (r3, 0x5c) + 3ce4: 07d3 br 0x3c8a // 3c8a + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 3ce6: 3280 movi r2, 128 + 3ce8: 9335 ld.w r1, (r3, 0x54) + 3cea: 4241 lsli r2, r2, 1 + 3cec: 6848 and r1, r2 + 3cee: 3940 cmpnei r1, 0 + 3cf0: 0bf9 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3cf2: 3280 movi r2, 128 + 3cf4: 9335 ld.w r1, (r3, 0x54) + 3cf6: 4242 lsli r2, r2, 2 + 3cf8: 6848 and r1, r2 + 3cfa: 3940 cmpnei r1, 0 + 3cfc: 0bf3 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3cfe: 3280 movi r2, 128 + 3d00: 9335 ld.w r1, (r3, 0x54) + 3d02: 4243 lsli r2, r2, 3 + 3d04: 6848 and r1, r2 + 3d06: 3940 cmpnei r1, 0 + 3d08: 0bed bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 3d0a: 3280 movi r2, 128 + 3d0c: 9335 ld.w r1, (r3, 0x54) + 3d0e: 4244 lsli r2, r2, 4 + 3d10: 6848 and r1, r2 + 3d12: 3940 cmpnei r1, 0 + 3d14: 0be7 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 3d16: 3280 movi r2, 128 + 3d18: 9335 ld.w r1, (r3, 0x54) + 3d1a: 4245 lsli r2, r2, 5 + 3d1c: 6848 and r1, r2 + 3d1e: 3940 cmpnei r1, 0 + 3d20: 0be1 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3d22: 3280 movi r2, 128 + 3d24: 9335 ld.w r1, (r3, 0x54) + 3d26: 4246 lsli r2, r2, 6 + 3d28: 6848 and r1, r2 + 3d2a: 3940 cmpnei r1, 0 + 3d2c: 0bdb bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3d2e: 3280 movi r2, 128 + 3d30: 9335 ld.w r1, (r3, 0x54) + 3d32: 4247 lsli r2, r2, 7 + 3d34: 6848 and r1, r2 + 3d36: 3940 cmpnei r1, 0 + 3d38: 0bd5 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 3d3a: 3280 movi r2, 128 + 3d3c: 9335 ld.w r1, (r3, 0x54) + 3d3e: 4248 lsli r2, r2, 8 + 3d40: 6848 and r1, r2 + 3d42: 3940 cmpnei r1, 0 + 3d44: 0bcf bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 3d46: 3280 movi r2, 128 + 3d48: 9335 ld.w r1, (r3, 0x54) + 3d4a: 4249 lsli r2, r2, 9 + 3d4c: 6848 and r1, r2 + 3d4e: 3940 cmpnei r1, 0 + 3d50: 0f9d bf 0x3c8a // 3c8a + EPT0->ICR=EPT_PEND; + 3d52: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3d54: e3fffd54 bsr 0x37fc // 37fc + 3d58: 0799 br 0x3c8a // 3c8a + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 3d5a: 932b ld.w r1, (r3, 0x2c) + 3d5c: 3002 movi r0, 2 + 3d5e: 6840 and r1, r0 + 3d60: 3940 cmpnei r1, 0 + 3d62: 0b9c bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3d64: 932b ld.w r1, (r3, 0x2c) + 3d66: 3004 movi r0, 4 + 3d68: 6840 and r1, r0 + 3d6a: 3940 cmpnei r1, 0 + 3d6c: 0b97 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3d6e: 932b ld.w r1, (r3, 0x2c) + 3d70: 3008 movi r0, 8 + 3d72: 6840 and r1, r0 + 3d74: 3940 cmpnei r1, 0 + 3d76: 0b92 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 3d78: 932b ld.w r1, (r3, 0x2c) + 3d7a: 3010 movi r0, 16 + 3d7c: 6840 and r1, r0 + 3d7e: 3940 cmpnei r1, 0 + 3d80: 0b8d bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3d82: 932b ld.w r1, (r3, 0x2c) + 3d84: 3020 movi r0, 32 + 3d86: 6840 and r1, r0 + 3d88: 3940 cmpnei r1, 0 + 3d8a: 0b88 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3d8c: 932b ld.w r1, (r3, 0x2c) + 3d8e: 3040 movi r0, 64 + 3d90: 6840 and r1, r0 + 3d92: 3940 cmpnei r1, 0 + 3d94: 0b83 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 3d96: 932b ld.w r1, (r3, 0x2c) + 3d98: 6848 and r1, r2 + 3d9a: 3940 cmpnei r1, 0 + 3d9c: 0c03 bf 0x3da2 // 3da2 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3d9e: b34d st.w r2, (r3, 0x34) +} + 3da0: 077e br 0x3c9c // 3c9c + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3da2: 3280 movi r2, 128 + 3da4: 932b ld.w r1, (r3, 0x2c) + 3da6: 4241 lsli r2, r2, 1 + 3da8: 6848 and r1, r2 + 3daa: 3940 cmpnei r1, 0 + 3dac: 0bf9 bt 0x3d9e // 3d9e + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3dae: 3280 movi r2, 128 + 3db0: 932b ld.w r1, (r3, 0x2c) + 3db2: 4242 lsli r2, r2, 2 + 3db4: 6848 and r1, r2 + 3db6: 3940 cmpnei r1, 0 + 3db8: 0bf3 bt 0x3d9e // 3d9e + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 3dba: 3280 movi r2, 128 + 3dbc: 932b ld.w r1, (r3, 0x2c) + 3dbe: 4243 lsli r2, r2, 3 + 3dc0: 6848 and r1, r2 + 3dc2: 3940 cmpnei r1, 0 + 3dc4: 0bed bt 0x3d9e // 3d9e + 3dc6: 076b br 0x3c9c // 3c9c + 3dc8: 20000020 .long 0x20000020 + 3dcc: 2000037c .long 0x2000037c + 3dd0: 20000378 .long 0x20000378 + +Disassembly of section .text.WWDTHandler: + +00003dd4 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3dd4: 1460 nie + 3dd6: 1462 ipush + 3dd8: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 3dda: 10ab lrw r5, 0x20000010 // 3e04 + 3ddc: 3401 movi r4, 1 + 3dde: 9560 ld.w r3, (r5, 0x0) + 3de0: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3de2: 30ff movi r0, 255 + 3de4: e3fffae2 bsr 0x33a8 // 33a8 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 3de8: 9540 ld.w r2, (r5, 0x0) + 3dea: 9263 ld.w r3, (r2, 0xc) + 3dec: 68d0 and r3, r4 + 3dee: 3b40 cmpnei r3, 0 + 3df0: 0c02 bf 0x3df4 // 3df4 + { + WWDT->ICR = WWDT_EVI; + 3df2: b285 st.w r4, (r2, 0x14) + } +} + 3df4: d9ee2002 ld.w r15, (r14, 0x8) + 3df8: 98a1 ld.w r5, (r14, 0x4) + 3dfa: 9880 ld.w r4, (r14, 0x0) + 3dfc: 1403 addi r14, r14, 12 + 3dfe: 1463 ipop + 3e00: 1461 nir + 3e02: 0000 bkpt + 3e04: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00003e08 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 3e08: 1460 nie + 3e0a: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3e0c: 107e lrw r3, 0x20000024 // 3e84 + 3e0e: 3101 movi r1, 1 + 3e10: 9360 ld.w r3, (r3, 0x0) + 3e12: 237f addi r3, 128 + 3e14: 9355 ld.w r2, (r3, 0x54) + 3e16: 6884 and r2, r1 + 3e18: 3a40 cmpnei r2, 0 + 3e1a: 0c04 bf 0x3e22 // 3e22 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 3e1c: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 3e1e: 1463 ipop + 3e20: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3e22: 9355 ld.w r2, (r3, 0x54) + 3e24: 3102 movi r1, 2 + 3e26: 6884 and r2, r1 + 3e28: 3a40 cmpnei r2, 0 + 3e2a: 0bf9 bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3e2c: 9355 ld.w r2, (r3, 0x54) + 3e2e: 3110 movi r1, 16 + 3e30: 6884 and r2, r1 + 3e32: 3a40 cmpnei r2, 0 + 3e34: 0bf4 bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 3e36: 9355 ld.w r2, (r3, 0x54) + 3e38: 3120 movi r1, 32 + 3e3a: 6884 and r2, r1 + 3e3c: 3a40 cmpnei r2, 0 + 3e3e: 0bef bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3e40: 3280 movi r2, 128 + 3e42: 9335 ld.w r1, (r3, 0x54) + 3e44: 4241 lsli r2, r2, 1 + 3e46: 6848 and r1, r2 + 3e48: 3940 cmpnei r1, 0 + 3e4a: 0c03 bf 0x3e50 // 3e50 + GPT0->ICR = GPT_INT_PEND; + 3e4c: b357 st.w r2, (r3, 0x5c) +} + 3e4e: 07e8 br 0x3e1e // 3e1e + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3e50: 3280 movi r2, 128 + 3e52: 9335 ld.w r1, (r3, 0x54) + 3e54: 4242 lsli r2, r2, 2 + 3e56: 6848 and r1, r2 + 3e58: 3940 cmpnei r1, 0 + 3e5a: 0bf9 bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3e5c: 3280 movi r2, 128 + 3e5e: 9335 ld.w r1, (r3, 0x54) + 3e60: 4243 lsli r2, r2, 3 + 3e62: 6848 and r1, r2 + 3e64: 3940 cmpnei r1, 0 + 3e66: 0bf3 bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 3e68: 3280 movi r2, 128 + 3e6a: 9335 ld.w r1, (r3, 0x54) + 3e6c: 4244 lsli r2, r2, 4 + 3e6e: 6848 and r1, r2 + 3e70: 3940 cmpnei r1, 0 + 3e72: 0bed bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3e74: 3280 movi r2, 128 + 3e76: 9335 ld.w r1, (r3, 0x54) + 3e78: 4249 lsli r2, r2, 9 + 3e7a: 6848 and r1, r2 + 3e7c: 3940 cmpnei r1, 0 + 3e7e: 0be7 bt 0x3e4c // 3e4c + 3e80: 07cf br 0x3e1e // 3e1e + 3e82: 0000 bkpt + 3e84: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00003e88 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 3e88: 1460 nie + 3e8a: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3e8c: 1079 lrw r3, 0x20000018 // 3ef0 + 3e8e: 3101 movi r1, 1 + 3e90: 9360 ld.w r3, (r3, 0x0) + 3e92: 934a ld.w r2, (r3, 0x28) + 3e94: 6884 and r2, r1 + 3e96: 3a40 cmpnei r2, 0 + 3e98: 0c14 bf 0x3ec0 // 3ec0 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 3e9a: 1057 lrw r2, 0xca53 // 3ef4 + RTC->ICR=ALRA_INT; + 3e9c: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3e9e: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3ea0: 9342 ld.w r2, (r3, 0x8) + 3ea2: 6c84 or r2, r1 + 3ea4: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 3ea6: 3280 movi r2, 128 + 3ea8: 424d lsli r2, r2, 13 + 3eaa: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3eac: 3102 movi r1, 2 + 3eae: 9342 ld.w r2, (r3, 0x8) + 3eb0: 6884 and r2, r1 + 3eb2: 3a40 cmpnei r2, 0 + 3eb4: 0bfd bt 0x3eae // 3eae + RTC->CR &= ~0x1; + 3eb6: 9342 ld.w r2, (r3, 0x8) + 3eb8: 3a80 bclri r2, 0 + 3eba: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 3ebc: 1463 ipop + 3ebe: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3ec0: 934a ld.w r2, (r3, 0x28) + 3ec2: 3102 movi r1, 2 + 3ec4: 6884 and r2, r1 + 3ec6: 3a40 cmpnei r2, 0 + 3ec8: 0c03 bf 0x3ece // 3ece + RTC->ICR=RTC_TRGEV1_INT; + 3eca: b32b st.w r1, (r3, 0x2c) +} + 3ecc: 07f8 br 0x3ebc // 3ebc + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3ece: 934a ld.w r2, (r3, 0x28) + 3ed0: 3104 movi r1, 4 + 3ed2: 6884 and r2, r1 + 3ed4: 3a40 cmpnei r2, 0 + 3ed6: 0bfa bt 0x3eca // 3eca + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 3ed8: 934a ld.w r2, (r3, 0x28) + 3eda: 3108 movi r1, 8 + 3edc: 6884 and r2, r1 + 3ede: 3a40 cmpnei r2, 0 + 3ee0: 0bf5 bt 0x3eca // 3eca + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3ee2: 934a ld.w r2, (r3, 0x28) + 3ee4: 3110 movi r1, 16 + 3ee6: 6884 and r2, r1 + 3ee8: 3a40 cmpnei r2, 0 + 3eea: 0bf0 bt 0x3eca // 3eca + 3eec: 07e8 br 0x3ebc // 3ebc + 3eee: 0000 bkpt + 3ef0: 20000018 .long 0x20000018 + 3ef4: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00003ef8 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 3ef8: 1460 nie + 3efa: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3efc: 106d lrw r3, 0x20000040 // 3f30 + 3efe: 3102 movi r1, 2 + 3f00: 9360 ld.w r3, (r3, 0x0) + 3f02: 9343 ld.w r2, (r3, 0xc) + 3f04: 6884 and r2, r1 + 3f06: 3a40 cmpnei r2, 0 + 3f08: 0c03 bf 0x3f0e // 3f0e + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 3f0a: b323 st.w r1, (r3, 0xc) + } +} + 3f0c: 0410 br 0x3f2c // 3f2c + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f0e: 9343 ld.w r2, (r3, 0xc) + 3f10: 3101 movi r1, 1 + 3f12: 6884 and r2, r1 + 3f14: 3a40 cmpnei r2, 0 + 3f16: 0bfa bt 0x3f0a // 3f0a + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f18: 9343 ld.w r2, (r3, 0xc) + 3f1a: 3108 movi r1, 8 + 3f1c: 6884 and r2, r1 + 3f1e: 3a40 cmpnei r2, 0 + 3f20: 0bf5 bt 0x3f0a // 3f0a + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f22: 9343 ld.w r2, (r3, 0xc) + 3f24: 3104 movi r1, 4 + 3f26: 6884 and r2, r1 + 3f28: 3a40 cmpnei r2, 0 + 3f2a: 0bf0 bt 0x3f0a // 3f0a +} + 3f2c: 1463 ipop + 3f2e: 1461 nir + 3f30: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003f34 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3f34: 1460 nie + 3f36: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f38: 106d lrw r3, 0x2000003c // 3f6c + 3f3a: 3102 movi r1, 2 + 3f3c: 9360 ld.w r3, (r3, 0x0) + 3f3e: 9343 ld.w r2, (r3, 0xc) + 3f40: 6884 and r2, r1 + 3f42: 3a40 cmpnei r2, 0 + 3f44: 0c03 bf 0x3f4a // 3f4a + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + 3f46: b323 st.w r1, (r3, 0xc) + } +} + 3f48: 0410 br 0x3f68 // 3f68 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f4a: 9343 ld.w r2, (r3, 0xc) + 3f4c: 3101 movi r1, 1 + 3f4e: 6884 and r2, r1 + 3f50: 3a40 cmpnei r2, 0 + 3f52: 0bfa bt 0x3f46 // 3f46 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f54: 9343 ld.w r2, (r3, 0xc) + 3f56: 3108 movi r1, 8 + 3f58: 6884 and r2, r1 + 3f5a: 3a40 cmpnei r2, 0 + 3f5c: 0bf5 bt 0x3f46 // 3f46 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f5e: 9343 ld.w r2, (r3, 0xc) + 3f60: 3104 movi r1, 4 + 3f62: 6884 and r2, r1 + 3f64: 3a40 cmpnei r2, 0 + 3f66: 0bf0 bt 0x3f46 // 3f46 +} + 3f68: 1463 ipop + 3f6a: 1461 nir + 3f6c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003f70 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3f70: 1460 nie + 3f72: 1462 ipush + 3f74: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f76: 107f lrw r3, 0x20000038 // 3ff0 + 3f78: 3102 movi r1, 2 + 3f7a: 9360 ld.w r3, (r3, 0x0) + 3f7c: 9343 ld.w r2, (r3, 0xc) + 3f7e: 6884 and r2, r1 + 3f80: 3a40 cmpnei r2, 0 + 3f82: 0c0b bf 0x3f98 // 3f98 + { + UART2->ISR=UART_RX_INT_S; + 3f84: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 3f86: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 3f88: 7400 zextb r0, r0 + 3f8a: e00002e9 bsr 0x455c // 455c + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 3f8e: d9ee2000 ld.w r15, (r14, 0x0) + 3f92: 1401 addi r14, r14, 4 + 3f94: 1463 ipop + 3f96: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f98: 9323 ld.w r1, (r3, 0xc) + 3f9a: 3201 movi r2, 1 + 3f9c: 6848 and r1, r2 + 3f9e: 3940 cmpnei r1, 0 + 3fa0: 0c0d bf 0x3fba // 3fba + UART2->ISR=UART_TX_INT_S; + 3fa2: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3fa4: 1074 lrw r3, 0x200000b8 // 3ff4 + 3fa6: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fa8: 1074 lrw r3, 0x200000bc // 3ff8 + 3faa: 9360 ld.w r3, (r3, 0x0) + 3fac: 3b41 cmpnei r3, 1 + 3fae: 0bf0 bt 0x3f8e // 3f8e + RS485_Comm_Start ++; + 3fb0: 1053 lrw r2, 0x200000c0 // 3ffc + RS485_Comm_End ++; + 3fb2: 9260 ld.w r3, (r2, 0x0) + 3fb4: 2300 addi r3, 1 + 3fb6: b260 st.w r3, (r2, 0x0) +} + 3fb8: 07eb br 0x3f8e // 3f8e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3fba: 9343 ld.w r2, (r3, 0xc) + 3fbc: 3108 movi r1, 8 + 3fbe: 6884 and r2, r1 + 3fc0: 3a40 cmpnei r2, 0 + 3fc2: 0c03 bf 0x3fc8 // 3fc8 + UART2->ISR=UART_TX_IOV_S; + 3fc4: b323 st.w r1, (r3, 0xc) + 3fc6: 07e4 br 0x3f8e // 3f8e + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3fc8: 9343 ld.w r2, (r3, 0xc) + 3fca: 3104 movi r1, 4 + 3fcc: 6884 and r2, r1 + 3fce: 3a40 cmpnei r2, 0 + 3fd0: 0bfa bt 0x3fc4 // 3fc4 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3fd2: 3180 movi r1, 128 + 3fd4: 9303 ld.w r0, (r3, 0xc) + 3fd6: 412c lsli r1, r1, 12 + 3fd8: 6804 and r0, r1 + 3fda: 3840 cmpnei r0, 0 + 3fdc: 0fd9 bf 0x3f8e // 3f8e + UART2->ISR=UART_TX_DONE_S; + 3fde: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3fe0: 1065 lrw r3, 0x200000b8 // 3ff4 + 3fe2: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fe4: 1065 lrw r3, 0x200000bc // 3ff8 + 3fe6: 9360 ld.w r3, (r3, 0x0) + 3fe8: 3b41 cmpnei r3, 1 + 3fea: 0bd2 bt 0x3f8e // 3f8e + RS485_Comm_End ++; + 3fec: 1045 lrw r2, 0x200000c4 // 4000 + 3fee: 07e2 br 0x3fb2 // 3fb2 + 3ff0: 20000038 .long 0x20000038 + 3ff4: 200000b8 .long 0x200000b8 + 3ff8: 200000bc .long 0x200000bc + 3ffc: 200000c0 .long 0x200000c0 + 4000: 200000c4 .long 0x200000c4 + +Disassembly of section .text.SPI0IntHandler: + +00004004 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 4004: 1460 nie + 4006: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 4008: 1178 lrw r3, 0x20000034 // 40e8 + 400a: 3101 movi r1, 1 + 400c: 9360 ld.w r3, (r3, 0x0) + 400e: 9347 ld.w r2, (r3, 0x1c) + 4010: 6884 and r2, r1 + 4012: 3a40 cmpnei r2, 0 + 4014: 0c03 bf 0x401a // 401a + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 4016: b328 st.w r1, (r3, 0x20) + } + +} + 4018: 0407 br 0x4026 // 4026 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 401a: 9347 ld.w r2, (r3, 0x1c) + 401c: 3002 movi r0, 2 + 401e: 6880 and r2, r0 + 4020: 3a40 cmpnei r2, 0 + 4022: 0c04 bf 0x402a // 402a + SPI0->ICR = SPI_RTIM; + 4024: b308 st.w r0, (r3, 0x20) +} + 4026: 1463 ipop + 4028: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 402a: 9347 ld.w r2, (r3, 0x1c) + 402c: 3004 movi r0, 4 + 402e: 6880 and r2, r0 + 4030: 3a40 cmpnei r2, 0 + 4032: 0c55 bf 0x40dc // 40dc + SPI0->ICR = SPI_RXIM; + 4034: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 4036: 9302 ld.w r0, (r3, 0x8) + 4038: 32aa movi r2, 170 + 403a: 6482 cmpne r0, r2 + 403c: 083e bt 0x40b8 // 40b8 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 403e: 3102 movi r1, 2 + 4040: 9343 ld.w r2, (r3, 0xc) + 4042: 6884 and r2, r1 + 4044: 3a40 cmpnei r2, 0 + 4046: 0ffd bf 0x4040 // 4040 + SPI0->DR = 0x11; + 4048: 3211 movi r2, 17 + 404a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 404c: 3110 movi r1, 16 + 404e: 9343 ld.w r2, (r3, 0xc) + 4050: 6884 and r2, r1 + 4052: 3a40 cmpnei r2, 0 + 4054: 0bfd bt 0x404e // 404e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4056: 3102 movi r1, 2 + 4058: 9343 ld.w r2, (r3, 0xc) + 405a: 6884 and r2, r1 + 405c: 3a40 cmpnei r2, 0 + 405e: 0ffd bf 0x4058 // 4058 + SPI0->DR = 0x12; + 4060: 3212 movi r2, 18 + 4062: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4064: 3110 movi r1, 16 + 4066: 9343 ld.w r2, (r3, 0xc) + 4068: 6884 and r2, r1 + 406a: 3a40 cmpnei r2, 0 + 406c: 0bfd bt 0x4066 // 4066 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 406e: 3102 movi r1, 2 + 4070: 9343 ld.w r2, (r3, 0xc) + 4072: 6884 and r2, r1 + 4074: 3a40 cmpnei r2, 0 + 4076: 0ffd bf 0x4070 // 4070 + SPI0->DR = 0x13; + 4078: 3213 movi r2, 19 + 407a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 407c: 3110 movi r1, 16 + 407e: 9343 ld.w r2, (r3, 0xc) + 4080: 6884 and r2, r1 + 4082: 3a40 cmpnei r2, 0 + 4084: 0bfd bt 0x407e // 407e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4086: 3102 movi r1, 2 + 4088: 9343 ld.w r2, (r3, 0xc) + 408a: 6884 and r2, r1 + 408c: 3a40 cmpnei r2, 0 + 408e: 0ffd bf 0x4088 // 4088 + SPI0->DR = 0x14; + 4090: 3214 movi r2, 20 + 4092: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4094: 3110 movi r1, 16 + 4096: 9343 ld.w r2, (r3, 0xc) + 4098: 6884 and r2, r1 + 409a: 3a40 cmpnei r2, 0 + 409c: 0bfd bt 0x4096 // 4096 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 409e: 3102 movi r1, 2 + 40a0: 9343 ld.w r2, (r3, 0xc) + 40a2: 6884 and r2, r1 + 40a4: 3a40 cmpnei r2, 0 + 40a6: 0ffd bf 0x40a0 // 40a0 + SPI0->DR = 0x15; + 40a8: 3215 movi r2, 21 + 40aa: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40ac: 3110 movi r1, 16 + 40ae: 9343 ld.w r2, (r3, 0xc) + 40b0: 6884 and r2, r1 + 40b2: 3a40 cmpnei r2, 0 + 40b4: 0bfd bt 0x40ae // 40ae + 40b6: 07b8 br 0x4026 // 4026 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 40b8: 9343 ld.w r2, (r3, 0xc) + 40ba: 6884 and r2, r1 + 40bc: 3a40 cmpnei r2, 0 + 40be: 0bb4 bt 0x4026 // 4026 + SPI0->DR=0x0; //FIFO=0 + 40c0: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40c2: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 40c4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40c6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40c8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40ca: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40cc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40ce: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d0: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40d2: 9343 ld.w r2, (r3, 0xc) + 40d4: 6884 and r2, r1 + 40d6: 3a40 cmpnei r2, 0 + 40d8: 0bfd bt 0x40d2 // 40d2 + 40da: 07a6 br 0x4026 // 4026 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 40dc: 9347 ld.w r2, (r3, 0x1c) + 40de: 3108 movi r1, 8 + 40e0: 6884 and r2, r1 + 40e2: 3a40 cmpnei r2, 0 + 40e4: 0b99 bt 0x4016 // 4016 + 40e6: 07a0 br 0x4026 // 4026 + 40e8: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000040ec : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 40ec: 1460 nie + 40ee: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 40f0: 1073 lrw r3, 0x2000002c // 413c + 40f2: 3104 movi r1, 4 + 40f4: 9360 ld.w r3, (r3, 0x0) + 40f6: 9349 ld.w r2, (r3, 0x24) + 40f8: 6884 and r2, r1 + 40fa: 3a40 cmpnei r2, 0 + 40fc: 0c02 bf 0x4100 // 4100 + { + SIO0->ICR=0X04; + 40fe: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 4100: 9349 ld.w r2, (r3, 0x24) + 4102: 3101 movi r1, 1 + 4104: 6884 and r2, r1 + 4106: 3a40 cmpnei r2, 0 + 4108: 0c02 bf 0x410c // 410c + { + SIO0->ICR=0X01; + 410a: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 410c: 9349 ld.w r2, (r3, 0x24) + 410e: 3102 movi r1, 2 + 4110: 6884 and r2, r1 + 4112: 3a40 cmpnei r2, 0 + 4114: 0c03 bf 0x411a // 411a + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 4116: b32b st.w r1, (r3, 0x2c) + } +} + 4118: 0410 br 0x4138 // 4138 + else if(SIO0->MISR&0X08) //RXBUFFULL + 411a: 9349 ld.w r2, (r3, 0x24) + 411c: 3108 movi r1, 8 + 411e: 6884 and r2, r1 + 4120: 3a40 cmpnei r2, 0 + 4122: 0bfa bt 0x4116 // 4116 + else if(SIO0->MISR&0X010) //BREAK + 4124: 9349 ld.w r2, (r3, 0x24) + 4126: 3110 movi r1, 16 + 4128: 6884 and r2, r1 + 412a: 3a40 cmpnei r2, 0 + 412c: 0bf5 bt 0x4116 // 4116 + else if(SIO0->MISR&0X020) //TIMEOUT + 412e: 9349 ld.w r2, (r3, 0x24) + 4130: 3120 movi r1, 32 + 4132: 6884 and r2, r1 + 4134: 3a40 cmpnei r2, 0 + 4136: 0bf0 bt 0x4116 // 4116 +} + 4138: 1463 ipop + 413a: 1461 nir + 413c: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00004140 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 4140: 1460 nie + 4142: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 4144: 106a lrw r3, 0x2000005c // 416c + 4146: 3101 movi r1, 1 + 4148: 9360 ld.w r3, (r3, 0x0) + 414a: 237f addi r3, 128 + 414c: 934c ld.w r2, (r3, 0x30) + 414e: 6884 and r2, r1 + 4150: 3a40 cmpnei r2, 0 + 4152: 0c04 bf 0x415a // 415a + { + SYSCON->EXICR = EXI_PIN0; + 4154: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 4156: 1463 ipop + 4158: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 415a: 3280 movi r2, 128 + 415c: 932c ld.w r1, (r3, 0x30) + 415e: 4249 lsli r2, r2, 9 + 4160: 6848 and r1, r2 + 4162: 3940 cmpnei r1, 0 + 4164: 0ff9 bf 0x4156 // 4156 + SYSCON->EXICR = EXI_PIN16; + 4166: b34b st.w r2, (r3, 0x2c) +} + 4168: 07f7 br 0x4156 // 4156 + 416a: 0000 bkpt + 416c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00004170 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 4170: 1460 nie + 4172: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 4174: 106a lrw r3, 0x2000005c // 419c + 4176: 3102 movi r1, 2 + 4178: 9360 ld.w r3, (r3, 0x0) + 417a: 237f addi r3, 128 + 417c: 934c ld.w r2, (r3, 0x30) + 417e: 6884 and r2, r1 + 4180: 3a40 cmpnei r2, 0 + 4182: 0c04 bf 0x418a // 418a + { + SYSCON->EXICR = EXI_PIN1; + 4184: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 4186: 1463 ipop + 4188: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 418a: 3280 movi r2, 128 + 418c: 932c ld.w r1, (r3, 0x30) + 418e: 424a lsli r2, r2, 10 + 4190: 6848 and r1, r2 + 4192: 3940 cmpnei r1, 0 + 4194: 0ff9 bf 0x4186 // 4186 + SYSCON->EXICR = EXI_PIN17; + 4196: b34b st.w r2, (r3, 0x2c) +} + 4198: 07f7 br 0x4186 // 4186 + 419a: 0000 bkpt + 419c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000041a0 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 41a0: 1460 nie + 41a2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 41a4: 1070 lrw r3, 0x2000005c // 41e4 + 41a6: 3104 movi r1, 4 + 41a8: 9360 ld.w r3, (r3, 0x0) + 41aa: 237f addi r3, 128 + 41ac: 934c ld.w r2, (r3, 0x30) + 41ae: 6884 and r2, r1 + 41b0: 3a40 cmpnei r2, 0 + 41b2: 0c04 bf 0x41ba // 41ba + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 41b4: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 41b6: 1463 ipop + 41b8: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 41ba: 934c ld.w r2, (r3, 0x30) + 41bc: 3108 movi r1, 8 + 41be: 6884 and r2, r1 + 41c0: 3a40 cmpnei r2, 0 + 41c2: 0bf9 bt 0x41b4 // 41b4 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 41c4: 3280 movi r2, 128 + 41c6: 932c ld.w r1, (r3, 0x30) + 41c8: 424b lsli r2, r2, 11 + 41ca: 6848 and r1, r2 + 41cc: 3940 cmpnei r1, 0 + 41ce: 0c03 bf 0x41d4 // 41d4 + SYSCON->EXICR = EXI_PIN19; + 41d0: b34b st.w r2, (r3, 0x2c) +} + 41d2: 07f2 br 0x41b6 // 41b6 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 41d4: 3280 movi r2, 128 + 41d6: 932c ld.w r1, (r3, 0x30) + 41d8: 424c lsli r2, r2, 12 + 41da: 6848 and r1, r2 + 41dc: 3940 cmpnei r1, 0 + 41de: 0bf9 bt 0x41d0 // 41d0 + 41e0: 07eb br 0x41b6 // 41b6 + 41e2: 0000 bkpt + 41e4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000041e8 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 41e8: 1460 nie + 41ea: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 41ec: 1075 lrw r3, 0x2000005c // 4240 + 41ee: 3280 movi r2, 128 + 41f0: 9360 ld.w r3, (r3, 0x0) + 41f2: 60c8 addu r3, r2 + 41f4: 932c ld.w r1, (r3, 0x30) + 41f6: 3010 movi r0, 16 + 41f8: 6840 and r1, r0 + 41fa: 3940 cmpnei r1, 0 + 41fc: 0c04 bf 0x4204 // 4204 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 41fe: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 4200: 1463 ipop + 4202: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 4204: 932c ld.w r1, (r3, 0x30) + 4206: 3020 movi r0, 32 + 4208: 6840 and r1, r0 + 420a: 3940 cmpnei r1, 0 + 420c: 0bf9 bt 0x41fe // 41fe + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 420e: 932c ld.w r1, (r3, 0x30) + 4210: 3040 movi r0, 64 + 4212: 6840 and r1, r0 + 4214: 3940 cmpnei r1, 0 + 4216: 0bf4 bt 0x41fe // 41fe + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 4218: 932c ld.w r1, (r3, 0x30) + 421a: 6848 and r1, r2 + 421c: 3940 cmpnei r1, 0 + 421e: 0c03 bf 0x4224 // 4224 + SYSCON->EXICR = EXI_PIN9; + 4220: b34b st.w r2, (r3, 0x2c) +} + 4222: 07ef br 0x4200 // 4200 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 4224: 3280 movi r2, 128 + 4226: 932c ld.w r1, (r3, 0x30) + 4228: 4241 lsli r2, r2, 1 + 422a: 6848 and r1, r2 + 422c: 3940 cmpnei r1, 0 + 422e: 0bf9 bt 0x4220 // 4220 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 4230: 3280 movi r2, 128 + 4232: 932c ld.w r1, (r3, 0x30) + 4234: 4242 lsli r2, r2, 2 + 4236: 6848 and r1, r2 + 4238: 3940 cmpnei r1, 0 + 423a: 0bf3 bt 0x4220 // 4220 + 423c: 07e2 br 0x4200 // 4200 + 423e: 0000 bkpt + 4240: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00004244 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 4244: 1460 nie + 4246: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 4248: 1076 lrw r3, 0x2000005c // 42a0 + 424a: 3280 movi r2, 128 + 424c: 9360 ld.w r3, (r3, 0x0) + 424e: 237f addi r3, 128 + 4250: 932c ld.w r1, (r3, 0x30) + 4252: 4243 lsli r2, r2, 3 + 4254: 6848 and r1, r2 + 4256: 3940 cmpnei r1, 0 + 4258: 0c03 bf 0x425e // 425e + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 425a: b34b st.w r2, (r3, 0x2c) + } +} + 425c: 041f br 0x429a // 429a + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 425e: 3280 movi r2, 128 + 4260: 932c ld.w r1, (r3, 0x30) + 4262: 4244 lsli r2, r2, 4 + 4264: 6848 and r1, r2 + 4266: 3940 cmpnei r1, 0 + 4268: 0bf9 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 426a: 3280 movi r2, 128 + 426c: 932c ld.w r1, (r3, 0x30) + 426e: 4245 lsli r2, r2, 5 + 4270: 6848 and r1, r2 + 4272: 3940 cmpnei r1, 0 + 4274: 0bf3 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 4276: 3280 movi r2, 128 + 4278: 932c ld.w r1, (r3, 0x30) + 427a: 4246 lsli r2, r2, 6 + 427c: 6848 and r1, r2 + 427e: 3940 cmpnei r1, 0 + 4280: 0bed bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 4282: 3280 movi r2, 128 + 4284: 932c ld.w r1, (r3, 0x30) + 4286: 4247 lsli r2, r2, 7 + 4288: 6848 and r1, r2 + 428a: 3940 cmpnei r1, 0 + 428c: 0be7 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 428e: 3280 movi r2, 128 + 4290: 932c ld.w r1, (r3, 0x30) + 4292: 4248 lsli r2, r2, 8 + 4294: 6848 and r1, r2 + 4296: 3940 cmpnei r1, 0 + 4298: 0be1 bt 0x425a // 425a +} + 429a: 1463 ipop + 429c: 1461 nir + 429e: 0000 bkpt + 42a0: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000042a4 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 42a4: 1460 nie + 42a6: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 42a8: 106b lrw r3, 0x20000014 // 42d4 + 42aa: 3101 movi r1, 1 + 42ac: 9360 ld.w r3, (r3, 0x0) + 42ae: 934e ld.w r2, (r3, 0x38) + 42b0: 6884 and r2, r1 + 42b2: 3a40 cmpnei r2, 0 + 42b4: 0c03 bf 0x42ba // 42ba + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 42b6: b330 st.w r1, (r3, 0x40) + } +} + 42b8: 040b br 0x42ce // 42ce + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 42ba: 934e ld.w r2, (r3, 0x38) + 42bc: 3102 movi r1, 2 + 42be: 6884 and r2, r1 + 42c0: 3a40 cmpnei r2, 0 + 42c2: 0bfa bt 0x42b6 // 42b6 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 42c4: 934e ld.w r2, (r3, 0x38) + 42c6: 3104 movi r1, 4 + 42c8: 6884 and r2, r1 + 42ca: 3a40 cmpnei r2, 0 + 42cc: 0bf5 bt 0x42b6 // 42b6 +} + 42ce: 1463 ipop + 42d0: 1461 nir + 42d2: 0000 bkpt + 42d4: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +000042d8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 42d8: 1460 nie + 42da: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 42dc: 1071 lrw r3, 0x2000000c // 4320 + 42de: 3101 movi r1, 1 + 42e0: 9360 ld.w r3, (r3, 0x0) + 42e2: 934c ld.w r2, (r3, 0x30) + 42e4: 6884 and r2, r1 + 42e6: 3a40 cmpnei r2, 0 + 42e8: 0c0a bf 0x42fc // 42fc + { + BT0->ICR = BT_PEND; + 42ea: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 42ec: 9341 ld.w r2, (r3, 0x4) + 42ee: 3a86 bclri r2, 6 + 42f0: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 42f2: 9340 ld.w r2, (r3, 0x0) + 42f4: 3200 movi r2, 0 + 42f6: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 42f8: 1463 ipop + 42fa: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 42fc: 934c ld.w r2, (r3, 0x30) + 42fe: 3102 movi r1, 2 + 4300: 6884 and r2, r1 + 4302: 3a40 cmpnei r2, 0 + 4304: 0c03 bf 0x430a // 430a + BT0->ICR = BT_EVTRG; + 4306: b32d st.w r1, (r3, 0x34) +} + 4308: 07f8 br 0x42f8 // 42f8 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 430a: 934c ld.w r2, (r3, 0x30) + 430c: 3104 movi r1, 4 + 430e: 6884 and r2, r1 + 4310: 3a40 cmpnei r2, 0 + 4312: 0bfa bt 0x4306 // 4306 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 4314: 934c ld.w r2, (r3, 0x30) + 4316: 3108 movi r1, 8 + 4318: 6884 and r2, r1 + 431a: 3a40 cmpnei r2, 0 + 431c: 0bf5 bt 0x4306 // 4306 + 431e: 07ed br 0x42f8 // 42f8 + 4320: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00004324 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 4324: 1460 nie + 4326: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 4328: 1076 lrw r3, 0x20000008 // 4380 + 432a: 3101 movi r1, 1 + 432c: 9360 ld.w r3, (r3, 0x0) + 432e: 934c ld.w r2, (r3, 0x30) + 4330: 6884 and r2, r1 + 4332: 3a40 cmpnei r2, 0 + 4334: 0c03 bf 0x433a // 433a + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 4336: b32d st.w r1, (r3, 0x34) + } +} + 4338: 0416 br 0x4364 // 4364 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 433a: 934c ld.w r2, (r3, 0x30) + 433c: 3102 movi r1, 2 + 433e: 6884 and r2, r1 + 4340: 3a40 cmpnei r2, 0 + 4342: 0c13 bf 0x4368 // 4368 + BT1->ICR = BT_CMP; + 4344: b32d st.w r1, (r3, 0x34) + NUM++; + 4346: 1070 lrw r3, 0x200000ac // 4384 + 4348: 8340 ld.b r2, (r3, 0x0) + 434a: 2200 addi r2, 1 + 434c: 7488 zextb r2, r2 + SysTick_100us++; + 434e: 9321 ld.w r1, (r3, 0x4) + 4350: 2100 addi r1, 1 + if(NUM >= 10){ + 4352: 3a09 cmphsi r2, 10 + NUM++; + 4354: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 4356: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 4358: 0c06 bf 0x4364 // 4364 + NUM = 0; + 435a: 3200 movi r2, 0 + 435c: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 435e: 9342 ld.w r2, (r3, 0x8) + 4360: 2200 addi r2, 1 + 4362: b342 st.w r2, (r3, 0x8) +} + 4364: 1463 ipop + 4366: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 4368: 934c ld.w r2, (r3, 0x30) + 436a: 3104 movi r1, 4 + 436c: 6884 and r2, r1 + 436e: 3a40 cmpnei r2, 0 + 4370: 0be3 bt 0x4336 // 4336 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 4372: 934c ld.w r2, (r3, 0x30) + 4374: 3108 movi r1, 8 + 4376: 6884 and r2, r1 + 4378: 3a40 cmpnei r2, 0 + 437a: 0bde bt 0x4336 // 4336 + 437c: 07f4 br 0x4364 // 4364 + 437e: 0000 bkpt + 4380: 20000008 .long 0x20000008 + 4384: 200000ac .long 0x200000ac + +Disassembly of section .text.PriviledgeVioHandler: + +00004388 : + 4388: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +0000438a : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 438a: 1460 nie + 438c: 1462 ipush + // ISR content ... + +} + 438e: 1463 ipop + 4390: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00004392 : + 4392: 1460 nie + 4394: 1462 ipush + 4396: 1463 ipop + 4398: 1461 nir + +Disassembly of section .text.Trap2Handler: + +0000439a : + 439a: 1460 nie + 439c: 1462 ipush + 439e: 1463 ipop + 43a0: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000043a2 : + 43a2: 1460 nie + 43a4: 1462 ipush + 43a6: 1463 ipop + 43a8: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000043aa : + 43aa: 1460 nie + 43ac: 1462 ipush + 43ae: 1463 ipop + 43b0: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000043b2 : + 43b2: 1460 nie + 43b4: 1462 ipush + 43b6: 1463 ipop + 43b8: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000043ba : + 43ba: 1460 nie + 43bc: 1462 ipush + 43be: 1463 ipop + 43c0: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000043c2 : + 43c2: 1460 nie + 43c4: 1462 ipush + 43c6: 1463 ipop + 43c8: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000043ca : + 43ca: 1460 nie + 43cc: 1462 ipush + 43ce: 1463 ipop + 43d0: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000043d2 : + 43d2: 1460 nie + 43d4: 1462 ipush + 43d6: 1463 ipop + 43d8: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +000043da : + 43da: 1460 nie + 43dc: 1462 ipush + 43de: 1463 ipop + 43e0: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +000043e2 : + 43e2: 1460 nie + 43e4: 1462 ipush + 43e6: 1463 ipop + 43e8: 1461 nir + +Disassembly of section .text.__divsi3: + +000043ec <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 43ec: 14c1 push r4 + int PSR; + __asm volatile( + 43ee: c0006023 mfcr r3, cr<0, 0> + 43f2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 43f6: 1046 lrw r2, 0x20000000 // 440c <__divsi3+0x20> + 43f8: 3400 movi r4, 0 + 43fa: 9240 ld.w r2, (r2, 0x0) + 43fc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 43fe: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4400: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4402: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4404: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4408: 9202 ld.w r0, (r2, 0x8) +} + 440a: 1481 pop r4 + 440c: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00004410 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 4410: 14c1 push r4 + int PSR; + __asm volatile( + 4412: c0006023 mfcr r3, cr<0, 0> + 4416: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 441a: 1046 lrw r2, 0x20000000 // 4430 <__udivsi3+0x20> + 441c: 3401 movi r4, 1 + 441e: 9240 ld.w r2, (r2, 0x0) + 4420: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4422: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4424: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4426: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4428: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 442c: 9202 ld.w r0, (r2, 0x8) +} + 442e: 1481 pop r4 + 4430: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00004434 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 4434: 14c1 push r4 + int PSR; + __asm volatile( + 4436: c0006023 mfcr r3, cr<0, 0> + 443a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 443e: 1046 lrw r2, 0x20000000 // 4454 <__modsi3+0x20> + 4440: 3400 movi r4, 0 + 4442: 9240 ld.w r2, (r2, 0x0) + 4444: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4446: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4448: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 444a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 444c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4450: 9203 ld.w r0, (r2, 0xc) +} + 4452: 1481 pop r4 + 4454: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00004458 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 4458: 14c1 push r4 + int PSR; + __asm volatile( + 445a: c0006023 mfcr r3, cr<0, 0> + 445e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 4462: 1046 lrw r2, 0x20000000 // 4478 <__umodsi3+0x20> + 4464: 3401 movi r4, 1 + 4466: 9240 ld.w r2, (r2, 0x0) + 4468: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 446a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 446c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 446e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4470: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4474: 9203 ld.w r0, (r2, 0xc) +} + 4476: 1481 pop r4 + 4478: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +0000447c : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 447c: c1807420 psrset ee, ie +} + 4480: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00004484 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4484: 14d1 push r4, r15 + switch(uart_id){ + 4486: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4488: 6d07 mov r4, r1 + switch(uart_id){ + 448a: 0c1a bf 0x44be // 44be + 448c: 3840 cmpnei r0, 0 + 448e: 0c04 bf 0x4496 // 4496 + 4490: 3842 cmpnei r0, 2 + 4492: 0c2a bf 0x44e6 // 44e6 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 4494: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 4496: e3fff8dd bsr 0x3650 // 3650 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 449a: 118a lrw r4, 0x20000040 // 4540 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 449c: 3100 movi r1, 0 + 449e: 3000 movi r0, 0 + 44a0: e3fff918 bsr 0x36d0 // 36d0 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 44a4: 9400 ld.w r0, (r4, 0x0) + 44a6: 3200 movi r2, 0 + 44a8: 1127 lrw r1, 0x2710 // 4544 + 44aa: e3fff989 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 44ae: 9400 ld.w r0, (r4, 0x0) + 44b0: 3200 movi r2, 0 + 44b2: 1125 lrw r1, 0x2710 // 4544 + 44b4: e3fff98c bsr 0x37cc // 37cc + UART0_Int_Enable(); + 44b8: e3fff8f0 bsr 0x3698 // 3698 + break; + 44bc: 07ec br 0x4494 // 4494 + UART1_DeInit(); //clear all UART Register + 44be: e3fff8d5 bsr 0x3668 // 3668 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 44c2: 3102 movi r1, 2 + 44c4: 3001 movi r0, 1 + 44c6: e3fff905 bsr 0x36d0 // 36d0 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 44ca: 1180 lrw r4, 0x2000003c // 4548 + 44cc: 31d0 movi r1, 208 + 44ce: 9400 ld.w r0, (r4, 0x0) + 44d0: 3200 movi r2, 0 + 44d2: 4121 lsli r1, r1, 1 + 44d4: e3fff974 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44d8: 31d0 movi r1, 208 + 44da: 9400 ld.w r0, (r4, 0x0) + 44dc: 3200 movi r2, 0 + 44de: 4121 lsli r1, r1, 1 + 44e0: e3fff976 bsr 0x37cc // 37cc + break; + 44e4: 07d8 br 0x4494 // 4494 + UART2_DeInit(); //clear all UART Register + 44e6: e3fff8cd bsr 0x3680 // 3680 + UART_IO_Init(IO_UART2,0); //use PA0.13->RXD1, PB0.0->TXD1 + 44ea: 3100 movi r1, 0 + 44ec: 3002 movi r0, 2 + 44ee: e3fff8f1 bsr 0x36d0 // 36d0 + UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44f2: 1077 lrw r3, 0x20000038 // 454c + 44f4: 31d0 movi r1, 208 + 44f6: 9300 ld.w r0, (r3, 0x0) + 44f8: 3200 movi r2, 0 + 44fa: 4121 lsli r1, r1, 1 + 44fc: e3fff968 bsr 0x37cc // 37cc + UART2_Int_Enable(); + 4500: e3fff8da bsr 0x36b4 // 36b4 + memset(&g_uart,0,sizeof(UART_t)); + 4504: 3273 movi r2, 115 + 4506: 3100 movi r1, 0 + 4508: 1012 lrw r0, 0x200003a8 // 4550 + 450a: e3ffea89 bsr 0x1a1c // 1a1c <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 450e: 1072 lrw r3, 0x2000040f // 4554 + 4510: 3203 movi r2, 3 + 4512: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 4514: 4c48 lsri r2, r4, 8 + 4516: a388 st.b r4, (r3, 0x8) + 4518: a349 st.b r2, (r3, 0x9) + 451a: 4c50 lsri r2, r4, 16 + 451c: 4c98 lsri r4, r4, 24 + 451e: a38b st.b r4, (r3, 0xb) + 4520: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 4522: 3103 movi r1, 3 + 4524: 108d lrw r4, 0x20000048 // 4558 + 4526: 3200 movi r2, 0 + 4528: 9400 ld.w r0, (r4, 0x0) + 452a: e3fff691 bsr 0x324c // 324c + GPIO_DriveStrength_EN(GPIOB0,3); + 452e: 9400 ld.w r0, (r4, 0x0) + 4530: 3103 movi r1, 3 + 4532: e3fff707 bsr 0x3340 // 3340 + GPIO_Write_Low(GPIOB0,3); + 4536: 9400 ld.w r0, (r4, 0x0) + 4538: 3103 movi r1, 3 + 453a: e3fff70e bsr 0x3356 // 3356 +} + 453e: 07ab br 0x4494 // 4494 + 4540: 20000040 .long 0x20000040 + 4544: 00002710 .long 0x00002710 + 4548: 2000003c .long 0x2000003c + 454c: 20000038 .long 0x20000038 + 4550: 200003a8 .long 0x200003a8 + 4554: 2000040f .long 0x2000040f + 4558: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +0000455c : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 455c: 14c2 push r4-r5 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 455e: 1075 lrw r3, 0x20000408 // 45b0 + 4560: 8346 ld.b r2, (r3, 0x6) + 4562: 8325 ld.b r1, (r3, 0x5) + 4564: 4248 lsli r2, r2, 8 + 4566: 6c84 or r2, r1 + 4568: 3162 movi r1, 98 + 456a: 10b3 lrw r5, 0x200003a8 // 45b4 + 456c: 3440 movi r4, 64 + 456e: 6485 cmplt r1, r2 + 4570: 6114 addu r4, r5 + 4572: 0c06 bf 0x457e // 457e + 4574: 3225 movi r2, 37 + 4576: 6090 addu r2, r4 + 4578: 3100 movi r1, 0 + 457a: a220 st.b r1, (r2, 0x0) + 457c: a221 st.b r1, (r2, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 457e: 8346 ld.b r2, (r3, 0x6) + 4580: 8325 ld.b r1, (r3, 0x5) + 4582: 4248 lsli r2, r2, 8 + 4584: 6c84 or r2, r1 + 4586: 5a22 addi r1, r2, 1 + 4588: 6094 addu r2, r5 + 458a: a200 st.b r0, (r2, 0x0) + 458c: 2424 addi r4, 37 + 458e: 7445 zexth r1, r1 + + g_uart.RecvIdleTiming = SysTick_1ms; + 4590: 104a lrw r2, 0x200000b4 // 45b8 + 4592: 9240 ld.w r2, (r2, 0x0) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 4594: a420 st.b r1, (r4, 0x0) + 4596: 4928 lsri r1, r1, 8 + g_uart.RecvIdleTiming = SysTick_1ms; + 4598: 4a08 lsri r0, r2, 8 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 459a: a421 st.b r1, (r4, 0x1) + g_uart.RecvIdleTiming = SysTick_1ms; + 459c: 1028 lrw r1, 0x20000413 // 45bc + 459e: a140 st.b r2, (r1, 0x0) + 45a0: a101 st.b r0, (r1, 0x1) + 45a2: 4a10 lsri r0, r2, 16 + 45a4: 4a58 lsri r2, r2, 24 + 45a6: a143 st.b r2, (r1, 0x3) + g_uart.Receiving = 0x01; + 45a8: 3201 movi r2, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 45aa: a102 st.b r0, (r1, 0x2) + g_uart.Receiving = 0x01; + 45ac: a344 st.b r2, (r3, 0x4) +} + 45ae: 1482 pop r4-r5 + 45b0: 20000408 .long 0x20000408 + 45b4: 200003a8 .long 0x200003a8 + 45b8: 200000b4 .long 0x200000b4 + 45bc: 20000413 .long 0x20000413 + +Disassembly of section .text.Dbg_Println: + +000045c0 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 45c0: 1423 subi r14, r14, 12 + 45c2: b862 st.w r3, (r14, 0x8) + 45c4: b841 st.w r2, (r14, 0x4) + 45c6: b820 st.w r1, (r14, 0x0) + 45c8: 14d2 push r4-r5, r15 + 45ca: 1422 subi r14, r14, 8 + 45cc: 9865 ld.w r3, (r14, 0x14) + 45ce: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 45d0: 3301 movi r3, 1 + 45d2: 105c lrw r2, 0x20000068 // 4640 + 45d4: 70c0 lsl r3, r0 + 45d6: 9240 ld.w r2, (r2, 0x0) + 45d8: 68c8 and r3, r2 + 45da: 3b40 cmpnei r3, 0 + 45dc: 0c2b bf 0x4632 // 4632 + SysTick_Now = SysTick_1ms; + 45de: 109a lrw r4, 0x200000b8 // 4644 + 45e0: 107a lrw r3, 0x200000b4 // 4648 + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45e2: 9445 ld.w r2, (r4, 0x14) + SysTick_Now = SysTick_1ms; + 45e4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45e6: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 45e8: b464 st.w r3, (r4, 0x10) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45ea: b446 st.w r2, (r4, 0x18) + SysTick_Last = SysTick_Now; + 45ec: b465 st.w r3, (r4, 0x14) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 45ee: 3180 movi r1, 128 + 45f0: 301c movi r0, 28 + 45f2: b840 st.w r2, (r14, 0x0) + 45f4: 4122 lsli r1, r1, 2 + 45f6: 1056 lrw r2, 0x5f53 // 464c + 45f8: 6010 addu r0, r4 + 45fa: e3ffe9b5 bsr 0x1964 // 1964 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 45fe: 10b5 lrw r5, 0x2000003c // 4650 + 4600: 311c movi r1, 28 + 4602: 7481 zexth r2, r0 + 4604: 6050 addu r1, r4 + 4606: 9500 ld.w r0, (r5, 0x0) + 4608: e3fff8ea bsr 0x37dc // 37dc + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 460c: 3180 movi r1, 128 + 460e: 301c movi r0, 28 + 4610: 1b06 addi r3, r14, 24 + 4612: 9841 ld.w r2, (r14, 0x4) + 4614: 4122 lsli r1, r1, 2 + 4616: 6010 addu r0, r4 + 4618: e3ffe9d5 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 461c: 6c53 mov r1, r4 + 461e: 7481 zexth r2, r0 + 4620: 211b addi r1, 28 + 4622: 9500 ld.w r0, (r5, 0x0) + 4624: e3fff8dc bsr 0x37dc // 37dc + + DBG_Printf("\r\n",2); + 4628: 9500 ld.w r0, (r5, 0x0) + 462a: 3202 movi r2, 2 + 462c: 102a lrw r1, 0x5f61 // 4654 + 462e: e3fff8d7 bsr 0x37dc // 37dc + + + } + +#endif +} + 4632: 1402 addi r14, r14, 8 + 4634: d9ee2002 ld.w r15, (r14, 0x8) + 4638: 98a1 ld.w r5, (r14, 0x4) + 463a: 9880 ld.w r4, (r14, 0x0) + 463c: 1406 addi r14, r14, 24 + 463e: 783c jmp r15 + 4640: 20000068 .long 0x20000068 + 4644: 200000b8 .long 0x200000b8 + 4648: 200000b4 .long 0x200000b4 + 464c: 00005f53 .long 0x00005f53 + 4650: 2000003c .long 0x2000003c + 4654: 00005f61 .long 0x00005f61 + +Disassembly of section .text.RC522_Delay: + +00004658 : + * @brief 延时函数,纳秒级 + * @param ns 延时时间 + */ +void RC522_Delay(U32_T ns){ + U32_T i; + for (i = 0; i < ns; i++) { + 4658: 3300 movi r3, 0 + 465a: 640e cmpne r3, r0 + 465c: 0802 bt 0x4660 // 4660 + nop; + //延时一个机器周期 + nop; + nop; + } +} + 465e: 783c jmp r15 + nop; + 4660: 6c03 mov r0, r0 + nop; + 4662: 6c03 mov r0, r0 + nop; + 4664: 6c03 mov r0, r0 + for (i = 0; i < ns; i++) { + 4666: 2300 addi r3, 1 + 4668: 07f9 br 0x465a // 465a + +Disassembly of section .text.RC522_ReadWriteOneByte: + +0000466c : + * @brief 移植接口——SPI读写一个字节 + * @param tx_data:要写入的数据 + * @return 读取的数据 + */ +U8_T RC522_ReadWriteOneByte(U8_T tx_data) +{ + 466c: 14d4 push r4-r7, r15 + 466e: 6d83 mov r6, r0 + 4670: 3508 movi r5, 8 +// delay_nus(1); +// rx_data = SPI0->DR; +// +// return (U8_T)(rx_data & 0xFF); + + U8_T rx_data=0; + 4672: 3400 movi r4, 0 + U8_T i; + for(i=0;i<8;i++) + { + RC522_SCK_LOW; + 4674: 10f2 lrw r7, 0x2000004c // 46bc + 4676: 3109 movi r1, 9 + 4678: 9700 ld.w r0, (r7, 0x0) + 467a: e3fff66e bsr 0x3356 // 3356 + if(tx_data&0x80) RC522_MOSI_HIGH; + 467e: 74da sextb r3, r6 + 4680: 3bdf btsti r3, 31 + 4682: 310a movi r1, 10 + 4684: 9700 ld.w r0, (r7, 0x0) + 4686: 0c18 bf 0x46b6 // 46b6 + 4688: e3fff663 bsr 0x334e // 334e + else RC522_MOSI_LOW; + tx_data<<=1; + RC522_SCK_HIGH; + 468c: 3109 movi r1, 9 + 468e: 9700 ld.w r0, (r7, 0x0) + 4690: e3fff65f bsr 0x334e // 334e + rx_data<<=1; + if(RC522_MISO_Read) rx_data|=0x01; + 4694: 310b movi r1, 11 + 4696: 9700 ld.w r0, (r7, 0x0) + 4698: e3fff66e bsr 0x3374 // 3374 + tx_data<<=1; + 469c: 46c1 lsli r6, r6, 1 + rx_data<<=1; + 469e: 4481 lsli r4, r4, 1 + if(RC522_MISO_Read) rx_data|=0x01; + 46a0: 3840 cmpnei r0, 0 + tx_data<<=1; + 46a2: 7598 zextb r6, r6 + rx_data<<=1; + 46a4: 7510 zextb r4, r4 + if(RC522_MISO_Read) rx_data|=0x01; + 46a6: 0c02 bf 0x46aa // 46aa + 46a8: 3ca0 bseti r4, 0 + 46aa: 2d00 subi r5, 1 + 46ac: 7554 zextb r5, r5 + for(i=0;i<8;i++) + 46ae: 3d40 cmpnei r5, 0 + 46b0: 0be3 bt 0x4676 // 4676 + } + return rx_data; +} + 46b2: 6c13 mov r0, r4 + 46b4: 1494 pop r4-r7, r15 + else RC522_MOSI_LOW; + 46b6: e3fff650 bsr 0x3356 // 3356 + 46ba: 07e9 br 0x468c // 468c + 46bc: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_ReadRawRC: + +000046c0 : +{ + 46c0: 14d2 push r4-r5, r15 + RC522_CS_LOW; //片选选中RC522 + 46c2: 10ad lrw r5, 0x20000048 // 46f4 + 46c4: 3105 movi r1, 5 +{ + 46c6: 6d03 mov r4, r0 + RC522_CS_LOW; //片选选中RC522 + 46c8: 9500 ld.w r0, (r5, 0x0) + 46ca: e3fff646 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E)|0x80; + 46ce: 4401 lsli r0, r4, 1 + 46d0: 347e movi r4, 126 + 46d2: 6810 and r0, r4 + 46d4: 3400 movi r4, 0 + 46d6: 2c7f subi r4, 128 + 46d8: 6c10 or r0, r4 + RC522_ReadWriteOneByte(ucAddr); //发送命令 + 46da: 7400 zextb r0, r0 + 46dc: e3ffffc8 bsr 0x466c // 466c + ucResult=RC522_ReadWriteOneByte(0); //读取RC522返回的数据 + 46e0: 3000 movi r0, 0 + 46e2: e3ffffc5 bsr 0x466c // 466c + 46e6: 6d03 mov r4, r0 + RC522_CS_HIGH; //释放片选线(PF0) + 46e8: 3105 movi r1, 5 + 46ea: 9500 ld.w r0, (r5, 0x0) + 46ec: e3fff631 bsr 0x334e // 334e +} + 46f0: 6c13 mov r0, r4 + 46f2: 1492 pop r4-r5, r15 + 46f4: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_WriteRawRC: + +000046f8 : +{ + 46f8: 14d3 push r4-r6, r15 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 46fa: 10ab lrw r5, 0x20000048 // 4724 +{ + 46fc: 6d87 mov r6, r1 + 46fe: 6d03 mov r4, r0 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 4700: 3105 movi r1, 5 + 4702: 9500 ld.w r0, (r5, 0x0) + 4704: e3fff629 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E); + 4708: 4481 lsli r4, r4, 1 + 470a: 307e movi r0, 126 + RC522_ReadWriteOneByte(ucAddr); //SPI1发送一个字节 + 470c: 6810 and r0, r4 + 470e: e3ffffaf bsr 0x466c // 466c + RC522_ReadWriteOneByte(value); //SPI1发送一个字节 + 4712: 6c1b mov r0, r6 + 4714: e3ffffac bsr 0x466c // 466c + RC522_CS_HIGH; //PF1写1(SDA)(SPI1片选线) + 4718: 9500 ld.w r0, (r5, 0x0) + 471a: 3105 movi r1, 5 + 471c: e3fff619 bsr 0x334e // 334e +} + 4720: 1493 pop r4-r6, r15 + 4722: 0000 bkpt + 4724: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_PcdReset: + +00004728 : +{ + 4728: 14d0 push r15 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 472a: 310f movi r1, 15 + 472c: 3001 movi r0, 1 + 472e: e3ffffe5 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 4732: 310f movi r1, 15 + 4734: 3001 movi r0, 1 + 4736: e3ffffe1 bsr 0x46f8 // 46f8 + RC522_Delay(10); + 473a: 300a movi r0, 10 + 473c: e3ffff8e bsr 0x4658 // 4658 + RC522_WriteRawRC(ModeReg,0x3D); //和Mifare卡通讯,CRC初始值0x6363 + 4740: 313d movi r1, 61 + 4742: 3011 movi r0, 17 + 4744: e3ffffda bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegL,30); //写RC632寄存器 + 4748: 311e movi r1, 30 + 474a: 302d movi r0, 45 + 474c: e3ffffd6 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegH,0); + 4750: 3100 movi r1, 0 + 4752: 302c movi r0, 44 + 4754: e3ffffd2 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TModeReg,0x8D); + 4758: 318d movi r1, 141 + 475a: 302a movi r0, 42 + 475c: e3ffffce bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 4760: 313e movi r1, 62 + 4762: 302b movi r0, 43 + 4764: e3ffffca bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TxAutoReg,0x40);//必须要 + 4768: 3140 movi r1, 64 + 476a: 3015 movi r0, 21 + 476c: e3ffffc6 bsr 0x46f8 // 46f8 +} + 4770: 3000 movi r0, 0 + 4772: 1490 pop r15 + +Disassembly of section .text.RC522_SetBitMask: + +00004774 : +{ + 4774: 14d2 push r4-r5, r15 + 4776: 6d47 mov r5, r1 + 4778: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 477a: e3ffffa3 bsr 0x46c0 // 46c0 + RC522_WriteRawRC(reg,tmp|mask); //写RC632寄存器 + 477e: 6c43 mov r1, r0 + 4780: 6c54 or r1, r5 + 4782: 7444 zextb r1, r1 + 4784: 6c13 mov r0, r4 + 4786: e3ffffb9 bsr 0x46f8 // 46f8 +} + 478a: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOn: + +0000478c : +{ + 478c: 14d0 push r15 + i=RC522_ReadRawRC(TxControlReg); + 478e: 3014 movi r0, 20 + 4790: e3ffff98 bsr 0x46c0 // 46c0 + if(!(i&0x03)) + 4794: 3303 movi r3, 3 + 4796: 680c and r0, r3 + 4798: 3840 cmpnei r0, 0 + 479a: 0805 bt 0x47a4 // 47a4 + RC522_SetBitMask(TxControlReg,0x03); + 479c: 3103 movi r1, 3 + 479e: 3014 movi r0, 20 + 47a0: e3ffffea bsr 0x4774 // 4774 +} + 47a4: 1490 pop r15 + +Disassembly of section .text.RC522_ClearBitMask: + +000047a6 : +{ + 47a6: 14d2 push r4-r5, r15 + 47a8: 6d47 mov r5, r1 + 47aa: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 47ac: e3ffff8a bsr 0x46c0 // 46c0 + RC522_WriteRawRC(reg,tmp&~mask); // clear bit mask + 47b0: 6815 andn r0, r5 + 47b2: 7440 zextb r1, r0 + 47b4: 6c13 mov r0, r4 + 47b6: e3ffffa1 bsr 0x46f8 // 46f8 +} + 47ba: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOff: + +000047bc : +{ + 47bc: 14d0 push r15 + RC522_ClearBitMask(TxControlReg,0x03); //清RC522寄存器位 + 47be: 3103 movi r1, 3 + 47c0: 3014 movi r0, 20 + 47c2: e3fffff2 bsr 0x47a6 // 47a6 +} + 47c6: 1490 pop r15 + +Disassembly of section .text.RC522_CalulateCRC: + +000047c8 : +{ + 47c8: 14d3 push r4-r6, r15 + 47ca: 6d03 mov r4, r0 + 47cc: 6d87 mov r6, r1 + RC522_ClearBitMask(DivIrqReg,0x04); //CRCIrq = 0 + 47ce: 3005 movi r0, 5 + 47d0: 3104 movi r1, 4 +{ + 47d2: 6d4b mov r5, r2 + RC522_ClearBitMask(DivIrqReg,0x04); //CRCIrq = 0 + 47d4: e3ffffe9 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 47d8: 3100 movi r1, 0 + 47da: 3001 movi r0, 1 + 47dc: e3ffff8e bsr 0x46f8 // 46f8 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO指针 + 47e0: 3180 movi r1, 128 + 47e2: 300a movi r0, 10 + 47e4: e3ffffc8 bsr 0x4774 // 4774 + 47e8: 6190 addu r6, r4 + for(i=0;i + RC522_WriteRawRC(CommandReg,PCD_CALCCRC); //等待CRC计算完成 + 47ee: 3103 movi r1, 3 + 47f0: 3001 movi r0, 1 + 47f2: e3ffff83 bsr 0x46f8 // 46f8 + 47f6: 34ff movi r4, 255 + 47f8: 2c00 subi r4, 1 + n=RC522_ReadRawRC(DivIrqReg); + 47fa: 3005 movi r0, 5 + 47fc: 7510 zextb r4, r4 + 47fe: e3ffff61 bsr 0x46c0 // 46c0 + while((i!=0)&&!(n&0x04));//CRCIrq = 1 + 4802: 3c40 cmpnei r4, 0 + 4804: 0c06 bf 0x4810 // 4810 + 4806: 3304 movi r3, 4 + 4808: 680c and r0, r3 + 480a: 7400 zextb r0, r0 + 480c: 3840 cmpnei r0, 0 + 480e: 0ff5 bf 0x47f8 // 47f8 + pOut[0]=RC522_ReadRawRC(CRCResultRegL); + 4810: 3022 movi r0, 34 + 4812: e3ffff57 bsr 0x46c0 // 46c0 + 4816: a500 st.b r0, (r5, 0x0) + pOut[1]=RC522_ReadRawRC(CRCResultRegM); + 4818: 3021 movi r0, 33 + 481a: e3ffff53 bsr 0x46c0 // 46c0 + 481e: a501 st.b r0, (r5, 0x1) +} + 4820: 1493 pop r4-r6, r15 + RC522_WriteRawRC(FIFODataReg,*(pIn +i)); //开始RCR计算 + 4822: 8420 ld.b r1, (r4, 0x0) + 4824: 3009 movi r0, 9 + 4826: e3ffff69 bsr 0x46f8 // 46f8 + 482a: 2400 addi r4, 1 + 482c: 07df br 0x47ea // 47ea + +Disassembly of section .text.M500PcdConfigISOType.part.1: + +0000482e : +char M500PcdConfigISOType(U8_T type) + 482e: 14d0 push r15 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4830: 3108 movi r1, 8 + 4832: 3008 movi r0, 8 + 4834: e3ffffb9 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(ModeReg,0x3D); //3F//CRC初始值0x6363 + 4838: 313d movi r1, 61 + 483a: 3011 movi r0, 17 + 483c: e3ffff5e bsr 0x46f8 // 46f8 + RC522_WriteRawRC(RxSelReg,0x86); //84 + 4840: 3186 movi r1, 134 + 4842: 3017 movi r0, 23 + 4844: e3ffff5a bsr 0x46f8 // 46f8 + RC522_WriteRawRC(RFCfgReg,0x7F); //4F //调整卡的感应距离//RxGain = 48dB调节卡感应距离 + 4848: 317f movi r1, 127 + 484a: 3026 movi r0, 38 + 484c: e3ffff56 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegL,30); //tmoLength);// TReloadVal = 'h6a =tmoLength(dec) + 4850: 311e movi r1, 30 + 4852: 302d movi r0, 45 + 4854: e3ffff52 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegH,0); + 4858: 3100 movi r1, 0 + 485a: 302c movi r0, 44 + 485c: e3ffff4e bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TModeReg,0x8D); + 4860: 318d movi r1, 141 + 4862: 302a movi r0, 42 + 4864: e3ffff4a bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 4868: 313e movi r1, 62 + 486a: 302b movi r0, 43 + 486c: e3ffff46 bsr 0x46f8 // 46f8 + RC522_Delay(1000); + 4870: 30fa movi r0, 250 + 4872: 4002 lsli r0, r0, 2 + 4874: e3fffef2 bsr 0x4658 // 4658 + RC522_PcdAntennaOn(); //开启天线 + 4878: e3ffff8a bsr 0x478c // 478c +} + 487c: 3000 movi r0, 0 + 487e: 1490 pop r15 + +Disassembly of section .text.RC522_Init: + +00004880 : +{ + 4880: 14d1 push r4, r15 + nop; + 4882: 6c03 mov r0, r0 + GPIO_Init(GPIOA0,9,Output); //SCK + 4884: 1184 lrw r4, 0x2000004c // 4914 + 4886: 3200 movi r2, 0 + 4888: 9400 ld.w r0, (r4, 0x0) + 488a: 3109 movi r1, 9 + 488c: e3fff4e0 bsr 0x324c // 324c + GPIO_Init(GPIOA0,10,Output); //MOSI + 4890: 3200 movi r2, 0 + 4892: 9400 ld.w r0, (r4, 0x0) + 4894: 310a movi r1, 10 + 4896: e3fff4db bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOA0,11); + 489a: 9400 ld.w r0, (r4, 0x0) + 489c: 310b movi r1, 11 + 489e: e3fff547 bsr 0x332c // 332c + GPIO_Init(GPIOA0,11,Intput); //MISO + 48a2: 9400 ld.w r0, (r4, 0x0) + 48a4: 3201 movi r2, 1 + GPIO_Init(GPIOB0,5,Output); //CS + 48a6: 109d lrw r4, 0x20000048 // 4918 + GPIO_Init(GPIOA0,11,Intput); //MISO + 48a8: 310b movi r1, 11 + 48aa: e3fff4d1 bsr 0x324c // 324c + GPIO_Init(GPIOB0,5,Output); //CS + 48ae: 9400 ld.w r0, (r4, 0x0) + 48b0: 3200 movi r2, 0 + 48b2: 3105 movi r1, 5 + 48b4: e3fff4cc bsr 0x324c // 324c + GPIO_Init(GPIOB0,4,Output); //RST + 48b8: 9400 ld.w r0, (r4, 0x0) + 48ba: 3200 movi r2, 0 + 48bc: 3104 movi r1, 4 + 48be: e3fff4c7 bsr 0x324c // 324c + GPIO_Init(GPIOB0,3,Intput); //IRQ + 48c2: 3201 movi r2, 1 + 48c4: 9400 ld.w r0, (r4, 0x0) + 48c6: 3103 movi r1, 3 + 48c8: e3fff4c2 bsr 0x324c // 324c + GPIO_Write_High(GPIOB0,5); + 48cc: 9400 ld.w r0, (r4, 0x0) + 48ce: 3105 movi r1, 5 + 48d0: e3fff53f bsr 0x334e // 334e + GPIO_Write_High(GPIOB0,4); + 48d4: 3104 movi r1, 4 + 48d6: 9400 ld.w r0, (r4, 0x0) + 48d8: e3fff53b bsr 0x334e // 334e + RC522_PcdReset(); //复位RC522 + 48dc: e3ffff26 bsr 0x4728 // 4728 + RC522_PcdAntennaOff(); //关闭天线 + 48e0: e3ffff6e bsr 0x47bc // 47bc + RC522_Delay(2); //延时2毫秒 + 48e4: 3002 movi r0, 2 + 48e6: e3fffeb9 bsr 0x4658 // 4658 + RC522_PcdAntennaOn(); //开启天线 + 48ea: e3ffff51 bsr 0x478c // 478c + memset(&CardInfo,0x00,sizeof(CardInfo)); + 48ee: 108c lrw r4, 0x2000041b // 491c + 48f0: e3ffff9f bsr 0x482e // 482e + 48f4: 3228 movi r2, 40 + 48f6: 3100 movi r1, 0 + 48f8: 6c13 mov r0, r4 + 48fa: e3ffe891 bsr 0x1a1c // 1a1c <__memset_fast> + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 48fe: 3318 movi r3, 24 + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 4900: 6c13 mov r0, r4 + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 4902: a468 st.b r3, (r4, 0x8) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 4904: 3206 movi r2, 6 + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 4906: 3360 movi r3, 96 + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 4908: 31ff movi r1, 255 + 490a: 201f addi r0, 32 + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 490c: a47f st.b r3, (r4, 0x1f) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 490e: e3ffe887 bsr 0x1a1c // 1a1c <__memset_fast> +} + 4912: 1491 pop r4, r15 + 4914: 2000004c .long 0x2000004c + 4918: 20000048 .long 0x20000048 + 491c: 2000041b .long 0x2000041b + +Disassembly of section .text.RC522_PcdComMF522: + +00004920 : +{ + 4920: 14d4 push r4-r7, r15 + 4922: 1424 subi r14, r14, 16 + 4924: b861 st.w r3, (r14, 0x4) + switch (Command) { + 4926: 384c cmpnei r0, 12 +{ + 4928: 9869 ld.w r3, (r14, 0x24) + 492a: 6d43 mov r5, r0 + 492c: 6dc7 mov r7, r1 + 492e: b860 st.w r3, (r14, 0x0) + switch (Command) { + 4930: 0c4c bf 0x49c8 // 49c8 + 4932: 384e cmpnei r0, 14 + 4934: 0c4d bf 0x49ce // 49ce + U8_T waitFor=0x00; + 4936: 3600 movi r6, 0 + U8_T irqEn=0x00; + 4938: 3400 movi r4, 0 + RC522_WriteRawRC(ComIEnReg,irqEn|0x80); + 493a: 6c53 mov r1, r4 + 493c: 39a7 bseti r1, 7 + 493e: 3002 movi r0, 2 + 4940: b842 st.w r2, (r14, 0x8) + 4942: e3fffedb bsr 0x46f8 // 46f8 + RC522_ClearBitMask(ComIrqReg,0x80); //清所有中断位 + 4946: 3180 movi r1, 128 + 4948: 3004 movi r0, 4 + 494a: e3ffff2e bsr 0x47a6 // 47a6 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 494e: 3100 movi r1, 0 + 4950: 3001 movi r0, 1 + 4952: e3fffed3 bsr 0x46f8 // 46f8 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO缓存 + 4956: 3180 movi r1, 128 + 4958: 300a movi r0, 10 + 495a: e3ffff0d bsr 0x4774 // 4774 + for(i=0;i + RC522_WriteRawRC(CommandReg,Command); + 496a: 6c57 mov r1, r5 + 496c: 3001 movi r0, 1 + 496e: e3fffec5 bsr 0x46f8 // 46f8 + if(Command==PCD_TRANSCEIVE) + 4972: 3d4c cmpnei r5, 12 + 4974: 0805 bt 0x497e // 497e + RC522_SetBitMask(BitFramingReg,0x80); //开始传送 + 4976: 3180 movi r1, 128 + 4978: 300d movi r0, 13 + 497a: e3fffefd bsr 0x4774 // 4774 + for(i=0;i + i--; + 498c: 9862 ld.w r3, (r14, 0x8) + 498e: 2b00 subi r3, 1 + 4990: 74cd zexth r3, r3 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 4992: 3b40 cmpnei r3, 0 + n=RC522_ReadRawRC(ComIrqReg); + 4994: 6dc3 mov r7, r0 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 4996: 0c05 bf 0x49a0 // 49a0 + 4998: 6c83 mov r2, r0 + 499a: 6898 and r2, r6 + 499c: 3a40 cmpnei r2, 0 + 499e: 0ff3 bf 0x4984 // 4984 + RC522_ClearBitMask(BitFramingReg,0x80); + 49a0: 3180 movi r1, 128 + 49a2: 300d movi r0, 13 + 49a4: b862 st.w r3, (r14, 0x8) + 49a6: e3ffff00 bsr 0x47a6 // 47a6 + if(i!=0) + 49aa: 9862 ld.w r3, (r14, 0x8) + 49ac: 3b40 cmpnei r3, 0 + 49ae: 081f bt 0x49ec // 49ec + char stats=MI_ERR; + 49b0: 3702 movi r7, 2 + RC522_SetBitMask(ControlReg,0x80);// stop timer now + 49b2: 3180 movi r1, 128 + 49b4: 300c movi r0, 12 + 49b6: e3fffedf bsr 0x4774 // 4774 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 49ba: 3100 movi r1, 0 + 49bc: 3001 movi r0, 1 + 49be: e3fffe9d bsr 0x46f8 // 46f8 +} + 49c2: 6c1f mov r0, r7 + 49c4: 1404 addi r14, r14, 16 + 49c6: 1494 pop r4-r7, r15 + waitFor = 0x30; + 49c8: 3630 movi r6, 48 + irqEn = 0x77; + 49ca: 3477 movi r4, 119 + break; + 49cc: 07b7 br 0x493a // 493a + waitFor = 0x10; + 49ce: 3610 movi r6, 16 + irqEn = 0x12; + 49d0: 3412 movi r4, 18 + 49d2: 07b4 br 0x493a // 493a + RC522_WriteRawRC(FIFODataReg,pIn[i]); + 49d4: 8320 ld.b r1, (r3, 0x0) + 49d6: 3009 movi r0, 9 + 49d8: b843 st.w r2, (r14, 0xc) + 49da: b862 st.w r3, (r14, 0x8) + for(i=0;i + 49e2: 9862 ld.w r3, (r14, 0x8) + for(i=0;i + if(!(RC522_ReadRawRC(ErrorReg)&0x1B)) + 49ec: 3006 movi r0, 6 + 49ee: e3fffe69 bsr 0x46c0 // 46c0 + 49f2: 331b movi r3, 27 + 49f4: 680c and r0, r3 + 49f6: 3840 cmpnei r0, 0 + 49f8: 0bdc bt 0x49b0 // 49b0 + stats=MI_OK; + 49fa: 3301 movi r3, 1 + 49fc: 690c and r4, r3 + if(Command==PCD_TRANSCEIVE) + 49fe: 3d4c cmpnei r5, 12 + stats=MI_OK; + 4a00: 69d0 and r7, r4 + if(Command==PCD_TRANSCEIVE) + 4a02: 0bd8 bt 0x49b2 // 49b2 + n=RC522_ReadRawRC(FIFOLevelReg); + 4a04: 300a movi r0, 10 + 4a06: e3fffe5d bsr 0x46c0 // 46c0 + 4a0a: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 4a0c: 300c movi r0, 12 + 4a0e: e3fffe59 bsr 0x46c0 // 46c0 + 4a12: 3307 movi r3, 7 + 4a14: 680c and r0, r3 + if(lastBits) + 4a16: 3840 cmpnei r0, 0 + 4a18: 0c1b bf 0x4a4e // 4a4e + *pOutLenBit=(n-1)*8+lastBits; + 4a1a: 5c63 subi r3, r4, 1 + 4a1c: 4363 lsli r3, r3, 3 + 4a1e: 600c addu r0, r3 + 4a20: 9860 ld.w r3, (r14, 0x0) + 4a22: a300 st.b r0, (r3, 0x0) + if(n==0)n=1; + 4a24: 3c40 cmpnei r4, 0 + 4a26: 0c18 bf 0x4a56 // 4a56 + 4a28: 6cd3 mov r3, r4 + 4a2a: 7510 zextb r4, r4 + 4a2c: 3c12 cmphsi r4, 19 + 4a2e: 0c02 bf 0x4a32 // 4a32 + 4a30: 3312 movi r3, 18 + 4a32: 74cc zextb r3, r3 + 4a34: 98c1 ld.w r6, (r14, 0x4) + for(i=0; i + pOut[i]=RC522_ReadRawRC(FIFODataReg); + 4a3e: 3009 movi r0, 9 + 4a40: e3fffe40 bsr 0x46c0 // 46c0 + for(i=0; i + *pOutLenBit=n*8; + 4a4e: 4463 lsli r3, r4, 3 + 4a50: 9840 ld.w r2, (r14, 0x0) + 4a52: a260 st.b r3, (r2, 0x0) + 4a54: 07e8 br 0x4a24 // 4a24 + if(n==0)n=1; + 4a56: 3301 movi r3, 1 + 4a58: 07ee br 0x4a34 // 4a34 + +Disassembly of section .text.RC522_PcdSelect: + +00004a5a : +{ + 4a5a: 14d1 push r4, r15 + 4a5c: 1427 subi r14, r14, 28 + ucComMF522Buf[0]=PICC_ANTICOLL1; + 4a5e: 3300 movi r3, 0 + 4a60: 2b6c subi r3, 109 + 4a62: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x70; + 4a66: 3370 movi r3, 112 + 4a68: dc6e0009 st.b r3, (r14, 0x9) + ucComMF522Buf[6]=0; + 4a6c: 3300 movi r3, 0 + 4a6e: dc6e000e st.b r3, (r14, 0xe) + 4a72: 1a02 addi r2, r14, 8 + 4a74: 582e addi r1, r0, 4 + ucComMF522Buf[i+2]=*(pSnr+i); + 4a76: 8060 ld.b r3, (r0, 0x0) + 4a78: a262 st.b r3, (r2, 0x2) + ucComMF522Buf[6]^=*(pSnr+i); + 4a7a: d88e000e ld.b r4, (r14, 0xe) + 4a7e: 2000 addi r0, 1 + 4a80: 6cd1 xor r3, r4 + for(i=0;i<4;i++) + 4a82: 6442 cmpne r0, r1 + ucComMF522Buf[6]^=*(pSnr+i); + 4a84: dc6e000e st.b r3, (r14, 0xe) + 4a88: 2200 addi r2, 1 + for(i=0;i<4;i++) + 4a8a: 0bf6 bt 0x4a76 // 4a76 + RC522_CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]); //用MF522计算CRC16函数,校验数据 + 4a8c: 1b02 addi r3, r14, 8 + 4a8e: 5b5a addi r2, r3, 7 + 4a90: 6c0f mov r0, r3 + 4a92: 3107 movi r1, 7 + 4a94: e3fffe9a bsr 0x47c8 // 47c8 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen); + 4a98: 3407 movi r4, 7 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4a9a: 3108 movi r1, 8 + 4a9c: 3008 movi r0, 8 + 4a9e: e3fffe84 bsr 0x47a6 // 47a6 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen); + 4aa2: 6138 addu r4, r14 + 4aa4: 1b02 addi r3, r14, 8 + 4aa6: b880 st.w r4, (r14, 0x0) + 4aa8: 3209 movi r2, 9 + 4aaa: 6c4f mov r1, r3 + 4aac: 300c movi r0, 12 + 4aae: e3ffff39 bsr 0x4920 // 4920 + if((stats==MI_OK)&&(unLen==0x18))stats=MI_OK; + 4ab2: 3840 cmpnei r0, 0 + 4ab4: 0806 bt 0x4ac0 // 4ac0 + 4ab6: 8460 ld.b r3, (r4, 0x0) + 4ab8: 3b58 cmpnei r3, 24 + 4aba: 0803 bt 0x4ac0 // 4ac0 +} + 4abc: 1407 addi r14, r14, 28 + 4abe: 1491 pop r4, r15 + else stats=MI_ERR; + 4ac0: 3002 movi r0, 2 + 4ac2: 07fd br 0x4abc // 4abc + +Disassembly of section .text.RC522_PcdAuthState: + +00004ac4 : +{ + 4ac4: 14d2 push r4-r5, r15 + 4ac6: 1427 subi r14, r14, 28 + 4ac8: 6d0f mov r4, r3 + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 4aca: 1b02 addi r3, r14, 8 +{ + 4acc: 6d47 mov r5, r1 + ucComMF522Buf[0]=auth_mode; + 4ace: dc0e0008 st.b r0, (r14, 0x8) +{ + 4ad2: 6c4b mov r1, r2 + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 4ad4: 5b06 addi r0, r3, 2 + 4ad6: 3206 movi r2, 6 + ucComMF522Buf[1]=addr; + 4ad8: dcae0009 st.b r5, (r14, 0x9) + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 4adc: e3ffe7e4 bsr 0x1aa4 // 1aa4 <__memcpy_fast> + memcpy(&ucComMF522Buf[8],pSnr,4); + 4ae0: 1b02 addi r3, r14, 8 + 4ae2: 6c53 mov r1, r4 + 4ae4: 5b1e addi r0, r3, 8 + 4ae6: 3204 movi r2, 4 + 4ae8: e3ffe7de bsr 0x1aa4 // 1aa4 <__memcpy_fast> + stats=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen); + 4aec: 3307 movi r3, 7 + 4aee: 60f8 addu r3, r14 + 4af0: b860 st.w r3, (r14, 0x0) + 4af2: 1b02 addi r3, r14, 8 + 4af4: 320c movi r2, 12 + 4af6: 6c4f mov r1, r3 + 4af8: 300e movi r0, 14 + 4afa: e3ffff13 bsr 0x4920 // 4920 + if((stats!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))stats = MI_ERR; + 4afe: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen); + 4b00: 6d03 mov r4, r0 + if((stats!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))stats = MI_ERR; + 4b02: 0809 bt 0x4b14 // 4b14 + 4b04: 3008 movi r0, 8 + 4b06: e3fffddd bsr 0x46c0 // 46c0 + 4b0a: 3308 movi r3, 8 + 4b0c: 680c and r0, r3 + 4b0e: 7400 zextb r0, r0 + 4b10: 3840 cmpnei r0, 0 + 4b12: 0802 bt 0x4b16 // 4b16 + 4b14: 3402 movi r4, 2 +} + 4b16: 6c13 mov r0, r4 + 4b18: 1407 addi r14, r14, 28 + 4b1a: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdRequest: + +00004b1c : +{ + 4b1c: 14d2 push r4-r5, r15 + 4b1e: 1427 subi r14, r14, 28 + 4b20: 6d43 mov r5, r0 + 4b22: 6d07 mov r4, r1 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位,/接收数据命令 + 4b24: 3008 movi r0, 8 + 4b26: 3108 movi r1, 8 + 4b28: e3fffe3f bsr 0x47a6 // 47a6 + RC522_WriteRawRC(BitFramingReg,0x07); //写RC632寄存器 + 4b2c: 3107 movi r1, 7 + 4b2e: 300d movi r0, 13 + 4b30: e3fffde4 bsr 0x46f8 // 46f8 + RC522_SetBitMask(TxControlReg,0x03); //置RC522寄存器位 + 4b34: 3103 movi r1, 3 + 4b36: 3014 movi r0, 20 + 4b38: e3fffe1e bsr 0x4774 // 4774 + ucComMF522Buf[0]=req_code; //寻卡方式 + 4b3c: dcae0008 st.b r5, (r14, 0x8) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4b40: 3507 movi r5, 7 + 4b42: 1b02 addi r3, r14, 8 + 4b44: 6178 addu r5, r14 + 4b46: b8a0 st.w r5, (r14, 0x0) + 4b48: 3201 movi r2, 1 + 4b4a: 6c4f mov r1, r3 + 4b4c: 300c movi r0, 12 + 4b4e: e3fffee9 bsr 0x4920 // 4920 + if ((stats == MI_OK) && (unLen == 0x10)) { + 4b52: 3840 cmpnei r0, 0 + 4b54: 080c bt 0x4b6c // 4b6c + 4b56: 8560 ld.b r3, (r5, 0x0) + 4b58: 3b50 cmpnei r3, 16 + 4b5a: 0809 bt 0x4b6c // 4b6c + *pTagType = ucComMF522Buf[0]; //将数组里的数据赋值给*pTagType + 4b5c: d86e0008 ld.b r3, (r14, 0x8) + 4b60: a460 st.b r3, (r4, 0x0) + *(pTagType + 1) = ucComMF522Buf[1]; + 4b62: d86e0009 ld.b r3, (r14, 0x9) + 4b66: a461 st.b r3, (r4, 0x1) +} + 4b68: 1407 addi r14, r14, 28 + 4b6a: 1492 pop r4-r5, r15 + stats = MI_ERR; + 4b6c: 3002 movi r0, 2 + 4b6e: 07fd br 0x4b68 // 4b68 + +Disassembly of section .text.RC522_PcdAnticoll: + +00004b70 : +{ + 4b70: 14d2 push r4-r5, r15 + 4b72: 1427 subi r14, r14, 28 + 4b74: 6d43 mov r5, r0 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4b76: 3108 movi r1, 8 + 4b78: 3008 movi r0, 8 + 4b7a: e3fffe16 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(BitFramingReg,0x00); //写 + 4b7e: 3100 movi r1, 0 + 4b80: 300d movi r0, 13 + 4b82: e3fffdbb bsr 0x46f8 // 46f8 + RC522_ClearBitMask(CollReg,0x80); //清 + 4b86: 3180 movi r1, 128 + 4b88: 300e movi r0, 14 + 4b8a: e3fffe0e bsr 0x47a6 // 47a6 + ucComMF522Buf[0]=PICC_ANTICOLL1; //PICC_ANTICOLL1 = 0x93 + 4b8e: 3300 movi r3, 0 + 4b90: 2b6c subi r3, 109 + 4b92: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x20; + 4b96: 3320 movi r3, 32 + 4b98: dc6e0009 st.b r3, (r14, 0x9) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4b9c: 3307 movi r3, 7 + 4b9e: 60f8 addu r3, r14 + 4ba0: b860 st.w r3, (r14, 0x0) + 4ba2: 1b02 addi r3, r14, 8 + 4ba4: 3202 movi r2, 2 + 4ba6: 6c4f mov r1, r3 + 4ba8: 300c movi r0, 12 + 4baa: e3fffebb bsr 0x4920 // 4920 + if(stats==MI_OK) + 4bae: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4bb0: 6d03 mov r4, r0 + if(stats==MI_OK) + 4bb2: 0812 bt 0x4bd6 // 4bd6 + 4bb4: 3300 movi r3, 0 + 4bb6: 3200 movi r2, 0 + *(pSnr+i)=ucComMF522Buf[i]; //把读到的卡号赋值给pSnr + 4bb8: 1902 addi r1, r14, 8 + 4bba: 604c addu r1, r3 + 4bbc: 8120 ld.b r1, (r1, 0x0) + 4bbe: 5d0c addu r0, r5, r3 + 4bc0: 2300 addi r3, 1 + 4bc2: a020 st.b r1, (r0, 0x0) + for(i=0;i<4;i++) + 4bc4: 3b44 cmpnei r3, 4 + snr_check^=ucComMF522Buf[i]; + 4bc6: 6c49 xor r1, r2 + 4bc8: 6c87 mov r2, r1 + for(i=0;i<4;i++) + 4bca: 0bf7 bt 0x4bb8 // 4bb8 + if(snr_check!=ucComMF522Buf[i]) + 4bcc: d86e000c ld.b r3, (r14, 0xc) + 4bd0: 644e cmpne r3, r1 + 4bd2: 0c02 bf 0x4bd6 // 4bd6 + stats = MI_ERR; + 4bd4: 3402 movi r4, 2 + RC522_SetBitMask(CollReg,0x80); + 4bd6: 3180 movi r1, 128 + 4bd8: 300e movi r0, 14 + 4bda: e3fffdcd bsr 0x4774 // 4774 +} + 4bde: 6c13 mov r0, r4 + 4be0: 1407 addi r14, r14, 28 + 4be2: 1492 pop r4-r5, r15 + +Disassembly of section .text.Card_Read_TasK: + +00004be4 : + + +//U32_T FailNum = 0; +U32_T scan_tick = 0; +U16_T test_count = 0; +void Card_Read_TasK(void){ + 4be4: 14d3 push r4-r6, r15 + + if(SysTick_1ms - scan_tick >= 100){ + 4be6: 114d lrw r2, 0x200000b4 // 4c98 + 4be8: 11cd lrw r6, 0x200002d4 // 4c9c + 4bea: 118e lrw r4, 0x2000041b // 4ca0 + 4bec: 9620 ld.w r1, (r6, 0x0) + 4bee: 9260 ld.w r3, (r2, 0x0) + 4bf0: 60c6 subu r3, r1 + 4bf2: 3163 movi r1, 99 + 4bf4: 64c4 cmphs r1, r3 + 4bf6: 082c bt 0x4c4e // 4c4e + scan_tick = SysTick_1ms; + +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read"); + + //寻卡: 识别天线范围内全部卡 + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4bf8: 3119 movi r1, 25 + scan_tick = SysTick_1ms; + 4bfa: 9260 ld.w r3, (r2, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4bfc: 6050 addu r1, r4 + 4bfe: 3052 movi r0, 82 + scan_tick = SysTick_1ms; + 4c00: b660 st.w r3, (r6, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4c02: e3ffff8d bsr 0x4b1c // 4b1c + 4c06: 3520 movi r5, 32 + 4c08: 3840 cmpnei r0, 0 + 4c0a: 6150 addu r5, r4 + 4c0c: 0836 bt 0x4c78 // 4c78 + CardInfo.FailNum = 0x00; + 4c0e: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 4c10: 1125 lrw r1, 0x5f85 // 4ca4 + CardInfo.FailNum = 0x00; + 4c12: a566 st.b r3, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 4c14: e3fffcd6 bsr 0x45c0 // 45c0 + //防冲撞:获取IC卡的卡号 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4c18: 301b movi r0, 27 + 4c1a: 6010 addu r0, r4 + 4c1c: e3ffffaa bsr 0x4b70 // 4b70 + 4c20: 3840 cmpnei r0, 0 + 4c22: 0829 bt 0x4c74 // 4c74 + //选定要进行操作的卡片 + if(RC522_PcdSelect(CardInfo.SN)==MI_OK){ + 4c24: 301b movi r0, 27 + 4c26: 6010 addu r0, r4 + 4c28: e3ffff19 bsr 0x4a5a // 4a5a + 4c2c: 3840 cmpnei r0, 0 + 4c2e: 0821 bt 0x4c70 // 4c70 + //验证卡片密码 + if(RC522_PcdAuthState(CardInfo.CardKeyType, CardInfo.BlockLoc, CardInfo.CardKey, CardInfo.SN)==MI_OK){ + 4c30: 331b movi r3, 27 + 4c32: 8428 ld.b r1, (r4, 0x8) + 4c34: 841f ld.b r0, (r4, 0x1f) + 4c36: 60d0 addu r3, r4 + 4c38: 6c97 mov r2, r5 + 4c3a: e3ffff45 bsr 0x4ac4 // 4ac4 + 4c3e: 3840 cmpnei r0, 0 + 4c40: 0813 bt 0x4c66 // 4c66 + //读取指定块的数据 +// if(RC522_PcdRead(CardInfo.BlockLoc, CardInfo.CradDataBuf)==MI_OK) + { + + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Block %d",CardInfo.BlockLoc); + 4c42: 8448 ld.b r2, (r4, 0x8) + 4c44: 1039 lrw r1, 0x5f95 // 4ca8 + 4c46: e3fffcbd bsr 0x45c0 // 45c0 + + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS, "Card Data",CardInfo.CradDataBuf,BLOCK_HAVE_BYTE); + + CardInfo.BlockSucc = BLOCK_READ_SUCC; + 4c4a: 3301 movi r3, 1 + 4c4c: a467 st.b r3, (r4, 0x7) + CardInfo.FailNum++; + } + } + } + + if(CardInfo.BlockSucc != CardInfo.BlockLast){ + 4c4e: 8467 ld.b r3, (r4, 0x7) + 4c50: 8446 ld.b r2, (r4, 0x6) + 4c52: 64ca cmpne r2, r3 + 4c54: 0c08 bf 0x4c64 // 4c64 + CardInfo.BlockLast = CardInfo.BlockSucc; + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4c56: 3b41 cmpnei r3, 1 + CardInfo.BlockLast = CardInfo.BlockSucc; + 4c58: a466 st.b r3, (r4, 0x6) + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4c5a: 0805 bt 0x4c64 // 4c64 + + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read SUCC"); + 4c5c: 1034 lrw r1, 0x5fe7 // 4cac + 4c5e: 3000 movi r0, 0 + 4c60: e3fffcb0 bsr 0x45c0 // 45c0 + + } + } + + +} + 4c64: 1493 pop r4-r6, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Key Error"); + 4c66: 1033 lrw r1, 0x5fa3 // 4cb0 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 4c68: 3000 movi r0, 0 + 4c6a: e3fffcab bsr 0x45c0 // 45c0 + 4c6e: 07f0 br 0x4c4e // 4c4e + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Select Error"); + 4c70: 1031 lrw r1, 0x5fb2 // 4cb4 + 4c72: 07fb br 0x4c68 // 4c68 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 4c74: 1031 lrw r1, 0x5fc4 // 4cb8 + 4c76: 07f9 br 0x4c68 // 4c68 + if(CardInfo.FailNum >= 5){ + 4c78: 8566 ld.b r3, (r5, 0x6) + 4c7a: 3b04 cmphsi r3, 5 + 4c7c: 0c0b bf 0x4c92 // 4c92 + CardInfo.FailNum = 0; + 4c7e: 3300 movi r3, 0 + 4c80: a566 st.b r3, (r5, 0x6) + CardInfo.SuccNum = 0; + 4c82: a567 st.b r3, (r5, 0x7) + test_count ++; + 4c84: 8e62 ld.h r3, (r6, 0x4) + 4c86: 2300 addi r3, 1 + 4c88: ae62 st.h r3, (r6, 0x4) + CardInfo.BlockSucc = BLOCK_READ_FAILD; + 4c8a: 3300 movi r3, 0 + 4c8c: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_FAILD"); + 4c8e: 102c lrw r1, 0x5fd6 // 4cbc + 4c90: 07ec br 0x4c68 // 4c68 + CardInfo.FailNum++; + 4c92: 2300 addi r3, 1 + 4c94: a566 st.b r3, (r5, 0x6) + 4c96: 07dc br 0x4c4e // 4c4e + 4c98: 200000b4 .long 0x200000b4 + 4c9c: 200002d4 .long 0x200002d4 + 4ca0: 2000041b .long 0x2000041b + 4ca4: 00005f85 .long 0x00005f85 + 4ca8: 00005f95 .long 0x00005f95 + 4cac: 00005fe7 .long 0x00005fe7 + 4cb0: 00005fa3 .long 0x00005fa3 + 4cb4: 00005fb2 .long 0x00005fb2 + 4cb8: 00005fc4 .long 0x00005fc4 + 4cbc: 00005fd6 .long 0x00005fd6 + +Disassembly of section .text.RLY_Light_Ctrl.part.0: + +00004cc0 : + } +} + + +///无RF模块继电器和背光控制函数 +void RLY_Light_Ctrl(U8_T state) + 4cc0: 14d0 push r15 +{ + if(state == 0x01) + { + CTRL_RLY_ON; + 4cc2: 1064 lrw r3, 0x2000004c // 4cd0 + 4cc4: 3100 movi r1, 0 + 4cc6: 9300 ld.w r0, (r3, 0x0) + 4cc8: e3fff347 bsr 0x3356 // 3356 + else if(state == 0x00) + { + CTRL_RLY_OFF; +// Ctrl_Backlight(1); + } +} + 4ccc: 1490 pop r15 + 4cce: 0000 bkpt + 4cd0: 2000004c .long 0x2000004c + +Disassembly of section .text.KEY1_LONG_PRESS_RELEASE_Handler: + +00004cd4 : + + +U8_T LED_STATE = 0; +///无RF模块的门磁长按释放事件 +void KEY1_LONG_PRESS_RELEASE_Handler(void* btn) +{ + 4cd4: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_RELEASE_Handler"); + 4cd6: 1034 lrw r1, 0x5fff // 4d24 + 4cd8: 3000 movi r0, 0 + 4cda: e3fffc73 bsr 0x45c0 // 45c0 + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4cde: 1073 lrw r3, 0x2000041b // 4d28 + 4ce0: 8367 ld.b r3, (r3, 0x7) + 4ce2: 3b40 cmpnei r3, 0 + 4ce4: 1092 lrw r4, 0x2000047c // 4d2c + 4ce6: 081b bt 0x4d1c // 4d1c + { + if(READ_RLY_STATE != 0x00) + 4ce8: 1072 lrw r3, 0x2000004c // 4d30 + 4cea: 3100 movi r1, 0 + 4cec: 9300 ld.w r0, (r3, 0x0) + 4cee: e3fff34b bsr 0x3384 // 3384 + 4cf2: 3840 cmpnei r0, 0 + 4cf4: 0c0a bf 0x4d08 // 4d08 + 4cf6: e3ffffe5 bsr 0x4cc0 // 4cc0 + { + RLY_Light_Ctrl(1); + LED_STATE = 4; + 4cfa: 106f lrw r3, 0x200002e0 // 4d34 + 4cfc: 3204 movi r2, 4 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 4cfe: 102f lrw r1, 0x601a // 4d38 + 4d00: 3000 movi r0, 0 + LED_STATE = 4; + 4d02: a340 st.b r2, (r3, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 4d04: e3fffc5e bsr 0x45c0 // 45c0 + } + dm_in.DM_Tick = SysTick_1ms; + 4d08: 106d lrw r3, 0x200000b4 // 4d3c + 4d0a: 104e lrw r2, 0x2000047d // 4d40 + 4d0c: 9360 ld.w r3, (r3, 0x0) + 4d0e: 4b28 lsri r1, r3, 8 + 4d10: a461 st.b r3, (r4, 0x1) + 4d12: a221 st.b r1, (r2, 0x1) + 4d14: 4b30 lsri r1, r3, 16 + 4d16: 4b78 lsri r3, r3, 24 + 4d18: a222 st.b r1, (r2, 0x2) + 4d1a: a263 st.b r3, (r2, 0x3) + } + + dm_in.DM_State = 0x02; + 4d1c: 3302 movi r3, 2 + 4d1e: a460 st.b r3, (r4, 0x0) +} + 4d20: 1491 pop r4, r15 + 4d22: 0000 bkpt + 4d24: 00005fff .long 0x00005fff + 4d28: 2000041b .long 0x2000041b + 4d2c: 2000047c .long 0x2000047c + 4d30: 2000004c .long 0x2000004c + 4d34: 200002e0 .long 0x200002e0 + 4d38: 0000601a .long 0x0000601a + 4d3c: 200000b4 .long 0x200000b4 + 4d40: 2000047d .long 0x2000047d + +Disassembly of section .text.RLY_Light_Ctrl: + +00004d44 : +{ + 4d44: 14d0 push r15 + if(state == 0x01) + 4d46: 3841 cmpnei r0, 1 + 4d48: 0804 bt 0x4d50 // 4d50 + 4d4a: e3ffffbb bsr 0x4cc0 // 4cc0 +} + 4d4e: 1490 pop r15 + else if(state == 0x00) + 4d50: 3840 cmpnei r0, 0 + 4d52: 0bfe bt 0x4d4e // 4d4e + CTRL_RLY_OFF; + 4d54: 1063 lrw r3, 0x2000004c // 4d60 + 4d56: 3100 movi r1, 0 + 4d58: 9300 ld.w r0, (r3, 0x0) + 4d5a: e3fff2fa bsr 0x334e // 334e +} + 4d5e: 07f8 br 0x4d4e // 4d4e + 4d60: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Init: + +00004d64 : +{ + 4d64: 14d1 push r4, r15 + GPIO_Init(GPIOB0,CARD_SENS_PIN,Output); //CARD_SENS + 4d66: 108d lrw r4, 0x20000048 // 4d98 + 4d68: 3200 movi r2, 0 + 4d6a: 9400 ld.w r0, (r4, 0x0) + 4d6c: 3100 movi r1, 0 + 4d6e: e3fff26f bsr 0x324c // 324c + CTRL_CARD_OUT; + 4d72: 9400 ld.w r0, (r4, 0x0) + 4d74: 3100 movi r1, 0 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Intput); //LED_IN + 4d76: 108a lrw r4, 0x2000004c // 4d9c + CTRL_CARD_OUT; + 4d78: e3fff2eb bsr 0x334e // 334e + GPIO_Init(GPIOA0,LED_INPUT_PIN,Intput); //LED_IN + 4d7c: 3201 movi r2, 1 + 4d7e: 9400 ld.w r0, (r4, 0x0) + 4d80: 310c movi r1, 12 + 4d82: e3fff265 bsr 0x324c // 324c + g_read.Led_state = READ_LED_IN; + 4d86: 9400 ld.w r0, (r4, 0x0) + 4d88: 310c movi r1, 12 + 4d8a: e3fff2f5 bsr 0x3374 // 3374 + 4d8e: 1065 lrw r3, 0x20000444 // 4da0 + g_read.last_state = g_read.Led_state; + 4d90: a302 st.b r0, (r3, 0x2) + g_read.Led_state = READ_LED_IN; + 4d92: a303 st.b r0, (r3, 0x3) +} + 4d94: 1491 pop r4, r15 + 4d96: 0000 bkpt + 4d98: 20000048 .long 0x20000048 + 4d9c: 2000004c .long 0x2000004c + 4da0: 20000444 .long 0x20000444 + +Disassembly of section .text.Debounce_Task: + +00004da4 : +void Debounce_Task(void){ + 4da4: 14d1 push r4, r15 + if (SysTick_1ms - g_read.read_tick >= 10) { + 4da6: 1097 lrw r4, 0x20000444 // 4e00 + 4da8: 8445 ld.b r2, (r4, 0x5) + 4daa: 8464 ld.b r3, (r4, 0x4) + 4dac: 4248 lsli r2, r2, 8 + 4dae: 6c8c or r2, r3 + 4db0: 8466 ld.b r3, (r4, 0x6) + 4db2: 4370 lsli r3, r3, 16 + 4db4: 6c8c or r2, r3 + 4db6: 8467 ld.b r3, (r4, 0x7) + 4db8: 1013 lrw r0, 0x200000b4 // 4e04 + 4dba: 4378 lsli r3, r3, 24 + 4dbc: 9020 ld.w r1, (r0, 0x0) + 4dbe: 6cc8 or r3, r2 + 4dc0: 604e subu r1, r3 + 4dc2: 3909 cmphsi r1, 10 + 4dc4: 0c17 bf 0x4df2 // 4df2 + g_read.read_tick = SysTick_1ms; + 4dc6: 9060 ld.w r3, (r0, 0x0) + 4dc8: 4b48 lsri r2, r3, 8 + 4dca: a464 st.b r3, (r4, 0x4) + 4dcc: a445 st.b r2, (r4, 0x5) + 4dce: 4b50 lsri r2, r3, 16 + 4dd0: 4b78 lsri r3, r3, 24 + 4dd2: a467 st.b r3, (r4, 0x7) + g_read.read_state = READ_LED_IN; + 4dd4: 310c movi r1, 12 + 4dd6: 106d lrw r3, 0x2000004c // 4e08 + 4dd8: 9300 ld.w r0, (r3, 0x0) + g_read.read_tick = SysTick_1ms; + 4dda: a446 st.b r2, (r4, 0x6) + g_read.read_state = READ_LED_IN; + 4ddc: e3fff2cc bsr 0x3374 // 3374 + if (g_read.read_state == g_read.last_state) { + 4de0: 8442 ld.b r2, (r4, 0x2) + 4de2: 640a cmpne r2, r0 + g_read.read_state = READ_LED_IN; + 4de4: a401 st.b r0, (r4, 0x1) + if (g_read.read_state == g_read.last_state) { + 4de6: 0809 bt 0x4df8 // 4df8 + if (g_read.read_count < debounce_count) { + 4de8: 8460 ld.b r3, (r4, 0x0) + 4dea: 3b02 cmphsi r3, 3 + 4dec: 0804 bt 0x4df4 // 4df4 + g_read.read_count++; + 4dee: 2300 addi r3, 1 + 4df0: a460 st.b r3, (r4, 0x0) +} + 4df2: 1491 pop r4, r15 + g_read.Led_state = g_read.read_state; + 4df4: a443 st.b r2, (r4, 0x3) + 4df6: 07fe br 0x4df2 // 4df2 + g_read.read_count=0; + 4df8: 3300 movi r3, 0 + 4dfa: a460 st.b r3, (r4, 0x0) + g_read.last_state = g_read.read_state; + 4dfc: a402 st.b r0, (r4, 0x2) +} + 4dfe: 07fa br 0x4df2 // 4df2 + 4e00: 20000444 .long 0x20000444 + 4e04: 200000b4 .long 0x200000b4 + 4e08: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Task: + +00004e0c : +{ + 4e0c: 14d2 push r4-r5, r15 + if((CardInfo.BlockSucc==BLOCK_READ_SUCC) && (READ_CARD_STATE == 1)) + 4e0e: 107e lrw r3, 0x2000041b // 4e84 + 4e10: 8347 ld.b r2, (r3, 0x7) + 4e12: 3a41 cmpnei r2, 1 + 4e14: 6d0f mov r4, r3 + 4e16: 081f bt 0x4e54 // 4e54 + 4e18: 10bc lrw r5, 0x20000048 // 4e88 + 4e1a: 3100 movi r1, 0 + 4e1c: 9500 ld.w r0, (r5, 0x0) + 4e1e: e3fff2b3 bsr 0x3384 // 3384 + 4e22: 3841 cmpnei r0, 1 + 4e24: 0818 bt 0x4e54 // 4e54 + CTRL_CARD_IN; + 4e26: 9500 ld.w r0, (r5, 0x0) + 4e28: 3100 movi r1, 0 + 4e2a: e3fff296 bsr 0x3356 // 3356 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4e2e: 9500 ld.w r0, (r5, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4e30: 3100 movi r1, 0 + 4e32: e3fff2a9 bsr 0x3384 // 3384 + 4e36: 6c83 mov r2, r0 + 4e38: 1035 lrw r1, 0x602c // 4e8c + 4e3a: 3000 movi r0, 0 + 4e3c: e3fffbc2 bsr 0x45c0 // 45c0 + if(g_read.Led_state == 0x00) + 4e40: 1074 lrw r3, 0x20000444 // 4e90 + 4e42: 8363 ld.b r3, (r3, 0x3) + 4e44: 3b40 cmpnei r3, 0 + 4e46: 0817 bt 0x4e74 // 4e74 + GPT0->CMPA = 2000; + 4e48: 1073 lrw r3, 0x20000024 // 4e94 + 4e4a: 9340 ld.w r2, (r3, 0x0) + 4e4c: 33fa movi r3, 250 + 4e4e: 4363 lsli r3, r3, 3 + 4e50: b26b st.w r3, (r2, 0x2c) +} + 4e52: 1492 pop r4-r5, r15 + else if((CardInfo.BlockSucc==BLOCK_READ_FAILD) && (READ_CARD_STATE == 0)) + 4e54: 8467 ld.b r3, (r4, 0x7) + 4e56: 3b40 cmpnei r3, 0 + 4e58: 0bf4 bt 0x4e40 // 4e40 + 4e5a: 108c lrw r4, 0x20000048 // 4e88 + 4e5c: 3100 movi r1, 0 + 4e5e: 9400 ld.w r0, (r4, 0x0) + 4e60: e3fff292 bsr 0x3384 // 3384 + 4e64: 3840 cmpnei r0, 0 + 4e66: 0bed bt 0x4e40 // 4e40 + CTRL_CARD_OUT; + 4e68: 9400 ld.w r0, (r4, 0x0) + 4e6a: 3100 movi r1, 0 + 4e6c: e3fff271 bsr 0x334e // 334e + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4e70: 9400 ld.w r0, (r4, 0x0) + 4e72: 07df br 0x4e30 // 4e30 + else if(g_read.Led_state == 0x01) + 4e74: 3b41 cmpnei r3, 1 + 4e76: 0bee bt 0x4e52 // 4e52 + GPT0->CMPA = 0; + 4e78: 1067 lrw r3, 0x20000024 // 4e94 + 4e7a: 3200 movi r2, 0 + 4e7c: 9360 ld.w r3, (r3, 0x0) + 4e7e: b34b st.w r2, (r3, 0x2c) +} + 4e80: 07e9 br 0x4e52 // 4e52 + 4e82: 0000 bkpt + 4e84: 2000041b .long 0x2000041b + 4e88: 20000048 .long 0x20000048 + 4e8c: 0000602c .long 0x0000602c + 4e90: 20000444 .long 0x20000444 + 4e94: 20000024 .long 0x20000024 + +Disassembly of section .text.LogicCtrl_NoRF_Init: + +00004e98 : + + +///无RF模块的初始化 +void LogicCtrl_NoRF_Init(void) +{ + 4e98: 14d1 push r4, r15 + GPIO_Init(GPIOA0,RLY_OUT_PIN,Output); + 4e9a: 1097 lrw r4, 0x2000004c // 4ef4 + 4e9c: 3200 movi r2, 0 + 4e9e: 9400 ld.w r0, (r4, 0x0) + 4ea0: 3100 movi r1, 0 + 4ea2: e3fff1d5 bsr 0x324c // 324c + CTRL_RLY_OFF; + 4ea6: 9400 ld.w r0, (r4, 0x0) + 4ea8: 3100 movi r1, 0 + 4eaa: e3fff252 bsr 0x334e // 334e + + memset(&dm_in,0,sizeof(DM_IN_INF)); + 4eae: 3209 movi r2, 9 + 4eb0: 3100 movi r1, 0 + 4eb2: 1012 lrw r0, 0x2000047c // 4ef8 + 4eb4: e3ffe5b4 bsr 0x1a1c // 1a1c <__memset_fast> + + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 4eb8: 9400 ld.w r0, (r4, 0x0) + 4eba: 3201 movi r2, 1 + 4ebc: 3101 movi r1, 1 + 4ebe: e3fff1c7 bsr 0x324c // 324c + + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4ec2: 3200 movi r2, 0 + 4ec4: 9400 ld.w r0, (r4, 0x0) + 4ec6: 310c movi r1, 12 + 4ec8: e3fff1c2 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4ecc: 9400 ld.w r0, (r4, 0x0) + 4ece: 310c movi r1, 12 + + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 4ed0: 108b lrw r4, 0x2000044c // 4efc + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4ed2: e3fff242 bsr 0x3356 // 3356 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 4ed6: 3301 movi r3, 1 + 4ed8: 6c13 mov r0, r4 + 4eda: 3200 movi r2, 0 + 4edc: 1029 lrw r1, 0x52a0 // 4f00 + 4ede: e000010f bsr 0x50fc // 50fc + +// button_attach(&KEY1, LONG_PRESS_START, KEY1_LONG_PRESS_START_Handler); + button_attach(&KEY1, LONG_PRESS_RELEASE, KEY1_LONG_PRESS_RELEASE_Handler); + 4ee2: 1049 lrw r2, 0x4cd4 // 4f04 + 4ee4: 3107 movi r1, 7 + 4ee6: 6c13 mov r0, r4 + 4ee8: e0000127 bsr 0x5136 // 5136 + button_start(&KEY1); + 4eec: 6c13 mov r0, r4 + 4eee: e00001b9 bsr 0x5260 // 5260 +} + 4ef2: 1491 pop r4, r15 + 4ef4: 2000004c .long 0x2000004c + 4ef8: 2000047c .long 0x2000047c + 4efc: 2000044c .long 0x2000044c + 4f00: 000052a0 .long 0x000052a0 + 4f04: 00004cd4 .long 0x00004cd4 + +Disassembly of section .text.LogicCtrl_NoRF_Task: + +00004f08 : + + +///无RF模块的轮询任务 +void LogicCtrl_NoRF_Task(void) +{ + 4f08: 14d3 push r4-r6, r15 + static U32_T card_tick = 0; + static U32_T test_tick = 0; + + if(SysTick_1ms - test_tick > 5) + 4f0a: 11ab lrw r5, 0x200000b4 // 4fb4 + 4f0c: 118b lrw r4, 0x200002e0 // 4fb8 + 4f0e: 9560 ld.w r3, (r5, 0x0) + 4f10: 9441 ld.w r2, (r4, 0x4) + 4f12: 60ca subu r3, r2 + 4f14: 3b05 cmphsi r3, 6 + 4f16: 0c05 bf 0x4f20 // 4f20 + { + test_tick = SysTick_1ms; + 4f18: 9560 ld.w r3, (r5, 0x0) + 4f1a: b461 st.w r3, (r4, 0x4) + button_ticks(); + 4f1c: e00001b4 bsr 0x5284 // 5284 + } + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 4f20: 11c7 lrw r6, 0x2000041b // 4fbc + 4f22: 8667 ld.b r3, (r6, 0x7) + 4f24: 3b41 cmpnei r3, 1 + 4f26: 0833 bt 0x4f8c // 4f8c + 4f28: e3fffecc bsr 0x4cc0 // 4cc0 + { + RLY_Light_Ctrl(1); + LED_STATE = 1; + 4f2c: 3301 movi r3, 1 + 4f2e: a460 st.b r3, (r4, 0x0) + card_tick = SysTick_1ms; + 4f30: 9560 ld.w r3, (r5, 0x0) + 4f32: b462 st.w r3, (r4, 0x8) + dm_in.DM_State = 0x00; + 4f34: 3200 movi r2, 0 + 4f36: 1163 lrw r3, 0x2000047c // 4fc0 + 4f38: a340 st.b r2, (r3, 0x0) + LED_STATE =2; +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card OUT RLY OFF"); + } + + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4f3a: 8667 ld.b r3, (r6, 0x7) + 4f3c: 3b40 cmpnei r3, 0 + 4f3e: 0826 bt 0x4f8a // 4f8a + { + + if((dm_in.DM_State == 0x02) && (SysTick_1ms - dm_in.DM_Tick >= 30000)) + 4f40: 1160 lrw r3, 0x2000047c // 4fc0 + 4f42: 8340 ld.b r2, (r3, 0x0) + 4f44: 3a42 cmpnei r2, 2 + 4f46: 0822 bt 0x4f8a // 4f8a + 4f48: 8322 ld.b r1, (r3, 0x2) + 4f4a: 8341 ld.b r2, (r3, 0x1) + 4f4c: 4128 lsli r1, r1, 8 + 4f4e: 6c48 or r1, r2 + 4f50: 8343 ld.b r2, (r3, 0x3) + 4f52: 4250 lsli r2, r2, 16 + 4f54: 6c48 or r1, r2 + 4f56: 8344 ld.b r2, (r3, 0x4) + 4f58: 4258 lsli r2, r2, 24 + 4f5a: 6c84 or r2, r1 + 4f5c: 9500 ld.w r0, (r5, 0x0) + 4f5e: 600a subu r0, r2 + 4f60: 1059 lrw r2, 0x752f // 4fc4 + 4f62: 6408 cmphs r2, r0 + 4f64: 0813 bt 0x4f8a // 4f8a + { + dm_in.DM_Tick = SysTick_1ms; + 4f66: 9540 ld.w r2, (r5, 0x0) + 4f68: 5b22 addi r1, r3, 1 + 4f6a: a341 st.b r2, (r3, 0x1) + 4f6c: 4a68 lsri r3, r2, 8 + 4f6e: a161 st.b r3, (r1, 0x1) + RLY_Light_Ctrl(0); + 4f70: 3000 movi r0, 0 + dm_in.DM_Tick = SysTick_1ms; + 4f72: 4a70 lsri r3, r2, 16 + 4f74: 4a58 lsri r2, r2, 24 + 4f76: a162 st.b r3, (r1, 0x2) + 4f78: a143 st.b r2, (r1, 0x3) + RLY_Light_Ctrl(0); + 4f7a: e3fffee5 bsr 0x4d44 // 4d44 + LED_STATE = 3; + 4f7e: 3303 movi r3, 3 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 4f80: 1032 lrw r1, 0x6051 // 4fc8 + 4f82: 3000 movi r0, 0 + LED_STATE = 3; + 4f84: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 4f86: e3fffb1d bsr 0x45c0 // 45c0 + } + } +} + 4f8a: 1493 pop r4-r6, r15 + else if((CardInfo.BlockSucc == BLOCK_READ_FAILD) && (dm_in.DM_State == 0x00) && (SysTick_1ms - card_tick >= 40000)) + 4f8c: 3b40 cmpnei r3, 0 + 4f8e: 0bd6 bt 0x4f3a // 4f3a + 4f90: 106c lrw r3, 0x2000047c // 4fc0 + 4f92: 8360 ld.b r3, (r3, 0x0) + 4f94: 3b40 cmpnei r3, 0 + 4f96: 0bd2 bt 0x4f3a // 4f3a + 4f98: 9442 ld.w r2, (r4, 0x8) + 4f9a: 9560 ld.w r3, (r5, 0x0) + 4f9c: 60ca subu r3, r2 + 4f9e: 104c lrw r2, 0x9c3f // 4fcc + 4fa0: 64c8 cmphs r2, r3 + 4fa2: 0bcc bt 0x4f3a // 4f3a + card_tick = SysTick_1ms; + 4fa4: 9560 ld.w r3, (r5, 0x0) + RLY_Light_Ctrl(0); + 4fa6: 3000 movi r0, 0 + card_tick = SysTick_1ms; + 4fa8: b462 st.w r3, (r4, 0x8) + RLY_Light_Ctrl(0); + 4faa: e3fffecd bsr 0x4d44 // 4d44 + LED_STATE =2; + 4fae: 3302 movi r3, 2 + 4fb0: a460 st.b r3, (r4, 0x0) + 4fb2: 07c4 br 0x4f3a // 4f3a + 4fb4: 200000b4 .long 0x200000b4 + 4fb8: 200002e0 .long 0x200002e0 + 4fbc: 2000041b .long 0x2000041b + 4fc0: 2000047c .long 0x2000047c + 4fc4: 0000752f .long 0x0000752f + 4fc8: 00006051 .long 0x00006051 + 4fcc: 00009c3f .long 0x00009c3f + +Disassembly of section .text.BackLight_Task: + +00004fd0 : + + +void BackLight_Task(void){ + if (LED_STATE == 1) { + 4fd0: 106b lrw r3, 0x200002e0 // 4ffc + 4fd2: 8360 ld.b r3, (r3, 0x0) + 4fd4: 3b41 cmpnei r3, 1 + 4fd6: 0806 bt 0x4fe2 // 4fe2 + GPT0->CMPA = 0; + 4fd8: 106a lrw r3, 0x20000024 // 5000 + 4fda: 3200 movi r2, 0 + 4fdc: 9360 ld.w r3, (r3, 0x0) + 4fde: b34b st.w r2, (r3, 0x2c) + }else if (LED_STATE == 3) { + Ctrl_Backlight(1); + }else if (LED_STATE == 4) { + Ctrl_Backlight(0); + } +} + 4fe0: 0408 br 0x4ff0 // 4ff0 + }else if (LED_STATE == 2) { + 4fe2: 3b42 cmpnei r3, 2 + 4fe4: 0807 bt 0x4ff2 // 4ff2 + GPT0->CMPA = 2000; + 4fe6: 1067 lrw r3, 0x20000024 // 5000 + 4fe8: 9340 ld.w r2, (r3, 0x0) + 4fea: 33fa movi r3, 250 + 4fec: 4363 lsli r3, r3, 3 + 4fee: b26b st.w r3, (r2, 0x2c) +} + 4ff0: 783c jmp r15 + }else if (LED_STATE == 3) { + 4ff2: 3b43 cmpnei r3, 3 + 4ff4: 0ff9 bf 0x4fe6 // 4fe6 + }else if (LED_STATE == 4) { + 4ff6: 3b44 cmpnei r3, 4 + 4ff8: 0bfc bt 0x4ff0 // 4ff0 + 4ffa: 07ef br 0x4fd8 // 4fd8 + 4ffc: 200002e0 .long 0x200002e0 + 5000: 20000024 .long 0x20000024 + +Disassembly of section .text.Detect_WIFI_Task: + +00005004 : + +void Detect_WIFI_Task(void){ + 5004: 14d1 push r4, r15 + + if (finish_flag == 1) return; + 5006: 107c lrw r3, 0x200000a2 // 5074 + 5008: 8340 ld.b r2, (r3, 0x0) + 500a: 3a41 cmpnei r2, 1 + 500c: 0c1c bf 0x5044 // 5044 + + if (detect_count <10) { + 500e: 109b lrw r4, 0x200000a8 // 5078 + 5010: 8440 ld.b r2, (r4, 0x0) + 5012: 3a09 cmphsi r2, 10 + 5014: 081c bt 0x504c // 504c + if(SysTick_1ms - detect_tick >= 10) { + 5016: 103a lrw r1, 0x200000b4 // 507c + 5018: 105a lrw r2, 0x200000a4 // 5080 + 501a: 9160 ld.w r3, (r1, 0x0) + 501c: 9200 ld.w r0, (r2, 0x0) + 501e: 60c2 subu r3, r0 + 5020: 3b09 cmphsi r3, 10 + 5022: 0c11 bf 0x5044 // 5044 + detect_tick = SysTick_1ms; + 5024: 9160 ld.w r3, (r1, 0x0) + 5026: b260 st.w r3, (r2, 0x0) + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 5028: 3102 movi r1, 2 + 502a: 1077 lrw r3, 0x20000048 // 5084 + 502c: 9300 ld.w r0, (r3, 0x0) + 502e: e3fff1a3 bsr 0x3374 // 3374 + 5032: 1076 lrw r3, 0x200000a0 // 5088 + 5034: a300 st.b r0, (r3, 0x0) + + if (last_state != rf_exist) { + 5036: 1076 lrw r3, 0x200000a1 // 508c + 5038: 8340 ld.b r2, (r3, 0x0) + 503a: 640a cmpne r2, r0 + 503c: 0c05 bf 0x5046 // 5046 + last_state = rf_exist; + 503e: a300 st.b r0, (r3, 0x0) + detect_count = 0; + 5040: 3300 movi r3, 0 + }else { + detect_count++; + 5042: a460 st.b r3, (r4, 0x0) + { + LogicCtrl_Init(); + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + } + } +} + 5044: 1491 pop r4, r15 + detect_count++; + 5046: 8460 ld.b r3, (r4, 0x0) + 5048: 2300 addi r3, 1 + 504a: 07fc br 0x5042 // 5042 + finish_flag = 1; + 504c: 3201 movi r2, 1 + 504e: a340 st.b r2, (r3, 0x0) + if(rf_exist == 0x01) //不带无线模块初始化 + 5050: 106e lrw r3, 0x200000a0 // 5088 + 5052: 8360 ld.b r3, (r3, 0x0) + 5054: 3b41 cmpnei r3, 1 + 5056: 0808 bt 0x5066 // 5066 + LogicCtrl_NoRF_Init(); + 5058: e3ffff20 bsr 0x4e98 // 4e98 + Dbg_Println(DBG_BIT_SYS_STATUS, "NoRF"); + 505c: 102d lrw r1, 0x6062 // 5090 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 505e: 3000 movi r0, 0 + 5060: e3fffab0 bsr 0x45c0 // 45c0 + 5064: 07f0 br 0x5044 // 5044 + else if(rf_exist == 0x00) //带无线模块初始化 + 5066: 3b40 cmpnei r3, 0 + 5068: 0bee bt 0x5044 // 5044 + LogicCtrl_Init(); + 506a: e3fffe7d bsr 0x4d64 // 4d64 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 506e: 102a lrw r1, 0x6064 // 5094 + 5070: 07f7 br 0x505e // 505e + 5072: 0000 bkpt + 5074: 200000a2 .long 0x200000a2 + 5078: 200000a8 .long 0x200000a8 + 507c: 200000b4 .long 0x200000b4 + 5080: 200000a4 .long 0x200000a4 + 5084: 20000048 .long 0x20000048 + 5088: 200000a0 .long 0x200000a0 + 508c: 200000a1 .long 0x200000a1 + 5090: 00006062 .long 0x00006062 + 5094: 00006064 .long 0x00006064 + +Disassembly of section .text.DM_Led_Task: + +00005098 : + +void DM_Led_Task(void){ + 5098: 14d1 push r4, r15 + if (dm_in.DM_State == 0x02) { + 509a: 1075 lrw r3, 0x2000047c // 50ec + 509c: 8340 ld.b r2, (r3, 0x0) + 509e: 3a42 cmpnei r2, 2 + 50a0: 0820 bt 0x50e0 // 50e0 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) { + 50a2: 8326 ld.b r1, (r3, 0x6) + 50a4: 8345 ld.b r2, (r3, 0x5) + 50a6: 4128 lsli r1, r1, 8 + 50a8: 6c48 or r1, r2 + 50aa: 8347 ld.b r2, (r3, 0x7) + 50ac: 4250 lsli r2, r2, 16 + 50ae: 6c48 or r1, r2 + 50b0: 8348 ld.b r2, (r3, 0x8) + 50b2: 1090 lrw r4, 0x200000b4 // 50f0 + 50b4: 4258 lsli r2, r2, 24 + 50b6: 6c84 or r2, r1 + 50b8: 9400 ld.w r0, (r4, 0x0) + 50ba: 600a subu r0, r2 + 50bc: 104e lrw r2, 0x1f3 // 50f4 + 50be: 6408 cmphs r2, r0 + 50c0: 080f bt 0x50de // 50de + dm_in.DM_Led_Tick = SysTick_1ms; + 50c2: 9440 ld.w r2, (r4, 0x0) + 50c4: 5b32 addi r1, r3, 5 + 50c6: a345 st.b r2, (r3, 0x5) + 50c8: 4a68 lsri r3, r2, 8 + 50ca: a161 st.b r3, (r1, 0x1) + 50cc: 4a70 lsri r3, r2, 16 + 50ce: a162 st.b r3, (r1, 0x2) + 50d0: 4a58 lsri r2, r2, 24 + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 50d2: 106a lrw r3, 0x2000004c // 50f8 + 50d4: 9300 ld.w r0, (r3, 0x0) + dm_in.DM_Led_Tick = SysTick_1ms; + 50d6: a143 st.b r2, (r1, 0x3) + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 50d8: 310c movi r1, 12 + 50da: e3fff142 bsr 0x335e // 335e + }else { + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); +// Dbg_Println(DBG_BIT_SYS_STATUS, "dm close"); + } + + 50de: 1491 pop r4, r15 + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 50e0: 1066 lrw r3, 0x2000004c // 50f8 + 50e2: 310c movi r1, 12 + 50e4: 9300 ld.w r0, (r3, 0x0) + 50e6: e3fff138 bsr 0x3356 // 3356 + 50ea: 07fa br 0x50de // 50de + 50ec: 2000047c .long 0x2000047c + 50f0: 200000b4 .long 0x200000b4 + 50f4: 000001f3 .long 0x000001f3 + 50f8: 2000004c .long 0x2000004c + +Disassembly of section .text.button_init: + +000050fc : + * @param active_level: pressed GPIO level. + * @param button_id: the button id. + * @retval None + */ +void button_init(struct Button* handle, uint8_t(*pin_level)(uint8_t), uint8_t active_level, uint8_t button_id) +{ + 50fc: 14d4 push r4-r7, r15 + 50fe: 6dc7 mov r7, r1 + 5100: 6d8b mov r6, r2 + memset(handle, 0, sizeof(struct Button)); + 5102: 3100 movi r1, 0 + 5104: 3230 movi r2, 48 +{ + 5106: 6d03 mov r4, r0 + 5108: 6d4f mov r5, r3 + memset(handle, 0, sizeof(struct Button)); + 510a: e3ffe489 bsr 0x1a1c // 1a1c <__memset_fast> + handle->event = (uint8_t)NONE_PRESS; + 510e: 3300 movi r3, 0 + 5110: 2b6f subi r3, 112 + 5112: a462 st.b r3, (r4, 0x2) + handle->hal_button_Level = pin_level; + 5114: b4e2 st.w r7, (r4, 0x8) + handle->button_level = handle->hal_button_Level(button_id); + 5116: 6c17 mov r0, r5 + 5118: 7bdd jsr r7 + 511a: 8443 ld.b r2, (r4, 0x3) + 511c: 337f movi r3, 127 + 511e: 688c and r2, r3 + 5120: 4007 lsli r0, r0, 7 + 5122: 6c08 or r0, r2 + handle->active_level = active_level; + 5124: 3201 movi r2, 1 + 5126: 6988 and r6, r2 + 5128: 7480 zextb r2, r0 + 512a: 46c6 lsli r6, r6, 6 + 512c: 3a86 bclri r2, 6 + 512e: 6c98 or r2, r6 + 5130: a443 st.b r2, (r4, 0x3) + handle->button_id = button_id; + 5132: a4a4 st.b r5, (r4, 0x4) +} + 5134: 1494 pop r4-r7, r15 + +Disassembly of section .text.button_attach: + +00005136 : + * @param cb: callback function. + * @retval None + */ +void button_attach(struct Button* handle, PressEvent event, BtnCallback cb) +{ + handle->cb[event] = cb; + 5136: 2102 addi r1, 3 + 5138: 4122 lsli r1, r1, 2 + 513a: 6040 addu r1, r0 + 513c: b140 st.w r2, (r1, 0x0) +} + 513e: 783c jmp r15 + +Disassembly of section .text.button_handler: + +00005140 : + + + + +void button_handler(struct Button* handle) +{ + 5140: 14d3 push r4-r6, r15 + 5142: 6d03 mov r4, r0 + uint8_t read_gpio_level = handle->hal_button_Level(handle->button_id); + 5144: 9462 ld.w r3, (r4, 0x8) + 5146: 8004 ld.b r0, (r0, 0x4) + 5148: 7bcd jsr r3 + + //ticks counter working.. + if((handle->state) > 0) handle->ticks++; + 514a: 8463 ld.b r3, (r4, 0x3) + 514c: 433d lsli r1, r3, 29 + 514e: 493d lsri r1, r1, 29 + 5150: 3940 cmpnei r1, 0 + 5152: 0c04 bf 0x515a // 515a + 5154: 8c40 ld.h r2, (r4, 0x0) + 5156: 2200 addi r2, 1 + 5158: ac40 st.h r2, (r4, 0x0) + + /*------------button debounce handle---------------*/ + if(read_gpio_level != handle->button_level) { //not equal to prev one + 515a: 4b47 lsri r2, r3, 7 + 515c: 640a cmpne r2, r0 + 515e: 0c21 bf 0x51a0 // 51a0 + //continue read 3 times same new level change + if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) { + 5160: 435a lsli r2, r3, 26 + 5162: 4a5d lsri r2, r2, 29 + 5164: 3507 movi r5, 7 + 5166: 2200 addi r2, 1 + 5168: 6894 and r2, r5 + 516a: 7488 zextb r2, r2 + 516c: 6948 and r5, r2 + 516e: 45c3 lsli r6, r5, 3 + 5170: 3538 movi r5, 56 + 5172: 68d5 andn r3, r5 + 5174: 6d8c or r6, r3 + 5176: 3a02 cmphsi r2, 3 + 5178: a4c3 st.b r6, (r4, 0x3) + 517a: 0c09 bf 0x518c // 518c + handle->button_level = read_gpio_level; + 517c: 4067 lsli r3, r0, 7 + 517e: 327f movi r2, 127 + 5180: 8403 ld.b r0, (r4, 0x3) + 5182: 6808 and r0, r2 + 5184: 6c0c or r0, r3 + handle->debounce_cnt = 0; + 5186: 7400 zextb r0, r0 + 5188: 6815 andn r0, r5 + 518a: a403 st.b r0, (r4, 0x3) + } else { //leved not change ,counter reset. + handle->debounce_cnt = 0; + } + + /*-----------------State machine-------------------*/ + switch (handle->state) { + 518c: 3941 cmpnei r1, 1 + 518e: 0c2f bf 0x51ec // 51ec + 5190: 3940 cmpnei r1, 0 + 5192: 0c0b bf 0x51a8 // 51a8 + 5194: 3945 cmpnei r1, 5 + 5196: 0c53 bf 0x523c // 523c +// Dbg_Println(DBG_BIT_SYS_STATUS,"key state long press release"); + handle->state = 0; //reset + } + break; + default: + handle->state = 0; //reset + 5198: 8463 ld.b r3, (r4, 0x3) + 519a: 3207 movi r2, 7 + 519c: 68c9 andn r3, r2 + 519e: 0420 br 0x51de // 51de + handle->debounce_cnt = 0; + 51a0: 3238 movi r2, 56 + 51a2: 68c9 andn r3, r2 + 51a4: a463 st.b r3, (r4, 0x3) + 51a6: 07f3 br 0x518c // 518c + if(handle->button_level == handle->active_level) { //start press down + 51a8: 8463 ld.b r3, (r4, 0x3) + 51aa: 4359 lsli r2, r3, 25 + 51ac: 4a5f lsri r2, r2, 31 + 51ae: 4b67 lsri r3, r3, 7 + 51b0: 648e cmpne r3, r2 + 51b2: 8462 ld.b r3, (r4, 0x2) + handle->event = (uint8_t)PRESS_DOWN; + 51b4: 320f movi r2, 15 + 51b6: 68c8 and r3, r2 + if(handle->button_level == handle->active_level) { //start press down + 51b8: 0815 bt 0x51e2 // 51e2 + handle->event = (uint8_t)PRESS_DOWN; + 51ba: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_DOWN); + 51bc: 9463 ld.w r3, (r4, 0xc) + 51be: 3b40 cmpnei r3, 0 + 51c0: 0c03 bf 0x51c6 // 51c6 + 51c2: 6c13 mov r0, r4 + 51c4: 7bcd jsr r3 + handle->ticks = 0; + 51c6: 3300 movi r3, 0 + handle->repeat = 1; + 51c8: 8442 ld.b r2, (r4, 0x2) + handle->ticks = 0; + 51ca: ac60 st.h r3, (r4, 0x0) + handle->repeat = 1; + 51cc: 330f movi r3, 15 + 51ce: 688d andn r2, r3 + 51d0: 3101 movi r1, 1 + 51d2: 6c84 or r2, r1 + 51d4: a442 st.b r2, (r4, 0x2) + handle->state = 1; + 51d6: 8463 ld.b r3, (r4, 0x3) + 51d8: 3207 movi r2, 7 + 51da: 68c9 andn r3, r2 + 51dc: 6cc4 or r3, r1 + handle->state = 0; //reset + 51de: a463 st.b r3, (r4, 0x3) + break; + } +} + 51e0: 0405 br 0x51ea // 51ea + handle->event = (uint8_t)NONE_PRESS; + 51e2: 3200 movi r2, 0 + 51e4: 2a6f subi r2, 112 + 51e6: 6cc8 or r3, r2 + 51e8: a462 st.b r3, (r4, 0x2) +} + 51ea: 1493 pop r4-r6, r15 + if(handle->button_level != handle->active_level) { //released press up + 51ec: 8463 ld.b r3, (r4, 0x3) + 51ee: 4359 lsli r2, r3, 25 + 51f0: 4a5f lsri r2, r2, 31 + 51f2: 4b67 lsri r3, r3, 7 + 51f4: 648e cmpne r3, r2 + 51f6: 0c0e bf 0x5212 // 5212 + handle->event = (uint8_t)PRESS_UP; + 51f8: 8462 ld.b r3, (r4, 0x2) + 51fa: 320f movi r2, 15 + 51fc: 68c8 and r3, r2 + 51fe: 3ba4 bseti r3, 4 + 5200: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_UP); + 5202: 9464 ld.w r3, (r4, 0x10) + 5204: 3b40 cmpnei r3, 0 + 5206: 0c03 bf 0x520c // 520c + 5208: 6c13 mov r0, r4 + 520a: 7bcd jsr r3 + handle->ticks = 0; + 520c: 3300 movi r3, 0 + 520e: ac60 st.h r3, (r4, 0x0) + 5210: 07c4 br 0x5198 // 5198 + } else if(handle->ticks > LONG_TICKS) { + 5212: 8c40 ld.h r2, (r4, 0x0) + 5214: 33c8 movi r3, 200 + 5216: 648c cmphs r3, r2 + 5218: 0be9 bt 0x51ea // 51ea + handle->event = (uint8_t)LONG_PRESS_START; + 521a: 8462 ld.b r3, (r4, 0x2) + 521c: 320f movi r2, 15 + 521e: 68c8 and r3, r2 + 5220: 3ba4 bseti r3, 4 + 5222: 3ba6 bseti r3, 6 + 5224: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_START); + 5226: 9468 ld.w r3, (r4, 0x20) + 5228: 3b40 cmpnei r3, 0 + 522a: 0c03 bf 0x5230 // 5230 + 522c: 6c13 mov r0, r4 + 522e: 7bcd jsr r3 + handle->state = 5; + 5230: 8463 ld.b r3, (r4, 0x3) + 5232: 3207 movi r2, 7 + 5234: 68c9 andn r3, r2 + 5236: 3ba0 bseti r3, 0 + 5238: 3ba2 bseti r3, 2 + 523a: 07d2 br 0x51de // 51de + if(handle->button_level == handle->active_level) { + 523c: 8463 ld.b r3, (r4, 0x3) + 523e: 4359 lsli r2, r3, 25 + 5240: 4a5f lsri r2, r2, 31 + 5242: 4b67 lsri r3, r3, 7 + 5244: 648e cmpne r3, r2 + 5246: 0fd2 bf 0x51ea // 51ea + handle->event = (uint8_t)LONG_PRESS_RELEASE; + 5248: 8462 ld.b r3, (r4, 0x2) + 524a: 320f movi r2, 15 + 524c: 68c8 and r3, r2 + 524e: 3270 movi r2, 112 + 5250: 6cc8 or r3, r2 + 5252: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_RELEASE); + 5254: 946a ld.w r3, (r4, 0x28) + 5256: 3b40 cmpnei r3, 0 + 5258: 0fa0 bf 0x5198 // 5198 + 525a: 6c13 mov r0, r4 + 525c: 7bcd jsr r3 + 525e: 079d br 0x5198 // 5198 + +Disassembly of section .text.button_start: + +00005260 : + * @param handle: target handle strcut. + * @retval 0: succeed. -1: already exist. + */ +int button_start(struct Button* handle) +{ + struct Button* target = head_handle; + 5260: 1068 lrw r3, 0x200002ec // 5280 + 5262: 9320 ld.w r1, (r3, 0x0) + 5264: 6c87 mov r2, r1 + while(target) { + 5266: 3a40 cmpnei r2, 0 + 5268: 0805 bt 0x5272 // 5272 + if(target == handle) return -1; //already exist. + target = target->next; + } + handle->next = head_handle; + 526a: b02b st.w r1, (r0, 0x2c) + head_handle = handle; + 526c: b300 st.w r0, (r3, 0x0) + return 0; + 526e: 3000 movi r0, 0 +} + 5270: 783c jmp r15 + if(target == handle) return -1; //already exist. + 5272: 640a cmpne r2, r0 + 5274: 0c03 bf 0x527a // 527a + target = target->next; + 5276: 924b ld.w r2, (r2, 0x2c) + 5278: 07f7 br 0x5266 // 5266 + if(target == handle) return -1; //already exist. + 527a: 3000 movi r0, 0 + 527c: 2800 subi r0, 1 + 527e: 07f9 br 0x5270 // 5270 + 5280: 200002ec .long 0x200002ec + +Disassembly of section .text.button_ticks: + +00005284 : + * @brief background ticks, timer repeat invoking interval 5ms. + * @param None. + * @retval None + */ +void button_ticks() +{ + 5284: 14d1 push r4, r15 + struct Button* target; + for(target=head_handle; target; target=target->next) { + 5286: 1066 lrw r3, 0x200002ec // 529c + 5288: 9380 ld.w r4, (r3, 0x0) + 528a: 3c40 cmpnei r4, 0 + 528c: 0802 bt 0x5290 // 5290 + button_handler(target); + } +} + 528e: 1491 pop r4, r15 + button_handler(target); + 5290: 6c13 mov r0, r4 + 5292: e3ffff57 bsr 0x5140 // 5140 + for(target=head_handle; target; target=target->next) { + 5296: 948b ld.w r4, (r4, 0x2c) + 5298: 07f9 br 0x528a // 528a + 529a: 0000 bkpt + 529c: 200002ec .long 0x200002ec + +Disassembly of section .text.read_button_GPIO: + +000052a0 : + +//////////////////////////////////////////////////////////////////////// + + +uint8_t read_button_GPIO(uint8_t button_id) +{ + 52a0: 14d0 push r15 + uint8_t state = 0; + state = GPIO_Read_Status(GPIOA0,button_id); + 52a2: 1064 lrw r3, 0x2000004c // 52b0 +{ + 52a4: 6c43 mov r1, r0 + state = GPIO_Read_Status(GPIOA0,button_id); + 52a6: 9300 ld.w r0, (r3, 0x0) + 52a8: e3fff066 bsr 0x3374 // 3374 + return state; + 52ac: 1490 pop r15 + 52ae: 0000 bkpt + 52b0: 2000004c .long 0x2000004c + +Disassembly of section .text.TK_Sampling_prog: + +000052b4 : + 52b4: 14c4 push r4-r7 + 52b6: 1072 lrw r3, 0x20000054 // 52fc + 52b8: 1012 lrw r0, 0x2000072e // 5300 + 52ba: 1093 lrw r4, 0x2000059f // 5304 + 52bc: 6d83 mov r6, r0 + 52be: 93a0 ld.w r5, (r3, 0x0) + 52c0: 3300 movi r3, 0 + 52c2: 4342 lsli r2, r3, 2 + 52c4: 6094 addu r2, r5 + 52c6: 9220 ld.w r1, (r2, 0x0) + 52c8: 4341 lsli r2, r3, 1 + 52ca: 6080 addu r2, r0 + 52cc: 7445 zexth r1, r1 + 52ce: aa20 st.h r1, (r2, 0x0) + 52d0: 8440 ld.b r2, (r4, 0x0) + 52d2: 3a41 cmpnei r2, 1 + 52d4: 080f bt 0x52f2 // 52f2 + 52d6: 3300 movi r3, 0 + 52d8: 10ec lrw r7, 0x20000488 // 5308 + 52da: 4341 lsli r2, r3, 1 + 52dc: 5e28 addu r1, r6, r2 + 52de: 8920 ld.h r1, (r1, 0x0) + 52e0: 2300 addi r3, 1 + 52e2: 7445 zexth r1, r1 + 52e4: 609c addu r2, r7 + 52e6: 3b51 cmpnei r3, 17 + 52e8: aa20 st.h r1, (r2, 0x0) + 52ea: 0bf8 bt 0x52da // 52da + 52ec: 3300 movi r3, 0 + 52ee: a460 st.b r3, (r4, 0x0) + 52f0: 3311 movi r3, 17 + 52f2: 2300 addi r3, 1 + 52f4: 74cc zextb r3, r3 + 52f6: 3b10 cmphsi r3, 17 + 52f8: 0fe5 bf 0x52c2 // 52c2 + 52fa: 1484 pop r4-r7 + 52fc: 20000054 .long 0x20000054 + 5300: 2000072e .long 0x2000072e + 5304: 2000059f .long 0x2000059f + 5308: 20000488 .long 0x20000488 + +Disassembly of section .text.TKEYIntHandler: + +0000530c : + 530c: 1460 nie + 530e: 1462 ipush + 5310: 14d1 push r4, r15 + 5312: 109e lrw r4, 0x2000006c // 5388 + 5314: 9460 ld.w r3, (r4, 0x0) + 5316: 3b40 cmpnei r3, 0 + 5318: 080b bt 0x532e // 532e + 531a: 3301 movi r3, 1 + 531c: b460 st.w r3, (r4, 0x0) + 531e: 107c lrw r3, 0x2000051c // 538c + 5320: 8360 ld.b r3, (r3, 0x0) + 5322: 3b41 cmpnei r3, 1 + 5324: 0805 bt 0x532e // 532e + 5326: e3ffffc7 bsr 0x52b4 // 52b4 + 532a: 3301 movi r3, 1 + 532c: a464 st.b r3, (r4, 0x4) + 532e: 1079 lrw r3, 0x20000058 // 5390 + 5330: 3101 movi r1, 1 + 5332: 9360 ld.w r3, (r3, 0x0) + 5334: 934a ld.w r2, (r3, 0x28) + 5336: 6884 and r2, r1 + 5338: 3a40 cmpnei r2, 0 + 533a: 0c02 bf 0x533e // 533e + 533c: b32c st.w r1, (r3, 0x30) + 533e: 934a ld.w r2, (r3, 0x28) + 5340: 3102 movi r1, 2 + 5342: 6884 and r2, r1 + 5344: 3a40 cmpnei r2, 0 + 5346: 0c02 bf 0x534a // 534a + 5348: b32c st.w r1, (r3, 0x30) + 534a: 934a ld.w r2, (r3, 0x28) + 534c: 3104 movi r1, 4 + 534e: 6884 and r2, r1 + 5350: 3a40 cmpnei r2, 0 + 5352: 0c02 bf 0x5356 // 5356 + 5354: b32c st.w r1, (r3, 0x30) + 5356: 934a ld.w r2, (r3, 0x28) + 5358: 3108 movi r1, 8 + 535a: 6884 and r2, r1 + 535c: 3a40 cmpnei r2, 0 + 535e: 0c02 bf 0x5362 // 5362 + 5360: b32c st.w r1, (r3, 0x30) + 5362: 934a ld.w r2, (r3, 0x28) + 5364: 3110 movi r1, 16 + 5366: 6884 and r2, r1 + 5368: 3a40 cmpnei r2, 0 + 536a: 0c02 bf 0x536e // 536e + 536c: b32c st.w r1, (r3, 0x30) + 536e: 934a ld.w r2, (r3, 0x28) + 5370: 3120 movi r1, 32 + 5372: 6884 and r2, r1 + 5374: 3a40 cmpnei r2, 0 + 5376: 0c02 bf 0x537a // 537a + 5378: b32c st.w r1, (r3, 0x30) + 537a: d9ee2001 ld.w r15, (r14, 0x4) + 537e: 9880 ld.w r4, (r14, 0x0) + 5380: 1402 addi r14, r14, 8 + 5382: 1463 ipop + 5384: 1461 nir + 5386: 0000 bkpt + 5388: 2000006c .long 0x2000006c + 538c: 2000051c .long 0x2000051c + 5390: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00005394 : + 5394: 14c2 push r4-r5 + 5396: 3200 movi r2, 0 + 5398: 3000 movi r0, 0 + 539a: 1088 lrw r4, 0x200005bc // 53b8 + 539c: 3501 movi r5, 1 + 539e: 3120 movi r1, 32 + 53a0: 9460 ld.w r3, (r4, 0x0) + 53a2: 70c9 lsr r3, r2 + 53a4: 68d4 and r3, r5 + 53a6: 3b40 cmpnei r3, 0 + 53a8: 0c02 bf 0x53ac // 53ac + 53aa: 2000 addi r0, 1 + 53ac: 2200 addi r2, 1 + 53ae: 644a cmpne r2, r1 + 53b0: 0bf8 bt 0x53a0 // 53a0 + 53b2: 7400 zextb r0, r0 + 53b4: 1482 pop r4-r5 + 53b6: 0000 bkpt + 53b8: 200005bc .long 0x200005bc + +Disassembly of section .text.TK_Scan_Start: + +000053bc : + 53bc: 1046 lrw r2, 0x2000006c // 53d4 + 53be: 8264 ld.b r3, (r2, 0x4) + 53c0: 74cc zextb r3, r3 + 53c2: 3b41 cmpnei r3, 1 + 53c4: 0807 bt 0x53d2 // 53d2 + 53c6: 1025 lrw r1, 0x20000058 // 53d8 + 53c8: 9120 ld.w r1, (r1, 0x0) + 53ca: b162 st.w r3, (r1, 0x8) + 53cc: 3300 movi r3, 0 + 53ce: b260 st.w r3, (r2, 0x0) + 53d0: a264 st.b r3, (r2, 0x4) + 53d2: 783c jmp r15 + 53d4: 2000006c .long 0x2000006c + 53d8: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +000053dc : + 53dc: 14d4 push r4-r7, r15 + 53de: 1425 subi r14, r14, 20 + 53e0: 1271 lrw r3, 0x2000031c // 5524 + 53e2: 8360 ld.b r3, (r3, 0x0) + 53e4: b860 st.w r3, (r14, 0x0) + 53e6: 3400 movi r4, 0 + 53e8: 1270 lrw r3, 0x200002f0 // 5528 + 53ea: 8360 ld.b r3, (r3, 0x0) + 53ec: b861 st.w r3, (r14, 0x4) + 53ee: 12f0 lrw r7, 0x20000532 // 552c + 53f0: 1270 lrw r3, 0x200002f9 // 5530 + 53f2: 83a0 ld.b r5, (r3, 0x0) + 53f4: 1270 lrw r3, 0x200002f8 // 5534 + 53f6: 8360 ld.b r3, (r3, 0x0) + 53f8: b862 st.w r3, (r14, 0x8) + 53fa: 6d9f mov r6, r7 + 53fc: 126f lrw r3, 0x2000072e // 5538 + 53fe: b863 st.w r3, (r14, 0xc) + 5400: 4461 lsli r3, r4, 1 + 5402: 9843 ld.w r2, (r14, 0xc) + 5404: 608c addu r2, r3 + 5406: 122e lrw r1, 0x20000488 // 553c + 5408: 604c addu r1, r3 + 540a: 8a40 ld.h r2, (r2, 0x0) + 540c: 8920 ld.h r1, (r1, 0x0) + 540e: 6086 subu r2, r1 + 5410: 748b sexth r2, r2 + 5412: 5f2c addu r1, r7, r3 + 5414: a940 st.h r2, (r1, 0x0) + 5416: 8940 ld.h r2, (r1, 0x0) + 5418: 748b sexth r2, r2 + 541a: 3adf btsti r2, 31 + 541c: 1249 lrw r2, 0x200006ea // 5540 + 541e: 608c addu r2, r3 + 5420: 0c37 bf 0x548e // 548e + 5422: 3100 movi r1, 0 + 5424: aa20 st.h r1, (r2, 0x0) + 5426: 9840 ld.w r2, (r14, 0x0) + 5428: 3a01 cmphsi r2, 2 + 542a: 0c6d bf 0x5504 // 5504 + 542c: 4461 lsli r3, r4, 1 + 542e: 5e2c addu r1, r6, r3 + 5430: 1205 lrw r0, 0x2000034a // 5544 + 5432: 8940 ld.h r2, (r1, 0x0) + 5434: 60c0 addu r3, r0 + 5436: 748b sexth r2, r2 + 5438: 8b60 ld.h r3, (r3, 0x0) + 543a: 648d cmplt r3, r2 + 543c: 9840 ld.w r2, (r14, 0x0) + 543e: 7cc8 mult r3, r2 + 5440: 0c2a bf 0x5494 // 5494 + 5442: 8940 ld.h r2, (r1, 0x0) + 5444: 748b sexth r2, r2 + 5446: 64c9 cmplt r2, r3 + 5448: 0c26 bf 0x5494 // 5494 + 544a: 1240 lrw r2, 0x20000520 // 5548 + 544c: 6090 addu r2, r4 + 544e: 8260 ld.b r3, (r2, 0x0) + 5450: 2300 addi r3, 1 + 5452: 74cc zextb r3, r3 + 5454: a260 st.b r3, (r2, 0x0) + 5456: 3100 movi r1, 0 + 5458: 117d lrw r3, 0x20000506 // 554c + 545a: 60d0 addu r3, r4 + 545c: a320 st.b r1, (r3, 0x0) + 545e: 117d lrw r3, 0x200005e2 // 5550 + 5460: 60d0 addu r3, r4 + 5462: a320 st.b r1, (r3, 0x0) + 5464: 117c lrw r3, 0x2000065c // 5554 + 5466: 60d0 addu r3, r4 + 5468: a320 st.b r1, (r3, 0x0) + 546a: 8260 ld.b r3, (r2, 0x0) + 546c: 9821 ld.w r1, (r14, 0x4) + 546e: 64c4 cmphs r1, r3 + 5470: 081f bt 0x54ae // 54ae + 5472: 3d40 cmpnei r5, 0 + 5474: 0852 bt 0x5518 // 5518 + 5476: 1139 lrw r1, 0x20000518 // 5558 + 5478: 9160 ld.w r3, (r1, 0x0) + 547a: 3b40 cmpnei r3, 0 + 547c: 0806 bt 0x5488 // 5488 + 547e: 9100 ld.w r0, (r1, 0x0) + 5480: 3301 movi r3, 1 + 5482: 70d0 lsl r3, r4 + 5484: 6cc0 or r3, r0 + 5486: b160 st.w r3, (r1, 0x0) + 5488: 3300 movi r3, 0 + 548a: a260 st.b r3, (r2, 0x0) + 548c: 0411 br 0x54ae // 54ae + 548e: 8920 ld.h r1, (r1, 0x0) + 5490: 7445 zexth r1, r1 + 5492: 07c9 br 0x5424 // 5424 + 5494: 4441 lsli r2, r4, 1 + 5496: 6098 addu r2, r6 + 5498: 8a40 ld.h r2, (r2, 0x0) + 549a: 748b sexth r2, r2 + 549c: 648d cmplt r3, r2 + 549e: 0c08 bf 0x54ae // 54ae + 54a0: 3300 movi r3, 0 + 54a2: 114e lrw r2, 0x20000518 // 5558 + 54a4: 2b01 subi r3, 2 + 54a6: 9220 ld.w r1, (r2, 0x0) + 54a8: 70d3 rotl r3, r4 + 54aa: 68c4 and r3, r1 + 54ac: b260 st.w r3, (r2, 0x0) + 54ae: 4441 lsli r2, r4, 1 + 54b0: 5e68 addu r3, r6, r2 + 54b2: 8b60 ld.h r3, (r3, 0x0) + 54b4: 74cf sexth r3, r3 + 54b6: b864 st.w r3, (r14, 0x10) + 54b8: 3105 movi r1, 5 + 54ba: 1163 lrw r3, 0x2000034a // 5544 + 54bc: 608c addu r2, r3 + 54be: 8a00 ld.h r0, (r2, 0x0) + 54c0: 4002 lsli r0, r0, 2 + 54c2: e3fff795 bsr 0x43ec // 43ec <__divsi3> + 54c6: 9864 ld.w r3, (r14, 0x10) + 54c8: 640d cmplt r3, r0 + 54ca: 0c18 bf 0x54fa // 54fa + 54cc: 1140 lrw r2, 0x20000506 // 554c + 54ce: 6090 addu r2, r4 + 54d0: 8260 ld.b r3, (r2, 0x0) + 54d2: 2300 addi r3, 1 + 54d4: 74cc zextb r3, r3 + 54d6: a260 st.b r3, (r2, 0x0) + 54d8: 3100 movi r1, 0 + 54da: 107c lrw r3, 0x20000520 // 5548 + 54dc: 60d0 addu r3, r4 + 54de: a320 st.b r1, (r3, 0x0) + 54e0: 8260 ld.b r3, (r2, 0x0) + 54e2: 9822 ld.w r1, (r14, 0x8) + 54e4: 64c4 cmphs r1, r3 + 54e6: 080a bt 0x54fa // 54fa + 54e8: 3300 movi r3, 0 + 54ea: 103c lrw r1, 0x20000518 // 5558 + 54ec: 2b01 subi r3, 2 + 54ee: 9100 ld.w r0, (r1, 0x0) + 54f0: 70d3 rotl r3, r4 + 54f2: 68c0 and r3, r0 + 54f4: b160 st.w r3, (r1, 0x0) + 54f6: 3300 movi r3, 0 + 54f8: a260 st.b r3, (r2, 0x0) + 54fa: 2400 addi r4, 1 + 54fc: 3c51 cmpnei r4, 17 + 54fe: 0b81 bt 0x5400 // 5400 + 5500: 1405 addi r14, r14, 20 + 5502: 1494 pop r4-r7, r15 + 5504: 60d8 addu r3, r6 + 5506: 4441 lsli r2, r4, 1 + 5508: 102f lrw r1, 0x2000034a // 5544 + 550a: 8b60 ld.h r3, (r3, 0x0) + 550c: 6084 addu r2, r1 + 550e: 74cf sexth r3, r3 + 5510: 8a40 ld.h r2, (r2, 0x0) + 5512: 64c9 cmplt r2, r3 + 5514: 0fcd bf 0x54ae // 54ae + 5516: 079a br 0x544a // 544a + 5518: 3d41 cmpnei r5, 1 + 551a: 0bb7 bt 0x5488 // 5488 + 551c: 102f lrw r1, 0x20000518 // 5558 + 551e: 6cd7 mov r3, r5 + 5520: 9100 ld.w r0, (r1, 0x0) + 5522: 07b0 br 0x5482 // 5482 + 5524: 2000031c .long 0x2000031c + 5528: 200002f0 .long 0x200002f0 + 552c: 20000532 .long 0x20000532 + 5530: 200002f9 .long 0x200002f9 + 5534: 200002f8 .long 0x200002f8 + 5538: 2000072e .long 0x2000072e + 553c: 20000488 .long 0x20000488 + 5540: 200006ea .long 0x200006ea + 5544: 2000034a .long 0x2000034a + 5548: 20000520 .long 0x20000520 + 554c: 20000506 .long 0x20000506 + 5550: 200005e2 .long 0x200005e2 + 5554: 2000065c .long 0x2000065c + 5558: 20000518 .long 0x20000518 + +Disassembly of section .text.TK_overflow_predict: + +0000555c : + 555c: 14d4 push r4-r7, r15 + 555e: 1421 subi r14, r14, 4 + 5560: 11d9 lrw r6, 0x2000006c // 5644 + 5562: 8665 ld.b r3, (r6, 0x5) + 5564: 3b41 cmpnei r3, 1 + 5566: 085f bt 0x5624 // 5624 + 5568: 1158 lrw r2, 0x20000638 // 5648 + 556a: 8260 ld.b r3, (r2, 0x0) + 556c: 2300 addi r3, 1 + 556e: 74cc zextb r3, r3 + 5570: a260 st.b r3, (r2, 0x0) + 5572: 8260 ld.b r3, (r2, 0x0) + 5574: 1136 lrw r1, 0x2000031d // 564c + 5576: 8120 ld.b r1, (r1, 0x0) + 5578: 64c4 cmphs r1, r3 + 557a: 0855 bt 0x5624 // 5624 + 557c: 3300 movi r3, 0 + 557e: a260 st.b r3, (r2, 0x0) + 5580: 3500 movi r5, 0 + 5582: 11f4 lrw r7, 0x20000320 // 5650 + 5584: 2605 addi r6, 6 + 5586: 9760 ld.w r3, (r7, 0x0) + 5588: 70d5 lsr r3, r5 + 558a: 3201 movi r2, 1 + 558c: 68c8 and r3, r2 + 558e: 3b40 cmpnei r3, 0 + 5590: 0c34 bf 0x55f8 // 55f8 + 5592: 4581 lsli r4, r5, 1 + 5594: 5e70 addu r3, r6, r4 + 5596: 8b00 ld.h r0, (r3, 0x0) + 5598: e3ffe004 bsr 0x15a0 // 15a0 <__floatunsidf> + 559c: 6cc7 mov r3, r1 + 559e: 3180 movi r1, 128 + 55a0: 6c83 mov r2, r0 + 55a2: 4137 lsli r1, r1, 23 + 55a4: 3000 movi r0, 0 + 55a6: e3ffd607 bsr 0x1b4 // 1b4 <__GI_pow> + 55aa: 116b lrw r3, 0x20000326 // 5654 + 55ac: 60d0 addu r3, r4 + 55ae: 8b60 ld.h r3, (r3, 0x0) + 55b0: 4364 lsli r3, r3, 4 + 55b2: 230e addi r3, 15 + 55b4: b860 st.w r3, (r14, 0x0) + 55b6: e3ffdbad bsr 0xd10 // d10 <__fixunsdfsi> + 55ba: 9860 ld.w r3, (r14, 0x0) + 55bc: 7cc0 mult r3, r0 + 55be: 1147 lrw r2, 0x200006c8 // 5658 + 55c0: 740d zexth r0, r3 + 55c2: 6090 addu r2, r4 + 55c4: 1166 lrw r3, 0x2000072e // 565c + 55c6: 60d0 addu r3, r4 + 55c8: aa00 st.h r0, (r2, 0x0) + 55ca: 8b60 ld.h r3, (r3, 0x0) + 55cc: 8a00 ld.h r0, (r2, 0x0) + 55ce: 7401 zexth r0, r0 + 55d0: 325f movi r2, 95 + 55d2: 74cd zexth r3, r3 + 55d4: 7c08 mult r0, r2 + 55d6: 3164 movi r1, 100 + 55d8: b860 st.w r3, (r14, 0x0) + 55da: e3fff709 bsr 0x43ec // 43ec <__divsi3> + 55de: 9860 ld.w r3, (r14, 0x0) + 55e0: 64c1 cmplt r0, r3 + 55e2: 0c0b bf 0x55f8 // 55f8 + 55e4: 107f lrw r3, 0x200002fa // 5660 + 55e6: 610c addu r4, r3 + 55e8: 8c60 ld.h r3, (r4, 0x0) + 55ea: 3b06 cmphsi r3, 7 + 55ec: 0806 bt 0x55f8 // 55f8 + 55ee: 2300 addi r3, 1 + 55f0: ac60 st.h r3, (r4, 0x0) + 55f2: 3201 movi r2, 1 + 55f4: 107c lrw r3, 0x2000058d // 5664 + 55f6: a340 st.b r2, (r3, 0x0) + 55f8: 2500 addi r5, 1 + 55fa: 3d51 cmpnei r5, 17 + 55fc: 0bc5 bt 0x5586 // 5586 + 55fe: 107a lrw r3, 0x2000058d // 5664 + 5600: 8340 ld.b r2, (r3, 0x0) + 5602: 3a41 cmpnei r2, 1 + 5604: 0810 bt 0x5624 // 5624 + 5606: 3200 movi r2, 0 + 5608: a340 st.b r2, (r3, 0x0) + 560a: 3200 movi r2, 0 + 560c: 1077 lrw r3, 0x20000058 // 5668 + 560e: 1018 lrw r0, 0x2000065b // 566c + 5610: 10b8 lrw r5, 0x20000694 // 5670 + 5612: 10d4 lrw r6, 0x200002fa // 5660 + 5614: 9360 ld.w r3, (r3, 0x0) + 5616: b342 st.w r2, (r3, 0x8) + 5618: 1077 lrw r3, 0x20000054 // 5674 + 561a: 9380 ld.w r4, (r3, 0x0) + 561c: 3300 movi r3, 0 + 561e: 8040 ld.b r2, (r0, 0x0) + 5620: 648c cmphs r3, r2 + 5622: 0c03 bf 0x5628 // 5628 + 5624: 1401 addi r14, r14, 4 + 5626: 1494 pop r4-r7, r15 + 5628: 5d4c addu r2, r5, r3 + 562a: 8240 ld.b r2, (r2, 0x0) + 562c: 4241 lsli r2, r2, 1 + 562e: 4322 lsli r1, r3, 2 + 5630: 6098 addu r2, r6 + 5632: 6050 addu r1, r4 + 5634: 8a40 ld.h r2, (r2, 0x0) + 5636: 91f2 ld.w r7, (r1, 0x48) + 5638: 4254 lsli r2, r2, 20 + 563a: 6c9c or r2, r7 + 563c: 2300 addi r3, 1 + 563e: b152 st.w r2, (r1, 0x48) + 5640: 74cc zextb r3, r3 + 5642: 07ee br 0x561e // 561e + 5644: 2000006c .long 0x2000006c + 5648: 20000638 .long 0x20000638 + 564c: 2000031d .long 0x2000031d + 5650: 20000320 .long 0x20000320 + 5654: 20000326 .long 0x20000326 + 5658: 200006c8 .long 0x200006c8 + 565c: 2000072e .long 0x2000072e + 5660: 200002fa .long 0x200002fa + 5664: 2000058d .long 0x2000058d + 5668: 20000058 .long 0x20000058 + 566c: 2000065b .long 0x2000065b + 5670: 20000694 .long 0x20000694 + 5674: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00005678 : + 5678: 14c4 push r4-r7 + 567a: 1422 subi r14, r14, 8 + 567c: 1348 lrw r2, 0x200005ba // 581c + 567e: 8260 ld.b r3, (r2, 0x0) + 5680: 2300 addi r3, 1 + 5682: 74cc zextb r3, r3 + 5684: a260 st.b r3, (r2, 0x0) + 5686: 8260 ld.b r3, (r2, 0x0) + 5688: 1326 lrw r1, 0x2000031d // 5820 + 568a: 8120 ld.b r1, (r1, 0x0) + 568c: 644c cmphs r3, r1 + 568e: 0cad bf 0x57e8 // 57e8 + 5690: 3300 movi r3, 0 + 5692: a260 st.b r3, (r2, 0x0) + 5694: 1364 lrw r3, 0x20000518 // 5824 + 5696: 9360 ld.w r3, (r3, 0x0) + 5698: 3b40 cmpnei r3, 0 + 569a: 08a7 bt 0x57e8 // 57e8 + 569c: 1323 lrw r1, 0x20000532 // 5828 + 569e: 6dc7 mov r7, r1 + 56a0: b820 st.w r1, (r14, 0x0) + 56a2: 3200 movi r2, 0 + 56a4: 1362 lrw r3, 0x2000034a // 582c + 56a6: 1323 lrw r1, 0x20000488 // 5830 + 56a8: 4201 lsli r0, r2, 1 + 56aa: 9880 ld.w r4, (r14, 0x0) + 56ac: 6100 addu r4, r0 + 56ae: 8c80 ld.h r4, (r4, 0x0) + 56b0: 7513 sexth r4, r4 + 56b2: 3cdf btsti r4, 31 + 56b4: 0c27 bf 0x5702 // 5702 + 56b6: 13a0 lrw r5, 0x2000072e // 5834 + 56b8: 5980 addu r4, r1, r0 + 56ba: 6014 addu r0, r5 + 56bc: b881 st.w r4, (r14, 0x4) + 56be: 8c80 ld.h r4, (r4, 0x0) + 56c0: 88c0 ld.h r6, (r0, 0x0) + 56c2: 7511 zexth r4, r4 + 56c4: 7599 zexth r6, r6 + 56c6: 8ba0 ld.h r5, (r3, 0x0) + 56c8: 611a subu r4, r6 + 56ca: 6551 cmplt r4, r5 + 56cc: 081b bt 0x5702 // 5702 + 56ce: 9881 ld.w r4, (r14, 0x4) + 56d0: 8c80 ld.h r4, (r4, 0x0) + 56d2: 8800 ld.h r0, (r0, 0x0) + 56d4: 7511 zexth r4, r4 + 56d6: 7401 zexth r0, r0 + 56d8: 5c01 subu r0, r4, r0 + 56da: 4581 lsli r4, r5, 1 + 56dc: 6150 addu r5, r4 + 56de: 6541 cmplt r0, r5 + 56e0: 0c11 bf 0x5702 // 5702 + 56e2: 1296 lrw r4, 0x2000065c // 5838 + 56e4: 6108 addu r4, r2 + 56e6: 8400 ld.b r0, (r4, 0x0) + 56e8: 2000 addi r0, 1 + 56ea: 7400 zextb r0, r0 + 56ec: a400 st.b r0, (r4, 0x0) + 56ee: 1214 lrw r0, 0x2000008c // 583c + 56f0: 84a0 ld.b r5, (r4, 0x0) + 56f2: 8008 ld.b r0, (r0, 0x8) + 56f4: 6540 cmphs r0, r5 + 56f6: 0806 bt 0x5702 // 5702 + 56f8: 1212 lrw r0, 0x2000059f // 5840 + 56fa: 3501 movi r5, 1 + 56fc: a0a0 st.b r5, (r0, 0x0) + 56fe: 3000 movi r0, 0 + 5700: a400 st.b r0, (r4, 0x0) + 5702: 4201 lsli r0, r2, 1 + 5704: 5f80 addu r4, r7, r0 + 5706: 8c80 ld.h r4, (r4, 0x0) + 5708: 7513 sexth r4, r4 + 570a: 3c20 cmplti r4, 1 + 570c: 0870 bt 0x57ec // 57ec + 570e: 128a lrw r4, 0x2000072e // 5834 + 5710: 6100 addu r4, r0 + 5712: 59a0 addu r5, r1, r0 + 5714: 8c80 ld.h r4, (r4, 0x0) + 5716: 8da0 ld.h r5, (r5, 0x0) + 5718: 7555 zexth r5, r5 + 571a: 7511 zexth r4, r4 + 571c: 6116 subu r4, r5 + 571e: 8ba0 ld.h r5, (r3, 0x0) + 5720: 45a2 lsli r5, r5, 2 + 5722: 6551 cmplt r4, r5 + 5724: 0864 bt 0x57ec // 57ec + 5726: 1288 lrw r4, 0x200005e2 // 5844 + 5728: 6108 addu r4, r2 + 572a: 84a0 ld.b r5, (r4, 0x0) + 572c: 2500 addi r5, 1 + 572e: 7554 zextb r5, r5 + 5730: a4a0 st.b r5, (r4, 0x0) + 5732: 12a3 lrw r5, 0x2000008c // 583c + 5734: 84c0 ld.b r6, (r4, 0x0) + 5736: 85a9 ld.b r5, (r5, 0x9) + 5738: 6594 cmphs r5, r6 + 573a: 0806 bt 0x5746 // 5746 + 573c: 12a1 lrw r5, 0x2000059f // 5840 + 573e: 3601 movi r6, 1 + 5740: a5c0 st.b r6, (r5, 0x0) + 5742: 3500 movi r5, 0 + 5744: a4a0 st.b r5, (r4, 0x0) + 5746: 5f80 addu r4, r7, r0 + 5748: 8c80 ld.h r4, (r4, 0x0) + 574a: 7513 sexth r4, r4 + 574c: 3cdf btsti r4, 31 + 574e: 0c10 bf 0x576e // 576e + 5750: 11d9 lrw r6, 0x2000072e // 5834 + 5752: 59a0 addu r5, r1, r0 + 5754: 6180 addu r6, r0 + 5756: 8d80 ld.h r4, (r5, 0x0) + 5758: 8ec0 ld.h r6, (r6, 0x0) + 575a: 7599 zexth r6, r6 + 575c: 7511 zexth r4, r4 + 575e: 611a subu r4, r6 + 5760: 8bc0 ld.h r6, (r3, 0x0) + 5762: 6591 cmplt r4, r6 + 5764: 0c05 bf 0x576e // 576e + 5766: 8d80 ld.h r4, (r5, 0x0) + 5768: 2c00 subi r4, 1 + 576a: 7511 zexth r4, r4 + 576c: ad80 st.h r4, (r5, 0x0) + 576e: 5f80 addu r4, r7, r0 + 5770: 8c80 ld.h r4, (r4, 0x0) + 5772: 7513 sexth r4, r4 + 5774: 3cdf btsti r4, 31 + 5776: 0c11 bf 0x5798 // 5798 + 5778: 11cf lrw r6, 0x2000072e // 5834 + 577a: 59a0 addu r5, r1, r0 + 577c: 6180 addu r6, r0 + 577e: 8d80 ld.h r4, (r5, 0x0) + 5780: 8ec0 ld.h r6, (r6, 0x0) + 5782: 7599 zexth r6, r6 + 5784: 7511 zexth r4, r4 + 5786: 611a subu r4, r6 + 5788: 8bc0 ld.h r6, (r3, 0x0) + 578a: 4ec1 lsri r6, r6, 1 + 578c: 6591 cmplt r4, r6 + 578e: 0805 bt 0x5798 // 5798 + 5790: 8d80 ld.h r4, (r5, 0x0) + 5792: 2c01 subi r4, 2 + 5794: 7511 zexth r4, r4 + 5796: ad80 st.h r4, (r5, 0x0) + 5798: 5fa0 addu r5, r7, r0 + 579a: 8d80 ld.h r4, (r5, 0x0) + 579c: 7513 sexth r4, r4 + 579e: 3c20 cmplti r4, 1 + 57a0: 080c bt 0x57b8 // 57b8 + 57a2: 8da0 ld.h r5, (r5, 0x0) + 57a4: 8b80 ld.h r4, (r3, 0x0) + 57a6: 7557 sexth r5, r5 + 57a8: 4c81 lsri r4, r4, 1 + 57aa: 6515 cmplt r5, r4 + 57ac: 0c06 bf 0x57b8 // 57b8 + 57ae: 59a0 addu r5, r1, r0 + 57b0: 8d80 ld.h r4, (r5, 0x0) + 57b2: 2400 addi r4, 1 + 57b4: 7511 zexth r4, r4 + 57b6: ad80 st.h r4, (r5, 0x0) + 57b8: 5fa0 addu r5, r7, r0 + 57ba: 8d80 ld.h r4, (r5, 0x0) + 57bc: 7513 sexth r4, r4 + 57be: 3c20 cmplti r4, 1 + 57c0: 0810 bt 0x57e0 // 57e0 + 57c2: 8dc0 ld.h r6, (r5, 0x0) + 57c4: 759b sexth r6, r6 + 57c6: 8b80 ld.h r4, (r3, 0x0) + 57c8: 6519 cmplt r6, r4 + 57ca: 0c0b bf 0x57e0 // 57e0 + 57cc: 8da0 ld.h r5, (r5, 0x0) + 57ce: 7557 sexth r5, r5 + 57d0: 4c81 lsri r4, r4, 1 + 57d2: 6515 cmplt r5, r4 + 57d4: 0806 bt 0x57e0 // 57e0 + 57d6: 6004 addu r0, r1 + 57d8: 8880 ld.h r4, (r0, 0x0) + 57da: 2401 addi r4, 2 + 57dc: 7511 zexth r4, r4 + 57de: a880 st.h r4, (r0, 0x0) + 57e0: 2200 addi r2, 1 + 57e2: 3a51 cmpnei r2, 17 + 57e4: 2301 addi r3, 2 + 57e6: 0b61 bt 0x56a8 // 56a8 + 57e8: 1402 addi r14, r14, 8 + 57ea: 1484 pop r4-r7 + 57ec: 5f80 addu r4, r7, r0 + 57ee: 8c80 ld.h r4, (r4, 0x0) + 57f0: 7513 sexth r4, r4 + 57f2: 3cdf btsti r4, 31 + 57f4: 0fa9 bf 0x5746 // 5746 + 57f6: 10b0 lrw r5, 0x2000072e // 5834 + 57f8: 5980 addu r4, r1, r0 + 57fa: 6140 addu r5, r0 + 57fc: 8c80 ld.h r4, (r4, 0x0) + 57fe: 8da0 ld.h r5, (r5, 0x0) + 5800: 7555 zexth r5, r5 + 5802: 8bc0 ld.h r6, (r3, 0x0) + 5804: 7511 zexth r4, r4 + 5806: 6116 subu r4, r5 + 5808: 46a1 lsli r5, r6, 1 + 580a: 6158 addu r5, r6 + 580c: 6551 cmplt r4, r5 + 580e: 0b9c bt 0x5746 // 5746 + 5810: 108c lrw r4, 0x2000059f // 5840 + 5812: 3501 movi r5, 1 + 5814: a4a0 st.b r5, (r4, 0x0) + 5816: 6c03 mov r0, r0 + 5818: 0797 br 0x5746 // 5746 + 581a: 0000 bkpt + 581c: 200005ba .long 0x200005ba + 5820: 2000031d .long 0x2000031d + 5824: 20000518 .long 0x20000518 + 5828: 20000532 .long 0x20000532 + 582c: 2000034a .long 0x2000034a + 5830: 20000488 .long 0x20000488 + 5834: 2000072e .long 0x2000072e + 5838: 2000065c .long 0x2000065c + 583c: 2000008c .long 0x2000008c + 5840: 2000059f .long 0x2000059f + 5844: 200005e2 .long 0x200005e2 + +Disassembly of section .text.TK_result_prog: + +00005848 : + 5848: 14d2 push r4-r5, r15 + 584a: 1050 lrw r2, 0x20000518 // 5888 + 584c: 1090 lrw r4, 0x200005bc // 588c + 584e: 9260 ld.w r3, (r2, 0x0) + 5850: 3b40 cmpnei r3, 0 + 5852: 0c02 bf 0x5856 // 5856 + 5854: 9260 ld.w r3, (r2, 0x0) + 5856: b460 st.w r3, (r4, 0x0) + 5858: 9460 ld.w r3, (r4, 0x0) + 585a: 3b40 cmpnei r3, 0 + 585c: 10ad lrw r5, 0x20000690 // 5890 + 585e: 0c11 bf 0x5880 // 5880 + 5860: 9440 ld.w r2, (r4, 0x0) + 5862: 9560 ld.w r3, (r5, 0x0) + 5864: 64ca cmpne r2, r3 + 5866: 0c03 bf 0x586c // 586c + 5868: 9460 ld.w r3, (r4, 0x0) + 586a: b560 st.w r3, (r5, 0x0) + 586c: e3fffd94 bsr 0x5394 // 5394 + 5870: 1069 lrw r3, 0x20000324 // 5894 + 5872: 8360 ld.b r3, (r3, 0x0) + 5874: 640c cmphs r3, r0 + 5876: 0804 bt 0x587e // 587e + 5878: 3300 movi r3, 0 + 587a: b460 st.w r3, (r4, 0x0) + 587c: b560 st.w r3, (r5, 0x0) + 587e: 1492 pop r4-r5, r15 + 5880: 1046 lrw r2, 0x200005b4 // 5898 + 5882: b560 st.w r3, (r5, 0x0) + 5884: b260 st.w r3, (r2, 0x0) + 5886: 07fc br 0x587e // 587e + 5888: 20000518 .long 0x20000518 + 588c: 200005bc .long 0x200005bc + 5890: 20000690 .long 0x20000690 + 5894: 20000324 .long 0x20000324 + 5898: 200005b4 .long 0x200005b4 + +Disassembly of section .text.CORETHandler: + +0000589c : + 589c: 1460 nie + 589e: 1462 ipush + 58a0: 14d1 push r4, r15 + 58a2: 1077 lrw r3, 0x20000064 // 58fc + 58a4: 3400 movi r4, 0 + 58a6: 9360 ld.w r3, (r3, 0x0) + 58a8: b386 st.w r4, (r3, 0x18) + 58aa: 1076 lrw r3, 0x2000051c // 5900 + 58ac: 8360 ld.b r3, (r3, 0x0) + 58ae: 3b41 cmpnei r3, 1 + 58b0: 0820 bt 0x58f0 // 58f0 + 58b2: e3fffd85 bsr 0x53bc // 53bc + 58b6: e3fffd93 bsr 0x53dc // 53dc + 58ba: e3fffe51 bsr 0x555c // 555c + 58be: e3fffedd bsr 0x5678 // 5678 + 58c2: e3ffffc3 bsr 0x5848 // 5848 + 58c6: 1070 lrw r3, 0x200005bc // 5904 + 58c8: 9360 ld.w r3, (r3, 0x0) + 58ca: 3b40 cmpnei r3, 0 + 58cc: 0c12 bf 0x58f0 // 58f0 + 58ce: 106f lrw r3, 0x200002f4 // 5908 + 58d0: 9340 ld.w r2, (r3, 0x0) + 58d2: 3a40 cmpnei r2, 0 + 58d4: 0c0e bf 0x58f0 // 58f0 + 58d6: 106e lrw r3, 0x200005b4 // 590c + 58d8: 3064 movi r0, 100 + 58da: 9320 ld.w r1, (r3, 0x0) + 58dc: 2100 addi r1, 1 + 58de: b320 st.w r1, (r3, 0x0) + 58e0: 9320 ld.w r1, (r3, 0x0) + 58e2: 7c80 mult r2, r0 + 58e4: 6448 cmphs r2, r1 + 58e6: 0805 bt 0x58f0 // 58f0 + 58e8: 104a lrw r2, 0x2000059f // 5910 + 58ea: 3101 movi r1, 1 + 58ec: a220 st.b r1, (r2, 0x0) + 58ee: b380 st.w r4, (r3, 0x0) + 58f0: d9ee2001 ld.w r15, (r14, 0x4) + 58f4: 9880 ld.w r4, (r14, 0x0) + 58f6: 1402 addi r14, r14, 8 + 58f8: 1463 ipop + 58fa: 1461 nir + 58fc: 20000064 .long 0x20000064 + 5900: 2000051c .long 0x2000051c + 5904: 200005bc .long 0x200005bc + 5908: 200002f4 .long 0x200002f4 + 590c: 200005b4 .long 0x200005b4 + 5910: 2000059f .long 0x2000059f + +Disassembly of section .text.std_clk_calib: + +00005914 : + 5914: 14d4 push r4-r7, r15 + 5916: 142d subi r14, r14, 52 + 5918: 3201 movi r2, 1 + 591a: 03ce lrw r6, 0x2000005c // 5b5c + 591c: 6cc3 mov r3, r0 + 591e: dc4e000a st.b r2, (r14, 0xa) + 5922: 9640 ld.w r2, (r6, 0x0) + 5924: 9247 ld.w r2, (r2, 0x1c) + 5926: 7488 zextb r2, r2 + 5928: dc4e0009 st.b r2, (r14, 0x9) + 592c: d84e0009 ld.b r2, (r14, 0x9) + 5930: 3a40 cmpnei r2, 0 + 5932: 0c08 bf 0x5942 // 5942 + 5934: d84e0009 ld.b r2, (r14, 0x9) + 5938: 3a42 cmpnei r2, 2 + 593a: 0c04 bf 0x5942 // 5942 + 593c: 3000 movi r0, 0 + 593e: 140d addi r14, r14, 52 + 5940: 1494 pop r4-r7, r15 + 5942: 0397 lrw r4, 0x2000000c // 5b60 + 5944: 3209 movi r2, 9 + 5946: 9400 ld.w r0, (r4, 0x0) + 5948: 3b40 cmpnei r3, 0 + 594a: b041 st.w r2, (r0, 0x4) + 594c: 0857 bt 0x59fa // 59fa + 594e: 3307 movi r3, 7 + 5950: dc6e000b st.b r3, (r14, 0xb) + 5954: 037b lrw r3, 0x2dc6c00 // 5b64 + 5956: b863 st.w r3, (r14, 0xc) + 5958: 3380 movi r3, 128 + 595a: 4362 lsli r3, r3, 2 + 595c: b867 st.w r3, (r14, 0x1c) + 595e: d86e000b ld.b r3, (r14, 0xb) + 5962: 74cc zextb r3, r3 + 5964: b062 st.w r3, (r0, 0x8) + 5966: 037e lrw r3, 0xffff // 5b68 + 5968: b063 st.w r3, (r0, 0xc) + 596a: 3201 movi r2, 1 + 596c: 3101 movi r1, 1 + 596e: 03bf lrw r5, 0x20000014 // 5b6c + 5970: e3ffed60 bsr 0x3430 // 3430 + 5974: 95e0 ld.w r7, (r5, 0x0) + 5976: 137f lrw r3, 0xbe9c0005 // 5b70 + 5978: b760 st.w r3, (r7, 0x0) + 597a: 135f lrw r2, 0x30010 // 5b74 + 597c: 3300 movi r3, 0 + 597e: b762 st.w r3, (r7, 0x8) + 5980: b743 st.w r2, (r7, 0xc) + 5982: 32d8 movi r2, 216 + 5984: b745 st.w r2, (r7, 0x14) + 5986: 974f ld.w r2, (r7, 0x3c) + 5988: 3aa2 bseti r2, 2 + 598a: b74f st.w r2, (r7, 0x3c) + 598c: 9803 ld.w r0, (r14, 0xc) + 598e: d82e000b ld.b r1, (r14, 0xb) + 5992: 327d movi r2, 125 + 5994: 2100 addi r1, 1 + 5996: 7c48 mult r1, r2 + 5998: b861 st.w r3, (r14, 0x4) + 599a: e3fff53b bsr 0x4410 // 4410 <__udivsi3> + 599e: b804 st.w r0, (r14, 0x10) + 59a0: 32fa movi r2, 250 + 59a2: 9824 ld.w r1, (r14, 0x10) + 59a4: 4242 lsli r2, r2, 2 + 59a6: 6448 cmphs r2, r1 + 59a8: 0bca bt 0x593c // 593c + 59aa: 9844 ld.w r2, (r14, 0x10) + 59ac: 3178 movi r1, 120 + 59ae: 9804 ld.w r0, (r14, 0x10) + 59b0: b840 st.w r2, (r14, 0x0) + 59b2: e3fff52f bsr 0x4410 // 4410 <__udivsi3> + 59b6: 9840 ld.w r2, (r14, 0x0) + 59b8: 6082 subu r2, r0 + 59ba: b845 st.w r2, (r14, 0x14) + 59bc: 9804 ld.w r0, (r14, 0x10) + 59be: 3178 movi r1, 120 + 59c0: 9844 ld.w r2, (r14, 0x10) + 59c2: b840 st.w r2, (r14, 0x0) + 59c4: e3fff526 bsr 0x4410 // 4410 <__udivsi3> + 59c8: 9840 ld.w r2, (r14, 0x0) + 59ca: 6008 addu r0, r2 + 59cc: b806 st.w r0, (r14, 0x18) + 59ce: c0807020 psrclr ie + 59d2: 9640 ld.w r2, (r6, 0x0) + 59d4: 9254 ld.w r2, (r2, 0x50) + 59d6: b848 st.w r2, (r14, 0x20) + 59d8: 9861 ld.w r3, (r14, 0x4) + 59da: 9440 ld.w r2, (r4, 0x0) + 59dc: b260 st.w r3, (r2, 0x0) + 59de: b761 st.w r3, (r7, 0x4) + 59e0: d86e000a ld.b r3, (r14, 0xa) + 59e4: 3b40 cmpnei r3, 0 + 59e6: 083e bt 0x5a62 // 5a62 + 59e8: e3ffecd6 bsr 0x3394 // 3394 + 59ec: 9400 ld.w r0, (r4, 0x0) + 59ee: e3ffecf7 bsr 0x33dc // 33dc + 59f2: c1807420 psrset ee, ie + 59f6: 3001 movi r0, 1 + 59f8: 07a3 br 0x593e // 593e + 59fa: 3b41 cmpnei r3, 1 + 59fc: 0806 bt 0x5a08 // 5a08 + 59fe: 3303 movi r3, 3 + 5a00: dc6e000b st.b r3, (r14, 0xb) + 5a04: 127d lrw r3, 0x16e3600 // 5b78 + 5a06: 07a8 br 0x5956 // 5956 + 5a08: 3b42 cmpnei r3, 2 + 5a0a: 0806 bt 0x5a16 // 5a16 + 5a0c: 3301 movi r3, 1 + 5a0e: dc6e000b st.b r3, (r14, 0xb) + 5a12: 127b lrw r3, 0xb71b00 // 5b7c + 5a14: 07a1 br 0x5956 // 5956 + 5a16: 3b43 cmpnei r3, 3 + 5a18: 0806 bt 0x5a24 // 5a24 + 5a1a: 3300 movi r3, 0 + 5a1c: dc6e000b st.b r3, (r14, 0xb) + 5a20: 1278 lrw r3, 0x5b8d80 // 5b80 + 5a22: 079a br 0x5956 // 5956 + 5a24: 3b44 cmpnei r3, 4 + 5a26: 0809 bt 0x5a38 // 5a38 + 5a28: 3300 movi r3, 0 + 5a2a: dc6e000b st.b r3, (r14, 0xb) + 5a2e: 1276 lrw r3, 0x54c720 // 5b84 + 5a30: b863 st.w r3, (r14, 0xc) + 5a32: 3380 movi r3, 128 + 5a34: 4369 lsli r3, r3, 9 + 5a36: 0793 br 0x595c // 595c + 5a38: 3b45 cmpnei r3, 5 + 5a3a: 0806 bt 0x5a46 // 5a46 + 5a3c: 3300 movi r3, 0 + 5a3e: dc6e000b st.b r3, (r14, 0xb) + 5a42: 1272 lrw r3, 0x3ffed0 // 5b88 + 5a44: 07f6 br 0x5a30 // 5a30 + 5a46: 3b46 cmpnei r3, 6 + 5a48: 0806 bt 0x5a54 // 5a54 + 5a4a: 3300 movi r3, 0 + 5a4c: dc6e000b st.b r3, (r14, 0xb) + 5a50: 126f lrw r3, 0x1fff68 // 5b8c + 5a52: 07ef br 0x5a30 // 5a30 + 5a54: 3b47 cmpnei r3, 7 + 5a56: 0b84 bt 0x595e // 595e + 5a58: 3300 movi r3, 0 + 5a5a: dc6e000b st.b r3, (r14, 0xb) + 5a5e: 126d lrw r3, 0x1ffb8 // 5b90 + 5a60: 07e8 br 0x5a30 // 5a30 + 5a62: 9560 ld.w r3, (r5, 0x0) + 5a64: 3101 movi r1, 1 + 5a66: 9440 ld.w r2, (r4, 0x0) + 5a68: b321 st.w r1, (r3, 0x4) + 5a6a: b220 st.w r1, (r2, 0x0) + 5a6c: 3100 movi r1, 0 + 5a6e: b327 st.w r1, (r3, 0x1c) + 5a70: 3004 movi r0, 4 + 5a72: b225 st.w r1, (r2, 0x14) + 5a74: 932e ld.w r1, (r3, 0x38) + 5a76: 6840 and r1, r0 + 5a78: 3940 cmpnei r1, 0 + 5a7a: 0ffd bf 0x5a74 // 5a74 + 5a7c: 9225 ld.w r1, (r2, 0x14) + 5a7e: b82a st.w r1, (r14, 0x28) + 5a80: 3100 movi r1, 0 + 5a82: b310 st.w r0, (r3, 0x40) + 5a84: b327 st.w r1, (r3, 0x1c) + 5a86: 3004 movi r0, 4 + 5a88: b225 st.w r1, (r2, 0x14) + 5a8a: 932e ld.w r1, (r3, 0x38) + 5a8c: 6840 and r1, r0 + 5a8e: 3940 cmpnei r1, 0 + 5a90: 0ffd bf 0x5a8a // 5a8a + 5a92: 9225 ld.w r1, (r2, 0x14) + 5a94: b82b st.w r1, (r14, 0x2c) + 5a96: 3100 movi r1, 0 + 5a98: b310 st.w r0, (r3, 0x40) + 5a9a: b327 st.w r1, (r3, 0x1c) + 5a9c: 3004 movi r0, 4 + 5a9e: b225 st.w r1, (r2, 0x14) + 5aa0: 932e ld.w r1, (r3, 0x38) + 5aa2: 6840 and r1, r0 + 5aa4: 3940 cmpnei r1, 0 + 5aa6: 0ffd bf 0x5aa0 // 5aa0 + 5aa8: 9225 ld.w r1, (r2, 0x14) + 5aaa: b82c st.w r1, (r14, 0x30) + 5aac: b310 st.w r0, (r3, 0x40) + 5aae: 982b ld.w r1, (r14, 0x2c) + 5ab0: 980c ld.w r0, (r14, 0x30) + 5ab2: 6040 addu r1, r0 + 5ab4: b829 st.w r1, (r14, 0x24) + 5ab6: 9829 ld.w r1, (r14, 0x24) + 5ab8: 4921 lsri r1, r1, 1 + 5aba: b829 st.w r1, (r14, 0x24) + 5abc: 3100 movi r1, 0 + 5abe: b321 st.w r1, (r3, 0x4) + 5ac0: b220 st.w r1, (r2, 0x0) + 5ac2: b327 st.w r1, (r3, 0x1c) + 5ac4: b225 st.w r1, (r2, 0x14) + 5ac6: d86e0009 ld.b r3, (r14, 0x9) + 5aca: 3b42 cmpnei r3, 2 + 5acc: 9849 ld.w r2, (r14, 0x24) + 5ace: 082c bt 0x5b26 // 5b26 + 5ad0: 1171 lrw r3, 0x7ff // 5b94 + 5ad2: 648c cmphs r3, r2 + 5ad4: 0c03 bf 0x5ada // 5ada + 5ad6: 3300 movi r3, 0 + 5ad8: 040f br 0x5af6 // 5af6 + 5ada: 9849 ld.w r2, (r14, 0x24) + 5adc: 9866 ld.w r3, (r14, 0x18) + 5ade: 648c cmphs r3, r2 + 5ae0: 080e bt 0x5afc // 5afc + 5ae2: 9868 ld.w r3, (r14, 0x20) + 5ae4: 9847 ld.w r2, (r14, 0x1c) + 5ae6: 60ca subu r3, r2 + 5ae8: b868 st.w r3, (r14, 0x20) + 5aea: 32fe movi r2, 254 + 5aec: 9868 ld.w r3, (r14, 0x20) + 5aee: 4248 lsli r2, r2, 8 + 5af0: 68c8 and r3, r2 + 5af2: 3b40 cmpnei r3, 0 + 5af4: 0812 bt 0x5b18 // 5b18 + 5af6: dc6e000a st.b r3, (r14, 0xa) + 5afa: 0721 br 0x593c // 593c + 5afc: 9849 ld.w r2, (r14, 0x24) + 5afe: 9865 ld.w r3, (r14, 0x14) + 5b00: 64c8 cmphs r2, r3 + 5b02: 0829 bt 0x5b54 // 5b54 + 5b04: 9868 ld.w r3, (r14, 0x20) + 5b06: 9847 ld.w r2, (r14, 0x1c) + 5b08: 60c8 addu r3, r2 + 5b0a: b868 st.w r3, (r14, 0x20) + 5b0c: 33fe movi r3, 254 + 5b0e: 9848 ld.w r2, (r14, 0x20) + 5b10: 4368 lsli r3, r3, 8 + 5b12: 688c and r2, r3 + 5b14: 64ca cmpne r2, r3 + 5b16: 0fe0 bf 0x5ad6 // 5ad6 + 5b18: 9660 ld.w r3, (r6, 0x0) + 5b1a: 9848 ld.w r2, (r14, 0x20) + 5b1c: b354 st.w r2, (r3, 0x50) + 5b1e: 3001 movi r0, 1 + 5b20: e3ffeeba bsr 0x3894 // 3894 + 5b24: 075e br 0x59e0 // 59e0 + 5b26: 9866 ld.w r3, (r14, 0x18) + 5b28: 648c cmphs r3, r2 + 5b2a: 0809 bt 0x5b3c // 5b3c + 5b2c: 9868 ld.w r3, (r14, 0x20) + 5b2e: 9847 ld.w r2, (r14, 0x1c) + 5b30: 60ca subu r3, r2 + 5b32: b868 st.w r3, (r14, 0x20) + 5b34: 32ff movi r2, 255 + 5b36: 9868 ld.w r3, (r14, 0x20) + 5b38: 4250 lsli r2, r2, 16 + 5b3a: 07db br 0x5af0 // 5af0 + 5b3c: 9849 ld.w r2, (r14, 0x24) + 5b3e: 9865 ld.w r3, (r14, 0x14) + 5b40: 64c8 cmphs r2, r3 + 5b42: 0809 bt 0x5b54 // 5b54 + 5b44: 9868 ld.w r3, (r14, 0x20) + 5b46: 9847 ld.w r2, (r14, 0x1c) + 5b48: 60c8 addu r3, r2 + 5b4a: b868 st.w r3, (r14, 0x20) + 5b4c: 33ff movi r3, 255 + 5b4e: 9848 ld.w r2, (r14, 0x20) + 5b50: 4370 lsli r3, r3, 16 + 5b52: 07e0 br 0x5b12 // 5b12 + 5b54: 3300 movi r3, 0 + 5b56: dc6e000a st.b r3, (r14, 0xa) + 5b5a: 07e2 br 0x5b1e // 5b1e + 5b5c: 2000005c .long 0x2000005c + 5b60: 2000000c .long 0x2000000c + 5b64: 02dc6c00 .long 0x02dc6c00 + 5b68: 0000ffff .long 0x0000ffff + 5b6c: 20000014 .long 0x20000014 + 5b70: be9c0005 .long 0xbe9c0005 + 5b74: 00030010 .long 0x00030010 + 5b78: 016e3600 .long 0x016e3600 + 5b7c: 00b71b00 .long 0x00b71b00 + 5b80: 005b8d80 .long 0x005b8d80 + 5b84: 0054c720 .long 0x0054c720 + 5b88: 003ffed0 .long 0x003ffed0 + 5b8c: 001fff68 .long 0x001fff68 + 5b90: 0001ffb8 .long 0x0001ffb8 + 5b94: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20240513.map b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20240513.map new file mode 100644 index 0000000..e56c813 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20240513.map @@ -0,0 +1,2427 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 327020 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 164 + Section header string table index: 161 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 002f12 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00002f14 003f14 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00002f4c 003f4c 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00002fc0 003fc0 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 0000300c 00400c 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 0000303c 00403c 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 000030c4 0040c4 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 000030ec 0040ec 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00003128 004128 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 0000313c 00413c 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00003154 004154 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00003174 004174 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00003190 004190 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 000031ac 0041ac 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 000031ec 0041ec 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 000031f8 0041f8 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 0000321c 00421c 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 0000324c 00424c 0000e0 00 AX 0 0 4 + [19] .text.GPIO_PullHi PROGBITS 0000332c 00432c 000014 00 AX 0 0 2 + [20] .text.GPIO_DriveS PROGBITS 00003340 004340 00000e 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 0000334e 00434e 000008 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00003356 004356 000008 00 AX 0 0 2 + [23] .text.GPIO_Revers PROGBITS 0000335e 00435e 000016 00 AX 0 0 2 + [24] .text.GPIO_Read_S PROGBITS 00003374 004374 000010 00 AX 0 0 2 + [25] .text.GPIO_Read_O PROGBITS 00003384 004384 000010 00 AX 0 0 2 + [26] .text.LPT_Soft_Re PROGBITS 00003394 004394 000014 00 AX 0 0 4 + [27] .text.WWDT_CNT_Lo PROGBITS 000033a8 0043a8 000010 00 AX 0 0 4 + [28] .text.BT_DeInit PROGBITS 000033b8 0043b8 00001c 00 AX 0 0 2 + [29] .text.BT_Start PROGBITS 000033d4 0043d4 000008 00 AX 0 0 2 + [30] .text.BT_Soft_Res PROGBITS 000033dc 0043dc 00000a 00 AX 0 0 2 + [31] .text.BT_Configur PROGBITS 000033e6 0043e6 000018 00 AX 0 0 2 + [32] .text.BT_ControlS PROGBITS 000033fe 0043fe 00002c 00 AX 0 0 2 + [33] .text.BT_Period_C PROGBITS 0000342a 00442a 000006 00 AX 0 0 2 + [34] .text.BT_ConfigIn PROGBITS 00003430 004430 000012 00 AX 0 0 2 + [35] .text.BT1_INT_ENA PROGBITS 00003444 004444 000010 00 AX 0 0 4 + [36] .text.GPT_IO_Init PROGBITS 00003454 004454 0000a0 00 AX 0 0 4 + [37] .text.GPT_Configu PROGBITS 000034f4 0044f4 000014 00 AX 0 0 4 + [38] .text.GPT_WaveCtr PROGBITS 00003508 004508 000044 00 AX 0 0 4 + [39] .text.GPT_WaveLoa PROGBITS 0000354c 00454c 000014 00 AX 0 0 4 + [40] .text.GPT_WaveOut PROGBITS 00003560 004560 0000b4 00 AX 0 0 4 + [41] .text.GPT_Start PROGBITS 00003614 004614 000010 00 AX 0 0 4 + [42] .text.GPT_Period_ PROGBITS 00003624 004624 000010 00 AX 0 0 4 + [43] .text.GPT_ConfigI PROGBITS 00003634 004634 00001c 00 AX 0 0 4 + [44] .text.UART0_DeIni PROGBITS 00003650 004650 000018 00 AX 0 0 4 + [45] .text.UART1_DeIni PROGBITS 00003668 004668 000018 00 AX 0 0 4 + [46] .text.UART2_DeIni PROGBITS 00003680 004680 000018 00 AX 0 0 4 + [47] .text.UART0_Int_E PROGBITS 00003698 004698 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 000036b4 0046b4 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 000036d0 0046d0 0000ec 00 AX 0 0 4 + [50] .text.UARTInit PROGBITS 000037bc 0047bc 000010 00 AX 0 0 4 + [51] .text.UARTInitRxT PROGBITS 000037cc 0047cc 000010 00 AX 0 0 4 + [52] .text.UARTTransmi PROGBITS 000037dc 0047dc 00001e 00 AX 0 0 2 + [53] .text.EPT_Stop PROGBITS 000037fc 0047fc 000028 00 AX 0 0 4 + [54] .text.startup.mai PROGBITS 00003824 004824 000070 00 AX 0 0 4 + [55] .text.delay_nms PROGBITS 00003894 004894 00002c 00 AX 0 0 2 + [56] .text.GPT0_CONFIG PROGBITS 000038c0 0048c0 000094 00 AX 0 0 4 + [57] .text.BT_CONFIG PROGBITS 00003954 004954 000060 00 AX 0 0 4 + [58] .text.SYSCON_CONF PROGBITS 000039b4 0049b4 000062 00 AX 0 0 2 + [59] .text.APT32F102_i PROGBITS 00003a18 004a18 000050 00 AX 0 0 4 + [60] .text.SYSCONIntHa PROGBITS 00003a68 004a68 0000f0 00 AX 0 0 4 + [61] .text.IFCIntHandl PROGBITS 00003b58 004b58 000068 00 AX 0 0 4 + [62] .text.ADCIntHandl PROGBITS 00003bc0 004bc0 000068 00 AX 0 0 4 + [63] .text.EPT0IntHand PROGBITS 00003c28 004c28 0001ac 00 AX 0 0 4 + [64] .text.WWDTHandler PROGBITS 00003dd4 004dd4 000034 00 AX 0 0 4 + [65] .text.GPT0IntHand PROGBITS 00003e08 004e08 000080 00 AX 0 0 4 + [66] .text.RTCIntHandl PROGBITS 00003e88 004e88 000070 00 AX 0 0 4 + [67] .text.UART0IntHan PROGBITS 00003ef8 004ef8 00003c 00 AX 0 0 4 + [68] .text.UART1IntHan PROGBITS 00003f34 004f34 00003c 00 AX 0 0 4 + [69] .text.UART2IntHan PROGBITS 00003f70 004f70 000094 00 AX 0 0 4 + [70] .text.SPI0IntHand PROGBITS 00004004 005004 0000e8 00 AX 0 0 4 + [71] .text.SIO0IntHand PROGBITS 000040ec 0050ec 000054 00 AX 0 0 4 + [72] .text.EXI0IntHand PROGBITS 00004140 005140 000030 00 AX 0 0 4 + [73] .text.EXI1IntHand PROGBITS 00004170 005170 000030 00 AX 0 0 4 + [74] .text.EXI2to3IntH PROGBITS 000041a0 0051a0 000048 00 AX 0 0 4 + [75] .text.EXI4to9IntH PROGBITS 000041e8 0051e8 00005c 00 AX 0 0 4 + [76] .text.EXI10to15In PROGBITS 00004244 005244 000060 00 AX 0 0 4 + [77] .text.LPTIntHandl PROGBITS 000042a4 0052a4 000034 00 AX 0 0 4 + [78] .text.BT0IntHandl PROGBITS 000042d8 0052d8 00004c 00 AX 0 0 4 + [79] .text.BT1IntHandl PROGBITS 00004324 005324 000064 00 AX 0 0 4 + [80] .text.PriviledgeV PROGBITS 00004388 005388 000002 00 AX 0 0 2 + [81] .text.PendTrapHan PROGBITS 0000438a 00538a 000008 00 AX 0 0 2 + [82] .text.Trap3Handle PROGBITS 00004392 005392 000008 00 AX 0 0 2 + [83] .text.Trap2Handle PROGBITS 0000439a 00539a 000008 00 AX 0 0 2 + [84] .text.Trap1Handle PROGBITS 000043a2 0053a2 000008 00 AX 0 0 2 + [85] .text.Trap0Handle PROGBITS 000043aa 0053aa 000008 00 AX 0 0 2 + [86] .text.UnrecExecpH PROGBITS 000043b2 0053b2 000008 00 AX 0 0 2 + [87] .text.BreakPointH PROGBITS 000043ba 0053ba 000008 00 AX 0 0 2 + [88] .text.AccessErrHa PROGBITS 000043c2 0053c2 000008 00 AX 0 0 2 + [89] .text.IllegalInst PROGBITS 000043ca 0053ca 000008 00 AX 0 0 2 + [90] .text.MisalignedH PROGBITS 000043d2 0053d2 000008 00 AX 0 0 2 + [91] .text.CNTAIntHand PROGBITS 000043da 0053da 000008 00 AX 0 0 2 + [92] .text.I2CIntHandl PROGBITS 000043e2 0053e2 000008 00 AX 0 0 2 + [93] .text.__divsi3 PROGBITS 000043ec 0053ec 000024 00 AX 0 0 4 + [94] .text.__udivsi3 PROGBITS 00004410 005410 000024 00 AX 0 0 4 + [95] .text.__modsi3 PROGBITS 00004434 005434 000024 00 AX 0 0 4 + [96] .text.__umodsi3 PROGBITS 00004458 005458 000024 00 AX 0 0 4 + [97] .text.CK_CPU_EnAl PROGBITS 0000447c 00547c 000006 00 AX 0 0 2 + [98] .text.UARTx_Init PROGBITS 00004484 005484 0000d8 00 AX 0 0 4 + [99] .text.UART2_RecvI PROGBITS 0000455c 00555c 000064 00 AX 0 0 4 + [100] .text.Dbg_Println PROGBITS 000045c0 0055c0 000098 00 AX 0 0 4 + [101] .text.RC522_Delay PROGBITS 00004658 005658 000012 00 AX 0 0 2 + [102] .text.RC522_ReadW PROGBITS 0000466c 00566c 000054 00 AX 0 0 4 + [103] .text.RC522_ReadR PROGBITS 000046c0 0056c0 000038 00 AX 0 0 4 + [104] .text.RC522_Write PROGBITS 000046f8 0056f8 000030 00 AX 0 0 4 + [105] .text.RC522_PcdRe PROGBITS 00004728 005728 00004c 00 AX 0 0 2 + [106] .text.RC522_SetBi PROGBITS 00004774 005774 000018 00 AX 0 0 2 + [107] .text.RC522_PcdAn PROGBITS 0000478c 00578c 00001a 00 AX 0 0 2 + [108] .text.RC522_Clear PROGBITS 000047a6 0057a6 000016 00 AX 0 0 2 + [109] .text.RC522_PcdAn PROGBITS 000047bc 0057bc 00000c 00 AX 0 0 2 + [110] .text.RC522_Calul PROGBITS 000047c8 0057c8 000066 00 AX 0 0 2 + [111] .text.M500PcdConf PROGBITS 0000482e 00582e 000052 00 AX 0 0 2 + [112] .text.RC522_Init PROGBITS 00004880 005880 0000a0 00 AX 0 0 4 + [113] .text.RC522_PcdCo PROGBITS 00004920 005920 00013a 00 AX 0 0 2 + [114] .text.RC522_PcdSe PROGBITS 00004a5a 005a5a 00006a 00 AX 0 0 2 + [115] .text.RC522_PcdAu PROGBITS 00004ac4 005ac4 000058 00 AX 0 0 2 + [116] .text.RC522_PcdRe PROGBITS 00004b1c 005b1c 000054 00 AX 0 0 2 + [117] .text.RC522_PcdAn PROGBITS 00004b70 005b70 000074 00 AX 0 0 2 + [118] .text.Card_Read_T PROGBITS 00004be4 005be4 0000dc 00 AX 0 0 4 + [119] .text.RLY_Light_C PROGBITS 00004cc0 005cc0 000014 00 AX 0 0 4 + [120] .text.KEY1_LONG_P PROGBITS 00004cd4 005cd4 000070 00 AX 0 0 4 + [121] .text.RLY_Light_C PROGBITS 00004d44 005d44 000020 00 AX 0 0 4 + [122] .text.LogicCtrl_I PROGBITS 00004d64 005d64 000040 00 AX 0 0 4 + [123] .text.Debounce_Ta PROGBITS 00004da4 005da4 000068 00 AX 0 0 4 + [124] .text.LogicCtrl_T PROGBITS 00004e0c 005e0c 00008c 00 AX 0 0 4 + [125] .text.LogicCtrl_N PROGBITS 00004e98 005e98 000070 00 AX 0 0 4 + [126] .text.LogicCtrl_N PROGBITS 00004f08 005f08 0000c8 00 AX 0 0 4 + [127] .text.BackLight_T PROGBITS 00004fd0 005fd0 000034 00 AX 0 0 4 + [128] .text.Detect_WIFI PROGBITS 00005004 006004 000094 00 AX 0 0 4 + [129] .text.DM_Led_Task PROGBITS 00005098 006098 000064 00 AX 0 0 4 + [130] .text.button_init PROGBITS 000050fc 0060fc 00003a 00 AX 0 0 2 + [131] .text.button_atta PROGBITS 00005136 006136 00000a 00 AX 0 0 2 + [132] .text.button_hand PROGBITS 00005140 006140 000120 00 AX 0 0 2 + [133] .text.button_star PROGBITS 00005260 006260 000024 00 AX 0 0 4 + [134] .text.button_tick PROGBITS 00005284 006284 00001c 00 AX 0 0 4 + [135] .text.read_button PROGBITS 000052a0 0062a0 000014 00 AX 0 0 4 + [136] .text.TK_Sampling PROGBITS 000052b4 0062b4 000058 00 AX 0 0 4 + [137] .text.TKEYIntHand PROGBITS 0000530c 00630c 000088 00 AX 0 0 4 + [138] .text.get_key_num PROGBITS 00005394 006394 000028 00 AX 0 0 4 + [139] .text.TK_Scan_Sta PROGBITS 000053bc 0063bc 000020 00 AX 0 0 4 + [140] .text.TK_Keymap_p PROGBITS 000053dc 0063dc 000180 00 AX 0 0 4 + [141] .text.TK_overflow PROGBITS 0000555c 00655c 00011c 00 AX 0 0 4 + [142] .text.TK_Baseline PROGBITS 00005678 006678 0001d0 00 AX 0 0 4 + [143] .text.TK_result_p PROGBITS 00005848 006848 000054 00 AX 0 0 4 + [144] .text.CORETHandle PROGBITS 0000589c 00689c 000078 00 AX 0 0 4 + [145] .text.std_clk_cal PROGBITS 00005914 006914 000284 00 AX 0 0 4 + [146] .RomCode PROGBITS 00005b98 0080a0 000000 00 W 0 0 1 + [147] .rodata PROGBITS 00005b98 006b98 000c80 00 A 0 0 4 + [148] .data PROGBITS 20000000 008000 0000a0 00 WA 0 0 4 + [149] .bss NOBITS 200000a0 0080a0 0006b8 00 WA 0 0 4 + [150] .csky.attributes CSKY_ATTRIBUTES 00000000 0080a0 000022 00 0 0 1 + [151] .comment PROGBITS 00000000 0080c2 000042 01 MS 0 0 1 + [152] .csky_stack_size PROGBITS 00000000 008110 0008dc 00 0 0 16 + [153] .debug_line PROGBITS 00000000 0089ec 0039b9 00 0 0 1 + [154] .debug_info PROGBITS 00000000 00c3a5 02be2a 00 0 0 1 + [155] .debug_abbrev PROGBITS 00000000 0381cf 00288b 00 0 0 1 + [156] .debug_aranges PROGBITS 00000000 03aa60 000cc8 00 0 0 8 + [157] .debug_ranges PROGBITS 00000000 03b728 000bf8 00 0 0 1 + [158] .debug_str PROGBITS 00000000 03c320 00884b 01 MS 0 0 1 + [159] .debug_frame PROGBITS 00000000 044b6c 001e1c 00 0 0 4 + [160] .debug_loc PROGBITS 00000000 046988 002f28 00 0 0 1 + [161] .shstrtab STRTAB 00000000 04f026 000d45 00 0 0 1 + [162] .symtab SYMTAB 00000000 0498b0 004220 10 163 728 4 + [163] .strtab STRTAB 00000000 04dad0 001556 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x06818 0x06818 R E 0x1000 + LOAD 0x008000 0x20000000 0x00006818 0x000a0 0x00758 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.SYSCON_Int_Enable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.GPIO_Read_Output .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.startup.main .text.delay_nms .text.GPT0_CONFIG .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.Dbg_Println .text.RC522_Delay .text.RC522_ReadWriteOneByte .text.RC522_ReadRawRC .text.RC522_WriteRawRC .text.RC522_PcdReset .text.RC522_SetBitMask .text.RC522_PcdAntennaOn .text.RC522_ClearBitMask .text.RC522_PcdAntennaOff .text.RC522_CalulateCRC .text.M500PcdConfigISOType.part.1 .text.RC522_Init .text.RC522_PcdComMF522 .text.RC522_PcdSelect .text.RC522_PcdAuthState .text.RC522_PcdRequest .text.RC522_PcdAnticoll .text.Card_Read_TasK .text.RLY_Light_Ctrl.part.0 .text.KEY1_LONG_PRESS_RELEASE_Handler .text.RLY_Light_Ctrl .text.LogicCtrl_Init .text.Debounce_Task .text.LogicCtrl_Task .text.LogicCtrl_NoRF_Init .text.LogicCtrl_NoRF_Task .text.BackLight_Task .text.Detect_WIFI_Task .text.DM_Led_Task .text.button_init .text.button_attach .text.button_handler .text.button_start .text.button_ticks .text.read_button_GPIO .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl.part.0) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.DM_Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.DM_Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Debounce_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_button.o(.text.read_button_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInit) for UARTInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPT0_CONFIG) for GPT0_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) for RC522_CalulateCRC + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Init) for RC522_Init + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) for RC522_PcdSelect + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) for RC522_PcdAuthState + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) for RC522_PcdRequest + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) for RC522_PcdAnticoll + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) for Card_Read_TasK + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) for LogicCtrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Debounce_Task) for Debounce_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) for LogicCtrl_Task + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) for LogicCtrl_NoRF_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) for LogicCtrl_NoRF_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.BackLight_Task) for BackLight_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) for Detect_WIFI_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.DM_Led_Task) for DM_Led_Task + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_init) for button_init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_attach) for button_attach + Obj/SYSTEM_button.o(.text.button_ticks) refers to Obj/SYSTEM_button.o(.text.button_handler) for button_handler + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_start) for button_start + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_button.o(.text.button_ticks) for button_ticks + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_button.o(.text.button_init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to memcpy_fast.o(.text) for memcpy + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2894 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.EXTI_interrupt_CMD(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.GPIO_EXTI_interrupt(Obj/FWlib_apt32f102_syscon.o), (4 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_IntGroup_Set(Obj/FWlib_apt32f102_gpio.o), (268 bytes). + Removing .text.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3088 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3405 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3150 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4118 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3521 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3637 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4837 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4945 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7594 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2843 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.delay_nus(Obj/mcu_initial.o), (34 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (136 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (156 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (188 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (188 bytes). + Removing .text(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .data(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .text.RC522_Reset(Obj/SYSTEM_rc522.o), (22 bytes). + Removing .text.M500PcdConfigISOType(Obj/SYSTEM_rc522.o), (18 bytes). + Removing .text.RC522_MFRC522_SelectTag(Obj/SYSTEM_rc522.o), (110 bytes). + Removing .text.RC522_PcdRead(Obj/SYSTEM_rc522.o), (84 bytes). + Removing .text.RC522_PcdWrite(Obj/SYSTEM_rc522.o), (142 bytes). + Removing .text.test_task(Obj/SYSTEM_rc522.o), (36 bytes). + Removing .text(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .data(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .text.Ctrl_Backlight(Obj/SYSTEM_logic_ctrl.o), (36 bytes). + Removing .text.KEY1_LONG_PRESS_START_Handler(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text(Obj/SYSTEM_button.o), (0 bytes). + Removing .data(Obj/SYSTEM_button.o), (0 bytes). + Removing .text.get_button_event(Obj/SYSTEM_button.o), (6 bytes). + Removing .text.button_stop(Obj/SYSTEM_button.o), (32 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (108 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +652 unused seciton(s) (total 179885 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_button.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_logic_ctrl.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_rc522.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + swrite 0x00001984 F 62 .text + $d 0x00001984 0 .text + $t 0x00001984 0 .text + $d 0x00001a18 0 .text + $d 0x00001a1c 0 .text + $t 0x00001a1c 0 .text + $d 0x00001aa4 0 .text + $t 0x00001aa4 0 .text + PAD.1851 0x00001b08 F 52 .text + $d 0x00001b08 0 .text + $t 0x00001b08 0 .text + $d 0x000020b0 0 .text + $t 0x000020bc 0 .text + $d 0x00002258 0 .text + $d 0x00002260 0 .text + $t 0x00002260 0 .text + $d 0x00002600 0 .text + $d 0x0000260c 0 .text + $t 0x0000260c 0 .text + $d 0x000029a0 0 .text + copystring 0x000029ac F 38 .text + $d 0x000029ac 0 .text + $t 0x000029ac 0 .text + $d 0x00002cd8 0 .text + $d 0x00002d0c 0 .text + $t 0x00002d0c 0 .text + $d 0x00002d34 0 .text + $d 0x00002d38 0 .text + $t 0x00002d38 0 .text + $d 0x00002d8c 0 .text + $t 0x00002d8c 0 .text + $d 0x00002e3c 0 .text + $t 0x00002e3c 0 .text + $d 0x00002e50 0 .text + $t 0x00002e50 0 .text + $d 0x00002e64 0 .text + $d 0x00002e6c 0 .text + $t 0x00002e6c 0 .text + $d 0x00002e94 0 .text + $d 0x00002e9c 0 .text + $t 0x00002e9c 0 .text + $d 0x00002ed8 0 .text + $t 0x00002ed8 0 .text + $d 0x00002f14 0 .text.__main + $t 0x00002f14 0 .text.__main + $d 0x00002f38 0 .text.__main + SYSCON_General_CMD.part.0 0x00002f4c F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $t 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fb8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fc0 0 .text.SYSCON_RST_VALUE + $t 0x00002fc0 0 .text.SYSCON_RST_VALUE + $d 0x00002ff0 0 .text.SYSCON_RST_VALUE + $d 0x0000300c 0 .text.SYSCON_General_CMD + $t 0x0000300c 0 .text.SYSCON_General_CMD + $d 0x00003038 0 .text.SYSCON_General_CMD + $d 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030b4 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $t 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030e8 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030ec 0 .text.SYSCON_WDT_CMD + $t 0x000030ec 0 .text.SYSCON_WDT_CMD + $d 0x0000311c 0 .text.SYSCON_WDT_CMD + $d 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $t 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $d 0x00003138 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $t 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $d 0x0000314c 0 .text.SYSCON_IWDCNT_Config + $d 0x00003154 0 .text.SYSCON_LVD_Config + $t 0x00003154 0 .text.SYSCON_LVD_Config + $d 0x0000316c 0 .text.SYSCON_LVD_Config + $d 0x00003174 0 .text.LVD_Int_Enable + $t 0x00003174 0 .text.LVD_Int_Enable + $d 0x0000318c 0 .text.LVD_Int_Enable + $d 0x00003190 0 .text.IWDT_Int_Enable + $t 0x00003190 0 .text.IWDT_Int_Enable + $d 0x000031a8 0 .text.IWDT_Int_Enable + $d 0x000031ac 0 .text.EXTI_trigger_CMD + $t 0x000031ac 0 .text.EXTI_trigger_CMD + $d 0x000031e8 0 .text.EXTI_trigger_CMD + $d 0x000031ec 0 .text.SYSCON_Int_Enable + $t 0x000031ec 0 .text.SYSCON_Int_Enable + $d 0x000031f4 0 .text.SYSCON_Int_Enable + $d 0x000031f8 0 .text.SYSCON_INT_Priority + $t 0x000031f8 0 .text.SYSCON_INT_Priority + $d 0x00003210 0 .text.SYSCON_INT_Priority + $d 0x0000321c 0 .text.Set_INT_Priority + $t 0x0000321c 0 .text.Set_INT_Priority + $d 0x00003248 0 .text.Set_INT_Priority + $d 0x0000324c 0 .text.GPIO_Init + $t 0x0000324c 0 .text.GPIO_Init + $d 0x0000325e 0 .text.GPIO_Init + $t 0x00003266 0 .text.GPIO_Init + $d 0x000032c2 0 .text.GPIO_Init + $t 0x000032ca 0 .text.GPIO_Init + $d 0x00003318 0 .text.GPIO_Init + $d 0x0000332c 0 .text.GPIO_PullHigh_Init + $t 0x0000332c 0 .text.GPIO_PullHigh_Init + $d 0x00003340 0 .text.GPIO_DriveStrength_EN + $t 0x00003340 0 .text.GPIO_DriveStrength_EN + $d 0x0000334e 0 .text.GPIO_Write_High + $t 0x0000334e 0 .text.GPIO_Write_High + $d 0x00003356 0 .text.GPIO_Write_Low + $t 0x00003356 0 .text.GPIO_Write_Low + $d 0x0000335e 0 .text.GPIO_Reverse + $t 0x0000335e 0 .text.GPIO_Reverse + $d 0x00003374 0 .text.GPIO_Read_Status + $t 0x00003374 0 .text.GPIO_Read_Status + $d 0x00003384 0 .text.GPIO_Read_Output + $t 0x00003384 0 .text.GPIO_Read_Output + $d 0x00003394 0 .text.LPT_Soft_Reset + $t 0x00003394 0 .text.LPT_Soft_Reset + $d 0x000033a4 0 .text.LPT_Soft_Reset + $d 0x000033a8 0 .text.WWDT_CNT_Load + $t 0x000033a8 0 .text.WWDT_CNT_Load + $d 0x000033b4 0 .text.WWDT_CNT_Load + $d 0x000033b8 0 .text.BT_DeInit + $t 0x000033b8 0 .text.BT_DeInit + $d 0x000033d4 0 .text.BT_Start + $t 0x000033d4 0 .text.BT_Start + $d 0x000033dc 0 .text.BT_Soft_Reset + $t 0x000033dc 0 .text.BT_Soft_Reset + $d 0x000033e6 0 .text.BT_Configure + $t 0x000033e6 0 .text.BT_Configure + $d 0x000033fe 0 .text.BT_ControlSet_Configure + $t 0x000033fe 0 .text.BT_ControlSet_Configure + $d 0x0000342a 0 .text.BT_Period_CMP_Write + $t 0x0000342a 0 .text.BT_Period_CMP_Write + $d 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $t 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $d 0x00003444 0 .text.BT1_INT_ENABLE + $t 0x00003444 0 .text.BT1_INT_ENABLE + $d 0x00003450 0 .text.BT1_INT_ENABLE + $d 0x00003454 0 .text.GPT_IO_Init + $t 0x00003454 0 .text.GPT_IO_Init + $d 0x000034ec 0 .text.GPT_IO_Init + $d 0x000034f4 0 .text.GPT_Configure + $t 0x000034f4 0 .text.GPT_Configure + $d 0x00003504 0 .text.GPT_Configure + $d 0x00003508 0 .text.GPT_WaveCtrl_Configure + $t 0x00003508 0 .text.GPT_WaveCtrl_Configure + $d 0x00003548 0 .text.GPT_WaveCtrl_Configure + $d 0x0000354c 0 .text.GPT_WaveLoad_Configure + $t 0x0000354c 0 .text.GPT_WaveLoad_Configure + $d 0x0000355c 0 .text.GPT_WaveLoad_Configure + $d 0x00003560 0 .text.GPT_WaveOut_Configure + $t 0x00003560 0 .text.GPT_WaveOut_Configure + $d 0x00003610 0 .text.GPT_WaveOut_Configure + $d 0x00003614 0 .text.GPT_Start + $t 0x00003614 0 .text.GPT_Start + $d 0x00003620 0 .text.GPT_Start + $d 0x00003624 0 .text.GPT_Period_CMP_Write + $t 0x00003624 0 .text.GPT_Period_CMP_Write + $d 0x00003630 0 .text.GPT_Period_CMP_Write + $d 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $t 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $d 0x0000364c 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00003650 0 .text.UART0_DeInit + $t 0x00003650 0 .text.UART0_DeInit + $d 0x00003664 0 .text.UART0_DeInit + $d 0x00003668 0 .text.UART1_DeInit + $t 0x00003668 0 .text.UART1_DeInit + $d 0x0000367c 0 .text.UART1_DeInit + $d 0x00003680 0 .text.UART2_DeInit + $t 0x00003680 0 .text.UART2_DeInit + $d 0x00003694 0 .text.UART2_DeInit + $d 0x00003698 0 .text.UART0_Int_Enable + $t 0x00003698 0 .text.UART0_Int_Enable + $d 0x000036ac 0 .text.UART0_Int_Enable + $d 0x000036b4 0 .text.UART2_Int_Enable + $t 0x000036b4 0 .text.UART2_Int_Enable + $d 0x000036c8 0 .text.UART2_Int_Enable + $d 0x000036d0 0 .text.UART_IO_Init + $t 0x000036d0 0 .text.UART_IO_Init + $d 0x000037b4 0 .text.UART_IO_Init + $d 0x000037bc 0 .text.UARTInit + $t 0x000037bc 0 .text.UARTInit + $d 0x000037c8 0 .text.UARTInit + $d 0x000037cc 0 .text.UARTInitRxTxIntEn + $t 0x000037cc 0 .text.UARTInitRxTxIntEn + $d 0x000037d8 0 .text.UARTInitRxTxIntEn + $d 0x000037dc 0 .text.UARTTransmit + $t 0x000037dc 0 .text.UARTTransmit + $d 0x000037fc 0 .text.EPT_Stop + $t 0x000037fc 0 .text.EPT_Stop + $d 0x0000381c 0 .text.EPT_Stop + $d 0x00003824 0 .text.startup.main + $t 0x00003824 0 .text.startup.main + $d 0x00003888 0 .text.startup.main + $d 0x00003894 0 .text.delay_nms + $t 0x00003894 0 .text.delay_nms + $d 0x000038c0 0 .text.GPT0_CONFIG + $t 0x000038c0 0 .text.GPT0_CONFIG + $d 0x00003950 0 .text.GPT0_CONFIG + $d 0x00003954 0 .text.BT_CONFIG + $t 0x00003954 0 .text.BT_CONFIG + $d 0x000039ac 0 .text.BT_CONFIG + $d 0x000039b4 0 .text.SYSCON_CONFIG + $t 0x000039b4 0 .text.SYSCON_CONFIG + $d 0x00003a18 0 .text.APT32F102_init + $t 0x00003a18 0 .text.APT32F102_init + $d 0x00003a60 0 .text.APT32F102_init + $d 0x00003a68 0 .text.SYSCONIntHandler + $t 0x00003a68 0 .text.SYSCONIntHandler + $d 0x00003b54 0 .text.SYSCONIntHandler + $d 0x00003b58 0 .text.IFCIntHandler + $t 0x00003b58 0 .text.IFCIntHandler + $d 0x00003bbc 0 .text.IFCIntHandler + $d 0x00003bc0 0 .text.ADCIntHandler + $t 0x00003bc0 0 .text.ADCIntHandler + $d 0x00003c24 0 .text.ADCIntHandler + $d 0x00003c28 0 .text.EPT0IntHandler + $t 0x00003c28 0 .text.EPT0IntHandler + $d 0x00003dc8 0 .text.EPT0IntHandler + $d 0x00003dd4 0 .text.WWDTHandler + $t 0x00003dd4 0 .text.WWDTHandler + $d 0x00003e04 0 .text.WWDTHandler + $d 0x00003e08 0 .text.GPT0IntHandler + $t 0x00003e08 0 .text.GPT0IntHandler + $d 0x00003e84 0 .text.GPT0IntHandler + $d 0x00003e88 0 .text.RTCIntHandler + $t 0x00003e88 0 .text.RTCIntHandler + $d 0x00003ef0 0 .text.RTCIntHandler + $d 0x00003ef8 0 .text.UART0IntHandler + $t 0x00003ef8 0 .text.UART0IntHandler + $d 0x00003f30 0 .text.UART0IntHandler + $d 0x00003f34 0 .text.UART1IntHandler + $t 0x00003f34 0 .text.UART1IntHandler + $d 0x00003f6c 0 .text.UART1IntHandler + $d 0x00003f70 0 .text.UART2IntHandler + $t 0x00003f70 0 .text.UART2IntHandler + $d 0x00003ff0 0 .text.UART2IntHandler + $d 0x00004004 0 .text.SPI0IntHandler + $t 0x00004004 0 .text.SPI0IntHandler + $d 0x000040e8 0 .text.SPI0IntHandler + $d 0x000040ec 0 .text.SIO0IntHandler + $t 0x000040ec 0 .text.SIO0IntHandler + $d 0x0000413c 0 .text.SIO0IntHandler + $d 0x00004140 0 .text.EXI0IntHandler + $t 0x00004140 0 .text.EXI0IntHandler + $d 0x0000416c 0 .text.EXI0IntHandler + $d 0x00004170 0 .text.EXI1IntHandler + $t 0x00004170 0 .text.EXI1IntHandler + $d 0x0000419c 0 .text.EXI1IntHandler + $d 0x000041a0 0 .text.EXI2to3IntHandler + $t 0x000041a0 0 .text.EXI2to3IntHandler + $d 0x000041e4 0 .text.EXI2to3IntHandler + $d 0x000041e8 0 .text.EXI4to9IntHandler + $t 0x000041e8 0 .text.EXI4to9IntHandler + $d 0x00004240 0 .text.EXI4to9IntHandler + $d 0x00004244 0 .text.EXI10to15IntHandler + $t 0x00004244 0 .text.EXI10to15IntHandler + $d 0x000042a0 0 .text.EXI10to15IntHandler + $d 0x000042a4 0 .text.LPTIntHandler + $t 0x000042a4 0 .text.LPTIntHandler + $d 0x000042d4 0 .text.LPTIntHandler + $d 0x000042d8 0 .text.BT0IntHandler + $t 0x000042d8 0 .text.BT0IntHandler + $d 0x00004320 0 .text.BT0IntHandler + $d 0x00004324 0 .text.BT1IntHandler + $t 0x00004324 0 .text.BT1IntHandler + $d 0x00004380 0 .text.BT1IntHandler + $d 0x00004388 0 .text.PriviledgeVioHandler + $t 0x00004388 0 .text.PriviledgeVioHandler + $d 0x0000438a 0 .text.PendTrapHandler + $t 0x0000438a 0 .text.PendTrapHandler + $d 0x00004392 0 .text.Trap3Handler + $t 0x00004392 0 .text.Trap3Handler + $d 0x0000439a 0 .text.Trap2Handler + $t 0x0000439a 0 .text.Trap2Handler + $d 0x000043a2 0 .text.Trap1Handler + $t 0x000043a2 0 .text.Trap1Handler + $d 0x000043aa 0 .text.Trap0Handler + $t 0x000043aa 0 .text.Trap0Handler + $d 0x000043b2 0 .text.UnrecExecpHandler + $t 0x000043b2 0 .text.UnrecExecpHandler + $d 0x000043ba 0 .text.BreakPointHandler + $t 0x000043ba 0 .text.BreakPointHandler + $d 0x000043c2 0 .text.AccessErrHandler + $t 0x000043c2 0 .text.AccessErrHandler + $d 0x000043ca 0 .text.IllegalInstrHandler + $t 0x000043ca 0 .text.IllegalInstrHandler + $d 0x000043d2 0 .text.MisalignedHandler + $t 0x000043d2 0 .text.MisalignedHandler + $d 0x000043da 0 .text.CNTAIntHandler + $t 0x000043da 0 .text.CNTAIntHandler + $d 0x000043e2 0 .text.I2CIntHandler + $t 0x000043e2 0 .text.I2CIntHandler + $d 0x000043ec 0 .text.__divsi3 + $t 0x000043ec 0 .text.__divsi3 + $d 0x0000440c 0 .text.__divsi3 + $d 0x00004410 0 .text.__udivsi3 + $t 0x00004410 0 .text.__udivsi3 + $d 0x00004430 0 .text.__udivsi3 + $d 0x00004434 0 .text.__modsi3 + $t 0x00004434 0 .text.__modsi3 + $d 0x00004454 0 .text.__modsi3 + $d 0x00004458 0 .text.__umodsi3 + $t 0x00004458 0 .text.__umodsi3 + $d 0x00004478 0 .text.__umodsi3 + $d 0x0000447c 0 .text.CK_CPU_EnAllNormalIrq + $t 0x0000447c 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00004484 0 .text.UARTx_Init + $t 0x00004484 0 .text.UARTx_Init + $d 0x00004540 0 .text.UARTx_Init + $d 0x0000455c 0 .text.UART2_RecvINT_Processing + $t 0x0000455c 0 .text.UART2_RecvINT_Processing + $d 0x000045b0 0 .text.UART2_RecvINT_Processing + $d 0x000045c0 0 .text.Dbg_Println + $t 0x000045c0 0 .text.Dbg_Println + $d 0x00004640 0 .text.Dbg_Println + $d 0x00004658 0 .text.RC522_Delay + $t 0x00004658 0 .text.RC522_Delay + $d 0x0000466c 0 .text.RC522_ReadWriteOneByte + $t 0x0000466c 0 .text.RC522_ReadWriteOneByte + $d 0x000046bc 0 .text.RC522_ReadWriteOneByte + $d 0x000046c0 0 .text.RC522_ReadRawRC + $t 0x000046c0 0 .text.RC522_ReadRawRC + $d 0x000046f4 0 .text.RC522_ReadRawRC + $d 0x000046f8 0 .text.RC522_WriteRawRC + $t 0x000046f8 0 .text.RC522_WriteRawRC + $d 0x00004724 0 .text.RC522_WriteRawRC + $d 0x00004728 0 .text.RC522_PcdReset + $t 0x00004728 0 .text.RC522_PcdReset + $d 0x00004774 0 .text.RC522_SetBitMask + $t 0x00004774 0 .text.RC522_SetBitMask + $d 0x0000478c 0 .text.RC522_PcdAntennaOn + $t 0x0000478c 0 .text.RC522_PcdAntennaOn + $d 0x000047a6 0 .text.RC522_ClearBitMask + $t 0x000047a6 0 .text.RC522_ClearBitMask + $d 0x000047bc 0 .text.RC522_PcdAntennaOff + $t 0x000047bc 0 .text.RC522_PcdAntennaOff + $d 0x000047c8 0 .text.RC522_CalulateCRC + $t 0x000047c8 0 .text.RC522_CalulateCRC + M500PcdConfigISOType.part.1 0x0000482e F 82 .text.M500PcdConfigISOType.part.1 + $d 0x0000482e 0 .text.M500PcdConfigISOType.part.1 + $t 0x0000482e 0 .text.M500PcdConfigISOType.part.1 + $d 0x00004880 0 .text.RC522_Init + $t 0x00004880 0 .text.RC522_Init + $d 0x00004914 0 .text.RC522_Init + $d 0x00004920 0 .text.RC522_PcdComMF522 + $t 0x00004920 0 .text.RC522_PcdComMF522 + $d 0x00004a5a 0 .text.RC522_PcdSelect + $t 0x00004a5a 0 .text.RC522_PcdSelect + $d 0x00004ac4 0 .text.RC522_PcdAuthState + $t 0x00004ac4 0 .text.RC522_PcdAuthState + $d 0x00004b1c 0 .text.RC522_PcdRequest + $t 0x00004b1c 0 .text.RC522_PcdRequest + $d 0x00004b70 0 .text.RC522_PcdAnticoll + $t 0x00004b70 0 .text.RC522_PcdAnticoll + $d 0x00004be4 0 .text.Card_Read_TasK + $t 0x00004be4 0 .text.Card_Read_TasK + $d 0x00004c98 0 .text.Card_Read_TasK + RLY_Light_Ctrl.part.0 0x00004cc0 F 20 .text.RLY_Light_Ctrl.part.0 + $d 0x00004cc0 0 .text.RLY_Light_Ctrl.part.0 + $t 0x00004cc0 0 .text.RLY_Light_Ctrl.part.0 + $d 0x00004cd0 0 .text.RLY_Light_Ctrl.part.0 + $d 0x00004cd4 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $t 0x00004cd4 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004d24 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004d44 0 .text.RLY_Light_Ctrl + $t 0x00004d44 0 .text.RLY_Light_Ctrl + $d 0x00004d60 0 .text.RLY_Light_Ctrl + $d 0x00004d64 0 .text.LogicCtrl_Init + $t 0x00004d64 0 .text.LogicCtrl_Init + $d 0x00004d98 0 .text.LogicCtrl_Init + $d 0x00004da4 0 .text.Debounce_Task + $t 0x00004da4 0 .text.Debounce_Task + $d 0x00004e00 0 .text.Debounce_Task + $d 0x00004e0c 0 .text.LogicCtrl_Task + $t 0x00004e0c 0 .text.LogicCtrl_Task + $d 0x00004e84 0 .text.LogicCtrl_Task + $d 0x00004e98 0 .text.LogicCtrl_NoRF_Init + $t 0x00004e98 0 .text.LogicCtrl_NoRF_Init + $d 0x00004ef4 0 .text.LogicCtrl_NoRF_Init + $d 0x00004f08 0 .text.LogicCtrl_NoRF_Task + $t 0x00004f08 0 .text.LogicCtrl_NoRF_Task + $d 0x00004fb4 0 .text.LogicCtrl_NoRF_Task + $d 0x00004fd0 0 .text.BackLight_Task + $t 0x00004fd0 0 .text.BackLight_Task + $d 0x00004ffc 0 .text.BackLight_Task + $d 0x00005004 0 .text.Detect_WIFI_Task + $t 0x00005004 0 .text.Detect_WIFI_Task + $d 0x00005074 0 .text.Detect_WIFI_Task + $d 0x00005098 0 .text.DM_Led_Task + $t 0x00005098 0 .text.DM_Led_Task + $d 0x000050ec 0 .text.DM_Led_Task + $d 0x000050fc 0 .text.button_init + $t 0x000050fc 0 .text.button_init + $d 0x00005136 0 .text.button_attach + $t 0x00005136 0 .text.button_attach + $d 0x00005140 0 .text.button_handler + $t 0x00005140 0 .text.button_handler + $d 0x00005260 0 .text.button_start + $t 0x00005260 0 .text.button_start + $d 0x00005280 0 .text.button_start + $d 0x00005284 0 .text.button_ticks + $t 0x00005284 0 .text.button_ticks + $d 0x0000529c 0 .text.button_ticks + $d 0x000052a0 0 .text.read_button_GPIO + $t 0x000052a0 0 .text.read_button_GPIO + $d 0x000052b0 0 .text.read_button_GPIO + $d 0x000052b4 0 .text.TK_Sampling_prog + $t 0x000052b4 0 .text.TK_Sampling_prog + $d 0x000052fc 0 .text.TK_Sampling_prog + $d 0x0000530c 0 .text.TKEYIntHandler + $t 0x0000530c 0 .text.TKEYIntHandler + $d 0x00005388 0 .text.TKEYIntHandler + $d 0x00005394 0 .text.get_key_number + $t 0x00005394 0 .text.get_key_number + $d 0x000053b8 0 .text.get_key_number + $d 0x000053bc 0 .text.TK_Scan_Start + $t 0x000053bc 0 .text.TK_Scan_Start + $d 0x000053d4 0 .text.TK_Scan_Start + $d 0x000053dc 0 .text.TK_Keymap_prog + $t 0x000053dc 0 .text.TK_Keymap_prog + $d 0x00005524 0 .text.TK_Keymap_prog + $d 0x0000555c 0 .text.TK_overflow_predict + $t 0x0000555c 0 .text.TK_overflow_predict + $d 0x00005644 0 .text.TK_overflow_predict + $d 0x00005678 0 .text.TK_Baseline_tracking + $t 0x00005678 0 .text.TK_Baseline_tracking + $d 0x0000581c 0 .text.TK_Baseline_tracking + $d 0x00005848 0 .text.TK_result_prog + $t 0x00005848 0 .text.TK_result_prog + $d 0x00005888 0 .text.TK_result_prog + $d 0x0000589c 0 .text.CORETHandler + $t 0x0000589c 0 .text.CORETHandler + $d 0x000058fc 0 .text.CORETHandler + $d 0x00005914 0 .text.std_clk_calib + $t 0x00005914 0 .text.std_clk_calib + $d 0x00005b5c 0 .text.std_clk_calib + bp 0x00005b98 O 16 .rodata + dp_l 0x00005ba8 O 16 .rodata + dp_h 0x00005bb8 O 16 .rodata + blanks.1847 0x00005cdc O 16 .rodata + zeroes.1848 0x00005cec O 16 .rodata + CSWTCH.1 0x00005cfc O 576 .rodata + NUM.6031 0x200000ac O 1 .bss + test_tick.5953 0x200002e4 O 4 .bss + card_tick.5952 0x200002e8 O 4 .bss + head_handle 0x200002ec O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __cskyvprintfsnprintf 0x00001964 F 32 .text + __cskyvprintfvsnprintf 0x000019c2 F 90 .text + __memset_fast 0x00001a1c w F 136 .text + memset 0x00001a1c w F 136 .text + __memcpy_fast 0x00001aa4 w F 100 .text + memcpy 0x00001aa4 w F 100 .text + __v2_printf 0x00001b3c F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00001b3c F 1828 .text + __udivdi3 0x00002260 F 940 .text + __umoddi3 0x0000260c F 928 .text + __GI___dtostr 0x000029d2 F 826 .text + __dtostr 0x000029d2 F 826 .text + __isnan 0x00002d0c F 44 .text + __strlen_fast 0x00002d38 w F 82 .text + strlen 0x00002d38 w F 82 .text + __strcpy_fast 0x00002d8c w F 176 .text + strcpy 0x00002d8c w F 176 .text + __GI_strchr 0x00002e3c F 18 .text + strchr 0x00002e3c w F 18 .text + __GI_strerror 0x00002e50 F 28 .text + strerror 0x00002e50 F 28 .text + __isinf 0x00002e6c F 48 .text + __eqdf2 0x00002e9c F 58 .text + __ltdf2 0x00002ed8 F 58 .text + __main 0x00002f14 F 56 .text.__main + SYSCON_RST_VALUE 0x00002fc0 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x0000300c F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x0000303c F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x000030c4 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x000030ec F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00003128 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x0000313c F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00003154 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00003174 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00003190 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x000031ac F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x000031ec F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x000031f8 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x0000321c F 48 .text.Set_INT_Priority + GPIO_Init 0x0000324c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000332c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00003340 F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x0000334e F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00003356 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x0000335e F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00003374 F 16 .text.GPIO_Read_Status + GPIO_Read_Output 0x00003384 F 16 .text.GPIO_Read_Output + LPT_Soft_Reset 0x00003394 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000033a8 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000033b8 F 28 .text.BT_DeInit + BT_Start 0x000033d4 F 8 .text.BT_Start + BT_Soft_Reset 0x000033dc F 10 .text.BT_Soft_Reset + BT_Configure 0x000033e6 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000033fe F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000342a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00003430 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00003444 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00003454 F 160 .text.GPT_IO_Init + GPT_Configure 0x000034f4 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00003508 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x0000354c F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x00003560 F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x00003614 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x00003624 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x00003634 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x00003650 F 24 .text.UART0_DeInit + UART1_DeInit 0x00003668 F 24 .text.UART1_DeInit + UART2_DeInit 0x00003680 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00003698 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000036b4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x000036d0 F 236 .text.UART_IO_Init + UARTInit 0x000037bc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x000037cc F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000037dc F 30 .text.UARTTransmit + EPT_Stop 0x000037fc F 40 .text.EPT_Stop + main 0x00003824 F 112 .text.startup.main + delay_nms 0x00003894 F 44 .text.delay_nms + GPT0_CONFIG 0x000038c0 F 148 .text.GPT0_CONFIG + BT_CONFIG 0x00003954 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x000039b4 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00003a18 F 80 .text.APT32F102_init + SYSCONIntHandler 0x00003a68 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00003b58 F 104 .text.IFCIntHandler + ADCIntHandler 0x00003bc0 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003c28 F 428 .text.EPT0IntHandler + WWDTHandler 0x00003dd4 F 52 .text.WWDTHandler + GPT0IntHandler 0x00003e08 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00003e88 F 112 .text.RTCIntHandler + UART0IntHandler 0x00003ef8 F 60 .text.UART0IntHandler + UART1IntHandler 0x00003f34 F 60 .text.UART1IntHandler + UART2IntHandler 0x00003f70 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00004004 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000040ec F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00004140 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00004170 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000041a0 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000041e8 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00004244 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000042a4 F 52 .text.LPTIntHandler + BT0IntHandler 0x000042d8 F 76 .text.BT0IntHandler + BT1IntHandler 0x00004324 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00004388 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x0000438a F 8 .text.PendTrapHandler + Trap3Handler 0x00004392 F 8 .text.Trap3Handler + Trap2Handler 0x0000439a F 8 .text.Trap2Handler + Trap1Handler 0x000043a2 F 8 .text.Trap1Handler + Trap0Handler 0x000043aa F 8 .text.Trap0Handler + UnrecExecpHandler 0x000043b2 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000043ba F 8 .text.BreakPointHandler + AccessErrHandler 0x000043c2 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000043ca F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000043d2 F 8 .text.MisalignedHandler + CNTAIntHandler 0x000043da F 8 .text.CNTAIntHandler + I2CIntHandler 0x000043e2 F 8 .text.I2CIntHandler + __divsi3 0x000043ec F 36 .text.__divsi3 + __udivsi3 0x00004410 F 36 .text.__udivsi3 + __modsi3 0x00004434 F 36 .text.__modsi3 + __umodsi3 0x00004458 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x0000447c F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x00004484 F 216 .text.UARTx_Init + UART2_RecvINT_Processing 0x0000455c F 100 .text.UART2_RecvINT_Processing + Dbg_Println 0x000045c0 F 152 .text.Dbg_Println + RC522_Delay 0x00004658 F 18 .text.RC522_Delay + RC522_ReadWriteOneByte 0x0000466c F 84 .text.RC522_ReadWriteOneByte + RC522_ReadRawRC 0x000046c0 F 56 .text.RC522_ReadRawRC + RC522_WriteRawRC 0x000046f8 F 48 .text.RC522_WriteRawRC + RC522_PcdReset 0x00004728 F 76 .text.RC522_PcdReset + RC522_SetBitMask 0x00004774 F 24 .text.RC522_SetBitMask + RC522_PcdAntennaOn 0x0000478c F 26 .text.RC522_PcdAntennaOn + RC522_ClearBitMask 0x000047a6 F 22 .text.RC522_ClearBitMask + RC522_PcdAntennaOff 0x000047bc F 12 .text.RC522_PcdAntennaOff + RC522_CalulateCRC 0x000047c8 F 102 .text.RC522_CalulateCRC + RC522_Init 0x00004880 F 160 .text.RC522_Init + RC522_PcdComMF522 0x00004920 F 314 .text.RC522_PcdComMF522 + RC522_PcdSelect 0x00004a5a F 106 .text.RC522_PcdSelect + RC522_PcdAuthState 0x00004ac4 F 88 .text.RC522_PcdAuthState + RC522_PcdRequest 0x00004b1c F 84 .text.RC522_PcdRequest + RC522_PcdAnticoll 0x00004b70 F 116 .text.RC522_PcdAnticoll + Card_Read_TasK 0x00004be4 F 220 .text.Card_Read_TasK + KEY1_LONG_PRESS_RELEASE_Handler 0x00004cd4 F 112 .text.KEY1_LONG_PRESS_RELEASE_Handler + RLY_Light_Ctrl 0x00004d44 F 32 .text.RLY_Light_Ctrl + LogicCtrl_Init 0x00004d64 F 64 .text.LogicCtrl_Init + Debounce_Task 0x00004da4 F 104 .text.Debounce_Task + LogicCtrl_Task 0x00004e0c F 140 .text.LogicCtrl_Task + LogicCtrl_NoRF_Init 0x00004e98 F 112 .text.LogicCtrl_NoRF_Init + LogicCtrl_NoRF_Task 0x00004f08 F 200 .text.LogicCtrl_NoRF_Task + BackLight_Task 0x00004fd0 F 52 .text.BackLight_Task + Detect_WIFI_Task 0x00005004 F 148 .text.Detect_WIFI_Task + DM_Led_Task 0x00005098 F 100 .text.DM_Led_Task + button_init 0x000050fc F 58 .text.button_init + button_attach 0x00005136 F 10 .text.button_attach + button_handler 0x00005140 F 288 .text.button_handler + button_start 0x00005260 F 36 .text.button_start + button_ticks 0x00005284 F 28 .text.button_ticks + read_button_GPIO 0x000052a0 F 20 .text.read_button_GPIO + TK_Sampling_prog 0x000052b4 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x0000530c F 136 .text.TKEYIntHandler + get_key_number 0x00005394 F 40 .text.get_key_number + TK_Scan_Start 0x000053bc F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x000053dc F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000555c F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00005678 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00005848 F 84 .text.TK_result_prog + CORETHandler 0x0000589c F 120 .text.CORETHandler + std_clk_calib 0x00005914 F 644 .text.std_clk_calib + __thenan_df 0x00005bc8 O 20 .rodata + __clz_tab 0x00005bdc O 256 .rodata + _end_rodata 0x00006818 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + Dbg_Switch 0x20000068 O 4 .data + s_tkey 0x2000006c O 4 .data + samp_setover_f 0x20000070 O 1 .data + tk_overflow_en 0x20000071 O 1 .data + tk_div 0x20000072 O 34 .data + neg_build_bounce 0x20000094 O 1 .data + pos_build_bounce 0x20000095 O 1 .data + tk_scan_para0 0x20000098 O 4 .data + scan_step_temp 0x2000009c O 1 .data + _end_data 0x200000a0 0 .data + _bss_start 0x200000a0 0 .bss + rf_exist 0x200000a0 O 1 .bss + last_state 0x200000a1 O 1 .bss + finish_flag 0x200000a2 O 1 .bss + detect_tick 0x200000a4 O 4 .bss + detect_count 0x200000a8 O 1 .bss + test_state 0x200000a9 O 1 .bss + SysTick_100us 0x200000b0 O 4 .bss + SysTick_1ms 0x200000b4 O 4 .bss + RS485_Comming 0x200000b8 O 4 .bss + RS485_Comm_Flag 0x200000bc O 4 .bss + RS485_Comm_Start 0x200000c0 O 4 .bss + RS485_Comm_End 0x200000c4 O 4 .bss + SysTick_Now 0x200000c8 O 4 .bss + SysTick_Last 0x200000cc O 4 .bss + SysTick_Diff 0x200000d0 O 4 .bss + Dbg_Buffer 0x200000d4 O 512 .bss + scan_tick 0x200002d4 O 4 .bss + test_count 0x200002d8 O 2 .bss + test_tick 0x200002dc O 4 .bss + LED_STATE 0x200002e0 O 1 .bss + Press_debounce_data 0x200002f0 O 1 .bss + TK_Lowpower_mode 0x200002f1 O 1 .bss + TK_Lowpower_level 0x200002f2 O 1 .bss + TK_longpress_time 0x200002f4 O 4 .bss + Release_debounce_data 0x200002f8 O 1 .bss + Key_mode 0x200002f9 O 1 .bss + TK_icon 0x200002fa O 34 .bss + MultiTimes_Filter 0x2000031c O 1 .bss + Base_Speed 0x2000031d O 1 .bss + TK_IO_ENABLE 0x20000320 O 4 .bss + Valid_Key_Num 0x20000324 O 1 .bss + TK_senprd 0x20000326 O 34 .bss + TK_Wakeup_level 0x20000348 O 1 .bss + TK_Triggerlevel 0x2000034a O 34 .bss + TK_EC_LEVEL 0x2000036c O 2 .bss + TK_FVR_LEVEL 0x2000036e O 2 .bss + TK_BaseCnt 0x20000370 O 4 .bss + TK_PSEL_MODE 0x20000374 O 2 .bss + R_CMPB_BUF 0x20000378 O 4 .bss + R_CMPA_BUF 0x2000037c O 4 .bss + R_SIORX_buf 0x20000380 O 40 .bss + g_uart 0x200003a8 O 115 .bss + CardInfo 0x2000041b O 40 .bss + g_read 0x20000444 O 8 .bss + KEY1 0x2000044c O 48 .bss + dm_in 0x2000047c O 9 .bss + baseline_data0 0x20000488 O 34 .bss + TK_Postive_build2 0x200004aa O 17 .bss + Key_Map1 0x200004bc O 4 .bss + offset_data2_abs 0x200004c0 O 34 .bss + scan_f 0x200004e2 O 1 .bss + offset_data1_abs 0x200004e4 O 34 .bss + Release_debounce0 0x20000506 O 17 .bss + Key_Map0 0x20000518 O 4 .bss + bsae_over_f 0x2000051c O 1 .bss + scan_cnt 0x2000051e O 2 .bss + Press_debounce0 0x20000520 O 17 .bss + offset_data0 0x20000532 O 34 .bss + sampling_data1 0x20000554 O 34 .bss + Key_Map2 0x20000578 O 4 .bss + Release_debounce1 0x2000057c O 17 .bss + tk_overflow_f 0x2000058d O 1 .bss + TK_Negtive_build2 0x2000058e O 17 .bss + base_update_f 0x2000059f O 1 .bss + TK_Postive_build1 0x200005a0 O 17 .bss + time_cnt 0x200005b4 O 4 .bss + lpt_scan_pend_cnt 0x200005b8 O 2 .bss + TK_track_cnt 0x200005ba O 1 .bss + Key_Map 0x200005bc O 4 .bss + baseline_data1 0x200005c0 O 34 .bss + TK_Postive_build0 0x200005e2 O 17 .bss + sampling_data2 0x200005f4 O 34 .bss + offset_data1 0x20000616 O 34 .bss + TK_ovrdect_cnt 0x20000638 O 1 .bss + Press_debounce2 0x20000639 O 17 .bss + TK_Negtive_build1 0x2000064a O 17 .bss + tk_num 0x2000065b O 1 .bss + TK_Negtive_build0 0x2000065c O 17 .bss + Press_debounce1 0x2000066d O 17 .bss + Release_debounce2 0x2000067e O 17 .bss + r_Key_Map_Temp 0x20000690 O 4 .bss + tk_seque 0x20000694 O 17 .bss + scan_step 0x200006a5 O 1 .bss + baseline_data2 0x200006a6 O 34 .bss + tk_sampling_max 0x200006c8 O 34 .bss + offset_data0_abs 0x200006ea O 34 .bss + offset_data2 0x2000070c O 34 .bss + sampling_data0 0x2000072e O 34 .bss + errno 0x20000750 O 4 .bss + __malloc_lock 0x20000754 O 4 .bss + _ebss 0x20000758 0 .bss + _end 0x20000758 0 .bss + end 0x20000758 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00006818, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1012 .text pow.o + 0x00000b5e 0x00000006 Code RO 1020 .text fabs.o + 0x00000b64 0x00000020 Code RO 1026 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1033 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1044 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1049 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1056 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1063 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1070 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1077 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1084 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1091 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1098 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1105 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1119 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1126 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1133 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1139 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1146 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1153 .text _fpcmp_parts_df.o + 0x00001964 0x00000020 Code RO 1174 .text snprintf_required.o + 0x00001984 0x00000098 Code RO 1181 .text vsnprintf_required.o + 0x00001a1c 0x00000088 Code RO 1188 .text memset_fast.o + 0x00001aa4 0x00000064 Code RO 1193 .text memcpy_fast.o + 0x00001b08 0x00000758 Code RO 1351 .text __v2_printfDFHLlMOPpSSsWp.o + 0x00002260 0x000003ac Code RO 1410 .text _udivdi3.o + 0x0000260c 0x000003a0 Code RO 1417 .text _umoddi3.o + 0x000029ac 0x00000360 Code RO 1438 .text __dtostr.o + 0x00002d0c 0x0000002c Code RO 1446 .text __isnan.o + 0x00002d38 0x00000052 Code RO 1458 .text strlen_fast.o + 0x00002d8a 0x00000002 PAD + 0x00002d8c 0x000000b0 Code RO 1463 .text strcpy_fast.o + 0x00002e3c 0x00000012 Code RO 1468 .text strchr.o + 0x00002e4e 0x00000002 PAD + 0x00002e50 0x0000001c Code RO 1473 .text strerror.o + 0x00002e6c 0x00000030 Code RO 1481 .text __isinf.o + 0x00002e9c 0x0000003a Code RO 1487 .text _eq_df.o + 0x00002ed6 0x00000002 PAD + 0x00002ed8 0x0000003a Code RO 1494 .text _lt_df.o + 0x00002f14 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00002f4c 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00002fc0 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x0000300c 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000303c 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x000030c4 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x000030ec 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003128 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x0000313c 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00003154 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00003174 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00003190 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031ac 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x000031ec 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031f8 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000321c 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000324c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000332c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00003340 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x0000334e 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00003356 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x0000335e 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00003374 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00003384 0x00000010 Code RO 152 .text.GPIO_Read_Output Obj/FWlib_apt32f102_gpio.o + 0x00003394 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000033a8 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000033b8 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000033d4 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000033dc 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000033e6 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000033fe 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000342a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00003430 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00003444 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00003454 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x000034f4 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003508 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000354c 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003560 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003614 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x00003624 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x00003634 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x00003650 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003668 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003680 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003698 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036b4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036d0 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000037bc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x000037cc 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000037dc 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000037fc 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00003824 0x00000070 Code RO 690 .text.startup.main Obj/main.o + 0x00003894 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x000038c0 0x00000094 Code RO 711 .text.GPT0_CONFIG Obj/mcu_initial.o + 0x00003954 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x000039b4 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00003a18 0x00000050 Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00003a68 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00003b58 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003bc0 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003c28 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003dd4 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00003e08 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00003e88 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00003ef8 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003f34 0x0000003c Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003f70 0x00000094 Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00004004 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000040ec 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00004140 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00004170 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000041a0 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000041e8 0x0000005c Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00004244 0x00000060 Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000042a4 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x000042d8 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00004324 0x00000064 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00004388 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x0000438a 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00004392 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x0000439a 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000043a2 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000043aa 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000043b2 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000043ba 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000043c2 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000043ca 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000043d2 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x000043da 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x000043e2 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000043ec 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00004410 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00004434 0x00000024 Code RO 787 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00004458 0x00000024 Code RO 788 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x0000447c 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00004484 0x000000d8 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x0000455c 0x00000064 Code RO 822 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000045c0 0x00000098 Code RO 827 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00004658 0x00000012 Code RO 848 .text.RC522_Delay Obj/SYSTEM_rc522.o + 0x0000466c 0x00000054 Code RO 849 .text.RC522_ReadWriteOneByte Obj/SYSTEM_rc522.o + 0x000046c0 0x00000038 Code RO 850 .text.RC522_ReadRawRC Obj/SYSTEM_rc522.o + 0x000046f8 0x00000030 Code RO 851 .text.RC522_WriteRawRC Obj/SYSTEM_rc522.o + 0x00004728 0x0000004c Code RO 852 .text.RC522_PcdReset Obj/SYSTEM_rc522.o + 0x00004774 0x00000018 Code RO 853 .text.RC522_SetBitMask Obj/SYSTEM_rc522.o + 0x0000478c 0x0000001a Code RO 854 .text.RC522_PcdAntennaOn Obj/SYSTEM_rc522.o + 0x000047a6 0x00000016 Code RO 855 .text.RC522_ClearBitMask Obj/SYSTEM_rc522.o + 0x000047bc 0x0000000c Code RO 856 .text.RC522_PcdAntennaOff Obj/SYSTEM_rc522.o + 0x000047c8 0x00000066 Code RO 858 .text.RC522_CalulateCRC Obj/SYSTEM_rc522.o + 0x0000482e 0x00000052 Code RO 859 .text.M500PcdConfigISOType.part.1 Obj/SYSTEM_rc522.o + 0x00004880 0x000000a0 Code RO 861 .text.RC522_Init Obj/SYSTEM_rc522.o + 0x00004920 0x0000013a Code RO 862 .text.RC522_PcdComMF522 Obj/SYSTEM_rc522.o + 0x00004a5a 0x0000006a Code RO 864 .text.RC522_PcdSelect Obj/SYSTEM_rc522.o + 0x00004ac4 0x00000058 Code RO 865 .text.RC522_PcdAuthState Obj/SYSTEM_rc522.o + 0x00004b1c 0x00000054 Code RO 868 .text.RC522_PcdRequest Obj/SYSTEM_rc522.o + 0x00004b70 0x00000074 Code RO 869 .text.RC522_PcdAnticoll Obj/SYSTEM_rc522.o + 0x00004be4 0x000000dc Code RO 870 .text.Card_Read_TasK Obj/SYSTEM_rc522.o + 0x00004cc0 0x00000014 Code RO 889 .text.RLY_Light_Ctrl.part.0 Obj/SYSTEM_logic_ctrl.o + 0x00004cd4 0x00000070 Code RO 890 .text.KEY1_LONG_PRESS_RELEASE_Handler Obj/SYSTEM_logic_ctrl.o + 0x00004d44 0x00000020 Code RO 892 .text.RLY_Light_Ctrl Obj/SYSTEM_logic_ctrl.o + 0x00004d64 0x00000040 Code RO 893 .text.LogicCtrl_Init Obj/SYSTEM_logic_ctrl.o + 0x00004da4 0x00000068 Code RO 894 .text.Debounce_Task Obj/SYSTEM_logic_ctrl.o + 0x00004e0c 0x0000008c Code RO 895 .text.LogicCtrl_Task Obj/SYSTEM_logic_ctrl.o + 0x00004e98 0x00000070 Code RO 897 .text.LogicCtrl_NoRF_Init Obj/SYSTEM_logic_ctrl.o + 0x00004f08 0x000000c8 Code RO 898 .text.LogicCtrl_NoRF_Task Obj/SYSTEM_logic_ctrl.o + 0x00004fd0 0x00000034 Code RO 899 .text.BackLight_Task Obj/SYSTEM_logic_ctrl.o + 0x00005004 0x00000094 Code RO 900 .text.Detect_WIFI_Task Obj/SYSTEM_logic_ctrl.o + 0x00005098 0x00000064 Code RO 901 .text.DM_Led_Task Obj/SYSTEM_logic_ctrl.o + 0x000050fc 0x0000003a Code RO 919 .text.button_init Obj/SYSTEM_button.o + 0x00005136 0x0000000a Code RO 920 .text.button_attach Obj/SYSTEM_button.o + 0x00005140 0x00000120 Code RO 922 .text.button_handler Obj/SYSTEM_button.o + 0x00005260 0x00000024 Code RO 923 .text.button_start Obj/SYSTEM_button.o + 0x00005284 0x0000001c Code RO 925 .text.button_ticks Obj/SYSTEM_button.o + 0x000052a0 0x00000014 Code RO 926 .text.read_button_GPIO Obj/SYSTEM_button.o + 0x000052b4 0x00000058 Code RO 958 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000530c 0x00000088 Code RO 962 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00005394 0x00000028 Code RO 963 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x000053bc 0x00000020 Code RO 965 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x000053dc 0x00000180 Code RO 966 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000555c 0x0000011c Code RO 967 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00005678 0x000001d0 Code RO 968 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00005848 0x00000054 Code RO 969 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000589c 0x00000078 Code RO 970 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00005914 0x00000284 Code RO 992 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00005b98 0x00000030 Data RO 1015 .rodata pow.o + 0x00005bc8 0x00000014 Data RO 1115 .rodata _thenan_df.o + 0x00005bdc 0x00000100 Data RO 1163 .rodata _clz.o + 0x00005cdc 0x00000020 Data RO 1354 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x00005cfc 0x00000240 Data RO 1476 .rodata strerror.o + 0x00005f3c 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x00005f47 0x0000003e Data RO 831 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x00005f85 0x0000007a Data RO 872 .rodata.str1.1 Obj/SYSTEM_rc522.o + 0x00005fff 0x00000068 Data RO 902 .rodata.str1.1 Obj/SYSTEM_logic_ctrl.o + 0x00006067 0x00000022 Data RO 1355 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x00006089 0x00000008 Data RO 1441 .rodata.str1.1 __dtostr.o + 0x00006091 0x00000787 Data RO 1477 .rodata.str1.1 strerror.o + + Region RAM (Base: 0x20000000, Size: 0x00000758, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000004 Data RW 819 .data Obj/SYSTEM_uart.o + 0x2000006c 0x00000031 Data RW 949 .data FWlib_apt32f102_tkey_c_1_17.o + 0x2000009d 0x00000003 PAD + 0x200000a0 0x0000000a Zero RW 689 .bss Obj/main.o + 0x200000aa 0x00000002 PAD + 0x200000ac 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000b8 0x0000021c Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200002d4 0x0000000c Zero RW 847 .bss Obj/SYSTEM_rc522.o + 0x200002e0 0x0000000c Zero RW 888 .bss Obj/SYSTEM_logic_ctrl.o + 0x200002ec 0x00000004 Zero RW 918 .bss Obj/SYSTEM_button.o + 0x200002f0 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x20000376 0x00000002 PAD + 0x20000378 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x200003a8 0x00000073 Zero RW 844 COMMON Obj/SYSTEM_uart.o + 0x2000041b 0x00000028 Zero RW 885 COMMON Obj/SYSTEM_rc522.o + 0x20000443 0x00000001 PAD + 0x20000444 0x00000041 Zero RW 915 COMMON Obj/SYSTEM_logic_ctrl.o + 0x20000485 0x00000003 PAD + 0x20000488 0x000002c8 Zero RW 988 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000750 0x00000008 Zero RW 1431 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 269 Obj/arch_crt0.o + 56 0 0 0 803 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21132 Obj/FWlib_apt32f102_syscon.o + 328 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 112 11 0 144 10893 Obj/main.o + 466 0 0 0 16102 Obj/mcu_initial.o + 2434 0 0 60 14237 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 468 62 4 655 13052 Obj/SYSTEM_uart.o + 1638 122 0 52 15956 Obj/SYSTEM_rc522.o + 1084 104 0 77 12190 Obj/SYSTEM_logic_ctrl.o + 440 0 0 4 11515 Obj/SYSTEM_button.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 9544 299 108 992 240903 Object Totals + 10 0 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 5040 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3560 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 23434 3200 160 1720 265917 Grand Totals + 23434 3200 160 1720 265917 Elf Image Totals + 23434 3200 160 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 26634 ( 26.01kB) +Total RW Size (RW Data + ZI Data) 1880 ( 1.84kB) +Total ROM Size (Code + RO Data + RW Data) 26794 ( 26.17kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241011.asm b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241011.asm new file mode 100644 index 0000000..5c5afb5 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241011.asm @@ -0,0 +1,13803 @@ + +.//Obj/RF_T1F_CR_V01_20241011.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 000043d2 .long 0x000043d2 + 8: 000043c2 .long 0x000043c2 + c: 00000184 .long 0x00000184 + 10: 000043ca .long 0x000043ca + 14: 00004388 .long 0x00004388 + 18: 00000184 .long 0x00000184 + 1c: 000043ba .long 0x000043ba + 20: 000043b2 .long 0x000043b2 + 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: 000043aa .long 0x000043aa + 44: 000043a2 .long 0x000043a2 + 48: 0000439a .long 0x0000439a + 4c: 00004392 .long 0x00004392 + 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: 0000438a .long 0x0000438a + 80: 0000588c .long 0x0000588c + 84: 00003a68 .long 0x00003a68 + 88: 00003b58 .long 0x00003b58 + 8c: 00003bc0 .long 0x00003bc0 + 90: 00003c28 .long 0x00003c28 + 94: 00000184 .long 0x00000184 + 98: 00003dd4 .long 0x00003dd4 + 9c: 00004140 .long 0x00004140 + a0: 00004170 .long 0x00004170 + a4: 00003e08 .long 0x00003e08 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00003e88 .long 0x00003e88 + b4: 00003ef8 .long 0x00003ef8 + b8: 00003f34 .long 0x00003f34 + bc: 00003f70 .long 0x00003f70 + c0: 00000184 .long 0x00000184 + c4: 000043e2 .long 0x000043e2 + c8: 00000184 .long 0x00000184 + cc: 00004004 .long 0x00004004 + d0: 000040ec .long 0x000040ec + d4: 000041a0 .long 0x000041a0 + d8: 000041e8 .long 0x000041e8 + dc: 00004244 .long 0x00004244 + e0: 000043da .long 0x000043da + e4: 000052fc .long 0x000052fc + e8: 000042a4 .long 0x000042a4 + ec: 00000184 .long 0x00000184 + f0: 000042d8 .long 0x000042d8 + f4: 00004324 .long 0x00004324 + 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, 0x2f14 // 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, 0x3824 // 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: 00002f14 .long 0x00002f14 + 198: 00000160 .long 0x00000160 + 19c: 00003824 .long 0x00003824 + 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, 0x5b88 // 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: 00005b88 .long 0x00005b88 + 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, 0x5b88 // 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, 0x5b88 // 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: 00005b88 .long 0x00005b88 + 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, 0x5bb8 // 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: 00005bb8 .long 0x00005bb8 + +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, 0x5bb8 // 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: 00005bb8 .long 0x00005bb8 + 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, 0x5bb8 // 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: 00005bb8 .long 0x00005bb8 + +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, 0x5bcc // 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: 00005bcc .long 0x00005bcc + +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 <__cskyvprintfsnprintf>: + 1964: 1422 subi r14, r14, 8 + 1966: b861 st.w r3, (r14, 0x4) + 1968: b840 st.w r2, (r14, 0x0) + 196a: 14d0 push r15 + 196c: 1421 subi r14, r14, 4 + 196e: 9862 ld.w r3, (r14, 0x8) + 1970: b860 st.w r3, (r14, 0x0) + 1972: 9840 ld.w r2, (r14, 0x0) + 1974: 1b03 addi r3, r14, 12 + 1976: e0000026 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + 197a: 1401 addi r14, r14, 4 + 197c: d9ee2000 ld.w r15, (r14, 0x0) + 1980: 1403 addi r14, r14, 12 + 1982: 783c jmp r15 + +00001984 : + 1984: 14d3 push r4-r6, r15 + 1986: 6d4b mov r5, r2 + 1988: 9582 ld.w r4, (r5, 0x8) + 198a: 9241 ld.w r2, (r2, 0x4) + 198c: 610a subu r4, r2 + 198e: 3c40 cmpnei r4, 0 + 1990: 6d87 mov r6, r1 + 1992: 0c16 bf 0x19be // 19be + 1994: 6504 cmphs r1, r4 + 1996: 0802 bt 0x199a // 199a + 1998: 6d07 mov r4, r1 + 199a: 9560 ld.w r3, (r5, 0x0) + 199c: 3b40 cmpnei r3, 0 + 199e: 0c0d bf 0x19b8 // 19b8 + 19a0: 60c8 addu r3, r2 + 19a2: 6c43 mov r1, r0 + 19a4: 6c93 mov r2, r4 + 19a6: 6c0f mov r0, r3 + 19a8: e000007e bsr 0x1aa4 // 1aa4 <__memcpy_fast> + 19ac: 9500 ld.w r0, (r5, 0x0) + 19ae: 9521 ld.w r1, (r5, 0x4) + 19b0: 6010 addu r0, r4 + 19b2: 6004 addu r0, r1 + 19b4: 3200 movi r2, 0 + 19b6: a040 st.b r2, (r0, 0x0) + 19b8: 9561 ld.w r3, (r5, 0x4) + 19ba: 610c addu r4, r3 + 19bc: b581 st.w r4, (r5, 0x4) + 19be: 6c1b mov r0, r6 + 19c0: 1493 pop r4-r6, r15 + +000019c2 <__cskyvprintfvsnprintf>: + 19c2: 14d3 push r4-r6, r15 + 19c4: 1425 subi r14, r14, 20 + 19c6: 6d07 mov r4, r1 + 19c8: 6d43 mov r5, r0 + 19ca: 6c4b mov r1, r2 + 19cc: 1802 addi r0, r14, 8 + 19ce: 3200 movi r2, 0 + 19d0: 3c40 cmpnei r4, 0 + 19d2: b0a0 st.w r5, (r0, 0x0) + 19d4: b041 st.w r2, (r0, 0x4) + 19d6: 0c1c bf 0x1a0e // 1a0e <__cskyvprintfvsnprintf+0x4c> + 19d8: 5cc3 subi r6, r4, 1 + 19da: b0c2 st.w r6, (r0, 0x8) + 19dc: b800 st.w r0, (r14, 0x0) + 19de: 6c8f mov r2, r3 + 19e0: 100e lrw r0, 0x1984 // 1a18 <__cskyvprintfvsnprintf+0x56> + 19e2: b801 st.w r0, (r14, 0x4) + 19e4: 6c3b mov r0, r14 + 19e6: e00000ab bsr 0x1b3c // 1b3c <__v2_printf> + 19ea: 3d40 cmpnei r5, 0 + 19ec: 0c0f bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19ee: 3c40 cmpnei r4, 0 + 19f0: 0c0d bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f2: 38df btsti r0, 31 + 19f4: 080b bt 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f6: 3300 movi r3, 0 + 19f8: 2b00 subi r3, 1 + 19fa: 64d2 cmpne r4, r3 + 19fc: 0c0b bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 19fe: 6500 cmphs r0, r4 + 1a00: 0c09 bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 1a02: 6114 addu r4, r5 + 1a04: 2c00 subi r4, 1 + 1a06: 3100 movi r1, 0 + 1a08: a420 st.b r1, (r4, 0x0) + 1a0a: 1405 addi r14, r14, 20 + 1a0c: 1493 pop r4-r6, r15 + 1a0e: 3600 movi r6, 0 + 1a10: 07e5 br 0x19da // 19da <__cskyvprintfvsnprintf+0x18> + 1a12: 5d80 addu r4, r5, r0 + 1a14: 07f9 br 0x1a06 // 1a06 <__cskyvprintfvsnprintf+0x44> + 1a16: 0000 bkpt + 1a18: 00001984 .long 0x00001984 + +00001a1c <__memset_fast>: + 1a1c: 14c3 push r4-r6 + 1a1e: 7444 zextb r1, r1 + 1a20: 3a40 cmpnei r2, 0 + 1a22: 0c1f bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a24: 6d43 mov r5, r0 + 1a26: 6d03 mov r4, r0 + 1a28: 3603 movi r6, 3 + 1a2a: 6918 and r4, r6 + 1a2c: 3c40 cmpnei r4, 0 + 1a2e: 0c1a bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a30: a520 st.b r1, (r5, 0x0) + 1a32: 2a00 subi r2, 1 + 1a34: 3a40 cmpnei r2, 0 + 1a36: 0c15 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a38: 2500 addi r5, 1 + 1a3a: 6d17 mov r4, r5 + 1a3c: 3603 movi r6, 3 + 1a3e: 6918 and r4, r6 + 1a40: 3c40 cmpnei r4, 0 + 1a42: 0c10 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a44: a520 st.b r1, (r5, 0x0) + 1a46: 2a00 subi r2, 1 + 1a48: 3a40 cmpnei r2, 0 + 1a4a: 0c0b bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a4c: 2500 addi r5, 1 + 1a4e: 6d17 mov r4, r5 + 1a50: 3603 movi r6, 3 + 1a52: 6918 and r4, r6 + 1a54: 3c40 cmpnei r4, 0 + 1a56: 0c06 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a58: a520 st.b r1, (r5, 0x0) + 1a5a: 2a00 subi r2, 1 + 1a5c: 2500 addi r5, 1 + 1a5e: 0402 br 0x1a62 // 1a62 <__memset_fast+0x46> + 1a60: 1483 pop r4-r6 + 1a62: 4168 lsli r3, r1, 8 + 1a64: 6c4c or r1, r3 + 1a66: 4170 lsli r3, r1, 16 + 1a68: 6c4c or r1, r3 + 1a6a: 3a2f cmplti r2, 16 + 1a6c: 0809 bt 0x1a7e // 1a7e <__memset_fast+0x62> + 1a6e: b520 st.w r1, (r5, 0x0) + 1a70: b521 st.w r1, (r5, 0x4) + 1a72: b522 st.w r1, (r5, 0x8) + 1a74: b523 st.w r1, (r5, 0xc) + 1a76: 2a0f subi r2, 16 + 1a78: 250f addi r5, 16 + 1a7a: 3a2f cmplti r2, 16 + 1a7c: 0ff9 bf 0x1a6e // 1a6e <__memset_fast+0x52> + 1a7e: 3a23 cmplti r2, 4 + 1a80: 0806 bt 0x1a8c // 1a8c <__memset_fast+0x70> + 1a82: 2a03 subi r2, 4 + 1a84: b520 st.w r1, (r5, 0x0) + 1a86: 2503 addi r5, 4 + 1a88: 3a23 cmplti r2, 4 + 1a8a: 0ffc bf 0x1a82 // 1a82 <__memset_fast+0x66> + 1a8c: 3a40 cmpnei r2, 0 + 1a8e: 0fe9 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a90: 2a00 subi r2, 1 + 1a92: a520 st.b r1, (r5, 0x0) + 1a94: 3a40 cmpnei r2, 0 + 1a96: 0fe5 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a98: 2a00 subi r2, 1 + 1a9a: a521 st.b r1, (r5, 0x1) + 1a9c: 3a40 cmpnei r2, 0 + 1a9e: 0fe1 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1aa0: a522 st.b r1, (r5, 0x2) + 1aa2: 1483 pop r4-r6 + +00001aa4 <__memcpy_fast>: + 1aa4: 14c3 push r4-r6 + 1aa6: 6d83 mov r6, r0 + 1aa8: 6d07 mov r4, r1 + 1aaa: 6d18 or r4, r6 + 1aac: 3303 movi r3, 3 + 1aae: 690c and r4, r3 + 1ab0: 3c40 cmpnei r4, 0 + 1ab2: 0c0b bf 0x1ac8 // 1ac8 <__memcpy_fast+0x24> + 1ab4: 3a40 cmpnei r2, 0 + 1ab6: 0c08 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1ab8: 8160 ld.b r3, (r1, 0x0) + 1aba: 2100 addi r1, 1 + 1abc: 2a00 subi r2, 1 + 1abe: a660 st.b r3, (r6, 0x0) + 1ac0: 2600 addi r6, 1 + 1ac2: 3a40 cmpnei r2, 0 + 1ac4: 0bfa bt 0x1ab8 // 1ab8 <__memcpy_fast+0x14> + 1ac6: 1483 pop r4-r6 + 1ac8: 3a2f cmplti r2, 16 + 1aca: 080e bt 0x1ae6 // 1ae6 <__memcpy_fast+0x42> + 1acc: 91a0 ld.w r5, (r1, 0x0) + 1ace: 9161 ld.w r3, (r1, 0x4) + 1ad0: 9182 ld.w r4, (r1, 0x8) + 1ad2: b6a0 st.w r5, (r6, 0x0) + 1ad4: 91a3 ld.w r5, (r1, 0xc) + 1ad6: b661 st.w r3, (r6, 0x4) + 1ad8: b682 st.w r4, (r6, 0x8) + 1ada: b6a3 st.w r5, (r6, 0xc) + 1adc: 2a0f subi r2, 16 + 1ade: 210f addi r1, 16 + 1ae0: 260f addi r6, 16 + 1ae2: 3a2f cmplti r2, 16 + 1ae4: 0ff4 bf 0x1acc // 1acc <__memcpy_fast+0x28> + 1ae6: 3a23 cmplti r2, 4 + 1ae8: 0808 bt 0x1af8 // 1af8 <__memcpy_fast+0x54> + 1aea: 9160 ld.w r3, (r1, 0x0) + 1aec: 2a03 subi r2, 4 + 1aee: 2103 addi r1, 4 + 1af0: b660 st.w r3, (r6, 0x0) + 1af2: 2603 addi r6, 4 + 1af4: 3a23 cmplti r2, 4 + 1af6: 0ffa bf 0x1aea // 1aea <__memcpy_fast+0x46> + 1af8: 3a40 cmpnei r2, 0 + 1afa: 0fe6 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1afc: 8160 ld.b r3, (r1, 0x0) + 1afe: 2100 addi r1, 1 + 1b00: 2a00 subi r2, 1 + 1b02: a660 st.b r3, (r6, 0x0) + 1b04: 2600 addi r6, 1 + 1b06: 07f9 br 0x1af8 // 1af8 <__memcpy_fast+0x54> + +00001b08 : + 1b08: 14d4 push r4-r7, r15 + 1b0a: 3820 cmplti r0, 1 + 1b0c: 6d03 mov r4, r0 + 1b0e: 6d47 mov r5, r1 + 1b10: 6df7 mov r7, r13 + 1b12: 080d bt 0x1b2c // 1b2c + 1b14: 6d83 mov r6, r0 + 1b16: 3e30 cmplti r6, 17 + 1b18: 9700 ld.w r0, (r7, 0x0) + 1b1a: 0c0a bf 0x1b2e // 1b2e + 1b1c: 5c63 subi r3, r4, 1 + 1b1e: 4b24 lsri r1, r3, 4 + 1b20: 4164 lsli r3, r1, 4 + 1b22: 9040 ld.w r2, (r0, 0x0) + 1b24: 5c2d subu r1, r4, r3 + 1b26: 9081 ld.w r4, (r0, 0x4) + 1b28: 6c17 mov r0, r5 + 1b2a: 7bd1 jsr r4 + 1b2c: 1494 pop r4-r7, r15 + 1b2e: 9040 ld.w r2, (r0, 0x0) + 1b30: 9061 ld.w r3, (r0, 0x4) + 1b32: 3110 movi r1, 16 + 1b34: 6c17 mov r0, r5 + 1b36: 7bcd jsr r3 + 1b38: 2e0f subi r6, 16 + 1b3a: 07ee br 0x1b16 // 1b16 + +00001b3c <__v2_printf>: + 1b3c: 14d4 push r4-r7, r15 + 1b3e: 143c subi r14, r14, 112 + 1b40: b826 st.w r1, (r14, 0x18) + 1b42: 1912 addi r1, r14, 72 + 1b44: 1b21 addi r3, r14, 132 + 1b46: b810 st.w r0, (r14, 0x40) + 1b48: 2100 addi r1, 1 + 1b4a: 3000 movi r0, 0 + 1b4c: 6d4b mov r5, r2 + 1b4e: b871 st.w r3, (r14, 0x44) + 1b50: b80a st.w r0, (r14, 0x28) + 1b52: b809 st.w r0, (r14, 0x24) + 1b54: b82d st.w r1, (r14, 0x34) + 1b56: 9886 ld.w r4, (r14, 0x18) + 1b58: 3325 movi r3, 37 + 1b5a: 84c0 ld.b r6, (r4, 0x0) + 1b5c: 3e40 cmpnei r6, 0 + 1b5e: 0c03 bf 0x1b64 // 1b64 <__v2_printf+0x28> + 1b60: 64da cmpne r6, r3 + 1b62: 0845 bt 0x1bec // 1bec <__v2_printf+0xb0> + 1b64: 9846 ld.w r2, (r14, 0x18) + 1b66: 5cc9 subu r6, r4, r2 + 1b68: 3e40 cmpnei r6, 0 + 1b6a: 0c0a bf 0x1b7e // 1b7e <__v2_printf+0x42> + 1b6c: 9870 ld.w r3, (r14, 0x40) + 1b6e: 9340 ld.w r2, (r3, 0x0) + 1b70: 6c5b mov r1, r6 + 1b72: 9361 ld.w r3, (r3, 0x4) + 1b74: 9806 ld.w r0, (r14, 0x18) + 1b76: 7bcd jsr r3 + 1b78: 9809 ld.w r0, (r14, 0x24) + 1b7a: 6018 addu r0, r6 + 1b7c: b809 st.w r0, (r14, 0x24) + 1b7e: 8420 ld.b r1, (r4, 0x0) + 1b80: 3940 cmpnei r1, 0 + 1b82: 0803 bt 0x1b88 // 1b88 <__v2_printf+0x4c> + 1b84: e8000367 br 0x2252 // 2252 <__v2_printf+0x716> + 1b88: 3637 movi r6, 55 + 1b8a: 1a01 addi r2, r14, 4 + 1b8c: 3700 movi r7, 0 + 1b8e: 6188 addu r6, r2 + 1b90: a6e0 st.b r7, (r6, 0x0) + 1b92: 3300 movi r3, 0 + 1b94: 3600 movi r6, 0 + 1b96: 2400 addi r4, 1 + 1b98: 3000 movi r0, 0 + 1b9a: 3100 movi r1, 0 + 1b9c: 2e00 subi r6, 1 + 1b9e: b867 st.w r3, (r14, 0x1c) + 1ba0: 3700 movi r7, 0 + 1ba2: 5c42 addi r2, r4, 1 + 1ba4: b846 st.w r2, (r14, 0x18) + 1ba6: 8480 ld.b r4, (r4, 0x0) + 1ba8: 3364 movi r3, 100 + 1baa: 64d2 cmpne r4, r3 + 1bac: 0d90 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1bae: 650d cmplt r3, r4 + 1bb0: 084e bt 0x1c4c // 1c4c <__v2_printf+0x110> + 1bb2: 322e movi r2, 46 + 1bb4: 6492 cmpne r4, r2 + 1bb6: 0d41 bf 0x1e38 // 1e38 <__v2_printf+0x2fc> + 1bb8: 6509 cmplt r2, r4 + 1bba: 0829 bt 0x1c0c // 1c0c <__v2_printf+0xd0> + 1bbc: 332a movi r3, 42 + 1bbe: 64d2 cmpne r4, r3 + 1bc0: 0d31 bf 0x1e22 // 1e22 <__v2_printf+0x2e6> + 1bc2: 650d cmplt r3, r4 + 1bc4: 081c bt 0x1bfc // 1bfc <__v2_printf+0xc0> + 1bc6: 3220 movi r2, 32 + 1bc8: 6492 cmpne r4, r2 + 1bca: 0d25 bf 0x1e14 // 1e14 <__v2_printf+0x2d8> + 1bcc: 3323 movi r3, 35 + 1bce: 64d2 cmpne r4, r3 + 1bd0: 0d27 bf 0x1e1e // 1e1e <__v2_printf+0x2e2> + 1bd2: 3c40 cmpnei r4, 0 + 1bd4: 0803 bt 0x1bda // 1bda <__v2_printf+0x9e> + 1bd6: e800033e br 0x2252 // 2252 <__v2_printf+0x716> + 1bda: 1e12 addi r6, r14, 72 + 1bdc: 3037 movi r0, 55 + 1bde: 1a01 addi r2, r14, 4 + 1be0: a680 st.b r4, (r6, 0x0) + 1be2: 6008 addu r0, r2 + 1be4: 3400 movi r4, 0 + 1be6: a080 st.b r4, (r0, 0x0) + 1be8: b8a5 st.w r5, (r14, 0x14) + 1bea: 042c br 0x1c42 // 1c42 <__v2_printf+0x106> + 1bec: 2400 addi r4, 1 + 1bee: 07b6 br 0x1b5a // 1b5a <__v2_printf+0x1e> + 1bf0: 3001 movi r0, 1 + 1bf2: 312b movi r1, 43 + 1bf4: 9886 ld.w r4, (r14, 0x18) + 1bf6: 07d6 br 0x1ba2 // 1ba2 <__v2_printf+0x66> + 1bf8: 6d4f mov r5, r3 + 1bfa: 07fd br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1bfc: 322b movi r2, 43 + 1bfe: 6492 cmpne r4, r2 + 1c00: 0ff8 bf 0x1bf0 // 1bf0 <__v2_printf+0xb4> + 1c02: 332d movi r3, 45 + 1c04: 64d2 cmpne r4, r3 + 1c06: 0be6 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c08: 3fa2 bseti r7, 2 + 1c0a: 07f5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c0c: 3339 movi r3, 57 + 1c0e: 650d cmplt r3, r4 + 1c10: 0809 bt 0x1c22 // 1c22 <__v2_printf+0xe6> + 1c12: 3231 movi r2, 49 + 1c14: 6491 cmplt r4, r2 + 1c16: 0d34 bf 0x1e7e // 1e7e <__v2_printf+0x342> + 1c18: 3330 movi r3, 48 + 1c1a: 64d2 cmpne r4, r3 + 1c1c: 0bdb bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c1e: 3fa7 bseti r7, 7 + 1c20: 07ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c22: 3258 movi r2, 88 + 1c24: 6492 cmpne r4, r2 + 1c26: 0cd3 bf 0x1dcc // 1dcc <__v2_printf+0x290> + 1c28: 3063 movi r0, 99 + 1c2a: 6412 cmpne r4, r0 + 1c2c: 0bd3 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c2e: 3337 movi r3, 55 + 1c30: 1a01 addi r2, r14, 4 + 1c32: 5d2e addi r1, r5, 4 + 1c34: 85c0 ld.b r6, (r5, 0x0) + 1c36: 3400 movi r4, 0 + 1c38: 1d12 addi r5, r14, 72 + 1c3a: 60c8 addu r3, r2 + 1c3c: b825 st.w r1, (r14, 0x14) + 1c3e: a5c0 st.b r6, (r5, 0x0) + 1c40: a380 st.b r4, (r3, 0x0) + 1c42: 3601 movi r6, 1 + 1c44: 3500 movi r5, 0 + 1c46: 1c12 addi r4, r14, 72 + 1c48: e8000295 br 0x2172 // 2172 <__v2_printf+0x636> + 1c4c: 336d movi r3, 109 + 1c4e: 64d2 cmpne r4, r3 + 1c50: 0d2d bf 0x1eaa // 1eaa <__v2_printf+0x36e> + 1c52: 650d cmplt r3, r4 + 1c54: 0883 bt 0x1d5a // 1d5a <__v2_printf+0x21e> + 1c56: 3268 movi r2, 104 + 1c58: 6492 cmpne r4, r2 + 1c5a: 0d24 bf 0x1ea2 // 1ea2 <__v2_printf+0x366> + 1c5c: 6509 cmplt r2, r4 + 1c5e: 086f bt 0x1d3c // 1d3c <__v2_printf+0x200> + 1c60: 3366 movi r3, 102 + 1c62: 64d1 cmplt r4, r3 + 1c64: 0bb7 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c66: 3840 cmpnei r0, 0 + 1c68: 0c05 bf 0x1c72 // 1c72 <__v2_printf+0x136> + 1c6a: 3037 movi r0, 55 + 1c6c: 1a01 addi r2, r14, 4 + 1c6e: 6008 addu r0, r2 + 1c70: a020 st.b r1, (r0, 0x0) + 1c72: 5d3e addi r1, r5, 8 + 1c74: b825 st.w r1, (r14, 0x14) + 1c76: 9500 ld.w r0, (r5, 0x0) + 1c78: 9521 ld.w r1, (r5, 0x4) + 1c7a: 98a7 ld.w r5, (r14, 0x1c) + 1c7c: 3d40 cmpnei r5, 0 + 1c7e: 0803 bt 0x1c84 // 1c84 <__v2_printf+0x148> + 1c80: 3301 movi r3, 1 + 1c82: b867 st.w r3, (r14, 0x1c) + 1c84: 3200 movi r2, 0 + 1c86: 2a00 subi r2, 1 + 1c88: 649a cmpne r6, r2 + 1c8a: 0d58 bf 0x1f3a // 1f3a <__v2_printf+0x3fe> + 1c8c: 6d5b mov r5, r6 + 1c8e: 9867 ld.w r3, (r14, 0x1c) + 1c90: b860 st.w r3, (r14, 0x0) + 1c92: b8a1 st.w r5, (r14, 0x4) + 1c94: 3328 movi r3, 40 + 1c96: 1a12 addi r2, r14, 72 + 1c98: e000069d bsr 0x29d2 // 29d2 <__GI___dtostr> + 1c9c: 3100 movi r1, 0 + 1c9e: 2900 subi r1, 1 + 1ca0: 645a cmpne r6, r1 + 1ca2: b808 st.w r0, (r14, 0x20) + 1ca4: 0c1a bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1ca6: 312e movi r1, 46 + 1ca8: 980d ld.w r0, (r14, 0x34) + 1caa: e00008c9 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cae: 3840 cmpnei r0, 0 + 1cb0: 98c8 ld.w r6, (r14, 0x20) + 1cb2: 0d48 bf 0x1f42 // 1f42 <__v2_printf+0x406> + 1cb4: 3d40 cmpnei r5, 0 + 1cb6: 0805 bt 0x1cc0 // 1cc0 <__v2_printf+0x184> + 1cb8: 3101 movi r1, 1 + 1cba: 685c and r1, r7 + 1cbc: 3940 cmpnei r1, 0 + 1cbe: 0d40 bf 0x1f3e // 1f3e <__v2_printf+0x402> + 1cc0: 58c2 addi r6, r0, 1 + 1cc2: 2500 addi r5, 1 + 1cc4: 5d59 subu r2, r5, r6 + 1cc6: 6080 addu r2, r0 + 1cc8: 3a20 cmplti r2, 1 + 1cca: 0805 bt 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1ccc: 2600 addi r6, 1 + 1cce: 8660 ld.b r3, (r6, 0x0) + 1cd0: 3b40 cmpnei r3, 0 + 1cd2: 0bf9 bt 0x1cc4 // 1cc4 <__v2_printf+0x188> + 1cd4: 3500 movi r5, 0 + 1cd6: a6a0 st.b r5, (r6, 0x0) + 1cd8: 3067 movi r0, 103 + 1cda: 6412 cmpne r4, r0 + 1cdc: 0822 bt 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cde: 312e movi r1, 46 + 1ce0: 1812 addi r0, r14, 72 + 1ce2: e00008ad bsr 0x2e3c // 2e3c <__GI_strchr> + 1ce6: 3840 cmpnei r0, 0 + 1ce8: 6d03 mov r4, r0 + 1cea: 0c1b bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cec: 3165 movi r1, 101 + 1cee: e00008a7 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cf2: 6c43 mov r1, r0 + 1cf4: 84c0 ld.b r6, (r4, 0x0) + 1cf6: 3e40 cmpnei r6, 0 + 1cf8: 0930 bt 0x1f58 // 1f58 <__v2_printf+0x41c> + 1cfa: 3940 cmpnei r1, 0 + 1cfc: 0c02 bf 0x1d00 // 1d00 <__v2_printf+0x1c4> + 1cfe: 6d07 mov r4, r1 + 1d00: 3630 movi r6, 48 + 1d02: 5c63 subi r3, r4, 1 + 1d04: 8340 ld.b r2, (r3, 0x0) + 1d06: 658a cmpne r2, r6 + 1d08: 0d2a bf 0x1f5c // 1f5c <__v2_printf+0x420> + 1d0a: 352e movi r5, 46 + 1d0c: 654a cmpne r2, r5 + 1d0e: 0802 bt 0x1d12 // 1d12 <__v2_printf+0x1d6> + 1d10: 6d0f mov r4, r3 + 1d12: 3000 movi r0, 0 + 1d14: 3940 cmpnei r1, 0 + 1d16: a400 st.b r0, (r4, 0x0) + 1d18: 0c04 bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1d1a: 6c13 mov r0, r4 + 1d1c: e0000838 bsr 0x2d8c // 2d8c <__strcpy_fast> + 1d20: 1912 addi r1, r14, 72 + 1d22: 81c0 ld.b r6, (r1, 0x0) + 1d24: 332d movi r3, 45 + 1d26: 64da cmpne r6, r3 + 1d28: 0c02 bf 0x1d2c // 1d2c <__v2_printf+0x1f0> + 1d2a: 05ef br 0x2108 // 2108 <__v2_printf+0x5cc> + 1d2c: 3437 movi r4, 55 + 1d2e: 1801 addi r0, r14, 4 + 1d30: 352d movi r5, 45 + 1d32: 6100 addu r4, r0 + 1d34: a4a0 st.b r5, (r4, 0x0) + 1d36: 1912 addi r1, r14, 72 + 1d38: 5982 addi r4, r1, 1 + 1d3a: 05ec br 0x2112 // 2112 <__v2_printf+0x5d6> + 1d3c: 3369 movi r3, 105 + 1d3e: 64d2 cmpne r4, r3 + 1d40: 0cc6 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1d42: 326c movi r2, 108 + 1d44: 6492 cmpne r4, r2 + 1d46: 0b46 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d48: 9866 ld.w r3, (r14, 0x18) + 1d4a: 8340 ld.b r2, (r3, 0x0) + 1d4c: 650a cmpne r2, r4 + 1d4e: 08ac bt 0x1ea6 // 1ea6 <__v2_printf+0x36a> + 1d50: 9886 ld.w r4, (r14, 0x18) + 1d52: 2400 addi r4, 1 + 1d54: b886 st.w r4, (r14, 0x18) + 1d56: 3fa5 bseti r7, 5 + 1d58: 074e br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1d5a: 3371 movi r3, 113 + 1d5c: 64d2 cmpne r4, r3 + 1d5e: 0ffc bf 0x1d56 // 1d56 <__v2_printf+0x21a> + 1d60: 650d cmplt r3, r4 + 1d62: 081a bt 0x1d96 // 1d96 <__v2_printf+0x25a> + 1d64: 306f movi r0, 111 + 1d66: 6412 cmpne r4, r0 + 1d68: 0cfc bf 0x1f60 // 1f60 <__v2_printf+0x424> + 1d6a: 3170 movi r1, 112 + 1d6c: 6452 cmpne r4, r1 + 1d6e: 0b32 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d70: 5d4e addi r2, r5, 4 + 1d72: 3400 movi r4, 0 + 1d74: 95a0 ld.w r5, (r5, 0x0) + 1d76: b845 st.w r2, (r14, 0x14) + 1d78: 1901 addi r1, r14, 4 + 1d7a: 3239 movi r2, 57 + 1d7c: b8a3 st.w r5, (r14, 0xc) + 1d7e: b884 st.w r4, (r14, 0x10) + 1d80: 3330 movi r3, 48 + 1d82: 180f addi r0, r14, 60 + 1d84: 3578 movi r5, 120 + 1d86: 6084 addu r2, r1 + 1d88: 0195 lrw r4, 0x6068 // 20b0 <__v2_printf+0x574> + 1d8a: 3fa1 bseti r7, 1 + 1d8c: a060 st.b r3, (r0, 0x0) + 1d8e: a2a0 st.b r5, (r2, 0x0) + 1d90: b88a st.w r4, (r14, 0x28) + 1d92: 3402 movi r4, 2 + 1d94: 04f1 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1d96: 3275 movi r2, 117 + 1d98: 6492 cmpne r4, r2 + 1d9a: 0d28 bf 0x1fea // 1fea <__v2_printf+0x4ae> + 1d9c: 3378 movi r3, 120 + 1d9e: 64d2 cmpne r4, r3 + 1da0: 0d44 bf 0x2028 // 2028 <__v2_printf+0x4ec> + 1da2: 3173 movi r1, 115 + 1da4: 6452 cmpne r4, r1 + 1da6: 0b16 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1da8: 3200 movi r2, 0 + 1daa: 3037 movi r0, 55 + 1dac: 1901 addi r1, r14, 4 + 1dae: 2a00 subi r2, 1 + 1db0: 5d6e addi r3, r5, 4 + 1db2: 9580 ld.w r4, (r5, 0x0) + 1db4: 6004 addu r0, r1 + 1db6: 3500 movi r5, 0 + 1db8: 649a cmpne r6, r2 + 1dba: b865 st.w r3, (r14, 0x14) + 1dbc: a0a0 st.b r5, (r0, 0x0) + 1dbe: 090b bt 0x1fd4 // 1fd4 <__v2_printf+0x498> + 1dc0: 6cd3 mov r3, r4 + 1dc2: 83c0 ld.b r6, (r3, 0x0) + 1dc4: 3e40 cmpnei r6, 0 + 1dc6: 0910 bt 0x1fe6 // 1fe6 <__v2_printf+0x4aa> + 1dc8: 5bd1 subu r6, r3, r4 + 1dca: 047f br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1dcc: 3840 cmpnei r0, 0 + 1dce: 0c05 bf 0x1dd8 // 1dd8 <__v2_printf+0x29c> + 1dd0: 3037 movi r0, 55 + 1dd2: 1b01 addi r3, r14, 4 + 1dd4: 600c addu r0, r3 + 1dd6: a020 st.b r1, (r0, 0x0) + 1dd8: 0228 lrw r1, 0x6057 // 20b4 <__v2_printf+0x578> + 1dda: 3020 movi r0, 32 + 1ddc: 681c and r0, r7 + 1dde: 3840 cmpnei r0, 0 + 1de0: b82a st.w r1, (r14, 0x28) + 1de2: 0d2b bf 0x2038 // 2038 <__v2_printf+0x4fc> + 1de4: 5d5e addi r2, r5, 8 + 1de6: b845 st.w r2, (r14, 0x14) + 1de8: 9520 ld.w r1, (r5, 0x0) + 1dea: 9541 ld.w r2, (r5, 0x4) + 1dec: b823 st.w r1, (r14, 0xc) + 1dee: b844 st.w r2, (r14, 0x10) + 1df0: 3001 movi r0, 1 + 1df2: 681c and r0, r7 + 1df4: 3840 cmpnei r0, 0 + 1df6: 0fce bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1df8: 98a3 ld.w r5, (r14, 0xc) + 1dfa: 9864 ld.w r3, (r14, 0x10) + 1dfc: 6d4c or r5, r3 + 1dfe: 3d40 cmpnei r5, 0 + 1e00: 0fc9 bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1e02: 3039 movi r0, 57 + 1e04: 1d01 addi r5, r14, 4 + 1e06: 3130 movi r1, 48 + 1e08: 1a0f addi r2, r14, 60 + 1e0a: 6014 addu r0, r5 + 1e0c: a220 st.b r1, (r2, 0x0) + 1e0e: a080 st.b r4, (r0, 0x0) + 1e10: 3fa1 bseti r7, 1 + 1e12: 07c0 br 0x1d92 // 1d92 <__v2_printf+0x256> + 1e14: 3940 cmpnei r1, 0 + 1e16: 0aef bt 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e18: 3001 movi r0, 1 + 1e1a: 3120 movi r1, 32 + 1e1c: 06ec br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e1e: 3fa0 bseti r7, 0 + 1e20: 06ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e22: 9580 ld.w r4, (r5, 0x0) + 1e24: 3cdf btsti r4, 31 + 1e26: 5d6e addi r3, r5, 4 + 1e28: b887 st.w r4, (r14, 0x1c) + 1e2a: 0ee7 bf 0x1bf8 // 1bf8 <__v2_printf+0xbc> + 1e2c: 9847 ld.w r2, (r14, 0x1c) + 1e2e: 3500 movi r5, 0 + 1e30: 614a subu r5, r2 + 1e32: b8a7 st.w r5, (r14, 0x1c) + 1e34: 6d4f mov r5, r3 + 1e36: 06e9 br 0x1c08 // 1c08 <__v2_printf+0xcc> + 1e38: 98c6 ld.w r6, (r14, 0x18) + 1e3a: 8680 ld.b r4, (r6, 0x0) + 1e3c: 322a movi r2, 42 + 1e3e: 9866 ld.w r3, (r14, 0x18) + 1e40: 6492 cmpne r4, r2 + 1e42: 2300 addi r3, 1 + 1e44: 0c0b bf 0x1e5a // 1e5a <__v2_printf+0x31e> + 1e46: b865 st.w r3, (r14, 0x14) + 1e48: 3600 movi r6, 0 + 1e4a: 3300 movi r3, 0 + 1e4c: 2b2f subi r3, 48 + 1e4e: 60d0 addu r3, r4 + 1e50: 3b09 cmphsi r3, 10 + 1e52: 9845 ld.w r2, (r14, 0x14) + 1e54: 0c0c bf 0x1e6c // 1e6c <__v2_printf+0x330> + 1e56: b846 st.w r2, (r14, 0x18) + 1e58: 06a8 br 0x1ba8 // 1ba8 <__v2_printf+0x6c> + 1e5a: 95c0 ld.w r6, (r5, 0x0) + 1e5c: 3edf btsti r6, 31 + 1e5e: 5d8e addi r4, r5, 4 + 1e60: 0c03 bf 0x1e66 // 1e66 <__v2_printf+0x32a> + 1e62: 3600 movi r6, 0 + 1e64: 2e00 subi r6, 1 + 1e66: 6d53 mov r5, r4 + 1e68: b866 st.w r3, (r14, 0x18) + 1e6a: 06c5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e6c: 340a movi r4, 10 + 1e6e: 7d18 mult r4, r6 + 1e70: 9845 ld.w r2, (r14, 0x14) + 1e72: 6d8f mov r6, r3 + 1e74: 6190 addu r6, r4 + 1e76: 8280 ld.b r4, (r2, 0x0) + 1e78: 2200 addi r2, 1 + 1e7a: b845 st.w r2, (r14, 0x14) + 1e7c: 07e7 br 0x1e4a // 1e4a <__v2_printf+0x30e> + 1e7e: 3200 movi r2, 0 + 1e80: b847 st.w r2, (r14, 0x1c) + 1e82: 9867 ld.w r3, (r14, 0x1c) + 1e84: 320a movi r2, 10 + 1e86: 7cc8 mult r3, r2 + 1e88: 2c2f subi r4, 48 + 1e8a: 610c addu r4, r3 + 1e8c: b887 st.w r4, (r14, 0x1c) + 1e8e: 3300 movi r3, 0 + 1e90: 9886 ld.w r4, (r14, 0x18) + 1e92: 5c42 addi r2, r4, 1 + 1e94: 2b2f subi r3, 48 + 1e96: 8480 ld.b r4, (r4, 0x0) + 1e98: 60d0 addu r3, r4 + 1e9a: 3b09 cmphsi r3, 10 + 1e9c: b846 st.w r2, (r14, 0x18) + 1e9e: 0ff2 bf 0x1e82 // 1e82 <__v2_printf+0x346> + 1ea0: 07db br 0x1e56 // 1e56 <__v2_printf+0x31a> + 1ea2: 3fa6 bseti r7, 6 + 1ea4: 06a8 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1ea6: 3fa4 bseti r7, 4 + 1ea8: 06a6 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1eaa: 3840 cmpnei r0, 0 + 1eac: 0c05 bf 0x1eb6 // 1eb6 <__v2_printf+0x37a> + 1eae: 3637 movi r6, 55 + 1eb0: 1b01 addi r3, r14, 4 + 1eb2: 618c addu r6, r3 + 1eb4: a620 st.b r1, (r6, 0x0) + 1eb6: 033e lrw r1, 0x20000750 // 20b8 <__v2_printf+0x57c> + 1eb8: 9100 ld.w r0, (r1, 0x0) + 1eba: e00007cb bsr 0x2e50 // 2e50 <__GI_strerror> + 1ebe: 6d03 mov r4, r0 + 1ec0: e000073c bsr 0x2d38 // 2d38 <__strlen_fast> + 1ec4: 6d83 mov r6, r0 + 1ec6: b8a5 st.w r5, (r14, 0x14) + 1ec8: 3500 movi r5, 0 + 1eca: 0554 br 0x2172 // 2172 <__v2_printf+0x636> + 1ecc: 3840 cmpnei r0, 0 + 1ece: 0c05 bf 0x1ed8 // 1ed8 <__v2_printf+0x39c> + 1ed0: 3037 movi r0, 55 + 1ed2: 1a01 addi r2, r14, 4 + 1ed4: 6008 addu r0, r2 + 1ed6: a020 st.b r1, (r0, 0x0) + 1ed8: 3420 movi r4, 32 + 1eda: 691c and r4, r7 + 1edc: 3c40 cmpnei r4, 0 + 1ede: 0c1a bf 0x1f12 // 1f12 <__v2_printf+0x3d6> + 1ee0: 5d7e addi r3, r5, 8 + 1ee2: 9520 ld.w r1, (r5, 0x0) + 1ee4: 9541 ld.w r2, (r5, 0x4) + 1ee6: b865 st.w r3, (r14, 0x14) + 1ee8: b823 st.w r1, (r14, 0xc) + 1eea: b844 st.w r2, (r14, 0x10) + 1eec: 9804 ld.w r0, (r14, 0x10) + 1eee: 38df btsti r0, 31 + 1ef0: 0c0f bf 0x1f0e // 1f0e <__v2_printf+0x3d2> + 1ef2: 9883 ld.w r4, (r14, 0xc) + 1ef4: 98a4 ld.w r5, (r14, 0x10) + 1ef6: 3200 movi r2, 0 + 1ef8: 3300 movi r3, 0 + 1efa: 6488 cmphs r2, r2 + 1efc: 6093 subc r2, r4 + 1efe: 60d7 subc r3, r5 + 1f00: b843 st.w r2, (r14, 0xc) + 1f02: b864 st.w r3, (r14, 0x10) + 1f04: 3237 movi r2, 55 + 1f06: 1b01 addi r3, r14, 4 + 1f08: 352d movi r5, 45 + 1f0a: 608c addu r2, r3 + 1f0c: a2a0 st.b r5, (r2, 0x0) + 1f0e: 3401 movi r4, 1 + 1f10: 0438 br 0x1f80 // 1f80 <__v2_printf+0x444> + 1f12: 3310 movi r3, 16 + 1f14: 68dc and r3, r7 + 1f16: 3b40 cmpnei r3, 0 + 1f18: 0c08 bf 0x1f28 // 1f28 <__v2_printf+0x3ec> + 1f1a: 5d4e addi r2, r5, 4 + 1f1c: b845 st.w r2, (r14, 0x14) + 1f1e: 95a0 ld.w r5, (r5, 0x0) + 1f20: 559f asri r4, r5, 31 + 1f22: b8a3 st.w r5, (r14, 0xc) + 1f24: b884 st.w r4, (r14, 0x10) + 1f26: 07e3 br 0x1eec // 1eec <__v2_printf+0x3b0> + 1f28: 3140 movi r1, 64 + 1f2a: 685c and r1, r7 + 1f2c: 5d0e addi r0, r5, 4 + 1f2e: 3940 cmpnei r1, 0 + 1f30: 95a0 ld.w r5, (r5, 0x0) + 1f32: b805 st.w r0, (r14, 0x14) + 1f34: 0ff6 bf 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f36: 7557 sexth r5, r5 + 1f38: 07f4 br 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f3a: 3506 movi r5, 6 + 1f3c: 06a9 br 0x1c8e // 1c8e <__v2_printf+0x152> + 1f3e: 6d83 mov r6, r0 + 1f40: 06ca br 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1f42: 3201 movi r2, 1 + 1f44: 689c and r2, r7 + 1f46: 3a40 cmpnei r2, 0 + 1f48: 0ec8 bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f4a: 1d12 addi r5, r14, 72 + 1f4c: 6158 addu r5, r6 + 1f4e: 332e movi r3, 46 + 1f50: 3000 movi r0, 0 + 1f52: a560 st.b r3, (r5, 0x0) + 1f54: a501 st.b r0, (r5, 0x1) + 1f56: 06c1 br 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f58: 2400 addi r4, 1 + 1f5a: 06cd br 0x1cf4 // 1cf4 <__v2_printf+0x1b8> + 1f5c: 6d0f mov r4, r3 + 1f5e: 06d2 br 0x1d02 // 1d02 <__v2_printf+0x1c6> + 1f60: 3320 movi r3, 32 + 1f62: 68dc and r3, r7 + 1f64: 3b40 cmpnei r3, 0 + 1f66: 0c24 bf 0x1fae // 1fae <__v2_printf+0x472> + 1f68: 5d7e addi r3, r5, 8 + 1f6a: 9500 ld.w r0, (r5, 0x0) + 1f6c: 9521 ld.w r1, (r5, 0x4) + 1f6e: b865 st.w r3, (r14, 0x14) + 1f70: b803 st.w r0, (r14, 0xc) + 1f72: b824 st.w r1, (r14, 0x10) + 1f74: 3400 movi r4, 0 + 1f76: 3537 movi r5, 55 + 1f78: 1801 addi r0, r14, 4 + 1f7a: 3200 movi r2, 0 + 1f7c: 6140 addu r5, r0 + 1f7e: a540 st.b r2, (r5, 0x0) + 1f80: 3100 movi r1, 0 + 1f82: 2900 subi r1, 1 + 1f84: 9803 ld.w r0, (r14, 0xc) + 1f86: 98a4 ld.w r5, (r14, 0x10) + 1f88: 645a cmpne r6, r1 + 1f8a: 6c14 or r0, r5 + 1f8c: 0cc8 bf 0x211c // 211c <__v2_printf+0x5e0> + 1f8e: 6c9f mov r2, r7 + 1f90: 3a87 bclri r2, 7 + 1f92: 3840 cmpnei r0, 0 + 1f94: b848 st.w r2, (r14, 0x20) + 1f96: 08c6 bt 0x2122 // 2122 <__v2_printf+0x5e6> + 1f98: 3e40 cmpnei r6, 0 + 1f9a: 0cac bf 0x20f2 // 20f2 <__v2_printf+0x5b6> + 1f9c: 3c41 cmpnei r4, 1 + 1f9e: 0c68 bf 0x206e // 206e <__v2_printf+0x532> + 1fa0: 3c42 cmpnei r4, 2 + 1fa2: 0c8d bf 0x20bc // 20bc <__v2_printf+0x580> + 1fa4: 3300 movi r3, 0 + 1fa6: 3400 movi r4, 0 + 1fa8: b863 st.w r3, (r14, 0xc) + 1faa: b884 st.w r4, (r14, 0x10) + 1fac: 04bf br 0x212a // 212a <__v2_printf+0x5ee> + 1fae: 3010 movi r0, 16 + 1fb0: 681c and r0, r7 + 1fb2: 3840 cmpnei r0, 0 + 1fb4: 0c05 bf 0x1fbe // 1fbe <__v2_printf+0x482> + 1fb6: 5d8e addi r4, r5, 4 + 1fb8: b885 st.w r4, (r14, 0x14) + 1fba: 95a0 ld.w r5, (r5, 0x0) + 1fbc: 0408 br 0x1fcc // 1fcc <__v2_printf+0x490> + 1fbe: 3240 movi r2, 64 + 1fc0: 689c and r2, r7 + 1fc2: 5d2e addi r1, r5, 4 + 1fc4: 3a40 cmpnei r2, 0 + 1fc6: b825 st.w r1, (r14, 0x14) + 1fc8: 0ff9 bf 0x1fba // 1fba <__v2_printf+0x47e> + 1fca: 8da0 ld.h r5, (r5, 0x0) + 1fcc: 3400 movi r4, 0 + 1fce: b8a3 st.w r5, (r14, 0xc) + 1fd0: b884 st.w r4, (r14, 0x10) + 1fd2: 07d2 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1fd4: 5cb8 addu r5, r4, r6 + 1fd6: 6cd3 mov r3, r4 + 1fd8: 654e cmpne r3, r5 + 1fda: 0f77 bf 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1fdc: 8300 ld.b r0, (r3, 0x0) + 1fde: 3840 cmpnei r0, 0 + 1fe0: 0ef4 bf 0x1dc8 // 1dc8 <__v2_printf+0x28c> + 1fe2: 2300 addi r3, 1 + 1fe4: 07fa br 0x1fd8 // 1fd8 <__v2_printf+0x49c> + 1fe6: 2300 addi r3, 1 + 1fe8: 06ed br 0x1dc2 // 1dc2 <__v2_printf+0x286> + 1fea: 3420 movi r4, 32 + 1fec: 691c and r4, r7 + 1fee: 3c40 cmpnei r4, 0 + 1ff0: 0c09 bf 0x2002 // 2002 <__v2_printf+0x4c6> + 1ff2: 5d7e addi r3, r5, 8 + 1ff4: 9520 ld.w r1, (r5, 0x0) + 1ff6: 9541 ld.w r2, (r5, 0x4) + 1ff8: b865 st.w r3, (r14, 0x14) + 1ffa: b823 st.w r1, (r14, 0xc) + 1ffc: b844 st.w r2, (r14, 0x10) + 1ffe: 3401 movi r4, 1 + 2000: 07bb br 0x1f76 // 1f76 <__v2_printf+0x43a> + 2002: 3310 movi r3, 16 + 2004: 68dc and r3, r7 + 2006: 3b40 cmpnei r3, 0 + 2008: 0c05 bf 0x2012 // 2012 <__v2_printf+0x4d6> + 200a: 5d0e addi r0, r5, 4 + 200c: b805 st.w r0, (r14, 0x14) + 200e: 95a0 ld.w r5, (r5, 0x0) + 2010: 0408 br 0x2020 // 2020 <__v2_printf+0x4e4> + 2012: 3140 movi r1, 64 + 2014: 685c and r1, r7 + 2016: 5d4e addi r2, r5, 4 + 2018: 3940 cmpnei r1, 0 + 201a: b845 st.w r2, (r14, 0x14) + 201c: 0ff9 bf 0x200e // 200e <__v2_printf+0x4d2> + 201e: 8da0 ld.h r5, (r5, 0x0) + 2020: 3400 movi r4, 0 + 2022: b8a3 st.w r5, (r14, 0xc) + 2024: b884 st.w r4, (r14, 0x10) + 2026: 07ec br 0x1ffe // 1ffe <__v2_printf+0x4c2> + 2028: 3840 cmpnei r0, 0 + 202a: 0c05 bf 0x2034 // 2034 <__v2_printf+0x4f8> + 202c: 3337 movi r3, 55 + 202e: 1a01 addi r2, r14, 4 + 2030: 60c8 addu r3, r2 + 2032: a320 st.b r1, (r3, 0x0) + 2034: 103f lrw r1, 0x6068 // 20b0 <__v2_printf+0x574> + 2036: 06d2 br 0x1dda // 1dda <__v2_printf+0x29e> + 2038: 3310 movi r3, 16 + 203a: 68dc and r3, r7 + 203c: 3b40 cmpnei r3, 0 + 203e: 0c05 bf 0x2048 // 2048 <__v2_printf+0x50c> + 2040: 5d0e addi r0, r5, 4 + 2042: b805 st.w r0, (r14, 0x14) + 2044: 95a0 ld.w r5, (r5, 0x0) + 2046: 0408 br 0x2056 // 2056 <__v2_printf+0x51a> + 2048: 3240 movi r2, 64 + 204a: 689c and r2, r7 + 204c: 5d2e addi r1, r5, 4 + 204e: 3a40 cmpnei r2, 0 + 2050: b825 st.w r1, (r14, 0x14) + 2052: 0ff9 bf 0x2044 // 2044 <__v2_printf+0x508> + 2054: 8da0 ld.h r5, (r5, 0x0) + 2056: 3300 movi r3, 0 + 2058: b8a3 st.w r5, (r14, 0xc) + 205a: b864 st.w r3, (r14, 0x10) + 205c: 06ca br 0x1df0 // 1df0 <__v2_printf+0x2b4> + 205e: 6cd3 mov r3, r4 + 2060: 0467 br 0x212e // 212e <__v2_printf+0x5f2> + 2062: 9884 ld.w r4, (r14, 0x10) + 2064: 3c40 cmpnei r4, 0 + 2066: 080b bt 0x207c // 207c <__v2_printf+0x540> + 2068: 9843 ld.w r2, (r14, 0xc) + 206a: 3a09 cmphsi r2, 10 + 206c: 0808 bt 0x207c // 207c <__v2_printf+0x540> + 206e: 9883 ld.w r4, (r14, 0xc) + 2070: 242f addi r4, 48 + 2072: 1f1a addi r7, r14, 104 + 2074: a787 st.b r4, (r7, 0x7) + 2076: 1c12 addi r4, r14, 72 + 2078: 2426 addi r4, 39 + 207a: 0478 br 0x216a // 216a <__v2_printf+0x62e> + 207c: 1c1c addi r4, r14, 112 + 207e: 3530 movi r5, 48 + 2080: 320a movi r2, 10 + 2082: 3300 movi r3, 0 + 2084: 9803 ld.w r0, (r14, 0xc) + 2086: 9824 ld.w r1, (r14, 0x10) + 2088: e00002c2 bsr 0x260c // 260c <__umoddi3> + 208c: 6014 addu r0, r5 + 208e: 2c00 subi r4, 1 + 2090: a400 st.b r0, (r4, 0x0) + 2092: 320a movi r2, 10 + 2094: 9803 ld.w r0, (r14, 0xc) + 2096: 9824 ld.w r1, (r14, 0x10) + 2098: 3300 movi r3, 0 + 209a: e00000e3 bsr 0x2260 // 2260 <__udivdi3> + 209e: b803 st.w r0, (r14, 0xc) + 20a0: b824 st.w r1, (r14, 0x10) + 20a2: 9823 ld.w r1, (r14, 0xc) + 20a4: 98e4 ld.w r7, (r14, 0x10) + 20a6: 6c5c or r1, r7 + 20a8: 3940 cmpnei r1, 0 + 20aa: 0beb bt 0x2080 // 2080 <__v2_printf+0x544> + 20ac: 045f br 0x216a // 216a <__v2_printf+0x62e> + 20ae: 0000 bkpt + 20b0: 00006068 .long 0x00006068 + 20b4: 00006057 .long 0x00006057 + 20b8: 20000750 .long 0x20000750 + 20bc: 3300 movi r3, 0 + 20be: 3400 movi r4, 0 + 20c0: b863 st.w r3, (r14, 0xc) + 20c2: b884 st.w r4, (r14, 0x10) + 20c4: 1c1c addi r4, r14, 112 + 20c6: 320f movi r2, 15 + 20c8: 9803 ld.w r0, (r14, 0xc) + 20ca: 982a ld.w r1, (r14, 0x28) + 20cc: 6808 and r0, r2 + 20ce: 6004 addu r0, r1 + 20d0: 80a0 ld.b r5, (r0, 0x0) + 20d2: 2c00 subi r4, 1 + 20d4: 98e4 ld.w r7, (r14, 0x10) + 20d6: a4a0 st.b r5, (r4, 0x0) + 20d8: 98a4 ld.w r5, (r14, 0x10) + 20da: 9863 ld.w r3, (r14, 0xc) + 20dc: 471c lsli r0, r7, 28 + 20de: 4de4 lsri r7, r5, 4 + 20e0: 4b24 lsri r1, r3, 4 + 20e2: b8e4 st.w r7, (r14, 0x10) + 20e4: 6c04 or r0, r1 + 20e6: 9864 ld.w r3, (r14, 0x10) + 20e8: b803 st.w r0, (r14, 0xc) + 20ea: 6c0c or r0, r3 + 20ec: 3840 cmpnei r0, 0 + 20ee: 0bed bt 0x20c8 // 20c8 <__v2_printf+0x58c> + 20f0: 043d br 0x216a // 216a <__v2_printf+0x62e> + 20f2: 3c40 cmpnei r4, 0 + 20f4: 0808 bt 0x2104 // 2104 <__v2_printf+0x5c8> + 20f6: 3301 movi r3, 1 + 20f8: 68dc and r3, r7 + 20fa: 3b40 cmpnei r3, 0 + 20fc: 0c04 bf 0x2104 // 2104 <__v2_printf+0x5c8> + 20fe: 1f1a addi r7, r14, 104 + 2100: 3430 movi r4, 48 + 2102: 07b9 br 0x2074 // 2074 <__v2_printf+0x538> + 2104: 1c1c addi r4, r14, 112 + 2106: 0432 br 0x216a // 216a <__v2_printf+0x62e> + 2108: 322b movi r2, 43 + 210a: 649a cmpne r6, r2 + 210c: 0802 bt 0x2110 // 2110 <__v2_printf+0x5d4> + 210e: 0614 br 0x1d36 // 1d36 <__v2_printf+0x1fa> + 2110: 1c12 addi r4, r14, 72 + 2112: 6c13 mov r0, r4 + 2114: e0000612 bsr 0x2d38 // 2d38 <__strlen_fast> + 2118: 6d83 mov r6, r0 + 211a: 06d7 br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 211c: 3840 cmpnei r0, 0 + 211e: b8e8 st.w r7, (r14, 0x20) + 2120: 0f3e bf 0x1f9c // 1f9c <__v2_printf+0x460> + 2122: 3c41 cmpnei r4, 1 + 2124: 0f9f bf 0x2062 // 2062 <__v2_printf+0x526> + 2126: 3c42 cmpnei r4, 2 + 2128: 0fce bf 0x20c4 // 20c4 <__v2_printf+0x588> + 212a: 1b1c addi r3, r14, 112 + 212c: 3707 movi r7, 7 + 212e: 9823 ld.w r1, (r14, 0xc) + 2130: 685c and r1, r7 + 2132: 212f addi r1, 48 + 2134: 9804 ld.w r0, (r14, 0x10) + 2136: 7484 zextb r2, r1 + 2138: 9823 ld.w r1, (r14, 0xc) + 213a: 40bd lsli r5, r0, 29 + 213c: 4903 lsri r0, r1, 3 + 213e: 9824 ld.w r1, (r14, 0x10) + 2140: 4923 lsri r1, r1, 3 + 2142: b824 st.w r1, (r14, 0x10) + 2144: 6d40 or r5, r0 + 2146: 9804 ld.w r0, (r14, 0x10) + 2148: b8a3 st.w r5, (r14, 0xc) + 214a: 6d40 or r5, r0 + 214c: 5b83 subi r4, r3, 1 + 214e: 3d40 cmpnei r5, 0 + 2150: a440 st.b r2, (r4, 0x0) + 2152: 0b86 bt 0x205e // 205e <__v2_printf+0x522> + 2154: 3701 movi r7, 1 + 2156: 9828 ld.w r1, (r14, 0x20) + 2158: 69c4 and r7, r1 + 215a: 3f40 cmpnei r7, 0 + 215c: 0c07 bf 0x216a // 216a <__v2_printf+0x62e> + 215e: 3530 movi r5, 48 + 2160: 654a cmpne r2, r5 + 2162: 0c04 bf 0x216a // 216a <__v2_printf+0x62e> + 2164: 5b87 subi r4, r3, 2 + 2166: 3330 movi r3, 48 + 2168: a460 st.b r3, (r4, 0x0) + 216a: 6d5b mov r5, r6 + 216c: 1e1c addi r6, r14, 112 + 216e: 6192 subu r6, r4 + 2170: 98e8 ld.w r7, (r14, 0x20) + 2172: 6595 cmplt r5, r6 + 2174: b8a8 st.w r5, (r14, 0x20) + 2176: 0c02 bf 0x217a // 217a <__v2_printf+0x63e> + 2178: b8c8 st.w r6, (r14, 0x20) + 217a: 3037 movi r0, 55 + 217c: 1b01 addi r3, r14, 4 + 217e: 600c addu r0, r3 + 2180: 8040 ld.b r2, (r0, 0x0) + 2182: 3a40 cmpnei r2, 0 + 2184: 0c04 bf 0x218c // 218c <__v2_printf+0x650> + 2186: 9828 ld.w r1, (r14, 0x20) + 2188: 2100 addi r1, 1 + 218a: b828 st.w r1, (r14, 0x20) + 218c: 3002 movi r0, 2 + 218e: 681c and r0, r7 + 2190: 3840 cmpnei r0, 0 + 2192: b80b st.w r0, (r14, 0x2c) + 2194: 0c04 bf 0x219c // 219c <__v2_printf+0x660> + 2196: 9868 ld.w r3, (r14, 0x20) + 2198: 2301 addi r3, 2 + 219a: b868 st.w r3, (r14, 0x20) + 219c: 3284 movi r2, 132 + 219e: 689c and r2, r7 + 21a0: 3a40 cmpnei r2, 0 + 21a2: b84c st.w r2, (r14, 0x30) + 21a4: 080b bt 0x21ba // 21ba <__v2_printf+0x67e> + 21a6: 3310 movi r3, 16 + 21a8: 1a0c addi r2, r14, 48 + 21aa: 9827 ld.w r1, (r14, 0x1c) + 21ac: 9808 ld.w r0, (r14, 0x20) + 21ae: 60c8 addu r3, r2 + 21b0: 5901 subu r0, r1, r0 + 21b2: 6f4f mov r13, r3 + 21b4: 1129 lrw r1, 0x5ccc // 2258 <__v2_printf+0x71c> + 21b6: e3fffca9 bsr 0x1b08 // 1b08 + 21ba: 3137 movi r1, 55 + 21bc: 1801 addi r0, r14, 4 + 21be: 6040 addu r1, r0 + 21c0: 8160 ld.b r3, (r1, 0x0) + 21c2: 3b40 cmpnei r3, 0 + 21c4: 0c0b bf 0x21da // 21da <__v2_printf+0x69e> + 21c6: 9830 ld.w r1, (r14, 0x40) + 21c8: 9101 ld.w r0, (r1, 0x4) + 21ca: b802 st.w r0, (r14, 0x8) + 21cc: 1b0c addi r3, r14, 48 + 21ce: 300b movi r0, 11 + 21d0: 9140 ld.w r2, (r1, 0x0) + 21d2: 600c addu r0, r3 + 21d4: 3101 movi r1, 1 + 21d6: 9862 ld.w r3, (r14, 0x8) + 21d8: 7bcd jsr r3 + 21da: 984b ld.w r2, (r14, 0x2c) + 21dc: 3a40 cmpnei r2, 0 + 21de: 0c07 bf 0x21ec // 21ec <__v2_printf+0x6b0> + 21e0: 9830 ld.w r1, (r14, 0x40) + 21e2: 9140 ld.w r2, (r1, 0x0) + 21e4: 9161 ld.w r3, (r1, 0x4) + 21e6: 180f addi r0, r14, 60 + 21e8: 3102 movi r1, 2 + 21ea: 7bcd jsr r3 + 21ec: 3080 movi r0, 128 + 21ee: 984c ld.w r2, (r14, 0x30) + 21f0: 640a cmpne r2, r0 + 21f2: 080b bt 0x2208 // 2208 <__v2_printf+0x6cc> + 21f4: 9827 ld.w r1, (r14, 0x1c) + 21f6: 9868 ld.w r3, (r14, 0x20) + 21f8: 590d subu r0, r1, r3 + 21fa: 1a0c addi r2, r14, 48 + 21fc: 3110 movi r1, 16 + 21fe: 6048 addu r1, r2 + 2200: 6f47 mov r13, r1 + 2202: 1037 lrw r1, 0x5cdc // 225c <__v2_printf+0x720> + 2204: e3fffc82 bsr 0x1b08 // 1b08 + 2208: 5d19 subu r0, r5, r6 + 220a: 1b0c addi r3, r14, 48 + 220c: 3510 movi r5, 16 + 220e: 614c addu r5, r3 + 2210: 6f57 mov r13, r5 + 2212: 6d77 mov r5, r13 + 2214: 1032 lrw r1, 0x5cdc // 225c <__v2_printf+0x720> + 2216: e3fffc79 bsr 0x1b08 // 1b08 + 221a: 9500 ld.w r0, (r5, 0x0) + 221c: 9040 ld.w r2, (r0, 0x0) + 221e: 9061 ld.w r3, (r0, 0x4) + 2220: 6c13 mov r0, r4 + 2222: 3404 movi r4, 4 + 2224: 6c5b mov r1, r6 + 2226: 691c and r4, r7 + 2228: 7bcd jsr r3 + 222a: 3c40 cmpnei r4, 0 + 222c: 0c08 bf 0x223c // 223c <__v2_printf+0x700> + 222e: 9828 ld.w r1, (r14, 0x20) + 2230: 98c7 ld.w r6, (r14, 0x1c) + 2232: 5e05 subu r0, r6, r1 + 2234: 6f57 mov r13, r5 + 2236: 1029 lrw r1, 0x5ccc // 2258 <__v2_printf+0x71c> + 2238: e3fffc68 bsr 0x1b08 // 1b08 + 223c: 98a7 ld.w r5, (r14, 0x1c) + 223e: 9848 ld.w r2, (r14, 0x20) + 2240: 6495 cmplt r5, r2 + 2242: 0c02 bf 0x2246 // 2246 <__v2_printf+0x70a> + 2244: 6d4b mov r5, r2 + 2246: 9809 ld.w r0, (r14, 0x24) + 2248: 6014 addu r0, r5 + 224a: b809 st.w r0, (r14, 0x24) + 224c: 98a5 ld.w r5, (r14, 0x14) + 224e: e800fc84 br 0x1b56 // 1b56 <__v2_printf+0x1a> + 2252: 9809 ld.w r0, (r14, 0x24) + 2254: 141c addi r14, r14, 112 + 2256: 1494 pop r4-r7, r15 + 2258: 00005ccc .long 0x00005ccc + 225c: 00005cdc .long 0x00005cdc + +00002260 <__udivdi3>: + 2260: 14d4 push r4-r7, r15 + 2262: 1426 subi r14, r14, 24 + 2264: 6dc7 mov r7, r1 + 2266: 3b40 cmpnei r3, 0 + 2268: 6d03 mov r4, r0 + 226a: 6c4f mov r1, r3 + 226c: 6d8b mov r6, r2 + 226e: b800 st.w r0, (r14, 0x0) + 2270: 6d5f mov r5, r7 + 2272: 085b bt 0x2328 // 2328 <__udivdi3+0xc8> + 2274: 649c cmphs r7, r2 + 2276: 0874 bt 0x235e // 235e <__udivdi3+0xfe> + 2278: 003d lrw r1, 0xffff // 2600 <__udivdi3+0x3a0> + 227a: 6484 cmphs r1, r2 + 227c: 0cdc bf 0x2434 // 2434 <__udivdi3+0x1d4> + 227e: 31ff movi r1, 255 + 2280: 6484 cmphs r1, r2 + 2282: 0802 bt 0x2286 // 2286 <__udivdi3+0x26> + 2284: 3308 movi r3, 8 + 2286: 6c4b mov r1, r2 + 2288: 704d lsr r1, r3 + 228a: 0100 lrw r0, 0x5bcc // 2604 <__udivdi3+0x3a4> + 228c: 6040 addu r1, r0 + 228e: 8120 ld.b r1, (r1, 0x0) + 2290: 60c4 addu r3, r1 + 2292: 3120 movi r1, 32 + 2294: 604e subu r1, r3 + 2296: 3940 cmpnei r1, 0 + 2298: 0c09 bf 0x22aa // 22aa <__udivdi3+0x4a> + 229a: 6d53 mov r5, r4 + 229c: 7084 lsl r2, r1 + 229e: 71c4 lsl r7, r1 + 22a0: 714d lsr r5, r3 + 22a2: 7104 lsl r4, r1 + 22a4: 6d8b mov r6, r2 + 22a6: 6d5c or r5, r7 + 22a8: b880 st.w r4, (r14, 0x0) + 22aa: 4e90 lsri r4, r6, 16 + 22ac: 6c53 mov r1, r4 + 22ae: 6c17 mov r0, r5 + 22b0: e00010d4 bsr 0x4458 // 4458 <__umodsi3> + 22b4: b801 st.w r0, (r14, 0x4) + 22b6: 6c53 mov r1, r4 + 22b8: 6c17 mov r0, r5 + 22ba: e00010ab bsr 0x4410 // 4410 <__udivsi3> + 22be: 75d9 zexth r7, r6 + 22c0: 9861 ld.w r3, (r14, 0x4) + 22c2: 9820 ld.w r1, (r14, 0x0) + 22c4: 6c9f mov r2, r7 + 22c6: 4370 lsli r3, r3, 16 + 22c8: 4930 lsri r1, r1, 16 + 22ca: 7c80 mult r2, r0 + 22cc: 6cc4 or r3, r1 + 22ce: 648c cmphs r3, r2 + 22d0: 6d43 mov r5, r0 + 22d2: 0808 bt 0x22e2 // 22e2 <__udivdi3+0x82> + 22d4: 60d8 addu r3, r6 + 22d6: 658c cmphs r3, r6 + 22d8: 5823 subi r1, r0, 1 + 22da: 0c03 bf 0x22e0 // 22e0 <__udivdi3+0x80> + 22dc: 648c cmphs r3, r2 + 22de: 0d8e bf 0x25fa // 25fa <__udivdi3+0x39a> + 22e0: 6d47 mov r5, r1 + 22e2: 60ca subu r3, r2 + 22e4: 6c53 mov r1, r4 + 22e6: 6c0f mov r0, r3 + 22e8: b862 st.w r3, (r14, 0x8) + 22ea: e00010b7 bsr 0x4458 // 4458 <__umodsi3> + 22ee: 9862 ld.w r3, (r14, 0x8) + 22f0: b801 st.w r0, (r14, 0x4) + 22f2: 6c53 mov r1, r4 + 22f4: 6c0f mov r0, r3 + 22f6: e000108d bsr 0x4410 // 4410 <__udivsi3> + 22fa: 9841 ld.w r2, (r14, 0x4) + 22fc: d86e1000 ld.h r3, (r14, 0x0) + 2300: 4250 lsli r2, r2, 16 + 2302: 74cd zexth r3, r3 + 2304: 7dc0 mult r7, r0 + 2306: 6c8c or r2, r3 + 2308: 65c8 cmphs r2, r7 + 230a: 6d03 mov r4, r0 + 230c: 0808 bt 0x231c // 231c <__udivdi3+0xbc> + 230e: 6098 addu r2, r6 + 2310: 6588 cmphs r2, r6 + 2312: 5863 subi r3, r0, 1 + 2314: 0d4d bf 0x25ae // 25ae <__udivdi3+0x34e> + 2316: 65c8 cmphs r2, r7 + 2318: 094b bt 0x25ae // 25ae <__udivdi3+0x34e> + 231a: 2c01 subi r4, 2 + 231c: 4510 lsli r0, r5, 16 + 231e: 3700 movi r7, 0 + 2320: 6c10 or r0, r4 + 2322: 6c5f mov r1, r7 + 2324: 1406 addi r14, r14, 24 + 2326: 1494 pop r4-r7, r15 + 2328: 64dc cmphs r7, r3 + 232a: 0c76 bf 0x2416 // 2416 <__udivdi3+0x1b6> + 232c: 026a lrw r3, 0xffff // 2600 <__udivdi3+0x3a0> + 232e: 644c cmphs r3, r1 + 2330: 0878 bt 0x2420 // 2420 <__udivdi3+0x1c0> + 2332: 0269 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2334: 644c cmphs r3, r1 + 2336: 0d48 bf 0x25c6 // 25c6 <__udivdi3+0x366> + 2338: 3610 movi r6, 16 + 233a: 6cc7 mov r3, r1 + 233c: 70d9 lsr r3, r6 + 233e: 020d lrw r0, 0x5bcc // 2604 <__udivdi3+0x3a4> + 2340: 60c0 addu r3, r0 + 2342: 8360 ld.b r3, (r3, 0x0) + 2344: 618c addu r6, r3 + 2346: 3020 movi r0, 32 + 2348: 5879 subu r3, r0, r6 + 234a: 3b40 cmpnei r3, 0 + 234c: b860 st.w r3, (r14, 0x0) + 234e: 0878 bt 0x243e // 243e <__udivdi3+0x1de> + 2350: 65c4 cmphs r1, r7 + 2352: 0d40 bf 0x25d2 // 25d2 <__udivdi3+0x372> + 2354: 6490 cmphs r4, r2 + 2356: 6c0f mov r0, r3 + 2358: 600d addc r0, r3 + 235a: 3700 movi r7, 0 + 235c: 045f br 0x241a // 241a <__udivdi3+0x1ba> + 235e: 3a40 cmpnei r2, 0 + 2360: 0808 bt 0x2370 // 2370 <__udivdi3+0x110> + 2362: 3100 movi r1, 0 + 2364: 3001 movi r0, 1 + 2366: b861 st.w r3, (r14, 0x4) + 2368: e0001054 bsr 0x4410 // 4410 <__udivsi3> + 236c: 6d83 mov r6, r0 + 236e: 9861 ld.w r3, (r14, 0x4) + 2370: 025b lrw r2, 0xffff // 2600 <__udivdi3+0x3a0> + 2372: 6588 cmphs r2, r6 + 2374: 085b bt 0x242a // 242a <__udivdi3+0x1ca> + 2376: 027a lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2378: 658c cmphs r3, r6 + 237a: 0d28 bf 0x25ca // 25ca <__udivdi3+0x36a> + 237c: 3310 movi r3, 16 + 237e: 6c9b mov r2, r6 + 2380: 023e lrw r1, 0x5bcc // 2604 <__udivdi3+0x3a4> + 2382: 708d lsr r2, r3 + 2384: 6084 addu r2, r1 + 2386: 8240 ld.b r2, (r2, 0x0) + 2388: 5a2c addu r1, r2, r3 + 238a: 3220 movi r2, 32 + 238c: 6086 subu r2, r1 + 238e: 3a40 cmpnei r2, 0 + 2390: 08c0 bt 0x2510 // 2510 <__udivdi3+0x2b0> + 2392: 74d9 zexth r3, r6 + 2394: 5f99 subu r4, r7, r6 + 2396: 4eb0 lsri r5, r6, 16 + 2398: b861 st.w r3, (r14, 0x4) + 239a: 3701 movi r7, 1 + 239c: 6c57 mov r1, r5 + 239e: 6c13 mov r0, r4 + 23a0: e000105c bsr 0x4458 // 4458 <__umodsi3> + 23a4: b802 st.w r0, (r14, 0x8) + 23a6: 6c57 mov r1, r5 + 23a8: 6c13 mov r0, r4 + 23aa: e0001033 bsr 0x4410 // 4410 <__udivsi3> + 23ae: 9862 ld.w r3, (r14, 0x8) + 23b0: 4330 lsli r1, r3, 16 + 23b2: 9860 ld.w r3, (r14, 0x0) + 23b4: 9841 ld.w r2, (r14, 0x4) + 23b6: 4b70 lsri r3, r3, 16 + 23b8: 7c80 mult r2, r0 + 23ba: 6cc4 or r3, r1 + 23bc: 648c cmphs r3, r2 + 23be: 6d03 mov r4, r0 + 23c0: 0808 bt 0x23d0 // 23d0 <__udivdi3+0x170> + 23c2: 60d8 addu r3, r6 + 23c4: 658c cmphs r3, r6 + 23c6: 5823 subi r1, r0, 1 + 23c8: 0c03 bf 0x23ce // 23ce <__udivdi3+0x16e> + 23ca: 648c cmphs r3, r2 + 23cc: 0d14 bf 0x25f4 // 25f4 <__udivdi3+0x394> + 23ce: 6d07 mov r4, r1 + 23d0: 60ca subu r3, r2 + 23d2: 6c57 mov r1, r5 + 23d4: 6c0f mov r0, r3 + 23d6: b863 st.w r3, (r14, 0xc) + 23d8: e0001040 bsr 0x4458 // 4458 <__umodsi3> + 23dc: 9863 ld.w r3, (r14, 0xc) + 23de: 6c57 mov r1, r5 + 23e0: b802 st.w r0, (r14, 0x8) + 23e2: 6c0f mov r0, r3 + 23e4: e0001016 bsr 0x4410 // 4410 <__udivsi3> + 23e8: 9842 ld.w r2, (r14, 0x8) + 23ea: d86e1000 ld.h r3, (r14, 0x0) + 23ee: 9821 ld.w r1, (r14, 0x4) + 23f0: 4250 lsli r2, r2, 16 + 23f2: 74cd zexth r3, r3 + 23f4: 7c40 mult r1, r0 + 23f6: 6cc8 or r3, r2 + 23f8: 644c cmphs r3, r1 + 23fa: 6d43 mov r5, r0 + 23fc: 0808 bt 0x240c // 240c <__udivdi3+0x1ac> + 23fe: 60d8 addu r3, r6 + 2400: 658c cmphs r3, r6 + 2402: 5843 subi r2, r0, 1 + 2404: 0cd3 bf 0x25aa // 25aa <__udivdi3+0x34a> + 2406: 644c cmphs r3, r1 + 2408: 08d1 bt 0x25aa // 25aa <__udivdi3+0x34a> + 240a: 2d01 subi r5, 2 + 240c: 4410 lsli r0, r4, 16 + 240e: 6c14 or r0, r5 + 2410: 6c5f mov r1, r7 + 2412: 1406 addi r14, r14, 24 + 2414: 1494 pop r4-r7, r15 + 2416: 3700 movi r7, 0 + 2418: 3000 movi r0, 0 + 241a: 6c5f mov r1, r7 + 241c: 1406 addi r14, r14, 24 + 241e: 1494 pop r4-r7, r15 + 2420: 33ff movi r3, 255 + 2422: 644c cmphs r3, r1 + 2424: 6583 mvcv r6 + 2426: 46c3 lsli r6, r6, 3 + 2428: 0789 br 0x233a // 233a <__udivdi3+0xda> + 242a: 32ff movi r2, 255 + 242c: 6588 cmphs r2, r6 + 242e: 0ba8 bt 0x237e // 237e <__udivdi3+0x11e> + 2430: 3308 movi r3, 8 + 2432: 07a6 br 0x237e // 237e <__udivdi3+0x11e> + 2434: 1375 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2436: 648c cmphs r3, r2 + 2438: 0ccb bf 0x25ce // 25ce <__udivdi3+0x36e> + 243a: 3310 movi r3, 16 + 243c: 0725 br 0x2286 // 2286 <__udivdi3+0x26> + 243e: 9800 ld.w r0, (r14, 0x0) + 2440: 6ccb mov r3, r2 + 2442: 6d4b mov r5, r2 + 2444: 7040 lsl r1, r0 + 2446: 7140 lsl r5, r0 + 2448: 70d9 lsr r3, r6 + 244a: 6cc4 or r3, r1 + 244c: b8a3 st.w r5, (r14, 0xc) + 244e: 6d53 mov r5, r4 + 2450: 6c4f mov r1, r3 + 2452: 7159 lsr r5, r6 + 2454: 6cdf mov r3, r7 + 2456: 71c0 lsl r7, r0 + 2458: 6d5c or r5, r7 + 245a: 70d9 lsr r3, r6 + 245c: b8a1 st.w r5, (r14, 0x4) + 245e: 49b0 lsri r5, r1, 16 + 2460: b822 st.w r1, (r14, 0x8) + 2462: 75c5 zexth r7, r1 + 2464: 6c0f mov r0, r3 + 2466: 6c57 mov r1, r5 + 2468: b864 st.w r3, (r14, 0x10) + 246a: e0000ff7 bsr 0x4458 // 4458 <__umodsi3> + 246e: 9864 ld.w r3, (r14, 0x10) + 2470: 6d83 mov r6, r0 + 2472: 6c57 mov r1, r5 + 2474: 6c0f mov r0, r3 + 2476: e0000fcd bsr 0x4410 // 4410 <__udivsi3> + 247a: 6c5f mov r1, r7 + 247c: 7c40 mult r1, r0 + 247e: 6c87 mov r2, r1 + 2480: 4630 lsli r1, r6, 16 + 2482: 98c1 ld.w r6, (r14, 0x4) + 2484: 4ed0 lsri r6, r6, 16 + 2486: 6d84 or r6, r1 + 2488: 6498 cmphs r6, r2 + 248a: 6cc3 mov r3, r0 + 248c: 0807 bt 0x249a // 249a <__udivdi3+0x23a> + 248e: 5823 subi r1, r0, 1 + 2490: 9802 ld.w r0, (r14, 0x8) + 2492: 6180 addu r6, r0 + 2494: 6418 cmphs r6, r0 + 2496: 08a6 bt 0x25e2 // 25e2 <__udivdi3+0x382> + 2498: 6cc7 mov r3, r1 + 249a: 618a subu r6, r2 + 249c: 6c57 mov r1, r5 + 249e: 6c1b mov r0, r6 + 24a0: b865 st.w r3, (r14, 0x14) + 24a2: e0000fdb bsr 0x4458 // 4458 <__umodsi3> + 24a6: b804 st.w r0, (r14, 0x10) + 24a8: 6c57 mov r1, r5 + 24aa: 6c1b mov r0, r6 + 24ac: e0000fb2 bsr 0x4410 // 4410 <__udivsi3> + 24b0: 9864 ld.w r3, (r14, 0x10) + 24b2: 6c9f mov r2, r7 + 24b4: 43f0 lsli r7, r3, 16 + 24b6: d86e1002 ld.h r3, (r14, 0x4) + 24ba: 744d zexth r1, r3 + 24bc: 7c80 mult r2, r0 + 24be: 6dc4 or r7, r1 + 24c0: 649c cmphs r7, r2 + 24c2: 9865 ld.w r3, (r14, 0x14) + 24c4: 0807 bt 0x24d2 // 24d2 <__udivdi3+0x272> + 24c6: 98a2 ld.w r5, (r14, 0x8) + 24c8: 61d4 addu r7, r5 + 24ca: 655c cmphs r7, r5 + 24cc: 5823 subi r1, r0, 1 + 24ce: 0885 bt 0x25d8 // 25d8 <__udivdi3+0x378> + 24d0: 6c07 mov r0, r1 + 24d2: 4370 lsli r3, r3, 16 + 24d4: 6c0c or r0, r3 + 24d6: 74c1 zexth r3, r0 + 24d8: 61ca subu r7, r2 + 24da: 9843 ld.w r2, (r14, 0xc) + 24dc: 7549 zexth r5, r2 + 24de: 4830 lsri r1, r0, 16 + 24e0: 4a50 lsri r2, r2, 16 + 24e2: 6d8f mov r6, r3 + 24e4: 7d94 mult r6, r5 + 24e6: 7cc8 mult r3, r2 + 24e8: 7d44 mult r5, r1 + 24ea: 60d4 addu r3, r5 + 24ec: 7c48 mult r1, r2 + 24ee: 4e50 lsri r2, r6, 16 + 24f0: 60c8 addu r3, r2 + 24f2: 654c cmphs r3, r5 + 24f4: 0804 bt 0x24fc // 24fc <__udivdi3+0x29c> + 24f6: 3280 movi r2, 128 + 24f8: 4249 lsli r2, r2, 9 + 24fa: 6048 addu r1, r2 + 24fc: 4b50 lsri r2, r3, 16 + 24fe: 6048 addu r1, r2 + 2500: 645c cmphs r7, r1 + 2502: 0c5f bf 0x25c0 // 25c0 <__udivdi3+0x360> + 2504: 645e cmpne r7, r1 + 2506: 0c56 bf 0x25b2 // 25b2 <__udivdi3+0x352> + 2508: 3700 movi r7, 0 + 250a: 6c5f mov r1, r7 + 250c: 1406 addi r14, r14, 24 + 250e: 1494 pop r4-r7, r15 + 2510: 6d53 mov r5, r4 + 2512: 6cdf mov r3, r7 + 2514: 7145 lsr r5, r1 + 2516: 71c8 lsl r7, r2 + 2518: 7188 lsl r6, r2 + 251a: 6d5c or r5, r7 + 251c: 70c5 lsr r3, r1 + 251e: 6dd7 mov r7, r5 + 2520: b8a3 st.w r5, (r14, 0xc) + 2522: 4eb0 lsri r5, r6, 16 + 2524: 7108 lsl r4, r2 + 2526: 6c57 mov r1, r5 + 2528: 7499 zexth r2, r6 + 252a: 6c0f mov r0, r3 + 252c: b841 st.w r2, (r14, 0x4) + 252e: b880 st.w r4, (r14, 0x0) + 2530: b862 st.w r3, (r14, 0x8) + 2532: e0000f93 bsr 0x4458 // 4458 <__umodsi3> + 2536: 9862 ld.w r3, (r14, 0x8) + 2538: 6d03 mov r4, r0 + 253a: 6c57 mov r1, r5 + 253c: 6c0f mov r0, r3 + 253e: e0000f69 bsr 0x4410 // 4410 <__udivsi3> + 2542: 6cc3 mov r3, r0 + 2544: 7499 zexth r2, r6 + 2546: 7cc8 mult r3, r2 + 2548: 4450 lsli r2, r4, 16 + 254a: 4f90 lsri r4, r7, 16 + 254c: 6d08 or r4, r2 + 254e: 64d0 cmphs r4, r3 + 2550: 6c43 mov r1, r0 + 2552: b802 st.w r0, (r14, 0x8) + 2554: 080b bt 0x256a // 256a <__udivdi3+0x30a> + 2556: 6118 addu r4, r6 + 2558: 6c87 mov r2, r1 + 255a: 6590 cmphs r4, r6 + 255c: 2a00 subi r2, 1 + 255e: 0c49 bf 0x25f0 // 25f0 <__udivdi3+0x390> + 2560: 64d0 cmphs r4, r3 + 2562: 0847 bt 0x25f0 // 25f0 <__udivdi3+0x390> + 2564: 2a00 subi r2, 1 + 2566: b842 st.w r2, (r14, 0x8) + 2568: 6118 addu r4, r6 + 256a: 610e subu r4, r3 + 256c: 6c57 mov r1, r5 + 256e: 6c13 mov r0, r4 + 2570: e0000f74 bsr 0x4458 // 4458 <__umodsi3> + 2574: 6dc3 mov r7, r0 + 2576: 6c57 mov r1, r5 + 2578: 6c13 mov r0, r4 + 257a: e0000f4b bsr 0x4410 // 4410 <__udivsi3> + 257e: d84e1006 ld.h r2, (r14, 0xc) + 2582: 74d9 zexth r3, r6 + 2584: 47f0 lsli r7, r7, 16 + 2586: 7509 zexth r4, r2 + 2588: 7cc0 mult r3, r0 + 258a: 6dd0 or r7, r4 + 258c: 64dc cmphs r7, r3 + 258e: 0809 bt 0x25a0 // 25a0 <__udivdi3+0x340> + 2590: 61d8 addu r7, r6 + 2592: 659c cmphs r7, r6 + 2594: 5843 subi r2, r0, 1 + 2596: 0c2b bf 0x25ec // 25ec <__udivdi3+0x38c> + 2598: 64dc cmphs r7, r3 + 259a: 0829 bt 0x25ec // 25ec <__udivdi3+0x38c> + 259c: 2801 subi r0, 2 + 259e: 61d8 addu r7, r6 + 25a0: 5f8d subu r4, r7, r3 + 25a2: 9862 ld.w r3, (r14, 0x8) + 25a4: 43f0 lsli r7, r3, 16 + 25a6: 6dc0 or r7, r0 + 25a8: 06fa br 0x239c // 239c <__udivdi3+0x13c> + 25aa: 6d4b mov r5, r2 + 25ac: 0730 br 0x240c // 240c <__udivdi3+0x1ac> + 25ae: 6d0f mov r4, r3 + 25b0: 06b6 br 0x231c // 231c <__udivdi3+0xbc> + 25b2: 9840 ld.w r2, (r14, 0x0) + 25b4: 4370 lsli r3, r3, 16 + 25b6: 7599 zexth r6, r6 + 25b8: 7108 lsl r4, r2 + 25ba: 60d8 addu r3, r6 + 25bc: 64d0 cmphs r4, r3 + 25be: 0ba5 bt 0x2508 // 2508 <__udivdi3+0x2a8> + 25c0: 2800 subi r0, 1 + 25c2: 3700 movi r7, 0 + 25c4: 07a3 br 0x250a // 250a <__udivdi3+0x2aa> + 25c6: 3618 movi r6, 24 + 25c8: 06b9 br 0x233a // 233a <__udivdi3+0xda> + 25ca: 3318 movi r3, 24 + 25cc: 06d9 br 0x237e // 237e <__udivdi3+0x11e> + 25ce: 3318 movi r3, 24 + 25d0: 065b br 0x2286 // 2286 <__udivdi3+0x26> + 25d2: 3700 movi r7, 0 + 25d4: 3001 movi r0, 1 + 25d6: 0722 br 0x241a // 241a <__udivdi3+0x1ba> + 25d8: 649c cmphs r7, r2 + 25da: 0b7b bt 0x24d0 // 24d0 <__udivdi3+0x270> + 25dc: 2801 subi r0, 2 + 25de: 61d4 addu r7, r5 + 25e0: 0779 br 0x24d2 // 24d2 <__udivdi3+0x272> + 25e2: 6498 cmphs r6, r2 + 25e4: 0b5a bt 0x2498 // 2498 <__udivdi3+0x238> + 25e6: 2b01 subi r3, 2 + 25e8: 6180 addu r6, r0 + 25ea: 0758 br 0x249a // 249a <__udivdi3+0x23a> + 25ec: 6c0b mov r0, r2 + 25ee: 07d9 br 0x25a0 // 25a0 <__udivdi3+0x340> + 25f0: b842 st.w r2, (r14, 0x8) + 25f2: 07bc br 0x256a // 256a <__udivdi3+0x30a> + 25f4: 2c01 subi r4, 2 + 25f6: 60d8 addu r3, r6 + 25f8: 06ec br 0x23d0 // 23d0 <__udivdi3+0x170> + 25fa: 2d01 subi r5, 2 + 25fc: 60d8 addu r3, r6 + 25fe: 0672 br 0x22e2 // 22e2 <__udivdi3+0x82> + 2600: 0000ffff .long 0x0000ffff + 2604: 00005bcc .long 0x00005bcc + 2608: 00ffffff .long 0x00ffffff + +0000260c <__umoddi3>: + 260c: 14d4 push r4-r7, r15 + 260e: 1427 subi r14, r14, 28 + 2610: 6d07 mov r4, r1 + 2612: 6c4f mov r1, r3 + 2614: 6d43 mov r5, r0 + 2616: 3940 cmpnei r1, 0 + 2618: 6dcf mov r7, r3 + 261a: 6c0b mov r0, r2 + 261c: b8a0 st.w r5, (r14, 0x0) + 261e: 6cd3 mov r3, r4 + 2620: 085a bt 0x26d4 // 26d4 <__umoddi3+0xc8> + 2622: 6490 cmphs r4, r2 + 2624: 0877 bt 0x2712 // 2712 <__umoddi3+0x106> + 2626: 0120 lrw r1, 0xffff // 29a0 <__umoddi3+0x394> + 2628: 6484 cmphs r1, r2 + 262a: 0cd2 bf 0x27ce // 27ce <__umoddi3+0x1c2> + 262c: 31ff movi r1, 255 + 262e: 6484 cmphs r1, r2 + 2630: 0802 bt 0x2634 // 2634 <__umoddi3+0x28> + 2632: 3708 movi r7, 8 + 2634: 6c43 mov r1, r0 + 2636: 705d lsr r1, r7 + 2638: 01c4 lrw r6, 0x5bcc // 29a4 <__umoddi3+0x398> + 263a: 6058 addu r1, r6 + 263c: 8120 ld.b r1, (r1, 0x0) + 263e: 61c4 addu r7, r1 + 2640: 3120 movi r1, 32 + 2642: 605e subu r1, r7 + 2644: 3940 cmpnei r1, 0 + 2646: b821 st.w r1, (r14, 0x4) + 2648: 0c09 bf 0x265a // 265a <__umoddi3+0x4e> + 264a: 6cd7 mov r3, r5 + 264c: 6c83 mov r2, r0 + 264e: 7104 lsl r4, r1 + 2650: 70dd lsr r3, r7 + 2652: 7144 lsl r5, r1 + 2654: 7084 lsl r2, r1 + 2656: 6cd0 or r3, r4 + 2658: b8a0 st.w r5, (r14, 0x0) + 265a: 4a90 lsri r4, r2, 16 + 265c: 6c53 mov r1, r4 + 265e: 6c0f mov r0, r3 + 2660: 75c9 zexth r7, r2 + 2662: b843 st.w r2, (r14, 0xc) + 2664: b862 st.w r3, (r14, 0x8) + 2666: e0000ef9 bsr 0x4458 // 4458 <__umodsi3> + 266a: 9862 ld.w r3, (r14, 0x8) + 266c: 6d43 mov r5, r0 + 266e: 6c53 mov r1, r4 + 2670: 6c0f mov r0, r3 + 2672: e0000ecf bsr 0x4410 // 4410 <__udivsi3> + 2676: 9840 ld.w r2, (r14, 0x0) + 2678: 4570 lsli r3, r5, 16 + 267a: 4ab0 lsri r5, r2, 16 + 267c: 7c1c mult r0, r7 + 267e: 6cd4 or r3, r5 + 2680: 640c cmphs r3, r0 + 2682: 9843 ld.w r2, (r14, 0xc) + 2684: 0806 bt 0x2690 // 2690 <__umoddi3+0x84> + 2686: 60c8 addu r3, r2 + 2688: 648c cmphs r3, r2 + 268a: 0c03 bf 0x2690 // 2690 <__umoddi3+0x84> + 268c: 640c cmphs r3, r0 + 268e: 0d7d bf 0x2988 // 2988 <__umoddi3+0x37c> + 2690: 60c2 subu r3, r0 + 2692: 6c53 mov r1, r4 + 2694: 6c0f mov r0, r3 + 2696: b843 st.w r2, (r14, 0xc) + 2698: b862 st.w r3, (r14, 0x8) + 269a: e0000edf bsr 0x4458 // 4458 <__umodsi3> + 269e: 9862 ld.w r3, (r14, 0x8) + 26a0: 6d43 mov r5, r0 + 26a2: 6c53 mov r1, r4 + 26a4: 6c0f mov r0, r3 + 26a6: e0000eb5 bsr 0x4410 // 4410 <__udivsi3> + 26aa: d86e1000 ld.h r3, (r14, 0x0) + 26ae: 7dc0 mult r7, r0 + 26b0: 45b0 lsli r5, r5, 16 + 26b2: 740d zexth r0, r3 + 26b4: 6d40 or r5, r0 + 26b6: 65d4 cmphs r5, r7 + 26b8: 0807 bt 0x26c6 // 26c6 <__umoddi3+0xba> + 26ba: 9843 ld.w r2, (r14, 0xc) + 26bc: 6148 addu r5, r2 + 26be: 6494 cmphs r5, r2 + 26c0: 0c03 bf 0x26c6 // 26c6 <__umoddi3+0xba> + 26c2: 65d4 cmphs r5, r7 + 26c4: 0d5e bf 0x2980 // 2980 <__umoddi3+0x374> + 26c6: 615e subu r5, r7 + 26c8: 6c17 mov r0, r5 + 26ca: 9861 ld.w r3, (r14, 0x4) + 26cc: 700d lsr r0, r3 + 26ce: 3100 movi r1, 0 + 26d0: 1407 addi r14, r14, 28 + 26d2: 1494 pop r4-r7, r15 + 26d4: 6450 cmphs r4, r1 + 26d6: 0c6e bf 0x27b2 // 27b2 <__umoddi3+0x1a6> + 26d8: 024d lrw r2, 0xffff // 29a0 <__umoddi3+0x394> + 26da: 6448 cmphs r2, r1 + 26dc: 086f bt 0x27ba // 27ba <__umoddi3+0x1ae> + 26de: 024c lrw r2, 0xffffff // 29a8 <__umoddi3+0x39c> + 26e0: 6448 cmphs r2, r1 + 26e2: 0d3f bf 0x2960 // 2960 <__umoddi3+0x354> + 26e4: 3610 movi r6, 16 + 26e6: 6c87 mov r2, r1 + 26e8: 7099 lsr r2, r6 + 26ea: 02f0 lrw r7, 0x5bcc // 29a4 <__umoddi3+0x398> + 26ec: 609c addu r2, r7 + 26ee: 8240 ld.b r2, (r2, 0x0) + 26f0: 6188 addu r6, r2 + 26f2: 3720 movi r7, 32 + 26f4: 61da subu r7, r6 + 26f6: 3f40 cmpnei r7, 0 + 26f8: 0870 bt 0x27d8 // 27d8 <__umoddi3+0x1cc> + 26fa: 6504 cmphs r1, r4 + 26fc: 0c03 bf 0x2702 // 2702 <__umoddi3+0xf6> + 26fe: 6414 cmphs r5, r0 + 2700: 0d46 bf 0x298c // 298c <__umoddi3+0x380> + 2702: 5d01 subu r0, r5, r0 + 2704: 6414 cmphs r5, r0 + 2706: 6106 subu r4, r1 + 2708: 6483 mvcv r2 + 270a: 5c69 subu r3, r4, r2 + 270c: 6c4f mov r1, r3 + 270e: 1407 addi r14, r14, 28 + 2710: 1494 pop r4-r7, r15 + 2712: 3a40 cmpnei r2, 0 + 2714: 0806 bt 0x2720 // 2720 <__umoddi3+0x114> + 2716: 3100 movi r1, 0 + 2718: 3001 movi r0, 1 + 271a: e0000e7b bsr 0x4410 // 4410 <__udivsi3> + 271e: 6c83 mov r2, r0 + 2720: 027f lrw r3, 0xffff // 29a0 <__umoddi3+0x394> + 2722: 648c cmphs r3, r2 + 2724: 0850 bt 0x27c4 // 27c4 <__umoddi3+0x1b8> + 2726: 027e lrw r3, 0xffffff // 29a8 <__umoddi3+0x39c> + 2728: 648c cmphs r3, r2 + 272a: 0d1d bf 0x2964 // 2964 <__umoddi3+0x358> + 272c: 3710 movi r7, 16 + 272e: 6ccb mov r3, r2 + 2730: 70dd lsr r3, r7 + 2732: 0322 lrw r1, 0x5bcc // 29a4 <__umoddi3+0x398> + 2734: 60c4 addu r3, r1 + 2736: 8360 ld.b r3, (r3, 0x0) + 2738: 61cc addu r7, r3 + 273a: 3320 movi r3, 32 + 273c: 60de subu r3, r7 + 273e: 3b40 cmpnei r3, 0 + 2740: b861 st.w r3, (r14, 0x4) + 2742: 08c2 bt 0x28c6 // 28c6 <__umoddi3+0x2ba> + 2744: 74c9 zexth r3, r2 + 2746: 610a subu r4, r2 + 2748: 4af0 lsri r7, r2, 16 + 274a: 6d8f mov r6, r3 + 274c: 6c5f mov r1, r7 + 274e: 6c13 mov r0, r4 + 2750: b842 st.w r2, (r14, 0x8) + 2752: e0000e83 bsr 0x4458 // 4458 <__umodsi3> + 2756: 6d43 mov r5, r0 + 2758: 6c5f mov r1, r7 + 275a: 6c13 mov r0, r4 + 275c: e0000e5a bsr 0x4410 // 4410 <__udivsi3> + 2760: 9860 ld.w r3, (r14, 0x0) + 2762: 4590 lsli r4, r5, 16 + 2764: 4bb0 lsri r5, r3, 16 + 2766: 7c18 mult r0, r6 + 2768: 6d14 or r4, r5 + 276a: 6410 cmphs r4, r0 + 276c: 9842 ld.w r2, (r14, 0x8) + 276e: 0806 bt 0x277a // 277a <__umoddi3+0x16e> + 2770: 6108 addu r4, r2 + 2772: 6490 cmphs r4, r2 + 2774: 0c03 bf 0x277a // 277a <__umoddi3+0x16e> + 2776: 6410 cmphs r4, r0 + 2778: 0d06 bf 0x2984 // 2984 <__umoddi3+0x378> + 277a: 6102 subu r4, r0 + 277c: 6c5f mov r1, r7 + 277e: 6c13 mov r0, r4 + 2780: b842 st.w r2, (r14, 0x8) + 2782: e0000e6b bsr 0x4458 // 4458 <__umodsi3> + 2786: 6d43 mov r5, r0 + 2788: 6c5f mov r1, r7 + 278a: 6c13 mov r0, r4 + 278c: e0000e42 bsr 0x4410 // 4410 <__udivsi3> + 2790: d86e1000 ld.h r3, (r14, 0x0) + 2794: 7c18 mult r0, r6 + 2796: 45b0 lsli r5, r5, 16 + 2798: 758d zexth r6, r3 + 279a: 6d58 or r5, r6 + 279c: 6414 cmphs r5, r0 + 279e: 0808 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27a0: 9842 ld.w r2, (r14, 0x8) + 27a2: 6148 addu r5, r2 + 27a4: 6494 cmphs r5, r2 + 27a6: 0c04 bf 0x27ae // 27ae <__umoddi3+0x1a2> + 27a8: 6414 cmphs r5, r0 + 27aa: 0802 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27ac: 6148 addu r5, r2 + 27ae: 6142 subu r5, r0 + 27b0: 078c br 0x26c8 // 26c8 <__umoddi3+0xbc> + 27b2: 6c17 mov r0, r5 + 27b4: 6c53 mov r1, r4 + 27b6: 1407 addi r14, r14, 28 + 27b8: 1494 pop r4-r7, r15 + 27ba: 32ff movi r2, 255 + 27bc: 6448 cmphs r2, r1 + 27be: 6583 mvcv r6 + 27c0: 46c3 lsli r6, r6, 3 + 27c2: 0792 br 0x26e6 // 26e6 <__umoddi3+0xda> + 27c4: 33ff movi r3, 255 + 27c6: 648c cmphs r3, r2 + 27c8: 0bb3 bt 0x272e // 272e <__umoddi3+0x122> + 27ca: 3708 movi r7, 8 + 27cc: 07b1 br 0x272e // 272e <__umoddi3+0x122> + 27ce: 1337 lrw r1, 0xffffff // 29a8 <__umoddi3+0x39c> + 27d0: 6484 cmphs r1, r2 + 27d2: 0ccb bf 0x2968 // 2968 <__umoddi3+0x35c> + 27d4: 3710 movi r7, 16 + 27d6: 072f br 0x2634 // 2634 <__umoddi3+0x28> + 27d8: 6cc3 mov r3, r0 + 27da: 705c lsl r1, r7 + 27dc: 70d9 lsr r3, r6 + 27de: 6cc4 or r3, r1 + 27e0: 6c57 mov r1, r5 + 27e2: 6c93 mov r2, r4 + 27e4: 7059 lsr r1, r6 + 27e6: 711c lsl r4, r7 + 27e8: 7099 lsr r2, r6 + 27ea: 6c50 or r1, r4 + 27ec: 701c lsl r0, r7 + 27ee: 4b90 lsri r4, r3, 16 + 27f0: 715c lsl r5, r7 + 27f2: b803 st.w r0, (r14, 0xc) + 27f4: b820 st.w r1, (r14, 0x0) + 27f6: b8a4 st.w r5, (r14, 0x10) + 27f8: 6c53 mov r1, r4 + 27fa: 754d zexth r5, r3 + 27fc: 6c0b mov r0, r2 + 27fe: b862 st.w r3, (r14, 0x8) + 2800: b8a1 st.w r5, (r14, 0x4) + 2802: b846 st.w r2, (r14, 0x18) + 2804: e0000e2a bsr 0x4458 // 4458 <__umodsi3> + 2808: 9846 ld.w r2, (r14, 0x18) + 280a: b805 st.w r0, (r14, 0x14) + 280c: 6c53 mov r1, r4 + 280e: 6c0b mov r0, r2 + 2810: e0000e00 bsr 0x4410 // 4410 <__udivsi3> + 2814: 9841 ld.w r2, (r14, 0x4) + 2816: 7c80 mult r2, r0 + 2818: 9865 ld.w r3, (r14, 0x14) + 281a: 6d43 mov r5, r0 + 281c: 9800 ld.w r0, (r14, 0x0) + 281e: 4330 lsli r1, r3, 16 + 2820: 4870 lsri r3, r0, 16 + 2822: 6cc4 or r3, r1 + 2824: 648c cmphs r3, r2 + 2826: 0807 bt 0x2834 // 2834 <__umoddi3+0x228> + 2828: 9802 ld.w r0, (r14, 0x8) + 282a: 60c0 addu r3, r0 + 282c: 640c cmphs r3, r0 + 282e: 5d23 subi r1, r5, 1 + 2830: 08a3 bt 0x2976 // 2976 <__umoddi3+0x36a> + 2832: 6d47 mov r5, r1 + 2834: 60ca subu r3, r2 + 2836: 6c53 mov r1, r4 + 2838: 6c0f mov r0, r3 + 283a: b866 st.w r3, (r14, 0x18) + 283c: e0000e0e bsr 0x4458 // 4458 <__umodsi3> + 2840: 9866 ld.w r3, (r14, 0x18) + 2842: 6c53 mov r1, r4 + 2844: b805 st.w r0, (r14, 0x14) + 2846: 6c0f mov r0, r3 + 2848: e0000de4 bsr 0x4410 // 4410 <__udivsi3> + 284c: 9845 ld.w r2, (r14, 0x14) + 284e: d86e1000 ld.h r3, (r14, 0x0) + 2852: 9821 ld.w r1, (r14, 0x4) + 2854: 4250 lsli r2, r2, 16 + 2856: 750d zexth r4, r3 + 2858: 7c40 mult r1, r0 + 285a: 6c90 or r2, r4 + 285c: 6448 cmphs r2, r1 + 285e: 0807 bt 0x286c // 286c <__umoddi3+0x260> + 2860: 9882 ld.w r4, (r14, 0x8) + 2862: 6090 addu r2, r4 + 2864: 6508 cmphs r2, r4 + 2866: 5863 subi r3, r0, 1 + 2868: 0882 bt 0x296c // 296c <__umoddi3+0x360> + 286a: 6c0f mov r0, r3 + 286c: 45b0 lsli r5, r5, 16 + 286e: 6d40 or r5, r0 + 2870: 74d5 zexth r3, r5 + 2872: 9803 ld.w r0, (r14, 0xc) + 2874: 4db0 lsri r5, r5, 16 + 2876: 6d0f mov r4, r3 + 2878: 6086 subu r2, r1 + 287a: 7441 zexth r1, r0 + 287c: 4810 lsri r0, r0, 16 + 287e: 7d04 mult r4, r1 + 2880: 7cc0 mult r3, r0 + 2882: 7c54 mult r1, r5 + 2884: 60c4 addu r3, r1 + 2886: 7d40 mult r5, r0 + 2888: 4c10 lsri r0, r4, 16 + 288a: 60c0 addu r3, r0 + 288c: 644c cmphs r3, r1 + 288e: 0804 bt 0x2896 // 2896 <__umoddi3+0x28a> + 2890: 3180 movi r1, 128 + 2892: 4129 lsli r1, r1, 9 + 2894: 6144 addu r5, r1 + 2896: 4b30 lsri r1, r3, 16 + 2898: 6144 addu r5, r1 + 289a: 4370 lsli r3, r3, 16 + 289c: 7511 zexth r4, r4 + 289e: 6548 cmphs r2, r5 + 28a0: 60d0 addu r3, r4 + 28a2: 0c56 bf 0x294e // 294e <__umoddi3+0x342> + 28a4: 654a cmpne r2, r5 + 28a6: 0c76 bf 0x2992 // 2992 <__umoddi3+0x386> + 28a8: 5a35 subu r1, r2, r5 + 28aa: 6c0f mov r0, r3 + 28ac: 9864 ld.w r3, (r14, 0x10) + 28ae: 5b01 subu r0, r3, r0 + 28b0: 640c cmphs r3, r0 + 28b2: 64c3 mvcv r3 + 28b4: 598d subu r4, r1, r3 + 28b6: 6d53 mov r5, r4 + 28b8: 7158 lsl r5, r6 + 28ba: 701d lsr r0, r7 + 28bc: 6c53 mov r1, r4 + 28be: 6c14 or r0, r5 + 28c0: 705d lsr r1, r7 + 28c2: 1407 addi r14, r14, 28 + 28c4: 1494 pop r4-r7, r15 + 28c6: 9801 ld.w r0, (r14, 0x4) + 28c8: 6c57 mov r1, r5 + 28ca: 6cd3 mov r3, r4 + 28cc: 705d lsr r1, r7 + 28ce: 7100 lsl r4, r0 + 28d0: 7080 lsl r2, r0 + 28d2: 6c50 or r1, r4 + 28d4: 70dd lsr r3, r7 + 28d6: 6d07 mov r4, r1 + 28d8: 4af0 lsri r7, r2, 16 + 28da: b822 st.w r1, (r14, 0x8) + 28dc: 7449 zexth r1, r2 + 28de: 7140 lsl r5, r0 + 28e0: 6d87 mov r6, r1 + 28e2: 6c0f mov r0, r3 + 28e4: 6c5f mov r1, r7 + 28e6: b844 st.w r2, (r14, 0x10) + 28e8: b8a0 st.w r5, (r14, 0x0) + 28ea: b863 st.w r3, (r14, 0xc) + 28ec: e0000db6 bsr 0x4458 // 4458 <__umodsi3> + 28f0: 9863 ld.w r3, (r14, 0xc) + 28f2: 6d43 mov r5, r0 + 28f4: 6c5f mov r1, r7 + 28f6: 6c0f mov r0, r3 + 28f8: e0000d8c bsr 0x4410 // 4410 <__udivsi3> + 28fc: 45b0 lsli r5, r5, 16 + 28fe: 4c70 lsri r3, r4, 16 + 2900: 7c18 mult r0, r6 + 2902: 6d4c or r5, r3 + 2904: 6414 cmphs r5, r0 + 2906: 9844 ld.w r2, (r14, 0x10) + 2908: 0807 bt 0x2916 // 2916 <__umoddi3+0x30a> + 290a: 6148 addu r5, r2 + 290c: 6494 cmphs r5, r2 + 290e: 0c04 bf 0x2916 // 2916 <__umoddi3+0x30a> + 2910: 6414 cmphs r5, r0 + 2912: 0802 bt 0x2916 // 2916 <__umoddi3+0x30a> + 2914: 6148 addu r5, r2 + 2916: 6142 subu r5, r0 + 2918: 6c5f mov r1, r7 + 291a: 6c17 mov r0, r5 + 291c: b843 st.w r2, (r14, 0xc) + 291e: e0000d9d bsr 0x4458 // 4458 <__umodsi3> + 2922: 6d03 mov r4, r0 + 2924: 6c5f mov r1, r7 + 2926: 6c17 mov r0, r5 + 2928: e0000d74 bsr 0x4410 // 4410 <__udivsi3> + 292c: d86e1004 ld.h r3, (r14, 0x8) + 2930: 4490 lsli r4, r4, 16 + 2932: 744d zexth r1, r3 + 2934: 7c18 mult r0, r6 + 2936: 6d04 or r4, r1 + 2938: 6410 cmphs r4, r0 + 293a: 9843 ld.w r2, (r14, 0xc) + 293c: 0807 bt 0x294a // 294a <__umoddi3+0x33e> + 293e: 6108 addu r4, r2 + 2940: 6490 cmphs r4, r2 + 2942: 0c04 bf 0x294a // 294a <__umoddi3+0x33e> + 2944: 6410 cmphs r4, r0 + 2946: 0802 bt 0x294a // 294a <__umoddi3+0x33e> + 2948: 6108 addu r4, r2 + 294a: 6102 subu r4, r0 + 294c: 0700 br 0x274c // 274c <__umoddi3+0x140> + 294e: 9823 ld.w r1, (r14, 0xc) + 2950: 5b05 subu r0, r3, r1 + 2952: 640c cmphs r3, r0 + 2954: 9822 ld.w r1, (r14, 0x8) + 2956: 6146 subu r5, r1 + 2958: 64c3 mvcv r3 + 295a: 614e subu r5, r3 + 295c: 5a35 subu r1, r2, r5 + 295e: 07a7 br 0x28ac // 28ac <__umoddi3+0x2a0> + 2960: 3618 movi r6, 24 + 2962: 06c2 br 0x26e6 // 26e6 <__umoddi3+0xda> + 2964: 3718 movi r7, 24 + 2966: 06e4 br 0x272e // 272e <__umoddi3+0x122> + 2968: 3718 movi r7, 24 + 296a: 0665 br 0x2634 // 2634 <__umoddi3+0x28> + 296c: 6448 cmphs r2, r1 + 296e: 0b7e bt 0x286a // 286a <__umoddi3+0x25e> + 2970: 2801 subi r0, 2 + 2972: 6090 addu r2, r4 + 2974: 077c br 0x286c // 286c <__umoddi3+0x260> + 2976: 648c cmphs r3, r2 + 2978: 0b5d bt 0x2832 // 2832 <__umoddi3+0x226> + 297a: 2d01 subi r5, 2 + 297c: 60c0 addu r3, r0 + 297e: 075b br 0x2834 // 2834 <__umoddi3+0x228> + 2980: 6148 addu r5, r2 + 2982: 06a2 br 0x26c6 // 26c6 <__umoddi3+0xba> + 2984: 6108 addu r4, r2 + 2986: 06fa br 0x277a // 277a <__umoddi3+0x16e> + 2988: 60c8 addu r3, r2 + 298a: 0683 br 0x2690 // 2690 <__umoddi3+0x84> + 298c: 6c17 mov r0, r5 + 298e: 6c4f mov r1, r3 + 2990: 06bf br 0x270e // 270e <__umoddi3+0x102> + 2992: 9824 ld.w r1, (r14, 0x10) + 2994: 64c4 cmphs r1, r3 + 2996: 0fdc bf 0x294e // 294e <__umoddi3+0x342> + 2998: 6c0f mov r0, r3 + 299a: 3100 movi r1, 0 + 299c: 0788 br 0x28ac // 28ac <__umoddi3+0x2a0> + 299e: 0000 bkpt + 29a0: 0000ffff .long 0x0000ffff + 29a4: 00005bcc .long 0x00005bcc + 29a8: 00ffffff .long 0x00ffffff + +000029ac : + 29ac: 14c2 push r4-r5 + 29ae: 3300 movi r3, 0 + 29b0: 644d cmplt r3, r1 + 29b2: 0803 bt 0x29b8 // 29b8 + 29b4: 6c0f mov r0, r3 + 29b6: 1482 pop r4-r5 + 29b8: 5aac addu r5, r2, r3 + 29ba: 588c addu r4, r0, r3 + 29bc: 2300 addi r3, 1 + 29be: 85a0 ld.b r5, (r5, 0x0) + 29c0: 3b43 cmpnei r3, 3 + 29c2: a4a0 st.b r5, (r4, 0x0) + 29c4: 0bf6 bt 0x29b0 // 29b0 + 29c6: 3923 cmplti r1, 4 + 29c8: 0bf6 bt 0x29b4 // 29b4 + 29ca: 3300 movi r3, 0 + 29cc: a063 st.b r3, (r0, 0x3) + 29ce: 3304 movi r3, 4 + 29d0: 07f2 br 0x29b4 // 29b4 + +000029d2 <__GI___dtostr>: + 29d2: 14d4 push r4-r7, r15 + 29d4: 142c subi r14, r14, 48 + 29d6: 6d8f mov r6, r3 + 29d8: 9871 ld.w r3, (r14, 0x44) + 29da: b80a st.w r0, (r14, 0x28) + 29dc: b824 st.w r1, (r14, 0x10) + 29de: b842 st.w r2, (r14, 0x8) + 29e0: b86b st.w r3, (r14, 0x2c) + 29e2: 98f2 ld.w r7, (r14, 0x48) + 29e4: e0000244 bsr 0x2e6c // 2e6c <__isinf> + 29e8: 3840 cmpnei r0, 0 + 29ea: 0c0a bf 0x29fe // 29fe <__GI___dtostr+0x2c> + 29ec: 0244 lrw r2, 0x6079 // 2cd8 <__GI___dtostr+0x306> + 29ee: 6c5b mov r1, r6 + 29f0: 9802 ld.w r0, (r14, 0x8) + 29f2: e3ffffdd bsr 0x29ac // 29ac + 29f6: b809 st.w r0, (r14, 0x24) + 29f8: 9809 ld.w r0, (r14, 0x24) + 29fa: 140c addi r14, r14, 48 + 29fc: 1494 pop r4-r7, r15 + 29fe: 980a ld.w r0, (r14, 0x28) + 2a00: 9824 ld.w r1, (r14, 0x10) + 2a02: e0000185 bsr 0x2d0c // 2d0c <__isnan> + 2a06: 3840 cmpnei r0, 0 + 2a08: b809 st.w r0, (r14, 0x24) + 2a0a: 0c03 bf 0x2a10 // 2a10 <__GI___dtostr+0x3e> + 2a0c: 024b lrw r2, 0x607d // 2cdc <__GI___dtostr+0x30a> + 2a0e: 07f0 br 0x29ee // 29ee <__GI___dtostr+0x1c> + 2a10: 3200 movi r2, 0 + 2a12: 3300 movi r3, 0 + 2a14: 980a ld.w r0, (r14, 0x28) + 2a16: 9824 ld.w r1, (r14, 0x10) + 2a18: e0000242 bsr 0x2e9c // 2e9c <__eqdf2> + 2a1c: 3840 cmpnei r0, 0 + 2a1e: 082d bt 0x2a78 // 2a78 <__GI___dtostr+0xa6> + 2a20: 3f40 cmpnei r7, 0 + 2a22: 0d57 bf 0x2cd0 // 2cd0 <__GI___dtostr+0x2fe> + 2a24: 5fa6 addi r5, r7, 2 + 2a26: 6558 cmphs r6, r5 + 2a28: 0d56 bf 0x2cd4 // 2cd4 <__GI___dtostr+0x302> + 2a2a: 3d40 cmpnei r5, 0 + 2a2c: 0c0b bf 0x2a42 // 2a42 <__GI___dtostr+0x70> + 2a2e: 9824 ld.w r1, (r14, 0x10) + 2a30: 39df btsti r1, 31 + 2a32: 0c1a bf 0x2a66 // 2a66 <__GI___dtostr+0x94> + 2a34: 9802 ld.w r0, (r14, 0x8) + 2a36: 322d movi r2, 45 + 2a38: a040 st.b r2, (r0, 0x0) + 2a3a: 5d02 addi r0, r5, 1 + 2a3c: 3501 movi r5, 1 + 2a3e: 6414 cmphs r5, r0 + 2a40: 0c16 bf 0x2a6c // 2a6c <__GI___dtostr+0x9a> + 2a42: 9882 ld.w r4, (r14, 0x8) + 2a44: 8420 ld.b r1, (r4, 0x0) + 2a46: 3330 movi r3, 48 + 2a48: 64c6 cmpne r1, r3 + 2a4a: 3000 movi r0, 0 + 2a4c: 6001 addc r0, r0 + 2a4e: 9842 ld.w r2, (r14, 0x8) + 2a50: 9822 ld.w r1, (r14, 0x8) + 2a52: 6008 addu r0, r2 + 2a54: 342e movi r4, 46 + 2a56: 6054 addu r1, r5 + 2a58: 3300 movi r3, 0 + 2a5a: a081 st.b r4, (r0, 0x1) + 2a5c: b8a9 st.w r5, (r14, 0x24) + 2a5e: a160 st.b r3, (r1, 0x0) + 2a60: 07cc br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2a62: 3501 movi r5, 1 + 2a64: 07e5 br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2a66: 6c17 mov r0, r5 + 2a68: 3500 movi r5, 0 + 2a6a: 07ea br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a6c: 9842 ld.w r2, (r14, 0x8) + 2a6e: 6094 addu r2, r5 + 2a70: 3430 movi r4, 48 + 2a72: a280 st.b r4, (r2, 0x0) + 2a74: 2500 addi r5, 1 + 2a76: 07e4 br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a78: 3200 movi r2, 0 + 2a7a: 3300 movi r3, 0 + 2a7c: 980a ld.w r0, (r14, 0x28) + 2a7e: 9824 ld.w r1, (r14, 0x10) + 2a80: e000022c bsr 0x2ed8 // 2ed8 <__ltdf2> + 2a84: 38df btsti r0, 31 + 2a86: 0c8e bf 0x2ba2 // 2ba2 <__GI___dtostr+0x1d0> + 2a88: 3180 movi r1, 128 + 2a8a: 98a2 ld.w r5, (r14, 0x8) + 2a8c: 9884 ld.w r4, (r14, 0x10) + 2a8e: 4158 lsli r2, r1, 24 + 2a90: 332d movi r3, 45 + 2a92: a560 st.b r3, (r5, 0x0) + 2a94: 6108 addu r4, r2 + 2a96: 2e00 subi r6, 1 + 2a98: 2500 addi r5, 1 + 2a9a: 3000 movi r0, 0 + 2a9c: 032e lrw r1, 0x3fe00000 // 2ce0 <__GI___dtostr+0x30e> + 2a9e: 3300 movi r3, 0 + 2aa0: b865 st.w r3, (r14, 0x14) + 2aa2: 9845 ld.w r2, (r14, 0x14) + 2aa4: 65ca cmpne r2, r7 + 2aa6: 0881 bt 0x2ba8 // 2ba8 <__GI___dtostr+0x1d6> + 2aa8: 6c83 mov r2, r0 + 2aaa: 6cc7 mov r3, r1 + 2aac: 980a ld.w r0, (r14, 0x28) + 2aae: 6c53 mov r1, r4 + 2ab0: e3fff2b6 bsr 0x101c // 101c <__adddf3> + 2ab4: 3200 movi r2, 0 + 2ab6: 0373 lrw r3, 0x3ff00000 // 2ce4 <__GI___dtostr+0x312> + 2ab8: b806 st.w r0, (r14, 0x18) + 2aba: b827 st.w r1, (r14, 0x1c) + 2abc: e000020e bsr 0x2ed8 // 2ed8 <__ltdf2> + 2ac0: 38df btsti r0, 31 + 2ac2: 0c05 bf 0x2acc // 2acc <__GI___dtostr+0xfa> + 2ac4: 3430 movi r4, 48 + 2ac6: a580 st.b r4, (r5, 0x0) + 2ac8: 2e00 subi r6, 1 + 2aca: 2500 addi r5, 1 + 2acc: 9804 ld.w r0, (r14, 0x10) + 2ace: 4021 lsli r1, r0, 1 + 2ad0: 0379 lrw r3, 0xfffffc01 // 2ce8 <__GI___dtostr+0x316> + 2ad2: 4915 lsri r0, r1, 21 + 2ad4: 600c addu r0, r3 + 2ad6: e3fff4f5 bsr 0x14c0 // 14c0 <__floatsidf> + 2ada: 035a lrw r2, 0x509f79ff // 2cec <__GI___dtostr+0x31a> + 2adc: 037a lrw r3, 0x3fd34413 // 2cf0 <__GI___dtostr+0x31e> + 2ade: e3fff2d3 bsr 0x1084 // 1084 <__muldf3> + 2ae2: e3fff527 bsr 0x1530 // 1530 <__fixdfsi> + 2ae6: 5842 addi r2, r0, 1 + 2ae8: 3a20 cmplti r2, 1 + 2aea: b848 st.w r2, (r14, 0x20) + 2aec: 08e7 bt 0x2cba // 2cba <__GI___dtostr+0x2e8> + 2aee: 033d lrw r1, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2af0: 6dcb mov r7, r2 + 2af2: 3400 movi r4, 0 + 2af4: b823 st.w r1, (r14, 0xc) + 2af6: 3f0a cmphsi r7, 11 + 2af8: 085f bt 0x2bb6 // 2bb6 <__GI___dtostr+0x1e4> + 2afa: 3f41 cmpnei r7, 1 + 2afc: 0868 bt 0x2bcc // 2bcc <__GI___dtostr+0x1fa> + 2afe: 135f lrw r2, 0xcccccccd // 2cf8 <__GI___dtostr+0x326> + 2b00: 137f lrw r3, 0x3feccccc // 2cfc <__GI___dtostr+0x32a> + 2b02: 6c13 mov r0, r4 + 2b04: 9823 ld.w r1, (r14, 0xc) + 2b06: e3fff483 bsr 0x140c // 140c <__gtdf2> + 2b0a: 3820 cmplti r0, 1 + 2b0c: 0c6a bf 0x2be0 // 2be0 <__GI___dtostr+0x20e> + 2b0e: 9862 ld.w r3, (r14, 0x8) + 2b10: 64d6 cmpne r5, r3 + 2b12: 0807 bt 0x2b20 // 2b20 <__GI___dtostr+0x14e> + 2b14: 3e40 cmpnei r6, 0 + 2b16: 0f71 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b18: 3230 movi r2, 48 + 2b1a: a540 st.b r2, (r5, 0x0) + 2b1c: 2e00 subi r6, 1 + 2b1e: 2500 addi r5, 1 + 2b20: 9805 ld.w r0, (r14, 0x14) + 2b22: 3840 cmpnei r0, 0 + 2b24: 08cf bt 0x2cc2 // 2cc2 <__GI___dtostr+0x2f0> + 2b26: 9822 ld.w r1, (r14, 0x8) + 2b28: 5d65 subu r3, r5, r1 + 2b2a: 2300 addi r3, 1 + 2b2c: 984b ld.w r2, (r14, 0x2c) + 2b2e: 648c cmphs r3, r2 + 2b30: 08a5 bt 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b32: 3e40 cmpnei r6, 0 + 2b34: 0f62 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b36: 372e movi r7, 46 + 2b38: a5e0 st.b r7, (r5, 0x0) + 2b3a: 980b ld.w r0, (r14, 0x2c) + 2b3c: 5de2 addi r7, r5, 1 + 2b3e: 9822 ld.w r1, (r14, 0x8) + 2b40: 2000 addi r0, 1 + 2b42: 5f65 subu r3, r7, r1 + 2b44: 584d subu r2, r0, r3 + 2b46: 2e00 subi r6, 1 + 2b48: b845 st.w r2, (r14, 0x14) + 2b4a: 9805 ld.w r0, (r14, 0x14) + 2b4c: 6418 cmphs r6, r0 + 2b4e: 0f55 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b50: 6d43 mov r5, r0 + 2b52: 615c addu r5, r7 + 2b54: 36ff movi r6, 255 + 2b56: 655e cmpne r7, r5 + 2b58: 0c91 bf 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b5a: 6c93 mov r2, r4 + 2b5c: 9863 ld.w r3, (r14, 0xc) + 2b5e: 9806 ld.w r0, (r14, 0x18) + 2b60: 9827 ld.w r1, (r14, 0x1c) + 2b62: e3fff3ab bsr 0x12b8 // 12b8 <__divdf3> + 2b66: e3fff4e5 bsr 0x1530 // 1530 <__fixdfsi> + 2b6a: 3130 movi r1, 48 + 2b6c: 6040 addu r1, r0 + 2b6e: a720 st.b r1, (r7, 0x0) + 2b70: 6818 and r0, r6 + 2b72: e3fff4a7 bsr 0x14c0 // 14c0 <__floatsidf> + 2b76: 6c93 mov r2, r4 + 2b78: 9863 ld.w r3, (r14, 0xc) + 2b7a: e3fff285 bsr 0x1084 // 1084 <__muldf3> + 2b7e: 6c83 mov r2, r0 + 2b80: 6cc7 mov r3, r1 + 2b82: 9806 ld.w r0, (r14, 0x18) + 2b84: 9827 ld.w r1, (r14, 0x1c) + 2b86: e3fff263 bsr 0x104c // 104c <__subdf3> + 2b8a: b806 st.w r0, (r14, 0x18) + 2b8c: b827 st.w r1, (r14, 0x1c) + 2b8e: 6c13 mov r0, r4 + 2b90: 9823 ld.w r1, (r14, 0xc) + 2b92: 3200 movi r2, 0 + 2b94: 1278 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2b96: e3fff391 bsr 0x12b8 // 12b8 <__divdf3> + 2b9a: 2700 addi r7, 1 + 2b9c: 6d03 mov r4, r0 + 2b9e: b823 st.w r1, (r14, 0xc) + 2ba0: 07db br 0x2b56 // 2b56 <__GI___dtostr+0x184> + 2ba2: 98a2 ld.w r5, (r14, 0x8) + 2ba4: 9884 ld.w r4, (r14, 0x10) + 2ba6: 077a br 0x2a9a // 2a9a <__GI___dtostr+0xc8> + 2ba8: 1276 lrw r3, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2baa: 1257 lrw r2, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2bac: e3fff26c bsr 0x1084 // 1084 <__muldf3> + 2bb0: 9865 ld.w r3, (r14, 0x14) + 2bb2: 2300 addi r3, 1 + 2bb4: 0776 br 0x2aa0 // 2aa0 <__GI___dtostr+0xce> + 2bb6: 3080 movi r0, 128 + 2bb8: 4056 lsli r2, r0, 22 + 2bba: 9823 ld.w r1, (r14, 0xc) + 2bbc: 6c13 mov r0, r4 + 2bbe: 1273 lrw r3, 0x4202a05f // 2d08 <__GI___dtostr+0x336> + 2bc0: e3fff262 bsr 0x1084 // 1084 <__muldf3> + 2bc4: 6d03 mov r4, r0 + 2bc6: b823 st.w r1, (r14, 0xc) + 2bc8: 2f09 subi r7, 10 + 2bca: 0796 br 0x2af6 // 2af6 <__GI___dtostr+0x124> + 2bcc: 6c13 mov r0, r4 + 2bce: 9823 ld.w r1, (r14, 0xc) + 2bd0: 3200 movi r2, 0 + 2bd2: 1269 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2bd4: e3fff258 bsr 0x1084 // 1084 <__muldf3> + 2bd8: 6d03 mov r4, r0 + 2bda: b823 st.w r1, (r14, 0xc) + 2bdc: 2f00 subi r7, 1 + 2bde: 078e br 0x2afa // 2afa <__GI___dtostr+0x128> + 2be0: 9863 ld.w r3, (r14, 0xc) + 2be2: 6c93 mov r2, r4 + 2be4: 9806 ld.w r0, (r14, 0x18) + 2be6: 9827 ld.w r1, (r14, 0x1c) + 2be8: e3fff368 bsr 0x12b8 // 12b8 <__divdf3> + 2bec: e3fff4a2 bsr 0x1530 // 1530 <__fixdfsi> + 2bf0: 3f40 cmpnei r7, 0 + 2bf2: 74c0 zextb r3, r0 + 2bf4: 0c03 bf 0x2bfa // 2bfa <__GI___dtostr+0x228> + 2bf6: 3b40 cmpnei r3, 0 + 2bf8: 0c58 bf 0x2ca8 // 2ca8 <__GI___dtostr+0x2d6> + 2bfa: 232f addi r3, 48 + 2bfc: 3e40 cmpnei r6, 0 + 2bfe: a560 st.b r3, (r5, 0x0) + 2c00: 2500 addi r5, 1 + 2c02: 0842 bt 0x2c86 // 2c86 <__GI___dtostr+0x2b4> + 2c04: 6c93 mov r2, r4 + 2c06: 9863 ld.w r3, (r14, 0xc) + 2c08: 980a ld.w r0, (r14, 0x28) + 2c0a: 9824 ld.w r1, (r14, 0x10) + 2c0c: e3fff356 bsr 0x12b8 // 12b8 <__divdf3> + 2c10: 9845 ld.w r2, (r14, 0x14) + 2c12: 988b ld.w r4, (r14, 0x2c) + 2c14: b841 st.w r2, (r14, 0x4) + 2c16: b880 st.w r4, (r14, 0x0) + 2c18: 3300 movi r3, 0 + 2c1a: 9842 ld.w r2, (r14, 0x8) + 2c1c: e3fffedb bsr 0x29d2 // 29d2 <__GI___dtostr> + 2c20: 3840 cmpnei r0, 0 + 2c22: 0eeb bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c24: 5dc0 addu r6, r5, r0 + 2c26: 37fa movi r7, 250 + 2c28: 3565 movi r5, 101 + 2c2a: 6c02 nor r0, r0 + 2c2c: a6a0 st.b r5, (r6, 0x0) + 2c2e: 6d03 mov r4, r0 + 2c30: 5ea2 addi r5, r6, 1 + 2c32: 3101 movi r1, 1 + 2c34: 3604 movi r6, 4 + 2c36: 47e2 lsli r7, r7, 2 + 2c38: 9808 ld.w r0, (r14, 0x20) + 2c3a: 65c1 cmplt r0, r7 + 2c3c: 0c03 bf 0x2c42 // 2c42 <__GI___dtostr+0x270> + 2c3e: 3940 cmpnei r1, 0 + 2c40: 0811 bt 0x2c62 // 2c62 <__GI___dtostr+0x290> + 2c42: 3c40 cmpnei r4, 0 + 2c44: 0c08 bf 0x2c54 // 2c54 <__GI___dtostr+0x282> + 2c46: 6c5f mov r1, r7 + 2c48: 9808 ld.w r0, (r14, 0x20) + 2c4a: e0000bd1 bsr 0x43ec // 43ec <__divsi3> + 2c4e: 202f addi r0, 48 + 2c50: a500 st.b r0, (r5, 0x0) + 2c52: 2500 addi r5, 1 + 2c54: 6c5f mov r1, r7 + 2c56: 9808 ld.w r0, (r14, 0x20) + 2c58: e0000bee bsr 0x4434 // 4434 <__modsi3> + 2c5c: 2c00 subi r4, 1 + 2c5e: b808 st.w r0, (r14, 0x20) + 2c60: 3100 movi r1, 0 + 2c62: b823 st.w r1, (r14, 0xc) + 2c64: 6c1f mov r0, r7 + 2c66: 310a movi r1, 10 + 2c68: 2e00 subi r6, 1 + 2c6a: e0000bc1 bsr 0x43ec // 43ec <__divsi3> + 2c6e: 3e40 cmpnei r6, 0 + 2c70: 6dc3 mov r7, r0 + 2c72: 9823 ld.w r1, (r14, 0xc) + 2c74: 0be2 bt 0x2c38 // 2c38 <__GI___dtostr+0x266> + 2c76: 3c40 cmpnei r4, 0 + 2c78: 0ec0 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c7a: 9842 ld.w r2, (r14, 0x8) + 2c7c: 3300 movi r3, 0 + 2c7e: 5d89 subu r4, r5, r2 + 2c80: a560 st.b r3, (r5, 0x0) + 2c82: b889 st.w r4, (r14, 0x24) + 2c84: 06ba br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c86: 7400 zextb r0, r0 + 2c88: e3fff41c bsr 0x14c0 // 14c0 <__floatsidf> + 2c8c: 6c93 mov r2, r4 + 2c8e: 9863 ld.w r3, (r14, 0xc) + 2c90: e3fff1fa bsr 0x1084 // 1084 <__muldf3> + 2c94: 6c83 mov r2, r0 + 2c96: 6cc7 mov r3, r1 + 2c98: 9806 ld.w r0, (r14, 0x18) + 2c9a: 9827 ld.w r1, (r14, 0x1c) + 2c9c: e3fff1d8 bsr 0x104c // 104c <__subdf3> + 2ca0: b806 st.w r0, (r14, 0x18) + 2ca2: b827 st.w r1, (r14, 0x1c) + 2ca4: 2e00 subi r6, 1 + 2ca6: 3700 movi r7, 0 + 2ca8: 6c13 mov r0, r4 + 2caa: 9823 ld.w r1, (r14, 0xc) + 2cac: 3200 movi r2, 0 + 2cae: 1072 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2cb0: e3fff304 bsr 0x12b8 // 12b8 <__divdf3> + 2cb4: 6d03 mov r4, r0 + 2cb6: b823 st.w r1, (r14, 0xc) + 2cb8: 0723 br 0x2afe // 2afe <__GI___dtostr+0x12c> + 2cba: 1012 lrw r0, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2cbc: 1092 lrw r4, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2cbe: b803 st.w r0, (r14, 0xc) + 2cc0: 0727 br 0x2b0e // 2b0e <__GI___dtostr+0x13c> + 2cc2: 3e40 cmpnei r6, 0 + 2cc4: 0e9a bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2cc6: 372e movi r7, 46 + 2cc8: a5e0 st.b r7, (r5, 0x0) + 2cca: 2e00 subi r6, 1 + 2ccc: 5de2 addi r7, r5, 1 + 2cce: 073e br 0x2b4a // 2b4a <__GI___dtostr+0x178> + 2cd0: 3e40 cmpnei r6, 0 + 2cd2: 0ac8 bt 0x2a62 // 2a62 <__GI___dtostr+0x90> + 2cd4: 3508 movi r5, 8 + 2cd6: 06ac br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2cd8: 00006079 .long 0x00006079 + 2cdc: 0000607d .long 0x0000607d + 2ce0: 3fe00000 .long 0x3fe00000 + 2ce4: 3ff00000 .long 0x3ff00000 + 2ce8: fffffc01 .long 0xfffffc01 + 2cec: 509f79ff .long 0x509f79ff + 2cf0: 3fd34413 .long 0x3fd34413 + 2cf4: 40240000 .long 0x40240000 + 2cf8: cccccccd .long 0xcccccccd + 2cfc: 3feccccc .long 0x3feccccc + 2d00: 3fb99999 .long 0x3fb99999 + 2d04: 9999999a .long 0x9999999a + 2d08: 4202a05f .long 0x4202a05f + +00002d0c <__isnan>: + 2d0c: 416c lsli r3, r1, 12 + 2d0e: 4b4c lsri r2, r3, 12 + 2d10: 6c08 or r0, r2 + 2d12: 3840 cmpnei r0, 0 + 2d14: 0c0e bf 0x2d30 // 2d30 <__isnan+0x24> + 2d16: 1008 lrw r0, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d18: 6840 and r1, r0 + 2d1a: 6cc7 mov r3, r1 + 2d1c: 3000 movi r0, 0 + 2d1e: 1026 lrw r1, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d20: 3200 movi r2, 0 + 2d22: 6c81 xor r2, r0 + 2d24: 6cc5 xor r3, r1 + 2d26: 6c8c or r2, r3 + 2d28: 3a40 cmpnei r2, 0 + 2d2a: 6443 mvcv r1 + 2d2c: 7404 zextb r0, r1 + 2d2e: 783c jmp r15 + 2d30: 3000 movi r0, 0 + 2d32: 07fe br 0x2d2e // 2d2e <__isnan+0x22> + 2d34: 7ff00000 .long 0x7ff00000 + +00002d38 <__strlen_fast>: + 2d38: 6c43 mov r1, r0 + 2d3a: 3203 movi r2, 3 + 2d3c: 6808 and r0, r2 + 2d3e: 3840 cmpnei r0, 0 + 2d40: 0c08 bf 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d42: 3000 movi r0, 0 + 2d44: 8140 ld.b r2, (r1, 0x0) + 2d46: 3a40 cmpnei r2, 0 + 2d48: 0c20 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d4a: 2100 addi r1, 1 + 2d4c: 2000 addi r0, 1 + 2d4e: 07fb br 0x2d44 // 2d44 <__strlen_fast+0xc> + 2d50: 9140 ld.w r2, (r1, 0x0) + 2d52: 680b tstnbz r2 + 2d54: 0c04 bf 0x2d5c // 2d5c <__strlen_fast+0x24> + 2d56: 2103 addi r1, 4 + 2d58: 2003 addi r0, 4 + 2d5a: 07fb br 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d5c: 31ff movi r1, 255 + 2d5e: 6ccb mov r3, r2 + 2d60: 68c4 and r3, r1 + 2d62: 3b40 cmpnei r3, 0 + 2d64: 0c12 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d66: 2000 addi r0, 1 + 2d68: 3110 movi r1, 16 + 2d6a: 6ccb mov r3, r2 + 2d6c: 70c4 lsl r3, r1 + 2d6e: 3118 movi r1, 24 + 2d70: 70c5 lsr r3, r1 + 2d72: 3b40 cmpnei r3, 0 + 2d74: 0c0a bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d76: 2000 addi r0, 1 + 2d78: 3108 movi r1, 8 + 2d7a: 6ccb mov r3, r2 + 2d7c: 70c4 lsl r3, r1 + 2d7e: 3118 movi r1, 24 + 2d80: 70c5 lsr r3, r1 + 2d82: 3b40 cmpnei r3, 0 + 2d84: 0c02 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d86: 2000 addi r0, 1 + 2d88: 783c jmp r15 + ... + +00002d8c <__strcpy_fast>: + 2d8c: 14c1 push r4 + 2d8e: 6d03 mov r4, r0 + 2d90: 6c87 mov r2, r1 + 2d92: 6c90 or r2, r4 + 2d94: 3303 movi r3, 3 + 2d96: 688c and r2, r3 + 2d98: 3a40 cmpnei r2, 0 + 2d9a: 0c08 bf 0x2daa // 2daa <__strcpy_fast+0x1e> + 2d9c: 8160 ld.b r3, (r1, 0x0) + 2d9e: a460 st.b r3, (r4, 0x0) + 2da0: 2100 addi r1, 1 + 2da2: 2400 addi r4, 1 + 2da4: 3b40 cmpnei r3, 0 + 2da6: 0bfb bt 0x2d9c // 2d9c <__strcpy_fast+0x10> + 2da8: 1481 pop r4 + 2daa: 9160 ld.w r3, (r1, 0x0) + 2dac: 680f tstnbz r3 + 2dae: 0c2e bf 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2db0: b460 st.w r3, (r4, 0x0) + 2db2: 9161 ld.w r3, (r1, 0x4) + 2db4: 680f tstnbz r3 + 2db6: 0c1d bf 0x2df0 // 2df0 <__strcpy_fast+0x64> + 2db8: b461 st.w r3, (r4, 0x4) + 2dba: 9162 ld.w r3, (r1, 0x8) + 2dbc: 680f tstnbz r3 + 2dbe: 0c1b bf 0x2df4 // 2df4 <__strcpy_fast+0x68> + 2dc0: b462 st.w r3, (r4, 0x8) + 2dc2: 9163 ld.w r3, (r1, 0xc) + 2dc4: 680f tstnbz r3 + 2dc6: 0c19 bf 0x2df8 // 2df8 <__strcpy_fast+0x6c> + 2dc8: b463 st.w r3, (r4, 0xc) + 2dca: 9164 ld.w r3, (r1, 0x10) + 2dcc: 680f tstnbz r3 + 2dce: 0c17 bf 0x2dfc // 2dfc <__strcpy_fast+0x70> + 2dd0: b464 st.w r3, (r4, 0x10) + 2dd2: 9165 ld.w r3, (r1, 0x14) + 2dd4: 680f tstnbz r3 + 2dd6: 0c15 bf 0x2e00 // 2e00 <__strcpy_fast+0x74> + 2dd8: b465 st.w r3, (r4, 0x14) + 2dda: 9166 ld.w r3, (r1, 0x18) + 2ddc: 680f tstnbz r3 + 2dde: 0c13 bf 0x2e04 // 2e04 <__strcpy_fast+0x78> + 2de0: b466 st.w r3, (r4, 0x18) + 2de2: 9167 ld.w r3, (r1, 0x1c) + 2de4: 680f tstnbz r3 + 2de6: 0c11 bf 0x2e08 // 2e08 <__strcpy_fast+0x7c> + 2de8: b467 st.w r3, (r4, 0x1c) + 2dea: 241f addi r4, 32 + 2dec: 211f addi r1, 32 + 2dee: 07de br 0x2daa // 2daa <__strcpy_fast+0x1e> + 2df0: 2403 addi r4, 4 + 2df2: 040c br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df4: 2407 addi r4, 8 + 2df6: 040a br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df8: 240b addi r4, 12 + 2dfa: 0408 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2dfc: 240f addi r4, 16 + 2dfe: 0406 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e00: 2413 addi r4, 20 + 2e02: 0404 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e04: 2417 addi r4, 24 + 2e06: 0402 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e08: 241b addi r4, 28 + 2e0a: 3118 movi r1, 24 + 2e0c: 6c8f mov r2, r3 + 2e0e: 7084 lsl r2, r1 + 2e10: 7085 lsr r2, r1 + 2e12: a440 st.b r2, (r4, 0x0) + 2e14: 3a40 cmpnei r2, 0 + 2e16: 0c12 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e18: 3110 movi r1, 16 + 2e1a: 6c8f mov r2, r3 + 2e1c: 7084 lsl r2, r1 + 2e1e: 3118 movi r1, 24 + 2e20: 7085 lsr r2, r1 + 2e22: a441 st.b r2, (r4, 0x1) + 2e24: 3a40 cmpnei r2, 0 + 2e26: 0c0a bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e28: 3108 movi r1, 8 + 2e2a: 6c8f mov r2, r3 + 2e2c: 7084 lsl r2, r1 + 2e2e: 3118 movi r1, 24 + 2e30: 7085 lsr r2, r1 + 2e32: a442 st.b r2, (r4, 0x2) + 2e34: 3a40 cmpnei r2, 0 + 2e36: 0c02 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e38: b460 st.w r3, (r4, 0x0) + 2e3a: 1481 pop r4 + +00002e3c <__GI_strchr>: + 2e3c: 8040 ld.b r2, (r0, 0x0) + 2e3e: 644a cmpne r2, r1 + 2e40: 0c06 bf 0x2e4c // 2e4c <__GI_strchr+0x10> + 2e42: 3a40 cmpnei r2, 0 + 2e44: 0c03 bf 0x2e4a // 2e4a <__GI_strchr+0xe> + 2e46: 2000 addi r0, 1 + 2e48: 07fa br 0x2e3c // 2e3c <__GI_strchr> + 2e4a: 6c0b mov r0, r2 + 2e4c: 783c jmp r15 + ... + +00002e50 <__GI_strerror>: + 2e50: 338f movi r3, 143 + 2e52: 640c cmphs r3, r0 + 2e54: 0c06 bf 0x2e60 // 2e60 <__GI_strerror+0x10> + 2e56: 4002 lsli r0, r0, 2 + 2e58: 1023 lrw r1, 0x5cec // 2e64 <__GI_strerror+0x14> + 2e5a: 6004 addu r0, r1 + 2e5c: 9000 ld.w r0, (r0, 0x0) + 2e5e: 783c jmp r15 + 2e60: 1002 lrw r0, 0x5f53 // 2e68 <__GI_strerror+0x18> + 2e62: 07fe br 0x2e5e // 2e5e <__GI_strerror+0xe> + 2e64: 00005cec .long 0x00005cec + 2e68: 00005f53 .long 0x00005f53 + +00002e6c <__isinf>: + 2e6c: 3840 cmpnei r0, 0 + 2e6e: 6c83 mov r2, r0 + 2e70: 6cc7 mov r3, r1 + 2e72: 0804 bt 0x2e7a // 2e7a <__isinf+0xe> + 2e74: 1028 lrw r1, 0x7ff00000 // 2e94 <__isinf+0x28> + 2e76: 644e cmpne r3, r1 + 2e78: 0c0b bf 0x2e8e // 2e8e <__isinf+0x22> + 2e7a: 3000 movi r0, 0 + 2e7c: 1027 lrw r1, 0xfff00000 // 2e98 <__isinf+0x2c> + 2e7e: 6c81 xor r2, r0 + 2e80: 6cc5 xor r3, r1 + 2e82: 6c8c or r2, r3 + 2e84: 3a40 cmpnei r2, 0 + 2e86: 64c3 mvcv r3 + 2e88: 3000 movi r0, 0 + 2e8a: 600e subu r0, r3 + 2e8c: 783c jmp r15 + 2e8e: 3001 movi r0, 1 + 2e90: 07fe br 0x2e8c // 2e8c <__isinf+0x20> + 2e92: 0000 bkpt + 2e94: 7ff00000 .long 0x7ff00000 + 2e98: fff00000 .long 0xfff00000 + +00002e9c <__eqdf2>: + 2e9c: 14d0 push r15 + 2e9e: 142e subi r14, r14, 56 + 2ea0: b800 st.w r0, (r14, 0x0) + 2ea2: b821 st.w r1, (r14, 0x4) + 2ea4: 6c3b mov r0, r14 + 2ea6: 1904 addi r1, r14, 16 + 2ea8: b863 st.w r3, (r14, 0xc) + 2eaa: b842 st.w r2, (r14, 0x8) + 2eac: e3fff4b4 bsr 0x1814 // 1814 <__unpack_d> + 2eb0: 1909 addi r1, r14, 36 + 2eb2: 1802 addi r0, r14, 8 + 2eb4: e3fff4b0 bsr 0x1814 // 1814 <__unpack_d> + 2eb8: 9864 ld.w r3, (r14, 0x10) + 2eba: 3b01 cmphsi r3, 2 + 2ebc: 0c0a bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ebe: 9869 ld.w r3, (r14, 0x24) + 2ec0: 3b01 cmphsi r3, 2 + 2ec2: 0c07 bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ec4: 1909 addi r1, r14, 36 + 2ec6: 1804 addi r0, r14, 16 + 2ec8: e3fff508 bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2ecc: 140e addi r14, r14, 56 + 2ece: 1490 pop r15 + 2ed0: 3001 movi r0, 1 + 2ed2: 140e addi r14, r14, 56 + 2ed4: 1490 pop r15 + ... + +00002ed8 <__ltdf2>: + 2ed8: 14d0 push r15 + 2eda: 142e subi r14, r14, 56 + 2edc: b800 st.w r0, (r14, 0x0) + 2ede: b821 st.w r1, (r14, 0x4) + 2ee0: 6c3b mov r0, r14 + 2ee2: 1904 addi r1, r14, 16 + 2ee4: b863 st.w r3, (r14, 0xc) + 2ee6: b842 st.w r2, (r14, 0x8) + 2ee8: e3fff496 bsr 0x1814 // 1814 <__unpack_d> + 2eec: 1909 addi r1, r14, 36 + 2eee: 1802 addi r0, r14, 8 + 2ef0: e3fff492 bsr 0x1814 // 1814 <__unpack_d> + 2ef4: 9864 ld.w r3, (r14, 0x10) + 2ef6: 3b01 cmphsi r3, 2 + 2ef8: 0c0a bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2efa: 9869 ld.w r3, (r14, 0x24) + 2efc: 3b01 cmphsi r3, 2 + 2efe: 0c07 bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2f00: 1909 addi r1, r14, 36 + 2f02: 1804 addi r0, r14, 16 + 2f04: e3fff4ea bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2f08: 140e addi r14, r14, 56 + 2f0a: 1490 pop r15 + 2f0c: 3001 movi r0, 1 + 2f0e: 140e addi r14, r14, 56 + 2f10: 1490 pop r15 + +Disassembly of section .text.__main: + +00002f14 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 2f14: 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 ) { + 2f16: 1009 lrw r0, 0x20000000 // 2f38 <__main+0x24> + 2f18: 1029 lrw r1, 0x6808 // 2f3c <__main+0x28> + 2f1a: 6442 cmpne r0, r1 + 2f1c: 0c05 bf 0x2f26 // 2f26 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 2f1e: 1049 lrw r2, 0x200000a0 // 2f40 <__main+0x2c> + 2f20: 6082 subu r2, r0 + 2f22: e3fff5c1 bsr 0x1aa4 // 1aa4 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 2f26: 1048 lrw r2, 0x20000758 // 2f44 <__main+0x30> + 2f28: 1008 lrw r0, 0x200000a0 // 2f48 <__main+0x34> + 2f2a: 640a cmpne r2, r0 + 2f2c: 0c05 bf 0x2f36 // 2f36 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 2f2e: 6082 subu r2, r0 + 2f30: 3100 movi r1, 0 + 2f32: e3fff575 bsr 0x1a1c // 1a1c <__memset_fast> + } + + +} + 2f36: 1490 pop r15 + 2f38: 20000000 .long 0x20000000 + 2f3c: 00006808 .long 0x00006808 + 2f40: 200000a0 .long 0x200000a0 + 2f44: 20000758 .long 0x20000758 + 2f48: 200000a0 .long 0x200000a0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00002f4c : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 2f4c: 3848 cmpnei r0, 8 + 2f4e: 080a bt 0x2f62 // 2f62 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 2f50: 107a lrw r3, 0x2000004c // 2fb8 + 2f52: 32ff movi r2, 255 + 2f54: 9320 ld.w r1, (r3, 0x0) + 2f56: 9160 ld.w r3, (r1, 0x0) + 2f58: 424c lsli r2, r2, 12 + 2f5a: 68c9 andn r3, r2 + 2f5c: 3bae bseti r3, 14 + 2f5e: 3bb2 bseti r3, 18 + 2f60: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 2f62: 1077 lrw r3, 0x2000005c // 2fbc + 2f64: 9360 ld.w r3, (r3, 0x0) + 2f66: 9341 ld.w r2, (r3, 0x4) + 2f68: 6c80 or r2, r0 + 2f6a: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 2f6c: 9343 ld.w r2, (r3, 0xc) + 2f6e: 6880 and r2, r0 + 2f70: 3a40 cmpnei r2, 0 + 2f72: 0ffd bf 0x2f6c // 2f6c + switch(ENDIS_X) + 2f74: 3842 cmpnei r0, 2 + 2f76: 0807 bt 0x2f84 // 2f84 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 2f78: 3102 movi r1, 2 + 2f7a: 9344 ld.w r2, (r3, 0x10) + 2f7c: 6884 and r2, r1 + 2f7e: 3a40 cmpnei r2, 0 + 2f80: 0ffd bf 0x2f7a // 2f7a + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 2f82: 783c jmp r15 + switch(ENDIS_X) + 2f84: 3802 cmphsi r0, 3 + 2f86: 0809 bt 0x2f98 // 2f98 + 2f88: 3841 cmpnei r0, 1 + 2f8a: 0bfc bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 2f8c: 3101 movi r1, 1 + 2f8e: 9344 ld.w r2, (r3, 0x10) + 2f90: 6884 and r2, r1 + 2f92: 3a40 cmpnei r2, 0 + 2f94: 0ffd bf 0x2f8e // 2f8e + 2f96: 07f6 br 0x2f82 // 2f82 + switch(ENDIS_X) + 2f98: 3848 cmpnei r0, 8 + 2f9a: 0807 bt 0x2fa8 // 2fa8 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 2f9c: 3108 movi r1, 8 + 2f9e: 9344 ld.w r2, (r3, 0x10) + 2fa0: 6884 and r2, r1 + 2fa2: 3a40 cmpnei r2, 0 + 2fa4: 0ffd bf 0x2f9e // 2f9e + 2fa6: 07ee br 0x2f82 // 2f82 + switch(ENDIS_X) + 2fa8: 3850 cmpnei r0, 16 + 2faa: 0bec bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 2fac: 3110 movi r1, 16 + 2fae: 9344 ld.w r2, (r3, 0x10) + 2fb0: 6884 and r2, r1 + 2fb2: 3a40 cmpnei r2, 0 + 2fb4: 0ffd bf 0x2fae // 2fae + 2fb6: 07e6 br 0x2f82 // 2f82 + 2fb8: 2000004c .long 0x2000004c + 2fbc: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00002fc0 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 2fc0: 106c lrw r3, 0x2000005c // 2ff0 + 2fc2: 104d lrw r2, 0xffff // 2ff4 + 2fc4: 9360 ld.w r3, (r3, 0x0) + 2fc6: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 2fc8: 104c lrw r2, 0xffffff // 2ff8 + 2fca: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 2fcc: 104c lrw r2, 0xd22d0000 // 2ffc + 2fce: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 2fd0: 104c lrw r2, 0x70ff3bff // 3000 + 2fd2: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 2fd4: 320a movi r2, 10 + 2fd6: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fd8: 102b lrw r1, 0x70c // 3004 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 2fda: 237f addi r3, 128 + 2fdc: 3200 movi r2, 0 + 2fde: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 2fe0: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fe2: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 2fe4: 1029 lrw r1, 0x3fe // 3008 + 2fe6: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 2fe8: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 2fea: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 2fec: b35f st.w r2, (r3, 0x7c) +} + 2fee: 783c jmp r15 + 2ff0: 2000005c .long 0x2000005c + 2ff4: 0000ffff .long 0x0000ffff + 2ff8: 00ffffff .long 0x00ffffff + 2ffc: d22d0000 .long 0xd22d0000 + 3000: 70ff3bff .long 0x70ff3bff + 3004: 0000070c .long 0x0000070c + 3008: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +0000300c : +{ + 300c: 14d0 push r15 + if (NewState != DISABLE) + 300e: 3840 cmpnei r0, 0 + 3010: 0c05 bf 0x301a // 301a + 3012: 6c07 mov r0, r1 + 3014: e3ffff9c bsr 0x2f4c // 2f4c +} + 3018: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 301a: 1068 lrw r3, 0x2000005c // 3038 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9342 ld.w r2, (r3, 0x8) + 3020: 6c84 or r2, r1 + 3022: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 3024: 9343 ld.w r2, (r3, 0xc) + 3026: 6884 and r2, r1 + 3028: 3a40 cmpnei r2, 0 + 302a: 0bfd bt 0x3024 // 3024 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 302c: 237f addi r3, 128 + 302e: 9301 ld.w r0, (r3, 0x4) + 3030: 6c40 or r1, r0 + 3032: b321 st.w r1, (r3, 0x4) +} + 3034: 07f2 br 0x3018 // 3018 + 3036: 0000 bkpt + 3038: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +0000303c : +//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 ) +{ + 303c: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 303e: 3b48 cmpnei r3, 8 + 3040: 0828 bt 0x3090 // 3090 + { + IFC->CEDR=0X01; //CLKEN + 3042: 109d lrw r4, 0x20000060 // 30b4 + 3044: 3501 movi r5, 1 + 3046: 9480 ld.w r4, (r4, 0x0) + 3048: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 304a: 3504 movi r5, 4 + 304c: 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)) + 304e: 5b83 subi r4, r3, 1 + 3050: 3c01 cmphsi r4, 2 + 3052: 0c2b bf 0x30a8 // 30a8 + { + 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)) + 3054: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 3056: 3c04 cmphsi r4, 5 + 3058: 0c03 bf 0x305e // 305e + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 305a: 3b4b cmpnei r3, 11 + 305c: 0807 bt 0x306a // 306a + { + IFC->CEDR=0X01; //CLKEN + 305e: 1076 lrw r3, 0x20000060 // 30b4 + 3060: 3401 movi r4, 1 + 3062: 9360 ld.w r3, (r3, 0x0) + 3064: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 3066: 3400 movi r4, 0 + 3068: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 306a: 1094 lrw r4, 0xd22d0000 // 30b8 + 306c: 6c10 or r0, r4 + 306e: 1074 lrw r3, 0x2000005c // 30bc + 3070: 6c40 or r1, r0 + 3072: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3074: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 3076: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3078: 4001 lsli r0, r0, 1 + 307a: 9324 ld.w r1, (r3, 0x10) + 307c: 6840 and r1, r0 + 307e: 3940 cmpnei r1, 0 + 3080: 0ffd bf 0x307a // 307a + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 3082: 1030 lrw r1, 0xc33c0000 // 30c0 + 3084: 6c48 or r1, r2 + 3086: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 3088: 9328 ld.w r1, (r3, 0x20) + 308a: 644a cmpne r2, r1 + 308c: 0bfe bt 0x3088 // 3088 +} + 308e: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 3090: 3b40 cmpnei r3, 0 + 3092: 0c03 bf 0x3098 // 3098 + 3094: 3b49 cmpnei r3, 9 + 3096: 0807 bt 0x30a4 // 30a4 + IFC->CEDR=0X01; //CLKEN + 3098: 1087 lrw r4, 0x20000060 // 30b4 + 309a: 3501 movi r5, 1 + 309c: 9480 ld.w r4, (r4, 0x0) + 309e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 30a0: 3502 movi r5, 2 + 30a2: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 30a4: 3b4a cmpnei r3, 10 + 30a6: 0bd4 bt 0x304e // 304e + IFC->CEDR=0X01; //CLKEN + 30a8: 1083 lrw r4, 0x20000060 // 30b4 + 30aa: 3501 movi r5, 1 + 30ac: 9480 ld.w r4, (r4, 0x0) + 30ae: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 30b0: b4a5 st.w r5, (r4, 0x14) + 30b2: 07d1 br 0x3054 // 3054 + 30b4: 20000060 .long 0x20000060 + 30b8: d22d0000 .long 0xd22d0000 + 30bc: 2000005c .long 0x2000005c + 30c0: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +000030c4 : +//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) +{ + 30c4: 14d1 push r4, r15 + 30c6: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 30c8: 3110 movi r1, 16 + 30ca: 3000 movi r0, 0 + 30cc: e3ffffa0 bsr 0x300c // 300c + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 30d0: 1066 lrw r3, 0x2000005c // 30e8 + 30d2: 9360 ld.w r3, (r3, 0x0) + 30d4: 9319 ld.w r0, (r3, 0x64) + 30d6: 3884 bclri r0, 4 + 30d8: 3885 bclri r0, 5 + 30da: 6c10 or r0, r4 + 30dc: b319 st.w r0, (r3, 0x64) + 30de: 3010 movi r0, 16 + 30e0: e3ffff36 bsr 0x2f4c // 2f4c + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 30e4: 1491 pop r4, r15 + 30e6: 0000 bkpt + 30e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +000030ec : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 30ec: 106c lrw r3, 0x2000005c // 311c + if(NewState != DISABLE) + 30ee: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f0: 9360 ld.w r3, (r3, 0x0) + 30f2: 237f addi r3, 128 + if(NewState != DISABLE) + 30f4: 0c0a bf 0x3108 // 3108 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f6: 104b lrw r2, 0x78870000 // 3120 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30f8: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30fa: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30fc: 4125 lsli r1, r1, 5 + 30fe: 934d ld.w r2, (r3, 0x34) + 3100: 6884 and r2, r1 + 3102: 3a40 cmpnei r2, 0 + 3104: 0ffd bf 0x30fe // 30fe + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 3106: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 3108: 1047 lrw r2, 0x788755aa // 3124 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310a: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 310c: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310e: 4125 lsli r1, r1, 5 + 3110: 934d ld.w r2, (r3, 0x34) + 3112: 6884 and r2, r1 + 3114: 3a40 cmpnei r2, 0 + 3116: 0bfd bt 0x3110 // 3110 + 3118: 07f7 br 0x3106 // 3106 + 311a: 0000 bkpt + 311c: 2000005c .long 0x2000005c + 3120: 78870000 .long 0x78870000 + 3124: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00003128 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 3128: 1064 lrw r3, 0x2000005c // 3138 + 312a: 32b4 movi r2, 180 + 312c: 9360 ld.w r3, (r3, 0x0) + 312e: 237f addi r3, 128 + 3130: 4257 lsli r2, r2, 23 + 3132: b34e st.w r2, (r3, 0x38) +} + 3134: 783c jmp r15 + 3136: 0000 bkpt + 3138: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +0000313c : +//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; + 313c: 1044 lrw r2, 0x87780000 // 314c + 313e: 1065 lrw r3, 0x2000005c // 3150 + 3140: 6c48 or r1, r2 + 3142: 9360 ld.w r3, (r3, 0x0) + 3144: 6c04 or r0, r1 + 3146: 237f addi r3, 128 + 3148: b30d st.w r0, (r3, 0x34) +} + 314a: 783c jmp r15 + 314c: 87780000 .long 0x87780000 + 3150: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00003154 : +//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) +{ + 3154: 14c3 push r4-r6 + 3156: 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; + 3158: 10c5 lrw r6, 0xb44b0000 // 316c + 315a: 6d18 or r4, r6 + 315c: 6cd0 or r3, r4 + 315e: 6c8c or r2, r3 + 3160: 6c48 or r1, r2 + 3162: 10a4 lrw r5, 0x2000005c // 3170 + 3164: 6c04 or r0, r1 + 3166: 95a0 ld.w r5, (r5, 0x0) + 3168: b513 st.w r0, (r5, 0x4c) +} + 316a: 1483 pop r4-r6 + 316c: b44b0000 .long 0xb44b0000 + 3170: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00003174 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 3174: 1066 lrw r3, 0x2000005c // 318c + 3176: 3180 movi r1, 128 + 3178: 9360 ld.w r3, (r3, 0x0) + 317a: 3280 movi r2, 128 + 317c: 604c addu r1, r3 + 317e: 4244 lsli r2, r2, 4 + 3180: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 3182: 935d ld.w r2, (r3, 0x74) + 3184: 3aab bseti r2, 11 + 3186: b35d st.w r2, (r3, 0x74) +} + 3188: 783c jmp r15 + 318a: 0000 bkpt + 318c: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00003190 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 3190: 1066 lrw r3, 0x2000005c // 31a8 + 3192: 3180 movi r1, 128 + 3194: 9360 ld.w r3, (r3, 0x0) + 3196: 3280 movi r2, 128 + 3198: 604c addu r1, r3 + 319a: 4241 lsli r2, r2, 1 + 319c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 319e: 935d ld.w r2, (r3, 0x74) + 31a0: 3aa8 bseti r2, 8 + 31a2: b35d st.w r2, (r3, 0x74) +} + 31a4: 783c jmp r15 + 31a6: 0000 bkpt + 31a8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +000031ac : +//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) + 31ac: 3a40 cmpnei r2, 0 + 31ae: 0c04 bf 0x31b6 // 31b6 + 31b0: 3a41 cmpnei r2, 1 + 31b2: 0c0e bf 0x31ce // 31ce + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 31b4: 783c jmp r15 + 31b6: 106d lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31b8: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 31ba: 9360 ld.w r3, (r3, 0x0) + 31bc: 237f addi r3, 128 + 31be: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 31c0: 0c04 bf 0x31c8 // 31c8 + SYSCON->EXIRT |=EXIPIN; + 31c2: 6c48 or r1, r2 + 31c4: b325 st.w r1, (r3, 0x14) + 31c6: 07f7 br 0x31b4 // 31b4 + SYSCON->EXIRT &=~EXIPIN; + 31c8: 6885 andn r2, r1 + 31ca: b345 st.w r2, (r3, 0x14) + 31cc: 07f4 br 0x31b4 // 31b4 + 31ce: 1067 lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31d0: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 31d2: 9360 ld.w r3, (r3, 0x0) + 31d4: 237f addi r3, 128 + 31d6: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 31d8: 0c04 bf 0x31e0 // 31e0 + SYSCON->EXIFT |=EXIPIN; + 31da: 6c48 or r1, r2 + 31dc: b326 st.w r1, (r3, 0x18) + 31de: 07eb br 0x31b4 // 31b4 + SYSCON->EXIFT &=~EXIPIN; + 31e0: 6885 andn r2, r1 + 31e2: b346 st.w r2, (r3, 0x18) +} + 31e4: 07e8 br 0x31b4 // 31b4 + 31e6: 0000 bkpt + 31e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_Int_Enable: + +000031ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 31ec: 3202 movi r2, 2 + 31ee: 1062 lrw r3, 0xe000e100 // 31f4 + 31f0: b340 st.w r2, (r3, 0x0) +} + 31f2: 783c jmp r15 + 31f4: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_INT_Priority: + +000031f8 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31f8: 1066 lrw r3, 0xe000e400 // 3210 + 31fa: 1047 lrw r2, 0xc0c0c0c0 // 3214 + 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 + 31fc: 1027 lrw r1, 0xc0c000c0 // 3218 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31fe: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 3200: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 3202: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 3204: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 3206: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 3208: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 320a: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 320c: b347 st.w r2, (r3, 0x1c) +} + 320e: 783c jmp r15 + 3210: e000e400 .long 0xe000e400 + 3214: c0c0c0c0 .long 0xc0c0c0c0 + 3218: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +0000321c : +//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) +{ + 321c: 14c1 push r4 + 321e: 4862 lsri r3, r0, 2 + 3220: 4342 lsli r2, r3, 2 + 3222: 106a lrw r3, 0x20000064 // 3248 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 3224: 3403 movi r4, 3 + 3226: 9360 ld.w r3, (r3, 0x0) + 3228: 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)); + 323a: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 323e: 7040 lsl r1, r0 + 3240: 6c48 or r1, r2 + 3242: b320 st.w r1, (r3, 0x0) +} + 3244: 1481 pop r4 + 3246: 0000 bkpt + 3248: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +0000324c : +//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) +{ + 324c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 324e: 3907 cmphsi r1, 8 +{ + 3250: 6d03 mov r4, r0 + if(PinNum<8) + 3252: 0830 bt 0x32b2 // 32b2 + { + switch (PinNum) + 3254: 5903 subi r0, r1, 1 + 3256: 3806 cmphsi r0, 7 + 3258: 0827 bt 0x32a6 // 32a6 + 325a: e3ffed51 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 325e: 1004 .short 0x1004 + 3260: 1d1a1613 .long 0x1d1a1613 + 3264: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 3266: 3300 movi r3, 0 + 3268: 3104 movi r1, 4 + 326a: 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) + 326c: 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< + 3282: 07f5 br 0x326c // 326c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 3284: 310c movi r1, 12 + 3286: 1166 lrw r3, 0xffff0fff // 331c + 3288: 07f2 br 0x326c // 326c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 328a: 3110 movi r1, 16 + 328c: 1165 lrw r3, 0xfff10000 // 3320 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 328e: 2b00 subi r3, 1 + 3290: 07ee br 0x326c // 326c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 3292: 3114 movi r1, 20 + 3294: 1164 lrw r3, 0xff100000 // 3324 + 3296: 07fc br 0x328e // 328e + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3298: 33f1 movi r3, 241 + 329a: 3118 movi r1, 24 + 329c: 4378 lsli r3, r3, 24 + 329e: 07f8 br 0x328e // 328e + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 32a0: 311c movi r1, 28 + 32a2: 1162 lrw r3, 0xfffffff // 3328 + 32a4: 07e4 br 0x326c // 326c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 32a6: 3300 movi r3, 0 + 32a8: 3100 movi r1, 0 + 32aa: 2b0f subi r3, 16 + 32ac: 07e0 br 0x326c // 326c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 32b2: 390f cmphsi r1, 16 + 32b4: 0be4 bt 0x327c // 327c + switch (PinNum) + 32b6: 2908 subi r1, 9 + 32b8: 3906 cmphsi r1, 7 + 32ba: 6c07 mov r0, r1 + 32bc: 0827 bt 0x330a // 330a + 32be: e3ffed1f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 32c2: 1004 .short 0x1004 + 32c4: 1d1a1613 .long 0x1d1a1613 + 32c8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 32ca: 3300 movi r3, 0 + 32cc: 3104 movi r1, 4 + 32ce: 2bf0 subi r3, 241 + if (Dir) + 32d0: 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; + 32e2: 3108 movi r1, 8 + 32e4: 106d lrw r3, 0xfffff0ff // 3318 + 32e6: 07f5 br 0x32d0 // 32d0 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 32e8: 310c movi r1, 12 + 32ea: 106d lrw r3, 0xffff0fff // 331c + 32ec: 07f2 br 0x32d0 // 32d0 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 32ee: 3110 movi r1, 16 + 32f0: 106c lrw r3, 0xfff10000 // 3320 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32f2: 2b00 subi r3, 1 + 32f4: 07ee br 0x32d0 // 32d0 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 32f6: 3114 movi r1, 20 + 32f8: 106b lrw r3, 0xff100000 // 3324 + 32fa: 07fc br 0x32f2 // 32f2 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32fc: 33f1 movi r3, 241 + 32fe: 3118 movi r1, 24 + 3300: 4378 lsli r3, r3, 24 + 3302: 07f8 br 0x32f2 // 32f2 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 3304: 311c movi r1, 28 + 3306: 1069 lrw r3, 0xfffffff // 3328 + 3308: 07e4 br 0x32d0 // 32d0 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 330a: 3300 movi r3, 0 + 330c: 3100 movi r1, 0 + 330e: 2b0f subi r3, 16 + 3310: 07e0 br 0x32d0 // 32d0 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 3316: 0000 bkpt + 3318: fffff0ff .long 0xfffff0ff + 331c: ffff0fff .long 0xffff0fff + 3320: fff10000 .long 0xfff10000 + 3324: ff100000 .long 0xff100000 + 3328: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000332c : +//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)); + 332c: 4121 lsli r1, r1, 1 + 332e: 3203 movi r2, 3 + 3330: 9068 ld.w r3, (r0, 0x20) + 3332: 7084 lsl r2, r1 + 3334: 68c9 andn r3, r2 + 3336: 3201 movi r2, 1 + 3338: 7084 lsl r2, r1 + 333a: 6cc8 or r3, r2 + 333c: b068 st.w r3, (r0, 0x20) +} + 333e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00003340 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 3340: 4121 lsli r1, r1, 1 + 3342: 3301 movi r3, 1 + 3344: 9049 ld.w r2, (r0, 0x24) + 3346: 70c4 lsl r3, r1 + 3348: 6cc8 or r3, r2 + 334a: b069 st.w r3, (r0, 0x24) +} + 334c: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +0000334e : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 335e: 9045 ld.w r2, (r0, 0x14) + 3360: 3301 movi r3, 1 + 3362: 7085 lsr r2, r1 + 3364: 688c and r2, r3 + { + if (dat==1) + 3366: 3a40 cmpnei r2, 0 + 3368: 70c4 lsl r3, r1 + 336a: 0c03 bf 0x3370 // 3370 + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00003374 : +/*************************************************************/ +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); + 3394: 1064 lrw r3, 0x20000014 // 33a4 + 3396: 9340 ld.w r2, (r3, 0x0) + 3398: 9261 ld.w r3, (r2, 0x4) + 339a: 3bac bseti r3, 12 + 339c: 3bae bseti r3, 14 + 339e: b261 st.w r3, (r2, 0x4) +} + 33a0: 783c jmp r15 + 33a2: 0000 bkpt + 33a4: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000033a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 33a8: 1063 lrw r3, 0x20000010 // 33b4 + 33aa: 9360 ld.w r3, (r3, 0x0) + 33ac: 9340 ld.w r2, (r3, 0x0) + 33ae: 6c08 or r0, r2 + 33b0: b300 st.w r0, (r3, 0x0) +} + 33b2: 783c jmp r15 + 33b4: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000033b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 33b8: 3300 movi r3, 0 + 33ba: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 33bc: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 33be: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 33c0: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 33c2: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 33c4: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 33c6: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 33c8: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 33ca: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 33cc: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 33ce: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 33d0: b06d st.w r3, (r0, 0x34) +} + 33d2: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000033d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 33d4: 9060 ld.w r3, (r0, 0x0) + 33d6: 3ba0 bseti r3, 0 + 33d8: b060 st.w r3, (r0, 0x0) +} + 33da: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000033dc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 33dc: 9060 ld.w r3, (r0, 0x0) + 33de: 3bac bseti r3, 12 + 33e0: 3bae bseti r3, 14 + 33e2: b060 st.w r3, (r0, 0x0) +} + 33e4: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000033e6 : +//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) +{ + 33e6: 14c3 push r4-r6 + 33e8: 98a4 ld.w r5, (r14, 0x10) + 33ea: 6d97 mov r6, r5 + 33ec: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 33ee: 6d18 or r4, r6 + 33f0: 6cd0 or r3, r4 + 33f2: 90a1 ld.w r5, (r0, 0x4) + 33f4: 6c4c or r1, r3 + 33f6: 6c54 or r1, r5 + 33f8: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 33fa: b042 st.w r2, (r0, 0x8) +} + 33fc: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000033fe : +//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) +{ + 33fe: 14c4 push r4-r7 + 3400: 1421 subi r14, r14, 4 + 3402: 9885 ld.w r4, (r14, 0x14) + 3404: 6dd3 mov r7, r4 + 3406: 9886 ld.w r4, (r14, 0x18) + 3408: b880 st.w r4, (r14, 0x0) + 340a: 9887 ld.w r4, (r14, 0x1c) + 340c: 6d93 mov r6, r4 + 340e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 3410: 6d58 or r5, r6 + 3412: 98c0 ld.w r6, (r14, 0x0) + 3414: 6d58 or r5, r6 + 3416: 6d5c or r5, r7 + 3418: 6cd4 or r3, r5 + 341a: 6c8c or r2, r3 + 341c: 9081 ld.w r4, (r0, 0x4) + 341e: 6c48 or r1, r2 + 3420: 6d04 or r4, r1 + 3422: 6d9f mov r6, r7 + 3424: b081 st.w r4, (r0, 0x4) +} + 3426: 1401 addi r14, r14, 4 + 3428: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000342a : +//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; + 342a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 342c: b044 st.w r2, (r0, 0x10) +} + 342e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00003430 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 3430: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 3432: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 3434: 0c04 bf 0x343c // 343c + BTx->IMCR |= BT_IMSCR_X; + 3436: 6c8c or r2, r3 + 3438: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 343a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 343c: 68c9 andn r3, r2 + 343e: b06b st.w r3, (r0, 0x2c) +} + 3440: 07fd br 0x343a // 343a + +Disassembly of section .text.BT1_INT_ENABLE: + +00003444 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 3444: 3380 movi r3, 128 + 3446: 4376 lsli r3, r3, 22 + 3448: 1042 lrw r2, 0xe000e100 // 3450 + 344a: b260 st.w r3, (r2, 0x0) +} + 344c: 783c jmp r15 + 344e: 0000 bkpt + 3450: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +00003454 : +//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) + 3454: 3840 cmpnei r0, 0 + 3456: 080a bt 0x346a // 346a + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 3458: 1165 lrw r3, 0x20000048 // 34ec + 345a: 31f0 movi r1, 240 + 345c: 9340 ld.w r2, (r3, 0x0) + 345e: 9260 ld.w r3, (r2, 0x0) + 3460: 68c5 andn r3, r1 + 3462: 3ba4 bseti r3, 4 + 3464: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 3466: b260 st.w r3, (r2, 0x0) + } +} + 3468: 040b br 0x347e // 347e + if(IONAME==GPT_CHA_PA09) + 346a: 3841 cmpnei r0, 1 + 346c: 080a bt 0x3480 // 3480 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 346e: 1161 lrw r3, 0x2000004c // 34f0 + 3470: 31f0 movi r1, 240 + 3472: 9340 ld.w r2, (r3, 0x0) + 3474: 9261 ld.w r3, (r2, 0x4) + 3476: 68c5 andn r3, r1 + 3478: 3ba4 bseti r3, 4 + 347a: 3ba6 bseti r3, 6 + 347c: b261 st.w r3, (r2, 0x4) +} + 347e: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 3480: 3842 cmpnei r0, 2 + 3482: 080b bt 0x3498 // 3498 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 3484: 107b lrw r3, 0x2000004c // 34f0 + 3486: 32f0 movi r2, 240 + 3488: 9320 ld.w r1, (r3, 0x0) + 348a: 9161 ld.w r3, (r1, 0x4) + 348c: 4244 lsli r2, r2, 4 + 348e: 68c9 andn r3, r2 + 3490: 3ba9 bseti r3, 9 + 3492: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 3494: b161 st.w r3, (r1, 0x4) + 3496: 07f4 br 0x347e // 347e + if(IONAME==GPT_CHB_PA010) + 3498: 3843 cmpnei r0, 3 + 349a: 080b bt 0x34b0 // 34b0 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 349c: 1075 lrw r3, 0x2000004c // 34f0 + 349e: 32f0 movi r2, 240 + 34a0: 9320 ld.w r1, (r3, 0x0) + 34a2: 4244 lsli r2, r2, 4 + 34a4: 9161 ld.w r3, (r1, 0x4) + 34a6: 68c9 andn r3, r2 + 34a8: 32e0 movi r2, 224 + 34aa: 4243 lsli r2, r2, 3 + 34ac: 6cc8 or r3, r2 + 34ae: 07f3 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PA011) + 34b0: 3844 cmpnei r0, 4 + 34b2: 080a bt 0x34c6 // 34c6 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 34b4: 106f lrw r3, 0x2000004c // 34f0 + 34b6: 32f0 movi r2, 240 + 34b8: 9320 ld.w r1, (r3, 0x0) + 34ba: 9161 ld.w r3, (r1, 0x4) + 34bc: 4248 lsli r2, r2, 8 + 34be: 68c9 andn r3, r2 + 34c0: 3bad bseti r3, 13 + 34c2: 3bae bseti r3, 14 + 34c4: 07e8 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PB00) + 34c6: 3845 cmpnei r0, 5 + 34c8: 0808 bt 0x34d8 // 34d8 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 34ca: 1069 lrw r3, 0x20000048 // 34ec + 34cc: 310f movi r1, 15 + 34ce: 9340 ld.w r2, (r3, 0x0) + 34d0: 9260 ld.w r3, (r2, 0x0) + 34d2: 68c5 andn r3, r1 + 34d4: 3ba2 bseti r3, 2 + 34d6: 07c8 br 0x3466 // 3466 + if(IONAME==GPT_CHB_PB01) + 34d8: 3846 cmpnei r0, 6 + 34da: 0bd2 bt 0x347e // 347e + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 34dc: 1064 lrw r3, 0x20000048 // 34ec + 34de: 31f0 movi r1, 240 + 34e0: 9340 ld.w r2, (r3, 0x0) + 34e2: 9260 ld.w r3, (r2, 0x0) + 34e4: 68c5 andn r3, r1 + 34e6: 3ba5 bseti r3, 5 + 34e8: 3ba6 bseti r3, 6 + 34ea: 07be br 0x3466 // 3466 + 34ec: 20000048 .long 0x20000048 + 34f0: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +000034f4 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 34f4: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 34f6: 6c48 or r1, r2 + 34f8: 1083 lrw r4, 0x20000024 // 3504 + 34fa: 6c04 or r0, r1 + 34fc: 9480 ld.w r4, (r4, 0x0) + 34fe: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 3500: b462 st.w r3, (r4, 0x8) +} + 3502: 1481 pop r4 + 3504: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +00003508 : +/*************************************************************/ +//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) +{ + 3508: 14c4 push r4-r7 + 350a: 1423 subi r14, r14, 12 + 350c: 9887 ld.w r4, (r14, 0x1c) + 350e: 6dd3 mov r7, r4 + 3510: 9888 ld.w r4, (r14, 0x20) + 3512: b880 st.w r4, (r14, 0x0) + 3514: 9889 ld.w r4, (r14, 0x24) + 3516: b881 st.w r4, (r14, 0x4) + 3518: 988a ld.w r4, (r14, 0x28) + 351a: b882 st.w r4, (r14, 0x8) + 351c: 988b ld.w r4, (r14, 0x2c) + 351e: 6d93 mov r6, r4 + 3520: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 3522: 3cb2 bseti r4, 18 + 3524: 6d18 or r4, r6 + 3526: 98c2 ld.w r6, (r14, 0x8) + 3528: 6d18 or r4, r6 + 352a: 98c1 ld.w r6, (r14, 0x4) + 352c: 6d18 or r4, r6 + 352e: 98c0 ld.w r6, (r14, 0x0) + 3530: 6d18 or r4, r6 + 3532: 6d1c or r4, r7 + 3534: 6cd0 or r3, r4 + 3536: 6c8c or r2, r3 + 3538: 6c48 or r1, r2 + 353a: 10a4 lrw r5, 0x20000024 // 3548 + 353c: 6c04 or r0, r1 + 353e: 95a0 ld.w r5, (r5, 0x0) + 3540: 6d9f mov r6, r7 + 3542: b503 st.w r0, (r5, 0xc) +} + 3544: 1403 addi r14, r14, 12 + 3546: 1484 pop r4-r7 + 3548: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +0000354c : +//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) +{ + 354c: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 354e: 6c8c or r2, r3 + 3550: 6c48 or r1, r2 + 3552: 1083 lrw r4, 0x20000024 // 355c + 3554: 6c04 or r0, r1 + 3556: 9480 ld.w r4, (r4, 0x0) + 3558: b411 st.w r0, (r4, 0x44) +} + 355a: 1481 pop r4 + 355c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +00003560 : +//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) +{ + 3560: 14c4 push r4-r7 + 3562: 1425 subi r14, r14, 20 + 3564: 1c09 addi r4, r14, 36 + 3566: 8480 ld.b r4, (r4, 0x0) + 3568: b880 st.w r4, (r14, 0x0) + 356a: 1c0a addi r4, r14, 40 + 356c: 8480 ld.b r4, (r4, 0x0) + 356e: b881 st.w r4, (r14, 0x4) + 3570: 1c0b addi r4, r14, 44 + 3572: 8480 ld.b r4, (r4, 0x0) + 3574: b882 st.w r4, (r14, 0x8) + 3576: 1c0c addi r4, r14, 48 + 3578: 8480 ld.b r4, (r4, 0x0) + 357a: b883 st.w r4, (r14, 0xc) + 357c: 1c0d addi r4, r14, 52 + 357e: 8480 ld.b r4, (r4, 0x0) + 3580: 1e10 addi r6, r14, 64 + 3582: b884 st.w r4, (r14, 0x10) + 3584: 1d0f addi r5, r14, 60 + 3586: 1c0e addi r4, r14, 56 + 3588: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 358a: 3840 cmpnei r0, 0 +{ + 358c: 1e11 addi r6, r14, 68 + 358e: 8480 ld.b r4, (r4, 0x0) + 3590: 85a0 ld.b r5, (r5, 0x0) + 3592: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 3594: 081f bt 0x35d2 // 35d2 + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 3596: 47f0 lsli r7, r7, 16 + 3598: 46d2 lsli r6, r6, 18 + 359a: 45ae lsli r5, r5, 14 + 359c: 6dd8 or r7, r6 + 359e: 6dd4 or r7, r5 + 35a0: 448c lsli r4, r4, 12 + 35a2: 6dd0 or r7, r4 + 35a4: 9884 ld.w r4, (r14, 0x10) + 35a6: 448a lsli r4, r4, 10 + 35a8: 6dd0 or r7, r4 + 35aa: 9883 ld.w r4, (r14, 0xc) + 35ac: 4488 lsli r4, r4, 8 + 35ae: 98a2 ld.w r5, (r14, 0x8) + 35b0: 6d1c or r4, r7 + 35b2: 45e6 lsli r7, r5, 6 + 35b4: 6d1c or r4, r7 + 35b6: 6c90 or r2, r4 + 35b8: 6cc8 or r3, r2 + 35ba: 9841 ld.w r2, (r14, 0x4) + 35bc: 4244 lsli r2, r2, 4 + 35be: 6cc8 or r3, r2 + 35c0: 6c4c or r1, r3 + 35c2: 9860 ld.w r3, (r14, 0x0) + 35c4: 4362 lsli r3, r3, 2 + 35c6: 1013 lrw r0, 0x20000024 // 3610 + 35c8: 6c4c or r1, r3 + 35ca: 9000 ld.w r0, (r0, 0x0) + 35cc: 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); + } +} + 35ce: 1405 addi r14, r14, 20 + 35d0: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 35d2: 3841 cmpnei r0, 1 + 35d4: 0bfd bt 0x35ce // 35ce + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 35d6: 47f0 lsli r7, r7, 16 + 35d8: 46d2 lsli r6, r6, 18 + 35da: 45ae lsli r5, r5, 14 + 35dc: 6dd8 or r7, r6 + 35de: 6dd4 or r7, r5 + 35e0: 448c lsli r4, r4, 12 + 35e2: 6dd0 or r7, r4 + 35e4: 9884 ld.w r4, (r14, 0x10) + 35e6: 448a lsli r4, r4, 10 + 35e8: 6dd0 or r7, r4 + 35ea: 9883 ld.w r4, (r14, 0xc) + 35ec: 4488 lsli r4, r4, 8 + 35ee: 98a2 ld.w r5, (r14, 0x8) + 35f0: 6d1c or r4, r7 + 35f2: 45e6 lsli r7, r5, 6 + 35f4: 6d1c or r4, r7 + 35f6: 6c90 or r2, r4 + 35f8: 6cc8 or r3, r2 + 35fa: 9841 ld.w r2, (r14, 0x4) + 35fc: 4244 lsli r2, r2, 4 + 35fe: 6cc8 or r3, r2 + 3600: 6c4c or r1, r3 + 3602: 9860 ld.w r3, (r14, 0x0) + 3604: 4362 lsli r3, r3, 2 + 3606: 1003 lrw r0, 0x20000024 // 3610 + 3608: 6c4c or r1, r3 + 360a: 9000 ld.w r0, (r0, 0x0) + 360c: b033 st.w r1, (r0, 0x4c) +} + 360e: 07e0 br 0x35ce // 35ce + 3610: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +00003614 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 3614: 1063 lrw r3, 0x20000024 // 3620 + 3616: 9340 ld.w r2, (r3, 0x0) + 3618: 9261 ld.w r3, (r2, 0x4) + 361a: 3ba0 bseti r3, 0 + 361c: b261 st.w r3, (r2, 0x4) +} + 361e: 783c jmp r15 + 3620: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +00003624 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 3624: 1063 lrw r3, 0x20000024 // 3630 + 3626: 9360 ld.w r3, (r3, 0x0) + 3628: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 362a: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 362c: b34c st.w r2, (r3, 0x30) +} + 362e: 783c jmp r15 + 3630: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +00003634 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 3634: 1066 lrw r3, 0x20000024 // 364c + if (NewState != DISABLE) + 3636: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 3638: 9360 ld.w r3, (r3, 0x0) + 363a: 237f addi r3, 128 + 363c: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 363e: 0c04 bf 0x3646 // 3646 + GPT0->IMCR |= GPT_IMSCR_X; + 3640: 6c48 or r1, r2 + 3642: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 3644: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 3646: 6885 andn r2, r1 + 3648: b356 st.w r2, (r3, 0x58) +} + 364a: 07fd br 0x3644 // 3644 + 364c: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +00003650 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 3650: 1065 lrw r3, 0x20000040 // 3664 + 3652: 3200 movi r2, 0 + 3654: 9360 ld.w r3, (r3, 0x0) + 3656: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 3658: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 365a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 365c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 365e: b344 st.w r2, (r3, 0x10) +} + 3660: 783c jmp r15 + 3662: 0000 bkpt + 3664: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00003668 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 3668: 1065 lrw r3, 0x2000003c // 367c + 366a: 3200 movi r2, 0 + 366c: 9360 ld.w r3, (r3, 0x0) + 366e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 3670: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 3672: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 3674: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 3676: b344 st.w r2, (r3, 0x10) +} + 3678: 783c jmp r15 + 367a: 0000 bkpt + 367c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00003680 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 3680: 1065 lrw r3, 0x20000038 // 3694 + 3682: 3200 movi r2, 0 + 3684: 9360 ld.w r3, (r3, 0x0) + 3686: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 3688: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 368a: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 368c: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 368e: b344 st.w r2, (r3, 0x10) +} + 3690: 783c jmp r15 + 3692: 0000 bkpt + 3694: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00003698 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 3698: 1065 lrw r3, 0x20000040 // 36ac + 369a: 320f movi r2, 15 + 369c: 9360 ld.w r3, (r3, 0x0) + 369e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36a0: 3380 movi r3, 128 + 36a2: 4366 lsli r3, r3, 6 + 36a4: 1043 lrw r2, 0xe000e100 // 36b0 + 36a6: b260 st.w r3, (r2, 0x0) +} + 36a8: 783c jmp r15 + 36aa: 0000 bkpt + 36ac: 20000040 .long 0x20000040 + 36b0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000036b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 36b4: 1065 lrw r3, 0x20000038 // 36c8 + 36b6: 320f movi r2, 15 + 36b8: 9360 ld.w r3, (r3, 0x0) + 36ba: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36bc: 3380 movi r3, 128 + 36be: 4368 lsli r3, r3, 8 + 36c0: 1043 lrw r2, 0xe000e100 // 36cc + 36c2: b260 st.w r3, (r2, 0x0) +} + 36c4: 783c jmp r15 + 36c6: 0000 bkpt + 36c8: 20000038 .long 0x20000038 + 36cc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +000036d0 : +//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) + 36d0: 3840 cmpnei r0, 0 + 36d2: 0821 bt 0x3714 // 3714 + { + if(UART_IO_G==0) + 36d4: 3940 cmpnei r1, 0 + 36d6: 080a bt 0x36ea // 36ea + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 36d8: 1177 lrw r3, 0x2000004c // 37b4 + 36da: 31ff movi r1, 255 + 36dc: 9340 ld.w r2, (r3, 0x0) + 36de: 9260 ld.w r3, (r2, 0x0) + 36e0: 68c5 andn r3, r1 + 36e2: 3ba2 bseti r3, 2 + 36e4: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 36e6: b260 st.w r3, (r2, 0x0) + 36e8: 0415 br 0x3712 // 3712 + else if(UART_IO_G==1) + 36ea: 3941 cmpnei r1, 1 + 36ec: 0813 bt 0x3712 // 3712 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 36ee: 1172 lrw r3, 0x2000004c // 37b4 + 36f0: 31f0 movi r1, 240 + 36f2: 9340 ld.w r2, (r3, 0x0) + 36f4: 9260 ld.w r3, (r2, 0x0) + 36f6: 4130 lsli r1, r1, 16 + 36f8: 68c5 andn r3, r1 + 36fa: 31e0 movi r1, 224 + 36fc: 412f lsli r1, r1, 15 + 36fe: 6cc4 or r3, r1 + 3700: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 3702: 31f0 movi r1, 240 + 3704: 9261 ld.w r3, (r2, 0x4) + 3706: 412c lsli r1, r1, 12 + 3708: 68c5 andn r3, r1 + 370a: 31e0 movi r1, 224 + 370c: 412b lsli r1, r1, 11 + 370e: 6cc4 or r3, r1 + 3710: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 3712: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 3714: 3841 cmpnei r0, 1 + 3716: 082d bt 0x3770 // 3770 + if(UART_IO_G==0) + 3718: 3940 cmpnei r1, 0 + 371a: 0814 bt 0x3742 // 3742 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 371c: 1167 lrw r3, 0x20000048 // 37b8 + 371e: 310f movi r1, 15 + 3720: 9340 ld.w r2, (r3, 0x0) + 3722: 9260 ld.w r3, (r2, 0x0) + 3724: 68c5 andn r3, r1 + 3726: 3107 movi r1, 7 + 3728: 6cc4 or r3, r1 + 372a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 372c: 32f0 movi r2, 240 + 372e: 1162 lrw r3, 0x2000004c // 37b4 + 3730: 4250 lsli r2, r2, 16 + 3732: 9320 ld.w r1, (r3, 0x0) + 3734: 9161 ld.w r3, (r1, 0x4) + 3736: 68c9 andn r3, r2 + 3738: 32e0 movi r2, 224 + 373a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 373c: 6cc8 or r3, r2 + 373e: b161 st.w r3, (r1, 0x4) + 3740: 07e9 br 0x3712 // 3712 + else if(UART_IO_G==1) + 3742: 3941 cmpnei r1, 1 + 3744: 080c bt 0x375c // 375c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 3746: 107c lrw r3, 0x2000004c // 37b4 + 3748: 32ff movi r2, 255 + 374a: 9320 ld.w r1, (r3, 0x0) + 374c: 424c lsli r2, r2, 12 + 374e: 9160 ld.w r3, (r1, 0x0) + 3750: 68c9 andn r3, r2 + 3752: 32ee movi r2, 238 + 3754: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 3756: 6cc8 or r3, r2 + 3758: b160 st.w r3, (r1, 0x0) +} + 375a: 07dc br 0x3712 // 3712 + else if(UART_IO_G==2) + 375c: 3942 cmpnei r1, 2 + 375e: 0bda bt 0x3712 // 3712 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 3760: 1075 lrw r3, 0x2000004c // 37b4 + 3762: 32ee movi r2, 238 + 3764: 9320 ld.w r1, (r3, 0x0) + 3766: 9161 ld.w r3, (r1, 0x4) + 3768: 4368 lsli r3, r3, 8 + 376a: 4b68 lsri r3, r3, 8 + 376c: 4257 lsli r2, r2, 23 + 376e: 07e7 br 0x373c // 373c + if (IO_UART_NUM==IO_UART2) + 3770: 3842 cmpnei r0, 2 + 3772: 0bd0 bt 0x3712 // 3712 + if(UART_IO_G==0) + 3774: 3940 cmpnei r1, 0 + 3776: 0809 bt 0x3788 // 3788 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 3778: 106f lrw r3, 0x2000004c // 37b4 + 377a: 31ff movi r1, 255 + 377c: 9340 ld.w r2, (r3, 0x0) + 377e: 9260 ld.w r3, (r2, 0x0) + 3780: 68c5 andn r3, r1 + 3782: 3177 movi r1, 119 + 3784: 6cc4 or r3, r1 + 3786: 07b0 br 0x36e6 // 36e6 + else if(UART_IO_G==1) + 3788: 3941 cmpnei r1, 1 + 378a: 0809 bt 0x379c // 379c + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 378c: 106a lrw r3, 0x2000004c // 37b4 + 378e: 32ee movi r2, 238 + 3790: 9320 ld.w r1, (r3, 0x0) + 3792: 9160 ld.w r3, (r1, 0x0) + 3794: 4368 lsli r3, r3, 8 + 3796: 4b68 lsri r3, r3, 8 + 3798: 4257 lsli r2, r2, 23 + 379a: 07de br 0x3756 // 3756 + else if(UART_IO_G==2) + 379c: 3942 cmpnei r1, 2 + 379e: 0bba bt 0x3712 // 3712 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 37a0: 1066 lrw r3, 0x20000048 // 37b8 + 37a2: 32ff movi r2, 255 + 37a4: 9320 ld.w r1, (r3, 0x0) + 37a6: 4250 lsli r2, r2, 16 + 37a8: 9160 ld.w r3, (r1, 0x0) + 37aa: 68c9 andn r3, r2 + 37ac: 32cc movi r2, 204 + 37ae: 424f lsli r2, r2, 15 + 37b0: 07d3 br 0x3756 // 3756 + 37b2: 0000 bkpt + 37b4: 2000004c .long 0x2000004c + 37b8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000037bc : +//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); + 37bc: 1063 lrw r3, 0x80003 // 37c8 + 37be: 6c8c or r2, r3 + 37c0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37c2: b024 st.w r1, (r0, 0x10) +} + 37c4: 783c jmp r15 + 37c6: 0000 bkpt + 37c8: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000037cc : +//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); + 37cc: 1063 lrw r3, 0x8000f // 37d8 + 37ce: 6c8c or r2, r3 + 37d0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37d2: b024 st.w r1, (r0, 0x10) +} + 37d4: 783c jmp r15 + 37d6: 0000 bkpt + 37d8: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000037dc : +//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) +{ + 37dc: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37de: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 37e0: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37e2: 5b85 subu r4, r3, r1 + 37e4: 6490 cmphs r4, r2 + 37e6: 0c02 bf 0x37ea // 37ea + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 37e8: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 37ea: 8380 ld.b r4, (r3, 0x0) + 37ec: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 37ee: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 37f0: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 37f2: 3c40 cmpnei r4, 0 + 37f4: 0bfd bt 0x37ee // 37ee + 37f6: 2300 addi r3, 1 + 37f8: 07f5 br 0x37e2 // 37e2 + +Disassembly of section .text.EPT_Stop: + +000037fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 37fc: 1068 lrw r3, 0x20000020 // 381c + 37fe: 3280 movi r2, 128 + 3800: 9360 ld.w r3, (r3, 0x0) + 3802: 608c addu r2, r3 + 3804: 1027 lrw r1, 0xa55ac73a // 3820 + 3806: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 3808: 9341 ld.w r2, (r3, 0x4) + 380a: 31fe movi r1, 254 + 380c: 6884 and r2, r1 + 380e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 3810: 3101 movi r1, 1 + 3812: 9341 ld.w r2, (r3, 0x4) + 3814: 6884 and r2, r1 + 3816: 3a40 cmpnei r2, 0 + 3818: 0bfd bt 0x3812 // 3812 +} + 381a: 783c jmp r15 + 381c: 20000020 .long 0x20000020 + 3820: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +00003824
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 3824: 14d1 push r4, r15 + + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 3826: 1099 lrw r4, 0x20000048 // 3888 + 3828: 3201 movi r2, 1 + 382a: 9400 ld.w r0, (r4, 0x0) + 382c: 3102 movi r1, 2 + 382e: e3fffd0f bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOB0,DET_RF_MODULE_PIN); + 3832: 9400 ld.w r0, (r4, 0x0) + 3834: 3102 movi r1, 2 + 3836: e3fffd7b bsr 0x332c // 332c + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 383a: 3102 movi r1, 2 + 383c: 9400 ld.w r0, (r4, 0x0) + 383e: e3fffd9b bsr 0x3374 // 3374 + 3842: 1093 lrw r4, 0x200000a0 // 388c + last_state = rf_exist; + 3844: a401 st.b r0, (r4, 0x1) + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 3846: a400 st.b r0, (r4, 0x0) + APT32F102_init(); //102 initial + 3848: e00000e8 bsr 0x3a18 // 3a18 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 384c: 1031 lrw r1, 0x5f2c // 3890 + 384e: 3000 movi r0, 0 + 3850: e00006b8 bsr 0x45c0 // 45c0 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 3854: e3fffc6a bsr 0x3128 // 3128 + + //UART2_TASK(); + Detect_WIFI_Task(); + 3858: e0000bd6 bsr 0x5004 // 5004 + +// Detect_SPI_task(); + + BackLight_Task(); + 385c: e0000bba bsr 0x4fd0 // 4fd0 + + if (finish_flag == 1) { + 3860: 8462 ld.b r3, (r4, 0x2) + 3862: 3b41 cmpnei r3, 1 + 3864: 0bf8 bt 0x3854 // 3854 + Card_Read_TasK(); + 3866: e00009c3 bsr 0x4bec // 4bec + + if(rf_exist == 0x01) + 386a: 8460 ld.b r3, (r4, 0x0) + 386c: 3b41 cmpnei r3, 1 + 386e: 0806 bt 0x387a // 387a + { + LogicCtrl_NoRF_Task(); //无RF模块轮询任务 + 3870: e0000b4c bsr 0x4f08 // 4f08 + DM_Led_Task(); + 3874: e0000c12 bsr 0x5098 // 5098 + 3878: 07ee br 0x3854 // 3854 + } + else if(rf_exist == 0x00) + 387a: 3b40 cmpnei r3, 0 + 387c: 0bec bt 0x3854 // 3854 + { + Debounce_Task(); + 387e: e0000a93 bsr 0x4da4 // 4da4 + LogicCtrl_Task(); //带RF模块执行逻辑 + 3882: e0000ac5 bsr 0x4e0c // 4e0c + 3886: 07e7 br 0x3854 // 3854 + 3888: 20000048 .long 0x20000048 + 388c: 200000a0 .long 0x200000a0 + 3890: 00005f2c .long 0x00005f2c + +Disassembly of section .text.delay_nms: + +00003894 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 3894: 14d0 push r15 + 3896: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 3898: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 389a: 3300 movi r3, 0 + j = 50* t; + 389c: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 389e: b862 st.w r3, (r14, 0x8) + j = 50* t; + 38a0: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 38a2: b860 st.w r3, (r14, 0x0) + 38a4: 9840 ld.w r2, (r14, 0x0) + 38a6: 9861 ld.w r3, (r14, 0x4) + 38a8: 64c8 cmphs r2, r3 + 38aa: 0c03 bf 0x38b0 // 38b0 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 38ac: 1403 addi r14, r14, 12 + 38ae: 1490 pop r15 + k++; + 38b0: 9862 ld.w r3, (r14, 0x8) + 38b2: 2300 addi r3, 1 + 38b4: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 38b6: e3fffc39 bsr 0x3128 // 3128 + for ( i = 0; i < j; i++ ) + 38ba: 9860 ld.w r3, (r14, 0x0) + 38bc: 2300 addi r3, 1 + 38be: 07f2 br 0x38a2 // 38a2 + +Disassembly of section .text.GPT0_CONFIG: + +000038c0 : +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + 38c0: 14d0 push r15 + 38c2: 1429 subi r14, r14, 36 + GPT_IO_Init(GPT_CHA_PB01); + 38c4: 3000 movi r0, 0 + 38c6: e3fffdc7 bsr 0x3454 // 3454 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 38ca: 3300 movi r3, 0 + 38cc: 3240 movi r2, 64 + 38ce: 3100 movi r1, 0 + 38d0: 3001 movi r0, 1 + 38d2: e3fffe11 bsr 0x34f4 // 34f4 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 38d6: 3300 movi r3, 0 + 38d8: b865 st.w r3, (r14, 0x14) + 38da: b864 st.w r3, (r14, 0x10) + 38dc: b863 st.w r3, (r14, 0xc) + 38de: b862 st.w r3, (r14, 0x8) + 38e0: b861 st.w r3, (r14, 0x4) + 38e2: b860 st.w r3, (r14, 0x0) + 38e4: 3208 movi r2, 8 + 38e6: 3100 movi r1, 0 + 38e8: 3000 movi r0, 0 + 38ea: e3fffe0f bsr 0x3508 // 3508 + if(rf_exist == 0x01) + 38ee: 1079 lrw r3, 0x200000a0 // 3950 + 38f0: 8360 ld.b r3, (r3, 0x0) + 38f2: 3b41 cmpnei r3, 1 + 38f4: 0827 bt 0x3942 // 3942 + { + GPT_Period_CMP_Write(2000,2000,0); + 38f6: 31fa movi r1, 250 + 38f8: 4123 lsli r1, r1, 3 + 38fa: 3200 movi r2, 0 + 38fc: 6c07 mov r0, r1 + } + else if(rf_exist == 0x00) + { + GPT_Period_CMP_Write(2000,0,0); + 38fe: e3fffe93 bsr 0x3624 // 3624 + } + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 3902: 3320 movi r3, 32 + 3904: 3204 movi r2, 4 + 3906: 3100 movi r1, 0 + 3908: 3001 movi r0, 1 + 390a: e3fffe21 bsr 0x354c // 354c + GPT_WaveOut_Configure(GPT_CHA,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 390e: 3300 movi r3, 0 + 3910: 3201 movi r2, 1 + 3912: b868 st.w r3, (r14, 0x20) + 3914: b867 st.w r3, (r14, 0x1c) + 3916: b866 st.w r3, (r14, 0x18) + 3918: b865 st.w r3, (r14, 0x14) + 391a: b864 st.w r3, (r14, 0x10) + 391c: b863 st.w r3, (r14, 0xc) + 391e: b842 st.w r2, (r14, 0x8) + 3920: b841 st.w r2, (r14, 0x4) + 3922: b860 st.w r3, (r14, 0x0) + 3924: 3200 movi r2, 0 + 3926: 3302 movi r3, 2 + 3928: 3100 movi r1, 0 + 392a: 3000 movi r0, 0 + 392c: e3fffe1a bsr 0x3560 // 3560 + +// GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPB,2,0,0,0,1,1,0,0,0,0); + //GPT_SyncSet_Configure(GPT_SYNCUSR0_EN,GPT_OST_CONTINUOUS,GPT_TXREARM_DIS,GPT_TRGO0SEL_SR0,GPT_TRG10SEL_SR0,GPT_AREARM_DIS); + //GPT_Trigger_Configure(GPT_SRCSEL_TRGUSR0EN,GPT_BLKINV_DIS,GPT_ALIGNMD_PRD,GPT_CROSSMD_DIS,5,5); + //GPT_EVTRG_Configure(GPT_TRGSRC0_PRD,GPT_TRGSRC1_PRD,GPT_ESYN0OE_EN,GPT_ESYN1OE_EN,GPT_CNT0INIT_EN,GPT_CNT1INIT_EN,3,3,3,3); + GPT_Start(); + 3930: e3fffe72 bsr 0x3614 // 3614 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 3934: 3180 movi r1, 128 + 3936: 4129 lsli r1, r1, 9 + 3938: 3001 movi r0, 1 + 393a: e3fffe7d bsr 0x3634 // 3634 +// GPT_INT_ENABLE(); + //INTC_ISER_WRITE(GPT0_INT); + //INTC_IWER_WRITE(GPT0_INT); +} + 393e: 1409 addi r14, r14, 36 + 3940: 1490 pop r15 + else if(rf_exist == 0x00) + 3942: 3b40 cmpnei r3, 0 + 3944: 0bdf bt 0x3902 // 3902 + GPT_Period_CMP_Write(2000,0,0); + 3946: 30fa movi r0, 250 + 3948: 3200 movi r2, 0 + 394a: 3100 movi r1, 0 + 394c: 4003 lsli r0, r0, 3 + 394e: 07d8 br 0x38fe // 38fe + 3950: 200000a0 .long 0x200000a0 + +Disassembly of section .text.BT_CONFIG: + +00003954 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 3954: 14d2 push r4-r5, r15 + 3956: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 3958: 1095 lrw r4, 0x20000008 // 39ac + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 395a: 3500 movi r5, 0 + BT_DeInit(BT1); + 395c: 9400 ld.w r0, (r4, 0x0) + 395e: e3fffd2d bsr 0x33b8 // 33b8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 3962: 9400 ld.w r0, (r4, 0x0) + 3964: b8a1 st.w r5, (r14, 0x4) + 3966: b8a0 st.w r5, (r14, 0x0) + 3968: 3308 movi r3, 8 + 396a: 3200 movi r2, 0 + 396c: 3101 movi r1, 1 + 396e: e3fffd3c bsr 0x33e6 // 33e6 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 3972: 3380 movi r3, 128 + 3974: 4363 lsli r3, r3, 3 + 3976: b861 st.w r3, (r14, 0x4) + 3978: 9400 ld.w r0, (r4, 0x0) + 397a: 3300 movi r3, 0 + 397c: b8a3 st.w r5, (r14, 0xc) + 397e: b8a2 st.w r5, (r14, 0x8) + 3980: b8a0 st.w r5, (r14, 0x0) + 3982: 3200 movi r2, 0 + 3984: 3180 movi r1, 128 + 3986: e3fffd3c bsr 0x33fe // 33fe + BT_Period_CMP_Write(BT1,4780,1); + 398a: 3201 movi r2, 1 + 398c: 1029 lrw r1, 0x12ac // 39b0 + 398e: 9400 ld.w r0, (r4, 0x0) + 3990: e3fffd4d bsr 0x342a // 342a + BT_Start(BT1); + 3994: 9400 ld.w r0, (r4, 0x0) + 3996: e3fffd1f bsr 0x33d4 // 33d4 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 399a: 9400 ld.w r0, (r4, 0x0) + 399c: 3202 movi r2, 2 + 399e: 3101 movi r1, 1 + 39a0: e3fffd48 bsr 0x3430 // 3430 + BT1_INT_ENABLE(); + 39a4: e3fffd50 bsr 0x3444 // 3444 + +} + 39a8: 1404 addi r14, r14, 16 + 39aa: 1492 pop r4-r5, r15 + 39ac: 20000008 .long 0x20000008 + 39b0: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +000039b4 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 39b4: 14d0 push r15 + 39b6: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 39b8: e3fffb04 bsr 0x2fc0 // 2fc0 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 39bc: 3101 movi r1, 1 + 39be: 3001 movi r0, 1 + 39c0: e3fffb26 bsr 0x300c // 300c + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 39c4: 3000 movi r0, 0 + 39c6: e3fffb7f bsr 0x30c4 // 30c4 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 39ca: 3180 movi r1, 128 + 39cc: 3308 movi r3, 8 + 39ce: 3200 movi r2, 0 + 39d0: 4121 lsli r1, r1, 1 + 39d2: 3002 movi r0, 2 + 39d4: e3fffb34 bsr 0x303c // 303c +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 39d8: 3080 movi r0, 128 + 39da: 3118 movi r1, 24 + 39dc: 4002 lsli r0, r0, 2 + 39de: e3fffbaf bsr 0x313c // 313c + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 39e2: 3001 movi r0, 1 + 39e4: e3fffb84 bsr 0x30ec // 30ec + SYSCON_IWDCNT_Reload(); //reload WDT + 39e8: e3fffba0 bsr 0x3128 // 3128 + IWDT_Int_Enable(); + 39ec: e3fffbd2 bsr 0x3190 // 3190 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 39f0: 3340 movi r3, 64 + 39f2: b860 st.w r3, (r14, 0x0) + 39f4: 31c0 movi r1, 192 + 39f6: 3380 movi r3, 128 + 39f8: 4364 lsli r3, r3, 4 + 39fa: 3200 movi r2, 0 + 39fc: 4123 lsli r1, r1, 3 + 39fe: 3000 movi r0, 0 + 3a00: e3fffbaa bsr 0x3154 // 3154 + LVD_Int_Enable(); + 3a04: e3fffbb8 bsr 0x3174 // 3174 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 3a08: e3fffbf2 bsr 0x31ec // 31ec + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 3a0c: 3000 movi r0, 0 + 3a0e: e0000f7b bsr 0x5904 // 5904 + +} + 3a12: 1401 addi r14, r14, 4 + 3a14: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00003a18 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 3a18: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a1a: 1072 lrw r3, 0x2000005c // 3a60 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a1c: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a1e: 9340 ld.w r2, (r3, 0x0) + 3a20: 1071 lrw r3, 0xfffffff // 3a64 + 3a22: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 3a24: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a26: 926c ld.w r3, (r2, 0x30) + 3a28: 68c4 and r3, r1 + 3a2a: 3b40 cmpnei r3, 0 + 3a2c: 0ffd bf 0x3a26 // 3a26 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 3a2e: e3ffffc3 bsr 0x39b4 // 39b4 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 3a32: e0000525 bsr 0x447c // 447c + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 3a36: e3fffbe1 bsr 0x31f8 // 31f8 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 3a3a: 3101 movi r1, 1 + 3a3c: 300f movi r0, 15 + 3a3e: e3fffbef bsr 0x321c // 321c +// Set_INT_Priority(SIO_IRQ,1); //SIO优先级最高 +// + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 3a42: 3102 movi r1, 2 + 3a44: 3019 movi r0, 25 + 3a46: e3fffbeb bsr 0x321c // 321c +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 3a4a: e3ffff85 bsr 0x3954 // 3954 + + GPT0_CONFIG(); + 3a4e: e3ffff39 bsr 0x38c0 // 38c0 + + UARTx_Init(UART_1,NULL); + 3a52: 3100 movi r1, 0 + 3a54: 3001 movi r0, 1 + 3a56: e0000517 bsr 0x4484 // 4484 +// UARTx_Init(UART_2,NULL); + + RC522_Init(); + 3a5a: e0000713 bsr 0x4880 // 4880 +// } +// else if(rf_exist == 0x00) //带无线模块初始化 +// { +// LogicCtrl_Init(); +// } +} + 3a5e: 1490 pop r15 + 3a60: 2000005c .long 0x2000005c + 3a64: 0fffffff .long 0x0fffffff + +Disassembly of section .text.SYSCONIntHandler: + +00003a68 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 3a68: 1460 nie + 3a6a: 1462 ipush + // ISR content ... + nop; + 3a6c: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 3a6e: 117a lrw r3, 0x2000005c // 3b54 + 3a70: 3280 movi r2, 128 + 3a72: 9360 ld.w r3, (r3, 0x0) + 3a74: 60c8 addu r3, r2 + 3a76: 9323 ld.w r1, (r3, 0xc) + 3a78: 3001 movi r0, 1 + 3a7a: 6840 and r1, r0 + 3a7c: 3940 cmpnei r1, 0 + 3a7e: 0c04 bf 0x3a86 // 3a86 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 3a80: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 3a82: 1463 ipop + 3a84: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 3a86: 9323 ld.w r1, (r3, 0xc) + 3a88: 3002 movi r0, 2 + 3a8a: 6840 and r1, r0 + 3a8c: 3940 cmpnei r1, 0 + 3a8e: 0bf9 bt 0x3a80 // 3a80 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 3a90: 9323 ld.w r1, (r3, 0xc) + 3a92: 3008 movi r0, 8 + 3a94: 6840 and r1, r0 + 3a96: 3940 cmpnei r1, 0 + 3a98: 0bf4 bt 0x3a80 // 3a80 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 3a9a: 9323 ld.w r1, (r3, 0xc) + 3a9c: 3010 movi r0, 16 + 3a9e: 6840 and r1, r0 + 3aa0: 3940 cmpnei r1, 0 + 3aa2: 0bef bt 0x3a80 // 3a80 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 3aa4: 9323 ld.w r1, (r3, 0xc) + 3aa6: 6848 and r1, r2 + 3aa8: 3940 cmpnei r1, 0 + 3aaa: 0c03 bf 0x3ab0 // 3ab0 + SYSCON->ICR = CMD_ERR_ST; + 3aac: b341 st.w r2, (r3, 0x4) +} + 3aae: 07ea br 0x3a82 // 3a82 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 3ab0: 3280 movi r2, 128 + 3ab2: 9323 ld.w r1, (r3, 0xc) + 3ab4: 4241 lsli r2, r2, 1 + 3ab6: 6848 and r1, r2 + 3ab8: 3940 cmpnei r1, 0 + 3aba: 0bf9 bt 0x3aac // 3aac + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 3abc: 3280 movi r2, 128 + 3abe: 9323 ld.w r1, (r3, 0xc) + 3ac0: 4242 lsli r2, r2, 2 + 3ac2: 6848 and r1, r2 + 3ac4: 3940 cmpnei r1, 0 + 3ac6: 0bf3 bt 0x3aac // 3aac + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 3ac8: 3280 movi r2, 128 + 3aca: 9323 ld.w r1, (r3, 0xc) + 3acc: 4243 lsli r2, r2, 3 + 3ace: 6848 and r1, r2 + 3ad0: 3940 cmpnei r1, 0 + 3ad2: 0bed bt 0x3aac // 3aac + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 3ad4: 3280 movi r2, 128 + 3ad6: 9323 ld.w r1, (r3, 0xc) + 3ad8: 4244 lsli r2, r2, 4 + 3ada: 6848 and r1, r2 + 3adc: 3940 cmpnei r1, 0 + 3ade: 0c03 bf 0x3ae4 // 3ae4 + nop; + 3ae0: 6c03 mov r0, r0 + 3ae2: 07e5 br 0x3aac // 3aac + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 3ae4: 3280 movi r2, 128 + 3ae6: 9323 ld.w r1, (r3, 0xc) + 3ae8: 4245 lsli r2, r2, 5 + 3aea: 6848 and r1, r2 + 3aec: 3940 cmpnei r1, 0 + 3aee: 0bdf bt 0x3aac // 3aac + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 3af0: 3280 movi r2, 128 + 3af2: 9323 ld.w r1, (r3, 0xc) + 3af4: 4246 lsli r2, r2, 6 + 3af6: 6848 and r1, r2 + 3af8: 3940 cmpnei r1, 0 + 3afa: 0bd9 bt 0x3aac // 3aac + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 3afc: 3280 movi r2, 128 + 3afe: 9323 ld.w r1, (r3, 0xc) + 3b00: 4247 lsli r2, r2, 7 + 3b02: 6848 and r1, r2 + 3b04: 3940 cmpnei r1, 0 + 3b06: 0bd3 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 3b08: 3280 movi r2, 128 + 3b0a: 9323 ld.w r1, (r3, 0xc) + 3b0c: 424b lsli r2, r2, 11 + 3b0e: 6848 and r1, r2 + 3b10: 3940 cmpnei r1, 0 + 3b12: 0bcd bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 3b14: 3280 movi r2, 128 + 3b16: 9323 ld.w r1, (r3, 0xc) + 3b18: 424c lsli r2, r2, 12 + 3b1a: 6848 and r1, r2 + 3b1c: 3940 cmpnei r1, 0 + 3b1e: 0bc7 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3b20: 3280 movi r2, 128 + 3b22: 9323 ld.w r1, (r3, 0xc) + 3b24: 424d lsli r2, r2, 13 + 3b26: 6848 and r1, r2 + 3b28: 3940 cmpnei r1, 0 + 3b2a: 0bc1 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 3b2c: 3280 movi r2, 128 + 3b2e: 9323 ld.w r1, (r3, 0xc) + 3b30: 424e lsli r2, r2, 14 + 3b32: 6848 and r1, r2 + 3b34: 3940 cmpnei r1, 0 + 3b36: 0bbb bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 3b38: 3280 movi r2, 128 + 3b3a: 9323 ld.w r1, (r3, 0xc) + 3b3c: 424f lsli r2, r2, 15 + 3b3e: 6848 and r1, r2 + 3b40: 3940 cmpnei r1, 0 + 3b42: 0bb5 bt 0x3aac // 3aac + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3b44: 3280 movi r2, 128 + 3b46: 9323 ld.w r1, (r3, 0xc) + 3b48: 4256 lsli r2, r2, 22 + 3b4a: 6848 and r1, r2 + 3b4c: 3940 cmpnei r1, 0 + 3b4e: 0baf bt 0x3aac // 3aac + 3b50: 0799 br 0x3a82 // 3a82 + 3b52: 0000 bkpt + 3b54: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00003b58 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 3b58: 1460 nie + 3b5a: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 3b5c: 1078 lrw r3, 0x20000060 // 3bbc + 3b5e: 3101 movi r1, 1 + 3b60: 9360 ld.w r3, (r3, 0x0) + 3b62: 934b ld.w r2, (r3, 0x2c) + 3b64: 6884 and r2, r1 + 3b66: 3a40 cmpnei r2, 0 + 3b68: 0c04 bf 0x3b70 // 3b70 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 3b6a: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 3b6c: 1463 ipop + 3b6e: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 3b70: 934b ld.w r2, (r3, 0x2c) + 3b72: 3102 movi r1, 2 + 3b74: 6884 and r2, r1 + 3b76: 3a40 cmpnei r2, 0 + 3b78: 0bf9 bt 0x3b6a // 3b6a + else if(IFC->MISR&PEP_END_INT) + 3b7a: 934b ld.w r2, (r3, 0x2c) + 3b7c: 3104 movi r1, 4 + 3b7e: 6884 and r2, r1 + 3b80: 3a40 cmpnei r2, 0 + 3b82: 0bf4 bt 0x3b6a // 3b6a + else if(IFC->MISR&PROT_ERR_INT) + 3b84: 3280 movi r2, 128 + 3b86: 932b ld.w r1, (r3, 0x2c) + 3b88: 4245 lsli r2, r2, 5 + 3b8a: 6848 and r1, r2 + 3b8c: 3940 cmpnei r1, 0 + 3b8e: 0c03 bf 0x3b94 // 3b94 + IFC->ICR=OVW_ERR_INT; + 3b90: b34c st.w r2, (r3, 0x30) +} + 3b92: 07ed br 0x3b6c // 3b6c + else if(IFC->MISR&UDEF_ERR_INT) + 3b94: 3280 movi r2, 128 + 3b96: 932b ld.w r1, (r3, 0x2c) + 3b98: 4246 lsli r2, r2, 6 + 3b9a: 6848 and r1, r2 + 3b9c: 3940 cmpnei r1, 0 + 3b9e: 0bf9 bt 0x3b90 // 3b90 + else if(IFC->MISR&ADDR_ERR_INT) + 3ba0: 3280 movi r2, 128 + 3ba2: 932b ld.w r1, (r3, 0x2c) + 3ba4: 4247 lsli r2, r2, 7 + 3ba6: 6848 and r1, r2 + 3ba8: 3940 cmpnei r1, 0 + 3baa: 0bf3 bt 0x3b90 // 3b90 + else if(IFC->MISR&OVW_ERR_INT) + 3bac: 3280 movi r2, 128 + 3bae: 932b ld.w r1, (r3, 0x2c) + 3bb0: 4248 lsli r2, r2, 8 + 3bb2: 6848 and r1, r2 + 3bb4: 3940 cmpnei r1, 0 + 3bb6: 0bed bt 0x3b90 // 3b90 + 3bb8: 07da br 0x3b6c // 3b6c + 3bba: 0000 bkpt + 3bbc: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003bc0 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3bc0: 1460 nie + 3bc2: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3bc4: 1078 lrw r3, 0x20000050 // 3c24 + 3bc6: 3101 movi r1, 1 + 3bc8: 9360 ld.w r3, (r3, 0x0) + 3bca: 9348 ld.w r2, (r3, 0x20) + 3bcc: 6884 and r2, r1 + 3bce: 3a40 cmpnei r2, 0 + 3bd0: 0c04 bf 0x3bd8 // 3bd8 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3bd2: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 3bd4: 1463 ipop + 3bd6: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 3bd8: 9348 ld.w r2, (r3, 0x20) + 3bda: 3102 movi r1, 2 + 3bdc: 6884 and r2, r1 + 3bde: 3a40 cmpnei r2, 0 + 3be0: 0bf9 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3be2: 9348 ld.w r2, (r3, 0x20) + 3be4: 3104 movi r1, 4 + 3be6: 6884 and r2, r1 + 3be8: 3a40 cmpnei r2, 0 + 3bea: 0bf4 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3bec: 9348 ld.w r2, (r3, 0x20) + 3bee: 3110 movi r1, 16 + 3bf0: 6884 and r2, r1 + 3bf2: 3a40 cmpnei r2, 0 + 3bf4: 0bef bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 3bf6: 9348 ld.w r2, (r3, 0x20) + 3bf8: 3120 movi r1, 32 + 3bfa: 6884 and r2, r1 + 3bfc: 3a40 cmpnei r2, 0 + 3bfe: 0bea bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3c00: 9348 ld.w r2, (r3, 0x20) + 3c02: 3140 movi r1, 64 + 3c04: 6884 and r2, r1 + 3c06: 3a40 cmpnei r2, 0 + 3c08: 0be5 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 3c0a: 9348 ld.w r2, (r3, 0x20) + 3c0c: 3180 movi r1, 128 + 3c0e: 6884 and r2, r1 + 3c10: 3a40 cmpnei r2, 0 + 3c12: 0be0 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 3c14: 3280 movi r2, 128 + 3c16: 9328 ld.w r1, (r3, 0x20) + 3c18: 4249 lsli r2, r2, 9 + 3c1a: 6848 and r1, r2 + 3c1c: 3940 cmpnei r1, 0 + 3c1e: 0fdb bf 0x3bd4 // 3bd4 + ADC0->CSR = ADC12_SEQ_END0; + 3c20: b347 st.w r2, (r3, 0x1c) +} + 3c22: 07d9 br 0x3bd4 // 3bd4 + 3c24: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003c28 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3c28: 1460 nie + 3c2a: 1462 ipush + 3c2c: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3c2e: 1387 lrw r4, 0x20000020 // 3dc8 + 3c30: 3280 movi r2, 128 + 3c32: 9460 ld.w r3, (r4, 0x0) + 3c34: 60c8 addu r3, r2 + 3c36: 9335 ld.w r1, (r3, 0x54) + 3c38: 3001 movi r0, 1 + 3c3a: 6840 and r1, r0 + 3c3c: 3940 cmpnei r1, 0 + 3c3e: 0c03 bf 0x3c44 // 3c44 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 3c40: b317 st.w r0, (r3, 0x5c) + 3c42: 0424 br 0x3c8a // 3c8a + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3c44: 9335 ld.w r1, (r3, 0x54) + 3c46: 3002 movi r0, 2 + 3c48: 6840 and r1, r0 + 3c4a: 3940 cmpnei r1, 0 + 3c4c: 0bfa bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3c4e: 9335 ld.w r1, (r3, 0x54) + 3c50: 3004 movi r0, 4 + 3c52: 6840 and r1, r0 + 3c54: 3940 cmpnei r1, 0 + 3c56: 0bf5 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3c58: 9335 ld.w r1, (r3, 0x54) + 3c5a: 3008 movi r0, 8 + 3c5c: 6840 and r1, r0 + 3c5e: 3940 cmpnei r1, 0 + 3c60: 0bf0 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3c62: 9335 ld.w r1, (r3, 0x54) + 3c64: 3010 movi r0, 16 + 3c66: 6840 and r1, r0 + 3c68: 3940 cmpnei r1, 0 + 3c6a: 0c1f bf 0x3ca8 // 3ca8 + EPT0->ICR=EPT_CAP_LD0; + 3c6c: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3c6e: 3200 movi r2, 0 + 3c70: 3101 movi r1, 1 + 3c72: 3000 movi r0, 0 + 3c74: e3fffa9c bsr 0x31ac // 31ac + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 3c78: 3201 movi r2, 1 + 3c7a: 3101 movi r1, 1 + 3c7c: 3001 movi r0, 1 + 3c7e: e3fffa97 bsr 0x31ac // 31ac + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3c82: 9460 ld.w r3, (r4, 0x0) + 3c84: 934b ld.w r2, (r3, 0x2c) + 3c86: 1272 lrw r3, 0x20000374 // 3dcc + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3c88: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 3c8a: 9460 ld.w r3, (r4, 0x0) + 3c8c: 3280 movi r2, 128 + 3c8e: 60c8 addu r3, r2 + 3c90: 932b ld.w r1, (r3, 0x2c) + 3c92: 3001 movi r0, 1 + 3c94: 6840 and r1, r0 + 3c96: 3940 cmpnei r1, 0 + 3c98: 0c61 bf 0x3d5a // 3d5a + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 3c9a: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 3c9c: d9ee2001 ld.w r15, (r14, 0x4) + 3ca0: 9880 ld.w r4, (r14, 0x0) + 3ca2: 1402 addi r14, r14, 8 + 3ca4: 1463 ipop + 3ca6: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 3ca8: 9335 ld.w r1, (r3, 0x54) + 3caa: 3020 movi r0, 32 + 3cac: 6840 and r1, r0 + 3cae: 3940 cmpnei r1, 0 + 3cb0: 0c10 bf 0x3cd0 // 3cd0 + EPT0->ICR=EPT_CAP_LD1; + 3cb2: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3cb4: 3200 movi r2, 0 + 3cb6: 3101 movi r1, 1 + 3cb8: 3001 movi r0, 1 + 3cba: e3fffa79 bsr 0x31ac // 31ac + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3cbe: 3201 movi r2, 1 + 3cc0: 3101 movi r1, 1 + 3cc2: 3000 movi r0, 0 + 3cc4: e3fffa74 bsr 0x31ac // 31ac + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3cc8: 9460 ld.w r3, (r4, 0x0) + 3cca: 934c ld.w r2, (r3, 0x30) + 3ccc: 1261 lrw r3, 0x20000370 // 3dd0 + 3cce: 07dd br 0x3c88 // 3c88 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3cd0: 9335 ld.w r1, (r3, 0x54) + 3cd2: 3040 movi r0, 64 + 3cd4: 6840 and r1, r0 + 3cd6: 3940 cmpnei r1, 0 + 3cd8: 0bb4 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 3cda: 9335 ld.w r1, (r3, 0x54) + 3cdc: 6848 and r1, r2 + 3cde: 3940 cmpnei r1, 0 + 3ce0: 0c03 bf 0x3ce6 // 3ce6 + EPT0->ICR=EPT_CDD; + 3ce2: b357 st.w r2, (r3, 0x5c) + 3ce4: 07d3 br 0x3c8a // 3c8a + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 3ce6: 3280 movi r2, 128 + 3ce8: 9335 ld.w r1, (r3, 0x54) + 3cea: 4241 lsli r2, r2, 1 + 3cec: 6848 and r1, r2 + 3cee: 3940 cmpnei r1, 0 + 3cf0: 0bf9 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3cf2: 3280 movi r2, 128 + 3cf4: 9335 ld.w r1, (r3, 0x54) + 3cf6: 4242 lsli r2, r2, 2 + 3cf8: 6848 and r1, r2 + 3cfa: 3940 cmpnei r1, 0 + 3cfc: 0bf3 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3cfe: 3280 movi r2, 128 + 3d00: 9335 ld.w r1, (r3, 0x54) + 3d02: 4243 lsli r2, r2, 3 + 3d04: 6848 and r1, r2 + 3d06: 3940 cmpnei r1, 0 + 3d08: 0bed bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 3d0a: 3280 movi r2, 128 + 3d0c: 9335 ld.w r1, (r3, 0x54) + 3d0e: 4244 lsli r2, r2, 4 + 3d10: 6848 and r1, r2 + 3d12: 3940 cmpnei r1, 0 + 3d14: 0be7 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 3d16: 3280 movi r2, 128 + 3d18: 9335 ld.w r1, (r3, 0x54) + 3d1a: 4245 lsli r2, r2, 5 + 3d1c: 6848 and r1, r2 + 3d1e: 3940 cmpnei r1, 0 + 3d20: 0be1 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3d22: 3280 movi r2, 128 + 3d24: 9335 ld.w r1, (r3, 0x54) + 3d26: 4246 lsli r2, r2, 6 + 3d28: 6848 and r1, r2 + 3d2a: 3940 cmpnei r1, 0 + 3d2c: 0bdb bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3d2e: 3280 movi r2, 128 + 3d30: 9335 ld.w r1, (r3, 0x54) + 3d32: 4247 lsli r2, r2, 7 + 3d34: 6848 and r1, r2 + 3d36: 3940 cmpnei r1, 0 + 3d38: 0bd5 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 3d3a: 3280 movi r2, 128 + 3d3c: 9335 ld.w r1, (r3, 0x54) + 3d3e: 4248 lsli r2, r2, 8 + 3d40: 6848 and r1, r2 + 3d42: 3940 cmpnei r1, 0 + 3d44: 0bcf bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 3d46: 3280 movi r2, 128 + 3d48: 9335 ld.w r1, (r3, 0x54) + 3d4a: 4249 lsli r2, r2, 9 + 3d4c: 6848 and r1, r2 + 3d4e: 3940 cmpnei r1, 0 + 3d50: 0f9d bf 0x3c8a // 3c8a + EPT0->ICR=EPT_PEND; + 3d52: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3d54: e3fffd54 bsr 0x37fc // 37fc + 3d58: 0799 br 0x3c8a // 3c8a + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 3d5a: 932b ld.w r1, (r3, 0x2c) + 3d5c: 3002 movi r0, 2 + 3d5e: 6840 and r1, r0 + 3d60: 3940 cmpnei r1, 0 + 3d62: 0b9c bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3d64: 932b ld.w r1, (r3, 0x2c) + 3d66: 3004 movi r0, 4 + 3d68: 6840 and r1, r0 + 3d6a: 3940 cmpnei r1, 0 + 3d6c: 0b97 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3d6e: 932b ld.w r1, (r3, 0x2c) + 3d70: 3008 movi r0, 8 + 3d72: 6840 and r1, r0 + 3d74: 3940 cmpnei r1, 0 + 3d76: 0b92 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 3d78: 932b ld.w r1, (r3, 0x2c) + 3d7a: 3010 movi r0, 16 + 3d7c: 6840 and r1, r0 + 3d7e: 3940 cmpnei r1, 0 + 3d80: 0b8d bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3d82: 932b ld.w r1, (r3, 0x2c) + 3d84: 3020 movi r0, 32 + 3d86: 6840 and r1, r0 + 3d88: 3940 cmpnei r1, 0 + 3d8a: 0b88 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3d8c: 932b ld.w r1, (r3, 0x2c) + 3d8e: 3040 movi r0, 64 + 3d90: 6840 and r1, r0 + 3d92: 3940 cmpnei r1, 0 + 3d94: 0b83 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 3d96: 932b ld.w r1, (r3, 0x2c) + 3d98: 6848 and r1, r2 + 3d9a: 3940 cmpnei r1, 0 + 3d9c: 0c03 bf 0x3da2 // 3da2 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3d9e: b34d st.w r2, (r3, 0x34) +} + 3da0: 077e br 0x3c9c // 3c9c + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3da2: 3280 movi r2, 128 + 3da4: 932b ld.w r1, (r3, 0x2c) + 3da6: 4241 lsli r2, r2, 1 + 3da8: 6848 and r1, r2 + 3daa: 3940 cmpnei r1, 0 + 3dac: 0bf9 bt 0x3d9e // 3d9e + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3dae: 3280 movi r2, 128 + 3db0: 932b ld.w r1, (r3, 0x2c) + 3db2: 4242 lsli r2, r2, 2 + 3db4: 6848 and r1, r2 + 3db6: 3940 cmpnei r1, 0 + 3db8: 0bf3 bt 0x3d9e // 3d9e + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 3dba: 3280 movi r2, 128 + 3dbc: 932b ld.w r1, (r3, 0x2c) + 3dbe: 4243 lsli r2, r2, 3 + 3dc0: 6848 and r1, r2 + 3dc2: 3940 cmpnei r1, 0 + 3dc4: 0bed bt 0x3d9e // 3d9e + 3dc6: 076b br 0x3c9c // 3c9c + 3dc8: 20000020 .long 0x20000020 + 3dcc: 20000374 .long 0x20000374 + 3dd0: 20000370 .long 0x20000370 + +Disassembly of section .text.WWDTHandler: + +00003dd4 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3dd4: 1460 nie + 3dd6: 1462 ipush + 3dd8: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 3dda: 10ab lrw r5, 0x20000010 // 3e04 + 3ddc: 3401 movi r4, 1 + 3dde: 9560 ld.w r3, (r5, 0x0) + 3de0: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3de2: 30ff movi r0, 255 + 3de4: e3fffae2 bsr 0x33a8 // 33a8 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 3de8: 9540 ld.w r2, (r5, 0x0) + 3dea: 9263 ld.w r3, (r2, 0xc) + 3dec: 68d0 and r3, r4 + 3dee: 3b40 cmpnei r3, 0 + 3df0: 0c02 bf 0x3df4 // 3df4 + { + WWDT->ICR = WWDT_EVI; + 3df2: b285 st.w r4, (r2, 0x14) + } +} + 3df4: d9ee2002 ld.w r15, (r14, 0x8) + 3df8: 98a1 ld.w r5, (r14, 0x4) + 3dfa: 9880 ld.w r4, (r14, 0x0) + 3dfc: 1403 addi r14, r14, 12 + 3dfe: 1463 ipop + 3e00: 1461 nir + 3e02: 0000 bkpt + 3e04: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00003e08 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 3e08: 1460 nie + 3e0a: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3e0c: 107e lrw r3, 0x20000024 // 3e84 + 3e0e: 3101 movi r1, 1 + 3e10: 9360 ld.w r3, (r3, 0x0) + 3e12: 237f addi r3, 128 + 3e14: 9355 ld.w r2, (r3, 0x54) + 3e16: 6884 and r2, r1 + 3e18: 3a40 cmpnei r2, 0 + 3e1a: 0c04 bf 0x3e22 // 3e22 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 3e1c: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 3e1e: 1463 ipop + 3e20: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3e22: 9355 ld.w r2, (r3, 0x54) + 3e24: 3102 movi r1, 2 + 3e26: 6884 and r2, r1 + 3e28: 3a40 cmpnei r2, 0 + 3e2a: 0bf9 bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3e2c: 9355 ld.w r2, (r3, 0x54) + 3e2e: 3110 movi r1, 16 + 3e30: 6884 and r2, r1 + 3e32: 3a40 cmpnei r2, 0 + 3e34: 0bf4 bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 3e36: 9355 ld.w r2, (r3, 0x54) + 3e38: 3120 movi r1, 32 + 3e3a: 6884 and r2, r1 + 3e3c: 3a40 cmpnei r2, 0 + 3e3e: 0bef bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3e40: 3280 movi r2, 128 + 3e42: 9335 ld.w r1, (r3, 0x54) + 3e44: 4241 lsli r2, r2, 1 + 3e46: 6848 and r1, r2 + 3e48: 3940 cmpnei r1, 0 + 3e4a: 0c03 bf 0x3e50 // 3e50 + GPT0->ICR = GPT_INT_PEND; + 3e4c: b357 st.w r2, (r3, 0x5c) +} + 3e4e: 07e8 br 0x3e1e // 3e1e + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3e50: 3280 movi r2, 128 + 3e52: 9335 ld.w r1, (r3, 0x54) + 3e54: 4242 lsli r2, r2, 2 + 3e56: 6848 and r1, r2 + 3e58: 3940 cmpnei r1, 0 + 3e5a: 0bf9 bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3e5c: 3280 movi r2, 128 + 3e5e: 9335 ld.w r1, (r3, 0x54) + 3e60: 4243 lsli r2, r2, 3 + 3e62: 6848 and r1, r2 + 3e64: 3940 cmpnei r1, 0 + 3e66: 0bf3 bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 3e68: 3280 movi r2, 128 + 3e6a: 9335 ld.w r1, (r3, 0x54) + 3e6c: 4244 lsli r2, r2, 4 + 3e6e: 6848 and r1, r2 + 3e70: 3940 cmpnei r1, 0 + 3e72: 0bed bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3e74: 3280 movi r2, 128 + 3e76: 9335 ld.w r1, (r3, 0x54) + 3e78: 4249 lsli r2, r2, 9 + 3e7a: 6848 and r1, r2 + 3e7c: 3940 cmpnei r1, 0 + 3e7e: 0be7 bt 0x3e4c // 3e4c + 3e80: 07cf br 0x3e1e // 3e1e + 3e82: 0000 bkpt + 3e84: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00003e88 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 3e88: 1460 nie + 3e8a: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3e8c: 1079 lrw r3, 0x20000018 // 3ef0 + 3e8e: 3101 movi r1, 1 + 3e90: 9360 ld.w r3, (r3, 0x0) + 3e92: 934a ld.w r2, (r3, 0x28) + 3e94: 6884 and r2, r1 + 3e96: 3a40 cmpnei r2, 0 + 3e98: 0c14 bf 0x3ec0 // 3ec0 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 3e9a: 1057 lrw r2, 0xca53 // 3ef4 + RTC->ICR=ALRA_INT; + 3e9c: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3e9e: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3ea0: 9342 ld.w r2, (r3, 0x8) + 3ea2: 6c84 or r2, r1 + 3ea4: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 3ea6: 3280 movi r2, 128 + 3ea8: 424d lsli r2, r2, 13 + 3eaa: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3eac: 3102 movi r1, 2 + 3eae: 9342 ld.w r2, (r3, 0x8) + 3eb0: 6884 and r2, r1 + 3eb2: 3a40 cmpnei r2, 0 + 3eb4: 0bfd bt 0x3eae // 3eae + RTC->CR &= ~0x1; + 3eb6: 9342 ld.w r2, (r3, 0x8) + 3eb8: 3a80 bclri r2, 0 + 3eba: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 3ebc: 1463 ipop + 3ebe: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3ec0: 934a ld.w r2, (r3, 0x28) + 3ec2: 3102 movi r1, 2 + 3ec4: 6884 and r2, r1 + 3ec6: 3a40 cmpnei r2, 0 + 3ec8: 0c03 bf 0x3ece // 3ece + RTC->ICR=RTC_TRGEV1_INT; + 3eca: b32b st.w r1, (r3, 0x2c) +} + 3ecc: 07f8 br 0x3ebc // 3ebc + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3ece: 934a ld.w r2, (r3, 0x28) + 3ed0: 3104 movi r1, 4 + 3ed2: 6884 and r2, r1 + 3ed4: 3a40 cmpnei r2, 0 + 3ed6: 0bfa bt 0x3eca // 3eca + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 3ed8: 934a ld.w r2, (r3, 0x28) + 3eda: 3108 movi r1, 8 + 3edc: 6884 and r2, r1 + 3ede: 3a40 cmpnei r2, 0 + 3ee0: 0bf5 bt 0x3eca // 3eca + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3ee2: 934a ld.w r2, (r3, 0x28) + 3ee4: 3110 movi r1, 16 + 3ee6: 6884 and r2, r1 + 3ee8: 3a40 cmpnei r2, 0 + 3eea: 0bf0 bt 0x3eca // 3eca + 3eec: 07e8 br 0x3ebc // 3ebc + 3eee: 0000 bkpt + 3ef0: 20000018 .long 0x20000018 + 3ef4: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00003ef8 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 3ef8: 1460 nie + 3efa: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3efc: 106d lrw r3, 0x20000040 // 3f30 + 3efe: 3102 movi r1, 2 + 3f00: 9360 ld.w r3, (r3, 0x0) + 3f02: 9343 ld.w r2, (r3, 0xc) + 3f04: 6884 and r2, r1 + 3f06: 3a40 cmpnei r2, 0 + 3f08: 0c03 bf 0x3f0e // 3f0e + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 3f0a: b323 st.w r1, (r3, 0xc) + } +} + 3f0c: 0410 br 0x3f2c // 3f2c + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f0e: 9343 ld.w r2, (r3, 0xc) + 3f10: 3101 movi r1, 1 + 3f12: 6884 and r2, r1 + 3f14: 3a40 cmpnei r2, 0 + 3f16: 0bfa bt 0x3f0a // 3f0a + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f18: 9343 ld.w r2, (r3, 0xc) + 3f1a: 3108 movi r1, 8 + 3f1c: 6884 and r2, r1 + 3f1e: 3a40 cmpnei r2, 0 + 3f20: 0bf5 bt 0x3f0a // 3f0a + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f22: 9343 ld.w r2, (r3, 0xc) + 3f24: 3104 movi r1, 4 + 3f26: 6884 and r2, r1 + 3f28: 3a40 cmpnei r2, 0 + 3f2a: 0bf0 bt 0x3f0a // 3f0a +} + 3f2c: 1463 ipop + 3f2e: 1461 nir + 3f30: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003f34 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3f34: 1460 nie + 3f36: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f38: 106d lrw r3, 0x2000003c // 3f6c + 3f3a: 3102 movi r1, 2 + 3f3c: 9360 ld.w r3, (r3, 0x0) + 3f3e: 9343 ld.w r2, (r3, 0xc) + 3f40: 6884 and r2, r1 + 3f42: 3a40 cmpnei r2, 0 + 3f44: 0c03 bf 0x3f4a // 3f4a + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + 3f46: b323 st.w r1, (r3, 0xc) + } +} + 3f48: 0410 br 0x3f68 // 3f68 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f4a: 9343 ld.w r2, (r3, 0xc) + 3f4c: 3101 movi r1, 1 + 3f4e: 6884 and r2, r1 + 3f50: 3a40 cmpnei r2, 0 + 3f52: 0bfa bt 0x3f46 // 3f46 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f54: 9343 ld.w r2, (r3, 0xc) + 3f56: 3108 movi r1, 8 + 3f58: 6884 and r2, r1 + 3f5a: 3a40 cmpnei r2, 0 + 3f5c: 0bf5 bt 0x3f46 // 3f46 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f5e: 9343 ld.w r2, (r3, 0xc) + 3f60: 3104 movi r1, 4 + 3f62: 6884 and r2, r1 + 3f64: 3a40 cmpnei r2, 0 + 3f66: 0bf0 bt 0x3f46 // 3f46 +} + 3f68: 1463 ipop + 3f6a: 1461 nir + 3f6c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003f70 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3f70: 1460 nie + 3f72: 1462 ipush + 3f74: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f76: 107f lrw r3, 0x20000038 // 3ff0 + 3f78: 3102 movi r1, 2 + 3f7a: 9360 ld.w r3, (r3, 0x0) + 3f7c: 9343 ld.w r2, (r3, 0xc) + 3f7e: 6884 and r2, r1 + 3f80: 3a40 cmpnei r2, 0 + 3f82: 0c0b bf 0x3f98 // 3f98 + { + UART2->ISR=UART_RX_INT_S; + 3f84: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 3f86: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 3f88: 7400 zextb r0, r0 + 3f8a: e00002e9 bsr 0x455c // 455c + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 3f8e: d9ee2000 ld.w r15, (r14, 0x0) + 3f92: 1401 addi r14, r14, 4 + 3f94: 1463 ipop + 3f96: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f98: 9323 ld.w r1, (r3, 0xc) + 3f9a: 3201 movi r2, 1 + 3f9c: 6848 and r1, r2 + 3f9e: 3940 cmpnei r1, 0 + 3fa0: 0c0d bf 0x3fba // 3fba + UART2->ISR=UART_TX_INT_S; + 3fa2: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3fa4: 1074 lrw r3, 0x200000b8 // 3ff4 + 3fa6: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fa8: 1074 lrw r3, 0x200000bc // 3ff8 + 3faa: 9360 ld.w r3, (r3, 0x0) + 3fac: 3b41 cmpnei r3, 1 + 3fae: 0bf0 bt 0x3f8e // 3f8e + RS485_Comm_Start ++; + 3fb0: 1053 lrw r2, 0x200000c0 // 3ffc + RS485_Comm_End ++; + 3fb2: 9260 ld.w r3, (r2, 0x0) + 3fb4: 2300 addi r3, 1 + 3fb6: b260 st.w r3, (r2, 0x0) +} + 3fb8: 07eb br 0x3f8e // 3f8e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3fba: 9343 ld.w r2, (r3, 0xc) + 3fbc: 3108 movi r1, 8 + 3fbe: 6884 and r2, r1 + 3fc0: 3a40 cmpnei r2, 0 + 3fc2: 0c03 bf 0x3fc8 // 3fc8 + UART2->ISR=UART_TX_IOV_S; + 3fc4: b323 st.w r1, (r3, 0xc) + 3fc6: 07e4 br 0x3f8e // 3f8e + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3fc8: 9343 ld.w r2, (r3, 0xc) + 3fca: 3104 movi r1, 4 + 3fcc: 6884 and r2, r1 + 3fce: 3a40 cmpnei r2, 0 + 3fd0: 0bfa bt 0x3fc4 // 3fc4 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3fd2: 3180 movi r1, 128 + 3fd4: 9303 ld.w r0, (r3, 0xc) + 3fd6: 412c lsli r1, r1, 12 + 3fd8: 6804 and r0, r1 + 3fda: 3840 cmpnei r0, 0 + 3fdc: 0fd9 bf 0x3f8e // 3f8e + UART2->ISR=UART_TX_DONE_S; + 3fde: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3fe0: 1065 lrw r3, 0x200000b8 // 3ff4 + 3fe2: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fe4: 1065 lrw r3, 0x200000bc // 3ff8 + 3fe6: 9360 ld.w r3, (r3, 0x0) + 3fe8: 3b41 cmpnei r3, 1 + 3fea: 0bd2 bt 0x3f8e // 3f8e + RS485_Comm_End ++; + 3fec: 1045 lrw r2, 0x200000c4 // 4000 + 3fee: 07e2 br 0x3fb2 // 3fb2 + 3ff0: 20000038 .long 0x20000038 + 3ff4: 200000b8 .long 0x200000b8 + 3ff8: 200000bc .long 0x200000bc + 3ffc: 200000c0 .long 0x200000c0 + 4000: 200000c4 .long 0x200000c4 + +Disassembly of section .text.SPI0IntHandler: + +00004004 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 4004: 1460 nie + 4006: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 4008: 1178 lrw r3, 0x20000034 // 40e8 + 400a: 3101 movi r1, 1 + 400c: 9360 ld.w r3, (r3, 0x0) + 400e: 9347 ld.w r2, (r3, 0x1c) + 4010: 6884 and r2, r1 + 4012: 3a40 cmpnei r2, 0 + 4014: 0c03 bf 0x401a // 401a + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 4016: b328 st.w r1, (r3, 0x20) + } + +} + 4018: 0407 br 0x4026 // 4026 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 401a: 9347 ld.w r2, (r3, 0x1c) + 401c: 3002 movi r0, 2 + 401e: 6880 and r2, r0 + 4020: 3a40 cmpnei r2, 0 + 4022: 0c04 bf 0x402a // 402a + SPI0->ICR = SPI_RTIM; + 4024: b308 st.w r0, (r3, 0x20) +} + 4026: 1463 ipop + 4028: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 402a: 9347 ld.w r2, (r3, 0x1c) + 402c: 3004 movi r0, 4 + 402e: 6880 and r2, r0 + 4030: 3a40 cmpnei r2, 0 + 4032: 0c55 bf 0x40dc // 40dc + SPI0->ICR = SPI_RXIM; + 4034: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 4036: 9302 ld.w r0, (r3, 0x8) + 4038: 32aa movi r2, 170 + 403a: 6482 cmpne r0, r2 + 403c: 083e bt 0x40b8 // 40b8 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 403e: 3102 movi r1, 2 + 4040: 9343 ld.w r2, (r3, 0xc) + 4042: 6884 and r2, r1 + 4044: 3a40 cmpnei r2, 0 + 4046: 0ffd bf 0x4040 // 4040 + SPI0->DR = 0x11; + 4048: 3211 movi r2, 17 + 404a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 404c: 3110 movi r1, 16 + 404e: 9343 ld.w r2, (r3, 0xc) + 4050: 6884 and r2, r1 + 4052: 3a40 cmpnei r2, 0 + 4054: 0bfd bt 0x404e // 404e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4056: 3102 movi r1, 2 + 4058: 9343 ld.w r2, (r3, 0xc) + 405a: 6884 and r2, r1 + 405c: 3a40 cmpnei r2, 0 + 405e: 0ffd bf 0x4058 // 4058 + SPI0->DR = 0x12; + 4060: 3212 movi r2, 18 + 4062: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4064: 3110 movi r1, 16 + 4066: 9343 ld.w r2, (r3, 0xc) + 4068: 6884 and r2, r1 + 406a: 3a40 cmpnei r2, 0 + 406c: 0bfd bt 0x4066 // 4066 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 406e: 3102 movi r1, 2 + 4070: 9343 ld.w r2, (r3, 0xc) + 4072: 6884 and r2, r1 + 4074: 3a40 cmpnei r2, 0 + 4076: 0ffd bf 0x4070 // 4070 + SPI0->DR = 0x13; + 4078: 3213 movi r2, 19 + 407a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 407c: 3110 movi r1, 16 + 407e: 9343 ld.w r2, (r3, 0xc) + 4080: 6884 and r2, r1 + 4082: 3a40 cmpnei r2, 0 + 4084: 0bfd bt 0x407e // 407e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4086: 3102 movi r1, 2 + 4088: 9343 ld.w r2, (r3, 0xc) + 408a: 6884 and r2, r1 + 408c: 3a40 cmpnei r2, 0 + 408e: 0ffd bf 0x4088 // 4088 + SPI0->DR = 0x14; + 4090: 3214 movi r2, 20 + 4092: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4094: 3110 movi r1, 16 + 4096: 9343 ld.w r2, (r3, 0xc) + 4098: 6884 and r2, r1 + 409a: 3a40 cmpnei r2, 0 + 409c: 0bfd bt 0x4096 // 4096 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 409e: 3102 movi r1, 2 + 40a0: 9343 ld.w r2, (r3, 0xc) + 40a2: 6884 and r2, r1 + 40a4: 3a40 cmpnei r2, 0 + 40a6: 0ffd bf 0x40a0 // 40a0 + SPI0->DR = 0x15; + 40a8: 3215 movi r2, 21 + 40aa: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40ac: 3110 movi r1, 16 + 40ae: 9343 ld.w r2, (r3, 0xc) + 40b0: 6884 and r2, r1 + 40b2: 3a40 cmpnei r2, 0 + 40b4: 0bfd bt 0x40ae // 40ae + 40b6: 07b8 br 0x4026 // 4026 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 40b8: 9343 ld.w r2, (r3, 0xc) + 40ba: 6884 and r2, r1 + 40bc: 3a40 cmpnei r2, 0 + 40be: 0bb4 bt 0x4026 // 4026 + SPI0->DR=0x0; //FIFO=0 + 40c0: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40c2: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 40c4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40c6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40c8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40ca: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40cc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40ce: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d0: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40d2: 9343 ld.w r2, (r3, 0xc) + 40d4: 6884 and r2, r1 + 40d6: 3a40 cmpnei r2, 0 + 40d8: 0bfd bt 0x40d2 // 40d2 + 40da: 07a6 br 0x4026 // 4026 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 40dc: 9347 ld.w r2, (r3, 0x1c) + 40de: 3108 movi r1, 8 + 40e0: 6884 and r2, r1 + 40e2: 3a40 cmpnei r2, 0 + 40e4: 0b99 bt 0x4016 // 4016 + 40e6: 07a0 br 0x4026 // 4026 + 40e8: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000040ec : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 40ec: 1460 nie + 40ee: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 40f0: 1073 lrw r3, 0x2000002c // 413c + 40f2: 3104 movi r1, 4 + 40f4: 9360 ld.w r3, (r3, 0x0) + 40f6: 9349 ld.w r2, (r3, 0x24) + 40f8: 6884 and r2, r1 + 40fa: 3a40 cmpnei r2, 0 + 40fc: 0c02 bf 0x4100 // 4100 + { + SIO0->ICR=0X04; + 40fe: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 4100: 9349 ld.w r2, (r3, 0x24) + 4102: 3101 movi r1, 1 + 4104: 6884 and r2, r1 + 4106: 3a40 cmpnei r2, 0 + 4108: 0c02 bf 0x410c // 410c + { + SIO0->ICR=0X01; + 410a: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 410c: 9349 ld.w r2, (r3, 0x24) + 410e: 3102 movi r1, 2 + 4110: 6884 and r2, r1 + 4112: 3a40 cmpnei r2, 0 + 4114: 0c03 bf 0x411a // 411a + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 4116: b32b st.w r1, (r3, 0x2c) + } +} + 4118: 0410 br 0x4138 // 4138 + else if(SIO0->MISR&0X08) //RXBUFFULL + 411a: 9349 ld.w r2, (r3, 0x24) + 411c: 3108 movi r1, 8 + 411e: 6884 and r2, r1 + 4120: 3a40 cmpnei r2, 0 + 4122: 0bfa bt 0x4116 // 4116 + else if(SIO0->MISR&0X010) //BREAK + 4124: 9349 ld.w r2, (r3, 0x24) + 4126: 3110 movi r1, 16 + 4128: 6884 and r2, r1 + 412a: 3a40 cmpnei r2, 0 + 412c: 0bf5 bt 0x4116 // 4116 + else if(SIO0->MISR&0X020) //TIMEOUT + 412e: 9349 ld.w r2, (r3, 0x24) + 4130: 3120 movi r1, 32 + 4132: 6884 and r2, r1 + 4134: 3a40 cmpnei r2, 0 + 4136: 0bf0 bt 0x4116 // 4116 +} + 4138: 1463 ipop + 413a: 1461 nir + 413c: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00004140 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 4140: 1460 nie + 4142: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 4144: 106a lrw r3, 0x2000005c // 416c + 4146: 3101 movi r1, 1 + 4148: 9360 ld.w r3, (r3, 0x0) + 414a: 237f addi r3, 128 + 414c: 934c ld.w r2, (r3, 0x30) + 414e: 6884 and r2, r1 + 4150: 3a40 cmpnei r2, 0 + 4152: 0c04 bf 0x415a // 415a + { + SYSCON->EXICR = EXI_PIN0; + 4154: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 4156: 1463 ipop + 4158: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 415a: 3280 movi r2, 128 + 415c: 932c ld.w r1, (r3, 0x30) + 415e: 4249 lsli r2, r2, 9 + 4160: 6848 and r1, r2 + 4162: 3940 cmpnei r1, 0 + 4164: 0ff9 bf 0x4156 // 4156 + SYSCON->EXICR = EXI_PIN16; + 4166: b34b st.w r2, (r3, 0x2c) +} + 4168: 07f7 br 0x4156 // 4156 + 416a: 0000 bkpt + 416c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00004170 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 4170: 1460 nie + 4172: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 4174: 106a lrw r3, 0x2000005c // 419c + 4176: 3102 movi r1, 2 + 4178: 9360 ld.w r3, (r3, 0x0) + 417a: 237f addi r3, 128 + 417c: 934c ld.w r2, (r3, 0x30) + 417e: 6884 and r2, r1 + 4180: 3a40 cmpnei r2, 0 + 4182: 0c04 bf 0x418a // 418a + { + SYSCON->EXICR = EXI_PIN1; + 4184: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 4186: 1463 ipop + 4188: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 418a: 3280 movi r2, 128 + 418c: 932c ld.w r1, (r3, 0x30) + 418e: 424a lsli r2, r2, 10 + 4190: 6848 and r1, r2 + 4192: 3940 cmpnei r1, 0 + 4194: 0ff9 bf 0x4186 // 4186 + SYSCON->EXICR = EXI_PIN17; + 4196: b34b st.w r2, (r3, 0x2c) +} + 4198: 07f7 br 0x4186 // 4186 + 419a: 0000 bkpt + 419c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000041a0 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 41a0: 1460 nie + 41a2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 41a4: 1070 lrw r3, 0x2000005c // 41e4 + 41a6: 3104 movi r1, 4 + 41a8: 9360 ld.w r3, (r3, 0x0) + 41aa: 237f addi r3, 128 + 41ac: 934c ld.w r2, (r3, 0x30) + 41ae: 6884 and r2, r1 + 41b0: 3a40 cmpnei r2, 0 + 41b2: 0c04 bf 0x41ba // 41ba + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 41b4: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 41b6: 1463 ipop + 41b8: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 41ba: 934c ld.w r2, (r3, 0x30) + 41bc: 3108 movi r1, 8 + 41be: 6884 and r2, r1 + 41c0: 3a40 cmpnei r2, 0 + 41c2: 0bf9 bt 0x41b4 // 41b4 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 41c4: 3280 movi r2, 128 + 41c6: 932c ld.w r1, (r3, 0x30) + 41c8: 424b lsli r2, r2, 11 + 41ca: 6848 and r1, r2 + 41cc: 3940 cmpnei r1, 0 + 41ce: 0c03 bf 0x41d4 // 41d4 + SYSCON->EXICR = EXI_PIN19; + 41d0: b34b st.w r2, (r3, 0x2c) +} + 41d2: 07f2 br 0x41b6 // 41b6 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 41d4: 3280 movi r2, 128 + 41d6: 932c ld.w r1, (r3, 0x30) + 41d8: 424c lsli r2, r2, 12 + 41da: 6848 and r1, r2 + 41dc: 3940 cmpnei r1, 0 + 41de: 0bf9 bt 0x41d0 // 41d0 + 41e0: 07eb br 0x41b6 // 41b6 + 41e2: 0000 bkpt + 41e4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000041e8 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 41e8: 1460 nie + 41ea: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 41ec: 1075 lrw r3, 0x2000005c // 4240 + 41ee: 3280 movi r2, 128 + 41f0: 9360 ld.w r3, (r3, 0x0) + 41f2: 60c8 addu r3, r2 + 41f4: 932c ld.w r1, (r3, 0x30) + 41f6: 3010 movi r0, 16 + 41f8: 6840 and r1, r0 + 41fa: 3940 cmpnei r1, 0 + 41fc: 0c04 bf 0x4204 // 4204 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 41fe: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 4200: 1463 ipop + 4202: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 4204: 932c ld.w r1, (r3, 0x30) + 4206: 3020 movi r0, 32 + 4208: 6840 and r1, r0 + 420a: 3940 cmpnei r1, 0 + 420c: 0bf9 bt 0x41fe // 41fe + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 420e: 932c ld.w r1, (r3, 0x30) + 4210: 3040 movi r0, 64 + 4212: 6840 and r1, r0 + 4214: 3940 cmpnei r1, 0 + 4216: 0bf4 bt 0x41fe // 41fe + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 4218: 932c ld.w r1, (r3, 0x30) + 421a: 6848 and r1, r2 + 421c: 3940 cmpnei r1, 0 + 421e: 0c03 bf 0x4224 // 4224 + SYSCON->EXICR = EXI_PIN9; + 4220: b34b st.w r2, (r3, 0x2c) +} + 4222: 07ef br 0x4200 // 4200 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 4224: 3280 movi r2, 128 + 4226: 932c ld.w r1, (r3, 0x30) + 4228: 4241 lsli r2, r2, 1 + 422a: 6848 and r1, r2 + 422c: 3940 cmpnei r1, 0 + 422e: 0bf9 bt 0x4220 // 4220 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 4230: 3280 movi r2, 128 + 4232: 932c ld.w r1, (r3, 0x30) + 4234: 4242 lsli r2, r2, 2 + 4236: 6848 and r1, r2 + 4238: 3940 cmpnei r1, 0 + 423a: 0bf3 bt 0x4220 // 4220 + 423c: 07e2 br 0x4200 // 4200 + 423e: 0000 bkpt + 4240: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00004244 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 4244: 1460 nie + 4246: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 4248: 1076 lrw r3, 0x2000005c // 42a0 + 424a: 3280 movi r2, 128 + 424c: 9360 ld.w r3, (r3, 0x0) + 424e: 237f addi r3, 128 + 4250: 932c ld.w r1, (r3, 0x30) + 4252: 4243 lsli r2, r2, 3 + 4254: 6848 and r1, r2 + 4256: 3940 cmpnei r1, 0 + 4258: 0c03 bf 0x425e // 425e + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 425a: b34b st.w r2, (r3, 0x2c) + } +} + 425c: 041f br 0x429a // 429a + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 425e: 3280 movi r2, 128 + 4260: 932c ld.w r1, (r3, 0x30) + 4262: 4244 lsli r2, r2, 4 + 4264: 6848 and r1, r2 + 4266: 3940 cmpnei r1, 0 + 4268: 0bf9 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 426a: 3280 movi r2, 128 + 426c: 932c ld.w r1, (r3, 0x30) + 426e: 4245 lsli r2, r2, 5 + 4270: 6848 and r1, r2 + 4272: 3940 cmpnei r1, 0 + 4274: 0bf3 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 4276: 3280 movi r2, 128 + 4278: 932c ld.w r1, (r3, 0x30) + 427a: 4246 lsli r2, r2, 6 + 427c: 6848 and r1, r2 + 427e: 3940 cmpnei r1, 0 + 4280: 0bed bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 4282: 3280 movi r2, 128 + 4284: 932c ld.w r1, (r3, 0x30) + 4286: 4247 lsli r2, r2, 7 + 4288: 6848 and r1, r2 + 428a: 3940 cmpnei r1, 0 + 428c: 0be7 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 428e: 3280 movi r2, 128 + 4290: 932c ld.w r1, (r3, 0x30) + 4292: 4248 lsli r2, r2, 8 + 4294: 6848 and r1, r2 + 4296: 3940 cmpnei r1, 0 + 4298: 0be1 bt 0x425a // 425a +} + 429a: 1463 ipop + 429c: 1461 nir + 429e: 0000 bkpt + 42a0: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000042a4 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 42a4: 1460 nie + 42a6: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 42a8: 106b lrw r3, 0x20000014 // 42d4 + 42aa: 3101 movi r1, 1 + 42ac: 9360 ld.w r3, (r3, 0x0) + 42ae: 934e ld.w r2, (r3, 0x38) + 42b0: 6884 and r2, r1 + 42b2: 3a40 cmpnei r2, 0 + 42b4: 0c03 bf 0x42ba // 42ba + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 42b6: b330 st.w r1, (r3, 0x40) + } +} + 42b8: 040b br 0x42ce // 42ce + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 42ba: 934e ld.w r2, (r3, 0x38) + 42bc: 3102 movi r1, 2 + 42be: 6884 and r2, r1 + 42c0: 3a40 cmpnei r2, 0 + 42c2: 0bfa bt 0x42b6 // 42b6 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 42c4: 934e ld.w r2, (r3, 0x38) + 42c6: 3104 movi r1, 4 + 42c8: 6884 and r2, r1 + 42ca: 3a40 cmpnei r2, 0 + 42cc: 0bf5 bt 0x42b6 // 42b6 +} + 42ce: 1463 ipop + 42d0: 1461 nir + 42d2: 0000 bkpt + 42d4: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +000042d8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 42d8: 1460 nie + 42da: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 42dc: 1071 lrw r3, 0x2000000c // 4320 + 42de: 3101 movi r1, 1 + 42e0: 9360 ld.w r3, (r3, 0x0) + 42e2: 934c ld.w r2, (r3, 0x30) + 42e4: 6884 and r2, r1 + 42e6: 3a40 cmpnei r2, 0 + 42e8: 0c0a bf 0x42fc // 42fc + { + BT0->ICR = BT_PEND; + 42ea: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 42ec: 9341 ld.w r2, (r3, 0x4) + 42ee: 3a86 bclri r2, 6 + 42f0: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 42f2: 9340 ld.w r2, (r3, 0x0) + 42f4: 3200 movi r2, 0 + 42f6: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 42f8: 1463 ipop + 42fa: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 42fc: 934c ld.w r2, (r3, 0x30) + 42fe: 3102 movi r1, 2 + 4300: 6884 and r2, r1 + 4302: 3a40 cmpnei r2, 0 + 4304: 0c03 bf 0x430a // 430a + BT0->ICR = BT_EVTRG; + 4306: b32d st.w r1, (r3, 0x34) +} + 4308: 07f8 br 0x42f8 // 42f8 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 430a: 934c ld.w r2, (r3, 0x30) + 430c: 3104 movi r1, 4 + 430e: 6884 and r2, r1 + 4310: 3a40 cmpnei r2, 0 + 4312: 0bfa bt 0x4306 // 4306 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 4314: 934c ld.w r2, (r3, 0x30) + 4316: 3108 movi r1, 8 + 4318: 6884 and r2, r1 + 431a: 3a40 cmpnei r2, 0 + 431c: 0bf5 bt 0x4306 // 4306 + 431e: 07ed br 0x42f8 // 42f8 + 4320: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00004324 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 4324: 1460 nie + 4326: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 4328: 1076 lrw r3, 0x20000008 // 4380 + 432a: 3101 movi r1, 1 + 432c: 9360 ld.w r3, (r3, 0x0) + 432e: 934c ld.w r2, (r3, 0x30) + 4330: 6884 and r2, r1 + 4332: 3a40 cmpnei r2, 0 + 4334: 0c03 bf 0x433a // 433a + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 4336: b32d st.w r1, (r3, 0x34) + } +} + 4338: 0416 br 0x4364 // 4364 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 433a: 934c ld.w r2, (r3, 0x30) + 433c: 3102 movi r1, 2 + 433e: 6884 and r2, r1 + 4340: 3a40 cmpnei r2, 0 + 4342: 0c13 bf 0x4368 // 4368 + BT1->ICR = BT_CMP; + 4344: b32d st.w r1, (r3, 0x34) + NUM++; + 4346: 1070 lrw r3, 0x200000ac // 4384 + 4348: 8340 ld.b r2, (r3, 0x0) + 434a: 2200 addi r2, 1 + 434c: 7488 zextb r2, r2 + SysTick_100us++; + 434e: 9321 ld.w r1, (r3, 0x4) + 4350: 2100 addi r1, 1 + if(NUM >= 10){ + 4352: 3a09 cmphsi r2, 10 + NUM++; + 4354: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 4356: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 4358: 0c06 bf 0x4364 // 4364 + NUM = 0; + 435a: 3200 movi r2, 0 + 435c: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 435e: 9342 ld.w r2, (r3, 0x8) + 4360: 2200 addi r2, 1 + 4362: b342 st.w r2, (r3, 0x8) +} + 4364: 1463 ipop + 4366: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 4368: 934c ld.w r2, (r3, 0x30) + 436a: 3104 movi r1, 4 + 436c: 6884 and r2, r1 + 436e: 3a40 cmpnei r2, 0 + 4370: 0be3 bt 0x4336 // 4336 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 4372: 934c ld.w r2, (r3, 0x30) + 4374: 3108 movi r1, 8 + 4376: 6884 and r2, r1 + 4378: 3a40 cmpnei r2, 0 + 437a: 0bde bt 0x4336 // 4336 + 437c: 07f4 br 0x4364 // 4364 + 437e: 0000 bkpt + 4380: 20000008 .long 0x20000008 + 4384: 200000ac .long 0x200000ac + +Disassembly of section .text.PriviledgeVioHandler: + +00004388 : + 4388: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +0000438a : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 438a: 1460 nie + 438c: 1462 ipush + // ISR content ... + +} + 438e: 1463 ipop + 4390: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00004392 : + 4392: 1460 nie + 4394: 1462 ipush + 4396: 1463 ipop + 4398: 1461 nir + +Disassembly of section .text.Trap2Handler: + +0000439a : + 439a: 1460 nie + 439c: 1462 ipush + 439e: 1463 ipop + 43a0: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000043a2 : + 43a2: 1460 nie + 43a4: 1462 ipush + 43a6: 1463 ipop + 43a8: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000043aa : + 43aa: 1460 nie + 43ac: 1462 ipush + 43ae: 1463 ipop + 43b0: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000043b2 : + 43b2: 1460 nie + 43b4: 1462 ipush + 43b6: 1463 ipop + 43b8: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000043ba : + 43ba: 1460 nie + 43bc: 1462 ipush + 43be: 1463 ipop + 43c0: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000043c2 : + 43c2: 1460 nie + 43c4: 1462 ipush + 43c6: 1463 ipop + 43c8: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000043ca : + 43ca: 1460 nie + 43cc: 1462 ipush + 43ce: 1463 ipop + 43d0: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000043d2 : + 43d2: 1460 nie + 43d4: 1462 ipush + 43d6: 1463 ipop + 43d8: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +000043da : + 43da: 1460 nie + 43dc: 1462 ipush + 43de: 1463 ipop + 43e0: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +000043e2 : + 43e2: 1460 nie + 43e4: 1462 ipush + 43e6: 1463 ipop + 43e8: 1461 nir + +Disassembly of section .text.__divsi3: + +000043ec <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 43ec: 14c1 push r4 + int PSR; + __asm volatile( + 43ee: c0006023 mfcr r3, cr<0, 0> + 43f2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 43f6: 1046 lrw r2, 0x20000000 // 440c <__divsi3+0x20> + 43f8: 3400 movi r4, 0 + 43fa: 9240 ld.w r2, (r2, 0x0) + 43fc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 43fe: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4400: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4402: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4404: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4408: 9202 ld.w r0, (r2, 0x8) +} + 440a: 1481 pop r4 + 440c: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00004410 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 4410: 14c1 push r4 + int PSR; + __asm volatile( + 4412: c0006023 mfcr r3, cr<0, 0> + 4416: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 441a: 1046 lrw r2, 0x20000000 // 4430 <__udivsi3+0x20> + 441c: 3401 movi r4, 1 + 441e: 9240 ld.w r2, (r2, 0x0) + 4420: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4422: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4424: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4426: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4428: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 442c: 9202 ld.w r0, (r2, 0x8) +} + 442e: 1481 pop r4 + 4430: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00004434 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 4434: 14c1 push r4 + int PSR; + __asm volatile( + 4436: c0006023 mfcr r3, cr<0, 0> + 443a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 443e: 1046 lrw r2, 0x20000000 // 4454 <__modsi3+0x20> + 4440: 3400 movi r4, 0 + 4442: 9240 ld.w r2, (r2, 0x0) + 4444: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4446: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4448: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 444a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 444c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4450: 9203 ld.w r0, (r2, 0xc) +} + 4452: 1481 pop r4 + 4454: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00004458 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 4458: 14c1 push r4 + int PSR; + __asm volatile( + 445a: c0006023 mfcr r3, cr<0, 0> + 445e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 4462: 1046 lrw r2, 0x20000000 // 4478 <__umodsi3+0x20> + 4464: 3401 movi r4, 1 + 4466: 9240 ld.w r2, (r2, 0x0) + 4468: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 446a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 446c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 446e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4470: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4474: 9203 ld.w r0, (r2, 0xc) +} + 4476: 1481 pop r4 + 4478: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +0000447c : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 447c: c1807420 psrset ee, ie +} + 4480: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00004484 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4484: 14d1 push r4, r15 + switch(uart_id){ + 4486: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4488: 6d07 mov r4, r1 + switch(uart_id){ + 448a: 0c1a bf 0x44be // 44be + 448c: 3840 cmpnei r0, 0 + 448e: 0c04 bf 0x4496 // 4496 + 4490: 3842 cmpnei r0, 2 + 4492: 0c2a bf 0x44e6 // 44e6 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 4494: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 4496: e3fff8dd bsr 0x3650 // 3650 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 449a: 118a lrw r4, 0x20000040 // 4540 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 449c: 3100 movi r1, 0 + 449e: 3000 movi r0, 0 + 44a0: e3fff918 bsr 0x36d0 // 36d0 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 44a4: 9400 ld.w r0, (r4, 0x0) + 44a6: 3200 movi r2, 0 + 44a8: 1127 lrw r1, 0x2710 // 4544 + 44aa: e3fff989 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 44ae: 9400 ld.w r0, (r4, 0x0) + 44b0: 3200 movi r2, 0 + 44b2: 1125 lrw r1, 0x2710 // 4544 + 44b4: e3fff98c bsr 0x37cc // 37cc + UART0_Int_Enable(); + 44b8: e3fff8f0 bsr 0x3698 // 3698 + break; + 44bc: 07ec br 0x4494 // 4494 + UART1_DeInit(); //clear all UART Register + 44be: e3fff8d5 bsr 0x3668 // 3668 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 44c2: 3102 movi r1, 2 + 44c4: 3001 movi r0, 1 + 44c6: e3fff905 bsr 0x36d0 // 36d0 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 44ca: 1180 lrw r4, 0x2000003c // 4548 + 44cc: 31d0 movi r1, 208 + 44ce: 9400 ld.w r0, (r4, 0x0) + 44d0: 3200 movi r2, 0 + 44d2: 4121 lsli r1, r1, 1 + 44d4: e3fff974 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44d8: 31d0 movi r1, 208 + 44da: 9400 ld.w r0, (r4, 0x0) + 44dc: 3200 movi r2, 0 + 44de: 4121 lsli r1, r1, 1 + 44e0: e3fff976 bsr 0x37cc // 37cc + break; + 44e4: 07d8 br 0x4494 // 4494 + UART2_DeInit(); //clear all UART Register + 44e6: e3fff8cd bsr 0x3680 // 3680 + UART_IO_Init(IO_UART2,0); //use PA0.13->RXD1, PB0.0->TXD1 + 44ea: 3100 movi r1, 0 + 44ec: 3002 movi r0, 2 + 44ee: e3fff8f1 bsr 0x36d0 // 36d0 + UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44f2: 1077 lrw r3, 0x20000038 // 454c + 44f4: 31d0 movi r1, 208 + 44f6: 9300 ld.w r0, (r3, 0x0) + 44f8: 3200 movi r2, 0 + 44fa: 4121 lsli r1, r1, 1 + 44fc: e3fff968 bsr 0x37cc // 37cc + UART2_Int_Enable(); + 4500: e3fff8da bsr 0x36b4 // 36b4 + memset(&g_uart,0,sizeof(UART_t)); + 4504: 3273 movi r2, 115 + 4506: 3100 movi r1, 0 + 4508: 1012 lrw r0, 0x200003a0 // 4550 + 450a: e3ffea89 bsr 0x1a1c // 1a1c <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 450e: 1072 lrw r3, 0x20000407 // 4554 + 4510: 3203 movi r2, 3 + 4512: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 4514: 4c48 lsri r2, r4, 8 + 4516: a388 st.b r4, (r3, 0x8) + 4518: a349 st.b r2, (r3, 0x9) + 451a: 4c50 lsri r2, r4, 16 + 451c: 4c98 lsri r4, r4, 24 + 451e: a38b st.b r4, (r3, 0xb) + 4520: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 4522: 3103 movi r1, 3 + 4524: 108d lrw r4, 0x20000048 // 4558 + 4526: 3200 movi r2, 0 + 4528: 9400 ld.w r0, (r4, 0x0) + 452a: e3fff691 bsr 0x324c // 324c + GPIO_DriveStrength_EN(GPIOB0,3); + 452e: 9400 ld.w r0, (r4, 0x0) + 4530: 3103 movi r1, 3 + 4532: e3fff707 bsr 0x3340 // 3340 + GPIO_Write_Low(GPIOB0,3); + 4536: 9400 ld.w r0, (r4, 0x0) + 4538: 3103 movi r1, 3 + 453a: e3fff70e bsr 0x3356 // 3356 +} + 453e: 07ab br 0x4494 // 4494 + 4540: 20000040 .long 0x20000040 + 4544: 00002710 .long 0x00002710 + 4548: 2000003c .long 0x2000003c + 454c: 20000038 .long 0x20000038 + 4550: 200003a0 .long 0x200003a0 + 4554: 20000407 .long 0x20000407 + 4558: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +0000455c : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 455c: 14c2 push r4-r5 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 455e: 1075 lrw r3, 0x20000400 // 45b0 + 4560: 8346 ld.b r2, (r3, 0x6) + 4562: 8325 ld.b r1, (r3, 0x5) + 4564: 4248 lsli r2, r2, 8 + 4566: 6c84 or r2, r1 + 4568: 3162 movi r1, 98 + 456a: 10b3 lrw r5, 0x200003a0 // 45b4 + 456c: 3440 movi r4, 64 + 456e: 6485 cmplt r1, r2 + 4570: 6114 addu r4, r5 + 4572: 0c06 bf 0x457e // 457e + 4574: 3225 movi r2, 37 + 4576: 6090 addu r2, r4 + 4578: 3100 movi r1, 0 + 457a: a220 st.b r1, (r2, 0x0) + 457c: a221 st.b r1, (r2, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 457e: 8346 ld.b r2, (r3, 0x6) + 4580: 8325 ld.b r1, (r3, 0x5) + 4582: 4248 lsli r2, r2, 8 + 4584: 6c84 or r2, r1 + 4586: 5a22 addi r1, r2, 1 + 4588: 6094 addu r2, r5 + 458a: a200 st.b r0, (r2, 0x0) + 458c: 2424 addi r4, 37 + 458e: 7445 zexth r1, r1 + + g_uart.RecvIdleTiming = SysTick_1ms; + 4590: 104a lrw r2, 0x200000b4 // 45b8 + 4592: 9240 ld.w r2, (r2, 0x0) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 4594: a420 st.b r1, (r4, 0x0) + 4596: 4928 lsri r1, r1, 8 + g_uart.RecvIdleTiming = SysTick_1ms; + 4598: 4a08 lsri r0, r2, 8 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 459a: a421 st.b r1, (r4, 0x1) + g_uart.RecvIdleTiming = SysTick_1ms; + 459c: 1028 lrw r1, 0x2000040b // 45bc + 459e: a140 st.b r2, (r1, 0x0) + 45a0: a101 st.b r0, (r1, 0x1) + 45a2: 4a10 lsri r0, r2, 16 + 45a4: 4a58 lsri r2, r2, 24 + 45a6: a143 st.b r2, (r1, 0x3) + g_uart.Receiving = 0x01; + 45a8: 3201 movi r2, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 45aa: a102 st.b r0, (r1, 0x2) + g_uart.Receiving = 0x01; + 45ac: a344 st.b r2, (r3, 0x4) +} + 45ae: 1482 pop r4-r5 + 45b0: 20000400 .long 0x20000400 + 45b4: 200003a0 .long 0x200003a0 + 45b8: 200000b4 .long 0x200000b4 + 45bc: 2000040b .long 0x2000040b + +Disassembly of section .text.Dbg_Println: + +000045c0 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 45c0: 1423 subi r14, r14, 12 + 45c2: b862 st.w r3, (r14, 0x8) + 45c4: b841 st.w r2, (r14, 0x4) + 45c6: b820 st.w r1, (r14, 0x0) + 45c8: 14d2 push r4-r5, r15 + 45ca: 1422 subi r14, r14, 8 + 45cc: 9865 ld.w r3, (r14, 0x14) + 45ce: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 45d0: 3301 movi r3, 1 + 45d2: 105c lrw r2, 0x20000068 // 4640 + 45d4: 70c0 lsl r3, r0 + 45d6: 9240 ld.w r2, (r2, 0x0) + 45d8: 68c8 and r3, r2 + 45da: 3b40 cmpnei r3, 0 + 45dc: 0c2b bf 0x4632 // 4632 + SysTick_Now = SysTick_1ms; + 45de: 109a lrw r4, 0x200000b8 // 4644 + 45e0: 107a lrw r3, 0x200000b4 // 4648 + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45e2: 9445 ld.w r2, (r4, 0x14) + SysTick_Now = SysTick_1ms; + 45e4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45e6: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 45e8: b464 st.w r3, (r4, 0x10) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45ea: b446 st.w r2, (r4, 0x18) + SysTick_Last = SysTick_Now; + 45ec: b465 st.w r3, (r4, 0x14) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 45ee: 3180 movi r1, 128 + 45f0: 301c movi r0, 28 + 45f2: b840 st.w r2, (r14, 0x0) + 45f4: 4122 lsli r1, r1, 2 + 45f6: 1056 lrw r2, 0x5f43 // 464c + 45f8: 6010 addu r0, r4 + 45fa: e3ffe9b5 bsr 0x1964 // 1964 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 45fe: 10b5 lrw r5, 0x2000003c // 4650 + 4600: 311c movi r1, 28 + 4602: 7481 zexth r2, r0 + 4604: 6050 addu r1, r4 + 4606: 9500 ld.w r0, (r5, 0x0) + 4608: e3fff8ea bsr 0x37dc // 37dc + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 460c: 3180 movi r1, 128 + 460e: 301c movi r0, 28 + 4610: 1b06 addi r3, r14, 24 + 4612: 9841 ld.w r2, (r14, 0x4) + 4614: 4122 lsli r1, r1, 2 + 4616: 6010 addu r0, r4 + 4618: e3ffe9d5 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 461c: 6c53 mov r1, r4 + 461e: 7481 zexth r2, r0 + 4620: 211b addi r1, 28 + 4622: 9500 ld.w r0, (r5, 0x0) + 4624: e3fff8dc bsr 0x37dc // 37dc + + DBG_Printf("\r\n",2); + 4628: 9500 ld.w r0, (r5, 0x0) + 462a: 3202 movi r2, 2 + 462c: 102a lrw r1, 0x5f51 // 4654 + 462e: e3fff8d7 bsr 0x37dc // 37dc + + + } + +#endif +} + 4632: 1402 addi r14, r14, 8 + 4634: d9ee2002 ld.w r15, (r14, 0x8) + 4638: 98a1 ld.w r5, (r14, 0x4) + 463a: 9880 ld.w r4, (r14, 0x0) + 463c: 1406 addi r14, r14, 24 + 463e: 783c jmp r15 + 4640: 20000068 .long 0x20000068 + 4644: 200000b8 .long 0x200000b8 + 4648: 200000b4 .long 0x200000b4 + 464c: 00005f43 .long 0x00005f43 + 4650: 2000003c .long 0x2000003c + 4654: 00005f51 .long 0x00005f51 + +Disassembly of section .text.RC522_Delay: + +00004658 : + * @brief 延时函数,纳秒级 + * @param ns 延时时间 + */ +void RC522_Delay(U32_T ns){ + U32_T i; + for (i = 0; i < ns; i++) { + 4658: 3300 movi r3, 0 + 465a: 640e cmpne r3, r0 + 465c: 0802 bt 0x4660 // 4660 + nop; + //延时一个机器周期 + nop; + nop; + } +} + 465e: 783c jmp r15 + nop; + 4660: 6c03 mov r0, r0 + nop; + 4662: 6c03 mov r0, r0 + nop; + 4664: 6c03 mov r0, r0 + for (i = 0; i < ns; i++) { + 4666: 2300 addi r3, 1 + 4668: 07f9 br 0x465a // 465a + +Disassembly of section .text.RC522_ReadWriteOneByte: + +0000466c : + * @brief 移植接口——SPI读写一个字节 + * @param tx_data:要写入的数据 + * @return 读取的数据 + */ +U8_T RC522_ReadWriteOneByte(U8_T tx_data) +{ + 466c: 14d4 push r4-r7, r15 + 466e: 6d83 mov r6, r0 + 4670: 3508 movi r5, 8 +// delay_nus(1); +// rx_data = SPI0->DR; +// +// return (U8_T)(rx_data & 0xFF); + + U8_T rx_data=0; + 4672: 3400 movi r4, 0 + U8_T i; + for(i=0;i<8;i++) + { + RC522_SCK_LOW; + 4674: 10f2 lrw r7, 0x2000004c // 46bc + 4676: 3109 movi r1, 9 + 4678: 9700 ld.w r0, (r7, 0x0) + 467a: e3fff66e bsr 0x3356 // 3356 + if(tx_data&0x80) RC522_MOSI_HIGH; + 467e: 74da sextb r3, r6 + 4680: 3bdf btsti r3, 31 + 4682: 310a movi r1, 10 + 4684: 9700 ld.w r0, (r7, 0x0) + 4686: 0c18 bf 0x46b6 // 46b6 + 4688: e3fff663 bsr 0x334e // 334e + else RC522_MOSI_LOW; + tx_data<<=1; + RC522_SCK_HIGH; + 468c: 3109 movi r1, 9 + 468e: 9700 ld.w r0, (r7, 0x0) + 4690: e3fff65f bsr 0x334e // 334e + rx_data<<=1; + if(RC522_MISO_Read) rx_data|=0x01; + 4694: 310b movi r1, 11 + 4696: 9700 ld.w r0, (r7, 0x0) + 4698: e3fff66e bsr 0x3374 // 3374 + tx_data<<=1; + 469c: 46c1 lsli r6, r6, 1 + rx_data<<=1; + 469e: 4481 lsli r4, r4, 1 + if(RC522_MISO_Read) rx_data|=0x01; + 46a0: 3840 cmpnei r0, 0 + tx_data<<=1; + 46a2: 7598 zextb r6, r6 + rx_data<<=1; + 46a4: 7510 zextb r4, r4 + if(RC522_MISO_Read) rx_data|=0x01; + 46a6: 0c02 bf 0x46aa // 46aa + 46a8: 3ca0 bseti r4, 0 + 46aa: 2d00 subi r5, 1 + 46ac: 7554 zextb r5, r5 + for(i=0;i<8;i++) + 46ae: 3d40 cmpnei r5, 0 + 46b0: 0be3 bt 0x4676 // 4676 + } + return rx_data; +} + 46b2: 6c13 mov r0, r4 + 46b4: 1494 pop r4-r7, r15 + else RC522_MOSI_LOW; + 46b6: e3fff650 bsr 0x3356 // 3356 + 46ba: 07e9 br 0x468c // 468c + 46bc: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_ReadRawRC: + +000046c0 : +{ + 46c0: 14d2 push r4-r5, r15 + RC522_CS_LOW; //片选选中RC522 + 46c2: 10ad lrw r5, 0x20000048 // 46f4 + 46c4: 3105 movi r1, 5 +{ + 46c6: 6d03 mov r4, r0 + RC522_CS_LOW; //片选选中RC522 + 46c8: 9500 ld.w r0, (r5, 0x0) + 46ca: e3fff646 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E)|0x80; + 46ce: 4401 lsli r0, r4, 1 + 46d0: 347e movi r4, 126 + 46d2: 6810 and r0, r4 + 46d4: 3400 movi r4, 0 + 46d6: 2c7f subi r4, 128 + 46d8: 6c10 or r0, r4 + RC522_ReadWriteOneByte(ucAddr); //发送命令 + 46da: 7400 zextb r0, r0 + 46dc: e3ffffc8 bsr 0x466c // 466c + ucResult=RC522_ReadWriteOneByte(0); //读取RC522返回的数据 + 46e0: 3000 movi r0, 0 + 46e2: e3ffffc5 bsr 0x466c // 466c + 46e6: 6d03 mov r4, r0 + RC522_CS_HIGH; //释放片选线(PF0) + 46e8: 3105 movi r1, 5 + 46ea: 9500 ld.w r0, (r5, 0x0) + 46ec: e3fff631 bsr 0x334e // 334e +} + 46f0: 6c13 mov r0, r4 + 46f2: 1492 pop r4-r5, r15 + 46f4: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_WriteRawRC: + +000046f8 : +{ + 46f8: 14d3 push r4-r6, r15 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 46fa: 10ab lrw r5, 0x20000048 // 4724 +{ + 46fc: 6d87 mov r6, r1 + 46fe: 6d03 mov r4, r0 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 4700: 3105 movi r1, 5 + 4702: 9500 ld.w r0, (r5, 0x0) + 4704: e3fff629 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E); + 4708: 4481 lsli r4, r4, 1 + 470a: 307e movi r0, 126 + RC522_ReadWriteOneByte(ucAddr); //SPI1发送一个字节 + 470c: 6810 and r0, r4 + 470e: e3ffffaf bsr 0x466c // 466c + RC522_ReadWriteOneByte(value); //SPI1发送一个字节 + 4712: 6c1b mov r0, r6 + 4714: e3ffffac bsr 0x466c // 466c + RC522_CS_HIGH; //PF1写1(SDA)(SPI1片选线) + 4718: 9500 ld.w r0, (r5, 0x0) + 471a: 3105 movi r1, 5 + 471c: e3fff619 bsr 0x334e // 334e +} + 4720: 1493 pop r4-r6, r15 + 4722: 0000 bkpt + 4724: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_PcdReset: + +00004728 : +{ + 4728: 14d0 push r15 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 472a: 310f movi r1, 15 + 472c: 3001 movi r0, 1 + 472e: e3ffffe5 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 4732: 310f movi r1, 15 + 4734: 3001 movi r0, 1 + 4736: e3ffffe1 bsr 0x46f8 // 46f8 + RC522_Delay(10); + 473a: 300a movi r0, 10 + 473c: e3ffff8e bsr 0x4658 // 4658 + RC522_WriteRawRC(ModeReg,0x3D); //和Mifare卡通讯,CRC初始值0x6363 + 4740: 313d movi r1, 61 + 4742: 3011 movi r0, 17 + 4744: e3ffffda bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegL,30); //写RC632寄存器 + 4748: 311e movi r1, 30 + 474a: 302d movi r0, 45 + 474c: e3ffffd6 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegH,0); + 4750: 3100 movi r1, 0 + 4752: 302c movi r0, 44 + 4754: e3ffffd2 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TModeReg,0x8D); + 4758: 318d movi r1, 141 + 475a: 302a movi r0, 42 + 475c: e3ffffce bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 4760: 313e movi r1, 62 + 4762: 302b movi r0, 43 + 4764: e3ffffca bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TxAutoReg,0x40);//必须要 + 4768: 3140 movi r1, 64 + 476a: 3015 movi r0, 21 + 476c: e3ffffc6 bsr 0x46f8 // 46f8 +} + 4770: 3000 movi r0, 0 + 4772: 1490 pop r15 + +Disassembly of section .text.RC522_SetBitMask: + +00004774 : +{ + 4774: 14d2 push r4-r5, r15 + 4776: 6d47 mov r5, r1 + 4778: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 477a: e3ffffa3 bsr 0x46c0 // 46c0 + RC522_WriteRawRC(reg,tmp|mask); //写RC632寄存器 + 477e: 6c43 mov r1, r0 + 4780: 6c54 or r1, r5 + 4782: 7444 zextb r1, r1 + 4784: 6c13 mov r0, r4 + 4786: e3ffffb9 bsr 0x46f8 // 46f8 +} + 478a: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOn: + +0000478c : +{ + 478c: 14d0 push r15 + i=RC522_ReadRawRC(TxControlReg); + 478e: 3014 movi r0, 20 + 4790: e3ffff98 bsr 0x46c0 // 46c0 + if(!(i&0x03)) + 4794: 3303 movi r3, 3 + 4796: 680c and r0, r3 + 4798: 3840 cmpnei r0, 0 + 479a: 0805 bt 0x47a4 // 47a4 + RC522_SetBitMask(TxControlReg,0x03); + 479c: 3103 movi r1, 3 + 479e: 3014 movi r0, 20 + 47a0: e3ffffea bsr 0x4774 // 4774 +} + 47a4: 1490 pop r15 + +Disassembly of section .text.RC522_ClearBitMask: + +000047a6 : +{ + 47a6: 14d2 push r4-r5, r15 + 47a8: 6d47 mov r5, r1 + 47aa: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 47ac: e3ffff8a bsr 0x46c0 // 46c0 + RC522_WriteRawRC(reg,tmp&~mask); // clear bit mask + 47b0: 6815 andn r0, r5 + 47b2: 7440 zextb r1, r0 + 47b4: 6c13 mov r0, r4 + 47b6: e3ffffa1 bsr 0x46f8 // 46f8 +} + 47ba: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOff: + +000047bc : +{ + 47bc: 14d0 push r15 + RC522_ClearBitMask(TxControlReg,0x03); //清RC522寄存器位 + 47be: 3103 movi r1, 3 + 47c0: 3014 movi r0, 20 + 47c2: e3fffff2 bsr 0x47a6 // 47a6 +} + 47c6: 1490 pop r15 + +Disassembly of section .text.RC522_CalulateCRC: + +000047c8 : +{ + 47c8: 14d3 push r4-r6, r15 + 47ca: 6d03 mov r4, r0 + 47cc: 6d87 mov r6, r1 + RC522_ClearBitMask(DivIrqReg,0x04); //CRCIrq = 0 + 47ce: 3005 movi r0, 5 + 47d0: 3104 movi r1, 4 +{ + 47d2: 6d4b mov r5, r2 + RC522_ClearBitMask(DivIrqReg,0x04); //CRCIrq = 0 + 47d4: e3ffffe9 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 47d8: 3100 movi r1, 0 + 47da: 3001 movi r0, 1 + 47dc: e3ffff8e bsr 0x46f8 // 46f8 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO指针 + 47e0: 3180 movi r1, 128 + 47e2: 300a movi r0, 10 + 47e4: e3ffffc8 bsr 0x4774 // 4774 + 47e8: 6190 addu r6, r4 + for(i=0;i + RC522_WriteRawRC(CommandReg,PCD_CALCCRC); //等待CRC计算完成 + 47ee: 3103 movi r1, 3 + 47f0: 3001 movi r0, 1 + 47f2: e3ffff83 bsr 0x46f8 // 46f8 + 47f6: 34ff movi r4, 255 + 47f8: 2c00 subi r4, 1 + n=RC522_ReadRawRC(DivIrqReg); + 47fa: 3005 movi r0, 5 + 47fc: 7510 zextb r4, r4 + 47fe: e3ffff61 bsr 0x46c0 // 46c0 + while((i!=0)&&!(n&0x04));//CRCIrq = 1 + 4802: 3c40 cmpnei r4, 0 + 4804: 0c06 bf 0x4810 // 4810 + 4806: 3304 movi r3, 4 + 4808: 680c and r0, r3 + 480a: 7400 zextb r0, r0 + 480c: 3840 cmpnei r0, 0 + 480e: 0ff5 bf 0x47f8 // 47f8 + pOut[0]=RC522_ReadRawRC(CRCResultRegL); + 4810: 3022 movi r0, 34 + 4812: e3ffff57 bsr 0x46c0 // 46c0 + 4816: a500 st.b r0, (r5, 0x0) + pOut[1]=RC522_ReadRawRC(CRCResultRegM); + 4818: 3021 movi r0, 33 + 481a: e3ffff53 bsr 0x46c0 // 46c0 + 481e: a501 st.b r0, (r5, 0x1) +} + 4820: 1493 pop r4-r6, r15 + RC522_WriteRawRC(FIFODataReg,*(pIn +i)); //开始RCR计算 + 4822: 8420 ld.b r1, (r4, 0x0) + 4824: 3009 movi r0, 9 + 4826: e3ffff69 bsr 0x46f8 // 46f8 + 482a: 2400 addi r4, 1 + 482c: 07df br 0x47ea // 47ea + +Disassembly of section .text.M500PcdConfigISOType.part.1: + +0000482e : +char M500PcdConfigISOType(U8_T type) + 482e: 14d0 push r15 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4830: 3108 movi r1, 8 + 4832: 3008 movi r0, 8 + 4834: e3ffffb9 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(ModeReg,0x3D); //3F//CRC初始值0x6363 + 4838: 313d movi r1, 61 + 483a: 3011 movi r0, 17 + 483c: e3ffff5e bsr 0x46f8 // 46f8 + RC522_WriteRawRC(RxSelReg,0x86); //84 + 4840: 3186 movi r1, 134 + 4842: 3017 movi r0, 23 + 4844: e3ffff5a bsr 0x46f8 // 46f8 + RC522_WriteRawRC(RFCfgReg,0x7F); //4F //调整卡的感应距离//RxGain = 48dB调节卡感应距离 + 4848: 317f movi r1, 127 + 484a: 3026 movi r0, 38 + 484c: e3ffff56 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegL,30); //tmoLength);// TReloadVal = 'h6a =tmoLength(dec) + 4850: 311e movi r1, 30 + 4852: 302d movi r0, 45 + 4854: e3ffff52 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegH,0); + 4858: 3100 movi r1, 0 + 485a: 302c movi r0, 44 + 485c: e3ffff4e bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TModeReg,0x8D); + 4860: 318d movi r1, 141 + 4862: 302a movi r0, 42 + 4864: e3ffff4a bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 4868: 313e movi r1, 62 + 486a: 302b movi r0, 43 + 486c: e3ffff46 bsr 0x46f8 // 46f8 + RC522_Delay(1000); + 4870: 30fa movi r0, 250 + 4872: 4002 lsli r0, r0, 2 + 4874: e3fffef2 bsr 0x4658 // 4658 + RC522_PcdAntennaOn(); //开启天线 + 4878: e3ffff8a bsr 0x478c // 478c +} + 487c: 3000 movi r0, 0 + 487e: 1490 pop r15 + +Disassembly of section .text.RC522_Init: + +00004880 : +{ + 4880: 14d1 push r4, r15 + nop; + 4882: 6c03 mov r0, r0 + GPIO_Init(GPIOA0,9,Output); //SCK + 4884: 1183 lrw r4, 0x2000004c // 4910 + 4886: 3200 movi r2, 0 + 4888: 9400 ld.w r0, (r4, 0x0) + 488a: 3109 movi r1, 9 + 488c: e3fff4e0 bsr 0x324c // 324c + GPIO_Init(GPIOA0,10,Output); //MOSI + 4890: 3200 movi r2, 0 + 4892: 9400 ld.w r0, (r4, 0x0) + 4894: 310a movi r1, 10 + 4896: e3fff4db bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOA0,11); + 489a: 9400 ld.w r0, (r4, 0x0) + 489c: 310b movi r1, 11 + 489e: e3fff547 bsr 0x332c // 332c + GPIO_Init(GPIOA0,11,Intput); //MISO + 48a2: 9400 ld.w r0, (r4, 0x0) + 48a4: 3201 movi r2, 1 + GPIO_Init(GPIOB0,5,Output); //CS + 48a6: 109c lrw r4, 0x20000048 // 4914 + GPIO_Init(GPIOA0,11,Intput); //MISO + 48a8: 310b movi r1, 11 + 48aa: e3fff4d1 bsr 0x324c // 324c + GPIO_Init(GPIOB0,5,Output); //CS + 48ae: 9400 ld.w r0, (r4, 0x0) + 48b0: 3200 movi r2, 0 + 48b2: 3105 movi r1, 5 + 48b4: e3fff4cc bsr 0x324c // 324c + GPIO_Init(GPIOB0,4,Output); //RST + 48b8: 9400 ld.w r0, (r4, 0x0) + 48ba: 3200 movi r2, 0 + 48bc: 3104 movi r1, 4 + 48be: e3fff4c7 bsr 0x324c // 324c + GPIO_Init(GPIOB0,3,Intput); //IRQ + 48c2: 3201 movi r2, 1 + 48c4: 9400 ld.w r0, (r4, 0x0) + 48c6: 3103 movi r1, 3 + 48c8: e3fff4c2 bsr 0x324c // 324c + GPIO_Write_High(GPIOB0,5); + 48cc: 9400 ld.w r0, (r4, 0x0) + 48ce: 3105 movi r1, 5 + 48d0: e3fff53f bsr 0x334e // 334e + GPIO_Write_High(GPIOB0,4); + 48d4: 3104 movi r1, 4 + 48d6: 9400 ld.w r0, (r4, 0x0) + 48d8: e3fff53b bsr 0x334e // 334e + RC522_PcdReset(); //复位RC522 + 48dc: e3ffff26 bsr 0x4728 // 4728 + RC522_PcdAntennaOff(); //关闭天线 + 48e0: e3ffff6e bsr 0x47bc // 47bc + RC522_Delay(2); //延时2毫秒 + 48e4: 3002 movi r0, 2 + 48e6: e3fffeb9 bsr 0x4658 // 4658 + RC522_PcdAntennaOn(); //开启天线 + 48ea: e3ffff51 bsr 0x478c // 478c + memset(&CardInfo,0x00,sizeof(CardInfo)); + 48ee: 108b lrw r4, 0x20000414 // 4918 + 48f0: e3ffff9f bsr 0x482e // 482e + 48f4: 3230 movi r2, 48 + 48f6: 3100 movi r1, 0 + 48f8: 6c13 mov r0, r4 + 48fa: e3ffe891 bsr 0x1a1c // 1a1c <__memset_fast> + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 48fe: 3318 movi r3, 24 + 4900: a468 st.b r3, (r4, 0x8) + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 4902: 3360 movi r3, 96 + 4904: a47f st.b r3, (r4, 0x1f) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 4906: 3300 movi r3, 0 + 4908: 2b00 subi r3, 1 + 490a: b468 st.w r3, (r4, 0x20) + 490c: ac72 st.h r3, (r4, 0x24) +} + 490e: 1491 pop r4, r15 + 4910: 2000004c .long 0x2000004c + 4914: 20000048 .long 0x20000048 + 4918: 20000414 .long 0x20000414 + +Disassembly of section .text.RC522_PcdComMF522: + +0000491c : +{ + 491c: 14d4 push r4-r7, r15 + 491e: 1424 subi r14, r14, 16 + 4920: b861 st.w r3, (r14, 0x4) + switch (Command) { + 4922: 384c cmpnei r0, 12 +{ + 4924: 9869 ld.w r3, (r14, 0x24) + 4926: 6d43 mov r5, r0 + 4928: 6dc7 mov r7, r1 + 492a: b860 st.w r3, (r14, 0x0) + switch (Command) { + 492c: 0c4c bf 0x49c4 // 49c4 + 492e: 384e cmpnei r0, 14 + 4930: 0c4d bf 0x49ca // 49ca + U8_T waitFor=0x00; + 4932: 3600 movi r6, 0 + U8_T irqEn=0x00; + 4934: 3400 movi r4, 0 + RC522_WriteRawRC(ComIEnReg,irqEn|0x80); + 4936: 6c53 mov r1, r4 + 4938: 39a7 bseti r1, 7 + 493a: 3002 movi r0, 2 + 493c: b842 st.w r2, (r14, 0x8) + 493e: e3fffedd bsr 0x46f8 // 46f8 + RC522_ClearBitMask(ComIrqReg,0x80); //清所有中断位 + 4942: 3180 movi r1, 128 + 4944: 3004 movi r0, 4 + 4946: e3ffff30 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 494a: 3100 movi r1, 0 + 494c: 3001 movi r0, 1 + 494e: e3fffed5 bsr 0x46f8 // 46f8 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO缓存 + 4952: 3180 movi r1, 128 + 4954: 300a movi r0, 10 + 4956: e3ffff0f bsr 0x4774 // 4774 + for(i=0;i + RC522_WriteRawRC(CommandReg,Command); + 4966: 6c57 mov r1, r5 + 4968: 3001 movi r0, 1 + 496a: e3fffec7 bsr 0x46f8 // 46f8 + if(Command==PCD_TRANSCEIVE) + 496e: 3d4c cmpnei r5, 12 + 4970: 0805 bt 0x497a // 497a + RC522_SetBitMask(BitFramingReg,0x80); //开始传送 + 4972: 3180 movi r1, 128 + 4974: 300d movi r0, 13 + 4976: e3fffeff bsr 0x4774 // 4774 + for(i=0;i + i--; + 4988: 9862 ld.w r3, (r14, 0x8) + 498a: 2b00 subi r3, 1 + 498c: 74cd zexth r3, r3 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 498e: 3b40 cmpnei r3, 0 + n=RC522_ReadRawRC(ComIrqReg); + 4990: 6dc3 mov r7, r0 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 4992: 0c05 bf 0x499c // 499c + 4994: 6c83 mov r2, r0 + 4996: 6898 and r2, r6 + 4998: 3a40 cmpnei r2, 0 + 499a: 0ff3 bf 0x4980 // 4980 + RC522_ClearBitMask(BitFramingReg,0x80); + 499c: 3180 movi r1, 128 + 499e: 300d movi r0, 13 + 49a0: b862 st.w r3, (r14, 0x8) + 49a2: e3ffff02 bsr 0x47a6 // 47a6 + if(i!=0) + 49a6: 9862 ld.w r3, (r14, 0x8) + 49a8: 3b40 cmpnei r3, 0 + 49aa: 081f bt 0x49e8 // 49e8 + char stats=MI_ERR; + 49ac: 3702 movi r7, 2 + RC522_SetBitMask(ControlReg,0x80);// stop timer now + 49ae: 3180 movi r1, 128 + 49b0: 300c movi r0, 12 + 49b2: e3fffee1 bsr 0x4774 // 4774 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 49b6: 3100 movi r1, 0 + 49b8: 3001 movi r0, 1 + 49ba: e3fffe9f bsr 0x46f8 // 46f8 +} + 49be: 6c1f mov r0, r7 + 49c0: 1404 addi r14, r14, 16 + 49c2: 1494 pop r4-r7, r15 + waitFor = 0x30; + 49c4: 3630 movi r6, 48 + irqEn = 0x77; + 49c6: 3477 movi r4, 119 + break; + 49c8: 07b7 br 0x4936 // 4936 + waitFor = 0x10; + 49ca: 3610 movi r6, 16 + irqEn = 0x12; + 49cc: 3412 movi r4, 18 + 49ce: 07b4 br 0x4936 // 4936 + RC522_WriteRawRC(FIFODataReg,pIn[i]); + 49d0: 8320 ld.b r1, (r3, 0x0) + 49d2: 3009 movi r0, 9 + 49d4: b843 st.w r2, (r14, 0xc) + 49d6: b862 st.w r3, (r14, 0x8) + for(i=0;i + 49de: 9862 ld.w r3, (r14, 0x8) + for(i=0;i + if(!(RC522_ReadRawRC(ErrorReg)&0x1B)) + 49e8: 3006 movi r0, 6 + 49ea: e3fffe6b bsr 0x46c0 // 46c0 + 49ee: 331b movi r3, 27 + 49f0: 680c and r0, r3 + 49f2: 3840 cmpnei r0, 0 + 49f4: 0bdc bt 0x49ac // 49ac + stats=MI_OK; + 49f6: 3301 movi r3, 1 + 49f8: 690c and r4, r3 + if(Command==PCD_TRANSCEIVE) + 49fa: 3d4c cmpnei r5, 12 + stats=MI_OK; + 49fc: 69d0 and r7, r4 + if(Command==PCD_TRANSCEIVE) + 49fe: 0bd8 bt 0x49ae // 49ae + n=RC522_ReadRawRC(FIFOLevelReg); + 4a00: 300a movi r0, 10 + 4a02: e3fffe5f bsr 0x46c0 // 46c0 + 4a06: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 4a08: 300c movi r0, 12 + 4a0a: e3fffe5b bsr 0x46c0 // 46c0 + 4a0e: 3307 movi r3, 7 + 4a10: 680c and r0, r3 + if(lastBits) + 4a12: 3840 cmpnei r0, 0 + 4a14: 0c1b bf 0x4a4a // 4a4a + *pOutLenBit=(n-1)*8+lastBits; + 4a16: 5c63 subi r3, r4, 1 + 4a18: 4363 lsli r3, r3, 3 + 4a1a: 600c addu r0, r3 + 4a1c: 9860 ld.w r3, (r14, 0x0) + 4a1e: a300 st.b r0, (r3, 0x0) + if(n==0)n=1; + 4a20: 3c40 cmpnei r4, 0 + 4a22: 0c18 bf 0x4a52 // 4a52 + 4a24: 6cd3 mov r3, r4 + 4a26: 7510 zextb r4, r4 + 4a28: 3c12 cmphsi r4, 19 + 4a2a: 0c02 bf 0x4a2e // 4a2e + 4a2c: 3312 movi r3, 18 + 4a2e: 74cc zextb r3, r3 + 4a30: 98c1 ld.w r6, (r14, 0x4) + for(i=0; i + pOut[i]=RC522_ReadRawRC(FIFODataReg); + 4a3a: 3009 movi r0, 9 + 4a3c: e3fffe42 bsr 0x46c0 // 46c0 + for(i=0; i + *pOutLenBit=n*8; + 4a4a: 4463 lsli r3, r4, 3 + 4a4c: 9840 ld.w r2, (r14, 0x0) + 4a4e: a260 st.b r3, (r2, 0x0) + 4a50: 07e8 br 0x4a20 // 4a20 + if(n==0)n=1; + 4a52: 3301 movi r3, 1 + 4a54: 07ee br 0x4a30 // 4a30 + +Disassembly of section .text.RC522_PcdSelect: + +00004a56 : +{ + 4a56: 14d1 push r4, r15 + 4a58: 1427 subi r14, r14, 28 + ucComMF522Buf[0]=PICC_ANTICOLL1; + 4a5a: 3300 movi r3, 0 + 4a5c: 2b6c subi r3, 109 + 4a5e: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x70; + 4a62: 3370 movi r3, 112 + 4a64: dc6e0009 st.b r3, (r14, 0x9) + ucComMF522Buf[6]=0; + 4a68: 3300 movi r3, 0 + 4a6a: dc6e000e st.b r3, (r14, 0xe) + 4a6e: 1a02 addi r2, r14, 8 + 4a70: 582e addi r1, r0, 4 + ucComMF522Buf[i+2]=*(pSnr+i); + 4a72: 8060 ld.b r3, (r0, 0x0) + 4a74: a262 st.b r3, (r2, 0x2) + ucComMF522Buf[6]^=*(pSnr+i); + 4a76: d88e000e ld.b r4, (r14, 0xe) + 4a7a: 2000 addi r0, 1 + 4a7c: 6cd1 xor r3, r4 + for(i=0;i<4;i++) + 4a7e: 6442 cmpne r0, r1 + ucComMF522Buf[6]^=*(pSnr+i); + 4a80: dc6e000e st.b r3, (r14, 0xe) + 4a84: 2200 addi r2, 1 + for(i=0;i<4;i++) + 4a86: 0bf6 bt 0x4a72 // 4a72 + RC522_CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]); //用MF522计算CRC16函数,校验数据 + 4a88: 1b02 addi r3, r14, 8 + 4a8a: 5b5a addi r2, r3, 7 + 4a8c: 6c0f mov r0, r3 + 4a8e: 3107 movi r1, 7 + 4a90: e3fffe9c bsr 0x47c8 // 47c8 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen); + 4a94: 3407 movi r4, 7 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4a96: 3108 movi r1, 8 + 4a98: 3008 movi r0, 8 + 4a9a: e3fffe86 bsr 0x47a6 // 47a6 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen); + 4a9e: 6138 addu r4, r14 + 4aa0: 1b02 addi r3, r14, 8 + 4aa2: b880 st.w r4, (r14, 0x0) + 4aa4: 3209 movi r2, 9 + 4aa6: 6c4f mov r1, r3 + 4aa8: 300c movi r0, 12 + 4aaa: e3ffff39 bsr 0x491c // 491c + if((stats==MI_OK)&&(unLen==0x18))stats=MI_OK; + 4aae: 3840 cmpnei r0, 0 + 4ab0: 0806 bt 0x4abc // 4abc + 4ab2: 8460 ld.b r3, (r4, 0x0) + 4ab4: 3b58 cmpnei r3, 24 + 4ab6: 0803 bt 0x4abc // 4abc +} + 4ab8: 1407 addi r14, r14, 28 + 4aba: 1491 pop r4, r15 + else stats=MI_ERR; + 4abc: 3002 movi r0, 2 + 4abe: 07fd br 0x4ab8 // 4ab8 + +Disassembly of section .text.RC522_PcdAuthState: + +00004ac0 : +{ + 4ac0: 14d2 push r4-r5, r15 + 4ac2: 1427 subi r14, r14, 28 + 4ac4: 6d0f mov r4, r3 + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 4ac6: 1b02 addi r3, r14, 8 +{ + 4ac8: 6d47 mov r5, r1 + ucComMF522Buf[0]=auth_mode; + 4aca: dc0e0008 st.b r0, (r14, 0x8) +{ + 4ace: 6c4b mov r1, r2 + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 4ad0: 5b06 addi r0, r3, 2 + 4ad2: 3206 movi r2, 6 + ucComMF522Buf[1]=addr; + 4ad4: dcae0009 st.b r5, (r14, 0x9) + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 4ad8: e3ffe7e6 bsr 0x1aa4 // 1aa4 <__memcpy_fast> + memcpy(&ucComMF522Buf[8],pSnr,4); + 4adc: 1b02 addi r3, r14, 8 + 4ade: 6c53 mov r1, r4 + 4ae0: 5b1e addi r0, r3, 8 + 4ae2: 3204 movi r2, 4 + 4ae4: e3ffe7e0 bsr 0x1aa4 // 1aa4 <__memcpy_fast> + stats=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen); + 4ae8: 3307 movi r3, 7 + 4aea: 60f8 addu r3, r14 + 4aec: b860 st.w r3, (r14, 0x0) + 4aee: 1b02 addi r3, r14, 8 + 4af0: 320c movi r2, 12 + 4af2: 6c4f mov r1, r3 + 4af4: 300e movi r0, 14 + 4af6: e3ffff13 bsr 0x491c // 491c + if((stats!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))stats = MI_ERR; + 4afa: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen); + 4afc: 6d03 mov r4, r0 + if((stats!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))stats = MI_ERR; + 4afe: 0809 bt 0x4b10 // 4b10 + 4b00: 3008 movi r0, 8 + 4b02: e3fffddf bsr 0x46c0 // 46c0 + 4b06: 3308 movi r3, 8 + 4b08: 680c and r0, r3 + 4b0a: 7400 zextb r0, r0 + 4b0c: 3840 cmpnei r0, 0 + 4b0e: 0802 bt 0x4b12 // 4b12 + 4b10: 3402 movi r4, 2 +} + 4b12: 6c13 mov r0, r4 + 4b14: 1407 addi r14, r14, 28 + 4b16: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdRequest: + +00004b18 : +{ + 4b18: 14d2 push r4-r5, r15 + 4b1a: 1427 subi r14, r14, 28 + 4b1c: 6d43 mov r5, r0 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 4b1e: 3212 movi r2, 18 +{ + 4b20: 6d07 mov r4, r1 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 4b22: 1802 addi r0, r14, 8 + 4b24: 3100 movi r1, 0 + 4b26: e3ffe77b bsr 0x1a1c // 1a1c <__memset_fast> + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位,/接收数据命令 + 4b2a: 3108 movi r1, 8 + 4b2c: 3008 movi r0, 8 + 4b2e: e3fffe3c bsr 0x47a6 // 47a6 + RC522_WriteRawRC(BitFramingReg,0x07); //写RC632寄存器 + 4b32: 3107 movi r1, 7 + 4b34: 300d movi r0, 13 + 4b36: e3fffde1 bsr 0x46f8 // 46f8 + RC522_SetBitMask(TxControlReg,0x03); //置RC522寄存器位 + 4b3a: 3103 movi r1, 3 + 4b3c: 3014 movi r0, 20 + 4b3e: e3fffe1b bsr 0x4774 // 4774 + ucComMF522Buf[0]=req_code; //寻卡方式 + 4b42: dcae0008 st.b r5, (r14, 0x8) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4b46: 3507 movi r5, 7 + 4b48: 1b02 addi r3, r14, 8 + 4b4a: 6178 addu r5, r14 + 4b4c: b8a0 st.w r5, (r14, 0x0) + 4b4e: 3201 movi r2, 1 + 4b50: 6c4f mov r1, r3 + 4b52: 300c movi r0, 12 + 4b54: e3fffee4 bsr 0x491c // 491c + if ((stats == MI_OK) && (unLen == 0x10)) { + 4b58: 3840 cmpnei r0, 0 + 4b5a: 080c bt 0x4b72 // 4b72 + 4b5c: 8560 ld.b r3, (r5, 0x0) + 4b5e: 3b50 cmpnei r3, 16 + 4b60: 0809 bt 0x4b72 // 4b72 + *pTagType = ucComMF522Buf[0]; //将数组里的数据赋值给*pTagType + 4b62: d86e0008 ld.b r3, (r14, 0x8) + 4b66: a460 st.b r3, (r4, 0x0) + *(pTagType + 1) = ucComMF522Buf[1]; + 4b68: d86e0009 ld.b r3, (r14, 0x9) + 4b6c: a461 st.b r3, (r4, 0x1) +} + 4b6e: 1407 addi r14, r14, 28 + 4b70: 1492 pop r4-r5, r15 + stats = MI_ERR; + 4b72: 3002 movi r0, 2 + 4b74: 07fd br 0x4b6e // 4b6e + +Disassembly of section .text.RC522_PcdAnticoll: + +00004b76 : +{ + 4b76: 14d2 push r4-r5, r15 + 4b78: 1427 subi r14, r14, 28 + 4b7a: 6d43 mov r5, r0 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4b7c: 3108 movi r1, 8 + 4b7e: 3008 movi r0, 8 + 4b80: e3fffe13 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(BitFramingReg,0x00); //写 + 4b84: 3100 movi r1, 0 + 4b86: 300d movi r0, 13 + 4b88: e3fffdb8 bsr 0x46f8 // 46f8 + RC522_ClearBitMask(CollReg,0x80); //清 + 4b8c: 3180 movi r1, 128 + 4b8e: 300e movi r0, 14 + 4b90: e3fffe0b bsr 0x47a6 // 47a6 + ucComMF522Buf[0]=PICC_ANTICOLL1; //PICC_ANTICOLL1 = 0x93 + 4b94: 3300 movi r3, 0 + 4b96: 2b6c subi r3, 109 + 4b98: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x20; + 4b9c: 3320 movi r3, 32 + 4b9e: dc6e0009 st.b r3, (r14, 0x9) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4ba2: 3307 movi r3, 7 + 4ba4: 60f8 addu r3, r14 + 4ba6: b860 st.w r3, (r14, 0x0) + 4ba8: 1b02 addi r3, r14, 8 + 4baa: 3202 movi r2, 2 + 4bac: 6c4f mov r1, r3 + 4bae: 300c movi r0, 12 + 4bb0: e3fffeb6 bsr 0x491c // 491c + if(stats==MI_OK) + 4bb4: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4bb6: 6d03 mov r4, r0 + if(stats==MI_OK) + 4bb8: 0812 bt 0x4bdc // 4bdc + 4bba: 3300 movi r3, 0 + 4bbc: 3200 movi r2, 0 + *(pSnr+i)=ucComMF522Buf[i]; //把读到的卡号赋值给pSnr + 4bbe: 1902 addi r1, r14, 8 + 4bc0: 604c addu r1, r3 + 4bc2: 8120 ld.b r1, (r1, 0x0) + 4bc4: 5d0c addu r0, r5, r3 + 4bc6: 2300 addi r3, 1 + 4bc8: a020 st.b r1, (r0, 0x0) + for(i=0;i<4;i++) + 4bca: 3b44 cmpnei r3, 4 + snr_check^=ucComMF522Buf[i]; + 4bcc: 6c49 xor r1, r2 + 4bce: 6c87 mov r2, r1 + for(i=0;i<4;i++) + 4bd0: 0bf7 bt 0x4bbe // 4bbe + if(snr_check!=ucComMF522Buf[i]) + 4bd2: d86e000c ld.b r3, (r14, 0xc) + 4bd6: 644e cmpne r3, r1 + 4bd8: 0c02 bf 0x4bdc // 4bdc + stats = MI_ERR; + 4bda: 3402 movi r4, 2 + RC522_SetBitMask(CollReg,0x80); + 4bdc: 3180 movi r1, 128 + 4bde: 300e movi r0, 14 + 4be0: e3fffdca bsr 0x4774 // 4774 +} + 4be4: 6c13 mov r0, r4 + 4be6: 1407 addi r14, r14, 28 + 4be8: 1492 pop r4-r5, r15 + +Disassembly of section .text.Card_Read_TasK: + +00004bec : + + + +//U32_T FailNum = 0; +U32_T scan_tick = 0; +void Card_Read_TasK(void){ + 4bec: 14d2 push r4-r5, r15 + + if(SysTick_1ms - scan_tick >= 100){ + 4bee: 112b lrw r1, 0x200000b4 // 4c98 + 4bf0: 114b lrw r2, 0x200002d4 // 4c9c + 4bf2: 118c lrw r4, 0x20000414 // 4ca0 + 4bf4: 9200 ld.w r0, (r2, 0x0) + 4bf6: 9160 ld.w r3, (r1, 0x0) + 4bf8: 60c2 subu r3, r0 + 4bfa: 3063 movi r0, 99 + 4bfc: 64c0 cmphs r0, r3 + 4bfe: 082c bt 0x4c56 // 4c56 + scan_tick = SysTick_1ms; + 4c00: 9160 ld.w r3, (r1, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read"); + + //寻卡: 识别天线范围内全部卡 + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4c02: 3119 movi r1, 25 + 4c04: 6050 addu r1, r4 + 4c06: 3052 movi r0, 82 + scan_tick = SysTick_1ms; + 4c08: b260 st.w r3, (r2, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4c0a: e3ffff87 bsr 0x4b18 // 4b18 + 4c0e: 3520 movi r5, 32 + 4c10: 3840 cmpnei r0, 0 + 4c12: 6150 addu r5, r4 + 4c14: 0836 bt 0x4c80 // 4c80 + CardInfo.FailNum = 0x00; + 4c16: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 4c18: 1123 lrw r1, 0x5f75 // 4ca4 + CardInfo.FailNum = 0x00; + 4c1a: a566 st.b r3, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 4c1c: e3fffcd2 bsr 0x45c0 // 45c0 + //防冲撞:获取IC卡的卡号 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4c20: 301b movi r0, 27 + 4c22: 6010 addu r0, r4 + 4c24: e3ffffa9 bsr 0x4b76 // 4b76 + 4c28: 3840 cmpnei r0, 0 + 4c2a: 0829 bt 0x4c7c // 4c7c + //选定要进行操作的卡片 + if(RC522_PcdSelect(CardInfo.SN)==MI_OK){ + 4c2c: 301b movi r0, 27 + 4c2e: 6010 addu r0, r4 + 4c30: e3ffff13 bsr 0x4a56 // 4a56 + 4c34: 3840 cmpnei r0, 0 + 4c36: 0821 bt 0x4c78 // 4c78 + //验证卡片密码 + if(RC522_PcdAuthState(CardInfo.CardKeyType, CardInfo.BlockLoc, CardInfo.CardKey, CardInfo.SN)==MI_OK){ + 4c38: 331b movi r3, 27 + 4c3a: 8428 ld.b r1, (r4, 0x8) + 4c3c: 841f ld.b r0, (r4, 0x1f) + 4c3e: 60d0 addu r3, r4 + 4c40: 6c97 mov r2, r5 + 4c42: e3ffff3f bsr 0x4ac0 // 4ac0 + 4c46: 3840 cmpnei r0, 0 + 4c48: 0813 bt 0x4c6e // 4c6e + //读取指定块的数据 +// if(RC522_PcdRead(CardInfo.BlockLoc, CardInfo.CradDataBuf)==MI_OK) + { + + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Block %d",CardInfo.BlockLoc); + 4c4a: 8448 ld.b r2, (r4, 0x8) + 4c4c: 1037 lrw r1, 0x5f85 // 4ca8 + 4c4e: e3fffcb9 bsr 0x45c0 // 45c0 + + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS, "Card Data",CardInfo.CradDataBuf,BLOCK_HAVE_BYTE); + + CardInfo.BlockSucc = BLOCK_READ_SUCC; + 4c52: 3301 movi r3, 1 + 4c54: a467 st.b r3, (r4, 0x7) + CardInfo.FailNum++; + } + } + } + + if(CardInfo.BlockSucc != CardInfo.BlockLast){ + 4c56: 8467 ld.b r3, (r4, 0x7) + 4c58: 8446 ld.b r2, (r4, 0x6) + 4c5a: 64ca cmpne r2, r3 + 4c5c: 0c08 bf 0x4c6c // 4c6c + CardInfo.BlockLast = CardInfo.BlockSucc; + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4c5e: 3b41 cmpnei r3, 1 + CardInfo.BlockLast = CardInfo.BlockSucc; + 4c60: a466 st.b r3, (r4, 0x6) + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4c62: 0805 bt 0x4c6c // 4c6c + + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read SUCC"); + 4c64: 1032 lrw r1, 0x5fd7 // 4cac + 4c66: 3000 movi r0, 0 + 4c68: e3fffcac bsr 0x45c0 // 45c0 + + } + } + + +} + 4c6c: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Key Error"); + 4c6e: 1031 lrw r1, 0x5f93 // 4cb0 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 4c70: 3000 movi r0, 0 + 4c72: e3fffca7 bsr 0x45c0 // 45c0 + 4c76: 07f0 br 0x4c56 // 4c56 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Select Error"); + 4c78: 102f lrw r1, 0x5fa2 // 4cb4 + 4c7a: 07fb br 0x4c70 // 4c70 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 4c7c: 102f lrw r1, 0x5fb4 // 4cb8 + 4c7e: 07f9 br 0x4c70 // 4c70 + if(CardInfo.FailNum >= 5){ + 4c80: 8566 ld.b r3, (r5, 0x6) + 4c82: 3b04 cmphsi r3, 5 + 4c84: 0c07 bf 0x4c92 // 4c92 + CardInfo.FailNum = 0; + 4c86: 3300 movi r3, 0 + 4c88: a566 st.b r3, (r5, 0x6) + CardInfo.SuccNum = 0; + 4c8a: a567 st.b r3, (r5, 0x7) + CardInfo.BlockSucc = BLOCK_READ_FAILD; + 4c8c: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_FAILD"); + 4c8e: 102c lrw r1, 0x5fc6 // 4cbc + 4c90: 07f0 br 0x4c70 // 4c70 + CardInfo.FailNum++; + 4c92: 2300 addi r3, 1 + 4c94: a566 st.b r3, (r5, 0x6) + 4c96: 07e0 br 0x4c56 // 4c56 + 4c98: 200000b4 .long 0x200000b4 + 4c9c: 200002d4 .long 0x200002d4 + 4ca0: 20000414 .long 0x20000414 + 4ca4: 00005f75 .long 0x00005f75 + 4ca8: 00005f85 .long 0x00005f85 + 4cac: 00005fd7 .long 0x00005fd7 + 4cb0: 00005f93 .long 0x00005f93 + 4cb4: 00005fa2 .long 0x00005fa2 + 4cb8: 00005fb4 .long 0x00005fb4 + 4cbc: 00005fc6 .long 0x00005fc6 + +Disassembly of section .text.RLY_Light_Ctrl.part.0: + +00004cc0 : + } +} + + +///无RF模块继电器和背光控制函数 +void RLY_Light_Ctrl(U8_T state) + 4cc0: 14d0 push r15 +{ + if(state == 0x01) + { + CTRL_RLY_ON; + 4cc2: 1064 lrw r3, 0x2000004c // 4cd0 + 4cc4: 3100 movi r1, 0 + 4cc6: 9300 ld.w r0, (r3, 0x0) + 4cc8: e3fff347 bsr 0x3356 // 3356 + else if(state == 0x00) + { + CTRL_RLY_OFF; +// Ctrl_Backlight(1); + } +} + 4ccc: 1490 pop r15 + 4cce: 0000 bkpt + 4cd0: 2000004c .long 0x2000004c + +Disassembly of section .text.KEY1_LONG_PRESS_RELEASE_Handler: + +00004cd4 : + + +U8_T LED_STATE = 0; +///无RF模块的门磁长按释放事件 +void KEY1_LONG_PRESS_RELEASE_Handler(void* btn) +{ + 4cd4: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_RELEASE_Handler"); + 4cd6: 1034 lrw r1, 0x5fef // 4d24 + 4cd8: 3000 movi r0, 0 + 4cda: e3fffc73 bsr 0x45c0 // 45c0 + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4cde: 1073 lrw r3, 0x20000414 // 4d28 + 4ce0: 8367 ld.b r3, (r3, 0x7) + 4ce2: 3b40 cmpnei r3, 0 + 4ce4: 1092 lrw r4, 0x2000047c // 4d2c + 4ce6: 081b bt 0x4d1c // 4d1c + { + if(READ_RLY_STATE != 0x00) + 4ce8: 1072 lrw r3, 0x2000004c // 4d30 + 4cea: 3100 movi r1, 0 + 4cec: 9300 ld.w r0, (r3, 0x0) + 4cee: e3fff34b bsr 0x3384 // 3384 + 4cf2: 3840 cmpnei r0, 0 + 4cf4: 0c0a bf 0x4d08 // 4d08 + 4cf6: e3ffffe5 bsr 0x4cc0 // 4cc0 + { + RLY_Light_Ctrl(1); + LED_STATE = 4; + 4cfa: 106f lrw r3, 0x200002d8 // 4d34 + 4cfc: 3204 movi r2, 4 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 4cfe: 102f lrw r1, 0x600a // 4d38 + 4d00: 3000 movi r0, 0 + LED_STATE = 4; + 4d02: a340 st.b r2, (r3, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 4d04: e3fffc5e bsr 0x45c0 // 45c0 + } + dm_in.DM_Tick = SysTick_1ms; + 4d08: 106d lrw r3, 0x200000b4 // 4d3c + 4d0a: 104e lrw r2, 0x2000047d // 4d40 + 4d0c: 9360 ld.w r3, (r3, 0x0) + 4d0e: 4b28 lsri r1, r3, 8 + 4d10: a461 st.b r3, (r4, 0x1) + 4d12: a221 st.b r1, (r2, 0x1) + 4d14: 4b30 lsri r1, r3, 16 + 4d16: 4b78 lsri r3, r3, 24 + 4d18: a222 st.b r1, (r2, 0x2) + 4d1a: a263 st.b r3, (r2, 0x3) + } + + dm_in.DM_State = 0x02; + 4d1c: 3302 movi r3, 2 + 4d1e: a460 st.b r3, (r4, 0x0) +} + 4d20: 1491 pop r4, r15 + 4d22: 0000 bkpt + 4d24: 00005fef .long 0x00005fef + 4d28: 20000414 .long 0x20000414 + 4d2c: 2000047c .long 0x2000047c + 4d30: 2000004c .long 0x2000004c + 4d34: 200002d8 .long 0x200002d8 + 4d38: 0000600a .long 0x0000600a + 4d3c: 200000b4 .long 0x200000b4 + 4d40: 2000047d .long 0x2000047d + +Disassembly of section .text.RLY_Light_Ctrl: + +00004d44 : +{ + 4d44: 14d0 push r15 + if(state == 0x01) + 4d46: 3841 cmpnei r0, 1 + 4d48: 0804 bt 0x4d50 // 4d50 + 4d4a: e3ffffbb bsr 0x4cc0 // 4cc0 +} + 4d4e: 1490 pop r15 + else if(state == 0x00) + 4d50: 3840 cmpnei r0, 0 + 4d52: 0bfe bt 0x4d4e // 4d4e + CTRL_RLY_OFF; + 4d54: 1063 lrw r3, 0x2000004c // 4d60 + 4d56: 3100 movi r1, 0 + 4d58: 9300 ld.w r0, (r3, 0x0) + 4d5a: e3fff2fa bsr 0x334e // 334e +} + 4d5e: 07f8 br 0x4d4e // 4d4e + 4d60: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Init: + +00004d64 : +{ + 4d64: 14d1 push r4, r15 + GPIO_Init(GPIOB0,CARD_SENS_PIN,Output); //CARD_SENS + 4d66: 108d lrw r4, 0x20000048 // 4d98 + 4d68: 3200 movi r2, 0 + 4d6a: 9400 ld.w r0, (r4, 0x0) + 4d6c: 3100 movi r1, 0 + 4d6e: e3fff26f bsr 0x324c // 324c + CTRL_CARD_OUT; + 4d72: 9400 ld.w r0, (r4, 0x0) + 4d74: 3100 movi r1, 0 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Intput); //LED_IN + 4d76: 108a lrw r4, 0x2000004c // 4d9c + CTRL_CARD_OUT; + 4d78: e3fff2eb bsr 0x334e // 334e + GPIO_Init(GPIOA0,LED_INPUT_PIN,Intput); //LED_IN + 4d7c: 3201 movi r2, 1 + 4d7e: 9400 ld.w r0, (r4, 0x0) + 4d80: 310c movi r1, 12 + 4d82: e3fff265 bsr 0x324c // 324c + g_read.Led_state = READ_LED_IN; + 4d86: 9400 ld.w r0, (r4, 0x0) + 4d88: 310c movi r1, 12 + 4d8a: e3fff2f5 bsr 0x3374 // 3374 + 4d8e: 1065 lrw r3, 0x20000444 // 4da0 + g_read.last_state = g_read.Led_state; + 4d90: a302 st.b r0, (r3, 0x2) + g_read.Led_state = READ_LED_IN; + 4d92: a303 st.b r0, (r3, 0x3) +} + 4d94: 1491 pop r4, r15 + 4d96: 0000 bkpt + 4d98: 20000048 .long 0x20000048 + 4d9c: 2000004c .long 0x2000004c + 4da0: 20000444 .long 0x20000444 + +Disassembly of section .text.Debounce_Task: + +00004da4 : +void Debounce_Task(void){ + 4da4: 14d1 push r4, r15 + if (SysTick_1ms - g_read.read_tick >= 10) { + 4da6: 1097 lrw r4, 0x20000444 // 4e00 + 4da8: 8445 ld.b r2, (r4, 0x5) + 4daa: 8464 ld.b r3, (r4, 0x4) + 4dac: 4248 lsli r2, r2, 8 + 4dae: 6c8c or r2, r3 + 4db0: 8466 ld.b r3, (r4, 0x6) + 4db2: 4370 lsli r3, r3, 16 + 4db4: 6c8c or r2, r3 + 4db6: 8467 ld.b r3, (r4, 0x7) + 4db8: 1013 lrw r0, 0x200000b4 // 4e04 + 4dba: 4378 lsli r3, r3, 24 + 4dbc: 9020 ld.w r1, (r0, 0x0) + 4dbe: 6cc8 or r3, r2 + 4dc0: 604e subu r1, r3 + 4dc2: 3909 cmphsi r1, 10 + 4dc4: 0c17 bf 0x4df2 // 4df2 + g_read.read_tick = SysTick_1ms; + 4dc6: 9060 ld.w r3, (r0, 0x0) + 4dc8: 4b48 lsri r2, r3, 8 + 4dca: a464 st.b r3, (r4, 0x4) + 4dcc: a445 st.b r2, (r4, 0x5) + 4dce: 4b50 lsri r2, r3, 16 + 4dd0: 4b78 lsri r3, r3, 24 + 4dd2: a467 st.b r3, (r4, 0x7) + g_read.read_state = READ_LED_IN; + 4dd4: 310c movi r1, 12 + 4dd6: 106d lrw r3, 0x2000004c // 4e08 + 4dd8: 9300 ld.w r0, (r3, 0x0) + g_read.read_tick = SysTick_1ms; + 4dda: a446 st.b r2, (r4, 0x6) + g_read.read_state = READ_LED_IN; + 4ddc: e3fff2cc bsr 0x3374 // 3374 + if (g_read.read_state == g_read.last_state) { + 4de0: 8442 ld.b r2, (r4, 0x2) + 4de2: 640a cmpne r2, r0 + g_read.read_state = READ_LED_IN; + 4de4: a401 st.b r0, (r4, 0x1) + if (g_read.read_state == g_read.last_state) { + 4de6: 0809 bt 0x4df8 // 4df8 + if (g_read.read_count < debounce_count) { + 4de8: 8460 ld.b r3, (r4, 0x0) + 4dea: 3b02 cmphsi r3, 3 + 4dec: 0804 bt 0x4df4 // 4df4 + g_read.read_count++; + 4dee: 2300 addi r3, 1 + 4df0: a460 st.b r3, (r4, 0x0) +} + 4df2: 1491 pop r4, r15 + g_read.Led_state = g_read.read_state; + 4df4: a443 st.b r2, (r4, 0x3) + 4df6: 07fe br 0x4df2 // 4df2 + g_read.read_count=0; + 4df8: 3300 movi r3, 0 + 4dfa: a460 st.b r3, (r4, 0x0) + g_read.last_state = g_read.read_state; + 4dfc: a402 st.b r0, (r4, 0x2) +} + 4dfe: 07fa br 0x4df2 // 4df2 + 4e00: 20000444 .long 0x20000444 + 4e04: 200000b4 .long 0x200000b4 + 4e08: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Task: + +00004e0c : +{ + 4e0c: 14d2 push r4-r5, r15 + if((CardInfo.BlockSucc==BLOCK_READ_SUCC) && (READ_CARD_STATE == 1)) + 4e0e: 107e lrw r3, 0x20000414 // 4e84 + 4e10: 8347 ld.b r2, (r3, 0x7) + 4e12: 3a41 cmpnei r2, 1 + 4e14: 6d0f mov r4, r3 + 4e16: 081f bt 0x4e54 // 4e54 + 4e18: 10bc lrw r5, 0x20000048 // 4e88 + 4e1a: 3100 movi r1, 0 + 4e1c: 9500 ld.w r0, (r5, 0x0) + 4e1e: e3fff2b3 bsr 0x3384 // 3384 + 4e22: 3841 cmpnei r0, 1 + 4e24: 0818 bt 0x4e54 // 4e54 + CTRL_CARD_IN; + 4e26: 9500 ld.w r0, (r5, 0x0) + 4e28: 3100 movi r1, 0 + 4e2a: e3fff296 bsr 0x3356 // 3356 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4e2e: 9500 ld.w r0, (r5, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4e30: 3100 movi r1, 0 + 4e32: e3fff2a9 bsr 0x3384 // 3384 + 4e36: 6c83 mov r2, r0 + 4e38: 1035 lrw r1, 0x601c // 4e8c + 4e3a: 3000 movi r0, 0 + 4e3c: e3fffbc2 bsr 0x45c0 // 45c0 + if(g_read.Led_state == 0x00) + 4e40: 1074 lrw r3, 0x20000444 // 4e90 + 4e42: 8363 ld.b r3, (r3, 0x3) + 4e44: 3b40 cmpnei r3, 0 + 4e46: 0817 bt 0x4e74 // 4e74 + GPT0->CMPA = 2000; + 4e48: 1073 lrw r3, 0x20000024 // 4e94 + 4e4a: 9340 ld.w r2, (r3, 0x0) + 4e4c: 33fa movi r3, 250 + 4e4e: 4363 lsli r3, r3, 3 + 4e50: b26b st.w r3, (r2, 0x2c) +} + 4e52: 1492 pop r4-r5, r15 + else if((CardInfo.BlockSucc==BLOCK_READ_FAILD) && (READ_CARD_STATE == 0)) + 4e54: 8467 ld.b r3, (r4, 0x7) + 4e56: 3b40 cmpnei r3, 0 + 4e58: 0bf4 bt 0x4e40 // 4e40 + 4e5a: 108c lrw r4, 0x20000048 // 4e88 + 4e5c: 3100 movi r1, 0 + 4e5e: 9400 ld.w r0, (r4, 0x0) + 4e60: e3fff292 bsr 0x3384 // 3384 + 4e64: 3840 cmpnei r0, 0 + 4e66: 0bed bt 0x4e40 // 4e40 + CTRL_CARD_OUT; + 4e68: 9400 ld.w r0, (r4, 0x0) + 4e6a: 3100 movi r1, 0 + 4e6c: e3fff271 bsr 0x334e // 334e + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4e70: 9400 ld.w r0, (r4, 0x0) + 4e72: 07df br 0x4e30 // 4e30 + else if(g_read.Led_state == 0x01) + 4e74: 3b41 cmpnei r3, 1 + 4e76: 0bee bt 0x4e52 // 4e52 + GPT0->CMPA = 0; + 4e78: 1067 lrw r3, 0x20000024 // 4e94 + 4e7a: 3200 movi r2, 0 + 4e7c: 9360 ld.w r3, (r3, 0x0) + 4e7e: b34b st.w r2, (r3, 0x2c) +} + 4e80: 07e9 br 0x4e52 // 4e52 + 4e82: 0000 bkpt + 4e84: 20000414 .long 0x20000414 + 4e88: 20000048 .long 0x20000048 + 4e8c: 0000601c .long 0x0000601c + 4e90: 20000444 .long 0x20000444 + 4e94: 20000024 .long 0x20000024 + +Disassembly of section .text.LogicCtrl_NoRF_Init: + +00004e98 : + + +///无RF模块的初始化 +void LogicCtrl_NoRF_Init(void) +{ + 4e98: 14d1 push r4, r15 + GPIO_Init(GPIOA0,RLY_OUT_PIN,Output); + 4e9a: 1097 lrw r4, 0x2000004c // 4ef4 + 4e9c: 3200 movi r2, 0 + 4e9e: 9400 ld.w r0, (r4, 0x0) + 4ea0: 3100 movi r1, 0 + 4ea2: e3fff1d5 bsr 0x324c // 324c + CTRL_RLY_OFF; + 4ea6: 9400 ld.w r0, (r4, 0x0) + 4ea8: 3100 movi r1, 0 + 4eaa: e3fff252 bsr 0x334e // 334e + + memset(&dm_in,0,sizeof(DM_IN_INF)); + 4eae: 3209 movi r2, 9 + 4eb0: 3100 movi r1, 0 + 4eb2: 1012 lrw r0, 0x2000047c // 4ef8 + 4eb4: e3ffe5b4 bsr 0x1a1c // 1a1c <__memset_fast> + + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 4eb8: 9400 ld.w r0, (r4, 0x0) + 4eba: 3201 movi r2, 1 + 4ebc: 3101 movi r1, 1 + 4ebe: e3fff1c7 bsr 0x324c // 324c + + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4ec2: 3200 movi r2, 0 + 4ec4: 9400 ld.w r0, (r4, 0x0) + 4ec6: 310c movi r1, 12 + 4ec8: e3fff1c2 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4ecc: 9400 ld.w r0, (r4, 0x0) + 4ece: 310c movi r1, 12 + + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 4ed0: 108b lrw r4, 0x2000044c // 4efc + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4ed2: e3fff242 bsr 0x3356 // 3356 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 4ed6: 3301 movi r3, 1 + 4ed8: 6c13 mov r0, r4 + 4eda: 3200 movi r2, 0 + 4edc: 1029 lrw r1, 0x5290 // 4f00 + 4ede: e0000107 bsr 0x50ec // 50ec + +// button_attach(&KEY1, LONG_PRESS_START, KEY1_LONG_PRESS_START_Handler); + button_attach(&KEY1, LONG_PRESS_RELEASE, KEY1_LONG_PRESS_RELEASE_Handler); + 4ee2: 1049 lrw r2, 0x4cd4 // 4f04 + 4ee4: 3107 movi r1, 7 + 4ee6: 6c13 mov r0, r4 + 4ee8: e000011f bsr 0x5126 // 5126 + button_start(&KEY1); + 4eec: 6c13 mov r0, r4 + 4eee: e00001b1 bsr 0x5250 // 5250 +} + 4ef2: 1491 pop r4, r15 + 4ef4: 2000004c .long 0x2000004c + 4ef8: 2000047c .long 0x2000047c + 4efc: 2000044c .long 0x2000044c + 4f00: 00005290 .long 0x00005290 + 4f04: 00004cd4 .long 0x00004cd4 + +Disassembly of section .text.LogicCtrl_NoRF_Task: + +00004f08 : + + +///无RF模块的轮询任务 +void LogicCtrl_NoRF_Task(void) +{ + 4f08: 14d3 push r4-r6, r15 + static U32_T card_tick = 0; + static U32_T test_tick = 0; + + if(SysTick_1ms - test_tick > 5) + 4f0a: 11ab lrw r5, 0x200000b4 // 4fb4 + 4f0c: 118b lrw r4, 0x200002d8 // 4fb8 + 4f0e: 9560 ld.w r3, (r5, 0x0) + 4f10: 9441 ld.w r2, (r4, 0x4) + 4f12: 60ca subu r3, r2 + 4f14: 3b05 cmphsi r3, 6 + 4f16: 0c05 bf 0x4f20 // 4f20 + { + test_tick = SysTick_1ms; + 4f18: 9560 ld.w r3, (r5, 0x0) + 4f1a: b461 st.w r3, (r4, 0x4) + button_ticks(); + 4f1c: e00001ac bsr 0x5274 // 5274 + } + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 4f20: 11c7 lrw r6, 0x20000414 // 4fbc + 4f22: 8667 ld.b r3, (r6, 0x7) + 4f24: 3b41 cmpnei r3, 1 + 4f26: 0833 bt 0x4f8c // 4f8c + 4f28: e3fffecc bsr 0x4cc0 // 4cc0 + { + RLY_Light_Ctrl(1); + LED_STATE = 1; + 4f2c: 3301 movi r3, 1 + 4f2e: a460 st.b r3, (r4, 0x0) + card_tick = SysTick_1ms; + 4f30: 9560 ld.w r3, (r5, 0x0) + 4f32: b462 st.w r3, (r4, 0x8) + dm_in.DM_State = 0x00; + 4f34: 3200 movi r2, 0 + 4f36: 1163 lrw r3, 0x2000047c // 4fc0 + 4f38: a340 st.b r2, (r3, 0x0) + LED_STATE =2; +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card OUT RLY OFF"); + } + + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4f3a: 8667 ld.b r3, (r6, 0x7) + 4f3c: 3b40 cmpnei r3, 0 + 4f3e: 0826 bt 0x4f8a // 4f8a + { + + if((dm_in.DM_State == 0x02) && (SysTick_1ms - dm_in.DM_Tick >= 30000)) + 4f40: 1160 lrw r3, 0x2000047c // 4fc0 + 4f42: 8340 ld.b r2, (r3, 0x0) + 4f44: 3a42 cmpnei r2, 2 + 4f46: 0822 bt 0x4f8a // 4f8a + 4f48: 8322 ld.b r1, (r3, 0x2) + 4f4a: 8341 ld.b r2, (r3, 0x1) + 4f4c: 4128 lsli r1, r1, 8 + 4f4e: 6c48 or r1, r2 + 4f50: 8343 ld.b r2, (r3, 0x3) + 4f52: 4250 lsli r2, r2, 16 + 4f54: 6c48 or r1, r2 + 4f56: 8344 ld.b r2, (r3, 0x4) + 4f58: 4258 lsli r2, r2, 24 + 4f5a: 6c84 or r2, r1 + 4f5c: 9500 ld.w r0, (r5, 0x0) + 4f5e: 600a subu r0, r2 + 4f60: 1059 lrw r2, 0x752f // 4fc4 + 4f62: 6408 cmphs r2, r0 + 4f64: 0813 bt 0x4f8a // 4f8a + { + dm_in.DM_Tick = SysTick_1ms; + 4f66: 9540 ld.w r2, (r5, 0x0) + 4f68: 5b22 addi r1, r3, 1 + 4f6a: a341 st.b r2, (r3, 0x1) + 4f6c: 4a68 lsri r3, r2, 8 + 4f6e: a161 st.b r3, (r1, 0x1) + RLY_Light_Ctrl(0); + 4f70: 3000 movi r0, 0 + dm_in.DM_Tick = SysTick_1ms; + 4f72: 4a70 lsri r3, r2, 16 + 4f74: 4a58 lsri r2, r2, 24 + 4f76: a162 st.b r3, (r1, 0x2) + 4f78: a143 st.b r2, (r1, 0x3) + RLY_Light_Ctrl(0); + 4f7a: e3fffee5 bsr 0x4d44 // 4d44 + LED_STATE = 3; + 4f7e: 3303 movi r3, 3 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 4f80: 1032 lrw r1, 0x6041 // 4fc8 + 4f82: 3000 movi r0, 0 + LED_STATE = 3; + 4f84: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 4f86: e3fffb1d bsr 0x45c0 // 45c0 + } + } +} + 4f8a: 1493 pop r4-r6, r15 + else if((CardInfo.BlockSucc == BLOCK_READ_FAILD) && (dm_in.DM_State == 0x00) && (SysTick_1ms - card_tick >= 40000)) + 4f8c: 3b40 cmpnei r3, 0 + 4f8e: 0bd6 bt 0x4f3a // 4f3a + 4f90: 106c lrw r3, 0x2000047c // 4fc0 + 4f92: 8360 ld.b r3, (r3, 0x0) + 4f94: 3b40 cmpnei r3, 0 + 4f96: 0bd2 bt 0x4f3a // 4f3a + 4f98: 9442 ld.w r2, (r4, 0x8) + 4f9a: 9560 ld.w r3, (r5, 0x0) + 4f9c: 60ca subu r3, r2 + 4f9e: 104c lrw r2, 0x9c3f // 4fcc + 4fa0: 64c8 cmphs r2, r3 + 4fa2: 0bcc bt 0x4f3a // 4f3a + card_tick = SysTick_1ms; + 4fa4: 9560 ld.w r3, (r5, 0x0) + RLY_Light_Ctrl(0); + 4fa6: 3000 movi r0, 0 + card_tick = SysTick_1ms; + 4fa8: b462 st.w r3, (r4, 0x8) + RLY_Light_Ctrl(0); + 4faa: e3fffecd bsr 0x4d44 // 4d44 + LED_STATE =2; + 4fae: 3302 movi r3, 2 + 4fb0: a460 st.b r3, (r4, 0x0) + 4fb2: 07c4 br 0x4f3a // 4f3a + 4fb4: 200000b4 .long 0x200000b4 + 4fb8: 200002d8 .long 0x200002d8 + 4fbc: 20000414 .long 0x20000414 + 4fc0: 2000047c .long 0x2000047c + 4fc4: 0000752f .long 0x0000752f + 4fc8: 00006041 .long 0x00006041 + 4fcc: 00009c3f .long 0x00009c3f + +Disassembly of section .text.BackLight_Task: + +00004fd0 : + + +void BackLight_Task(void){ + //无RF模块的背光灯控制 + if (LED_STATE == 1) { + 4fd0: 106b lrw r3, 0x200002d8 // 4ffc + 4fd2: 8360 ld.b r3, (r3, 0x0) + 4fd4: 3b41 cmpnei r3, 1 + 4fd6: 0806 bt 0x4fe2 // 4fe2 + GPT0->CMPA = 0; + 4fd8: 106a lrw r3, 0x20000024 // 5000 + 4fda: 3200 movi r2, 0 + 4fdc: 9360 ld.w r3, (r3, 0x0) + 4fde: b34b st.w r2, (r3, 0x2c) +// else if(g_read.Led_state == 0x01) +// { +// Ctrl_Backlight(0); //关背光 +//// Dbg_Println(DBG_BIT_SYS_STATUS, "LogicCtrl_Task Backlight OFF"); +// } +} + 4fe0: 0408 br 0x4ff0 // 4ff0 + }else if (LED_STATE == 2) { + 4fe2: 3b42 cmpnei r3, 2 + 4fe4: 0807 bt 0x4ff2 // 4ff2 + GPT0->CMPA = 2000; + 4fe6: 1067 lrw r3, 0x20000024 // 5000 + 4fe8: 9340 ld.w r2, (r3, 0x0) + 4fea: 33fa movi r3, 250 + 4fec: 4363 lsli r3, r3, 3 + 4fee: b26b st.w r3, (r2, 0x2c) +} + 4ff0: 783c jmp r15 + }else if (LED_STATE == 3) { + 4ff2: 3b43 cmpnei r3, 3 + 4ff4: 0ff9 bf 0x4fe6 // 4fe6 + }else if (LED_STATE == 4) { + 4ff6: 3b44 cmpnei r3, 4 + 4ff8: 0bfc bt 0x4ff0 // 4ff0 + 4ffa: 07ef br 0x4fd8 // 4fd8 + 4ffc: 200002d8 .long 0x200002d8 + 5000: 20000024 .long 0x20000024 + +Disassembly of section .text.Detect_WIFI_Task: + +00005004 : + +void Detect_WIFI_Task(void){ + 5004: 14d1 push r4, r15 + + if (finish_flag == 1) return; + 5006: 107c lrw r3, 0x200000a2 // 5074 + 5008: 8340 ld.b r2, (r3, 0x0) + 500a: 3a41 cmpnei r2, 1 + 500c: 0c1c bf 0x5044 // 5044 + + if (detect_count <10) { + 500e: 109b lrw r4, 0x200000a8 // 5078 + 5010: 8440 ld.b r2, (r4, 0x0) + 5012: 3a09 cmphsi r2, 10 + 5014: 081c bt 0x504c // 504c + if(SysTick_1ms - detect_tick >= 10) { + 5016: 103a lrw r1, 0x200000b4 // 507c + 5018: 105a lrw r2, 0x200000a4 // 5080 + 501a: 9160 ld.w r3, (r1, 0x0) + 501c: 9200 ld.w r0, (r2, 0x0) + 501e: 60c2 subu r3, r0 + 5020: 3b09 cmphsi r3, 10 + 5022: 0c11 bf 0x5044 // 5044 + detect_tick = SysTick_1ms; + 5024: 9160 ld.w r3, (r1, 0x0) + 5026: b260 st.w r3, (r2, 0x0) + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 5028: 3102 movi r1, 2 + 502a: 1077 lrw r3, 0x20000048 // 5084 + 502c: 9300 ld.w r0, (r3, 0x0) + 502e: e3fff1a3 bsr 0x3374 // 3374 + 5032: 1076 lrw r3, 0x200000a0 // 5088 + 5034: a300 st.b r0, (r3, 0x0) + + if (last_state != rf_exist) { + 5036: 1076 lrw r3, 0x200000a1 // 508c + 5038: 8340 ld.b r2, (r3, 0x0) + 503a: 640a cmpne r2, r0 + 503c: 0c05 bf 0x5046 // 5046 + last_state = rf_exist; + 503e: a300 st.b r0, (r3, 0x0) + detect_count = 0; + 5040: 3300 movi r3, 0 + }else { + detect_count++; + 5042: a460 st.b r3, (r4, 0x0) + { + LogicCtrl_Init(); + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + } + } +} + 5044: 1491 pop r4, r15 + detect_count++; + 5046: 8460 ld.b r3, (r4, 0x0) + 5048: 2300 addi r3, 1 + 504a: 07fc br 0x5042 // 5042 + finish_flag = 1; + 504c: 3201 movi r2, 1 + 504e: a340 st.b r2, (r3, 0x0) + if(rf_exist == 0x01) //不带无线模块初始化 + 5050: 106e lrw r3, 0x200000a0 // 5088 + 5052: 8360 ld.b r3, (r3, 0x0) + 5054: 3b41 cmpnei r3, 1 + 5056: 0808 bt 0x5066 // 5066 + LogicCtrl_NoRF_Init(); + 5058: e3ffff20 bsr 0x4e98 // 4e98 + Dbg_Println(DBG_BIT_SYS_STATUS, "NoRF"); + 505c: 102d lrw r1, 0x6052 // 5090 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 505e: 3000 movi r0, 0 + 5060: e3fffab0 bsr 0x45c0 // 45c0 + 5064: 07f0 br 0x5044 // 5044 + else if(rf_exist == 0x00) //带无线模块初始化 + 5066: 3b40 cmpnei r3, 0 + 5068: 0bee bt 0x5044 // 5044 + LogicCtrl_Init(); + 506a: e3fffe7d bsr 0x4d64 // 4d64 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 506e: 102a lrw r1, 0x6054 // 5094 + 5070: 07f7 br 0x505e // 505e + 5072: 0000 bkpt + 5074: 200000a2 .long 0x200000a2 + 5078: 200000a8 .long 0x200000a8 + 507c: 200000b4 .long 0x200000b4 + 5080: 200000a4 .long 0x200000a4 + 5084: 20000048 .long 0x20000048 + 5088: 200000a0 .long 0x200000a0 + 508c: 200000a1 .long 0x200000a1 + 5090: 00006052 .long 0x00006052 + 5094: 00006054 .long 0x00006054 + +Disassembly of section .text.DM_Led_Task: + +00005098 : + +void DM_Led_Task(void){ + 5098: 14d1 push r4, r15 +// if (dm_in.DM_State == 0x02) { //门磁开 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) { + 509a: 1051 lrw r2, 0x2000047c // 50dc + 509c: 8226 ld.b r1, (r2, 0x6) + 509e: 8265 ld.b r3, (r2, 0x5) + 50a0: 4128 lsli r1, r1, 8 + 50a2: 6c4c or r1, r3 + 50a4: 8267 ld.b r3, (r2, 0x7) + 50a6: 4370 lsli r3, r3, 16 + 50a8: 6c4c or r1, r3 + 50aa: 8268 ld.b r3, (r2, 0x8) + 50ac: 108d lrw r4, 0x200000b4 // 50e0 + 50ae: 4378 lsli r3, r3, 24 + 50b0: 6cc4 or r3, r1 + 50b2: 9400 ld.w r0, (r4, 0x0) + 50b4: 600e subu r0, r3 + 50b6: 106c lrw r3, 0x1f3 // 50e4 + 50b8: 640c cmphs r3, r0 + 50ba: 080f bt 0x50d8 // 50d8 + dm_in.DM_Led_Tick = SysTick_1ms; + 50bc: 9460 ld.w r3, (r4, 0x0) + 50be: 5a32 addi r1, r2, 5 + 50c0: a265 st.b r3, (r2, 0x5) + 50c2: 4b48 lsri r2, r3, 8 + 50c4: a141 st.b r2, (r1, 0x1) + 50c6: 4b50 lsri r2, r3, 16 + 50c8: 4b78 lsri r3, r3, 24 + 50ca: a163 st.b r3, (r1, 0x3) + 50cc: a142 st.b r2, (r1, 0x2) + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 50ce: 310c movi r1, 12 + 50d0: 1066 lrw r3, 0x2000004c // 50e8 + 50d2: 9300 ld.w r0, (r3, 0x0) + 50d4: e3fff145 bsr 0x335e // 335e + } +// }else { +// GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); +// } + + 50d8: 1491 pop r4, r15 + 50da: 0000 bkpt + 50dc: 2000047c .long 0x2000047c + 50e0: 200000b4 .long 0x200000b4 + 50e4: 000001f3 .long 0x000001f3 + 50e8: 2000004c .long 0x2000004c + +Disassembly of section .text.button_init: + +000050ec : + * @param active_level: pressed GPIO level. + * @param button_id: the button id. + * @retval None + */ +void button_init(struct Button* handle, uint8_t(*pin_level)(uint8_t), uint8_t active_level, uint8_t button_id) +{ + 50ec: 14d4 push r4-r7, r15 + 50ee: 6dc7 mov r7, r1 + 50f0: 6d8b mov r6, r2 + memset(handle, 0, sizeof(struct Button)); + 50f2: 3100 movi r1, 0 + 50f4: 3230 movi r2, 48 +{ + 50f6: 6d03 mov r4, r0 + 50f8: 6d4f mov r5, r3 + memset(handle, 0, sizeof(struct Button)); + 50fa: e3ffe491 bsr 0x1a1c // 1a1c <__memset_fast> + handle->event = (uint8_t)NONE_PRESS; + 50fe: 3300 movi r3, 0 + 5100: 2b6f subi r3, 112 + 5102: a462 st.b r3, (r4, 0x2) + handle->hal_button_Level = pin_level; + 5104: b4e2 st.w r7, (r4, 0x8) + handle->button_level = handle->hal_button_Level(button_id); + 5106: 6c17 mov r0, r5 + 5108: 7bdd jsr r7 + 510a: 8443 ld.b r2, (r4, 0x3) + 510c: 337f movi r3, 127 + 510e: 688c and r2, r3 + 5110: 4007 lsli r0, r0, 7 + 5112: 6c08 or r0, r2 + handle->active_level = active_level; + 5114: 3201 movi r2, 1 + 5116: 6988 and r6, r2 + 5118: 7480 zextb r2, r0 + 511a: 46c6 lsli r6, r6, 6 + 511c: 3a86 bclri r2, 6 + 511e: 6c98 or r2, r6 + 5120: a443 st.b r2, (r4, 0x3) + handle->button_id = button_id; + 5122: a4a4 st.b r5, (r4, 0x4) +} + 5124: 1494 pop r4-r7, r15 + +Disassembly of section .text.button_attach: + +00005126 : + * @param cb: callback function. + * @retval None + */ +void button_attach(struct Button* handle, PressEvent event, BtnCallback cb) +{ + handle->cb[event] = cb; + 5126: 2102 addi r1, 3 + 5128: 4122 lsli r1, r1, 2 + 512a: 6040 addu r1, r0 + 512c: b140 st.w r2, (r1, 0x0) +} + 512e: 783c jmp r15 + +Disassembly of section .text.button_handler: + +00005130 : + + + + +void button_handler(struct Button* handle) +{ + 5130: 14d3 push r4-r6, r15 + 5132: 6d03 mov r4, r0 + uint8_t read_gpio_level = handle->hal_button_Level(handle->button_id); + 5134: 9462 ld.w r3, (r4, 0x8) + 5136: 8004 ld.b r0, (r0, 0x4) + 5138: 7bcd jsr r3 + + //ticks counter working.. + if((handle->state) > 0) handle->ticks++; + 513a: 8463 ld.b r3, (r4, 0x3) + 513c: 433d lsli r1, r3, 29 + 513e: 493d lsri r1, r1, 29 + 5140: 3940 cmpnei r1, 0 + 5142: 0c04 bf 0x514a // 514a + 5144: 8c40 ld.h r2, (r4, 0x0) + 5146: 2200 addi r2, 1 + 5148: ac40 st.h r2, (r4, 0x0) + + /*------------button debounce handle---------------*/ + if(read_gpio_level != handle->button_level) { //not equal to prev one + 514a: 4b47 lsri r2, r3, 7 + 514c: 640a cmpne r2, r0 + 514e: 0c21 bf 0x5190 // 5190 + //continue read 3 times same new level change + if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) { + 5150: 435a lsli r2, r3, 26 + 5152: 4a5d lsri r2, r2, 29 + 5154: 3507 movi r5, 7 + 5156: 2200 addi r2, 1 + 5158: 6894 and r2, r5 + 515a: 7488 zextb r2, r2 + 515c: 6948 and r5, r2 + 515e: 45c3 lsli r6, r5, 3 + 5160: 3538 movi r5, 56 + 5162: 68d5 andn r3, r5 + 5164: 6d8c or r6, r3 + 5166: 3a02 cmphsi r2, 3 + 5168: a4c3 st.b r6, (r4, 0x3) + 516a: 0c09 bf 0x517c // 517c + handle->button_level = read_gpio_level; + 516c: 4067 lsli r3, r0, 7 + 516e: 327f movi r2, 127 + 5170: 8403 ld.b r0, (r4, 0x3) + 5172: 6808 and r0, r2 + 5174: 6c0c or r0, r3 + handle->debounce_cnt = 0; + 5176: 7400 zextb r0, r0 + 5178: 6815 andn r0, r5 + 517a: a403 st.b r0, (r4, 0x3) + } else { //leved not change ,counter reset. + handle->debounce_cnt = 0; + } + + /*-----------------State machine-------------------*/ + switch (handle->state) { + 517c: 3941 cmpnei r1, 1 + 517e: 0c2f bf 0x51dc // 51dc + 5180: 3940 cmpnei r1, 0 + 5182: 0c0b bf 0x5198 // 5198 + 5184: 3945 cmpnei r1, 5 + 5186: 0c53 bf 0x522c // 522c +// Dbg_Println(DBG_BIT_SYS_STATUS,"key state long press release"); + handle->state = 0; //reset + } + break; + default: + handle->state = 0; //reset + 5188: 8463 ld.b r3, (r4, 0x3) + 518a: 3207 movi r2, 7 + 518c: 68c9 andn r3, r2 + 518e: 0420 br 0x51ce // 51ce + handle->debounce_cnt = 0; + 5190: 3238 movi r2, 56 + 5192: 68c9 andn r3, r2 + 5194: a463 st.b r3, (r4, 0x3) + 5196: 07f3 br 0x517c // 517c + if(handle->button_level == handle->active_level) { //start press down + 5198: 8463 ld.b r3, (r4, 0x3) + 519a: 4359 lsli r2, r3, 25 + 519c: 4a5f lsri r2, r2, 31 + 519e: 4b67 lsri r3, r3, 7 + 51a0: 648e cmpne r3, r2 + 51a2: 8462 ld.b r3, (r4, 0x2) + handle->event = (uint8_t)PRESS_DOWN; + 51a4: 320f movi r2, 15 + 51a6: 68c8 and r3, r2 + if(handle->button_level == handle->active_level) { //start press down + 51a8: 0815 bt 0x51d2 // 51d2 + handle->event = (uint8_t)PRESS_DOWN; + 51aa: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_DOWN); + 51ac: 9463 ld.w r3, (r4, 0xc) + 51ae: 3b40 cmpnei r3, 0 + 51b0: 0c03 bf 0x51b6 // 51b6 + 51b2: 6c13 mov r0, r4 + 51b4: 7bcd jsr r3 + handle->ticks = 0; + 51b6: 3300 movi r3, 0 + handle->repeat = 1; + 51b8: 8442 ld.b r2, (r4, 0x2) + handle->ticks = 0; + 51ba: ac60 st.h r3, (r4, 0x0) + handle->repeat = 1; + 51bc: 330f movi r3, 15 + 51be: 688d andn r2, r3 + 51c0: 3101 movi r1, 1 + 51c2: 6c84 or r2, r1 + 51c4: a442 st.b r2, (r4, 0x2) + handle->state = 1; + 51c6: 8463 ld.b r3, (r4, 0x3) + 51c8: 3207 movi r2, 7 + 51ca: 68c9 andn r3, r2 + 51cc: 6cc4 or r3, r1 + handle->state = 0; //reset + 51ce: a463 st.b r3, (r4, 0x3) + break; + } +} + 51d0: 0405 br 0x51da // 51da + handle->event = (uint8_t)NONE_PRESS; + 51d2: 3200 movi r2, 0 + 51d4: 2a6f subi r2, 112 + 51d6: 6cc8 or r3, r2 + 51d8: a462 st.b r3, (r4, 0x2) +} + 51da: 1493 pop r4-r6, r15 + if(handle->button_level != handle->active_level) { //released press up + 51dc: 8463 ld.b r3, (r4, 0x3) + 51de: 4359 lsli r2, r3, 25 + 51e0: 4a5f lsri r2, r2, 31 + 51e2: 4b67 lsri r3, r3, 7 + 51e4: 648e cmpne r3, r2 + 51e6: 0c0e bf 0x5202 // 5202 + handle->event = (uint8_t)PRESS_UP; + 51e8: 8462 ld.b r3, (r4, 0x2) + 51ea: 320f movi r2, 15 + 51ec: 68c8 and r3, r2 + 51ee: 3ba4 bseti r3, 4 + 51f0: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_UP); + 51f2: 9464 ld.w r3, (r4, 0x10) + 51f4: 3b40 cmpnei r3, 0 + 51f6: 0c03 bf 0x51fc // 51fc + 51f8: 6c13 mov r0, r4 + 51fa: 7bcd jsr r3 + handle->ticks = 0; + 51fc: 3300 movi r3, 0 + 51fe: ac60 st.h r3, (r4, 0x0) + 5200: 07c4 br 0x5188 // 5188 + } else if(handle->ticks > LONG_TICKS) { + 5202: 8c40 ld.h r2, (r4, 0x0) + 5204: 33c8 movi r3, 200 + 5206: 648c cmphs r3, r2 + 5208: 0be9 bt 0x51da // 51da + handle->event = (uint8_t)LONG_PRESS_START; + 520a: 8462 ld.b r3, (r4, 0x2) + 520c: 320f movi r2, 15 + 520e: 68c8 and r3, r2 + 5210: 3ba4 bseti r3, 4 + 5212: 3ba6 bseti r3, 6 + 5214: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_START); + 5216: 9468 ld.w r3, (r4, 0x20) + 5218: 3b40 cmpnei r3, 0 + 521a: 0c03 bf 0x5220 // 5220 + 521c: 6c13 mov r0, r4 + 521e: 7bcd jsr r3 + handle->state = 5; + 5220: 8463 ld.b r3, (r4, 0x3) + 5222: 3207 movi r2, 7 + 5224: 68c9 andn r3, r2 + 5226: 3ba0 bseti r3, 0 + 5228: 3ba2 bseti r3, 2 + 522a: 07d2 br 0x51ce // 51ce + if(handle->button_level == handle->active_level) { + 522c: 8463 ld.b r3, (r4, 0x3) + 522e: 4359 lsli r2, r3, 25 + 5230: 4a5f lsri r2, r2, 31 + 5232: 4b67 lsri r3, r3, 7 + 5234: 648e cmpne r3, r2 + 5236: 0fd2 bf 0x51da // 51da + handle->event = (uint8_t)LONG_PRESS_RELEASE; + 5238: 8462 ld.b r3, (r4, 0x2) + 523a: 320f movi r2, 15 + 523c: 68c8 and r3, r2 + 523e: 3270 movi r2, 112 + 5240: 6cc8 or r3, r2 + 5242: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_RELEASE); + 5244: 946a ld.w r3, (r4, 0x28) + 5246: 3b40 cmpnei r3, 0 + 5248: 0fa0 bf 0x5188 // 5188 + 524a: 6c13 mov r0, r4 + 524c: 7bcd jsr r3 + 524e: 079d br 0x5188 // 5188 + +Disassembly of section .text.button_start: + +00005250 : + * @param handle: target handle strcut. + * @retval 0: succeed. -1: already exist. + */ +int button_start(struct Button* handle) +{ + struct Button* target = head_handle; + 5250: 1068 lrw r3, 0x200002e4 // 5270 + 5252: 9320 ld.w r1, (r3, 0x0) + 5254: 6c87 mov r2, r1 + while(target) { + 5256: 3a40 cmpnei r2, 0 + 5258: 0805 bt 0x5262 // 5262 + if(target == handle) return -1; //already exist. + target = target->next; + } + handle->next = head_handle; + 525a: b02b st.w r1, (r0, 0x2c) + head_handle = handle; + 525c: b300 st.w r0, (r3, 0x0) + return 0; + 525e: 3000 movi r0, 0 +} + 5260: 783c jmp r15 + if(target == handle) return -1; //already exist. + 5262: 640a cmpne r2, r0 + 5264: 0c03 bf 0x526a // 526a + target = target->next; + 5266: 924b ld.w r2, (r2, 0x2c) + 5268: 07f7 br 0x5256 // 5256 + if(target == handle) return -1; //already exist. + 526a: 3000 movi r0, 0 + 526c: 2800 subi r0, 1 + 526e: 07f9 br 0x5260 // 5260 + 5270: 200002e4 .long 0x200002e4 + +Disassembly of section .text.button_ticks: + +00005274 : + * @brief background ticks, timer repeat invoking interval 5ms. + * @param None. + * @retval None + */ +void button_ticks() +{ + 5274: 14d1 push r4, r15 + struct Button* target; + for(target=head_handle; target; target=target->next) { + 5276: 1066 lrw r3, 0x200002e4 // 528c + 5278: 9380 ld.w r4, (r3, 0x0) + 527a: 3c40 cmpnei r4, 0 + 527c: 0802 bt 0x5280 // 5280 + button_handler(target); + } +} + 527e: 1491 pop r4, r15 + button_handler(target); + 5280: 6c13 mov r0, r4 + 5282: e3ffff57 bsr 0x5130 // 5130 + for(target=head_handle; target; target=target->next) { + 5286: 948b ld.w r4, (r4, 0x2c) + 5288: 07f9 br 0x527a // 527a + 528a: 0000 bkpt + 528c: 200002e4 .long 0x200002e4 + +Disassembly of section .text.read_button_GPIO: + +00005290 : + +//////////////////////////////////////////////////////////////////////// + + +uint8_t read_button_GPIO(uint8_t button_id) +{ + 5290: 14d0 push r15 + uint8_t state = 0; + state = GPIO_Read_Status(GPIOA0,button_id); + 5292: 1064 lrw r3, 0x2000004c // 52a0 +{ + 5294: 6c43 mov r1, r0 + state = GPIO_Read_Status(GPIOA0,button_id); + 5296: 9300 ld.w r0, (r3, 0x0) + 5298: e3fff06e bsr 0x3374 // 3374 + return state; + 529c: 1490 pop r15 + 529e: 0000 bkpt + 52a0: 2000004c .long 0x2000004c + +Disassembly of section .text.TK_Sampling_prog: + +000052a4 : + 52a4: 14c4 push r4-r7 + 52a6: 1072 lrw r3, 0x20000054 // 52ec + 52a8: 1012 lrw r0, 0x2000072e // 52f0 + 52aa: 1093 lrw r4, 0x2000059f // 52f4 + 52ac: 6d83 mov r6, r0 + 52ae: 93a0 ld.w r5, (r3, 0x0) + 52b0: 3300 movi r3, 0 + 52b2: 4342 lsli r2, r3, 2 + 52b4: 6094 addu r2, r5 + 52b6: 9220 ld.w r1, (r2, 0x0) + 52b8: 4341 lsli r2, r3, 1 + 52ba: 6080 addu r2, r0 + 52bc: 7445 zexth r1, r1 + 52be: aa20 st.h r1, (r2, 0x0) + 52c0: 8440 ld.b r2, (r4, 0x0) + 52c2: 3a41 cmpnei r2, 1 + 52c4: 080f bt 0x52e2 // 52e2 + 52c6: 3300 movi r3, 0 + 52c8: 10ec lrw r7, 0x20000488 // 52f8 + 52ca: 4341 lsli r2, r3, 1 + 52cc: 5e28 addu r1, r6, r2 + 52ce: 8920 ld.h r1, (r1, 0x0) + 52d0: 2300 addi r3, 1 + 52d2: 7445 zexth r1, r1 + 52d4: 609c addu r2, r7 + 52d6: 3b51 cmpnei r3, 17 + 52d8: aa20 st.h r1, (r2, 0x0) + 52da: 0bf8 bt 0x52ca // 52ca + 52dc: 3300 movi r3, 0 + 52de: a460 st.b r3, (r4, 0x0) + 52e0: 3311 movi r3, 17 + 52e2: 2300 addi r3, 1 + 52e4: 74cc zextb r3, r3 + 52e6: 3b10 cmphsi r3, 17 + 52e8: 0fe5 bf 0x52b2 // 52b2 + 52ea: 1484 pop r4-r7 + 52ec: 20000054 .long 0x20000054 + 52f0: 2000072e .long 0x2000072e + 52f4: 2000059f .long 0x2000059f + 52f8: 20000488 .long 0x20000488 + +Disassembly of section .text.TKEYIntHandler: + +000052fc : + 52fc: 1460 nie + 52fe: 1462 ipush + 5300: 14d1 push r4, r15 + 5302: 109e lrw r4, 0x2000006c // 5378 + 5304: 9460 ld.w r3, (r4, 0x0) + 5306: 3b40 cmpnei r3, 0 + 5308: 080b bt 0x531e // 531e + 530a: 3301 movi r3, 1 + 530c: b460 st.w r3, (r4, 0x0) + 530e: 107c lrw r3, 0x2000051c // 537c + 5310: 8360 ld.b r3, (r3, 0x0) + 5312: 3b41 cmpnei r3, 1 + 5314: 0805 bt 0x531e // 531e + 5316: e3ffffc7 bsr 0x52a4 // 52a4 + 531a: 3301 movi r3, 1 + 531c: a464 st.b r3, (r4, 0x4) + 531e: 1079 lrw r3, 0x20000058 // 5380 + 5320: 3101 movi r1, 1 + 5322: 9360 ld.w r3, (r3, 0x0) + 5324: 934a ld.w r2, (r3, 0x28) + 5326: 6884 and r2, r1 + 5328: 3a40 cmpnei r2, 0 + 532a: 0c02 bf 0x532e // 532e + 532c: b32c st.w r1, (r3, 0x30) + 532e: 934a ld.w r2, (r3, 0x28) + 5330: 3102 movi r1, 2 + 5332: 6884 and r2, r1 + 5334: 3a40 cmpnei r2, 0 + 5336: 0c02 bf 0x533a // 533a + 5338: b32c st.w r1, (r3, 0x30) + 533a: 934a ld.w r2, (r3, 0x28) + 533c: 3104 movi r1, 4 + 533e: 6884 and r2, r1 + 5340: 3a40 cmpnei r2, 0 + 5342: 0c02 bf 0x5346 // 5346 + 5344: b32c st.w r1, (r3, 0x30) + 5346: 934a ld.w r2, (r3, 0x28) + 5348: 3108 movi r1, 8 + 534a: 6884 and r2, r1 + 534c: 3a40 cmpnei r2, 0 + 534e: 0c02 bf 0x5352 // 5352 + 5350: b32c st.w r1, (r3, 0x30) + 5352: 934a ld.w r2, (r3, 0x28) + 5354: 3110 movi r1, 16 + 5356: 6884 and r2, r1 + 5358: 3a40 cmpnei r2, 0 + 535a: 0c02 bf 0x535e // 535e + 535c: b32c st.w r1, (r3, 0x30) + 535e: 934a ld.w r2, (r3, 0x28) + 5360: 3120 movi r1, 32 + 5362: 6884 and r2, r1 + 5364: 3a40 cmpnei r2, 0 + 5366: 0c02 bf 0x536a // 536a + 5368: b32c st.w r1, (r3, 0x30) + 536a: d9ee2001 ld.w r15, (r14, 0x4) + 536e: 9880 ld.w r4, (r14, 0x0) + 5370: 1402 addi r14, r14, 8 + 5372: 1463 ipop + 5374: 1461 nir + 5376: 0000 bkpt + 5378: 2000006c .long 0x2000006c + 537c: 2000051c .long 0x2000051c + 5380: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00005384 : + 5384: 14c2 push r4-r5 + 5386: 3200 movi r2, 0 + 5388: 3000 movi r0, 0 + 538a: 1088 lrw r4, 0x200005bc // 53a8 + 538c: 3501 movi r5, 1 + 538e: 3120 movi r1, 32 + 5390: 9460 ld.w r3, (r4, 0x0) + 5392: 70c9 lsr r3, r2 + 5394: 68d4 and r3, r5 + 5396: 3b40 cmpnei r3, 0 + 5398: 0c02 bf 0x539c // 539c + 539a: 2000 addi r0, 1 + 539c: 2200 addi r2, 1 + 539e: 644a cmpne r2, r1 + 53a0: 0bf8 bt 0x5390 // 5390 + 53a2: 7400 zextb r0, r0 + 53a4: 1482 pop r4-r5 + 53a6: 0000 bkpt + 53a8: 200005bc .long 0x200005bc + +Disassembly of section .text.TK_Scan_Start: + +000053ac : + 53ac: 1046 lrw r2, 0x2000006c // 53c4 + 53ae: 8264 ld.b r3, (r2, 0x4) + 53b0: 74cc zextb r3, r3 + 53b2: 3b41 cmpnei r3, 1 + 53b4: 0807 bt 0x53c2 // 53c2 + 53b6: 1025 lrw r1, 0x20000058 // 53c8 + 53b8: 9120 ld.w r1, (r1, 0x0) + 53ba: b162 st.w r3, (r1, 0x8) + 53bc: 3300 movi r3, 0 + 53be: b260 st.w r3, (r2, 0x0) + 53c0: a264 st.b r3, (r2, 0x4) + 53c2: 783c jmp r15 + 53c4: 2000006c .long 0x2000006c + 53c8: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +000053cc : + 53cc: 14d4 push r4-r7, r15 + 53ce: 1425 subi r14, r14, 20 + 53d0: 1271 lrw r3, 0x20000314 // 5514 + 53d2: 8360 ld.b r3, (r3, 0x0) + 53d4: b860 st.w r3, (r14, 0x0) + 53d6: 3400 movi r4, 0 + 53d8: 1270 lrw r3, 0x200002e8 // 5518 + 53da: 8360 ld.b r3, (r3, 0x0) + 53dc: b861 st.w r3, (r14, 0x4) + 53de: 12f0 lrw r7, 0x20000532 // 551c + 53e0: 1270 lrw r3, 0x200002f1 // 5520 + 53e2: 83a0 ld.b r5, (r3, 0x0) + 53e4: 1270 lrw r3, 0x200002f0 // 5524 + 53e6: 8360 ld.b r3, (r3, 0x0) + 53e8: b862 st.w r3, (r14, 0x8) + 53ea: 6d9f mov r6, r7 + 53ec: 126f lrw r3, 0x2000072e // 5528 + 53ee: b863 st.w r3, (r14, 0xc) + 53f0: 4461 lsli r3, r4, 1 + 53f2: 9843 ld.w r2, (r14, 0xc) + 53f4: 608c addu r2, r3 + 53f6: 122e lrw r1, 0x20000488 // 552c + 53f8: 604c addu r1, r3 + 53fa: 8a40 ld.h r2, (r2, 0x0) + 53fc: 8920 ld.h r1, (r1, 0x0) + 53fe: 6086 subu r2, r1 + 5400: 748b sexth r2, r2 + 5402: 5f2c addu r1, r7, r3 + 5404: a940 st.h r2, (r1, 0x0) + 5406: 8940 ld.h r2, (r1, 0x0) + 5408: 748b sexth r2, r2 + 540a: 3adf btsti r2, 31 + 540c: 1249 lrw r2, 0x200006ea // 5530 + 540e: 608c addu r2, r3 + 5410: 0c37 bf 0x547e // 547e + 5412: 3100 movi r1, 0 + 5414: aa20 st.h r1, (r2, 0x0) + 5416: 9840 ld.w r2, (r14, 0x0) + 5418: 3a01 cmphsi r2, 2 + 541a: 0c6d bf 0x54f4 // 54f4 + 541c: 4461 lsli r3, r4, 1 + 541e: 5e2c addu r1, r6, r3 + 5420: 1205 lrw r0, 0x20000342 // 5534 + 5422: 8940 ld.h r2, (r1, 0x0) + 5424: 60c0 addu r3, r0 + 5426: 748b sexth r2, r2 + 5428: 8b60 ld.h r3, (r3, 0x0) + 542a: 648d cmplt r3, r2 + 542c: 9840 ld.w r2, (r14, 0x0) + 542e: 7cc8 mult r3, r2 + 5430: 0c2a bf 0x5484 // 5484 + 5432: 8940 ld.h r2, (r1, 0x0) + 5434: 748b sexth r2, r2 + 5436: 64c9 cmplt r2, r3 + 5438: 0c26 bf 0x5484 // 5484 + 543a: 1240 lrw r2, 0x20000520 // 5538 + 543c: 6090 addu r2, r4 + 543e: 8260 ld.b r3, (r2, 0x0) + 5440: 2300 addi r3, 1 + 5442: 74cc zextb r3, r3 + 5444: a260 st.b r3, (r2, 0x0) + 5446: 3100 movi r1, 0 + 5448: 117d lrw r3, 0x20000506 // 553c + 544a: 60d0 addu r3, r4 + 544c: a320 st.b r1, (r3, 0x0) + 544e: 117d lrw r3, 0x200005e2 // 5540 + 5450: 60d0 addu r3, r4 + 5452: a320 st.b r1, (r3, 0x0) + 5454: 117c lrw r3, 0x2000065c // 5544 + 5456: 60d0 addu r3, r4 + 5458: a320 st.b r1, (r3, 0x0) + 545a: 8260 ld.b r3, (r2, 0x0) + 545c: 9821 ld.w r1, (r14, 0x4) + 545e: 64c4 cmphs r1, r3 + 5460: 081f bt 0x549e // 549e + 5462: 3d40 cmpnei r5, 0 + 5464: 0852 bt 0x5508 // 5508 + 5466: 1139 lrw r1, 0x20000518 // 5548 + 5468: 9160 ld.w r3, (r1, 0x0) + 546a: 3b40 cmpnei r3, 0 + 546c: 0806 bt 0x5478 // 5478 + 546e: 9100 ld.w r0, (r1, 0x0) + 5470: 3301 movi r3, 1 + 5472: 70d0 lsl r3, r4 + 5474: 6cc0 or r3, r0 + 5476: b160 st.w r3, (r1, 0x0) + 5478: 3300 movi r3, 0 + 547a: a260 st.b r3, (r2, 0x0) + 547c: 0411 br 0x549e // 549e + 547e: 8920 ld.h r1, (r1, 0x0) + 5480: 7445 zexth r1, r1 + 5482: 07c9 br 0x5414 // 5414 + 5484: 4441 lsli r2, r4, 1 + 5486: 6098 addu r2, r6 + 5488: 8a40 ld.h r2, (r2, 0x0) + 548a: 748b sexth r2, r2 + 548c: 648d cmplt r3, r2 + 548e: 0c08 bf 0x549e // 549e + 5490: 3300 movi r3, 0 + 5492: 114e lrw r2, 0x20000518 // 5548 + 5494: 2b01 subi r3, 2 + 5496: 9220 ld.w r1, (r2, 0x0) + 5498: 70d3 rotl r3, r4 + 549a: 68c4 and r3, r1 + 549c: b260 st.w r3, (r2, 0x0) + 549e: 4441 lsli r2, r4, 1 + 54a0: 5e68 addu r3, r6, r2 + 54a2: 8b60 ld.h r3, (r3, 0x0) + 54a4: 74cf sexth r3, r3 + 54a6: b864 st.w r3, (r14, 0x10) + 54a8: 3105 movi r1, 5 + 54aa: 1163 lrw r3, 0x20000342 // 5534 + 54ac: 608c addu r2, r3 + 54ae: 8a00 ld.h r0, (r2, 0x0) + 54b0: 4002 lsli r0, r0, 2 + 54b2: e3fff79d bsr 0x43ec // 43ec <__divsi3> + 54b6: 9864 ld.w r3, (r14, 0x10) + 54b8: 640d cmplt r3, r0 + 54ba: 0c18 bf 0x54ea // 54ea + 54bc: 1140 lrw r2, 0x20000506 // 553c + 54be: 6090 addu r2, r4 + 54c0: 8260 ld.b r3, (r2, 0x0) + 54c2: 2300 addi r3, 1 + 54c4: 74cc zextb r3, r3 + 54c6: a260 st.b r3, (r2, 0x0) + 54c8: 3100 movi r1, 0 + 54ca: 107c lrw r3, 0x20000520 // 5538 + 54cc: 60d0 addu r3, r4 + 54ce: a320 st.b r1, (r3, 0x0) + 54d0: 8260 ld.b r3, (r2, 0x0) + 54d2: 9822 ld.w r1, (r14, 0x8) + 54d4: 64c4 cmphs r1, r3 + 54d6: 080a bt 0x54ea // 54ea + 54d8: 3300 movi r3, 0 + 54da: 103c lrw r1, 0x20000518 // 5548 + 54dc: 2b01 subi r3, 2 + 54de: 9100 ld.w r0, (r1, 0x0) + 54e0: 70d3 rotl r3, r4 + 54e2: 68c0 and r3, r0 + 54e4: b160 st.w r3, (r1, 0x0) + 54e6: 3300 movi r3, 0 + 54e8: a260 st.b r3, (r2, 0x0) + 54ea: 2400 addi r4, 1 + 54ec: 3c51 cmpnei r4, 17 + 54ee: 0b81 bt 0x53f0 // 53f0 + 54f0: 1405 addi r14, r14, 20 + 54f2: 1494 pop r4-r7, r15 + 54f4: 60d8 addu r3, r6 + 54f6: 4441 lsli r2, r4, 1 + 54f8: 102f lrw r1, 0x20000342 // 5534 + 54fa: 8b60 ld.h r3, (r3, 0x0) + 54fc: 6084 addu r2, r1 + 54fe: 74cf sexth r3, r3 + 5500: 8a40 ld.h r2, (r2, 0x0) + 5502: 64c9 cmplt r2, r3 + 5504: 0fcd bf 0x549e // 549e + 5506: 079a br 0x543a // 543a + 5508: 3d41 cmpnei r5, 1 + 550a: 0bb7 bt 0x5478 // 5478 + 550c: 102f lrw r1, 0x20000518 // 5548 + 550e: 6cd7 mov r3, r5 + 5510: 9100 ld.w r0, (r1, 0x0) + 5512: 07b0 br 0x5472 // 5472 + 5514: 20000314 .long 0x20000314 + 5518: 200002e8 .long 0x200002e8 + 551c: 20000532 .long 0x20000532 + 5520: 200002f1 .long 0x200002f1 + 5524: 200002f0 .long 0x200002f0 + 5528: 2000072e .long 0x2000072e + 552c: 20000488 .long 0x20000488 + 5530: 200006ea .long 0x200006ea + 5534: 20000342 .long 0x20000342 + 5538: 20000520 .long 0x20000520 + 553c: 20000506 .long 0x20000506 + 5540: 200005e2 .long 0x200005e2 + 5544: 2000065c .long 0x2000065c + 5548: 20000518 .long 0x20000518 + +Disassembly of section .text.TK_overflow_predict: + +0000554c : + 554c: 14d4 push r4-r7, r15 + 554e: 1421 subi r14, r14, 4 + 5550: 11d9 lrw r6, 0x2000006c // 5634 + 5552: 8665 ld.b r3, (r6, 0x5) + 5554: 3b41 cmpnei r3, 1 + 5556: 085f bt 0x5614 // 5614 + 5558: 1158 lrw r2, 0x20000638 // 5638 + 555a: 8260 ld.b r3, (r2, 0x0) + 555c: 2300 addi r3, 1 + 555e: 74cc zextb r3, r3 + 5560: a260 st.b r3, (r2, 0x0) + 5562: 8260 ld.b r3, (r2, 0x0) + 5564: 1136 lrw r1, 0x20000315 // 563c + 5566: 8120 ld.b r1, (r1, 0x0) + 5568: 64c4 cmphs r1, r3 + 556a: 0855 bt 0x5614 // 5614 + 556c: 3300 movi r3, 0 + 556e: a260 st.b r3, (r2, 0x0) + 5570: 3500 movi r5, 0 + 5572: 11f4 lrw r7, 0x20000318 // 5640 + 5574: 2605 addi r6, 6 + 5576: 9760 ld.w r3, (r7, 0x0) + 5578: 70d5 lsr r3, r5 + 557a: 3201 movi r2, 1 + 557c: 68c8 and r3, r2 + 557e: 3b40 cmpnei r3, 0 + 5580: 0c34 bf 0x55e8 // 55e8 + 5582: 4581 lsli r4, r5, 1 + 5584: 5e70 addu r3, r6, r4 + 5586: 8b00 ld.h r0, (r3, 0x0) + 5588: e3ffe00c bsr 0x15a0 // 15a0 <__floatunsidf> + 558c: 6cc7 mov r3, r1 + 558e: 3180 movi r1, 128 + 5590: 6c83 mov r2, r0 + 5592: 4137 lsli r1, r1, 23 + 5594: 3000 movi r0, 0 + 5596: e3ffd60f bsr 0x1b4 // 1b4 <__GI_pow> + 559a: 116b lrw r3, 0x2000031e // 5644 + 559c: 60d0 addu r3, r4 + 559e: 8b60 ld.h r3, (r3, 0x0) + 55a0: 4364 lsli r3, r3, 4 + 55a2: 230e addi r3, 15 + 55a4: b860 st.w r3, (r14, 0x0) + 55a6: e3ffdbb5 bsr 0xd10 // d10 <__fixunsdfsi> + 55aa: 9860 ld.w r3, (r14, 0x0) + 55ac: 7cc0 mult r3, r0 + 55ae: 1147 lrw r2, 0x200006c8 // 5648 + 55b0: 740d zexth r0, r3 + 55b2: 6090 addu r2, r4 + 55b4: 1166 lrw r3, 0x2000072e // 564c + 55b6: 60d0 addu r3, r4 + 55b8: aa00 st.h r0, (r2, 0x0) + 55ba: 8b60 ld.h r3, (r3, 0x0) + 55bc: 8a00 ld.h r0, (r2, 0x0) + 55be: 7401 zexth r0, r0 + 55c0: 325f movi r2, 95 + 55c2: 74cd zexth r3, r3 + 55c4: 7c08 mult r0, r2 + 55c6: 3164 movi r1, 100 + 55c8: b860 st.w r3, (r14, 0x0) + 55ca: e3fff711 bsr 0x43ec // 43ec <__divsi3> + 55ce: 9860 ld.w r3, (r14, 0x0) + 55d0: 64c1 cmplt r0, r3 + 55d2: 0c0b bf 0x55e8 // 55e8 + 55d4: 107f lrw r3, 0x200002f2 // 5650 + 55d6: 610c addu r4, r3 + 55d8: 8c60 ld.h r3, (r4, 0x0) + 55da: 3b06 cmphsi r3, 7 + 55dc: 0806 bt 0x55e8 // 55e8 + 55de: 2300 addi r3, 1 + 55e0: ac60 st.h r3, (r4, 0x0) + 55e2: 3201 movi r2, 1 + 55e4: 107c lrw r3, 0x2000058d // 5654 + 55e6: a340 st.b r2, (r3, 0x0) + 55e8: 2500 addi r5, 1 + 55ea: 3d51 cmpnei r5, 17 + 55ec: 0bc5 bt 0x5576 // 5576 + 55ee: 107a lrw r3, 0x2000058d // 5654 + 55f0: 8340 ld.b r2, (r3, 0x0) + 55f2: 3a41 cmpnei r2, 1 + 55f4: 0810 bt 0x5614 // 5614 + 55f6: 3200 movi r2, 0 + 55f8: a340 st.b r2, (r3, 0x0) + 55fa: 3200 movi r2, 0 + 55fc: 1077 lrw r3, 0x20000058 // 5658 + 55fe: 1018 lrw r0, 0x2000065b // 565c + 5600: 10b8 lrw r5, 0x20000694 // 5660 + 5602: 10d4 lrw r6, 0x200002f2 // 5650 + 5604: 9360 ld.w r3, (r3, 0x0) + 5606: b342 st.w r2, (r3, 0x8) + 5608: 1077 lrw r3, 0x20000054 // 5664 + 560a: 9380 ld.w r4, (r3, 0x0) + 560c: 3300 movi r3, 0 + 560e: 8040 ld.b r2, (r0, 0x0) + 5610: 648c cmphs r3, r2 + 5612: 0c03 bf 0x5618 // 5618 + 5614: 1401 addi r14, r14, 4 + 5616: 1494 pop r4-r7, r15 + 5618: 5d4c addu r2, r5, r3 + 561a: 8240 ld.b r2, (r2, 0x0) + 561c: 4241 lsli r2, r2, 1 + 561e: 4322 lsli r1, r3, 2 + 5620: 6098 addu r2, r6 + 5622: 6050 addu r1, r4 + 5624: 8a40 ld.h r2, (r2, 0x0) + 5626: 91f2 ld.w r7, (r1, 0x48) + 5628: 4254 lsli r2, r2, 20 + 562a: 6c9c or r2, r7 + 562c: 2300 addi r3, 1 + 562e: b152 st.w r2, (r1, 0x48) + 5630: 74cc zextb r3, r3 + 5632: 07ee br 0x560e // 560e + 5634: 2000006c .long 0x2000006c + 5638: 20000638 .long 0x20000638 + 563c: 20000315 .long 0x20000315 + 5640: 20000318 .long 0x20000318 + 5644: 2000031e .long 0x2000031e + 5648: 200006c8 .long 0x200006c8 + 564c: 2000072e .long 0x2000072e + 5650: 200002f2 .long 0x200002f2 + 5654: 2000058d .long 0x2000058d + 5658: 20000058 .long 0x20000058 + 565c: 2000065b .long 0x2000065b + 5660: 20000694 .long 0x20000694 + 5664: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00005668 : + 5668: 14c4 push r4-r7 + 566a: 1422 subi r14, r14, 8 + 566c: 1348 lrw r2, 0x200005ba // 580c + 566e: 8260 ld.b r3, (r2, 0x0) + 5670: 2300 addi r3, 1 + 5672: 74cc zextb r3, r3 + 5674: a260 st.b r3, (r2, 0x0) + 5676: 8260 ld.b r3, (r2, 0x0) + 5678: 1326 lrw r1, 0x20000315 // 5810 + 567a: 8120 ld.b r1, (r1, 0x0) + 567c: 644c cmphs r3, r1 + 567e: 0cad bf 0x57d8 // 57d8 + 5680: 3300 movi r3, 0 + 5682: a260 st.b r3, (r2, 0x0) + 5684: 1364 lrw r3, 0x20000518 // 5814 + 5686: 9360 ld.w r3, (r3, 0x0) + 5688: 3b40 cmpnei r3, 0 + 568a: 08a7 bt 0x57d8 // 57d8 + 568c: 1323 lrw r1, 0x20000532 // 5818 + 568e: 6dc7 mov r7, r1 + 5690: b820 st.w r1, (r14, 0x0) + 5692: 3200 movi r2, 0 + 5694: 1362 lrw r3, 0x20000342 // 581c + 5696: 1323 lrw r1, 0x20000488 // 5820 + 5698: 4201 lsli r0, r2, 1 + 569a: 9880 ld.w r4, (r14, 0x0) + 569c: 6100 addu r4, r0 + 569e: 8c80 ld.h r4, (r4, 0x0) + 56a0: 7513 sexth r4, r4 + 56a2: 3cdf btsti r4, 31 + 56a4: 0c27 bf 0x56f2 // 56f2 + 56a6: 13a0 lrw r5, 0x2000072e // 5824 + 56a8: 5980 addu r4, r1, r0 + 56aa: 6014 addu r0, r5 + 56ac: b881 st.w r4, (r14, 0x4) + 56ae: 8c80 ld.h r4, (r4, 0x0) + 56b0: 88c0 ld.h r6, (r0, 0x0) + 56b2: 7511 zexth r4, r4 + 56b4: 7599 zexth r6, r6 + 56b6: 8ba0 ld.h r5, (r3, 0x0) + 56b8: 611a subu r4, r6 + 56ba: 6551 cmplt r4, r5 + 56bc: 081b bt 0x56f2 // 56f2 + 56be: 9881 ld.w r4, (r14, 0x4) + 56c0: 8c80 ld.h r4, (r4, 0x0) + 56c2: 8800 ld.h r0, (r0, 0x0) + 56c4: 7511 zexth r4, r4 + 56c6: 7401 zexth r0, r0 + 56c8: 5c01 subu r0, r4, r0 + 56ca: 4581 lsli r4, r5, 1 + 56cc: 6150 addu r5, r4 + 56ce: 6541 cmplt r0, r5 + 56d0: 0c11 bf 0x56f2 // 56f2 + 56d2: 1296 lrw r4, 0x2000065c // 5828 + 56d4: 6108 addu r4, r2 + 56d6: 8400 ld.b r0, (r4, 0x0) + 56d8: 2000 addi r0, 1 + 56da: 7400 zextb r0, r0 + 56dc: a400 st.b r0, (r4, 0x0) + 56de: 1214 lrw r0, 0x2000008c // 582c + 56e0: 84a0 ld.b r5, (r4, 0x0) + 56e2: 8008 ld.b r0, (r0, 0x8) + 56e4: 6540 cmphs r0, r5 + 56e6: 0806 bt 0x56f2 // 56f2 + 56e8: 1212 lrw r0, 0x2000059f // 5830 + 56ea: 3501 movi r5, 1 + 56ec: a0a0 st.b r5, (r0, 0x0) + 56ee: 3000 movi r0, 0 + 56f0: a400 st.b r0, (r4, 0x0) + 56f2: 4201 lsli r0, r2, 1 + 56f4: 5f80 addu r4, r7, r0 + 56f6: 8c80 ld.h r4, (r4, 0x0) + 56f8: 7513 sexth r4, r4 + 56fa: 3c20 cmplti r4, 1 + 56fc: 0870 bt 0x57dc // 57dc + 56fe: 128a lrw r4, 0x2000072e // 5824 + 5700: 6100 addu r4, r0 + 5702: 59a0 addu r5, r1, r0 + 5704: 8c80 ld.h r4, (r4, 0x0) + 5706: 8da0 ld.h r5, (r5, 0x0) + 5708: 7555 zexth r5, r5 + 570a: 7511 zexth r4, r4 + 570c: 6116 subu r4, r5 + 570e: 8ba0 ld.h r5, (r3, 0x0) + 5710: 45a2 lsli r5, r5, 2 + 5712: 6551 cmplt r4, r5 + 5714: 0864 bt 0x57dc // 57dc + 5716: 1288 lrw r4, 0x200005e2 // 5834 + 5718: 6108 addu r4, r2 + 571a: 84a0 ld.b r5, (r4, 0x0) + 571c: 2500 addi r5, 1 + 571e: 7554 zextb r5, r5 + 5720: a4a0 st.b r5, (r4, 0x0) + 5722: 12a3 lrw r5, 0x2000008c // 582c + 5724: 84c0 ld.b r6, (r4, 0x0) + 5726: 85a9 ld.b r5, (r5, 0x9) + 5728: 6594 cmphs r5, r6 + 572a: 0806 bt 0x5736 // 5736 + 572c: 12a1 lrw r5, 0x2000059f // 5830 + 572e: 3601 movi r6, 1 + 5730: a5c0 st.b r6, (r5, 0x0) + 5732: 3500 movi r5, 0 + 5734: a4a0 st.b r5, (r4, 0x0) + 5736: 5f80 addu r4, r7, r0 + 5738: 8c80 ld.h r4, (r4, 0x0) + 573a: 7513 sexth r4, r4 + 573c: 3cdf btsti r4, 31 + 573e: 0c10 bf 0x575e // 575e + 5740: 11d9 lrw r6, 0x2000072e // 5824 + 5742: 59a0 addu r5, r1, r0 + 5744: 6180 addu r6, r0 + 5746: 8d80 ld.h r4, (r5, 0x0) + 5748: 8ec0 ld.h r6, (r6, 0x0) + 574a: 7599 zexth r6, r6 + 574c: 7511 zexth r4, r4 + 574e: 611a subu r4, r6 + 5750: 8bc0 ld.h r6, (r3, 0x0) + 5752: 6591 cmplt r4, r6 + 5754: 0c05 bf 0x575e // 575e + 5756: 8d80 ld.h r4, (r5, 0x0) + 5758: 2c00 subi r4, 1 + 575a: 7511 zexth r4, r4 + 575c: ad80 st.h r4, (r5, 0x0) + 575e: 5f80 addu r4, r7, r0 + 5760: 8c80 ld.h r4, (r4, 0x0) + 5762: 7513 sexth r4, r4 + 5764: 3cdf btsti r4, 31 + 5766: 0c11 bf 0x5788 // 5788 + 5768: 11cf lrw r6, 0x2000072e // 5824 + 576a: 59a0 addu r5, r1, r0 + 576c: 6180 addu r6, r0 + 576e: 8d80 ld.h r4, (r5, 0x0) + 5770: 8ec0 ld.h r6, (r6, 0x0) + 5772: 7599 zexth r6, r6 + 5774: 7511 zexth r4, r4 + 5776: 611a subu r4, r6 + 5778: 8bc0 ld.h r6, (r3, 0x0) + 577a: 4ec1 lsri r6, r6, 1 + 577c: 6591 cmplt r4, r6 + 577e: 0805 bt 0x5788 // 5788 + 5780: 8d80 ld.h r4, (r5, 0x0) + 5782: 2c01 subi r4, 2 + 5784: 7511 zexth r4, r4 + 5786: ad80 st.h r4, (r5, 0x0) + 5788: 5fa0 addu r5, r7, r0 + 578a: 8d80 ld.h r4, (r5, 0x0) + 578c: 7513 sexth r4, r4 + 578e: 3c20 cmplti r4, 1 + 5790: 080c bt 0x57a8 // 57a8 + 5792: 8da0 ld.h r5, (r5, 0x0) + 5794: 8b80 ld.h r4, (r3, 0x0) + 5796: 7557 sexth r5, r5 + 5798: 4c81 lsri r4, r4, 1 + 579a: 6515 cmplt r5, r4 + 579c: 0c06 bf 0x57a8 // 57a8 + 579e: 59a0 addu r5, r1, r0 + 57a0: 8d80 ld.h r4, (r5, 0x0) + 57a2: 2400 addi r4, 1 + 57a4: 7511 zexth r4, r4 + 57a6: ad80 st.h r4, (r5, 0x0) + 57a8: 5fa0 addu r5, r7, r0 + 57aa: 8d80 ld.h r4, (r5, 0x0) + 57ac: 7513 sexth r4, r4 + 57ae: 3c20 cmplti r4, 1 + 57b0: 0810 bt 0x57d0 // 57d0 + 57b2: 8dc0 ld.h r6, (r5, 0x0) + 57b4: 759b sexth r6, r6 + 57b6: 8b80 ld.h r4, (r3, 0x0) + 57b8: 6519 cmplt r6, r4 + 57ba: 0c0b bf 0x57d0 // 57d0 + 57bc: 8da0 ld.h r5, (r5, 0x0) + 57be: 7557 sexth r5, r5 + 57c0: 4c81 lsri r4, r4, 1 + 57c2: 6515 cmplt r5, r4 + 57c4: 0806 bt 0x57d0 // 57d0 + 57c6: 6004 addu r0, r1 + 57c8: 8880 ld.h r4, (r0, 0x0) + 57ca: 2401 addi r4, 2 + 57cc: 7511 zexth r4, r4 + 57ce: a880 st.h r4, (r0, 0x0) + 57d0: 2200 addi r2, 1 + 57d2: 3a51 cmpnei r2, 17 + 57d4: 2301 addi r3, 2 + 57d6: 0b61 bt 0x5698 // 5698 + 57d8: 1402 addi r14, r14, 8 + 57da: 1484 pop r4-r7 + 57dc: 5f80 addu r4, r7, r0 + 57de: 8c80 ld.h r4, (r4, 0x0) + 57e0: 7513 sexth r4, r4 + 57e2: 3cdf btsti r4, 31 + 57e4: 0fa9 bf 0x5736 // 5736 + 57e6: 10b0 lrw r5, 0x2000072e // 5824 + 57e8: 5980 addu r4, r1, r0 + 57ea: 6140 addu r5, r0 + 57ec: 8c80 ld.h r4, (r4, 0x0) + 57ee: 8da0 ld.h r5, (r5, 0x0) + 57f0: 7555 zexth r5, r5 + 57f2: 8bc0 ld.h r6, (r3, 0x0) + 57f4: 7511 zexth r4, r4 + 57f6: 6116 subu r4, r5 + 57f8: 46a1 lsli r5, r6, 1 + 57fa: 6158 addu r5, r6 + 57fc: 6551 cmplt r4, r5 + 57fe: 0b9c bt 0x5736 // 5736 + 5800: 108c lrw r4, 0x2000059f // 5830 + 5802: 3501 movi r5, 1 + 5804: a4a0 st.b r5, (r4, 0x0) + 5806: 6c03 mov r0, r0 + 5808: 0797 br 0x5736 // 5736 + 580a: 0000 bkpt + 580c: 200005ba .long 0x200005ba + 5810: 20000315 .long 0x20000315 + 5814: 20000518 .long 0x20000518 + 5818: 20000532 .long 0x20000532 + 581c: 20000342 .long 0x20000342 + 5820: 20000488 .long 0x20000488 + 5824: 2000072e .long 0x2000072e + 5828: 2000065c .long 0x2000065c + 582c: 2000008c .long 0x2000008c + 5830: 2000059f .long 0x2000059f + 5834: 200005e2 .long 0x200005e2 + +Disassembly of section .text.TK_result_prog: + +00005838 : + 5838: 14d2 push r4-r5, r15 + 583a: 1050 lrw r2, 0x20000518 // 5878 + 583c: 1090 lrw r4, 0x200005bc // 587c + 583e: 9260 ld.w r3, (r2, 0x0) + 5840: 3b40 cmpnei r3, 0 + 5842: 0c02 bf 0x5846 // 5846 + 5844: 9260 ld.w r3, (r2, 0x0) + 5846: b460 st.w r3, (r4, 0x0) + 5848: 9460 ld.w r3, (r4, 0x0) + 584a: 3b40 cmpnei r3, 0 + 584c: 10ad lrw r5, 0x20000690 // 5880 + 584e: 0c11 bf 0x5870 // 5870 + 5850: 9440 ld.w r2, (r4, 0x0) + 5852: 9560 ld.w r3, (r5, 0x0) + 5854: 64ca cmpne r2, r3 + 5856: 0c03 bf 0x585c // 585c + 5858: 9460 ld.w r3, (r4, 0x0) + 585a: b560 st.w r3, (r5, 0x0) + 585c: e3fffd94 bsr 0x5384 // 5384 + 5860: 1069 lrw r3, 0x2000031c // 5884 + 5862: 8360 ld.b r3, (r3, 0x0) + 5864: 640c cmphs r3, r0 + 5866: 0804 bt 0x586e // 586e + 5868: 3300 movi r3, 0 + 586a: b460 st.w r3, (r4, 0x0) + 586c: b560 st.w r3, (r5, 0x0) + 586e: 1492 pop r4-r5, r15 + 5870: 1046 lrw r2, 0x200005b4 // 5888 + 5872: b560 st.w r3, (r5, 0x0) + 5874: b260 st.w r3, (r2, 0x0) + 5876: 07fc br 0x586e // 586e + 5878: 20000518 .long 0x20000518 + 587c: 200005bc .long 0x200005bc + 5880: 20000690 .long 0x20000690 + 5884: 2000031c .long 0x2000031c + 5888: 200005b4 .long 0x200005b4 + +Disassembly of section .text.CORETHandler: + +0000588c : + 588c: 1460 nie + 588e: 1462 ipush + 5890: 14d1 push r4, r15 + 5892: 1077 lrw r3, 0x20000064 // 58ec + 5894: 3400 movi r4, 0 + 5896: 9360 ld.w r3, (r3, 0x0) + 5898: b386 st.w r4, (r3, 0x18) + 589a: 1076 lrw r3, 0x2000051c // 58f0 + 589c: 8360 ld.b r3, (r3, 0x0) + 589e: 3b41 cmpnei r3, 1 + 58a0: 0820 bt 0x58e0 // 58e0 + 58a2: e3fffd85 bsr 0x53ac // 53ac + 58a6: e3fffd93 bsr 0x53cc // 53cc + 58aa: e3fffe51 bsr 0x554c // 554c + 58ae: e3fffedd bsr 0x5668 // 5668 + 58b2: e3ffffc3 bsr 0x5838 // 5838 + 58b6: 1070 lrw r3, 0x200005bc // 58f4 + 58b8: 9360 ld.w r3, (r3, 0x0) + 58ba: 3b40 cmpnei r3, 0 + 58bc: 0c12 bf 0x58e0 // 58e0 + 58be: 106f lrw r3, 0x200002ec // 58f8 + 58c0: 9340 ld.w r2, (r3, 0x0) + 58c2: 3a40 cmpnei r2, 0 + 58c4: 0c0e bf 0x58e0 // 58e0 + 58c6: 106e lrw r3, 0x200005b4 // 58fc + 58c8: 3064 movi r0, 100 + 58ca: 9320 ld.w r1, (r3, 0x0) + 58cc: 2100 addi r1, 1 + 58ce: b320 st.w r1, (r3, 0x0) + 58d0: 9320 ld.w r1, (r3, 0x0) + 58d2: 7c80 mult r2, r0 + 58d4: 6448 cmphs r2, r1 + 58d6: 0805 bt 0x58e0 // 58e0 + 58d8: 104a lrw r2, 0x2000059f // 5900 + 58da: 3101 movi r1, 1 + 58dc: a220 st.b r1, (r2, 0x0) + 58de: b380 st.w r4, (r3, 0x0) + 58e0: d9ee2001 ld.w r15, (r14, 0x4) + 58e4: 9880 ld.w r4, (r14, 0x0) + 58e6: 1402 addi r14, r14, 8 + 58e8: 1463 ipop + 58ea: 1461 nir + 58ec: 20000064 .long 0x20000064 + 58f0: 2000051c .long 0x2000051c + 58f4: 200005bc .long 0x200005bc + 58f8: 200002ec .long 0x200002ec + 58fc: 200005b4 .long 0x200005b4 + 5900: 2000059f .long 0x2000059f + +Disassembly of section .text.std_clk_calib: + +00005904 : + 5904: 14d4 push r4-r7, r15 + 5906: 142d subi r14, r14, 52 + 5908: 3201 movi r2, 1 + 590a: 03ce lrw r6, 0x2000005c // 5b4c + 590c: 6cc3 mov r3, r0 + 590e: dc4e000a st.b r2, (r14, 0xa) + 5912: 9640 ld.w r2, (r6, 0x0) + 5914: 9247 ld.w r2, (r2, 0x1c) + 5916: 7488 zextb r2, r2 + 5918: dc4e0009 st.b r2, (r14, 0x9) + 591c: d84e0009 ld.b r2, (r14, 0x9) + 5920: 3a40 cmpnei r2, 0 + 5922: 0c08 bf 0x5932 // 5932 + 5924: d84e0009 ld.b r2, (r14, 0x9) + 5928: 3a42 cmpnei r2, 2 + 592a: 0c04 bf 0x5932 // 5932 + 592c: 3000 movi r0, 0 + 592e: 140d addi r14, r14, 52 + 5930: 1494 pop r4-r7, r15 + 5932: 0397 lrw r4, 0x2000000c // 5b50 + 5934: 3209 movi r2, 9 + 5936: 9400 ld.w r0, (r4, 0x0) + 5938: 3b40 cmpnei r3, 0 + 593a: b041 st.w r2, (r0, 0x4) + 593c: 0857 bt 0x59ea // 59ea + 593e: 3307 movi r3, 7 + 5940: dc6e000b st.b r3, (r14, 0xb) + 5944: 037b lrw r3, 0x2dc6c00 // 5b54 + 5946: b863 st.w r3, (r14, 0xc) + 5948: 3380 movi r3, 128 + 594a: 4362 lsli r3, r3, 2 + 594c: b867 st.w r3, (r14, 0x1c) + 594e: d86e000b ld.b r3, (r14, 0xb) + 5952: 74cc zextb r3, r3 + 5954: b062 st.w r3, (r0, 0x8) + 5956: 037e lrw r3, 0xffff // 5b58 + 5958: b063 st.w r3, (r0, 0xc) + 595a: 3201 movi r2, 1 + 595c: 3101 movi r1, 1 + 595e: 03bf lrw r5, 0x20000014 // 5b5c + 5960: e3ffed68 bsr 0x3430 // 3430 + 5964: 95e0 ld.w r7, (r5, 0x0) + 5966: 137f lrw r3, 0xbe9c0005 // 5b60 + 5968: b760 st.w r3, (r7, 0x0) + 596a: 135f lrw r2, 0x30010 // 5b64 + 596c: 3300 movi r3, 0 + 596e: b762 st.w r3, (r7, 0x8) + 5970: b743 st.w r2, (r7, 0xc) + 5972: 32d8 movi r2, 216 + 5974: b745 st.w r2, (r7, 0x14) + 5976: 974f ld.w r2, (r7, 0x3c) + 5978: 3aa2 bseti r2, 2 + 597a: b74f st.w r2, (r7, 0x3c) + 597c: 9803 ld.w r0, (r14, 0xc) + 597e: d82e000b ld.b r1, (r14, 0xb) + 5982: 327d movi r2, 125 + 5984: 2100 addi r1, 1 + 5986: 7c48 mult r1, r2 + 5988: b861 st.w r3, (r14, 0x4) + 598a: e3fff543 bsr 0x4410 // 4410 <__udivsi3> + 598e: b804 st.w r0, (r14, 0x10) + 5990: 32fa movi r2, 250 + 5992: 9824 ld.w r1, (r14, 0x10) + 5994: 4242 lsli r2, r2, 2 + 5996: 6448 cmphs r2, r1 + 5998: 0bca bt 0x592c // 592c + 599a: 9844 ld.w r2, (r14, 0x10) + 599c: 3178 movi r1, 120 + 599e: 9804 ld.w r0, (r14, 0x10) + 59a0: b840 st.w r2, (r14, 0x0) + 59a2: e3fff537 bsr 0x4410 // 4410 <__udivsi3> + 59a6: 9840 ld.w r2, (r14, 0x0) + 59a8: 6082 subu r2, r0 + 59aa: b845 st.w r2, (r14, 0x14) + 59ac: 9804 ld.w r0, (r14, 0x10) + 59ae: 3178 movi r1, 120 + 59b0: 9844 ld.w r2, (r14, 0x10) + 59b2: b840 st.w r2, (r14, 0x0) + 59b4: e3fff52e bsr 0x4410 // 4410 <__udivsi3> + 59b8: 9840 ld.w r2, (r14, 0x0) + 59ba: 6008 addu r0, r2 + 59bc: b806 st.w r0, (r14, 0x18) + 59be: c0807020 psrclr ie + 59c2: 9640 ld.w r2, (r6, 0x0) + 59c4: 9254 ld.w r2, (r2, 0x50) + 59c6: b848 st.w r2, (r14, 0x20) + 59c8: 9861 ld.w r3, (r14, 0x4) + 59ca: 9440 ld.w r2, (r4, 0x0) + 59cc: b260 st.w r3, (r2, 0x0) + 59ce: b761 st.w r3, (r7, 0x4) + 59d0: d86e000a ld.b r3, (r14, 0xa) + 59d4: 3b40 cmpnei r3, 0 + 59d6: 083e bt 0x5a52 // 5a52 + 59d8: e3ffecde bsr 0x3394 // 3394 + 59dc: 9400 ld.w r0, (r4, 0x0) + 59de: e3ffecff bsr 0x33dc // 33dc + 59e2: c1807420 psrset ee, ie + 59e6: 3001 movi r0, 1 + 59e8: 07a3 br 0x592e // 592e + 59ea: 3b41 cmpnei r3, 1 + 59ec: 0806 bt 0x59f8 // 59f8 + 59ee: 3303 movi r3, 3 + 59f0: dc6e000b st.b r3, (r14, 0xb) + 59f4: 127d lrw r3, 0x16e3600 // 5b68 + 59f6: 07a8 br 0x5946 // 5946 + 59f8: 3b42 cmpnei r3, 2 + 59fa: 0806 bt 0x5a06 // 5a06 + 59fc: 3301 movi r3, 1 + 59fe: dc6e000b st.b r3, (r14, 0xb) + 5a02: 127b lrw r3, 0xb71b00 // 5b6c + 5a04: 07a1 br 0x5946 // 5946 + 5a06: 3b43 cmpnei r3, 3 + 5a08: 0806 bt 0x5a14 // 5a14 + 5a0a: 3300 movi r3, 0 + 5a0c: dc6e000b st.b r3, (r14, 0xb) + 5a10: 1278 lrw r3, 0x5b8d80 // 5b70 + 5a12: 079a br 0x5946 // 5946 + 5a14: 3b44 cmpnei r3, 4 + 5a16: 0809 bt 0x5a28 // 5a28 + 5a18: 3300 movi r3, 0 + 5a1a: dc6e000b st.b r3, (r14, 0xb) + 5a1e: 1276 lrw r3, 0x54c720 // 5b74 + 5a20: b863 st.w r3, (r14, 0xc) + 5a22: 3380 movi r3, 128 + 5a24: 4369 lsli r3, r3, 9 + 5a26: 0793 br 0x594c // 594c + 5a28: 3b45 cmpnei r3, 5 + 5a2a: 0806 bt 0x5a36 // 5a36 + 5a2c: 3300 movi r3, 0 + 5a2e: dc6e000b st.b r3, (r14, 0xb) + 5a32: 1272 lrw r3, 0x3ffed0 // 5b78 + 5a34: 07f6 br 0x5a20 // 5a20 + 5a36: 3b46 cmpnei r3, 6 + 5a38: 0806 bt 0x5a44 // 5a44 + 5a3a: 3300 movi r3, 0 + 5a3c: dc6e000b st.b r3, (r14, 0xb) + 5a40: 126f lrw r3, 0x1fff68 // 5b7c + 5a42: 07ef br 0x5a20 // 5a20 + 5a44: 3b47 cmpnei r3, 7 + 5a46: 0b84 bt 0x594e // 594e + 5a48: 3300 movi r3, 0 + 5a4a: dc6e000b st.b r3, (r14, 0xb) + 5a4e: 126d lrw r3, 0x1ffb8 // 5b80 + 5a50: 07e8 br 0x5a20 // 5a20 + 5a52: 9560 ld.w r3, (r5, 0x0) + 5a54: 3101 movi r1, 1 + 5a56: 9440 ld.w r2, (r4, 0x0) + 5a58: b321 st.w r1, (r3, 0x4) + 5a5a: b220 st.w r1, (r2, 0x0) + 5a5c: 3100 movi r1, 0 + 5a5e: b327 st.w r1, (r3, 0x1c) + 5a60: 3004 movi r0, 4 + 5a62: b225 st.w r1, (r2, 0x14) + 5a64: 932e ld.w r1, (r3, 0x38) + 5a66: 6840 and r1, r0 + 5a68: 3940 cmpnei r1, 0 + 5a6a: 0ffd bf 0x5a64 // 5a64 + 5a6c: 9225 ld.w r1, (r2, 0x14) + 5a6e: b82a st.w r1, (r14, 0x28) + 5a70: 3100 movi r1, 0 + 5a72: b310 st.w r0, (r3, 0x40) + 5a74: b327 st.w r1, (r3, 0x1c) + 5a76: 3004 movi r0, 4 + 5a78: b225 st.w r1, (r2, 0x14) + 5a7a: 932e ld.w r1, (r3, 0x38) + 5a7c: 6840 and r1, r0 + 5a7e: 3940 cmpnei r1, 0 + 5a80: 0ffd bf 0x5a7a // 5a7a + 5a82: 9225 ld.w r1, (r2, 0x14) + 5a84: b82b st.w r1, (r14, 0x2c) + 5a86: 3100 movi r1, 0 + 5a88: b310 st.w r0, (r3, 0x40) + 5a8a: b327 st.w r1, (r3, 0x1c) + 5a8c: 3004 movi r0, 4 + 5a8e: b225 st.w r1, (r2, 0x14) + 5a90: 932e ld.w r1, (r3, 0x38) + 5a92: 6840 and r1, r0 + 5a94: 3940 cmpnei r1, 0 + 5a96: 0ffd bf 0x5a90 // 5a90 + 5a98: 9225 ld.w r1, (r2, 0x14) + 5a9a: b82c st.w r1, (r14, 0x30) + 5a9c: b310 st.w r0, (r3, 0x40) + 5a9e: 982b ld.w r1, (r14, 0x2c) + 5aa0: 980c ld.w r0, (r14, 0x30) + 5aa2: 6040 addu r1, r0 + 5aa4: b829 st.w r1, (r14, 0x24) + 5aa6: 9829 ld.w r1, (r14, 0x24) + 5aa8: 4921 lsri r1, r1, 1 + 5aaa: b829 st.w r1, (r14, 0x24) + 5aac: 3100 movi r1, 0 + 5aae: b321 st.w r1, (r3, 0x4) + 5ab0: b220 st.w r1, (r2, 0x0) + 5ab2: b327 st.w r1, (r3, 0x1c) + 5ab4: b225 st.w r1, (r2, 0x14) + 5ab6: d86e0009 ld.b r3, (r14, 0x9) + 5aba: 3b42 cmpnei r3, 2 + 5abc: 9849 ld.w r2, (r14, 0x24) + 5abe: 082c bt 0x5b16 // 5b16 + 5ac0: 1171 lrw r3, 0x7ff // 5b84 + 5ac2: 648c cmphs r3, r2 + 5ac4: 0c03 bf 0x5aca // 5aca + 5ac6: 3300 movi r3, 0 + 5ac8: 040f br 0x5ae6 // 5ae6 + 5aca: 9849 ld.w r2, (r14, 0x24) + 5acc: 9866 ld.w r3, (r14, 0x18) + 5ace: 648c cmphs r3, r2 + 5ad0: 080e bt 0x5aec // 5aec + 5ad2: 9868 ld.w r3, (r14, 0x20) + 5ad4: 9847 ld.w r2, (r14, 0x1c) + 5ad6: 60ca subu r3, r2 + 5ad8: b868 st.w r3, (r14, 0x20) + 5ada: 32fe movi r2, 254 + 5adc: 9868 ld.w r3, (r14, 0x20) + 5ade: 4248 lsli r2, r2, 8 + 5ae0: 68c8 and r3, r2 + 5ae2: 3b40 cmpnei r3, 0 + 5ae4: 0812 bt 0x5b08 // 5b08 + 5ae6: dc6e000a st.b r3, (r14, 0xa) + 5aea: 0721 br 0x592c // 592c + 5aec: 9849 ld.w r2, (r14, 0x24) + 5aee: 9865 ld.w r3, (r14, 0x14) + 5af0: 64c8 cmphs r2, r3 + 5af2: 0829 bt 0x5b44 // 5b44 + 5af4: 9868 ld.w r3, (r14, 0x20) + 5af6: 9847 ld.w r2, (r14, 0x1c) + 5af8: 60c8 addu r3, r2 + 5afa: b868 st.w r3, (r14, 0x20) + 5afc: 33fe movi r3, 254 + 5afe: 9848 ld.w r2, (r14, 0x20) + 5b00: 4368 lsli r3, r3, 8 + 5b02: 688c and r2, r3 + 5b04: 64ca cmpne r2, r3 + 5b06: 0fe0 bf 0x5ac6 // 5ac6 + 5b08: 9660 ld.w r3, (r6, 0x0) + 5b0a: 9848 ld.w r2, (r14, 0x20) + 5b0c: b354 st.w r2, (r3, 0x50) + 5b0e: 3001 movi r0, 1 + 5b10: e3ffeec2 bsr 0x3894 // 3894 + 5b14: 075e br 0x59d0 // 59d0 + 5b16: 9866 ld.w r3, (r14, 0x18) + 5b18: 648c cmphs r3, r2 + 5b1a: 0809 bt 0x5b2c // 5b2c + 5b1c: 9868 ld.w r3, (r14, 0x20) + 5b1e: 9847 ld.w r2, (r14, 0x1c) + 5b20: 60ca subu r3, r2 + 5b22: b868 st.w r3, (r14, 0x20) + 5b24: 32ff movi r2, 255 + 5b26: 9868 ld.w r3, (r14, 0x20) + 5b28: 4250 lsli r2, r2, 16 + 5b2a: 07db br 0x5ae0 // 5ae0 + 5b2c: 9849 ld.w r2, (r14, 0x24) + 5b2e: 9865 ld.w r3, (r14, 0x14) + 5b30: 64c8 cmphs r2, r3 + 5b32: 0809 bt 0x5b44 // 5b44 + 5b34: 9868 ld.w r3, (r14, 0x20) + 5b36: 9847 ld.w r2, (r14, 0x1c) + 5b38: 60c8 addu r3, r2 + 5b3a: b868 st.w r3, (r14, 0x20) + 5b3c: 33ff movi r3, 255 + 5b3e: 9848 ld.w r2, (r14, 0x20) + 5b40: 4370 lsli r3, r3, 16 + 5b42: 07e0 br 0x5b02 // 5b02 + 5b44: 3300 movi r3, 0 + 5b46: dc6e000a st.b r3, (r14, 0xa) + 5b4a: 07e2 br 0x5b0e // 5b0e + 5b4c: 2000005c .long 0x2000005c + 5b50: 2000000c .long 0x2000000c + 5b54: 02dc6c00 .long 0x02dc6c00 + 5b58: 0000ffff .long 0x0000ffff + 5b5c: 20000014 .long 0x20000014 + 5b60: be9c0005 .long 0xbe9c0005 + 5b64: 00030010 .long 0x00030010 + 5b68: 016e3600 .long 0x016e3600 + 5b6c: 00b71b00 .long 0x00b71b00 + 5b70: 005b8d80 .long 0x005b8d80 + 5b74: 0054c720 .long 0x0054c720 + 5b78: 003ffed0 .long 0x003ffed0 + 5b7c: 001fff68 .long 0x001fff68 + 5b80: 0001ffb8 .long 0x0001ffb8 + 5b84: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241011.map b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241011.map new file mode 100644 index 0000000..ec0aaf6 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241011.map @@ -0,0 +1,2425 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 327120 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 164 + Section header string table index: 161 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 002f12 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00002f14 003f14 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00002f4c 003f4c 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00002fc0 003fc0 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 0000300c 00400c 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 0000303c 00403c 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 000030c4 0040c4 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 000030ec 0040ec 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00003128 004128 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 0000313c 00413c 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00003154 004154 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00003174 004174 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00003190 004190 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 000031ac 0041ac 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 000031ec 0041ec 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 000031f8 0041f8 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 0000321c 00421c 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 0000324c 00424c 0000e0 00 AX 0 0 4 + [19] .text.GPIO_PullHi PROGBITS 0000332c 00432c 000014 00 AX 0 0 2 + [20] .text.GPIO_DriveS PROGBITS 00003340 004340 00000e 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 0000334e 00434e 000008 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00003356 004356 000008 00 AX 0 0 2 + [23] .text.GPIO_Revers PROGBITS 0000335e 00435e 000016 00 AX 0 0 2 + [24] .text.GPIO_Read_S PROGBITS 00003374 004374 000010 00 AX 0 0 2 + [25] .text.GPIO_Read_O PROGBITS 00003384 004384 000010 00 AX 0 0 2 + [26] .text.LPT_Soft_Re PROGBITS 00003394 004394 000014 00 AX 0 0 4 + [27] .text.WWDT_CNT_Lo PROGBITS 000033a8 0043a8 000010 00 AX 0 0 4 + [28] .text.BT_DeInit PROGBITS 000033b8 0043b8 00001c 00 AX 0 0 2 + [29] .text.BT_Start PROGBITS 000033d4 0043d4 000008 00 AX 0 0 2 + [30] .text.BT_Soft_Res PROGBITS 000033dc 0043dc 00000a 00 AX 0 0 2 + [31] .text.BT_Configur PROGBITS 000033e6 0043e6 000018 00 AX 0 0 2 + [32] .text.BT_ControlS PROGBITS 000033fe 0043fe 00002c 00 AX 0 0 2 + [33] .text.BT_Period_C PROGBITS 0000342a 00442a 000006 00 AX 0 0 2 + [34] .text.BT_ConfigIn PROGBITS 00003430 004430 000012 00 AX 0 0 2 + [35] .text.BT1_INT_ENA PROGBITS 00003444 004444 000010 00 AX 0 0 4 + [36] .text.GPT_IO_Init PROGBITS 00003454 004454 0000a0 00 AX 0 0 4 + [37] .text.GPT_Configu PROGBITS 000034f4 0044f4 000014 00 AX 0 0 4 + [38] .text.GPT_WaveCtr PROGBITS 00003508 004508 000044 00 AX 0 0 4 + [39] .text.GPT_WaveLoa PROGBITS 0000354c 00454c 000014 00 AX 0 0 4 + [40] .text.GPT_WaveOut PROGBITS 00003560 004560 0000b4 00 AX 0 0 4 + [41] .text.GPT_Start PROGBITS 00003614 004614 000010 00 AX 0 0 4 + [42] .text.GPT_Period_ PROGBITS 00003624 004624 000010 00 AX 0 0 4 + [43] .text.GPT_ConfigI PROGBITS 00003634 004634 00001c 00 AX 0 0 4 + [44] .text.UART0_DeIni PROGBITS 00003650 004650 000018 00 AX 0 0 4 + [45] .text.UART1_DeIni PROGBITS 00003668 004668 000018 00 AX 0 0 4 + [46] .text.UART2_DeIni PROGBITS 00003680 004680 000018 00 AX 0 0 4 + [47] .text.UART0_Int_E PROGBITS 00003698 004698 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 000036b4 0046b4 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 000036d0 0046d0 0000ec 00 AX 0 0 4 + [50] .text.UARTInit PROGBITS 000037bc 0047bc 000010 00 AX 0 0 4 + [51] .text.UARTInitRxT PROGBITS 000037cc 0047cc 000010 00 AX 0 0 4 + [52] .text.UARTTransmi PROGBITS 000037dc 0047dc 00001e 00 AX 0 0 2 + [53] .text.EPT_Stop PROGBITS 000037fc 0047fc 000028 00 AX 0 0 4 + [54] .text.startup.mai PROGBITS 00003824 004824 000070 00 AX 0 0 4 + [55] .text.delay_nms PROGBITS 00003894 004894 00002c 00 AX 0 0 2 + [56] .text.GPT0_CONFIG PROGBITS 000038c0 0048c0 000094 00 AX 0 0 4 + [57] .text.BT_CONFIG PROGBITS 00003954 004954 000060 00 AX 0 0 4 + [58] .text.SYSCON_CONF PROGBITS 000039b4 0049b4 000062 00 AX 0 0 2 + [59] .text.APT32F102_i PROGBITS 00003a18 004a18 000050 00 AX 0 0 4 + [60] .text.SYSCONIntHa PROGBITS 00003a68 004a68 0000f0 00 AX 0 0 4 + [61] .text.IFCIntHandl PROGBITS 00003b58 004b58 000068 00 AX 0 0 4 + [62] .text.ADCIntHandl PROGBITS 00003bc0 004bc0 000068 00 AX 0 0 4 + [63] .text.EPT0IntHand PROGBITS 00003c28 004c28 0001ac 00 AX 0 0 4 + [64] .text.WWDTHandler PROGBITS 00003dd4 004dd4 000034 00 AX 0 0 4 + [65] .text.GPT0IntHand PROGBITS 00003e08 004e08 000080 00 AX 0 0 4 + [66] .text.RTCIntHandl PROGBITS 00003e88 004e88 000070 00 AX 0 0 4 + [67] .text.UART0IntHan PROGBITS 00003ef8 004ef8 00003c 00 AX 0 0 4 + [68] .text.UART1IntHan PROGBITS 00003f34 004f34 00003c 00 AX 0 0 4 + [69] .text.UART2IntHan PROGBITS 00003f70 004f70 000094 00 AX 0 0 4 + [70] .text.SPI0IntHand PROGBITS 00004004 005004 0000e8 00 AX 0 0 4 + [71] .text.SIO0IntHand PROGBITS 000040ec 0050ec 000054 00 AX 0 0 4 + [72] .text.EXI0IntHand PROGBITS 00004140 005140 000030 00 AX 0 0 4 + [73] .text.EXI1IntHand PROGBITS 00004170 005170 000030 00 AX 0 0 4 + [74] .text.EXI2to3IntH PROGBITS 000041a0 0051a0 000048 00 AX 0 0 4 + [75] .text.EXI4to9IntH PROGBITS 000041e8 0051e8 00005c 00 AX 0 0 4 + [76] .text.EXI10to15In PROGBITS 00004244 005244 000060 00 AX 0 0 4 + [77] .text.LPTIntHandl PROGBITS 000042a4 0052a4 000034 00 AX 0 0 4 + [78] .text.BT0IntHandl PROGBITS 000042d8 0052d8 00004c 00 AX 0 0 4 + [79] .text.BT1IntHandl PROGBITS 00004324 005324 000064 00 AX 0 0 4 + [80] .text.PriviledgeV PROGBITS 00004388 005388 000002 00 AX 0 0 2 + [81] .text.PendTrapHan PROGBITS 0000438a 00538a 000008 00 AX 0 0 2 + [82] .text.Trap3Handle PROGBITS 00004392 005392 000008 00 AX 0 0 2 + [83] .text.Trap2Handle PROGBITS 0000439a 00539a 000008 00 AX 0 0 2 + [84] .text.Trap1Handle PROGBITS 000043a2 0053a2 000008 00 AX 0 0 2 + [85] .text.Trap0Handle PROGBITS 000043aa 0053aa 000008 00 AX 0 0 2 + [86] .text.UnrecExecpH PROGBITS 000043b2 0053b2 000008 00 AX 0 0 2 + [87] .text.BreakPointH PROGBITS 000043ba 0053ba 000008 00 AX 0 0 2 + [88] .text.AccessErrHa PROGBITS 000043c2 0053c2 000008 00 AX 0 0 2 + [89] .text.IllegalInst PROGBITS 000043ca 0053ca 000008 00 AX 0 0 2 + [90] .text.MisalignedH PROGBITS 000043d2 0053d2 000008 00 AX 0 0 2 + [91] .text.CNTAIntHand PROGBITS 000043da 0053da 000008 00 AX 0 0 2 + [92] .text.I2CIntHandl PROGBITS 000043e2 0053e2 000008 00 AX 0 0 2 + [93] .text.__divsi3 PROGBITS 000043ec 0053ec 000024 00 AX 0 0 4 + [94] .text.__udivsi3 PROGBITS 00004410 005410 000024 00 AX 0 0 4 + [95] .text.__modsi3 PROGBITS 00004434 005434 000024 00 AX 0 0 4 + [96] .text.__umodsi3 PROGBITS 00004458 005458 000024 00 AX 0 0 4 + [97] .text.CK_CPU_EnAl PROGBITS 0000447c 00547c 000006 00 AX 0 0 2 + [98] .text.UARTx_Init PROGBITS 00004484 005484 0000d8 00 AX 0 0 4 + [99] .text.UART2_RecvI PROGBITS 0000455c 00555c 000064 00 AX 0 0 4 + [100] .text.Dbg_Println PROGBITS 000045c0 0055c0 000098 00 AX 0 0 4 + [101] .text.RC522_Delay PROGBITS 00004658 005658 000012 00 AX 0 0 2 + [102] .text.RC522_ReadW PROGBITS 0000466c 00566c 000054 00 AX 0 0 4 + [103] .text.RC522_ReadR PROGBITS 000046c0 0056c0 000038 00 AX 0 0 4 + [104] .text.RC522_Write PROGBITS 000046f8 0056f8 000030 00 AX 0 0 4 + [105] .text.RC522_PcdRe PROGBITS 00004728 005728 00004c 00 AX 0 0 2 + [106] .text.RC522_SetBi PROGBITS 00004774 005774 000018 00 AX 0 0 2 + [107] .text.RC522_PcdAn PROGBITS 0000478c 00578c 00001a 00 AX 0 0 2 + [108] .text.RC522_Clear PROGBITS 000047a6 0057a6 000016 00 AX 0 0 2 + [109] .text.RC522_PcdAn PROGBITS 000047bc 0057bc 00000c 00 AX 0 0 2 + [110] .text.RC522_Calul PROGBITS 000047c8 0057c8 000066 00 AX 0 0 2 + [111] .text.M500PcdConf PROGBITS 0000482e 00582e 000052 00 AX 0 0 2 + [112] .text.RC522_Init PROGBITS 00004880 005880 00009c 00 AX 0 0 4 + [113] .text.RC522_PcdCo PROGBITS 0000491c 00591c 00013a 00 AX 0 0 2 + [114] .text.RC522_PcdSe PROGBITS 00004a56 005a56 00006a 00 AX 0 0 2 + [115] .text.RC522_PcdAu PROGBITS 00004ac0 005ac0 000058 00 AX 0 0 2 + [116] .text.RC522_PcdRe PROGBITS 00004b18 005b18 00005e 00 AX 0 0 2 + [117] .text.RC522_PcdAn PROGBITS 00004b76 005b76 000074 00 AX 0 0 2 + [118] .text.Card_Read_T PROGBITS 00004bec 005bec 0000d4 00 AX 0 0 4 + [119] .text.RLY_Light_C PROGBITS 00004cc0 005cc0 000014 00 AX 0 0 4 + [120] .text.KEY1_LONG_P PROGBITS 00004cd4 005cd4 000070 00 AX 0 0 4 + [121] .text.RLY_Light_C PROGBITS 00004d44 005d44 000020 00 AX 0 0 4 + [122] .text.LogicCtrl_I PROGBITS 00004d64 005d64 000040 00 AX 0 0 4 + [123] .text.Debounce_Ta PROGBITS 00004da4 005da4 000068 00 AX 0 0 4 + [124] .text.LogicCtrl_T PROGBITS 00004e0c 005e0c 00008c 00 AX 0 0 4 + [125] .text.LogicCtrl_N PROGBITS 00004e98 005e98 000070 00 AX 0 0 4 + [126] .text.LogicCtrl_N PROGBITS 00004f08 005f08 0000c8 00 AX 0 0 4 + [127] .text.BackLight_T PROGBITS 00004fd0 005fd0 000034 00 AX 0 0 4 + [128] .text.Detect_WIFI PROGBITS 00005004 006004 000094 00 AX 0 0 4 + [129] .text.DM_Led_Task PROGBITS 00005098 006098 000054 00 AX 0 0 4 + [130] .text.button_init PROGBITS 000050ec 0060ec 00003a 00 AX 0 0 2 + [131] .text.button_atta PROGBITS 00005126 006126 00000a 00 AX 0 0 2 + [132] .text.button_hand PROGBITS 00005130 006130 000120 00 AX 0 0 2 + [133] .text.button_star PROGBITS 00005250 006250 000024 00 AX 0 0 4 + [134] .text.button_tick PROGBITS 00005274 006274 00001c 00 AX 0 0 4 + [135] .text.read_button PROGBITS 00005290 006290 000014 00 AX 0 0 4 + [136] .text.TK_Sampling PROGBITS 000052a4 0062a4 000058 00 AX 0 0 4 + [137] .text.TKEYIntHand PROGBITS 000052fc 0062fc 000088 00 AX 0 0 4 + [138] .text.get_key_num PROGBITS 00005384 006384 000028 00 AX 0 0 4 + [139] .text.TK_Scan_Sta PROGBITS 000053ac 0063ac 000020 00 AX 0 0 4 + [140] .text.TK_Keymap_p PROGBITS 000053cc 0063cc 000180 00 AX 0 0 4 + [141] .text.TK_overflow PROGBITS 0000554c 00654c 00011c 00 AX 0 0 4 + [142] .text.TK_Baseline PROGBITS 00005668 006668 0001d0 00 AX 0 0 4 + [143] .text.TK_result_p PROGBITS 00005838 006838 000054 00 AX 0 0 4 + [144] .text.CORETHandle PROGBITS 0000588c 00688c 000078 00 AX 0 0 4 + [145] .text.std_clk_cal PROGBITS 00005904 006904 000284 00 AX 0 0 4 + [146] .RomCode PROGBITS 00005b88 0080a0 000000 00 W 0 0 1 + [147] .rodata PROGBITS 00005b88 006b88 000c80 00 A 0 0 4 + [148] .data PROGBITS 20000000 008000 0000a0 00 WA 0 0 4 + [149] .bss NOBITS 200000a0 0080a0 0006b8 00 WA 0 0 4 + [150] .csky.attributes CSKY_ATTRIBUTES 00000000 0080a0 000022 00 0 0 1 + [151] .comment PROGBITS 00000000 0080c2 000042 01 MS 0 0 1 + [152] .csky_stack_size PROGBITS 00000000 008110 0008dc 00 0 0 16 + [153] .debug_line PROGBITS 00000000 0089ec 0039b8 00 0 0 1 + [154] .debug_info PROGBITS 00000000 00c3a4 02beac 00 0 0 1 + [155] .debug_abbrev PROGBITS 00000000 038250 00288b 00 0 0 1 + [156] .debug_aranges PROGBITS 00000000 03aae0 000cc8 00 0 0 8 + [157] .debug_ranges PROGBITS 00000000 03b7a8 000bf8 00 0 0 1 + [158] .debug_str PROGBITS 00000000 03c3a0 008862 01 MS 0 0 1 + [159] .debug_frame PROGBITS 00000000 044c04 001e1c 00 0 0 4 + [160] .debug_loc PROGBITS 00000000 046a20 002f28 00 0 0 1 + [161] .shstrtab STRTAB 00000000 04f089 000d45 00 0 0 1 + [162] .symtab SYMTAB 00000000 049948 004200 10 163 728 4 + [163] .strtab STRTAB 00000000 04db48 001541 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x06808 0x06808 R E 0x1000 + LOAD 0x008000 0x20000000 0x00006808 0x000a0 0x00758 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.SYSCON_Int_Enable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.GPIO_Read_Output .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.startup.main .text.delay_nms .text.GPT0_CONFIG .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.Dbg_Println .text.RC522_Delay .text.RC522_ReadWriteOneByte .text.RC522_ReadRawRC .text.RC522_WriteRawRC .text.RC522_PcdReset .text.RC522_SetBitMask .text.RC522_PcdAntennaOn .text.RC522_ClearBitMask .text.RC522_PcdAntennaOff .text.RC522_CalulateCRC .text.M500PcdConfigISOType.part.1 .text.RC522_Init .text.RC522_PcdComMF522 .text.RC522_PcdSelect .text.RC522_PcdAuthState .text.RC522_PcdRequest .text.RC522_PcdAnticoll .text.Card_Read_TasK .text.RLY_Light_Ctrl.part.0 .text.KEY1_LONG_PRESS_RELEASE_Handler .text.RLY_Light_Ctrl .text.LogicCtrl_Init .text.Debounce_Task .text.LogicCtrl_Task .text.LogicCtrl_NoRF_Init .text.LogicCtrl_NoRF_Task .text.BackLight_Task .text.Detect_WIFI_Task .text.DM_Led_Task .text.button_init .text.button_attach .text.button_handler .text.button_start .text.button_ticks .text.read_button_GPIO .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl.part.0) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.DM_Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Debounce_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_button.o(.text.read_button_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInit) for UARTInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPT0_CONFIG) for GPT0_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) for RC522_CalulateCRC + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Init) for RC522_Init + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) for RC522_PcdSelect + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) for RC522_PcdAuthState + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) for RC522_PcdRequest + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) for RC522_PcdAnticoll + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) for Card_Read_TasK + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) for LogicCtrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Debounce_Task) for Debounce_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) for LogicCtrl_Task + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) for LogicCtrl_NoRF_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) for LogicCtrl_NoRF_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.BackLight_Task) for BackLight_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) for Detect_WIFI_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.DM_Led_Task) for DM_Led_Task + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_init) for button_init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_attach) for button_attach + Obj/SYSTEM_button.o(.text.button_ticks) refers to Obj/SYSTEM_button.o(.text.button_handler) for button_handler + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_start) for button_start + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_button.o(.text.button_ticks) for button_ticks + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_button.o(.text.button_init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to memcpy_fast.o(.text) for memcpy + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2894 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.EXTI_interrupt_CMD(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.GPIO_EXTI_interrupt(Obj/FWlib_apt32f102_syscon.o), (4 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_IntGroup_Set(Obj/FWlib_apt32f102_gpio.o), (268 bytes). + Removing .text.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3088 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3405 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3150 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4118 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3521 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3637 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4837 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4945 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7594 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2843 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.delay_nus(Obj/mcu_initial.o), (34 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (136 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (156 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (188 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (188 bytes). + Removing .text(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .data(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .text.RC522_Reset(Obj/SYSTEM_rc522.o), (22 bytes). + Removing .text.M500PcdConfigISOType(Obj/SYSTEM_rc522.o), (18 bytes). + Removing .text.RC522_MFRC522_SelectTag(Obj/SYSTEM_rc522.o), (110 bytes). + Removing .text.RC522_PcdRead(Obj/SYSTEM_rc522.o), (84 bytes). + Removing .text.RC522_PcdWrite(Obj/SYSTEM_rc522.o), (142 bytes). + Removing .text.Detect_SPI_task(Obj/SYSTEM_rc522.o), (64 bytes). + Removing .text(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .data(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .text.Ctrl_Backlight(Obj/SYSTEM_logic_ctrl.o), (36 bytes). + Removing .text.KEY1_LONG_PRESS_START_Handler(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text(Obj/SYSTEM_button.o), (0 bytes). + Removing .data(Obj/SYSTEM_button.o), (0 bytes). + Removing .text.get_button_event(Obj/SYSTEM_button.o), (6 bytes). + Removing .text.button_stop(Obj/SYSTEM_button.o), (32 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (108 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +652 unused seciton(s) (total 179913 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_button.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_logic_ctrl.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_rc522.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + swrite 0x00001984 F 62 .text + $d 0x00001984 0 .text + $t 0x00001984 0 .text + $d 0x00001a18 0 .text + $d 0x00001a1c 0 .text + $t 0x00001a1c 0 .text + $d 0x00001aa4 0 .text + $t 0x00001aa4 0 .text + PAD.1851 0x00001b08 F 52 .text + $d 0x00001b08 0 .text + $t 0x00001b08 0 .text + $d 0x000020b0 0 .text + $t 0x000020bc 0 .text + $d 0x00002258 0 .text + $d 0x00002260 0 .text + $t 0x00002260 0 .text + $d 0x00002600 0 .text + $d 0x0000260c 0 .text + $t 0x0000260c 0 .text + $d 0x000029a0 0 .text + copystring 0x000029ac F 38 .text + $d 0x000029ac 0 .text + $t 0x000029ac 0 .text + $d 0x00002cd8 0 .text + $d 0x00002d0c 0 .text + $t 0x00002d0c 0 .text + $d 0x00002d34 0 .text + $d 0x00002d38 0 .text + $t 0x00002d38 0 .text + $d 0x00002d8c 0 .text + $t 0x00002d8c 0 .text + $d 0x00002e3c 0 .text + $t 0x00002e3c 0 .text + $d 0x00002e50 0 .text + $t 0x00002e50 0 .text + $d 0x00002e64 0 .text + $d 0x00002e6c 0 .text + $t 0x00002e6c 0 .text + $d 0x00002e94 0 .text + $d 0x00002e9c 0 .text + $t 0x00002e9c 0 .text + $d 0x00002ed8 0 .text + $t 0x00002ed8 0 .text + $d 0x00002f14 0 .text.__main + $t 0x00002f14 0 .text.__main + $d 0x00002f38 0 .text.__main + SYSCON_General_CMD.part.0 0x00002f4c F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $t 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fb8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fc0 0 .text.SYSCON_RST_VALUE + $t 0x00002fc0 0 .text.SYSCON_RST_VALUE + $d 0x00002ff0 0 .text.SYSCON_RST_VALUE + $d 0x0000300c 0 .text.SYSCON_General_CMD + $t 0x0000300c 0 .text.SYSCON_General_CMD + $d 0x00003038 0 .text.SYSCON_General_CMD + $d 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030b4 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $t 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030e8 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030ec 0 .text.SYSCON_WDT_CMD + $t 0x000030ec 0 .text.SYSCON_WDT_CMD + $d 0x0000311c 0 .text.SYSCON_WDT_CMD + $d 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $t 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $d 0x00003138 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $t 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $d 0x0000314c 0 .text.SYSCON_IWDCNT_Config + $d 0x00003154 0 .text.SYSCON_LVD_Config + $t 0x00003154 0 .text.SYSCON_LVD_Config + $d 0x0000316c 0 .text.SYSCON_LVD_Config + $d 0x00003174 0 .text.LVD_Int_Enable + $t 0x00003174 0 .text.LVD_Int_Enable + $d 0x0000318c 0 .text.LVD_Int_Enable + $d 0x00003190 0 .text.IWDT_Int_Enable + $t 0x00003190 0 .text.IWDT_Int_Enable + $d 0x000031a8 0 .text.IWDT_Int_Enable + $d 0x000031ac 0 .text.EXTI_trigger_CMD + $t 0x000031ac 0 .text.EXTI_trigger_CMD + $d 0x000031e8 0 .text.EXTI_trigger_CMD + $d 0x000031ec 0 .text.SYSCON_Int_Enable + $t 0x000031ec 0 .text.SYSCON_Int_Enable + $d 0x000031f4 0 .text.SYSCON_Int_Enable + $d 0x000031f8 0 .text.SYSCON_INT_Priority + $t 0x000031f8 0 .text.SYSCON_INT_Priority + $d 0x00003210 0 .text.SYSCON_INT_Priority + $d 0x0000321c 0 .text.Set_INT_Priority + $t 0x0000321c 0 .text.Set_INT_Priority + $d 0x00003248 0 .text.Set_INT_Priority + $d 0x0000324c 0 .text.GPIO_Init + $t 0x0000324c 0 .text.GPIO_Init + $d 0x0000325e 0 .text.GPIO_Init + $t 0x00003266 0 .text.GPIO_Init + $d 0x000032c2 0 .text.GPIO_Init + $t 0x000032ca 0 .text.GPIO_Init + $d 0x00003318 0 .text.GPIO_Init + $d 0x0000332c 0 .text.GPIO_PullHigh_Init + $t 0x0000332c 0 .text.GPIO_PullHigh_Init + $d 0x00003340 0 .text.GPIO_DriveStrength_EN + $t 0x00003340 0 .text.GPIO_DriveStrength_EN + $d 0x0000334e 0 .text.GPIO_Write_High + $t 0x0000334e 0 .text.GPIO_Write_High + $d 0x00003356 0 .text.GPIO_Write_Low + $t 0x00003356 0 .text.GPIO_Write_Low + $d 0x0000335e 0 .text.GPIO_Reverse + $t 0x0000335e 0 .text.GPIO_Reverse + $d 0x00003374 0 .text.GPIO_Read_Status + $t 0x00003374 0 .text.GPIO_Read_Status + $d 0x00003384 0 .text.GPIO_Read_Output + $t 0x00003384 0 .text.GPIO_Read_Output + $d 0x00003394 0 .text.LPT_Soft_Reset + $t 0x00003394 0 .text.LPT_Soft_Reset + $d 0x000033a4 0 .text.LPT_Soft_Reset + $d 0x000033a8 0 .text.WWDT_CNT_Load + $t 0x000033a8 0 .text.WWDT_CNT_Load + $d 0x000033b4 0 .text.WWDT_CNT_Load + $d 0x000033b8 0 .text.BT_DeInit + $t 0x000033b8 0 .text.BT_DeInit + $d 0x000033d4 0 .text.BT_Start + $t 0x000033d4 0 .text.BT_Start + $d 0x000033dc 0 .text.BT_Soft_Reset + $t 0x000033dc 0 .text.BT_Soft_Reset + $d 0x000033e6 0 .text.BT_Configure + $t 0x000033e6 0 .text.BT_Configure + $d 0x000033fe 0 .text.BT_ControlSet_Configure + $t 0x000033fe 0 .text.BT_ControlSet_Configure + $d 0x0000342a 0 .text.BT_Period_CMP_Write + $t 0x0000342a 0 .text.BT_Period_CMP_Write + $d 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $t 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $d 0x00003444 0 .text.BT1_INT_ENABLE + $t 0x00003444 0 .text.BT1_INT_ENABLE + $d 0x00003450 0 .text.BT1_INT_ENABLE + $d 0x00003454 0 .text.GPT_IO_Init + $t 0x00003454 0 .text.GPT_IO_Init + $d 0x000034ec 0 .text.GPT_IO_Init + $d 0x000034f4 0 .text.GPT_Configure + $t 0x000034f4 0 .text.GPT_Configure + $d 0x00003504 0 .text.GPT_Configure + $d 0x00003508 0 .text.GPT_WaveCtrl_Configure + $t 0x00003508 0 .text.GPT_WaveCtrl_Configure + $d 0x00003548 0 .text.GPT_WaveCtrl_Configure + $d 0x0000354c 0 .text.GPT_WaveLoad_Configure + $t 0x0000354c 0 .text.GPT_WaveLoad_Configure + $d 0x0000355c 0 .text.GPT_WaveLoad_Configure + $d 0x00003560 0 .text.GPT_WaveOut_Configure + $t 0x00003560 0 .text.GPT_WaveOut_Configure + $d 0x00003610 0 .text.GPT_WaveOut_Configure + $d 0x00003614 0 .text.GPT_Start + $t 0x00003614 0 .text.GPT_Start + $d 0x00003620 0 .text.GPT_Start + $d 0x00003624 0 .text.GPT_Period_CMP_Write + $t 0x00003624 0 .text.GPT_Period_CMP_Write + $d 0x00003630 0 .text.GPT_Period_CMP_Write + $d 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $t 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $d 0x0000364c 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00003650 0 .text.UART0_DeInit + $t 0x00003650 0 .text.UART0_DeInit + $d 0x00003664 0 .text.UART0_DeInit + $d 0x00003668 0 .text.UART1_DeInit + $t 0x00003668 0 .text.UART1_DeInit + $d 0x0000367c 0 .text.UART1_DeInit + $d 0x00003680 0 .text.UART2_DeInit + $t 0x00003680 0 .text.UART2_DeInit + $d 0x00003694 0 .text.UART2_DeInit + $d 0x00003698 0 .text.UART0_Int_Enable + $t 0x00003698 0 .text.UART0_Int_Enable + $d 0x000036ac 0 .text.UART0_Int_Enable + $d 0x000036b4 0 .text.UART2_Int_Enable + $t 0x000036b4 0 .text.UART2_Int_Enable + $d 0x000036c8 0 .text.UART2_Int_Enable + $d 0x000036d0 0 .text.UART_IO_Init + $t 0x000036d0 0 .text.UART_IO_Init + $d 0x000037b4 0 .text.UART_IO_Init + $d 0x000037bc 0 .text.UARTInit + $t 0x000037bc 0 .text.UARTInit + $d 0x000037c8 0 .text.UARTInit + $d 0x000037cc 0 .text.UARTInitRxTxIntEn + $t 0x000037cc 0 .text.UARTInitRxTxIntEn + $d 0x000037d8 0 .text.UARTInitRxTxIntEn + $d 0x000037dc 0 .text.UARTTransmit + $t 0x000037dc 0 .text.UARTTransmit + $d 0x000037fc 0 .text.EPT_Stop + $t 0x000037fc 0 .text.EPT_Stop + $d 0x0000381c 0 .text.EPT_Stop + $d 0x00003824 0 .text.startup.main + $t 0x00003824 0 .text.startup.main + $d 0x00003888 0 .text.startup.main + $d 0x00003894 0 .text.delay_nms + $t 0x00003894 0 .text.delay_nms + $d 0x000038c0 0 .text.GPT0_CONFIG + $t 0x000038c0 0 .text.GPT0_CONFIG + $d 0x00003950 0 .text.GPT0_CONFIG + $d 0x00003954 0 .text.BT_CONFIG + $t 0x00003954 0 .text.BT_CONFIG + $d 0x000039ac 0 .text.BT_CONFIG + $d 0x000039b4 0 .text.SYSCON_CONFIG + $t 0x000039b4 0 .text.SYSCON_CONFIG + $d 0x00003a18 0 .text.APT32F102_init + $t 0x00003a18 0 .text.APT32F102_init + $d 0x00003a60 0 .text.APT32F102_init + $d 0x00003a68 0 .text.SYSCONIntHandler + $t 0x00003a68 0 .text.SYSCONIntHandler + $d 0x00003b54 0 .text.SYSCONIntHandler + $d 0x00003b58 0 .text.IFCIntHandler + $t 0x00003b58 0 .text.IFCIntHandler + $d 0x00003bbc 0 .text.IFCIntHandler + $d 0x00003bc0 0 .text.ADCIntHandler + $t 0x00003bc0 0 .text.ADCIntHandler + $d 0x00003c24 0 .text.ADCIntHandler + $d 0x00003c28 0 .text.EPT0IntHandler + $t 0x00003c28 0 .text.EPT0IntHandler + $d 0x00003dc8 0 .text.EPT0IntHandler + $d 0x00003dd4 0 .text.WWDTHandler + $t 0x00003dd4 0 .text.WWDTHandler + $d 0x00003e04 0 .text.WWDTHandler + $d 0x00003e08 0 .text.GPT0IntHandler + $t 0x00003e08 0 .text.GPT0IntHandler + $d 0x00003e84 0 .text.GPT0IntHandler + $d 0x00003e88 0 .text.RTCIntHandler + $t 0x00003e88 0 .text.RTCIntHandler + $d 0x00003ef0 0 .text.RTCIntHandler + $d 0x00003ef8 0 .text.UART0IntHandler + $t 0x00003ef8 0 .text.UART0IntHandler + $d 0x00003f30 0 .text.UART0IntHandler + $d 0x00003f34 0 .text.UART1IntHandler + $t 0x00003f34 0 .text.UART1IntHandler + $d 0x00003f6c 0 .text.UART1IntHandler + $d 0x00003f70 0 .text.UART2IntHandler + $t 0x00003f70 0 .text.UART2IntHandler + $d 0x00003ff0 0 .text.UART2IntHandler + $d 0x00004004 0 .text.SPI0IntHandler + $t 0x00004004 0 .text.SPI0IntHandler + $d 0x000040e8 0 .text.SPI0IntHandler + $d 0x000040ec 0 .text.SIO0IntHandler + $t 0x000040ec 0 .text.SIO0IntHandler + $d 0x0000413c 0 .text.SIO0IntHandler + $d 0x00004140 0 .text.EXI0IntHandler + $t 0x00004140 0 .text.EXI0IntHandler + $d 0x0000416c 0 .text.EXI0IntHandler + $d 0x00004170 0 .text.EXI1IntHandler + $t 0x00004170 0 .text.EXI1IntHandler + $d 0x0000419c 0 .text.EXI1IntHandler + $d 0x000041a0 0 .text.EXI2to3IntHandler + $t 0x000041a0 0 .text.EXI2to3IntHandler + $d 0x000041e4 0 .text.EXI2to3IntHandler + $d 0x000041e8 0 .text.EXI4to9IntHandler + $t 0x000041e8 0 .text.EXI4to9IntHandler + $d 0x00004240 0 .text.EXI4to9IntHandler + $d 0x00004244 0 .text.EXI10to15IntHandler + $t 0x00004244 0 .text.EXI10to15IntHandler + $d 0x000042a0 0 .text.EXI10to15IntHandler + $d 0x000042a4 0 .text.LPTIntHandler + $t 0x000042a4 0 .text.LPTIntHandler + $d 0x000042d4 0 .text.LPTIntHandler + $d 0x000042d8 0 .text.BT0IntHandler + $t 0x000042d8 0 .text.BT0IntHandler + $d 0x00004320 0 .text.BT0IntHandler + $d 0x00004324 0 .text.BT1IntHandler + $t 0x00004324 0 .text.BT1IntHandler + $d 0x00004380 0 .text.BT1IntHandler + $d 0x00004388 0 .text.PriviledgeVioHandler + $t 0x00004388 0 .text.PriviledgeVioHandler + $d 0x0000438a 0 .text.PendTrapHandler + $t 0x0000438a 0 .text.PendTrapHandler + $d 0x00004392 0 .text.Trap3Handler + $t 0x00004392 0 .text.Trap3Handler + $d 0x0000439a 0 .text.Trap2Handler + $t 0x0000439a 0 .text.Trap2Handler + $d 0x000043a2 0 .text.Trap1Handler + $t 0x000043a2 0 .text.Trap1Handler + $d 0x000043aa 0 .text.Trap0Handler + $t 0x000043aa 0 .text.Trap0Handler + $d 0x000043b2 0 .text.UnrecExecpHandler + $t 0x000043b2 0 .text.UnrecExecpHandler + $d 0x000043ba 0 .text.BreakPointHandler + $t 0x000043ba 0 .text.BreakPointHandler + $d 0x000043c2 0 .text.AccessErrHandler + $t 0x000043c2 0 .text.AccessErrHandler + $d 0x000043ca 0 .text.IllegalInstrHandler + $t 0x000043ca 0 .text.IllegalInstrHandler + $d 0x000043d2 0 .text.MisalignedHandler + $t 0x000043d2 0 .text.MisalignedHandler + $d 0x000043da 0 .text.CNTAIntHandler + $t 0x000043da 0 .text.CNTAIntHandler + $d 0x000043e2 0 .text.I2CIntHandler + $t 0x000043e2 0 .text.I2CIntHandler + $d 0x000043ec 0 .text.__divsi3 + $t 0x000043ec 0 .text.__divsi3 + $d 0x0000440c 0 .text.__divsi3 + $d 0x00004410 0 .text.__udivsi3 + $t 0x00004410 0 .text.__udivsi3 + $d 0x00004430 0 .text.__udivsi3 + $d 0x00004434 0 .text.__modsi3 + $t 0x00004434 0 .text.__modsi3 + $d 0x00004454 0 .text.__modsi3 + $d 0x00004458 0 .text.__umodsi3 + $t 0x00004458 0 .text.__umodsi3 + $d 0x00004478 0 .text.__umodsi3 + $d 0x0000447c 0 .text.CK_CPU_EnAllNormalIrq + $t 0x0000447c 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00004484 0 .text.UARTx_Init + $t 0x00004484 0 .text.UARTx_Init + $d 0x00004540 0 .text.UARTx_Init + $d 0x0000455c 0 .text.UART2_RecvINT_Processing + $t 0x0000455c 0 .text.UART2_RecvINT_Processing + $d 0x000045b0 0 .text.UART2_RecvINT_Processing + $d 0x000045c0 0 .text.Dbg_Println + $t 0x000045c0 0 .text.Dbg_Println + $d 0x00004640 0 .text.Dbg_Println + $d 0x00004658 0 .text.RC522_Delay + $t 0x00004658 0 .text.RC522_Delay + $d 0x0000466c 0 .text.RC522_ReadWriteOneByte + $t 0x0000466c 0 .text.RC522_ReadWriteOneByte + $d 0x000046bc 0 .text.RC522_ReadWriteOneByte + $d 0x000046c0 0 .text.RC522_ReadRawRC + $t 0x000046c0 0 .text.RC522_ReadRawRC + $d 0x000046f4 0 .text.RC522_ReadRawRC + $d 0x000046f8 0 .text.RC522_WriteRawRC + $t 0x000046f8 0 .text.RC522_WriteRawRC + $d 0x00004724 0 .text.RC522_WriteRawRC + $d 0x00004728 0 .text.RC522_PcdReset + $t 0x00004728 0 .text.RC522_PcdReset + $d 0x00004774 0 .text.RC522_SetBitMask + $t 0x00004774 0 .text.RC522_SetBitMask + $d 0x0000478c 0 .text.RC522_PcdAntennaOn + $t 0x0000478c 0 .text.RC522_PcdAntennaOn + $d 0x000047a6 0 .text.RC522_ClearBitMask + $t 0x000047a6 0 .text.RC522_ClearBitMask + $d 0x000047bc 0 .text.RC522_PcdAntennaOff + $t 0x000047bc 0 .text.RC522_PcdAntennaOff + $d 0x000047c8 0 .text.RC522_CalulateCRC + $t 0x000047c8 0 .text.RC522_CalulateCRC + M500PcdConfigISOType.part.1 0x0000482e F 82 .text.M500PcdConfigISOType.part.1 + $d 0x0000482e 0 .text.M500PcdConfigISOType.part.1 + $t 0x0000482e 0 .text.M500PcdConfigISOType.part.1 + $d 0x00004880 0 .text.RC522_Init + $t 0x00004880 0 .text.RC522_Init + $d 0x00004910 0 .text.RC522_Init + $d 0x0000491c 0 .text.RC522_PcdComMF522 + $t 0x0000491c 0 .text.RC522_PcdComMF522 + $d 0x00004a56 0 .text.RC522_PcdSelect + $t 0x00004a56 0 .text.RC522_PcdSelect + $d 0x00004ac0 0 .text.RC522_PcdAuthState + $t 0x00004ac0 0 .text.RC522_PcdAuthState + $d 0x00004b18 0 .text.RC522_PcdRequest + $t 0x00004b18 0 .text.RC522_PcdRequest + $d 0x00004b76 0 .text.RC522_PcdAnticoll + $t 0x00004b76 0 .text.RC522_PcdAnticoll + $d 0x00004bec 0 .text.Card_Read_TasK + $t 0x00004bec 0 .text.Card_Read_TasK + $d 0x00004c98 0 .text.Card_Read_TasK + RLY_Light_Ctrl.part.0 0x00004cc0 F 20 .text.RLY_Light_Ctrl.part.0 + $d 0x00004cc0 0 .text.RLY_Light_Ctrl.part.0 + $t 0x00004cc0 0 .text.RLY_Light_Ctrl.part.0 + $d 0x00004cd0 0 .text.RLY_Light_Ctrl.part.0 + $d 0x00004cd4 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $t 0x00004cd4 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004d24 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004d44 0 .text.RLY_Light_Ctrl + $t 0x00004d44 0 .text.RLY_Light_Ctrl + $d 0x00004d60 0 .text.RLY_Light_Ctrl + $d 0x00004d64 0 .text.LogicCtrl_Init + $t 0x00004d64 0 .text.LogicCtrl_Init + $d 0x00004d98 0 .text.LogicCtrl_Init + $d 0x00004da4 0 .text.Debounce_Task + $t 0x00004da4 0 .text.Debounce_Task + $d 0x00004e00 0 .text.Debounce_Task + $d 0x00004e0c 0 .text.LogicCtrl_Task + $t 0x00004e0c 0 .text.LogicCtrl_Task + $d 0x00004e84 0 .text.LogicCtrl_Task + $d 0x00004e98 0 .text.LogicCtrl_NoRF_Init + $t 0x00004e98 0 .text.LogicCtrl_NoRF_Init + $d 0x00004ef4 0 .text.LogicCtrl_NoRF_Init + $d 0x00004f08 0 .text.LogicCtrl_NoRF_Task + $t 0x00004f08 0 .text.LogicCtrl_NoRF_Task + $d 0x00004fb4 0 .text.LogicCtrl_NoRF_Task + $d 0x00004fd0 0 .text.BackLight_Task + $t 0x00004fd0 0 .text.BackLight_Task + $d 0x00004ffc 0 .text.BackLight_Task + $d 0x00005004 0 .text.Detect_WIFI_Task + $t 0x00005004 0 .text.Detect_WIFI_Task + $d 0x00005074 0 .text.Detect_WIFI_Task + $d 0x00005098 0 .text.DM_Led_Task + $t 0x00005098 0 .text.DM_Led_Task + $d 0x000050dc 0 .text.DM_Led_Task + $d 0x000050ec 0 .text.button_init + $t 0x000050ec 0 .text.button_init + $d 0x00005126 0 .text.button_attach + $t 0x00005126 0 .text.button_attach + $d 0x00005130 0 .text.button_handler + $t 0x00005130 0 .text.button_handler + $d 0x00005250 0 .text.button_start + $t 0x00005250 0 .text.button_start + $d 0x00005270 0 .text.button_start + $d 0x00005274 0 .text.button_ticks + $t 0x00005274 0 .text.button_ticks + $d 0x0000528c 0 .text.button_ticks + $d 0x00005290 0 .text.read_button_GPIO + $t 0x00005290 0 .text.read_button_GPIO + $d 0x000052a0 0 .text.read_button_GPIO + $d 0x000052a4 0 .text.TK_Sampling_prog + $t 0x000052a4 0 .text.TK_Sampling_prog + $d 0x000052ec 0 .text.TK_Sampling_prog + $d 0x000052fc 0 .text.TKEYIntHandler + $t 0x000052fc 0 .text.TKEYIntHandler + $d 0x00005378 0 .text.TKEYIntHandler + $d 0x00005384 0 .text.get_key_number + $t 0x00005384 0 .text.get_key_number + $d 0x000053a8 0 .text.get_key_number + $d 0x000053ac 0 .text.TK_Scan_Start + $t 0x000053ac 0 .text.TK_Scan_Start + $d 0x000053c4 0 .text.TK_Scan_Start + $d 0x000053cc 0 .text.TK_Keymap_prog + $t 0x000053cc 0 .text.TK_Keymap_prog + $d 0x00005514 0 .text.TK_Keymap_prog + $d 0x0000554c 0 .text.TK_overflow_predict + $t 0x0000554c 0 .text.TK_overflow_predict + $d 0x00005634 0 .text.TK_overflow_predict + $d 0x00005668 0 .text.TK_Baseline_tracking + $t 0x00005668 0 .text.TK_Baseline_tracking + $d 0x0000580c 0 .text.TK_Baseline_tracking + $d 0x00005838 0 .text.TK_result_prog + $t 0x00005838 0 .text.TK_result_prog + $d 0x00005878 0 .text.TK_result_prog + $d 0x0000588c 0 .text.CORETHandler + $t 0x0000588c 0 .text.CORETHandler + $d 0x000058ec 0 .text.CORETHandler + $d 0x00005904 0 .text.std_clk_calib + $t 0x00005904 0 .text.std_clk_calib + $d 0x00005b4c 0 .text.std_clk_calib + bp 0x00005b88 O 16 .rodata + dp_l 0x00005b98 O 16 .rodata + dp_h 0x00005ba8 O 16 .rodata + blanks.1847 0x00005ccc O 16 .rodata + zeroes.1848 0x00005cdc O 16 .rodata + CSWTCH.1 0x00005cec O 576 .rodata + NUM.6033 0x200000ac O 1 .bss + test_tick.5955 0x200002dc O 4 .bss + card_tick.5954 0x200002e0 O 4 .bss + head_handle 0x200002e4 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __cskyvprintfsnprintf 0x00001964 F 32 .text + __cskyvprintfvsnprintf 0x000019c2 F 90 .text + __memset_fast 0x00001a1c w F 136 .text + memset 0x00001a1c w F 136 .text + __memcpy_fast 0x00001aa4 w F 100 .text + memcpy 0x00001aa4 w F 100 .text + __v2_printf 0x00001b3c F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00001b3c F 1828 .text + __udivdi3 0x00002260 F 940 .text + __umoddi3 0x0000260c F 928 .text + __GI___dtostr 0x000029d2 F 826 .text + __dtostr 0x000029d2 F 826 .text + __isnan 0x00002d0c F 44 .text + __strlen_fast 0x00002d38 w F 82 .text + strlen 0x00002d38 w F 82 .text + __strcpy_fast 0x00002d8c w F 176 .text + strcpy 0x00002d8c w F 176 .text + __GI_strchr 0x00002e3c F 18 .text + strchr 0x00002e3c w F 18 .text + __GI_strerror 0x00002e50 F 28 .text + strerror 0x00002e50 F 28 .text + __isinf 0x00002e6c F 48 .text + __eqdf2 0x00002e9c F 58 .text + __ltdf2 0x00002ed8 F 58 .text + __main 0x00002f14 F 56 .text.__main + SYSCON_RST_VALUE 0x00002fc0 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x0000300c F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x0000303c F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x000030c4 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x000030ec F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00003128 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x0000313c F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00003154 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00003174 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00003190 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x000031ac F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x000031ec F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x000031f8 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x0000321c F 48 .text.Set_INT_Priority + GPIO_Init 0x0000324c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000332c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00003340 F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x0000334e F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00003356 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x0000335e F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00003374 F 16 .text.GPIO_Read_Status + GPIO_Read_Output 0x00003384 F 16 .text.GPIO_Read_Output + LPT_Soft_Reset 0x00003394 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000033a8 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000033b8 F 28 .text.BT_DeInit + BT_Start 0x000033d4 F 8 .text.BT_Start + BT_Soft_Reset 0x000033dc F 10 .text.BT_Soft_Reset + BT_Configure 0x000033e6 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000033fe F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000342a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00003430 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00003444 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00003454 F 160 .text.GPT_IO_Init + GPT_Configure 0x000034f4 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00003508 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x0000354c F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x00003560 F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x00003614 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x00003624 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x00003634 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x00003650 F 24 .text.UART0_DeInit + UART1_DeInit 0x00003668 F 24 .text.UART1_DeInit + UART2_DeInit 0x00003680 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00003698 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000036b4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x000036d0 F 236 .text.UART_IO_Init + UARTInit 0x000037bc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x000037cc F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000037dc F 30 .text.UARTTransmit + EPT_Stop 0x000037fc F 40 .text.EPT_Stop + main 0x00003824 F 112 .text.startup.main + delay_nms 0x00003894 F 44 .text.delay_nms + GPT0_CONFIG 0x000038c0 F 148 .text.GPT0_CONFIG + BT_CONFIG 0x00003954 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x000039b4 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00003a18 F 80 .text.APT32F102_init + SYSCONIntHandler 0x00003a68 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00003b58 F 104 .text.IFCIntHandler + ADCIntHandler 0x00003bc0 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003c28 F 428 .text.EPT0IntHandler + WWDTHandler 0x00003dd4 F 52 .text.WWDTHandler + GPT0IntHandler 0x00003e08 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00003e88 F 112 .text.RTCIntHandler + UART0IntHandler 0x00003ef8 F 60 .text.UART0IntHandler + UART1IntHandler 0x00003f34 F 60 .text.UART1IntHandler + UART2IntHandler 0x00003f70 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00004004 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000040ec F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00004140 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00004170 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000041a0 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000041e8 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00004244 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000042a4 F 52 .text.LPTIntHandler + BT0IntHandler 0x000042d8 F 76 .text.BT0IntHandler + BT1IntHandler 0x00004324 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00004388 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x0000438a F 8 .text.PendTrapHandler + Trap3Handler 0x00004392 F 8 .text.Trap3Handler + Trap2Handler 0x0000439a F 8 .text.Trap2Handler + Trap1Handler 0x000043a2 F 8 .text.Trap1Handler + Trap0Handler 0x000043aa F 8 .text.Trap0Handler + UnrecExecpHandler 0x000043b2 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000043ba F 8 .text.BreakPointHandler + AccessErrHandler 0x000043c2 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000043ca F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000043d2 F 8 .text.MisalignedHandler + CNTAIntHandler 0x000043da F 8 .text.CNTAIntHandler + I2CIntHandler 0x000043e2 F 8 .text.I2CIntHandler + __divsi3 0x000043ec F 36 .text.__divsi3 + __udivsi3 0x00004410 F 36 .text.__udivsi3 + __modsi3 0x00004434 F 36 .text.__modsi3 + __umodsi3 0x00004458 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x0000447c F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x00004484 F 216 .text.UARTx_Init + UART2_RecvINT_Processing 0x0000455c F 100 .text.UART2_RecvINT_Processing + Dbg_Println 0x000045c0 F 152 .text.Dbg_Println + RC522_Delay 0x00004658 F 18 .text.RC522_Delay + RC522_ReadWriteOneByte 0x0000466c F 84 .text.RC522_ReadWriteOneByte + RC522_ReadRawRC 0x000046c0 F 56 .text.RC522_ReadRawRC + RC522_WriteRawRC 0x000046f8 F 48 .text.RC522_WriteRawRC + RC522_PcdReset 0x00004728 F 76 .text.RC522_PcdReset + RC522_SetBitMask 0x00004774 F 24 .text.RC522_SetBitMask + RC522_PcdAntennaOn 0x0000478c F 26 .text.RC522_PcdAntennaOn + RC522_ClearBitMask 0x000047a6 F 22 .text.RC522_ClearBitMask + RC522_PcdAntennaOff 0x000047bc F 12 .text.RC522_PcdAntennaOff + RC522_CalulateCRC 0x000047c8 F 102 .text.RC522_CalulateCRC + RC522_Init 0x00004880 F 156 .text.RC522_Init + RC522_PcdComMF522 0x0000491c F 314 .text.RC522_PcdComMF522 + RC522_PcdSelect 0x00004a56 F 106 .text.RC522_PcdSelect + RC522_PcdAuthState 0x00004ac0 F 88 .text.RC522_PcdAuthState + RC522_PcdRequest 0x00004b18 F 94 .text.RC522_PcdRequest + RC522_PcdAnticoll 0x00004b76 F 116 .text.RC522_PcdAnticoll + Card_Read_TasK 0x00004bec F 212 .text.Card_Read_TasK + KEY1_LONG_PRESS_RELEASE_Handler 0x00004cd4 F 112 .text.KEY1_LONG_PRESS_RELEASE_Handler + RLY_Light_Ctrl 0x00004d44 F 32 .text.RLY_Light_Ctrl + LogicCtrl_Init 0x00004d64 F 64 .text.LogicCtrl_Init + Debounce_Task 0x00004da4 F 104 .text.Debounce_Task + LogicCtrl_Task 0x00004e0c F 140 .text.LogicCtrl_Task + LogicCtrl_NoRF_Init 0x00004e98 F 112 .text.LogicCtrl_NoRF_Init + LogicCtrl_NoRF_Task 0x00004f08 F 200 .text.LogicCtrl_NoRF_Task + BackLight_Task 0x00004fd0 F 52 .text.BackLight_Task + Detect_WIFI_Task 0x00005004 F 148 .text.Detect_WIFI_Task + DM_Led_Task 0x00005098 F 84 .text.DM_Led_Task + button_init 0x000050ec F 58 .text.button_init + button_attach 0x00005126 F 10 .text.button_attach + button_handler 0x00005130 F 288 .text.button_handler + button_start 0x00005250 F 36 .text.button_start + button_ticks 0x00005274 F 28 .text.button_ticks + read_button_GPIO 0x00005290 F 20 .text.read_button_GPIO + TK_Sampling_prog 0x000052a4 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x000052fc F 136 .text.TKEYIntHandler + get_key_number 0x00005384 F 40 .text.get_key_number + TK_Scan_Start 0x000053ac F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x000053cc F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000554c F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00005668 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00005838 F 84 .text.TK_result_prog + CORETHandler 0x0000588c F 120 .text.CORETHandler + std_clk_calib 0x00005904 F 644 .text.std_clk_calib + __thenan_df 0x00005bb8 O 20 .rodata + __clz_tab 0x00005bcc O 256 .rodata + _end_rodata 0x00006808 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + Dbg_Switch 0x20000068 O 4 .data + s_tkey 0x2000006c O 4 .data + samp_setover_f 0x20000070 O 1 .data + tk_overflow_en 0x20000071 O 1 .data + tk_div 0x20000072 O 34 .data + neg_build_bounce 0x20000094 O 1 .data + pos_build_bounce 0x20000095 O 1 .data + tk_scan_para0 0x20000098 O 4 .data + scan_step_temp 0x2000009c O 1 .data + _end_data 0x200000a0 0 .data + _bss_start 0x200000a0 0 .bss + rf_exist 0x200000a0 O 1 .bss + last_state 0x200000a1 O 1 .bss + finish_flag 0x200000a2 O 1 .bss + detect_tick 0x200000a4 O 4 .bss + detect_count 0x200000a8 O 1 .bss + test_state 0x200000a9 O 1 .bss + SysTick_100us 0x200000b0 O 4 .bss + SysTick_1ms 0x200000b4 O 4 .bss + RS485_Comming 0x200000b8 O 4 .bss + RS485_Comm_Flag 0x200000bc O 4 .bss + RS485_Comm_Start 0x200000c0 O 4 .bss + RS485_Comm_End 0x200000c4 O 4 .bss + SysTick_Now 0x200000c8 O 4 .bss + SysTick_Last 0x200000cc O 4 .bss + SysTick_Diff 0x200000d0 O 4 .bss + Dbg_Buffer 0x200000d4 O 512 .bss + scan_tick 0x200002d4 O 4 .bss + LED_STATE 0x200002d8 O 1 .bss + Press_debounce_data 0x200002e8 O 1 .bss + TK_Lowpower_mode 0x200002e9 O 1 .bss + TK_Lowpower_level 0x200002ea O 1 .bss + TK_longpress_time 0x200002ec O 4 .bss + Release_debounce_data 0x200002f0 O 1 .bss + Key_mode 0x200002f1 O 1 .bss + TK_icon 0x200002f2 O 34 .bss + MultiTimes_Filter 0x20000314 O 1 .bss + Base_Speed 0x20000315 O 1 .bss + TK_IO_ENABLE 0x20000318 O 4 .bss + Valid_Key_Num 0x2000031c O 1 .bss + TK_senprd 0x2000031e O 34 .bss + TK_Wakeup_level 0x20000340 O 1 .bss + TK_Triggerlevel 0x20000342 O 34 .bss + TK_EC_LEVEL 0x20000364 O 2 .bss + TK_FVR_LEVEL 0x20000366 O 2 .bss + TK_BaseCnt 0x20000368 O 4 .bss + TK_PSEL_MODE 0x2000036c O 2 .bss + R_CMPB_BUF 0x20000370 O 4 .bss + R_CMPA_BUF 0x20000374 O 4 .bss + R_SIORX_buf 0x20000378 O 40 .bss + g_uart 0x200003a0 O 115 .bss + CardInfo 0x20000414 O 48 .bss + g_read 0x20000444 O 8 .bss + KEY1 0x2000044c O 48 .bss + dm_in 0x2000047c O 9 .bss + baseline_data0 0x20000488 O 34 .bss + TK_Postive_build2 0x200004aa O 17 .bss + Key_Map1 0x200004bc O 4 .bss + offset_data2_abs 0x200004c0 O 34 .bss + scan_f 0x200004e2 O 1 .bss + offset_data1_abs 0x200004e4 O 34 .bss + Release_debounce0 0x20000506 O 17 .bss + Key_Map0 0x20000518 O 4 .bss + bsae_over_f 0x2000051c O 1 .bss + scan_cnt 0x2000051e O 2 .bss + Press_debounce0 0x20000520 O 17 .bss + offset_data0 0x20000532 O 34 .bss + sampling_data1 0x20000554 O 34 .bss + Key_Map2 0x20000578 O 4 .bss + Release_debounce1 0x2000057c O 17 .bss + tk_overflow_f 0x2000058d O 1 .bss + TK_Negtive_build2 0x2000058e O 17 .bss + base_update_f 0x2000059f O 1 .bss + TK_Postive_build1 0x200005a0 O 17 .bss + time_cnt 0x200005b4 O 4 .bss + lpt_scan_pend_cnt 0x200005b8 O 2 .bss + TK_track_cnt 0x200005ba O 1 .bss + Key_Map 0x200005bc O 4 .bss + baseline_data1 0x200005c0 O 34 .bss + TK_Postive_build0 0x200005e2 O 17 .bss + sampling_data2 0x200005f4 O 34 .bss + offset_data1 0x20000616 O 34 .bss + TK_ovrdect_cnt 0x20000638 O 1 .bss + Press_debounce2 0x20000639 O 17 .bss + TK_Negtive_build1 0x2000064a O 17 .bss + tk_num 0x2000065b O 1 .bss + TK_Negtive_build0 0x2000065c O 17 .bss + Press_debounce1 0x2000066d O 17 .bss + Release_debounce2 0x2000067e O 17 .bss + r_Key_Map_Temp 0x20000690 O 4 .bss + tk_seque 0x20000694 O 17 .bss + scan_step 0x200006a5 O 1 .bss + baseline_data2 0x200006a6 O 34 .bss + tk_sampling_max 0x200006c8 O 34 .bss + offset_data0_abs 0x200006ea O 34 .bss + offset_data2 0x2000070c O 34 .bss + sampling_data0 0x2000072e O 34 .bss + errno 0x20000750 O 4 .bss + __malloc_lock 0x20000754 O 4 .bss + _ebss 0x20000758 0 .bss + _end 0x20000758 0 .bss + end 0x20000758 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00006808, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1012 .text pow.o + 0x00000b5e 0x00000006 Code RO 1020 .text fabs.o + 0x00000b64 0x00000020 Code RO 1026 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1033 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1044 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1049 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1056 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1063 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1070 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1077 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1084 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1091 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1098 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1105 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1119 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1126 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1133 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1139 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1146 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1153 .text _fpcmp_parts_df.o + 0x00001964 0x00000020 Code RO 1174 .text snprintf_required.o + 0x00001984 0x00000098 Code RO 1181 .text vsnprintf_required.o + 0x00001a1c 0x00000088 Code RO 1188 .text memset_fast.o + 0x00001aa4 0x00000064 Code RO 1193 .text memcpy_fast.o + 0x00001b08 0x00000758 Code RO 1351 .text __v2_printfDFHLlMOPpSSsWp.o + 0x00002260 0x000003ac Code RO 1410 .text _udivdi3.o + 0x0000260c 0x000003a0 Code RO 1417 .text _umoddi3.o + 0x000029ac 0x00000360 Code RO 1438 .text __dtostr.o + 0x00002d0c 0x0000002c Code RO 1446 .text __isnan.o + 0x00002d38 0x00000052 Code RO 1458 .text strlen_fast.o + 0x00002d8a 0x00000002 PAD + 0x00002d8c 0x000000b0 Code RO 1463 .text strcpy_fast.o + 0x00002e3c 0x00000012 Code RO 1468 .text strchr.o + 0x00002e4e 0x00000002 PAD + 0x00002e50 0x0000001c Code RO 1473 .text strerror.o + 0x00002e6c 0x00000030 Code RO 1481 .text __isinf.o + 0x00002e9c 0x0000003a Code RO 1487 .text _eq_df.o + 0x00002ed6 0x00000002 PAD + 0x00002ed8 0x0000003a Code RO 1494 .text _lt_df.o + 0x00002f14 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00002f4c 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00002fc0 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x0000300c 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000303c 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x000030c4 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x000030ec 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003128 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x0000313c 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00003154 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00003174 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00003190 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031ac 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x000031ec 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031f8 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000321c 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000324c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000332c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00003340 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x0000334e 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00003356 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x0000335e 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00003374 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00003384 0x00000010 Code RO 152 .text.GPIO_Read_Output Obj/FWlib_apt32f102_gpio.o + 0x00003394 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000033a8 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000033b8 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000033d4 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000033dc 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000033e6 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000033fe 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000342a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00003430 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00003444 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00003454 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x000034f4 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003508 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000354c 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003560 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003614 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x00003624 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x00003634 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x00003650 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003668 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003680 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003698 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036b4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036d0 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000037bc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x000037cc 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000037dc 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000037fc 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00003824 0x00000070 Code RO 690 .text.startup.main Obj/main.o + 0x00003894 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x000038c0 0x00000094 Code RO 711 .text.GPT0_CONFIG Obj/mcu_initial.o + 0x00003954 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x000039b4 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00003a18 0x00000050 Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00003a68 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00003b58 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003bc0 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003c28 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003dd4 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00003e08 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00003e88 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00003ef8 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003f34 0x0000003c Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003f70 0x00000094 Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00004004 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000040ec 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00004140 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00004170 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000041a0 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000041e8 0x0000005c Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00004244 0x00000060 Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000042a4 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x000042d8 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00004324 0x00000064 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00004388 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x0000438a 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00004392 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x0000439a 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000043a2 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000043aa 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000043b2 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000043ba 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000043c2 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000043ca 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000043d2 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x000043da 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x000043e2 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000043ec 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00004410 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00004434 0x00000024 Code RO 787 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00004458 0x00000024 Code RO 788 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x0000447c 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00004484 0x000000d8 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x0000455c 0x00000064 Code RO 822 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000045c0 0x00000098 Code RO 827 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00004658 0x00000012 Code RO 848 .text.RC522_Delay Obj/SYSTEM_rc522.o + 0x0000466c 0x00000054 Code RO 849 .text.RC522_ReadWriteOneByte Obj/SYSTEM_rc522.o + 0x000046c0 0x00000038 Code RO 850 .text.RC522_ReadRawRC Obj/SYSTEM_rc522.o + 0x000046f8 0x00000030 Code RO 851 .text.RC522_WriteRawRC Obj/SYSTEM_rc522.o + 0x00004728 0x0000004c Code RO 852 .text.RC522_PcdReset Obj/SYSTEM_rc522.o + 0x00004774 0x00000018 Code RO 853 .text.RC522_SetBitMask Obj/SYSTEM_rc522.o + 0x0000478c 0x0000001a Code RO 854 .text.RC522_PcdAntennaOn Obj/SYSTEM_rc522.o + 0x000047a6 0x00000016 Code RO 855 .text.RC522_ClearBitMask Obj/SYSTEM_rc522.o + 0x000047bc 0x0000000c Code RO 856 .text.RC522_PcdAntennaOff Obj/SYSTEM_rc522.o + 0x000047c8 0x00000066 Code RO 858 .text.RC522_CalulateCRC Obj/SYSTEM_rc522.o + 0x0000482e 0x00000052 Code RO 859 .text.M500PcdConfigISOType.part.1 Obj/SYSTEM_rc522.o + 0x00004880 0x0000009c Code RO 861 .text.RC522_Init Obj/SYSTEM_rc522.o + 0x0000491c 0x0000013a Code RO 862 .text.RC522_PcdComMF522 Obj/SYSTEM_rc522.o + 0x00004a56 0x0000006a Code RO 864 .text.RC522_PcdSelect Obj/SYSTEM_rc522.o + 0x00004ac0 0x00000058 Code RO 865 .text.RC522_PcdAuthState Obj/SYSTEM_rc522.o + 0x00004b18 0x0000005e Code RO 868 .text.RC522_PcdRequest Obj/SYSTEM_rc522.o + 0x00004b76 0x00000074 Code RO 869 .text.RC522_PcdAnticoll Obj/SYSTEM_rc522.o + 0x00004bec 0x000000d4 Code RO 870 .text.Card_Read_TasK Obj/SYSTEM_rc522.o + 0x00004cc0 0x00000014 Code RO 889 .text.RLY_Light_Ctrl.part.0 Obj/SYSTEM_logic_ctrl.o + 0x00004cd4 0x00000070 Code RO 890 .text.KEY1_LONG_PRESS_RELEASE_Handler Obj/SYSTEM_logic_ctrl.o + 0x00004d44 0x00000020 Code RO 892 .text.RLY_Light_Ctrl Obj/SYSTEM_logic_ctrl.o + 0x00004d64 0x00000040 Code RO 893 .text.LogicCtrl_Init Obj/SYSTEM_logic_ctrl.o + 0x00004da4 0x00000068 Code RO 894 .text.Debounce_Task Obj/SYSTEM_logic_ctrl.o + 0x00004e0c 0x0000008c Code RO 895 .text.LogicCtrl_Task Obj/SYSTEM_logic_ctrl.o + 0x00004e98 0x00000070 Code RO 897 .text.LogicCtrl_NoRF_Init Obj/SYSTEM_logic_ctrl.o + 0x00004f08 0x000000c8 Code RO 898 .text.LogicCtrl_NoRF_Task Obj/SYSTEM_logic_ctrl.o + 0x00004fd0 0x00000034 Code RO 899 .text.BackLight_Task Obj/SYSTEM_logic_ctrl.o + 0x00005004 0x00000094 Code RO 900 .text.Detect_WIFI_Task Obj/SYSTEM_logic_ctrl.o + 0x00005098 0x00000054 Code RO 901 .text.DM_Led_Task Obj/SYSTEM_logic_ctrl.o + 0x000050ec 0x0000003a Code RO 919 .text.button_init Obj/SYSTEM_button.o + 0x00005126 0x0000000a Code RO 920 .text.button_attach Obj/SYSTEM_button.o + 0x00005130 0x00000120 Code RO 922 .text.button_handler Obj/SYSTEM_button.o + 0x00005250 0x00000024 Code RO 923 .text.button_start Obj/SYSTEM_button.o + 0x00005274 0x0000001c Code RO 925 .text.button_ticks Obj/SYSTEM_button.o + 0x00005290 0x00000014 Code RO 926 .text.read_button_GPIO Obj/SYSTEM_button.o + 0x000052a4 0x00000058 Code RO 958 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000052fc 0x00000088 Code RO 962 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00005384 0x00000028 Code RO 963 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x000053ac 0x00000020 Code RO 965 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x000053cc 0x00000180 Code RO 966 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000554c 0x0000011c Code RO 967 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00005668 0x000001d0 Code RO 968 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00005838 0x00000054 Code RO 969 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000588c 0x00000078 Code RO 970 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00005904 0x00000284 Code RO 992 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00005b88 0x00000030 Data RO 1015 .rodata pow.o + 0x00005bb8 0x00000014 Data RO 1115 .rodata _thenan_df.o + 0x00005bcc 0x00000100 Data RO 1163 .rodata _clz.o + 0x00005ccc 0x00000020 Data RO 1354 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x00005cec 0x00000240 Data RO 1476 .rodata strerror.o + 0x00005f2c 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x00005f37 0x0000003e Data RO 831 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x00005f75 0x0000007a Data RO 872 .rodata.str1.1 Obj/SYSTEM_rc522.o + 0x00005fef 0x00000068 Data RO 902 .rodata.str1.1 Obj/SYSTEM_logic_ctrl.o + 0x00006057 0x00000022 Data RO 1355 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x00006079 0x00000008 Data RO 1441 .rodata.str1.1 __dtostr.o + 0x00006081 0x00000787 Data RO 1477 .rodata.str1.1 strerror.o + + Region RAM (Base: 0x20000000, Size: 0x00000758, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000004 Data RW 819 .data Obj/SYSTEM_uart.o + 0x2000006c 0x00000031 Data RW 949 .data FWlib_apt32f102_tkey_c_1_17.o + 0x2000009d 0x00000003 PAD + 0x200000a0 0x0000000a Zero RW 689 .bss Obj/main.o + 0x200000aa 0x00000002 PAD + 0x200000ac 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000b8 0x0000021c Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200002d4 0x00000004 Zero RW 847 .bss Obj/SYSTEM_rc522.o + 0x200002d8 0x0000000c Zero RW 888 .bss Obj/SYSTEM_logic_ctrl.o + 0x200002e4 0x00000004 Zero RW 918 .bss Obj/SYSTEM_button.o + 0x200002e8 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x2000036e 0x00000002 PAD + 0x20000370 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x200003a0 0x00000073 Zero RW 844 COMMON Obj/SYSTEM_uart.o + 0x20000413 0x00000001 PAD + 0x20000414 0x00000030 Zero RW 885 COMMON Obj/SYSTEM_rc522.o + 0x20000444 0x00000041 Zero RW 915 COMMON Obj/SYSTEM_logic_ctrl.o + 0x20000485 0x00000003 PAD + 0x20000488 0x000002c8 Zero RW 988 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000750 0x00000008 Zero RW 1431 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 269 Obj/arch_crt0.o + 56 0 0 0 803 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21132 Obj/FWlib_apt32f102_syscon.o + 328 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 112 11 0 144 10945 Obj/main.o + 466 0 0 0 16126 Obj/mcu_initial.o + 2434 0 0 60 14261 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 468 62 4 655 13076 Obj/SYSTEM_uart.o + 1636 122 0 52 15928 Obj/SYSTEM_rc522.o + 1068 104 0 77 12222 Obj/SYSTEM_logic_ctrl.o + 440 0 0 4 11539 Obj/SYSTEM_button.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 9526 299 108 992 241055 Object Totals + 10 0 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 5040 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3560 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 23416 3200 160 1720 266069 Grand Totals + 23416 3200 160 1720 266069 Elf Image Totals + 23416 3200 160 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 26616 ( 25.99kB) +Total RW Size (RW Data + ZI Data) 1880 ( 1.84kB) +Total ROM Size (Code + RO Data + RW Data) 26776 ( 26.15kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241012.asm b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241012.asm new file mode 100644 index 0000000..1892f8f --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241012.asm @@ -0,0 +1,11115 @@ + +.//Obj/RF_T1F_CR_V01_20241012.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00002eee .long 0x00002eee + 8: 00002ede .long 0x00002ede + c: 00000184 .long 0x00000184 + 10: 00002ee6 .long 0x00002ee6 + 14: 00002ea4 .long 0x00002ea4 + 18: 00000184 .long 0x00000184 + 1c: 00002ed6 .long 0x00002ed6 + 20: 00002ece .long 0x00002ece + 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: 00002ec6 .long 0x00002ec6 + 44: 00002ebe .long 0x00002ebe + 48: 00002eb6 .long 0x00002eb6 + 4c: 00002eae .long 0x00002eae + 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: 00002ea6 .long 0x00002ea6 + 80: 0000434c .long 0x0000434c + 84: 00002584 .long 0x00002584 + 88: 00002674 .long 0x00002674 + 8c: 000026dc .long 0x000026dc + 90: 00002744 .long 0x00002744 + 94: 00000184 .long 0x00000184 + 98: 000028f0 .long 0x000028f0 + 9c: 00002c5c .long 0x00002c5c + a0: 00002c8c .long 0x00002c8c + a4: 00002924 .long 0x00002924 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 000029a4 .long 0x000029a4 + b4: 00002a14 .long 0x00002a14 + b8: 00002a50 .long 0x00002a50 + bc: 00002a8c .long 0x00002a8c + c0: 00000184 .long 0x00000184 + c4: 00002efe .long 0x00002efe + c8: 00000184 .long 0x00000184 + cc: 00002b20 .long 0x00002b20 + d0: 00002c08 .long 0x00002c08 + d4: 00002cbc .long 0x00002cbc + d8: 00002d04 .long 0x00002d04 + dc: 00002d60 .long 0x00002d60 + e0: 00002ef6 .long 0x00002ef6 + e4: 00003dbc .long 0x00003dbc + e8: 00002dc0 .long 0x00002dc0 + ec: 00000184 .long 0x00000184 + f0: 00002df4 .long 0x00002df4 + f4: 00002e40 .long 0x00002e40 + 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, 0x2340 // 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: 00002340 .long 0x00002340 + 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, 0x4648 // 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: 00004648 .long 0x00004648 + 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, 0x4648 // 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, 0x4648 // 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: 00004648 .long 0x00004648 + 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, 0x4678 // 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: 00004678 .long 0x00004678 + +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, 0x4678 // 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: 00004678 .long 0x00004678 + 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, 0x4678 // 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: 00004678 .long 0x00004678 + +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, 0x468c // 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: 0000468c .long 0x0000468c + +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, 0x487c // 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, 0x20000540 // 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: 0000487c .long 0x0000487c + 1a7c: 2000009c .long 0x2000009c + 1a80: 20000540 .long 0x20000540 + 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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 1e9a: 9045 ld.w r2, (r0, 0x14) + 1e9c: 3301 movi r3, 1 + 1e9e: 7085 lsr r2, r1 + 1ea0: 688c and r2, r3 + { + if (dat==1) + 1ea2: 3a40 cmpnei r2, 0 + 1ea4: 70c4 lsl r3, r1 + 1ea6: 0c03 bf 0x1eac // 1eac + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00001eb0 : +/*************************************************************/ +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); + 1ed0: 1064 lrw r3, 0x20000014 // 1ee0 + 1ed2: 9340 ld.w r2, (r3, 0x0) + 1ed4: 9261 ld.w r3, (r2, 0x4) + 1ed6: 3bac bseti r3, 12 + 1ed8: 3bae bseti r3, 14 + 1eda: b261 st.w r3, (r2, 0x4) +} + 1edc: 783c jmp r15 + 1ede: 0000 bkpt + 1ee0: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00001ee4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 1ee4: 1063 lrw r3, 0x20000010 // 1ef0 + 1ee6: 9360 ld.w r3, (r3, 0x0) + 1ee8: 9340 ld.w r2, (r3, 0x0) + 1eea: 6c08 or r0, r2 + 1eec: b300 st.w r0, (r3, 0x0) +} + 1eee: 783c jmp r15 + 1ef0: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00001ef4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 1ef4: 3300 movi r3, 0 + 1ef6: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 1ef8: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 1efa: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 1efc: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 1efe: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 1f00: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 1f02: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 1f04: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 1f06: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 1f08: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 1f0a: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 1f0c: b06d st.w r3, (r0, 0x34) +} + 1f0e: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00001f10 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 1f10: 9060 ld.w r3, (r0, 0x0) + 1f12: 3ba0 bseti r3, 0 + 1f14: b060 st.w r3, (r0, 0x0) +} + 1f16: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00001f18 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 1f18: 9060 ld.w r3, (r0, 0x0) + 1f1a: 3bac bseti r3, 12 + 1f1c: 3bae bseti r3, 14 + 1f1e: b060 st.w r3, (r0, 0x0) +} + 1f20: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00001f22 : +//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) +{ + 1f22: 14c3 push r4-r6 + 1f24: 98a4 ld.w r5, (r14, 0x10) + 1f26: 6d97 mov r6, r5 + 1f28: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 1f2a: 6d18 or r4, r6 + 1f2c: 6cd0 or r3, r4 + 1f2e: 90a1 ld.w r5, (r0, 0x4) + 1f30: 6c4c or r1, r3 + 1f32: 6c54 or r1, r5 + 1f34: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 1f36: b042 st.w r2, (r0, 0x8) +} + 1f38: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +00001f3a : +//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) +{ + 1f3a: 14c4 push r4-r7 + 1f3c: 1421 subi r14, r14, 4 + 1f3e: 9885 ld.w r4, (r14, 0x14) + 1f40: 6dd3 mov r7, r4 + 1f42: 9886 ld.w r4, (r14, 0x18) + 1f44: b880 st.w r4, (r14, 0x0) + 1f46: 9887 ld.w r4, (r14, 0x1c) + 1f48: 6d93 mov r6, r4 + 1f4a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 1f4c: 6d58 or r5, r6 + 1f4e: 98c0 ld.w r6, (r14, 0x0) + 1f50: 6d58 or r5, r6 + 1f52: 6d5c or r5, r7 + 1f54: 6cd4 or r3, r5 + 1f56: 6c8c or r2, r3 + 1f58: 9081 ld.w r4, (r0, 0x4) + 1f5a: 6c48 or r1, r2 + 1f5c: 6d04 or r4, r1 + 1f5e: 6d9f mov r6, r7 + 1f60: b081 st.w r4, (r0, 0x4) +} + 1f62: 1401 addi r14, r14, 4 + 1f64: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00001f66 : +//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; + 1f66: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 1f68: b044 st.w r2, (r0, 0x10) +} + 1f6a: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00001f6c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 1f6c: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 1f6e: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 1f70: 0c04 bf 0x1f78 // 1f78 + BTx->IMCR |= BT_IMSCR_X; + 1f72: 6c8c or r2, r3 + 1f74: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 1f76: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 1f78: 68c9 andn r3, r2 + 1f7a: b06b st.w r3, (r0, 0x2c) +} + 1f7c: 07fd br 0x1f76 // 1f76 + +Disassembly of section .text.BT1_INT_ENABLE: + +00001f80 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 1f80: 3380 movi r3, 128 + 1f82: 4376 lsli r3, r3, 22 + 1f84: 1042 lrw r2, 0xe000e100 // 1f8c + 1f86: b260 st.w r3, (r2, 0x0) +} + 1f88: 783c jmp r15 + 1f8a: 0000 bkpt + 1f8c: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +00001f90 : +//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) + 1f90: 3840 cmpnei r0, 0 + 1f92: 080a bt 0x1fa6 // 1fa6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 1f94: 1165 lrw r3, 0x20000048 // 2028 + 1f96: 31f0 movi r1, 240 + 1f98: 9340 ld.w r2, (r3, 0x0) + 1f9a: 9260 ld.w r3, (r2, 0x0) + 1f9c: 68c5 andn r3, r1 + 1f9e: 3ba4 bseti r3, 4 + 1fa0: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 1fa2: b260 st.w r3, (r2, 0x0) + } +} + 1fa4: 040b br 0x1fba // 1fba + if(IONAME==GPT_CHA_PA09) + 1fa6: 3841 cmpnei r0, 1 + 1fa8: 080a bt 0x1fbc // 1fbc + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 1faa: 1161 lrw r3, 0x2000004c // 202c + 1fac: 31f0 movi r1, 240 + 1fae: 9340 ld.w r2, (r3, 0x0) + 1fb0: 9261 ld.w r3, (r2, 0x4) + 1fb2: 68c5 andn r3, r1 + 1fb4: 3ba4 bseti r3, 4 + 1fb6: 3ba6 bseti r3, 6 + 1fb8: b261 st.w r3, (r2, 0x4) +} + 1fba: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 1fbc: 3842 cmpnei r0, 2 + 1fbe: 080b bt 0x1fd4 // 1fd4 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 1fc0: 107b lrw r3, 0x2000004c // 202c + 1fc2: 32f0 movi r2, 240 + 1fc4: 9320 ld.w r1, (r3, 0x0) + 1fc6: 9161 ld.w r3, (r1, 0x4) + 1fc8: 4244 lsli r2, r2, 4 + 1fca: 68c9 andn r3, r2 + 1fcc: 3ba9 bseti r3, 9 + 1fce: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 1fd0: b161 st.w r3, (r1, 0x4) + 1fd2: 07f4 br 0x1fba // 1fba + if(IONAME==GPT_CHB_PA010) + 1fd4: 3843 cmpnei r0, 3 + 1fd6: 080b bt 0x1fec // 1fec + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 1fd8: 1075 lrw r3, 0x2000004c // 202c + 1fda: 32f0 movi r2, 240 + 1fdc: 9320 ld.w r1, (r3, 0x0) + 1fde: 4244 lsli r2, r2, 4 + 1fe0: 9161 ld.w r3, (r1, 0x4) + 1fe2: 68c9 andn r3, r2 + 1fe4: 32e0 movi r2, 224 + 1fe6: 4243 lsli r2, r2, 3 + 1fe8: 6cc8 or r3, r2 + 1fea: 07f3 br 0x1fd0 // 1fd0 + if(IONAME==GPT_CHB_PA011) + 1fec: 3844 cmpnei r0, 4 + 1fee: 080a bt 0x2002 // 2002 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 1ff0: 106f lrw r3, 0x2000004c // 202c + 1ff2: 32f0 movi r2, 240 + 1ff4: 9320 ld.w r1, (r3, 0x0) + 1ff6: 9161 ld.w r3, (r1, 0x4) + 1ff8: 4248 lsli r2, r2, 8 + 1ffa: 68c9 andn r3, r2 + 1ffc: 3bad bseti r3, 13 + 1ffe: 3bae bseti r3, 14 + 2000: 07e8 br 0x1fd0 // 1fd0 + if(IONAME==GPT_CHB_PB00) + 2002: 3845 cmpnei r0, 5 + 2004: 0808 bt 0x2014 // 2014 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 2006: 1069 lrw r3, 0x20000048 // 2028 + 2008: 310f movi r1, 15 + 200a: 9340 ld.w r2, (r3, 0x0) + 200c: 9260 ld.w r3, (r2, 0x0) + 200e: 68c5 andn r3, r1 + 2010: 3ba2 bseti r3, 2 + 2012: 07c8 br 0x1fa2 // 1fa2 + if(IONAME==GPT_CHB_PB01) + 2014: 3846 cmpnei r0, 6 + 2016: 0bd2 bt 0x1fba // 1fba + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 2018: 1064 lrw r3, 0x20000048 // 2028 + 201a: 31f0 movi r1, 240 + 201c: 9340 ld.w r2, (r3, 0x0) + 201e: 9260 ld.w r3, (r2, 0x0) + 2020: 68c5 andn r3, r1 + 2022: 3ba5 bseti r3, 5 + 2024: 3ba6 bseti r3, 6 + 2026: 07be br 0x1fa2 // 1fa2 + 2028: 20000048 .long 0x20000048 + 202c: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +00002030 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 2030: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 2032: 6c48 or r1, r2 + 2034: 1083 lrw r4, 0x20000024 // 2040 + 2036: 6c04 or r0, r1 + 2038: 9480 ld.w r4, (r4, 0x0) + 203a: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 203c: b462 st.w r3, (r4, 0x8) +} + 203e: 1481 pop r4 + 2040: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +00002044 : +/*************************************************************/ +//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) +{ + 2044: 14c4 push r4-r7 + 2046: 1423 subi r14, r14, 12 + 2048: 9887 ld.w r4, (r14, 0x1c) + 204a: 6dd3 mov r7, r4 + 204c: 9888 ld.w r4, (r14, 0x20) + 204e: b880 st.w r4, (r14, 0x0) + 2050: 9889 ld.w r4, (r14, 0x24) + 2052: b881 st.w r4, (r14, 0x4) + 2054: 988a ld.w r4, (r14, 0x28) + 2056: b882 st.w r4, (r14, 0x8) + 2058: 988b ld.w r4, (r14, 0x2c) + 205a: 6d93 mov r6, r4 + 205c: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 205e: 3cb2 bseti r4, 18 + 2060: 6d18 or r4, r6 + 2062: 98c2 ld.w r6, (r14, 0x8) + 2064: 6d18 or r4, r6 + 2066: 98c1 ld.w r6, (r14, 0x4) + 2068: 6d18 or r4, r6 + 206a: 98c0 ld.w r6, (r14, 0x0) + 206c: 6d18 or r4, r6 + 206e: 6d1c or r4, r7 + 2070: 6cd0 or r3, r4 + 2072: 6c8c or r2, r3 + 2074: 6c48 or r1, r2 + 2076: 10a4 lrw r5, 0x20000024 // 2084 + 2078: 6c04 or r0, r1 + 207a: 95a0 ld.w r5, (r5, 0x0) + 207c: 6d9f mov r6, r7 + 207e: b503 st.w r0, (r5, 0xc) +} + 2080: 1403 addi r14, r14, 12 + 2082: 1484 pop r4-r7 + 2084: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +00002088 : +//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) +{ + 2088: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 208a: 6c8c or r2, r3 + 208c: 6c48 or r1, r2 + 208e: 1083 lrw r4, 0x20000024 // 2098 + 2090: 6c04 or r0, r1 + 2092: 9480 ld.w r4, (r4, 0x0) + 2094: b411 st.w r0, (r4, 0x44) +} + 2096: 1481 pop r4 + 2098: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +0000209c : +//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) +{ + 209c: 14c4 push r4-r7 + 209e: 1425 subi r14, r14, 20 + 20a0: 1c09 addi r4, r14, 36 + 20a2: 8480 ld.b r4, (r4, 0x0) + 20a4: b880 st.w r4, (r14, 0x0) + 20a6: 1c0a addi r4, r14, 40 + 20a8: 8480 ld.b r4, (r4, 0x0) + 20aa: b881 st.w r4, (r14, 0x4) + 20ac: 1c0b addi r4, r14, 44 + 20ae: 8480 ld.b r4, (r4, 0x0) + 20b0: b882 st.w r4, (r14, 0x8) + 20b2: 1c0c addi r4, r14, 48 + 20b4: 8480 ld.b r4, (r4, 0x0) + 20b6: b883 st.w r4, (r14, 0xc) + 20b8: 1c0d addi r4, r14, 52 + 20ba: 8480 ld.b r4, (r4, 0x0) + 20bc: 1e10 addi r6, r14, 64 + 20be: b884 st.w r4, (r14, 0x10) + 20c0: 1d0f addi r5, r14, 60 + 20c2: 1c0e addi r4, r14, 56 + 20c4: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 20c6: 3840 cmpnei r0, 0 +{ + 20c8: 1e11 addi r6, r14, 68 + 20ca: 8480 ld.b r4, (r4, 0x0) + 20cc: 85a0 ld.b r5, (r5, 0x0) + 20ce: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 20d0: 081f bt 0x210e // 210e + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 20d2: 47f0 lsli r7, r7, 16 + 20d4: 46d2 lsli r6, r6, 18 + 20d6: 45ae lsli r5, r5, 14 + 20d8: 6dd8 or r7, r6 + 20da: 6dd4 or r7, r5 + 20dc: 448c lsli r4, r4, 12 + 20de: 6dd0 or r7, r4 + 20e0: 9884 ld.w r4, (r14, 0x10) + 20e2: 448a lsli r4, r4, 10 + 20e4: 6dd0 or r7, r4 + 20e6: 9883 ld.w r4, (r14, 0xc) + 20e8: 4488 lsli r4, r4, 8 + 20ea: 98a2 ld.w r5, (r14, 0x8) + 20ec: 6d1c or r4, r7 + 20ee: 45e6 lsli r7, r5, 6 + 20f0: 6d1c or r4, r7 + 20f2: 6c90 or r2, r4 + 20f4: 6cc8 or r3, r2 + 20f6: 9841 ld.w r2, (r14, 0x4) + 20f8: 4244 lsli r2, r2, 4 + 20fa: 6cc8 or r3, r2 + 20fc: 6c4c or r1, r3 + 20fe: 9860 ld.w r3, (r14, 0x0) + 2100: 4362 lsli r3, r3, 2 + 2102: 1013 lrw r0, 0x20000024 // 214c + 2104: 6c4c or r1, r3 + 2106: 9000 ld.w r0, (r0, 0x0) + 2108: 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); + } +} + 210a: 1405 addi r14, r14, 20 + 210c: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 210e: 3841 cmpnei r0, 1 + 2110: 0bfd bt 0x210a // 210a + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 2112: 47f0 lsli r7, r7, 16 + 2114: 46d2 lsli r6, r6, 18 + 2116: 45ae lsli r5, r5, 14 + 2118: 6dd8 or r7, r6 + 211a: 6dd4 or r7, r5 + 211c: 448c lsli r4, r4, 12 + 211e: 6dd0 or r7, r4 + 2120: 9884 ld.w r4, (r14, 0x10) + 2122: 448a lsli r4, r4, 10 + 2124: 6dd0 or r7, r4 + 2126: 9883 ld.w r4, (r14, 0xc) + 2128: 4488 lsli r4, r4, 8 + 212a: 98a2 ld.w r5, (r14, 0x8) + 212c: 6d1c or r4, r7 + 212e: 45e6 lsli r7, r5, 6 + 2130: 6d1c or r4, r7 + 2132: 6c90 or r2, r4 + 2134: 6cc8 or r3, r2 + 2136: 9841 ld.w r2, (r14, 0x4) + 2138: 4244 lsli r2, r2, 4 + 213a: 6cc8 or r3, r2 + 213c: 6c4c or r1, r3 + 213e: 9860 ld.w r3, (r14, 0x0) + 2140: 4362 lsli r3, r3, 2 + 2142: 1003 lrw r0, 0x20000024 // 214c + 2144: 6c4c or r1, r3 + 2146: 9000 ld.w r0, (r0, 0x0) + 2148: b033 st.w r1, (r0, 0x4c) +} + 214a: 07e0 br 0x210a // 210a + 214c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +00002150 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 2150: 1063 lrw r3, 0x20000024 // 215c + 2152: 9340 ld.w r2, (r3, 0x0) + 2154: 9261 ld.w r3, (r2, 0x4) + 2156: 3ba0 bseti r3, 0 + 2158: b261 st.w r3, (r2, 0x4) +} + 215a: 783c jmp r15 + 215c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +00002160 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 2160: 1063 lrw r3, 0x20000024 // 216c + 2162: 9360 ld.w r3, (r3, 0x0) + 2164: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 2166: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 2168: b34c st.w r2, (r3, 0x30) +} + 216a: 783c jmp r15 + 216c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +00002170 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 2170: 1066 lrw r3, 0x20000024 // 2188 + if (NewState != DISABLE) + 2172: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 2174: 9360 ld.w r3, (r3, 0x0) + 2176: 237f addi r3, 128 + 2178: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 217a: 0c04 bf 0x2182 // 2182 + GPT0->IMCR |= GPT_IMSCR_X; + 217c: 6c48 or r1, r2 + 217e: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 2180: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 2182: 6885 andn r2, r1 + 2184: b356 st.w r2, (r3, 0x58) +} + 2186: 07fd br 0x2180 // 2180 + 2188: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +0000218c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 218c: 1065 lrw r3, 0x20000040 // 21a0 + 218e: 3200 movi r2, 0 + 2190: 9360 ld.w r3, (r3, 0x0) + 2192: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 2194: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 2196: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 2198: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 219a: b344 st.w r2, (r3, 0x10) +} + 219c: 783c jmp r15 + 219e: 0000 bkpt + 21a0: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000021a4 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 21a4: 1065 lrw r3, 0x2000003c // 21b8 + 21a6: 3200 movi r2, 0 + 21a8: 9360 ld.w r3, (r3, 0x0) + 21aa: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 21ac: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 21ae: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 21b0: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 21b2: b344 st.w r2, (r3, 0x10) +} + 21b4: 783c jmp r15 + 21b6: 0000 bkpt + 21b8: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000021bc : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 21bc: 1065 lrw r3, 0x20000038 // 21d0 + 21be: 3200 movi r2, 0 + 21c0: 9360 ld.w r3, (r3, 0x0) + 21c2: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 21c4: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 21c6: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 21c8: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 21ca: b344 st.w r2, (r3, 0x10) +} + 21cc: 783c jmp r15 + 21ce: 0000 bkpt + 21d0: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000021d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 21d4: 1065 lrw r3, 0x20000040 // 21e8 + 21d6: 320f movi r2, 15 + 21d8: 9360 ld.w r3, (r3, 0x0) + 21da: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 21dc: 3380 movi r3, 128 + 21de: 4366 lsli r3, r3, 6 + 21e0: 1043 lrw r2, 0xe000e100 // 21ec + 21e2: b260 st.w r3, (r2, 0x0) +} + 21e4: 783c jmp r15 + 21e6: 0000 bkpt + 21e8: 20000040 .long 0x20000040 + 21ec: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000021f0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 21f0: 1065 lrw r3, 0x20000038 // 2204 + 21f2: 320f movi r2, 15 + 21f4: 9360 ld.w r3, (r3, 0x0) + 21f6: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 21f8: 3380 movi r3, 128 + 21fa: 4368 lsli r3, r3, 8 + 21fc: 1043 lrw r2, 0xe000e100 // 2208 + 21fe: b260 st.w r3, (r2, 0x0) +} + 2200: 783c jmp r15 + 2202: 0000 bkpt + 2204: 20000038 .long 0x20000038 + 2208: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000220c : +//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) + 220c: 3840 cmpnei r0, 0 + 220e: 0821 bt 0x2250 // 2250 + { + if(UART_IO_G==0) + 2210: 3940 cmpnei r1, 0 + 2212: 080a bt 0x2226 // 2226 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2214: 1177 lrw r3, 0x2000004c // 22f0 + 2216: 31ff movi r1, 255 + 2218: 9340 ld.w r2, (r3, 0x0) + 221a: 9260 ld.w r3, (r2, 0x0) + 221c: 68c5 andn r3, r1 + 221e: 3ba2 bseti r3, 2 + 2220: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2222: b260 st.w r3, (r2, 0x0) + 2224: 0415 br 0x224e // 224e + else if(UART_IO_G==1) + 2226: 3941 cmpnei r1, 1 + 2228: 0813 bt 0x224e // 224e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 222a: 1172 lrw r3, 0x2000004c // 22f0 + 222c: 31f0 movi r1, 240 + 222e: 9340 ld.w r2, (r3, 0x0) + 2230: 9260 ld.w r3, (r2, 0x0) + 2232: 4130 lsli r1, r1, 16 + 2234: 68c5 andn r3, r1 + 2236: 31e0 movi r1, 224 + 2238: 412f lsli r1, r1, 15 + 223a: 6cc4 or r3, r1 + 223c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 223e: 31f0 movi r1, 240 + 2240: 9261 ld.w r3, (r2, 0x4) + 2242: 412c lsli r1, r1, 12 + 2244: 68c5 andn r3, r1 + 2246: 31e0 movi r1, 224 + 2248: 412b lsli r1, r1, 11 + 224a: 6cc4 or r3, r1 + 224c: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 224e: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2250: 3841 cmpnei r0, 1 + 2252: 082d bt 0x22ac // 22ac + if(UART_IO_G==0) + 2254: 3940 cmpnei r1, 0 + 2256: 0814 bt 0x227e // 227e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2258: 1167 lrw r3, 0x20000048 // 22f4 + 225a: 310f movi r1, 15 + 225c: 9340 ld.w r2, (r3, 0x0) + 225e: 9260 ld.w r3, (r2, 0x0) + 2260: 68c5 andn r3, r1 + 2262: 3107 movi r1, 7 + 2264: 6cc4 or r3, r1 + 2266: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2268: 32f0 movi r2, 240 + 226a: 1162 lrw r3, 0x2000004c // 22f0 + 226c: 4250 lsli r2, r2, 16 + 226e: 9320 ld.w r1, (r3, 0x0) + 2270: 9161 ld.w r3, (r1, 0x4) + 2272: 68c9 andn r3, r2 + 2274: 32e0 movi r2, 224 + 2276: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2278: 6cc8 or r3, r2 + 227a: b161 st.w r3, (r1, 0x4) + 227c: 07e9 br 0x224e // 224e + else if(UART_IO_G==1) + 227e: 3941 cmpnei r1, 1 + 2280: 080c bt 0x2298 // 2298 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 2282: 107c lrw r3, 0x2000004c // 22f0 + 2284: 32ff movi r2, 255 + 2286: 9320 ld.w r1, (r3, 0x0) + 2288: 424c lsli r2, r2, 12 + 228a: 9160 ld.w r3, (r1, 0x0) + 228c: 68c9 andn r3, r2 + 228e: 32ee movi r2, 238 + 2290: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2292: 6cc8 or r3, r2 + 2294: b160 st.w r3, (r1, 0x0) +} + 2296: 07dc br 0x224e // 224e + else if(UART_IO_G==2) + 2298: 3942 cmpnei r1, 2 + 229a: 0bda bt 0x224e // 224e + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 229c: 1075 lrw r3, 0x2000004c // 22f0 + 229e: 32ee movi r2, 238 + 22a0: 9320 ld.w r1, (r3, 0x0) + 22a2: 9161 ld.w r3, (r1, 0x4) + 22a4: 4368 lsli r3, r3, 8 + 22a6: 4b68 lsri r3, r3, 8 + 22a8: 4257 lsli r2, r2, 23 + 22aa: 07e7 br 0x2278 // 2278 + if (IO_UART_NUM==IO_UART2) + 22ac: 3842 cmpnei r0, 2 + 22ae: 0bd0 bt 0x224e // 224e + if(UART_IO_G==0) + 22b0: 3940 cmpnei r1, 0 + 22b2: 0809 bt 0x22c4 // 22c4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 22b4: 106f lrw r3, 0x2000004c // 22f0 + 22b6: 31ff movi r1, 255 + 22b8: 9340 ld.w r2, (r3, 0x0) + 22ba: 9260 ld.w r3, (r2, 0x0) + 22bc: 68c5 andn r3, r1 + 22be: 3177 movi r1, 119 + 22c0: 6cc4 or r3, r1 + 22c2: 07b0 br 0x2222 // 2222 + else if(UART_IO_G==1) + 22c4: 3941 cmpnei r1, 1 + 22c6: 0809 bt 0x22d8 // 22d8 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 22c8: 106a lrw r3, 0x2000004c // 22f0 + 22ca: 32ee movi r2, 238 + 22cc: 9320 ld.w r1, (r3, 0x0) + 22ce: 9160 ld.w r3, (r1, 0x0) + 22d0: 4368 lsli r3, r3, 8 + 22d2: 4b68 lsri r3, r3, 8 + 22d4: 4257 lsli r2, r2, 23 + 22d6: 07de br 0x2292 // 2292 + else if(UART_IO_G==2) + 22d8: 3942 cmpnei r1, 2 + 22da: 0bba bt 0x224e // 224e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 22dc: 1066 lrw r3, 0x20000048 // 22f4 + 22de: 32ff movi r2, 255 + 22e0: 9320 ld.w r1, (r3, 0x0) + 22e2: 4250 lsli r2, r2, 16 + 22e4: 9160 ld.w r3, (r1, 0x0) + 22e6: 68c9 andn r3, r2 + 22e8: 32cc movi r2, 204 + 22ea: 424f lsli r2, r2, 15 + 22ec: 07d3 br 0x2292 // 2292 + 22ee: 0000 bkpt + 22f0: 2000004c .long 0x2000004c + 22f4: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000022f8 : +//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); + 22f8: 1063 lrw r3, 0x80003 // 2304 + 22fa: 6c8c or r2, r3 + 22fc: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 22fe: b024 st.w r1, (r0, 0x10) +} + 2300: 783c jmp r15 + 2302: 0000 bkpt + 2304: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002308 : +//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); + 2308: 1063 lrw r3, 0x8000f // 2314 + 230a: 6c8c or r2, r3 + 230c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 230e: b024 st.w r1, (r0, 0x10) +} + 2310: 783c jmp r15 + 2312: 0000 bkpt + 2314: 0008000f .long 0x0008000f + +Disassembly of section .text.EPT_Stop: + +00002318 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2318: 1068 lrw r3, 0x20000020 // 2338 + 231a: 3280 movi r2, 128 + 231c: 9360 ld.w r3, (r3, 0x0) + 231e: 608c addu r2, r3 + 2320: 1027 lrw r1, 0xa55ac73a // 233c + 2322: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2324: 9341 ld.w r2, (r3, 0x4) + 2326: 31fe movi r1, 254 + 2328: 6884 and r2, r1 + 232a: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 232c: 3101 movi r1, 1 + 232e: 9341 ld.w r2, (r3, 0x4) + 2330: 6884 and r2, r1 + 2332: 3a40 cmpnei r2, 0 + 2334: 0bfd bt 0x232e // 232e +} + 2336: 783c jmp r15 + 2338: 20000020 .long 0x20000020 + 233c: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +00002340
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2340: 14d1 push r4, r15 + + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 2342: 1099 lrw r4, 0x20000048 // 23a4 + 2344: 3201 movi r2, 1 + 2346: 9400 ld.w r0, (r4, 0x0) + 2348: 3102 movi r1, 2 + 234a: e3fffd1f bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOB0,DET_RF_MODULE_PIN); + 234e: 9400 ld.w r0, (r4, 0x0) + 2350: 3102 movi r1, 2 + 2352: e3fffd8b bsr 0x1e68 // 1e68 + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 2356: 3102 movi r1, 2 + 2358: 9400 ld.w r0, (r4, 0x0) + 235a: e3fffdab bsr 0x1eb0 // 1eb0 + 235e: 1093 lrw r4, 0x2000009c // 23a8 + last_state = rf_exist; + 2360: a401 st.b r0, (r4, 0x1) + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 2362: a400 st.b r0, (r4, 0x0) + APT32F102_init(); //102 initial + 2364: e00000e8 bsr 0x2534 // 2534 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 2368: 1031 lrw r1, 0x478c // 23ac + 236a: 3000 movi r0, 0 + 236c: e0000694 bsr 0x3094 // 3094 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2370: e3fffc7a bsr 0x1c64 // 1c64 + + //UART2_TASK(); + Detect_WIFI_Task(); + 2374: e0000ba0 bsr 0x3ab4 // 3ab4 + + Detect_SPI_task(); + 2378: e00009e8 bsr 0x3748 // 3748 + +// BackLight_Task(); + + + if (finish_flag == 1) { + 237c: 8462 ld.b r3, (r4, 0x2) + 237e: 3b41 cmpnei r3, 1 + 2380: 0bf8 bt 0x2370 // 2370 + Card_Read_TasK(); + 2382: e0000979 bsr 0x3674 // 3674 + + if(rf_exist == 0x01) + 2386: 8460 ld.b r3, (r4, 0x0) + 2388: 3b41 cmpnei r3, 1 + 238a: 0806 bt 0x2396 // 2396 + { + LogicCtrl_NoRF_Task(); //无RF模块轮询任务 + 238c: e0000b30 bsr 0x39ec // 39ec + DM_Led_Task(); + 2390: e0000bdc bsr 0x3b48 // 3b48 + 2394: 07ee br 0x2370 // 2370 + } + else if(rf_exist == 0x00) + 2396: 3b40 cmpnei r3, 0 + 2398: 0bec bt 0x2370 // 2370 + { + Debounce_Task(); + 239a: e0000a77 bsr 0x3888 // 3888 + LogicCtrl_Task(); //带RF模块执行逻辑 + 239e: e0000aa9 bsr 0x38f0 // 38f0 + 23a2: 07e7 br 0x2370 // 2370 + 23a4: 20000048 .long 0x20000048 + 23a8: 2000009c .long 0x2000009c + 23ac: 0000478c .long 0x0000478c + +Disassembly of section .text.delay_nms: + +000023b0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 23b0: 14d0 push r15 + 23b2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 23b4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 23b6: 3300 movi r3, 0 + j = 50* t; + 23b8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 23ba: b862 st.w r3, (r14, 0x8) + j = 50* t; + 23bc: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 23be: b860 st.w r3, (r14, 0x0) + 23c0: 9840 ld.w r2, (r14, 0x0) + 23c2: 9861 ld.w r3, (r14, 0x4) + 23c4: 64c8 cmphs r2, r3 + 23c6: 0c03 bf 0x23cc // 23cc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 23c8: 1403 addi r14, r14, 12 + 23ca: 1490 pop r15 + k++; + 23cc: 9862 ld.w r3, (r14, 0x8) + 23ce: 2300 addi r3, 1 + 23d0: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 23d2: e3fffc49 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 23d6: 9860 ld.w r3, (r14, 0x0) + 23d8: 2300 addi r3, 1 + 23da: 07f2 br 0x23be // 23be + +Disassembly of section .text.GPT0_CONFIG: + +000023dc : +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + 23dc: 14d0 push r15 + 23de: 1429 subi r14, r14, 36 + GPT_IO_Init(GPT_CHA_PB01); + 23e0: 3000 movi r0, 0 + 23e2: e3fffdd7 bsr 0x1f90 // 1f90 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 23e6: 3300 movi r3, 0 + 23e8: 3240 movi r2, 64 + 23ea: 3100 movi r1, 0 + 23ec: 3001 movi r0, 1 + 23ee: e3fffe21 bsr 0x2030 // 2030 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 23f2: 3300 movi r3, 0 + 23f4: b865 st.w r3, (r14, 0x14) + 23f6: b864 st.w r3, (r14, 0x10) + 23f8: b863 st.w r3, (r14, 0xc) + 23fa: b862 st.w r3, (r14, 0x8) + 23fc: b861 st.w r3, (r14, 0x4) + 23fe: b860 st.w r3, (r14, 0x0) + 2400: 3208 movi r2, 8 + 2402: 3100 movi r1, 0 + 2404: 3000 movi r0, 0 + 2406: e3fffe1f bsr 0x2044 // 2044 + if(rf_exist == 0x01) + 240a: 1079 lrw r3, 0x2000009c // 246c + 240c: 8360 ld.b r3, (r3, 0x0) + 240e: 3b41 cmpnei r3, 1 + 2410: 0827 bt 0x245e // 245e + { + GPT_Period_CMP_Write(2000,2000,0); + 2412: 31fa movi r1, 250 + 2414: 4123 lsli r1, r1, 3 + 2416: 3200 movi r2, 0 + 2418: 6c07 mov r0, r1 + } + else if(rf_exist == 0x00) + { + GPT_Period_CMP_Write(2000,0,0); + 241a: e3fffea3 bsr 0x2160 // 2160 + } + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 241e: 3320 movi r3, 32 + 2420: 3204 movi r2, 4 + 2422: 3100 movi r1, 0 + 2424: 3001 movi r0, 1 + 2426: e3fffe31 bsr 0x2088 // 2088 + GPT_WaveOut_Configure(GPT_CHA,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 242a: 3300 movi r3, 0 + 242c: 3201 movi r2, 1 + 242e: b868 st.w r3, (r14, 0x20) + 2430: b867 st.w r3, (r14, 0x1c) + 2432: b866 st.w r3, (r14, 0x18) + 2434: b865 st.w r3, (r14, 0x14) + 2436: b864 st.w r3, (r14, 0x10) + 2438: b863 st.w r3, (r14, 0xc) + 243a: b842 st.w r2, (r14, 0x8) + 243c: b841 st.w r2, (r14, 0x4) + 243e: b860 st.w r3, (r14, 0x0) + 2440: 3200 movi r2, 0 + 2442: 3302 movi r3, 2 + 2444: 3100 movi r1, 0 + 2446: 3000 movi r0, 0 + 2448: e3fffe2a bsr 0x209c // 209c + +// GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPB,2,0,0,0,1,1,0,0,0,0); + //GPT_SyncSet_Configure(GPT_SYNCUSR0_EN,GPT_OST_CONTINUOUS,GPT_TXREARM_DIS,GPT_TRGO0SEL_SR0,GPT_TRG10SEL_SR0,GPT_AREARM_DIS); + //GPT_Trigger_Configure(GPT_SRCSEL_TRGUSR0EN,GPT_BLKINV_DIS,GPT_ALIGNMD_PRD,GPT_CROSSMD_DIS,5,5); + //GPT_EVTRG_Configure(GPT_TRGSRC0_PRD,GPT_TRGSRC1_PRD,GPT_ESYN0OE_EN,GPT_ESYN1OE_EN,GPT_CNT0INIT_EN,GPT_CNT1INIT_EN,3,3,3,3); + GPT_Start(); + 244c: e3fffe82 bsr 0x2150 // 2150 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 2450: 3180 movi r1, 128 + 2452: 4129 lsli r1, r1, 9 + 2454: 3001 movi r0, 1 + 2456: e3fffe8d bsr 0x2170 // 2170 +// GPT_INT_ENABLE(); + //INTC_ISER_WRITE(GPT0_INT); + //INTC_IWER_WRITE(GPT0_INT); +} + 245a: 1409 addi r14, r14, 36 + 245c: 1490 pop r15 + else if(rf_exist == 0x00) + 245e: 3b40 cmpnei r3, 0 + 2460: 0bdf bt 0x241e // 241e + GPT_Period_CMP_Write(2000,0,0); + 2462: 30fa movi r0, 250 + 2464: 3200 movi r2, 0 + 2466: 3100 movi r1, 0 + 2468: 4003 lsli r0, r0, 3 + 246a: 07d8 br 0x241a // 241a + 246c: 2000009c .long 0x2000009c + +Disassembly of section .text.BT_CONFIG: + +00002470 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2470: 14d2 push r4-r5, r15 + 2472: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2474: 1095 lrw r4, 0x20000008 // 24c8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2476: 3500 movi r5, 0 + BT_DeInit(BT1); + 2478: 9400 ld.w r0, (r4, 0x0) + 247a: e3fffd3d bsr 0x1ef4 // 1ef4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 247e: 9400 ld.w r0, (r4, 0x0) + 2480: b8a1 st.w r5, (r14, 0x4) + 2482: b8a0 st.w r5, (r14, 0x0) + 2484: 3308 movi r3, 8 + 2486: 3200 movi r2, 0 + 2488: 3101 movi r1, 1 + 248a: e3fffd4c bsr 0x1f22 // 1f22 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 248e: 3380 movi r3, 128 + 2490: 4363 lsli r3, r3, 3 + 2492: b861 st.w r3, (r14, 0x4) + 2494: 9400 ld.w r0, (r4, 0x0) + 2496: 3300 movi r3, 0 + 2498: b8a3 st.w r5, (r14, 0xc) + 249a: b8a2 st.w r5, (r14, 0x8) + 249c: b8a0 st.w r5, (r14, 0x0) + 249e: 3200 movi r2, 0 + 24a0: 3180 movi r1, 128 + 24a2: e3fffd4c bsr 0x1f3a // 1f3a + BT_Period_CMP_Write(BT1,4780,1); + 24a6: 3201 movi r2, 1 + 24a8: 1029 lrw r1, 0x12ac // 24cc + 24aa: 9400 ld.w r0, (r4, 0x0) + 24ac: e3fffd5d bsr 0x1f66 // 1f66 + BT_Start(BT1); + 24b0: 9400 ld.w r0, (r4, 0x0) + 24b2: e3fffd2f bsr 0x1f10 // 1f10 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 24b6: 9400 ld.w r0, (r4, 0x0) + 24b8: 3202 movi r2, 2 + 24ba: 3101 movi r1, 1 + 24bc: e3fffd58 bsr 0x1f6c // 1f6c + BT1_INT_ENABLE(); + 24c0: e3fffd60 bsr 0x1f80 // 1f80 + +} + 24c4: 1404 addi r14, r14, 16 + 24c6: 1492 pop r4-r5, r15 + 24c8: 20000008 .long 0x20000008 + 24cc: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +000024d0 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 24d0: 14d0 push r15 + 24d2: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 24d4: e3fffb14 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 24d8: 3101 movi r1, 1 + 24da: 3001 movi r0, 1 + 24dc: e3fffb36 bsr 0x1b48 // 1b48 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 24e0: 3000 movi r0, 0 + 24e2: e3fffb8f bsr 0x1c00 // 1c00 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 24e6: 3180 movi r1, 128 + 24e8: 3308 movi r3, 8 + 24ea: 3200 movi r2, 0 + 24ec: 4121 lsli r1, r1, 1 + 24ee: 3002 movi r0, 2 + 24f0: e3fffb44 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 24f4: 3080 movi r0, 128 + 24f6: 3118 movi r1, 24 + 24f8: 4002 lsli r0, r0, 2 + 24fa: e3fffbbf bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 24fe: 3001 movi r0, 1 + 2500: e3fffb94 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2504: e3fffbb0 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2508: e3fffbe2 bsr 0x1ccc // 1ccc + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 250c: 3340 movi r3, 64 + 250e: b860 st.w r3, (r14, 0x0) + 2510: 31c0 movi r1, 192 + 2512: 3380 movi r3, 128 + 2514: 4364 lsli r3, r3, 4 + 2516: 3200 movi r2, 0 + 2518: 4123 lsli r1, r1, 3 + 251a: 3000 movi r0, 0 + 251c: e3fffbba bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 2520: e3fffbc8 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2524: e3fffc02 bsr 0x1d28 // 1d28 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 2528: 3000 movi r0, 0 + 252a: e0000f4d bsr 0x43c4 // 43c4 + +} + 252e: 1401 addi r14, r14, 4 + 2530: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002534 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2534: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2536: 1072 lrw r3, 0x2000005c // 257c + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2538: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 253a: 9340 ld.w r2, (r3, 0x0) + 253c: 1071 lrw r3, 0xfffffff // 2580 + 253e: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2540: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2542: 926c ld.w r3, (r2, 0x30) + 2544: 68c4 and r3, r1 + 2546: 3b40 cmpnei r3, 0 + 2548: 0ffd bf 0x2542 // 2542 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 254a: e3ffffc3 bsr 0x24d0 // 24d0 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 254e: e0000501 bsr 0x2f50 // 2f50 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2552: e3fffbf1 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2556: 3101 movi r1, 1 + 2558: 300f movi r0, 15 + 255a: e3fffbff bsr 0x1d58 // 1d58 +// Set_INT_Priority(SIO_IRQ,1); //SIO优先级最高 +// + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 255e: 3102 movi r1, 2 + 2560: 3019 movi r0, 25 + 2562: e3fffbfb bsr 0x1d58 // 1d58 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 2566: e3ffff85 bsr 0x2470 // 2470 + + GPT0_CONFIG(); + 256a: e3ffff39 bsr 0x23dc // 23dc + + UARTx_Init(UART_1,NULL); + 256e: 3100 movi r1, 0 + 2570: 3001 movi r0, 1 + 2572: e00004f3 bsr 0x2f58 // 2f58 +// UARTx_Init(UART_2,NULL); + + RC522_Init(); + 2576: e00006b5 bsr 0x32e0 // 32e0 +// } +// else if(rf_exist == 0x00) //带无线模块初始化 +// { +// LogicCtrl_Init(); +// } +} + 257a: 1490 pop r15 + 257c: 2000005c .long 0x2000005c + 2580: 0fffffff .long 0x0fffffff + +Disassembly of section .text.SYSCONIntHandler: + +00002584 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2584: 1460 nie + 2586: 1462 ipush + // ISR content ... + nop; + 2588: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 258a: 117a lrw r3, 0x2000005c // 2670 + 258c: 3280 movi r2, 128 + 258e: 9360 ld.w r3, (r3, 0x0) + 2590: 60c8 addu r3, r2 + 2592: 9323 ld.w r1, (r3, 0xc) + 2594: 3001 movi r0, 1 + 2596: 6840 and r1, r0 + 2598: 3940 cmpnei r1, 0 + 259a: 0c04 bf 0x25a2 // 25a2 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 259c: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 259e: 1463 ipop + 25a0: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 25a2: 9323 ld.w r1, (r3, 0xc) + 25a4: 3002 movi r0, 2 + 25a6: 6840 and r1, r0 + 25a8: 3940 cmpnei r1, 0 + 25aa: 0bf9 bt 0x259c // 259c + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 25ac: 9323 ld.w r1, (r3, 0xc) + 25ae: 3008 movi r0, 8 + 25b0: 6840 and r1, r0 + 25b2: 3940 cmpnei r1, 0 + 25b4: 0bf4 bt 0x259c // 259c + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 25b6: 9323 ld.w r1, (r3, 0xc) + 25b8: 3010 movi r0, 16 + 25ba: 6840 and r1, r0 + 25bc: 3940 cmpnei r1, 0 + 25be: 0bef bt 0x259c // 259c + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 25c0: 9323 ld.w r1, (r3, 0xc) + 25c2: 6848 and r1, r2 + 25c4: 3940 cmpnei r1, 0 + 25c6: 0c03 bf 0x25cc // 25cc + SYSCON->ICR = CMD_ERR_ST; + 25c8: b341 st.w r2, (r3, 0x4) +} + 25ca: 07ea br 0x259e // 259e + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 25cc: 3280 movi r2, 128 + 25ce: 9323 ld.w r1, (r3, 0xc) + 25d0: 4241 lsli r2, r2, 1 + 25d2: 6848 and r1, r2 + 25d4: 3940 cmpnei r1, 0 + 25d6: 0bf9 bt 0x25c8 // 25c8 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 25d8: 3280 movi r2, 128 + 25da: 9323 ld.w r1, (r3, 0xc) + 25dc: 4242 lsli r2, r2, 2 + 25de: 6848 and r1, r2 + 25e0: 3940 cmpnei r1, 0 + 25e2: 0bf3 bt 0x25c8 // 25c8 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 25e4: 3280 movi r2, 128 + 25e6: 9323 ld.w r1, (r3, 0xc) + 25e8: 4243 lsli r2, r2, 3 + 25ea: 6848 and r1, r2 + 25ec: 3940 cmpnei r1, 0 + 25ee: 0bed bt 0x25c8 // 25c8 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 25f0: 3280 movi r2, 128 + 25f2: 9323 ld.w r1, (r3, 0xc) + 25f4: 4244 lsli r2, r2, 4 + 25f6: 6848 and r1, r2 + 25f8: 3940 cmpnei r1, 0 + 25fa: 0c03 bf 0x2600 // 2600 + nop; + 25fc: 6c03 mov r0, r0 + 25fe: 07e5 br 0x25c8 // 25c8 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2600: 3280 movi r2, 128 + 2602: 9323 ld.w r1, (r3, 0xc) + 2604: 4245 lsli r2, r2, 5 + 2606: 6848 and r1, r2 + 2608: 3940 cmpnei r1, 0 + 260a: 0bdf bt 0x25c8 // 25c8 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 260c: 3280 movi r2, 128 + 260e: 9323 ld.w r1, (r3, 0xc) + 2610: 4246 lsli r2, r2, 6 + 2612: 6848 and r1, r2 + 2614: 3940 cmpnei r1, 0 + 2616: 0bd9 bt 0x25c8 // 25c8 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2618: 3280 movi r2, 128 + 261a: 9323 ld.w r1, (r3, 0xc) + 261c: 4247 lsli r2, r2, 7 + 261e: 6848 and r1, r2 + 2620: 3940 cmpnei r1, 0 + 2622: 0bd3 bt 0x25c8 // 25c8 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2624: 3280 movi r2, 128 + 2626: 9323 ld.w r1, (r3, 0xc) + 2628: 424b lsli r2, r2, 11 + 262a: 6848 and r1, r2 + 262c: 3940 cmpnei r1, 0 + 262e: 0bcd bt 0x25c8 // 25c8 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2630: 3280 movi r2, 128 + 2632: 9323 ld.w r1, (r3, 0xc) + 2634: 424c lsli r2, r2, 12 + 2636: 6848 and r1, r2 + 2638: 3940 cmpnei r1, 0 + 263a: 0bc7 bt 0x25c8 // 25c8 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 263c: 3280 movi r2, 128 + 263e: 9323 ld.w r1, (r3, 0xc) + 2640: 424d lsli r2, r2, 13 + 2642: 6848 and r1, r2 + 2644: 3940 cmpnei r1, 0 + 2646: 0bc1 bt 0x25c8 // 25c8 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2648: 3280 movi r2, 128 + 264a: 9323 ld.w r1, (r3, 0xc) + 264c: 424e lsli r2, r2, 14 + 264e: 6848 and r1, r2 + 2650: 3940 cmpnei r1, 0 + 2652: 0bbb bt 0x25c8 // 25c8 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2654: 3280 movi r2, 128 + 2656: 9323 ld.w r1, (r3, 0xc) + 2658: 424f lsli r2, r2, 15 + 265a: 6848 and r1, r2 + 265c: 3940 cmpnei r1, 0 + 265e: 0bb5 bt 0x25c8 // 25c8 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2660: 3280 movi r2, 128 + 2662: 9323 ld.w r1, (r3, 0xc) + 2664: 4256 lsli r2, r2, 22 + 2666: 6848 and r1, r2 + 2668: 3940 cmpnei r1, 0 + 266a: 0baf bt 0x25c8 // 25c8 + 266c: 0799 br 0x259e // 259e + 266e: 0000 bkpt + 2670: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002674 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2674: 1460 nie + 2676: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2678: 1078 lrw r3, 0x20000060 // 26d8 + 267a: 3101 movi r1, 1 + 267c: 9360 ld.w r3, (r3, 0x0) + 267e: 934b ld.w r2, (r3, 0x2c) + 2680: 6884 and r2, r1 + 2682: 3a40 cmpnei r2, 0 + 2684: 0c04 bf 0x268c // 268c + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2686: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2688: 1463 ipop + 268a: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 268c: 934b ld.w r2, (r3, 0x2c) + 268e: 3102 movi r1, 2 + 2690: 6884 and r2, r1 + 2692: 3a40 cmpnei r2, 0 + 2694: 0bf9 bt 0x2686 // 2686 + else if(IFC->MISR&PEP_END_INT) + 2696: 934b ld.w r2, (r3, 0x2c) + 2698: 3104 movi r1, 4 + 269a: 6884 and r2, r1 + 269c: 3a40 cmpnei r2, 0 + 269e: 0bf4 bt 0x2686 // 2686 + else if(IFC->MISR&PROT_ERR_INT) + 26a0: 3280 movi r2, 128 + 26a2: 932b ld.w r1, (r3, 0x2c) + 26a4: 4245 lsli r2, r2, 5 + 26a6: 6848 and r1, r2 + 26a8: 3940 cmpnei r1, 0 + 26aa: 0c03 bf 0x26b0 // 26b0 + IFC->ICR=OVW_ERR_INT; + 26ac: b34c st.w r2, (r3, 0x30) +} + 26ae: 07ed br 0x2688 // 2688 + else if(IFC->MISR&UDEF_ERR_INT) + 26b0: 3280 movi r2, 128 + 26b2: 932b ld.w r1, (r3, 0x2c) + 26b4: 4246 lsli r2, r2, 6 + 26b6: 6848 and r1, r2 + 26b8: 3940 cmpnei r1, 0 + 26ba: 0bf9 bt 0x26ac // 26ac + else if(IFC->MISR&ADDR_ERR_INT) + 26bc: 3280 movi r2, 128 + 26be: 932b ld.w r1, (r3, 0x2c) + 26c0: 4247 lsli r2, r2, 7 + 26c2: 6848 and r1, r2 + 26c4: 3940 cmpnei r1, 0 + 26c6: 0bf3 bt 0x26ac // 26ac + else if(IFC->MISR&OVW_ERR_INT) + 26c8: 3280 movi r2, 128 + 26ca: 932b ld.w r1, (r3, 0x2c) + 26cc: 4248 lsli r2, r2, 8 + 26ce: 6848 and r1, r2 + 26d0: 3940 cmpnei r1, 0 + 26d2: 0bed bt 0x26ac // 26ac + 26d4: 07da br 0x2688 // 2688 + 26d6: 0000 bkpt + 26d8: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +000026dc : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 26dc: 1460 nie + 26de: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 26e0: 1078 lrw r3, 0x20000050 // 2740 + 26e2: 3101 movi r1, 1 + 26e4: 9360 ld.w r3, (r3, 0x0) + 26e6: 9348 ld.w r2, (r3, 0x20) + 26e8: 6884 and r2, r1 + 26ea: 3a40 cmpnei r2, 0 + 26ec: 0c04 bf 0x26f4 // 26f4 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 26ee: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 26f0: 1463 ipop + 26f2: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 26f4: 9348 ld.w r2, (r3, 0x20) + 26f6: 3102 movi r1, 2 + 26f8: 6884 and r2, r1 + 26fa: 3a40 cmpnei r2, 0 + 26fc: 0bf9 bt 0x26ee // 26ee + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 26fe: 9348 ld.w r2, (r3, 0x20) + 2700: 3104 movi r1, 4 + 2702: 6884 and r2, r1 + 2704: 3a40 cmpnei r2, 0 + 2706: 0bf4 bt 0x26ee // 26ee + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 2708: 9348 ld.w r2, (r3, 0x20) + 270a: 3110 movi r1, 16 + 270c: 6884 and r2, r1 + 270e: 3a40 cmpnei r2, 0 + 2710: 0bef bt 0x26ee // 26ee + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 2712: 9348 ld.w r2, (r3, 0x20) + 2714: 3120 movi r1, 32 + 2716: 6884 and r2, r1 + 2718: 3a40 cmpnei r2, 0 + 271a: 0bea bt 0x26ee // 26ee + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 271c: 9348 ld.w r2, (r3, 0x20) + 271e: 3140 movi r1, 64 + 2720: 6884 and r2, r1 + 2722: 3a40 cmpnei r2, 0 + 2724: 0be5 bt 0x26ee // 26ee + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 2726: 9348 ld.w r2, (r3, 0x20) + 2728: 3180 movi r1, 128 + 272a: 6884 and r2, r1 + 272c: 3a40 cmpnei r2, 0 + 272e: 0be0 bt 0x26ee // 26ee + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 2730: 3280 movi r2, 128 + 2732: 9328 ld.w r1, (r3, 0x20) + 2734: 4249 lsli r2, r2, 9 + 2736: 6848 and r1, r2 + 2738: 3940 cmpnei r1, 0 + 273a: 0fdb bf 0x26f0 // 26f0 + ADC0->CSR = ADC12_SEQ_END0; + 273c: b347 st.w r2, (r3, 0x1c) +} + 273e: 07d9 br 0x26f0 // 26f0 + 2740: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00002744 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 2744: 1460 nie + 2746: 1462 ipush + 2748: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 274a: 1387 lrw r4, 0x20000020 // 28e4 + 274c: 3280 movi r2, 128 + 274e: 9460 ld.w r3, (r4, 0x0) + 2750: 60c8 addu r3, r2 + 2752: 9335 ld.w r1, (r3, 0x54) + 2754: 3001 movi r0, 1 + 2756: 6840 and r1, r0 + 2758: 3940 cmpnei r1, 0 + 275a: 0c03 bf 0x2760 // 2760 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 275c: b317 st.w r0, (r3, 0x5c) + 275e: 0424 br 0x27a6 // 27a6 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2760: 9335 ld.w r1, (r3, 0x54) + 2762: 3002 movi r0, 2 + 2764: 6840 and r1, r0 + 2766: 3940 cmpnei r1, 0 + 2768: 0bfa bt 0x275c // 275c + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 276a: 9335 ld.w r1, (r3, 0x54) + 276c: 3004 movi r0, 4 + 276e: 6840 and r1, r0 + 2770: 3940 cmpnei r1, 0 + 2772: 0bf5 bt 0x275c // 275c + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 2774: 9335 ld.w r1, (r3, 0x54) + 2776: 3008 movi r0, 8 + 2778: 6840 and r1, r0 + 277a: 3940 cmpnei r1, 0 + 277c: 0bf0 bt 0x275c // 275c + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 277e: 9335 ld.w r1, (r3, 0x54) + 2780: 3010 movi r0, 16 + 2782: 6840 and r1, r0 + 2784: 3940 cmpnei r1, 0 + 2786: 0c1f bf 0x27c4 // 27c4 + EPT0->ICR=EPT_CAP_LD0; + 2788: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 278a: 3200 movi r2, 0 + 278c: 3101 movi r1, 1 + 278e: 3000 movi r0, 0 + 2790: e3fffaac bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 2794: 3201 movi r2, 1 + 2796: 3101 movi r1, 1 + 2798: 3001 movi r0, 1 + 279a: e3fffaa7 bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 279e: 9460 ld.w r3, (r4, 0x0) + 27a0: 934b ld.w r2, (r3, 0x2c) + 27a2: 1272 lrw r3, 0x20000164 // 28e8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 27a4: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 27a6: 9460 ld.w r3, (r4, 0x0) + 27a8: 3280 movi r2, 128 + 27aa: 60c8 addu r3, r2 + 27ac: 932b ld.w r1, (r3, 0x2c) + 27ae: 3001 movi r0, 1 + 27b0: 6840 and r1, r0 + 27b2: 3940 cmpnei r1, 0 + 27b4: 0c61 bf 0x2876 // 2876 + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 27b6: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 27b8: d9ee2001 ld.w r15, (r14, 0x4) + 27bc: 9880 ld.w r4, (r14, 0x0) + 27be: 1402 addi r14, r14, 8 + 27c0: 1463 ipop + 27c2: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 27c4: 9335 ld.w r1, (r3, 0x54) + 27c6: 3020 movi r0, 32 + 27c8: 6840 and r1, r0 + 27ca: 3940 cmpnei r1, 0 + 27cc: 0c10 bf 0x27ec // 27ec + EPT0->ICR=EPT_CAP_LD1; + 27ce: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 27d0: 3200 movi r2, 0 + 27d2: 3101 movi r1, 1 + 27d4: 3001 movi r0, 1 + 27d6: e3fffa89 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 27da: 3201 movi r2, 1 + 27dc: 3101 movi r1, 1 + 27de: 3000 movi r0, 0 + 27e0: e3fffa84 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 27e4: 9460 ld.w r3, (r4, 0x0) + 27e6: 934c ld.w r2, (r3, 0x30) + 27e8: 1261 lrw r3, 0x20000160 // 28ec + 27ea: 07dd br 0x27a4 // 27a4 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 27ec: 9335 ld.w r1, (r3, 0x54) + 27ee: 3040 movi r0, 64 + 27f0: 6840 and r1, r0 + 27f2: 3940 cmpnei r1, 0 + 27f4: 0bb4 bt 0x275c // 275c + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 27f6: 9335 ld.w r1, (r3, 0x54) + 27f8: 6848 and r1, r2 + 27fa: 3940 cmpnei r1, 0 + 27fc: 0c03 bf 0x2802 // 2802 + EPT0->ICR=EPT_CDD; + 27fe: b357 st.w r2, (r3, 0x5c) + 2800: 07d3 br 0x27a6 // 27a6 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 2802: 3280 movi r2, 128 + 2804: 9335 ld.w r1, (r3, 0x54) + 2806: 4241 lsli r2, r2, 1 + 2808: 6848 and r1, r2 + 280a: 3940 cmpnei r1, 0 + 280c: 0bf9 bt 0x27fe // 27fe + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 280e: 3280 movi r2, 128 + 2810: 9335 ld.w r1, (r3, 0x54) + 2812: 4242 lsli r2, r2, 2 + 2814: 6848 and r1, r2 + 2816: 3940 cmpnei r1, 0 + 2818: 0bf3 bt 0x27fe // 27fe + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 281a: 3280 movi r2, 128 + 281c: 9335 ld.w r1, (r3, 0x54) + 281e: 4243 lsli r2, r2, 3 + 2820: 6848 and r1, r2 + 2822: 3940 cmpnei r1, 0 + 2824: 0bed bt 0x27fe // 27fe + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 2826: 3280 movi r2, 128 + 2828: 9335 ld.w r1, (r3, 0x54) + 282a: 4244 lsli r2, r2, 4 + 282c: 6848 and r1, r2 + 282e: 3940 cmpnei r1, 0 + 2830: 0be7 bt 0x27fe // 27fe + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 2832: 3280 movi r2, 128 + 2834: 9335 ld.w r1, (r3, 0x54) + 2836: 4245 lsli r2, r2, 5 + 2838: 6848 and r1, r2 + 283a: 3940 cmpnei r1, 0 + 283c: 0be1 bt 0x27fe // 27fe + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 283e: 3280 movi r2, 128 + 2840: 9335 ld.w r1, (r3, 0x54) + 2842: 4246 lsli r2, r2, 6 + 2844: 6848 and r1, r2 + 2846: 3940 cmpnei r1, 0 + 2848: 0bdb bt 0x27fe // 27fe + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 284a: 3280 movi r2, 128 + 284c: 9335 ld.w r1, (r3, 0x54) + 284e: 4247 lsli r2, r2, 7 + 2850: 6848 and r1, r2 + 2852: 3940 cmpnei r1, 0 + 2854: 0bd5 bt 0x27fe // 27fe + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 2856: 3280 movi r2, 128 + 2858: 9335 ld.w r1, (r3, 0x54) + 285a: 4248 lsli r2, r2, 8 + 285c: 6848 and r1, r2 + 285e: 3940 cmpnei r1, 0 + 2860: 0bcf bt 0x27fe // 27fe + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 2862: 3280 movi r2, 128 + 2864: 9335 ld.w r1, (r3, 0x54) + 2866: 4249 lsli r2, r2, 9 + 2868: 6848 and r1, r2 + 286a: 3940 cmpnei r1, 0 + 286c: 0f9d bf 0x27a6 // 27a6 + EPT0->ICR=EPT_PEND; + 286e: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 2870: e3fffd54 bsr 0x2318 // 2318 + 2874: 0799 br 0x27a6 // 27a6 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 2876: 932b ld.w r1, (r3, 0x2c) + 2878: 3002 movi r0, 2 + 287a: 6840 and r1, r0 + 287c: 3940 cmpnei r1, 0 + 287e: 0b9c bt 0x27b6 // 27b6 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 2880: 932b ld.w r1, (r3, 0x2c) + 2882: 3004 movi r0, 4 + 2884: 6840 and r1, r0 + 2886: 3940 cmpnei r1, 0 + 2888: 0b97 bt 0x27b6 // 27b6 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 288a: 932b ld.w r1, (r3, 0x2c) + 288c: 3008 movi r0, 8 + 288e: 6840 and r1, r0 + 2890: 3940 cmpnei r1, 0 + 2892: 0b92 bt 0x27b6 // 27b6 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 2894: 932b ld.w r1, (r3, 0x2c) + 2896: 3010 movi r0, 16 + 2898: 6840 and r1, r0 + 289a: 3940 cmpnei r1, 0 + 289c: 0b8d bt 0x27b6 // 27b6 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 289e: 932b ld.w r1, (r3, 0x2c) + 28a0: 3020 movi r0, 32 + 28a2: 6840 and r1, r0 + 28a4: 3940 cmpnei r1, 0 + 28a6: 0b88 bt 0x27b6 // 27b6 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 28a8: 932b ld.w r1, (r3, 0x2c) + 28aa: 3040 movi r0, 64 + 28ac: 6840 and r1, r0 + 28ae: 3940 cmpnei r1, 0 + 28b0: 0b83 bt 0x27b6 // 27b6 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 28b2: 932b ld.w r1, (r3, 0x2c) + 28b4: 6848 and r1, r2 + 28b6: 3940 cmpnei r1, 0 + 28b8: 0c03 bf 0x28be // 28be + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 28ba: b34d st.w r2, (r3, 0x34) +} + 28bc: 077e br 0x27b8 // 27b8 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 28be: 3280 movi r2, 128 + 28c0: 932b ld.w r1, (r3, 0x2c) + 28c2: 4241 lsli r2, r2, 1 + 28c4: 6848 and r1, r2 + 28c6: 3940 cmpnei r1, 0 + 28c8: 0bf9 bt 0x28ba // 28ba + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 28ca: 3280 movi r2, 128 + 28cc: 932b ld.w r1, (r3, 0x2c) + 28ce: 4242 lsli r2, r2, 2 + 28d0: 6848 and r1, r2 + 28d2: 3940 cmpnei r1, 0 + 28d4: 0bf3 bt 0x28ba // 28ba + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 28d6: 3280 movi r2, 128 + 28d8: 932b ld.w r1, (r3, 0x2c) + 28da: 4243 lsli r2, r2, 3 + 28dc: 6848 and r1, r2 + 28de: 3940 cmpnei r1, 0 + 28e0: 0bed bt 0x28ba // 28ba + 28e2: 076b br 0x27b8 // 27b8 + 28e4: 20000020 .long 0x20000020 + 28e8: 20000164 .long 0x20000164 + 28ec: 20000160 .long 0x20000160 + +Disassembly of section .text.WWDTHandler: + +000028f0 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 28f0: 1460 nie + 28f2: 1462 ipush + 28f4: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 28f6: 10ab lrw r5, 0x20000010 // 2920 + 28f8: 3401 movi r4, 1 + 28fa: 9560 ld.w r3, (r5, 0x0) + 28fc: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 28fe: 30ff movi r0, 255 + 2900: e3fffaf2 bsr 0x1ee4 // 1ee4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 2904: 9540 ld.w r2, (r5, 0x0) + 2906: 9263 ld.w r3, (r2, 0xc) + 2908: 68d0 and r3, r4 + 290a: 3b40 cmpnei r3, 0 + 290c: 0c02 bf 0x2910 // 2910 + { + WWDT->ICR = WWDT_EVI; + 290e: b285 st.w r4, (r2, 0x14) + } +} + 2910: d9ee2002 ld.w r15, (r14, 0x8) + 2914: 98a1 ld.w r5, (r14, 0x4) + 2916: 9880 ld.w r4, (r14, 0x0) + 2918: 1403 addi r14, r14, 12 + 291a: 1463 ipop + 291c: 1461 nir + 291e: 0000 bkpt + 2920: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00002924 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 2924: 1460 nie + 2926: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 2928: 107e lrw r3, 0x20000024 // 29a0 + 292a: 3101 movi r1, 1 + 292c: 9360 ld.w r3, (r3, 0x0) + 292e: 237f addi r3, 128 + 2930: 9355 ld.w r2, (r3, 0x54) + 2932: 6884 and r2, r1 + 2934: 3a40 cmpnei r2, 0 + 2936: 0c04 bf 0x293e // 293e + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 2938: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 293a: 1463 ipop + 293c: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 293e: 9355 ld.w r2, (r3, 0x54) + 2940: 3102 movi r1, 2 + 2942: 6884 and r2, r1 + 2944: 3a40 cmpnei r2, 0 + 2946: 0bf9 bt 0x2938 // 2938 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 2948: 9355 ld.w r2, (r3, 0x54) + 294a: 3110 movi r1, 16 + 294c: 6884 and r2, r1 + 294e: 3a40 cmpnei r2, 0 + 2950: 0bf4 bt 0x2938 // 2938 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 2952: 9355 ld.w r2, (r3, 0x54) + 2954: 3120 movi r1, 32 + 2956: 6884 and r2, r1 + 2958: 3a40 cmpnei r2, 0 + 295a: 0bef bt 0x2938 // 2938 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 295c: 3280 movi r2, 128 + 295e: 9335 ld.w r1, (r3, 0x54) + 2960: 4241 lsli r2, r2, 1 + 2962: 6848 and r1, r2 + 2964: 3940 cmpnei r1, 0 + 2966: 0c03 bf 0x296c // 296c + GPT0->ICR = GPT_INT_PEND; + 2968: b357 st.w r2, (r3, 0x5c) +} + 296a: 07e8 br 0x293a // 293a + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 296c: 3280 movi r2, 128 + 296e: 9335 ld.w r1, (r3, 0x54) + 2970: 4242 lsli r2, r2, 2 + 2972: 6848 and r1, r2 + 2974: 3940 cmpnei r1, 0 + 2976: 0bf9 bt 0x2968 // 2968 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 2978: 3280 movi r2, 128 + 297a: 9335 ld.w r1, (r3, 0x54) + 297c: 4243 lsli r2, r2, 3 + 297e: 6848 and r1, r2 + 2980: 3940 cmpnei r1, 0 + 2982: 0bf3 bt 0x2968 // 2968 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 2984: 3280 movi r2, 128 + 2986: 9335 ld.w r1, (r3, 0x54) + 2988: 4244 lsli r2, r2, 4 + 298a: 6848 and r1, r2 + 298c: 3940 cmpnei r1, 0 + 298e: 0bed bt 0x2968 // 2968 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 2990: 3280 movi r2, 128 + 2992: 9335 ld.w r1, (r3, 0x54) + 2994: 4249 lsli r2, r2, 9 + 2996: 6848 and r1, r2 + 2998: 3940 cmpnei r1, 0 + 299a: 0be7 bt 0x2968 // 2968 + 299c: 07cf br 0x293a // 293a + 299e: 0000 bkpt + 29a0: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +000029a4 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 29a4: 1460 nie + 29a6: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 29a8: 1079 lrw r3, 0x20000018 // 2a0c + 29aa: 3101 movi r1, 1 + 29ac: 9360 ld.w r3, (r3, 0x0) + 29ae: 934a ld.w r2, (r3, 0x28) + 29b0: 6884 and r2, r1 + 29b2: 3a40 cmpnei r2, 0 + 29b4: 0c14 bf 0x29dc // 29dc + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 29b6: 1057 lrw r2, 0xca53 // 2a10 + RTC->ICR=ALRA_INT; + 29b8: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 29ba: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 29bc: 9342 ld.w r2, (r3, 0x8) + 29be: 6c84 or r2, r1 + 29c0: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 29c2: 3280 movi r2, 128 + 29c4: 424d lsli r2, r2, 13 + 29c6: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 29c8: 3102 movi r1, 2 + 29ca: 9342 ld.w r2, (r3, 0x8) + 29cc: 6884 and r2, r1 + 29ce: 3a40 cmpnei r2, 0 + 29d0: 0bfd bt 0x29ca // 29ca + RTC->CR &= ~0x1; + 29d2: 9342 ld.w r2, (r3, 0x8) + 29d4: 3a80 bclri r2, 0 + 29d6: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 29d8: 1463 ipop + 29da: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 29dc: 934a ld.w r2, (r3, 0x28) + 29de: 3102 movi r1, 2 + 29e0: 6884 and r2, r1 + 29e2: 3a40 cmpnei r2, 0 + 29e4: 0c03 bf 0x29ea // 29ea + RTC->ICR=RTC_TRGEV1_INT; + 29e6: b32b st.w r1, (r3, 0x2c) +} + 29e8: 07f8 br 0x29d8 // 29d8 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 29ea: 934a ld.w r2, (r3, 0x28) + 29ec: 3104 movi r1, 4 + 29ee: 6884 and r2, r1 + 29f0: 3a40 cmpnei r2, 0 + 29f2: 0bfa bt 0x29e6 // 29e6 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 29f4: 934a ld.w r2, (r3, 0x28) + 29f6: 3108 movi r1, 8 + 29f8: 6884 and r2, r1 + 29fa: 3a40 cmpnei r2, 0 + 29fc: 0bf5 bt 0x29e6 // 29e6 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 29fe: 934a ld.w r2, (r3, 0x28) + 2a00: 3110 movi r1, 16 + 2a02: 6884 and r2, r1 + 2a04: 3a40 cmpnei r2, 0 + 2a06: 0bf0 bt 0x29e6 // 29e6 + 2a08: 07e8 br 0x29d8 // 29d8 + 2a0a: 0000 bkpt + 2a0c: 20000018 .long 0x20000018 + 2a10: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00002a14 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 2a14: 1460 nie + 2a16: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2a18: 106d lrw r3, 0x20000040 // 2a4c + 2a1a: 3102 movi r1, 2 + 2a1c: 9360 ld.w r3, (r3, 0x0) + 2a1e: 9343 ld.w r2, (r3, 0xc) + 2a20: 6884 and r2, r1 + 2a22: 3a40 cmpnei r2, 0 + 2a24: 0c03 bf 0x2a2a // 2a2a + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 2a26: b323 st.w r1, (r3, 0xc) + } +} + 2a28: 0410 br 0x2a48 // 2a48 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2a2a: 9343 ld.w r2, (r3, 0xc) + 2a2c: 3101 movi r1, 1 + 2a2e: 6884 and r2, r1 + 2a30: 3a40 cmpnei r2, 0 + 2a32: 0bfa bt 0x2a26 // 2a26 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2a34: 9343 ld.w r2, (r3, 0xc) + 2a36: 3108 movi r1, 8 + 2a38: 6884 and r2, r1 + 2a3a: 3a40 cmpnei r2, 0 + 2a3c: 0bf5 bt 0x2a26 // 2a26 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2a3e: 9343 ld.w r2, (r3, 0xc) + 2a40: 3104 movi r1, 4 + 2a42: 6884 and r2, r1 + 2a44: 3a40 cmpnei r2, 0 + 2a46: 0bf0 bt 0x2a26 // 2a26 +} + 2a48: 1463 ipop + 2a4a: 1461 nir + 2a4c: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00002a50 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 2a50: 1460 nie + 2a52: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2a54: 106d lrw r3, 0x2000003c // 2a88 + 2a56: 3102 movi r1, 2 + 2a58: 9360 ld.w r3, (r3, 0x0) + 2a5a: 9343 ld.w r2, (r3, 0xc) + 2a5c: 6884 and r2, r1 + 2a5e: 3a40 cmpnei r2, 0 + 2a60: 0c03 bf 0x2a66 // 2a66 + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + 2a62: b323 st.w r1, (r3, 0xc) + } +} + 2a64: 0410 br 0x2a84 // 2a84 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2a66: 9343 ld.w r2, (r3, 0xc) + 2a68: 3101 movi r1, 1 + 2a6a: 6884 and r2, r1 + 2a6c: 3a40 cmpnei r2, 0 + 2a6e: 0bfa bt 0x2a62 // 2a62 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2a70: 9343 ld.w r2, (r3, 0xc) + 2a72: 3108 movi r1, 8 + 2a74: 6884 and r2, r1 + 2a76: 3a40 cmpnei r2, 0 + 2a78: 0bf5 bt 0x2a62 // 2a62 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2a7a: 9343 ld.w r2, (r3, 0xc) + 2a7c: 3104 movi r1, 4 + 2a7e: 6884 and r2, r1 + 2a80: 3a40 cmpnei r2, 0 + 2a82: 0bf0 bt 0x2a62 // 2a62 +} + 2a84: 1463 ipop + 2a86: 1461 nir + 2a88: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00002a8c : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 2a8c: 1460 nie + 2a8e: 1462 ipush + 2a90: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2a92: 107f lrw r3, 0x20000038 // 2b0c + 2a94: 3102 movi r1, 2 + 2a96: 9360 ld.w r3, (r3, 0x0) + 2a98: 9343 ld.w r2, (r3, 0xc) + 2a9a: 6884 and r2, r1 + 2a9c: 3a40 cmpnei r2, 0 + 2a9e: 0c0b bf 0x2ab4 // 2ab4 + { + UART2->ISR=UART_RX_INT_S; + 2aa0: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 2aa2: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 2aa4: 7400 zextb r0, r0 + 2aa6: e00002c5 bsr 0x3030 // 3030 + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 2aaa: d9ee2000 ld.w r15, (r14, 0x0) + 2aae: 1401 addi r14, r14, 4 + 2ab0: 1463 ipop + 2ab2: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2ab4: 9323 ld.w r1, (r3, 0xc) + 2ab6: 3201 movi r2, 1 + 2ab8: 6848 and r1, r2 + 2aba: 3940 cmpnei r1, 0 + 2abc: 0c0d bf 0x2ad6 // 2ad6 + UART2->ISR=UART_TX_INT_S; + 2abe: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 2ac0: 1074 lrw r3, 0x200000b4 // 2b10 + 2ac2: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2ac4: 1074 lrw r3, 0x200000b8 // 2b14 + 2ac6: 9360 ld.w r3, (r3, 0x0) + 2ac8: 3b41 cmpnei r3, 1 + 2aca: 0bf0 bt 0x2aaa // 2aaa + RS485_Comm_Start ++; + 2acc: 1053 lrw r2, 0x200000bc // 2b18 + RS485_Comm_End ++; + 2ace: 9260 ld.w r3, (r2, 0x0) + 2ad0: 2300 addi r3, 1 + 2ad2: b260 st.w r3, (r2, 0x0) +} + 2ad4: 07eb br 0x2aaa // 2aaa + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2ad6: 9343 ld.w r2, (r3, 0xc) + 2ad8: 3108 movi r1, 8 + 2ada: 6884 and r2, r1 + 2adc: 3a40 cmpnei r2, 0 + 2ade: 0c03 bf 0x2ae4 // 2ae4 + UART2->ISR=UART_TX_IOV_S; + 2ae0: b323 st.w r1, (r3, 0xc) + 2ae2: 07e4 br 0x2aaa // 2aaa + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2ae4: 9343 ld.w r2, (r3, 0xc) + 2ae6: 3104 movi r1, 4 + 2ae8: 6884 and r2, r1 + 2aea: 3a40 cmpnei r2, 0 + 2aec: 0bfa bt 0x2ae0 // 2ae0 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2aee: 3180 movi r1, 128 + 2af0: 9303 ld.w r0, (r3, 0xc) + 2af2: 412c lsli r1, r1, 12 + 2af4: 6804 and r0, r1 + 2af6: 3840 cmpnei r0, 0 + 2af8: 0fd9 bf 0x2aaa // 2aaa + UART2->ISR=UART_TX_DONE_S; + 2afa: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 2afc: 1065 lrw r3, 0x200000b4 // 2b10 + 2afe: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2b00: 1065 lrw r3, 0x200000b8 // 2b14 + 2b02: 9360 ld.w r3, (r3, 0x0) + 2b04: 3b41 cmpnei r3, 1 + 2b06: 0bd2 bt 0x2aaa // 2aaa + RS485_Comm_End ++; + 2b08: 1045 lrw r2, 0x200000c0 // 2b1c + 2b0a: 07e2 br 0x2ace // 2ace + 2b0c: 20000038 .long 0x20000038 + 2b10: 200000b4 .long 0x200000b4 + 2b14: 200000b8 .long 0x200000b8 + 2b18: 200000bc .long 0x200000bc + 2b1c: 200000c0 .long 0x200000c0 + +Disassembly of section .text.SPI0IntHandler: + +00002b20 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 2b20: 1460 nie + 2b22: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 2b24: 1178 lrw r3, 0x20000034 // 2c04 + 2b26: 3101 movi r1, 1 + 2b28: 9360 ld.w r3, (r3, 0x0) + 2b2a: 9347 ld.w r2, (r3, 0x1c) + 2b2c: 6884 and r2, r1 + 2b2e: 3a40 cmpnei r2, 0 + 2b30: 0c03 bf 0x2b36 // 2b36 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 2b32: b328 st.w r1, (r3, 0x20) + } + +} + 2b34: 0407 br 0x2b42 // 2b42 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 2b36: 9347 ld.w r2, (r3, 0x1c) + 2b38: 3002 movi r0, 2 + 2b3a: 6880 and r2, r0 + 2b3c: 3a40 cmpnei r2, 0 + 2b3e: 0c04 bf 0x2b46 // 2b46 + SPI0->ICR = SPI_RTIM; + 2b40: b308 st.w r0, (r3, 0x20) +} + 2b42: 1463 ipop + 2b44: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 2b46: 9347 ld.w r2, (r3, 0x1c) + 2b48: 3004 movi r0, 4 + 2b4a: 6880 and r2, r0 + 2b4c: 3a40 cmpnei r2, 0 + 2b4e: 0c55 bf 0x2bf8 // 2bf8 + SPI0->ICR = SPI_RXIM; + 2b50: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 2b52: 9302 ld.w r0, (r3, 0x8) + 2b54: 32aa movi r2, 170 + 2b56: 6482 cmpne r0, r2 + 2b58: 083e bt 0x2bd4 // 2bd4 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2b5a: 3102 movi r1, 2 + 2b5c: 9343 ld.w r2, (r3, 0xc) + 2b5e: 6884 and r2, r1 + 2b60: 3a40 cmpnei r2, 0 + 2b62: 0ffd bf 0x2b5c // 2b5c + SPI0->DR = 0x11; + 2b64: 3211 movi r2, 17 + 2b66: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2b68: 3110 movi r1, 16 + 2b6a: 9343 ld.w r2, (r3, 0xc) + 2b6c: 6884 and r2, r1 + 2b6e: 3a40 cmpnei r2, 0 + 2b70: 0bfd bt 0x2b6a // 2b6a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2b72: 3102 movi r1, 2 + 2b74: 9343 ld.w r2, (r3, 0xc) + 2b76: 6884 and r2, r1 + 2b78: 3a40 cmpnei r2, 0 + 2b7a: 0ffd bf 0x2b74 // 2b74 + SPI0->DR = 0x12; + 2b7c: 3212 movi r2, 18 + 2b7e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2b80: 3110 movi r1, 16 + 2b82: 9343 ld.w r2, (r3, 0xc) + 2b84: 6884 and r2, r1 + 2b86: 3a40 cmpnei r2, 0 + 2b88: 0bfd bt 0x2b82 // 2b82 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2b8a: 3102 movi r1, 2 + 2b8c: 9343 ld.w r2, (r3, 0xc) + 2b8e: 6884 and r2, r1 + 2b90: 3a40 cmpnei r2, 0 + 2b92: 0ffd bf 0x2b8c // 2b8c + SPI0->DR = 0x13; + 2b94: 3213 movi r2, 19 + 2b96: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2b98: 3110 movi r1, 16 + 2b9a: 9343 ld.w r2, (r3, 0xc) + 2b9c: 6884 and r2, r1 + 2b9e: 3a40 cmpnei r2, 0 + 2ba0: 0bfd bt 0x2b9a // 2b9a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2ba2: 3102 movi r1, 2 + 2ba4: 9343 ld.w r2, (r3, 0xc) + 2ba6: 6884 and r2, r1 + 2ba8: 3a40 cmpnei r2, 0 + 2baa: 0ffd bf 0x2ba4 // 2ba4 + SPI0->DR = 0x14; + 2bac: 3214 movi r2, 20 + 2bae: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bb0: 3110 movi r1, 16 + 2bb2: 9343 ld.w r2, (r3, 0xc) + 2bb4: 6884 and r2, r1 + 2bb6: 3a40 cmpnei r2, 0 + 2bb8: 0bfd bt 0x2bb2 // 2bb2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2bba: 3102 movi r1, 2 + 2bbc: 9343 ld.w r2, (r3, 0xc) + 2bbe: 6884 and r2, r1 + 2bc0: 3a40 cmpnei r2, 0 + 2bc2: 0ffd bf 0x2bbc // 2bbc + SPI0->DR = 0x15; + 2bc4: 3215 movi r2, 21 + 2bc6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bc8: 3110 movi r1, 16 + 2bca: 9343 ld.w r2, (r3, 0xc) + 2bcc: 6884 and r2, r1 + 2bce: 3a40 cmpnei r2, 0 + 2bd0: 0bfd bt 0x2bca // 2bca + 2bd2: 07b8 br 0x2b42 // 2b42 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 2bd4: 9343 ld.w r2, (r3, 0xc) + 2bd6: 6884 and r2, r1 + 2bd8: 3a40 cmpnei r2, 0 + 2bda: 0bb4 bt 0x2b42 // 2b42 + SPI0->DR=0x0; //FIFO=0 + 2bdc: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bde: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 2be0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2be2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2be4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2be6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2be8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2bea: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2bec: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bee: 9343 ld.w r2, (r3, 0xc) + 2bf0: 6884 and r2, r1 + 2bf2: 3a40 cmpnei r2, 0 + 2bf4: 0bfd bt 0x2bee // 2bee + 2bf6: 07a6 br 0x2b42 // 2b42 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 2bf8: 9347 ld.w r2, (r3, 0x1c) + 2bfa: 3108 movi r1, 8 + 2bfc: 6884 and r2, r1 + 2bfe: 3a40 cmpnei r2, 0 + 2c00: 0b99 bt 0x2b32 // 2b32 + 2c02: 07a0 br 0x2b42 // 2b42 + 2c04: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00002c08 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 2c08: 1460 nie + 2c0a: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 2c0c: 1073 lrw r3, 0x2000002c // 2c58 + 2c0e: 3104 movi r1, 4 + 2c10: 9360 ld.w r3, (r3, 0x0) + 2c12: 9349 ld.w r2, (r3, 0x24) + 2c14: 6884 and r2, r1 + 2c16: 3a40 cmpnei r2, 0 + 2c18: 0c02 bf 0x2c1c // 2c1c + { + SIO0->ICR=0X04; + 2c1a: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 2c1c: 9349 ld.w r2, (r3, 0x24) + 2c1e: 3101 movi r1, 1 + 2c20: 6884 and r2, r1 + 2c22: 3a40 cmpnei r2, 0 + 2c24: 0c02 bf 0x2c28 // 2c28 + { + SIO0->ICR=0X01; + 2c26: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 2c28: 9349 ld.w r2, (r3, 0x24) + 2c2a: 3102 movi r1, 2 + 2c2c: 6884 and r2, r1 + 2c2e: 3a40 cmpnei r2, 0 + 2c30: 0c03 bf 0x2c36 // 2c36 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 2c32: b32b st.w r1, (r3, 0x2c) + } +} + 2c34: 0410 br 0x2c54 // 2c54 + else if(SIO0->MISR&0X08) //RXBUFFULL + 2c36: 9349 ld.w r2, (r3, 0x24) + 2c38: 3108 movi r1, 8 + 2c3a: 6884 and r2, r1 + 2c3c: 3a40 cmpnei r2, 0 + 2c3e: 0bfa bt 0x2c32 // 2c32 + else if(SIO0->MISR&0X010) //BREAK + 2c40: 9349 ld.w r2, (r3, 0x24) + 2c42: 3110 movi r1, 16 + 2c44: 6884 and r2, r1 + 2c46: 3a40 cmpnei r2, 0 + 2c48: 0bf5 bt 0x2c32 // 2c32 + else if(SIO0->MISR&0X020) //TIMEOUT + 2c4a: 9349 ld.w r2, (r3, 0x24) + 2c4c: 3120 movi r1, 32 + 2c4e: 6884 and r2, r1 + 2c50: 3a40 cmpnei r2, 0 + 2c52: 0bf0 bt 0x2c32 // 2c32 +} + 2c54: 1463 ipop + 2c56: 1461 nir + 2c58: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00002c5c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 2c5c: 1460 nie + 2c5e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 2c60: 106a lrw r3, 0x2000005c // 2c88 + 2c62: 3101 movi r1, 1 + 2c64: 9360 ld.w r3, (r3, 0x0) + 2c66: 237f addi r3, 128 + 2c68: 934c ld.w r2, (r3, 0x30) + 2c6a: 6884 and r2, r1 + 2c6c: 3a40 cmpnei r2, 0 + 2c6e: 0c04 bf 0x2c76 // 2c76 + { + SYSCON->EXICR = EXI_PIN0; + 2c70: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 2c72: 1463 ipop + 2c74: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 2c76: 3280 movi r2, 128 + 2c78: 932c ld.w r1, (r3, 0x30) + 2c7a: 4249 lsli r2, r2, 9 + 2c7c: 6848 and r1, r2 + 2c7e: 3940 cmpnei r1, 0 + 2c80: 0ff9 bf 0x2c72 // 2c72 + SYSCON->EXICR = EXI_PIN16; + 2c82: b34b st.w r2, (r3, 0x2c) +} + 2c84: 07f7 br 0x2c72 // 2c72 + 2c86: 0000 bkpt + 2c88: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00002c8c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 2c8c: 1460 nie + 2c8e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 2c90: 106a lrw r3, 0x2000005c // 2cb8 + 2c92: 3102 movi r1, 2 + 2c94: 9360 ld.w r3, (r3, 0x0) + 2c96: 237f addi r3, 128 + 2c98: 934c ld.w r2, (r3, 0x30) + 2c9a: 6884 and r2, r1 + 2c9c: 3a40 cmpnei r2, 0 + 2c9e: 0c04 bf 0x2ca6 // 2ca6 + { + SYSCON->EXICR = EXI_PIN1; + 2ca0: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 2ca2: 1463 ipop + 2ca4: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 2ca6: 3280 movi r2, 128 + 2ca8: 932c ld.w r1, (r3, 0x30) + 2caa: 424a lsli r2, r2, 10 + 2cac: 6848 and r1, r2 + 2cae: 3940 cmpnei r1, 0 + 2cb0: 0ff9 bf 0x2ca2 // 2ca2 + SYSCON->EXICR = EXI_PIN17; + 2cb2: b34b st.w r2, (r3, 0x2c) +} + 2cb4: 07f7 br 0x2ca2 // 2ca2 + 2cb6: 0000 bkpt + 2cb8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00002cbc : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 2cbc: 1460 nie + 2cbe: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 2cc0: 1070 lrw r3, 0x2000005c // 2d00 + 2cc2: 3104 movi r1, 4 + 2cc4: 9360 ld.w r3, (r3, 0x0) + 2cc6: 237f addi r3, 128 + 2cc8: 934c ld.w r2, (r3, 0x30) + 2cca: 6884 and r2, r1 + 2ccc: 3a40 cmpnei r2, 0 + 2cce: 0c04 bf 0x2cd6 // 2cd6 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 2cd0: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 2cd2: 1463 ipop + 2cd4: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 2cd6: 934c ld.w r2, (r3, 0x30) + 2cd8: 3108 movi r1, 8 + 2cda: 6884 and r2, r1 + 2cdc: 3a40 cmpnei r2, 0 + 2cde: 0bf9 bt 0x2cd0 // 2cd0 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 2ce0: 3280 movi r2, 128 + 2ce2: 932c ld.w r1, (r3, 0x30) + 2ce4: 424b lsli r2, r2, 11 + 2ce6: 6848 and r1, r2 + 2ce8: 3940 cmpnei r1, 0 + 2cea: 0c03 bf 0x2cf0 // 2cf0 + SYSCON->EXICR = EXI_PIN19; + 2cec: b34b st.w r2, (r3, 0x2c) +} + 2cee: 07f2 br 0x2cd2 // 2cd2 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 2cf0: 3280 movi r2, 128 + 2cf2: 932c ld.w r1, (r3, 0x30) + 2cf4: 424c lsli r2, r2, 12 + 2cf6: 6848 and r1, r2 + 2cf8: 3940 cmpnei r1, 0 + 2cfa: 0bf9 bt 0x2cec // 2cec + 2cfc: 07eb br 0x2cd2 // 2cd2 + 2cfe: 0000 bkpt + 2d00: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00002d04 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 2d04: 1460 nie + 2d06: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 2d08: 1075 lrw r3, 0x2000005c // 2d5c + 2d0a: 3280 movi r2, 128 + 2d0c: 9360 ld.w r3, (r3, 0x0) + 2d0e: 60c8 addu r3, r2 + 2d10: 932c ld.w r1, (r3, 0x30) + 2d12: 3010 movi r0, 16 + 2d14: 6840 and r1, r0 + 2d16: 3940 cmpnei r1, 0 + 2d18: 0c04 bf 0x2d20 // 2d20 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 2d1a: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 2d1c: 1463 ipop + 2d1e: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 2d20: 932c ld.w r1, (r3, 0x30) + 2d22: 3020 movi r0, 32 + 2d24: 6840 and r1, r0 + 2d26: 3940 cmpnei r1, 0 + 2d28: 0bf9 bt 0x2d1a // 2d1a + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 2d2a: 932c ld.w r1, (r3, 0x30) + 2d2c: 3040 movi r0, 64 + 2d2e: 6840 and r1, r0 + 2d30: 3940 cmpnei r1, 0 + 2d32: 0bf4 bt 0x2d1a // 2d1a + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 2d34: 932c ld.w r1, (r3, 0x30) + 2d36: 6848 and r1, r2 + 2d38: 3940 cmpnei r1, 0 + 2d3a: 0c03 bf 0x2d40 // 2d40 + SYSCON->EXICR = EXI_PIN9; + 2d3c: b34b st.w r2, (r3, 0x2c) +} + 2d3e: 07ef br 0x2d1c // 2d1c + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 2d40: 3280 movi r2, 128 + 2d42: 932c ld.w r1, (r3, 0x30) + 2d44: 4241 lsli r2, r2, 1 + 2d46: 6848 and r1, r2 + 2d48: 3940 cmpnei r1, 0 + 2d4a: 0bf9 bt 0x2d3c // 2d3c + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 2d4c: 3280 movi r2, 128 + 2d4e: 932c ld.w r1, (r3, 0x30) + 2d50: 4242 lsli r2, r2, 2 + 2d52: 6848 and r1, r2 + 2d54: 3940 cmpnei r1, 0 + 2d56: 0bf3 bt 0x2d3c // 2d3c + 2d58: 07e2 br 0x2d1c // 2d1c + 2d5a: 0000 bkpt + 2d5c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00002d60 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 2d60: 1460 nie + 2d62: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 2d64: 1076 lrw r3, 0x2000005c // 2dbc + 2d66: 3280 movi r2, 128 + 2d68: 9360 ld.w r3, (r3, 0x0) + 2d6a: 237f addi r3, 128 + 2d6c: 932c ld.w r1, (r3, 0x30) + 2d6e: 4243 lsli r2, r2, 3 + 2d70: 6848 and r1, r2 + 2d72: 3940 cmpnei r1, 0 + 2d74: 0c03 bf 0x2d7a // 2d7a + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 2d76: b34b st.w r2, (r3, 0x2c) + } +} + 2d78: 041f br 0x2db6 // 2db6 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 2d7a: 3280 movi r2, 128 + 2d7c: 932c ld.w r1, (r3, 0x30) + 2d7e: 4244 lsli r2, r2, 4 + 2d80: 6848 and r1, r2 + 2d82: 3940 cmpnei r1, 0 + 2d84: 0bf9 bt 0x2d76 // 2d76 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 2d86: 3280 movi r2, 128 + 2d88: 932c ld.w r1, (r3, 0x30) + 2d8a: 4245 lsli r2, r2, 5 + 2d8c: 6848 and r1, r2 + 2d8e: 3940 cmpnei r1, 0 + 2d90: 0bf3 bt 0x2d76 // 2d76 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 2d92: 3280 movi r2, 128 + 2d94: 932c ld.w r1, (r3, 0x30) + 2d96: 4246 lsli r2, r2, 6 + 2d98: 6848 and r1, r2 + 2d9a: 3940 cmpnei r1, 0 + 2d9c: 0bed bt 0x2d76 // 2d76 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 2d9e: 3280 movi r2, 128 + 2da0: 932c ld.w r1, (r3, 0x30) + 2da2: 4247 lsli r2, r2, 7 + 2da4: 6848 and r1, r2 + 2da6: 3940 cmpnei r1, 0 + 2da8: 0be7 bt 0x2d76 // 2d76 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 2daa: 3280 movi r2, 128 + 2dac: 932c ld.w r1, (r3, 0x30) + 2dae: 4248 lsli r2, r2, 8 + 2db0: 6848 and r1, r2 + 2db2: 3940 cmpnei r1, 0 + 2db4: 0be1 bt 0x2d76 // 2d76 +} + 2db6: 1463 ipop + 2db8: 1461 nir + 2dba: 0000 bkpt + 2dbc: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00002dc0 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 2dc0: 1460 nie + 2dc2: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 2dc4: 106b lrw r3, 0x20000014 // 2df0 + 2dc6: 3101 movi r1, 1 + 2dc8: 9360 ld.w r3, (r3, 0x0) + 2dca: 934e ld.w r2, (r3, 0x38) + 2dcc: 6884 and r2, r1 + 2dce: 3a40 cmpnei r2, 0 + 2dd0: 0c03 bf 0x2dd6 // 2dd6 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 2dd2: b330 st.w r1, (r3, 0x40) + } +} + 2dd4: 040b br 0x2dea // 2dea + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 2dd6: 934e ld.w r2, (r3, 0x38) + 2dd8: 3102 movi r1, 2 + 2dda: 6884 and r2, r1 + 2ddc: 3a40 cmpnei r2, 0 + 2dde: 0bfa bt 0x2dd2 // 2dd2 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 2de0: 934e ld.w r2, (r3, 0x38) + 2de2: 3104 movi r1, 4 + 2de4: 6884 and r2, r1 + 2de6: 3a40 cmpnei r2, 0 + 2de8: 0bf5 bt 0x2dd2 // 2dd2 +} + 2dea: 1463 ipop + 2dec: 1461 nir + 2dee: 0000 bkpt + 2df0: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00002df4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 2df4: 1460 nie + 2df6: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 2df8: 1071 lrw r3, 0x2000000c // 2e3c + 2dfa: 3101 movi r1, 1 + 2dfc: 9360 ld.w r3, (r3, 0x0) + 2dfe: 934c ld.w r2, (r3, 0x30) + 2e00: 6884 and r2, r1 + 2e02: 3a40 cmpnei r2, 0 + 2e04: 0c0a bf 0x2e18 // 2e18 + { + BT0->ICR = BT_PEND; + 2e06: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 2e08: 9341 ld.w r2, (r3, 0x4) + 2e0a: 3a86 bclri r2, 6 + 2e0c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 2e0e: 9340 ld.w r2, (r3, 0x0) + 2e10: 3200 movi r2, 0 + 2e12: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 2e14: 1463 ipop + 2e16: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 2e18: 934c ld.w r2, (r3, 0x30) + 2e1a: 3102 movi r1, 2 + 2e1c: 6884 and r2, r1 + 2e1e: 3a40 cmpnei r2, 0 + 2e20: 0c03 bf 0x2e26 // 2e26 + BT0->ICR = BT_EVTRG; + 2e22: b32d st.w r1, (r3, 0x34) +} + 2e24: 07f8 br 0x2e14 // 2e14 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 2e26: 934c ld.w r2, (r3, 0x30) + 2e28: 3104 movi r1, 4 + 2e2a: 6884 and r2, r1 + 2e2c: 3a40 cmpnei r2, 0 + 2e2e: 0bfa bt 0x2e22 // 2e22 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 2e30: 934c ld.w r2, (r3, 0x30) + 2e32: 3108 movi r1, 8 + 2e34: 6884 and r2, r1 + 2e36: 3a40 cmpnei r2, 0 + 2e38: 0bf5 bt 0x2e22 // 2e22 + 2e3a: 07ed br 0x2e14 // 2e14 + 2e3c: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00002e40 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 2e40: 1460 nie + 2e42: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 2e44: 1076 lrw r3, 0x20000008 // 2e9c + 2e46: 3101 movi r1, 1 + 2e48: 9360 ld.w r3, (r3, 0x0) + 2e4a: 934c ld.w r2, (r3, 0x30) + 2e4c: 6884 and r2, r1 + 2e4e: 3a40 cmpnei r2, 0 + 2e50: 0c03 bf 0x2e56 // 2e56 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 2e52: b32d st.w r1, (r3, 0x34) + } +} + 2e54: 0416 br 0x2e80 // 2e80 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 2e56: 934c ld.w r2, (r3, 0x30) + 2e58: 3102 movi r1, 2 + 2e5a: 6884 and r2, r1 + 2e5c: 3a40 cmpnei r2, 0 + 2e5e: 0c13 bf 0x2e84 // 2e84 + BT1->ICR = BT_CMP; + 2e60: b32d st.w r1, (r3, 0x34) + NUM++; + 2e62: 1070 lrw r3, 0x200000a8 // 2ea0 + 2e64: 8340 ld.b r2, (r3, 0x0) + 2e66: 2200 addi r2, 1 + 2e68: 7488 zextb r2, r2 + SysTick_100us++; + 2e6a: 9321 ld.w r1, (r3, 0x4) + 2e6c: 2100 addi r1, 1 + if(NUM >= 10){ + 2e6e: 3a09 cmphsi r2, 10 + NUM++; + 2e70: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 2e72: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 2e74: 0c06 bf 0x2e80 // 2e80 + NUM = 0; + 2e76: 3200 movi r2, 0 + 2e78: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 2e7a: 9342 ld.w r2, (r3, 0x8) + 2e7c: 2200 addi r2, 1 + 2e7e: b342 st.w r2, (r3, 0x8) +} + 2e80: 1463 ipop + 2e82: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 2e84: 934c ld.w r2, (r3, 0x30) + 2e86: 3104 movi r1, 4 + 2e88: 6884 and r2, r1 + 2e8a: 3a40 cmpnei r2, 0 + 2e8c: 0be3 bt 0x2e52 // 2e52 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 2e8e: 934c ld.w r2, (r3, 0x30) + 2e90: 3108 movi r1, 8 + 2e92: 6884 and r2, r1 + 2e94: 3a40 cmpnei r2, 0 + 2e96: 0bde bt 0x2e52 // 2e52 + 2e98: 07f4 br 0x2e80 // 2e80 + 2e9a: 0000 bkpt + 2e9c: 20000008 .long 0x20000008 + 2ea0: 200000a8 .long 0x200000a8 + +Disassembly of section .text.PriviledgeVioHandler: + +00002ea4 : + 2ea4: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00002ea6 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 2ea6: 1460 nie + 2ea8: 1462 ipush + // ISR content ... + +} + 2eaa: 1463 ipop + 2eac: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00002eae : + 2eae: 1460 nie + 2eb0: 1462 ipush + 2eb2: 1463 ipop + 2eb4: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00002eb6 : + 2eb6: 1460 nie + 2eb8: 1462 ipush + 2eba: 1463 ipop + 2ebc: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00002ebe : + 2ebe: 1460 nie + 2ec0: 1462 ipush + 2ec2: 1463 ipop + 2ec4: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00002ec6 : + 2ec6: 1460 nie + 2ec8: 1462 ipush + 2eca: 1463 ipop + 2ecc: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00002ece : + 2ece: 1460 nie + 2ed0: 1462 ipush + 2ed2: 1463 ipop + 2ed4: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00002ed6 : + 2ed6: 1460 nie + 2ed8: 1462 ipush + 2eda: 1463 ipop + 2edc: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00002ede : + 2ede: 1460 nie + 2ee0: 1462 ipush + 2ee2: 1463 ipop + 2ee4: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00002ee6 : + 2ee6: 1460 nie + 2ee8: 1462 ipush + 2eea: 1463 ipop + 2eec: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00002eee : + 2eee: 1460 nie + 2ef0: 1462 ipush + 2ef2: 1463 ipop + 2ef4: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00002ef6 : + 2ef6: 1460 nie + 2ef8: 1462 ipush + 2efa: 1463 ipop + 2efc: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00002efe : + 2efe: 1460 nie + 2f00: 1462 ipush + 2f02: 1463 ipop + 2f04: 1461 nir + +Disassembly of section .text.__divsi3: + +00002f08 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 2f08: 14c1 push r4 + int PSR; + __asm volatile( + 2f0a: c0006023 mfcr r3, cr<0, 0> + 2f0e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 2f12: 1046 lrw r2, 0x20000000 // 2f28 <__divsi3+0x20> + 2f14: 3400 movi r4, 0 + 2f16: 9240 ld.w r2, (r2, 0x0) + 2f18: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 2f1a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 2f1c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 2f1e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 2f20: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 2f24: 9202 ld.w r0, (r2, 0x8) +} + 2f26: 1481 pop r4 + 2f28: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00002f2c <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 2f2c: 14c1 push r4 + int PSR; + __asm volatile( + 2f2e: c0006023 mfcr r3, cr<0, 0> + 2f32: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 2f36: 1046 lrw r2, 0x20000000 // 2f4c <__udivsi3+0x20> + 2f38: 3401 movi r4, 1 + 2f3a: 9240 ld.w r2, (r2, 0x0) + 2f3c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 2f3e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 2f40: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 2f42: b221 st.w r1, (r2, 0x4) + __asm volatile( + 2f44: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 2f48: 9202 ld.w r0, (r2, 0x8) +} + 2f4a: 1481 pop r4 + 2f4c: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00002f50 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 2f50: c1807420 psrset ee, ie +} + 2f54: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00002f58 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 2f58: 14d1 push r4, r15 + switch(uart_id){ + 2f5a: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 2f5c: 6d07 mov r4, r1 + switch(uart_id){ + 2f5e: 0c1a bf 0x2f92 // 2f92 + 2f60: 3840 cmpnei r0, 0 + 2f62: 0c04 bf 0x2f6a // 2f6a + 2f64: 3842 cmpnei r0, 2 + 2f66: 0c2a bf 0x2fba // 2fba + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 2f68: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 2f6a: e3fff911 bsr 0x218c // 218c + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 2f6e: 118a lrw r4, 0x20000040 // 3014 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 2f70: 3100 movi r1, 0 + 2f72: 3000 movi r0, 0 + 2f74: e3fff94c bsr 0x220c // 220c + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 2f78: 9400 ld.w r0, (r4, 0x0) + 2f7a: 3200 movi r2, 0 + 2f7c: 1127 lrw r1, 0x2710 // 3018 + 2f7e: e3fff9bd bsr 0x22f8 // 22f8 + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 2f82: 9400 ld.w r0, (r4, 0x0) + 2f84: 3200 movi r2, 0 + 2f86: 1125 lrw r1, 0x2710 // 3018 + 2f88: e3fff9c0 bsr 0x2308 // 2308 + UART0_Int_Enable(); + 2f8c: e3fff924 bsr 0x21d4 // 21d4 + break; + 2f90: 07ec br 0x2f68 // 2f68 + UART1_DeInit(); //clear all UART Register + 2f92: e3fff909 bsr 0x21a4 // 21a4 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 2f96: 3102 movi r1, 2 + 2f98: 3001 movi r0, 1 + 2f9a: e3fff939 bsr 0x220c // 220c + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 2f9e: 1180 lrw r4, 0x2000003c // 301c + 2fa0: 31d0 movi r1, 208 + 2fa2: 9400 ld.w r0, (r4, 0x0) + 2fa4: 3200 movi r2, 0 + 2fa6: 4121 lsli r1, r1, 1 + 2fa8: e3fff9a8 bsr 0x22f8 // 22f8 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 2fac: 31d0 movi r1, 208 + 2fae: 9400 ld.w r0, (r4, 0x0) + 2fb0: 3200 movi r2, 0 + 2fb2: 4121 lsli r1, r1, 1 + 2fb4: e3fff9aa bsr 0x2308 // 2308 + break; + 2fb8: 07d8 br 0x2f68 // 2f68 + UART2_DeInit(); //clear all UART Register + 2fba: e3fff901 bsr 0x21bc // 21bc + UART_IO_Init(IO_UART2,0); //use PA0.13->RXD1, PB0.0->TXD1 + 2fbe: 3100 movi r1, 0 + 2fc0: 3002 movi r0, 2 + 2fc2: e3fff925 bsr 0x220c // 220c + UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 2fc6: 1077 lrw r3, 0x20000038 // 3020 + 2fc8: 31d0 movi r1, 208 + 2fca: 9300 ld.w r0, (r3, 0x0) + 2fcc: 3200 movi r2, 0 + 2fce: 4121 lsli r1, r1, 1 + 2fd0: e3fff99c bsr 0x2308 // 2308 + UART2_Int_Enable(); + 2fd4: e3fff90e bsr 0x21f0 // 21f0 + memset(&g_uart,0,sizeof(UART_t)); + 2fd8: 3273 movi r2, 115 + 2fda: 3100 movi r1, 0 + 2fdc: 1012 lrw r0, 0x20000190 // 3024 + 2fde: e3fff4c3 bsr 0x1964 // 1964 <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 2fe2: 1072 lrw r3, 0x200001f7 // 3028 + 2fe4: 3203 movi r2, 3 + 2fe6: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 2fe8: 4c48 lsri r2, r4, 8 + 2fea: a388 st.b r4, (r3, 0x8) + 2fec: a349 st.b r2, (r3, 0x9) + 2fee: 4c50 lsri r2, r4, 16 + 2ff0: 4c98 lsri r4, r4, 24 + 2ff2: a38b st.b r4, (r3, 0xb) + 2ff4: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 2ff6: 3103 movi r1, 3 + 2ff8: 108d lrw r4, 0x20000048 // 302c + 2ffa: 3200 movi r2, 0 + 2ffc: 9400 ld.w r0, (r4, 0x0) + 2ffe: e3fff6c5 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOB0,3); + 3002: 9400 ld.w r0, (r4, 0x0) + 3004: 3103 movi r1, 3 + 3006: e3fff73b bsr 0x1e7c // 1e7c + GPIO_Write_Low(GPIOB0,3); + 300a: 9400 ld.w r0, (r4, 0x0) + 300c: 3103 movi r1, 3 + 300e: e3fff742 bsr 0x1e92 // 1e92 +} + 3012: 07ab br 0x2f68 // 2f68 + 3014: 20000040 .long 0x20000040 + 3018: 00002710 .long 0x00002710 + 301c: 2000003c .long 0x2000003c + 3020: 20000038 .long 0x20000038 + 3024: 20000190 .long 0x20000190 + 3028: 200001f7 .long 0x200001f7 + 302c: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003030 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3030: 14c2 push r4-r5 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 3032: 1075 lrw r3, 0x200001f0 // 3084 + 3034: 8346 ld.b r2, (r3, 0x6) + 3036: 8325 ld.b r1, (r3, 0x5) + 3038: 4248 lsli r2, r2, 8 + 303a: 6c84 or r2, r1 + 303c: 3162 movi r1, 98 + 303e: 10b3 lrw r5, 0x20000190 // 3088 + 3040: 3440 movi r4, 64 + 3042: 6485 cmplt r1, r2 + 3044: 6114 addu r4, r5 + 3046: 0c06 bf 0x3052 // 3052 + 3048: 3225 movi r2, 37 + 304a: 6090 addu r2, r4 + 304c: 3100 movi r1, 0 + 304e: a220 st.b r1, (r2, 0x0) + 3050: a221 st.b r1, (r2, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 3052: 8346 ld.b r2, (r3, 0x6) + 3054: 8325 ld.b r1, (r3, 0x5) + 3056: 4248 lsli r2, r2, 8 + 3058: 6c84 or r2, r1 + 305a: 5a22 addi r1, r2, 1 + 305c: 6094 addu r2, r5 + 305e: a200 st.b r0, (r2, 0x0) + 3060: 2424 addi r4, 37 + 3062: 7445 zexth r1, r1 + + g_uart.RecvIdleTiming = SysTick_1ms; + 3064: 104a lrw r2, 0x200000b0 // 308c + 3066: 9240 ld.w r2, (r2, 0x0) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 3068: a420 st.b r1, (r4, 0x0) + 306a: 4928 lsri r1, r1, 8 + g_uart.RecvIdleTiming = SysTick_1ms; + 306c: 4a08 lsri r0, r2, 8 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 306e: a421 st.b r1, (r4, 0x1) + g_uart.RecvIdleTiming = SysTick_1ms; + 3070: 1028 lrw r1, 0x200001fb // 3090 + 3072: a140 st.b r2, (r1, 0x0) + 3074: a101 st.b r0, (r1, 0x1) + 3076: 4a10 lsri r0, r2, 16 + 3078: 4a58 lsri r2, r2, 24 + 307a: a143 st.b r2, (r1, 0x3) + g_uart.Receiving = 0x01; + 307c: 3201 movi r2, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 307e: a102 st.b r0, (r1, 0x2) + g_uart.Receiving = 0x01; + 3080: a344 st.b r2, (r3, 0x4) +} + 3082: 1482 pop r4-r5 + 3084: 200001f0 .long 0x200001f0 + 3088: 20000190 .long 0x20000190 + 308c: 200000b0 .long 0x200000b0 + 3090: 200001fb .long 0x200001fb + +Disassembly of section .text.Dbg_Println: + +00003094 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3094: 1423 subi r14, r14, 12 + 3096: b862 st.w r3, (r14, 0x8) + 3098: b841 st.w r2, (r14, 0x4) + 309a: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 309c: 1403 addi r14, r14, 12 + 309e: 783c jmp r15 + +Disassembly of section .text.RC522_Delay: + +000030a0 : + * @brief 延时函数,纳秒级 + * @param ns 延时时间 + */ +void RC522_Delay(U32_T ns){ + U32_T i; + for (i = 0; i < ns; i++) { + 30a0: 3300 movi r3, 0 + 30a2: 640e cmpne r3, r0 + 30a4: 0802 bt 0x30a8 // 30a8 + nop; + //延时一个机器周期 + nop; + nop; + } +} + 30a6: 783c jmp r15 + nop; + 30a8: 6c03 mov r0, r0 + nop; + 30aa: 6c03 mov r0, r0 + nop; + 30ac: 6c03 mov r0, r0 + for (i = 0; i < ns; i++) { + 30ae: 2300 addi r3, 1 + 30b0: 07f9 br 0x30a2 // 30a2 + +Disassembly of section .text.RC522_ReadWriteOneByte: + +000030b4 : + * @brief 移植接口——SPI读写一个字节 + * @param tx_data:要写入的数据 + * @return 读取的数据 + */ +U8_T RC522_ReadWriteOneByte(U8_T tx_data) +{ + 30b4: 14d4 push r4-r7, r15 + 30b6: 6d83 mov r6, r0 + 30b8: 3508 movi r5, 8 +// delay_nus(1); +// rx_data = SPI0->DR; +// +// return (U8_T)(rx_data & 0xFF); + + U8_T rx_data=0; + 30ba: 3400 movi r4, 0 + U8_T i; + for(i=0;i<8;i++) + { + RC522_SCK_LOW; + 30bc: 10f2 lrw r7, 0x2000004c // 3104 + 30be: 3109 movi r1, 9 + 30c0: 9700 ld.w r0, (r7, 0x0) + 30c2: e3fff6e8 bsr 0x1e92 // 1e92 + if(tx_data&0x80) RC522_MOSI_HIGH; + 30c6: 74da sextb r3, r6 + 30c8: 3bdf btsti r3, 31 + 30ca: 310a movi r1, 10 + 30cc: 9700 ld.w r0, (r7, 0x0) + 30ce: 0c18 bf 0x30fe // 30fe + 30d0: e3fff6dd bsr 0x1e8a // 1e8a + else RC522_MOSI_LOW; + tx_data<<=1; + RC522_SCK_HIGH; + 30d4: 3109 movi r1, 9 + 30d6: 9700 ld.w r0, (r7, 0x0) + 30d8: e3fff6d9 bsr 0x1e8a // 1e8a + rx_data<<=1; + if(RC522_MISO_Read) rx_data|=0x01; + 30dc: 310b movi r1, 11 + 30de: 9700 ld.w r0, (r7, 0x0) + 30e0: e3fff6e8 bsr 0x1eb0 // 1eb0 + tx_data<<=1; + 30e4: 46c1 lsli r6, r6, 1 + rx_data<<=1; + 30e6: 4481 lsli r4, r4, 1 + if(RC522_MISO_Read) rx_data|=0x01; + 30e8: 3840 cmpnei r0, 0 + tx_data<<=1; + 30ea: 7598 zextb r6, r6 + rx_data<<=1; + 30ec: 7510 zextb r4, r4 + if(RC522_MISO_Read) rx_data|=0x01; + 30ee: 0c02 bf 0x30f2 // 30f2 + 30f0: 3ca0 bseti r4, 0 + 30f2: 2d00 subi r5, 1 + 30f4: 7554 zextb r5, r5 + for(i=0;i<8;i++) + 30f6: 3d40 cmpnei r5, 0 + 30f8: 0be3 bt 0x30be // 30be + } + return rx_data; +} + 30fa: 6c13 mov r0, r4 + 30fc: 1494 pop r4-r7, r15 + else RC522_MOSI_LOW; + 30fe: e3fff6ca bsr 0x1e92 // 1e92 + 3102: 07e9 br 0x30d4 // 30d4 + 3104: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_ReadRawRC: + +00003108 : +{ + 3108: 14d2 push r4-r5, r15 + RC522_CS_LOW; //片选选中RC522 + 310a: 10ad lrw r5, 0x20000048 // 313c + 310c: 3105 movi r1, 5 +{ + 310e: 6d03 mov r4, r0 + RC522_CS_LOW; //片选选中RC522 + 3110: 9500 ld.w r0, (r5, 0x0) + 3112: e3fff6c0 bsr 0x1e92 // 1e92 + ucAddr=((Address<<1)&0x7E)|0x80; + 3116: 4401 lsli r0, r4, 1 + 3118: 347e movi r4, 126 + 311a: 6810 and r0, r4 + 311c: 3400 movi r4, 0 + 311e: 2c7f subi r4, 128 + 3120: 6c10 or r0, r4 + RC522_ReadWriteOneByte(ucAddr); //发送命令 + 3122: 7400 zextb r0, r0 + 3124: e3ffffc8 bsr 0x30b4 // 30b4 + ucResult=RC522_ReadWriteOneByte(0); //读取RC522返回的数据 + 3128: 3000 movi r0, 0 + 312a: e3ffffc5 bsr 0x30b4 // 30b4 + 312e: 6d03 mov r4, r0 + RC522_CS_HIGH; //释放片选线(PF0) + 3130: 3105 movi r1, 5 + 3132: 9500 ld.w r0, (r5, 0x0) + 3134: e3fff6ab bsr 0x1e8a // 1e8a +} + 3138: 6c13 mov r0, r4 + 313a: 1492 pop r4-r5, r15 + 313c: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_WriteRawRC: + +00003140 : +{ + 3140: 14d3 push r4-r6, r15 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 3142: 10ab lrw r5, 0x20000048 // 316c +{ + 3144: 6d87 mov r6, r1 + 3146: 6d03 mov r4, r0 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 3148: 3105 movi r1, 5 + 314a: 9500 ld.w r0, (r5, 0x0) + 314c: e3fff6a3 bsr 0x1e92 // 1e92 + ucAddr=((Address<<1)&0x7E); + 3150: 4481 lsli r4, r4, 1 + 3152: 307e movi r0, 126 + RC522_ReadWriteOneByte(ucAddr); //SPI1发送一个字节 + 3154: 6810 and r0, r4 + 3156: e3ffffaf bsr 0x30b4 // 30b4 + RC522_ReadWriteOneByte(value); //SPI1发送一个字节 + 315a: 6c1b mov r0, r6 + 315c: e3ffffac bsr 0x30b4 // 30b4 + RC522_CS_HIGH; //PF1写1(SDA)(SPI1片选线) + 3160: 9500 ld.w r0, (r5, 0x0) + 3162: 3105 movi r1, 5 + 3164: e3fff693 bsr 0x1e8a // 1e8a +} + 3168: 1493 pop r4-r6, r15 + 316a: 0000 bkpt + 316c: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_PcdReset: + +00003170 : +{ + 3170: 14d0 push r15 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 3172: 310f movi r1, 15 + 3174: 3001 movi r0, 1 + 3176: e3ffffe5 bsr 0x3140 // 3140 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 317a: 310f movi r1, 15 + 317c: 3001 movi r0, 1 + 317e: e3ffffe1 bsr 0x3140 // 3140 + RC522_Delay(10); + 3182: 300a movi r0, 10 + 3184: e3ffff8e bsr 0x30a0 // 30a0 + RC522_WriteRawRC(ModeReg,0x3D); //和Mifare卡通讯,CRC初始值0x6363 + 3188: 313d movi r1, 61 + 318a: 3011 movi r0, 17 + 318c: e3ffffda bsr 0x3140 // 3140 + RC522_WriteRawRC(TReloadRegL,30); //写RC632寄存器 + 3190: 311e movi r1, 30 + 3192: 302d movi r0, 45 + 3194: e3ffffd6 bsr 0x3140 // 3140 + RC522_WriteRawRC(TReloadRegH,0); + 3198: 3100 movi r1, 0 + 319a: 302c movi r0, 44 + 319c: e3ffffd2 bsr 0x3140 // 3140 + RC522_WriteRawRC(TModeReg,0x8D); + 31a0: 318d movi r1, 141 + 31a2: 302a movi r0, 42 + 31a4: e3ffffce bsr 0x3140 // 3140 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 31a8: 313e movi r1, 62 + 31aa: 302b movi r0, 43 + 31ac: e3ffffca bsr 0x3140 // 3140 + RC522_WriteRawRC(TxAutoReg,0x40);//必须要 + 31b0: 3140 movi r1, 64 + 31b2: 3015 movi r0, 21 + 31b4: e3ffffc6 bsr 0x3140 // 3140 +} + 31b8: 3000 movi r0, 0 + 31ba: 1490 pop r15 + +Disassembly of section .text.RC522_SetBitMask: + +000031bc : +{ + 31bc: 14d2 push r4-r5, r15 + 31be: 6d47 mov r5, r1 + 31c0: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 31c2: e3ffffa3 bsr 0x3108 // 3108 + RC522_WriteRawRC(reg,tmp|mask); //写RC632寄存器 + 31c6: 6c43 mov r1, r0 + 31c8: 6c54 or r1, r5 + 31ca: 7444 zextb r1, r1 + 31cc: 6c13 mov r0, r4 + 31ce: e3ffffb9 bsr 0x3140 // 3140 +} + 31d2: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOn: + +000031d4 : +{ + 31d4: 14d0 push r15 + i=RC522_ReadRawRC(TxControlReg); + 31d6: 3014 movi r0, 20 + 31d8: e3ffff98 bsr 0x3108 // 3108 + if(!(i&0x03)) + 31dc: 3303 movi r3, 3 + 31de: 680c and r0, r3 + 31e0: 3840 cmpnei r0, 0 + 31e2: 0805 bt 0x31ec // 31ec + RC522_SetBitMask(TxControlReg,0x03); + 31e4: 3103 movi r1, 3 + 31e6: 3014 movi r0, 20 + 31e8: e3ffffea bsr 0x31bc // 31bc +} + 31ec: 1490 pop r15 + +Disassembly of section .text.RC522_ClearBitMask: + +000031ee : +{ + 31ee: 14d2 push r4-r5, r15 + 31f0: 6d47 mov r5, r1 + 31f2: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 31f4: e3ffff8a bsr 0x3108 // 3108 + RC522_WriteRawRC(reg,tmp&~mask); // clear bit mask + 31f8: 6815 andn r0, r5 + 31fa: 7440 zextb r1, r0 + 31fc: 6c13 mov r0, r4 + 31fe: e3ffffa1 bsr 0x3140 // 3140 +} + 3202: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOff: + +00003204 : +{ + 3204: 14d0 push r15 + RC522_ClearBitMask(TxControlReg,0x03); //清RC522寄存器位 + 3206: 3103 movi r1, 3 + 3208: 3014 movi r0, 20 + 320a: e3fffff2 bsr 0x31ee // 31ee +} + 320e: 1490 pop r15 + +Disassembly of section .text.RC522_Reset: + +00003210 : +void RC522_Reset(void){ + 3210: 14d0 push r15 + RC522_PcdReset(); //复位RC522 + 3212: e3ffffaf bsr 0x3170 // 3170 + RC522_PcdAntennaOff(); //关闭天线 + 3216: e3fffff7 bsr 0x3204 // 3204 + RC522_Delay(2); //延时2毫秒 + 321a: 3002 movi r0, 2 + 321c: e3ffff42 bsr 0x30a0 // 30a0 + RC522_PcdAntennaOn(); //开启天线 + 3220: e3ffffda bsr 0x31d4 // 31d4 +} + 3224: 1490 pop r15 + +Disassembly of section .text.RC522_CalulateCRC: + +00003226 : +{ + 3226: 14d3 push r4-r6, r15 + 3228: 6d03 mov r4, r0 + 322a: 6d87 mov r6, r1 + RC522_ClearBitMask(DivIrqReg,0x04); //CRCIrq = 0 + 322c: 3005 movi r0, 5 + 322e: 3104 movi r1, 4 +{ + 3230: 6d4b mov r5, r2 + RC522_ClearBitMask(DivIrqReg,0x04); //CRCIrq = 0 + 3232: e3ffffde bsr 0x31ee // 31ee + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 3236: 3100 movi r1, 0 + 3238: 3001 movi r0, 1 + 323a: e3ffff83 bsr 0x3140 // 3140 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO指针 + 323e: 3180 movi r1, 128 + 3240: 300a movi r0, 10 + 3242: e3ffffbd bsr 0x31bc // 31bc + 3246: 6190 addu r6, r4 + for(i=0;i + RC522_WriteRawRC(CommandReg,PCD_CALCCRC); //等待CRC计算完成 + 324c: 3103 movi r1, 3 + 324e: 3001 movi r0, 1 + 3250: e3ffff78 bsr 0x3140 // 3140 + 3254: 34ff movi r4, 255 + 3256: 2c00 subi r4, 1 + n=RC522_ReadRawRC(DivIrqReg); + 3258: 3005 movi r0, 5 + 325a: 7510 zextb r4, r4 + 325c: e3ffff56 bsr 0x3108 // 3108 + while((i!=0)&&!(n&0x04));//CRCIrq = 1 + 3260: 3c40 cmpnei r4, 0 + 3262: 0c06 bf 0x326e // 326e + 3264: 3304 movi r3, 4 + 3266: 680c and r0, r3 + 3268: 7400 zextb r0, r0 + 326a: 3840 cmpnei r0, 0 + 326c: 0ff5 bf 0x3256 // 3256 + pOut[0]=RC522_ReadRawRC(CRCResultRegL); + 326e: 3022 movi r0, 34 + 3270: e3ffff4c bsr 0x3108 // 3108 + 3274: a500 st.b r0, (r5, 0x0) + pOut[1]=RC522_ReadRawRC(CRCResultRegM); + 3276: 3021 movi r0, 33 + 3278: e3ffff48 bsr 0x3108 // 3108 + 327c: a501 st.b r0, (r5, 0x1) +} + 327e: 1493 pop r4-r6, r15 + RC522_WriteRawRC(FIFODataReg,*(pIn +i)); //开始RCR计算 + 3280: 8420 ld.b r1, (r4, 0x0) + 3282: 3009 movi r0, 9 + 3284: e3ffff5e bsr 0x3140 // 3140 + 3288: 2400 addi r4, 1 + 328a: 07df br 0x3248 // 3248 + +Disassembly of section .text.M500PcdConfigISOType.part.1: + +0000328c : +char M500PcdConfigISOType(U8_T type) + 328c: 14d0 push r15 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 328e: 3108 movi r1, 8 + 3290: 3008 movi r0, 8 + 3292: e3ffffae bsr 0x31ee // 31ee + RC522_WriteRawRC(ModeReg,0x3D); //3F//CRC初始值0x6363 + 3296: 313d movi r1, 61 + 3298: 3011 movi r0, 17 + 329a: e3ffff53 bsr 0x3140 // 3140 + RC522_WriteRawRC(RxSelReg,0x86); //84 + 329e: 3186 movi r1, 134 + 32a0: 3017 movi r0, 23 + 32a2: e3ffff4f bsr 0x3140 // 3140 + RC522_WriteRawRC(RFCfgReg,0x7F); //4F //调整卡的感应距离//RxGain = 48dB调节卡感应距离 + 32a6: 317f movi r1, 127 + 32a8: 3026 movi r0, 38 + 32aa: e3ffff4b bsr 0x3140 // 3140 + RC522_WriteRawRC(TReloadRegL,30); //tmoLength);// TReloadVal = 'h6a =tmoLength(dec) + 32ae: 311e movi r1, 30 + 32b0: 302d movi r0, 45 + 32b2: e3ffff47 bsr 0x3140 // 3140 + RC522_WriteRawRC(TReloadRegH,0); + 32b6: 3100 movi r1, 0 + 32b8: 302c movi r0, 44 + 32ba: e3ffff43 bsr 0x3140 // 3140 + RC522_WriteRawRC(TModeReg,0x8D); + 32be: 318d movi r1, 141 + 32c0: 302a movi r0, 42 + 32c2: e3ffff3f bsr 0x3140 // 3140 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 32c6: 313e movi r1, 62 + 32c8: 302b movi r0, 43 + 32ca: e3ffff3b bsr 0x3140 // 3140 + RC522_Delay(1000); + 32ce: 30fa movi r0, 250 + 32d0: 4002 lsli r0, r0, 2 + 32d2: e3fffee7 bsr 0x30a0 // 30a0 + RC522_PcdAntennaOn(); //开启天线 + 32d6: e3ffff7f bsr 0x31d4 // 31d4 +} + 32da: 3000 movi r0, 0 + 32dc: 1490 pop r15 + +Disassembly of section .text.RC522_Init: + +000032e0 : +{ + 32e0: 14d1 push r4, r15 + nop; + 32e2: 6c03 mov r0, r0 + GPIO_Init(GPIOA0,9,Output); //SCK + 32e4: 1183 lrw r4, 0x2000004c // 3370 + 32e6: 3200 movi r2, 0 + 32e8: 9400 ld.w r0, (r4, 0x0) + 32ea: 3109 movi r1, 9 + 32ec: e3fff54e bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,10,Output); //MOSI + 32f0: 3200 movi r2, 0 + 32f2: 9400 ld.w r0, (r4, 0x0) + 32f4: 310a movi r1, 10 + 32f6: e3fff549 bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOA0,11); + 32fa: 9400 ld.w r0, (r4, 0x0) + 32fc: 310b movi r1, 11 + 32fe: e3fff5b5 bsr 0x1e68 // 1e68 + GPIO_Init(GPIOA0,11,Intput); //MISO + 3302: 9400 ld.w r0, (r4, 0x0) + 3304: 3201 movi r2, 1 + GPIO_Init(GPIOB0,5,Output); //CS + 3306: 109c lrw r4, 0x20000048 // 3374 + GPIO_Init(GPIOA0,11,Intput); //MISO + 3308: 310b movi r1, 11 + 330a: e3fff53f bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,5,Output); //CS + 330e: 9400 ld.w r0, (r4, 0x0) + 3310: 3200 movi r2, 0 + 3312: 3105 movi r1, 5 + 3314: e3fff53a bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,4,Output); //RST + 3318: 9400 ld.w r0, (r4, 0x0) + 331a: 3200 movi r2, 0 + 331c: 3104 movi r1, 4 + 331e: e3fff535 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,3,Intput); //IRQ + 3322: 3201 movi r2, 1 + 3324: 9400 ld.w r0, (r4, 0x0) + 3326: 3103 movi r1, 3 + 3328: e3fff530 bsr 0x1d88 // 1d88 + GPIO_Write_High(GPIOB0,5); + 332c: 9400 ld.w r0, (r4, 0x0) + 332e: 3105 movi r1, 5 + 3330: e3fff5ad bsr 0x1e8a // 1e8a + GPIO_Write_High(GPIOB0,4); + 3334: 3104 movi r1, 4 + 3336: 9400 ld.w r0, (r4, 0x0) + 3338: e3fff5a9 bsr 0x1e8a // 1e8a + RC522_PcdReset(); //复位RC522 + 333c: e3ffff1a bsr 0x3170 // 3170 + RC522_PcdAntennaOff(); //关闭天线 + 3340: e3ffff62 bsr 0x3204 // 3204 + RC522_Delay(2); //延时2毫秒 + 3344: 3002 movi r0, 2 + 3346: e3fffead bsr 0x30a0 // 30a0 + RC522_PcdAntennaOn(); //开启天线 + 334a: e3ffff45 bsr 0x31d4 // 31d4 + memset(&CardInfo,0x00,sizeof(CardInfo)); + 334e: 108b lrw r4, 0x20000204 // 3378 + 3350: e3ffff9e bsr 0x328c // 328c + 3354: 3230 movi r2, 48 + 3356: 3100 movi r1, 0 + 3358: 6c13 mov r0, r4 + 335a: e3fff305 bsr 0x1964 // 1964 <__memset_fast> + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 335e: 3318 movi r3, 24 + 3360: a468 st.b r3, (r4, 0x8) + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 3362: 3360 movi r3, 96 + 3364: a47f st.b r3, (r4, 0x1f) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 3366: 3300 movi r3, 0 + 3368: 2b00 subi r3, 1 + 336a: b468 st.w r3, (r4, 0x20) + 336c: ac72 st.h r3, (r4, 0x24) +} + 336e: 1491 pop r4, r15 + 3370: 2000004c .long 0x2000004c + 3374: 20000048 .long 0x20000048 + 3378: 20000204 .long 0x20000204 + +Disassembly of section .text.RC522_PcdComMF522: + +0000337c : +{ + 337c: 14d4 push r4-r7, r15 + 337e: 1424 subi r14, r14, 16 + 3380: b861 st.w r3, (r14, 0x4) + switch (Command) { + 3382: 384c cmpnei r0, 12 +{ + 3384: 9869 ld.w r3, (r14, 0x24) + 3386: 6d43 mov r5, r0 + 3388: 6dc7 mov r7, r1 + 338a: b860 st.w r3, (r14, 0x0) + switch (Command) { + 338c: 0c4c bf 0x3424 // 3424 + 338e: 384e cmpnei r0, 14 + 3390: 0c4d bf 0x342a // 342a + U8_T waitFor=0x00; + 3392: 3600 movi r6, 0 + U8_T irqEn=0x00; + 3394: 3400 movi r4, 0 + RC522_WriteRawRC(ComIEnReg,irqEn|0x80); + 3396: 6c53 mov r1, r4 + 3398: 39a7 bseti r1, 7 + 339a: 3002 movi r0, 2 + 339c: b842 st.w r2, (r14, 0x8) + 339e: e3fffed1 bsr 0x3140 // 3140 + RC522_ClearBitMask(ComIrqReg,0x80); //清所有中断位 + 33a2: 3180 movi r1, 128 + 33a4: 3004 movi r0, 4 + 33a6: e3ffff24 bsr 0x31ee // 31ee + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 33aa: 3100 movi r1, 0 + 33ac: 3001 movi r0, 1 + 33ae: e3fffec9 bsr 0x3140 // 3140 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO缓存 + 33b2: 3180 movi r1, 128 + 33b4: 300a movi r0, 10 + 33b6: e3ffff03 bsr 0x31bc // 31bc + for(i=0;i + RC522_WriteRawRC(CommandReg,Command); + 33c6: 6c57 mov r1, r5 + 33c8: 3001 movi r0, 1 + 33ca: e3fffebb bsr 0x3140 // 3140 + if(Command==PCD_TRANSCEIVE) + 33ce: 3d4c cmpnei r5, 12 + 33d0: 0805 bt 0x33da // 33da + RC522_SetBitMask(BitFramingReg,0x80); //开始传送 + 33d2: 3180 movi r1, 128 + 33d4: 300d movi r0, 13 + 33d6: e3fffef3 bsr 0x31bc // 31bc + for(i=0;i + i--; + 33e8: 9862 ld.w r3, (r14, 0x8) + 33ea: 2b00 subi r3, 1 + 33ec: 74cd zexth r3, r3 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 33ee: 3b40 cmpnei r3, 0 + n=RC522_ReadRawRC(ComIrqReg); + 33f0: 6dc3 mov r7, r0 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 33f2: 0c05 bf 0x33fc // 33fc + 33f4: 6c83 mov r2, r0 + 33f6: 6898 and r2, r6 + 33f8: 3a40 cmpnei r2, 0 + 33fa: 0ff3 bf 0x33e0 // 33e0 + RC522_ClearBitMask(BitFramingReg,0x80); + 33fc: 3180 movi r1, 128 + 33fe: 300d movi r0, 13 + 3400: b862 st.w r3, (r14, 0x8) + 3402: e3fffef6 bsr 0x31ee // 31ee + if(i!=0) + 3406: 9862 ld.w r3, (r14, 0x8) + 3408: 3b40 cmpnei r3, 0 + 340a: 081f bt 0x3448 // 3448 + char stats=MI_ERR; + 340c: 3702 movi r7, 2 + RC522_SetBitMask(ControlReg,0x80);// stop timer now + 340e: 3180 movi r1, 128 + 3410: 300c movi r0, 12 + 3412: e3fffed5 bsr 0x31bc // 31bc + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 3416: 3100 movi r1, 0 + 3418: 3001 movi r0, 1 + 341a: e3fffe93 bsr 0x3140 // 3140 +} + 341e: 6c1f mov r0, r7 + 3420: 1404 addi r14, r14, 16 + 3422: 1494 pop r4-r7, r15 + waitFor = 0x30; + 3424: 3630 movi r6, 48 + irqEn = 0x77; + 3426: 3477 movi r4, 119 + break; + 3428: 07b7 br 0x3396 // 3396 + waitFor = 0x10; + 342a: 3610 movi r6, 16 + irqEn = 0x12; + 342c: 3412 movi r4, 18 + 342e: 07b4 br 0x3396 // 3396 + RC522_WriteRawRC(FIFODataReg,pIn[i]); + 3430: 8320 ld.b r1, (r3, 0x0) + 3432: 3009 movi r0, 9 + 3434: b843 st.w r2, (r14, 0xc) + 3436: b862 st.w r3, (r14, 0x8) + for(i=0;i + 343e: 9862 ld.w r3, (r14, 0x8) + for(i=0;i + if(!(RC522_ReadRawRC(ErrorReg)&0x1B)) + 3448: 3006 movi r0, 6 + 344a: e3fffe5f bsr 0x3108 // 3108 + 344e: 331b movi r3, 27 + 3450: 680c and r0, r3 + 3452: 3840 cmpnei r0, 0 + 3454: 0bdc bt 0x340c // 340c + stats=MI_OK; + 3456: 3301 movi r3, 1 + 3458: 690c and r4, r3 + if(Command==PCD_TRANSCEIVE) + 345a: 3d4c cmpnei r5, 12 + stats=MI_OK; + 345c: 69d0 and r7, r4 + if(Command==PCD_TRANSCEIVE) + 345e: 0bd8 bt 0x340e // 340e + n=RC522_ReadRawRC(FIFOLevelReg); + 3460: 300a movi r0, 10 + 3462: e3fffe53 bsr 0x3108 // 3108 + 3466: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 3468: 300c movi r0, 12 + 346a: e3fffe4f bsr 0x3108 // 3108 + 346e: 3307 movi r3, 7 + 3470: 680c and r0, r3 + if(lastBits) + 3472: 3840 cmpnei r0, 0 + 3474: 0c1b bf 0x34aa // 34aa + *pOutLenBit=(n-1)*8+lastBits; + 3476: 5c63 subi r3, r4, 1 + 3478: 4363 lsli r3, r3, 3 + 347a: 600c addu r0, r3 + 347c: 9860 ld.w r3, (r14, 0x0) + 347e: a300 st.b r0, (r3, 0x0) + if(n==0)n=1; + 3480: 3c40 cmpnei r4, 0 + 3482: 0c18 bf 0x34b2 // 34b2 + 3484: 6cd3 mov r3, r4 + 3486: 7510 zextb r4, r4 + 3488: 3c12 cmphsi r4, 19 + 348a: 0c02 bf 0x348e // 348e + 348c: 3312 movi r3, 18 + 348e: 74cc zextb r3, r3 + 3490: 98c1 ld.w r6, (r14, 0x4) + for(i=0; i + pOut[i]=RC522_ReadRawRC(FIFODataReg); + 349a: 3009 movi r0, 9 + 349c: e3fffe36 bsr 0x3108 // 3108 + for(i=0; i + *pOutLenBit=n*8; + 34aa: 4463 lsli r3, r4, 3 + 34ac: 9840 ld.w r2, (r14, 0x0) + 34ae: a260 st.b r3, (r2, 0x0) + 34b0: 07e8 br 0x3480 // 3480 + if(n==0)n=1; + 34b2: 3301 movi r3, 1 + 34b4: 07ee br 0x3490 // 3490 + +Disassembly of section .text.RC522_PcdSelect: + +000034b6 : +{ + 34b6: 14d1 push r4, r15 + 34b8: 1427 subi r14, r14, 28 + ucComMF522Buf[0]=PICC_ANTICOLL1; + 34ba: 3300 movi r3, 0 + 34bc: 2b6c subi r3, 109 + 34be: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x70; + 34c2: 3370 movi r3, 112 + 34c4: dc6e0009 st.b r3, (r14, 0x9) + ucComMF522Buf[6]=0; + 34c8: 3300 movi r3, 0 + 34ca: dc6e000e st.b r3, (r14, 0xe) + 34ce: 1a02 addi r2, r14, 8 + 34d0: 582e addi r1, r0, 4 + ucComMF522Buf[i+2]=*(pSnr+i); + 34d2: 8060 ld.b r3, (r0, 0x0) + 34d4: a262 st.b r3, (r2, 0x2) + ucComMF522Buf[6]^=*(pSnr+i); + 34d6: d88e000e ld.b r4, (r14, 0xe) + 34da: 2000 addi r0, 1 + 34dc: 6cd1 xor r3, r4 + for(i=0;i<4;i++) + 34de: 6442 cmpne r0, r1 + ucComMF522Buf[6]^=*(pSnr+i); + 34e0: dc6e000e st.b r3, (r14, 0xe) + 34e4: 2200 addi r2, 1 + for(i=0;i<4;i++) + 34e6: 0bf6 bt 0x34d2 // 34d2 + RC522_CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]); //用MF522计算CRC16函数,校验数据 + 34e8: 1b02 addi r3, r14, 8 + 34ea: 5b5a addi r2, r3, 7 + 34ec: 6c0f mov r0, r3 + 34ee: 3107 movi r1, 7 + 34f0: e3fffe9b bsr 0x3226 // 3226 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen); + 34f4: 3407 movi r4, 7 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 34f6: 3108 movi r1, 8 + 34f8: 3008 movi r0, 8 + 34fa: e3fffe7a bsr 0x31ee // 31ee + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen); + 34fe: 6138 addu r4, r14 + 3500: 1b02 addi r3, r14, 8 + 3502: b880 st.w r4, (r14, 0x0) + 3504: 3209 movi r2, 9 + 3506: 6c4f mov r1, r3 + 3508: 300c movi r0, 12 + 350a: e3ffff39 bsr 0x337c // 337c + if((stats==MI_OK)&&(unLen==0x18))stats=MI_OK; + 350e: 3840 cmpnei r0, 0 + 3510: 0806 bt 0x351c // 351c + 3512: 8460 ld.b r3, (r4, 0x0) + 3514: 3b58 cmpnei r3, 24 + 3516: 0803 bt 0x351c // 351c +} + 3518: 1407 addi r14, r14, 28 + 351a: 1491 pop r4, r15 + else stats=MI_ERR; + 351c: 3002 movi r0, 2 + 351e: 07fd br 0x3518 // 3518 + +Disassembly of section .text.RC522_PcdAuthState: + +00003520 : +{ + 3520: 14d2 push r4-r5, r15 + 3522: 1427 subi r14, r14, 28 + 3524: 6d0f mov r4, r3 + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 3526: 1b02 addi r3, r14, 8 +{ + 3528: 6d47 mov r5, r1 + ucComMF522Buf[0]=auth_mode; + 352a: dc0e0008 st.b r0, (r14, 0x8) +{ + 352e: 6c4b mov r1, r2 + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 3530: 5b06 addi r0, r3, 2 + 3532: 3206 movi r2, 6 + ucComMF522Buf[1]=addr; + 3534: dcae0009 st.b r5, (r14, 0x9) + memcpy(&ucComMF522Buf[2],pKey,6); //拷贝,复制 + 3538: e3fff25a bsr 0x19ec // 19ec <__memcpy_fast> + memcpy(&ucComMF522Buf[8],pSnr,4); + 353c: 1b02 addi r3, r14, 8 + 353e: 6c53 mov r1, r4 + 3540: 5b1e addi r0, r3, 8 + 3542: 3204 movi r2, 4 + 3544: e3fff254 bsr 0x19ec // 19ec <__memcpy_fast> + stats=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen); + 3548: 3307 movi r3, 7 + 354a: 60f8 addu r3, r14 + 354c: b860 st.w r3, (r14, 0x0) + 354e: 1b02 addi r3, r14, 8 + 3550: 320c movi r2, 12 + 3552: 6c4f mov r1, r3 + 3554: 300e movi r0, 14 + 3556: e3ffff13 bsr 0x337c // 337c + if((stats!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))stats = MI_ERR; + 355a: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen); + 355c: 6d03 mov r4, r0 + if((stats!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))stats = MI_ERR; + 355e: 0809 bt 0x3570 // 3570 + 3560: 3008 movi r0, 8 + 3562: e3fffdd3 bsr 0x3108 // 3108 + 3566: 3308 movi r3, 8 + 3568: 680c and r0, r3 + 356a: 7400 zextb r0, r0 + 356c: 3840 cmpnei r0, 0 + 356e: 0802 bt 0x3572 // 3572 + 3570: 3402 movi r4, 2 +} + 3572: 6c13 mov r0, r4 + 3574: 1407 addi r14, r14, 28 + 3576: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdRequest: + +00003578 : +{ + 3578: 14d3 push r4-r6, r15 + 357a: 1427 subi r14, r14, 28 + 357c: 6d03 mov r4, r0 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 357e: 3212 movi r2, 18 +{ + 3580: 6d47 mov r5, r1 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 3582: 1802 addi r0, r14, 8 + 3584: 3100 movi r1, 0 + 3586: e3fff1ef bsr 0x1964 // 1964 <__memset_fast> + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位,/接收数据命令 + 358a: 3108 movi r1, 8 + 358c: 3008 movi r0, 8 + 358e: e3fffe30 bsr 0x31ee // 31ee + RC522_WriteRawRC(BitFramingReg,0x07); //写RC632寄存器 + 3592: 3107 movi r1, 7 + 3594: 300d movi r0, 13 + 3596: e3fffdd5 bsr 0x3140 // 3140 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 359a: 3607 movi r6, 7 + RC522_SetBitMask(TxControlReg,0x03); //置RC522寄存器位 + 359c: 3103 movi r1, 3 + 359e: 3014 movi r0, 20 + 35a0: e3fffe0e bsr 0x31bc // 31bc + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 35a4: 61b8 addu r6, r14 + 35a6: 1b02 addi r3, r14, 8 + 35a8: b8c0 st.w r6, (r14, 0x0) + 35aa: 3201 movi r2, 1 + 35ac: 6c4f mov r1, r3 + 35ae: 300c movi r0, 12 + ucComMF522Buf[0]=req_code; //寻卡方式 + 35b0: dc8e0008 st.b r4, (r14, 0x8) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 35b4: e3fffee4 bsr 0x337c // 337c + if ((stats == MI_OK) && (unLen == 0x10)) { + 35b8: 3840 cmpnei r0, 0 + 35ba: 081b bt 0x35f0 // 35f0 + 35bc: 8660 ld.b r3, (r6, 0x0) + 35be: 3b50 cmpnei r3, 16 + 35c0: 0818 bt 0x35f0 // 35f0 + *pTagType = ucComMF522Buf[0]; //将数组里的数据赋值给*pTagType + 35c2: d86e0008 ld.b r3, (r14, 0x8) + 35c6: a560 st.b r3, (r5, 0x0) + *(pTagType + 1) = ucComMF522Buf[1]; + 35c8: d86e0009 ld.b r3, (r14, 0x9) + 35cc: a561 st.b r3, (r5, 0x1) + if ((ucComMF522Buf[0] == req_code)&&(CardInfo.RC522_Reset_Falg == 0)) { + 35ce: d86e0008 ld.b r3, (r14, 0x8) + 35d2: 650e cmpne r3, r4 + 35d4: 3220 movi r2, 32 + 35d6: 1069 lrw r3, 0x20000204 // 35f8 + 35d8: 608c addu r2, r3 + 35da: 080d bt 0x35f4 // 35f4 + 35dc: 8228 ld.b r1, (r2, 0x8) + 35de: 3940 cmpnei r1, 0 + 35e0: 0806 bt 0x35ec // 35ec + CardInfo.RC522_Reset_Falg = 1; + 35e2: 3101 movi r1, 1 + CardInfo.RC522_Reset_Falg = 0; + 35e4: a228 st.b r1, (r2, 0x8) + CardInfo.Reset_Tick = SysTick_1ms; + 35e6: 1046 lrw r2, 0x200000b0 // 35fc + 35e8: 9240 ld.w r2, (r2, 0x0) + 35ea: b34b st.w r2, (r3, 0x2c) +} + 35ec: 1407 addi r14, r14, 28 + 35ee: 1493 pop r4-r6, r15 + stats = MI_ERR; + 35f0: 3002 movi r0, 2 + 35f2: 07ee br 0x35ce // 35ce + CardInfo.RC522_Reset_Falg = 0; + 35f4: 3100 movi r1, 0 + 35f6: 07f7 br 0x35e4 // 35e4 + 35f8: 20000204 .long 0x20000204 + 35fc: 200000b0 .long 0x200000b0 + +Disassembly of section .text.RC522_PcdAnticoll: + +00003600 : +{ + 3600: 14d2 push r4-r5, r15 + 3602: 1427 subi r14, r14, 28 + 3604: 6d43 mov r5, r0 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 3606: 3108 movi r1, 8 + 3608: 3008 movi r0, 8 + 360a: e3fffdf2 bsr 0x31ee // 31ee + RC522_WriteRawRC(BitFramingReg,0x00); //写 + 360e: 3100 movi r1, 0 + 3610: 300d movi r0, 13 + 3612: e3fffd97 bsr 0x3140 // 3140 + RC522_ClearBitMask(CollReg,0x80); //清 + 3616: 3180 movi r1, 128 + 3618: 300e movi r0, 14 + 361a: e3fffdea bsr 0x31ee // 31ee + ucComMF522Buf[0]=PICC_ANTICOLL1; //PICC_ANTICOLL1 = 0x93 + 361e: 3300 movi r3, 0 + 3620: 2b6c subi r3, 109 + 3622: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x20; + 3626: 3320 movi r3, 32 + 3628: dc6e0009 st.b r3, (r14, 0x9) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 362c: 3307 movi r3, 7 + 362e: 60f8 addu r3, r14 + 3630: b860 st.w r3, (r14, 0x0) + 3632: 1b02 addi r3, r14, 8 + 3634: 3202 movi r2, 2 + 3636: 6c4f mov r1, r3 + 3638: 300c movi r0, 12 + 363a: e3fffea1 bsr 0x337c // 337c + if(stats==MI_OK) + 363e: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 3640: 6d03 mov r4, r0 + if(stats==MI_OK) + 3642: 0812 bt 0x3666 // 3666 + 3644: 3300 movi r3, 0 + 3646: 3200 movi r2, 0 + *(pSnr+i)=ucComMF522Buf[i]; //把读到的卡号赋值给pSnr + 3648: 1902 addi r1, r14, 8 + 364a: 604c addu r1, r3 + 364c: 8120 ld.b r1, (r1, 0x0) + 364e: 5d0c addu r0, r5, r3 + 3650: 2300 addi r3, 1 + 3652: a020 st.b r1, (r0, 0x0) + for(i=0;i<4;i++) + 3654: 3b44 cmpnei r3, 4 + snr_check^=ucComMF522Buf[i]; + 3656: 6c49 xor r1, r2 + 3658: 6c87 mov r2, r1 + for(i=0;i<4;i++) + 365a: 0bf7 bt 0x3648 // 3648 + if(snr_check!=ucComMF522Buf[i]) + 365c: d86e000c ld.b r3, (r14, 0xc) + 3660: 644e cmpne r3, r1 + 3662: 0c02 bf 0x3666 // 3666 + stats = MI_ERR; + 3664: 3402 movi r4, 2 + RC522_SetBitMask(CollReg,0x80); + 3666: 3180 movi r1, 128 + 3668: 300e movi r0, 14 + 366a: e3fffda9 bsr 0x31bc // 31bc +} + 366e: 6c13 mov r0, r4 + 3670: 1407 addi r14, r14, 28 + 3672: 1492 pop r4-r5, r15 + +Disassembly of section .text.Card_Read_TasK: + +00003674 : + + + +//U32_T FailNum = 0; +U32_T scan_tick = 0; +void Card_Read_TasK(void){ + 3674: 14d2 push r4-r5, r15 + + if(SysTick_1ms - scan_tick >= 100){ + 3676: 112b lrw r1, 0x200000b0 // 3720 + 3678: 114b lrw r2, 0x200000c4 // 3724 + 367a: 118c lrw r4, 0x20000204 // 3728 + 367c: 9200 ld.w r0, (r2, 0x0) + 367e: 9160 ld.w r3, (r1, 0x0) + 3680: 60c2 subu r3, r0 + 3682: 3063 movi r0, 99 + 3684: 64c0 cmphs r0, r3 + 3686: 082c bt 0x36de // 36de + scan_tick = SysTick_1ms; + 3688: 9160 ld.w r3, (r1, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read"); + + //寻卡: 识别天线范围内全部卡 + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 368a: 3119 movi r1, 25 + 368c: 6050 addu r1, r4 + 368e: 3052 movi r0, 82 + scan_tick = SysTick_1ms; + 3690: b260 st.w r3, (r2, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 3692: e3ffff73 bsr 0x3578 // 3578 + 3696: 3520 movi r5, 32 + 3698: 3840 cmpnei r0, 0 + 369a: 6150 addu r5, r4 + 369c: 0836 bt 0x3708 // 3708 + CardInfo.FailNum = 0x00; + 369e: 3300 movi r3, 0 + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 36a0: 1123 lrw r1, 0x4797 // 372c + CardInfo.FailNum = 0x00; + 36a2: a566 st.b r3, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 36a4: e3fffcf8 bsr 0x3094 // 3094 + //防冲撞:获取IC卡的卡号 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 36a8: 301b movi r0, 27 + 36aa: 6010 addu r0, r4 + 36ac: e3ffffaa bsr 0x3600 // 3600 + 36b0: 3840 cmpnei r0, 0 + 36b2: 0829 bt 0x3704 // 3704 + //选定要进行操作的卡片 + if(RC522_PcdSelect(CardInfo.SN)==MI_OK){ + 36b4: 301b movi r0, 27 + 36b6: 6010 addu r0, r4 + 36b8: e3fffeff bsr 0x34b6 // 34b6 + 36bc: 3840 cmpnei r0, 0 + 36be: 0821 bt 0x3700 // 3700 + //验证卡片密码 + if(RC522_PcdAuthState(CardInfo.CardKeyType, CardInfo.BlockLoc, CardInfo.CardKey, CardInfo.SN)==MI_OK){ + 36c0: 331b movi r3, 27 + 36c2: 8428 ld.b r1, (r4, 0x8) + 36c4: 841f ld.b r0, (r4, 0x1f) + 36c6: 60d0 addu r3, r4 + 36c8: 6c97 mov r2, r5 + 36ca: e3ffff2b bsr 0x3520 // 3520 + 36ce: 3840 cmpnei r0, 0 + 36d0: 0813 bt 0x36f6 // 36f6 + //读取指定块的数据 +// if(RC522_PcdRead(CardInfo.BlockLoc, CardInfo.CradDataBuf)==MI_OK) + { + + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Block %d",CardInfo.BlockLoc); + 36d2: 8448 ld.b r2, (r4, 0x8) + 36d4: 1037 lrw r1, 0x47a7 // 3730 + 36d6: e3fffcdf bsr 0x3094 // 3094 + + //Dbg_Print_Buff(DBG_BIT_SYS_STATUS, "Card Data",CardInfo.CradDataBuf,BLOCK_HAVE_BYTE); + + CardInfo.BlockSucc = BLOCK_READ_SUCC; + 36da: 3301 movi r3, 1 + 36dc: a467 st.b r3, (r4, 0x7) + CardInfo.FailNum++; + } + } + } + + if(CardInfo.BlockSucc != CardInfo.BlockLast){ + 36de: 8467 ld.b r3, (r4, 0x7) + 36e0: 8446 ld.b r2, (r4, 0x6) + 36e2: 64ca cmpne r2, r3 + 36e4: 0c08 bf 0x36f4 // 36f4 + CardInfo.BlockLast = CardInfo.BlockSucc; + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 36e6: 3b41 cmpnei r3, 1 + CardInfo.BlockLast = CardInfo.BlockSucc; + 36e8: a466 st.b r3, (r4, 0x6) + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 36ea: 0805 bt 0x36f4 // 36f4 + + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read SUCC"); + 36ec: 1032 lrw r1, 0x47f9 // 3734 + 36ee: 3000 movi r0, 0 + 36f0: e3fffcd2 bsr 0x3094 // 3094 + + } + } + + +} + 36f4: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Key Error"); + 36f6: 1031 lrw r1, 0x47b5 // 3738 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 36f8: 3000 movi r0, 0 + 36fa: e3fffccd bsr 0x3094 // 3094 + 36fe: 07f0 br 0x36de // 36de + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Select Error"); + 3700: 102f lrw r1, 0x47c4 // 373c + 3702: 07fb br 0x36f8 // 36f8 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 3704: 102f lrw r1, 0x47d6 // 3740 + 3706: 07f9 br 0x36f8 // 36f8 + if(CardInfo.FailNum >= 5){ + 3708: 8566 ld.b r3, (r5, 0x6) + 370a: 3b04 cmphsi r3, 5 + 370c: 0c07 bf 0x371a // 371a + CardInfo.FailNum = 0; + 370e: 3300 movi r3, 0 + 3710: a566 st.b r3, (r5, 0x6) + CardInfo.SuccNum = 0; + 3712: a567 st.b r3, (r5, 0x7) + CardInfo.BlockSucc = BLOCK_READ_FAILD; + 3714: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_FAILD"); + 3716: 102c lrw r1, 0x47e8 // 3744 + 3718: 07f0 br 0x36f8 // 36f8 + CardInfo.FailNum++; + 371a: 2300 addi r3, 1 + 371c: a566 st.b r3, (r5, 0x6) + 371e: 07e0 br 0x36de // 36de + 3720: 200000b0 .long 0x200000b0 + 3724: 200000c4 .long 0x200000c4 + 3728: 20000204 .long 0x20000204 + 372c: 00004797 .long 0x00004797 + 3730: 000047a7 .long 0x000047a7 + 3734: 000047f9 .long 0x000047f9 + 3738: 000047b5 .long 0x000047b5 + 373c: 000047c4 .long 0x000047c4 + 3740: 000047d6 .long 0x000047d6 + 3744: 000047e8 .long 0x000047e8 + +Disassembly of section .text.Detect_SPI_task: + +00003748 : + +void Detect_SPI_task(void){ + 3748: 14d0 push r15 + + if (CardInfo.RC522_Reset_Falg == 1) { + 374a: 106c lrw r3, 0x20000204 // 3778 + 374c: 3220 movi r2, 32 + 374e: 608c addu r2, r3 + 3750: 8248 ld.b r2, (r2, 0x8) + 3752: 3a41 cmpnei r2, 1 + 3754: 0810 bt 0x3774 // 3774 + if (SysTick_1ms - CardInfo.Reset_Tick >= 1000) { + 3756: 102a lrw r1, 0x200000b0 // 377c + 3758: 9140 ld.w r2, (r1, 0x0) + 375a: 930b ld.w r0, (r3, 0x2c) + 375c: 6082 subu r2, r0 + 375e: 1009 lrw r0, 0x3e7 // 3780 + 3760: 6480 cmphs r0, r2 + 3762: 0809 bt 0x3774 // 3774 + CardInfo.Reset_Tick = SysTick_1ms; + 3764: 9140 ld.w r2, (r1, 0x0) + 3766: b34b st.w r2, (r3, 0x2c) + RC522_Reset(); + 3768: e3fffd54 bsr 0x3210 // 3210 + Dbg_Println(DBG_BIT_SYS_STATUS, "SPI INIT"); + 376c: 1026 lrw r1, 0x4808 // 3784 + 376e: 3000 movi r0, 0 + 3770: e3fffc92 bsr 0x3094 // 3094 + } + } + +} + 3774: 1490 pop r15 + 3776: 0000 bkpt + 3778: 20000204 .long 0x20000204 + 377c: 200000b0 .long 0x200000b0 + 3780: 000003e7 .long 0x000003e7 + 3784: 00004808 .long 0x00004808 + +Disassembly of section .text.RLY_Light_Ctrl.part.0: + +00003788 : + } +} + + +///无RF模块继电器和背光控制函数 +void RLY_Light_Ctrl(U8_T state) + 3788: 14d0 push r15 +{ + if(state == 0x01) + { + CTRL_RLY_ON; + 378a: 1066 lrw r3, 0x2000004c // 37a0 + 378c: 3100 movi r1, 0 + 378e: 9300 ld.w r0, (r3, 0x0) + 3790: e3fff381 bsr 0x1e92 // 1e92 + GPT0->CMPA = 0; + 3794: 1064 lrw r3, 0x20000024 // 37a4 + 3796: 3200 movi r2, 0 + 3798: 9360 ld.w r3, (r3, 0x0) + 379a: b34b st.w r2, (r3, 0x2c) + else if(state == 0x00) + { + CTRL_RLY_OFF; + Ctrl_Backlight(1); + } +} + 379c: 1490 pop r15 + 379e: 0000 bkpt + 37a0: 2000004c .long 0x2000004c + 37a4: 20000024 .long 0x20000024 + +Disassembly of section .text.KEY1_LONG_PRESS_RELEASE_Handler: + +000037a8 : + + +U8_T LED_STATE = 0; +///无RF模块的门磁长按释放事件 +void KEY1_LONG_PRESS_RELEASE_Handler(void* btn) +{ + 37a8: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_RELEASE_Handler"); + 37aa: 1034 lrw r1, 0x4811 // 37f8 + 37ac: 3000 movi r0, 0 + 37ae: e3fffc73 bsr 0x3094 // 3094 + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 37b2: 1073 lrw r3, 0x20000204 // 37fc + 37b4: 8367 ld.b r3, (r3, 0x7) + 37b6: 3b40 cmpnei r3, 0 + 37b8: 1092 lrw r4, 0x2000026c // 3800 + 37ba: 081b bt 0x37f0 // 37f0 + { + if(READ_RLY_STATE != 0x00) + 37bc: 1072 lrw r3, 0x2000004c // 3804 + 37be: 3100 movi r1, 0 + 37c0: 9300 ld.w r0, (r3, 0x0) + 37c2: e3fff37f bsr 0x1ec0 // 1ec0 + 37c6: 3840 cmpnei r0, 0 + 37c8: 0c0a bf 0x37dc // 37dc + 37ca: e3ffffdf bsr 0x3788 // 3788 + { + RLY_Light_Ctrl(1); + LED_STATE = 4; + 37ce: 106f lrw r3, 0x200000c8 // 3808 + 37d0: 3204 movi r2, 4 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 37d2: 102f lrw r1, 0x482c // 380c + 37d4: 3000 movi r0, 0 + LED_STATE = 4; + 37d6: a340 st.b r2, (r3, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 37d8: e3fffc5e bsr 0x3094 // 3094 + } + dm_in.DM_Tick = SysTick_1ms; + 37dc: 106d lrw r3, 0x200000b0 // 3810 + 37de: 104e lrw r2, 0x2000026d // 3814 + 37e0: 9360 ld.w r3, (r3, 0x0) + 37e2: 4b28 lsri r1, r3, 8 + 37e4: a461 st.b r3, (r4, 0x1) + 37e6: a221 st.b r1, (r2, 0x1) + 37e8: 4b30 lsri r1, r3, 16 + 37ea: 4b78 lsri r3, r3, 24 + 37ec: a222 st.b r1, (r2, 0x2) + 37ee: a263 st.b r3, (r2, 0x3) + } + + dm_in.DM_State = 0x02; + 37f0: 3302 movi r3, 2 + 37f2: a460 st.b r3, (r4, 0x0) +} + 37f4: 1491 pop r4, r15 + 37f6: 0000 bkpt + 37f8: 00004811 .long 0x00004811 + 37fc: 20000204 .long 0x20000204 + 3800: 2000026c .long 0x2000026c + 3804: 2000004c .long 0x2000004c + 3808: 200000c8 .long 0x200000c8 + 380c: 0000482c .long 0x0000482c + 3810: 200000b0 .long 0x200000b0 + 3814: 2000026d .long 0x2000026d + +Disassembly of section .text.RLY_Light_Ctrl: + +00003818 : +{ + 3818: 14d0 push r15 + if(state == 0x01) + 381a: 3841 cmpnei r0, 1 + 381c: 0804 bt 0x3824 // 3824 + 381e: e3ffffb5 bsr 0x3788 // 3788 +} + 3822: 1490 pop r15 + else if(state == 0x00) + 3824: 3840 cmpnei r0, 0 + 3826: 0bfe bt 0x3822 // 3822 + CTRL_RLY_OFF; + 3828: 1066 lrw r3, 0x2000004c // 3840 + 382a: 3100 movi r1, 0 + 382c: 9300 ld.w r0, (r3, 0x0) + 382e: e3fff32e bsr 0x1e8a // 1e8a + GPT0->CMPA = 2000; + 3832: 1065 lrw r3, 0x20000024 // 3844 + 3834: 9340 ld.w r2, (r3, 0x0) + 3836: 33fa movi r3, 250 + 3838: 4363 lsli r3, r3, 3 + 383a: b26b st.w r3, (r2, 0x2c) +} + 383c: 07f3 br 0x3822 // 3822 + 383e: 0000 bkpt + 3840: 2000004c .long 0x2000004c + 3844: 20000024 .long 0x20000024 + +Disassembly of section .text.LogicCtrl_Init: + +00003848 : +{ + 3848: 14d1 push r4, r15 + GPIO_Init(GPIOB0,CARD_SENS_PIN,Output); //CARD_SENS + 384a: 108d lrw r4, 0x20000048 // 387c + 384c: 3200 movi r2, 0 + 384e: 9400 ld.w r0, (r4, 0x0) + 3850: 3100 movi r1, 0 + 3852: e3fff29b bsr 0x1d88 // 1d88 + CTRL_CARD_OUT; + 3856: 9400 ld.w r0, (r4, 0x0) + 3858: 3100 movi r1, 0 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Intput); //LED_IN + 385a: 108a lrw r4, 0x2000004c // 3880 + CTRL_CARD_OUT; + 385c: e3fff317 bsr 0x1e8a // 1e8a + GPIO_Init(GPIOA0,LED_INPUT_PIN,Intput); //LED_IN + 3860: 3201 movi r2, 1 + 3862: 9400 ld.w r0, (r4, 0x0) + 3864: 310c movi r1, 12 + 3866: e3fff291 bsr 0x1d88 // 1d88 + g_read.Led_state = READ_LED_IN; + 386a: 9400 ld.w r0, (r4, 0x0) + 386c: 310c movi r1, 12 + 386e: e3fff321 bsr 0x1eb0 // 1eb0 + 3872: 1065 lrw r3, 0x20000234 // 3884 + g_read.last_state = g_read.Led_state; + 3874: a302 st.b r0, (r3, 0x2) + g_read.Led_state = READ_LED_IN; + 3876: a303 st.b r0, (r3, 0x3) +} + 3878: 1491 pop r4, r15 + 387a: 0000 bkpt + 387c: 20000048 .long 0x20000048 + 3880: 2000004c .long 0x2000004c + 3884: 20000234 .long 0x20000234 + +Disassembly of section .text.Debounce_Task: + +00003888 : +void Debounce_Task(void){ + 3888: 14d1 push r4, r15 + if (SysTick_1ms - g_read.read_tick >= 10) { + 388a: 1097 lrw r4, 0x20000234 // 38e4 + 388c: 8445 ld.b r2, (r4, 0x5) + 388e: 8464 ld.b r3, (r4, 0x4) + 3890: 4248 lsli r2, r2, 8 + 3892: 6c8c or r2, r3 + 3894: 8466 ld.b r3, (r4, 0x6) + 3896: 4370 lsli r3, r3, 16 + 3898: 6c8c or r2, r3 + 389a: 8467 ld.b r3, (r4, 0x7) + 389c: 1013 lrw r0, 0x200000b0 // 38e8 + 389e: 4378 lsli r3, r3, 24 + 38a0: 9020 ld.w r1, (r0, 0x0) + 38a2: 6cc8 or r3, r2 + 38a4: 604e subu r1, r3 + 38a6: 3909 cmphsi r1, 10 + 38a8: 0c17 bf 0x38d6 // 38d6 + g_read.read_tick = SysTick_1ms; + 38aa: 9060 ld.w r3, (r0, 0x0) + 38ac: 4b48 lsri r2, r3, 8 + 38ae: a464 st.b r3, (r4, 0x4) + 38b0: a445 st.b r2, (r4, 0x5) + 38b2: 4b50 lsri r2, r3, 16 + 38b4: 4b78 lsri r3, r3, 24 + 38b6: a467 st.b r3, (r4, 0x7) + g_read.read_state = READ_LED_IN; + 38b8: 310c movi r1, 12 + 38ba: 106d lrw r3, 0x2000004c // 38ec + 38bc: 9300 ld.w r0, (r3, 0x0) + g_read.read_tick = SysTick_1ms; + 38be: a446 st.b r2, (r4, 0x6) + g_read.read_state = READ_LED_IN; + 38c0: e3fff2f8 bsr 0x1eb0 // 1eb0 + if (g_read.read_state == g_read.last_state) { + 38c4: 8442 ld.b r2, (r4, 0x2) + 38c6: 640a cmpne r2, r0 + g_read.read_state = READ_LED_IN; + 38c8: a401 st.b r0, (r4, 0x1) + if (g_read.read_state == g_read.last_state) { + 38ca: 0809 bt 0x38dc // 38dc + if (g_read.read_count < debounce_count) { + 38cc: 8460 ld.b r3, (r4, 0x0) + 38ce: 3b02 cmphsi r3, 3 + 38d0: 0804 bt 0x38d8 // 38d8 + g_read.read_count++; + 38d2: 2300 addi r3, 1 + 38d4: a460 st.b r3, (r4, 0x0) +} + 38d6: 1491 pop r4, r15 + g_read.Led_state = g_read.read_state; + 38d8: a443 st.b r2, (r4, 0x3) + 38da: 07fe br 0x38d6 // 38d6 + g_read.read_count=0; + 38dc: 3300 movi r3, 0 + 38de: a460 st.b r3, (r4, 0x0) + g_read.last_state = g_read.read_state; + 38e0: a402 st.b r0, (r4, 0x2) +} + 38e2: 07fa br 0x38d6 // 38d6 + 38e4: 20000234 .long 0x20000234 + 38e8: 200000b0 .long 0x200000b0 + 38ec: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Task: + +000038f0 : +{ + 38f0: 14d2 push r4-r5, r15 + if((CardInfo.BlockSucc==BLOCK_READ_SUCC) && (READ_CARD_STATE == 1)) + 38f2: 107e lrw r3, 0x20000204 // 3968 + 38f4: 8347 ld.b r2, (r3, 0x7) + 38f6: 3a41 cmpnei r2, 1 + 38f8: 6d0f mov r4, r3 + 38fa: 081f bt 0x3938 // 3938 + 38fc: 10bc lrw r5, 0x20000048 // 396c + 38fe: 3100 movi r1, 0 + 3900: 9500 ld.w r0, (r5, 0x0) + 3902: e3fff2df bsr 0x1ec0 // 1ec0 + 3906: 3841 cmpnei r0, 1 + 3908: 0818 bt 0x3938 // 3938 + CTRL_CARD_IN; + 390a: 9500 ld.w r0, (r5, 0x0) + 390c: 3100 movi r1, 0 + 390e: e3fff2c2 bsr 0x1e92 // 1e92 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 3912: 9500 ld.w r0, (r5, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 3914: 3100 movi r1, 0 + 3916: e3fff2d5 bsr 0x1ec0 // 1ec0 + 391a: 6c83 mov r2, r0 + 391c: 1035 lrw r1, 0x483e // 3970 + 391e: 3000 movi r0, 0 + 3920: e3fffbba bsr 0x3094 // 3094 + if(g_read.Led_state == 0x00) + 3924: 1074 lrw r3, 0x20000234 // 3974 + 3926: 8363 ld.b r3, (r3, 0x3) + 3928: 3b40 cmpnei r3, 0 + 392a: 0817 bt 0x3958 // 3958 + GPT0->CMPA = 2000; + 392c: 1073 lrw r3, 0x20000024 // 3978 + 392e: 9340 ld.w r2, (r3, 0x0) + 3930: 33fa movi r3, 250 + 3932: 4363 lsli r3, r3, 3 + 3934: b26b st.w r3, (r2, 0x2c) +} + 3936: 1492 pop r4-r5, r15 + else if((CardInfo.BlockSucc==BLOCK_READ_FAILD) && (READ_CARD_STATE == 0)) + 3938: 8467 ld.b r3, (r4, 0x7) + 393a: 3b40 cmpnei r3, 0 + 393c: 0bf4 bt 0x3924 // 3924 + 393e: 108c lrw r4, 0x20000048 // 396c + 3940: 3100 movi r1, 0 + 3942: 9400 ld.w r0, (r4, 0x0) + 3944: e3fff2be bsr 0x1ec0 // 1ec0 + 3948: 3840 cmpnei r0, 0 + 394a: 0bed bt 0x3924 // 3924 + CTRL_CARD_OUT; + 394c: 9400 ld.w r0, (r4, 0x0) + 394e: 3100 movi r1, 0 + 3950: e3fff29d bsr 0x1e8a // 1e8a + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 3954: 9400 ld.w r0, (r4, 0x0) + 3956: 07df br 0x3914 // 3914 + else if(g_read.Led_state == 0x01) + 3958: 3b41 cmpnei r3, 1 + 395a: 0bee bt 0x3936 // 3936 + GPT0->CMPA = 0; + 395c: 1067 lrw r3, 0x20000024 // 3978 + 395e: 3200 movi r2, 0 + 3960: 9360 ld.w r3, (r3, 0x0) + 3962: b34b st.w r2, (r3, 0x2c) +} + 3964: 07e9 br 0x3936 // 3936 + 3966: 0000 bkpt + 3968: 20000204 .long 0x20000204 + 396c: 20000048 .long 0x20000048 + 3970: 0000483e .long 0x0000483e + 3974: 20000234 .long 0x20000234 + 3978: 20000024 .long 0x20000024 + +Disassembly of section .text.LogicCtrl_NoRF_Init: + +0000397c : + + +///无RF模块的初始化 +void LogicCtrl_NoRF_Init(void) +{ + 397c: 14d1 push r4, r15 + GPIO_Init(GPIOA0,RLY_OUT_PIN,Output); + 397e: 1097 lrw r4, 0x2000004c // 39d8 + 3980: 3200 movi r2, 0 + 3982: 9400 ld.w r0, (r4, 0x0) + 3984: 3100 movi r1, 0 + 3986: e3fff201 bsr 0x1d88 // 1d88 + CTRL_RLY_OFF; + 398a: 9400 ld.w r0, (r4, 0x0) + 398c: 3100 movi r1, 0 + 398e: e3fff27e bsr 0x1e8a // 1e8a + + memset(&dm_in,0,sizeof(DM_IN_INF)); + 3992: 3209 movi r2, 9 + 3994: 3100 movi r1, 0 + 3996: 1012 lrw r0, 0x2000026c // 39dc + 3998: e3ffefe6 bsr 0x1964 // 1964 <__memset_fast> + + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 399c: 9400 ld.w r0, (r4, 0x0) + 399e: 3201 movi r2, 1 + 39a0: 3101 movi r1, 1 + 39a2: e3fff1f3 bsr 0x1d88 // 1d88 + + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 39a6: 3200 movi r2, 0 + 39a8: 9400 ld.w r0, (r4, 0x0) + 39aa: 310c movi r1, 12 + 39ac: e3fff1ee bsr 0x1d88 // 1d88 + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 39b0: 9400 ld.w r0, (r4, 0x0) + 39b2: 310c movi r1, 12 + + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 39b4: 108b lrw r4, 0x2000023c // 39e0 + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 39b6: e3fff26e bsr 0x1e92 // 1e92 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 39ba: 3301 movi r3, 1 + 39bc: 6c13 mov r0, r4 + 39be: 3200 movi r2, 0 + 39c0: 1029 lrw r1, 0x3d50 // 39e4 + 39c2: e00000f5 bsr 0x3bac // 3bac + +// button_attach(&KEY1, LONG_PRESS_START, KEY1_LONG_PRESS_START_Handler); + button_attach(&KEY1, LONG_PRESS_RELEASE, KEY1_LONG_PRESS_RELEASE_Handler); + 39c6: 1049 lrw r2, 0x37a8 // 39e8 + 39c8: 3107 movi r1, 7 + 39ca: 6c13 mov r0, r4 + 39cc: e000010d bsr 0x3be6 // 3be6 + button_start(&KEY1); + 39d0: 6c13 mov r0, r4 + 39d2: e000019f bsr 0x3d10 // 3d10 +} + 39d6: 1491 pop r4, r15 + 39d8: 2000004c .long 0x2000004c + 39dc: 2000026c .long 0x2000026c + 39e0: 2000023c .long 0x2000023c + 39e4: 00003d50 .long 0x00003d50 + 39e8: 000037a8 .long 0x000037a8 + +Disassembly of section .text.LogicCtrl_NoRF_Task: + +000039ec : + + +///无RF模块的轮询任务 +void LogicCtrl_NoRF_Task(void) +{ + 39ec: 14d3 push r4-r6, r15 + static U32_T card_tick = 0; + static U32_T test_tick = 0; + + if(SysTick_1ms - test_tick > 5) + 39ee: 11ab lrw r5, 0x200000b0 // 3a98 + 39f0: 118b lrw r4, 0x200000c8 // 3a9c + 39f2: 9560 ld.w r3, (r5, 0x0) + 39f4: 9441 ld.w r2, (r4, 0x4) + 39f6: 60ca subu r3, r2 + 39f8: 3b05 cmphsi r3, 6 + 39fa: 0c05 bf 0x3a04 // 3a04 + { + test_tick = SysTick_1ms; + 39fc: 9560 ld.w r3, (r5, 0x0) + 39fe: b461 st.w r3, (r4, 0x4) + button_ticks(); + 3a00: e000019a bsr 0x3d34 // 3d34 + } + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 3a04: 11c7 lrw r6, 0x20000204 // 3aa0 + 3a06: 8667 ld.b r3, (r6, 0x7) + 3a08: 3b41 cmpnei r3, 1 + 3a0a: 0833 bt 0x3a70 // 3a70 + 3a0c: e3fffebe bsr 0x3788 // 3788 + { + RLY_Light_Ctrl(1); + LED_STATE = 1; + 3a10: 3301 movi r3, 1 + 3a12: a460 st.b r3, (r4, 0x0) + card_tick = SysTick_1ms; + 3a14: 9560 ld.w r3, (r5, 0x0) + 3a16: b462 st.w r3, (r4, 0x8) + dm_in.DM_State = 0x00; + 3a18: 3200 movi r2, 0 + 3a1a: 1163 lrw r3, 0x2000026c // 3aa4 + 3a1c: a340 st.b r2, (r3, 0x0) + LED_STATE =2; +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card OUT RLY OFF"); + } + + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 3a1e: 8667 ld.b r3, (r6, 0x7) + 3a20: 3b40 cmpnei r3, 0 + 3a22: 0826 bt 0x3a6e // 3a6e + { + + if((dm_in.DM_State == 0x02) && (SysTick_1ms - dm_in.DM_Tick >= 30000)) + 3a24: 1160 lrw r3, 0x2000026c // 3aa4 + 3a26: 8340 ld.b r2, (r3, 0x0) + 3a28: 3a42 cmpnei r2, 2 + 3a2a: 0822 bt 0x3a6e // 3a6e + 3a2c: 8322 ld.b r1, (r3, 0x2) + 3a2e: 8341 ld.b r2, (r3, 0x1) + 3a30: 4128 lsli r1, r1, 8 + 3a32: 6c48 or r1, r2 + 3a34: 8343 ld.b r2, (r3, 0x3) + 3a36: 4250 lsli r2, r2, 16 + 3a38: 6c48 or r1, r2 + 3a3a: 8344 ld.b r2, (r3, 0x4) + 3a3c: 4258 lsli r2, r2, 24 + 3a3e: 6c84 or r2, r1 + 3a40: 9500 ld.w r0, (r5, 0x0) + 3a42: 600a subu r0, r2 + 3a44: 1059 lrw r2, 0x752f // 3aa8 + 3a46: 6408 cmphs r2, r0 + 3a48: 0813 bt 0x3a6e // 3a6e + { + dm_in.DM_Tick = SysTick_1ms; + 3a4a: 9540 ld.w r2, (r5, 0x0) + 3a4c: 5b22 addi r1, r3, 1 + 3a4e: a341 st.b r2, (r3, 0x1) + 3a50: 4a68 lsri r3, r2, 8 + 3a52: a161 st.b r3, (r1, 0x1) + RLY_Light_Ctrl(0); + 3a54: 3000 movi r0, 0 + dm_in.DM_Tick = SysTick_1ms; + 3a56: 4a70 lsri r3, r2, 16 + 3a58: 4a58 lsri r2, r2, 24 + 3a5a: a162 st.b r3, (r1, 0x2) + 3a5c: a143 st.b r2, (r1, 0x3) + RLY_Light_Ctrl(0); + 3a5e: e3fffedd bsr 0x3818 // 3818 + LED_STATE = 3; + 3a62: 3303 movi r3, 3 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 3a64: 1032 lrw r1, 0x4863 // 3aac + 3a66: 3000 movi r0, 0 + LED_STATE = 3; + 3a68: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 3a6a: e3fffb15 bsr 0x3094 // 3094 + } + } +} + 3a6e: 1493 pop r4-r6, r15 + else if((CardInfo.BlockSucc == BLOCK_READ_FAILD) && (dm_in.DM_State == 0x00) && (SysTick_1ms - card_tick >= 40000)) + 3a70: 3b40 cmpnei r3, 0 + 3a72: 0bd6 bt 0x3a1e // 3a1e + 3a74: 106c lrw r3, 0x2000026c // 3aa4 + 3a76: 8360 ld.b r3, (r3, 0x0) + 3a78: 3b40 cmpnei r3, 0 + 3a7a: 0bd2 bt 0x3a1e // 3a1e + 3a7c: 9442 ld.w r2, (r4, 0x8) + 3a7e: 9560 ld.w r3, (r5, 0x0) + 3a80: 60ca subu r3, r2 + 3a82: 104c lrw r2, 0x9c3f // 3ab0 + 3a84: 64c8 cmphs r2, r3 + 3a86: 0bcc bt 0x3a1e // 3a1e + card_tick = SysTick_1ms; + 3a88: 9560 ld.w r3, (r5, 0x0) + RLY_Light_Ctrl(0); + 3a8a: 3000 movi r0, 0 + card_tick = SysTick_1ms; + 3a8c: b462 st.w r3, (r4, 0x8) + RLY_Light_Ctrl(0); + 3a8e: e3fffec5 bsr 0x3818 // 3818 + LED_STATE =2; + 3a92: 3302 movi r3, 2 + 3a94: a460 st.b r3, (r4, 0x0) + 3a96: 07c4 br 0x3a1e // 3a1e + 3a98: 200000b0 .long 0x200000b0 + 3a9c: 200000c8 .long 0x200000c8 + 3aa0: 20000204 .long 0x20000204 + 3aa4: 2000026c .long 0x2000026c + 3aa8: 0000752f .long 0x0000752f + 3aac: 00004863 .long 0x00004863 + 3ab0: 00009c3f .long 0x00009c3f + +Disassembly of section .text.Detect_WIFI_Task: + +00003ab4 : +// Ctrl_Backlight(0); //关背光 +//// Dbg_Println(DBG_BIT_SYS_STATUS, "LogicCtrl_Task Backlight OFF"); +// } +} + +void Detect_WIFI_Task(void){ + 3ab4: 14d1 push r4, r15 + + if (finish_flag == 1) return; + 3ab6: 107c lrw r3, 0x2000009e // 3b24 + 3ab8: 8340 ld.b r2, (r3, 0x0) + 3aba: 3a41 cmpnei r2, 1 + 3abc: 0c1c bf 0x3af4 // 3af4 + + if (detect_count <10) { + 3abe: 109b lrw r4, 0x200000a4 // 3b28 + 3ac0: 8440 ld.b r2, (r4, 0x0) + 3ac2: 3a09 cmphsi r2, 10 + 3ac4: 081c bt 0x3afc // 3afc + if(SysTick_1ms - detect_tick >= 10) { + 3ac6: 103a lrw r1, 0x200000b0 // 3b2c + 3ac8: 105a lrw r2, 0x200000a0 // 3b30 + 3aca: 9160 ld.w r3, (r1, 0x0) + 3acc: 9200 ld.w r0, (r2, 0x0) + 3ace: 60c2 subu r3, r0 + 3ad0: 3b09 cmphsi r3, 10 + 3ad2: 0c11 bf 0x3af4 // 3af4 + detect_tick = SysTick_1ms; + 3ad4: 9160 ld.w r3, (r1, 0x0) + 3ad6: b260 st.w r3, (r2, 0x0) + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 3ad8: 3102 movi r1, 2 + 3ada: 1077 lrw r3, 0x20000048 // 3b34 + 3adc: 9300 ld.w r0, (r3, 0x0) + 3ade: e3fff1e9 bsr 0x1eb0 // 1eb0 + 3ae2: 1076 lrw r3, 0x2000009c // 3b38 + 3ae4: a300 st.b r0, (r3, 0x0) + + if (last_state != rf_exist) { + 3ae6: 1076 lrw r3, 0x2000009d // 3b3c + 3ae8: 8340 ld.b r2, (r3, 0x0) + 3aea: 640a cmpne r2, r0 + 3aec: 0c05 bf 0x3af6 // 3af6 + last_state = rf_exist; + 3aee: a300 st.b r0, (r3, 0x0) + detect_count = 0; + 3af0: 3300 movi r3, 0 + }else { + detect_count++; + 3af2: a460 st.b r3, (r4, 0x0) + { + LogicCtrl_Init(); + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + } + } +} + 3af4: 1491 pop r4, r15 + detect_count++; + 3af6: 8460 ld.b r3, (r4, 0x0) + 3af8: 2300 addi r3, 1 + 3afa: 07fc br 0x3af2 // 3af2 + finish_flag = 1; + 3afc: 3201 movi r2, 1 + 3afe: a340 st.b r2, (r3, 0x0) + if(rf_exist == 0x01) //不带无线模块初始化 + 3b00: 106e lrw r3, 0x2000009c // 3b38 + 3b02: 8360 ld.b r3, (r3, 0x0) + 3b04: 3b41 cmpnei r3, 1 + 3b06: 0808 bt 0x3b16 // 3b16 + LogicCtrl_NoRF_Init(); + 3b08: e3ffff3a bsr 0x397c // 397c + Dbg_Println(DBG_BIT_SYS_STATUS, "NoRF"); + 3b0c: 102d lrw r1, 0x4874 // 3b40 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 3b0e: 3000 movi r0, 0 + 3b10: e3fffac2 bsr 0x3094 // 3094 + 3b14: 07f0 br 0x3af4 // 3af4 + else if(rf_exist == 0x00) //带无线模块初始化 + 3b16: 3b40 cmpnei r3, 0 + 3b18: 0bee bt 0x3af4 // 3af4 + LogicCtrl_Init(); + 3b1a: e3fffe97 bsr 0x3848 // 3848 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 3b1e: 102a lrw r1, 0x4876 // 3b44 + 3b20: 07f7 br 0x3b0e // 3b0e + 3b22: 0000 bkpt + 3b24: 2000009e .long 0x2000009e + 3b28: 200000a4 .long 0x200000a4 + 3b2c: 200000b0 .long 0x200000b0 + 3b30: 200000a0 .long 0x200000a0 + 3b34: 20000048 .long 0x20000048 + 3b38: 2000009c .long 0x2000009c + 3b3c: 2000009d .long 0x2000009d + 3b40: 00004874 .long 0x00004874 + 3b44: 00004876 .long 0x00004876 + +Disassembly of section .text.DM_Led_Task: + +00003b48 : + +void DM_Led_Task(void){ + 3b48: 14d1 push r4, r15 +// } +// }else { +// GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); +// } + + if (CardInfo.RC522_Reset_Falg == 1) { + 3b4a: 1074 lrw r3, 0x20000224 // 3b98 + 3b4c: 8368 ld.b r3, (r3, 0x8) + 3b4e: 3b41 cmpnei r3, 1 + 3b50: 1073 lrw r3, 0x2000026c // 3b9c + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) { + 3b52: 8326 ld.b r1, (r3, 0x6) + 3b54: 8345 ld.b r2, (r3, 0x5) + 3b56: 4128 lsli r1, r1, 8 + 3b58: 6c48 or r1, r2 + 3b5a: 8347 ld.b r2, (r3, 0x7) + 3b5c: 4250 lsli r2, r2, 16 + 3b5e: 6c48 or r1, r2 + 3b60: 8348 ld.b r2, (r3, 0x8) + 3b62: 1010 lrw r0, 0x200000b0 // 3ba0 + 3b64: 4258 lsli r2, r2, 24 + 3b66: 9080 ld.w r4, (r0, 0x0) + 3b68: 6c84 or r2, r1 + 3b6a: 610a subu r4, r2 + if (CardInfo.RC522_Reset_Falg == 1) { + 3b6c: 0813 bt 0x3b92 // 3b92 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) { + 3b6e: 3263 movi r2, 99 + dm_in.DM_Led_Tick = SysTick_1ms; + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + } + }else { + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) { + 3b70: 6508 cmphs r2, r4 + 3b72: 080f bt 0x3b90 // 3b90 + dm_in.DM_Led_Tick = SysTick_1ms; + 3b74: 9040 ld.w r2, (r0, 0x0) + 3b76: 5b32 addi r1, r3, 5 + 3b78: a345 st.b r2, (r3, 0x5) + 3b7a: 4a68 lsri r3, r2, 8 + 3b7c: a161 st.b r3, (r1, 0x1) + 3b7e: 4a70 lsri r3, r2, 16 + 3b80: a162 st.b r3, (r1, 0x2) + 3b82: 4a58 lsri r2, r2, 24 + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 3b84: 1068 lrw r3, 0x2000004c // 3ba4 + 3b86: 9300 ld.w r0, (r3, 0x0) + dm_in.DM_Led_Tick = SysTick_1ms; + 3b88: a143 st.b r2, (r1, 0x3) + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 3b8a: 310c movi r1, 12 + 3b8c: e3fff187 bsr 0x1e9a // 1e9a + } + } + 3b90: 1491 pop r4, r15 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) { + 3b92: 1046 lrw r2, 0x1f3 // 3ba8 + 3b94: 07ee br 0x3b70 // 3b70 + 3b96: 0000 bkpt + 3b98: 20000224 .long 0x20000224 + 3b9c: 2000026c .long 0x2000026c + 3ba0: 200000b0 .long 0x200000b0 + 3ba4: 2000004c .long 0x2000004c + 3ba8: 000001f3 .long 0x000001f3 + +Disassembly of section .text.button_init: + +00003bac : + * @param active_level: pressed GPIO level. + * @param button_id: the button id. + * @retval None + */ +void button_init(struct Button* handle, uint8_t(*pin_level)(uint8_t), uint8_t active_level, uint8_t button_id) +{ + 3bac: 14d4 push r4-r7, r15 + 3bae: 6dc7 mov r7, r1 + 3bb0: 6d8b mov r6, r2 + memset(handle, 0, sizeof(struct Button)); + 3bb2: 3100 movi r1, 0 + 3bb4: 3230 movi r2, 48 +{ + 3bb6: 6d03 mov r4, r0 + 3bb8: 6d4f mov r5, r3 + memset(handle, 0, sizeof(struct Button)); + 3bba: e3ffeed5 bsr 0x1964 // 1964 <__memset_fast> + handle->event = (uint8_t)NONE_PRESS; + 3bbe: 3300 movi r3, 0 + 3bc0: 2b6f subi r3, 112 + 3bc2: a462 st.b r3, (r4, 0x2) + handle->hal_button_Level = pin_level; + 3bc4: b4e2 st.w r7, (r4, 0x8) + handle->button_level = handle->hal_button_Level(button_id); + 3bc6: 6c17 mov r0, r5 + 3bc8: 7bdd jsr r7 + 3bca: 8443 ld.b r2, (r4, 0x3) + 3bcc: 337f movi r3, 127 + 3bce: 688c and r2, r3 + 3bd0: 4007 lsli r0, r0, 7 + 3bd2: 6c08 or r0, r2 + handle->active_level = active_level; + 3bd4: 3201 movi r2, 1 + 3bd6: 6988 and r6, r2 + 3bd8: 7480 zextb r2, r0 + 3bda: 46c6 lsli r6, r6, 6 + 3bdc: 3a86 bclri r2, 6 + 3bde: 6c98 or r2, r6 + 3be0: a443 st.b r2, (r4, 0x3) + handle->button_id = button_id; + 3be2: a4a4 st.b r5, (r4, 0x4) +} + 3be4: 1494 pop r4-r7, r15 + +Disassembly of section .text.button_attach: + +00003be6 : + * @param cb: callback function. + * @retval None + */ +void button_attach(struct Button* handle, PressEvent event, BtnCallback cb) +{ + handle->cb[event] = cb; + 3be6: 2102 addi r1, 3 + 3be8: 4122 lsli r1, r1, 2 + 3bea: 6040 addu r1, r0 + 3bec: b140 st.w r2, (r1, 0x0) +} + 3bee: 783c jmp r15 + +Disassembly of section .text.button_handler: + +00003bf0 : + + + + +void button_handler(struct Button* handle) +{ + 3bf0: 14d3 push r4-r6, r15 + 3bf2: 6d03 mov r4, r0 + uint8_t read_gpio_level = handle->hal_button_Level(handle->button_id); + 3bf4: 9462 ld.w r3, (r4, 0x8) + 3bf6: 8004 ld.b r0, (r0, 0x4) + 3bf8: 7bcd jsr r3 + + //ticks counter working.. + if((handle->state) > 0) handle->ticks++; + 3bfa: 8463 ld.b r3, (r4, 0x3) + 3bfc: 433d lsli r1, r3, 29 + 3bfe: 493d lsri r1, r1, 29 + 3c00: 3940 cmpnei r1, 0 + 3c02: 0c04 bf 0x3c0a // 3c0a + 3c04: 8c40 ld.h r2, (r4, 0x0) + 3c06: 2200 addi r2, 1 + 3c08: ac40 st.h r2, (r4, 0x0) + + /*------------button debounce handle---------------*/ + if(read_gpio_level != handle->button_level) { //not equal to prev one + 3c0a: 4b47 lsri r2, r3, 7 + 3c0c: 640a cmpne r2, r0 + 3c0e: 0c21 bf 0x3c50 // 3c50 + //continue read 3 times same new level change + if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) { + 3c10: 435a lsli r2, r3, 26 + 3c12: 4a5d lsri r2, r2, 29 + 3c14: 3507 movi r5, 7 + 3c16: 2200 addi r2, 1 + 3c18: 6894 and r2, r5 + 3c1a: 7488 zextb r2, r2 + 3c1c: 6948 and r5, r2 + 3c1e: 45c3 lsli r6, r5, 3 + 3c20: 3538 movi r5, 56 + 3c22: 68d5 andn r3, r5 + 3c24: 6d8c or r6, r3 + 3c26: 3a02 cmphsi r2, 3 + 3c28: a4c3 st.b r6, (r4, 0x3) + 3c2a: 0c09 bf 0x3c3c // 3c3c + handle->button_level = read_gpio_level; + 3c2c: 4067 lsli r3, r0, 7 + 3c2e: 327f movi r2, 127 + 3c30: 8403 ld.b r0, (r4, 0x3) + 3c32: 6808 and r0, r2 + 3c34: 6c0c or r0, r3 + handle->debounce_cnt = 0; + 3c36: 7400 zextb r0, r0 + 3c38: 6815 andn r0, r5 + 3c3a: a403 st.b r0, (r4, 0x3) + } else { //leved not change ,counter reset. + handle->debounce_cnt = 0; + } + + /*-----------------State machine-------------------*/ + switch (handle->state) { + 3c3c: 3941 cmpnei r1, 1 + 3c3e: 0c2f bf 0x3c9c // 3c9c + 3c40: 3940 cmpnei r1, 0 + 3c42: 0c0b bf 0x3c58 // 3c58 + 3c44: 3945 cmpnei r1, 5 + 3c46: 0c53 bf 0x3cec // 3cec +// Dbg_Println(DBG_BIT_SYS_STATUS,"key state long press release"); + handle->state = 0; //reset + } + break; + default: + handle->state = 0; //reset + 3c48: 8463 ld.b r3, (r4, 0x3) + 3c4a: 3207 movi r2, 7 + 3c4c: 68c9 andn r3, r2 + 3c4e: 0420 br 0x3c8e // 3c8e + handle->debounce_cnt = 0; + 3c50: 3238 movi r2, 56 + 3c52: 68c9 andn r3, r2 + 3c54: a463 st.b r3, (r4, 0x3) + 3c56: 07f3 br 0x3c3c // 3c3c + if(handle->button_level == handle->active_level) { //start press down + 3c58: 8463 ld.b r3, (r4, 0x3) + 3c5a: 4359 lsli r2, r3, 25 + 3c5c: 4a5f lsri r2, r2, 31 + 3c5e: 4b67 lsri r3, r3, 7 + 3c60: 648e cmpne r3, r2 + 3c62: 8462 ld.b r3, (r4, 0x2) + handle->event = (uint8_t)PRESS_DOWN; + 3c64: 320f movi r2, 15 + 3c66: 68c8 and r3, r2 + if(handle->button_level == handle->active_level) { //start press down + 3c68: 0815 bt 0x3c92 // 3c92 + handle->event = (uint8_t)PRESS_DOWN; + 3c6a: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_DOWN); + 3c6c: 9463 ld.w r3, (r4, 0xc) + 3c6e: 3b40 cmpnei r3, 0 + 3c70: 0c03 bf 0x3c76 // 3c76 + 3c72: 6c13 mov r0, r4 + 3c74: 7bcd jsr r3 + handle->ticks = 0; + 3c76: 3300 movi r3, 0 + handle->repeat = 1; + 3c78: 8442 ld.b r2, (r4, 0x2) + handle->ticks = 0; + 3c7a: ac60 st.h r3, (r4, 0x0) + handle->repeat = 1; + 3c7c: 330f movi r3, 15 + 3c7e: 688d andn r2, r3 + 3c80: 3101 movi r1, 1 + 3c82: 6c84 or r2, r1 + 3c84: a442 st.b r2, (r4, 0x2) + handle->state = 1; + 3c86: 8463 ld.b r3, (r4, 0x3) + 3c88: 3207 movi r2, 7 + 3c8a: 68c9 andn r3, r2 + 3c8c: 6cc4 or r3, r1 + handle->state = 0; //reset + 3c8e: a463 st.b r3, (r4, 0x3) + break; + } +} + 3c90: 0405 br 0x3c9a // 3c9a + handle->event = (uint8_t)NONE_PRESS; + 3c92: 3200 movi r2, 0 + 3c94: 2a6f subi r2, 112 + 3c96: 6cc8 or r3, r2 + 3c98: a462 st.b r3, (r4, 0x2) +} + 3c9a: 1493 pop r4-r6, r15 + if(handle->button_level != handle->active_level) { //released press up + 3c9c: 8463 ld.b r3, (r4, 0x3) + 3c9e: 4359 lsli r2, r3, 25 + 3ca0: 4a5f lsri r2, r2, 31 + 3ca2: 4b67 lsri r3, r3, 7 + 3ca4: 648e cmpne r3, r2 + 3ca6: 0c0e bf 0x3cc2 // 3cc2 + handle->event = (uint8_t)PRESS_UP; + 3ca8: 8462 ld.b r3, (r4, 0x2) + 3caa: 320f movi r2, 15 + 3cac: 68c8 and r3, r2 + 3cae: 3ba4 bseti r3, 4 + 3cb0: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_UP); + 3cb2: 9464 ld.w r3, (r4, 0x10) + 3cb4: 3b40 cmpnei r3, 0 + 3cb6: 0c03 bf 0x3cbc // 3cbc + 3cb8: 6c13 mov r0, r4 + 3cba: 7bcd jsr r3 + handle->ticks = 0; + 3cbc: 3300 movi r3, 0 + 3cbe: ac60 st.h r3, (r4, 0x0) + 3cc0: 07c4 br 0x3c48 // 3c48 + } else if(handle->ticks > LONG_TICKS) { + 3cc2: 8c40 ld.h r2, (r4, 0x0) + 3cc4: 33c8 movi r3, 200 + 3cc6: 648c cmphs r3, r2 + 3cc8: 0be9 bt 0x3c9a // 3c9a + handle->event = (uint8_t)LONG_PRESS_START; + 3cca: 8462 ld.b r3, (r4, 0x2) + 3ccc: 320f movi r2, 15 + 3cce: 68c8 and r3, r2 + 3cd0: 3ba4 bseti r3, 4 + 3cd2: 3ba6 bseti r3, 6 + 3cd4: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_START); + 3cd6: 9468 ld.w r3, (r4, 0x20) + 3cd8: 3b40 cmpnei r3, 0 + 3cda: 0c03 bf 0x3ce0 // 3ce0 + 3cdc: 6c13 mov r0, r4 + 3cde: 7bcd jsr r3 + handle->state = 5; + 3ce0: 8463 ld.b r3, (r4, 0x3) + 3ce2: 3207 movi r2, 7 + 3ce4: 68c9 andn r3, r2 + 3ce6: 3ba0 bseti r3, 0 + 3ce8: 3ba2 bseti r3, 2 + 3cea: 07d2 br 0x3c8e // 3c8e + if(handle->button_level == handle->active_level) { + 3cec: 8463 ld.b r3, (r4, 0x3) + 3cee: 4359 lsli r2, r3, 25 + 3cf0: 4a5f lsri r2, r2, 31 + 3cf2: 4b67 lsri r3, r3, 7 + 3cf4: 648e cmpne r3, r2 + 3cf6: 0fd2 bf 0x3c9a // 3c9a + handle->event = (uint8_t)LONG_PRESS_RELEASE; + 3cf8: 8462 ld.b r3, (r4, 0x2) + 3cfa: 320f movi r2, 15 + 3cfc: 68c8 and r3, r2 + 3cfe: 3270 movi r2, 112 + 3d00: 6cc8 or r3, r2 + 3d02: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_RELEASE); + 3d04: 946a ld.w r3, (r4, 0x28) + 3d06: 3b40 cmpnei r3, 0 + 3d08: 0fa0 bf 0x3c48 // 3c48 + 3d0a: 6c13 mov r0, r4 + 3d0c: 7bcd jsr r3 + 3d0e: 079d br 0x3c48 // 3c48 + +Disassembly of section .text.button_start: + +00003d10 : + * @param handle: target handle strcut. + * @retval 0: succeed. -1: already exist. + */ +int button_start(struct Button* handle) +{ + struct Button* target = head_handle; + 3d10: 1068 lrw r3, 0x200000d4 // 3d30 + 3d12: 9320 ld.w r1, (r3, 0x0) + 3d14: 6c87 mov r2, r1 + while(target) { + 3d16: 3a40 cmpnei r2, 0 + 3d18: 0805 bt 0x3d22 // 3d22 + if(target == handle) return -1; //already exist. + target = target->next; + } + handle->next = head_handle; + 3d1a: b02b st.w r1, (r0, 0x2c) + head_handle = handle; + 3d1c: b300 st.w r0, (r3, 0x0) + return 0; + 3d1e: 3000 movi r0, 0 +} + 3d20: 783c jmp r15 + if(target == handle) return -1; //already exist. + 3d22: 640a cmpne r2, r0 + 3d24: 0c03 bf 0x3d2a // 3d2a + target = target->next; + 3d26: 924b ld.w r2, (r2, 0x2c) + 3d28: 07f7 br 0x3d16 // 3d16 + if(target == handle) return -1; //already exist. + 3d2a: 3000 movi r0, 0 + 3d2c: 2800 subi r0, 1 + 3d2e: 07f9 br 0x3d20 // 3d20 + 3d30: 200000d4 .long 0x200000d4 + +Disassembly of section .text.button_ticks: + +00003d34 : + * @brief background ticks, timer repeat invoking interval 5ms. + * @param None. + * @retval None + */ +void button_ticks() +{ + 3d34: 14d1 push r4, r15 + struct Button* target; + for(target=head_handle; target; target=target->next) { + 3d36: 1066 lrw r3, 0x200000d4 // 3d4c + 3d38: 9380 ld.w r4, (r3, 0x0) + 3d3a: 3c40 cmpnei r4, 0 + 3d3c: 0802 bt 0x3d40 // 3d40 + button_handler(target); + } +} + 3d3e: 1491 pop r4, r15 + button_handler(target); + 3d40: 6c13 mov r0, r4 + 3d42: e3ffff57 bsr 0x3bf0 // 3bf0 + for(target=head_handle; target; target=target->next) { + 3d46: 948b ld.w r4, (r4, 0x2c) + 3d48: 07f9 br 0x3d3a // 3d3a + 3d4a: 0000 bkpt + 3d4c: 200000d4 .long 0x200000d4 + +Disassembly of section .text.read_button_GPIO: + +00003d50 : + +//////////////////////////////////////////////////////////////////////// + + +uint8_t read_button_GPIO(uint8_t button_id) +{ + 3d50: 14d0 push r15 + uint8_t state = 0; + state = GPIO_Read_Status(GPIOA0,button_id); + 3d52: 1064 lrw r3, 0x2000004c // 3d60 +{ + 3d54: 6c43 mov r1, r0 + state = GPIO_Read_Status(GPIOA0,button_id); + 3d56: 9300 ld.w r0, (r3, 0x0) + 3d58: e3fff0ac bsr 0x1eb0 // 1eb0 + return state; + 3d5c: 1490 pop r15 + 3d5e: 0000 bkpt + 3d60: 2000004c .long 0x2000004c + +Disassembly of section .text.TK_Sampling_prog: + +00003d64 : + 3d64: 14c4 push r4-r7 + 3d66: 1072 lrw r3, 0x20000054 // 3dac + 3d68: 1012 lrw r0, 0x2000051e // 3db0 + 3d6a: 1093 lrw r4, 0x2000038f // 3db4 + 3d6c: 6d83 mov r6, r0 + 3d6e: 93a0 ld.w r5, (r3, 0x0) + 3d70: 3300 movi r3, 0 + 3d72: 4342 lsli r2, r3, 2 + 3d74: 6094 addu r2, r5 + 3d76: 9220 ld.w r1, (r2, 0x0) + 3d78: 4341 lsli r2, r3, 1 + 3d7a: 6080 addu r2, r0 + 3d7c: 7445 zexth r1, r1 + 3d7e: aa20 st.h r1, (r2, 0x0) + 3d80: 8440 ld.b r2, (r4, 0x0) + 3d82: 3a41 cmpnei r2, 1 + 3d84: 080f bt 0x3da2 // 3da2 + 3d86: 3300 movi r3, 0 + 3d88: 10ec lrw r7, 0x20000278 // 3db8 + 3d8a: 4341 lsli r2, r3, 1 + 3d8c: 5e28 addu r1, r6, r2 + 3d8e: 8920 ld.h r1, (r1, 0x0) + 3d90: 2300 addi r3, 1 + 3d92: 7445 zexth r1, r1 + 3d94: 609c addu r2, r7 + 3d96: 3b51 cmpnei r3, 17 + 3d98: aa20 st.h r1, (r2, 0x0) + 3d9a: 0bf8 bt 0x3d8a // 3d8a + 3d9c: 3300 movi r3, 0 + 3d9e: a460 st.b r3, (r4, 0x0) + 3da0: 3311 movi r3, 17 + 3da2: 2300 addi r3, 1 + 3da4: 74cc zextb r3, r3 + 3da6: 3b10 cmphsi r3, 17 + 3da8: 0fe5 bf 0x3d72 // 3d72 + 3daa: 1484 pop r4-r7 + 3dac: 20000054 .long 0x20000054 + 3db0: 2000051e .long 0x2000051e + 3db4: 2000038f .long 0x2000038f + 3db8: 20000278 .long 0x20000278 + +Disassembly of section .text.TKEYIntHandler: + +00003dbc : + 3dbc: 1460 nie + 3dbe: 1462 ipush + 3dc0: 14d1 push r4, r15 + 3dc2: 109e lrw r4, 0x20000068 // 3e38 + 3dc4: 9460 ld.w r3, (r4, 0x0) + 3dc6: 3b40 cmpnei r3, 0 + 3dc8: 080b bt 0x3dde // 3dde + 3dca: 3301 movi r3, 1 + 3dcc: b460 st.w r3, (r4, 0x0) + 3dce: 107c lrw r3, 0x2000030c // 3e3c + 3dd0: 8360 ld.b r3, (r3, 0x0) + 3dd2: 3b41 cmpnei r3, 1 + 3dd4: 0805 bt 0x3dde // 3dde + 3dd6: e3ffffc7 bsr 0x3d64 // 3d64 + 3dda: 3301 movi r3, 1 + 3ddc: a464 st.b r3, (r4, 0x4) + 3dde: 1079 lrw r3, 0x20000058 // 3e40 + 3de0: 3101 movi r1, 1 + 3de2: 9360 ld.w r3, (r3, 0x0) + 3de4: 934a ld.w r2, (r3, 0x28) + 3de6: 6884 and r2, r1 + 3de8: 3a40 cmpnei r2, 0 + 3dea: 0c02 bf 0x3dee // 3dee + 3dec: b32c st.w r1, (r3, 0x30) + 3dee: 934a ld.w r2, (r3, 0x28) + 3df0: 3102 movi r1, 2 + 3df2: 6884 and r2, r1 + 3df4: 3a40 cmpnei r2, 0 + 3df6: 0c02 bf 0x3dfa // 3dfa + 3df8: b32c st.w r1, (r3, 0x30) + 3dfa: 934a ld.w r2, (r3, 0x28) + 3dfc: 3104 movi r1, 4 + 3dfe: 6884 and r2, r1 + 3e00: 3a40 cmpnei r2, 0 + 3e02: 0c02 bf 0x3e06 // 3e06 + 3e04: b32c st.w r1, (r3, 0x30) + 3e06: 934a ld.w r2, (r3, 0x28) + 3e08: 3108 movi r1, 8 + 3e0a: 6884 and r2, r1 + 3e0c: 3a40 cmpnei r2, 0 + 3e0e: 0c02 bf 0x3e12 // 3e12 + 3e10: b32c st.w r1, (r3, 0x30) + 3e12: 934a ld.w r2, (r3, 0x28) + 3e14: 3110 movi r1, 16 + 3e16: 6884 and r2, r1 + 3e18: 3a40 cmpnei r2, 0 + 3e1a: 0c02 bf 0x3e1e // 3e1e + 3e1c: b32c st.w r1, (r3, 0x30) + 3e1e: 934a ld.w r2, (r3, 0x28) + 3e20: 3120 movi r1, 32 + 3e22: 6884 and r2, r1 + 3e24: 3a40 cmpnei r2, 0 + 3e26: 0c02 bf 0x3e2a // 3e2a + 3e28: b32c st.w r1, (r3, 0x30) + 3e2a: d9ee2001 ld.w r15, (r14, 0x4) + 3e2e: 9880 ld.w r4, (r14, 0x0) + 3e30: 1402 addi r14, r14, 8 + 3e32: 1463 ipop + 3e34: 1461 nir + 3e36: 0000 bkpt + 3e38: 20000068 .long 0x20000068 + 3e3c: 2000030c .long 0x2000030c + 3e40: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00003e44 : + 3e44: 14c2 push r4-r5 + 3e46: 3200 movi r2, 0 + 3e48: 3000 movi r0, 0 + 3e4a: 1088 lrw r4, 0x200003ac // 3e68 + 3e4c: 3501 movi r5, 1 + 3e4e: 3120 movi r1, 32 + 3e50: 9460 ld.w r3, (r4, 0x0) + 3e52: 70c9 lsr r3, r2 + 3e54: 68d4 and r3, r5 + 3e56: 3b40 cmpnei r3, 0 + 3e58: 0c02 bf 0x3e5c // 3e5c + 3e5a: 2000 addi r0, 1 + 3e5c: 2200 addi r2, 1 + 3e5e: 644a cmpne r2, r1 + 3e60: 0bf8 bt 0x3e50 // 3e50 + 3e62: 7400 zextb r0, r0 + 3e64: 1482 pop r4-r5 + 3e66: 0000 bkpt + 3e68: 200003ac .long 0x200003ac + +Disassembly of section .text.TK_Scan_Start: + +00003e6c : + 3e6c: 1046 lrw r2, 0x20000068 // 3e84 + 3e6e: 8264 ld.b r3, (r2, 0x4) + 3e70: 74cc zextb r3, r3 + 3e72: 3b41 cmpnei r3, 1 + 3e74: 0807 bt 0x3e82 // 3e82 + 3e76: 1025 lrw r1, 0x20000058 // 3e88 + 3e78: 9120 ld.w r1, (r1, 0x0) + 3e7a: b162 st.w r3, (r1, 0x8) + 3e7c: 3300 movi r3, 0 + 3e7e: b260 st.w r3, (r2, 0x0) + 3e80: a264 st.b r3, (r2, 0x4) + 3e82: 783c jmp r15 + 3e84: 20000068 .long 0x20000068 + 3e88: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00003e8c : + 3e8c: 14d4 push r4-r7, r15 + 3e8e: 1425 subi r14, r14, 20 + 3e90: 1271 lrw r3, 0x20000104 // 3fd4 + 3e92: 8360 ld.b r3, (r3, 0x0) + 3e94: b860 st.w r3, (r14, 0x0) + 3e96: 3400 movi r4, 0 + 3e98: 1270 lrw r3, 0x200000d8 // 3fd8 + 3e9a: 8360 ld.b r3, (r3, 0x0) + 3e9c: b861 st.w r3, (r14, 0x4) + 3e9e: 12f0 lrw r7, 0x20000322 // 3fdc + 3ea0: 1270 lrw r3, 0x200000e1 // 3fe0 + 3ea2: 83a0 ld.b r5, (r3, 0x0) + 3ea4: 1270 lrw r3, 0x200000e0 // 3fe4 + 3ea6: 8360 ld.b r3, (r3, 0x0) + 3ea8: b862 st.w r3, (r14, 0x8) + 3eaa: 6d9f mov r6, r7 + 3eac: 126f lrw r3, 0x2000051e // 3fe8 + 3eae: b863 st.w r3, (r14, 0xc) + 3eb0: 4461 lsli r3, r4, 1 + 3eb2: 9843 ld.w r2, (r14, 0xc) + 3eb4: 608c addu r2, r3 + 3eb6: 122e lrw r1, 0x20000278 // 3fec + 3eb8: 604c addu r1, r3 + 3eba: 8a40 ld.h r2, (r2, 0x0) + 3ebc: 8920 ld.h r1, (r1, 0x0) + 3ebe: 6086 subu r2, r1 + 3ec0: 748b sexth r2, r2 + 3ec2: 5f2c addu r1, r7, r3 + 3ec4: a940 st.h r2, (r1, 0x0) + 3ec6: 8940 ld.h r2, (r1, 0x0) + 3ec8: 748b sexth r2, r2 + 3eca: 3adf btsti r2, 31 + 3ecc: 1249 lrw r2, 0x200004da // 3ff0 + 3ece: 608c addu r2, r3 + 3ed0: 0c37 bf 0x3f3e // 3f3e + 3ed2: 3100 movi r1, 0 + 3ed4: aa20 st.h r1, (r2, 0x0) + 3ed6: 9840 ld.w r2, (r14, 0x0) + 3ed8: 3a01 cmphsi r2, 2 + 3eda: 0c6d bf 0x3fb4 // 3fb4 + 3edc: 4461 lsli r3, r4, 1 + 3ede: 5e2c addu r1, r6, r3 + 3ee0: 1205 lrw r0, 0x20000132 // 3ff4 + 3ee2: 8940 ld.h r2, (r1, 0x0) + 3ee4: 60c0 addu r3, r0 + 3ee6: 748b sexth r2, r2 + 3ee8: 8b60 ld.h r3, (r3, 0x0) + 3eea: 648d cmplt r3, r2 + 3eec: 9840 ld.w r2, (r14, 0x0) + 3eee: 7cc8 mult r3, r2 + 3ef0: 0c2a bf 0x3f44 // 3f44 + 3ef2: 8940 ld.h r2, (r1, 0x0) + 3ef4: 748b sexth r2, r2 + 3ef6: 64c9 cmplt r2, r3 + 3ef8: 0c26 bf 0x3f44 // 3f44 + 3efa: 1240 lrw r2, 0x20000310 // 3ff8 + 3efc: 6090 addu r2, r4 + 3efe: 8260 ld.b r3, (r2, 0x0) + 3f00: 2300 addi r3, 1 + 3f02: 74cc zextb r3, r3 + 3f04: a260 st.b r3, (r2, 0x0) + 3f06: 3100 movi r1, 0 + 3f08: 117d lrw r3, 0x200002f6 // 3ffc + 3f0a: 60d0 addu r3, r4 + 3f0c: a320 st.b r1, (r3, 0x0) + 3f0e: 117d lrw r3, 0x200003d2 // 4000 + 3f10: 60d0 addu r3, r4 + 3f12: a320 st.b r1, (r3, 0x0) + 3f14: 117c lrw r3, 0x2000044c // 4004 + 3f16: 60d0 addu r3, r4 + 3f18: a320 st.b r1, (r3, 0x0) + 3f1a: 8260 ld.b r3, (r2, 0x0) + 3f1c: 9821 ld.w r1, (r14, 0x4) + 3f1e: 64c4 cmphs r1, r3 + 3f20: 081f bt 0x3f5e // 3f5e + 3f22: 3d40 cmpnei r5, 0 + 3f24: 0852 bt 0x3fc8 // 3fc8 + 3f26: 1139 lrw r1, 0x20000308 // 4008 + 3f28: 9160 ld.w r3, (r1, 0x0) + 3f2a: 3b40 cmpnei r3, 0 + 3f2c: 0806 bt 0x3f38 // 3f38 + 3f2e: 9100 ld.w r0, (r1, 0x0) + 3f30: 3301 movi r3, 1 + 3f32: 70d0 lsl r3, r4 + 3f34: 6cc0 or r3, r0 + 3f36: b160 st.w r3, (r1, 0x0) + 3f38: 3300 movi r3, 0 + 3f3a: a260 st.b r3, (r2, 0x0) + 3f3c: 0411 br 0x3f5e // 3f5e + 3f3e: 8920 ld.h r1, (r1, 0x0) + 3f40: 7445 zexth r1, r1 + 3f42: 07c9 br 0x3ed4 // 3ed4 + 3f44: 4441 lsli r2, r4, 1 + 3f46: 6098 addu r2, r6 + 3f48: 8a40 ld.h r2, (r2, 0x0) + 3f4a: 748b sexth r2, r2 + 3f4c: 648d cmplt r3, r2 + 3f4e: 0c08 bf 0x3f5e // 3f5e + 3f50: 3300 movi r3, 0 + 3f52: 114e lrw r2, 0x20000308 // 4008 + 3f54: 2b01 subi r3, 2 + 3f56: 9220 ld.w r1, (r2, 0x0) + 3f58: 70d3 rotl r3, r4 + 3f5a: 68c4 and r3, r1 + 3f5c: b260 st.w r3, (r2, 0x0) + 3f5e: 4441 lsli r2, r4, 1 + 3f60: 5e68 addu r3, r6, r2 + 3f62: 8b60 ld.h r3, (r3, 0x0) + 3f64: 74cf sexth r3, r3 + 3f66: b864 st.w r3, (r14, 0x10) + 3f68: 3105 movi r1, 5 + 3f6a: 1163 lrw r3, 0x20000132 // 3ff4 + 3f6c: 608c addu r2, r3 + 3f6e: 8a00 ld.h r0, (r2, 0x0) + 3f70: 4002 lsli r0, r0, 2 + 3f72: e3fff7cb bsr 0x2f08 // 2f08 <__divsi3> + 3f76: 9864 ld.w r3, (r14, 0x10) + 3f78: 640d cmplt r3, r0 + 3f7a: 0c18 bf 0x3faa // 3faa + 3f7c: 1140 lrw r2, 0x200002f6 // 3ffc + 3f7e: 6090 addu r2, r4 + 3f80: 8260 ld.b r3, (r2, 0x0) + 3f82: 2300 addi r3, 1 + 3f84: 74cc zextb r3, r3 + 3f86: a260 st.b r3, (r2, 0x0) + 3f88: 3100 movi r1, 0 + 3f8a: 107c lrw r3, 0x20000310 // 3ff8 + 3f8c: 60d0 addu r3, r4 + 3f8e: a320 st.b r1, (r3, 0x0) + 3f90: 8260 ld.b r3, (r2, 0x0) + 3f92: 9822 ld.w r1, (r14, 0x8) + 3f94: 64c4 cmphs r1, r3 + 3f96: 080a bt 0x3faa // 3faa + 3f98: 3300 movi r3, 0 + 3f9a: 103c lrw r1, 0x20000308 // 4008 + 3f9c: 2b01 subi r3, 2 + 3f9e: 9100 ld.w r0, (r1, 0x0) + 3fa0: 70d3 rotl r3, r4 + 3fa2: 68c0 and r3, r0 + 3fa4: b160 st.w r3, (r1, 0x0) + 3fa6: 3300 movi r3, 0 + 3fa8: a260 st.b r3, (r2, 0x0) + 3faa: 2400 addi r4, 1 + 3fac: 3c51 cmpnei r4, 17 + 3fae: 0b81 bt 0x3eb0 // 3eb0 + 3fb0: 1405 addi r14, r14, 20 + 3fb2: 1494 pop r4-r7, r15 + 3fb4: 60d8 addu r3, r6 + 3fb6: 4441 lsli r2, r4, 1 + 3fb8: 102f lrw r1, 0x20000132 // 3ff4 + 3fba: 8b60 ld.h r3, (r3, 0x0) + 3fbc: 6084 addu r2, r1 + 3fbe: 74cf sexth r3, r3 + 3fc0: 8a40 ld.h r2, (r2, 0x0) + 3fc2: 64c9 cmplt r2, r3 + 3fc4: 0fcd bf 0x3f5e // 3f5e + 3fc6: 079a br 0x3efa // 3efa + 3fc8: 3d41 cmpnei r5, 1 + 3fca: 0bb7 bt 0x3f38 // 3f38 + 3fcc: 102f lrw r1, 0x20000308 // 4008 + 3fce: 6cd7 mov r3, r5 + 3fd0: 9100 ld.w r0, (r1, 0x0) + 3fd2: 07b0 br 0x3f32 // 3f32 + 3fd4: 20000104 .long 0x20000104 + 3fd8: 200000d8 .long 0x200000d8 + 3fdc: 20000322 .long 0x20000322 + 3fe0: 200000e1 .long 0x200000e1 + 3fe4: 200000e0 .long 0x200000e0 + 3fe8: 2000051e .long 0x2000051e + 3fec: 20000278 .long 0x20000278 + 3ff0: 200004da .long 0x200004da + 3ff4: 20000132 .long 0x20000132 + 3ff8: 20000310 .long 0x20000310 + 3ffc: 200002f6 .long 0x200002f6 + 4000: 200003d2 .long 0x200003d2 + 4004: 2000044c .long 0x2000044c + 4008: 20000308 .long 0x20000308 + +Disassembly of section .text.TK_overflow_predict: + +0000400c : + 400c: 14d4 push r4-r7, r15 + 400e: 1421 subi r14, r14, 4 + 4010: 11d9 lrw r6, 0x20000068 // 40f4 + 4012: 8665 ld.b r3, (r6, 0x5) + 4014: 3b41 cmpnei r3, 1 + 4016: 085f bt 0x40d4 // 40d4 + 4018: 1158 lrw r2, 0x20000428 // 40f8 + 401a: 8260 ld.b r3, (r2, 0x0) + 401c: 2300 addi r3, 1 + 401e: 74cc zextb r3, r3 + 4020: a260 st.b r3, (r2, 0x0) + 4022: 8260 ld.b r3, (r2, 0x0) + 4024: 1136 lrw r1, 0x20000105 // 40fc + 4026: 8120 ld.b r1, (r1, 0x0) + 4028: 64c4 cmphs r1, r3 + 402a: 0855 bt 0x40d4 // 40d4 + 402c: 3300 movi r3, 0 + 402e: a260 st.b r3, (r2, 0x0) + 4030: 3500 movi r5, 0 + 4032: 11f4 lrw r7, 0x20000108 // 4100 + 4034: 2605 addi r6, 6 + 4036: 9760 ld.w r3, (r7, 0x0) + 4038: 70d5 lsr r3, r5 + 403a: 3201 movi r2, 1 + 403c: 68c8 and r3, r2 + 403e: 3b40 cmpnei r3, 0 + 4040: 0c34 bf 0x40a8 // 40a8 + 4042: 4581 lsli r4, r5, 1 + 4044: 5e70 addu r3, r6, r4 + 4046: 8b00 ld.h r0, (r3, 0x0) + 4048: e3ffeaac bsr 0x15a0 // 15a0 <__floatunsidf> + 404c: 6cc7 mov r3, r1 + 404e: 3180 movi r1, 128 + 4050: 6c83 mov r2, r0 + 4052: 4137 lsli r1, r1, 23 + 4054: 3000 movi r0, 0 + 4056: e3ffe0af bsr 0x1b4 // 1b4 <__GI_pow> + 405a: 116b lrw r3, 0x2000010e // 4104 + 405c: 60d0 addu r3, r4 + 405e: 8b60 ld.h r3, (r3, 0x0) + 4060: 4364 lsli r3, r3, 4 + 4062: 230e addi r3, 15 + 4064: b860 st.w r3, (r14, 0x0) + 4066: e3ffe655 bsr 0xd10 // d10 <__fixunsdfsi> + 406a: 9860 ld.w r3, (r14, 0x0) + 406c: 7cc0 mult r3, r0 + 406e: 1147 lrw r2, 0x200004b8 // 4108 + 4070: 740d zexth r0, r3 + 4072: 6090 addu r2, r4 + 4074: 1166 lrw r3, 0x2000051e // 410c + 4076: 60d0 addu r3, r4 + 4078: aa00 st.h r0, (r2, 0x0) + 407a: 8b60 ld.h r3, (r3, 0x0) + 407c: 8a00 ld.h r0, (r2, 0x0) + 407e: 7401 zexth r0, r0 + 4080: 325f movi r2, 95 + 4082: 74cd zexth r3, r3 + 4084: 7c08 mult r0, r2 + 4086: 3164 movi r1, 100 + 4088: b860 st.w r3, (r14, 0x0) + 408a: e3fff73f bsr 0x2f08 // 2f08 <__divsi3> + 408e: 9860 ld.w r3, (r14, 0x0) + 4090: 64c1 cmplt r0, r3 + 4092: 0c0b bf 0x40a8 // 40a8 + 4094: 107f lrw r3, 0x200000e2 // 4110 + 4096: 610c addu r4, r3 + 4098: 8c60 ld.h r3, (r4, 0x0) + 409a: 3b06 cmphsi r3, 7 + 409c: 0806 bt 0x40a8 // 40a8 + 409e: 2300 addi r3, 1 + 40a0: ac60 st.h r3, (r4, 0x0) + 40a2: 3201 movi r2, 1 + 40a4: 107c lrw r3, 0x2000037d // 4114 + 40a6: a340 st.b r2, (r3, 0x0) + 40a8: 2500 addi r5, 1 + 40aa: 3d51 cmpnei r5, 17 + 40ac: 0bc5 bt 0x4036 // 4036 + 40ae: 107a lrw r3, 0x2000037d // 4114 + 40b0: 8340 ld.b r2, (r3, 0x0) + 40b2: 3a41 cmpnei r2, 1 + 40b4: 0810 bt 0x40d4 // 40d4 + 40b6: 3200 movi r2, 0 + 40b8: a340 st.b r2, (r3, 0x0) + 40ba: 3200 movi r2, 0 + 40bc: 1077 lrw r3, 0x20000058 // 4118 + 40be: 1018 lrw r0, 0x2000044b // 411c + 40c0: 10b8 lrw r5, 0x20000484 // 4120 + 40c2: 10d4 lrw r6, 0x200000e2 // 4110 + 40c4: 9360 ld.w r3, (r3, 0x0) + 40c6: b342 st.w r2, (r3, 0x8) + 40c8: 1077 lrw r3, 0x20000054 // 4124 + 40ca: 9380 ld.w r4, (r3, 0x0) + 40cc: 3300 movi r3, 0 + 40ce: 8040 ld.b r2, (r0, 0x0) + 40d0: 648c cmphs r3, r2 + 40d2: 0c03 bf 0x40d8 // 40d8 + 40d4: 1401 addi r14, r14, 4 + 40d6: 1494 pop r4-r7, r15 + 40d8: 5d4c addu r2, r5, r3 + 40da: 8240 ld.b r2, (r2, 0x0) + 40dc: 4241 lsli r2, r2, 1 + 40de: 4322 lsli r1, r3, 2 + 40e0: 6098 addu r2, r6 + 40e2: 6050 addu r1, r4 + 40e4: 8a40 ld.h r2, (r2, 0x0) + 40e6: 91f2 ld.w r7, (r1, 0x48) + 40e8: 4254 lsli r2, r2, 20 + 40ea: 6c9c or r2, r7 + 40ec: 2300 addi r3, 1 + 40ee: b152 st.w r2, (r1, 0x48) + 40f0: 74cc zextb r3, r3 + 40f2: 07ee br 0x40ce // 40ce + 40f4: 20000068 .long 0x20000068 + 40f8: 20000428 .long 0x20000428 + 40fc: 20000105 .long 0x20000105 + 4100: 20000108 .long 0x20000108 + 4104: 2000010e .long 0x2000010e + 4108: 200004b8 .long 0x200004b8 + 410c: 2000051e .long 0x2000051e + 4110: 200000e2 .long 0x200000e2 + 4114: 2000037d .long 0x2000037d + 4118: 20000058 .long 0x20000058 + 411c: 2000044b .long 0x2000044b + 4120: 20000484 .long 0x20000484 + 4124: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00004128 : + 4128: 14c4 push r4-r7 + 412a: 1422 subi r14, r14, 8 + 412c: 1348 lrw r2, 0x200003aa // 42cc + 412e: 8260 ld.b r3, (r2, 0x0) + 4130: 2300 addi r3, 1 + 4132: 74cc zextb r3, r3 + 4134: a260 st.b r3, (r2, 0x0) + 4136: 8260 ld.b r3, (r2, 0x0) + 4138: 1326 lrw r1, 0x20000105 // 42d0 + 413a: 8120 ld.b r1, (r1, 0x0) + 413c: 644c cmphs r3, r1 + 413e: 0cad bf 0x4298 // 4298 + 4140: 3300 movi r3, 0 + 4142: a260 st.b r3, (r2, 0x0) + 4144: 1364 lrw r3, 0x20000308 // 42d4 + 4146: 9360 ld.w r3, (r3, 0x0) + 4148: 3b40 cmpnei r3, 0 + 414a: 08a7 bt 0x4298 // 4298 + 414c: 1323 lrw r1, 0x20000322 // 42d8 + 414e: 6dc7 mov r7, r1 + 4150: b820 st.w r1, (r14, 0x0) + 4152: 3200 movi r2, 0 + 4154: 1362 lrw r3, 0x20000132 // 42dc + 4156: 1323 lrw r1, 0x20000278 // 42e0 + 4158: 4201 lsli r0, r2, 1 + 415a: 9880 ld.w r4, (r14, 0x0) + 415c: 6100 addu r4, r0 + 415e: 8c80 ld.h r4, (r4, 0x0) + 4160: 7513 sexth r4, r4 + 4162: 3cdf btsti r4, 31 + 4164: 0c27 bf 0x41b2 // 41b2 + 4166: 13a0 lrw r5, 0x2000051e // 42e4 + 4168: 5980 addu r4, r1, r0 + 416a: 6014 addu r0, r5 + 416c: b881 st.w r4, (r14, 0x4) + 416e: 8c80 ld.h r4, (r4, 0x0) + 4170: 88c0 ld.h r6, (r0, 0x0) + 4172: 7511 zexth r4, r4 + 4174: 7599 zexth r6, r6 + 4176: 8ba0 ld.h r5, (r3, 0x0) + 4178: 611a subu r4, r6 + 417a: 6551 cmplt r4, r5 + 417c: 081b bt 0x41b2 // 41b2 + 417e: 9881 ld.w r4, (r14, 0x4) + 4180: 8c80 ld.h r4, (r4, 0x0) + 4182: 8800 ld.h r0, (r0, 0x0) + 4184: 7511 zexth r4, r4 + 4186: 7401 zexth r0, r0 + 4188: 5c01 subu r0, r4, r0 + 418a: 4581 lsli r4, r5, 1 + 418c: 6150 addu r5, r4 + 418e: 6541 cmplt r0, r5 + 4190: 0c11 bf 0x41b2 // 41b2 + 4192: 1296 lrw r4, 0x2000044c // 42e8 + 4194: 6108 addu r4, r2 + 4196: 8400 ld.b r0, (r4, 0x0) + 4198: 2000 addi r0, 1 + 419a: 7400 zextb r0, r0 + 419c: a400 st.b r0, (r4, 0x0) + 419e: 1214 lrw r0, 0x20000088 // 42ec + 41a0: 84a0 ld.b r5, (r4, 0x0) + 41a2: 8008 ld.b r0, (r0, 0x8) + 41a4: 6540 cmphs r0, r5 + 41a6: 0806 bt 0x41b2 // 41b2 + 41a8: 1212 lrw r0, 0x2000038f // 42f0 + 41aa: 3501 movi r5, 1 + 41ac: a0a0 st.b r5, (r0, 0x0) + 41ae: 3000 movi r0, 0 + 41b0: a400 st.b r0, (r4, 0x0) + 41b2: 4201 lsli r0, r2, 1 + 41b4: 5f80 addu r4, r7, r0 + 41b6: 8c80 ld.h r4, (r4, 0x0) + 41b8: 7513 sexth r4, r4 + 41ba: 3c20 cmplti r4, 1 + 41bc: 0870 bt 0x429c // 429c + 41be: 128a lrw r4, 0x2000051e // 42e4 + 41c0: 6100 addu r4, r0 + 41c2: 59a0 addu r5, r1, r0 + 41c4: 8c80 ld.h r4, (r4, 0x0) + 41c6: 8da0 ld.h r5, (r5, 0x0) + 41c8: 7555 zexth r5, r5 + 41ca: 7511 zexth r4, r4 + 41cc: 6116 subu r4, r5 + 41ce: 8ba0 ld.h r5, (r3, 0x0) + 41d0: 45a2 lsli r5, r5, 2 + 41d2: 6551 cmplt r4, r5 + 41d4: 0864 bt 0x429c // 429c + 41d6: 1288 lrw r4, 0x200003d2 // 42f4 + 41d8: 6108 addu r4, r2 + 41da: 84a0 ld.b r5, (r4, 0x0) + 41dc: 2500 addi r5, 1 + 41de: 7554 zextb r5, r5 + 41e0: a4a0 st.b r5, (r4, 0x0) + 41e2: 12a3 lrw r5, 0x20000088 // 42ec + 41e4: 84c0 ld.b r6, (r4, 0x0) + 41e6: 85a9 ld.b r5, (r5, 0x9) + 41e8: 6594 cmphs r5, r6 + 41ea: 0806 bt 0x41f6 // 41f6 + 41ec: 12a1 lrw r5, 0x2000038f // 42f0 + 41ee: 3601 movi r6, 1 + 41f0: a5c0 st.b r6, (r5, 0x0) + 41f2: 3500 movi r5, 0 + 41f4: a4a0 st.b r5, (r4, 0x0) + 41f6: 5f80 addu r4, r7, r0 + 41f8: 8c80 ld.h r4, (r4, 0x0) + 41fa: 7513 sexth r4, r4 + 41fc: 3cdf btsti r4, 31 + 41fe: 0c10 bf 0x421e // 421e + 4200: 11d9 lrw r6, 0x2000051e // 42e4 + 4202: 59a0 addu r5, r1, r0 + 4204: 6180 addu r6, r0 + 4206: 8d80 ld.h r4, (r5, 0x0) + 4208: 8ec0 ld.h r6, (r6, 0x0) + 420a: 7599 zexth r6, r6 + 420c: 7511 zexth r4, r4 + 420e: 611a subu r4, r6 + 4210: 8bc0 ld.h r6, (r3, 0x0) + 4212: 6591 cmplt r4, r6 + 4214: 0c05 bf 0x421e // 421e + 4216: 8d80 ld.h r4, (r5, 0x0) + 4218: 2c00 subi r4, 1 + 421a: 7511 zexth r4, r4 + 421c: ad80 st.h r4, (r5, 0x0) + 421e: 5f80 addu r4, r7, r0 + 4220: 8c80 ld.h r4, (r4, 0x0) + 4222: 7513 sexth r4, r4 + 4224: 3cdf btsti r4, 31 + 4226: 0c11 bf 0x4248 // 4248 + 4228: 11cf lrw r6, 0x2000051e // 42e4 + 422a: 59a0 addu r5, r1, r0 + 422c: 6180 addu r6, r0 + 422e: 8d80 ld.h r4, (r5, 0x0) + 4230: 8ec0 ld.h r6, (r6, 0x0) + 4232: 7599 zexth r6, r6 + 4234: 7511 zexth r4, r4 + 4236: 611a subu r4, r6 + 4238: 8bc0 ld.h r6, (r3, 0x0) + 423a: 4ec1 lsri r6, r6, 1 + 423c: 6591 cmplt r4, r6 + 423e: 0805 bt 0x4248 // 4248 + 4240: 8d80 ld.h r4, (r5, 0x0) + 4242: 2c01 subi r4, 2 + 4244: 7511 zexth r4, r4 + 4246: ad80 st.h r4, (r5, 0x0) + 4248: 5fa0 addu r5, r7, r0 + 424a: 8d80 ld.h r4, (r5, 0x0) + 424c: 7513 sexth r4, r4 + 424e: 3c20 cmplti r4, 1 + 4250: 080c bt 0x4268 // 4268 + 4252: 8da0 ld.h r5, (r5, 0x0) + 4254: 8b80 ld.h r4, (r3, 0x0) + 4256: 7557 sexth r5, r5 + 4258: 4c81 lsri r4, r4, 1 + 425a: 6515 cmplt r5, r4 + 425c: 0c06 bf 0x4268 // 4268 + 425e: 59a0 addu r5, r1, r0 + 4260: 8d80 ld.h r4, (r5, 0x0) + 4262: 2400 addi r4, 1 + 4264: 7511 zexth r4, r4 + 4266: ad80 st.h r4, (r5, 0x0) + 4268: 5fa0 addu r5, r7, r0 + 426a: 8d80 ld.h r4, (r5, 0x0) + 426c: 7513 sexth r4, r4 + 426e: 3c20 cmplti r4, 1 + 4270: 0810 bt 0x4290 // 4290 + 4272: 8dc0 ld.h r6, (r5, 0x0) + 4274: 759b sexth r6, r6 + 4276: 8b80 ld.h r4, (r3, 0x0) + 4278: 6519 cmplt r6, r4 + 427a: 0c0b bf 0x4290 // 4290 + 427c: 8da0 ld.h r5, (r5, 0x0) + 427e: 7557 sexth r5, r5 + 4280: 4c81 lsri r4, r4, 1 + 4282: 6515 cmplt r5, r4 + 4284: 0806 bt 0x4290 // 4290 + 4286: 6004 addu r0, r1 + 4288: 8880 ld.h r4, (r0, 0x0) + 428a: 2401 addi r4, 2 + 428c: 7511 zexth r4, r4 + 428e: a880 st.h r4, (r0, 0x0) + 4290: 2200 addi r2, 1 + 4292: 3a51 cmpnei r2, 17 + 4294: 2301 addi r3, 2 + 4296: 0b61 bt 0x4158 // 4158 + 4298: 1402 addi r14, r14, 8 + 429a: 1484 pop r4-r7 + 429c: 5f80 addu r4, r7, r0 + 429e: 8c80 ld.h r4, (r4, 0x0) + 42a0: 7513 sexth r4, r4 + 42a2: 3cdf btsti r4, 31 + 42a4: 0fa9 bf 0x41f6 // 41f6 + 42a6: 10b0 lrw r5, 0x2000051e // 42e4 + 42a8: 5980 addu r4, r1, r0 + 42aa: 6140 addu r5, r0 + 42ac: 8c80 ld.h r4, (r4, 0x0) + 42ae: 8da0 ld.h r5, (r5, 0x0) + 42b0: 7555 zexth r5, r5 + 42b2: 8bc0 ld.h r6, (r3, 0x0) + 42b4: 7511 zexth r4, r4 + 42b6: 6116 subu r4, r5 + 42b8: 46a1 lsli r5, r6, 1 + 42ba: 6158 addu r5, r6 + 42bc: 6551 cmplt r4, r5 + 42be: 0b9c bt 0x41f6 // 41f6 + 42c0: 108c lrw r4, 0x2000038f // 42f0 + 42c2: 3501 movi r5, 1 + 42c4: a4a0 st.b r5, (r4, 0x0) + 42c6: 6c03 mov r0, r0 + 42c8: 0797 br 0x41f6 // 41f6 + 42ca: 0000 bkpt + 42cc: 200003aa .long 0x200003aa + 42d0: 20000105 .long 0x20000105 + 42d4: 20000308 .long 0x20000308 + 42d8: 20000322 .long 0x20000322 + 42dc: 20000132 .long 0x20000132 + 42e0: 20000278 .long 0x20000278 + 42e4: 2000051e .long 0x2000051e + 42e8: 2000044c .long 0x2000044c + 42ec: 20000088 .long 0x20000088 + 42f0: 2000038f .long 0x2000038f + 42f4: 200003d2 .long 0x200003d2 + +Disassembly of section .text.TK_result_prog: + +000042f8 : + 42f8: 14d2 push r4-r5, r15 + 42fa: 1050 lrw r2, 0x20000308 // 4338 + 42fc: 1090 lrw r4, 0x200003ac // 433c + 42fe: 9260 ld.w r3, (r2, 0x0) + 4300: 3b40 cmpnei r3, 0 + 4302: 0c02 bf 0x4306 // 4306 + 4304: 9260 ld.w r3, (r2, 0x0) + 4306: b460 st.w r3, (r4, 0x0) + 4308: 9460 ld.w r3, (r4, 0x0) + 430a: 3b40 cmpnei r3, 0 + 430c: 10ad lrw r5, 0x20000480 // 4340 + 430e: 0c11 bf 0x4330 // 4330 + 4310: 9440 ld.w r2, (r4, 0x0) + 4312: 9560 ld.w r3, (r5, 0x0) + 4314: 64ca cmpne r2, r3 + 4316: 0c03 bf 0x431c // 431c + 4318: 9460 ld.w r3, (r4, 0x0) + 431a: b560 st.w r3, (r5, 0x0) + 431c: e3fffd94 bsr 0x3e44 // 3e44 + 4320: 1069 lrw r3, 0x2000010c // 4344 + 4322: 8360 ld.b r3, (r3, 0x0) + 4324: 640c cmphs r3, r0 + 4326: 0804 bt 0x432e // 432e + 4328: 3300 movi r3, 0 + 432a: b460 st.w r3, (r4, 0x0) + 432c: b560 st.w r3, (r5, 0x0) + 432e: 1492 pop r4-r5, r15 + 4330: 1046 lrw r2, 0x200003a4 // 4348 + 4332: b560 st.w r3, (r5, 0x0) + 4334: b260 st.w r3, (r2, 0x0) + 4336: 07fc br 0x432e // 432e + 4338: 20000308 .long 0x20000308 + 433c: 200003ac .long 0x200003ac + 4340: 20000480 .long 0x20000480 + 4344: 2000010c .long 0x2000010c + 4348: 200003a4 .long 0x200003a4 + +Disassembly of section .text.CORETHandler: + +0000434c : + 434c: 1460 nie + 434e: 1462 ipush + 4350: 14d1 push r4, r15 + 4352: 1077 lrw r3, 0x20000064 // 43ac + 4354: 3400 movi r4, 0 + 4356: 9360 ld.w r3, (r3, 0x0) + 4358: b386 st.w r4, (r3, 0x18) + 435a: 1076 lrw r3, 0x2000030c // 43b0 + 435c: 8360 ld.b r3, (r3, 0x0) + 435e: 3b41 cmpnei r3, 1 + 4360: 0820 bt 0x43a0 // 43a0 + 4362: e3fffd85 bsr 0x3e6c // 3e6c + 4366: e3fffd93 bsr 0x3e8c // 3e8c + 436a: e3fffe51 bsr 0x400c // 400c + 436e: e3fffedd bsr 0x4128 // 4128 + 4372: e3ffffc3 bsr 0x42f8 // 42f8 + 4376: 1070 lrw r3, 0x200003ac // 43b4 + 4378: 9360 ld.w r3, (r3, 0x0) + 437a: 3b40 cmpnei r3, 0 + 437c: 0c12 bf 0x43a0 // 43a0 + 437e: 106f lrw r3, 0x200000dc // 43b8 + 4380: 9340 ld.w r2, (r3, 0x0) + 4382: 3a40 cmpnei r2, 0 + 4384: 0c0e bf 0x43a0 // 43a0 + 4386: 106e lrw r3, 0x200003a4 // 43bc + 4388: 3064 movi r0, 100 + 438a: 9320 ld.w r1, (r3, 0x0) + 438c: 2100 addi r1, 1 + 438e: b320 st.w r1, (r3, 0x0) + 4390: 9320 ld.w r1, (r3, 0x0) + 4392: 7c80 mult r2, r0 + 4394: 6448 cmphs r2, r1 + 4396: 0805 bt 0x43a0 // 43a0 + 4398: 104a lrw r2, 0x2000038f // 43c0 + 439a: 3101 movi r1, 1 + 439c: a220 st.b r1, (r2, 0x0) + 439e: b380 st.w r4, (r3, 0x0) + 43a0: d9ee2001 ld.w r15, (r14, 0x4) + 43a4: 9880 ld.w r4, (r14, 0x0) + 43a6: 1402 addi r14, r14, 8 + 43a8: 1463 ipop + 43aa: 1461 nir + 43ac: 20000064 .long 0x20000064 + 43b0: 2000030c .long 0x2000030c + 43b4: 200003ac .long 0x200003ac + 43b8: 200000dc .long 0x200000dc + 43bc: 200003a4 .long 0x200003a4 + 43c0: 2000038f .long 0x2000038f + +Disassembly of section .text.std_clk_calib: + +000043c4 : + 43c4: 14d4 push r4-r7, r15 + 43c6: 142d subi r14, r14, 52 + 43c8: 3201 movi r2, 1 + 43ca: 03ce lrw r6, 0x2000005c // 460c + 43cc: 6cc3 mov r3, r0 + 43ce: dc4e000a st.b r2, (r14, 0xa) + 43d2: 9640 ld.w r2, (r6, 0x0) + 43d4: 9247 ld.w r2, (r2, 0x1c) + 43d6: 7488 zextb r2, r2 + 43d8: dc4e0009 st.b r2, (r14, 0x9) + 43dc: d84e0009 ld.b r2, (r14, 0x9) + 43e0: 3a40 cmpnei r2, 0 + 43e2: 0c08 bf 0x43f2 // 43f2 + 43e4: d84e0009 ld.b r2, (r14, 0x9) + 43e8: 3a42 cmpnei r2, 2 + 43ea: 0c04 bf 0x43f2 // 43f2 + 43ec: 3000 movi r0, 0 + 43ee: 140d addi r14, r14, 52 + 43f0: 1494 pop r4-r7, r15 + 43f2: 0397 lrw r4, 0x2000000c // 4610 + 43f4: 3209 movi r2, 9 + 43f6: 9400 ld.w r0, (r4, 0x0) + 43f8: 3b40 cmpnei r3, 0 + 43fa: b041 st.w r2, (r0, 0x4) + 43fc: 0857 bt 0x44aa // 44aa + 43fe: 3307 movi r3, 7 + 4400: dc6e000b st.b r3, (r14, 0xb) + 4404: 037b lrw r3, 0x2dc6c00 // 4614 + 4406: b863 st.w r3, (r14, 0xc) + 4408: 3380 movi r3, 128 + 440a: 4362 lsli r3, r3, 2 + 440c: b867 st.w r3, (r14, 0x1c) + 440e: d86e000b ld.b r3, (r14, 0xb) + 4412: 74cc zextb r3, r3 + 4414: b062 st.w r3, (r0, 0x8) + 4416: 037e lrw r3, 0xffff // 4618 + 4418: b063 st.w r3, (r0, 0xc) + 441a: 3201 movi r2, 1 + 441c: 3101 movi r1, 1 + 441e: 03bf lrw r5, 0x20000014 // 461c + 4420: e3ffeda6 bsr 0x1f6c // 1f6c + 4424: 95e0 ld.w r7, (r5, 0x0) + 4426: 137f lrw r3, 0xbe9c0005 // 4620 + 4428: b760 st.w r3, (r7, 0x0) + 442a: 135f lrw r2, 0x30010 // 4624 + 442c: 3300 movi r3, 0 + 442e: b762 st.w r3, (r7, 0x8) + 4430: b743 st.w r2, (r7, 0xc) + 4432: 32d8 movi r2, 216 + 4434: b745 st.w r2, (r7, 0x14) + 4436: 974f ld.w r2, (r7, 0x3c) + 4438: 3aa2 bseti r2, 2 + 443a: b74f st.w r2, (r7, 0x3c) + 443c: 9803 ld.w r0, (r14, 0xc) + 443e: d82e000b ld.b r1, (r14, 0xb) + 4442: 327d movi r2, 125 + 4444: 2100 addi r1, 1 + 4446: 7c48 mult r1, r2 + 4448: b861 st.w r3, (r14, 0x4) + 444a: e3fff571 bsr 0x2f2c // 2f2c <__udivsi3> + 444e: b804 st.w r0, (r14, 0x10) + 4450: 32fa movi r2, 250 + 4452: 9824 ld.w r1, (r14, 0x10) + 4454: 4242 lsli r2, r2, 2 + 4456: 6448 cmphs r2, r1 + 4458: 0bca bt 0x43ec // 43ec + 445a: 9844 ld.w r2, (r14, 0x10) + 445c: 3178 movi r1, 120 + 445e: 9804 ld.w r0, (r14, 0x10) + 4460: b840 st.w r2, (r14, 0x0) + 4462: e3fff565 bsr 0x2f2c // 2f2c <__udivsi3> + 4466: 9840 ld.w r2, (r14, 0x0) + 4468: 6082 subu r2, r0 + 446a: b845 st.w r2, (r14, 0x14) + 446c: 9804 ld.w r0, (r14, 0x10) + 446e: 3178 movi r1, 120 + 4470: 9844 ld.w r2, (r14, 0x10) + 4472: b840 st.w r2, (r14, 0x0) + 4474: e3fff55c bsr 0x2f2c // 2f2c <__udivsi3> + 4478: 9840 ld.w r2, (r14, 0x0) + 447a: 6008 addu r0, r2 + 447c: b806 st.w r0, (r14, 0x18) + 447e: c0807020 psrclr ie + 4482: 9640 ld.w r2, (r6, 0x0) + 4484: 9254 ld.w r2, (r2, 0x50) + 4486: b848 st.w r2, (r14, 0x20) + 4488: 9861 ld.w r3, (r14, 0x4) + 448a: 9440 ld.w r2, (r4, 0x0) + 448c: b260 st.w r3, (r2, 0x0) + 448e: b761 st.w r3, (r7, 0x4) + 4490: d86e000a ld.b r3, (r14, 0xa) + 4494: 3b40 cmpnei r3, 0 + 4496: 083e bt 0x4512 // 4512 + 4498: e3ffed1c bsr 0x1ed0 // 1ed0 + 449c: 9400 ld.w r0, (r4, 0x0) + 449e: e3ffed3d bsr 0x1f18 // 1f18 + 44a2: c1807420 psrset ee, ie + 44a6: 3001 movi r0, 1 + 44a8: 07a3 br 0x43ee // 43ee + 44aa: 3b41 cmpnei r3, 1 + 44ac: 0806 bt 0x44b8 // 44b8 + 44ae: 3303 movi r3, 3 + 44b0: dc6e000b st.b r3, (r14, 0xb) + 44b4: 127d lrw r3, 0x16e3600 // 4628 + 44b6: 07a8 br 0x4406 // 4406 + 44b8: 3b42 cmpnei r3, 2 + 44ba: 0806 bt 0x44c6 // 44c6 + 44bc: 3301 movi r3, 1 + 44be: dc6e000b st.b r3, (r14, 0xb) + 44c2: 127b lrw r3, 0xb71b00 // 462c + 44c4: 07a1 br 0x4406 // 4406 + 44c6: 3b43 cmpnei r3, 3 + 44c8: 0806 bt 0x44d4 // 44d4 + 44ca: 3300 movi r3, 0 + 44cc: dc6e000b st.b r3, (r14, 0xb) + 44d0: 1278 lrw r3, 0x5b8d80 // 4630 + 44d2: 079a br 0x4406 // 4406 + 44d4: 3b44 cmpnei r3, 4 + 44d6: 0809 bt 0x44e8 // 44e8 + 44d8: 3300 movi r3, 0 + 44da: dc6e000b st.b r3, (r14, 0xb) + 44de: 1276 lrw r3, 0x54c720 // 4634 + 44e0: b863 st.w r3, (r14, 0xc) + 44e2: 3380 movi r3, 128 + 44e4: 4369 lsli r3, r3, 9 + 44e6: 0793 br 0x440c // 440c + 44e8: 3b45 cmpnei r3, 5 + 44ea: 0806 bt 0x44f6 // 44f6 + 44ec: 3300 movi r3, 0 + 44ee: dc6e000b st.b r3, (r14, 0xb) + 44f2: 1272 lrw r3, 0x3ffed0 // 4638 + 44f4: 07f6 br 0x44e0 // 44e0 + 44f6: 3b46 cmpnei r3, 6 + 44f8: 0806 bt 0x4504 // 4504 + 44fa: 3300 movi r3, 0 + 44fc: dc6e000b st.b r3, (r14, 0xb) + 4500: 126f lrw r3, 0x1fff68 // 463c + 4502: 07ef br 0x44e0 // 44e0 + 4504: 3b47 cmpnei r3, 7 + 4506: 0b84 bt 0x440e // 440e + 4508: 3300 movi r3, 0 + 450a: dc6e000b st.b r3, (r14, 0xb) + 450e: 126d lrw r3, 0x1ffb8 // 4640 + 4510: 07e8 br 0x44e0 // 44e0 + 4512: 9560 ld.w r3, (r5, 0x0) + 4514: 3101 movi r1, 1 + 4516: 9440 ld.w r2, (r4, 0x0) + 4518: b321 st.w r1, (r3, 0x4) + 451a: b220 st.w r1, (r2, 0x0) + 451c: 3100 movi r1, 0 + 451e: b327 st.w r1, (r3, 0x1c) + 4520: 3004 movi r0, 4 + 4522: b225 st.w r1, (r2, 0x14) + 4524: 932e ld.w r1, (r3, 0x38) + 4526: 6840 and r1, r0 + 4528: 3940 cmpnei r1, 0 + 452a: 0ffd bf 0x4524 // 4524 + 452c: 9225 ld.w r1, (r2, 0x14) + 452e: b82a st.w r1, (r14, 0x28) + 4530: 3100 movi r1, 0 + 4532: b310 st.w r0, (r3, 0x40) + 4534: b327 st.w r1, (r3, 0x1c) + 4536: 3004 movi r0, 4 + 4538: b225 st.w r1, (r2, 0x14) + 453a: 932e ld.w r1, (r3, 0x38) + 453c: 6840 and r1, r0 + 453e: 3940 cmpnei r1, 0 + 4540: 0ffd bf 0x453a // 453a + 4542: 9225 ld.w r1, (r2, 0x14) + 4544: b82b st.w r1, (r14, 0x2c) + 4546: 3100 movi r1, 0 + 4548: b310 st.w r0, (r3, 0x40) + 454a: b327 st.w r1, (r3, 0x1c) + 454c: 3004 movi r0, 4 + 454e: b225 st.w r1, (r2, 0x14) + 4550: 932e ld.w r1, (r3, 0x38) + 4552: 6840 and r1, r0 + 4554: 3940 cmpnei r1, 0 + 4556: 0ffd bf 0x4550 // 4550 + 4558: 9225 ld.w r1, (r2, 0x14) + 455a: b82c st.w r1, (r14, 0x30) + 455c: b310 st.w r0, (r3, 0x40) + 455e: 982b ld.w r1, (r14, 0x2c) + 4560: 980c ld.w r0, (r14, 0x30) + 4562: 6040 addu r1, r0 + 4564: b829 st.w r1, (r14, 0x24) + 4566: 9829 ld.w r1, (r14, 0x24) + 4568: 4921 lsri r1, r1, 1 + 456a: b829 st.w r1, (r14, 0x24) + 456c: 3100 movi r1, 0 + 456e: b321 st.w r1, (r3, 0x4) + 4570: b220 st.w r1, (r2, 0x0) + 4572: b327 st.w r1, (r3, 0x1c) + 4574: b225 st.w r1, (r2, 0x14) + 4576: d86e0009 ld.b r3, (r14, 0x9) + 457a: 3b42 cmpnei r3, 2 + 457c: 9849 ld.w r2, (r14, 0x24) + 457e: 082c bt 0x45d6 // 45d6 + 4580: 1171 lrw r3, 0x7ff // 4644 + 4582: 648c cmphs r3, r2 + 4584: 0c03 bf 0x458a // 458a + 4586: 3300 movi r3, 0 + 4588: 040f br 0x45a6 // 45a6 + 458a: 9849 ld.w r2, (r14, 0x24) + 458c: 9866 ld.w r3, (r14, 0x18) + 458e: 648c cmphs r3, r2 + 4590: 080e bt 0x45ac // 45ac + 4592: 9868 ld.w r3, (r14, 0x20) + 4594: 9847 ld.w r2, (r14, 0x1c) + 4596: 60ca subu r3, r2 + 4598: b868 st.w r3, (r14, 0x20) + 459a: 32fe movi r2, 254 + 459c: 9868 ld.w r3, (r14, 0x20) + 459e: 4248 lsli r2, r2, 8 + 45a0: 68c8 and r3, r2 + 45a2: 3b40 cmpnei r3, 0 + 45a4: 0812 bt 0x45c8 // 45c8 + 45a6: dc6e000a st.b r3, (r14, 0xa) + 45aa: 0721 br 0x43ec // 43ec + 45ac: 9849 ld.w r2, (r14, 0x24) + 45ae: 9865 ld.w r3, (r14, 0x14) + 45b0: 64c8 cmphs r2, r3 + 45b2: 0829 bt 0x4604 // 4604 + 45b4: 9868 ld.w r3, (r14, 0x20) + 45b6: 9847 ld.w r2, (r14, 0x1c) + 45b8: 60c8 addu r3, r2 + 45ba: b868 st.w r3, (r14, 0x20) + 45bc: 33fe movi r3, 254 + 45be: 9848 ld.w r2, (r14, 0x20) + 45c0: 4368 lsli r3, r3, 8 + 45c2: 688c and r2, r3 + 45c4: 64ca cmpne r2, r3 + 45c6: 0fe0 bf 0x4586 // 4586 + 45c8: 9660 ld.w r3, (r6, 0x0) + 45ca: 9848 ld.w r2, (r14, 0x20) + 45cc: b354 st.w r2, (r3, 0x50) + 45ce: 3001 movi r0, 1 + 45d0: e3ffeef0 bsr 0x23b0 // 23b0 + 45d4: 075e br 0x4490 // 4490 + 45d6: 9866 ld.w r3, (r14, 0x18) + 45d8: 648c cmphs r3, r2 + 45da: 0809 bt 0x45ec // 45ec + 45dc: 9868 ld.w r3, (r14, 0x20) + 45de: 9847 ld.w r2, (r14, 0x1c) + 45e0: 60ca subu r3, r2 + 45e2: b868 st.w r3, (r14, 0x20) + 45e4: 32ff movi r2, 255 + 45e6: 9868 ld.w r3, (r14, 0x20) + 45e8: 4250 lsli r2, r2, 16 + 45ea: 07db br 0x45a0 // 45a0 + 45ec: 9849 ld.w r2, (r14, 0x24) + 45ee: 9865 ld.w r3, (r14, 0x14) + 45f0: 64c8 cmphs r2, r3 + 45f2: 0809 bt 0x4604 // 4604 + 45f4: 9868 ld.w r3, (r14, 0x20) + 45f6: 9847 ld.w r2, (r14, 0x1c) + 45f8: 60c8 addu r3, r2 + 45fa: b868 st.w r3, (r14, 0x20) + 45fc: 33ff movi r3, 255 + 45fe: 9848 ld.w r2, (r14, 0x20) + 4600: 4370 lsli r3, r3, 16 + 4602: 07e0 br 0x45c2 // 45c2 + 4604: 3300 movi r3, 0 + 4606: dc6e000a st.b r3, (r14, 0xa) + 460a: 07e2 br 0x45ce // 45ce + 460c: 2000005c .long 0x2000005c + 4610: 2000000c .long 0x2000000c + 4614: 02dc6c00 .long 0x02dc6c00 + 4618: 0000ffff .long 0x0000ffff + 461c: 20000014 .long 0x20000014 + 4620: be9c0005 .long 0xbe9c0005 + 4624: 00030010 .long 0x00030010 + 4628: 016e3600 .long 0x016e3600 + 462c: 00b71b00 .long 0x00b71b00 + 4630: 005b8d80 .long 0x005b8d80 + 4634: 0054c720 .long 0x0054c720 + 4638: 003ffed0 .long 0x003ffed0 + 463c: 001fff68 .long 0x001fff68 + 4640: 0001ffb8 .long 0x0001ffb8 + 4644: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241012.map b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241012.map new file mode 100644 index 0000000..3aac375 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241012.map @@ -0,0 +1,2210 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 315648 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 162 + Section header string table index: 159 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 001a50 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001a50 002a50 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001a88 002a88 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001afc 002afc 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001b48 002b48 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001b78 002b78 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c00 002c00 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c28 002c28 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001c64 002c64 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001c78 002c78 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001c90 002c90 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001cb0 002cb0 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001ccc 002ccc 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001ce8 002ce8 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 00001d28 002d28 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 00001d34 002d34 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 00001d58 002d58 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 00001d88 002d88 0000e0 00 AX 0 0 4 + [19] .text.GPIO_PullHi PROGBITS 00001e68 002e68 000014 00 AX 0 0 2 + [20] .text.GPIO_DriveS PROGBITS 00001e7c 002e7c 00000e 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 00001e8a 002e8a 000008 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00001e92 002e92 000008 00 AX 0 0 2 + [23] .text.GPIO_Revers PROGBITS 00001e9a 002e9a 000016 00 AX 0 0 2 + [24] .text.GPIO_Read_S PROGBITS 00001eb0 002eb0 000010 00 AX 0 0 2 + [25] .text.GPIO_Read_O PROGBITS 00001ec0 002ec0 000010 00 AX 0 0 2 + [26] .text.LPT_Soft_Re PROGBITS 00001ed0 002ed0 000014 00 AX 0 0 4 + [27] .text.WWDT_CNT_Lo PROGBITS 00001ee4 002ee4 000010 00 AX 0 0 4 + [28] .text.BT_DeInit PROGBITS 00001ef4 002ef4 00001c 00 AX 0 0 2 + [29] .text.BT_Start PROGBITS 00001f10 002f10 000008 00 AX 0 0 2 + [30] .text.BT_Soft_Res PROGBITS 00001f18 002f18 00000a 00 AX 0 0 2 + [31] .text.BT_Configur PROGBITS 00001f22 002f22 000018 00 AX 0 0 2 + [32] .text.BT_ControlS PROGBITS 00001f3a 002f3a 00002c 00 AX 0 0 2 + [33] .text.BT_Period_C PROGBITS 00001f66 002f66 000006 00 AX 0 0 2 + [34] .text.BT_ConfigIn PROGBITS 00001f6c 002f6c 000012 00 AX 0 0 2 + [35] .text.BT1_INT_ENA PROGBITS 00001f80 002f80 000010 00 AX 0 0 4 + [36] .text.GPT_IO_Init PROGBITS 00001f90 002f90 0000a0 00 AX 0 0 4 + [37] .text.GPT_Configu PROGBITS 00002030 003030 000014 00 AX 0 0 4 + [38] .text.GPT_WaveCtr PROGBITS 00002044 003044 000044 00 AX 0 0 4 + [39] .text.GPT_WaveLoa PROGBITS 00002088 003088 000014 00 AX 0 0 4 + [40] .text.GPT_WaveOut PROGBITS 0000209c 00309c 0000b4 00 AX 0 0 4 + [41] .text.GPT_Start PROGBITS 00002150 003150 000010 00 AX 0 0 4 + [42] .text.GPT_Period_ PROGBITS 00002160 003160 000010 00 AX 0 0 4 + [43] .text.GPT_ConfigI PROGBITS 00002170 003170 00001c 00 AX 0 0 4 + [44] .text.UART0_DeIni PROGBITS 0000218c 00318c 000018 00 AX 0 0 4 + [45] .text.UART1_DeIni PROGBITS 000021a4 0031a4 000018 00 AX 0 0 4 + [46] .text.UART2_DeIni PROGBITS 000021bc 0031bc 000018 00 AX 0 0 4 + [47] .text.UART0_Int_E PROGBITS 000021d4 0031d4 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 000021f0 0031f0 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 0000220c 00320c 0000ec 00 AX 0 0 4 + [50] .text.UARTInit PROGBITS 000022f8 0032f8 000010 00 AX 0 0 4 + [51] .text.UARTInitRxT PROGBITS 00002308 003308 000010 00 AX 0 0 4 + [52] .text.EPT_Stop PROGBITS 00002318 003318 000028 00 AX 0 0 4 + [53] .text.startup.mai PROGBITS 00002340 003340 000070 00 AX 0 0 4 + [54] .text.delay_nms PROGBITS 000023b0 0033b0 00002c 00 AX 0 0 2 + [55] .text.GPT0_CONFIG PROGBITS 000023dc 0033dc 000094 00 AX 0 0 4 + [56] .text.BT_CONFIG PROGBITS 00002470 003470 000060 00 AX 0 0 4 + [57] .text.SYSCON_CONF PROGBITS 000024d0 0034d0 000062 00 AX 0 0 2 + [58] .text.APT32F102_i PROGBITS 00002534 003534 000050 00 AX 0 0 4 + [59] .text.SYSCONIntHa PROGBITS 00002584 003584 0000f0 00 AX 0 0 4 + [60] .text.IFCIntHandl PROGBITS 00002674 003674 000068 00 AX 0 0 4 + [61] .text.ADCIntHandl PROGBITS 000026dc 0036dc 000068 00 AX 0 0 4 + [62] .text.EPT0IntHand PROGBITS 00002744 003744 0001ac 00 AX 0 0 4 + [63] .text.WWDTHandler PROGBITS 000028f0 0038f0 000034 00 AX 0 0 4 + [64] .text.GPT0IntHand PROGBITS 00002924 003924 000080 00 AX 0 0 4 + [65] .text.RTCIntHandl PROGBITS 000029a4 0039a4 000070 00 AX 0 0 4 + [66] .text.UART0IntHan PROGBITS 00002a14 003a14 00003c 00 AX 0 0 4 + [67] .text.UART1IntHan PROGBITS 00002a50 003a50 00003c 00 AX 0 0 4 + [68] .text.UART2IntHan PROGBITS 00002a8c 003a8c 000094 00 AX 0 0 4 + [69] .text.SPI0IntHand PROGBITS 00002b20 003b20 0000e8 00 AX 0 0 4 + [70] .text.SIO0IntHand PROGBITS 00002c08 003c08 000054 00 AX 0 0 4 + [71] .text.EXI0IntHand PROGBITS 00002c5c 003c5c 000030 00 AX 0 0 4 + [72] .text.EXI1IntHand PROGBITS 00002c8c 003c8c 000030 00 AX 0 0 4 + [73] .text.EXI2to3IntH PROGBITS 00002cbc 003cbc 000048 00 AX 0 0 4 + [74] .text.EXI4to9IntH PROGBITS 00002d04 003d04 00005c 00 AX 0 0 4 + [75] .text.EXI10to15In PROGBITS 00002d60 003d60 000060 00 AX 0 0 4 + [76] .text.LPTIntHandl PROGBITS 00002dc0 003dc0 000034 00 AX 0 0 4 + [77] .text.BT0IntHandl PROGBITS 00002df4 003df4 00004c 00 AX 0 0 4 + [78] .text.BT1IntHandl PROGBITS 00002e40 003e40 000064 00 AX 0 0 4 + [79] .text.PriviledgeV PROGBITS 00002ea4 003ea4 000002 00 AX 0 0 2 + [80] .text.PendTrapHan PROGBITS 00002ea6 003ea6 000008 00 AX 0 0 2 + [81] .text.Trap3Handle PROGBITS 00002eae 003eae 000008 00 AX 0 0 2 + [82] .text.Trap2Handle PROGBITS 00002eb6 003eb6 000008 00 AX 0 0 2 + [83] .text.Trap1Handle PROGBITS 00002ebe 003ebe 000008 00 AX 0 0 2 + [84] .text.Trap0Handle PROGBITS 00002ec6 003ec6 000008 00 AX 0 0 2 + [85] .text.UnrecExecpH PROGBITS 00002ece 003ece 000008 00 AX 0 0 2 + [86] .text.BreakPointH PROGBITS 00002ed6 003ed6 000008 00 AX 0 0 2 + [87] .text.AccessErrHa PROGBITS 00002ede 003ede 000008 00 AX 0 0 2 + [88] .text.IllegalInst PROGBITS 00002ee6 003ee6 000008 00 AX 0 0 2 + [89] .text.MisalignedH PROGBITS 00002eee 003eee 000008 00 AX 0 0 2 + [90] .text.CNTAIntHand PROGBITS 00002ef6 003ef6 000008 00 AX 0 0 2 + [91] .text.I2CIntHandl PROGBITS 00002efe 003efe 000008 00 AX 0 0 2 + [92] .text.__divsi3 PROGBITS 00002f08 003f08 000024 00 AX 0 0 4 + [93] .text.__udivsi3 PROGBITS 00002f2c 003f2c 000024 00 AX 0 0 4 + [94] .text.CK_CPU_EnAl PROGBITS 00002f50 003f50 000006 00 AX 0 0 2 + [95] .text.UARTx_Init PROGBITS 00002f58 003f58 0000d8 00 AX 0 0 4 + [96] .text.UART2_RecvI PROGBITS 00003030 004030 000064 00 AX 0 0 4 + [97] .text.Dbg_Println PROGBITS 00003094 004094 00000c 00 AX 0 0 2 + [98] .text.RC522_Delay PROGBITS 000030a0 0040a0 000012 00 AX 0 0 2 + [99] .text.RC522_ReadW PROGBITS 000030b4 0040b4 000054 00 AX 0 0 4 + [100] .text.RC522_ReadR PROGBITS 00003108 004108 000038 00 AX 0 0 4 + [101] .text.RC522_Write PROGBITS 00003140 004140 000030 00 AX 0 0 4 + [102] .text.RC522_PcdRe PROGBITS 00003170 004170 00004c 00 AX 0 0 2 + [103] .text.RC522_SetBi PROGBITS 000031bc 0041bc 000018 00 AX 0 0 2 + [104] .text.RC522_PcdAn PROGBITS 000031d4 0041d4 00001a 00 AX 0 0 2 + [105] .text.RC522_Clear PROGBITS 000031ee 0041ee 000016 00 AX 0 0 2 + [106] .text.RC522_PcdAn PROGBITS 00003204 004204 00000c 00 AX 0 0 2 + [107] .text.RC522_Reset PROGBITS 00003210 004210 000016 00 AX 0 0 2 + [108] .text.RC522_Calul PROGBITS 00003226 004226 000066 00 AX 0 0 2 + [109] .text.M500PcdConf PROGBITS 0000328c 00428c 000052 00 AX 0 0 2 + [110] .text.RC522_Init PROGBITS 000032e0 0042e0 00009c 00 AX 0 0 4 + [111] .text.RC522_PcdCo PROGBITS 0000337c 00437c 00013a 00 AX 0 0 2 + [112] .text.RC522_PcdSe PROGBITS 000034b6 0044b6 00006a 00 AX 0 0 2 + [113] .text.RC522_PcdAu PROGBITS 00003520 004520 000058 00 AX 0 0 2 + [114] .text.RC522_PcdRe PROGBITS 00003578 004578 000088 00 AX 0 0 4 + [115] .text.RC522_PcdAn PROGBITS 00003600 004600 000074 00 AX 0 0 2 + [116] .text.Card_Read_T PROGBITS 00003674 004674 0000d4 00 AX 0 0 4 + [117] .text.Detect_SPI_ PROGBITS 00003748 004748 000040 00 AX 0 0 4 + [118] .text.RLY_Light_C PROGBITS 00003788 004788 000020 00 AX 0 0 4 + [119] .text.KEY1_LONG_P PROGBITS 000037a8 0047a8 000070 00 AX 0 0 4 + [120] .text.RLY_Light_C PROGBITS 00003818 004818 000030 00 AX 0 0 4 + [121] .text.LogicCtrl_I PROGBITS 00003848 004848 000040 00 AX 0 0 4 + [122] .text.Debounce_Ta PROGBITS 00003888 004888 000068 00 AX 0 0 4 + [123] .text.LogicCtrl_T PROGBITS 000038f0 0048f0 00008c 00 AX 0 0 4 + [124] .text.LogicCtrl_N PROGBITS 0000397c 00497c 000070 00 AX 0 0 4 + [125] .text.LogicCtrl_N PROGBITS 000039ec 0049ec 0000c8 00 AX 0 0 4 + [126] .text.Detect_WIFI PROGBITS 00003ab4 004ab4 000094 00 AX 0 0 4 + [127] .text.DM_Led_Task PROGBITS 00003b48 004b48 000064 00 AX 0 0 4 + [128] .text.button_init PROGBITS 00003bac 004bac 00003a 00 AX 0 0 2 + [129] .text.button_atta PROGBITS 00003be6 004be6 00000a 00 AX 0 0 2 + [130] .text.button_hand PROGBITS 00003bf0 004bf0 000120 00 AX 0 0 2 + [131] .text.button_star PROGBITS 00003d10 004d10 000024 00 AX 0 0 4 + [132] .text.button_tick PROGBITS 00003d34 004d34 00001c 00 AX 0 0 4 + [133] .text.read_button PROGBITS 00003d50 004d50 000014 00 AX 0 0 4 + [134] .text.TK_Sampling PROGBITS 00003d64 004d64 000058 00 AX 0 0 4 + [135] .text.TKEYIntHand PROGBITS 00003dbc 004dbc 000088 00 AX 0 0 4 + [136] .text.get_key_num PROGBITS 00003e44 004e44 000028 00 AX 0 0 4 + [137] .text.TK_Scan_Sta PROGBITS 00003e6c 004e6c 000020 00 AX 0 0 4 + [138] .text.TK_Keymap_p PROGBITS 00003e8c 004e8c 000180 00 AX 0 0 4 + [139] .text.TK_overflow PROGBITS 0000400c 00500c 00011c 00 AX 0 0 4 + [140] .text.TK_Baseline PROGBITS 00004128 005128 0001d0 00 AX 0 0 4 + [141] .text.TK_result_p PROGBITS 000042f8 0052f8 000054 00 AX 0 0 4 + [142] .text.CORETHandle PROGBITS 0000434c 00534c 000078 00 AX 0 0 4 + [143] .text.std_clk_cal PROGBITS 000043c4 0053c4 000284 00 AX 0 0 4 + [144] .RomCode PROGBITS 00004648 00609c 000000 00 W 0 0 1 + [145] .rodata PROGBITS 00004648 005648 000234 00 A 0 0 4 + [146] .data PROGBITS 20000000 006000 00009c 00 WA 0 0 4 + [147] .bss NOBITS 2000009c 00609c 0004a4 00 WA 0 0 4 + [148] .csky.attributes CSKY_ATTRIBUTES 00000000 00609c 000022 00 0 0 1 + [149] .comment PROGBITS 00000000 0060be 000042 01 MS 0 0 1 + [150] .csky_stack_size PROGBITS 00000000 006100 00080c 00 0 0 16 + [151] .debug_line PROGBITS 00000000 00690c 003945 00 0 0 1 + [152] .debug_info PROGBITS 00000000 00a251 02bdbe 00 0 0 1 + [153] .debug_abbrev PROGBITS 00000000 03600f 00285b 00 0 0 1 + [154] .debug_aranges PROGBITS 00000000 038870 000cc8 00 0 0 8 + [155] .debug_ranges PROGBITS 00000000 039538 000bc0 00 0 0 1 + [156] .debug_str PROGBITS 00000000 03a0f8 008800 01 MS 0 0 1 + [157] .debug_frame PROGBITS 00000000 0428f8 001dec 00 0 0 4 + [158] .debug_loc PROGBITS 00000000 0446e4 002dc4 00 0 0 1 + [159] .shstrtab STRTAB 00000000 04c3d8 000d26 00 0 0 1 + [160] .symtab SYMTAB 00000000 0474a8 003c10 10 161 662 4 + [161] .strtab STRTAB 00000000 04b0b8 001320 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x0487c 0x0487c R E 0x1000 + LOAD 0x006000 0x20000000 0x0000487c 0x0009c 0x00540 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.SYSCON_Int_Enable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.GPIO_Read_Output .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.EPT_Stop .text.startup.main .text.delay_nms .text.GPT0_CONFIG .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.Dbg_Println .text.RC522_Delay .text.RC522_ReadWriteOneByte .text.RC522_ReadRawRC .text.RC522_WriteRawRC .text.RC522_PcdReset .text.RC522_SetBitMask .text.RC522_PcdAntennaOn .text.RC522_ClearBitMask .text.RC522_PcdAntennaOff .text.RC522_Reset .text.RC522_CalulateCRC .text.M500PcdConfigISOType.part.1 .text.RC522_Init .text.RC522_PcdComMF522 .text.RC522_PcdSelect .text.RC522_PcdAuthState .text.RC522_PcdRequest .text.RC522_PcdAnticoll .text.Card_Read_TasK .text.Detect_SPI_task .text.RLY_Light_Ctrl.part.0 .text.KEY1_LONG_PRESS_RELEASE_Handler .text.RLY_Light_Ctrl .text.LogicCtrl_Init .text.Debounce_Task .text.LogicCtrl_Task .text.LogicCtrl_NoRF_Init .text.LogicCtrl_NoRF_Task .text.Detect_WIFI_Task .text.DM_Led_Task .text.button_init .text.button_attach .text.button_handler .text.button_start .text.button_ticks .text.read_button_GPIO .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl.part.0) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.DM_Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Debounce_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_button.o(.text.read_button_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInit) for UARTInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPT0_CONFIG) for GPT0_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_rc522.o(.text.RC522_Reset) for RC522_Reset + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_CalulateCRC) for RC522_CalulateCRC + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Init) for RC522_Init + Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdSelect) for RC522_PcdSelect + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) for RC522_PcdAuthState + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) for RC522_PcdRequest + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) for RC522_PcdAnticoll + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) for Card_Read_TasK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) for Detect_SPI_task + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) for LogicCtrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Debounce_Task) for Debounce_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) for LogicCtrl_Task + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) for LogicCtrl_NoRF_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) for LogicCtrl_NoRF_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) for Detect_WIFI_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.DM_Led_Task) for DM_Led_Task + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_init) for button_init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_attach) for button_attach + Obj/SYSTEM_button.o(.text.button_ticks) refers to Obj/SYSTEM_button.o(.text.button_handler) for button_handler + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_start) for button_start + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_button.o(.text.button_ticks) for button_ticks + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_button.o(.text.button_init) refers to memset_fast.o(.text) for memset + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_rc522.o(.text.RC522_PcdAuthState) refers to memcpy_fast.o(.text) for memcpy + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2894 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.EXTI_interrupt_CMD(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.GPIO_EXTI_interrupt(Obj/FWlib_apt32f102_syscon.o), (4 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_IntGroup_Set(Obj/FWlib_apt32f102_gpio.o), (268 bytes). + Removing .text.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3088 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3405 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3150 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4118 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3521 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTransmit(Obj/FWlib_apt32f102_uart.o), (30 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3637 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4837 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4945 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7594 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2843 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.delay_nus(Obj/mcu_initial.o), (34 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text.__modsi3(Obj/drivers_apt32f102.o), (36 bytes). + Removing .text.__umodsi3(Obj/drivers_apt32f102.o), (36 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (4 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (148 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (148 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (136 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (2 bytes). + Removing .text(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .data(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .text.M500PcdConfigISOType(Obj/SYSTEM_rc522.o), (18 bytes). + Removing .text.RC522_MFRC522_SelectTag(Obj/SYSTEM_rc522.o), (110 bytes). + Removing .text.RC522_PcdRead(Obj/SYSTEM_rc522.o), (84 bytes). + Removing .text.RC522_PcdWrite(Obj/SYSTEM_rc522.o), (142 bytes). + Removing .text(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .data(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .text.Ctrl_Backlight(Obj/SYSTEM_logic_ctrl.o), (36 bytes). + Removing .text.KEY1_LONG_PRESS_START_Handler(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text.BackLight_Task(Obj/SYSTEM_logic_ctrl.o), (52 bytes). + Removing .text(Obj/SYSTEM_button.o), (0 bytes). + Removing .data(Obj/SYSTEM_button.o), (0 bytes). + Removing .text.get_button_event(Obj/SYSTEM_button.o), (6 bytes). + Removing .text.button_stop(Obj/SYSTEM_button.o), (32 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (108 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + +614 unused seciton(s) (total 179253 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_button.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_logic_ctrl.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_rc522.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + $d 0x000019ec 0 .text + $t 0x000019ec 0 .text + $d 0x00001a50 0 .text.__main + $t 0x00001a50 0 .text.__main + $d 0x00001a74 0 .text.__main + SYSCON_General_CMD.part.0 0x00001a88 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001a88 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001a88 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001af4 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001afc 0 .text.SYSCON_RST_VALUE + $t 0x00001afc 0 .text.SYSCON_RST_VALUE + $d 0x00001b2c 0 .text.SYSCON_RST_VALUE + $d 0x00001b48 0 .text.SYSCON_General_CMD + $t 0x00001b48 0 .text.SYSCON_General_CMD + $d 0x00001b74 0 .text.SYSCON_General_CMD + $d 0x00001b78 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001b78 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001bf0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c00 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c00 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c24 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c28 0 .text.SYSCON_WDT_CMD + $t 0x00001c28 0 .text.SYSCON_WDT_CMD + $d 0x00001c58 0 .text.SYSCON_WDT_CMD + $d 0x00001c64 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001c64 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001c74 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001c78 0 .text.SYSCON_IWDCNT_Config + $t 0x00001c78 0 .text.SYSCON_IWDCNT_Config + $d 0x00001c88 0 .text.SYSCON_IWDCNT_Config + $d 0x00001c90 0 .text.SYSCON_LVD_Config + $t 0x00001c90 0 .text.SYSCON_LVD_Config + $d 0x00001ca8 0 .text.SYSCON_LVD_Config + $d 0x00001cb0 0 .text.LVD_Int_Enable + $t 0x00001cb0 0 .text.LVD_Int_Enable + $d 0x00001cc8 0 .text.LVD_Int_Enable + $d 0x00001ccc 0 .text.IWDT_Int_Enable + $t 0x00001ccc 0 .text.IWDT_Int_Enable + $d 0x00001ce4 0 .text.IWDT_Int_Enable + $d 0x00001ce8 0 .text.EXTI_trigger_CMD + $t 0x00001ce8 0 .text.EXTI_trigger_CMD + $d 0x00001d24 0 .text.EXTI_trigger_CMD + $d 0x00001d28 0 .text.SYSCON_Int_Enable + $t 0x00001d28 0 .text.SYSCON_Int_Enable + $d 0x00001d30 0 .text.SYSCON_Int_Enable + $d 0x00001d34 0 .text.SYSCON_INT_Priority + $t 0x00001d34 0 .text.SYSCON_INT_Priority + $d 0x00001d4c 0 .text.SYSCON_INT_Priority + $d 0x00001d58 0 .text.Set_INT_Priority + $t 0x00001d58 0 .text.Set_INT_Priority + $d 0x00001d84 0 .text.Set_INT_Priority + $d 0x00001d88 0 .text.GPIO_Init + $t 0x00001d88 0 .text.GPIO_Init + $d 0x00001d9a 0 .text.GPIO_Init + $t 0x00001da2 0 .text.GPIO_Init + $d 0x00001dfe 0 .text.GPIO_Init + $t 0x00001e06 0 .text.GPIO_Init + $d 0x00001e54 0 .text.GPIO_Init + $d 0x00001e68 0 .text.GPIO_PullHigh_Init + $t 0x00001e68 0 .text.GPIO_PullHigh_Init + $d 0x00001e7c 0 .text.GPIO_DriveStrength_EN + $t 0x00001e7c 0 .text.GPIO_DriveStrength_EN + $d 0x00001e8a 0 .text.GPIO_Write_High + $t 0x00001e8a 0 .text.GPIO_Write_High + $d 0x00001e92 0 .text.GPIO_Write_Low + $t 0x00001e92 0 .text.GPIO_Write_Low + $d 0x00001e9a 0 .text.GPIO_Reverse + $t 0x00001e9a 0 .text.GPIO_Reverse + $d 0x00001eb0 0 .text.GPIO_Read_Status + $t 0x00001eb0 0 .text.GPIO_Read_Status + $d 0x00001ec0 0 .text.GPIO_Read_Output + $t 0x00001ec0 0 .text.GPIO_Read_Output + $d 0x00001ed0 0 .text.LPT_Soft_Reset + $t 0x00001ed0 0 .text.LPT_Soft_Reset + $d 0x00001ee0 0 .text.LPT_Soft_Reset + $d 0x00001ee4 0 .text.WWDT_CNT_Load + $t 0x00001ee4 0 .text.WWDT_CNT_Load + $d 0x00001ef0 0 .text.WWDT_CNT_Load + $d 0x00001ef4 0 .text.BT_DeInit + $t 0x00001ef4 0 .text.BT_DeInit + $d 0x00001f10 0 .text.BT_Start + $t 0x00001f10 0 .text.BT_Start + $d 0x00001f18 0 .text.BT_Soft_Reset + $t 0x00001f18 0 .text.BT_Soft_Reset + $d 0x00001f22 0 .text.BT_Configure + $t 0x00001f22 0 .text.BT_Configure + $d 0x00001f3a 0 .text.BT_ControlSet_Configure + $t 0x00001f3a 0 .text.BT_ControlSet_Configure + $d 0x00001f66 0 .text.BT_Period_CMP_Write + $t 0x00001f66 0 .text.BT_Period_CMP_Write + $d 0x00001f6c 0 .text.BT_ConfigInterrupt_CMD + $t 0x00001f6c 0 .text.BT_ConfigInterrupt_CMD + $d 0x00001f80 0 .text.BT1_INT_ENABLE + $t 0x00001f80 0 .text.BT1_INT_ENABLE + $d 0x00001f8c 0 .text.BT1_INT_ENABLE + $d 0x00001f90 0 .text.GPT_IO_Init + $t 0x00001f90 0 .text.GPT_IO_Init + $d 0x00002028 0 .text.GPT_IO_Init + $d 0x00002030 0 .text.GPT_Configure + $t 0x00002030 0 .text.GPT_Configure + $d 0x00002040 0 .text.GPT_Configure + $d 0x00002044 0 .text.GPT_WaveCtrl_Configure + $t 0x00002044 0 .text.GPT_WaveCtrl_Configure + $d 0x00002084 0 .text.GPT_WaveCtrl_Configure + $d 0x00002088 0 .text.GPT_WaveLoad_Configure + $t 0x00002088 0 .text.GPT_WaveLoad_Configure + $d 0x00002098 0 .text.GPT_WaveLoad_Configure + $d 0x0000209c 0 .text.GPT_WaveOut_Configure + $t 0x0000209c 0 .text.GPT_WaveOut_Configure + $d 0x0000214c 0 .text.GPT_WaveOut_Configure + $d 0x00002150 0 .text.GPT_Start + $t 0x00002150 0 .text.GPT_Start + $d 0x0000215c 0 .text.GPT_Start + $d 0x00002160 0 .text.GPT_Period_CMP_Write + $t 0x00002160 0 .text.GPT_Period_CMP_Write + $d 0x0000216c 0 .text.GPT_Period_CMP_Write + $d 0x00002170 0 .text.GPT_ConfigInterrupt_CMD + $t 0x00002170 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00002188 0 .text.GPT_ConfigInterrupt_CMD + $d 0x0000218c 0 .text.UART0_DeInit + $t 0x0000218c 0 .text.UART0_DeInit + $d 0x000021a0 0 .text.UART0_DeInit + $d 0x000021a4 0 .text.UART1_DeInit + $t 0x000021a4 0 .text.UART1_DeInit + $d 0x000021b8 0 .text.UART1_DeInit + $d 0x000021bc 0 .text.UART2_DeInit + $t 0x000021bc 0 .text.UART2_DeInit + $d 0x000021d0 0 .text.UART2_DeInit + $d 0x000021d4 0 .text.UART0_Int_Enable + $t 0x000021d4 0 .text.UART0_Int_Enable + $d 0x000021e8 0 .text.UART0_Int_Enable + $d 0x000021f0 0 .text.UART2_Int_Enable + $t 0x000021f0 0 .text.UART2_Int_Enable + $d 0x00002204 0 .text.UART2_Int_Enable + $d 0x0000220c 0 .text.UART_IO_Init + $t 0x0000220c 0 .text.UART_IO_Init + $d 0x000022f0 0 .text.UART_IO_Init + $d 0x000022f8 0 .text.UARTInit + $t 0x000022f8 0 .text.UARTInit + $d 0x00002304 0 .text.UARTInit + $d 0x00002308 0 .text.UARTInitRxTxIntEn + $t 0x00002308 0 .text.UARTInitRxTxIntEn + $d 0x00002314 0 .text.UARTInitRxTxIntEn + $d 0x00002318 0 .text.EPT_Stop + $t 0x00002318 0 .text.EPT_Stop + $d 0x00002338 0 .text.EPT_Stop + $d 0x00002340 0 .text.startup.main + $t 0x00002340 0 .text.startup.main + $d 0x000023a4 0 .text.startup.main + $d 0x000023b0 0 .text.delay_nms + $t 0x000023b0 0 .text.delay_nms + $d 0x000023dc 0 .text.GPT0_CONFIG + $t 0x000023dc 0 .text.GPT0_CONFIG + $d 0x0000246c 0 .text.GPT0_CONFIG + $d 0x00002470 0 .text.BT_CONFIG + $t 0x00002470 0 .text.BT_CONFIG + $d 0x000024c8 0 .text.BT_CONFIG + $d 0x000024d0 0 .text.SYSCON_CONFIG + $t 0x000024d0 0 .text.SYSCON_CONFIG + $d 0x00002534 0 .text.APT32F102_init + $t 0x00002534 0 .text.APT32F102_init + $d 0x0000257c 0 .text.APT32F102_init + $d 0x00002584 0 .text.SYSCONIntHandler + $t 0x00002584 0 .text.SYSCONIntHandler + $d 0x00002670 0 .text.SYSCONIntHandler + $d 0x00002674 0 .text.IFCIntHandler + $t 0x00002674 0 .text.IFCIntHandler + $d 0x000026d8 0 .text.IFCIntHandler + $d 0x000026dc 0 .text.ADCIntHandler + $t 0x000026dc 0 .text.ADCIntHandler + $d 0x00002740 0 .text.ADCIntHandler + $d 0x00002744 0 .text.EPT0IntHandler + $t 0x00002744 0 .text.EPT0IntHandler + $d 0x000028e4 0 .text.EPT0IntHandler + $d 0x000028f0 0 .text.WWDTHandler + $t 0x000028f0 0 .text.WWDTHandler + $d 0x00002920 0 .text.WWDTHandler + $d 0x00002924 0 .text.GPT0IntHandler + $t 0x00002924 0 .text.GPT0IntHandler + $d 0x000029a0 0 .text.GPT0IntHandler + $d 0x000029a4 0 .text.RTCIntHandler + $t 0x000029a4 0 .text.RTCIntHandler + $d 0x00002a0c 0 .text.RTCIntHandler + $d 0x00002a14 0 .text.UART0IntHandler + $t 0x00002a14 0 .text.UART0IntHandler + $d 0x00002a4c 0 .text.UART0IntHandler + $d 0x00002a50 0 .text.UART1IntHandler + $t 0x00002a50 0 .text.UART1IntHandler + $d 0x00002a88 0 .text.UART1IntHandler + $d 0x00002a8c 0 .text.UART2IntHandler + $t 0x00002a8c 0 .text.UART2IntHandler + $d 0x00002b0c 0 .text.UART2IntHandler + $d 0x00002b20 0 .text.SPI0IntHandler + $t 0x00002b20 0 .text.SPI0IntHandler + $d 0x00002c04 0 .text.SPI0IntHandler + $d 0x00002c08 0 .text.SIO0IntHandler + $t 0x00002c08 0 .text.SIO0IntHandler + $d 0x00002c58 0 .text.SIO0IntHandler + $d 0x00002c5c 0 .text.EXI0IntHandler + $t 0x00002c5c 0 .text.EXI0IntHandler + $d 0x00002c88 0 .text.EXI0IntHandler + $d 0x00002c8c 0 .text.EXI1IntHandler + $t 0x00002c8c 0 .text.EXI1IntHandler + $d 0x00002cb8 0 .text.EXI1IntHandler + $d 0x00002cbc 0 .text.EXI2to3IntHandler + $t 0x00002cbc 0 .text.EXI2to3IntHandler + $d 0x00002d00 0 .text.EXI2to3IntHandler + $d 0x00002d04 0 .text.EXI4to9IntHandler + $t 0x00002d04 0 .text.EXI4to9IntHandler + $d 0x00002d5c 0 .text.EXI4to9IntHandler + $d 0x00002d60 0 .text.EXI10to15IntHandler + $t 0x00002d60 0 .text.EXI10to15IntHandler + $d 0x00002dbc 0 .text.EXI10to15IntHandler + $d 0x00002dc0 0 .text.LPTIntHandler + $t 0x00002dc0 0 .text.LPTIntHandler + $d 0x00002df0 0 .text.LPTIntHandler + $d 0x00002df4 0 .text.BT0IntHandler + $t 0x00002df4 0 .text.BT0IntHandler + $d 0x00002e3c 0 .text.BT0IntHandler + $d 0x00002e40 0 .text.BT1IntHandler + $t 0x00002e40 0 .text.BT1IntHandler + $d 0x00002e9c 0 .text.BT1IntHandler + $d 0x00002ea4 0 .text.PriviledgeVioHandler + $t 0x00002ea4 0 .text.PriviledgeVioHandler + $d 0x00002ea6 0 .text.PendTrapHandler + $t 0x00002ea6 0 .text.PendTrapHandler + $d 0x00002eae 0 .text.Trap3Handler + $t 0x00002eae 0 .text.Trap3Handler + $d 0x00002eb6 0 .text.Trap2Handler + $t 0x00002eb6 0 .text.Trap2Handler + $d 0x00002ebe 0 .text.Trap1Handler + $t 0x00002ebe 0 .text.Trap1Handler + $d 0x00002ec6 0 .text.Trap0Handler + $t 0x00002ec6 0 .text.Trap0Handler + $d 0x00002ece 0 .text.UnrecExecpHandler + $t 0x00002ece 0 .text.UnrecExecpHandler + $d 0x00002ed6 0 .text.BreakPointHandler + $t 0x00002ed6 0 .text.BreakPointHandler + $d 0x00002ede 0 .text.AccessErrHandler + $t 0x00002ede 0 .text.AccessErrHandler + $d 0x00002ee6 0 .text.IllegalInstrHandler + $t 0x00002ee6 0 .text.IllegalInstrHandler + $d 0x00002eee 0 .text.MisalignedHandler + $t 0x00002eee 0 .text.MisalignedHandler + $d 0x00002ef6 0 .text.CNTAIntHandler + $t 0x00002ef6 0 .text.CNTAIntHandler + $d 0x00002efe 0 .text.I2CIntHandler + $t 0x00002efe 0 .text.I2CIntHandler + $d 0x00002f08 0 .text.__divsi3 + $t 0x00002f08 0 .text.__divsi3 + $d 0x00002f28 0 .text.__divsi3 + $d 0x00002f2c 0 .text.__udivsi3 + $t 0x00002f2c 0 .text.__udivsi3 + $d 0x00002f4c 0 .text.__udivsi3 + $d 0x00002f50 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00002f50 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00002f58 0 .text.UARTx_Init + $t 0x00002f58 0 .text.UARTx_Init + $d 0x00003014 0 .text.UARTx_Init + $d 0x00003030 0 .text.UART2_RecvINT_Processing + $t 0x00003030 0 .text.UART2_RecvINT_Processing + $d 0x00003084 0 .text.UART2_RecvINT_Processing + $d 0x00003094 0 .text.Dbg_Println + $t 0x00003094 0 .text.Dbg_Println + $d 0x000030a0 0 .text.RC522_Delay + $t 0x000030a0 0 .text.RC522_Delay + $d 0x000030b4 0 .text.RC522_ReadWriteOneByte + $t 0x000030b4 0 .text.RC522_ReadWriteOneByte + $d 0x00003104 0 .text.RC522_ReadWriteOneByte + $d 0x00003108 0 .text.RC522_ReadRawRC + $t 0x00003108 0 .text.RC522_ReadRawRC + $d 0x0000313c 0 .text.RC522_ReadRawRC + $d 0x00003140 0 .text.RC522_WriteRawRC + $t 0x00003140 0 .text.RC522_WriteRawRC + $d 0x0000316c 0 .text.RC522_WriteRawRC + $d 0x00003170 0 .text.RC522_PcdReset + $t 0x00003170 0 .text.RC522_PcdReset + $d 0x000031bc 0 .text.RC522_SetBitMask + $t 0x000031bc 0 .text.RC522_SetBitMask + $d 0x000031d4 0 .text.RC522_PcdAntennaOn + $t 0x000031d4 0 .text.RC522_PcdAntennaOn + $d 0x000031ee 0 .text.RC522_ClearBitMask + $t 0x000031ee 0 .text.RC522_ClearBitMask + $d 0x00003204 0 .text.RC522_PcdAntennaOff + $t 0x00003204 0 .text.RC522_PcdAntennaOff + $d 0x00003210 0 .text.RC522_Reset + $t 0x00003210 0 .text.RC522_Reset + $d 0x00003226 0 .text.RC522_CalulateCRC + $t 0x00003226 0 .text.RC522_CalulateCRC + M500PcdConfigISOType.part.1 0x0000328c F 82 .text.M500PcdConfigISOType.part.1 + $d 0x0000328c 0 .text.M500PcdConfigISOType.part.1 + $t 0x0000328c 0 .text.M500PcdConfigISOType.part.1 + $d 0x000032e0 0 .text.RC522_Init + $t 0x000032e0 0 .text.RC522_Init + $d 0x00003370 0 .text.RC522_Init + $d 0x0000337c 0 .text.RC522_PcdComMF522 + $t 0x0000337c 0 .text.RC522_PcdComMF522 + $d 0x000034b6 0 .text.RC522_PcdSelect + $t 0x000034b6 0 .text.RC522_PcdSelect + $d 0x00003520 0 .text.RC522_PcdAuthState + $t 0x00003520 0 .text.RC522_PcdAuthState + $d 0x00003578 0 .text.RC522_PcdRequest + $t 0x00003578 0 .text.RC522_PcdRequest + $d 0x000035f8 0 .text.RC522_PcdRequest + $d 0x00003600 0 .text.RC522_PcdAnticoll + $t 0x00003600 0 .text.RC522_PcdAnticoll + $d 0x00003674 0 .text.Card_Read_TasK + $t 0x00003674 0 .text.Card_Read_TasK + $d 0x00003720 0 .text.Card_Read_TasK + $d 0x00003748 0 .text.Detect_SPI_task + $t 0x00003748 0 .text.Detect_SPI_task + $d 0x00003778 0 .text.Detect_SPI_task + RLY_Light_Ctrl.part.0 0x00003788 F 32 .text.RLY_Light_Ctrl.part.0 + $d 0x00003788 0 .text.RLY_Light_Ctrl.part.0 + $t 0x00003788 0 .text.RLY_Light_Ctrl.part.0 + $d 0x000037a0 0 .text.RLY_Light_Ctrl.part.0 + $d 0x000037a8 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $t 0x000037a8 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x000037f8 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00003818 0 .text.RLY_Light_Ctrl + $t 0x00003818 0 .text.RLY_Light_Ctrl + $d 0x00003840 0 .text.RLY_Light_Ctrl + $d 0x00003848 0 .text.LogicCtrl_Init + $t 0x00003848 0 .text.LogicCtrl_Init + $d 0x0000387c 0 .text.LogicCtrl_Init + $d 0x00003888 0 .text.Debounce_Task + $t 0x00003888 0 .text.Debounce_Task + $d 0x000038e4 0 .text.Debounce_Task + $d 0x000038f0 0 .text.LogicCtrl_Task + $t 0x000038f0 0 .text.LogicCtrl_Task + $d 0x00003968 0 .text.LogicCtrl_Task + $d 0x0000397c 0 .text.LogicCtrl_NoRF_Init + $t 0x0000397c 0 .text.LogicCtrl_NoRF_Init + $d 0x000039d8 0 .text.LogicCtrl_NoRF_Init + $d 0x000039ec 0 .text.LogicCtrl_NoRF_Task + $t 0x000039ec 0 .text.LogicCtrl_NoRF_Task + $d 0x00003a98 0 .text.LogicCtrl_NoRF_Task + $d 0x00003ab4 0 .text.Detect_WIFI_Task + $t 0x00003ab4 0 .text.Detect_WIFI_Task + $d 0x00003b24 0 .text.Detect_WIFI_Task + $d 0x00003b48 0 .text.DM_Led_Task + $t 0x00003b48 0 .text.DM_Led_Task + $d 0x00003b98 0 .text.DM_Led_Task + $d 0x00003bac 0 .text.button_init + $t 0x00003bac 0 .text.button_init + $d 0x00003be6 0 .text.button_attach + $t 0x00003be6 0 .text.button_attach + $d 0x00003bf0 0 .text.button_handler + $t 0x00003bf0 0 .text.button_handler + $d 0x00003d10 0 .text.button_start + $t 0x00003d10 0 .text.button_start + $d 0x00003d30 0 .text.button_start + $d 0x00003d34 0 .text.button_ticks + $t 0x00003d34 0 .text.button_ticks + $d 0x00003d4c 0 .text.button_ticks + $d 0x00003d50 0 .text.read_button_GPIO + $t 0x00003d50 0 .text.read_button_GPIO + $d 0x00003d60 0 .text.read_button_GPIO + $d 0x00003d64 0 .text.TK_Sampling_prog + $t 0x00003d64 0 .text.TK_Sampling_prog + $d 0x00003dac 0 .text.TK_Sampling_prog + $d 0x00003dbc 0 .text.TKEYIntHandler + $t 0x00003dbc 0 .text.TKEYIntHandler + $d 0x00003e38 0 .text.TKEYIntHandler + $d 0x00003e44 0 .text.get_key_number + $t 0x00003e44 0 .text.get_key_number + $d 0x00003e68 0 .text.get_key_number + $d 0x00003e6c 0 .text.TK_Scan_Start + $t 0x00003e6c 0 .text.TK_Scan_Start + $d 0x00003e84 0 .text.TK_Scan_Start + $d 0x00003e8c 0 .text.TK_Keymap_prog + $t 0x00003e8c 0 .text.TK_Keymap_prog + $d 0x00003fd4 0 .text.TK_Keymap_prog + $d 0x0000400c 0 .text.TK_overflow_predict + $t 0x0000400c 0 .text.TK_overflow_predict + $d 0x000040f4 0 .text.TK_overflow_predict + $d 0x00004128 0 .text.TK_Baseline_tracking + $t 0x00004128 0 .text.TK_Baseline_tracking + $d 0x000042cc 0 .text.TK_Baseline_tracking + $d 0x000042f8 0 .text.TK_result_prog + $t 0x000042f8 0 .text.TK_result_prog + $d 0x00004338 0 .text.TK_result_prog + $d 0x0000434c 0 .text.CORETHandler + $t 0x0000434c 0 .text.CORETHandler + $d 0x000043ac 0 .text.CORETHandler + $d 0x000043c4 0 .text.std_clk_calib + $t 0x000043c4 0 .text.std_clk_calib + $d 0x0000460c 0 .text.std_clk_calib + bp 0x00004648 O 16 .rodata + dp_l 0x00004658 O 16 .rodata + dp_h 0x00004668 O 16 .rodata + NUM.6033 0x200000a8 O 1 .bss + test_tick.5955 0x200000cc O 4 .bss + card_tick.5954 0x200000d0 O 4 .bss + head_handle 0x200000d4 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __memset_fast 0x00001964 w F 136 .text + memset 0x00001964 w F 136 .text + __memcpy_fast 0x000019ec w F 100 .text + memcpy 0x000019ec w F 100 .text + __main 0x00001a50 F 56 .text.__main + SYSCON_RST_VALUE 0x00001afc F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001b48 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001b78 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c00 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c28 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001c64 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001c78 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001c90 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001cb0 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001ccc F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001ce8 F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x00001d28 F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x00001d34 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001d58 F 48 .text.Set_INT_Priority + GPIO_Init 0x00001d88 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001e68 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001e7c F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e8a F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001e92 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00001e9a F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00001eb0 F 16 .text.GPIO_Read_Status + GPIO_Read_Output 0x00001ec0 F 16 .text.GPIO_Read_Output + LPT_Soft_Reset 0x00001ed0 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00001ee4 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00001ef4 F 28 .text.BT_DeInit + BT_Start 0x00001f10 F 8 .text.BT_Start + BT_Soft_Reset 0x00001f18 F 10 .text.BT_Soft_Reset + BT_Configure 0x00001f22 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00001f3a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00001f66 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00001f6c F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00001f80 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00001f90 F 160 .text.GPT_IO_Init + GPT_Configure 0x00002030 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00002044 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x00002088 F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x0000209c F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x00002150 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x00002160 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x00002170 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x0000218c F 24 .text.UART0_DeInit + UART1_DeInit 0x000021a4 F 24 .text.UART1_DeInit + UART2_DeInit 0x000021bc F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000021d4 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000021f0 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000220c F 236 .text.UART_IO_Init + UARTInit 0x000022f8 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x00002308 F 16 .text.UARTInitRxTxIntEn + EPT_Stop 0x00002318 F 40 .text.EPT_Stop + main 0x00002340 F 112 .text.startup.main + delay_nms 0x000023b0 F 44 .text.delay_nms + GPT0_CONFIG 0x000023dc F 148 .text.GPT0_CONFIG + BT_CONFIG 0x00002470 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x000024d0 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002534 F 80 .text.APT32F102_init + SYSCONIntHandler 0x00002584 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002674 F 104 .text.IFCIntHandler + ADCIntHandler 0x000026dc F 104 .text.ADCIntHandler + EPT0IntHandler 0x00002744 F 428 .text.EPT0IntHandler + WWDTHandler 0x000028f0 F 52 .text.WWDTHandler + GPT0IntHandler 0x00002924 F 128 .text.GPT0IntHandler + RTCIntHandler 0x000029a4 F 112 .text.RTCIntHandler + UART0IntHandler 0x00002a14 F 60 .text.UART0IntHandler + UART1IntHandler 0x00002a50 F 60 .text.UART1IntHandler + UART2IntHandler 0x00002a8c F 148 .text.UART2IntHandler + SPI0IntHandler 0x00002b20 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00002c08 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00002c5c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00002c8c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00002cbc F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00002d04 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00002d60 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x00002dc0 F 52 .text.LPTIntHandler + BT0IntHandler 0x00002df4 F 76 .text.BT0IntHandler + BT1IntHandler 0x00002e40 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00002ea4 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00002ea6 F 8 .text.PendTrapHandler + Trap3Handler 0x00002eae F 8 .text.Trap3Handler + Trap2Handler 0x00002eb6 F 8 .text.Trap2Handler + Trap1Handler 0x00002ebe F 8 .text.Trap1Handler + Trap0Handler 0x00002ec6 F 8 .text.Trap0Handler + UnrecExecpHandler 0x00002ece F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00002ed6 F 8 .text.BreakPointHandler + AccessErrHandler 0x00002ede F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00002ee6 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00002eee F 8 .text.MisalignedHandler + CNTAIntHandler 0x00002ef6 F 8 .text.CNTAIntHandler + I2CIntHandler 0x00002efe F 8 .text.I2CIntHandler + __divsi3 0x00002f08 F 36 .text.__divsi3 + __udivsi3 0x00002f2c F 36 .text.__udivsi3 + CK_CPU_EnAllNormalIrq 0x00002f50 F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x00002f58 F 216 .text.UARTx_Init + UART2_RecvINT_Processing 0x00003030 F 100 .text.UART2_RecvINT_Processing + Dbg_Println 0x00003094 F 12 .text.Dbg_Println + RC522_Delay 0x000030a0 F 18 .text.RC522_Delay + RC522_ReadWriteOneByte 0x000030b4 F 84 .text.RC522_ReadWriteOneByte + RC522_ReadRawRC 0x00003108 F 56 .text.RC522_ReadRawRC + RC522_WriteRawRC 0x00003140 F 48 .text.RC522_WriteRawRC + RC522_PcdReset 0x00003170 F 76 .text.RC522_PcdReset + RC522_SetBitMask 0x000031bc F 24 .text.RC522_SetBitMask + RC522_PcdAntennaOn 0x000031d4 F 26 .text.RC522_PcdAntennaOn + RC522_ClearBitMask 0x000031ee F 22 .text.RC522_ClearBitMask + RC522_PcdAntennaOff 0x00003204 F 12 .text.RC522_PcdAntennaOff + RC522_Reset 0x00003210 F 22 .text.RC522_Reset + RC522_CalulateCRC 0x00003226 F 102 .text.RC522_CalulateCRC + RC522_Init 0x000032e0 F 156 .text.RC522_Init + RC522_PcdComMF522 0x0000337c F 314 .text.RC522_PcdComMF522 + RC522_PcdSelect 0x000034b6 F 106 .text.RC522_PcdSelect + RC522_PcdAuthState 0x00003520 F 88 .text.RC522_PcdAuthState + RC522_PcdRequest 0x00003578 F 136 .text.RC522_PcdRequest + RC522_PcdAnticoll 0x00003600 F 116 .text.RC522_PcdAnticoll + Card_Read_TasK 0x00003674 F 212 .text.Card_Read_TasK + Detect_SPI_task 0x00003748 F 64 .text.Detect_SPI_task + KEY1_LONG_PRESS_RELEASE_Handler 0x000037a8 F 112 .text.KEY1_LONG_PRESS_RELEASE_Handler + RLY_Light_Ctrl 0x00003818 F 48 .text.RLY_Light_Ctrl + LogicCtrl_Init 0x00003848 F 64 .text.LogicCtrl_Init + Debounce_Task 0x00003888 F 104 .text.Debounce_Task + LogicCtrl_Task 0x000038f0 F 140 .text.LogicCtrl_Task + LogicCtrl_NoRF_Init 0x0000397c F 112 .text.LogicCtrl_NoRF_Init + LogicCtrl_NoRF_Task 0x000039ec F 200 .text.LogicCtrl_NoRF_Task + Detect_WIFI_Task 0x00003ab4 F 148 .text.Detect_WIFI_Task + DM_Led_Task 0x00003b48 F 100 .text.DM_Led_Task + button_init 0x00003bac F 58 .text.button_init + button_attach 0x00003be6 F 10 .text.button_attach + button_handler 0x00003bf0 F 288 .text.button_handler + button_start 0x00003d10 F 36 .text.button_start + button_ticks 0x00003d34 F 28 .text.button_ticks + read_button_GPIO 0x00003d50 F 20 .text.read_button_GPIO + TK_Sampling_prog 0x00003d64 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00003dbc F 136 .text.TKEYIntHandler + get_key_number 0x00003e44 F 40 .text.get_key_number + TK_Scan_Start 0x00003e6c F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00003e8c F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000400c F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00004128 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x000042f8 F 84 .text.TK_result_prog + CORETHandler 0x0000434c F 120 .text.CORETHandler + std_clk_calib 0x000043c4 F 644 .text.std_clk_calib + __thenan_df 0x00004678 O 20 .rodata + __clz_tab 0x0000468c O 256 .rodata + _end_rodata 0x0000487c 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + _bss_start 0x2000009c 0 .bss + rf_exist 0x2000009c O 1 .bss + last_state 0x2000009d O 1 .bss + finish_flag 0x2000009e O 1 .bss + detect_tick 0x200000a0 O 4 .bss + detect_count 0x200000a4 O 1 .bss + test_state 0x200000a5 O 1 .bss + SysTick_100us 0x200000ac O 4 .bss + SysTick_1ms 0x200000b0 O 4 .bss + RS485_Comming 0x200000b4 O 4 .bss + RS485_Comm_Flag 0x200000b8 O 4 .bss + RS485_Comm_Start 0x200000bc O 4 .bss + RS485_Comm_End 0x200000c0 O 4 .bss + scan_tick 0x200000c4 O 4 .bss + LED_STATE 0x200000c8 O 1 .bss + Press_debounce_data 0x200000d8 O 1 .bss + TK_Lowpower_mode 0x200000d9 O 1 .bss + TK_Lowpower_level 0x200000da O 1 .bss + TK_longpress_time 0x200000dc O 4 .bss + Release_debounce_data 0x200000e0 O 1 .bss + Key_mode 0x200000e1 O 1 .bss + TK_icon 0x200000e2 O 34 .bss + MultiTimes_Filter 0x20000104 O 1 .bss + Base_Speed 0x20000105 O 1 .bss + TK_IO_ENABLE 0x20000108 O 4 .bss + Valid_Key_Num 0x2000010c O 1 .bss + TK_senprd 0x2000010e O 34 .bss + TK_Wakeup_level 0x20000130 O 1 .bss + TK_Triggerlevel 0x20000132 O 34 .bss + TK_EC_LEVEL 0x20000154 O 2 .bss + TK_FVR_LEVEL 0x20000156 O 2 .bss + TK_BaseCnt 0x20000158 O 4 .bss + TK_PSEL_MODE 0x2000015c O 2 .bss + R_CMPB_BUF 0x20000160 O 4 .bss + R_CMPA_BUF 0x20000164 O 4 .bss + R_SIORX_buf 0x20000168 O 40 .bss + g_uart 0x20000190 O 115 .bss + CardInfo 0x20000204 O 48 .bss + g_read 0x20000234 O 8 .bss + KEY1 0x2000023c O 48 .bss + dm_in 0x2000026c O 9 .bss + baseline_data0 0x20000278 O 34 .bss + TK_Postive_build2 0x2000029a O 17 .bss + Key_Map1 0x200002ac O 4 .bss + offset_data2_abs 0x200002b0 O 34 .bss + scan_f 0x200002d2 O 1 .bss + offset_data1_abs 0x200002d4 O 34 .bss + Release_debounce0 0x200002f6 O 17 .bss + Key_Map0 0x20000308 O 4 .bss + bsae_over_f 0x2000030c O 1 .bss + scan_cnt 0x2000030e O 2 .bss + Press_debounce0 0x20000310 O 17 .bss + offset_data0 0x20000322 O 34 .bss + sampling_data1 0x20000344 O 34 .bss + Key_Map2 0x20000368 O 4 .bss + Release_debounce1 0x2000036c O 17 .bss + tk_overflow_f 0x2000037d O 1 .bss + TK_Negtive_build2 0x2000037e O 17 .bss + base_update_f 0x2000038f O 1 .bss + TK_Postive_build1 0x20000390 O 17 .bss + time_cnt 0x200003a4 O 4 .bss + lpt_scan_pend_cnt 0x200003a8 O 2 .bss + TK_track_cnt 0x200003aa O 1 .bss + Key_Map 0x200003ac O 4 .bss + baseline_data1 0x200003b0 O 34 .bss + TK_Postive_build0 0x200003d2 O 17 .bss + sampling_data2 0x200003e4 O 34 .bss + offset_data1 0x20000406 O 34 .bss + TK_ovrdect_cnt 0x20000428 O 1 .bss + Press_debounce2 0x20000429 O 17 .bss + TK_Negtive_build1 0x2000043a O 17 .bss + tk_num 0x2000044b O 1 .bss + TK_Negtive_build0 0x2000044c O 17 .bss + Press_debounce1 0x2000045d O 17 .bss + Release_debounce2 0x2000046e O 17 .bss + r_Key_Map_Temp 0x20000480 O 4 .bss + tk_seque 0x20000484 O 17 .bss + scan_step 0x20000495 O 1 .bss + baseline_data2 0x20000496 O 34 .bss + tk_sampling_max 0x200004b8 O 34 .bss + offset_data0_abs 0x200004da O 34 .bss + offset_data2 0x200004fc O 34 .bss + sampling_data0 0x2000051e O 34 .bss + _ebss 0x20000540 0 .bss + _end 0x20000540 0 .bss + end 0x20000540 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x0000487c, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1011 .text pow.o + 0x00000b5e 0x00000006 Code RO 1019 .text fabs.o + 0x00000b64 0x00000020 Code RO 1025 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1032 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1043 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1048 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1055 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1062 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1069 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1076 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1083 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1090 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1097 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1104 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1118 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1125 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1132 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1138 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1145 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1152 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1173 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1178 .text memcpy_fast.o + 0x00001a50 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001a88 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001afc 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001b48 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001b78 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c00 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c28 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001c64 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001c78 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c90 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cb0 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001ccc 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001ce8 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d28 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d34 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001d58 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001d88 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001e68 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001e7c 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e8a 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001e92 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001e9a 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00001eb0 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00001ec0 0x00000010 Code RO 152 .text.GPIO_Read_Output Obj/FWlib_apt32f102_gpio.o + 0x00001ed0 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00001ee4 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00001ef4 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00001f10 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00001f18 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00001f22 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f3a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f66 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00001f6c 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00001f80 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00001f90 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x00002030 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002044 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002088 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000209c 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002150 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x00002160 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x00002170 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x0000218c 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021a4 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021bc 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021d4 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000021f0 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000220c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000022f8 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x00002308 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002318 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002340 0x00000070 Code RO 690 .text.startup.main Obj/main.o + 0x000023b0 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x000023dc 0x00000094 Code RO 711 .text.GPT0_CONFIG Obj/mcu_initial.o + 0x00002470 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x000024d0 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002534 0x00000050 Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00002584 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002674 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x000026dc 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00002744 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x000028f0 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00002924 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x000029a4 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00002a14 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00002a50 0x0000003c Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00002a8c 0x00000094 Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00002b20 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00002c08 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00002c5c 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00002c8c 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00002cbc 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00002d04 0x0000005c Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00002d60 0x00000060 Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00002dc0 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00002df4 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00002e40 0x00000064 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00002ea4 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00002ea6 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00002eae 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00002eb6 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00002ebe 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00002ec6 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00002ece 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00002ed6 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00002ede 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00002ee6 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00002eee 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00002ef6 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00002efe 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00002f08 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00002f2c 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00002f50 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00002f58 0x000000d8 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003030 0x00000064 Code RO 823 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003094 0x0000000c Code RO 829 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x000030a0 0x00000012 Code RO 847 .text.RC522_Delay Obj/SYSTEM_rc522.o + 0x000030b4 0x00000054 Code RO 848 .text.RC522_ReadWriteOneByte Obj/SYSTEM_rc522.o + 0x00003108 0x00000038 Code RO 849 .text.RC522_ReadRawRC Obj/SYSTEM_rc522.o + 0x00003140 0x00000030 Code RO 850 .text.RC522_WriteRawRC Obj/SYSTEM_rc522.o + 0x00003170 0x0000004c Code RO 851 .text.RC522_PcdReset Obj/SYSTEM_rc522.o + 0x000031bc 0x00000018 Code RO 852 .text.RC522_SetBitMask Obj/SYSTEM_rc522.o + 0x000031d4 0x0000001a Code RO 853 .text.RC522_PcdAntennaOn Obj/SYSTEM_rc522.o + 0x000031ee 0x00000016 Code RO 854 .text.RC522_ClearBitMask Obj/SYSTEM_rc522.o + 0x00003204 0x0000000c Code RO 855 .text.RC522_PcdAntennaOff Obj/SYSTEM_rc522.o + 0x00003210 0x00000016 Code RO 856 .text.RC522_Reset Obj/SYSTEM_rc522.o + 0x00003226 0x00000066 Code RO 857 .text.RC522_CalulateCRC Obj/SYSTEM_rc522.o + 0x0000328c 0x00000052 Code RO 858 .text.M500PcdConfigISOType.part.1 Obj/SYSTEM_rc522.o + 0x000032e0 0x0000009c Code RO 860 .text.RC522_Init Obj/SYSTEM_rc522.o + 0x0000337c 0x0000013a Code RO 861 .text.RC522_PcdComMF522 Obj/SYSTEM_rc522.o + 0x000034b6 0x0000006a Code RO 863 .text.RC522_PcdSelect Obj/SYSTEM_rc522.o + 0x00003520 0x00000058 Code RO 864 .text.RC522_PcdAuthState Obj/SYSTEM_rc522.o + 0x00003578 0x00000088 Code RO 867 .text.RC522_PcdRequest Obj/SYSTEM_rc522.o + 0x00003600 0x00000074 Code RO 868 .text.RC522_PcdAnticoll Obj/SYSTEM_rc522.o + 0x00003674 0x000000d4 Code RO 869 .text.Card_Read_TasK Obj/SYSTEM_rc522.o + 0x00003748 0x00000040 Code RO 870 .text.Detect_SPI_task Obj/SYSTEM_rc522.o + 0x00003788 0x00000020 Code RO 888 .text.RLY_Light_Ctrl.part.0 Obj/SYSTEM_logic_ctrl.o + 0x000037a8 0x00000070 Code RO 889 .text.KEY1_LONG_PRESS_RELEASE_Handler Obj/SYSTEM_logic_ctrl.o + 0x00003818 0x00000030 Code RO 891 .text.RLY_Light_Ctrl Obj/SYSTEM_logic_ctrl.o + 0x00003848 0x00000040 Code RO 892 .text.LogicCtrl_Init Obj/SYSTEM_logic_ctrl.o + 0x00003888 0x00000068 Code RO 893 .text.Debounce_Task Obj/SYSTEM_logic_ctrl.o + 0x000038f0 0x0000008c Code RO 894 .text.LogicCtrl_Task Obj/SYSTEM_logic_ctrl.o + 0x0000397c 0x00000070 Code RO 896 .text.LogicCtrl_NoRF_Init Obj/SYSTEM_logic_ctrl.o + 0x000039ec 0x000000c8 Code RO 897 .text.LogicCtrl_NoRF_Task Obj/SYSTEM_logic_ctrl.o + 0x00003ab4 0x00000094 Code RO 899 .text.Detect_WIFI_Task Obj/SYSTEM_logic_ctrl.o + 0x00003b48 0x00000064 Code RO 900 .text.DM_Led_Task Obj/SYSTEM_logic_ctrl.o + 0x00003bac 0x0000003a Code RO 918 .text.button_init Obj/SYSTEM_button.o + 0x00003be6 0x0000000a Code RO 919 .text.button_attach Obj/SYSTEM_button.o + 0x00003bf0 0x00000120 Code RO 921 .text.button_handler Obj/SYSTEM_button.o + 0x00003d10 0x00000024 Code RO 922 .text.button_start Obj/SYSTEM_button.o + 0x00003d34 0x0000001c Code RO 924 .text.button_ticks Obj/SYSTEM_button.o + 0x00003d50 0x00000014 Code RO 925 .text.read_button_GPIO Obj/SYSTEM_button.o + 0x00003d64 0x00000058 Code RO 957 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00003dbc 0x00000088 Code RO 961 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00003e44 0x00000028 Code RO 962 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00003e6c 0x00000020 Code RO 964 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00003e8c 0x00000180 Code RO 965 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000400c 0x0000011c Code RO 966 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00004128 0x000001d0 Code RO 967 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x000042f8 0x00000054 Code RO 968 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000434c 0x00000078 Code RO 969 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000043c4 0x00000284 Code RO 991 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00004648 0x00000030 Data RO 1014 .rodata pow.o + 0x00004678 0x00000014 Data RO 1114 .rodata _thenan_df.o + 0x0000468c 0x00000100 Data RO 1162 .rodata _clz.o + 0x0000478c 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x00004797 0x0000007a Data RO 871 .rodata.str1.1 Obj/SYSTEM_rc522.o + 0x00004811 0x00000068 Data RO 901 .rodata.str1.1 Obj/SYSTEM_logic_ctrl.o + 0x00004879 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000540, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 948 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x0000000a Zero RW 689 .bss Obj/main.o + 0x200000a6 0x00000002 PAD + 0x200000a8 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000b4 0x00000010 Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200000c4 0x00000004 Zero RW 846 .bss Obj/SYSTEM_rc522.o + 0x200000c8 0x0000000c Zero RW 887 .bss Obj/SYSTEM_logic_ctrl.o + 0x200000d4 0x00000004 Zero RW 917 .bss Obj/SYSTEM_button.o + 0x200000d8 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x2000015e 0x00000002 PAD + 0x20000160 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x20000190 0x00000073 Zero RW 843 COMMON Obj/SYSTEM_uart.o + 0x20000203 0x00000001 PAD + 0x20000204 0x00000030 Zero RW 884 COMMON Obj/SYSTEM_rc522.o + 0x20000234 0x00000041 Zero RW 914 COMMON Obj/SYSTEM_logic_ctrl.o + 0x20000275 0x00000003 PAD + 0x20000278 0x000002c8 Zero RW 987 COMMON FWlib_apt32f102_tkey_c_1_17.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 269 Obj/arch_crt0.o + 56 0 0 0 803 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21132 Obj/FWlib_apt32f102_syscon.o + 328 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 396 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 112 11 0 144 10945 Obj/main.o + 466 0 0 0 16126 Obj/mcu_initial.o + 2434 0 0 60 14261 Obj/mcu_interrupt.o + 72 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 328 0 0 131 12034 Obj/SYSTEM_uart.o + 1764 122 0 52 15949 Obj/SYSTEM_rc522.o + 1060 104 0 77 12284 Obj/SYSTEM_logic_ctrl.o + 440 0 0 4 11539 Obj/SYSTEM_button.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 9404 237 104 468 240096 Object Totals + 4 3 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + ------------------------------------------------------------ + 3172 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + ------------------------------------------------------------ + 236 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 17980 564 156 1188 265110 Grand Totals + 17980 564 156 1188 265110 Elf Image Totals + 17980 564 156 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 18544 ( 18.11kB) +Total RW Size (RW Data + ZI Data) 1344 ( 1.31kB) +Total ROM Size (Code + RO Data + RW Data) 18700 ( 18.26kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241016.asm b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241016.asm new file mode 100644 index 0000000..a1f822a --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241016.asm @@ -0,0 +1,13663 @@ + +.//Obj/RF_T1F_CR_V01_20241016.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 000043d2 .long 0x000043d2 + 8: 000043c2 .long 0x000043c2 + c: 00000184 .long 0x00000184 + 10: 000043ca .long 0x000043ca + 14: 00004388 .long 0x00004388 + 18: 00000184 .long 0x00000184 + 1c: 000043ba .long 0x000043ba + 20: 000043b2 .long 0x000043b2 + 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: 000043aa .long 0x000043aa + 44: 000043a2 .long 0x000043a2 + 48: 0000439a .long 0x0000439a + 4c: 00004392 .long 0x00004392 + 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: 0000438a .long 0x0000438a + 80: 000057ac .long 0x000057ac + 84: 00003a68 .long 0x00003a68 + 88: 00003b58 .long 0x00003b58 + 8c: 00003bc0 .long 0x00003bc0 + 90: 00003c28 .long 0x00003c28 + 94: 00000184 .long 0x00000184 + 98: 00003dd4 .long 0x00003dd4 + 9c: 00004140 .long 0x00004140 + a0: 00004170 .long 0x00004170 + a4: 00003e08 .long 0x00003e08 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00003e88 .long 0x00003e88 + b4: 00003ef8 .long 0x00003ef8 + b8: 00003f34 .long 0x00003f34 + bc: 00003f70 .long 0x00003f70 + c0: 00000184 .long 0x00000184 + c4: 000043e2 .long 0x000043e2 + c8: 00000184 .long 0x00000184 + cc: 00004004 .long 0x00004004 + d0: 000040ec .long 0x000040ec + d4: 000041a0 .long 0x000041a0 + d8: 000041e8 .long 0x000041e8 + dc: 00004244 .long 0x00004244 + e0: 000043da .long 0x000043da + e4: 0000521c .long 0x0000521c + e8: 000042a4 .long 0x000042a4 + ec: 00000184 .long 0x00000184 + f0: 000042d8 .long 0x000042d8 + f4: 00004324 .long 0x00004324 + 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, 0x2f14 // 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, 0x3824 // 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: 00002f14 .long 0x00002f14 + 198: 00000160 .long 0x00000160 + 19c: 00003824 .long 0x00003824 + 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, 0x5aa8 // 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: 00005aa8 .long 0x00005aa8 + 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, 0x5aa8 // 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, 0x5aa8 // 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: 00005aa8 .long 0x00005aa8 + 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, 0x5ad8 // 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: 00005ad8 .long 0x00005ad8 + +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, 0x5ad8 // 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: 00005ad8 .long 0x00005ad8 + 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, 0x5ad8 // 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: 00005ad8 .long 0x00005ad8 + +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, 0x5aec // 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: 00005aec .long 0x00005aec + +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 <__cskyvprintfsnprintf>: + 1964: 1422 subi r14, r14, 8 + 1966: b861 st.w r3, (r14, 0x4) + 1968: b840 st.w r2, (r14, 0x0) + 196a: 14d0 push r15 + 196c: 1421 subi r14, r14, 4 + 196e: 9862 ld.w r3, (r14, 0x8) + 1970: b860 st.w r3, (r14, 0x0) + 1972: 9840 ld.w r2, (r14, 0x0) + 1974: 1b03 addi r3, r14, 12 + 1976: e0000026 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + 197a: 1401 addi r14, r14, 4 + 197c: d9ee2000 ld.w r15, (r14, 0x0) + 1980: 1403 addi r14, r14, 12 + 1982: 783c jmp r15 + +00001984 : + 1984: 14d3 push r4-r6, r15 + 1986: 6d4b mov r5, r2 + 1988: 9582 ld.w r4, (r5, 0x8) + 198a: 9241 ld.w r2, (r2, 0x4) + 198c: 610a subu r4, r2 + 198e: 3c40 cmpnei r4, 0 + 1990: 6d87 mov r6, r1 + 1992: 0c16 bf 0x19be // 19be + 1994: 6504 cmphs r1, r4 + 1996: 0802 bt 0x199a // 199a + 1998: 6d07 mov r4, r1 + 199a: 9560 ld.w r3, (r5, 0x0) + 199c: 3b40 cmpnei r3, 0 + 199e: 0c0d bf 0x19b8 // 19b8 + 19a0: 60c8 addu r3, r2 + 19a2: 6c43 mov r1, r0 + 19a4: 6c93 mov r2, r4 + 19a6: 6c0f mov r0, r3 + 19a8: e000007e bsr 0x1aa4 // 1aa4 <__memcpy_fast> + 19ac: 9500 ld.w r0, (r5, 0x0) + 19ae: 9521 ld.w r1, (r5, 0x4) + 19b0: 6010 addu r0, r4 + 19b2: 6004 addu r0, r1 + 19b4: 3200 movi r2, 0 + 19b6: a040 st.b r2, (r0, 0x0) + 19b8: 9561 ld.w r3, (r5, 0x4) + 19ba: 610c addu r4, r3 + 19bc: b581 st.w r4, (r5, 0x4) + 19be: 6c1b mov r0, r6 + 19c0: 1493 pop r4-r6, r15 + +000019c2 <__cskyvprintfvsnprintf>: + 19c2: 14d3 push r4-r6, r15 + 19c4: 1425 subi r14, r14, 20 + 19c6: 6d07 mov r4, r1 + 19c8: 6d43 mov r5, r0 + 19ca: 6c4b mov r1, r2 + 19cc: 1802 addi r0, r14, 8 + 19ce: 3200 movi r2, 0 + 19d0: 3c40 cmpnei r4, 0 + 19d2: b0a0 st.w r5, (r0, 0x0) + 19d4: b041 st.w r2, (r0, 0x4) + 19d6: 0c1c bf 0x1a0e // 1a0e <__cskyvprintfvsnprintf+0x4c> + 19d8: 5cc3 subi r6, r4, 1 + 19da: b0c2 st.w r6, (r0, 0x8) + 19dc: b800 st.w r0, (r14, 0x0) + 19de: 6c8f mov r2, r3 + 19e0: 100e lrw r0, 0x1984 // 1a18 <__cskyvprintfvsnprintf+0x56> + 19e2: b801 st.w r0, (r14, 0x4) + 19e4: 6c3b mov r0, r14 + 19e6: e00000ab bsr 0x1b3c // 1b3c <__v2_printf> + 19ea: 3d40 cmpnei r5, 0 + 19ec: 0c0f bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19ee: 3c40 cmpnei r4, 0 + 19f0: 0c0d bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f2: 38df btsti r0, 31 + 19f4: 080b bt 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f6: 3300 movi r3, 0 + 19f8: 2b00 subi r3, 1 + 19fa: 64d2 cmpne r4, r3 + 19fc: 0c0b bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 19fe: 6500 cmphs r0, r4 + 1a00: 0c09 bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 1a02: 6114 addu r4, r5 + 1a04: 2c00 subi r4, 1 + 1a06: 3100 movi r1, 0 + 1a08: a420 st.b r1, (r4, 0x0) + 1a0a: 1405 addi r14, r14, 20 + 1a0c: 1493 pop r4-r6, r15 + 1a0e: 3600 movi r6, 0 + 1a10: 07e5 br 0x19da // 19da <__cskyvprintfvsnprintf+0x18> + 1a12: 5d80 addu r4, r5, r0 + 1a14: 07f9 br 0x1a06 // 1a06 <__cskyvprintfvsnprintf+0x44> + 1a16: 0000 bkpt + 1a18: 00001984 .long 0x00001984 + +00001a1c <__memset_fast>: + 1a1c: 14c3 push r4-r6 + 1a1e: 7444 zextb r1, r1 + 1a20: 3a40 cmpnei r2, 0 + 1a22: 0c1f bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a24: 6d43 mov r5, r0 + 1a26: 6d03 mov r4, r0 + 1a28: 3603 movi r6, 3 + 1a2a: 6918 and r4, r6 + 1a2c: 3c40 cmpnei r4, 0 + 1a2e: 0c1a bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a30: a520 st.b r1, (r5, 0x0) + 1a32: 2a00 subi r2, 1 + 1a34: 3a40 cmpnei r2, 0 + 1a36: 0c15 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a38: 2500 addi r5, 1 + 1a3a: 6d17 mov r4, r5 + 1a3c: 3603 movi r6, 3 + 1a3e: 6918 and r4, r6 + 1a40: 3c40 cmpnei r4, 0 + 1a42: 0c10 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a44: a520 st.b r1, (r5, 0x0) + 1a46: 2a00 subi r2, 1 + 1a48: 3a40 cmpnei r2, 0 + 1a4a: 0c0b bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a4c: 2500 addi r5, 1 + 1a4e: 6d17 mov r4, r5 + 1a50: 3603 movi r6, 3 + 1a52: 6918 and r4, r6 + 1a54: 3c40 cmpnei r4, 0 + 1a56: 0c06 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a58: a520 st.b r1, (r5, 0x0) + 1a5a: 2a00 subi r2, 1 + 1a5c: 2500 addi r5, 1 + 1a5e: 0402 br 0x1a62 // 1a62 <__memset_fast+0x46> + 1a60: 1483 pop r4-r6 + 1a62: 4168 lsli r3, r1, 8 + 1a64: 6c4c or r1, r3 + 1a66: 4170 lsli r3, r1, 16 + 1a68: 6c4c or r1, r3 + 1a6a: 3a2f cmplti r2, 16 + 1a6c: 0809 bt 0x1a7e // 1a7e <__memset_fast+0x62> + 1a6e: b520 st.w r1, (r5, 0x0) + 1a70: b521 st.w r1, (r5, 0x4) + 1a72: b522 st.w r1, (r5, 0x8) + 1a74: b523 st.w r1, (r5, 0xc) + 1a76: 2a0f subi r2, 16 + 1a78: 250f addi r5, 16 + 1a7a: 3a2f cmplti r2, 16 + 1a7c: 0ff9 bf 0x1a6e // 1a6e <__memset_fast+0x52> + 1a7e: 3a23 cmplti r2, 4 + 1a80: 0806 bt 0x1a8c // 1a8c <__memset_fast+0x70> + 1a82: 2a03 subi r2, 4 + 1a84: b520 st.w r1, (r5, 0x0) + 1a86: 2503 addi r5, 4 + 1a88: 3a23 cmplti r2, 4 + 1a8a: 0ffc bf 0x1a82 // 1a82 <__memset_fast+0x66> + 1a8c: 3a40 cmpnei r2, 0 + 1a8e: 0fe9 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a90: 2a00 subi r2, 1 + 1a92: a520 st.b r1, (r5, 0x0) + 1a94: 3a40 cmpnei r2, 0 + 1a96: 0fe5 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a98: 2a00 subi r2, 1 + 1a9a: a521 st.b r1, (r5, 0x1) + 1a9c: 3a40 cmpnei r2, 0 + 1a9e: 0fe1 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1aa0: a522 st.b r1, (r5, 0x2) + 1aa2: 1483 pop r4-r6 + +00001aa4 <__memcpy_fast>: + 1aa4: 14c3 push r4-r6 + 1aa6: 6d83 mov r6, r0 + 1aa8: 6d07 mov r4, r1 + 1aaa: 6d18 or r4, r6 + 1aac: 3303 movi r3, 3 + 1aae: 690c and r4, r3 + 1ab0: 3c40 cmpnei r4, 0 + 1ab2: 0c0b bf 0x1ac8 // 1ac8 <__memcpy_fast+0x24> + 1ab4: 3a40 cmpnei r2, 0 + 1ab6: 0c08 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1ab8: 8160 ld.b r3, (r1, 0x0) + 1aba: 2100 addi r1, 1 + 1abc: 2a00 subi r2, 1 + 1abe: a660 st.b r3, (r6, 0x0) + 1ac0: 2600 addi r6, 1 + 1ac2: 3a40 cmpnei r2, 0 + 1ac4: 0bfa bt 0x1ab8 // 1ab8 <__memcpy_fast+0x14> + 1ac6: 1483 pop r4-r6 + 1ac8: 3a2f cmplti r2, 16 + 1aca: 080e bt 0x1ae6 // 1ae6 <__memcpy_fast+0x42> + 1acc: 91a0 ld.w r5, (r1, 0x0) + 1ace: 9161 ld.w r3, (r1, 0x4) + 1ad0: 9182 ld.w r4, (r1, 0x8) + 1ad2: b6a0 st.w r5, (r6, 0x0) + 1ad4: 91a3 ld.w r5, (r1, 0xc) + 1ad6: b661 st.w r3, (r6, 0x4) + 1ad8: b682 st.w r4, (r6, 0x8) + 1ada: b6a3 st.w r5, (r6, 0xc) + 1adc: 2a0f subi r2, 16 + 1ade: 210f addi r1, 16 + 1ae0: 260f addi r6, 16 + 1ae2: 3a2f cmplti r2, 16 + 1ae4: 0ff4 bf 0x1acc // 1acc <__memcpy_fast+0x28> + 1ae6: 3a23 cmplti r2, 4 + 1ae8: 0808 bt 0x1af8 // 1af8 <__memcpy_fast+0x54> + 1aea: 9160 ld.w r3, (r1, 0x0) + 1aec: 2a03 subi r2, 4 + 1aee: 2103 addi r1, 4 + 1af0: b660 st.w r3, (r6, 0x0) + 1af2: 2603 addi r6, 4 + 1af4: 3a23 cmplti r2, 4 + 1af6: 0ffa bf 0x1aea // 1aea <__memcpy_fast+0x46> + 1af8: 3a40 cmpnei r2, 0 + 1afa: 0fe6 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1afc: 8160 ld.b r3, (r1, 0x0) + 1afe: 2100 addi r1, 1 + 1b00: 2a00 subi r2, 1 + 1b02: a660 st.b r3, (r6, 0x0) + 1b04: 2600 addi r6, 1 + 1b06: 07f9 br 0x1af8 // 1af8 <__memcpy_fast+0x54> + +00001b08 : + 1b08: 14d4 push r4-r7, r15 + 1b0a: 3820 cmplti r0, 1 + 1b0c: 6d03 mov r4, r0 + 1b0e: 6d47 mov r5, r1 + 1b10: 6df7 mov r7, r13 + 1b12: 080d bt 0x1b2c // 1b2c + 1b14: 6d83 mov r6, r0 + 1b16: 3e30 cmplti r6, 17 + 1b18: 9700 ld.w r0, (r7, 0x0) + 1b1a: 0c0a bf 0x1b2e // 1b2e + 1b1c: 5c63 subi r3, r4, 1 + 1b1e: 4b24 lsri r1, r3, 4 + 1b20: 4164 lsli r3, r1, 4 + 1b22: 9040 ld.w r2, (r0, 0x0) + 1b24: 5c2d subu r1, r4, r3 + 1b26: 9081 ld.w r4, (r0, 0x4) + 1b28: 6c17 mov r0, r5 + 1b2a: 7bd1 jsr r4 + 1b2c: 1494 pop r4-r7, r15 + 1b2e: 9040 ld.w r2, (r0, 0x0) + 1b30: 9061 ld.w r3, (r0, 0x4) + 1b32: 3110 movi r1, 16 + 1b34: 6c17 mov r0, r5 + 1b36: 7bcd jsr r3 + 1b38: 2e0f subi r6, 16 + 1b3a: 07ee br 0x1b16 // 1b16 + +00001b3c <__v2_printf>: + 1b3c: 14d4 push r4-r7, r15 + 1b3e: 143c subi r14, r14, 112 + 1b40: b826 st.w r1, (r14, 0x18) + 1b42: 1912 addi r1, r14, 72 + 1b44: 1b21 addi r3, r14, 132 + 1b46: b810 st.w r0, (r14, 0x40) + 1b48: 2100 addi r1, 1 + 1b4a: 3000 movi r0, 0 + 1b4c: 6d4b mov r5, r2 + 1b4e: b871 st.w r3, (r14, 0x44) + 1b50: b80a st.w r0, (r14, 0x28) + 1b52: b809 st.w r0, (r14, 0x24) + 1b54: b82d st.w r1, (r14, 0x34) + 1b56: 9886 ld.w r4, (r14, 0x18) + 1b58: 3325 movi r3, 37 + 1b5a: 84c0 ld.b r6, (r4, 0x0) + 1b5c: 3e40 cmpnei r6, 0 + 1b5e: 0c03 bf 0x1b64 // 1b64 <__v2_printf+0x28> + 1b60: 64da cmpne r6, r3 + 1b62: 0845 bt 0x1bec // 1bec <__v2_printf+0xb0> + 1b64: 9846 ld.w r2, (r14, 0x18) + 1b66: 5cc9 subu r6, r4, r2 + 1b68: 3e40 cmpnei r6, 0 + 1b6a: 0c0a bf 0x1b7e // 1b7e <__v2_printf+0x42> + 1b6c: 9870 ld.w r3, (r14, 0x40) + 1b6e: 9340 ld.w r2, (r3, 0x0) + 1b70: 6c5b mov r1, r6 + 1b72: 9361 ld.w r3, (r3, 0x4) + 1b74: 9806 ld.w r0, (r14, 0x18) + 1b76: 7bcd jsr r3 + 1b78: 9809 ld.w r0, (r14, 0x24) + 1b7a: 6018 addu r0, r6 + 1b7c: b809 st.w r0, (r14, 0x24) + 1b7e: 8420 ld.b r1, (r4, 0x0) + 1b80: 3940 cmpnei r1, 0 + 1b82: 0803 bt 0x1b88 // 1b88 <__v2_printf+0x4c> + 1b84: e8000367 br 0x2252 // 2252 <__v2_printf+0x716> + 1b88: 3637 movi r6, 55 + 1b8a: 1a01 addi r2, r14, 4 + 1b8c: 3700 movi r7, 0 + 1b8e: 6188 addu r6, r2 + 1b90: a6e0 st.b r7, (r6, 0x0) + 1b92: 3300 movi r3, 0 + 1b94: 3600 movi r6, 0 + 1b96: 2400 addi r4, 1 + 1b98: 3000 movi r0, 0 + 1b9a: 3100 movi r1, 0 + 1b9c: 2e00 subi r6, 1 + 1b9e: b867 st.w r3, (r14, 0x1c) + 1ba0: 3700 movi r7, 0 + 1ba2: 5c42 addi r2, r4, 1 + 1ba4: b846 st.w r2, (r14, 0x18) + 1ba6: 8480 ld.b r4, (r4, 0x0) + 1ba8: 3364 movi r3, 100 + 1baa: 64d2 cmpne r4, r3 + 1bac: 0d90 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1bae: 650d cmplt r3, r4 + 1bb0: 084e bt 0x1c4c // 1c4c <__v2_printf+0x110> + 1bb2: 322e movi r2, 46 + 1bb4: 6492 cmpne r4, r2 + 1bb6: 0d41 bf 0x1e38 // 1e38 <__v2_printf+0x2fc> + 1bb8: 6509 cmplt r2, r4 + 1bba: 0829 bt 0x1c0c // 1c0c <__v2_printf+0xd0> + 1bbc: 332a movi r3, 42 + 1bbe: 64d2 cmpne r4, r3 + 1bc0: 0d31 bf 0x1e22 // 1e22 <__v2_printf+0x2e6> + 1bc2: 650d cmplt r3, r4 + 1bc4: 081c bt 0x1bfc // 1bfc <__v2_printf+0xc0> + 1bc6: 3220 movi r2, 32 + 1bc8: 6492 cmpne r4, r2 + 1bca: 0d25 bf 0x1e14 // 1e14 <__v2_printf+0x2d8> + 1bcc: 3323 movi r3, 35 + 1bce: 64d2 cmpne r4, r3 + 1bd0: 0d27 bf 0x1e1e // 1e1e <__v2_printf+0x2e2> + 1bd2: 3c40 cmpnei r4, 0 + 1bd4: 0803 bt 0x1bda // 1bda <__v2_printf+0x9e> + 1bd6: e800033e br 0x2252 // 2252 <__v2_printf+0x716> + 1bda: 1e12 addi r6, r14, 72 + 1bdc: 3037 movi r0, 55 + 1bde: 1a01 addi r2, r14, 4 + 1be0: a680 st.b r4, (r6, 0x0) + 1be2: 6008 addu r0, r2 + 1be4: 3400 movi r4, 0 + 1be6: a080 st.b r4, (r0, 0x0) + 1be8: b8a5 st.w r5, (r14, 0x14) + 1bea: 042c br 0x1c42 // 1c42 <__v2_printf+0x106> + 1bec: 2400 addi r4, 1 + 1bee: 07b6 br 0x1b5a // 1b5a <__v2_printf+0x1e> + 1bf0: 3001 movi r0, 1 + 1bf2: 312b movi r1, 43 + 1bf4: 9886 ld.w r4, (r14, 0x18) + 1bf6: 07d6 br 0x1ba2 // 1ba2 <__v2_printf+0x66> + 1bf8: 6d4f mov r5, r3 + 1bfa: 07fd br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1bfc: 322b movi r2, 43 + 1bfe: 6492 cmpne r4, r2 + 1c00: 0ff8 bf 0x1bf0 // 1bf0 <__v2_printf+0xb4> + 1c02: 332d movi r3, 45 + 1c04: 64d2 cmpne r4, r3 + 1c06: 0be6 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c08: 3fa2 bseti r7, 2 + 1c0a: 07f5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c0c: 3339 movi r3, 57 + 1c0e: 650d cmplt r3, r4 + 1c10: 0809 bt 0x1c22 // 1c22 <__v2_printf+0xe6> + 1c12: 3231 movi r2, 49 + 1c14: 6491 cmplt r4, r2 + 1c16: 0d34 bf 0x1e7e // 1e7e <__v2_printf+0x342> + 1c18: 3330 movi r3, 48 + 1c1a: 64d2 cmpne r4, r3 + 1c1c: 0bdb bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c1e: 3fa7 bseti r7, 7 + 1c20: 07ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c22: 3258 movi r2, 88 + 1c24: 6492 cmpne r4, r2 + 1c26: 0cd3 bf 0x1dcc // 1dcc <__v2_printf+0x290> + 1c28: 3063 movi r0, 99 + 1c2a: 6412 cmpne r4, r0 + 1c2c: 0bd3 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c2e: 3337 movi r3, 55 + 1c30: 1a01 addi r2, r14, 4 + 1c32: 5d2e addi r1, r5, 4 + 1c34: 85c0 ld.b r6, (r5, 0x0) + 1c36: 3400 movi r4, 0 + 1c38: 1d12 addi r5, r14, 72 + 1c3a: 60c8 addu r3, r2 + 1c3c: b825 st.w r1, (r14, 0x14) + 1c3e: a5c0 st.b r6, (r5, 0x0) + 1c40: a380 st.b r4, (r3, 0x0) + 1c42: 3601 movi r6, 1 + 1c44: 3500 movi r5, 0 + 1c46: 1c12 addi r4, r14, 72 + 1c48: e8000295 br 0x2172 // 2172 <__v2_printf+0x636> + 1c4c: 336d movi r3, 109 + 1c4e: 64d2 cmpne r4, r3 + 1c50: 0d2d bf 0x1eaa // 1eaa <__v2_printf+0x36e> + 1c52: 650d cmplt r3, r4 + 1c54: 0883 bt 0x1d5a // 1d5a <__v2_printf+0x21e> + 1c56: 3268 movi r2, 104 + 1c58: 6492 cmpne r4, r2 + 1c5a: 0d24 bf 0x1ea2 // 1ea2 <__v2_printf+0x366> + 1c5c: 6509 cmplt r2, r4 + 1c5e: 086f bt 0x1d3c // 1d3c <__v2_printf+0x200> + 1c60: 3366 movi r3, 102 + 1c62: 64d1 cmplt r4, r3 + 1c64: 0bb7 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c66: 3840 cmpnei r0, 0 + 1c68: 0c05 bf 0x1c72 // 1c72 <__v2_printf+0x136> + 1c6a: 3037 movi r0, 55 + 1c6c: 1a01 addi r2, r14, 4 + 1c6e: 6008 addu r0, r2 + 1c70: a020 st.b r1, (r0, 0x0) + 1c72: 5d3e addi r1, r5, 8 + 1c74: b825 st.w r1, (r14, 0x14) + 1c76: 9500 ld.w r0, (r5, 0x0) + 1c78: 9521 ld.w r1, (r5, 0x4) + 1c7a: 98a7 ld.w r5, (r14, 0x1c) + 1c7c: 3d40 cmpnei r5, 0 + 1c7e: 0803 bt 0x1c84 // 1c84 <__v2_printf+0x148> + 1c80: 3301 movi r3, 1 + 1c82: b867 st.w r3, (r14, 0x1c) + 1c84: 3200 movi r2, 0 + 1c86: 2a00 subi r2, 1 + 1c88: 649a cmpne r6, r2 + 1c8a: 0d58 bf 0x1f3a // 1f3a <__v2_printf+0x3fe> + 1c8c: 6d5b mov r5, r6 + 1c8e: 9867 ld.w r3, (r14, 0x1c) + 1c90: b860 st.w r3, (r14, 0x0) + 1c92: b8a1 st.w r5, (r14, 0x4) + 1c94: 3328 movi r3, 40 + 1c96: 1a12 addi r2, r14, 72 + 1c98: e000069d bsr 0x29d2 // 29d2 <__GI___dtostr> + 1c9c: 3100 movi r1, 0 + 1c9e: 2900 subi r1, 1 + 1ca0: 645a cmpne r6, r1 + 1ca2: b808 st.w r0, (r14, 0x20) + 1ca4: 0c1a bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1ca6: 312e movi r1, 46 + 1ca8: 980d ld.w r0, (r14, 0x34) + 1caa: e00008c9 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cae: 3840 cmpnei r0, 0 + 1cb0: 98c8 ld.w r6, (r14, 0x20) + 1cb2: 0d48 bf 0x1f42 // 1f42 <__v2_printf+0x406> + 1cb4: 3d40 cmpnei r5, 0 + 1cb6: 0805 bt 0x1cc0 // 1cc0 <__v2_printf+0x184> + 1cb8: 3101 movi r1, 1 + 1cba: 685c and r1, r7 + 1cbc: 3940 cmpnei r1, 0 + 1cbe: 0d40 bf 0x1f3e // 1f3e <__v2_printf+0x402> + 1cc0: 58c2 addi r6, r0, 1 + 1cc2: 2500 addi r5, 1 + 1cc4: 5d59 subu r2, r5, r6 + 1cc6: 6080 addu r2, r0 + 1cc8: 3a20 cmplti r2, 1 + 1cca: 0805 bt 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1ccc: 2600 addi r6, 1 + 1cce: 8660 ld.b r3, (r6, 0x0) + 1cd0: 3b40 cmpnei r3, 0 + 1cd2: 0bf9 bt 0x1cc4 // 1cc4 <__v2_printf+0x188> + 1cd4: 3500 movi r5, 0 + 1cd6: a6a0 st.b r5, (r6, 0x0) + 1cd8: 3067 movi r0, 103 + 1cda: 6412 cmpne r4, r0 + 1cdc: 0822 bt 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cde: 312e movi r1, 46 + 1ce0: 1812 addi r0, r14, 72 + 1ce2: e00008ad bsr 0x2e3c // 2e3c <__GI_strchr> + 1ce6: 3840 cmpnei r0, 0 + 1ce8: 6d03 mov r4, r0 + 1cea: 0c1b bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cec: 3165 movi r1, 101 + 1cee: e00008a7 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cf2: 6c43 mov r1, r0 + 1cf4: 84c0 ld.b r6, (r4, 0x0) + 1cf6: 3e40 cmpnei r6, 0 + 1cf8: 0930 bt 0x1f58 // 1f58 <__v2_printf+0x41c> + 1cfa: 3940 cmpnei r1, 0 + 1cfc: 0c02 bf 0x1d00 // 1d00 <__v2_printf+0x1c4> + 1cfe: 6d07 mov r4, r1 + 1d00: 3630 movi r6, 48 + 1d02: 5c63 subi r3, r4, 1 + 1d04: 8340 ld.b r2, (r3, 0x0) + 1d06: 658a cmpne r2, r6 + 1d08: 0d2a bf 0x1f5c // 1f5c <__v2_printf+0x420> + 1d0a: 352e movi r5, 46 + 1d0c: 654a cmpne r2, r5 + 1d0e: 0802 bt 0x1d12 // 1d12 <__v2_printf+0x1d6> + 1d10: 6d0f mov r4, r3 + 1d12: 3000 movi r0, 0 + 1d14: 3940 cmpnei r1, 0 + 1d16: a400 st.b r0, (r4, 0x0) + 1d18: 0c04 bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1d1a: 6c13 mov r0, r4 + 1d1c: e0000838 bsr 0x2d8c // 2d8c <__strcpy_fast> + 1d20: 1912 addi r1, r14, 72 + 1d22: 81c0 ld.b r6, (r1, 0x0) + 1d24: 332d movi r3, 45 + 1d26: 64da cmpne r6, r3 + 1d28: 0c02 bf 0x1d2c // 1d2c <__v2_printf+0x1f0> + 1d2a: 05ef br 0x2108 // 2108 <__v2_printf+0x5cc> + 1d2c: 3437 movi r4, 55 + 1d2e: 1801 addi r0, r14, 4 + 1d30: 352d movi r5, 45 + 1d32: 6100 addu r4, r0 + 1d34: a4a0 st.b r5, (r4, 0x0) + 1d36: 1912 addi r1, r14, 72 + 1d38: 5982 addi r4, r1, 1 + 1d3a: 05ec br 0x2112 // 2112 <__v2_printf+0x5d6> + 1d3c: 3369 movi r3, 105 + 1d3e: 64d2 cmpne r4, r3 + 1d40: 0cc6 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1d42: 326c movi r2, 108 + 1d44: 6492 cmpne r4, r2 + 1d46: 0b46 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d48: 9866 ld.w r3, (r14, 0x18) + 1d4a: 8340 ld.b r2, (r3, 0x0) + 1d4c: 650a cmpne r2, r4 + 1d4e: 08ac bt 0x1ea6 // 1ea6 <__v2_printf+0x36a> + 1d50: 9886 ld.w r4, (r14, 0x18) + 1d52: 2400 addi r4, 1 + 1d54: b886 st.w r4, (r14, 0x18) + 1d56: 3fa5 bseti r7, 5 + 1d58: 074e br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1d5a: 3371 movi r3, 113 + 1d5c: 64d2 cmpne r4, r3 + 1d5e: 0ffc bf 0x1d56 // 1d56 <__v2_printf+0x21a> + 1d60: 650d cmplt r3, r4 + 1d62: 081a bt 0x1d96 // 1d96 <__v2_printf+0x25a> + 1d64: 306f movi r0, 111 + 1d66: 6412 cmpne r4, r0 + 1d68: 0cfc bf 0x1f60 // 1f60 <__v2_printf+0x424> + 1d6a: 3170 movi r1, 112 + 1d6c: 6452 cmpne r4, r1 + 1d6e: 0b32 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d70: 5d4e addi r2, r5, 4 + 1d72: 3400 movi r4, 0 + 1d74: 95a0 ld.w r5, (r5, 0x0) + 1d76: b845 st.w r2, (r14, 0x14) + 1d78: 1901 addi r1, r14, 4 + 1d7a: 3239 movi r2, 57 + 1d7c: b8a3 st.w r5, (r14, 0xc) + 1d7e: b884 st.w r4, (r14, 0x10) + 1d80: 3330 movi r3, 48 + 1d82: 180f addi r0, r14, 60 + 1d84: 3578 movi r5, 120 + 1d86: 6084 addu r2, r1 + 1d88: 0195 lrw r4, 0x5f71 // 20b0 <__v2_printf+0x574> + 1d8a: 3fa1 bseti r7, 1 + 1d8c: a060 st.b r3, (r0, 0x0) + 1d8e: a2a0 st.b r5, (r2, 0x0) + 1d90: b88a st.w r4, (r14, 0x28) + 1d92: 3402 movi r4, 2 + 1d94: 04f1 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1d96: 3275 movi r2, 117 + 1d98: 6492 cmpne r4, r2 + 1d9a: 0d28 bf 0x1fea // 1fea <__v2_printf+0x4ae> + 1d9c: 3378 movi r3, 120 + 1d9e: 64d2 cmpne r4, r3 + 1da0: 0d44 bf 0x2028 // 2028 <__v2_printf+0x4ec> + 1da2: 3173 movi r1, 115 + 1da4: 6452 cmpne r4, r1 + 1da6: 0b16 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1da8: 3200 movi r2, 0 + 1daa: 3037 movi r0, 55 + 1dac: 1901 addi r1, r14, 4 + 1dae: 2a00 subi r2, 1 + 1db0: 5d6e addi r3, r5, 4 + 1db2: 9580 ld.w r4, (r5, 0x0) + 1db4: 6004 addu r0, r1 + 1db6: 3500 movi r5, 0 + 1db8: 649a cmpne r6, r2 + 1dba: b865 st.w r3, (r14, 0x14) + 1dbc: a0a0 st.b r5, (r0, 0x0) + 1dbe: 090b bt 0x1fd4 // 1fd4 <__v2_printf+0x498> + 1dc0: 6cd3 mov r3, r4 + 1dc2: 83c0 ld.b r6, (r3, 0x0) + 1dc4: 3e40 cmpnei r6, 0 + 1dc6: 0910 bt 0x1fe6 // 1fe6 <__v2_printf+0x4aa> + 1dc8: 5bd1 subu r6, r3, r4 + 1dca: 047f br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1dcc: 3840 cmpnei r0, 0 + 1dce: 0c05 bf 0x1dd8 // 1dd8 <__v2_printf+0x29c> + 1dd0: 3037 movi r0, 55 + 1dd2: 1b01 addi r3, r14, 4 + 1dd4: 600c addu r0, r3 + 1dd6: a020 st.b r1, (r0, 0x0) + 1dd8: 0228 lrw r1, 0x5f60 // 20b4 <__v2_printf+0x578> + 1dda: 3020 movi r0, 32 + 1ddc: 681c and r0, r7 + 1dde: 3840 cmpnei r0, 0 + 1de0: b82a st.w r1, (r14, 0x28) + 1de2: 0d2b bf 0x2038 // 2038 <__v2_printf+0x4fc> + 1de4: 5d5e addi r2, r5, 8 + 1de6: b845 st.w r2, (r14, 0x14) + 1de8: 9520 ld.w r1, (r5, 0x0) + 1dea: 9541 ld.w r2, (r5, 0x4) + 1dec: b823 st.w r1, (r14, 0xc) + 1dee: b844 st.w r2, (r14, 0x10) + 1df0: 3001 movi r0, 1 + 1df2: 681c and r0, r7 + 1df4: 3840 cmpnei r0, 0 + 1df6: 0fce bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1df8: 98a3 ld.w r5, (r14, 0xc) + 1dfa: 9864 ld.w r3, (r14, 0x10) + 1dfc: 6d4c or r5, r3 + 1dfe: 3d40 cmpnei r5, 0 + 1e00: 0fc9 bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1e02: 3039 movi r0, 57 + 1e04: 1d01 addi r5, r14, 4 + 1e06: 3130 movi r1, 48 + 1e08: 1a0f addi r2, r14, 60 + 1e0a: 6014 addu r0, r5 + 1e0c: a220 st.b r1, (r2, 0x0) + 1e0e: a080 st.b r4, (r0, 0x0) + 1e10: 3fa1 bseti r7, 1 + 1e12: 07c0 br 0x1d92 // 1d92 <__v2_printf+0x256> + 1e14: 3940 cmpnei r1, 0 + 1e16: 0aef bt 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e18: 3001 movi r0, 1 + 1e1a: 3120 movi r1, 32 + 1e1c: 06ec br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e1e: 3fa0 bseti r7, 0 + 1e20: 06ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e22: 9580 ld.w r4, (r5, 0x0) + 1e24: 3cdf btsti r4, 31 + 1e26: 5d6e addi r3, r5, 4 + 1e28: b887 st.w r4, (r14, 0x1c) + 1e2a: 0ee7 bf 0x1bf8 // 1bf8 <__v2_printf+0xbc> + 1e2c: 9847 ld.w r2, (r14, 0x1c) + 1e2e: 3500 movi r5, 0 + 1e30: 614a subu r5, r2 + 1e32: b8a7 st.w r5, (r14, 0x1c) + 1e34: 6d4f mov r5, r3 + 1e36: 06e9 br 0x1c08 // 1c08 <__v2_printf+0xcc> + 1e38: 98c6 ld.w r6, (r14, 0x18) + 1e3a: 8680 ld.b r4, (r6, 0x0) + 1e3c: 322a movi r2, 42 + 1e3e: 9866 ld.w r3, (r14, 0x18) + 1e40: 6492 cmpne r4, r2 + 1e42: 2300 addi r3, 1 + 1e44: 0c0b bf 0x1e5a // 1e5a <__v2_printf+0x31e> + 1e46: b865 st.w r3, (r14, 0x14) + 1e48: 3600 movi r6, 0 + 1e4a: 3300 movi r3, 0 + 1e4c: 2b2f subi r3, 48 + 1e4e: 60d0 addu r3, r4 + 1e50: 3b09 cmphsi r3, 10 + 1e52: 9845 ld.w r2, (r14, 0x14) + 1e54: 0c0c bf 0x1e6c // 1e6c <__v2_printf+0x330> + 1e56: b846 st.w r2, (r14, 0x18) + 1e58: 06a8 br 0x1ba8 // 1ba8 <__v2_printf+0x6c> + 1e5a: 95c0 ld.w r6, (r5, 0x0) + 1e5c: 3edf btsti r6, 31 + 1e5e: 5d8e addi r4, r5, 4 + 1e60: 0c03 bf 0x1e66 // 1e66 <__v2_printf+0x32a> + 1e62: 3600 movi r6, 0 + 1e64: 2e00 subi r6, 1 + 1e66: 6d53 mov r5, r4 + 1e68: b866 st.w r3, (r14, 0x18) + 1e6a: 06c5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e6c: 340a movi r4, 10 + 1e6e: 7d18 mult r4, r6 + 1e70: 9845 ld.w r2, (r14, 0x14) + 1e72: 6d8f mov r6, r3 + 1e74: 6190 addu r6, r4 + 1e76: 8280 ld.b r4, (r2, 0x0) + 1e78: 2200 addi r2, 1 + 1e7a: b845 st.w r2, (r14, 0x14) + 1e7c: 07e7 br 0x1e4a // 1e4a <__v2_printf+0x30e> + 1e7e: 3200 movi r2, 0 + 1e80: b847 st.w r2, (r14, 0x1c) + 1e82: 9867 ld.w r3, (r14, 0x1c) + 1e84: 320a movi r2, 10 + 1e86: 7cc8 mult r3, r2 + 1e88: 2c2f subi r4, 48 + 1e8a: 610c addu r4, r3 + 1e8c: b887 st.w r4, (r14, 0x1c) + 1e8e: 3300 movi r3, 0 + 1e90: 9886 ld.w r4, (r14, 0x18) + 1e92: 5c42 addi r2, r4, 1 + 1e94: 2b2f subi r3, 48 + 1e96: 8480 ld.b r4, (r4, 0x0) + 1e98: 60d0 addu r3, r4 + 1e9a: 3b09 cmphsi r3, 10 + 1e9c: b846 st.w r2, (r14, 0x18) + 1e9e: 0ff2 bf 0x1e82 // 1e82 <__v2_printf+0x346> + 1ea0: 07db br 0x1e56 // 1e56 <__v2_printf+0x31a> + 1ea2: 3fa6 bseti r7, 6 + 1ea4: 06a8 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1ea6: 3fa4 bseti r7, 4 + 1ea8: 06a6 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1eaa: 3840 cmpnei r0, 0 + 1eac: 0c05 bf 0x1eb6 // 1eb6 <__v2_printf+0x37a> + 1eae: 3637 movi r6, 55 + 1eb0: 1b01 addi r3, r14, 4 + 1eb2: 618c addu r6, r3 + 1eb4: a620 st.b r1, (r6, 0x0) + 1eb6: 033e lrw r1, 0x20000758 // 20b8 <__v2_printf+0x57c> + 1eb8: 9100 ld.w r0, (r1, 0x0) + 1eba: e00007cb bsr 0x2e50 // 2e50 <__GI_strerror> + 1ebe: 6d03 mov r4, r0 + 1ec0: e000073c bsr 0x2d38 // 2d38 <__strlen_fast> + 1ec4: 6d83 mov r6, r0 + 1ec6: b8a5 st.w r5, (r14, 0x14) + 1ec8: 3500 movi r5, 0 + 1eca: 0554 br 0x2172 // 2172 <__v2_printf+0x636> + 1ecc: 3840 cmpnei r0, 0 + 1ece: 0c05 bf 0x1ed8 // 1ed8 <__v2_printf+0x39c> + 1ed0: 3037 movi r0, 55 + 1ed2: 1a01 addi r2, r14, 4 + 1ed4: 6008 addu r0, r2 + 1ed6: a020 st.b r1, (r0, 0x0) + 1ed8: 3420 movi r4, 32 + 1eda: 691c and r4, r7 + 1edc: 3c40 cmpnei r4, 0 + 1ede: 0c1a bf 0x1f12 // 1f12 <__v2_printf+0x3d6> + 1ee0: 5d7e addi r3, r5, 8 + 1ee2: 9520 ld.w r1, (r5, 0x0) + 1ee4: 9541 ld.w r2, (r5, 0x4) + 1ee6: b865 st.w r3, (r14, 0x14) + 1ee8: b823 st.w r1, (r14, 0xc) + 1eea: b844 st.w r2, (r14, 0x10) + 1eec: 9804 ld.w r0, (r14, 0x10) + 1eee: 38df btsti r0, 31 + 1ef0: 0c0f bf 0x1f0e // 1f0e <__v2_printf+0x3d2> + 1ef2: 9883 ld.w r4, (r14, 0xc) + 1ef4: 98a4 ld.w r5, (r14, 0x10) + 1ef6: 3200 movi r2, 0 + 1ef8: 3300 movi r3, 0 + 1efa: 6488 cmphs r2, r2 + 1efc: 6093 subc r2, r4 + 1efe: 60d7 subc r3, r5 + 1f00: b843 st.w r2, (r14, 0xc) + 1f02: b864 st.w r3, (r14, 0x10) + 1f04: 3237 movi r2, 55 + 1f06: 1b01 addi r3, r14, 4 + 1f08: 352d movi r5, 45 + 1f0a: 608c addu r2, r3 + 1f0c: a2a0 st.b r5, (r2, 0x0) + 1f0e: 3401 movi r4, 1 + 1f10: 0438 br 0x1f80 // 1f80 <__v2_printf+0x444> + 1f12: 3310 movi r3, 16 + 1f14: 68dc and r3, r7 + 1f16: 3b40 cmpnei r3, 0 + 1f18: 0c08 bf 0x1f28 // 1f28 <__v2_printf+0x3ec> + 1f1a: 5d4e addi r2, r5, 4 + 1f1c: b845 st.w r2, (r14, 0x14) + 1f1e: 95a0 ld.w r5, (r5, 0x0) + 1f20: 559f asri r4, r5, 31 + 1f22: b8a3 st.w r5, (r14, 0xc) + 1f24: b884 st.w r4, (r14, 0x10) + 1f26: 07e3 br 0x1eec // 1eec <__v2_printf+0x3b0> + 1f28: 3140 movi r1, 64 + 1f2a: 685c and r1, r7 + 1f2c: 5d0e addi r0, r5, 4 + 1f2e: 3940 cmpnei r1, 0 + 1f30: 95a0 ld.w r5, (r5, 0x0) + 1f32: b805 st.w r0, (r14, 0x14) + 1f34: 0ff6 bf 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f36: 7557 sexth r5, r5 + 1f38: 07f4 br 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f3a: 3506 movi r5, 6 + 1f3c: 06a9 br 0x1c8e // 1c8e <__v2_printf+0x152> + 1f3e: 6d83 mov r6, r0 + 1f40: 06ca br 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1f42: 3201 movi r2, 1 + 1f44: 689c and r2, r7 + 1f46: 3a40 cmpnei r2, 0 + 1f48: 0ec8 bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f4a: 1d12 addi r5, r14, 72 + 1f4c: 6158 addu r5, r6 + 1f4e: 332e movi r3, 46 + 1f50: 3000 movi r0, 0 + 1f52: a560 st.b r3, (r5, 0x0) + 1f54: a501 st.b r0, (r5, 0x1) + 1f56: 06c1 br 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f58: 2400 addi r4, 1 + 1f5a: 06cd br 0x1cf4 // 1cf4 <__v2_printf+0x1b8> + 1f5c: 6d0f mov r4, r3 + 1f5e: 06d2 br 0x1d02 // 1d02 <__v2_printf+0x1c6> + 1f60: 3320 movi r3, 32 + 1f62: 68dc and r3, r7 + 1f64: 3b40 cmpnei r3, 0 + 1f66: 0c24 bf 0x1fae // 1fae <__v2_printf+0x472> + 1f68: 5d7e addi r3, r5, 8 + 1f6a: 9500 ld.w r0, (r5, 0x0) + 1f6c: 9521 ld.w r1, (r5, 0x4) + 1f6e: b865 st.w r3, (r14, 0x14) + 1f70: b803 st.w r0, (r14, 0xc) + 1f72: b824 st.w r1, (r14, 0x10) + 1f74: 3400 movi r4, 0 + 1f76: 3537 movi r5, 55 + 1f78: 1801 addi r0, r14, 4 + 1f7a: 3200 movi r2, 0 + 1f7c: 6140 addu r5, r0 + 1f7e: a540 st.b r2, (r5, 0x0) + 1f80: 3100 movi r1, 0 + 1f82: 2900 subi r1, 1 + 1f84: 9803 ld.w r0, (r14, 0xc) + 1f86: 98a4 ld.w r5, (r14, 0x10) + 1f88: 645a cmpne r6, r1 + 1f8a: 6c14 or r0, r5 + 1f8c: 0cc8 bf 0x211c // 211c <__v2_printf+0x5e0> + 1f8e: 6c9f mov r2, r7 + 1f90: 3a87 bclri r2, 7 + 1f92: 3840 cmpnei r0, 0 + 1f94: b848 st.w r2, (r14, 0x20) + 1f96: 08c6 bt 0x2122 // 2122 <__v2_printf+0x5e6> + 1f98: 3e40 cmpnei r6, 0 + 1f9a: 0cac bf 0x20f2 // 20f2 <__v2_printf+0x5b6> + 1f9c: 3c41 cmpnei r4, 1 + 1f9e: 0c68 bf 0x206e // 206e <__v2_printf+0x532> + 1fa0: 3c42 cmpnei r4, 2 + 1fa2: 0c8d bf 0x20bc // 20bc <__v2_printf+0x580> + 1fa4: 3300 movi r3, 0 + 1fa6: 3400 movi r4, 0 + 1fa8: b863 st.w r3, (r14, 0xc) + 1faa: b884 st.w r4, (r14, 0x10) + 1fac: 04bf br 0x212a // 212a <__v2_printf+0x5ee> + 1fae: 3010 movi r0, 16 + 1fb0: 681c and r0, r7 + 1fb2: 3840 cmpnei r0, 0 + 1fb4: 0c05 bf 0x1fbe // 1fbe <__v2_printf+0x482> + 1fb6: 5d8e addi r4, r5, 4 + 1fb8: b885 st.w r4, (r14, 0x14) + 1fba: 95a0 ld.w r5, (r5, 0x0) + 1fbc: 0408 br 0x1fcc // 1fcc <__v2_printf+0x490> + 1fbe: 3240 movi r2, 64 + 1fc0: 689c and r2, r7 + 1fc2: 5d2e addi r1, r5, 4 + 1fc4: 3a40 cmpnei r2, 0 + 1fc6: b825 st.w r1, (r14, 0x14) + 1fc8: 0ff9 bf 0x1fba // 1fba <__v2_printf+0x47e> + 1fca: 8da0 ld.h r5, (r5, 0x0) + 1fcc: 3400 movi r4, 0 + 1fce: b8a3 st.w r5, (r14, 0xc) + 1fd0: b884 st.w r4, (r14, 0x10) + 1fd2: 07d2 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1fd4: 5cb8 addu r5, r4, r6 + 1fd6: 6cd3 mov r3, r4 + 1fd8: 654e cmpne r3, r5 + 1fda: 0f77 bf 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1fdc: 8300 ld.b r0, (r3, 0x0) + 1fde: 3840 cmpnei r0, 0 + 1fe0: 0ef4 bf 0x1dc8 // 1dc8 <__v2_printf+0x28c> + 1fe2: 2300 addi r3, 1 + 1fe4: 07fa br 0x1fd8 // 1fd8 <__v2_printf+0x49c> + 1fe6: 2300 addi r3, 1 + 1fe8: 06ed br 0x1dc2 // 1dc2 <__v2_printf+0x286> + 1fea: 3420 movi r4, 32 + 1fec: 691c and r4, r7 + 1fee: 3c40 cmpnei r4, 0 + 1ff0: 0c09 bf 0x2002 // 2002 <__v2_printf+0x4c6> + 1ff2: 5d7e addi r3, r5, 8 + 1ff4: 9520 ld.w r1, (r5, 0x0) + 1ff6: 9541 ld.w r2, (r5, 0x4) + 1ff8: b865 st.w r3, (r14, 0x14) + 1ffa: b823 st.w r1, (r14, 0xc) + 1ffc: b844 st.w r2, (r14, 0x10) + 1ffe: 3401 movi r4, 1 + 2000: 07bb br 0x1f76 // 1f76 <__v2_printf+0x43a> + 2002: 3310 movi r3, 16 + 2004: 68dc and r3, r7 + 2006: 3b40 cmpnei r3, 0 + 2008: 0c05 bf 0x2012 // 2012 <__v2_printf+0x4d6> + 200a: 5d0e addi r0, r5, 4 + 200c: b805 st.w r0, (r14, 0x14) + 200e: 95a0 ld.w r5, (r5, 0x0) + 2010: 0408 br 0x2020 // 2020 <__v2_printf+0x4e4> + 2012: 3140 movi r1, 64 + 2014: 685c and r1, r7 + 2016: 5d4e addi r2, r5, 4 + 2018: 3940 cmpnei r1, 0 + 201a: b845 st.w r2, (r14, 0x14) + 201c: 0ff9 bf 0x200e // 200e <__v2_printf+0x4d2> + 201e: 8da0 ld.h r5, (r5, 0x0) + 2020: 3400 movi r4, 0 + 2022: b8a3 st.w r5, (r14, 0xc) + 2024: b884 st.w r4, (r14, 0x10) + 2026: 07ec br 0x1ffe // 1ffe <__v2_printf+0x4c2> + 2028: 3840 cmpnei r0, 0 + 202a: 0c05 bf 0x2034 // 2034 <__v2_printf+0x4f8> + 202c: 3337 movi r3, 55 + 202e: 1a01 addi r2, r14, 4 + 2030: 60c8 addu r3, r2 + 2032: a320 st.b r1, (r3, 0x0) + 2034: 103f lrw r1, 0x5f71 // 20b0 <__v2_printf+0x574> + 2036: 06d2 br 0x1dda // 1dda <__v2_printf+0x29e> + 2038: 3310 movi r3, 16 + 203a: 68dc and r3, r7 + 203c: 3b40 cmpnei r3, 0 + 203e: 0c05 bf 0x2048 // 2048 <__v2_printf+0x50c> + 2040: 5d0e addi r0, r5, 4 + 2042: b805 st.w r0, (r14, 0x14) + 2044: 95a0 ld.w r5, (r5, 0x0) + 2046: 0408 br 0x2056 // 2056 <__v2_printf+0x51a> + 2048: 3240 movi r2, 64 + 204a: 689c and r2, r7 + 204c: 5d2e addi r1, r5, 4 + 204e: 3a40 cmpnei r2, 0 + 2050: b825 st.w r1, (r14, 0x14) + 2052: 0ff9 bf 0x2044 // 2044 <__v2_printf+0x508> + 2054: 8da0 ld.h r5, (r5, 0x0) + 2056: 3300 movi r3, 0 + 2058: b8a3 st.w r5, (r14, 0xc) + 205a: b864 st.w r3, (r14, 0x10) + 205c: 06ca br 0x1df0 // 1df0 <__v2_printf+0x2b4> + 205e: 6cd3 mov r3, r4 + 2060: 0467 br 0x212e // 212e <__v2_printf+0x5f2> + 2062: 9884 ld.w r4, (r14, 0x10) + 2064: 3c40 cmpnei r4, 0 + 2066: 080b bt 0x207c // 207c <__v2_printf+0x540> + 2068: 9843 ld.w r2, (r14, 0xc) + 206a: 3a09 cmphsi r2, 10 + 206c: 0808 bt 0x207c // 207c <__v2_printf+0x540> + 206e: 9883 ld.w r4, (r14, 0xc) + 2070: 242f addi r4, 48 + 2072: 1f1a addi r7, r14, 104 + 2074: a787 st.b r4, (r7, 0x7) + 2076: 1c12 addi r4, r14, 72 + 2078: 2426 addi r4, 39 + 207a: 0478 br 0x216a // 216a <__v2_printf+0x62e> + 207c: 1c1c addi r4, r14, 112 + 207e: 3530 movi r5, 48 + 2080: 320a movi r2, 10 + 2082: 3300 movi r3, 0 + 2084: 9803 ld.w r0, (r14, 0xc) + 2086: 9824 ld.w r1, (r14, 0x10) + 2088: e00002c2 bsr 0x260c // 260c <__umoddi3> + 208c: 6014 addu r0, r5 + 208e: 2c00 subi r4, 1 + 2090: a400 st.b r0, (r4, 0x0) + 2092: 320a movi r2, 10 + 2094: 9803 ld.w r0, (r14, 0xc) + 2096: 9824 ld.w r1, (r14, 0x10) + 2098: 3300 movi r3, 0 + 209a: e00000e3 bsr 0x2260 // 2260 <__udivdi3> + 209e: b803 st.w r0, (r14, 0xc) + 20a0: b824 st.w r1, (r14, 0x10) + 20a2: 9823 ld.w r1, (r14, 0xc) + 20a4: 98e4 ld.w r7, (r14, 0x10) + 20a6: 6c5c or r1, r7 + 20a8: 3940 cmpnei r1, 0 + 20aa: 0beb bt 0x2080 // 2080 <__v2_printf+0x544> + 20ac: 045f br 0x216a // 216a <__v2_printf+0x62e> + 20ae: 0000 bkpt + 20b0: 00005f71 .long 0x00005f71 + 20b4: 00005f60 .long 0x00005f60 + 20b8: 20000758 .long 0x20000758 + 20bc: 3300 movi r3, 0 + 20be: 3400 movi r4, 0 + 20c0: b863 st.w r3, (r14, 0xc) + 20c2: b884 st.w r4, (r14, 0x10) + 20c4: 1c1c addi r4, r14, 112 + 20c6: 320f movi r2, 15 + 20c8: 9803 ld.w r0, (r14, 0xc) + 20ca: 982a ld.w r1, (r14, 0x28) + 20cc: 6808 and r0, r2 + 20ce: 6004 addu r0, r1 + 20d0: 80a0 ld.b r5, (r0, 0x0) + 20d2: 2c00 subi r4, 1 + 20d4: 98e4 ld.w r7, (r14, 0x10) + 20d6: a4a0 st.b r5, (r4, 0x0) + 20d8: 98a4 ld.w r5, (r14, 0x10) + 20da: 9863 ld.w r3, (r14, 0xc) + 20dc: 471c lsli r0, r7, 28 + 20de: 4de4 lsri r7, r5, 4 + 20e0: 4b24 lsri r1, r3, 4 + 20e2: b8e4 st.w r7, (r14, 0x10) + 20e4: 6c04 or r0, r1 + 20e6: 9864 ld.w r3, (r14, 0x10) + 20e8: b803 st.w r0, (r14, 0xc) + 20ea: 6c0c or r0, r3 + 20ec: 3840 cmpnei r0, 0 + 20ee: 0bed bt 0x20c8 // 20c8 <__v2_printf+0x58c> + 20f0: 043d br 0x216a // 216a <__v2_printf+0x62e> + 20f2: 3c40 cmpnei r4, 0 + 20f4: 0808 bt 0x2104 // 2104 <__v2_printf+0x5c8> + 20f6: 3301 movi r3, 1 + 20f8: 68dc and r3, r7 + 20fa: 3b40 cmpnei r3, 0 + 20fc: 0c04 bf 0x2104 // 2104 <__v2_printf+0x5c8> + 20fe: 1f1a addi r7, r14, 104 + 2100: 3430 movi r4, 48 + 2102: 07b9 br 0x2074 // 2074 <__v2_printf+0x538> + 2104: 1c1c addi r4, r14, 112 + 2106: 0432 br 0x216a // 216a <__v2_printf+0x62e> + 2108: 322b movi r2, 43 + 210a: 649a cmpne r6, r2 + 210c: 0802 bt 0x2110 // 2110 <__v2_printf+0x5d4> + 210e: 0614 br 0x1d36 // 1d36 <__v2_printf+0x1fa> + 2110: 1c12 addi r4, r14, 72 + 2112: 6c13 mov r0, r4 + 2114: e0000612 bsr 0x2d38 // 2d38 <__strlen_fast> + 2118: 6d83 mov r6, r0 + 211a: 06d7 br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 211c: 3840 cmpnei r0, 0 + 211e: b8e8 st.w r7, (r14, 0x20) + 2120: 0f3e bf 0x1f9c // 1f9c <__v2_printf+0x460> + 2122: 3c41 cmpnei r4, 1 + 2124: 0f9f bf 0x2062 // 2062 <__v2_printf+0x526> + 2126: 3c42 cmpnei r4, 2 + 2128: 0fce bf 0x20c4 // 20c4 <__v2_printf+0x588> + 212a: 1b1c addi r3, r14, 112 + 212c: 3707 movi r7, 7 + 212e: 9823 ld.w r1, (r14, 0xc) + 2130: 685c and r1, r7 + 2132: 212f addi r1, 48 + 2134: 9804 ld.w r0, (r14, 0x10) + 2136: 7484 zextb r2, r1 + 2138: 9823 ld.w r1, (r14, 0xc) + 213a: 40bd lsli r5, r0, 29 + 213c: 4903 lsri r0, r1, 3 + 213e: 9824 ld.w r1, (r14, 0x10) + 2140: 4923 lsri r1, r1, 3 + 2142: b824 st.w r1, (r14, 0x10) + 2144: 6d40 or r5, r0 + 2146: 9804 ld.w r0, (r14, 0x10) + 2148: b8a3 st.w r5, (r14, 0xc) + 214a: 6d40 or r5, r0 + 214c: 5b83 subi r4, r3, 1 + 214e: 3d40 cmpnei r5, 0 + 2150: a440 st.b r2, (r4, 0x0) + 2152: 0b86 bt 0x205e // 205e <__v2_printf+0x522> + 2154: 3701 movi r7, 1 + 2156: 9828 ld.w r1, (r14, 0x20) + 2158: 69c4 and r7, r1 + 215a: 3f40 cmpnei r7, 0 + 215c: 0c07 bf 0x216a // 216a <__v2_printf+0x62e> + 215e: 3530 movi r5, 48 + 2160: 654a cmpne r2, r5 + 2162: 0c04 bf 0x216a // 216a <__v2_printf+0x62e> + 2164: 5b87 subi r4, r3, 2 + 2166: 3330 movi r3, 48 + 2168: a460 st.b r3, (r4, 0x0) + 216a: 6d5b mov r5, r6 + 216c: 1e1c addi r6, r14, 112 + 216e: 6192 subu r6, r4 + 2170: 98e8 ld.w r7, (r14, 0x20) + 2172: 6595 cmplt r5, r6 + 2174: b8a8 st.w r5, (r14, 0x20) + 2176: 0c02 bf 0x217a // 217a <__v2_printf+0x63e> + 2178: b8c8 st.w r6, (r14, 0x20) + 217a: 3037 movi r0, 55 + 217c: 1b01 addi r3, r14, 4 + 217e: 600c addu r0, r3 + 2180: 8040 ld.b r2, (r0, 0x0) + 2182: 3a40 cmpnei r2, 0 + 2184: 0c04 bf 0x218c // 218c <__v2_printf+0x650> + 2186: 9828 ld.w r1, (r14, 0x20) + 2188: 2100 addi r1, 1 + 218a: b828 st.w r1, (r14, 0x20) + 218c: 3002 movi r0, 2 + 218e: 681c and r0, r7 + 2190: 3840 cmpnei r0, 0 + 2192: b80b st.w r0, (r14, 0x2c) + 2194: 0c04 bf 0x219c // 219c <__v2_printf+0x660> + 2196: 9868 ld.w r3, (r14, 0x20) + 2198: 2301 addi r3, 2 + 219a: b868 st.w r3, (r14, 0x20) + 219c: 3284 movi r2, 132 + 219e: 689c and r2, r7 + 21a0: 3a40 cmpnei r2, 0 + 21a2: b84c st.w r2, (r14, 0x30) + 21a4: 080b bt 0x21ba // 21ba <__v2_printf+0x67e> + 21a6: 3310 movi r3, 16 + 21a8: 1a0c addi r2, r14, 48 + 21aa: 9827 ld.w r1, (r14, 0x1c) + 21ac: 9808 ld.w r0, (r14, 0x20) + 21ae: 60c8 addu r3, r2 + 21b0: 5901 subu r0, r1, r0 + 21b2: 6f4f mov r13, r3 + 21b4: 1129 lrw r1, 0x5bec // 2258 <__v2_printf+0x71c> + 21b6: e3fffca9 bsr 0x1b08 // 1b08 + 21ba: 3137 movi r1, 55 + 21bc: 1801 addi r0, r14, 4 + 21be: 6040 addu r1, r0 + 21c0: 8160 ld.b r3, (r1, 0x0) + 21c2: 3b40 cmpnei r3, 0 + 21c4: 0c0b bf 0x21da // 21da <__v2_printf+0x69e> + 21c6: 9830 ld.w r1, (r14, 0x40) + 21c8: 9101 ld.w r0, (r1, 0x4) + 21ca: b802 st.w r0, (r14, 0x8) + 21cc: 1b0c addi r3, r14, 48 + 21ce: 300b movi r0, 11 + 21d0: 9140 ld.w r2, (r1, 0x0) + 21d2: 600c addu r0, r3 + 21d4: 3101 movi r1, 1 + 21d6: 9862 ld.w r3, (r14, 0x8) + 21d8: 7bcd jsr r3 + 21da: 984b ld.w r2, (r14, 0x2c) + 21dc: 3a40 cmpnei r2, 0 + 21de: 0c07 bf 0x21ec // 21ec <__v2_printf+0x6b0> + 21e0: 9830 ld.w r1, (r14, 0x40) + 21e2: 9140 ld.w r2, (r1, 0x0) + 21e4: 9161 ld.w r3, (r1, 0x4) + 21e6: 180f addi r0, r14, 60 + 21e8: 3102 movi r1, 2 + 21ea: 7bcd jsr r3 + 21ec: 3080 movi r0, 128 + 21ee: 984c ld.w r2, (r14, 0x30) + 21f0: 640a cmpne r2, r0 + 21f2: 080b bt 0x2208 // 2208 <__v2_printf+0x6cc> + 21f4: 9827 ld.w r1, (r14, 0x1c) + 21f6: 9868 ld.w r3, (r14, 0x20) + 21f8: 590d subu r0, r1, r3 + 21fa: 1a0c addi r2, r14, 48 + 21fc: 3110 movi r1, 16 + 21fe: 6048 addu r1, r2 + 2200: 6f47 mov r13, r1 + 2202: 1037 lrw r1, 0x5bfc // 225c <__v2_printf+0x720> + 2204: e3fffc82 bsr 0x1b08 // 1b08 + 2208: 5d19 subu r0, r5, r6 + 220a: 1b0c addi r3, r14, 48 + 220c: 3510 movi r5, 16 + 220e: 614c addu r5, r3 + 2210: 6f57 mov r13, r5 + 2212: 6d77 mov r5, r13 + 2214: 1032 lrw r1, 0x5bfc // 225c <__v2_printf+0x720> + 2216: e3fffc79 bsr 0x1b08 // 1b08 + 221a: 9500 ld.w r0, (r5, 0x0) + 221c: 9040 ld.w r2, (r0, 0x0) + 221e: 9061 ld.w r3, (r0, 0x4) + 2220: 6c13 mov r0, r4 + 2222: 3404 movi r4, 4 + 2224: 6c5b mov r1, r6 + 2226: 691c and r4, r7 + 2228: 7bcd jsr r3 + 222a: 3c40 cmpnei r4, 0 + 222c: 0c08 bf 0x223c // 223c <__v2_printf+0x700> + 222e: 9828 ld.w r1, (r14, 0x20) + 2230: 98c7 ld.w r6, (r14, 0x1c) + 2232: 5e05 subu r0, r6, r1 + 2234: 6f57 mov r13, r5 + 2236: 1029 lrw r1, 0x5bec // 2258 <__v2_printf+0x71c> + 2238: e3fffc68 bsr 0x1b08 // 1b08 + 223c: 98a7 ld.w r5, (r14, 0x1c) + 223e: 9848 ld.w r2, (r14, 0x20) + 2240: 6495 cmplt r5, r2 + 2242: 0c02 bf 0x2246 // 2246 <__v2_printf+0x70a> + 2244: 6d4b mov r5, r2 + 2246: 9809 ld.w r0, (r14, 0x24) + 2248: 6014 addu r0, r5 + 224a: b809 st.w r0, (r14, 0x24) + 224c: 98a5 ld.w r5, (r14, 0x14) + 224e: e800fc84 br 0x1b56 // 1b56 <__v2_printf+0x1a> + 2252: 9809 ld.w r0, (r14, 0x24) + 2254: 141c addi r14, r14, 112 + 2256: 1494 pop r4-r7, r15 + 2258: 00005bec .long 0x00005bec + 225c: 00005bfc .long 0x00005bfc + +00002260 <__udivdi3>: + 2260: 14d4 push r4-r7, r15 + 2262: 1426 subi r14, r14, 24 + 2264: 6dc7 mov r7, r1 + 2266: 3b40 cmpnei r3, 0 + 2268: 6d03 mov r4, r0 + 226a: 6c4f mov r1, r3 + 226c: 6d8b mov r6, r2 + 226e: b800 st.w r0, (r14, 0x0) + 2270: 6d5f mov r5, r7 + 2272: 085b bt 0x2328 // 2328 <__udivdi3+0xc8> + 2274: 649c cmphs r7, r2 + 2276: 0874 bt 0x235e // 235e <__udivdi3+0xfe> + 2278: 003d lrw r1, 0xffff // 2600 <__udivdi3+0x3a0> + 227a: 6484 cmphs r1, r2 + 227c: 0cdc bf 0x2434 // 2434 <__udivdi3+0x1d4> + 227e: 31ff movi r1, 255 + 2280: 6484 cmphs r1, r2 + 2282: 0802 bt 0x2286 // 2286 <__udivdi3+0x26> + 2284: 3308 movi r3, 8 + 2286: 6c4b mov r1, r2 + 2288: 704d lsr r1, r3 + 228a: 0100 lrw r0, 0x5aec // 2604 <__udivdi3+0x3a4> + 228c: 6040 addu r1, r0 + 228e: 8120 ld.b r1, (r1, 0x0) + 2290: 60c4 addu r3, r1 + 2292: 3120 movi r1, 32 + 2294: 604e subu r1, r3 + 2296: 3940 cmpnei r1, 0 + 2298: 0c09 bf 0x22aa // 22aa <__udivdi3+0x4a> + 229a: 6d53 mov r5, r4 + 229c: 7084 lsl r2, r1 + 229e: 71c4 lsl r7, r1 + 22a0: 714d lsr r5, r3 + 22a2: 7104 lsl r4, r1 + 22a4: 6d8b mov r6, r2 + 22a6: 6d5c or r5, r7 + 22a8: b880 st.w r4, (r14, 0x0) + 22aa: 4e90 lsri r4, r6, 16 + 22ac: 6c53 mov r1, r4 + 22ae: 6c17 mov r0, r5 + 22b0: e00010d4 bsr 0x4458 // 4458 <__umodsi3> + 22b4: b801 st.w r0, (r14, 0x4) + 22b6: 6c53 mov r1, r4 + 22b8: 6c17 mov r0, r5 + 22ba: e00010ab bsr 0x4410 // 4410 <__udivsi3> + 22be: 75d9 zexth r7, r6 + 22c0: 9861 ld.w r3, (r14, 0x4) + 22c2: 9820 ld.w r1, (r14, 0x0) + 22c4: 6c9f mov r2, r7 + 22c6: 4370 lsli r3, r3, 16 + 22c8: 4930 lsri r1, r1, 16 + 22ca: 7c80 mult r2, r0 + 22cc: 6cc4 or r3, r1 + 22ce: 648c cmphs r3, r2 + 22d0: 6d43 mov r5, r0 + 22d2: 0808 bt 0x22e2 // 22e2 <__udivdi3+0x82> + 22d4: 60d8 addu r3, r6 + 22d6: 658c cmphs r3, r6 + 22d8: 5823 subi r1, r0, 1 + 22da: 0c03 bf 0x22e0 // 22e0 <__udivdi3+0x80> + 22dc: 648c cmphs r3, r2 + 22de: 0d8e bf 0x25fa // 25fa <__udivdi3+0x39a> + 22e0: 6d47 mov r5, r1 + 22e2: 60ca subu r3, r2 + 22e4: 6c53 mov r1, r4 + 22e6: 6c0f mov r0, r3 + 22e8: b862 st.w r3, (r14, 0x8) + 22ea: e00010b7 bsr 0x4458 // 4458 <__umodsi3> + 22ee: 9862 ld.w r3, (r14, 0x8) + 22f0: b801 st.w r0, (r14, 0x4) + 22f2: 6c53 mov r1, r4 + 22f4: 6c0f mov r0, r3 + 22f6: e000108d bsr 0x4410 // 4410 <__udivsi3> + 22fa: 9841 ld.w r2, (r14, 0x4) + 22fc: d86e1000 ld.h r3, (r14, 0x0) + 2300: 4250 lsli r2, r2, 16 + 2302: 74cd zexth r3, r3 + 2304: 7dc0 mult r7, r0 + 2306: 6c8c or r2, r3 + 2308: 65c8 cmphs r2, r7 + 230a: 6d03 mov r4, r0 + 230c: 0808 bt 0x231c // 231c <__udivdi3+0xbc> + 230e: 6098 addu r2, r6 + 2310: 6588 cmphs r2, r6 + 2312: 5863 subi r3, r0, 1 + 2314: 0d4d bf 0x25ae // 25ae <__udivdi3+0x34e> + 2316: 65c8 cmphs r2, r7 + 2318: 094b bt 0x25ae // 25ae <__udivdi3+0x34e> + 231a: 2c01 subi r4, 2 + 231c: 4510 lsli r0, r5, 16 + 231e: 3700 movi r7, 0 + 2320: 6c10 or r0, r4 + 2322: 6c5f mov r1, r7 + 2324: 1406 addi r14, r14, 24 + 2326: 1494 pop r4-r7, r15 + 2328: 64dc cmphs r7, r3 + 232a: 0c76 bf 0x2416 // 2416 <__udivdi3+0x1b6> + 232c: 026a lrw r3, 0xffff // 2600 <__udivdi3+0x3a0> + 232e: 644c cmphs r3, r1 + 2330: 0878 bt 0x2420 // 2420 <__udivdi3+0x1c0> + 2332: 0269 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2334: 644c cmphs r3, r1 + 2336: 0d48 bf 0x25c6 // 25c6 <__udivdi3+0x366> + 2338: 3610 movi r6, 16 + 233a: 6cc7 mov r3, r1 + 233c: 70d9 lsr r3, r6 + 233e: 020d lrw r0, 0x5aec // 2604 <__udivdi3+0x3a4> + 2340: 60c0 addu r3, r0 + 2342: 8360 ld.b r3, (r3, 0x0) + 2344: 618c addu r6, r3 + 2346: 3020 movi r0, 32 + 2348: 5879 subu r3, r0, r6 + 234a: 3b40 cmpnei r3, 0 + 234c: b860 st.w r3, (r14, 0x0) + 234e: 0878 bt 0x243e // 243e <__udivdi3+0x1de> + 2350: 65c4 cmphs r1, r7 + 2352: 0d40 bf 0x25d2 // 25d2 <__udivdi3+0x372> + 2354: 6490 cmphs r4, r2 + 2356: 6c0f mov r0, r3 + 2358: 600d addc r0, r3 + 235a: 3700 movi r7, 0 + 235c: 045f br 0x241a // 241a <__udivdi3+0x1ba> + 235e: 3a40 cmpnei r2, 0 + 2360: 0808 bt 0x2370 // 2370 <__udivdi3+0x110> + 2362: 3100 movi r1, 0 + 2364: 3001 movi r0, 1 + 2366: b861 st.w r3, (r14, 0x4) + 2368: e0001054 bsr 0x4410 // 4410 <__udivsi3> + 236c: 6d83 mov r6, r0 + 236e: 9861 ld.w r3, (r14, 0x4) + 2370: 025b lrw r2, 0xffff // 2600 <__udivdi3+0x3a0> + 2372: 6588 cmphs r2, r6 + 2374: 085b bt 0x242a // 242a <__udivdi3+0x1ca> + 2376: 027a lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2378: 658c cmphs r3, r6 + 237a: 0d28 bf 0x25ca // 25ca <__udivdi3+0x36a> + 237c: 3310 movi r3, 16 + 237e: 6c9b mov r2, r6 + 2380: 023e lrw r1, 0x5aec // 2604 <__udivdi3+0x3a4> + 2382: 708d lsr r2, r3 + 2384: 6084 addu r2, r1 + 2386: 8240 ld.b r2, (r2, 0x0) + 2388: 5a2c addu r1, r2, r3 + 238a: 3220 movi r2, 32 + 238c: 6086 subu r2, r1 + 238e: 3a40 cmpnei r2, 0 + 2390: 08c0 bt 0x2510 // 2510 <__udivdi3+0x2b0> + 2392: 74d9 zexth r3, r6 + 2394: 5f99 subu r4, r7, r6 + 2396: 4eb0 lsri r5, r6, 16 + 2398: b861 st.w r3, (r14, 0x4) + 239a: 3701 movi r7, 1 + 239c: 6c57 mov r1, r5 + 239e: 6c13 mov r0, r4 + 23a0: e000105c bsr 0x4458 // 4458 <__umodsi3> + 23a4: b802 st.w r0, (r14, 0x8) + 23a6: 6c57 mov r1, r5 + 23a8: 6c13 mov r0, r4 + 23aa: e0001033 bsr 0x4410 // 4410 <__udivsi3> + 23ae: 9862 ld.w r3, (r14, 0x8) + 23b0: 4330 lsli r1, r3, 16 + 23b2: 9860 ld.w r3, (r14, 0x0) + 23b4: 9841 ld.w r2, (r14, 0x4) + 23b6: 4b70 lsri r3, r3, 16 + 23b8: 7c80 mult r2, r0 + 23ba: 6cc4 or r3, r1 + 23bc: 648c cmphs r3, r2 + 23be: 6d03 mov r4, r0 + 23c0: 0808 bt 0x23d0 // 23d0 <__udivdi3+0x170> + 23c2: 60d8 addu r3, r6 + 23c4: 658c cmphs r3, r6 + 23c6: 5823 subi r1, r0, 1 + 23c8: 0c03 bf 0x23ce // 23ce <__udivdi3+0x16e> + 23ca: 648c cmphs r3, r2 + 23cc: 0d14 bf 0x25f4 // 25f4 <__udivdi3+0x394> + 23ce: 6d07 mov r4, r1 + 23d0: 60ca subu r3, r2 + 23d2: 6c57 mov r1, r5 + 23d4: 6c0f mov r0, r3 + 23d6: b863 st.w r3, (r14, 0xc) + 23d8: e0001040 bsr 0x4458 // 4458 <__umodsi3> + 23dc: 9863 ld.w r3, (r14, 0xc) + 23de: 6c57 mov r1, r5 + 23e0: b802 st.w r0, (r14, 0x8) + 23e2: 6c0f mov r0, r3 + 23e4: e0001016 bsr 0x4410 // 4410 <__udivsi3> + 23e8: 9842 ld.w r2, (r14, 0x8) + 23ea: d86e1000 ld.h r3, (r14, 0x0) + 23ee: 9821 ld.w r1, (r14, 0x4) + 23f0: 4250 lsli r2, r2, 16 + 23f2: 74cd zexth r3, r3 + 23f4: 7c40 mult r1, r0 + 23f6: 6cc8 or r3, r2 + 23f8: 644c cmphs r3, r1 + 23fa: 6d43 mov r5, r0 + 23fc: 0808 bt 0x240c // 240c <__udivdi3+0x1ac> + 23fe: 60d8 addu r3, r6 + 2400: 658c cmphs r3, r6 + 2402: 5843 subi r2, r0, 1 + 2404: 0cd3 bf 0x25aa // 25aa <__udivdi3+0x34a> + 2406: 644c cmphs r3, r1 + 2408: 08d1 bt 0x25aa // 25aa <__udivdi3+0x34a> + 240a: 2d01 subi r5, 2 + 240c: 4410 lsli r0, r4, 16 + 240e: 6c14 or r0, r5 + 2410: 6c5f mov r1, r7 + 2412: 1406 addi r14, r14, 24 + 2414: 1494 pop r4-r7, r15 + 2416: 3700 movi r7, 0 + 2418: 3000 movi r0, 0 + 241a: 6c5f mov r1, r7 + 241c: 1406 addi r14, r14, 24 + 241e: 1494 pop r4-r7, r15 + 2420: 33ff movi r3, 255 + 2422: 644c cmphs r3, r1 + 2424: 6583 mvcv r6 + 2426: 46c3 lsli r6, r6, 3 + 2428: 0789 br 0x233a // 233a <__udivdi3+0xda> + 242a: 32ff movi r2, 255 + 242c: 6588 cmphs r2, r6 + 242e: 0ba8 bt 0x237e // 237e <__udivdi3+0x11e> + 2430: 3308 movi r3, 8 + 2432: 07a6 br 0x237e // 237e <__udivdi3+0x11e> + 2434: 1375 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2436: 648c cmphs r3, r2 + 2438: 0ccb bf 0x25ce // 25ce <__udivdi3+0x36e> + 243a: 3310 movi r3, 16 + 243c: 0725 br 0x2286 // 2286 <__udivdi3+0x26> + 243e: 9800 ld.w r0, (r14, 0x0) + 2440: 6ccb mov r3, r2 + 2442: 6d4b mov r5, r2 + 2444: 7040 lsl r1, r0 + 2446: 7140 lsl r5, r0 + 2448: 70d9 lsr r3, r6 + 244a: 6cc4 or r3, r1 + 244c: b8a3 st.w r5, (r14, 0xc) + 244e: 6d53 mov r5, r4 + 2450: 6c4f mov r1, r3 + 2452: 7159 lsr r5, r6 + 2454: 6cdf mov r3, r7 + 2456: 71c0 lsl r7, r0 + 2458: 6d5c or r5, r7 + 245a: 70d9 lsr r3, r6 + 245c: b8a1 st.w r5, (r14, 0x4) + 245e: 49b0 lsri r5, r1, 16 + 2460: b822 st.w r1, (r14, 0x8) + 2462: 75c5 zexth r7, r1 + 2464: 6c0f mov r0, r3 + 2466: 6c57 mov r1, r5 + 2468: b864 st.w r3, (r14, 0x10) + 246a: e0000ff7 bsr 0x4458 // 4458 <__umodsi3> + 246e: 9864 ld.w r3, (r14, 0x10) + 2470: 6d83 mov r6, r0 + 2472: 6c57 mov r1, r5 + 2474: 6c0f mov r0, r3 + 2476: e0000fcd bsr 0x4410 // 4410 <__udivsi3> + 247a: 6c5f mov r1, r7 + 247c: 7c40 mult r1, r0 + 247e: 6c87 mov r2, r1 + 2480: 4630 lsli r1, r6, 16 + 2482: 98c1 ld.w r6, (r14, 0x4) + 2484: 4ed0 lsri r6, r6, 16 + 2486: 6d84 or r6, r1 + 2488: 6498 cmphs r6, r2 + 248a: 6cc3 mov r3, r0 + 248c: 0807 bt 0x249a // 249a <__udivdi3+0x23a> + 248e: 5823 subi r1, r0, 1 + 2490: 9802 ld.w r0, (r14, 0x8) + 2492: 6180 addu r6, r0 + 2494: 6418 cmphs r6, r0 + 2496: 08a6 bt 0x25e2 // 25e2 <__udivdi3+0x382> + 2498: 6cc7 mov r3, r1 + 249a: 618a subu r6, r2 + 249c: 6c57 mov r1, r5 + 249e: 6c1b mov r0, r6 + 24a0: b865 st.w r3, (r14, 0x14) + 24a2: e0000fdb bsr 0x4458 // 4458 <__umodsi3> + 24a6: b804 st.w r0, (r14, 0x10) + 24a8: 6c57 mov r1, r5 + 24aa: 6c1b mov r0, r6 + 24ac: e0000fb2 bsr 0x4410 // 4410 <__udivsi3> + 24b0: 9864 ld.w r3, (r14, 0x10) + 24b2: 6c9f mov r2, r7 + 24b4: 43f0 lsli r7, r3, 16 + 24b6: d86e1002 ld.h r3, (r14, 0x4) + 24ba: 744d zexth r1, r3 + 24bc: 7c80 mult r2, r0 + 24be: 6dc4 or r7, r1 + 24c0: 649c cmphs r7, r2 + 24c2: 9865 ld.w r3, (r14, 0x14) + 24c4: 0807 bt 0x24d2 // 24d2 <__udivdi3+0x272> + 24c6: 98a2 ld.w r5, (r14, 0x8) + 24c8: 61d4 addu r7, r5 + 24ca: 655c cmphs r7, r5 + 24cc: 5823 subi r1, r0, 1 + 24ce: 0885 bt 0x25d8 // 25d8 <__udivdi3+0x378> + 24d0: 6c07 mov r0, r1 + 24d2: 4370 lsli r3, r3, 16 + 24d4: 6c0c or r0, r3 + 24d6: 74c1 zexth r3, r0 + 24d8: 61ca subu r7, r2 + 24da: 9843 ld.w r2, (r14, 0xc) + 24dc: 7549 zexth r5, r2 + 24de: 4830 lsri r1, r0, 16 + 24e0: 4a50 lsri r2, r2, 16 + 24e2: 6d8f mov r6, r3 + 24e4: 7d94 mult r6, r5 + 24e6: 7cc8 mult r3, r2 + 24e8: 7d44 mult r5, r1 + 24ea: 60d4 addu r3, r5 + 24ec: 7c48 mult r1, r2 + 24ee: 4e50 lsri r2, r6, 16 + 24f0: 60c8 addu r3, r2 + 24f2: 654c cmphs r3, r5 + 24f4: 0804 bt 0x24fc // 24fc <__udivdi3+0x29c> + 24f6: 3280 movi r2, 128 + 24f8: 4249 lsli r2, r2, 9 + 24fa: 6048 addu r1, r2 + 24fc: 4b50 lsri r2, r3, 16 + 24fe: 6048 addu r1, r2 + 2500: 645c cmphs r7, r1 + 2502: 0c5f bf 0x25c0 // 25c0 <__udivdi3+0x360> + 2504: 645e cmpne r7, r1 + 2506: 0c56 bf 0x25b2 // 25b2 <__udivdi3+0x352> + 2508: 3700 movi r7, 0 + 250a: 6c5f mov r1, r7 + 250c: 1406 addi r14, r14, 24 + 250e: 1494 pop r4-r7, r15 + 2510: 6d53 mov r5, r4 + 2512: 6cdf mov r3, r7 + 2514: 7145 lsr r5, r1 + 2516: 71c8 lsl r7, r2 + 2518: 7188 lsl r6, r2 + 251a: 6d5c or r5, r7 + 251c: 70c5 lsr r3, r1 + 251e: 6dd7 mov r7, r5 + 2520: b8a3 st.w r5, (r14, 0xc) + 2522: 4eb0 lsri r5, r6, 16 + 2524: 7108 lsl r4, r2 + 2526: 6c57 mov r1, r5 + 2528: 7499 zexth r2, r6 + 252a: 6c0f mov r0, r3 + 252c: b841 st.w r2, (r14, 0x4) + 252e: b880 st.w r4, (r14, 0x0) + 2530: b862 st.w r3, (r14, 0x8) + 2532: e0000f93 bsr 0x4458 // 4458 <__umodsi3> + 2536: 9862 ld.w r3, (r14, 0x8) + 2538: 6d03 mov r4, r0 + 253a: 6c57 mov r1, r5 + 253c: 6c0f mov r0, r3 + 253e: e0000f69 bsr 0x4410 // 4410 <__udivsi3> + 2542: 6cc3 mov r3, r0 + 2544: 7499 zexth r2, r6 + 2546: 7cc8 mult r3, r2 + 2548: 4450 lsli r2, r4, 16 + 254a: 4f90 lsri r4, r7, 16 + 254c: 6d08 or r4, r2 + 254e: 64d0 cmphs r4, r3 + 2550: 6c43 mov r1, r0 + 2552: b802 st.w r0, (r14, 0x8) + 2554: 080b bt 0x256a // 256a <__udivdi3+0x30a> + 2556: 6118 addu r4, r6 + 2558: 6c87 mov r2, r1 + 255a: 6590 cmphs r4, r6 + 255c: 2a00 subi r2, 1 + 255e: 0c49 bf 0x25f0 // 25f0 <__udivdi3+0x390> + 2560: 64d0 cmphs r4, r3 + 2562: 0847 bt 0x25f0 // 25f0 <__udivdi3+0x390> + 2564: 2a00 subi r2, 1 + 2566: b842 st.w r2, (r14, 0x8) + 2568: 6118 addu r4, r6 + 256a: 610e subu r4, r3 + 256c: 6c57 mov r1, r5 + 256e: 6c13 mov r0, r4 + 2570: e0000f74 bsr 0x4458 // 4458 <__umodsi3> + 2574: 6dc3 mov r7, r0 + 2576: 6c57 mov r1, r5 + 2578: 6c13 mov r0, r4 + 257a: e0000f4b bsr 0x4410 // 4410 <__udivsi3> + 257e: d84e1006 ld.h r2, (r14, 0xc) + 2582: 74d9 zexth r3, r6 + 2584: 47f0 lsli r7, r7, 16 + 2586: 7509 zexth r4, r2 + 2588: 7cc0 mult r3, r0 + 258a: 6dd0 or r7, r4 + 258c: 64dc cmphs r7, r3 + 258e: 0809 bt 0x25a0 // 25a0 <__udivdi3+0x340> + 2590: 61d8 addu r7, r6 + 2592: 659c cmphs r7, r6 + 2594: 5843 subi r2, r0, 1 + 2596: 0c2b bf 0x25ec // 25ec <__udivdi3+0x38c> + 2598: 64dc cmphs r7, r3 + 259a: 0829 bt 0x25ec // 25ec <__udivdi3+0x38c> + 259c: 2801 subi r0, 2 + 259e: 61d8 addu r7, r6 + 25a0: 5f8d subu r4, r7, r3 + 25a2: 9862 ld.w r3, (r14, 0x8) + 25a4: 43f0 lsli r7, r3, 16 + 25a6: 6dc0 or r7, r0 + 25a8: 06fa br 0x239c // 239c <__udivdi3+0x13c> + 25aa: 6d4b mov r5, r2 + 25ac: 0730 br 0x240c // 240c <__udivdi3+0x1ac> + 25ae: 6d0f mov r4, r3 + 25b0: 06b6 br 0x231c // 231c <__udivdi3+0xbc> + 25b2: 9840 ld.w r2, (r14, 0x0) + 25b4: 4370 lsli r3, r3, 16 + 25b6: 7599 zexth r6, r6 + 25b8: 7108 lsl r4, r2 + 25ba: 60d8 addu r3, r6 + 25bc: 64d0 cmphs r4, r3 + 25be: 0ba5 bt 0x2508 // 2508 <__udivdi3+0x2a8> + 25c0: 2800 subi r0, 1 + 25c2: 3700 movi r7, 0 + 25c4: 07a3 br 0x250a // 250a <__udivdi3+0x2aa> + 25c6: 3618 movi r6, 24 + 25c8: 06b9 br 0x233a // 233a <__udivdi3+0xda> + 25ca: 3318 movi r3, 24 + 25cc: 06d9 br 0x237e // 237e <__udivdi3+0x11e> + 25ce: 3318 movi r3, 24 + 25d0: 065b br 0x2286 // 2286 <__udivdi3+0x26> + 25d2: 3700 movi r7, 0 + 25d4: 3001 movi r0, 1 + 25d6: 0722 br 0x241a // 241a <__udivdi3+0x1ba> + 25d8: 649c cmphs r7, r2 + 25da: 0b7b bt 0x24d0 // 24d0 <__udivdi3+0x270> + 25dc: 2801 subi r0, 2 + 25de: 61d4 addu r7, r5 + 25e0: 0779 br 0x24d2 // 24d2 <__udivdi3+0x272> + 25e2: 6498 cmphs r6, r2 + 25e4: 0b5a bt 0x2498 // 2498 <__udivdi3+0x238> + 25e6: 2b01 subi r3, 2 + 25e8: 6180 addu r6, r0 + 25ea: 0758 br 0x249a // 249a <__udivdi3+0x23a> + 25ec: 6c0b mov r0, r2 + 25ee: 07d9 br 0x25a0 // 25a0 <__udivdi3+0x340> + 25f0: b842 st.w r2, (r14, 0x8) + 25f2: 07bc br 0x256a // 256a <__udivdi3+0x30a> + 25f4: 2c01 subi r4, 2 + 25f6: 60d8 addu r3, r6 + 25f8: 06ec br 0x23d0 // 23d0 <__udivdi3+0x170> + 25fa: 2d01 subi r5, 2 + 25fc: 60d8 addu r3, r6 + 25fe: 0672 br 0x22e2 // 22e2 <__udivdi3+0x82> + 2600: 0000ffff .long 0x0000ffff + 2604: 00005aec .long 0x00005aec + 2608: 00ffffff .long 0x00ffffff + +0000260c <__umoddi3>: + 260c: 14d4 push r4-r7, r15 + 260e: 1427 subi r14, r14, 28 + 2610: 6d07 mov r4, r1 + 2612: 6c4f mov r1, r3 + 2614: 6d43 mov r5, r0 + 2616: 3940 cmpnei r1, 0 + 2618: 6dcf mov r7, r3 + 261a: 6c0b mov r0, r2 + 261c: b8a0 st.w r5, (r14, 0x0) + 261e: 6cd3 mov r3, r4 + 2620: 085a bt 0x26d4 // 26d4 <__umoddi3+0xc8> + 2622: 6490 cmphs r4, r2 + 2624: 0877 bt 0x2712 // 2712 <__umoddi3+0x106> + 2626: 0120 lrw r1, 0xffff // 29a0 <__umoddi3+0x394> + 2628: 6484 cmphs r1, r2 + 262a: 0cd2 bf 0x27ce // 27ce <__umoddi3+0x1c2> + 262c: 31ff movi r1, 255 + 262e: 6484 cmphs r1, r2 + 2630: 0802 bt 0x2634 // 2634 <__umoddi3+0x28> + 2632: 3708 movi r7, 8 + 2634: 6c43 mov r1, r0 + 2636: 705d lsr r1, r7 + 2638: 01c4 lrw r6, 0x5aec // 29a4 <__umoddi3+0x398> + 263a: 6058 addu r1, r6 + 263c: 8120 ld.b r1, (r1, 0x0) + 263e: 61c4 addu r7, r1 + 2640: 3120 movi r1, 32 + 2642: 605e subu r1, r7 + 2644: 3940 cmpnei r1, 0 + 2646: b821 st.w r1, (r14, 0x4) + 2648: 0c09 bf 0x265a // 265a <__umoddi3+0x4e> + 264a: 6cd7 mov r3, r5 + 264c: 6c83 mov r2, r0 + 264e: 7104 lsl r4, r1 + 2650: 70dd lsr r3, r7 + 2652: 7144 lsl r5, r1 + 2654: 7084 lsl r2, r1 + 2656: 6cd0 or r3, r4 + 2658: b8a0 st.w r5, (r14, 0x0) + 265a: 4a90 lsri r4, r2, 16 + 265c: 6c53 mov r1, r4 + 265e: 6c0f mov r0, r3 + 2660: 75c9 zexth r7, r2 + 2662: b843 st.w r2, (r14, 0xc) + 2664: b862 st.w r3, (r14, 0x8) + 2666: e0000ef9 bsr 0x4458 // 4458 <__umodsi3> + 266a: 9862 ld.w r3, (r14, 0x8) + 266c: 6d43 mov r5, r0 + 266e: 6c53 mov r1, r4 + 2670: 6c0f mov r0, r3 + 2672: e0000ecf bsr 0x4410 // 4410 <__udivsi3> + 2676: 9840 ld.w r2, (r14, 0x0) + 2678: 4570 lsli r3, r5, 16 + 267a: 4ab0 lsri r5, r2, 16 + 267c: 7c1c mult r0, r7 + 267e: 6cd4 or r3, r5 + 2680: 640c cmphs r3, r0 + 2682: 9843 ld.w r2, (r14, 0xc) + 2684: 0806 bt 0x2690 // 2690 <__umoddi3+0x84> + 2686: 60c8 addu r3, r2 + 2688: 648c cmphs r3, r2 + 268a: 0c03 bf 0x2690 // 2690 <__umoddi3+0x84> + 268c: 640c cmphs r3, r0 + 268e: 0d7d bf 0x2988 // 2988 <__umoddi3+0x37c> + 2690: 60c2 subu r3, r0 + 2692: 6c53 mov r1, r4 + 2694: 6c0f mov r0, r3 + 2696: b843 st.w r2, (r14, 0xc) + 2698: b862 st.w r3, (r14, 0x8) + 269a: e0000edf bsr 0x4458 // 4458 <__umodsi3> + 269e: 9862 ld.w r3, (r14, 0x8) + 26a0: 6d43 mov r5, r0 + 26a2: 6c53 mov r1, r4 + 26a4: 6c0f mov r0, r3 + 26a6: e0000eb5 bsr 0x4410 // 4410 <__udivsi3> + 26aa: d86e1000 ld.h r3, (r14, 0x0) + 26ae: 7dc0 mult r7, r0 + 26b0: 45b0 lsli r5, r5, 16 + 26b2: 740d zexth r0, r3 + 26b4: 6d40 or r5, r0 + 26b6: 65d4 cmphs r5, r7 + 26b8: 0807 bt 0x26c6 // 26c6 <__umoddi3+0xba> + 26ba: 9843 ld.w r2, (r14, 0xc) + 26bc: 6148 addu r5, r2 + 26be: 6494 cmphs r5, r2 + 26c0: 0c03 bf 0x26c6 // 26c6 <__umoddi3+0xba> + 26c2: 65d4 cmphs r5, r7 + 26c4: 0d5e bf 0x2980 // 2980 <__umoddi3+0x374> + 26c6: 615e subu r5, r7 + 26c8: 6c17 mov r0, r5 + 26ca: 9861 ld.w r3, (r14, 0x4) + 26cc: 700d lsr r0, r3 + 26ce: 3100 movi r1, 0 + 26d0: 1407 addi r14, r14, 28 + 26d2: 1494 pop r4-r7, r15 + 26d4: 6450 cmphs r4, r1 + 26d6: 0c6e bf 0x27b2 // 27b2 <__umoddi3+0x1a6> + 26d8: 024d lrw r2, 0xffff // 29a0 <__umoddi3+0x394> + 26da: 6448 cmphs r2, r1 + 26dc: 086f bt 0x27ba // 27ba <__umoddi3+0x1ae> + 26de: 024c lrw r2, 0xffffff // 29a8 <__umoddi3+0x39c> + 26e0: 6448 cmphs r2, r1 + 26e2: 0d3f bf 0x2960 // 2960 <__umoddi3+0x354> + 26e4: 3610 movi r6, 16 + 26e6: 6c87 mov r2, r1 + 26e8: 7099 lsr r2, r6 + 26ea: 02f0 lrw r7, 0x5aec // 29a4 <__umoddi3+0x398> + 26ec: 609c addu r2, r7 + 26ee: 8240 ld.b r2, (r2, 0x0) + 26f0: 6188 addu r6, r2 + 26f2: 3720 movi r7, 32 + 26f4: 61da subu r7, r6 + 26f6: 3f40 cmpnei r7, 0 + 26f8: 0870 bt 0x27d8 // 27d8 <__umoddi3+0x1cc> + 26fa: 6504 cmphs r1, r4 + 26fc: 0c03 bf 0x2702 // 2702 <__umoddi3+0xf6> + 26fe: 6414 cmphs r5, r0 + 2700: 0d46 bf 0x298c // 298c <__umoddi3+0x380> + 2702: 5d01 subu r0, r5, r0 + 2704: 6414 cmphs r5, r0 + 2706: 6106 subu r4, r1 + 2708: 6483 mvcv r2 + 270a: 5c69 subu r3, r4, r2 + 270c: 6c4f mov r1, r3 + 270e: 1407 addi r14, r14, 28 + 2710: 1494 pop r4-r7, r15 + 2712: 3a40 cmpnei r2, 0 + 2714: 0806 bt 0x2720 // 2720 <__umoddi3+0x114> + 2716: 3100 movi r1, 0 + 2718: 3001 movi r0, 1 + 271a: e0000e7b bsr 0x4410 // 4410 <__udivsi3> + 271e: 6c83 mov r2, r0 + 2720: 027f lrw r3, 0xffff // 29a0 <__umoddi3+0x394> + 2722: 648c cmphs r3, r2 + 2724: 0850 bt 0x27c4 // 27c4 <__umoddi3+0x1b8> + 2726: 027e lrw r3, 0xffffff // 29a8 <__umoddi3+0x39c> + 2728: 648c cmphs r3, r2 + 272a: 0d1d bf 0x2964 // 2964 <__umoddi3+0x358> + 272c: 3710 movi r7, 16 + 272e: 6ccb mov r3, r2 + 2730: 70dd lsr r3, r7 + 2732: 0322 lrw r1, 0x5aec // 29a4 <__umoddi3+0x398> + 2734: 60c4 addu r3, r1 + 2736: 8360 ld.b r3, (r3, 0x0) + 2738: 61cc addu r7, r3 + 273a: 3320 movi r3, 32 + 273c: 60de subu r3, r7 + 273e: 3b40 cmpnei r3, 0 + 2740: b861 st.w r3, (r14, 0x4) + 2742: 08c2 bt 0x28c6 // 28c6 <__umoddi3+0x2ba> + 2744: 74c9 zexth r3, r2 + 2746: 610a subu r4, r2 + 2748: 4af0 lsri r7, r2, 16 + 274a: 6d8f mov r6, r3 + 274c: 6c5f mov r1, r7 + 274e: 6c13 mov r0, r4 + 2750: b842 st.w r2, (r14, 0x8) + 2752: e0000e83 bsr 0x4458 // 4458 <__umodsi3> + 2756: 6d43 mov r5, r0 + 2758: 6c5f mov r1, r7 + 275a: 6c13 mov r0, r4 + 275c: e0000e5a bsr 0x4410 // 4410 <__udivsi3> + 2760: 9860 ld.w r3, (r14, 0x0) + 2762: 4590 lsli r4, r5, 16 + 2764: 4bb0 lsri r5, r3, 16 + 2766: 7c18 mult r0, r6 + 2768: 6d14 or r4, r5 + 276a: 6410 cmphs r4, r0 + 276c: 9842 ld.w r2, (r14, 0x8) + 276e: 0806 bt 0x277a // 277a <__umoddi3+0x16e> + 2770: 6108 addu r4, r2 + 2772: 6490 cmphs r4, r2 + 2774: 0c03 bf 0x277a // 277a <__umoddi3+0x16e> + 2776: 6410 cmphs r4, r0 + 2778: 0d06 bf 0x2984 // 2984 <__umoddi3+0x378> + 277a: 6102 subu r4, r0 + 277c: 6c5f mov r1, r7 + 277e: 6c13 mov r0, r4 + 2780: b842 st.w r2, (r14, 0x8) + 2782: e0000e6b bsr 0x4458 // 4458 <__umodsi3> + 2786: 6d43 mov r5, r0 + 2788: 6c5f mov r1, r7 + 278a: 6c13 mov r0, r4 + 278c: e0000e42 bsr 0x4410 // 4410 <__udivsi3> + 2790: d86e1000 ld.h r3, (r14, 0x0) + 2794: 7c18 mult r0, r6 + 2796: 45b0 lsli r5, r5, 16 + 2798: 758d zexth r6, r3 + 279a: 6d58 or r5, r6 + 279c: 6414 cmphs r5, r0 + 279e: 0808 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27a0: 9842 ld.w r2, (r14, 0x8) + 27a2: 6148 addu r5, r2 + 27a4: 6494 cmphs r5, r2 + 27a6: 0c04 bf 0x27ae // 27ae <__umoddi3+0x1a2> + 27a8: 6414 cmphs r5, r0 + 27aa: 0802 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27ac: 6148 addu r5, r2 + 27ae: 6142 subu r5, r0 + 27b0: 078c br 0x26c8 // 26c8 <__umoddi3+0xbc> + 27b2: 6c17 mov r0, r5 + 27b4: 6c53 mov r1, r4 + 27b6: 1407 addi r14, r14, 28 + 27b8: 1494 pop r4-r7, r15 + 27ba: 32ff movi r2, 255 + 27bc: 6448 cmphs r2, r1 + 27be: 6583 mvcv r6 + 27c0: 46c3 lsli r6, r6, 3 + 27c2: 0792 br 0x26e6 // 26e6 <__umoddi3+0xda> + 27c4: 33ff movi r3, 255 + 27c6: 648c cmphs r3, r2 + 27c8: 0bb3 bt 0x272e // 272e <__umoddi3+0x122> + 27ca: 3708 movi r7, 8 + 27cc: 07b1 br 0x272e // 272e <__umoddi3+0x122> + 27ce: 1337 lrw r1, 0xffffff // 29a8 <__umoddi3+0x39c> + 27d0: 6484 cmphs r1, r2 + 27d2: 0ccb bf 0x2968 // 2968 <__umoddi3+0x35c> + 27d4: 3710 movi r7, 16 + 27d6: 072f br 0x2634 // 2634 <__umoddi3+0x28> + 27d8: 6cc3 mov r3, r0 + 27da: 705c lsl r1, r7 + 27dc: 70d9 lsr r3, r6 + 27de: 6cc4 or r3, r1 + 27e0: 6c57 mov r1, r5 + 27e2: 6c93 mov r2, r4 + 27e4: 7059 lsr r1, r6 + 27e6: 711c lsl r4, r7 + 27e8: 7099 lsr r2, r6 + 27ea: 6c50 or r1, r4 + 27ec: 701c lsl r0, r7 + 27ee: 4b90 lsri r4, r3, 16 + 27f0: 715c lsl r5, r7 + 27f2: b803 st.w r0, (r14, 0xc) + 27f4: b820 st.w r1, (r14, 0x0) + 27f6: b8a4 st.w r5, (r14, 0x10) + 27f8: 6c53 mov r1, r4 + 27fa: 754d zexth r5, r3 + 27fc: 6c0b mov r0, r2 + 27fe: b862 st.w r3, (r14, 0x8) + 2800: b8a1 st.w r5, (r14, 0x4) + 2802: b846 st.w r2, (r14, 0x18) + 2804: e0000e2a bsr 0x4458 // 4458 <__umodsi3> + 2808: 9846 ld.w r2, (r14, 0x18) + 280a: b805 st.w r0, (r14, 0x14) + 280c: 6c53 mov r1, r4 + 280e: 6c0b mov r0, r2 + 2810: e0000e00 bsr 0x4410 // 4410 <__udivsi3> + 2814: 9841 ld.w r2, (r14, 0x4) + 2816: 7c80 mult r2, r0 + 2818: 9865 ld.w r3, (r14, 0x14) + 281a: 6d43 mov r5, r0 + 281c: 9800 ld.w r0, (r14, 0x0) + 281e: 4330 lsli r1, r3, 16 + 2820: 4870 lsri r3, r0, 16 + 2822: 6cc4 or r3, r1 + 2824: 648c cmphs r3, r2 + 2826: 0807 bt 0x2834 // 2834 <__umoddi3+0x228> + 2828: 9802 ld.w r0, (r14, 0x8) + 282a: 60c0 addu r3, r0 + 282c: 640c cmphs r3, r0 + 282e: 5d23 subi r1, r5, 1 + 2830: 08a3 bt 0x2976 // 2976 <__umoddi3+0x36a> + 2832: 6d47 mov r5, r1 + 2834: 60ca subu r3, r2 + 2836: 6c53 mov r1, r4 + 2838: 6c0f mov r0, r3 + 283a: b866 st.w r3, (r14, 0x18) + 283c: e0000e0e bsr 0x4458 // 4458 <__umodsi3> + 2840: 9866 ld.w r3, (r14, 0x18) + 2842: 6c53 mov r1, r4 + 2844: b805 st.w r0, (r14, 0x14) + 2846: 6c0f mov r0, r3 + 2848: e0000de4 bsr 0x4410 // 4410 <__udivsi3> + 284c: 9845 ld.w r2, (r14, 0x14) + 284e: d86e1000 ld.h r3, (r14, 0x0) + 2852: 9821 ld.w r1, (r14, 0x4) + 2854: 4250 lsli r2, r2, 16 + 2856: 750d zexth r4, r3 + 2858: 7c40 mult r1, r0 + 285a: 6c90 or r2, r4 + 285c: 6448 cmphs r2, r1 + 285e: 0807 bt 0x286c // 286c <__umoddi3+0x260> + 2860: 9882 ld.w r4, (r14, 0x8) + 2862: 6090 addu r2, r4 + 2864: 6508 cmphs r2, r4 + 2866: 5863 subi r3, r0, 1 + 2868: 0882 bt 0x296c // 296c <__umoddi3+0x360> + 286a: 6c0f mov r0, r3 + 286c: 45b0 lsli r5, r5, 16 + 286e: 6d40 or r5, r0 + 2870: 74d5 zexth r3, r5 + 2872: 9803 ld.w r0, (r14, 0xc) + 2874: 4db0 lsri r5, r5, 16 + 2876: 6d0f mov r4, r3 + 2878: 6086 subu r2, r1 + 287a: 7441 zexth r1, r0 + 287c: 4810 lsri r0, r0, 16 + 287e: 7d04 mult r4, r1 + 2880: 7cc0 mult r3, r0 + 2882: 7c54 mult r1, r5 + 2884: 60c4 addu r3, r1 + 2886: 7d40 mult r5, r0 + 2888: 4c10 lsri r0, r4, 16 + 288a: 60c0 addu r3, r0 + 288c: 644c cmphs r3, r1 + 288e: 0804 bt 0x2896 // 2896 <__umoddi3+0x28a> + 2890: 3180 movi r1, 128 + 2892: 4129 lsli r1, r1, 9 + 2894: 6144 addu r5, r1 + 2896: 4b30 lsri r1, r3, 16 + 2898: 6144 addu r5, r1 + 289a: 4370 lsli r3, r3, 16 + 289c: 7511 zexth r4, r4 + 289e: 6548 cmphs r2, r5 + 28a0: 60d0 addu r3, r4 + 28a2: 0c56 bf 0x294e // 294e <__umoddi3+0x342> + 28a4: 654a cmpne r2, r5 + 28a6: 0c76 bf 0x2992 // 2992 <__umoddi3+0x386> + 28a8: 5a35 subu r1, r2, r5 + 28aa: 6c0f mov r0, r3 + 28ac: 9864 ld.w r3, (r14, 0x10) + 28ae: 5b01 subu r0, r3, r0 + 28b0: 640c cmphs r3, r0 + 28b2: 64c3 mvcv r3 + 28b4: 598d subu r4, r1, r3 + 28b6: 6d53 mov r5, r4 + 28b8: 7158 lsl r5, r6 + 28ba: 701d lsr r0, r7 + 28bc: 6c53 mov r1, r4 + 28be: 6c14 or r0, r5 + 28c0: 705d lsr r1, r7 + 28c2: 1407 addi r14, r14, 28 + 28c4: 1494 pop r4-r7, r15 + 28c6: 9801 ld.w r0, (r14, 0x4) + 28c8: 6c57 mov r1, r5 + 28ca: 6cd3 mov r3, r4 + 28cc: 705d lsr r1, r7 + 28ce: 7100 lsl r4, r0 + 28d0: 7080 lsl r2, r0 + 28d2: 6c50 or r1, r4 + 28d4: 70dd lsr r3, r7 + 28d6: 6d07 mov r4, r1 + 28d8: 4af0 lsri r7, r2, 16 + 28da: b822 st.w r1, (r14, 0x8) + 28dc: 7449 zexth r1, r2 + 28de: 7140 lsl r5, r0 + 28e0: 6d87 mov r6, r1 + 28e2: 6c0f mov r0, r3 + 28e4: 6c5f mov r1, r7 + 28e6: b844 st.w r2, (r14, 0x10) + 28e8: b8a0 st.w r5, (r14, 0x0) + 28ea: b863 st.w r3, (r14, 0xc) + 28ec: e0000db6 bsr 0x4458 // 4458 <__umodsi3> + 28f0: 9863 ld.w r3, (r14, 0xc) + 28f2: 6d43 mov r5, r0 + 28f4: 6c5f mov r1, r7 + 28f6: 6c0f mov r0, r3 + 28f8: e0000d8c bsr 0x4410 // 4410 <__udivsi3> + 28fc: 45b0 lsli r5, r5, 16 + 28fe: 4c70 lsri r3, r4, 16 + 2900: 7c18 mult r0, r6 + 2902: 6d4c or r5, r3 + 2904: 6414 cmphs r5, r0 + 2906: 9844 ld.w r2, (r14, 0x10) + 2908: 0807 bt 0x2916 // 2916 <__umoddi3+0x30a> + 290a: 6148 addu r5, r2 + 290c: 6494 cmphs r5, r2 + 290e: 0c04 bf 0x2916 // 2916 <__umoddi3+0x30a> + 2910: 6414 cmphs r5, r0 + 2912: 0802 bt 0x2916 // 2916 <__umoddi3+0x30a> + 2914: 6148 addu r5, r2 + 2916: 6142 subu r5, r0 + 2918: 6c5f mov r1, r7 + 291a: 6c17 mov r0, r5 + 291c: b843 st.w r2, (r14, 0xc) + 291e: e0000d9d bsr 0x4458 // 4458 <__umodsi3> + 2922: 6d03 mov r4, r0 + 2924: 6c5f mov r1, r7 + 2926: 6c17 mov r0, r5 + 2928: e0000d74 bsr 0x4410 // 4410 <__udivsi3> + 292c: d86e1004 ld.h r3, (r14, 0x8) + 2930: 4490 lsli r4, r4, 16 + 2932: 744d zexth r1, r3 + 2934: 7c18 mult r0, r6 + 2936: 6d04 or r4, r1 + 2938: 6410 cmphs r4, r0 + 293a: 9843 ld.w r2, (r14, 0xc) + 293c: 0807 bt 0x294a // 294a <__umoddi3+0x33e> + 293e: 6108 addu r4, r2 + 2940: 6490 cmphs r4, r2 + 2942: 0c04 bf 0x294a // 294a <__umoddi3+0x33e> + 2944: 6410 cmphs r4, r0 + 2946: 0802 bt 0x294a // 294a <__umoddi3+0x33e> + 2948: 6108 addu r4, r2 + 294a: 6102 subu r4, r0 + 294c: 0700 br 0x274c // 274c <__umoddi3+0x140> + 294e: 9823 ld.w r1, (r14, 0xc) + 2950: 5b05 subu r0, r3, r1 + 2952: 640c cmphs r3, r0 + 2954: 9822 ld.w r1, (r14, 0x8) + 2956: 6146 subu r5, r1 + 2958: 64c3 mvcv r3 + 295a: 614e subu r5, r3 + 295c: 5a35 subu r1, r2, r5 + 295e: 07a7 br 0x28ac // 28ac <__umoddi3+0x2a0> + 2960: 3618 movi r6, 24 + 2962: 06c2 br 0x26e6 // 26e6 <__umoddi3+0xda> + 2964: 3718 movi r7, 24 + 2966: 06e4 br 0x272e // 272e <__umoddi3+0x122> + 2968: 3718 movi r7, 24 + 296a: 0665 br 0x2634 // 2634 <__umoddi3+0x28> + 296c: 6448 cmphs r2, r1 + 296e: 0b7e bt 0x286a // 286a <__umoddi3+0x25e> + 2970: 2801 subi r0, 2 + 2972: 6090 addu r2, r4 + 2974: 077c br 0x286c // 286c <__umoddi3+0x260> + 2976: 648c cmphs r3, r2 + 2978: 0b5d bt 0x2832 // 2832 <__umoddi3+0x226> + 297a: 2d01 subi r5, 2 + 297c: 60c0 addu r3, r0 + 297e: 075b br 0x2834 // 2834 <__umoddi3+0x228> + 2980: 6148 addu r5, r2 + 2982: 06a2 br 0x26c6 // 26c6 <__umoddi3+0xba> + 2984: 6108 addu r4, r2 + 2986: 06fa br 0x277a // 277a <__umoddi3+0x16e> + 2988: 60c8 addu r3, r2 + 298a: 0683 br 0x2690 // 2690 <__umoddi3+0x84> + 298c: 6c17 mov r0, r5 + 298e: 6c4f mov r1, r3 + 2990: 06bf br 0x270e // 270e <__umoddi3+0x102> + 2992: 9824 ld.w r1, (r14, 0x10) + 2994: 64c4 cmphs r1, r3 + 2996: 0fdc bf 0x294e // 294e <__umoddi3+0x342> + 2998: 6c0f mov r0, r3 + 299a: 3100 movi r1, 0 + 299c: 0788 br 0x28ac // 28ac <__umoddi3+0x2a0> + 299e: 0000 bkpt + 29a0: 0000ffff .long 0x0000ffff + 29a4: 00005aec .long 0x00005aec + 29a8: 00ffffff .long 0x00ffffff + +000029ac : + 29ac: 14c2 push r4-r5 + 29ae: 3300 movi r3, 0 + 29b0: 644d cmplt r3, r1 + 29b2: 0803 bt 0x29b8 // 29b8 + 29b4: 6c0f mov r0, r3 + 29b6: 1482 pop r4-r5 + 29b8: 5aac addu r5, r2, r3 + 29ba: 588c addu r4, r0, r3 + 29bc: 2300 addi r3, 1 + 29be: 85a0 ld.b r5, (r5, 0x0) + 29c0: 3b43 cmpnei r3, 3 + 29c2: a4a0 st.b r5, (r4, 0x0) + 29c4: 0bf6 bt 0x29b0 // 29b0 + 29c6: 3923 cmplti r1, 4 + 29c8: 0bf6 bt 0x29b4 // 29b4 + 29ca: 3300 movi r3, 0 + 29cc: a063 st.b r3, (r0, 0x3) + 29ce: 3304 movi r3, 4 + 29d0: 07f2 br 0x29b4 // 29b4 + +000029d2 <__GI___dtostr>: + 29d2: 14d4 push r4-r7, r15 + 29d4: 142c subi r14, r14, 48 + 29d6: 6d8f mov r6, r3 + 29d8: 9871 ld.w r3, (r14, 0x44) + 29da: b80a st.w r0, (r14, 0x28) + 29dc: b824 st.w r1, (r14, 0x10) + 29de: b842 st.w r2, (r14, 0x8) + 29e0: b86b st.w r3, (r14, 0x2c) + 29e2: 98f2 ld.w r7, (r14, 0x48) + 29e4: e0000244 bsr 0x2e6c // 2e6c <__isinf> + 29e8: 3840 cmpnei r0, 0 + 29ea: 0c0a bf 0x29fe // 29fe <__GI___dtostr+0x2c> + 29ec: 0244 lrw r2, 0x5f82 // 2cd8 <__GI___dtostr+0x306> + 29ee: 6c5b mov r1, r6 + 29f0: 9802 ld.w r0, (r14, 0x8) + 29f2: e3ffffdd bsr 0x29ac // 29ac + 29f6: b809 st.w r0, (r14, 0x24) + 29f8: 9809 ld.w r0, (r14, 0x24) + 29fa: 140c addi r14, r14, 48 + 29fc: 1494 pop r4-r7, r15 + 29fe: 980a ld.w r0, (r14, 0x28) + 2a00: 9824 ld.w r1, (r14, 0x10) + 2a02: e0000185 bsr 0x2d0c // 2d0c <__isnan> + 2a06: 3840 cmpnei r0, 0 + 2a08: b809 st.w r0, (r14, 0x24) + 2a0a: 0c03 bf 0x2a10 // 2a10 <__GI___dtostr+0x3e> + 2a0c: 024b lrw r2, 0x5f86 // 2cdc <__GI___dtostr+0x30a> + 2a0e: 07f0 br 0x29ee // 29ee <__GI___dtostr+0x1c> + 2a10: 3200 movi r2, 0 + 2a12: 3300 movi r3, 0 + 2a14: 980a ld.w r0, (r14, 0x28) + 2a16: 9824 ld.w r1, (r14, 0x10) + 2a18: e0000242 bsr 0x2e9c // 2e9c <__eqdf2> + 2a1c: 3840 cmpnei r0, 0 + 2a1e: 082d bt 0x2a78 // 2a78 <__GI___dtostr+0xa6> + 2a20: 3f40 cmpnei r7, 0 + 2a22: 0d57 bf 0x2cd0 // 2cd0 <__GI___dtostr+0x2fe> + 2a24: 5fa6 addi r5, r7, 2 + 2a26: 6558 cmphs r6, r5 + 2a28: 0d56 bf 0x2cd4 // 2cd4 <__GI___dtostr+0x302> + 2a2a: 3d40 cmpnei r5, 0 + 2a2c: 0c0b bf 0x2a42 // 2a42 <__GI___dtostr+0x70> + 2a2e: 9824 ld.w r1, (r14, 0x10) + 2a30: 39df btsti r1, 31 + 2a32: 0c1a bf 0x2a66 // 2a66 <__GI___dtostr+0x94> + 2a34: 9802 ld.w r0, (r14, 0x8) + 2a36: 322d movi r2, 45 + 2a38: a040 st.b r2, (r0, 0x0) + 2a3a: 5d02 addi r0, r5, 1 + 2a3c: 3501 movi r5, 1 + 2a3e: 6414 cmphs r5, r0 + 2a40: 0c16 bf 0x2a6c // 2a6c <__GI___dtostr+0x9a> + 2a42: 9882 ld.w r4, (r14, 0x8) + 2a44: 8420 ld.b r1, (r4, 0x0) + 2a46: 3330 movi r3, 48 + 2a48: 64c6 cmpne r1, r3 + 2a4a: 3000 movi r0, 0 + 2a4c: 6001 addc r0, r0 + 2a4e: 9842 ld.w r2, (r14, 0x8) + 2a50: 9822 ld.w r1, (r14, 0x8) + 2a52: 6008 addu r0, r2 + 2a54: 342e movi r4, 46 + 2a56: 6054 addu r1, r5 + 2a58: 3300 movi r3, 0 + 2a5a: a081 st.b r4, (r0, 0x1) + 2a5c: b8a9 st.w r5, (r14, 0x24) + 2a5e: a160 st.b r3, (r1, 0x0) + 2a60: 07cc br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2a62: 3501 movi r5, 1 + 2a64: 07e5 br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2a66: 6c17 mov r0, r5 + 2a68: 3500 movi r5, 0 + 2a6a: 07ea br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a6c: 9842 ld.w r2, (r14, 0x8) + 2a6e: 6094 addu r2, r5 + 2a70: 3430 movi r4, 48 + 2a72: a280 st.b r4, (r2, 0x0) + 2a74: 2500 addi r5, 1 + 2a76: 07e4 br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a78: 3200 movi r2, 0 + 2a7a: 3300 movi r3, 0 + 2a7c: 980a ld.w r0, (r14, 0x28) + 2a7e: 9824 ld.w r1, (r14, 0x10) + 2a80: e000022c bsr 0x2ed8 // 2ed8 <__ltdf2> + 2a84: 38df btsti r0, 31 + 2a86: 0c8e bf 0x2ba2 // 2ba2 <__GI___dtostr+0x1d0> + 2a88: 3180 movi r1, 128 + 2a8a: 98a2 ld.w r5, (r14, 0x8) + 2a8c: 9884 ld.w r4, (r14, 0x10) + 2a8e: 4158 lsli r2, r1, 24 + 2a90: 332d movi r3, 45 + 2a92: a560 st.b r3, (r5, 0x0) + 2a94: 6108 addu r4, r2 + 2a96: 2e00 subi r6, 1 + 2a98: 2500 addi r5, 1 + 2a9a: 3000 movi r0, 0 + 2a9c: 032e lrw r1, 0x3fe00000 // 2ce0 <__GI___dtostr+0x30e> + 2a9e: 3300 movi r3, 0 + 2aa0: b865 st.w r3, (r14, 0x14) + 2aa2: 9845 ld.w r2, (r14, 0x14) + 2aa4: 65ca cmpne r2, r7 + 2aa6: 0881 bt 0x2ba8 // 2ba8 <__GI___dtostr+0x1d6> + 2aa8: 6c83 mov r2, r0 + 2aaa: 6cc7 mov r3, r1 + 2aac: 980a ld.w r0, (r14, 0x28) + 2aae: 6c53 mov r1, r4 + 2ab0: e3fff2b6 bsr 0x101c // 101c <__adddf3> + 2ab4: 3200 movi r2, 0 + 2ab6: 0373 lrw r3, 0x3ff00000 // 2ce4 <__GI___dtostr+0x312> + 2ab8: b806 st.w r0, (r14, 0x18) + 2aba: b827 st.w r1, (r14, 0x1c) + 2abc: e000020e bsr 0x2ed8 // 2ed8 <__ltdf2> + 2ac0: 38df btsti r0, 31 + 2ac2: 0c05 bf 0x2acc // 2acc <__GI___dtostr+0xfa> + 2ac4: 3430 movi r4, 48 + 2ac6: a580 st.b r4, (r5, 0x0) + 2ac8: 2e00 subi r6, 1 + 2aca: 2500 addi r5, 1 + 2acc: 9804 ld.w r0, (r14, 0x10) + 2ace: 4021 lsli r1, r0, 1 + 2ad0: 0379 lrw r3, 0xfffffc01 // 2ce8 <__GI___dtostr+0x316> + 2ad2: 4915 lsri r0, r1, 21 + 2ad4: 600c addu r0, r3 + 2ad6: e3fff4f5 bsr 0x14c0 // 14c0 <__floatsidf> + 2ada: 035a lrw r2, 0x509f79ff // 2cec <__GI___dtostr+0x31a> + 2adc: 037a lrw r3, 0x3fd34413 // 2cf0 <__GI___dtostr+0x31e> + 2ade: e3fff2d3 bsr 0x1084 // 1084 <__muldf3> + 2ae2: e3fff527 bsr 0x1530 // 1530 <__fixdfsi> + 2ae6: 5842 addi r2, r0, 1 + 2ae8: 3a20 cmplti r2, 1 + 2aea: b848 st.w r2, (r14, 0x20) + 2aec: 08e7 bt 0x2cba // 2cba <__GI___dtostr+0x2e8> + 2aee: 033d lrw r1, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2af0: 6dcb mov r7, r2 + 2af2: 3400 movi r4, 0 + 2af4: b823 st.w r1, (r14, 0xc) + 2af6: 3f0a cmphsi r7, 11 + 2af8: 085f bt 0x2bb6 // 2bb6 <__GI___dtostr+0x1e4> + 2afa: 3f41 cmpnei r7, 1 + 2afc: 0868 bt 0x2bcc // 2bcc <__GI___dtostr+0x1fa> + 2afe: 135f lrw r2, 0xcccccccd // 2cf8 <__GI___dtostr+0x326> + 2b00: 137f lrw r3, 0x3feccccc // 2cfc <__GI___dtostr+0x32a> + 2b02: 6c13 mov r0, r4 + 2b04: 9823 ld.w r1, (r14, 0xc) + 2b06: e3fff483 bsr 0x140c // 140c <__gtdf2> + 2b0a: 3820 cmplti r0, 1 + 2b0c: 0c6a bf 0x2be0 // 2be0 <__GI___dtostr+0x20e> + 2b0e: 9862 ld.w r3, (r14, 0x8) + 2b10: 64d6 cmpne r5, r3 + 2b12: 0807 bt 0x2b20 // 2b20 <__GI___dtostr+0x14e> + 2b14: 3e40 cmpnei r6, 0 + 2b16: 0f71 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b18: 3230 movi r2, 48 + 2b1a: a540 st.b r2, (r5, 0x0) + 2b1c: 2e00 subi r6, 1 + 2b1e: 2500 addi r5, 1 + 2b20: 9805 ld.w r0, (r14, 0x14) + 2b22: 3840 cmpnei r0, 0 + 2b24: 08cf bt 0x2cc2 // 2cc2 <__GI___dtostr+0x2f0> + 2b26: 9822 ld.w r1, (r14, 0x8) + 2b28: 5d65 subu r3, r5, r1 + 2b2a: 2300 addi r3, 1 + 2b2c: 984b ld.w r2, (r14, 0x2c) + 2b2e: 648c cmphs r3, r2 + 2b30: 08a5 bt 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b32: 3e40 cmpnei r6, 0 + 2b34: 0f62 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b36: 372e movi r7, 46 + 2b38: a5e0 st.b r7, (r5, 0x0) + 2b3a: 980b ld.w r0, (r14, 0x2c) + 2b3c: 5de2 addi r7, r5, 1 + 2b3e: 9822 ld.w r1, (r14, 0x8) + 2b40: 2000 addi r0, 1 + 2b42: 5f65 subu r3, r7, r1 + 2b44: 584d subu r2, r0, r3 + 2b46: 2e00 subi r6, 1 + 2b48: b845 st.w r2, (r14, 0x14) + 2b4a: 9805 ld.w r0, (r14, 0x14) + 2b4c: 6418 cmphs r6, r0 + 2b4e: 0f55 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b50: 6d43 mov r5, r0 + 2b52: 615c addu r5, r7 + 2b54: 36ff movi r6, 255 + 2b56: 655e cmpne r7, r5 + 2b58: 0c91 bf 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b5a: 6c93 mov r2, r4 + 2b5c: 9863 ld.w r3, (r14, 0xc) + 2b5e: 9806 ld.w r0, (r14, 0x18) + 2b60: 9827 ld.w r1, (r14, 0x1c) + 2b62: e3fff3ab bsr 0x12b8 // 12b8 <__divdf3> + 2b66: e3fff4e5 bsr 0x1530 // 1530 <__fixdfsi> + 2b6a: 3130 movi r1, 48 + 2b6c: 6040 addu r1, r0 + 2b6e: a720 st.b r1, (r7, 0x0) + 2b70: 6818 and r0, r6 + 2b72: e3fff4a7 bsr 0x14c0 // 14c0 <__floatsidf> + 2b76: 6c93 mov r2, r4 + 2b78: 9863 ld.w r3, (r14, 0xc) + 2b7a: e3fff285 bsr 0x1084 // 1084 <__muldf3> + 2b7e: 6c83 mov r2, r0 + 2b80: 6cc7 mov r3, r1 + 2b82: 9806 ld.w r0, (r14, 0x18) + 2b84: 9827 ld.w r1, (r14, 0x1c) + 2b86: e3fff263 bsr 0x104c // 104c <__subdf3> + 2b8a: b806 st.w r0, (r14, 0x18) + 2b8c: b827 st.w r1, (r14, 0x1c) + 2b8e: 6c13 mov r0, r4 + 2b90: 9823 ld.w r1, (r14, 0xc) + 2b92: 3200 movi r2, 0 + 2b94: 1278 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2b96: e3fff391 bsr 0x12b8 // 12b8 <__divdf3> + 2b9a: 2700 addi r7, 1 + 2b9c: 6d03 mov r4, r0 + 2b9e: b823 st.w r1, (r14, 0xc) + 2ba0: 07db br 0x2b56 // 2b56 <__GI___dtostr+0x184> + 2ba2: 98a2 ld.w r5, (r14, 0x8) + 2ba4: 9884 ld.w r4, (r14, 0x10) + 2ba6: 077a br 0x2a9a // 2a9a <__GI___dtostr+0xc8> + 2ba8: 1276 lrw r3, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2baa: 1257 lrw r2, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2bac: e3fff26c bsr 0x1084 // 1084 <__muldf3> + 2bb0: 9865 ld.w r3, (r14, 0x14) + 2bb2: 2300 addi r3, 1 + 2bb4: 0776 br 0x2aa0 // 2aa0 <__GI___dtostr+0xce> + 2bb6: 3080 movi r0, 128 + 2bb8: 4056 lsli r2, r0, 22 + 2bba: 9823 ld.w r1, (r14, 0xc) + 2bbc: 6c13 mov r0, r4 + 2bbe: 1273 lrw r3, 0x4202a05f // 2d08 <__GI___dtostr+0x336> + 2bc0: e3fff262 bsr 0x1084 // 1084 <__muldf3> + 2bc4: 6d03 mov r4, r0 + 2bc6: b823 st.w r1, (r14, 0xc) + 2bc8: 2f09 subi r7, 10 + 2bca: 0796 br 0x2af6 // 2af6 <__GI___dtostr+0x124> + 2bcc: 6c13 mov r0, r4 + 2bce: 9823 ld.w r1, (r14, 0xc) + 2bd0: 3200 movi r2, 0 + 2bd2: 1269 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2bd4: e3fff258 bsr 0x1084 // 1084 <__muldf3> + 2bd8: 6d03 mov r4, r0 + 2bda: b823 st.w r1, (r14, 0xc) + 2bdc: 2f00 subi r7, 1 + 2bde: 078e br 0x2afa // 2afa <__GI___dtostr+0x128> + 2be0: 9863 ld.w r3, (r14, 0xc) + 2be2: 6c93 mov r2, r4 + 2be4: 9806 ld.w r0, (r14, 0x18) + 2be6: 9827 ld.w r1, (r14, 0x1c) + 2be8: e3fff368 bsr 0x12b8 // 12b8 <__divdf3> + 2bec: e3fff4a2 bsr 0x1530 // 1530 <__fixdfsi> + 2bf0: 3f40 cmpnei r7, 0 + 2bf2: 74c0 zextb r3, r0 + 2bf4: 0c03 bf 0x2bfa // 2bfa <__GI___dtostr+0x228> + 2bf6: 3b40 cmpnei r3, 0 + 2bf8: 0c58 bf 0x2ca8 // 2ca8 <__GI___dtostr+0x2d6> + 2bfa: 232f addi r3, 48 + 2bfc: 3e40 cmpnei r6, 0 + 2bfe: a560 st.b r3, (r5, 0x0) + 2c00: 2500 addi r5, 1 + 2c02: 0842 bt 0x2c86 // 2c86 <__GI___dtostr+0x2b4> + 2c04: 6c93 mov r2, r4 + 2c06: 9863 ld.w r3, (r14, 0xc) + 2c08: 980a ld.w r0, (r14, 0x28) + 2c0a: 9824 ld.w r1, (r14, 0x10) + 2c0c: e3fff356 bsr 0x12b8 // 12b8 <__divdf3> + 2c10: 9845 ld.w r2, (r14, 0x14) + 2c12: 988b ld.w r4, (r14, 0x2c) + 2c14: b841 st.w r2, (r14, 0x4) + 2c16: b880 st.w r4, (r14, 0x0) + 2c18: 3300 movi r3, 0 + 2c1a: 9842 ld.w r2, (r14, 0x8) + 2c1c: e3fffedb bsr 0x29d2 // 29d2 <__GI___dtostr> + 2c20: 3840 cmpnei r0, 0 + 2c22: 0eeb bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c24: 5dc0 addu r6, r5, r0 + 2c26: 37fa movi r7, 250 + 2c28: 3565 movi r5, 101 + 2c2a: 6c02 nor r0, r0 + 2c2c: a6a0 st.b r5, (r6, 0x0) + 2c2e: 6d03 mov r4, r0 + 2c30: 5ea2 addi r5, r6, 1 + 2c32: 3101 movi r1, 1 + 2c34: 3604 movi r6, 4 + 2c36: 47e2 lsli r7, r7, 2 + 2c38: 9808 ld.w r0, (r14, 0x20) + 2c3a: 65c1 cmplt r0, r7 + 2c3c: 0c03 bf 0x2c42 // 2c42 <__GI___dtostr+0x270> + 2c3e: 3940 cmpnei r1, 0 + 2c40: 0811 bt 0x2c62 // 2c62 <__GI___dtostr+0x290> + 2c42: 3c40 cmpnei r4, 0 + 2c44: 0c08 bf 0x2c54 // 2c54 <__GI___dtostr+0x282> + 2c46: 6c5f mov r1, r7 + 2c48: 9808 ld.w r0, (r14, 0x20) + 2c4a: e0000bd1 bsr 0x43ec // 43ec <__divsi3> + 2c4e: 202f addi r0, 48 + 2c50: a500 st.b r0, (r5, 0x0) + 2c52: 2500 addi r5, 1 + 2c54: 6c5f mov r1, r7 + 2c56: 9808 ld.w r0, (r14, 0x20) + 2c58: e0000bee bsr 0x4434 // 4434 <__modsi3> + 2c5c: 2c00 subi r4, 1 + 2c5e: b808 st.w r0, (r14, 0x20) + 2c60: 3100 movi r1, 0 + 2c62: b823 st.w r1, (r14, 0xc) + 2c64: 6c1f mov r0, r7 + 2c66: 310a movi r1, 10 + 2c68: 2e00 subi r6, 1 + 2c6a: e0000bc1 bsr 0x43ec // 43ec <__divsi3> + 2c6e: 3e40 cmpnei r6, 0 + 2c70: 6dc3 mov r7, r0 + 2c72: 9823 ld.w r1, (r14, 0xc) + 2c74: 0be2 bt 0x2c38 // 2c38 <__GI___dtostr+0x266> + 2c76: 3c40 cmpnei r4, 0 + 2c78: 0ec0 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c7a: 9842 ld.w r2, (r14, 0x8) + 2c7c: 3300 movi r3, 0 + 2c7e: 5d89 subu r4, r5, r2 + 2c80: a560 st.b r3, (r5, 0x0) + 2c82: b889 st.w r4, (r14, 0x24) + 2c84: 06ba br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c86: 7400 zextb r0, r0 + 2c88: e3fff41c bsr 0x14c0 // 14c0 <__floatsidf> + 2c8c: 6c93 mov r2, r4 + 2c8e: 9863 ld.w r3, (r14, 0xc) + 2c90: e3fff1fa bsr 0x1084 // 1084 <__muldf3> + 2c94: 6c83 mov r2, r0 + 2c96: 6cc7 mov r3, r1 + 2c98: 9806 ld.w r0, (r14, 0x18) + 2c9a: 9827 ld.w r1, (r14, 0x1c) + 2c9c: e3fff1d8 bsr 0x104c // 104c <__subdf3> + 2ca0: b806 st.w r0, (r14, 0x18) + 2ca2: b827 st.w r1, (r14, 0x1c) + 2ca4: 2e00 subi r6, 1 + 2ca6: 3700 movi r7, 0 + 2ca8: 6c13 mov r0, r4 + 2caa: 9823 ld.w r1, (r14, 0xc) + 2cac: 3200 movi r2, 0 + 2cae: 1072 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2cb0: e3fff304 bsr 0x12b8 // 12b8 <__divdf3> + 2cb4: 6d03 mov r4, r0 + 2cb6: b823 st.w r1, (r14, 0xc) + 2cb8: 0723 br 0x2afe // 2afe <__GI___dtostr+0x12c> + 2cba: 1012 lrw r0, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2cbc: 1092 lrw r4, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2cbe: b803 st.w r0, (r14, 0xc) + 2cc0: 0727 br 0x2b0e // 2b0e <__GI___dtostr+0x13c> + 2cc2: 3e40 cmpnei r6, 0 + 2cc4: 0e9a bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2cc6: 372e movi r7, 46 + 2cc8: a5e0 st.b r7, (r5, 0x0) + 2cca: 2e00 subi r6, 1 + 2ccc: 5de2 addi r7, r5, 1 + 2cce: 073e br 0x2b4a // 2b4a <__GI___dtostr+0x178> + 2cd0: 3e40 cmpnei r6, 0 + 2cd2: 0ac8 bt 0x2a62 // 2a62 <__GI___dtostr+0x90> + 2cd4: 3508 movi r5, 8 + 2cd6: 06ac br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2cd8: 00005f82 .long 0x00005f82 + 2cdc: 00005f86 .long 0x00005f86 + 2ce0: 3fe00000 .long 0x3fe00000 + 2ce4: 3ff00000 .long 0x3ff00000 + 2ce8: fffffc01 .long 0xfffffc01 + 2cec: 509f79ff .long 0x509f79ff + 2cf0: 3fd34413 .long 0x3fd34413 + 2cf4: 40240000 .long 0x40240000 + 2cf8: cccccccd .long 0xcccccccd + 2cfc: 3feccccc .long 0x3feccccc + 2d00: 3fb99999 .long 0x3fb99999 + 2d04: 9999999a .long 0x9999999a + 2d08: 4202a05f .long 0x4202a05f + +00002d0c <__isnan>: + 2d0c: 416c lsli r3, r1, 12 + 2d0e: 4b4c lsri r2, r3, 12 + 2d10: 6c08 or r0, r2 + 2d12: 3840 cmpnei r0, 0 + 2d14: 0c0e bf 0x2d30 // 2d30 <__isnan+0x24> + 2d16: 1008 lrw r0, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d18: 6840 and r1, r0 + 2d1a: 6cc7 mov r3, r1 + 2d1c: 3000 movi r0, 0 + 2d1e: 1026 lrw r1, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d20: 3200 movi r2, 0 + 2d22: 6c81 xor r2, r0 + 2d24: 6cc5 xor r3, r1 + 2d26: 6c8c or r2, r3 + 2d28: 3a40 cmpnei r2, 0 + 2d2a: 6443 mvcv r1 + 2d2c: 7404 zextb r0, r1 + 2d2e: 783c jmp r15 + 2d30: 3000 movi r0, 0 + 2d32: 07fe br 0x2d2e // 2d2e <__isnan+0x22> + 2d34: 7ff00000 .long 0x7ff00000 + +00002d38 <__strlen_fast>: + 2d38: 6c43 mov r1, r0 + 2d3a: 3203 movi r2, 3 + 2d3c: 6808 and r0, r2 + 2d3e: 3840 cmpnei r0, 0 + 2d40: 0c08 bf 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d42: 3000 movi r0, 0 + 2d44: 8140 ld.b r2, (r1, 0x0) + 2d46: 3a40 cmpnei r2, 0 + 2d48: 0c20 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d4a: 2100 addi r1, 1 + 2d4c: 2000 addi r0, 1 + 2d4e: 07fb br 0x2d44 // 2d44 <__strlen_fast+0xc> + 2d50: 9140 ld.w r2, (r1, 0x0) + 2d52: 680b tstnbz r2 + 2d54: 0c04 bf 0x2d5c // 2d5c <__strlen_fast+0x24> + 2d56: 2103 addi r1, 4 + 2d58: 2003 addi r0, 4 + 2d5a: 07fb br 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d5c: 31ff movi r1, 255 + 2d5e: 6ccb mov r3, r2 + 2d60: 68c4 and r3, r1 + 2d62: 3b40 cmpnei r3, 0 + 2d64: 0c12 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d66: 2000 addi r0, 1 + 2d68: 3110 movi r1, 16 + 2d6a: 6ccb mov r3, r2 + 2d6c: 70c4 lsl r3, r1 + 2d6e: 3118 movi r1, 24 + 2d70: 70c5 lsr r3, r1 + 2d72: 3b40 cmpnei r3, 0 + 2d74: 0c0a bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d76: 2000 addi r0, 1 + 2d78: 3108 movi r1, 8 + 2d7a: 6ccb mov r3, r2 + 2d7c: 70c4 lsl r3, r1 + 2d7e: 3118 movi r1, 24 + 2d80: 70c5 lsr r3, r1 + 2d82: 3b40 cmpnei r3, 0 + 2d84: 0c02 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d86: 2000 addi r0, 1 + 2d88: 783c jmp r15 + ... + +00002d8c <__strcpy_fast>: + 2d8c: 14c1 push r4 + 2d8e: 6d03 mov r4, r0 + 2d90: 6c87 mov r2, r1 + 2d92: 6c90 or r2, r4 + 2d94: 3303 movi r3, 3 + 2d96: 688c and r2, r3 + 2d98: 3a40 cmpnei r2, 0 + 2d9a: 0c08 bf 0x2daa // 2daa <__strcpy_fast+0x1e> + 2d9c: 8160 ld.b r3, (r1, 0x0) + 2d9e: a460 st.b r3, (r4, 0x0) + 2da0: 2100 addi r1, 1 + 2da2: 2400 addi r4, 1 + 2da4: 3b40 cmpnei r3, 0 + 2da6: 0bfb bt 0x2d9c // 2d9c <__strcpy_fast+0x10> + 2da8: 1481 pop r4 + 2daa: 9160 ld.w r3, (r1, 0x0) + 2dac: 680f tstnbz r3 + 2dae: 0c2e bf 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2db0: b460 st.w r3, (r4, 0x0) + 2db2: 9161 ld.w r3, (r1, 0x4) + 2db4: 680f tstnbz r3 + 2db6: 0c1d bf 0x2df0 // 2df0 <__strcpy_fast+0x64> + 2db8: b461 st.w r3, (r4, 0x4) + 2dba: 9162 ld.w r3, (r1, 0x8) + 2dbc: 680f tstnbz r3 + 2dbe: 0c1b bf 0x2df4 // 2df4 <__strcpy_fast+0x68> + 2dc0: b462 st.w r3, (r4, 0x8) + 2dc2: 9163 ld.w r3, (r1, 0xc) + 2dc4: 680f tstnbz r3 + 2dc6: 0c19 bf 0x2df8 // 2df8 <__strcpy_fast+0x6c> + 2dc8: b463 st.w r3, (r4, 0xc) + 2dca: 9164 ld.w r3, (r1, 0x10) + 2dcc: 680f tstnbz r3 + 2dce: 0c17 bf 0x2dfc // 2dfc <__strcpy_fast+0x70> + 2dd0: b464 st.w r3, (r4, 0x10) + 2dd2: 9165 ld.w r3, (r1, 0x14) + 2dd4: 680f tstnbz r3 + 2dd6: 0c15 bf 0x2e00 // 2e00 <__strcpy_fast+0x74> + 2dd8: b465 st.w r3, (r4, 0x14) + 2dda: 9166 ld.w r3, (r1, 0x18) + 2ddc: 680f tstnbz r3 + 2dde: 0c13 bf 0x2e04 // 2e04 <__strcpy_fast+0x78> + 2de0: b466 st.w r3, (r4, 0x18) + 2de2: 9167 ld.w r3, (r1, 0x1c) + 2de4: 680f tstnbz r3 + 2de6: 0c11 bf 0x2e08 // 2e08 <__strcpy_fast+0x7c> + 2de8: b467 st.w r3, (r4, 0x1c) + 2dea: 241f addi r4, 32 + 2dec: 211f addi r1, 32 + 2dee: 07de br 0x2daa // 2daa <__strcpy_fast+0x1e> + 2df0: 2403 addi r4, 4 + 2df2: 040c br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df4: 2407 addi r4, 8 + 2df6: 040a br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df8: 240b addi r4, 12 + 2dfa: 0408 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2dfc: 240f addi r4, 16 + 2dfe: 0406 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e00: 2413 addi r4, 20 + 2e02: 0404 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e04: 2417 addi r4, 24 + 2e06: 0402 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e08: 241b addi r4, 28 + 2e0a: 3118 movi r1, 24 + 2e0c: 6c8f mov r2, r3 + 2e0e: 7084 lsl r2, r1 + 2e10: 7085 lsr r2, r1 + 2e12: a440 st.b r2, (r4, 0x0) + 2e14: 3a40 cmpnei r2, 0 + 2e16: 0c12 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e18: 3110 movi r1, 16 + 2e1a: 6c8f mov r2, r3 + 2e1c: 7084 lsl r2, r1 + 2e1e: 3118 movi r1, 24 + 2e20: 7085 lsr r2, r1 + 2e22: a441 st.b r2, (r4, 0x1) + 2e24: 3a40 cmpnei r2, 0 + 2e26: 0c0a bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e28: 3108 movi r1, 8 + 2e2a: 6c8f mov r2, r3 + 2e2c: 7084 lsl r2, r1 + 2e2e: 3118 movi r1, 24 + 2e30: 7085 lsr r2, r1 + 2e32: a442 st.b r2, (r4, 0x2) + 2e34: 3a40 cmpnei r2, 0 + 2e36: 0c02 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e38: b460 st.w r3, (r4, 0x0) + 2e3a: 1481 pop r4 + +00002e3c <__GI_strchr>: + 2e3c: 8040 ld.b r2, (r0, 0x0) + 2e3e: 644a cmpne r2, r1 + 2e40: 0c06 bf 0x2e4c // 2e4c <__GI_strchr+0x10> + 2e42: 3a40 cmpnei r2, 0 + 2e44: 0c03 bf 0x2e4a // 2e4a <__GI_strchr+0xe> + 2e46: 2000 addi r0, 1 + 2e48: 07fa br 0x2e3c // 2e3c <__GI_strchr> + 2e4a: 6c0b mov r0, r2 + 2e4c: 783c jmp r15 + ... + +00002e50 <__GI_strerror>: + 2e50: 338f movi r3, 143 + 2e52: 640c cmphs r3, r0 + 2e54: 0c06 bf 0x2e60 // 2e60 <__GI_strerror+0x10> + 2e56: 4002 lsli r0, r0, 2 + 2e58: 1023 lrw r1, 0x5c0c // 2e64 <__GI_strerror+0x14> + 2e5a: 6004 addu r0, r1 + 2e5c: 9000 ld.w r0, (r0, 0x0) + 2e5e: 783c jmp r15 + 2e60: 1002 lrw r0, 0x5e73 // 2e68 <__GI_strerror+0x18> + 2e62: 07fe br 0x2e5e // 2e5e <__GI_strerror+0xe> + 2e64: 00005c0c .long 0x00005c0c + 2e68: 00005e73 .long 0x00005e73 + +00002e6c <__isinf>: + 2e6c: 3840 cmpnei r0, 0 + 2e6e: 6c83 mov r2, r0 + 2e70: 6cc7 mov r3, r1 + 2e72: 0804 bt 0x2e7a // 2e7a <__isinf+0xe> + 2e74: 1028 lrw r1, 0x7ff00000 // 2e94 <__isinf+0x28> + 2e76: 644e cmpne r3, r1 + 2e78: 0c0b bf 0x2e8e // 2e8e <__isinf+0x22> + 2e7a: 3000 movi r0, 0 + 2e7c: 1027 lrw r1, 0xfff00000 // 2e98 <__isinf+0x2c> + 2e7e: 6c81 xor r2, r0 + 2e80: 6cc5 xor r3, r1 + 2e82: 6c8c or r2, r3 + 2e84: 3a40 cmpnei r2, 0 + 2e86: 64c3 mvcv r3 + 2e88: 3000 movi r0, 0 + 2e8a: 600e subu r0, r3 + 2e8c: 783c jmp r15 + 2e8e: 3001 movi r0, 1 + 2e90: 07fe br 0x2e8c // 2e8c <__isinf+0x20> + 2e92: 0000 bkpt + 2e94: 7ff00000 .long 0x7ff00000 + 2e98: fff00000 .long 0xfff00000 + +00002e9c <__eqdf2>: + 2e9c: 14d0 push r15 + 2e9e: 142e subi r14, r14, 56 + 2ea0: b800 st.w r0, (r14, 0x0) + 2ea2: b821 st.w r1, (r14, 0x4) + 2ea4: 6c3b mov r0, r14 + 2ea6: 1904 addi r1, r14, 16 + 2ea8: b863 st.w r3, (r14, 0xc) + 2eaa: b842 st.w r2, (r14, 0x8) + 2eac: e3fff4b4 bsr 0x1814 // 1814 <__unpack_d> + 2eb0: 1909 addi r1, r14, 36 + 2eb2: 1802 addi r0, r14, 8 + 2eb4: e3fff4b0 bsr 0x1814 // 1814 <__unpack_d> + 2eb8: 9864 ld.w r3, (r14, 0x10) + 2eba: 3b01 cmphsi r3, 2 + 2ebc: 0c0a bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ebe: 9869 ld.w r3, (r14, 0x24) + 2ec0: 3b01 cmphsi r3, 2 + 2ec2: 0c07 bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ec4: 1909 addi r1, r14, 36 + 2ec6: 1804 addi r0, r14, 16 + 2ec8: e3fff508 bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2ecc: 140e addi r14, r14, 56 + 2ece: 1490 pop r15 + 2ed0: 3001 movi r0, 1 + 2ed2: 140e addi r14, r14, 56 + 2ed4: 1490 pop r15 + ... + +00002ed8 <__ltdf2>: + 2ed8: 14d0 push r15 + 2eda: 142e subi r14, r14, 56 + 2edc: b800 st.w r0, (r14, 0x0) + 2ede: b821 st.w r1, (r14, 0x4) + 2ee0: 6c3b mov r0, r14 + 2ee2: 1904 addi r1, r14, 16 + 2ee4: b863 st.w r3, (r14, 0xc) + 2ee6: b842 st.w r2, (r14, 0x8) + 2ee8: e3fff496 bsr 0x1814 // 1814 <__unpack_d> + 2eec: 1909 addi r1, r14, 36 + 2eee: 1802 addi r0, r14, 8 + 2ef0: e3fff492 bsr 0x1814 // 1814 <__unpack_d> + 2ef4: 9864 ld.w r3, (r14, 0x10) + 2ef6: 3b01 cmphsi r3, 2 + 2ef8: 0c0a bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2efa: 9869 ld.w r3, (r14, 0x24) + 2efc: 3b01 cmphsi r3, 2 + 2efe: 0c07 bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2f00: 1909 addi r1, r14, 36 + 2f02: 1804 addi r0, r14, 16 + 2f04: e3fff4ea bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2f08: 140e addi r14, r14, 56 + 2f0a: 1490 pop r15 + 2f0c: 3001 movi r0, 1 + 2f0e: 140e addi r14, r14, 56 + 2f10: 1490 pop r15 + +Disassembly of section .text.__main: + +00002f14 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 2f14: 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 ) { + 2f16: 1009 lrw r0, 0x20000000 // 2f38 <__main+0x24> + 2f18: 1029 lrw r1, 0x6714 // 2f3c <__main+0x28> + 2f1a: 6442 cmpne r0, r1 + 2f1c: 0c05 bf 0x2f26 // 2f26 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 2f1e: 1049 lrw r2, 0x200000a0 // 2f40 <__main+0x2c> + 2f20: 6082 subu r2, r0 + 2f22: e3fff5c1 bsr 0x1aa4 // 1aa4 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 2f26: 1048 lrw r2, 0x20000760 // 2f44 <__main+0x30> + 2f28: 1008 lrw r0, 0x200000a0 // 2f48 <__main+0x34> + 2f2a: 640a cmpne r2, r0 + 2f2c: 0c05 bf 0x2f36 // 2f36 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 2f2e: 6082 subu r2, r0 + 2f30: 3100 movi r1, 0 + 2f32: e3fff575 bsr 0x1a1c // 1a1c <__memset_fast> + } + + +} + 2f36: 1490 pop r15 + 2f38: 20000000 .long 0x20000000 + 2f3c: 00006714 .long 0x00006714 + 2f40: 200000a0 .long 0x200000a0 + 2f44: 20000760 .long 0x20000760 + 2f48: 200000a0 .long 0x200000a0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00002f4c : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 2f4c: 3848 cmpnei r0, 8 + 2f4e: 080a bt 0x2f62 // 2f62 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 2f50: 107a lrw r3, 0x2000004c // 2fb8 + 2f52: 32ff movi r2, 255 + 2f54: 9320 ld.w r1, (r3, 0x0) + 2f56: 9160 ld.w r3, (r1, 0x0) + 2f58: 424c lsli r2, r2, 12 + 2f5a: 68c9 andn r3, r2 + 2f5c: 3bae bseti r3, 14 + 2f5e: 3bb2 bseti r3, 18 + 2f60: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 2f62: 1077 lrw r3, 0x2000005c // 2fbc + 2f64: 9360 ld.w r3, (r3, 0x0) + 2f66: 9341 ld.w r2, (r3, 0x4) + 2f68: 6c80 or r2, r0 + 2f6a: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 2f6c: 9343 ld.w r2, (r3, 0xc) + 2f6e: 6880 and r2, r0 + 2f70: 3a40 cmpnei r2, 0 + 2f72: 0ffd bf 0x2f6c // 2f6c + switch(ENDIS_X) + 2f74: 3842 cmpnei r0, 2 + 2f76: 0807 bt 0x2f84 // 2f84 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 2f78: 3102 movi r1, 2 + 2f7a: 9344 ld.w r2, (r3, 0x10) + 2f7c: 6884 and r2, r1 + 2f7e: 3a40 cmpnei r2, 0 + 2f80: 0ffd bf 0x2f7a // 2f7a + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 2f82: 783c jmp r15 + switch(ENDIS_X) + 2f84: 3802 cmphsi r0, 3 + 2f86: 0809 bt 0x2f98 // 2f98 + 2f88: 3841 cmpnei r0, 1 + 2f8a: 0bfc bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 2f8c: 3101 movi r1, 1 + 2f8e: 9344 ld.w r2, (r3, 0x10) + 2f90: 6884 and r2, r1 + 2f92: 3a40 cmpnei r2, 0 + 2f94: 0ffd bf 0x2f8e // 2f8e + 2f96: 07f6 br 0x2f82 // 2f82 + switch(ENDIS_X) + 2f98: 3848 cmpnei r0, 8 + 2f9a: 0807 bt 0x2fa8 // 2fa8 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 2f9c: 3108 movi r1, 8 + 2f9e: 9344 ld.w r2, (r3, 0x10) + 2fa0: 6884 and r2, r1 + 2fa2: 3a40 cmpnei r2, 0 + 2fa4: 0ffd bf 0x2f9e // 2f9e + 2fa6: 07ee br 0x2f82 // 2f82 + switch(ENDIS_X) + 2fa8: 3850 cmpnei r0, 16 + 2faa: 0bec bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 2fac: 3110 movi r1, 16 + 2fae: 9344 ld.w r2, (r3, 0x10) + 2fb0: 6884 and r2, r1 + 2fb2: 3a40 cmpnei r2, 0 + 2fb4: 0ffd bf 0x2fae // 2fae + 2fb6: 07e6 br 0x2f82 // 2f82 + 2fb8: 2000004c .long 0x2000004c + 2fbc: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00002fc0 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 2fc0: 106c lrw r3, 0x2000005c // 2ff0 + 2fc2: 104d lrw r2, 0xffff // 2ff4 + 2fc4: 9360 ld.w r3, (r3, 0x0) + 2fc6: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 2fc8: 104c lrw r2, 0xffffff // 2ff8 + 2fca: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 2fcc: 104c lrw r2, 0xd22d0000 // 2ffc + 2fce: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 2fd0: 104c lrw r2, 0x70ff3bff // 3000 + 2fd2: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 2fd4: 320a movi r2, 10 + 2fd6: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fd8: 102b lrw r1, 0x70c // 3004 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 2fda: 237f addi r3, 128 + 2fdc: 3200 movi r2, 0 + 2fde: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 2fe0: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fe2: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 2fe4: 1029 lrw r1, 0x3fe // 3008 + 2fe6: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 2fe8: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 2fea: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 2fec: b35f st.w r2, (r3, 0x7c) +} + 2fee: 783c jmp r15 + 2ff0: 2000005c .long 0x2000005c + 2ff4: 0000ffff .long 0x0000ffff + 2ff8: 00ffffff .long 0x00ffffff + 2ffc: d22d0000 .long 0xd22d0000 + 3000: 70ff3bff .long 0x70ff3bff + 3004: 0000070c .long 0x0000070c + 3008: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +0000300c : +{ + 300c: 14d0 push r15 + if (NewState != DISABLE) + 300e: 3840 cmpnei r0, 0 + 3010: 0c05 bf 0x301a // 301a + 3012: 6c07 mov r0, r1 + 3014: e3ffff9c bsr 0x2f4c // 2f4c +} + 3018: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 301a: 1068 lrw r3, 0x2000005c // 3038 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9342 ld.w r2, (r3, 0x8) + 3020: 6c84 or r2, r1 + 3022: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 3024: 9343 ld.w r2, (r3, 0xc) + 3026: 6884 and r2, r1 + 3028: 3a40 cmpnei r2, 0 + 302a: 0bfd bt 0x3024 // 3024 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 302c: 237f addi r3, 128 + 302e: 9301 ld.w r0, (r3, 0x4) + 3030: 6c40 or r1, r0 + 3032: b321 st.w r1, (r3, 0x4) +} + 3034: 07f2 br 0x3018 // 3018 + 3036: 0000 bkpt + 3038: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +0000303c : +//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 ) +{ + 303c: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 303e: 3b48 cmpnei r3, 8 + 3040: 0828 bt 0x3090 // 3090 + { + IFC->CEDR=0X01; //CLKEN + 3042: 109d lrw r4, 0x20000060 // 30b4 + 3044: 3501 movi r5, 1 + 3046: 9480 ld.w r4, (r4, 0x0) + 3048: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 304a: 3504 movi r5, 4 + 304c: 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)) + 304e: 5b83 subi r4, r3, 1 + 3050: 3c01 cmphsi r4, 2 + 3052: 0c2b bf 0x30a8 // 30a8 + { + 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)) + 3054: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 3056: 3c04 cmphsi r4, 5 + 3058: 0c03 bf 0x305e // 305e + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 305a: 3b4b cmpnei r3, 11 + 305c: 0807 bt 0x306a // 306a + { + IFC->CEDR=0X01; //CLKEN + 305e: 1076 lrw r3, 0x20000060 // 30b4 + 3060: 3401 movi r4, 1 + 3062: 9360 ld.w r3, (r3, 0x0) + 3064: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 3066: 3400 movi r4, 0 + 3068: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 306a: 1094 lrw r4, 0xd22d0000 // 30b8 + 306c: 6c10 or r0, r4 + 306e: 1074 lrw r3, 0x2000005c // 30bc + 3070: 6c40 or r1, r0 + 3072: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3074: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 3076: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3078: 4001 lsli r0, r0, 1 + 307a: 9324 ld.w r1, (r3, 0x10) + 307c: 6840 and r1, r0 + 307e: 3940 cmpnei r1, 0 + 3080: 0ffd bf 0x307a // 307a + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 3082: 1030 lrw r1, 0xc33c0000 // 30c0 + 3084: 6c48 or r1, r2 + 3086: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 3088: 9328 ld.w r1, (r3, 0x20) + 308a: 644a cmpne r2, r1 + 308c: 0bfe bt 0x3088 // 3088 +} + 308e: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 3090: 3b40 cmpnei r3, 0 + 3092: 0c03 bf 0x3098 // 3098 + 3094: 3b49 cmpnei r3, 9 + 3096: 0807 bt 0x30a4 // 30a4 + IFC->CEDR=0X01; //CLKEN + 3098: 1087 lrw r4, 0x20000060 // 30b4 + 309a: 3501 movi r5, 1 + 309c: 9480 ld.w r4, (r4, 0x0) + 309e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 30a0: 3502 movi r5, 2 + 30a2: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 30a4: 3b4a cmpnei r3, 10 + 30a6: 0bd4 bt 0x304e // 304e + IFC->CEDR=0X01; //CLKEN + 30a8: 1083 lrw r4, 0x20000060 // 30b4 + 30aa: 3501 movi r5, 1 + 30ac: 9480 ld.w r4, (r4, 0x0) + 30ae: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 30b0: b4a5 st.w r5, (r4, 0x14) + 30b2: 07d1 br 0x3054 // 3054 + 30b4: 20000060 .long 0x20000060 + 30b8: d22d0000 .long 0xd22d0000 + 30bc: 2000005c .long 0x2000005c + 30c0: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +000030c4 : +//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) +{ + 30c4: 14d1 push r4, r15 + 30c6: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 30c8: 3110 movi r1, 16 + 30ca: 3000 movi r0, 0 + 30cc: e3ffffa0 bsr 0x300c // 300c + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 30d0: 1066 lrw r3, 0x2000005c // 30e8 + 30d2: 9360 ld.w r3, (r3, 0x0) + 30d4: 9319 ld.w r0, (r3, 0x64) + 30d6: 3884 bclri r0, 4 + 30d8: 3885 bclri r0, 5 + 30da: 6c10 or r0, r4 + 30dc: b319 st.w r0, (r3, 0x64) + 30de: 3010 movi r0, 16 + 30e0: e3ffff36 bsr 0x2f4c // 2f4c + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 30e4: 1491 pop r4, r15 + 30e6: 0000 bkpt + 30e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +000030ec : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 30ec: 106c lrw r3, 0x2000005c // 311c + if(NewState != DISABLE) + 30ee: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f0: 9360 ld.w r3, (r3, 0x0) + 30f2: 237f addi r3, 128 + if(NewState != DISABLE) + 30f4: 0c0a bf 0x3108 // 3108 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f6: 104b lrw r2, 0x78870000 // 3120 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30f8: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30fa: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30fc: 4125 lsli r1, r1, 5 + 30fe: 934d ld.w r2, (r3, 0x34) + 3100: 6884 and r2, r1 + 3102: 3a40 cmpnei r2, 0 + 3104: 0ffd bf 0x30fe // 30fe + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 3106: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 3108: 1047 lrw r2, 0x788755aa // 3124 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310a: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 310c: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310e: 4125 lsli r1, r1, 5 + 3110: 934d ld.w r2, (r3, 0x34) + 3112: 6884 and r2, r1 + 3114: 3a40 cmpnei r2, 0 + 3116: 0bfd bt 0x3110 // 3110 + 3118: 07f7 br 0x3106 // 3106 + 311a: 0000 bkpt + 311c: 2000005c .long 0x2000005c + 3120: 78870000 .long 0x78870000 + 3124: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00003128 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 3128: 1064 lrw r3, 0x2000005c // 3138 + 312a: 32b4 movi r2, 180 + 312c: 9360 ld.w r3, (r3, 0x0) + 312e: 237f addi r3, 128 + 3130: 4257 lsli r2, r2, 23 + 3132: b34e st.w r2, (r3, 0x38) +} + 3134: 783c jmp r15 + 3136: 0000 bkpt + 3138: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +0000313c : +//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; + 313c: 1044 lrw r2, 0x87780000 // 314c + 313e: 1065 lrw r3, 0x2000005c // 3150 + 3140: 6c48 or r1, r2 + 3142: 9360 ld.w r3, (r3, 0x0) + 3144: 6c04 or r0, r1 + 3146: 237f addi r3, 128 + 3148: b30d st.w r0, (r3, 0x34) +} + 314a: 783c jmp r15 + 314c: 87780000 .long 0x87780000 + 3150: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00003154 : +//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) +{ + 3154: 14c3 push r4-r6 + 3156: 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; + 3158: 10c5 lrw r6, 0xb44b0000 // 316c + 315a: 6d18 or r4, r6 + 315c: 6cd0 or r3, r4 + 315e: 6c8c or r2, r3 + 3160: 6c48 or r1, r2 + 3162: 10a4 lrw r5, 0x2000005c // 3170 + 3164: 6c04 or r0, r1 + 3166: 95a0 ld.w r5, (r5, 0x0) + 3168: b513 st.w r0, (r5, 0x4c) +} + 316a: 1483 pop r4-r6 + 316c: b44b0000 .long 0xb44b0000 + 3170: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00003174 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 3174: 1066 lrw r3, 0x2000005c // 318c + 3176: 3180 movi r1, 128 + 3178: 9360 ld.w r3, (r3, 0x0) + 317a: 3280 movi r2, 128 + 317c: 604c addu r1, r3 + 317e: 4244 lsli r2, r2, 4 + 3180: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 3182: 935d ld.w r2, (r3, 0x74) + 3184: 3aab bseti r2, 11 + 3186: b35d st.w r2, (r3, 0x74) +} + 3188: 783c jmp r15 + 318a: 0000 bkpt + 318c: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00003190 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 3190: 1066 lrw r3, 0x2000005c // 31a8 + 3192: 3180 movi r1, 128 + 3194: 9360 ld.w r3, (r3, 0x0) + 3196: 3280 movi r2, 128 + 3198: 604c addu r1, r3 + 319a: 4241 lsli r2, r2, 1 + 319c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 319e: 935d ld.w r2, (r3, 0x74) + 31a0: 3aa8 bseti r2, 8 + 31a2: b35d st.w r2, (r3, 0x74) +} + 31a4: 783c jmp r15 + 31a6: 0000 bkpt + 31a8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +000031ac : +//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) + 31ac: 3a40 cmpnei r2, 0 + 31ae: 0c04 bf 0x31b6 // 31b6 + 31b0: 3a41 cmpnei r2, 1 + 31b2: 0c0e bf 0x31ce // 31ce + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 31b4: 783c jmp r15 + 31b6: 106d lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31b8: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 31ba: 9360 ld.w r3, (r3, 0x0) + 31bc: 237f addi r3, 128 + 31be: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 31c0: 0c04 bf 0x31c8 // 31c8 + SYSCON->EXIRT |=EXIPIN; + 31c2: 6c48 or r1, r2 + 31c4: b325 st.w r1, (r3, 0x14) + 31c6: 07f7 br 0x31b4 // 31b4 + SYSCON->EXIRT &=~EXIPIN; + 31c8: 6885 andn r2, r1 + 31ca: b345 st.w r2, (r3, 0x14) + 31cc: 07f4 br 0x31b4 // 31b4 + 31ce: 1067 lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31d0: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 31d2: 9360 ld.w r3, (r3, 0x0) + 31d4: 237f addi r3, 128 + 31d6: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 31d8: 0c04 bf 0x31e0 // 31e0 + SYSCON->EXIFT |=EXIPIN; + 31da: 6c48 or r1, r2 + 31dc: b326 st.w r1, (r3, 0x18) + 31de: 07eb br 0x31b4 // 31b4 + SYSCON->EXIFT &=~EXIPIN; + 31e0: 6885 andn r2, r1 + 31e2: b346 st.w r2, (r3, 0x18) +} + 31e4: 07e8 br 0x31b4 // 31b4 + 31e6: 0000 bkpt + 31e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_Int_Enable: + +000031ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 31ec: 3202 movi r2, 2 + 31ee: 1062 lrw r3, 0xe000e100 // 31f4 + 31f0: b340 st.w r2, (r3, 0x0) +} + 31f2: 783c jmp r15 + 31f4: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_INT_Priority: + +000031f8 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31f8: 1066 lrw r3, 0xe000e400 // 3210 + 31fa: 1047 lrw r2, 0xc0c0c0c0 // 3214 + 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 + 31fc: 1027 lrw r1, 0xc0c000c0 // 3218 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31fe: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 3200: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 3202: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 3204: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 3206: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 3208: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 320a: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 320c: b347 st.w r2, (r3, 0x1c) +} + 320e: 783c jmp r15 + 3210: e000e400 .long 0xe000e400 + 3214: c0c0c0c0 .long 0xc0c0c0c0 + 3218: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +0000321c : +//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) +{ + 321c: 14c1 push r4 + 321e: 4862 lsri r3, r0, 2 + 3220: 4342 lsli r2, r3, 2 + 3222: 106a lrw r3, 0x20000064 // 3248 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 3224: 3403 movi r4, 3 + 3226: 9360 ld.w r3, (r3, 0x0) + 3228: 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)); + 323a: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 323e: 7040 lsl r1, r0 + 3240: 6c48 or r1, r2 + 3242: b320 st.w r1, (r3, 0x0) +} + 3244: 1481 pop r4 + 3246: 0000 bkpt + 3248: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +0000324c : +//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) +{ + 324c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 324e: 3907 cmphsi r1, 8 +{ + 3250: 6d03 mov r4, r0 + if(PinNum<8) + 3252: 0830 bt 0x32b2 // 32b2 + { + switch (PinNum) + 3254: 5903 subi r0, r1, 1 + 3256: 3806 cmphsi r0, 7 + 3258: 0827 bt 0x32a6 // 32a6 + 325a: e3ffed51 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 325e: 1004 .short 0x1004 + 3260: 1d1a1613 .long 0x1d1a1613 + 3264: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 3266: 3300 movi r3, 0 + 3268: 3104 movi r1, 4 + 326a: 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) + 326c: 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< + 3282: 07f5 br 0x326c // 326c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 3284: 310c movi r1, 12 + 3286: 1166 lrw r3, 0xffff0fff // 331c + 3288: 07f2 br 0x326c // 326c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 328a: 3110 movi r1, 16 + 328c: 1165 lrw r3, 0xfff10000 // 3320 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 328e: 2b00 subi r3, 1 + 3290: 07ee br 0x326c // 326c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 3292: 3114 movi r1, 20 + 3294: 1164 lrw r3, 0xff100000 // 3324 + 3296: 07fc br 0x328e // 328e + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3298: 33f1 movi r3, 241 + 329a: 3118 movi r1, 24 + 329c: 4378 lsli r3, r3, 24 + 329e: 07f8 br 0x328e // 328e + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 32a0: 311c movi r1, 28 + 32a2: 1162 lrw r3, 0xfffffff // 3328 + 32a4: 07e4 br 0x326c // 326c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 32a6: 3300 movi r3, 0 + 32a8: 3100 movi r1, 0 + 32aa: 2b0f subi r3, 16 + 32ac: 07e0 br 0x326c // 326c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 32b2: 390f cmphsi r1, 16 + 32b4: 0be4 bt 0x327c // 327c + switch (PinNum) + 32b6: 2908 subi r1, 9 + 32b8: 3906 cmphsi r1, 7 + 32ba: 6c07 mov r0, r1 + 32bc: 0827 bt 0x330a // 330a + 32be: e3ffed1f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 32c2: 1004 .short 0x1004 + 32c4: 1d1a1613 .long 0x1d1a1613 + 32c8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 32ca: 3300 movi r3, 0 + 32cc: 3104 movi r1, 4 + 32ce: 2bf0 subi r3, 241 + if (Dir) + 32d0: 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; + 32e2: 3108 movi r1, 8 + 32e4: 106d lrw r3, 0xfffff0ff // 3318 + 32e6: 07f5 br 0x32d0 // 32d0 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 32e8: 310c movi r1, 12 + 32ea: 106d lrw r3, 0xffff0fff // 331c + 32ec: 07f2 br 0x32d0 // 32d0 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 32ee: 3110 movi r1, 16 + 32f0: 106c lrw r3, 0xfff10000 // 3320 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32f2: 2b00 subi r3, 1 + 32f4: 07ee br 0x32d0 // 32d0 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 32f6: 3114 movi r1, 20 + 32f8: 106b lrw r3, 0xff100000 // 3324 + 32fa: 07fc br 0x32f2 // 32f2 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32fc: 33f1 movi r3, 241 + 32fe: 3118 movi r1, 24 + 3300: 4378 lsli r3, r3, 24 + 3302: 07f8 br 0x32f2 // 32f2 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 3304: 311c movi r1, 28 + 3306: 1069 lrw r3, 0xfffffff // 3328 + 3308: 07e4 br 0x32d0 // 32d0 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 330a: 3300 movi r3, 0 + 330c: 3100 movi r1, 0 + 330e: 2b0f subi r3, 16 + 3310: 07e0 br 0x32d0 // 32d0 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 3316: 0000 bkpt + 3318: fffff0ff .long 0xfffff0ff + 331c: ffff0fff .long 0xffff0fff + 3320: fff10000 .long 0xfff10000 + 3324: ff100000 .long 0xff100000 + 3328: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000332c : +//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)); + 332c: 4121 lsli r1, r1, 1 + 332e: 3203 movi r2, 3 + 3330: 9068 ld.w r3, (r0, 0x20) + 3332: 7084 lsl r2, r1 + 3334: 68c9 andn r3, r2 + 3336: 3201 movi r2, 1 + 3338: 7084 lsl r2, r1 + 333a: 6cc8 or r3, r2 + 333c: b068 st.w r3, (r0, 0x20) +} + 333e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00003340 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 3340: 4121 lsli r1, r1, 1 + 3342: 3301 movi r3, 1 + 3344: 9049 ld.w r2, (r0, 0x24) + 3346: 70c4 lsl r3, r1 + 3348: 6cc8 or r3, r2 + 334a: b069 st.w r3, (r0, 0x24) +} + 334c: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +0000334e : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 335e: 9045 ld.w r2, (r0, 0x14) + 3360: 3301 movi r3, 1 + 3362: 7085 lsr r2, r1 + 3364: 688c and r2, r3 + { + if (dat==1) + 3366: 3a40 cmpnei r2, 0 + 3368: 70c4 lsl r3, r1 + 336a: 0c03 bf 0x3370 // 3370 + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00003374 : +/*************************************************************/ +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); + 3394: 1064 lrw r3, 0x20000014 // 33a4 + 3396: 9340 ld.w r2, (r3, 0x0) + 3398: 9261 ld.w r3, (r2, 0x4) + 339a: 3bac bseti r3, 12 + 339c: 3bae bseti r3, 14 + 339e: b261 st.w r3, (r2, 0x4) +} + 33a0: 783c jmp r15 + 33a2: 0000 bkpt + 33a4: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000033a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 33a8: 1063 lrw r3, 0x20000010 // 33b4 + 33aa: 9360 ld.w r3, (r3, 0x0) + 33ac: 9340 ld.w r2, (r3, 0x0) + 33ae: 6c08 or r0, r2 + 33b0: b300 st.w r0, (r3, 0x0) +} + 33b2: 783c jmp r15 + 33b4: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000033b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 33b8: 3300 movi r3, 0 + 33ba: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 33bc: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 33be: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 33c0: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 33c2: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 33c4: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 33c6: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 33c8: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 33ca: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 33cc: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 33ce: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 33d0: b06d st.w r3, (r0, 0x34) +} + 33d2: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000033d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 33d4: 9060 ld.w r3, (r0, 0x0) + 33d6: 3ba0 bseti r3, 0 + 33d8: b060 st.w r3, (r0, 0x0) +} + 33da: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000033dc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 33dc: 9060 ld.w r3, (r0, 0x0) + 33de: 3bac bseti r3, 12 + 33e0: 3bae bseti r3, 14 + 33e2: b060 st.w r3, (r0, 0x0) +} + 33e4: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000033e6 : +//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) +{ + 33e6: 14c3 push r4-r6 + 33e8: 98a4 ld.w r5, (r14, 0x10) + 33ea: 6d97 mov r6, r5 + 33ec: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 33ee: 6d18 or r4, r6 + 33f0: 6cd0 or r3, r4 + 33f2: 90a1 ld.w r5, (r0, 0x4) + 33f4: 6c4c or r1, r3 + 33f6: 6c54 or r1, r5 + 33f8: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 33fa: b042 st.w r2, (r0, 0x8) +} + 33fc: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000033fe : +//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) +{ + 33fe: 14c4 push r4-r7 + 3400: 1421 subi r14, r14, 4 + 3402: 9885 ld.w r4, (r14, 0x14) + 3404: 6dd3 mov r7, r4 + 3406: 9886 ld.w r4, (r14, 0x18) + 3408: b880 st.w r4, (r14, 0x0) + 340a: 9887 ld.w r4, (r14, 0x1c) + 340c: 6d93 mov r6, r4 + 340e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 3410: 6d58 or r5, r6 + 3412: 98c0 ld.w r6, (r14, 0x0) + 3414: 6d58 or r5, r6 + 3416: 6d5c or r5, r7 + 3418: 6cd4 or r3, r5 + 341a: 6c8c or r2, r3 + 341c: 9081 ld.w r4, (r0, 0x4) + 341e: 6c48 or r1, r2 + 3420: 6d04 or r4, r1 + 3422: 6d9f mov r6, r7 + 3424: b081 st.w r4, (r0, 0x4) +} + 3426: 1401 addi r14, r14, 4 + 3428: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000342a : +//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; + 342a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 342c: b044 st.w r2, (r0, 0x10) +} + 342e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00003430 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 3430: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 3432: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 3434: 0c04 bf 0x343c // 343c + BTx->IMCR |= BT_IMSCR_X; + 3436: 6c8c or r2, r3 + 3438: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 343a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 343c: 68c9 andn r3, r2 + 343e: b06b st.w r3, (r0, 0x2c) +} + 3440: 07fd br 0x343a // 343a + +Disassembly of section .text.BT1_INT_ENABLE: + +00003444 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 3444: 3380 movi r3, 128 + 3446: 4376 lsli r3, r3, 22 + 3448: 1042 lrw r2, 0xe000e100 // 3450 + 344a: b260 st.w r3, (r2, 0x0) +} + 344c: 783c jmp r15 + 344e: 0000 bkpt + 3450: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +00003454 : +//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) + 3454: 3840 cmpnei r0, 0 + 3456: 080a bt 0x346a // 346a + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 3458: 1165 lrw r3, 0x20000048 // 34ec + 345a: 31f0 movi r1, 240 + 345c: 9340 ld.w r2, (r3, 0x0) + 345e: 9260 ld.w r3, (r2, 0x0) + 3460: 68c5 andn r3, r1 + 3462: 3ba4 bseti r3, 4 + 3464: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 3466: b260 st.w r3, (r2, 0x0) + } +} + 3468: 040b br 0x347e // 347e + if(IONAME==GPT_CHA_PA09) + 346a: 3841 cmpnei r0, 1 + 346c: 080a bt 0x3480 // 3480 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 346e: 1161 lrw r3, 0x2000004c // 34f0 + 3470: 31f0 movi r1, 240 + 3472: 9340 ld.w r2, (r3, 0x0) + 3474: 9261 ld.w r3, (r2, 0x4) + 3476: 68c5 andn r3, r1 + 3478: 3ba4 bseti r3, 4 + 347a: 3ba6 bseti r3, 6 + 347c: b261 st.w r3, (r2, 0x4) +} + 347e: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 3480: 3842 cmpnei r0, 2 + 3482: 080b bt 0x3498 // 3498 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 3484: 107b lrw r3, 0x2000004c // 34f0 + 3486: 32f0 movi r2, 240 + 3488: 9320 ld.w r1, (r3, 0x0) + 348a: 9161 ld.w r3, (r1, 0x4) + 348c: 4244 lsli r2, r2, 4 + 348e: 68c9 andn r3, r2 + 3490: 3ba9 bseti r3, 9 + 3492: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 3494: b161 st.w r3, (r1, 0x4) + 3496: 07f4 br 0x347e // 347e + if(IONAME==GPT_CHB_PA010) + 3498: 3843 cmpnei r0, 3 + 349a: 080b bt 0x34b0 // 34b0 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 349c: 1075 lrw r3, 0x2000004c // 34f0 + 349e: 32f0 movi r2, 240 + 34a0: 9320 ld.w r1, (r3, 0x0) + 34a2: 4244 lsli r2, r2, 4 + 34a4: 9161 ld.w r3, (r1, 0x4) + 34a6: 68c9 andn r3, r2 + 34a8: 32e0 movi r2, 224 + 34aa: 4243 lsli r2, r2, 3 + 34ac: 6cc8 or r3, r2 + 34ae: 07f3 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PA011) + 34b0: 3844 cmpnei r0, 4 + 34b2: 080a bt 0x34c6 // 34c6 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 34b4: 106f lrw r3, 0x2000004c // 34f0 + 34b6: 32f0 movi r2, 240 + 34b8: 9320 ld.w r1, (r3, 0x0) + 34ba: 9161 ld.w r3, (r1, 0x4) + 34bc: 4248 lsli r2, r2, 8 + 34be: 68c9 andn r3, r2 + 34c0: 3bad bseti r3, 13 + 34c2: 3bae bseti r3, 14 + 34c4: 07e8 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PB00) + 34c6: 3845 cmpnei r0, 5 + 34c8: 0808 bt 0x34d8 // 34d8 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 34ca: 1069 lrw r3, 0x20000048 // 34ec + 34cc: 310f movi r1, 15 + 34ce: 9340 ld.w r2, (r3, 0x0) + 34d0: 9260 ld.w r3, (r2, 0x0) + 34d2: 68c5 andn r3, r1 + 34d4: 3ba2 bseti r3, 2 + 34d6: 07c8 br 0x3466 // 3466 + if(IONAME==GPT_CHB_PB01) + 34d8: 3846 cmpnei r0, 6 + 34da: 0bd2 bt 0x347e // 347e + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 34dc: 1064 lrw r3, 0x20000048 // 34ec + 34de: 31f0 movi r1, 240 + 34e0: 9340 ld.w r2, (r3, 0x0) + 34e2: 9260 ld.w r3, (r2, 0x0) + 34e4: 68c5 andn r3, r1 + 34e6: 3ba5 bseti r3, 5 + 34e8: 3ba6 bseti r3, 6 + 34ea: 07be br 0x3466 // 3466 + 34ec: 20000048 .long 0x20000048 + 34f0: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +000034f4 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 34f4: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 34f6: 6c48 or r1, r2 + 34f8: 1083 lrw r4, 0x20000024 // 3504 + 34fa: 6c04 or r0, r1 + 34fc: 9480 ld.w r4, (r4, 0x0) + 34fe: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 3500: b462 st.w r3, (r4, 0x8) +} + 3502: 1481 pop r4 + 3504: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +00003508 : +/*************************************************************/ +//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) +{ + 3508: 14c4 push r4-r7 + 350a: 1423 subi r14, r14, 12 + 350c: 9887 ld.w r4, (r14, 0x1c) + 350e: 6dd3 mov r7, r4 + 3510: 9888 ld.w r4, (r14, 0x20) + 3512: b880 st.w r4, (r14, 0x0) + 3514: 9889 ld.w r4, (r14, 0x24) + 3516: b881 st.w r4, (r14, 0x4) + 3518: 988a ld.w r4, (r14, 0x28) + 351a: b882 st.w r4, (r14, 0x8) + 351c: 988b ld.w r4, (r14, 0x2c) + 351e: 6d93 mov r6, r4 + 3520: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 3522: 3cb2 bseti r4, 18 + 3524: 6d18 or r4, r6 + 3526: 98c2 ld.w r6, (r14, 0x8) + 3528: 6d18 or r4, r6 + 352a: 98c1 ld.w r6, (r14, 0x4) + 352c: 6d18 or r4, r6 + 352e: 98c0 ld.w r6, (r14, 0x0) + 3530: 6d18 or r4, r6 + 3532: 6d1c or r4, r7 + 3534: 6cd0 or r3, r4 + 3536: 6c8c or r2, r3 + 3538: 6c48 or r1, r2 + 353a: 10a4 lrw r5, 0x20000024 // 3548 + 353c: 6c04 or r0, r1 + 353e: 95a0 ld.w r5, (r5, 0x0) + 3540: 6d9f mov r6, r7 + 3542: b503 st.w r0, (r5, 0xc) +} + 3544: 1403 addi r14, r14, 12 + 3546: 1484 pop r4-r7 + 3548: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +0000354c : +//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) +{ + 354c: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 354e: 6c8c or r2, r3 + 3550: 6c48 or r1, r2 + 3552: 1083 lrw r4, 0x20000024 // 355c + 3554: 6c04 or r0, r1 + 3556: 9480 ld.w r4, (r4, 0x0) + 3558: b411 st.w r0, (r4, 0x44) +} + 355a: 1481 pop r4 + 355c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +00003560 : +//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) +{ + 3560: 14c4 push r4-r7 + 3562: 1425 subi r14, r14, 20 + 3564: 1c09 addi r4, r14, 36 + 3566: 8480 ld.b r4, (r4, 0x0) + 3568: b880 st.w r4, (r14, 0x0) + 356a: 1c0a addi r4, r14, 40 + 356c: 8480 ld.b r4, (r4, 0x0) + 356e: b881 st.w r4, (r14, 0x4) + 3570: 1c0b addi r4, r14, 44 + 3572: 8480 ld.b r4, (r4, 0x0) + 3574: b882 st.w r4, (r14, 0x8) + 3576: 1c0c addi r4, r14, 48 + 3578: 8480 ld.b r4, (r4, 0x0) + 357a: b883 st.w r4, (r14, 0xc) + 357c: 1c0d addi r4, r14, 52 + 357e: 8480 ld.b r4, (r4, 0x0) + 3580: 1e10 addi r6, r14, 64 + 3582: b884 st.w r4, (r14, 0x10) + 3584: 1d0f addi r5, r14, 60 + 3586: 1c0e addi r4, r14, 56 + 3588: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 358a: 3840 cmpnei r0, 0 +{ + 358c: 1e11 addi r6, r14, 68 + 358e: 8480 ld.b r4, (r4, 0x0) + 3590: 85a0 ld.b r5, (r5, 0x0) + 3592: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 3594: 081f bt 0x35d2 // 35d2 + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 3596: 47f0 lsli r7, r7, 16 + 3598: 46d2 lsli r6, r6, 18 + 359a: 45ae lsli r5, r5, 14 + 359c: 6dd8 or r7, r6 + 359e: 6dd4 or r7, r5 + 35a0: 448c lsli r4, r4, 12 + 35a2: 6dd0 or r7, r4 + 35a4: 9884 ld.w r4, (r14, 0x10) + 35a6: 448a lsli r4, r4, 10 + 35a8: 6dd0 or r7, r4 + 35aa: 9883 ld.w r4, (r14, 0xc) + 35ac: 4488 lsli r4, r4, 8 + 35ae: 98a2 ld.w r5, (r14, 0x8) + 35b0: 6d1c or r4, r7 + 35b2: 45e6 lsli r7, r5, 6 + 35b4: 6d1c or r4, r7 + 35b6: 6c90 or r2, r4 + 35b8: 6cc8 or r3, r2 + 35ba: 9841 ld.w r2, (r14, 0x4) + 35bc: 4244 lsli r2, r2, 4 + 35be: 6cc8 or r3, r2 + 35c0: 6c4c or r1, r3 + 35c2: 9860 ld.w r3, (r14, 0x0) + 35c4: 4362 lsli r3, r3, 2 + 35c6: 1013 lrw r0, 0x20000024 // 3610 + 35c8: 6c4c or r1, r3 + 35ca: 9000 ld.w r0, (r0, 0x0) + 35cc: 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); + } +} + 35ce: 1405 addi r14, r14, 20 + 35d0: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 35d2: 3841 cmpnei r0, 1 + 35d4: 0bfd bt 0x35ce // 35ce + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 35d6: 47f0 lsli r7, r7, 16 + 35d8: 46d2 lsli r6, r6, 18 + 35da: 45ae lsli r5, r5, 14 + 35dc: 6dd8 or r7, r6 + 35de: 6dd4 or r7, r5 + 35e0: 448c lsli r4, r4, 12 + 35e2: 6dd0 or r7, r4 + 35e4: 9884 ld.w r4, (r14, 0x10) + 35e6: 448a lsli r4, r4, 10 + 35e8: 6dd0 or r7, r4 + 35ea: 9883 ld.w r4, (r14, 0xc) + 35ec: 4488 lsli r4, r4, 8 + 35ee: 98a2 ld.w r5, (r14, 0x8) + 35f0: 6d1c or r4, r7 + 35f2: 45e6 lsli r7, r5, 6 + 35f4: 6d1c or r4, r7 + 35f6: 6c90 or r2, r4 + 35f8: 6cc8 or r3, r2 + 35fa: 9841 ld.w r2, (r14, 0x4) + 35fc: 4244 lsli r2, r2, 4 + 35fe: 6cc8 or r3, r2 + 3600: 6c4c or r1, r3 + 3602: 9860 ld.w r3, (r14, 0x0) + 3604: 4362 lsli r3, r3, 2 + 3606: 1003 lrw r0, 0x20000024 // 3610 + 3608: 6c4c or r1, r3 + 360a: 9000 ld.w r0, (r0, 0x0) + 360c: b033 st.w r1, (r0, 0x4c) +} + 360e: 07e0 br 0x35ce // 35ce + 3610: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +00003614 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 3614: 1063 lrw r3, 0x20000024 // 3620 + 3616: 9340 ld.w r2, (r3, 0x0) + 3618: 9261 ld.w r3, (r2, 0x4) + 361a: 3ba0 bseti r3, 0 + 361c: b261 st.w r3, (r2, 0x4) +} + 361e: 783c jmp r15 + 3620: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +00003624 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 3624: 1063 lrw r3, 0x20000024 // 3630 + 3626: 9360 ld.w r3, (r3, 0x0) + 3628: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 362a: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 362c: b34c st.w r2, (r3, 0x30) +} + 362e: 783c jmp r15 + 3630: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +00003634 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 3634: 1066 lrw r3, 0x20000024 // 364c + if (NewState != DISABLE) + 3636: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 3638: 9360 ld.w r3, (r3, 0x0) + 363a: 237f addi r3, 128 + 363c: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 363e: 0c04 bf 0x3646 // 3646 + GPT0->IMCR |= GPT_IMSCR_X; + 3640: 6c48 or r1, r2 + 3642: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 3644: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 3646: 6885 andn r2, r1 + 3648: b356 st.w r2, (r3, 0x58) +} + 364a: 07fd br 0x3644 // 3644 + 364c: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +00003650 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 3650: 1065 lrw r3, 0x20000040 // 3664 + 3652: 3200 movi r2, 0 + 3654: 9360 ld.w r3, (r3, 0x0) + 3656: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 3658: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 365a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 365c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 365e: b344 st.w r2, (r3, 0x10) +} + 3660: 783c jmp r15 + 3662: 0000 bkpt + 3664: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00003668 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 3668: 1065 lrw r3, 0x2000003c // 367c + 366a: 3200 movi r2, 0 + 366c: 9360 ld.w r3, (r3, 0x0) + 366e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 3670: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 3672: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 3674: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 3676: b344 st.w r2, (r3, 0x10) +} + 3678: 783c jmp r15 + 367a: 0000 bkpt + 367c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00003680 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 3680: 1065 lrw r3, 0x20000038 // 3694 + 3682: 3200 movi r2, 0 + 3684: 9360 ld.w r3, (r3, 0x0) + 3686: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 3688: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 368a: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 368c: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 368e: b344 st.w r2, (r3, 0x10) +} + 3690: 783c jmp r15 + 3692: 0000 bkpt + 3694: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00003698 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 3698: 1065 lrw r3, 0x20000040 // 36ac + 369a: 320f movi r2, 15 + 369c: 9360 ld.w r3, (r3, 0x0) + 369e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36a0: 3380 movi r3, 128 + 36a2: 4366 lsli r3, r3, 6 + 36a4: 1043 lrw r2, 0xe000e100 // 36b0 + 36a6: b260 st.w r3, (r2, 0x0) +} + 36a8: 783c jmp r15 + 36aa: 0000 bkpt + 36ac: 20000040 .long 0x20000040 + 36b0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000036b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 36b4: 1065 lrw r3, 0x20000038 // 36c8 + 36b6: 320f movi r2, 15 + 36b8: 9360 ld.w r3, (r3, 0x0) + 36ba: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36bc: 3380 movi r3, 128 + 36be: 4368 lsli r3, r3, 8 + 36c0: 1043 lrw r2, 0xe000e100 // 36cc + 36c2: b260 st.w r3, (r2, 0x0) +} + 36c4: 783c jmp r15 + 36c6: 0000 bkpt + 36c8: 20000038 .long 0x20000038 + 36cc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +000036d0 : +//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) + 36d0: 3840 cmpnei r0, 0 + 36d2: 0821 bt 0x3714 // 3714 + { + if(UART_IO_G==0) + 36d4: 3940 cmpnei r1, 0 + 36d6: 080a bt 0x36ea // 36ea + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 36d8: 1177 lrw r3, 0x2000004c // 37b4 + 36da: 31ff movi r1, 255 + 36dc: 9340 ld.w r2, (r3, 0x0) + 36de: 9260 ld.w r3, (r2, 0x0) + 36e0: 68c5 andn r3, r1 + 36e2: 3ba2 bseti r3, 2 + 36e4: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 36e6: b260 st.w r3, (r2, 0x0) + 36e8: 0415 br 0x3712 // 3712 + else if(UART_IO_G==1) + 36ea: 3941 cmpnei r1, 1 + 36ec: 0813 bt 0x3712 // 3712 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 36ee: 1172 lrw r3, 0x2000004c // 37b4 + 36f0: 31f0 movi r1, 240 + 36f2: 9340 ld.w r2, (r3, 0x0) + 36f4: 9260 ld.w r3, (r2, 0x0) + 36f6: 4130 lsli r1, r1, 16 + 36f8: 68c5 andn r3, r1 + 36fa: 31e0 movi r1, 224 + 36fc: 412f lsli r1, r1, 15 + 36fe: 6cc4 or r3, r1 + 3700: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 3702: 31f0 movi r1, 240 + 3704: 9261 ld.w r3, (r2, 0x4) + 3706: 412c lsli r1, r1, 12 + 3708: 68c5 andn r3, r1 + 370a: 31e0 movi r1, 224 + 370c: 412b lsli r1, r1, 11 + 370e: 6cc4 or r3, r1 + 3710: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 3712: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 3714: 3841 cmpnei r0, 1 + 3716: 082d bt 0x3770 // 3770 + if(UART_IO_G==0) + 3718: 3940 cmpnei r1, 0 + 371a: 0814 bt 0x3742 // 3742 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 371c: 1167 lrw r3, 0x20000048 // 37b8 + 371e: 310f movi r1, 15 + 3720: 9340 ld.w r2, (r3, 0x0) + 3722: 9260 ld.w r3, (r2, 0x0) + 3724: 68c5 andn r3, r1 + 3726: 3107 movi r1, 7 + 3728: 6cc4 or r3, r1 + 372a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 372c: 32f0 movi r2, 240 + 372e: 1162 lrw r3, 0x2000004c // 37b4 + 3730: 4250 lsli r2, r2, 16 + 3732: 9320 ld.w r1, (r3, 0x0) + 3734: 9161 ld.w r3, (r1, 0x4) + 3736: 68c9 andn r3, r2 + 3738: 32e0 movi r2, 224 + 373a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 373c: 6cc8 or r3, r2 + 373e: b161 st.w r3, (r1, 0x4) + 3740: 07e9 br 0x3712 // 3712 + else if(UART_IO_G==1) + 3742: 3941 cmpnei r1, 1 + 3744: 080c bt 0x375c // 375c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 3746: 107c lrw r3, 0x2000004c // 37b4 + 3748: 32ff movi r2, 255 + 374a: 9320 ld.w r1, (r3, 0x0) + 374c: 424c lsli r2, r2, 12 + 374e: 9160 ld.w r3, (r1, 0x0) + 3750: 68c9 andn r3, r2 + 3752: 32ee movi r2, 238 + 3754: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 3756: 6cc8 or r3, r2 + 3758: b160 st.w r3, (r1, 0x0) +} + 375a: 07dc br 0x3712 // 3712 + else if(UART_IO_G==2) + 375c: 3942 cmpnei r1, 2 + 375e: 0bda bt 0x3712 // 3712 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 3760: 1075 lrw r3, 0x2000004c // 37b4 + 3762: 32ee movi r2, 238 + 3764: 9320 ld.w r1, (r3, 0x0) + 3766: 9161 ld.w r3, (r1, 0x4) + 3768: 4368 lsli r3, r3, 8 + 376a: 4b68 lsri r3, r3, 8 + 376c: 4257 lsli r2, r2, 23 + 376e: 07e7 br 0x373c // 373c + if (IO_UART_NUM==IO_UART2) + 3770: 3842 cmpnei r0, 2 + 3772: 0bd0 bt 0x3712 // 3712 + if(UART_IO_G==0) + 3774: 3940 cmpnei r1, 0 + 3776: 0809 bt 0x3788 // 3788 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 3778: 106f lrw r3, 0x2000004c // 37b4 + 377a: 31ff movi r1, 255 + 377c: 9340 ld.w r2, (r3, 0x0) + 377e: 9260 ld.w r3, (r2, 0x0) + 3780: 68c5 andn r3, r1 + 3782: 3177 movi r1, 119 + 3784: 6cc4 or r3, r1 + 3786: 07b0 br 0x36e6 // 36e6 + else if(UART_IO_G==1) + 3788: 3941 cmpnei r1, 1 + 378a: 0809 bt 0x379c // 379c + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 378c: 106a lrw r3, 0x2000004c // 37b4 + 378e: 32ee movi r2, 238 + 3790: 9320 ld.w r1, (r3, 0x0) + 3792: 9160 ld.w r3, (r1, 0x0) + 3794: 4368 lsli r3, r3, 8 + 3796: 4b68 lsri r3, r3, 8 + 3798: 4257 lsli r2, r2, 23 + 379a: 07de br 0x3756 // 3756 + else if(UART_IO_G==2) + 379c: 3942 cmpnei r1, 2 + 379e: 0bba bt 0x3712 // 3712 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 37a0: 1066 lrw r3, 0x20000048 // 37b8 + 37a2: 32ff movi r2, 255 + 37a4: 9320 ld.w r1, (r3, 0x0) + 37a6: 4250 lsli r2, r2, 16 + 37a8: 9160 ld.w r3, (r1, 0x0) + 37aa: 68c9 andn r3, r2 + 37ac: 32cc movi r2, 204 + 37ae: 424f lsli r2, r2, 15 + 37b0: 07d3 br 0x3756 // 3756 + 37b2: 0000 bkpt + 37b4: 2000004c .long 0x2000004c + 37b8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000037bc : +//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); + 37bc: 1063 lrw r3, 0x80003 // 37c8 + 37be: 6c8c or r2, r3 + 37c0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37c2: b024 st.w r1, (r0, 0x10) +} + 37c4: 783c jmp r15 + 37c6: 0000 bkpt + 37c8: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000037cc : +//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); + 37cc: 1063 lrw r3, 0x8000f // 37d8 + 37ce: 6c8c or r2, r3 + 37d0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37d2: b024 st.w r1, (r0, 0x10) +} + 37d4: 783c jmp r15 + 37d6: 0000 bkpt + 37d8: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000037dc : +//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) +{ + 37dc: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37de: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 37e0: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37e2: 5b85 subu r4, r3, r1 + 37e4: 6490 cmphs r4, r2 + 37e6: 0c02 bf 0x37ea // 37ea + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 37e8: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 37ea: 8380 ld.b r4, (r3, 0x0) + 37ec: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 37ee: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 37f0: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 37f2: 3c40 cmpnei r4, 0 + 37f4: 0bfd bt 0x37ee // 37ee + 37f6: 2300 addi r3, 1 + 37f8: 07f5 br 0x37e2 // 37e2 + +Disassembly of section .text.EPT_Stop: + +000037fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 37fc: 1068 lrw r3, 0x20000020 // 381c + 37fe: 3280 movi r2, 128 + 3800: 9360 ld.w r3, (r3, 0x0) + 3802: 608c addu r2, r3 + 3804: 1027 lrw r1, 0xa55ac73a // 3820 + 3806: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 3808: 9341 ld.w r2, (r3, 0x4) + 380a: 31fe movi r1, 254 + 380c: 6884 and r2, r1 + 380e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 3810: 3101 movi r1, 1 + 3812: 9341 ld.w r2, (r3, 0x4) + 3814: 6884 and r2, r1 + 3816: 3a40 cmpnei r2, 0 + 3818: 0bfd bt 0x3812 // 3812 +} + 381a: 783c jmp r15 + 381c: 20000020 .long 0x20000020 + 3820: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +00003824
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 3824: 14d1 push r4, r15 + + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 3826: 1099 lrw r4, 0x20000048 // 3888 + 3828: 3201 movi r2, 1 + 382a: 9400 ld.w r0, (r4, 0x0) + 382c: 3102 movi r1, 2 + 382e: e3fffd0f bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOB0,DET_RF_MODULE_PIN); + 3832: 9400 ld.w r0, (r4, 0x0) + 3834: 3102 movi r1, 2 + 3836: e3fffd7b bsr 0x332c // 332c + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 383a: 3102 movi r1, 2 + 383c: 9400 ld.w r0, (r4, 0x0) + 383e: e3fffd9b bsr 0x3374 // 3374 + 3842: 1093 lrw r4, 0x200000a0 // 388c + last_state = rf_exist; + 3844: a401 st.b r0, (r4, 0x1) + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 3846: a400 st.b r0, (r4, 0x0) + APT32F102_init(); //102 initial + 3848: e00000e8 bsr 0x3a18 // 3a18 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 384c: 1031 lrw r1, 0x5e4c // 3890 + 384e: 3000 movi r0, 0 + 3850: e00006b8 bsr 0x45c0 // 45c0 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 3854: e3fffc6a bsr 0x3128 // 3128 + + //UART2_TASK(); + Detect_WIFI_Task(); + 3858: e0000b54 bsr 0x4f00 // 4f00 + + Detect_SPI_task(); + 385c: e00009c0 bsr 0x4bdc // 4bdc + + BackLight_Task(); + 3860: e0000b3e bsr 0x4edc // 4edc + + Led_Task(); + 3864: e0000b98 bsr 0x4f94 // 4f94 + + if (finish_flag == 1) { + 3868: 8462 ld.b r3, (r4, 0x2) + 386a: 3b41 cmpnei r3, 1 + 386c: 0bf4 bt 0x3854 // 3854 + Card_Read_TasK(); + 386e: e0000961 bsr 0x4b30 // 4b30 + + if(rf_exist == 0x01) + 3872: 8460 ld.b r3, (r4, 0x0) + 3874: 3b41 cmpnei r3, 1 + 3876: 0804 bt 0x387e // 387e + { + LogicCtrl_NoRF_Task(); //无RF模块轮询任务 + 3878: e0000ad2 bsr 0x4e1c // 4e1c + 387c: 07ec br 0x3854 // 3854 + } + else if(rf_exist == 0x00) + 387e: 3b40 cmpnei r3, 0 + 3880: 0bea bt 0x3854 // 3854 + { +// Debounce_Task(); + LogicCtrl_Task(); //带RF模块执行逻辑 + 3882: e0000a59 bsr 0x4d34 // 4d34 + 3886: 07e7 br 0x3854 // 3854 + 3888: 20000048 .long 0x20000048 + 388c: 200000a0 .long 0x200000a0 + 3890: 00005e4c .long 0x00005e4c + +Disassembly of section .text.delay_nms: + +00003894 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 3894: 14d0 push r15 + 3896: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 3898: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 389a: 3300 movi r3, 0 + j = 50* t; + 389c: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 389e: b862 st.w r3, (r14, 0x8) + j = 50* t; + 38a0: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 38a2: b860 st.w r3, (r14, 0x0) + 38a4: 9840 ld.w r2, (r14, 0x0) + 38a6: 9861 ld.w r3, (r14, 0x4) + 38a8: 64c8 cmphs r2, r3 + 38aa: 0c03 bf 0x38b0 // 38b0 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 38ac: 1403 addi r14, r14, 12 + 38ae: 1490 pop r15 + k++; + 38b0: 9862 ld.w r3, (r14, 0x8) + 38b2: 2300 addi r3, 1 + 38b4: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 38b6: e3fffc39 bsr 0x3128 // 3128 + for ( i = 0; i < j; i++ ) + 38ba: 9860 ld.w r3, (r14, 0x0) + 38bc: 2300 addi r3, 1 + 38be: 07f2 br 0x38a2 // 38a2 + +Disassembly of section .text.GPT0_CONFIG: + +000038c0 : +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + 38c0: 14d0 push r15 + 38c2: 1429 subi r14, r14, 36 + GPT_IO_Init(GPT_CHA_PB01); + 38c4: 3000 movi r0, 0 + 38c6: e3fffdc7 bsr 0x3454 // 3454 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 38ca: 3300 movi r3, 0 + 38cc: 3240 movi r2, 64 + 38ce: 3100 movi r1, 0 + 38d0: 3001 movi r0, 1 + 38d2: e3fffe11 bsr 0x34f4 // 34f4 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 38d6: 3300 movi r3, 0 + 38d8: b865 st.w r3, (r14, 0x14) + 38da: b864 st.w r3, (r14, 0x10) + 38dc: b863 st.w r3, (r14, 0xc) + 38de: b862 st.w r3, (r14, 0x8) + 38e0: b861 st.w r3, (r14, 0x4) + 38e2: b860 st.w r3, (r14, 0x0) + 38e4: 3208 movi r2, 8 + 38e6: 3100 movi r1, 0 + 38e8: 3000 movi r0, 0 + 38ea: e3fffe0f bsr 0x3508 // 3508 + if(rf_exist == 0x01) + 38ee: 1079 lrw r3, 0x200000a0 // 3950 + 38f0: 8360 ld.b r3, (r3, 0x0) + 38f2: 3b41 cmpnei r3, 1 + 38f4: 0827 bt 0x3942 // 3942 + { + GPT_Period_CMP_Write(2000,2000,0); + 38f6: 31fa movi r1, 250 + 38f8: 4123 lsli r1, r1, 3 + 38fa: 3200 movi r2, 0 + 38fc: 6c07 mov r0, r1 + } + else if(rf_exist == 0x00) + { + GPT_Period_CMP_Write(2000,0,0); + 38fe: e3fffe93 bsr 0x3624 // 3624 + } + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 3902: 3320 movi r3, 32 + 3904: 3204 movi r2, 4 + 3906: 3100 movi r1, 0 + 3908: 3001 movi r0, 1 + 390a: e3fffe21 bsr 0x354c // 354c + GPT_WaveOut_Configure(GPT_CHA,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 390e: 3300 movi r3, 0 + 3910: 3201 movi r2, 1 + 3912: b868 st.w r3, (r14, 0x20) + 3914: b867 st.w r3, (r14, 0x1c) + 3916: b866 st.w r3, (r14, 0x18) + 3918: b865 st.w r3, (r14, 0x14) + 391a: b864 st.w r3, (r14, 0x10) + 391c: b863 st.w r3, (r14, 0xc) + 391e: b842 st.w r2, (r14, 0x8) + 3920: b841 st.w r2, (r14, 0x4) + 3922: b860 st.w r3, (r14, 0x0) + 3924: 3200 movi r2, 0 + 3926: 3302 movi r3, 2 + 3928: 3100 movi r1, 0 + 392a: 3000 movi r0, 0 + 392c: e3fffe1a bsr 0x3560 // 3560 + +// GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPB,2,0,0,0,1,1,0,0,0,0); + //GPT_SyncSet_Configure(GPT_SYNCUSR0_EN,GPT_OST_CONTINUOUS,GPT_TXREARM_DIS,GPT_TRGO0SEL_SR0,GPT_TRG10SEL_SR0,GPT_AREARM_DIS); + //GPT_Trigger_Configure(GPT_SRCSEL_TRGUSR0EN,GPT_BLKINV_DIS,GPT_ALIGNMD_PRD,GPT_CROSSMD_DIS,5,5); + //GPT_EVTRG_Configure(GPT_TRGSRC0_PRD,GPT_TRGSRC1_PRD,GPT_ESYN0OE_EN,GPT_ESYN1OE_EN,GPT_CNT0INIT_EN,GPT_CNT1INIT_EN,3,3,3,3); + GPT_Start(); + 3930: e3fffe72 bsr 0x3614 // 3614 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 3934: 3180 movi r1, 128 + 3936: 4129 lsli r1, r1, 9 + 3938: 3001 movi r0, 1 + 393a: e3fffe7d bsr 0x3634 // 3634 +// GPT_INT_ENABLE(); + //INTC_ISER_WRITE(GPT0_INT); + //INTC_IWER_WRITE(GPT0_INT); +} + 393e: 1409 addi r14, r14, 36 + 3940: 1490 pop r15 + else if(rf_exist == 0x00) + 3942: 3b40 cmpnei r3, 0 + 3944: 0bdf bt 0x3902 // 3902 + GPT_Period_CMP_Write(2000,0,0); + 3946: 30fa movi r0, 250 + 3948: 3200 movi r2, 0 + 394a: 3100 movi r1, 0 + 394c: 4003 lsli r0, r0, 3 + 394e: 07d8 br 0x38fe // 38fe + 3950: 200000a0 .long 0x200000a0 + +Disassembly of section .text.BT_CONFIG: + +00003954 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 3954: 14d2 push r4-r5, r15 + 3956: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 3958: 1095 lrw r4, 0x20000008 // 39ac + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 395a: 3500 movi r5, 0 + BT_DeInit(BT1); + 395c: 9400 ld.w r0, (r4, 0x0) + 395e: e3fffd2d bsr 0x33b8 // 33b8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 3962: 9400 ld.w r0, (r4, 0x0) + 3964: b8a1 st.w r5, (r14, 0x4) + 3966: b8a0 st.w r5, (r14, 0x0) + 3968: 3308 movi r3, 8 + 396a: 3200 movi r2, 0 + 396c: 3101 movi r1, 1 + 396e: e3fffd3c bsr 0x33e6 // 33e6 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 3972: 3380 movi r3, 128 + 3974: 4363 lsli r3, r3, 3 + 3976: b861 st.w r3, (r14, 0x4) + 3978: 9400 ld.w r0, (r4, 0x0) + 397a: 3300 movi r3, 0 + 397c: b8a3 st.w r5, (r14, 0xc) + 397e: b8a2 st.w r5, (r14, 0x8) + 3980: b8a0 st.w r5, (r14, 0x0) + 3982: 3200 movi r2, 0 + 3984: 3180 movi r1, 128 + 3986: e3fffd3c bsr 0x33fe // 33fe + BT_Period_CMP_Write(BT1,4780,1); + 398a: 3201 movi r2, 1 + 398c: 1029 lrw r1, 0x12ac // 39b0 + 398e: 9400 ld.w r0, (r4, 0x0) + 3990: e3fffd4d bsr 0x342a // 342a + BT_Start(BT1); + 3994: 9400 ld.w r0, (r4, 0x0) + 3996: e3fffd1f bsr 0x33d4 // 33d4 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 399a: 9400 ld.w r0, (r4, 0x0) + 399c: 3202 movi r2, 2 + 399e: 3101 movi r1, 1 + 39a0: e3fffd48 bsr 0x3430 // 3430 + BT1_INT_ENABLE(); + 39a4: e3fffd50 bsr 0x3444 // 3444 + +} + 39a8: 1404 addi r14, r14, 16 + 39aa: 1492 pop r4-r5, r15 + 39ac: 20000008 .long 0x20000008 + 39b0: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +000039b4 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 39b4: 14d0 push r15 + 39b6: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 39b8: e3fffb04 bsr 0x2fc0 // 2fc0 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 39bc: 3101 movi r1, 1 + 39be: 3001 movi r0, 1 + 39c0: e3fffb26 bsr 0x300c // 300c + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 39c4: 3000 movi r0, 0 + 39c6: e3fffb7f bsr 0x30c4 // 30c4 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 39ca: 3180 movi r1, 128 + 39cc: 3308 movi r3, 8 + 39ce: 3200 movi r2, 0 + 39d0: 4121 lsli r1, r1, 1 + 39d2: 3002 movi r0, 2 + 39d4: e3fffb34 bsr 0x303c // 303c +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 39d8: 3080 movi r0, 128 + 39da: 3118 movi r1, 24 + 39dc: 4002 lsli r0, r0, 2 + 39de: e3fffbaf bsr 0x313c // 313c + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 39e2: 3001 movi r0, 1 + 39e4: e3fffb84 bsr 0x30ec // 30ec + SYSCON_IWDCNT_Reload(); //reload WDT + 39e8: e3fffba0 bsr 0x3128 // 3128 + IWDT_Int_Enable(); + 39ec: e3fffbd2 bsr 0x3190 // 3190 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 39f0: 3340 movi r3, 64 + 39f2: b860 st.w r3, (r14, 0x0) + 39f4: 31c0 movi r1, 192 + 39f6: 3380 movi r3, 128 + 39f8: 4364 lsli r3, r3, 4 + 39fa: 3200 movi r2, 0 + 39fc: 4123 lsli r1, r1, 3 + 39fe: 3000 movi r0, 0 + 3a00: e3fffbaa bsr 0x3154 // 3154 + LVD_Int_Enable(); + 3a04: e3fffbb8 bsr 0x3174 // 3174 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 3a08: e3fffbf2 bsr 0x31ec // 31ec + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 3a0c: 3000 movi r0, 0 + 3a0e: e0000f0b bsr 0x5824 // 5824 + +} + 3a12: 1401 addi r14, r14, 4 + 3a14: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00003a18 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 3a18: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a1a: 1072 lrw r3, 0x2000005c // 3a60 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a1c: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a1e: 9340 ld.w r2, (r3, 0x0) + 3a20: 1071 lrw r3, 0xfffffff // 3a64 + 3a22: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 3a24: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a26: 926c ld.w r3, (r2, 0x30) + 3a28: 68c4 and r3, r1 + 3a2a: 3b40 cmpnei r3, 0 + 3a2c: 0ffd bf 0x3a26 // 3a26 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 3a2e: e3ffffc3 bsr 0x39b4 // 39b4 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 3a32: e0000525 bsr 0x447c // 447c + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 3a36: e3fffbe1 bsr 0x31f8 // 31f8 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 3a3a: 3101 movi r1, 1 + 3a3c: 300f movi r0, 15 + 3a3e: e3fffbef bsr 0x321c // 321c +// Set_INT_Priority(SIO_IRQ,1); //SIO优先级最高 +// + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 3a42: 3102 movi r1, 2 + 3a44: 3019 movi r0, 25 + 3a46: e3fffbeb bsr 0x321c // 321c +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 3a4a: e3ffff85 bsr 0x3954 // 3954 + + GPT0_CONFIG(); + 3a4e: e3ffff39 bsr 0x38c0 // 38c0 + + UARTx_Init(UART_1,NULL); + 3a52: 3100 movi r1, 0 + 3a54: 3001 movi r0, 1 + 3a56: e0000517 bsr 0x4484 // 4484 +// UARTx_Init(UART_2,NULL); + + RC522_Init(); + 3a5a: e0000701 bsr 0x485c // 485c +// } +// else if(rf_exist == 0x00) //带无线模块初始化 +// { +// LogicCtrl_Init(); +// } +} + 3a5e: 1490 pop r15 + 3a60: 2000005c .long 0x2000005c + 3a64: 0fffffff .long 0x0fffffff + +Disassembly of section .text.SYSCONIntHandler: + +00003a68 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 3a68: 1460 nie + 3a6a: 1462 ipush + // ISR content ... + nop; + 3a6c: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 3a6e: 117a lrw r3, 0x2000005c // 3b54 + 3a70: 3280 movi r2, 128 + 3a72: 9360 ld.w r3, (r3, 0x0) + 3a74: 60c8 addu r3, r2 + 3a76: 9323 ld.w r1, (r3, 0xc) + 3a78: 3001 movi r0, 1 + 3a7a: 6840 and r1, r0 + 3a7c: 3940 cmpnei r1, 0 + 3a7e: 0c04 bf 0x3a86 // 3a86 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 3a80: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 3a82: 1463 ipop + 3a84: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 3a86: 9323 ld.w r1, (r3, 0xc) + 3a88: 3002 movi r0, 2 + 3a8a: 6840 and r1, r0 + 3a8c: 3940 cmpnei r1, 0 + 3a8e: 0bf9 bt 0x3a80 // 3a80 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 3a90: 9323 ld.w r1, (r3, 0xc) + 3a92: 3008 movi r0, 8 + 3a94: 6840 and r1, r0 + 3a96: 3940 cmpnei r1, 0 + 3a98: 0bf4 bt 0x3a80 // 3a80 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 3a9a: 9323 ld.w r1, (r3, 0xc) + 3a9c: 3010 movi r0, 16 + 3a9e: 6840 and r1, r0 + 3aa0: 3940 cmpnei r1, 0 + 3aa2: 0bef bt 0x3a80 // 3a80 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 3aa4: 9323 ld.w r1, (r3, 0xc) + 3aa6: 6848 and r1, r2 + 3aa8: 3940 cmpnei r1, 0 + 3aaa: 0c03 bf 0x3ab0 // 3ab0 + SYSCON->ICR = CMD_ERR_ST; + 3aac: b341 st.w r2, (r3, 0x4) +} + 3aae: 07ea br 0x3a82 // 3a82 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 3ab0: 3280 movi r2, 128 + 3ab2: 9323 ld.w r1, (r3, 0xc) + 3ab4: 4241 lsli r2, r2, 1 + 3ab6: 6848 and r1, r2 + 3ab8: 3940 cmpnei r1, 0 + 3aba: 0bf9 bt 0x3aac // 3aac + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 3abc: 3280 movi r2, 128 + 3abe: 9323 ld.w r1, (r3, 0xc) + 3ac0: 4242 lsli r2, r2, 2 + 3ac2: 6848 and r1, r2 + 3ac4: 3940 cmpnei r1, 0 + 3ac6: 0bf3 bt 0x3aac // 3aac + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 3ac8: 3280 movi r2, 128 + 3aca: 9323 ld.w r1, (r3, 0xc) + 3acc: 4243 lsli r2, r2, 3 + 3ace: 6848 and r1, r2 + 3ad0: 3940 cmpnei r1, 0 + 3ad2: 0bed bt 0x3aac // 3aac + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 3ad4: 3280 movi r2, 128 + 3ad6: 9323 ld.w r1, (r3, 0xc) + 3ad8: 4244 lsli r2, r2, 4 + 3ada: 6848 and r1, r2 + 3adc: 3940 cmpnei r1, 0 + 3ade: 0c03 bf 0x3ae4 // 3ae4 + nop; + 3ae0: 6c03 mov r0, r0 + 3ae2: 07e5 br 0x3aac // 3aac + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 3ae4: 3280 movi r2, 128 + 3ae6: 9323 ld.w r1, (r3, 0xc) + 3ae8: 4245 lsli r2, r2, 5 + 3aea: 6848 and r1, r2 + 3aec: 3940 cmpnei r1, 0 + 3aee: 0bdf bt 0x3aac // 3aac + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 3af0: 3280 movi r2, 128 + 3af2: 9323 ld.w r1, (r3, 0xc) + 3af4: 4246 lsli r2, r2, 6 + 3af6: 6848 and r1, r2 + 3af8: 3940 cmpnei r1, 0 + 3afa: 0bd9 bt 0x3aac // 3aac + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 3afc: 3280 movi r2, 128 + 3afe: 9323 ld.w r1, (r3, 0xc) + 3b00: 4247 lsli r2, r2, 7 + 3b02: 6848 and r1, r2 + 3b04: 3940 cmpnei r1, 0 + 3b06: 0bd3 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 3b08: 3280 movi r2, 128 + 3b0a: 9323 ld.w r1, (r3, 0xc) + 3b0c: 424b lsli r2, r2, 11 + 3b0e: 6848 and r1, r2 + 3b10: 3940 cmpnei r1, 0 + 3b12: 0bcd bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 3b14: 3280 movi r2, 128 + 3b16: 9323 ld.w r1, (r3, 0xc) + 3b18: 424c lsli r2, r2, 12 + 3b1a: 6848 and r1, r2 + 3b1c: 3940 cmpnei r1, 0 + 3b1e: 0bc7 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3b20: 3280 movi r2, 128 + 3b22: 9323 ld.w r1, (r3, 0xc) + 3b24: 424d lsli r2, r2, 13 + 3b26: 6848 and r1, r2 + 3b28: 3940 cmpnei r1, 0 + 3b2a: 0bc1 bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 3b2c: 3280 movi r2, 128 + 3b2e: 9323 ld.w r1, (r3, 0xc) + 3b30: 424e lsli r2, r2, 14 + 3b32: 6848 and r1, r2 + 3b34: 3940 cmpnei r1, 0 + 3b36: 0bbb bt 0x3aac // 3aac + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 3b38: 3280 movi r2, 128 + 3b3a: 9323 ld.w r1, (r3, 0xc) + 3b3c: 424f lsli r2, r2, 15 + 3b3e: 6848 and r1, r2 + 3b40: 3940 cmpnei r1, 0 + 3b42: 0bb5 bt 0x3aac // 3aac + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3b44: 3280 movi r2, 128 + 3b46: 9323 ld.w r1, (r3, 0xc) + 3b48: 4256 lsli r2, r2, 22 + 3b4a: 6848 and r1, r2 + 3b4c: 3940 cmpnei r1, 0 + 3b4e: 0baf bt 0x3aac // 3aac + 3b50: 0799 br 0x3a82 // 3a82 + 3b52: 0000 bkpt + 3b54: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00003b58 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 3b58: 1460 nie + 3b5a: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 3b5c: 1078 lrw r3, 0x20000060 // 3bbc + 3b5e: 3101 movi r1, 1 + 3b60: 9360 ld.w r3, (r3, 0x0) + 3b62: 934b ld.w r2, (r3, 0x2c) + 3b64: 6884 and r2, r1 + 3b66: 3a40 cmpnei r2, 0 + 3b68: 0c04 bf 0x3b70 // 3b70 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 3b6a: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 3b6c: 1463 ipop + 3b6e: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 3b70: 934b ld.w r2, (r3, 0x2c) + 3b72: 3102 movi r1, 2 + 3b74: 6884 and r2, r1 + 3b76: 3a40 cmpnei r2, 0 + 3b78: 0bf9 bt 0x3b6a // 3b6a + else if(IFC->MISR&PEP_END_INT) + 3b7a: 934b ld.w r2, (r3, 0x2c) + 3b7c: 3104 movi r1, 4 + 3b7e: 6884 and r2, r1 + 3b80: 3a40 cmpnei r2, 0 + 3b82: 0bf4 bt 0x3b6a // 3b6a + else if(IFC->MISR&PROT_ERR_INT) + 3b84: 3280 movi r2, 128 + 3b86: 932b ld.w r1, (r3, 0x2c) + 3b88: 4245 lsli r2, r2, 5 + 3b8a: 6848 and r1, r2 + 3b8c: 3940 cmpnei r1, 0 + 3b8e: 0c03 bf 0x3b94 // 3b94 + IFC->ICR=OVW_ERR_INT; + 3b90: b34c st.w r2, (r3, 0x30) +} + 3b92: 07ed br 0x3b6c // 3b6c + else if(IFC->MISR&UDEF_ERR_INT) + 3b94: 3280 movi r2, 128 + 3b96: 932b ld.w r1, (r3, 0x2c) + 3b98: 4246 lsli r2, r2, 6 + 3b9a: 6848 and r1, r2 + 3b9c: 3940 cmpnei r1, 0 + 3b9e: 0bf9 bt 0x3b90 // 3b90 + else if(IFC->MISR&ADDR_ERR_INT) + 3ba0: 3280 movi r2, 128 + 3ba2: 932b ld.w r1, (r3, 0x2c) + 3ba4: 4247 lsli r2, r2, 7 + 3ba6: 6848 and r1, r2 + 3ba8: 3940 cmpnei r1, 0 + 3baa: 0bf3 bt 0x3b90 // 3b90 + else if(IFC->MISR&OVW_ERR_INT) + 3bac: 3280 movi r2, 128 + 3bae: 932b ld.w r1, (r3, 0x2c) + 3bb0: 4248 lsli r2, r2, 8 + 3bb2: 6848 and r1, r2 + 3bb4: 3940 cmpnei r1, 0 + 3bb6: 0bed bt 0x3b90 // 3b90 + 3bb8: 07da br 0x3b6c // 3b6c + 3bba: 0000 bkpt + 3bbc: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003bc0 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3bc0: 1460 nie + 3bc2: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3bc4: 1078 lrw r3, 0x20000050 // 3c24 + 3bc6: 3101 movi r1, 1 + 3bc8: 9360 ld.w r3, (r3, 0x0) + 3bca: 9348 ld.w r2, (r3, 0x20) + 3bcc: 6884 and r2, r1 + 3bce: 3a40 cmpnei r2, 0 + 3bd0: 0c04 bf 0x3bd8 // 3bd8 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3bd2: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 3bd4: 1463 ipop + 3bd6: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 3bd8: 9348 ld.w r2, (r3, 0x20) + 3bda: 3102 movi r1, 2 + 3bdc: 6884 and r2, r1 + 3bde: 3a40 cmpnei r2, 0 + 3be0: 0bf9 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3be2: 9348 ld.w r2, (r3, 0x20) + 3be4: 3104 movi r1, 4 + 3be6: 6884 and r2, r1 + 3be8: 3a40 cmpnei r2, 0 + 3bea: 0bf4 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3bec: 9348 ld.w r2, (r3, 0x20) + 3bee: 3110 movi r1, 16 + 3bf0: 6884 and r2, r1 + 3bf2: 3a40 cmpnei r2, 0 + 3bf4: 0bef bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 3bf6: 9348 ld.w r2, (r3, 0x20) + 3bf8: 3120 movi r1, 32 + 3bfa: 6884 and r2, r1 + 3bfc: 3a40 cmpnei r2, 0 + 3bfe: 0bea bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3c00: 9348 ld.w r2, (r3, 0x20) + 3c02: 3140 movi r1, 64 + 3c04: 6884 and r2, r1 + 3c06: 3a40 cmpnei r2, 0 + 3c08: 0be5 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 3c0a: 9348 ld.w r2, (r3, 0x20) + 3c0c: 3180 movi r1, 128 + 3c0e: 6884 and r2, r1 + 3c10: 3a40 cmpnei r2, 0 + 3c12: 0be0 bt 0x3bd2 // 3bd2 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 3c14: 3280 movi r2, 128 + 3c16: 9328 ld.w r1, (r3, 0x20) + 3c18: 4249 lsli r2, r2, 9 + 3c1a: 6848 and r1, r2 + 3c1c: 3940 cmpnei r1, 0 + 3c1e: 0fdb bf 0x3bd4 // 3bd4 + ADC0->CSR = ADC12_SEQ_END0; + 3c20: b347 st.w r2, (r3, 0x1c) +} + 3c22: 07d9 br 0x3bd4 // 3bd4 + 3c24: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003c28 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3c28: 1460 nie + 3c2a: 1462 ipush + 3c2c: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3c2e: 1387 lrw r4, 0x20000020 // 3dc8 + 3c30: 3280 movi r2, 128 + 3c32: 9460 ld.w r3, (r4, 0x0) + 3c34: 60c8 addu r3, r2 + 3c36: 9335 ld.w r1, (r3, 0x54) + 3c38: 3001 movi r0, 1 + 3c3a: 6840 and r1, r0 + 3c3c: 3940 cmpnei r1, 0 + 3c3e: 0c03 bf 0x3c44 // 3c44 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 3c40: b317 st.w r0, (r3, 0x5c) + 3c42: 0424 br 0x3c8a // 3c8a + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3c44: 9335 ld.w r1, (r3, 0x54) + 3c46: 3002 movi r0, 2 + 3c48: 6840 and r1, r0 + 3c4a: 3940 cmpnei r1, 0 + 3c4c: 0bfa bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3c4e: 9335 ld.w r1, (r3, 0x54) + 3c50: 3004 movi r0, 4 + 3c52: 6840 and r1, r0 + 3c54: 3940 cmpnei r1, 0 + 3c56: 0bf5 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3c58: 9335 ld.w r1, (r3, 0x54) + 3c5a: 3008 movi r0, 8 + 3c5c: 6840 and r1, r0 + 3c5e: 3940 cmpnei r1, 0 + 3c60: 0bf0 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3c62: 9335 ld.w r1, (r3, 0x54) + 3c64: 3010 movi r0, 16 + 3c66: 6840 and r1, r0 + 3c68: 3940 cmpnei r1, 0 + 3c6a: 0c1f bf 0x3ca8 // 3ca8 + EPT0->ICR=EPT_CAP_LD0; + 3c6c: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3c6e: 3200 movi r2, 0 + 3c70: 3101 movi r1, 1 + 3c72: 3000 movi r0, 0 + 3c74: e3fffa9c bsr 0x31ac // 31ac + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 3c78: 3201 movi r2, 1 + 3c7a: 3101 movi r1, 1 + 3c7c: 3001 movi r0, 1 + 3c7e: e3fffa97 bsr 0x31ac // 31ac + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3c82: 9460 ld.w r3, (r4, 0x0) + 3c84: 934b ld.w r2, (r3, 0x2c) + 3c86: 1272 lrw r3, 0x20000378 // 3dcc + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3c88: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 3c8a: 9460 ld.w r3, (r4, 0x0) + 3c8c: 3280 movi r2, 128 + 3c8e: 60c8 addu r3, r2 + 3c90: 932b ld.w r1, (r3, 0x2c) + 3c92: 3001 movi r0, 1 + 3c94: 6840 and r1, r0 + 3c96: 3940 cmpnei r1, 0 + 3c98: 0c61 bf 0x3d5a // 3d5a + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 3c9a: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 3c9c: d9ee2001 ld.w r15, (r14, 0x4) + 3ca0: 9880 ld.w r4, (r14, 0x0) + 3ca2: 1402 addi r14, r14, 8 + 3ca4: 1463 ipop + 3ca6: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 3ca8: 9335 ld.w r1, (r3, 0x54) + 3caa: 3020 movi r0, 32 + 3cac: 6840 and r1, r0 + 3cae: 3940 cmpnei r1, 0 + 3cb0: 0c10 bf 0x3cd0 // 3cd0 + EPT0->ICR=EPT_CAP_LD1; + 3cb2: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3cb4: 3200 movi r2, 0 + 3cb6: 3101 movi r1, 1 + 3cb8: 3001 movi r0, 1 + 3cba: e3fffa79 bsr 0x31ac // 31ac + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3cbe: 3201 movi r2, 1 + 3cc0: 3101 movi r1, 1 + 3cc2: 3000 movi r0, 0 + 3cc4: e3fffa74 bsr 0x31ac // 31ac + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3cc8: 9460 ld.w r3, (r4, 0x0) + 3cca: 934c ld.w r2, (r3, 0x30) + 3ccc: 1261 lrw r3, 0x20000374 // 3dd0 + 3cce: 07dd br 0x3c88 // 3c88 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3cd0: 9335 ld.w r1, (r3, 0x54) + 3cd2: 3040 movi r0, 64 + 3cd4: 6840 and r1, r0 + 3cd6: 3940 cmpnei r1, 0 + 3cd8: 0bb4 bt 0x3c40 // 3c40 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 3cda: 9335 ld.w r1, (r3, 0x54) + 3cdc: 6848 and r1, r2 + 3cde: 3940 cmpnei r1, 0 + 3ce0: 0c03 bf 0x3ce6 // 3ce6 + EPT0->ICR=EPT_CDD; + 3ce2: b357 st.w r2, (r3, 0x5c) + 3ce4: 07d3 br 0x3c8a // 3c8a + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 3ce6: 3280 movi r2, 128 + 3ce8: 9335 ld.w r1, (r3, 0x54) + 3cea: 4241 lsli r2, r2, 1 + 3cec: 6848 and r1, r2 + 3cee: 3940 cmpnei r1, 0 + 3cf0: 0bf9 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3cf2: 3280 movi r2, 128 + 3cf4: 9335 ld.w r1, (r3, 0x54) + 3cf6: 4242 lsli r2, r2, 2 + 3cf8: 6848 and r1, r2 + 3cfa: 3940 cmpnei r1, 0 + 3cfc: 0bf3 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3cfe: 3280 movi r2, 128 + 3d00: 9335 ld.w r1, (r3, 0x54) + 3d02: 4243 lsli r2, r2, 3 + 3d04: 6848 and r1, r2 + 3d06: 3940 cmpnei r1, 0 + 3d08: 0bed bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 3d0a: 3280 movi r2, 128 + 3d0c: 9335 ld.w r1, (r3, 0x54) + 3d0e: 4244 lsli r2, r2, 4 + 3d10: 6848 and r1, r2 + 3d12: 3940 cmpnei r1, 0 + 3d14: 0be7 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 3d16: 3280 movi r2, 128 + 3d18: 9335 ld.w r1, (r3, 0x54) + 3d1a: 4245 lsli r2, r2, 5 + 3d1c: 6848 and r1, r2 + 3d1e: 3940 cmpnei r1, 0 + 3d20: 0be1 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3d22: 3280 movi r2, 128 + 3d24: 9335 ld.w r1, (r3, 0x54) + 3d26: 4246 lsli r2, r2, 6 + 3d28: 6848 and r1, r2 + 3d2a: 3940 cmpnei r1, 0 + 3d2c: 0bdb bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3d2e: 3280 movi r2, 128 + 3d30: 9335 ld.w r1, (r3, 0x54) + 3d32: 4247 lsli r2, r2, 7 + 3d34: 6848 and r1, r2 + 3d36: 3940 cmpnei r1, 0 + 3d38: 0bd5 bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 3d3a: 3280 movi r2, 128 + 3d3c: 9335 ld.w r1, (r3, 0x54) + 3d3e: 4248 lsli r2, r2, 8 + 3d40: 6848 and r1, r2 + 3d42: 3940 cmpnei r1, 0 + 3d44: 0bcf bt 0x3ce2 // 3ce2 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 3d46: 3280 movi r2, 128 + 3d48: 9335 ld.w r1, (r3, 0x54) + 3d4a: 4249 lsli r2, r2, 9 + 3d4c: 6848 and r1, r2 + 3d4e: 3940 cmpnei r1, 0 + 3d50: 0f9d bf 0x3c8a // 3c8a + EPT0->ICR=EPT_PEND; + 3d52: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3d54: e3fffd54 bsr 0x37fc // 37fc + 3d58: 0799 br 0x3c8a // 3c8a + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 3d5a: 932b ld.w r1, (r3, 0x2c) + 3d5c: 3002 movi r0, 2 + 3d5e: 6840 and r1, r0 + 3d60: 3940 cmpnei r1, 0 + 3d62: 0b9c bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3d64: 932b ld.w r1, (r3, 0x2c) + 3d66: 3004 movi r0, 4 + 3d68: 6840 and r1, r0 + 3d6a: 3940 cmpnei r1, 0 + 3d6c: 0b97 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3d6e: 932b ld.w r1, (r3, 0x2c) + 3d70: 3008 movi r0, 8 + 3d72: 6840 and r1, r0 + 3d74: 3940 cmpnei r1, 0 + 3d76: 0b92 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 3d78: 932b ld.w r1, (r3, 0x2c) + 3d7a: 3010 movi r0, 16 + 3d7c: 6840 and r1, r0 + 3d7e: 3940 cmpnei r1, 0 + 3d80: 0b8d bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3d82: 932b ld.w r1, (r3, 0x2c) + 3d84: 3020 movi r0, 32 + 3d86: 6840 and r1, r0 + 3d88: 3940 cmpnei r1, 0 + 3d8a: 0b88 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3d8c: 932b ld.w r1, (r3, 0x2c) + 3d8e: 3040 movi r0, 64 + 3d90: 6840 and r1, r0 + 3d92: 3940 cmpnei r1, 0 + 3d94: 0b83 bt 0x3c9a // 3c9a + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 3d96: 932b ld.w r1, (r3, 0x2c) + 3d98: 6848 and r1, r2 + 3d9a: 3940 cmpnei r1, 0 + 3d9c: 0c03 bf 0x3da2 // 3da2 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3d9e: b34d st.w r2, (r3, 0x34) +} + 3da0: 077e br 0x3c9c // 3c9c + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3da2: 3280 movi r2, 128 + 3da4: 932b ld.w r1, (r3, 0x2c) + 3da6: 4241 lsli r2, r2, 1 + 3da8: 6848 and r1, r2 + 3daa: 3940 cmpnei r1, 0 + 3dac: 0bf9 bt 0x3d9e // 3d9e + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3dae: 3280 movi r2, 128 + 3db0: 932b ld.w r1, (r3, 0x2c) + 3db2: 4242 lsli r2, r2, 2 + 3db4: 6848 and r1, r2 + 3db6: 3940 cmpnei r1, 0 + 3db8: 0bf3 bt 0x3d9e // 3d9e + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 3dba: 3280 movi r2, 128 + 3dbc: 932b ld.w r1, (r3, 0x2c) + 3dbe: 4243 lsli r2, r2, 3 + 3dc0: 6848 and r1, r2 + 3dc2: 3940 cmpnei r1, 0 + 3dc4: 0bed bt 0x3d9e // 3d9e + 3dc6: 076b br 0x3c9c // 3c9c + 3dc8: 20000020 .long 0x20000020 + 3dcc: 20000378 .long 0x20000378 + 3dd0: 20000374 .long 0x20000374 + +Disassembly of section .text.WWDTHandler: + +00003dd4 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3dd4: 1460 nie + 3dd6: 1462 ipush + 3dd8: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 3dda: 10ab lrw r5, 0x20000010 // 3e04 + 3ddc: 3401 movi r4, 1 + 3dde: 9560 ld.w r3, (r5, 0x0) + 3de0: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3de2: 30ff movi r0, 255 + 3de4: e3fffae2 bsr 0x33a8 // 33a8 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 3de8: 9540 ld.w r2, (r5, 0x0) + 3dea: 9263 ld.w r3, (r2, 0xc) + 3dec: 68d0 and r3, r4 + 3dee: 3b40 cmpnei r3, 0 + 3df0: 0c02 bf 0x3df4 // 3df4 + { + WWDT->ICR = WWDT_EVI; + 3df2: b285 st.w r4, (r2, 0x14) + } +} + 3df4: d9ee2002 ld.w r15, (r14, 0x8) + 3df8: 98a1 ld.w r5, (r14, 0x4) + 3dfa: 9880 ld.w r4, (r14, 0x0) + 3dfc: 1403 addi r14, r14, 12 + 3dfe: 1463 ipop + 3e00: 1461 nir + 3e02: 0000 bkpt + 3e04: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00003e08 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 3e08: 1460 nie + 3e0a: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3e0c: 107e lrw r3, 0x20000024 // 3e84 + 3e0e: 3101 movi r1, 1 + 3e10: 9360 ld.w r3, (r3, 0x0) + 3e12: 237f addi r3, 128 + 3e14: 9355 ld.w r2, (r3, 0x54) + 3e16: 6884 and r2, r1 + 3e18: 3a40 cmpnei r2, 0 + 3e1a: 0c04 bf 0x3e22 // 3e22 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 3e1c: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 3e1e: 1463 ipop + 3e20: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3e22: 9355 ld.w r2, (r3, 0x54) + 3e24: 3102 movi r1, 2 + 3e26: 6884 and r2, r1 + 3e28: 3a40 cmpnei r2, 0 + 3e2a: 0bf9 bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3e2c: 9355 ld.w r2, (r3, 0x54) + 3e2e: 3110 movi r1, 16 + 3e30: 6884 and r2, r1 + 3e32: 3a40 cmpnei r2, 0 + 3e34: 0bf4 bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 3e36: 9355 ld.w r2, (r3, 0x54) + 3e38: 3120 movi r1, 32 + 3e3a: 6884 and r2, r1 + 3e3c: 3a40 cmpnei r2, 0 + 3e3e: 0bef bt 0x3e1c // 3e1c + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3e40: 3280 movi r2, 128 + 3e42: 9335 ld.w r1, (r3, 0x54) + 3e44: 4241 lsli r2, r2, 1 + 3e46: 6848 and r1, r2 + 3e48: 3940 cmpnei r1, 0 + 3e4a: 0c03 bf 0x3e50 // 3e50 + GPT0->ICR = GPT_INT_PEND; + 3e4c: b357 st.w r2, (r3, 0x5c) +} + 3e4e: 07e8 br 0x3e1e // 3e1e + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3e50: 3280 movi r2, 128 + 3e52: 9335 ld.w r1, (r3, 0x54) + 3e54: 4242 lsli r2, r2, 2 + 3e56: 6848 and r1, r2 + 3e58: 3940 cmpnei r1, 0 + 3e5a: 0bf9 bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3e5c: 3280 movi r2, 128 + 3e5e: 9335 ld.w r1, (r3, 0x54) + 3e60: 4243 lsli r2, r2, 3 + 3e62: 6848 and r1, r2 + 3e64: 3940 cmpnei r1, 0 + 3e66: 0bf3 bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 3e68: 3280 movi r2, 128 + 3e6a: 9335 ld.w r1, (r3, 0x54) + 3e6c: 4244 lsli r2, r2, 4 + 3e6e: 6848 and r1, r2 + 3e70: 3940 cmpnei r1, 0 + 3e72: 0bed bt 0x3e4c // 3e4c + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3e74: 3280 movi r2, 128 + 3e76: 9335 ld.w r1, (r3, 0x54) + 3e78: 4249 lsli r2, r2, 9 + 3e7a: 6848 and r1, r2 + 3e7c: 3940 cmpnei r1, 0 + 3e7e: 0be7 bt 0x3e4c // 3e4c + 3e80: 07cf br 0x3e1e // 3e1e + 3e82: 0000 bkpt + 3e84: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00003e88 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 3e88: 1460 nie + 3e8a: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3e8c: 1079 lrw r3, 0x20000018 // 3ef0 + 3e8e: 3101 movi r1, 1 + 3e90: 9360 ld.w r3, (r3, 0x0) + 3e92: 934a ld.w r2, (r3, 0x28) + 3e94: 6884 and r2, r1 + 3e96: 3a40 cmpnei r2, 0 + 3e98: 0c14 bf 0x3ec0 // 3ec0 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 3e9a: 1057 lrw r2, 0xca53 // 3ef4 + RTC->ICR=ALRA_INT; + 3e9c: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3e9e: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3ea0: 9342 ld.w r2, (r3, 0x8) + 3ea2: 6c84 or r2, r1 + 3ea4: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 3ea6: 3280 movi r2, 128 + 3ea8: 424d lsli r2, r2, 13 + 3eaa: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3eac: 3102 movi r1, 2 + 3eae: 9342 ld.w r2, (r3, 0x8) + 3eb0: 6884 and r2, r1 + 3eb2: 3a40 cmpnei r2, 0 + 3eb4: 0bfd bt 0x3eae // 3eae + RTC->CR &= ~0x1; + 3eb6: 9342 ld.w r2, (r3, 0x8) + 3eb8: 3a80 bclri r2, 0 + 3eba: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 3ebc: 1463 ipop + 3ebe: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3ec0: 934a ld.w r2, (r3, 0x28) + 3ec2: 3102 movi r1, 2 + 3ec4: 6884 and r2, r1 + 3ec6: 3a40 cmpnei r2, 0 + 3ec8: 0c03 bf 0x3ece // 3ece + RTC->ICR=RTC_TRGEV1_INT; + 3eca: b32b st.w r1, (r3, 0x2c) +} + 3ecc: 07f8 br 0x3ebc // 3ebc + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3ece: 934a ld.w r2, (r3, 0x28) + 3ed0: 3104 movi r1, 4 + 3ed2: 6884 and r2, r1 + 3ed4: 3a40 cmpnei r2, 0 + 3ed6: 0bfa bt 0x3eca // 3eca + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 3ed8: 934a ld.w r2, (r3, 0x28) + 3eda: 3108 movi r1, 8 + 3edc: 6884 and r2, r1 + 3ede: 3a40 cmpnei r2, 0 + 3ee0: 0bf5 bt 0x3eca // 3eca + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3ee2: 934a ld.w r2, (r3, 0x28) + 3ee4: 3110 movi r1, 16 + 3ee6: 6884 and r2, r1 + 3ee8: 3a40 cmpnei r2, 0 + 3eea: 0bf0 bt 0x3eca // 3eca + 3eec: 07e8 br 0x3ebc // 3ebc + 3eee: 0000 bkpt + 3ef0: 20000018 .long 0x20000018 + 3ef4: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00003ef8 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 3ef8: 1460 nie + 3efa: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3efc: 106d lrw r3, 0x20000040 // 3f30 + 3efe: 3102 movi r1, 2 + 3f00: 9360 ld.w r3, (r3, 0x0) + 3f02: 9343 ld.w r2, (r3, 0xc) + 3f04: 6884 and r2, r1 + 3f06: 3a40 cmpnei r2, 0 + 3f08: 0c03 bf 0x3f0e // 3f0e + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 3f0a: b323 st.w r1, (r3, 0xc) + } +} + 3f0c: 0410 br 0x3f2c // 3f2c + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f0e: 9343 ld.w r2, (r3, 0xc) + 3f10: 3101 movi r1, 1 + 3f12: 6884 and r2, r1 + 3f14: 3a40 cmpnei r2, 0 + 3f16: 0bfa bt 0x3f0a // 3f0a + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f18: 9343 ld.w r2, (r3, 0xc) + 3f1a: 3108 movi r1, 8 + 3f1c: 6884 and r2, r1 + 3f1e: 3a40 cmpnei r2, 0 + 3f20: 0bf5 bt 0x3f0a // 3f0a + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f22: 9343 ld.w r2, (r3, 0xc) + 3f24: 3104 movi r1, 4 + 3f26: 6884 and r2, r1 + 3f28: 3a40 cmpnei r2, 0 + 3f2a: 0bf0 bt 0x3f0a // 3f0a +} + 3f2c: 1463 ipop + 3f2e: 1461 nir + 3f30: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003f34 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3f34: 1460 nie + 3f36: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f38: 106d lrw r3, 0x2000003c // 3f6c + 3f3a: 3102 movi r1, 2 + 3f3c: 9360 ld.w r3, (r3, 0x0) + 3f3e: 9343 ld.w r2, (r3, 0xc) + 3f40: 6884 and r2, r1 + 3f42: 3a40 cmpnei r2, 0 + 3f44: 0c03 bf 0x3f4a // 3f4a + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + 3f46: b323 st.w r1, (r3, 0xc) + } +} + 3f48: 0410 br 0x3f68 // 3f68 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f4a: 9343 ld.w r2, (r3, 0xc) + 3f4c: 3101 movi r1, 1 + 3f4e: 6884 and r2, r1 + 3f50: 3a40 cmpnei r2, 0 + 3f52: 0bfa bt 0x3f46 // 3f46 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f54: 9343 ld.w r2, (r3, 0xc) + 3f56: 3108 movi r1, 8 + 3f58: 6884 and r2, r1 + 3f5a: 3a40 cmpnei r2, 0 + 3f5c: 0bf5 bt 0x3f46 // 3f46 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f5e: 9343 ld.w r2, (r3, 0xc) + 3f60: 3104 movi r1, 4 + 3f62: 6884 and r2, r1 + 3f64: 3a40 cmpnei r2, 0 + 3f66: 0bf0 bt 0x3f46 // 3f46 +} + 3f68: 1463 ipop + 3f6a: 1461 nir + 3f6c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003f70 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3f70: 1460 nie + 3f72: 1462 ipush + 3f74: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f76: 107f lrw r3, 0x20000038 // 3ff0 + 3f78: 3102 movi r1, 2 + 3f7a: 9360 ld.w r3, (r3, 0x0) + 3f7c: 9343 ld.w r2, (r3, 0xc) + 3f7e: 6884 and r2, r1 + 3f80: 3a40 cmpnei r2, 0 + 3f82: 0c0b bf 0x3f98 // 3f98 + { + UART2->ISR=UART_RX_INT_S; + 3f84: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 3f86: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 3f88: 7400 zextb r0, r0 + 3f8a: e00002e9 bsr 0x455c // 455c + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 3f8e: d9ee2000 ld.w r15, (r14, 0x0) + 3f92: 1401 addi r14, r14, 4 + 3f94: 1463 ipop + 3f96: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f98: 9323 ld.w r1, (r3, 0xc) + 3f9a: 3201 movi r2, 1 + 3f9c: 6848 and r1, r2 + 3f9e: 3940 cmpnei r1, 0 + 3fa0: 0c0d bf 0x3fba // 3fba + UART2->ISR=UART_TX_INT_S; + 3fa2: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3fa4: 1074 lrw r3, 0x200000bc // 3ff4 + 3fa6: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fa8: 1074 lrw r3, 0x200000c0 // 3ff8 + 3faa: 9360 ld.w r3, (r3, 0x0) + 3fac: 3b41 cmpnei r3, 1 + 3fae: 0bf0 bt 0x3f8e // 3f8e + RS485_Comm_Start ++; + 3fb0: 1053 lrw r2, 0x200000c4 // 3ffc + RS485_Comm_End ++; + 3fb2: 9260 ld.w r3, (r2, 0x0) + 3fb4: 2300 addi r3, 1 + 3fb6: b260 st.w r3, (r2, 0x0) +} + 3fb8: 07eb br 0x3f8e // 3f8e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3fba: 9343 ld.w r2, (r3, 0xc) + 3fbc: 3108 movi r1, 8 + 3fbe: 6884 and r2, r1 + 3fc0: 3a40 cmpnei r2, 0 + 3fc2: 0c03 bf 0x3fc8 // 3fc8 + UART2->ISR=UART_TX_IOV_S; + 3fc4: b323 st.w r1, (r3, 0xc) + 3fc6: 07e4 br 0x3f8e // 3f8e + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3fc8: 9343 ld.w r2, (r3, 0xc) + 3fca: 3104 movi r1, 4 + 3fcc: 6884 and r2, r1 + 3fce: 3a40 cmpnei r2, 0 + 3fd0: 0bfa bt 0x3fc4 // 3fc4 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3fd2: 3180 movi r1, 128 + 3fd4: 9303 ld.w r0, (r3, 0xc) + 3fd6: 412c lsli r1, r1, 12 + 3fd8: 6804 and r0, r1 + 3fda: 3840 cmpnei r0, 0 + 3fdc: 0fd9 bf 0x3f8e // 3f8e + UART2->ISR=UART_TX_DONE_S; + 3fde: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3fe0: 1065 lrw r3, 0x200000bc // 3ff4 + 3fe2: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fe4: 1065 lrw r3, 0x200000c0 // 3ff8 + 3fe6: 9360 ld.w r3, (r3, 0x0) + 3fe8: 3b41 cmpnei r3, 1 + 3fea: 0bd2 bt 0x3f8e // 3f8e + RS485_Comm_End ++; + 3fec: 1045 lrw r2, 0x200000c8 // 4000 + 3fee: 07e2 br 0x3fb2 // 3fb2 + 3ff0: 20000038 .long 0x20000038 + 3ff4: 200000bc .long 0x200000bc + 3ff8: 200000c0 .long 0x200000c0 + 3ffc: 200000c4 .long 0x200000c4 + 4000: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +00004004 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 4004: 1460 nie + 4006: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 4008: 1178 lrw r3, 0x20000034 // 40e8 + 400a: 3101 movi r1, 1 + 400c: 9360 ld.w r3, (r3, 0x0) + 400e: 9347 ld.w r2, (r3, 0x1c) + 4010: 6884 and r2, r1 + 4012: 3a40 cmpnei r2, 0 + 4014: 0c03 bf 0x401a // 401a + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 4016: b328 st.w r1, (r3, 0x20) + } + +} + 4018: 0407 br 0x4026 // 4026 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 401a: 9347 ld.w r2, (r3, 0x1c) + 401c: 3002 movi r0, 2 + 401e: 6880 and r2, r0 + 4020: 3a40 cmpnei r2, 0 + 4022: 0c04 bf 0x402a // 402a + SPI0->ICR = SPI_RTIM; + 4024: b308 st.w r0, (r3, 0x20) +} + 4026: 1463 ipop + 4028: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 402a: 9347 ld.w r2, (r3, 0x1c) + 402c: 3004 movi r0, 4 + 402e: 6880 and r2, r0 + 4030: 3a40 cmpnei r2, 0 + 4032: 0c55 bf 0x40dc // 40dc + SPI0->ICR = SPI_RXIM; + 4034: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 4036: 9302 ld.w r0, (r3, 0x8) + 4038: 32aa movi r2, 170 + 403a: 6482 cmpne r0, r2 + 403c: 083e bt 0x40b8 // 40b8 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 403e: 3102 movi r1, 2 + 4040: 9343 ld.w r2, (r3, 0xc) + 4042: 6884 and r2, r1 + 4044: 3a40 cmpnei r2, 0 + 4046: 0ffd bf 0x4040 // 4040 + SPI0->DR = 0x11; + 4048: 3211 movi r2, 17 + 404a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 404c: 3110 movi r1, 16 + 404e: 9343 ld.w r2, (r3, 0xc) + 4050: 6884 and r2, r1 + 4052: 3a40 cmpnei r2, 0 + 4054: 0bfd bt 0x404e // 404e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4056: 3102 movi r1, 2 + 4058: 9343 ld.w r2, (r3, 0xc) + 405a: 6884 and r2, r1 + 405c: 3a40 cmpnei r2, 0 + 405e: 0ffd bf 0x4058 // 4058 + SPI0->DR = 0x12; + 4060: 3212 movi r2, 18 + 4062: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4064: 3110 movi r1, 16 + 4066: 9343 ld.w r2, (r3, 0xc) + 4068: 6884 and r2, r1 + 406a: 3a40 cmpnei r2, 0 + 406c: 0bfd bt 0x4066 // 4066 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 406e: 3102 movi r1, 2 + 4070: 9343 ld.w r2, (r3, 0xc) + 4072: 6884 and r2, r1 + 4074: 3a40 cmpnei r2, 0 + 4076: 0ffd bf 0x4070 // 4070 + SPI0->DR = 0x13; + 4078: 3213 movi r2, 19 + 407a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 407c: 3110 movi r1, 16 + 407e: 9343 ld.w r2, (r3, 0xc) + 4080: 6884 and r2, r1 + 4082: 3a40 cmpnei r2, 0 + 4084: 0bfd bt 0x407e // 407e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4086: 3102 movi r1, 2 + 4088: 9343 ld.w r2, (r3, 0xc) + 408a: 6884 and r2, r1 + 408c: 3a40 cmpnei r2, 0 + 408e: 0ffd bf 0x4088 // 4088 + SPI0->DR = 0x14; + 4090: 3214 movi r2, 20 + 4092: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4094: 3110 movi r1, 16 + 4096: 9343 ld.w r2, (r3, 0xc) + 4098: 6884 and r2, r1 + 409a: 3a40 cmpnei r2, 0 + 409c: 0bfd bt 0x4096 // 4096 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 409e: 3102 movi r1, 2 + 40a0: 9343 ld.w r2, (r3, 0xc) + 40a2: 6884 and r2, r1 + 40a4: 3a40 cmpnei r2, 0 + 40a6: 0ffd bf 0x40a0 // 40a0 + SPI0->DR = 0x15; + 40a8: 3215 movi r2, 21 + 40aa: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40ac: 3110 movi r1, 16 + 40ae: 9343 ld.w r2, (r3, 0xc) + 40b0: 6884 and r2, r1 + 40b2: 3a40 cmpnei r2, 0 + 40b4: 0bfd bt 0x40ae // 40ae + 40b6: 07b8 br 0x4026 // 4026 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 40b8: 9343 ld.w r2, (r3, 0xc) + 40ba: 6884 and r2, r1 + 40bc: 3a40 cmpnei r2, 0 + 40be: 0bb4 bt 0x4026 // 4026 + SPI0->DR=0x0; //FIFO=0 + 40c0: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40c2: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 40c4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40c6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40c8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40ca: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40cc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40ce: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d0: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40d2: 9343 ld.w r2, (r3, 0xc) + 40d4: 6884 and r2, r1 + 40d6: 3a40 cmpnei r2, 0 + 40d8: 0bfd bt 0x40d2 // 40d2 + 40da: 07a6 br 0x4026 // 4026 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 40dc: 9347 ld.w r2, (r3, 0x1c) + 40de: 3108 movi r1, 8 + 40e0: 6884 and r2, r1 + 40e2: 3a40 cmpnei r2, 0 + 40e4: 0b99 bt 0x4016 // 4016 + 40e6: 07a0 br 0x4026 // 4026 + 40e8: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000040ec : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 40ec: 1460 nie + 40ee: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 40f0: 1073 lrw r3, 0x2000002c // 413c + 40f2: 3104 movi r1, 4 + 40f4: 9360 ld.w r3, (r3, 0x0) + 40f6: 9349 ld.w r2, (r3, 0x24) + 40f8: 6884 and r2, r1 + 40fa: 3a40 cmpnei r2, 0 + 40fc: 0c02 bf 0x4100 // 4100 + { + SIO0->ICR=0X04; + 40fe: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 4100: 9349 ld.w r2, (r3, 0x24) + 4102: 3101 movi r1, 1 + 4104: 6884 and r2, r1 + 4106: 3a40 cmpnei r2, 0 + 4108: 0c02 bf 0x410c // 410c + { + SIO0->ICR=0X01; + 410a: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 410c: 9349 ld.w r2, (r3, 0x24) + 410e: 3102 movi r1, 2 + 4110: 6884 and r2, r1 + 4112: 3a40 cmpnei r2, 0 + 4114: 0c03 bf 0x411a // 411a + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 4116: b32b st.w r1, (r3, 0x2c) + } +} + 4118: 0410 br 0x4138 // 4138 + else if(SIO0->MISR&0X08) //RXBUFFULL + 411a: 9349 ld.w r2, (r3, 0x24) + 411c: 3108 movi r1, 8 + 411e: 6884 and r2, r1 + 4120: 3a40 cmpnei r2, 0 + 4122: 0bfa bt 0x4116 // 4116 + else if(SIO0->MISR&0X010) //BREAK + 4124: 9349 ld.w r2, (r3, 0x24) + 4126: 3110 movi r1, 16 + 4128: 6884 and r2, r1 + 412a: 3a40 cmpnei r2, 0 + 412c: 0bf5 bt 0x4116 // 4116 + else if(SIO0->MISR&0X020) //TIMEOUT + 412e: 9349 ld.w r2, (r3, 0x24) + 4130: 3120 movi r1, 32 + 4132: 6884 and r2, r1 + 4134: 3a40 cmpnei r2, 0 + 4136: 0bf0 bt 0x4116 // 4116 +} + 4138: 1463 ipop + 413a: 1461 nir + 413c: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00004140 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 4140: 1460 nie + 4142: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 4144: 106a lrw r3, 0x2000005c // 416c + 4146: 3101 movi r1, 1 + 4148: 9360 ld.w r3, (r3, 0x0) + 414a: 237f addi r3, 128 + 414c: 934c ld.w r2, (r3, 0x30) + 414e: 6884 and r2, r1 + 4150: 3a40 cmpnei r2, 0 + 4152: 0c04 bf 0x415a // 415a + { + SYSCON->EXICR = EXI_PIN0; + 4154: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 4156: 1463 ipop + 4158: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 415a: 3280 movi r2, 128 + 415c: 932c ld.w r1, (r3, 0x30) + 415e: 4249 lsli r2, r2, 9 + 4160: 6848 and r1, r2 + 4162: 3940 cmpnei r1, 0 + 4164: 0ff9 bf 0x4156 // 4156 + SYSCON->EXICR = EXI_PIN16; + 4166: b34b st.w r2, (r3, 0x2c) +} + 4168: 07f7 br 0x4156 // 4156 + 416a: 0000 bkpt + 416c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00004170 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 4170: 1460 nie + 4172: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 4174: 106a lrw r3, 0x2000005c // 419c + 4176: 3102 movi r1, 2 + 4178: 9360 ld.w r3, (r3, 0x0) + 417a: 237f addi r3, 128 + 417c: 934c ld.w r2, (r3, 0x30) + 417e: 6884 and r2, r1 + 4180: 3a40 cmpnei r2, 0 + 4182: 0c04 bf 0x418a // 418a + { + SYSCON->EXICR = EXI_PIN1; + 4184: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 4186: 1463 ipop + 4188: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 418a: 3280 movi r2, 128 + 418c: 932c ld.w r1, (r3, 0x30) + 418e: 424a lsli r2, r2, 10 + 4190: 6848 and r1, r2 + 4192: 3940 cmpnei r1, 0 + 4194: 0ff9 bf 0x4186 // 4186 + SYSCON->EXICR = EXI_PIN17; + 4196: b34b st.w r2, (r3, 0x2c) +} + 4198: 07f7 br 0x4186 // 4186 + 419a: 0000 bkpt + 419c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000041a0 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 41a0: 1460 nie + 41a2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 41a4: 1070 lrw r3, 0x2000005c // 41e4 + 41a6: 3104 movi r1, 4 + 41a8: 9360 ld.w r3, (r3, 0x0) + 41aa: 237f addi r3, 128 + 41ac: 934c ld.w r2, (r3, 0x30) + 41ae: 6884 and r2, r1 + 41b0: 3a40 cmpnei r2, 0 + 41b2: 0c04 bf 0x41ba // 41ba + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 41b4: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 41b6: 1463 ipop + 41b8: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 41ba: 934c ld.w r2, (r3, 0x30) + 41bc: 3108 movi r1, 8 + 41be: 6884 and r2, r1 + 41c0: 3a40 cmpnei r2, 0 + 41c2: 0bf9 bt 0x41b4 // 41b4 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 41c4: 3280 movi r2, 128 + 41c6: 932c ld.w r1, (r3, 0x30) + 41c8: 424b lsli r2, r2, 11 + 41ca: 6848 and r1, r2 + 41cc: 3940 cmpnei r1, 0 + 41ce: 0c03 bf 0x41d4 // 41d4 + SYSCON->EXICR = EXI_PIN19; + 41d0: b34b st.w r2, (r3, 0x2c) +} + 41d2: 07f2 br 0x41b6 // 41b6 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 41d4: 3280 movi r2, 128 + 41d6: 932c ld.w r1, (r3, 0x30) + 41d8: 424c lsli r2, r2, 12 + 41da: 6848 and r1, r2 + 41dc: 3940 cmpnei r1, 0 + 41de: 0bf9 bt 0x41d0 // 41d0 + 41e0: 07eb br 0x41b6 // 41b6 + 41e2: 0000 bkpt + 41e4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000041e8 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 41e8: 1460 nie + 41ea: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 41ec: 1075 lrw r3, 0x2000005c // 4240 + 41ee: 3280 movi r2, 128 + 41f0: 9360 ld.w r3, (r3, 0x0) + 41f2: 60c8 addu r3, r2 + 41f4: 932c ld.w r1, (r3, 0x30) + 41f6: 3010 movi r0, 16 + 41f8: 6840 and r1, r0 + 41fa: 3940 cmpnei r1, 0 + 41fc: 0c04 bf 0x4204 // 4204 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 41fe: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 4200: 1463 ipop + 4202: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 4204: 932c ld.w r1, (r3, 0x30) + 4206: 3020 movi r0, 32 + 4208: 6840 and r1, r0 + 420a: 3940 cmpnei r1, 0 + 420c: 0bf9 bt 0x41fe // 41fe + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 420e: 932c ld.w r1, (r3, 0x30) + 4210: 3040 movi r0, 64 + 4212: 6840 and r1, r0 + 4214: 3940 cmpnei r1, 0 + 4216: 0bf4 bt 0x41fe // 41fe + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 4218: 932c ld.w r1, (r3, 0x30) + 421a: 6848 and r1, r2 + 421c: 3940 cmpnei r1, 0 + 421e: 0c03 bf 0x4224 // 4224 + SYSCON->EXICR = EXI_PIN9; + 4220: b34b st.w r2, (r3, 0x2c) +} + 4222: 07ef br 0x4200 // 4200 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 4224: 3280 movi r2, 128 + 4226: 932c ld.w r1, (r3, 0x30) + 4228: 4241 lsli r2, r2, 1 + 422a: 6848 and r1, r2 + 422c: 3940 cmpnei r1, 0 + 422e: 0bf9 bt 0x4220 // 4220 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 4230: 3280 movi r2, 128 + 4232: 932c ld.w r1, (r3, 0x30) + 4234: 4242 lsli r2, r2, 2 + 4236: 6848 and r1, r2 + 4238: 3940 cmpnei r1, 0 + 423a: 0bf3 bt 0x4220 // 4220 + 423c: 07e2 br 0x4200 // 4200 + 423e: 0000 bkpt + 4240: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00004244 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 4244: 1460 nie + 4246: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 4248: 1076 lrw r3, 0x2000005c // 42a0 + 424a: 3280 movi r2, 128 + 424c: 9360 ld.w r3, (r3, 0x0) + 424e: 237f addi r3, 128 + 4250: 932c ld.w r1, (r3, 0x30) + 4252: 4243 lsli r2, r2, 3 + 4254: 6848 and r1, r2 + 4256: 3940 cmpnei r1, 0 + 4258: 0c03 bf 0x425e // 425e + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 425a: b34b st.w r2, (r3, 0x2c) + } +} + 425c: 041f br 0x429a // 429a + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 425e: 3280 movi r2, 128 + 4260: 932c ld.w r1, (r3, 0x30) + 4262: 4244 lsli r2, r2, 4 + 4264: 6848 and r1, r2 + 4266: 3940 cmpnei r1, 0 + 4268: 0bf9 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 426a: 3280 movi r2, 128 + 426c: 932c ld.w r1, (r3, 0x30) + 426e: 4245 lsli r2, r2, 5 + 4270: 6848 and r1, r2 + 4272: 3940 cmpnei r1, 0 + 4274: 0bf3 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 4276: 3280 movi r2, 128 + 4278: 932c ld.w r1, (r3, 0x30) + 427a: 4246 lsli r2, r2, 6 + 427c: 6848 and r1, r2 + 427e: 3940 cmpnei r1, 0 + 4280: 0bed bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 4282: 3280 movi r2, 128 + 4284: 932c ld.w r1, (r3, 0x30) + 4286: 4247 lsli r2, r2, 7 + 4288: 6848 and r1, r2 + 428a: 3940 cmpnei r1, 0 + 428c: 0be7 bt 0x425a // 425a + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 428e: 3280 movi r2, 128 + 4290: 932c ld.w r1, (r3, 0x30) + 4292: 4248 lsli r2, r2, 8 + 4294: 6848 and r1, r2 + 4296: 3940 cmpnei r1, 0 + 4298: 0be1 bt 0x425a // 425a +} + 429a: 1463 ipop + 429c: 1461 nir + 429e: 0000 bkpt + 42a0: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000042a4 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 42a4: 1460 nie + 42a6: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 42a8: 106b lrw r3, 0x20000014 // 42d4 + 42aa: 3101 movi r1, 1 + 42ac: 9360 ld.w r3, (r3, 0x0) + 42ae: 934e ld.w r2, (r3, 0x38) + 42b0: 6884 and r2, r1 + 42b2: 3a40 cmpnei r2, 0 + 42b4: 0c03 bf 0x42ba // 42ba + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 42b6: b330 st.w r1, (r3, 0x40) + } +} + 42b8: 040b br 0x42ce // 42ce + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 42ba: 934e ld.w r2, (r3, 0x38) + 42bc: 3102 movi r1, 2 + 42be: 6884 and r2, r1 + 42c0: 3a40 cmpnei r2, 0 + 42c2: 0bfa bt 0x42b6 // 42b6 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 42c4: 934e ld.w r2, (r3, 0x38) + 42c6: 3104 movi r1, 4 + 42c8: 6884 and r2, r1 + 42ca: 3a40 cmpnei r2, 0 + 42cc: 0bf5 bt 0x42b6 // 42b6 +} + 42ce: 1463 ipop + 42d0: 1461 nir + 42d2: 0000 bkpt + 42d4: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +000042d8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 42d8: 1460 nie + 42da: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 42dc: 1071 lrw r3, 0x2000000c // 4320 + 42de: 3101 movi r1, 1 + 42e0: 9360 ld.w r3, (r3, 0x0) + 42e2: 934c ld.w r2, (r3, 0x30) + 42e4: 6884 and r2, r1 + 42e6: 3a40 cmpnei r2, 0 + 42e8: 0c0a bf 0x42fc // 42fc + { + BT0->ICR = BT_PEND; + 42ea: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 42ec: 9341 ld.w r2, (r3, 0x4) + 42ee: 3a86 bclri r2, 6 + 42f0: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 42f2: 9340 ld.w r2, (r3, 0x0) + 42f4: 3200 movi r2, 0 + 42f6: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 42f8: 1463 ipop + 42fa: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 42fc: 934c ld.w r2, (r3, 0x30) + 42fe: 3102 movi r1, 2 + 4300: 6884 and r2, r1 + 4302: 3a40 cmpnei r2, 0 + 4304: 0c03 bf 0x430a // 430a + BT0->ICR = BT_EVTRG; + 4306: b32d st.w r1, (r3, 0x34) +} + 4308: 07f8 br 0x42f8 // 42f8 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 430a: 934c ld.w r2, (r3, 0x30) + 430c: 3104 movi r1, 4 + 430e: 6884 and r2, r1 + 4310: 3a40 cmpnei r2, 0 + 4312: 0bfa bt 0x4306 // 4306 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 4314: 934c ld.w r2, (r3, 0x30) + 4316: 3108 movi r1, 8 + 4318: 6884 and r2, r1 + 431a: 3a40 cmpnei r2, 0 + 431c: 0bf5 bt 0x4306 // 4306 + 431e: 07ed br 0x42f8 // 42f8 + 4320: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00004324 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 4324: 1460 nie + 4326: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 4328: 1076 lrw r3, 0x20000008 // 4380 + 432a: 3101 movi r1, 1 + 432c: 9360 ld.w r3, (r3, 0x0) + 432e: 934c ld.w r2, (r3, 0x30) + 4330: 6884 and r2, r1 + 4332: 3a40 cmpnei r2, 0 + 4334: 0c03 bf 0x433a // 433a + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 4336: b32d st.w r1, (r3, 0x34) + } +} + 4338: 0416 br 0x4364 // 4364 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 433a: 934c ld.w r2, (r3, 0x30) + 433c: 3102 movi r1, 2 + 433e: 6884 and r2, r1 + 4340: 3a40 cmpnei r2, 0 + 4342: 0c13 bf 0x4368 // 4368 + BT1->ICR = BT_CMP; + 4344: b32d st.w r1, (r3, 0x34) + NUM++; + 4346: 1070 lrw r3, 0x200000b0 // 4384 + 4348: 8340 ld.b r2, (r3, 0x0) + 434a: 2200 addi r2, 1 + 434c: 7488 zextb r2, r2 + SysTick_100us++; + 434e: 9321 ld.w r1, (r3, 0x4) + 4350: 2100 addi r1, 1 + if(NUM >= 10){ + 4352: 3a09 cmphsi r2, 10 + NUM++; + 4354: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 4356: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 4358: 0c06 bf 0x4364 // 4364 + NUM = 0; + 435a: 3200 movi r2, 0 + 435c: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 435e: 9342 ld.w r2, (r3, 0x8) + 4360: 2200 addi r2, 1 + 4362: b342 st.w r2, (r3, 0x8) +} + 4364: 1463 ipop + 4366: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 4368: 934c ld.w r2, (r3, 0x30) + 436a: 3104 movi r1, 4 + 436c: 6884 and r2, r1 + 436e: 3a40 cmpnei r2, 0 + 4370: 0be3 bt 0x4336 // 4336 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 4372: 934c ld.w r2, (r3, 0x30) + 4374: 3108 movi r1, 8 + 4376: 6884 and r2, r1 + 4378: 3a40 cmpnei r2, 0 + 437a: 0bde bt 0x4336 // 4336 + 437c: 07f4 br 0x4364 // 4364 + 437e: 0000 bkpt + 4380: 20000008 .long 0x20000008 + 4384: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +00004388 : + 4388: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +0000438a : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 438a: 1460 nie + 438c: 1462 ipush + // ISR content ... + +} + 438e: 1463 ipop + 4390: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00004392 : + 4392: 1460 nie + 4394: 1462 ipush + 4396: 1463 ipop + 4398: 1461 nir + +Disassembly of section .text.Trap2Handler: + +0000439a : + 439a: 1460 nie + 439c: 1462 ipush + 439e: 1463 ipop + 43a0: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000043a2 : + 43a2: 1460 nie + 43a4: 1462 ipush + 43a6: 1463 ipop + 43a8: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000043aa : + 43aa: 1460 nie + 43ac: 1462 ipush + 43ae: 1463 ipop + 43b0: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000043b2 : + 43b2: 1460 nie + 43b4: 1462 ipush + 43b6: 1463 ipop + 43b8: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000043ba : + 43ba: 1460 nie + 43bc: 1462 ipush + 43be: 1463 ipop + 43c0: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000043c2 : + 43c2: 1460 nie + 43c4: 1462 ipush + 43c6: 1463 ipop + 43c8: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000043ca : + 43ca: 1460 nie + 43cc: 1462 ipush + 43ce: 1463 ipop + 43d0: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000043d2 : + 43d2: 1460 nie + 43d4: 1462 ipush + 43d6: 1463 ipop + 43d8: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +000043da : + 43da: 1460 nie + 43dc: 1462 ipush + 43de: 1463 ipop + 43e0: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +000043e2 : + 43e2: 1460 nie + 43e4: 1462 ipush + 43e6: 1463 ipop + 43e8: 1461 nir + +Disassembly of section .text.__divsi3: + +000043ec <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 43ec: 14c1 push r4 + int PSR; + __asm volatile( + 43ee: c0006023 mfcr r3, cr<0, 0> + 43f2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 43f6: 1046 lrw r2, 0x20000000 // 440c <__divsi3+0x20> + 43f8: 3400 movi r4, 0 + 43fa: 9240 ld.w r2, (r2, 0x0) + 43fc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 43fe: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4400: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4402: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4404: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4408: 9202 ld.w r0, (r2, 0x8) +} + 440a: 1481 pop r4 + 440c: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00004410 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 4410: 14c1 push r4 + int PSR; + __asm volatile( + 4412: c0006023 mfcr r3, cr<0, 0> + 4416: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 441a: 1046 lrw r2, 0x20000000 // 4430 <__udivsi3+0x20> + 441c: 3401 movi r4, 1 + 441e: 9240 ld.w r2, (r2, 0x0) + 4420: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4422: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4424: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4426: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4428: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 442c: 9202 ld.w r0, (r2, 0x8) +} + 442e: 1481 pop r4 + 4430: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00004434 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 4434: 14c1 push r4 + int PSR; + __asm volatile( + 4436: c0006023 mfcr r3, cr<0, 0> + 443a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 443e: 1046 lrw r2, 0x20000000 // 4454 <__modsi3+0x20> + 4440: 3400 movi r4, 0 + 4442: 9240 ld.w r2, (r2, 0x0) + 4444: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4446: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4448: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 444a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 444c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4450: 9203 ld.w r0, (r2, 0xc) +} + 4452: 1481 pop r4 + 4454: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00004458 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 4458: 14c1 push r4 + int PSR; + __asm volatile( + 445a: c0006023 mfcr r3, cr<0, 0> + 445e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 4462: 1046 lrw r2, 0x20000000 // 4478 <__umodsi3+0x20> + 4464: 3401 movi r4, 1 + 4466: 9240 ld.w r2, (r2, 0x0) + 4468: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 446a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 446c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 446e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4470: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4474: 9203 ld.w r0, (r2, 0xc) +} + 4476: 1481 pop r4 + 4478: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +0000447c : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 447c: c1807420 psrset ee, ie +} + 4480: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00004484 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4484: 14d1 push r4, r15 + switch(uart_id){ + 4486: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4488: 6d07 mov r4, r1 + switch(uart_id){ + 448a: 0c1a bf 0x44be // 44be + 448c: 3840 cmpnei r0, 0 + 448e: 0c04 bf 0x4496 // 4496 + 4490: 3842 cmpnei r0, 2 + 4492: 0c2a bf 0x44e6 // 44e6 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 4494: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 4496: e3fff8dd bsr 0x3650 // 3650 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 449a: 118a lrw r4, 0x20000040 // 4540 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 449c: 3100 movi r1, 0 + 449e: 3000 movi r0, 0 + 44a0: e3fff918 bsr 0x36d0 // 36d0 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 44a4: 9400 ld.w r0, (r4, 0x0) + 44a6: 3200 movi r2, 0 + 44a8: 1127 lrw r1, 0x2710 // 4544 + 44aa: e3fff989 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 44ae: 9400 ld.w r0, (r4, 0x0) + 44b0: 3200 movi r2, 0 + 44b2: 1125 lrw r1, 0x2710 // 4544 + 44b4: e3fff98c bsr 0x37cc // 37cc + UART0_Int_Enable(); + 44b8: e3fff8f0 bsr 0x3698 // 3698 + break; + 44bc: 07ec br 0x4494 // 4494 + UART1_DeInit(); //clear all UART Register + 44be: e3fff8d5 bsr 0x3668 // 3668 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 44c2: 3102 movi r1, 2 + 44c4: 3001 movi r0, 1 + 44c6: e3fff905 bsr 0x36d0 // 36d0 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 44ca: 1180 lrw r4, 0x2000003c // 4548 + 44cc: 31d0 movi r1, 208 + 44ce: 9400 ld.w r0, (r4, 0x0) + 44d0: 3200 movi r2, 0 + 44d2: 4121 lsli r1, r1, 1 + 44d4: e3fff974 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44d8: 31d0 movi r1, 208 + 44da: 9400 ld.w r0, (r4, 0x0) + 44dc: 3200 movi r2, 0 + 44de: 4121 lsli r1, r1, 1 + 44e0: e3fff976 bsr 0x37cc // 37cc + break; + 44e4: 07d8 br 0x4494 // 4494 + UART2_DeInit(); //clear all UART Register + 44e6: e3fff8cd bsr 0x3680 // 3680 + UART_IO_Init(IO_UART2,0); //use PA0.13->RXD1, PB0.0->TXD1 + 44ea: 3100 movi r1, 0 + 44ec: 3002 movi r0, 2 + 44ee: e3fff8f1 bsr 0x36d0 // 36d0 + UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44f2: 1077 lrw r3, 0x20000038 // 454c + 44f4: 31d0 movi r1, 208 + 44f6: 9300 ld.w r0, (r3, 0x0) + 44f8: 3200 movi r2, 0 + 44fa: 4121 lsli r1, r1, 1 + 44fc: e3fff968 bsr 0x37cc // 37cc + UART2_Int_Enable(); + 4500: e3fff8da bsr 0x36b4 // 36b4 + memset(&g_uart,0,sizeof(UART_t)); + 4504: 3273 movi r2, 115 + 4506: 3100 movi r1, 0 + 4508: 1012 lrw r0, 0x200003a4 // 4550 + 450a: e3ffea89 bsr 0x1a1c // 1a1c <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 450e: 1072 lrw r3, 0x2000040b // 4554 + 4510: 3203 movi r2, 3 + 4512: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 4514: 4c48 lsri r2, r4, 8 + 4516: a388 st.b r4, (r3, 0x8) + 4518: a349 st.b r2, (r3, 0x9) + 451a: 4c50 lsri r2, r4, 16 + 451c: 4c98 lsri r4, r4, 24 + 451e: a38b st.b r4, (r3, 0xb) + 4520: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 4522: 3103 movi r1, 3 + 4524: 108d lrw r4, 0x20000048 // 4558 + 4526: 3200 movi r2, 0 + 4528: 9400 ld.w r0, (r4, 0x0) + 452a: e3fff691 bsr 0x324c // 324c + GPIO_DriveStrength_EN(GPIOB0,3); + 452e: 9400 ld.w r0, (r4, 0x0) + 4530: 3103 movi r1, 3 + 4532: e3fff707 bsr 0x3340 // 3340 + GPIO_Write_Low(GPIOB0,3); + 4536: 9400 ld.w r0, (r4, 0x0) + 4538: 3103 movi r1, 3 + 453a: e3fff70e bsr 0x3356 // 3356 +} + 453e: 07ab br 0x4494 // 4494 + 4540: 20000040 .long 0x20000040 + 4544: 00002710 .long 0x00002710 + 4548: 2000003c .long 0x2000003c + 454c: 20000038 .long 0x20000038 + 4550: 200003a4 .long 0x200003a4 + 4554: 2000040b .long 0x2000040b + 4558: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +0000455c : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 455c: 14c2 push r4-r5 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 455e: 1075 lrw r3, 0x20000404 // 45b0 + 4560: 8346 ld.b r2, (r3, 0x6) + 4562: 8325 ld.b r1, (r3, 0x5) + 4564: 4248 lsli r2, r2, 8 + 4566: 6c84 or r2, r1 + 4568: 3162 movi r1, 98 + 456a: 10b3 lrw r5, 0x200003a4 // 45b4 + 456c: 3440 movi r4, 64 + 456e: 6485 cmplt r1, r2 + 4570: 6114 addu r4, r5 + 4572: 0c06 bf 0x457e // 457e + 4574: 3225 movi r2, 37 + 4576: 6090 addu r2, r4 + 4578: 3100 movi r1, 0 + 457a: a220 st.b r1, (r2, 0x0) + 457c: a221 st.b r1, (r2, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 457e: 8346 ld.b r2, (r3, 0x6) + 4580: 8325 ld.b r1, (r3, 0x5) + 4582: 4248 lsli r2, r2, 8 + 4584: 6c84 or r2, r1 + 4586: 5a22 addi r1, r2, 1 + 4588: 6094 addu r2, r5 + 458a: a200 st.b r0, (r2, 0x0) + 458c: 2424 addi r4, 37 + 458e: 7445 zexth r1, r1 + + g_uart.RecvIdleTiming = SysTick_1ms; + 4590: 104a lrw r2, 0x200000b8 // 45b8 + 4592: 9240 ld.w r2, (r2, 0x0) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 4594: a420 st.b r1, (r4, 0x0) + 4596: 4928 lsri r1, r1, 8 + g_uart.RecvIdleTiming = SysTick_1ms; + 4598: 4a08 lsri r0, r2, 8 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 459a: a421 st.b r1, (r4, 0x1) + g_uart.RecvIdleTiming = SysTick_1ms; + 459c: 1028 lrw r1, 0x2000040f // 45bc + 459e: a140 st.b r2, (r1, 0x0) + 45a0: a101 st.b r0, (r1, 0x1) + 45a2: 4a10 lsri r0, r2, 16 + 45a4: 4a58 lsri r2, r2, 24 + 45a6: a143 st.b r2, (r1, 0x3) + g_uart.Receiving = 0x01; + 45a8: 3201 movi r2, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 45aa: a102 st.b r0, (r1, 0x2) + g_uart.Receiving = 0x01; + 45ac: a344 st.b r2, (r3, 0x4) +} + 45ae: 1482 pop r4-r5 + 45b0: 20000404 .long 0x20000404 + 45b4: 200003a4 .long 0x200003a4 + 45b8: 200000b8 .long 0x200000b8 + 45bc: 2000040f .long 0x2000040f + +Disassembly of section .text.Dbg_Println: + +000045c0 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 45c0: 1423 subi r14, r14, 12 + 45c2: b862 st.w r3, (r14, 0x8) + 45c4: b841 st.w r2, (r14, 0x4) + 45c6: b820 st.w r1, (r14, 0x0) + 45c8: 14d2 push r4-r5, r15 + 45ca: 1422 subi r14, r14, 8 + 45cc: 9865 ld.w r3, (r14, 0x14) + 45ce: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 45d0: 3301 movi r3, 1 + 45d2: 105c lrw r2, 0x20000068 // 4640 + 45d4: 70c0 lsl r3, r0 + 45d6: 9240 ld.w r2, (r2, 0x0) + 45d8: 68c8 and r3, r2 + 45da: 3b40 cmpnei r3, 0 + 45dc: 0c2b bf 0x4632 // 4632 + SysTick_Now = SysTick_1ms; + 45de: 109a lrw r4, 0x200000bc // 4644 + 45e0: 107a lrw r3, 0x200000b8 // 4648 + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45e2: 9445 ld.w r2, (r4, 0x14) + SysTick_Now = SysTick_1ms; + 45e4: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45e6: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 45e8: b464 st.w r3, (r4, 0x10) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45ea: b446 st.w r2, (r4, 0x18) + SysTick_Last = SysTick_Now; + 45ec: b465 st.w r3, (r4, 0x14) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 45ee: 3180 movi r1, 128 + 45f0: 301c movi r0, 28 + 45f2: b840 st.w r2, (r14, 0x0) + 45f4: 4122 lsli r1, r1, 2 + 45f6: 1056 lrw r2, 0x5e63 // 464c + 45f8: 6010 addu r0, r4 + 45fa: e3ffe9b5 bsr 0x1964 // 1964 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 45fe: 10b5 lrw r5, 0x2000003c // 4650 + 4600: 311c movi r1, 28 + 4602: 7481 zexth r2, r0 + 4604: 6050 addu r1, r4 + 4606: 9500 ld.w r0, (r5, 0x0) + 4608: e3fff8ea bsr 0x37dc // 37dc + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 460c: 3180 movi r1, 128 + 460e: 301c movi r0, 28 + 4610: 1b06 addi r3, r14, 24 + 4612: 9841 ld.w r2, (r14, 0x4) + 4614: 4122 lsli r1, r1, 2 + 4616: 6010 addu r0, r4 + 4618: e3ffe9d5 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 461c: 6c53 mov r1, r4 + 461e: 7481 zexth r2, r0 + 4620: 211b addi r1, 28 + 4622: 9500 ld.w r0, (r5, 0x0) + 4624: e3fff8dc bsr 0x37dc // 37dc + + DBG_Printf("\r\n",2); + 4628: 9500 ld.w r0, (r5, 0x0) + 462a: 3202 movi r2, 2 + 462c: 102a lrw r1, 0x5e71 // 4654 + 462e: e3fff8d7 bsr 0x37dc // 37dc + + + } + +#endif +} + 4632: 1402 addi r14, r14, 8 + 4634: d9ee2002 ld.w r15, (r14, 0x8) + 4638: 98a1 ld.w r5, (r14, 0x4) + 463a: 9880 ld.w r4, (r14, 0x0) + 463c: 1406 addi r14, r14, 24 + 463e: 783c jmp r15 + 4640: 20000068 .long 0x20000068 + 4644: 200000bc .long 0x200000bc + 4648: 200000b8 .long 0x200000b8 + 464c: 00005e63 .long 0x00005e63 + 4650: 2000003c .long 0x2000003c + 4654: 00005e71 .long 0x00005e71 + +Disassembly of section .text.RC522_Delay: + +00004658 : + * @brief 延时函数,纳秒级 + * @param ns 延时时间 + */ +void RC522_Delay(U32_T ns){ + U32_T i; + for (i = 0; i < ns; i++) { + 4658: 3300 movi r3, 0 + 465a: 640e cmpne r3, r0 + 465c: 0802 bt 0x4660 // 4660 + nop; + //延时一个机器周期 + nop; + nop; + } +} + 465e: 783c jmp r15 + nop; + 4660: 6c03 mov r0, r0 + nop; + 4662: 6c03 mov r0, r0 + nop; + 4664: 6c03 mov r0, r0 + for (i = 0; i < ns; i++) { + 4666: 2300 addi r3, 1 + 4668: 07f9 br 0x465a // 465a + +Disassembly of section .text.RC522_ReadWriteOneByte: + +0000466c : + * @brief 移植接口——SPI读写一个字节 + * @param tx_data:要写入的数据 + * @return 读取的数据 + */ +U8_T RC522_ReadWriteOneByte(U8_T tx_data) +{ + 466c: 14d4 push r4-r7, r15 + 466e: 6d83 mov r6, r0 + 4670: 3508 movi r5, 8 +// delay_nus(1); +// rx_data = SPI0->DR; +// +// return (U8_T)(rx_data & 0xFF); + + U8_T rx_data=0; + 4672: 3400 movi r4, 0 + U8_T i; + for(i=0;i<8;i++) + { + RC522_SCK_LOW; + 4674: 10f2 lrw r7, 0x2000004c // 46bc + 4676: 3109 movi r1, 9 + 4678: 9700 ld.w r0, (r7, 0x0) + 467a: e3fff66e bsr 0x3356 // 3356 + if(tx_data&0x80) RC522_MOSI_HIGH; + 467e: 74da sextb r3, r6 + 4680: 3bdf btsti r3, 31 + 4682: 310a movi r1, 10 + 4684: 9700 ld.w r0, (r7, 0x0) + 4686: 0c18 bf 0x46b6 // 46b6 + 4688: e3fff663 bsr 0x334e // 334e + else RC522_MOSI_LOW; + tx_data<<=1; + RC522_SCK_HIGH; + 468c: 3109 movi r1, 9 + 468e: 9700 ld.w r0, (r7, 0x0) + 4690: e3fff65f bsr 0x334e // 334e + rx_data<<=1; + if(RC522_MISO_Read) rx_data|=0x01; + 4694: 310b movi r1, 11 + 4696: 9700 ld.w r0, (r7, 0x0) + 4698: e3fff66e bsr 0x3374 // 3374 + tx_data<<=1; + 469c: 46c1 lsli r6, r6, 1 + rx_data<<=1; + 469e: 4481 lsli r4, r4, 1 + if(RC522_MISO_Read) rx_data|=0x01; + 46a0: 3840 cmpnei r0, 0 + tx_data<<=1; + 46a2: 7598 zextb r6, r6 + rx_data<<=1; + 46a4: 7510 zextb r4, r4 + if(RC522_MISO_Read) rx_data|=0x01; + 46a6: 0c02 bf 0x46aa // 46aa + 46a8: 3ca0 bseti r4, 0 + 46aa: 2d00 subi r5, 1 + 46ac: 7554 zextb r5, r5 + for(i=0;i<8;i++) + 46ae: 3d40 cmpnei r5, 0 + 46b0: 0be3 bt 0x4676 // 4676 + } + return rx_data; +} + 46b2: 6c13 mov r0, r4 + 46b4: 1494 pop r4-r7, r15 + else RC522_MOSI_LOW; + 46b6: e3fff650 bsr 0x3356 // 3356 + 46ba: 07e9 br 0x468c // 468c + 46bc: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_ReadRawRC: + +000046c0 : +{ + 46c0: 14d2 push r4-r5, r15 + RC522_CS_LOW; //片选选中RC522 + 46c2: 10ad lrw r5, 0x20000048 // 46f4 + 46c4: 3105 movi r1, 5 +{ + 46c6: 6d03 mov r4, r0 + RC522_CS_LOW; //片选选中RC522 + 46c8: 9500 ld.w r0, (r5, 0x0) + 46ca: e3fff646 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E)|0x80; + 46ce: 4401 lsli r0, r4, 1 + 46d0: 347e movi r4, 126 + 46d2: 6810 and r0, r4 + 46d4: 3400 movi r4, 0 + 46d6: 2c7f subi r4, 128 + 46d8: 6c10 or r0, r4 + RC522_ReadWriteOneByte(ucAddr); //发送命令 + 46da: 7400 zextb r0, r0 + 46dc: e3ffffc8 bsr 0x466c // 466c + ucResult=RC522_ReadWriteOneByte(0); //读取RC522返回的数据 + 46e0: 3000 movi r0, 0 + 46e2: e3ffffc5 bsr 0x466c // 466c + 46e6: 6d03 mov r4, r0 + RC522_CS_HIGH; //释放片选线(PF0) + 46e8: 3105 movi r1, 5 + 46ea: 9500 ld.w r0, (r5, 0x0) + 46ec: e3fff631 bsr 0x334e // 334e +} + 46f0: 6c13 mov r0, r4 + 46f2: 1492 pop r4-r5, r15 + 46f4: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_WriteRawRC: + +000046f8 : +{ + 46f8: 14d3 push r4-r6, r15 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 46fa: 10ab lrw r5, 0x20000048 // 4724 +{ + 46fc: 6d87 mov r6, r1 + 46fe: 6d03 mov r4, r0 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 4700: 3105 movi r1, 5 + 4702: 9500 ld.w r0, (r5, 0x0) + 4704: e3fff629 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E); + 4708: 4481 lsli r4, r4, 1 + 470a: 307e movi r0, 126 + RC522_ReadWriteOneByte(ucAddr); //SPI1发送一个字节 + 470c: 6810 and r0, r4 + 470e: e3ffffaf bsr 0x466c // 466c + RC522_ReadWriteOneByte(value); //SPI1发送一个字节 + 4712: 6c1b mov r0, r6 + 4714: e3ffffac bsr 0x466c // 466c + RC522_CS_HIGH; //PF1写1(SDA)(SPI1片选线) + 4718: 9500 ld.w r0, (r5, 0x0) + 471a: 3105 movi r1, 5 + 471c: e3fff619 bsr 0x334e // 334e +} + 4720: 1493 pop r4-r6, r15 + 4722: 0000 bkpt + 4724: 20000048 .long 0x20000048 + +Disassembly of section .text.RC522_PcdReset: + +00004728 : +{ + 4728: 14d0 push r15 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 472a: 310f movi r1, 15 + 472c: 3001 movi r0, 1 + 472e: e3ffffe5 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 4732: 310f movi r1, 15 + 4734: 3001 movi r0, 1 + 4736: e3ffffe1 bsr 0x46f8 // 46f8 + RC522_Delay(10); + 473a: 300a movi r0, 10 + 473c: e3ffff8e bsr 0x4658 // 4658 + RC522_WriteRawRC(ModeReg,0x3D); //和Mifare卡通讯,CRC初始值0x6363 + 4740: 313d movi r1, 61 + 4742: 3011 movi r0, 17 + 4744: e3ffffda bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegL,30); //写RC632寄存器 + 4748: 311e movi r1, 30 + 474a: 302d movi r0, 45 + 474c: e3ffffd6 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegH,0); + 4750: 3100 movi r1, 0 + 4752: 302c movi r0, 44 + 4754: e3ffffd2 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TModeReg,0x8D); + 4758: 318d movi r1, 141 + 475a: 302a movi r0, 42 + 475c: e3ffffce bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 4760: 313e movi r1, 62 + 4762: 302b movi r0, 43 + 4764: e3ffffca bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TxAutoReg,0x40);//必须要 + 4768: 3140 movi r1, 64 + 476a: 3015 movi r0, 21 + 476c: e3ffffc6 bsr 0x46f8 // 46f8 +} + 4770: 3000 movi r0, 0 + 4772: 1490 pop r15 + +Disassembly of section .text.RC522_SetBitMask: + +00004774 : +{ + 4774: 14d2 push r4-r5, r15 + 4776: 6d47 mov r5, r1 + 4778: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 477a: e3ffffa3 bsr 0x46c0 // 46c0 + RC522_WriteRawRC(reg,tmp|mask); //写RC632寄存器 + 477e: 6c43 mov r1, r0 + 4780: 6c54 or r1, r5 + 4782: 7444 zextb r1, r1 + 4784: 6c13 mov r0, r4 + 4786: e3ffffb9 bsr 0x46f8 // 46f8 +} + 478a: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOn: + +0000478c : +{ + 478c: 14d0 push r15 + i=RC522_ReadRawRC(TxControlReg); + 478e: 3014 movi r0, 20 + 4790: e3ffff98 bsr 0x46c0 // 46c0 + if(!(i&0x03)) + 4794: 3303 movi r3, 3 + 4796: 680c and r0, r3 + 4798: 3840 cmpnei r0, 0 + 479a: 0805 bt 0x47a4 // 47a4 + RC522_SetBitMask(TxControlReg,0x03); + 479c: 3103 movi r1, 3 + 479e: 3014 movi r0, 20 + 47a0: e3ffffea bsr 0x4774 // 4774 +} + 47a4: 1490 pop r15 + +Disassembly of section .text.RC522_ClearBitMask: + +000047a6 : +{ + 47a6: 14d2 push r4-r5, r15 + 47a8: 6d47 mov r5, r1 + 47aa: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 47ac: e3ffff8a bsr 0x46c0 // 46c0 + RC522_WriteRawRC(reg,tmp&~mask); // clear bit mask + 47b0: 6815 andn r0, r5 + 47b2: 7440 zextb r1, r0 + 47b4: 6c13 mov r0, r4 + 47b6: e3ffffa1 bsr 0x46f8 // 46f8 +} + 47ba: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOff: + +000047bc : +{ + 47bc: 14d0 push r15 + RC522_ClearBitMask(TxControlReg,0x03); //清RC522寄存器位 + 47be: 3103 movi r1, 3 + 47c0: 3014 movi r0, 20 + 47c2: e3fffff2 bsr 0x47a6 // 47a6 +} + 47c6: 1490 pop r15 + +Disassembly of section .text.RC522_Reset: + +000047c8 : +void RC522_Reset(void){ + 47c8: 14d0 push r15 + RC522_PcdReset(); //复位RC522 + 47ca: e3ffffaf bsr 0x4728 // 4728 + RC522_PcdAntennaOff(); //关闭天线 + 47ce: e3fffff7 bsr 0x47bc // 47bc + RC522_Delay(2); //延时2毫秒 + 47d2: 3002 movi r0, 2 + 47d4: e3ffff42 bsr 0x4658 // 4658 + RC522_PcdAntennaOn(); //开启天线 + 47d8: e3ffffda bsr 0x478c // 478c +} + 47dc: 1490 pop r15 + +Disassembly of section .text.M500PcdConfigISOType.part.1: + +000047de : +char M500PcdConfigISOType(U8_T type) + 47de: 14d0 push r15 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 47e0: 3108 movi r1, 8 + 47e2: 3008 movi r0, 8 + 47e4: e3ffffe1 bsr 0x47a6 // 47a6 + RC522_SetBitMask(ComIEnReg,BIT7); + 47e8: 3180 movi r1, 128 + 47ea: 3002 movi r0, 2 + 47ec: e3ffffc4 bsr 0x4774 // 4774 + RC522_WriteRawRC(ModeReg,0x3D); + 47f0: 313d movi r1, 61 + 47f2: 3011 movi r0, 17 + 47f4: e3ffff82 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TxModeReg,0x00); //设定数据发送传输速率106kbits/s,定义帧格式为ISO/IEC 14443 A/Mifare + 47f8: 3100 movi r1, 0 + 47fa: 3012 movi r0, 18 + 47fc: e3ffff7e bsr 0x46f8 // 46f8 + RC522_WriteRawRC(RxModeReg,0x00); //设定数据接收传输速率106kbits/s,定义帧格式为ISO/IEC 14443 A/Mifare + 4800: 3100 movi r1, 0 + 4802: 3013 movi r0, 19 + 4804: e3ffff7a bsr 0x46f8 // 46f8 + RC522_WriteRawRC(ModWidthReg,MODWIDTH); //调制宽度为reset值 + 4808: 3126 movi r1, 38 + 480a: 3024 movi r0, 36 + 480c: e3ffff76 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(ModeReg,0x3D); //3D--CRC预设值为6363 + 4810: 313d movi r1, 61 + 4812: 3011 movi r0, 17 + 4814: e3ffff72 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(RxThresholdReg,(MINLEVEL_A<<4) | COLLLEVEL_A); //选择位译码器的阈值 + 4818: 3164 movi r1, 100 + 481a: 3018 movi r0, 24 + 481c: e3ffff6e bsr 0x46f8 // 46f8 + RC522_WriteRawRC(RFCfgReg,0x7F); // 接收增益 + 4820: 317f movi r1, 127 + 4822: 3026 movi r0, 38 + 4824: e3ffff6a bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TxAutoReg,0x40); //100%ASK传送 + 4828: 3140 movi r1, 64 + 482a: 3015 movi r0, 21 + 482c: e3ffff66 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(ControlReg,0x10); //接收的最后一个字节所有比特有效 + 4830: 3110 movi r1, 16 + 4832: 300c movi r0, 12 + 4834: e3ffff62 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegL,0x64); //16bit定时器重载值(低位) + 4838: 3164 movi r1, 100 + 483a: 302d movi r0, 45 + 483c: e3ffff5e bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TReloadRegH,0); //16bit定时器重载值(高位) + 4840: 3100 movi r1, 0 + 4842: 302c movi r0, 44 + 4844: e3ffff5a bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TModeReg,0x8D); //预分频器开启自动定时器,向下计数,预分频与TPrescalerReg一起决定12bit + 4848: 318d movi r1, 141 + 484a: 302a movi r0, 42 + 484c: e3ffff56 bsr 0x46f8 // 46f8 + RC522_WriteRawRC(TPrescalerReg,0x3e); //12bit 1101 0011 1110 定时器频率2KHz*//* + 4850: 313e movi r1, 62 + 4852: 302b movi r0, 43 + 4854: e3ffff52 bsr 0x46f8 // 46f8 +} + 4858: 3000 movi r0, 0 + 485a: 1490 pop r15 + +Disassembly of section .text.RC522_Init: + +0000485c : +{ + 485c: 14d1 push r4, r15 + nop; + 485e: 6c03 mov r0, r0 + GPIO_Init(GPIOA0,9,Output); //SCK + 4860: 1183 lrw r4, 0x2000004c // 48ec + 4862: 3200 movi r2, 0 + 4864: 9400 ld.w r0, (r4, 0x0) + 4866: 3109 movi r1, 9 + 4868: e3fff4f2 bsr 0x324c // 324c + GPIO_Init(GPIOA0,10,Output); //MOSI + 486c: 3200 movi r2, 0 + 486e: 9400 ld.w r0, (r4, 0x0) + 4870: 310a movi r1, 10 + 4872: e3fff4ed bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOA0,11); + 4876: 9400 ld.w r0, (r4, 0x0) + 4878: 310b movi r1, 11 + 487a: e3fff559 bsr 0x332c // 332c + GPIO_Init(GPIOA0,11,Intput); //MISO + 487e: 9400 ld.w r0, (r4, 0x0) + 4880: 3201 movi r2, 1 + GPIO_Init(GPIOB0,5,Output); //CS + 4882: 109c lrw r4, 0x20000048 // 48f0 + GPIO_Init(GPIOA0,11,Intput); //MISO + 4884: 310b movi r1, 11 + 4886: e3fff4e3 bsr 0x324c // 324c + GPIO_Init(GPIOB0,5,Output); //CS + 488a: 9400 ld.w r0, (r4, 0x0) + 488c: 3200 movi r2, 0 + 488e: 3105 movi r1, 5 + 4890: e3fff4de bsr 0x324c // 324c + GPIO_Init(GPIOB0,4,Output); //RST + 4894: 9400 ld.w r0, (r4, 0x0) + 4896: 3200 movi r2, 0 + 4898: 3104 movi r1, 4 + 489a: e3fff4d9 bsr 0x324c // 324c + GPIO_Init(GPIOB0,3,Intput); //IRQ + 489e: 3201 movi r2, 1 + 48a0: 9400 ld.w r0, (r4, 0x0) + 48a2: 3103 movi r1, 3 + 48a4: e3fff4d4 bsr 0x324c // 324c + GPIO_Write_High(GPIOB0,5); + 48a8: 9400 ld.w r0, (r4, 0x0) + 48aa: 3105 movi r1, 5 + 48ac: e3fff551 bsr 0x334e // 334e + GPIO_Write_High(GPIOB0,4); + 48b0: 3104 movi r1, 4 + 48b2: 9400 ld.w r0, (r4, 0x0) + 48b4: e3fff54d bsr 0x334e // 334e + RC522_PcdReset(); //复位RC522 + 48b8: e3ffff38 bsr 0x4728 // 4728 + RC522_PcdAntennaOff(); //关闭天线 + 48bc: e3ffff80 bsr 0x47bc // 47bc + RC522_Delay(2); //延时2毫秒 + 48c0: 3002 movi r0, 2 + 48c2: e3fffecb bsr 0x4658 // 4658 + RC522_PcdAntennaOn(); //开启天线 + 48c6: e3ffff63 bsr 0x478c // 478c + memset(&CardInfo,0x00,sizeof(CardInfo)); + 48ca: 108b lrw r4, 0x20000418 // 48f4 + 48cc: e3ffff89 bsr 0x47de // 47de + 48d0: 3234 movi r2, 52 + 48d2: 3100 movi r1, 0 + 48d4: 6c13 mov r0, r4 + 48d6: e3ffe8a3 bsr 0x1a1c // 1a1c <__memset_fast> + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 48da: 3318 movi r3, 24 + 48dc: a468 st.b r3, (r4, 0x8) + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 48de: 3360 movi r3, 96 + 48e0: a47f st.b r3, (r4, 0x1f) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 48e2: 3300 movi r3, 0 + 48e4: 2b00 subi r3, 1 + 48e6: b468 st.w r3, (r4, 0x20) + 48e8: ac72 st.h r3, (r4, 0x24) +} + 48ea: 1491 pop r4, r15 + 48ec: 2000004c .long 0x2000004c + 48f0: 20000048 .long 0x20000048 + 48f4: 20000418 .long 0x20000418 + +Disassembly of section .text.RC522_PcdComMF522: + +000048f8 : +{ + 48f8: 14d4 push r4-r7, r15 + 48fa: 1424 subi r14, r14, 16 + 48fc: b861 st.w r3, (r14, 0x4) + switch (Command) { + 48fe: 384c cmpnei r0, 12 +{ + 4900: 9869 ld.w r3, (r14, 0x24) + 4902: 6d43 mov r5, r0 + 4904: 6dc7 mov r7, r1 + 4906: b860 st.w r3, (r14, 0x0) + switch (Command) { + 4908: 0c4c bf 0x49a0 // 49a0 + 490a: 384e cmpnei r0, 14 + 490c: 0c4d bf 0x49a6 // 49a6 + U8_T waitFor=0x00; + 490e: 3600 movi r6, 0 + U8_T irqEn=0x00; + 4910: 3400 movi r4, 0 + RC522_WriteRawRC(ComIEnReg,irqEn|0x80); + 4912: 6c53 mov r1, r4 + 4914: 39a7 bseti r1, 7 + 4916: 3002 movi r0, 2 + 4918: b842 st.w r2, (r14, 0x8) + 491a: e3fffeef bsr 0x46f8 // 46f8 + RC522_ClearBitMask(ComIrqReg,0x80); //清所有中断位 + 491e: 3180 movi r1, 128 + 4920: 3004 movi r0, 4 + 4922: e3ffff42 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 4926: 3100 movi r1, 0 + 4928: 3001 movi r0, 1 + 492a: e3fffee7 bsr 0x46f8 // 46f8 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO缓存 + 492e: 3180 movi r1, 128 + 4930: 300a movi r0, 10 + 4932: e3ffff21 bsr 0x4774 // 4774 + for(i=0;i + RC522_WriteRawRC(CommandReg,Command); + 4942: 6c57 mov r1, r5 + 4944: 3001 movi r0, 1 + 4946: e3fffed9 bsr 0x46f8 // 46f8 + if(Command==PCD_TRANSCEIVE) + 494a: 3d4c cmpnei r5, 12 + 494c: 0805 bt 0x4956 // 4956 + RC522_SetBitMask(BitFramingReg,0x80); //开始传送 + 494e: 3180 movi r1, 128 + 4950: 300d movi r0, 13 + 4952: e3ffff11 bsr 0x4774 // 4774 + for(i=0;i + i--; + 4964: 9862 ld.w r3, (r14, 0x8) + 4966: 2b00 subi r3, 1 + 4968: 74cd zexth r3, r3 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 496a: 3b40 cmpnei r3, 0 + n=RC522_ReadRawRC(ComIrqReg); + 496c: 6dc3 mov r7, r0 + while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 496e: 0c05 bf 0x4978 // 4978 + 4970: 6c83 mov r2, r0 + 4972: 6898 and r2, r6 + 4974: 3a40 cmpnei r2, 0 + 4976: 0ff3 bf 0x495c // 495c + RC522_ClearBitMask(BitFramingReg,0x80); + 4978: 3180 movi r1, 128 + 497a: 300d movi r0, 13 + 497c: b862 st.w r3, (r14, 0x8) + 497e: e3ffff14 bsr 0x47a6 // 47a6 + if(i!=0) + 4982: 9862 ld.w r3, (r14, 0x8) + 4984: 3b40 cmpnei r3, 0 + 4986: 081f bt 0x49c4 // 49c4 + char stats=MI_ERR; + 4988: 3702 movi r7, 2 + RC522_SetBitMask(ControlReg,0x80);// stop timer now + 498a: 3180 movi r1, 128 + 498c: 300c movi r0, 12 + 498e: e3fffef3 bsr 0x4774 // 4774 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 4992: 3100 movi r1, 0 + 4994: 3001 movi r0, 1 + 4996: e3fffeb1 bsr 0x46f8 // 46f8 +} + 499a: 6c1f mov r0, r7 + 499c: 1404 addi r14, r14, 16 + 499e: 1494 pop r4-r7, r15 + waitFor = 0x30; + 49a0: 3630 movi r6, 48 + irqEn = 0x77; + 49a2: 3477 movi r4, 119 + break; + 49a4: 07b7 br 0x4912 // 4912 + waitFor = 0x10; + 49a6: 3610 movi r6, 16 + irqEn = 0x12; + 49a8: 3412 movi r4, 18 + 49aa: 07b4 br 0x4912 // 4912 + RC522_WriteRawRC(FIFODataReg,pIn[i]); + 49ac: 8320 ld.b r1, (r3, 0x0) + 49ae: 3009 movi r0, 9 + 49b0: b843 st.w r2, (r14, 0xc) + 49b2: b862 st.w r3, (r14, 0x8) + for(i=0;i + 49ba: 9862 ld.w r3, (r14, 0x8) + for(i=0;i + if(!(RC522_ReadRawRC(ErrorReg)&0x1B)) + 49c4: 3006 movi r0, 6 + 49c6: e3fffe7d bsr 0x46c0 // 46c0 + 49ca: 331b movi r3, 27 + 49cc: 680c and r0, r3 + 49ce: 3840 cmpnei r0, 0 + 49d0: 0bdc bt 0x4988 // 4988 + stats=MI_OK; + 49d2: 3301 movi r3, 1 + 49d4: 690c and r4, r3 + if(Command==PCD_TRANSCEIVE) + 49d6: 3d4c cmpnei r5, 12 + stats=MI_OK; + 49d8: 69d0 and r7, r4 + if(Command==PCD_TRANSCEIVE) + 49da: 0bd8 bt 0x498a // 498a + n=RC522_ReadRawRC(FIFOLevelReg); + 49dc: 300a movi r0, 10 + 49de: e3fffe71 bsr 0x46c0 // 46c0 + 49e2: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 49e4: 300c movi r0, 12 + 49e6: e3fffe6d bsr 0x46c0 // 46c0 + 49ea: 3307 movi r3, 7 + 49ec: 680c and r0, r3 + if(lastBits) + 49ee: 3840 cmpnei r0, 0 + 49f0: 0c1b bf 0x4a26 // 4a26 + *pOutLenBit=(n-1)*8+lastBits; + 49f2: 5c63 subi r3, r4, 1 + 49f4: 4363 lsli r3, r3, 3 + 49f6: 600c addu r0, r3 + 49f8: 9860 ld.w r3, (r14, 0x0) + 49fa: a300 st.b r0, (r3, 0x0) + if(n==0)n=1; + 49fc: 3c40 cmpnei r4, 0 + 49fe: 0c18 bf 0x4a2e // 4a2e + 4a00: 6cd3 mov r3, r4 + 4a02: 7510 zextb r4, r4 + 4a04: 3c12 cmphsi r4, 19 + 4a06: 0c02 bf 0x4a0a // 4a0a + 4a08: 3312 movi r3, 18 + 4a0a: 74cc zextb r3, r3 + 4a0c: 98c1 ld.w r6, (r14, 0x4) + for(i=0; i + pOut[i]=RC522_ReadRawRC(FIFODataReg); + 4a16: 3009 movi r0, 9 + 4a18: e3fffe54 bsr 0x46c0 // 46c0 + for(i=0; i + *pOutLenBit=n*8; + 4a26: 4463 lsli r3, r4, 3 + 4a28: 9840 ld.w r2, (r14, 0x0) + 4a2a: a260 st.b r3, (r2, 0x0) + 4a2c: 07e8 br 0x49fc // 49fc + if(n==0)n=1; + 4a2e: 3301 movi r3, 1 + 4a30: 07ee br 0x4a0c // 4a0c + +Disassembly of section .text.RC522_PcdRequest: + +00004a34 : +{ + 4a34: 14d3 push r4-r6, r15 + 4a36: 1427 subi r14, r14, 28 + 4a38: 6d03 mov r4, r0 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 4a3a: 3212 movi r2, 18 +{ + 4a3c: 6d47 mov r5, r1 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 4a3e: 1802 addi r0, r14, 8 + 4a40: 3100 movi r1, 0 + 4a42: e3ffe7ed bsr 0x1a1c // 1a1c <__memset_fast> + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位,/接收数据命令 + 4a46: 3108 movi r1, 8 + 4a48: 3008 movi r0, 8 + 4a4a: e3fffeae bsr 0x47a6 // 47a6 + RC522_WriteRawRC(BitFramingReg,0x07); //写RC632寄存器 + 4a4e: 3107 movi r1, 7 + 4a50: 300d movi r0, 13 + 4a52: e3fffe53 bsr 0x46f8 // 46f8 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4a56: 3607 movi r6, 7 + RC522_SetBitMask(TxControlReg,0x03); //置RC522寄存器位 + 4a58: 3103 movi r1, 3 + 4a5a: 3014 movi r0, 20 + 4a5c: e3fffe8c bsr 0x4774 // 4774 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4a60: 61b8 addu r6, r14 + 4a62: 1b02 addi r3, r14, 8 + 4a64: b8c0 st.w r6, (r14, 0x0) + 4a66: 3201 movi r2, 1 + 4a68: 6c4f mov r1, r3 + 4a6a: 300c movi r0, 12 + ucComMF522Buf[0]=req_code; //寻卡方式 + 4a6c: dc8e0008 st.b r4, (r14, 0x8) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4a70: e3ffff44 bsr 0x48f8 // 48f8 + if ((stats == MI_OK) && (unLen == 0x10)) { + 4a74: 3840 cmpnei r0, 0 + 4a76: 081b bt 0x4aac // 4aac + 4a78: 8660 ld.b r3, (r6, 0x0) + 4a7a: 3b50 cmpnei r3, 16 + 4a7c: 0818 bt 0x4aac // 4aac + *pTagType = ucComMF522Buf[0]; //将数组里的数据赋值给*pTagType + 4a7e: d86e0008 ld.b r3, (r14, 0x8) + 4a82: a560 st.b r3, (r5, 0x0) + *(pTagType + 1) = ucComMF522Buf[1]; + 4a84: d86e0009 ld.b r3, (r14, 0x9) + 4a88: a561 st.b r3, (r5, 0x1) + if ((ucComMF522Buf[0] == req_code)&&(CardInfo.RC522_Reset_Falg == 0)) { + 4a8a: d86e0008 ld.b r3, (r14, 0x8) + 4a8e: 650e cmpne r3, r4 + 4a90: 3220 movi r2, 32 + 4a92: 1069 lrw r3, 0x20000418 // 4ab4 + 4a94: 608c addu r2, r3 + 4a96: 080d bt 0x4ab0 // 4ab0 + 4a98: 8228 ld.b r1, (r2, 0x8) + 4a9a: 3940 cmpnei r1, 0 + 4a9c: 0806 bt 0x4aa8 // 4aa8 + CardInfo.RC522_Reset_Falg = 1; + 4a9e: 3101 movi r1, 1 + CardInfo.RC522_Reset_Falg = 0; + 4aa0: a228 st.b r1, (r2, 0x8) + CardInfo.Reset_Tick = SysTick_1ms; + 4aa2: 1046 lrw r2, 0x200000b8 // 4ab8 + 4aa4: 9240 ld.w r2, (r2, 0x0) + 4aa6: b34b st.w r2, (r3, 0x2c) +} + 4aa8: 1407 addi r14, r14, 28 + 4aaa: 1493 pop r4-r6, r15 + stats = MI_ERR; + 4aac: 3002 movi r0, 2 + 4aae: 07ee br 0x4a8a // 4a8a + CardInfo.RC522_Reset_Falg = 0; + 4ab0: 3100 movi r1, 0 + 4ab2: 07f7 br 0x4aa0 // 4aa0 + 4ab4: 20000418 .long 0x20000418 + 4ab8: 200000b8 .long 0x200000b8 + +Disassembly of section .text.RC522_PcdAnticoll: + +00004abc : +{ + 4abc: 14d2 push r4-r5, r15 + 4abe: 1427 subi r14, r14, 28 + 4ac0: 6d43 mov r5, r0 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4ac2: 3108 movi r1, 8 + 4ac4: 3008 movi r0, 8 + 4ac6: e3fffe70 bsr 0x47a6 // 47a6 + RC522_WriteRawRC(BitFramingReg,0x00); //写 + 4aca: 3100 movi r1, 0 + 4acc: 300d movi r0, 13 + 4ace: e3fffe15 bsr 0x46f8 // 46f8 + RC522_ClearBitMask(CollReg,0x80); //清 + 4ad2: 3180 movi r1, 128 + 4ad4: 300e movi r0, 14 + 4ad6: e3fffe68 bsr 0x47a6 // 47a6 + ucComMF522Buf[0]=PICC_ANTICOLL1; //PICC_ANTICOLL1 = 0x93 + 4ada: 3300 movi r3, 0 + 4adc: 2b6c subi r3, 109 + 4ade: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x20; + 4ae2: 3320 movi r3, 32 + 4ae4: dc6e0009 st.b r3, (r14, 0x9) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4ae8: 3307 movi r3, 7 + 4aea: 60f8 addu r3, r14 + 4aec: b860 st.w r3, (r14, 0x0) + 4aee: 1b02 addi r3, r14, 8 + 4af0: 3202 movi r2, 2 + 4af2: 6c4f mov r1, r3 + 4af4: 300c movi r0, 12 + 4af6: e3ffff01 bsr 0x48f8 // 48f8 + if(stats==MI_OK) + 4afa: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4afc: 6d03 mov r4, r0 + if(stats==MI_OK) + 4afe: 0812 bt 0x4b22 // 4b22 + 4b00: 3300 movi r3, 0 + 4b02: 3200 movi r2, 0 + *(pSnr+i)=ucComMF522Buf[i]; //把读到的卡号赋值给pSnr + 4b04: 1902 addi r1, r14, 8 + 4b06: 604c addu r1, r3 + 4b08: 8120 ld.b r1, (r1, 0x0) + 4b0a: 5d0c addu r0, r5, r3 + 4b0c: 2300 addi r3, 1 + 4b0e: a020 st.b r1, (r0, 0x0) + for(i=0;i<4;i++) + 4b10: 3b44 cmpnei r3, 4 + snr_check^=ucComMF522Buf[i]; + 4b12: 6c49 xor r1, r2 + 4b14: 6c87 mov r2, r1 + for(i=0;i<4;i++) + 4b16: 0bf7 bt 0x4b04 // 4b04 + if(snr_check!=ucComMF522Buf[i]) + 4b18: d86e000c ld.b r3, (r14, 0xc) + 4b1c: 644e cmpne r3, r1 + 4b1e: 0c02 bf 0x4b22 // 4b22 + stats = MI_ERR; + 4b20: 3402 movi r4, 2 + RC522_SetBitMask(CollReg,0x80); + 4b22: 3180 movi r1, 128 + 4b24: 300e movi r0, 14 + 4b26: e3fffe27 bsr 0x4774 // 4774 +} + 4b2a: 6c13 mov r0, r4 + 4b2c: 1407 addi r14, r14, 28 + 4b2e: 1492 pop r4-r5, r15 + +Disassembly of section .text.Card_Read_TasK: + +00004b30 : + + + +//U32_T FailNum = 0; +U32_T scan_tick = 0; +void Card_Read_TasK(void){ + 4b30: 14d2 push r4-r5, r15 + + if(SysTick_1ms - scan_tick >= 100){ + 4b32: 11a3 lrw r5, 0x200000b8 // 4bbc + 4b34: 1143 lrw r2, 0x200002d8 // 4bc0 + 4b36: 1184 lrw r4, 0x20000418 // 4bc4 + 4b38: 9220 ld.w r1, (r2, 0x0) + 4b3a: 9560 ld.w r3, (r5, 0x0) + 4b3c: 60c6 subu r3, r1 + 4b3e: 3163 movi r1, 99 + 4b40: 64c4 cmphs r1, r3 + 4b42: 0819 bt 0x4b74 // 4b74 + scan_tick = SysTick_1ms; + +// Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read"); + + //寻卡: 识别天线范围内全部卡 + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4b44: 3119 movi r1, 25 + scan_tick = SysTick_1ms; + 4b46: 9560 ld.w r3, (r5, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4b48: 6050 addu r1, r4 + 4b4a: 3052 movi r0, 82 + scan_tick = SysTick_1ms; + 4b4c: b260 st.w r3, (r2, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4b4e: e3ffff73 bsr 0x4a34 // 4a34 + 4b52: 3840 cmpnei r0, 0 + 4b54: 3320 movi r3, 32 + 4b56: 60d0 addu r3, r4 + 4b58: 081f bt 0x4b96 // 4b96 + CardInfo.FailNum = 0x00; + 4b5a: 3200 movi r2, 0 + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 4b5c: 103b lrw r1, 0x5e95 // 4bc8 + CardInfo.FailNum = 0x00; + 4b5e: a346 st.b r2, (r3, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_SUCC"); + 4b60: e3fffd30 bsr 0x45c0 // 45c0 + +// if(CardInfo.SuccNum >= 5) //消抖 + + + //防冲撞:获取IC卡的卡号 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4b64: 301b movi r0, 27 + 4b66: 6010 addu r0, r4 + 4b68: e3ffffaa bsr 0x4abc // 4abc + 4b6c: 3840 cmpnei r0, 0 + 4b6e: 080f bt 0x4b8c // 4b8c + + + CardInfo.BlockSucc = BLOCK_READ_SUCC; + 4b70: 3301 movi r3, 1 + 4b72: a467 st.b r3, (r4, 0x7) + } + } + + } + + if(CardInfo.BlockSucc != CardInfo.BlockLast){ + 4b74: 8467 ld.b r3, (r4, 0x7) + 4b76: 8446 ld.b r2, (r4, 0x6) + 4b78: 64ca cmpne r2, r3 + 4b7a: 0c08 bf 0x4b8a // 4b8a + CardInfo.BlockLast = CardInfo.BlockSucc; + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4b7c: 3b41 cmpnei r3, 1 + CardInfo.BlockLast = CardInfo.BlockSucc; + 4b7e: a466 st.b r3, (r4, 0x6) + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4b80: 0818 bt 0x4bb0 // 4bb0 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read SUCC"); + 4b82: 1033 lrw r1, 0x5ec8 // 4bcc + 4b84: 3000 movi r0, 0 + 4b86: e3fffd1d bsr 0x45c0 // 45c0 + CardInfo.reset_tick = SysTick_1ms; + } + } + + +} + 4b8a: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 4b8c: 1031 lrw r1, 0x5ea5 // 4bd0 + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_FAILD"); + 4b8e: 3000 movi r0, 0 + 4b90: e3fffd18 bsr 0x45c0 // 45c0 + 4b94: 07f0 br 0x4b74 // 4b74 + if(CardInfo.FailNum >= 5) + 4b96: 8346 ld.b r2, (r3, 0x6) + 4b98: 3a04 cmphsi r2, 5 + 4b9a: 0c08 bf 0x4baa // 4baa + CardInfo.FailNum = 0; + 4b9c: 3200 movi r2, 0 + 4b9e: a346 st.b r2, (r3, 0x6) + CardInfo.SuccNum = 0; + 4ba0: a347 st.b r2, (r3, 0x7) + CardInfo.BlockSucc = BLOCK_READ_FAILD; + 4ba2: 3300 movi r3, 0 + 4ba4: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "BLOCK_READ_FAILD"); + 4ba6: 102c lrw r1, 0x5eb7 // 4bd4 + 4ba8: 07f3 br 0x4b8e // 4b8e + CardInfo.FailNum++; + 4baa: 2200 addi r2, 1 + 4bac: a346 st.b r2, (r3, 0x6) + 4bae: 07e3 br 0x4b74 // 4b74 + SysTick_1ms = Card_Tick; + 4bb0: 106a lrw r3, 0x200000a4 // 4bd8 + 4bb2: 9360 ld.w r3, (r3, 0x0) + 4bb4: b560 st.w r3, (r5, 0x0) + CardInfo.reset_tick = SysTick_1ms; + 4bb6: 9560 ld.w r3, (r5, 0x0) + 4bb8: b46c st.w r3, (r4, 0x30) +} + 4bba: 07e8 br 0x4b8a // 4b8a + 4bbc: 200000b8 .long 0x200000b8 + 4bc0: 200002d8 .long 0x200002d8 + 4bc4: 20000418 .long 0x20000418 + 4bc8: 00005e95 .long 0x00005e95 + 4bcc: 00005ec8 .long 0x00005ec8 + 4bd0: 00005ea5 .long 0x00005ea5 + 4bd4: 00005eb7 .long 0x00005eb7 + 4bd8: 200000a4 .long 0x200000a4 + +Disassembly of section .text.Detect_SPI_task: + +00004bdc : + +void Detect_SPI_task(void){ + 4bdc: 14d1 push r4, r15 + + if (CardInfo.RC522_Reset_Falg == 1) { + 4bde: 1095 lrw r4, 0x20000418 // 4c30 + 4be0: 3320 movi r3, 32 + 4be2: 60d0 addu r3, r4 + 4be4: 8368 ld.b r3, (r3, 0x8) + 4be6: 3b41 cmpnei r3, 1 + 4be8: 0810 bt 0x4c08 // 4c08 + if (SysTick_1ms - CardInfo.Reset_Tick >= 1000) { + 4bea: 1053 lrw r2, 0x200000b8 // 4c34 + 4bec: 9260 ld.w r3, (r2, 0x0) + 4bee: 942b ld.w r1, (r4, 0x2c) + 4bf0: 60c6 subu r3, r1 + 4bf2: 1032 lrw r1, 0x3e7 // 4c38 + 4bf4: 64c4 cmphs r1, r3 + 4bf6: 0809 bt 0x4c08 // 4c08 + CardInfo.Reset_Tick = SysTick_1ms; + 4bf8: 9260 ld.w r3, (r2, 0x0) + 4bfa: b46b st.w r3, (r4, 0x2c) + RC522_Reset(); + 4bfc: e3fffde6 bsr 0x47c8 // 47c8 + Dbg_Println(DBG_BIT_SYS_STATUS, "SPI INIT"); + 4c00: 102f lrw r1, 0x5ed7 // 4c3c + 4c02: 3000 movi r0, 0 + 4c04: e3fffcde bsr 0x45c0 // 45c0 + } + } + + //每10s读不到卡便复位并初始化rc522 + if((CardInfo.BlockSucc == BLOCK_READ_FAILD)&&(SysTick_1ms - CardInfo.reset_tick>= 10000)) { + 4c08: 8467 ld.b r3, (r4, 0x7) + 4c0a: 3b40 cmpnei r3, 0 + 4c0c: 0810 bt 0x4c2c // 4c2c + 4c0e: 104a lrw r2, 0x200000b8 // 4c34 + 4c10: 9260 ld.w r3, (r2, 0x0) + 4c12: 942c ld.w r1, (r4, 0x30) + 4c14: 60c6 subu r3, r1 + 4c16: 102b lrw r1, 0x270f // 4c40 + 4c18: 64c4 cmphs r1, r3 + 4c1a: 0809 bt 0x4c2c // 4c2c + CardInfo.reset_tick = SysTick_1ms; + 4c1c: 9260 ld.w r3, (r2, 0x0) + 4c1e: b46c st.w r3, (r4, 0x30) + RC522_Reset(); + 4c20: e3fffdd4 bsr 0x47c8 // 47c8 + Dbg_Println(DBG_BIT_SYS_STATUS, "not read for 10 seconds"); + 4c24: 1028 lrw r1, 0x5ee0 // 4c44 + 4c26: 3000 movi r0, 0 + 4c28: e3fffccc bsr 0x45c0 // 45c0 + } + +} + 4c2c: 1491 pop r4, r15 + 4c2e: 0000 bkpt + 4c30: 20000418 .long 0x20000418 + 4c34: 200000b8 .long 0x200000b8 + 4c38: 000003e7 .long 0x000003e7 + 4c3c: 00005ed7 .long 0x00005ed7 + 4c40: 0000270f .long 0x0000270f + 4c44: 00005ee0 .long 0x00005ee0 + +Disassembly of section .text.RLY_Light_Ctrl: + +00004c48 : +} + +volatile U32_T Tim_Flag = 0; +///无RF模块继电器和背光控制函数 +void RLY_Light_Ctrl(U8_T state) +{ + 4c48: 14d0 push r15 + if(state == 0x01) + 4c4a: 3841 cmpnei r0, 1 + 4c4c: 0807 bt 0x4c5a // 4c5a + { +// CTRL_RLY_ON; + GPIO_Write_High(GPIOA0,13); + 4c4e: 106e lrw r3, 0x2000004c // 4c84 + 4c50: 310d movi r1, 13 + 4c52: 9300 ld.w r0, (r3, 0x0) + 4c54: e3fff37d bsr 0x334e // 334e + else{ + GPIO_Write_Low(GPIOA0,13); + } +// CTRL_RLY_OFF; + } +} + 4c58: 1490 pop r15 + else if(state == 0x00){ + 4c5a: 3840 cmpnei r0, 0 + 4c5c: 0bfe bt 0x4c58 // 4c58 + if(CardInfo.CTR_PLYFlag == 1) + 4c5e: 106b lrw r3, 0x20000418 // 4c88 + 4c60: 8360 ld.b r3, (r3, 0x0) + 4c62: 3b41 cmpnei r3, 1 + 4c64: 0809 bt 0x4c76 // 4c76 + if(SysTick_1ms - Tim_Flag >= CTR_State_Tick) + 4c66: 106a lrw r3, 0x200000b8 // 4c8c + 4c68: 104a lrw r2, 0x200002dc // 4c90 + 4c6a: 9360 ld.w r3, (r3, 0x0) + 4c6c: 9240 ld.w r2, (r2, 0x0) + 4c6e: 60ca subu r3, r2 + 4c70: 1049 lrw r2, 0x752f // 4c94 + 4c72: 64c8 cmphs r2, r3 + 4c74: 0bf2 bt 0x4c58 // 4c58 + GPIO_Write_Low(GPIOA0,13); + 4c76: 1064 lrw r3, 0x2000004c // 4c84 + 4c78: 310d movi r1, 13 + 4c7a: 9300 ld.w r0, (r3, 0x0) + 4c7c: e3fff36d bsr 0x3356 // 3356 +} + 4c80: 07ec br 0x4c58 // 4c58 + 4c82: 0000 bkpt + 4c84: 2000004c .long 0x2000004c + 4c88: 20000418 .long 0x20000418 + 4c8c: 200000b8 .long 0x200000b8 + 4c90: 200002dc .long 0x200002dc + 4c94: 0000752f .long 0x0000752f + +Disassembly of section .text.KEY1_LONG_PRESS_RELEASE_Handler: + +00004c98 : +} + + +///无RF模块的门磁长按释放事件 +void KEY1_LONG_PRESS_RELEASE_Handler(void* btn) +{ + 4c98: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_RELEASE_Handler"); + 4c9a: 1033 lrw r1, 0x5ef8 // 4ce4 + 4c9c: 3000 movi r0, 0 + 4c9e: e3fffc91 bsr 0x45c0 // 45c0 + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4ca2: 1072 lrw r3, 0x20000418 // 4ce8 + 4ca4: 8367 ld.b r3, (r3, 0x7) + 4ca6: 3b40 cmpnei r3, 0 + 4ca8: 1091 lrw r4, 0x20000484 // 4cec + 4caa: 0819 bt 0x4cdc // 4cdc + { + if(READ_RLY_STATE != 0x00) + 4cac: 1071 lrw r3, 0x2000004c // 4cf0 + 4cae: 3100 movi r1, 0 + 4cb0: 9300 ld.w r0, (r3, 0x0) + 4cb2: e3fff369 bsr 0x3384 // 3384 + 4cb6: 3840 cmpnei r0, 0 + 4cb8: 0c08 bf 0x4cc8 // 4cc8 + { + RLY_Light_Ctrl(1); + 4cba: 3001 movi r0, 1 + 4cbc: e3ffffc6 bsr 0x4c48 // 4c48 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 4cc0: 102d lrw r1, 0x5f13 // 4cf4 + 4cc2: 3000 movi r0, 0 + 4cc4: e3fffc7e bsr 0x45c0 // 45c0 + } + dm_in.DM_Tick = SysTick_1ms; + 4cc8: 106c lrw r3, 0x200000b8 // 4cf8 + 4cca: 104d lrw r2, 0x20000485 // 4cfc + 4ccc: 9360 ld.w r3, (r3, 0x0) + 4cce: 4b28 lsri r1, r3, 8 + 4cd0: a461 st.b r3, (r4, 0x1) + 4cd2: a221 st.b r1, (r2, 0x1) + 4cd4: 4b30 lsri r1, r3, 16 + 4cd6: 4b78 lsri r3, r3, 24 + 4cd8: a222 st.b r1, (r2, 0x2) + 4cda: a263 st.b r3, (r2, 0x3) + } + + dm_in.DM_State = 0x02; + 4cdc: 3302 movi r3, 2 + 4cde: a460 st.b r3, (r4, 0x0) +} + 4ce0: 1491 pop r4, r15 + 4ce2: 0000 bkpt + 4ce4: 00005ef8 .long 0x00005ef8 + 4ce8: 20000418 .long 0x20000418 + 4cec: 20000484 .long 0x20000484 + 4cf0: 2000004c .long 0x2000004c + 4cf4: 00005f13 .long 0x00005f13 + 4cf8: 200000b8 .long 0x200000b8 + 4cfc: 20000485 .long 0x20000485 + +Disassembly of section .text.LogicCtrl_Init: + +00004d00 : +{ + 4d00: 14d1 push r4, r15 + GPIO_Init(GPIOB0,CARD_SENS_PIN,Output); //CARD_SENS + 4d02: 108b lrw r4, 0x20000048 // 4d2c + 4d04: 3200 movi r2, 0 + 4d06: 9400 ld.w r0, (r4, 0x0) + 4d08: 3100 movi r1, 0 + 4d0a: e3fff2a1 bsr 0x324c // 324c + CTRL_CARD_OUT; + 4d0e: 9400 ld.w r0, (r4, 0x0) + 4d10: 3100 movi r1, 0 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4d12: 1088 lrw r4, 0x2000004c // 4d30 + CTRL_CARD_OUT; + 4d14: e3fff321 bsr 0x3356 // 3356 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4d18: 3200 movi r2, 0 + 4d1a: 9400 ld.w r0, (r4, 0x0) + 4d1c: 310c movi r1, 12 + 4d1e: e3fff297 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4d22: 9400 ld.w r0, (r4, 0x0) + 4d24: 310c movi r1, 12 + 4d26: e3fff318 bsr 0x3356 // 3356 +} + 4d2a: 1491 pop r4, r15 + 4d2c: 20000048 .long 0x20000048 + 4d30: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Task: + +00004d34 : +{ + 4d34: 14d2 push r4-r5, r15 + if((CardInfo.BlockSucc==BLOCK_READ_SUCC) && (READ_CARD_STATE == 0)) + 4d36: 1076 lrw r3, 0x20000418 // 4d8c + 4d38: 8347 ld.b r2, (r3, 0x7) + 4d3a: 3a41 cmpnei r2, 1 + 4d3c: 6d0f mov r4, r3 + 4d3e: 0816 bt 0x4d6a // 4d6a + 4d40: 10b4 lrw r5, 0x20000048 // 4d90 + 4d42: 3100 movi r1, 0 + 4d44: 9500 ld.w r0, (r5, 0x0) + 4d46: e3fff31f bsr 0x3384 // 3384 + 4d4a: 3840 cmpnei r0, 0 + 4d4c: 080f bt 0x4d6a // 4d6a + CTRL_CARD_IN; + 4d4e: 9500 ld.w r0, (r5, 0x0) + 4d50: 3100 movi r1, 0 + 4d52: e3fff2fe bsr 0x334e // 334e + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4d56: 9500 ld.w r0, (r5, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4d58: 3100 movi r1, 0 + 4d5a: e3fff315 bsr 0x3384 // 3384 + 4d5e: 6c83 mov r2, r0 + 4d60: 102d lrw r1, 0x5f25 // 4d94 + 4d62: 3000 movi r0, 0 + 4d64: e3fffc2e bsr 0x45c0 // 45c0 +} + 4d68: 1492 pop r4-r5, r15 + else if((CardInfo.BlockSucc==BLOCK_READ_FAILD) && (READ_CARD_STATE == 1)) + 4d6a: 8467 ld.b r3, (r4, 0x7) + 4d6c: 3b40 cmpnei r3, 0 + 4d6e: 0bfd bt 0x4d68 // 4d68 + 4d70: 1088 lrw r4, 0x20000048 // 4d90 + 4d72: 3100 movi r1, 0 + 4d74: 9400 ld.w r0, (r4, 0x0) + 4d76: e3fff307 bsr 0x3384 // 3384 + 4d7a: 3841 cmpnei r0, 1 + 4d7c: 0bf6 bt 0x4d68 // 4d68 + CTRL_CARD_OUT; + 4d7e: 9400 ld.w r0, (r4, 0x0) + 4d80: 3100 movi r1, 0 + 4d82: e3fff2ea bsr 0x3356 // 3356 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Pin State:%d",READ_CARD_STATE); + 4d86: 9400 ld.w r0, (r4, 0x0) + 4d88: 07e8 br 0x4d58 // 4d58 + 4d8a: 0000 bkpt + 4d8c: 20000418 .long 0x20000418 + 4d90: 20000048 .long 0x20000048 + 4d94: 00005f25 .long 0x00005f25 + +Disassembly of section .text.LogicCtrl_NoRF_Init: + +00004d98 : + + +///无RF模块的初始化 +void LogicCtrl_NoRF_Init(void) +{ + 4d98: 14d1 push r4, r15 + GPIO_Init(GPIOA0,RLY_OUT_PIN,Output); + 4d9a: 109c lrw r4, 0x2000004c // 4e08 + 4d9c: 3200 movi r2, 0 + 4d9e: 9400 ld.w r0, (r4, 0x0) + 4da0: 3100 movi r1, 0 + 4da2: e3fff255 bsr 0x324c // 324c + CTRL_RLY_OFF; + 4da6: 9400 ld.w r0, (r4, 0x0) + 4da8: 3100 movi r1, 0 + 4daa: e3fff2d2 bsr 0x334e // 334e + + memset(&dm_in,0,sizeof(DM_IN_INF)); + 4dae: 3209 movi r2, 9 + 4db0: 3100 movi r1, 0 + 4db2: 1017 lrw r0, 0x20000484 // 4e0c + 4db4: e3ffe634 bsr 0x1a1c // 1a1c <__memset_fast> + + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 4db8: 9400 ld.w r0, (r4, 0x0) + 4dba: 3201 movi r2, 1 + 4dbc: 3101 movi r1, 1 + 4dbe: e3fff247 bsr 0x324c // 324c + + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4dc2: 3200 movi r2, 0 + 4dc4: 9400 ld.w r0, (r4, 0x0) + 4dc6: 310c movi r1, 12 + 4dc8: e3fff242 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4dcc: 9400 ld.w r0, (r4, 0x0) + 4dce: 310c movi r1, 12 + 4dd0: e3fff2c3 bsr 0x3356 // 3356 + + + GPIO_Init(GPIOA0,13,Output); //继电器, + 4dd4: 3200 movi r2, 0 + 4dd6: 9400 ld.w r0, (r4, 0x0) + 4dd8: 310d movi r1, 13 + 4dda: e3fff239 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,13); //初始拉低断开,插卡拉高打开 + 4dde: 9400 ld.w r0, (r4, 0x0) + 4de0: 310d movi r1, 13 + + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 4de2: 108c lrw r4, 0x20000454 // 4e10 + GPIO_Write_Low(GPIOA0,13); //初始拉低断开,插卡拉高打开 + 4de4: e3fff2b9 bsr 0x3356 // 3356 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 4de8: 3301 movi r3, 1 + 4dea: 6c13 mov r0, r4 + 4dec: 3200 movi r2, 0 + 4dee: 102a lrw r1, 0x51b0 // 4e14 + 4df0: e000010e bsr 0x500c // 500c + + button_attach(&KEY1, LONG_PRESS_RELEASE, KEY1_LONG_PRESS_RELEASE_Handler); + 4df4: 1049 lrw r2, 0x4c98 // 4e18 + 4df6: 3107 movi r1, 7 + 4df8: 6c13 mov r0, r4 + 4dfa: e0000126 bsr 0x5046 // 5046 + button_start(&KEY1); + 4dfe: 6c13 mov r0, r4 + 4e00: e00001b8 bsr 0x5170 // 5170 +} + 4e04: 1491 pop r4, r15 + 4e06: 0000 bkpt + 4e08: 2000004c .long 0x2000004c + 4e0c: 20000484 .long 0x20000484 + 4e10: 20000454 .long 0x20000454 + 4e14: 000051b0 .long 0x000051b0 + 4e18: 00004c98 .long 0x00004c98 + +Disassembly of section .text.LogicCtrl_NoRF_Task: + +00004e1c : + + +///无RF模块的轮询任务 +void LogicCtrl_NoRF_Task(void) +{ + 4e1c: 14d3 push r4-r6, r15 + static U32_T card_tick = 0; + static U32_T test_tick = 0; + + CardInfo.CTR_PLYFlag = CTR_State_Flag; + 4e1e: 3301 movi r3, 1 + 4e20: 11c9 lrw r6, 0x20000418 // 4ec4 + + if(SysTick_1ms - test_tick > 5) + 4e22: 118a lrw r4, 0x200000b8 // 4ec8 + 4e24: 11aa lrw r5, 0x200002dc // 4ecc + CardInfo.CTR_PLYFlag = CTR_State_Flag; + 4e26: a660 st.b r3, (r6, 0x0) + if(SysTick_1ms - test_tick > 5) + 4e28: 9541 ld.w r2, (r5, 0x4) + 4e2a: 9460 ld.w r3, (r4, 0x0) + 4e2c: 60ca subu r3, r2 + 4e2e: 3b05 cmphsi r3, 6 + 4e30: 0c05 bf 0x4e3a // 4e3a + { + test_tick = SysTick_1ms; + 4e32: 9460 ld.w r3, (r4, 0x0) + 4e34: b561 st.w r3, (r5, 0x4) + button_ticks(); + 4e36: e00001af bsr 0x5194 // 5194 + } + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 4e3a: 8667 ld.b r3, (r6, 0x7) + 4e3c: 3b41 cmpnei r3, 1 + 4e3e: 0830 bt 0x4e9e // 4e9e + { + RLY_Light_Ctrl(1); + 4e40: 3001 movi r0, 1 + 4e42: e3ffff03 bsr 0x4c48 // 4c48 + card_tick = SysTick_1ms; + 4e46: 9460 ld.w r3, (r4, 0x0) + 4e48: b562 st.w r3, (r5, 0x8) + dm_in.DM_State = 0x00; + 4e4a: 3200 movi r2, 0 + 4e4c: 1161 lrw r3, 0x20000484 // 4ed0 + 4e4e: a340 st.b r2, (r3, 0x0) + card_tick = SysTick_1ms; + RLY_Light_Ctrl(0); + + } + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4e50: 8667 ld.b r3, (r6, 0x7) + 4e52: 3b40 cmpnei r3, 0 + 4e54: 0824 bt 0x4e9c // 4e9c + { + + if((dm_in.DM_State == 0x02) && (SysTick_1ms - dm_in.DM_Tick >= 30000)) + 4e56: 107f lrw r3, 0x20000484 // 4ed0 + 4e58: 8340 ld.b r2, (r3, 0x0) + 4e5a: 3a42 cmpnei r2, 2 + 4e5c: 0820 bt 0x4e9c // 4e9c + 4e5e: 8322 ld.b r1, (r3, 0x2) + 4e60: 8341 ld.b r2, (r3, 0x1) + 4e62: 4128 lsli r1, r1, 8 + 4e64: 6c48 or r1, r2 + 4e66: 8343 ld.b r2, (r3, 0x3) + 4e68: 4250 lsli r2, r2, 16 + 4e6a: 6c48 or r1, r2 + 4e6c: 8344 ld.b r2, (r3, 0x4) + 4e6e: 4258 lsli r2, r2, 24 + 4e70: 6c84 or r2, r1 + 4e72: 9400 ld.w r0, (r4, 0x0) + 4e74: 600a subu r0, r2 + 4e76: 1058 lrw r2, 0x752f // 4ed4 + 4e78: 6408 cmphs r2, r0 + 4e7a: 0811 bt 0x4e9c // 4e9c + { + dm_in.DM_Tick = SysTick_1ms; + 4e7c: 9440 ld.w r2, (r4, 0x0) + 4e7e: 5b22 addi r1, r3, 1 + 4e80: a341 st.b r2, (r3, 0x1) + 4e82: 4a68 lsri r3, r2, 8 + 4e84: a161 st.b r3, (r1, 0x1) + RLY_Light_Ctrl(0); + 4e86: 3000 movi r0, 0 + dm_in.DM_Tick = SysTick_1ms; + 4e88: 4a70 lsri r3, r2, 16 + 4e8a: 4a58 lsri r2, r2, 24 + 4e8c: a162 st.b r3, (r1, 0x2) + 4e8e: a143 st.b r2, (r1, 0x3) + RLY_Light_Ctrl(0); + 4e90: e3fffedc bsr 0x4c48 // 4c48 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 4e94: 1031 lrw r1, 0x5f4a // 4ed8 + 4e96: 3000 movi r0, 0 + 4e98: e3fffb94 bsr 0x45c0 // 45c0 + } + } +} + 4e9c: 1493 pop r4-r6, r15 + else if((CardInfo.BlockSucc == BLOCK_READ_FAILD) && (dm_in.DM_State == 0x00) && (SysTick_1ms - card_tick >= CTR_State_Tick)) + 4e9e: 3b40 cmpnei r3, 0 + 4ea0: 0bd8 bt 0x4e50 // 4e50 + 4ea2: 106c lrw r3, 0x20000484 // 4ed0 + 4ea4: 8360 ld.b r3, (r3, 0x0) + 4ea6: 3b40 cmpnei r3, 0 + 4ea8: 0bd4 bt 0x4e50 // 4e50 + 4eaa: 9542 ld.w r2, (r5, 0x8) + 4eac: 9460 ld.w r3, (r4, 0x0) + 4eae: 60ca subu r3, r2 + 4eb0: 1049 lrw r2, 0x752f // 4ed4 + 4eb2: 64c8 cmphs r2, r3 + 4eb4: 0bce bt 0x4e50 // 4e50 + card_tick = SysTick_1ms; + 4eb6: 9460 ld.w r3, (r4, 0x0) + RLY_Light_Ctrl(0); + 4eb8: 3000 movi r0, 0 + card_tick = SysTick_1ms; + 4eba: b562 st.w r3, (r5, 0x8) + RLY_Light_Ctrl(0); + 4ebc: e3fffec6 bsr 0x4c48 // 4c48 + 4ec0: 07c8 br 0x4e50 // 4e50 + 4ec2: 0000 bkpt + 4ec4: 20000418 .long 0x20000418 + 4ec8: 200000b8 .long 0x200000b8 + 4ecc: 200002dc .long 0x200002dc + 4ed0: 20000484 .long 0x20000484 + 4ed4: 0000752f .long 0x0000752f + 4ed8: 00005f4a .long 0x00005f4a + +Disassembly of section .text.BackLight_Task: + +00004edc : + +void BackLight_Task(void){ + if (CardInfo.BlockSucc == BLOCK_READ_SUCC) + 4edc: 1067 lrw r3, 0x20000418 // 4ef8 + 4ede: 8367 ld.b r3, (r3, 0x7) + 4ee0: 3b41 cmpnei r3, 1 + 4ee2: 1067 lrw r3, 0x20000024 // 4efc + 4ee4: 0805 bt 0x4eee // 4eee + GPT0->CMPA = 0; + 4ee6: 9360 ld.w r3, (r3, 0x0) + 4ee8: 3200 movi r2, 0 + 4eea: b34b st.w r2, (r3, 0x2c) + + }else + { + Ctrl_Backlight(1);//开背光 + } +} + 4eec: 783c jmp r15 + GPT0->CMPA = 2000; + 4eee: 9340 ld.w r2, (r3, 0x0) + 4ef0: 33fa movi r3, 250 + 4ef2: 4363 lsli r3, r3, 3 + 4ef4: b26b st.w r3, (r2, 0x2c) +} + 4ef6: 07fb br 0x4eec // 4eec + 4ef8: 20000418 .long 0x20000418 + 4efc: 20000024 .long 0x20000024 + +Disassembly of section .text.Detect_WIFI_Task: + +00004f00 : +//检测有无WIFI模组,判断10次,每次间隔10ms +void Detect_WIFI_Task(void){ + 4f00: 14d1 push r4, r15 + + if (finish_flag == 1) return; + 4f02: 107c lrw r3, 0x200000a2 // 4f70 + 4f04: 8340 ld.b r2, (r3, 0x0) + 4f06: 3a41 cmpnei r2, 1 + 4f08: 0c1c bf 0x4f40 // 4f40 + + if (detect_count <10) { + 4f0a: 109b lrw r4, 0x200000ac // 4f74 + 4f0c: 8440 ld.b r2, (r4, 0x0) + 4f0e: 3a09 cmphsi r2, 10 + 4f10: 081c bt 0x4f48 // 4f48 + if(SysTick_1ms - detect_tick >= 10) { + 4f12: 103a lrw r1, 0x200000b8 // 4f78 + 4f14: 105a lrw r2, 0x200000a8 // 4f7c + 4f16: 9160 ld.w r3, (r1, 0x0) + 4f18: 9200 ld.w r0, (r2, 0x0) + 4f1a: 60c2 subu r3, r0 + 4f1c: 3b09 cmphsi r3, 10 + 4f1e: 0c11 bf 0x4f40 // 4f40 + detect_tick = SysTick_1ms; + 4f20: 9160 ld.w r3, (r1, 0x0) + 4f22: b260 st.w r3, (r2, 0x0) + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 4f24: 3102 movi r1, 2 + 4f26: 1077 lrw r3, 0x20000048 // 4f80 + 4f28: 9300 ld.w r0, (r3, 0x0) + 4f2a: e3fff225 bsr 0x3374 // 3374 + 4f2e: 1076 lrw r3, 0x200000a0 // 4f84 + 4f30: a300 st.b r0, (r3, 0x0) + + if (last_state != rf_exist) { + 4f32: 1076 lrw r3, 0x200000a1 // 4f88 + 4f34: 8340 ld.b r2, (r3, 0x0) + 4f36: 640a cmpne r2, r0 + 4f38: 0c05 bf 0x4f42 // 4f42 + last_state = rf_exist; + 4f3a: a300 st.b r0, (r3, 0x0) + detect_count = 0; + 4f3c: 3300 movi r3, 0 + }else { + detect_count++; + 4f3e: a460 st.b r3, (r4, 0x0) + { + LogicCtrl_Init(); + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + } + } +} + 4f40: 1491 pop r4, r15 + detect_count++; + 4f42: 8460 ld.b r3, (r4, 0x0) + 4f44: 2300 addi r3, 1 + 4f46: 07fc br 0x4f3e // 4f3e + finish_flag = 1; + 4f48: 3201 movi r2, 1 + 4f4a: a340 st.b r2, (r3, 0x0) + if(rf_exist == 0x01) //不带无线模块初始化 + 4f4c: 106e lrw r3, 0x200000a0 // 4f84 + 4f4e: 8360 ld.b r3, (r3, 0x0) + 4f50: 3b41 cmpnei r3, 1 + 4f52: 0808 bt 0x4f62 // 4f62 + LogicCtrl_NoRF_Init(); + 4f54: e3ffff22 bsr 0x4d98 // 4d98 + Dbg_Println(DBG_BIT_SYS_STATUS, "NoRF"); + 4f58: 102d lrw r1, 0x5f5b // 4f8c + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 4f5a: 3000 movi r0, 0 + 4f5c: e3fffb32 bsr 0x45c0 // 45c0 + 4f60: 07f0 br 0x4f40 // 4f40 + else if(rf_exist == 0x00) //带无线模块初始化 + 4f62: 3b40 cmpnei r3, 0 + 4f64: 0bee bt 0x4f40 // 4f40 + LogicCtrl_Init(); + 4f66: e3fffecd bsr 0x4d00 // 4d00 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 4f6a: 102a lrw r1, 0x5f5d // 4f90 + 4f6c: 07f7 br 0x4f5a // 4f5a + 4f6e: 0000 bkpt + 4f70: 200000a2 .long 0x200000a2 + 4f74: 200000ac .long 0x200000ac + 4f78: 200000b8 .long 0x200000b8 + 4f7c: 200000a8 .long 0x200000a8 + 4f80: 20000048 .long 0x20000048 + 4f84: 200000a0 .long 0x200000a0 + 4f88: 200000a1 .long 0x200000a1 + 4f8c: 00005f5b .long 0x00005f5b + 4f90: 00005f5d .long 0x00005f5d + +Disassembly of section .text.Led_Task: + +00004f94 : + +} + + + +void Led_Task(void){ + 4f94: 14d1 push r4, r15 + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 4f96: 1079 lrw r3, 0x20000418 // 4ff8 + 4f98: 8347 ld.b r2, (r3, 0x7) + 4f9a: 3a41 cmpnei r2, 1 + 4f9c: 0807 bt 0x4faa // 4faa + { + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4f9e: 1078 lrw r3, 0x2000004c // 4ffc + 4fa0: 310c movi r1, 12 + 4fa2: 9300 ld.w r0, (r3, 0x0) + 4fa4: e3fff1d9 bsr 0x3356 // 3356 + dm_in.DM_Led_Tick = SysTick_1ms; + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + } + } + } +} + 4fa8: 1491 pop r4, r15 + if (CardInfo.RC522_Reset_Falg == 1) + 4faa: 231f addi r3, 32 + 4fac: 8368 ld.b r3, (r3, 0x8) + 4fae: 3b41 cmpnei r3, 1 + 4fb0: 1074 lrw r3, 0x20000484 // 5000 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) + 4fb2: 8326 ld.b r1, (r3, 0x6) + 4fb4: 8345 ld.b r2, (r3, 0x5) + 4fb6: 4128 lsli r1, r1, 8 + 4fb8: 6c48 or r1, r2 + 4fba: 8347 ld.b r2, (r3, 0x7) + 4fbc: 4250 lsli r2, r2, 16 + 4fbe: 6c48 or r1, r2 + 4fc0: 8348 ld.b r2, (r3, 0x8) + 4fc2: 1011 lrw r0, 0x200000b8 // 5004 + 4fc4: 4258 lsli r2, r2, 24 + 4fc6: 9080 ld.w r4, (r0, 0x0) + 4fc8: 6c84 or r2, r1 + 4fca: 610a subu r4, r2 + if (CardInfo.RC522_Reset_Falg == 1) + 4fcc: 0813 bt 0x4ff2 // 4ff2 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) + 4fce: 3263 movi r2, 99 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) + 4fd0: 6508 cmphs r2, r4 + 4fd2: 0beb bt 0x4fa8 // 4fa8 + dm_in.DM_Led_Tick = SysTick_1ms; + 4fd4: 9040 ld.w r2, (r0, 0x0) + 4fd6: 5b32 addi r1, r3, 5 + 4fd8: a345 st.b r2, (r3, 0x5) + 4fda: 4a68 lsri r3, r2, 8 + 4fdc: a161 st.b r3, (r1, 0x1) + 4fde: 4a70 lsri r3, r2, 16 + 4fe0: a162 st.b r3, (r1, 0x2) + 4fe2: 4a58 lsri r2, r2, 24 + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 4fe4: 1066 lrw r3, 0x2000004c // 4ffc + 4fe6: 9300 ld.w r0, (r3, 0x0) + dm_in.DM_Led_Tick = SysTick_1ms; + 4fe8: a143 st.b r2, (r1, 0x3) + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 4fea: 310c movi r1, 12 + 4fec: e3fff1b9 bsr 0x335e // 335e +} + 4ff0: 07dc br 0x4fa8 // 4fa8 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) + 4ff2: 1046 lrw r2, 0x1f3 // 5008 + 4ff4: 07ee br 0x4fd0 // 4fd0 + 4ff6: 0000 bkpt + 4ff8: 20000418 .long 0x20000418 + 4ffc: 2000004c .long 0x2000004c + 5000: 20000484 .long 0x20000484 + 5004: 200000b8 .long 0x200000b8 + 5008: 000001f3 .long 0x000001f3 + +Disassembly of section .text.button_init: + +0000500c : + * @param active_level: pressed GPIO level. + * @param button_id: the button id. + * @retval None + */ +void button_init(struct Button* handle, uint8_t(*pin_level)(uint8_t), uint8_t active_level, uint8_t button_id) +{ + 500c: 14d4 push r4-r7, r15 + 500e: 6dc7 mov r7, r1 + 5010: 6d8b mov r6, r2 + memset(handle, 0, sizeof(struct Button)); + 5012: 3100 movi r1, 0 + 5014: 3230 movi r2, 48 +{ + 5016: 6d03 mov r4, r0 + 5018: 6d4f mov r5, r3 + memset(handle, 0, sizeof(struct Button)); + 501a: e3ffe501 bsr 0x1a1c // 1a1c <__memset_fast> + handle->event = (uint8_t)NONE_PRESS; + 501e: 3300 movi r3, 0 + 5020: 2b6f subi r3, 112 + 5022: a462 st.b r3, (r4, 0x2) + handle->hal_button_Level = pin_level; + 5024: b4e2 st.w r7, (r4, 0x8) + handle->button_level = handle->hal_button_Level(button_id); + 5026: 6c17 mov r0, r5 + 5028: 7bdd jsr r7 + 502a: 8443 ld.b r2, (r4, 0x3) + 502c: 337f movi r3, 127 + 502e: 688c and r2, r3 + 5030: 4007 lsli r0, r0, 7 + 5032: 6c08 or r0, r2 + handle->active_level = active_level; + 5034: 3201 movi r2, 1 + 5036: 6988 and r6, r2 + 5038: 7480 zextb r2, r0 + 503a: 46c6 lsli r6, r6, 6 + 503c: 3a86 bclri r2, 6 + 503e: 6c98 or r2, r6 + 5040: a443 st.b r2, (r4, 0x3) + handle->button_id = button_id; + 5042: a4a4 st.b r5, (r4, 0x4) +} + 5044: 1494 pop r4-r7, r15 + +Disassembly of section .text.button_attach: + +00005046 : + * @param cb: callback function. + * @retval None + */ +void button_attach(struct Button* handle, PressEvent event, BtnCallback cb) +{ + handle->cb[event] = cb; + 5046: 2102 addi r1, 3 + 5048: 4122 lsli r1, r1, 2 + 504a: 6040 addu r1, r0 + 504c: b140 st.w r2, (r1, 0x0) +} + 504e: 783c jmp r15 + +Disassembly of section .text.button_handler: + +00005050 : + + + + +void button_handler(struct Button* handle) +{ + 5050: 14d3 push r4-r6, r15 + 5052: 6d03 mov r4, r0 + uint8_t read_gpio_level = handle->hal_button_Level(handle->button_id); + 5054: 9462 ld.w r3, (r4, 0x8) + 5056: 8004 ld.b r0, (r0, 0x4) + 5058: 7bcd jsr r3 + + //ticks counter working.. + if((handle->state) > 0) handle->ticks++; + 505a: 8463 ld.b r3, (r4, 0x3) + 505c: 433d lsli r1, r3, 29 + 505e: 493d lsri r1, r1, 29 + 5060: 3940 cmpnei r1, 0 + 5062: 0c04 bf 0x506a // 506a + 5064: 8c40 ld.h r2, (r4, 0x0) + 5066: 2200 addi r2, 1 + 5068: ac40 st.h r2, (r4, 0x0) + + /*------------button debounce handle---------------*/ + if(read_gpio_level != handle->button_level) { //not equal to prev one + 506a: 4b47 lsri r2, r3, 7 + 506c: 640a cmpne r2, r0 + 506e: 0c21 bf 0x50b0 // 50b0 + //continue read 3 times same new level change + if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) { + 5070: 435a lsli r2, r3, 26 + 5072: 4a5d lsri r2, r2, 29 + 5074: 3507 movi r5, 7 + 5076: 2200 addi r2, 1 + 5078: 6894 and r2, r5 + 507a: 7488 zextb r2, r2 + 507c: 6948 and r5, r2 + 507e: 45c3 lsli r6, r5, 3 + 5080: 3538 movi r5, 56 + 5082: 68d5 andn r3, r5 + 5084: 6d8c or r6, r3 + 5086: 3a02 cmphsi r2, 3 + 5088: a4c3 st.b r6, (r4, 0x3) + 508a: 0c09 bf 0x509c // 509c + handle->button_level = read_gpio_level; + 508c: 4067 lsli r3, r0, 7 + 508e: 327f movi r2, 127 + 5090: 8403 ld.b r0, (r4, 0x3) + 5092: 6808 and r0, r2 + 5094: 6c0c or r0, r3 + handle->debounce_cnt = 0; + 5096: 7400 zextb r0, r0 + 5098: 6815 andn r0, r5 + 509a: a403 st.b r0, (r4, 0x3) + } else { //leved not change ,counter reset. + handle->debounce_cnt = 0; + } + + /*-----------------State machine-------------------*/ + switch (handle->state) { + 509c: 3941 cmpnei r1, 1 + 509e: 0c2f bf 0x50fc // 50fc + 50a0: 3940 cmpnei r1, 0 + 50a2: 0c0b bf 0x50b8 // 50b8 + 50a4: 3945 cmpnei r1, 5 + 50a6: 0c53 bf 0x514c // 514c +// Dbg_Println(DBG_BIT_SYS_STATUS,"key state long press release"); + handle->state = 0; //reset + } + break; + default: + handle->state = 0; //reset + 50a8: 8463 ld.b r3, (r4, 0x3) + 50aa: 3207 movi r2, 7 + 50ac: 68c9 andn r3, r2 + 50ae: 0420 br 0x50ee // 50ee + handle->debounce_cnt = 0; + 50b0: 3238 movi r2, 56 + 50b2: 68c9 andn r3, r2 + 50b4: a463 st.b r3, (r4, 0x3) + 50b6: 07f3 br 0x509c // 509c + if(handle->button_level == handle->active_level) { //start press down + 50b8: 8463 ld.b r3, (r4, 0x3) + 50ba: 4359 lsli r2, r3, 25 + 50bc: 4a5f lsri r2, r2, 31 + 50be: 4b67 lsri r3, r3, 7 + 50c0: 648e cmpne r3, r2 + 50c2: 8462 ld.b r3, (r4, 0x2) + handle->event = (uint8_t)PRESS_DOWN; + 50c4: 320f movi r2, 15 + 50c6: 68c8 and r3, r2 + if(handle->button_level == handle->active_level) { //start press down + 50c8: 0815 bt 0x50f2 // 50f2 + handle->event = (uint8_t)PRESS_DOWN; + 50ca: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_DOWN); + 50cc: 9463 ld.w r3, (r4, 0xc) + 50ce: 3b40 cmpnei r3, 0 + 50d0: 0c03 bf 0x50d6 // 50d6 + 50d2: 6c13 mov r0, r4 + 50d4: 7bcd jsr r3 + handle->ticks = 0; + 50d6: 3300 movi r3, 0 + handle->repeat = 1; + 50d8: 8442 ld.b r2, (r4, 0x2) + handle->ticks = 0; + 50da: ac60 st.h r3, (r4, 0x0) + handle->repeat = 1; + 50dc: 330f movi r3, 15 + 50de: 688d andn r2, r3 + 50e0: 3101 movi r1, 1 + 50e2: 6c84 or r2, r1 + 50e4: a442 st.b r2, (r4, 0x2) + handle->state = 1; + 50e6: 8463 ld.b r3, (r4, 0x3) + 50e8: 3207 movi r2, 7 + 50ea: 68c9 andn r3, r2 + 50ec: 6cc4 or r3, r1 + handle->state = 0; //reset + 50ee: a463 st.b r3, (r4, 0x3) + break; + } +} + 50f0: 0405 br 0x50fa // 50fa + handle->event = (uint8_t)NONE_PRESS; + 50f2: 3200 movi r2, 0 + 50f4: 2a6f subi r2, 112 + 50f6: 6cc8 or r3, r2 + 50f8: a462 st.b r3, (r4, 0x2) +} + 50fa: 1493 pop r4-r6, r15 + if(handle->button_level != handle->active_level) { //released press up + 50fc: 8463 ld.b r3, (r4, 0x3) + 50fe: 4359 lsli r2, r3, 25 + 5100: 4a5f lsri r2, r2, 31 + 5102: 4b67 lsri r3, r3, 7 + 5104: 648e cmpne r3, r2 + 5106: 0c0e bf 0x5122 // 5122 + handle->event = (uint8_t)PRESS_UP; + 5108: 8462 ld.b r3, (r4, 0x2) + 510a: 320f movi r2, 15 + 510c: 68c8 and r3, r2 + 510e: 3ba4 bseti r3, 4 + 5110: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_UP); + 5112: 9464 ld.w r3, (r4, 0x10) + 5114: 3b40 cmpnei r3, 0 + 5116: 0c03 bf 0x511c // 511c + 5118: 6c13 mov r0, r4 + 511a: 7bcd jsr r3 + handle->ticks = 0; + 511c: 3300 movi r3, 0 + 511e: ac60 st.h r3, (r4, 0x0) + 5120: 07c4 br 0x50a8 // 50a8 + } else if(handle->ticks > LONG_TICKS) { + 5122: 8c40 ld.h r2, (r4, 0x0) + 5124: 33c8 movi r3, 200 + 5126: 648c cmphs r3, r2 + 5128: 0be9 bt 0x50fa // 50fa + handle->event = (uint8_t)LONG_PRESS_START; + 512a: 8462 ld.b r3, (r4, 0x2) + 512c: 320f movi r2, 15 + 512e: 68c8 and r3, r2 + 5130: 3ba4 bseti r3, 4 + 5132: 3ba6 bseti r3, 6 + 5134: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_START); + 5136: 9468 ld.w r3, (r4, 0x20) + 5138: 3b40 cmpnei r3, 0 + 513a: 0c03 bf 0x5140 // 5140 + 513c: 6c13 mov r0, r4 + 513e: 7bcd jsr r3 + handle->state = 5; + 5140: 8463 ld.b r3, (r4, 0x3) + 5142: 3207 movi r2, 7 + 5144: 68c9 andn r3, r2 + 5146: 3ba0 bseti r3, 0 + 5148: 3ba2 bseti r3, 2 + 514a: 07d2 br 0x50ee // 50ee + if(handle->button_level == handle->active_level) { + 514c: 8463 ld.b r3, (r4, 0x3) + 514e: 4359 lsli r2, r3, 25 + 5150: 4a5f lsri r2, r2, 31 + 5152: 4b67 lsri r3, r3, 7 + 5154: 648e cmpne r3, r2 + 5156: 0fd2 bf 0x50fa // 50fa + handle->event = (uint8_t)LONG_PRESS_RELEASE; + 5158: 8462 ld.b r3, (r4, 0x2) + 515a: 320f movi r2, 15 + 515c: 68c8 and r3, r2 + 515e: 3270 movi r2, 112 + 5160: 6cc8 or r3, r2 + 5162: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_RELEASE); + 5164: 946a ld.w r3, (r4, 0x28) + 5166: 3b40 cmpnei r3, 0 + 5168: 0fa0 bf 0x50a8 // 50a8 + 516a: 6c13 mov r0, r4 + 516c: 7bcd jsr r3 + 516e: 079d br 0x50a8 // 50a8 + +Disassembly of section .text.button_start: + +00005170 : + * @param handle: target handle strcut. + * @retval 0: succeed. -1: already exist. + */ +int button_start(struct Button* handle) +{ + struct Button* target = head_handle; + 5170: 1068 lrw r3, 0x200002e8 // 5190 + 5172: 9320 ld.w r1, (r3, 0x0) + 5174: 6c87 mov r2, r1 + while(target) { + 5176: 3a40 cmpnei r2, 0 + 5178: 0805 bt 0x5182 // 5182 + if(target == handle) return -1; //already exist. + target = target->next; + } + handle->next = head_handle; + 517a: b02b st.w r1, (r0, 0x2c) + head_handle = handle; + 517c: b300 st.w r0, (r3, 0x0) + return 0; + 517e: 3000 movi r0, 0 +} + 5180: 783c jmp r15 + if(target == handle) return -1; //already exist. + 5182: 640a cmpne r2, r0 + 5184: 0c03 bf 0x518a // 518a + target = target->next; + 5186: 924b ld.w r2, (r2, 0x2c) + 5188: 07f7 br 0x5176 // 5176 + if(target == handle) return -1; //already exist. + 518a: 3000 movi r0, 0 + 518c: 2800 subi r0, 1 + 518e: 07f9 br 0x5180 // 5180 + 5190: 200002e8 .long 0x200002e8 + +Disassembly of section .text.button_ticks: + +00005194 : + * @brief background ticks, timer repeat invoking interval 5ms. + * @param None. + * @retval None + */ +void button_ticks() +{ + 5194: 14d1 push r4, r15 + struct Button* target; + for(target=head_handle; target; target=target->next) { + 5196: 1066 lrw r3, 0x200002e8 // 51ac + 5198: 9380 ld.w r4, (r3, 0x0) + 519a: 3c40 cmpnei r4, 0 + 519c: 0802 bt 0x51a0 // 51a0 + button_handler(target); + } +} + 519e: 1491 pop r4, r15 + button_handler(target); + 51a0: 6c13 mov r0, r4 + 51a2: e3ffff57 bsr 0x5050 // 5050 + for(target=head_handle; target; target=target->next) { + 51a6: 948b ld.w r4, (r4, 0x2c) + 51a8: 07f9 br 0x519a // 519a + 51aa: 0000 bkpt + 51ac: 200002e8 .long 0x200002e8 + +Disassembly of section .text.read_button_GPIO: + +000051b0 : + +//////////////////////////////////////////////////////////////////////// + + +uint8_t read_button_GPIO(uint8_t button_id) +{ + 51b0: 14d0 push r15 + uint8_t state = 0; + state = GPIO_Read_Status(GPIOA0,button_id); + 51b2: 1064 lrw r3, 0x2000004c // 51c0 +{ + 51b4: 6c43 mov r1, r0 + state = GPIO_Read_Status(GPIOA0,button_id); + 51b6: 9300 ld.w r0, (r3, 0x0) + 51b8: e3fff0de bsr 0x3374 // 3374 + return state; + 51bc: 1490 pop r15 + 51be: 0000 bkpt + 51c0: 2000004c .long 0x2000004c + +Disassembly of section .text.TK_Sampling_prog: + +000051c4 : + 51c4: 14c4 push r4-r7 + 51c6: 1072 lrw r3, 0x20000054 // 520c + 51c8: 1012 lrw r0, 0x20000736 // 5210 + 51ca: 1093 lrw r4, 0x200005a7 // 5214 + 51cc: 6d83 mov r6, r0 + 51ce: 93a0 ld.w r5, (r3, 0x0) + 51d0: 3300 movi r3, 0 + 51d2: 4342 lsli r2, r3, 2 + 51d4: 6094 addu r2, r5 + 51d6: 9220 ld.w r1, (r2, 0x0) + 51d8: 4341 lsli r2, r3, 1 + 51da: 6080 addu r2, r0 + 51dc: 7445 zexth r1, r1 + 51de: aa20 st.h r1, (r2, 0x0) + 51e0: 8440 ld.b r2, (r4, 0x0) + 51e2: 3a41 cmpnei r2, 1 + 51e4: 080f bt 0x5202 // 5202 + 51e6: 3300 movi r3, 0 + 51e8: 10ec lrw r7, 0x20000490 // 5218 + 51ea: 4341 lsli r2, r3, 1 + 51ec: 5e28 addu r1, r6, r2 + 51ee: 8920 ld.h r1, (r1, 0x0) + 51f0: 2300 addi r3, 1 + 51f2: 7445 zexth r1, r1 + 51f4: 609c addu r2, r7 + 51f6: 3b51 cmpnei r3, 17 + 51f8: aa20 st.h r1, (r2, 0x0) + 51fa: 0bf8 bt 0x51ea // 51ea + 51fc: 3300 movi r3, 0 + 51fe: a460 st.b r3, (r4, 0x0) + 5200: 3311 movi r3, 17 + 5202: 2300 addi r3, 1 + 5204: 74cc zextb r3, r3 + 5206: 3b10 cmphsi r3, 17 + 5208: 0fe5 bf 0x51d2 // 51d2 + 520a: 1484 pop r4-r7 + 520c: 20000054 .long 0x20000054 + 5210: 20000736 .long 0x20000736 + 5214: 200005a7 .long 0x200005a7 + 5218: 20000490 .long 0x20000490 + +Disassembly of section .text.TKEYIntHandler: + +0000521c : + 521c: 1460 nie + 521e: 1462 ipush + 5220: 14d1 push r4, r15 + 5222: 109e lrw r4, 0x2000006c // 5298 + 5224: 9460 ld.w r3, (r4, 0x0) + 5226: 3b40 cmpnei r3, 0 + 5228: 080b bt 0x523e // 523e + 522a: 3301 movi r3, 1 + 522c: b460 st.w r3, (r4, 0x0) + 522e: 107c lrw r3, 0x20000524 // 529c + 5230: 8360 ld.b r3, (r3, 0x0) + 5232: 3b41 cmpnei r3, 1 + 5234: 0805 bt 0x523e // 523e + 5236: e3ffffc7 bsr 0x51c4 // 51c4 + 523a: 3301 movi r3, 1 + 523c: a464 st.b r3, (r4, 0x4) + 523e: 1079 lrw r3, 0x20000058 // 52a0 + 5240: 3101 movi r1, 1 + 5242: 9360 ld.w r3, (r3, 0x0) + 5244: 934a ld.w r2, (r3, 0x28) + 5246: 6884 and r2, r1 + 5248: 3a40 cmpnei r2, 0 + 524a: 0c02 bf 0x524e // 524e + 524c: b32c st.w r1, (r3, 0x30) + 524e: 934a ld.w r2, (r3, 0x28) + 5250: 3102 movi r1, 2 + 5252: 6884 and r2, r1 + 5254: 3a40 cmpnei r2, 0 + 5256: 0c02 bf 0x525a // 525a + 5258: b32c st.w r1, (r3, 0x30) + 525a: 934a ld.w r2, (r3, 0x28) + 525c: 3104 movi r1, 4 + 525e: 6884 and r2, r1 + 5260: 3a40 cmpnei r2, 0 + 5262: 0c02 bf 0x5266 // 5266 + 5264: b32c st.w r1, (r3, 0x30) + 5266: 934a ld.w r2, (r3, 0x28) + 5268: 3108 movi r1, 8 + 526a: 6884 and r2, r1 + 526c: 3a40 cmpnei r2, 0 + 526e: 0c02 bf 0x5272 // 5272 + 5270: b32c st.w r1, (r3, 0x30) + 5272: 934a ld.w r2, (r3, 0x28) + 5274: 3110 movi r1, 16 + 5276: 6884 and r2, r1 + 5278: 3a40 cmpnei r2, 0 + 527a: 0c02 bf 0x527e // 527e + 527c: b32c st.w r1, (r3, 0x30) + 527e: 934a ld.w r2, (r3, 0x28) + 5280: 3120 movi r1, 32 + 5282: 6884 and r2, r1 + 5284: 3a40 cmpnei r2, 0 + 5286: 0c02 bf 0x528a // 528a + 5288: b32c st.w r1, (r3, 0x30) + 528a: d9ee2001 ld.w r15, (r14, 0x4) + 528e: 9880 ld.w r4, (r14, 0x0) + 5290: 1402 addi r14, r14, 8 + 5292: 1463 ipop + 5294: 1461 nir + 5296: 0000 bkpt + 5298: 2000006c .long 0x2000006c + 529c: 20000524 .long 0x20000524 + 52a0: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +000052a4 : + 52a4: 14c2 push r4-r5 + 52a6: 3200 movi r2, 0 + 52a8: 3000 movi r0, 0 + 52aa: 1088 lrw r4, 0x200005c4 // 52c8 + 52ac: 3501 movi r5, 1 + 52ae: 3120 movi r1, 32 + 52b0: 9460 ld.w r3, (r4, 0x0) + 52b2: 70c9 lsr r3, r2 + 52b4: 68d4 and r3, r5 + 52b6: 3b40 cmpnei r3, 0 + 52b8: 0c02 bf 0x52bc // 52bc + 52ba: 2000 addi r0, 1 + 52bc: 2200 addi r2, 1 + 52be: 644a cmpne r2, r1 + 52c0: 0bf8 bt 0x52b0 // 52b0 + 52c2: 7400 zextb r0, r0 + 52c4: 1482 pop r4-r5 + 52c6: 0000 bkpt + 52c8: 200005c4 .long 0x200005c4 + +Disassembly of section .text.TK_Scan_Start: + +000052cc : + 52cc: 1046 lrw r2, 0x2000006c // 52e4 + 52ce: 8264 ld.b r3, (r2, 0x4) + 52d0: 74cc zextb r3, r3 + 52d2: 3b41 cmpnei r3, 1 + 52d4: 0807 bt 0x52e2 // 52e2 + 52d6: 1025 lrw r1, 0x20000058 // 52e8 + 52d8: 9120 ld.w r1, (r1, 0x0) + 52da: b162 st.w r3, (r1, 0x8) + 52dc: 3300 movi r3, 0 + 52de: b260 st.w r3, (r2, 0x0) + 52e0: a264 st.b r3, (r2, 0x4) + 52e2: 783c jmp r15 + 52e4: 2000006c .long 0x2000006c + 52e8: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +000052ec : + 52ec: 14d4 push r4-r7, r15 + 52ee: 1425 subi r14, r14, 20 + 52f0: 1271 lrw r3, 0x20000318 // 5434 + 52f2: 8360 ld.b r3, (r3, 0x0) + 52f4: b860 st.w r3, (r14, 0x0) + 52f6: 3400 movi r4, 0 + 52f8: 1270 lrw r3, 0x200002ec // 5438 + 52fa: 8360 ld.b r3, (r3, 0x0) + 52fc: b861 st.w r3, (r14, 0x4) + 52fe: 12f0 lrw r7, 0x2000053a // 543c + 5300: 1270 lrw r3, 0x200002f5 // 5440 + 5302: 83a0 ld.b r5, (r3, 0x0) + 5304: 1270 lrw r3, 0x200002f4 // 5444 + 5306: 8360 ld.b r3, (r3, 0x0) + 5308: b862 st.w r3, (r14, 0x8) + 530a: 6d9f mov r6, r7 + 530c: 126f lrw r3, 0x20000736 // 5448 + 530e: b863 st.w r3, (r14, 0xc) + 5310: 4461 lsli r3, r4, 1 + 5312: 9843 ld.w r2, (r14, 0xc) + 5314: 608c addu r2, r3 + 5316: 122e lrw r1, 0x20000490 // 544c + 5318: 604c addu r1, r3 + 531a: 8a40 ld.h r2, (r2, 0x0) + 531c: 8920 ld.h r1, (r1, 0x0) + 531e: 6086 subu r2, r1 + 5320: 748b sexth r2, r2 + 5322: 5f2c addu r1, r7, r3 + 5324: a940 st.h r2, (r1, 0x0) + 5326: 8940 ld.h r2, (r1, 0x0) + 5328: 748b sexth r2, r2 + 532a: 3adf btsti r2, 31 + 532c: 1249 lrw r2, 0x200006f2 // 5450 + 532e: 608c addu r2, r3 + 5330: 0c37 bf 0x539e // 539e + 5332: 3100 movi r1, 0 + 5334: aa20 st.h r1, (r2, 0x0) + 5336: 9840 ld.w r2, (r14, 0x0) + 5338: 3a01 cmphsi r2, 2 + 533a: 0c6d bf 0x5414 // 5414 + 533c: 4461 lsli r3, r4, 1 + 533e: 5e2c addu r1, r6, r3 + 5340: 1205 lrw r0, 0x20000346 // 5454 + 5342: 8940 ld.h r2, (r1, 0x0) + 5344: 60c0 addu r3, r0 + 5346: 748b sexth r2, r2 + 5348: 8b60 ld.h r3, (r3, 0x0) + 534a: 648d cmplt r3, r2 + 534c: 9840 ld.w r2, (r14, 0x0) + 534e: 7cc8 mult r3, r2 + 5350: 0c2a bf 0x53a4 // 53a4 + 5352: 8940 ld.h r2, (r1, 0x0) + 5354: 748b sexth r2, r2 + 5356: 64c9 cmplt r2, r3 + 5358: 0c26 bf 0x53a4 // 53a4 + 535a: 1240 lrw r2, 0x20000528 // 5458 + 535c: 6090 addu r2, r4 + 535e: 8260 ld.b r3, (r2, 0x0) + 5360: 2300 addi r3, 1 + 5362: 74cc zextb r3, r3 + 5364: a260 st.b r3, (r2, 0x0) + 5366: 3100 movi r1, 0 + 5368: 117d lrw r3, 0x2000050e // 545c + 536a: 60d0 addu r3, r4 + 536c: a320 st.b r1, (r3, 0x0) + 536e: 117d lrw r3, 0x200005ea // 5460 + 5370: 60d0 addu r3, r4 + 5372: a320 st.b r1, (r3, 0x0) + 5374: 117c lrw r3, 0x20000664 // 5464 + 5376: 60d0 addu r3, r4 + 5378: a320 st.b r1, (r3, 0x0) + 537a: 8260 ld.b r3, (r2, 0x0) + 537c: 9821 ld.w r1, (r14, 0x4) + 537e: 64c4 cmphs r1, r3 + 5380: 081f bt 0x53be // 53be + 5382: 3d40 cmpnei r5, 0 + 5384: 0852 bt 0x5428 // 5428 + 5386: 1139 lrw r1, 0x20000520 // 5468 + 5388: 9160 ld.w r3, (r1, 0x0) + 538a: 3b40 cmpnei r3, 0 + 538c: 0806 bt 0x5398 // 5398 + 538e: 9100 ld.w r0, (r1, 0x0) + 5390: 3301 movi r3, 1 + 5392: 70d0 lsl r3, r4 + 5394: 6cc0 or r3, r0 + 5396: b160 st.w r3, (r1, 0x0) + 5398: 3300 movi r3, 0 + 539a: a260 st.b r3, (r2, 0x0) + 539c: 0411 br 0x53be // 53be + 539e: 8920 ld.h r1, (r1, 0x0) + 53a0: 7445 zexth r1, r1 + 53a2: 07c9 br 0x5334 // 5334 + 53a4: 4441 lsli r2, r4, 1 + 53a6: 6098 addu r2, r6 + 53a8: 8a40 ld.h r2, (r2, 0x0) + 53aa: 748b sexth r2, r2 + 53ac: 648d cmplt r3, r2 + 53ae: 0c08 bf 0x53be // 53be + 53b0: 3300 movi r3, 0 + 53b2: 114e lrw r2, 0x20000520 // 5468 + 53b4: 2b01 subi r3, 2 + 53b6: 9220 ld.w r1, (r2, 0x0) + 53b8: 70d3 rotl r3, r4 + 53ba: 68c4 and r3, r1 + 53bc: b260 st.w r3, (r2, 0x0) + 53be: 4441 lsli r2, r4, 1 + 53c0: 5e68 addu r3, r6, r2 + 53c2: 8b60 ld.h r3, (r3, 0x0) + 53c4: 74cf sexth r3, r3 + 53c6: b864 st.w r3, (r14, 0x10) + 53c8: 3105 movi r1, 5 + 53ca: 1163 lrw r3, 0x20000346 // 5454 + 53cc: 608c addu r2, r3 + 53ce: 8a00 ld.h r0, (r2, 0x0) + 53d0: 4002 lsli r0, r0, 2 + 53d2: e3fff80d bsr 0x43ec // 43ec <__divsi3> + 53d6: 9864 ld.w r3, (r14, 0x10) + 53d8: 640d cmplt r3, r0 + 53da: 0c18 bf 0x540a // 540a + 53dc: 1140 lrw r2, 0x2000050e // 545c + 53de: 6090 addu r2, r4 + 53e0: 8260 ld.b r3, (r2, 0x0) + 53e2: 2300 addi r3, 1 + 53e4: 74cc zextb r3, r3 + 53e6: a260 st.b r3, (r2, 0x0) + 53e8: 3100 movi r1, 0 + 53ea: 107c lrw r3, 0x20000528 // 5458 + 53ec: 60d0 addu r3, r4 + 53ee: a320 st.b r1, (r3, 0x0) + 53f0: 8260 ld.b r3, (r2, 0x0) + 53f2: 9822 ld.w r1, (r14, 0x8) + 53f4: 64c4 cmphs r1, r3 + 53f6: 080a bt 0x540a // 540a + 53f8: 3300 movi r3, 0 + 53fa: 103c lrw r1, 0x20000520 // 5468 + 53fc: 2b01 subi r3, 2 + 53fe: 9100 ld.w r0, (r1, 0x0) + 5400: 70d3 rotl r3, r4 + 5402: 68c0 and r3, r0 + 5404: b160 st.w r3, (r1, 0x0) + 5406: 3300 movi r3, 0 + 5408: a260 st.b r3, (r2, 0x0) + 540a: 2400 addi r4, 1 + 540c: 3c51 cmpnei r4, 17 + 540e: 0b81 bt 0x5310 // 5310 + 5410: 1405 addi r14, r14, 20 + 5412: 1494 pop r4-r7, r15 + 5414: 60d8 addu r3, r6 + 5416: 4441 lsli r2, r4, 1 + 5418: 102f lrw r1, 0x20000346 // 5454 + 541a: 8b60 ld.h r3, (r3, 0x0) + 541c: 6084 addu r2, r1 + 541e: 74cf sexth r3, r3 + 5420: 8a40 ld.h r2, (r2, 0x0) + 5422: 64c9 cmplt r2, r3 + 5424: 0fcd bf 0x53be // 53be + 5426: 079a br 0x535a // 535a + 5428: 3d41 cmpnei r5, 1 + 542a: 0bb7 bt 0x5398 // 5398 + 542c: 102f lrw r1, 0x20000520 // 5468 + 542e: 6cd7 mov r3, r5 + 5430: 9100 ld.w r0, (r1, 0x0) + 5432: 07b0 br 0x5392 // 5392 + 5434: 20000318 .long 0x20000318 + 5438: 200002ec .long 0x200002ec + 543c: 2000053a .long 0x2000053a + 5440: 200002f5 .long 0x200002f5 + 5444: 200002f4 .long 0x200002f4 + 5448: 20000736 .long 0x20000736 + 544c: 20000490 .long 0x20000490 + 5450: 200006f2 .long 0x200006f2 + 5454: 20000346 .long 0x20000346 + 5458: 20000528 .long 0x20000528 + 545c: 2000050e .long 0x2000050e + 5460: 200005ea .long 0x200005ea + 5464: 20000664 .long 0x20000664 + 5468: 20000520 .long 0x20000520 + +Disassembly of section .text.TK_overflow_predict: + +0000546c : + 546c: 14d4 push r4-r7, r15 + 546e: 1421 subi r14, r14, 4 + 5470: 11d9 lrw r6, 0x2000006c // 5554 + 5472: 8665 ld.b r3, (r6, 0x5) + 5474: 3b41 cmpnei r3, 1 + 5476: 085f bt 0x5534 // 5534 + 5478: 1158 lrw r2, 0x20000640 // 5558 + 547a: 8260 ld.b r3, (r2, 0x0) + 547c: 2300 addi r3, 1 + 547e: 74cc zextb r3, r3 + 5480: a260 st.b r3, (r2, 0x0) + 5482: 8260 ld.b r3, (r2, 0x0) + 5484: 1136 lrw r1, 0x20000319 // 555c + 5486: 8120 ld.b r1, (r1, 0x0) + 5488: 64c4 cmphs r1, r3 + 548a: 0855 bt 0x5534 // 5534 + 548c: 3300 movi r3, 0 + 548e: a260 st.b r3, (r2, 0x0) + 5490: 3500 movi r5, 0 + 5492: 11f4 lrw r7, 0x2000031c // 5560 + 5494: 2605 addi r6, 6 + 5496: 9760 ld.w r3, (r7, 0x0) + 5498: 70d5 lsr r3, r5 + 549a: 3201 movi r2, 1 + 549c: 68c8 and r3, r2 + 549e: 3b40 cmpnei r3, 0 + 54a0: 0c34 bf 0x5508 // 5508 + 54a2: 4581 lsli r4, r5, 1 + 54a4: 5e70 addu r3, r6, r4 + 54a6: 8b00 ld.h r0, (r3, 0x0) + 54a8: e3ffe07c bsr 0x15a0 // 15a0 <__floatunsidf> + 54ac: 6cc7 mov r3, r1 + 54ae: 3180 movi r1, 128 + 54b0: 6c83 mov r2, r0 + 54b2: 4137 lsli r1, r1, 23 + 54b4: 3000 movi r0, 0 + 54b6: e3ffd67f bsr 0x1b4 // 1b4 <__GI_pow> + 54ba: 116b lrw r3, 0x20000322 // 5564 + 54bc: 60d0 addu r3, r4 + 54be: 8b60 ld.h r3, (r3, 0x0) + 54c0: 4364 lsli r3, r3, 4 + 54c2: 230e addi r3, 15 + 54c4: b860 st.w r3, (r14, 0x0) + 54c6: e3ffdc25 bsr 0xd10 // d10 <__fixunsdfsi> + 54ca: 9860 ld.w r3, (r14, 0x0) + 54cc: 7cc0 mult r3, r0 + 54ce: 1147 lrw r2, 0x200006d0 // 5568 + 54d0: 740d zexth r0, r3 + 54d2: 6090 addu r2, r4 + 54d4: 1166 lrw r3, 0x20000736 // 556c + 54d6: 60d0 addu r3, r4 + 54d8: aa00 st.h r0, (r2, 0x0) + 54da: 8b60 ld.h r3, (r3, 0x0) + 54dc: 8a00 ld.h r0, (r2, 0x0) + 54de: 7401 zexth r0, r0 + 54e0: 325f movi r2, 95 + 54e2: 74cd zexth r3, r3 + 54e4: 7c08 mult r0, r2 + 54e6: 3164 movi r1, 100 + 54e8: b860 st.w r3, (r14, 0x0) + 54ea: e3fff781 bsr 0x43ec // 43ec <__divsi3> + 54ee: 9860 ld.w r3, (r14, 0x0) + 54f0: 64c1 cmplt r0, r3 + 54f2: 0c0b bf 0x5508 // 5508 + 54f4: 107f lrw r3, 0x200002f6 // 5570 + 54f6: 610c addu r4, r3 + 54f8: 8c60 ld.h r3, (r4, 0x0) + 54fa: 3b06 cmphsi r3, 7 + 54fc: 0806 bt 0x5508 // 5508 + 54fe: 2300 addi r3, 1 + 5500: ac60 st.h r3, (r4, 0x0) + 5502: 3201 movi r2, 1 + 5504: 107c lrw r3, 0x20000595 // 5574 + 5506: a340 st.b r2, (r3, 0x0) + 5508: 2500 addi r5, 1 + 550a: 3d51 cmpnei r5, 17 + 550c: 0bc5 bt 0x5496 // 5496 + 550e: 107a lrw r3, 0x20000595 // 5574 + 5510: 8340 ld.b r2, (r3, 0x0) + 5512: 3a41 cmpnei r2, 1 + 5514: 0810 bt 0x5534 // 5534 + 5516: 3200 movi r2, 0 + 5518: a340 st.b r2, (r3, 0x0) + 551a: 3200 movi r2, 0 + 551c: 1077 lrw r3, 0x20000058 // 5578 + 551e: 1018 lrw r0, 0x20000663 // 557c + 5520: 10b8 lrw r5, 0x2000069c // 5580 + 5522: 10d4 lrw r6, 0x200002f6 // 5570 + 5524: 9360 ld.w r3, (r3, 0x0) + 5526: b342 st.w r2, (r3, 0x8) + 5528: 1077 lrw r3, 0x20000054 // 5584 + 552a: 9380 ld.w r4, (r3, 0x0) + 552c: 3300 movi r3, 0 + 552e: 8040 ld.b r2, (r0, 0x0) + 5530: 648c cmphs r3, r2 + 5532: 0c03 bf 0x5538 // 5538 + 5534: 1401 addi r14, r14, 4 + 5536: 1494 pop r4-r7, r15 + 5538: 5d4c addu r2, r5, r3 + 553a: 8240 ld.b r2, (r2, 0x0) + 553c: 4241 lsli r2, r2, 1 + 553e: 4322 lsli r1, r3, 2 + 5540: 6098 addu r2, r6 + 5542: 6050 addu r1, r4 + 5544: 8a40 ld.h r2, (r2, 0x0) + 5546: 91f2 ld.w r7, (r1, 0x48) + 5548: 4254 lsli r2, r2, 20 + 554a: 6c9c or r2, r7 + 554c: 2300 addi r3, 1 + 554e: b152 st.w r2, (r1, 0x48) + 5550: 74cc zextb r3, r3 + 5552: 07ee br 0x552e // 552e + 5554: 2000006c .long 0x2000006c + 5558: 20000640 .long 0x20000640 + 555c: 20000319 .long 0x20000319 + 5560: 2000031c .long 0x2000031c + 5564: 20000322 .long 0x20000322 + 5568: 200006d0 .long 0x200006d0 + 556c: 20000736 .long 0x20000736 + 5570: 200002f6 .long 0x200002f6 + 5574: 20000595 .long 0x20000595 + 5578: 20000058 .long 0x20000058 + 557c: 20000663 .long 0x20000663 + 5580: 2000069c .long 0x2000069c + 5584: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00005588 : + 5588: 14c4 push r4-r7 + 558a: 1422 subi r14, r14, 8 + 558c: 1348 lrw r2, 0x200005c2 // 572c + 558e: 8260 ld.b r3, (r2, 0x0) + 5590: 2300 addi r3, 1 + 5592: 74cc zextb r3, r3 + 5594: a260 st.b r3, (r2, 0x0) + 5596: 8260 ld.b r3, (r2, 0x0) + 5598: 1326 lrw r1, 0x20000319 // 5730 + 559a: 8120 ld.b r1, (r1, 0x0) + 559c: 644c cmphs r3, r1 + 559e: 0cad bf 0x56f8 // 56f8 + 55a0: 3300 movi r3, 0 + 55a2: a260 st.b r3, (r2, 0x0) + 55a4: 1364 lrw r3, 0x20000520 // 5734 + 55a6: 9360 ld.w r3, (r3, 0x0) + 55a8: 3b40 cmpnei r3, 0 + 55aa: 08a7 bt 0x56f8 // 56f8 + 55ac: 1323 lrw r1, 0x2000053a // 5738 + 55ae: 6dc7 mov r7, r1 + 55b0: b820 st.w r1, (r14, 0x0) + 55b2: 3200 movi r2, 0 + 55b4: 1362 lrw r3, 0x20000346 // 573c + 55b6: 1323 lrw r1, 0x20000490 // 5740 + 55b8: 4201 lsli r0, r2, 1 + 55ba: 9880 ld.w r4, (r14, 0x0) + 55bc: 6100 addu r4, r0 + 55be: 8c80 ld.h r4, (r4, 0x0) + 55c0: 7513 sexth r4, r4 + 55c2: 3cdf btsti r4, 31 + 55c4: 0c27 bf 0x5612 // 5612 + 55c6: 13a0 lrw r5, 0x20000736 // 5744 + 55c8: 5980 addu r4, r1, r0 + 55ca: 6014 addu r0, r5 + 55cc: b881 st.w r4, (r14, 0x4) + 55ce: 8c80 ld.h r4, (r4, 0x0) + 55d0: 88c0 ld.h r6, (r0, 0x0) + 55d2: 7511 zexth r4, r4 + 55d4: 7599 zexth r6, r6 + 55d6: 8ba0 ld.h r5, (r3, 0x0) + 55d8: 611a subu r4, r6 + 55da: 6551 cmplt r4, r5 + 55dc: 081b bt 0x5612 // 5612 + 55de: 9881 ld.w r4, (r14, 0x4) + 55e0: 8c80 ld.h r4, (r4, 0x0) + 55e2: 8800 ld.h r0, (r0, 0x0) + 55e4: 7511 zexth r4, r4 + 55e6: 7401 zexth r0, r0 + 55e8: 5c01 subu r0, r4, r0 + 55ea: 4581 lsli r4, r5, 1 + 55ec: 6150 addu r5, r4 + 55ee: 6541 cmplt r0, r5 + 55f0: 0c11 bf 0x5612 // 5612 + 55f2: 1296 lrw r4, 0x20000664 // 5748 + 55f4: 6108 addu r4, r2 + 55f6: 8400 ld.b r0, (r4, 0x0) + 55f8: 2000 addi r0, 1 + 55fa: 7400 zextb r0, r0 + 55fc: a400 st.b r0, (r4, 0x0) + 55fe: 1214 lrw r0, 0x2000008c // 574c + 5600: 84a0 ld.b r5, (r4, 0x0) + 5602: 8008 ld.b r0, (r0, 0x8) + 5604: 6540 cmphs r0, r5 + 5606: 0806 bt 0x5612 // 5612 + 5608: 1212 lrw r0, 0x200005a7 // 5750 + 560a: 3501 movi r5, 1 + 560c: a0a0 st.b r5, (r0, 0x0) + 560e: 3000 movi r0, 0 + 5610: a400 st.b r0, (r4, 0x0) + 5612: 4201 lsli r0, r2, 1 + 5614: 5f80 addu r4, r7, r0 + 5616: 8c80 ld.h r4, (r4, 0x0) + 5618: 7513 sexth r4, r4 + 561a: 3c20 cmplti r4, 1 + 561c: 0870 bt 0x56fc // 56fc + 561e: 128a lrw r4, 0x20000736 // 5744 + 5620: 6100 addu r4, r0 + 5622: 59a0 addu r5, r1, r0 + 5624: 8c80 ld.h r4, (r4, 0x0) + 5626: 8da0 ld.h r5, (r5, 0x0) + 5628: 7555 zexth r5, r5 + 562a: 7511 zexth r4, r4 + 562c: 6116 subu r4, r5 + 562e: 8ba0 ld.h r5, (r3, 0x0) + 5630: 45a2 lsli r5, r5, 2 + 5632: 6551 cmplt r4, r5 + 5634: 0864 bt 0x56fc // 56fc + 5636: 1288 lrw r4, 0x200005ea // 5754 + 5638: 6108 addu r4, r2 + 563a: 84a0 ld.b r5, (r4, 0x0) + 563c: 2500 addi r5, 1 + 563e: 7554 zextb r5, r5 + 5640: a4a0 st.b r5, (r4, 0x0) + 5642: 12a3 lrw r5, 0x2000008c // 574c + 5644: 84c0 ld.b r6, (r4, 0x0) + 5646: 85a9 ld.b r5, (r5, 0x9) + 5648: 6594 cmphs r5, r6 + 564a: 0806 bt 0x5656 // 5656 + 564c: 12a1 lrw r5, 0x200005a7 // 5750 + 564e: 3601 movi r6, 1 + 5650: a5c0 st.b r6, (r5, 0x0) + 5652: 3500 movi r5, 0 + 5654: a4a0 st.b r5, (r4, 0x0) + 5656: 5f80 addu r4, r7, r0 + 5658: 8c80 ld.h r4, (r4, 0x0) + 565a: 7513 sexth r4, r4 + 565c: 3cdf btsti r4, 31 + 565e: 0c10 bf 0x567e // 567e + 5660: 11d9 lrw r6, 0x20000736 // 5744 + 5662: 59a0 addu r5, r1, r0 + 5664: 6180 addu r6, r0 + 5666: 8d80 ld.h r4, (r5, 0x0) + 5668: 8ec0 ld.h r6, (r6, 0x0) + 566a: 7599 zexth r6, r6 + 566c: 7511 zexth r4, r4 + 566e: 611a subu r4, r6 + 5670: 8bc0 ld.h r6, (r3, 0x0) + 5672: 6591 cmplt r4, r6 + 5674: 0c05 bf 0x567e // 567e + 5676: 8d80 ld.h r4, (r5, 0x0) + 5678: 2c00 subi r4, 1 + 567a: 7511 zexth r4, r4 + 567c: ad80 st.h r4, (r5, 0x0) + 567e: 5f80 addu r4, r7, r0 + 5680: 8c80 ld.h r4, (r4, 0x0) + 5682: 7513 sexth r4, r4 + 5684: 3cdf btsti r4, 31 + 5686: 0c11 bf 0x56a8 // 56a8 + 5688: 11cf lrw r6, 0x20000736 // 5744 + 568a: 59a0 addu r5, r1, r0 + 568c: 6180 addu r6, r0 + 568e: 8d80 ld.h r4, (r5, 0x0) + 5690: 8ec0 ld.h r6, (r6, 0x0) + 5692: 7599 zexth r6, r6 + 5694: 7511 zexth r4, r4 + 5696: 611a subu r4, r6 + 5698: 8bc0 ld.h r6, (r3, 0x0) + 569a: 4ec1 lsri r6, r6, 1 + 569c: 6591 cmplt r4, r6 + 569e: 0805 bt 0x56a8 // 56a8 + 56a0: 8d80 ld.h r4, (r5, 0x0) + 56a2: 2c01 subi r4, 2 + 56a4: 7511 zexth r4, r4 + 56a6: ad80 st.h r4, (r5, 0x0) + 56a8: 5fa0 addu r5, r7, r0 + 56aa: 8d80 ld.h r4, (r5, 0x0) + 56ac: 7513 sexth r4, r4 + 56ae: 3c20 cmplti r4, 1 + 56b0: 080c bt 0x56c8 // 56c8 + 56b2: 8da0 ld.h r5, (r5, 0x0) + 56b4: 8b80 ld.h r4, (r3, 0x0) + 56b6: 7557 sexth r5, r5 + 56b8: 4c81 lsri r4, r4, 1 + 56ba: 6515 cmplt r5, r4 + 56bc: 0c06 bf 0x56c8 // 56c8 + 56be: 59a0 addu r5, r1, r0 + 56c0: 8d80 ld.h r4, (r5, 0x0) + 56c2: 2400 addi r4, 1 + 56c4: 7511 zexth r4, r4 + 56c6: ad80 st.h r4, (r5, 0x0) + 56c8: 5fa0 addu r5, r7, r0 + 56ca: 8d80 ld.h r4, (r5, 0x0) + 56cc: 7513 sexth r4, r4 + 56ce: 3c20 cmplti r4, 1 + 56d0: 0810 bt 0x56f0 // 56f0 + 56d2: 8dc0 ld.h r6, (r5, 0x0) + 56d4: 759b sexth r6, r6 + 56d6: 8b80 ld.h r4, (r3, 0x0) + 56d8: 6519 cmplt r6, r4 + 56da: 0c0b bf 0x56f0 // 56f0 + 56dc: 8da0 ld.h r5, (r5, 0x0) + 56de: 7557 sexth r5, r5 + 56e0: 4c81 lsri r4, r4, 1 + 56e2: 6515 cmplt r5, r4 + 56e4: 0806 bt 0x56f0 // 56f0 + 56e6: 6004 addu r0, r1 + 56e8: 8880 ld.h r4, (r0, 0x0) + 56ea: 2401 addi r4, 2 + 56ec: 7511 zexth r4, r4 + 56ee: a880 st.h r4, (r0, 0x0) + 56f0: 2200 addi r2, 1 + 56f2: 3a51 cmpnei r2, 17 + 56f4: 2301 addi r3, 2 + 56f6: 0b61 bt 0x55b8 // 55b8 + 56f8: 1402 addi r14, r14, 8 + 56fa: 1484 pop r4-r7 + 56fc: 5f80 addu r4, r7, r0 + 56fe: 8c80 ld.h r4, (r4, 0x0) + 5700: 7513 sexth r4, r4 + 5702: 3cdf btsti r4, 31 + 5704: 0fa9 bf 0x5656 // 5656 + 5706: 10b0 lrw r5, 0x20000736 // 5744 + 5708: 5980 addu r4, r1, r0 + 570a: 6140 addu r5, r0 + 570c: 8c80 ld.h r4, (r4, 0x0) + 570e: 8da0 ld.h r5, (r5, 0x0) + 5710: 7555 zexth r5, r5 + 5712: 8bc0 ld.h r6, (r3, 0x0) + 5714: 7511 zexth r4, r4 + 5716: 6116 subu r4, r5 + 5718: 46a1 lsli r5, r6, 1 + 571a: 6158 addu r5, r6 + 571c: 6551 cmplt r4, r5 + 571e: 0b9c bt 0x5656 // 5656 + 5720: 108c lrw r4, 0x200005a7 // 5750 + 5722: 3501 movi r5, 1 + 5724: a4a0 st.b r5, (r4, 0x0) + 5726: 6c03 mov r0, r0 + 5728: 0797 br 0x5656 // 5656 + 572a: 0000 bkpt + 572c: 200005c2 .long 0x200005c2 + 5730: 20000319 .long 0x20000319 + 5734: 20000520 .long 0x20000520 + 5738: 2000053a .long 0x2000053a + 573c: 20000346 .long 0x20000346 + 5740: 20000490 .long 0x20000490 + 5744: 20000736 .long 0x20000736 + 5748: 20000664 .long 0x20000664 + 574c: 2000008c .long 0x2000008c + 5750: 200005a7 .long 0x200005a7 + 5754: 200005ea .long 0x200005ea + +Disassembly of section .text.TK_result_prog: + +00005758 : + 5758: 14d2 push r4-r5, r15 + 575a: 1050 lrw r2, 0x20000520 // 5798 + 575c: 1090 lrw r4, 0x200005c4 // 579c + 575e: 9260 ld.w r3, (r2, 0x0) + 5760: 3b40 cmpnei r3, 0 + 5762: 0c02 bf 0x5766 // 5766 + 5764: 9260 ld.w r3, (r2, 0x0) + 5766: b460 st.w r3, (r4, 0x0) + 5768: 9460 ld.w r3, (r4, 0x0) + 576a: 3b40 cmpnei r3, 0 + 576c: 10ad lrw r5, 0x20000698 // 57a0 + 576e: 0c11 bf 0x5790 // 5790 + 5770: 9440 ld.w r2, (r4, 0x0) + 5772: 9560 ld.w r3, (r5, 0x0) + 5774: 64ca cmpne r2, r3 + 5776: 0c03 bf 0x577c // 577c + 5778: 9460 ld.w r3, (r4, 0x0) + 577a: b560 st.w r3, (r5, 0x0) + 577c: e3fffd94 bsr 0x52a4 // 52a4 + 5780: 1069 lrw r3, 0x20000320 // 57a4 + 5782: 8360 ld.b r3, (r3, 0x0) + 5784: 640c cmphs r3, r0 + 5786: 0804 bt 0x578e // 578e + 5788: 3300 movi r3, 0 + 578a: b460 st.w r3, (r4, 0x0) + 578c: b560 st.w r3, (r5, 0x0) + 578e: 1492 pop r4-r5, r15 + 5790: 1046 lrw r2, 0x200005bc // 57a8 + 5792: b560 st.w r3, (r5, 0x0) + 5794: b260 st.w r3, (r2, 0x0) + 5796: 07fc br 0x578e // 578e + 5798: 20000520 .long 0x20000520 + 579c: 200005c4 .long 0x200005c4 + 57a0: 20000698 .long 0x20000698 + 57a4: 20000320 .long 0x20000320 + 57a8: 200005bc .long 0x200005bc + +Disassembly of section .text.CORETHandler: + +000057ac : + 57ac: 1460 nie + 57ae: 1462 ipush + 57b0: 14d1 push r4, r15 + 57b2: 1077 lrw r3, 0x20000064 // 580c + 57b4: 3400 movi r4, 0 + 57b6: 9360 ld.w r3, (r3, 0x0) + 57b8: b386 st.w r4, (r3, 0x18) + 57ba: 1076 lrw r3, 0x20000524 // 5810 + 57bc: 8360 ld.b r3, (r3, 0x0) + 57be: 3b41 cmpnei r3, 1 + 57c0: 0820 bt 0x5800 // 5800 + 57c2: e3fffd85 bsr 0x52cc // 52cc + 57c6: e3fffd93 bsr 0x52ec // 52ec + 57ca: e3fffe51 bsr 0x546c // 546c + 57ce: e3fffedd bsr 0x5588 // 5588 + 57d2: e3ffffc3 bsr 0x5758 // 5758 + 57d6: 1070 lrw r3, 0x200005c4 // 5814 + 57d8: 9360 ld.w r3, (r3, 0x0) + 57da: 3b40 cmpnei r3, 0 + 57dc: 0c12 bf 0x5800 // 5800 + 57de: 106f lrw r3, 0x200002f0 // 5818 + 57e0: 9340 ld.w r2, (r3, 0x0) + 57e2: 3a40 cmpnei r2, 0 + 57e4: 0c0e bf 0x5800 // 5800 + 57e6: 106e lrw r3, 0x200005bc // 581c + 57e8: 3064 movi r0, 100 + 57ea: 9320 ld.w r1, (r3, 0x0) + 57ec: 2100 addi r1, 1 + 57ee: b320 st.w r1, (r3, 0x0) + 57f0: 9320 ld.w r1, (r3, 0x0) + 57f2: 7c80 mult r2, r0 + 57f4: 6448 cmphs r2, r1 + 57f6: 0805 bt 0x5800 // 5800 + 57f8: 104a lrw r2, 0x200005a7 // 5820 + 57fa: 3101 movi r1, 1 + 57fc: a220 st.b r1, (r2, 0x0) + 57fe: b380 st.w r4, (r3, 0x0) + 5800: d9ee2001 ld.w r15, (r14, 0x4) + 5804: 9880 ld.w r4, (r14, 0x0) + 5806: 1402 addi r14, r14, 8 + 5808: 1463 ipop + 580a: 1461 nir + 580c: 20000064 .long 0x20000064 + 5810: 20000524 .long 0x20000524 + 5814: 200005c4 .long 0x200005c4 + 5818: 200002f0 .long 0x200002f0 + 581c: 200005bc .long 0x200005bc + 5820: 200005a7 .long 0x200005a7 + +Disassembly of section .text.std_clk_calib: + +00005824 : + 5824: 14d4 push r4-r7, r15 + 5826: 142d subi r14, r14, 52 + 5828: 3201 movi r2, 1 + 582a: 03ce lrw r6, 0x2000005c // 5a6c + 582c: 6cc3 mov r3, r0 + 582e: dc4e000a st.b r2, (r14, 0xa) + 5832: 9640 ld.w r2, (r6, 0x0) + 5834: 9247 ld.w r2, (r2, 0x1c) + 5836: 7488 zextb r2, r2 + 5838: dc4e0009 st.b r2, (r14, 0x9) + 583c: d84e0009 ld.b r2, (r14, 0x9) + 5840: 3a40 cmpnei r2, 0 + 5842: 0c08 bf 0x5852 // 5852 + 5844: d84e0009 ld.b r2, (r14, 0x9) + 5848: 3a42 cmpnei r2, 2 + 584a: 0c04 bf 0x5852 // 5852 + 584c: 3000 movi r0, 0 + 584e: 140d addi r14, r14, 52 + 5850: 1494 pop r4-r7, r15 + 5852: 0397 lrw r4, 0x2000000c // 5a70 + 5854: 3209 movi r2, 9 + 5856: 9400 ld.w r0, (r4, 0x0) + 5858: 3b40 cmpnei r3, 0 + 585a: b041 st.w r2, (r0, 0x4) + 585c: 0857 bt 0x590a // 590a + 585e: 3307 movi r3, 7 + 5860: dc6e000b st.b r3, (r14, 0xb) + 5864: 037b lrw r3, 0x2dc6c00 // 5a74 + 5866: b863 st.w r3, (r14, 0xc) + 5868: 3380 movi r3, 128 + 586a: 4362 lsli r3, r3, 2 + 586c: b867 st.w r3, (r14, 0x1c) + 586e: d86e000b ld.b r3, (r14, 0xb) + 5872: 74cc zextb r3, r3 + 5874: b062 st.w r3, (r0, 0x8) + 5876: 037e lrw r3, 0xffff // 5a78 + 5878: b063 st.w r3, (r0, 0xc) + 587a: 3201 movi r2, 1 + 587c: 3101 movi r1, 1 + 587e: 03bf lrw r5, 0x20000014 // 5a7c + 5880: e3ffedd8 bsr 0x3430 // 3430 + 5884: 95e0 ld.w r7, (r5, 0x0) + 5886: 137f lrw r3, 0xbe9c0005 // 5a80 + 5888: b760 st.w r3, (r7, 0x0) + 588a: 135f lrw r2, 0x30010 // 5a84 + 588c: 3300 movi r3, 0 + 588e: b762 st.w r3, (r7, 0x8) + 5890: b743 st.w r2, (r7, 0xc) + 5892: 32d8 movi r2, 216 + 5894: b745 st.w r2, (r7, 0x14) + 5896: 974f ld.w r2, (r7, 0x3c) + 5898: 3aa2 bseti r2, 2 + 589a: b74f st.w r2, (r7, 0x3c) + 589c: 9803 ld.w r0, (r14, 0xc) + 589e: d82e000b ld.b r1, (r14, 0xb) + 58a2: 327d movi r2, 125 + 58a4: 2100 addi r1, 1 + 58a6: 7c48 mult r1, r2 + 58a8: b861 st.w r3, (r14, 0x4) + 58aa: e3fff5b3 bsr 0x4410 // 4410 <__udivsi3> + 58ae: b804 st.w r0, (r14, 0x10) + 58b0: 32fa movi r2, 250 + 58b2: 9824 ld.w r1, (r14, 0x10) + 58b4: 4242 lsli r2, r2, 2 + 58b6: 6448 cmphs r2, r1 + 58b8: 0bca bt 0x584c // 584c + 58ba: 9844 ld.w r2, (r14, 0x10) + 58bc: 3178 movi r1, 120 + 58be: 9804 ld.w r0, (r14, 0x10) + 58c0: b840 st.w r2, (r14, 0x0) + 58c2: e3fff5a7 bsr 0x4410 // 4410 <__udivsi3> + 58c6: 9840 ld.w r2, (r14, 0x0) + 58c8: 6082 subu r2, r0 + 58ca: b845 st.w r2, (r14, 0x14) + 58cc: 9804 ld.w r0, (r14, 0x10) + 58ce: 3178 movi r1, 120 + 58d0: 9844 ld.w r2, (r14, 0x10) + 58d2: b840 st.w r2, (r14, 0x0) + 58d4: e3fff59e bsr 0x4410 // 4410 <__udivsi3> + 58d8: 9840 ld.w r2, (r14, 0x0) + 58da: 6008 addu r0, r2 + 58dc: b806 st.w r0, (r14, 0x18) + 58de: c0807020 psrclr ie + 58e2: 9640 ld.w r2, (r6, 0x0) + 58e4: 9254 ld.w r2, (r2, 0x50) + 58e6: b848 st.w r2, (r14, 0x20) + 58e8: 9861 ld.w r3, (r14, 0x4) + 58ea: 9440 ld.w r2, (r4, 0x0) + 58ec: b260 st.w r3, (r2, 0x0) + 58ee: b761 st.w r3, (r7, 0x4) + 58f0: d86e000a ld.b r3, (r14, 0xa) + 58f4: 3b40 cmpnei r3, 0 + 58f6: 083e bt 0x5972 // 5972 + 58f8: e3ffed4e bsr 0x3394 // 3394 + 58fc: 9400 ld.w r0, (r4, 0x0) + 58fe: e3ffed6f bsr 0x33dc // 33dc + 5902: c1807420 psrset ee, ie + 5906: 3001 movi r0, 1 + 5908: 07a3 br 0x584e // 584e + 590a: 3b41 cmpnei r3, 1 + 590c: 0806 bt 0x5918 // 5918 + 590e: 3303 movi r3, 3 + 5910: dc6e000b st.b r3, (r14, 0xb) + 5914: 127d lrw r3, 0x16e3600 // 5a88 + 5916: 07a8 br 0x5866 // 5866 + 5918: 3b42 cmpnei r3, 2 + 591a: 0806 bt 0x5926 // 5926 + 591c: 3301 movi r3, 1 + 591e: dc6e000b st.b r3, (r14, 0xb) + 5922: 127b lrw r3, 0xb71b00 // 5a8c + 5924: 07a1 br 0x5866 // 5866 + 5926: 3b43 cmpnei r3, 3 + 5928: 0806 bt 0x5934 // 5934 + 592a: 3300 movi r3, 0 + 592c: dc6e000b st.b r3, (r14, 0xb) + 5930: 1278 lrw r3, 0x5b8d80 // 5a90 + 5932: 079a br 0x5866 // 5866 + 5934: 3b44 cmpnei r3, 4 + 5936: 0809 bt 0x5948 // 5948 + 5938: 3300 movi r3, 0 + 593a: dc6e000b st.b r3, (r14, 0xb) + 593e: 1276 lrw r3, 0x54c720 // 5a94 + 5940: b863 st.w r3, (r14, 0xc) + 5942: 3380 movi r3, 128 + 5944: 4369 lsli r3, r3, 9 + 5946: 0793 br 0x586c // 586c + 5948: 3b45 cmpnei r3, 5 + 594a: 0806 bt 0x5956 // 5956 + 594c: 3300 movi r3, 0 + 594e: dc6e000b st.b r3, (r14, 0xb) + 5952: 1272 lrw r3, 0x3ffed0 // 5a98 + 5954: 07f6 br 0x5940 // 5940 + 5956: 3b46 cmpnei r3, 6 + 5958: 0806 bt 0x5964 // 5964 + 595a: 3300 movi r3, 0 + 595c: dc6e000b st.b r3, (r14, 0xb) + 5960: 126f lrw r3, 0x1fff68 // 5a9c + 5962: 07ef br 0x5940 // 5940 + 5964: 3b47 cmpnei r3, 7 + 5966: 0b84 bt 0x586e // 586e + 5968: 3300 movi r3, 0 + 596a: dc6e000b st.b r3, (r14, 0xb) + 596e: 126d lrw r3, 0x1ffb8 // 5aa0 + 5970: 07e8 br 0x5940 // 5940 + 5972: 9560 ld.w r3, (r5, 0x0) + 5974: 3101 movi r1, 1 + 5976: 9440 ld.w r2, (r4, 0x0) + 5978: b321 st.w r1, (r3, 0x4) + 597a: b220 st.w r1, (r2, 0x0) + 597c: 3100 movi r1, 0 + 597e: b327 st.w r1, (r3, 0x1c) + 5980: 3004 movi r0, 4 + 5982: b225 st.w r1, (r2, 0x14) + 5984: 932e ld.w r1, (r3, 0x38) + 5986: 6840 and r1, r0 + 5988: 3940 cmpnei r1, 0 + 598a: 0ffd bf 0x5984 // 5984 + 598c: 9225 ld.w r1, (r2, 0x14) + 598e: b82a st.w r1, (r14, 0x28) + 5990: 3100 movi r1, 0 + 5992: b310 st.w r0, (r3, 0x40) + 5994: b327 st.w r1, (r3, 0x1c) + 5996: 3004 movi r0, 4 + 5998: b225 st.w r1, (r2, 0x14) + 599a: 932e ld.w r1, (r3, 0x38) + 599c: 6840 and r1, r0 + 599e: 3940 cmpnei r1, 0 + 59a0: 0ffd bf 0x599a // 599a + 59a2: 9225 ld.w r1, (r2, 0x14) + 59a4: b82b st.w r1, (r14, 0x2c) + 59a6: 3100 movi r1, 0 + 59a8: b310 st.w r0, (r3, 0x40) + 59aa: b327 st.w r1, (r3, 0x1c) + 59ac: 3004 movi r0, 4 + 59ae: b225 st.w r1, (r2, 0x14) + 59b0: 932e ld.w r1, (r3, 0x38) + 59b2: 6840 and r1, r0 + 59b4: 3940 cmpnei r1, 0 + 59b6: 0ffd bf 0x59b0 // 59b0 + 59b8: 9225 ld.w r1, (r2, 0x14) + 59ba: b82c st.w r1, (r14, 0x30) + 59bc: b310 st.w r0, (r3, 0x40) + 59be: 982b ld.w r1, (r14, 0x2c) + 59c0: 980c ld.w r0, (r14, 0x30) + 59c2: 6040 addu r1, r0 + 59c4: b829 st.w r1, (r14, 0x24) + 59c6: 9829 ld.w r1, (r14, 0x24) + 59c8: 4921 lsri r1, r1, 1 + 59ca: b829 st.w r1, (r14, 0x24) + 59cc: 3100 movi r1, 0 + 59ce: b321 st.w r1, (r3, 0x4) + 59d0: b220 st.w r1, (r2, 0x0) + 59d2: b327 st.w r1, (r3, 0x1c) + 59d4: b225 st.w r1, (r2, 0x14) + 59d6: d86e0009 ld.b r3, (r14, 0x9) + 59da: 3b42 cmpnei r3, 2 + 59dc: 9849 ld.w r2, (r14, 0x24) + 59de: 082c bt 0x5a36 // 5a36 + 59e0: 1171 lrw r3, 0x7ff // 5aa4 + 59e2: 648c cmphs r3, r2 + 59e4: 0c03 bf 0x59ea // 59ea + 59e6: 3300 movi r3, 0 + 59e8: 040f br 0x5a06 // 5a06 + 59ea: 9849 ld.w r2, (r14, 0x24) + 59ec: 9866 ld.w r3, (r14, 0x18) + 59ee: 648c cmphs r3, r2 + 59f0: 080e bt 0x5a0c // 5a0c + 59f2: 9868 ld.w r3, (r14, 0x20) + 59f4: 9847 ld.w r2, (r14, 0x1c) + 59f6: 60ca subu r3, r2 + 59f8: b868 st.w r3, (r14, 0x20) + 59fa: 32fe movi r2, 254 + 59fc: 9868 ld.w r3, (r14, 0x20) + 59fe: 4248 lsli r2, r2, 8 + 5a00: 68c8 and r3, r2 + 5a02: 3b40 cmpnei r3, 0 + 5a04: 0812 bt 0x5a28 // 5a28 + 5a06: dc6e000a st.b r3, (r14, 0xa) + 5a0a: 0721 br 0x584c // 584c + 5a0c: 9849 ld.w r2, (r14, 0x24) + 5a0e: 9865 ld.w r3, (r14, 0x14) + 5a10: 64c8 cmphs r2, r3 + 5a12: 0829 bt 0x5a64 // 5a64 + 5a14: 9868 ld.w r3, (r14, 0x20) + 5a16: 9847 ld.w r2, (r14, 0x1c) + 5a18: 60c8 addu r3, r2 + 5a1a: b868 st.w r3, (r14, 0x20) + 5a1c: 33fe movi r3, 254 + 5a1e: 9848 ld.w r2, (r14, 0x20) + 5a20: 4368 lsli r3, r3, 8 + 5a22: 688c and r2, r3 + 5a24: 64ca cmpne r2, r3 + 5a26: 0fe0 bf 0x59e6 // 59e6 + 5a28: 9660 ld.w r3, (r6, 0x0) + 5a2a: 9848 ld.w r2, (r14, 0x20) + 5a2c: b354 st.w r2, (r3, 0x50) + 5a2e: 3001 movi r0, 1 + 5a30: e3ffef32 bsr 0x3894 // 3894 + 5a34: 075e br 0x58f0 // 58f0 + 5a36: 9866 ld.w r3, (r14, 0x18) + 5a38: 648c cmphs r3, r2 + 5a3a: 0809 bt 0x5a4c // 5a4c + 5a3c: 9868 ld.w r3, (r14, 0x20) + 5a3e: 9847 ld.w r2, (r14, 0x1c) + 5a40: 60ca subu r3, r2 + 5a42: b868 st.w r3, (r14, 0x20) + 5a44: 32ff movi r2, 255 + 5a46: 9868 ld.w r3, (r14, 0x20) + 5a48: 4250 lsli r2, r2, 16 + 5a4a: 07db br 0x5a00 // 5a00 + 5a4c: 9849 ld.w r2, (r14, 0x24) + 5a4e: 9865 ld.w r3, (r14, 0x14) + 5a50: 64c8 cmphs r2, r3 + 5a52: 0809 bt 0x5a64 // 5a64 + 5a54: 9868 ld.w r3, (r14, 0x20) + 5a56: 9847 ld.w r2, (r14, 0x1c) + 5a58: 60c8 addu r3, r2 + 5a5a: b868 st.w r3, (r14, 0x20) + 5a5c: 33ff movi r3, 255 + 5a5e: 9848 ld.w r2, (r14, 0x20) + 5a60: 4370 lsli r3, r3, 16 + 5a62: 07e0 br 0x5a22 // 5a22 + 5a64: 3300 movi r3, 0 + 5a66: dc6e000a st.b r3, (r14, 0xa) + 5a6a: 07e2 br 0x5a2e // 5a2e + 5a6c: 2000005c .long 0x2000005c + 5a70: 2000000c .long 0x2000000c + 5a74: 02dc6c00 .long 0x02dc6c00 + 5a78: 0000ffff .long 0x0000ffff + 5a7c: 20000014 .long 0x20000014 + 5a80: be9c0005 .long 0xbe9c0005 + 5a84: 00030010 .long 0x00030010 + 5a88: 016e3600 .long 0x016e3600 + 5a8c: 00b71b00 .long 0x00b71b00 + 5a90: 005b8d80 .long 0x005b8d80 + 5a94: 0054c720 .long 0x0054c720 + 5a98: 003ffed0 .long 0x003ffed0 + 5a9c: 001fff68 .long 0x001fff68 + 5aa0: 0001ffb8 .long 0x0001ffb8 + 5aa4: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241016.map b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241016.map new file mode 100644 index 0000000..05ae38e --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RF_T1F_CR_V01_20241016.map @@ -0,0 +1,2408 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 327040 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 161 + Section header string table index: 158 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 002f12 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00002f14 003f14 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00002f4c 003f4c 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00002fc0 003fc0 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 0000300c 00400c 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 0000303c 00403c 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 000030c4 0040c4 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 000030ec 0040ec 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00003128 004128 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 0000313c 00413c 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00003154 004154 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00003174 004174 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00003190 004190 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 000031ac 0041ac 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 000031ec 0041ec 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 000031f8 0041f8 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 0000321c 00421c 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 0000324c 00424c 0000e0 00 AX 0 0 4 + [19] .text.GPIO_PullHi PROGBITS 0000332c 00432c 000014 00 AX 0 0 2 + [20] .text.GPIO_DriveS PROGBITS 00003340 004340 00000e 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 0000334e 00434e 000008 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00003356 004356 000008 00 AX 0 0 2 + [23] .text.GPIO_Revers PROGBITS 0000335e 00435e 000016 00 AX 0 0 2 + [24] .text.GPIO_Read_S PROGBITS 00003374 004374 000010 00 AX 0 0 2 + [25] .text.GPIO_Read_O PROGBITS 00003384 004384 000010 00 AX 0 0 2 + [26] .text.LPT_Soft_Re PROGBITS 00003394 004394 000014 00 AX 0 0 4 + [27] .text.WWDT_CNT_Lo PROGBITS 000033a8 0043a8 000010 00 AX 0 0 4 + [28] .text.BT_DeInit PROGBITS 000033b8 0043b8 00001c 00 AX 0 0 2 + [29] .text.BT_Start PROGBITS 000033d4 0043d4 000008 00 AX 0 0 2 + [30] .text.BT_Soft_Res PROGBITS 000033dc 0043dc 00000a 00 AX 0 0 2 + [31] .text.BT_Configur PROGBITS 000033e6 0043e6 000018 00 AX 0 0 2 + [32] .text.BT_ControlS PROGBITS 000033fe 0043fe 00002c 00 AX 0 0 2 + [33] .text.BT_Period_C PROGBITS 0000342a 00442a 000006 00 AX 0 0 2 + [34] .text.BT_ConfigIn PROGBITS 00003430 004430 000012 00 AX 0 0 2 + [35] .text.BT1_INT_ENA PROGBITS 00003444 004444 000010 00 AX 0 0 4 + [36] .text.GPT_IO_Init PROGBITS 00003454 004454 0000a0 00 AX 0 0 4 + [37] .text.GPT_Configu PROGBITS 000034f4 0044f4 000014 00 AX 0 0 4 + [38] .text.GPT_WaveCtr PROGBITS 00003508 004508 000044 00 AX 0 0 4 + [39] .text.GPT_WaveLoa PROGBITS 0000354c 00454c 000014 00 AX 0 0 4 + [40] .text.GPT_WaveOut PROGBITS 00003560 004560 0000b4 00 AX 0 0 4 + [41] .text.GPT_Start PROGBITS 00003614 004614 000010 00 AX 0 0 4 + [42] .text.GPT_Period_ PROGBITS 00003624 004624 000010 00 AX 0 0 4 + [43] .text.GPT_ConfigI PROGBITS 00003634 004634 00001c 00 AX 0 0 4 + [44] .text.UART0_DeIni PROGBITS 00003650 004650 000018 00 AX 0 0 4 + [45] .text.UART1_DeIni PROGBITS 00003668 004668 000018 00 AX 0 0 4 + [46] .text.UART2_DeIni PROGBITS 00003680 004680 000018 00 AX 0 0 4 + [47] .text.UART0_Int_E PROGBITS 00003698 004698 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 000036b4 0046b4 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 000036d0 0046d0 0000ec 00 AX 0 0 4 + [50] .text.UARTInit PROGBITS 000037bc 0047bc 000010 00 AX 0 0 4 + [51] .text.UARTInitRxT PROGBITS 000037cc 0047cc 000010 00 AX 0 0 4 + [52] .text.UARTTransmi PROGBITS 000037dc 0047dc 00001e 00 AX 0 0 2 + [53] .text.EPT_Stop PROGBITS 000037fc 0047fc 000028 00 AX 0 0 4 + [54] .text.startup.mai PROGBITS 00003824 004824 000070 00 AX 0 0 4 + [55] .text.delay_nms PROGBITS 00003894 004894 00002c 00 AX 0 0 2 + [56] .text.GPT0_CONFIG PROGBITS 000038c0 0048c0 000094 00 AX 0 0 4 + [57] .text.BT_CONFIG PROGBITS 00003954 004954 000060 00 AX 0 0 4 + [58] .text.SYSCON_CONF PROGBITS 000039b4 0049b4 000062 00 AX 0 0 2 + [59] .text.APT32F102_i PROGBITS 00003a18 004a18 000050 00 AX 0 0 4 + [60] .text.SYSCONIntHa PROGBITS 00003a68 004a68 0000f0 00 AX 0 0 4 + [61] .text.IFCIntHandl PROGBITS 00003b58 004b58 000068 00 AX 0 0 4 + [62] .text.ADCIntHandl PROGBITS 00003bc0 004bc0 000068 00 AX 0 0 4 + [63] .text.EPT0IntHand PROGBITS 00003c28 004c28 0001ac 00 AX 0 0 4 + [64] .text.WWDTHandler PROGBITS 00003dd4 004dd4 000034 00 AX 0 0 4 + [65] .text.GPT0IntHand PROGBITS 00003e08 004e08 000080 00 AX 0 0 4 + [66] .text.RTCIntHandl PROGBITS 00003e88 004e88 000070 00 AX 0 0 4 + [67] .text.UART0IntHan PROGBITS 00003ef8 004ef8 00003c 00 AX 0 0 4 + [68] .text.UART1IntHan PROGBITS 00003f34 004f34 00003c 00 AX 0 0 4 + [69] .text.UART2IntHan PROGBITS 00003f70 004f70 000094 00 AX 0 0 4 + [70] .text.SPI0IntHand PROGBITS 00004004 005004 0000e8 00 AX 0 0 4 + [71] .text.SIO0IntHand PROGBITS 000040ec 0050ec 000054 00 AX 0 0 4 + [72] .text.EXI0IntHand PROGBITS 00004140 005140 000030 00 AX 0 0 4 + [73] .text.EXI1IntHand PROGBITS 00004170 005170 000030 00 AX 0 0 4 + [74] .text.EXI2to3IntH PROGBITS 000041a0 0051a0 000048 00 AX 0 0 4 + [75] .text.EXI4to9IntH PROGBITS 000041e8 0051e8 00005c 00 AX 0 0 4 + [76] .text.EXI10to15In PROGBITS 00004244 005244 000060 00 AX 0 0 4 + [77] .text.LPTIntHandl PROGBITS 000042a4 0052a4 000034 00 AX 0 0 4 + [78] .text.BT0IntHandl PROGBITS 000042d8 0052d8 00004c 00 AX 0 0 4 + [79] .text.BT1IntHandl PROGBITS 00004324 005324 000064 00 AX 0 0 4 + [80] .text.PriviledgeV PROGBITS 00004388 005388 000002 00 AX 0 0 2 + [81] .text.PendTrapHan PROGBITS 0000438a 00538a 000008 00 AX 0 0 2 + [82] .text.Trap3Handle PROGBITS 00004392 005392 000008 00 AX 0 0 2 + [83] .text.Trap2Handle PROGBITS 0000439a 00539a 000008 00 AX 0 0 2 + [84] .text.Trap1Handle PROGBITS 000043a2 0053a2 000008 00 AX 0 0 2 + [85] .text.Trap0Handle PROGBITS 000043aa 0053aa 000008 00 AX 0 0 2 + [86] .text.UnrecExecpH PROGBITS 000043b2 0053b2 000008 00 AX 0 0 2 + [87] .text.BreakPointH PROGBITS 000043ba 0053ba 000008 00 AX 0 0 2 + [88] .text.AccessErrHa PROGBITS 000043c2 0053c2 000008 00 AX 0 0 2 + [89] .text.IllegalInst PROGBITS 000043ca 0053ca 000008 00 AX 0 0 2 + [90] .text.MisalignedH PROGBITS 000043d2 0053d2 000008 00 AX 0 0 2 + [91] .text.CNTAIntHand PROGBITS 000043da 0053da 000008 00 AX 0 0 2 + [92] .text.I2CIntHandl PROGBITS 000043e2 0053e2 000008 00 AX 0 0 2 + [93] .text.__divsi3 PROGBITS 000043ec 0053ec 000024 00 AX 0 0 4 + [94] .text.__udivsi3 PROGBITS 00004410 005410 000024 00 AX 0 0 4 + [95] .text.__modsi3 PROGBITS 00004434 005434 000024 00 AX 0 0 4 + [96] .text.__umodsi3 PROGBITS 00004458 005458 000024 00 AX 0 0 4 + [97] .text.CK_CPU_EnAl PROGBITS 0000447c 00547c 000006 00 AX 0 0 2 + [98] .text.UARTx_Init PROGBITS 00004484 005484 0000d8 00 AX 0 0 4 + [99] .text.UART2_RecvI PROGBITS 0000455c 00555c 000064 00 AX 0 0 4 + [100] .text.Dbg_Println PROGBITS 000045c0 0055c0 000098 00 AX 0 0 4 + [101] .text.RC522_Delay PROGBITS 00004658 005658 000012 00 AX 0 0 2 + [102] .text.RC522_ReadW PROGBITS 0000466c 00566c 000054 00 AX 0 0 4 + [103] .text.RC522_ReadR PROGBITS 000046c0 0056c0 000038 00 AX 0 0 4 + [104] .text.RC522_Write PROGBITS 000046f8 0056f8 000030 00 AX 0 0 4 + [105] .text.RC522_PcdRe PROGBITS 00004728 005728 00004c 00 AX 0 0 2 + [106] .text.RC522_SetBi PROGBITS 00004774 005774 000018 00 AX 0 0 2 + [107] .text.RC522_PcdAn PROGBITS 0000478c 00578c 00001a 00 AX 0 0 2 + [108] .text.RC522_Clear PROGBITS 000047a6 0057a6 000016 00 AX 0 0 2 + [109] .text.RC522_PcdAn PROGBITS 000047bc 0057bc 00000c 00 AX 0 0 2 + [110] .text.RC522_Reset PROGBITS 000047c8 0057c8 000016 00 AX 0 0 2 + [111] .text.M500PcdConf PROGBITS 000047de 0057de 00007e 00 AX 0 0 2 + [112] .text.RC522_Init PROGBITS 0000485c 00585c 00009c 00 AX 0 0 4 + [113] .text.RC522_PcdCo PROGBITS 000048f8 0058f8 00013a 00 AX 0 0 2 + [114] .text.RC522_PcdRe PROGBITS 00004a34 005a34 000088 00 AX 0 0 4 + [115] .text.RC522_PcdAn PROGBITS 00004abc 005abc 000074 00 AX 0 0 2 + [116] .text.Card_Read_T PROGBITS 00004b30 005b30 0000ac 00 AX 0 0 4 + [117] .text.Detect_SPI_ PROGBITS 00004bdc 005bdc 00006c 00 AX 0 0 4 + [118] .text.RLY_Light_C PROGBITS 00004c48 005c48 000050 00 AX 0 0 4 + [119] .text.KEY1_LONG_P PROGBITS 00004c98 005c98 000068 00 AX 0 0 4 + [120] .text.LogicCtrl_I PROGBITS 00004d00 005d00 000034 00 AX 0 0 4 + [121] .text.LogicCtrl_T PROGBITS 00004d34 005d34 000064 00 AX 0 0 4 + [122] .text.LogicCtrl_N PROGBITS 00004d98 005d98 000084 00 AX 0 0 4 + [123] .text.LogicCtrl_N PROGBITS 00004e1c 005e1c 0000c0 00 AX 0 0 4 + [124] .text.BackLight_T PROGBITS 00004edc 005edc 000024 00 AX 0 0 4 + [125] .text.Detect_WIFI PROGBITS 00004f00 005f00 000094 00 AX 0 0 4 + [126] .text.Led_Task PROGBITS 00004f94 005f94 000078 00 AX 0 0 4 + [127] .text.button_init PROGBITS 0000500c 00600c 00003a 00 AX 0 0 2 + [128] .text.button_atta PROGBITS 00005046 006046 00000a 00 AX 0 0 2 + [129] .text.button_hand PROGBITS 00005050 006050 000120 00 AX 0 0 2 + [130] .text.button_star PROGBITS 00005170 006170 000024 00 AX 0 0 4 + [131] .text.button_tick PROGBITS 00005194 006194 00001c 00 AX 0 0 4 + [132] .text.read_button PROGBITS 000051b0 0061b0 000014 00 AX 0 0 4 + [133] .text.TK_Sampling PROGBITS 000051c4 0061c4 000058 00 AX 0 0 4 + [134] .text.TKEYIntHand PROGBITS 0000521c 00621c 000088 00 AX 0 0 4 + [135] .text.get_key_num PROGBITS 000052a4 0062a4 000028 00 AX 0 0 4 + [136] .text.TK_Scan_Sta PROGBITS 000052cc 0062cc 000020 00 AX 0 0 4 + [137] .text.TK_Keymap_p PROGBITS 000052ec 0062ec 000180 00 AX 0 0 4 + [138] .text.TK_overflow PROGBITS 0000546c 00646c 00011c 00 AX 0 0 4 + [139] .text.TK_Baseline PROGBITS 00005588 006588 0001d0 00 AX 0 0 4 + [140] .text.TK_result_p PROGBITS 00005758 006758 000054 00 AX 0 0 4 + [141] .text.CORETHandle PROGBITS 000057ac 0067ac 000078 00 AX 0 0 4 + [142] .text.std_clk_cal PROGBITS 00005824 006824 000284 00 AX 0 0 4 + [143] .RomCode PROGBITS 00005aa8 0080a0 000000 00 W 0 0 1 + [144] .rodata PROGBITS 00005aa8 006aa8 000c6c 00 A 0 0 4 + [145] .data PROGBITS 20000000 008000 0000a0 00 WA 0 0 4 + [146] .bss NOBITS 200000a0 0080a0 0006c0 00 WA 0 0 4 + [147] .csky.attributes CSKY_ATTRIBUTES 00000000 0080a0 000022 00 0 0 1 + [148] .comment PROGBITS 00000000 0080c2 000042 01 MS 0 0 1 + [149] .csky_stack_size PROGBITS 00000000 008110 0008cc 00 0 0 16 + [150] .debug_line PROGBITS 00000000 0089dc 0039da 00 0 0 1 + [151] .debug_info PROGBITS 00000000 00c3b6 02bf39 00 0 0 1 + [152] .debug_abbrev PROGBITS 00000000 0382ef 0028a3 00 0 0 1 + [153] .debug_aranges PROGBITS 00000000 03ab98 000cc8 00 0 0 8 + [154] .debug_ranges PROGBITS 00000000 03b860 000bf8 00 0 0 1 + [155] .debug_str PROGBITS 00000000 03c458 008893 01 MS 0 0 1 + [156] .debug_frame PROGBITS 00000000 044cec 001e0c 00 0 0 4 + [157] .debug_loc PROGBITS 00000000 046af8 002f33 00 0 0 1 + [158] .shstrtab STRTAB 00000000 04f08a 000cf3 00 0 0 1 + [159] .symtab SYMTAB 00000000 049a2c 004150 10 160 718 4 + [160] .strtab STRTAB 00000000 04db7c 00150e 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x06714 0x06714 R E 0x1000 + LOAD 0x008000 0x20000000 0x00006714 0x000a0 0x00760 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.SYSCON_Int_Enable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.GPIO_Read_Output .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.startup.main .text.delay_nms .text.GPT0_CONFIG .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.Dbg_Println .text.RC522_Delay .text.RC522_ReadWriteOneByte .text.RC522_ReadRawRC .text.RC522_WriteRawRC .text.RC522_PcdReset .text.RC522_SetBitMask .text.RC522_PcdAntennaOn .text.RC522_ClearBitMask .text.RC522_PcdAntennaOff .text.RC522_Reset .text.M500PcdConfigISOType.part.1 .text.RC522_Init .text.RC522_PcdComMF522 .text.RC522_PcdRequest .text.RC522_PcdAnticoll .text.Card_Read_TasK .text.Detect_SPI_task .text.RLY_Light_Ctrl .text.KEY1_LONG_PRESS_RELEASE_Handler .text.LogicCtrl_Init .text.LogicCtrl_Task .text.LogicCtrl_NoRF_Init .text.LogicCtrl_NoRF_Task .text.BackLight_Task .text.Detect_WIFI_Task .text.Led_Task .text.button_init .text.button_attach .text.button_handler .text.button_start .text.button_ticks .text.read_button_GPIO .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_button.o(.text.read_button_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInit) for UARTInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPT0_CONFIG) for GPT0_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_rc522.o(.text.RC522_Reset) for RC522_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Init) for RC522_Init + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) for RC522_PcdRequest + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) for RC522_PcdAnticoll + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) for Card_Read_TasK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) for Detect_SPI_task + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) for LogicCtrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) for LogicCtrl_Task + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) for LogicCtrl_NoRF_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) for LogicCtrl_NoRF_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.BackLight_Task) for BackLight_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) for Detect_WIFI_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) for Led_Task + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_init) for button_init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_attach) for button_attach + Obj/SYSTEM_button.o(.text.button_ticks) refers to Obj/SYSTEM_button.o(.text.button_handler) for button_handler + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_start) for button_start + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_button.o(.text.button_ticks) for button_ticks + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_button.o(.text.button_init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (491 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2912 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.EXTI_interrupt_CMD(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.GPIO_EXTI_interrupt(Obj/FWlib_apt32f102_syscon.o), (4 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_IntGroup_Set(Obj/FWlib_apt32f102_gpio.o), (268 bytes). + Removing .text.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3106 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3423 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3168 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4136 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3539 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3655 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4855 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4963 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7612 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2861 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.delay_nus(Obj/mcu_initial.o), (34 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (136 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (156 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (188 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (188 bytes). + Removing .text(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .data(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .text.RC522_CalulateCRC(Obj/SYSTEM_rc522.o), (102 bytes). + Removing .text.M500PcdConfigISOType(Obj/SYSTEM_rc522.o), (18 bytes). + Removing .text.RC522_MFRC522_SelectTag(Obj/SYSTEM_rc522.o), (110 bytes). + Removing .text.RC522_PcdSelect(Obj/SYSTEM_rc522.o), (106 bytes). + Removing .text.RC522_PcdAuthState(Obj/SYSTEM_rc522.o), (88 bytes). + Removing .text.RC522_PcdRead(Obj/SYSTEM_rc522.o), (84 bytes). + Removing .text.RC522_PcdWrite(Obj/SYSTEM_rc522.o), (142 bytes). + Removing .text(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .data(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .text.Ctrl_Backlight(Obj/SYSTEM_logic_ctrl.o), (36 bytes). + Removing .text.Debounce_Task(Obj/SYSTEM_logic_ctrl.o), (2 bytes). + Removing .text.KEY1_LONG_PRESS_START_Handler(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text.Ctrl_Led_Mode(Obj/SYSTEM_logic_ctrl.o), (2 bytes). + Removing .text(Obj/SYSTEM_button.o), (0 bytes). + Removing .data(Obj/SYSTEM_button.o), (0 bytes). + Removing .text.get_button_event(Obj/SYSTEM_button.o), (6 bytes). + Removing .text.button_stop(Obj/SYSTEM_button.o), (32 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (126 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +655 unused seciton(s) (total 180347 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_button.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_logic_ctrl.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_rc522.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + swrite 0x00001984 F 62 .text + $d 0x00001984 0 .text + $t 0x00001984 0 .text + $d 0x00001a18 0 .text + $d 0x00001a1c 0 .text + $t 0x00001a1c 0 .text + $d 0x00001aa4 0 .text + $t 0x00001aa4 0 .text + PAD.1851 0x00001b08 F 52 .text + $d 0x00001b08 0 .text + $t 0x00001b08 0 .text + $d 0x000020b0 0 .text + $t 0x000020bc 0 .text + $d 0x00002258 0 .text + $d 0x00002260 0 .text + $t 0x00002260 0 .text + $d 0x00002600 0 .text + $d 0x0000260c 0 .text + $t 0x0000260c 0 .text + $d 0x000029a0 0 .text + copystring 0x000029ac F 38 .text + $d 0x000029ac 0 .text + $t 0x000029ac 0 .text + $d 0x00002cd8 0 .text + $d 0x00002d0c 0 .text + $t 0x00002d0c 0 .text + $d 0x00002d34 0 .text + $d 0x00002d38 0 .text + $t 0x00002d38 0 .text + $d 0x00002d8c 0 .text + $t 0x00002d8c 0 .text + $d 0x00002e3c 0 .text + $t 0x00002e3c 0 .text + $d 0x00002e50 0 .text + $t 0x00002e50 0 .text + $d 0x00002e64 0 .text + $d 0x00002e6c 0 .text + $t 0x00002e6c 0 .text + $d 0x00002e94 0 .text + $d 0x00002e9c 0 .text + $t 0x00002e9c 0 .text + $d 0x00002ed8 0 .text + $t 0x00002ed8 0 .text + $d 0x00002f14 0 .text.__main + $t 0x00002f14 0 .text.__main + $d 0x00002f38 0 .text.__main + SYSCON_General_CMD.part.0 0x00002f4c F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $t 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fb8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fc0 0 .text.SYSCON_RST_VALUE + $t 0x00002fc0 0 .text.SYSCON_RST_VALUE + $d 0x00002ff0 0 .text.SYSCON_RST_VALUE + $d 0x0000300c 0 .text.SYSCON_General_CMD + $t 0x0000300c 0 .text.SYSCON_General_CMD + $d 0x00003038 0 .text.SYSCON_General_CMD + $d 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030b4 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $t 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030e8 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030ec 0 .text.SYSCON_WDT_CMD + $t 0x000030ec 0 .text.SYSCON_WDT_CMD + $d 0x0000311c 0 .text.SYSCON_WDT_CMD + $d 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $t 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $d 0x00003138 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $t 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $d 0x0000314c 0 .text.SYSCON_IWDCNT_Config + $d 0x00003154 0 .text.SYSCON_LVD_Config + $t 0x00003154 0 .text.SYSCON_LVD_Config + $d 0x0000316c 0 .text.SYSCON_LVD_Config + $d 0x00003174 0 .text.LVD_Int_Enable + $t 0x00003174 0 .text.LVD_Int_Enable + $d 0x0000318c 0 .text.LVD_Int_Enable + $d 0x00003190 0 .text.IWDT_Int_Enable + $t 0x00003190 0 .text.IWDT_Int_Enable + $d 0x000031a8 0 .text.IWDT_Int_Enable + $d 0x000031ac 0 .text.EXTI_trigger_CMD + $t 0x000031ac 0 .text.EXTI_trigger_CMD + $d 0x000031e8 0 .text.EXTI_trigger_CMD + $d 0x000031ec 0 .text.SYSCON_Int_Enable + $t 0x000031ec 0 .text.SYSCON_Int_Enable + $d 0x000031f4 0 .text.SYSCON_Int_Enable + $d 0x000031f8 0 .text.SYSCON_INT_Priority + $t 0x000031f8 0 .text.SYSCON_INT_Priority + $d 0x00003210 0 .text.SYSCON_INT_Priority + $d 0x0000321c 0 .text.Set_INT_Priority + $t 0x0000321c 0 .text.Set_INT_Priority + $d 0x00003248 0 .text.Set_INT_Priority + $d 0x0000324c 0 .text.GPIO_Init + $t 0x0000324c 0 .text.GPIO_Init + $d 0x0000325e 0 .text.GPIO_Init + $t 0x00003266 0 .text.GPIO_Init + $d 0x000032c2 0 .text.GPIO_Init + $t 0x000032ca 0 .text.GPIO_Init + $d 0x00003318 0 .text.GPIO_Init + $d 0x0000332c 0 .text.GPIO_PullHigh_Init + $t 0x0000332c 0 .text.GPIO_PullHigh_Init + $d 0x00003340 0 .text.GPIO_DriveStrength_EN + $t 0x00003340 0 .text.GPIO_DriveStrength_EN + $d 0x0000334e 0 .text.GPIO_Write_High + $t 0x0000334e 0 .text.GPIO_Write_High + $d 0x00003356 0 .text.GPIO_Write_Low + $t 0x00003356 0 .text.GPIO_Write_Low + $d 0x0000335e 0 .text.GPIO_Reverse + $t 0x0000335e 0 .text.GPIO_Reverse + $d 0x00003374 0 .text.GPIO_Read_Status + $t 0x00003374 0 .text.GPIO_Read_Status + $d 0x00003384 0 .text.GPIO_Read_Output + $t 0x00003384 0 .text.GPIO_Read_Output + $d 0x00003394 0 .text.LPT_Soft_Reset + $t 0x00003394 0 .text.LPT_Soft_Reset + $d 0x000033a4 0 .text.LPT_Soft_Reset + $d 0x000033a8 0 .text.WWDT_CNT_Load + $t 0x000033a8 0 .text.WWDT_CNT_Load + $d 0x000033b4 0 .text.WWDT_CNT_Load + $d 0x000033b8 0 .text.BT_DeInit + $t 0x000033b8 0 .text.BT_DeInit + $d 0x000033d4 0 .text.BT_Start + $t 0x000033d4 0 .text.BT_Start + $d 0x000033dc 0 .text.BT_Soft_Reset + $t 0x000033dc 0 .text.BT_Soft_Reset + $d 0x000033e6 0 .text.BT_Configure + $t 0x000033e6 0 .text.BT_Configure + $d 0x000033fe 0 .text.BT_ControlSet_Configure + $t 0x000033fe 0 .text.BT_ControlSet_Configure + $d 0x0000342a 0 .text.BT_Period_CMP_Write + $t 0x0000342a 0 .text.BT_Period_CMP_Write + $d 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $t 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $d 0x00003444 0 .text.BT1_INT_ENABLE + $t 0x00003444 0 .text.BT1_INT_ENABLE + $d 0x00003450 0 .text.BT1_INT_ENABLE + $d 0x00003454 0 .text.GPT_IO_Init + $t 0x00003454 0 .text.GPT_IO_Init + $d 0x000034ec 0 .text.GPT_IO_Init + $d 0x000034f4 0 .text.GPT_Configure + $t 0x000034f4 0 .text.GPT_Configure + $d 0x00003504 0 .text.GPT_Configure + $d 0x00003508 0 .text.GPT_WaveCtrl_Configure + $t 0x00003508 0 .text.GPT_WaveCtrl_Configure + $d 0x00003548 0 .text.GPT_WaveCtrl_Configure + $d 0x0000354c 0 .text.GPT_WaveLoad_Configure + $t 0x0000354c 0 .text.GPT_WaveLoad_Configure + $d 0x0000355c 0 .text.GPT_WaveLoad_Configure + $d 0x00003560 0 .text.GPT_WaveOut_Configure + $t 0x00003560 0 .text.GPT_WaveOut_Configure + $d 0x00003610 0 .text.GPT_WaveOut_Configure + $d 0x00003614 0 .text.GPT_Start + $t 0x00003614 0 .text.GPT_Start + $d 0x00003620 0 .text.GPT_Start + $d 0x00003624 0 .text.GPT_Period_CMP_Write + $t 0x00003624 0 .text.GPT_Period_CMP_Write + $d 0x00003630 0 .text.GPT_Period_CMP_Write + $d 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $t 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $d 0x0000364c 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00003650 0 .text.UART0_DeInit + $t 0x00003650 0 .text.UART0_DeInit + $d 0x00003664 0 .text.UART0_DeInit + $d 0x00003668 0 .text.UART1_DeInit + $t 0x00003668 0 .text.UART1_DeInit + $d 0x0000367c 0 .text.UART1_DeInit + $d 0x00003680 0 .text.UART2_DeInit + $t 0x00003680 0 .text.UART2_DeInit + $d 0x00003694 0 .text.UART2_DeInit + $d 0x00003698 0 .text.UART0_Int_Enable + $t 0x00003698 0 .text.UART0_Int_Enable + $d 0x000036ac 0 .text.UART0_Int_Enable + $d 0x000036b4 0 .text.UART2_Int_Enable + $t 0x000036b4 0 .text.UART2_Int_Enable + $d 0x000036c8 0 .text.UART2_Int_Enable + $d 0x000036d0 0 .text.UART_IO_Init + $t 0x000036d0 0 .text.UART_IO_Init + $d 0x000037b4 0 .text.UART_IO_Init + $d 0x000037bc 0 .text.UARTInit + $t 0x000037bc 0 .text.UARTInit + $d 0x000037c8 0 .text.UARTInit + $d 0x000037cc 0 .text.UARTInitRxTxIntEn + $t 0x000037cc 0 .text.UARTInitRxTxIntEn + $d 0x000037d8 0 .text.UARTInitRxTxIntEn + $d 0x000037dc 0 .text.UARTTransmit + $t 0x000037dc 0 .text.UARTTransmit + $d 0x000037fc 0 .text.EPT_Stop + $t 0x000037fc 0 .text.EPT_Stop + $d 0x0000381c 0 .text.EPT_Stop + $d 0x00003824 0 .text.startup.main + $t 0x00003824 0 .text.startup.main + $d 0x00003888 0 .text.startup.main + $d 0x00003894 0 .text.delay_nms + $t 0x00003894 0 .text.delay_nms + $d 0x000038c0 0 .text.GPT0_CONFIG + $t 0x000038c0 0 .text.GPT0_CONFIG + $d 0x00003950 0 .text.GPT0_CONFIG + $d 0x00003954 0 .text.BT_CONFIG + $t 0x00003954 0 .text.BT_CONFIG + $d 0x000039ac 0 .text.BT_CONFIG + $d 0x000039b4 0 .text.SYSCON_CONFIG + $t 0x000039b4 0 .text.SYSCON_CONFIG + $d 0x00003a18 0 .text.APT32F102_init + $t 0x00003a18 0 .text.APT32F102_init + $d 0x00003a60 0 .text.APT32F102_init + $d 0x00003a68 0 .text.SYSCONIntHandler + $t 0x00003a68 0 .text.SYSCONIntHandler + $d 0x00003b54 0 .text.SYSCONIntHandler + $d 0x00003b58 0 .text.IFCIntHandler + $t 0x00003b58 0 .text.IFCIntHandler + $d 0x00003bbc 0 .text.IFCIntHandler + $d 0x00003bc0 0 .text.ADCIntHandler + $t 0x00003bc0 0 .text.ADCIntHandler + $d 0x00003c24 0 .text.ADCIntHandler + $d 0x00003c28 0 .text.EPT0IntHandler + $t 0x00003c28 0 .text.EPT0IntHandler + $d 0x00003dc8 0 .text.EPT0IntHandler + $d 0x00003dd4 0 .text.WWDTHandler + $t 0x00003dd4 0 .text.WWDTHandler + $d 0x00003e04 0 .text.WWDTHandler + $d 0x00003e08 0 .text.GPT0IntHandler + $t 0x00003e08 0 .text.GPT0IntHandler + $d 0x00003e84 0 .text.GPT0IntHandler + $d 0x00003e88 0 .text.RTCIntHandler + $t 0x00003e88 0 .text.RTCIntHandler + $d 0x00003ef0 0 .text.RTCIntHandler + $d 0x00003ef8 0 .text.UART0IntHandler + $t 0x00003ef8 0 .text.UART0IntHandler + $d 0x00003f30 0 .text.UART0IntHandler + $d 0x00003f34 0 .text.UART1IntHandler + $t 0x00003f34 0 .text.UART1IntHandler + $d 0x00003f6c 0 .text.UART1IntHandler + $d 0x00003f70 0 .text.UART2IntHandler + $t 0x00003f70 0 .text.UART2IntHandler + $d 0x00003ff0 0 .text.UART2IntHandler + $d 0x00004004 0 .text.SPI0IntHandler + $t 0x00004004 0 .text.SPI0IntHandler + $d 0x000040e8 0 .text.SPI0IntHandler + $d 0x000040ec 0 .text.SIO0IntHandler + $t 0x000040ec 0 .text.SIO0IntHandler + $d 0x0000413c 0 .text.SIO0IntHandler + $d 0x00004140 0 .text.EXI0IntHandler + $t 0x00004140 0 .text.EXI0IntHandler + $d 0x0000416c 0 .text.EXI0IntHandler + $d 0x00004170 0 .text.EXI1IntHandler + $t 0x00004170 0 .text.EXI1IntHandler + $d 0x0000419c 0 .text.EXI1IntHandler + $d 0x000041a0 0 .text.EXI2to3IntHandler + $t 0x000041a0 0 .text.EXI2to3IntHandler + $d 0x000041e4 0 .text.EXI2to3IntHandler + $d 0x000041e8 0 .text.EXI4to9IntHandler + $t 0x000041e8 0 .text.EXI4to9IntHandler + $d 0x00004240 0 .text.EXI4to9IntHandler + $d 0x00004244 0 .text.EXI10to15IntHandler + $t 0x00004244 0 .text.EXI10to15IntHandler + $d 0x000042a0 0 .text.EXI10to15IntHandler + $d 0x000042a4 0 .text.LPTIntHandler + $t 0x000042a4 0 .text.LPTIntHandler + $d 0x000042d4 0 .text.LPTIntHandler + $d 0x000042d8 0 .text.BT0IntHandler + $t 0x000042d8 0 .text.BT0IntHandler + $d 0x00004320 0 .text.BT0IntHandler + $d 0x00004324 0 .text.BT1IntHandler + $t 0x00004324 0 .text.BT1IntHandler + $d 0x00004380 0 .text.BT1IntHandler + $d 0x00004388 0 .text.PriviledgeVioHandler + $t 0x00004388 0 .text.PriviledgeVioHandler + $d 0x0000438a 0 .text.PendTrapHandler + $t 0x0000438a 0 .text.PendTrapHandler + $d 0x00004392 0 .text.Trap3Handler + $t 0x00004392 0 .text.Trap3Handler + $d 0x0000439a 0 .text.Trap2Handler + $t 0x0000439a 0 .text.Trap2Handler + $d 0x000043a2 0 .text.Trap1Handler + $t 0x000043a2 0 .text.Trap1Handler + $d 0x000043aa 0 .text.Trap0Handler + $t 0x000043aa 0 .text.Trap0Handler + $d 0x000043b2 0 .text.UnrecExecpHandler + $t 0x000043b2 0 .text.UnrecExecpHandler + $d 0x000043ba 0 .text.BreakPointHandler + $t 0x000043ba 0 .text.BreakPointHandler + $d 0x000043c2 0 .text.AccessErrHandler + $t 0x000043c2 0 .text.AccessErrHandler + $d 0x000043ca 0 .text.IllegalInstrHandler + $t 0x000043ca 0 .text.IllegalInstrHandler + $d 0x000043d2 0 .text.MisalignedHandler + $t 0x000043d2 0 .text.MisalignedHandler + $d 0x000043da 0 .text.CNTAIntHandler + $t 0x000043da 0 .text.CNTAIntHandler + $d 0x000043e2 0 .text.I2CIntHandler + $t 0x000043e2 0 .text.I2CIntHandler + $d 0x000043ec 0 .text.__divsi3 + $t 0x000043ec 0 .text.__divsi3 + $d 0x0000440c 0 .text.__divsi3 + $d 0x00004410 0 .text.__udivsi3 + $t 0x00004410 0 .text.__udivsi3 + $d 0x00004430 0 .text.__udivsi3 + $d 0x00004434 0 .text.__modsi3 + $t 0x00004434 0 .text.__modsi3 + $d 0x00004454 0 .text.__modsi3 + $d 0x00004458 0 .text.__umodsi3 + $t 0x00004458 0 .text.__umodsi3 + $d 0x00004478 0 .text.__umodsi3 + $d 0x0000447c 0 .text.CK_CPU_EnAllNormalIrq + $t 0x0000447c 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00004484 0 .text.UARTx_Init + $t 0x00004484 0 .text.UARTx_Init + $d 0x00004540 0 .text.UARTx_Init + $d 0x0000455c 0 .text.UART2_RecvINT_Processing + $t 0x0000455c 0 .text.UART2_RecvINT_Processing + $d 0x000045b0 0 .text.UART2_RecvINT_Processing + $d 0x000045c0 0 .text.Dbg_Println + $t 0x000045c0 0 .text.Dbg_Println + $d 0x00004640 0 .text.Dbg_Println + $d 0x00004658 0 .text.RC522_Delay + $t 0x00004658 0 .text.RC522_Delay + $d 0x0000466c 0 .text.RC522_ReadWriteOneByte + $t 0x0000466c 0 .text.RC522_ReadWriteOneByte + $d 0x000046bc 0 .text.RC522_ReadWriteOneByte + $d 0x000046c0 0 .text.RC522_ReadRawRC + $t 0x000046c0 0 .text.RC522_ReadRawRC + $d 0x000046f4 0 .text.RC522_ReadRawRC + $d 0x000046f8 0 .text.RC522_WriteRawRC + $t 0x000046f8 0 .text.RC522_WriteRawRC + $d 0x00004724 0 .text.RC522_WriteRawRC + $d 0x00004728 0 .text.RC522_PcdReset + $t 0x00004728 0 .text.RC522_PcdReset + $d 0x00004774 0 .text.RC522_SetBitMask + $t 0x00004774 0 .text.RC522_SetBitMask + $d 0x0000478c 0 .text.RC522_PcdAntennaOn + $t 0x0000478c 0 .text.RC522_PcdAntennaOn + $d 0x000047a6 0 .text.RC522_ClearBitMask + $t 0x000047a6 0 .text.RC522_ClearBitMask + $d 0x000047bc 0 .text.RC522_PcdAntennaOff + $t 0x000047bc 0 .text.RC522_PcdAntennaOff + $d 0x000047c8 0 .text.RC522_Reset + $t 0x000047c8 0 .text.RC522_Reset + M500PcdConfigISOType.part.1 0x000047de F 126 .text.M500PcdConfigISOType.part.1 + $d 0x000047de 0 .text.M500PcdConfigISOType.part.1 + $t 0x000047de 0 .text.M500PcdConfigISOType.part.1 + $d 0x0000485c 0 .text.RC522_Init + $t 0x0000485c 0 .text.RC522_Init + $d 0x000048ec 0 .text.RC522_Init + $d 0x000048f8 0 .text.RC522_PcdComMF522 + $t 0x000048f8 0 .text.RC522_PcdComMF522 + $d 0x00004a34 0 .text.RC522_PcdRequest + $t 0x00004a34 0 .text.RC522_PcdRequest + $d 0x00004ab4 0 .text.RC522_PcdRequest + $d 0x00004abc 0 .text.RC522_PcdAnticoll + $t 0x00004abc 0 .text.RC522_PcdAnticoll + $d 0x00004b30 0 .text.Card_Read_TasK + $t 0x00004b30 0 .text.Card_Read_TasK + $d 0x00004bbc 0 .text.Card_Read_TasK + $d 0x00004bdc 0 .text.Detect_SPI_task + $t 0x00004bdc 0 .text.Detect_SPI_task + $d 0x00004c30 0 .text.Detect_SPI_task + $d 0x00004c48 0 .text.RLY_Light_Ctrl + $t 0x00004c48 0 .text.RLY_Light_Ctrl + $d 0x00004c84 0 .text.RLY_Light_Ctrl + $d 0x00004c98 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $t 0x00004c98 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004ce4 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004d00 0 .text.LogicCtrl_Init + $t 0x00004d00 0 .text.LogicCtrl_Init + $d 0x00004d2c 0 .text.LogicCtrl_Init + $d 0x00004d34 0 .text.LogicCtrl_Task + $t 0x00004d34 0 .text.LogicCtrl_Task + $d 0x00004d8c 0 .text.LogicCtrl_Task + $d 0x00004d98 0 .text.LogicCtrl_NoRF_Init + $t 0x00004d98 0 .text.LogicCtrl_NoRF_Init + $d 0x00004e08 0 .text.LogicCtrl_NoRF_Init + $d 0x00004e1c 0 .text.LogicCtrl_NoRF_Task + $t 0x00004e1c 0 .text.LogicCtrl_NoRF_Task + $d 0x00004ec4 0 .text.LogicCtrl_NoRF_Task + $d 0x00004edc 0 .text.BackLight_Task + $t 0x00004edc 0 .text.BackLight_Task + $d 0x00004ef8 0 .text.BackLight_Task + $d 0x00004f00 0 .text.Detect_WIFI_Task + $t 0x00004f00 0 .text.Detect_WIFI_Task + $d 0x00004f70 0 .text.Detect_WIFI_Task + $d 0x00004f94 0 .text.Led_Task + $t 0x00004f94 0 .text.Led_Task + $d 0x00004ff8 0 .text.Led_Task + $d 0x0000500c 0 .text.button_init + $t 0x0000500c 0 .text.button_init + $d 0x00005046 0 .text.button_attach + $t 0x00005046 0 .text.button_attach + $d 0x00005050 0 .text.button_handler + $t 0x00005050 0 .text.button_handler + $d 0x00005170 0 .text.button_start + $t 0x00005170 0 .text.button_start + $d 0x00005190 0 .text.button_start + $d 0x00005194 0 .text.button_ticks + $t 0x00005194 0 .text.button_ticks + $d 0x000051ac 0 .text.button_ticks + $d 0x000051b0 0 .text.read_button_GPIO + $t 0x000051b0 0 .text.read_button_GPIO + $d 0x000051c0 0 .text.read_button_GPIO + $d 0x000051c4 0 .text.TK_Sampling_prog + $t 0x000051c4 0 .text.TK_Sampling_prog + $d 0x0000520c 0 .text.TK_Sampling_prog + $d 0x0000521c 0 .text.TKEYIntHandler + $t 0x0000521c 0 .text.TKEYIntHandler + $d 0x00005298 0 .text.TKEYIntHandler + $d 0x000052a4 0 .text.get_key_number + $t 0x000052a4 0 .text.get_key_number + $d 0x000052c8 0 .text.get_key_number + $d 0x000052cc 0 .text.TK_Scan_Start + $t 0x000052cc 0 .text.TK_Scan_Start + $d 0x000052e4 0 .text.TK_Scan_Start + $d 0x000052ec 0 .text.TK_Keymap_prog + $t 0x000052ec 0 .text.TK_Keymap_prog + $d 0x00005434 0 .text.TK_Keymap_prog + $d 0x0000546c 0 .text.TK_overflow_predict + $t 0x0000546c 0 .text.TK_overflow_predict + $d 0x00005554 0 .text.TK_overflow_predict + $d 0x00005588 0 .text.TK_Baseline_tracking + $t 0x00005588 0 .text.TK_Baseline_tracking + $d 0x0000572c 0 .text.TK_Baseline_tracking + $d 0x00005758 0 .text.TK_result_prog + $t 0x00005758 0 .text.TK_result_prog + $d 0x00005798 0 .text.TK_result_prog + $d 0x000057ac 0 .text.CORETHandler + $t 0x000057ac 0 .text.CORETHandler + $d 0x0000580c 0 .text.CORETHandler + $d 0x00005824 0 .text.std_clk_calib + $t 0x00005824 0 .text.std_clk_calib + $d 0x00005a6c 0 .text.std_clk_calib + bp 0x00005aa8 O 16 .rodata + dp_l 0x00005ab8 O 16 .rodata + dp_h 0x00005ac8 O 16 .rodata + blanks.1847 0x00005bec O 16 .rodata + zeroes.1848 0x00005bfc O 16 .rodata + CSWTCH.1 0x00005c0c O 576 .rodata + NUM.6035 0x200000b0 O 1 .bss + test_tick.5957 0x200002e0 O 4 .bss + card_tick.5956 0x200002e4 O 4 .bss + head_handle 0x200002e8 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __cskyvprintfsnprintf 0x00001964 F 32 .text + __cskyvprintfvsnprintf 0x000019c2 F 90 .text + __memset_fast 0x00001a1c w F 136 .text + memset 0x00001a1c w F 136 .text + __memcpy_fast 0x00001aa4 w F 100 .text + memcpy 0x00001aa4 w F 100 .text + __v2_printf 0x00001b3c F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00001b3c F 1828 .text + __udivdi3 0x00002260 F 940 .text + __umoddi3 0x0000260c F 928 .text + __GI___dtostr 0x000029d2 F 826 .text + __dtostr 0x000029d2 F 826 .text + __isnan 0x00002d0c F 44 .text + __strlen_fast 0x00002d38 w F 82 .text + strlen 0x00002d38 w F 82 .text + __strcpy_fast 0x00002d8c w F 176 .text + strcpy 0x00002d8c w F 176 .text + __GI_strchr 0x00002e3c F 18 .text + strchr 0x00002e3c w F 18 .text + __GI_strerror 0x00002e50 F 28 .text + strerror 0x00002e50 F 28 .text + __isinf 0x00002e6c F 48 .text + __eqdf2 0x00002e9c F 58 .text + __ltdf2 0x00002ed8 F 58 .text + __main 0x00002f14 F 56 .text.__main + SYSCON_RST_VALUE 0x00002fc0 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x0000300c F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x0000303c F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x000030c4 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x000030ec F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00003128 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x0000313c F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00003154 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00003174 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00003190 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x000031ac F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x000031ec F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x000031f8 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x0000321c F 48 .text.Set_INT_Priority + GPIO_Init 0x0000324c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000332c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00003340 F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x0000334e F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00003356 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x0000335e F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00003374 F 16 .text.GPIO_Read_Status + GPIO_Read_Output 0x00003384 F 16 .text.GPIO_Read_Output + LPT_Soft_Reset 0x00003394 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000033a8 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000033b8 F 28 .text.BT_DeInit + BT_Start 0x000033d4 F 8 .text.BT_Start + BT_Soft_Reset 0x000033dc F 10 .text.BT_Soft_Reset + BT_Configure 0x000033e6 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000033fe F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000342a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00003430 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00003444 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00003454 F 160 .text.GPT_IO_Init + GPT_Configure 0x000034f4 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00003508 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x0000354c F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x00003560 F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x00003614 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x00003624 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x00003634 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x00003650 F 24 .text.UART0_DeInit + UART1_DeInit 0x00003668 F 24 .text.UART1_DeInit + UART2_DeInit 0x00003680 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00003698 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000036b4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x000036d0 F 236 .text.UART_IO_Init + UARTInit 0x000037bc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x000037cc F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000037dc F 30 .text.UARTTransmit + EPT_Stop 0x000037fc F 40 .text.EPT_Stop + main 0x00003824 F 112 .text.startup.main + delay_nms 0x00003894 F 44 .text.delay_nms + GPT0_CONFIG 0x000038c0 F 148 .text.GPT0_CONFIG + BT_CONFIG 0x00003954 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x000039b4 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00003a18 F 80 .text.APT32F102_init + SYSCONIntHandler 0x00003a68 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00003b58 F 104 .text.IFCIntHandler + ADCIntHandler 0x00003bc0 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003c28 F 428 .text.EPT0IntHandler + WWDTHandler 0x00003dd4 F 52 .text.WWDTHandler + GPT0IntHandler 0x00003e08 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00003e88 F 112 .text.RTCIntHandler + UART0IntHandler 0x00003ef8 F 60 .text.UART0IntHandler + UART1IntHandler 0x00003f34 F 60 .text.UART1IntHandler + UART2IntHandler 0x00003f70 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00004004 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000040ec F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00004140 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00004170 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000041a0 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000041e8 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00004244 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000042a4 F 52 .text.LPTIntHandler + BT0IntHandler 0x000042d8 F 76 .text.BT0IntHandler + BT1IntHandler 0x00004324 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00004388 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x0000438a F 8 .text.PendTrapHandler + Trap3Handler 0x00004392 F 8 .text.Trap3Handler + Trap2Handler 0x0000439a F 8 .text.Trap2Handler + Trap1Handler 0x000043a2 F 8 .text.Trap1Handler + Trap0Handler 0x000043aa F 8 .text.Trap0Handler + UnrecExecpHandler 0x000043b2 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000043ba F 8 .text.BreakPointHandler + AccessErrHandler 0x000043c2 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000043ca F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000043d2 F 8 .text.MisalignedHandler + CNTAIntHandler 0x000043da F 8 .text.CNTAIntHandler + I2CIntHandler 0x000043e2 F 8 .text.I2CIntHandler + __divsi3 0x000043ec F 36 .text.__divsi3 + __udivsi3 0x00004410 F 36 .text.__udivsi3 + __modsi3 0x00004434 F 36 .text.__modsi3 + __umodsi3 0x00004458 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x0000447c F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x00004484 F 216 .text.UARTx_Init + UART2_RecvINT_Processing 0x0000455c F 100 .text.UART2_RecvINT_Processing + Dbg_Println 0x000045c0 F 152 .text.Dbg_Println + RC522_Delay 0x00004658 F 18 .text.RC522_Delay + RC522_ReadWriteOneByte 0x0000466c F 84 .text.RC522_ReadWriteOneByte + RC522_ReadRawRC 0x000046c0 F 56 .text.RC522_ReadRawRC + RC522_WriteRawRC 0x000046f8 F 48 .text.RC522_WriteRawRC + RC522_PcdReset 0x00004728 F 76 .text.RC522_PcdReset + RC522_SetBitMask 0x00004774 F 24 .text.RC522_SetBitMask + RC522_PcdAntennaOn 0x0000478c F 26 .text.RC522_PcdAntennaOn + RC522_ClearBitMask 0x000047a6 F 22 .text.RC522_ClearBitMask + RC522_PcdAntennaOff 0x000047bc F 12 .text.RC522_PcdAntennaOff + RC522_Reset 0x000047c8 F 22 .text.RC522_Reset + RC522_Init 0x0000485c F 156 .text.RC522_Init + RC522_PcdComMF522 0x000048f8 F 314 .text.RC522_PcdComMF522 + RC522_PcdRequest 0x00004a34 F 136 .text.RC522_PcdRequest + RC522_PcdAnticoll 0x00004abc F 116 .text.RC522_PcdAnticoll + Card_Read_TasK 0x00004b30 F 172 .text.Card_Read_TasK + Detect_SPI_task 0x00004bdc F 108 .text.Detect_SPI_task + RLY_Light_Ctrl 0x00004c48 F 80 .text.RLY_Light_Ctrl + KEY1_LONG_PRESS_RELEASE_Handler 0x00004c98 F 104 .text.KEY1_LONG_PRESS_RELEASE_Handler + LogicCtrl_Init 0x00004d00 F 52 .text.LogicCtrl_Init + LogicCtrl_Task 0x00004d34 F 100 .text.LogicCtrl_Task + LogicCtrl_NoRF_Init 0x00004d98 F 132 .text.LogicCtrl_NoRF_Init + LogicCtrl_NoRF_Task 0x00004e1c F 192 .text.LogicCtrl_NoRF_Task + BackLight_Task 0x00004edc F 36 .text.BackLight_Task + Detect_WIFI_Task 0x00004f00 F 148 .text.Detect_WIFI_Task + Led_Task 0x00004f94 F 120 .text.Led_Task + button_init 0x0000500c F 58 .text.button_init + button_attach 0x00005046 F 10 .text.button_attach + button_handler 0x00005050 F 288 .text.button_handler + button_start 0x00005170 F 36 .text.button_start + button_ticks 0x00005194 F 28 .text.button_ticks + read_button_GPIO 0x000051b0 F 20 .text.read_button_GPIO + TK_Sampling_prog 0x000051c4 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x0000521c F 136 .text.TKEYIntHandler + get_key_number 0x000052a4 F 40 .text.get_key_number + TK_Scan_Start 0x000052cc F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x000052ec F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x0000546c F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00005588 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00005758 F 84 .text.TK_result_prog + CORETHandler 0x000057ac F 120 .text.CORETHandler + std_clk_calib 0x00005824 F 644 .text.std_clk_calib + __thenan_df 0x00005ad8 O 20 .rodata + __clz_tab 0x00005aec O 256 .rodata + _end_rodata 0x00006714 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + Dbg_Switch 0x20000068 O 4 .data + s_tkey 0x2000006c O 4 .data + samp_setover_f 0x20000070 O 1 .data + tk_overflow_en 0x20000071 O 1 .data + tk_div 0x20000072 O 34 .data + neg_build_bounce 0x20000094 O 1 .data + pos_build_bounce 0x20000095 O 1 .data + tk_scan_para0 0x20000098 O 4 .data + scan_step_temp 0x2000009c O 1 .data + _end_data 0x200000a0 0 .data + _bss_start 0x200000a0 0 .bss + rf_exist 0x200000a0 O 1 .bss + last_state 0x200000a1 O 1 .bss + finish_flag 0x200000a2 O 1 .bss + Card_Tick 0x200000a4 O 4 .bss + detect_tick 0x200000a8 O 4 .bss + detect_count 0x200000ac O 1 .bss + test_state 0x200000ad O 1 .bss + SysTick_100us 0x200000b4 O 4 .bss + SysTick_1ms 0x200000b8 O 4 .bss + RS485_Comming 0x200000bc O 4 .bss + RS485_Comm_Flag 0x200000c0 O 4 .bss + RS485_Comm_Start 0x200000c4 O 4 .bss + RS485_Comm_End 0x200000c8 O 4 .bss + SysTick_Now 0x200000cc O 4 .bss + SysTick_Last 0x200000d0 O 4 .bss + SysTick_Diff 0x200000d4 O 4 .bss + Dbg_Buffer 0x200000d8 O 512 .bss + scan_tick 0x200002d8 O 4 .bss + Tim_Flag 0x200002dc O 4 .bss + Press_debounce_data 0x200002ec O 1 .bss + TK_Lowpower_mode 0x200002ed O 1 .bss + TK_Lowpower_level 0x200002ee O 1 .bss + TK_longpress_time 0x200002f0 O 4 .bss + Release_debounce_data 0x200002f4 O 1 .bss + Key_mode 0x200002f5 O 1 .bss + TK_icon 0x200002f6 O 34 .bss + MultiTimes_Filter 0x20000318 O 1 .bss + Base_Speed 0x20000319 O 1 .bss + TK_IO_ENABLE 0x2000031c O 4 .bss + Valid_Key_Num 0x20000320 O 1 .bss + TK_senprd 0x20000322 O 34 .bss + TK_Wakeup_level 0x20000344 O 1 .bss + TK_Triggerlevel 0x20000346 O 34 .bss + TK_EC_LEVEL 0x20000368 O 2 .bss + TK_FVR_LEVEL 0x2000036a O 2 .bss + TK_BaseCnt 0x2000036c O 4 .bss + TK_PSEL_MODE 0x20000370 O 2 .bss + R_CMPB_BUF 0x20000374 O 4 .bss + R_CMPA_BUF 0x20000378 O 4 .bss + R_SIORX_buf 0x2000037c O 40 .bss + g_uart 0x200003a4 O 115 .bss + CardInfo 0x20000418 O 52 .bss + g_read 0x2000044c O 8 .bss + KEY1 0x20000454 O 48 .bss + dm_in 0x20000484 O 9 .bss + baseline_data0 0x20000490 O 34 .bss + TK_Postive_build2 0x200004b2 O 17 .bss + Key_Map1 0x200004c4 O 4 .bss + offset_data2_abs 0x200004c8 O 34 .bss + scan_f 0x200004ea O 1 .bss + offset_data1_abs 0x200004ec O 34 .bss + Release_debounce0 0x2000050e O 17 .bss + Key_Map0 0x20000520 O 4 .bss + bsae_over_f 0x20000524 O 1 .bss + scan_cnt 0x20000526 O 2 .bss + Press_debounce0 0x20000528 O 17 .bss + offset_data0 0x2000053a O 34 .bss + sampling_data1 0x2000055c O 34 .bss + Key_Map2 0x20000580 O 4 .bss + Release_debounce1 0x20000584 O 17 .bss + tk_overflow_f 0x20000595 O 1 .bss + TK_Negtive_build2 0x20000596 O 17 .bss + base_update_f 0x200005a7 O 1 .bss + TK_Postive_build1 0x200005a8 O 17 .bss + time_cnt 0x200005bc O 4 .bss + lpt_scan_pend_cnt 0x200005c0 O 2 .bss + TK_track_cnt 0x200005c2 O 1 .bss + Key_Map 0x200005c4 O 4 .bss + baseline_data1 0x200005c8 O 34 .bss + TK_Postive_build0 0x200005ea O 17 .bss + sampling_data2 0x200005fc O 34 .bss + offset_data1 0x2000061e O 34 .bss + TK_ovrdect_cnt 0x20000640 O 1 .bss + Press_debounce2 0x20000641 O 17 .bss + TK_Negtive_build1 0x20000652 O 17 .bss + tk_num 0x20000663 O 1 .bss + TK_Negtive_build0 0x20000664 O 17 .bss + Press_debounce1 0x20000675 O 17 .bss + Release_debounce2 0x20000686 O 17 .bss + r_Key_Map_Temp 0x20000698 O 4 .bss + tk_seque 0x2000069c O 17 .bss + scan_step 0x200006ad O 1 .bss + baseline_data2 0x200006ae O 34 .bss + tk_sampling_max 0x200006d0 O 34 .bss + offset_data0_abs 0x200006f2 O 34 .bss + offset_data2 0x20000714 O 34 .bss + sampling_data0 0x20000736 O 34 .bss + errno 0x20000758 O 4 .bss + __malloc_lock 0x2000075c O 4 .bss + _ebss 0x20000760 0 .bss + _end 0x20000760 0 .bss + end 0x20000760 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00006714, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1012 .text pow.o + 0x00000b5e 0x00000006 Code RO 1020 .text fabs.o + 0x00000b64 0x00000020 Code RO 1026 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1033 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1044 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1049 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1056 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1063 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1070 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1077 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1084 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1091 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1098 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1105 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1119 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1126 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1133 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1139 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1146 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1153 .text _fpcmp_parts_df.o + 0x00001964 0x00000020 Code RO 1174 .text snprintf_required.o + 0x00001984 0x00000098 Code RO 1181 .text vsnprintf_required.o + 0x00001a1c 0x00000088 Code RO 1188 .text memset_fast.o + 0x00001aa4 0x00000064 Code RO 1193 .text memcpy_fast.o + 0x00001b08 0x00000758 Code RO 1351 .text __v2_printfDFHLlMOPpSSsWp.o + 0x00002260 0x000003ac Code RO 1410 .text _udivdi3.o + 0x0000260c 0x000003a0 Code RO 1417 .text _umoddi3.o + 0x000029ac 0x00000360 Code RO 1438 .text __dtostr.o + 0x00002d0c 0x0000002c Code RO 1446 .text __isnan.o + 0x00002d38 0x00000052 Code RO 1458 .text strlen_fast.o + 0x00002d8a 0x00000002 PAD + 0x00002d8c 0x000000b0 Code RO 1463 .text strcpy_fast.o + 0x00002e3c 0x00000012 Code RO 1468 .text strchr.o + 0x00002e4e 0x00000002 PAD + 0x00002e50 0x0000001c Code RO 1473 .text strerror.o + 0x00002e6c 0x00000030 Code RO 1481 .text __isinf.o + 0x00002e9c 0x0000003a Code RO 1487 .text _eq_df.o + 0x00002ed6 0x00000002 PAD + 0x00002ed8 0x0000003a Code RO 1494 .text _lt_df.o + 0x00002f14 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00002f4c 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00002fc0 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x0000300c 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000303c 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x000030c4 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x000030ec 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003128 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x0000313c 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00003154 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00003174 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00003190 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031ac 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x000031ec 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031f8 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000321c 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000324c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000332c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00003340 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x0000334e 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00003356 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x0000335e 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00003374 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00003384 0x00000010 Code RO 152 .text.GPIO_Read_Output Obj/FWlib_apt32f102_gpio.o + 0x00003394 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000033a8 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000033b8 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000033d4 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000033dc 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000033e6 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000033fe 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000342a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00003430 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00003444 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00003454 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x000034f4 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003508 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000354c 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003560 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003614 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x00003624 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x00003634 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x00003650 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003668 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003680 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003698 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036b4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036d0 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000037bc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x000037cc 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000037dc 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000037fc 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00003824 0x00000070 Code RO 690 .text.startup.main Obj/main.o + 0x00003894 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x000038c0 0x00000094 Code RO 711 .text.GPT0_CONFIG Obj/mcu_initial.o + 0x00003954 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x000039b4 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00003a18 0x00000050 Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00003a68 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00003b58 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003bc0 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003c28 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003dd4 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00003e08 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00003e88 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00003ef8 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003f34 0x0000003c Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003f70 0x00000094 Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00004004 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000040ec 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00004140 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00004170 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000041a0 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000041e8 0x0000005c Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00004244 0x00000060 Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000042a4 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x000042d8 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00004324 0x00000064 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00004388 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x0000438a 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00004392 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x0000439a 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000043a2 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000043aa 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000043b2 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000043ba 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000043c2 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000043ca 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000043d2 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x000043da 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x000043e2 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000043ec 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00004410 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00004434 0x00000024 Code RO 787 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00004458 0x00000024 Code RO 788 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x0000447c 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00004484 0x000000d8 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x0000455c 0x00000064 Code RO 822 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000045c0 0x00000098 Code RO 827 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00004658 0x00000012 Code RO 848 .text.RC522_Delay Obj/SYSTEM_rc522.o + 0x0000466c 0x00000054 Code RO 849 .text.RC522_ReadWriteOneByte Obj/SYSTEM_rc522.o + 0x000046c0 0x00000038 Code RO 850 .text.RC522_ReadRawRC Obj/SYSTEM_rc522.o + 0x000046f8 0x00000030 Code RO 851 .text.RC522_WriteRawRC Obj/SYSTEM_rc522.o + 0x00004728 0x0000004c Code RO 852 .text.RC522_PcdReset Obj/SYSTEM_rc522.o + 0x00004774 0x00000018 Code RO 853 .text.RC522_SetBitMask Obj/SYSTEM_rc522.o + 0x0000478c 0x0000001a Code RO 854 .text.RC522_PcdAntennaOn Obj/SYSTEM_rc522.o + 0x000047a6 0x00000016 Code RO 855 .text.RC522_ClearBitMask Obj/SYSTEM_rc522.o + 0x000047bc 0x0000000c Code RO 856 .text.RC522_PcdAntennaOff Obj/SYSTEM_rc522.o + 0x000047c8 0x00000016 Code RO 857 .text.RC522_Reset Obj/SYSTEM_rc522.o + 0x000047de 0x0000007e Code RO 859 .text.M500PcdConfigISOType.part.1 Obj/SYSTEM_rc522.o + 0x0000485c 0x0000009c Code RO 861 .text.RC522_Init Obj/SYSTEM_rc522.o + 0x000048f8 0x0000013a Code RO 862 .text.RC522_PcdComMF522 Obj/SYSTEM_rc522.o + 0x00004a34 0x00000088 Code RO 868 .text.RC522_PcdRequest Obj/SYSTEM_rc522.o + 0x00004abc 0x00000074 Code RO 869 .text.RC522_PcdAnticoll Obj/SYSTEM_rc522.o + 0x00004b30 0x000000ac Code RO 870 .text.Card_Read_TasK Obj/SYSTEM_rc522.o + 0x00004bdc 0x0000006c Code RO 871 .text.Detect_SPI_task Obj/SYSTEM_rc522.o + 0x00004c48 0x00000050 Code RO 890 .text.RLY_Light_Ctrl Obj/SYSTEM_logic_ctrl.o + 0x00004c98 0x00000068 Code RO 891 .text.KEY1_LONG_PRESS_RELEASE_Handler Obj/SYSTEM_logic_ctrl.o + 0x00004d00 0x00000034 Code RO 892 .text.LogicCtrl_Init Obj/SYSTEM_logic_ctrl.o + 0x00004d34 0x00000064 Code RO 893 .text.LogicCtrl_Task Obj/SYSTEM_logic_ctrl.o + 0x00004d98 0x00000084 Code RO 896 .text.LogicCtrl_NoRF_Init Obj/SYSTEM_logic_ctrl.o + 0x00004e1c 0x000000c0 Code RO 897 .text.LogicCtrl_NoRF_Task Obj/SYSTEM_logic_ctrl.o + 0x00004edc 0x00000024 Code RO 898 .text.BackLight_Task Obj/SYSTEM_logic_ctrl.o + 0x00004f00 0x00000094 Code RO 899 .text.Detect_WIFI_Task Obj/SYSTEM_logic_ctrl.o + 0x00004f94 0x00000078 Code RO 901 .text.Led_Task Obj/SYSTEM_logic_ctrl.o + 0x0000500c 0x0000003a Code RO 919 .text.button_init Obj/SYSTEM_button.o + 0x00005046 0x0000000a Code RO 920 .text.button_attach Obj/SYSTEM_button.o + 0x00005050 0x00000120 Code RO 922 .text.button_handler Obj/SYSTEM_button.o + 0x00005170 0x00000024 Code RO 923 .text.button_start Obj/SYSTEM_button.o + 0x00005194 0x0000001c Code RO 925 .text.button_ticks Obj/SYSTEM_button.o + 0x000051b0 0x00000014 Code RO 926 .text.read_button_GPIO Obj/SYSTEM_button.o + 0x000051c4 0x00000058 Code RO 958 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000521c 0x00000088 Code RO 962 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000052a4 0x00000028 Code RO 963 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x000052cc 0x00000020 Code RO 965 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x000052ec 0x00000180 Code RO 966 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000546c 0x0000011c Code RO 967 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00005588 0x000001d0 Code RO 968 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00005758 0x00000054 Code RO 969 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000057ac 0x00000078 Code RO 970 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00005824 0x00000284 Code RO 992 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00005aa8 0x00000030 Data RO 1015 .rodata pow.o + 0x00005ad8 0x00000014 Data RO 1115 .rodata _thenan_df.o + 0x00005aec 0x00000100 Data RO 1163 .rodata _clz.o + 0x00005bec 0x00000020 Data RO 1354 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x00005c0c 0x00000240 Data RO 1476 .rodata strerror.o + 0x00005e4c 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x00005e57 0x0000003e Data RO 831 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x00005e95 0x00000063 Data RO 872 .rodata.str1.1 Obj/SYSTEM_rc522.o + 0x00005ef8 0x00000068 Data RO 902 .rodata.str1.1 Obj/SYSTEM_logic_ctrl.o + 0x00005f60 0x00000022 Data RO 1355 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x00005f82 0x00000008 Data RO 1441 .rodata.str1.1 __dtostr.o + 0x00005f8a 0x00000787 Data RO 1477 .rodata.str1.1 strerror.o + 0x00006711 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000760, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000004 Data RW 819 .data Obj/SYSTEM_uart.o + 0x2000006c 0x00000031 Data RW 949 .data FWlib_apt32f102_tkey_c_1_17.o + 0x2000009d 0x00000003 PAD + 0x200000a0 0x0000000e Zero RW 689 .bss Obj/main.o + 0x200000ae 0x00000002 PAD + 0x200000b0 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000bc 0x0000021c Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200002d8 0x00000004 Zero RW 847 .bss Obj/SYSTEM_rc522.o + 0x200002dc 0x0000000c Zero RW 888 .bss Obj/SYSTEM_logic_ctrl.o + 0x200002e8 0x00000004 Zero RW 918 .bss Obj/SYSTEM_button.o + 0x200002ec 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x20000372 0x00000002 PAD + 0x20000374 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x200003a4 0x00000073 Zero RW 844 COMMON Obj/SYSTEM_uart.o + 0x20000417 0x00000001 PAD + 0x20000418 0x00000034 Zero RW 885 COMMON Obj/SYSTEM_rc522.o + 0x2000044c 0x00000041 Zero RW 915 COMMON Obj/SYSTEM_logic_ctrl.o + 0x2000048d 0x00000003 PAD + 0x20000490 0x000002c8 Zero RW 988 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000758 0x00000008 Zero RW 1431 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 287 Obj/arch_crt0.o + 56 0 0 0 823 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21132 Obj/FWlib_apt32f102_syscon.o + 328 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 112 11 0 148 11008 Obj/main.o + 466 0 0 0 16155 Obj/mcu_initial.o + 2434 0 0 60 14290 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 468 62 4 655 13107 Obj/SYSTEM_uart.o + 1516 99 0 56 15994 Obj/SYSTEM_rc522.o + 964 104 0 77 12180 Obj/SYSTEM_logic_ctrl.o + 440 0 0 4 11568 Obj/SYSTEM_button.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 9302 276 108 1000 241298 Object Totals + 10 3 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 5040 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3560 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 23192 3180 160 1728 266312 Grand Totals + 23192 3180 160 1728 266312 Elf Image Totals + 23192 3180 160 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 26372 ( 25.75kB) +Total RW Size (RW Data + ZI Data) 1888 ( 1.84kB) +Total ROM Size (Code + RO Data + RW Data) 26532 ( 25.91kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/RLY_10V485_V01_20250625.asm b/BLV_CS_AC100_V05/Source/Lst/RLY_10V485_V01_20250625.asm new file mode 100644 index 0000000..c4e4fcb --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RLY_10V485_V01_20250625.asm @@ -0,0 +1,12537 @@ + +.//Obj/RLY_10V485_V01_20250625.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 0000318e .long 0x0000318e + 8: 0000317e .long 0x0000317e + c: 00000184 .long 0x00000184 + 10: 00003186 .long 0x00003186 + 14: 00003144 .long 0x00003144 + 18: 00000184 .long 0x00000184 + 1c: 00003176 .long 0x00003176 + 20: 0000316e .long 0x0000316e + 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: 00003166 .long 0x00003166 + 44: 0000315e .long 0x0000315e + 48: 00003156 .long 0x00003156 + 4c: 0000314e .long 0x0000314e + 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: 00003146 .long 0x00003146 + 80: 00004944 .long 0x00004944 + 84: 00002838 .long 0x00002838 + 88: 00002928 .long 0x00002928 + 8c: 00002990 .long 0x00002990 + 90: 000029f8 .long 0x000029f8 + 94: 00000184 .long 0x00000184 + 98: 00002ba4 .long 0x00002ba4 + 9c: 00002f20 .long 0x00002f20 + a0: 00002f50 .long 0x00002f50 + a4: 00002bd8 .long 0x00002bd8 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00002c58 .long 0x00002c58 + b4: 00002cc8 .long 0x00002cc8 + b8: 00002d04 .long 0x00002d04 + bc: 00002d98 .long 0x00002d98 + c0: 00000184 .long 0x00000184 + c4: 0000319e .long 0x0000319e + c8: 00000184 .long 0x00000184 + cc: 00002de4 .long 0x00002de4 + d0: 00002ecc .long 0x00002ecc + d4: 00002f80 .long 0x00002f80 + d8: 00002fc8 .long 0x00002fc8 + dc: 00002fe8 .long 0x00002fe8 + e0: 00003196 .long 0x00003196 + e4: 000043b4 .long 0x000043b4 + e8: 00003054 .long 0x00003054 + ec: 00000184 .long 0x00000184 + f0: 00003088 .long 0x00003088 + f4: 000030d4 .long 0x000030d4 + 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, 0x1a90 // 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, 0x26ac // 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: 00001a90 .long 0x00001a90 + 198: 00000160 .long 0x00000160 + 19c: 000026ac .long 0x000026ac + 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: e000071f bsr 0x1034 // 1034 <__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: e0000705 bsr 0x1064 // 1064 <__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: e000081a bsr 0x12d0 // 12d0 <__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: e00006dc bsr 0x109c // 109c <__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: e00007d0 bsr 0x12d0 // 12d0 <__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: e000068b bsr 0x1064 // 1064 <__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: e0000656 bsr 0x1064 // 1064 <__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: e000066c bsr 0x109c // 109c <__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: e0000664 bsr 0x109c // 109c <__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: e000065c bsr 0x109c // 109c <__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: e000063a bsr 0x1064 // 1064 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e0000652 bsr 0x109c // 109c <__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: e0000630 bsr 0x1064 // 1064 <__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: e0000644 bsr 0x109c // 109c <__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: e000063e bsr 0x109c // 109c <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e000063a bsr 0x109c // 109c <__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: e0000618 bsr 0x1064 // 1064 <__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: e00005f8 bsr 0x1034 // 1034 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e000060a bsr 0x1064 // 1064 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e0000604 bsr 0x1064 // 1064 <__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: e00005f3 bsr 0x1064 // 1064 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e000060b bsr 0x109c // 109c <__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: e0000603 bsr 0x109c // 109c <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e00005c9 bsr 0x1034 // 1034 <__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: e00005f5 bsr 0x109c // 109c <__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: e00005b7 bsr 0x1034 // 1034 <__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: e00005d7 bsr 0x109c // 109c <__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: e00005cc bsr 0x109c // 109c <__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, 0x4c40 // 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: e000058a bsr 0x1064 // 1064 <__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: e000056a bsr 0x1034 // 1034 <__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: e00006b2 bsr 0x12d0 // 12d0 <__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: 00004c40 .long 0x00004c40 + 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: e000055a bsr 0x109c // 109c <__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: e000054b bsr 0x109c // 109c <__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: e0000529 bsr 0x1064 // 1064 <__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: e0000521 bsr 0x1064 // 1064 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e000051b bsr 0x1064 // 1064 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e0000533 bsr 0x109c // 109c <__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: e0000511 bsr 0x1064 // 1064 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e0000529 bsr 0x109c // 109c <__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: e0000521 bsr 0x109c // 109c <__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: e0000519 bsr 0x109c // 109c <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e00004df bsr 0x1034 // 1034 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e000050f bsr 0x109c // 109c <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e00004d5 bsr 0x1034 // 1034 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e0000505 bsr 0x109c // 109c <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e00004cb bsr 0x1034 // 1034 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e00004fb bsr 0x109c // 109c <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e00004c1 bsr 0x1034 // 1034 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e00004f1 bsr 0x109c // 109c <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e00004b7 bsr 0x1034 // 1034 <__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: e00004e3 bsr 0x109c // 109c <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e00004dd bsr 0x109c // 109c <__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: e00004a1 bsr 0x1034 // 1034 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e00004d1 bsr 0x109c // 109c <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e0000499 bsr 0x1034 // 1034 <__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: e00004c5 bsr 0x109c // 109c <__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: e000048b bsr 0x1034 // 1034 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e0000487 bsr 0x1034 // 1034 <__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: e00004b4 bsr 0x109c // 109c <__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: e0000490 bsr 0x1064 // 1064 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e000048c bsr 0x1064 // 1064 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e0000486 bsr 0x1064 // 1064 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e000049e bsr 0x109c // 109c <__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: e0000496 bsr 0x109c // 109c <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e000045c bsr 0x1034 // 1034 <__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: e0000454 bsr 0x1034 // 1034 <__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: e0000481 bsr 0x109c // 109c <__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: e000045d bsr 0x1064 // 1064 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e0000457 bsr 0x1064 // 1064 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e000046f bsr 0x109c // 109c <__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: e0000467 bsr 0x109c // 109c <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e000042d bsr 0x1034 // 1034 <__adddf3> + 7de: 01db lrw r6, 0x4c40 // 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: e0000426 bsr 0x1034 // 1034 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e0000673 bsr 0x14d8 // 14d8 <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0x4c40 // 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: e0000413 bsr 0x1034 // 1034 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e000040f bsr 0x1034 // 1034 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e000040b bsr 0x1034 // 1034 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e000041d bsr 0x1064 // 1064 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e0000419 bsr 0x1064 // 1064 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e0000415 bsr 0x1064 // 1064 <__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: e00003ec bsr 0x1034 // 1034 <__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: e00003fc bsr 0x1064 // 1064 <__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: e00005d6 bsr 0x1424 // 1424 <__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: e00003cc bsr 0x1064 // 1064 <__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: e00003ac bsr 0x1034 // 1034 <__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: e00003da bsr 0x109c // 109c <__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: e00003b6 bsr 0x1064 // 1064 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e00003b0 bsr 0x1064 // 1064 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e00003c8 bsr 0x109c // 109c <__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: e00003c0 bsr 0x109c // 109c <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e0000386 bsr 0x1034 // 1034 <__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: e000037e bsr 0x1034 // 1034 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e0000390 bsr 0x1064 // 1064 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e000038a bsr 0x1064 // 1064 <__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: e000039e bsr 0x109c // 109c <__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: e0000398 bsr 0x109c // 109c <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e0000378 bsr 0x1064 // 1064 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e0000390 bsr 0x109c // 109c <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e0000358 bsr 0x1034 // 1034 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e0000388 bsr 0x109c // 109c <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e0000368 bsr 0x1064 // 1064 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e0000380 bsr 0x109c // 109c <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e0000348 bsr 0x1034 // 1034 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e0000378 bsr 0x109c // 109c <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e0000356 bsr 0x1064 // 1064 <__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: e000036a bsr 0x109c // 109c <__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: e0000345 bsr 0x1064 // 1064 <__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: e0000475 bsr 0x12d0 // 12d0 <__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: e0000353 bsr 0x109c // 109c <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e000031b bsr 0x1034 // 1034 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e000032d bsr 0x1064 // 1064 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e0000329 bsr 0x1064 // 1064 <__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: e0000323 bsr 0x1064 // 1064 <__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: e0000321 bsr 0x109c // 109c <__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: e00002fb bsr 0x1064 // 1064 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e0000511 bsr 0x149c // 149c <__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: 00004c40 .long 0x00004c40 + 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: e000027f bsr 0x109c // 109c <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e0000245 bsr 0x1034 // 1034 <__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: e0000248 bsr 0x1064 // 1064 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e000037a bsr 0x12d0 // 12d0 <__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_sqi>: + 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: 7446 sextb r1, r1 + d08: 4121 lsli r1, r1, 1 + d0a: 63c4 addu r15, r1 + d0c: 9820 ld.w r1, (r14, 0x0) + d0e: 1401 addi r14, r14, 4 + d10: 783c jmp r15 + ... + +00000d14 <___gnu_csky_case_uqi>: + d14: 1421 subi r14, r14, 4 + d16: b820 st.w r1, (r14, 0x0) + d18: 6c7f mov r1, r15 + d1a: 6040 addu r1, r0 + d1c: 8120 ld.b r1, (r1, 0x0) + d1e: 4121 lsli r1, r1, 1 + d20: 63c4 addu r15, r1 + d22: 9820 ld.w r1, (r14, 0x0) + d24: 1401 addi r14, r14, 4 + d26: 783c jmp r15 + +00000d28 <__fixunsdfsi>: + d28: 14d2 push r4-r5, r15 + d2a: 3200 movi r2, 0 + d2c: 106c lrw r3, 0x41e00000 // d5c <__fixunsdfsi+0x34> + d2e: 6d43 mov r5, r0 + d30: 6d07 mov r4, r1 + d32: e0000397 bsr 0x1460 // 1460 <__gedf2> + d36: 38df btsti r0, 31 + d38: 0c06 bf 0xd44 // d44 <__fixunsdfsi+0x1c> + d3a: 6c17 mov r0, r5 + d3c: 6c53 mov r1, r4 + d3e: e0000405 bsr 0x1548 // 1548 <__fixdfsi> + d42: 1492 pop r4-r5, r15 + d44: 3200 movi r2, 0 + d46: 1066 lrw r3, 0x41e00000 // d5c <__fixunsdfsi+0x34> + d48: 6c17 mov r0, r5 + d4a: 6c53 mov r1, r4 + d4c: e000018c bsr 0x1064 // 1064 <__subdf3> + d50: e00003fc bsr 0x1548 // 1548 <__fixdfsi> + d54: 3380 movi r3, 128 + d56: 4378 lsli r3, r3, 24 + d58: 600c addu r0, r3 + d5a: 1492 pop r4-r5, r15 + d5c: 41e00000 .long 0x41e00000 + +00000d60 <_fpadd_parts>: + d60: 14c4 push r4-r7 + d62: 142a subi r14, r14, 40 + d64: 9060 ld.w r3, (r0, 0x0) + d66: 3b01 cmphsi r3, 2 + d68: 6dcb mov r7, r2 + d6a: 0c67 bf 0xe38 // e38 <_fpadd_parts+0xd8> + d6c: 9140 ld.w r2, (r1, 0x0) + d6e: 3a01 cmphsi r2, 2 + d70: 0c66 bf 0xe3c // e3c <_fpadd_parts+0xdc> + d72: 3b44 cmpnei r3, 4 + d74: 0cde bf 0xf30 // f30 <_fpadd_parts+0x1d0> + d76: 3a44 cmpnei r2, 4 + d78: 0c62 bf 0xe3c // e3c <_fpadd_parts+0xdc> + d7a: 3a42 cmpnei r2, 2 + d7c: 0cb7 bf 0xeea // eea <_fpadd_parts+0x18a> + d7e: 3b42 cmpnei r3, 2 + d80: 0c5e bf 0xe3c // e3c <_fpadd_parts+0xdc> + d82: 9043 ld.w r2, (r0, 0xc) + d84: 9064 ld.w r3, (r0, 0x10) + d86: 9082 ld.w r4, (r0, 0x8) + d88: 91a2 ld.w r5, (r1, 0x8) + d8a: b842 st.w r2, (r14, 0x8) + d8c: b863 st.w r3, (r14, 0xc) + d8e: 9143 ld.w r2, (r1, 0xc) + d90: 9164 ld.w r3, (r1, 0x10) + d92: b840 st.w r2, (r14, 0x0) + d94: b861 st.w r3, (r14, 0x4) + d96: 5c75 subu r3, r4, r5 + d98: 3bdf btsti r3, 31 + d9a: 6c8f mov r2, r3 + d9c: 08d2 bt 0xf40 // f40 <_fpadd_parts+0x1e0> + d9e: 363f movi r6, 63 + da0: 6499 cmplt r6, r2 + da2: 0c50 bf 0xe42 // e42 <_fpadd_parts+0xe2> + da4: 6515 cmplt r5, r4 + da6: 0cbf bf 0xf24 // f24 <_fpadd_parts+0x1c4> + da8: 3200 movi r2, 0 + daa: 3300 movi r3, 0 + dac: b840 st.w r2, (r14, 0x0) + dae: b861 st.w r3, (r14, 0x4) + db0: 9061 ld.w r3, (r0, 0x4) + db2: 9141 ld.w r2, (r1, 0x4) + db4: 648e cmpne r3, r2 + db6: 0c78 bf 0xea6 // ea6 <_fpadd_parts+0x146> + db8: 3b40 cmpnei r3, 0 + dba: 0cad bf 0xf14 // f14 <_fpadd_parts+0x1b4> + dbc: 9800 ld.w r0, (r14, 0x0) + dbe: 9821 ld.w r1, (r14, 0x4) + dc0: 9842 ld.w r2, (r14, 0x8) + dc2: 9863 ld.w r3, (r14, 0xc) + dc4: 6400 cmphs r0, r0 + dc6: 600b subc r0, r2 + dc8: 604f subc r1, r3 + dca: 39df btsti r1, 31 + dcc: 08bd bt 0xf46 // f46 <_fpadd_parts+0x1e6> + dce: 3300 movi r3, 0 + dd0: b761 st.w r3, (r7, 0x4) + dd2: b782 st.w r4, (r7, 0x8) + dd4: 6c83 mov r2, r0 + dd6: 6cc7 mov r3, r1 + dd8: b703 st.w r0, (r7, 0xc) + dda: b724 st.w r1, (r7, 0x10) + ddc: 3000 movi r0, 0 + dde: 3100 movi r1, 0 + de0: 2800 subi r0, 1 + de2: 2900 subi r1, 1 + de4: 6401 cmplt r0, r0 + de6: 6009 addc r0, r2 + de8: 604d addc r1, r3 + dea: 038f lrw r4, 0xfffffff // 1028 <_fpadd_parts+0x2c8> + dec: 6450 cmphs r4, r1 + dee: 0c67 bf 0xebc // ebc <_fpadd_parts+0x15c> + df0: 6506 cmpne r1, r4 + df2: 0cfd bf 0xfec // fec <_fpadd_parts+0x28c> + df4: 3000 movi r0, 0 + df6: 9722 ld.w r1, (r7, 0x8) + df8: 2801 subi r0, 2 + dfa: 2900 subi r1, 1 + dfc: 03d4 lrw r6, 0xfffffff // 1028 <_fpadd_parts+0x2c8> + dfe: b802 st.w r0, (r14, 0x8) + e00: b8e0 st.w r7, (r14, 0x0) + e02: 0403 br 0xe08 // e08 <_fpadd_parts+0xa8> + e04: 6596 cmpne r5, r6 + e06: 0c83 bf 0xf0c // f0c <_fpadd_parts+0x1ac> + e08: 4301 lsli r0, r3, 1 + e0a: 4a9f lsri r4, r2, 31 + e0c: 6d00 or r4, r0 + e0e: 42a1 lsli r5, r2, 1 + e10: 6c97 mov r2, r5 + e12: 6cd3 mov r3, r4 + e14: 3500 movi r5, 0 + e16: 3400 movi r4, 0 + e18: 2c00 subi r4, 1 + e1a: 2d00 subi r5, 1 + e1c: 6511 cmplt r4, r4 + e1e: 6109 addc r4, r2 + e20: 614d addc r5, r3 + e22: 6558 cmphs r6, r5 + e24: 6c07 mov r0, r1 + e26: 2900 subi r1, 1 + e28: 0bee bt 0xe04 // e04 <_fpadd_parts+0xa4> + e2a: 98e0 ld.w r7, (r14, 0x0) + e2c: b743 st.w r2, (r7, 0xc) + e2e: b764 st.w r3, (r7, 0x10) + e30: 3303 movi r3, 3 + e32: b702 st.w r0, (r7, 0x8) + e34: b760 st.w r3, (r7, 0x0) + e36: 6c1f mov r0, r7 + e38: 140a addi r14, r14, 40 + e3a: 1484 pop r4-r7 + e3c: 6c07 mov r0, r1 + e3e: 140a addi r14, r14, 40 + e40: 1484 pop r4-r7 + e42: 3b20 cmplti r3, 1 + e44: 088c bt 0xf5c // f5c <_fpadd_parts+0x1fc> + e46: 3300 movi r3, 0 + e48: 2b1f subi r3, 32 + e4a: 60c8 addu r3, r2 + e4c: 3bdf btsti r3, 31 + e4e: b866 st.w r3, (r14, 0x18) + e50: 08bb bt 0xfc6 // fc6 <_fpadd_parts+0x266> + e52: 98a1 ld.w r5, (r14, 0x4) + e54: 714d lsr r5, r3 + e56: b8a4 st.w r5, (r14, 0x10) + e58: 3500 movi r5, 0 + e5a: b8a5 st.w r5, (r14, 0x14) + e5c: 9866 ld.w r3, (r14, 0x18) + e5e: 3bdf btsti r3, 31 + e60: 3500 movi r5, 0 + e62: 3600 movi r6, 0 + e64: 08ad bt 0xfbe // fbe <_fpadd_parts+0x25e> + e66: 3201 movi r2, 1 + e68: 708c lsl r2, r3 + e6a: 6d8b mov r6, r2 + e6c: 3200 movi r2, 0 + e6e: 3300 movi r3, 0 + e70: 2a00 subi r2, 1 + e72: 2b00 subi r3, 1 + e74: 6489 cmplt r2, r2 + e76: 6095 addc r2, r5 + e78: 60d9 addc r3, r6 + e7a: 98a0 ld.w r5, (r14, 0x0) + e7c: 98c1 ld.w r6, (r14, 0x4) + e7e: 6948 and r5, r2 + e80: 698c and r6, r3 + e82: 6c97 mov r2, r5 + e84: 6cdb mov r3, r6 + e86: 6c8c or r2, r3 + e88: 3a40 cmpnei r2, 0 + e8a: 3500 movi r5, 0 + e8c: 6155 addc r5, r5 + e8e: 6c97 mov r2, r5 + e90: 3300 movi r3, 0 + e92: 98a4 ld.w r5, (r14, 0x10) + e94: 98c5 ld.w r6, (r14, 0x14) + e96: 6d48 or r5, r2 + e98: 6d8c or r6, r3 + e9a: 9061 ld.w r3, (r0, 0x4) + e9c: 9141 ld.w r2, (r1, 0x4) + e9e: 648e cmpne r3, r2 + ea0: b8a0 st.w r5, (r14, 0x0) + ea2: b8c1 st.w r6, (r14, 0x4) + ea4: 0b8a bt 0xdb8 // db8 <_fpadd_parts+0x58> + ea6: b761 st.w r3, (r7, 0x4) + ea8: 9800 ld.w r0, (r14, 0x0) + eaa: 9821 ld.w r1, (r14, 0x4) + eac: 9842 ld.w r2, (r14, 0x8) + eae: 9863 ld.w r3, (r14, 0xc) + eb0: 6489 cmplt r2, r2 + eb2: 6081 addc r2, r0 + eb4: 60c5 addc r3, r1 + eb6: b782 st.w r4, (r7, 0x8) + eb8: b743 st.w r2, (r7, 0xc) + eba: b764 st.w r3, (r7, 0x10) + ebc: 3103 movi r1, 3 + ebe: b720 st.w r1, (r7, 0x0) + ec0: 123b lrw r1, 0x1fffffff // 102c <_fpadd_parts+0x2cc> + ec2: 64c4 cmphs r1, r3 + ec4: 0810 bt 0xee4 // ee4 <_fpadd_parts+0x184> + ec6: 439f lsli r4, r3, 31 + ec8: 4a01 lsri r0, r2, 1 + eca: 6c10 or r0, r4 + ecc: 3500 movi r5, 0 + ece: 3401 movi r4, 1 + ed0: 4b21 lsri r1, r3, 1 + ed2: 6890 and r2, r4 + ed4: 68d4 and r3, r5 + ed6: 6c80 or r2, r0 + ed8: 6cc4 or r3, r1 + eda: b743 st.w r2, (r7, 0xc) + edc: b764 st.w r3, (r7, 0x10) + ede: 9762 ld.w r3, (r7, 0x8) + ee0: 2300 addi r3, 1 + ee2: b762 st.w r3, (r7, 0x8) + ee4: 6c1f mov r0, r7 + ee6: 140a addi r14, r14, 40 + ee8: 1484 pop r4-r7 + eea: 3b42 cmpnei r3, 2 + eec: 0ba6 bt 0xe38 // e38 <_fpadd_parts+0xd8> + eee: b760 st.w r3, (r7, 0x0) + ef0: 9061 ld.w r3, (r0, 0x4) + ef2: b761 st.w r3, (r7, 0x4) + ef4: 9062 ld.w r3, (r0, 0x8) + ef6: b762 st.w r3, (r7, 0x8) + ef8: 9063 ld.w r3, (r0, 0xc) + efa: b763 st.w r3, (r7, 0xc) + efc: 9064 ld.w r3, (r0, 0x10) + efe: 9141 ld.w r2, (r1, 0x4) + f00: b764 st.w r3, (r7, 0x10) + f02: 9061 ld.w r3, (r0, 0x4) + f04: 68c8 and r3, r2 + f06: b761 st.w r3, (r7, 0x4) + f08: 6c1f mov r0, r7 + f0a: 0797 br 0xe38 // e38 <_fpadd_parts+0xd8> + f0c: 98e2 ld.w r7, (r14, 0x8) + f0e: 651c cmphs r7, r4 + f10: 0b7c bt 0xe08 // e08 <_fpadd_parts+0xa8> + f12: 078c br 0xe2a // e2a <_fpadd_parts+0xca> + f14: 9802 ld.w r0, (r14, 0x8) + f16: 9823 ld.w r1, (r14, 0xc) + f18: 9840 ld.w r2, (r14, 0x0) + f1a: 9861 ld.w r3, (r14, 0x4) + f1c: 6400 cmphs r0, r0 + f1e: 600b subc r0, r2 + f20: 604f subc r1, r3 + f22: 0754 br 0xdca // dca <_fpadd_parts+0x6a> + f24: 3200 movi r2, 0 + f26: 3300 movi r3, 0 + f28: 6d17 mov r4, r5 + f2a: b842 st.w r2, (r14, 0x8) + f2c: b863 st.w r3, (r14, 0xc) + f2e: 0741 br 0xdb0 // db0 <_fpadd_parts+0x50> + f30: 3a44 cmpnei r2, 4 + f32: 0b83 bt 0xe38 // e38 <_fpadd_parts+0xd8> + f34: 9041 ld.w r2, (r0, 0x4) + f36: 9161 ld.w r3, (r1, 0x4) + f38: 64ca cmpne r2, r3 + f3a: 0f7f bf 0xe38 // e38 <_fpadd_parts+0xd8> + f3c: 111d lrw r0, 0x4c70 // 1030 <_fpadd_parts+0x2d0> + f3e: 077d br 0xe38 // e38 <_fpadd_parts+0xd8> + f40: 3200 movi r2, 0 + f42: 608e subu r2, r3 + f44: 072d br 0xd9e // d9e <_fpadd_parts+0x3e> + f46: 3301 movi r3, 1 + f48: b761 st.w r3, (r7, 0x4) + f4a: 3200 movi r2, 0 + f4c: 3300 movi r3, 0 + f4e: 6488 cmphs r2, r2 + f50: 6083 subc r2, r0 + f52: 60c7 subc r3, r1 + f54: b782 st.w r4, (r7, 0x8) + f56: b743 st.w r2, (r7, 0xc) + f58: b764 st.w r3, (r7, 0x10) + f5a: 0741 br 0xddc // ddc <_fpadd_parts+0x7c> + f5c: 3b40 cmpnei r3, 0 + f5e: 0f29 bf 0xdb0 // db0 <_fpadd_parts+0x50> + f60: 3300 movi r3, 0 + f62: 2b1f subi r3, 32 + f64: 60c8 addu r3, r2 + f66: 3bdf btsti r3, 31 + f68: 6108 addu r4, r2 + f6a: b866 st.w r3, (r14, 0x18) + f6c: 0849 bt 0xffe // ffe <_fpadd_parts+0x29e> + f6e: 9863 ld.w r3, (r14, 0xc) + f70: 98a6 ld.w r5, (r14, 0x18) + f72: 70d5 lsr r3, r5 + f74: b864 st.w r3, (r14, 0x10) + f76: 3300 movi r3, 0 + f78: b865 st.w r3, (r14, 0x14) + f7a: 9866 ld.w r3, (r14, 0x18) + f7c: 3bdf btsti r3, 31 + f7e: 3500 movi r5, 0 + f80: 3600 movi r6, 0 + f82: 083a bt 0xff6 // ff6 <_fpadd_parts+0x296> + f84: 3201 movi r2, 1 + f86: 708c lsl r2, r3 + f88: 6d8b mov r6, r2 + f8a: 3200 movi r2, 0 + f8c: 3300 movi r3, 0 + f8e: 2a00 subi r2, 1 + f90: 2b00 subi r3, 1 + f92: 6489 cmplt r2, r2 + f94: 6095 addc r2, r5 + f96: 60d9 addc r3, r6 + f98: 98a2 ld.w r5, (r14, 0x8) + f9a: 98c3 ld.w r6, (r14, 0xc) + f9c: 6948 and r5, r2 + f9e: 698c and r6, r3 + fa0: 6c97 mov r2, r5 + fa2: 6cdb mov r3, r6 + fa4: 6c8c or r2, r3 + fa6: 3a40 cmpnei r2, 0 + fa8: 3500 movi r5, 0 + faa: 6155 addc r5, r5 + fac: 6c97 mov r2, r5 + fae: 3300 movi r3, 0 + fb0: 98a4 ld.w r5, (r14, 0x10) + fb2: 98c5 ld.w r6, (r14, 0x14) + fb4: 6d48 or r5, r2 + fb6: 6d8c or r6, r3 + fb8: b8a2 st.w r5, (r14, 0x8) + fba: b8c3 st.w r6, (r14, 0xc) + fbc: 06fa br 0xdb0 // db0 <_fpadd_parts+0x50> + fbe: 3301 movi r3, 1 + fc0: 70c8 lsl r3, r2 + fc2: 6d4f mov r5, r3 + fc4: 0754 br 0xe6c // e6c <_fpadd_parts+0x10c> + fc6: 9861 ld.w r3, (r14, 0x4) + fc8: 361f movi r6, 31 + fca: 43a1 lsli r5, r3, 1 + fcc: 618a subu r6, r2 + fce: 7158 lsl r5, r6 + fd0: b8a9 st.w r5, (r14, 0x24) + fd2: 98a0 ld.w r5, (r14, 0x0) + fd4: 98c1 ld.w r6, (r14, 0x4) + fd6: b8a7 st.w r5, (r14, 0x1c) + fd8: b8c8 st.w r6, (r14, 0x20) + fda: 9867 ld.w r3, (r14, 0x1c) + fdc: 70c9 lsr r3, r2 + fde: 98a9 ld.w r5, (r14, 0x24) + fe0: 6cd4 or r3, r5 + fe2: b864 st.w r3, (r14, 0x10) + fe4: 9868 ld.w r3, (r14, 0x20) + fe6: 70c9 lsr r3, r2 + fe8: b865 st.w r3, (r14, 0x14) + fea: 0739 br 0xe5c // e5c <_fpadd_parts+0xfc> + fec: 3100 movi r1, 0 + fee: 2901 subi r1, 2 + ff0: 6404 cmphs r1, r0 + ff2: 0b01 bt 0xdf4 // df4 <_fpadd_parts+0x94> + ff4: 0764 br 0xebc // ebc <_fpadd_parts+0x15c> + ff6: 3301 movi r3, 1 + ff8: 70c8 lsl r3, r2 + ffa: 6d4f mov r5, r3 + ffc: 07c7 br 0xf8a // f8a <_fpadd_parts+0x22a> + ffe: 9863 ld.w r3, (r14, 0xc) + 1000: 43c1 lsli r6, r3, 1 + 1002: 351f movi r5, 31 + 1004: 5d69 subu r3, r5, r2 + 1006: 6d5b mov r5, r6 + 1008: 714c lsl r5, r3 + 100a: b8a9 st.w r5, (r14, 0x24) + 100c: 98a2 ld.w r5, (r14, 0x8) + 100e: 98c3 ld.w r6, (r14, 0xc) + 1010: b8a7 st.w r5, (r14, 0x1c) + 1012: b8c8 st.w r6, (r14, 0x20) + 1014: 9867 ld.w r3, (r14, 0x1c) + 1016: 70c9 lsr r3, r2 + 1018: 98a9 ld.w r5, (r14, 0x24) + 101a: 6cd4 or r3, r5 + 101c: b864 st.w r3, (r14, 0x10) + 101e: 9868 ld.w r3, (r14, 0x20) + 1020: 70c9 lsr r3, r2 + 1022: b865 st.w r3, (r14, 0x14) + 1024: 07ab br 0xf7a // f7a <_fpadd_parts+0x21a> + 1026: 0000 bkpt + 1028: 0fffffff .long 0x0fffffff + 102c: 1fffffff .long 0x1fffffff + 1030: 00004c70 .long 0x00004c70 + +00001034 <__adddf3>: + 1034: 14d0 push r15 + 1036: 1433 subi r14, r14, 76 + 1038: b800 st.w r0, (r14, 0x0) + 103a: b821 st.w r1, (r14, 0x4) + 103c: 6c3b mov r0, r14 + 103e: 1904 addi r1, r14, 16 + 1040: b863 st.w r3, (r14, 0xc) + 1042: b842 st.w r2, (r14, 0x8) + 1044: e00003f4 bsr 0x182c // 182c <__unpack_d> + 1048: 1909 addi r1, r14, 36 + 104a: 1802 addi r0, r14, 8 + 104c: e00003f0 bsr 0x182c // 182c <__unpack_d> + 1050: 1a0e addi r2, r14, 56 + 1052: 1909 addi r1, r14, 36 + 1054: 1804 addi r0, r14, 16 + 1056: e3fffe85 bsr 0xd60 // d60 <_fpadd_parts> + 105a: e000031b bsr 0x1690 // 1690 <__pack_d> + 105e: 1413 addi r14, r14, 76 + 1060: 1490 pop r15 + ... + +00001064 <__subdf3>: + 1064: 14d0 push r15 + 1066: 1433 subi r14, r14, 76 + 1068: b800 st.w r0, (r14, 0x0) + 106a: b821 st.w r1, (r14, 0x4) + 106c: 6c3b mov r0, r14 + 106e: 1904 addi r1, r14, 16 + 1070: b842 st.w r2, (r14, 0x8) + 1072: b863 st.w r3, (r14, 0xc) + 1074: e00003dc bsr 0x182c // 182c <__unpack_d> + 1078: 1909 addi r1, r14, 36 + 107a: 1802 addi r0, r14, 8 + 107c: e00003d8 bsr 0x182c // 182c <__unpack_d> + 1080: 986a ld.w r3, (r14, 0x28) + 1082: 3201 movi r2, 1 + 1084: 6cc9 xor r3, r2 + 1086: 1909 addi r1, r14, 36 + 1088: 1a0e addi r2, r14, 56 + 108a: 1804 addi r0, r14, 16 + 108c: b86a st.w r3, (r14, 0x28) + 108e: e3fffe69 bsr 0xd60 // d60 <_fpadd_parts> + 1092: e00002ff bsr 0x1690 // 1690 <__pack_d> + 1096: 1413 addi r14, r14, 76 + 1098: 1490 pop r15 + ... + +0000109c <__muldf3>: + 109c: 14d4 push r4-r7, r15 + 109e: 143b subi r14, r14, 108 + 10a0: b808 st.w r0, (r14, 0x20) + 10a2: b829 st.w r1, (r14, 0x24) + 10a4: 1808 addi r0, r14, 32 + 10a6: 190c addi r1, r14, 48 + 10a8: b86b st.w r3, (r14, 0x2c) + 10aa: b84a st.w r2, (r14, 0x28) + 10ac: e00003c0 bsr 0x182c // 182c <__unpack_d> + 10b0: 1911 addi r1, r14, 68 + 10b2: 180a addi r0, r14, 40 + 10b4: e00003bc bsr 0x182c // 182c <__unpack_d> + 10b8: 986c ld.w r3, (r14, 0x30) + 10ba: 3b01 cmphsi r3, 2 + 10bc: 0cac bf 0x1214 // 1214 <__muldf3+0x178> + 10be: 9851 ld.w r2, (r14, 0x44) + 10c0: 3a01 cmphsi r2, 2 + 10c2: 0c9c bf 0x11fa // 11fa <__muldf3+0x15e> + 10c4: 3b44 cmpnei r3, 4 + 10c6: 0ca5 bf 0x1210 // 1210 <__muldf3+0x174> + 10c8: 3a44 cmpnei r2, 4 + 10ca: 0c96 bf 0x11f6 // 11f6 <__muldf3+0x15a> + 10cc: 3b42 cmpnei r3, 2 + 10ce: 0ca3 bf 0x1214 // 1214 <__muldf3+0x178> + 10d0: 3a42 cmpnei r2, 2 + 10d2: 0c94 bf 0x11fa // 11fa <__muldf3+0x15e> + 10d4: 98ef ld.w r7, (r14, 0x3c) + 10d6: 98b4 ld.w r5, (r14, 0x50) + 10d8: 9875 ld.w r3, (r14, 0x54) + 10da: 6d8f mov r6, r3 + 10dc: 6c9f mov r2, r7 + 10de: 3300 movi r3, 0 + 10e0: 6c17 mov r0, r5 + 10e2: 3100 movi r1, 0 + 10e4: e0000294 bsr 0x160c // 160c <__muldi3> + 10e8: b804 st.w r0, (r14, 0x10) + 10ea: b825 st.w r1, (r14, 0x14) + 10ec: 6c9f mov r2, r7 + 10ee: 3300 movi r3, 0 + 10f0: 6c1b mov r0, r6 + 10f2: 3100 movi r1, 0 + 10f4: 9890 ld.w r4, (r14, 0x40) + 10f6: b8c2 st.w r6, (r14, 0x8) + 10f8: e000028a bsr 0x160c // 160c <__muldi3> + 10fc: 6d83 mov r6, r0 + 10fe: 6dc7 mov r7, r1 + 1100: 9842 ld.w r2, (r14, 0x8) + 1102: 3300 movi r3, 0 + 1104: 6c13 mov r0, r4 + 1106: 3100 movi r1, 0 + 1108: e0000282 bsr 0x160c // 160c <__muldi3> + 110c: b806 st.w r0, (r14, 0x18) + 110e: b827 st.w r1, (r14, 0x1c) + 1110: 6c97 mov r2, r5 + 1112: 3300 movi r3, 0 + 1114: 6c13 mov r0, r4 + 1116: 3100 movi r1, 0 + 1118: e000027a bsr 0x160c // 160c <__muldi3> + 111c: 6401 cmplt r0, r0 + 111e: 6019 addc r0, r6 + 1120: 605d addc r1, r7 + 1122: 65c4 cmphs r1, r7 + 1124: 0c91 bf 0x1246 // 1246 <__muldf3+0x1aa> + 1126: 645e cmpne r7, r1 + 1128: 0c8d bf 0x1242 // 1242 <__muldf3+0x1a6> + 112a: 3300 movi r3, 0 + 112c: 3400 movi r4, 0 + 112e: b862 st.w r3, (r14, 0x8) + 1130: b883 st.w r4, (r14, 0xc) + 1132: 9884 ld.w r4, (r14, 0x10) + 1134: 98a5 ld.w r5, (r14, 0x14) + 1136: 3600 movi r6, 0 + 1138: 6dc3 mov r7, r0 + 113a: 6c93 mov r2, r4 + 113c: 6cd7 mov r3, r5 + 113e: 6489 cmplt r2, r2 + 1140: 6099 addc r2, r6 + 1142: 60dd addc r3, r7 + 1144: 6d8b mov r6, r2 + 1146: 6dcf mov r7, r3 + 1148: 6c93 mov r2, r4 + 114a: 6cd7 mov r3, r5 + 114c: 64dc cmphs r7, r3 + 114e: 0c70 bf 0x122e // 122e <__muldf3+0x192> + 1150: 65ce cmpne r3, r7 + 1152: 0c6c bf 0x122a // 122a <__muldf3+0x18e> + 1154: 6c87 mov r2, r1 + 1156: 3300 movi r3, 0 + 1158: 9806 ld.w r0, (r14, 0x18) + 115a: 9827 ld.w r1, (r14, 0x1c) + 115c: 6401 cmplt r0, r0 + 115e: 6009 addc r0, r2 + 1160: 604d addc r1, r3 + 1162: 6c83 mov r2, r0 + 1164: 6cc7 mov r3, r1 + 1166: 9802 ld.w r0, (r14, 0x8) + 1168: 9823 ld.w r1, (r14, 0xc) + 116a: 6401 cmplt r0, r0 + 116c: 6009 addc r0, r2 + 116e: 604d addc r1, r3 + 1170: 6c83 mov r2, r0 + 1172: 6cc7 mov r3, r1 + 1174: 988e ld.w r4, (r14, 0x38) + 1176: 9833 ld.w r1, (r14, 0x4c) + 1178: 6104 addu r4, r1 + 117a: 5c2e addi r1, r4, 4 + 117c: b838 st.w r1, (r14, 0x60) + 117e: 980d ld.w r0, (r14, 0x34) + 1180: 9832 ld.w r1, (r14, 0x48) + 1182: 6442 cmpne r0, r1 + 1184: 12b0 lrw r5, 0x1fffffff // 12c4 <__muldf3+0x228> + 1186: 3100 movi r1, 0 + 1188: 6045 addc r1, r1 + 118a: 64d4 cmphs r5, r3 + 118c: b837 st.w r1, (r14, 0x5c) + 118e: 0879 bt 0x1280 // 1280 <__muldf3+0x1e4> + 1190: 2404 addi r4, 5 + 1192: b8a4 st.w r5, (r14, 0x10) + 1194: 3001 movi r0, 1 + 1196: 3100 movi r1, 0 + 1198: 6808 and r0, r2 + 119a: 684c and r1, r3 + 119c: 6c04 or r0, r1 + 119e: 3840 cmpnei r0, 0 + 11a0: b882 st.w r4, (r14, 0x8) + 11a2: 0c0e bf 0x11be // 11be <__muldf3+0x122> + 11a4: 473f lsli r1, r7, 31 + 11a6: 4e01 lsri r0, r6, 1 + 11a8: 6c04 or r0, r1 + 11aa: 4f21 lsri r1, r7, 1 + 11ac: b800 st.w r0, (r14, 0x0) + 11ae: b821 st.w r1, (r14, 0x4) + 11b0: 3180 movi r1, 128 + 11b2: 98c0 ld.w r6, (r14, 0x0) + 11b4: 98e1 ld.w r7, (r14, 0x4) + 11b6: 3000 movi r0, 0 + 11b8: 4138 lsli r1, r1, 24 + 11ba: 6d80 or r6, r0 + 11bc: 6dc4 or r7, r1 + 11be: 4b21 lsri r1, r3, 1 + 11c0: 43bf lsli r5, r3, 31 + 11c2: 4a01 lsri r0, r2, 1 + 11c4: 6cc7 mov r3, r1 + 11c6: 9824 ld.w r1, (r14, 0x10) + 11c8: 6d40 or r5, r0 + 11ca: 64c4 cmphs r1, r3 + 11cc: 6c97 mov r2, r5 + 11ce: 2400 addi r4, 1 + 11d0: 0fe2 bf 0x1194 // 1194 <__muldf3+0xf8> + 11d2: 9822 ld.w r1, (r14, 0x8) + 11d4: b838 st.w r1, (r14, 0x60) + 11d6: 30ff movi r0, 255 + 11d8: 3100 movi r1, 0 + 11da: 6808 and r0, r2 + 11dc: 684c and r1, r3 + 11de: 3480 movi r4, 128 + 11e0: 6502 cmpne r0, r4 + 11e2: 0c37 bf 0x1250 // 1250 <__muldf3+0x1b4> + 11e4: b859 st.w r2, (r14, 0x64) + 11e6: b87a st.w r3, (r14, 0x68) + 11e8: 3303 movi r3, 3 + 11ea: b876 st.w r3, (r14, 0x58) + 11ec: 1816 addi r0, r14, 88 + 11ee: e0000251 bsr 0x1690 // 1690 <__pack_d> + 11f2: 141b addi r14, r14, 108 + 11f4: 1494 pop r4-r7, r15 + 11f6: 3b42 cmpnei r3, 2 + 11f8: 0c42 bf 0x127c // 127c <__muldf3+0x1e0> + 11fa: 9872 ld.w r3, (r14, 0x48) + 11fc: 984d ld.w r2, (r14, 0x34) + 11fe: 64ca cmpne r2, r3 + 1200: 3300 movi r3, 0 + 1202: 60cd addc r3, r3 + 1204: 1811 addi r0, r14, 68 + 1206: b872 st.w r3, (r14, 0x48) + 1208: e0000244 bsr 0x1690 // 1690 <__pack_d> + 120c: 141b addi r14, r14, 108 + 120e: 1494 pop r4-r7, r15 + 1210: 3a42 cmpnei r2, 2 + 1212: 0c35 bf 0x127c // 127c <__muldf3+0x1e0> + 1214: 984d ld.w r2, (r14, 0x34) + 1216: 9872 ld.w r3, (r14, 0x48) + 1218: 64ca cmpne r2, r3 + 121a: 3300 movi r3, 0 + 121c: 60cd addc r3, r3 + 121e: 180c addi r0, r14, 48 + 1220: b86d st.w r3, (r14, 0x34) + 1222: e0000237 bsr 0x1690 // 1690 <__pack_d> + 1226: 141b addi r14, r14, 108 + 1228: 1494 pop r4-r7, r15 + 122a: 6498 cmphs r6, r2 + 122c: 0b94 bt 0x1154 // 1154 <__muldf3+0xb8> + 122e: 9882 ld.w r4, (r14, 0x8) + 1230: 98a3 ld.w r5, (r14, 0xc) + 1232: 3201 movi r2, 1 + 1234: 3300 movi r3, 0 + 1236: 6511 cmplt r4, r4 + 1238: 6109 addc r4, r2 + 123a: 614d addc r5, r3 + 123c: b882 st.w r4, (r14, 0x8) + 123e: b8a3 st.w r5, (r14, 0xc) + 1240: 078a br 0x1154 // 1154 <__muldf3+0xb8> + 1242: 6580 cmphs r0, r6 + 1244: 0b73 bt 0x112a // 112a <__muldf3+0x8e> + 1246: 3300 movi r3, 0 + 1248: 3401 movi r4, 1 + 124a: b862 st.w r3, (r14, 0x8) + 124c: b883 st.w r4, (r14, 0xc) + 124e: 0772 br 0x1132 // 1132 <__muldf3+0x96> + 1250: 3940 cmpnei r1, 0 + 1252: 0bc9 bt 0x11e4 // 11e4 <__muldf3+0x148> + 1254: 3180 movi r1, 128 + 1256: 4121 lsli r1, r1, 1 + 1258: 6848 and r1, r2 + 125a: 3940 cmpnei r1, 0 + 125c: 0bc4 bt 0x11e4 // 11e4 <__muldf3+0x148> + 125e: 6c5b mov r1, r6 + 1260: 6c5c or r1, r7 + 1262: 3940 cmpnei r1, 0 + 1264: 0fc0 bf 0x11e4 // 11e4 <__muldf3+0x148> + 1266: 3080 movi r0, 128 + 1268: 3100 movi r1, 0 + 126a: 6401 cmplt r0, r0 + 126c: 6009 addc r0, r2 + 126e: 604d addc r1, r3 + 1270: 34ff movi r4, 255 + 1272: 6d43 mov r5, r0 + 1274: 6951 andn r5, r4 + 1276: 6c97 mov r2, r5 + 1278: 6cc7 mov r3, r1 + 127a: 07b5 br 0x11e4 // 11e4 <__muldf3+0x148> + 127c: 1013 lrw r0, 0x4c70 // 12c8 <__muldf3+0x22c> + 127e: 07b8 br 0x11ee // 11ee <__muldf3+0x152> + 1280: 1033 lrw r1, 0xfffffff // 12cc <__muldf3+0x230> + 1282: 64c4 cmphs r1, r3 + 1284: 0fa9 bf 0x11d6 // 11d6 <__muldf3+0x13a> + 1286: 2402 addi r4, 3 + 1288: b822 st.w r1, (r14, 0x8) + 128a: 4a1f lsri r0, r2, 31 + 128c: 4321 lsli r1, r3, 1 + 128e: 42a1 lsli r5, r2, 1 + 1290: 6c04 or r0, r1 + 1292: 3fdf btsti r7, 31 + 1294: b880 st.w r4, (r14, 0x0) + 1296: 6c97 mov r2, r5 + 1298: 6cc3 mov r3, r0 + 129a: 0c07 bf 0x12a8 // 12a8 <__muldf3+0x20c> + 129c: 3001 movi r0, 1 + 129e: 3100 movi r1, 0 + 12a0: 6c08 or r0, r2 + 12a2: 6c4c or r1, r3 + 12a4: 6c83 mov r2, r0 + 12a6: 6cc7 mov r3, r1 + 12a8: 4721 lsli r1, r7, 1 + 12aa: 4e1f lsri r0, r6, 31 + 12ac: 6c04 or r0, r1 + 12ae: 9822 ld.w r1, (r14, 0x8) + 12b0: 46a1 lsli r5, r6, 1 + 12b2: 64c4 cmphs r1, r3 + 12b4: 6d97 mov r6, r5 + 12b6: 6dc3 mov r7, r0 + 12b8: 2c00 subi r4, 1 + 12ba: 0be8 bt 0x128a // 128a <__muldf3+0x1ee> + 12bc: 9820 ld.w r1, (r14, 0x0) + 12be: b838 st.w r1, (r14, 0x60) + 12c0: 078b br 0x11d6 // 11d6 <__muldf3+0x13a> + 12c2: 0000 bkpt + 12c4: 1fffffff .long 0x1fffffff + 12c8: 00004c70 .long 0x00004c70 + 12cc: 0fffffff .long 0x0fffffff + +000012d0 <__divdf3>: + 12d0: 14d4 push r4-r7, r15 + 12d2: 1432 subi r14, r14, 72 + 12d4: b804 st.w r0, (r14, 0x10) + 12d6: b825 st.w r1, (r14, 0x14) + 12d8: 1804 addi r0, r14, 16 + 12da: 1908 addi r1, r14, 32 + 12dc: b867 st.w r3, (r14, 0x1c) + 12de: b846 st.w r2, (r14, 0x18) + 12e0: e00002a6 bsr 0x182c // 182c <__unpack_d> + 12e4: 190d addi r1, r14, 52 + 12e6: 1806 addi r0, r14, 24 + 12e8: e00002a2 bsr 0x182c // 182c <__unpack_d> + 12ec: 9868 ld.w r3, (r14, 0x20) + 12ee: 3b01 cmphsi r3, 2 + 12f0: 0c66 bf 0x13bc // 13bc <__divdf3+0xec> + 12f2: 982d ld.w r1, (r14, 0x34) + 12f4: 3901 cmphsi r1, 2 + 12f6: 0c92 bf 0x141a // 141a <__divdf3+0x14a> + 12f8: 9849 ld.w r2, (r14, 0x24) + 12fa: 980e ld.w r0, (r14, 0x38) + 12fc: 6c81 xor r2, r0 + 12fe: 3b44 cmpnei r3, 4 + 1300: b849 st.w r2, (r14, 0x24) + 1302: 0c62 bf 0x13c6 // 13c6 <__divdf3+0xf6> + 1304: 3b42 cmpnei r3, 2 + 1306: 0c60 bf 0x13c6 // 13c6 <__divdf3+0xf6> + 1308: 3944 cmpnei r1, 4 + 130a: 0c62 bf 0x13ce // 13ce <__divdf3+0xfe> + 130c: 3942 cmpnei r1, 2 + 130e: 0c82 bf 0x1412 // 1412 <__divdf3+0x142> + 1310: 982a ld.w r1, (r14, 0x28) + 1312: 986f ld.w r3, (r14, 0x3c) + 1314: 604e subu r1, r3 + 1316: 9890 ld.w r4, (r14, 0x40) + 1318: 98b1 ld.w r5, (r14, 0x44) + 131a: 984b ld.w r2, (r14, 0x2c) + 131c: 986c ld.w r3, (r14, 0x30) + 131e: 654c cmphs r3, r5 + 1320: b82a st.w r1, (r14, 0x28) + 1322: 6d93 mov r6, r4 + 1324: 6dd7 mov r7, r5 + 1326: 0c05 bf 0x1330 // 1330 <__divdf3+0x60> + 1328: 64d6 cmpne r5, r3 + 132a: 080b bt 0x1340 // 1340 <__divdf3+0x70> + 132c: 6508 cmphs r2, r4 + 132e: 0809 bt 0x1340 // 1340 <__divdf3+0x70> + 1330: 4a9f lsri r4, r2, 31 + 1332: 4301 lsli r0, r3, 1 + 1334: 42a1 lsli r5, r2, 1 + 1336: 6d00 or r4, r0 + 1338: 2900 subi r1, 1 + 133a: 6c97 mov r2, r5 + 133c: 6cd3 mov r3, r4 + 133e: b82a st.w r1, (r14, 0x28) + 1340: 3000 movi r0, 0 + 1342: 3100 movi r1, 0 + 1344: b802 st.w r0, (r14, 0x8) + 1346: b823 st.w r1, (r14, 0xc) + 1348: 3180 movi r1, 128 + 134a: 343d movi r4, 61 + 134c: 3000 movi r0, 0 + 134e: 4135 lsli r1, r1, 21 + 1350: b8c0 st.w r6, (r14, 0x0) + 1352: b8e1 st.w r7, (r14, 0x4) + 1354: 98a0 ld.w r5, (r14, 0x0) + 1356: 98c1 ld.w r6, (r14, 0x4) + 1358: 658c cmphs r3, r6 + 135a: 0c10 bf 0x137a // 137a <__divdf3+0xaa> + 135c: 64da cmpne r6, r3 + 135e: 0803 bt 0x1364 // 1364 <__divdf3+0x94> + 1360: 6548 cmphs r2, r5 + 1362: 0c0c bf 0x137a // 137a <__divdf3+0xaa> + 1364: 98a2 ld.w r5, (r14, 0x8) + 1366: 98c3 ld.w r6, (r14, 0xc) + 1368: 6d40 or r5, r0 + 136a: 6d84 or r6, r1 + 136c: b8a2 st.w r5, (r14, 0x8) + 136e: b8c3 st.w r6, (r14, 0xc) + 1370: 98a0 ld.w r5, (r14, 0x0) + 1372: 98c1 ld.w r6, (r14, 0x4) + 1374: 6488 cmphs r2, r2 + 1376: 6097 subc r2, r5 + 1378: 60db subc r3, r6 + 137a: 41bf lsli r5, r1, 31 + 137c: 48e1 lsri r7, r0, 1 + 137e: 6d97 mov r6, r5 + 1380: 49a1 lsri r5, r1, 1 + 1382: 6d9c or r6, r7 + 1384: 6c57 mov r1, r5 + 1386: 4abf lsri r5, r2, 31 + 1388: 6c1b mov r0, r6 + 138a: 2c00 subi r4, 1 + 138c: 6d97 mov r6, r5 + 138e: 43a1 lsli r5, r3, 1 + 1390: 6d94 or r6, r5 + 1392: 4261 lsli r3, r2, 1 + 1394: 3c40 cmpnei r4, 0 + 1396: 6dcf mov r7, r3 + 1398: 6c8f mov r2, r3 + 139a: 6cdb mov r3, r6 + 139c: 0bdc bt 0x1354 // 1354 <__divdf3+0x84> + 139e: 30ff movi r0, 255 + 13a0: 3100 movi r1, 0 + 13a2: 9882 ld.w r4, (r14, 0x8) + 13a4: 98a3 ld.w r5, (r14, 0xc) + 13a6: 6900 and r4, r0 + 13a8: 6944 and r5, r1 + 13aa: 6c13 mov r0, r4 + 13ac: 6c57 mov r1, r5 + 13ae: 3480 movi r4, 128 + 13b0: 6502 cmpne r0, r4 + 13b2: 0c15 bf 0x13dc // 13dc <__divdf3+0x10c> + 13b4: 9862 ld.w r3, (r14, 0x8) + 13b6: 9883 ld.w r4, (r14, 0xc) + 13b8: b86b st.w r3, (r14, 0x2c) + 13ba: b88c st.w r4, (r14, 0x30) + 13bc: 1808 addi r0, r14, 32 + 13be: e0000169 bsr 0x1690 // 1690 <__pack_d> + 13c2: 1412 addi r14, r14, 72 + 13c4: 1494 pop r4-r7, r15 + 13c6: 644e cmpne r3, r1 + 13c8: 0bfa bt 0x13bc // 13bc <__divdf3+0xec> + 13ca: 1016 lrw r0, 0x4c70 // 1420 <__divdf3+0x150> + 13cc: 07f9 br 0x13be // 13be <__divdf3+0xee> + 13ce: 3300 movi r3, 0 + 13d0: 3400 movi r4, 0 + 13d2: b86b st.w r3, (r14, 0x2c) + 13d4: b88c st.w r4, (r14, 0x30) + 13d6: b86a st.w r3, (r14, 0x28) + 13d8: 1808 addi r0, r14, 32 + 13da: 07f2 br 0x13be // 13be <__divdf3+0xee> + 13dc: 3940 cmpnei r1, 0 + 13de: 0beb bt 0x13b4 // 13b4 <__divdf3+0xe4> + 13e0: 3180 movi r1, 128 + 13e2: 4121 lsli r1, r1, 1 + 13e4: 9882 ld.w r4, (r14, 0x8) + 13e6: 98a3 ld.w r5, (r14, 0xc) + 13e8: 6850 and r1, r4 + 13ea: 3940 cmpnei r1, 0 + 13ec: 0be4 bt 0x13b4 // 13b4 <__divdf3+0xe4> + 13ee: 6c98 or r2, r6 + 13f0: 3a40 cmpnei r2, 0 + 13f2: 0fe1 bf 0x13b4 // 13b4 <__divdf3+0xe4> + 13f4: 3280 movi r2, 128 + 13f6: 3300 movi r3, 0 + 13f8: 6c13 mov r0, r4 + 13fa: 6c57 mov r1, r5 + 13fc: 6401 cmplt r0, r0 + 13fe: 6009 addc r0, r2 + 1400: 604d addc r1, r3 + 1402: 6c83 mov r2, r0 + 1404: 6cc7 mov r3, r1 + 1406: 6c0b mov r0, r2 + 1408: 31ff movi r1, 255 + 140a: 6805 andn r0, r1 + 140c: b802 st.w r0, (r14, 0x8) + 140e: b863 st.w r3, (r14, 0xc) + 1410: 07d2 br 0x13b4 // 13b4 <__divdf3+0xe4> + 1412: 3304 movi r3, 4 + 1414: b868 st.w r3, (r14, 0x20) + 1416: 1808 addi r0, r14, 32 + 1418: 07d3 br 0x13be // 13be <__divdf3+0xee> + 141a: 180d addi r0, r14, 52 + 141c: 07d1 br 0x13be // 13be <__divdf3+0xee> + 141e: 0000 bkpt + 1420: 00004c70 .long 0x00004c70 + +00001424 <__gtdf2>: + 1424: 14d0 push r15 + 1426: 142e subi r14, r14, 56 + 1428: b800 st.w r0, (r14, 0x0) + 142a: b821 st.w r1, (r14, 0x4) + 142c: 6c3b mov r0, r14 + 142e: 1904 addi r1, r14, 16 + 1430: b863 st.w r3, (r14, 0xc) + 1432: b842 st.w r2, (r14, 0x8) + 1434: e00001fc bsr 0x182c // 182c <__unpack_d> + 1438: 1909 addi r1, r14, 36 + 143a: 1802 addi r0, r14, 8 + 143c: e00001f8 bsr 0x182c // 182c <__unpack_d> + 1440: 9864 ld.w r3, (r14, 0x10) + 1442: 3b01 cmphsi r3, 2 + 1444: 0c0a bf 0x1458 // 1458 <__gtdf2+0x34> + 1446: 9869 ld.w r3, (r14, 0x24) + 1448: 3b01 cmphsi r3, 2 + 144a: 0c07 bf 0x1458 // 1458 <__gtdf2+0x34> + 144c: 1909 addi r1, r14, 36 + 144e: 1804 addi r0, r14, 16 + 1450: e0000250 bsr 0x18f0 // 18f0 <__fpcmp_parts_d> + 1454: 140e addi r14, r14, 56 + 1456: 1490 pop r15 + 1458: 3000 movi r0, 0 + 145a: 2800 subi r0, 1 + 145c: 140e addi r14, r14, 56 + 145e: 1490 pop r15 + +00001460 <__gedf2>: + 1460: 14d0 push r15 + 1462: 142e subi r14, r14, 56 + 1464: b800 st.w r0, (r14, 0x0) + 1466: b821 st.w r1, (r14, 0x4) + 1468: 6c3b mov r0, r14 + 146a: 1904 addi r1, r14, 16 + 146c: b863 st.w r3, (r14, 0xc) + 146e: b842 st.w r2, (r14, 0x8) + 1470: e00001de bsr 0x182c // 182c <__unpack_d> + 1474: 1909 addi r1, r14, 36 + 1476: 1802 addi r0, r14, 8 + 1478: e00001da bsr 0x182c // 182c <__unpack_d> + 147c: 9864 ld.w r3, (r14, 0x10) + 147e: 3b01 cmphsi r3, 2 + 1480: 0c0a bf 0x1494 // 1494 <__gedf2+0x34> + 1482: 9869 ld.w r3, (r14, 0x24) + 1484: 3b01 cmphsi r3, 2 + 1486: 0c07 bf 0x1494 // 1494 <__gedf2+0x34> + 1488: 1909 addi r1, r14, 36 + 148a: 1804 addi r0, r14, 16 + 148c: e0000232 bsr 0x18f0 // 18f0 <__fpcmp_parts_d> + 1490: 140e addi r14, r14, 56 + 1492: 1490 pop r15 + 1494: 3000 movi r0, 0 + 1496: 2800 subi r0, 1 + 1498: 140e addi r14, r14, 56 + 149a: 1490 pop r15 + +0000149c <__ledf2>: + 149c: 14d0 push r15 + 149e: 142e subi r14, r14, 56 + 14a0: b800 st.w r0, (r14, 0x0) + 14a2: b821 st.w r1, (r14, 0x4) + 14a4: 6c3b mov r0, r14 + 14a6: 1904 addi r1, r14, 16 + 14a8: b863 st.w r3, (r14, 0xc) + 14aa: b842 st.w r2, (r14, 0x8) + 14ac: e00001c0 bsr 0x182c // 182c <__unpack_d> + 14b0: 1909 addi r1, r14, 36 + 14b2: 1802 addi r0, r14, 8 + 14b4: e00001bc bsr 0x182c // 182c <__unpack_d> + 14b8: 9864 ld.w r3, (r14, 0x10) + 14ba: 3b01 cmphsi r3, 2 + 14bc: 0c0a bf 0x14d0 // 14d0 <__ledf2+0x34> + 14be: 9869 ld.w r3, (r14, 0x24) + 14c0: 3b01 cmphsi r3, 2 + 14c2: 0c07 bf 0x14d0 // 14d0 <__ledf2+0x34> + 14c4: 1909 addi r1, r14, 36 + 14c6: 1804 addi r0, r14, 16 + 14c8: e0000214 bsr 0x18f0 // 18f0 <__fpcmp_parts_d> + 14cc: 140e addi r14, r14, 56 + 14ce: 1490 pop r15 + 14d0: 3001 movi r0, 1 + 14d2: 140e addi r14, r14, 56 + 14d4: 1490 pop r15 + ... + +000014d8 <__floatsidf>: + 14d8: 14d1 push r4, r15 + 14da: 1425 subi r14, r14, 20 + 14dc: 3303 movi r3, 3 + 14de: b860 st.w r3, (r14, 0x0) + 14e0: 3840 cmpnei r0, 0 + 14e2: 487f lsri r3, r0, 31 + 14e4: b861 st.w r3, (r14, 0x4) + 14e6: 0808 bt 0x14f6 // 14f6 <__floatsidf+0x1e> + 14e8: 3302 movi r3, 2 + 14ea: b860 st.w r3, (r14, 0x0) + 14ec: 6c3b mov r0, r14 + 14ee: e00000d1 bsr 0x1690 // 1690 <__pack_d> + 14f2: 1405 addi r14, r14, 20 + 14f4: 1491 pop r4, r15 + 14f6: 38df btsti r0, 31 + 14f8: 0812 bt 0x151c // 151c <__floatsidf+0x44> + 14fa: 6d03 mov r4, r0 + 14fc: 6c13 mov r0, r4 + 14fe: e00000a9 bsr 0x1650 // 1650 <__clzsi2> + 1502: 321d movi r2, 29 + 1504: 6080 addu r2, r0 + 1506: 2802 subi r0, 3 + 1508: 38df btsti r0, 31 + 150a: 0810 bt 0x152a // 152a <__floatsidf+0x52> + 150c: 7100 lsl r4, r0 + 150e: 3300 movi r3, 0 + 1510: b884 st.w r4, (r14, 0x10) + 1512: b863 st.w r3, (r14, 0xc) + 1514: 333c movi r3, 60 + 1516: 60ca subu r3, r2 + 1518: b862 st.w r3, (r14, 0x8) + 151a: 07e9 br 0x14ec // 14ec <__floatsidf+0x14> + 151c: 3380 movi r3, 128 + 151e: 4378 lsli r3, r3, 24 + 1520: 64c2 cmpne r0, r3 + 1522: 0c0d bf 0x153c // 153c <__floatsidf+0x64> + 1524: 3400 movi r4, 0 + 1526: 6102 subu r4, r0 + 1528: 07ea br 0x14fc // 14fc <__floatsidf+0x24> + 152a: 311f movi r1, 31 + 152c: 4c61 lsri r3, r4, 1 + 152e: 604a subu r1, r2 + 1530: 6c13 mov r0, r4 + 1532: 70c5 lsr r3, r1 + 1534: 7008 lsl r0, r2 + 1536: b864 st.w r3, (r14, 0x10) + 1538: b803 st.w r0, (r14, 0xc) + 153a: 07ed br 0x1514 // 1514 <__floatsidf+0x3c> + 153c: 3000 movi r0, 0 + 153e: 1022 lrw r1, 0xc1e00000 // 1544 <__floatsidf+0x6c> + 1540: 07d9 br 0x14f2 // 14f2 <__floatsidf+0x1a> + 1542: 0000 bkpt + 1544: c1e00000 .long 0xc1e00000 + +00001548 <__fixdfsi>: + 1548: 14d0 push r15 + 154a: 1427 subi r14, r14, 28 + 154c: b800 st.w r0, (r14, 0x0) + 154e: b821 st.w r1, (r14, 0x4) + 1550: 6c3b mov r0, r14 + 1552: 1902 addi r1, r14, 8 + 1554: e000016c bsr 0x182c // 182c <__unpack_d> + 1558: 9862 ld.w r3, (r14, 0x8) + 155a: 3b02 cmphsi r3, 3 + 155c: 0c20 bf 0x159c // 159c <__fixdfsi+0x54> + 155e: 3b44 cmpnei r3, 4 + 1560: 0c16 bf 0x158c // 158c <__fixdfsi+0x44> + 1562: 9864 ld.w r3, (r14, 0x10) + 1564: 3bdf btsti r3, 31 + 1566: 081b bt 0x159c // 159c <__fixdfsi+0x54> + 1568: 3b3e cmplti r3, 31 + 156a: 0c11 bf 0x158c // 158c <__fixdfsi+0x44> + 156c: 323c movi r2, 60 + 156e: 5a6d subu r3, r2, r3 + 1570: 3200 movi r2, 0 + 1572: 2a1f subi r2, 32 + 1574: 608c addu r2, r3 + 1576: 3adf btsti r2, 31 + 1578: 0815 bt 0x15a2 // 15a2 <__fixdfsi+0x5a> + 157a: 9806 ld.w r0, (r14, 0x18) + 157c: 7009 lsr r0, r2 + 157e: 9863 ld.w r3, (r14, 0xc) + 1580: 3b40 cmpnei r3, 0 + 1582: 0c0b bf 0x1598 // 1598 <__fixdfsi+0x50> + 1584: 3300 movi r3, 0 + 1586: 5b01 subu r0, r3, r0 + 1588: 1407 addi r14, r14, 28 + 158a: 1490 pop r15 + 158c: 9863 ld.w r3, (r14, 0xc) + 158e: 3b40 cmpnei r3, 0 + 1590: 3000 movi r0, 0 + 1592: 6001 addc r0, r0 + 1594: 1068 lrw r3, 0x7fffffff // 15b4 <__fixdfsi+0x6c> + 1596: 600c addu r0, r3 + 1598: 1407 addi r14, r14, 28 + 159a: 1490 pop r15 + 159c: 3000 movi r0, 0 + 159e: 1407 addi r14, r14, 28 + 15a0: 1490 pop r15 + 15a2: 9846 ld.w r2, (r14, 0x18) + 15a4: 311f movi r1, 31 + 15a6: 4241 lsli r2, r2, 1 + 15a8: 604e subu r1, r3 + 15aa: 9805 ld.w r0, (r14, 0x14) + 15ac: 7084 lsl r2, r1 + 15ae: 700d lsr r0, r3 + 15b0: 6c08 or r0, r2 + 15b2: 07e6 br 0x157e // 157e <__fixdfsi+0x36> + 15b4: 7fffffff .long 0x7fffffff + +000015b8 <__floatunsidf>: + 15b8: 14d2 push r4-r5, r15 + 15ba: 1425 subi r14, r14, 20 + 15bc: 3840 cmpnei r0, 0 + 15be: 3500 movi r5, 0 + 15c0: 6d03 mov r4, r0 + 15c2: b8a1 st.w r5, (r14, 0x4) + 15c4: 0c15 bf 0x15ee // 15ee <__floatunsidf+0x36> + 15c6: 3303 movi r3, 3 + 15c8: b860 st.w r3, (r14, 0x0) + 15ca: e0000043 bsr 0x1650 // 1650 <__clzsi2> + 15ce: 321d movi r2, 29 + 15d0: 6080 addu r2, r0 + 15d2: 2802 subi r0, 3 + 15d4: 38df btsti r0, 31 + 15d6: 0813 bt 0x15fc // 15fc <__floatunsidf+0x44> + 15d8: 7100 lsl r4, r0 + 15da: b884 st.w r4, (r14, 0x10) + 15dc: b8a3 st.w r5, (r14, 0xc) + 15de: 333c movi r3, 60 + 15e0: 60ca subu r3, r2 + 15e2: 6c3b mov r0, r14 + 15e4: b862 st.w r3, (r14, 0x8) + 15e6: e0000055 bsr 0x1690 // 1690 <__pack_d> + 15ea: 1405 addi r14, r14, 20 + 15ec: 1492 pop r4-r5, r15 + 15ee: 3302 movi r3, 2 + 15f0: 6c3b mov r0, r14 + 15f2: b860 st.w r3, (r14, 0x0) + 15f4: e000004e bsr 0x1690 // 1690 <__pack_d> + 15f8: 1405 addi r14, r14, 20 + 15fa: 1492 pop r4-r5, r15 + 15fc: 311f movi r1, 31 + 15fe: 4c61 lsri r3, r4, 1 + 1600: 604a subu r1, r2 + 1602: 70c5 lsr r3, r1 + 1604: 7108 lsl r4, r2 + 1606: b864 st.w r3, (r14, 0x10) + 1608: b883 st.w r4, (r14, 0xc) + 160a: 07ea br 0x15de // 15de <__floatunsidf+0x26> + +0000160c <__muldi3>: + 160c: 14c4 push r4-r7 + 160e: 1421 subi r14, r14, 4 + 1610: 7501 zexth r4, r0 + 1612: 48b0 lsri r5, r0, 16 + 1614: 75c9 zexth r7, r2 + 1616: 6d83 mov r6, r0 + 1618: b820 st.w r1, (r14, 0x0) + 161a: 6c13 mov r0, r4 + 161c: 4a30 lsri r1, r2, 16 + 161e: 7c1c mult r0, r7 + 1620: 7d04 mult r4, r1 + 1622: 7dd4 mult r7, r5 + 1624: 611c addu r4, r7 + 1626: 7d44 mult r5, r1 + 1628: 4830 lsri r1, r0, 16 + 162a: 6104 addu r4, r1 + 162c: 65d0 cmphs r4, r7 + 162e: 0804 bt 0x1636 // 1636 <__muldi3+0x2a> + 1630: 3180 movi r1, 128 + 1632: 4129 lsli r1, r1, 9 + 1634: 6144 addu r5, r1 + 1636: 4c30 lsri r1, r4, 16 + 1638: 7cd8 mult r3, r6 + 163a: 6144 addu r5, r1 + 163c: 6c4f mov r1, r3 + 163e: 9860 ld.w r3, (r14, 0x0) + 1640: 7cc8 mult r3, r2 + 1642: 4490 lsli r4, r4, 16 + 1644: 604c addu r1, r3 + 1646: 7401 zexth r0, r0 + 1648: 6010 addu r0, r4 + 164a: 6054 addu r1, r5 + 164c: 1401 addi r14, r14, 4 + 164e: 1484 pop r4-r7 + +00001650 <__clzsi2>: + 1650: 106d lrw r3, 0xffff // 1684 <__clzsi2+0x34> + 1652: 640c cmphs r3, r0 + 1654: 0c07 bf 0x1662 // 1662 <__clzsi2+0x12> + 1656: 33ff movi r3, 255 + 1658: 640c cmphs r3, r0 + 165a: 0c0f bf 0x1678 // 1678 <__clzsi2+0x28> + 165c: 3320 movi r3, 32 + 165e: 3200 movi r2, 0 + 1660: 0406 br 0x166c // 166c <__clzsi2+0x1c> + 1662: 106a lrw r3, 0xffffff // 1688 <__clzsi2+0x38> + 1664: 640c cmphs r3, r0 + 1666: 080c bt 0x167e // 167e <__clzsi2+0x2e> + 1668: 3308 movi r3, 8 + 166a: 3218 movi r2, 24 + 166c: 7009 lsr r0, r2 + 166e: 1048 lrw r2, 0x4c84 // 168c <__clzsi2+0x3c> + 1670: 6008 addu r0, r2 + 1672: 8040 ld.b r2, (r0, 0x0) + 1674: 5b09 subu r0, r3, r2 + 1676: 783c jmp r15 + 1678: 3318 movi r3, 24 + 167a: 3208 movi r2, 8 + 167c: 07f8 br 0x166c // 166c <__clzsi2+0x1c> + 167e: 3310 movi r3, 16 + 1680: 3210 movi r2, 16 + 1682: 07f5 br 0x166c // 166c <__clzsi2+0x1c> + 1684: 0000ffff .long 0x0000ffff + 1688: 00ffffff .long 0x00ffffff + 168c: 00004c84 .long 0x00004c84 + +00001690 <__pack_d>: + 1690: 14c4 push r4-r7 + 1692: 1422 subi r14, r14, 8 + 1694: 9060 ld.w r3, (r0, 0x0) + 1696: 3b01 cmphsi r3, 2 + 1698: 90c3 ld.w r6, (r0, 0xc) + 169a: 90e4 ld.w r7, (r0, 0x10) + 169c: 9021 ld.w r1, (r0, 0x4) + 169e: 0c46 bf 0x172a // 172a <__pack_d+0x9a> + 16a0: 3b44 cmpnei r3, 4 + 16a2: 0c40 bf 0x1722 // 1722 <__pack_d+0x92> + 16a4: 3b42 cmpnei r3, 2 + 16a6: 0c27 bf 0x16f4 // 16f4 <__pack_d+0x64> + 16a8: 6cdb mov r3, r6 + 16aa: 6cdc or r3, r7 + 16ac: 3b40 cmpnei r3, 0 + 16ae: 0c23 bf 0x16f4 // 16f4 <__pack_d+0x64> + 16b0: 9062 ld.w r3, (r0, 0x8) + 16b2: 125a lrw r2, 0xfffffc02 // 1818 <__pack_d+0x188> + 16b4: 648d cmplt r3, r2 + 16b6: 0855 bt 0x1760 // 1760 <__pack_d+0xd0> + 16b8: 1259 lrw r2, 0x3ff // 181c <__pack_d+0x18c> + 16ba: 64c9 cmplt r2, r3 + 16bc: 0833 bt 0x1722 // 1722 <__pack_d+0x92> + 16be: 34ff movi r4, 255 + 16c0: 3500 movi r5, 0 + 16c2: 6918 and r4, r6 + 16c4: 695c and r5, r7 + 16c6: 3280 movi r2, 128 + 16c8: 6492 cmpne r4, r2 + 16ca: 0c3f bf 0x1748 // 1748 <__pack_d+0xb8> + 16cc: 347f movi r4, 127 + 16ce: 3500 movi r5, 0 + 16d0: 6599 cmplt r6, r6 + 16d2: 6191 addc r6, r4 + 16d4: 61d5 addc r7, r5 + 16d6: 1253 lrw r2, 0x1fffffff // 1820 <__pack_d+0x190> + 16d8: 65c8 cmphs r2, r7 + 16da: 0c1a bf 0x170e // 170e <__pack_d+0x7e> + 16dc: 1290 lrw r4, 0x3ff // 181c <__pack_d+0x18c> + 16de: 610c addu r4, r3 + 16e0: 4718 lsli r0, r7, 24 + 16e2: 4f68 lsri r3, r7, 8 + 16e4: 4e48 lsri r2, r6, 8 + 16e6: 6c80 or r2, r0 + 16e8: 430c lsli r0, r3, 12 + 16ea: 486c lsri r3, r0, 12 + 16ec: 120e lrw r0, 0x7ff // 1824 <__pack_d+0x194> + 16ee: 6d4b mov r5, r2 + 16f0: 6900 and r4, r0 + 16f2: 0404 br 0x16fa // 16fa <__pack_d+0x6a> + 16f4: 3400 movi r4, 0 + 16f6: 3200 movi r2, 0 + 16f8: 3300 movi r3, 0 + 16fa: 430c lsli r0, r3, 12 + 16fc: 480c lsri r0, r0, 12 + 16fe: 4474 lsli r3, r4, 20 + 1700: 419f lsli r4, r1, 31 + 1702: 6c43 mov r1, r0 + 1704: 6c4c or r1, r3 + 1706: 6c50 or r1, r4 + 1708: 6c0b mov r0, r2 + 170a: 1402 addi r14, r14, 8 + 170c: 1484 pop r4-r7 + 170e: 479f lsli r4, r7, 31 + 1710: 4e01 lsri r0, r6, 1 + 1712: 6d00 or r4, r0 + 1714: 6d93 mov r6, r4 + 1716: 3480 movi r4, 128 + 1718: 4f41 lsri r2, r7, 1 + 171a: 4483 lsli r4, r4, 3 + 171c: 6dcb mov r7, r2 + 171e: 610c addu r4, r3 + 1720: 07e0 br 0x16e0 // 16e0 <__pack_d+0x50> + 1722: 1281 lrw r4, 0x7ff // 1824 <__pack_d+0x194> + 1724: 3200 movi r2, 0 + 1726: 3300 movi r3, 0 + 1728: 07e9 br 0x16fa // 16fa <__pack_d+0x6a> + 172a: 4e08 lsri r0, r6, 8 + 172c: 4798 lsli r4, r7, 24 + 172e: 6d00 or r4, r0 + 1730: 3580 movi r5, 128 + 1732: 4705 lsli r0, r7, 5 + 1734: 6c93 mov r2, r4 + 1736: 486d lsri r3, r0, 13 + 1738: 3400 movi r4, 0 + 173a: 45ac lsli r5, r5, 12 + 173c: 6c90 or r2, r4 + 173e: 6cd4 or r3, r5 + 1740: 430c lsli r0, r3, 12 + 1742: 486c lsri r3, r0, 12 + 1744: 1198 lrw r4, 0x7ff // 1824 <__pack_d+0x194> + 1746: 07da br 0x16fa // 16fa <__pack_d+0x6a> + 1748: 3d40 cmpnei r5, 0 + 174a: 0bc1 bt 0x16cc // 16cc <__pack_d+0x3c> + 174c: 4241 lsli r2, r2, 1 + 174e: 6898 and r2, r6 + 1750: 3a40 cmpnei r2, 0 + 1752: 0fc2 bf 0x16d6 // 16d6 <__pack_d+0x46> + 1754: 3480 movi r4, 128 + 1756: 3500 movi r5, 0 + 1758: 6599 cmplt r6, r6 + 175a: 6191 addc r6, r4 + 175c: 61d5 addc r7, r5 + 175e: 07bc br 0x16d6 // 16d6 <__pack_d+0x46> + 1760: 5a6d subu r3, r2, r3 + 1762: 3238 movi r2, 56 + 1764: 64c9 cmplt r2, r3 + 1766: 0bc7 bt 0x16f4 // 16f4 <__pack_d+0x64> + 1768: 3200 movi r2, 0 + 176a: 2a1f subi r2, 32 + 176c: 608c addu r2, r3 + 176e: 3adf btsti r2, 31 + 1770: 0848 bt 0x1800 // 1800 <__pack_d+0x170> + 1772: 6c1f mov r0, r7 + 1774: 7009 lsr r0, r2 + 1776: b800 st.w r0, (r14, 0x0) + 1778: 3000 movi r0, 0 + 177a: b801 st.w r0, (r14, 0x4) + 177c: 3adf btsti r2, 31 + 177e: 083c bt 0x17f6 // 17f6 <__pack_d+0x166> + 1780: 3301 movi r3, 1 + 1782: 70c8 lsl r3, r2 + 1784: 6d4f mov r5, r3 + 1786: 3300 movi r3, 0 + 1788: 6d0f mov r4, r3 + 178a: 3200 movi r2, 0 + 178c: 3300 movi r3, 0 + 178e: 2a00 subi r2, 1 + 1790: 2b00 subi r3, 1 + 1792: 6511 cmplt r4, r4 + 1794: 6109 addc r4, r2 + 1796: 614d addc r5, r3 + 1798: 6990 and r6, r4 + 179a: 69d4 and r7, r5 + 179c: 6d9c or r6, r7 + 179e: 3e40 cmpnei r6, 0 + 17a0: 3000 movi r0, 0 + 17a2: 6001 addc r0, r0 + 17a4: 6c83 mov r2, r0 + 17a6: 3300 movi r3, 0 + 17a8: 9880 ld.w r4, (r14, 0x0) + 17aa: 98a1 ld.w r5, (r14, 0x4) + 17ac: 6d08 or r4, r2 + 17ae: 6d4c or r5, r3 + 17b0: 32ff movi r2, 255 + 17b2: 3300 movi r3, 0 + 17b4: 6890 and r2, r4 + 17b6: 68d4 and r3, r5 + 17b8: 3080 movi r0, 128 + 17ba: 640a cmpne r2, r0 + 17bc: 081b bt 0x17f2 // 17f2 <__pack_d+0x162> + 17be: 3b40 cmpnei r3, 0 + 17c0: 0819 bt 0x17f2 // 17f2 <__pack_d+0x162> + 17c2: 3380 movi r3, 128 + 17c4: 4361 lsli r3, r3, 1 + 17c6: 68d0 and r3, r4 + 17c8: 3b40 cmpnei r3, 0 + 17ca: 0c06 bf 0x17d6 // 17d6 <__pack_d+0x146> + 17cc: 3280 movi r2, 128 + 17ce: 3300 movi r3, 0 + 17d0: 6511 cmplt r4, r4 + 17d2: 6109 addc r4, r2 + 17d4: 614d addc r5, r3 + 17d6: 4518 lsli r0, r5, 24 + 17d8: 4c48 lsri r2, r4, 8 + 17da: 4d68 lsri r3, r5, 8 + 17dc: 1093 lrw r4, 0xfffffff // 1828 <__pack_d+0x198> + 17de: 6c80 or r2, r0 + 17e0: 6550 cmphs r4, r5 + 17e2: 430c lsli r0, r3, 12 + 17e4: 486c lsri r3, r0, 12 + 17e6: 3001 movi r0, 1 + 17e8: 0c02 bf 0x17ec // 17ec <__pack_d+0x15c> + 17ea: 3000 movi r0, 0 + 17ec: 108e lrw r4, 0x7ff // 1824 <__pack_d+0x194> + 17ee: 6900 and r4, r0 + 17f0: 0785 br 0x16fa // 16fa <__pack_d+0x6a> + 17f2: 327f movi r2, 127 + 17f4: 07ed br 0x17ce // 17ce <__pack_d+0x13e> + 17f6: 3201 movi r2, 1 + 17f8: 708c lsl r2, r3 + 17fa: 3500 movi r5, 0 + 17fc: 6d0b mov r4, r2 + 17fe: 07c6 br 0x178a // 178a <__pack_d+0xfa> + 1800: 341f movi r4, 31 + 1802: 610e subu r4, r3 + 1804: 4701 lsli r0, r7, 1 + 1806: 7010 lsl r0, r4 + 1808: 6d1b mov r4, r6 + 180a: 710d lsr r4, r3 + 180c: 6d00 or r4, r0 + 180e: 6c1f mov r0, r7 + 1810: 700d lsr r0, r3 + 1812: b880 st.w r4, (r14, 0x0) + 1814: b801 st.w r0, (r14, 0x4) + 1816: 07b3 br 0x177c // 177c <__pack_d+0xec> + 1818: fffffc02 .long 0xfffffc02 + 181c: 000003ff .long 0x000003ff + 1820: 1fffffff .long 0x1fffffff + 1824: 000007ff .long 0x000007ff + 1828: 0fffffff .long 0x0fffffff + +0000182c <__unpack_d>: + 182c: 1423 subi r14, r14, 12 + 182e: b880 st.w r4, (r14, 0x0) + 1830: b8c1 st.w r6, (r14, 0x4) + 1832: b8e2 st.w r7, (r14, 0x8) + 1834: 8843 ld.h r2, (r0, 0x6) + 1836: 4251 lsli r2, r2, 17 + 1838: 9061 ld.w r3, (r0, 0x4) + 183a: 9080 ld.w r4, (r0, 0x0) + 183c: 4a55 lsri r2, r2, 21 + 183e: 8007 ld.b r0, (r0, 0x7) + 1840: 436c lsli r3, r3, 12 + 1842: 4807 lsri r0, r0, 7 + 1844: 3a40 cmpnei r2, 0 + 1846: 4b6c lsri r3, r3, 12 + 1848: b101 st.w r0, (r1, 0x4) + 184a: 0819 bt 0x187c // 187c <__unpack_d+0x50> + 184c: 6c93 mov r2, r4 + 184e: 6c8c or r2, r3 + 1850: 3a40 cmpnei r2, 0 + 1852: 0c2d bf 0x18ac // 18ac <__unpack_d+0x80> + 1854: 4c58 lsri r2, r4, 24 + 1856: 4368 lsli r3, r3, 8 + 1858: 6cc8 or r3, r2 + 185a: 3203 movi r2, 3 + 185c: 4408 lsli r0, r4, 8 + 185e: b140 st.w r2, (r1, 0x0) + 1860: 1181 lrw r4, 0xfffffc01 // 18e4 <__unpack_d+0xb8> + 1862: 11c2 lrw r6, 0xfffffff // 18e8 <__unpack_d+0xbc> + 1864: 485f lsri r2, r0, 31 + 1866: 4361 lsli r3, r3, 1 + 1868: 6cc8 or r3, r2 + 186a: 64d8 cmphs r6, r3 + 186c: 6c93 mov r2, r4 + 186e: 4001 lsli r0, r0, 1 + 1870: 2c00 subi r4, 1 + 1872: 0bf9 bt 0x1864 // 1864 <__unpack_d+0x38> + 1874: b142 st.w r2, (r1, 0x8) + 1876: b103 st.w r0, (r1, 0xc) + 1878: b164 st.w r3, (r1, 0x10) + 187a: 0414 br 0x18a2 // 18a2 <__unpack_d+0x76> + 187c: 101c lrw r0, 0x7ff // 18ec <__unpack_d+0xc0> + 187e: 640a cmpne r2, r0 + 1880: 0c19 bf 0x18b2 // 18b2 <__unpack_d+0x86> + 1882: 1019 lrw r0, 0xfffffc01 // 18e4 <__unpack_d+0xb8> + 1884: 6080 addu r2, r0 + 1886: b142 st.w r2, (r1, 0x8) + 1888: 3203 movi r2, 3 + 188a: 43e8 lsli r7, r3, 8 + 188c: b140 st.w r2, (r1, 0x0) + 188e: 3380 movi r3, 128 + 1890: 4c58 lsri r2, r4, 24 + 1892: 6dc8 or r7, r2 + 1894: 44c8 lsli r6, r4, 8 + 1896: 3200 movi r2, 0 + 1898: 4375 lsli r3, r3, 21 + 189a: 6d88 or r6, r2 + 189c: 6dcc or r7, r3 + 189e: b1c3 st.w r6, (r1, 0xc) + 18a0: b1e4 st.w r7, (r1, 0x10) + 18a2: 98e2 ld.w r7, (r14, 0x8) + 18a4: 98c1 ld.w r6, (r14, 0x4) + 18a6: 9880 ld.w r4, (r14, 0x0) + 18a8: 1403 addi r14, r14, 12 + 18aa: 783c jmp r15 + 18ac: 3302 movi r3, 2 + 18ae: b160 st.w r3, (r1, 0x0) + 18b0: 07f9 br 0x18a2 // 18a2 <__unpack_d+0x76> + 18b2: 6c93 mov r2, r4 + 18b4: 6c8c or r2, r3 + 18b6: 3a40 cmpnei r2, 0 + 18b8: 0c10 bf 0x18d8 // 18d8 <__unpack_d+0xac> + 18ba: 3280 movi r2, 128 + 18bc: 424c lsli r2, r2, 12 + 18be: 688c and r2, r3 + 18c0: 3a40 cmpnei r2, 0 + 18c2: 0c0e bf 0x18de // 18de <__unpack_d+0xb2> + 18c4: 3201 movi r2, 1 + 18c6: b140 st.w r2, (r1, 0x0) + 18c8: 4c58 lsri r2, r4, 24 + 18ca: 4368 lsli r3, r3, 8 + 18cc: 6cc8 or r3, r2 + 18ce: 4408 lsli r0, r4, 8 + 18d0: 3b9b bclri r3, 27 + 18d2: b103 st.w r0, (r1, 0xc) + 18d4: b164 st.w r3, (r1, 0x10) + 18d6: 07e6 br 0x18a2 // 18a2 <__unpack_d+0x76> + 18d8: 3304 movi r3, 4 + 18da: b160 st.w r3, (r1, 0x0) + 18dc: 07e3 br 0x18a2 // 18a2 <__unpack_d+0x76> + 18de: b140 st.w r2, (r1, 0x0) + 18e0: 07f4 br 0x18c8 // 18c8 <__unpack_d+0x9c> + 18e2: 0000 bkpt + 18e4: fffffc01 .long 0xfffffc01 + 18e8: 0fffffff .long 0x0fffffff + 18ec: 000007ff .long 0x000007ff + +000018f0 <__fpcmp_parts_d>: + 18f0: 14c1 push r4 + 18f2: 9060 ld.w r3, (r0, 0x0) + 18f4: 3b01 cmphsi r3, 2 + 18f6: 0c12 bf 0x191a // 191a <__fpcmp_parts_d+0x2a> + 18f8: 9140 ld.w r2, (r1, 0x0) + 18fa: 3a01 cmphsi r2, 2 + 18fc: 0c0f bf 0x191a // 191a <__fpcmp_parts_d+0x2a> + 18fe: 3b44 cmpnei r3, 4 + 1900: 0c17 bf 0x192e // 192e <__fpcmp_parts_d+0x3e> + 1902: 3a44 cmpnei r2, 4 + 1904: 0c0f bf 0x1922 // 1922 <__fpcmp_parts_d+0x32> + 1906: 3b42 cmpnei r3, 2 + 1908: 0c0b bf 0x191e // 191e <__fpcmp_parts_d+0x2e> + 190a: 3a42 cmpnei r2, 2 + 190c: 0c13 bf 0x1932 // 1932 <__fpcmp_parts_d+0x42> + 190e: 9061 ld.w r3, (r0, 0x4) + 1910: 9141 ld.w r2, (r1, 0x4) + 1912: 648e cmpne r3, r2 + 1914: 0c14 bf 0x193c // 193c <__fpcmp_parts_d+0x4c> + 1916: 3b40 cmpnei r3, 0 + 1918: 0808 bt 0x1928 // 1928 <__fpcmp_parts_d+0x38> + 191a: 3001 movi r0, 1 + 191c: 1481 pop r4 + 191e: 3a42 cmpnei r2, 2 + 1920: 0c28 bf 0x1970 // 1970 <__fpcmp_parts_d+0x80> + 1922: 9161 ld.w r3, (r1, 0x4) + 1924: 3b40 cmpnei r3, 0 + 1926: 0bfa bt 0x191a // 191a <__fpcmp_parts_d+0x2a> + 1928: 3000 movi r0, 0 + 192a: 2800 subi r0, 1 + 192c: 1481 pop r4 + 192e: 3a44 cmpnei r2, 4 + 1930: 0c22 bf 0x1974 // 1974 <__fpcmp_parts_d+0x84> + 1932: 9061 ld.w r3, (r0, 0x4) + 1934: 3b40 cmpnei r3, 0 + 1936: 0bf9 bt 0x1928 // 1928 <__fpcmp_parts_d+0x38> + 1938: 3001 movi r0, 1 + 193a: 07f1 br 0x191c // 191c <__fpcmp_parts_d+0x2c> + 193c: 9082 ld.w r4, (r0, 0x8) + 193e: 9142 ld.w r2, (r1, 0x8) + 1940: 6509 cmplt r2, r4 + 1942: 0bea bt 0x1916 // 1916 <__fpcmp_parts_d+0x26> + 1944: 6491 cmplt r4, r2 + 1946: 080d bt 0x1960 // 1960 <__fpcmp_parts_d+0x70> + 1948: 9044 ld.w r2, (r0, 0x10) + 194a: 9083 ld.w r4, (r0, 0xc) + 194c: 9103 ld.w r0, (r1, 0xc) + 194e: 9124 ld.w r1, (r1, 0x10) + 1950: 6484 cmphs r1, r2 + 1952: 0fe2 bf 0x1916 // 1916 <__fpcmp_parts_d+0x26> + 1954: 644a cmpne r2, r1 + 1956: 0803 bt 0x195c // 195c <__fpcmp_parts_d+0x6c> + 1958: 6500 cmphs r0, r4 + 195a: 0fde bf 0x1916 // 1916 <__fpcmp_parts_d+0x26> + 195c: 6448 cmphs r2, r1 + 195e: 0805 bt 0x1968 // 1968 <__fpcmp_parts_d+0x78> + 1960: 3b40 cmpnei r3, 0 + 1962: 0fe3 bf 0x1928 // 1928 <__fpcmp_parts_d+0x38> + 1964: 3001 movi r0, 1 + 1966: 07db br 0x191c // 191c <__fpcmp_parts_d+0x2c> + 1968: 6486 cmpne r1, r2 + 196a: 0803 bt 0x1970 // 1970 <__fpcmp_parts_d+0x80> + 196c: 6410 cmphs r4, r0 + 196e: 0ff9 bf 0x1960 // 1960 <__fpcmp_parts_d+0x70> + 1970: 3000 movi r0, 0 + 1972: 1481 pop r4 + 1974: 9161 ld.w r3, (r1, 0x4) + 1976: 9041 ld.w r2, (r0, 0x4) + 1978: 5b09 subu r0, r3, r2 + 197a: 1481 pop r4 + +0000197c <__memset_fast>: + 197c: 14c3 push r4-r6 + 197e: 7444 zextb r1, r1 + 1980: 3a40 cmpnei r2, 0 + 1982: 0c1f bf 0x19c0 // 19c0 <__memset_fast+0x44> + 1984: 6d43 mov r5, r0 + 1986: 6d03 mov r4, r0 + 1988: 3603 movi r6, 3 + 198a: 6918 and r4, r6 + 198c: 3c40 cmpnei r4, 0 + 198e: 0c1a bf 0x19c2 // 19c2 <__memset_fast+0x46> + 1990: a520 st.b r1, (r5, 0x0) + 1992: 2a00 subi r2, 1 + 1994: 3a40 cmpnei r2, 0 + 1996: 0c15 bf 0x19c0 // 19c0 <__memset_fast+0x44> + 1998: 2500 addi r5, 1 + 199a: 6d17 mov r4, r5 + 199c: 3603 movi r6, 3 + 199e: 6918 and r4, r6 + 19a0: 3c40 cmpnei r4, 0 + 19a2: 0c10 bf 0x19c2 // 19c2 <__memset_fast+0x46> + 19a4: a520 st.b r1, (r5, 0x0) + 19a6: 2a00 subi r2, 1 + 19a8: 3a40 cmpnei r2, 0 + 19aa: 0c0b bf 0x19c0 // 19c0 <__memset_fast+0x44> + 19ac: 2500 addi r5, 1 + 19ae: 6d17 mov r4, r5 + 19b0: 3603 movi r6, 3 + 19b2: 6918 and r4, r6 + 19b4: 3c40 cmpnei r4, 0 + 19b6: 0c06 bf 0x19c2 // 19c2 <__memset_fast+0x46> + 19b8: a520 st.b r1, (r5, 0x0) + 19ba: 2a00 subi r2, 1 + 19bc: 2500 addi r5, 1 + 19be: 0402 br 0x19c2 // 19c2 <__memset_fast+0x46> + 19c0: 1483 pop r4-r6 + 19c2: 4168 lsli r3, r1, 8 + 19c4: 6c4c or r1, r3 + 19c6: 4170 lsli r3, r1, 16 + 19c8: 6c4c or r1, r3 + 19ca: 3a2f cmplti r2, 16 + 19cc: 0809 bt 0x19de // 19de <__memset_fast+0x62> + 19ce: b520 st.w r1, (r5, 0x0) + 19d0: b521 st.w r1, (r5, 0x4) + 19d2: b522 st.w r1, (r5, 0x8) + 19d4: b523 st.w r1, (r5, 0xc) + 19d6: 2a0f subi r2, 16 + 19d8: 250f addi r5, 16 + 19da: 3a2f cmplti r2, 16 + 19dc: 0ff9 bf 0x19ce // 19ce <__memset_fast+0x52> + 19de: 3a23 cmplti r2, 4 + 19e0: 0806 bt 0x19ec // 19ec <__memset_fast+0x70> + 19e2: 2a03 subi r2, 4 + 19e4: b520 st.w r1, (r5, 0x0) + 19e6: 2503 addi r5, 4 + 19e8: 3a23 cmplti r2, 4 + 19ea: 0ffc bf 0x19e2 // 19e2 <__memset_fast+0x66> + 19ec: 3a40 cmpnei r2, 0 + 19ee: 0fe9 bf 0x19c0 // 19c0 <__memset_fast+0x44> + 19f0: 2a00 subi r2, 1 + 19f2: a520 st.b r1, (r5, 0x0) + 19f4: 3a40 cmpnei r2, 0 + 19f6: 0fe5 bf 0x19c0 // 19c0 <__memset_fast+0x44> + 19f8: 2a00 subi r2, 1 + 19fa: a521 st.b r1, (r5, 0x1) + 19fc: 3a40 cmpnei r2, 0 + 19fe: 0fe1 bf 0x19c0 // 19c0 <__memset_fast+0x44> + 1a00: a522 st.b r1, (r5, 0x2) + 1a02: 1483 pop r4-r6 + +00001a04 <__memcpy_fast>: + 1a04: 14c3 push r4-r6 + 1a06: 6d83 mov r6, r0 + 1a08: 6d07 mov r4, r1 + 1a0a: 6d18 or r4, r6 + 1a0c: 3303 movi r3, 3 + 1a0e: 690c and r4, r3 + 1a10: 3c40 cmpnei r4, 0 + 1a12: 0c0b bf 0x1a28 // 1a28 <__memcpy_fast+0x24> + 1a14: 3a40 cmpnei r2, 0 + 1a16: 0c08 bf 0x1a26 // 1a26 <__memcpy_fast+0x22> + 1a18: 8160 ld.b r3, (r1, 0x0) + 1a1a: 2100 addi r1, 1 + 1a1c: 2a00 subi r2, 1 + 1a1e: a660 st.b r3, (r6, 0x0) + 1a20: 2600 addi r6, 1 + 1a22: 3a40 cmpnei r2, 0 + 1a24: 0bfa bt 0x1a18 // 1a18 <__memcpy_fast+0x14> + 1a26: 1483 pop r4-r6 + 1a28: 3a2f cmplti r2, 16 + 1a2a: 080e bt 0x1a46 // 1a46 <__memcpy_fast+0x42> + 1a2c: 91a0 ld.w r5, (r1, 0x0) + 1a2e: 9161 ld.w r3, (r1, 0x4) + 1a30: 9182 ld.w r4, (r1, 0x8) + 1a32: b6a0 st.w r5, (r6, 0x0) + 1a34: 91a3 ld.w r5, (r1, 0xc) + 1a36: b661 st.w r3, (r6, 0x4) + 1a38: b682 st.w r4, (r6, 0x8) + 1a3a: b6a3 st.w r5, (r6, 0xc) + 1a3c: 2a0f subi r2, 16 + 1a3e: 210f addi r1, 16 + 1a40: 260f addi r6, 16 + 1a42: 3a2f cmplti r2, 16 + 1a44: 0ff4 bf 0x1a2c // 1a2c <__memcpy_fast+0x28> + 1a46: 3a23 cmplti r2, 4 + 1a48: 0808 bt 0x1a58 // 1a58 <__memcpy_fast+0x54> + 1a4a: 9160 ld.w r3, (r1, 0x0) + 1a4c: 2a03 subi r2, 4 + 1a4e: 2103 addi r1, 4 + 1a50: b660 st.w r3, (r6, 0x0) + 1a52: 2603 addi r6, 4 + 1a54: 3a23 cmplti r2, 4 + 1a56: 0ffa bf 0x1a4a // 1a4a <__memcpy_fast+0x46> + 1a58: 3a40 cmpnei r2, 0 + 1a5a: 0fe6 bf 0x1a26 // 1a26 <__memcpy_fast+0x22> + 1a5c: 8160 ld.b r3, (r1, 0x0) + 1a5e: 2100 addi r1, 1 + 1a60: 2a00 subi r2, 1 + 1a62: a660 st.b r3, (r6, 0x0) + 1a64: 2600 addi r6, 1 + 1a66: 07f9 br 0x1a58 // 1a58 <__memcpy_fast+0x54> + +00001a68 <__GI_strncmp>: + 1a68: 14c1 push r4 + 1a6a: 6cc3 mov r3, r0 + 1a6c: 6080 addu r2, r0 + 1a6e: 040c br 0x1a86 // 1a86 <__GI_strncmp+0x1e> + 1a70: 8380 ld.b r4, (r3, 0x0) + 1a72: 8100 ld.b r0, (r1, 0x0) + 1a74: 6012 subu r0, r4 + 1a76: 6c02 nor r0, r0 + 1a78: 2000 addi r0, 1 + 1a7a: 3840 cmpnei r0, 0 + 1a7c: 0808 bt 0x1a8c // 1a8c <__GI_strncmp+0x24> + 1a7e: 3c40 cmpnei r4, 0 + 1a80: 0c06 bf 0x1a8c // 1a8c <__GI_strncmp+0x24> + 1a82: 2300 addi r3, 1 + 1a84: 2100 addi r1, 1 + 1a86: 648c cmphs r3, r2 + 1a88: 0ff4 bf 0x1a70 // 1a70 <__GI_strncmp+0x8> + 1a8a: 3000 movi r0, 0 + 1a8c: 1481 pop r4 + +Disassembly of section .text.__main: + +00001a90 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 1a90: 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 ) { + 1a92: 1009 lrw r0, 0x20000000 // 1ab4 <__main+0x24> + 1a94: 1029 lrw r1, 0x4f20 // 1ab8 <__main+0x28> + 1a96: 6442 cmpne r0, r1 + 1a98: 0c05 bf 0x1aa2 // 1aa2 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 1a9a: 1049 lrw r2, 0x2000009c // 1abc <__main+0x2c> + 1a9c: 6082 subu r2, r0 + 1a9e: e3ffffb3 bsr 0x1a04 // 1a04 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 1aa2: 1048 lrw r2, 0x20000674 // 1ac0 <__main+0x30> + 1aa4: 1008 lrw r0, 0x2000009c // 1ac4 <__main+0x34> + 1aa6: 640a cmpne r2, r0 + 1aa8: 0c05 bf 0x1ab2 // 1ab2 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 1aaa: 6082 subu r2, r0 + 1aac: 3100 movi r1, 0 + 1aae: e3ffff67 bsr 0x197c // 197c <__memset_fast> + } + + +} + 1ab2: 1490 pop r15 + 1ab4: 20000000 .long 0x20000000 + 1ab8: 00004f20 .long 0x00004f20 + 1abc: 2000009c .long 0x2000009c + 1ac0: 20000674 .long 0x20000674 + 1ac4: 2000009c .long 0x2000009c + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00001ac8 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 1ac8: 3848 cmpnei r0, 8 + 1aca: 080a bt 0x1ade // 1ade + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 1acc: 107a lrw r3, 0x2000004c // 1b34 + 1ace: 32ff movi r2, 255 + 1ad0: 9320 ld.w r1, (r3, 0x0) + 1ad2: 9160 ld.w r3, (r1, 0x0) + 1ad4: 424c lsli r2, r2, 12 + 1ad6: 68c9 andn r3, r2 + 1ad8: 3bae bseti r3, 14 + 1ada: 3bb2 bseti r3, 18 + 1adc: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 1ade: 1077 lrw r3, 0x2000005c // 1b38 + 1ae0: 9360 ld.w r3, (r3, 0x0) + 1ae2: 9341 ld.w r2, (r3, 0x4) + 1ae4: 6c80 or r2, r0 + 1ae6: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 1ae8: 9343 ld.w r2, (r3, 0xc) + 1aea: 6880 and r2, r0 + 1aec: 3a40 cmpnei r2, 0 + 1aee: 0ffd bf 0x1ae8 // 1ae8 + switch(ENDIS_X) + 1af0: 3842 cmpnei r0, 2 + 1af2: 0807 bt 0x1b00 // 1b00 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 1af4: 3102 movi r1, 2 + 1af6: 9344 ld.w r2, (r3, 0x10) + 1af8: 6884 and r2, r1 + 1afa: 3a40 cmpnei r2, 0 + 1afc: 0ffd bf 0x1af6 // 1af6 + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 1afe: 783c jmp r15 + switch(ENDIS_X) + 1b00: 3802 cmphsi r0, 3 + 1b02: 0809 bt 0x1b14 // 1b14 + 1b04: 3841 cmpnei r0, 1 + 1b06: 0bfc bt 0x1afe // 1afe + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 1b08: 3101 movi r1, 1 + 1b0a: 9344 ld.w r2, (r3, 0x10) + 1b0c: 6884 and r2, r1 + 1b0e: 3a40 cmpnei r2, 0 + 1b10: 0ffd bf 0x1b0a // 1b0a + 1b12: 07f6 br 0x1afe // 1afe + switch(ENDIS_X) + 1b14: 3848 cmpnei r0, 8 + 1b16: 0807 bt 0x1b24 // 1b24 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 1b18: 3108 movi r1, 8 + 1b1a: 9344 ld.w r2, (r3, 0x10) + 1b1c: 6884 and r2, r1 + 1b1e: 3a40 cmpnei r2, 0 + 1b20: 0ffd bf 0x1b1a // 1b1a + 1b22: 07ee br 0x1afe // 1afe + switch(ENDIS_X) + 1b24: 3850 cmpnei r0, 16 + 1b26: 0bec bt 0x1afe // 1afe + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 1b28: 3110 movi r1, 16 + 1b2a: 9344 ld.w r2, (r3, 0x10) + 1b2c: 6884 and r2, r1 + 1b2e: 3a40 cmpnei r2, 0 + 1b30: 0ffd bf 0x1b2a // 1b2a + 1b32: 07e6 br 0x1afe // 1afe + 1b34: 2000004c .long 0x2000004c + 1b38: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00001b3c : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 1b3c: 106c lrw r3, 0x2000005c // 1b6c + 1b3e: 104d lrw r2, 0xffff // 1b70 + 1b40: 9360 ld.w r3, (r3, 0x0) + 1b42: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 1b44: 104c lrw r2, 0xffffff // 1b74 + 1b46: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 1b48: 104c lrw r2, 0xd22d0000 // 1b78 + 1b4a: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 1b4c: 104c lrw r2, 0x70ff3bff // 1b7c + 1b4e: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 1b50: 320a movi r2, 10 + 1b52: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b54: 102b lrw r1, 0x70c // 1b80 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 1b56: 237f addi r3, 128 + 1b58: 3200 movi r2, 0 + 1b5a: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 1b5c: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b5e: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 1b60: 1029 lrw r1, 0x3fe // 1b84 + 1b62: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 1b64: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 1b66: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 1b68: b35f st.w r2, (r3, 0x7c) +} + 1b6a: 783c jmp r15 + 1b6c: 2000005c .long 0x2000005c + 1b70: 0000ffff .long 0x0000ffff + 1b74: 00ffffff .long 0x00ffffff + 1b78: d22d0000 .long 0xd22d0000 + 1b7c: 70ff3bff .long 0x70ff3bff + 1b80: 0000070c .long 0x0000070c + 1b84: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00001b88 : +{ + 1b88: 14d0 push r15 + if (NewState != DISABLE) + 1b8a: 3840 cmpnei r0, 0 + 1b8c: 0c05 bf 0x1b96 // 1b96 + 1b8e: 6c07 mov r0, r1 + 1b90: e3ffff9c bsr 0x1ac8 // 1ac8 +} + 1b94: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 1b96: 1068 lrw r3, 0x2000005c // 1bb4 + 1b98: 9360 ld.w r3, (r3, 0x0) + 1b9a: 9342 ld.w r2, (r3, 0x8) + 1b9c: 6c84 or r2, r1 + 1b9e: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 1ba0: 9343 ld.w r2, (r3, 0xc) + 1ba2: 6884 and r2, r1 + 1ba4: 3a40 cmpnei r2, 0 + 1ba6: 0bfd bt 0x1ba0 // 1ba0 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 1ba8: 237f addi r3, 128 + 1baa: 9301 ld.w r0, (r3, 0x4) + 1bac: 6c40 or r1, r0 + 1bae: b321 st.w r1, (r3, 0x4) +} + 1bb0: 07f2 br 0x1b94 // 1b94 + 1bb2: 0000 bkpt + 1bb4: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00001bb8 : +//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 ) +{ + 1bb8: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 1bba: 3b48 cmpnei r3, 8 + 1bbc: 0828 bt 0x1c0c // 1c0c + { + IFC->CEDR=0X01; //CLKEN + 1bbe: 109d lrw r4, 0x20000060 // 1c30 + 1bc0: 3501 movi r5, 1 + 1bc2: 9480 ld.w r4, (r4, 0x0) + 1bc4: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 1bc6: 3504 movi r5, 4 + 1bc8: 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)) + 1bca: 5b83 subi r4, r3, 1 + 1bcc: 3c01 cmphsi r4, 2 + 1bce: 0c2b bf 0x1c24 // 1c24 + { + 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)) + 1bd0: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 1bd2: 3c04 cmphsi r4, 5 + 1bd4: 0c03 bf 0x1bda // 1bda + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 1bd6: 3b4b cmpnei r3, 11 + 1bd8: 0807 bt 0x1be6 // 1be6 + { + IFC->CEDR=0X01; //CLKEN + 1bda: 1076 lrw r3, 0x20000060 // 1c30 + 1bdc: 3401 movi r4, 1 + 1bde: 9360 ld.w r3, (r3, 0x0) + 1be0: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 1be2: 3400 movi r4, 0 + 1be4: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1be6: 1094 lrw r4, 0xd22d0000 // 1c34 + 1be8: 6c10 or r0, r4 + 1bea: 1074 lrw r3, 0x2000005c // 1c38 + 1bec: 6c40 or r1, r0 + 1bee: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1bf0: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1bf2: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1bf4: 4001 lsli r0, r0, 1 + 1bf6: 9324 ld.w r1, (r3, 0x10) + 1bf8: 6840 and r1, r0 + 1bfa: 3940 cmpnei r1, 0 + 1bfc: 0ffd bf 0x1bf6 // 1bf6 + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 1bfe: 1030 lrw r1, 0xc33c0000 // 1c3c + 1c00: 6c48 or r1, r2 + 1c02: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 1c04: 9328 ld.w r1, (r3, 0x20) + 1c06: 644a cmpne r2, r1 + 1c08: 0bfe bt 0x1c04 // 1c04 +} + 1c0a: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 1c0c: 3b40 cmpnei r3, 0 + 1c0e: 0c03 bf 0x1c14 // 1c14 + 1c10: 3b49 cmpnei r3, 9 + 1c12: 0807 bt 0x1c20 // 1c20 + IFC->CEDR=0X01; //CLKEN + 1c14: 1087 lrw r4, 0x20000060 // 1c30 + 1c16: 3501 movi r5, 1 + 1c18: 9480 ld.w r4, (r4, 0x0) + 1c1a: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 1c1c: 3502 movi r5, 2 + 1c1e: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 1c20: 3b4a cmpnei r3, 10 + 1c22: 0bd4 bt 0x1bca // 1bca + IFC->CEDR=0X01; //CLKEN + 1c24: 1083 lrw r4, 0x20000060 // 1c30 + 1c26: 3501 movi r5, 1 + 1c28: 9480 ld.w r4, (r4, 0x0) + 1c2a: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 1c2c: b4a5 st.w r5, (r4, 0x14) + 1c2e: 07d1 br 0x1bd0 // 1bd0 + 1c30: 20000060 .long 0x20000060 + 1c34: d22d0000 .long 0xd22d0000 + 1c38: 2000005c .long 0x2000005c + 1c3c: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00001c40 : +//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) +{ + 1c40: 14d1 push r4, r15 + 1c42: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 1c44: 3110 movi r1, 16 + 1c46: 3000 movi r0, 0 + 1c48: e3ffffa0 bsr 0x1b88 // 1b88 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 1c4c: 1066 lrw r3, 0x2000005c // 1c64 + 1c4e: 9360 ld.w r3, (r3, 0x0) + 1c50: 9319 ld.w r0, (r3, 0x64) + 1c52: 3884 bclri r0, 4 + 1c54: 3885 bclri r0, 5 + 1c56: 6c10 or r0, r4 + 1c58: b319 st.w r0, (r3, 0x64) + 1c5a: 3010 movi r0, 16 + 1c5c: e3ffff36 bsr 0x1ac8 // 1ac8 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 1c60: 1491 pop r4, r15 + 1c62: 0000 bkpt + 1c64: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00001c68 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 1c68: 106c lrw r3, 0x2000005c // 1c98 + if(NewState != DISABLE) + 1c6a: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c6c: 9360 ld.w r3, (r3, 0x0) + 1c6e: 237f addi r3, 128 + if(NewState != DISABLE) + 1c70: 0c0a bf 0x1c84 // 1c84 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c72: 104b lrw r2, 0x78870000 // 1c9c + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c74: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c76: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c78: 4125 lsli r1, r1, 5 + 1c7a: 934d ld.w r2, (r3, 0x34) + 1c7c: 6884 and r2, r1 + 1c7e: 3a40 cmpnei r2, 0 + 1c80: 0ffd bf 0x1c7a // 1c7a + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 1c82: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1c84: 1047 lrw r2, 0x788755aa // 1ca0 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1c86: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1c88: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1c8a: 4125 lsli r1, r1, 5 + 1c8c: 934d ld.w r2, (r3, 0x34) + 1c8e: 6884 and r2, r1 + 1c90: 3a40 cmpnei r2, 0 + 1c92: 0bfd bt 0x1c8c // 1c8c + 1c94: 07f7 br 0x1c82 // 1c82 + 1c96: 0000 bkpt + 1c98: 2000005c .long 0x2000005c + 1c9c: 78870000 .long 0x78870000 + 1ca0: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00001ca4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 1ca4: 1064 lrw r3, 0x2000005c // 1cb4 + 1ca6: 32b4 movi r2, 180 + 1ca8: 9360 ld.w r3, (r3, 0x0) + 1caa: 237f addi r3, 128 + 1cac: 4257 lsli r2, r2, 23 + 1cae: b34e st.w r2, (r3, 0x38) +} + 1cb0: 783c jmp r15 + 1cb2: 0000 bkpt + 1cb4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00001cb8 : +//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; + 1cb8: 1044 lrw r2, 0x87780000 // 1cc8 + 1cba: 1065 lrw r3, 0x2000005c // 1ccc + 1cbc: 6c48 or r1, r2 + 1cbe: 9360 ld.w r3, (r3, 0x0) + 1cc0: 6c04 or r0, r1 + 1cc2: 237f addi r3, 128 + 1cc4: b30d st.w r0, (r3, 0x34) +} + 1cc6: 783c jmp r15 + 1cc8: 87780000 .long 0x87780000 + 1ccc: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00001cd0 : +//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) +{ + 1cd0: 14c3 push r4-r6 + 1cd2: 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; + 1cd4: 10c5 lrw r6, 0xb44b0000 // 1ce8 + 1cd6: 6d18 or r4, r6 + 1cd8: 6cd0 or r3, r4 + 1cda: 6c8c or r2, r3 + 1cdc: 6c48 or r1, r2 + 1cde: 10a4 lrw r5, 0x2000005c // 1cec + 1ce0: 6c04 or r0, r1 + 1ce2: 95a0 ld.w r5, (r5, 0x0) + 1ce4: b513 st.w r0, (r5, 0x4c) +} + 1ce6: 1483 pop r4-r6 + 1ce8: b44b0000 .long 0xb44b0000 + 1cec: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00001cf0 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 1cf0: 1066 lrw r3, 0x2000005c // 1d08 + 1cf2: 3180 movi r1, 128 + 1cf4: 9360 ld.w r3, (r3, 0x0) + 1cf6: 3280 movi r2, 128 + 1cf8: 604c addu r1, r3 + 1cfa: 4244 lsli r2, r2, 4 + 1cfc: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 1cfe: 935d ld.w r2, (r3, 0x74) + 1d00: 3aab bseti r2, 11 + 1d02: b35d st.w r2, (r3, 0x74) +} + 1d04: 783c jmp r15 + 1d06: 0000 bkpt + 1d08: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00001d0c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 1d0c: 1066 lrw r3, 0x2000005c // 1d24 + 1d0e: 3180 movi r1, 128 + 1d10: 9360 ld.w r3, (r3, 0x0) + 1d12: 3280 movi r2, 128 + 1d14: 604c addu r1, r3 + 1d16: 4241 lsli r2, r2, 1 + 1d18: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 1d1a: 935d ld.w r2, (r3, 0x74) + 1d1c: 3aa8 bseti r2, 8 + 1d1e: b35d st.w r2, (r3, 0x74) +} + 1d20: 783c jmp r15 + 1d22: 0000 bkpt + 1d24: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00001d28 : +//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) + 1d28: 3a40 cmpnei r2, 0 + 1d2a: 0c04 bf 0x1d32 // 1d32 + 1d2c: 3a41 cmpnei r2, 1 + 1d2e: 0c0e bf 0x1d4a // 1d4a + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 1d30: 783c jmp r15 + 1d32: 106d lrw r3, 0x2000005c // 1d64 + if(NewState != DISABLE) + 1d34: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 1d36: 9360 ld.w r3, (r3, 0x0) + 1d38: 237f addi r3, 128 + 1d3a: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 1d3c: 0c04 bf 0x1d44 // 1d44 + SYSCON->EXIRT |=EXIPIN; + 1d3e: 6c48 or r1, r2 + 1d40: b325 st.w r1, (r3, 0x14) + 1d42: 07f7 br 0x1d30 // 1d30 + SYSCON->EXIRT &=~EXIPIN; + 1d44: 6885 andn r2, r1 + 1d46: b345 st.w r2, (r3, 0x14) + 1d48: 07f4 br 0x1d30 // 1d30 + 1d4a: 1067 lrw r3, 0x2000005c // 1d64 + if(NewState != DISABLE) + 1d4c: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 1d4e: 9360 ld.w r3, (r3, 0x0) + 1d50: 237f addi r3, 128 + 1d52: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 1d54: 0c04 bf 0x1d5c // 1d5c + SYSCON->EXIFT |=EXIPIN; + 1d56: 6c48 or r1, r2 + 1d58: b326 st.w r1, (r3, 0x18) + 1d5a: 07eb br 0x1d30 // 1d30 + SYSCON->EXIFT &=~EXIPIN; + 1d5c: 6885 andn r2, r1 + 1d5e: b346 st.w r2, (r3, 0x18) +} + 1d60: 07e8 br 0x1d30 // 1d30 + 1d62: 0000 bkpt + 1d64: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00001d68 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d68: 106b lrw r3, 0x2000005c // 1d94 + 1d6a: 104c lrw r2, 0x3fff // 1d98 + 1d6c: 9360 ld.w r3, (r3, 0x0) + 1d6e: 237f addi r3, 128 + if(NewState != DISABLE) + 1d70: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d72: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 1d74: 0c0c bf 0x1d8c // 1d8c + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 1d76: 9347 ld.w r2, (r3, 0x1c) + 1d78: 6c84 or r2, r1 + 1d7a: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 1d7c: 9349 ld.w r2, (r3, 0x24) + 1d7e: 6884 and r2, r1 + 1d80: 3a40 cmpnei r2, 0 + 1d82: 0ffd bf 0x1d7c // 1d7c + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 1d84: 934b ld.w r2, (r3, 0x2c) + 1d86: 6c48 or r1, r2 + 1d88: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 1d8a: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 1d8c: 9348 ld.w r2, (r3, 0x20) + 1d8e: 6c48 or r1, r2 + 1d90: b328 st.w r1, (r3, 0x20) +} + 1d92: 07fc br 0x1d8a // 1d8a + 1d94: 2000005c .long 0x2000005c + 1d98: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00001d9c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 1d9c: b02b st.w r1, (r0, 0x2c) +} + 1d9e: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00001da0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 1da0: 3380 movi r3, 128 + 1da2: 4370 lsli r3, r3, 16 + 1da4: 1042 lrw r2, 0xe000e100 // 1dac + 1da6: b260 st.w r3, (r2, 0x0) +} + 1da8: 783c jmp r15 + 1daa: 0000 bkpt + 1dac: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00001db0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 1db0: 3202 movi r2, 2 + 1db2: 1062 lrw r3, 0xe000e100 // 1db8 + 1db4: b340 st.w r2, (r3, 0x0) +} + 1db6: 783c jmp r15 + 1db8: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +00001dbc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 1dbc: 3202 movi r2, 2 + 1dbe: 1062 lrw r3, 0xe000e180 // 1dc4 + 1dc0: b340 st.w r2, (r3, 0x0) +} + 1dc2: 783c jmp r15 + 1dc4: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_INT_Priority: + +00001dc8 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1dc8: 1066 lrw r3, 0xe000e400 // 1de0 + 1dca: 1047 lrw r2, 0xc0c0c0c0 // 1de4 + 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 + 1dcc: 1027 lrw r1, 0xc0c000c0 // 1de8 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1dce: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 1dd0: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 1dd2: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 1dd4: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 1dd6: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 1dd8: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 1dda: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 1ddc: b347 st.w r2, (r3, 0x1c) +} + 1dde: 783c jmp r15 + 1de0: e000e400 .long 0xe000e400 + 1de4: c0c0c0c0 .long 0xc0c0c0c0 + 1de8: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +00001dec : +//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) +{ + 1dec: 14c1 push r4 + 1dee: 4862 lsri r3, r0, 2 + 1df0: 4342 lsli r2, r3, 2 + 1df2: 106a lrw r3, 0x20000064 // 1e18 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 1df4: 3403 movi r4, 3 + 1df6: 9360 ld.w r3, (r3, 0x0) + 1df8: 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)); + 1e0a: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 1e0e: 7040 lsl r1, r0 + 1e10: 6c48 or r1, r2 + 1e12: b320 st.w r1, (r3, 0x0) +} + 1e14: 1481 pop r4 + 1e16: 0000 bkpt + 1e18: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +00001e1c : +//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) +{ + 1e1c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1e1e: 3907 cmphsi r1, 8 +{ + 1e20: 6d03 mov r4, r0 + if(PinNum<8) + 1e22: 0830 bt 0x1e82 // 1e82 + { + switch (PinNum) + 1e24: 5903 subi r0, r1, 1 + 1e26: 3806 cmphsi r0, 7 + 1e28: 0827 bt 0x1e76 // 1e76 + 1e2a: e3fff775 bsr 0xd14 // d14 <___gnu_csky_case_uqi> + 1e2e: 1004 .short 0x1004 + 1e30: 1d1a1613 .long 0x1d1a1613 + 1e34: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e36: 3300 movi r3, 0 + 1e38: 3104 movi r1, 4 + 1e3a: 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) + 1e3c: 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< + 1e52: 07f5 br 0x1e3c // 1e3c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e54: 310c movi r1, 12 + 1e56: 1166 lrw r3, 0xffff0fff // 1eec + 1e58: 07f2 br 0x1e3c // 1e3c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e5a: 3110 movi r1, 16 + 1e5c: 1165 lrw r3, 0xfff10000 // 1ef0 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e5e: 2b00 subi r3, 1 + 1e60: 07ee br 0x1e3c // 1e3c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e62: 3114 movi r1, 20 + 1e64: 1164 lrw r3, 0xff100000 // 1ef4 + 1e66: 07fc br 0x1e5e // 1e5e + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e68: 33f1 movi r3, 241 + 1e6a: 3118 movi r1, 24 + 1e6c: 4378 lsli r3, r3, 24 + 1e6e: 07f8 br 0x1e5e // 1e5e + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e70: 311c movi r1, 28 + 1e72: 1162 lrw r3, 0xfffffff // 1ef8 + 1e74: 07e4 br 0x1e3c // 1e3c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1e76: 3300 movi r3, 0 + 1e78: 3100 movi r1, 0 + 1e7a: 2b0f subi r3, 16 + 1e7c: 07e0 br 0x1e3c // 1e3c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1e82: 390f cmphsi r1, 16 + 1e84: 0be4 bt 0x1e4c // 1e4c + switch (PinNum) + 1e86: 2908 subi r1, 9 + 1e88: 3906 cmphsi r1, 7 + 1e8a: 6c07 mov r0, r1 + 1e8c: 0827 bt 0x1eda // 1eda + 1e8e: e3fff743 bsr 0xd14 // d14 <___gnu_csky_case_uqi> + 1e92: 1004 .short 0x1004 + 1e94: 1d1a1613 .long 0x1d1a1613 + 1e98: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e9a: 3300 movi r3, 0 + 1e9c: 3104 movi r1, 4 + 1e9e: 2bf0 subi r3, 241 + if (Dir) + 1ea0: 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; + 1eb2: 3108 movi r1, 8 + 1eb4: 106d lrw r3, 0xfffff0ff // 1ee8 + 1eb6: 07f5 br 0x1ea0 // 1ea0 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1eb8: 310c movi r1, 12 + 1eba: 106d lrw r3, 0xffff0fff // 1eec + 1ebc: 07f2 br 0x1ea0 // 1ea0 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1ebe: 3110 movi r1, 16 + 1ec0: 106c lrw r3, 0xfff10000 // 1ef0 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ec2: 2b00 subi r3, 1 + 1ec4: 07ee br 0x1ea0 // 1ea0 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1ec6: 3114 movi r1, 20 + 1ec8: 106b lrw r3, 0xff100000 // 1ef4 + 1eca: 07fc br 0x1ec2 // 1ec2 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ecc: 33f1 movi r3, 241 + 1ece: 3118 movi r1, 24 + 1ed0: 4378 lsli r3, r3, 24 + 1ed2: 07f8 br 0x1ec2 // 1ec2 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1ed4: 311c movi r1, 28 + 1ed6: 1069 lrw r3, 0xfffffff // 1ef8 + 1ed8: 07e4 br 0x1ea0 // 1ea0 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1eda: 3300 movi r3, 0 + 1edc: 3100 movi r1, 0 + 1ede: 2b0f subi r3, 16 + 1ee0: 07e0 br 0x1ea0 // 1ea0 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1ee6: 0000 bkpt + 1ee8: fffff0ff .long 0xfffff0ff + 1eec: ffff0fff .long 0xffff0fff + 1ef0: fff10000 .long 0xfff10000 + 1ef4: ff100000 .long 0xff100000 + 1ef8: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001efc : +//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)); + 1efc: 4121 lsli r1, r1, 1 + 1efe: 3203 movi r2, 3 + 1f00: 9068 ld.w r3, (r0, 0x20) + 1f02: 7084 lsl r2, r1 + 1f04: 68c9 andn r3, r2 + 1f06: 3201 movi r2, 1 + 1f08: 7084 lsl r2, r1 + 1f0a: 6cc8 or r3, r2 + 1f0c: b068 st.w r3, (r0, 0x20) +} + 1f0e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001f10 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1f10: 4121 lsli r1, r1, 1 + 1f12: 3301 movi r3, 1 + 1f14: 9049 ld.w r2, (r0, 0x24) + 1f16: 70c4 lsl r3, r1 + 1f18: 6cc8 or r3, r2 + 1f1a: b069 st.w r3, (r0, 0x24) +} + 1f1c: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001f20 : +//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) +{ + 1f20: 14c1 push r4 + 1f22: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1f24: 3a0f cmphsi r2, 16 + 1f26: 084f bt 0x1fc4 // 1fc4 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1f28: 6ccb mov r3, r2 + 1f2a: 3b83 bclri r3, 3 + 1f2c: 3b40 cmpnei r3, 0 + 1f2e: 0813 bt 0x1f54 // 1f54 + { + R_data_temp=0xfffffff0; + 1f30: 2b0f subi r3, 16 + 1f32: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1f34: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 1f36: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1f38: dc6e0003 st.b r3, (r14, 0x3) + 1f3c: 1176 lrw r3, 0x20000044 // 2014 + if(Selete_EXI_x<8) + 1f3e: 0c38 bf 0x1fae // 1fae + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 1f54: 3b41 cmpnei r3, 1 + 1f56: 0806 bt 0x1f62 // 1f62 + R_data_temp=0xffffff0f; + 1f58: 3300 movi r3, 0 + 1f5a: 2bf0 subi r3, 241 + 1f5c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1f5e: 3304 movi r3, 4 + 1f60: 07eb br 0x1f36 // 1f36 + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1f62: 3b42 cmpnei r3, 2 + 1f64: 0805 bt 0x1f6e // 1f6e + R_data_temp=0xfffff0ff; + 1f66: 116d lrw r3, 0xfffff0ff // 2018 + 1f68: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1f6a: 3308 movi r3, 8 + 1f6c: 07e5 br 0x1f36 // 1f36 + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 1f6e: 3b43 cmpnei r3, 3 + 1f70: 0805 bt 0x1f7a // 1f7a + R_data_temp=0xffff0fff; + 1f72: 116b lrw r3, 0xffff0fff // 201c + 1f74: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 1f76: 330c movi r3, 12 + 1f78: 07df br 0x1f36 // 1f36 + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 1f7a: 3b44 cmpnei r3, 4 + 1f7c: 0806 bt 0x1f88 // 1f88 + R_data_temp=0xfff0ffff; + 1f7e: 1169 lrw r3, 0xfff10000 // 2020 + 1f80: 2b00 subi r3, 1 + 1f82: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 1f84: 3310 movi r3, 16 + 1f86: 07d8 br 0x1f36 // 1f36 + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 1f88: 3b45 cmpnei r3, 5 + 1f8a: 0806 bt 0x1f96 // 1f96 + R_data_temp=0xff0fffff; + 1f8c: 1166 lrw r3, 0xff100000 // 2024 + 1f8e: 2b00 subi r3, 1 + 1f90: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 1f92: 3314 movi r3, 20 + 1f94: 07d1 br 0x1f36 // 1f36 + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 1f96: 3b46 cmpnei r3, 6 + 1f98: 0807 bt 0x1fa6 // 1fa6 + R_data_temp=0xf0ffffff; + 1f9a: 33f1 movi r3, 241 + 1f9c: 4378 lsli r3, r3, 24 + 1f9e: 2b00 subi r3, 1 + 1fa0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 1fa2: 3318 movi r3, 24 + 1fa4: 07c9 br 0x1f36 // 1f36 + R_data_temp=0x0fffffff; + 1fa6: 1161 lrw r3, 0xfffffff // 2028 + 1fa8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 1faa: 331c movi r3, 28 + 1fac: 07c5 br 0x1f36 // 1f36 + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 1fc0: 1402 addi r14, r14, 8 + 1fc2: 1481 pop r4 + else if(Selete_EXI_x<20) + 1fc4: 3a13 cmphsi r2, 20 + 1fc6: 0bfd bt 0x1fc0 // 1fc0 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 1fc8: 3840 cmpnei r0, 0 + 1fca: 0814 bt 0x1ff2 // 1ff2 + 1fcc: 3300 movi r3, 0 + 1fce: 2b0f subi r3, 16 + 1fd0: 60c8 addu r3, r2 + 1fd2: 3b01 cmphsi r3, 2 + 1fd4: 0bf6 bt 0x1fc0 // 1fc0 + if(Selete_EXI_x==16) + 1fd6: 3a50 cmpnei r2, 16 + 1fd8: 106f lrw r3, 0x20000044 // 2014 + 1fda: 0806 bt 0x1fe6 // 1fe6 + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 1fdc: 9340 ld.w r2, (r3, 0x0) + 1fde: 9262 ld.w r3, (r2, 0x8) + 1fe0: 6c4c or r1, r3 + 1fe2: b222 st.w r1, (r2, 0x8) + 1fe4: 07ee br 0x1fc0 // 1fc0 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 1fe6: 9360 ld.w r3, (r3, 0x0) + 1fe8: 9342 ld.w r2, (r3, 0x8) + 1fea: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 1fec: 6c48 or r1, r2 + 1fee: b322 st.w r1, (r3, 0x8) +} + 1ff0: 07e8 br 0x1fc0 // 1fc0 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 1ff2: 3842 cmpnei r0, 2 + 1ff4: 0be6 bt 0x1fc0 // 1fc0 + 1ff6: 3300 movi r3, 0 + 1ff8: 2b11 subi r3, 18 + 1ffa: 60c8 addu r3, r2 + 1ffc: 3b01 cmphsi r3, 2 + 1ffe: 0be1 bt 0x1fc0 // 1fc0 + 2000: 1065 lrw r3, 0x20000044 // 2014 + if(Selete_EXI_x==18) + 2002: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2004: 9360 ld.w r3, (r3, 0x0) + 2006: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 2008: 0803 bt 0x200e // 200e + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 200a: 4128 lsli r1, r1, 8 + 200c: 07f0 br 0x1fec // 1fec + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 200e: 412c lsli r1, r1, 12 + 2010: 07ee br 0x1fec // 1fec + 2012: 0000 bkpt + 2014: 20000044 .long 0x20000044 + 2018: fffff0ff .long 0xfffff0ff + 201c: ffff0fff .long 0xffff0fff + 2020: fff10000 .long 0xfff10000 + 2024: ff100000 .long 0xff100000 + 2028: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +0000202c : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 202c: 14d0 push r15 + switch (EXI_IO) + 202e: 380f cmphsi r0, 16 + 2030: 0812 bt 0x2054 // 2054 + 2032: 117d lrw r3, 0x2000004c // 2124 + 2034: e3fff670 bsr 0xd14 // d14 <___gnu_csky_case_uqi> + 2038: 1d150f08 .long 0x1d150f08 + 203c: 39322b24 .long 0x39322b24 + 2040: 544c463f .long 0x544c463f + 2044: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2048: 9340 ld.w r2, (r3, 0x0) + 204a: 9260 ld.w r3, (r2, 0x0) + 204c: 310f movi r1, 15 + 204e: 68c5 andn r3, r1 + 2050: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2052: b260 st.w r3, (r2, 0x0) + 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; + } +} + 2054: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2056: 9340 ld.w r2, (r3, 0x0) + 2058: 9260 ld.w r3, (r2, 0x0) + 205a: 31f0 movi r1, 240 + 205c: 68c5 andn r3, r1 + 205e: 3ba4 bseti r3, 4 + 2060: 07f9 br 0x2052 // 2052 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 2062: 9320 ld.w r1, (r3, 0x0) + 2064: 32f0 movi r2, 240 + 2066: 9160 ld.w r3, (r1, 0x0) + 2068: 4244 lsli r2, r2, 4 + 206a: 68c9 andn r3, r2 + 206c: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 206e: b160 st.w r3, (r1, 0x0) + 2070: 07f2 br 0x2054 // 2054 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 2072: 9320 ld.w r1, (r3, 0x0) + 2074: 32f0 movi r2, 240 + 2076: 9160 ld.w r3, (r1, 0x0) + 2078: 4248 lsli r2, r2, 8 + 207a: 68c9 andn r3, r2 + 207c: 3bac bseti r3, 12 + 207e: 07f8 br 0x206e // 206e + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 2080: 9320 ld.w r1, (r3, 0x0) + 2082: 32f0 movi r2, 240 + 2084: 9160 ld.w r3, (r1, 0x0) + 2086: 424c lsli r2, r2, 12 + 2088: 68c9 andn r3, r2 + 208a: 3bb0 bseti r3, 16 + 208c: 07f1 br 0x206e // 206e + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 208e: 9320 ld.w r1, (r3, 0x0) + 2090: 32f0 movi r2, 240 + 2092: 9160 ld.w r3, (r1, 0x0) + 2094: 4250 lsli r2, r2, 16 + 2096: 68c9 andn r3, r2 + 2098: 3bb4 bseti r3, 20 + 209a: 07ea br 0x206e // 206e + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 209c: 9320 ld.w r1, (r3, 0x0) + 209e: 32f0 movi r2, 240 + 20a0: 9160 ld.w r3, (r1, 0x0) + 20a2: 4254 lsli r2, r2, 20 + 20a4: 68c9 andn r3, r2 + 20a6: 3bb8 bseti r3, 24 + 20a8: 07e3 br 0x206e // 206e + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 20aa: 9340 ld.w r2, (r3, 0x0) + 20ac: 9260 ld.w r3, (r2, 0x0) + 20ae: 4364 lsli r3, r3, 4 + 20b0: 4b64 lsri r3, r3, 4 + 20b2: 3bbc bseti r3, 28 + 20b4: 07cf br 0x2052 // 2052 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 20b6: 9340 ld.w r2, (r3, 0x0) + 20b8: 9261 ld.w r3, (r2, 0x4) + 20ba: 310f movi r1, 15 + 20bc: 68c5 andn r3, r1 + 20be: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 20c0: b261 st.w r3, (r2, 0x4) +} + 20c2: 07c9 br 0x2054 // 2054 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 20c4: 9340 ld.w r2, (r3, 0x0) + 20c6: 9261 ld.w r3, (r2, 0x4) + 20c8: 31f0 movi r1, 240 + 20ca: 68c5 andn r3, r1 + 20cc: 3ba4 bseti r3, 4 + 20ce: 07f9 br 0x20c0 // 20c0 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 20d0: 9320 ld.w r1, (r3, 0x0) + 20d2: 32f0 movi r2, 240 + 20d4: 9161 ld.w r3, (r1, 0x4) + 20d6: 4244 lsli r2, r2, 4 + 20d8: 68c9 andn r3, r2 + 20da: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 20dc: b161 st.w r3, (r1, 0x4) + 20de: 07bb br 0x2054 // 2054 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 20e0: 9320 ld.w r1, (r3, 0x0) + 20e2: 32f0 movi r2, 240 + 20e4: 9161 ld.w r3, (r1, 0x4) + 20e6: 4248 lsli r2, r2, 8 + 20e8: 68c9 andn r3, r2 + 20ea: 3bac bseti r3, 12 + 20ec: 07f8 br 0x20dc // 20dc + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 20ee: 9320 ld.w r1, (r3, 0x0) + 20f0: 32f0 movi r2, 240 + 20f2: 9161 ld.w r3, (r1, 0x4) + 20f4: 424c lsli r2, r2, 12 + 20f6: 68c9 andn r3, r2 + 20f8: 3bb0 bseti r3, 16 + 20fa: 07f1 br 0x20dc // 20dc + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 20fc: 9320 ld.w r1, (r3, 0x0) + 20fe: 32f0 movi r2, 240 + 2100: 9161 ld.w r3, (r1, 0x4) + 2102: 4250 lsli r2, r2, 16 + 2104: 68c9 andn r3, r2 + 2106: 3bb4 bseti r3, 20 + 2108: 07ea br 0x20dc // 20dc + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 210a: 9320 ld.w r1, (r3, 0x0) + 210c: 32f0 movi r2, 240 + 210e: 9161 ld.w r3, (r1, 0x4) + 2110: 4254 lsli r2, r2, 20 + 2112: 68c9 andn r3, r2 + 2114: 3bb8 bseti r3, 24 + 2116: 07e3 br 0x20dc // 20dc + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 2118: 9340 ld.w r2, (r3, 0x0) + 211a: 9261 ld.w r3, (r2, 0x4) + 211c: 4364 lsli r3, r3, 4 + 211e: 4b64 lsri r3, r3, 4 + 2120: 3bbc bseti r3, 28 + 2122: 07cf br 0x20c0 // 20c0 + 2124: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +00002128 : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 2138: 9045 ld.w r2, (r0, 0x14) + 213a: 3301 movi r3, 1 + 213c: 7085 lsr r2, r1 + 213e: 688c and r2, r3 + { + if (dat==1) + 2140: 3a40 cmpnei r2, 0 + 2142: 70c4 lsl r3, r1 + 2144: 0c03 bf 0x214a // 214a + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +0000214e : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 2160: 1064 lrw r3, 0x20000014 // 2170 + 2162: 9340 ld.w r2, (r3, 0x0) + 2164: 9261 ld.w r3, (r2, 0x4) + 2166: 3bac bseti r3, 12 + 2168: 3bae bseti r3, 14 + 216a: b261 st.w r3, (r2, 0x4) +} + 216c: 783c jmp r15 + 216e: 0000 bkpt + 2170: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002174 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2174: 1063 lrw r3, 0x20000010 // 2180 + 2176: 9360 ld.w r3, (r3, 0x0) + 2178: 9340 ld.w r2, (r3, 0x0) + 217a: 6c08 or r0, r2 + 217c: b300 st.w r0, (r3, 0x0) +} + 217e: 783c jmp r15 + 2180: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2184: 3300 movi r3, 0 + 2186: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 2188: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 218a: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 218c: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 218e: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2190: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2192: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2194: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 2196: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 2198: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 219a: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 219c: b06d st.w r3, (r0, 0x34) +} + 219e: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000021a0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 21a0: 9060 ld.w r3, (r0, 0x0) + 21a2: 3ba0 bseti r3, 0 + 21a4: b060 st.w r3, (r0, 0x0) +} + 21a6: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000021a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 21a8: 9060 ld.w r3, (r0, 0x0) + 21aa: 3bac bseti r3, 12 + 21ac: 3bae bseti r3, 14 + 21ae: b060 st.w r3, (r0, 0x0) +} + 21b0: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000021b2 : +//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) +{ + 21b2: 14c3 push r4-r6 + 21b4: 98a4 ld.w r5, (r14, 0x10) + 21b6: 6d97 mov r6, r5 + 21b8: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 21ba: 6d18 or r4, r6 + 21bc: 6cd0 or r3, r4 + 21be: 90a1 ld.w r5, (r0, 0x4) + 21c0: 6c4c or r1, r3 + 21c2: 6c54 or r1, r5 + 21c4: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 21c6: b042 st.w r2, (r0, 0x8) +} + 21c8: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000021ca : +//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) +{ + 21ca: 14c4 push r4-r7 + 21cc: 1421 subi r14, r14, 4 + 21ce: 9885 ld.w r4, (r14, 0x14) + 21d0: 6dd3 mov r7, r4 + 21d2: 9886 ld.w r4, (r14, 0x18) + 21d4: b880 st.w r4, (r14, 0x0) + 21d6: 9887 ld.w r4, (r14, 0x1c) + 21d8: 6d93 mov r6, r4 + 21da: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 21dc: 6d58 or r5, r6 + 21de: 98c0 ld.w r6, (r14, 0x0) + 21e0: 6d58 or r5, r6 + 21e2: 6d5c or r5, r7 + 21e4: 6cd4 or r3, r5 + 21e6: 6c8c or r2, r3 + 21e8: 9081 ld.w r4, (r0, 0x4) + 21ea: 6c48 or r1, r2 + 21ec: 6d04 or r4, r1 + 21ee: 6d9f mov r6, r7 + 21f0: b081 st.w r4, (r0, 0x4) +} + 21f2: 1401 addi r14, r14, 4 + 21f4: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +000021f6 : +//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; + 21f6: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 21f8: b044 st.w r2, (r0, 0x10) +} + 21fa: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +000021fc : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 21fc: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 21fe: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 2200: 0c04 bf 0x2208 // 2208 + BTx->IMCR |= BT_IMSCR_X; + 2202: 6c8c or r2, r3 + 2204: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 2206: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 2208: 68c9 andn r3, r2 + 220a: b06b st.w r3, (r0, 0x2c) +} + 220c: 07fd br 0x2206 // 2206 + +Disassembly of section .text.BT1_INT_ENABLE: + +00002210 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 2210: 3380 movi r3, 128 + 2212: 4376 lsli r3, r3, 22 + 2214: 1042 lrw r2, 0xe000e100 // 221c + 2216: b260 st.w r3, (r2, 0x0) +} + 2218: 783c jmp r15 + 221a: 0000 bkpt + 221c: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +00002220 : +//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) + 2220: 3840 cmpnei r0, 0 + 2222: 080a bt 0x2236 // 2236 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 2224: 1165 lrw r3, 0x20000048 // 22b8 + 2226: 31f0 movi r1, 240 + 2228: 9340 ld.w r2, (r3, 0x0) + 222a: 9260 ld.w r3, (r2, 0x0) + 222c: 68c5 andn r3, r1 + 222e: 3ba4 bseti r3, 4 + 2230: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 2232: b260 st.w r3, (r2, 0x0) + } +} + 2234: 040b br 0x224a // 224a + if(IONAME==GPT_CHA_PA09) + 2236: 3841 cmpnei r0, 1 + 2238: 080a bt 0x224c // 224c + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 223a: 1161 lrw r3, 0x2000004c // 22bc + 223c: 31f0 movi r1, 240 + 223e: 9340 ld.w r2, (r3, 0x0) + 2240: 9261 ld.w r3, (r2, 0x4) + 2242: 68c5 andn r3, r1 + 2244: 3ba4 bseti r3, 4 + 2246: 3ba6 bseti r3, 6 + 2248: b261 st.w r3, (r2, 0x4) +} + 224a: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 224c: 3842 cmpnei r0, 2 + 224e: 080b bt 0x2264 // 2264 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 2250: 107b lrw r3, 0x2000004c // 22bc + 2252: 32f0 movi r2, 240 + 2254: 9320 ld.w r1, (r3, 0x0) + 2256: 9161 ld.w r3, (r1, 0x4) + 2258: 4244 lsli r2, r2, 4 + 225a: 68c9 andn r3, r2 + 225c: 3ba9 bseti r3, 9 + 225e: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 2260: b161 st.w r3, (r1, 0x4) + 2262: 07f4 br 0x224a // 224a + if(IONAME==GPT_CHB_PA010) + 2264: 3843 cmpnei r0, 3 + 2266: 080b bt 0x227c // 227c + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 2268: 1075 lrw r3, 0x2000004c // 22bc + 226a: 32f0 movi r2, 240 + 226c: 9320 ld.w r1, (r3, 0x0) + 226e: 4244 lsli r2, r2, 4 + 2270: 9161 ld.w r3, (r1, 0x4) + 2272: 68c9 andn r3, r2 + 2274: 32e0 movi r2, 224 + 2276: 4243 lsli r2, r2, 3 + 2278: 6cc8 or r3, r2 + 227a: 07f3 br 0x2260 // 2260 + if(IONAME==GPT_CHB_PA011) + 227c: 3844 cmpnei r0, 4 + 227e: 080a bt 0x2292 // 2292 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 2280: 106f lrw r3, 0x2000004c // 22bc + 2282: 32f0 movi r2, 240 + 2284: 9320 ld.w r1, (r3, 0x0) + 2286: 9161 ld.w r3, (r1, 0x4) + 2288: 4248 lsli r2, r2, 8 + 228a: 68c9 andn r3, r2 + 228c: 3bad bseti r3, 13 + 228e: 3bae bseti r3, 14 + 2290: 07e8 br 0x2260 // 2260 + if(IONAME==GPT_CHB_PB00) + 2292: 3845 cmpnei r0, 5 + 2294: 0808 bt 0x22a4 // 22a4 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 2296: 1069 lrw r3, 0x20000048 // 22b8 + 2298: 310f movi r1, 15 + 229a: 9340 ld.w r2, (r3, 0x0) + 229c: 9260 ld.w r3, (r2, 0x0) + 229e: 68c5 andn r3, r1 + 22a0: 3ba2 bseti r3, 2 + 22a2: 07c8 br 0x2232 // 2232 + if(IONAME==GPT_CHB_PB01) + 22a4: 3846 cmpnei r0, 6 + 22a6: 0bd2 bt 0x224a // 224a + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 22a8: 1064 lrw r3, 0x20000048 // 22b8 + 22aa: 31f0 movi r1, 240 + 22ac: 9340 ld.w r2, (r3, 0x0) + 22ae: 9260 ld.w r3, (r2, 0x0) + 22b0: 68c5 andn r3, r1 + 22b2: 3ba5 bseti r3, 5 + 22b4: 3ba6 bseti r3, 6 + 22b6: 07be br 0x2232 // 2232 + 22b8: 20000048 .long 0x20000048 + 22bc: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +000022c0 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 22c0: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 22c2: 6c48 or r1, r2 + 22c4: 1083 lrw r4, 0x20000024 // 22d0 + 22c6: 6c04 or r0, r1 + 22c8: 9480 ld.w r4, (r4, 0x0) + 22ca: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 22cc: b462 st.w r3, (r4, 0x8) +} + 22ce: 1481 pop r4 + 22d0: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +000022d4 : +/*************************************************************/ +//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) +{ + 22d4: 14c4 push r4-r7 + 22d6: 1423 subi r14, r14, 12 + 22d8: 9887 ld.w r4, (r14, 0x1c) + 22da: 6dd3 mov r7, r4 + 22dc: 9888 ld.w r4, (r14, 0x20) + 22de: b880 st.w r4, (r14, 0x0) + 22e0: 9889 ld.w r4, (r14, 0x24) + 22e2: b881 st.w r4, (r14, 0x4) + 22e4: 988a ld.w r4, (r14, 0x28) + 22e6: b882 st.w r4, (r14, 0x8) + 22e8: 988b ld.w r4, (r14, 0x2c) + 22ea: 6d93 mov r6, r4 + 22ec: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 22ee: 3cb2 bseti r4, 18 + 22f0: 6d18 or r4, r6 + 22f2: 98c2 ld.w r6, (r14, 0x8) + 22f4: 6d18 or r4, r6 + 22f6: 98c1 ld.w r6, (r14, 0x4) + 22f8: 6d18 or r4, r6 + 22fa: 98c0 ld.w r6, (r14, 0x0) + 22fc: 6d18 or r4, r6 + 22fe: 6d1c or r4, r7 + 2300: 6cd0 or r3, r4 + 2302: 6c8c or r2, r3 + 2304: 6c48 or r1, r2 + 2306: 10a4 lrw r5, 0x20000024 // 2314 + 2308: 6c04 or r0, r1 + 230a: 95a0 ld.w r5, (r5, 0x0) + 230c: 6d9f mov r6, r7 + 230e: b503 st.w r0, (r5, 0xc) +} + 2310: 1403 addi r14, r14, 12 + 2312: 1484 pop r4-r7 + 2314: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +00002318 : +//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) +{ + 2318: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 231a: 6c8c or r2, r3 + 231c: 6c48 or r1, r2 + 231e: 1083 lrw r4, 0x20000024 // 2328 + 2320: 6c04 or r0, r1 + 2322: 9480 ld.w r4, (r4, 0x0) + 2324: b411 st.w r0, (r4, 0x44) +} + 2326: 1481 pop r4 + 2328: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +0000232c : +//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) +{ + 232c: 14c4 push r4-r7 + 232e: 1425 subi r14, r14, 20 + 2330: 1c09 addi r4, r14, 36 + 2332: 8480 ld.b r4, (r4, 0x0) + 2334: b880 st.w r4, (r14, 0x0) + 2336: 1c0a addi r4, r14, 40 + 2338: 8480 ld.b r4, (r4, 0x0) + 233a: b881 st.w r4, (r14, 0x4) + 233c: 1c0b addi r4, r14, 44 + 233e: 8480 ld.b r4, (r4, 0x0) + 2340: b882 st.w r4, (r14, 0x8) + 2342: 1c0c addi r4, r14, 48 + 2344: 8480 ld.b r4, (r4, 0x0) + 2346: b883 st.w r4, (r14, 0xc) + 2348: 1c0d addi r4, r14, 52 + 234a: 8480 ld.b r4, (r4, 0x0) + 234c: 1e10 addi r6, r14, 64 + 234e: b884 st.w r4, (r14, 0x10) + 2350: 1d0f addi r5, r14, 60 + 2352: 1c0e addi r4, r14, 56 + 2354: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 2356: 3840 cmpnei r0, 0 +{ + 2358: 1e11 addi r6, r14, 68 + 235a: 8480 ld.b r4, (r4, 0x0) + 235c: 85a0 ld.b r5, (r5, 0x0) + 235e: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 2360: 081f bt 0x239e // 239e + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 2362: 47f0 lsli r7, r7, 16 + 2364: 46d2 lsli r6, r6, 18 + 2366: 45ae lsli r5, r5, 14 + 2368: 6dd8 or r7, r6 + 236a: 6dd4 or r7, r5 + 236c: 448c lsli r4, r4, 12 + 236e: 6dd0 or r7, r4 + 2370: 9884 ld.w r4, (r14, 0x10) + 2372: 448a lsli r4, r4, 10 + 2374: 6dd0 or r7, r4 + 2376: 9883 ld.w r4, (r14, 0xc) + 2378: 4488 lsli r4, r4, 8 + 237a: 98a2 ld.w r5, (r14, 0x8) + 237c: 6d1c or r4, r7 + 237e: 45e6 lsli r7, r5, 6 + 2380: 6d1c or r4, r7 + 2382: 6c90 or r2, r4 + 2384: 6cc8 or r3, r2 + 2386: 9841 ld.w r2, (r14, 0x4) + 2388: 4244 lsli r2, r2, 4 + 238a: 6cc8 or r3, r2 + 238c: 6c4c or r1, r3 + 238e: 9860 ld.w r3, (r14, 0x0) + 2390: 4362 lsli r3, r3, 2 + 2392: 1013 lrw r0, 0x20000024 // 23dc + 2394: 6c4c or r1, r3 + 2396: 9000 ld.w r0, (r0, 0x0) + 2398: 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); + } +} + 239a: 1405 addi r14, r14, 20 + 239c: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 239e: 3841 cmpnei r0, 1 + 23a0: 0bfd bt 0x239a // 239a + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 23a2: 47f0 lsli r7, r7, 16 + 23a4: 46d2 lsli r6, r6, 18 + 23a6: 45ae lsli r5, r5, 14 + 23a8: 6dd8 or r7, r6 + 23aa: 6dd4 or r7, r5 + 23ac: 448c lsli r4, r4, 12 + 23ae: 6dd0 or r7, r4 + 23b0: 9884 ld.w r4, (r14, 0x10) + 23b2: 448a lsli r4, r4, 10 + 23b4: 6dd0 or r7, r4 + 23b6: 9883 ld.w r4, (r14, 0xc) + 23b8: 4488 lsli r4, r4, 8 + 23ba: 98a2 ld.w r5, (r14, 0x8) + 23bc: 6d1c or r4, r7 + 23be: 45e6 lsli r7, r5, 6 + 23c0: 6d1c or r4, r7 + 23c2: 6c90 or r2, r4 + 23c4: 6cc8 or r3, r2 + 23c6: 9841 ld.w r2, (r14, 0x4) + 23c8: 4244 lsli r2, r2, 4 + 23ca: 6cc8 or r3, r2 + 23cc: 6c4c or r1, r3 + 23ce: 9860 ld.w r3, (r14, 0x0) + 23d0: 4362 lsli r3, r3, 2 + 23d2: 1003 lrw r0, 0x20000024 // 23dc + 23d4: 6c4c or r1, r3 + 23d6: 9000 ld.w r0, (r0, 0x0) + 23d8: b033 st.w r1, (r0, 0x4c) +} + 23da: 07e0 br 0x239a // 239a + 23dc: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +000023e0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 23e0: 1063 lrw r3, 0x20000024 // 23ec + 23e2: 9340 ld.w r2, (r3, 0x0) + 23e4: 9261 ld.w r3, (r2, 0x4) + 23e6: 3ba0 bseti r3, 0 + 23e8: b261 st.w r3, (r2, 0x4) +} + 23ea: 783c jmp r15 + 23ec: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +000023f0 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 23f0: 1063 lrw r3, 0x20000024 // 23fc + 23f2: 9360 ld.w r3, (r3, 0x0) + 23f4: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 23f6: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 23f8: b34c st.w r2, (r3, 0x30) +} + 23fa: 783c jmp r15 + 23fc: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +00002400 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 2400: 1066 lrw r3, 0x20000024 // 2418 + if (NewState != DISABLE) + 2402: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 2404: 9360 ld.w r3, (r3, 0x0) + 2406: 237f addi r3, 128 + 2408: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 240a: 0c04 bf 0x2412 // 2412 + GPT0->IMCR |= GPT_IMSCR_X; + 240c: 6c48 or r1, r2 + 240e: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 2410: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 2412: 6885 andn r2, r1 + 2414: b356 st.w r2, (r3, 0x58) +} + 2416: 07fd br 0x2410 // 2410 + 2418: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +0000241c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 241c: 1065 lrw r3, 0x20000040 // 2430 + 241e: 3200 movi r2, 0 + 2420: 9360 ld.w r3, (r3, 0x0) + 2422: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 2424: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 2426: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 2428: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 242a: b344 st.w r2, (r3, 0x10) +} + 242c: 783c jmp r15 + 242e: 0000 bkpt + 2430: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00002434 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 2434: 1065 lrw r3, 0x2000003c // 2448 + 2436: 3200 movi r2, 0 + 2438: 9360 ld.w r3, (r3, 0x0) + 243a: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 243c: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 243e: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 2440: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 2442: b344 st.w r2, (r3, 0x10) +} + 2444: 783c jmp r15 + 2446: 0000 bkpt + 2448: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +0000244c : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 244c: 1065 lrw r3, 0x20000038 // 2460 + 244e: 3200 movi r2, 0 + 2450: 9360 ld.w r3, (r3, 0x0) + 2452: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 2454: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 2456: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 2458: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 245a: b344 st.w r2, (r3, 0x10) +} + 245c: 783c jmp r15 + 245e: 0000 bkpt + 2460: 20000038 .long 0x20000038 + +Disassembly of section .text.UART1_Int_Enable: + +00002464 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 2464: 1065 lrw r3, 0x2000003c // 2478 + 2466: 320f movi r2, 15 + 2468: 9360 ld.w r3, (r3, 0x0) + 246a: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 246c: 3380 movi r3, 128 + 246e: 4367 lsli r3, r3, 7 + 2470: 1043 lrw r2, 0xe000e100 // 247c + 2472: b260 st.w r3, (r2, 0x0) +} + 2474: 783c jmp r15 + 2476: 0000 bkpt + 2478: 2000003c .long 0x2000003c + 247c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002480 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2480: 1065 lrw r3, 0x20000038 // 2494 + 2482: 320f movi r2, 15 + 2484: 9360 ld.w r3, (r3, 0x0) + 2486: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2488: 3380 movi r3, 128 + 248a: 4368 lsli r3, r3, 8 + 248c: 1043 lrw r2, 0xe000e100 // 2498 + 248e: b260 st.w r3, (r2, 0x0) +} + 2490: 783c jmp r15 + 2492: 0000 bkpt + 2494: 20000038 .long 0x20000038 + 2498: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000249c : +//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) + 249c: 3840 cmpnei r0, 0 + 249e: 0821 bt 0x24e0 // 24e0 + { + if(UART_IO_G==0) + 24a0: 3940 cmpnei r1, 0 + 24a2: 080a bt 0x24b6 // 24b6 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 24a4: 1177 lrw r3, 0x2000004c // 2580 + 24a6: 31ff movi r1, 255 + 24a8: 9340 ld.w r2, (r3, 0x0) + 24aa: 9260 ld.w r3, (r2, 0x0) + 24ac: 68c5 andn r3, r1 + 24ae: 3ba2 bseti r3, 2 + 24b0: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 24b2: b260 st.w r3, (r2, 0x0) + 24b4: 0415 br 0x24de // 24de + else if(UART_IO_G==1) + 24b6: 3941 cmpnei r1, 1 + 24b8: 0813 bt 0x24de // 24de + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 24ba: 1172 lrw r3, 0x2000004c // 2580 + 24bc: 31f0 movi r1, 240 + 24be: 9340 ld.w r2, (r3, 0x0) + 24c0: 9260 ld.w r3, (r2, 0x0) + 24c2: 4130 lsli r1, r1, 16 + 24c4: 68c5 andn r3, r1 + 24c6: 31e0 movi r1, 224 + 24c8: 412f lsli r1, r1, 15 + 24ca: 6cc4 or r3, r1 + 24cc: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 24ce: 31f0 movi r1, 240 + 24d0: 9261 ld.w r3, (r2, 0x4) + 24d2: 412c lsli r1, r1, 12 + 24d4: 68c5 andn r3, r1 + 24d6: 31e0 movi r1, 224 + 24d8: 412b lsli r1, r1, 11 + 24da: 6cc4 or r3, r1 + 24dc: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 24de: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 24e0: 3841 cmpnei r0, 1 + 24e2: 082d bt 0x253c // 253c + if(UART_IO_G==0) + 24e4: 3940 cmpnei r1, 0 + 24e6: 0814 bt 0x250e // 250e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 24e8: 1167 lrw r3, 0x20000048 // 2584 + 24ea: 310f movi r1, 15 + 24ec: 9340 ld.w r2, (r3, 0x0) + 24ee: 9260 ld.w r3, (r2, 0x0) + 24f0: 68c5 andn r3, r1 + 24f2: 3107 movi r1, 7 + 24f4: 6cc4 or r3, r1 + 24f6: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 24f8: 32f0 movi r2, 240 + 24fa: 1162 lrw r3, 0x2000004c // 2580 + 24fc: 4250 lsli r2, r2, 16 + 24fe: 9320 ld.w r1, (r3, 0x0) + 2500: 9161 ld.w r3, (r1, 0x4) + 2502: 68c9 andn r3, r2 + 2504: 32e0 movi r2, 224 + 2506: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2508: 6cc8 or r3, r2 + 250a: b161 st.w r3, (r1, 0x4) + 250c: 07e9 br 0x24de // 24de + else if(UART_IO_G==1) + 250e: 3941 cmpnei r1, 1 + 2510: 080c bt 0x2528 // 2528 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 2512: 107c lrw r3, 0x2000004c // 2580 + 2514: 32ff movi r2, 255 + 2516: 9320 ld.w r1, (r3, 0x0) + 2518: 424c lsli r2, r2, 12 + 251a: 9160 ld.w r3, (r1, 0x0) + 251c: 68c9 andn r3, r2 + 251e: 32ee movi r2, 238 + 2520: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2522: 6cc8 or r3, r2 + 2524: b160 st.w r3, (r1, 0x0) +} + 2526: 07dc br 0x24de // 24de + else if(UART_IO_G==2) + 2528: 3942 cmpnei r1, 2 + 252a: 0bda bt 0x24de // 24de + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 252c: 1075 lrw r3, 0x2000004c // 2580 + 252e: 32ee movi r2, 238 + 2530: 9320 ld.w r1, (r3, 0x0) + 2532: 9161 ld.w r3, (r1, 0x4) + 2534: 4368 lsli r3, r3, 8 + 2536: 4b68 lsri r3, r3, 8 + 2538: 4257 lsli r2, r2, 23 + 253a: 07e7 br 0x2508 // 2508 + if (IO_UART_NUM==IO_UART2) + 253c: 3842 cmpnei r0, 2 + 253e: 0bd0 bt 0x24de // 24de + if(UART_IO_G==0) + 2540: 3940 cmpnei r1, 0 + 2542: 0809 bt 0x2554 // 2554 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2544: 106f lrw r3, 0x2000004c // 2580 + 2546: 31ff movi r1, 255 + 2548: 9340 ld.w r2, (r3, 0x0) + 254a: 9260 ld.w r3, (r2, 0x0) + 254c: 68c5 andn r3, r1 + 254e: 3177 movi r1, 119 + 2550: 6cc4 or r3, r1 + 2552: 07b0 br 0x24b2 // 24b2 + else if(UART_IO_G==1) + 2554: 3941 cmpnei r1, 1 + 2556: 0809 bt 0x2568 // 2568 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 2558: 106a lrw r3, 0x2000004c // 2580 + 255a: 32ee movi r2, 238 + 255c: 9320 ld.w r1, (r3, 0x0) + 255e: 9160 ld.w r3, (r1, 0x0) + 2560: 4368 lsli r3, r3, 8 + 2562: 4b68 lsri r3, r3, 8 + 2564: 4257 lsli r2, r2, 23 + 2566: 07de br 0x2522 // 2522 + else if(UART_IO_G==2) + 2568: 3942 cmpnei r1, 2 + 256a: 0bba bt 0x24de // 24de + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 256c: 1066 lrw r3, 0x20000048 // 2584 + 256e: 32ff movi r2, 255 + 2570: 9320 ld.w r1, (r3, 0x0) + 2572: 4250 lsli r2, r2, 16 + 2574: 9160 ld.w r3, (r1, 0x0) + 2576: 68c9 andn r3, r2 + 2578: 32cc movi r2, 204 + 257a: 424f lsli r2, r2, 15 + 257c: 07d3 br 0x2522 // 2522 + 257e: 0000 bkpt + 2580: 2000004c .long 0x2000004c + 2584: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002588 : +//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); + 2588: 1063 lrw r3, 0x8000f // 2594 + 258a: 6c8c or r2, r3 + 258c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 258e: b024 st.w r1, (r0, 0x10) +} + 2590: 783c jmp r15 + 2592: 0000 bkpt + 2594: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002598 : +//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) +{ + 2598: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 259a: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 259c: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 259e: 5b85 subu r4, r3, r1 + 25a0: 6490 cmphs r4, r2 + 25a2: 0c02 bf 0x25a6 // 25a6 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 25a4: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 25a6: 8380 ld.b r4, (r3, 0x0) + 25a8: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 25aa: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 25ac: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 25ae: 3c40 cmpnei r4, 0 + 25b0: 0bfd bt 0x25aa // 25aa + 25b2: 2300 addi r3, 1 + 25b4: 07f5 br 0x259e // 259e + +Disassembly of section .text.EPT_Stop: + +000025b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 25b8: 1068 lrw r3, 0x20000020 // 25d8 + 25ba: 3280 movi r2, 128 + 25bc: 9360 ld.w r3, (r3, 0x0) + 25be: 608c addu r2, r3 + 25c0: 1027 lrw r1, 0xa55ac73a // 25dc + 25c2: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 25c4: 9341 ld.w r2, (r3, 0x4) + 25c6: 31fe movi r1, 254 + 25c8: 6884 and r2, r1 + 25ca: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 25cc: 3101 movi r1, 1 + 25ce: 9341 ld.w r2, (r3, 0x4) + 25d0: 6884 and r2, r1 + 25d2: 3a40 cmpnei r2, 0 + 25d4: 0bfd bt 0x25ce // 25ce +} + 25d6: 783c jmp r15 + 25d8: 20000020 .long 0x20000020 + 25dc: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +000025e0 : + 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) +{ + 25e0: 14c4 push r4-r7 + 25e2: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 25e4: 1165 lrw r3, 0x20000060 // 2678 + 25e6: 1186 lrw r4, 0x5a5a5a5a // 267c + 25e8: 9360 ld.w r3, (r3, 0x0) + 25ea: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 25ec: 3407 movi r4, 7 + 25ee: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 25f0: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 25f2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 25f4: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 25f6: 9384 ld.w r4, (r3, 0x10) + 25f8: 3c40 cmpnei r4, 0 + 25fa: 0bfe bt 0x25f6 // 25f6 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 25fc: 2102 addi r1, 3 + 25fe: 4922 lsri r1, r1, 2 + 2600: 4122 lsli r1, r1, 2 + 2602: 6048 addu r1, r2 + 2604: b820 st.w r1, (r14, 0x0) + 2606: 5829 subu r1, r0, r2 + 2608: b821 st.w r1, (r14, 0x4) + 260a: 9820 ld.w r1, (r14, 0x0) + 260c: 644a cmpne r2, r1 + 260e: 0826 bt 0x265a // 265a + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2610: 3106 movi r1, 6 + SetUserKey; + 2612: 105b lrw r2, 0x5a5a5a5a // 267c + 2614: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2616: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2618: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 261a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 261c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 261e: 9324 ld.w r1, (r3, 0x10) + 2620: 3940 cmpnei r1, 0 + 2622: 0bfe bt 0x261e // 261e + //Perform pre-programming 4 + SetUserKey; + 2624: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2626: 3201 movi r2, 1 + 2628: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 262a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 262c: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 262e: 934a ld.w r2, (r3, 0x28) + 2630: 3a44 cmpnei r2, 4 + 2632: 0bfe bt 0x262e // 262e + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2634: 3102 movi r1, 2 + SetUserKey; + 2636: 1052 lrw r2, 0x5a5a5a5a // 267c + 2638: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 263a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 263c: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 263e: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2640: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2642: 932a ld.w r1, (r3, 0x28) + 2644: 3941 cmpnei r1, 1 + 2646: 0bfe bt 0x2642 // 2642 + //Write page cache data to flash memory 6 + SetUserKey; + 2648: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 264a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 264c: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 264e: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2650: 934a ld.w r2, (r3, 0x28) + 2652: 3a42 cmpnei r2, 2 + 2654: 0bfe bt 0x2650 // 2650 +} + 2656: 1402 addi r14, r14, 8 + 2658: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 265a: 82e0 ld.b r7, (r2, 0x0) + 265c: 8281 ld.b r4, (r2, 0x1) + 265e: 4488 lsli r4, r4, 8 + 2660: 8222 ld.b r1, (r2, 0x2) + 2662: 611c addu r4, r7 + 2664: 82a3 ld.b r5, (r2, 0x3) + 2666: 4130 lsli r1, r1, 16 + 2668: 98c1 ld.w r6, (r14, 0x4) + 266a: 6050 addu r1, r4 + 266c: 45b8 lsli r5, r5, 24 + 266e: 6188 addu r6, r2 + 2670: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2672: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2674: 2203 addi r2, 4 + 2676: 07ca br 0x260a // 260a + 2678: 20000060 .long 0x20000060 + 267c: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002680 : +//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) +{ + 2680: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 268c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 268e: 3b40 cmpnei r3, 0 + 2690: 0c06 bf 0x269c // 269c + 2692: 6d0f mov r4, r3 + 2694: 6914 and r4, r5 + 2696: 3c40 cmpnei r4, 0 + 2698: 0802 bt 0x269c // 269c + RdStartAdd +=4; + 269a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 269c: 6d0f mov r4, r3 + 269e: 6914 and r4, r5 + 26a0: 6100 addu r4, r0 + 26a2: 8480 ld.b r4, (r4, 0x0) + 26a4: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +000026ac
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 26ac: 14d0 push r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 26ae: e000009f bsr 0x27ec // 27ec + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 26b2: 1029 lrw r1, 0x4d84 // 26d4 + 26b4: 3000 movi r0, 0 + 26b6: e00007df bsr 0x3674 // 3674 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 26ba: e3fffaf5 bsr 0x1ca4 // 1ca4 + + UART1_TASK(); + 26be: e000067d bsr 0x33b8 // 33b8 + + DIP_ScanTask(); + 26c2: e000083f bsr 0x3740 // 3740 + + BLV_RLY_Task(); + 26c6: e0000975 bsr 0x39b0 // 39b0 + + CTRL_LEDStatus_Task(); + 26ca: e0000beb bsr 0x3ea0 // 3ea0 + + BUS485Send_Task(); + 26ce: e0000775 bsr 0x35b8 // 35b8 + 26d2: 07f4 br 0x26ba // 26ba + 26d4: 00004d84 .long 0x00004d84 + +Disassembly of section .text.delay_nms: + +000026d8 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 26d8: 14d0 push r15 + 26da: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 26dc: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 26de: 3300 movi r3, 0 + j = 50* t; + 26e0: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 26e2: b862 st.w r3, (r14, 0x8) + j = 50* t; + 26e4: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 26e6: b860 st.w r3, (r14, 0x0) + 26e8: 9840 ld.w r2, (r14, 0x0) + 26ea: 9861 ld.w r3, (r14, 0x4) + 26ec: 64c8 cmphs r2, r3 + 26ee: 0c03 bf 0x26f4 // 26f4 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 26f0: 1403 addi r14, r14, 12 + 26f2: 1490 pop r15 + k++; + 26f4: 9862 ld.w r3, (r14, 0x8) + 26f6: 2300 addi r3, 1 + 26f8: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 26fa: e3fffad5 bsr 0x1ca4 // 1ca4 + for ( i = 0; i < j; i++ ) + 26fe: 9860 ld.w r3, (r14, 0x0) + 2700: 2300 addi r3, 1 + 2702: 07f2 br 0x26e6 // 26e6 + +Disassembly of section .text.delay_nus: + +00002704 : +void delay_nus(unsigned int t) +{ + 2704: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2706: 3300 movi r3, 0 + 2708: b862 st.w r3, (r14, 0x8) + j = 1* t; + 270a: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 270c: b860 st.w r3, (r14, 0x0) + 270e: 9840 ld.w r2, (r14, 0x0) + 2710: 9861 ld.w r3, (r14, 0x4) + 2712: 64c8 cmphs r2, r3 + 2714: 0c03 bf 0x271a // 271a + { + k++; + } +} + 2716: 1403 addi r14, r14, 12 + 2718: 783c jmp r15 + k++; + 271a: 9862 ld.w r3, (r14, 0x8) + 271c: 2300 addi r3, 1 + 271e: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2720: 9860 ld.w r3, (r14, 0x0) + 2722: 2300 addi r3, 1 + 2724: 07f4 br 0x270c // 270c + +Disassembly of section .text.BT_CONFIG: + +00002728 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2728: 14d2 push r4-r5, r15 + 272a: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 272c: 1095 lrw r4, 0x20000008 // 2780 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 272e: 3500 movi r5, 0 + BT_DeInit(BT1); + 2730: 9400 ld.w r0, (r4, 0x0) + 2732: e3fffd29 bsr 0x2184 // 2184 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2736: 9400 ld.w r0, (r4, 0x0) + 2738: b8a1 st.w r5, (r14, 0x4) + 273a: b8a0 st.w r5, (r14, 0x0) + 273c: 3308 movi r3, 8 + 273e: 3200 movi r2, 0 + 2740: 3101 movi r1, 1 + 2742: e3fffd38 bsr 0x21b2 // 21b2 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 2746: 3380 movi r3, 128 + 2748: 4363 lsli r3, r3, 3 + 274a: b861 st.w r3, (r14, 0x4) + 274c: 9400 ld.w r0, (r4, 0x0) + 274e: 3300 movi r3, 0 + 2750: b8a3 st.w r5, (r14, 0xc) + 2752: b8a2 st.w r5, (r14, 0x8) + 2754: b8a0 st.w r5, (r14, 0x0) + 2756: 3200 movi r2, 0 + 2758: 3180 movi r1, 128 + 275a: e3fffd38 bsr 0x21ca // 21ca + BT_Period_CMP_Write(BT1,4780,1); + 275e: 3201 movi r2, 1 + 2760: 1029 lrw r1, 0x12ac // 2784 + 2762: 9400 ld.w r0, (r4, 0x0) + 2764: e3fffd49 bsr 0x21f6 // 21f6 + BT_Start(BT1); + 2768: 9400 ld.w r0, (r4, 0x0) + 276a: e3fffd1b bsr 0x21a0 // 21a0 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 276e: 9400 ld.w r0, (r4, 0x0) + 2770: 3202 movi r2, 2 + 2772: 3101 movi r1, 1 + 2774: e3fffd44 bsr 0x21fc // 21fc + BT1_INT_ENABLE(); + 2778: e3fffd4c bsr 0x2210 // 2210 + +} + 277c: 1404 addi r14, r14, 16 + 277e: 1492 pop r4-r5, r15 + 2780: 20000008 .long 0x20000008 + 2784: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002788 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2788: 14d0 push r15 + 278a: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 278c: e3fff9d8 bsr 0x1b3c // 1b3c + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2790: 3101 movi r1, 1 + 2792: 3001 movi r0, 1 + 2794: e3fff9fa bsr 0x1b88 // 1b88 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 2798: 3000 movi r0, 0 + 279a: e3fffa53 bsr 0x1c40 // 1c40 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 279e: 3180 movi r1, 128 + 27a0: 3308 movi r3, 8 + 27a2: 3200 movi r2, 0 + 27a4: 4121 lsli r1, r1, 1 + 27a6: 3002 movi r0, 2 + 27a8: e3fffa08 bsr 0x1bb8 // 1bb8 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 27ac: 3080 movi r0, 128 + 27ae: 3118 movi r1, 24 + 27b0: 4002 lsli r0, r0, 2 + 27b2: e3fffa83 bsr 0x1cb8 // 1cb8 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 27b6: 3001 movi r0, 1 + 27b8: e3fffa58 bsr 0x1c68 // 1c68 + SYSCON_IWDCNT_Reload(); //reload WDT + 27bc: e3fffa74 bsr 0x1ca4 // 1ca4 + IWDT_Int_Enable(); + 27c0: e3fffaa6 bsr 0x1d0c // 1d0c + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 27c4: 3340 movi r3, 64 + 27c6: b860 st.w r3, (r14, 0x0) + 27c8: 31c0 movi r1, 192 + 27ca: 3380 movi r3, 128 + 27cc: 4364 lsli r3, r3, 4 + 27ce: 3200 movi r2, 0 + 27d0: 4123 lsli r1, r1, 3 + 27d2: 3000 movi r0, 0 + 27d4: e3fffa7e bsr 0x1cd0 // 1cd0 + LVD_Int_Enable(); + 27d8: e3fffa8c bsr 0x1cf0 // 1cf0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 27dc: e3fffaea bsr 0x1db0 // 1db0 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 27e0: 3000 movi r0, 0 + 27e2: e00010ed bsr 0x49bc // 49bc + +} + 27e6: 1401 addi r14, r14, 4 + 27e8: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +000027ec : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 27ec: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 27ee: 1070 lrw r3, 0x2000005c // 282c + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 27f0: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 27f2: 9340 ld.w r2, (r3, 0x0) + 27f4: 106f lrw r3, 0xfffffff // 2830 + 27f6: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 27f8: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 27fa: 926c ld.w r3, (r2, 0x30) + 27fc: 68c4 and r3, r1 + 27fe: 3b40 cmpnei r3, 0 + 2800: 0ffd bf 0x27fa // 27fa +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2802: e3ffffc3 bsr 0x2788 // 2788 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2806: e0000507 bsr 0x3214 // 3214 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 280a: e3fffadf bsr 0x1dc8 // 1dc8 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 280e: 3101 movi r1, 1 + 2810: 300e movi r0, 14 + 2812: e3fffaed bsr 0x1dec // 1dec + +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 2816: e3ffff89 bsr 0x2728 // 2728 + + UARTx_Init(UART_1,BLV_RLY_RS485_Pro); + 281a: 1027 lrw r1, 0x3d90 // 2834 + 281c: 3001 movi r0, 1 + 281e: e0000501 bsr 0x3220 // 3220 + + DIP_Switch_Init(); + 2822: e0000749 bsr 0x36b4 // 36b4 + + Relay_Init(); + 2826: e00007d3 bsr 0x37cc // 37cc + +} + 282a: 1490 pop r15 + 282c: 2000005c .long 0x2000005c + 2830: 0fffffff .long 0x0fffffff + 2834: 00003d90 .long 0x00003d90 + +Disassembly of section .text.SYSCONIntHandler: + +00002838 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2838: 1460 nie + 283a: 1462 ipush + // ISR content ... + nop; + 283c: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 283e: 117a lrw r3, 0x2000005c // 2924 + 2840: 3280 movi r2, 128 + 2842: 9360 ld.w r3, (r3, 0x0) + 2844: 60c8 addu r3, r2 + 2846: 9323 ld.w r1, (r3, 0xc) + 2848: 3001 movi r0, 1 + 284a: 6840 and r1, r0 + 284c: 3940 cmpnei r1, 0 + 284e: 0c04 bf 0x2856 // 2856 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2850: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2852: 1463 ipop + 2854: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2856: 9323 ld.w r1, (r3, 0xc) + 2858: 3002 movi r0, 2 + 285a: 6840 and r1, r0 + 285c: 3940 cmpnei r1, 0 + 285e: 0bf9 bt 0x2850 // 2850 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2860: 9323 ld.w r1, (r3, 0xc) + 2862: 3008 movi r0, 8 + 2864: 6840 and r1, r0 + 2866: 3940 cmpnei r1, 0 + 2868: 0bf4 bt 0x2850 // 2850 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 286a: 9323 ld.w r1, (r3, 0xc) + 286c: 3010 movi r0, 16 + 286e: 6840 and r1, r0 + 2870: 3940 cmpnei r1, 0 + 2872: 0bef bt 0x2850 // 2850 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2874: 9323 ld.w r1, (r3, 0xc) + 2876: 6848 and r1, r2 + 2878: 3940 cmpnei r1, 0 + 287a: 0c03 bf 0x2880 // 2880 + SYSCON->ICR = CMD_ERR_ST; + 287c: b341 st.w r2, (r3, 0x4) +} + 287e: 07ea br 0x2852 // 2852 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2880: 3280 movi r2, 128 + 2882: 9323 ld.w r1, (r3, 0xc) + 2884: 4241 lsli r2, r2, 1 + 2886: 6848 and r1, r2 + 2888: 3940 cmpnei r1, 0 + 288a: 0bf9 bt 0x287c // 287c + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 288c: 3280 movi r2, 128 + 288e: 9323 ld.w r1, (r3, 0xc) + 2890: 4242 lsli r2, r2, 2 + 2892: 6848 and r1, r2 + 2894: 3940 cmpnei r1, 0 + 2896: 0bf3 bt 0x287c // 287c + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2898: 3280 movi r2, 128 + 289a: 9323 ld.w r1, (r3, 0xc) + 289c: 4243 lsli r2, r2, 3 + 289e: 6848 and r1, r2 + 28a0: 3940 cmpnei r1, 0 + 28a2: 0bed bt 0x287c // 287c + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 28a4: 3280 movi r2, 128 + 28a6: 9323 ld.w r1, (r3, 0xc) + 28a8: 4244 lsli r2, r2, 4 + 28aa: 6848 and r1, r2 + 28ac: 3940 cmpnei r1, 0 + 28ae: 0c03 bf 0x28b4 // 28b4 + nop; + 28b0: 6c03 mov r0, r0 + 28b2: 07e5 br 0x287c // 287c + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 28b4: 3280 movi r2, 128 + 28b6: 9323 ld.w r1, (r3, 0xc) + 28b8: 4245 lsli r2, r2, 5 + 28ba: 6848 and r1, r2 + 28bc: 3940 cmpnei r1, 0 + 28be: 0bdf bt 0x287c // 287c + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 28c0: 3280 movi r2, 128 + 28c2: 9323 ld.w r1, (r3, 0xc) + 28c4: 4246 lsli r2, r2, 6 + 28c6: 6848 and r1, r2 + 28c8: 3940 cmpnei r1, 0 + 28ca: 0bd9 bt 0x287c // 287c + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 28cc: 3280 movi r2, 128 + 28ce: 9323 ld.w r1, (r3, 0xc) + 28d0: 4247 lsli r2, r2, 7 + 28d2: 6848 and r1, r2 + 28d4: 3940 cmpnei r1, 0 + 28d6: 0bd3 bt 0x287c // 287c + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 28d8: 3280 movi r2, 128 + 28da: 9323 ld.w r1, (r3, 0xc) + 28dc: 424b lsli r2, r2, 11 + 28de: 6848 and r1, r2 + 28e0: 3940 cmpnei r1, 0 + 28e2: 0bcd bt 0x287c // 287c + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 28e4: 3280 movi r2, 128 + 28e6: 9323 ld.w r1, (r3, 0xc) + 28e8: 424c lsli r2, r2, 12 + 28ea: 6848 and r1, r2 + 28ec: 3940 cmpnei r1, 0 + 28ee: 0bc7 bt 0x287c // 287c + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 28f0: 3280 movi r2, 128 + 28f2: 9323 ld.w r1, (r3, 0xc) + 28f4: 424d lsli r2, r2, 13 + 28f6: 6848 and r1, r2 + 28f8: 3940 cmpnei r1, 0 + 28fa: 0bc1 bt 0x287c // 287c + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 28fc: 3280 movi r2, 128 + 28fe: 9323 ld.w r1, (r3, 0xc) + 2900: 424e lsli r2, r2, 14 + 2902: 6848 and r1, r2 + 2904: 3940 cmpnei r1, 0 + 2906: 0bbb bt 0x287c // 287c + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2908: 3280 movi r2, 128 + 290a: 9323 ld.w r1, (r3, 0xc) + 290c: 424f lsli r2, r2, 15 + 290e: 6848 and r1, r2 + 2910: 3940 cmpnei r1, 0 + 2912: 0bb5 bt 0x287c // 287c + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2914: 3280 movi r2, 128 + 2916: 9323 ld.w r1, (r3, 0xc) + 2918: 4256 lsli r2, r2, 22 + 291a: 6848 and r1, r2 + 291c: 3940 cmpnei r1, 0 + 291e: 0baf bt 0x287c // 287c + 2920: 0799 br 0x2852 // 2852 + 2922: 0000 bkpt + 2924: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002928 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2928: 1460 nie + 292a: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 292c: 1078 lrw r3, 0x20000060 // 298c + 292e: 3101 movi r1, 1 + 2930: 9360 ld.w r3, (r3, 0x0) + 2932: 934b ld.w r2, (r3, 0x2c) + 2934: 6884 and r2, r1 + 2936: 3a40 cmpnei r2, 0 + 2938: 0c04 bf 0x2940 // 2940 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 293a: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 293c: 1463 ipop + 293e: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2940: 934b ld.w r2, (r3, 0x2c) + 2942: 3102 movi r1, 2 + 2944: 6884 and r2, r1 + 2946: 3a40 cmpnei r2, 0 + 2948: 0bf9 bt 0x293a // 293a + else if(IFC->MISR&PEP_END_INT) + 294a: 934b ld.w r2, (r3, 0x2c) + 294c: 3104 movi r1, 4 + 294e: 6884 and r2, r1 + 2950: 3a40 cmpnei r2, 0 + 2952: 0bf4 bt 0x293a // 293a + else if(IFC->MISR&PROT_ERR_INT) + 2954: 3280 movi r2, 128 + 2956: 932b ld.w r1, (r3, 0x2c) + 2958: 4245 lsli r2, r2, 5 + 295a: 6848 and r1, r2 + 295c: 3940 cmpnei r1, 0 + 295e: 0c03 bf 0x2964 // 2964 + IFC->ICR=OVW_ERR_INT; + 2960: b34c st.w r2, (r3, 0x30) +} + 2962: 07ed br 0x293c // 293c + else if(IFC->MISR&UDEF_ERR_INT) + 2964: 3280 movi r2, 128 + 2966: 932b ld.w r1, (r3, 0x2c) + 2968: 4246 lsli r2, r2, 6 + 296a: 6848 and r1, r2 + 296c: 3940 cmpnei r1, 0 + 296e: 0bf9 bt 0x2960 // 2960 + else if(IFC->MISR&ADDR_ERR_INT) + 2970: 3280 movi r2, 128 + 2972: 932b ld.w r1, (r3, 0x2c) + 2974: 4247 lsli r2, r2, 7 + 2976: 6848 and r1, r2 + 2978: 3940 cmpnei r1, 0 + 297a: 0bf3 bt 0x2960 // 2960 + else if(IFC->MISR&OVW_ERR_INT) + 297c: 3280 movi r2, 128 + 297e: 932b ld.w r1, (r3, 0x2c) + 2980: 4248 lsli r2, r2, 8 + 2982: 6848 and r1, r2 + 2984: 3940 cmpnei r1, 0 + 2986: 0bed bt 0x2960 // 2960 + 2988: 07da br 0x293c // 293c + 298a: 0000 bkpt + 298c: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00002990 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 2990: 1460 nie + 2992: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2994: 1078 lrw r3, 0x20000050 // 29f4 + 2996: 3101 movi r1, 1 + 2998: 9360 ld.w r3, (r3, 0x0) + 299a: 9348 ld.w r2, (r3, 0x20) + 299c: 6884 and r2, r1 + 299e: 3a40 cmpnei r2, 0 + 29a0: 0c04 bf 0x29a8 // 29a8 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 29a2: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 29a4: 1463 ipop + 29a6: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 29a8: 9348 ld.w r2, (r3, 0x20) + 29aa: 3102 movi r1, 2 + 29ac: 6884 and r2, r1 + 29ae: 3a40 cmpnei r2, 0 + 29b0: 0bf9 bt 0x29a2 // 29a2 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 29b2: 9348 ld.w r2, (r3, 0x20) + 29b4: 3104 movi r1, 4 + 29b6: 6884 and r2, r1 + 29b8: 3a40 cmpnei r2, 0 + 29ba: 0bf4 bt 0x29a2 // 29a2 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 29bc: 9348 ld.w r2, (r3, 0x20) + 29be: 3110 movi r1, 16 + 29c0: 6884 and r2, r1 + 29c2: 3a40 cmpnei r2, 0 + 29c4: 0bef bt 0x29a2 // 29a2 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 29c6: 9348 ld.w r2, (r3, 0x20) + 29c8: 3120 movi r1, 32 + 29ca: 6884 and r2, r1 + 29cc: 3a40 cmpnei r2, 0 + 29ce: 0bea bt 0x29a2 // 29a2 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 29d0: 9348 ld.w r2, (r3, 0x20) + 29d2: 3140 movi r1, 64 + 29d4: 6884 and r2, r1 + 29d6: 3a40 cmpnei r2, 0 + 29d8: 0be5 bt 0x29a2 // 29a2 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 29da: 9348 ld.w r2, (r3, 0x20) + 29dc: 3180 movi r1, 128 + 29de: 6884 and r2, r1 + 29e0: 3a40 cmpnei r2, 0 + 29e2: 0be0 bt 0x29a2 // 29a2 + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 29e4: 3280 movi r2, 128 + 29e6: 9328 ld.w r1, (r3, 0x20) + 29e8: 4249 lsli r2, r2, 9 + 29ea: 6848 and r1, r2 + 29ec: 3940 cmpnei r1, 0 + 29ee: 0fdb bf 0x29a4 // 29a4 + ADC0->CSR = ADC12_SEQ_END0; + 29f0: b347 st.w r2, (r3, 0x1c) +} + 29f2: 07d9 br 0x29a4 // 29a4 + 29f4: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +000029f8 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 29f8: 1460 nie + 29fa: 1462 ipush + 29fc: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 29fe: 1387 lrw r4, 0x20000020 // 2b98 + 2a00: 3280 movi r2, 128 + 2a02: 9460 ld.w r3, (r4, 0x0) + 2a04: 60c8 addu r3, r2 + 2a06: 9335 ld.w r1, (r3, 0x54) + 2a08: 3001 movi r0, 1 + 2a0a: 6840 and r1, r0 + 2a0c: 3940 cmpnei r1, 0 + 2a0e: 0c03 bf 0x2a14 // 2a14 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 2a10: b317 st.w r0, (r3, 0x5c) + 2a12: 0424 br 0x2a5a // 2a5a + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2a14: 9335 ld.w r1, (r3, 0x54) + 2a16: 3002 movi r0, 2 + 2a18: 6840 and r1, r0 + 2a1a: 3940 cmpnei r1, 0 + 2a1c: 0bfa bt 0x2a10 // 2a10 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 2a1e: 9335 ld.w r1, (r3, 0x54) + 2a20: 3004 movi r0, 4 + 2a22: 6840 and r1, r0 + 2a24: 3940 cmpnei r1, 0 + 2a26: 0bf5 bt 0x2a10 // 2a10 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 2a28: 9335 ld.w r1, (r3, 0x54) + 2a2a: 3008 movi r0, 8 + 2a2c: 6840 and r1, r0 + 2a2e: 3940 cmpnei r1, 0 + 2a30: 0bf0 bt 0x2a10 // 2a10 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 2a32: 9335 ld.w r1, (r3, 0x54) + 2a34: 3010 movi r0, 16 + 2a36: 6840 and r1, r0 + 2a38: 3940 cmpnei r1, 0 + 2a3a: 0c1f bf 0x2a78 // 2a78 + EPT0->ICR=EPT_CAP_LD0; + 2a3c: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 2a3e: 3200 movi r2, 0 + 2a40: 3101 movi r1, 1 + 2a42: 3000 movi r0, 0 + 2a44: e3fff972 bsr 0x1d28 // 1d28 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 2a48: 3201 movi r2, 1 + 2a4a: 3101 movi r1, 1 + 2a4c: 3001 movi r0, 1 + 2a4e: e3fff96d bsr 0x1d28 // 1d28 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 2a52: 9460 ld.w r3, (r4, 0x0) + 2a54: 934b ld.w r2, (r3, 0x2c) + 2a56: 1272 lrw r3, 0x2000014c // 2b9c + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2a58: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 2a5a: 9460 ld.w r3, (r4, 0x0) + 2a5c: 3280 movi r2, 128 + 2a5e: 60c8 addu r3, r2 + 2a60: 932b ld.w r1, (r3, 0x2c) + 2a62: 3001 movi r0, 1 + 2a64: 6840 and r1, r0 + 2a66: 3940 cmpnei r1, 0 + 2a68: 0c61 bf 0x2b2a // 2b2a + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 2a6a: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 2a6c: d9ee2001 ld.w r15, (r14, 0x4) + 2a70: 9880 ld.w r4, (r14, 0x0) + 2a72: 1402 addi r14, r14, 8 + 2a74: 1463 ipop + 2a76: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 2a78: 9335 ld.w r1, (r3, 0x54) + 2a7a: 3020 movi r0, 32 + 2a7c: 6840 and r1, r0 + 2a7e: 3940 cmpnei r1, 0 + 2a80: 0c10 bf 0x2aa0 // 2aa0 + EPT0->ICR=EPT_CAP_LD1; + 2a82: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 2a84: 3200 movi r2, 0 + 2a86: 3101 movi r1, 1 + 2a88: 3001 movi r0, 1 + 2a8a: e3fff94f bsr 0x1d28 // 1d28 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 2a8e: 3201 movi r2, 1 + 2a90: 3101 movi r1, 1 + 2a92: 3000 movi r0, 0 + 2a94: e3fff94a bsr 0x1d28 // 1d28 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2a98: 9460 ld.w r3, (r4, 0x0) + 2a9a: 934c ld.w r2, (r3, 0x30) + 2a9c: 1261 lrw r3, 0x20000148 // 2ba0 + 2a9e: 07dd br 0x2a58 // 2a58 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 2aa0: 9335 ld.w r1, (r3, 0x54) + 2aa2: 3040 movi r0, 64 + 2aa4: 6840 and r1, r0 + 2aa6: 3940 cmpnei r1, 0 + 2aa8: 0bb4 bt 0x2a10 // 2a10 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 2aaa: 9335 ld.w r1, (r3, 0x54) + 2aac: 6848 and r1, r2 + 2aae: 3940 cmpnei r1, 0 + 2ab0: 0c03 bf 0x2ab6 // 2ab6 + EPT0->ICR=EPT_CDD; + 2ab2: b357 st.w r2, (r3, 0x5c) + 2ab4: 07d3 br 0x2a5a // 2a5a + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 2ab6: 3280 movi r2, 128 + 2ab8: 9335 ld.w r1, (r3, 0x54) + 2aba: 4241 lsli r2, r2, 1 + 2abc: 6848 and r1, r2 + 2abe: 3940 cmpnei r1, 0 + 2ac0: 0bf9 bt 0x2ab2 // 2ab2 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 2ac2: 3280 movi r2, 128 + 2ac4: 9335 ld.w r1, (r3, 0x54) + 2ac6: 4242 lsli r2, r2, 2 + 2ac8: 6848 and r1, r2 + 2aca: 3940 cmpnei r1, 0 + 2acc: 0bf3 bt 0x2ab2 // 2ab2 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 2ace: 3280 movi r2, 128 + 2ad0: 9335 ld.w r1, (r3, 0x54) + 2ad2: 4243 lsli r2, r2, 3 + 2ad4: 6848 and r1, r2 + 2ad6: 3940 cmpnei r1, 0 + 2ad8: 0bed bt 0x2ab2 // 2ab2 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 2ada: 3280 movi r2, 128 + 2adc: 9335 ld.w r1, (r3, 0x54) + 2ade: 4244 lsli r2, r2, 4 + 2ae0: 6848 and r1, r2 + 2ae2: 3940 cmpnei r1, 0 + 2ae4: 0be7 bt 0x2ab2 // 2ab2 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 2ae6: 3280 movi r2, 128 + 2ae8: 9335 ld.w r1, (r3, 0x54) + 2aea: 4245 lsli r2, r2, 5 + 2aec: 6848 and r1, r2 + 2aee: 3940 cmpnei r1, 0 + 2af0: 0be1 bt 0x2ab2 // 2ab2 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 2af2: 3280 movi r2, 128 + 2af4: 9335 ld.w r1, (r3, 0x54) + 2af6: 4246 lsli r2, r2, 6 + 2af8: 6848 and r1, r2 + 2afa: 3940 cmpnei r1, 0 + 2afc: 0bdb bt 0x2ab2 // 2ab2 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 2afe: 3280 movi r2, 128 + 2b00: 9335 ld.w r1, (r3, 0x54) + 2b02: 4247 lsli r2, r2, 7 + 2b04: 6848 and r1, r2 + 2b06: 3940 cmpnei r1, 0 + 2b08: 0bd5 bt 0x2ab2 // 2ab2 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 2b0a: 3280 movi r2, 128 + 2b0c: 9335 ld.w r1, (r3, 0x54) + 2b0e: 4248 lsli r2, r2, 8 + 2b10: 6848 and r1, r2 + 2b12: 3940 cmpnei r1, 0 + 2b14: 0bcf bt 0x2ab2 // 2ab2 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 2b16: 3280 movi r2, 128 + 2b18: 9335 ld.w r1, (r3, 0x54) + 2b1a: 4249 lsli r2, r2, 9 + 2b1c: 6848 and r1, r2 + 2b1e: 3940 cmpnei r1, 0 + 2b20: 0f9d bf 0x2a5a // 2a5a + EPT0->ICR=EPT_PEND; + 2b22: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 2b24: e3fffd4a bsr 0x25b8 // 25b8 + 2b28: 0799 br 0x2a5a // 2a5a + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 2b2a: 932b ld.w r1, (r3, 0x2c) + 2b2c: 3002 movi r0, 2 + 2b2e: 6840 and r1, r0 + 2b30: 3940 cmpnei r1, 0 + 2b32: 0b9c bt 0x2a6a // 2a6a + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 2b34: 932b ld.w r1, (r3, 0x2c) + 2b36: 3004 movi r0, 4 + 2b38: 6840 and r1, r0 + 2b3a: 3940 cmpnei r1, 0 + 2b3c: 0b97 bt 0x2a6a // 2a6a + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 2b3e: 932b ld.w r1, (r3, 0x2c) + 2b40: 3008 movi r0, 8 + 2b42: 6840 and r1, r0 + 2b44: 3940 cmpnei r1, 0 + 2b46: 0b92 bt 0x2a6a // 2a6a + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 2b48: 932b ld.w r1, (r3, 0x2c) + 2b4a: 3010 movi r0, 16 + 2b4c: 6840 and r1, r0 + 2b4e: 3940 cmpnei r1, 0 + 2b50: 0b8d bt 0x2a6a // 2a6a + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 2b52: 932b ld.w r1, (r3, 0x2c) + 2b54: 3020 movi r0, 32 + 2b56: 6840 and r1, r0 + 2b58: 3940 cmpnei r1, 0 + 2b5a: 0b88 bt 0x2a6a // 2a6a + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 2b5c: 932b ld.w r1, (r3, 0x2c) + 2b5e: 3040 movi r0, 64 + 2b60: 6840 and r1, r0 + 2b62: 3940 cmpnei r1, 0 + 2b64: 0b83 bt 0x2a6a // 2a6a + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 2b66: 932b ld.w r1, (r3, 0x2c) + 2b68: 6848 and r1, r2 + 2b6a: 3940 cmpnei r1, 0 + 2b6c: 0c03 bf 0x2b72 // 2b72 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 2b6e: b34d st.w r2, (r3, 0x34) +} + 2b70: 077e br 0x2a6c // 2a6c + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 2b72: 3280 movi r2, 128 + 2b74: 932b ld.w r1, (r3, 0x2c) + 2b76: 4241 lsli r2, r2, 1 + 2b78: 6848 and r1, r2 + 2b7a: 3940 cmpnei r1, 0 + 2b7c: 0bf9 bt 0x2b6e // 2b6e + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 2b7e: 3280 movi r2, 128 + 2b80: 932b ld.w r1, (r3, 0x2c) + 2b82: 4242 lsli r2, r2, 2 + 2b84: 6848 and r1, r2 + 2b86: 3940 cmpnei r1, 0 + 2b88: 0bf3 bt 0x2b6e // 2b6e + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 2b8a: 3280 movi r2, 128 + 2b8c: 932b ld.w r1, (r3, 0x2c) + 2b8e: 4243 lsli r2, r2, 3 + 2b90: 6848 and r1, r2 + 2b92: 3940 cmpnei r1, 0 + 2b94: 0bed bt 0x2b6e // 2b6e + 2b96: 076b br 0x2a6c // 2a6c + 2b98: 20000020 .long 0x20000020 + 2b9c: 2000014c .long 0x2000014c + 2ba0: 20000148 .long 0x20000148 + +Disassembly of section .text.WWDTHandler: + +00002ba4 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 2ba4: 1460 nie + 2ba6: 1462 ipush + 2ba8: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 2baa: 10ab lrw r5, 0x20000010 // 2bd4 + 2bac: 3401 movi r4, 1 + 2bae: 9560 ld.w r3, (r5, 0x0) + 2bb0: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 2bb2: 30ff movi r0, 255 + 2bb4: e3fffae0 bsr 0x2174 // 2174 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 2bb8: 9540 ld.w r2, (r5, 0x0) + 2bba: 9263 ld.w r3, (r2, 0xc) + 2bbc: 68d0 and r3, r4 + 2bbe: 3b40 cmpnei r3, 0 + 2bc0: 0c02 bf 0x2bc4 // 2bc4 + { + WWDT->ICR = WWDT_EVI; + 2bc2: b285 st.w r4, (r2, 0x14) + } +} + 2bc4: d9ee2002 ld.w r15, (r14, 0x8) + 2bc8: 98a1 ld.w r5, (r14, 0x4) + 2bca: 9880 ld.w r4, (r14, 0x0) + 2bcc: 1403 addi r14, r14, 12 + 2bce: 1463 ipop + 2bd0: 1461 nir + 2bd2: 0000 bkpt + 2bd4: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00002bd8 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 2bd8: 1460 nie + 2bda: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 2bdc: 107e lrw r3, 0x20000024 // 2c54 + 2bde: 3101 movi r1, 1 + 2be0: 9360 ld.w r3, (r3, 0x0) + 2be2: 237f addi r3, 128 + 2be4: 9355 ld.w r2, (r3, 0x54) + 2be6: 6884 and r2, r1 + 2be8: 3a40 cmpnei r2, 0 + 2bea: 0c04 bf 0x2bf2 // 2bf2 + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 2bec: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 2bee: 1463 ipop + 2bf0: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 2bf2: 9355 ld.w r2, (r3, 0x54) + 2bf4: 3102 movi r1, 2 + 2bf6: 6884 and r2, r1 + 2bf8: 3a40 cmpnei r2, 0 + 2bfa: 0bf9 bt 0x2bec // 2bec + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 2bfc: 9355 ld.w r2, (r3, 0x54) + 2bfe: 3110 movi r1, 16 + 2c00: 6884 and r2, r1 + 2c02: 3a40 cmpnei r2, 0 + 2c04: 0bf4 bt 0x2bec // 2bec + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 2c06: 9355 ld.w r2, (r3, 0x54) + 2c08: 3120 movi r1, 32 + 2c0a: 6884 and r2, r1 + 2c0c: 3a40 cmpnei r2, 0 + 2c0e: 0bef bt 0x2bec // 2bec + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 2c10: 3280 movi r2, 128 + 2c12: 9335 ld.w r1, (r3, 0x54) + 2c14: 4241 lsli r2, r2, 1 + 2c16: 6848 and r1, r2 + 2c18: 3940 cmpnei r1, 0 + 2c1a: 0c03 bf 0x2c20 // 2c20 + GPT0->ICR = GPT_INT_PEND; + 2c1c: b357 st.w r2, (r3, 0x5c) +} + 2c1e: 07e8 br 0x2bee // 2bee + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 2c20: 3280 movi r2, 128 + 2c22: 9335 ld.w r1, (r3, 0x54) + 2c24: 4242 lsli r2, r2, 2 + 2c26: 6848 and r1, r2 + 2c28: 3940 cmpnei r1, 0 + 2c2a: 0bf9 bt 0x2c1c // 2c1c + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 2c2c: 3280 movi r2, 128 + 2c2e: 9335 ld.w r1, (r3, 0x54) + 2c30: 4243 lsli r2, r2, 3 + 2c32: 6848 and r1, r2 + 2c34: 3940 cmpnei r1, 0 + 2c36: 0bf3 bt 0x2c1c // 2c1c + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 2c38: 3280 movi r2, 128 + 2c3a: 9335 ld.w r1, (r3, 0x54) + 2c3c: 4244 lsli r2, r2, 4 + 2c3e: 6848 and r1, r2 + 2c40: 3940 cmpnei r1, 0 + 2c42: 0bed bt 0x2c1c // 2c1c + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 2c44: 3280 movi r2, 128 + 2c46: 9335 ld.w r1, (r3, 0x54) + 2c48: 4249 lsli r2, r2, 9 + 2c4a: 6848 and r1, r2 + 2c4c: 3940 cmpnei r1, 0 + 2c4e: 0be7 bt 0x2c1c // 2c1c + 2c50: 07cf br 0x2bee // 2bee + 2c52: 0000 bkpt + 2c54: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00002c58 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 2c58: 1460 nie + 2c5a: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 2c5c: 1079 lrw r3, 0x20000018 // 2cc0 + 2c5e: 3101 movi r1, 1 + 2c60: 9360 ld.w r3, (r3, 0x0) + 2c62: 934a ld.w r2, (r3, 0x28) + 2c64: 6884 and r2, r1 + 2c66: 3a40 cmpnei r2, 0 + 2c68: 0c14 bf 0x2c90 // 2c90 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 2c6a: 1057 lrw r2, 0xca53 // 2cc4 + RTC->ICR=ALRA_INT; + 2c6c: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 2c6e: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 2c70: 9342 ld.w r2, (r3, 0x8) + 2c72: 6c84 or r2, r1 + 2c74: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 2c76: 3280 movi r2, 128 + 2c78: 424d lsli r2, r2, 13 + 2c7a: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 2c7c: 3102 movi r1, 2 + 2c7e: 9342 ld.w r2, (r3, 0x8) + 2c80: 6884 and r2, r1 + 2c82: 3a40 cmpnei r2, 0 + 2c84: 0bfd bt 0x2c7e // 2c7e + RTC->CR &= ~0x1; + 2c86: 9342 ld.w r2, (r3, 0x8) + 2c88: 3a80 bclri r2, 0 + 2c8a: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 2c8c: 1463 ipop + 2c8e: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 2c90: 934a ld.w r2, (r3, 0x28) + 2c92: 3102 movi r1, 2 + 2c94: 6884 and r2, r1 + 2c96: 3a40 cmpnei r2, 0 + 2c98: 0c03 bf 0x2c9e // 2c9e + RTC->ICR=RTC_TRGEV1_INT; + 2c9a: b32b st.w r1, (r3, 0x2c) +} + 2c9c: 07f8 br 0x2c8c // 2c8c + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 2c9e: 934a ld.w r2, (r3, 0x28) + 2ca0: 3104 movi r1, 4 + 2ca2: 6884 and r2, r1 + 2ca4: 3a40 cmpnei r2, 0 + 2ca6: 0bfa bt 0x2c9a // 2c9a + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 2ca8: 934a ld.w r2, (r3, 0x28) + 2caa: 3108 movi r1, 8 + 2cac: 6884 and r2, r1 + 2cae: 3a40 cmpnei r2, 0 + 2cb0: 0bf5 bt 0x2c9a // 2c9a + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 2cb2: 934a ld.w r2, (r3, 0x28) + 2cb4: 3110 movi r1, 16 + 2cb6: 6884 and r2, r1 + 2cb8: 3a40 cmpnei r2, 0 + 2cba: 0bf0 bt 0x2c9a // 2c9a + 2cbc: 07e8 br 0x2c8c // 2c8c + 2cbe: 0000 bkpt + 2cc0: 20000018 .long 0x20000018 + 2cc4: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00002cc8 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 2cc8: 1460 nie + 2cca: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2ccc: 106d lrw r3, 0x20000040 // 2d00 + 2cce: 3102 movi r1, 2 + 2cd0: 9360 ld.w r3, (r3, 0x0) + 2cd2: 9343 ld.w r2, (r3, 0xc) + 2cd4: 6884 and r2, r1 + 2cd6: 3a40 cmpnei r2, 0 + 2cd8: 0c03 bf 0x2cde // 2cde + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 2cda: b323 st.w r1, (r3, 0xc) + } +} + 2cdc: 0410 br 0x2cfc // 2cfc + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2cde: 9343 ld.w r2, (r3, 0xc) + 2ce0: 3101 movi r1, 1 + 2ce2: 6884 and r2, r1 + 2ce4: 3a40 cmpnei r2, 0 + 2ce6: 0bfa bt 0x2cda // 2cda + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2ce8: 9343 ld.w r2, (r3, 0xc) + 2cea: 3108 movi r1, 8 + 2cec: 6884 and r2, r1 + 2cee: 3a40 cmpnei r2, 0 + 2cf0: 0bf5 bt 0x2cda // 2cda + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2cf2: 9343 ld.w r2, (r3, 0xc) + 2cf4: 3104 movi r1, 4 + 2cf6: 6884 and r2, r1 + 2cf8: 3a40 cmpnei r2, 0 + 2cfa: 0bf0 bt 0x2cda // 2cda +} + 2cfc: 1463 ipop + 2cfe: 1461 nir + 2d00: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00002d04 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 2d04: 1460 nie + 2d06: 1462 ipush + 2d08: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2d0a: 107f lrw r3, 0x2000003c // 2d84 + 2d0c: 3102 movi r1, 2 + 2d0e: 9360 ld.w r3, (r3, 0x0) + 2d10: 9343 ld.w r2, (r3, 0xc) + 2d12: 6884 and r2, r1 + 2d14: 3a40 cmpnei r2, 0 + 2d16: 0c0b bf 0x2d2c // 2d2c + { + UART1->ISR=UART_RX_INT_S; + 2d18: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 2d1a: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 2d1c: 7400 zextb r0, r0 + 2d1e: e000032b bsr 0x3374 // 3374 + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 2d22: d9ee2000 ld.w r15, (r14, 0x0) + 2d26: 1401 addi r14, r14, 4 + 2d28: 1463 ipop + 2d2a: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2d2c: 9323 ld.w r1, (r3, 0xc) + 2d2e: 3201 movi r2, 1 + 2d30: 6848 and r1, r2 + 2d32: 3940 cmpnei r1, 0 + 2d34: 0c0d bf 0x2d4e // 2d4e + UART1->ISR=UART_TX_INT_S; + 2d36: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 2d38: 1074 lrw r3, 0x200000a8 // 2d88 + 2d3a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2d3c: 1074 lrw r3, 0x200000ac // 2d8c + 2d3e: 9360 ld.w r3, (r3, 0x0) + 2d40: 3b41 cmpnei r3, 1 + 2d42: 0bf0 bt 0x2d22 // 2d22 + RS485_Comm_Start ++; + 2d44: 1053 lrw r2, 0x200000b0 // 2d90 + RS485_Comm_End ++; + 2d46: 9260 ld.w r3, (r2, 0x0) + 2d48: 2300 addi r3, 1 + 2d4a: b260 st.w r3, (r2, 0x0) +} + 2d4c: 07eb br 0x2d22 // 2d22 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2d4e: 9343 ld.w r2, (r3, 0xc) + 2d50: 3108 movi r1, 8 + 2d52: 6884 and r2, r1 + 2d54: 3a40 cmpnei r2, 0 + 2d56: 0c03 bf 0x2d5c // 2d5c + UART1->ISR=UART_TX_IOV_S; + 2d58: b323 st.w r1, (r3, 0xc) + 2d5a: 07e4 br 0x2d22 // 2d22 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2d5c: 9343 ld.w r2, (r3, 0xc) + 2d5e: 3104 movi r1, 4 + 2d60: 6884 and r2, r1 + 2d62: 3a40 cmpnei r2, 0 + 2d64: 0bfa bt 0x2d58 // 2d58 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2d66: 3180 movi r1, 128 + 2d68: 9303 ld.w r0, (r3, 0xc) + 2d6a: 412c lsli r1, r1, 12 + 2d6c: 6804 and r0, r1 + 2d6e: 3840 cmpnei r0, 0 + 2d70: 0fd9 bf 0x2d22 // 2d22 + UART1->ISR=UART_TX_DONE_S; + 2d72: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 2d74: 1065 lrw r3, 0x200000a8 // 2d88 + 2d76: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2d78: 1065 lrw r3, 0x200000ac // 2d8c + 2d7a: 9360 ld.w r3, (r3, 0x0) + 2d7c: 3b41 cmpnei r3, 1 + 2d7e: 0bd2 bt 0x2d22 // 2d22 + RS485_Comm_End ++; + 2d80: 1045 lrw r2, 0x200000b4 // 2d94 + 2d82: 07e2 br 0x2d46 // 2d46 + 2d84: 2000003c .long 0x2000003c + 2d88: 200000a8 .long 0x200000a8 + 2d8c: 200000ac .long 0x200000ac + 2d90: 200000b0 .long 0x200000b0 + 2d94: 200000b4 .long 0x200000b4 + +Disassembly of section .text.UART2IntHandler: + +00002d98 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 2d98: 1460 nie + 2d9a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2d9c: 1071 lrw r3, 0x20000038 // 2de0 + 2d9e: 3102 movi r1, 2 + 2da0: 9360 ld.w r3, (r3, 0x0) + 2da2: 9343 ld.w r2, (r3, 0xc) + 2da4: 6884 and r2, r1 + 2da6: 3a40 cmpnei r2, 0 + 2da8: 0c04 bf 0x2db0 // 2db0 + { + UART2->ISR=UART_RX_IOV_S; + } + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART2->ISR=UART_TX_IOV_S; + 2daa: b323 st.w r1, (r3, 0xc) +// RS485_Comm_End ++; +// } + + } + +} + 2dac: 1463 ipop + 2dae: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2db0: 9343 ld.w r2, (r3, 0xc) + 2db2: 3101 movi r1, 1 + 2db4: 6884 and r2, r1 + 2db6: 3a40 cmpnei r2, 0 + 2db8: 0bf9 bt 0x2daa // 2daa + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2dba: 9343 ld.w r2, (r3, 0xc) + 2dbc: 3108 movi r1, 8 + 2dbe: 6884 and r2, r1 + 2dc0: 3a40 cmpnei r2, 0 + 2dc2: 0bf4 bt 0x2daa // 2daa + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2dc4: 9343 ld.w r2, (r3, 0xc) + 2dc6: 3104 movi r1, 4 + 2dc8: 6884 and r2, r1 + 2dca: 3a40 cmpnei r2, 0 + 2dcc: 0bef bt 0x2daa // 2daa + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2dce: 3280 movi r2, 128 + 2dd0: 9323 ld.w r1, (r3, 0xc) + 2dd2: 424c lsli r2, r2, 12 + 2dd4: 6848 and r1, r2 + 2dd6: 3940 cmpnei r1, 0 + 2dd8: 0fea bf 0x2dac // 2dac + UART2->ISR=UART_TX_DONE_S; + 2dda: b343 st.w r2, (r3, 0xc) +} + 2ddc: 07e8 br 0x2dac // 2dac + 2dde: 0000 bkpt + 2de0: 20000038 .long 0x20000038 + +Disassembly of section .text.SPI0IntHandler: + +00002de4 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 2de4: 1460 nie + 2de6: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 2de8: 1178 lrw r3, 0x20000034 // 2ec8 + 2dea: 3101 movi r1, 1 + 2dec: 9360 ld.w r3, (r3, 0x0) + 2dee: 9347 ld.w r2, (r3, 0x1c) + 2df0: 6884 and r2, r1 + 2df2: 3a40 cmpnei r2, 0 + 2df4: 0c03 bf 0x2dfa // 2dfa + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 2df6: b328 st.w r1, (r3, 0x20) + } + +} + 2df8: 0407 br 0x2e06 // 2e06 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 2dfa: 9347 ld.w r2, (r3, 0x1c) + 2dfc: 3002 movi r0, 2 + 2dfe: 6880 and r2, r0 + 2e00: 3a40 cmpnei r2, 0 + 2e02: 0c04 bf 0x2e0a // 2e0a + SPI0->ICR = SPI_RTIM; + 2e04: b308 st.w r0, (r3, 0x20) +} + 2e06: 1463 ipop + 2e08: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 2e0a: 9347 ld.w r2, (r3, 0x1c) + 2e0c: 3004 movi r0, 4 + 2e0e: 6880 and r2, r0 + 2e10: 3a40 cmpnei r2, 0 + 2e12: 0c55 bf 0x2ebc // 2ebc + SPI0->ICR = SPI_RXIM; + 2e14: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 2e16: 9302 ld.w r0, (r3, 0x8) + 2e18: 32aa movi r2, 170 + 2e1a: 6482 cmpne r0, r2 + 2e1c: 083e bt 0x2e98 // 2e98 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2e1e: 3102 movi r1, 2 + 2e20: 9343 ld.w r2, (r3, 0xc) + 2e22: 6884 and r2, r1 + 2e24: 3a40 cmpnei r2, 0 + 2e26: 0ffd bf 0x2e20 // 2e20 + SPI0->DR = 0x11; + 2e28: 3211 movi r2, 17 + 2e2a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2e2c: 3110 movi r1, 16 + 2e2e: 9343 ld.w r2, (r3, 0xc) + 2e30: 6884 and r2, r1 + 2e32: 3a40 cmpnei r2, 0 + 2e34: 0bfd bt 0x2e2e // 2e2e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2e36: 3102 movi r1, 2 + 2e38: 9343 ld.w r2, (r3, 0xc) + 2e3a: 6884 and r2, r1 + 2e3c: 3a40 cmpnei r2, 0 + 2e3e: 0ffd bf 0x2e38 // 2e38 + SPI0->DR = 0x12; + 2e40: 3212 movi r2, 18 + 2e42: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2e44: 3110 movi r1, 16 + 2e46: 9343 ld.w r2, (r3, 0xc) + 2e48: 6884 and r2, r1 + 2e4a: 3a40 cmpnei r2, 0 + 2e4c: 0bfd bt 0x2e46 // 2e46 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2e4e: 3102 movi r1, 2 + 2e50: 9343 ld.w r2, (r3, 0xc) + 2e52: 6884 and r2, r1 + 2e54: 3a40 cmpnei r2, 0 + 2e56: 0ffd bf 0x2e50 // 2e50 + SPI0->DR = 0x13; + 2e58: 3213 movi r2, 19 + 2e5a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2e5c: 3110 movi r1, 16 + 2e5e: 9343 ld.w r2, (r3, 0xc) + 2e60: 6884 and r2, r1 + 2e62: 3a40 cmpnei r2, 0 + 2e64: 0bfd bt 0x2e5e // 2e5e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2e66: 3102 movi r1, 2 + 2e68: 9343 ld.w r2, (r3, 0xc) + 2e6a: 6884 and r2, r1 + 2e6c: 3a40 cmpnei r2, 0 + 2e6e: 0ffd bf 0x2e68 // 2e68 + SPI0->DR = 0x14; + 2e70: 3214 movi r2, 20 + 2e72: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2e74: 3110 movi r1, 16 + 2e76: 9343 ld.w r2, (r3, 0xc) + 2e78: 6884 and r2, r1 + 2e7a: 3a40 cmpnei r2, 0 + 2e7c: 0bfd bt 0x2e76 // 2e76 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2e7e: 3102 movi r1, 2 + 2e80: 9343 ld.w r2, (r3, 0xc) + 2e82: 6884 and r2, r1 + 2e84: 3a40 cmpnei r2, 0 + 2e86: 0ffd bf 0x2e80 // 2e80 + SPI0->DR = 0x15; + 2e88: 3215 movi r2, 21 + 2e8a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2e8c: 3110 movi r1, 16 + 2e8e: 9343 ld.w r2, (r3, 0xc) + 2e90: 6884 and r2, r1 + 2e92: 3a40 cmpnei r2, 0 + 2e94: 0bfd bt 0x2e8e // 2e8e + 2e96: 07b8 br 0x2e06 // 2e06 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 2e98: 9343 ld.w r2, (r3, 0xc) + 2e9a: 6884 and r2, r1 + 2e9c: 3a40 cmpnei r2, 0 + 2e9e: 0bb4 bt 0x2e06 // 2e06 + SPI0->DR=0x0; //FIFO=0 + 2ea0: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2ea2: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 2ea4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2ea6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2ea8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2eaa: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2eac: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2eae: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2eb0: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2eb2: 9343 ld.w r2, (r3, 0xc) + 2eb4: 6884 and r2, r1 + 2eb6: 3a40 cmpnei r2, 0 + 2eb8: 0bfd bt 0x2eb2 // 2eb2 + 2eba: 07a6 br 0x2e06 // 2e06 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 2ebc: 9347 ld.w r2, (r3, 0x1c) + 2ebe: 3108 movi r1, 8 + 2ec0: 6884 and r2, r1 + 2ec2: 3a40 cmpnei r2, 0 + 2ec4: 0b99 bt 0x2df6 // 2df6 + 2ec6: 07a0 br 0x2e06 // 2e06 + 2ec8: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00002ecc : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 2ecc: 1460 nie + 2ece: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 2ed0: 1073 lrw r3, 0x2000002c // 2f1c + 2ed2: 3104 movi r1, 4 + 2ed4: 9360 ld.w r3, (r3, 0x0) + 2ed6: 9349 ld.w r2, (r3, 0x24) + 2ed8: 6884 and r2, r1 + 2eda: 3a40 cmpnei r2, 0 + 2edc: 0c02 bf 0x2ee0 // 2ee0 + { + SIO0->ICR=0X04; + 2ede: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 2ee0: 9349 ld.w r2, (r3, 0x24) + 2ee2: 3101 movi r1, 1 + 2ee4: 6884 and r2, r1 + 2ee6: 3a40 cmpnei r2, 0 + 2ee8: 0c02 bf 0x2eec // 2eec + { + SIO0->ICR=0X01; + 2eea: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 2eec: 9349 ld.w r2, (r3, 0x24) + 2eee: 3102 movi r1, 2 + 2ef0: 6884 and r2, r1 + 2ef2: 3a40 cmpnei r2, 0 + 2ef4: 0c03 bf 0x2efa // 2efa + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 2ef6: b32b st.w r1, (r3, 0x2c) + } +} + 2ef8: 0410 br 0x2f18 // 2f18 + else if(SIO0->MISR&0X08) //RXBUFFULL + 2efa: 9349 ld.w r2, (r3, 0x24) + 2efc: 3108 movi r1, 8 + 2efe: 6884 and r2, r1 + 2f00: 3a40 cmpnei r2, 0 + 2f02: 0bfa bt 0x2ef6 // 2ef6 + else if(SIO0->MISR&0X010) //BREAK + 2f04: 9349 ld.w r2, (r3, 0x24) + 2f06: 3110 movi r1, 16 + 2f08: 6884 and r2, r1 + 2f0a: 3a40 cmpnei r2, 0 + 2f0c: 0bf5 bt 0x2ef6 // 2ef6 + else if(SIO0->MISR&0X020) //TIMEOUT + 2f0e: 9349 ld.w r2, (r3, 0x24) + 2f10: 3120 movi r1, 32 + 2f12: 6884 and r2, r1 + 2f14: 3a40 cmpnei r2, 0 + 2f16: 0bf0 bt 0x2ef6 // 2ef6 +} + 2f18: 1463 ipop + 2f1a: 1461 nir + 2f1c: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00002f20 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 2f20: 1460 nie + 2f22: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 2f24: 106a lrw r3, 0x2000005c // 2f4c + 2f26: 3101 movi r1, 1 + 2f28: 9360 ld.w r3, (r3, 0x0) + 2f2a: 237f addi r3, 128 + 2f2c: 934c ld.w r2, (r3, 0x30) + 2f2e: 6884 and r2, r1 + 2f30: 3a40 cmpnei r2, 0 + 2f32: 0c04 bf 0x2f3a // 2f3a + { + SYSCON->EXICR = EXI_PIN0; + 2f34: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 2f36: 1463 ipop + 2f38: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 2f3a: 3280 movi r2, 128 + 2f3c: 932c ld.w r1, (r3, 0x30) + 2f3e: 4249 lsli r2, r2, 9 + 2f40: 6848 and r1, r2 + 2f42: 3940 cmpnei r1, 0 + 2f44: 0ff9 bf 0x2f36 // 2f36 + SYSCON->EXICR = EXI_PIN16; + 2f46: b34b st.w r2, (r3, 0x2c) +} + 2f48: 07f7 br 0x2f36 // 2f36 + 2f4a: 0000 bkpt + 2f4c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00002f50 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 2f50: 1460 nie + 2f52: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 2f54: 106a lrw r3, 0x2000005c // 2f7c + 2f56: 3102 movi r1, 2 + 2f58: 9360 ld.w r3, (r3, 0x0) + 2f5a: 237f addi r3, 128 + 2f5c: 934c ld.w r2, (r3, 0x30) + 2f5e: 6884 and r2, r1 + 2f60: 3a40 cmpnei r2, 0 + 2f62: 0c04 bf 0x2f6a // 2f6a + { + SYSCON->EXICR = EXI_PIN1; + 2f64: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 2f66: 1463 ipop + 2f68: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 2f6a: 3280 movi r2, 128 + 2f6c: 932c ld.w r1, (r3, 0x30) + 2f6e: 424a lsli r2, r2, 10 + 2f70: 6848 and r1, r2 + 2f72: 3940 cmpnei r1, 0 + 2f74: 0ff9 bf 0x2f66 // 2f66 + SYSCON->EXICR = EXI_PIN17; + 2f76: b34b st.w r2, (r3, 0x2c) +} + 2f78: 07f7 br 0x2f66 // 2f66 + 2f7a: 0000 bkpt + 2f7c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00002f80 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 2f80: 1460 nie + 2f82: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 2f84: 1070 lrw r3, 0x2000005c // 2fc4 + 2f86: 3104 movi r1, 4 + 2f88: 9360 ld.w r3, (r3, 0x0) + 2f8a: 237f addi r3, 128 + 2f8c: 934c ld.w r2, (r3, 0x30) + 2f8e: 6884 and r2, r1 + 2f90: 3a40 cmpnei r2, 0 + 2f92: 0c04 bf 0x2f9a // 2f9a + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 2f94: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 2f96: 1463 ipop + 2f98: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 2f9a: 934c ld.w r2, (r3, 0x30) + 2f9c: 3108 movi r1, 8 + 2f9e: 6884 and r2, r1 + 2fa0: 3a40 cmpnei r2, 0 + 2fa2: 0bf9 bt 0x2f94 // 2f94 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 2fa4: 3280 movi r2, 128 + 2fa6: 932c ld.w r1, (r3, 0x30) + 2fa8: 424b lsli r2, r2, 11 + 2faa: 6848 and r1, r2 + 2fac: 3940 cmpnei r1, 0 + 2fae: 0c03 bf 0x2fb4 // 2fb4 + SYSCON->EXICR = EXI_PIN19; + 2fb0: b34b st.w r2, (r3, 0x2c) +} + 2fb2: 07f2 br 0x2f96 // 2f96 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 2fb4: 3280 movi r2, 128 + 2fb6: 932c ld.w r1, (r3, 0x30) + 2fb8: 424c lsli r2, r2, 12 + 2fba: 6848 and r1, r2 + 2fbc: 3940 cmpnei r1, 0 + 2fbe: 0bf9 bt 0x2fb0 // 2fb0 + 2fc0: 07eb br 0x2f96 // 2f96 + 2fc2: 0000 bkpt + 2fc4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00002fc8 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 2fc8: 1460 nie + 2fca: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 2fcc: 1066 lrw r3, 0x2000005c // 2fe4 + 2fce: 3110 movi r1, 16 + 2fd0: 9360 ld.w r3, (r3, 0x0) + 2fd2: 237f addi r3, 128 + 2fd4: 934c ld.w r2, (r3, 0x30) + 2fd6: 6884 and r2, r1 + 2fd8: 3a40 cmpnei r2, 0 + 2fda: 0c02 bf 0x2fde // 2fde + { + SYSCON->EXICR = EXI_PIN4; + 2fdc: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 2fde: 1463 ipop + 2fe0: 1461 nir + 2fe2: 0000 bkpt + 2fe4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00002fe8 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 2fe8: 1460 nie + 2fea: 1462 ipush + 2fec: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 2fee: 1079 lrw r3, 0x2000005c // 3050 + 2ff0: 3280 movi r2, 128 + 2ff2: 9360 ld.w r3, (r3, 0x0) + 2ff4: 237f addi r3, 128 + 2ff6: 932c ld.w r1, (r3, 0x30) + 2ff8: 4243 lsli r2, r2, 3 + 2ffa: 6848 and r1, r2 + 2ffc: 3940 cmpnei r1, 0 + 2ffe: 0c07 bf 0x300c // 300c + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 3000: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 3002: d9ee2000 ld.w r15, (r14, 0x0) + 3006: 1401 addi r14, r14, 4 + 3008: 1463 ipop + 300a: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 300c: 3280 movi r2, 128 + 300e: 932c ld.w r1, (r3, 0x30) + 3010: 4244 lsli r2, r2, 4 + 3012: 6848 and r1, r2 + 3014: 3940 cmpnei r1, 0 + 3016: 0bf5 bt 0x3000 // 3000 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 3018: 3280 movi r2, 128 + 301a: 932c ld.w r1, (r3, 0x30) + 301c: 4245 lsli r2, r2, 5 + 301e: 6848 and r1, r2 + 3020: 3940 cmpnei r1, 0 + 3022: 0bef bt 0x3000 // 3000 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 3024: 3280 movi r2, 128 + 3026: 932c ld.w r1, (r3, 0x30) + 3028: 4246 lsli r2, r2, 6 + 302a: 6848 and r1, r2 + 302c: 3940 cmpnei r1, 0 + 302e: 0be9 bt 0x3000 // 3000 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 3030: 3280 movi r2, 128 + 3032: 932c ld.w r1, (r3, 0x30) + 3034: 4247 lsli r2, r2, 7 + 3036: 6848 and r1, r2 + 3038: 3940 cmpnei r1, 0 + 303a: 0be3 bt 0x3000 // 3000 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 303c: 3280 movi r2, 128 + 303e: 932c ld.w r1, (r3, 0x30) + 3040: 4248 lsli r2, r2, 8 + 3042: 6848 and r1, r2 + 3044: 3940 cmpnei r1, 0 + 3046: 0fde bf 0x3002 // 3002 + SYSCON->EXICR = EXI_PIN15; + 3048: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 304a: e00002eb bsr 0x3620 // 3620 +} + 304e: 07da br 0x3002 // 3002 + 3050: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00003054 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 3054: 1460 nie + 3056: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 3058: 106b lrw r3, 0x20000014 // 3084 + 305a: 3101 movi r1, 1 + 305c: 9360 ld.w r3, (r3, 0x0) + 305e: 934e ld.w r2, (r3, 0x38) + 3060: 6884 and r2, r1 + 3062: 3a40 cmpnei r2, 0 + 3064: 0c03 bf 0x306a // 306a + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 3066: b330 st.w r1, (r3, 0x40) + } +} + 3068: 040b br 0x307e // 307e + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 306a: 934e ld.w r2, (r3, 0x38) + 306c: 3102 movi r1, 2 + 306e: 6884 and r2, r1 + 3070: 3a40 cmpnei r2, 0 + 3072: 0bfa bt 0x3066 // 3066 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3074: 934e ld.w r2, (r3, 0x38) + 3076: 3104 movi r1, 4 + 3078: 6884 and r2, r1 + 307a: 3a40 cmpnei r2, 0 + 307c: 0bf5 bt 0x3066 // 3066 +} + 307e: 1463 ipop + 3080: 1461 nir + 3082: 0000 bkpt + 3084: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00003088 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 3088: 1460 nie + 308a: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 308c: 1071 lrw r3, 0x2000000c // 30d0 + 308e: 3101 movi r1, 1 + 3090: 9360 ld.w r3, (r3, 0x0) + 3092: 934c ld.w r2, (r3, 0x30) + 3094: 6884 and r2, r1 + 3096: 3a40 cmpnei r2, 0 + 3098: 0c0a bf 0x30ac // 30ac + { + BT0->ICR = BT_PEND; + 309a: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 309c: 9341 ld.w r2, (r3, 0x4) + 309e: 3a86 bclri r2, 6 + 30a0: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 30a2: 9340 ld.w r2, (r3, 0x0) + 30a4: 3200 movi r2, 0 + 30a6: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 30a8: 1463 ipop + 30aa: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 30ac: 934c ld.w r2, (r3, 0x30) + 30ae: 3102 movi r1, 2 + 30b0: 6884 and r2, r1 + 30b2: 3a40 cmpnei r2, 0 + 30b4: 0c03 bf 0x30ba // 30ba + BT0->ICR = BT_EVTRG; + 30b6: b32d st.w r1, (r3, 0x34) +} + 30b8: 07f8 br 0x30a8 // 30a8 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 30ba: 934c ld.w r2, (r3, 0x30) + 30bc: 3104 movi r1, 4 + 30be: 6884 and r2, r1 + 30c0: 3a40 cmpnei r2, 0 + 30c2: 0bfa bt 0x30b6 // 30b6 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 30c4: 934c ld.w r2, (r3, 0x30) + 30c6: 3108 movi r1, 8 + 30c8: 6884 and r2, r1 + 30ca: 3a40 cmpnei r2, 0 + 30cc: 0bf5 bt 0x30b6 // 30b6 + 30ce: 07ed br 0x30a8 // 30a8 + 30d0: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000030d4 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 30d4: 1460 nie + 30d6: 1462 ipush + 30d8: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 30da: 1079 lrw r3, 0x20000008 // 313c + 30dc: 3101 movi r1, 1 + 30de: 9360 ld.w r3, (r3, 0x0) + 30e0: 934c ld.w r2, (r3, 0x30) + 30e2: 6884 and r2, r1 + 30e4: 3a40 cmpnei r2, 0 + 30e6: 0c03 bf 0x30ec // 30ec + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 30e8: b32d st.w r1, (r3, 0x34) + } +} + 30ea: 0418 br 0x311a // 311a + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 30ec: 934c ld.w r2, (r3, 0x30) + 30ee: 3102 movi r1, 2 + 30f0: 6884 and r2, r1 + 30f2: 3a40 cmpnei r2, 0 + 30f4: 0c18 bf 0x3124 // 3124 + BT1->ICR = BT_CMP; + 30f6: b32d st.w r1, (r3, 0x34) + NUM++; + 30f8: 1072 lrw r3, 0x2000009c // 3140 + 30fa: 8340 ld.b r2, (r3, 0x0) + 30fc: 2200 addi r2, 1 + 30fe: 7488 zextb r2, r2 + SysTick_100us++; + 3100: 9321 ld.w r1, (r3, 0x4) + 3102: 2100 addi r1, 1 + if(NUM >= 10){ + 3104: 3a09 cmphsi r2, 10 + NUM++; + 3106: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 3108: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 310a: 0c08 bf 0x311a // 311a + NUM = 0; + 310c: 3200 movi r2, 0 + 310e: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 3110: 9342 ld.w r2, (r3, 0x8) + 3112: 2200 addi r2, 1 + 3114: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 3116: e0000267 bsr 0x35e4 // 35e4 +} + 311a: d9ee2000 ld.w r15, (r14, 0x0) + 311e: 1401 addi r14, r14, 4 + 3120: 1463 ipop + 3122: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 3124: 934c ld.w r2, (r3, 0x30) + 3126: 3104 movi r1, 4 + 3128: 6884 and r2, r1 + 312a: 3a40 cmpnei r2, 0 + 312c: 0bde bt 0x30e8 // 30e8 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 312e: 934c ld.w r2, (r3, 0x30) + 3130: 3108 movi r1, 8 + 3132: 6884 and r2, r1 + 3134: 3a40 cmpnei r2, 0 + 3136: 0bd9 bt 0x30e8 // 30e8 + 3138: 07f1 br 0x311a // 311a + 313a: 0000 bkpt + 313c: 20000008 .long 0x20000008 + 3140: 2000009c .long 0x2000009c + +Disassembly of section .text.PriviledgeVioHandler: + +00003144 : + 3144: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00003146 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 3146: 1460 nie + 3148: 1462 ipush + // ISR content ... + +} + 314a: 1463 ipop + 314c: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000314e : + 314e: 1460 nie + 3150: 1462 ipush + 3152: 1463 ipop + 3154: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00003156 : + 3156: 1460 nie + 3158: 1462 ipush + 315a: 1463 ipop + 315c: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000315e : + 315e: 1460 nie + 3160: 1462 ipush + 3162: 1463 ipop + 3164: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00003166 : + 3166: 1460 nie + 3168: 1462 ipush + 316a: 1463 ipop + 316c: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000316e : + 316e: 1460 nie + 3170: 1462 ipush + 3172: 1463 ipop + 3174: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00003176 : + 3176: 1460 nie + 3178: 1462 ipush + 317a: 1463 ipop + 317c: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +0000317e : + 317e: 1460 nie + 3180: 1462 ipush + 3182: 1463 ipop + 3184: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00003186 : + 3186: 1460 nie + 3188: 1462 ipush + 318a: 1463 ipop + 318c: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +0000318e : + 318e: 1460 nie + 3190: 1462 ipush + 3192: 1463 ipop + 3194: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00003196 : + 3196: 1460 nie + 3198: 1462 ipush + 319a: 1463 ipop + 319c: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000319e : + 319e: 1460 nie + 31a0: 1462 ipush + 31a2: 1463 ipop + 31a4: 1461 nir + +Disassembly of section .text.__divsi3: + +000031a8 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 31a8: 14c1 push r4 + int PSR; + __asm volatile( + 31aa: c0006023 mfcr r3, cr<0, 0> + 31ae: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 31b2: 1046 lrw r2, 0x20000000 // 31c8 <__divsi3+0x20> + 31b4: 3400 movi r4, 0 + 31b6: 9240 ld.w r2, (r2, 0x0) + 31b8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 31ba: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 31bc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 31be: b221 st.w r1, (r2, 0x4) + __asm volatile( + 31c0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 31c4: 9202 ld.w r0, (r2, 0x8) +} + 31c6: 1481 pop r4 + 31c8: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000031cc <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 31cc: 14c1 push r4 + int PSR; + __asm volatile( + 31ce: c0006023 mfcr r3, cr<0, 0> + 31d2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 31d6: 1046 lrw r2, 0x20000000 // 31ec <__udivsi3+0x20> + 31d8: 3401 movi r4, 1 + 31da: 9240 ld.w r2, (r2, 0x0) + 31dc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 31de: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 31e0: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 31e2: b221 st.w r1, (r2, 0x4) + __asm volatile( + 31e4: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 31e8: 9202 ld.w r0, (r2, 0x8) +} + 31ea: 1481 pop r4 + 31ec: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +000031f0 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 31f0: 14c1 push r4 + int PSR; + __asm volatile( + 31f2: c0006023 mfcr r3, cr<0, 0> + 31f6: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 31fa: 1046 lrw r2, 0x20000000 // 3210 <__umodsi3+0x20> + 31fc: 3401 movi r4, 1 + 31fe: 9240 ld.w r2, (r2, 0x0) + 3200: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3202: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3204: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3206: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3208: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 320c: 9203 ld.w r0, (r2, 0xc) +} + 320e: 1481 pop r4 + 3210: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00003214 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 3214: c1807420 psrset ee, ie +} + 3218: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000321a : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 321a: c0807020 psrclr ie +} + 321e: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00003220 : +UART_t g_uart; //空间不足,只能用一个串口 +UART_t g_uart1; //空间不足,只能用一个串口 +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3220: 14d1 push r4, r15 + switch((U8_T)uart_id){ + 3222: 7400 zextb r0, r0 + 3224: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3226: 6d07 mov r4, r1 + switch((U8_T)uart_id){ + 3228: 0c13 bf 0x324e // 324e + 322a: 3840 cmpnei r0, 0 + 322c: 0c04 bf 0x3234 // 3234 + 322e: 3842 cmpnei r0, 2 + 3230: 0c7f bf 0x332e // 332e +// GPIO_DriveStrength_EN(GPIOB0,3); +// GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 3232: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 3234: e3fff8f4 bsr 0x241c // 241c + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 3238: 3100 movi r1, 0 + 323a: 3000 movi r0, 0 + 323c: e3fff930 bsr 0x249c // 249c + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 3240: 1263 lrw r3, 0x20000040 // 334c + 3242: 3200 movi r2, 0 + 3244: 9300 ld.w r0, (r3, 0x0) + 3246: 1223 lrw r1, 0x1388 // 3350 + 3248: e3fff9a0 bsr 0x2588 // 2588 + break; + 324c: 07f3 br 0x3232 // 3232 + memset(&g_uart1,0,sizeof(UART_t)); + 324e: 32a0 movi r2, 160 + 3250: 3100 movi r1, 0 + 3252: 1201 lrw r0, 0x20000218 // 3354 + 3254: e3fff394 bsr 0x197c // 197c <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 3258: 32a4 movi r2, 164 + 325a: 3100 movi r1, 0 + 325c: 111f lrw r0, 0x200002b8 // 3358 + 325e: e3fff38f bsr 0x197c // 197c <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 3262: 117f lrw r3, 0x20000298 // 335c + 3264: 3203 movi r2, 3 + 3266: b345 st.w r2, (r3, 0x14) + g_uart1.processing_cf = prt_cf; + 3268: b387 st.w r4, (r3, 0x1c) + GPIO_PullHigh_Init(GPIOA0,15); + 326a: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 326c: 117d lrw r3, 0x200000a4 // 3360 + GPIO_PullHigh_Init(GPIOA0,15); + 326e: 119e lrw r4, 0x2000004c // 3364 + m_send.BusState_Tick = SysTick_1ms; + 3270: 9340 ld.w r2, (r3, 0x0) + 3272: 117e lrw r3, 0x20000338 // 3368 + 3274: b346 st.w r2, (r3, 0x18) + GPIO_PullHigh_Init(GPIOA0,15); + 3276: 9400 ld.w r0, (r4, 0x0) + m_send.HighBit_Flag = 0x01; + 3278: 3201 movi r2, 1 + 327a: a341 st.b r2, (r3, 0x1) + GPIO_PullHigh_Init(GPIOA0,15); + 327c: e3fff640 bsr 0x1efc // 1efc + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 3280: 320f movi r2, 15 + 3282: 310f movi r1, 15 + 3284: 3000 movi r0, 0 + 3286: e3fff64d bsr 0x1f20 // 1f20 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 328a: 300f movi r0, 15 + 328c: e3fff6d0 bsr 0x202c // 202c + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 3290: 3180 movi r1, 128 + 3292: 3201 movi r2, 1 + 3294: 4128 lsli r1, r1, 8 + 3296: 3001 movi r0, 1 + 3298: e3fff548 bsr 0x1d28 // 1d28 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 329c: 3180 movi r1, 128 + 329e: 3200 movi r2, 0 + 32a0: 4128 lsli r1, r1, 8 + 32a2: 3001 movi r0, 1 + 32a4: e3fff542 bsr 0x1d28 // 1d28 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 32a8: 3180 movi r1, 128 + 32aa: 4128 lsli r1, r1, 8 + 32ac: 3001 movi r0, 1 + 32ae: e3fff55d bsr 0x1d68 // 1d68 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 32b2: 3180 movi r1, 128 + 32b4: 9400 ld.w r0, (r4, 0x0) + 32b6: 4128 lsli r1, r1, 8 + 32b8: e3fff572 bsr 0x1d9c // 1d9c + EXI4_Int_Enable(); + 32bc: e3fff572 bsr 0x1da0 // 1da0 + UART1_DeInit(); //clear all UART Register + 32c0: e3fff8ba bsr 0x2434 // 2434 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 32c4: 3102 movi r1, 2 + 32c6: 3001 movi r0, 1 + 32c8: e3fff8ea bsr 0x249c // 249c + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 32cc: 1168 lrw r3, 0x2000003c // 336c + 32ce: 3200 movi r2, 0 + 32d0: 9300 ld.w r0, (r3, 0x0) + 32d2: 1120 lrw r1, 0x1388 // 3350 + 32d4: e3fff95a bsr 0x2588 // 2588 + UART1_Int_Enable(); + 32d8: e3fff8c6 bsr 0x2464 // 2464 + GPIO_Init(GPIOA0,LED_TX_PIN,Output); + 32dc: 9400 ld.w r0, (r4, 0x0) + 32de: 3200 movi r2, 0 + 32e0: 3100 movi r1, 0 + 32e2: e3fff59d bsr 0x1e1c // 1e1c + GPIO_Init(GPIOA0,LED_RX_PIN,Output); + 32e6: 9400 ld.w r0, (r4, 0x0) + 32e8: 3200 movi r2, 0 + 32ea: 3101 movi r1, 1 + 32ec: e3fff598 bsr 0x1e1c // 1e1c + GPIO_Init(GPIOA0,LED_STATUS_PIN,Output); + 32f0: 3200 movi r2, 0 + 32f2: 9400 ld.w r0, (r4, 0x0) + 32f4: 3104 movi r1, 4 + 32f6: e3fff593 bsr 0x1e1c // 1e1c + TX_LED_OFF; + 32fa: 9400 ld.w r0, (r4, 0x0) + 32fc: 3100 movi r1, 0 + 32fe: e3fff715 bsr 0x2128 // 2128 + RX_LED_OFF; + 3302: 9400 ld.w r0, (r4, 0x0) + 3304: 3101 movi r1, 1 + 3306: e3fff711 bsr 0x2128 // 2128 + STATUS_LED_ON; + 330a: 9400 ld.w r0, (r4, 0x0) + 330c: 3104 movi r1, 4 + 330e: e3fff711 bsr 0x2130 // 2130 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 3312: 3200 movi r2, 0 + 3314: 9400 ld.w r0, (r4, 0x0) + 3316: 3107 movi r1, 7 + 3318: e3fff582 bsr 0x1e1c // 1e1c + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 331c: 9400 ld.w r0, (r4, 0x0) + 331e: 3107 movi r1, 7 + 3320: e3fff5f8 bsr 0x1f10 // 1f10 + WRITE_LOW_DR; + 3324: 9400 ld.w r0, (r4, 0x0) + 3326: 3107 movi r1, 7 + 3328: e3fff704 bsr 0x2130 // 2130 + break; + 332c: 0783 br 0x3232 // 3232 + UART2_DeInit(); //clear all UART Register + 332e: e3fff88f bsr 0x244c // 244c + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3332: 3102 movi r1, 2 + 3334: 3002 movi r0, 2 + 3336: e3fff8b3 bsr 0x249c // 249c + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 333a: 106e lrw r3, 0x20000038 // 3370 + 333c: 3200 movi r2, 0 + 333e: 9300 ld.w r0, (r3, 0x0) + 3340: 1024 lrw r1, 0x1388 // 3350 + 3342: e3fff923 bsr 0x2588 // 2588 + UART2_Int_Enable(); + 3346: e3fff89d bsr 0x2480 // 2480 +} + 334a: 0774 br 0x3232 // 3232 + 334c: 20000040 .long 0x20000040 + 3350: 00001388 .long 0x00001388 + 3354: 20000218 .long 0x20000218 + 3358: 200002b8 .long 0x200002b8 + 335c: 20000298 .long 0x20000298 + 3360: 200000a4 .long 0x200000a4 + 3364: 2000004c .long 0x2000004c + 3368: 20000338 .long 0x20000338 + 336c: 2000003c .long 0x2000003c + 3370: 20000038 .long 0x20000038 + +Disassembly of section .text.UART1_RecvINT_Processing: + +00003374 : + +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + 3374: 14d0 push r15 + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 3376: 106d lrw r3, 0x20000298 // 33a8 + 3378: 8b28 ld.h r1, (r3, 0x10) + 337a: 3244 movi r2, 68 + 337c: 6449 cmplt r2, r1 + 337e: 0c03 bf 0x3384 // 3384 + 3380: 3200 movi r2, 0 + 3382: ab48 st.h r2, (r3, 0x10) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 3384: 8b48 ld.h r2, (r3, 0x10) + 3386: 5a22 addi r1, r2, 1 + 3388: ab28 st.h r1, (r3, 0x10) + 338a: 1029 lrw r1, 0x20000218 // 33ac + 338c: 6084 addu r2, r1 + 338e: a200 st.b r0, (r2, 0x0) + + g_uart1.RecvIdleTiming = SysTick_1ms; + g_uart1.Receiving = 0x01; + + RX_LED_ON; + 3390: 3101 movi r1, 1 + g_uart1.RecvIdleTiming = SysTick_1ms; + 3392: 1048 lrw r2, 0x200000a4 // 33b0 + 3394: 9240 ld.w r2, (r2, 0x0) + 3396: b346 st.w r2, (r3, 0x18) + g_uart1.Receiving = 0x01; + 3398: 3201 movi r2, 1 + 339a: a34c st.b r2, (r3, 0xc) + RX_LED_ON; + 339c: 1066 lrw r3, 0x2000004c // 33b4 + 339e: 9300 ld.w r0, (r3, 0x0) + 33a0: e3fff6c8 bsr 0x2130 // 2130 +} + 33a4: 1490 pop r15 + 33a6: 0000 bkpt + 33a8: 20000298 .long 0x20000298 + 33ac: 20000218 .long 0x20000218 + 33b0: 200000a4 .long 0x200000a4 + 33b4: 2000004c .long 0x2000004c + +Disassembly of section .text.UART1_TASK: + +000033b8 : + +void UART1_TASK(void){ + 33b8: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart1.Receiving == 0x01){ + 33ba: 1097 lrw r4, 0x20000298 // 3414 + 33bc: 846c ld.b r3, (r4, 0xc) + 33be: 3b41 cmpnei r3, 1 + 33c0: 0828 bt 0x3410 // 3410 + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + 33c2: 10b6 lrw r5, 0x200000a4 // 3418 + 33c4: 9560 ld.w r3, (r5, 0x0) + 33c6: 9446 ld.w r2, (r4, 0x18) + 33c8: 60ca subu r3, r2 + 33ca: 9445 ld.w r2, (r4, 0x14) + 33cc: 64c8 cmphs r2, r3 + 33ce: 0821 bt 0x3410 // 3410 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 33d0: e3fff4f6 bsr 0x1dbc // 1dbc + g_uart1.RecvIdleTiming = SysTick_1ms; + 33d4: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 33d6: 8c48 ld.h r2, (r4, 0x10) + 33d8: 1031 lrw r1, 0x20000218 // 341c + 33da: 1012 lrw r0, 0x2000025e // 3420 + g_uart1.RecvIdleTiming = SysTick_1ms; + 33dc: b466 st.w r3, (r4, 0x18) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 33de: e3fff313 bsr 0x1a04 // 1a04 <__memcpy_fast> + g_uart1.DealLen = g_uart1.RecvLen; + 33e2: 8c68 ld.h r3, (r4, 0x10) + 33e4: ac67 st.h r3, (r4, 0xe) + g_uart1.RecvLen = 0; + 33e6: 3300 movi r3, 0 + 33e8: ac68 st.h r3, (r4, 0x10) + g_uart1.Receiving = 0; + 33ea: a46c st.b r3, (r4, 0xc) + SYSCON_Int_Enable(); + 33ec: e3fff4e2 bsr 0x1db0 // 1db0 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); +#endif + if(g_uart1.processing_cf != NULL){ + 33f0: 9467 ld.w r3, (r4, 0x1c) + 33f2: 3b40 cmpnei r3, 0 + 33f4: 0c04 bf 0x33fc // 33fc + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + 33f6: 8c27 ld.h r1, (r4, 0xe) + 33f8: 100a lrw r0, 0x2000025e // 3420 + 33fa: 7bcd jsr r3 +// /*Boot处理函数 */ +// if(rev != 0x00) +// { +// Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); +// } + RX_LED_OFF; + 33fc: 106a lrw r3, 0x2000004c // 3424 + 33fe: 3101 movi r1, 1 + 3400: 9300 ld.w r0, (r3, 0x0) + 3402: e3fff693 bsr 0x2128 // 2128 + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + 3406: 3246 movi r2, 70 + 3408: 3100 movi r1, 0 + 340a: 1006 lrw r0, 0x2000025e // 3420 + 340c: e3fff2b8 bsr 0x197c // 197c <__memset_fast> + } + } +} + 3410: 1492 pop r4-r5, r15 + 3412: 0000 bkpt + 3414: 20000298 .long 0x20000298 + 3418: 200000a4 .long 0x200000a4 + 341c: 20000218 .long 0x20000218 + 3420: 2000025e .long 0x2000025e + 3424: 2000004c .long 0x2000004c + +Disassembly of section .text.BUS485_Send: + +00003428 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 3428: 14d4 push r4-r7, r15 + 342a: 1423 subi r14, r14, 12 + 342c: b802 st.w r0, (r14, 0x8) + 342e: b821 st.w r1, (r14, 0x4) + unsigned int Dataval = 0,delay_cnt = 0; + 3430: 3600 movi r6, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3432: 118d lrw r4, 0x200000a8 // 34e4 + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 3434: 11ad lrw r5, 0x2000004c // 34e8 + while(RS485_Comming == 0x01){ + 3436: 9460 ld.w r3, (r4, 0x0) + 3438: 3b41 cmpnei r3, 1 + 343a: 0c47 bf 0x34c8 // 34c8 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 343c: 116c lrw r3, 0x20000338 // 34ec + 343e: 83e0 ld.b r7, (r3, 0x0) + 3440: 3f40 cmpnei r7, 0 + 3442: b860 st.w r3, (r14, 0x0) + 3444: 084e bt 0x34e0 // 34e0 + + TX_LED_ON; + 3446: 11a9 lrw r5, 0x2000004c // 34e8 + 3448: 3100 movi r1, 0 + 344a: 9500 ld.w r0, (r5, 0x0) + 344c: e3fff672 bsr 0x2130 // 2130 + CK_CPU_DisAllNormalIrq(); + 3450: e3fffee5 bsr 0x321a // 321a + + WRITE_HIGH_DR; //485_DR + 3454: 3107 movi r1, 7 + 3456: 9500 ld.w r0, (r5, 0x0) + 3458: e3fff668 bsr 0x2128 // 2128 + + RS485_Comm_Flag = 0x01; + 345c: 3301 movi r3, 1 + 345e: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3460: 3201 movi r2, 1 + 3462: 9860 ld.w r3, (r14, 0x0) + 3464: a340 st.b r2, (r3, 0x0) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 3466: a342 st.b r2, (r3, 0x2) + RS485_Comm_Start = 0x00; + 3468: b4e2 st.w r7, (r4, 0x8) + RS485_Comm_End = 0x00; + 346a: b4e3 st.w r7, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 346c: e3fffed4 bsr 0x3214 // 3214 + + UARTTransmit(UART1,buff,len); + 3470: 1160 lrw r3, 0x2000003c // 34f0 + 3472: 9300 ld.w r0, (r3, 0x0) + 3474: 9841 ld.w r2, (r14, 0x4) + 3476: 9822 ld.w r1, (r14, 0x8) + 3478: e3fff890 bsr 0x2598 // 2598 + do{ + delay_nus(100); + 347c: 3064 movi r0, 100 + 347e: e3fff943 bsr 0x2704 // 2704 + delay_cnt ++; + 3482: 2600 addi r6, 1 + if(delay_cnt >= 100){ + 3484: 3363 movi r3, 99 + 3486: 658c cmphs r3, r6 + 3488: 0c08 bf 0x3498 // 3498 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 348a: 9462 ld.w r3, (r4, 0x8) + 348c: 9841 ld.w r2, (r14, 0x4) + 348e: 648d cmplt r3, r2 + 3490: 0bf6 bt 0x347c // 347c + 3492: 9463 ld.w r3, (r4, 0xc) + 3494: 648d cmplt r3, r2 + 3496: 0bf3 bt 0x347c // 347c + + CK_CPU_DisAllNormalIrq(); + 3498: e3fffec1 bsr 0x321a // 321a + + WRITE_LOW_DR; //485_DR + 349c: 3107 movi r1, 7 + 349e: 9500 ld.w r0, (r5, 0x0) + 34a0: e3fff648 bsr 0x2130 // 2130 + + RS485_Comm_Flag = 0x00; + 34a4: 3300 movi r3, 0 + 34a6: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 34a8: 9840 ld.w r2, (r14, 0x0) + 34aa: 1073 lrw r3, 0x200000a4 // 34f4 + 34ac: 9360 ld.w r3, (r3, 0x0) + 34ae: b266 st.w r3, (r2, 0x18) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 34b0: 6ccb mov r3, r2 + 34b2: 3200 movi r2, 0 + 34b4: a342 st.b r2, (r3, 0x2) + + CK_CPU_EnAllNormalIrq(); + 34b6: e3fffeaf bsr 0x3214 // 3214 + + TX_LED_OFF; + 34ba: 9500 ld.w r0, (r5, 0x0) + 34bc: 3100 movi r1, 0 + 34be: e3fff635 bsr 0x2128 // 2128 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 34c2: 6c1f mov r0, r7 + 34c4: 1403 addi r14, r14, 12 + 34c6: 1494 pop r4-r7, r15 + delay_nus(100); + 34c8: 3064 movi r0, 100 + 34ca: e3fff91d bsr 0x2704 // 2704 + delay_cnt ++; + 34ce: 2600 addi r6, 1 + if(delay_cnt >= 100){ + 34d0: 3364 movi r3, 100 + 34d2: 64da cmpne r6, r3 + 34d4: 0fb4 bf 0x343c // 343c + REVERISE_DR; //485_DR + 34d6: 3107 movi r1, 7 + 34d8: 9500 ld.w r0, (r5, 0x0) + 34da: e3fff62f bsr 0x2138 // 2138 + 34de: 07ac br 0x3436 // 3436 + return UART_BUSBUSY; //发送失败 + 34e0: 3701 movi r7, 1 + 34e2: 07f0 br 0x34c2 // 34c2 + 34e4: 200000a8 .long 0x200000a8 + 34e8: 2000004c .long 0x2000004c + 34ec: 20000338 .long 0x20000338 + 34f0: 2000003c .long 0x2000003c + 34f4: 200000a4 .long 0x200000a4 + +Disassembly of section .text.MultSend_Task: + +000034f8 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 34f8: 14d3 push r4-r6, r15 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 34fa: 5963 subi r3, r1, 1 + 34fc: 74cd zexth r3, r3 + 34fe: 347f movi r4, 127 + 3500: 64d0 cmphs r4, r3 + 3502: 0c23 bf 0x3548 // 3548 + + if(DatSd == 0x01) + 3504: 3a41 cmpnei r2, 1 + 3506: 0c03 bf 0x350c // 350c + }else{ + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3508: 3001 movi r0, 1 +} + 350a: 1493 pop r4-r6, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 350c: 1092 lrw r4, 0x20000338 // 3554 + 350e: 8444 ld.b r2, (r4, 0x4) + 3510: 8466 ld.b r3, (r4, 0x6) + 3512: 64c8 cmphs r2, r3 + 3514: 081c bt 0x354c // 354c + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 3516: 10b1 lrw r5, 0x200000a4 // 3558 + 3518: 9560 ld.w r3, (r5, 0x0) + 351a: 94c8 ld.w r6, (r4, 0x20) + 351c: 60da subu r3, r6 + 351e: 94c5 ld.w r6, (r4, 0x14) + 3520: 658c cmphs r3, r6 + 3522: 0817 bt 0x3550 // 3550 + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 3524: 3a40 cmpnei r2, 0 + 3526: 0c07 bf 0x3534 // 3534 + 3528: 9447 ld.w r2, (r4, 0x1c) + 352a: 9560 ld.w r3, (r5, 0x0) + 352c: 60ca subu r3, r2 + 352e: 9444 ld.w r2, (r4, 0x10) + 3530: 648c cmphs r3, r2 + 3532: 0feb bf 0x3508 // 3508 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 3534: e3ffff7a bsr 0x3428 // 3428 + 3538: 3840 cmpnei r0, 0 + 353a: 0be7 bt 0x3508 // 3508 + m_send.ASend_Tick = SysTick_1ms; + 353c: 9560 ld.w r3, (r5, 0x0) + 353e: b467 st.w r3, (r4, 0x1c) + m_send.ResendCnt++; + 3540: 8464 ld.b r3, (r4, 0x4) + 3542: 2300 addi r3, 1 + 3544: a464 st.b r3, (r4, 0x4) + 3546: 07e2 br 0x350a // 350a + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3548: 3004 movi r0, 4 + 354a: 07e0 br 0x350a // 350a + return RETRY_END;//没有重发次数 + 354c: 3003 movi r0, 3 + 354e: 07de br 0x350a // 350a + return DATA_END;//数据有效期结束 + 3550: 3002 movi r0, 2 + 3552: 07dc br 0x350a // 350a + 3554: 20000338 .long 0x20000338 + 3558: 200000a4 .long 0x200000a4 + +Disassembly of section .text.Set_GroupSend: + +0000355c : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 355c: 14d4 push r4-r7, r15 + 355e: 1421 subi r14, r14, 4 + 3560: 6dcf mov r7, r3 + 3562: 9866 ld.w r3, (r14, 0x18) + 3564: b860 st.w r3, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3566: 5963 subi r3, r1, 1 +{ + 3568: 6d4b mov r5, r2 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 356a: 74cd zexth r3, r3 + 356c: 327f movi r2, 127 + 356e: 64c8 cmphs r2, r3 +{ + 3570: 6d83 mov r6, r0 + 3572: 6d07 mov r4, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3574: 0c19 bf 0x35a6 // 35a6 + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 3576: 3280 movi r2, 128 + 3578: 3100 movi r1, 0 + 357a: 100d lrw r0, 0x200002b8 // 35ac + 357c: e3fff200 bsr 0x197c // 197c <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 3580: 6c93 mov r2, r4 + 3582: 6c5b mov r1, r6 + 3584: 100a lrw r0, 0x200002b8 // 35ac + 3586: e3fff23f bsr 0x1a04 // 1a04 <__memcpy_fast> + m_send.SendLen = sled; + 358a: 106a lrw r3, 0x20000338 // 35b0 + + m_send.DataValid_Time = indate;//数据有效期 + m_send.TotalCnt = SCnt; //数据发送次数 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 358c: 9840 ld.w r2, (r14, 0x0) + 358e: b344 st.w r2, (r3, 0x10) + + m_send.ASend_Flag = 0x01; + 3590: 3201 movi r2, 1 + 3592: a345 st.b r2, (r3, 0x5) + m_send.SendState = BUSSEND_WAIT; + 3594: a343 st.b r2, (r3, 0x3) + m_send.ResendCnt = 0x00; + 3596: 3200 movi r2, 0 + 3598: a344 st.b r2, (r3, 0x4) + m_send.SendLen = sled; + 359a: ab85 st.h r4, (r3, 0xa) + m_send.DataValid_Time = indate;//数据有效期 + 359c: b3e5 st.w r7, (r3, 0x14) + m_send.TotalCnt = SCnt; //数据发送次数 + 359e: a3a6 st.b r5, (r3, 0x6) + m_send.BusbusyTimeout = SysTick_1ms; + 35a0: 1045 lrw r2, 0x200000a4 // 35b4 + 35a2: 9240 ld.w r2, (r2, 0x0) + 35a4: b348 st.w r2, (r3, 0x20) +} + 35a6: 1401 addi r14, r14, 4 + 35a8: 1494 pop r4-r7, r15 + 35aa: 0000 bkpt + 35ac: 200002b8 .long 0x200002b8 + 35b0: 20000338 .long 0x20000338 + 35b4: 200000a4 .long 0x200000a4 + +Disassembly of section .text.BUS485Send_Task: + +000035b8 : + m_send.Jump_Flag = jump; +} + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 35b8: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 35ba: 1089 lrw r4, 0x20000338 // 35dc + 35bc: 8465 ld.b r3, (r4, 0x5) + 35be: 3b41 cmpnei r3, 1 + 35c0: 080d bt 0x35da // 35da + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 35c2: 8c25 ld.h r1, (r4, 0xa) + 35c4: 3201 movi r2, 1 + 35c6: 1007 lrw r0, 0x200002b8 // 35e0 + 35c8: e3ffff98 bsr 0x34f8 // 34f8 + 35cc: a403 st.b r0, (r4, 0x3) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 35ce: 2801 subi r0, 2 + 35d0: 7400 zextb r0, r0 + 35d2: 3801 cmphsi r0, 2 + 35d4: 0803 bt 0x35da // 35da + { + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发送标志位 + 35d6: 3300 movi r3, 0 + 35d8: a465 st.b r3, (r4, 0x5) + + } + } +} + 35da: 1491 pop r4, r15 + 35dc: 20000338 .long 0x20000338 + 35e0: 200002b8 .long 0x200002b8 + +Disassembly of section .text.BusIdle_Task: + +000035e4 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 35e4: 14d1 push r4, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 35e6: 108d lrw r4, 0x20000338 // 3618 + 35e8: 8460 ld.b r3, (r4, 0x0) + 35ea: 3b40 cmpnei r3, 0 + 35ec: 0c15 bf 0x3616 // 3616 + 35ee: 8462 ld.b r3, (r4, 0x2) + 35f0: 3b41 cmpnei r3, 1 + 35f2: 0c12 bf 0x3616 // 3616 + { + CK_CPU_DisAllNormalIrq(); + 35f4: e3fffe13 bsr 0x321a // 321a + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 35f8: 8461 ld.b r3, (r4, 0x1) + 35fa: 3b41 cmpnei r3, 1 + 35fc: 080b bt 0x3612 // 3612 + 35fe: 1068 lrw r3, 0x200000a4 // 361c + 3600: 9340 ld.w r2, (r3, 0x0) + 3602: 9466 ld.w r3, (r4, 0x18) + 3604: 608e subu r2, r3 + 3606: 9463 ld.w r3, (r4, 0xc) + 3608: 2305 addi r3, 6 + 360a: 64c8 cmphs r2, r3 + 360c: 0c03 bf 0x3612 // 3612 + { + m_send.BusState_Flag = UART_BUSIDLE; + 360e: 3300 movi r3, 0 + 3610: a460 st.b r3, (r4, 0x0) + } + CK_CPU_EnAllNormalIrq(); + 3612: e3fffe01 bsr 0x3214 // 3214 + } +} + 3616: 1491 pop r4, r15 + 3618: 20000338 .long 0x20000338 + 361c: 200000a4 .long 0x200000a4 + +Disassembly of section .text.BusBusy_Task: + +00003620 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 3620: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + 3622: e3fffdfc bsr 0x321a // 321a + m_send.BusState_Flag = UART_BUSBUSY; + 3626: 1091 lrw r4, 0x20000338 // 3668 + 3628: 3301 movi r3, 1 + 362a: a460 st.b r3, (r4, 0x0) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 362c: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 362e: 1070 lrw r3, 0x200000a4 // 366c + + if(READ_RX_LEVEL_STATE == 0x01){ + 3630: 10b0 lrw r5, 0x2000004c // 3670 + m_send.BusState_Tick = SysTick_1ms; + 3632: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3634: 9300 ld.w r0, (r3, 0x0) + 3636: 9467 ld.w r3, (r4, 0x1c) + m_send.BusState_Tick = SysTick_1ms; + 3638: b446 st.w r2, (r4, 0x18) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 363a: 600e subu r0, r3 + 363c: e3fffdda bsr 0x31f0 // 31f0 <__umodsi3> + 3640: b403 st.w r0, (r4, 0xc) + if(READ_RX_LEVEL_STATE == 0x01){ + 3642: 310f movi r1, 15 + 3644: 9500 ld.w r0, (r5, 0x0) + 3646: e3fff584 bsr 0x214e // 214e + 364a: 3841 cmpnei r0, 1 + 364c: 0806 bt 0x3658 // 3658 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 364e: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 3650: a461 st.b r3, (r4, 0x1) + } + CK_CPU_EnAllNormalIrq(); + 3652: e3fffde1 bsr 0x3214 // 3214 +} + 3656: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 3658: 9500 ld.w r0, (r5, 0x0) + 365a: 310f movi r1, 15 + 365c: e3fff579 bsr 0x214e // 214e + 3660: 3840 cmpnei r0, 0 + 3662: 0bf8 bt 0x3652 // 3652 + m_send.HighBit_Flag = 0x00; //低电平 + 3664: 3300 movi r3, 0 + 3666: 07f5 br 0x3650 // 3650 + 3668: 20000338 .long 0x20000338 + 366c: 200000a4 .long 0x200000a4 + 3670: 2000004c .long 0x2000004c + +Disassembly of section .text.Dbg_Println: + +00003674 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3674: 1423 subi r14, r14, 12 + 3676: b862 st.w r3, (r14, 0x8) + 3678: b841 st.w r2, (r14, 0x4) + 367a: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 367c: 1403 addi r14, r14, 12 + 367e: 783c jmp r15 + +Disassembly of section .text.DIP_GetSwitchState: + +00003680 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 3680: 14d0 push r15 + U8_T val = 0; + + switch (i) + 3682: 3841 cmpnei r0, 1 + 3684: 0c0d bf 0x369e // 369e + 3686: 3840 cmpnei r0, 0 + 3688: 0c05 bf 0x3692 // 3692 + 368a: 3842 cmpnei r0, 2 + 368c: 0c0d bf 0x36a6 // 36a6 + U8_T val = 0; + 368e: 3000 movi r0, 0 + 3690: 0406 br 0x369c // 369c + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 3692: 1068 lrw r3, 0x2000004c // 36b0 + 3694: 310a movi r1, 10 + 3696: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 3698: e3fff55b bsr 0x214e // 214e + break; + + } + return val; +} + 369c: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 369e: 1065 lrw r3, 0x2000004c // 36b0 + 36a0: 3109 movi r1, 9 + 36a2: 9300 ld.w r0, (r3, 0x0) + 36a4: 07fa br 0x3698 // 3698 + val = GPIO_Read_Status(GPIOA0,8); + 36a6: 1063 lrw r3, 0x2000004c // 36b0 + 36a8: 3108 movi r1, 8 + 36aa: 9300 ld.w r0, (r3, 0x0) + 36ac: 07f6 br 0x3698 // 3698 + 36ae: 0000 bkpt + 36b0: 2000004c .long 0x2000004c + +Disassembly of section .text.DIP_Switch_Init: + +000036b4 : +void DIP_Switch_Init(void){ + 36b4: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 36b6: 1180 lrw r4, 0x2000004c // 3734 + 36b8: 3201 movi r2, 1 + 36ba: 9400 ld.w r0, (r4, 0x0) + 36bc: 310a movi r1, 10 + 36be: e3fff3af bsr 0x1e1c // 1e1c + GPIO_Init(GPIOA0,9,Intput); + 36c2: 9400 ld.w r0, (r4, 0x0) + 36c4: 3201 movi r2, 1 + 36c6: 3109 movi r1, 9 + 36c8: e3fff3aa bsr 0x1e1c // 1e1c + GPIO_Init(GPIOA0,8,Intput); + 36cc: 3201 movi r2, 1 + 36ce: 9400 ld.w r0, (r4, 0x0) + 36d0: 3108 movi r1, 8 + 36d2: e3fff3a5 bsr 0x1e1c // 1e1c + GPIO_PullHigh_Init(GPIOA0,10); + 36d6: 9400 ld.w r0, (r4, 0x0) + 36d8: 310a movi r1, 10 + 36da: e3fff411 bsr 0x1efc // 1efc + GPIO_PullHigh_Init(GPIOA0,9); + 36de: 9400 ld.w r0, (r4, 0x0) + 36e0: 3109 movi r1, 9 + 36e2: e3fff40d bsr 0x1efc // 1efc + GPIO_PullHigh_Init(GPIOA0,8); + 36e6: 9400 ld.w r0, (r4, 0x0) + 36e8: 3108 movi r1, 8 + 36ea: e3fff409 bsr 0x1efc // 1efc + memset(&g_Dip,0,sizeof(DIP_t)); + 36ee: 3210 movi r2, 16 + 36f0: 3100 movi r1, 0 + 36f2: 1012 lrw r0, 0x2000035c // 3738 + 36f4: e3fff144 bsr 0x197c // 197c <__memset_fast> + delay_nms(20); + 36f8: 3014 movi r0, 20 + 36fa: e3fff7ef bsr 0x26d8 // 26d8 + 36fe: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 3700: 10ae lrw r5, 0x2000035c // 3738 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 3702: 7410 zextb r0, r4 + 3704: e3ffffbe bsr 0x3680 // 3680 + 3708: 3840 cmpnei r0, 0 + 370a: 0807 bt 0x3718 // 3718 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 370c: 3301 movi r3, 1 + 370e: 70d0 lsl r3, r4 + 3710: 6c8f mov r2, r3 + 3712: 9562 ld.w r3, (r5, 0x8) + 3714: 6cc8 or r3, r2 + 3716: b562 st.w r3, (r5, 0x8) + 3718: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 371a: 3c43 cmpnei r4, 3 + 371c: 0bf3 bt 0x3702 // 3702 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 371e: 1067 lrw r3, 0x2000035c // 3738 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 3720: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 3722: 9342 ld.w r2, (r3, 0x8) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 3724: 6848 and r1, r2 + 3726: a326 st.b r1, (r3, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val); + 3728: 3000 movi r0, 0 + 372a: 1025 lrw r1, 0x4d8f // 373c + g_Dip.DIP_last_val = g_Dip.DIP_val; + 372c: b343 st.w r2, (r3, 0xc) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val); + 372e: e3ffffa3 bsr 0x3674 // 3674 +} + 3732: 1492 pop r4-r5, r15 + 3734: 2000004c .long 0x2000004c + 3738: 2000035c .long 0x2000035c + 373c: 00004d8f .long 0x00004d8f + +Disassembly of section .text.DIP_ScanTask: + +00003740 : + +void DIP_ScanTask(void) +{ + 3740: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 3742: 1120 lrw r1, 0x200000a4 // 37c0 + 3744: 1140 lrw r2, 0x200000b8 // 37c4 + 3746: 11a1 lrw r5, 0x2000035c // 37c8 + 3748: 9200 ld.w r0, (r2, 0x0) + 374a: 9160 ld.w r3, (r1, 0x0) + 374c: 60c2 subu r3, r0 + 374e: 3b14 cmphsi r3, 21 + 3750: 0806 bt 0x375c // 375c + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 3752: 9562 ld.w r3, (r5, 0x8) + 3754: 9543 ld.w r2, (r5, 0xc) + 3756: 648e cmpne r3, r2 + 3758: 082e bt 0x37b4 // 37b4 + g_Dip.addr = g_Dip.DIP_val & 0x07; + + + } + +} + 375a: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 375c: 9160 ld.w r3, (r1, 0x0) + 375e: b260 st.w r3, (r2, 0x0) + 3760: 6d17 mov r4, r5 + 3762: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 3764: 7418 zextb r0, r6 + 3766: e3ffff8d bsr 0x3680 // 3680 + 376a: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 376c: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 376e: 0814 bt 0x3796 // 3796 + g_Dip.delayCnt_OFF[i] = 0; + 3770: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 3772: 8460 ld.b r3, (r4, 0x0) + 3774: 3b04 cmphsi r3, 5 + 3776: 0808 bt 0x3786 // 3786 + g_Dip.delayCnt_ON[i]++; + 3778: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 377a: a460 st.b r3, (r4, 0x0) + 377c: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 377e: 3e43 cmpnei r6, 3 + 3780: 2400 addi r4, 1 + 3782: 0bf1 bt 0x3764 // 3764 + 3784: 07e7 br 0x3752 // 3752 + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 3786: 3301 movi r3, 1 + 3788: 70d8 lsl r3, r6 + 378a: 6c8f mov r2, r3 + 378c: 9562 ld.w r3, (r5, 0x8) + 378e: 6cc8 or r3, r2 + 3790: b562 st.w r3, (r5, 0x8) + g_Dip.delayCnt_ON[i] = 0; + 3792: 3300 movi r3, 0 + 3794: 07f3 br 0x377a // 377a + g_Dip.delayCnt_ON[i] = 0; + 3796: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 3798: 8463 ld.b r3, (r4, 0x3) + 379a: 3b04 cmphsi r3, 5 + 379c: 0804 bt 0x37a4 // 37a4 + g_Dip.delayCnt_OFF[i]++; + 379e: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 37a0: a463 st.b r3, (r4, 0x3) + 37a2: 07ed br 0x377c // 377c + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 37a4: 3300 movi r3, 0 + 37a6: 2b01 subi r3, 2 + 37a8: 9542 ld.w r2, (r5, 0x8) + 37aa: 70db rotl r3, r6 + 37ac: 68c8 and r3, r2 + 37ae: b562 st.w r3, (r5, 0x8) + g_Dip.delayCnt_OFF[i] = 0; + 37b0: 3300 movi r3, 0 + 37b2: 07f7 br 0x37a0 // 37a0 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 37b4: 3207 movi r2, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 37b6: b563 st.w r3, (r5, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 37b8: 68c8 and r3, r2 + 37ba: a566 st.b r3, (r5, 0x6) +} + 37bc: 07cf br 0x375a // 375a + 37be: 0000 bkpt + 37c0: 200000a4 .long 0x200000a4 + 37c4: 200000b8 .long 0x200000b8 + 37c8: 2000035c .long 0x2000035c + +Disassembly of section .text.Relay_Init: + +000037cc : +#include "includes.h" + +ZERO_CTRL_RLY c_rly; + +void Relay_Init(void) +{ + 37cc: 14d2 push r4-r5, r15 + 37ce: 1429 subi r14, r14, 36 + memset(&c_rly,0, sizeof(ZERO_CTRL_RLY)); + 37d0: 11ac lrw r5, 0x2000036c // 3880 + 37d2: 3218 movi r2, 24 + 37d4: 3100 movi r1, 0 + 37d6: 6c17 mov r0, r5 + 37d8: e3fff0d2 bsr 0x197c // 197c <__memset_fast> + + EEPROM_Init(); + 37dc: e0000592 bsr 0x4300 // 4300 + + + GPT_IO_Init(GPT_CHB_PB00); + 37e0: 3005 movi r0, 5 + 37e2: e3fff51f bsr 0x2220 // 2220 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 37e6: 3400 movi r4, 0 + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 37e8: 3300 movi r3, 0 + 37ea: 3240 movi r2, 64 + 37ec: 3100 movi r1, 0 + 37ee: 3001 movi r0, 1 + 37f0: e3fff568 bsr 0x22c0 // 22c0 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 37f4: b885 st.w r4, (r14, 0x14) + 37f6: b884 st.w r4, (r14, 0x10) + 37f8: b883 st.w r4, (r14, 0xc) + 37fa: b882 st.w r4, (r14, 0x8) + 37fc: b881 st.w r4, (r14, 0x4) + 37fe: b880 st.w r4, (r14, 0x0) + 3800: 3300 movi r3, 0 + 3802: 3208 movi r2, 8 + 3804: 3100 movi r1, 0 + 3806: 3000 movi r0, 0 + 3808: e3fff566 bsr 0x22d4 // 22d4 + GPT_Period_CMP_Write(10000,0,0); + 380c: 3200 movi r2, 0 + 380e: 3100 movi r1, 0 + 3810: 101d lrw r0, 0x2710 // 3884 + 3812: e3fff5ef bsr 0x23f0 // 23f0 + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 3816: 3320 movi r3, 32 + 3818: 3204 movi r2, 4 + 381a: 3100 movi r1, 0 + 381c: 3001 movi r0, 1 + 381e: e3fff57d bsr 0x2318 // 2318 + GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 3822: 3301 movi r3, 1 + 3824: 3200 movi r2, 0 + 3826: b888 st.w r4, (r14, 0x20) + 3828: b887 st.w r4, (r14, 0x1c) + 382a: b886 st.w r4, (r14, 0x18) + 382c: b885 st.w r4, (r14, 0x14) + 382e: b884 st.w r4, (r14, 0x10) + 3830: b883 st.w r4, (r14, 0xc) + 3832: b862 st.w r3, (r14, 0x8) + 3834: b861 st.w r3, (r14, 0x4) + 3836: b880 st.w r4, (r14, 0x0) + 3838: 3302 movi r3, 2 + 383a: 3100 movi r1, 0 + 383c: 3001 movi r0, 1 + 383e: e3fff577 bsr 0x232c // 232c + GPT_Start(); + 3842: e3fff5cf bsr 0x23e0 // 23e0 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 3846: 3180 movi r1, 128 + + + + + //真-继电器 + GPIO_Init(GPIOA0,12,Output); + 3848: 1090 lrw r4, 0x2000004c // 3888 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 384a: 4129 lsli r1, r1, 9 + 384c: 3001 movi r0, 1 + 384e: e3fff5d9 bsr 0x2400 // 2400 + GPIO_Init(GPIOA0,12,Output); + 3852: 9400 ld.w r0, (r4, 0x0) + 3854: 3200 movi r2, 0 + 3856: 310c movi r1, 12 + 3858: e3fff2e2 bsr 0x1e1c // 1e1c + GPIO_Init(GPIOA0,13,Output); + 385c: 3200 movi r2, 0 + 385e: 9400 ld.w r0, (r4, 0x0) + 3860: 310d movi r1, 13 + 3862: e3fff2dd bsr 0x1e1c // 1e1c + + RLY_1_CLOSE; + 3866: 9400 ld.w r0, (r4, 0x0) + 3868: 310d movi r1, 13 + 386a: e3fff463 bsr 0x2130 // 2130 + RLY_2_CLOSE; + 386e: 9400 ld.w r0, (r4, 0x0) + 3870: 310c movi r1, 12 + 3872: e3fff45f bsr 0x2130 // 2130 + + + + c_rly.rly_control = 0x01; //继电器控制标志位 + 3876: 3301 movi r3, 1 + 3878: a560 st.b r3, (r5, 0x0) +} + 387a: 1409 addi r14, r14, 36 + 387c: 1492 pop r4-r5, r15 + 387e: 0000 bkpt + 3880: 2000036c .long 0x2000036c + 3884: 00002710 .long 0x00002710 + 3888: 2000004c .long 0x2000004c + +Disassembly of section .text.CheckSum: + +0000388c : + * @param data: 校验数据 + * @param len: 数据长度 + * @retval 和校验值 + ******************************************/ +U8_T CheckSum(U8_T *data,U16_T len) +{ + 388c: 6cc3 mov r3, r0 + 388e: 6040 addu r1, r0 + U8_T data_sum = 0; + 3890: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 3896: 783c jmp r15 + data_sum += data[i]; + 3898: 8340 ld.b r2, (r3, 0x0) + 389a: 6008 addu r0, r2 + 389c: 7400 zextb r0, r0 + 389e: 2300 addi r3, 1 + 38a0: 07f9 br 0x3892 // 3892 + +Disassembly of section .text.CheckSum2: + +000038a2 : + * @param data: 校验数据 + * @param len: 数据长度 + * @retval 和校验值 + ******************************************/ +U8_T CheckSum2(U8_T *data,U16_T len) +{ + 38a2: 6040 addu r1, r0 + U8_T data_sum = 0; + 38a4: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~(data_sum); + 38aa: 6cce nor r3, r3 + 38ac: 740c zextb r0, r3 +} + 38ae: 783c jmp r15 + data_sum += data[i]; + 38b0: 8040 ld.b r2, (r0, 0x0) + 38b2: 60c8 addu r3, r2 + 38b4: 74cc zextb r3, r3 + 38b6: 2000 addi r0, 1 + 38b8: 07f7 br 0x38a6 // 38a6 + +Disassembly of section .text.Change_OUTV: + +000038bc : + + +//选择输出电压,0 - 10000mV +U8_T Change_OUTV(U16_T VolOut) +{ + if(VolOut > 10000) return 0x01; + 38bc: 1065 lrw r3, 0x2710 // 38d0 + 38be: 640c cmphs r3, r0 + 38c0: 0c06 bf 0x38cc // 38cc + + GPT0->CMPA = VolOut; + 38c2: 1065 lrw r3, 0x20000024 // 38d4 + 38c4: 9360 ld.w r3, (r3, 0x0) + 38c6: b30b st.w r0, (r3, 0x2c) +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"CMPA:%d",VolOut); +#endif + return 0x00; + 38c8: 3000 movi r0, 0 +} + 38ca: 783c jmp r15 + if(VolOut > 10000) return 0x01; + 38cc: 3001 movi r0, 1 + 38ce: 07fe br 0x38ca // 38ca + 38d0: 00002710 .long 0x00002710 + 38d4: 20000024 .long 0x20000024 + +Disassembly of section .text.BLV_VolOut_Ctrl: + +000038d8 : + * @param + * @retval None + * */ + +void BLV_VolOut_Ctrl(void) +{ + 38d8: 14d1 push r4, r15 + c_rly.wind = WIND_STOP; + 38da: 1095 lrw r4, 0x2000036c // 392c + 38dc: 3300 movi r3, 0 + 38de: a46d st.b r3, (r4, 0xd) + + if(c_rly.rly_state[WINDRLY_HIGH] == Control_ON) // 优先级高>中>抵 , 若同时被控制多个风速继电器,则将按照优先级打开继电器 + 38e0: 8465 ld.b r3, (r4, 0x5) + 38e2: 3b41 cmpnei r3, 1 + 38e4: 0804 bt 0x38ec // 38ec + { +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_HIGH"); +#endif + c_rly.wind = WIND_HIGH; + 38e6: 3303 movi r3, 3 + }else if(c_rly.rly_state[WINDRLY_LOW] == Control_ON) + { +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_LOW"); +#endif + c_rly.wind = WIND_LOW; + 38e8: a46d st.b r3, (r4, 0xd) + 38ea: 0409 br 0x38fc // 38fc + }else if(c_rly.rly_state[WINDRLY_MID] == Control_ON) + 38ec: 8464 ld.b r3, (r4, 0x4) + 38ee: 3b41 cmpnei r3, 1 + 38f0: 0803 bt 0x38f6 // 38f6 + c_rly.wind = WIND_MID; + 38f2: 3302 movi r3, 2 + 38f4: 07fa br 0x38e8 // 38e8 + }else if(c_rly.rly_state[WINDRLY_LOW] == Control_ON) + 38f6: 8463 ld.b r3, (r4, 0x3) + 38f8: 3b41 cmpnei r3, 1 + 38fa: 0ff7 bf 0x38e8 // 38e8 + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"VolOut_Ctrl wind:%d",c_rly.wind); + 38fc: 844d ld.b r2, (r4, 0xd) + 38fe: 102d lrw r1, 0x4d9b // 3930 + 3900: 3000 movi r0, 0 + 3902: e3fffeb9 bsr 0x3674 // 3674 + + + if(c_rly.wind == WIND_STOP){ + 3906: 846d ld.b r3, (r4, 0xd) + 3908: 3b40 cmpnei r3, 0 + 390a: 0805 bt 0x3914 // 3914 + Change_OUTV(c_rly.wind_STOP_vol); + 390c: 8c08 ld.h r0, (r4, 0x10) + }else if(c_rly.wind == WIND_LOW){ + Change_OUTV(c_rly.wind_LOW_vol); + }else if(c_rly.wind == WIND_MID){ + Change_OUTV(c_rly.wind_MID_vol); + }else if(c_rly.wind == WIND_HIGH){ + Change_OUTV(c_rly.wind_HIGH_vol); + 390e: e3ffffd7 bsr 0x38bc // 38bc + } +} + 3912: 1491 pop r4, r15 + }else if(c_rly.wind == WIND_LOW){ + 3914: 3b41 cmpnei r3, 1 + 3916: 0803 bt 0x391c // 391c + Change_OUTV(c_rly.wind_LOW_vol); + 3918: 8c09 ld.h r0, (r4, 0x12) + 391a: 07fa br 0x390e // 390e + }else if(c_rly.wind == WIND_MID){ + 391c: 3b42 cmpnei r3, 2 + 391e: 0803 bt 0x3924 // 3924 + Change_OUTV(c_rly.wind_MID_vol); + 3920: 8c0a ld.h r0, (r4, 0x14) + 3922: 07f6 br 0x390e // 390e + }else if(c_rly.wind == WIND_HIGH){ + 3924: 3b43 cmpnei r3, 3 + 3926: 0bf6 bt 0x3912 // 3912 + Change_OUTV(c_rly.wind_HIGH_vol); + 3928: 8c0b ld.h r0, (r4, 0x16) + 392a: 07f2 br 0x390e // 390e + 392c: 2000036c .long 0x2000036c + 3930: 00004d9b .long 0x00004d9b + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +00003934 : + * @param rly_id:继电器id + * @param state:继电器要改变的状态 + * @retval None + * */ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) +{ + 3934: 14d0 push r15 + if(rly_id >= RLY_MAX) return; + 3936: 3804 cmphsi r0, 5 + 3938: 0807 bt 0x3946 // 3946 + + switch(state) + 393a: 3941 cmpnei r1, 1 + 393c: 0c06 bf 0x3948 // 3948 + 393e: 3940 cmpnei r1, 0 + 3940: 0c13 bf 0x3966 // 3966 + 3942: 3942 cmpnei r1, 2 + 3944: 0c20 bf 0x3984 // 3984 + } + } + break; + } + +} + 3946: 1490 pop r15 + if(c_rly.rly_state[rly_id] != Control_ON) + 3948: 1078 lrw r3, 0x2000036c // 39a8 + 394a: 60c0 addu r3, r0 + 394c: 8341 ld.b r2, (r3, 0x1) + 394e: 3a41 cmpnei r2, 1 + 3950: 0ffb bf 0x3946 // 3946 + c_rly.rly_state[rly_id] = Control_ON; + 3952: 3201 movi r2, 1 + if(rly_id == CTRL_RLY1){ + 3954: 3840 cmpnei r0, 0 + c_rly.rly_state[rly_id] = Control_ON; + 3956: a341 st.b r2, (r3, 0x1) + if(rly_id == CTRL_RLY1){ + 3958: 0822 bt 0x399c // 399c + RLY_1_OPEN; + 395a: 1075 lrw r3, 0x2000004c // 39ac + 395c: 310d movi r1, 13 + 395e: 9300 ld.w r0, (r3, 0x0) + RLY_2_OPEN; + 3960: e3fff3e4 bsr 0x2128 // 2128 + 3964: 07f1 br 0x3946 // 3946 + if(c_rly.rly_state[rly_id] != Control_OFF) + 3966: 1071 lrw r3, 0x2000036c // 39a8 + 3968: 60c0 addu r3, r0 + 396a: 8341 ld.b r2, (r3, 0x1) + 396c: 3a40 cmpnei r2, 0 + 396e: 0fec bf 0x3946 // 3946 + c_rly.rly_state[rly_id] = Control_OFF; + 3970: 3200 movi r2, 0 + if(rly_id == CTRL_RLY1){ + 3972: 3840 cmpnei r0, 0 + c_rly.rly_state[rly_id] = Control_OFF; + 3974: a341 st.b r2, (r3, 0x1) + if(rly_id == CTRL_RLY1){ + 3976: 080d bt 0x3990 // 3990 + RLY_1_CLOSE; + 3978: 106d lrw r3, 0x2000004c // 39ac + 397a: 310d movi r1, 13 + 397c: 9300 ld.w r0, (r3, 0x0) + RLY_2_CLOSE; + 397e: e3fff3d9 bsr 0x2130 // 2130 + 3982: 07e2 br 0x3946 // 3946 + if(c_rly.rly_state[rly_id] != Control_OFF) + 3984: 1069 lrw r3, 0x2000036c // 39a8 + 3986: 60c0 addu r3, r0 + 3988: 8341 ld.b r2, (r3, 0x1) + 398a: 3a40 cmpnei r2, 0 + 398c: 0fe3 bf 0x3952 // 3952 + 398e: 07f1 br 0x3970 // 3970 + }else if(rly_id == CTRL_RLY2){ + 3990: 3841 cmpnei r0, 1 + 3992: 0bda bt 0x3946 // 3946 + RLY_2_CLOSE; + 3994: 1066 lrw r3, 0x2000004c // 39ac + 3996: 310c movi r1, 12 + 3998: 9300 ld.w r0, (r3, 0x0) + 399a: 07f2 br 0x397e // 397e + }else if(rly_id == CTRL_RLY2){ + 399c: 3841 cmpnei r0, 1 + 399e: 0bd4 bt 0x3946 // 3946 + RLY_2_OPEN; + 39a0: 1063 lrw r3, 0x2000004c // 39ac + 39a2: 310c movi r1, 12 + 39a4: 9300 ld.w r0, (r3, 0x0) + 39a6: 07dd br 0x3960 // 3960 + 39a8: 2000036c .long 0x2000036c + 39ac: 2000004c .long 0x2000004c + +Disassembly of section .text.BLV_RLY_Task: + +000039b0 : +//继电器动作处理 +void BLV_RLY_Task(void) +{ + 39b0: 14d3 push r4-r6, r15 + if(c_rly.rly_control != 0x01)return; + 39b2: 10b1 lrw r5, 0x2000036c // 39f4 + 39b4: 8560 ld.b r3, (r5, 0x0) + 39b6: 3b41 cmpnei r3, 1 + 39b8: 0815 bt 0x39e2 // 39e2 + 39ba: 6d97 mov r6, r5 + 39bc: 3400 movi r4, 0 + + for(U8_T i = 0;i + { + BLV_RLY_Ctrl_Purpose(i,Control_OFF); + 39c4: 3100 movi r1, 0 + { + BLV_RLY_Ctrl_Purpose(i,Control_ON); + + }else if(c_rly.rly_ctrl_state[i] == RLY_RES) + { + BLV_RLY_Ctrl_Purpose(i,Cnotrol_RES); + 39c6: 6c13 mov r0, r4 + 39c8: e3ffffb6 bsr 0x3934 // 3934 + for(U8_T i = 0;i + } + + BLV_VolOut_Ctrl(); //风速判断,输出pwm + 39da: e3ffff7f bsr 0x38d8 // 38d8 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_RLY_Task"); +#endif + c_rly.rly_control = 0x00; + 39de: 3300 movi r3, 0 + 39e0: a560 st.b r3, (r5, 0x0) +} + 39e2: 1493 pop r4-r6, r15 + else if(c_rly.rly_ctrl_state[i] == RLY_ON) + 39e4: 3b42 cmpnei r3, 2 + 39e6: 0803 bt 0x39ec // 39ec + BLV_RLY_Ctrl_Purpose(i,Control_ON); + 39e8: 3101 movi r1, 1 + 39ea: 07ee br 0x39c6 // 39c6 + }else if(c_rly.rly_ctrl_state[i] == RLY_RES) + 39ec: 3b43 cmpnei r3, 3 + 39ee: 0bef bt 0x39cc // 39cc + BLV_RLY_Ctrl_Purpose(i,Cnotrol_RES); + 39f0: 3102 movi r1, 2 + 39f2: 07ea br 0x39c6 // 39c6 + 39f4: 2000036c .long 0x2000036c + +Disassembly of section .text.BLV_A9RLY_CMD_SET_Processing: + +000039f8 : + + + +//1、主机下发设置继电器状态 +U8_T BLV_A9RLY_CMD_SET_Processing(U8_T *data,U16_T len) +{ + 39f8: 14d3 push r4-r6, r15 + 39fa: 1429 subi r14, r14, 36 + if(len < 9) return 0x01; + 39fc: 3908 cmphsi r1, 9 + 39fe: 0c48 bf 0x3a8e // 3a8e + U16_T RLY_STATE = 0x00; + + +// if(len >= 9) + { + RLY_STATE =(data[SEND_PARA] + (data[SEND_PARA+1]<<8)); + 3a00: 8048 ld.b r2, (r0, 0x8) + 3a02: 8067 ld.b r3, (r0, 0x7) + 3a04: 4248 lsli r2, r2, 8 + 3a06: 608c addu r2, r3 + c_rly.rly_control = 0x01; //继电器控制标志 + 3a08: 3101 movi r1, 1 + 3a0a: 1163 lrw r3, 0x2000036c // 3a94 + RLY_STATE =(data[SEND_PARA] + (data[SEND_PARA+1]<<8)); + 3a0c: 7489 zexth r2, r2 + c_rly.rly_control = 0x01; //继电器控制标志 + 3a0e: a320 st.b r1, (r3, 0x0) + 3a10: 3400 movi r4, 0 + 3a12: 6d4f mov r5, r3 + + for(U8_T i = 0;i>(2*i)) & 0x03); + 3a14: 3603 movi r6, 3 + 3a16: 6c4b mov r1, r2 + 3a18: 7052 asr r1, r4 + 3a1a: 6858 and r1, r6 + 3a1c: 7444 zextb r1, r1 + + if(t == NO_CTRL){ + 3a1e: 3940 cmpnei r1, 0 + 3a20: 0831 bt 0x3a82 // 3a82 + 3a22: 2401 addi r4, 2 + for(U8_T i = 0;i + } + } + } + + //BLV_RLY_Task(); + c_rly.SN = (data[1]&0x0F); + 3a2c: 8061 ld.b r3, (r0, 0x1) + 3a2e: 320f movi r2, 15 + 3a30: 68c8 and r3, r2 + 3a32: a56c st.b r3, (r5, 0xc) + //回复 + SendData[SendLen++] = g_Dip.addr; + SendData[SendLen++] = c_rly.SN; //SN + 3a34: dc6e0005 st.b r3, (r14, 0x5) + SendData[SendLen++] = data[2]; + 3a38: 8062 ld.b r3, (r0, 0x2) + 3a3a: dc6e0006 st.b r3, (r14, 0x6) + SendData[SendLen++] = data[0]; + 3a3e: 8060 ld.b r3, (r0, 0x0) + 3a40: dc6e0007 st.b r3, (r14, 0x7) + SendData[SendLen++] = 0x00; //len + SendData[SendLen++] = 0x00; //sum + 3a44: 3300 movi r3, 0 + 3a46: dc6e0009 st.b r3, (r14, 0x9) + SendData[SendLen++] = CMD_SET_RLYSTATE_REPLY; //回复CMD + 3a4a: 3330 movi r3, 48 + SendData[SendLen++] = g_Dip.addr; + 3a4c: 1053 lrw r2, 0x2000035c // 3a98 + 3a4e: 8246 ld.b r2, (r2, 0x6) + SendData[SendLen++] = CMD_SET_RLYSTATE_REPLY; //回复CMD + 3a50: dc6e000a st.b r3, (r14, 0xa) + + SendLen = 0x07; + SendData[SEND_LEN] = SendLen; //len + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3a54: 3107 movi r1, 7 + SendData[SEND_LEN] = SendLen; //len + 3a56: 3307 movi r3, 7 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3a58: 1801 addi r0, r14, 4 + SendData[SendLen++] = g_Dip.addr; + 3a5a: dc4e0004 st.b r2, (r14, 0x4) + SendData[SEND_LEN] = SendLen; //len + 3a5e: dc6e0008 st.b r3, (r14, 0x8) + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3a62: e3ffff20 bsr 0x38a2 // 38a2 + + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3a66: 3314 movi r3, 20 + 3a68: b860 st.w r3, (r14, 0x0) + 3a6a: 3396 movi r3, 150 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3a6c: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3a70: 4361 lsli r3, r3, 1 + 3a72: 1801 addi r0, r14, 4 + 3a74: 3201 movi r2, 1 + 3a76: 3107 movi r1, 7 + 3a78: e3fffd72 bsr 0x355c // 355c + 3a7c: 3000 movi r0, 0 + + return 0x00; +} + 3a7e: 1409 addi r14, r14, 36 + 3a80: 1493 pop r4-r6, r15 + }else if(t == RLY_OFF){ + 3a82: 3941 cmpnei r1, 1 + 3a84: 0fcf bf 0x3a22 // 3a22 + }else if(t == RLY_ON){ + 3a86: 3942 cmpnei r1, 2 + 3a88: 0fcd bf 0x3a22 // 3a22 + c_rly.rly_ctrl_state[i] = RLY_RES; + 3a8a: 3103 movi r1, 3 + 3a8c: 07cb br 0x3a22 // 3a22 + if(len < 9) return 0x01; + 3a8e: 3001 movi r0, 1 + 3a90: 07f7 br 0x3a7e // 3a7e + 3a92: 0000 bkpt + 3a94: 2000036c .long 0x2000036c + 3a98: 2000035c .long 0x2000035c + +Disassembly of section .text.BLV_A9RLY_CMD_READ_Processing: + +00003a9c : + +//2、读取继电器状态的回复 +void BLV_A9RLY_CMD_READ_Processing(U8_T *data,U16_T len) +{ + 3a9c: 14d2 push r4-r5, r15 + 3a9e: 1429 subi r14, r14, 36 + 3aa0: 11a0 lrw r5, 0x2000036c // 3b20 + 3aa2: 3200 movi r2, 0 + U8_T SendData[30]; + U16_T SendLen = 0x00; + + U8_T RLY_State2 = 0x00; + 3aa4: 3400 movi r4, 0 + 3aa6: 6c57 mov r1, r5 + + for(U8_T i = 0;i + { + RLY_State2 |= (0x01< + } + } + + c_rly.SN = (data[1]&0x0F); + 3abc: 8041 ld.b r2, (r0, 0x1) + 3abe: 330f movi r3, 15 + 3ac0: 688c and r2, r3 + //回复 + SendData[SendLen++] = g_Dip.addr; + 3ac2: 1079 lrw r3, 0x2000035c // 3b24 + 3ac4: 8366 ld.b r3, (r3, 0x6) + c_rly.SN = (data[1]&0x0F); + 3ac6: a14c st.b r2, (r1, 0xc) + SendData[SendLen++] = g_Dip.addr; + 3ac8: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = c_rly.SN; + SendData[SendLen++] = data[2]; + 3acc: 8062 ld.b r3, (r0, 0x2) + 3ace: dc6e0006 st.b r3, (r14, 0x6) + SendData[SendLen++] = data[0]; + 3ad2: 8060 ld.b r3, (r0, 0x0) + 3ad4: dc6e0007 st.b r3, (r14, 0x7) + SendData[SendLen++] = 0x00; //len + SendData[SendLen++] = 0x00; //sum + 3ad8: 3300 movi r3, 0 + 3ada: dc6e0009 st.b r3, (r14, 0x9) + SendData[SendLen++] = CMD_READ_RLYSTATE_REPLY; //回复CMD + 3ade: 3334 movi r3, 52 + 3ae0: dc6e000a st.b r3, (r14, 0xa) + SendData[SendLen++] = RLY_State2; + SendData[SendLen++] = 0x00; + 3ae4: 3300 movi r3, 0 + 3ae6: dc6e000c st.b r3, (r14, 0xc) + SendData[SendLen++] = 0x00; + 3aea: dc6e000d st.b r3, (r14, 0xd) + + SendLen = 0x0A; + SendData[SEND_LEN] = 0x0A; //len + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3aee: 310a movi r1, 10 + SendData[SEND_LEN] = 0x0A; //len + 3af0: 330a movi r3, 10 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3af2: 1801 addi r0, r14, 4 + SendData[SendLen++] = c_rly.SN; + 3af4: dc4e0005 st.b r2, (r14, 0x5) + SendData[SEND_LEN] = 0x0A; //len + 3af8: dc6e0008 st.b r3, (r14, 0x8) + SendData[SendLen++] = RLY_State2; + 3afc: dc8e000b st.b r4, (r14, 0xb) + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3b00: e3fffed1 bsr 0x38a2 // 38a2 + + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3b04: 3314 movi r3, 20 + 3b06: b860 st.w r3, (r14, 0x0) + 3b08: 3396 movi r3, 150 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3b0a: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3b0e: 4361 lsli r3, r3, 1 + 3b10: 3201 movi r2, 1 + 3b12: 310a movi r1, 10 + 3b14: 1801 addi r0, r14, 4 + 3b16: e3fffd23 bsr 0x355c // 355c +} + 3b1a: 1409 addi r14, r14, 36 + 3b1c: 1492 pop r4-r5, r15 + 3b1e: 0000 bkpt + 3b20: 2000036c .long 0x2000036c + 3b24: 2000035c .long 0x2000035c + +Disassembly of section .text.BLV_WINDOUT_CMD_SET_Processing: + +00003b28 : + +//3、设置各个风速档位的电压输出值 +U8_T BLV_WINDOUT_CMD_SET_Processing(U8_T *data,U16_T len) +{ + 3b28: 14d4 push r4-r7, r15 + 3b2a: 1429 subi r14, r14, 36 + if(len < 15) return 0x01; + 3b2c: 390e cmphsi r1, 15 +{ + 3b2e: 6d03 mov r4, r0 + if(len < 15) return 0x01; + 3b30: 0c5f bf 0x3bee // 3bee + 3b32: 58ba addi r5, r0, 7 + 3b34: 3300 movi r3, 0 + 3b36: 3100 movi r1, 0 +// if(len >= 15) + { + for(U8_T i = 0x00; i < 0x04; i++) + { + SetVol = (data[(SEND_PARA+(i*2))] + (data[(SEND_PARA+(i*2+1))]<<8 )); + if(SetVol <= 10000){ + 3b38: 11cf lrw r6, 0x2710 // 3bf4 + 3b3a: 1110 lrw r0, 0x2000036c // 3bf8 + SetVol = (data[(SEND_PARA+(i*2))] + (data[(SEND_PARA+(i*2+1))]<<8 )); + 3b3c: 8541 ld.b r2, (r5, 0x1) + 3b3e: 4248 lsli r2, r2, 8 + 3b40: 85e0 ld.b r7, (r5, 0x0) + 3b42: 609c addu r2, r7 + 3b44: 7489 zexth r2, r2 + if(SetVol <= 10000){ + 3b46: 6498 cmphs r6, r2 + 3b48: 0c0d bf 0x3b62 // 3b62 + switch(i){ + 3b4a: 3942 cmpnei r1, 2 + 3b4c: 0c47 bf 0x3bda // 3bda + 3b4e: 3943 cmpnei r1, 3 + 3b50: 0c4a bf 0x3be4 // 3be4 + 3b52: 3941 cmpnei r1, 1 + 3b54: 0c3e bf 0x3bd0 // 3bd0 + case 0x00: + if(c_rly.wind_STOP_vol != SetVol){ + 3b56: 88e8 ld.h r7, (r0, 0x10) + 3b58: 649e cmpne r7, r2 + 3b5a: 0c04 bf 0x3b62 // 3b62 + c_rly.wind_STOP_vol = SetVol; + 3b5c: a848 st.h r2, (r0, 0x10) + } + break; + case 0x03: + if(c_rly.wind_HIGH_vol != SetVol){ + c_rly.wind_HIGH_vol = SetVol; + save_flag++; + 3b5e: 2300 addi r3, 1 + 3b60: 74cc zextb r3, r3 + for(U8_T i = 0x00; i < 0x04; i++) + 3b62: 2100 addi r1, 1 + 3b64: 7444 zextb r1, r1 + 3b66: 3944 cmpnei r1, 4 + 3b68: 2501 addi r5, 2 + 3b6a: 0be9 bt 0x3b3c // 3b3c + } + } + } + } + + if(save_flag != 0x00) + 3b6c: 3b40 cmpnei r3, 0 + 3b6e: 0c03 bf 0x3b74 // 3b74 + { + EEPROM_WritePara(); //保存flash + 3b70: e00002d2 bsr 0x4114 // 4114 + + } + + BLV_VolOut_Ctrl(); + 3b74: e3fffeb2 bsr 0x38d8 // 38d8 + + + c_rly.SN = (data[1]&0x0F); + 3b78: 8461 ld.b r3, (r4, 0x1) + 3b7a: 320f movi r2, 15 + 3b7c: 68c8 and r3, r2 + 3b7e: 105f lrw r2, 0x2000036c // 3bf8 + SendData[SendLen++] = 0x00; //sum + SendData[SendLen++] = CMD_SET_WINDOUTVOL_REPLY; //回复CMD + + SendLen = 0x07; + SendData[SEND_LEN] = SendLen; //len + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3b80: 3107 movi r1, 7 + c_rly.SN = (data[1]&0x0F); + 3b82: a26c st.b r3, (r2, 0xc) + SendData[SendLen++] = c_rly.SN; + 3b84: dc6e0005 st.b r3, (r14, 0x5) + SendData[SendLen++] = data[2]; + 3b88: 8462 ld.b r3, (r4, 0x2) + 3b8a: dc6e0006 st.b r3, (r14, 0x6) + SendData[SendLen++] = data[0]; + 3b8e: 8460 ld.b r3, (r4, 0x0) + 3b90: dc6e0007 st.b r3, (r14, 0x7) + SendData[SendLen++] = 0x00; //sum + 3b94: 3300 movi r3, 0 + 3b96: dc6e0009 st.b r3, (r14, 0x9) + SendData[SendLen++] = CMD_SET_WINDOUTVOL_REPLY; //回复CMD + 3b9a: 3337 movi r3, 55 + SendData[SendLen++] = g_Dip.addr; + 3b9c: 1058 lrw r2, 0x2000035c // 3bfc + 3b9e: 8246 ld.b r2, (r2, 0x6) + SendData[SendLen++] = CMD_SET_WINDOUTVOL_REPLY; //回复CMD + 3ba0: dc6e000a st.b r3, (r14, 0xa) + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3ba4: 1801 addi r0, r14, 4 + SendData[SEND_LEN] = SendLen; //len + 3ba6: 3307 movi r3, 7 + SendData[SendLen++] = g_Dip.addr; + 3ba8: dc4e0004 st.b r2, (r14, 0x4) + SendData[SEND_LEN] = SendLen; //len + 3bac: dc6e0008 st.b r3, (r14, 0x8) + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3bb0: e3fffe79 bsr 0x38a2 // 38a2 + + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3bb4: 3314 movi r3, 20 + 3bb6: b860 st.w r3, (r14, 0x0) + 3bb8: 3396 movi r3, 150 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3bba: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3bbe: 4361 lsli r3, r3, 1 + 3bc0: 1801 addi r0, r14, 4 + 3bc2: 3201 movi r2, 1 + 3bc4: 3107 movi r1, 7 + 3bc6: e3fffccb bsr 0x355c // 355c + 3bca: 3000 movi r0, 0 + + return 0x00; +} + 3bcc: 1409 addi r14, r14, 36 + 3bce: 1494 pop r4-r7, r15 + if(c_rly.wind_LOW_vol != SetVol){ + 3bd0: 88e9 ld.h r7, (r0, 0x12) + 3bd2: 649e cmpne r7, r2 + 3bd4: 0fc7 bf 0x3b62 // 3b62 + c_rly.wind_LOW_vol = SetVol; + 3bd6: a849 st.h r2, (r0, 0x12) + 3bd8: 07c3 br 0x3b5e // 3b5e + if(c_rly.wind_MID_vol != SetVol){ + 3bda: 88ea ld.h r7, (r0, 0x14) + 3bdc: 649e cmpne r7, r2 + 3bde: 0fc2 bf 0x3b62 // 3b62 + c_rly.wind_MID_vol = SetVol; + 3be0: a84a st.h r2, (r0, 0x14) + 3be2: 07be br 0x3b5e // 3b5e + if(c_rly.wind_HIGH_vol != SetVol){ + 3be4: 88eb ld.h r7, (r0, 0x16) + 3be6: 649e cmpne r7, r2 + 3be8: 0fbd bf 0x3b62 // 3b62 + c_rly.wind_HIGH_vol = SetVol; + 3bea: a84b st.h r2, (r0, 0x16) + 3bec: 07b9 br 0x3b5e // 3b5e + if(len < 15) return 0x01; + 3bee: 3001 movi r0, 1 + 3bf0: 07ee br 0x3bcc // 3bcc + 3bf2: 0000 bkpt + 3bf4: 00002710 .long 0x00002710 + 3bf8: 2000036c .long 0x2000036c + 3bfc: 2000035c .long 0x2000035c + +Disassembly of section .text.BLV_WINDOUT_CMD_READ_Processing: + +00003c00 : +//4、读取各个风速档位的电压输出值 +U8_T BLV_WINDOUT_CMD_READ_Processing(U8_T *data,U16_T len) +{ + 3c00: 14d0 push r15 + 3c02: 1429 subi r14, r14, 36 + U8_T SendData[30]; + U16_T SendLen = 0x00; + + + c_rly.SN = (data[1]&0x0F); + 3c04: 8041 ld.b r2, (r0, 0x1) + 3c06: 330f movi r3, 15 + 3c08: 688c and r2, r3 + 3c0a: 1161 lrw r3, 0x2000036c // 3c8c + //回复 + SendData[SendLen++] = g_Dip.addr; + 3c0c: 1121 lrw r1, 0x2000035c // 3c90 + 3c0e: 8126 ld.b r1, (r1, 0x6) + c_rly.SN = (data[1]&0x0F); + 3c10: a34c st.b r2, (r3, 0xc) + SendData[SendLen++] = c_rly.SN; + 3c12: dc4e0005 st.b r2, (r14, 0x5) + SendData[SendLen++] = data[2]; + 3c16: 8042 ld.b r2, (r0, 0x2) + 3c18: dc4e0006 st.b r2, (r14, 0x6) + SendData[SendLen++] = data[0]; + 3c1c: 8040 ld.b r2, (r0, 0x0) + 3c1e: dc4e0007 st.b r2, (r14, 0x7) + SendData[SendLen++] = 0x00; //len + SendData[SendLen++] = 0x00; //sum + 3c22: 3200 movi r2, 0 + 3c24: dc4e0009 st.b r2, (r14, 0x9) + SendData[SendLen++] = CMD_READ_WINDOUTVOL_REPLY; //回复CMD + 3c28: 3239 movi r2, 57 + 3c2a: dc4e000a st.b r2, (r14, 0xa) + SendData[SendLen++] = (c_rly.wind_STOP_vol & 0xFF); + 3c2e: 8b48 ld.h r2, (r3, 0x10) + 3c30: dc4e000b st.b r2, (r14, 0xb) + SendData[SendLen++] = (c_rly.wind_STOP_vol >> 8) & 0xFF; + 3c34: 4a48 lsri r2, r2, 8 + 3c36: dc4e000c st.b r2, (r14, 0xc) + SendData[SendLen++] = (c_rly.wind_LOW_vol & 0xFF); + 3c3a: 8b49 ld.h r2, (r3, 0x12) + 3c3c: dc4e000d st.b r2, (r14, 0xd) + SendData[SendLen++] = (c_rly.wind_LOW_vol >> 8) & 0xFF; + 3c40: 4a48 lsri r2, r2, 8 + 3c42: dc4e000e st.b r2, (r14, 0xe) + SendData[SendLen++] = (c_rly.wind_MID_vol & 0xFF); + 3c46: 8b4a ld.h r2, (r3, 0x14) + SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF; + SendData[SendLen++] = (c_rly.wind_HIGH_vol & 0xFF); + 3c48: 8b6b ld.h r3, (r3, 0x16) + 3c4a: dc6e0011 st.b r3, (r14, 0x11) + SendData[SendLen++] = (c_rly.wind_HIGH_vol >> 8) & 0xFF; + 3c4e: 4b68 lsri r3, r3, 8 + SendData[SendLen++] = g_Dip.addr; + 3c50: dc2e0004 st.b r1, (r14, 0x4) + SendData[SendLen++] = (c_rly.wind_MID_vol & 0xFF); + 3c54: dc4e000f st.b r2, (r14, 0xf) + SendData[SendLen++] = (c_rly.wind_HIGH_vol >> 8) & 0xFF; + 3c58: dc6e0012 st.b r3, (r14, 0x12) + SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF; + 3c5c: 4a48 lsri r2, r2, 8 + + SendLen = 0x0F; + SendData[SEND_LEN] = SendLen; //len + 3c5e: 330f movi r3, 15 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3c60: 310f movi r1, 15 + 3c62: 1801 addi r0, r14, 4 + SendData[SendLen++] = (c_rly.wind_MID_vol >> 8) & 0xFF; + 3c64: dc4e0010 st.b r2, (r14, 0x10) + SendData[SEND_LEN] = SendLen; //len + 3c68: dc6e0008 st.b r3, (r14, 0x8) + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3c6c: e3fffe1b bsr 0x38a2 // 38a2 + + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3c70: 3314 movi r3, 20 + 3c72: b860 st.w r3, (r14, 0x0) + 3c74: 3396 movi r3, 150 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3c76: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3c7a: 4361 lsli r3, r3, 1 + 3c7c: 1801 addi r0, r14, 4 + 3c7e: 3201 movi r2, 1 + 3c80: 310f movi r1, 15 + 3c82: e3fffc6d bsr 0x355c // 355c + + return 0x00; +} + 3c86: 3000 movi r0, 0 + 3c88: 1409 addi r14, r14, 36 + 3c8a: 1490 pop r15 + 3c8c: 2000036c .long 0x2000036c + 3c90: 2000035c .long 0x2000035c + +Disassembly of section .text.BLV_DEVPROT_CMD_SET_Processing: + +00003c94 : + +//5、设置端口模式 +U8_T BLV_DEVPROT_CMD_SET_Processing(U8_T *data,U16_T len) +{ + 3c94: 14d2 push r4-r5, r15 + 3c96: 1429 subi r14, r14, 36 + if(len != 0x08) return 0x01; + 3c98: 3948 cmpnei r1, 8 +{ + 3c9a: 6d43 mov r5, r0 + if(len != 0x08) return 0x01; + 3c9c: 0838 bt 0x3d0c // 3d0c + + U8_T SendData[30]; + U16_T SendLen = 0x00; + + if((data[SEND_PARA] == ACTIVE_PORT)||((data[SEND_PARA] == POLLING_PORT))) + 3c9e: 8067 ld.b r3, (r0, 0x7) + 3ca0: 5b43 subi r2, r3, 1 + 3ca2: 7488 zextb r2, r2 + 3ca4: 3a01 cmphsi r2, 2 + 3ca6: 0835 bt 0x3d10 // 3d10 + { + if(data[SEND_PARA] != c_rly.dev_port){ + 3ca8: 109b lrw r4, 0x2000036c // 3d14 + 3caa: 844b ld.b r2, (r4, 0xb) + 3cac: 64ca cmpne r2, r3 + 3cae: 0c04 bf 0x3cb6 // 3cb6 + c_rly.dev_port = data[SEND_PARA]; + 3cb0: a46b st.b r3, (r4, 0xb) + + EEPROM_WritePara(); //保存flash + 3cb2: e0000231 bsr 0x4114 // 4114 + } + }else{ + return 0x02;//设置的端口不合法 + } + + c_rly.SN = (data[1]&0x0F); + 3cb6: 8561 ld.b r3, (r5, 0x1) + 3cb8: 320f movi r2, 15 + 3cba: 68c8 and r3, r2 + 3cbc: a46c st.b r3, (r4, 0xc) + //回复 + SendData[SendLen++] = g_Dip.addr; + SendData[SendLen++] = c_rly.SN; + 3cbe: dc6e0005 st.b r3, (r14, 0x5) + SendData[SendLen++] = data[2]; + 3cc2: 8562 ld.b r3, (r5, 0x2) + 3cc4: dc6e0006 st.b r3, (r14, 0x6) + SendData[SendLen++] = data[0]; + 3cc8: 8560 ld.b r3, (r5, 0x0) + 3cca: dc6e0007 st.b r3, (r14, 0x7) + SendData[SendLen++] = 0x00; //len + SendData[SendLen++] = 0x00; //sum + 3cce: 3300 movi r3, 0 + 3cd0: dc6e0009 st.b r3, (r14, 0x9) + SendData[SendLen++] = CMD_SET_DEVPORT_REPLY; //回复CMD + 3cd4: 3338 movi r3, 56 + SendData[SendLen++] = g_Dip.addr; + 3cd6: 1051 lrw r2, 0x2000035c // 3d18 + 3cd8: 8246 ld.b r2, (r2, 0x6) + SendData[SendLen++] = CMD_SET_DEVPORT_REPLY; //回复CMD + 3cda: dc6e000a st.b r3, (r14, 0xa) + + SendLen = 0x07; + SendData[SEND_LEN] = SendLen; //len + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3cde: 3107 movi r1, 7 + SendData[SEND_LEN] = SendLen; //len + 3ce0: 3307 movi r3, 7 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3ce2: 1801 addi r0, r14, 4 + SendData[SendLen++] = g_Dip.addr; + 3ce4: dc4e0004 st.b r2, (r14, 0x4) + SendData[SEND_LEN] = SendLen; //len + 3ce8: dc6e0008 st.b r3, (r14, 0x8) + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3cec: e3fffddb bsr 0x38a2 // 38a2 + + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3cf0: 3314 movi r3, 20 + 3cf2: b860 st.w r3, (r14, 0x0) + 3cf4: 3396 movi r3, 150 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3cf6: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3cfa: 4361 lsli r3, r3, 1 + 3cfc: 1801 addi r0, r14, 4 + 3cfe: 3201 movi r2, 1 + 3d00: 3107 movi r1, 7 + 3d02: e3fffc2d bsr 0x355c // 355c + 3d06: 3000 movi r0, 0 + + return 0x00; +} + 3d08: 1409 addi r14, r14, 36 + 3d0a: 1492 pop r4-r5, r15 + if(len != 0x08) return 0x01; + 3d0c: 3001 movi r0, 1 + 3d0e: 07fd br 0x3d08 // 3d08 + return 0x02;//设置的端口不合法 + 3d10: 3002 movi r0, 2 + 3d12: 07fb br 0x3d08 // 3d08 + 3d14: 2000036c .long 0x2000036c + 3d18: 2000035c .long 0x2000035c + +Disassembly of section .text.BLV_DEVPROT_CMD_READ_Processing: + +00003d1c : + + + +//6、读取端口模式 +U8_T BLV_DEVPROT_CMD_READ_Processing(U8_T *data,U16_T len) +{ + 3d1c: 14d0 push r15 + 3d1e: 1429 subi r14, r14, 36 + U8_T SendData[30]; + U16_T SendLen = 0x00; + + + c_rly.SN = (data[1]&0x0F); + 3d20: 8061 ld.b r3, (r0, 0x1) + 3d22: 320f movi r2, 15 + 3d24: 68c8 and r3, r2 + 3d26: 1059 lrw r2, 0x2000036c // 3d88 + //回复 + SendData[SendLen++] = g_Dip.addr; + 3d28: 1039 lrw r1, 0x2000035c // 3d8c + 3d2a: 8126 ld.b r1, (r1, 0x6) + c_rly.SN = (data[1]&0x0F); + 3d2c: a26c st.b r3, (r2, 0xc) + SendData[SendLen++] = c_rly.SN; + 3d2e: dc6e0005 st.b r3, (r14, 0x5) + SendData[SendLen++] = data[2]; + 3d32: 8062 ld.b r3, (r0, 0x2) + 3d34: dc6e0006 st.b r3, (r14, 0x6) + SendData[SendLen++] = data[0]; + 3d38: 8060 ld.b r3, (r0, 0x0) + 3d3a: dc6e0007 st.b r3, (r14, 0x7) + SendData[SendLen++] = 0x00; //len + SendData[SendLen++] = 0x00; //sum + 3d3e: 3300 movi r3, 0 + 3d40: dc6e0009 st.b r3, (r14, 0x9) + SendData[SendLen++] = CMD_READ_DEVPORT_REPLY; //回复CMD + 3d44: 333a movi r3, 58 + 3d46: dc6e000a st.b r3, (r14, 0xa) + SendData[SendLen++] = c_rly.dev_port; //端口模式 + 3d4a: 826b ld.b r3, (r2, 0xb) + 3d4c: dc6e000b st.b r3, (r14, 0xb) + SendData[SendLen++] = Project_FW_Version; //软件版本号 + 3d50: 3301 movi r3, 1 + SendData[SendLen++] = g_Dip.addr; + 3d52: dc2e0004 st.b r1, (r14, 0x4) + SendData[SendLen++] = Project_FW_Version; //软件版本号 + 3d56: dc6e000c st.b r3, (r14, 0xc) + SendData[SendLen++] = Project_HW_Version; //硬件版本号 + 3d5a: dc6e000d st.b r3, (r14, 0xd) + + SendLen = 0x0A; + SendData[SEND_LEN] = SendLen; //len + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3d5e: 310a movi r1, 10 + SendData[SEND_LEN] = SendLen; //len + 3d60: 330a movi r3, 10 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3d62: 1801 addi r0, r14, 4 + SendData[SEND_LEN] = SendLen; //len + 3d64: dc6e0008 st.b r3, (r14, 0x8) + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3d68: e3fffd9d bsr 0x38a2 // 38a2 + + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3d6c: 3314 movi r3, 20 + 3d6e: b860 st.w r3, (r14, 0x0) + 3d70: 3396 movi r3, 150 + SendData[SEND_SUM] = CheckSum2(SendData,SendLen); + 3d72: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3d76: 4361 lsli r3, r3, 1 + 3d78: 1801 addi r0, r14, 4 + 3d7a: 3201 movi r2, 1 + 3d7c: 310a movi r1, 10 + 3d7e: e3fffbef bsr 0x355c // 355c + + return 0x00; +} + 3d82: 3000 movi r0, 0 + 3d84: 1409 addi r14, r14, 36 + 3d86: 1490 pop r15 + 3d88: 2000036c .long 0x2000036c + 3d8c: 2000035c .long 0x2000035c + +Disassembly of section .text.BLV_RLY_RS485_Pro: + +00003d90 : + +U8_T BLV_RLY_RS485_Pro(U8_T *RecData, U16_T Len) +{ + 3d90: 14d3 push r4-r6, r15 + 3d92: 142d subi r14, r14, 52 + U8_T ret = 0x00; + U8_T ckdata[50]; + + if(Len < 0x05) + 3d94: 3904 cmphsi r1, 5 +{ + 3d96: 6d03 mov r4, r0 + 3d98: 6d47 mov r5, r1 + if(Len < 0x05) + 3d9a: 0808 bt 0x3daa // 3daa + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Data Len Err"); + 3d9c: 1139 lrw r1, 0x4daf // 3e80 + return 0x01; + } + + if(RecData[4] != Len) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check Err"); + 3d9e: 3000 movi r0, 0 + 3da0: e3fffc6a bsr 0x3674 // 3674 + return 0x01; + 3da4: 3001 movi r0, 1 + case CMD_READ_DEVPORT: + BLV_DEVPROT_CMD_READ_Processing(RecData,Len); + break; + } + +} + 3da6: 140d addi r14, r14, 52 + 3da8: 1493 pop r4-r6, r15 + if(RecData[4] != Len) + 3daa: 80c4 ld.b r6, (r0, 0x4) + 3dac: 645a cmpne r6, r1 + 3dae: 0c03 bf 0x3db4 // 3db4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check Err"); + 3db0: 1135 lrw r1, 0x4dbc // 3e84 + 3db2: 07f6 br 0x3d9e // 3d9e + if(RecData[2] != A9EXPANDTYPE) //A9继电器设备类型 + 3db4: 8062 ld.b r3, (r0, 0x2) + 3db6: 3b4e cmpnei r3, 14 + 3db8: 0c07 bf 0x3dc6 // 3dc6 + Dbg_Println(DBG_BIT_SYS_STATUS,"Type Check Err"); + 3dba: 3000 movi r0, 0 + 3dbc: 1133 lrw r1, 0x4dca // 3e88 + 3dbe: e3fffc5b bsr 0x3674 // 3674 + return 0x02; + 3dc2: 3002 movi r0, 2 + 3dc4: 07f1 br 0x3da6 // 3da6 + if(RecData[3] != g_Dip.addr) //地址校验 + 3dc6: 1172 lrw r3, 0x2000035c // 3e8c + 3dc8: 8043 ld.b r2, (r0, 0x3) + 3dca: 8366 ld.b r3, (r3, 0x6) + 3dcc: 64ca cmpne r2, r3 + 3dce: 0c07 bf 0x3ddc // 3ddc + Dbg_Println(DBG_BIT_SYS_STATUS,"Addr Check Err "); + 3dd0: 3000 movi r0, 0 + 3dd2: 1130 lrw r1, 0x4dd9 // 3e90 + 3dd4: e3fffc50 bsr 0x3674 // 3674 + return 0x03; + 3dd8: 3003 movi r0, 3 + 3dda: 07e6 br 0x3da6 // 3da6 + memcpy(ckdata,RecData,Len); + 3ddc: 6c43 mov r1, r0 + 3dde: 6c9b mov r2, r6 + 3de0: 6c3b mov r0, r14 + 3de2: e3ffee11 bsr 0x1a04 // 1a04 <__memcpy_fast> + ckdata[SEND_SUM] = 0x00; + 3de6: 3300 movi r3, 0 + if(CheckSum2(ckdata,Len) != RecData[SEND_SUM]) //和校验 + 3de8: 6c5b mov r1, r6 + 3dea: 6c3b mov r0, r14 + ckdata[SEND_SUM] = 0x00; + 3dec: dc6e0005 st.b r3, (r14, 0x5) + if(CheckSum2(ckdata,Len) != RecData[SEND_SUM]) //和校验 + 3df0: e3fffd59 bsr 0x38a2 // 38a2 + 3df4: 8465 ld.b r3, (r4, 0x5) + 3df6: 640e cmpne r3, r0 + 3df8: 0c0c bf 0x3e10 // 3e10 + Dbg_Println(DBG_BIT_SYS_STATUS,"Sum Check Err: %02x",CheckSum(ckdata,Len)); + 3dfa: 6c5b mov r1, r6 + 3dfc: 6c3b mov r0, r14 + 3dfe: e3fffd47 bsr 0x388c // 388c + 3e02: 6c83 mov r2, r0 + 3e04: 1124 lrw r1, 0x4de9 // 3e94 + 3e06: 3000 movi r0, 0 + 3e08: e3fffc36 bsr 0x3674 // 3674 + return 0x05; + 3e0c: 3005 movi r0, 5 + 3e0e: 07cc br 0x3da6 // 3da6 + 3e10: 320f movi r2, 15 + 3e12: 8461 ld.b r3, (r4, 0x1) + 3e14: 68c8 and r3, r2 + if((RecData[SEND_SN]&0x0F) == c_rly.SN) + 3e16: 1141 lrw r2, 0x2000036c // 3e98 + 3e18: 824c ld.b r2, (r2, 0xc) + 3e1a: 64ca cmpne r2, r3 + 3e1c: 0807 bt 0x3e2a // 3e2a + Dbg_Println(DBG_BIT_SYS_STATUS,"SN is Equal: %02x",c_rly.SN); + 3e1e: 3000 movi r0, 0 + 3e20: 103f lrw r1, 0x4dfd // 3e9c + 3e22: e3fffc29 bsr 0x3674 // 3674 + return 0x00; + 3e26: 3000 movi r0, 0 + 3e28: 07bf br 0x3da6 // 3da6 + switch(RecData[0x06]) + 3e2a: 8406 ld.b r0, (r4, 0x6) + 3e2c: 281f subi r0, 32 + 3e2e: 380a cmphsi r0, 11 + 3e30: 0bbb bt 0x3da6 // 3da6 + 3e32: e3ffe765 bsr 0xcfc // cfc <___gnu_csky_case_sqi> + 3e36: b806 .short 0xb806 + 3e38: b80bb8b8 .long 0xb80bb8b8 + 3e3c: 151a10b8 .long 0x151a10b8 + 3e40: 001f .short 0x001f + BLV_A9RLY_CMD_SET_Processing(RecData,Len); + 3e42: 6c57 mov r1, r5 + 3e44: 6c13 mov r0, r4 + 3e46: e3fffdd9 bsr 0x39f8 // 39f8 + break; + 3e4a: 07ae br 0x3da6 // 3da6 + BLV_A9RLY_CMD_READ_Processing(RecData,Len); + 3e4c: 6c57 mov r1, r5 + 3e4e: 6c13 mov r0, r4 + 3e50: e3fffe26 bsr 0x3a9c // 3a9c + break; + 3e54: 07a9 br 0x3da6 // 3da6 + BLV_WINDOUT_CMD_SET_Processing(RecData,Len); + 3e56: 6c57 mov r1, r5 + 3e58: 6c13 mov r0, r4 + 3e5a: e3fffe67 bsr 0x3b28 // 3b28 + break; + 3e5e: 07a4 br 0x3da6 // 3da6 + BLV_WINDOUT_CMD_READ_Processing(RecData,Len); + 3e60: 6c57 mov r1, r5 + 3e62: 6c13 mov r0, r4 + 3e64: e3fffece bsr 0x3c00 // 3c00 + break; + 3e68: 079f br 0x3da6 // 3da6 + BLV_DEVPROT_CMD_SET_Processing(RecData,Len); + 3e6a: 6c57 mov r1, r5 + 3e6c: 6c13 mov r0, r4 + 3e6e: e3ffff13 bsr 0x3c94 // 3c94 + break; + 3e72: 079a br 0x3da6 // 3da6 + BLV_DEVPROT_CMD_READ_Processing(RecData,Len); + 3e74: 6c57 mov r1, r5 + 3e76: 6c13 mov r0, r4 + 3e78: e3ffff52 bsr 0x3d1c // 3d1c +} + 3e7c: 0795 br 0x3da6 // 3da6 + 3e7e: 0000 bkpt + 3e80: 00004daf .long 0x00004daf + 3e84: 00004dbc .long 0x00004dbc + 3e88: 00004dca .long 0x00004dca + 3e8c: 2000035c .long 0x2000035c + 3e90: 00004dd9 .long 0x00004dd9 + 3e94: 00004de9 .long 0x00004de9 + 3e98: 2000036c .long 0x2000036c + 3e9c: 00004dfd .long 0x00004dfd + +Disassembly of section .text.CTRL_LEDStatus_Task: + +00003ea0 : + + + +void CTRL_LEDStatus_Task(void) +{ + 3ea0: 14d0 push r15 + static U32_T Ctrl_LED_tick = 0x00; + + if(SysTick_1ms - Ctrl_LED_tick >= 500) + 3ea2: 1029 lrw r1, 0x200000a4 // 3ec4 + 3ea4: 1049 lrw r2, 0x200000bc // 3ec8 + 3ea6: 9160 ld.w r3, (r1, 0x0) + 3ea8: 9200 ld.w r0, (r2, 0x0) + 3eaa: 60c2 subu r3, r0 + 3eac: 1008 lrw r0, 0x1f3 // 3ecc + 3eae: 64c0 cmphs r0, r3 + 3eb0: 0808 bt 0x3ec0 // 3ec0 + { + Ctrl_LED_tick = SysTick_1ms; + 3eb2: 9160 ld.w r3, (r1, 0x0) + 3eb4: b260 st.w r3, (r2, 0x0) + + REVERISE_STATUS; + 3eb6: 3104 movi r1, 4 + 3eb8: 1066 lrw r3, 0x2000004c // 3ed0 + 3eba: 9300 ld.w r0, (r3, 0x0) + 3ebc: e3fff13e bsr 0x2138 // 2138 + } + 3ec0: 1490 pop r15 + 3ec2: 0000 bkpt + 3ec4: 200000a4 .long 0x200000a4 + 3ec8: 200000bc .long 0x200000bc + 3ecc: 000001f3 .long 0x000001f3 + 3ed0: 2000004c .long 0x2000004c + +Disassembly of section .text.EEPROM_CheckSum: + +00003ed4 : +#include "includes.h" + +E_MCU_DEV_INFO g_mcu_dev; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 3ed4: 6cc3 mov r3, r0 + 3ed6: 6040 addu r1, r0 + U8_T data_sum = 0; + 3ed8: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 3ede: 783c jmp r15 + data_sum += data[i]; + 3ee0: 8340 ld.b r2, (r3, 0x0) + 3ee2: 6008 addu r0, r2 + 3ee4: 7400 zextb r0, r0 + 3ee6: 2300 addi r3, 1 + 3ee8: 07f9 br 0x3eda // 3eda + +Disassembly of section .text.EEPROM_ReadPara: + +00003eec : +* Description : 读取参数 +* Parameter : +* info :读取参数指针 +*******************************************************************************/ +U8_T EEPROM_ReadPara(void) +{ + 3eec: 14d1 push r4, r15 + 3eee: 1430 subi r14, r14, 64 + U32_T temp_addr = EEPROM_PARA_SaveAddr; + U8_T read_info[10]; + U8_T para_data[EEPROM_PARA_Size]; + UINT16 read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 3ef0: 6c3b mov r0, r14 + 3ef2: 320a movi r2, 10 + 3ef4: 3100 movi r1, 0 + 3ef6: e3ffed43 bsr 0x197c // 197c <__memset_fast> + memset(para_data,0,sizeof(para_data)); + 3efa: 3232 movi r2, 50 + 3efc: 3100 movi r1, 0 + 3efe: 1803 addi r0, r14, 12 + 3f00: e3ffed3e bsr 0x197c // 197c <__memset_fast> + + ReadDataArry_U8(temp_addr,4,read_info); + 3f04: 6cbb mov r2, r14 + 3f06: 3104 movi r1, 4 + 3f08: 1214 lrw r0, 0x10000100 // 4058 + 3f0a: e3fff3bb bsr 0x2680 // 2680 + + if(read_info[0] == EEPROM_SAVE_Flag){ + 3f0e: d84e0000 ld.b r2, (r14, 0x0) + 3f12: 33a5 movi r3, 165 + 3f14: 64ca cmpne r2, r3 + 3f16: 1292 lrw r4, 0x2000036c // 405c + 3f18: 0872 bt 0x3ffc // 3ffc + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 3f1a: d86e0002 ld.b r3, (r14, 0x2) + 3f1e: d84e0001 ld.b r2, (r14, 0x1) + 3f22: 4368 lsli r3, r3, 8 + + if((read_len <= EEPROM_PARA_Size) && (read_len == 0x0A)){ + 3f24: 6cc8 or r3, r2 + 3f26: 3b4a cmpnei r3, 10 + 3f28: 086a bt 0x3ffc // 3ffc + temp_addr += EEPROM_Data_Offset; + ReadDataArry_U8(temp_addr,read_len,para_data); + 3f2a: 1a03 addi r2, r14, 12 + 3f2c: 310a movi r1, 10 + 3f2e: 120d lrw r0, 0x10000104 // 4060 + 3f30: e3fff3a8 bsr 0x2680 // 2680 + if(CheckSum(para_data,read_len) == read_info[3]){ + 3f34: 310a movi r1, 10 + 3f36: 1803 addi r0, r14, 12 + 3f38: e3fffcaa bsr 0x388c // 388c + 3f3c: d86e0003 ld.b r3, (r14, 0x3) + 3f40: 640e cmpne r3, r0 + 3f42: 085d bt 0x3ffc // 3ffc + //校验成功 - 读取参数 + c_rly.wind_STOP_vol = (para_data[0] + (para_data[1]<<8)); + 3f44: d86e000d ld.b r3, (r14, 0xd) + 3f48: d84e000c ld.b r2, (r14, 0xc) + 3f4c: 4368 lsli r3, r3, 8 + 3f4e: 60c8 addu r3, r2 + 3f50: 74cd zexth r3, r3 + if(c_rly.wind_STOP_vol > 10000){ + 3f52: 1245 lrw r2, 0x2710 // 4064 + 3f54: 64c8 cmphs r2, r3 + 3f56: 0c48 bf 0x3fe6 // 3fe6 + c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default; + 3f58: ac68 st.h r3, (r4, 0x10) + } + + c_rly.wind_LOW_vol = (para_data[2] + (para_data[3]<<8)); + 3f5a: d86e000f ld.b r3, (r14, 0xf) + 3f5e: d84e000e ld.b r2, (r14, 0xe) + 3f62: 4368 lsli r3, r3, 8 + 3f64: 60c8 addu r3, r2 + 3f66: 74cd zexth r3, r3 + if(c_rly.wind_LOW_vol > 10000){ + 3f68: 115f lrw r2, 0x2710 // 4064 + 3f6a: 64c8 cmphs r2, r3 + 3f6c: 0c3f bf 0x3fea // 3fea + c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default; + 3f6e: ac69 st.h r3, (r4, 0x12) + } + + c_rly.wind_MID_vol = (para_data[4] + (para_data[5]<<8)); + 3f70: d86e0011 ld.b r3, (r14, 0x11) + 3f74: d84e0010 ld.b r2, (r14, 0x10) + 3f78: 4368 lsli r3, r3, 8 + 3f7a: 60c8 addu r3, r2 + 3f7c: 74cd zexth r3, r3 + if(c_rly.wind_MID_vol > 10000){ + 3f7e: 115a lrw r2, 0x2710 // 4064 + 3f80: 64c8 cmphs r2, r3 + 3f82: 0c36 bf 0x3fee // 3fee + c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default; + 3f84: ac6a st.h r3, (r4, 0x14) + } + + c_rly.wind_HIGH_vol = (para_data[6] + (para_data[7]<<8)); + 3f86: d86e0013 ld.b r3, (r14, 0x13) + 3f8a: d84e0012 ld.b r2, (r14, 0x12) + 3f8e: 4368 lsli r3, r3, 8 + 3f90: 60c8 addu r3, r2 + 3f92: 74cd zexth r3, r3 + if(c_rly.wind_HIGH_vol > 10000){ + 3f94: 1154 lrw r2, 0x2710 // 4064 + 3f96: 64c8 cmphs r2, r3 + 3f98: 0c2d bf 0x3ff2 // 3ff2 + c_rly.wind_HIGH_vol = (para_data[6] + (para_data[7]<<8)); + 3f9a: ac6b st.h r3, (r4, 0x16) + c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default; + } + + //设备端口模式 + c_rly.dev_port = para_data[9]; + 3f9c: d84e0015 ld.b r2, (r14, 0x15) + if((c_rly.dev_port != ACTIVE_PORT)&&(c_rly.dev_port != POLLING_PORT)) + 3fa0: 5a63 subi r3, r2, 1 + 3fa2: 74cc zextb r3, r3 + 3fa4: 3b01 cmphsi r3, 2 + 3fa6: 0828 bt 0x3ff6 // 3ff6 + c_rly.dev_port = para_data[9]; + 3fa8: a44b st.b r2, (r4, 0xb) + { + c_rly.dev_port = POLLING_PORT; + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_STOP_vol : %d",c_rly.wind_STOP_vol); + 3faa: 8c48 ld.h r2, (r4, 0x10) + 3fac: 112f lrw r1, 0x4e0f // 4068 + 3fae: 3000 movi r0, 0 + 3fb0: e3fffb62 bsr 0x3674 // 3674 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_LOW_vol : %d",c_rly.wind_LOW_vol); + 3fb4: 8c49 ld.h r2, (r4, 0x12) + 3fb6: 112e lrw r1, 0x4e32 // 406c + 3fb8: 3000 movi r0, 0 + 3fba: e3fffb5d bsr 0x3674 // 3674 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_MID_vol : %d",c_rly.wind_MID_vol); + 3fbe: 8c4a ld.h r2, (r4, 0x14) + 3fc0: 112c lrw r1, 0x4e55 // 4070 + 3fc2: 3000 movi r0, 0 + 3fc4: e3fffb58 bsr 0x3674 // 3674 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara wind_HIGH_vol : %d",c_rly.wind_HIGH_vol); + 3fc8: 8c4b ld.h r2, (r4, 0x16) + 3fca: 112b lrw r1, 0x4e78 // 4074 + 3fcc: 3000 movi r0, 0 + 3fce: e3fffb53 bsr 0x3674 // 3674 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara dev_port : %d",c_rly.dev_port); + 3fd2: 3000 movi r0, 0 + 3fd4: 844b ld.b r2, (r4, 0xb) + 3fd6: 1129 lrw r1, 0x4e9b // 4078 + 3fd8: e3fffb4e bsr 0x3674 // 3674 + SYSCON_IWDCNT_Reload(); + 3fdc: e3ffee64 bsr 0x1ca4 // 1ca4 + return 0x00; + 3fe0: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"wind_MID_vol : %d",c_rly.wind_MID_vol); + Dbg_Println(DBG_BIT_SYS_STATUS,"wind_HIGH_vol : %d",c_rly.wind_HIGH_vol); + Dbg_Println(DBG_BIT_SYS_STATUS,"dev_port : %d",c_rly.dev_port); + SYSCON_IWDCNT_Reload(); + return 0x01; +} + 3fe2: 1410 addi r14, r14, 64 + 3fe4: 1491 pop r4, r15 + c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default; + 3fe6: 3300 movi r3, 0 + 3fe8: 07b8 br 0x3f58 // 3f58 + c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default; + 3fea: 116b lrw r3, 0xbb8 // 4094 + 3fec: 07c1 br 0x3f6e // 3f6e + c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default; + 3fee: 116b lrw r3, 0x1770 // 4098 + 3ff0: 07ca br 0x3f84 // 3f84 + c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default; + 3ff2: ac4b st.h r2, (r4, 0x16) + 3ff4: 07d4 br 0x3f9c // 3f9c + c_rly.dev_port = POLLING_PORT; + 3ff6: 3301 movi r3, 1 + 3ff8: a46b st.b r3, (r4, 0xb) + 3ffa: 07d8 br 0x3faa // 3faa + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara Default!"); + 3ffc: 1120 lrw r1, 0x4ebe // 407c + 3ffe: 3000 movi r0, 0 + 4000: e3fffb3a bsr 0x3674 // 3674 + c_rly.wind_STOP_vol = EEPROM_WINDSTOP_OUT_Default; + 4004: 3300 movi r3, 0 + 4006: ac68 st.h r3, (r4, 0x10) + c_rly.wind_LOW_vol = EEPROM_WINDLOW_OUT_Default; + 4008: 1163 lrw r3, 0xbb8 // 4094 + 400a: ac69 st.h r3, (r4, 0x12) + c_rly.wind_MID_vol = EEPROM_WINDMID_OUT_Default; + 400c: 1163 lrw r3, 0x1770 // 4098 + 400e: ac6a st.h r3, (r4, 0x14) + c_rly.wind_HIGH_vol = EEPROM_WINDHIGH_OUT_Default; + 4010: 1163 lrw r3, 0x2710 // 409c + 4012: ac6b st.h r3, (r4, 0x16) + c_rly.dev_port = POLLING_PORT; + 4014: 3301 movi r3, 1 + 4016: a46b st.b r3, (r4, 0xb) + SYSCON_IWDCNT_Reload(); + 4018: e3ffee46 bsr 0x1ca4 // 1ca4 + Dbg_Println(DBG_BIT_SYS_STATUS,"wind_STOP_vol : %d",c_rly.wind_STOP_vol); + 401c: 8c48 ld.h r2, (r4, 0x10) + 401e: 1039 lrw r1, 0x4e1f // 4080 + 4020: 3000 movi r0, 0 + 4022: e3fffb29 bsr 0x3674 // 3674 + Dbg_Println(DBG_BIT_SYS_STATUS,"wind_LOW_vol : %d",c_rly.wind_LOW_vol); + 4026: 8c49 ld.h r2, (r4, 0x12) + 4028: 1037 lrw r1, 0x4e42 // 4084 + 402a: 3000 movi r0, 0 + 402c: e3fffb24 bsr 0x3674 // 3674 + Dbg_Println(DBG_BIT_SYS_STATUS,"wind_MID_vol : %d",c_rly.wind_MID_vol); + 4030: 8c4a ld.h r2, (r4, 0x14) + 4032: 1036 lrw r1, 0x4e65 // 4088 + 4034: 3000 movi r0, 0 + 4036: e3fffb1f bsr 0x3674 // 3674 + Dbg_Println(DBG_BIT_SYS_STATUS,"wind_HIGH_vol : %d",c_rly.wind_HIGH_vol); + 403a: 8c4b ld.h r2, (r4, 0x16) + 403c: 1034 lrw r1, 0x4e88 // 408c + 403e: 3000 movi r0, 0 + 4040: e3fffb1a bsr 0x3674 // 3674 + Dbg_Println(DBG_BIT_SYS_STATUS,"dev_port : %d",c_rly.dev_port); + 4044: 3000 movi r0, 0 + 4046: 844b ld.b r2, (r4, 0xb) + 4048: 1032 lrw r1, 0x4eab // 4090 + 404a: e3fffb15 bsr 0x3674 // 3674 + SYSCON_IWDCNT_Reload(); + 404e: e3ffee2b bsr 0x1ca4 // 1ca4 + return 0x01; + 4052: 3001 movi r0, 1 + 4054: 07c7 br 0x3fe2 // 3fe2 + 4056: 0000 bkpt + 4058: 10000100 .long 0x10000100 + 405c: 2000036c .long 0x2000036c + 4060: 10000104 .long 0x10000104 + 4064: 00002710 .long 0x00002710 + 4068: 00004e0f .long 0x00004e0f + 406c: 00004e32 .long 0x00004e32 + 4070: 00004e55 .long 0x00004e55 + 4074: 00004e78 .long 0x00004e78 + 4078: 00004e9b .long 0x00004e9b + 407c: 00004ebe .long 0x00004ebe + 4080: 00004e1f .long 0x00004e1f + 4084: 00004e42 .long 0x00004e42 + 4088: 00004e65 .long 0x00004e65 + 408c: 00004e88 .long 0x00004e88 + 4090: 00004eab .long 0x00004eab + 4094: 00000bb8 .long 0x00000bb8 + 4098: 00001770 .long 0x00001770 + 409c: 00002710 .long 0x00002710 + +Disassembly of section .text.EEPROM_ValidateWrite: + +000040a0 : + +/******************************************************************************* +* Function Name : EEPROM_ValidateWrite +* Description : 校验写入参数 +*******************************************************************************/ +U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){ + 40a0: 1425 subi r14, r14, 20 + 40a2: dd0e2003 st.w r8, (r14, 0xc) + 40a6: 6e3b mov r8, r14 + 40a8: b880 st.w r4, (r14, 0x0) + 40aa: b8a1 st.w r5, (r14, 0x4) + 40ac: b8c2 st.w r6, (r14, 0x8) + 40ae: ddee2004 st.w r15, (r14, 0x10) + U8_T Read_para[Write_Len]; + 40b2: 5a6a addi r3, r2, 3 +U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){ + 40b4: 6d0b mov r4, r2 + U8_T Read_para[Write_Len]; + 40b6: 4b62 lsri r3, r3, 2 + 40b8: 3280 movi r2, 128 +U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){ + 40ba: 6d83 mov r6, r0 + 40bc: 6d47 mov r5, r1 + U8_T Read_para[Write_Len]; + 40be: 4362 lsli r3, r3, 2 + 40c0: 4245 lsli r2, r2, 5 + 40c2: 64c8 cmphs r2, r3 + 40c4: 0806 bt 0x40d0 // 40d0 + 40c6: 638a subu r14, r2 + 40c8: ddce2000 st.w r14, (r14, 0x0) + 40cc: 60ca subu r3, r2 + 40ce: 07fa br 0x40c2 // 40c2 + 40d0: 638e subu r14, r3 + U16_T i = 0; + + memset(Read_para,0,sizeof(Read_para)); + 40d2: 6c93 mov r2, r4 + 40d4: 3100 movi r1, 0 + 40d6: 6c3b mov r0, r14 + 40d8: e3ffec52 bsr 0x197c // 197c <__memset_fast> + + ReadDataArry_U8(Eeprom_Write_SaveAddr,Write_Len,Read_para); + 40dc: 6c53 mov r1, r4 + 40de: 6cbb mov r2, r14 + 40e0: 6c1b mov r0, r6 + 40e2: e3fff2cf bsr 0x2680 // 2680 + 40e6: 6138 addu r4, r14 + 40e8: 6cfb mov r3, r14 + for(i=0;i + if (Read_para[i]!=Write_Data[i]) { + return 0x01; + } + } + return 0x00; + 40ee: 3000 movi r0, 0 +} + 40f0: 6fa3 mov r14, r8 + 40f2: d9ee2004 ld.w r15, (r14, 0x10) + 40f6: d90e2003 ld.w r8, (r14, 0xc) + 40fa: 98c2 ld.w r6, (r14, 0x8) + 40fc: 98a1 ld.w r5, (r14, 0x4) + 40fe: 9880 ld.w r4, (r14, 0x0) + 4100: 1405 addi r14, r14, 20 + 4102: 783c jmp r15 + if (Read_para[i]!=Write_Data[i]) { + 4104: 8320 ld.b r1, (r3, 0x0) + 4106: 8540 ld.b r2, (r5, 0x0) + 4108: 6486 cmpne r1, r2 + 410a: 2300 addi r3, 1 + 410c: 2500 addi r5, 1 + 410e: 0fee bf 0x40ea // 40ea + return 0x01; + 4110: 3001 movi r0, 1 + 4112: 07ef br 0x40f0 // 40f0 + +Disassembly of section .text.EEPROM_WritePara: + +00004114 : +/******************************************************************************* +* Function Name : EEPROM_WritePara +* Description : 保存参数 +*******************************************************************************/ +U8_T EEPROM_WritePara(void) +{ + 4114: 14d1 push r4, r15 + 4116: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_PARA_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = 0x0A; + + memset(save_para,0,sizeof(save_para)); + 4118: 6c3b mov r0, r14 + 411a: 323c movi r2, 60 + 411c: 3100 movi r1, 0 + 411e: e3ffec2f bsr 0x197c // 197c <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SAVE_Flag; + 4122: 3300 movi r3, 0 + 4124: 2b5a subi r3, 91 + 4126: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 412a: 330a movi r3, 10 + 412c: dc6e0001 st.b r3, (r14, 0x1) + save_para[12] = g_Dip.addr; + save_para[13] = c_rly.dev_port; //端口模式 + + + + save_para[3] = CheckSum(&save_para[4],save_len); + 4130: 310a movi r1, 10 + save_para[4] = c_rly.wind_STOP_vol & 0xFF; + 4132: 1160 lrw r3, 0x2000036c // 41b0 + 4134: 8b48 ld.h r2, (r3, 0x10) + 4136: dc4e0004 st.b r2, (r14, 0x4) + save_para[5] = (c_rly.wind_STOP_vol >> 8) & 0xFF; + 413a: 4a48 lsri r2, r2, 8 + 413c: dc4e0005 st.b r2, (r14, 0x5) + save_para[6] = c_rly.wind_LOW_vol & 0xFF; + 4140: 8b49 ld.h r2, (r3, 0x12) + 4142: dc4e0006 st.b r2, (r14, 0x6) + save_para[7] = (c_rly.wind_LOW_vol >> 8) & 0xFF; + 4146: 4a48 lsri r2, r2, 8 + 4148: dc4e0007 st.b r2, (r14, 0x7) + save_para[8] = c_rly.wind_MID_vol & 0xFF; + 414c: 8b4a ld.h r2, (r3, 0x14) + 414e: dc4e0008 st.b r2, (r14, 0x8) + save_para[9] = (c_rly.wind_MID_vol >> 8) & 0xFF; + 4152: 4a48 lsri r2, r2, 8 + 4154: dc4e0009 st.b r2, (r14, 0x9) + save_para[10] = c_rly.wind_HIGH_vol & 0xFF; + 4158: 8b4b ld.h r2, (r3, 0x16) + 415a: dc4e000a st.b r2, (r14, 0xa) + save_para[11] = (c_rly.wind_HIGH_vol >> 8) & 0xFF; + 415e: 4a48 lsri r2, r2, 8 + 4160: dc4e000b st.b r2, (r14, 0xb) + save_para[13] = c_rly.dev_port; //端口模式 + 4164: 836b ld.b r3, (r3, 0xb) + save_para[12] = g_Dip.addr; + 4166: 1054 lrw r2, 0x2000035c // 41b4 + 4168: 8246 ld.b r2, (r2, 0x6) + save_para[3] = CheckSum(&save_para[4],save_len); + 416a: 1801 addi r0, r14, 4 + save_para[13] = c_rly.dev_port; //端口模式 + 416c: dc6e000d st.b r3, (r14, 0xd) + save_para[12] = g_Dip.addr; + 4170: dc4e000c st.b r2, (r14, 0xc) + save_para[3] = CheckSum(&save_para[4],save_len); + 4174: e3fffb8c bsr 0x388c // 388c + 4178: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 417c: 6cbb mov r2, r14 + 417e: 310e movi r1, 14 + 4180: 100e lrw r0, 0x10000100 // 41b8 + 4182: e3fff22f bsr 0x25e0 // 25e0 + + if(EEPROM_ValidateWrite(temp_addr,save_para,save_len)){ + 4186: 320e movi r2, 14 + 4188: 6c7b mov r1, r14 + 418a: 100c lrw r0, 0x10000100 // 41b8 + 418c: e3ffff8a bsr 0x40a0 // 40a0 + 4190: 3840 cmpnei r0, 0 + 4192: 6d03 mov r4, r0 + 4194: 0c09 bf 0x41a6 // 41a6 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para Err"); + 4196: 102a lrw r1, 0x4ed7 // 41bc + 4198: 3000 movi r0, 0 + 419a: e3fffa6d bsr 0x3674 // 3674 + return 0x01; + 419e: 3401 movi r4, 1 + } + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para"); + return 0; +} + 41a0: 6c13 mov r0, r4 + 41a2: 140f addi r14, r14, 60 + 41a4: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para"); + 41a6: 1027 lrw r1, 0x4ef6 // 41c0 + 41a8: 3000 movi r0, 0 + 41aa: e3fffa65 bsr 0x3674 // 3674 + return 0; + 41ae: 07f9 br 0x41a0 // 41a0 + 41b0: 2000036c .long 0x2000036c + 41b4: 2000035c .long 0x2000035c + 41b8: 10000100 .long 0x10000100 + 41bc: 00004ed7 .long 0x00004ed7 + 41c0: 00004ef6 .long 0x00004ef6 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +000041c4 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 41c4: 14d1 push r4, r15 + 41c6: 1432 subi r14, r14, 72 + 41c8: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 41ca: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 41cc: 3240 movi r2, 64 + 41ce: 3100 movi r1, 0 + 41d0: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 41d2: b860 st.w r3, (r14, 0x0) + 41d4: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 41d8: e3ffebd2 bsr 0x197c // 197c <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 41dc: 3080 movi r0, 128 + 41de: 6cbb mov r2, r14 + 41e0: 3104 movi r1, 4 + 41e2: 4015 lsli r0, r0, 21 + 41e4: e3fff24e bsr 0x2680 // 2680 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 41e8: d84e0000 ld.b r2, (r14, 0x0) + 41ec: 33ae movi r3, 174 + 41ee: 64ca cmpne r2, r3 + 41f0: 0c04 bf 0x41f8 // 41f8 + return 0x00; + } + } + } + + return 0x01; + 41f2: 3001 movi r0, 1 +} + 41f4: 1412 addi r14, r14, 72 + 41f6: 1491 pop r4, r15 + read_len |= read_info[1]; + 41f8: d82e0002 ld.b r1, (r14, 0x2) + 41fc: d86e0001 ld.b r3, (r14, 0x1) + 4200: 4128 lsli r1, r1, 8 + 4202: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 4204: 3340 movi r3, 64 + 4206: 644c cmphs r3, r1 + 4208: 0ff5 bf 0x41f2 // 41f2 + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 420a: 1a02 addi r2, r14, 8 + 420c: 1009 lrw r0, 0x10000004 // 4230 + 420e: e3fff239 bsr 0x2680 // 2680 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 4212: 3125 movi r1, 37 + 4214: 1802 addi r0, r14, 8 + 4216: e3fffe5f bsr 0x3ed4 // 3ed4 + 421a: d86e0003 ld.b r3, (r14, 0x3) + 421e: 640e cmpne r3, r0 + 4220: 0be9 bt 0x41f2 // 41f2 + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 4222: 3225 movi r2, 37 + 4224: 1902 addi r1, r14, 8 + 4226: 6c13 mov r0, r4 + 4228: e3ffebee bsr 0x1a04 // 1a04 <__memcpy_fast> + return 0x00; + 422c: 3000 movi r0, 0 + 422e: 07e3 br 0x41f4 // 41f4 + 4230: 10000004 .long 0x10000004 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00004234 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4234: 14d0 push r15 + 4236: 1432 subi r14, r14, 72 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 4238: 3300 movi r3, 0 + 423a: 2b51 subi r3, 82 + 423c: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 4240: 3325 movi r3, 37 + 4242: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 4246: 3300 movi r3, 0 + 4248: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 424c: 1b01 addi r3, r14, 4 +{ + 424e: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4250: 3225 movi r2, 37 + 4252: 6c0f mov r0, r3 + 4254: e3ffebd8 bsr 0x1a04 // 1a04 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 4258: 3125 movi r1, 37 + 425a: e3fffe3d bsr 0x3ed4 // 3ed4 + 425e: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 4262: 3080 movi r0, 128 + 4264: 4015 lsli r0, r0, 21 + 4266: 6cbb mov r2, r14 + 4268: 3129 movi r1, 41 + 426a: e3fff1bb bsr 0x25e0 // 25e0 + + return 0; +} + 426e: 3000 movi r0, 0 + 4270: 1412 addi r14, r14, 72 + 4272: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +00004274 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4274: 14d2 push r4-r5, r15 + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + 4276: 3300 movi r3, 0 + 4278: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 427a: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 427c: 3301 movi r3, 1 + 427e: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 4280: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 4282: 330f movi r3, 15 + 4284: a064 st.b r3, (r0, 0x4) +{ + 4286: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 4288: 3220 movi r2, 32 + 428a: 3100 movi r1, 0 + 428c: 6c17 mov r0, r5 + 428e: e3ffeb77 bsr 0x197c // 197c <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 4292: 320f movi r2, 15 + 4294: 1024 lrw r1, 0x4f11 // 42a4 + 4296: 6c17 mov r0, r5 + 4298: e3ffebb6 bsr 0x1a04 // 1a04 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 429c: 6c13 mov r0, r4 + 429e: e3ffffcb bsr 0x4234 // 4234 +#endif +} + 42a2: 1492 pop r4-r5, r15 + 42a4: 00004f11 .long 0x00004f11 + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +000042a8 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 42a8: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 42aa: 8063 ld.b r3, (r0, 0x3) + 42ac: 3b41 cmpnei r3, 1 +{ + 42ae: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 42b0: 0c21 bf 0x42f2 // 42f2 + { + info->dev_app_ver = Project_FW_Version; + 42b2: 3301 movi r3, 1 + 42b4: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 42b6: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 42b8: 8461 ld.b r3, (r4, 0x1) + 42ba: 3b40 cmpnei r3, 0 + 42bc: 0c04 bf 0x42c4 // 42c4 + { + info->dev_type = Project_Type; + 42be: 3300 movi r3, 0 + 42c0: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 42c2: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 42c4: 8464 ld.b r3, (r4, 0x4) + 42c6: 3b4f cmpnei r3, 15 + 42c8: 0c04 bf 0x42d0 // 42d0 + { + info->dev_name_len = sizeof(Peoject_Name); + 42ca: 330f movi r3, 15 + 42cc: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 42ce: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 42d0: 5cd2 addi r6, r4, 5 + 42d2: 320f movi r2, 15 + 42d4: 102a lrw r1, 0x4f11 // 42fc + 42d6: 6c1b mov r0, r6 + 42d8: e3ffebc8 bsr 0x1a68 // 1a68 <__GI_strncmp> + 42dc: 3840 cmpnei r0, 0 + 42de: 0c0c bf 0x42f6 // 42f6 + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 42e0: 8444 ld.b r2, (r4, 0x4) + 42e2: 1027 lrw r1, 0x4f11 // 42fc + 42e4: 6c1b mov r0, r6 + 42e6: e3ffeb8f bsr 0x1a04 // 1a04 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 42ea: 6c13 mov r0, r4 + 42ec: e3ffffa4 bsr 0x4234 // 4234 + } +#endif +} + 42f0: 0405 br 0x42fa // 42fa + U8_T save_flag = 0; + 42f2: 3500 movi r5, 0 + 42f4: 07e2 br 0x42b8 // 42b8 + if(save_flag == 0x01) + 42f6: 3d41 cmpnei r5, 1 + 42f8: 0ff9 bf 0x42ea // 42ea +} + 42fa: 1493 pop r4-r6, r15 + 42fc: 00004f11 .long 0x00004f11 + +Disassembly of section .text.EEPROM_Init: + +00004300 : +{ + 4300: 14d2 push r4-r5, r15 + EnIFCClk; //使能 IFC 时钟 + 4302: 1074 lrw r3, 0x20000060 // 4350 + 4304: 3201 movi r2, 1 + 4306: 9360 ld.w r3, (r3, 0x0) + 4308: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 430a: 9345 ld.w r2, (r3, 0x14) + 430c: 3aa1 bseti r2, 1 + 430e: 3ab0 bseti r2, 16 + 4310: b345 st.w r2, (r3, 0x14) + EEPROM_ReadPara(); + 4312: e3fffded bsr 0x3eec // 3eec + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + 4316: 1090 lrw r4, 0x20000384 // 4354 + 4318: 3225 movi r2, 37 + 431a: 3100 movi r1, 0 + 431c: 6c13 mov r0, r4 + 431e: e3ffeb2f bsr 0x197c // 197c <__memset_fast> + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 4322: 6c13 mov r0, r4 + 4324: e3ffff50 bsr 0x41c4 // 41c4 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 4328: 106c lrw r3, 0x2000035c // 4358 + 432a: 8366 ld.b r3, (r3, 0x6) + 432c: 8440 ld.b r2, (r4, 0x0) + 432e: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 4330: 6d43 mov r5, r0 + if(g_Dip.addr != g_mcu_dev.dev_addr){ + 4332: 0c05 bf 0x433c // 433c + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 4334: 6c13 mov r0, r4 + g_mcu_dev.dev_addr = g_Dip.addr; + 4336: a460 st.b r3, (r4, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 4338: e3ffff7e bsr 0x4234 // 4234 + if(rev == 0x00){ + 433c: 3d40 cmpnei r5, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 433e: 1006 lrw r0, 0x20000384 // 4354 + if(rev == 0x00){ + 4340: 0804 bt 0x4348 // 4348 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 4342: e3ffffb3 bsr 0x42a8 // 42a8 +} + 4346: 1492 pop r4-r5, r15 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 4348: e3ffff96 bsr 0x4274 // 4274 +} + 434c: 07fd br 0x4346 // 4346 + 434e: 0000 bkpt + 4350: 20000060 .long 0x20000060 + 4354: 20000384 .long 0x20000384 + 4358: 2000035c .long 0x2000035c + +Disassembly of section .text.TK_Sampling_prog: + +0000435c : + 435c: 14c4 push r4-r7 + 435e: 1072 lrw r3, 0x20000054 // 43a4 + 4360: 1012 lrw r0, 0x20000652 // 43a8 + 4362: 1093 lrw r4, 0x200004c3 // 43ac + 4364: 6d83 mov r6, r0 + 4366: 93a0 ld.w r5, (r3, 0x0) + 4368: 3300 movi r3, 0 + 436a: 4342 lsli r2, r3, 2 + 436c: 6094 addu r2, r5 + 436e: 9220 ld.w r1, (r2, 0x0) + 4370: 4341 lsli r2, r3, 1 + 4372: 6080 addu r2, r0 + 4374: 7445 zexth r1, r1 + 4376: aa20 st.h r1, (r2, 0x0) + 4378: 8440 ld.b r2, (r4, 0x0) + 437a: 3a41 cmpnei r2, 1 + 437c: 080f bt 0x439a // 439a + 437e: 3300 movi r3, 0 + 4380: 10ec lrw r7, 0x200003ac // 43b0 + 4382: 4341 lsli r2, r3, 1 + 4384: 5e28 addu r1, r6, r2 + 4386: 8920 ld.h r1, (r1, 0x0) + 4388: 2300 addi r3, 1 + 438a: 7445 zexth r1, r1 + 438c: 609c addu r2, r7 + 438e: 3b51 cmpnei r3, 17 + 4390: aa20 st.h r1, (r2, 0x0) + 4392: 0bf8 bt 0x4382 // 4382 + 4394: 3300 movi r3, 0 + 4396: a460 st.b r3, (r4, 0x0) + 4398: 3311 movi r3, 17 + 439a: 2300 addi r3, 1 + 439c: 74cc zextb r3, r3 + 439e: 3b10 cmphsi r3, 17 + 43a0: 0fe5 bf 0x436a // 436a + 43a2: 1484 pop r4-r7 + 43a4: 20000054 .long 0x20000054 + 43a8: 20000652 .long 0x20000652 + 43ac: 200004c3 .long 0x200004c3 + 43b0: 200003ac .long 0x200003ac + +Disassembly of section .text.TKEYIntHandler: + +000043b4 : + 43b4: 1460 nie + 43b6: 1462 ipush + 43b8: 14d1 push r4, r15 + 43ba: 109e lrw r4, 0x20000068 // 4430 + 43bc: 9460 ld.w r3, (r4, 0x0) + 43be: 3b40 cmpnei r3, 0 + 43c0: 080b bt 0x43d6 // 43d6 + 43c2: 3301 movi r3, 1 + 43c4: b460 st.w r3, (r4, 0x0) + 43c6: 107c lrw r3, 0x20000440 // 4434 + 43c8: 8360 ld.b r3, (r3, 0x0) + 43ca: 3b41 cmpnei r3, 1 + 43cc: 0805 bt 0x43d6 // 43d6 + 43ce: e3ffffc7 bsr 0x435c // 435c + 43d2: 3301 movi r3, 1 + 43d4: a464 st.b r3, (r4, 0x4) + 43d6: 1079 lrw r3, 0x20000058 // 4438 + 43d8: 3101 movi r1, 1 + 43da: 9360 ld.w r3, (r3, 0x0) + 43dc: 934a ld.w r2, (r3, 0x28) + 43de: 6884 and r2, r1 + 43e0: 3a40 cmpnei r2, 0 + 43e2: 0c02 bf 0x43e6 // 43e6 + 43e4: b32c st.w r1, (r3, 0x30) + 43e6: 934a ld.w r2, (r3, 0x28) + 43e8: 3102 movi r1, 2 + 43ea: 6884 and r2, r1 + 43ec: 3a40 cmpnei r2, 0 + 43ee: 0c02 bf 0x43f2 // 43f2 + 43f0: b32c st.w r1, (r3, 0x30) + 43f2: 934a ld.w r2, (r3, 0x28) + 43f4: 3104 movi r1, 4 + 43f6: 6884 and r2, r1 + 43f8: 3a40 cmpnei r2, 0 + 43fa: 0c02 bf 0x43fe // 43fe + 43fc: b32c st.w r1, (r3, 0x30) + 43fe: 934a ld.w r2, (r3, 0x28) + 4400: 3108 movi r1, 8 + 4402: 6884 and r2, r1 + 4404: 3a40 cmpnei r2, 0 + 4406: 0c02 bf 0x440a // 440a + 4408: b32c st.w r1, (r3, 0x30) + 440a: 934a ld.w r2, (r3, 0x28) + 440c: 3110 movi r1, 16 + 440e: 6884 and r2, r1 + 4410: 3a40 cmpnei r2, 0 + 4412: 0c02 bf 0x4416 // 4416 + 4414: b32c st.w r1, (r3, 0x30) + 4416: 934a ld.w r2, (r3, 0x28) + 4418: 3120 movi r1, 32 + 441a: 6884 and r2, r1 + 441c: 3a40 cmpnei r2, 0 + 441e: 0c02 bf 0x4422 // 4422 + 4420: b32c st.w r1, (r3, 0x30) + 4422: d9ee2001 ld.w r15, (r14, 0x4) + 4426: 9880 ld.w r4, (r14, 0x0) + 4428: 1402 addi r14, r14, 8 + 442a: 1463 ipop + 442c: 1461 nir + 442e: 0000 bkpt + 4430: 20000068 .long 0x20000068 + 4434: 20000440 .long 0x20000440 + 4438: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000443c : + 443c: 14c2 push r4-r5 + 443e: 3200 movi r2, 0 + 4440: 3000 movi r0, 0 + 4442: 1088 lrw r4, 0x200004e0 // 4460 + 4444: 3501 movi r5, 1 + 4446: 3120 movi r1, 32 + 4448: 9460 ld.w r3, (r4, 0x0) + 444a: 70c9 lsr r3, r2 + 444c: 68d4 and r3, r5 + 444e: 3b40 cmpnei r3, 0 + 4450: 0c02 bf 0x4454 // 4454 + 4452: 2000 addi r0, 1 + 4454: 2200 addi r2, 1 + 4456: 644a cmpne r2, r1 + 4458: 0bf8 bt 0x4448 // 4448 + 445a: 7400 zextb r0, r0 + 445c: 1482 pop r4-r5 + 445e: 0000 bkpt + 4460: 200004e0 .long 0x200004e0 + +Disassembly of section .text.TK_Scan_Start: + +00004464 : + 4464: 1046 lrw r2, 0x20000068 // 447c + 4466: 8264 ld.b r3, (r2, 0x4) + 4468: 74cc zextb r3, r3 + 446a: 3b41 cmpnei r3, 1 + 446c: 0807 bt 0x447a // 447a + 446e: 1025 lrw r1, 0x20000058 // 4480 + 4470: 9120 ld.w r1, (r1, 0x0) + 4472: b162 st.w r3, (r1, 0x8) + 4474: 3300 movi r3, 0 + 4476: b260 st.w r3, (r2, 0x0) + 4478: a264 st.b r3, (r2, 0x4) + 447a: 783c jmp r15 + 447c: 20000068 .long 0x20000068 + 4480: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00004484 : + 4484: 14d4 push r4-r7, r15 + 4486: 1425 subi r14, r14, 20 + 4488: 1271 lrw r3, 0x200000ec // 45cc + 448a: 8360 ld.b r3, (r3, 0x0) + 448c: b860 st.w r3, (r14, 0x0) + 448e: 3400 movi r4, 0 + 4490: 1270 lrw r3, 0x200000c0 // 45d0 + 4492: 8360 ld.b r3, (r3, 0x0) + 4494: b861 st.w r3, (r14, 0x4) + 4496: 12f0 lrw r7, 0x20000456 // 45d4 + 4498: 1270 lrw r3, 0x200000c9 // 45d8 + 449a: 83a0 ld.b r5, (r3, 0x0) + 449c: 1270 lrw r3, 0x200000c8 // 45dc + 449e: 8360 ld.b r3, (r3, 0x0) + 44a0: b862 st.w r3, (r14, 0x8) + 44a2: 6d9f mov r6, r7 + 44a4: 126f lrw r3, 0x20000652 // 45e0 + 44a6: b863 st.w r3, (r14, 0xc) + 44a8: 4461 lsli r3, r4, 1 + 44aa: 9843 ld.w r2, (r14, 0xc) + 44ac: 608c addu r2, r3 + 44ae: 122e lrw r1, 0x200003ac // 45e4 + 44b0: 604c addu r1, r3 + 44b2: 8a40 ld.h r2, (r2, 0x0) + 44b4: 8920 ld.h r1, (r1, 0x0) + 44b6: 6086 subu r2, r1 + 44b8: 748b sexth r2, r2 + 44ba: 5f2c addu r1, r7, r3 + 44bc: a940 st.h r2, (r1, 0x0) + 44be: 8940 ld.h r2, (r1, 0x0) + 44c0: 748b sexth r2, r2 + 44c2: 3adf btsti r2, 31 + 44c4: 1249 lrw r2, 0x2000060e // 45e8 + 44c6: 608c addu r2, r3 + 44c8: 0c37 bf 0x4536 // 4536 + 44ca: 3100 movi r1, 0 + 44cc: aa20 st.h r1, (r2, 0x0) + 44ce: 9840 ld.w r2, (r14, 0x0) + 44d0: 3a01 cmphsi r2, 2 + 44d2: 0c6d bf 0x45ac // 45ac + 44d4: 4461 lsli r3, r4, 1 + 44d6: 5e2c addu r1, r6, r3 + 44d8: 1205 lrw r0, 0x2000011a // 45ec + 44da: 8940 ld.h r2, (r1, 0x0) + 44dc: 60c0 addu r3, r0 + 44de: 748b sexth r2, r2 + 44e0: 8b60 ld.h r3, (r3, 0x0) + 44e2: 648d cmplt r3, r2 + 44e4: 9840 ld.w r2, (r14, 0x0) + 44e6: 7cc8 mult r3, r2 + 44e8: 0c2a bf 0x453c // 453c + 44ea: 8940 ld.h r2, (r1, 0x0) + 44ec: 748b sexth r2, r2 + 44ee: 64c9 cmplt r2, r3 + 44f0: 0c26 bf 0x453c // 453c + 44f2: 1240 lrw r2, 0x20000444 // 45f0 + 44f4: 6090 addu r2, r4 + 44f6: 8260 ld.b r3, (r2, 0x0) + 44f8: 2300 addi r3, 1 + 44fa: 74cc zextb r3, r3 + 44fc: a260 st.b r3, (r2, 0x0) + 44fe: 3100 movi r1, 0 + 4500: 117d lrw r3, 0x2000042a // 45f4 + 4502: 60d0 addu r3, r4 + 4504: a320 st.b r1, (r3, 0x0) + 4506: 117d lrw r3, 0x20000506 // 45f8 + 4508: 60d0 addu r3, r4 + 450a: a320 st.b r1, (r3, 0x0) + 450c: 117c lrw r3, 0x20000580 // 45fc + 450e: 60d0 addu r3, r4 + 4510: a320 st.b r1, (r3, 0x0) + 4512: 8260 ld.b r3, (r2, 0x0) + 4514: 9821 ld.w r1, (r14, 0x4) + 4516: 64c4 cmphs r1, r3 + 4518: 081f bt 0x4556 // 4556 + 451a: 3d40 cmpnei r5, 0 + 451c: 0852 bt 0x45c0 // 45c0 + 451e: 1139 lrw r1, 0x2000043c // 4600 + 4520: 9160 ld.w r3, (r1, 0x0) + 4522: 3b40 cmpnei r3, 0 + 4524: 0806 bt 0x4530 // 4530 + 4526: 9100 ld.w r0, (r1, 0x0) + 4528: 3301 movi r3, 1 + 452a: 70d0 lsl r3, r4 + 452c: 6cc0 or r3, r0 + 452e: b160 st.w r3, (r1, 0x0) + 4530: 3300 movi r3, 0 + 4532: a260 st.b r3, (r2, 0x0) + 4534: 0411 br 0x4556 // 4556 + 4536: 8920 ld.h r1, (r1, 0x0) + 4538: 7445 zexth r1, r1 + 453a: 07c9 br 0x44cc // 44cc + 453c: 4441 lsli r2, r4, 1 + 453e: 6098 addu r2, r6 + 4540: 8a40 ld.h r2, (r2, 0x0) + 4542: 748b sexth r2, r2 + 4544: 648d cmplt r3, r2 + 4546: 0c08 bf 0x4556 // 4556 + 4548: 3300 movi r3, 0 + 454a: 114e lrw r2, 0x2000043c // 4600 + 454c: 2b01 subi r3, 2 + 454e: 9220 ld.w r1, (r2, 0x0) + 4550: 70d3 rotl r3, r4 + 4552: 68c4 and r3, r1 + 4554: b260 st.w r3, (r2, 0x0) + 4556: 4441 lsli r2, r4, 1 + 4558: 5e68 addu r3, r6, r2 + 455a: 8b60 ld.h r3, (r3, 0x0) + 455c: 74cf sexth r3, r3 + 455e: b864 st.w r3, (r14, 0x10) + 4560: 3105 movi r1, 5 + 4562: 1163 lrw r3, 0x2000011a // 45ec + 4564: 608c addu r2, r3 + 4566: 8a00 ld.h r0, (r2, 0x0) + 4568: 4002 lsli r0, r0, 2 + 456a: e3fff61f bsr 0x31a8 // 31a8 <__divsi3> + 456e: 9864 ld.w r3, (r14, 0x10) + 4570: 640d cmplt r3, r0 + 4572: 0c18 bf 0x45a2 // 45a2 + 4574: 1140 lrw r2, 0x2000042a // 45f4 + 4576: 6090 addu r2, r4 + 4578: 8260 ld.b r3, (r2, 0x0) + 457a: 2300 addi r3, 1 + 457c: 74cc zextb r3, r3 + 457e: a260 st.b r3, (r2, 0x0) + 4580: 3100 movi r1, 0 + 4582: 107c lrw r3, 0x20000444 // 45f0 + 4584: 60d0 addu r3, r4 + 4586: a320 st.b r1, (r3, 0x0) + 4588: 8260 ld.b r3, (r2, 0x0) + 458a: 9822 ld.w r1, (r14, 0x8) + 458c: 64c4 cmphs r1, r3 + 458e: 080a bt 0x45a2 // 45a2 + 4590: 3300 movi r3, 0 + 4592: 103c lrw r1, 0x2000043c // 4600 + 4594: 2b01 subi r3, 2 + 4596: 9100 ld.w r0, (r1, 0x0) + 4598: 70d3 rotl r3, r4 + 459a: 68c0 and r3, r0 + 459c: b160 st.w r3, (r1, 0x0) + 459e: 3300 movi r3, 0 + 45a0: a260 st.b r3, (r2, 0x0) + 45a2: 2400 addi r4, 1 + 45a4: 3c51 cmpnei r4, 17 + 45a6: 0b81 bt 0x44a8 // 44a8 + 45a8: 1405 addi r14, r14, 20 + 45aa: 1494 pop r4-r7, r15 + 45ac: 60d8 addu r3, r6 + 45ae: 4441 lsli r2, r4, 1 + 45b0: 102f lrw r1, 0x2000011a // 45ec + 45b2: 8b60 ld.h r3, (r3, 0x0) + 45b4: 6084 addu r2, r1 + 45b6: 74cf sexth r3, r3 + 45b8: 8a40 ld.h r2, (r2, 0x0) + 45ba: 64c9 cmplt r2, r3 + 45bc: 0fcd bf 0x4556 // 4556 + 45be: 079a br 0x44f2 // 44f2 + 45c0: 3d41 cmpnei r5, 1 + 45c2: 0bb7 bt 0x4530 // 4530 + 45c4: 102f lrw r1, 0x2000043c // 4600 + 45c6: 6cd7 mov r3, r5 + 45c8: 9100 ld.w r0, (r1, 0x0) + 45ca: 07b0 br 0x452a // 452a + 45cc: 200000ec .long 0x200000ec + 45d0: 200000c0 .long 0x200000c0 + 45d4: 20000456 .long 0x20000456 + 45d8: 200000c9 .long 0x200000c9 + 45dc: 200000c8 .long 0x200000c8 + 45e0: 20000652 .long 0x20000652 + 45e4: 200003ac .long 0x200003ac + 45e8: 2000060e .long 0x2000060e + 45ec: 2000011a .long 0x2000011a + 45f0: 20000444 .long 0x20000444 + 45f4: 2000042a .long 0x2000042a + 45f8: 20000506 .long 0x20000506 + 45fc: 20000580 .long 0x20000580 + 4600: 2000043c .long 0x2000043c + +Disassembly of section .text.TK_overflow_predict: + +00004604 : + 4604: 14d4 push r4-r7, r15 + 4606: 1421 subi r14, r14, 4 + 4608: 11d9 lrw r6, 0x20000068 // 46ec + 460a: 8665 ld.b r3, (r6, 0x5) + 460c: 3b41 cmpnei r3, 1 + 460e: 085f bt 0x46cc // 46cc + 4610: 1158 lrw r2, 0x2000055c // 46f0 + 4612: 8260 ld.b r3, (r2, 0x0) + 4614: 2300 addi r3, 1 + 4616: 74cc zextb r3, r3 + 4618: a260 st.b r3, (r2, 0x0) + 461a: 8260 ld.b r3, (r2, 0x0) + 461c: 1136 lrw r1, 0x200000ed // 46f4 + 461e: 8120 ld.b r1, (r1, 0x0) + 4620: 64c4 cmphs r1, r3 + 4622: 0855 bt 0x46cc // 46cc + 4624: 3300 movi r3, 0 + 4626: a260 st.b r3, (r2, 0x0) + 4628: 3500 movi r5, 0 + 462a: 11f4 lrw r7, 0x200000f0 // 46f8 + 462c: 2605 addi r6, 6 + 462e: 9760 ld.w r3, (r7, 0x0) + 4630: 70d5 lsr r3, r5 + 4632: 3201 movi r2, 1 + 4634: 68c8 and r3, r2 + 4636: 3b40 cmpnei r3, 0 + 4638: 0c34 bf 0x46a0 // 46a0 + 463a: 4581 lsli r4, r5, 1 + 463c: 5e70 addu r3, r6, r4 + 463e: 8b00 ld.h r0, (r3, 0x0) + 4640: e3ffe7bc bsr 0x15b8 // 15b8 <__floatunsidf> + 4644: 6cc7 mov r3, r1 + 4646: 3180 movi r1, 128 + 4648: 6c83 mov r2, r0 + 464a: 4137 lsli r1, r1, 23 + 464c: 3000 movi r0, 0 + 464e: e3ffddb3 bsr 0x1b4 // 1b4 <__GI_pow> + 4652: 116b lrw r3, 0x200000f6 // 46fc + 4654: 60d0 addu r3, r4 + 4656: 8b60 ld.h r3, (r3, 0x0) + 4658: 4364 lsli r3, r3, 4 + 465a: 230e addi r3, 15 + 465c: b860 st.w r3, (r14, 0x0) + 465e: e3ffe365 bsr 0xd28 // d28 <__fixunsdfsi> + 4662: 9860 ld.w r3, (r14, 0x0) + 4664: 7cc0 mult r3, r0 + 4666: 1147 lrw r2, 0x200005ec // 4700 + 4668: 740d zexth r0, r3 + 466a: 6090 addu r2, r4 + 466c: 1166 lrw r3, 0x20000652 // 4704 + 466e: 60d0 addu r3, r4 + 4670: aa00 st.h r0, (r2, 0x0) + 4672: 8b60 ld.h r3, (r3, 0x0) + 4674: 8a00 ld.h r0, (r2, 0x0) + 4676: 7401 zexth r0, r0 + 4678: 325f movi r2, 95 + 467a: 74cd zexth r3, r3 + 467c: 7c08 mult r0, r2 + 467e: 3164 movi r1, 100 + 4680: b860 st.w r3, (r14, 0x0) + 4682: e3fff593 bsr 0x31a8 // 31a8 <__divsi3> + 4686: 9860 ld.w r3, (r14, 0x0) + 4688: 64c1 cmplt r0, r3 + 468a: 0c0b bf 0x46a0 // 46a0 + 468c: 107f lrw r3, 0x200000ca // 4708 + 468e: 610c addu r4, r3 + 4690: 8c60 ld.h r3, (r4, 0x0) + 4692: 3b06 cmphsi r3, 7 + 4694: 0806 bt 0x46a0 // 46a0 + 4696: 2300 addi r3, 1 + 4698: ac60 st.h r3, (r4, 0x0) + 469a: 3201 movi r2, 1 + 469c: 107c lrw r3, 0x200004b1 // 470c + 469e: a340 st.b r2, (r3, 0x0) + 46a0: 2500 addi r5, 1 + 46a2: 3d51 cmpnei r5, 17 + 46a4: 0bc5 bt 0x462e // 462e + 46a6: 107a lrw r3, 0x200004b1 // 470c + 46a8: 8340 ld.b r2, (r3, 0x0) + 46aa: 3a41 cmpnei r2, 1 + 46ac: 0810 bt 0x46cc // 46cc + 46ae: 3200 movi r2, 0 + 46b0: a340 st.b r2, (r3, 0x0) + 46b2: 3200 movi r2, 0 + 46b4: 1077 lrw r3, 0x20000058 // 4710 + 46b6: 1018 lrw r0, 0x2000057f // 4714 + 46b8: 10b8 lrw r5, 0x200005b8 // 4718 + 46ba: 10d4 lrw r6, 0x200000ca // 4708 + 46bc: 9360 ld.w r3, (r3, 0x0) + 46be: b342 st.w r2, (r3, 0x8) + 46c0: 1077 lrw r3, 0x20000054 // 471c + 46c2: 9380 ld.w r4, (r3, 0x0) + 46c4: 3300 movi r3, 0 + 46c6: 8040 ld.b r2, (r0, 0x0) + 46c8: 648c cmphs r3, r2 + 46ca: 0c03 bf 0x46d0 // 46d0 + 46cc: 1401 addi r14, r14, 4 + 46ce: 1494 pop r4-r7, r15 + 46d0: 5d4c addu r2, r5, r3 + 46d2: 8240 ld.b r2, (r2, 0x0) + 46d4: 4241 lsli r2, r2, 1 + 46d6: 4322 lsli r1, r3, 2 + 46d8: 6098 addu r2, r6 + 46da: 6050 addu r1, r4 + 46dc: 8a40 ld.h r2, (r2, 0x0) + 46de: 91f2 ld.w r7, (r1, 0x48) + 46e0: 4254 lsli r2, r2, 20 + 46e2: 6c9c or r2, r7 + 46e4: 2300 addi r3, 1 + 46e6: b152 st.w r2, (r1, 0x48) + 46e8: 74cc zextb r3, r3 + 46ea: 07ee br 0x46c6 // 46c6 + 46ec: 20000068 .long 0x20000068 + 46f0: 2000055c .long 0x2000055c + 46f4: 200000ed .long 0x200000ed + 46f8: 200000f0 .long 0x200000f0 + 46fc: 200000f6 .long 0x200000f6 + 4700: 200005ec .long 0x200005ec + 4704: 20000652 .long 0x20000652 + 4708: 200000ca .long 0x200000ca + 470c: 200004b1 .long 0x200004b1 + 4710: 20000058 .long 0x20000058 + 4714: 2000057f .long 0x2000057f + 4718: 200005b8 .long 0x200005b8 + 471c: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00004720 : + 4720: 14c4 push r4-r7 + 4722: 1422 subi r14, r14, 8 + 4724: 1348 lrw r2, 0x200004de // 48c4 + 4726: 8260 ld.b r3, (r2, 0x0) + 4728: 2300 addi r3, 1 + 472a: 74cc zextb r3, r3 + 472c: a260 st.b r3, (r2, 0x0) + 472e: 8260 ld.b r3, (r2, 0x0) + 4730: 1326 lrw r1, 0x200000ed // 48c8 + 4732: 8120 ld.b r1, (r1, 0x0) + 4734: 644c cmphs r3, r1 + 4736: 0cad bf 0x4890 // 4890 + 4738: 3300 movi r3, 0 + 473a: a260 st.b r3, (r2, 0x0) + 473c: 1364 lrw r3, 0x2000043c // 48cc + 473e: 9360 ld.w r3, (r3, 0x0) + 4740: 3b40 cmpnei r3, 0 + 4742: 08a7 bt 0x4890 // 4890 + 4744: 1323 lrw r1, 0x20000456 // 48d0 + 4746: 6dc7 mov r7, r1 + 4748: b820 st.w r1, (r14, 0x0) + 474a: 3200 movi r2, 0 + 474c: 1362 lrw r3, 0x2000011a // 48d4 + 474e: 1323 lrw r1, 0x200003ac // 48d8 + 4750: 4201 lsli r0, r2, 1 + 4752: 9880 ld.w r4, (r14, 0x0) + 4754: 6100 addu r4, r0 + 4756: 8c80 ld.h r4, (r4, 0x0) + 4758: 7513 sexth r4, r4 + 475a: 3cdf btsti r4, 31 + 475c: 0c27 bf 0x47aa // 47aa + 475e: 13a0 lrw r5, 0x20000652 // 48dc + 4760: 5980 addu r4, r1, r0 + 4762: 6014 addu r0, r5 + 4764: b881 st.w r4, (r14, 0x4) + 4766: 8c80 ld.h r4, (r4, 0x0) + 4768: 88c0 ld.h r6, (r0, 0x0) + 476a: 7511 zexth r4, r4 + 476c: 7599 zexth r6, r6 + 476e: 8ba0 ld.h r5, (r3, 0x0) + 4770: 611a subu r4, r6 + 4772: 6551 cmplt r4, r5 + 4774: 081b bt 0x47aa // 47aa + 4776: 9881 ld.w r4, (r14, 0x4) + 4778: 8c80 ld.h r4, (r4, 0x0) + 477a: 8800 ld.h r0, (r0, 0x0) + 477c: 7511 zexth r4, r4 + 477e: 7401 zexth r0, r0 + 4780: 5c01 subu r0, r4, r0 + 4782: 4581 lsli r4, r5, 1 + 4784: 6150 addu r5, r4 + 4786: 6541 cmplt r0, r5 + 4788: 0c11 bf 0x47aa // 47aa + 478a: 1296 lrw r4, 0x20000580 // 48e0 + 478c: 6108 addu r4, r2 + 478e: 8400 ld.b r0, (r4, 0x0) + 4790: 2000 addi r0, 1 + 4792: 7400 zextb r0, r0 + 4794: a400 st.b r0, (r4, 0x0) + 4796: 1214 lrw r0, 0x20000088 // 48e4 + 4798: 84a0 ld.b r5, (r4, 0x0) + 479a: 8008 ld.b r0, (r0, 0x8) + 479c: 6540 cmphs r0, r5 + 479e: 0806 bt 0x47aa // 47aa + 47a0: 1212 lrw r0, 0x200004c3 // 48e8 + 47a2: 3501 movi r5, 1 + 47a4: a0a0 st.b r5, (r0, 0x0) + 47a6: 3000 movi r0, 0 + 47a8: a400 st.b r0, (r4, 0x0) + 47aa: 4201 lsli r0, r2, 1 + 47ac: 5f80 addu r4, r7, r0 + 47ae: 8c80 ld.h r4, (r4, 0x0) + 47b0: 7513 sexth r4, r4 + 47b2: 3c20 cmplti r4, 1 + 47b4: 0870 bt 0x4894 // 4894 + 47b6: 128a lrw r4, 0x20000652 // 48dc + 47b8: 6100 addu r4, r0 + 47ba: 59a0 addu r5, r1, r0 + 47bc: 8c80 ld.h r4, (r4, 0x0) + 47be: 8da0 ld.h r5, (r5, 0x0) + 47c0: 7555 zexth r5, r5 + 47c2: 7511 zexth r4, r4 + 47c4: 6116 subu r4, r5 + 47c6: 8ba0 ld.h r5, (r3, 0x0) + 47c8: 45a2 lsli r5, r5, 2 + 47ca: 6551 cmplt r4, r5 + 47cc: 0864 bt 0x4894 // 4894 + 47ce: 1288 lrw r4, 0x20000506 // 48ec + 47d0: 6108 addu r4, r2 + 47d2: 84a0 ld.b r5, (r4, 0x0) + 47d4: 2500 addi r5, 1 + 47d6: 7554 zextb r5, r5 + 47d8: a4a0 st.b r5, (r4, 0x0) + 47da: 12a3 lrw r5, 0x20000088 // 48e4 + 47dc: 84c0 ld.b r6, (r4, 0x0) + 47de: 85a9 ld.b r5, (r5, 0x9) + 47e0: 6594 cmphs r5, r6 + 47e2: 0806 bt 0x47ee // 47ee + 47e4: 12a1 lrw r5, 0x200004c3 // 48e8 + 47e6: 3601 movi r6, 1 + 47e8: a5c0 st.b r6, (r5, 0x0) + 47ea: 3500 movi r5, 0 + 47ec: a4a0 st.b r5, (r4, 0x0) + 47ee: 5f80 addu r4, r7, r0 + 47f0: 8c80 ld.h r4, (r4, 0x0) + 47f2: 7513 sexth r4, r4 + 47f4: 3cdf btsti r4, 31 + 47f6: 0c10 bf 0x4816 // 4816 + 47f8: 11d9 lrw r6, 0x20000652 // 48dc + 47fa: 59a0 addu r5, r1, r0 + 47fc: 6180 addu r6, r0 + 47fe: 8d80 ld.h r4, (r5, 0x0) + 4800: 8ec0 ld.h r6, (r6, 0x0) + 4802: 7599 zexth r6, r6 + 4804: 7511 zexth r4, r4 + 4806: 611a subu r4, r6 + 4808: 8bc0 ld.h r6, (r3, 0x0) + 480a: 6591 cmplt r4, r6 + 480c: 0c05 bf 0x4816 // 4816 + 480e: 8d80 ld.h r4, (r5, 0x0) + 4810: 2c00 subi r4, 1 + 4812: 7511 zexth r4, r4 + 4814: ad80 st.h r4, (r5, 0x0) + 4816: 5f80 addu r4, r7, r0 + 4818: 8c80 ld.h r4, (r4, 0x0) + 481a: 7513 sexth r4, r4 + 481c: 3cdf btsti r4, 31 + 481e: 0c11 bf 0x4840 // 4840 + 4820: 11cf lrw r6, 0x20000652 // 48dc + 4822: 59a0 addu r5, r1, r0 + 4824: 6180 addu r6, r0 + 4826: 8d80 ld.h r4, (r5, 0x0) + 4828: 8ec0 ld.h r6, (r6, 0x0) + 482a: 7599 zexth r6, r6 + 482c: 7511 zexth r4, r4 + 482e: 611a subu r4, r6 + 4830: 8bc0 ld.h r6, (r3, 0x0) + 4832: 4ec1 lsri r6, r6, 1 + 4834: 6591 cmplt r4, r6 + 4836: 0805 bt 0x4840 // 4840 + 4838: 8d80 ld.h r4, (r5, 0x0) + 483a: 2c01 subi r4, 2 + 483c: 7511 zexth r4, r4 + 483e: ad80 st.h r4, (r5, 0x0) + 4840: 5fa0 addu r5, r7, r0 + 4842: 8d80 ld.h r4, (r5, 0x0) + 4844: 7513 sexth r4, r4 + 4846: 3c20 cmplti r4, 1 + 4848: 080c bt 0x4860 // 4860 + 484a: 8da0 ld.h r5, (r5, 0x0) + 484c: 8b80 ld.h r4, (r3, 0x0) + 484e: 7557 sexth r5, r5 + 4850: 4c81 lsri r4, r4, 1 + 4852: 6515 cmplt r5, r4 + 4854: 0c06 bf 0x4860 // 4860 + 4856: 59a0 addu r5, r1, r0 + 4858: 8d80 ld.h r4, (r5, 0x0) + 485a: 2400 addi r4, 1 + 485c: 7511 zexth r4, r4 + 485e: ad80 st.h r4, (r5, 0x0) + 4860: 5fa0 addu r5, r7, r0 + 4862: 8d80 ld.h r4, (r5, 0x0) + 4864: 7513 sexth r4, r4 + 4866: 3c20 cmplti r4, 1 + 4868: 0810 bt 0x4888 // 4888 + 486a: 8dc0 ld.h r6, (r5, 0x0) + 486c: 759b sexth r6, r6 + 486e: 8b80 ld.h r4, (r3, 0x0) + 4870: 6519 cmplt r6, r4 + 4872: 0c0b bf 0x4888 // 4888 + 4874: 8da0 ld.h r5, (r5, 0x0) + 4876: 7557 sexth r5, r5 + 4878: 4c81 lsri r4, r4, 1 + 487a: 6515 cmplt r5, r4 + 487c: 0806 bt 0x4888 // 4888 + 487e: 6004 addu r0, r1 + 4880: 8880 ld.h r4, (r0, 0x0) + 4882: 2401 addi r4, 2 + 4884: 7511 zexth r4, r4 + 4886: a880 st.h r4, (r0, 0x0) + 4888: 2200 addi r2, 1 + 488a: 3a51 cmpnei r2, 17 + 488c: 2301 addi r3, 2 + 488e: 0b61 bt 0x4750 // 4750 + 4890: 1402 addi r14, r14, 8 + 4892: 1484 pop r4-r7 + 4894: 5f80 addu r4, r7, r0 + 4896: 8c80 ld.h r4, (r4, 0x0) + 4898: 7513 sexth r4, r4 + 489a: 3cdf btsti r4, 31 + 489c: 0fa9 bf 0x47ee // 47ee + 489e: 10b0 lrw r5, 0x20000652 // 48dc + 48a0: 5980 addu r4, r1, r0 + 48a2: 6140 addu r5, r0 + 48a4: 8c80 ld.h r4, (r4, 0x0) + 48a6: 8da0 ld.h r5, (r5, 0x0) + 48a8: 7555 zexth r5, r5 + 48aa: 8bc0 ld.h r6, (r3, 0x0) + 48ac: 7511 zexth r4, r4 + 48ae: 6116 subu r4, r5 + 48b0: 46a1 lsli r5, r6, 1 + 48b2: 6158 addu r5, r6 + 48b4: 6551 cmplt r4, r5 + 48b6: 0b9c bt 0x47ee // 47ee + 48b8: 108c lrw r4, 0x200004c3 // 48e8 + 48ba: 3501 movi r5, 1 + 48bc: a4a0 st.b r5, (r4, 0x0) + 48be: 6c03 mov r0, r0 + 48c0: 0797 br 0x47ee // 47ee + 48c2: 0000 bkpt + 48c4: 200004de .long 0x200004de + 48c8: 200000ed .long 0x200000ed + 48cc: 2000043c .long 0x2000043c + 48d0: 20000456 .long 0x20000456 + 48d4: 2000011a .long 0x2000011a + 48d8: 200003ac .long 0x200003ac + 48dc: 20000652 .long 0x20000652 + 48e0: 20000580 .long 0x20000580 + 48e4: 20000088 .long 0x20000088 + 48e8: 200004c3 .long 0x200004c3 + 48ec: 20000506 .long 0x20000506 + +Disassembly of section .text.TK_result_prog: + +000048f0 : + 48f0: 14d2 push r4-r5, r15 + 48f2: 1050 lrw r2, 0x2000043c // 4930 + 48f4: 1090 lrw r4, 0x200004e0 // 4934 + 48f6: 9260 ld.w r3, (r2, 0x0) + 48f8: 3b40 cmpnei r3, 0 + 48fa: 0c02 bf 0x48fe // 48fe + 48fc: 9260 ld.w r3, (r2, 0x0) + 48fe: b460 st.w r3, (r4, 0x0) + 4900: 9460 ld.w r3, (r4, 0x0) + 4902: 3b40 cmpnei r3, 0 + 4904: 10ad lrw r5, 0x200005b4 // 4938 + 4906: 0c11 bf 0x4928 // 4928 + 4908: 9440 ld.w r2, (r4, 0x0) + 490a: 9560 ld.w r3, (r5, 0x0) + 490c: 64ca cmpne r2, r3 + 490e: 0c03 bf 0x4914 // 4914 + 4910: 9460 ld.w r3, (r4, 0x0) + 4912: b560 st.w r3, (r5, 0x0) + 4914: e3fffd94 bsr 0x443c // 443c + 4918: 1069 lrw r3, 0x200000f4 // 493c + 491a: 8360 ld.b r3, (r3, 0x0) + 491c: 640c cmphs r3, r0 + 491e: 0804 bt 0x4926 // 4926 + 4920: 3300 movi r3, 0 + 4922: b460 st.w r3, (r4, 0x0) + 4924: b560 st.w r3, (r5, 0x0) + 4926: 1492 pop r4-r5, r15 + 4928: 1046 lrw r2, 0x200004d8 // 4940 + 492a: b560 st.w r3, (r5, 0x0) + 492c: b260 st.w r3, (r2, 0x0) + 492e: 07fc br 0x4926 // 4926 + 4930: 2000043c .long 0x2000043c + 4934: 200004e0 .long 0x200004e0 + 4938: 200005b4 .long 0x200005b4 + 493c: 200000f4 .long 0x200000f4 + 4940: 200004d8 .long 0x200004d8 + +Disassembly of section .text.CORETHandler: + +00004944 : + 4944: 1460 nie + 4946: 1462 ipush + 4948: 14d1 push r4, r15 + 494a: 1077 lrw r3, 0x20000064 // 49a4 + 494c: 3400 movi r4, 0 + 494e: 9360 ld.w r3, (r3, 0x0) + 4950: b386 st.w r4, (r3, 0x18) + 4952: 1076 lrw r3, 0x20000440 // 49a8 + 4954: 8360 ld.b r3, (r3, 0x0) + 4956: 3b41 cmpnei r3, 1 + 4958: 0820 bt 0x4998 // 4998 + 495a: e3fffd85 bsr 0x4464 // 4464 + 495e: e3fffd93 bsr 0x4484 // 4484 + 4962: e3fffe51 bsr 0x4604 // 4604 + 4966: e3fffedd bsr 0x4720 // 4720 + 496a: e3ffffc3 bsr 0x48f0 // 48f0 + 496e: 1070 lrw r3, 0x200004e0 // 49ac + 4970: 9360 ld.w r3, (r3, 0x0) + 4972: 3b40 cmpnei r3, 0 + 4974: 0c12 bf 0x4998 // 4998 + 4976: 106f lrw r3, 0x200000c4 // 49b0 + 4978: 9340 ld.w r2, (r3, 0x0) + 497a: 3a40 cmpnei r2, 0 + 497c: 0c0e bf 0x4998 // 4998 + 497e: 106e lrw r3, 0x200004d8 // 49b4 + 4980: 3064 movi r0, 100 + 4982: 9320 ld.w r1, (r3, 0x0) + 4984: 2100 addi r1, 1 + 4986: b320 st.w r1, (r3, 0x0) + 4988: 9320 ld.w r1, (r3, 0x0) + 498a: 7c80 mult r2, r0 + 498c: 6448 cmphs r2, r1 + 498e: 0805 bt 0x4998 // 4998 + 4990: 104a lrw r2, 0x200004c3 // 49b8 + 4992: 3101 movi r1, 1 + 4994: a220 st.b r1, (r2, 0x0) + 4996: b380 st.w r4, (r3, 0x0) + 4998: d9ee2001 ld.w r15, (r14, 0x4) + 499c: 9880 ld.w r4, (r14, 0x0) + 499e: 1402 addi r14, r14, 8 + 49a0: 1463 ipop + 49a2: 1461 nir + 49a4: 20000064 .long 0x20000064 + 49a8: 20000440 .long 0x20000440 + 49ac: 200004e0 .long 0x200004e0 + 49b0: 200000c4 .long 0x200000c4 + 49b4: 200004d8 .long 0x200004d8 + 49b8: 200004c3 .long 0x200004c3 + +Disassembly of section .text.std_clk_calib: + +000049bc : + 49bc: 14d4 push r4-r7, r15 + 49be: 142d subi r14, r14, 52 + 49c0: 3201 movi r2, 1 + 49c2: 03ce lrw r6, 0x2000005c // 4c04 + 49c4: 6cc3 mov r3, r0 + 49c6: dc4e000a st.b r2, (r14, 0xa) + 49ca: 9640 ld.w r2, (r6, 0x0) + 49cc: 9247 ld.w r2, (r2, 0x1c) + 49ce: 7488 zextb r2, r2 + 49d0: dc4e0009 st.b r2, (r14, 0x9) + 49d4: d84e0009 ld.b r2, (r14, 0x9) + 49d8: 3a40 cmpnei r2, 0 + 49da: 0c08 bf 0x49ea // 49ea + 49dc: d84e0009 ld.b r2, (r14, 0x9) + 49e0: 3a42 cmpnei r2, 2 + 49e2: 0c04 bf 0x49ea // 49ea + 49e4: 3000 movi r0, 0 + 49e6: 140d addi r14, r14, 52 + 49e8: 1494 pop r4-r7, r15 + 49ea: 0397 lrw r4, 0x2000000c // 4c08 + 49ec: 3209 movi r2, 9 + 49ee: 9400 ld.w r0, (r4, 0x0) + 49f0: 3b40 cmpnei r3, 0 + 49f2: b041 st.w r2, (r0, 0x4) + 49f4: 0857 bt 0x4aa2 // 4aa2 + 49f6: 3307 movi r3, 7 + 49f8: dc6e000b st.b r3, (r14, 0xb) + 49fc: 037b lrw r3, 0x2dc6c00 // 4c0c + 49fe: b863 st.w r3, (r14, 0xc) + 4a00: 3380 movi r3, 128 + 4a02: 4362 lsli r3, r3, 2 + 4a04: b867 st.w r3, (r14, 0x1c) + 4a06: d86e000b ld.b r3, (r14, 0xb) + 4a0a: 74cc zextb r3, r3 + 4a0c: b062 st.w r3, (r0, 0x8) + 4a0e: 037e lrw r3, 0xffff // 4c10 + 4a10: b063 st.w r3, (r0, 0xc) + 4a12: 3201 movi r2, 1 + 4a14: 3101 movi r1, 1 + 4a16: 03bf lrw r5, 0x20000014 // 4c14 + 4a18: e3ffebf2 bsr 0x21fc // 21fc + 4a1c: 95e0 ld.w r7, (r5, 0x0) + 4a1e: 137f lrw r3, 0xbe9c0005 // 4c18 + 4a20: b760 st.w r3, (r7, 0x0) + 4a22: 135f lrw r2, 0x30010 // 4c1c + 4a24: 3300 movi r3, 0 + 4a26: b762 st.w r3, (r7, 0x8) + 4a28: b743 st.w r2, (r7, 0xc) + 4a2a: 32d8 movi r2, 216 + 4a2c: b745 st.w r2, (r7, 0x14) + 4a2e: 974f ld.w r2, (r7, 0x3c) + 4a30: 3aa2 bseti r2, 2 + 4a32: b74f st.w r2, (r7, 0x3c) + 4a34: 9803 ld.w r0, (r14, 0xc) + 4a36: d82e000b ld.b r1, (r14, 0xb) + 4a3a: 327d movi r2, 125 + 4a3c: 2100 addi r1, 1 + 4a3e: 7c48 mult r1, r2 + 4a40: b861 st.w r3, (r14, 0x4) + 4a42: e3fff3c5 bsr 0x31cc // 31cc <__udivsi3> + 4a46: b804 st.w r0, (r14, 0x10) + 4a48: 32fa movi r2, 250 + 4a4a: 9824 ld.w r1, (r14, 0x10) + 4a4c: 4242 lsli r2, r2, 2 + 4a4e: 6448 cmphs r2, r1 + 4a50: 0bca bt 0x49e4 // 49e4 + 4a52: 9844 ld.w r2, (r14, 0x10) + 4a54: 3178 movi r1, 120 + 4a56: 9804 ld.w r0, (r14, 0x10) + 4a58: b840 st.w r2, (r14, 0x0) + 4a5a: e3fff3b9 bsr 0x31cc // 31cc <__udivsi3> + 4a5e: 9840 ld.w r2, (r14, 0x0) + 4a60: 6082 subu r2, r0 + 4a62: b845 st.w r2, (r14, 0x14) + 4a64: 9804 ld.w r0, (r14, 0x10) + 4a66: 3178 movi r1, 120 + 4a68: 9844 ld.w r2, (r14, 0x10) + 4a6a: b840 st.w r2, (r14, 0x0) + 4a6c: e3fff3b0 bsr 0x31cc // 31cc <__udivsi3> + 4a70: 9840 ld.w r2, (r14, 0x0) + 4a72: 6008 addu r0, r2 + 4a74: b806 st.w r0, (r14, 0x18) + 4a76: c0807020 psrclr ie + 4a7a: 9640 ld.w r2, (r6, 0x0) + 4a7c: 9254 ld.w r2, (r2, 0x50) + 4a7e: b848 st.w r2, (r14, 0x20) + 4a80: 9861 ld.w r3, (r14, 0x4) + 4a82: 9440 ld.w r2, (r4, 0x0) + 4a84: b260 st.w r3, (r2, 0x0) + 4a86: b761 st.w r3, (r7, 0x4) + 4a88: d86e000a ld.b r3, (r14, 0xa) + 4a8c: 3b40 cmpnei r3, 0 + 4a8e: 083e bt 0x4b0a // 4b0a + 4a90: e3ffeb68 bsr 0x2160 // 2160 + 4a94: 9400 ld.w r0, (r4, 0x0) + 4a96: e3ffeb89 bsr 0x21a8 // 21a8 + 4a9a: c1807420 psrset ee, ie + 4a9e: 3001 movi r0, 1 + 4aa0: 07a3 br 0x49e6 // 49e6 + 4aa2: 3b41 cmpnei r3, 1 + 4aa4: 0806 bt 0x4ab0 // 4ab0 + 4aa6: 3303 movi r3, 3 + 4aa8: dc6e000b st.b r3, (r14, 0xb) + 4aac: 127d lrw r3, 0x16e3600 // 4c20 + 4aae: 07a8 br 0x49fe // 49fe + 4ab0: 3b42 cmpnei r3, 2 + 4ab2: 0806 bt 0x4abe // 4abe + 4ab4: 3301 movi r3, 1 + 4ab6: dc6e000b st.b r3, (r14, 0xb) + 4aba: 127b lrw r3, 0xb71b00 // 4c24 + 4abc: 07a1 br 0x49fe // 49fe + 4abe: 3b43 cmpnei r3, 3 + 4ac0: 0806 bt 0x4acc // 4acc + 4ac2: 3300 movi r3, 0 + 4ac4: dc6e000b st.b r3, (r14, 0xb) + 4ac8: 1278 lrw r3, 0x5b8d80 // 4c28 + 4aca: 079a br 0x49fe // 49fe + 4acc: 3b44 cmpnei r3, 4 + 4ace: 0809 bt 0x4ae0 // 4ae0 + 4ad0: 3300 movi r3, 0 + 4ad2: dc6e000b st.b r3, (r14, 0xb) + 4ad6: 1276 lrw r3, 0x54c720 // 4c2c + 4ad8: b863 st.w r3, (r14, 0xc) + 4ada: 3380 movi r3, 128 + 4adc: 4369 lsli r3, r3, 9 + 4ade: 0793 br 0x4a04 // 4a04 + 4ae0: 3b45 cmpnei r3, 5 + 4ae2: 0806 bt 0x4aee // 4aee + 4ae4: 3300 movi r3, 0 + 4ae6: dc6e000b st.b r3, (r14, 0xb) + 4aea: 1272 lrw r3, 0x3ffed0 // 4c30 + 4aec: 07f6 br 0x4ad8 // 4ad8 + 4aee: 3b46 cmpnei r3, 6 + 4af0: 0806 bt 0x4afc // 4afc + 4af2: 3300 movi r3, 0 + 4af4: dc6e000b st.b r3, (r14, 0xb) + 4af8: 126f lrw r3, 0x1fff68 // 4c34 + 4afa: 07ef br 0x4ad8 // 4ad8 + 4afc: 3b47 cmpnei r3, 7 + 4afe: 0b84 bt 0x4a06 // 4a06 + 4b00: 3300 movi r3, 0 + 4b02: dc6e000b st.b r3, (r14, 0xb) + 4b06: 126d lrw r3, 0x1ffb8 // 4c38 + 4b08: 07e8 br 0x4ad8 // 4ad8 + 4b0a: 9560 ld.w r3, (r5, 0x0) + 4b0c: 3101 movi r1, 1 + 4b0e: 9440 ld.w r2, (r4, 0x0) + 4b10: b321 st.w r1, (r3, 0x4) + 4b12: b220 st.w r1, (r2, 0x0) + 4b14: 3100 movi r1, 0 + 4b16: b327 st.w r1, (r3, 0x1c) + 4b18: 3004 movi r0, 4 + 4b1a: b225 st.w r1, (r2, 0x14) + 4b1c: 932e ld.w r1, (r3, 0x38) + 4b1e: 6840 and r1, r0 + 4b20: 3940 cmpnei r1, 0 + 4b22: 0ffd bf 0x4b1c // 4b1c + 4b24: 9225 ld.w r1, (r2, 0x14) + 4b26: b82a st.w r1, (r14, 0x28) + 4b28: 3100 movi r1, 0 + 4b2a: b310 st.w r0, (r3, 0x40) + 4b2c: b327 st.w r1, (r3, 0x1c) + 4b2e: 3004 movi r0, 4 + 4b30: b225 st.w r1, (r2, 0x14) + 4b32: 932e ld.w r1, (r3, 0x38) + 4b34: 6840 and r1, r0 + 4b36: 3940 cmpnei r1, 0 + 4b38: 0ffd bf 0x4b32 // 4b32 + 4b3a: 9225 ld.w r1, (r2, 0x14) + 4b3c: b82b st.w r1, (r14, 0x2c) + 4b3e: 3100 movi r1, 0 + 4b40: b310 st.w r0, (r3, 0x40) + 4b42: b327 st.w r1, (r3, 0x1c) + 4b44: 3004 movi r0, 4 + 4b46: b225 st.w r1, (r2, 0x14) + 4b48: 932e ld.w r1, (r3, 0x38) + 4b4a: 6840 and r1, r0 + 4b4c: 3940 cmpnei r1, 0 + 4b4e: 0ffd bf 0x4b48 // 4b48 + 4b50: 9225 ld.w r1, (r2, 0x14) + 4b52: b82c st.w r1, (r14, 0x30) + 4b54: b310 st.w r0, (r3, 0x40) + 4b56: 982b ld.w r1, (r14, 0x2c) + 4b58: 980c ld.w r0, (r14, 0x30) + 4b5a: 6040 addu r1, r0 + 4b5c: b829 st.w r1, (r14, 0x24) + 4b5e: 9829 ld.w r1, (r14, 0x24) + 4b60: 4921 lsri r1, r1, 1 + 4b62: b829 st.w r1, (r14, 0x24) + 4b64: 3100 movi r1, 0 + 4b66: b321 st.w r1, (r3, 0x4) + 4b68: b220 st.w r1, (r2, 0x0) + 4b6a: b327 st.w r1, (r3, 0x1c) + 4b6c: b225 st.w r1, (r2, 0x14) + 4b6e: d86e0009 ld.b r3, (r14, 0x9) + 4b72: 3b42 cmpnei r3, 2 + 4b74: 9849 ld.w r2, (r14, 0x24) + 4b76: 082c bt 0x4bce // 4bce + 4b78: 1171 lrw r3, 0x7ff // 4c3c + 4b7a: 648c cmphs r3, r2 + 4b7c: 0c03 bf 0x4b82 // 4b82 + 4b7e: 3300 movi r3, 0 + 4b80: 040f br 0x4b9e // 4b9e + 4b82: 9849 ld.w r2, (r14, 0x24) + 4b84: 9866 ld.w r3, (r14, 0x18) + 4b86: 648c cmphs r3, r2 + 4b88: 080e bt 0x4ba4 // 4ba4 + 4b8a: 9868 ld.w r3, (r14, 0x20) + 4b8c: 9847 ld.w r2, (r14, 0x1c) + 4b8e: 60ca subu r3, r2 + 4b90: b868 st.w r3, (r14, 0x20) + 4b92: 32fe movi r2, 254 + 4b94: 9868 ld.w r3, (r14, 0x20) + 4b96: 4248 lsli r2, r2, 8 + 4b98: 68c8 and r3, r2 + 4b9a: 3b40 cmpnei r3, 0 + 4b9c: 0812 bt 0x4bc0 // 4bc0 + 4b9e: dc6e000a st.b r3, (r14, 0xa) + 4ba2: 0721 br 0x49e4 // 49e4 + 4ba4: 9849 ld.w r2, (r14, 0x24) + 4ba6: 9865 ld.w r3, (r14, 0x14) + 4ba8: 64c8 cmphs r2, r3 + 4baa: 0829 bt 0x4bfc // 4bfc + 4bac: 9868 ld.w r3, (r14, 0x20) + 4bae: 9847 ld.w r2, (r14, 0x1c) + 4bb0: 60c8 addu r3, r2 + 4bb2: b868 st.w r3, (r14, 0x20) + 4bb4: 33fe movi r3, 254 + 4bb6: 9848 ld.w r2, (r14, 0x20) + 4bb8: 4368 lsli r3, r3, 8 + 4bba: 688c and r2, r3 + 4bbc: 64ca cmpne r2, r3 + 4bbe: 0fe0 bf 0x4b7e // 4b7e + 4bc0: 9660 ld.w r3, (r6, 0x0) + 4bc2: 9848 ld.w r2, (r14, 0x20) + 4bc4: b354 st.w r2, (r3, 0x50) + 4bc6: 3001 movi r0, 1 + 4bc8: e3ffed88 bsr 0x26d8 // 26d8 + 4bcc: 075e br 0x4a88 // 4a88 + 4bce: 9866 ld.w r3, (r14, 0x18) + 4bd0: 648c cmphs r3, r2 + 4bd2: 0809 bt 0x4be4 // 4be4 + 4bd4: 9868 ld.w r3, (r14, 0x20) + 4bd6: 9847 ld.w r2, (r14, 0x1c) + 4bd8: 60ca subu r3, r2 + 4bda: b868 st.w r3, (r14, 0x20) + 4bdc: 32ff movi r2, 255 + 4bde: 9868 ld.w r3, (r14, 0x20) + 4be0: 4250 lsli r2, r2, 16 + 4be2: 07db br 0x4b98 // 4b98 + 4be4: 9849 ld.w r2, (r14, 0x24) + 4be6: 9865 ld.w r3, (r14, 0x14) + 4be8: 64c8 cmphs r2, r3 + 4bea: 0809 bt 0x4bfc // 4bfc + 4bec: 9868 ld.w r3, (r14, 0x20) + 4bee: 9847 ld.w r2, (r14, 0x1c) + 4bf0: 60c8 addu r3, r2 + 4bf2: b868 st.w r3, (r14, 0x20) + 4bf4: 33ff movi r3, 255 + 4bf6: 9848 ld.w r2, (r14, 0x20) + 4bf8: 4370 lsli r3, r3, 16 + 4bfa: 07e0 br 0x4bba // 4bba + 4bfc: 3300 movi r3, 0 + 4bfe: dc6e000a st.b r3, (r14, 0xa) + 4c02: 07e2 br 0x4bc6 // 4bc6 + 4c04: 2000005c .long 0x2000005c + 4c08: 2000000c .long 0x2000000c + 4c0c: 02dc6c00 .long 0x02dc6c00 + 4c10: 0000ffff .long 0x0000ffff + 4c14: 20000014 .long 0x20000014 + 4c18: be9c0005 .long 0xbe9c0005 + 4c1c: 00030010 .long 0x00030010 + 4c20: 016e3600 .long 0x016e3600 + 4c24: 00b71b00 .long 0x00b71b00 + 4c28: 005b8d80 .long 0x005b8d80 + 4c2c: 0054c720 .long 0x0054c720 + 4c30: 003ffed0 .long 0x003ffed0 + 4c34: 001fff68 .long 0x001fff68 + 4c38: 0001ffb8 .long 0x0001ffb8 + 4c3c: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/RLY_10V485_V01_20250625.map b/BLV_CS_AC100_V05/Source/Lst/RLY_10V485_V01_20250625.map new file mode 100644 index 0000000..3dc5585 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/RLY_10V485_V01_20250625.map @@ -0,0 +1,2260 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 337412 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 169 + Section header string table index: 166 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 001a8e 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001a90 002a90 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001ac8 002ac8 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001b3c 002b3c 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001b88 002b88 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001bb8 002bb8 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c40 002c40 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c68 002c68 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001ca4 002ca4 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001cb8 002cb8 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001cd0 002cd0 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001cf0 002cf0 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001d0c 002d0c 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001d28 002d28 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00001d68 002d68 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00001d9c 002d9c 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00001da0 002da0 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00001db0 002db0 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 00001dbc 002dbc 00000c 00 AX 0 0 4 + [20] .text.SYSCON_INT_ PROGBITS 00001dc8 002dc8 000024 00 AX 0 0 4 + [21] .text.Set_INT_Pri PROGBITS 00001dec 002dec 000030 00 AX 0 0 4 + [22] .text.GPIO_Init PROGBITS 00001e1c 002e1c 0000e0 00 AX 0 0 4 + [23] .text.GPIO_PullHi PROGBITS 00001efc 002efc 000014 00 AX 0 0 2 + [24] .text.GPIO_DriveS PROGBITS 00001f10 002f10 00000e 00 AX 0 0 2 + [25] .text.GPIO_IntGro PROGBITS 00001f20 002f20 00010c 00 AX 0 0 4 + [26] .text.GPIOA0_EXI_ PROGBITS 0000202c 00302c 0000fc 00 AX 0 0 4 + [27] .text.GPIO_Write_ PROGBITS 00002128 003128 000008 00 AX 0 0 2 + [28] .text.GPIO_Write_ PROGBITS 00002130 003130 000008 00 AX 0 0 2 + [29] .text.GPIO_Revers PROGBITS 00002138 003138 000016 00 AX 0 0 2 + [30] .text.GPIO_Read_S PROGBITS 0000214e 00314e 000010 00 AX 0 0 2 + [31] .text.LPT_Soft_Re PROGBITS 00002160 003160 000014 00 AX 0 0 4 + [32] .text.WWDT_CNT_Lo PROGBITS 00002174 003174 000010 00 AX 0 0 4 + [33] .text.BT_DeInit PROGBITS 00002184 003184 00001c 00 AX 0 0 2 + [34] .text.BT_Start PROGBITS 000021a0 0031a0 000008 00 AX 0 0 2 + [35] .text.BT_Soft_Res PROGBITS 000021a8 0031a8 00000a 00 AX 0 0 2 + [36] .text.BT_Configur PROGBITS 000021b2 0031b2 000018 00 AX 0 0 2 + [37] .text.BT_ControlS PROGBITS 000021ca 0031ca 00002c 00 AX 0 0 2 + [38] .text.BT_Period_C PROGBITS 000021f6 0031f6 000006 00 AX 0 0 2 + [39] .text.BT_ConfigIn PROGBITS 000021fc 0031fc 000012 00 AX 0 0 2 + [40] .text.BT1_INT_ENA PROGBITS 00002210 003210 000010 00 AX 0 0 4 + [41] .text.GPT_IO_Init PROGBITS 00002220 003220 0000a0 00 AX 0 0 4 + [42] .text.GPT_Configu PROGBITS 000022c0 0032c0 000014 00 AX 0 0 4 + [43] .text.GPT_WaveCtr PROGBITS 000022d4 0032d4 000044 00 AX 0 0 4 + [44] .text.GPT_WaveLoa PROGBITS 00002318 003318 000014 00 AX 0 0 4 + [45] .text.GPT_WaveOut PROGBITS 0000232c 00332c 0000b4 00 AX 0 0 4 + [46] .text.GPT_Start PROGBITS 000023e0 0033e0 000010 00 AX 0 0 4 + [47] .text.GPT_Period_ PROGBITS 000023f0 0033f0 000010 00 AX 0 0 4 + [48] .text.GPT_ConfigI PROGBITS 00002400 003400 00001c 00 AX 0 0 4 + [49] .text.UART0_DeIni PROGBITS 0000241c 00341c 000018 00 AX 0 0 4 + [50] .text.UART1_DeIni PROGBITS 00002434 003434 000018 00 AX 0 0 4 + [51] .text.UART2_DeIni PROGBITS 0000244c 00344c 000018 00 AX 0 0 4 + [52] .text.UART1_Int_E PROGBITS 00002464 003464 00001c 00 AX 0 0 4 + [53] .text.UART2_Int_E PROGBITS 00002480 003480 00001c 00 AX 0 0 4 + [54] .text.UART_IO_Ini PROGBITS 0000249c 00349c 0000ec 00 AX 0 0 4 + [55] .text.UARTInitRxT PROGBITS 00002588 003588 000010 00 AX 0 0 4 + [56] .text.UARTTransmi PROGBITS 00002598 003598 00001e 00 AX 0 0 2 + [57] .text.EPT_Stop PROGBITS 000025b8 0035b8 000028 00 AX 0 0 4 + [58] .text.Page_Progra PROGBITS 000025e0 0035e0 0000a0 00 AX 0 0 4 + [59] .text.ReadDataArr PROGBITS 00002680 003680 00002a 00 AX 0 0 2 + [60] .text.startup.mai PROGBITS 000026ac 0036ac 00002c 00 AX 0 0 4 + [61] .text.delay_nms PROGBITS 000026d8 0036d8 00002c 00 AX 0 0 2 + [62] .text.delay_nus PROGBITS 00002704 003704 000022 00 AX 0 0 2 + [63] .text.BT_CONFIG PROGBITS 00002728 003728 000060 00 AX 0 0 4 + [64] .text.SYSCON_CONF PROGBITS 00002788 003788 000062 00 AX 0 0 2 + [65] .text.APT32F102_i PROGBITS 000027ec 0037ec 00004c 00 AX 0 0 4 + [66] .text.SYSCONIntHa PROGBITS 00002838 003838 0000f0 00 AX 0 0 4 + [67] .text.IFCIntHandl PROGBITS 00002928 003928 000068 00 AX 0 0 4 + [68] .text.ADCIntHandl PROGBITS 00002990 003990 000068 00 AX 0 0 4 + [69] .text.EPT0IntHand PROGBITS 000029f8 0039f8 0001ac 00 AX 0 0 4 + [70] .text.WWDTHandler PROGBITS 00002ba4 003ba4 000034 00 AX 0 0 4 + [71] .text.GPT0IntHand PROGBITS 00002bd8 003bd8 000080 00 AX 0 0 4 + [72] .text.RTCIntHandl PROGBITS 00002c58 003c58 000070 00 AX 0 0 4 + [73] .text.UART0IntHan PROGBITS 00002cc8 003cc8 00003c 00 AX 0 0 4 + [74] .text.UART1IntHan PROGBITS 00002d04 003d04 000094 00 AX 0 0 4 + [75] .text.UART2IntHan PROGBITS 00002d98 003d98 00004c 00 AX 0 0 4 + [76] .text.SPI0IntHand PROGBITS 00002de4 003de4 0000e8 00 AX 0 0 4 + [77] .text.SIO0IntHand PROGBITS 00002ecc 003ecc 000054 00 AX 0 0 4 + [78] .text.EXI0IntHand PROGBITS 00002f20 003f20 000030 00 AX 0 0 4 + [79] .text.EXI1IntHand PROGBITS 00002f50 003f50 000030 00 AX 0 0 4 + [80] .text.EXI2to3IntH PROGBITS 00002f80 003f80 000048 00 AX 0 0 4 + [81] .text.EXI4to9IntH PROGBITS 00002fc8 003fc8 000020 00 AX 0 0 4 + [82] .text.EXI10to15In PROGBITS 00002fe8 003fe8 00006c 00 AX 0 0 4 + [83] .text.LPTIntHandl PROGBITS 00003054 004054 000034 00 AX 0 0 4 + [84] .text.BT0IntHandl PROGBITS 00003088 004088 00004c 00 AX 0 0 4 + [85] .text.BT1IntHandl PROGBITS 000030d4 0040d4 000070 00 AX 0 0 4 + [86] .text.PriviledgeV PROGBITS 00003144 004144 000002 00 AX 0 0 2 + [87] .text.PendTrapHan PROGBITS 00003146 004146 000008 00 AX 0 0 2 + [88] .text.Trap3Handle PROGBITS 0000314e 00414e 000008 00 AX 0 0 2 + [89] .text.Trap2Handle PROGBITS 00003156 004156 000008 00 AX 0 0 2 + [90] .text.Trap1Handle PROGBITS 0000315e 00415e 000008 00 AX 0 0 2 + [91] .text.Trap0Handle PROGBITS 00003166 004166 000008 00 AX 0 0 2 + [92] .text.UnrecExecpH PROGBITS 0000316e 00416e 000008 00 AX 0 0 2 + [93] .text.BreakPointH PROGBITS 00003176 004176 000008 00 AX 0 0 2 + [94] .text.AccessErrHa PROGBITS 0000317e 00417e 000008 00 AX 0 0 2 + [95] .text.IllegalInst PROGBITS 00003186 004186 000008 00 AX 0 0 2 + [96] .text.MisalignedH PROGBITS 0000318e 00418e 000008 00 AX 0 0 2 + [97] .text.CNTAIntHand PROGBITS 00003196 004196 000008 00 AX 0 0 2 + [98] .text.I2CIntHandl PROGBITS 0000319e 00419e 000008 00 AX 0 0 2 + [99] .text.__divsi3 PROGBITS 000031a8 0041a8 000024 00 AX 0 0 4 + [100] .text.__udivsi3 PROGBITS 000031cc 0041cc 000024 00 AX 0 0 4 + [101] .text.__umodsi3 PROGBITS 000031f0 0041f0 000024 00 AX 0 0 4 + [102] .text.CK_CPU_EnAl PROGBITS 00003214 004214 000006 00 AX 0 0 2 + [103] .text.CK_CPU_DisA PROGBITS 0000321a 00421a 000006 00 AX 0 0 2 + [104] .text.UARTx_Init PROGBITS 00003220 004220 000154 00 AX 0 0 4 + [105] .text.UART1_RecvI PROGBITS 00003374 004374 000044 00 AX 0 0 4 + [106] .text.UART1_TASK PROGBITS 000033b8 0043b8 000070 00 AX 0 0 4 + [107] .text.BUS485_Send PROGBITS 00003428 004428 0000d0 00 AX 0 0 4 + [108] .text.MultSend_Ta PROGBITS 000034f8 0044f8 000064 00 AX 0 0 4 + [109] .text.Set_GroupSe PROGBITS 0000355c 00455c 00005c 00 AX 0 0 4 + [110] .text.BUS485Send_ PROGBITS 000035b8 0045b8 00002c 00 AX 0 0 4 + [111] .text.BusIdle_Tas PROGBITS 000035e4 0045e4 00003c 00 AX 0 0 4 + [112] .text.BusBusy_Tas PROGBITS 00003620 004620 000054 00 AX 0 0 4 + [113] .text.Dbg_Println PROGBITS 00003674 004674 00000c 00 AX 0 0 2 + [114] .text.DIP_GetSwit PROGBITS 00003680 004680 000034 00 AX 0 0 4 + [115] .text.DIP_Switch_ PROGBITS 000036b4 0046b4 00008c 00 AX 0 0 4 + [116] .text.DIP_ScanTas PROGBITS 00003740 004740 00008c 00 AX 0 0 4 + [117] .text.Relay_Init PROGBITS 000037cc 0047cc 0000c0 00 AX 0 0 4 + [118] .text.CheckSum PROGBITS 0000388c 00488c 000016 00 AX 0 0 2 + [119] .text.CheckSum2 PROGBITS 000038a2 0048a2 000018 00 AX 0 0 2 + [120] .text.Change_OUTV PROGBITS 000038bc 0048bc 00001c 00 AX 0 0 4 + [121] .text.BLV_VolOut_ PROGBITS 000038d8 0048d8 00005c 00 AX 0 0 4 + [122] .text.BLV_RLY_Ctr PROGBITS 00003934 004934 00007c 00 AX 0 0 4 + [123] .text.BLV_RLY_Tas PROGBITS 000039b0 0049b0 000048 00 AX 0 0 4 + [124] .text.BLV_A9RLY_C PROGBITS 000039f8 0049f8 0000a4 00 AX 0 0 4 + [125] .text.BLV_A9RLY_C PROGBITS 00003a9c 004a9c 00008c 00 AX 0 0 4 + [126] .text.BLV_WINDOUT PROGBITS 00003b28 004b28 0000d8 00 AX 0 0 4 + [127] .text.BLV_WINDOUT PROGBITS 00003c00 004c00 000094 00 AX 0 0 4 + [128] .text.BLV_DEVPROT PROGBITS 00003c94 004c94 000088 00 AX 0 0 4 + [129] .text.BLV_DEVPROT PROGBITS 00003d1c 004d1c 000074 00 AX 0 0 4 + [130] .text.BLV_RLY_RS4 PROGBITS 00003d90 004d90 000110 00 AX 0 0 4 + [131] .text.CTRL_LEDSta PROGBITS 00003ea0 004ea0 000034 00 AX 0 0 4 + [132] .text.EEPROM_Chec PROGBITS 00003ed4 004ed4 000016 00 AX 0 0 2 + [133] .text.EEPROM_Read PROGBITS 00003eec 004eec 0001b4 00 AX 0 0 4 + [134] .text.EEPROM_Vali PROGBITS 000040a0 0050a0 000074 00 AX 0 0 2 + [135] .text.EEPROM_Writ PROGBITS 00004114 005114 0000b0 00 AX 0 0 4 + [136] .text.EEPROM_Read PROGBITS 000041c4 0051c4 000070 00 AX 0 0 4 + [137] .text.EEPROM_Writ PROGBITS 00004234 005234 000040 00 AX 0 0 2 + [138] .text.EEPROM_Defa PROGBITS 00004274 005274 000034 00 AX 0 0 4 + [139] .text.EEPROM_Vali PROGBITS 000042a8 0052a8 000058 00 AX 0 0 4 + [140] .text.EEPROM_Init PROGBITS 00004300 005300 00005c 00 AX 0 0 4 + [141] .text.TK_Sampling PROGBITS 0000435c 00535c 000058 00 AX 0 0 4 + [142] .text.TKEYIntHand PROGBITS 000043b4 0053b4 000088 00 AX 0 0 4 + [143] .text.get_key_num PROGBITS 0000443c 00543c 000028 00 AX 0 0 4 + [144] .text.TK_Scan_Sta PROGBITS 00004464 005464 000020 00 AX 0 0 4 + [145] .text.TK_Keymap_p PROGBITS 00004484 005484 000180 00 AX 0 0 4 + [146] .text.TK_overflow PROGBITS 00004604 005604 00011c 00 AX 0 0 4 + [147] .text.TK_Baseline PROGBITS 00004720 005720 0001d0 00 AX 0 0 4 + [148] .text.TK_result_p PROGBITS 000048f0 0058f0 000054 00 AX 0 0 4 + [149] .text.CORETHandle PROGBITS 00004944 005944 000078 00 AX 0 0 4 + [150] .text.std_clk_cal PROGBITS 000049bc 0059bc 000284 00 AX 0 0 4 + [151] .RomCode PROGBITS 00004c40 00609c 000000 00 W 0 0 1 + [152] .rodata PROGBITS 00004c40 005c40 0002e0 00 A 0 0 4 + [153] .data PROGBITS 20000000 006000 00009c 00 WA 0 0 4 + [154] .bss NOBITS 2000009c 00609c 0005d8 00 WA 0 0 4 + [155] .csky.attributes CSKY_ATTRIBUTES 00000000 00609c 000022 00 0 0 1 + [156] .comment PROGBITS 00000000 0060be 000042 01 MS 0 0 1 + [157] .csky_stack_size PROGBITS 00000000 006100 0007ec 00 0 0 16 + [158] .debug_line PROGBITS 00000000 0068ec 003ba2 00 0 0 1 + [159] .debug_info PROGBITS 00000000 00a48e 02f0ff 00 0 0 1 + [160] .debug_abbrev PROGBITS 00000000 03958d 002bd6 00 0 0 1 + [161] .debug_aranges PROGBITS 00000000 03c168 000d00 00 0 0 8 + [162] .debug_ranges PROGBITS 00000000 03ce68 000ca0 00 0 0 1 + [163] .debug_str PROGBITS 00000000 03db08 009b6b 01 MS 0 0 1 + [164] .debug_frame PROGBITS 00000000 047674 001e90 00 0 0 4 + [165] .debug_loc PROGBITS 00000000 049504 00300b 00 0 0 1 + [166] .shstrtab STRTAB 00000000 0517fb 000e07 00 0 0 1 + [167] .symtab SYMTAB 00000000 04c510 003f10 10 168 705 4 + [168] .strtab STRTAB 00000000 050420 0013db 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x04f20 0x04f20 R E 0x1000 + LOAD 0x006000 0x20000000 0x00004f20 0x0009c 0x00674 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.Page_ProgramData .text.ReadDataArry_U8 .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART1_RecvINT_Processing .text.UART1_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.Relay_Init .text.CheckSum .text.CheckSum2 .text.Change_OUTV .text.BLV_VolOut_Ctrl .text.BLV_RLY_Ctrl_Purpose .text.BLV_RLY_Task .text.BLV_A9RLY_CMD_SET_Processing .text.BLV_A9RLY_CMD_READ_Processing .text.BLV_WINDOUT_CMD_SET_Processing .text.BLV_WINDOUT_CMD_READ_Processing .text.BLV_DEVPROT_CMD_SET_Processing .text.BLV_DEVPROT_CMD_READ_Processing .text.BLV_RLY_RS485_Pro .text.CTRL_LEDStatus_Task .text.EEPROM_CheckSum .text.EEPROM_ReadPara .text.EEPROM_ValidateWrite .text.EEPROM_WritePara .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadPara) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Ctrl_Purpose) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Ctrl_Purpose) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_control_rly.o(.text.CTRL_LEDStatus_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_eeprom.o(.text.EEPROM_WritePara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ValidateWrite) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_control_rly.o(.text.BLV_VolOut_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_WritePara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART1_TASK) for UART1_TASK + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_SET_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_READ_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_control_rly.o(.text.BLV_WINDOUT_CMD_SET_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_control_rly.o(.text.BLV_WINDOUT_CMD_READ_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_control_rly.o(.text.BLV_DEVPROT_CMD_SET_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_control_rly.o(.text.BLV_DEVPROT_CMD_READ_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) for DIP_ScanTask + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_control_rly.o(.text.Relay_Init) for Relay_Init + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum) for CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadPara) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum) for CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WritePara) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum) for CheckSum + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_SET_Processing) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum2) for CheckSum2 + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_READ_Processing) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum2) for CheckSum2 + Obj/SYSTEM_control_rly.o(.text.BLV_WINDOUT_CMD_SET_Processing) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum2) for CheckSum2 + Obj/SYSTEM_control_rly.o(.text.BLV_WINDOUT_CMD_READ_Processing) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum2) for CheckSum2 + Obj/SYSTEM_control_rly.o(.text.BLV_DEVPROT_CMD_SET_Processing) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum2) for CheckSum2 + Obj/SYSTEM_control_rly.o(.text.BLV_DEVPROT_CMD_READ_Processing) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum2) for CheckSum2 + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum2) for CheckSum2 + Obj/SYSTEM_control_rly.o(.text.BLV_VolOut_Ctrl) refers to Obj/SYSTEM_control_rly.o(.text.Change_OUTV) for Change_OUTV + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Task) refers to Obj/SYSTEM_control_rly.o(.text.BLV_VolOut_Ctrl) for BLV_VolOut_Ctrl + Obj/SYSTEM_control_rly.o(.text.BLV_WINDOUT_CMD_SET_Processing) refers to Obj/SYSTEM_control_rly.o(.text.BLV_VolOut_Ctrl) for BLV_VolOut_Ctrl + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Task) refers to Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Task) for BLV_RLY_Task + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_SET_Processing) for BLV_A9RLY_CMD_SET_Processing + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_READ_Processing) for BLV_A9RLY_CMD_READ_Processing + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.BLV_WINDOUT_CMD_SET_Processing) for BLV_WINDOUT_CMD_SET_Processing + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.BLV_WINDOUT_CMD_READ_Processing) for BLV_WINDOUT_CMD_READ_Processing + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.BLV_DEVPROT_CMD_SET_Processing) for BLV_DEVPROT_CMD_SET_Processing + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.BLV_DEVPROT_CMD_READ_Processing) for BLV_DEVPROT_CMD_READ_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_control_rly.o(.text.CTRL_LEDStatus_Task) for CTRL_LEDStatus_Task + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadPara) for EEPROM_ReadPara + Obj/SYSTEM_eeprom.o(.text.EEPROM_WritePara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ValidateWrite) for EEPROM_ValidateWrite + Obj/SYSTEM_control_rly.o(.text.BLV_WINDOUT_CMD_SET_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WritePara) for EEPROM_WritePara + Obj/SYSTEM_control_rly.o(.text.BLV_DEVPROT_CMD_SET_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WritePara) for EEPROM_WritePara + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) for EEPROM_ReadMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) for EEPROM_Default_MCUDevInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to _csky_case_sqi.o(.text) for ___gnu_csky_case_sqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ValidateWrite) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WritePara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to memset_fast.o(.text) for memset + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) refers to strncmp.o(.text) for strncmp + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2899 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3093 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3410 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3155 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4123 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3526 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3642 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4842 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4950 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2848 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .bss(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text.__modsi3(Obj/drivers_apt32f102.o), (36 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (4 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (60 bytes). + Removing .text.UART2_RecvINT_Processing(Obj/SYSTEM_uart.o), (52 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (96 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (144 bytes). + Removing .text.Clear_SendFlag(Obj/SYSTEM_uart.o), (16 bytes). + Removing .text.BUS485_Jump_Boot(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (2 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .text(Obj/SYSTEM_control_rly.o), (0 bytes). + Removing .data(Obj/SYSTEM_control_rly.o), (0 bytes). + Removing .text.BLV_CMD_SN(Obj/SYSTEM_control_rly.o), (16 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (113 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_sqi.o), (0 bytes). + Removing .bss(_csky_case_sqi.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + +597 unused seciton(s) (total 158436 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ifc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_control_rly.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_sqi.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strncmp.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d14 0 .text + $t 0x00000d14 0 .text + $d 0x00000d28 0 .text + $t 0x00000d28 0 .text + $d 0x00000d5c 0 .text + _fpadd_parts 0x00000d60 F 724 .text + $d 0x00000d60 0 .text + $t 0x00000d60 0 .text + $d 0x00001028 0 .text + $t 0x00001034 0 .text + $d 0x0000109c 0 .text + $t 0x0000109c 0 .text + $d 0x000012c4 0 .text + $d 0x000012d0 0 .text + $t 0x000012d0 0 .text + $d 0x00001420 0 .text + $d 0x00001424 0 .text + $t 0x00001424 0 .text + $d 0x00001460 0 .text + $t 0x00001460 0 .text + $d 0x0000149c 0 .text + $t 0x0000149c 0 .text + $d 0x000014d8 0 .text + $t 0x000014d8 0 .text + $d 0x00001544 0 .text + $d 0x00001548 0 .text + $t 0x00001548 0 .text + $d 0x000015b4 0 .text + $d 0x000015b8 0 .text + $t 0x000015b8 0 .text + $d 0x0000160c 0 .text + $t 0x0000160c 0 .text + $d 0x00001650 0 .text + $t 0x00001650 0 .text + $d 0x00001684 0 .text + $d 0x00001690 0 .text + $t 0x00001690 0 .text + $d 0x00001818 0 .text + $d 0x0000182c 0 .text + $t 0x0000182c 0 .text + $d 0x000018e4 0 .text + $d 0x000018f0 0 .text + $t 0x000018f0 0 .text + $d 0x0000197c 0 .text + $t 0x0000197c 0 .text + $d 0x00001a04 0 .text + $t 0x00001a04 0 .text + $d 0x00001a68 0 .text + $t 0x00001a68 0 .text + $d 0x00001a90 0 .text.__main + $t 0x00001a90 0 .text.__main + $d 0x00001ab4 0 .text.__main + SYSCON_General_CMD.part.0 0x00001ac8 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001ac8 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001ac8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b34 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b3c 0 .text.SYSCON_RST_VALUE + $t 0x00001b3c 0 .text.SYSCON_RST_VALUE + $d 0x00001b6c 0 .text.SYSCON_RST_VALUE + $d 0x00001b88 0 .text.SYSCON_General_CMD + $t 0x00001b88 0 .text.SYSCON_General_CMD + $d 0x00001bb4 0 .text.SYSCON_General_CMD + $d 0x00001bb8 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001bb8 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c30 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c40 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c40 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c64 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c68 0 .text.SYSCON_WDT_CMD + $t 0x00001c68 0 .text.SYSCON_WDT_CMD + $d 0x00001c98 0 .text.SYSCON_WDT_CMD + $d 0x00001ca4 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001ca4 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cb4 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cb8 0 .text.SYSCON_IWDCNT_Config + $t 0x00001cb8 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cc8 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cd0 0 .text.SYSCON_LVD_Config + $t 0x00001cd0 0 .text.SYSCON_LVD_Config + $d 0x00001ce8 0 .text.SYSCON_LVD_Config + $d 0x00001cf0 0 .text.LVD_Int_Enable + $t 0x00001cf0 0 .text.LVD_Int_Enable + $d 0x00001d08 0 .text.LVD_Int_Enable + $d 0x00001d0c 0 .text.IWDT_Int_Enable + $t 0x00001d0c 0 .text.IWDT_Int_Enable + $d 0x00001d24 0 .text.IWDT_Int_Enable + $d 0x00001d28 0 .text.EXTI_trigger_CMD + $t 0x00001d28 0 .text.EXTI_trigger_CMD + $d 0x00001d64 0 .text.EXTI_trigger_CMD + $d 0x00001d68 0 .text.EXTI_interrupt_CMD + $t 0x00001d68 0 .text.EXTI_interrupt_CMD + $d 0x00001d94 0 .text.EXTI_interrupt_CMD + $d 0x00001d9c 0 .text.GPIO_EXTI_interrupt + $t 0x00001d9c 0 .text.GPIO_EXTI_interrupt + $d 0x00001da0 0 .text.EXI4_Int_Enable + $t 0x00001da0 0 .text.EXI4_Int_Enable + $d 0x00001dac 0 .text.EXI4_Int_Enable + $d 0x00001db0 0 .text.SYSCON_Int_Enable + $t 0x00001db0 0 .text.SYSCON_Int_Enable + $d 0x00001db8 0 .text.SYSCON_Int_Enable + $d 0x00001dbc 0 .text.SYSCON_Int_Disable + $t 0x00001dbc 0 .text.SYSCON_Int_Disable + $d 0x00001dc4 0 .text.SYSCON_Int_Disable + $d 0x00001dc8 0 .text.SYSCON_INT_Priority + $t 0x00001dc8 0 .text.SYSCON_INT_Priority + $d 0x00001de0 0 .text.SYSCON_INT_Priority + $d 0x00001dec 0 .text.Set_INT_Priority + $t 0x00001dec 0 .text.Set_INT_Priority + $d 0x00001e18 0 .text.Set_INT_Priority + $d 0x00001e1c 0 .text.GPIO_Init + $t 0x00001e1c 0 .text.GPIO_Init + $d 0x00001e2e 0 .text.GPIO_Init + $t 0x00001e36 0 .text.GPIO_Init + $d 0x00001e92 0 .text.GPIO_Init + $t 0x00001e9a 0 .text.GPIO_Init + $d 0x00001ee8 0 .text.GPIO_Init + $d 0x00001efc 0 .text.GPIO_PullHigh_Init + $t 0x00001efc 0 .text.GPIO_PullHigh_Init + $d 0x00001f10 0 .text.GPIO_DriveStrength_EN + $t 0x00001f10 0 .text.GPIO_DriveStrength_EN + $d 0x00001f20 0 .text.GPIO_IntGroup_Set + $t 0x00001f20 0 .text.GPIO_IntGroup_Set + $d 0x00002014 0 .text.GPIO_IntGroup_Set + $d 0x0000202c 0 .text.GPIOA0_EXI_Init + $t 0x0000202c 0 .text.GPIOA0_EXI_Init + $d 0x00002038 0 .text.GPIOA0_EXI_Init + $t 0x00002048 0 .text.GPIOA0_EXI_Init + $d 0x00002124 0 .text.GPIOA0_EXI_Init + $d 0x00002128 0 .text.GPIO_Write_High + $t 0x00002128 0 .text.GPIO_Write_High + $d 0x00002130 0 .text.GPIO_Write_Low + $t 0x00002130 0 .text.GPIO_Write_Low + $d 0x00002138 0 .text.GPIO_Reverse + $t 0x00002138 0 .text.GPIO_Reverse + $d 0x0000214e 0 .text.GPIO_Read_Status + $t 0x0000214e 0 .text.GPIO_Read_Status + $d 0x00002160 0 .text.LPT_Soft_Reset + $t 0x00002160 0 .text.LPT_Soft_Reset + $d 0x00002170 0 .text.LPT_Soft_Reset + $d 0x00002174 0 .text.WWDT_CNT_Load + $t 0x00002174 0 .text.WWDT_CNT_Load + $d 0x00002180 0 .text.WWDT_CNT_Load + $d 0x00002184 0 .text.BT_DeInit + $t 0x00002184 0 .text.BT_DeInit + $d 0x000021a0 0 .text.BT_Start + $t 0x000021a0 0 .text.BT_Start + $d 0x000021a8 0 .text.BT_Soft_Reset + $t 0x000021a8 0 .text.BT_Soft_Reset + $d 0x000021b2 0 .text.BT_Configure + $t 0x000021b2 0 .text.BT_Configure + $d 0x000021ca 0 .text.BT_ControlSet_Configure + $t 0x000021ca 0 .text.BT_ControlSet_Configure + $d 0x000021f6 0 .text.BT_Period_CMP_Write + $t 0x000021f6 0 .text.BT_Period_CMP_Write + $d 0x000021fc 0 .text.BT_ConfigInterrupt_CMD + $t 0x000021fc 0 .text.BT_ConfigInterrupt_CMD + $d 0x00002210 0 .text.BT1_INT_ENABLE + $t 0x00002210 0 .text.BT1_INT_ENABLE + $d 0x0000221c 0 .text.BT1_INT_ENABLE + $d 0x00002220 0 .text.GPT_IO_Init + $t 0x00002220 0 .text.GPT_IO_Init + $d 0x000022b8 0 .text.GPT_IO_Init + $d 0x000022c0 0 .text.GPT_Configure + $t 0x000022c0 0 .text.GPT_Configure + $d 0x000022d0 0 .text.GPT_Configure + $d 0x000022d4 0 .text.GPT_WaveCtrl_Configure + $t 0x000022d4 0 .text.GPT_WaveCtrl_Configure + $d 0x00002314 0 .text.GPT_WaveCtrl_Configure + $d 0x00002318 0 .text.GPT_WaveLoad_Configure + $t 0x00002318 0 .text.GPT_WaveLoad_Configure + $d 0x00002328 0 .text.GPT_WaveLoad_Configure + $d 0x0000232c 0 .text.GPT_WaveOut_Configure + $t 0x0000232c 0 .text.GPT_WaveOut_Configure + $d 0x000023dc 0 .text.GPT_WaveOut_Configure + $d 0x000023e0 0 .text.GPT_Start + $t 0x000023e0 0 .text.GPT_Start + $d 0x000023ec 0 .text.GPT_Start + $d 0x000023f0 0 .text.GPT_Period_CMP_Write + $t 0x000023f0 0 .text.GPT_Period_CMP_Write + $d 0x000023fc 0 .text.GPT_Period_CMP_Write + $d 0x00002400 0 .text.GPT_ConfigInterrupt_CMD + $t 0x00002400 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00002418 0 .text.GPT_ConfigInterrupt_CMD + $d 0x0000241c 0 .text.UART0_DeInit + $t 0x0000241c 0 .text.UART0_DeInit + $d 0x00002430 0 .text.UART0_DeInit + $d 0x00002434 0 .text.UART1_DeInit + $t 0x00002434 0 .text.UART1_DeInit + $d 0x00002448 0 .text.UART1_DeInit + $d 0x0000244c 0 .text.UART2_DeInit + $t 0x0000244c 0 .text.UART2_DeInit + $d 0x00002460 0 .text.UART2_DeInit + $d 0x00002464 0 .text.UART1_Int_Enable + $t 0x00002464 0 .text.UART1_Int_Enable + $d 0x00002478 0 .text.UART1_Int_Enable + $d 0x00002480 0 .text.UART2_Int_Enable + $t 0x00002480 0 .text.UART2_Int_Enable + $d 0x00002494 0 .text.UART2_Int_Enable + $d 0x0000249c 0 .text.UART_IO_Init + $t 0x0000249c 0 .text.UART_IO_Init + $d 0x00002580 0 .text.UART_IO_Init + $d 0x00002588 0 .text.UARTInitRxTxIntEn + $t 0x00002588 0 .text.UARTInitRxTxIntEn + $d 0x00002594 0 .text.UARTInitRxTxIntEn + $d 0x00002598 0 .text.UARTTransmit + $t 0x00002598 0 .text.UARTTransmit + $d 0x000025b8 0 .text.EPT_Stop + $t 0x000025b8 0 .text.EPT_Stop + $d 0x000025d8 0 .text.EPT_Stop + $d 0x000025e0 0 .text.Page_ProgramData + $t 0x000025e0 0 .text.Page_ProgramData + $d 0x00002678 0 .text.Page_ProgramData + $d 0x00002680 0 .text.ReadDataArry_U8 + $t 0x00002680 0 .text.ReadDataArry_U8 + $d 0x000026ac 0 .text.startup.main + $t 0x000026ac 0 .text.startup.main + $d 0x000026d4 0 .text.startup.main + $d 0x000026d8 0 .text.delay_nms + $t 0x000026d8 0 .text.delay_nms + $d 0x00002704 0 .text.delay_nus + $t 0x00002704 0 .text.delay_nus + $d 0x00002728 0 .text.BT_CONFIG + $t 0x00002728 0 .text.BT_CONFIG + $d 0x00002780 0 .text.BT_CONFIG + $d 0x00002788 0 .text.SYSCON_CONFIG + $t 0x00002788 0 .text.SYSCON_CONFIG + $d 0x000027ec 0 .text.APT32F102_init + $t 0x000027ec 0 .text.APT32F102_init + $d 0x0000282c 0 .text.APT32F102_init + $d 0x00002838 0 .text.SYSCONIntHandler + $t 0x00002838 0 .text.SYSCONIntHandler + $d 0x00002924 0 .text.SYSCONIntHandler + $d 0x00002928 0 .text.IFCIntHandler + $t 0x00002928 0 .text.IFCIntHandler + $d 0x0000298c 0 .text.IFCIntHandler + $d 0x00002990 0 .text.ADCIntHandler + $t 0x00002990 0 .text.ADCIntHandler + $d 0x000029f4 0 .text.ADCIntHandler + $d 0x000029f8 0 .text.EPT0IntHandler + $t 0x000029f8 0 .text.EPT0IntHandler + $d 0x00002b98 0 .text.EPT0IntHandler + $d 0x00002ba4 0 .text.WWDTHandler + $t 0x00002ba4 0 .text.WWDTHandler + $d 0x00002bd4 0 .text.WWDTHandler + $d 0x00002bd8 0 .text.GPT0IntHandler + $t 0x00002bd8 0 .text.GPT0IntHandler + $d 0x00002c54 0 .text.GPT0IntHandler + $d 0x00002c58 0 .text.RTCIntHandler + $t 0x00002c58 0 .text.RTCIntHandler + $d 0x00002cc0 0 .text.RTCIntHandler + $d 0x00002cc8 0 .text.UART0IntHandler + $t 0x00002cc8 0 .text.UART0IntHandler + $d 0x00002d00 0 .text.UART0IntHandler + $d 0x00002d04 0 .text.UART1IntHandler + $t 0x00002d04 0 .text.UART1IntHandler + $d 0x00002d84 0 .text.UART1IntHandler + $d 0x00002d98 0 .text.UART2IntHandler + $t 0x00002d98 0 .text.UART2IntHandler + $d 0x00002de0 0 .text.UART2IntHandler + $d 0x00002de4 0 .text.SPI0IntHandler + $t 0x00002de4 0 .text.SPI0IntHandler + $d 0x00002ec8 0 .text.SPI0IntHandler + $d 0x00002ecc 0 .text.SIO0IntHandler + $t 0x00002ecc 0 .text.SIO0IntHandler + $d 0x00002f1c 0 .text.SIO0IntHandler + $d 0x00002f20 0 .text.EXI0IntHandler + $t 0x00002f20 0 .text.EXI0IntHandler + $d 0x00002f4c 0 .text.EXI0IntHandler + $d 0x00002f50 0 .text.EXI1IntHandler + $t 0x00002f50 0 .text.EXI1IntHandler + $d 0x00002f7c 0 .text.EXI1IntHandler + $d 0x00002f80 0 .text.EXI2to3IntHandler + $t 0x00002f80 0 .text.EXI2to3IntHandler + $d 0x00002fc4 0 .text.EXI2to3IntHandler + $d 0x00002fc8 0 .text.EXI4to9IntHandler + $t 0x00002fc8 0 .text.EXI4to9IntHandler + $d 0x00002fe4 0 .text.EXI4to9IntHandler + $d 0x00002fe8 0 .text.EXI10to15IntHandler + $t 0x00002fe8 0 .text.EXI10to15IntHandler + $d 0x00003050 0 .text.EXI10to15IntHandler + $d 0x00003054 0 .text.LPTIntHandler + $t 0x00003054 0 .text.LPTIntHandler + $d 0x00003084 0 .text.LPTIntHandler + $d 0x00003088 0 .text.BT0IntHandler + $t 0x00003088 0 .text.BT0IntHandler + $d 0x000030d0 0 .text.BT0IntHandler + $d 0x000030d4 0 .text.BT1IntHandler + $t 0x000030d4 0 .text.BT1IntHandler + $d 0x0000313c 0 .text.BT1IntHandler + $d 0x00003144 0 .text.PriviledgeVioHandler + $t 0x00003144 0 .text.PriviledgeVioHandler + $d 0x00003146 0 .text.PendTrapHandler + $t 0x00003146 0 .text.PendTrapHandler + $d 0x0000314e 0 .text.Trap3Handler + $t 0x0000314e 0 .text.Trap3Handler + $d 0x00003156 0 .text.Trap2Handler + $t 0x00003156 0 .text.Trap2Handler + $d 0x0000315e 0 .text.Trap1Handler + $t 0x0000315e 0 .text.Trap1Handler + $d 0x00003166 0 .text.Trap0Handler + $t 0x00003166 0 .text.Trap0Handler + $d 0x0000316e 0 .text.UnrecExecpHandler + $t 0x0000316e 0 .text.UnrecExecpHandler + $d 0x00003176 0 .text.BreakPointHandler + $t 0x00003176 0 .text.BreakPointHandler + $d 0x0000317e 0 .text.AccessErrHandler + $t 0x0000317e 0 .text.AccessErrHandler + $d 0x00003186 0 .text.IllegalInstrHandler + $t 0x00003186 0 .text.IllegalInstrHandler + $d 0x0000318e 0 .text.MisalignedHandler + $t 0x0000318e 0 .text.MisalignedHandler + $d 0x00003196 0 .text.CNTAIntHandler + $t 0x00003196 0 .text.CNTAIntHandler + $d 0x0000319e 0 .text.I2CIntHandler + $t 0x0000319e 0 .text.I2CIntHandler + $d 0x000031a8 0 .text.__divsi3 + $t 0x000031a8 0 .text.__divsi3 + $d 0x000031c8 0 .text.__divsi3 + $d 0x000031cc 0 .text.__udivsi3 + $t 0x000031cc 0 .text.__udivsi3 + $d 0x000031ec 0 .text.__udivsi3 + $d 0x000031f0 0 .text.__umodsi3 + $t 0x000031f0 0 .text.__umodsi3 + $d 0x00003210 0 .text.__umodsi3 + $d 0x00003214 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00003214 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000321a 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000321a 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00003220 0 .text.UARTx_Init + $t 0x00003220 0 .text.UARTx_Init + $d 0x0000334c 0 .text.UARTx_Init + $d 0x00003374 0 .text.UART1_RecvINT_Processing + $t 0x00003374 0 .text.UART1_RecvINT_Processing + $d 0x000033a8 0 .text.UART1_RecvINT_Processing + $d 0x000033b8 0 .text.UART1_TASK + $t 0x000033b8 0 .text.UART1_TASK + $d 0x00003414 0 .text.UART1_TASK + $d 0x00003428 0 .text.BUS485_Send + $t 0x00003428 0 .text.BUS485_Send + $d 0x000034e4 0 .text.BUS485_Send + $d 0x000034f8 0 .text.MultSend_Task + $t 0x000034f8 0 .text.MultSend_Task + $d 0x00003554 0 .text.MultSend_Task + $d 0x0000355c 0 .text.Set_GroupSend + $t 0x0000355c 0 .text.Set_GroupSend + $d 0x000035ac 0 .text.Set_GroupSend + $d 0x000035b8 0 .text.BUS485Send_Task + $t 0x000035b8 0 .text.BUS485Send_Task + $d 0x000035dc 0 .text.BUS485Send_Task + $d 0x000035e4 0 .text.BusIdle_Task + $t 0x000035e4 0 .text.BusIdle_Task + $d 0x00003618 0 .text.BusIdle_Task + $d 0x00003620 0 .text.BusBusy_Task + $t 0x00003620 0 .text.BusBusy_Task + $d 0x00003668 0 .text.BusBusy_Task + $d 0x00003674 0 .text.Dbg_Println + $t 0x00003674 0 .text.Dbg_Println + $d 0x00003680 0 .text.DIP_GetSwitchState + $t 0x00003680 0 .text.DIP_GetSwitchState + $d 0x000036b0 0 .text.DIP_GetSwitchState + $d 0x000036b4 0 .text.DIP_Switch_Init + $t 0x000036b4 0 .text.DIP_Switch_Init + $d 0x00003734 0 .text.DIP_Switch_Init + $d 0x00003740 0 .text.DIP_ScanTask + $t 0x00003740 0 .text.DIP_ScanTask + $d 0x000037c0 0 .text.DIP_ScanTask + $d 0x000037cc 0 .text.Relay_Init + $t 0x000037cc 0 .text.Relay_Init + $d 0x00003880 0 .text.Relay_Init + $d 0x0000388c 0 .text.CheckSum + $t 0x0000388c 0 .text.CheckSum + $d 0x000038a2 0 .text.CheckSum2 + $t 0x000038a2 0 .text.CheckSum2 + $d 0x000038bc 0 .text.Change_OUTV + $t 0x000038bc 0 .text.Change_OUTV + $d 0x000038d0 0 .text.Change_OUTV + $d 0x000038d8 0 .text.BLV_VolOut_Ctrl + $t 0x000038d8 0 .text.BLV_VolOut_Ctrl + $d 0x0000392c 0 .text.BLV_VolOut_Ctrl + $d 0x00003934 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x00003934 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x000039a8 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x000039b0 0 .text.BLV_RLY_Task + $t 0x000039b0 0 .text.BLV_RLY_Task + $d 0x000039f4 0 .text.BLV_RLY_Task + $d 0x000039f8 0 .text.BLV_A9RLY_CMD_SET_Processing + $t 0x000039f8 0 .text.BLV_A9RLY_CMD_SET_Processing + $d 0x00003a94 0 .text.BLV_A9RLY_CMD_SET_Processing + $d 0x00003a9c 0 .text.BLV_A9RLY_CMD_READ_Processing + $t 0x00003a9c 0 .text.BLV_A9RLY_CMD_READ_Processing + $d 0x00003b20 0 .text.BLV_A9RLY_CMD_READ_Processing + $d 0x00003b28 0 .text.BLV_WINDOUT_CMD_SET_Processing + $t 0x00003b28 0 .text.BLV_WINDOUT_CMD_SET_Processing + $d 0x00003bf4 0 .text.BLV_WINDOUT_CMD_SET_Processing + $d 0x00003c00 0 .text.BLV_WINDOUT_CMD_READ_Processing + $t 0x00003c00 0 .text.BLV_WINDOUT_CMD_READ_Processing + $d 0x00003c8c 0 .text.BLV_WINDOUT_CMD_READ_Processing + $d 0x00003c94 0 .text.BLV_DEVPROT_CMD_SET_Processing + $t 0x00003c94 0 .text.BLV_DEVPROT_CMD_SET_Processing + $d 0x00003d14 0 .text.BLV_DEVPROT_CMD_SET_Processing + $d 0x00003d1c 0 .text.BLV_DEVPROT_CMD_READ_Processing + $t 0x00003d1c 0 .text.BLV_DEVPROT_CMD_READ_Processing + $d 0x00003d88 0 .text.BLV_DEVPROT_CMD_READ_Processing + $d 0x00003d90 0 .text.BLV_RLY_RS485_Pro + $t 0x00003d90 0 .text.BLV_RLY_RS485_Pro + $d 0x00003e36 0 .text.BLV_RLY_RS485_Pro + $t 0x00003e42 0 .text.BLV_RLY_RS485_Pro + $d 0x00003e80 0 .text.BLV_RLY_RS485_Pro + $d 0x00003ea0 0 .text.CTRL_LEDStatus_Task + $t 0x00003ea0 0 .text.CTRL_LEDStatus_Task + $d 0x00003ec4 0 .text.CTRL_LEDStatus_Task + $d 0x00003ed4 0 .text.EEPROM_CheckSum + $t 0x00003ed4 0 .text.EEPROM_CheckSum + $d 0x00003eec 0 .text.EEPROM_ReadPara + $t 0x00003eec 0 .text.EEPROM_ReadPara + $d 0x00004058 0 .text.EEPROM_ReadPara + $d 0x000040a0 0 .text.EEPROM_ValidateWrite + $t 0x000040a0 0 .text.EEPROM_ValidateWrite + $d 0x00004114 0 .text.EEPROM_WritePara + $t 0x00004114 0 .text.EEPROM_WritePara + $d 0x000041b0 0 .text.EEPROM_WritePara + $d 0x000041c4 0 .text.EEPROM_ReadMCUDevInfo + $t 0x000041c4 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00004230 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00004234 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00004234 0 .text.EEPROM_WriteMCUDevInfo + $d 0x00004274 0 .text.EEPROM_Default_MCUDevInfo + $t 0x00004274 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000042a4 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000042a8 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x000042a8 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x000042fc 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00004300 0 .text.EEPROM_Init + $t 0x00004300 0 .text.EEPROM_Init + $d 0x00004350 0 .text.EEPROM_Init + $d 0x0000435c 0 .text.TK_Sampling_prog + $t 0x0000435c 0 .text.TK_Sampling_prog + $d 0x000043a4 0 .text.TK_Sampling_prog + $d 0x000043b4 0 .text.TKEYIntHandler + $t 0x000043b4 0 .text.TKEYIntHandler + $d 0x00004430 0 .text.TKEYIntHandler + $d 0x0000443c 0 .text.get_key_number + $t 0x0000443c 0 .text.get_key_number + $d 0x00004460 0 .text.get_key_number + $d 0x00004464 0 .text.TK_Scan_Start + $t 0x00004464 0 .text.TK_Scan_Start + $d 0x0000447c 0 .text.TK_Scan_Start + $d 0x00004484 0 .text.TK_Keymap_prog + $t 0x00004484 0 .text.TK_Keymap_prog + $d 0x000045cc 0 .text.TK_Keymap_prog + $d 0x00004604 0 .text.TK_overflow_predict + $t 0x00004604 0 .text.TK_overflow_predict + $d 0x000046ec 0 .text.TK_overflow_predict + $d 0x00004720 0 .text.TK_Baseline_tracking + $t 0x00004720 0 .text.TK_Baseline_tracking + $d 0x000048c4 0 .text.TK_Baseline_tracking + $d 0x000048f0 0 .text.TK_result_prog + $t 0x000048f0 0 .text.TK_result_prog + $d 0x00004930 0 .text.TK_result_prog + $d 0x00004944 0 .text.CORETHandler + $t 0x00004944 0 .text.CORETHandler + $d 0x000049a4 0 .text.CORETHandler + $d 0x000049bc 0 .text.std_clk_calib + $t 0x000049bc 0 .text.std_clk_calib + $d 0x00004c04 0 .text.std_clk_calib + bp 0x00004c40 O 16 .rodata + dp_l 0x00004c50 O 16 .rodata + dp_h 0x00004c60 O 16 .rodata + NUM.6030 0x2000009c O 1 .bss + update_20ms.5936 0x200000b8 O 4 .bss + Ctrl_LED_tick.6038 0x200000bc O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_sqi 0x00000cfc F 22 .text + ___gnu_csky_case_uqi 0x00000d14 F 20 .text + __fixunsdfsi 0x00000d28 F 56 .text + __adddf3 0x00001034 F 46 .text + __subdf3 0x00001064 F 54 .text + __muldf3 0x0000109c F 564 .text + __divdf3 0x000012d0 F 340 .text + __gtdf2 0x00001424 F 60 .text + __gedf2 0x00001460 F 60 .text + __ledf2 0x0000149c F 58 .text + __floatsidf 0x000014d8 F 112 .text + __fixdfsi 0x00001548 F 112 .text + __floatunsidf 0x000015b8 F 84 .text + __muldi3 0x0000160c F 68 .text + __clzsi2 0x00001650 F 64 .text + __pack_d 0x00001690 F 412 .text + __unpack_d 0x0000182c F 196 .text + __fpcmp_parts_d 0x000018f0 F 140 .text + __memset_fast 0x0000197c w F 136 .text + memset 0x0000197c w F 136 .text + __memcpy_fast 0x00001a04 w F 100 .text + memcpy 0x00001a04 w F 100 .text + __GI_strncmp 0x00001a68 F 38 .text + strncmp 0x00001a68 w F 38 .text + __main 0x00001a90 F 56 .text.__main + SYSCON_RST_VALUE 0x00001b3c F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001b88 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001bb8 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c40 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c68 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001ca4 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001cb8 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001cd0 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001cf0 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001d0c F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001d28 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00001d68 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00001d9c F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00001da0 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00001db0 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x00001dbc F 12 .text.SYSCON_Int_Disable + SYSCON_INT_Priority 0x00001dc8 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001dec F 48 .text.Set_INT_Priority + GPIO_Init 0x00001e1c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001efc F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001f10 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001f20 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x0000202c F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x00002128 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00002130 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00002138 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x0000214e F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x00002160 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002174 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002184 F 28 .text.BT_DeInit + BT_Start 0x000021a0 F 8 .text.BT_Start + BT_Soft_Reset 0x000021a8 F 10 .text.BT_Soft_Reset + BT_Configure 0x000021b2 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000021ca F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x000021f6 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x000021fc F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00002210 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00002220 F 160 .text.GPT_IO_Init + GPT_Configure 0x000022c0 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x000022d4 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x00002318 F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x0000232c F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x000023e0 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x000023f0 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x00002400 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x0000241c F 24 .text.UART0_DeInit + UART1_DeInit 0x00002434 F 24 .text.UART1_DeInit + UART2_DeInit 0x0000244c F 24 .text.UART2_DeInit + UART1_Int_Enable 0x00002464 F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00002480 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000249c F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00002588 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002598 F 30 .text.UARTTransmit + EPT_Stop 0x000025b8 F 40 .text.EPT_Stop + Page_ProgramData 0x000025e0 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002680 F 42 .text.ReadDataArry_U8 + main 0x000026ac F 44 .text.startup.main + delay_nms 0x000026d8 F 44 .text.delay_nms + delay_nus 0x00002704 F 34 .text.delay_nus + BT_CONFIG 0x00002728 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002788 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x000027ec F 76 .text.APT32F102_init + SYSCONIntHandler 0x00002838 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002928 F 104 .text.IFCIntHandler + ADCIntHandler 0x00002990 F 104 .text.ADCIntHandler + EPT0IntHandler 0x000029f8 F 428 .text.EPT0IntHandler + WWDTHandler 0x00002ba4 F 52 .text.WWDTHandler + GPT0IntHandler 0x00002bd8 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00002c58 F 112 .text.RTCIntHandler + UART0IntHandler 0x00002cc8 F 60 .text.UART0IntHandler + UART1IntHandler 0x00002d04 F 148 .text.UART1IntHandler + UART2IntHandler 0x00002d98 F 76 .text.UART2IntHandler + SPI0IntHandler 0x00002de4 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00002ecc F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00002f20 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00002f50 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00002f80 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00002fc8 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00002fe8 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x00003054 F 52 .text.LPTIntHandler + BT0IntHandler 0x00003088 F 76 .text.BT0IntHandler + BT1IntHandler 0x000030d4 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00003144 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00003146 F 8 .text.PendTrapHandler + Trap3Handler 0x0000314e F 8 .text.Trap3Handler + Trap2Handler 0x00003156 F 8 .text.Trap2Handler + Trap1Handler 0x0000315e F 8 .text.Trap1Handler + Trap0Handler 0x00003166 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000316e F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00003176 F 8 .text.BreakPointHandler + AccessErrHandler 0x0000317e F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00003186 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x0000318e F 8 .text.MisalignedHandler + CNTAIntHandler 0x00003196 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000319e F 8 .text.I2CIntHandler + __divsi3 0x000031a8 F 36 .text.__divsi3 + __udivsi3 0x000031cc F 36 .text.__udivsi3 + __umodsi3 0x000031f0 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00003214 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000321a F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00003220 F 340 .text.UARTx_Init + UART1_RecvINT_Processing 0x00003374 F 68 .text.UART1_RecvINT_Processing + UART1_TASK 0x000033b8 F 112 .text.UART1_TASK + BUS485_Send 0x00003428 F 208 .text.BUS485_Send + MultSend_Task 0x000034f8 F 100 .text.MultSend_Task + Set_GroupSend 0x0000355c F 92 .text.Set_GroupSend + BUS485Send_Task 0x000035b8 F 44 .text.BUS485Send_Task + BusIdle_Task 0x000035e4 F 60 .text.BusIdle_Task + BusBusy_Task 0x00003620 F 84 .text.BusBusy_Task + Dbg_Println 0x00003674 F 12 .text.Dbg_Println + DIP_GetSwitchState 0x00003680 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x000036b4 F 140 .text.DIP_Switch_Init + DIP_ScanTask 0x00003740 F 140 .text.DIP_ScanTask + Relay_Init 0x000037cc F 192 .text.Relay_Init + CheckSum 0x0000388c F 22 .text.CheckSum + CheckSum2 0x000038a2 F 24 .text.CheckSum2 + Change_OUTV 0x000038bc F 28 .text.Change_OUTV + BLV_VolOut_Ctrl 0x000038d8 F 92 .text.BLV_VolOut_Ctrl + BLV_RLY_Ctrl_Purpose 0x00003934 F 124 .text.BLV_RLY_Ctrl_Purpose + BLV_RLY_Task 0x000039b0 F 72 .text.BLV_RLY_Task + BLV_A9RLY_CMD_SET_Processing 0x000039f8 F 164 .text.BLV_A9RLY_CMD_SET_Processing + BLV_A9RLY_CMD_READ_Processing 0x00003a9c F 140 .text.BLV_A9RLY_CMD_READ_Processing + BLV_WINDOUT_CMD_SET_Processing 0x00003b28 F 216 .text.BLV_WINDOUT_CMD_SET_Processing + BLV_WINDOUT_CMD_READ_Processing 0x00003c00 F 148 .text.BLV_WINDOUT_CMD_READ_Processing + BLV_DEVPROT_CMD_SET_Processing 0x00003c94 F 136 .text.BLV_DEVPROT_CMD_SET_Processing + BLV_DEVPROT_CMD_READ_Processing 0x00003d1c F 116 .text.BLV_DEVPROT_CMD_READ_Processing + BLV_RLY_RS485_Pro 0x00003d90 F 272 .text.BLV_RLY_RS485_Pro + CTRL_LEDStatus_Task 0x00003ea0 F 52 .text.CTRL_LEDStatus_Task + EEPROM_CheckSum 0x00003ed4 F 22 .text.EEPROM_CheckSum + EEPROM_ReadPara 0x00003eec F 424 .text.EEPROM_ReadPara + EEPROM_ValidateWrite 0x000040a0 F 116 .text.EEPROM_ValidateWrite + EEPROM_WritePara 0x00004114 F 176 .text.EEPROM_WritePara + EEPROM_ReadMCUDevInfo 0x000041c4 F 112 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00004234 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x00004274 F 52 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x000042a8 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00004300 F 92 .text.EEPROM_Init + TK_Sampling_prog 0x0000435c F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x000043b4 F 136 .text.TKEYIntHandler + get_key_number 0x0000443c F 40 .text.get_key_number + TK_Scan_Start 0x00004464 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00004484 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00004604 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00004720 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x000048f0 F 84 .text.TK_result_prog + CORETHandler 0x00004944 F 120 .text.CORETHandler + std_clk_calib 0x000049bc F 644 .text.std_clk_calib + __thenan_df 0x00004c70 O 20 .rodata + __clz_tab 0x00004c84 O 256 .rodata + _end_rodata 0x00004f20 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + _bss_start 0x2000009c 0 .bss + SysTick_100us 0x200000a0 O 4 .bss + SysTick_1ms 0x200000a4 O 4 .bss + RS485_Comming 0x200000a8 O 4 .bss + RS485_Comm_Flag 0x200000ac O 4 .bss + RS485_Comm_Start 0x200000b0 O 4 .bss + RS485_Comm_End 0x200000b4 O 4 .bss + Press_debounce_data 0x200000c0 O 1 .bss + TK_Lowpower_mode 0x200000c1 O 1 .bss + TK_Lowpower_level 0x200000c2 O 1 .bss + TK_longpress_time 0x200000c4 O 4 .bss + Release_debounce_data 0x200000c8 O 1 .bss + Key_mode 0x200000c9 O 1 .bss + TK_icon 0x200000ca O 34 .bss + MultiTimes_Filter 0x200000ec O 1 .bss + Base_Speed 0x200000ed O 1 .bss + TK_IO_ENABLE 0x200000f0 O 4 .bss + Valid_Key_Num 0x200000f4 O 1 .bss + TK_senprd 0x200000f6 O 34 .bss + TK_Wakeup_level 0x20000118 O 1 .bss + TK_Triggerlevel 0x2000011a O 34 .bss + TK_EC_LEVEL 0x2000013c O 2 .bss + TK_FVR_LEVEL 0x2000013e O 2 .bss + TK_BaseCnt 0x20000140 O 4 .bss + TK_PSEL_MODE 0x20000144 O 2 .bss + R_CMPB_BUF 0x20000148 O 4 .bss + R_CMPA_BUF 0x2000014c O 4 .bss + R_SIORX_buf 0x20000150 O 40 .bss + g_uart 0x20000178 O 160 .bss + g_uart1 0x20000218 O 160 .bss + m_send 0x200002b8 O 164 .bss + g_Dip 0x2000035c O 16 .bss + c_rly 0x2000036c O 24 .bss + g_mcu_dev 0x20000384 O 37 .bss + baseline_data0 0x200003ac O 34 .bss + TK_Postive_build2 0x200003ce O 17 .bss + Key_Map1 0x200003e0 O 4 .bss + offset_data2_abs 0x200003e4 O 34 .bss + scan_f 0x20000406 O 1 .bss + offset_data1_abs 0x20000408 O 34 .bss + Release_debounce0 0x2000042a O 17 .bss + Key_Map0 0x2000043c O 4 .bss + bsae_over_f 0x20000440 O 1 .bss + scan_cnt 0x20000442 O 2 .bss + Press_debounce0 0x20000444 O 17 .bss + offset_data0 0x20000456 O 34 .bss + sampling_data1 0x20000478 O 34 .bss + Key_Map2 0x2000049c O 4 .bss + Release_debounce1 0x200004a0 O 17 .bss + tk_overflow_f 0x200004b1 O 1 .bss + TK_Negtive_build2 0x200004b2 O 17 .bss + base_update_f 0x200004c3 O 1 .bss + TK_Postive_build1 0x200004c4 O 17 .bss + time_cnt 0x200004d8 O 4 .bss + lpt_scan_pend_cnt 0x200004dc O 2 .bss + TK_track_cnt 0x200004de O 1 .bss + Key_Map 0x200004e0 O 4 .bss + baseline_data1 0x200004e4 O 34 .bss + TK_Postive_build0 0x20000506 O 17 .bss + sampling_data2 0x20000518 O 34 .bss + offset_data1 0x2000053a O 34 .bss + TK_ovrdect_cnt 0x2000055c O 1 .bss + Press_debounce2 0x2000055d O 17 .bss + TK_Negtive_build1 0x2000056e O 17 .bss + tk_num 0x2000057f O 1 .bss + TK_Negtive_build0 0x20000580 O 17 .bss + Press_debounce1 0x20000591 O 17 .bss + Release_debounce2 0x200005a2 O 17 .bss + r_Key_Map_Temp 0x200005b4 O 4 .bss + tk_seque 0x200005b8 O 17 .bss + scan_step 0x200005c9 O 1 .bss + baseline_data2 0x200005ca O 34 .bss + tk_sampling_max 0x200005ec O 34 .bss + offset_data0_abs 0x2000060e O 34 .bss + offset_data2 0x20000630 O 34 .bss + sampling_data0 0x20000652 O 34 .bss + _ebss 0x20000674 0 .bss + _end 0x20000674 0 .bss + end 0x20000674 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00004f20, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1007 .text pow.o + 0x00000b5e 0x00000006 Code RO 1015 .text fabs.o + 0x00000b64 0x00000020 Code RO 1021 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1028 .text sqrt.o + 0x00000cfc 0x00000016 Code RO 1039 .text _csky_case_sqi.o + 0x00000d12 0x00000002 PAD + 0x00000d14 0x00000014 Code RO 1044 .text _csky_case_uqi.o + 0x00000d28 0x00000038 Code RO 1049 .text _fixunsdfsi.o + 0x00000d60 0x0000033a Code RO 1056 .text _addsub_df.o + 0x0000109a 0x00000002 PAD + 0x0000109c 0x00000234 Code RO 1063 .text _mul_df.o + 0x000012d0 0x00000154 Code RO 1070 .text _div_df.o + 0x00001424 0x0000003c Code RO 1077 .text _gt_df.o + 0x00001460 0x0000003c Code RO 1084 .text _ge_df.o + 0x0000149c 0x0000003a Code RO 1091 .text _le_df.o + 0x000014d6 0x00000002 PAD + 0x000014d8 0x00000070 Code RO 1098 .text _si_to_df.o + 0x00001548 0x00000070 Code RO 1105 .text _df_to_si.o + 0x000015b8 0x00000054 Code RO 1119 .text _usi_to_df.o + 0x0000160c 0x00000044 Code RO 1126 .text _muldi3.o + 0x00001650 0x00000040 Code RO 1133 .text _clzsi2.o + 0x00001690 0x0000019c Code RO 1139 .text _pack_df.o + 0x0000182c 0x000000c4 Code RO 1146 .text _unpack_df.o + 0x000018f0 0x0000008c Code RO 1153 .text _fpcmp_parts_df.o + 0x0000197c 0x00000088 Code RO 1174 .text memset_fast.o + 0x00001a04 0x00000064 Code RO 1179 .text memcpy_fast.o + 0x00001a68 0x00000026 Code RO 1185 .text strncmp.o + 0x00001a90 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001ac8 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001b3c 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001b88 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001bb8 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c40 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c68 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001ca4 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001cb8 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cd0 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cf0 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d0c 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d28 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d68 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d9c 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00001da0 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001db0 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001dbc 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x00001dc8 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001dec 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001e1c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001efc 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f10 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001f20 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x0000202c 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00002128 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00002130 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00002138 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x0000214e 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00002160 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002174 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002184 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000021a0 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000021a8 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000021b2 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000021ca 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x000021f6 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x000021fc 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00002210 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00002220 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x000022c0 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x000022d4 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002318 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000232c 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x000023e0 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x000023f0 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x00002400 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x0000241c 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002434 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x0000244c 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002464 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002480 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000249c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002588 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002598 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000025b8 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000025e0 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002680 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x000026ac 0x0000002c Code RO 690 .text.startup.main Obj/main.o + 0x000026d8 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x00002704 0x00000022 Code RO 708 .text.delay_nus Obj/mcu_initial.o + 0x00002728 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002788 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x000027ec 0x0000004c Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00002838 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002928 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00002990 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x000029f8 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00002ba4 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00002bd8 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00002c58 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00002cc8 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00002d04 0x00000094 Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00002d98 0x0000004c Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00002de4 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00002ecc 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00002f20 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00002f50 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00002f80 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00002fc8 0x00000020 Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00002fe8 0x0000006c Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00003054 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00003088 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000030d4 0x00000070 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00003144 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00003146 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000314e 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00003156 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000315e 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00003166 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000316e 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00003176 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x0000317e 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00003186 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x0000318e 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00003196 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000319e 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000031a8 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000031cc 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000031f0 0x00000024 Code RO 788 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00003214 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000321a 0x00000006 Code RO 807 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003220 0x00000154 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003374 0x00000044 Code RO 823 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000033b8 0x00000070 Code RO 824 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x00003428 0x000000d0 Code RO 830 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x000034f8 0x00000064 Code RO 831 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x0000355c 0x0000005c Code RO 832 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x000035b8 0x0000002c Code RO 835 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x000035e4 0x0000003c Code RO 837 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x00003620 0x00000054 Code RO 838 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00003674 0x0000000c Code RO 840 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003680 0x00000034 Code RO 858 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x000036b4 0x0000008c Code RO 859 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x00003740 0x0000008c Code RO 860 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x000037cc 0x000000c0 Code RO 878 .text.Relay_Init Obj/SYSTEM_control_rly.o + 0x0000388c 0x00000016 Code RO 879 .text.CheckSum Obj/SYSTEM_control_rly.o + 0x000038a2 0x00000018 Code RO 880 .text.CheckSum2 Obj/SYSTEM_control_rly.o + 0x000038bc 0x0000001c Code RO 881 .text.Change_OUTV Obj/SYSTEM_control_rly.o + 0x000038d8 0x0000005c Code RO 882 .text.BLV_VolOut_Ctrl Obj/SYSTEM_control_rly.o + 0x00003934 0x0000007c Code RO 883 .text.BLV_RLY_Ctrl_Purpose Obj/SYSTEM_control_rly.o + 0x000039b0 0x00000048 Code RO 884 .text.BLV_RLY_Task Obj/SYSTEM_control_rly.o + 0x000039f8 0x000000a4 Code RO 886 .text.BLV_A9RLY_CMD_SET_Processing Obj/SYSTEM_control_rly.o + 0x00003a9c 0x0000008c Code RO 887 .text.BLV_A9RLY_CMD_READ_Processing Obj/SYSTEM_control_rly.o + 0x00003b28 0x000000d8 Code RO 888 .text.BLV_WINDOUT_CMD_SET_Processing Obj/SYSTEM_control_rly.o + 0x00003c00 0x00000094 Code RO 889 .text.BLV_WINDOUT_CMD_READ_Processing Obj/SYSTEM_control_rly.o + 0x00003c94 0x00000088 Code RO 890 .text.BLV_DEVPROT_CMD_SET_Processing Obj/SYSTEM_control_rly.o + 0x00003d1c 0x00000074 Code RO 891 .text.BLV_DEVPROT_CMD_READ_Processing Obj/SYSTEM_control_rly.o + 0x00003d90 0x00000110 Code RO 892 .text.BLV_RLY_RS485_Pro Obj/SYSTEM_control_rly.o + 0x00003ea0 0x00000034 Code RO 893 .text.CTRL_LEDStatus_Task Obj/SYSTEM_control_rly.o + 0x00003ed4 0x00000016 Code RO 911 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00003eec 0x000001b4 Code RO 912 .text.EEPROM_ReadPara Obj/SYSTEM_eeprom.o + 0x000040a0 0x00000074 Code RO 913 .text.EEPROM_ValidateWrite Obj/SYSTEM_eeprom.o + 0x00004114 0x000000b0 Code RO 914 .text.EEPROM_WritePara Obj/SYSTEM_eeprom.o + 0x000041c4 0x00000070 Code RO 915 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004234 0x00000040 Code RO 916 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004274 0x00000034 Code RO 917 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x000042a8 0x00000058 Code RO 918 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004300 0x0000005c Code RO 919 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x0000435c 0x00000058 Code RO 953 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000043b4 0x00000088 Code RO 957 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000443c 0x00000028 Code RO 958 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00004464 0x00000020 Code RO 960 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00004484 0x00000180 Code RO 961 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00004604 0x0000011c Code RO 962 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00004720 0x000001d0 Code RO 963 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x000048f0 0x00000054 Code RO 964 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00004944 0x00000078 Code RO 965 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000049bc 0x00000284 Code RO 987 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00004c40 0x00000030 Data RO 1010 .rodata pow.o + 0x00004c70 0x00000014 Data RO 1115 .rodata _thenan_df.o + 0x00004c84 0x00000100 Data RO 1163 .rodata _clz.o + 0x00004d84 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x00004d8f 0x0000000c Data RO 861 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x00004d9b 0x00000074 Data RO 894 .rodata.str1.1 Obj/SYSTEM_control_rly.o + 0x00004e0f 0x00000111 Data RO 920 .rodata.str1.1 Obj/SYSTEM_eeprom.o + + Region RAM (Base: 0x20000000, Size: 0x00000674, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 944 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000a8 0x00000010 Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200000b8 0x00000004 Zero RW 857 .bss Obj/SYSTEM_dip_switch.o + 0x200000bc 0x00000004 Zero RW 877 .bss Obj/SYSTEM_control_rly.o + 0x200000c0 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x20000146 0x00000002 PAD + 0x20000148 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x20000178 0x000001e4 Zero RW 854 COMMON Obj/SYSTEM_uart.o + 0x2000035c 0x00000010 Zero RW 874 COMMON Obj/SYSTEM_dip_switch.o + 0x2000036c 0x00000018 Zero RW 907 COMMON Obj/SYSTEM_control_rly.o + 0x20000384 0x00000025 Zero RW 933 COMMON Obj/SYSTEM_eeprom.o + 0x200003a9 0x00000003 PAD + 0x200003ac 0x000002c8 Zero RW 983 COMMON FWlib_apt32f102_tkey_c_1_17.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 274 Obj/arch_crt0.o + 56 0 0 0 808 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 852 0 0 0 21127 Obj/FWlib_apt32f102_syscon.o + 832 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 410 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 44 11 0 134 11371 Obj/main.o + 348 0 0 0 15905 Obj/mcu_initial.o + 2414 0 0 60 14816 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1120 0 0 500 15118 Obj/SYSTEM_uart.o + 332 12 0 20 10909 Obj/SYSTEM_dip_switch.o + 1798 116 0 28 16406 Obj/SYSTEM_control_rly.o + 1158 273 0 37 12528 Obj/SYSTEM_eeprom.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 10860 412 104 779 260705 Object Totals + 6 0 3 5 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16345 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16345 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 22 0 0 0 0 _csky_case_sqi.o + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + ------------------------------------------------------------ + 3194 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 38 0 0 0 0 strncmp.o + ------------------------------------------------------------ + 274 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 19498 736 156 1496 285725 Grand Totals + 19498 736 156 1496 285725 Elf Image Totals + 19498 736 156 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 20234 ( 19.76kB) +Total RW Size (RW Data + ZI Data) 1652 ( 1.61kB) +Total ROM Size (Code + RO Data + RW Data) 20390 ( 19.91kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20241030.asm b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20241030.asm new file mode 100644 index 0000000..95adc40 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20241030.asm @@ -0,0 +1,13830 @@ + +.//Obj/TRF_TM_CR_V02_20241030.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 000043da .long 0x000043da + 8: 000043ca .long 0x000043ca + c: 00000184 .long 0x00000184 + 10: 000043d2 .long 0x000043d2 + 14: 00004390 .long 0x00004390 + 18: 00000184 .long 0x00000184 + 1c: 000043c2 .long 0x000043c2 + 20: 000043ba .long 0x000043ba + 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: 000043b2 .long 0x000043b2 + 44: 000043aa .long 0x000043aa + 48: 000043a2 .long 0x000043a2 + 4c: 0000439a .long 0x0000439a + 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: 00004392 .long 0x00004392 + 80: 000058b0 .long 0x000058b0 + 84: 00003a70 .long 0x00003a70 + 88: 00003b60 .long 0x00003b60 + 8c: 00003bc8 .long 0x00003bc8 + 90: 00003c30 .long 0x00003c30 + 94: 00000184 .long 0x00000184 + 98: 00003ddc .long 0x00003ddc + 9c: 00004148 .long 0x00004148 + a0: 00004178 .long 0x00004178 + a4: 00003e10 .long 0x00003e10 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00003e90 .long 0x00003e90 + b4: 00003f00 .long 0x00003f00 + b8: 00003f3c .long 0x00003f3c + bc: 00003f78 .long 0x00003f78 + c0: 00000184 .long 0x00000184 + c4: 000043ea .long 0x000043ea + c8: 00000184 .long 0x00000184 + cc: 0000400c .long 0x0000400c + d0: 000040f4 .long 0x000040f4 + d4: 000041a8 .long 0x000041a8 + d8: 000041f0 .long 0x000041f0 + dc: 0000424c .long 0x0000424c + e0: 000043e2 .long 0x000043e2 + e4: 00005320 .long 0x00005320 + e8: 000042ac .long 0x000042ac + ec: 00000184 .long 0x00000184 + f0: 000042e0 .long 0x000042e0 + f4: 0000432c .long 0x0000432c + 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, 0x2f14 // 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, 0x3824 // 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: 00002f14 .long 0x00002f14 + 198: 00000160 .long 0x00000160 + 19c: 00003824 .long 0x00003824 + 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, 0x5bac // 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: 00005bac .long 0x00005bac + 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, 0x5bac // 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, 0x5bac // 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: 00005bac .long 0x00005bac + 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, 0x5bdc // 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: 00005bdc .long 0x00005bdc + +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, 0x5bdc // 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: 00005bdc .long 0x00005bdc + 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, 0x5bdc // 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: 00005bdc .long 0x00005bdc + +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, 0x5bf0 // 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: 00005bf0 .long 0x00005bf0 + +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 <__cskyvprintfsnprintf>: + 1964: 1422 subi r14, r14, 8 + 1966: b861 st.w r3, (r14, 0x4) + 1968: b840 st.w r2, (r14, 0x0) + 196a: 14d0 push r15 + 196c: 1421 subi r14, r14, 4 + 196e: 9862 ld.w r3, (r14, 0x8) + 1970: b860 st.w r3, (r14, 0x0) + 1972: 9840 ld.w r2, (r14, 0x0) + 1974: 1b03 addi r3, r14, 12 + 1976: e0000026 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + 197a: 1401 addi r14, r14, 4 + 197c: d9ee2000 ld.w r15, (r14, 0x0) + 1980: 1403 addi r14, r14, 12 + 1982: 783c jmp r15 + +00001984 : + 1984: 14d3 push r4-r6, r15 + 1986: 6d4b mov r5, r2 + 1988: 9582 ld.w r4, (r5, 0x8) + 198a: 9241 ld.w r2, (r2, 0x4) + 198c: 610a subu r4, r2 + 198e: 3c40 cmpnei r4, 0 + 1990: 6d87 mov r6, r1 + 1992: 0c16 bf 0x19be // 19be + 1994: 6504 cmphs r1, r4 + 1996: 0802 bt 0x199a // 199a + 1998: 6d07 mov r4, r1 + 199a: 9560 ld.w r3, (r5, 0x0) + 199c: 3b40 cmpnei r3, 0 + 199e: 0c0d bf 0x19b8 // 19b8 + 19a0: 60c8 addu r3, r2 + 19a2: 6c43 mov r1, r0 + 19a4: 6c93 mov r2, r4 + 19a6: 6c0f mov r0, r3 + 19a8: e000007e bsr 0x1aa4 // 1aa4 <__memcpy_fast> + 19ac: 9500 ld.w r0, (r5, 0x0) + 19ae: 9521 ld.w r1, (r5, 0x4) + 19b0: 6010 addu r0, r4 + 19b2: 6004 addu r0, r1 + 19b4: 3200 movi r2, 0 + 19b6: a040 st.b r2, (r0, 0x0) + 19b8: 9561 ld.w r3, (r5, 0x4) + 19ba: 610c addu r4, r3 + 19bc: b581 st.w r4, (r5, 0x4) + 19be: 6c1b mov r0, r6 + 19c0: 1493 pop r4-r6, r15 + +000019c2 <__cskyvprintfvsnprintf>: + 19c2: 14d3 push r4-r6, r15 + 19c4: 1425 subi r14, r14, 20 + 19c6: 6d07 mov r4, r1 + 19c8: 6d43 mov r5, r0 + 19ca: 6c4b mov r1, r2 + 19cc: 1802 addi r0, r14, 8 + 19ce: 3200 movi r2, 0 + 19d0: 3c40 cmpnei r4, 0 + 19d2: b0a0 st.w r5, (r0, 0x0) + 19d4: b041 st.w r2, (r0, 0x4) + 19d6: 0c1c bf 0x1a0e // 1a0e <__cskyvprintfvsnprintf+0x4c> + 19d8: 5cc3 subi r6, r4, 1 + 19da: b0c2 st.w r6, (r0, 0x8) + 19dc: b800 st.w r0, (r14, 0x0) + 19de: 6c8f mov r2, r3 + 19e0: 100e lrw r0, 0x1984 // 1a18 <__cskyvprintfvsnprintf+0x56> + 19e2: b801 st.w r0, (r14, 0x4) + 19e4: 6c3b mov r0, r14 + 19e6: e00000ab bsr 0x1b3c // 1b3c <__v2_printf> + 19ea: 3d40 cmpnei r5, 0 + 19ec: 0c0f bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19ee: 3c40 cmpnei r4, 0 + 19f0: 0c0d bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f2: 38df btsti r0, 31 + 19f4: 080b bt 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f6: 3300 movi r3, 0 + 19f8: 2b00 subi r3, 1 + 19fa: 64d2 cmpne r4, r3 + 19fc: 0c0b bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 19fe: 6500 cmphs r0, r4 + 1a00: 0c09 bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 1a02: 6114 addu r4, r5 + 1a04: 2c00 subi r4, 1 + 1a06: 3100 movi r1, 0 + 1a08: a420 st.b r1, (r4, 0x0) + 1a0a: 1405 addi r14, r14, 20 + 1a0c: 1493 pop r4-r6, r15 + 1a0e: 3600 movi r6, 0 + 1a10: 07e5 br 0x19da // 19da <__cskyvprintfvsnprintf+0x18> + 1a12: 5d80 addu r4, r5, r0 + 1a14: 07f9 br 0x1a06 // 1a06 <__cskyvprintfvsnprintf+0x44> + 1a16: 0000 bkpt + 1a18: 00001984 .long 0x00001984 + +00001a1c <__memset_fast>: + 1a1c: 14c3 push r4-r6 + 1a1e: 7444 zextb r1, r1 + 1a20: 3a40 cmpnei r2, 0 + 1a22: 0c1f bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a24: 6d43 mov r5, r0 + 1a26: 6d03 mov r4, r0 + 1a28: 3603 movi r6, 3 + 1a2a: 6918 and r4, r6 + 1a2c: 3c40 cmpnei r4, 0 + 1a2e: 0c1a bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a30: a520 st.b r1, (r5, 0x0) + 1a32: 2a00 subi r2, 1 + 1a34: 3a40 cmpnei r2, 0 + 1a36: 0c15 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a38: 2500 addi r5, 1 + 1a3a: 6d17 mov r4, r5 + 1a3c: 3603 movi r6, 3 + 1a3e: 6918 and r4, r6 + 1a40: 3c40 cmpnei r4, 0 + 1a42: 0c10 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a44: a520 st.b r1, (r5, 0x0) + 1a46: 2a00 subi r2, 1 + 1a48: 3a40 cmpnei r2, 0 + 1a4a: 0c0b bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a4c: 2500 addi r5, 1 + 1a4e: 6d17 mov r4, r5 + 1a50: 3603 movi r6, 3 + 1a52: 6918 and r4, r6 + 1a54: 3c40 cmpnei r4, 0 + 1a56: 0c06 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a58: a520 st.b r1, (r5, 0x0) + 1a5a: 2a00 subi r2, 1 + 1a5c: 2500 addi r5, 1 + 1a5e: 0402 br 0x1a62 // 1a62 <__memset_fast+0x46> + 1a60: 1483 pop r4-r6 + 1a62: 4168 lsli r3, r1, 8 + 1a64: 6c4c or r1, r3 + 1a66: 4170 lsli r3, r1, 16 + 1a68: 6c4c or r1, r3 + 1a6a: 3a2f cmplti r2, 16 + 1a6c: 0809 bt 0x1a7e // 1a7e <__memset_fast+0x62> + 1a6e: b520 st.w r1, (r5, 0x0) + 1a70: b521 st.w r1, (r5, 0x4) + 1a72: b522 st.w r1, (r5, 0x8) + 1a74: b523 st.w r1, (r5, 0xc) + 1a76: 2a0f subi r2, 16 + 1a78: 250f addi r5, 16 + 1a7a: 3a2f cmplti r2, 16 + 1a7c: 0ff9 bf 0x1a6e // 1a6e <__memset_fast+0x52> + 1a7e: 3a23 cmplti r2, 4 + 1a80: 0806 bt 0x1a8c // 1a8c <__memset_fast+0x70> + 1a82: 2a03 subi r2, 4 + 1a84: b520 st.w r1, (r5, 0x0) + 1a86: 2503 addi r5, 4 + 1a88: 3a23 cmplti r2, 4 + 1a8a: 0ffc bf 0x1a82 // 1a82 <__memset_fast+0x66> + 1a8c: 3a40 cmpnei r2, 0 + 1a8e: 0fe9 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a90: 2a00 subi r2, 1 + 1a92: a520 st.b r1, (r5, 0x0) + 1a94: 3a40 cmpnei r2, 0 + 1a96: 0fe5 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a98: 2a00 subi r2, 1 + 1a9a: a521 st.b r1, (r5, 0x1) + 1a9c: 3a40 cmpnei r2, 0 + 1a9e: 0fe1 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1aa0: a522 st.b r1, (r5, 0x2) + 1aa2: 1483 pop r4-r6 + +00001aa4 <__memcpy_fast>: + 1aa4: 14c3 push r4-r6 + 1aa6: 6d83 mov r6, r0 + 1aa8: 6d07 mov r4, r1 + 1aaa: 6d18 or r4, r6 + 1aac: 3303 movi r3, 3 + 1aae: 690c and r4, r3 + 1ab0: 3c40 cmpnei r4, 0 + 1ab2: 0c0b bf 0x1ac8 // 1ac8 <__memcpy_fast+0x24> + 1ab4: 3a40 cmpnei r2, 0 + 1ab6: 0c08 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1ab8: 8160 ld.b r3, (r1, 0x0) + 1aba: 2100 addi r1, 1 + 1abc: 2a00 subi r2, 1 + 1abe: a660 st.b r3, (r6, 0x0) + 1ac0: 2600 addi r6, 1 + 1ac2: 3a40 cmpnei r2, 0 + 1ac4: 0bfa bt 0x1ab8 // 1ab8 <__memcpy_fast+0x14> + 1ac6: 1483 pop r4-r6 + 1ac8: 3a2f cmplti r2, 16 + 1aca: 080e bt 0x1ae6 // 1ae6 <__memcpy_fast+0x42> + 1acc: 91a0 ld.w r5, (r1, 0x0) + 1ace: 9161 ld.w r3, (r1, 0x4) + 1ad0: 9182 ld.w r4, (r1, 0x8) + 1ad2: b6a0 st.w r5, (r6, 0x0) + 1ad4: 91a3 ld.w r5, (r1, 0xc) + 1ad6: b661 st.w r3, (r6, 0x4) + 1ad8: b682 st.w r4, (r6, 0x8) + 1ada: b6a3 st.w r5, (r6, 0xc) + 1adc: 2a0f subi r2, 16 + 1ade: 210f addi r1, 16 + 1ae0: 260f addi r6, 16 + 1ae2: 3a2f cmplti r2, 16 + 1ae4: 0ff4 bf 0x1acc // 1acc <__memcpy_fast+0x28> + 1ae6: 3a23 cmplti r2, 4 + 1ae8: 0808 bt 0x1af8 // 1af8 <__memcpy_fast+0x54> + 1aea: 9160 ld.w r3, (r1, 0x0) + 1aec: 2a03 subi r2, 4 + 1aee: 2103 addi r1, 4 + 1af0: b660 st.w r3, (r6, 0x0) + 1af2: 2603 addi r6, 4 + 1af4: 3a23 cmplti r2, 4 + 1af6: 0ffa bf 0x1aea // 1aea <__memcpy_fast+0x46> + 1af8: 3a40 cmpnei r2, 0 + 1afa: 0fe6 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1afc: 8160 ld.b r3, (r1, 0x0) + 1afe: 2100 addi r1, 1 + 1b00: 2a00 subi r2, 1 + 1b02: a660 st.b r3, (r6, 0x0) + 1b04: 2600 addi r6, 1 + 1b06: 07f9 br 0x1af8 // 1af8 <__memcpy_fast+0x54> + +00001b08 : + 1b08: 14d4 push r4-r7, r15 + 1b0a: 3820 cmplti r0, 1 + 1b0c: 6d03 mov r4, r0 + 1b0e: 6d47 mov r5, r1 + 1b10: 6df7 mov r7, r13 + 1b12: 080d bt 0x1b2c // 1b2c + 1b14: 6d83 mov r6, r0 + 1b16: 3e30 cmplti r6, 17 + 1b18: 9700 ld.w r0, (r7, 0x0) + 1b1a: 0c0a bf 0x1b2e // 1b2e + 1b1c: 5c63 subi r3, r4, 1 + 1b1e: 4b24 lsri r1, r3, 4 + 1b20: 4164 lsli r3, r1, 4 + 1b22: 9040 ld.w r2, (r0, 0x0) + 1b24: 5c2d subu r1, r4, r3 + 1b26: 9081 ld.w r4, (r0, 0x4) + 1b28: 6c17 mov r0, r5 + 1b2a: 7bd1 jsr r4 + 1b2c: 1494 pop r4-r7, r15 + 1b2e: 9040 ld.w r2, (r0, 0x0) + 1b30: 9061 ld.w r3, (r0, 0x4) + 1b32: 3110 movi r1, 16 + 1b34: 6c17 mov r0, r5 + 1b36: 7bcd jsr r3 + 1b38: 2e0f subi r6, 16 + 1b3a: 07ee br 0x1b16 // 1b16 + +00001b3c <__v2_printf>: + 1b3c: 14d4 push r4-r7, r15 + 1b3e: 143c subi r14, r14, 112 + 1b40: b826 st.w r1, (r14, 0x18) + 1b42: 1912 addi r1, r14, 72 + 1b44: 1b21 addi r3, r14, 132 + 1b46: b810 st.w r0, (r14, 0x40) + 1b48: 2100 addi r1, 1 + 1b4a: 3000 movi r0, 0 + 1b4c: 6d4b mov r5, r2 + 1b4e: b871 st.w r3, (r14, 0x44) + 1b50: b80a st.w r0, (r14, 0x28) + 1b52: b809 st.w r0, (r14, 0x24) + 1b54: b82d st.w r1, (r14, 0x34) + 1b56: 9886 ld.w r4, (r14, 0x18) + 1b58: 3325 movi r3, 37 + 1b5a: 84c0 ld.b r6, (r4, 0x0) + 1b5c: 3e40 cmpnei r6, 0 + 1b5e: 0c03 bf 0x1b64 // 1b64 <__v2_printf+0x28> + 1b60: 64da cmpne r6, r3 + 1b62: 0845 bt 0x1bec // 1bec <__v2_printf+0xb0> + 1b64: 9846 ld.w r2, (r14, 0x18) + 1b66: 5cc9 subu r6, r4, r2 + 1b68: 3e40 cmpnei r6, 0 + 1b6a: 0c0a bf 0x1b7e // 1b7e <__v2_printf+0x42> + 1b6c: 9870 ld.w r3, (r14, 0x40) + 1b6e: 9340 ld.w r2, (r3, 0x0) + 1b70: 6c5b mov r1, r6 + 1b72: 9361 ld.w r3, (r3, 0x4) + 1b74: 9806 ld.w r0, (r14, 0x18) + 1b76: 7bcd jsr r3 + 1b78: 9809 ld.w r0, (r14, 0x24) + 1b7a: 6018 addu r0, r6 + 1b7c: b809 st.w r0, (r14, 0x24) + 1b7e: 8420 ld.b r1, (r4, 0x0) + 1b80: 3940 cmpnei r1, 0 + 1b82: 0803 bt 0x1b88 // 1b88 <__v2_printf+0x4c> + 1b84: e8000367 br 0x2252 // 2252 <__v2_printf+0x716> + 1b88: 3637 movi r6, 55 + 1b8a: 1a01 addi r2, r14, 4 + 1b8c: 3700 movi r7, 0 + 1b8e: 6188 addu r6, r2 + 1b90: a6e0 st.b r7, (r6, 0x0) + 1b92: 3300 movi r3, 0 + 1b94: 3600 movi r6, 0 + 1b96: 2400 addi r4, 1 + 1b98: 3000 movi r0, 0 + 1b9a: 3100 movi r1, 0 + 1b9c: 2e00 subi r6, 1 + 1b9e: b867 st.w r3, (r14, 0x1c) + 1ba0: 3700 movi r7, 0 + 1ba2: 5c42 addi r2, r4, 1 + 1ba4: b846 st.w r2, (r14, 0x18) + 1ba6: 8480 ld.b r4, (r4, 0x0) + 1ba8: 3364 movi r3, 100 + 1baa: 64d2 cmpne r4, r3 + 1bac: 0d90 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1bae: 650d cmplt r3, r4 + 1bb0: 084e bt 0x1c4c // 1c4c <__v2_printf+0x110> + 1bb2: 322e movi r2, 46 + 1bb4: 6492 cmpne r4, r2 + 1bb6: 0d41 bf 0x1e38 // 1e38 <__v2_printf+0x2fc> + 1bb8: 6509 cmplt r2, r4 + 1bba: 0829 bt 0x1c0c // 1c0c <__v2_printf+0xd0> + 1bbc: 332a movi r3, 42 + 1bbe: 64d2 cmpne r4, r3 + 1bc0: 0d31 bf 0x1e22 // 1e22 <__v2_printf+0x2e6> + 1bc2: 650d cmplt r3, r4 + 1bc4: 081c bt 0x1bfc // 1bfc <__v2_printf+0xc0> + 1bc6: 3220 movi r2, 32 + 1bc8: 6492 cmpne r4, r2 + 1bca: 0d25 bf 0x1e14 // 1e14 <__v2_printf+0x2d8> + 1bcc: 3323 movi r3, 35 + 1bce: 64d2 cmpne r4, r3 + 1bd0: 0d27 bf 0x1e1e // 1e1e <__v2_printf+0x2e2> + 1bd2: 3c40 cmpnei r4, 0 + 1bd4: 0803 bt 0x1bda // 1bda <__v2_printf+0x9e> + 1bd6: e800033e br 0x2252 // 2252 <__v2_printf+0x716> + 1bda: 1e12 addi r6, r14, 72 + 1bdc: 3037 movi r0, 55 + 1bde: 1a01 addi r2, r14, 4 + 1be0: a680 st.b r4, (r6, 0x0) + 1be2: 6008 addu r0, r2 + 1be4: 3400 movi r4, 0 + 1be6: a080 st.b r4, (r0, 0x0) + 1be8: b8a5 st.w r5, (r14, 0x14) + 1bea: 042c br 0x1c42 // 1c42 <__v2_printf+0x106> + 1bec: 2400 addi r4, 1 + 1bee: 07b6 br 0x1b5a // 1b5a <__v2_printf+0x1e> + 1bf0: 3001 movi r0, 1 + 1bf2: 312b movi r1, 43 + 1bf4: 9886 ld.w r4, (r14, 0x18) + 1bf6: 07d6 br 0x1ba2 // 1ba2 <__v2_printf+0x66> + 1bf8: 6d4f mov r5, r3 + 1bfa: 07fd br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1bfc: 322b movi r2, 43 + 1bfe: 6492 cmpne r4, r2 + 1c00: 0ff8 bf 0x1bf0 // 1bf0 <__v2_printf+0xb4> + 1c02: 332d movi r3, 45 + 1c04: 64d2 cmpne r4, r3 + 1c06: 0be6 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c08: 3fa2 bseti r7, 2 + 1c0a: 07f5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c0c: 3339 movi r3, 57 + 1c0e: 650d cmplt r3, r4 + 1c10: 0809 bt 0x1c22 // 1c22 <__v2_printf+0xe6> + 1c12: 3231 movi r2, 49 + 1c14: 6491 cmplt r4, r2 + 1c16: 0d34 bf 0x1e7e // 1e7e <__v2_printf+0x342> + 1c18: 3330 movi r3, 48 + 1c1a: 64d2 cmpne r4, r3 + 1c1c: 0bdb bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c1e: 3fa7 bseti r7, 7 + 1c20: 07ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c22: 3258 movi r2, 88 + 1c24: 6492 cmpne r4, r2 + 1c26: 0cd3 bf 0x1dcc // 1dcc <__v2_printf+0x290> + 1c28: 3063 movi r0, 99 + 1c2a: 6412 cmpne r4, r0 + 1c2c: 0bd3 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c2e: 3337 movi r3, 55 + 1c30: 1a01 addi r2, r14, 4 + 1c32: 5d2e addi r1, r5, 4 + 1c34: 85c0 ld.b r6, (r5, 0x0) + 1c36: 3400 movi r4, 0 + 1c38: 1d12 addi r5, r14, 72 + 1c3a: 60c8 addu r3, r2 + 1c3c: b825 st.w r1, (r14, 0x14) + 1c3e: a5c0 st.b r6, (r5, 0x0) + 1c40: a380 st.b r4, (r3, 0x0) + 1c42: 3601 movi r6, 1 + 1c44: 3500 movi r5, 0 + 1c46: 1c12 addi r4, r14, 72 + 1c48: e8000295 br 0x2172 // 2172 <__v2_printf+0x636> + 1c4c: 336d movi r3, 109 + 1c4e: 64d2 cmpne r4, r3 + 1c50: 0d2d bf 0x1eaa // 1eaa <__v2_printf+0x36e> + 1c52: 650d cmplt r3, r4 + 1c54: 0883 bt 0x1d5a // 1d5a <__v2_printf+0x21e> + 1c56: 3268 movi r2, 104 + 1c58: 6492 cmpne r4, r2 + 1c5a: 0d24 bf 0x1ea2 // 1ea2 <__v2_printf+0x366> + 1c5c: 6509 cmplt r2, r4 + 1c5e: 086f bt 0x1d3c // 1d3c <__v2_printf+0x200> + 1c60: 3366 movi r3, 102 + 1c62: 64d1 cmplt r4, r3 + 1c64: 0bb7 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c66: 3840 cmpnei r0, 0 + 1c68: 0c05 bf 0x1c72 // 1c72 <__v2_printf+0x136> + 1c6a: 3037 movi r0, 55 + 1c6c: 1a01 addi r2, r14, 4 + 1c6e: 6008 addu r0, r2 + 1c70: a020 st.b r1, (r0, 0x0) + 1c72: 5d3e addi r1, r5, 8 + 1c74: b825 st.w r1, (r14, 0x14) + 1c76: 9500 ld.w r0, (r5, 0x0) + 1c78: 9521 ld.w r1, (r5, 0x4) + 1c7a: 98a7 ld.w r5, (r14, 0x1c) + 1c7c: 3d40 cmpnei r5, 0 + 1c7e: 0803 bt 0x1c84 // 1c84 <__v2_printf+0x148> + 1c80: 3301 movi r3, 1 + 1c82: b867 st.w r3, (r14, 0x1c) + 1c84: 3200 movi r2, 0 + 1c86: 2a00 subi r2, 1 + 1c88: 649a cmpne r6, r2 + 1c8a: 0d58 bf 0x1f3a // 1f3a <__v2_printf+0x3fe> + 1c8c: 6d5b mov r5, r6 + 1c8e: 9867 ld.w r3, (r14, 0x1c) + 1c90: b860 st.w r3, (r14, 0x0) + 1c92: b8a1 st.w r5, (r14, 0x4) + 1c94: 3328 movi r3, 40 + 1c96: 1a12 addi r2, r14, 72 + 1c98: e000069d bsr 0x29d2 // 29d2 <__GI___dtostr> + 1c9c: 3100 movi r1, 0 + 1c9e: 2900 subi r1, 1 + 1ca0: 645a cmpne r6, r1 + 1ca2: b808 st.w r0, (r14, 0x20) + 1ca4: 0c1a bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1ca6: 312e movi r1, 46 + 1ca8: 980d ld.w r0, (r14, 0x34) + 1caa: e00008c9 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cae: 3840 cmpnei r0, 0 + 1cb0: 98c8 ld.w r6, (r14, 0x20) + 1cb2: 0d48 bf 0x1f42 // 1f42 <__v2_printf+0x406> + 1cb4: 3d40 cmpnei r5, 0 + 1cb6: 0805 bt 0x1cc0 // 1cc0 <__v2_printf+0x184> + 1cb8: 3101 movi r1, 1 + 1cba: 685c and r1, r7 + 1cbc: 3940 cmpnei r1, 0 + 1cbe: 0d40 bf 0x1f3e // 1f3e <__v2_printf+0x402> + 1cc0: 58c2 addi r6, r0, 1 + 1cc2: 2500 addi r5, 1 + 1cc4: 5d59 subu r2, r5, r6 + 1cc6: 6080 addu r2, r0 + 1cc8: 3a20 cmplti r2, 1 + 1cca: 0805 bt 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1ccc: 2600 addi r6, 1 + 1cce: 8660 ld.b r3, (r6, 0x0) + 1cd0: 3b40 cmpnei r3, 0 + 1cd2: 0bf9 bt 0x1cc4 // 1cc4 <__v2_printf+0x188> + 1cd4: 3500 movi r5, 0 + 1cd6: a6a0 st.b r5, (r6, 0x0) + 1cd8: 3067 movi r0, 103 + 1cda: 6412 cmpne r4, r0 + 1cdc: 0822 bt 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cde: 312e movi r1, 46 + 1ce0: 1812 addi r0, r14, 72 + 1ce2: e00008ad bsr 0x2e3c // 2e3c <__GI_strchr> + 1ce6: 3840 cmpnei r0, 0 + 1ce8: 6d03 mov r4, r0 + 1cea: 0c1b bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cec: 3165 movi r1, 101 + 1cee: e00008a7 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cf2: 6c43 mov r1, r0 + 1cf4: 84c0 ld.b r6, (r4, 0x0) + 1cf6: 3e40 cmpnei r6, 0 + 1cf8: 0930 bt 0x1f58 // 1f58 <__v2_printf+0x41c> + 1cfa: 3940 cmpnei r1, 0 + 1cfc: 0c02 bf 0x1d00 // 1d00 <__v2_printf+0x1c4> + 1cfe: 6d07 mov r4, r1 + 1d00: 3630 movi r6, 48 + 1d02: 5c63 subi r3, r4, 1 + 1d04: 8340 ld.b r2, (r3, 0x0) + 1d06: 658a cmpne r2, r6 + 1d08: 0d2a bf 0x1f5c // 1f5c <__v2_printf+0x420> + 1d0a: 352e movi r5, 46 + 1d0c: 654a cmpne r2, r5 + 1d0e: 0802 bt 0x1d12 // 1d12 <__v2_printf+0x1d6> + 1d10: 6d0f mov r4, r3 + 1d12: 3000 movi r0, 0 + 1d14: 3940 cmpnei r1, 0 + 1d16: a400 st.b r0, (r4, 0x0) + 1d18: 0c04 bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1d1a: 6c13 mov r0, r4 + 1d1c: e0000838 bsr 0x2d8c // 2d8c <__strcpy_fast> + 1d20: 1912 addi r1, r14, 72 + 1d22: 81c0 ld.b r6, (r1, 0x0) + 1d24: 332d movi r3, 45 + 1d26: 64da cmpne r6, r3 + 1d28: 0c02 bf 0x1d2c // 1d2c <__v2_printf+0x1f0> + 1d2a: 05ef br 0x2108 // 2108 <__v2_printf+0x5cc> + 1d2c: 3437 movi r4, 55 + 1d2e: 1801 addi r0, r14, 4 + 1d30: 352d movi r5, 45 + 1d32: 6100 addu r4, r0 + 1d34: a4a0 st.b r5, (r4, 0x0) + 1d36: 1912 addi r1, r14, 72 + 1d38: 5982 addi r4, r1, 1 + 1d3a: 05ec br 0x2112 // 2112 <__v2_printf+0x5d6> + 1d3c: 3369 movi r3, 105 + 1d3e: 64d2 cmpne r4, r3 + 1d40: 0cc6 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1d42: 326c movi r2, 108 + 1d44: 6492 cmpne r4, r2 + 1d46: 0b46 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d48: 9866 ld.w r3, (r14, 0x18) + 1d4a: 8340 ld.b r2, (r3, 0x0) + 1d4c: 650a cmpne r2, r4 + 1d4e: 08ac bt 0x1ea6 // 1ea6 <__v2_printf+0x36a> + 1d50: 9886 ld.w r4, (r14, 0x18) + 1d52: 2400 addi r4, 1 + 1d54: b886 st.w r4, (r14, 0x18) + 1d56: 3fa5 bseti r7, 5 + 1d58: 074e br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1d5a: 3371 movi r3, 113 + 1d5c: 64d2 cmpne r4, r3 + 1d5e: 0ffc bf 0x1d56 // 1d56 <__v2_printf+0x21a> + 1d60: 650d cmplt r3, r4 + 1d62: 081a bt 0x1d96 // 1d96 <__v2_printf+0x25a> + 1d64: 306f movi r0, 111 + 1d66: 6412 cmpne r4, r0 + 1d68: 0cfc bf 0x1f60 // 1f60 <__v2_printf+0x424> + 1d6a: 3170 movi r1, 112 + 1d6c: 6452 cmpne r4, r1 + 1d6e: 0b32 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d70: 5d4e addi r2, r5, 4 + 1d72: 3400 movi r4, 0 + 1d74: 95a0 ld.w r5, (r5, 0x0) + 1d76: b845 st.w r2, (r14, 0x14) + 1d78: 1901 addi r1, r14, 4 + 1d7a: 3239 movi r2, 57 + 1d7c: b8a3 st.w r5, (r14, 0xc) + 1d7e: b884 st.w r4, (r14, 0x10) + 1d80: 3330 movi r3, 48 + 1d82: 180f addi r0, r14, 60 + 1d84: 3578 movi r5, 120 + 1d86: 6084 addu r2, r1 + 1d88: 0195 lrw r4, 0x60da // 20b0 <__v2_printf+0x574> + 1d8a: 3fa1 bseti r7, 1 + 1d8c: a060 st.b r3, (r0, 0x0) + 1d8e: a2a0 st.b r5, (r2, 0x0) + 1d90: b88a st.w r4, (r14, 0x28) + 1d92: 3402 movi r4, 2 + 1d94: 04f1 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1d96: 3275 movi r2, 117 + 1d98: 6492 cmpne r4, r2 + 1d9a: 0d28 bf 0x1fea // 1fea <__v2_printf+0x4ae> + 1d9c: 3378 movi r3, 120 + 1d9e: 64d2 cmpne r4, r3 + 1da0: 0d44 bf 0x2028 // 2028 <__v2_printf+0x4ec> + 1da2: 3173 movi r1, 115 + 1da4: 6452 cmpne r4, r1 + 1da6: 0b16 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1da8: 3200 movi r2, 0 + 1daa: 3037 movi r0, 55 + 1dac: 1901 addi r1, r14, 4 + 1dae: 2a00 subi r2, 1 + 1db0: 5d6e addi r3, r5, 4 + 1db2: 9580 ld.w r4, (r5, 0x0) + 1db4: 6004 addu r0, r1 + 1db6: 3500 movi r5, 0 + 1db8: 649a cmpne r6, r2 + 1dba: b865 st.w r3, (r14, 0x14) + 1dbc: a0a0 st.b r5, (r0, 0x0) + 1dbe: 090b bt 0x1fd4 // 1fd4 <__v2_printf+0x498> + 1dc0: 6cd3 mov r3, r4 + 1dc2: 83c0 ld.b r6, (r3, 0x0) + 1dc4: 3e40 cmpnei r6, 0 + 1dc6: 0910 bt 0x1fe6 // 1fe6 <__v2_printf+0x4aa> + 1dc8: 5bd1 subu r6, r3, r4 + 1dca: 047f br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1dcc: 3840 cmpnei r0, 0 + 1dce: 0c05 bf 0x1dd8 // 1dd8 <__v2_printf+0x29c> + 1dd0: 3037 movi r0, 55 + 1dd2: 1b01 addi r3, r14, 4 + 1dd4: 600c addu r0, r3 + 1dd6: a020 st.b r1, (r0, 0x0) + 1dd8: 0228 lrw r1, 0x60c9 // 20b4 <__v2_printf+0x578> + 1dda: 3020 movi r0, 32 + 1ddc: 681c and r0, r7 + 1dde: 3840 cmpnei r0, 0 + 1de0: b82a st.w r1, (r14, 0x28) + 1de2: 0d2b bf 0x2038 // 2038 <__v2_printf+0x4fc> + 1de4: 5d5e addi r2, r5, 8 + 1de6: b845 st.w r2, (r14, 0x14) + 1de8: 9520 ld.w r1, (r5, 0x0) + 1dea: 9541 ld.w r2, (r5, 0x4) + 1dec: b823 st.w r1, (r14, 0xc) + 1dee: b844 st.w r2, (r14, 0x10) + 1df0: 3001 movi r0, 1 + 1df2: 681c and r0, r7 + 1df4: 3840 cmpnei r0, 0 + 1df6: 0fce bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1df8: 98a3 ld.w r5, (r14, 0xc) + 1dfa: 9864 ld.w r3, (r14, 0x10) + 1dfc: 6d4c or r5, r3 + 1dfe: 3d40 cmpnei r5, 0 + 1e00: 0fc9 bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1e02: 3039 movi r0, 57 + 1e04: 1d01 addi r5, r14, 4 + 1e06: 3130 movi r1, 48 + 1e08: 1a0f addi r2, r14, 60 + 1e0a: 6014 addu r0, r5 + 1e0c: a220 st.b r1, (r2, 0x0) + 1e0e: a080 st.b r4, (r0, 0x0) + 1e10: 3fa1 bseti r7, 1 + 1e12: 07c0 br 0x1d92 // 1d92 <__v2_printf+0x256> + 1e14: 3940 cmpnei r1, 0 + 1e16: 0aef bt 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e18: 3001 movi r0, 1 + 1e1a: 3120 movi r1, 32 + 1e1c: 06ec br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e1e: 3fa0 bseti r7, 0 + 1e20: 06ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e22: 9580 ld.w r4, (r5, 0x0) + 1e24: 3cdf btsti r4, 31 + 1e26: 5d6e addi r3, r5, 4 + 1e28: b887 st.w r4, (r14, 0x1c) + 1e2a: 0ee7 bf 0x1bf8 // 1bf8 <__v2_printf+0xbc> + 1e2c: 9847 ld.w r2, (r14, 0x1c) + 1e2e: 3500 movi r5, 0 + 1e30: 614a subu r5, r2 + 1e32: b8a7 st.w r5, (r14, 0x1c) + 1e34: 6d4f mov r5, r3 + 1e36: 06e9 br 0x1c08 // 1c08 <__v2_printf+0xcc> + 1e38: 98c6 ld.w r6, (r14, 0x18) + 1e3a: 8680 ld.b r4, (r6, 0x0) + 1e3c: 322a movi r2, 42 + 1e3e: 9866 ld.w r3, (r14, 0x18) + 1e40: 6492 cmpne r4, r2 + 1e42: 2300 addi r3, 1 + 1e44: 0c0b bf 0x1e5a // 1e5a <__v2_printf+0x31e> + 1e46: b865 st.w r3, (r14, 0x14) + 1e48: 3600 movi r6, 0 + 1e4a: 3300 movi r3, 0 + 1e4c: 2b2f subi r3, 48 + 1e4e: 60d0 addu r3, r4 + 1e50: 3b09 cmphsi r3, 10 + 1e52: 9845 ld.w r2, (r14, 0x14) + 1e54: 0c0c bf 0x1e6c // 1e6c <__v2_printf+0x330> + 1e56: b846 st.w r2, (r14, 0x18) + 1e58: 06a8 br 0x1ba8 // 1ba8 <__v2_printf+0x6c> + 1e5a: 95c0 ld.w r6, (r5, 0x0) + 1e5c: 3edf btsti r6, 31 + 1e5e: 5d8e addi r4, r5, 4 + 1e60: 0c03 bf 0x1e66 // 1e66 <__v2_printf+0x32a> + 1e62: 3600 movi r6, 0 + 1e64: 2e00 subi r6, 1 + 1e66: 6d53 mov r5, r4 + 1e68: b866 st.w r3, (r14, 0x18) + 1e6a: 06c5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e6c: 340a movi r4, 10 + 1e6e: 7d18 mult r4, r6 + 1e70: 9845 ld.w r2, (r14, 0x14) + 1e72: 6d8f mov r6, r3 + 1e74: 6190 addu r6, r4 + 1e76: 8280 ld.b r4, (r2, 0x0) + 1e78: 2200 addi r2, 1 + 1e7a: b845 st.w r2, (r14, 0x14) + 1e7c: 07e7 br 0x1e4a // 1e4a <__v2_printf+0x30e> + 1e7e: 3200 movi r2, 0 + 1e80: b847 st.w r2, (r14, 0x1c) + 1e82: 9867 ld.w r3, (r14, 0x1c) + 1e84: 320a movi r2, 10 + 1e86: 7cc8 mult r3, r2 + 1e88: 2c2f subi r4, 48 + 1e8a: 610c addu r4, r3 + 1e8c: b887 st.w r4, (r14, 0x1c) + 1e8e: 3300 movi r3, 0 + 1e90: 9886 ld.w r4, (r14, 0x18) + 1e92: 5c42 addi r2, r4, 1 + 1e94: 2b2f subi r3, 48 + 1e96: 8480 ld.b r4, (r4, 0x0) + 1e98: 60d0 addu r3, r4 + 1e9a: 3b09 cmphsi r3, 10 + 1e9c: b846 st.w r2, (r14, 0x18) + 1e9e: 0ff2 bf 0x1e82 // 1e82 <__v2_printf+0x346> + 1ea0: 07db br 0x1e56 // 1e56 <__v2_printf+0x31a> + 1ea2: 3fa6 bseti r7, 6 + 1ea4: 06a8 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1ea6: 3fa4 bseti r7, 4 + 1ea8: 06a6 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1eaa: 3840 cmpnei r0, 0 + 1eac: 0c05 bf 0x1eb6 // 1eb6 <__v2_printf+0x37a> + 1eae: 3637 movi r6, 55 + 1eb0: 1b01 addi r3, r14, 4 + 1eb2: 618c addu r6, r3 + 1eb4: a620 st.b r1, (r6, 0x0) + 1eb6: 033e lrw r1, 0x20000768 // 20b8 <__v2_printf+0x57c> + 1eb8: 9100 ld.w r0, (r1, 0x0) + 1eba: e00007cb bsr 0x2e50 // 2e50 <__GI_strerror> + 1ebe: 6d03 mov r4, r0 + 1ec0: e000073c bsr 0x2d38 // 2d38 <__strlen_fast> + 1ec4: 6d83 mov r6, r0 + 1ec6: b8a5 st.w r5, (r14, 0x14) + 1ec8: 3500 movi r5, 0 + 1eca: 0554 br 0x2172 // 2172 <__v2_printf+0x636> + 1ecc: 3840 cmpnei r0, 0 + 1ece: 0c05 bf 0x1ed8 // 1ed8 <__v2_printf+0x39c> + 1ed0: 3037 movi r0, 55 + 1ed2: 1a01 addi r2, r14, 4 + 1ed4: 6008 addu r0, r2 + 1ed6: a020 st.b r1, (r0, 0x0) + 1ed8: 3420 movi r4, 32 + 1eda: 691c and r4, r7 + 1edc: 3c40 cmpnei r4, 0 + 1ede: 0c1a bf 0x1f12 // 1f12 <__v2_printf+0x3d6> + 1ee0: 5d7e addi r3, r5, 8 + 1ee2: 9520 ld.w r1, (r5, 0x0) + 1ee4: 9541 ld.w r2, (r5, 0x4) + 1ee6: b865 st.w r3, (r14, 0x14) + 1ee8: b823 st.w r1, (r14, 0xc) + 1eea: b844 st.w r2, (r14, 0x10) + 1eec: 9804 ld.w r0, (r14, 0x10) + 1eee: 38df btsti r0, 31 + 1ef0: 0c0f bf 0x1f0e // 1f0e <__v2_printf+0x3d2> + 1ef2: 9883 ld.w r4, (r14, 0xc) + 1ef4: 98a4 ld.w r5, (r14, 0x10) + 1ef6: 3200 movi r2, 0 + 1ef8: 3300 movi r3, 0 + 1efa: 6488 cmphs r2, r2 + 1efc: 6093 subc r2, r4 + 1efe: 60d7 subc r3, r5 + 1f00: b843 st.w r2, (r14, 0xc) + 1f02: b864 st.w r3, (r14, 0x10) + 1f04: 3237 movi r2, 55 + 1f06: 1b01 addi r3, r14, 4 + 1f08: 352d movi r5, 45 + 1f0a: 608c addu r2, r3 + 1f0c: a2a0 st.b r5, (r2, 0x0) + 1f0e: 3401 movi r4, 1 + 1f10: 0438 br 0x1f80 // 1f80 <__v2_printf+0x444> + 1f12: 3310 movi r3, 16 + 1f14: 68dc and r3, r7 + 1f16: 3b40 cmpnei r3, 0 + 1f18: 0c08 bf 0x1f28 // 1f28 <__v2_printf+0x3ec> + 1f1a: 5d4e addi r2, r5, 4 + 1f1c: b845 st.w r2, (r14, 0x14) + 1f1e: 95a0 ld.w r5, (r5, 0x0) + 1f20: 559f asri r4, r5, 31 + 1f22: b8a3 st.w r5, (r14, 0xc) + 1f24: b884 st.w r4, (r14, 0x10) + 1f26: 07e3 br 0x1eec // 1eec <__v2_printf+0x3b0> + 1f28: 3140 movi r1, 64 + 1f2a: 685c and r1, r7 + 1f2c: 5d0e addi r0, r5, 4 + 1f2e: 3940 cmpnei r1, 0 + 1f30: 95a0 ld.w r5, (r5, 0x0) + 1f32: b805 st.w r0, (r14, 0x14) + 1f34: 0ff6 bf 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f36: 7557 sexth r5, r5 + 1f38: 07f4 br 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f3a: 3506 movi r5, 6 + 1f3c: 06a9 br 0x1c8e // 1c8e <__v2_printf+0x152> + 1f3e: 6d83 mov r6, r0 + 1f40: 06ca br 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1f42: 3201 movi r2, 1 + 1f44: 689c and r2, r7 + 1f46: 3a40 cmpnei r2, 0 + 1f48: 0ec8 bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f4a: 1d12 addi r5, r14, 72 + 1f4c: 6158 addu r5, r6 + 1f4e: 332e movi r3, 46 + 1f50: 3000 movi r0, 0 + 1f52: a560 st.b r3, (r5, 0x0) + 1f54: a501 st.b r0, (r5, 0x1) + 1f56: 06c1 br 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f58: 2400 addi r4, 1 + 1f5a: 06cd br 0x1cf4 // 1cf4 <__v2_printf+0x1b8> + 1f5c: 6d0f mov r4, r3 + 1f5e: 06d2 br 0x1d02 // 1d02 <__v2_printf+0x1c6> + 1f60: 3320 movi r3, 32 + 1f62: 68dc and r3, r7 + 1f64: 3b40 cmpnei r3, 0 + 1f66: 0c24 bf 0x1fae // 1fae <__v2_printf+0x472> + 1f68: 5d7e addi r3, r5, 8 + 1f6a: 9500 ld.w r0, (r5, 0x0) + 1f6c: 9521 ld.w r1, (r5, 0x4) + 1f6e: b865 st.w r3, (r14, 0x14) + 1f70: b803 st.w r0, (r14, 0xc) + 1f72: b824 st.w r1, (r14, 0x10) + 1f74: 3400 movi r4, 0 + 1f76: 3537 movi r5, 55 + 1f78: 1801 addi r0, r14, 4 + 1f7a: 3200 movi r2, 0 + 1f7c: 6140 addu r5, r0 + 1f7e: a540 st.b r2, (r5, 0x0) + 1f80: 3100 movi r1, 0 + 1f82: 2900 subi r1, 1 + 1f84: 9803 ld.w r0, (r14, 0xc) + 1f86: 98a4 ld.w r5, (r14, 0x10) + 1f88: 645a cmpne r6, r1 + 1f8a: 6c14 or r0, r5 + 1f8c: 0cc8 bf 0x211c // 211c <__v2_printf+0x5e0> + 1f8e: 6c9f mov r2, r7 + 1f90: 3a87 bclri r2, 7 + 1f92: 3840 cmpnei r0, 0 + 1f94: b848 st.w r2, (r14, 0x20) + 1f96: 08c6 bt 0x2122 // 2122 <__v2_printf+0x5e6> + 1f98: 3e40 cmpnei r6, 0 + 1f9a: 0cac bf 0x20f2 // 20f2 <__v2_printf+0x5b6> + 1f9c: 3c41 cmpnei r4, 1 + 1f9e: 0c68 bf 0x206e // 206e <__v2_printf+0x532> + 1fa0: 3c42 cmpnei r4, 2 + 1fa2: 0c8d bf 0x20bc // 20bc <__v2_printf+0x580> + 1fa4: 3300 movi r3, 0 + 1fa6: 3400 movi r4, 0 + 1fa8: b863 st.w r3, (r14, 0xc) + 1faa: b884 st.w r4, (r14, 0x10) + 1fac: 04bf br 0x212a // 212a <__v2_printf+0x5ee> + 1fae: 3010 movi r0, 16 + 1fb0: 681c and r0, r7 + 1fb2: 3840 cmpnei r0, 0 + 1fb4: 0c05 bf 0x1fbe // 1fbe <__v2_printf+0x482> + 1fb6: 5d8e addi r4, r5, 4 + 1fb8: b885 st.w r4, (r14, 0x14) + 1fba: 95a0 ld.w r5, (r5, 0x0) + 1fbc: 0408 br 0x1fcc // 1fcc <__v2_printf+0x490> + 1fbe: 3240 movi r2, 64 + 1fc0: 689c and r2, r7 + 1fc2: 5d2e addi r1, r5, 4 + 1fc4: 3a40 cmpnei r2, 0 + 1fc6: b825 st.w r1, (r14, 0x14) + 1fc8: 0ff9 bf 0x1fba // 1fba <__v2_printf+0x47e> + 1fca: 8da0 ld.h r5, (r5, 0x0) + 1fcc: 3400 movi r4, 0 + 1fce: b8a3 st.w r5, (r14, 0xc) + 1fd0: b884 st.w r4, (r14, 0x10) + 1fd2: 07d2 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1fd4: 5cb8 addu r5, r4, r6 + 1fd6: 6cd3 mov r3, r4 + 1fd8: 654e cmpne r3, r5 + 1fda: 0f77 bf 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1fdc: 8300 ld.b r0, (r3, 0x0) + 1fde: 3840 cmpnei r0, 0 + 1fe0: 0ef4 bf 0x1dc8 // 1dc8 <__v2_printf+0x28c> + 1fe2: 2300 addi r3, 1 + 1fe4: 07fa br 0x1fd8 // 1fd8 <__v2_printf+0x49c> + 1fe6: 2300 addi r3, 1 + 1fe8: 06ed br 0x1dc2 // 1dc2 <__v2_printf+0x286> + 1fea: 3420 movi r4, 32 + 1fec: 691c and r4, r7 + 1fee: 3c40 cmpnei r4, 0 + 1ff0: 0c09 bf 0x2002 // 2002 <__v2_printf+0x4c6> + 1ff2: 5d7e addi r3, r5, 8 + 1ff4: 9520 ld.w r1, (r5, 0x0) + 1ff6: 9541 ld.w r2, (r5, 0x4) + 1ff8: b865 st.w r3, (r14, 0x14) + 1ffa: b823 st.w r1, (r14, 0xc) + 1ffc: b844 st.w r2, (r14, 0x10) + 1ffe: 3401 movi r4, 1 + 2000: 07bb br 0x1f76 // 1f76 <__v2_printf+0x43a> + 2002: 3310 movi r3, 16 + 2004: 68dc and r3, r7 + 2006: 3b40 cmpnei r3, 0 + 2008: 0c05 bf 0x2012 // 2012 <__v2_printf+0x4d6> + 200a: 5d0e addi r0, r5, 4 + 200c: b805 st.w r0, (r14, 0x14) + 200e: 95a0 ld.w r5, (r5, 0x0) + 2010: 0408 br 0x2020 // 2020 <__v2_printf+0x4e4> + 2012: 3140 movi r1, 64 + 2014: 685c and r1, r7 + 2016: 5d4e addi r2, r5, 4 + 2018: 3940 cmpnei r1, 0 + 201a: b845 st.w r2, (r14, 0x14) + 201c: 0ff9 bf 0x200e // 200e <__v2_printf+0x4d2> + 201e: 8da0 ld.h r5, (r5, 0x0) + 2020: 3400 movi r4, 0 + 2022: b8a3 st.w r5, (r14, 0xc) + 2024: b884 st.w r4, (r14, 0x10) + 2026: 07ec br 0x1ffe // 1ffe <__v2_printf+0x4c2> + 2028: 3840 cmpnei r0, 0 + 202a: 0c05 bf 0x2034 // 2034 <__v2_printf+0x4f8> + 202c: 3337 movi r3, 55 + 202e: 1a01 addi r2, r14, 4 + 2030: 60c8 addu r3, r2 + 2032: a320 st.b r1, (r3, 0x0) + 2034: 103f lrw r1, 0x60da // 20b0 <__v2_printf+0x574> + 2036: 06d2 br 0x1dda // 1dda <__v2_printf+0x29e> + 2038: 3310 movi r3, 16 + 203a: 68dc and r3, r7 + 203c: 3b40 cmpnei r3, 0 + 203e: 0c05 bf 0x2048 // 2048 <__v2_printf+0x50c> + 2040: 5d0e addi r0, r5, 4 + 2042: b805 st.w r0, (r14, 0x14) + 2044: 95a0 ld.w r5, (r5, 0x0) + 2046: 0408 br 0x2056 // 2056 <__v2_printf+0x51a> + 2048: 3240 movi r2, 64 + 204a: 689c and r2, r7 + 204c: 5d2e addi r1, r5, 4 + 204e: 3a40 cmpnei r2, 0 + 2050: b825 st.w r1, (r14, 0x14) + 2052: 0ff9 bf 0x2044 // 2044 <__v2_printf+0x508> + 2054: 8da0 ld.h r5, (r5, 0x0) + 2056: 3300 movi r3, 0 + 2058: b8a3 st.w r5, (r14, 0xc) + 205a: b864 st.w r3, (r14, 0x10) + 205c: 06ca br 0x1df0 // 1df0 <__v2_printf+0x2b4> + 205e: 6cd3 mov r3, r4 + 2060: 0467 br 0x212e // 212e <__v2_printf+0x5f2> + 2062: 9884 ld.w r4, (r14, 0x10) + 2064: 3c40 cmpnei r4, 0 + 2066: 080b bt 0x207c // 207c <__v2_printf+0x540> + 2068: 9843 ld.w r2, (r14, 0xc) + 206a: 3a09 cmphsi r2, 10 + 206c: 0808 bt 0x207c // 207c <__v2_printf+0x540> + 206e: 9883 ld.w r4, (r14, 0xc) + 2070: 242f addi r4, 48 + 2072: 1f1a addi r7, r14, 104 + 2074: a787 st.b r4, (r7, 0x7) + 2076: 1c12 addi r4, r14, 72 + 2078: 2426 addi r4, 39 + 207a: 0478 br 0x216a // 216a <__v2_printf+0x62e> + 207c: 1c1c addi r4, r14, 112 + 207e: 3530 movi r5, 48 + 2080: 320a movi r2, 10 + 2082: 3300 movi r3, 0 + 2084: 9803 ld.w r0, (r14, 0xc) + 2086: 9824 ld.w r1, (r14, 0x10) + 2088: e00002c2 bsr 0x260c // 260c <__umoddi3> + 208c: 6014 addu r0, r5 + 208e: 2c00 subi r4, 1 + 2090: a400 st.b r0, (r4, 0x0) + 2092: 320a movi r2, 10 + 2094: 9803 ld.w r0, (r14, 0xc) + 2096: 9824 ld.w r1, (r14, 0x10) + 2098: 3300 movi r3, 0 + 209a: e00000e3 bsr 0x2260 // 2260 <__udivdi3> + 209e: b803 st.w r0, (r14, 0xc) + 20a0: b824 st.w r1, (r14, 0x10) + 20a2: 9823 ld.w r1, (r14, 0xc) + 20a4: 98e4 ld.w r7, (r14, 0x10) + 20a6: 6c5c or r1, r7 + 20a8: 3940 cmpnei r1, 0 + 20aa: 0beb bt 0x2080 // 2080 <__v2_printf+0x544> + 20ac: 045f br 0x216a // 216a <__v2_printf+0x62e> + 20ae: 0000 bkpt + 20b0: 000060da .long 0x000060da + 20b4: 000060c9 .long 0x000060c9 + 20b8: 20000768 .long 0x20000768 + 20bc: 3300 movi r3, 0 + 20be: 3400 movi r4, 0 + 20c0: b863 st.w r3, (r14, 0xc) + 20c2: b884 st.w r4, (r14, 0x10) + 20c4: 1c1c addi r4, r14, 112 + 20c6: 320f movi r2, 15 + 20c8: 9803 ld.w r0, (r14, 0xc) + 20ca: 982a ld.w r1, (r14, 0x28) + 20cc: 6808 and r0, r2 + 20ce: 6004 addu r0, r1 + 20d0: 80a0 ld.b r5, (r0, 0x0) + 20d2: 2c00 subi r4, 1 + 20d4: 98e4 ld.w r7, (r14, 0x10) + 20d6: a4a0 st.b r5, (r4, 0x0) + 20d8: 98a4 ld.w r5, (r14, 0x10) + 20da: 9863 ld.w r3, (r14, 0xc) + 20dc: 471c lsli r0, r7, 28 + 20de: 4de4 lsri r7, r5, 4 + 20e0: 4b24 lsri r1, r3, 4 + 20e2: b8e4 st.w r7, (r14, 0x10) + 20e4: 6c04 or r0, r1 + 20e6: 9864 ld.w r3, (r14, 0x10) + 20e8: b803 st.w r0, (r14, 0xc) + 20ea: 6c0c or r0, r3 + 20ec: 3840 cmpnei r0, 0 + 20ee: 0bed bt 0x20c8 // 20c8 <__v2_printf+0x58c> + 20f0: 043d br 0x216a // 216a <__v2_printf+0x62e> + 20f2: 3c40 cmpnei r4, 0 + 20f4: 0808 bt 0x2104 // 2104 <__v2_printf+0x5c8> + 20f6: 3301 movi r3, 1 + 20f8: 68dc and r3, r7 + 20fa: 3b40 cmpnei r3, 0 + 20fc: 0c04 bf 0x2104 // 2104 <__v2_printf+0x5c8> + 20fe: 1f1a addi r7, r14, 104 + 2100: 3430 movi r4, 48 + 2102: 07b9 br 0x2074 // 2074 <__v2_printf+0x538> + 2104: 1c1c addi r4, r14, 112 + 2106: 0432 br 0x216a // 216a <__v2_printf+0x62e> + 2108: 322b movi r2, 43 + 210a: 649a cmpne r6, r2 + 210c: 0802 bt 0x2110 // 2110 <__v2_printf+0x5d4> + 210e: 0614 br 0x1d36 // 1d36 <__v2_printf+0x1fa> + 2110: 1c12 addi r4, r14, 72 + 2112: 6c13 mov r0, r4 + 2114: e0000612 bsr 0x2d38 // 2d38 <__strlen_fast> + 2118: 6d83 mov r6, r0 + 211a: 06d7 br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 211c: 3840 cmpnei r0, 0 + 211e: b8e8 st.w r7, (r14, 0x20) + 2120: 0f3e bf 0x1f9c // 1f9c <__v2_printf+0x460> + 2122: 3c41 cmpnei r4, 1 + 2124: 0f9f bf 0x2062 // 2062 <__v2_printf+0x526> + 2126: 3c42 cmpnei r4, 2 + 2128: 0fce bf 0x20c4 // 20c4 <__v2_printf+0x588> + 212a: 1b1c addi r3, r14, 112 + 212c: 3707 movi r7, 7 + 212e: 9823 ld.w r1, (r14, 0xc) + 2130: 685c and r1, r7 + 2132: 212f addi r1, 48 + 2134: 9804 ld.w r0, (r14, 0x10) + 2136: 7484 zextb r2, r1 + 2138: 9823 ld.w r1, (r14, 0xc) + 213a: 40bd lsli r5, r0, 29 + 213c: 4903 lsri r0, r1, 3 + 213e: 9824 ld.w r1, (r14, 0x10) + 2140: 4923 lsri r1, r1, 3 + 2142: b824 st.w r1, (r14, 0x10) + 2144: 6d40 or r5, r0 + 2146: 9804 ld.w r0, (r14, 0x10) + 2148: b8a3 st.w r5, (r14, 0xc) + 214a: 6d40 or r5, r0 + 214c: 5b83 subi r4, r3, 1 + 214e: 3d40 cmpnei r5, 0 + 2150: a440 st.b r2, (r4, 0x0) + 2152: 0b86 bt 0x205e // 205e <__v2_printf+0x522> + 2154: 3701 movi r7, 1 + 2156: 9828 ld.w r1, (r14, 0x20) + 2158: 69c4 and r7, r1 + 215a: 3f40 cmpnei r7, 0 + 215c: 0c07 bf 0x216a // 216a <__v2_printf+0x62e> + 215e: 3530 movi r5, 48 + 2160: 654a cmpne r2, r5 + 2162: 0c04 bf 0x216a // 216a <__v2_printf+0x62e> + 2164: 5b87 subi r4, r3, 2 + 2166: 3330 movi r3, 48 + 2168: a460 st.b r3, (r4, 0x0) + 216a: 6d5b mov r5, r6 + 216c: 1e1c addi r6, r14, 112 + 216e: 6192 subu r6, r4 + 2170: 98e8 ld.w r7, (r14, 0x20) + 2172: 6595 cmplt r5, r6 + 2174: b8a8 st.w r5, (r14, 0x20) + 2176: 0c02 bf 0x217a // 217a <__v2_printf+0x63e> + 2178: b8c8 st.w r6, (r14, 0x20) + 217a: 3037 movi r0, 55 + 217c: 1b01 addi r3, r14, 4 + 217e: 600c addu r0, r3 + 2180: 8040 ld.b r2, (r0, 0x0) + 2182: 3a40 cmpnei r2, 0 + 2184: 0c04 bf 0x218c // 218c <__v2_printf+0x650> + 2186: 9828 ld.w r1, (r14, 0x20) + 2188: 2100 addi r1, 1 + 218a: b828 st.w r1, (r14, 0x20) + 218c: 3002 movi r0, 2 + 218e: 681c and r0, r7 + 2190: 3840 cmpnei r0, 0 + 2192: b80b st.w r0, (r14, 0x2c) + 2194: 0c04 bf 0x219c // 219c <__v2_printf+0x660> + 2196: 9868 ld.w r3, (r14, 0x20) + 2198: 2301 addi r3, 2 + 219a: b868 st.w r3, (r14, 0x20) + 219c: 3284 movi r2, 132 + 219e: 689c and r2, r7 + 21a0: 3a40 cmpnei r2, 0 + 21a2: b84c st.w r2, (r14, 0x30) + 21a4: 080b bt 0x21ba // 21ba <__v2_printf+0x67e> + 21a6: 3310 movi r3, 16 + 21a8: 1a0c addi r2, r14, 48 + 21aa: 9827 ld.w r1, (r14, 0x1c) + 21ac: 9808 ld.w r0, (r14, 0x20) + 21ae: 60c8 addu r3, r2 + 21b0: 5901 subu r0, r1, r0 + 21b2: 6f4f mov r13, r3 + 21b4: 1129 lrw r1, 0x5cf0 // 2258 <__v2_printf+0x71c> + 21b6: e3fffca9 bsr 0x1b08 // 1b08 + 21ba: 3137 movi r1, 55 + 21bc: 1801 addi r0, r14, 4 + 21be: 6040 addu r1, r0 + 21c0: 8160 ld.b r3, (r1, 0x0) + 21c2: 3b40 cmpnei r3, 0 + 21c4: 0c0b bf 0x21da // 21da <__v2_printf+0x69e> + 21c6: 9830 ld.w r1, (r14, 0x40) + 21c8: 9101 ld.w r0, (r1, 0x4) + 21ca: b802 st.w r0, (r14, 0x8) + 21cc: 1b0c addi r3, r14, 48 + 21ce: 300b movi r0, 11 + 21d0: 9140 ld.w r2, (r1, 0x0) + 21d2: 600c addu r0, r3 + 21d4: 3101 movi r1, 1 + 21d6: 9862 ld.w r3, (r14, 0x8) + 21d8: 7bcd jsr r3 + 21da: 984b ld.w r2, (r14, 0x2c) + 21dc: 3a40 cmpnei r2, 0 + 21de: 0c07 bf 0x21ec // 21ec <__v2_printf+0x6b0> + 21e0: 9830 ld.w r1, (r14, 0x40) + 21e2: 9140 ld.w r2, (r1, 0x0) + 21e4: 9161 ld.w r3, (r1, 0x4) + 21e6: 180f addi r0, r14, 60 + 21e8: 3102 movi r1, 2 + 21ea: 7bcd jsr r3 + 21ec: 3080 movi r0, 128 + 21ee: 984c ld.w r2, (r14, 0x30) + 21f0: 640a cmpne r2, r0 + 21f2: 080b bt 0x2208 // 2208 <__v2_printf+0x6cc> + 21f4: 9827 ld.w r1, (r14, 0x1c) + 21f6: 9868 ld.w r3, (r14, 0x20) + 21f8: 590d subu r0, r1, r3 + 21fa: 1a0c addi r2, r14, 48 + 21fc: 3110 movi r1, 16 + 21fe: 6048 addu r1, r2 + 2200: 6f47 mov r13, r1 + 2202: 1037 lrw r1, 0x5d00 // 225c <__v2_printf+0x720> + 2204: e3fffc82 bsr 0x1b08 // 1b08 + 2208: 5d19 subu r0, r5, r6 + 220a: 1b0c addi r3, r14, 48 + 220c: 3510 movi r5, 16 + 220e: 614c addu r5, r3 + 2210: 6f57 mov r13, r5 + 2212: 6d77 mov r5, r13 + 2214: 1032 lrw r1, 0x5d00 // 225c <__v2_printf+0x720> + 2216: e3fffc79 bsr 0x1b08 // 1b08 + 221a: 9500 ld.w r0, (r5, 0x0) + 221c: 9040 ld.w r2, (r0, 0x0) + 221e: 9061 ld.w r3, (r0, 0x4) + 2220: 6c13 mov r0, r4 + 2222: 3404 movi r4, 4 + 2224: 6c5b mov r1, r6 + 2226: 691c and r4, r7 + 2228: 7bcd jsr r3 + 222a: 3c40 cmpnei r4, 0 + 222c: 0c08 bf 0x223c // 223c <__v2_printf+0x700> + 222e: 9828 ld.w r1, (r14, 0x20) + 2230: 98c7 ld.w r6, (r14, 0x1c) + 2232: 5e05 subu r0, r6, r1 + 2234: 6f57 mov r13, r5 + 2236: 1029 lrw r1, 0x5cf0 // 2258 <__v2_printf+0x71c> + 2238: e3fffc68 bsr 0x1b08 // 1b08 + 223c: 98a7 ld.w r5, (r14, 0x1c) + 223e: 9848 ld.w r2, (r14, 0x20) + 2240: 6495 cmplt r5, r2 + 2242: 0c02 bf 0x2246 // 2246 <__v2_printf+0x70a> + 2244: 6d4b mov r5, r2 + 2246: 9809 ld.w r0, (r14, 0x24) + 2248: 6014 addu r0, r5 + 224a: b809 st.w r0, (r14, 0x24) + 224c: 98a5 ld.w r5, (r14, 0x14) + 224e: e800fc84 br 0x1b56 // 1b56 <__v2_printf+0x1a> + 2252: 9809 ld.w r0, (r14, 0x24) + 2254: 141c addi r14, r14, 112 + 2256: 1494 pop r4-r7, r15 + 2258: 00005cf0 .long 0x00005cf0 + 225c: 00005d00 .long 0x00005d00 + +00002260 <__udivdi3>: + 2260: 14d4 push r4-r7, r15 + 2262: 1426 subi r14, r14, 24 + 2264: 6dc7 mov r7, r1 + 2266: 3b40 cmpnei r3, 0 + 2268: 6d03 mov r4, r0 + 226a: 6c4f mov r1, r3 + 226c: 6d8b mov r6, r2 + 226e: b800 st.w r0, (r14, 0x0) + 2270: 6d5f mov r5, r7 + 2272: 085b bt 0x2328 // 2328 <__udivdi3+0xc8> + 2274: 649c cmphs r7, r2 + 2276: 0874 bt 0x235e // 235e <__udivdi3+0xfe> + 2278: 003d lrw r1, 0xffff // 2600 <__udivdi3+0x3a0> + 227a: 6484 cmphs r1, r2 + 227c: 0cdc bf 0x2434 // 2434 <__udivdi3+0x1d4> + 227e: 31ff movi r1, 255 + 2280: 6484 cmphs r1, r2 + 2282: 0802 bt 0x2286 // 2286 <__udivdi3+0x26> + 2284: 3308 movi r3, 8 + 2286: 6c4b mov r1, r2 + 2288: 704d lsr r1, r3 + 228a: 0100 lrw r0, 0x5bf0 // 2604 <__udivdi3+0x3a4> + 228c: 6040 addu r1, r0 + 228e: 8120 ld.b r1, (r1, 0x0) + 2290: 60c4 addu r3, r1 + 2292: 3120 movi r1, 32 + 2294: 604e subu r1, r3 + 2296: 3940 cmpnei r1, 0 + 2298: 0c09 bf 0x22aa // 22aa <__udivdi3+0x4a> + 229a: 6d53 mov r5, r4 + 229c: 7084 lsl r2, r1 + 229e: 71c4 lsl r7, r1 + 22a0: 714d lsr r5, r3 + 22a2: 7104 lsl r4, r1 + 22a4: 6d8b mov r6, r2 + 22a6: 6d5c or r5, r7 + 22a8: b880 st.w r4, (r14, 0x0) + 22aa: 4e90 lsri r4, r6, 16 + 22ac: 6c53 mov r1, r4 + 22ae: 6c17 mov r0, r5 + 22b0: e00010d8 bsr 0x4460 // 4460 <__umodsi3> + 22b4: b801 st.w r0, (r14, 0x4) + 22b6: 6c53 mov r1, r4 + 22b8: 6c17 mov r0, r5 + 22ba: e00010af bsr 0x4418 // 4418 <__udivsi3> + 22be: 75d9 zexth r7, r6 + 22c0: 9861 ld.w r3, (r14, 0x4) + 22c2: 9820 ld.w r1, (r14, 0x0) + 22c4: 6c9f mov r2, r7 + 22c6: 4370 lsli r3, r3, 16 + 22c8: 4930 lsri r1, r1, 16 + 22ca: 7c80 mult r2, r0 + 22cc: 6cc4 or r3, r1 + 22ce: 648c cmphs r3, r2 + 22d0: 6d43 mov r5, r0 + 22d2: 0808 bt 0x22e2 // 22e2 <__udivdi3+0x82> + 22d4: 60d8 addu r3, r6 + 22d6: 658c cmphs r3, r6 + 22d8: 5823 subi r1, r0, 1 + 22da: 0c03 bf 0x22e0 // 22e0 <__udivdi3+0x80> + 22dc: 648c cmphs r3, r2 + 22de: 0d8e bf 0x25fa // 25fa <__udivdi3+0x39a> + 22e0: 6d47 mov r5, r1 + 22e2: 60ca subu r3, r2 + 22e4: 6c53 mov r1, r4 + 22e6: 6c0f mov r0, r3 + 22e8: b862 st.w r3, (r14, 0x8) + 22ea: e00010bb bsr 0x4460 // 4460 <__umodsi3> + 22ee: 9862 ld.w r3, (r14, 0x8) + 22f0: b801 st.w r0, (r14, 0x4) + 22f2: 6c53 mov r1, r4 + 22f4: 6c0f mov r0, r3 + 22f6: e0001091 bsr 0x4418 // 4418 <__udivsi3> + 22fa: 9841 ld.w r2, (r14, 0x4) + 22fc: d86e1000 ld.h r3, (r14, 0x0) + 2300: 4250 lsli r2, r2, 16 + 2302: 74cd zexth r3, r3 + 2304: 7dc0 mult r7, r0 + 2306: 6c8c or r2, r3 + 2308: 65c8 cmphs r2, r7 + 230a: 6d03 mov r4, r0 + 230c: 0808 bt 0x231c // 231c <__udivdi3+0xbc> + 230e: 6098 addu r2, r6 + 2310: 6588 cmphs r2, r6 + 2312: 5863 subi r3, r0, 1 + 2314: 0d4d bf 0x25ae // 25ae <__udivdi3+0x34e> + 2316: 65c8 cmphs r2, r7 + 2318: 094b bt 0x25ae // 25ae <__udivdi3+0x34e> + 231a: 2c01 subi r4, 2 + 231c: 4510 lsli r0, r5, 16 + 231e: 3700 movi r7, 0 + 2320: 6c10 or r0, r4 + 2322: 6c5f mov r1, r7 + 2324: 1406 addi r14, r14, 24 + 2326: 1494 pop r4-r7, r15 + 2328: 64dc cmphs r7, r3 + 232a: 0c76 bf 0x2416 // 2416 <__udivdi3+0x1b6> + 232c: 026a lrw r3, 0xffff // 2600 <__udivdi3+0x3a0> + 232e: 644c cmphs r3, r1 + 2330: 0878 bt 0x2420 // 2420 <__udivdi3+0x1c0> + 2332: 0269 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2334: 644c cmphs r3, r1 + 2336: 0d48 bf 0x25c6 // 25c6 <__udivdi3+0x366> + 2338: 3610 movi r6, 16 + 233a: 6cc7 mov r3, r1 + 233c: 70d9 lsr r3, r6 + 233e: 020d lrw r0, 0x5bf0 // 2604 <__udivdi3+0x3a4> + 2340: 60c0 addu r3, r0 + 2342: 8360 ld.b r3, (r3, 0x0) + 2344: 618c addu r6, r3 + 2346: 3020 movi r0, 32 + 2348: 5879 subu r3, r0, r6 + 234a: 3b40 cmpnei r3, 0 + 234c: b860 st.w r3, (r14, 0x0) + 234e: 0878 bt 0x243e // 243e <__udivdi3+0x1de> + 2350: 65c4 cmphs r1, r7 + 2352: 0d40 bf 0x25d2 // 25d2 <__udivdi3+0x372> + 2354: 6490 cmphs r4, r2 + 2356: 6c0f mov r0, r3 + 2358: 600d addc r0, r3 + 235a: 3700 movi r7, 0 + 235c: 045f br 0x241a // 241a <__udivdi3+0x1ba> + 235e: 3a40 cmpnei r2, 0 + 2360: 0808 bt 0x2370 // 2370 <__udivdi3+0x110> + 2362: 3100 movi r1, 0 + 2364: 3001 movi r0, 1 + 2366: b861 st.w r3, (r14, 0x4) + 2368: e0001058 bsr 0x4418 // 4418 <__udivsi3> + 236c: 6d83 mov r6, r0 + 236e: 9861 ld.w r3, (r14, 0x4) + 2370: 025b lrw r2, 0xffff // 2600 <__udivdi3+0x3a0> + 2372: 6588 cmphs r2, r6 + 2374: 085b bt 0x242a // 242a <__udivdi3+0x1ca> + 2376: 027a lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2378: 658c cmphs r3, r6 + 237a: 0d28 bf 0x25ca // 25ca <__udivdi3+0x36a> + 237c: 3310 movi r3, 16 + 237e: 6c9b mov r2, r6 + 2380: 023e lrw r1, 0x5bf0 // 2604 <__udivdi3+0x3a4> + 2382: 708d lsr r2, r3 + 2384: 6084 addu r2, r1 + 2386: 8240 ld.b r2, (r2, 0x0) + 2388: 5a2c addu r1, r2, r3 + 238a: 3220 movi r2, 32 + 238c: 6086 subu r2, r1 + 238e: 3a40 cmpnei r2, 0 + 2390: 08c0 bt 0x2510 // 2510 <__udivdi3+0x2b0> + 2392: 74d9 zexth r3, r6 + 2394: 5f99 subu r4, r7, r6 + 2396: 4eb0 lsri r5, r6, 16 + 2398: b861 st.w r3, (r14, 0x4) + 239a: 3701 movi r7, 1 + 239c: 6c57 mov r1, r5 + 239e: 6c13 mov r0, r4 + 23a0: e0001060 bsr 0x4460 // 4460 <__umodsi3> + 23a4: b802 st.w r0, (r14, 0x8) + 23a6: 6c57 mov r1, r5 + 23a8: 6c13 mov r0, r4 + 23aa: e0001037 bsr 0x4418 // 4418 <__udivsi3> + 23ae: 9862 ld.w r3, (r14, 0x8) + 23b0: 4330 lsli r1, r3, 16 + 23b2: 9860 ld.w r3, (r14, 0x0) + 23b4: 9841 ld.w r2, (r14, 0x4) + 23b6: 4b70 lsri r3, r3, 16 + 23b8: 7c80 mult r2, r0 + 23ba: 6cc4 or r3, r1 + 23bc: 648c cmphs r3, r2 + 23be: 6d03 mov r4, r0 + 23c0: 0808 bt 0x23d0 // 23d0 <__udivdi3+0x170> + 23c2: 60d8 addu r3, r6 + 23c4: 658c cmphs r3, r6 + 23c6: 5823 subi r1, r0, 1 + 23c8: 0c03 bf 0x23ce // 23ce <__udivdi3+0x16e> + 23ca: 648c cmphs r3, r2 + 23cc: 0d14 bf 0x25f4 // 25f4 <__udivdi3+0x394> + 23ce: 6d07 mov r4, r1 + 23d0: 60ca subu r3, r2 + 23d2: 6c57 mov r1, r5 + 23d4: 6c0f mov r0, r3 + 23d6: b863 st.w r3, (r14, 0xc) + 23d8: e0001044 bsr 0x4460 // 4460 <__umodsi3> + 23dc: 9863 ld.w r3, (r14, 0xc) + 23de: 6c57 mov r1, r5 + 23e0: b802 st.w r0, (r14, 0x8) + 23e2: 6c0f mov r0, r3 + 23e4: e000101a bsr 0x4418 // 4418 <__udivsi3> + 23e8: 9842 ld.w r2, (r14, 0x8) + 23ea: d86e1000 ld.h r3, (r14, 0x0) + 23ee: 9821 ld.w r1, (r14, 0x4) + 23f0: 4250 lsli r2, r2, 16 + 23f2: 74cd zexth r3, r3 + 23f4: 7c40 mult r1, r0 + 23f6: 6cc8 or r3, r2 + 23f8: 644c cmphs r3, r1 + 23fa: 6d43 mov r5, r0 + 23fc: 0808 bt 0x240c // 240c <__udivdi3+0x1ac> + 23fe: 60d8 addu r3, r6 + 2400: 658c cmphs r3, r6 + 2402: 5843 subi r2, r0, 1 + 2404: 0cd3 bf 0x25aa // 25aa <__udivdi3+0x34a> + 2406: 644c cmphs r3, r1 + 2408: 08d1 bt 0x25aa // 25aa <__udivdi3+0x34a> + 240a: 2d01 subi r5, 2 + 240c: 4410 lsli r0, r4, 16 + 240e: 6c14 or r0, r5 + 2410: 6c5f mov r1, r7 + 2412: 1406 addi r14, r14, 24 + 2414: 1494 pop r4-r7, r15 + 2416: 3700 movi r7, 0 + 2418: 3000 movi r0, 0 + 241a: 6c5f mov r1, r7 + 241c: 1406 addi r14, r14, 24 + 241e: 1494 pop r4-r7, r15 + 2420: 33ff movi r3, 255 + 2422: 644c cmphs r3, r1 + 2424: 6583 mvcv r6 + 2426: 46c3 lsli r6, r6, 3 + 2428: 0789 br 0x233a // 233a <__udivdi3+0xda> + 242a: 32ff movi r2, 255 + 242c: 6588 cmphs r2, r6 + 242e: 0ba8 bt 0x237e // 237e <__udivdi3+0x11e> + 2430: 3308 movi r3, 8 + 2432: 07a6 br 0x237e // 237e <__udivdi3+0x11e> + 2434: 1375 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2436: 648c cmphs r3, r2 + 2438: 0ccb bf 0x25ce // 25ce <__udivdi3+0x36e> + 243a: 3310 movi r3, 16 + 243c: 0725 br 0x2286 // 2286 <__udivdi3+0x26> + 243e: 9800 ld.w r0, (r14, 0x0) + 2440: 6ccb mov r3, r2 + 2442: 6d4b mov r5, r2 + 2444: 7040 lsl r1, r0 + 2446: 7140 lsl r5, r0 + 2448: 70d9 lsr r3, r6 + 244a: 6cc4 or r3, r1 + 244c: b8a3 st.w r5, (r14, 0xc) + 244e: 6d53 mov r5, r4 + 2450: 6c4f mov r1, r3 + 2452: 7159 lsr r5, r6 + 2454: 6cdf mov r3, r7 + 2456: 71c0 lsl r7, r0 + 2458: 6d5c or r5, r7 + 245a: 70d9 lsr r3, r6 + 245c: b8a1 st.w r5, (r14, 0x4) + 245e: 49b0 lsri r5, r1, 16 + 2460: b822 st.w r1, (r14, 0x8) + 2462: 75c5 zexth r7, r1 + 2464: 6c0f mov r0, r3 + 2466: 6c57 mov r1, r5 + 2468: b864 st.w r3, (r14, 0x10) + 246a: e0000ffb bsr 0x4460 // 4460 <__umodsi3> + 246e: 9864 ld.w r3, (r14, 0x10) + 2470: 6d83 mov r6, r0 + 2472: 6c57 mov r1, r5 + 2474: 6c0f mov r0, r3 + 2476: e0000fd1 bsr 0x4418 // 4418 <__udivsi3> + 247a: 6c5f mov r1, r7 + 247c: 7c40 mult r1, r0 + 247e: 6c87 mov r2, r1 + 2480: 4630 lsli r1, r6, 16 + 2482: 98c1 ld.w r6, (r14, 0x4) + 2484: 4ed0 lsri r6, r6, 16 + 2486: 6d84 or r6, r1 + 2488: 6498 cmphs r6, r2 + 248a: 6cc3 mov r3, r0 + 248c: 0807 bt 0x249a // 249a <__udivdi3+0x23a> + 248e: 5823 subi r1, r0, 1 + 2490: 9802 ld.w r0, (r14, 0x8) + 2492: 6180 addu r6, r0 + 2494: 6418 cmphs r6, r0 + 2496: 08a6 bt 0x25e2 // 25e2 <__udivdi3+0x382> + 2498: 6cc7 mov r3, r1 + 249a: 618a subu r6, r2 + 249c: 6c57 mov r1, r5 + 249e: 6c1b mov r0, r6 + 24a0: b865 st.w r3, (r14, 0x14) + 24a2: e0000fdf bsr 0x4460 // 4460 <__umodsi3> + 24a6: b804 st.w r0, (r14, 0x10) + 24a8: 6c57 mov r1, r5 + 24aa: 6c1b mov r0, r6 + 24ac: e0000fb6 bsr 0x4418 // 4418 <__udivsi3> + 24b0: 9864 ld.w r3, (r14, 0x10) + 24b2: 6c9f mov r2, r7 + 24b4: 43f0 lsli r7, r3, 16 + 24b6: d86e1002 ld.h r3, (r14, 0x4) + 24ba: 744d zexth r1, r3 + 24bc: 7c80 mult r2, r0 + 24be: 6dc4 or r7, r1 + 24c0: 649c cmphs r7, r2 + 24c2: 9865 ld.w r3, (r14, 0x14) + 24c4: 0807 bt 0x24d2 // 24d2 <__udivdi3+0x272> + 24c6: 98a2 ld.w r5, (r14, 0x8) + 24c8: 61d4 addu r7, r5 + 24ca: 655c cmphs r7, r5 + 24cc: 5823 subi r1, r0, 1 + 24ce: 0885 bt 0x25d8 // 25d8 <__udivdi3+0x378> + 24d0: 6c07 mov r0, r1 + 24d2: 4370 lsli r3, r3, 16 + 24d4: 6c0c or r0, r3 + 24d6: 74c1 zexth r3, r0 + 24d8: 61ca subu r7, r2 + 24da: 9843 ld.w r2, (r14, 0xc) + 24dc: 7549 zexth r5, r2 + 24de: 4830 lsri r1, r0, 16 + 24e0: 4a50 lsri r2, r2, 16 + 24e2: 6d8f mov r6, r3 + 24e4: 7d94 mult r6, r5 + 24e6: 7cc8 mult r3, r2 + 24e8: 7d44 mult r5, r1 + 24ea: 60d4 addu r3, r5 + 24ec: 7c48 mult r1, r2 + 24ee: 4e50 lsri r2, r6, 16 + 24f0: 60c8 addu r3, r2 + 24f2: 654c cmphs r3, r5 + 24f4: 0804 bt 0x24fc // 24fc <__udivdi3+0x29c> + 24f6: 3280 movi r2, 128 + 24f8: 4249 lsli r2, r2, 9 + 24fa: 6048 addu r1, r2 + 24fc: 4b50 lsri r2, r3, 16 + 24fe: 6048 addu r1, r2 + 2500: 645c cmphs r7, r1 + 2502: 0c5f bf 0x25c0 // 25c0 <__udivdi3+0x360> + 2504: 645e cmpne r7, r1 + 2506: 0c56 bf 0x25b2 // 25b2 <__udivdi3+0x352> + 2508: 3700 movi r7, 0 + 250a: 6c5f mov r1, r7 + 250c: 1406 addi r14, r14, 24 + 250e: 1494 pop r4-r7, r15 + 2510: 6d53 mov r5, r4 + 2512: 6cdf mov r3, r7 + 2514: 7145 lsr r5, r1 + 2516: 71c8 lsl r7, r2 + 2518: 7188 lsl r6, r2 + 251a: 6d5c or r5, r7 + 251c: 70c5 lsr r3, r1 + 251e: 6dd7 mov r7, r5 + 2520: b8a3 st.w r5, (r14, 0xc) + 2522: 4eb0 lsri r5, r6, 16 + 2524: 7108 lsl r4, r2 + 2526: 6c57 mov r1, r5 + 2528: 7499 zexth r2, r6 + 252a: 6c0f mov r0, r3 + 252c: b841 st.w r2, (r14, 0x4) + 252e: b880 st.w r4, (r14, 0x0) + 2530: b862 st.w r3, (r14, 0x8) + 2532: e0000f97 bsr 0x4460 // 4460 <__umodsi3> + 2536: 9862 ld.w r3, (r14, 0x8) + 2538: 6d03 mov r4, r0 + 253a: 6c57 mov r1, r5 + 253c: 6c0f mov r0, r3 + 253e: e0000f6d bsr 0x4418 // 4418 <__udivsi3> + 2542: 6cc3 mov r3, r0 + 2544: 7499 zexth r2, r6 + 2546: 7cc8 mult r3, r2 + 2548: 4450 lsli r2, r4, 16 + 254a: 4f90 lsri r4, r7, 16 + 254c: 6d08 or r4, r2 + 254e: 64d0 cmphs r4, r3 + 2550: 6c43 mov r1, r0 + 2552: b802 st.w r0, (r14, 0x8) + 2554: 080b bt 0x256a // 256a <__udivdi3+0x30a> + 2556: 6118 addu r4, r6 + 2558: 6c87 mov r2, r1 + 255a: 6590 cmphs r4, r6 + 255c: 2a00 subi r2, 1 + 255e: 0c49 bf 0x25f0 // 25f0 <__udivdi3+0x390> + 2560: 64d0 cmphs r4, r3 + 2562: 0847 bt 0x25f0 // 25f0 <__udivdi3+0x390> + 2564: 2a00 subi r2, 1 + 2566: b842 st.w r2, (r14, 0x8) + 2568: 6118 addu r4, r6 + 256a: 610e subu r4, r3 + 256c: 6c57 mov r1, r5 + 256e: 6c13 mov r0, r4 + 2570: e0000f78 bsr 0x4460 // 4460 <__umodsi3> + 2574: 6dc3 mov r7, r0 + 2576: 6c57 mov r1, r5 + 2578: 6c13 mov r0, r4 + 257a: e0000f4f bsr 0x4418 // 4418 <__udivsi3> + 257e: d84e1006 ld.h r2, (r14, 0xc) + 2582: 74d9 zexth r3, r6 + 2584: 47f0 lsli r7, r7, 16 + 2586: 7509 zexth r4, r2 + 2588: 7cc0 mult r3, r0 + 258a: 6dd0 or r7, r4 + 258c: 64dc cmphs r7, r3 + 258e: 0809 bt 0x25a0 // 25a0 <__udivdi3+0x340> + 2590: 61d8 addu r7, r6 + 2592: 659c cmphs r7, r6 + 2594: 5843 subi r2, r0, 1 + 2596: 0c2b bf 0x25ec // 25ec <__udivdi3+0x38c> + 2598: 64dc cmphs r7, r3 + 259a: 0829 bt 0x25ec // 25ec <__udivdi3+0x38c> + 259c: 2801 subi r0, 2 + 259e: 61d8 addu r7, r6 + 25a0: 5f8d subu r4, r7, r3 + 25a2: 9862 ld.w r3, (r14, 0x8) + 25a4: 43f0 lsli r7, r3, 16 + 25a6: 6dc0 or r7, r0 + 25a8: 06fa br 0x239c // 239c <__udivdi3+0x13c> + 25aa: 6d4b mov r5, r2 + 25ac: 0730 br 0x240c // 240c <__udivdi3+0x1ac> + 25ae: 6d0f mov r4, r3 + 25b0: 06b6 br 0x231c // 231c <__udivdi3+0xbc> + 25b2: 9840 ld.w r2, (r14, 0x0) + 25b4: 4370 lsli r3, r3, 16 + 25b6: 7599 zexth r6, r6 + 25b8: 7108 lsl r4, r2 + 25ba: 60d8 addu r3, r6 + 25bc: 64d0 cmphs r4, r3 + 25be: 0ba5 bt 0x2508 // 2508 <__udivdi3+0x2a8> + 25c0: 2800 subi r0, 1 + 25c2: 3700 movi r7, 0 + 25c4: 07a3 br 0x250a // 250a <__udivdi3+0x2aa> + 25c6: 3618 movi r6, 24 + 25c8: 06b9 br 0x233a // 233a <__udivdi3+0xda> + 25ca: 3318 movi r3, 24 + 25cc: 06d9 br 0x237e // 237e <__udivdi3+0x11e> + 25ce: 3318 movi r3, 24 + 25d0: 065b br 0x2286 // 2286 <__udivdi3+0x26> + 25d2: 3700 movi r7, 0 + 25d4: 3001 movi r0, 1 + 25d6: 0722 br 0x241a // 241a <__udivdi3+0x1ba> + 25d8: 649c cmphs r7, r2 + 25da: 0b7b bt 0x24d0 // 24d0 <__udivdi3+0x270> + 25dc: 2801 subi r0, 2 + 25de: 61d4 addu r7, r5 + 25e0: 0779 br 0x24d2 // 24d2 <__udivdi3+0x272> + 25e2: 6498 cmphs r6, r2 + 25e4: 0b5a bt 0x2498 // 2498 <__udivdi3+0x238> + 25e6: 2b01 subi r3, 2 + 25e8: 6180 addu r6, r0 + 25ea: 0758 br 0x249a // 249a <__udivdi3+0x23a> + 25ec: 6c0b mov r0, r2 + 25ee: 07d9 br 0x25a0 // 25a0 <__udivdi3+0x340> + 25f0: b842 st.w r2, (r14, 0x8) + 25f2: 07bc br 0x256a // 256a <__udivdi3+0x30a> + 25f4: 2c01 subi r4, 2 + 25f6: 60d8 addu r3, r6 + 25f8: 06ec br 0x23d0 // 23d0 <__udivdi3+0x170> + 25fa: 2d01 subi r5, 2 + 25fc: 60d8 addu r3, r6 + 25fe: 0672 br 0x22e2 // 22e2 <__udivdi3+0x82> + 2600: 0000ffff .long 0x0000ffff + 2604: 00005bf0 .long 0x00005bf0 + 2608: 00ffffff .long 0x00ffffff + +0000260c <__umoddi3>: + 260c: 14d4 push r4-r7, r15 + 260e: 1427 subi r14, r14, 28 + 2610: 6d07 mov r4, r1 + 2612: 6c4f mov r1, r3 + 2614: 6d43 mov r5, r0 + 2616: 3940 cmpnei r1, 0 + 2618: 6dcf mov r7, r3 + 261a: 6c0b mov r0, r2 + 261c: b8a0 st.w r5, (r14, 0x0) + 261e: 6cd3 mov r3, r4 + 2620: 085a bt 0x26d4 // 26d4 <__umoddi3+0xc8> + 2622: 6490 cmphs r4, r2 + 2624: 0877 bt 0x2712 // 2712 <__umoddi3+0x106> + 2626: 0120 lrw r1, 0xffff // 29a0 <__umoddi3+0x394> + 2628: 6484 cmphs r1, r2 + 262a: 0cd2 bf 0x27ce // 27ce <__umoddi3+0x1c2> + 262c: 31ff movi r1, 255 + 262e: 6484 cmphs r1, r2 + 2630: 0802 bt 0x2634 // 2634 <__umoddi3+0x28> + 2632: 3708 movi r7, 8 + 2634: 6c43 mov r1, r0 + 2636: 705d lsr r1, r7 + 2638: 01c4 lrw r6, 0x5bf0 // 29a4 <__umoddi3+0x398> + 263a: 6058 addu r1, r6 + 263c: 8120 ld.b r1, (r1, 0x0) + 263e: 61c4 addu r7, r1 + 2640: 3120 movi r1, 32 + 2642: 605e subu r1, r7 + 2644: 3940 cmpnei r1, 0 + 2646: b821 st.w r1, (r14, 0x4) + 2648: 0c09 bf 0x265a // 265a <__umoddi3+0x4e> + 264a: 6cd7 mov r3, r5 + 264c: 6c83 mov r2, r0 + 264e: 7104 lsl r4, r1 + 2650: 70dd lsr r3, r7 + 2652: 7144 lsl r5, r1 + 2654: 7084 lsl r2, r1 + 2656: 6cd0 or r3, r4 + 2658: b8a0 st.w r5, (r14, 0x0) + 265a: 4a90 lsri r4, r2, 16 + 265c: 6c53 mov r1, r4 + 265e: 6c0f mov r0, r3 + 2660: 75c9 zexth r7, r2 + 2662: b843 st.w r2, (r14, 0xc) + 2664: b862 st.w r3, (r14, 0x8) + 2666: e0000efd bsr 0x4460 // 4460 <__umodsi3> + 266a: 9862 ld.w r3, (r14, 0x8) + 266c: 6d43 mov r5, r0 + 266e: 6c53 mov r1, r4 + 2670: 6c0f mov r0, r3 + 2672: e0000ed3 bsr 0x4418 // 4418 <__udivsi3> + 2676: 9840 ld.w r2, (r14, 0x0) + 2678: 4570 lsli r3, r5, 16 + 267a: 4ab0 lsri r5, r2, 16 + 267c: 7c1c mult r0, r7 + 267e: 6cd4 or r3, r5 + 2680: 640c cmphs r3, r0 + 2682: 9843 ld.w r2, (r14, 0xc) + 2684: 0806 bt 0x2690 // 2690 <__umoddi3+0x84> + 2686: 60c8 addu r3, r2 + 2688: 648c cmphs r3, r2 + 268a: 0c03 bf 0x2690 // 2690 <__umoddi3+0x84> + 268c: 640c cmphs r3, r0 + 268e: 0d7d bf 0x2988 // 2988 <__umoddi3+0x37c> + 2690: 60c2 subu r3, r0 + 2692: 6c53 mov r1, r4 + 2694: 6c0f mov r0, r3 + 2696: b843 st.w r2, (r14, 0xc) + 2698: b862 st.w r3, (r14, 0x8) + 269a: e0000ee3 bsr 0x4460 // 4460 <__umodsi3> + 269e: 9862 ld.w r3, (r14, 0x8) + 26a0: 6d43 mov r5, r0 + 26a2: 6c53 mov r1, r4 + 26a4: 6c0f mov r0, r3 + 26a6: e0000eb9 bsr 0x4418 // 4418 <__udivsi3> + 26aa: d86e1000 ld.h r3, (r14, 0x0) + 26ae: 7dc0 mult r7, r0 + 26b0: 45b0 lsli r5, r5, 16 + 26b2: 740d zexth r0, r3 + 26b4: 6d40 or r5, r0 + 26b6: 65d4 cmphs r5, r7 + 26b8: 0807 bt 0x26c6 // 26c6 <__umoddi3+0xba> + 26ba: 9843 ld.w r2, (r14, 0xc) + 26bc: 6148 addu r5, r2 + 26be: 6494 cmphs r5, r2 + 26c0: 0c03 bf 0x26c6 // 26c6 <__umoddi3+0xba> + 26c2: 65d4 cmphs r5, r7 + 26c4: 0d5e bf 0x2980 // 2980 <__umoddi3+0x374> + 26c6: 615e subu r5, r7 + 26c8: 6c17 mov r0, r5 + 26ca: 9861 ld.w r3, (r14, 0x4) + 26cc: 700d lsr r0, r3 + 26ce: 3100 movi r1, 0 + 26d0: 1407 addi r14, r14, 28 + 26d2: 1494 pop r4-r7, r15 + 26d4: 6450 cmphs r4, r1 + 26d6: 0c6e bf 0x27b2 // 27b2 <__umoddi3+0x1a6> + 26d8: 024d lrw r2, 0xffff // 29a0 <__umoddi3+0x394> + 26da: 6448 cmphs r2, r1 + 26dc: 086f bt 0x27ba // 27ba <__umoddi3+0x1ae> + 26de: 024c lrw r2, 0xffffff // 29a8 <__umoddi3+0x39c> + 26e0: 6448 cmphs r2, r1 + 26e2: 0d3f bf 0x2960 // 2960 <__umoddi3+0x354> + 26e4: 3610 movi r6, 16 + 26e6: 6c87 mov r2, r1 + 26e8: 7099 lsr r2, r6 + 26ea: 02f0 lrw r7, 0x5bf0 // 29a4 <__umoddi3+0x398> + 26ec: 609c addu r2, r7 + 26ee: 8240 ld.b r2, (r2, 0x0) + 26f0: 6188 addu r6, r2 + 26f2: 3720 movi r7, 32 + 26f4: 61da subu r7, r6 + 26f6: 3f40 cmpnei r7, 0 + 26f8: 0870 bt 0x27d8 // 27d8 <__umoddi3+0x1cc> + 26fa: 6504 cmphs r1, r4 + 26fc: 0c03 bf 0x2702 // 2702 <__umoddi3+0xf6> + 26fe: 6414 cmphs r5, r0 + 2700: 0d46 bf 0x298c // 298c <__umoddi3+0x380> + 2702: 5d01 subu r0, r5, r0 + 2704: 6414 cmphs r5, r0 + 2706: 6106 subu r4, r1 + 2708: 6483 mvcv r2 + 270a: 5c69 subu r3, r4, r2 + 270c: 6c4f mov r1, r3 + 270e: 1407 addi r14, r14, 28 + 2710: 1494 pop r4-r7, r15 + 2712: 3a40 cmpnei r2, 0 + 2714: 0806 bt 0x2720 // 2720 <__umoddi3+0x114> + 2716: 3100 movi r1, 0 + 2718: 3001 movi r0, 1 + 271a: e0000e7f bsr 0x4418 // 4418 <__udivsi3> + 271e: 6c83 mov r2, r0 + 2720: 027f lrw r3, 0xffff // 29a0 <__umoddi3+0x394> + 2722: 648c cmphs r3, r2 + 2724: 0850 bt 0x27c4 // 27c4 <__umoddi3+0x1b8> + 2726: 027e lrw r3, 0xffffff // 29a8 <__umoddi3+0x39c> + 2728: 648c cmphs r3, r2 + 272a: 0d1d bf 0x2964 // 2964 <__umoddi3+0x358> + 272c: 3710 movi r7, 16 + 272e: 6ccb mov r3, r2 + 2730: 70dd lsr r3, r7 + 2732: 0322 lrw r1, 0x5bf0 // 29a4 <__umoddi3+0x398> + 2734: 60c4 addu r3, r1 + 2736: 8360 ld.b r3, (r3, 0x0) + 2738: 61cc addu r7, r3 + 273a: 3320 movi r3, 32 + 273c: 60de subu r3, r7 + 273e: 3b40 cmpnei r3, 0 + 2740: b861 st.w r3, (r14, 0x4) + 2742: 08c2 bt 0x28c6 // 28c6 <__umoddi3+0x2ba> + 2744: 74c9 zexth r3, r2 + 2746: 610a subu r4, r2 + 2748: 4af0 lsri r7, r2, 16 + 274a: 6d8f mov r6, r3 + 274c: 6c5f mov r1, r7 + 274e: 6c13 mov r0, r4 + 2750: b842 st.w r2, (r14, 0x8) + 2752: e0000e87 bsr 0x4460 // 4460 <__umodsi3> + 2756: 6d43 mov r5, r0 + 2758: 6c5f mov r1, r7 + 275a: 6c13 mov r0, r4 + 275c: e0000e5e bsr 0x4418 // 4418 <__udivsi3> + 2760: 9860 ld.w r3, (r14, 0x0) + 2762: 4590 lsli r4, r5, 16 + 2764: 4bb0 lsri r5, r3, 16 + 2766: 7c18 mult r0, r6 + 2768: 6d14 or r4, r5 + 276a: 6410 cmphs r4, r0 + 276c: 9842 ld.w r2, (r14, 0x8) + 276e: 0806 bt 0x277a // 277a <__umoddi3+0x16e> + 2770: 6108 addu r4, r2 + 2772: 6490 cmphs r4, r2 + 2774: 0c03 bf 0x277a // 277a <__umoddi3+0x16e> + 2776: 6410 cmphs r4, r0 + 2778: 0d06 bf 0x2984 // 2984 <__umoddi3+0x378> + 277a: 6102 subu r4, r0 + 277c: 6c5f mov r1, r7 + 277e: 6c13 mov r0, r4 + 2780: b842 st.w r2, (r14, 0x8) + 2782: e0000e6f bsr 0x4460 // 4460 <__umodsi3> + 2786: 6d43 mov r5, r0 + 2788: 6c5f mov r1, r7 + 278a: 6c13 mov r0, r4 + 278c: e0000e46 bsr 0x4418 // 4418 <__udivsi3> + 2790: d86e1000 ld.h r3, (r14, 0x0) + 2794: 7c18 mult r0, r6 + 2796: 45b0 lsli r5, r5, 16 + 2798: 758d zexth r6, r3 + 279a: 6d58 or r5, r6 + 279c: 6414 cmphs r5, r0 + 279e: 0808 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27a0: 9842 ld.w r2, (r14, 0x8) + 27a2: 6148 addu r5, r2 + 27a4: 6494 cmphs r5, r2 + 27a6: 0c04 bf 0x27ae // 27ae <__umoddi3+0x1a2> + 27a8: 6414 cmphs r5, r0 + 27aa: 0802 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27ac: 6148 addu r5, r2 + 27ae: 6142 subu r5, r0 + 27b0: 078c br 0x26c8 // 26c8 <__umoddi3+0xbc> + 27b2: 6c17 mov r0, r5 + 27b4: 6c53 mov r1, r4 + 27b6: 1407 addi r14, r14, 28 + 27b8: 1494 pop r4-r7, r15 + 27ba: 32ff movi r2, 255 + 27bc: 6448 cmphs r2, r1 + 27be: 6583 mvcv r6 + 27c0: 46c3 lsli r6, r6, 3 + 27c2: 0792 br 0x26e6 // 26e6 <__umoddi3+0xda> + 27c4: 33ff movi r3, 255 + 27c6: 648c cmphs r3, r2 + 27c8: 0bb3 bt 0x272e // 272e <__umoddi3+0x122> + 27ca: 3708 movi r7, 8 + 27cc: 07b1 br 0x272e // 272e <__umoddi3+0x122> + 27ce: 1337 lrw r1, 0xffffff // 29a8 <__umoddi3+0x39c> + 27d0: 6484 cmphs r1, r2 + 27d2: 0ccb bf 0x2968 // 2968 <__umoddi3+0x35c> + 27d4: 3710 movi r7, 16 + 27d6: 072f br 0x2634 // 2634 <__umoddi3+0x28> + 27d8: 6cc3 mov r3, r0 + 27da: 705c lsl r1, r7 + 27dc: 70d9 lsr r3, r6 + 27de: 6cc4 or r3, r1 + 27e0: 6c57 mov r1, r5 + 27e2: 6c93 mov r2, r4 + 27e4: 7059 lsr r1, r6 + 27e6: 711c lsl r4, r7 + 27e8: 7099 lsr r2, r6 + 27ea: 6c50 or r1, r4 + 27ec: 701c lsl r0, r7 + 27ee: 4b90 lsri r4, r3, 16 + 27f0: 715c lsl r5, r7 + 27f2: b803 st.w r0, (r14, 0xc) + 27f4: b820 st.w r1, (r14, 0x0) + 27f6: b8a4 st.w r5, (r14, 0x10) + 27f8: 6c53 mov r1, r4 + 27fa: 754d zexth r5, r3 + 27fc: 6c0b mov r0, r2 + 27fe: b862 st.w r3, (r14, 0x8) + 2800: b8a1 st.w r5, (r14, 0x4) + 2802: b846 st.w r2, (r14, 0x18) + 2804: e0000e2e bsr 0x4460 // 4460 <__umodsi3> + 2808: 9846 ld.w r2, (r14, 0x18) + 280a: b805 st.w r0, (r14, 0x14) + 280c: 6c53 mov r1, r4 + 280e: 6c0b mov r0, r2 + 2810: e0000e04 bsr 0x4418 // 4418 <__udivsi3> + 2814: 9841 ld.w r2, (r14, 0x4) + 2816: 7c80 mult r2, r0 + 2818: 9865 ld.w r3, (r14, 0x14) + 281a: 6d43 mov r5, r0 + 281c: 9800 ld.w r0, (r14, 0x0) + 281e: 4330 lsli r1, r3, 16 + 2820: 4870 lsri r3, r0, 16 + 2822: 6cc4 or r3, r1 + 2824: 648c cmphs r3, r2 + 2826: 0807 bt 0x2834 // 2834 <__umoddi3+0x228> + 2828: 9802 ld.w r0, (r14, 0x8) + 282a: 60c0 addu r3, r0 + 282c: 640c cmphs r3, r0 + 282e: 5d23 subi r1, r5, 1 + 2830: 08a3 bt 0x2976 // 2976 <__umoddi3+0x36a> + 2832: 6d47 mov r5, r1 + 2834: 60ca subu r3, r2 + 2836: 6c53 mov r1, r4 + 2838: 6c0f mov r0, r3 + 283a: b866 st.w r3, (r14, 0x18) + 283c: e0000e12 bsr 0x4460 // 4460 <__umodsi3> + 2840: 9866 ld.w r3, (r14, 0x18) + 2842: 6c53 mov r1, r4 + 2844: b805 st.w r0, (r14, 0x14) + 2846: 6c0f mov r0, r3 + 2848: e0000de8 bsr 0x4418 // 4418 <__udivsi3> + 284c: 9845 ld.w r2, (r14, 0x14) + 284e: d86e1000 ld.h r3, (r14, 0x0) + 2852: 9821 ld.w r1, (r14, 0x4) + 2854: 4250 lsli r2, r2, 16 + 2856: 750d zexth r4, r3 + 2858: 7c40 mult r1, r0 + 285a: 6c90 or r2, r4 + 285c: 6448 cmphs r2, r1 + 285e: 0807 bt 0x286c // 286c <__umoddi3+0x260> + 2860: 9882 ld.w r4, (r14, 0x8) + 2862: 6090 addu r2, r4 + 2864: 6508 cmphs r2, r4 + 2866: 5863 subi r3, r0, 1 + 2868: 0882 bt 0x296c // 296c <__umoddi3+0x360> + 286a: 6c0f mov r0, r3 + 286c: 45b0 lsli r5, r5, 16 + 286e: 6d40 or r5, r0 + 2870: 74d5 zexth r3, r5 + 2872: 9803 ld.w r0, (r14, 0xc) + 2874: 4db0 lsri r5, r5, 16 + 2876: 6d0f mov r4, r3 + 2878: 6086 subu r2, r1 + 287a: 7441 zexth r1, r0 + 287c: 4810 lsri r0, r0, 16 + 287e: 7d04 mult r4, r1 + 2880: 7cc0 mult r3, r0 + 2882: 7c54 mult r1, r5 + 2884: 60c4 addu r3, r1 + 2886: 7d40 mult r5, r0 + 2888: 4c10 lsri r0, r4, 16 + 288a: 60c0 addu r3, r0 + 288c: 644c cmphs r3, r1 + 288e: 0804 bt 0x2896 // 2896 <__umoddi3+0x28a> + 2890: 3180 movi r1, 128 + 2892: 4129 lsli r1, r1, 9 + 2894: 6144 addu r5, r1 + 2896: 4b30 lsri r1, r3, 16 + 2898: 6144 addu r5, r1 + 289a: 4370 lsli r3, r3, 16 + 289c: 7511 zexth r4, r4 + 289e: 6548 cmphs r2, r5 + 28a0: 60d0 addu r3, r4 + 28a2: 0c56 bf 0x294e // 294e <__umoddi3+0x342> + 28a4: 654a cmpne r2, r5 + 28a6: 0c76 bf 0x2992 // 2992 <__umoddi3+0x386> + 28a8: 5a35 subu r1, r2, r5 + 28aa: 6c0f mov r0, r3 + 28ac: 9864 ld.w r3, (r14, 0x10) + 28ae: 5b01 subu r0, r3, r0 + 28b0: 640c cmphs r3, r0 + 28b2: 64c3 mvcv r3 + 28b4: 598d subu r4, r1, r3 + 28b6: 6d53 mov r5, r4 + 28b8: 7158 lsl r5, r6 + 28ba: 701d lsr r0, r7 + 28bc: 6c53 mov r1, r4 + 28be: 6c14 or r0, r5 + 28c0: 705d lsr r1, r7 + 28c2: 1407 addi r14, r14, 28 + 28c4: 1494 pop r4-r7, r15 + 28c6: 9801 ld.w r0, (r14, 0x4) + 28c8: 6c57 mov r1, r5 + 28ca: 6cd3 mov r3, r4 + 28cc: 705d lsr r1, r7 + 28ce: 7100 lsl r4, r0 + 28d0: 7080 lsl r2, r0 + 28d2: 6c50 or r1, r4 + 28d4: 70dd lsr r3, r7 + 28d6: 6d07 mov r4, r1 + 28d8: 4af0 lsri r7, r2, 16 + 28da: b822 st.w r1, (r14, 0x8) + 28dc: 7449 zexth r1, r2 + 28de: 7140 lsl r5, r0 + 28e0: 6d87 mov r6, r1 + 28e2: 6c0f mov r0, r3 + 28e4: 6c5f mov r1, r7 + 28e6: b844 st.w r2, (r14, 0x10) + 28e8: b8a0 st.w r5, (r14, 0x0) + 28ea: b863 st.w r3, (r14, 0xc) + 28ec: e0000dba bsr 0x4460 // 4460 <__umodsi3> + 28f0: 9863 ld.w r3, (r14, 0xc) + 28f2: 6d43 mov r5, r0 + 28f4: 6c5f mov r1, r7 + 28f6: 6c0f mov r0, r3 + 28f8: e0000d90 bsr 0x4418 // 4418 <__udivsi3> + 28fc: 45b0 lsli r5, r5, 16 + 28fe: 4c70 lsri r3, r4, 16 + 2900: 7c18 mult r0, r6 + 2902: 6d4c or r5, r3 + 2904: 6414 cmphs r5, r0 + 2906: 9844 ld.w r2, (r14, 0x10) + 2908: 0807 bt 0x2916 // 2916 <__umoddi3+0x30a> + 290a: 6148 addu r5, r2 + 290c: 6494 cmphs r5, r2 + 290e: 0c04 bf 0x2916 // 2916 <__umoddi3+0x30a> + 2910: 6414 cmphs r5, r0 + 2912: 0802 bt 0x2916 // 2916 <__umoddi3+0x30a> + 2914: 6148 addu r5, r2 + 2916: 6142 subu r5, r0 + 2918: 6c5f mov r1, r7 + 291a: 6c17 mov r0, r5 + 291c: b843 st.w r2, (r14, 0xc) + 291e: e0000da1 bsr 0x4460 // 4460 <__umodsi3> + 2922: 6d03 mov r4, r0 + 2924: 6c5f mov r1, r7 + 2926: 6c17 mov r0, r5 + 2928: e0000d78 bsr 0x4418 // 4418 <__udivsi3> + 292c: d86e1004 ld.h r3, (r14, 0x8) + 2930: 4490 lsli r4, r4, 16 + 2932: 744d zexth r1, r3 + 2934: 7c18 mult r0, r6 + 2936: 6d04 or r4, r1 + 2938: 6410 cmphs r4, r0 + 293a: 9843 ld.w r2, (r14, 0xc) + 293c: 0807 bt 0x294a // 294a <__umoddi3+0x33e> + 293e: 6108 addu r4, r2 + 2940: 6490 cmphs r4, r2 + 2942: 0c04 bf 0x294a // 294a <__umoddi3+0x33e> + 2944: 6410 cmphs r4, r0 + 2946: 0802 bt 0x294a // 294a <__umoddi3+0x33e> + 2948: 6108 addu r4, r2 + 294a: 6102 subu r4, r0 + 294c: 0700 br 0x274c // 274c <__umoddi3+0x140> + 294e: 9823 ld.w r1, (r14, 0xc) + 2950: 5b05 subu r0, r3, r1 + 2952: 640c cmphs r3, r0 + 2954: 9822 ld.w r1, (r14, 0x8) + 2956: 6146 subu r5, r1 + 2958: 64c3 mvcv r3 + 295a: 614e subu r5, r3 + 295c: 5a35 subu r1, r2, r5 + 295e: 07a7 br 0x28ac // 28ac <__umoddi3+0x2a0> + 2960: 3618 movi r6, 24 + 2962: 06c2 br 0x26e6 // 26e6 <__umoddi3+0xda> + 2964: 3718 movi r7, 24 + 2966: 06e4 br 0x272e // 272e <__umoddi3+0x122> + 2968: 3718 movi r7, 24 + 296a: 0665 br 0x2634 // 2634 <__umoddi3+0x28> + 296c: 6448 cmphs r2, r1 + 296e: 0b7e bt 0x286a // 286a <__umoddi3+0x25e> + 2970: 2801 subi r0, 2 + 2972: 6090 addu r2, r4 + 2974: 077c br 0x286c // 286c <__umoddi3+0x260> + 2976: 648c cmphs r3, r2 + 2978: 0b5d bt 0x2832 // 2832 <__umoddi3+0x226> + 297a: 2d01 subi r5, 2 + 297c: 60c0 addu r3, r0 + 297e: 075b br 0x2834 // 2834 <__umoddi3+0x228> + 2980: 6148 addu r5, r2 + 2982: 06a2 br 0x26c6 // 26c6 <__umoddi3+0xba> + 2984: 6108 addu r4, r2 + 2986: 06fa br 0x277a // 277a <__umoddi3+0x16e> + 2988: 60c8 addu r3, r2 + 298a: 0683 br 0x2690 // 2690 <__umoddi3+0x84> + 298c: 6c17 mov r0, r5 + 298e: 6c4f mov r1, r3 + 2990: 06bf br 0x270e // 270e <__umoddi3+0x102> + 2992: 9824 ld.w r1, (r14, 0x10) + 2994: 64c4 cmphs r1, r3 + 2996: 0fdc bf 0x294e // 294e <__umoddi3+0x342> + 2998: 6c0f mov r0, r3 + 299a: 3100 movi r1, 0 + 299c: 0788 br 0x28ac // 28ac <__umoddi3+0x2a0> + 299e: 0000 bkpt + 29a0: 0000ffff .long 0x0000ffff + 29a4: 00005bf0 .long 0x00005bf0 + 29a8: 00ffffff .long 0x00ffffff + +000029ac : + 29ac: 14c2 push r4-r5 + 29ae: 3300 movi r3, 0 + 29b0: 644d cmplt r3, r1 + 29b2: 0803 bt 0x29b8 // 29b8 + 29b4: 6c0f mov r0, r3 + 29b6: 1482 pop r4-r5 + 29b8: 5aac addu r5, r2, r3 + 29ba: 588c addu r4, r0, r3 + 29bc: 2300 addi r3, 1 + 29be: 85a0 ld.b r5, (r5, 0x0) + 29c0: 3b43 cmpnei r3, 3 + 29c2: a4a0 st.b r5, (r4, 0x0) + 29c4: 0bf6 bt 0x29b0 // 29b0 + 29c6: 3923 cmplti r1, 4 + 29c8: 0bf6 bt 0x29b4 // 29b4 + 29ca: 3300 movi r3, 0 + 29cc: a063 st.b r3, (r0, 0x3) + 29ce: 3304 movi r3, 4 + 29d0: 07f2 br 0x29b4 // 29b4 + +000029d2 <__GI___dtostr>: + 29d2: 14d4 push r4-r7, r15 + 29d4: 142c subi r14, r14, 48 + 29d6: 6d8f mov r6, r3 + 29d8: 9871 ld.w r3, (r14, 0x44) + 29da: b80a st.w r0, (r14, 0x28) + 29dc: b824 st.w r1, (r14, 0x10) + 29de: b842 st.w r2, (r14, 0x8) + 29e0: b86b st.w r3, (r14, 0x2c) + 29e2: 98f2 ld.w r7, (r14, 0x48) + 29e4: e0000244 bsr 0x2e6c // 2e6c <__isinf> + 29e8: 3840 cmpnei r0, 0 + 29ea: 0c0a bf 0x29fe // 29fe <__GI___dtostr+0x2c> + 29ec: 0244 lrw r2, 0x60eb // 2cd8 <__GI___dtostr+0x306> + 29ee: 6c5b mov r1, r6 + 29f0: 9802 ld.w r0, (r14, 0x8) + 29f2: e3ffffdd bsr 0x29ac // 29ac + 29f6: b809 st.w r0, (r14, 0x24) + 29f8: 9809 ld.w r0, (r14, 0x24) + 29fa: 140c addi r14, r14, 48 + 29fc: 1494 pop r4-r7, r15 + 29fe: 980a ld.w r0, (r14, 0x28) + 2a00: 9824 ld.w r1, (r14, 0x10) + 2a02: e0000185 bsr 0x2d0c // 2d0c <__isnan> + 2a06: 3840 cmpnei r0, 0 + 2a08: b809 st.w r0, (r14, 0x24) + 2a0a: 0c03 bf 0x2a10 // 2a10 <__GI___dtostr+0x3e> + 2a0c: 024b lrw r2, 0x60ef // 2cdc <__GI___dtostr+0x30a> + 2a0e: 07f0 br 0x29ee // 29ee <__GI___dtostr+0x1c> + 2a10: 3200 movi r2, 0 + 2a12: 3300 movi r3, 0 + 2a14: 980a ld.w r0, (r14, 0x28) + 2a16: 9824 ld.w r1, (r14, 0x10) + 2a18: e0000242 bsr 0x2e9c // 2e9c <__eqdf2> + 2a1c: 3840 cmpnei r0, 0 + 2a1e: 082d bt 0x2a78 // 2a78 <__GI___dtostr+0xa6> + 2a20: 3f40 cmpnei r7, 0 + 2a22: 0d57 bf 0x2cd0 // 2cd0 <__GI___dtostr+0x2fe> + 2a24: 5fa6 addi r5, r7, 2 + 2a26: 6558 cmphs r6, r5 + 2a28: 0d56 bf 0x2cd4 // 2cd4 <__GI___dtostr+0x302> + 2a2a: 3d40 cmpnei r5, 0 + 2a2c: 0c0b bf 0x2a42 // 2a42 <__GI___dtostr+0x70> + 2a2e: 9824 ld.w r1, (r14, 0x10) + 2a30: 39df btsti r1, 31 + 2a32: 0c1a bf 0x2a66 // 2a66 <__GI___dtostr+0x94> + 2a34: 9802 ld.w r0, (r14, 0x8) + 2a36: 322d movi r2, 45 + 2a38: a040 st.b r2, (r0, 0x0) + 2a3a: 5d02 addi r0, r5, 1 + 2a3c: 3501 movi r5, 1 + 2a3e: 6414 cmphs r5, r0 + 2a40: 0c16 bf 0x2a6c // 2a6c <__GI___dtostr+0x9a> + 2a42: 9882 ld.w r4, (r14, 0x8) + 2a44: 8420 ld.b r1, (r4, 0x0) + 2a46: 3330 movi r3, 48 + 2a48: 64c6 cmpne r1, r3 + 2a4a: 3000 movi r0, 0 + 2a4c: 6001 addc r0, r0 + 2a4e: 9842 ld.w r2, (r14, 0x8) + 2a50: 9822 ld.w r1, (r14, 0x8) + 2a52: 6008 addu r0, r2 + 2a54: 342e movi r4, 46 + 2a56: 6054 addu r1, r5 + 2a58: 3300 movi r3, 0 + 2a5a: a081 st.b r4, (r0, 0x1) + 2a5c: b8a9 st.w r5, (r14, 0x24) + 2a5e: a160 st.b r3, (r1, 0x0) + 2a60: 07cc br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2a62: 3501 movi r5, 1 + 2a64: 07e5 br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2a66: 6c17 mov r0, r5 + 2a68: 3500 movi r5, 0 + 2a6a: 07ea br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a6c: 9842 ld.w r2, (r14, 0x8) + 2a6e: 6094 addu r2, r5 + 2a70: 3430 movi r4, 48 + 2a72: a280 st.b r4, (r2, 0x0) + 2a74: 2500 addi r5, 1 + 2a76: 07e4 br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a78: 3200 movi r2, 0 + 2a7a: 3300 movi r3, 0 + 2a7c: 980a ld.w r0, (r14, 0x28) + 2a7e: 9824 ld.w r1, (r14, 0x10) + 2a80: e000022c bsr 0x2ed8 // 2ed8 <__ltdf2> + 2a84: 38df btsti r0, 31 + 2a86: 0c8e bf 0x2ba2 // 2ba2 <__GI___dtostr+0x1d0> + 2a88: 3180 movi r1, 128 + 2a8a: 98a2 ld.w r5, (r14, 0x8) + 2a8c: 9884 ld.w r4, (r14, 0x10) + 2a8e: 4158 lsli r2, r1, 24 + 2a90: 332d movi r3, 45 + 2a92: a560 st.b r3, (r5, 0x0) + 2a94: 6108 addu r4, r2 + 2a96: 2e00 subi r6, 1 + 2a98: 2500 addi r5, 1 + 2a9a: 3000 movi r0, 0 + 2a9c: 032e lrw r1, 0x3fe00000 // 2ce0 <__GI___dtostr+0x30e> + 2a9e: 3300 movi r3, 0 + 2aa0: b865 st.w r3, (r14, 0x14) + 2aa2: 9845 ld.w r2, (r14, 0x14) + 2aa4: 65ca cmpne r2, r7 + 2aa6: 0881 bt 0x2ba8 // 2ba8 <__GI___dtostr+0x1d6> + 2aa8: 6c83 mov r2, r0 + 2aaa: 6cc7 mov r3, r1 + 2aac: 980a ld.w r0, (r14, 0x28) + 2aae: 6c53 mov r1, r4 + 2ab0: e3fff2b6 bsr 0x101c // 101c <__adddf3> + 2ab4: 3200 movi r2, 0 + 2ab6: 0373 lrw r3, 0x3ff00000 // 2ce4 <__GI___dtostr+0x312> + 2ab8: b806 st.w r0, (r14, 0x18) + 2aba: b827 st.w r1, (r14, 0x1c) + 2abc: e000020e bsr 0x2ed8 // 2ed8 <__ltdf2> + 2ac0: 38df btsti r0, 31 + 2ac2: 0c05 bf 0x2acc // 2acc <__GI___dtostr+0xfa> + 2ac4: 3430 movi r4, 48 + 2ac6: a580 st.b r4, (r5, 0x0) + 2ac8: 2e00 subi r6, 1 + 2aca: 2500 addi r5, 1 + 2acc: 9804 ld.w r0, (r14, 0x10) + 2ace: 4021 lsli r1, r0, 1 + 2ad0: 0379 lrw r3, 0xfffffc01 // 2ce8 <__GI___dtostr+0x316> + 2ad2: 4915 lsri r0, r1, 21 + 2ad4: 600c addu r0, r3 + 2ad6: e3fff4f5 bsr 0x14c0 // 14c0 <__floatsidf> + 2ada: 035a lrw r2, 0x509f79ff // 2cec <__GI___dtostr+0x31a> + 2adc: 037a lrw r3, 0x3fd34413 // 2cf0 <__GI___dtostr+0x31e> + 2ade: e3fff2d3 bsr 0x1084 // 1084 <__muldf3> + 2ae2: e3fff527 bsr 0x1530 // 1530 <__fixdfsi> + 2ae6: 5842 addi r2, r0, 1 + 2ae8: 3a20 cmplti r2, 1 + 2aea: b848 st.w r2, (r14, 0x20) + 2aec: 08e7 bt 0x2cba // 2cba <__GI___dtostr+0x2e8> + 2aee: 033d lrw r1, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2af0: 6dcb mov r7, r2 + 2af2: 3400 movi r4, 0 + 2af4: b823 st.w r1, (r14, 0xc) + 2af6: 3f0a cmphsi r7, 11 + 2af8: 085f bt 0x2bb6 // 2bb6 <__GI___dtostr+0x1e4> + 2afa: 3f41 cmpnei r7, 1 + 2afc: 0868 bt 0x2bcc // 2bcc <__GI___dtostr+0x1fa> + 2afe: 135f lrw r2, 0xcccccccd // 2cf8 <__GI___dtostr+0x326> + 2b00: 137f lrw r3, 0x3feccccc // 2cfc <__GI___dtostr+0x32a> + 2b02: 6c13 mov r0, r4 + 2b04: 9823 ld.w r1, (r14, 0xc) + 2b06: e3fff483 bsr 0x140c // 140c <__gtdf2> + 2b0a: 3820 cmplti r0, 1 + 2b0c: 0c6a bf 0x2be0 // 2be0 <__GI___dtostr+0x20e> + 2b0e: 9862 ld.w r3, (r14, 0x8) + 2b10: 64d6 cmpne r5, r3 + 2b12: 0807 bt 0x2b20 // 2b20 <__GI___dtostr+0x14e> + 2b14: 3e40 cmpnei r6, 0 + 2b16: 0f71 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b18: 3230 movi r2, 48 + 2b1a: a540 st.b r2, (r5, 0x0) + 2b1c: 2e00 subi r6, 1 + 2b1e: 2500 addi r5, 1 + 2b20: 9805 ld.w r0, (r14, 0x14) + 2b22: 3840 cmpnei r0, 0 + 2b24: 08cf bt 0x2cc2 // 2cc2 <__GI___dtostr+0x2f0> + 2b26: 9822 ld.w r1, (r14, 0x8) + 2b28: 5d65 subu r3, r5, r1 + 2b2a: 2300 addi r3, 1 + 2b2c: 984b ld.w r2, (r14, 0x2c) + 2b2e: 648c cmphs r3, r2 + 2b30: 08a5 bt 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b32: 3e40 cmpnei r6, 0 + 2b34: 0f62 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b36: 372e movi r7, 46 + 2b38: a5e0 st.b r7, (r5, 0x0) + 2b3a: 980b ld.w r0, (r14, 0x2c) + 2b3c: 5de2 addi r7, r5, 1 + 2b3e: 9822 ld.w r1, (r14, 0x8) + 2b40: 2000 addi r0, 1 + 2b42: 5f65 subu r3, r7, r1 + 2b44: 584d subu r2, r0, r3 + 2b46: 2e00 subi r6, 1 + 2b48: b845 st.w r2, (r14, 0x14) + 2b4a: 9805 ld.w r0, (r14, 0x14) + 2b4c: 6418 cmphs r6, r0 + 2b4e: 0f55 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b50: 6d43 mov r5, r0 + 2b52: 615c addu r5, r7 + 2b54: 36ff movi r6, 255 + 2b56: 655e cmpne r7, r5 + 2b58: 0c91 bf 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b5a: 6c93 mov r2, r4 + 2b5c: 9863 ld.w r3, (r14, 0xc) + 2b5e: 9806 ld.w r0, (r14, 0x18) + 2b60: 9827 ld.w r1, (r14, 0x1c) + 2b62: e3fff3ab bsr 0x12b8 // 12b8 <__divdf3> + 2b66: e3fff4e5 bsr 0x1530 // 1530 <__fixdfsi> + 2b6a: 3130 movi r1, 48 + 2b6c: 6040 addu r1, r0 + 2b6e: a720 st.b r1, (r7, 0x0) + 2b70: 6818 and r0, r6 + 2b72: e3fff4a7 bsr 0x14c0 // 14c0 <__floatsidf> + 2b76: 6c93 mov r2, r4 + 2b78: 9863 ld.w r3, (r14, 0xc) + 2b7a: e3fff285 bsr 0x1084 // 1084 <__muldf3> + 2b7e: 6c83 mov r2, r0 + 2b80: 6cc7 mov r3, r1 + 2b82: 9806 ld.w r0, (r14, 0x18) + 2b84: 9827 ld.w r1, (r14, 0x1c) + 2b86: e3fff263 bsr 0x104c // 104c <__subdf3> + 2b8a: b806 st.w r0, (r14, 0x18) + 2b8c: b827 st.w r1, (r14, 0x1c) + 2b8e: 6c13 mov r0, r4 + 2b90: 9823 ld.w r1, (r14, 0xc) + 2b92: 3200 movi r2, 0 + 2b94: 1278 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2b96: e3fff391 bsr 0x12b8 // 12b8 <__divdf3> + 2b9a: 2700 addi r7, 1 + 2b9c: 6d03 mov r4, r0 + 2b9e: b823 st.w r1, (r14, 0xc) + 2ba0: 07db br 0x2b56 // 2b56 <__GI___dtostr+0x184> + 2ba2: 98a2 ld.w r5, (r14, 0x8) + 2ba4: 9884 ld.w r4, (r14, 0x10) + 2ba6: 077a br 0x2a9a // 2a9a <__GI___dtostr+0xc8> + 2ba8: 1276 lrw r3, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2baa: 1257 lrw r2, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2bac: e3fff26c bsr 0x1084 // 1084 <__muldf3> + 2bb0: 9865 ld.w r3, (r14, 0x14) + 2bb2: 2300 addi r3, 1 + 2bb4: 0776 br 0x2aa0 // 2aa0 <__GI___dtostr+0xce> + 2bb6: 3080 movi r0, 128 + 2bb8: 4056 lsli r2, r0, 22 + 2bba: 9823 ld.w r1, (r14, 0xc) + 2bbc: 6c13 mov r0, r4 + 2bbe: 1273 lrw r3, 0x4202a05f // 2d08 <__GI___dtostr+0x336> + 2bc0: e3fff262 bsr 0x1084 // 1084 <__muldf3> + 2bc4: 6d03 mov r4, r0 + 2bc6: b823 st.w r1, (r14, 0xc) + 2bc8: 2f09 subi r7, 10 + 2bca: 0796 br 0x2af6 // 2af6 <__GI___dtostr+0x124> + 2bcc: 6c13 mov r0, r4 + 2bce: 9823 ld.w r1, (r14, 0xc) + 2bd0: 3200 movi r2, 0 + 2bd2: 1269 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2bd4: e3fff258 bsr 0x1084 // 1084 <__muldf3> + 2bd8: 6d03 mov r4, r0 + 2bda: b823 st.w r1, (r14, 0xc) + 2bdc: 2f00 subi r7, 1 + 2bde: 078e br 0x2afa // 2afa <__GI___dtostr+0x128> + 2be0: 9863 ld.w r3, (r14, 0xc) + 2be2: 6c93 mov r2, r4 + 2be4: 9806 ld.w r0, (r14, 0x18) + 2be6: 9827 ld.w r1, (r14, 0x1c) + 2be8: e3fff368 bsr 0x12b8 // 12b8 <__divdf3> + 2bec: e3fff4a2 bsr 0x1530 // 1530 <__fixdfsi> + 2bf0: 3f40 cmpnei r7, 0 + 2bf2: 74c0 zextb r3, r0 + 2bf4: 0c03 bf 0x2bfa // 2bfa <__GI___dtostr+0x228> + 2bf6: 3b40 cmpnei r3, 0 + 2bf8: 0c58 bf 0x2ca8 // 2ca8 <__GI___dtostr+0x2d6> + 2bfa: 232f addi r3, 48 + 2bfc: 3e40 cmpnei r6, 0 + 2bfe: a560 st.b r3, (r5, 0x0) + 2c00: 2500 addi r5, 1 + 2c02: 0842 bt 0x2c86 // 2c86 <__GI___dtostr+0x2b4> + 2c04: 6c93 mov r2, r4 + 2c06: 9863 ld.w r3, (r14, 0xc) + 2c08: 980a ld.w r0, (r14, 0x28) + 2c0a: 9824 ld.w r1, (r14, 0x10) + 2c0c: e3fff356 bsr 0x12b8 // 12b8 <__divdf3> + 2c10: 9845 ld.w r2, (r14, 0x14) + 2c12: 988b ld.w r4, (r14, 0x2c) + 2c14: b841 st.w r2, (r14, 0x4) + 2c16: b880 st.w r4, (r14, 0x0) + 2c18: 3300 movi r3, 0 + 2c1a: 9842 ld.w r2, (r14, 0x8) + 2c1c: e3fffedb bsr 0x29d2 // 29d2 <__GI___dtostr> + 2c20: 3840 cmpnei r0, 0 + 2c22: 0eeb bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c24: 5dc0 addu r6, r5, r0 + 2c26: 37fa movi r7, 250 + 2c28: 3565 movi r5, 101 + 2c2a: 6c02 nor r0, r0 + 2c2c: a6a0 st.b r5, (r6, 0x0) + 2c2e: 6d03 mov r4, r0 + 2c30: 5ea2 addi r5, r6, 1 + 2c32: 3101 movi r1, 1 + 2c34: 3604 movi r6, 4 + 2c36: 47e2 lsli r7, r7, 2 + 2c38: 9808 ld.w r0, (r14, 0x20) + 2c3a: 65c1 cmplt r0, r7 + 2c3c: 0c03 bf 0x2c42 // 2c42 <__GI___dtostr+0x270> + 2c3e: 3940 cmpnei r1, 0 + 2c40: 0811 bt 0x2c62 // 2c62 <__GI___dtostr+0x290> + 2c42: 3c40 cmpnei r4, 0 + 2c44: 0c08 bf 0x2c54 // 2c54 <__GI___dtostr+0x282> + 2c46: 6c5f mov r1, r7 + 2c48: 9808 ld.w r0, (r14, 0x20) + 2c4a: e0000bd5 bsr 0x43f4 // 43f4 <__divsi3> + 2c4e: 202f addi r0, 48 + 2c50: a500 st.b r0, (r5, 0x0) + 2c52: 2500 addi r5, 1 + 2c54: 6c5f mov r1, r7 + 2c56: 9808 ld.w r0, (r14, 0x20) + 2c58: e0000bf2 bsr 0x443c // 443c <__modsi3> + 2c5c: 2c00 subi r4, 1 + 2c5e: b808 st.w r0, (r14, 0x20) + 2c60: 3100 movi r1, 0 + 2c62: b823 st.w r1, (r14, 0xc) + 2c64: 6c1f mov r0, r7 + 2c66: 310a movi r1, 10 + 2c68: 2e00 subi r6, 1 + 2c6a: e0000bc5 bsr 0x43f4 // 43f4 <__divsi3> + 2c6e: 3e40 cmpnei r6, 0 + 2c70: 6dc3 mov r7, r0 + 2c72: 9823 ld.w r1, (r14, 0xc) + 2c74: 0be2 bt 0x2c38 // 2c38 <__GI___dtostr+0x266> + 2c76: 3c40 cmpnei r4, 0 + 2c78: 0ec0 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c7a: 9842 ld.w r2, (r14, 0x8) + 2c7c: 3300 movi r3, 0 + 2c7e: 5d89 subu r4, r5, r2 + 2c80: a560 st.b r3, (r5, 0x0) + 2c82: b889 st.w r4, (r14, 0x24) + 2c84: 06ba br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c86: 7400 zextb r0, r0 + 2c88: e3fff41c bsr 0x14c0 // 14c0 <__floatsidf> + 2c8c: 6c93 mov r2, r4 + 2c8e: 9863 ld.w r3, (r14, 0xc) + 2c90: e3fff1fa bsr 0x1084 // 1084 <__muldf3> + 2c94: 6c83 mov r2, r0 + 2c96: 6cc7 mov r3, r1 + 2c98: 9806 ld.w r0, (r14, 0x18) + 2c9a: 9827 ld.w r1, (r14, 0x1c) + 2c9c: e3fff1d8 bsr 0x104c // 104c <__subdf3> + 2ca0: b806 st.w r0, (r14, 0x18) + 2ca2: b827 st.w r1, (r14, 0x1c) + 2ca4: 2e00 subi r6, 1 + 2ca6: 3700 movi r7, 0 + 2ca8: 6c13 mov r0, r4 + 2caa: 9823 ld.w r1, (r14, 0xc) + 2cac: 3200 movi r2, 0 + 2cae: 1072 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2cb0: e3fff304 bsr 0x12b8 // 12b8 <__divdf3> + 2cb4: 6d03 mov r4, r0 + 2cb6: b823 st.w r1, (r14, 0xc) + 2cb8: 0723 br 0x2afe // 2afe <__GI___dtostr+0x12c> + 2cba: 1012 lrw r0, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2cbc: 1092 lrw r4, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2cbe: b803 st.w r0, (r14, 0xc) + 2cc0: 0727 br 0x2b0e // 2b0e <__GI___dtostr+0x13c> + 2cc2: 3e40 cmpnei r6, 0 + 2cc4: 0e9a bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2cc6: 372e movi r7, 46 + 2cc8: a5e0 st.b r7, (r5, 0x0) + 2cca: 2e00 subi r6, 1 + 2ccc: 5de2 addi r7, r5, 1 + 2cce: 073e br 0x2b4a // 2b4a <__GI___dtostr+0x178> + 2cd0: 3e40 cmpnei r6, 0 + 2cd2: 0ac8 bt 0x2a62 // 2a62 <__GI___dtostr+0x90> + 2cd4: 3508 movi r5, 8 + 2cd6: 06ac br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2cd8: 000060eb .long 0x000060eb + 2cdc: 000060ef .long 0x000060ef + 2ce0: 3fe00000 .long 0x3fe00000 + 2ce4: 3ff00000 .long 0x3ff00000 + 2ce8: fffffc01 .long 0xfffffc01 + 2cec: 509f79ff .long 0x509f79ff + 2cf0: 3fd34413 .long 0x3fd34413 + 2cf4: 40240000 .long 0x40240000 + 2cf8: cccccccd .long 0xcccccccd + 2cfc: 3feccccc .long 0x3feccccc + 2d00: 3fb99999 .long 0x3fb99999 + 2d04: 9999999a .long 0x9999999a + 2d08: 4202a05f .long 0x4202a05f + +00002d0c <__isnan>: + 2d0c: 416c lsli r3, r1, 12 + 2d0e: 4b4c lsri r2, r3, 12 + 2d10: 6c08 or r0, r2 + 2d12: 3840 cmpnei r0, 0 + 2d14: 0c0e bf 0x2d30 // 2d30 <__isnan+0x24> + 2d16: 1008 lrw r0, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d18: 6840 and r1, r0 + 2d1a: 6cc7 mov r3, r1 + 2d1c: 3000 movi r0, 0 + 2d1e: 1026 lrw r1, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d20: 3200 movi r2, 0 + 2d22: 6c81 xor r2, r0 + 2d24: 6cc5 xor r3, r1 + 2d26: 6c8c or r2, r3 + 2d28: 3a40 cmpnei r2, 0 + 2d2a: 6443 mvcv r1 + 2d2c: 7404 zextb r0, r1 + 2d2e: 783c jmp r15 + 2d30: 3000 movi r0, 0 + 2d32: 07fe br 0x2d2e // 2d2e <__isnan+0x22> + 2d34: 7ff00000 .long 0x7ff00000 + +00002d38 <__strlen_fast>: + 2d38: 6c43 mov r1, r0 + 2d3a: 3203 movi r2, 3 + 2d3c: 6808 and r0, r2 + 2d3e: 3840 cmpnei r0, 0 + 2d40: 0c08 bf 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d42: 3000 movi r0, 0 + 2d44: 8140 ld.b r2, (r1, 0x0) + 2d46: 3a40 cmpnei r2, 0 + 2d48: 0c20 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d4a: 2100 addi r1, 1 + 2d4c: 2000 addi r0, 1 + 2d4e: 07fb br 0x2d44 // 2d44 <__strlen_fast+0xc> + 2d50: 9140 ld.w r2, (r1, 0x0) + 2d52: 680b tstnbz r2 + 2d54: 0c04 bf 0x2d5c // 2d5c <__strlen_fast+0x24> + 2d56: 2103 addi r1, 4 + 2d58: 2003 addi r0, 4 + 2d5a: 07fb br 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d5c: 31ff movi r1, 255 + 2d5e: 6ccb mov r3, r2 + 2d60: 68c4 and r3, r1 + 2d62: 3b40 cmpnei r3, 0 + 2d64: 0c12 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d66: 2000 addi r0, 1 + 2d68: 3110 movi r1, 16 + 2d6a: 6ccb mov r3, r2 + 2d6c: 70c4 lsl r3, r1 + 2d6e: 3118 movi r1, 24 + 2d70: 70c5 lsr r3, r1 + 2d72: 3b40 cmpnei r3, 0 + 2d74: 0c0a bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d76: 2000 addi r0, 1 + 2d78: 3108 movi r1, 8 + 2d7a: 6ccb mov r3, r2 + 2d7c: 70c4 lsl r3, r1 + 2d7e: 3118 movi r1, 24 + 2d80: 70c5 lsr r3, r1 + 2d82: 3b40 cmpnei r3, 0 + 2d84: 0c02 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d86: 2000 addi r0, 1 + 2d88: 783c jmp r15 + ... + +00002d8c <__strcpy_fast>: + 2d8c: 14c1 push r4 + 2d8e: 6d03 mov r4, r0 + 2d90: 6c87 mov r2, r1 + 2d92: 6c90 or r2, r4 + 2d94: 3303 movi r3, 3 + 2d96: 688c and r2, r3 + 2d98: 3a40 cmpnei r2, 0 + 2d9a: 0c08 bf 0x2daa // 2daa <__strcpy_fast+0x1e> + 2d9c: 8160 ld.b r3, (r1, 0x0) + 2d9e: a460 st.b r3, (r4, 0x0) + 2da0: 2100 addi r1, 1 + 2da2: 2400 addi r4, 1 + 2da4: 3b40 cmpnei r3, 0 + 2da6: 0bfb bt 0x2d9c // 2d9c <__strcpy_fast+0x10> + 2da8: 1481 pop r4 + 2daa: 9160 ld.w r3, (r1, 0x0) + 2dac: 680f tstnbz r3 + 2dae: 0c2e bf 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2db0: b460 st.w r3, (r4, 0x0) + 2db2: 9161 ld.w r3, (r1, 0x4) + 2db4: 680f tstnbz r3 + 2db6: 0c1d bf 0x2df0 // 2df0 <__strcpy_fast+0x64> + 2db8: b461 st.w r3, (r4, 0x4) + 2dba: 9162 ld.w r3, (r1, 0x8) + 2dbc: 680f tstnbz r3 + 2dbe: 0c1b bf 0x2df4 // 2df4 <__strcpy_fast+0x68> + 2dc0: b462 st.w r3, (r4, 0x8) + 2dc2: 9163 ld.w r3, (r1, 0xc) + 2dc4: 680f tstnbz r3 + 2dc6: 0c19 bf 0x2df8 // 2df8 <__strcpy_fast+0x6c> + 2dc8: b463 st.w r3, (r4, 0xc) + 2dca: 9164 ld.w r3, (r1, 0x10) + 2dcc: 680f tstnbz r3 + 2dce: 0c17 bf 0x2dfc // 2dfc <__strcpy_fast+0x70> + 2dd0: b464 st.w r3, (r4, 0x10) + 2dd2: 9165 ld.w r3, (r1, 0x14) + 2dd4: 680f tstnbz r3 + 2dd6: 0c15 bf 0x2e00 // 2e00 <__strcpy_fast+0x74> + 2dd8: b465 st.w r3, (r4, 0x14) + 2dda: 9166 ld.w r3, (r1, 0x18) + 2ddc: 680f tstnbz r3 + 2dde: 0c13 bf 0x2e04 // 2e04 <__strcpy_fast+0x78> + 2de0: b466 st.w r3, (r4, 0x18) + 2de2: 9167 ld.w r3, (r1, 0x1c) + 2de4: 680f tstnbz r3 + 2de6: 0c11 bf 0x2e08 // 2e08 <__strcpy_fast+0x7c> + 2de8: b467 st.w r3, (r4, 0x1c) + 2dea: 241f addi r4, 32 + 2dec: 211f addi r1, 32 + 2dee: 07de br 0x2daa // 2daa <__strcpy_fast+0x1e> + 2df0: 2403 addi r4, 4 + 2df2: 040c br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df4: 2407 addi r4, 8 + 2df6: 040a br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df8: 240b addi r4, 12 + 2dfa: 0408 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2dfc: 240f addi r4, 16 + 2dfe: 0406 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e00: 2413 addi r4, 20 + 2e02: 0404 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e04: 2417 addi r4, 24 + 2e06: 0402 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e08: 241b addi r4, 28 + 2e0a: 3118 movi r1, 24 + 2e0c: 6c8f mov r2, r3 + 2e0e: 7084 lsl r2, r1 + 2e10: 7085 lsr r2, r1 + 2e12: a440 st.b r2, (r4, 0x0) + 2e14: 3a40 cmpnei r2, 0 + 2e16: 0c12 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e18: 3110 movi r1, 16 + 2e1a: 6c8f mov r2, r3 + 2e1c: 7084 lsl r2, r1 + 2e1e: 3118 movi r1, 24 + 2e20: 7085 lsr r2, r1 + 2e22: a441 st.b r2, (r4, 0x1) + 2e24: 3a40 cmpnei r2, 0 + 2e26: 0c0a bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e28: 3108 movi r1, 8 + 2e2a: 6c8f mov r2, r3 + 2e2c: 7084 lsl r2, r1 + 2e2e: 3118 movi r1, 24 + 2e30: 7085 lsr r2, r1 + 2e32: a442 st.b r2, (r4, 0x2) + 2e34: 3a40 cmpnei r2, 0 + 2e36: 0c02 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e38: b460 st.w r3, (r4, 0x0) + 2e3a: 1481 pop r4 + +00002e3c <__GI_strchr>: + 2e3c: 8040 ld.b r2, (r0, 0x0) + 2e3e: 644a cmpne r2, r1 + 2e40: 0c06 bf 0x2e4c // 2e4c <__GI_strchr+0x10> + 2e42: 3a40 cmpnei r2, 0 + 2e44: 0c03 bf 0x2e4a // 2e4a <__GI_strchr+0xe> + 2e46: 2000 addi r0, 1 + 2e48: 07fa br 0x2e3c // 2e3c <__GI_strchr> + 2e4a: 6c0b mov r0, r2 + 2e4c: 783c jmp r15 + ... + +00002e50 <__GI_strerror>: + 2e50: 338f movi r3, 143 + 2e52: 640c cmphs r3, r0 + 2e54: 0c06 bf 0x2e60 // 2e60 <__GI_strerror+0x10> + 2e56: 4002 lsli r0, r0, 2 + 2e58: 1023 lrw r1, 0x5d10 // 2e64 <__GI_strerror+0x14> + 2e5a: 6004 addu r0, r1 + 2e5c: 9000 ld.w r0, (r0, 0x0) + 2e5e: 783c jmp r15 + 2e60: 1002 lrw r0, 0x5f77 // 2e68 <__GI_strerror+0x18> + 2e62: 07fe br 0x2e5e // 2e5e <__GI_strerror+0xe> + 2e64: 00005d10 .long 0x00005d10 + 2e68: 00005f77 .long 0x00005f77 + +00002e6c <__isinf>: + 2e6c: 3840 cmpnei r0, 0 + 2e6e: 6c83 mov r2, r0 + 2e70: 6cc7 mov r3, r1 + 2e72: 0804 bt 0x2e7a // 2e7a <__isinf+0xe> + 2e74: 1028 lrw r1, 0x7ff00000 // 2e94 <__isinf+0x28> + 2e76: 644e cmpne r3, r1 + 2e78: 0c0b bf 0x2e8e // 2e8e <__isinf+0x22> + 2e7a: 3000 movi r0, 0 + 2e7c: 1027 lrw r1, 0xfff00000 // 2e98 <__isinf+0x2c> + 2e7e: 6c81 xor r2, r0 + 2e80: 6cc5 xor r3, r1 + 2e82: 6c8c or r2, r3 + 2e84: 3a40 cmpnei r2, 0 + 2e86: 64c3 mvcv r3 + 2e88: 3000 movi r0, 0 + 2e8a: 600e subu r0, r3 + 2e8c: 783c jmp r15 + 2e8e: 3001 movi r0, 1 + 2e90: 07fe br 0x2e8c // 2e8c <__isinf+0x20> + 2e92: 0000 bkpt + 2e94: 7ff00000 .long 0x7ff00000 + 2e98: fff00000 .long 0xfff00000 + +00002e9c <__eqdf2>: + 2e9c: 14d0 push r15 + 2e9e: 142e subi r14, r14, 56 + 2ea0: b800 st.w r0, (r14, 0x0) + 2ea2: b821 st.w r1, (r14, 0x4) + 2ea4: 6c3b mov r0, r14 + 2ea6: 1904 addi r1, r14, 16 + 2ea8: b863 st.w r3, (r14, 0xc) + 2eaa: b842 st.w r2, (r14, 0x8) + 2eac: e3fff4b4 bsr 0x1814 // 1814 <__unpack_d> + 2eb0: 1909 addi r1, r14, 36 + 2eb2: 1802 addi r0, r14, 8 + 2eb4: e3fff4b0 bsr 0x1814 // 1814 <__unpack_d> + 2eb8: 9864 ld.w r3, (r14, 0x10) + 2eba: 3b01 cmphsi r3, 2 + 2ebc: 0c0a bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ebe: 9869 ld.w r3, (r14, 0x24) + 2ec0: 3b01 cmphsi r3, 2 + 2ec2: 0c07 bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ec4: 1909 addi r1, r14, 36 + 2ec6: 1804 addi r0, r14, 16 + 2ec8: e3fff508 bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2ecc: 140e addi r14, r14, 56 + 2ece: 1490 pop r15 + 2ed0: 3001 movi r0, 1 + 2ed2: 140e addi r14, r14, 56 + 2ed4: 1490 pop r15 + ... + +00002ed8 <__ltdf2>: + 2ed8: 14d0 push r15 + 2eda: 142e subi r14, r14, 56 + 2edc: b800 st.w r0, (r14, 0x0) + 2ede: b821 st.w r1, (r14, 0x4) + 2ee0: 6c3b mov r0, r14 + 2ee2: 1904 addi r1, r14, 16 + 2ee4: b863 st.w r3, (r14, 0xc) + 2ee6: b842 st.w r2, (r14, 0x8) + 2ee8: e3fff496 bsr 0x1814 // 1814 <__unpack_d> + 2eec: 1909 addi r1, r14, 36 + 2eee: 1802 addi r0, r14, 8 + 2ef0: e3fff492 bsr 0x1814 // 1814 <__unpack_d> + 2ef4: 9864 ld.w r3, (r14, 0x10) + 2ef6: 3b01 cmphsi r3, 2 + 2ef8: 0c0a bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2efa: 9869 ld.w r3, (r14, 0x24) + 2efc: 3b01 cmphsi r3, 2 + 2efe: 0c07 bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2f00: 1909 addi r1, r14, 36 + 2f02: 1804 addi r0, r14, 16 + 2f04: e3fff4ea bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2f08: 140e addi r14, r14, 56 + 2f0a: 1490 pop r15 + 2f0c: 3001 movi r0, 1 + 2f0e: 140e addi r14, r14, 56 + 2f10: 1490 pop r15 + +Disassembly of section .text.__main: + +00002f14 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 2f14: 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 ) { + 2f16: 1009 lrw r0, 0x20000000 // 2f38 <__main+0x24> + 2f18: 1029 lrw r1, 0x687c // 2f3c <__main+0x28> + 2f1a: 6442 cmpne r0, r1 + 2f1c: 0c05 bf 0x2f26 // 2f26 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 2f1e: 1049 lrw r2, 0x200000a0 // 2f40 <__main+0x2c> + 2f20: 6082 subu r2, r0 + 2f22: e3fff5c1 bsr 0x1aa4 // 1aa4 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 2f26: 1048 lrw r2, 0x20000770 // 2f44 <__main+0x30> + 2f28: 1008 lrw r0, 0x200000a0 // 2f48 <__main+0x34> + 2f2a: 640a cmpne r2, r0 + 2f2c: 0c05 bf 0x2f36 // 2f36 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 2f2e: 6082 subu r2, r0 + 2f30: 3100 movi r1, 0 + 2f32: e3fff575 bsr 0x1a1c // 1a1c <__memset_fast> + } + + +} + 2f36: 1490 pop r15 + 2f38: 20000000 .long 0x20000000 + 2f3c: 0000687c .long 0x0000687c + 2f40: 200000a0 .long 0x200000a0 + 2f44: 20000770 .long 0x20000770 + 2f48: 200000a0 .long 0x200000a0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00002f4c : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 2f4c: 3848 cmpnei r0, 8 + 2f4e: 080a bt 0x2f62 // 2f62 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 2f50: 107a lrw r3, 0x2000004c // 2fb8 + 2f52: 32ff movi r2, 255 + 2f54: 9320 ld.w r1, (r3, 0x0) + 2f56: 9160 ld.w r3, (r1, 0x0) + 2f58: 424c lsli r2, r2, 12 + 2f5a: 68c9 andn r3, r2 + 2f5c: 3bae bseti r3, 14 + 2f5e: 3bb2 bseti r3, 18 + 2f60: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 2f62: 1077 lrw r3, 0x2000005c // 2fbc + 2f64: 9360 ld.w r3, (r3, 0x0) + 2f66: 9341 ld.w r2, (r3, 0x4) + 2f68: 6c80 or r2, r0 + 2f6a: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 2f6c: 9343 ld.w r2, (r3, 0xc) + 2f6e: 6880 and r2, r0 + 2f70: 3a40 cmpnei r2, 0 + 2f72: 0ffd bf 0x2f6c // 2f6c + switch(ENDIS_X) + 2f74: 3842 cmpnei r0, 2 + 2f76: 0807 bt 0x2f84 // 2f84 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 2f78: 3102 movi r1, 2 + 2f7a: 9344 ld.w r2, (r3, 0x10) + 2f7c: 6884 and r2, r1 + 2f7e: 3a40 cmpnei r2, 0 + 2f80: 0ffd bf 0x2f7a // 2f7a + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 2f82: 783c jmp r15 + switch(ENDIS_X) + 2f84: 3802 cmphsi r0, 3 + 2f86: 0809 bt 0x2f98 // 2f98 + 2f88: 3841 cmpnei r0, 1 + 2f8a: 0bfc bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 2f8c: 3101 movi r1, 1 + 2f8e: 9344 ld.w r2, (r3, 0x10) + 2f90: 6884 and r2, r1 + 2f92: 3a40 cmpnei r2, 0 + 2f94: 0ffd bf 0x2f8e // 2f8e + 2f96: 07f6 br 0x2f82 // 2f82 + switch(ENDIS_X) + 2f98: 3848 cmpnei r0, 8 + 2f9a: 0807 bt 0x2fa8 // 2fa8 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 2f9c: 3108 movi r1, 8 + 2f9e: 9344 ld.w r2, (r3, 0x10) + 2fa0: 6884 and r2, r1 + 2fa2: 3a40 cmpnei r2, 0 + 2fa4: 0ffd bf 0x2f9e // 2f9e + 2fa6: 07ee br 0x2f82 // 2f82 + switch(ENDIS_X) + 2fa8: 3850 cmpnei r0, 16 + 2faa: 0bec bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 2fac: 3110 movi r1, 16 + 2fae: 9344 ld.w r2, (r3, 0x10) + 2fb0: 6884 and r2, r1 + 2fb2: 3a40 cmpnei r2, 0 + 2fb4: 0ffd bf 0x2fae // 2fae + 2fb6: 07e6 br 0x2f82 // 2f82 + 2fb8: 2000004c .long 0x2000004c + 2fbc: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00002fc0 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 2fc0: 106c lrw r3, 0x2000005c // 2ff0 + 2fc2: 104d lrw r2, 0xffff // 2ff4 + 2fc4: 9360 ld.w r3, (r3, 0x0) + 2fc6: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 2fc8: 104c lrw r2, 0xffffff // 2ff8 + 2fca: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 2fcc: 104c lrw r2, 0xd22d0000 // 2ffc + 2fce: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 2fd0: 104c lrw r2, 0x70ff3bff // 3000 + 2fd2: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 2fd4: 320a movi r2, 10 + 2fd6: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fd8: 102b lrw r1, 0x70c // 3004 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 2fda: 237f addi r3, 128 + 2fdc: 3200 movi r2, 0 + 2fde: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 2fe0: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fe2: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 2fe4: 1029 lrw r1, 0x3fe // 3008 + 2fe6: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 2fe8: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 2fea: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 2fec: b35f st.w r2, (r3, 0x7c) +} + 2fee: 783c jmp r15 + 2ff0: 2000005c .long 0x2000005c + 2ff4: 0000ffff .long 0x0000ffff + 2ff8: 00ffffff .long 0x00ffffff + 2ffc: d22d0000 .long 0xd22d0000 + 3000: 70ff3bff .long 0x70ff3bff + 3004: 0000070c .long 0x0000070c + 3008: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +0000300c : +{ + 300c: 14d0 push r15 + if (NewState != DISABLE) + 300e: 3840 cmpnei r0, 0 + 3010: 0c05 bf 0x301a // 301a + 3012: 6c07 mov r0, r1 + 3014: e3ffff9c bsr 0x2f4c // 2f4c +} + 3018: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 301a: 1068 lrw r3, 0x2000005c // 3038 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9342 ld.w r2, (r3, 0x8) + 3020: 6c84 or r2, r1 + 3022: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 3024: 9343 ld.w r2, (r3, 0xc) + 3026: 6884 and r2, r1 + 3028: 3a40 cmpnei r2, 0 + 302a: 0bfd bt 0x3024 // 3024 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 302c: 237f addi r3, 128 + 302e: 9301 ld.w r0, (r3, 0x4) + 3030: 6c40 or r1, r0 + 3032: b321 st.w r1, (r3, 0x4) +} + 3034: 07f2 br 0x3018 // 3018 + 3036: 0000 bkpt + 3038: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +0000303c : +//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 ) +{ + 303c: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 303e: 3b48 cmpnei r3, 8 + 3040: 0828 bt 0x3090 // 3090 + { + IFC->CEDR=0X01; //CLKEN + 3042: 109d lrw r4, 0x20000060 // 30b4 + 3044: 3501 movi r5, 1 + 3046: 9480 ld.w r4, (r4, 0x0) + 3048: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 304a: 3504 movi r5, 4 + 304c: 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)) + 304e: 5b83 subi r4, r3, 1 + 3050: 3c01 cmphsi r4, 2 + 3052: 0c2b bf 0x30a8 // 30a8 + { + 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)) + 3054: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 3056: 3c04 cmphsi r4, 5 + 3058: 0c03 bf 0x305e // 305e + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 305a: 3b4b cmpnei r3, 11 + 305c: 0807 bt 0x306a // 306a + { + IFC->CEDR=0X01; //CLKEN + 305e: 1076 lrw r3, 0x20000060 // 30b4 + 3060: 3401 movi r4, 1 + 3062: 9360 ld.w r3, (r3, 0x0) + 3064: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 3066: 3400 movi r4, 0 + 3068: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 306a: 1094 lrw r4, 0xd22d0000 // 30b8 + 306c: 6c10 or r0, r4 + 306e: 1074 lrw r3, 0x2000005c // 30bc + 3070: 6c40 or r1, r0 + 3072: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3074: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 3076: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3078: 4001 lsli r0, r0, 1 + 307a: 9324 ld.w r1, (r3, 0x10) + 307c: 6840 and r1, r0 + 307e: 3940 cmpnei r1, 0 + 3080: 0ffd bf 0x307a // 307a + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 3082: 1030 lrw r1, 0xc33c0000 // 30c0 + 3084: 6c48 or r1, r2 + 3086: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 3088: 9328 ld.w r1, (r3, 0x20) + 308a: 644a cmpne r2, r1 + 308c: 0bfe bt 0x3088 // 3088 +} + 308e: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 3090: 3b40 cmpnei r3, 0 + 3092: 0c03 bf 0x3098 // 3098 + 3094: 3b49 cmpnei r3, 9 + 3096: 0807 bt 0x30a4 // 30a4 + IFC->CEDR=0X01; //CLKEN + 3098: 1087 lrw r4, 0x20000060 // 30b4 + 309a: 3501 movi r5, 1 + 309c: 9480 ld.w r4, (r4, 0x0) + 309e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 30a0: 3502 movi r5, 2 + 30a2: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 30a4: 3b4a cmpnei r3, 10 + 30a6: 0bd4 bt 0x304e // 304e + IFC->CEDR=0X01; //CLKEN + 30a8: 1083 lrw r4, 0x20000060 // 30b4 + 30aa: 3501 movi r5, 1 + 30ac: 9480 ld.w r4, (r4, 0x0) + 30ae: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 30b0: b4a5 st.w r5, (r4, 0x14) + 30b2: 07d1 br 0x3054 // 3054 + 30b4: 20000060 .long 0x20000060 + 30b8: d22d0000 .long 0xd22d0000 + 30bc: 2000005c .long 0x2000005c + 30c0: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +000030c4 : +//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) +{ + 30c4: 14d1 push r4, r15 + 30c6: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 30c8: 3110 movi r1, 16 + 30ca: 3000 movi r0, 0 + 30cc: e3ffffa0 bsr 0x300c // 300c + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 30d0: 1066 lrw r3, 0x2000005c // 30e8 + 30d2: 9360 ld.w r3, (r3, 0x0) + 30d4: 9319 ld.w r0, (r3, 0x64) + 30d6: 3884 bclri r0, 4 + 30d8: 3885 bclri r0, 5 + 30da: 6c10 or r0, r4 + 30dc: b319 st.w r0, (r3, 0x64) + 30de: 3010 movi r0, 16 + 30e0: e3ffff36 bsr 0x2f4c // 2f4c + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 30e4: 1491 pop r4, r15 + 30e6: 0000 bkpt + 30e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +000030ec : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 30ec: 106c lrw r3, 0x2000005c // 311c + if(NewState != DISABLE) + 30ee: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f0: 9360 ld.w r3, (r3, 0x0) + 30f2: 237f addi r3, 128 + if(NewState != DISABLE) + 30f4: 0c0a bf 0x3108 // 3108 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f6: 104b lrw r2, 0x78870000 // 3120 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30f8: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30fa: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30fc: 4125 lsli r1, r1, 5 + 30fe: 934d ld.w r2, (r3, 0x34) + 3100: 6884 and r2, r1 + 3102: 3a40 cmpnei r2, 0 + 3104: 0ffd bf 0x30fe // 30fe + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 3106: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 3108: 1047 lrw r2, 0x788755aa // 3124 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310a: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 310c: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310e: 4125 lsli r1, r1, 5 + 3110: 934d ld.w r2, (r3, 0x34) + 3112: 6884 and r2, r1 + 3114: 3a40 cmpnei r2, 0 + 3116: 0bfd bt 0x3110 // 3110 + 3118: 07f7 br 0x3106 // 3106 + 311a: 0000 bkpt + 311c: 2000005c .long 0x2000005c + 3120: 78870000 .long 0x78870000 + 3124: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00003128 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 3128: 1064 lrw r3, 0x2000005c // 3138 + 312a: 32b4 movi r2, 180 + 312c: 9360 ld.w r3, (r3, 0x0) + 312e: 237f addi r3, 128 + 3130: 4257 lsli r2, r2, 23 + 3132: b34e st.w r2, (r3, 0x38) +} + 3134: 783c jmp r15 + 3136: 0000 bkpt + 3138: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +0000313c : +//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; + 313c: 1044 lrw r2, 0x87780000 // 314c + 313e: 1065 lrw r3, 0x2000005c // 3150 + 3140: 6c48 or r1, r2 + 3142: 9360 ld.w r3, (r3, 0x0) + 3144: 6c04 or r0, r1 + 3146: 237f addi r3, 128 + 3148: b30d st.w r0, (r3, 0x34) +} + 314a: 783c jmp r15 + 314c: 87780000 .long 0x87780000 + 3150: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00003154 : +//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) +{ + 3154: 14c3 push r4-r6 + 3156: 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; + 3158: 10c5 lrw r6, 0xb44b0000 // 316c + 315a: 6d18 or r4, r6 + 315c: 6cd0 or r3, r4 + 315e: 6c8c or r2, r3 + 3160: 6c48 or r1, r2 + 3162: 10a4 lrw r5, 0x2000005c // 3170 + 3164: 6c04 or r0, r1 + 3166: 95a0 ld.w r5, (r5, 0x0) + 3168: b513 st.w r0, (r5, 0x4c) +} + 316a: 1483 pop r4-r6 + 316c: b44b0000 .long 0xb44b0000 + 3170: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00003174 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 3174: 1066 lrw r3, 0x2000005c // 318c + 3176: 3180 movi r1, 128 + 3178: 9360 ld.w r3, (r3, 0x0) + 317a: 3280 movi r2, 128 + 317c: 604c addu r1, r3 + 317e: 4244 lsli r2, r2, 4 + 3180: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 3182: 935d ld.w r2, (r3, 0x74) + 3184: 3aab bseti r2, 11 + 3186: b35d st.w r2, (r3, 0x74) +} + 3188: 783c jmp r15 + 318a: 0000 bkpt + 318c: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00003190 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 3190: 1066 lrw r3, 0x2000005c // 31a8 + 3192: 3180 movi r1, 128 + 3194: 9360 ld.w r3, (r3, 0x0) + 3196: 3280 movi r2, 128 + 3198: 604c addu r1, r3 + 319a: 4241 lsli r2, r2, 1 + 319c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 319e: 935d ld.w r2, (r3, 0x74) + 31a0: 3aa8 bseti r2, 8 + 31a2: b35d st.w r2, (r3, 0x74) +} + 31a4: 783c jmp r15 + 31a6: 0000 bkpt + 31a8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +000031ac : +//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) + 31ac: 3a40 cmpnei r2, 0 + 31ae: 0c04 bf 0x31b6 // 31b6 + 31b0: 3a41 cmpnei r2, 1 + 31b2: 0c0e bf 0x31ce // 31ce + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 31b4: 783c jmp r15 + 31b6: 106d lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31b8: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 31ba: 9360 ld.w r3, (r3, 0x0) + 31bc: 237f addi r3, 128 + 31be: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 31c0: 0c04 bf 0x31c8 // 31c8 + SYSCON->EXIRT |=EXIPIN; + 31c2: 6c48 or r1, r2 + 31c4: b325 st.w r1, (r3, 0x14) + 31c6: 07f7 br 0x31b4 // 31b4 + SYSCON->EXIRT &=~EXIPIN; + 31c8: 6885 andn r2, r1 + 31ca: b345 st.w r2, (r3, 0x14) + 31cc: 07f4 br 0x31b4 // 31b4 + 31ce: 1067 lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31d0: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 31d2: 9360 ld.w r3, (r3, 0x0) + 31d4: 237f addi r3, 128 + 31d6: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 31d8: 0c04 bf 0x31e0 // 31e0 + SYSCON->EXIFT |=EXIPIN; + 31da: 6c48 or r1, r2 + 31dc: b326 st.w r1, (r3, 0x18) + 31de: 07eb br 0x31b4 // 31b4 + SYSCON->EXIFT &=~EXIPIN; + 31e0: 6885 andn r2, r1 + 31e2: b346 st.w r2, (r3, 0x18) +} + 31e4: 07e8 br 0x31b4 // 31b4 + 31e6: 0000 bkpt + 31e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_Int_Enable: + +000031ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 31ec: 3202 movi r2, 2 + 31ee: 1062 lrw r3, 0xe000e100 // 31f4 + 31f0: b340 st.w r2, (r3, 0x0) +} + 31f2: 783c jmp r15 + 31f4: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_INT_Priority: + +000031f8 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31f8: 1066 lrw r3, 0xe000e400 // 3210 + 31fa: 1047 lrw r2, 0xc0c0c0c0 // 3214 + 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 + 31fc: 1027 lrw r1, 0xc0c000c0 // 3218 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31fe: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 3200: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 3202: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 3204: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 3206: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 3208: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 320a: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 320c: b347 st.w r2, (r3, 0x1c) +} + 320e: 783c jmp r15 + 3210: e000e400 .long 0xe000e400 + 3214: c0c0c0c0 .long 0xc0c0c0c0 + 3218: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +0000321c : +//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) +{ + 321c: 14c1 push r4 + 321e: 4862 lsri r3, r0, 2 + 3220: 4342 lsli r2, r3, 2 + 3222: 106a lrw r3, 0x20000064 // 3248 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 3224: 3403 movi r4, 3 + 3226: 9360 ld.w r3, (r3, 0x0) + 3228: 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)); + 323a: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 323e: 7040 lsl r1, r0 + 3240: 6c48 or r1, r2 + 3242: b320 st.w r1, (r3, 0x0) +} + 3244: 1481 pop r4 + 3246: 0000 bkpt + 3248: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +0000324c : +//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) +{ + 324c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 324e: 3907 cmphsi r1, 8 +{ + 3250: 6d03 mov r4, r0 + if(PinNum<8) + 3252: 0830 bt 0x32b2 // 32b2 + { + switch (PinNum) + 3254: 5903 subi r0, r1, 1 + 3256: 3806 cmphsi r0, 7 + 3258: 0827 bt 0x32a6 // 32a6 + 325a: e3ffed51 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 325e: 1004 .short 0x1004 + 3260: 1d1a1613 .long 0x1d1a1613 + 3264: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 3266: 3300 movi r3, 0 + 3268: 3104 movi r1, 4 + 326a: 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) + 326c: 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< + 3282: 07f5 br 0x326c // 326c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 3284: 310c movi r1, 12 + 3286: 1166 lrw r3, 0xffff0fff // 331c + 3288: 07f2 br 0x326c // 326c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 328a: 3110 movi r1, 16 + 328c: 1165 lrw r3, 0xfff10000 // 3320 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 328e: 2b00 subi r3, 1 + 3290: 07ee br 0x326c // 326c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 3292: 3114 movi r1, 20 + 3294: 1164 lrw r3, 0xff100000 // 3324 + 3296: 07fc br 0x328e // 328e + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3298: 33f1 movi r3, 241 + 329a: 3118 movi r1, 24 + 329c: 4378 lsli r3, r3, 24 + 329e: 07f8 br 0x328e // 328e + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 32a0: 311c movi r1, 28 + 32a2: 1162 lrw r3, 0xfffffff // 3328 + 32a4: 07e4 br 0x326c // 326c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 32a6: 3300 movi r3, 0 + 32a8: 3100 movi r1, 0 + 32aa: 2b0f subi r3, 16 + 32ac: 07e0 br 0x326c // 326c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 32b2: 390f cmphsi r1, 16 + 32b4: 0be4 bt 0x327c // 327c + switch (PinNum) + 32b6: 2908 subi r1, 9 + 32b8: 3906 cmphsi r1, 7 + 32ba: 6c07 mov r0, r1 + 32bc: 0827 bt 0x330a // 330a + 32be: e3ffed1f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 32c2: 1004 .short 0x1004 + 32c4: 1d1a1613 .long 0x1d1a1613 + 32c8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 32ca: 3300 movi r3, 0 + 32cc: 3104 movi r1, 4 + 32ce: 2bf0 subi r3, 241 + if (Dir) + 32d0: 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; + 32e2: 3108 movi r1, 8 + 32e4: 106d lrw r3, 0xfffff0ff // 3318 + 32e6: 07f5 br 0x32d0 // 32d0 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 32e8: 310c movi r1, 12 + 32ea: 106d lrw r3, 0xffff0fff // 331c + 32ec: 07f2 br 0x32d0 // 32d0 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 32ee: 3110 movi r1, 16 + 32f0: 106c lrw r3, 0xfff10000 // 3320 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32f2: 2b00 subi r3, 1 + 32f4: 07ee br 0x32d0 // 32d0 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 32f6: 3114 movi r1, 20 + 32f8: 106b lrw r3, 0xff100000 // 3324 + 32fa: 07fc br 0x32f2 // 32f2 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32fc: 33f1 movi r3, 241 + 32fe: 3118 movi r1, 24 + 3300: 4378 lsli r3, r3, 24 + 3302: 07f8 br 0x32f2 // 32f2 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 3304: 311c movi r1, 28 + 3306: 1069 lrw r3, 0xfffffff // 3328 + 3308: 07e4 br 0x32d0 // 32d0 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 330a: 3300 movi r3, 0 + 330c: 3100 movi r1, 0 + 330e: 2b0f subi r3, 16 + 3310: 07e0 br 0x32d0 // 32d0 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 3316: 0000 bkpt + 3318: fffff0ff .long 0xfffff0ff + 331c: ffff0fff .long 0xffff0fff + 3320: fff10000 .long 0xfff10000 + 3324: ff100000 .long 0xff100000 + 3328: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000332c : +//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)); + 332c: 4121 lsli r1, r1, 1 + 332e: 3203 movi r2, 3 + 3330: 9068 ld.w r3, (r0, 0x20) + 3332: 7084 lsl r2, r1 + 3334: 68c9 andn r3, r2 + 3336: 3201 movi r2, 1 + 3338: 7084 lsl r2, r1 + 333a: 6cc8 or r3, r2 + 333c: b068 st.w r3, (r0, 0x20) +} + 333e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00003340 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 3340: 4121 lsli r1, r1, 1 + 3342: 3301 movi r3, 1 + 3344: 9049 ld.w r2, (r0, 0x24) + 3346: 70c4 lsl r3, r1 + 3348: 6cc8 or r3, r2 + 334a: b069 st.w r3, (r0, 0x24) +} + 334c: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +0000334e : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 335e: 9045 ld.w r2, (r0, 0x14) + 3360: 3301 movi r3, 1 + 3362: 7085 lsr r2, r1 + 3364: 688c and r2, r3 + { + if (dat==1) + 3366: 3a40 cmpnei r2, 0 + 3368: 70c4 lsl r3, r1 + 336a: 0c03 bf 0x3370 // 3370 + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00003374 : +/*************************************************************/ +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); + 3394: 1064 lrw r3, 0x20000014 // 33a4 + 3396: 9340 ld.w r2, (r3, 0x0) + 3398: 9261 ld.w r3, (r2, 0x4) + 339a: 3bac bseti r3, 12 + 339c: 3bae bseti r3, 14 + 339e: b261 st.w r3, (r2, 0x4) +} + 33a0: 783c jmp r15 + 33a2: 0000 bkpt + 33a4: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000033a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 33a8: 1063 lrw r3, 0x20000010 // 33b4 + 33aa: 9360 ld.w r3, (r3, 0x0) + 33ac: 9340 ld.w r2, (r3, 0x0) + 33ae: 6c08 or r0, r2 + 33b0: b300 st.w r0, (r3, 0x0) +} + 33b2: 783c jmp r15 + 33b4: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000033b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 33b8: 3300 movi r3, 0 + 33ba: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 33bc: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 33be: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 33c0: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 33c2: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 33c4: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 33c6: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 33c8: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 33ca: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 33cc: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 33ce: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 33d0: b06d st.w r3, (r0, 0x34) +} + 33d2: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000033d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 33d4: 9060 ld.w r3, (r0, 0x0) + 33d6: 3ba0 bseti r3, 0 + 33d8: b060 st.w r3, (r0, 0x0) +} + 33da: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000033dc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 33dc: 9060 ld.w r3, (r0, 0x0) + 33de: 3bac bseti r3, 12 + 33e0: 3bae bseti r3, 14 + 33e2: b060 st.w r3, (r0, 0x0) +} + 33e4: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000033e6 : +//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) +{ + 33e6: 14c3 push r4-r6 + 33e8: 98a4 ld.w r5, (r14, 0x10) + 33ea: 6d97 mov r6, r5 + 33ec: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 33ee: 6d18 or r4, r6 + 33f0: 6cd0 or r3, r4 + 33f2: 90a1 ld.w r5, (r0, 0x4) + 33f4: 6c4c or r1, r3 + 33f6: 6c54 or r1, r5 + 33f8: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 33fa: b042 st.w r2, (r0, 0x8) +} + 33fc: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000033fe : +//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) +{ + 33fe: 14c4 push r4-r7 + 3400: 1421 subi r14, r14, 4 + 3402: 9885 ld.w r4, (r14, 0x14) + 3404: 6dd3 mov r7, r4 + 3406: 9886 ld.w r4, (r14, 0x18) + 3408: b880 st.w r4, (r14, 0x0) + 340a: 9887 ld.w r4, (r14, 0x1c) + 340c: 6d93 mov r6, r4 + 340e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 3410: 6d58 or r5, r6 + 3412: 98c0 ld.w r6, (r14, 0x0) + 3414: 6d58 or r5, r6 + 3416: 6d5c or r5, r7 + 3418: 6cd4 or r3, r5 + 341a: 6c8c or r2, r3 + 341c: 9081 ld.w r4, (r0, 0x4) + 341e: 6c48 or r1, r2 + 3420: 6d04 or r4, r1 + 3422: 6d9f mov r6, r7 + 3424: b081 st.w r4, (r0, 0x4) +} + 3426: 1401 addi r14, r14, 4 + 3428: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000342a : +//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; + 342a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 342c: b044 st.w r2, (r0, 0x10) +} + 342e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00003430 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 3430: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 3432: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 3434: 0c04 bf 0x343c // 343c + BTx->IMCR |= BT_IMSCR_X; + 3436: 6c8c or r2, r3 + 3438: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 343a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 343c: 68c9 andn r3, r2 + 343e: b06b st.w r3, (r0, 0x2c) +} + 3440: 07fd br 0x343a // 343a + +Disassembly of section .text.BT1_INT_ENABLE: + +00003444 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 3444: 3380 movi r3, 128 + 3446: 4376 lsli r3, r3, 22 + 3448: 1042 lrw r2, 0xe000e100 // 3450 + 344a: b260 st.w r3, (r2, 0x0) +} + 344c: 783c jmp r15 + 344e: 0000 bkpt + 3450: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +00003454 : +//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) + 3454: 3840 cmpnei r0, 0 + 3456: 080a bt 0x346a // 346a + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 3458: 1165 lrw r3, 0x20000048 // 34ec + 345a: 31f0 movi r1, 240 + 345c: 9340 ld.w r2, (r3, 0x0) + 345e: 9260 ld.w r3, (r2, 0x0) + 3460: 68c5 andn r3, r1 + 3462: 3ba4 bseti r3, 4 + 3464: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 3466: b260 st.w r3, (r2, 0x0) + } +} + 3468: 040b br 0x347e // 347e + if(IONAME==GPT_CHA_PA09) + 346a: 3841 cmpnei r0, 1 + 346c: 080a bt 0x3480 // 3480 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 346e: 1161 lrw r3, 0x2000004c // 34f0 + 3470: 31f0 movi r1, 240 + 3472: 9340 ld.w r2, (r3, 0x0) + 3474: 9261 ld.w r3, (r2, 0x4) + 3476: 68c5 andn r3, r1 + 3478: 3ba4 bseti r3, 4 + 347a: 3ba6 bseti r3, 6 + 347c: b261 st.w r3, (r2, 0x4) +} + 347e: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 3480: 3842 cmpnei r0, 2 + 3482: 080b bt 0x3498 // 3498 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 3484: 107b lrw r3, 0x2000004c // 34f0 + 3486: 32f0 movi r2, 240 + 3488: 9320 ld.w r1, (r3, 0x0) + 348a: 9161 ld.w r3, (r1, 0x4) + 348c: 4244 lsli r2, r2, 4 + 348e: 68c9 andn r3, r2 + 3490: 3ba9 bseti r3, 9 + 3492: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 3494: b161 st.w r3, (r1, 0x4) + 3496: 07f4 br 0x347e // 347e + if(IONAME==GPT_CHB_PA010) + 3498: 3843 cmpnei r0, 3 + 349a: 080b bt 0x34b0 // 34b0 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 349c: 1075 lrw r3, 0x2000004c // 34f0 + 349e: 32f0 movi r2, 240 + 34a0: 9320 ld.w r1, (r3, 0x0) + 34a2: 4244 lsli r2, r2, 4 + 34a4: 9161 ld.w r3, (r1, 0x4) + 34a6: 68c9 andn r3, r2 + 34a8: 32e0 movi r2, 224 + 34aa: 4243 lsli r2, r2, 3 + 34ac: 6cc8 or r3, r2 + 34ae: 07f3 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PA011) + 34b0: 3844 cmpnei r0, 4 + 34b2: 080a bt 0x34c6 // 34c6 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 34b4: 106f lrw r3, 0x2000004c // 34f0 + 34b6: 32f0 movi r2, 240 + 34b8: 9320 ld.w r1, (r3, 0x0) + 34ba: 9161 ld.w r3, (r1, 0x4) + 34bc: 4248 lsli r2, r2, 8 + 34be: 68c9 andn r3, r2 + 34c0: 3bad bseti r3, 13 + 34c2: 3bae bseti r3, 14 + 34c4: 07e8 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PB00) + 34c6: 3845 cmpnei r0, 5 + 34c8: 0808 bt 0x34d8 // 34d8 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 34ca: 1069 lrw r3, 0x20000048 // 34ec + 34cc: 310f movi r1, 15 + 34ce: 9340 ld.w r2, (r3, 0x0) + 34d0: 9260 ld.w r3, (r2, 0x0) + 34d2: 68c5 andn r3, r1 + 34d4: 3ba2 bseti r3, 2 + 34d6: 07c8 br 0x3466 // 3466 + if(IONAME==GPT_CHB_PB01) + 34d8: 3846 cmpnei r0, 6 + 34da: 0bd2 bt 0x347e // 347e + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 34dc: 1064 lrw r3, 0x20000048 // 34ec + 34de: 31f0 movi r1, 240 + 34e0: 9340 ld.w r2, (r3, 0x0) + 34e2: 9260 ld.w r3, (r2, 0x0) + 34e4: 68c5 andn r3, r1 + 34e6: 3ba5 bseti r3, 5 + 34e8: 3ba6 bseti r3, 6 + 34ea: 07be br 0x3466 // 3466 + 34ec: 20000048 .long 0x20000048 + 34f0: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +000034f4 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 34f4: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 34f6: 6c48 or r1, r2 + 34f8: 1083 lrw r4, 0x20000024 // 3504 + 34fa: 6c04 or r0, r1 + 34fc: 9480 ld.w r4, (r4, 0x0) + 34fe: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 3500: b462 st.w r3, (r4, 0x8) +} + 3502: 1481 pop r4 + 3504: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +00003508 : +/*************************************************************/ +//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) +{ + 3508: 14c4 push r4-r7 + 350a: 1423 subi r14, r14, 12 + 350c: 9887 ld.w r4, (r14, 0x1c) + 350e: 6dd3 mov r7, r4 + 3510: 9888 ld.w r4, (r14, 0x20) + 3512: b880 st.w r4, (r14, 0x0) + 3514: 9889 ld.w r4, (r14, 0x24) + 3516: b881 st.w r4, (r14, 0x4) + 3518: 988a ld.w r4, (r14, 0x28) + 351a: b882 st.w r4, (r14, 0x8) + 351c: 988b ld.w r4, (r14, 0x2c) + 351e: 6d93 mov r6, r4 + 3520: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 3522: 3cb2 bseti r4, 18 + 3524: 6d18 or r4, r6 + 3526: 98c2 ld.w r6, (r14, 0x8) + 3528: 6d18 or r4, r6 + 352a: 98c1 ld.w r6, (r14, 0x4) + 352c: 6d18 or r4, r6 + 352e: 98c0 ld.w r6, (r14, 0x0) + 3530: 6d18 or r4, r6 + 3532: 6d1c or r4, r7 + 3534: 6cd0 or r3, r4 + 3536: 6c8c or r2, r3 + 3538: 6c48 or r1, r2 + 353a: 10a4 lrw r5, 0x20000024 // 3548 + 353c: 6c04 or r0, r1 + 353e: 95a0 ld.w r5, (r5, 0x0) + 3540: 6d9f mov r6, r7 + 3542: b503 st.w r0, (r5, 0xc) +} + 3544: 1403 addi r14, r14, 12 + 3546: 1484 pop r4-r7 + 3548: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +0000354c : +//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) +{ + 354c: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 354e: 6c8c or r2, r3 + 3550: 6c48 or r1, r2 + 3552: 1083 lrw r4, 0x20000024 // 355c + 3554: 6c04 or r0, r1 + 3556: 9480 ld.w r4, (r4, 0x0) + 3558: b411 st.w r0, (r4, 0x44) +} + 355a: 1481 pop r4 + 355c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +00003560 : +//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) +{ + 3560: 14c4 push r4-r7 + 3562: 1425 subi r14, r14, 20 + 3564: 1c09 addi r4, r14, 36 + 3566: 8480 ld.b r4, (r4, 0x0) + 3568: b880 st.w r4, (r14, 0x0) + 356a: 1c0a addi r4, r14, 40 + 356c: 8480 ld.b r4, (r4, 0x0) + 356e: b881 st.w r4, (r14, 0x4) + 3570: 1c0b addi r4, r14, 44 + 3572: 8480 ld.b r4, (r4, 0x0) + 3574: b882 st.w r4, (r14, 0x8) + 3576: 1c0c addi r4, r14, 48 + 3578: 8480 ld.b r4, (r4, 0x0) + 357a: b883 st.w r4, (r14, 0xc) + 357c: 1c0d addi r4, r14, 52 + 357e: 8480 ld.b r4, (r4, 0x0) + 3580: 1e10 addi r6, r14, 64 + 3582: b884 st.w r4, (r14, 0x10) + 3584: 1d0f addi r5, r14, 60 + 3586: 1c0e addi r4, r14, 56 + 3588: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 358a: 3840 cmpnei r0, 0 +{ + 358c: 1e11 addi r6, r14, 68 + 358e: 8480 ld.b r4, (r4, 0x0) + 3590: 85a0 ld.b r5, (r5, 0x0) + 3592: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 3594: 081f bt 0x35d2 // 35d2 + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 3596: 47f0 lsli r7, r7, 16 + 3598: 46d2 lsli r6, r6, 18 + 359a: 45ae lsli r5, r5, 14 + 359c: 6dd8 or r7, r6 + 359e: 6dd4 or r7, r5 + 35a0: 448c lsli r4, r4, 12 + 35a2: 6dd0 or r7, r4 + 35a4: 9884 ld.w r4, (r14, 0x10) + 35a6: 448a lsli r4, r4, 10 + 35a8: 6dd0 or r7, r4 + 35aa: 9883 ld.w r4, (r14, 0xc) + 35ac: 4488 lsli r4, r4, 8 + 35ae: 98a2 ld.w r5, (r14, 0x8) + 35b0: 6d1c or r4, r7 + 35b2: 45e6 lsli r7, r5, 6 + 35b4: 6d1c or r4, r7 + 35b6: 6c90 or r2, r4 + 35b8: 6cc8 or r3, r2 + 35ba: 9841 ld.w r2, (r14, 0x4) + 35bc: 4244 lsli r2, r2, 4 + 35be: 6cc8 or r3, r2 + 35c0: 6c4c or r1, r3 + 35c2: 9860 ld.w r3, (r14, 0x0) + 35c4: 4362 lsli r3, r3, 2 + 35c6: 1013 lrw r0, 0x20000024 // 3610 + 35c8: 6c4c or r1, r3 + 35ca: 9000 ld.w r0, (r0, 0x0) + 35cc: 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); + } +} + 35ce: 1405 addi r14, r14, 20 + 35d0: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 35d2: 3841 cmpnei r0, 1 + 35d4: 0bfd bt 0x35ce // 35ce + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 35d6: 47f0 lsli r7, r7, 16 + 35d8: 46d2 lsli r6, r6, 18 + 35da: 45ae lsli r5, r5, 14 + 35dc: 6dd8 or r7, r6 + 35de: 6dd4 or r7, r5 + 35e0: 448c lsli r4, r4, 12 + 35e2: 6dd0 or r7, r4 + 35e4: 9884 ld.w r4, (r14, 0x10) + 35e6: 448a lsli r4, r4, 10 + 35e8: 6dd0 or r7, r4 + 35ea: 9883 ld.w r4, (r14, 0xc) + 35ec: 4488 lsli r4, r4, 8 + 35ee: 98a2 ld.w r5, (r14, 0x8) + 35f0: 6d1c or r4, r7 + 35f2: 45e6 lsli r7, r5, 6 + 35f4: 6d1c or r4, r7 + 35f6: 6c90 or r2, r4 + 35f8: 6cc8 or r3, r2 + 35fa: 9841 ld.w r2, (r14, 0x4) + 35fc: 4244 lsli r2, r2, 4 + 35fe: 6cc8 or r3, r2 + 3600: 6c4c or r1, r3 + 3602: 9860 ld.w r3, (r14, 0x0) + 3604: 4362 lsli r3, r3, 2 + 3606: 1003 lrw r0, 0x20000024 // 3610 + 3608: 6c4c or r1, r3 + 360a: 9000 ld.w r0, (r0, 0x0) + 360c: b033 st.w r1, (r0, 0x4c) +} + 360e: 07e0 br 0x35ce // 35ce + 3610: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +00003614 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 3614: 1063 lrw r3, 0x20000024 // 3620 + 3616: 9340 ld.w r2, (r3, 0x0) + 3618: 9261 ld.w r3, (r2, 0x4) + 361a: 3ba0 bseti r3, 0 + 361c: b261 st.w r3, (r2, 0x4) +} + 361e: 783c jmp r15 + 3620: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +00003624 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 3624: 1063 lrw r3, 0x20000024 // 3630 + 3626: 9360 ld.w r3, (r3, 0x0) + 3628: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 362a: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 362c: b34c st.w r2, (r3, 0x30) +} + 362e: 783c jmp r15 + 3630: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +00003634 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 3634: 1066 lrw r3, 0x20000024 // 364c + if (NewState != DISABLE) + 3636: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 3638: 9360 ld.w r3, (r3, 0x0) + 363a: 237f addi r3, 128 + 363c: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 363e: 0c04 bf 0x3646 // 3646 + GPT0->IMCR |= GPT_IMSCR_X; + 3640: 6c48 or r1, r2 + 3642: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 3644: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 3646: 6885 andn r2, r1 + 3648: b356 st.w r2, (r3, 0x58) +} + 364a: 07fd br 0x3644 // 3644 + 364c: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +00003650 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 3650: 1065 lrw r3, 0x20000040 // 3664 + 3652: 3200 movi r2, 0 + 3654: 9360 ld.w r3, (r3, 0x0) + 3656: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 3658: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 365a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 365c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 365e: b344 st.w r2, (r3, 0x10) +} + 3660: 783c jmp r15 + 3662: 0000 bkpt + 3664: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00003668 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 3668: 1065 lrw r3, 0x2000003c // 367c + 366a: 3200 movi r2, 0 + 366c: 9360 ld.w r3, (r3, 0x0) + 366e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 3670: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 3672: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 3674: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 3676: b344 st.w r2, (r3, 0x10) +} + 3678: 783c jmp r15 + 367a: 0000 bkpt + 367c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00003680 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 3680: 1065 lrw r3, 0x20000038 // 3694 + 3682: 3200 movi r2, 0 + 3684: 9360 ld.w r3, (r3, 0x0) + 3686: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 3688: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 368a: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 368c: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 368e: b344 st.w r2, (r3, 0x10) +} + 3690: 783c jmp r15 + 3692: 0000 bkpt + 3694: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00003698 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 3698: 1065 lrw r3, 0x20000040 // 36ac + 369a: 320f movi r2, 15 + 369c: 9360 ld.w r3, (r3, 0x0) + 369e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36a0: 3380 movi r3, 128 + 36a2: 4366 lsli r3, r3, 6 + 36a4: 1043 lrw r2, 0xe000e100 // 36b0 + 36a6: b260 st.w r3, (r2, 0x0) +} + 36a8: 783c jmp r15 + 36aa: 0000 bkpt + 36ac: 20000040 .long 0x20000040 + 36b0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000036b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 36b4: 1065 lrw r3, 0x20000038 // 36c8 + 36b6: 320f movi r2, 15 + 36b8: 9360 ld.w r3, (r3, 0x0) + 36ba: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36bc: 3380 movi r3, 128 + 36be: 4368 lsli r3, r3, 8 + 36c0: 1043 lrw r2, 0xe000e100 // 36cc + 36c2: b260 st.w r3, (r2, 0x0) +} + 36c4: 783c jmp r15 + 36c6: 0000 bkpt + 36c8: 20000038 .long 0x20000038 + 36cc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +000036d0 : +//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) + 36d0: 3840 cmpnei r0, 0 + 36d2: 0821 bt 0x3714 // 3714 + { + if(UART_IO_G==0) + 36d4: 3940 cmpnei r1, 0 + 36d6: 080a bt 0x36ea // 36ea + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 36d8: 1177 lrw r3, 0x2000004c // 37b4 + 36da: 31ff movi r1, 255 + 36dc: 9340 ld.w r2, (r3, 0x0) + 36de: 9260 ld.w r3, (r2, 0x0) + 36e0: 68c5 andn r3, r1 + 36e2: 3ba2 bseti r3, 2 + 36e4: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 36e6: b260 st.w r3, (r2, 0x0) + 36e8: 0415 br 0x3712 // 3712 + else if(UART_IO_G==1) + 36ea: 3941 cmpnei r1, 1 + 36ec: 0813 bt 0x3712 // 3712 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 36ee: 1172 lrw r3, 0x2000004c // 37b4 + 36f0: 31f0 movi r1, 240 + 36f2: 9340 ld.w r2, (r3, 0x0) + 36f4: 9260 ld.w r3, (r2, 0x0) + 36f6: 4130 lsli r1, r1, 16 + 36f8: 68c5 andn r3, r1 + 36fa: 31e0 movi r1, 224 + 36fc: 412f lsli r1, r1, 15 + 36fe: 6cc4 or r3, r1 + 3700: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 3702: 31f0 movi r1, 240 + 3704: 9261 ld.w r3, (r2, 0x4) + 3706: 412c lsli r1, r1, 12 + 3708: 68c5 andn r3, r1 + 370a: 31e0 movi r1, 224 + 370c: 412b lsli r1, r1, 11 + 370e: 6cc4 or r3, r1 + 3710: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 3712: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 3714: 3841 cmpnei r0, 1 + 3716: 082d bt 0x3770 // 3770 + if(UART_IO_G==0) + 3718: 3940 cmpnei r1, 0 + 371a: 0814 bt 0x3742 // 3742 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 371c: 1167 lrw r3, 0x20000048 // 37b8 + 371e: 310f movi r1, 15 + 3720: 9340 ld.w r2, (r3, 0x0) + 3722: 9260 ld.w r3, (r2, 0x0) + 3724: 68c5 andn r3, r1 + 3726: 3107 movi r1, 7 + 3728: 6cc4 or r3, r1 + 372a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 372c: 32f0 movi r2, 240 + 372e: 1162 lrw r3, 0x2000004c // 37b4 + 3730: 4250 lsli r2, r2, 16 + 3732: 9320 ld.w r1, (r3, 0x0) + 3734: 9161 ld.w r3, (r1, 0x4) + 3736: 68c9 andn r3, r2 + 3738: 32e0 movi r2, 224 + 373a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 373c: 6cc8 or r3, r2 + 373e: b161 st.w r3, (r1, 0x4) + 3740: 07e9 br 0x3712 // 3712 + else if(UART_IO_G==1) + 3742: 3941 cmpnei r1, 1 + 3744: 080c bt 0x375c // 375c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 3746: 107c lrw r3, 0x2000004c // 37b4 + 3748: 32ff movi r2, 255 + 374a: 9320 ld.w r1, (r3, 0x0) + 374c: 424c lsli r2, r2, 12 + 374e: 9160 ld.w r3, (r1, 0x0) + 3750: 68c9 andn r3, r2 + 3752: 32ee movi r2, 238 + 3754: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 3756: 6cc8 or r3, r2 + 3758: b160 st.w r3, (r1, 0x0) +} + 375a: 07dc br 0x3712 // 3712 + else if(UART_IO_G==2) + 375c: 3942 cmpnei r1, 2 + 375e: 0bda bt 0x3712 // 3712 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 3760: 1075 lrw r3, 0x2000004c // 37b4 + 3762: 32ee movi r2, 238 + 3764: 9320 ld.w r1, (r3, 0x0) + 3766: 9161 ld.w r3, (r1, 0x4) + 3768: 4368 lsli r3, r3, 8 + 376a: 4b68 lsri r3, r3, 8 + 376c: 4257 lsli r2, r2, 23 + 376e: 07e7 br 0x373c // 373c + if (IO_UART_NUM==IO_UART2) + 3770: 3842 cmpnei r0, 2 + 3772: 0bd0 bt 0x3712 // 3712 + if(UART_IO_G==0) + 3774: 3940 cmpnei r1, 0 + 3776: 0809 bt 0x3788 // 3788 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 3778: 106f lrw r3, 0x2000004c // 37b4 + 377a: 31ff movi r1, 255 + 377c: 9340 ld.w r2, (r3, 0x0) + 377e: 9260 ld.w r3, (r2, 0x0) + 3780: 68c5 andn r3, r1 + 3782: 3177 movi r1, 119 + 3784: 6cc4 or r3, r1 + 3786: 07b0 br 0x36e6 // 36e6 + else if(UART_IO_G==1) + 3788: 3941 cmpnei r1, 1 + 378a: 0809 bt 0x379c // 379c + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 378c: 106a lrw r3, 0x2000004c // 37b4 + 378e: 32ee movi r2, 238 + 3790: 9320 ld.w r1, (r3, 0x0) + 3792: 9160 ld.w r3, (r1, 0x0) + 3794: 4368 lsli r3, r3, 8 + 3796: 4b68 lsri r3, r3, 8 + 3798: 4257 lsli r2, r2, 23 + 379a: 07de br 0x3756 // 3756 + else if(UART_IO_G==2) + 379c: 3942 cmpnei r1, 2 + 379e: 0bba bt 0x3712 // 3712 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 37a0: 1066 lrw r3, 0x20000048 // 37b8 + 37a2: 32ff movi r2, 255 + 37a4: 9320 ld.w r1, (r3, 0x0) + 37a6: 4250 lsli r2, r2, 16 + 37a8: 9160 ld.w r3, (r1, 0x0) + 37aa: 68c9 andn r3, r2 + 37ac: 32cc movi r2, 204 + 37ae: 424f lsli r2, r2, 15 + 37b0: 07d3 br 0x3756 // 3756 + 37b2: 0000 bkpt + 37b4: 2000004c .long 0x2000004c + 37b8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000037bc : +//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); + 37bc: 1063 lrw r3, 0x80003 // 37c8 + 37be: 6c8c or r2, r3 + 37c0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37c2: b024 st.w r1, (r0, 0x10) +} + 37c4: 783c jmp r15 + 37c6: 0000 bkpt + 37c8: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000037cc : +//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); + 37cc: 1063 lrw r3, 0x8000f // 37d8 + 37ce: 6c8c or r2, r3 + 37d0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37d2: b024 st.w r1, (r0, 0x10) +} + 37d4: 783c jmp r15 + 37d6: 0000 bkpt + 37d8: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000037dc : +//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) +{ + 37dc: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37de: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 37e0: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37e2: 5b85 subu r4, r3, r1 + 37e4: 6490 cmphs r4, r2 + 37e6: 0c02 bf 0x37ea // 37ea + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 37e8: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 37ea: 8380 ld.b r4, (r3, 0x0) + 37ec: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 37ee: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 37f0: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 37f2: 3c40 cmpnei r4, 0 + 37f4: 0bfd bt 0x37ee // 37ee + 37f6: 2300 addi r3, 1 + 37f8: 07f5 br 0x37e2 // 37e2 + +Disassembly of section .text.EPT_Stop: + +000037fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 37fc: 1068 lrw r3, 0x20000020 // 381c + 37fe: 3280 movi r2, 128 + 3800: 9360 ld.w r3, (r3, 0x0) + 3802: 608c addu r2, r3 + 3804: 1027 lrw r1, 0xa55ac73a // 3820 + 3806: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 3808: 9341 ld.w r2, (r3, 0x4) + 380a: 31fe movi r1, 254 + 380c: 6884 and r2, r1 + 380e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 3810: 3101 movi r1, 1 + 3812: 9341 ld.w r2, (r3, 0x4) + 3814: 6884 and r2, r1 + 3816: 3a40 cmpnei r2, 0 + 3818: 0bfd bt 0x3812 // 3812 +} + 381a: 783c jmp r15 + 381c: 20000020 .long 0x20000020 + 3820: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +00003824
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 3824: 14d1 push r4, r15 + delay_nms(2000); + 3826: 30fa movi r0, 250 + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 3828: 109a lrw r4, 0x20000048 // 3890 + delay_nms(2000); + 382a: 4003 lsli r0, r0, 3 + 382c: e0000038 bsr 0x389c // 389c + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 3830: 3201 movi r2, 1 + 3832: 9400 ld.w r0, (r4, 0x0) + 3834: 3102 movi r1, 2 + 3836: e3fffd0b bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOB0,DET_RF_MODULE_PIN); + 383a: 9400 ld.w r0, (r4, 0x0) + 383c: 3102 movi r1, 2 + 383e: e3fffd77 bsr 0x332c // 332c + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 3842: 3102 movi r1, 2 + 3844: 9400 ld.w r0, (r4, 0x0) + 3846: e3fffd97 bsr 0x3374 // 3374 + 384a: 1093 lrw r4, 0x200000a0 // 3894 + last_state = rf_exist; + 384c: a401 st.b r0, (r4, 0x1) + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 384e: a400 st.b r0, (r4, 0x0) + APT32F102_init(); //102 initial + 3850: e00000e8 bsr 0x3a20 // 3a20 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 3854: 1031 lrw r1, 0x5f50 // 3898 + 3856: 3000 movi r0, 0 + 3858: e00006b8 bsr 0x45c8 // 45c8 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 385c: e3fffc66 bsr 0x3128 // 3128 + + //UART2_TASK(); + Detect_WIFI_Task(); + 3860: e0000bd2 bsr 0x5004 // 5004 + + Detect_SPI_task(); + 3864: e00009da bsr 0x4c18 // 4c18 + + + Led_Task(); + 3868: e0000c18 bsr 0x5098 // 5098 + + if (finish_flag == 1) { + 386c: 8462 ld.b r3, (r4, 0x2) + 386e: 3b41 cmpnei r3, 1 + 3870: 0bf6 bt 0x385c // 385c + Card_Read_TasK(); + 3872: e000097b bsr 0x4b68 // 4b68 + + if(rf_exist == 0x01) + 3876: 8460 ld.b r3, (r4, 0x0) + 3878: 3b41 cmpnei r3, 1 + 387a: 0806 bt 0x3886 // 3886 + { + BackLight_Task(); + 387c: e0000bb2 bsr 0x4fe0 // 4fe0 + LogicCtrl_NoRF_Task(); //无RF模块轮询任务 + 3880: e0000b50 bsr 0x4f20 // 4f20 + 3884: 07ec br 0x385c // 385c + //Dbg_Println(DBG_BIT_SYS_STATUS,"n rf!"); + } + else if(rf_exist == 0x00) + 3886: 3b40 cmpnei r3, 0 + 3888: 0bea bt 0x385c // 385c + { +// Debounce_Task(); + LogicCtrl_Task(); //带RF模块执行逻辑 + 388a: e0000a8f bsr 0x4da8 // 4da8 + 388e: 07e7 br 0x385c // 385c + 3890: 20000048 .long 0x20000048 + 3894: 200000a0 .long 0x200000a0 + 3898: 00005f50 .long 0x00005f50 + +Disassembly of section .text.delay_nms: + +0000389c : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 389c: 14d0 push r15 + 389e: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 38a0: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 38a2: 3300 movi r3, 0 + j = 50* t; + 38a4: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 38a6: b862 st.w r3, (r14, 0x8) + j = 50* t; + 38a8: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 38aa: b860 st.w r3, (r14, 0x0) + 38ac: 9840 ld.w r2, (r14, 0x0) + 38ae: 9861 ld.w r3, (r14, 0x4) + 38b0: 64c8 cmphs r2, r3 + 38b2: 0c03 bf 0x38b8 // 38b8 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 38b4: 1403 addi r14, r14, 12 + 38b6: 1490 pop r15 + k++; + 38b8: 9862 ld.w r3, (r14, 0x8) + 38ba: 2300 addi r3, 1 + 38bc: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 38be: e3fffc35 bsr 0x3128 // 3128 + for ( i = 0; i < j; i++ ) + 38c2: 9860 ld.w r3, (r14, 0x0) + 38c4: 2300 addi r3, 1 + 38c6: 07f2 br 0x38aa // 38aa + +Disassembly of section .text.GPT0_CONFIG: + +000038c8 : +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + 38c8: 14d0 push r15 + 38ca: 1429 subi r14, r14, 36 + GPT_IO_Init(GPT_CHA_PB01); + 38cc: 3000 movi r0, 0 + 38ce: e3fffdc3 bsr 0x3454 // 3454 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 38d2: 3300 movi r3, 0 + 38d4: 3240 movi r2, 64 + 38d6: 3100 movi r1, 0 + 38d8: 3001 movi r0, 1 + 38da: e3fffe0d bsr 0x34f4 // 34f4 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 38de: 3300 movi r3, 0 + 38e0: b865 st.w r3, (r14, 0x14) + 38e2: b864 st.w r3, (r14, 0x10) + 38e4: b863 st.w r3, (r14, 0xc) + 38e6: b862 st.w r3, (r14, 0x8) + 38e8: b861 st.w r3, (r14, 0x4) + 38ea: b860 st.w r3, (r14, 0x0) + 38ec: 3208 movi r2, 8 + 38ee: 3100 movi r1, 0 + 38f0: 3000 movi r0, 0 + 38f2: e3fffe0b bsr 0x3508 // 3508 + if(rf_exist == 0x01) + 38f6: 1079 lrw r3, 0x200000a0 // 3958 + 38f8: 8360 ld.b r3, (r3, 0x0) + 38fa: 3b41 cmpnei r3, 1 + 38fc: 0827 bt 0x394a // 394a + { + GPT_Period_CMP_Write(2000,2000,0); + 38fe: 31fa movi r1, 250 + 3900: 4123 lsli r1, r1, 3 + 3902: 3200 movi r2, 0 + 3904: 6c07 mov r0, r1 + } + else if(rf_exist == 0x00) + { + GPT_Period_CMP_Write(2000,0,0); + 3906: e3fffe8f bsr 0x3624 // 3624 + } + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 390a: 3320 movi r3, 32 + 390c: 3204 movi r2, 4 + 390e: 3100 movi r1, 0 + 3910: 3001 movi r0, 1 + 3912: e3fffe1d bsr 0x354c // 354c + GPT_WaveOut_Configure(GPT_CHA,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 3916: 3300 movi r3, 0 + 3918: 3201 movi r2, 1 + 391a: b868 st.w r3, (r14, 0x20) + 391c: b867 st.w r3, (r14, 0x1c) + 391e: b866 st.w r3, (r14, 0x18) + 3920: b865 st.w r3, (r14, 0x14) + 3922: b864 st.w r3, (r14, 0x10) + 3924: b863 st.w r3, (r14, 0xc) + 3926: b842 st.w r2, (r14, 0x8) + 3928: b841 st.w r2, (r14, 0x4) + 392a: b860 st.w r3, (r14, 0x0) + 392c: 3200 movi r2, 0 + 392e: 3302 movi r3, 2 + 3930: 3100 movi r1, 0 + 3932: 3000 movi r0, 0 + 3934: e3fffe16 bsr 0x3560 // 3560 + +// GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPB,2,0,0,0,1,1,0,0,0,0); + //GPT_SyncSet_Configure(GPT_SYNCUSR0_EN,GPT_OST_CONTINUOUS,GPT_TXREARM_DIS,GPT_TRGO0SEL_SR0,GPT_TRG10SEL_SR0,GPT_AREARM_DIS); + //GPT_Trigger_Configure(GPT_SRCSEL_TRGUSR0EN,GPT_BLKINV_DIS,GPT_ALIGNMD_PRD,GPT_CROSSMD_DIS,5,5); + //GPT_EVTRG_Configure(GPT_TRGSRC0_PRD,GPT_TRGSRC1_PRD,GPT_ESYN0OE_EN,GPT_ESYN1OE_EN,GPT_CNT0INIT_EN,GPT_CNT1INIT_EN,3,3,3,3); + GPT_Start(); + 3938: e3fffe6e bsr 0x3614 // 3614 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 393c: 3180 movi r1, 128 + 393e: 4129 lsli r1, r1, 9 + 3940: 3001 movi r0, 1 + 3942: e3fffe79 bsr 0x3634 // 3634 +// GPT_INT_ENABLE(); + //INTC_ISER_WRITE(GPT0_INT); + //INTC_IWER_WRITE(GPT0_INT); +} + 3946: 1409 addi r14, r14, 36 + 3948: 1490 pop r15 + else if(rf_exist == 0x00) + 394a: 3b40 cmpnei r3, 0 + 394c: 0bdf bt 0x390a // 390a + GPT_Period_CMP_Write(2000,0,0); + 394e: 30fa movi r0, 250 + 3950: 3200 movi r2, 0 + 3952: 3100 movi r1, 0 + 3954: 4003 lsli r0, r0, 3 + 3956: 07d8 br 0x3906 // 3906 + 3958: 200000a0 .long 0x200000a0 + +Disassembly of section .text.BT_CONFIG: + +0000395c : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 395c: 14d2 push r4-r5, r15 + 395e: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 3960: 1095 lrw r4, 0x20000008 // 39b4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 3962: 3500 movi r5, 0 + BT_DeInit(BT1); + 3964: 9400 ld.w r0, (r4, 0x0) + 3966: e3fffd29 bsr 0x33b8 // 33b8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 396a: 9400 ld.w r0, (r4, 0x0) + 396c: b8a1 st.w r5, (r14, 0x4) + 396e: b8a0 st.w r5, (r14, 0x0) + 3970: 3308 movi r3, 8 + 3972: 3200 movi r2, 0 + 3974: 3101 movi r1, 1 + 3976: e3fffd38 bsr 0x33e6 // 33e6 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 397a: 3380 movi r3, 128 + 397c: 4363 lsli r3, r3, 3 + 397e: b861 st.w r3, (r14, 0x4) + 3980: 9400 ld.w r0, (r4, 0x0) + 3982: 3300 movi r3, 0 + 3984: b8a3 st.w r5, (r14, 0xc) + 3986: b8a2 st.w r5, (r14, 0x8) + 3988: b8a0 st.w r5, (r14, 0x0) + 398a: 3200 movi r2, 0 + 398c: 3180 movi r1, 128 + 398e: e3fffd38 bsr 0x33fe // 33fe + BT_Period_CMP_Write(BT1,4780,1); + 3992: 3201 movi r2, 1 + 3994: 1029 lrw r1, 0x12ac // 39b8 + 3996: 9400 ld.w r0, (r4, 0x0) + 3998: e3fffd49 bsr 0x342a // 342a + BT_Start(BT1); + 399c: 9400 ld.w r0, (r4, 0x0) + 399e: e3fffd1b bsr 0x33d4 // 33d4 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 39a2: 9400 ld.w r0, (r4, 0x0) + 39a4: 3202 movi r2, 2 + 39a6: 3101 movi r1, 1 + 39a8: e3fffd44 bsr 0x3430 // 3430 + BT1_INT_ENABLE(); + 39ac: e3fffd4c bsr 0x3444 // 3444 + +} + 39b0: 1404 addi r14, r14, 16 + 39b2: 1492 pop r4-r5, r15 + 39b4: 20000008 .long 0x20000008 + 39b8: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +000039bc : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 39bc: 14d0 push r15 + 39be: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 39c0: e3fffb00 bsr 0x2fc0 // 2fc0 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 39c4: 3101 movi r1, 1 + 39c6: 3001 movi r0, 1 + 39c8: e3fffb22 bsr 0x300c // 300c + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 39cc: 3000 movi r0, 0 + 39ce: e3fffb7b bsr 0x30c4 // 30c4 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 39d2: 3180 movi r1, 128 + 39d4: 3308 movi r3, 8 + 39d6: 3200 movi r2, 0 + 39d8: 4121 lsli r1, r1, 1 + 39da: 3002 movi r0, 2 + 39dc: e3fffb30 bsr 0x303c // 303c +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 39e0: 3080 movi r0, 128 + 39e2: 3118 movi r1, 24 + 39e4: 4002 lsli r0, r0, 2 + 39e6: e3fffbab bsr 0x313c // 313c + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 39ea: 3001 movi r0, 1 + 39ec: e3fffb80 bsr 0x30ec // 30ec + SYSCON_IWDCNT_Reload(); //reload WDT + 39f0: e3fffb9c bsr 0x3128 // 3128 + IWDT_Int_Enable(); + 39f4: e3fffbce bsr 0x3190 // 3190 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 39f8: 3340 movi r3, 64 + 39fa: b860 st.w r3, (r14, 0x0) + 39fc: 31c0 movi r1, 192 + 39fe: 3380 movi r3, 128 + 3a00: 4364 lsli r3, r3, 4 + 3a02: 3200 movi r2, 0 + 3a04: 4123 lsli r1, r1, 3 + 3a06: 3000 movi r0, 0 + 3a08: e3fffba6 bsr 0x3154 // 3154 + LVD_Int_Enable(); + 3a0c: e3fffbb4 bsr 0x3174 // 3174 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 3a10: e3fffbee bsr 0x31ec // 31ec + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 3a14: 3000 movi r0, 0 + 3a16: e0000f89 bsr 0x5928 // 5928 + +} + 3a1a: 1401 addi r14, r14, 4 + 3a1c: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00003a20 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 3a20: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a22: 1072 lrw r3, 0x2000005c // 3a68 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a24: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a26: 9340 ld.w r2, (r3, 0x0) + 3a28: 1071 lrw r3, 0xfffffff // 3a6c + 3a2a: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 3a2c: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a2e: 926c ld.w r3, (r2, 0x30) + 3a30: 68c4 and r3, r1 + 3a32: 3b40 cmpnei r3, 0 + 3a34: 0ffd bf 0x3a2e // 3a2e +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 3a36: e3ffffc3 bsr 0x39bc // 39bc + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 3a3a: e0000525 bsr 0x4484 // 4484 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 3a3e: e3fffbdd bsr 0x31f8 // 31f8 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 3a42: 3101 movi r1, 1 + 3a44: 300f movi r0, 15 + 3a46: e3fffbeb bsr 0x321c // 321c +// Set_INT_Priority(SIO_IRQ,1); //SIO优先级最高 +// + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 3a4a: 3102 movi r1, 2 + 3a4c: 3019 movi r0, 25 + 3a4e: e3fffbe7 bsr 0x321c // 321c +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 3a52: e3ffff85 bsr 0x395c // 395c + + GPT0_CONFIG(); + 3a56: e3ffff39 bsr 0x38c8 // 38c8 + + UARTx_Init(UART_2,NULL); + 3a5a: 3100 movi r1, 0 + 3a5c: 3002 movi r0, 2 + 3a5e: e0000517 bsr 0x448c // 448c +// UARTx_Init(UART_2,NULL); + + RC522_Init(); + 3a62: e0000701 bsr 0x4864 // 4864 +// } +// else if(rf_exist == 0x00) //带无线模块初始化 +// { +// LogicCtrl_Init(); +// } +} + 3a66: 1490 pop r15 + 3a68: 2000005c .long 0x2000005c + 3a6c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.SYSCONIntHandler: + +00003a70 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 3a70: 1460 nie + 3a72: 1462 ipush + // ISR content ... + nop; + 3a74: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 3a76: 117a lrw r3, 0x2000005c // 3b5c + 3a78: 3280 movi r2, 128 + 3a7a: 9360 ld.w r3, (r3, 0x0) + 3a7c: 60c8 addu r3, r2 + 3a7e: 9323 ld.w r1, (r3, 0xc) + 3a80: 3001 movi r0, 1 + 3a82: 6840 and r1, r0 + 3a84: 3940 cmpnei r1, 0 + 3a86: 0c04 bf 0x3a8e // 3a8e + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 3a88: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 3a8a: 1463 ipop + 3a8c: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 3a8e: 9323 ld.w r1, (r3, 0xc) + 3a90: 3002 movi r0, 2 + 3a92: 6840 and r1, r0 + 3a94: 3940 cmpnei r1, 0 + 3a96: 0bf9 bt 0x3a88 // 3a88 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 3a98: 9323 ld.w r1, (r3, 0xc) + 3a9a: 3008 movi r0, 8 + 3a9c: 6840 and r1, r0 + 3a9e: 3940 cmpnei r1, 0 + 3aa0: 0bf4 bt 0x3a88 // 3a88 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 3aa2: 9323 ld.w r1, (r3, 0xc) + 3aa4: 3010 movi r0, 16 + 3aa6: 6840 and r1, r0 + 3aa8: 3940 cmpnei r1, 0 + 3aaa: 0bef bt 0x3a88 // 3a88 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 3aac: 9323 ld.w r1, (r3, 0xc) + 3aae: 6848 and r1, r2 + 3ab0: 3940 cmpnei r1, 0 + 3ab2: 0c03 bf 0x3ab8 // 3ab8 + SYSCON->ICR = CMD_ERR_ST; + 3ab4: b341 st.w r2, (r3, 0x4) +} + 3ab6: 07ea br 0x3a8a // 3a8a + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 3ab8: 3280 movi r2, 128 + 3aba: 9323 ld.w r1, (r3, 0xc) + 3abc: 4241 lsli r2, r2, 1 + 3abe: 6848 and r1, r2 + 3ac0: 3940 cmpnei r1, 0 + 3ac2: 0bf9 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 3ac4: 3280 movi r2, 128 + 3ac6: 9323 ld.w r1, (r3, 0xc) + 3ac8: 4242 lsli r2, r2, 2 + 3aca: 6848 and r1, r2 + 3acc: 3940 cmpnei r1, 0 + 3ace: 0bf3 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 3ad0: 3280 movi r2, 128 + 3ad2: 9323 ld.w r1, (r3, 0xc) + 3ad4: 4243 lsli r2, r2, 3 + 3ad6: 6848 and r1, r2 + 3ad8: 3940 cmpnei r1, 0 + 3ada: 0bed bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 3adc: 3280 movi r2, 128 + 3ade: 9323 ld.w r1, (r3, 0xc) + 3ae0: 4244 lsli r2, r2, 4 + 3ae2: 6848 and r1, r2 + 3ae4: 3940 cmpnei r1, 0 + 3ae6: 0c03 bf 0x3aec // 3aec + nop; + 3ae8: 6c03 mov r0, r0 + 3aea: 07e5 br 0x3ab4 // 3ab4 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 3aec: 3280 movi r2, 128 + 3aee: 9323 ld.w r1, (r3, 0xc) + 3af0: 4245 lsli r2, r2, 5 + 3af2: 6848 and r1, r2 + 3af4: 3940 cmpnei r1, 0 + 3af6: 0bdf bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 3af8: 3280 movi r2, 128 + 3afa: 9323 ld.w r1, (r3, 0xc) + 3afc: 4246 lsli r2, r2, 6 + 3afe: 6848 and r1, r2 + 3b00: 3940 cmpnei r1, 0 + 3b02: 0bd9 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 3b04: 3280 movi r2, 128 + 3b06: 9323 ld.w r1, (r3, 0xc) + 3b08: 4247 lsli r2, r2, 7 + 3b0a: 6848 and r1, r2 + 3b0c: 3940 cmpnei r1, 0 + 3b0e: 0bd3 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 3b10: 3280 movi r2, 128 + 3b12: 9323 ld.w r1, (r3, 0xc) + 3b14: 424b lsli r2, r2, 11 + 3b16: 6848 and r1, r2 + 3b18: 3940 cmpnei r1, 0 + 3b1a: 0bcd bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 3b1c: 3280 movi r2, 128 + 3b1e: 9323 ld.w r1, (r3, 0xc) + 3b20: 424c lsli r2, r2, 12 + 3b22: 6848 and r1, r2 + 3b24: 3940 cmpnei r1, 0 + 3b26: 0bc7 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3b28: 3280 movi r2, 128 + 3b2a: 9323 ld.w r1, (r3, 0xc) + 3b2c: 424d lsli r2, r2, 13 + 3b2e: 6848 and r1, r2 + 3b30: 3940 cmpnei r1, 0 + 3b32: 0bc1 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 3b34: 3280 movi r2, 128 + 3b36: 9323 ld.w r1, (r3, 0xc) + 3b38: 424e lsli r2, r2, 14 + 3b3a: 6848 and r1, r2 + 3b3c: 3940 cmpnei r1, 0 + 3b3e: 0bbb bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 3b40: 3280 movi r2, 128 + 3b42: 9323 ld.w r1, (r3, 0xc) + 3b44: 424f lsli r2, r2, 15 + 3b46: 6848 and r1, r2 + 3b48: 3940 cmpnei r1, 0 + 3b4a: 0bb5 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3b4c: 3280 movi r2, 128 + 3b4e: 9323 ld.w r1, (r3, 0xc) + 3b50: 4256 lsli r2, r2, 22 + 3b52: 6848 and r1, r2 + 3b54: 3940 cmpnei r1, 0 + 3b56: 0baf bt 0x3ab4 // 3ab4 + 3b58: 0799 br 0x3a8a // 3a8a + 3b5a: 0000 bkpt + 3b5c: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00003b60 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 3b60: 1460 nie + 3b62: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 3b64: 1078 lrw r3, 0x20000060 // 3bc4 + 3b66: 3101 movi r1, 1 + 3b68: 9360 ld.w r3, (r3, 0x0) + 3b6a: 934b ld.w r2, (r3, 0x2c) + 3b6c: 6884 and r2, r1 + 3b6e: 3a40 cmpnei r2, 0 + 3b70: 0c04 bf 0x3b78 // 3b78 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 3b72: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 3b74: 1463 ipop + 3b76: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 3b78: 934b ld.w r2, (r3, 0x2c) + 3b7a: 3102 movi r1, 2 + 3b7c: 6884 and r2, r1 + 3b7e: 3a40 cmpnei r2, 0 + 3b80: 0bf9 bt 0x3b72 // 3b72 + else if(IFC->MISR&PEP_END_INT) + 3b82: 934b ld.w r2, (r3, 0x2c) + 3b84: 3104 movi r1, 4 + 3b86: 6884 and r2, r1 + 3b88: 3a40 cmpnei r2, 0 + 3b8a: 0bf4 bt 0x3b72 // 3b72 + else if(IFC->MISR&PROT_ERR_INT) + 3b8c: 3280 movi r2, 128 + 3b8e: 932b ld.w r1, (r3, 0x2c) + 3b90: 4245 lsli r2, r2, 5 + 3b92: 6848 and r1, r2 + 3b94: 3940 cmpnei r1, 0 + 3b96: 0c03 bf 0x3b9c // 3b9c + IFC->ICR=OVW_ERR_INT; + 3b98: b34c st.w r2, (r3, 0x30) +} + 3b9a: 07ed br 0x3b74 // 3b74 + else if(IFC->MISR&UDEF_ERR_INT) + 3b9c: 3280 movi r2, 128 + 3b9e: 932b ld.w r1, (r3, 0x2c) + 3ba0: 4246 lsli r2, r2, 6 + 3ba2: 6848 and r1, r2 + 3ba4: 3940 cmpnei r1, 0 + 3ba6: 0bf9 bt 0x3b98 // 3b98 + else if(IFC->MISR&ADDR_ERR_INT) + 3ba8: 3280 movi r2, 128 + 3baa: 932b ld.w r1, (r3, 0x2c) + 3bac: 4247 lsli r2, r2, 7 + 3bae: 6848 and r1, r2 + 3bb0: 3940 cmpnei r1, 0 + 3bb2: 0bf3 bt 0x3b98 // 3b98 + else if(IFC->MISR&OVW_ERR_INT) + 3bb4: 3280 movi r2, 128 + 3bb6: 932b ld.w r1, (r3, 0x2c) + 3bb8: 4248 lsli r2, r2, 8 + 3bba: 6848 and r1, r2 + 3bbc: 3940 cmpnei r1, 0 + 3bbe: 0bed bt 0x3b98 // 3b98 + 3bc0: 07da br 0x3b74 // 3b74 + 3bc2: 0000 bkpt + 3bc4: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003bc8 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3bc8: 1460 nie + 3bca: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3bcc: 1078 lrw r3, 0x20000050 // 3c2c + 3bce: 3101 movi r1, 1 + 3bd0: 9360 ld.w r3, (r3, 0x0) + 3bd2: 9348 ld.w r2, (r3, 0x20) + 3bd4: 6884 and r2, r1 + 3bd6: 3a40 cmpnei r2, 0 + 3bd8: 0c04 bf 0x3be0 // 3be0 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3bda: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 3bdc: 1463 ipop + 3bde: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 3be0: 9348 ld.w r2, (r3, 0x20) + 3be2: 3102 movi r1, 2 + 3be4: 6884 and r2, r1 + 3be6: 3a40 cmpnei r2, 0 + 3be8: 0bf9 bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3bea: 9348 ld.w r2, (r3, 0x20) + 3bec: 3104 movi r1, 4 + 3bee: 6884 and r2, r1 + 3bf0: 3a40 cmpnei r2, 0 + 3bf2: 0bf4 bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3bf4: 9348 ld.w r2, (r3, 0x20) + 3bf6: 3110 movi r1, 16 + 3bf8: 6884 and r2, r1 + 3bfa: 3a40 cmpnei r2, 0 + 3bfc: 0bef bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 3bfe: 9348 ld.w r2, (r3, 0x20) + 3c00: 3120 movi r1, 32 + 3c02: 6884 and r2, r1 + 3c04: 3a40 cmpnei r2, 0 + 3c06: 0bea bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3c08: 9348 ld.w r2, (r3, 0x20) + 3c0a: 3140 movi r1, 64 + 3c0c: 6884 and r2, r1 + 3c0e: 3a40 cmpnei r2, 0 + 3c10: 0be5 bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 3c12: 9348 ld.w r2, (r3, 0x20) + 3c14: 3180 movi r1, 128 + 3c16: 6884 and r2, r1 + 3c18: 3a40 cmpnei r2, 0 + 3c1a: 0be0 bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 3c1c: 3280 movi r2, 128 + 3c1e: 9328 ld.w r1, (r3, 0x20) + 3c20: 4249 lsli r2, r2, 9 + 3c22: 6848 and r1, r2 + 3c24: 3940 cmpnei r1, 0 + 3c26: 0fdb bf 0x3bdc // 3bdc + ADC0->CSR = ADC12_SEQ_END0; + 3c28: b347 st.w r2, (r3, 0x1c) +} + 3c2a: 07d9 br 0x3bdc // 3bdc + 3c2c: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003c30 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3c30: 1460 nie + 3c32: 1462 ipush + 3c34: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3c36: 1387 lrw r4, 0x20000020 // 3dd0 + 3c38: 3280 movi r2, 128 + 3c3a: 9460 ld.w r3, (r4, 0x0) + 3c3c: 60c8 addu r3, r2 + 3c3e: 9335 ld.w r1, (r3, 0x54) + 3c40: 3001 movi r0, 1 + 3c42: 6840 and r1, r0 + 3c44: 3940 cmpnei r1, 0 + 3c46: 0c03 bf 0x3c4c // 3c4c + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 3c48: b317 st.w r0, (r3, 0x5c) + 3c4a: 0424 br 0x3c92 // 3c92 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3c4c: 9335 ld.w r1, (r3, 0x54) + 3c4e: 3002 movi r0, 2 + 3c50: 6840 and r1, r0 + 3c52: 3940 cmpnei r1, 0 + 3c54: 0bfa bt 0x3c48 // 3c48 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3c56: 9335 ld.w r1, (r3, 0x54) + 3c58: 3004 movi r0, 4 + 3c5a: 6840 and r1, r0 + 3c5c: 3940 cmpnei r1, 0 + 3c5e: 0bf5 bt 0x3c48 // 3c48 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3c60: 9335 ld.w r1, (r3, 0x54) + 3c62: 3008 movi r0, 8 + 3c64: 6840 and r1, r0 + 3c66: 3940 cmpnei r1, 0 + 3c68: 0bf0 bt 0x3c48 // 3c48 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3c6a: 9335 ld.w r1, (r3, 0x54) + 3c6c: 3010 movi r0, 16 + 3c6e: 6840 and r1, r0 + 3c70: 3940 cmpnei r1, 0 + 3c72: 0c1f bf 0x3cb0 // 3cb0 + EPT0->ICR=EPT_CAP_LD0; + 3c74: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3c76: 3200 movi r2, 0 + 3c78: 3101 movi r1, 1 + 3c7a: 3000 movi r0, 0 + 3c7c: e3fffa98 bsr 0x31ac // 31ac + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 3c80: 3201 movi r2, 1 + 3c82: 3101 movi r1, 1 + 3c84: 3001 movi r0, 1 + 3c86: e3fffa93 bsr 0x31ac // 31ac + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3c8a: 9460 ld.w r3, (r4, 0x0) + 3c8c: 934b ld.w r2, (r3, 0x2c) + 3c8e: 1272 lrw r3, 0x20000388 // 3dd4 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3c90: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 3c92: 9460 ld.w r3, (r4, 0x0) + 3c94: 3280 movi r2, 128 + 3c96: 60c8 addu r3, r2 + 3c98: 932b ld.w r1, (r3, 0x2c) + 3c9a: 3001 movi r0, 1 + 3c9c: 6840 and r1, r0 + 3c9e: 3940 cmpnei r1, 0 + 3ca0: 0c61 bf 0x3d62 // 3d62 + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 3ca2: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 3ca4: d9ee2001 ld.w r15, (r14, 0x4) + 3ca8: 9880 ld.w r4, (r14, 0x0) + 3caa: 1402 addi r14, r14, 8 + 3cac: 1463 ipop + 3cae: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 3cb0: 9335 ld.w r1, (r3, 0x54) + 3cb2: 3020 movi r0, 32 + 3cb4: 6840 and r1, r0 + 3cb6: 3940 cmpnei r1, 0 + 3cb8: 0c10 bf 0x3cd8 // 3cd8 + EPT0->ICR=EPT_CAP_LD1; + 3cba: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3cbc: 3200 movi r2, 0 + 3cbe: 3101 movi r1, 1 + 3cc0: 3001 movi r0, 1 + 3cc2: e3fffa75 bsr 0x31ac // 31ac + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3cc6: 3201 movi r2, 1 + 3cc8: 3101 movi r1, 1 + 3cca: 3000 movi r0, 0 + 3ccc: e3fffa70 bsr 0x31ac // 31ac + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3cd0: 9460 ld.w r3, (r4, 0x0) + 3cd2: 934c ld.w r2, (r3, 0x30) + 3cd4: 1261 lrw r3, 0x20000384 // 3dd8 + 3cd6: 07dd br 0x3c90 // 3c90 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3cd8: 9335 ld.w r1, (r3, 0x54) + 3cda: 3040 movi r0, 64 + 3cdc: 6840 and r1, r0 + 3cde: 3940 cmpnei r1, 0 + 3ce0: 0bb4 bt 0x3c48 // 3c48 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 3ce2: 9335 ld.w r1, (r3, 0x54) + 3ce4: 6848 and r1, r2 + 3ce6: 3940 cmpnei r1, 0 + 3ce8: 0c03 bf 0x3cee // 3cee + EPT0->ICR=EPT_CDD; + 3cea: b357 st.w r2, (r3, 0x5c) + 3cec: 07d3 br 0x3c92 // 3c92 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 3cee: 3280 movi r2, 128 + 3cf0: 9335 ld.w r1, (r3, 0x54) + 3cf2: 4241 lsli r2, r2, 1 + 3cf4: 6848 and r1, r2 + 3cf6: 3940 cmpnei r1, 0 + 3cf8: 0bf9 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3cfa: 3280 movi r2, 128 + 3cfc: 9335 ld.w r1, (r3, 0x54) + 3cfe: 4242 lsli r2, r2, 2 + 3d00: 6848 and r1, r2 + 3d02: 3940 cmpnei r1, 0 + 3d04: 0bf3 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3d06: 3280 movi r2, 128 + 3d08: 9335 ld.w r1, (r3, 0x54) + 3d0a: 4243 lsli r2, r2, 3 + 3d0c: 6848 and r1, r2 + 3d0e: 3940 cmpnei r1, 0 + 3d10: 0bed bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 3d12: 3280 movi r2, 128 + 3d14: 9335 ld.w r1, (r3, 0x54) + 3d16: 4244 lsli r2, r2, 4 + 3d18: 6848 and r1, r2 + 3d1a: 3940 cmpnei r1, 0 + 3d1c: 0be7 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 3d1e: 3280 movi r2, 128 + 3d20: 9335 ld.w r1, (r3, 0x54) + 3d22: 4245 lsli r2, r2, 5 + 3d24: 6848 and r1, r2 + 3d26: 3940 cmpnei r1, 0 + 3d28: 0be1 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3d2a: 3280 movi r2, 128 + 3d2c: 9335 ld.w r1, (r3, 0x54) + 3d2e: 4246 lsli r2, r2, 6 + 3d30: 6848 and r1, r2 + 3d32: 3940 cmpnei r1, 0 + 3d34: 0bdb bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3d36: 3280 movi r2, 128 + 3d38: 9335 ld.w r1, (r3, 0x54) + 3d3a: 4247 lsli r2, r2, 7 + 3d3c: 6848 and r1, r2 + 3d3e: 3940 cmpnei r1, 0 + 3d40: 0bd5 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 3d42: 3280 movi r2, 128 + 3d44: 9335 ld.w r1, (r3, 0x54) + 3d46: 4248 lsli r2, r2, 8 + 3d48: 6848 and r1, r2 + 3d4a: 3940 cmpnei r1, 0 + 3d4c: 0bcf bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 3d4e: 3280 movi r2, 128 + 3d50: 9335 ld.w r1, (r3, 0x54) + 3d52: 4249 lsli r2, r2, 9 + 3d54: 6848 and r1, r2 + 3d56: 3940 cmpnei r1, 0 + 3d58: 0f9d bf 0x3c92 // 3c92 + EPT0->ICR=EPT_PEND; + 3d5a: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3d5c: e3fffd50 bsr 0x37fc // 37fc + 3d60: 0799 br 0x3c92 // 3c92 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 3d62: 932b ld.w r1, (r3, 0x2c) + 3d64: 3002 movi r0, 2 + 3d66: 6840 and r1, r0 + 3d68: 3940 cmpnei r1, 0 + 3d6a: 0b9c bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3d6c: 932b ld.w r1, (r3, 0x2c) + 3d6e: 3004 movi r0, 4 + 3d70: 6840 and r1, r0 + 3d72: 3940 cmpnei r1, 0 + 3d74: 0b97 bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3d76: 932b ld.w r1, (r3, 0x2c) + 3d78: 3008 movi r0, 8 + 3d7a: 6840 and r1, r0 + 3d7c: 3940 cmpnei r1, 0 + 3d7e: 0b92 bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 3d80: 932b ld.w r1, (r3, 0x2c) + 3d82: 3010 movi r0, 16 + 3d84: 6840 and r1, r0 + 3d86: 3940 cmpnei r1, 0 + 3d88: 0b8d bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3d8a: 932b ld.w r1, (r3, 0x2c) + 3d8c: 3020 movi r0, 32 + 3d8e: 6840 and r1, r0 + 3d90: 3940 cmpnei r1, 0 + 3d92: 0b88 bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3d94: 932b ld.w r1, (r3, 0x2c) + 3d96: 3040 movi r0, 64 + 3d98: 6840 and r1, r0 + 3d9a: 3940 cmpnei r1, 0 + 3d9c: 0b83 bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 3d9e: 932b ld.w r1, (r3, 0x2c) + 3da0: 6848 and r1, r2 + 3da2: 3940 cmpnei r1, 0 + 3da4: 0c03 bf 0x3daa // 3daa + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3da6: b34d st.w r2, (r3, 0x34) +} + 3da8: 077e br 0x3ca4 // 3ca4 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3daa: 3280 movi r2, 128 + 3dac: 932b ld.w r1, (r3, 0x2c) + 3dae: 4241 lsli r2, r2, 1 + 3db0: 6848 and r1, r2 + 3db2: 3940 cmpnei r1, 0 + 3db4: 0bf9 bt 0x3da6 // 3da6 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3db6: 3280 movi r2, 128 + 3db8: 932b ld.w r1, (r3, 0x2c) + 3dba: 4242 lsli r2, r2, 2 + 3dbc: 6848 and r1, r2 + 3dbe: 3940 cmpnei r1, 0 + 3dc0: 0bf3 bt 0x3da6 // 3da6 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 3dc2: 3280 movi r2, 128 + 3dc4: 932b ld.w r1, (r3, 0x2c) + 3dc6: 4243 lsli r2, r2, 3 + 3dc8: 6848 and r1, r2 + 3dca: 3940 cmpnei r1, 0 + 3dcc: 0bed bt 0x3da6 // 3da6 + 3dce: 076b br 0x3ca4 // 3ca4 + 3dd0: 20000020 .long 0x20000020 + 3dd4: 20000388 .long 0x20000388 + 3dd8: 20000384 .long 0x20000384 + +Disassembly of section .text.WWDTHandler: + +00003ddc : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3ddc: 1460 nie + 3dde: 1462 ipush + 3de0: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 3de2: 10ab lrw r5, 0x20000010 // 3e0c + 3de4: 3401 movi r4, 1 + 3de6: 9560 ld.w r3, (r5, 0x0) + 3de8: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3dea: 30ff movi r0, 255 + 3dec: e3fffade bsr 0x33a8 // 33a8 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 3df0: 9540 ld.w r2, (r5, 0x0) + 3df2: 9263 ld.w r3, (r2, 0xc) + 3df4: 68d0 and r3, r4 + 3df6: 3b40 cmpnei r3, 0 + 3df8: 0c02 bf 0x3dfc // 3dfc + { + WWDT->ICR = WWDT_EVI; + 3dfa: b285 st.w r4, (r2, 0x14) + } +} + 3dfc: d9ee2002 ld.w r15, (r14, 0x8) + 3e00: 98a1 ld.w r5, (r14, 0x4) + 3e02: 9880 ld.w r4, (r14, 0x0) + 3e04: 1403 addi r14, r14, 12 + 3e06: 1463 ipop + 3e08: 1461 nir + 3e0a: 0000 bkpt + 3e0c: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00003e10 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 3e10: 1460 nie + 3e12: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3e14: 107e lrw r3, 0x20000024 // 3e8c + 3e16: 3101 movi r1, 1 + 3e18: 9360 ld.w r3, (r3, 0x0) + 3e1a: 237f addi r3, 128 + 3e1c: 9355 ld.w r2, (r3, 0x54) + 3e1e: 6884 and r2, r1 + 3e20: 3a40 cmpnei r2, 0 + 3e22: 0c04 bf 0x3e2a // 3e2a + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 3e24: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 3e26: 1463 ipop + 3e28: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3e2a: 9355 ld.w r2, (r3, 0x54) + 3e2c: 3102 movi r1, 2 + 3e2e: 6884 and r2, r1 + 3e30: 3a40 cmpnei r2, 0 + 3e32: 0bf9 bt 0x3e24 // 3e24 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3e34: 9355 ld.w r2, (r3, 0x54) + 3e36: 3110 movi r1, 16 + 3e38: 6884 and r2, r1 + 3e3a: 3a40 cmpnei r2, 0 + 3e3c: 0bf4 bt 0x3e24 // 3e24 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 3e3e: 9355 ld.w r2, (r3, 0x54) + 3e40: 3120 movi r1, 32 + 3e42: 6884 and r2, r1 + 3e44: 3a40 cmpnei r2, 0 + 3e46: 0bef bt 0x3e24 // 3e24 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3e48: 3280 movi r2, 128 + 3e4a: 9335 ld.w r1, (r3, 0x54) + 3e4c: 4241 lsli r2, r2, 1 + 3e4e: 6848 and r1, r2 + 3e50: 3940 cmpnei r1, 0 + 3e52: 0c03 bf 0x3e58 // 3e58 + GPT0->ICR = GPT_INT_PEND; + 3e54: b357 st.w r2, (r3, 0x5c) +} + 3e56: 07e8 br 0x3e26 // 3e26 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3e58: 3280 movi r2, 128 + 3e5a: 9335 ld.w r1, (r3, 0x54) + 3e5c: 4242 lsli r2, r2, 2 + 3e5e: 6848 and r1, r2 + 3e60: 3940 cmpnei r1, 0 + 3e62: 0bf9 bt 0x3e54 // 3e54 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3e64: 3280 movi r2, 128 + 3e66: 9335 ld.w r1, (r3, 0x54) + 3e68: 4243 lsli r2, r2, 3 + 3e6a: 6848 and r1, r2 + 3e6c: 3940 cmpnei r1, 0 + 3e6e: 0bf3 bt 0x3e54 // 3e54 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 3e70: 3280 movi r2, 128 + 3e72: 9335 ld.w r1, (r3, 0x54) + 3e74: 4244 lsli r2, r2, 4 + 3e76: 6848 and r1, r2 + 3e78: 3940 cmpnei r1, 0 + 3e7a: 0bed bt 0x3e54 // 3e54 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3e7c: 3280 movi r2, 128 + 3e7e: 9335 ld.w r1, (r3, 0x54) + 3e80: 4249 lsli r2, r2, 9 + 3e82: 6848 and r1, r2 + 3e84: 3940 cmpnei r1, 0 + 3e86: 0be7 bt 0x3e54 // 3e54 + 3e88: 07cf br 0x3e26 // 3e26 + 3e8a: 0000 bkpt + 3e8c: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00003e90 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 3e90: 1460 nie + 3e92: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3e94: 1079 lrw r3, 0x20000018 // 3ef8 + 3e96: 3101 movi r1, 1 + 3e98: 9360 ld.w r3, (r3, 0x0) + 3e9a: 934a ld.w r2, (r3, 0x28) + 3e9c: 6884 and r2, r1 + 3e9e: 3a40 cmpnei r2, 0 + 3ea0: 0c14 bf 0x3ec8 // 3ec8 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 3ea2: 1057 lrw r2, 0xca53 // 3efc + RTC->ICR=ALRA_INT; + 3ea4: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3ea6: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3ea8: 9342 ld.w r2, (r3, 0x8) + 3eaa: 6c84 or r2, r1 + 3eac: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 3eae: 3280 movi r2, 128 + 3eb0: 424d lsli r2, r2, 13 + 3eb2: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3eb4: 3102 movi r1, 2 + 3eb6: 9342 ld.w r2, (r3, 0x8) + 3eb8: 6884 and r2, r1 + 3eba: 3a40 cmpnei r2, 0 + 3ebc: 0bfd bt 0x3eb6 // 3eb6 + RTC->CR &= ~0x1; + 3ebe: 9342 ld.w r2, (r3, 0x8) + 3ec0: 3a80 bclri r2, 0 + 3ec2: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 3ec4: 1463 ipop + 3ec6: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3ec8: 934a ld.w r2, (r3, 0x28) + 3eca: 3102 movi r1, 2 + 3ecc: 6884 and r2, r1 + 3ece: 3a40 cmpnei r2, 0 + 3ed0: 0c03 bf 0x3ed6 // 3ed6 + RTC->ICR=RTC_TRGEV1_INT; + 3ed2: b32b st.w r1, (r3, 0x2c) +} + 3ed4: 07f8 br 0x3ec4 // 3ec4 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3ed6: 934a ld.w r2, (r3, 0x28) + 3ed8: 3104 movi r1, 4 + 3eda: 6884 and r2, r1 + 3edc: 3a40 cmpnei r2, 0 + 3ede: 0bfa bt 0x3ed2 // 3ed2 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 3ee0: 934a ld.w r2, (r3, 0x28) + 3ee2: 3108 movi r1, 8 + 3ee4: 6884 and r2, r1 + 3ee6: 3a40 cmpnei r2, 0 + 3ee8: 0bf5 bt 0x3ed2 // 3ed2 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3eea: 934a ld.w r2, (r3, 0x28) + 3eec: 3110 movi r1, 16 + 3eee: 6884 and r2, r1 + 3ef0: 3a40 cmpnei r2, 0 + 3ef2: 0bf0 bt 0x3ed2 // 3ed2 + 3ef4: 07e8 br 0x3ec4 // 3ec4 + 3ef6: 0000 bkpt + 3ef8: 20000018 .long 0x20000018 + 3efc: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00003f00 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 3f00: 1460 nie + 3f02: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f04: 106d lrw r3, 0x20000040 // 3f38 + 3f06: 3102 movi r1, 2 + 3f08: 9360 ld.w r3, (r3, 0x0) + 3f0a: 9343 ld.w r2, (r3, 0xc) + 3f0c: 6884 and r2, r1 + 3f0e: 3a40 cmpnei r2, 0 + 3f10: 0c03 bf 0x3f16 // 3f16 + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 3f12: b323 st.w r1, (r3, 0xc) + } +} + 3f14: 0410 br 0x3f34 // 3f34 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f16: 9343 ld.w r2, (r3, 0xc) + 3f18: 3101 movi r1, 1 + 3f1a: 6884 and r2, r1 + 3f1c: 3a40 cmpnei r2, 0 + 3f1e: 0bfa bt 0x3f12 // 3f12 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f20: 9343 ld.w r2, (r3, 0xc) + 3f22: 3108 movi r1, 8 + 3f24: 6884 and r2, r1 + 3f26: 3a40 cmpnei r2, 0 + 3f28: 0bf5 bt 0x3f12 // 3f12 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f2a: 9343 ld.w r2, (r3, 0xc) + 3f2c: 3104 movi r1, 4 + 3f2e: 6884 and r2, r1 + 3f30: 3a40 cmpnei r2, 0 + 3f32: 0bf0 bt 0x3f12 // 3f12 +} + 3f34: 1463 ipop + 3f36: 1461 nir + 3f38: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003f3c : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3f3c: 1460 nie + 3f3e: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f40: 106d lrw r3, 0x2000003c // 3f74 + 3f42: 3102 movi r1, 2 + 3f44: 9360 ld.w r3, (r3, 0x0) + 3f46: 9343 ld.w r2, (r3, 0xc) + 3f48: 6884 and r2, r1 + 3f4a: 3a40 cmpnei r2, 0 + 3f4c: 0c03 bf 0x3f52 // 3f52 + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + 3f4e: b323 st.w r1, (r3, 0xc) + } +} + 3f50: 0410 br 0x3f70 // 3f70 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f52: 9343 ld.w r2, (r3, 0xc) + 3f54: 3101 movi r1, 1 + 3f56: 6884 and r2, r1 + 3f58: 3a40 cmpnei r2, 0 + 3f5a: 0bfa bt 0x3f4e // 3f4e + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f5c: 9343 ld.w r2, (r3, 0xc) + 3f5e: 3108 movi r1, 8 + 3f60: 6884 and r2, r1 + 3f62: 3a40 cmpnei r2, 0 + 3f64: 0bf5 bt 0x3f4e // 3f4e + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f66: 9343 ld.w r2, (r3, 0xc) + 3f68: 3104 movi r1, 4 + 3f6a: 6884 and r2, r1 + 3f6c: 3a40 cmpnei r2, 0 + 3f6e: 0bf0 bt 0x3f4e // 3f4e +} + 3f70: 1463 ipop + 3f72: 1461 nir + 3f74: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003f78 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3f78: 1460 nie + 3f7a: 1462 ipush + 3f7c: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f7e: 107f lrw r3, 0x20000038 // 3ff8 + 3f80: 3102 movi r1, 2 + 3f82: 9360 ld.w r3, (r3, 0x0) + 3f84: 9343 ld.w r2, (r3, 0xc) + 3f86: 6884 and r2, r1 + 3f88: 3a40 cmpnei r2, 0 + 3f8a: 0c0b bf 0x3fa0 // 3fa0 + { + UART2->ISR=UART_RX_INT_S; + 3f8c: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 3f8e: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 3f90: 7400 zextb r0, r0 + 3f92: e00002e9 bsr 0x4564 // 4564 + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 3f96: d9ee2000 ld.w r15, (r14, 0x0) + 3f9a: 1401 addi r14, r14, 4 + 3f9c: 1463 ipop + 3f9e: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3fa0: 9323 ld.w r1, (r3, 0xc) + 3fa2: 3201 movi r2, 1 + 3fa4: 6848 and r1, r2 + 3fa6: 3940 cmpnei r1, 0 + 3fa8: 0c0d bf 0x3fc2 // 3fc2 + UART2->ISR=UART_TX_INT_S; + 3faa: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3fac: 1074 lrw r3, 0x200000bc // 3ffc + 3fae: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fb0: 1074 lrw r3, 0x200000c0 // 4000 + 3fb2: 9360 ld.w r3, (r3, 0x0) + 3fb4: 3b41 cmpnei r3, 1 + 3fb6: 0bf0 bt 0x3f96 // 3f96 + RS485_Comm_Start ++; + 3fb8: 1053 lrw r2, 0x200000c4 // 4004 + RS485_Comm_End ++; + 3fba: 9260 ld.w r3, (r2, 0x0) + 3fbc: 2300 addi r3, 1 + 3fbe: b260 st.w r3, (r2, 0x0) +} + 3fc0: 07eb br 0x3f96 // 3f96 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3fc2: 9343 ld.w r2, (r3, 0xc) + 3fc4: 3108 movi r1, 8 + 3fc6: 6884 and r2, r1 + 3fc8: 3a40 cmpnei r2, 0 + 3fca: 0c03 bf 0x3fd0 // 3fd0 + UART2->ISR=UART_TX_IOV_S; + 3fcc: b323 st.w r1, (r3, 0xc) + 3fce: 07e4 br 0x3f96 // 3f96 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3fd0: 9343 ld.w r2, (r3, 0xc) + 3fd2: 3104 movi r1, 4 + 3fd4: 6884 and r2, r1 + 3fd6: 3a40 cmpnei r2, 0 + 3fd8: 0bfa bt 0x3fcc // 3fcc + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3fda: 3180 movi r1, 128 + 3fdc: 9303 ld.w r0, (r3, 0xc) + 3fde: 412c lsli r1, r1, 12 + 3fe0: 6804 and r0, r1 + 3fe2: 3840 cmpnei r0, 0 + 3fe4: 0fd9 bf 0x3f96 // 3f96 + UART2->ISR=UART_TX_DONE_S; + 3fe6: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3fe8: 1065 lrw r3, 0x200000bc // 3ffc + 3fea: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fec: 1065 lrw r3, 0x200000c0 // 4000 + 3fee: 9360 ld.w r3, (r3, 0x0) + 3ff0: 3b41 cmpnei r3, 1 + 3ff2: 0bd2 bt 0x3f96 // 3f96 + RS485_Comm_End ++; + 3ff4: 1045 lrw r2, 0x200000c8 // 4008 + 3ff6: 07e2 br 0x3fba // 3fba + 3ff8: 20000038 .long 0x20000038 + 3ffc: 200000bc .long 0x200000bc + 4000: 200000c0 .long 0x200000c0 + 4004: 200000c4 .long 0x200000c4 + 4008: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +0000400c : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 400c: 1460 nie + 400e: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 4010: 1178 lrw r3, 0x20000034 // 40f0 + 4012: 3101 movi r1, 1 + 4014: 9360 ld.w r3, (r3, 0x0) + 4016: 9347 ld.w r2, (r3, 0x1c) + 4018: 6884 and r2, r1 + 401a: 3a40 cmpnei r2, 0 + 401c: 0c03 bf 0x4022 // 4022 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 401e: b328 st.w r1, (r3, 0x20) + } + +} + 4020: 0407 br 0x402e // 402e + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 4022: 9347 ld.w r2, (r3, 0x1c) + 4024: 3002 movi r0, 2 + 4026: 6880 and r2, r0 + 4028: 3a40 cmpnei r2, 0 + 402a: 0c04 bf 0x4032 // 4032 + SPI0->ICR = SPI_RTIM; + 402c: b308 st.w r0, (r3, 0x20) +} + 402e: 1463 ipop + 4030: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 4032: 9347 ld.w r2, (r3, 0x1c) + 4034: 3004 movi r0, 4 + 4036: 6880 and r2, r0 + 4038: 3a40 cmpnei r2, 0 + 403a: 0c55 bf 0x40e4 // 40e4 + SPI0->ICR = SPI_RXIM; + 403c: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 403e: 9302 ld.w r0, (r3, 0x8) + 4040: 32aa movi r2, 170 + 4042: 6482 cmpne r0, r2 + 4044: 083e bt 0x40c0 // 40c0 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4046: 3102 movi r1, 2 + 4048: 9343 ld.w r2, (r3, 0xc) + 404a: 6884 and r2, r1 + 404c: 3a40 cmpnei r2, 0 + 404e: 0ffd bf 0x4048 // 4048 + SPI0->DR = 0x11; + 4050: 3211 movi r2, 17 + 4052: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4054: 3110 movi r1, 16 + 4056: 9343 ld.w r2, (r3, 0xc) + 4058: 6884 and r2, r1 + 405a: 3a40 cmpnei r2, 0 + 405c: 0bfd bt 0x4056 // 4056 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 405e: 3102 movi r1, 2 + 4060: 9343 ld.w r2, (r3, 0xc) + 4062: 6884 and r2, r1 + 4064: 3a40 cmpnei r2, 0 + 4066: 0ffd bf 0x4060 // 4060 + SPI0->DR = 0x12; + 4068: 3212 movi r2, 18 + 406a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 406c: 3110 movi r1, 16 + 406e: 9343 ld.w r2, (r3, 0xc) + 4070: 6884 and r2, r1 + 4072: 3a40 cmpnei r2, 0 + 4074: 0bfd bt 0x406e // 406e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4076: 3102 movi r1, 2 + 4078: 9343 ld.w r2, (r3, 0xc) + 407a: 6884 and r2, r1 + 407c: 3a40 cmpnei r2, 0 + 407e: 0ffd bf 0x4078 // 4078 + SPI0->DR = 0x13; + 4080: 3213 movi r2, 19 + 4082: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4084: 3110 movi r1, 16 + 4086: 9343 ld.w r2, (r3, 0xc) + 4088: 6884 and r2, r1 + 408a: 3a40 cmpnei r2, 0 + 408c: 0bfd bt 0x4086 // 4086 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 408e: 3102 movi r1, 2 + 4090: 9343 ld.w r2, (r3, 0xc) + 4092: 6884 and r2, r1 + 4094: 3a40 cmpnei r2, 0 + 4096: 0ffd bf 0x4090 // 4090 + SPI0->DR = 0x14; + 4098: 3214 movi r2, 20 + 409a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 409c: 3110 movi r1, 16 + 409e: 9343 ld.w r2, (r3, 0xc) + 40a0: 6884 and r2, r1 + 40a2: 3a40 cmpnei r2, 0 + 40a4: 0bfd bt 0x409e // 409e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 40a6: 3102 movi r1, 2 + 40a8: 9343 ld.w r2, (r3, 0xc) + 40aa: 6884 and r2, r1 + 40ac: 3a40 cmpnei r2, 0 + 40ae: 0ffd bf 0x40a8 // 40a8 + SPI0->DR = 0x15; + 40b0: 3215 movi r2, 21 + 40b2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40b4: 3110 movi r1, 16 + 40b6: 9343 ld.w r2, (r3, 0xc) + 40b8: 6884 and r2, r1 + 40ba: 3a40 cmpnei r2, 0 + 40bc: 0bfd bt 0x40b6 // 40b6 + 40be: 07b8 br 0x402e // 402e + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 40c0: 9343 ld.w r2, (r3, 0xc) + 40c2: 6884 and r2, r1 + 40c4: 3a40 cmpnei r2, 0 + 40c6: 0bb4 bt 0x402e // 402e + SPI0->DR=0x0; //FIFO=0 + 40c8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40ca: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 40cc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40ce: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40da: 9343 ld.w r2, (r3, 0xc) + 40dc: 6884 and r2, r1 + 40de: 3a40 cmpnei r2, 0 + 40e0: 0bfd bt 0x40da // 40da + 40e2: 07a6 br 0x402e // 402e + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 40e4: 9347 ld.w r2, (r3, 0x1c) + 40e6: 3108 movi r1, 8 + 40e8: 6884 and r2, r1 + 40ea: 3a40 cmpnei r2, 0 + 40ec: 0b99 bt 0x401e // 401e + 40ee: 07a0 br 0x402e // 402e + 40f0: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000040f4 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 40f4: 1460 nie + 40f6: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 40f8: 1073 lrw r3, 0x2000002c // 4144 + 40fa: 3104 movi r1, 4 + 40fc: 9360 ld.w r3, (r3, 0x0) + 40fe: 9349 ld.w r2, (r3, 0x24) + 4100: 6884 and r2, r1 + 4102: 3a40 cmpnei r2, 0 + 4104: 0c02 bf 0x4108 // 4108 + { + SIO0->ICR=0X04; + 4106: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 4108: 9349 ld.w r2, (r3, 0x24) + 410a: 3101 movi r1, 1 + 410c: 6884 and r2, r1 + 410e: 3a40 cmpnei r2, 0 + 4110: 0c02 bf 0x4114 // 4114 + { + SIO0->ICR=0X01; + 4112: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 4114: 9349 ld.w r2, (r3, 0x24) + 4116: 3102 movi r1, 2 + 4118: 6884 and r2, r1 + 411a: 3a40 cmpnei r2, 0 + 411c: 0c03 bf 0x4122 // 4122 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 411e: b32b st.w r1, (r3, 0x2c) + } +} + 4120: 0410 br 0x4140 // 4140 + else if(SIO0->MISR&0X08) //RXBUFFULL + 4122: 9349 ld.w r2, (r3, 0x24) + 4124: 3108 movi r1, 8 + 4126: 6884 and r2, r1 + 4128: 3a40 cmpnei r2, 0 + 412a: 0bfa bt 0x411e // 411e + else if(SIO0->MISR&0X010) //BREAK + 412c: 9349 ld.w r2, (r3, 0x24) + 412e: 3110 movi r1, 16 + 4130: 6884 and r2, r1 + 4132: 3a40 cmpnei r2, 0 + 4134: 0bf5 bt 0x411e // 411e + else if(SIO0->MISR&0X020) //TIMEOUT + 4136: 9349 ld.w r2, (r3, 0x24) + 4138: 3120 movi r1, 32 + 413a: 6884 and r2, r1 + 413c: 3a40 cmpnei r2, 0 + 413e: 0bf0 bt 0x411e // 411e +} + 4140: 1463 ipop + 4142: 1461 nir + 4144: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00004148 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 4148: 1460 nie + 414a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 414c: 106a lrw r3, 0x2000005c // 4174 + 414e: 3101 movi r1, 1 + 4150: 9360 ld.w r3, (r3, 0x0) + 4152: 237f addi r3, 128 + 4154: 934c ld.w r2, (r3, 0x30) + 4156: 6884 and r2, r1 + 4158: 3a40 cmpnei r2, 0 + 415a: 0c04 bf 0x4162 // 4162 + { + SYSCON->EXICR = EXI_PIN0; + 415c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 415e: 1463 ipop + 4160: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 4162: 3280 movi r2, 128 + 4164: 932c ld.w r1, (r3, 0x30) + 4166: 4249 lsli r2, r2, 9 + 4168: 6848 and r1, r2 + 416a: 3940 cmpnei r1, 0 + 416c: 0ff9 bf 0x415e // 415e + SYSCON->EXICR = EXI_PIN16; + 416e: b34b st.w r2, (r3, 0x2c) +} + 4170: 07f7 br 0x415e // 415e + 4172: 0000 bkpt + 4174: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00004178 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 4178: 1460 nie + 417a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 417c: 106a lrw r3, 0x2000005c // 41a4 + 417e: 3102 movi r1, 2 + 4180: 9360 ld.w r3, (r3, 0x0) + 4182: 237f addi r3, 128 + 4184: 934c ld.w r2, (r3, 0x30) + 4186: 6884 and r2, r1 + 4188: 3a40 cmpnei r2, 0 + 418a: 0c04 bf 0x4192 // 4192 + { + SYSCON->EXICR = EXI_PIN1; + 418c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 418e: 1463 ipop + 4190: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 4192: 3280 movi r2, 128 + 4194: 932c ld.w r1, (r3, 0x30) + 4196: 424a lsli r2, r2, 10 + 4198: 6848 and r1, r2 + 419a: 3940 cmpnei r1, 0 + 419c: 0ff9 bf 0x418e // 418e + SYSCON->EXICR = EXI_PIN17; + 419e: b34b st.w r2, (r3, 0x2c) +} + 41a0: 07f7 br 0x418e // 418e + 41a2: 0000 bkpt + 41a4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000041a8 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 41a8: 1460 nie + 41aa: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 41ac: 1070 lrw r3, 0x2000005c // 41ec + 41ae: 3104 movi r1, 4 + 41b0: 9360 ld.w r3, (r3, 0x0) + 41b2: 237f addi r3, 128 + 41b4: 934c ld.w r2, (r3, 0x30) + 41b6: 6884 and r2, r1 + 41b8: 3a40 cmpnei r2, 0 + 41ba: 0c04 bf 0x41c2 // 41c2 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 41bc: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 41be: 1463 ipop + 41c0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 41c2: 934c ld.w r2, (r3, 0x30) + 41c4: 3108 movi r1, 8 + 41c6: 6884 and r2, r1 + 41c8: 3a40 cmpnei r2, 0 + 41ca: 0bf9 bt 0x41bc // 41bc + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 41cc: 3280 movi r2, 128 + 41ce: 932c ld.w r1, (r3, 0x30) + 41d0: 424b lsli r2, r2, 11 + 41d2: 6848 and r1, r2 + 41d4: 3940 cmpnei r1, 0 + 41d6: 0c03 bf 0x41dc // 41dc + SYSCON->EXICR = EXI_PIN19; + 41d8: b34b st.w r2, (r3, 0x2c) +} + 41da: 07f2 br 0x41be // 41be + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 41dc: 3280 movi r2, 128 + 41de: 932c ld.w r1, (r3, 0x30) + 41e0: 424c lsli r2, r2, 12 + 41e2: 6848 and r1, r2 + 41e4: 3940 cmpnei r1, 0 + 41e6: 0bf9 bt 0x41d8 // 41d8 + 41e8: 07eb br 0x41be // 41be + 41ea: 0000 bkpt + 41ec: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000041f0 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 41f0: 1460 nie + 41f2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 41f4: 1075 lrw r3, 0x2000005c // 4248 + 41f6: 3280 movi r2, 128 + 41f8: 9360 ld.w r3, (r3, 0x0) + 41fa: 60c8 addu r3, r2 + 41fc: 932c ld.w r1, (r3, 0x30) + 41fe: 3010 movi r0, 16 + 4200: 6840 and r1, r0 + 4202: 3940 cmpnei r1, 0 + 4204: 0c04 bf 0x420c // 420c + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 4206: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 4208: 1463 ipop + 420a: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 420c: 932c ld.w r1, (r3, 0x30) + 420e: 3020 movi r0, 32 + 4210: 6840 and r1, r0 + 4212: 3940 cmpnei r1, 0 + 4214: 0bf9 bt 0x4206 // 4206 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 4216: 932c ld.w r1, (r3, 0x30) + 4218: 3040 movi r0, 64 + 421a: 6840 and r1, r0 + 421c: 3940 cmpnei r1, 0 + 421e: 0bf4 bt 0x4206 // 4206 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 4220: 932c ld.w r1, (r3, 0x30) + 4222: 6848 and r1, r2 + 4224: 3940 cmpnei r1, 0 + 4226: 0c03 bf 0x422c // 422c + SYSCON->EXICR = EXI_PIN9; + 4228: b34b st.w r2, (r3, 0x2c) +} + 422a: 07ef br 0x4208 // 4208 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 422c: 3280 movi r2, 128 + 422e: 932c ld.w r1, (r3, 0x30) + 4230: 4241 lsli r2, r2, 1 + 4232: 6848 and r1, r2 + 4234: 3940 cmpnei r1, 0 + 4236: 0bf9 bt 0x4228 // 4228 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 4238: 3280 movi r2, 128 + 423a: 932c ld.w r1, (r3, 0x30) + 423c: 4242 lsli r2, r2, 2 + 423e: 6848 and r1, r2 + 4240: 3940 cmpnei r1, 0 + 4242: 0bf3 bt 0x4228 // 4228 + 4244: 07e2 br 0x4208 // 4208 + 4246: 0000 bkpt + 4248: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +0000424c : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 424c: 1460 nie + 424e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 4250: 1076 lrw r3, 0x2000005c // 42a8 + 4252: 3280 movi r2, 128 + 4254: 9360 ld.w r3, (r3, 0x0) + 4256: 237f addi r3, 128 + 4258: 932c ld.w r1, (r3, 0x30) + 425a: 4243 lsli r2, r2, 3 + 425c: 6848 and r1, r2 + 425e: 3940 cmpnei r1, 0 + 4260: 0c03 bf 0x4266 // 4266 + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 4262: b34b st.w r2, (r3, 0x2c) + } +} + 4264: 041f br 0x42a2 // 42a2 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 4266: 3280 movi r2, 128 + 4268: 932c ld.w r1, (r3, 0x30) + 426a: 4244 lsli r2, r2, 4 + 426c: 6848 and r1, r2 + 426e: 3940 cmpnei r1, 0 + 4270: 0bf9 bt 0x4262 // 4262 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 4272: 3280 movi r2, 128 + 4274: 932c ld.w r1, (r3, 0x30) + 4276: 4245 lsli r2, r2, 5 + 4278: 6848 and r1, r2 + 427a: 3940 cmpnei r1, 0 + 427c: 0bf3 bt 0x4262 // 4262 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 427e: 3280 movi r2, 128 + 4280: 932c ld.w r1, (r3, 0x30) + 4282: 4246 lsli r2, r2, 6 + 4284: 6848 and r1, r2 + 4286: 3940 cmpnei r1, 0 + 4288: 0bed bt 0x4262 // 4262 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 428a: 3280 movi r2, 128 + 428c: 932c ld.w r1, (r3, 0x30) + 428e: 4247 lsli r2, r2, 7 + 4290: 6848 and r1, r2 + 4292: 3940 cmpnei r1, 0 + 4294: 0be7 bt 0x4262 // 4262 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 4296: 3280 movi r2, 128 + 4298: 932c ld.w r1, (r3, 0x30) + 429a: 4248 lsli r2, r2, 8 + 429c: 6848 and r1, r2 + 429e: 3940 cmpnei r1, 0 + 42a0: 0be1 bt 0x4262 // 4262 +} + 42a2: 1463 ipop + 42a4: 1461 nir + 42a6: 0000 bkpt + 42a8: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000042ac : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 42ac: 1460 nie + 42ae: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 42b0: 106b lrw r3, 0x20000014 // 42dc + 42b2: 3101 movi r1, 1 + 42b4: 9360 ld.w r3, (r3, 0x0) + 42b6: 934e ld.w r2, (r3, 0x38) + 42b8: 6884 and r2, r1 + 42ba: 3a40 cmpnei r2, 0 + 42bc: 0c03 bf 0x42c2 // 42c2 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 42be: b330 st.w r1, (r3, 0x40) + } +} + 42c0: 040b br 0x42d6 // 42d6 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 42c2: 934e ld.w r2, (r3, 0x38) + 42c4: 3102 movi r1, 2 + 42c6: 6884 and r2, r1 + 42c8: 3a40 cmpnei r2, 0 + 42ca: 0bfa bt 0x42be // 42be + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 42cc: 934e ld.w r2, (r3, 0x38) + 42ce: 3104 movi r1, 4 + 42d0: 6884 and r2, r1 + 42d2: 3a40 cmpnei r2, 0 + 42d4: 0bf5 bt 0x42be // 42be +} + 42d6: 1463 ipop + 42d8: 1461 nir + 42da: 0000 bkpt + 42dc: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +000042e0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 42e0: 1460 nie + 42e2: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 42e4: 1071 lrw r3, 0x2000000c // 4328 + 42e6: 3101 movi r1, 1 + 42e8: 9360 ld.w r3, (r3, 0x0) + 42ea: 934c ld.w r2, (r3, 0x30) + 42ec: 6884 and r2, r1 + 42ee: 3a40 cmpnei r2, 0 + 42f0: 0c0a bf 0x4304 // 4304 + { + BT0->ICR = BT_PEND; + 42f2: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 42f4: 9341 ld.w r2, (r3, 0x4) + 42f6: 3a86 bclri r2, 6 + 42f8: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 42fa: 9340 ld.w r2, (r3, 0x0) + 42fc: 3200 movi r2, 0 + 42fe: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 4300: 1463 ipop + 4302: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 4304: 934c ld.w r2, (r3, 0x30) + 4306: 3102 movi r1, 2 + 4308: 6884 and r2, r1 + 430a: 3a40 cmpnei r2, 0 + 430c: 0c03 bf 0x4312 // 4312 + BT0->ICR = BT_EVTRG; + 430e: b32d st.w r1, (r3, 0x34) +} + 4310: 07f8 br 0x4300 // 4300 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 4312: 934c ld.w r2, (r3, 0x30) + 4314: 3104 movi r1, 4 + 4316: 6884 and r2, r1 + 4318: 3a40 cmpnei r2, 0 + 431a: 0bfa bt 0x430e // 430e + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 431c: 934c ld.w r2, (r3, 0x30) + 431e: 3108 movi r1, 8 + 4320: 6884 and r2, r1 + 4322: 3a40 cmpnei r2, 0 + 4324: 0bf5 bt 0x430e // 430e + 4326: 07ed br 0x4300 // 4300 + 4328: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +0000432c : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 432c: 1460 nie + 432e: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 4330: 1076 lrw r3, 0x20000008 // 4388 + 4332: 3101 movi r1, 1 + 4334: 9360 ld.w r3, (r3, 0x0) + 4336: 934c ld.w r2, (r3, 0x30) + 4338: 6884 and r2, r1 + 433a: 3a40 cmpnei r2, 0 + 433c: 0c03 bf 0x4342 // 4342 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 433e: b32d st.w r1, (r3, 0x34) + } +} + 4340: 0416 br 0x436c // 436c + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 4342: 934c ld.w r2, (r3, 0x30) + 4344: 3102 movi r1, 2 + 4346: 6884 and r2, r1 + 4348: 3a40 cmpnei r2, 0 + 434a: 0c13 bf 0x4370 // 4370 + BT1->ICR = BT_CMP; + 434c: b32d st.w r1, (r3, 0x34) + NUM++; + 434e: 1070 lrw r3, 0x200000b0 // 438c + 4350: 8340 ld.b r2, (r3, 0x0) + 4352: 2200 addi r2, 1 + 4354: 7488 zextb r2, r2 + SysTick_100us++; + 4356: 9321 ld.w r1, (r3, 0x4) + 4358: 2100 addi r1, 1 + if(NUM >= 10){ + 435a: 3a09 cmphsi r2, 10 + NUM++; + 435c: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 435e: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 4360: 0c06 bf 0x436c // 436c + NUM = 0; + 4362: 3200 movi r2, 0 + 4364: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 4366: 9342 ld.w r2, (r3, 0x8) + 4368: 2200 addi r2, 1 + 436a: b342 st.w r2, (r3, 0x8) +} + 436c: 1463 ipop + 436e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 4370: 934c ld.w r2, (r3, 0x30) + 4372: 3104 movi r1, 4 + 4374: 6884 and r2, r1 + 4376: 3a40 cmpnei r2, 0 + 4378: 0be3 bt 0x433e // 433e + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 437a: 934c ld.w r2, (r3, 0x30) + 437c: 3108 movi r1, 8 + 437e: 6884 and r2, r1 + 4380: 3a40 cmpnei r2, 0 + 4382: 0bde bt 0x433e // 433e + 4384: 07f4 br 0x436c // 436c + 4386: 0000 bkpt + 4388: 20000008 .long 0x20000008 + 438c: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +00004390 : + 4390: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00004392 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 4392: 1460 nie + 4394: 1462 ipush + // ISR content ... + +} + 4396: 1463 ipop + 4398: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000439a : + 439a: 1460 nie + 439c: 1462 ipush + 439e: 1463 ipop + 43a0: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000043a2 : + 43a2: 1460 nie + 43a4: 1462 ipush + 43a6: 1463 ipop + 43a8: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000043aa : + 43aa: 1460 nie + 43ac: 1462 ipush + 43ae: 1463 ipop + 43b0: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000043b2 : + 43b2: 1460 nie + 43b4: 1462 ipush + 43b6: 1463 ipop + 43b8: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000043ba : + 43ba: 1460 nie + 43bc: 1462 ipush + 43be: 1463 ipop + 43c0: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000043c2 : + 43c2: 1460 nie + 43c4: 1462 ipush + 43c6: 1463 ipop + 43c8: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000043ca : + 43ca: 1460 nie + 43cc: 1462 ipush + 43ce: 1463 ipop + 43d0: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000043d2 : + 43d2: 1460 nie + 43d4: 1462 ipush + 43d6: 1463 ipop + 43d8: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000043da : + 43da: 1460 nie + 43dc: 1462 ipush + 43de: 1463 ipop + 43e0: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +000043e2 : + 43e2: 1460 nie + 43e4: 1462 ipush + 43e6: 1463 ipop + 43e8: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +000043ea : + 43ea: 1460 nie + 43ec: 1462 ipush + 43ee: 1463 ipop + 43f0: 1461 nir + +Disassembly of section .text.__divsi3: + +000043f4 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 43f4: 14c1 push r4 + int PSR; + __asm volatile( + 43f6: c0006023 mfcr r3, cr<0, 0> + 43fa: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 43fe: 1046 lrw r2, 0x20000000 // 4414 <__divsi3+0x20> + 4400: 3400 movi r4, 0 + 4402: 9240 ld.w r2, (r2, 0x0) + 4404: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4406: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4408: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 440a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 440c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4410: 9202 ld.w r0, (r2, 0x8) +} + 4412: 1481 pop r4 + 4414: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00004418 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 4418: 14c1 push r4 + int PSR; + __asm volatile( + 441a: c0006023 mfcr r3, cr<0, 0> + 441e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 4422: 1046 lrw r2, 0x20000000 // 4438 <__udivsi3+0x20> + 4424: 3401 movi r4, 1 + 4426: 9240 ld.w r2, (r2, 0x0) + 4428: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 442a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 442c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 442e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4430: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4434: 9202 ld.w r0, (r2, 0x8) +} + 4436: 1481 pop r4 + 4438: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +0000443c <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 443c: 14c1 push r4 + int PSR; + __asm volatile( + 443e: c0006023 mfcr r3, cr<0, 0> + 4442: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 4446: 1046 lrw r2, 0x20000000 // 445c <__modsi3+0x20> + 4448: 3400 movi r4, 0 + 444a: 9240 ld.w r2, (r2, 0x0) + 444c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 444e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4450: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4452: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4454: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4458: 9203 ld.w r0, (r2, 0xc) +} + 445a: 1481 pop r4 + 445c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00004460 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 4460: 14c1 push r4 + int PSR; + __asm volatile( + 4462: c0006023 mfcr r3, cr<0, 0> + 4466: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 446a: 1046 lrw r2, 0x20000000 // 4480 <__umodsi3+0x20> + 446c: 3401 movi r4, 1 + 446e: 9240 ld.w r2, (r2, 0x0) + 4470: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4472: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4474: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4476: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4478: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 447c: 9203 ld.w r0, (r2, 0xc) +} + 447e: 1481 pop r4 + 4480: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00004484 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 4484: c1807420 psrset ee, ie +} + 4488: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +0000448c : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 448c: 14d1 push r4, r15 + switch(uart_id){ + 448e: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4490: 6d07 mov r4, r1 + switch(uart_id){ + 4492: 0c1a bf 0x44c6 // 44c6 + 4494: 3840 cmpnei r0, 0 + 4496: 0c04 bf 0x449e // 449e + 4498: 3842 cmpnei r0, 2 + 449a: 0c2a bf 0x44ee // 44ee + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 449c: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 449e: e3fff8d9 bsr 0x3650 // 3650 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 44a2: 118a lrw r4, 0x20000040 // 4548 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 44a4: 3100 movi r1, 0 + 44a6: 3000 movi r0, 0 + 44a8: e3fff914 bsr 0x36d0 // 36d0 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 44ac: 9400 ld.w r0, (r4, 0x0) + 44ae: 3200 movi r2, 0 + 44b0: 1127 lrw r1, 0x2710 // 454c + 44b2: e3fff985 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 44b6: 9400 ld.w r0, (r4, 0x0) + 44b8: 3200 movi r2, 0 + 44ba: 1125 lrw r1, 0x2710 // 454c + 44bc: e3fff988 bsr 0x37cc // 37cc + UART0_Int_Enable(); + 44c0: e3fff8ec bsr 0x3698 // 3698 + break; + 44c4: 07ec br 0x449c // 449c + UART1_DeInit(); //clear all UART Register + 44c6: e3fff8d1 bsr 0x3668 // 3668 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 44ca: 3102 movi r1, 2 + 44cc: 3001 movi r0, 1 + 44ce: e3fff901 bsr 0x36d0 // 36d0 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 44d2: 1180 lrw r4, 0x2000003c // 4550 + 44d4: 31d0 movi r1, 208 + 44d6: 9400 ld.w r0, (r4, 0x0) + 44d8: 3200 movi r2, 0 + 44da: 4121 lsli r1, r1, 1 + 44dc: e3fff970 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44e0: 31d0 movi r1, 208 + 44e2: 9400 ld.w r0, (r4, 0x0) + 44e4: 3200 movi r2, 0 + 44e6: 4121 lsli r1, r1, 1 + 44e8: e3fff972 bsr 0x37cc // 37cc + break; + 44ec: 07d8 br 0x449c // 449c + UART2_DeInit(); //clear all UART Register + 44ee: e3fff8c9 bsr 0x3680 // 3680 + UART_IO_Init(IO_UART2,2); //use PA0.13->RXD1, PB0.0->TXD1 + 44f2: 3102 movi r1, 2 + 44f4: 3002 movi r0, 2 + 44f6: e3fff8ed bsr 0x36d0 // 36d0 + UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44fa: 1077 lrw r3, 0x20000038 // 4554 + 44fc: 31d0 movi r1, 208 + 44fe: 9300 ld.w r0, (r3, 0x0) + 4500: 3200 movi r2, 0 + 4502: 4121 lsli r1, r1, 1 + 4504: e3fff964 bsr 0x37cc // 37cc + UART2_Int_Enable(); + 4508: e3fff8d6 bsr 0x36b4 // 36b4 + memset(&g_uart,0,sizeof(UART_t)); + 450c: 3273 movi r2, 115 + 450e: 3100 movi r1, 0 + 4510: 1012 lrw r0, 0x200003b4 // 4558 + 4512: e3ffea85 bsr 0x1a1c // 1a1c <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 4516: 1072 lrw r3, 0x2000041b // 455c + 4518: 3203 movi r2, 3 + 451a: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 451c: 4c48 lsri r2, r4, 8 + 451e: a388 st.b r4, (r3, 0x8) + 4520: a349 st.b r2, (r3, 0x9) + 4522: 4c50 lsri r2, r4, 16 + 4524: 4c98 lsri r4, r4, 24 + 4526: a38b st.b r4, (r3, 0xb) + 4528: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 452a: 3103 movi r1, 3 + 452c: 108d lrw r4, 0x20000048 // 4560 + 452e: 3200 movi r2, 0 + 4530: 9400 ld.w r0, (r4, 0x0) + 4532: e3fff68d bsr 0x324c // 324c + GPIO_DriveStrength_EN(GPIOB0,3); + 4536: 9400 ld.w r0, (r4, 0x0) + 4538: 3103 movi r1, 3 + 453a: e3fff703 bsr 0x3340 // 3340 + GPIO_Write_Low(GPIOB0,3); + 453e: 9400 ld.w r0, (r4, 0x0) + 4540: 3103 movi r1, 3 + 4542: e3fff70a bsr 0x3356 // 3356 +} + 4546: 07ab br 0x449c // 449c + 4548: 20000040 .long 0x20000040 + 454c: 00002710 .long 0x00002710 + 4550: 2000003c .long 0x2000003c + 4554: 20000038 .long 0x20000038 + 4558: 200003b4 .long 0x200003b4 + 455c: 2000041b .long 0x2000041b + 4560: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00004564 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 4564: 14c2 push r4-r5 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 4566: 1075 lrw r3, 0x20000414 // 45b8 + 4568: 8346 ld.b r2, (r3, 0x6) + 456a: 8325 ld.b r1, (r3, 0x5) + 456c: 4248 lsli r2, r2, 8 + 456e: 6c84 or r2, r1 + 4570: 3162 movi r1, 98 + 4572: 10b3 lrw r5, 0x200003b4 // 45bc + 4574: 3440 movi r4, 64 + 4576: 6485 cmplt r1, r2 + 4578: 6114 addu r4, r5 + 457a: 0c06 bf 0x4586 // 4586 + 457c: 3225 movi r2, 37 + 457e: 6090 addu r2, r4 + 4580: 3100 movi r1, 0 + 4582: a220 st.b r1, (r2, 0x0) + 4584: a221 st.b r1, (r2, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 4586: 8346 ld.b r2, (r3, 0x6) + 4588: 8325 ld.b r1, (r3, 0x5) + 458a: 4248 lsli r2, r2, 8 + 458c: 6c84 or r2, r1 + 458e: 5a22 addi r1, r2, 1 + 4590: 6094 addu r2, r5 + 4592: a200 st.b r0, (r2, 0x0) + 4594: 2424 addi r4, 37 + 4596: 7445 zexth r1, r1 + + g_uart.RecvIdleTiming = SysTick_1ms; + 4598: 104a lrw r2, 0x200000b8 // 45c0 + 459a: 9240 ld.w r2, (r2, 0x0) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 459c: a420 st.b r1, (r4, 0x0) + 459e: 4928 lsri r1, r1, 8 + g_uart.RecvIdleTiming = SysTick_1ms; + 45a0: 4a08 lsri r0, r2, 8 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 45a2: a421 st.b r1, (r4, 0x1) + g_uart.RecvIdleTiming = SysTick_1ms; + 45a4: 1028 lrw r1, 0x2000041f // 45c4 + 45a6: a140 st.b r2, (r1, 0x0) + 45a8: a101 st.b r0, (r1, 0x1) + 45aa: 4a10 lsri r0, r2, 16 + 45ac: 4a58 lsri r2, r2, 24 + 45ae: a143 st.b r2, (r1, 0x3) + g_uart.Receiving = 0x01; + 45b0: 3201 movi r2, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 45b2: a102 st.b r0, (r1, 0x2) + g_uart.Receiving = 0x01; + 45b4: a344 st.b r2, (r3, 0x4) +} + 45b6: 1482 pop r4-r5 + 45b8: 20000414 .long 0x20000414 + 45bc: 200003b4 .long 0x200003b4 + 45c0: 200000b8 .long 0x200000b8 + 45c4: 2000041f .long 0x2000041f + +Disassembly of section .text.Dbg_Println: + +000045c8 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 45c8: 1423 subi r14, r14, 12 + 45ca: b862 st.w r3, (r14, 0x8) + 45cc: b841 st.w r2, (r14, 0x4) + 45ce: b820 st.w r1, (r14, 0x0) + 45d0: 14d2 push r4-r5, r15 + 45d2: 1422 subi r14, r14, 8 + 45d4: 9865 ld.w r3, (r14, 0x14) + 45d6: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 45d8: 3301 movi r3, 1 + 45da: 105c lrw r2, 0x20000068 // 4648 + 45dc: 70c0 lsl r3, r0 + 45de: 9240 ld.w r2, (r2, 0x0) + 45e0: 68c8 and r3, r2 + 45e2: 3b40 cmpnei r3, 0 + 45e4: 0c2b bf 0x463a // 463a + SysTick_Now = SysTick_1ms; + 45e6: 109a lrw r4, 0x200000bc // 464c + 45e8: 107a lrw r3, 0x200000b8 // 4650 + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45ea: 9445 ld.w r2, (r4, 0x14) + SysTick_Now = SysTick_1ms; + 45ec: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45ee: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 45f0: b464 st.w r3, (r4, 0x10) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45f2: b446 st.w r2, (r4, 0x18) + SysTick_Last = SysTick_Now; + 45f4: b465 st.w r3, (r4, 0x14) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 45f6: 3180 movi r1, 128 + 45f8: 301c movi r0, 28 + 45fa: b840 st.w r2, (r14, 0x0) + 45fc: 4122 lsli r1, r1, 2 + 45fe: 1056 lrw r2, 0x5f67 // 4654 + 4600: 6010 addu r0, r4 + 4602: e3ffe9b1 bsr 0x1964 // 1964 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 4606: 10b5 lrw r5, 0x20000038 // 4658 + 4608: 311c movi r1, 28 + 460a: 7481 zexth r2, r0 + 460c: 6050 addu r1, r4 + 460e: 9500 ld.w r0, (r5, 0x0) + 4610: e3fff8e6 bsr 0x37dc // 37dc + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 4614: 3180 movi r1, 128 + 4616: 301c movi r0, 28 + 4618: 1b06 addi r3, r14, 24 + 461a: 9841 ld.w r2, (r14, 0x4) + 461c: 4122 lsli r1, r1, 2 + 461e: 6010 addu r0, r4 + 4620: e3ffe9d1 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 4624: 6c53 mov r1, r4 + 4626: 7481 zexth r2, r0 + 4628: 211b addi r1, 28 + 462a: 9500 ld.w r0, (r5, 0x0) + 462c: e3fff8d8 bsr 0x37dc // 37dc + + DBG_Printf("\r\n",2); + 4630: 9500 ld.w r0, (r5, 0x0) + 4632: 3202 movi r2, 2 + 4634: 102a lrw r1, 0x5f75 // 465c + 4636: e3fff8d3 bsr 0x37dc // 37dc + + + } + +#endif +} + 463a: 1402 addi r14, r14, 8 + 463c: d9ee2002 ld.w r15, (r14, 0x8) + 4640: 98a1 ld.w r5, (r14, 0x4) + 4642: 9880 ld.w r4, (r14, 0x0) + 4644: 1406 addi r14, r14, 24 + 4646: 783c jmp r15 + 4648: 20000068 .long 0x20000068 + 464c: 200000bc .long 0x200000bc + 4650: 200000b8 .long 0x200000b8 + 4654: 00005f67 .long 0x00005f67 + 4658: 20000038 .long 0x20000038 + 465c: 00005f75 .long 0x00005f75 + +Disassembly of section .text.RC522_Delay: + +00004660 : + * @brief 延时函数,纳秒级 + * @param ns 延时时间 + */ +void RC522_Delay(U32_T ns){ + U32_T i; + for (i = 0; i < ns; i++) { + 4660: 3300 movi r3, 0 + 4662: 640e cmpne r3, r0 + 4664: 0802 bt 0x4668 // 4668 + nop; + //延时一个机器周期 + nop; + nop; + } +} + 4666: 783c jmp r15 + nop; + 4668: 6c03 mov r0, r0 + nop; + 466a: 6c03 mov r0, r0 + nop; + 466c: 6c03 mov r0, r0 + for (i = 0; i < ns; i++) { + 466e: 2300 addi r3, 1 + 4670: 07f9 br 0x4662 // 4662 + +Disassembly of section .text.RC522_ReadWriteOneByte: + +00004674 : + * @brief 移植接口——SPI读写一个字节 + * @param tx_data:要写入的数据 + * @return 读取的数据 + */ +U8_T RC522_ReadWriteOneByte(U8_T tx_data) +{ + 4674: 14d4 push r4-r7, r15 + 4676: 6d83 mov r6, r0 + 4678: 3508 movi r5, 8 +// delay_nus(1); +// rx_data = SPI0->DR; +// +// return (U8_T)(rx_data & 0xFF); + + U8_T rx_data=0; + 467a: 3400 movi r4, 0 + U8_T i; + for(i=0;i<8;i++) + { + RC522_SCK_LOW; + 467c: 10f2 lrw r7, 0x2000004c // 46c4 + 467e: 3109 movi r1, 9 + 4680: 9700 ld.w r0, (r7, 0x0) + 4682: e3fff66a bsr 0x3356 // 3356 + if(tx_data&0x80) RC522_MOSI_HIGH; + 4686: 74da sextb r3, r6 + 4688: 3bdf btsti r3, 31 + 468a: 310a movi r1, 10 + 468c: 9700 ld.w r0, (r7, 0x0) + 468e: 0c18 bf 0x46be // 46be + 4690: e3fff65f bsr 0x334e // 334e + else RC522_MOSI_LOW; + tx_data<<=1; + RC522_SCK_HIGH; + 4694: 3109 movi r1, 9 + 4696: 9700 ld.w r0, (r7, 0x0) + 4698: e3fff65b bsr 0x334e // 334e + rx_data<<=1; + if(RC522_MISO_Read) rx_data|=0x01; + 469c: 310b movi r1, 11 + 469e: 9700 ld.w r0, (r7, 0x0) + 46a0: e3fff66a bsr 0x3374 // 3374 + tx_data<<=1; + 46a4: 46c1 lsli r6, r6, 1 + rx_data<<=1; + 46a6: 4481 lsli r4, r4, 1 + if(RC522_MISO_Read) rx_data|=0x01; + 46a8: 3840 cmpnei r0, 0 + tx_data<<=1; + 46aa: 7598 zextb r6, r6 + rx_data<<=1; + 46ac: 7510 zextb r4, r4 + if(RC522_MISO_Read) rx_data|=0x01; + 46ae: 0c02 bf 0x46b2 // 46b2 + 46b0: 3ca0 bseti r4, 0 + 46b2: 2d00 subi r5, 1 + 46b4: 7554 zextb r5, r5 + for(i=0;i<8;i++) + 46b6: 3d40 cmpnei r5, 0 + 46b8: 0be3 bt 0x467e // 467e + } + return rx_data; +} + 46ba: 6c13 mov r0, r4 + 46bc: 1494 pop r4-r7, r15 + else RC522_MOSI_LOW; + 46be: e3fff64c bsr 0x3356 // 3356 + 46c2: 07e9 br 0x4694 // 4694 + 46c4: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_ReadRawRC: + +000046c8 : +{ + 46c8: 14d2 push r4-r5, r15 + RC522_CS_LOW; //片选选中RC522 + 46ca: 10ad lrw r5, 0x2000004c // 46fc + 46cc: 310d movi r1, 13 +{ + 46ce: 6d03 mov r4, r0 + RC522_CS_LOW; //片选选中RC522 + 46d0: 9500 ld.w r0, (r5, 0x0) + 46d2: e3fff642 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E)|0x80; + 46d6: 4401 lsli r0, r4, 1 + 46d8: 347e movi r4, 126 + 46da: 6810 and r0, r4 + 46dc: 3400 movi r4, 0 + 46de: 2c7f subi r4, 128 + 46e0: 6c10 or r0, r4 + RC522_ReadWriteOneByte(ucAddr); //发送命令 + 46e2: 7400 zextb r0, r0 + 46e4: e3ffffc8 bsr 0x4674 // 4674 + ucResult=RC522_ReadWriteOneByte(0); //读取RC522返回的数据 + 46e8: 3000 movi r0, 0 + 46ea: e3ffffc5 bsr 0x4674 // 4674 + 46ee: 6d03 mov r4, r0 + RC522_CS_HIGH; //释放片选线(PF0) + 46f0: 310d movi r1, 13 + 46f2: 9500 ld.w r0, (r5, 0x0) + 46f4: e3fff62d bsr 0x334e // 334e +} + 46f8: 6c13 mov r0, r4 + 46fa: 1492 pop r4-r5, r15 + 46fc: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_WriteRawRC: + +00004700 : +{ + 4700: 14d3 push r4-r6, r15 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 4702: 10ab lrw r5, 0x2000004c // 472c +{ + 4704: 6d87 mov r6, r1 + 4706: 6d03 mov r4, r0 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 4708: 310d movi r1, 13 + 470a: 9500 ld.w r0, (r5, 0x0) + 470c: e3fff625 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E); + 4710: 4481 lsli r4, r4, 1 + 4712: 307e movi r0, 126 + RC522_ReadWriteOneByte(ucAddr); //SPI1发送一个字节 + 4714: 6810 and r0, r4 + 4716: e3ffffaf bsr 0x4674 // 4674 + RC522_ReadWriteOneByte(value); //SPI1发送一个字节 + 471a: 6c1b mov r0, r6 + 471c: e3ffffac bsr 0x4674 // 4674 + RC522_CS_HIGH; //PF1写1(SDA)(SPI1片选线) + 4720: 9500 ld.w r0, (r5, 0x0) + 4722: 310d movi r1, 13 + 4724: e3fff615 bsr 0x334e // 334e +} + 4728: 1493 pop r4-r6, r15 + 472a: 0000 bkpt + 472c: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_PcdReset: + +00004730 : +{ + 4730: 14d0 push r15 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 4732: 310f movi r1, 15 + 4734: 3001 movi r0, 1 + 4736: e3ffffe5 bsr 0x4700 // 4700 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 473a: 310f movi r1, 15 + 473c: 3001 movi r0, 1 + 473e: e3ffffe1 bsr 0x4700 // 4700 + RC522_Delay(10); + 4742: 300a movi r0, 10 + 4744: e3ffff8e bsr 0x4660 // 4660 + RC522_WriteRawRC(ModeReg,0x3D); //和Mifare卡通讯,CRC初始值0x6363 + 4748: 313d movi r1, 61 + 474a: 3011 movi r0, 17 + 474c: e3ffffda bsr 0x4700 // 4700 + RC522_WriteRawRC(TReloadRegL,30); //写RC632寄存器 + 4750: 311e movi r1, 30 + 4752: 302d movi r0, 45 + 4754: e3ffffd6 bsr 0x4700 // 4700 + RC522_WriteRawRC(TReloadRegH,0); + 4758: 3100 movi r1, 0 + 475a: 302c movi r0, 44 + 475c: e3ffffd2 bsr 0x4700 // 4700 + RC522_WriteRawRC(TModeReg,0x8D); + 4760: 318d movi r1, 141 + 4762: 302a movi r0, 42 + 4764: e3ffffce bsr 0x4700 // 4700 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 4768: 313e movi r1, 62 + 476a: 302b movi r0, 43 + 476c: e3ffffca bsr 0x4700 // 4700 + RC522_WriteRawRC(TxAutoReg,0x40);//必须要 + 4770: 3140 movi r1, 64 + 4772: 3015 movi r0, 21 + 4774: e3ffffc6 bsr 0x4700 // 4700 +} + 4778: 3000 movi r0, 0 + 477a: 1490 pop r15 + +Disassembly of section .text.RC522_SetBitMask: + +0000477c : +{ + 477c: 14d2 push r4-r5, r15 + 477e: 6d47 mov r5, r1 + 4780: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 4782: e3ffffa3 bsr 0x46c8 // 46c8 + RC522_WriteRawRC(reg,tmp|mask); //写RC632寄存器 + 4786: 6c43 mov r1, r0 + 4788: 6c54 or r1, r5 + 478a: 7444 zextb r1, r1 + 478c: 6c13 mov r0, r4 + 478e: e3ffffb9 bsr 0x4700 // 4700 +} + 4792: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOn: + +00004794 : +{ + 4794: 14d0 push r15 + i=RC522_ReadRawRC(TxControlReg); + 4796: 3014 movi r0, 20 + 4798: e3ffff98 bsr 0x46c8 // 46c8 + if(!(i&0x03)) + 479c: 3303 movi r3, 3 + 479e: 680c and r0, r3 + 47a0: 3840 cmpnei r0, 0 + 47a2: 0805 bt 0x47ac // 47ac + RC522_SetBitMask(TxControlReg,0x03); + 47a4: 3103 movi r1, 3 + 47a6: 3014 movi r0, 20 + 47a8: e3ffffea bsr 0x477c // 477c +} + 47ac: 1490 pop r15 + +Disassembly of section .text.RC522_ClearBitMask: + +000047ae : +{ + 47ae: 14d2 push r4-r5, r15 + 47b0: 6d47 mov r5, r1 + 47b2: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 47b4: e3ffff8a bsr 0x46c8 // 46c8 + RC522_WriteRawRC(reg,tmp&~mask); // clear bit mask + 47b8: 6815 andn r0, r5 + 47ba: 7440 zextb r1, r0 + 47bc: 6c13 mov r0, r4 + 47be: e3ffffa1 bsr 0x4700 // 4700 +} + 47c2: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOff: + +000047c4 : +{ + 47c4: 14d0 push r15 + RC522_ClearBitMask(TxControlReg,0x03); //清RC522寄存器位 + 47c6: 3103 movi r1, 3 + 47c8: 3014 movi r0, 20 + 47ca: e3fffff2 bsr 0x47ae // 47ae +} + 47ce: 1490 pop r15 + +Disassembly of section .text.RC522_Reset: + +000047d0 : +void RC522_Reset(void){ + 47d0: 14d0 push r15 + RC522_PcdReset(); //复位RC522 + 47d2: e3ffffaf bsr 0x4730 // 4730 + RC522_PcdAntennaOff(); //关闭天线 + 47d6: e3fffff7 bsr 0x47c4 // 47c4 + RC522_Delay(2); //延时2毫秒 + 47da: 3002 movi r0, 2 + 47dc: e3ffff42 bsr 0x4660 // 4660 + RC522_PcdAntennaOn(); //开启天线 + 47e0: e3ffffda bsr 0x4794 // 4794 +} + 47e4: 1490 pop r15 + +Disassembly of section .text.M500PcdConfigISOType.part.1: + +000047e6 : +char M500PcdConfigISOType(U8_T type) + 47e6: 14d0 push r15 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 47e8: 3108 movi r1, 8 + 47ea: 3008 movi r0, 8 + 47ec: e3ffffe1 bsr 0x47ae // 47ae + RC522_SetBitMask(ComIEnReg,BIT7); + 47f0: 3180 movi r1, 128 + 47f2: 3002 movi r0, 2 + 47f4: e3ffffc4 bsr 0x477c // 477c + RC522_WriteRawRC(ModeReg,0x3D); + 47f8: 313d movi r1, 61 + 47fa: 3011 movi r0, 17 + 47fc: e3ffff82 bsr 0x4700 // 4700 + RC522_WriteRawRC(TxModeReg,0x00); //设定数据发送传输速率106kbits/s,定义帧格式为ISO/IEC 14443 A/Mifare + 4800: 3100 movi r1, 0 + 4802: 3012 movi r0, 18 + 4804: e3ffff7e bsr 0x4700 // 4700 + RC522_WriteRawRC(RxModeReg,0x00); //设定数据接收传输速率106kbits/s,定义帧格式为ISO/IEC 14443 A/Mifare + 4808: 3100 movi r1, 0 + 480a: 3013 movi r0, 19 + 480c: e3ffff7a bsr 0x4700 // 4700 + RC522_WriteRawRC(ModWidthReg,MODWIDTH); //调制宽度为reset值 + 4810: 3126 movi r1, 38 + 4812: 3024 movi r0, 36 + 4814: e3ffff76 bsr 0x4700 // 4700 + RC522_WriteRawRC(ModeReg,0x3D); //3D--CRC预设值为6363 + 4818: 313d movi r1, 61 + 481a: 3011 movi r0, 17 + 481c: e3ffff72 bsr 0x4700 // 4700 + RC522_WriteRawRC(RxThresholdReg,(MINLEVEL_A<<4) | COLLLEVEL_A); //选择位译码器的阈值 + 4820: 3164 movi r1, 100 + 4822: 3018 movi r0, 24 + 4824: e3ffff6e bsr 0x4700 // 4700 + RC522_WriteRawRC(RFCfgReg,0x7F); // 接收增益 + 4828: 317f movi r1, 127 + 482a: 3026 movi r0, 38 + 482c: e3ffff6a bsr 0x4700 // 4700 + RC522_WriteRawRC(TxAutoReg,0x40); //100%ASK传送 + 4830: 3140 movi r1, 64 + 4832: 3015 movi r0, 21 + 4834: e3ffff66 bsr 0x4700 // 4700 + RC522_WriteRawRC(ControlReg,0x10); //接收的最后一个字节所有比特有效 + 4838: 3110 movi r1, 16 + 483a: 300c movi r0, 12 + 483c: e3ffff62 bsr 0x4700 // 4700 + RC522_WriteRawRC(TReloadRegL,0x64); //16bit定时器重载值(低位) + 4840: 3164 movi r1, 100 + 4842: 302d movi r0, 45 + 4844: e3ffff5e bsr 0x4700 // 4700 + RC522_WriteRawRC(TReloadRegH,0); //16bit定时器重载值(高位) + 4848: 3100 movi r1, 0 + 484a: 302c movi r0, 44 + 484c: e3ffff5a bsr 0x4700 // 4700 + RC522_WriteRawRC(TModeReg,0x8D); //预分频器开启自动定时器,向下计数,预分频与TPrescalerReg一起决定12bit + 4850: 318d movi r1, 141 + 4852: 302a movi r0, 42 + 4854: e3ffff56 bsr 0x4700 // 4700 + RC522_WriteRawRC(TPrescalerReg,0x3e); //12bit 1101 0011 1110 定时器频率2KHz*//* + 4858: 313e movi r1, 62 + 485a: 302b movi r0, 43 + 485c: e3ffff52 bsr 0x4700 // 4700 +} + 4860: 3000 movi r0, 0 + 4862: 1490 pop r15 + +Disassembly of section .text.RC522_Init: + +00004864 : +{ + 4864: 14d1 push r4, r15 + nop; + 4866: 6c03 mov r0, r0 + GPIO_Init(GPIOA0,9,Output); //SCK + 4868: 1183 lrw r4, 0x2000004c // 48f4 + 486a: 3200 movi r2, 0 + 486c: 9400 ld.w r0, (r4, 0x0) + 486e: 3109 movi r1, 9 + 4870: e3fff4ee bsr 0x324c // 324c + GPIO_Init(GPIOA0,10,Output); //MOSI + 4874: 3200 movi r2, 0 + 4876: 9400 ld.w r0, (r4, 0x0) + 4878: 310a movi r1, 10 + 487a: e3fff4e9 bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOA0,11); + 487e: 9400 ld.w r0, (r4, 0x0) + 4880: 310b movi r1, 11 + 4882: e3fff555 bsr 0x332c // 332c + GPIO_Init(GPIOA0,11,Intput); //MISO + 4886: 9400 ld.w r0, (r4, 0x0) + 4888: 3201 movi r2, 1 + 488a: 310b movi r1, 11 + 488c: e3fff4e0 bsr 0x324c // 324c + GPIO_Init(GPIOA0,13,Output); //CS + 4890: 9400 ld.w r0, (r4, 0x0) + 4892: 3200 movi r2, 0 + 4894: 310d movi r1, 13 + 4896: e3fff4db bsr 0x324c // 324c + GPIO_Init(GPIOA0,12,Output); //RST + 489a: 9400 ld.w r0, (r4, 0x0) + 489c: 3200 movi r2, 0 + 489e: 310c movi r1, 12 + 48a0: e3fff4d6 bsr 0x324c // 324c + GPIO_Init(GPIOA0,8,Intput); //IRQ + 48a4: 3201 movi r2, 1 + 48a6: 9400 ld.w r0, (r4, 0x0) + 48a8: 3108 movi r1, 8 + 48aa: e3fff4d1 bsr 0x324c // 324c + GPIO_Write_High(GPIOA0,13); + 48ae: 9400 ld.w r0, (r4, 0x0) + 48b0: 310d movi r1, 13 + 48b2: e3fff54e bsr 0x334e // 334e + GPIO_Write_High(GPIOA0,12); + 48b6: 310c movi r1, 12 + 48b8: 9400 ld.w r0, (r4, 0x0) + 48ba: e3fff54a bsr 0x334e // 334e + RC522_PcdReset(); //复位RC522 + 48be: e3ffff39 bsr 0x4730 // 4730 + RC522_PcdAntennaOff(); //关闭天线 + 48c2: e3ffff81 bsr 0x47c4 // 47c4 + RC522_Delay(2); //延时2毫秒 + 48c6: 3002 movi r0, 2 + 48c8: e3fffecc bsr 0x4660 // 4660 + RC522_PcdAntennaOn(); //开启天线 + 48cc: e3ffff64 bsr 0x4794 // 4794 + memset(&CardInfo,0x00,sizeof(CardInfo)); + 48d0: 108a lrw r4, 0x20000428 // 48f8 + 48d2: e3ffff8a bsr 0x47e6 // 47e6 + 48d6: 3234 movi r2, 52 + 48d8: 3100 movi r1, 0 + 48da: 6c13 mov r0, r4 + 48dc: e3ffe8a0 bsr 0x1a1c // 1a1c <__memset_fast> + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 48e0: 3318 movi r3, 24 + 48e2: a468 st.b r3, (r4, 0x8) + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 48e4: 3360 movi r3, 96 + 48e6: a47f st.b r3, (r4, 0x1f) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 48e8: 3300 movi r3, 0 + 48ea: 2b00 subi r3, 1 + 48ec: b468 st.w r3, (r4, 0x20) + 48ee: ac72 st.h r3, (r4, 0x24) +} + 48f0: 1491 pop r4, r15 + 48f2: 0000 bkpt + 48f4: 2000004c .long 0x2000004c + 48f8: 20000428 .long 0x20000428 + +Disassembly of section .text.RC522_PcdComMF522: + +000048fc : +{ + 48fc: 14d4 push r4-r7, r15 + 48fe: 1424 subi r14, r14, 16 + 4900: b862 st.w r3, (r14, 0x8) + switch (Command) { + 4902: 384c cmpnei r0, 12 +{ + 4904: 9869 ld.w r3, (r14, 0x24) + 4906: 6d03 mov r4, r0 + 4908: 6dc7 mov r7, r1 + 490a: b860 st.w r3, (r14, 0x0) + switch (Command) { + 490c: 0c48 bf 0x499c // 499c + 490e: 384e cmpnei r0, 14 + 4910: 0c49 bf 0x49a2 // 49a2 + U8_T waitFor=0x00; + 4912: 3600 movi r6, 0 + U8_T irqEn=0x00; + 4914: 3500 movi r5, 0 + RC522_WriteRawRC(ComIEnReg,irqEn|0x80); + 4916: 6c57 mov r1, r5 + 4918: 39a7 bseti r1, 7 + 491a: 3002 movi r0, 2 + 491c: b841 st.w r2, (r14, 0x4) + 491e: e3fffef1 bsr 0x4700 // 4700 + RC522_ClearBitMask(ComIrqReg,0x80); //清所有中断位 + 4922: 3180 movi r1, 128 + 4924: 3004 movi r0, 4 + 4926: e3ffff44 bsr 0x47ae // 47ae + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 492a: 3100 movi r1, 0 + 492c: 3001 movi r0, 1 + 492e: e3fffee9 bsr 0x4700 // 4700 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO缓存 + 4932: 3180 movi r1, 128 + 4934: 300a movi r0, 10 + 4936: e3ffff23 bsr 0x477c // 477c + for(i=0;i + RC522_WriteRawRC(CommandReg,Command); + 4946: 6c53 mov r1, r4 + 4948: 3001 movi r0, 1 + 494a: e3fffedb bsr 0x4700 // 4700 + if(Command==PCD_TRANSCEIVE) + 494e: 3c4c cmpnei r4, 12 + 4950: 0805 bt 0x495a // 495a + RC522_SetBitMask(BitFramingReg,0x80); //开始传送 + 4952: 3180 movi r1, 128 + 4954: 300d movi r0, 13 + 4956: e3ffff13 bsr 0x477c // 477c + for(i=0;i + i--; + 4966: 5f63 subi r3, r7, 1 + 4968: 75cd zexth r7, r3 + }while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 496a: 3f40 cmpnei r7, 0 + n=RC522_ReadRawRC(ComIrqReg); + 496c: b801 st.w r0, (r14, 0x4) + }while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 496e: 0c05 bf 0x4978 // 4978 + 4970: 6c83 mov r2, r0 + 4972: 6898 and r2, r6 + 4974: 3a40 cmpnei r2, 0 + 4976: 0ff5 bf 0x4960 // 4960 + RC522_ClearBitMask(BitFramingReg,0x80); + 4978: 3180 movi r1, 128 + 497a: 300d movi r0, 13 + 497c: e3ffff19 bsr 0x47ae // 47ae + if(i!=0) + 4980: 3f40 cmpnei r7, 0 + 4982: 081f bt 0x49c0 // 49c0 + char stats=MI_ERR; + 4984: 3502 movi r5, 2 + RC522_SetBitMask(ControlReg,0x80);// stop timer now + 4986: 3180 movi r1, 128 + 4988: 300c movi r0, 12 + 498a: e3fffef9 bsr 0x477c // 477c + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 498e: 3100 movi r1, 0 + 4990: 3001 movi r0, 1 + 4992: e3fffeb7 bsr 0x4700 // 4700 +} + 4996: 6c17 mov r0, r5 + 4998: 1404 addi r14, r14, 16 + 499a: 1494 pop r4-r7, r15 + waitFor = 0x30; + 499c: 3630 movi r6, 48 + irqEn = 0x77; + 499e: 3577 movi r5, 119 + break; + 49a0: 07bb br 0x4916 // 4916 + waitFor = 0x10; + 49a2: 3610 movi r6, 16 + irqEn = 0x12; + 49a4: 3512 movi r5, 18 + 49a6: 07b8 br 0x4916 // 4916 + RC522_WriteRawRC(FIFODataReg,pIn[i]); + 49a8: 8320 ld.b r1, (r3, 0x0) + 49aa: 3009 movi r0, 9 + 49ac: b843 st.w r2, (r14, 0xc) + 49ae: b861 st.w r3, (r14, 0x4) + for(i=0;i + 49b6: 9861 ld.w r3, (r14, 0x4) + for(i=0;i + if(!(RC522_ReadRawRC(ErrorReg)&0x1B)) + 49c0: 3006 movi r0, 6 + 49c2: e3fffe83 bsr 0x46c8 // 46c8 + 49c6: 331b movi r3, 27 + 49c8: 680c and r0, r3 + 49ca: 3840 cmpnei r0, 0 + 49cc: 0bdc bt 0x4984 // 4984 + if(n&irqEn&0x01) + 49ce: 3301 movi r3, 1 + 49d0: 694c and r5, r3 + 49d2: 9861 ld.w r3, (r14, 0x4) + 49d4: 68d4 and r3, r5 + 49d6: 3b40 cmpnei r3, 0 + 49d8: 0817 bt 0x4a06 // 4a06 + if(Command==PCD_TRANSCEIVE) + 49da: 3c4c cmpnei r4, 12 + 49dc: 0c19 bf 0x4a0e // 4a0e + stats=MI_OK; + 49de: 3500 movi r5, 0 + 49e0: 07d3 br 0x4986 // 4986 + *pOutLenBit=n*8; + 49e2: 4463 lsli r3, r4, 3 + 49e4: 9840 ld.w r2, (r14, 0x0) + 49e6: a260 st.b r3, (r2, 0x0) + 49e8: 042b br 0x4a3e // 4a3e + if(n==0)n=1; + 49ea: 3301 movi r3, 1 + 49ec: 0430 br 0x4a4c // 4a4c + n=RC522_ReadRawRC(FIFOLevelReg); + 49ee: 300a movi r0, 10 + 49f0: e3fffe6c bsr 0x46c8 // 46c8 + 49f4: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 49f6: 300c movi r0, 12 + 49f8: e3fffe68 bsr 0x46c8 // 46c8 + 49fc: 3307 movi r3, 7 + 49fe: 680c and r0, r3 + stats=MI_NOTAGERR; + 4a00: 3501 movi r5, 1 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 4a02: 3c40 cmpnei r4, 0 + 4a04: 0412 br 0x4a28 // 4a28 + if(Command==PCD_TRANSCEIVE) + 4a06: 3c4c cmpnei r4, 12 + 4a08: 0ff3 bf 0x49ee // 49ee + stats=MI_NOTAGERR; + 4a0a: 3501 movi r5, 1 + 4a0c: 07bd br 0x4986 // 4986 + n=RC522_ReadRawRC(FIFOLevelReg); + 4a0e: 300a movi r0, 10 + 4a10: e3fffe5c bsr 0x46c8 // 46c8 + 4a14: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 4a16: 300c movi r0, 12 + 4a18: e3fffe58 bsr 0x46c8 // 46c8 + 4a1c: 3307 movi r3, 7 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 4a1e: 3c42 cmpnei r4, 2 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 4a20: 680c and r0, r3 + stats=MI_OK; + 4a22: 3500 movi r5, 0 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 4a24: 0c06 bf 0x4a30 // 4a30 + 4a26: 3c45 cmpnei r4, 5 + 4a28: 0c04 bf 0x4a30 // 4a30 + FIFOLevelReg_flag = 1; + 4a2a: 1070 lrw r3, 0x200002d8 // 4a68 + 4a2c: 3201 movi r2, 1 + 4a2e: a340 st.b r2, (r3, 0x0) + if(lastBits) + 4a30: 3840 cmpnei r0, 0 + 4a32: 0fd8 bf 0x49e2 // 49e2 + *pOutLenBit=(n-1)*8+lastBits; + 4a34: 5c63 subi r3, r4, 1 + 4a36: 4363 lsli r3, r3, 3 + 4a38: 600c addu r0, r3 + 4a3a: 9860 ld.w r3, (r14, 0x0) + 4a3c: a300 st.b r0, (r3, 0x0) + if(n==0)n=1; + 4a3e: 3c40 cmpnei r4, 0 + 4a40: 0fd5 bf 0x49ea // 49ea + 4a42: 3c12 cmphsi r4, 19 + 4a44: 6cd3 mov r3, r4 + 4a46: 0c02 bf 0x4a4a // 4a4a + 4a48: 3312 movi r3, 18 + 4a4a: 74cc zextb r3, r3 + 4a4c: 98e2 ld.w r7, (r14, 0x8) + for(i=0; i + pOut[i]=RC522_ReadRawRC(FIFODataReg); + 4a56: 3009 movi r0, 9 + 4a58: e3fffe38 bsr 0x46c8 // 46c8 + for(i=0; i + 4a66: 0000 bkpt + 4a68: 200002d8 .long 0x200002d8 + +Disassembly of section .text.RC522_PcdRequest: + +00004a6c : +{ + 4a6c: 14d3 push r4-r6, r15 + 4a6e: 1427 subi r14, r14, 28 + 4a70: 6d03 mov r4, r0 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 4a72: 3212 movi r2, 18 +{ + 4a74: 6d47 mov r5, r1 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 4a76: 1802 addi r0, r14, 8 + 4a78: 3100 movi r1, 0 + 4a7a: e3ffe7d1 bsr 0x1a1c // 1a1c <__memset_fast> + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位,/接收数据命令 + 4a7e: 3108 movi r1, 8 + 4a80: 3008 movi r0, 8 + 4a82: e3fffe96 bsr 0x47ae // 47ae + RC522_WriteRawRC(BitFramingReg,0x07); //写RC632寄存器 + 4a86: 3107 movi r1, 7 + 4a88: 300d movi r0, 13 + 4a8a: e3fffe3b bsr 0x4700 // 4700 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4a8e: 3607 movi r6, 7 + RC522_SetBitMask(TxControlReg,0x03); //置RC522寄存器位 + 4a90: 3103 movi r1, 3 + 4a92: 3014 movi r0, 20 + 4a94: e3fffe74 bsr 0x477c // 477c + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4a98: 61b8 addu r6, r14 + 4a9a: 1b02 addi r3, r14, 8 + 4a9c: b8c0 st.w r6, (r14, 0x0) + 4a9e: 3201 movi r2, 1 + 4aa0: 6c4f mov r1, r3 + 4aa2: 300c movi r0, 12 + ucComMF522Buf[0]=req_code; //寻卡方式 + 4aa4: dc8e0008 st.b r4, (r14, 0x8) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4aa8: e3ffff2a bsr 0x48fc // 48fc + if ((stats == MI_OK) && (unLen == 0x10)) { + 4aac: 3840 cmpnei r0, 0 + 4aae: 081b bt 0x4ae4 // 4ae4 + 4ab0: 8660 ld.b r3, (r6, 0x0) + 4ab2: 3b50 cmpnei r3, 16 + 4ab4: 0818 bt 0x4ae4 // 4ae4 + *pTagType = ucComMF522Buf[0]; //将数组里的数据赋值给*pTagType + 4ab6: d86e0008 ld.b r3, (r14, 0x8) + 4aba: a560 st.b r3, (r5, 0x0) + *(pTagType + 1) = ucComMF522Buf[1]; + 4abc: d86e0009 ld.b r3, (r14, 0x9) + 4ac0: a561 st.b r3, (r5, 0x1) + if ((ucComMF522Buf[0] == req_code)&&(CardInfo.RC522_Reset_Falg == 0)) { + 4ac2: d86e0008 ld.b r3, (r14, 0x8) + 4ac6: 650e cmpne r3, r4 + 4ac8: 3220 movi r2, 32 + 4aca: 1069 lrw r3, 0x20000428 // 4aec + 4acc: 608c addu r2, r3 + 4ace: 080d bt 0x4ae8 // 4ae8 + 4ad0: 8228 ld.b r1, (r2, 0x8) + 4ad2: 3940 cmpnei r1, 0 + 4ad4: 0806 bt 0x4ae0 // 4ae0 + CardInfo.RC522_Reset_Falg = 1; + 4ad6: 3101 movi r1, 1 + CardInfo.RC522_Reset_Falg = 0; + 4ad8: a228 st.b r1, (r2, 0x8) + CardInfo.Reset_Tick = SysTick_1ms; + 4ada: 1046 lrw r2, 0x200000b8 // 4af0 + 4adc: 9240 ld.w r2, (r2, 0x0) + 4ade: b34b st.w r2, (r3, 0x2c) +} + 4ae0: 1407 addi r14, r14, 28 + 4ae2: 1493 pop r4-r6, r15 + stats = MI_ERR; + 4ae4: 3002 movi r0, 2 + 4ae6: 07ee br 0x4ac2 // 4ac2 + CardInfo.RC522_Reset_Falg = 0; + 4ae8: 3100 movi r1, 0 + 4aea: 07f7 br 0x4ad8 // 4ad8 + 4aec: 20000428 .long 0x20000428 + 4af0: 200000b8 .long 0x200000b8 + +Disassembly of section .text.RC522_PcdAnticoll: + +00004af4 : +{ + 4af4: 14d2 push r4-r5, r15 + 4af6: 1427 subi r14, r14, 28 + 4af8: 6d43 mov r5, r0 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4afa: 3108 movi r1, 8 + 4afc: 3008 movi r0, 8 + 4afe: e3fffe58 bsr 0x47ae // 47ae + RC522_WriteRawRC(BitFramingReg,0x00); //写 + 4b02: 3100 movi r1, 0 + 4b04: 300d movi r0, 13 + 4b06: e3fffdfd bsr 0x4700 // 4700 + RC522_ClearBitMask(CollReg,0x80); //清 + 4b0a: 3180 movi r1, 128 + 4b0c: 300e movi r0, 14 + 4b0e: e3fffe50 bsr 0x47ae // 47ae + ucComMF522Buf[0]=PICC_ANTICOLL1; //PICC_ANTICOLL1 = 0x93 + 4b12: 3300 movi r3, 0 + 4b14: 2b6c subi r3, 109 + 4b16: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x20; + 4b1a: 3320 movi r3, 32 + 4b1c: dc6e0009 st.b r3, (r14, 0x9) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4b20: 3307 movi r3, 7 + 4b22: 60f8 addu r3, r14 + 4b24: b860 st.w r3, (r14, 0x0) + 4b26: 1b02 addi r3, r14, 8 + 4b28: 3202 movi r2, 2 + 4b2a: 6c4f mov r1, r3 + 4b2c: 300c movi r0, 12 + 4b2e: e3fffee7 bsr 0x48fc // 48fc + if(stats==MI_OK) + 4b32: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4b34: 6d03 mov r4, r0 + if(stats==MI_OK) + 4b36: 0812 bt 0x4b5a // 4b5a + 4b38: 3300 movi r3, 0 + 4b3a: 3200 movi r2, 0 + *(pSnr+i)=ucComMF522Buf[i]; //把读到的卡号赋值给pSnr + 4b3c: 1902 addi r1, r14, 8 + 4b3e: 604c addu r1, r3 + 4b40: 8120 ld.b r1, (r1, 0x0) + 4b42: 5d0c addu r0, r5, r3 + 4b44: 2300 addi r3, 1 + 4b46: a020 st.b r1, (r0, 0x0) + for(i=0;i<4;i++) + 4b48: 3b44 cmpnei r3, 4 + snr_check^=ucComMF522Buf[i]; + 4b4a: 6c49 xor r1, r2 + 4b4c: 6c87 mov r2, r1 + for(i=0;i<4;i++) + 4b4e: 0bf7 bt 0x4b3c // 4b3c + if(snr_check!=ucComMF522Buf[i]) + 4b50: d86e000c ld.b r3, (r14, 0xc) + 4b54: 644e cmpne r3, r1 + 4b56: 0c02 bf 0x4b5a // 4b5a + stats = MI_ERR; + 4b58: 3402 movi r4, 2 + RC522_SetBitMask(CollReg,0x80); + 4b5a: 3180 movi r1, 128 + 4b5c: 300e movi r0, 14 + 4b5e: e3fffe0f bsr 0x477c // 477c +} + 4b62: 6c13 mov r0, r4 + 4b64: 1407 addi r14, r14, 28 + 4b66: 1492 pop r4-r5, r15 + +Disassembly of section .text.Card_Read_TasK: + +00004b68 : + + + +//U32_T FailNum = 0; +U32_T scan_tick = 0; +void Card_Read_TasK(void){ + 4b68: 14d3 push r4-r6, r15 + + if(SysTick_1ms - scan_tick >= 100){ + 4b6a: 11a5 lrw r5, 0x200000b8 // 4bfc + 4b6c: 1145 lrw r2, 0x200002d8 // 4c00 + 4b6e: 1186 lrw r4, 0x20000428 // 4c04 + 4b70: 9221 ld.w r1, (r2, 0x4) + 4b72: 9560 ld.w r3, (r5, 0x0) + 4b74: 60c6 subu r3, r1 + 4b76: 3163 movi r1, 99 + 4b78: 64c4 cmphs r1, r3 + 4b7a: 081a bt 0x4bae // 4bae + //Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,Card Read",SysTick_1ms); + + + + //寻卡: 识别天线范围内全部卡 + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4b7c: 3119 movi r1, 25 + scan_tick = SysTick_1ms; + 4b7e: 9560 ld.w r3, (r5, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4b80: 6050 addu r1, r4 + 4b82: 3052 movi r0, 82 + scan_tick = SysTick_1ms; + 4b84: b261 st.w r3, (r2, 0x4) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4b86: e3ffff73 bsr 0x4a6c // 4a6c + 4b8a: 3620 movi r6, 32 + 4b8c: 3840 cmpnei r0, 0 + 4b8e: 6190 addu r6, r4 + 4b90: 0829 bt 0x4be2 // 4be2 + //消抖 + //Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_SUCC",SysTick_1ms); + + + //防冲撞:获取IC卡的卡号 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4b92: 301b movi r0, 27 + CardInfo.FailNum = 0x00; + 4b94: 3300 movi r3, 0 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4b96: 6010 addu r0, r4 + CardInfo.FailNum = 0x00; + 4b98: a666 st.b r3, (r6, 0x6) + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4b9a: e3ffffad bsr 0x4af4 // 4af4 + 4b9e: 3840 cmpnei r0, 0 + 4ba0: 081c bt 0x4bd8 // 4bd8 + + + CardInfo.SuccNum++; + if(CardInfo.SuccNum >= 1) + 4ba2: 8647 ld.b r2, (r6, 0x7) + 4ba4: 33ff movi r3, 255 + 4ba6: 64ca cmpne r2, r3 + { + CardInfo.SuccNum = 0 ; + 4ba8: 3300 movi r3, 0 + 4baa: a667 st.b r3, (r6, 0x7) + if(CardInfo.SuccNum >= 1) + 4bac: 080e bt 0x4bc8 // 4bc8 + } + } + //} + } + + if(CardInfo.BlockSucc != CardInfo.BlockLast){ + 4bae: 8467 ld.b r3, (r4, 0x7) + 4bb0: 8446 ld.b r2, (r4, 0x6) + 4bb2: 64ca cmpne r2, r3 + 4bb4: 0c09 bf 0x4bc6 // 4bc6 + CardInfo.BlockLast = CardInfo.BlockSucc; + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4bb6: 3b41 cmpnei r3, 1 + CardInfo.BlockLast = CardInfo.BlockSucc; + 4bb8: a466 st.b r3, (r4, 0x6) + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4bba: 0c06 bf 0x4bc6 // 4bc6 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read SUCC"); + + + }else { + Card_Tick = SysTick_1ms; + 4bbc: 9540 ld.w r2, (r5, 0x0) + 4bbe: 1073 lrw r3, 0x200000a4 // 4c08 + 4bc0: b340 st.w r2, (r3, 0x0) + CardInfo.reset_tick = SysTick_1ms; + 4bc2: 9560 ld.w r3, (r5, 0x0) + 4bc4: b46c st.w r3, (r4, 0x30) + } + } + + +} + 4bc6: 1493 pop r4-r6, r15 + CardInfo.BlockSucc = BLOCK_READ_SUCC; + 4bc8: 3301 movi r3, 1 + 4bca: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d Card Block_SUCC",SysTick_1ms); + 4bcc: 9540 ld.w r2, (r5, 0x0) + 4bce: 1030 lrw r1, 0x5f99 // 4c0c + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_FAILD",SysTick_1ms); + 4bd0: 3000 movi r0, 0 + 4bd2: e3fffcfb bsr 0x45c8 // 45c8 + 4bd6: 07ec br 0x4bae // 4bae + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 4bd8: 102e lrw r1, 0x5fb9 // 4c10 + 4bda: 3000 movi r0, 0 + 4bdc: e3fffcf6 bsr 0x45c8 // 45c8 + 4be0: 07e7 br 0x4bae // 4bae + if(CardInfo.FailNum >= 5) + 4be2: 8666 ld.b r3, (r6, 0x6) + 4be4: 3b04 cmphsi r3, 5 + 4be6: 0c08 bf 0x4bf6 // 4bf6 + CardInfo.FailNum = 0; + 4be8: 3300 movi r3, 0 + 4bea: a666 st.b r3, (r6, 0x6) + CardInfo.SuccNum = 0; + 4bec: a667 st.b r3, (r6, 0x7) + CardInfo.BlockSucc = BLOCK_READ_FAILD; + 4bee: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_FAILD",SysTick_1ms); + 4bf0: 9540 ld.w r2, (r5, 0x0) + 4bf2: 1029 lrw r1, 0x5fcb // 4c14 + 4bf4: 07ee br 0x4bd0 // 4bd0 + CardInfo.FailNum++; + 4bf6: 2300 addi r3, 1 + 4bf8: a666 st.b r3, (r6, 0x6) + 4bfa: 07da br 0x4bae // 4bae + 4bfc: 200000b8 .long 0x200000b8 + 4c00: 200002d8 .long 0x200002d8 + 4c04: 20000428 .long 0x20000428 + 4c08: 200000a4 .long 0x200000a4 + 4c0c: 00005f99 .long 0x00005f99 + 4c10: 00005fb9 .long 0x00005fb9 + 4c14: 00005fcb .long 0x00005fcb + +Disassembly of section .text.Detect_SPI_task: + +00004c18 : +U32_T HL_tick =0; +void Detect_SPI_task(void){ + 4c18: 14d1 push r4, r15 + + if (CardInfo.RC522_Reset_Falg == 1) { + 4c1a: 109f lrw r4, 0x20000428 // 4c94 + 4c1c: 3320 movi r3, 32 + 4c1e: 60d0 addu r3, r4 + 4c20: 8368 ld.b r3, (r3, 0x8) + 4c22: 3b41 cmpnei r3, 1 + 4c24: 0810 bt 0x4c44 // 4c44 + if (SysTick_1ms - CardInfo.Reset_Tick >= 1000) { + 4c26: 105d lrw r2, 0x200000b8 // 4c98 + 4c28: 9260 ld.w r3, (r2, 0x0) + 4c2a: 942b ld.w r1, (r4, 0x2c) + 4c2c: 60c6 subu r3, r1 + 4c2e: 103c lrw r1, 0x3e7 // 4c9c + 4c30: 64c4 cmphs r1, r3 + 4c32: 0809 bt 0x4c44 // 4c44 + CardInfo.Reset_Tick = SysTick_1ms; + 4c34: 9260 ld.w r3, (r2, 0x0) + 4c36: b46b st.w r3, (r4, 0x2c) + RC522_Reset(); + 4c38: e3fffdcc bsr 0x47d0 // 47d0 + Dbg_Println(DBG_BIT_SYS_STATUS, "SPI INIT"); + 4c3c: 1039 lrw r1, 0x5feb // 4ca0 + 4c3e: 3000 movi r0, 0 + 4c40: e3fffcc4 bsr 0x45c8 // 45c8 + } + } + + if(1==FIFOLevelReg_flag){ + 4c44: 1078 lrw r3, 0x200002d8 // 4ca4 + 4c46: 8340 ld.b r2, (r3, 0x0) + 4c48: 3a41 cmpnei r2, 1 + 4c4a: 0812 bt 0x4c6e // 4c6e +// Dbg_Println(DBG_BIT_SYS_STATUS, "FIFO INIT one"); + if (SysTick_1ms - HL_tick >= 1000) { + 4c4c: 1033 lrw r1, 0x200000b8 // 4c98 + 4c4e: 9140 ld.w r2, (r1, 0x0) + 4c50: 9302 ld.w r0, (r3, 0x8) + 4c52: 6082 subu r2, r0 + 4c54: 1012 lrw r0, 0x3e7 // 4c9c + 4c56: 6480 cmphs r0, r2 + 4c58: 080b bt 0x4c6e // 4c6e + HL_tick = SysTick_1ms; + 4c5a: 9140 ld.w r2, (r1, 0x0) + 4c5c: b342 st.w r2, (r3, 0x8) + FIFOLevelReg_flag = 0; + 4c5e: 3200 movi r2, 0 + 4c60: a340 st.b r2, (r3, 0x0) +// Reset_RC522_num2++; + RC522_Reset(); + 4c62: e3fffdb7 bsr 0x47d0 // 47d0 + Dbg_Println(DBG_BIT_SYS_STATUS, "FIFO INIT"); + 4c66: 1031 lrw r1, 0x5ff4 // 4ca8 + 4c68: 3000 movi r0, 0 + 4c6a: e3fffcaf bsr 0x45c8 // 45c8 + } + } + + //每10s读不到卡便复位并初始化rc522 + if((CardInfo.BlockSucc == BLOCK_READ_FAILD)&&(SysTick_1ms - CardInfo.reset_tick>= 10000)) { + 4c6e: 8467 ld.b r3, (r4, 0x7) + 4c70: 3b40 cmpnei r3, 0 + 4c72: 0810 bt 0x4c92 // 4c92 + 4c74: 1049 lrw r2, 0x200000b8 // 4c98 + 4c76: 9260 ld.w r3, (r2, 0x0) + 4c78: 942c ld.w r1, (r4, 0x30) + 4c7a: 60c6 subu r3, r1 + 4c7c: 102c lrw r1, 0x270f // 4cac + 4c7e: 64c4 cmphs r1, r3 + 4c80: 0809 bt 0x4c92 // 4c92 + CardInfo.reset_tick = SysTick_1ms; + 4c82: 9260 ld.w r3, (r2, 0x0) + 4c84: b46c st.w r3, (r4, 0x30) + RC522_Reset(); + 4c86: e3fffda5 bsr 0x47d0 // 47d0 + Dbg_Println(DBG_BIT_SYS_STATUS, "not read for 10 seconds"); + 4c8a: 102a lrw r1, 0x5ffe // 4cb0 + 4c8c: 3000 movi r0, 0 + 4c8e: e3fffc9d bsr 0x45c8 // 45c8 + } + + +} + 4c92: 1491 pop r4, r15 + 4c94: 20000428 .long 0x20000428 + 4c98: 200000b8 .long 0x200000b8 + 4c9c: 000003e7 .long 0x000003e7 + 4ca0: 00005feb .long 0x00005feb + 4ca4: 200002d8 .long 0x200002d8 + 4ca8: 00005ff4 .long 0x00005ff4 + 4cac: 0000270f .long 0x0000270f + 4cb0: 00005ffe .long 0x00005ffe + +Disassembly of section .text.RLY_Light_Ctrl: + +00004cb4 : +} + +volatile U32_T Tim_Flag = 0; +///无RF模块继电器和背光控制函数 +void RLY_Light_Ctrl(U8_T state) +{ + 4cb4: 14d0 push r15 + if(state == 0x01) + 4cb6: 3841 cmpnei r0, 1 + 4cb8: 0807 bt 0x4cc6 // 4cc6 + { +// CTRL_RLY_ON; + GPIO_Write_High(GPIOA0,0); + 4cba: 106e lrw r3, 0x2000004c // 4cf0 + 4cbc: 3100 movi r1, 0 + 4cbe: 9300 ld.w r0, (r3, 0x0) + 4cc0: e3fff347 bsr 0x334e // 334e + else{ + GPIO_Write_Low(GPIOA0,0); + } +// CTRL_RLY_OFF; + } +} + 4cc4: 1490 pop r15 + else if(state == 0x00){ + 4cc6: 3840 cmpnei r0, 0 + 4cc8: 0bfe bt 0x4cc4 // 4cc4 + if(CardInfo.CTR_PLYFlag == 1) + 4cca: 106b lrw r3, 0x20000428 // 4cf4 + 4ccc: 8360 ld.b r3, (r3, 0x0) + 4cce: 3b41 cmpnei r3, 1 + 4cd0: 0809 bt 0x4ce2 // 4ce2 + if(SysTick_1ms - Tim_Flag >= CTR_State_Tick) + 4cd2: 106a lrw r3, 0x200000b8 // 4cf8 + 4cd4: 104a lrw r2, 0x200002e4 // 4cfc + 4cd6: 9360 ld.w r3, (r3, 0x0) + 4cd8: 9240 ld.w r2, (r2, 0x0) + 4cda: 60ca subu r3, r2 + 4cdc: 1049 lrw r2, 0x752f // 4d00 + 4cde: 64c8 cmphs r2, r3 + 4ce0: 0bf2 bt 0x4cc4 // 4cc4 + GPIO_Write_Low(GPIOA0,0); + 4ce2: 1064 lrw r3, 0x2000004c // 4cf0 + 4ce4: 3100 movi r1, 0 + 4ce6: 9300 ld.w r0, (r3, 0x0) + 4ce8: e3fff337 bsr 0x3356 // 3356 +} + 4cec: 07ec br 0x4cc4 // 4cc4 + 4cee: 0000 bkpt + 4cf0: 2000004c .long 0x2000004c + 4cf4: 20000428 .long 0x20000428 + 4cf8: 200000b8 .long 0x200000b8 + 4cfc: 200002e4 .long 0x200002e4 + 4d00: 0000752f .long 0x0000752f + +Disassembly of section .text.KEY1_LONG_PRESS_RELEASE_Handler: + +00004d04 : +} + + +///无RF模块的门磁长按释放事件 +void KEY1_LONG_PRESS_RELEASE_Handler(void* btn) +{ + 4d04: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_RELEASE_Handler"); + 4d06: 1033 lrw r1, 0x6016 // 4d50 + 4d08: 3000 movi r0, 0 + 4d0a: e3fffc5f bsr 0x45c8 // 45c8 + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4d0e: 1072 lrw r3, 0x20000428 // 4d54 + 4d10: 8367 ld.b r3, (r3, 0x7) + 4d12: 3b40 cmpnei r3, 0 + 4d14: 1091 lrw r4, 0x20000494 // 4d58 + 4d16: 0819 bt 0x4d48 // 4d48 + { + if(READ_RLY_STATE != 0x00) + 4d18: 1071 lrw r3, 0x20000048 // 4d5c + 4d1a: 3100 movi r1, 0 + 4d1c: 9300 ld.w r0, (r3, 0x0) + 4d1e: e3fff333 bsr 0x3384 // 3384 + 4d22: 3840 cmpnei r0, 0 + 4d24: 0c08 bf 0x4d34 // 4d34 + { + RLY_Light_Ctrl(1); + 4d26: 3001 movi r0, 1 + 4d28: e3ffffc6 bsr 0x4cb4 // 4cb4 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 4d2c: 102d lrw r1, 0x6031 // 4d60 + 4d2e: 3000 movi r0, 0 + 4d30: e3fffc4c bsr 0x45c8 // 45c8 + } + dm_in.DM_Tick = SysTick_1ms; + 4d34: 106c lrw r3, 0x200000b8 // 4d64 + 4d36: 104d lrw r2, 0x20000495 // 4d68 + 4d38: 9360 ld.w r3, (r3, 0x0) + 4d3a: 4b28 lsri r1, r3, 8 + 4d3c: a461 st.b r3, (r4, 0x1) + 4d3e: a221 st.b r1, (r2, 0x1) + 4d40: 4b30 lsri r1, r3, 16 + 4d42: 4b78 lsri r3, r3, 24 + 4d44: a222 st.b r1, (r2, 0x2) + 4d46: a263 st.b r3, (r2, 0x3) + } + + dm_in.DM_State = 0x02; + 4d48: 3302 movi r3, 2 + 4d4a: a460 st.b r3, (r4, 0x0) +} + 4d4c: 1491 pop r4, r15 + 4d4e: 0000 bkpt + 4d50: 00006016 .long 0x00006016 + 4d54: 20000428 .long 0x20000428 + 4d58: 20000494 .long 0x20000494 + 4d5c: 20000048 .long 0x20000048 + 4d60: 00006031 .long 0x00006031 + 4d64: 200000b8 .long 0x200000b8 + 4d68: 20000495 .long 0x20000495 + +Disassembly of section .text.LogicCtrl_Init: + +00004d6c : +{ + 4d6c: 14d2 push r4-r5, r15 + GPIO_Init(GPIOB0,CARD_SENS_PIN,Output); //CARD_SENS + 4d6e: 108d lrw r4, 0x20000048 // 4da0 + 4d70: 3200 movi r2, 0 + 4d72: 9400 ld.w r0, (r4, 0x0) + 4d74: 3101 movi r1, 1 + 4d76: e3fff26b bsr 0x324c // 324c + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4d7a: 10ab lrw r5, 0x2000004c // 4da4 + CTRL_CARD_OUT; + 4d7c: 3101 movi r1, 1 + 4d7e: 9400 ld.w r0, (r4, 0x0) + 4d80: e3fff2eb bsr 0x3356 // 3356 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4d84: 3200 movi r2, 0 + 4d86: 9500 ld.w r0, (r5, 0x0) + 4d88: 3101 movi r1, 1 + 4d8a: e3fff261 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4d8e: 9500 ld.w r0, (r5, 0x0) + 4d90: 3101 movi r1, 1 + 4d92: e3fff2e2 bsr 0x3356 // 3356 + CTRL_RLY_OFF; + 4d96: 9400 ld.w r0, (r4, 0x0) + 4d98: 3100 movi r1, 0 + 4d9a: e3fff2da bsr 0x334e // 334e +} + 4d9e: 1492 pop r4-r5, r15 + 4da0: 20000048 .long 0x20000048 + 4da4: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Task: + +00004da8 : +{ + 4da8: 14d4 push r4-r7, r15 + if (start_light == 0){ + 4daa: 1195 lrw r4, 0x200002e4 // 4e7c + 4dac: 8464 ld.b r3, (r4, 0x4) + 4dae: 3b40 cmpnei r3, 0 + 4db0: 11b4 lrw r5, 0x20000428 // 4e80 + 4db2: 0813 bt 0x4dd8 // 4dd8 + start_light++; //start_light == 1,表示上电后首次进入(有插卡) + 4db4: 3301 movi r3, 1 + 4db6: a464 st.b r3, (r4, 0x4) + if (CardInfo.BlockSucc==BLOCK_READ_FAILD){ + 4db8: 8567 ld.b r3, (r5, 0x7) + 4dba: 3b40 cmpnei r3, 0 + 4dbc: 080e bt 0x4dd8 // 4dd8 + GPIO_Init(GPIOA0,0,Output); + 4dbe: 11d2 lrw r6, 0x2000004c // 4e84 + 4dc0: 3200 movi r2, 0 + 4dc2: 3100 movi r1, 0 + 4dc4: 9600 ld.w r0, (r6, 0x0) + 4dc6: e3fff243 bsr 0x324c // 324c + GPIO_Write_High(GPIOA0,0); + 4dca: 9600 ld.w r0, (r6, 0x0) + 4dcc: 3100 movi r1, 0 + 4dce: e3fff2c0 bsr 0x334e // 334e + start_light++; //start_light == 2,表示上电后首次进入时未插卡 目前可能上电时有插卡也意外进入 + 4dd2: 8464 ld.b r3, (r4, 0x4) + 4dd4: 2300 addi r3, 1 + 4dd6: a464 st.b r3, (r4, 0x4) + if((CardInfo.BlockSucc==BLOCK_READ_SUCC) && (READ_CARD_STATE == 0)) + 4dd8: 8567 ld.b r3, (r5, 0x7) + 4dda: 3b41 cmpnei r3, 1 + 4ddc: 0836 bt 0x4e48 // 4e48 + 4dde: 11cb lrw r6, 0x20000048 // 4e88 + 4de0: 3101 movi r1, 1 + 4de2: 9600 ld.w r0, (r6, 0x0) + 4de4: e3fff2d0 bsr 0x3384 // 3384 + 4de8: 3840 cmpnei r0, 0 + 4dea: 082f bt 0x4e48 // 4e48 + CTRL_CARD_IN; + 4dec: 3101 movi r1, 1 + 4dee: 9600 ld.w r0, (r6, 0x0) + 4df0: e3fff2af bsr 0x334e // 334e + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_IN,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 4df4: 1166 lrw r3, 0x200000b8 // 4e8c + 4df6: 3101 movi r1, 1 + 4df8: 9600 ld.w r0, (r6, 0x0) + 4dfa: 93e0 ld.w r7, (r3, 0x0) + 4dfc: e3fff2c4 bsr 0x3384 // 3384 + 4e00: 6cc3 mov r3, r0 + 4e02: 6c9f mov r2, r7 + 4e04: 1123 lrw r1, 0x6043 // 4e90 + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_OUT,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 4e06: 3000 movi r0, 0 + 4e08: e3fffbe0 bsr 0x45c8 // 45c8 + if ((CardInfo.BlockSucc==BLOCK_READ_SUCC)&&(start_light > 0)&&(start_light <= 2)){ + 4e0c: 8567 ld.b r3, (r5, 0x7) + 4e0e: 3b41 cmpnei r3, 1 + 4e10: 080a bt 0x4e24 // 4e24 + 4e12: 8444 ld.b r2, (r4, 0x4) + 4e14: 5a63 subi r3, r2, 1 + 4e16: 74cc zextb r3, r3 + 4e18: 3b01 cmphsi r3, 2 + 4e1a: 0805 bt 0x4e24 // 4e24 + if (start_light > 1){ //上电后首次进入时未插卡 + 4e1c: 3a42 cmpnei r2, 2 + 4e1e: 082d bt 0x4e78 // 4e78 + start_light = 3; //start_light == 3,表示从上电后首次进入未插卡状态转为有插卡状态 + 4e20: 3303 movi r3, 3 + start_light = 10; //start_light == 10,表示从首次上电时有插卡,变成这个值后不再进入上电判断 + 4e22: a464 st.b r3, (r4, 0x4) + if ((start_light>=3)&&(start_light<=6)){ + 4e24: 8464 ld.b r3, (r4, 0x4) + 4e26: 5b4b subi r2, r3, 3 + 4e28: 7488 zextb r2, r2 + 4e2a: 3a03 cmphsi r2, 4 + 4e2c: 080d bt 0x4e46 // 4e46 + start_light++; + 4e2e: 2300 addi r3, 1 + 4e30: 74cc zextb r3, r3 + if (start_light>5){ //延时进入 + 4e32: 3b05 cmphsi r3, 6 + start_light++; + 4e34: a464 st.b r3, (r4, 0x4) + if (start_light>5){ //延时进入 + 4e36: 0c08 bf 0x4e46 // 4e46 + GPIO_Write_Low(GPIOA0,0); + 4e38: 1073 lrw r3, 0x2000004c // 4e84 + 4e3a: 3100 movi r1, 0 + 4e3c: 9300 ld.w r0, (r3, 0x0) + 4e3e: e3fff28c bsr 0x3356 // 3356 + start_light = 11; //start_light == 11,表示从上电后首次进入未插卡状态转为有插卡状态 + 4e42: 330b movi r3, 11 + 4e44: a464 st.b r3, (r4, 0x4) +} + 4e46: 1494 pop r4-r7, r15 + else if((CardInfo.BlockSucc==BLOCK_READ_FAILD) && (READ_CARD_STATE == 1)) + 4e48: 8567 ld.b r3, (r5, 0x7) + 4e4a: 3b40 cmpnei r3, 0 + 4e4c: 0be0 bt 0x4e0c // 4e0c + 4e4e: 10cf lrw r6, 0x20000048 // 4e88 + 4e50: 3101 movi r1, 1 + 4e52: 9600 ld.w r0, (r6, 0x0) + 4e54: e3fff298 bsr 0x3384 // 3384 + 4e58: 3841 cmpnei r0, 1 + 4e5a: 0bd9 bt 0x4e0c // 4e0c + CTRL_CARD_OUT; + 4e5c: 3101 movi r1, 1 + 4e5e: 9600 ld.w r0, (r6, 0x0) + 4e60: e3fff27b bsr 0x3356 // 3356 + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_OUT,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 4e64: 106a lrw r3, 0x200000b8 // 4e8c + 4e66: 3101 movi r1, 1 + 4e68: 9600 ld.w r0, (r6, 0x0) + 4e6a: 93e0 ld.w r7, (r3, 0x0) + 4e6c: e3fff28c bsr 0x3384 // 3384 + 4e70: 6cc3 mov r3, r0 + 4e72: 6c9f mov r2, r7 + 4e74: 1028 lrw r1, 0x6071 // 4e94 + 4e76: 07c8 br 0x4e06 // 4e06 + start_light = 10; //start_light == 10,表示从首次上电时有插卡,变成这个值后不再进入上电判断 + 4e78: 330a movi r3, 10 + 4e7a: 07d4 br 0x4e22 // 4e22 + 4e7c: 200002e4 .long 0x200002e4 + 4e80: 20000428 .long 0x20000428 + 4e84: 2000004c .long 0x2000004c + 4e88: 20000048 .long 0x20000048 + 4e8c: 200000b8 .long 0x200000b8 + 4e90: 00006043 .long 0x00006043 + 4e94: 00006071 .long 0x00006071 + +Disassembly of section .text.LogicCtrl_NoRF_Init: + +00004e98 : + + +///无RF模块的初始化 +void LogicCtrl_NoRF_Init(void) +{ + 4e98: 14d1 push r4, r15 + GPIO_Init(GPIOB0,RLY_OUT_PIN,Output); + 4e9a: 109c lrw r4, 0x20000048 // 4f08 + 4e9c: 3200 movi r2, 0 + 4e9e: 9400 ld.w r0, (r4, 0x0) + 4ea0: 3100 movi r1, 0 + 4ea2: e3fff1d5 bsr 0x324c // 324c + CTRL_RLY_OFF; + 4ea6: 9400 ld.w r0, (r4, 0x0) + 4ea8: 3100 movi r1, 0 + 4eaa: e3fff252 bsr 0x334e // 334e + + memset(&dm_in,0,sizeof(DM_IN_INF)); + + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 4eae: 1098 lrw r4, 0x2000004c // 4f0c + memset(&dm_in,0,sizeof(DM_IN_INF)); + 4eb0: 3209 movi r2, 9 + 4eb2: 3100 movi r1, 0 + 4eb4: 1017 lrw r0, 0x20000494 // 4f10 + 4eb6: e3ffe5b3 bsr 0x1a1c // 1a1c <__memset_fast> + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 4eba: 9400 ld.w r0, (r4, 0x0) + 4ebc: 3201 movi r2, 1 + 4ebe: 3103 movi r1, 3 + 4ec0: e3fff1c6 bsr 0x324c // 324c + + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4ec4: 3200 movi r2, 0 + 4ec6: 9400 ld.w r0, (r4, 0x0) + 4ec8: 3101 movi r1, 1 + 4eca: e3fff1c1 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4ece: 9400 ld.w r0, (r4, 0x0) + 4ed0: 3101 movi r1, 1 + 4ed2: e3fff242 bsr 0x3356 // 3356 + + + GPIO_Init(GPIOA0,0,Output); //继电器,//light + 4ed6: 3200 movi r2, 0 + 4ed8: 9400 ld.w r0, (r4, 0x0) + 4eda: 3100 movi r1, 0 + 4edc: e3fff1b8 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,0); //初始拉低断开,插卡拉高打开 + 4ee0: 9400 ld.w r0, (r4, 0x0) + 4ee2: 3100 movi r1, 0 + + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 4ee4: 108c lrw r4, 0x20000464 // 4f14 + GPIO_Write_Low(GPIOA0,0); //初始拉低断开,插卡拉高打开 + 4ee6: e3fff238 bsr 0x3356 // 3356 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 4eea: 3303 movi r3, 3 + 4eec: 6c13 mov r0, r4 + 4eee: 3200 movi r2, 0 + 4ef0: 102a lrw r1, 0x52b4 // 4f18 + 4ef2: e000010f bsr 0x5110 // 5110 + + button_attach(&KEY1, LONG_PRESS_RELEASE, KEY1_LONG_PRESS_RELEASE_Handler); + 4ef6: 104a lrw r2, 0x4d04 // 4f1c + 4ef8: 3107 movi r1, 7 + 4efa: 6c13 mov r0, r4 + 4efc: e0000127 bsr 0x514a // 514a + button_start(&KEY1); + 4f00: 6c13 mov r0, r4 + 4f02: e00001b9 bsr 0x5274 // 5274 +} + 4f06: 1491 pop r4, r15 + 4f08: 20000048 .long 0x20000048 + 4f0c: 2000004c .long 0x2000004c + 4f10: 20000494 .long 0x20000494 + 4f14: 20000464 .long 0x20000464 + 4f18: 000052b4 .long 0x000052b4 + 4f1c: 00004d04 .long 0x00004d04 + +Disassembly of section .text.LogicCtrl_NoRF_Task: + +00004f20 : + + +///无RF模块的轮询任务 +void LogicCtrl_NoRF_Task(void) +{ + 4f20: 14d3 push r4-r6, r15 + static U32_T card_tick = 0; + static U32_T test_tick = 0; + + CardInfo.CTR_PLYFlag = CTR_State_Flag; + 4f22: 3301 movi r3, 1 + 4f24: 11c9 lrw r6, 0x20000428 // 4fc8 + + if(SysTick_1ms - test_tick > 5) + 4f26: 118a lrw r4, 0x200000b8 // 4fcc + 4f28: 11aa lrw r5, 0x200002e4 // 4fd0 + CardInfo.CTR_PLYFlag = CTR_State_Flag; + 4f2a: a660 st.b r3, (r6, 0x0) + if(SysTick_1ms - test_tick > 5) + 4f2c: 9542 ld.w r2, (r5, 0x8) + 4f2e: 9460 ld.w r3, (r4, 0x0) + 4f30: 60ca subu r3, r2 + 4f32: 3b05 cmphsi r3, 6 + 4f34: 0c05 bf 0x4f3e // 4f3e + { + test_tick = SysTick_1ms; + 4f36: 9460 ld.w r3, (r4, 0x0) + 4f38: b562 st.w r3, (r5, 0x8) + button_ticks(); + 4f3a: e00001af bsr 0x5298 // 5298 + } + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 4f3e: 8667 ld.b r3, (r6, 0x7) + 4f40: 3b41 cmpnei r3, 1 + 4f42: 0830 bt 0x4fa2 // 4fa2 + { + RLY_Light_Ctrl(1); + 4f44: 3001 movi r0, 1 + 4f46: e3fffeb7 bsr 0x4cb4 // 4cb4 + card_tick = SysTick_1ms; + 4f4a: 9460 ld.w r3, (r4, 0x0) + 4f4c: b563 st.w r3, (r5, 0xc) + dm_in.DM_State = 0x00; + 4f4e: 3200 movi r2, 0 + 4f50: 1161 lrw r3, 0x20000494 // 4fd4 + 4f52: a340 st.b r2, (r3, 0x0) + card_tick = SysTick_1ms; + RLY_Light_Ctrl(0); + + } + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4f54: 8667 ld.b r3, (r6, 0x7) + 4f56: 3b40 cmpnei r3, 0 + 4f58: 0824 bt 0x4fa0 // 4fa0 + { + + if((dm_in.DM_State == 0x02) && (SysTick_1ms - dm_in.DM_Tick >= 30000)) + 4f5a: 107f lrw r3, 0x20000494 // 4fd4 + 4f5c: 8340 ld.b r2, (r3, 0x0) + 4f5e: 3a42 cmpnei r2, 2 + 4f60: 0820 bt 0x4fa0 // 4fa0 + 4f62: 8322 ld.b r1, (r3, 0x2) + 4f64: 8341 ld.b r2, (r3, 0x1) + 4f66: 4128 lsli r1, r1, 8 + 4f68: 6c48 or r1, r2 + 4f6a: 8343 ld.b r2, (r3, 0x3) + 4f6c: 4250 lsli r2, r2, 16 + 4f6e: 6c48 or r1, r2 + 4f70: 8344 ld.b r2, (r3, 0x4) + 4f72: 4258 lsli r2, r2, 24 + 4f74: 6c84 or r2, r1 + 4f76: 9400 ld.w r0, (r4, 0x0) + 4f78: 600a subu r0, r2 + 4f7a: 1058 lrw r2, 0x752f // 4fd8 + 4f7c: 6408 cmphs r2, r0 + 4f7e: 0811 bt 0x4fa0 // 4fa0 + { + dm_in.DM_Tick = SysTick_1ms; + 4f80: 9440 ld.w r2, (r4, 0x0) + 4f82: 5b22 addi r1, r3, 1 + 4f84: a341 st.b r2, (r3, 0x1) + 4f86: 4a68 lsri r3, r2, 8 + 4f88: a161 st.b r3, (r1, 0x1) + RLY_Light_Ctrl(0); + 4f8a: 3000 movi r0, 0 + dm_in.DM_Tick = SysTick_1ms; + 4f8c: 4a70 lsri r3, r2, 16 + 4f8e: 4a58 lsri r2, r2, 24 + 4f90: a162 st.b r3, (r1, 0x2) + 4f92: a143 st.b r2, (r1, 0x3) + RLY_Light_Ctrl(0); + 4f94: e3fffe90 bsr 0x4cb4 // 4cb4 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 4f98: 1031 lrw r1, 0x60b3 // 4fdc + 4f9a: 3000 movi r0, 0 + 4f9c: e3fffb16 bsr 0x45c8 // 45c8 + } + } +} + 4fa0: 1493 pop r4-r6, r15 + else if((CardInfo.BlockSucc == BLOCK_READ_FAILD) && (dm_in.DM_State == 0x00) && (SysTick_1ms - card_tick >= CTR_State_Tick)) + 4fa2: 3b40 cmpnei r3, 0 + 4fa4: 0bd8 bt 0x4f54 // 4f54 + 4fa6: 106c lrw r3, 0x20000494 // 4fd4 + 4fa8: 8360 ld.b r3, (r3, 0x0) + 4faa: 3b40 cmpnei r3, 0 + 4fac: 0bd4 bt 0x4f54 // 4f54 + 4fae: 9543 ld.w r2, (r5, 0xc) + 4fb0: 9460 ld.w r3, (r4, 0x0) + 4fb2: 60ca subu r3, r2 + 4fb4: 1049 lrw r2, 0x752f // 4fd8 + 4fb6: 64c8 cmphs r2, r3 + 4fb8: 0bce bt 0x4f54 // 4f54 + card_tick = SysTick_1ms; + 4fba: 9460 ld.w r3, (r4, 0x0) + RLY_Light_Ctrl(0); + 4fbc: 3000 movi r0, 0 + card_tick = SysTick_1ms; + 4fbe: b563 st.w r3, (r5, 0xc) + RLY_Light_Ctrl(0); + 4fc0: e3fffe7a bsr 0x4cb4 // 4cb4 + 4fc4: 07c8 br 0x4f54 // 4f54 + 4fc6: 0000 bkpt + 4fc8: 20000428 .long 0x20000428 + 4fcc: 200000b8 .long 0x200000b8 + 4fd0: 200002e4 .long 0x200002e4 + 4fd4: 20000494 .long 0x20000494 + 4fd8: 0000752f .long 0x0000752f + 4fdc: 000060b3 .long 0x000060b3 + +Disassembly of section .text.BackLight_Task: + +00004fe0 : + +void BackLight_Task(void){ + if (CardInfo.BlockSucc == BLOCK_READ_SUCC) + 4fe0: 1067 lrw r3, 0x20000428 // 4ffc + 4fe2: 8367 ld.b r3, (r3, 0x7) + 4fe4: 3b41 cmpnei r3, 1 + 4fe6: 1067 lrw r3, 0x20000024 // 5000 + 4fe8: 0806 bt 0x4ff4 // 4ff4 + GPT0->CMPA = 2000; + 4fea: 9340 ld.w r2, (r3, 0x0) + 4fec: 33fa movi r3, 250 + 4fee: 4363 lsli r3, r3, 3 + 4ff0: b26b st.w r3, (r2, 0x2c) + }else + { + Ctrl_Backlight(0);//开背光 + //Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay led on"); + } +} + 4ff2: 783c jmp r15 + GPT0->CMPA = 0; + 4ff4: 9360 ld.w r3, (r3, 0x0) + 4ff6: 3200 movi r2, 0 + 4ff8: b34b st.w r2, (r3, 0x2c) +} + 4ffa: 07fc br 0x4ff2 // 4ff2 + 4ffc: 20000428 .long 0x20000428 + 5000: 20000024 .long 0x20000024 + +Disassembly of section .text.Detect_WIFI_Task: + +00005004 : +//检测有无WIFI模组,判断10次,每次间隔10ms +void Detect_WIFI_Task(void){ + 5004: 14d1 push r4, r15 + + if (finish_flag == 1) return; + 5006: 107c lrw r3, 0x200000a2 // 5074 + 5008: 8340 ld.b r2, (r3, 0x0) + 500a: 3a41 cmpnei r2, 1 + 500c: 0c1c bf 0x5044 // 5044 + + if (detect_count <10) { + 500e: 109b lrw r4, 0x200000ac // 5078 + 5010: 8440 ld.b r2, (r4, 0x0) + 5012: 3a09 cmphsi r2, 10 + 5014: 081c bt 0x504c // 504c + if(SysTick_1ms - detect_tick >= 10) { + 5016: 103a lrw r1, 0x200000b8 // 507c + 5018: 105a lrw r2, 0x200000a8 // 5080 + 501a: 9160 ld.w r3, (r1, 0x0) + 501c: 9200 ld.w r0, (r2, 0x0) + 501e: 60c2 subu r3, r0 + 5020: 3b09 cmphsi r3, 10 + 5022: 0c11 bf 0x5044 // 5044 + detect_tick = SysTick_1ms; + 5024: 9160 ld.w r3, (r1, 0x0) + 5026: b260 st.w r3, (r2, 0x0) + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 5028: 3102 movi r1, 2 + 502a: 1077 lrw r3, 0x20000048 // 5084 + 502c: 9300 ld.w r0, (r3, 0x0) + 502e: e3fff1a3 bsr 0x3374 // 3374 + 5032: 1076 lrw r3, 0x200000a0 // 5088 + 5034: a300 st.b r0, (r3, 0x0) + + if (last_state != rf_exist) { + 5036: 1076 lrw r3, 0x200000a1 // 508c + 5038: 8340 ld.b r2, (r3, 0x0) + 503a: 640a cmpne r2, r0 + 503c: 0c05 bf 0x5046 // 5046 + last_state = rf_exist; + 503e: a300 st.b r0, (r3, 0x0) + detect_count = 0; + 5040: 3300 movi r3, 0 + }else { + detect_count++; + 5042: a460 st.b r3, (r4, 0x0) + { + LogicCtrl_Init(); + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + } + } +} + 5044: 1491 pop r4, r15 + detect_count++; + 5046: 8460 ld.b r3, (r4, 0x0) + 5048: 2300 addi r3, 1 + 504a: 07fc br 0x5042 // 5042 + finish_flag = 1; + 504c: 3201 movi r2, 1 + 504e: a340 st.b r2, (r3, 0x0) + if(rf_exist == 0x01) //不带无线模块初始化 + 5050: 106e lrw r3, 0x200000a0 // 5088 + 5052: 8360 ld.b r3, (r3, 0x0) + 5054: 3b41 cmpnei r3, 1 + 5056: 0808 bt 0x5066 // 5066 + LogicCtrl_NoRF_Init(); + 5058: e3ffff20 bsr 0x4e98 // 4e98 + Dbg_Println(DBG_BIT_SYS_STATUS, "NoRF"); + 505c: 102d lrw r1, 0x60c4 // 5090 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 505e: 3000 movi r0, 0 + 5060: e3fffab4 bsr 0x45c8 // 45c8 + 5064: 07f0 br 0x5044 // 5044 + else if(rf_exist == 0x00) //带无线模块初始化 + 5066: 3b40 cmpnei r3, 0 + 5068: 0bee bt 0x5044 // 5044 + LogicCtrl_Init(); + 506a: e3fffe81 bsr 0x4d6c // 4d6c + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 506e: 102a lrw r1, 0x60c6 // 5094 + 5070: 07f7 br 0x505e // 505e + 5072: 0000 bkpt + 5074: 200000a2 .long 0x200000a2 + 5078: 200000ac .long 0x200000ac + 507c: 200000b8 .long 0x200000b8 + 5080: 200000a8 .long 0x200000a8 + 5084: 20000048 .long 0x20000048 + 5088: 200000a0 .long 0x200000a0 + 508c: 200000a1 .long 0x200000a1 + 5090: 000060c4 .long 0x000060c4 + 5094: 000060c6 .long 0x000060c6 + +Disassembly of section .text.Led_Task: + +00005098 : + +} + + + +void Led_Task(void){ + 5098: 14d1 push r4, r15 + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 509a: 1079 lrw r3, 0x20000428 // 50fc + 509c: 8347 ld.b r2, (r3, 0x7) + 509e: 3a41 cmpnei r2, 1 + 50a0: 0807 bt 0x50ae // 50ae + { + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 50a2: 1078 lrw r3, 0x2000004c // 5100 + 50a4: 3101 movi r1, 1 + 50a6: 9300 ld.w r0, (r3, 0x0) + 50a8: e3fff157 bsr 0x3356 // 3356 + dm_in.DM_Led_Tick = SysTick_1ms; + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + } + } + } +} + 50ac: 1491 pop r4, r15 + if (CardInfo.RC522_Reset_Falg == 1) + 50ae: 231f addi r3, 32 + 50b0: 8368 ld.b r3, (r3, 0x8) + 50b2: 3b41 cmpnei r3, 1 + 50b4: 1074 lrw r3, 0x20000494 // 5104 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) + 50b6: 8326 ld.b r1, (r3, 0x6) + 50b8: 8345 ld.b r2, (r3, 0x5) + 50ba: 4128 lsli r1, r1, 8 + 50bc: 6c48 or r1, r2 + 50be: 8347 ld.b r2, (r3, 0x7) + 50c0: 4250 lsli r2, r2, 16 + 50c2: 6c48 or r1, r2 + 50c4: 8348 ld.b r2, (r3, 0x8) + 50c6: 1011 lrw r0, 0x200000b8 // 5108 + 50c8: 4258 lsli r2, r2, 24 + 50ca: 9080 ld.w r4, (r0, 0x0) + 50cc: 6c84 or r2, r1 + 50ce: 610a subu r4, r2 + if (CardInfo.RC522_Reset_Falg == 1) + 50d0: 0813 bt 0x50f6 // 50f6 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) + 50d2: 3263 movi r2, 99 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) + 50d4: 6508 cmphs r2, r4 + 50d6: 0beb bt 0x50ac // 50ac + dm_in.DM_Led_Tick = SysTick_1ms; + 50d8: 9040 ld.w r2, (r0, 0x0) + 50da: 5b32 addi r1, r3, 5 + 50dc: a345 st.b r2, (r3, 0x5) + 50de: 4a68 lsri r3, r2, 8 + 50e0: a161 st.b r3, (r1, 0x1) + 50e2: 4a70 lsri r3, r2, 16 + 50e4: a162 st.b r3, (r1, 0x2) + 50e6: 4a58 lsri r2, r2, 24 + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 50e8: 1066 lrw r3, 0x2000004c // 5100 + 50ea: 9300 ld.w r0, (r3, 0x0) + dm_in.DM_Led_Tick = SysTick_1ms; + 50ec: a143 st.b r2, (r1, 0x3) + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 50ee: 3101 movi r1, 1 + 50f0: e3fff137 bsr 0x335e // 335e +} + 50f4: 07dc br 0x50ac // 50ac + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) + 50f6: 1046 lrw r2, 0x1f3 // 510c + 50f8: 07ee br 0x50d4 // 50d4 + 50fa: 0000 bkpt + 50fc: 20000428 .long 0x20000428 + 5100: 2000004c .long 0x2000004c + 5104: 20000494 .long 0x20000494 + 5108: 200000b8 .long 0x200000b8 + 510c: 000001f3 .long 0x000001f3 + +Disassembly of section .text.button_init: + +00005110 : + * @param active_level: pressed GPIO level. + * @param button_id: the button id. + * @retval None + */ +void button_init(struct Button* handle, uint8_t(*pin_level)(uint8_t), uint8_t active_level, uint8_t button_id) +{ + 5110: 14d4 push r4-r7, r15 + 5112: 6dc7 mov r7, r1 + 5114: 6d8b mov r6, r2 + memset(handle, 0, sizeof(struct Button)); + 5116: 3100 movi r1, 0 + 5118: 3230 movi r2, 48 +{ + 511a: 6d03 mov r4, r0 + 511c: 6d4f mov r5, r3 + memset(handle, 0, sizeof(struct Button)); + 511e: e3ffe47f bsr 0x1a1c // 1a1c <__memset_fast> + handle->event = (uint8_t)NONE_PRESS; + 5122: 3300 movi r3, 0 + 5124: 2b6f subi r3, 112 + 5126: a462 st.b r3, (r4, 0x2) + handle->hal_button_Level = pin_level; + 5128: b4e2 st.w r7, (r4, 0x8) + handle->button_level = handle->hal_button_Level(button_id); + 512a: 6c17 mov r0, r5 + 512c: 7bdd jsr r7 + 512e: 8443 ld.b r2, (r4, 0x3) + 5130: 337f movi r3, 127 + 5132: 688c and r2, r3 + 5134: 4007 lsli r0, r0, 7 + 5136: 6c08 or r0, r2 + handle->active_level = active_level; + 5138: 3201 movi r2, 1 + 513a: 6988 and r6, r2 + 513c: 7480 zextb r2, r0 + 513e: 46c6 lsli r6, r6, 6 + 5140: 3a86 bclri r2, 6 + 5142: 6c98 or r2, r6 + 5144: a443 st.b r2, (r4, 0x3) + handle->button_id = button_id; + 5146: a4a4 st.b r5, (r4, 0x4) +} + 5148: 1494 pop r4-r7, r15 + +Disassembly of section .text.button_attach: + +0000514a : + * @param cb: callback function. + * @retval None + */ +void button_attach(struct Button* handle, PressEvent event, BtnCallback cb) +{ + handle->cb[event] = cb; + 514a: 2102 addi r1, 3 + 514c: 4122 lsli r1, r1, 2 + 514e: 6040 addu r1, r0 + 5150: b140 st.w r2, (r1, 0x0) +} + 5152: 783c jmp r15 + +Disassembly of section .text.button_handler: + +00005154 : + + + + +void button_handler(struct Button* handle) +{ + 5154: 14d3 push r4-r6, r15 + 5156: 6d03 mov r4, r0 + uint8_t read_gpio_level = handle->hal_button_Level(handle->button_id); + 5158: 9462 ld.w r3, (r4, 0x8) + 515a: 8004 ld.b r0, (r0, 0x4) + 515c: 7bcd jsr r3 + + //ticks counter working.. + if((handle->state) > 0) handle->ticks++; + 515e: 8463 ld.b r3, (r4, 0x3) + 5160: 433d lsli r1, r3, 29 + 5162: 493d lsri r1, r1, 29 + 5164: 3940 cmpnei r1, 0 + 5166: 0c04 bf 0x516e // 516e + 5168: 8c40 ld.h r2, (r4, 0x0) + 516a: 2200 addi r2, 1 + 516c: ac40 st.h r2, (r4, 0x0) + + /*------------button debounce handle---------------*/ + if(read_gpio_level != handle->button_level) { //not equal to prev one + 516e: 4b47 lsri r2, r3, 7 + 5170: 640a cmpne r2, r0 + 5172: 0c21 bf 0x51b4 // 51b4 + //continue read 3 times same new level change + if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) { + 5174: 435a lsli r2, r3, 26 + 5176: 4a5d lsri r2, r2, 29 + 5178: 3507 movi r5, 7 + 517a: 2200 addi r2, 1 + 517c: 6894 and r2, r5 + 517e: 7488 zextb r2, r2 + 5180: 6948 and r5, r2 + 5182: 45c3 lsli r6, r5, 3 + 5184: 3538 movi r5, 56 + 5186: 68d5 andn r3, r5 + 5188: 6d8c or r6, r3 + 518a: 3a02 cmphsi r2, 3 + 518c: a4c3 st.b r6, (r4, 0x3) + 518e: 0c09 bf 0x51a0 // 51a0 + handle->button_level = read_gpio_level; + 5190: 4067 lsli r3, r0, 7 + 5192: 327f movi r2, 127 + 5194: 8403 ld.b r0, (r4, 0x3) + 5196: 6808 and r0, r2 + 5198: 6c0c or r0, r3 + handle->debounce_cnt = 0; + 519a: 7400 zextb r0, r0 + 519c: 6815 andn r0, r5 + 519e: a403 st.b r0, (r4, 0x3) + } else { //leved not change ,counter reset. + handle->debounce_cnt = 0; + } + + /*-----------------State machine-------------------*/ + switch (handle->state) { + 51a0: 3941 cmpnei r1, 1 + 51a2: 0c2f bf 0x5200 // 5200 + 51a4: 3940 cmpnei r1, 0 + 51a6: 0c0b bf 0x51bc // 51bc + 51a8: 3945 cmpnei r1, 5 + 51aa: 0c53 bf 0x5250 // 5250 +// Dbg_Println(DBG_BIT_SYS_STATUS,"key state long press release"); + handle->state = 0; //reset + } + break; + default: + handle->state = 0; //reset + 51ac: 8463 ld.b r3, (r4, 0x3) + 51ae: 3207 movi r2, 7 + 51b0: 68c9 andn r3, r2 + 51b2: 0420 br 0x51f2 // 51f2 + handle->debounce_cnt = 0; + 51b4: 3238 movi r2, 56 + 51b6: 68c9 andn r3, r2 + 51b8: a463 st.b r3, (r4, 0x3) + 51ba: 07f3 br 0x51a0 // 51a0 + if(handle->button_level == handle->active_level) { //start press down + 51bc: 8463 ld.b r3, (r4, 0x3) + 51be: 4359 lsli r2, r3, 25 + 51c0: 4a5f lsri r2, r2, 31 + 51c2: 4b67 lsri r3, r3, 7 + 51c4: 648e cmpne r3, r2 + 51c6: 8462 ld.b r3, (r4, 0x2) + handle->event = (uint8_t)PRESS_DOWN; + 51c8: 320f movi r2, 15 + 51ca: 68c8 and r3, r2 + if(handle->button_level == handle->active_level) { //start press down + 51cc: 0815 bt 0x51f6 // 51f6 + handle->event = (uint8_t)PRESS_DOWN; + 51ce: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_DOWN); + 51d0: 9463 ld.w r3, (r4, 0xc) + 51d2: 3b40 cmpnei r3, 0 + 51d4: 0c03 bf 0x51da // 51da + 51d6: 6c13 mov r0, r4 + 51d8: 7bcd jsr r3 + handle->ticks = 0; + 51da: 3300 movi r3, 0 + handle->repeat = 1; + 51dc: 8442 ld.b r2, (r4, 0x2) + handle->ticks = 0; + 51de: ac60 st.h r3, (r4, 0x0) + handle->repeat = 1; + 51e0: 330f movi r3, 15 + 51e2: 688d andn r2, r3 + 51e4: 3101 movi r1, 1 + 51e6: 6c84 or r2, r1 + 51e8: a442 st.b r2, (r4, 0x2) + handle->state = 1; + 51ea: 8463 ld.b r3, (r4, 0x3) + 51ec: 3207 movi r2, 7 + 51ee: 68c9 andn r3, r2 + 51f0: 6cc4 or r3, r1 + handle->state = 0; //reset + 51f2: a463 st.b r3, (r4, 0x3) + break; + } +} + 51f4: 0405 br 0x51fe // 51fe + handle->event = (uint8_t)NONE_PRESS; + 51f6: 3200 movi r2, 0 + 51f8: 2a6f subi r2, 112 + 51fa: 6cc8 or r3, r2 + 51fc: a462 st.b r3, (r4, 0x2) +} + 51fe: 1493 pop r4-r6, r15 + if(handle->button_level != handle->active_level) { //released press up + 5200: 8463 ld.b r3, (r4, 0x3) + 5202: 4359 lsli r2, r3, 25 + 5204: 4a5f lsri r2, r2, 31 + 5206: 4b67 lsri r3, r3, 7 + 5208: 648e cmpne r3, r2 + 520a: 0c0e bf 0x5226 // 5226 + handle->event = (uint8_t)PRESS_UP; + 520c: 8462 ld.b r3, (r4, 0x2) + 520e: 320f movi r2, 15 + 5210: 68c8 and r3, r2 + 5212: 3ba4 bseti r3, 4 + 5214: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_UP); + 5216: 9464 ld.w r3, (r4, 0x10) + 5218: 3b40 cmpnei r3, 0 + 521a: 0c03 bf 0x5220 // 5220 + 521c: 6c13 mov r0, r4 + 521e: 7bcd jsr r3 + handle->ticks = 0; + 5220: 3300 movi r3, 0 + 5222: ac60 st.h r3, (r4, 0x0) + 5224: 07c4 br 0x51ac // 51ac + } else if(handle->ticks > LONG_TICKS) { + 5226: 8c40 ld.h r2, (r4, 0x0) + 5228: 33c8 movi r3, 200 + 522a: 648c cmphs r3, r2 + 522c: 0be9 bt 0x51fe // 51fe + handle->event = (uint8_t)LONG_PRESS_START; + 522e: 8462 ld.b r3, (r4, 0x2) + 5230: 320f movi r2, 15 + 5232: 68c8 and r3, r2 + 5234: 3ba4 bseti r3, 4 + 5236: 3ba6 bseti r3, 6 + 5238: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_START); + 523a: 9468 ld.w r3, (r4, 0x20) + 523c: 3b40 cmpnei r3, 0 + 523e: 0c03 bf 0x5244 // 5244 + 5240: 6c13 mov r0, r4 + 5242: 7bcd jsr r3 + handle->state = 5; + 5244: 8463 ld.b r3, (r4, 0x3) + 5246: 3207 movi r2, 7 + 5248: 68c9 andn r3, r2 + 524a: 3ba0 bseti r3, 0 + 524c: 3ba2 bseti r3, 2 + 524e: 07d2 br 0x51f2 // 51f2 + if(handle->button_level == handle->active_level) { + 5250: 8463 ld.b r3, (r4, 0x3) + 5252: 4359 lsli r2, r3, 25 + 5254: 4a5f lsri r2, r2, 31 + 5256: 4b67 lsri r3, r3, 7 + 5258: 648e cmpne r3, r2 + 525a: 0fd2 bf 0x51fe // 51fe + handle->event = (uint8_t)LONG_PRESS_RELEASE; + 525c: 8462 ld.b r3, (r4, 0x2) + 525e: 320f movi r2, 15 + 5260: 68c8 and r3, r2 + 5262: 3270 movi r2, 112 + 5264: 6cc8 or r3, r2 + 5266: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_RELEASE); + 5268: 946a ld.w r3, (r4, 0x28) + 526a: 3b40 cmpnei r3, 0 + 526c: 0fa0 bf 0x51ac // 51ac + 526e: 6c13 mov r0, r4 + 5270: 7bcd jsr r3 + 5272: 079d br 0x51ac // 51ac + +Disassembly of section .text.button_start: + +00005274 : + * @param handle: target handle strcut. + * @retval 0: succeed. -1: already exist. + */ +int button_start(struct Button* handle) +{ + struct Button* target = head_handle; + 5274: 1068 lrw r3, 0x200002f8 // 5294 + 5276: 9320 ld.w r1, (r3, 0x0) + 5278: 6c87 mov r2, r1 + while(target) { + 527a: 3a40 cmpnei r2, 0 + 527c: 0805 bt 0x5286 // 5286 + if(target == handle) return -1; //already exist. + target = target->next; + } + handle->next = head_handle; + 527e: b02b st.w r1, (r0, 0x2c) + head_handle = handle; + 5280: b300 st.w r0, (r3, 0x0) + return 0; + 5282: 3000 movi r0, 0 +} + 5284: 783c jmp r15 + if(target == handle) return -1; //already exist. + 5286: 640a cmpne r2, r0 + 5288: 0c03 bf 0x528e // 528e + target = target->next; + 528a: 924b ld.w r2, (r2, 0x2c) + 528c: 07f7 br 0x527a // 527a + if(target == handle) return -1; //already exist. + 528e: 3000 movi r0, 0 + 5290: 2800 subi r0, 1 + 5292: 07f9 br 0x5284 // 5284 + 5294: 200002f8 .long 0x200002f8 + +Disassembly of section .text.button_ticks: + +00005298 : + * @brief background ticks, timer repeat invoking interval 5ms. + * @param None. + * @retval None + */ +void button_ticks() +{ + 5298: 14d1 push r4, r15 + struct Button* target; + for(target=head_handle; target; target=target->next) { + 529a: 1066 lrw r3, 0x200002f8 // 52b0 + 529c: 9380 ld.w r4, (r3, 0x0) + 529e: 3c40 cmpnei r4, 0 + 52a0: 0802 bt 0x52a4 // 52a4 + button_handler(target); + } +} + 52a2: 1491 pop r4, r15 + button_handler(target); + 52a4: 6c13 mov r0, r4 + 52a6: e3ffff57 bsr 0x5154 // 5154 + for(target=head_handle; target; target=target->next) { + 52aa: 948b ld.w r4, (r4, 0x2c) + 52ac: 07f9 br 0x529e // 529e + 52ae: 0000 bkpt + 52b0: 200002f8 .long 0x200002f8 + +Disassembly of section .text.read_button_GPIO: + +000052b4 : + +//////////////////////////////////////////////////////////////////////// + + +uint8_t read_button_GPIO(uint8_t button_id) +{ + 52b4: 14d0 push r15 + uint8_t state = 0; + state = GPIO_Read_Status(GPIOA0,button_id); + 52b6: 1064 lrw r3, 0x2000004c // 52c4 +{ + 52b8: 6c43 mov r1, r0 + state = GPIO_Read_Status(GPIOA0,button_id); + 52ba: 9300 ld.w r0, (r3, 0x0) + 52bc: e3fff05c bsr 0x3374 // 3374 + return state; + 52c0: 1490 pop r15 + 52c2: 0000 bkpt + 52c4: 2000004c .long 0x2000004c + +Disassembly of section .text.TK_Sampling_prog: + +000052c8 : + 52c8: 14c4 push r4-r7 + 52ca: 1072 lrw r3, 0x20000054 // 5310 + 52cc: 1012 lrw r0, 0x20000746 // 5314 + 52ce: 1093 lrw r4, 0x200005b7 // 5318 + 52d0: 6d83 mov r6, r0 + 52d2: 93a0 ld.w r5, (r3, 0x0) + 52d4: 3300 movi r3, 0 + 52d6: 4342 lsli r2, r3, 2 + 52d8: 6094 addu r2, r5 + 52da: 9220 ld.w r1, (r2, 0x0) + 52dc: 4341 lsli r2, r3, 1 + 52de: 6080 addu r2, r0 + 52e0: 7445 zexth r1, r1 + 52e2: aa20 st.h r1, (r2, 0x0) + 52e4: 8440 ld.b r2, (r4, 0x0) + 52e6: 3a41 cmpnei r2, 1 + 52e8: 080f bt 0x5306 // 5306 + 52ea: 3300 movi r3, 0 + 52ec: 10ec lrw r7, 0x200004a0 // 531c + 52ee: 4341 lsli r2, r3, 1 + 52f0: 5e28 addu r1, r6, r2 + 52f2: 8920 ld.h r1, (r1, 0x0) + 52f4: 2300 addi r3, 1 + 52f6: 7445 zexth r1, r1 + 52f8: 609c addu r2, r7 + 52fa: 3b51 cmpnei r3, 17 + 52fc: aa20 st.h r1, (r2, 0x0) + 52fe: 0bf8 bt 0x52ee // 52ee + 5300: 3300 movi r3, 0 + 5302: a460 st.b r3, (r4, 0x0) + 5304: 3311 movi r3, 17 + 5306: 2300 addi r3, 1 + 5308: 74cc zextb r3, r3 + 530a: 3b10 cmphsi r3, 17 + 530c: 0fe5 bf 0x52d6 // 52d6 + 530e: 1484 pop r4-r7 + 5310: 20000054 .long 0x20000054 + 5314: 20000746 .long 0x20000746 + 5318: 200005b7 .long 0x200005b7 + 531c: 200004a0 .long 0x200004a0 + +Disassembly of section .text.TKEYIntHandler: + +00005320 : + 5320: 1460 nie + 5322: 1462 ipush + 5324: 14d1 push r4, r15 + 5326: 109e lrw r4, 0x2000006c // 539c + 5328: 9460 ld.w r3, (r4, 0x0) + 532a: 3b40 cmpnei r3, 0 + 532c: 080b bt 0x5342 // 5342 + 532e: 3301 movi r3, 1 + 5330: b460 st.w r3, (r4, 0x0) + 5332: 107c lrw r3, 0x20000534 // 53a0 + 5334: 8360 ld.b r3, (r3, 0x0) + 5336: 3b41 cmpnei r3, 1 + 5338: 0805 bt 0x5342 // 5342 + 533a: e3ffffc7 bsr 0x52c8 // 52c8 + 533e: 3301 movi r3, 1 + 5340: a464 st.b r3, (r4, 0x4) + 5342: 1079 lrw r3, 0x20000058 // 53a4 + 5344: 3101 movi r1, 1 + 5346: 9360 ld.w r3, (r3, 0x0) + 5348: 934a ld.w r2, (r3, 0x28) + 534a: 6884 and r2, r1 + 534c: 3a40 cmpnei r2, 0 + 534e: 0c02 bf 0x5352 // 5352 + 5350: b32c st.w r1, (r3, 0x30) + 5352: 934a ld.w r2, (r3, 0x28) + 5354: 3102 movi r1, 2 + 5356: 6884 and r2, r1 + 5358: 3a40 cmpnei r2, 0 + 535a: 0c02 bf 0x535e // 535e + 535c: b32c st.w r1, (r3, 0x30) + 535e: 934a ld.w r2, (r3, 0x28) + 5360: 3104 movi r1, 4 + 5362: 6884 and r2, r1 + 5364: 3a40 cmpnei r2, 0 + 5366: 0c02 bf 0x536a // 536a + 5368: b32c st.w r1, (r3, 0x30) + 536a: 934a ld.w r2, (r3, 0x28) + 536c: 3108 movi r1, 8 + 536e: 6884 and r2, r1 + 5370: 3a40 cmpnei r2, 0 + 5372: 0c02 bf 0x5376 // 5376 + 5374: b32c st.w r1, (r3, 0x30) + 5376: 934a ld.w r2, (r3, 0x28) + 5378: 3110 movi r1, 16 + 537a: 6884 and r2, r1 + 537c: 3a40 cmpnei r2, 0 + 537e: 0c02 bf 0x5382 // 5382 + 5380: b32c st.w r1, (r3, 0x30) + 5382: 934a ld.w r2, (r3, 0x28) + 5384: 3120 movi r1, 32 + 5386: 6884 and r2, r1 + 5388: 3a40 cmpnei r2, 0 + 538a: 0c02 bf 0x538e // 538e + 538c: b32c st.w r1, (r3, 0x30) + 538e: d9ee2001 ld.w r15, (r14, 0x4) + 5392: 9880 ld.w r4, (r14, 0x0) + 5394: 1402 addi r14, r14, 8 + 5396: 1463 ipop + 5398: 1461 nir + 539a: 0000 bkpt + 539c: 2000006c .long 0x2000006c + 53a0: 20000534 .long 0x20000534 + 53a4: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +000053a8 : + 53a8: 14c2 push r4-r5 + 53aa: 3200 movi r2, 0 + 53ac: 3000 movi r0, 0 + 53ae: 1088 lrw r4, 0x200005d4 // 53cc + 53b0: 3501 movi r5, 1 + 53b2: 3120 movi r1, 32 + 53b4: 9460 ld.w r3, (r4, 0x0) + 53b6: 70c9 lsr r3, r2 + 53b8: 68d4 and r3, r5 + 53ba: 3b40 cmpnei r3, 0 + 53bc: 0c02 bf 0x53c0 // 53c0 + 53be: 2000 addi r0, 1 + 53c0: 2200 addi r2, 1 + 53c2: 644a cmpne r2, r1 + 53c4: 0bf8 bt 0x53b4 // 53b4 + 53c6: 7400 zextb r0, r0 + 53c8: 1482 pop r4-r5 + 53ca: 0000 bkpt + 53cc: 200005d4 .long 0x200005d4 + +Disassembly of section .text.TK_Scan_Start: + +000053d0 : + 53d0: 1046 lrw r2, 0x2000006c // 53e8 + 53d2: 8264 ld.b r3, (r2, 0x4) + 53d4: 74cc zextb r3, r3 + 53d6: 3b41 cmpnei r3, 1 + 53d8: 0807 bt 0x53e6 // 53e6 + 53da: 1025 lrw r1, 0x20000058 // 53ec + 53dc: 9120 ld.w r1, (r1, 0x0) + 53de: b162 st.w r3, (r1, 0x8) + 53e0: 3300 movi r3, 0 + 53e2: b260 st.w r3, (r2, 0x0) + 53e4: a264 st.b r3, (r2, 0x4) + 53e6: 783c jmp r15 + 53e8: 2000006c .long 0x2000006c + 53ec: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +000053f0 : + 53f0: 14d4 push r4-r7, r15 + 53f2: 1425 subi r14, r14, 20 + 53f4: 1271 lrw r3, 0x20000328 // 5538 + 53f6: 8360 ld.b r3, (r3, 0x0) + 53f8: b860 st.w r3, (r14, 0x0) + 53fa: 3400 movi r4, 0 + 53fc: 1270 lrw r3, 0x200002fc // 553c + 53fe: 8360 ld.b r3, (r3, 0x0) + 5400: b861 st.w r3, (r14, 0x4) + 5402: 12f0 lrw r7, 0x2000054a // 5540 + 5404: 1270 lrw r3, 0x20000305 // 5544 + 5406: 83a0 ld.b r5, (r3, 0x0) + 5408: 1270 lrw r3, 0x20000304 // 5548 + 540a: 8360 ld.b r3, (r3, 0x0) + 540c: b862 st.w r3, (r14, 0x8) + 540e: 6d9f mov r6, r7 + 5410: 126f lrw r3, 0x20000746 // 554c + 5412: b863 st.w r3, (r14, 0xc) + 5414: 4461 lsli r3, r4, 1 + 5416: 9843 ld.w r2, (r14, 0xc) + 5418: 608c addu r2, r3 + 541a: 122e lrw r1, 0x200004a0 // 5550 + 541c: 604c addu r1, r3 + 541e: 8a40 ld.h r2, (r2, 0x0) + 5420: 8920 ld.h r1, (r1, 0x0) + 5422: 6086 subu r2, r1 + 5424: 748b sexth r2, r2 + 5426: 5f2c addu r1, r7, r3 + 5428: a940 st.h r2, (r1, 0x0) + 542a: 8940 ld.h r2, (r1, 0x0) + 542c: 748b sexth r2, r2 + 542e: 3adf btsti r2, 31 + 5430: 1249 lrw r2, 0x20000702 // 5554 + 5432: 608c addu r2, r3 + 5434: 0c37 bf 0x54a2 // 54a2 + 5436: 3100 movi r1, 0 + 5438: aa20 st.h r1, (r2, 0x0) + 543a: 9840 ld.w r2, (r14, 0x0) + 543c: 3a01 cmphsi r2, 2 + 543e: 0c6d bf 0x5518 // 5518 + 5440: 4461 lsli r3, r4, 1 + 5442: 5e2c addu r1, r6, r3 + 5444: 1205 lrw r0, 0x20000356 // 5558 + 5446: 8940 ld.h r2, (r1, 0x0) + 5448: 60c0 addu r3, r0 + 544a: 748b sexth r2, r2 + 544c: 8b60 ld.h r3, (r3, 0x0) + 544e: 648d cmplt r3, r2 + 5450: 9840 ld.w r2, (r14, 0x0) + 5452: 7cc8 mult r3, r2 + 5454: 0c2a bf 0x54a8 // 54a8 + 5456: 8940 ld.h r2, (r1, 0x0) + 5458: 748b sexth r2, r2 + 545a: 64c9 cmplt r2, r3 + 545c: 0c26 bf 0x54a8 // 54a8 + 545e: 1240 lrw r2, 0x20000538 // 555c + 5460: 6090 addu r2, r4 + 5462: 8260 ld.b r3, (r2, 0x0) + 5464: 2300 addi r3, 1 + 5466: 74cc zextb r3, r3 + 5468: a260 st.b r3, (r2, 0x0) + 546a: 3100 movi r1, 0 + 546c: 117d lrw r3, 0x2000051e // 5560 + 546e: 60d0 addu r3, r4 + 5470: a320 st.b r1, (r3, 0x0) + 5472: 117d lrw r3, 0x200005fa // 5564 + 5474: 60d0 addu r3, r4 + 5476: a320 st.b r1, (r3, 0x0) + 5478: 117c lrw r3, 0x20000674 // 5568 + 547a: 60d0 addu r3, r4 + 547c: a320 st.b r1, (r3, 0x0) + 547e: 8260 ld.b r3, (r2, 0x0) + 5480: 9821 ld.w r1, (r14, 0x4) + 5482: 64c4 cmphs r1, r3 + 5484: 081f bt 0x54c2 // 54c2 + 5486: 3d40 cmpnei r5, 0 + 5488: 0852 bt 0x552c // 552c + 548a: 1139 lrw r1, 0x20000530 // 556c + 548c: 9160 ld.w r3, (r1, 0x0) + 548e: 3b40 cmpnei r3, 0 + 5490: 0806 bt 0x549c // 549c + 5492: 9100 ld.w r0, (r1, 0x0) + 5494: 3301 movi r3, 1 + 5496: 70d0 lsl r3, r4 + 5498: 6cc0 or r3, r0 + 549a: b160 st.w r3, (r1, 0x0) + 549c: 3300 movi r3, 0 + 549e: a260 st.b r3, (r2, 0x0) + 54a0: 0411 br 0x54c2 // 54c2 + 54a2: 8920 ld.h r1, (r1, 0x0) + 54a4: 7445 zexth r1, r1 + 54a6: 07c9 br 0x5438 // 5438 + 54a8: 4441 lsli r2, r4, 1 + 54aa: 6098 addu r2, r6 + 54ac: 8a40 ld.h r2, (r2, 0x0) + 54ae: 748b sexth r2, r2 + 54b0: 648d cmplt r3, r2 + 54b2: 0c08 bf 0x54c2 // 54c2 + 54b4: 3300 movi r3, 0 + 54b6: 114e lrw r2, 0x20000530 // 556c + 54b8: 2b01 subi r3, 2 + 54ba: 9220 ld.w r1, (r2, 0x0) + 54bc: 70d3 rotl r3, r4 + 54be: 68c4 and r3, r1 + 54c0: b260 st.w r3, (r2, 0x0) + 54c2: 4441 lsli r2, r4, 1 + 54c4: 5e68 addu r3, r6, r2 + 54c6: 8b60 ld.h r3, (r3, 0x0) + 54c8: 74cf sexth r3, r3 + 54ca: b864 st.w r3, (r14, 0x10) + 54cc: 3105 movi r1, 5 + 54ce: 1163 lrw r3, 0x20000356 // 5558 + 54d0: 608c addu r2, r3 + 54d2: 8a00 ld.h r0, (r2, 0x0) + 54d4: 4002 lsli r0, r0, 2 + 54d6: e3fff78f bsr 0x43f4 // 43f4 <__divsi3> + 54da: 9864 ld.w r3, (r14, 0x10) + 54dc: 640d cmplt r3, r0 + 54de: 0c18 bf 0x550e // 550e + 54e0: 1140 lrw r2, 0x2000051e // 5560 + 54e2: 6090 addu r2, r4 + 54e4: 8260 ld.b r3, (r2, 0x0) + 54e6: 2300 addi r3, 1 + 54e8: 74cc zextb r3, r3 + 54ea: a260 st.b r3, (r2, 0x0) + 54ec: 3100 movi r1, 0 + 54ee: 107c lrw r3, 0x20000538 // 555c + 54f0: 60d0 addu r3, r4 + 54f2: a320 st.b r1, (r3, 0x0) + 54f4: 8260 ld.b r3, (r2, 0x0) + 54f6: 9822 ld.w r1, (r14, 0x8) + 54f8: 64c4 cmphs r1, r3 + 54fa: 080a bt 0x550e // 550e + 54fc: 3300 movi r3, 0 + 54fe: 103c lrw r1, 0x20000530 // 556c + 5500: 2b01 subi r3, 2 + 5502: 9100 ld.w r0, (r1, 0x0) + 5504: 70d3 rotl r3, r4 + 5506: 68c0 and r3, r0 + 5508: b160 st.w r3, (r1, 0x0) + 550a: 3300 movi r3, 0 + 550c: a260 st.b r3, (r2, 0x0) + 550e: 2400 addi r4, 1 + 5510: 3c51 cmpnei r4, 17 + 5512: 0b81 bt 0x5414 // 5414 + 5514: 1405 addi r14, r14, 20 + 5516: 1494 pop r4-r7, r15 + 5518: 60d8 addu r3, r6 + 551a: 4441 lsli r2, r4, 1 + 551c: 102f lrw r1, 0x20000356 // 5558 + 551e: 8b60 ld.h r3, (r3, 0x0) + 5520: 6084 addu r2, r1 + 5522: 74cf sexth r3, r3 + 5524: 8a40 ld.h r2, (r2, 0x0) + 5526: 64c9 cmplt r2, r3 + 5528: 0fcd bf 0x54c2 // 54c2 + 552a: 079a br 0x545e // 545e + 552c: 3d41 cmpnei r5, 1 + 552e: 0bb7 bt 0x549c // 549c + 5530: 102f lrw r1, 0x20000530 // 556c + 5532: 6cd7 mov r3, r5 + 5534: 9100 ld.w r0, (r1, 0x0) + 5536: 07b0 br 0x5496 // 5496 + 5538: 20000328 .long 0x20000328 + 553c: 200002fc .long 0x200002fc + 5540: 2000054a .long 0x2000054a + 5544: 20000305 .long 0x20000305 + 5548: 20000304 .long 0x20000304 + 554c: 20000746 .long 0x20000746 + 5550: 200004a0 .long 0x200004a0 + 5554: 20000702 .long 0x20000702 + 5558: 20000356 .long 0x20000356 + 555c: 20000538 .long 0x20000538 + 5560: 2000051e .long 0x2000051e + 5564: 200005fa .long 0x200005fa + 5568: 20000674 .long 0x20000674 + 556c: 20000530 .long 0x20000530 + +Disassembly of section .text.TK_overflow_predict: + +00005570 : + 5570: 14d4 push r4-r7, r15 + 5572: 1421 subi r14, r14, 4 + 5574: 11d9 lrw r6, 0x2000006c // 5658 + 5576: 8665 ld.b r3, (r6, 0x5) + 5578: 3b41 cmpnei r3, 1 + 557a: 085f bt 0x5638 // 5638 + 557c: 1158 lrw r2, 0x20000650 // 565c + 557e: 8260 ld.b r3, (r2, 0x0) + 5580: 2300 addi r3, 1 + 5582: 74cc zextb r3, r3 + 5584: a260 st.b r3, (r2, 0x0) + 5586: 8260 ld.b r3, (r2, 0x0) + 5588: 1136 lrw r1, 0x20000329 // 5660 + 558a: 8120 ld.b r1, (r1, 0x0) + 558c: 64c4 cmphs r1, r3 + 558e: 0855 bt 0x5638 // 5638 + 5590: 3300 movi r3, 0 + 5592: a260 st.b r3, (r2, 0x0) + 5594: 3500 movi r5, 0 + 5596: 11f4 lrw r7, 0x2000032c // 5664 + 5598: 2605 addi r6, 6 + 559a: 9760 ld.w r3, (r7, 0x0) + 559c: 70d5 lsr r3, r5 + 559e: 3201 movi r2, 1 + 55a0: 68c8 and r3, r2 + 55a2: 3b40 cmpnei r3, 0 + 55a4: 0c34 bf 0x560c // 560c + 55a6: 4581 lsli r4, r5, 1 + 55a8: 5e70 addu r3, r6, r4 + 55aa: 8b00 ld.h r0, (r3, 0x0) + 55ac: e3ffdffa bsr 0x15a0 // 15a0 <__floatunsidf> + 55b0: 6cc7 mov r3, r1 + 55b2: 3180 movi r1, 128 + 55b4: 6c83 mov r2, r0 + 55b6: 4137 lsli r1, r1, 23 + 55b8: 3000 movi r0, 0 + 55ba: e3ffd5fd bsr 0x1b4 // 1b4 <__GI_pow> + 55be: 116b lrw r3, 0x20000332 // 5668 + 55c0: 60d0 addu r3, r4 + 55c2: 8b60 ld.h r3, (r3, 0x0) + 55c4: 4364 lsli r3, r3, 4 + 55c6: 230e addi r3, 15 + 55c8: b860 st.w r3, (r14, 0x0) + 55ca: e3ffdba3 bsr 0xd10 // d10 <__fixunsdfsi> + 55ce: 9860 ld.w r3, (r14, 0x0) + 55d0: 7cc0 mult r3, r0 + 55d2: 1147 lrw r2, 0x200006e0 // 566c + 55d4: 740d zexth r0, r3 + 55d6: 6090 addu r2, r4 + 55d8: 1166 lrw r3, 0x20000746 // 5670 + 55da: 60d0 addu r3, r4 + 55dc: aa00 st.h r0, (r2, 0x0) + 55de: 8b60 ld.h r3, (r3, 0x0) + 55e0: 8a00 ld.h r0, (r2, 0x0) + 55e2: 7401 zexth r0, r0 + 55e4: 325f movi r2, 95 + 55e6: 74cd zexth r3, r3 + 55e8: 7c08 mult r0, r2 + 55ea: 3164 movi r1, 100 + 55ec: b860 st.w r3, (r14, 0x0) + 55ee: e3fff703 bsr 0x43f4 // 43f4 <__divsi3> + 55f2: 9860 ld.w r3, (r14, 0x0) + 55f4: 64c1 cmplt r0, r3 + 55f6: 0c0b bf 0x560c // 560c + 55f8: 107f lrw r3, 0x20000306 // 5674 + 55fa: 610c addu r4, r3 + 55fc: 8c60 ld.h r3, (r4, 0x0) + 55fe: 3b06 cmphsi r3, 7 + 5600: 0806 bt 0x560c // 560c + 5602: 2300 addi r3, 1 + 5604: ac60 st.h r3, (r4, 0x0) + 5606: 3201 movi r2, 1 + 5608: 107c lrw r3, 0x200005a5 // 5678 + 560a: a340 st.b r2, (r3, 0x0) + 560c: 2500 addi r5, 1 + 560e: 3d51 cmpnei r5, 17 + 5610: 0bc5 bt 0x559a // 559a + 5612: 107a lrw r3, 0x200005a5 // 5678 + 5614: 8340 ld.b r2, (r3, 0x0) + 5616: 3a41 cmpnei r2, 1 + 5618: 0810 bt 0x5638 // 5638 + 561a: 3200 movi r2, 0 + 561c: a340 st.b r2, (r3, 0x0) + 561e: 3200 movi r2, 0 + 5620: 1077 lrw r3, 0x20000058 // 567c + 5622: 1018 lrw r0, 0x20000673 // 5680 + 5624: 10b8 lrw r5, 0x200006ac // 5684 + 5626: 10d4 lrw r6, 0x20000306 // 5674 + 5628: 9360 ld.w r3, (r3, 0x0) + 562a: b342 st.w r2, (r3, 0x8) + 562c: 1077 lrw r3, 0x20000054 // 5688 + 562e: 9380 ld.w r4, (r3, 0x0) + 5630: 3300 movi r3, 0 + 5632: 8040 ld.b r2, (r0, 0x0) + 5634: 648c cmphs r3, r2 + 5636: 0c03 bf 0x563c // 563c + 5638: 1401 addi r14, r14, 4 + 563a: 1494 pop r4-r7, r15 + 563c: 5d4c addu r2, r5, r3 + 563e: 8240 ld.b r2, (r2, 0x0) + 5640: 4241 lsli r2, r2, 1 + 5642: 4322 lsli r1, r3, 2 + 5644: 6098 addu r2, r6 + 5646: 6050 addu r1, r4 + 5648: 8a40 ld.h r2, (r2, 0x0) + 564a: 91f2 ld.w r7, (r1, 0x48) + 564c: 4254 lsli r2, r2, 20 + 564e: 6c9c or r2, r7 + 5650: 2300 addi r3, 1 + 5652: b152 st.w r2, (r1, 0x48) + 5654: 74cc zextb r3, r3 + 5656: 07ee br 0x5632 // 5632 + 5658: 2000006c .long 0x2000006c + 565c: 20000650 .long 0x20000650 + 5660: 20000329 .long 0x20000329 + 5664: 2000032c .long 0x2000032c + 5668: 20000332 .long 0x20000332 + 566c: 200006e0 .long 0x200006e0 + 5670: 20000746 .long 0x20000746 + 5674: 20000306 .long 0x20000306 + 5678: 200005a5 .long 0x200005a5 + 567c: 20000058 .long 0x20000058 + 5680: 20000673 .long 0x20000673 + 5684: 200006ac .long 0x200006ac + 5688: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +0000568c : + 568c: 14c4 push r4-r7 + 568e: 1422 subi r14, r14, 8 + 5690: 1348 lrw r2, 0x200005d2 // 5830 + 5692: 8260 ld.b r3, (r2, 0x0) + 5694: 2300 addi r3, 1 + 5696: 74cc zextb r3, r3 + 5698: a260 st.b r3, (r2, 0x0) + 569a: 8260 ld.b r3, (r2, 0x0) + 569c: 1326 lrw r1, 0x20000329 // 5834 + 569e: 8120 ld.b r1, (r1, 0x0) + 56a0: 644c cmphs r3, r1 + 56a2: 0cad bf 0x57fc // 57fc + 56a4: 3300 movi r3, 0 + 56a6: a260 st.b r3, (r2, 0x0) + 56a8: 1364 lrw r3, 0x20000530 // 5838 + 56aa: 9360 ld.w r3, (r3, 0x0) + 56ac: 3b40 cmpnei r3, 0 + 56ae: 08a7 bt 0x57fc // 57fc + 56b0: 1323 lrw r1, 0x2000054a // 583c + 56b2: 6dc7 mov r7, r1 + 56b4: b820 st.w r1, (r14, 0x0) + 56b6: 3200 movi r2, 0 + 56b8: 1362 lrw r3, 0x20000356 // 5840 + 56ba: 1323 lrw r1, 0x200004a0 // 5844 + 56bc: 4201 lsli r0, r2, 1 + 56be: 9880 ld.w r4, (r14, 0x0) + 56c0: 6100 addu r4, r0 + 56c2: 8c80 ld.h r4, (r4, 0x0) + 56c4: 7513 sexth r4, r4 + 56c6: 3cdf btsti r4, 31 + 56c8: 0c27 bf 0x5716 // 5716 + 56ca: 13a0 lrw r5, 0x20000746 // 5848 + 56cc: 5980 addu r4, r1, r0 + 56ce: 6014 addu r0, r5 + 56d0: b881 st.w r4, (r14, 0x4) + 56d2: 8c80 ld.h r4, (r4, 0x0) + 56d4: 88c0 ld.h r6, (r0, 0x0) + 56d6: 7511 zexth r4, r4 + 56d8: 7599 zexth r6, r6 + 56da: 8ba0 ld.h r5, (r3, 0x0) + 56dc: 611a subu r4, r6 + 56de: 6551 cmplt r4, r5 + 56e0: 081b bt 0x5716 // 5716 + 56e2: 9881 ld.w r4, (r14, 0x4) + 56e4: 8c80 ld.h r4, (r4, 0x0) + 56e6: 8800 ld.h r0, (r0, 0x0) + 56e8: 7511 zexth r4, r4 + 56ea: 7401 zexth r0, r0 + 56ec: 5c01 subu r0, r4, r0 + 56ee: 4581 lsli r4, r5, 1 + 56f0: 6150 addu r5, r4 + 56f2: 6541 cmplt r0, r5 + 56f4: 0c11 bf 0x5716 // 5716 + 56f6: 1296 lrw r4, 0x20000674 // 584c + 56f8: 6108 addu r4, r2 + 56fa: 8400 ld.b r0, (r4, 0x0) + 56fc: 2000 addi r0, 1 + 56fe: 7400 zextb r0, r0 + 5700: a400 st.b r0, (r4, 0x0) + 5702: 1214 lrw r0, 0x2000008c // 5850 + 5704: 84a0 ld.b r5, (r4, 0x0) + 5706: 8008 ld.b r0, (r0, 0x8) + 5708: 6540 cmphs r0, r5 + 570a: 0806 bt 0x5716 // 5716 + 570c: 1212 lrw r0, 0x200005b7 // 5854 + 570e: 3501 movi r5, 1 + 5710: a0a0 st.b r5, (r0, 0x0) + 5712: 3000 movi r0, 0 + 5714: a400 st.b r0, (r4, 0x0) + 5716: 4201 lsli r0, r2, 1 + 5718: 5f80 addu r4, r7, r0 + 571a: 8c80 ld.h r4, (r4, 0x0) + 571c: 7513 sexth r4, r4 + 571e: 3c20 cmplti r4, 1 + 5720: 0870 bt 0x5800 // 5800 + 5722: 128a lrw r4, 0x20000746 // 5848 + 5724: 6100 addu r4, r0 + 5726: 59a0 addu r5, r1, r0 + 5728: 8c80 ld.h r4, (r4, 0x0) + 572a: 8da0 ld.h r5, (r5, 0x0) + 572c: 7555 zexth r5, r5 + 572e: 7511 zexth r4, r4 + 5730: 6116 subu r4, r5 + 5732: 8ba0 ld.h r5, (r3, 0x0) + 5734: 45a2 lsli r5, r5, 2 + 5736: 6551 cmplt r4, r5 + 5738: 0864 bt 0x5800 // 5800 + 573a: 1288 lrw r4, 0x200005fa // 5858 + 573c: 6108 addu r4, r2 + 573e: 84a0 ld.b r5, (r4, 0x0) + 5740: 2500 addi r5, 1 + 5742: 7554 zextb r5, r5 + 5744: a4a0 st.b r5, (r4, 0x0) + 5746: 12a3 lrw r5, 0x2000008c // 5850 + 5748: 84c0 ld.b r6, (r4, 0x0) + 574a: 85a9 ld.b r5, (r5, 0x9) + 574c: 6594 cmphs r5, r6 + 574e: 0806 bt 0x575a // 575a + 5750: 12a1 lrw r5, 0x200005b7 // 5854 + 5752: 3601 movi r6, 1 + 5754: a5c0 st.b r6, (r5, 0x0) + 5756: 3500 movi r5, 0 + 5758: a4a0 st.b r5, (r4, 0x0) + 575a: 5f80 addu r4, r7, r0 + 575c: 8c80 ld.h r4, (r4, 0x0) + 575e: 7513 sexth r4, r4 + 5760: 3cdf btsti r4, 31 + 5762: 0c10 bf 0x5782 // 5782 + 5764: 11d9 lrw r6, 0x20000746 // 5848 + 5766: 59a0 addu r5, r1, r0 + 5768: 6180 addu r6, r0 + 576a: 8d80 ld.h r4, (r5, 0x0) + 576c: 8ec0 ld.h r6, (r6, 0x0) + 576e: 7599 zexth r6, r6 + 5770: 7511 zexth r4, r4 + 5772: 611a subu r4, r6 + 5774: 8bc0 ld.h r6, (r3, 0x0) + 5776: 6591 cmplt r4, r6 + 5778: 0c05 bf 0x5782 // 5782 + 577a: 8d80 ld.h r4, (r5, 0x0) + 577c: 2c00 subi r4, 1 + 577e: 7511 zexth r4, r4 + 5780: ad80 st.h r4, (r5, 0x0) + 5782: 5f80 addu r4, r7, r0 + 5784: 8c80 ld.h r4, (r4, 0x0) + 5786: 7513 sexth r4, r4 + 5788: 3cdf btsti r4, 31 + 578a: 0c11 bf 0x57ac // 57ac + 578c: 11cf lrw r6, 0x20000746 // 5848 + 578e: 59a0 addu r5, r1, r0 + 5790: 6180 addu r6, r0 + 5792: 8d80 ld.h r4, (r5, 0x0) + 5794: 8ec0 ld.h r6, (r6, 0x0) + 5796: 7599 zexth r6, r6 + 5798: 7511 zexth r4, r4 + 579a: 611a subu r4, r6 + 579c: 8bc0 ld.h r6, (r3, 0x0) + 579e: 4ec1 lsri r6, r6, 1 + 57a0: 6591 cmplt r4, r6 + 57a2: 0805 bt 0x57ac // 57ac + 57a4: 8d80 ld.h r4, (r5, 0x0) + 57a6: 2c01 subi r4, 2 + 57a8: 7511 zexth r4, r4 + 57aa: ad80 st.h r4, (r5, 0x0) + 57ac: 5fa0 addu r5, r7, r0 + 57ae: 8d80 ld.h r4, (r5, 0x0) + 57b0: 7513 sexth r4, r4 + 57b2: 3c20 cmplti r4, 1 + 57b4: 080c bt 0x57cc // 57cc + 57b6: 8da0 ld.h r5, (r5, 0x0) + 57b8: 8b80 ld.h r4, (r3, 0x0) + 57ba: 7557 sexth r5, r5 + 57bc: 4c81 lsri r4, r4, 1 + 57be: 6515 cmplt r5, r4 + 57c0: 0c06 bf 0x57cc // 57cc + 57c2: 59a0 addu r5, r1, r0 + 57c4: 8d80 ld.h r4, (r5, 0x0) + 57c6: 2400 addi r4, 1 + 57c8: 7511 zexth r4, r4 + 57ca: ad80 st.h r4, (r5, 0x0) + 57cc: 5fa0 addu r5, r7, r0 + 57ce: 8d80 ld.h r4, (r5, 0x0) + 57d0: 7513 sexth r4, r4 + 57d2: 3c20 cmplti r4, 1 + 57d4: 0810 bt 0x57f4 // 57f4 + 57d6: 8dc0 ld.h r6, (r5, 0x0) + 57d8: 759b sexth r6, r6 + 57da: 8b80 ld.h r4, (r3, 0x0) + 57dc: 6519 cmplt r6, r4 + 57de: 0c0b bf 0x57f4 // 57f4 + 57e0: 8da0 ld.h r5, (r5, 0x0) + 57e2: 7557 sexth r5, r5 + 57e4: 4c81 lsri r4, r4, 1 + 57e6: 6515 cmplt r5, r4 + 57e8: 0806 bt 0x57f4 // 57f4 + 57ea: 6004 addu r0, r1 + 57ec: 8880 ld.h r4, (r0, 0x0) + 57ee: 2401 addi r4, 2 + 57f0: 7511 zexth r4, r4 + 57f2: a880 st.h r4, (r0, 0x0) + 57f4: 2200 addi r2, 1 + 57f6: 3a51 cmpnei r2, 17 + 57f8: 2301 addi r3, 2 + 57fa: 0b61 bt 0x56bc // 56bc + 57fc: 1402 addi r14, r14, 8 + 57fe: 1484 pop r4-r7 + 5800: 5f80 addu r4, r7, r0 + 5802: 8c80 ld.h r4, (r4, 0x0) + 5804: 7513 sexth r4, r4 + 5806: 3cdf btsti r4, 31 + 5808: 0fa9 bf 0x575a // 575a + 580a: 10b0 lrw r5, 0x20000746 // 5848 + 580c: 5980 addu r4, r1, r0 + 580e: 6140 addu r5, r0 + 5810: 8c80 ld.h r4, (r4, 0x0) + 5812: 8da0 ld.h r5, (r5, 0x0) + 5814: 7555 zexth r5, r5 + 5816: 8bc0 ld.h r6, (r3, 0x0) + 5818: 7511 zexth r4, r4 + 581a: 6116 subu r4, r5 + 581c: 46a1 lsli r5, r6, 1 + 581e: 6158 addu r5, r6 + 5820: 6551 cmplt r4, r5 + 5822: 0b9c bt 0x575a // 575a + 5824: 108c lrw r4, 0x200005b7 // 5854 + 5826: 3501 movi r5, 1 + 5828: a4a0 st.b r5, (r4, 0x0) + 582a: 6c03 mov r0, r0 + 582c: 0797 br 0x575a // 575a + 582e: 0000 bkpt + 5830: 200005d2 .long 0x200005d2 + 5834: 20000329 .long 0x20000329 + 5838: 20000530 .long 0x20000530 + 583c: 2000054a .long 0x2000054a + 5840: 20000356 .long 0x20000356 + 5844: 200004a0 .long 0x200004a0 + 5848: 20000746 .long 0x20000746 + 584c: 20000674 .long 0x20000674 + 5850: 2000008c .long 0x2000008c + 5854: 200005b7 .long 0x200005b7 + 5858: 200005fa .long 0x200005fa + +Disassembly of section .text.TK_result_prog: + +0000585c : + 585c: 14d2 push r4-r5, r15 + 585e: 1050 lrw r2, 0x20000530 // 589c + 5860: 1090 lrw r4, 0x200005d4 // 58a0 + 5862: 9260 ld.w r3, (r2, 0x0) + 5864: 3b40 cmpnei r3, 0 + 5866: 0c02 bf 0x586a // 586a + 5868: 9260 ld.w r3, (r2, 0x0) + 586a: b460 st.w r3, (r4, 0x0) + 586c: 9460 ld.w r3, (r4, 0x0) + 586e: 3b40 cmpnei r3, 0 + 5870: 10ad lrw r5, 0x200006a8 // 58a4 + 5872: 0c11 bf 0x5894 // 5894 + 5874: 9440 ld.w r2, (r4, 0x0) + 5876: 9560 ld.w r3, (r5, 0x0) + 5878: 64ca cmpne r2, r3 + 587a: 0c03 bf 0x5880 // 5880 + 587c: 9460 ld.w r3, (r4, 0x0) + 587e: b560 st.w r3, (r5, 0x0) + 5880: e3fffd94 bsr 0x53a8 // 53a8 + 5884: 1069 lrw r3, 0x20000330 // 58a8 + 5886: 8360 ld.b r3, (r3, 0x0) + 5888: 640c cmphs r3, r0 + 588a: 0804 bt 0x5892 // 5892 + 588c: 3300 movi r3, 0 + 588e: b460 st.w r3, (r4, 0x0) + 5890: b560 st.w r3, (r5, 0x0) + 5892: 1492 pop r4-r5, r15 + 5894: 1046 lrw r2, 0x200005cc // 58ac + 5896: b560 st.w r3, (r5, 0x0) + 5898: b260 st.w r3, (r2, 0x0) + 589a: 07fc br 0x5892 // 5892 + 589c: 20000530 .long 0x20000530 + 58a0: 200005d4 .long 0x200005d4 + 58a4: 200006a8 .long 0x200006a8 + 58a8: 20000330 .long 0x20000330 + 58ac: 200005cc .long 0x200005cc + +Disassembly of section .text.CORETHandler: + +000058b0 : + 58b0: 1460 nie + 58b2: 1462 ipush + 58b4: 14d1 push r4, r15 + 58b6: 1077 lrw r3, 0x20000064 // 5910 + 58b8: 3400 movi r4, 0 + 58ba: 9360 ld.w r3, (r3, 0x0) + 58bc: b386 st.w r4, (r3, 0x18) + 58be: 1076 lrw r3, 0x20000534 // 5914 + 58c0: 8360 ld.b r3, (r3, 0x0) + 58c2: 3b41 cmpnei r3, 1 + 58c4: 0820 bt 0x5904 // 5904 + 58c6: e3fffd85 bsr 0x53d0 // 53d0 + 58ca: e3fffd93 bsr 0x53f0 // 53f0 + 58ce: e3fffe51 bsr 0x5570 // 5570 + 58d2: e3fffedd bsr 0x568c // 568c + 58d6: e3ffffc3 bsr 0x585c // 585c + 58da: 1070 lrw r3, 0x200005d4 // 5918 + 58dc: 9360 ld.w r3, (r3, 0x0) + 58de: 3b40 cmpnei r3, 0 + 58e0: 0c12 bf 0x5904 // 5904 + 58e2: 106f lrw r3, 0x20000300 // 591c + 58e4: 9340 ld.w r2, (r3, 0x0) + 58e6: 3a40 cmpnei r2, 0 + 58e8: 0c0e bf 0x5904 // 5904 + 58ea: 106e lrw r3, 0x200005cc // 5920 + 58ec: 3064 movi r0, 100 + 58ee: 9320 ld.w r1, (r3, 0x0) + 58f0: 2100 addi r1, 1 + 58f2: b320 st.w r1, (r3, 0x0) + 58f4: 9320 ld.w r1, (r3, 0x0) + 58f6: 7c80 mult r2, r0 + 58f8: 6448 cmphs r2, r1 + 58fa: 0805 bt 0x5904 // 5904 + 58fc: 104a lrw r2, 0x200005b7 // 5924 + 58fe: 3101 movi r1, 1 + 5900: a220 st.b r1, (r2, 0x0) + 5902: b380 st.w r4, (r3, 0x0) + 5904: d9ee2001 ld.w r15, (r14, 0x4) + 5908: 9880 ld.w r4, (r14, 0x0) + 590a: 1402 addi r14, r14, 8 + 590c: 1463 ipop + 590e: 1461 nir + 5910: 20000064 .long 0x20000064 + 5914: 20000534 .long 0x20000534 + 5918: 200005d4 .long 0x200005d4 + 591c: 20000300 .long 0x20000300 + 5920: 200005cc .long 0x200005cc + 5924: 200005b7 .long 0x200005b7 + +Disassembly of section .text.std_clk_calib: + +00005928 : + 5928: 14d4 push r4-r7, r15 + 592a: 142d subi r14, r14, 52 + 592c: 3201 movi r2, 1 + 592e: 03ce lrw r6, 0x2000005c // 5b70 + 5930: 6cc3 mov r3, r0 + 5932: dc4e000a st.b r2, (r14, 0xa) + 5936: 9640 ld.w r2, (r6, 0x0) + 5938: 9247 ld.w r2, (r2, 0x1c) + 593a: 7488 zextb r2, r2 + 593c: dc4e0009 st.b r2, (r14, 0x9) + 5940: d84e0009 ld.b r2, (r14, 0x9) + 5944: 3a40 cmpnei r2, 0 + 5946: 0c08 bf 0x5956 // 5956 + 5948: d84e0009 ld.b r2, (r14, 0x9) + 594c: 3a42 cmpnei r2, 2 + 594e: 0c04 bf 0x5956 // 5956 + 5950: 3000 movi r0, 0 + 5952: 140d addi r14, r14, 52 + 5954: 1494 pop r4-r7, r15 + 5956: 0397 lrw r4, 0x2000000c // 5b74 + 5958: 3209 movi r2, 9 + 595a: 9400 ld.w r0, (r4, 0x0) + 595c: 3b40 cmpnei r3, 0 + 595e: b041 st.w r2, (r0, 0x4) + 5960: 0857 bt 0x5a0e // 5a0e + 5962: 3307 movi r3, 7 + 5964: dc6e000b st.b r3, (r14, 0xb) + 5968: 037b lrw r3, 0x2dc6c00 // 5b78 + 596a: b863 st.w r3, (r14, 0xc) + 596c: 3380 movi r3, 128 + 596e: 4362 lsli r3, r3, 2 + 5970: b867 st.w r3, (r14, 0x1c) + 5972: d86e000b ld.b r3, (r14, 0xb) + 5976: 74cc zextb r3, r3 + 5978: b062 st.w r3, (r0, 0x8) + 597a: 037e lrw r3, 0xffff // 5b7c + 597c: b063 st.w r3, (r0, 0xc) + 597e: 3201 movi r2, 1 + 5980: 3101 movi r1, 1 + 5982: 03bf lrw r5, 0x20000014 // 5b80 + 5984: e3ffed56 bsr 0x3430 // 3430 + 5988: 95e0 ld.w r7, (r5, 0x0) + 598a: 137f lrw r3, 0xbe9c0005 // 5b84 + 598c: b760 st.w r3, (r7, 0x0) + 598e: 135f lrw r2, 0x30010 // 5b88 + 5990: 3300 movi r3, 0 + 5992: b762 st.w r3, (r7, 0x8) + 5994: b743 st.w r2, (r7, 0xc) + 5996: 32d8 movi r2, 216 + 5998: b745 st.w r2, (r7, 0x14) + 599a: 974f ld.w r2, (r7, 0x3c) + 599c: 3aa2 bseti r2, 2 + 599e: b74f st.w r2, (r7, 0x3c) + 59a0: 9803 ld.w r0, (r14, 0xc) + 59a2: d82e000b ld.b r1, (r14, 0xb) + 59a6: 327d movi r2, 125 + 59a8: 2100 addi r1, 1 + 59aa: 7c48 mult r1, r2 + 59ac: b861 st.w r3, (r14, 0x4) + 59ae: e3fff535 bsr 0x4418 // 4418 <__udivsi3> + 59b2: b804 st.w r0, (r14, 0x10) + 59b4: 32fa movi r2, 250 + 59b6: 9824 ld.w r1, (r14, 0x10) + 59b8: 4242 lsli r2, r2, 2 + 59ba: 6448 cmphs r2, r1 + 59bc: 0bca bt 0x5950 // 5950 + 59be: 9844 ld.w r2, (r14, 0x10) + 59c0: 3178 movi r1, 120 + 59c2: 9804 ld.w r0, (r14, 0x10) + 59c4: b840 st.w r2, (r14, 0x0) + 59c6: e3fff529 bsr 0x4418 // 4418 <__udivsi3> + 59ca: 9840 ld.w r2, (r14, 0x0) + 59cc: 6082 subu r2, r0 + 59ce: b845 st.w r2, (r14, 0x14) + 59d0: 9804 ld.w r0, (r14, 0x10) + 59d2: 3178 movi r1, 120 + 59d4: 9844 ld.w r2, (r14, 0x10) + 59d6: b840 st.w r2, (r14, 0x0) + 59d8: e3fff520 bsr 0x4418 // 4418 <__udivsi3> + 59dc: 9840 ld.w r2, (r14, 0x0) + 59de: 6008 addu r0, r2 + 59e0: b806 st.w r0, (r14, 0x18) + 59e2: c0807020 psrclr ie + 59e6: 9640 ld.w r2, (r6, 0x0) + 59e8: 9254 ld.w r2, (r2, 0x50) + 59ea: b848 st.w r2, (r14, 0x20) + 59ec: 9861 ld.w r3, (r14, 0x4) + 59ee: 9440 ld.w r2, (r4, 0x0) + 59f0: b260 st.w r3, (r2, 0x0) + 59f2: b761 st.w r3, (r7, 0x4) + 59f4: d86e000a ld.b r3, (r14, 0xa) + 59f8: 3b40 cmpnei r3, 0 + 59fa: 083e bt 0x5a76 // 5a76 + 59fc: e3ffeccc bsr 0x3394 // 3394 + 5a00: 9400 ld.w r0, (r4, 0x0) + 5a02: e3ffeced bsr 0x33dc // 33dc + 5a06: c1807420 psrset ee, ie + 5a0a: 3001 movi r0, 1 + 5a0c: 07a3 br 0x5952 // 5952 + 5a0e: 3b41 cmpnei r3, 1 + 5a10: 0806 bt 0x5a1c // 5a1c + 5a12: 3303 movi r3, 3 + 5a14: dc6e000b st.b r3, (r14, 0xb) + 5a18: 127d lrw r3, 0x16e3600 // 5b8c + 5a1a: 07a8 br 0x596a // 596a + 5a1c: 3b42 cmpnei r3, 2 + 5a1e: 0806 bt 0x5a2a // 5a2a + 5a20: 3301 movi r3, 1 + 5a22: dc6e000b st.b r3, (r14, 0xb) + 5a26: 127b lrw r3, 0xb71b00 // 5b90 + 5a28: 07a1 br 0x596a // 596a + 5a2a: 3b43 cmpnei r3, 3 + 5a2c: 0806 bt 0x5a38 // 5a38 + 5a2e: 3300 movi r3, 0 + 5a30: dc6e000b st.b r3, (r14, 0xb) + 5a34: 1278 lrw r3, 0x5b8d80 // 5b94 + 5a36: 079a br 0x596a // 596a + 5a38: 3b44 cmpnei r3, 4 + 5a3a: 0809 bt 0x5a4c // 5a4c + 5a3c: 3300 movi r3, 0 + 5a3e: dc6e000b st.b r3, (r14, 0xb) + 5a42: 1276 lrw r3, 0x54c720 // 5b98 + 5a44: b863 st.w r3, (r14, 0xc) + 5a46: 3380 movi r3, 128 + 5a48: 4369 lsli r3, r3, 9 + 5a4a: 0793 br 0x5970 // 5970 + 5a4c: 3b45 cmpnei r3, 5 + 5a4e: 0806 bt 0x5a5a // 5a5a + 5a50: 3300 movi r3, 0 + 5a52: dc6e000b st.b r3, (r14, 0xb) + 5a56: 1272 lrw r3, 0x3ffed0 // 5b9c + 5a58: 07f6 br 0x5a44 // 5a44 + 5a5a: 3b46 cmpnei r3, 6 + 5a5c: 0806 bt 0x5a68 // 5a68 + 5a5e: 3300 movi r3, 0 + 5a60: dc6e000b st.b r3, (r14, 0xb) + 5a64: 126f lrw r3, 0x1fff68 // 5ba0 + 5a66: 07ef br 0x5a44 // 5a44 + 5a68: 3b47 cmpnei r3, 7 + 5a6a: 0b84 bt 0x5972 // 5972 + 5a6c: 3300 movi r3, 0 + 5a6e: dc6e000b st.b r3, (r14, 0xb) + 5a72: 126d lrw r3, 0x1ffb8 // 5ba4 + 5a74: 07e8 br 0x5a44 // 5a44 + 5a76: 9560 ld.w r3, (r5, 0x0) + 5a78: 3101 movi r1, 1 + 5a7a: 9440 ld.w r2, (r4, 0x0) + 5a7c: b321 st.w r1, (r3, 0x4) + 5a7e: b220 st.w r1, (r2, 0x0) + 5a80: 3100 movi r1, 0 + 5a82: b327 st.w r1, (r3, 0x1c) + 5a84: 3004 movi r0, 4 + 5a86: b225 st.w r1, (r2, 0x14) + 5a88: 932e ld.w r1, (r3, 0x38) + 5a8a: 6840 and r1, r0 + 5a8c: 3940 cmpnei r1, 0 + 5a8e: 0ffd bf 0x5a88 // 5a88 + 5a90: 9225 ld.w r1, (r2, 0x14) + 5a92: b82a st.w r1, (r14, 0x28) + 5a94: 3100 movi r1, 0 + 5a96: b310 st.w r0, (r3, 0x40) + 5a98: b327 st.w r1, (r3, 0x1c) + 5a9a: 3004 movi r0, 4 + 5a9c: b225 st.w r1, (r2, 0x14) + 5a9e: 932e ld.w r1, (r3, 0x38) + 5aa0: 6840 and r1, r0 + 5aa2: 3940 cmpnei r1, 0 + 5aa4: 0ffd bf 0x5a9e // 5a9e + 5aa6: 9225 ld.w r1, (r2, 0x14) + 5aa8: b82b st.w r1, (r14, 0x2c) + 5aaa: 3100 movi r1, 0 + 5aac: b310 st.w r0, (r3, 0x40) + 5aae: b327 st.w r1, (r3, 0x1c) + 5ab0: 3004 movi r0, 4 + 5ab2: b225 st.w r1, (r2, 0x14) + 5ab4: 932e ld.w r1, (r3, 0x38) + 5ab6: 6840 and r1, r0 + 5ab8: 3940 cmpnei r1, 0 + 5aba: 0ffd bf 0x5ab4 // 5ab4 + 5abc: 9225 ld.w r1, (r2, 0x14) + 5abe: b82c st.w r1, (r14, 0x30) + 5ac0: b310 st.w r0, (r3, 0x40) + 5ac2: 982b ld.w r1, (r14, 0x2c) + 5ac4: 980c ld.w r0, (r14, 0x30) + 5ac6: 6040 addu r1, r0 + 5ac8: b829 st.w r1, (r14, 0x24) + 5aca: 9829 ld.w r1, (r14, 0x24) + 5acc: 4921 lsri r1, r1, 1 + 5ace: b829 st.w r1, (r14, 0x24) + 5ad0: 3100 movi r1, 0 + 5ad2: b321 st.w r1, (r3, 0x4) + 5ad4: b220 st.w r1, (r2, 0x0) + 5ad6: b327 st.w r1, (r3, 0x1c) + 5ad8: b225 st.w r1, (r2, 0x14) + 5ada: d86e0009 ld.b r3, (r14, 0x9) + 5ade: 3b42 cmpnei r3, 2 + 5ae0: 9849 ld.w r2, (r14, 0x24) + 5ae2: 082c bt 0x5b3a // 5b3a + 5ae4: 1171 lrw r3, 0x7ff // 5ba8 + 5ae6: 648c cmphs r3, r2 + 5ae8: 0c03 bf 0x5aee // 5aee + 5aea: 3300 movi r3, 0 + 5aec: 040f br 0x5b0a // 5b0a + 5aee: 9849 ld.w r2, (r14, 0x24) + 5af0: 9866 ld.w r3, (r14, 0x18) + 5af2: 648c cmphs r3, r2 + 5af4: 080e bt 0x5b10 // 5b10 + 5af6: 9868 ld.w r3, (r14, 0x20) + 5af8: 9847 ld.w r2, (r14, 0x1c) + 5afa: 60ca subu r3, r2 + 5afc: b868 st.w r3, (r14, 0x20) + 5afe: 32fe movi r2, 254 + 5b00: 9868 ld.w r3, (r14, 0x20) + 5b02: 4248 lsli r2, r2, 8 + 5b04: 68c8 and r3, r2 + 5b06: 3b40 cmpnei r3, 0 + 5b08: 0812 bt 0x5b2c // 5b2c + 5b0a: dc6e000a st.b r3, (r14, 0xa) + 5b0e: 0721 br 0x5950 // 5950 + 5b10: 9849 ld.w r2, (r14, 0x24) + 5b12: 9865 ld.w r3, (r14, 0x14) + 5b14: 64c8 cmphs r2, r3 + 5b16: 0829 bt 0x5b68 // 5b68 + 5b18: 9868 ld.w r3, (r14, 0x20) + 5b1a: 9847 ld.w r2, (r14, 0x1c) + 5b1c: 60c8 addu r3, r2 + 5b1e: b868 st.w r3, (r14, 0x20) + 5b20: 33fe movi r3, 254 + 5b22: 9848 ld.w r2, (r14, 0x20) + 5b24: 4368 lsli r3, r3, 8 + 5b26: 688c and r2, r3 + 5b28: 64ca cmpne r2, r3 + 5b2a: 0fe0 bf 0x5aea // 5aea + 5b2c: 9660 ld.w r3, (r6, 0x0) + 5b2e: 9848 ld.w r2, (r14, 0x20) + 5b30: b354 st.w r2, (r3, 0x50) + 5b32: 3001 movi r0, 1 + 5b34: e3ffeeb4 bsr 0x389c // 389c + 5b38: 075e br 0x59f4 // 59f4 + 5b3a: 9866 ld.w r3, (r14, 0x18) + 5b3c: 648c cmphs r3, r2 + 5b3e: 0809 bt 0x5b50 // 5b50 + 5b40: 9868 ld.w r3, (r14, 0x20) + 5b42: 9847 ld.w r2, (r14, 0x1c) + 5b44: 60ca subu r3, r2 + 5b46: b868 st.w r3, (r14, 0x20) + 5b48: 32ff movi r2, 255 + 5b4a: 9868 ld.w r3, (r14, 0x20) + 5b4c: 4250 lsli r2, r2, 16 + 5b4e: 07db br 0x5b04 // 5b04 + 5b50: 9849 ld.w r2, (r14, 0x24) + 5b52: 9865 ld.w r3, (r14, 0x14) + 5b54: 64c8 cmphs r2, r3 + 5b56: 0809 bt 0x5b68 // 5b68 + 5b58: 9868 ld.w r3, (r14, 0x20) + 5b5a: 9847 ld.w r2, (r14, 0x1c) + 5b5c: 60c8 addu r3, r2 + 5b5e: b868 st.w r3, (r14, 0x20) + 5b60: 33ff movi r3, 255 + 5b62: 9848 ld.w r2, (r14, 0x20) + 5b64: 4370 lsli r3, r3, 16 + 5b66: 07e0 br 0x5b26 // 5b26 + 5b68: 3300 movi r3, 0 + 5b6a: dc6e000a st.b r3, (r14, 0xa) + 5b6e: 07e2 br 0x5b32 // 5b32 + 5b70: 2000005c .long 0x2000005c + 5b74: 2000000c .long 0x2000000c + 5b78: 02dc6c00 .long 0x02dc6c00 + 5b7c: 0000ffff .long 0x0000ffff + 5b80: 20000014 .long 0x20000014 + 5b84: be9c0005 .long 0xbe9c0005 + 5b88: 00030010 .long 0x00030010 + 5b8c: 016e3600 .long 0x016e3600 + 5b90: 00b71b00 .long 0x00b71b00 + 5b94: 005b8d80 .long 0x005b8d80 + 5b98: 0054c720 .long 0x0054c720 + 5b9c: 003ffed0 .long 0x003ffed0 + 5ba0: 001fff68 .long 0x001fff68 + 5ba4: 0001ffb8 .long 0x0001ffb8 + 5ba8: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20241030.map b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20241030.map new file mode 100644 index 0000000..fea1b4e --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20241030.map @@ -0,0 +1,2416 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 327412 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 161 + Section header string table index: 158 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 002f12 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00002f14 003f14 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00002f4c 003f4c 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00002fc0 003fc0 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 0000300c 00400c 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 0000303c 00403c 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 000030c4 0040c4 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 000030ec 0040ec 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00003128 004128 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 0000313c 00413c 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00003154 004154 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00003174 004174 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00003190 004190 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 000031ac 0041ac 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 000031ec 0041ec 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 000031f8 0041f8 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 0000321c 00421c 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 0000324c 00424c 0000e0 00 AX 0 0 4 + [19] .text.GPIO_PullHi PROGBITS 0000332c 00432c 000014 00 AX 0 0 2 + [20] .text.GPIO_DriveS PROGBITS 00003340 004340 00000e 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 0000334e 00434e 000008 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00003356 004356 000008 00 AX 0 0 2 + [23] .text.GPIO_Revers PROGBITS 0000335e 00435e 000016 00 AX 0 0 2 + [24] .text.GPIO_Read_S PROGBITS 00003374 004374 000010 00 AX 0 0 2 + [25] .text.GPIO_Read_O PROGBITS 00003384 004384 000010 00 AX 0 0 2 + [26] .text.LPT_Soft_Re PROGBITS 00003394 004394 000014 00 AX 0 0 4 + [27] .text.WWDT_CNT_Lo PROGBITS 000033a8 0043a8 000010 00 AX 0 0 4 + [28] .text.BT_DeInit PROGBITS 000033b8 0043b8 00001c 00 AX 0 0 2 + [29] .text.BT_Start PROGBITS 000033d4 0043d4 000008 00 AX 0 0 2 + [30] .text.BT_Soft_Res PROGBITS 000033dc 0043dc 00000a 00 AX 0 0 2 + [31] .text.BT_Configur PROGBITS 000033e6 0043e6 000018 00 AX 0 0 2 + [32] .text.BT_ControlS PROGBITS 000033fe 0043fe 00002c 00 AX 0 0 2 + [33] .text.BT_Period_C PROGBITS 0000342a 00442a 000006 00 AX 0 0 2 + [34] .text.BT_ConfigIn PROGBITS 00003430 004430 000012 00 AX 0 0 2 + [35] .text.BT1_INT_ENA PROGBITS 00003444 004444 000010 00 AX 0 0 4 + [36] .text.GPT_IO_Init PROGBITS 00003454 004454 0000a0 00 AX 0 0 4 + [37] .text.GPT_Configu PROGBITS 000034f4 0044f4 000014 00 AX 0 0 4 + [38] .text.GPT_WaveCtr PROGBITS 00003508 004508 000044 00 AX 0 0 4 + [39] .text.GPT_WaveLoa PROGBITS 0000354c 00454c 000014 00 AX 0 0 4 + [40] .text.GPT_WaveOut PROGBITS 00003560 004560 0000b4 00 AX 0 0 4 + [41] .text.GPT_Start PROGBITS 00003614 004614 000010 00 AX 0 0 4 + [42] .text.GPT_Period_ PROGBITS 00003624 004624 000010 00 AX 0 0 4 + [43] .text.GPT_ConfigI PROGBITS 00003634 004634 00001c 00 AX 0 0 4 + [44] .text.UART0_DeIni PROGBITS 00003650 004650 000018 00 AX 0 0 4 + [45] .text.UART1_DeIni PROGBITS 00003668 004668 000018 00 AX 0 0 4 + [46] .text.UART2_DeIni PROGBITS 00003680 004680 000018 00 AX 0 0 4 + [47] .text.UART0_Int_E PROGBITS 00003698 004698 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 000036b4 0046b4 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 000036d0 0046d0 0000ec 00 AX 0 0 4 + [50] .text.UARTInit PROGBITS 000037bc 0047bc 000010 00 AX 0 0 4 + [51] .text.UARTInitRxT PROGBITS 000037cc 0047cc 000010 00 AX 0 0 4 + [52] .text.UARTTransmi PROGBITS 000037dc 0047dc 00001e 00 AX 0 0 2 + [53] .text.EPT_Stop PROGBITS 000037fc 0047fc 000028 00 AX 0 0 4 + [54] .text.startup.mai PROGBITS 00003824 004824 000078 00 AX 0 0 4 + [55] .text.delay_nms PROGBITS 0000389c 00489c 00002c 00 AX 0 0 2 + [56] .text.GPT0_CONFIG PROGBITS 000038c8 0048c8 000094 00 AX 0 0 4 + [57] .text.BT_CONFIG PROGBITS 0000395c 00495c 000060 00 AX 0 0 4 + [58] .text.SYSCON_CONF PROGBITS 000039bc 0049bc 000062 00 AX 0 0 2 + [59] .text.APT32F102_i PROGBITS 00003a20 004a20 000050 00 AX 0 0 4 + [60] .text.SYSCONIntHa PROGBITS 00003a70 004a70 0000f0 00 AX 0 0 4 + [61] .text.IFCIntHandl PROGBITS 00003b60 004b60 000068 00 AX 0 0 4 + [62] .text.ADCIntHandl PROGBITS 00003bc8 004bc8 000068 00 AX 0 0 4 + [63] .text.EPT0IntHand PROGBITS 00003c30 004c30 0001ac 00 AX 0 0 4 + [64] .text.WWDTHandler PROGBITS 00003ddc 004ddc 000034 00 AX 0 0 4 + [65] .text.GPT0IntHand PROGBITS 00003e10 004e10 000080 00 AX 0 0 4 + [66] .text.RTCIntHandl PROGBITS 00003e90 004e90 000070 00 AX 0 0 4 + [67] .text.UART0IntHan PROGBITS 00003f00 004f00 00003c 00 AX 0 0 4 + [68] .text.UART1IntHan PROGBITS 00003f3c 004f3c 00003c 00 AX 0 0 4 + [69] .text.UART2IntHan PROGBITS 00003f78 004f78 000094 00 AX 0 0 4 + [70] .text.SPI0IntHand PROGBITS 0000400c 00500c 0000e8 00 AX 0 0 4 + [71] .text.SIO0IntHand PROGBITS 000040f4 0050f4 000054 00 AX 0 0 4 + [72] .text.EXI0IntHand PROGBITS 00004148 005148 000030 00 AX 0 0 4 + [73] .text.EXI1IntHand PROGBITS 00004178 005178 000030 00 AX 0 0 4 + [74] .text.EXI2to3IntH PROGBITS 000041a8 0051a8 000048 00 AX 0 0 4 + [75] .text.EXI4to9IntH PROGBITS 000041f0 0051f0 00005c 00 AX 0 0 4 + [76] .text.EXI10to15In PROGBITS 0000424c 00524c 000060 00 AX 0 0 4 + [77] .text.LPTIntHandl PROGBITS 000042ac 0052ac 000034 00 AX 0 0 4 + [78] .text.BT0IntHandl PROGBITS 000042e0 0052e0 00004c 00 AX 0 0 4 + [79] .text.BT1IntHandl PROGBITS 0000432c 00532c 000064 00 AX 0 0 4 + [80] .text.PriviledgeV PROGBITS 00004390 005390 000002 00 AX 0 0 2 + [81] .text.PendTrapHan PROGBITS 00004392 005392 000008 00 AX 0 0 2 + [82] .text.Trap3Handle PROGBITS 0000439a 00539a 000008 00 AX 0 0 2 + [83] .text.Trap2Handle PROGBITS 000043a2 0053a2 000008 00 AX 0 0 2 + [84] .text.Trap1Handle PROGBITS 000043aa 0053aa 000008 00 AX 0 0 2 + [85] .text.Trap0Handle PROGBITS 000043b2 0053b2 000008 00 AX 0 0 2 + [86] .text.UnrecExecpH PROGBITS 000043ba 0053ba 000008 00 AX 0 0 2 + [87] .text.BreakPointH PROGBITS 000043c2 0053c2 000008 00 AX 0 0 2 + [88] .text.AccessErrHa PROGBITS 000043ca 0053ca 000008 00 AX 0 0 2 + [89] .text.IllegalInst PROGBITS 000043d2 0053d2 000008 00 AX 0 0 2 + [90] .text.MisalignedH PROGBITS 000043da 0053da 000008 00 AX 0 0 2 + [91] .text.CNTAIntHand PROGBITS 000043e2 0053e2 000008 00 AX 0 0 2 + [92] .text.I2CIntHandl PROGBITS 000043ea 0053ea 000008 00 AX 0 0 2 + [93] .text.__divsi3 PROGBITS 000043f4 0053f4 000024 00 AX 0 0 4 + [94] .text.__udivsi3 PROGBITS 00004418 005418 000024 00 AX 0 0 4 + [95] .text.__modsi3 PROGBITS 0000443c 00543c 000024 00 AX 0 0 4 + [96] .text.__umodsi3 PROGBITS 00004460 005460 000024 00 AX 0 0 4 + [97] .text.CK_CPU_EnAl PROGBITS 00004484 005484 000006 00 AX 0 0 2 + [98] .text.UARTx_Init PROGBITS 0000448c 00548c 0000d8 00 AX 0 0 4 + [99] .text.UART2_RecvI PROGBITS 00004564 005564 000064 00 AX 0 0 4 + [100] .text.Dbg_Println PROGBITS 000045c8 0055c8 000098 00 AX 0 0 4 + [101] .text.RC522_Delay PROGBITS 00004660 005660 000012 00 AX 0 0 2 + [102] .text.RC522_ReadW PROGBITS 00004674 005674 000054 00 AX 0 0 4 + [103] .text.RC522_ReadR PROGBITS 000046c8 0056c8 000038 00 AX 0 0 4 + [104] .text.RC522_Write PROGBITS 00004700 005700 000030 00 AX 0 0 4 + [105] .text.RC522_PcdRe PROGBITS 00004730 005730 00004c 00 AX 0 0 2 + [106] .text.RC522_SetBi PROGBITS 0000477c 00577c 000018 00 AX 0 0 2 + [107] .text.RC522_PcdAn PROGBITS 00004794 005794 00001a 00 AX 0 0 2 + [108] .text.RC522_Clear PROGBITS 000047ae 0057ae 000016 00 AX 0 0 2 + [109] .text.RC522_PcdAn PROGBITS 000047c4 0057c4 00000c 00 AX 0 0 2 + [110] .text.RC522_Reset PROGBITS 000047d0 0057d0 000016 00 AX 0 0 2 + [111] .text.M500PcdConf PROGBITS 000047e6 0057e6 00007e 00 AX 0 0 2 + [112] .text.RC522_Init PROGBITS 00004864 005864 000098 00 AX 0 0 4 + [113] .text.RC522_PcdCo PROGBITS 000048fc 0058fc 000170 00 AX 0 0 4 + [114] .text.RC522_PcdRe PROGBITS 00004a6c 005a6c 000088 00 AX 0 0 4 + [115] .text.RC522_PcdAn PROGBITS 00004af4 005af4 000074 00 AX 0 0 2 + [116] .text.Card_Read_T PROGBITS 00004b68 005b68 0000b0 00 AX 0 0 4 + [117] .text.Detect_SPI_ PROGBITS 00004c18 005c18 00009c 00 AX 0 0 4 + [118] .text.RLY_Light_C PROGBITS 00004cb4 005cb4 000050 00 AX 0 0 4 + [119] .text.KEY1_LONG_P PROGBITS 00004d04 005d04 000068 00 AX 0 0 4 + [120] .text.LogicCtrl_I PROGBITS 00004d6c 005d6c 00003c 00 AX 0 0 4 + [121] .text.LogicCtrl_T PROGBITS 00004da8 005da8 0000f0 00 AX 0 0 4 + [122] .text.LogicCtrl_N PROGBITS 00004e98 005e98 000088 00 AX 0 0 4 + [123] .text.LogicCtrl_N PROGBITS 00004f20 005f20 0000c0 00 AX 0 0 4 + [124] .text.BackLight_T PROGBITS 00004fe0 005fe0 000024 00 AX 0 0 4 + [125] .text.Detect_WIFI PROGBITS 00005004 006004 000094 00 AX 0 0 4 + [126] .text.Led_Task PROGBITS 00005098 006098 000078 00 AX 0 0 4 + [127] .text.button_init PROGBITS 00005110 006110 00003a 00 AX 0 0 2 + [128] .text.button_atta PROGBITS 0000514a 00614a 00000a 00 AX 0 0 2 + [129] .text.button_hand PROGBITS 00005154 006154 000120 00 AX 0 0 2 + [130] .text.button_star PROGBITS 00005274 006274 000024 00 AX 0 0 4 + [131] .text.button_tick PROGBITS 00005298 006298 00001c 00 AX 0 0 4 + [132] .text.read_button PROGBITS 000052b4 0062b4 000014 00 AX 0 0 4 + [133] .text.TK_Sampling PROGBITS 000052c8 0062c8 000058 00 AX 0 0 4 + [134] .text.TKEYIntHand PROGBITS 00005320 006320 000088 00 AX 0 0 4 + [135] .text.get_key_num PROGBITS 000053a8 0063a8 000028 00 AX 0 0 4 + [136] .text.TK_Scan_Sta PROGBITS 000053d0 0063d0 000020 00 AX 0 0 4 + [137] .text.TK_Keymap_p PROGBITS 000053f0 0063f0 000180 00 AX 0 0 4 + [138] .text.TK_overflow PROGBITS 00005570 006570 00011c 00 AX 0 0 4 + [139] .text.TK_Baseline PROGBITS 0000568c 00668c 0001d0 00 AX 0 0 4 + [140] .text.TK_result_p PROGBITS 0000585c 00685c 000054 00 AX 0 0 4 + [141] .text.CORETHandle PROGBITS 000058b0 0068b0 000078 00 AX 0 0 4 + [142] .text.std_clk_cal PROGBITS 00005928 006928 000284 00 AX 0 0 4 + [143] .RomCode PROGBITS 00005bac 0080a0 000000 00 W 0 0 1 + [144] .rodata PROGBITS 00005bac 006bac 000cd0 00 A 0 0 4 + [145] .data PROGBITS 20000000 008000 0000a0 00 WA 0 0 4 + [146] .bss NOBITS 200000a0 0080a0 0006d0 00 WA 0 0 4 + [147] .csky.attributes CSKY_ATTRIBUTES 00000000 0080a0 000022 00 0 0 1 + [148] .comment PROGBITS 00000000 0080c2 000042 01 MS 0 0 1 + [149] .csky_stack_size PROGBITS 00000000 008110 0008cc 00 0 0 16 + [150] .debug_line PROGBITS 00000000 0089dc 003a15 00 0 0 1 + [151] .debug_info PROGBITS 00000000 00c3f1 02bf85 00 0 0 1 + [152] .debug_abbrev PROGBITS 00000000 038376 0028cf 00 0 0 1 + [153] .debug_aranges PROGBITS 00000000 03ac48 000cc8 00 0 0 8 + [154] .debug_ranges PROGBITS 00000000 03b910 000bf8 00 0 0 1 + [155] .debug_str PROGBITS 00000000 03c508 0088c3 01 MS 0 0 1 + [156] .debug_frame PROGBITS 00000000 044dcc 001e14 00 0 0 4 + [157] .debug_loc PROGBITS 00000000 046be0 002f3e 00 0 0 1 + [158] .shstrtab STRTAB 00000000 04f1ff 000cf3 00 0 0 1 + [159] .symtab SYMTAB 00000000 049b20 0041a0 10 160 719 4 + [160] .strtab STRTAB 00000000 04dcc0 00153f 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x0687c 0x0687c R E 0x1000 + LOAD 0x008000 0x20000000 0x0000687c 0x000a0 0x00770 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.SYSCON_Int_Enable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.GPIO_Read_Output .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.startup.main .text.delay_nms .text.GPT0_CONFIG .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.Dbg_Println .text.RC522_Delay .text.RC522_ReadWriteOneByte .text.RC522_ReadRawRC .text.RC522_WriteRawRC .text.RC522_PcdReset .text.RC522_SetBitMask .text.RC522_PcdAntennaOn .text.RC522_ClearBitMask .text.RC522_PcdAntennaOff .text.RC522_Reset .text.M500PcdConfigISOType.part.1 .text.RC522_Init .text.RC522_PcdComMF522 .text.RC522_PcdRequest .text.RC522_PcdAnticoll .text.Card_Read_TasK .text.Detect_SPI_task .text.RLY_Light_Ctrl .text.KEY1_LONG_PRESS_RELEASE_Handler .text.LogicCtrl_Init .text.LogicCtrl_Task .text.LogicCtrl_NoRF_Init .text.LogicCtrl_NoRF_Task .text.BackLight_Task .text.Detect_WIFI_Task .text.Led_Task .text.button_init .text.button_attach .text.button_handler .text.button_start .text.button_ticks .text.read_button_GPIO .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_button.o(.text.read_button_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInit) for UARTInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPT0_CONFIG) for GPT0_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_rc522.o(.text.RC522_Reset) for RC522_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Init) for RC522_Init + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) for RC522_PcdRequest + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) for RC522_PcdAnticoll + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) for Card_Read_TasK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) for Detect_SPI_task + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) for LogicCtrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) for LogicCtrl_Task + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) for LogicCtrl_NoRF_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) for LogicCtrl_NoRF_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.BackLight_Task) for BackLight_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) for Detect_WIFI_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) for Led_Task + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_init) for button_init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_attach) for button_attach + Obj/SYSTEM_button.o(.text.button_ticks) refers to Obj/SYSTEM_button.o(.text.button_handler) for button_handler + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_start) for button_start + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_button.o(.text.button_ticks) for button_ticks + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_button.o(.text.button_init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (491 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2911 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.EXTI_interrupt_CMD(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.GPIO_EXTI_interrupt(Obj/FWlib_apt32f102_syscon.o), (4 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_IntGroup_Set(Obj/FWlib_apt32f102_gpio.o), (268 bytes). + Removing .text.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3105 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3422 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3167 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4135 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3538 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3654 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4854 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4962 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7611 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2860 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.delay_nus(Obj/mcu_initial.o), (34 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (136 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (156 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (188 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (188 bytes). + Removing .text(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .data(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .text.RC522_CalulateCRC(Obj/SYSTEM_rc522.o), (102 bytes). + Removing .text.M500PcdConfigISOType(Obj/SYSTEM_rc522.o), (18 bytes). + Removing .text.RC522_MFRC522_SelectTag(Obj/SYSTEM_rc522.o), (110 bytes). + Removing .text.RC522_PcdSelect(Obj/SYSTEM_rc522.o), (106 bytes). + Removing .text.RC522_PcdAuthState(Obj/SYSTEM_rc522.o), (88 bytes). + Removing .text.RC522_PcdRead(Obj/SYSTEM_rc522.o), (84 bytes). + Removing .text.RC522_PcdWrite(Obj/SYSTEM_rc522.o), (142 bytes). + Removing .text(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .data(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .text.Ctrl_Backlight(Obj/SYSTEM_logic_ctrl.o), (36 bytes). + Removing .text.Debounce_Task(Obj/SYSTEM_logic_ctrl.o), (2 bytes). + Removing .text.KEY1_LONG_PRESS_START_Handler(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text.Ctrl_Led_Mode(Obj/SYSTEM_logic_ctrl.o), (2 bytes). + Removing .text(Obj/SYSTEM_button.o), (0 bytes). + Removing .data(Obj/SYSTEM_button.o), (0 bytes). + Removing .text.get_button_event(Obj/SYSTEM_button.o), (6 bytes). + Removing .text.button_stop(Obj/SYSTEM_button.o), (32 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (125 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +655 unused seciton(s) (total 180335 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_button.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_logic_ctrl.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_rc522.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + swrite 0x00001984 F 62 .text + $d 0x00001984 0 .text + $t 0x00001984 0 .text + $d 0x00001a18 0 .text + $d 0x00001a1c 0 .text + $t 0x00001a1c 0 .text + $d 0x00001aa4 0 .text + $t 0x00001aa4 0 .text + PAD.1851 0x00001b08 F 52 .text + $d 0x00001b08 0 .text + $t 0x00001b08 0 .text + $d 0x000020b0 0 .text + $t 0x000020bc 0 .text + $d 0x00002258 0 .text + $d 0x00002260 0 .text + $t 0x00002260 0 .text + $d 0x00002600 0 .text + $d 0x0000260c 0 .text + $t 0x0000260c 0 .text + $d 0x000029a0 0 .text + copystring 0x000029ac F 38 .text + $d 0x000029ac 0 .text + $t 0x000029ac 0 .text + $d 0x00002cd8 0 .text + $d 0x00002d0c 0 .text + $t 0x00002d0c 0 .text + $d 0x00002d34 0 .text + $d 0x00002d38 0 .text + $t 0x00002d38 0 .text + $d 0x00002d8c 0 .text + $t 0x00002d8c 0 .text + $d 0x00002e3c 0 .text + $t 0x00002e3c 0 .text + $d 0x00002e50 0 .text + $t 0x00002e50 0 .text + $d 0x00002e64 0 .text + $d 0x00002e6c 0 .text + $t 0x00002e6c 0 .text + $d 0x00002e94 0 .text + $d 0x00002e9c 0 .text + $t 0x00002e9c 0 .text + $d 0x00002ed8 0 .text + $t 0x00002ed8 0 .text + $d 0x00002f14 0 .text.__main + $t 0x00002f14 0 .text.__main + $d 0x00002f38 0 .text.__main + SYSCON_General_CMD.part.0 0x00002f4c F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $t 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fb8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fc0 0 .text.SYSCON_RST_VALUE + $t 0x00002fc0 0 .text.SYSCON_RST_VALUE + $d 0x00002ff0 0 .text.SYSCON_RST_VALUE + $d 0x0000300c 0 .text.SYSCON_General_CMD + $t 0x0000300c 0 .text.SYSCON_General_CMD + $d 0x00003038 0 .text.SYSCON_General_CMD + $d 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030b4 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $t 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030e8 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030ec 0 .text.SYSCON_WDT_CMD + $t 0x000030ec 0 .text.SYSCON_WDT_CMD + $d 0x0000311c 0 .text.SYSCON_WDT_CMD + $d 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $t 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $d 0x00003138 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $t 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $d 0x0000314c 0 .text.SYSCON_IWDCNT_Config + $d 0x00003154 0 .text.SYSCON_LVD_Config + $t 0x00003154 0 .text.SYSCON_LVD_Config + $d 0x0000316c 0 .text.SYSCON_LVD_Config + $d 0x00003174 0 .text.LVD_Int_Enable + $t 0x00003174 0 .text.LVD_Int_Enable + $d 0x0000318c 0 .text.LVD_Int_Enable + $d 0x00003190 0 .text.IWDT_Int_Enable + $t 0x00003190 0 .text.IWDT_Int_Enable + $d 0x000031a8 0 .text.IWDT_Int_Enable + $d 0x000031ac 0 .text.EXTI_trigger_CMD + $t 0x000031ac 0 .text.EXTI_trigger_CMD + $d 0x000031e8 0 .text.EXTI_trigger_CMD + $d 0x000031ec 0 .text.SYSCON_Int_Enable + $t 0x000031ec 0 .text.SYSCON_Int_Enable + $d 0x000031f4 0 .text.SYSCON_Int_Enable + $d 0x000031f8 0 .text.SYSCON_INT_Priority + $t 0x000031f8 0 .text.SYSCON_INT_Priority + $d 0x00003210 0 .text.SYSCON_INT_Priority + $d 0x0000321c 0 .text.Set_INT_Priority + $t 0x0000321c 0 .text.Set_INT_Priority + $d 0x00003248 0 .text.Set_INT_Priority + $d 0x0000324c 0 .text.GPIO_Init + $t 0x0000324c 0 .text.GPIO_Init + $d 0x0000325e 0 .text.GPIO_Init + $t 0x00003266 0 .text.GPIO_Init + $d 0x000032c2 0 .text.GPIO_Init + $t 0x000032ca 0 .text.GPIO_Init + $d 0x00003318 0 .text.GPIO_Init + $d 0x0000332c 0 .text.GPIO_PullHigh_Init + $t 0x0000332c 0 .text.GPIO_PullHigh_Init + $d 0x00003340 0 .text.GPIO_DriveStrength_EN + $t 0x00003340 0 .text.GPIO_DriveStrength_EN + $d 0x0000334e 0 .text.GPIO_Write_High + $t 0x0000334e 0 .text.GPIO_Write_High + $d 0x00003356 0 .text.GPIO_Write_Low + $t 0x00003356 0 .text.GPIO_Write_Low + $d 0x0000335e 0 .text.GPIO_Reverse + $t 0x0000335e 0 .text.GPIO_Reverse + $d 0x00003374 0 .text.GPIO_Read_Status + $t 0x00003374 0 .text.GPIO_Read_Status + $d 0x00003384 0 .text.GPIO_Read_Output + $t 0x00003384 0 .text.GPIO_Read_Output + $d 0x00003394 0 .text.LPT_Soft_Reset + $t 0x00003394 0 .text.LPT_Soft_Reset + $d 0x000033a4 0 .text.LPT_Soft_Reset + $d 0x000033a8 0 .text.WWDT_CNT_Load + $t 0x000033a8 0 .text.WWDT_CNT_Load + $d 0x000033b4 0 .text.WWDT_CNT_Load + $d 0x000033b8 0 .text.BT_DeInit + $t 0x000033b8 0 .text.BT_DeInit + $d 0x000033d4 0 .text.BT_Start + $t 0x000033d4 0 .text.BT_Start + $d 0x000033dc 0 .text.BT_Soft_Reset + $t 0x000033dc 0 .text.BT_Soft_Reset + $d 0x000033e6 0 .text.BT_Configure + $t 0x000033e6 0 .text.BT_Configure + $d 0x000033fe 0 .text.BT_ControlSet_Configure + $t 0x000033fe 0 .text.BT_ControlSet_Configure + $d 0x0000342a 0 .text.BT_Period_CMP_Write + $t 0x0000342a 0 .text.BT_Period_CMP_Write + $d 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $t 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $d 0x00003444 0 .text.BT1_INT_ENABLE + $t 0x00003444 0 .text.BT1_INT_ENABLE + $d 0x00003450 0 .text.BT1_INT_ENABLE + $d 0x00003454 0 .text.GPT_IO_Init + $t 0x00003454 0 .text.GPT_IO_Init + $d 0x000034ec 0 .text.GPT_IO_Init + $d 0x000034f4 0 .text.GPT_Configure + $t 0x000034f4 0 .text.GPT_Configure + $d 0x00003504 0 .text.GPT_Configure + $d 0x00003508 0 .text.GPT_WaveCtrl_Configure + $t 0x00003508 0 .text.GPT_WaveCtrl_Configure + $d 0x00003548 0 .text.GPT_WaveCtrl_Configure + $d 0x0000354c 0 .text.GPT_WaveLoad_Configure + $t 0x0000354c 0 .text.GPT_WaveLoad_Configure + $d 0x0000355c 0 .text.GPT_WaveLoad_Configure + $d 0x00003560 0 .text.GPT_WaveOut_Configure + $t 0x00003560 0 .text.GPT_WaveOut_Configure + $d 0x00003610 0 .text.GPT_WaveOut_Configure + $d 0x00003614 0 .text.GPT_Start + $t 0x00003614 0 .text.GPT_Start + $d 0x00003620 0 .text.GPT_Start + $d 0x00003624 0 .text.GPT_Period_CMP_Write + $t 0x00003624 0 .text.GPT_Period_CMP_Write + $d 0x00003630 0 .text.GPT_Period_CMP_Write + $d 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $t 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $d 0x0000364c 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00003650 0 .text.UART0_DeInit + $t 0x00003650 0 .text.UART0_DeInit + $d 0x00003664 0 .text.UART0_DeInit + $d 0x00003668 0 .text.UART1_DeInit + $t 0x00003668 0 .text.UART1_DeInit + $d 0x0000367c 0 .text.UART1_DeInit + $d 0x00003680 0 .text.UART2_DeInit + $t 0x00003680 0 .text.UART2_DeInit + $d 0x00003694 0 .text.UART2_DeInit + $d 0x00003698 0 .text.UART0_Int_Enable + $t 0x00003698 0 .text.UART0_Int_Enable + $d 0x000036ac 0 .text.UART0_Int_Enable + $d 0x000036b4 0 .text.UART2_Int_Enable + $t 0x000036b4 0 .text.UART2_Int_Enable + $d 0x000036c8 0 .text.UART2_Int_Enable + $d 0x000036d0 0 .text.UART_IO_Init + $t 0x000036d0 0 .text.UART_IO_Init + $d 0x000037b4 0 .text.UART_IO_Init + $d 0x000037bc 0 .text.UARTInit + $t 0x000037bc 0 .text.UARTInit + $d 0x000037c8 0 .text.UARTInit + $d 0x000037cc 0 .text.UARTInitRxTxIntEn + $t 0x000037cc 0 .text.UARTInitRxTxIntEn + $d 0x000037d8 0 .text.UARTInitRxTxIntEn + $d 0x000037dc 0 .text.UARTTransmit + $t 0x000037dc 0 .text.UARTTransmit + $d 0x000037fc 0 .text.EPT_Stop + $t 0x000037fc 0 .text.EPT_Stop + $d 0x0000381c 0 .text.EPT_Stop + $d 0x00003824 0 .text.startup.main + $t 0x00003824 0 .text.startup.main + $d 0x00003890 0 .text.startup.main + $d 0x0000389c 0 .text.delay_nms + $t 0x0000389c 0 .text.delay_nms + $d 0x000038c8 0 .text.GPT0_CONFIG + $t 0x000038c8 0 .text.GPT0_CONFIG + $d 0x00003958 0 .text.GPT0_CONFIG + $d 0x0000395c 0 .text.BT_CONFIG + $t 0x0000395c 0 .text.BT_CONFIG + $d 0x000039b4 0 .text.BT_CONFIG + $d 0x000039bc 0 .text.SYSCON_CONFIG + $t 0x000039bc 0 .text.SYSCON_CONFIG + $d 0x00003a20 0 .text.APT32F102_init + $t 0x00003a20 0 .text.APT32F102_init + $d 0x00003a68 0 .text.APT32F102_init + $d 0x00003a70 0 .text.SYSCONIntHandler + $t 0x00003a70 0 .text.SYSCONIntHandler + $d 0x00003b5c 0 .text.SYSCONIntHandler + $d 0x00003b60 0 .text.IFCIntHandler + $t 0x00003b60 0 .text.IFCIntHandler + $d 0x00003bc4 0 .text.IFCIntHandler + $d 0x00003bc8 0 .text.ADCIntHandler + $t 0x00003bc8 0 .text.ADCIntHandler + $d 0x00003c2c 0 .text.ADCIntHandler + $d 0x00003c30 0 .text.EPT0IntHandler + $t 0x00003c30 0 .text.EPT0IntHandler + $d 0x00003dd0 0 .text.EPT0IntHandler + $d 0x00003ddc 0 .text.WWDTHandler + $t 0x00003ddc 0 .text.WWDTHandler + $d 0x00003e0c 0 .text.WWDTHandler + $d 0x00003e10 0 .text.GPT0IntHandler + $t 0x00003e10 0 .text.GPT0IntHandler + $d 0x00003e8c 0 .text.GPT0IntHandler + $d 0x00003e90 0 .text.RTCIntHandler + $t 0x00003e90 0 .text.RTCIntHandler + $d 0x00003ef8 0 .text.RTCIntHandler + $d 0x00003f00 0 .text.UART0IntHandler + $t 0x00003f00 0 .text.UART0IntHandler + $d 0x00003f38 0 .text.UART0IntHandler + $d 0x00003f3c 0 .text.UART1IntHandler + $t 0x00003f3c 0 .text.UART1IntHandler + $d 0x00003f74 0 .text.UART1IntHandler + $d 0x00003f78 0 .text.UART2IntHandler + $t 0x00003f78 0 .text.UART2IntHandler + $d 0x00003ff8 0 .text.UART2IntHandler + $d 0x0000400c 0 .text.SPI0IntHandler + $t 0x0000400c 0 .text.SPI0IntHandler + $d 0x000040f0 0 .text.SPI0IntHandler + $d 0x000040f4 0 .text.SIO0IntHandler + $t 0x000040f4 0 .text.SIO0IntHandler + $d 0x00004144 0 .text.SIO0IntHandler + $d 0x00004148 0 .text.EXI0IntHandler + $t 0x00004148 0 .text.EXI0IntHandler + $d 0x00004174 0 .text.EXI0IntHandler + $d 0x00004178 0 .text.EXI1IntHandler + $t 0x00004178 0 .text.EXI1IntHandler + $d 0x000041a4 0 .text.EXI1IntHandler + $d 0x000041a8 0 .text.EXI2to3IntHandler + $t 0x000041a8 0 .text.EXI2to3IntHandler + $d 0x000041ec 0 .text.EXI2to3IntHandler + $d 0x000041f0 0 .text.EXI4to9IntHandler + $t 0x000041f0 0 .text.EXI4to9IntHandler + $d 0x00004248 0 .text.EXI4to9IntHandler + $d 0x0000424c 0 .text.EXI10to15IntHandler + $t 0x0000424c 0 .text.EXI10to15IntHandler + $d 0x000042a8 0 .text.EXI10to15IntHandler + $d 0x000042ac 0 .text.LPTIntHandler + $t 0x000042ac 0 .text.LPTIntHandler + $d 0x000042dc 0 .text.LPTIntHandler + $d 0x000042e0 0 .text.BT0IntHandler + $t 0x000042e0 0 .text.BT0IntHandler + $d 0x00004328 0 .text.BT0IntHandler + $d 0x0000432c 0 .text.BT1IntHandler + $t 0x0000432c 0 .text.BT1IntHandler + $d 0x00004388 0 .text.BT1IntHandler + $d 0x00004390 0 .text.PriviledgeVioHandler + $t 0x00004390 0 .text.PriviledgeVioHandler + $d 0x00004392 0 .text.PendTrapHandler + $t 0x00004392 0 .text.PendTrapHandler + $d 0x0000439a 0 .text.Trap3Handler + $t 0x0000439a 0 .text.Trap3Handler + $d 0x000043a2 0 .text.Trap2Handler + $t 0x000043a2 0 .text.Trap2Handler + $d 0x000043aa 0 .text.Trap1Handler + $t 0x000043aa 0 .text.Trap1Handler + $d 0x000043b2 0 .text.Trap0Handler + $t 0x000043b2 0 .text.Trap0Handler + $d 0x000043ba 0 .text.UnrecExecpHandler + $t 0x000043ba 0 .text.UnrecExecpHandler + $d 0x000043c2 0 .text.BreakPointHandler + $t 0x000043c2 0 .text.BreakPointHandler + $d 0x000043ca 0 .text.AccessErrHandler + $t 0x000043ca 0 .text.AccessErrHandler + $d 0x000043d2 0 .text.IllegalInstrHandler + $t 0x000043d2 0 .text.IllegalInstrHandler + $d 0x000043da 0 .text.MisalignedHandler + $t 0x000043da 0 .text.MisalignedHandler + $d 0x000043e2 0 .text.CNTAIntHandler + $t 0x000043e2 0 .text.CNTAIntHandler + $d 0x000043ea 0 .text.I2CIntHandler + $t 0x000043ea 0 .text.I2CIntHandler + $d 0x000043f4 0 .text.__divsi3 + $t 0x000043f4 0 .text.__divsi3 + $d 0x00004414 0 .text.__divsi3 + $d 0x00004418 0 .text.__udivsi3 + $t 0x00004418 0 .text.__udivsi3 + $d 0x00004438 0 .text.__udivsi3 + $d 0x0000443c 0 .text.__modsi3 + $t 0x0000443c 0 .text.__modsi3 + $d 0x0000445c 0 .text.__modsi3 + $d 0x00004460 0 .text.__umodsi3 + $t 0x00004460 0 .text.__umodsi3 + $d 0x00004480 0 .text.__umodsi3 + $d 0x00004484 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00004484 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000448c 0 .text.UARTx_Init + $t 0x0000448c 0 .text.UARTx_Init + $d 0x00004548 0 .text.UARTx_Init + $d 0x00004564 0 .text.UART2_RecvINT_Processing + $t 0x00004564 0 .text.UART2_RecvINT_Processing + $d 0x000045b8 0 .text.UART2_RecvINT_Processing + $d 0x000045c8 0 .text.Dbg_Println + $t 0x000045c8 0 .text.Dbg_Println + $d 0x00004648 0 .text.Dbg_Println + $d 0x00004660 0 .text.RC522_Delay + $t 0x00004660 0 .text.RC522_Delay + $d 0x00004674 0 .text.RC522_ReadWriteOneByte + $t 0x00004674 0 .text.RC522_ReadWriteOneByte + $d 0x000046c4 0 .text.RC522_ReadWriteOneByte + $d 0x000046c8 0 .text.RC522_ReadRawRC + $t 0x000046c8 0 .text.RC522_ReadRawRC + $d 0x000046fc 0 .text.RC522_ReadRawRC + $d 0x00004700 0 .text.RC522_WriteRawRC + $t 0x00004700 0 .text.RC522_WriteRawRC + $d 0x0000472c 0 .text.RC522_WriteRawRC + $d 0x00004730 0 .text.RC522_PcdReset + $t 0x00004730 0 .text.RC522_PcdReset + $d 0x0000477c 0 .text.RC522_SetBitMask + $t 0x0000477c 0 .text.RC522_SetBitMask + $d 0x00004794 0 .text.RC522_PcdAntennaOn + $t 0x00004794 0 .text.RC522_PcdAntennaOn + $d 0x000047ae 0 .text.RC522_ClearBitMask + $t 0x000047ae 0 .text.RC522_ClearBitMask + $d 0x000047c4 0 .text.RC522_PcdAntennaOff + $t 0x000047c4 0 .text.RC522_PcdAntennaOff + $d 0x000047d0 0 .text.RC522_Reset + $t 0x000047d0 0 .text.RC522_Reset + M500PcdConfigISOType.part.1 0x000047e6 F 126 .text.M500PcdConfigISOType.part.1 + $d 0x000047e6 0 .text.M500PcdConfigISOType.part.1 + $t 0x000047e6 0 .text.M500PcdConfigISOType.part.1 + $d 0x00004864 0 .text.RC522_Init + $t 0x00004864 0 .text.RC522_Init + $d 0x000048f4 0 .text.RC522_Init + $d 0x000048fc 0 .text.RC522_PcdComMF522 + $t 0x000048fc 0 .text.RC522_PcdComMF522 + $d 0x00004a68 0 .text.RC522_PcdComMF522 + $d 0x00004a6c 0 .text.RC522_PcdRequest + $t 0x00004a6c 0 .text.RC522_PcdRequest + $d 0x00004aec 0 .text.RC522_PcdRequest + $d 0x00004af4 0 .text.RC522_PcdAnticoll + $t 0x00004af4 0 .text.RC522_PcdAnticoll + $d 0x00004b68 0 .text.Card_Read_TasK + $t 0x00004b68 0 .text.Card_Read_TasK + $d 0x00004bfc 0 .text.Card_Read_TasK + $d 0x00004c18 0 .text.Detect_SPI_task + $t 0x00004c18 0 .text.Detect_SPI_task + $d 0x00004c94 0 .text.Detect_SPI_task + $d 0x00004cb4 0 .text.RLY_Light_Ctrl + $t 0x00004cb4 0 .text.RLY_Light_Ctrl + $d 0x00004cf0 0 .text.RLY_Light_Ctrl + $d 0x00004d04 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $t 0x00004d04 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004d50 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004d6c 0 .text.LogicCtrl_Init + $t 0x00004d6c 0 .text.LogicCtrl_Init + $d 0x00004da0 0 .text.LogicCtrl_Init + $d 0x00004da8 0 .text.LogicCtrl_Task + $t 0x00004da8 0 .text.LogicCtrl_Task + $d 0x00004e7c 0 .text.LogicCtrl_Task + $d 0x00004e98 0 .text.LogicCtrl_NoRF_Init + $t 0x00004e98 0 .text.LogicCtrl_NoRF_Init + $d 0x00004f08 0 .text.LogicCtrl_NoRF_Init + $d 0x00004f20 0 .text.LogicCtrl_NoRF_Task + $t 0x00004f20 0 .text.LogicCtrl_NoRF_Task + $d 0x00004fc8 0 .text.LogicCtrl_NoRF_Task + $d 0x00004fe0 0 .text.BackLight_Task + $t 0x00004fe0 0 .text.BackLight_Task + $d 0x00004ffc 0 .text.BackLight_Task + $d 0x00005004 0 .text.Detect_WIFI_Task + $t 0x00005004 0 .text.Detect_WIFI_Task + $d 0x00005074 0 .text.Detect_WIFI_Task + $d 0x00005098 0 .text.Led_Task + $t 0x00005098 0 .text.Led_Task + $d 0x000050fc 0 .text.Led_Task + $d 0x00005110 0 .text.button_init + $t 0x00005110 0 .text.button_init + $d 0x0000514a 0 .text.button_attach + $t 0x0000514a 0 .text.button_attach + $d 0x00005154 0 .text.button_handler + $t 0x00005154 0 .text.button_handler + $d 0x00005274 0 .text.button_start + $t 0x00005274 0 .text.button_start + $d 0x00005294 0 .text.button_start + $d 0x00005298 0 .text.button_ticks + $t 0x00005298 0 .text.button_ticks + $d 0x000052b0 0 .text.button_ticks + $d 0x000052b4 0 .text.read_button_GPIO + $t 0x000052b4 0 .text.read_button_GPIO + $d 0x000052c4 0 .text.read_button_GPIO + $d 0x000052c8 0 .text.TK_Sampling_prog + $t 0x000052c8 0 .text.TK_Sampling_prog + $d 0x00005310 0 .text.TK_Sampling_prog + $d 0x00005320 0 .text.TKEYIntHandler + $t 0x00005320 0 .text.TKEYIntHandler + $d 0x0000539c 0 .text.TKEYIntHandler + $d 0x000053a8 0 .text.get_key_number + $t 0x000053a8 0 .text.get_key_number + $d 0x000053cc 0 .text.get_key_number + $d 0x000053d0 0 .text.TK_Scan_Start + $t 0x000053d0 0 .text.TK_Scan_Start + $d 0x000053e8 0 .text.TK_Scan_Start + $d 0x000053f0 0 .text.TK_Keymap_prog + $t 0x000053f0 0 .text.TK_Keymap_prog + $d 0x00005538 0 .text.TK_Keymap_prog + $d 0x00005570 0 .text.TK_overflow_predict + $t 0x00005570 0 .text.TK_overflow_predict + $d 0x00005658 0 .text.TK_overflow_predict + $d 0x0000568c 0 .text.TK_Baseline_tracking + $t 0x0000568c 0 .text.TK_Baseline_tracking + $d 0x00005830 0 .text.TK_Baseline_tracking + $d 0x0000585c 0 .text.TK_result_prog + $t 0x0000585c 0 .text.TK_result_prog + $d 0x0000589c 0 .text.TK_result_prog + $d 0x000058b0 0 .text.CORETHandler + $t 0x000058b0 0 .text.CORETHandler + $d 0x00005910 0 .text.CORETHandler + $d 0x00005928 0 .text.std_clk_calib + $t 0x00005928 0 .text.std_clk_calib + $d 0x00005b70 0 .text.std_clk_calib + bp 0x00005bac O 16 .rodata + dp_l 0x00005bbc O 16 .rodata + dp_h 0x00005bcc O 16 .rodata + blanks.1847 0x00005cf0 O 16 .rodata + zeroes.1848 0x00005d00 O 16 .rodata + CSWTCH.1 0x00005d10 O 576 .rodata + NUM.6035 0x200000b0 O 1 .bss + test_tick.5959 0x200002ec O 4 .bss + card_tick.5958 0x200002f0 O 4 .bss + head_handle 0x200002f8 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __cskyvprintfsnprintf 0x00001964 F 32 .text + __cskyvprintfvsnprintf 0x000019c2 F 90 .text + __memset_fast 0x00001a1c w F 136 .text + memset 0x00001a1c w F 136 .text + __memcpy_fast 0x00001aa4 w F 100 .text + memcpy 0x00001aa4 w F 100 .text + __v2_printf 0x00001b3c F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00001b3c F 1828 .text + __udivdi3 0x00002260 F 940 .text + __umoddi3 0x0000260c F 928 .text + __GI___dtostr 0x000029d2 F 826 .text + __dtostr 0x000029d2 F 826 .text + __isnan 0x00002d0c F 44 .text + __strlen_fast 0x00002d38 w F 82 .text + strlen 0x00002d38 w F 82 .text + __strcpy_fast 0x00002d8c w F 176 .text + strcpy 0x00002d8c w F 176 .text + __GI_strchr 0x00002e3c F 18 .text + strchr 0x00002e3c w F 18 .text + __GI_strerror 0x00002e50 F 28 .text + strerror 0x00002e50 F 28 .text + __isinf 0x00002e6c F 48 .text + __eqdf2 0x00002e9c F 58 .text + __ltdf2 0x00002ed8 F 58 .text + __main 0x00002f14 F 56 .text.__main + SYSCON_RST_VALUE 0x00002fc0 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x0000300c F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x0000303c F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x000030c4 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x000030ec F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00003128 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x0000313c F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00003154 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00003174 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00003190 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x000031ac F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x000031ec F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x000031f8 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x0000321c F 48 .text.Set_INT_Priority + GPIO_Init 0x0000324c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000332c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00003340 F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x0000334e F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00003356 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x0000335e F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00003374 F 16 .text.GPIO_Read_Status + GPIO_Read_Output 0x00003384 F 16 .text.GPIO_Read_Output + LPT_Soft_Reset 0x00003394 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000033a8 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000033b8 F 28 .text.BT_DeInit + BT_Start 0x000033d4 F 8 .text.BT_Start + BT_Soft_Reset 0x000033dc F 10 .text.BT_Soft_Reset + BT_Configure 0x000033e6 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000033fe F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000342a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00003430 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00003444 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00003454 F 160 .text.GPT_IO_Init + GPT_Configure 0x000034f4 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00003508 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x0000354c F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x00003560 F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x00003614 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x00003624 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x00003634 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x00003650 F 24 .text.UART0_DeInit + UART1_DeInit 0x00003668 F 24 .text.UART1_DeInit + UART2_DeInit 0x00003680 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00003698 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000036b4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x000036d0 F 236 .text.UART_IO_Init + UARTInit 0x000037bc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x000037cc F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000037dc F 30 .text.UARTTransmit + EPT_Stop 0x000037fc F 40 .text.EPT_Stop + main 0x00003824 F 120 .text.startup.main + delay_nms 0x0000389c F 44 .text.delay_nms + GPT0_CONFIG 0x000038c8 F 148 .text.GPT0_CONFIG + BT_CONFIG 0x0000395c F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x000039bc F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00003a20 F 80 .text.APT32F102_init + SYSCONIntHandler 0x00003a70 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00003b60 F 104 .text.IFCIntHandler + ADCIntHandler 0x00003bc8 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003c30 F 428 .text.EPT0IntHandler + WWDTHandler 0x00003ddc F 52 .text.WWDTHandler + GPT0IntHandler 0x00003e10 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00003e90 F 112 .text.RTCIntHandler + UART0IntHandler 0x00003f00 F 60 .text.UART0IntHandler + UART1IntHandler 0x00003f3c F 60 .text.UART1IntHandler + UART2IntHandler 0x00003f78 F 148 .text.UART2IntHandler + SPI0IntHandler 0x0000400c F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000040f4 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00004148 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00004178 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000041a8 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000041f0 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x0000424c F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000042ac F 52 .text.LPTIntHandler + BT0IntHandler 0x000042e0 F 76 .text.BT0IntHandler + BT1IntHandler 0x0000432c F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00004390 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00004392 F 8 .text.PendTrapHandler + Trap3Handler 0x0000439a F 8 .text.Trap3Handler + Trap2Handler 0x000043a2 F 8 .text.Trap2Handler + Trap1Handler 0x000043aa F 8 .text.Trap1Handler + Trap0Handler 0x000043b2 F 8 .text.Trap0Handler + UnrecExecpHandler 0x000043ba F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000043c2 F 8 .text.BreakPointHandler + AccessErrHandler 0x000043ca F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000043d2 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000043da F 8 .text.MisalignedHandler + CNTAIntHandler 0x000043e2 F 8 .text.CNTAIntHandler + I2CIntHandler 0x000043ea F 8 .text.I2CIntHandler + __divsi3 0x000043f4 F 36 .text.__divsi3 + __udivsi3 0x00004418 F 36 .text.__udivsi3 + __modsi3 0x0000443c F 36 .text.__modsi3 + __umodsi3 0x00004460 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00004484 F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x0000448c F 216 .text.UARTx_Init + UART2_RecvINT_Processing 0x00004564 F 100 .text.UART2_RecvINT_Processing + Dbg_Println 0x000045c8 F 152 .text.Dbg_Println + RC522_Delay 0x00004660 F 18 .text.RC522_Delay + RC522_ReadWriteOneByte 0x00004674 F 84 .text.RC522_ReadWriteOneByte + RC522_ReadRawRC 0x000046c8 F 56 .text.RC522_ReadRawRC + RC522_WriteRawRC 0x00004700 F 48 .text.RC522_WriteRawRC + RC522_PcdReset 0x00004730 F 76 .text.RC522_PcdReset + RC522_SetBitMask 0x0000477c F 24 .text.RC522_SetBitMask + RC522_PcdAntennaOn 0x00004794 F 26 .text.RC522_PcdAntennaOn + RC522_ClearBitMask 0x000047ae F 22 .text.RC522_ClearBitMask + RC522_PcdAntennaOff 0x000047c4 F 12 .text.RC522_PcdAntennaOff + RC522_Reset 0x000047d0 F 22 .text.RC522_Reset + RC522_Init 0x00004864 F 152 .text.RC522_Init + RC522_PcdComMF522 0x000048fc F 368 .text.RC522_PcdComMF522 + RC522_PcdRequest 0x00004a6c F 136 .text.RC522_PcdRequest + RC522_PcdAnticoll 0x00004af4 F 116 .text.RC522_PcdAnticoll + Card_Read_TasK 0x00004b68 F 176 .text.Card_Read_TasK + Detect_SPI_task 0x00004c18 F 156 .text.Detect_SPI_task + RLY_Light_Ctrl 0x00004cb4 F 80 .text.RLY_Light_Ctrl + KEY1_LONG_PRESS_RELEASE_Handler 0x00004d04 F 104 .text.KEY1_LONG_PRESS_RELEASE_Handler + LogicCtrl_Init 0x00004d6c F 60 .text.LogicCtrl_Init + LogicCtrl_Task 0x00004da8 F 240 .text.LogicCtrl_Task + LogicCtrl_NoRF_Init 0x00004e98 F 136 .text.LogicCtrl_NoRF_Init + LogicCtrl_NoRF_Task 0x00004f20 F 192 .text.LogicCtrl_NoRF_Task + BackLight_Task 0x00004fe0 F 36 .text.BackLight_Task + Detect_WIFI_Task 0x00005004 F 148 .text.Detect_WIFI_Task + Led_Task 0x00005098 F 120 .text.Led_Task + button_init 0x00005110 F 58 .text.button_init + button_attach 0x0000514a F 10 .text.button_attach + button_handler 0x00005154 F 288 .text.button_handler + button_start 0x00005274 F 36 .text.button_start + button_ticks 0x00005298 F 28 .text.button_ticks + read_button_GPIO 0x000052b4 F 20 .text.read_button_GPIO + TK_Sampling_prog 0x000052c8 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00005320 F 136 .text.TKEYIntHandler + get_key_number 0x000053a8 F 40 .text.get_key_number + TK_Scan_Start 0x000053d0 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x000053f0 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00005570 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000568c F 464 .text.TK_Baseline_tracking + TK_result_prog 0x0000585c F 84 .text.TK_result_prog + CORETHandler 0x000058b0 F 120 .text.CORETHandler + std_clk_calib 0x00005928 F 644 .text.std_clk_calib + __thenan_df 0x00005bdc O 20 .rodata + __clz_tab 0x00005bf0 O 256 .rodata + _end_rodata 0x0000687c 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + Dbg_Switch 0x20000068 O 4 .data + s_tkey 0x2000006c O 4 .data + samp_setover_f 0x20000070 O 1 .data + tk_overflow_en 0x20000071 O 1 .data + tk_div 0x20000072 O 34 .data + neg_build_bounce 0x20000094 O 1 .data + pos_build_bounce 0x20000095 O 1 .data + tk_scan_para0 0x20000098 O 4 .data + scan_step_temp 0x2000009c O 1 .data + _end_data 0x200000a0 0 .data + _bss_start 0x200000a0 0 .bss + rf_exist 0x200000a0 O 1 .bss + last_state 0x200000a1 O 1 .bss + finish_flag 0x200000a2 O 1 .bss + Card_Tick 0x200000a4 O 4 .bss + detect_tick 0x200000a8 O 4 .bss + detect_count 0x200000ac O 1 .bss + test_state 0x200000ad O 1 .bss + SysTick_100us 0x200000b4 O 4 .bss + SysTick_1ms 0x200000b8 O 4 .bss + RS485_Comming 0x200000bc O 4 .bss + RS485_Comm_Flag 0x200000c0 O 4 .bss + RS485_Comm_Start 0x200000c4 O 4 .bss + RS485_Comm_End 0x200000c8 O 4 .bss + SysTick_Now 0x200000cc O 4 .bss + SysTick_Last 0x200000d0 O 4 .bss + SysTick_Diff 0x200000d4 O 4 .bss + Dbg_Buffer 0x200000d8 O 512 .bss + FIFOLevelReg_flag 0x200002d8 O 1 .bss + scan_tick 0x200002dc O 4 .bss + HL_tick 0x200002e0 O 4 .bss + Tim_Flag 0x200002e4 O 4 .bss + start_light 0x200002e8 O 1 .bss + power_tick 0x200002f4 O 4 .bss + Press_debounce_data 0x200002fc O 1 .bss + TK_Lowpower_mode 0x200002fd O 1 .bss + TK_Lowpower_level 0x200002fe O 1 .bss + TK_longpress_time 0x20000300 O 4 .bss + Release_debounce_data 0x20000304 O 1 .bss + Key_mode 0x20000305 O 1 .bss + TK_icon 0x20000306 O 34 .bss + MultiTimes_Filter 0x20000328 O 1 .bss + Base_Speed 0x20000329 O 1 .bss + TK_IO_ENABLE 0x2000032c O 4 .bss + Valid_Key_Num 0x20000330 O 1 .bss + TK_senprd 0x20000332 O 34 .bss + TK_Wakeup_level 0x20000354 O 1 .bss + TK_Triggerlevel 0x20000356 O 34 .bss + TK_EC_LEVEL 0x20000378 O 2 .bss + TK_FVR_LEVEL 0x2000037a O 2 .bss + TK_BaseCnt 0x2000037c O 4 .bss + TK_PSEL_MODE 0x20000380 O 2 .bss + R_CMPB_BUF 0x20000384 O 4 .bss + R_CMPA_BUF 0x20000388 O 4 .bss + R_SIORX_buf 0x2000038c O 40 .bss + g_uart 0x200003b4 O 115 .bss + CardInfo 0x20000428 O 52 .bss + g_read 0x2000045c O 8 .bss + KEY1 0x20000464 O 48 .bss + dm_in 0x20000494 O 9 .bss + baseline_data0 0x200004a0 O 34 .bss + TK_Postive_build2 0x200004c2 O 17 .bss + Key_Map1 0x200004d4 O 4 .bss + offset_data2_abs 0x200004d8 O 34 .bss + scan_f 0x200004fa O 1 .bss + offset_data1_abs 0x200004fc O 34 .bss + Release_debounce0 0x2000051e O 17 .bss + Key_Map0 0x20000530 O 4 .bss + bsae_over_f 0x20000534 O 1 .bss + scan_cnt 0x20000536 O 2 .bss + Press_debounce0 0x20000538 O 17 .bss + offset_data0 0x2000054a O 34 .bss + sampling_data1 0x2000056c O 34 .bss + Key_Map2 0x20000590 O 4 .bss + Release_debounce1 0x20000594 O 17 .bss + tk_overflow_f 0x200005a5 O 1 .bss + TK_Negtive_build2 0x200005a6 O 17 .bss + base_update_f 0x200005b7 O 1 .bss + TK_Postive_build1 0x200005b8 O 17 .bss + time_cnt 0x200005cc O 4 .bss + lpt_scan_pend_cnt 0x200005d0 O 2 .bss + TK_track_cnt 0x200005d2 O 1 .bss + Key_Map 0x200005d4 O 4 .bss + baseline_data1 0x200005d8 O 34 .bss + TK_Postive_build0 0x200005fa O 17 .bss + sampling_data2 0x2000060c O 34 .bss + offset_data1 0x2000062e O 34 .bss + TK_ovrdect_cnt 0x20000650 O 1 .bss + Press_debounce2 0x20000651 O 17 .bss + TK_Negtive_build1 0x20000662 O 17 .bss + tk_num 0x20000673 O 1 .bss + TK_Negtive_build0 0x20000674 O 17 .bss + Press_debounce1 0x20000685 O 17 .bss + Release_debounce2 0x20000696 O 17 .bss + r_Key_Map_Temp 0x200006a8 O 4 .bss + tk_seque 0x200006ac O 17 .bss + scan_step 0x200006bd O 1 .bss + baseline_data2 0x200006be O 34 .bss + tk_sampling_max 0x200006e0 O 34 .bss + offset_data0_abs 0x20000702 O 34 .bss + offset_data2 0x20000724 O 34 .bss + sampling_data0 0x20000746 O 34 .bss + errno 0x20000768 O 4 .bss + __malloc_lock 0x2000076c O 4 .bss + _ebss 0x20000770 0 .bss + _end 0x20000770 0 .bss + end 0x20000770 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x0000687c, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1012 .text pow.o + 0x00000b5e 0x00000006 Code RO 1020 .text fabs.o + 0x00000b64 0x00000020 Code RO 1026 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1033 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1044 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1049 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1056 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1063 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1070 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1077 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1084 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1091 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1098 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1105 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1119 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1126 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1133 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1139 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1146 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1153 .text _fpcmp_parts_df.o + 0x00001964 0x00000020 Code RO 1174 .text snprintf_required.o + 0x00001984 0x00000098 Code RO 1181 .text vsnprintf_required.o + 0x00001a1c 0x00000088 Code RO 1188 .text memset_fast.o + 0x00001aa4 0x00000064 Code RO 1193 .text memcpy_fast.o + 0x00001b08 0x00000758 Code RO 1351 .text __v2_printfDFHLlMOPpSSsWp.o + 0x00002260 0x000003ac Code RO 1410 .text _udivdi3.o + 0x0000260c 0x000003a0 Code RO 1417 .text _umoddi3.o + 0x000029ac 0x00000360 Code RO 1438 .text __dtostr.o + 0x00002d0c 0x0000002c Code RO 1446 .text __isnan.o + 0x00002d38 0x00000052 Code RO 1458 .text strlen_fast.o + 0x00002d8a 0x00000002 PAD + 0x00002d8c 0x000000b0 Code RO 1463 .text strcpy_fast.o + 0x00002e3c 0x00000012 Code RO 1468 .text strchr.o + 0x00002e4e 0x00000002 PAD + 0x00002e50 0x0000001c Code RO 1473 .text strerror.o + 0x00002e6c 0x00000030 Code RO 1481 .text __isinf.o + 0x00002e9c 0x0000003a Code RO 1487 .text _eq_df.o + 0x00002ed6 0x00000002 PAD + 0x00002ed8 0x0000003a Code RO 1494 .text _lt_df.o + 0x00002f14 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00002f4c 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00002fc0 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x0000300c 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000303c 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x000030c4 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x000030ec 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003128 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x0000313c 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00003154 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00003174 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00003190 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031ac 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x000031ec 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031f8 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000321c 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000324c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000332c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00003340 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x0000334e 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00003356 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x0000335e 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00003374 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00003384 0x00000010 Code RO 152 .text.GPIO_Read_Output Obj/FWlib_apt32f102_gpio.o + 0x00003394 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000033a8 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000033b8 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000033d4 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000033dc 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000033e6 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000033fe 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000342a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00003430 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00003444 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00003454 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x000034f4 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003508 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000354c 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003560 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003614 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x00003624 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x00003634 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x00003650 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003668 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003680 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003698 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036b4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036d0 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000037bc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x000037cc 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000037dc 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000037fc 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00003824 0x00000078 Code RO 690 .text.startup.main Obj/main.o + 0x0000389c 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x000038c8 0x00000094 Code RO 711 .text.GPT0_CONFIG Obj/mcu_initial.o + 0x0000395c 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x000039bc 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00003a20 0x00000050 Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00003a70 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00003b60 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003bc8 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003c30 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003ddc 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00003e10 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00003e90 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00003f00 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003f3c 0x0000003c Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003f78 0x00000094 Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x0000400c 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000040f4 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00004148 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00004178 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000041a8 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000041f0 0x0000005c Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x0000424c 0x00000060 Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000042ac 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x000042e0 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x0000432c 0x00000064 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00004390 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00004392 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000439a 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000043a2 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000043aa 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000043b2 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000043ba 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000043c2 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000043ca 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000043d2 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000043da 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x000043e2 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x000043ea 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000043f4 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00004418 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x0000443c 0x00000024 Code RO 787 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00004460 0x00000024 Code RO 788 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00004484 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000448c 0x000000d8 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00004564 0x00000064 Code RO 822 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000045c8 0x00000098 Code RO 827 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00004660 0x00000012 Code RO 848 .text.RC522_Delay Obj/SYSTEM_rc522.o + 0x00004674 0x00000054 Code RO 849 .text.RC522_ReadWriteOneByte Obj/SYSTEM_rc522.o + 0x000046c8 0x00000038 Code RO 850 .text.RC522_ReadRawRC Obj/SYSTEM_rc522.o + 0x00004700 0x00000030 Code RO 851 .text.RC522_WriteRawRC Obj/SYSTEM_rc522.o + 0x00004730 0x0000004c Code RO 852 .text.RC522_PcdReset Obj/SYSTEM_rc522.o + 0x0000477c 0x00000018 Code RO 853 .text.RC522_SetBitMask Obj/SYSTEM_rc522.o + 0x00004794 0x0000001a Code RO 854 .text.RC522_PcdAntennaOn Obj/SYSTEM_rc522.o + 0x000047ae 0x00000016 Code RO 855 .text.RC522_ClearBitMask Obj/SYSTEM_rc522.o + 0x000047c4 0x0000000c Code RO 856 .text.RC522_PcdAntennaOff Obj/SYSTEM_rc522.o + 0x000047d0 0x00000016 Code RO 857 .text.RC522_Reset Obj/SYSTEM_rc522.o + 0x000047e6 0x0000007e Code RO 859 .text.M500PcdConfigISOType.part.1 Obj/SYSTEM_rc522.o + 0x00004864 0x00000098 Code RO 861 .text.RC522_Init Obj/SYSTEM_rc522.o + 0x000048fc 0x00000170 Code RO 862 .text.RC522_PcdComMF522 Obj/SYSTEM_rc522.o + 0x00004a6c 0x00000088 Code RO 868 .text.RC522_PcdRequest Obj/SYSTEM_rc522.o + 0x00004af4 0x00000074 Code RO 869 .text.RC522_PcdAnticoll Obj/SYSTEM_rc522.o + 0x00004b68 0x000000b0 Code RO 870 .text.Card_Read_TasK Obj/SYSTEM_rc522.o + 0x00004c18 0x0000009c Code RO 871 .text.Detect_SPI_task Obj/SYSTEM_rc522.o + 0x00004cb4 0x00000050 Code RO 890 .text.RLY_Light_Ctrl Obj/SYSTEM_logic_ctrl.o + 0x00004d04 0x00000068 Code RO 891 .text.KEY1_LONG_PRESS_RELEASE_Handler Obj/SYSTEM_logic_ctrl.o + 0x00004d6c 0x0000003c Code RO 892 .text.LogicCtrl_Init Obj/SYSTEM_logic_ctrl.o + 0x00004da8 0x000000f0 Code RO 893 .text.LogicCtrl_Task Obj/SYSTEM_logic_ctrl.o + 0x00004e98 0x00000088 Code RO 896 .text.LogicCtrl_NoRF_Init Obj/SYSTEM_logic_ctrl.o + 0x00004f20 0x000000c0 Code RO 897 .text.LogicCtrl_NoRF_Task Obj/SYSTEM_logic_ctrl.o + 0x00004fe0 0x00000024 Code RO 898 .text.BackLight_Task Obj/SYSTEM_logic_ctrl.o + 0x00005004 0x00000094 Code RO 899 .text.Detect_WIFI_Task Obj/SYSTEM_logic_ctrl.o + 0x00005098 0x00000078 Code RO 901 .text.Led_Task Obj/SYSTEM_logic_ctrl.o + 0x00005110 0x0000003a Code RO 919 .text.button_init Obj/SYSTEM_button.o + 0x0000514a 0x0000000a Code RO 920 .text.button_attach Obj/SYSTEM_button.o + 0x00005154 0x00000120 Code RO 922 .text.button_handler Obj/SYSTEM_button.o + 0x00005274 0x00000024 Code RO 923 .text.button_start Obj/SYSTEM_button.o + 0x00005298 0x0000001c Code RO 925 .text.button_ticks Obj/SYSTEM_button.o + 0x000052b4 0x00000014 Code RO 926 .text.read_button_GPIO Obj/SYSTEM_button.o + 0x000052c8 0x00000058 Code RO 958 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00005320 0x00000088 Code RO 962 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000053a8 0x00000028 Code RO 963 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x000053d0 0x00000020 Code RO 965 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x000053f0 0x00000180 Code RO 966 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00005570 0x0000011c Code RO 967 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x0000568c 0x000001d0 Code RO 968 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x0000585c 0x00000054 Code RO 969 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000058b0 0x00000078 Code RO 970 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00005928 0x00000284 Code RO 992 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00005bac 0x00000030 Data RO 1015 .rodata pow.o + 0x00005bdc 0x00000014 Data RO 1115 .rodata _thenan_df.o + 0x00005bf0 0x00000100 Data RO 1163 .rodata _clz.o + 0x00005cf0 0x00000020 Data RO 1354 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x00005d10 0x00000240 Data RO 1476 .rodata strerror.o + 0x00005f50 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x00005f5b 0x0000003e Data RO 831 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x00005f99 0x0000007d Data RO 872 .rodata.str1.1 Obj/SYSTEM_rc522.o + 0x00006016 0x000000b3 Data RO 902 .rodata.str1.1 Obj/SYSTEM_logic_ctrl.o + 0x000060c9 0x00000022 Data RO 1355 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x000060eb 0x00000008 Data RO 1441 .rodata.str1.1 __dtostr.o + 0x000060f3 0x00000787 Data RO 1477 .rodata.str1.1 strerror.o + 0x0000687a 0x00000002 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000770, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000004 Data RW 819 .data Obj/SYSTEM_uart.o + 0x2000006c 0x00000031 Data RW 949 .data FWlib_apt32f102_tkey_c_1_17.o + 0x2000009d 0x00000003 PAD + 0x200000a0 0x0000000e Zero RW 689 .bss Obj/main.o + 0x200000ae 0x00000002 PAD + 0x200000b0 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000bc 0x0000021c Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200002d8 0x0000000c Zero RW 847 .bss Obj/SYSTEM_rc522.o + 0x200002e4 0x00000014 Zero RW 888 .bss Obj/SYSTEM_logic_ctrl.o + 0x200002f8 0x00000004 Zero RW 918 .bss Obj/SYSTEM_button.o + 0x200002fc 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x20000382 0x00000002 PAD + 0x20000384 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x200003b4 0x00000073 Zero RW 844 COMMON Obj/SYSTEM_uart.o + 0x20000427 0x00000001 PAD + 0x20000428 0x00000034 Zero RW 885 COMMON Obj/SYSTEM_rc522.o + 0x2000045c 0x00000041 Zero RW 915 COMMON Obj/SYSTEM_logic_ctrl.o + 0x2000049d 0x00000003 PAD + 0x200004a0 0x000002c8 Zero RW 988 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000768 0x00000008 Zero RW 1431 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 286 Obj/arch_crt0.o + 56 0 0 0 822 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21132 Obj/FWlib_apt32f102_syscon.o + 328 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 120 11 0 148 11011 Obj/main.o + 466 0 0 0 16155 Obj/mcu_initial.o + 2434 0 0 60 14290 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 468 62 4 655 13107 Obj/SYSTEM_uart.o + 1618 125 0 64 16103 Obj/SYSTEM_rc522.o + 1116 179 0 85 12316 Obj/SYSTEM_logic_ctrl.o + 440 0 0 4 11568 Obj/SYSTEM_button.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 9564 377 108 1016 241544 Object Totals + 10 2 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 5040 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3560 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 23454 3280 160 1744 266558 Grand Totals + 23454 3280 160 1744 266558 Elf Image Totals + 23454 3280 160 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 26734 ( 26.11kB) +Total RW Size (RW Data + ZI Data) 1904 ( 1.86kB) +Total ROM Size (Code + RO Data + RW Data) 26894 ( 26.26kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250102.asm b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250102.asm new file mode 100644 index 0000000..46ba2bf --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250102.asm @@ -0,0 +1,14304 @@ + +.//Obj/TRF_TM_CR_V02_20250102.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 000043da .long 0x000043da + 8: 000043ca .long 0x000043ca + c: 00000184 .long 0x00000184 + 10: 000043d2 .long 0x000043d2 + 14: 00004390 .long 0x00004390 + 18: 00000184 .long 0x00000184 + 1c: 000043c2 .long 0x000043c2 + 20: 000043ba .long 0x000043ba + 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: 000043b2 .long 0x000043b2 + 44: 000043aa .long 0x000043aa + 48: 000043a2 .long 0x000043a2 + 4c: 0000439a .long 0x0000439a + 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: 00004392 .long 0x00004392 + 80: 00005b84 .long 0x00005b84 + 84: 00003a70 .long 0x00003a70 + 88: 00003b60 .long 0x00003b60 + 8c: 00003bc8 .long 0x00003bc8 + 90: 00003c30 .long 0x00003c30 + 94: 00000184 .long 0x00000184 + 98: 00003ddc .long 0x00003ddc + 9c: 00004148 .long 0x00004148 + a0: 00004178 .long 0x00004178 + a4: 00003e10 .long 0x00003e10 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00003e90 .long 0x00003e90 + b4: 00003f00 .long 0x00003f00 + b8: 00003f3c .long 0x00003f3c + bc: 00003f78 .long 0x00003f78 + c0: 00000184 .long 0x00000184 + c4: 000043ea .long 0x000043ea + c8: 00000184 .long 0x00000184 + cc: 0000400c .long 0x0000400c + d0: 000040f4 .long 0x000040f4 + d4: 000041a8 .long 0x000041a8 + d8: 000041f0 .long 0x000041f0 + dc: 0000424c .long 0x0000424c + e0: 000043e2 .long 0x000043e2 + e4: 000055f4 .long 0x000055f4 + e8: 000042ac .long 0x000042ac + ec: 00000184 .long 0x00000184 + f0: 000042e0 .long 0x000042e0 + f4: 0000432c .long 0x0000432c + 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, 0x2f14 // 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, 0x3824 // 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: 00002f14 .long 0x00002f14 + 198: 00000160 .long 0x00000160 + 19c: 00003824 .long 0x00003824 + 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, 0x5e80 // 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: 00005e80 .long 0x00005e80 + 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, 0x5e80 // 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, 0x5e80 // 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: 00005e80 .long 0x00005e80 + 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, 0x5eb0 // 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: 00005eb0 .long 0x00005eb0 + +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, 0x5eb0 // 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: 00005eb0 .long 0x00005eb0 + 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, 0x5eb0 // 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: 00005eb0 .long 0x00005eb0 + +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, 0x5ec4 // 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: 00005ec4 .long 0x00005ec4 + +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 <__cskyvprintfsnprintf>: + 1964: 1422 subi r14, r14, 8 + 1966: b861 st.w r3, (r14, 0x4) + 1968: b840 st.w r2, (r14, 0x0) + 196a: 14d0 push r15 + 196c: 1421 subi r14, r14, 4 + 196e: 9862 ld.w r3, (r14, 0x8) + 1970: b860 st.w r3, (r14, 0x0) + 1972: 9840 ld.w r2, (r14, 0x0) + 1974: 1b03 addi r3, r14, 12 + 1976: e0000026 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + 197a: 1401 addi r14, r14, 4 + 197c: d9ee2000 ld.w r15, (r14, 0x0) + 1980: 1403 addi r14, r14, 12 + 1982: 783c jmp r15 + +00001984 : + 1984: 14d3 push r4-r6, r15 + 1986: 6d4b mov r5, r2 + 1988: 9582 ld.w r4, (r5, 0x8) + 198a: 9241 ld.w r2, (r2, 0x4) + 198c: 610a subu r4, r2 + 198e: 3c40 cmpnei r4, 0 + 1990: 6d87 mov r6, r1 + 1992: 0c16 bf 0x19be // 19be + 1994: 6504 cmphs r1, r4 + 1996: 0802 bt 0x199a // 199a + 1998: 6d07 mov r4, r1 + 199a: 9560 ld.w r3, (r5, 0x0) + 199c: 3b40 cmpnei r3, 0 + 199e: 0c0d bf 0x19b8 // 19b8 + 19a0: 60c8 addu r3, r2 + 19a2: 6c43 mov r1, r0 + 19a4: 6c93 mov r2, r4 + 19a6: 6c0f mov r0, r3 + 19a8: e000007e bsr 0x1aa4 // 1aa4 <__memcpy_fast> + 19ac: 9500 ld.w r0, (r5, 0x0) + 19ae: 9521 ld.w r1, (r5, 0x4) + 19b0: 6010 addu r0, r4 + 19b2: 6004 addu r0, r1 + 19b4: 3200 movi r2, 0 + 19b6: a040 st.b r2, (r0, 0x0) + 19b8: 9561 ld.w r3, (r5, 0x4) + 19ba: 610c addu r4, r3 + 19bc: b581 st.w r4, (r5, 0x4) + 19be: 6c1b mov r0, r6 + 19c0: 1493 pop r4-r6, r15 + +000019c2 <__cskyvprintfvsnprintf>: + 19c2: 14d3 push r4-r6, r15 + 19c4: 1425 subi r14, r14, 20 + 19c6: 6d07 mov r4, r1 + 19c8: 6d43 mov r5, r0 + 19ca: 6c4b mov r1, r2 + 19cc: 1802 addi r0, r14, 8 + 19ce: 3200 movi r2, 0 + 19d0: 3c40 cmpnei r4, 0 + 19d2: b0a0 st.w r5, (r0, 0x0) + 19d4: b041 st.w r2, (r0, 0x4) + 19d6: 0c1c bf 0x1a0e // 1a0e <__cskyvprintfvsnprintf+0x4c> + 19d8: 5cc3 subi r6, r4, 1 + 19da: b0c2 st.w r6, (r0, 0x8) + 19dc: b800 st.w r0, (r14, 0x0) + 19de: 6c8f mov r2, r3 + 19e0: 100e lrw r0, 0x1984 // 1a18 <__cskyvprintfvsnprintf+0x56> + 19e2: b801 st.w r0, (r14, 0x4) + 19e4: 6c3b mov r0, r14 + 19e6: e00000ab bsr 0x1b3c // 1b3c <__v2_printf> + 19ea: 3d40 cmpnei r5, 0 + 19ec: 0c0f bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19ee: 3c40 cmpnei r4, 0 + 19f0: 0c0d bf 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f2: 38df btsti r0, 31 + 19f4: 080b bt 0x1a0a // 1a0a <__cskyvprintfvsnprintf+0x48> + 19f6: 3300 movi r3, 0 + 19f8: 2b00 subi r3, 1 + 19fa: 64d2 cmpne r4, r3 + 19fc: 0c0b bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 19fe: 6500 cmphs r0, r4 + 1a00: 0c09 bf 0x1a12 // 1a12 <__cskyvprintfvsnprintf+0x50> + 1a02: 6114 addu r4, r5 + 1a04: 2c00 subi r4, 1 + 1a06: 3100 movi r1, 0 + 1a08: a420 st.b r1, (r4, 0x0) + 1a0a: 1405 addi r14, r14, 20 + 1a0c: 1493 pop r4-r6, r15 + 1a0e: 3600 movi r6, 0 + 1a10: 07e5 br 0x19da // 19da <__cskyvprintfvsnprintf+0x18> + 1a12: 5d80 addu r4, r5, r0 + 1a14: 07f9 br 0x1a06 // 1a06 <__cskyvprintfvsnprintf+0x44> + 1a16: 0000 bkpt + 1a18: 00001984 .long 0x00001984 + +00001a1c <__memset_fast>: + 1a1c: 14c3 push r4-r6 + 1a1e: 7444 zextb r1, r1 + 1a20: 3a40 cmpnei r2, 0 + 1a22: 0c1f bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a24: 6d43 mov r5, r0 + 1a26: 6d03 mov r4, r0 + 1a28: 3603 movi r6, 3 + 1a2a: 6918 and r4, r6 + 1a2c: 3c40 cmpnei r4, 0 + 1a2e: 0c1a bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a30: a520 st.b r1, (r5, 0x0) + 1a32: 2a00 subi r2, 1 + 1a34: 3a40 cmpnei r2, 0 + 1a36: 0c15 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a38: 2500 addi r5, 1 + 1a3a: 6d17 mov r4, r5 + 1a3c: 3603 movi r6, 3 + 1a3e: 6918 and r4, r6 + 1a40: 3c40 cmpnei r4, 0 + 1a42: 0c10 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a44: a520 st.b r1, (r5, 0x0) + 1a46: 2a00 subi r2, 1 + 1a48: 3a40 cmpnei r2, 0 + 1a4a: 0c0b bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a4c: 2500 addi r5, 1 + 1a4e: 6d17 mov r4, r5 + 1a50: 3603 movi r6, 3 + 1a52: 6918 and r4, r6 + 1a54: 3c40 cmpnei r4, 0 + 1a56: 0c06 bf 0x1a62 // 1a62 <__memset_fast+0x46> + 1a58: a520 st.b r1, (r5, 0x0) + 1a5a: 2a00 subi r2, 1 + 1a5c: 2500 addi r5, 1 + 1a5e: 0402 br 0x1a62 // 1a62 <__memset_fast+0x46> + 1a60: 1483 pop r4-r6 + 1a62: 4168 lsli r3, r1, 8 + 1a64: 6c4c or r1, r3 + 1a66: 4170 lsli r3, r1, 16 + 1a68: 6c4c or r1, r3 + 1a6a: 3a2f cmplti r2, 16 + 1a6c: 0809 bt 0x1a7e // 1a7e <__memset_fast+0x62> + 1a6e: b520 st.w r1, (r5, 0x0) + 1a70: b521 st.w r1, (r5, 0x4) + 1a72: b522 st.w r1, (r5, 0x8) + 1a74: b523 st.w r1, (r5, 0xc) + 1a76: 2a0f subi r2, 16 + 1a78: 250f addi r5, 16 + 1a7a: 3a2f cmplti r2, 16 + 1a7c: 0ff9 bf 0x1a6e // 1a6e <__memset_fast+0x52> + 1a7e: 3a23 cmplti r2, 4 + 1a80: 0806 bt 0x1a8c // 1a8c <__memset_fast+0x70> + 1a82: 2a03 subi r2, 4 + 1a84: b520 st.w r1, (r5, 0x0) + 1a86: 2503 addi r5, 4 + 1a88: 3a23 cmplti r2, 4 + 1a8a: 0ffc bf 0x1a82 // 1a82 <__memset_fast+0x66> + 1a8c: 3a40 cmpnei r2, 0 + 1a8e: 0fe9 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a90: 2a00 subi r2, 1 + 1a92: a520 st.b r1, (r5, 0x0) + 1a94: 3a40 cmpnei r2, 0 + 1a96: 0fe5 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1a98: 2a00 subi r2, 1 + 1a9a: a521 st.b r1, (r5, 0x1) + 1a9c: 3a40 cmpnei r2, 0 + 1a9e: 0fe1 bf 0x1a60 // 1a60 <__memset_fast+0x44> + 1aa0: a522 st.b r1, (r5, 0x2) + 1aa2: 1483 pop r4-r6 + +00001aa4 <__memcpy_fast>: + 1aa4: 14c3 push r4-r6 + 1aa6: 6d83 mov r6, r0 + 1aa8: 6d07 mov r4, r1 + 1aaa: 6d18 or r4, r6 + 1aac: 3303 movi r3, 3 + 1aae: 690c and r4, r3 + 1ab0: 3c40 cmpnei r4, 0 + 1ab2: 0c0b bf 0x1ac8 // 1ac8 <__memcpy_fast+0x24> + 1ab4: 3a40 cmpnei r2, 0 + 1ab6: 0c08 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1ab8: 8160 ld.b r3, (r1, 0x0) + 1aba: 2100 addi r1, 1 + 1abc: 2a00 subi r2, 1 + 1abe: a660 st.b r3, (r6, 0x0) + 1ac0: 2600 addi r6, 1 + 1ac2: 3a40 cmpnei r2, 0 + 1ac4: 0bfa bt 0x1ab8 // 1ab8 <__memcpy_fast+0x14> + 1ac6: 1483 pop r4-r6 + 1ac8: 3a2f cmplti r2, 16 + 1aca: 080e bt 0x1ae6 // 1ae6 <__memcpy_fast+0x42> + 1acc: 91a0 ld.w r5, (r1, 0x0) + 1ace: 9161 ld.w r3, (r1, 0x4) + 1ad0: 9182 ld.w r4, (r1, 0x8) + 1ad2: b6a0 st.w r5, (r6, 0x0) + 1ad4: 91a3 ld.w r5, (r1, 0xc) + 1ad6: b661 st.w r3, (r6, 0x4) + 1ad8: b682 st.w r4, (r6, 0x8) + 1ada: b6a3 st.w r5, (r6, 0xc) + 1adc: 2a0f subi r2, 16 + 1ade: 210f addi r1, 16 + 1ae0: 260f addi r6, 16 + 1ae2: 3a2f cmplti r2, 16 + 1ae4: 0ff4 bf 0x1acc // 1acc <__memcpy_fast+0x28> + 1ae6: 3a23 cmplti r2, 4 + 1ae8: 0808 bt 0x1af8 // 1af8 <__memcpy_fast+0x54> + 1aea: 9160 ld.w r3, (r1, 0x0) + 1aec: 2a03 subi r2, 4 + 1aee: 2103 addi r1, 4 + 1af0: b660 st.w r3, (r6, 0x0) + 1af2: 2603 addi r6, 4 + 1af4: 3a23 cmplti r2, 4 + 1af6: 0ffa bf 0x1aea // 1aea <__memcpy_fast+0x46> + 1af8: 3a40 cmpnei r2, 0 + 1afa: 0fe6 bf 0x1ac6 // 1ac6 <__memcpy_fast+0x22> + 1afc: 8160 ld.b r3, (r1, 0x0) + 1afe: 2100 addi r1, 1 + 1b00: 2a00 subi r2, 1 + 1b02: a660 st.b r3, (r6, 0x0) + 1b04: 2600 addi r6, 1 + 1b06: 07f9 br 0x1af8 // 1af8 <__memcpy_fast+0x54> + +00001b08 : + 1b08: 14d4 push r4-r7, r15 + 1b0a: 3820 cmplti r0, 1 + 1b0c: 6d03 mov r4, r0 + 1b0e: 6d47 mov r5, r1 + 1b10: 6df7 mov r7, r13 + 1b12: 080d bt 0x1b2c // 1b2c + 1b14: 6d83 mov r6, r0 + 1b16: 3e30 cmplti r6, 17 + 1b18: 9700 ld.w r0, (r7, 0x0) + 1b1a: 0c0a bf 0x1b2e // 1b2e + 1b1c: 5c63 subi r3, r4, 1 + 1b1e: 4b24 lsri r1, r3, 4 + 1b20: 4164 lsli r3, r1, 4 + 1b22: 9040 ld.w r2, (r0, 0x0) + 1b24: 5c2d subu r1, r4, r3 + 1b26: 9081 ld.w r4, (r0, 0x4) + 1b28: 6c17 mov r0, r5 + 1b2a: 7bd1 jsr r4 + 1b2c: 1494 pop r4-r7, r15 + 1b2e: 9040 ld.w r2, (r0, 0x0) + 1b30: 9061 ld.w r3, (r0, 0x4) + 1b32: 3110 movi r1, 16 + 1b34: 6c17 mov r0, r5 + 1b36: 7bcd jsr r3 + 1b38: 2e0f subi r6, 16 + 1b3a: 07ee br 0x1b16 // 1b16 + +00001b3c <__v2_printf>: + 1b3c: 14d4 push r4-r7, r15 + 1b3e: 143c subi r14, r14, 112 + 1b40: b826 st.w r1, (r14, 0x18) + 1b42: 1912 addi r1, r14, 72 + 1b44: 1b21 addi r3, r14, 132 + 1b46: b810 st.w r0, (r14, 0x40) + 1b48: 2100 addi r1, 1 + 1b4a: 3000 movi r0, 0 + 1b4c: 6d4b mov r5, r2 + 1b4e: b871 st.w r3, (r14, 0x44) + 1b50: b80a st.w r0, (r14, 0x28) + 1b52: b809 st.w r0, (r14, 0x24) + 1b54: b82d st.w r1, (r14, 0x34) + 1b56: 9886 ld.w r4, (r14, 0x18) + 1b58: 3325 movi r3, 37 + 1b5a: 84c0 ld.b r6, (r4, 0x0) + 1b5c: 3e40 cmpnei r6, 0 + 1b5e: 0c03 bf 0x1b64 // 1b64 <__v2_printf+0x28> + 1b60: 64da cmpne r6, r3 + 1b62: 0845 bt 0x1bec // 1bec <__v2_printf+0xb0> + 1b64: 9846 ld.w r2, (r14, 0x18) + 1b66: 5cc9 subu r6, r4, r2 + 1b68: 3e40 cmpnei r6, 0 + 1b6a: 0c0a bf 0x1b7e // 1b7e <__v2_printf+0x42> + 1b6c: 9870 ld.w r3, (r14, 0x40) + 1b6e: 9340 ld.w r2, (r3, 0x0) + 1b70: 6c5b mov r1, r6 + 1b72: 9361 ld.w r3, (r3, 0x4) + 1b74: 9806 ld.w r0, (r14, 0x18) + 1b76: 7bcd jsr r3 + 1b78: 9809 ld.w r0, (r14, 0x24) + 1b7a: 6018 addu r0, r6 + 1b7c: b809 st.w r0, (r14, 0x24) + 1b7e: 8420 ld.b r1, (r4, 0x0) + 1b80: 3940 cmpnei r1, 0 + 1b82: 0803 bt 0x1b88 // 1b88 <__v2_printf+0x4c> + 1b84: e8000367 br 0x2252 // 2252 <__v2_printf+0x716> + 1b88: 3637 movi r6, 55 + 1b8a: 1a01 addi r2, r14, 4 + 1b8c: 3700 movi r7, 0 + 1b8e: 6188 addu r6, r2 + 1b90: a6e0 st.b r7, (r6, 0x0) + 1b92: 3300 movi r3, 0 + 1b94: 3600 movi r6, 0 + 1b96: 2400 addi r4, 1 + 1b98: 3000 movi r0, 0 + 1b9a: 3100 movi r1, 0 + 1b9c: 2e00 subi r6, 1 + 1b9e: b867 st.w r3, (r14, 0x1c) + 1ba0: 3700 movi r7, 0 + 1ba2: 5c42 addi r2, r4, 1 + 1ba4: b846 st.w r2, (r14, 0x18) + 1ba6: 8480 ld.b r4, (r4, 0x0) + 1ba8: 3364 movi r3, 100 + 1baa: 64d2 cmpne r4, r3 + 1bac: 0d90 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1bae: 650d cmplt r3, r4 + 1bb0: 084e bt 0x1c4c // 1c4c <__v2_printf+0x110> + 1bb2: 322e movi r2, 46 + 1bb4: 6492 cmpne r4, r2 + 1bb6: 0d41 bf 0x1e38 // 1e38 <__v2_printf+0x2fc> + 1bb8: 6509 cmplt r2, r4 + 1bba: 0829 bt 0x1c0c // 1c0c <__v2_printf+0xd0> + 1bbc: 332a movi r3, 42 + 1bbe: 64d2 cmpne r4, r3 + 1bc0: 0d31 bf 0x1e22 // 1e22 <__v2_printf+0x2e6> + 1bc2: 650d cmplt r3, r4 + 1bc4: 081c bt 0x1bfc // 1bfc <__v2_printf+0xc0> + 1bc6: 3220 movi r2, 32 + 1bc8: 6492 cmpne r4, r2 + 1bca: 0d25 bf 0x1e14 // 1e14 <__v2_printf+0x2d8> + 1bcc: 3323 movi r3, 35 + 1bce: 64d2 cmpne r4, r3 + 1bd0: 0d27 bf 0x1e1e // 1e1e <__v2_printf+0x2e2> + 1bd2: 3c40 cmpnei r4, 0 + 1bd4: 0803 bt 0x1bda // 1bda <__v2_printf+0x9e> + 1bd6: e800033e br 0x2252 // 2252 <__v2_printf+0x716> + 1bda: 1e12 addi r6, r14, 72 + 1bdc: 3037 movi r0, 55 + 1bde: 1a01 addi r2, r14, 4 + 1be0: a680 st.b r4, (r6, 0x0) + 1be2: 6008 addu r0, r2 + 1be4: 3400 movi r4, 0 + 1be6: a080 st.b r4, (r0, 0x0) + 1be8: b8a5 st.w r5, (r14, 0x14) + 1bea: 042c br 0x1c42 // 1c42 <__v2_printf+0x106> + 1bec: 2400 addi r4, 1 + 1bee: 07b6 br 0x1b5a // 1b5a <__v2_printf+0x1e> + 1bf0: 3001 movi r0, 1 + 1bf2: 312b movi r1, 43 + 1bf4: 9886 ld.w r4, (r14, 0x18) + 1bf6: 07d6 br 0x1ba2 // 1ba2 <__v2_printf+0x66> + 1bf8: 6d4f mov r5, r3 + 1bfa: 07fd br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1bfc: 322b movi r2, 43 + 1bfe: 6492 cmpne r4, r2 + 1c00: 0ff8 bf 0x1bf0 // 1bf0 <__v2_printf+0xb4> + 1c02: 332d movi r3, 45 + 1c04: 64d2 cmpne r4, r3 + 1c06: 0be6 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c08: 3fa2 bseti r7, 2 + 1c0a: 07f5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c0c: 3339 movi r3, 57 + 1c0e: 650d cmplt r3, r4 + 1c10: 0809 bt 0x1c22 // 1c22 <__v2_printf+0xe6> + 1c12: 3231 movi r2, 49 + 1c14: 6491 cmplt r4, r2 + 1c16: 0d34 bf 0x1e7e // 1e7e <__v2_printf+0x342> + 1c18: 3330 movi r3, 48 + 1c1a: 64d2 cmpne r4, r3 + 1c1c: 0bdb bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c1e: 3fa7 bseti r7, 7 + 1c20: 07ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1c22: 3258 movi r2, 88 + 1c24: 6492 cmpne r4, r2 + 1c26: 0cd3 bf 0x1dcc // 1dcc <__v2_printf+0x290> + 1c28: 3063 movi r0, 99 + 1c2a: 6412 cmpne r4, r0 + 1c2c: 0bd3 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c2e: 3337 movi r3, 55 + 1c30: 1a01 addi r2, r14, 4 + 1c32: 5d2e addi r1, r5, 4 + 1c34: 85c0 ld.b r6, (r5, 0x0) + 1c36: 3400 movi r4, 0 + 1c38: 1d12 addi r5, r14, 72 + 1c3a: 60c8 addu r3, r2 + 1c3c: b825 st.w r1, (r14, 0x14) + 1c3e: a5c0 st.b r6, (r5, 0x0) + 1c40: a380 st.b r4, (r3, 0x0) + 1c42: 3601 movi r6, 1 + 1c44: 3500 movi r5, 0 + 1c46: 1c12 addi r4, r14, 72 + 1c48: e8000295 br 0x2172 // 2172 <__v2_printf+0x636> + 1c4c: 336d movi r3, 109 + 1c4e: 64d2 cmpne r4, r3 + 1c50: 0d2d bf 0x1eaa // 1eaa <__v2_printf+0x36e> + 1c52: 650d cmplt r3, r4 + 1c54: 0883 bt 0x1d5a // 1d5a <__v2_printf+0x21e> + 1c56: 3268 movi r2, 104 + 1c58: 6492 cmpne r4, r2 + 1c5a: 0d24 bf 0x1ea2 // 1ea2 <__v2_printf+0x366> + 1c5c: 6509 cmplt r2, r4 + 1c5e: 086f bt 0x1d3c // 1d3c <__v2_printf+0x200> + 1c60: 3366 movi r3, 102 + 1c62: 64d1 cmplt r4, r3 + 1c64: 0bb7 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1c66: 3840 cmpnei r0, 0 + 1c68: 0c05 bf 0x1c72 // 1c72 <__v2_printf+0x136> + 1c6a: 3037 movi r0, 55 + 1c6c: 1a01 addi r2, r14, 4 + 1c6e: 6008 addu r0, r2 + 1c70: a020 st.b r1, (r0, 0x0) + 1c72: 5d3e addi r1, r5, 8 + 1c74: b825 st.w r1, (r14, 0x14) + 1c76: 9500 ld.w r0, (r5, 0x0) + 1c78: 9521 ld.w r1, (r5, 0x4) + 1c7a: 98a7 ld.w r5, (r14, 0x1c) + 1c7c: 3d40 cmpnei r5, 0 + 1c7e: 0803 bt 0x1c84 // 1c84 <__v2_printf+0x148> + 1c80: 3301 movi r3, 1 + 1c82: b867 st.w r3, (r14, 0x1c) + 1c84: 3200 movi r2, 0 + 1c86: 2a00 subi r2, 1 + 1c88: 649a cmpne r6, r2 + 1c8a: 0d58 bf 0x1f3a // 1f3a <__v2_printf+0x3fe> + 1c8c: 6d5b mov r5, r6 + 1c8e: 9867 ld.w r3, (r14, 0x1c) + 1c90: b860 st.w r3, (r14, 0x0) + 1c92: b8a1 st.w r5, (r14, 0x4) + 1c94: 3328 movi r3, 40 + 1c96: 1a12 addi r2, r14, 72 + 1c98: e000069d bsr 0x29d2 // 29d2 <__GI___dtostr> + 1c9c: 3100 movi r1, 0 + 1c9e: 2900 subi r1, 1 + 1ca0: 645a cmpne r6, r1 + 1ca2: b808 st.w r0, (r14, 0x20) + 1ca4: 0c1a bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1ca6: 312e movi r1, 46 + 1ca8: 980d ld.w r0, (r14, 0x34) + 1caa: e00008c9 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cae: 3840 cmpnei r0, 0 + 1cb0: 98c8 ld.w r6, (r14, 0x20) + 1cb2: 0d48 bf 0x1f42 // 1f42 <__v2_printf+0x406> + 1cb4: 3d40 cmpnei r5, 0 + 1cb6: 0805 bt 0x1cc0 // 1cc0 <__v2_printf+0x184> + 1cb8: 3101 movi r1, 1 + 1cba: 685c and r1, r7 + 1cbc: 3940 cmpnei r1, 0 + 1cbe: 0d40 bf 0x1f3e // 1f3e <__v2_printf+0x402> + 1cc0: 58c2 addi r6, r0, 1 + 1cc2: 2500 addi r5, 1 + 1cc4: 5d59 subu r2, r5, r6 + 1cc6: 6080 addu r2, r0 + 1cc8: 3a20 cmplti r2, 1 + 1cca: 0805 bt 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1ccc: 2600 addi r6, 1 + 1cce: 8660 ld.b r3, (r6, 0x0) + 1cd0: 3b40 cmpnei r3, 0 + 1cd2: 0bf9 bt 0x1cc4 // 1cc4 <__v2_printf+0x188> + 1cd4: 3500 movi r5, 0 + 1cd6: a6a0 st.b r5, (r6, 0x0) + 1cd8: 3067 movi r0, 103 + 1cda: 6412 cmpne r4, r0 + 1cdc: 0822 bt 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cde: 312e movi r1, 46 + 1ce0: 1812 addi r0, r14, 72 + 1ce2: e00008ad bsr 0x2e3c // 2e3c <__GI_strchr> + 1ce6: 3840 cmpnei r0, 0 + 1ce8: 6d03 mov r4, r0 + 1cea: 0c1b bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1cec: 3165 movi r1, 101 + 1cee: e00008a7 bsr 0x2e3c // 2e3c <__GI_strchr> + 1cf2: 6c43 mov r1, r0 + 1cf4: 84c0 ld.b r6, (r4, 0x0) + 1cf6: 3e40 cmpnei r6, 0 + 1cf8: 0930 bt 0x1f58 // 1f58 <__v2_printf+0x41c> + 1cfa: 3940 cmpnei r1, 0 + 1cfc: 0c02 bf 0x1d00 // 1d00 <__v2_printf+0x1c4> + 1cfe: 6d07 mov r4, r1 + 1d00: 3630 movi r6, 48 + 1d02: 5c63 subi r3, r4, 1 + 1d04: 8340 ld.b r2, (r3, 0x0) + 1d06: 658a cmpne r2, r6 + 1d08: 0d2a bf 0x1f5c // 1f5c <__v2_printf+0x420> + 1d0a: 352e movi r5, 46 + 1d0c: 654a cmpne r2, r5 + 1d0e: 0802 bt 0x1d12 // 1d12 <__v2_printf+0x1d6> + 1d10: 6d0f mov r4, r3 + 1d12: 3000 movi r0, 0 + 1d14: 3940 cmpnei r1, 0 + 1d16: a400 st.b r0, (r4, 0x0) + 1d18: 0c04 bf 0x1d20 // 1d20 <__v2_printf+0x1e4> + 1d1a: 6c13 mov r0, r4 + 1d1c: e0000838 bsr 0x2d8c // 2d8c <__strcpy_fast> + 1d20: 1912 addi r1, r14, 72 + 1d22: 81c0 ld.b r6, (r1, 0x0) + 1d24: 332d movi r3, 45 + 1d26: 64da cmpne r6, r3 + 1d28: 0c02 bf 0x1d2c // 1d2c <__v2_printf+0x1f0> + 1d2a: 05ef br 0x2108 // 2108 <__v2_printf+0x5cc> + 1d2c: 3437 movi r4, 55 + 1d2e: 1801 addi r0, r14, 4 + 1d30: 352d movi r5, 45 + 1d32: 6100 addu r4, r0 + 1d34: a4a0 st.b r5, (r4, 0x0) + 1d36: 1912 addi r1, r14, 72 + 1d38: 5982 addi r4, r1, 1 + 1d3a: 05ec br 0x2112 // 2112 <__v2_printf+0x5d6> + 1d3c: 3369 movi r3, 105 + 1d3e: 64d2 cmpne r4, r3 + 1d40: 0cc6 bf 0x1ecc // 1ecc <__v2_printf+0x390> + 1d42: 326c movi r2, 108 + 1d44: 6492 cmpne r4, r2 + 1d46: 0b46 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d48: 9866 ld.w r3, (r14, 0x18) + 1d4a: 8340 ld.b r2, (r3, 0x0) + 1d4c: 650a cmpne r2, r4 + 1d4e: 08ac bt 0x1ea6 // 1ea6 <__v2_printf+0x36a> + 1d50: 9886 ld.w r4, (r14, 0x18) + 1d52: 2400 addi r4, 1 + 1d54: b886 st.w r4, (r14, 0x18) + 1d56: 3fa5 bseti r7, 5 + 1d58: 074e br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1d5a: 3371 movi r3, 113 + 1d5c: 64d2 cmpne r4, r3 + 1d5e: 0ffc bf 0x1d56 // 1d56 <__v2_printf+0x21a> + 1d60: 650d cmplt r3, r4 + 1d62: 081a bt 0x1d96 // 1d96 <__v2_printf+0x25a> + 1d64: 306f movi r0, 111 + 1d66: 6412 cmpne r4, r0 + 1d68: 0cfc bf 0x1f60 // 1f60 <__v2_printf+0x424> + 1d6a: 3170 movi r1, 112 + 1d6c: 6452 cmpne r4, r1 + 1d6e: 0b32 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1d70: 5d4e addi r2, r5, 4 + 1d72: 3400 movi r4, 0 + 1d74: 95a0 ld.w r5, (r5, 0x0) + 1d76: b845 st.w r2, (r14, 0x14) + 1d78: 1901 addi r1, r14, 4 + 1d7a: 3239 movi r2, 57 + 1d7c: b8a3 st.w r5, (r14, 0xc) + 1d7e: b884 st.w r4, (r14, 0x10) + 1d80: 3330 movi r3, 48 + 1d82: 180f addi r0, r14, 60 + 1d84: 3578 movi r5, 120 + 1d86: 6084 addu r2, r1 + 1d88: 0195 lrw r4, 0x6415 // 20b0 <__v2_printf+0x574> + 1d8a: 3fa1 bseti r7, 1 + 1d8c: a060 st.b r3, (r0, 0x0) + 1d8e: a2a0 st.b r5, (r2, 0x0) + 1d90: b88a st.w r4, (r14, 0x28) + 1d92: 3402 movi r4, 2 + 1d94: 04f1 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1d96: 3275 movi r2, 117 + 1d98: 6492 cmpne r4, r2 + 1d9a: 0d28 bf 0x1fea // 1fea <__v2_printf+0x4ae> + 1d9c: 3378 movi r3, 120 + 1d9e: 64d2 cmpne r4, r3 + 1da0: 0d44 bf 0x2028 // 2028 <__v2_printf+0x4ec> + 1da2: 3173 movi r1, 115 + 1da4: 6452 cmpne r4, r1 + 1da6: 0b16 bt 0x1bd2 // 1bd2 <__v2_printf+0x96> + 1da8: 3200 movi r2, 0 + 1daa: 3037 movi r0, 55 + 1dac: 1901 addi r1, r14, 4 + 1dae: 2a00 subi r2, 1 + 1db0: 5d6e addi r3, r5, 4 + 1db2: 9580 ld.w r4, (r5, 0x0) + 1db4: 6004 addu r0, r1 + 1db6: 3500 movi r5, 0 + 1db8: 649a cmpne r6, r2 + 1dba: b865 st.w r3, (r14, 0x14) + 1dbc: a0a0 st.b r5, (r0, 0x0) + 1dbe: 090b bt 0x1fd4 // 1fd4 <__v2_printf+0x498> + 1dc0: 6cd3 mov r3, r4 + 1dc2: 83c0 ld.b r6, (r3, 0x0) + 1dc4: 3e40 cmpnei r6, 0 + 1dc6: 0910 bt 0x1fe6 // 1fe6 <__v2_printf+0x4aa> + 1dc8: 5bd1 subu r6, r3, r4 + 1dca: 047f br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1dcc: 3840 cmpnei r0, 0 + 1dce: 0c05 bf 0x1dd8 // 1dd8 <__v2_printf+0x29c> + 1dd0: 3037 movi r0, 55 + 1dd2: 1b01 addi r3, r14, 4 + 1dd4: 600c addu r0, r3 + 1dd6: a020 st.b r1, (r0, 0x0) + 1dd8: 0228 lrw r1, 0x6404 // 20b4 <__v2_printf+0x578> + 1dda: 3020 movi r0, 32 + 1ddc: 681c and r0, r7 + 1dde: 3840 cmpnei r0, 0 + 1de0: b82a st.w r1, (r14, 0x28) + 1de2: 0d2b bf 0x2038 // 2038 <__v2_printf+0x4fc> + 1de4: 5d5e addi r2, r5, 8 + 1de6: b845 st.w r2, (r14, 0x14) + 1de8: 9520 ld.w r1, (r5, 0x0) + 1dea: 9541 ld.w r2, (r5, 0x4) + 1dec: b823 st.w r1, (r14, 0xc) + 1dee: b844 st.w r2, (r14, 0x10) + 1df0: 3001 movi r0, 1 + 1df2: 681c and r0, r7 + 1df4: 3840 cmpnei r0, 0 + 1df6: 0fce bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1df8: 98a3 ld.w r5, (r14, 0xc) + 1dfa: 9864 ld.w r3, (r14, 0x10) + 1dfc: 6d4c or r5, r3 + 1dfe: 3d40 cmpnei r5, 0 + 1e00: 0fc9 bf 0x1d92 // 1d92 <__v2_printf+0x256> + 1e02: 3039 movi r0, 57 + 1e04: 1d01 addi r5, r14, 4 + 1e06: 3130 movi r1, 48 + 1e08: 1a0f addi r2, r14, 60 + 1e0a: 6014 addu r0, r5 + 1e0c: a220 st.b r1, (r2, 0x0) + 1e0e: a080 st.b r4, (r0, 0x0) + 1e10: 3fa1 bseti r7, 1 + 1e12: 07c0 br 0x1d92 // 1d92 <__v2_printf+0x256> + 1e14: 3940 cmpnei r1, 0 + 1e16: 0aef bt 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e18: 3001 movi r0, 1 + 1e1a: 3120 movi r1, 32 + 1e1c: 06ec br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e1e: 3fa0 bseti r7, 0 + 1e20: 06ea br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e22: 9580 ld.w r4, (r5, 0x0) + 1e24: 3cdf btsti r4, 31 + 1e26: 5d6e addi r3, r5, 4 + 1e28: b887 st.w r4, (r14, 0x1c) + 1e2a: 0ee7 bf 0x1bf8 // 1bf8 <__v2_printf+0xbc> + 1e2c: 9847 ld.w r2, (r14, 0x1c) + 1e2e: 3500 movi r5, 0 + 1e30: 614a subu r5, r2 + 1e32: b8a7 st.w r5, (r14, 0x1c) + 1e34: 6d4f mov r5, r3 + 1e36: 06e9 br 0x1c08 // 1c08 <__v2_printf+0xcc> + 1e38: 98c6 ld.w r6, (r14, 0x18) + 1e3a: 8680 ld.b r4, (r6, 0x0) + 1e3c: 322a movi r2, 42 + 1e3e: 9866 ld.w r3, (r14, 0x18) + 1e40: 6492 cmpne r4, r2 + 1e42: 2300 addi r3, 1 + 1e44: 0c0b bf 0x1e5a // 1e5a <__v2_printf+0x31e> + 1e46: b865 st.w r3, (r14, 0x14) + 1e48: 3600 movi r6, 0 + 1e4a: 3300 movi r3, 0 + 1e4c: 2b2f subi r3, 48 + 1e4e: 60d0 addu r3, r4 + 1e50: 3b09 cmphsi r3, 10 + 1e52: 9845 ld.w r2, (r14, 0x14) + 1e54: 0c0c bf 0x1e6c // 1e6c <__v2_printf+0x330> + 1e56: b846 st.w r2, (r14, 0x18) + 1e58: 06a8 br 0x1ba8 // 1ba8 <__v2_printf+0x6c> + 1e5a: 95c0 ld.w r6, (r5, 0x0) + 1e5c: 3edf btsti r6, 31 + 1e5e: 5d8e addi r4, r5, 4 + 1e60: 0c03 bf 0x1e66 // 1e66 <__v2_printf+0x32a> + 1e62: 3600 movi r6, 0 + 1e64: 2e00 subi r6, 1 + 1e66: 6d53 mov r5, r4 + 1e68: b866 st.w r3, (r14, 0x18) + 1e6a: 06c5 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1e6c: 340a movi r4, 10 + 1e6e: 7d18 mult r4, r6 + 1e70: 9845 ld.w r2, (r14, 0x14) + 1e72: 6d8f mov r6, r3 + 1e74: 6190 addu r6, r4 + 1e76: 8280 ld.b r4, (r2, 0x0) + 1e78: 2200 addi r2, 1 + 1e7a: b845 st.w r2, (r14, 0x14) + 1e7c: 07e7 br 0x1e4a // 1e4a <__v2_printf+0x30e> + 1e7e: 3200 movi r2, 0 + 1e80: b847 st.w r2, (r14, 0x1c) + 1e82: 9867 ld.w r3, (r14, 0x1c) + 1e84: 320a movi r2, 10 + 1e86: 7cc8 mult r3, r2 + 1e88: 2c2f subi r4, 48 + 1e8a: 610c addu r4, r3 + 1e8c: b887 st.w r4, (r14, 0x1c) + 1e8e: 3300 movi r3, 0 + 1e90: 9886 ld.w r4, (r14, 0x18) + 1e92: 5c42 addi r2, r4, 1 + 1e94: 2b2f subi r3, 48 + 1e96: 8480 ld.b r4, (r4, 0x0) + 1e98: 60d0 addu r3, r4 + 1e9a: 3b09 cmphsi r3, 10 + 1e9c: b846 st.w r2, (r14, 0x18) + 1e9e: 0ff2 bf 0x1e82 // 1e82 <__v2_printf+0x346> + 1ea0: 07db br 0x1e56 // 1e56 <__v2_printf+0x31a> + 1ea2: 3fa6 bseti r7, 6 + 1ea4: 06a8 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1ea6: 3fa4 bseti r7, 4 + 1ea8: 06a6 br 0x1bf4 // 1bf4 <__v2_printf+0xb8> + 1eaa: 3840 cmpnei r0, 0 + 1eac: 0c05 bf 0x1eb6 // 1eb6 <__v2_printf+0x37a> + 1eae: 3637 movi r6, 55 + 1eb0: 1b01 addi r3, r14, 4 + 1eb2: 618c addu r6, r3 + 1eb4: a620 st.b r1, (r6, 0x0) + 1eb6: 033e lrw r1, 0x20000768 // 20b8 <__v2_printf+0x57c> + 1eb8: 9100 ld.w r0, (r1, 0x0) + 1eba: e00007cb bsr 0x2e50 // 2e50 <__GI_strerror> + 1ebe: 6d03 mov r4, r0 + 1ec0: e000073c bsr 0x2d38 // 2d38 <__strlen_fast> + 1ec4: 6d83 mov r6, r0 + 1ec6: b8a5 st.w r5, (r14, 0x14) + 1ec8: 3500 movi r5, 0 + 1eca: 0554 br 0x2172 // 2172 <__v2_printf+0x636> + 1ecc: 3840 cmpnei r0, 0 + 1ece: 0c05 bf 0x1ed8 // 1ed8 <__v2_printf+0x39c> + 1ed0: 3037 movi r0, 55 + 1ed2: 1a01 addi r2, r14, 4 + 1ed4: 6008 addu r0, r2 + 1ed6: a020 st.b r1, (r0, 0x0) + 1ed8: 3420 movi r4, 32 + 1eda: 691c and r4, r7 + 1edc: 3c40 cmpnei r4, 0 + 1ede: 0c1a bf 0x1f12 // 1f12 <__v2_printf+0x3d6> + 1ee0: 5d7e addi r3, r5, 8 + 1ee2: 9520 ld.w r1, (r5, 0x0) + 1ee4: 9541 ld.w r2, (r5, 0x4) + 1ee6: b865 st.w r3, (r14, 0x14) + 1ee8: b823 st.w r1, (r14, 0xc) + 1eea: b844 st.w r2, (r14, 0x10) + 1eec: 9804 ld.w r0, (r14, 0x10) + 1eee: 38df btsti r0, 31 + 1ef0: 0c0f bf 0x1f0e // 1f0e <__v2_printf+0x3d2> + 1ef2: 9883 ld.w r4, (r14, 0xc) + 1ef4: 98a4 ld.w r5, (r14, 0x10) + 1ef6: 3200 movi r2, 0 + 1ef8: 3300 movi r3, 0 + 1efa: 6488 cmphs r2, r2 + 1efc: 6093 subc r2, r4 + 1efe: 60d7 subc r3, r5 + 1f00: b843 st.w r2, (r14, 0xc) + 1f02: b864 st.w r3, (r14, 0x10) + 1f04: 3237 movi r2, 55 + 1f06: 1b01 addi r3, r14, 4 + 1f08: 352d movi r5, 45 + 1f0a: 608c addu r2, r3 + 1f0c: a2a0 st.b r5, (r2, 0x0) + 1f0e: 3401 movi r4, 1 + 1f10: 0438 br 0x1f80 // 1f80 <__v2_printf+0x444> + 1f12: 3310 movi r3, 16 + 1f14: 68dc and r3, r7 + 1f16: 3b40 cmpnei r3, 0 + 1f18: 0c08 bf 0x1f28 // 1f28 <__v2_printf+0x3ec> + 1f1a: 5d4e addi r2, r5, 4 + 1f1c: b845 st.w r2, (r14, 0x14) + 1f1e: 95a0 ld.w r5, (r5, 0x0) + 1f20: 559f asri r4, r5, 31 + 1f22: b8a3 st.w r5, (r14, 0xc) + 1f24: b884 st.w r4, (r14, 0x10) + 1f26: 07e3 br 0x1eec // 1eec <__v2_printf+0x3b0> + 1f28: 3140 movi r1, 64 + 1f2a: 685c and r1, r7 + 1f2c: 5d0e addi r0, r5, 4 + 1f2e: 3940 cmpnei r1, 0 + 1f30: 95a0 ld.w r5, (r5, 0x0) + 1f32: b805 st.w r0, (r14, 0x14) + 1f34: 0ff6 bf 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f36: 7557 sexth r5, r5 + 1f38: 07f4 br 0x1f20 // 1f20 <__v2_printf+0x3e4> + 1f3a: 3506 movi r5, 6 + 1f3c: 06a9 br 0x1c8e // 1c8e <__v2_printf+0x152> + 1f3e: 6d83 mov r6, r0 + 1f40: 06ca br 0x1cd4 // 1cd4 <__v2_printf+0x198> + 1f42: 3201 movi r2, 1 + 1f44: 689c and r2, r7 + 1f46: 3a40 cmpnei r2, 0 + 1f48: 0ec8 bf 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f4a: 1d12 addi r5, r14, 72 + 1f4c: 6158 addu r5, r6 + 1f4e: 332e movi r3, 46 + 1f50: 3000 movi r0, 0 + 1f52: a560 st.b r3, (r5, 0x0) + 1f54: a501 st.b r0, (r5, 0x1) + 1f56: 06c1 br 0x1cd8 // 1cd8 <__v2_printf+0x19c> + 1f58: 2400 addi r4, 1 + 1f5a: 06cd br 0x1cf4 // 1cf4 <__v2_printf+0x1b8> + 1f5c: 6d0f mov r4, r3 + 1f5e: 06d2 br 0x1d02 // 1d02 <__v2_printf+0x1c6> + 1f60: 3320 movi r3, 32 + 1f62: 68dc and r3, r7 + 1f64: 3b40 cmpnei r3, 0 + 1f66: 0c24 bf 0x1fae // 1fae <__v2_printf+0x472> + 1f68: 5d7e addi r3, r5, 8 + 1f6a: 9500 ld.w r0, (r5, 0x0) + 1f6c: 9521 ld.w r1, (r5, 0x4) + 1f6e: b865 st.w r3, (r14, 0x14) + 1f70: b803 st.w r0, (r14, 0xc) + 1f72: b824 st.w r1, (r14, 0x10) + 1f74: 3400 movi r4, 0 + 1f76: 3537 movi r5, 55 + 1f78: 1801 addi r0, r14, 4 + 1f7a: 3200 movi r2, 0 + 1f7c: 6140 addu r5, r0 + 1f7e: a540 st.b r2, (r5, 0x0) + 1f80: 3100 movi r1, 0 + 1f82: 2900 subi r1, 1 + 1f84: 9803 ld.w r0, (r14, 0xc) + 1f86: 98a4 ld.w r5, (r14, 0x10) + 1f88: 645a cmpne r6, r1 + 1f8a: 6c14 or r0, r5 + 1f8c: 0cc8 bf 0x211c // 211c <__v2_printf+0x5e0> + 1f8e: 6c9f mov r2, r7 + 1f90: 3a87 bclri r2, 7 + 1f92: 3840 cmpnei r0, 0 + 1f94: b848 st.w r2, (r14, 0x20) + 1f96: 08c6 bt 0x2122 // 2122 <__v2_printf+0x5e6> + 1f98: 3e40 cmpnei r6, 0 + 1f9a: 0cac bf 0x20f2 // 20f2 <__v2_printf+0x5b6> + 1f9c: 3c41 cmpnei r4, 1 + 1f9e: 0c68 bf 0x206e // 206e <__v2_printf+0x532> + 1fa0: 3c42 cmpnei r4, 2 + 1fa2: 0c8d bf 0x20bc // 20bc <__v2_printf+0x580> + 1fa4: 3300 movi r3, 0 + 1fa6: 3400 movi r4, 0 + 1fa8: b863 st.w r3, (r14, 0xc) + 1faa: b884 st.w r4, (r14, 0x10) + 1fac: 04bf br 0x212a // 212a <__v2_printf+0x5ee> + 1fae: 3010 movi r0, 16 + 1fb0: 681c and r0, r7 + 1fb2: 3840 cmpnei r0, 0 + 1fb4: 0c05 bf 0x1fbe // 1fbe <__v2_printf+0x482> + 1fb6: 5d8e addi r4, r5, 4 + 1fb8: b885 st.w r4, (r14, 0x14) + 1fba: 95a0 ld.w r5, (r5, 0x0) + 1fbc: 0408 br 0x1fcc // 1fcc <__v2_printf+0x490> + 1fbe: 3240 movi r2, 64 + 1fc0: 689c and r2, r7 + 1fc2: 5d2e addi r1, r5, 4 + 1fc4: 3a40 cmpnei r2, 0 + 1fc6: b825 st.w r1, (r14, 0x14) + 1fc8: 0ff9 bf 0x1fba // 1fba <__v2_printf+0x47e> + 1fca: 8da0 ld.h r5, (r5, 0x0) + 1fcc: 3400 movi r4, 0 + 1fce: b8a3 st.w r5, (r14, 0xc) + 1fd0: b884 st.w r4, (r14, 0x10) + 1fd2: 07d2 br 0x1f76 // 1f76 <__v2_printf+0x43a> + 1fd4: 5cb8 addu r5, r4, r6 + 1fd6: 6cd3 mov r3, r4 + 1fd8: 654e cmpne r3, r5 + 1fda: 0f77 bf 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 1fdc: 8300 ld.b r0, (r3, 0x0) + 1fde: 3840 cmpnei r0, 0 + 1fe0: 0ef4 bf 0x1dc8 // 1dc8 <__v2_printf+0x28c> + 1fe2: 2300 addi r3, 1 + 1fe4: 07fa br 0x1fd8 // 1fd8 <__v2_printf+0x49c> + 1fe6: 2300 addi r3, 1 + 1fe8: 06ed br 0x1dc2 // 1dc2 <__v2_printf+0x286> + 1fea: 3420 movi r4, 32 + 1fec: 691c and r4, r7 + 1fee: 3c40 cmpnei r4, 0 + 1ff0: 0c09 bf 0x2002 // 2002 <__v2_printf+0x4c6> + 1ff2: 5d7e addi r3, r5, 8 + 1ff4: 9520 ld.w r1, (r5, 0x0) + 1ff6: 9541 ld.w r2, (r5, 0x4) + 1ff8: b865 st.w r3, (r14, 0x14) + 1ffa: b823 st.w r1, (r14, 0xc) + 1ffc: b844 st.w r2, (r14, 0x10) + 1ffe: 3401 movi r4, 1 + 2000: 07bb br 0x1f76 // 1f76 <__v2_printf+0x43a> + 2002: 3310 movi r3, 16 + 2004: 68dc and r3, r7 + 2006: 3b40 cmpnei r3, 0 + 2008: 0c05 bf 0x2012 // 2012 <__v2_printf+0x4d6> + 200a: 5d0e addi r0, r5, 4 + 200c: b805 st.w r0, (r14, 0x14) + 200e: 95a0 ld.w r5, (r5, 0x0) + 2010: 0408 br 0x2020 // 2020 <__v2_printf+0x4e4> + 2012: 3140 movi r1, 64 + 2014: 685c and r1, r7 + 2016: 5d4e addi r2, r5, 4 + 2018: 3940 cmpnei r1, 0 + 201a: b845 st.w r2, (r14, 0x14) + 201c: 0ff9 bf 0x200e // 200e <__v2_printf+0x4d2> + 201e: 8da0 ld.h r5, (r5, 0x0) + 2020: 3400 movi r4, 0 + 2022: b8a3 st.w r5, (r14, 0xc) + 2024: b884 st.w r4, (r14, 0x10) + 2026: 07ec br 0x1ffe // 1ffe <__v2_printf+0x4c2> + 2028: 3840 cmpnei r0, 0 + 202a: 0c05 bf 0x2034 // 2034 <__v2_printf+0x4f8> + 202c: 3337 movi r3, 55 + 202e: 1a01 addi r2, r14, 4 + 2030: 60c8 addu r3, r2 + 2032: a320 st.b r1, (r3, 0x0) + 2034: 103f lrw r1, 0x6415 // 20b0 <__v2_printf+0x574> + 2036: 06d2 br 0x1dda // 1dda <__v2_printf+0x29e> + 2038: 3310 movi r3, 16 + 203a: 68dc and r3, r7 + 203c: 3b40 cmpnei r3, 0 + 203e: 0c05 bf 0x2048 // 2048 <__v2_printf+0x50c> + 2040: 5d0e addi r0, r5, 4 + 2042: b805 st.w r0, (r14, 0x14) + 2044: 95a0 ld.w r5, (r5, 0x0) + 2046: 0408 br 0x2056 // 2056 <__v2_printf+0x51a> + 2048: 3240 movi r2, 64 + 204a: 689c and r2, r7 + 204c: 5d2e addi r1, r5, 4 + 204e: 3a40 cmpnei r2, 0 + 2050: b825 st.w r1, (r14, 0x14) + 2052: 0ff9 bf 0x2044 // 2044 <__v2_printf+0x508> + 2054: 8da0 ld.h r5, (r5, 0x0) + 2056: 3300 movi r3, 0 + 2058: b8a3 st.w r5, (r14, 0xc) + 205a: b864 st.w r3, (r14, 0x10) + 205c: 06ca br 0x1df0 // 1df0 <__v2_printf+0x2b4> + 205e: 6cd3 mov r3, r4 + 2060: 0467 br 0x212e // 212e <__v2_printf+0x5f2> + 2062: 9884 ld.w r4, (r14, 0x10) + 2064: 3c40 cmpnei r4, 0 + 2066: 080b bt 0x207c // 207c <__v2_printf+0x540> + 2068: 9843 ld.w r2, (r14, 0xc) + 206a: 3a09 cmphsi r2, 10 + 206c: 0808 bt 0x207c // 207c <__v2_printf+0x540> + 206e: 9883 ld.w r4, (r14, 0xc) + 2070: 242f addi r4, 48 + 2072: 1f1a addi r7, r14, 104 + 2074: a787 st.b r4, (r7, 0x7) + 2076: 1c12 addi r4, r14, 72 + 2078: 2426 addi r4, 39 + 207a: 0478 br 0x216a // 216a <__v2_printf+0x62e> + 207c: 1c1c addi r4, r14, 112 + 207e: 3530 movi r5, 48 + 2080: 320a movi r2, 10 + 2082: 3300 movi r3, 0 + 2084: 9803 ld.w r0, (r14, 0xc) + 2086: 9824 ld.w r1, (r14, 0x10) + 2088: e00002c2 bsr 0x260c // 260c <__umoddi3> + 208c: 6014 addu r0, r5 + 208e: 2c00 subi r4, 1 + 2090: a400 st.b r0, (r4, 0x0) + 2092: 320a movi r2, 10 + 2094: 9803 ld.w r0, (r14, 0xc) + 2096: 9824 ld.w r1, (r14, 0x10) + 2098: 3300 movi r3, 0 + 209a: e00000e3 bsr 0x2260 // 2260 <__udivdi3> + 209e: b803 st.w r0, (r14, 0xc) + 20a0: b824 st.w r1, (r14, 0x10) + 20a2: 9823 ld.w r1, (r14, 0xc) + 20a4: 98e4 ld.w r7, (r14, 0x10) + 20a6: 6c5c or r1, r7 + 20a8: 3940 cmpnei r1, 0 + 20aa: 0beb bt 0x2080 // 2080 <__v2_printf+0x544> + 20ac: 045f br 0x216a // 216a <__v2_printf+0x62e> + 20ae: 0000 bkpt + 20b0: 00006415 .long 0x00006415 + 20b4: 00006404 .long 0x00006404 + 20b8: 20000768 .long 0x20000768 + 20bc: 3300 movi r3, 0 + 20be: 3400 movi r4, 0 + 20c0: b863 st.w r3, (r14, 0xc) + 20c2: b884 st.w r4, (r14, 0x10) + 20c4: 1c1c addi r4, r14, 112 + 20c6: 320f movi r2, 15 + 20c8: 9803 ld.w r0, (r14, 0xc) + 20ca: 982a ld.w r1, (r14, 0x28) + 20cc: 6808 and r0, r2 + 20ce: 6004 addu r0, r1 + 20d0: 80a0 ld.b r5, (r0, 0x0) + 20d2: 2c00 subi r4, 1 + 20d4: 98e4 ld.w r7, (r14, 0x10) + 20d6: a4a0 st.b r5, (r4, 0x0) + 20d8: 98a4 ld.w r5, (r14, 0x10) + 20da: 9863 ld.w r3, (r14, 0xc) + 20dc: 471c lsli r0, r7, 28 + 20de: 4de4 lsri r7, r5, 4 + 20e0: 4b24 lsri r1, r3, 4 + 20e2: b8e4 st.w r7, (r14, 0x10) + 20e4: 6c04 or r0, r1 + 20e6: 9864 ld.w r3, (r14, 0x10) + 20e8: b803 st.w r0, (r14, 0xc) + 20ea: 6c0c or r0, r3 + 20ec: 3840 cmpnei r0, 0 + 20ee: 0bed bt 0x20c8 // 20c8 <__v2_printf+0x58c> + 20f0: 043d br 0x216a // 216a <__v2_printf+0x62e> + 20f2: 3c40 cmpnei r4, 0 + 20f4: 0808 bt 0x2104 // 2104 <__v2_printf+0x5c8> + 20f6: 3301 movi r3, 1 + 20f8: 68dc and r3, r7 + 20fa: 3b40 cmpnei r3, 0 + 20fc: 0c04 bf 0x2104 // 2104 <__v2_printf+0x5c8> + 20fe: 1f1a addi r7, r14, 104 + 2100: 3430 movi r4, 48 + 2102: 07b9 br 0x2074 // 2074 <__v2_printf+0x538> + 2104: 1c1c addi r4, r14, 112 + 2106: 0432 br 0x216a // 216a <__v2_printf+0x62e> + 2108: 322b movi r2, 43 + 210a: 649a cmpne r6, r2 + 210c: 0802 bt 0x2110 // 2110 <__v2_printf+0x5d4> + 210e: 0614 br 0x1d36 // 1d36 <__v2_printf+0x1fa> + 2110: 1c12 addi r4, r14, 72 + 2112: 6c13 mov r0, r4 + 2114: e0000612 bsr 0x2d38 // 2d38 <__strlen_fast> + 2118: 6d83 mov r6, r0 + 211a: 06d7 br 0x1ec8 // 1ec8 <__v2_printf+0x38c> + 211c: 3840 cmpnei r0, 0 + 211e: b8e8 st.w r7, (r14, 0x20) + 2120: 0f3e bf 0x1f9c // 1f9c <__v2_printf+0x460> + 2122: 3c41 cmpnei r4, 1 + 2124: 0f9f bf 0x2062 // 2062 <__v2_printf+0x526> + 2126: 3c42 cmpnei r4, 2 + 2128: 0fce bf 0x20c4 // 20c4 <__v2_printf+0x588> + 212a: 1b1c addi r3, r14, 112 + 212c: 3707 movi r7, 7 + 212e: 9823 ld.w r1, (r14, 0xc) + 2130: 685c and r1, r7 + 2132: 212f addi r1, 48 + 2134: 9804 ld.w r0, (r14, 0x10) + 2136: 7484 zextb r2, r1 + 2138: 9823 ld.w r1, (r14, 0xc) + 213a: 40bd lsli r5, r0, 29 + 213c: 4903 lsri r0, r1, 3 + 213e: 9824 ld.w r1, (r14, 0x10) + 2140: 4923 lsri r1, r1, 3 + 2142: b824 st.w r1, (r14, 0x10) + 2144: 6d40 or r5, r0 + 2146: 9804 ld.w r0, (r14, 0x10) + 2148: b8a3 st.w r5, (r14, 0xc) + 214a: 6d40 or r5, r0 + 214c: 5b83 subi r4, r3, 1 + 214e: 3d40 cmpnei r5, 0 + 2150: a440 st.b r2, (r4, 0x0) + 2152: 0b86 bt 0x205e // 205e <__v2_printf+0x522> + 2154: 3701 movi r7, 1 + 2156: 9828 ld.w r1, (r14, 0x20) + 2158: 69c4 and r7, r1 + 215a: 3f40 cmpnei r7, 0 + 215c: 0c07 bf 0x216a // 216a <__v2_printf+0x62e> + 215e: 3530 movi r5, 48 + 2160: 654a cmpne r2, r5 + 2162: 0c04 bf 0x216a // 216a <__v2_printf+0x62e> + 2164: 5b87 subi r4, r3, 2 + 2166: 3330 movi r3, 48 + 2168: a460 st.b r3, (r4, 0x0) + 216a: 6d5b mov r5, r6 + 216c: 1e1c addi r6, r14, 112 + 216e: 6192 subu r6, r4 + 2170: 98e8 ld.w r7, (r14, 0x20) + 2172: 6595 cmplt r5, r6 + 2174: b8a8 st.w r5, (r14, 0x20) + 2176: 0c02 bf 0x217a // 217a <__v2_printf+0x63e> + 2178: b8c8 st.w r6, (r14, 0x20) + 217a: 3037 movi r0, 55 + 217c: 1b01 addi r3, r14, 4 + 217e: 600c addu r0, r3 + 2180: 8040 ld.b r2, (r0, 0x0) + 2182: 3a40 cmpnei r2, 0 + 2184: 0c04 bf 0x218c // 218c <__v2_printf+0x650> + 2186: 9828 ld.w r1, (r14, 0x20) + 2188: 2100 addi r1, 1 + 218a: b828 st.w r1, (r14, 0x20) + 218c: 3002 movi r0, 2 + 218e: 681c and r0, r7 + 2190: 3840 cmpnei r0, 0 + 2192: b80b st.w r0, (r14, 0x2c) + 2194: 0c04 bf 0x219c // 219c <__v2_printf+0x660> + 2196: 9868 ld.w r3, (r14, 0x20) + 2198: 2301 addi r3, 2 + 219a: b868 st.w r3, (r14, 0x20) + 219c: 3284 movi r2, 132 + 219e: 689c and r2, r7 + 21a0: 3a40 cmpnei r2, 0 + 21a2: b84c st.w r2, (r14, 0x30) + 21a4: 080b bt 0x21ba // 21ba <__v2_printf+0x67e> + 21a6: 3310 movi r3, 16 + 21a8: 1a0c addi r2, r14, 48 + 21aa: 9827 ld.w r1, (r14, 0x1c) + 21ac: 9808 ld.w r0, (r14, 0x20) + 21ae: 60c8 addu r3, r2 + 21b0: 5901 subu r0, r1, r0 + 21b2: 6f4f mov r13, r3 + 21b4: 1129 lrw r1, 0x5fc4 // 2258 <__v2_printf+0x71c> + 21b6: e3fffca9 bsr 0x1b08 // 1b08 + 21ba: 3137 movi r1, 55 + 21bc: 1801 addi r0, r14, 4 + 21be: 6040 addu r1, r0 + 21c0: 8160 ld.b r3, (r1, 0x0) + 21c2: 3b40 cmpnei r3, 0 + 21c4: 0c0b bf 0x21da // 21da <__v2_printf+0x69e> + 21c6: 9830 ld.w r1, (r14, 0x40) + 21c8: 9101 ld.w r0, (r1, 0x4) + 21ca: b802 st.w r0, (r14, 0x8) + 21cc: 1b0c addi r3, r14, 48 + 21ce: 300b movi r0, 11 + 21d0: 9140 ld.w r2, (r1, 0x0) + 21d2: 600c addu r0, r3 + 21d4: 3101 movi r1, 1 + 21d6: 9862 ld.w r3, (r14, 0x8) + 21d8: 7bcd jsr r3 + 21da: 984b ld.w r2, (r14, 0x2c) + 21dc: 3a40 cmpnei r2, 0 + 21de: 0c07 bf 0x21ec // 21ec <__v2_printf+0x6b0> + 21e0: 9830 ld.w r1, (r14, 0x40) + 21e2: 9140 ld.w r2, (r1, 0x0) + 21e4: 9161 ld.w r3, (r1, 0x4) + 21e6: 180f addi r0, r14, 60 + 21e8: 3102 movi r1, 2 + 21ea: 7bcd jsr r3 + 21ec: 3080 movi r0, 128 + 21ee: 984c ld.w r2, (r14, 0x30) + 21f0: 640a cmpne r2, r0 + 21f2: 080b bt 0x2208 // 2208 <__v2_printf+0x6cc> + 21f4: 9827 ld.w r1, (r14, 0x1c) + 21f6: 9868 ld.w r3, (r14, 0x20) + 21f8: 590d subu r0, r1, r3 + 21fa: 1a0c addi r2, r14, 48 + 21fc: 3110 movi r1, 16 + 21fe: 6048 addu r1, r2 + 2200: 6f47 mov r13, r1 + 2202: 1037 lrw r1, 0x5fd4 // 225c <__v2_printf+0x720> + 2204: e3fffc82 bsr 0x1b08 // 1b08 + 2208: 5d19 subu r0, r5, r6 + 220a: 1b0c addi r3, r14, 48 + 220c: 3510 movi r5, 16 + 220e: 614c addu r5, r3 + 2210: 6f57 mov r13, r5 + 2212: 6d77 mov r5, r13 + 2214: 1032 lrw r1, 0x5fd4 // 225c <__v2_printf+0x720> + 2216: e3fffc79 bsr 0x1b08 // 1b08 + 221a: 9500 ld.w r0, (r5, 0x0) + 221c: 9040 ld.w r2, (r0, 0x0) + 221e: 9061 ld.w r3, (r0, 0x4) + 2220: 6c13 mov r0, r4 + 2222: 3404 movi r4, 4 + 2224: 6c5b mov r1, r6 + 2226: 691c and r4, r7 + 2228: 7bcd jsr r3 + 222a: 3c40 cmpnei r4, 0 + 222c: 0c08 bf 0x223c // 223c <__v2_printf+0x700> + 222e: 9828 ld.w r1, (r14, 0x20) + 2230: 98c7 ld.w r6, (r14, 0x1c) + 2232: 5e05 subu r0, r6, r1 + 2234: 6f57 mov r13, r5 + 2236: 1029 lrw r1, 0x5fc4 // 2258 <__v2_printf+0x71c> + 2238: e3fffc68 bsr 0x1b08 // 1b08 + 223c: 98a7 ld.w r5, (r14, 0x1c) + 223e: 9848 ld.w r2, (r14, 0x20) + 2240: 6495 cmplt r5, r2 + 2242: 0c02 bf 0x2246 // 2246 <__v2_printf+0x70a> + 2244: 6d4b mov r5, r2 + 2246: 9809 ld.w r0, (r14, 0x24) + 2248: 6014 addu r0, r5 + 224a: b809 st.w r0, (r14, 0x24) + 224c: 98a5 ld.w r5, (r14, 0x14) + 224e: e800fc84 br 0x1b56 // 1b56 <__v2_printf+0x1a> + 2252: 9809 ld.w r0, (r14, 0x24) + 2254: 141c addi r14, r14, 112 + 2256: 1494 pop r4-r7, r15 + 2258: 00005fc4 .long 0x00005fc4 + 225c: 00005fd4 .long 0x00005fd4 + +00002260 <__udivdi3>: + 2260: 14d4 push r4-r7, r15 + 2262: 1426 subi r14, r14, 24 + 2264: 6dc7 mov r7, r1 + 2266: 3b40 cmpnei r3, 0 + 2268: 6d03 mov r4, r0 + 226a: 6c4f mov r1, r3 + 226c: 6d8b mov r6, r2 + 226e: b800 st.w r0, (r14, 0x0) + 2270: 6d5f mov r5, r7 + 2272: 085b bt 0x2328 // 2328 <__udivdi3+0xc8> + 2274: 649c cmphs r7, r2 + 2276: 0874 bt 0x235e // 235e <__udivdi3+0xfe> + 2278: 003d lrw r1, 0xffff // 2600 <__udivdi3+0x3a0> + 227a: 6484 cmphs r1, r2 + 227c: 0cdc bf 0x2434 // 2434 <__udivdi3+0x1d4> + 227e: 31ff movi r1, 255 + 2280: 6484 cmphs r1, r2 + 2282: 0802 bt 0x2286 // 2286 <__udivdi3+0x26> + 2284: 3308 movi r3, 8 + 2286: 6c4b mov r1, r2 + 2288: 704d lsr r1, r3 + 228a: 0100 lrw r0, 0x5ec4 // 2604 <__udivdi3+0x3a4> + 228c: 6040 addu r1, r0 + 228e: 8120 ld.b r1, (r1, 0x0) + 2290: 60c4 addu r3, r1 + 2292: 3120 movi r1, 32 + 2294: 604e subu r1, r3 + 2296: 3940 cmpnei r1, 0 + 2298: 0c09 bf 0x22aa // 22aa <__udivdi3+0x4a> + 229a: 6d53 mov r5, r4 + 229c: 7084 lsl r2, r1 + 229e: 71c4 lsl r7, r1 + 22a0: 714d lsr r5, r3 + 22a2: 7104 lsl r4, r1 + 22a4: 6d8b mov r6, r2 + 22a6: 6d5c or r5, r7 + 22a8: b880 st.w r4, (r14, 0x0) + 22aa: 4e90 lsri r4, r6, 16 + 22ac: 6c53 mov r1, r4 + 22ae: 6c17 mov r0, r5 + 22b0: e00010d8 bsr 0x4460 // 4460 <__umodsi3> + 22b4: b801 st.w r0, (r14, 0x4) + 22b6: 6c53 mov r1, r4 + 22b8: 6c17 mov r0, r5 + 22ba: e00010af bsr 0x4418 // 4418 <__udivsi3> + 22be: 75d9 zexth r7, r6 + 22c0: 9861 ld.w r3, (r14, 0x4) + 22c2: 9820 ld.w r1, (r14, 0x0) + 22c4: 6c9f mov r2, r7 + 22c6: 4370 lsli r3, r3, 16 + 22c8: 4930 lsri r1, r1, 16 + 22ca: 7c80 mult r2, r0 + 22cc: 6cc4 or r3, r1 + 22ce: 648c cmphs r3, r2 + 22d0: 6d43 mov r5, r0 + 22d2: 0808 bt 0x22e2 // 22e2 <__udivdi3+0x82> + 22d4: 60d8 addu r3, r6 + 22d6: 658c cmphs r3, r6 + 22d8: 5823 subi r1, r0, 1 + 22da: 0c03 bf 0x22e0 // 22e0 <__udivdi3+0x80> + 22dc: 648c cmphs r3, r2 + 22de: 0d8e bf 0x25fa // 25fa <__udivdi3+0x39a> + 22e0: 6d47 mov r5, r1 + 22e2: 60ca subu r3, r2 + 22e4: 6c53 mov r1, r4 + 22e6: 6c0f mov r0, r3 + 22e8: b862 st.w r3, (r14, 0x8) + 22ea: e00010bb bsr 0x4460 // 4460 <__umodsi3> + 22ee: 9862 ld.w r3, (r14, 0x8) + 22f0: b801 st.w r0, (r14, 0x4) + 22f2: 6c53 mov r1, r4 + 22f4: 6c0f mov r0, r3 + 22f6: e0001091 bsr 0x4418 // 4418 <__udivsi3> + 22fa: 9841 ld.w r2, (r14, 0x4) + 22fc: d86e1000 ld.h r3, (r14, 0x0) + 2300: 4250 lsli r2, r2, 16 + 2302: 74cd zexth r3, r3 + 2304: 7dc0 mult r7, r0 + 2306: 6c8c or r2, r3 + 2308: 65c8 cmphs r2, r7 + 230a: 6d03 mov r4, r0 + 230c: 0808 bt 0x231c // 231c <__udivdi3+0xbc> + 230e: 6098 addu r2, r6 + 2310: 6588 cmphs r2, r6 + 2312: 5863 subi r3, r0, 1 + 2314: 0d4d bf 0x25ae // 25ae <__udivdi3+0x34e> + 2316: 65c8 cmphs r2, r7 + 2318: 094b bt 0x25ae // 25ae <__udivdi3+0x34e> + 231a: 2c01 subi r4, 2 + 231c: 4510 lsli r0, r5, 16 + 231e: 3700 movi r7, 0 + 2320: 6c10 or r0, r4 + 2322: 6c5f mov r1, r7 + 2324: 1406 addi r14, r14, 24 + 2326: 1494 pop r4-r7, r15 + 2328: 64dc cmphs r7, r3 + 232a: 0c76 bf 0x2416 // 2416 <__udivdi3+0x1b6> + 232c: 026a lrw r3, 0xffff // 2600 <__udivdi3+0x3a0> + 232e: 644c cmphs r3, r1 + 2330: 0878 bt 0x2420 // 2420 <__udivdi3+0x1c0> + 2332: 0269 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2334: 644c cmphs r3, r1 + 2336: 0d48 bf 0x25c6 // 25c6 <__udivdi3+0x366> + 2338: 3610 movi r6, 16 + 233a: 6cc7 mov r3, r1 + 233c: 70d9 lsr r3, r6 + 233e: 020d lrw r0, 0x5ec4 // 2604 <__udivdi3+0x3a4> + 2340: 60c0 addu r3, r0 + 2342: 8360 ld.b r3, (r3, 0x0) + 2344: 618c addu r6, r3 + 2346: 3020 movi r0, 32 + 2348: 5879 subu r3, r0, r6 + 234a: 3b40 cmpnei r3, 0 + 234c: b860 st.w r3, (r14, 0x0) + 234e: 0878 bt 0x243e // 243e <__udivdi3+0x1de> + 2350: 65c4 cmphs r1, r7 + 2352: 0d40 bf 0x25d2 // 25d2 <__udivdi3+0x372> + 2354: 6490 cmphs r4, r2 + 2356: 6c0f mov r0, r3 + 2358: 600d addc r0, r3 + 235a: 3700 movi r7, 0 + 235c: 045f br 0x241a // 241a <__udivdi3+0x1ba> + 235e: 3a40 cmpnei r2, 0 + 2360: 0808 bt 0x2370 // 2370 <__udivdi3+0x110> + 2362: 3100 movi r1, 0 + 2364: 3001 movi r0, 1 + 2366: b861 st.w r3, (r14, 0x4) + 2368: e0001058 bsr 0x4418 // 4418 <__udivsi3> + 236c: 6d83 mov r6, r0 + 236e: 9861 ld.w r3, (r14, 0x4) + 2370: 025b lrw r2, 0xffff // 2600 <__udivdi3+0x3a0> + 2372: 6588 cmphs r2, r6 + 2374: 085b bt 0x242a // 242a <__udivdi3+0x1ca> + 2376: 027a lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2378: 658c cmphs r3, r6 + 237a: 0d28 bf 0x25ca // 25ca <__udivdi3+0x36a> + 237c: 3310 movi r3, 16 + 237e: 6c9b mov r2, r6 + 2380: 023e lrw r1, 0x5ec4 // 2604 <__udivdi3+0x3a4> + 2382: 708d lsr r2, r3 + 2384: 6084 addu r2, r1 + 2386: 8240 ld.b r2, (r2, 0x0) + 2388: 5a2c addu r1, r2, r3 + 238a: 3220 movi r2, 32 + 238c: 6086 subu r2, r1 + 238e: 3a40 cmpnei r2, 0 + 2390: 08c0 bt 0x2510 // 2510 <__udivdi3+0x2b0> + 2392: 74d9 zexth r3, r6 + 2394: 5f99 subu r4, r7, r6 + 2396: 4eb0 lsri r5, r6, 16 + 2398: b861 st.w r3, (r14, 0x4) + 239a: 3701 movi r7, 1 + 239c: 6c57 mov r1, r5 + 239e: 6c13 mov r0, r4 + 23a0: e0001060 bsr 0x4460 // 4460 <__umodsi3> + 23a4: b802 st.w r0, (r14, 0x8) + 23a6: 6c57 mov r1, r5 + 23a8: 6c13 mov r0, r4 + 23aa: e0001037 bsr 0x4418 // 4418 <__udivsi3> + 23ae: 9862 ld.w r3, (r14, 0x8) + 23b0: 4330 lsli r1, r3, 16 + 23b2: 9860 ld.w r3, (r14, 0x0) + 23b4: 9841 ld.w r2, (r14, 0x4) + 23b6: 4b70 lsri r3, r3, 16 + 23b8: 7c80 mult r2, r0 + 23ba: 6cc4 or r3, r1 + 23bc: 648c cmphs r3, r2 + 23be: 6d03 mov r4, r0 + 23c0: 0808 bt 0x23d0 // 23d0 <__udivdi3+0x170> + 23c2: 60d8 addu r3, r6 + 23c4: 658c cmphs r3, r6 + 23c6: 5823 subi r1, r0, 1 + 23c8: 0c03 bf 0x23ce // 23ce <__udivdi3+0x16e> + 23ca: 648c cmphs r3, r2 + 23cc: 0d14 bf 0x25f4 // 25f4 <__udivdi3+0x394> + 23ce: 6d07 mov r4, r1 + 23d0: 60ca subu r3, r2 + 23d2: 6c57 mov r1, r5 + 23d4: 6c0f mov r0, r3 + 23d6: b863 st.w r3, (r14, 0xc) + 23d8: e0001044 bsr 0x4460 // 4460 <__umodsi3> + 23dc: 9863 ld.w r3, (r14, 0xc) + 23de: 6c57 mov r1, r5 + 23e0: b802 st.w r0, (r14, 0x8) + 23e2: 6c0f mov r0, r3 + 23e4: e000101a bsr 0x4418 // 4418 <__udivsi3> + 23e8: 9842 ld.w r2, (r14, 0x8) + 23ea: d86e1000 ld.h r3, (r14, 0x0) + 23ee: 9821 ld.w r1, (r14, 0x4) + 23f0: 4250 lsli r2, r2, 16 + 23f2: 74cd zexth r3, r3 + 23f4: 7c40 mult r1, r0 + 23f6: 6cc8 or r3, r2 + 23f8: 644c cmphs r3, r1 + 23fa: 6d43 mov r5, r0 + 23fc: 0808 bt 0x240c // 240c <__udivdi3+0x1ac> + 23fe: 60d8 addu r3, r6 + 2400: 658c cmphs r3, r6 + 2402: 5843 subi r2, r0, 1 + 2404: 0cd3 bf 0x25aa // 25aa <__udivdi3+0x34a> + 2406: 644c cmphs r3, r1 + 2408: 08d1 bt 0x25aa // 25aa <__udivdi3+0x34a> + 240a: 2d01 subi r5, 2 + 240c: 4410 lsli r0, r4, 16 + 240e: 6c14 or r0, r5 + 2410: 6c5f mov r1, r7 + 2412: 1406 addi r14, r14, 24 + 2414: 1494 pop r4-r7, r15 + 2416: 3700 movi r7, 0 + 2418: 3000 movi r0, 0 + 241a: 6c5f mov r1, r7 + 241c: 1406 addi r14, r14, 24 + 241e: 1494 pop r4-r7, r15 + 2420: 33ff movi r3, 255 + 2422: 644c cmphs r3, r1 + 2424: 6583 mvcv r6 + 2426: 46c3 lsli r6, r6, 3 + 2428: 0789 br 0x233a // 233a <__udivdi3+0xda> + 242a: 32ff movi r2, 255 + 242c: 6588 cmphs r2, r6 + 242e: 0ba8 bt 0x237e // 237e <__udivdi3+0x11e> + 2430: 3308 movi r3, 8 + 2432: 07a6 br 0x237e // 237e <__udivdi3+0x11e> + 2434: 1375 lrw r3, 0xffffff // 2608 <__udivdi3+0x3a8> + 2436: 648c cmphs r3, r2 + 2438: 0ccb bf 0x25ce // 25ce <__udivdi3+0x36e> + 243a: 3310 movi r3, 16 + 243c: 0725 br 0x2286 // 2286 <__udivdi3+0x26> + 243e: 9800 ld.w r0, (r14, 0x0) + 2440: 6ccb mov r3, r2 + 2442: 6d4b mov r5, r2 + 2444: 7040 lsl r1, r0 + 2446: 7140 lsl r5, r0 + 2448: 70d9 lsr r3, r6 + 244a: 6cc4 or r3, r1 + 244c: b8a3 st.w r5, (r14, 0xc) + 244e: 6d53 mov r5, r4 + 2450: 6c4f mov r1, r3 + 2452: 7159 lsr r5, r6 + 2454: 6cdf mov r3, r7 + 2456: 71c0 lsl r7, r0 + 2458: 6d5c or r5, r7 + 245a: 70d9 lsr r3, r6 + 245c: b8a1 st.w r5, (r14, 0x4) + 245e: 49b0 lsri r5, r1, 16 + 2460: b822 st.w r1, (r14, 0x8) + 2462: 75c5 zexth r7, r1 + 2464: 6c0f mov r0, r3 + 2466: 6c57 mov r1, r5 + 2468: b864 st.w r3, (r14, 0x10) + 246a: e0000ffb bsr 0x4460 // 4460 <__umodsi3> + 246e: 9864 ld.w r3, (r14, 0x10) + 2470: 6d83 mov r6, r0 + 2472: 6c57 mov r1, r5 + 2474: 6c0f mov r0, r3 + 2476: e0000fd1 bsr 0x4418 // 4418 <__udivsi3> + 247a: 6c5f mov r1, r7 + 247c: 7c40 mult r1, r0 + 247e: 6c87 mov r2, r1 + 2480: 4630 lsli r1, r6, 16 + 2482: 98c1 ld.w r6, (r14, 0x4) + 2484: 4ed0 lsri r6, r6, 16 + 2486: 6d84 or r6, r1 + 2488: 6498 cmphs r6, r2 + 248a: 6cc3 mov r3, r0 + 248c: 0807 bt 0x249a // 249a <__udivdi3+0x23a> + 248e: 5823 subi r1, r0, 1 + 2490: 9802 ld.w r0, (r14, 0x8) + 2492: 6180 addu r6, r0 + 2494: 6418 cmphs r6, r0 + 2496: 08a6 bt 0x25e2 // 25e2 <__udivdi3+0x382> + 2498: 6cc7 mov r3, r1 + 249a: 618a subu r6, r2 + 249c: 6c57 mov r1, r5 + 249e: 6c1b mov r0, r6 + 24a0: b865 st.w r3, (r14, 0x14) + 24a2: e0000fdf bsr 0x4460 // 4460 <__umodsi3> + 24a6: b804 st.w r0, (r14, 0x10) + 24a8: 6c57 mov r1, r5 + 24aa: 6c1b mov r0, r6 + 24ac: e0000fb6 bsr 0x4418 // 4418 <__udivsi3> + 24b0: 9864 ld.w r3, (r14, 0x10) + 24b2: 6c9f mov r2, r7 + 24b4: 43f0 lsli r7, r3, 16 + 24b6: d86e1002 ld.h r3, (r14, 0x4) + 24ba: 744d zexth r1, r3 + 24bc: 7c80 mult r2, r0 + 24be: 6dc4 or r7, r1 + 24c0: 649c cmphs r7, r2 + 24c2: 9865 ld.w r3, (r14, 0x14) + 24c4: 0807 bt 0x24d2 // 24d2 <__udivdi3+0x272> + 24c6: 98a2 ld.w r5, (r14, 0x8) + 24c8: 61d4 addu r7, r5 + 24ca: 655c cmphs r7, r5 + 24cc: 5823 subi r1, r0, 1 + 24ce: 0885 bt 0x25d8 // 25d8 <__udivdi3+0x378> + 24d0: 6c07 mov r0, r1 + 24d2: 4370 lsli r3, r3, 16 + 24d4: 6c0c or r0, r3 + 24d6: 74c1 zexth r3, r0 + 24d8: 61ca subu r7, r2 + 24da: 9843 ld.w r2, (r14, 0xc) + 24dc: 7549 zexth r5, r2 + 24de: 4830 lsri r1, r0, 16 + 24e0: 4a50 lsri r2, r2, 16 + 24e2: 6d8f mov r6, r3 + 24e4: 7d94 mult r6, r5 + 24e6: 7cc8 mult r3, r2 + 24e8: 7d44 mult r5, r1 + 24ea: 60d4 addu r3, r5 + 24ec: 7c48 mult r1, r2 + 24ee: 4e50 lsri r2, r6, 16 + 24f0: 60c8 addu r3, r2 + 24f2: 654c cmphs r3, r5 + 24f4: 0804 bt 0x24fc // 24fc <__udivdi3+0x29c> + 24f6: 3280 movi r2, 128 + 24f8: 4249 lsli r2, r2, 9 + 24fa: 6048 addu r1, r2 + 24fc: 4b50 lsri r2, r3, 16 + 24fe: 6048 addu r1, r2 + 2500: 645c cmphs r7, r1 + 2502: 0c5f bf 0x25c0 // 25c0 <__udivdi3+0x360> + 2504: 645e cmpne r7, r1 + 2506: 0c56 bf 0x25b2 // 25b2 <__udivdi3+0x352> + 2508: 3700 movi r7, 0 + 250a: 6c5f mov r1, r7 + 250c: 1406 addi r14, r14, 24 + 250e: 1494 pop r4-r7, r15 + 2510: 6d53 mov r5, r4 + 2512: 6cdf mov r3, r7 + 2514: 7145 lsr r5, r1 + 2516: 71c8 lsl r7, r2 + 2518: 7188 lsl r6, r2 + 251a: 6d5c or r5, r7 + 251c: 70c5 lsr r3, r1 + 251e: 6dd7 mov r7, r5 + 2520: b8a3 st.w r5, (r14, 0xc) + 2522: 4eb0 lsri r5, r6, 16 + 2524: 7108 lsl r4, r2 + 2526: 6c57 mov r1, r5 + 2528: 7499 zexth r2, r6 + 252a: 6c0f mov r0, r3 + 252c: b841 st.w r2, (r14, 0x4) + 252e: b880 st.w r4, (r14, 0x0) + 2530: b862 st.w r3, (r14, 0x8) + 2532: e0000f97 bsr 0x4460 // 4460 <__umodsi3> + 2536: 9862 ld.w r3, (r14, 0x8) + 2538: 6d03 mov r4, r0 + 253a: 6c57 mov r1, r5 + 253c: 6c0f mov r0, r3 + 253e: e0000f6d bsr 0x4418 // 4418 <__udivsi3> + 2542: 6cc3 mov r3, r0 + 2544: 7499 zexth r2, r6 + 2546: 7cc8 mult r3, r2 + 2548: 4450 lsli r2, r4, 16 + 254a: 4f90 lsri r4, r7, 16 + 254c: 6d08 or r4, r2 + 254e: 64d0 cmphs r4, r3 + 2550: 6c43 mov r1, r0 + 2552: b802 st.w r0, (r14, 0x8) + 2554: 080b bt 0x256a // 256a <__udivdi3+0x30a> + 2556: 6118 addu r4, r6 + 2558: 6c87 mov r2, r1 + 255a: 6590 cmphs r4, r6 + 255c: 2a00 subi r2, 1 + 255e: 0c49 bf 0x25f0 // 25f0 <__udivdi3+0x390> + 2560: 64d0 cmphs r4, r3 + 2562: 0847 bt 0x25f0 // 25f0 <__udivdi3+0x390> + 2564: 2a00 subi r2, 1 + 2566: b842 st.w r2, (r14, 0x8) + 2568: 6118 addu r4, r6 + 256a: 610e subu r4, r3 + 256c: 6c57 mov r1, r5 + 256e: 6c13 mov r0, r4 + 2570: e0000f78 bsr 0x4460 // 4460 <__umodsi3> + 2574: 6dc3 mov r7, r0 + 2576: 6c57 mov r1, r5 + 2578: 6c13 mov r0, r4 + 257a: e0000f4f bsr 0x4418 // 4418 <__udivsi3> + 257e: d84e1006 ld.h r2, (r14, 0xc) + 2582: 74d9 zexth r3, r6 + 2584: 47f0 lsli r7, r7, 16 + 2586: 7509 zexth r4, r2 + 2588: 7cc0 mult r3, r0 + 258a: 6dd0 or r7, r4 + 258c: 64dc cmphs r7, r3 + 258e: 0809 bt 0x25a0 // 25a0 <__udivdi3+0x340> + 2590: 61d8 addu r7, r6 + 2592: 659c cmphs r7, r6 + 2594: 5843 subi r2, r0, 1 + 2596: 0c2b bf 0x25ec // 25ec <__udivdi3+0x38c> + 2598: 64dc cmphs r7, r3 + 259a: 0829 bt 0x25ec // 25ec <__udivdi3+0x38c> + 259c: 2801 subi r0, 2 + 259e: 61d8 addu r7, r6 + 25a0: 5f8d subu r4, r7, r3 + 25a2: 9862 ld.w r3, (r14, 0x8) + 25a4: 43f0 lsli r7, r3, 16 + 25a6: 6dc0 or r7, r0 + 25a8: 06fa br 0x239c // 239c <__udivdi3+0x13c> + 25aa: 6d4b mov r5, r2 + 25ac: 0730 br 0x240c // 240c <__udivdi3+0x1ac> + 25ae: 6d0f mov r4, r3 + 25b0: 06b6 br 0x231c // 231c <__udivdi3+0xbc> + 25b2: 9840 ld.w r2, (r14, 0x0) + 25b4: 4370 lsli r3, r3, 16 + 25b6: 7599 zexth r6, r6 + 25b8: 7108 lsl r4, r2 + 25ba: 60d8 addu r3, r6 + 25bc: 64d0 cmphs r4, r3 + 25be: 0ba5 bt 0x2508 // 2508 <__udivdi3+0x2a8> + 25c0: 2800 subi r0, 1 + 25c2: 3700 movi r7, 0 + 25c4: 07a3 br 0x250a // 250a <__udivdi3+0x2aa> + 25c6: 3618 movi r6, 24 + 25c8: 06b9 br 0x233a // 233a <__udivdi3+0xda> + 25ca: 3318 movi r3, 24 + 25cc: 06d9 br 0x237e // 237e <__udivdi3+0x11e> + 25ce: 3318 movi r3, 24 + 25d0: 065b br 0x2286 // 2286 <__udivdi3+0x26> + 25d2: 3700 movi r7, 0 + 25d4: 3001 movi r0, 1 + 25d6: 0722 br 0x241a // 241a <__udivdi3+0x1ba> + 25d8: 649c cmphs r7, r2 + 25da: 0b7b bt 0x24d0 // 24d0 <__udivdi3+0x270> + 25dc: 2801 subi r0, 2 + 25de: 61d4 addu r7, r5 + 25e0: 0779 br 0x24d2 // 24d2 <__udivdi3+0x272> + 25e2: 6498 cmphs r6, r2 + 25e4: 0b5a bt 0x2498 // 2498 <__udivdi3+0x238> + 25e6: 2b01 subi r3, 2 + 25e8: 6180 addu r6, r0 + 25ea: 0758 br 0x249a // 249a <__udivdi3+0x23a> + 25ec: 6c0b mov r0, r2 + 25ee: 07d9 br 0x25a0 // 25a0 <__udivdi3+0x340> + 25f0: b842 st.w r2, (r14, 0x8) + 25f2: 07bc br 0x256a // 256a <__udivdi3+0x30a> + 25f4: 2c01 subi r4, 2 + 25f6: 60d8 addu r3, r6 + 25f8: 06ec br 0x23d0 // 23d0 <__udivdi3+0x170> + 25fa: 2d01 subi r5, 2 + 25fc: 60d8 addu r3, r6 + 25fe: 0672 br 0x22e2 // 22e2 <__udivdi3+0x82> + 2600: 0000ffff .long 0x0000ffff + 2604: 00005ec4 .long 0x00005ec4 + 2608: 00ffffff .long 0x00ffffff + +0000260c <__umoddi3>: + 260c: 14d4 push r4-r7, r15 + 260e: 1427 subi r14, r14, 28 + 2610: 6d07 mov r4, r1 + 2612: 6c4f mov r1, r3 + 2614: 6d43 mov r5, r0 + 2616: 3940 cmpnei r1, 0 + 2618: 6dcf mov r7, r3 + 261a: 6c0b mov r0, r2 + 261c: b8a0 st.w r5, (r14, 0x0) + 261e: 6cd3 mov r3, r4 + 2620: 085a bt 0x26d4 // 26d4 <__umoddi3+0xc8> + 2622: 6490 cmphs r4, r2 + 2624: 0877 bt 0x2712 // 2712 <__umoddi3+0x106> + 2626: 0120 lrw r1, 0xffff // 29a0 <__umoddi3+0x394> + 2628: 6484 cmphs r1, r2 + 262a: 0cd2 bf 0x27ce // 27ce <__umoddi3+0x1c2> + 262c: 31ff movi r1, 255 + 262e: 6484 cmphs r1, r2 + 2630: 0802 bt 0x2634 // 2634 <__umoddi3+0x28> + 2632: 3708 movi r7, 8 + 2634: 6c43 mov r1, r0 + 2636: 705d lsr r1, r7 + 2638: 01c4 lrw r6, 0x5ec4 // 29a4 <__umoddi3+0x398> + 263a: 6058 addu r1, r6 + 263c: 8120 ld.b r1, (r1, 0x0) + 263e: 61c4 addu r7, r1 + 2640: 3120 movi r1, 32 + 2642: 605e subu r1, r7 + 2644: 3940 cmpnei r1, 0 + 2646: b821 st.w r1, (r14, 0x4) + 2648: 0c09 bf 0x265a // 265a <__umoddi3+0x4e> + 264a: 6cd7 mov r3, r5 + 264c: 6c83 mov r2, r0 + 264e: 7104 lsl r4, r1 + 2650: 70dd lsr r3, r7 + 2652: 7144 lsl r5, r1 + 2654: 7084 lsl r2, r1 + 2656: 6cd0 or r3, r4 + 2658: b8a0 st.w r5, (r14, 0x0) + 265a: 4a90 lsri r4, r2, 16 + 265c: 6c53 mov r1, r4 + 265e: 6c0f mov r0, r3 + 2660: 75c9 zexth r7, r2 + 2662: b843 st.w r2, (r14, 0xc) + 2664: b862 st.w r3, (r14, 0x8) + 2666: e0000efd bsr 0x4460 // 4460 <__umodsi3> + 266a: 9862 ld.w r3, (r14, 0x8) + 266c: 6d43 mov r5, r0 + 266e: 6c53 mov r1, r4 + 2670: 6c0f mov r0, r3 + 2672: e0000ed3 bsr 0x4418 // 4418 <__udivsi3> + 2676: 9840 ld.w r2, (r14, 0x0) + 2678: 4570 lsli r3, r5, 16 + 267a: 4ab0 lsri r5, r2, 16 + 267c: 7c1c mult r0, r7 + 267e: 6cd4 or r3, r5 + 2680: 640c cmphs r3, r0 + 2682: 9843 ld.w r2, (r14, 0xc) + 2684: 0806 bt 0x2690 // 2690 <__umoddi3+0x84> + 2686: 60c8 addu r3, r2 + 2688: 648c cmphs r3, r2 + 268a: 0c03 bf 0x2690 // 2690 <__umoddi3+0x84> + 268c: 640c cmphs r3, r0 + 268e: 0d7d bf 0x2988 // 2988 <__umoddi3+0x37c> + 2690: 60c2 subu r3, r0 + 2692: 6c53 mov r1, r4 + 2694: 6c0f mov r0, r3 + 2696: b843 st.w r2, (r14, 0xc) + 2698: b862 st.w r3, (r14, 0x8) + 269a: e0000ee3 bsr 0x4460 // 4460 <__umodsi3> + 269e: 9862 ld.w r3, (r14, 0x8) + 26a0: 6d43 mov r5, r0 + 26a2: 6c53 mov r1, r4 + 26a4: 6c0f mov r0, r3 + 26a6: e0000eb9 bsr 0x4418 // 4418 <__udivsi3> + 26aa: d86e1000 ld.h r3, (r14, 0x0) + 26ae: 7dc0 mult r7, r0 + 26b0: 45b0 lsli r5, r5, 16 + 26b2: 740d zexth r0, r3 + 26b4: 6d40 or r5, r0 + 26b6: 65d4 cmphs r5, r7 + 26b8: 0807 bt 0x26c6 // 26c6 <__umoddi3+0xba> + 26ba: 9843 ld.w r2, (r14, 0xc) + 26bc: 6148 addu r5, r2 + 26be: 6494 cmphs r5, r2 + 26c0: 0c03 bf 0x26c6 // 26c6 <__umoddi3+0xba> + 26c2: 65d4 cmphs r5, r7 + 26c4: 0d5e bf 0x2980 // 2980 <__umoddi3+0x374> + 26c6: 615e subu r5, r7 + 26c8: 6c17 mov r0, r5 + 26ca: 9861 ld.w r3, (r14, 0x4) + 26cc: 700d lsr r0, r3 + 26ce: 3100 movi r1, 0 + 26d0: 1407 addi r14, r14, 28 + 26d2: 1494 pop r4-r7, r15 + 26d4: 6450 cmphs r4, r1 + 26d6: 0c6e bf 0x27b2 // 27b2 <__umoddi3+0x1a6> + 26d8: 024d lrw r2, 0xffff // 29a0 <__umoddi3+0x394> + 26da: 6448 cmphs r2, r1 + 26dc: 086f bt 0x27ba // 27ba <__umoddi3+0x1ae> + 26de: 024c lrw r2, 0xffffff // 29a8 <__umoddi3+0x39c> + 26e0: 6448 cmphs r2, r1 + 26e2: 0d3f bf 0x2960 // 2960 <__umoddi3+0x354> + 26e4: 3610 movi r6, 16 + 26e6: 6c87 mov r2, r1 + 26e8: 7099 lsr r2, r6 + 26ea: 02f0 lrw r7, 0x5ec4 // 29a4 <__umoddi3+0x398> + 26ec: 609c addu r2, r7 + 26ee: 8240 ld.b r2, (r2, 0x0) + 26f0: 6188 addu r6, r2 + 26f2: 3720 movi r7, 32 + 26f4: 61da subu r7, r6 + 26f6: 3f40 cmpnei r7, 0 + 26f8: 0870 bt 0x27d8 // 27d8 <__umoddi3+0x1cc> + 26fa: 6504 cmphs r1, r4 + 26fc: 0c03 bf 0x2702 // 2702 <__umoddi3+0xf6> + 26fe: 6414 cmphs r5, r0 + 2700: 0d46 bf 0x298c // 298c <__umoddi3+0x380> + 2702: 5d01 subu r0, r5, r0 + 2704: 6414 cmphs r5, r0 + 2706: 6106 subu r4, r1 + 2708: 6483 mvcv r2 + 270a: 5c69 subu r3, r4, r2 + 270c: 6c4f mov r1, r3 + 270e: 1407 addi r14, r14, 28 + 2710: 1494 pop r4-r7, r15 + 2712: 3a40 cmpnei r2, 0 + 2714: 0806 bt 0x2720 // 2720 <__umoddi3+0x114> + 2716: 3100 movi r1, 0 + 2718: 3001 movi r0, 1 + 271a: e0000e7f bsr 0x4418 // 4418 <__udivsi3> + 271e: 6c83 mov r2, r0 + 2720: 027f lrw r3, 0xffff // 29a0 <__umoddi3+0x394> + 2722: 648c cmphs r3, r2 + 2724: 0850 bt 0x27c4 // 27c4 <__umoddi3+0x1b8> + 2726: 027e lrw r3, 0xffffff // 29a8 <__umoddi3+0x39c> + 2728: 648c cmphs r3, r2 + 272a: 0d1d bf 0x2964 // 2964 <__umoddi3+0x358> + 272c: 3710 movi r7, 16 + 272e: 6ccb mov r3, r2 + 2730: 70dd lsr r3, r7 + 2732: 0322 lrw r1, 0x5ec4 // 29a4 <__umoddi3+0x398> + 2734: 60c4 addu r3, r1 + 2736: 8360 ld.b r3, (r3, 0x0) + 2738: 61cc addu r7, r3 + 273a: 3320 movi r3, 32 + 273c: 60de subu r3, r7 + 273e: 3b40 cmpnei r3, 0 + 2740: b861 st.w r3, (r14, 0x4) + 2742: 08c2 bt 0x28c6 // 28c6 <__umoddi3+0x2ba> + 2744: 74c9 zexth r3, r2 + 2746: 610a subu r4, r2 + 2748: 4af0 lsri r7, r2, 16 + 274a: 6d8f mov r6, r3 + 274c: 6c5f mov r1, r7 + 274e: 6c13 mov r0, r4 + 2750: b842 st.w r2, (r14, 0x8) + 2752: e0000e87 bsr 0x4460 // 4460 <__umodsi3> + 2756: 6d43 mov r5, r0 + 2758: 6c5f mov r1, r7 + 275a: 6c13 mov r0, r4 + 275c: e0000e5e bsr 0x4418 // 4418 <__udivsi3> + 2760: 9860 ld.w r3, (r14, 0x0) + 2762: 4590 lsli r4, r5, 16 + 2764: 4bb0 lsri r5, r3, 16 + 2766: 7c18 mult r0, r6 + 2768: 6d14 or r4, r5 + 276a: 6410 cmphs r4, r0 + 276c: 9842 ld.w r2, (r14, 0x8) + 276e: 0806 bt 0x277a // 277a <__umoddi3+0x16e> + 2770: 6108 addu r4, r2 + 2772: 6490 cmphs r4, r2 + 2774: 0c03 bf 0x277a // 277a <__umoddi3+0x16e> + 2776: 6410 cmphs r4, r0 + 2778: 0d06 bf 0x2984 // 2984 <__umoddi3+0x378> + 277a: 6102 subu r4, r0 + 277c: 6c5f mov r1, r7 + 277e: 6c13 mov r0, r4 + 2780: b842 st.w r2, (r14, 0x8) + 2782: e0000e6f bsr 0x4460 // 4460 <__umodsi3> + 2786: 6d43 mov r5, r0 + 2788: 6c5f mov r1, r7 + 278a: 6c13 mov r0, r4 + 278c: e0000e46 bsr 0x4418 // 4418 <__udivsi3> + 2790: d86e1000 ld.h r3, (r14, 0x0) + 2794: 7c18 mult r0, r6 + 2796: 45b0 lsli r5, r5, 16 + 2798: 758d zexth r6, r3 + 279a: 6d58 or r5, r6 + 279c: 6414 cmphs r5, r0 + 279e: 0808 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27a0: 9842 ld.w r2, (r14, 0x8) + 27a2: 6148 addu r5, r2 + 27a4: 6494 cmphs r5, r2 + 27a6: 0c04 bf 0x27ae // 27ae <__umoddi3+0x1a2> + 27a8: 6414 cmphs r5, r0 + 27aa: 0802 bt 0x27ae // 27ae <__umoddi3+0x1a2> + 27ac: 6148 addu r5, r2 + 27ae: 6142 subu r5, r0 + 27b0: 078c br 0x26c8 // 26c8 <__umoddi3+0xbc> + 27b2: 6c17 mov r0, r5 + 27b4: 6c53 mov r1, r4 + 27b6: 1407 addi r14, r14, 28 + 27b8: 1494 pop r4-r7, r15 + 27ba: 32ff movi r2, 255 + 27bc: 6448 cmphs r2, r1 + 27be: 6583 mvcv r6 + 27c0: 46c3 lsli r6, r6, 3 + 27c2: 0792 br 0x26e6 // 26e6 <__umoddi3+0xda> + 27c4: 33ff movi r3, 255 + 27c6: 648c cmphs r3, r2 + 27c8: 0bb3 bt 0x272e // 272e <__umoddi3+0x122> + 27ca: 3708 movi r7, 8 + 27cc: 07b1 br 0x272e // 272e <__umoddi3+0x122> + 27ce: 1337 lrw r1, 0xffffff // 29a8 <__umoddi3+0x39c> + 27d0: 6484 cmphs r1, r2 + 27d2: 0ccb bf 0x2968 // 2968 <__umoddi3+0x35c> + 27d4: 3710 movi r7, 16 + 27d6: 072f br 0x2634 // 2634 <__umoddi3+0x28> + 27d8: 6cc3 mov r3, r0 + 27da: 705c lsl r1, r7 + 27dc: 70d9 lsr r3, r6 + 27de: 6cc4 or r3, r1 + 27e0: 6c57 mov r1, r5 + 27e2: 6c93 mov r2, r4 + 27e4: 7059 lsr r1, r6 + 27e6: 711c lsl r4, r7 + 27e8: 7099 lsr r2, r6 + 27ea: 6c50 or r1, r4 + 27ec: 701c lsl r0, r7 + 27ee: 4b90 lsri r4, r3, 16 + 27f0: 715c lsl r5, r7 + 27f2: b803 st.w r0, (r14, 0xc) + 27f4: b820 st.w r1, (r14, 0x0) + 27f6: b8a4 st.w r5, (r14, 0x10) + 27f8: 6c53 mov r1, r4 + 27fa: 754d zexth r5, r3 + 27fc: 6c0b mov r0, r2 + 27fe: b862 st.w r3, (r14, 0x8) + 2800: b8a1 st.w r5, (r14, 0x4) + 2802: b846 st.w r2, (r14, 0x18) + 2804: e0000e2e bsr 0x4460 // 4460 <__umodsi3> + 2808: 9846 ld.w r2, (r14, 0x18) + 280a: b805 st.w r0, (r14, 0x14) + 280c: 6c53 mov r1, r4 + 280e: 6c0b mov r0, r2 + 2810: e0000e04 bsr 0x4418 // 4418 <__udivsi3> + 2814: 9841 ld.w r2, (r14, 0x4) + 2816: 7c80 mult r2, r0 + 2818: 9865 ld.w r3, (r14, 0x14) + 281a: 6d43 mov r5, r0 + 281c: 9800 ld.w r0, (r14, 0x0) + 281e: 4330 lsli r1, r3, 16 + 2820: 4870 lsri r3, r0, 16 + 2822: 6cc4 or r3, r1 + 2824: 648c cmphs r3, r2 + 2826: 0807 bt 0x2834 // 2834 <__umoddi3+0x228> + 2828: 9802 ld.w r0, (r14, 0x8) + 282a: 60c0 addu r3, r0 + 282c: 640c cmphs r3, r0 + 282e: 5d23 subi r1, r5, 1 + 2830: 08a3 bt 0x2976 // 2976 <__umoddi3+0x36a> + 2832: 6d47 mov r5, r1 + 2834: 60ca subu r3, r2 + 2836: 6c53 mov r1, r4 + 2838: 6c0f mov r0, r3 + 283a: b866 st.w r3, (r14, 0x18) + 283c: e0000e12 bsr 0x4460 // 4460 <__umodsi3> + 2840: 9866 ld.w r3, (r14, 0x18) + 2842: 6c53 mov r1, r4 + 2844: b805 st.w r0, (r14, 0x14) + 2846: 6c0f mov r0, r3 + 2848: e0000de8 bsr 0x4418 // 4418 <__udivsi3> + 284c: 9845 ld.w r2, (r14, 0x14) + 284e: d86e1000 ld.h r3, (r14, 0x0) + 2852: 9821 ld.w r1, (r14, 0x4) + 2854: 4250 lsli r2, r2, 16 + 2856: 750d zexth r4, r3 + 2858: 7c40 mult r1, r0 + 285a: 6c90 or r2, r4 + 285c: 6448 cmphs r2, r1 + 285e: 0807 bt 0x286c // 286c <__umoddi3+0x260> + 2860: 9882 ld.w r4, (r14, 0x8) + 2862: 6090 addu r2, r4 + 2864: 6508 cmphs r2, r4 + 2866: 5863 subi r3, r0, 1 + 2868: 0882 bt 0x296c // 296c <__umoddi3+0x360> + 286a: 6c0f mov r0, r3 + 286c: 45b0 lsli r5, r5, 16 + 286e: 6d40 or r5, r0 + 2870: 74d5 zexth r3, r5 + 2872: 9803 ld.w r0, (r14, 0xc) + 2874: 4db0 lsri r5, r5, 16 + 2876: 6d0f mov r4, r3 + 2878: 6086 subu r2, r1 + 287a: 7441 zexth r1, r0 + 287c: 4810 lsri r0, r0, 16 + 287e: 7d04 mult r4, r1 + 2880: 7cc0 mult r3, r0 + 2882: 7c54 mult r1, r5 + 2884: 60c4 addu r3, r1 + 2886: 7d40 mult r5, r0 + 2888: 4c10 lsri r0, r4, 16 + 288a: 60c0 addu r3, r0 + 288c: 644c cmphs r3, r1 + 288e: 0804 bt 0x2896 // 2896 <__umoddi3+0x28a> + 2890: 3180 movi r1, 128 + 2892: 4129 lsli r1, r1, 9 + 2894: 6144 addu r5, r1 + 2896: 4b30 lsri r1, r3, 16 + 2898: 6144 addu r5, r1 + 289a: 4370 lsli r3, r3, 16 + 289c: 7511 zexth r4, r4 + 289e: 6548 cmphs r2, r5 + 28a0: 60d0 addu r3, r4 + 28a2: 0c56 bf 0x294e // 294e <__umoddi3+0x342> + 28a4: 654a cmpne r2, r5 + 28a6: 0c76 bf 0x2992 // 2992 <__umoddi3+0x386> + 28a8: 5a35 subu r1, r2, r5 + 28aa: 6c0f mov r0, r3 + 28ac: 9864 ld.w r3, (r14, 0x10) + 28ae: 5b01 subu r0, r3, r0 + 28b0: 640c cmphs r3, r0 + 28b2: 64c3 mvcv r3 + 28b4: 598d subu r4, r1, r3 + 28b6: 6d53 mov r5, r4 + 28b8: 7158 lsl r5, r6 + 28ba: 701d lsr r0, r7 + 28bc: 6c53 mov r1, r4 + 28be: 6c14 or r0, r5 + 28c0: 705d lsr r1, r7 + 28c2: 1407 addi r14, r14, 28 + 28c4: 1494 pop r4-r7, r15 + 28c6: 9801 ld.w r0, (r14, 0x4) + 28c8: 6c57 mov r1, r5 + 28ca: 6cd3 mov r3, r4 + 28cc: 705d lsr r1, r7 + 28ce: 7100 lsl r4, r0 + 28d0: 7080 lsl r2, r0 + 28d2: 6c50 or r1, r4 + 28d4: 70dd lsr r3, r7 + 28d6: 6d07 mov r4, r1 + 28d8: 4af0 lsri r7, r2, 16 + 28da: b822 st.w r1, (r14, 0x8) + 28dc: 7449 zexth r1, r2 + 28de: 7140 lsl r5, r0 + 28e0: 6d87 mov r6, r1 + 28e2: 6c0f mov r0, r3 + 28e4: 6c5f mov r1, r7 + 28e6: b844 st.w r2, (r14, 0x10) + 28e8: b8a0 st.w r5, (r14, 0x0) + 28ea: b863 st.w r3, (r14, 0xc) + 28ec: e0000dba bsr 0x4460 // 4460 <__umodsi3> + 28f0: 9863 ld.w r3, (r14, 0xc) + 28f2: 6d43 mov r5, r0 + 28f4: 6c5f mov r1, r7 + 28f6: 6c0f mov r0, r3 + 28f8: e0000d90 bsr 0x4418 // 4418 <__udivsi3> + 28fc: 45b0 lsli r5, r5, 16 + 28fe: 4c70 lsri r3, r4, 16 + 2900: 7c18 mult r0, r6 + 2902: 6d4c or r5, r3 + 2904: 6414 cmphs r5, r0 + 2906: 9844 ld.w r2, (r14, 0x10) + 2908: 0807 bt 0x2916 // 2916 <__umoddi3+0x30a> + 290a: 6148 addu r5, r2 + 290c: 6494 cmphs r5, r2 + 290e: 0c04 bf 0x2916 // 2916 <__umoddi3+0x30a> + 2910: 6414 cmphs r5, r0 + 2912: 0802 bt 0x2916 // 2916 <__umoddi3+0x30a> + 2914: 6148 addu r5, r2 + 2916: 6142 subu r5, r0 + 2918: 6c5f mov r1, r7 + 291a: 6c17 mov r0, r5 + 291c: b843 st.w r2, (r14, 0xc) + 291e: e0000da1 bsr 0x4460 // 4460 <__umodsi3> + 2922: 6d03 mov r4, r0 + 2924: 6c5f mov r1, r7 + 2926: 6c17 mov r0, r5 + 2928: e0000d78 bsr 0x4418 // 4418 <__udivsi3> + 292c: d86e1004 ld.h r3, (r14, 0x8) + 2930: 4490 lsli r4, r4, 16 + 2932: 744d zexth r1, r3 + 2934: 7c18 mult r0, r6 + 2936: 6d04 or r4, r1 + 2938: 6410 cmphs r4, r0 + 293a: 9843 ld.w r2, (r14, 0xc) + 293c: 0807 bt 0x294a // 294a <__umoddi3+0x33e> + 293e: 6108 addu r4, r2 + 2940: 6490 cmphs r4, r2 + 2942: 0c04 bf 0x294a // 294a <__umoddi3+0x33e> + 2944: 6410 cmphs r4, r0 + 2946: 0802 bt 0x294a // 294a <__umoddi3+0x33e> + 2948: 6108 addu r4, r2 + 294a: 6102 subu r4, r0 + 294c: 0700 br 0x274c // 274c <__umoddi3+0x140> + 294e: 9823 ld.w r1, (r14, 0xc) + 2950: 5b05 subu r0, r3, r1 + 2952: 640c cmphs r3, r0 + 2954: 9822 ld.w r1, (r14, 0x8) + 2956: 6146 subu r5, r1 + 2958: 64c3 mvcv r3 + 295a: 614e subu r5, r3 + 295c: 5a35 subu r1, r2, r5 + 295e: 07a7 br 0x28ac // 28ac <__umoddi3+0x2a0> + 2960: 3618 movi r6, 24 + 2962: 06c2 br 0x26e6 // 26e6 <__umoddi3+0xda> + 2964: 3718 movi r7, 24 + 2966: 06e4 br 0x272e // 272e <__umoddi3+0x122> + 2968: 3718 movi r7, 24 + 296a: 0665 br 0x2634 // 2634 <__umoddi3+0x28> + 296c: 6448 cmphs r2, r1 + 296e: 0b7e bt 0x286a // 286a <__umoddi3+0x25e> + 2970: 2801 subi r0, 2 + 2972: 6090 addu r2, r4 + 2974: 077c br 0x286c // 286c <__umoddi3+0x260> + 2976: 648c cmphs r3, r2 + 2978: 0b5d bt 0x2832 // 2832 <__umoddi3+0x226> + 297a: 2d01 subi r5, 2 + 297c: 60c0 addu r3, r0 + 297e: 075b br 0x2834 // 2834 <__umoddi3+0x228> + 2980: 6148 addu r5, r2 + 2982: 06a2 br 0x26c6 // 26c6 <__umoddi3+0xba> + 2984: 6108 addu r4, r2 + 2986: 06fa br 0x277a // 277a <__umoddi3+0x16e> + 2988: 60c8 addu r3, r2 + 298a: 0683 br 0x2690 // 2690 <__umoddi3+0x84> + 298c: 6c17 mov r0, r5 + 298e: 6c4f mov r1, r3 + 2990: 06bf br 0x270e // 270e <__umoddi3+0x102> + 2992: 9824 ld.w r1, (r14, 0x10) + 2994: 64c4 cmphs r1, r3 + 2996: 0fdc bf 0x294e // 294e <__umoddi3+0x342> + 2998: 6c0f mov r0, r3 + 299a: 3100 movi r1, 0 + 299c: 0788 br 0x28ac // 28ac <__umoddi3+0x2a0> + 299e: 0000 bkpt + 29a0: 0000ffff .long 0x0000ffff + 29a4: 00005ec4 .long 0x00005ec4 + 29a8: 00ffffff .long 0x00ffffff + +000029ac : + 29ac: 14c2 push r4-r5 + 29ae: 3300 movi r3, 0 + 29b0: 644d cmplt r3, r1 + 29b2: 0803 bt 0x29b8 // 29b8 + 29b4: 6c0f mov r0, r3 + 29b6: 1482 pop r4-r5 + 29b8: 5aac addu r5, r2, r3 + 29ba: 588c addu r4, r0, r3 + 29bc: 2300 addi r3, 1 + 29be: 85a0 ld.b r5, (r5, 0x0) + 29c0: 3b43 cmpnei r3, 3 + 29c2: a4a0 st.b r5, (r4, 0x0) + 29c4: 0bf6 bt 0x29b0 // 29b0 + 29c6: 3923 cmplti r1, 4 + 29c8: 0bf6 bt 0x29b4 // 29b4 + 29ca: 3300 movi r3, 0 + 29cc: a063 st.b r3, (r0, 0x3) + 29ce: 3304 movi r3, 4 + 29d0: 07f2 br 0x29b4 // 29b4 + +000029d2 <__GI___dtostr>: + 29d2: 14d4 push r4-r7, r15 + 29d4: 142c subi r14, r14, 48 + 29d6: 6d8f mov r6, r3 + 29d8: 9871 ld.w r3, (r14, 0x44) + 29da: b80a st.w r0, (r14, 0x28) + 29dc: b824 st.w r1, (r14, 0x10) + 29de: b842 st.w r2, (r14, 0x8) + 29e0: b86b st.w r3, (r14, 0x2c) + 29e2: 98f2 ld.w r7, (r14, 0x48) + 29e4: e0000244 bsr 0x2e6c // 2e6c <__isinf> + 29e8: 3840 cmpnei r0, 0 + 29ea: 0c0a bf 0x29fe // 29fe <__GI___dtostr+0x2c> + 29ec: 0244 lrw r2, 0x6426 // 2cd8 <__GI___dtostr+0x306> + 29ee: 6c5b mov r1, r6 + 29f0: 9802 ld.w r0, (r14, 0x8) + 29f2: e3ffffdd bsr 0x29ac // 29ac + 29f6: b809 st.w r0, (r14, 0x24) + 29f8: 9809 ld.w r0, (r14, 0x24) + 29fa: 140c addi r14, r14, 48 + 29fc: 1494 pop r4-r7, r15 + 29fe: 980a ld.w r0, (r14, 0x28) + 2a00: 9824 ld.w r1, (r14, 0x10) + 2a02: e0000185 bsr 0x2d0c // 2d0c <__isnan> + 2a06: 3840 cmpnei r0, 0 + 2a08: b809 st.w r0, (r14, 0x24) + 2a0a: 0c03 bf 0x2a10 // 2a10 <__GI___dtostr+0x3e> + 2a0c: 024b lrw r2, 0x642a // 2cdc <__GI___dtostr+0x30a> + 2a0e: 07f0 br 0x29ee // 29ee <__GI___dtostr+0x1c> + 2a10: 3200 movi r2, 0 + 2a12: 3300 movi r3, 0 + 2a14: 980a ld.w r0, (r14, 0x28) + 2a16: 9824 ld.w r1, (r14, 0x10) + 2a18: e0000242 bsr 0x2e9c // 2e9c <__eqdf2> + 2a1c: 3840 cmpnei r0, 0 + 2a1e: 082d bt 0x2a78 // 2a78 <__GI___dtostr+0xa6> + 2a20: 3f40 cmpnei r7, 0 + 2a22: 0d57 bf 0x2cd0 // 2cd0 <__GI___dtostr+0x2fe> + 2a24: 5fa6 addi r5, r7, 2 + 2a26: 6558 cmphs r6, r5 + 2a28: 0d56 bf 0x2cd4 // 2cd4 <__GI___dtostr+0x302> + 2a2a: 3d40 cmpnei r5, 0 + 2a2c: 0c0b bf 0x2a42 // 2a42 <__GI___dtostr+0x70> + 2a2e: 9824 ld.w r1, (r14, 0x10) + 2a30: 39df btsti r1, 31 + 2a32: 0c1a bf 0x2a66 // 2a66 <__GI___dtostr+0x94> + 2a34: 9802 ld.w r0, (r14, 0x8) + 2a36: 322d movi r2, 45 + 2a38: a040 st.b r2, (r0, 0x0) + 2a3a: 5d02 addi r0, r5, 1 + 2a3c: 3501 movi r5, 1 + 2a3e: 6414 cmphs r5, r0 + 2a40: 0c16 bf 0x2a6c // 2a6c <__GI___dtostr+0x9a> + 2a42: 9882 ld.w r4, (r14, 0x8) + 2a44: 8420 ld.b r1, (r4, 0x0) + 2a46: 3330 movi r3, 48 + 2a48: 64c6 cmpne r1, r3 + 2a4a: 3000 movi r0, 0 + 2a4c: 6001 addc r0, r0 + 2a4e: 9842 ld.w r2, (r14, 0x8) + 2a50: 9822 ld.w r1, (r14, 0x8) + 2a52: 6008 addu r0, r2 + 2a54: 342e movi r4, 46 + 2a56: 6054 addu r1, r5 + 2a58: 3300 movi r3, 0 + 2a5a: a081 st.b r4, (r0, 0x1) + 2a5c: b8a9 st.w r5, (r14, 0x24) + 2a5e: a160 st.b r3, (r1, 0x0) + 2a60: 07cc br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2a62: 3501 movi r5, 1 + 2a64: 07e5 br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2a66: 6c17 mov r0, r5 + 2a68: 3500 movi r5, 0 + 2a6a: 07ea br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a6c: 9842 ld.w r2, (r14, 0x8) + 2a6e: 6094 addu r2, r5 + 2a70: 3430 movi r4, 48 + 2a72: a280 st.b r4, (r2, 0x0) + 2a74: 2500 addi r5, 1 + 2a76: 07e4 br 0x2a3e // 2a3e <__GI___dtostr+0x6c> + 2a78: 3200 movi r2, 0 + 2a7a: 3300 movi r3, 0 + 2a7c: 980a ld.w r0, (r14, 0x28) + 2a7e: 9824 ld.w r1, (r14, 0x10) + 2a80: e000022c bsr 0x2ed8 // 2ed8 <__ltdf2> + 2a84: 38df btsti r0, 31 + 2a86: 0c8e bf 0x2ba2 // 2ba2 <__GI___dtostr+0x1d0> + 2a88: 3180 movi r1, 128 + 2a8a: 98a2 ld.w r5, (r14, 0x8) + 2a8c: 9884 ld.w r4, (r14, 0x10) + 2a8e: 4158 lsli r2, r1, 24 + 2a90: 332d movi r3, 45 + 2a92: a560 st.b r3, (r5, 0x0) + 2a94: 6108 addu r4, r2 + 2a96: 2e00 subi r6, 1 + 2a98: 2500 addi r5, 1 + 2a9a: 3000 movi r0, 0 + 2a9c: 032e lrw r1, 0x3fe00000 // 2ce0 <__GI___dtostr+0x30e> + 2a9e: 3300 movi r3, 0 + 2aa0: b865 st.w r3, (r14, 0x14) + 2aa2: 9845 ld.w r2, (r14, 0x14) + 2aa4: 65ca cmpne r2, r7 + 2aa6: 0881 bt 0x2ba8 // 2ba8 <__GI___dtostr+0x1d6> + 2aa8: 6c83 mov r2, r0 + 2aaa: 6cc7 mov r3, r1 + 2aac: 980a ld.w r0, (r14, 0x28) + 2aae: 6c53 mov r1, r4 + 2ab0: e3fff2b6 bsr 0x101c // 101c <__adddf3> + 2ab4: 3200 movi r2, 0 + 2ab6: 0373 lrw r3, 0x3ff00000 // 2ce4 <__GI___dtostr+0x312> + 2ab8: b806 st.w r0, (r14, 0x18) + 2aba: b827 st.w r1, (r14, 0x1c) + 2abc: e000020e bsr 0x2ed8 // 2ed8 <__ltdf2> + 2ac0: 38df btsti r0, 31 + 2ac2: 0c05 bf 0x2acc // 2acc <__GI___dtostr+0xfa> + 2ac4: 3430 movi r4, 48 + 2ac6: a580 st.b r4, (r5, 0x0) + 2ac8: 2e00 subi r6, 1 + 2aca: 2500 addi r5, 1 + 2acc: 9804 ld.w r0, (r14, 0x10) + 2ace: 4021 lsli r1, r0, 1 + 2ad0: 0379 lrw r3, 0xfffffc01 // 2ce8 <__GI___dtostr+0x316> + 2ad2: 4915 lsri r0, r1, 21 + 2ad4: 600c addu r0, r3 + 2ad6: e3fff4f5 bsr 0x14c0 // 14c0 <__floatsidf> + 2ada: 035a lrw r2, 0x509f79ff // 2cec <__GI___dtostr+0x31a> + 2adc: 037a lrw r3, 0x3fd34413 // 2cf0 <__GI___dtostr+0x31e> + 2ade: e3fff2d3 bsr 0x1084 // 1084 <__muldf3> + 2ae2: e3fff527 bsr 0x1530 // 1530 <__fixdfsi> + 2ae6: 5842 addi r2, r0, 1 + 2ae8: 3a20 cmplti r2, 1 + 2aea: b848 st.w r2, (r14, 0x20) + 2aec: 08e7 bt 0x2cba // 2cba <__GI___dtostr+0x2e8> + 2aee: 033d lrw r1, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2af0: 6dcb mov r7, r2 + 2af2: 3400 movi r4, 0 + 2af4: b823 st.w r1, (r14, 0xc) + 2af6: 3f0a cmphsi r7, 11 + 2af8: 085f bt 0x2bb6 // 2bb6 <__GI___dtostr+0x1e4> + 2afa: 3f41 cmpnei r7, 1 + 2afc: 0868 bt 0x2bcc // 2bcc <__GI___dtostr+0x1fa> + 2afe: 135f lrw r2, 0xcccccccd // 2cf8 <__GI___dtostr+0x326> + 2b00: 137f lrw r3, 0x3feccccc // 2cfc <__GI___dtostr+0x32a> + 2b02: 6c13 mov r0, r4 + 2b04: 9823 ld.w r1, (r14, 0xc) + 2b06: e3fff483 bsr 0x140c // 140c <__gtdf2> + 2b0a: 3820 cmplti r0, 1 + 2b0c: 0c6a bf 0x2be0 // 2be0 <__GI___dtostr+0x20e> + 2b0e: 9862 ld.w r3, (r14, 0x8) + 2b10: 64d6 cmpne r5, r3 + 2b12: 0807 bt 0x2b20 // 2b20 <__GI___dtostr+0x14e> + 2b14: 3e40 cmpnei r6, 0 + 2b16: 0f71 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b18: 3230 movi r2, 48 + 2b1a: a540 st.b r2, (r5, 0x0) + 2b1c: 2e00 subi r6, 1 + 2b1e: 2500 addi r5, 1 + 2b20: 9805 ld.w r0, (r14, 0x14) + 2b22: 3840 cmpnei r0, 0 + 2b24: 08cf bt 0x2cc2 // 2cc2 <__GI___dtostr+0x2f0> + 2b26: 9822 ld.w r1, (r14, 0x8) + 2b28: 5d65 subu r3, r5, r1 + 2b2a: 2300 addi r3, 1 + 2b2c: 984b ld.w r2, (r14, 0x2c) + 2b2e: 648c cmphs r3, r2 + 2b30: 08a5 bt 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b32: 3e40 cmpnei r6, 0 + 2b34: 0f62 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b36: 372e movi r7, 46 + 2b38: a5e0 st.b r7, (r5, 0x0) + 2b3a: 980b ld.w r0, (r14, 0x2c) + 2b3c: 5de2 addi r7, r5, 1 + 2b3e: 9822 ld.w r1, (r14, 0x8) + 2b40: 2000 addi r0, 1 + 2b42: 5f65 subu r3, r7, r1 + 2b44: 584d subu r2, r0, r3 + 2b46: 2e00 subi r6, 1 + 2b48: b845 st.w r2, (r14, 0x14) + 2b4a: 9805 ld.w r0, (r14, 0x14) + 2b4c: 6418 cmphs r6, r0 + 2b4e: 0f55 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2b50: 6d43 mov r5, r0 + 2b52: 615c addu r5, r7 + 2b54: 36ff movi r6, 255 + 2b56: 655e cmpne r7, r5 + 2b58: 0c91 bf 0x2c7a // 2c7a <__GI___dtostr+0x2a8> + 2b5a: 6c93 mov r2, r4 + 2b5c: 9863 ld.w r3, (r14, 0xc) + 2b5e: 9806 ld.w r0, (r14, 0x18) + 2b60: 9827 ld.w r1, (r14, 0x1c) + 2b62: e3fff3ab bsr 0x12b8 // 12b8 <__divdf3> + 2b66: e3fff4e5 bsr 0x1530 // 1530 <__fixdfsi> + 2b6a: 3130 movi r1, 48 + 2b6c: 6040 addu r1, r0 + 2b6e: a720 st.b r1, (r7, 0x0) + 2b70: 6818 and r0, r6 + 2b72: e3fff4a7 bsr 0x14c0 // 14c0 <__floatsidf> + 2b76: 6c93 mov r2, r4 + 2b78: 9863 ld.w r3, (r14, 0xc) + 2b7a: e3fff285 bsr 0x1084 // 1084 <__muldf3> + 2b7e: 6c83 mov r2, r0 + 2b80: 6cc7 mov r3, r1 + 2b82: 9806 ld.w r0, (r14, 0x18) + 2b84: 9827 ld.w r1, (r14, 0x1c) + 2b86: e3fff263 bsr 0x104c // 104c <__subdf3> + 2b8a: b806 st.w r0, (r14, 0x18) + 2b8c: b827 st.w r1, (r14, 0x1c) + 2b8e: 6c13 mov r0, r4 + 2b90: 9823 ld.w r1, (r14, 0xc) + 2b92: 3200 movi r2, 0 + 2b94: 1278 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2b96: e3fff391 bsr 0x12b8 // 12b8 <__divdf3> + 2b9a: 2700 addi r7, 1 + 2b9c: 6d03 mov r4, r0 + 2b9e: b823 st.w r1, (r14, 0xc) + 2ba0: 07db br 0x2b56 // 2b56 <__GI___dtostr+0x184> + 2ba2: 98a2 ld.w r5, (r14, 0x8) + 2ba4: 9884 ld.w r4, (r14, 0x10) + 2ba6: 077a br 0x2a9a // 2a9a <__GI___dtostr+0xc8> + 2ba8: 1276 lrw r3, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2baa: 1257 lrw r2, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2bac: e3fff26c bsr 0x1084 // 1084 <__muldf3> + 2bb0: 9865 ld.w r3, (r14, 0x14) + 2bb2: 2300 addi r3, 1 + 2bb4: 0776 br 0x2aa0 // 2aa0 <__GI___dtostr+0xce> + 2bb6: 3080 movi r0, 128 + 2bb8: 4056 lsli r2, r0, 22 + 2bba: 9823 ld.w r1, (r14, 0xc) + 2bbc: 6c13 mov r0, r4 + 2bbe: 1273 lrw r3, 0x4202a05f // 2d08 <__GI___dtostr+0x336> + 2bc0: e3fff262 bsr 0x1084 // 1084 <__muldf3> + 2bc4: 6d03 mov r4, r0 + 2bc6: b823 st.w r1, (r14, 0xc) + 2bc8: 2f09 subi r7, 10 + 2bca: 0796 br 0x2af6 // 2af6 <__GI___dtostr+0x124> + 2bcc: 6c13 mov r0, r4 + 2bce: 9823 ld.w r1, (r14, 0xc) + 2bd0: 3200 movi r2, 0 + 2bd2: 1269 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2bd4: e3fff258 bsr 0x1084 // 1084 <__muldf3> + 2bd8: 6d03 mov r4, r0 + 2bda: b823 st.w r1, (r14, 0xc) + 2bdc: 2f00 subi r7, 1 + 2bde: 078e br 0x2afa // 2afa <__GI___dtostr+0x128> + 2be0: 9863 ld.w r3, (r14, 0xc) + 2be2: 6c93 mov r2, r4 + 2be4: 9806 ld.w r0, (r14, 0x18) + 2be6: 9827 ld.w r1, (r14, 0x1c) + 2be8: e3fff368 bsr 0x12b8 // 12b8 <__divdf3> + 2bec: e3fff4a2 bsr 0x1530 // 1530 <__fixdfsi> + 2bf0: 3f40 cmpnei r7, 0 + 2bf2: 74c0 zextb r3, r0 + 2bf4: 0c03 bf 0x2bfa // 2bfa <__GI___dtostr+0x228> + 2bf6: 3b40 cmpnei r3, 0 + 2bf8: 0c58 bf 0x2ca8 // 2ca8 <__GI___dtostr+0x2d6> + 2bfa: 232f addi r3, 48 + 2bfc: 3e40 cmpnei r6, 0 + 2bfe: a560 st.b r3, (r5, 0x0) + 2c00: 2500 addi r5, 1 + 2c02: 0842 bt 0x2c86 // 2c86 <__GI___dtostr+0x2b4> + 2c04: 6c93 mov r2, r4 + 2c06: 9863 ld.w r3, (r14, 0xc) + 2c08: 980a ld.w r0, (r14, 0x28) + 2c0a: 9824 ld.w r1, (r14, 0x10) + 2c0c: e3fff356 bsr 0x12b8 // 12b8 <__divdf3> + 2c10: 9845 ld.w r2, (r14, 0x14) + 2c12: 988b ld.w r4, (r14, 0x2c) + 2c14: b841 st.w r2, (r14, 0x4) + 2c16: b880 st.w r4, (r14, 0x0) + 2c18: 3300 movi r3, 0 + 2c1a: 9842 ld.w r2, (r14, 0x8) + 2c1c: e3fffedb bsr 0x29d2 // 29d2 <__GI___dtostr> + 2c20: 3840 cmpnei r0, 0 + 2c22: 0eeb bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c24: 5dc0 addu r6, r5, r0 + 2c26: 37fa movi r7, 250 + 2c28: 3565 movi r5, 101 + 2c2a: 6c02 nor r0, r0 + 2c2c: a6a0 st.b r5, (r6, 0x0) + 2c2e: 6d03 mov r4, r0 + 2c30: 5ea2 addi r5, r6, 1 + 2c32: 3101 movi r1, 1 + 2c34: 3604 movi r6, 4 + 2c36: 47e2 lsli r7, r7, 2 + 2c38: 9808 ld.w r0, (r14, 0x20) + 2c3a: 65c1 cmplt r0, r7 + 2c3c: 0c03 bf 0x2c42 // 2c42 <__GI___dtostr+0x270> + 2c3e: 3940 cmpnei r1, 0 + 2c40: 0811 bt 0x2c62 // 2c62 <__GI___dtostr+0x290> + 2c42: 3c40 cmpnei r4, 0 + 2c44: 0c08 bf 0x2c54 // 2c54 <__GI___dtostr+0x282> + 2c46: 6c5f mov r1, r7 + 2c48: 9808 ld.w r0, (r14, 0x20) + 2c4a: e0000bd5 bsr 0x43f4 // 43f4 <__divsi3> + 2c4e: 202f addi r0, 48 + 2c50: a500 st.b r0, (r5, 0x0) + 2c52: 2500 addi r5, 1 + 2c54: 6c5f mov r1, r7 + 2c56: 9808 ld.w r0, (r14, 0x20) + 2c58: e0000bf2 bsr 0x443c // 443c <__modsi3> + 2c5c: 2c00 subi r4, 1 + 2c5e: b808 st.w r0, (r14, 0x20) + 2c60: 3100 movi r1, 0 + 2c62: b823 st.w r1, (r14, 0xc) + 2c64: 6c1f mov r0, r7 + 2c66: 310a movi r1, 10 + 2c68: 2e00 subi r6, 1 + 2c6a: e0000bc5 bsr 0x43f4 // 43f4 <__divsi3> + 2c6e: 3e40 cmpnei r6, 0 + 2c70: 6dc3 mov r7, r0 + 2c72: 9823 ld.w r1, (r14, 0xc) + 2c74: 0be2 bt 0x2c38 // 2c38 <__GI___dtostr+0x266> + 2c76: 3c40 cmpnei r4, 0 + 2c78: 0ec0 bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c7a: 9842 ld.w r2, (r14, 0x8) + 2c7c: 3300 movi r3, 0 + 2c7e: 5d89 subu r4, r5, r2 + 2c80: a560 st.b r3, (r5, 0x0) + 2c82: b889 st.w r4, (r14, 0x24) + 2c84: 06ba br 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2c86: 7400 zextb r0, r0 + 2c88: e3fff41c bsr 0x14c0 // 14c0 <__floatsidf> + 2c8c: 6c93 mov r2, r4 + 2c8e: 9863 ld.w r3, (r14, 0xc) + 2c90: e3fff1fa bsr 0x1084 // 1084 <__muldf3> + 2c94: 6c83 mov r2, r0 + 2c96: 6cc7 mov r3, r1 + 2c98: 9806 ld.w r0, (r14, 0x18) + 2c9a: 9827 ld.w r1, (r14, 0x1c) + 2c9c: e3fff1d8 bsr 0x104c // 104c <__subdf3> + 2ca0: b806 st.w r0, (r14, 0x18) + 2ca2: b827 st.w r1, (r14, 0x1c) + 2ca4: 2e00 subi r6, 1 + 2ca6: 3700 movi r7, 0 + 2ca8: 6c13 mov r0, r4 + 2caa: 9823 ld.w r1, (r14, 0xc) + 2cac: 3200 movi r2, 0 + 2cae: 1072 lrw r3, 0x40240000 // 2cf4 <__GI___dtostr+0x322> + 2cb0: e3fff304 bsr 0x12b8 // 12b8 <__divdf3> + 2cb4: 6d03 mov r4, r0 + 2cb6: b823 st.w r1, (r14, 0xc) + 2cb8: 0723 br 0x2afe // 2afe <__GI___dtostr+0x12c> + 2cba: 1012 lrw r0, 0x3fb99999 // 2d00 <__GI___dtostr+0x32e> + 2cbc: 1092 lrw r4, 0x9999999a // 2d04 <__GI___dtostr+0x332> + 2cbe: b803 st.w r0, (r14, 0xc) + 2cc0: 0727 br 0x2b0e // 2b0e <__GI___dtostr+0x13c> + 2cc2: 3e40 cmpnei r6, 0 + 2cc4: 0e9a bf 0x29f8 // 29f8 <__GI___dtostr+0x26> + 2cc6: 372e movi r7, 46 + 2cc8: a5e0 st.b r7, (r5, 0x0) + 2cca: 2e00 subi r6, 1 + 2ccc: 5de2 addi r7, r5, 1 + 2cce: 073e br 0x2b4a // 2b4a <__GI___dtostr+0x178> + 2cd0: 3e40 cmpnei r6, 0 + 2cd2: 0ac8 bt 0x2a62 // 2a62 <__GI___dtostr+0x90> + 2cd4: 3508 movi r5, 8 + 2cd6: 06ac br 0x2a2e // 2a2e <__GI___dtostr+0x5c> + 2cd8: 00006426 .long 0x00006426 + 2cdc: 0000642a .long 0x0000642a + 2ce0: 3fe00000 .long 0x3fe00000 + 2ce4: 3ff00000 .long 0x3ff00000 + 2ce8: fffffc01 .long 0xfffffc01 + 2cec: 509f79ff .long 0x509f79ff + 2cf0: 3fd34413 .long 0x3fd34413 + 2cf4: 40240000 .long 0x40240000 + 2cf8: cccccccd .long 0xcccccccd + 2cfc: 3feccccc .long 0x3feccccc + 2d00: 3fb99999 .long 0x3fb99999 + 2d04: 9999999a .long 0x9999999a + 2d08: 4202a05f .long 0x4202a05f + +00002d0c <__isnan>: + 2d0c: 416c lsli r3, r1, 12 + 2d0e: 4b4c lsri r2, r3, 12 + 2d10: 6c08 or r0, r2 + 2d12: 3840 cmpnei r0, 0 + 2d14: 0c0e bf 0x2d30 // 2d30 <__isnan+0x24> + 2d16: 1008 lrw r0, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d18: 6840 and r1, r0 + 2d1a: 6cc7 mov r3, r1 + 2d1c: 3000 movi r0, 0 + 2d1e: 1026 lrw r1, 0x7ff00000 // 2d34 <__isnan+0x28> + 2d20: 3200 movi r2, 0 + 2d22: 6c81 xor r2, r0 + 2d24: 6cc5 xor r3, r1 + 2d26: 6c8c or r2, r3 + 2d28: 3a40 cmpnei r2, 0 + 2d2a: 6443 mvcv r1 + 2d2c: 7404 zextb r0, r1 + 2d2e: 783c jmp r15 + 2d30: 3000 movi r0, 0 + 2d32: 07fe br 0x2d2e // 2d2e <__isnan+0x22> + 2d34: 7ff00000 .long 0x7ff00000 + +00002d38 <__strlen_fast>: + 2d38: 6c43 mov r1, r0 + 2d3a: 3203 movi r2, 3 + 2d3c: 6808 and r0, r2 + 2d3e: 3840 cmpnei r0, 0 + 2d40: 0c08 bf 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d42: 3000 movi r0, 0 + 2d44: 8140 ld.b r2, (r1, 0x0) + 2d46: 3a40 cmpnei r2, 0 + 2d48: 0c20 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d4a: 2100 addi r1, 1 + 2d4c: 2000 addi r0, 1 + 2d4e: 07fb br 0x2d44 // 2d44 <__strlen_fast+0xc> + 2d50: 9140 ld.w r2, (r1, 0x0) + 2d52: 680b tstnbz r2 + 2d54: 0c04 bf 0x2d5c // 2d5c <__strlen_fast+0x24> + 2d56: 2103 addi r1, 4 + 2d58: 2003 addi r0, 4 + 2d5a: 07fb br 0x2d50 // 2d50 <__strlen_fast+0x18> + 2d5c: 31ff movi r1, 255 + 2d5e: 6ccb mov r3, r2 + 2d60: 68c4 and r3, r1 + 2d62: 3b40 cmpnei r3, 0 + 2d64: 0c12 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d66: 2000 addi r0, 1 + 2d68: 3110 movi r1, 16 + 2d6a: 6ccb mov r3, r2 + 2d6c: 70c4 lsl r3, r1 + 2d6e: 3118 movi r1, 24 + 2d70: 70c5 lsr r3, r1 + 2d72: 3b40 cmpnei r3, 0 + 2d74: 0c0a bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d76: 2000 addi r0, 1 + 2d78: 3108 movi r1, 8 + 2d7a: 6ccb mov r3, r2 + 2d7c: 70c4 lsl r3, r1 + 2d7e: 3118 movi r1, 24 + 2d80: 70c5 lsr r3, r1 + 2d82: 3b40 cmpnei r3, 0 + 2d84: 0c02 bf 0x2d88 // 2d88 <__strlen_fast+0x50> + 2d86: 2000 addi r0, 1 + 2d88: 783c jmp r15 + ... + +00002d8c <__strcpy_fast>: + 2d8c: 14c1 push r4 + 2d8e: 6d03 mov r4, r0 + 2d90: 6c87 mov r2, r1 + 2d92: 6c90 or r2, r4 + 2d94: 3303 movi r3, 3 + 2d96: 688c and r2, r3 + 2d98: 3a40 cmpnei r2, 0 + 2d9a: 0c08 bf 0x2daa // 2daa <__strcpy_fast+0x1e> + 2d9c: 8160 ld.b r3, (r1, 0x0) + 2d9e: a460 st.b r3, (r4, 0x0) + 2da0: 2100 addi r1, 1 + 2da2: 2400 addi r4, 1 + 2da4: 3b40 cmpnei r3, 0 + 2da6: 0bfb bt 0x2d9c // 2d9c <__strcpy_fast+0x10> + 2da8: 1481 pop r4 + 2daa: 9160 ld.w r3, (r1, 0x0) + 2dac: 680f tstnbz r3 + 2dae: 0c2e bf 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2db0: b460 st.w r3, (r4, 0x0) + 2db2: 9161 ld.w r3, (r1, 0x4) + 2db4: 680f tstnbz r3 + 2db6: 0c1d bf 0x2df0 // 2df0 <__strcpy_fast+0x64> + 2db8: b461 st.w r3, (r4, 0x4) + 2dba: 9162 ld.w r3, (r1, 0x8) + 2dbc: 680f tstnbz r3 + 2dbe: 0c1b bf 0x2df4 // 2df4 <__strcpy_fast+0x68> + 2dc0: b462 st.w r3, (r4, 0x8) + 2dc2: 9163 ld.w r3, (r1, 0xc) + 2dc4: 680f tstnbz r3 + 2dc6: 0c19 bf 0x2df8 // 2df8 <__strcpy_fast+0x6c> + 2dc8: b463 st.w r3, (r4, 0xc) + 2dca: 9164 ld.w r3, (r1, 0x10) + 2dcc: 680f tstnbz r3 + 2dce: 0c17 bf 0x2dfc // 2dfc <__strcpy_fast+0x70> + 2dd0: b464 st.w r3, (r4, 0x10) + 2dd2: 9165 ld.w r3, (r1, 0x14) + 2dd4: 680f tstnbz r3 + 2dd6: 0c15 bf 0x2e00 // 2e00 <__strcpy_fast+0x74> + 2dd8: b465 st.w r3, (r4, 0x14) + 2dda: 9166 ld.w r3, (r1, 0x18) + 2ddc: 680f tstnbz r3 + 2dde: 0c13 bf 0x2e04 // 2e04 <__strcpy_fast+0x78> + 2de0: b466 st.w r3, (r4, 0x18) + 2de2: 9167 ld.w r3, (r1, 0x1c) + 2de4: 680f tstnbz r3 + 2de6: 0c11 bf 0x2e08 // 2e08 <__strcpy_fast+0x7c> + 2de8: b467 st.w r3, (r4, 0x1c) + 2dea: 241f addi r4, 32 + 2dec: 211f addi r1, 32 + 2dee: 07de br 0x2daa // 2daa <__strcpy_fast+0x1e> + 2df0: 2403 addi r4, 4 + 2df2: 040c br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df4: 2407 addi r4, 8 + 2df6: 040a br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2df8: 240b addi r4, 12 + 2dfa: 0408 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2dfc: 240f addi r4, 16 + 2dfe: 0406 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e00: 2413 addi r4, 20 + 2e02: 0404 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e04: 2417 addi r4, 24 + 2e06: 0402 br 0x2e0a // 2e0a <__strcpy_fast+0x7e> + 2e08: 241b addi r4, 28 + 2e0a: 3118 movi r1, 24 + 2e0c: 6c8f mov r2, r3 + 2e0e: 7084 lsl r2, r1 + 2e10: 7085 lsr r2, r1 + 2e12: a440 st.b r2, (r4, 0x0) + 2e14: 3a40 cmpnei r2, 0 + 2e16: 0c12 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e18: 3110 movi r1, 16 + 2e1a: 6c8f mov r2, r3 + 2e1c: 7084 lsl r2, r1 + 2e1e: 3118 movi r1, 24 + 2e20: 7085 lsr r2, r1 + 2e22: a441 st.b r2, (r4, 0x1) + 2e24: 3a40 cmpnei r2, 0 + 2e26: 0c0a bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e28: 3108 movi r1, 8 + 2e2a: 6c8f mov r2, r3 + 2e2c: 7084 lsl r2, r1 + 2e2e: 3118 movi r1, 24 + 2e30: 7085 lsr r2, r1 + 2e32: a442 st.b r2, (r4, 0x2) + 2e34: 3a40 cmpnei r2, 0 + 2e36: 0c02 bf 0x2e3a // 2e3a <__strcpy_fast+0xae> + 2e38: b460 st.w r3, (r4, 0x0) + 2e3a: 1481 pop r4 + +00002e3c <__GI_strchr>: + 2e3c: 8040 ld.b r2, (r0, 0x0) + 2e3e: 644a cmpne r2, r1 + 2e40: 0c06 bf 0x2e4c // 2e4c <__GI_strchr+0x10> + 2e42: 3a40 cmpnei r2, 0 + 2e44: 0c03 bf 0x2e4a // 2e4a <__GI_strchr+0xe> + 2e46: 2000 addi r0, 1 + 2e48: 07fa br 0x2e3c // 2e3c <__GI_strchr> + 2e4a: 6c0b mov r0, r2 + 2e4c: 783c jmp r15 + ... + +00002e50 <__GI_strerror>: + 2e50: 338f movi r3, 143 + 2e52: 640c cmphs r3, r0 + 2e54: 0c06 bf 0x2e60 // 2e60 <__GI_strerror+0x10> + 2e56: 4002 lsli r0, r0, 2 + 2e58: 1023 lrw r1, 0x5fe4 // 2e64 <__GI_strerror+0x14> + 2e5a: 6004 addu r0, r1 + 2e5c: 9000 ld.w r0, (r0, 0x0) + 2e5e: 783c jmp r15 + 2e60: 1002 lrw r0, 0x624b // 2e68 <__GI_strerror+0x18> + 2e62: 07fe br 0x2e5e // 2e5e <__GI_strerror+0xe> + 2e64: 00005fe4 .long 0x00005fe4 + 2e68: 0000624b .long 0x0000624b + +00002e6c <__isinf>: + 2e6c: 3840 cmpnei r0, 0 + 2e6e: 6c83 mov r2, r0 + 2e70: 6cc7 mov r3, r1 + 2e72: 0804 bt 0x2e7a // 2e7a <__isinf+0xe> + 2e74: 1028 lrw r1, 0x7ff00000 // 2e94 <__isinf+0x28> + 2e76: 644e cmpne r3, r1 + 2e78: 0c0b bf 0x2e8e // 2e8e <__isinf+0x22> + 2e7a: 3000 movi r0, 0 + 2e7c: 1027 lrw r1, 0xfff00000 // 2e98 <__isinf+0x2c> + 2e7e: 6c81 xor r2, r0 + 2e80: 6cc5 xor r3, r1 + 2e82: 6c8c or r2, r3 + 2e84: 3a40 cmpnei r2, 0 + 2e86: 64c3 mvcv r3 + 2e88: 3000 movi r0, 0 + 2e8a: 600e subu r0, r3 + 2e8c: 783c jmp r15 + 2e8e: 3001 movi r0, 1 + 2e90: 07fe br 0x2e8c // 2e8c <__isinf+0x20> + 2e92: 0000 bkpt + 2e94: 7ff00000 .long 0x7ff00000 + 2e98: fff00000 .long 0xfff00000 + +00002e9c <__eqdf2>: + 2e9c: 14d0 push r15 + 2e9e: 142e subi r14, r14, 56 + 2ea0: b800 st.w r0, (r14, 0x0) + 2ea2: b821 st.w r1, (r14, 0x4) + 2ea4: 6c3b mov r0, r14 + 2ea6: 1904 addi r1, r14, 16 + 2ea8: b863 st.w r3, (r14, 0xc) + 2eaa: b842 st.w r2, (r14, 0x8) + 2eac: e3fff4b4 bsr 0x1814 // 1814 <__unpack_d> + 2eb0: 1909 addi r1, r14, 36 + 2eb2: 1802 addi r0, r14, 8 + 2eb4: e3fff4b0 bsr 0x1814 // 1814 <__unpack_d> + 2eb8: 9864 ld.w r3, (r14, 0x10) + 2eba: 3b01 cmphsi r3, 2 + 2ebc: 0c0a bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ebe: 9869 ld.w r3, (r14, 0x24) + 2ec0: 3b01 cmphsi r3, 2 + 2ec2: 0c07 bf 0x2ed0 // 2ed0 <__eqdf2+0x34> + 2ec4: 1909 addi r1, r14, 36 + 2ec6: 1804 addi r0, r14, 16 + 2ec8: e3fff508 bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2ecc: 140e addi r14, r14, 56 + 2ece: 1490 pop r15 + 2ed0: 3001 movi r0, 1 + 2ed2: 140e addi r14, r14, 56 + 2ed4: 1490 pop r15 + ... + +00002ed8 <__ltdf2>: + 2ed8: 14d0 push r15 + 2eda: 142e subi r14, r14, 56 + 2edc: b800 st.w r0, (r14, 0x0) + 2ede: b821 st.w r1, (r14, 0x4) + 2ee0: 6c3b mov r0, r14 + 2ee2: 1904 addi r1, r14, 16 + 2ee4: b863 st.w r3, (r14, 0xc) + 2ee6: b842 st.w r2, (r14, 0x8) + 2ee8: e3fff496 bsr 0x1814 // 1814 <__unpack_d> + 2eec: 1909 addi r1, r14, 36 + 2eee: 1802 addi r0, r14, 8 + 2ef0: e3fff492 bsr 0x1814 // 1814 <__unpack_d> + 2ef4: 9864 ld.w r3, (r14, 0x10) + 2ef6: 3b01 cmphsi r3, 2 + 2ef8: 0c0a bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2efa: 9869 ld.w r3, (r14, 0x24) + 2efc: 3b01 cmphsi r3, 2 + 2efe: 0c07 bf 0x2f0c // 2f0c <__ltdf2+0x34> + 2f00: 1909 addi r1, r14, 36 + 2f02: 1804 addi r0, r14, 16 + 2f04: e3fff4ea bsr 0x18d8 // 18d8 <__fpcmp_parts_d> + 2f08: 140e addi r14, r14, 56 + 2f0a: 1490 pop r15 + 2f0c: 3001 movi r0, 1 + 2f0e: 140e addi r14, r14, 56 + 2f10: 1490 pop r15 + +Disassembly of section .text.__main: + +00002f14 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 2f14: 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 ) { + 2f16: 1009 lrw r0, 0x20000000 // 2f38 <__main+0x24> + 2f18: 1029 lrw r1, 0x6bb8 // 2f3c <__main+0x28> + 2f1a: 6442 cmpne r0, r1 + 2f1c: 0c05 bf 0x2f26 // 2f26 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 2f1e: 1049 lrw r2, 0x200000a0 // 2f40 <__main+0x2c> + 2f20: 6082 subu r2, r0 + 2f22: e3fff5c1 bsr 0x1aa4 // 1aa4 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 2f26: 1048 lrw r2, 0x20000770 // 2f44 <__main+0x30> + 2f28: 1008 lrw r0, 0x200000a0 // 2f48 <__main+0x34> + 2f2a: 640a cmpne r2, r0 + 2f2c: 0c05 bf 0x2f36 // 2f36 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 2f2e: 6082 subu r2, r0 + 2f30: 3100 movi r1, 0 + 2f32: e3fff575 bsr 0x1a1c // 1a1c <__memset_fast> + } + + +} + 2f36: 1490 pop r15 + 2f38: 20000000 .long 0x20000000 + 2f3c: 00006bb8 .long 0x00006bb8 + 2f40: 200000a0 .long 0x200000a0 + 2f44: 20000770 .long 0x20000770 + 2f48: 200000a0 .long 0x200000a0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00002f4c : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 2f4c: 3848 cmpnei r0, 8 + 2f4e: 080a bt 0x2f62 // 2f62 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 2f50: 107a lrw r3, 0x2000004c // 2fb8 + 2f52: 32ff movi r2, 255 + 2f54: 9320 ld.w r1, (r3, 0x0) + 2f56: 9160 ld.w r3, (r1, 0x0) + 2f58: 424c lsli r2, r2, 12 + 2f5a: 68c9 andn r3, r2 + 2f5c: 3bae bseti r3, 14 + 2f5e: 3bb2 bseti r3, 18 + 2f60: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 2f62: 1077 lrw r3, 0x2000005c // 2fbc + 2f64: 9360 ld.w r3, (r3, 0x0) + 2f66: 9341 ld.w r2, (r3, 0x4) + 2f68: 6c80 or r2, r0 + 2f6a: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 2f6c: 9343 ld.w r2, (r3, 0xc) + 2f6e: 6880 and r2, r0 + 2f70: 3a40 cmpnei r2, 0 + 2f72: 0ffd bf 0x2f6c // 2f6c + switch(ENDIS_X) + 2f74: 3842 cmpnei r0, 2 + 2f76: 0807 bt 0x2f84 // 2f84 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 2f78: 3102 movi r1, 2 + 2f7a: 9344 ld.w r2, (r3, 0x10) + 2f7c: 6884 and r2, r1 + 2f7e: 3a40 cmpnei r2, 0 + 2f80: 0ffd bf 0x2f7a // 2f7a + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 2f82: 783c jmp r15 + switch(ENDIS_X) + 2f84: 3802 cmphsi r0, 3 + 2f86: 0809 bt 0x2f98 // 2f98 + 2f88: 3841 cmpnei r0, 1 + 2f8a: 0bfc bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 2f8c: 3101 movi r1, 1 + 2f8e: 9344 ld.w r2, (r3, 0x10) + 2f90: 6884 and r2, r1 + 2f92: 3a40 cmpnei r2, 0 + 2f94: 0ffd bf 0x2f8e // 2f8e + 2f96: 07f6 br 0x2f82 // 2f82 + switch(ENDIS_X) + 2f98: 3848 cmpnei r0, 8 + 2f9a: 0807 bt 0x2fa8 // 2fa8 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 2f9c: 3108 movi r1, 8 + 2f9e: 9344 ld.w r2, (r3, 0x10) + 2fa0: 6884 and r2, r1 + 2fa2: 3a40 cmpnei r2, 0 + 2fa4: 0ffd bf 0x2f9e // 2f9e + 2fa6: 07ee br 0x2f82 // 2f82 + switch(ENDIS_X) + 2fa8: 3850 cmpnei r0, 16 + 2faa: 0bec bt 0x2f82 // 2f82 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 2fac: 3110 movi r1, 16 + 2fae: 9344 ld.w r2, (r3, 0x10) + 2fb0: 6884 and r2, r1 + 2fb2: 3a40 cmpnei r2, 0 + 2fb4: 0ffd bf 0x2fae // 2fae + 2fb6: 07e6 br 0x2f82 // 2f82 + 2fb8: 2000004c .long 0x2000004c + 2fbc: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00002fc0 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 2fc0: 106c lrw r3, 0x2000005c // 2ff0 + 2fc2: 104d lrw r2, 0xffff // 2ff4 + 2fc4: 9360 ld.w r3, (r3, 0x0) + 2fc6: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 2fc8: 104c lrw r2, 0xffffff // 2ff8 + 2fca: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 2fcc: 104c lrw r2, 0xd22d0000 // 2ffc + 2fce: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 2fd0: 104c lrw r2, 0x70ff3bff // 3000 + 2fd2: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 2fd4: 320a movi r2, 10 + 2fd6: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fd8: 102b lrw r1, 0x70c // 3004 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 2fda: 237f addi r3, 128 + 2fdc: 3200 movi r2, 0 + 2fde: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 2fe0: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 2fe2: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 2fe4: 1029 lrw r1, 0x3fe // 3008 + 2fe6: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 2fe8: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 2fea: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 2fec: b35f st.w r2, (r3, 0x7c) +} + 2fee: 783c jmp r15 + 2ff0: 2000005c .long 0x2000005c + 2ff4: 0000ffff .long 0x0000ffff + 2ff8: 00ffffff .long 0x00ffffff + 2ffc: d22d0000 .long 0xd22d0000 + 3000: 70ff3bff .long 0x70ff3bff + 3004: 0000070c .long 0x0000070c + 3008: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +0000300c : +{ + 300c: 14d0 push r15 + if (NewState != DISABLE) + 300e: 3840 cmpnei r0, 0 + 3010: 0c05 bf 0x301a // 301a + 3012: 6c07 mov r0, r1 + 3014: e3ffff9c bsr 0x2f4c // 2f4c +} + 3018: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 301a: 1068 lrw r3, 0x2000005c // 3038 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9342 ld.w r2, (r3, 0x8) + 3020: 6c84 or r2, r1 + 3022: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 3024: 9343 ld.w r2, (r3, 0xc) + 3026: 6884 and r2, r1 + 3028: 3a40 cmpnei r2, 0 + 302a: 0bfd bt 0x3024 // 3024 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 302c: 237f addi r3, 128 + 302e: 9301 ld.w r0, (r3, 0x4) + 3030: 6c40 or r1, r0 + 3032: b321 st.w r1, (r3, 0x4) +} + 3034: 07f2 br 0x3018 // 3018 + 3036: 0000 bkpt + 3038: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +0000303c : +//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 ) +{ + 303c: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 303e: 3b48 cmpnei r3, 8 + 3040: 0828 bt 0x3090 // 3090 + { + IFC->CEDR=0X01; //CLKEN + 3042: 109d lrw r4, 0x20000060 // 30b4 + 3044: 3501 movi r5, 1 + 3046: 9480 ld.w r4, (r4, 0x0) + 3048: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 304a: 3504 movi r5, 4 + 304c: 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)) + 304e: 5b83 subi r4, r3, 1 + 3050: 3c01 cmphsi r4, 2 + 3052: 0c2b bf 0x30a8 // 30a8 + { + 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)) + 3054: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 3056: 3c04 cmphsi r4, 5 + 3058: 0c03 bf 0x305e // 305e + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 305a: 3b4b cmpnei r3, 11 + 305c: 0807 bt 0x306a // 306a + { + IFC->CEDR=0X01; //CLKEN + 305e: 1076 lrw r3, 0x20000060 // 30b4 + 3060: 3401 movi r4, 1 + 3062: 9360 ld.w r3, (r3, 0x0) + 3064: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 3066: 3400 movi r4, 0 + 3068: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 306a: 1094 lrw r4, 0xd22d0000 // 30b8 + 306c: 6c10 or r0, r4 + 306e: 1074 lrw r3, 0x2000005c // 30bc + 3070: 6c40 or r1, r0 + 3072: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3074: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 3076: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 3078: 4001 lsli r0, r0, 1 + 307a: 9324 ld.w r1, (r3, 0x10) + 307c: 6840 and r1, r0 + 307e: 3940 cmpnei r1, 0 + 3080: 0ffd bf 0x307a // 307a + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 3082: 1030 lrw r1, 0xc33c0000 // 30c0 + 3084: 6c48 or r1, r2 + 3086: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 3088: 9328 ld.w r1, (r3, 0x20) + 308a: 644a cmpne r2, r1 + 308c: 0bfe bt 0x3088 // 3088 +} + 308e: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 3090: 3b40 cmpnei r3, 0 + 3092: 0c03 bf 0x3098 // 3098 + 3094: 3b49 cmpnei r3, 9 + 3096: 0807 bt 0x30a4 // 30a4 + IFC->CEDR=0X01; //CLKEN + 3098: 1087 lrw r4, 0x20000060 // 30b4 + 309a: 3501 movi r5, 1 + 309c: 9480 ld.w r4, (r4, 0x0) + 309e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 30a0: 3502 movi r5, 2 + 30a2: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 30a4: 3b4a cmpnei r3, 10 + 30a6: 0bd4 bt 0x304e // 304e + IFC->CEDR=0X01; //CLKEN + 30a8: 1083 lrw r4, 0x20000060 // 30b4 + 30aa: 3501 movi r5, 1 + 30ac: 9480 ld.w r4, (r4, 0x0) + 30ae: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 30b0: b4a5 st.w r5, (r4, 0x14) + 30b2: 07d1 br 0x3054 // 3054 + 30b4: 20000060 .long 0x20000060 + 30b8: d22d0000 .long 0xd22d0000 + 30bc: 2000005c .long 0x2000005c + 30c0: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +000030c4 : +//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) +{ + 30c4: 14d1 push r4, r15 + 30c6: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 30c8: 3110 movi r1, 16 + 30ca: 3000 movi r0, 0 + 30cc: e3ffffa0 bsr 0x300c // 300c + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 30d0: 1066 lrw r3, 0x2000005c // 30e8 + 30d2: 9360 ld.w r3, (r3, 0x0) + 30d4: 9319 ld.w r0, (r3, 0x64) + 30d6: 3884 bclri r0, 4 + 30d8: 3885 bclri r0, 5 + 30da: 6c10 or r0, r4 + 30dc: b319 st.w r0, (r3, 0x64) + 30de: 3010 movi r0, 16 + 30e0: e3ffff36 bsr 0x2f4c // 2f4c + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 30e4: 1491 pop r4, r15 + 30e6: 0000 bkpt + 30e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +000030ec : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 30ec: 106c lrw r3, 0x2000005c // 311c + if(NewState != DISABLE) + 30ee: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f0: 9360 ld.w r3, (r3, 0x0) + 30f2: 237f addi r3, 128 + if(NewState != DISABLE) + 30f4: 0c0a bf 0x3108 // 3108 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30f6: 104b lrw r2, 0x78870000 // 3120 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30f8: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 30fa: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 30fc: 4125 lsli r1, r1, 5 + 30fe: 934d ld.w r2, (r3, 0x34) + 3100: 6884 and r2, r1 + 3102: 3a40 cmpnei r2, 0 + 3104: 0ffd bf 0x30fe // 30fe + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 3106: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 3108: 1047 lrw r2, 0x788755aa // 3124 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310a: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 310c: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 310e: 4125 lsli r1, r1, 5 + 3110: 934d ld.w r2, (r3, 0x34) + 3112: 6884 and r2, r1 + 3114: 3a40 cmpnei r2, 0 + 3116: 0bfd bt 0x3110 // 3110 + 3118: 07f7 br 0x3106 // 3106 + 311a: 0000 bkpt + 311c: 2000005c .long 0x2000005c + 3120: 78870000 .long 0x78870000 + 3124: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00003128 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 3128: 1064 lrw r3, 0x2000005c // 3138 + 312a: 32b4 movi r2, 180 + 312c: 9360 ld.w r3, (r3, 0x0) + 312e: 237f addi r3, 128 + 3130: 4257 lsli r2, r2, 23 + 3132: b34e st.w r2, (r3, 0x38) +} + 3134: 783c jmp r15 + 3136: 0000 bkpt + 3138: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +0000313c : +//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; + 313c: 1044 lrw r2, 0x87780000 // 314c + 313e: 1065 lrw r3, 0x2000005c // 3150 + 3140: 6c48 or r1, r2 + 3142: 9360 ld.w r3, (r3, 0x0) + 3144: 6c04 or r0, r1 + 3146: 237f addi r3, 128 + 3148: b30d st.w r0, (r3, 0x34) +} + 314a: 783c jmp r15 + 314c: 87780000 .long 0x87780000 + 3150: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00003154 : +//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) +{ + 3154: 14c3 push r4-r6 + 3156: 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; + 3158: 10c5 lrw r6, 0xb44b0000 // 316c + 315a: 6d18 or r4, r6 + 315c: 6cd0 or r3, r4 + 315e: 6c8c or r2, r3 + 3160: 6c48 or r1, r2 + 3162: 10a4 lrw r5, 0x2000005c // 3170 + 3164: 6c04 or r0, r1 + 3166: 95a0 ld.w r5, (r5, 0x0) + 3168: b513 st.w r0, (r5, 0x4c) +} + 316a: 1483 pop r4-r6 + 316c: b44b0000 .long 0xb44b0000 + 3170: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00003174 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 3174: 1066 lrw r3, 0x2000005c // 318c + 3176: 3180 movi r1, 128 + 3178: 9360 ld.w r3, (r3, 0x0) + 317a: 3280 movi r2, 128 + 317c: 604c addu r1, r3 + 317e: 4244 lsli r2, r2, 4 + 3180: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 3182: 935d ld.w r2, (r3, 0x74) + 3184: 3aab bseti r2, 11 + 3186: b35d st.w r2, (r3, 0x74) +} + 3188: 783c jmp r15 + 318a: 0000 bkpt + 318c: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00003190 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 3190: 1066 lrw r3, 0x2000005c // 31a8 + 3192: 3180 movi r1, 128 + 3194: 9360 ld.w r3, (r3, 0x0) + 3196: 3280 movi r2, 128 + 3198: 604c addu r1, r3 + 319a: 4241 lsli r2, r2, 1 + 319c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 319e: 935d ld.w r2, (r3, 0x74) + 31a0: 3aa8 bseti r2, 8 + 31a2: b35d st.w r2, (r3, 0x74) +} + 31a4: 783c jmp r15 + 31a6: 0000 bkpt + 31a8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +000031ac : +//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) + 31ac: 3a40 cmpnei r2, 0 + 31ae: 0c04 bf 0x31b6 // 31b6 + 31b0: 3a41 cmpnei r2, 1 + 31b2: 0c0e bf 0x31ce // 31ce + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 31b4: 783c jmp r15 + 31b6: 106d lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31b8: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 31ba: 9360 ld.w r3, (r3, 0x0) + 31bc: 237f addi r3, 128 + 31be: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 31c0: 0c04 bf 0x31c8 // 31c8 + SYSCON->EXIRT |=EXIPIN; + 31c2: 6c48 or r1, r2 + 31c4: b325 st.w r1, (r3, 0x14) + 31c6: 07f7 br 0x31b4 // 31b4 + SYSCON->EXIRT &=~EXIPIN; + 31c8: 6885 andn r2, r1 + 31ca: b345 st.w r2, (r3, 0x14) + 31cc: 07f4 br 0x31b4 // 31b4 + 31ce: 1067 lrw r3, 0x2000005c // 31e8 + if(NewState != DISABLE) + 31d0: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 31d2: 9360 ld.w r3, (r3, 0x0) + 31d4: 237f addi r3, 128 + 31d6: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 31d8: 0c04 bf 0x31e0 // 31e0 + SYSCON->EXIFT |=EXIPIN; + 31da: 6c48 or r1, r2 + 31dc: b326 st.w r1, (r3, 0x18) + 31de: 07eb br 0x31b4 // 31b4 + SYSCON->EXIFT &=~EXIPIN; + 31e0: 6885 andn r2, r1 + 31e2: b346 st.w r2, (r3, 0x18) +} + 31e4: 07e8 br 0x31b4 // 31b4 + 31e6: 0000 bkpt + 31e8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_Int_Enable: + +000031ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 31ec: 3202 movi r2, 2 + 31ee: 1062 lrw r3, 0xe000e100 // 31f4 + 31f0: b340 st.w r2, (r3, 0x0) +} + 31f2: 783c jmp r15 + 31f4: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_INT_Priority: + +000031f8 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31f8: 1066 lrw r3, 0xe000e400 // 3210 + 31fa: 1047 lrw r2, 0xc0c0c0c0 // 3214 + 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 + 31fc: 1027 lrw r1, 0xc0c000c0 // 3218 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 31fe: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 3200: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 3202: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 3204: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 3206: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 3208: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 320a: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 320c: b347 st.w r2, (r3, 0x1c) +} + 320e: 783c jmp r15 + 3210: e000e400 .long 0xe000e400 + 3214: c0c0c0c0 .long 0xc0c0c0c0 + 3218: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +0000321c : +//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) +{ + 321c: 14c1 push r4 + 321e: 4862 lsri r3, r0, 2 + 3220: 4342 lsli r2, r3, 2 + 3222: 106a lrw r3, 0x20000064 // 3248 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 3224: 3403 movi r4, 3 + 3226: 9360 ld.w r3, (r3, 0x0) + 3228: 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)); + 323a: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 323e: 7040 lsl r1, r0 + 3240: 6c48 or r1, r2 + 3242: b320 st.w r1, (r3, 0x0) +} + 3244: 1481 pop r4 + 3246: 0000 bkpt + 3248: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +0000324c : +//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) +{ + 324c: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 324e: 3907 cmphsi r1, 8 +{ + 3250: 6d03 mov r4, r0 + if(PinNum<8) + 3252: 0830 bt 0x32b2 // 32b2 + { + switch (PinNum) + 3254: 5903 subi r0, r1, 1 + 3256: 3806 cmphsi r0, 7 + 3258: 0827 bt 0x32a6 // 32a6 + 325a: e3ffed51 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 325e: 1004 .short 0x1004 + 3260: 1d1a1613 .long 0x1d1a1613 + 3264: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 3266: 3300 movi r3, 0 + 3268: 3104 movi r1, 4 + 326a: 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) + 326c: 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< + 3282: 07f5 br 0x326c // 326c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 3284: 310c movi r1, 12 + 3286: 1166 lrw r3, 0xffff0fff // 331c + 3288: 07f2 br 0x326c // 326c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 328a: 3110 movi r1, 16 + 328c: 1165 lrw r3, 0xfff10000 // 3320 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 328e: 2b00 subi r3, 1 + 3290: 07ee br 0x326c // 326c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 3292: 3114 movi r1, 20 + 3294: 1164 lrw r3, 0xff100000 // 3324 + 3296: 07fc br 0x328e // 328e + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 3298: 33f1 movi r3, 241 + 329a: 3118 movi r1, 24 + 329c: 4378 lsli r3, r3, 24 + 329e: 07f8 br 0x328e // 328e + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 32a0: 311c movi r1, 28 + 32a2: 1162 lrw r3, 0xfffffff // 3328 + 32a4: 07e4 br 0x326c // 326c + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 32a6: 3300 movi r3, 0 + 32a8: 3100 movi r1, 0 + 32aa: 2b0f subi r3, 16 + 32ac: 07e0 br 0x326c // 326c + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 32b2: 390f cmphsi r1, 16 + 32b4: 0be4 bt 0x327c // 327c + switch (PinNum) + 32b6: 2908 subi r1, 9 + 32b8: 3906 cmphsi r1, 7 + 32ba: 6c07 mov r0, r1 + 32bc: 0827 bt 0x330a // 330a + 32be: e3ffed1f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 32c2: 1004 .short 0x1004 + 32c4: 1d1a1613 .long 0x1d1a1613 + 32c8: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 32ca: 3300 movi r3, 0 + 32cc: 3104 movi r1, 4 + 32ce: 2bf0 subi r3, 241 + if (Dir) + 32d0: 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; + 32e2: 3108 movi r1, 8 + 32e4: 106d lrw r3, 0xfffff0ff // 3318 + 32e6: 07f5 br 0x32d0 // 32d0 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 32e8: 310c movi r1, 12 + 32ea: 106d lrw r3, 0xffff0fff // 331c + 32ec: 07f2 br 0x32d0 // 32d0 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 32ee: 3110 movi r1, 16 + 32f0: 106c lrw r3, 0xfff10000 // 3320 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32f2: 2b00 subi r3, 1 + 32f4: 07ee br 0x32d0 // 32d0 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 32f6: 3114 movi r1, 20 + 32f8: 106b lrw r3, 0xff100000 // 3324 + 32fa: 07fc br 0x32f2 // 32f2 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 32fc: 33f1 movi r3, 241 + 32fe: 3118 movi r1, 24 + 3300: 4378 lsli r3, r3, 24 + 3302: 07f8 br 0x32f2 // 32f2 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 3304: 311c movi r1, 28 + 3306: 1069 lrw r3, 0xfffffff // 3328 + 3308: 07e4 br 0x32d0 // 32d0 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 330a: 3300 movi r3, 0 + 330c: 3100 movi r1, 0 + 330e: 2b0f subi r3, 16 + 3310: 07e0 br 0x32d0 // 32d0 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 3316: 0000 bkpt + 3318: fffff0ff .long 0xfffff0ff + 331c: ffff0fff .long 0xffff0fff + 3320: fff10000 .long 0xfff10000 + 3324: ff100000 .long 0xff100000 + 3328: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +0000332c : +//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)); + 332c: 4121 lsli r1, r1, 1 + 332e: 3203 movi r2, 3 + 3330: 9068 ld.w r3, (r0, 0x20) + 3332: 7084 lsl r2, r1 + 3334: 68c9 andn r3, r2 + 3336: 3201 movi r2, 1 + 3338: 7084 lsl r2, r1 + 333a: 6cc8 or r3, r2 + 333c: b068 st.w r3, (r0, 0x20) +} + 333e: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00003340 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 3340: 4121 lsli r1, r1, 1 + 3342: 3301 movi r3, 1 + 3344: 9049 ld.w r2, (r0, 0x24) + 3346: 70c4 lsl r3, r1 + 3348: 6cc8 or r3, r2 + 334a: b069 st.w r3, (r0, 0x24) +} + 334c: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +0000334e : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 335e: 9045 ld.w r2, (r0, 0x14) + 3360: 3301 movi r3, 1 + 3362: 7085 lsr r2, r1 + 3364: 688c and r2, r3 + { + if (dat==1) + 3366: 3a40 cmpnei r2, 0 + 3368: 70c4 lsl r3, r1 + 336a: 0c03 bf 0x3370 // 3370 + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00003374 : +/*************************************************************/ +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); + 3394: 1064 lrw r3, 0x20000014 // 33a4 + 3396: 9340 ld.w r2, (r3, 0x0) + 3398: 9261 ld.w r3, (r2, 0x4) + 339a: 3bac bseti r3, 12 + 339c: 3bae bseti r3, 14 + 339e: b261 st.w r3, (r2, 0x4) +} + 33a0: 783c jmp r15 + 33a2: 0000 bkpt + 33a4: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000033a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 33a8: 1063 lrw r3, 0x20000010 // 33b4 + 33aa: 9360 ld.w r3, (r3, 0x0) + 33ac: 9340 ld.w r2, (r3, 0x0) + 33ae: 6c08 or r0, r2 + 33b0: b300 st.w r0, (r3, 0x0) +} + 33b2: 783c jmp r15 + 33b4: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000033b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 33b8: 3300 movi r3, 0 + 33ba: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 33bc: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 33be: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 33c0: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 33c2: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 33c4: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 33c6: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 33c8: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 33ca: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 33cc: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 33ce: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 33d0: b06d st.w r3, (r0, 0x34) +} + 33d2: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000033d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 33d4: 9060 ld.w r3, (r0, 0x0) + 33d6: 3ba0 bseti r3, 0 + 33d8: b060 st.w r3, (r0, 0x0) +} + 33da: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000033dc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 33dc: 9060 ld.w r3, (r0, 0x0) + 33de: 3bac bseti r3, 12 + 33e0: 3bae bseti r3, 14 + 33e2: b060 st.w r3, (r0, 0x0) +} + 33e4: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000033e6 : +//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) +{ + 33e6: 14c3 push r4-r6 + 33e8: 98a4 ld.w r5, (r14, 0x10) + 33ea: 6d97 mov r6, r5 + 33ec: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 33ee: 6d18 or r4, r6 + 33f0: 6cd0 or r3, r4 + 33f2: 90a1 ld.w r5, (r0, 0x4) + 33f4: 6c4c or r1, r3 + 33f6: 6c54 or r1, r5 + 33f8: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 33fa: b042 st.w r2, (r0, 0x8) +} + 33fc: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000033fe : +//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) +{ + 33fe: 14c4 push r4-r7 + 3400: 1421 subi r14, r14, 4 + 3402: 9885 ld.w r4, (r14, 0x14) + 3404: 6dd3 mov r7, r4 + 3406: 9886 ld.w r4, (r14, 0x18) + 3408: b880 st.w r4, (r14, 0x0) + 340a: 9887 ld.w r4, (r14, 0x1c) + 340c: 6d93 mov r6, r4 + 340e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 3410: 6d58 or r5, r6 + 3412: 98c0 ld.w r6, (r14, 0x0) + 3414: 6d58 or r5, r6 + 3416: 6d5c or r5, r7 + 3418: 6cd4 or r3, r5 + 341a: 6c8c or r2, r3 + 341c: 9081 ld.w r4, (r0, 0x4) + 341e: 6c48 or r1, r2 + 3420: 6d04 or r4, r1 + 3422: 6d9f mov r6, r7 + 3424: b081 st.w r4, (r0, 0x4) +} + 3426: 1401 addi r14, r14, 4 + 3428: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000342a : +//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; + 342a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 342c: b044 st.w r2, (r0, 0x10) +} + 342e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00003430 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 3430: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 3432: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 3434: 0c04 bf 0x343c // 343c + BTx->IMCR |= BT_IMSCR_X; + 3436: 6c8c or r2, r3 + 3438: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 343a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 343c: 68c9 andn r3, r2 + 343e: b06b st.w r3, (r0, 0x2c) +} + 3440: 07fd br 0x343a // 343a + +Disassembly of section .text.BT1_INT_ENABLE: + +00003444 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 3444: 3380 movi r3, 128 + 3446: 4376 lsli r3, r3, 22 + 3448: 1042 lrw r2, 0xe000e100 // 3450 + 344a: b260 st.w r3, (r2, 0x0) +} + 344c: 783c jmp r15 + 344e: 0000 bkpt + 3450: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +00003454 : +//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) + 3454: 3840 cmpnei r0, 0 + 3456: 080a bt 0x346a // 346a + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 3458: 1165 lrw r3, 0x20000048 // 34ec + 345a: 31f0 movi r1, 240 + 345c: 9340 ld.w r2, (r3, 0x0) + 345e: 9260 ld.w r3, (r2, 0x0) + 3460: 68c5 andn r3, r1 + 3462: 3ba4 bseti r3, 4 + 3464: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 3466: b260 st.w r3, (r2, 0x0) + } +} + 3468: 040b br 0x347e // 347e + if(IONAME==GPT_CHA_PA09) + 346a: 3841 cmpnei r0, 1 + 346c: 080a bt 0x3480 // 3480 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 346e: 1161 lrw r3, 0x2000004c // 34f0 + 3470: 31f0 movi r1, 240 + 3472: 9340 ld.w r2, (r3, 0x0) + 3474: 9261 ld.w r3, (r2, 0x4) + 3476: 68c5 andn r3, r1 + 3478: 3ba4 bseti r3, 4 + 347a: 3ba6 bseti r3, 6 + 347c: b261 st.w r3, (r2, 0x4) +} + 347e: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 3480: 3842 cmpnei r0, 2 + 3482: 080b bt 0x3498 // 3498 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 3484: 107b lrw r3, 0x2000004c // 34f0 + 3486: 32f0 movi r2, 240 + 3488: 9320 ld.w r1, (r3, 0x0) + 348a: 9161 ld.w r3, (r1, 0x4) + 348c: 4244 lsli r2, r2, 4 + 348e: 68c9 andn r3, r2 + 3490: 3ba9 bseti r3, 9 + 3492: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 3494: b161 st.w r3, (r1, 0x4) + 3496: 07f4 br 0x347e // 347e + if(IONAME==GPT_CHB_PA010) + 3498: 3843 cmpnei r0, 3 + 349a: 080b bt 0x34b0 // 34b0 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 349c: 1075 lrw r3, 0x2000004c // 34f0 + 349e: 32f0 movi r2, 240 + 34a0: 9320 ld.w r1, (r3, 0x0) + 34a2: 4244 lsli r2, r2, 4 + 34a4: 9161 ld.w r3, (r1, 0x4) + 34a6: 68c9 andn r3, r2 + 34a8: 32e0 movi r2, 224 + 34aa: 4243 lsli r2, r2, 3 + 34ac: 6cc8 or r3, r2 + 34ae: 07f3 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PA011) + 34b0: 3844 cmpnei r0, 4 + 34b2: 080a bt 0x34c6 // 34c6 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 34b4: 106f lrw r3, 0x2000004c // 34f0 + 34b6: 32f0 movi r2, 240 + 34b8: 9320 ld.w r1, (r3, 0x0) + 34ba: 9161 ld.w r3, (r1, 0x4) + 34bc: 4248 lsli r2, r2, 8 + 34be: 68c9 andn r3, r2 + 34c0: 3bad bseti r3, 13 + 34c2: 3bae bseti r3, 14 + 34c4: 07e8 br 0x3494 // 3494 + if(IONAME==GPT_CHB_PB00) + 34c6: 3845 cmpnei r0, 5 + 34c8: 0808 bt 0x34d8 // 34d8 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 34ca: 1069 lrw r3, 0x20000048 // 34ec + 34cc: 310f movi r1, 15 + 34ce: 9340 ld.w r2, (r3, 0x0) + 34d0: 9260 ld.w r3, (r2, 0x0) + 34d2: 68c5 andn r3, r1 + 34d4: 3ba2 bseti r3, 2 + 34d6: 07c8 br 0x3466 // 3466 + if(IONAME==GPT_CHB_PB01) + 34d8: 3846 cmpnei r0, 6 + 34da: 0bd2 bt 0x347e // 347e + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 34dc: 1064 lrw r3, 0x20000048 // 34ec + 34de: 31f0 movi r1, 240 + 34e0: 9340 ld.w r2, (r3, 0x0) + 34e2: 9260 ld.w r3, (r2, 0x0) + 34e4: 68c5 andn r3, r1 + 34e6: 3ba5 bseti r3, 5 + 34e8: 3ba6 bseti r3, 6 + 34ea: 07be br 0x3466 // 3466 + 34ec: 20000048 .long 0x20000048 + 34f0: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +000034f4 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 34f4: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 34f6: 6c48 or r1, r2 + 34f8: 1083 lrw r4, 0x20000024 // 3504 + 34fa: 6c04 or r0, r1 + 34fc: 9480 ld.w r4, (r4, 0x0) + 34fe: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 3500: b462 st.w r3, (r4, 0x8) +} + 3502: 1481 pop r4 + 3504: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +00003508 : +/*************************************************************/ +//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) +{ + 3508: 14c4 push r4-r7 + 350a: 1423 subi r14, r14, 12 + 350c: 9887 ld.w r4, (r14, 0x1c) + 350e: 6dd3 mov r7, r4 + 3510: 9888 ld.w r4, (r14, 0x20) + 3512: b880 st.w r4, (r14, 0x0) + 3514: 9889 ld.w r4, (r14, 0x24) + 3516: b881 st.w r4, (r14, 0x4) + 3518: 988a ld.w r4, (r14, 0x28) + 351a: b882 st.w r4, (r14, 0x8) + 351c: 988b ld.w r4, (r14, 0x2c) + 351e: 6d93 mov r6, r4 + 3520: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 3522: 3cb2 bseti r4, 18 + 3524: 6d18 or r4, r6 + 3526: 98c2 ld.w r6, (r14, 0x8) + 3528: 6d18 or r4, r6 + 352a: 98c1 ld.w r6, (r14, 0x4) + 352c: 6d18 or r4, r6 + 352e: 98c0 ld.w r6, (r14, 0x0) + 3530: 6d18 or r4, r6 + 3532: 6d1c or r4, r7 + 3534: 6cd0 or r3, r4 + 3536: 6c8c or r2, r3 + 3538: 6c48 or r1, r2 + 353a: 10a4 lrw r5, 0x20000024 // 3548 + 353c: 6c04 or r0, r1 + 353e: 95a0 ld.w r5, (r5, 0x0) + 3540: 6d9f mov r6, r7 + 3542: b503 st.w r0, (r5, 0xc) +} + 3544: 1403 addi r14, r14, 12 + 3546: 1484 pop r4-r7 + 3548: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +0000354c : +//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) +{ + 354c: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 354e: 6c8c or r2, r3 + 3550: 6c48 or r1, r2 + 3552: 1083 lrw r4, 0x20000024 // 355c + 3554: 6c04 or r0, r1 + 3556: 9480 ld.w r4, (r4, 0x0) + 3558: b411 st.w r0, (r4, 0x44) +} + 355a: 1481 pop r4 + 355c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +00003560 : +//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) +{ + 3560: 14c4 push r4-r7 + 3562: 1425 subi r14, r14, 20 + 3564: 1c09 addi r4, r14, 36 + 3566: 8480 ld.b r4, (r4, 0x0) + 3568: b880 st.w r4, (r14, 0x0) + 356a: 1c0a addi r4, r14, 40 + 356c: 8480 ld.b r4, (r4, 0x0) + 356e: b881 st.w r4, (r14, 0x4) + 3570: 1c0b addi r4, r14, 44 + 3572: 8480 ld.b r4, (r4, 0x0) + 3574: b882 st.w r4, (r14, 0x8) + 3576: 1c0c addi r4, r14, 48 + 3578: 8480 ld.b r4, (r4, 0x0) + 357a: b883 st.w r4, (r14, 0xc) + 357c: 1c0d addi r4, r14, 52 + 357e: 8480 ld.b r4, (r4, 0x0) + 3580: 1e10 addi r6, r14, 64 + 3582: b884 st.w r4, (r14, 0x10) + 3584: 1d0f addi r5, r14, 60 + 3586: 1c0e addi r4, r14, 56 + 3588: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 358a: 3840 cmpnei r0, 0 +{ + 358c: 1e11 addi r6, r14, 68 + 358e: 8480 ld.b r4, (r4, 0x0) + 3590: 85a0 ld.b r5, (r5, 0x0) + 3592: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 3594: 081f bt 0x35d2 // 35d2 + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 3596: 47f0 lsli r7, r7, 16 + 3598: 46d2 lsli r6, r6, 18 + 359a: 45ae lsli r5, r5, 14 + 359c: 6dd8 or r7, r6 + 359e: 6dd4 or r7, r5 + 35a0: 448c lsli r4, r4, 12 + 35a2: 6dd0 or r7, r4 + 35a4: 9884 ld.w r4, (r14, 0x10) + 35a6: 448a lsli r4, r4, 10 + 35a8: 6dd0 or r7, r4 + 35aa: 9883 ld.w r4, (r14, 0xc) + 35ac: 4488 lsli r4, r4, 8 + 35ae: 98a2 ld.w r5, (r14, 0x8) + 35b0: 6d1c or r4, r7 + 35b2: 45e6 lsli r7, r5, 6 + 35b4: 6d1c or r4, r7 + 35b6: 6c90 or r2, r4 + 35b8: 6cc8 or r3, r2 + 35ba: 9841 ld.w r2, (r14, 0x4) + 35bc: 4244 lsli r2, r2, 4 + 35be: 6cc8 or r3, r2 + 35c0: 6c4c or r1, r3 + 35c2: 9860 ld.w r3, (r14, 0x0) + 35c4: 4362 lsli r3, r3, 2 + 35c6: 1013 lrw r0, 0x20000024 // 3610 + 35c8: 6c4c or r1, r3 + 35ca: 9000 ld.w r0, (r0, 0x0) + 35cc: 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); + } +} + 35ce: 1405 addi r14, r14, 20 + 35d0: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 35d2: 3841 cmpnei r0, 1 + 35d4: 0bfd bt 0x35ce // 35ce + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 35d6: 47f0 lsli r7, r7, 16 + 35d8: 46d2 lsli r6, r6, 18 + 35da: 45ae lsli r5, r5, 14 + 35dc: 6dd8 or r7, r6 + 35de: 6dd4 or r7, r5 + 35e0: 448c lsli r4, r4, 12 + 35e2: 6dd0 or r7, r4 + 35e4: 9884 ld.w r4, (r14, 0x10) + 35e6: 448a lsli r4, r4, 10 + 35e8: 6dd0 or r7, r4 + 35ea: 9883 ld.w r4, (r14, 0xc) + 35ec: 4488 lsli r4, r4, 8 + 35ee: 98a2 ld.w r5, (r14, 0x8) + 35f0: 6d1c or r4, r7 + 35f2: 45e6 lsli r7, r5, 6 + 35f4: 6d1c or r4, r7 + 35f6: 6c90 or r2, r4 + 35f8: 6cc8 or r3, r2 + 35fa: 9841 ld.w r2, (r14, 0x4) + 35fc: 4244 lsli r2, r2, 4 + 35fe: 6cc8 or r3, r2 + 3600: 6c4c or r1, r3 + 3602: 9860 ld.w r3, (r14, 0x0) + 3604: 4362 lsli r3, r3, 2 + 3606: 1003 lrw r0, 0x20000024 // 3610 + 3608: 6c4c or r1, r3 + 360a: 9000 ld.w r0, (r0, 0x0) + 360c: b033 st.w r1, (r0, 0x4c) +} + 360e: 07e0 br 0x35ce // 35ce + 3610: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +00003614 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 3614: 1063 lrw r3, 0x20000024 // 3620 + 3616: 9340 ld.w r2, (r3, 0x0) + 3618: 9261 ld.w r3, (r2, 0x4) + 361a: 3ba0 bseti r3, 0 + 361c: b261 st.w r3, (r2, 0x4) +} + 361e: 783c jmp r15 + 3620: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +00003624 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 3624: 1063 lrw r3, 0x20000024 // 3630 + 3626: 9360 ld.w r3, (r3, 0x0) + 3628: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 362a: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 362c: b34c st.w r2, (r3, 0x30) +} + 362e: 783c jmp r15 + 3630: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +00003634 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 3634: 1066 lrw r3, 0x20000024 // 364c + if (NewState != DISABLE) + 3636: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 3638: 9360 ld.w r3, (r3, 0x0) + 363a: 237f addi r3, 128 + 363c: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 363e: 0c04 bf 0x3646 // 3646 + GPT0->IMCR |= GPT_IMSCR_X; + 3640: 6c48 or r1, r2 + 3642: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 3644: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 3646: 6885 andn r2, r1 + 3648: b356 st.w r2, (r3, 0x58) +} + 364a: 07fd br 0x3644 // 3644 + 364c: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +00003650 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 3650: 1065 lrw r3, 0x20000040 // 3664 + 3652: 3200 movi r2, 0 + 3654: 9360 ld.w r3, (r3, 0x0) + 3656: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 3658: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 365a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 365c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 365e: b344 st.w r2, (r3, 0x10) +} + 3660: 783c jmp r15 + 3662: 0000 bkpt + 3664: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00003668 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 3668: 1065 lrw r3, 0x2000003c // 367c + 366a: 3200 movi r2, 0 + 366c: 9360 ld.w r3, (r3, 0x0) + 366e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 3670: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 3672: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 3674: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 3676: b344 st.w r2, (r3, 0x10) +} + 3678: 783c jmp r15 + 367a: 0000 bkpt + 367c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00003680 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 3680: 1065 lrw r3, 0x20000038 // 3694 + 3682: 3200 movi r2, 0 + 3684: 9360 ld.w r3, (r3, 0x0) + 3686: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 3688: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 368a: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 368c: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 368e: b344 st.w r2, (r3, 0x10) +} + 3690: 783c jmp r15 + 3692: 0000 bkpt + 3694: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00003698 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 3698: 1065 lrw r3, 0x20000040 // 36ac + 369a: 320f movi r2, 15 + 369c: 9360 ld.w r3, (r3, 0x0) + 369e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36a0: 3380 movi r3, 128 + 36a2: 4366 lsli r3, r3, 6 + 36a4: 1043 lrw r2, 0xe000e100 // 36b0 + 36a6: b260 st.w r3, (r2, 0x0) +} + 36a8: 783c jmp r15 + 36aa: 0000 bkpt + 36ac: 20000040 .long 0x20000040 + 36b0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000036b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 36b4: 1065 lrw r3, 0x20000038 // 36c8 + 36b6: 320f movi r2, 15 + 36b8: 9360 ld.w r3, (r3, 0x0) + 36ba: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 36bc: 3380 movi r3, 128 + 36be: 4368 lsli r3, r3, 8 + 36c0: 1043 lrw r2, 0xe000e100 // 36cc + 36c2: b260 st.w r3, (r2, 0x0) +} + 36c4: 783c jmp r15 + 36c6: 0000 bkpt + 36c8: 20000038 .long 0x20000038 + 36cc: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +000036d0 : +//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) + 36d0: 3840 cmpnei r0, 0 + 36d2: 0821 bt 0x3714 // 3714 + { + if(UART_IO_G==0) + 36d4: 3940 cmpnei r1, 0 + 36d6: 080a bt 0x36ea // 36ea + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 36d8: 1177 lrw r3, 0x2000004c // 37b4 + 36da: 31ff movi r1, 255 + 36dc: 9340 ld.w r2, (r3, 0x0) + 36de: 9260 ld.w r3, (r2, 0x0) + 36e0: 68c5 andn r3, r1 + 36e2: 3ba2 bseti r3, 2 + 36e4: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 36e6: b260 st.w r3, (r2, 0x0) + 36e8: 0415 br 0x3712 // 3712 + else if(UART_IO_G==1) + 36ea: 3941 cmpnei r1, 1 + 36ec: 0813 bt 0x3712 // 3712 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 36ee: 1172 lrw r3, 0x2000004c // 37b4 + 36f0: 31f0 movi r1, 240 + 36f2: 9340 ld.w r2, (r3, 0x0) + 36f4: 9260 ld.w r3, (r2, 0x0) + 36f6: 4130 lsli r1, r1, 16 + 36f8: 68c5 andn r3, r1 + 36fa: 31e0 movi r1, 224 + 36fc: 412f lsli r1, r1, 15 + 36fe: 6cc4 or r3, r1 + 3700: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 3702: 31f0 movi r1, 240 + 3704: 9261 ld.w r3, (r2, 0x4) + 3706: 412c lsli r1, r1, 12 + 3708: 68c5 andn r3, r1 + 370a: 31e0 movi r1, 224 + 370c: 412b lsli r1, r1, 11 + 370e: 6cc4 or r3, r1 + 3710: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 3712: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 3714: 3841 cmpnei r0, 1 + 3716: 082d bt 0x3770 // 3770 + if(UART_IO_G==0) + 3718: 3940 cmpnei r1, 0 + 371a: 0814 bt 0x3742 // 3742 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 371c: 1167 lrw r3, 0x20000048 // 37b8 + 371e: 310f movi r1, 15 + 3720: 9340 ld.w r2, (r3, 0x0) + 3722: 9260 ld.w r3, (r2, 0x0) + 3724: 68c5 andn r3, r1 + 3726: 3107 movi r1, 7 + 3728: 6cc4 or r3, r1 + 372a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 372c: 32f0 movi r2, 240 + 372e: 1162 lrw r3, 0x2000004c // 37b4 + 3730: 4250 lsli r2, r2, 16 + 3732: 9320 ld.w r1, (r3, 0x0) + 3734: 9161 ld.w r3, (r1, 0x4) + 3736: 68c9 andn r3, r2 + 3738: 32e0 movi r2, 224 + 373a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 373c: 6cc8 or r3, r2 + 373e: b161 st.w r3, (r1, 0x4) + 3740: 07e9 br 0x3712 // 3712 + else if(UART_IO_G==1) + 3742: 3941 cmpnei r1, 1 + 3744: 080c bt 0x375c // 375c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 3746: 107c lrw r3, 0x2000004c // 37b4 + 3748: 32ff movi r2, 255 + 374a: 9320 ld.w r1, (r3, 0x0) + 374c: 424c lsli r2, r2, 12 + 374e: 9160 ld.w r3, (r1, 0x0) + 3750: 68c9 andn r3, r2 + 3752: 32ee movi r2, 238 + 3754: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 3756: 6cc8 or r3, r2 + 3758: b160 st.w r3, (r1, 0x0) +} + 375a: 07dc br 0x3712 // 3712 + else if(UART_IO_G==2) + 375c: 3942 cmpnei r1, 2 + 375e: 0bda bt 0x3712 // 3712 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 3760: 1075 lrw r3, 0x2000004c // 37b4 + 3762: 32ee movi r2, 238 + 3764: 9320 ld.w r1, (r3, 0x0) + 3766: 9161 ld.w r3, (r1, 0x4) + 3768: 4368 lsli r3, r3, 8 + 376a: 4b68 lsri r3, r3, 8 + 376c: 4257 lsli r2, r2, 23 + 376e: 07e7 br 0x373c // 373c + if (IO_UART_NUM==IO_UART2) + 3770: 3842 cmpnei r0, 2 + 3772: 0bd0 bt 0x3712 // 3712 + if(UART_IO_G==0) + 3774: 3940 cmpnei r1, 0 + 3776: 0809 bt 0x3788 // 3788 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 3778: 106f lrw r3, 0x2000004c // 37b4 + 377a: 31ff movi r1, 255 + 377c: 9340 ld.w r2, (r3, 0x0) + 377e: 9260 ld.w r3, (r2, 0x0) + 3780: 68c5 andn r3, r1 + 3782: 3177 movi r1, 119 + 3784: 6cc4 or r3, r1 + 3786: 07b0 br 0x36e6 // 36e6 + else if(UART_IO_G==1) + 3788: 3941 cmpnei r1, 1 + 378a: 0809 bt 0x379c // 379c + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 378c: 106a lrw r3, 0x2000004c // 37b4 + 378e: 32ee movi r2, 238 + 3790: 9320 ld.w r1, (r3, 0x0) + 3792: 9160 ld.w r3, (r1, 0x0) + 3794: 4368 lsli r3, r3, 8 + 3796: 4b68 lsri r3, r3, 8 + 3798: 4257 lsli r2, r2, 23 + 379a: 07de br 0x3756 // 3756 + else if(UART_IO_G==2) + 379c: 3942 cmpnei r1, 2 + 379e: 0bba bt 0x3712 // 3712 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 37a0: 1066 lrw r3, 0x20000048 // 37b8 + 37a2: 32ff movi r2, 255 + 37a4: 9320 ld.w r1, (r3, 0x0) + 37a6: 4250 lsli r2, r2, 16 + 37a8: 9160 ld.w r3, (r1, 0x0) + 37aa: 68c9 andn r3, r2 + 37ac: 32cc movi r2, 204 + 37ae: 424f lsli r2, r2, 15 + 37b0: 07d3 br 0x3756 // 3756 + 37b2: 0000 bkpt + 37b4: 2000004c .long 0x2000004c + 37b8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000037bc : +//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); + 37bc: 1063 lrw r3, 0x80003 // 37c8 + 37be: 6c8c or r2, r3 + 37c0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37c2: b024 st.w r1, (r0, 0x10) +} + 37c4: 783c jmp r15 + 37c6: 0000 bkpt + 37c8: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000037cc : +//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); + 37cc: 1063 lrw r3, 0x8000f // 37d8 + 37ce: 6c8c or r2, r3 + 37d0: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 37d2: b024 st.w r1, (r0, 0x10) +} + 37d4: 783c jmp r15 + 37d6: 0000 bkpt + 37d8: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000037dc : +//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) +{ + 37dc: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37de: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 37e0: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 37e2: 5b85 subu r4, r3, r1 + 37e4: 6490 cmphs r4, r2 + 37e6: 0c02 bf 0x37ea // 37ea + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 37e8: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 37ea: 8380 ld.b r4, (r3, 0x0) + 37ec: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 37ee: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 37f0: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 37f2: 3c40 cmpnei r4, 0 + 37f4: 0bfd bt 0x37ee // 37ee + 37f6: 2300 addi r3, 1 + 37f8: 07f5 br 0x37e2 // 37e2 + +Disassembly of section .text.EPT_Stop: + +000037fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 37fc: 1068 lrw r3, 0x20000020 // 381c + 37fe: 3280 movi r2, 128 + 3800: 9360 ld.w r3, (r3, 0x0) + 3802: 608c addu r2, r3 + 3804: 1027 lrw r1, 0xa55ac73a // 3820 + 3806: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 3808: 9341 ld.w r2, (r3, 0x4) + 380a: 31fe movi r1, 254 + 380c: 6884 and r2, r1 + 380e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 3810: 3101 movi r1, 1 + 3812: 9341 ld.w r2, (r3, 0x4) + 3814: 6884 and r2, r1 + 3816: 3a40 cmpnei r2, 0 + 3818: 0bfd bt 0x3812 // 3812 +} + 381a: 783c jmp r15 + 381c: 20000020 .long 0x20000020 + 3820: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +00003824
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 3824: 14d1 push r4, r15 + delay_nms(2000); + 3826: 30fa movi r0, 250 + + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 3828: 109b lrw r4, 0x20000048 // 3894 + delay_nms(2000); + 382a: 4003 lsli r0, r0, 3 + 382c: e000003a bsr 0x38a0 // 38a0 + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 3830: 3201 movi r2, 1 + 3832: 9400 ld.w r0, (r4, 0x0) + 3834: 3102 movi r1, 2 + 3836: e3fffd0b bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOB0,DET_RF_MODULE_PIN); + 383a: 9400 ld.w r0, (r4, 0x0) + 383c: 3102 movi r1, 2 + 383e: e3fffd77 bsr 0x332c // 332c + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 3842: 3102 movi r1, 2 + 3844: 9400 ld.w r0, (r4, 0x0) + 3846: e3fffd97 bsr 0x3374 // 3374 + 384a: 1094 lrw r4, 0x200000a0 // 3898 + last_state = rf_exist; + 384c: a401 st.b r0, (r4, 0x1) + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 384e: a400 st.b r0, (r4, 0x0) + + APT32F102_init(); //102 initial + 3850: e00000ea bsr 0x3a24 // 3a24 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 3854: 1032 lrw r1, 0x6224 // 389c + 3856: 3000 movi r0, 0 + 3858: e00006b8 bsr 0x45c8 // 45c8 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 385c: e3fffc66 bsr 0x3128 // 3128 + + UART2_TASK(); + 3860: e000074e bsr 0x46fc // 46fc + + Detect_WIFI_Task(); + 3864: e0000ca8 bsr 0x51b4 // 51b4 + + Detect_SPI_task(); + 3868: e0000ab0 bsr 0x4dc8 // 4dc8 + + Led_Task(); + 386c: e0000cee bsr 0x5248 // 5248 + + if (finish_flag == 1) { + 3870: 8462 ld.b r3, (r4, 0x2) + 3872: 3b41 cmpnei r3, 1 + 3874: 0bf4 bt 0x385c // 385c + Card_Read_TasK(); + 3876: e0000a51 bsr 0x4d18 // 4d18 + + if(rf_exist == 0x01) + 387a: 8460 ld.b r3, (r4, 0x0) + 387c: 3b41 cmpnei r3, 1 + 387e: 0806 bt 0x388a // 388a + { + BackLight_Task(); + 3880: e0000c88 bsr 0x5190 // 5190 + LogicCtrl_NoRF_Task(); //无RF模块轮询任务 + 3884: e0000c26 bsr 0x50d0 // 50d0 + 3888: 07ea br 0x385c // 385c + //Dbg_Println(DBG_BIT_SYS_STATUS,"no rf!"); + } + else if(rf_exist == 0x00) + 388a: 3b40 cmpnei r3, 0 + 388c: 0be8 bt 0x385c // 385c + { +// Debounce_Task(); + LogicCtrl_Task(); //带RF模块执行逻辑 + 388e: e0000b65 bsr 0x4f58 // 4f58 + 3892: 07e5 br 0x385c // 385c + 3894: 20000048 .long 0x20000048 + 3898: 200000a0 .long 0x200000a0 + 389c: 00006224 .long 0x00006224 + +Disassembly of section .text.delay_nms: + +000038a0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 38a0: 14d0 push r15 + 38a2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 38a4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 38a6: 3300 movi r3, 0 + j = 50* t; + 38a8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 38aa: b862 st.w r3, (r14, 0x8) + j = 50* t; + 38ac: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 38ae: b860 st.w r3, (r14, 0x0) + 38b0: 9840 ld.w r2, (r14, 0x0) + 38b2: 9861 ld.w r3, (r14, 0x4) + 38b4: 64c8 cmphs r2, r3 + 38b6: 0c03 bf 0x38bc // 38bc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 38b8: 1403 addi r14, r14, 12 + 38ba: 1490 pop r15 + k++; + 38bc: 9862 ld.w r3, (r14, 0x8) + 38be: 2300 addi r3, 1 + 38c0: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 38c2: e3fffc33 bsr 0x3128 // 3128 + for ( i = 0; i < j; i++ ) + 38c6: 9860 ld.w r3, (r14, 0x0) + 38c8: 2300 addi r3, 1 + 38ca: 07f2 br 0x38ae // 38ae + +Disassembly of section .text.GPT0_CONFIG: + +000038cc : +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + 38cc: 14d0 push r15 + 38ce: 1429 subi r14, r14, 36 + GPT_IO_Init(GPT_CHA_PB01); + 38d0: 3000 movi r0, 0 + 38d2: e3fffdc1 bsr 0x3454 // 3454 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 38d6: 3300 movi r3, 0 + 38d8: 3240 movi r2, 64 + 38da: 3100 movi r1, 0 + 38dc: 3001 movi r0, 1 + 38de: e3fffe0b bsr 0x34f4 // 34f4 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 38e2: 3300 movi r3, 0 + 38e4: b865 st.w r3, (r14, 0x14) + 38e6: b864 st.w r3, (r14, 0x10) + 38e8: b863 st.w r3, (r14, 0xc) + 38ea: b862 st.w r3, (r14, 0x8) + 38ec: b861 st.w r3, (r14, 0x4) + 38ee: b860 st.w r3, (r14, 0x0) + 38f0: 3208 movi r2, 8 + 38f2: 3100 movi r1, 0 + 38f4: 3000 movi r0, 0 + 38f6: e3fffe09 bsr 0x3508 // 3508 + if(rf_exist == 0x01) + 38fa: 1079 lrw r3, 0x200000a0 // 395c + 38fc: 8360 ld.b r3, (r3, 0x0) + 38fe: 3b41 cmpnei r3, 1 + 3900: 0827 bt 0x394e // 394e + { + GPT_Period_CMP_Write(2000,2000,0); + 3902: 31fa movi r1, 250 + 3904: 4123 lsli r1, r1, 3 + 3906: 3200 movi r2, 0 + 3908: 6c07 mov r0, r1 + } + else if(rf_exist == 0x00) + { + GPT_Period_CMP_Write(2000,0,0); + 390a: e3fffe8d bsr 0x3624 // 3624 + } + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 390e: 3320 movi r3, 32 + 3910: 3204 movi r2, 4 + 3912: 3100 movi r1, 0 + 3914: 3001 movi r0, 1 + 3916: e3fffe1b bsr 0x354c // 354c + GPT_WaveOut_Configure(GPT_CHA,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 391a: 3300 movi r3, 0 + 391c: 3201 movi r2, 1 + 391e: b868 st.w r3, (r14, 0x20) + 3920: b867 st.w r3, (r14, 0x1c) + 3922: b866 st.w r3, (r14, 0x18) + 3924: b865 st.w r3, (r14, 0x14) + 3926: b864 st.w r3, (r14, 0x10) + 3928: b863 st.w r3, (r14, 0xc) + 392a: b842 st.w r2, (r14, 0x8) + 392c: b841 st.w r2, (r14, 0x4) + 392e: b860 st.w r3, (r14, 0x0) + 3930: 3200 movi r2, 0 + 3932: 3302 movi r3, 2 + 3934: 3100 movi r1, 0 + 3936: 3000 movi r0, 0 + 3938: e3fffe14 bsr 0x3560 // 3560 + +// GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPB,2,0,0,0,1,1,0,0,0,0); + //GPT_SyncSet_Configure(GPT_SYNCUSR0_EN,GPT_OST_CONTINUOUS,GPT_TXREARM_DIS,GPT_TRGO0SEL_SR0,GPT_TRG10SEL_SR0,GPT_AREARM_DIS); + //GPT_Trigger_Configure(GPT_SRCSEL_TRGUSR0EN,GPT_BLKINV_DIS,GPT_ALIGNMD_PRD,GPT_CROSSMD_DIS,5,5); + //GPT_EVTRG_Configure(GPT_TRGSRC0_PRD,GPT_TRGSRC1_PRD,GPT_ESYN0OE_EN,GPT_ESYN1OE_EN,GPT_CNT0INIT_EN,GPT_CNT1INIT_EN,3,3,3,3); + GPT_Start(); + 393c: e3fffe6c bsr 0x3614 // 3614 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 3940: 3180 movi r1, 128 + 3942: 4129 lsli r1, r1, 9 + 3944: 3001 movi r0, 1 + 3946: e3fffe77 bsr 0x3634 // 3634 +// GPT_INT_ENABLE(); + //INTC_ISER_WRITE(GPT0_INT); + //INTC_IWER_WRITE(GPT0_INT); +} + 394a: 1409 addi r14, r14, 36 + 394c: 1490 pop r15 + else if(rf_exist == 0x00) + 394e: 3b40 cmpnei r3, 0 + 3950: 0bdf bt 0x390e // 390e + GPT_Period_CMP_Write(2000,0,0); + 3952: 30fa movi r0, 250 + 3954: 3200 movi r2, 0 + 3956: 3100 movi r1, 0 + 3958: 4003 lsli r0, r0, 3 + 395a: 07d8 br 0x390a // 390a + 395c: 200000a0 .long 0x200000a0 + +Disassembly of section .text.BT_CONFIG: + +00003960 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 3960: 14d2 push r4-r5, r15 + 3962: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 3964: 1095 lrw r4, 0x20000008 // 39b8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 3966: 3500 movi r5, 0 + BT_DeInit(BT1); + 3968: 9400 ld.w r0, (r4, 0x0) + 396a: e3fffd27 bsr 0x33b8 // 33b8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 396e: 9400 ld.w r0, (r4, 0x0) + 3970: b8a1 st.w r5, (r14, 0x4) + 3972: b8a0 st.w r5, (r14, 0x0) + 3974: 3308 movi r3, 8 + 3976: 3200 movi r2, 0 + 3978: 3101 movi r1, 1 + 397a: e3fffd36 bsr 0x33e6 // 33e6 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 397e: 3380 movi r3, 128 + 3980: 4363 lsli r3, r3, 3 + 3982: b861 st.w r3, (r14, 0x4) + 3984: 9400 ld.w r0, (r4, 0x0) + 3986: 3300 movi r3, 0 + 3988: b8a3 st.w r5, (r14, 0xc) + 398a: b8a2 st.w r5, (r14, 0x8) + 398c: b8a0 st.w r5, (r14, 0x0) + 398e: 3200 movi r2, 0 + 3990: 3180 movi r1, 128 + 3992: e3fffd36 bsr 0x33fe // 33fe + BT_Period_CMP_Write(BT1,4780,1); + 3996: 3201 movi r2, 1 + 3998: 1029 lrw r1, 0x12ac // 39bc + 399a: 9400 ld.w r0, (r4, 0x0) + 399c: e3fffd47 bsr 0x342a // 342a + BT_Start(BT1); + 39a0: 9400 ld.w r0, (r4, 0x0) + 39a2: e3fffd19 bsr 0x33d4 // 33d4 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 39a6: 9400 ld.w r0, (r4, 0x0) + 39a8: 3202 movi r2, 2 + 39aa: 3101 movi r1, 1 + 39ac: e3fffd42 bsr 0x3430 // 3430 + BT1_INT_ENABLE(); + 39b0: e3fffd4a bsr 0x3444 // 3444 + +} + 39b4: 1404 addi r14, r14, 16 + 39b6: 1492 pop r4-r5, r15 + 39b8: 20000008 .long 0x20000008 + 39bc: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +000039c0 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 39c0: 14d0 push r15 + 39c2: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 39c4: e3fffafe bsr 0x2fc0 // 2fc0 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 39c8: 3101 movi r1, 1 + 39ca: 3001 movi r0, 1 + 39cc: e3fffb20 bsr 0x300c // 300c + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 39d0: 3000 movi r0, 0 + 39d2: e3fffb79 bsr 0x30c4 // 30c4 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 39d6: 3180 movi r1, 128 + 39d8: 3308 movi r3, 8 + 39da: 3200 movi r2, 0 + 39dc: 4121 lsli r1, r1, 1 + 39de: 3002 movi r0, 2 + 39e0: e3fffb2e bsr 0x303c // 303c +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 39e4: 3080 movi r0, 128 + 39e6: 3118 movi r1, 24 + 39e8: 4002 lsli r0, r0, 2 + 39ea: e3fffba9 bsr 0x313c // 313c + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 39ee: 3001 movi r0, 1 + 39f0: e3fffb7e bsr 0x30ec // 30ec + SYSCON_IWDCNT_Reload(); //reload WDT + 39f4: e3fffb9a bsr 0x3128 // 3128 + IWDT_Int_Enable(); + 39f8: e3fffbcc bsr 0x3190 // 3190 + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 39fc: 3340 movi r3, 64 + 39fe: b860 st.w r3, (r14, 0x0) + 3a00: 31c0 movi r1, 192 + 3a02: 3380 movi r3, 128 + 3a04: 4364 lsli r3, r3, 4 + 3a06: 3200 movi r2, 0 + 3a08: 4123 lsli r1, r1, 3 + 3a0a: 3000 movi r0, 0 + 3a0c: e3fffba4 bsr 0x3154 // 3154 + LVD_Int_Enable(); + 3a10: e3fffbb2 bsr 0x3174 // 3174 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 3a14: e3fffbec bsr 0x31ec // 31ec + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 3a18: 3000 movi r0, 0 + 3a1a: e00010f1 bsr 0x5bfc // 5bfc + +} + 3a1e: 1401 addi r14, r14, 4 + 3a20: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00003a24 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 3a24: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a26: 1070 lrw r3, 0x2000005c // 3a64 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a28: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 3a2a: 9340 ld.w r2, (r3, 0x0) + 3a2c: 106f lrw r3, 0xfffffff // 3a68 + 3a2e: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 3a30: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 3a32: 926c ld.w r3, (r2, 0x30) + 3a34: 68c4 and r3, r1 + 3a36: 3b40 cmpnei r3, 0 + 3a38: 0ffd bf 0x3a32 // 3a32 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 3a3a: e3ffffc3 bsr 0x39c0 // 39c0 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 3a3e: e0000523 bsr 0x4484 // 4484 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 3a42: e3fffbdb bsr 0x31f8 // 31f8 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 3a46: 3101 movi r1, 1 + 3a48: 300f movi r0, 15 + 3a4a: e3fffbe9 bsr 0x321c // 321c +// Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 3a4e: e3ffff89 bsr 0x3960 // 3960 + + GPT0_CONFIG(); + 3a52: e3ffff3d bsr 0x38cc // 38cc + + UARTx_Init(UART_2,Card_Recv_Pro); + 3a56: 1026 lrw r1, 0x5358 // 3a6c + 3a58: 3002 movi r0, 2 + 3a5a: e0000519 bsr 0x448c // 448c + + RC522_Init(); + 3a5e: e00007c7 bsr 0x49ec // 49ec + +} + 3a62: 1490 pop r15 + 3a64: 2000005c .long 0x2000005c + 3a68: 0fffffff .long 0x0fffffff + 3a6c: 00005358 .long 0x00005358 + +Disassembly of section .text.SYSCONIntHandler: + +00003a70 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 3a70: 1460 nie + 3a72: 1462 ipush + // ISR content ... + nop; + 3a74: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 3a76: 117a lrw r3, 0x2000005c // 3b5c + 3a78: 3280 movi r2, 128 + 3a7a: 9360 ld.w r3, (r3, 0x0) + 3a7c: 60c8 addu r3, r2 + 3a7e: 9323 ld.w r1, (r3, 0xc) + 3a80: 3001 movi r0, 1 + 3a82: 6840 and r1, r0 + 3a84: 3940 cmpnei r1, 0 + 3a86: 0c04 bf 0x3a8e // 3a8e + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 3a88: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 3a8a: 1463 ipop + 3a8c: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 3a8e: 9323 ld.w r1, (r3, 0xc) + 3a90: 3002 movi r0, 2 + 3a92: 6840 and r1, r0 + 3a94: 3940 cmpnei r1, 0 + 3a96: 0bf9 bt 0x3a88 // 3a88 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 3a98: 9323 ld.w r1, (r3, 0xc) + 3a9a: 3008 movi r0, 8 + 3a9c: 6840 and r1, r0 + 3a9e: 3940 cmpnei r1, 0 + 3aa0: 0bf4 bt 0x3a88 // 3a88 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 3aa2: 9323 ld.w r1, (r3, 0xc) + 3aa4: 3010 movi r0, 16 + 3aa6: 6840 and r1, r0 + 3aa8: 3940 cmpnei r1, 0 + 3aaa: 0bef bt 0x3a88 // 3a88 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 3aac: 9323 ld.w r1, (r3, 0xc) + 3aae: 6848 and r1, r2 + 3ab0: 3940 cmpnei r1, 0 + 3ab2: 0c03 bf 0x3ab8 // 3ab8 + SYSCON->ICR = CMD_ERR_ST; + 3ab4: b341 st.w r2, (r3, 0x4) +} + 3ab6: 07ea br 0x3a8a // 3a8a + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 3ab8: 3280 movi r2, 128 + 3aba: 9323 ld.w r1, (r3, 0xc) + 3abc: 4241 lsli r2, r2, 1 + 3abe: 6848 and r1, r2 + 3ac0: 3940 cmpnei r1, 0 + 3ac2: 0bf9 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 3ac4: 3280 movi r2, 128 + 3ac6: 9323 ld.w r1, (r3, 0xc) + 3ac8: 4242 lsli r2, r2, 2 + 3aca: 6848 and r1, r2 + 3acc: 3940 cmpnei r1, 0 + 3ace: 0bf3 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 3ad0: 3280 movi r2, 128 + 3ad2: 9323 ld.w r1, (r3, 0xc) + 3ad4: 4243 lsli r2, r2, 3 + 3ad6: 6848 and r1, r2 + 3ad8: 3940 cmpnei r1, 0 + 3ada: 0bed bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 3adc: 3280 movi r2, 128 + 3ade: 9323 ld.w r1, (r3, 0xc) + 3ae0: 4244 lsli r2, r2, 4 + 3ae2: 6848 and r1, r2 + 3ae4: 3940 cmpnei r1, 0 + 3ae6: 0c03 bf 0x3aec // 3aec + nop; + 3ae8: 6c03 mov r0, r0 + 3aea: 07e5 br 0x3ab4 // 3ab4 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 3aec: 3280 movi r2, 128 + 3aee: 9323 ld.w r1, (r3, 0xc) + 3af0: 4245 lsli r2, r2, 5 + 3af2: 6848 and r1, r2 + 3af4: 3940 cmpnei r1, 0 + 3af6: 0bdf bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 3af8: 3280 movi r2, 128 + 3afa: 9323 ld.w r1, (r3, 0xc) + 3afc: 4246 lsli r2, r2, 6 + 3afe: 6848 and r1, r2 + 3b00: 3940 cmpnei r1, 0 + 3b02: 0bd9 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 3b04: 3280 movi r2, 128 + 3b06: 9323 ld.w r1, (r3, 0xc) + 3b08: 4247 lsli r2, r2, 7 + 3b0a: 6848 and r1, r2 + 3b0c: 3940 cmpnei r1, 0 + 3b0e: 0bd3 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 3b10: 3280 movi r2, 128 + 3b12: 9323 ld.w r1, (r3, 0xc) + 3b14: 424b lsli r2, r2, 11 + 3b16: 6848 and r1, r2 + 3b18: 3940 cmpnei r1, 0 + 3b1a: 0bcd bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 3b1c: 3280 movi r2, 128 + 3b1e: 9323 ld.w r1, (r3, 0xc) + 3b20: 424c lsli r2, r2, 12 + 3b22: 6848 and r1, r2 + 3b24: 3940 cmpnei r1, 0 + 3b26: 0bc7 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3b28: 3280 movi r2, 128 + 3b2a: 9323 ld.w r1, (r3, 0xc) + 3b2c: 424d lsli r2, r2, 13 + 3b2e: 6848 and r1, r2 + 3b30: 3940 cmpnei r1, 0 + 3b32: 0bc1 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 3b34: 3280 movi r2, 128 + 3b36: 9323 ld.w r1, (r3, 0xc) + 3b38: 424e lsli r2, r2, 14 + 3b3a: 6848 and r1, r2 + 3b3c: 3940 cmpnei r1, 0 + 3b3e: 0bbb bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 3b40: 3280 movi r2, 128 + 3b42: 9323 ld.w r1, (r3, 0xc) + 3b44: 424f lsli r2, r2, 15 + 3b46: 6848 and r1, r2 + 3b48: 3940 cmpnei r1, 0 + 3b4a: 0bb5 bt 0x3ab4 // 3ab4 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3b4c: 3280 movi r2, 128 + 3b4e: 9323 ld.w r1, (r3, 0xc) + 3b50: 4256 lsli r2, r2, 22 + 3b52: 6848 and r1, r2 + 3b54: 3940 cmpnei r1, 0 + 3b56: 0baf bt 0x3ab4 // 3ab4 + 3b58: 0799 br 0x3a8a // 3a8a + 3b5a: 0000 bkpt + 3b5c: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00003b60 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 3b60: 1460 nie + 3b62: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 3b64: 1078 lrw r3, 0x20000060 // 3bc4 + 3b66: 3101 movi r1, 1 + 3b68: 9360 ld.w r3, (r3, 0x0) + 3b6a: 934b ld.w r2, (r3, 0x2c) + 3b6c: 6884 and r2, r1 + 3b6e: 3a40 cmpnei r2, 0 + 3b70: 0c04 bf 0x3b78 // 3b78 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 3b72: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 3b74: 1463 ipop + 3b76: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 3b78: 934b ld.w r2, (r3, 0x2c) + 3b7a: 3102 movi r1, 2 + 3b7c: 6884 and r2, r1 + 3b7e: 3a40 cmpnei r2, 0 + 3b80: 0bf9 bt 0x3b72 // 3b72 + else if(IFC->MISR&PEP_END_INT) + 3b82: 934b ld.w r2, (r3, 0x2c) + 3b84: 3104 movi r1, 4 + 3b86: 6884 and r2, r1 + 3b88: 3a40 cmpnei r2, 0 + 3b8a: 0bf4 bt 0x3b72 // 3b72 + else if(IFC->MISR&PROT_ERR_INT) + 3b8c: 3280 movi r2, 128 + 3b8e: 932b ld.w r1, (r3, 0x2c) + 3b90: 4245 lsli r2, r2, 5 + 3b92: 6848 and r1, r2 + 3b94: 3940 cmpnei r1, 0 + 3b96: 0c03 bf 0x3b9c // 3b9c + IFC->ICR=OVW_ERR_INT; + 3b98: b34c st.w r2, (r3, 0x30) +} + 3b9a: 07ed br 0x3b74 // 3b74 + else if(IFC->MISR&UDEF_ERR_INT) + 3b9c: 3280 movi r2, 128 + 3b9e: 932b ld.w r1, (r3, 0x2c) + 3ba0: 4246 lsli r2, r2, 6 + 3ba2: 6848 and r1, r2 + 3ba4: 3940 cmpnei r1, 0 + 3ba6: 0bf9 bt 0x3b98 // 3b98 + else if(IFC->MISR&ADDR_ERR_INT) + 3ba8: 3280 movi r2, 128 + 3baa: 932b ld.w r1, (r3, 0x2c) + 3bac: 4247 lsli r2, r2, 7 + 3bae: 6848 and r1, r2 + 3bb0: 3940 cmpnei r1, 0 + 3bb2: 0bf3 bt 0x3b98 // 3b98 + else if(IFC->MISR&OVW_ERR_INT) + 3bb4: 3280 movi r2, 128 + 3bb6: 932b ld.w r1, (r3, 0x2c) + 3bb8: 4248 lsli r2, r2, 8 + 3bba: 6848 and r1, r2 + 3bbc: 3940 cmpnei r1, 0 + 3bbe: 0bed bt 0x3b98 // 3b98 + 3bc0: 07da br 0x3b74 // 3b74 + 3bc2: 0000 bkpt + 3bc4: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003bc8 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3bc8: 1460 nie + 3bca: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3bcc: 1078 lrw r3, 0x20000050 // 3c2c + 3bce: 3101 movi r1, 1 + 3bd0: 9360 ld.w r3, (r3, 0x0) + 3bd2: 9348 ld.w r2, (r3, 0x20) + 3bd4: 6884 and r2, r1 + 3bd6: 3a40 cmpnei r2, 0 + 3bd8: 0c04 bf 0x3be0 // 3be0 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3bda: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 3bdc: 1463 ipop + 3bde: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 3be0: 9348 ld.w r2, (r3, 0x20) + 3be2: 3102 movi r1, 2 + 3be4: 6884 and r2, r1 + 3be6: 3a40 cmpnei r2, 0 + 3be8: 0bf9 bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3bea: 9348 ld.w r2, (r3, 0x20) + 3bec: 3104 movi r1, 4 + 3bee: 6884 and r2, r1 + 3bf0: 3a40 cmpnei r2, 0 + 3bf2: 0bf4 bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3bf4: 9348 ld.w r2, (r3, 0x20) + 3bf6: 3110 movi r1, 16 + 3bf8: 6884 and r2, r1 + 3bfa: 3a40 cmpnei r2, 0 + 3bfc: 0bef bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 3bfe: 9348 ld.w r2, (r3, 0x20) + 3c00: 3120 movi r1, 32 + 3c02: 6884 and r2, r1 + 3c04: 3a40 cmpnei r2, 0 + 3c06: 0bea bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3c08: 9348 ld.w r2, (r3, 0x20) + 3c0a: 3140 movi r1, 64 + 3c0c: 6884 and r2, r1 + 3c0e: 3a40 cmpnei r2, 0 + 3c10: 0be5 bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 3c12: 9348 ld.w r2, (r3, 0x20) + 3c14: 3180 movi r1, 128 + 3c16: 6884 and r2, r1 + 3c18: 3a40 cmpnei r2, 0 + 3c1a: 0be0 bt 0x3bda // 3bda + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 3c1c: 3280 movi r2, 128 + 3c1e: 9328 ld.w r1, (r3, 0x20) + 3c20: 4249 lsli r2, r2, 9 + 3c22: 6848 and r1, r2 + 3c24: 3940 cmpnei r1, 0 + 3c26: 0fdb bf 0x3bdc // 3bdc + ADC0->CSR = ADC12_SEQ_END0; + 3c28: b347 st.w r2, (r3, 0x1c) +} + 3c2a: 07d9 br 0x3bdc // 3bdc + 3c2c: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003c30 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3c30: 1460 nie + 3c32: 1462 ipush + 3c34: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3c36: 1387 lrw r4, 0x20000020 // 3dd0 + 3c38: 3280 movi r2, 128 + 3c3a: 9460 ld.w r3, (r4, 0x0) + 3c3c: 60c8 addu r3, r2 + 3c3e: 9335 ld.w r1, (r3, 0x54) + 3c40: 3001 movi r0, 1 + 3c42: 6840 and r1, r0 + 3c44: 3940 cmpnei r1, 0 + 3c46: 0c03 bf 0x3c4c // 3c4c + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 3c48: b317 st.w r0, (r3, 0x5c) + 3c4a: 0424 br 0x3c92 // 3c92 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3c4c: 9335 ld.w r1, (r3, 0x54) + 3c4e: 3002 movi r0, 2 + 3c50: 6840 and r1, r0 + 3c52: 3940 cmpnei r1, 0 + 3c54: 0bfa bt 0x3c48 // 3c48 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3c56: 9335 ld.w r1, (r3, 0x54) + 3c58: 3004 movi r0, 4 + 3c5a: 6840 and r1, r0 + 3c5c: 3940 cmpnei r1, 0 + 3c5e: 0bf5 bt 0x3c48 // 3c48 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3c60: 9335 ld.w r1, (r3, 0x54) + 3c62: 3008 movi r0, 8 + 3c64: 6840 and r1, r0 + 3c66: 3940 cmpnei r1, 0 + 3c68: 0bf0 bt 0x3c48 // 3c48 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3c6a: 9335 ld.w r1, (r3, 0x54) + 3c6c: 3010 movi r0, 16 + 3c6e: 6840 and r1, r0 + 3c70: 3940 cmpnei r1, 0 + 3c72: 0c1f bf 0x3cb0 // 3cb0 + EPT0->ICR=EPT_CAP_LD0; + 3c74: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3c76: 3200 movi r2, 0 + 3c78: 3101 movi r1, 1 + 3c7a: 3000 movi r0, 0 + 3c7c: e3fffa98 bsr 0x31ac // 31ac + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 3c80: 3201 movi r2, 1 + 3c82: 3101 movi r1, 1 + 3c84: 3001 movi r0, 1 + 3c86: e3fffa93 bsr 0x31ac // 31ac + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3c8a: 9460 ld.w r3, (r4, 0x0) + 3c8c: 934b ld.w r2, (r3, 0x2c) + 3c8e: 1272 lrw r3, 0x20000388 // 3dd4 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3c90: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 3c92: 9460 ld.w r3, (r4, 0x0) + 3c94: 3280 movi r2, 128 + 3c96: 60c8 addu r3, r2 + 3c98: 932b ld.w r1, (r3, 0x2c) + 3c9a: 3001 movi r0, 1 + 3c9c: 6840 and r1, r0 + 3c9e: 3940 cmpnei r1, 0 + 3ca0: 0c61 bf 0x3d62 // 3d62 + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 3ca2: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 3ca4: d9ee2001 ld.w r15, (r14, 0x4) + 3ca8: 9880 ld.w r4, (r14, 0x0) + 3caa: 1402 addi r14, r14, 8 + 3cac: 1463 ipop + 3cae: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 3cb0: 9335 ld.w r1, (r3, 0x54) + 3cb2: 3020 movi r0, 32 + 3cb4: 6840 and r1, r0 + 3cb6: 3940 cmpnei r1, 0 + 3cb8: 0c10 bf 0x3cd8 // 3cd8 + EPT0->ICR=EPT_CAP_LD1; + 3cba: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3cbc: 3200 movi r2, 0 + 3cbe: 3101 movi r1, 1 + 3cc0: 3001 movi r0, 1 + 3cc2: e3fffa75 bsr 0x31ac // 31ac + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3cc6: 3201 movi r2, 1 + 3cc8: 3101 movi r1, 1 + 3cca: 3000 movi r0, 0 + 3ccc: e3fffa70 bsr 0x31ac // 31ac + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3cd0: 9460 ld.w r3, (r4, 0x0) + 3cd2: 934c ld.w r2, (r3, 0x30) + 3cd4: 1261 lrw r3, 0x20000384 // 3dd8 + 3cd6: 07dd br 0x3c90 // 3c90 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3cd8: 9335 ld.w r1, (r3, 0x54) + 3cda: 3040 movi r0, 64 + 3cdc: 6840 and r1, r0 + 3cde: 3940 cmpnei r1, 0 + 3ce0: 0bb4 bt 0x3c48 // 3c48 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 3ce2: 9335 ld.w r1, (r3, 0x54) + 3ce4: 6848 and r1, r2 + 3ce6: 3940 cmpnei r1, 0 + 3ce8: 0c03 bf 0x3cee // 3cee + EPT0->ICR=EPT_CDD; + 3cea: b357 st.w r2, (r3, 0x5c) + 3cec: 07d3 br 0x3c92 // 3c92 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 3cee: 3280 movi r2, 128 + 3cf0: 9335 ld.w r1, (r3, 0x54) + 3cf2: 4241 lsli r2, r2, 1 + 3cf4: 6848 and r1, r2 + 3cf6: 3940 cmpnei r1, 0 + 3cf8: 0bf9 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3cfa: 3280 movi r2, 128 + 3cfc: 9335 ld.w r1, (r3, 0x54) + 3cfe: 4242 lsli r2, r2, 2 + 3d00: 6848 and r1, r2 + 3d02: 3940 cmpnei r1, 0 + 3d04: 0bf3 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3d06: 3280 movi r2, 128 + 3d08: 9335 ld.w r1, (r3, 0x54) + 3d0a: 4243 lsli r2, r2, 3 + 3d0c: 6848 and r1, r2 + 3d0e: 3940 cmpnei r1, 0 + 3d10: 0bed bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 3d12: 3280 movi r2, 128 + 3d14: 9335 ld.w r1, (r3, 0x54) + 3d16: 4244 lsli r2, r2, 4 + 3d18: 6848 and r1, r2 + 3d1a: 3940 cmpnei r1, 0 + 3d1c: 0be7 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 3d1e: 3280 movi r2, 128 + 3d20: 9335 ld.w r1, (r3, 0x54) + 3d22: 4245 lsli r2, r2, 5 + 3d24: 6848 and r1, r2 + 3d26: 3940 cmpnei r1, 0 + 3d28: 0be1 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3d2a: 3280 movi r2, 128 + 3d2c: 9335 ld.w r1, (r3, 0x54) + 3d2e: 4246 lsli r2, r2, 6 + 3d30: 6848 and r1, r2 + 3d32: 3940 cmpnei r1, 0 + 3d34: 0bdb bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3d36: 3280 movi r2, 128 + 3d38: 9335 ld.w r1, (r3, 0x54) + 3d3a: 4247 lsli r2, r2, 7 + 3d3c: 6848 and r1, r2 + 3d3e: 3940 cmpnei r1, 0 + 3d40: 0bd5 bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 3d42: 3280 movi r2, 128 + 3d44: 9335 ld.w r1, (r3, 0x54) + 3d46: 4248 lsli r2, r2, 8 + 3d48: 6848 and r1, r2 + 3d4a: 3940 cmpnei r1, 0 + 3d4c: 0bcf bt 0x3cea // 3cea + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 3d4e: 3280 movi r2, 128 + 3d50: 9335 ld.w r1, (r3, 0x54) + 3d52: 4249 lsli r2, r2, 9 + 3d54: 6848 and r1, r2 + 3d56: 3940 cmpnei r1, 0 + 3d58: 0f9d bf 0x3c92 // 3c92 + EPT0->ICR=EPT_PEND; + 3d5a: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3d5c: e3fffd50 bsr 0x37fc // 37fc + 3d60: 0799 br 0x3c92 // 3c92 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 3d62: 932b ld.w r1, (r3, 0x2c) + 3d64: 3002 movi r0, 2 + 3d66: 6840 and r1, r0 + 3d68: 3940 cmpnei r1, 0 + 3d6a: 0b9c bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3d6c: 932b ld.w r1, (r3, 0x2c) + 3d6e: 3004 movi r0, 4 + 3d70: 6840 and r1, r0 + 3d72: 3940 cmpnei r1, 0 + 3d74: 0b97 bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3d76: 932b ld.w r1, (r3, 0x2c) + 3d78: 3008 movi r0, 8 + 3d7a: 6840 and r1, r0 + 3d7c: 3940 cmpnei r1, 0 + 3d7e: 0b92 bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 3d80: 932b ld.w r1, (r3, 0x2c) + 3d82: 3010 movi r0, 16 + 3d84: 6840 and r1, r0 + 3d86: 3940 cmpnei r1, 0 + 3d88: 0b8d bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3d8a: 932b ld.w r1, (r3, 0x2c) + 3d8c: 3020 movi r0, 32 + 3d8e: 6840 and r1, r0 + 3d90: 3940 cmpnei r1, 0 + 3d92: 0b88 bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3d94: 932b ld.w r1, (r3, 0x2c) + 3d96: 3040 movi r0, 64 + 3d98: 6840 and r1, r0 + 3d9a: 3940 cmpnei r1, 0 + 3d9c: 0b83 bt 0x3ca2 // 3ca2 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 3d9e: 932b ld.w r1, (r3, 0x2c) + 3da0: 6848 and r1, r2 + 3da2: 3940 cmpnei r1, 0 + 3da4: 0c03 bf 0x3daa // 3daa + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3da6: b34d st.w r2, (r3, 0x34) +} + 3da8: 077e br 0x3ca4 // 3ca4 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3daa: 3280 movi r2, 128 + 3dac: 932b ld.w r1, (r3, 0x2c) + 3dae: 4241 lsli r2, r2, 1 + 3db0: 6848 and r1, r2 + 3db2: 3940 cmpnei r1, 0 + 3db4: 0bf9 bt 0x3da6 // 3da6 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3db6: 3280 movi r2, 128 + 3db8: 932b ld.w r1, (r3, 0x2c) + 3dba: 4242 lsli r2, r2, 2 + 3dbc: 6848 and r1, r2 + 3dbe: 3940 cmpnei r1, 0 + 3dc0: 0bf3 bt 0x3da6 // 3da6 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 3dc2: 3280 movi r2, 128 + 3dc4: 932b ld.w r1, (r3, 0x2c) + 3dc6: 4243 lsli r2, r2, 3 + 3dc8: 6848 and r1, r2 + 3dca: 3940 cmpnei r1, 0 + 3dcc: 0bed bt 0x3da6 // 3da6 + 3dce: 076b br 0x3ca4 // 3ca4 + 3dd0: 20000020 .long 0x20000020 + 3dd4: 20000388 .long 0x20000388 + 3dd8: 20000384 .long 0x20000384 + +Disassembly of section .text.WWDTHandler: + +00003ddc : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3ddc: 1460 nie + 3dde: 1462 ipush + 3de0: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 3de2: 10ab lrw r5, 0x20000010 // 3e0c + 3de4: 3401 movi r4, 1 + 3de6: 9560 ld.w r3, (r5, 0x0) + 3de8: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3dea: 30ff movi r0, 255 + 3dec: e3fffade bsr 0x33a8 // 33a8 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 3df0: 9540 ld.w r2, (r5, 0x0) + 3df2: 9263 ld.w r3, (r2, 0xc) + 3df4: 68d0 and r3, r4 + 3df6: 3b40 cmpnei r3, 0 + 3df8: 0c02 bf 0x3dfc // 3dfc + { + WWDT->ICR = WWDT_EVI; + 3dfa: b285 st.w r4, (r2, 0x14) + } +} + 3dfc: d9ee2002 ld.w r15, (r14, 0x8) + 3e00: 98a1 ld.w r5, (r14, 0x4) + 3e02: 9880 ld.w r4, (r14, 0x0) + 3e04: 1403 addi r14, r14, 12 + 3e06: 1463 ipop + 3e08: 1461 nir + 3e0a: 0000 bkpt + 3e0c: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00003e10 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 3e10: 1460 nie + 3e12: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3e14: 107e lrw r3, 0x20000024 // 3e8c + 3e16: 3101 movi r1, 1 + 3e18: 9360 ld.w r3, (r3, 0x0) + 3e1a: 237f addi r3, 128 + 3e1c: 9355 ld.w r2, (r3, 0x54) + 3e1e: 6884 and r2, r1 + 3e20: 3a40 cmpnei r2, 0 + 3e22: 0c04 bf 0x3e2a // 3e2a + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 3e24: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 3e26: 1463 ipop + 3e28: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3e2a: 9355 ld.w r2, (r3, 0x54) + 3e2c: 3102 movi r1, 2 + 3e2e: 6884 and r2, r1 + 3e30: 3a40 cmpnei r2, 0 + 3e32: 0bf9 bt 0x3e24 // 3e24 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3e34: 9355 ld.w r2, (r3, 0x54) + 3e36: 3110 movi r1, 16 + 3e38: 6884 and r2, r1 + 3e3a: 3a40 cmpnei r2, 0 + 3e3c: 0bf4 bt 0x3e24 // 3e24 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 3e3e: 9355 ld.w r2, (r3, 0x54) + 3e40: 3120 movi r1, 32 + 3e42: 6884 and r2, r1 + 3e44: 3a40 cmpnei r2, 0 + 3e46: 0bef bt 0x3e24 // 3e24 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3e48: 3280 movi r2, 128 + 3e4a: 9335 ld.w r1, (r3, 0x54) + 3e4c: 4241 lsli r2, r2, 1 + 3e4e: 6848 and r1, r2 + 3e50: 3940 cmpnei r1, 0 + 3e52: 0c03 bf 0x3e58 // 3e58 + GPT0->ICR = GPT_INT_PEND; + 3e54: b357 st.w r2, (r3, 0x5c) +} + 3e56: 07e8 br 0x3e26 // 3e26 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3e58: 3280 movi r2, 128 + 3e5a: 9335 ld.w r1, (r3, 0x54) + 3e5c: 4242 lsli r2, r2, 2 + 3e5e: 6848 and r1, r2 + 3e60: 3940 cmpnei r1, 0 + 3e62: 0bf9 bt 0x3e54 // 3e54 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3e64: 3280 movi r2, 128 + 3e66: 9335 ld.w r1, (r3, 0x54) + 3e68: 4243 lsli r2, r2, 3 + 3e6a: 6848 and r1, r2 + 3e6c: 3940 cmpnei r1, 0 + 3e6e: 0bf3 bt 0x3e54 // 3e54 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 3e70: 3280 movi r2, 128 + 3e72: 9335 ld.w r1, (r3, 0x54) + 3e74: 4244 lsli r2, r2, 4 + 3e76: 6848 and r1, r2 + 3e78: 3940 cmpnei r1, 0 + 3e7a: 0bed bt 0x3e54 // 3e54 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3e7c: 3280 movi r2, 128 + 3e7e: 9335 ld.w r1, (r3, 0x54) + 3e80: 4249 lsli r2, r2, 9 + 3e82: 6848 and r1, r2 + 3e84: 3940 cmpnei r1, 0 + 3e86: 0be7 bt 0x3e54 // 3e54 + 3e88: 07cf br 0x3e26 // 3e26 + 3e8a: 0000 bkpt + 3e8c: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00003e90 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 3e90: 1460 nie + 3e92: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3e94: 1079 lrw r3, 0x20000018 // 3ef8 + 3e96: 3101 movi r1, 1 + 3e98: 9360 ld.w r3, (r3, 0x0) + 3e9a: 934a ld.w r2, (r3, 0x28) + 3e9c: 6884 and r2, r1 + 3e9e: 3a40 cmpnei r2, 0 + 3ea0: 0c14 bf 0x3ec8 // 3ec8 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 3ea2: 1057 lrw r2, 0xca53 // 3efc + RTC->ICR=ALRA_INT; + 3ea4: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3ea6: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3ea8: 9342 ld.w r2, (r3, 0x8) + 3eaa: 6c84 or r2, r1 + 3eac: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 3eae: 3280 movi r2, 128 + 3eb0: 424d lsli r2, r2, 13 + 3eb2: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3eb4: 3102 movi r1, 2 + 3eb6: 9342 ld.w r2, (r3, 0x8) + 3eb8: 6884 and r2, r1 + 3eba: 3a40 cmpnei r2, 0 + 3ebc: 0bfd bt 0x3eb6 // 3eb6 + RTC->CR &= ~0x1; + 3ebe: 9342 ld.w r2, (r3, 0x8) + 3ec0: 3a80 bclri r2, 0 + 3ec2: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 3ec4: 1463 ipop + 3ec6: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3ec8: 934a ld.w r2, (r3, 0x28) + 3eca: 3102 movi r1, 2 + 3ecc: 6884 and r2, r1 + 3ece: 3a40 cmpnei r2, 0 + 3ed0: 0c03 bf 0x3ed6 // 3ed6 + RTC->ICR=RTC_TRGEV1_INT; + 3ed2: b32b st.w r1, (r3, 0x2c) +} + 3ed4: 07f8 br 0x3ec4 // 3ec4 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3ed6: 934a ld.w r2, (r3, 0x28) + 3ed8: 3104 movi r1, 4 + 3eda: 6884 and r2, r1 + 3edc: 3a40 cmpnei r2, 0 + 3ede: 0bfa bt 0x3ed2 // 3ed2 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 3ee0: 934a ld.w r2, (r3, 0x28) + 3ee2: 3108 movi r1, 8 + 3ee4: 6884 and r2, r1 + 3ee6: 3a40 cmpnei r2, 0 + 3ee8: 0bf5 bt 0x3ed2 // 3ed2 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3eea: 934a ld.w r2, (r3, 0x28) + 3eec: 3110 movi r1, 16 + 3eee: 6884 and r2, r1 + 3ef0: 3a40 cmpnei r2, 0 + 3ef2: 0bf0 bt 0x3ed2 // 3ed2 + 3ef4: 07e8 br 0x3ec4 // 3ec4 + 3ef6: 0000 bkpt + 3ef8: 20000018 .long 0x20000018 + 3efc: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00003f00 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 3f00: 1460 nie + 3f02: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f04: 106d lrw r3, 0x20000040 // 3f38 + 3f06: 3102 movi r1, 2 + 3f08: 9360 ld.w r3, (r3, 0x0) + 3f0a: 9343 ld.w r2, (r3, 0xc) + 3f0c: 6884 and r2, r1 + 3f0e: 3a40 cmpnei r2, 0 + 3f10: 0c03 bf 0x3f16 // 3f16 + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 3f12: b323 st.w r1, (r3, 0xc) + } +} + 3f14: 0410 br 0x3f34 // 3f34 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f16: 9343 ld.w r2, (r3, 0xc) + 3f18: 3101 movi r1, 1 + 3f1a: 6884 and r2, r1 + 3f1c: 3a40 cmpnei r2, 0 + 3f1e: 0bfa bt 0x3f12 // 3f12 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f20: 9343 ld.w r2, (r3, 0xc) + 3f22: 3108 movi r1, 8 + 3f24: 6884 and r2, r1 + 3f26: 3a40 cmpnei r2, 0 + 3f28: 0bf5 bt 0x3f12 // 3f12 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f2a: 9343 ld.w r2, (r3, 0xc) + 3f2c: 3104 movi r1, 4 + 3f2e: 6884 and r2, r1 + 3f30: 3a40 cmpnei r2, 0 + 3f32: 0bf0 bt 0x3f12 // 3f12 +} + 3f34: 1463 ipop + 3f36: 1461 nir + 3f38: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003f3c : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3f3c: 1460 nie + 3f3e: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f40: 106d lrw r3, 0x2000003c // 3f74 + 3f42: 3102 movi r1, 2 + 3f44: 9360 ld.w r3, (r3, 0x0) + 3f46: 9343 ld.w r2, (r3, 0xc) + 3f48: 6884 and r2, r1 + 3f4a: 3a40 cmpnei r2, 0 + 3f4c: 0c03 bf 0x3f52 // 3f52 + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + 3f4e: b323 st.w r1, (r3, 0xc) + } +} + 3f50: 0410 br 0x3f70 // 3f70 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3f52: 9343 ld.w r2, (r3, 0xc) + 3f54: 3101 movi r1, 1 + 3f56: 6884 and r2, r1 + 3f58: 3a40 cmpnei r2, 0 + 3f5a: 0bfa bt 0x3f4e // 3f4e + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3f5c: 9343 ld.w r2, (r3, 0xc) + 3f5e: 3108 movi r1, 8 + 3f60: 6884 and r2, r1 + 3f62: 3a40 cmpnei r2, 0 + 3f64: 0bf5 bt 0x3f4e // 3f4e + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3f66: 9343 ld.w r2, (r3, 0xc) + 3f68: 3104 movi r1, 4 + 3f6a: 6884 and r2, r1 + 3f6c: 3a40 cmpnei r2, 0 + 3f6e: 0bf0 bt 0x3f4e // 3f4e +} + 3f70: 1463 ipop + 3f72: 1461 nir + 3f74: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003f78 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3f78: 1460 nie + 3f7a: 1462 ipush + 3f7c: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3f7e: 107f lrw r3, 0x20000038 // 3ff8 + 3f80: 3102 movi r1, 2 + 3f82: 9360 ld.w r3, (r3, 0x0) + 3f84: 9343 ld.w r2, (r3, 0xc) + 3f86: 6884 and r2, r1 + 3f88: 3a40 cmpnei r2, 0 + 3f8a: 0c0b bf 0x3fa0 // 3fa0 + { + UART2->ISR=UART_RX_INT_S; + 3f8c: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 3f8e: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 3f90: 7400 zextb r0, r0 + 3f92: e00002e9 bsr 0x4564 // 4564 + RS485_Comm_End ++; + } + + } + +} + 3f96: d9ee2000 ld.w r15, (r14, 0x0) + 3f9a: 1401 addi r14, r14, 4 + 3f9c: 1463 ipop + 3f9e: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3fa0: 9323 ld.w r1, (r3, 0xc) + 3fa2: 3201 movi r2, 1 + 3fa4: 6848 and r1, r2 + 3fa6: 3940 cmpnei r1, 0 + 3fa8: 0c0d bf 0x3fc2 // 3fc2 + UART2->ISR=UART_TX_INT_S; + 3faa: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3fac: 1074 lrw r3, 0x200000bc // 3ffc + 3fae: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fb0: 1074 lrw r3, 0x200000c0 // 4000 + 3fb2: 9360 ld.w r3, (r3, 0x0) + 3fb4: 3b41 cmpnei r3, 1 + 3fb6: 0bf0 bt 0x3f96 // 3f96 + RS485_Comm_Start ++; + 3fb8: 1053 lrw r2, 0x200000c4 // 4004 + RS485_Comm_End ++; + 3fba: 9260 ld.w r3, (r2, 0x0) + 3fbc: 2300 addi r3, 1 + 3fbe: b260 st.w r3, (r2, 0x0) +} + 3fc0: 07eb br 0x3f96 // 3f96 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3fc2: 9343 ld.w r2, (r3, 0xc) + 3fc4: 3108 movi r1, 8 + 3fc6: 6884 and r2, r1 + 3fc8: 3a40 cmpnei r2, 0 + 3fca: 0c03 bf 0x3fd0 // 3fd0 + UART2->ISR=UART_TX_IOV_S; + 3fcc: b323 st.w r1, (r3, 0xc) + 3fce: 07e4 br 0x3f96 // 3f96 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3fd0: 9343 ld.w r2, (r3, 0xc) + 3fd2: 3104 movi r1, 4 + 3fd4: 6884 and r2, r1 + 3fd6: 3a40 cmpnei r2, 0 + 3fd8: 0bfa bt 0x3fcc // 3fcc + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3fda: 3180 movi r1, 128 + 3fdc: 9303 ld.w r0, (r3, 0xc) + 3fde: 412c lsli r1, r1, 12 + 3fe0: 6804 and r0, r1 + 3fe2: 3840 cmpnei r0, 0 + 3fe4: 0fd9 bf 0x3f96 // 3f96 + UART2->ISR=UART_TX_DONE_S; + 3fe6: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3fe8: 1065 lrw r3, 0x200000bc // 3ffc + 3fea: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3fec: 1065 lrw r3, 0x200000c0 // 4000 + 3fee: 9360 ld.w r3, (r3, 0x0) + 3ff0: 3b41 cmpnei r3, 1 + 3ff2: 0bd2 bt 0x3f96 // 3f96 + RS485_Comm_End ++; + 3ff4: 1045 lrw r2, 0x200000c8 // 4008 + 3ff6: 07e2 br 0x3fba // 3fba + 3ff8: 20000038 .long 0x20000038 + 3ffc: 200000bc .long 0x200000bc + 4000: 200000c0 .long 0x200000c0 + 4004: 200000c4 .long 0x200000c4 + 4008: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +0000400c : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 400c: 1460 nie + 400e: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 4010: 1178 lrw r3, 0x20000034 // 40f0 + 4012: 3101 movi r1, 1 + 4014: 9360 ld.w r3, (r3, 0x0) + 4016: 9347 ld.w r2, (r3, 0x1c) + 4018: 6884 and r2, r1 + 401a: 3a40 cmpnei r2, 0 + 401c: 0c03 bf 0x4022 // 4022 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 401e: b328 st.w r1, (r3, 0x20) + } + +} + 4020: 0407 br 0x402e // 402e + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 4022: 9347 ld.w r2, (r3, 0x1c) + 4024: 3002 movi r0, 2 + 4026: 6880 and r2, r0 + 4028: 3a40 cmpnei r2, 0 + 402a: 0c04 bf 0x4032 // 4032 + SPI0->ICR = SPI_RTIM; + 402c: b308 st.w r0, (r3, 0x20) +} + 402e: 1463 ipop + 4030: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 4032: 9347 ld.w r2, (r3, 0x1c) + 4034: 3004 movi r0, 4 + 4036: 6880 and r2, r0 + 4038: 3a40 cmpnei r2, 0 + 403a: 0c55 bf 0x40e4 // 40e4 + SPI0->ICR = SPI_RXIM; + 403c: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 403e: 9302 ld.w r0, (r3, 0x8) + 4040: 32aa movi r2, 170 + 4042: 6482 cmpne r0, r2 + 4044: 083e bt 0x40c0 // 40c0 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4046: 3102 movi r1, 2 + 4048: 9343 ld.w r2, (r3, 0xc) + 404a: 6884 and r2, r1 + 404c: 3a40 cmpnei r2, 0 + 404e: 0ffd bf 0x4048 // 4048 + SPI0->DR = 0x11; + 4050: 3211 movi r2, 17 + 4052: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4054: 3110 movi r1, 16 + 4056: 9343 ld.w r2, (r3, 0xc) + 4058: 6884 and r2, r1 + 405a: 3a40 cmpnei r2, 0 + 405c: 0bfd bt 0x4056 // 4056 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 405e: 3102 movi r1, 2 + 4060: 9343 ld.w r2, (r3, 0xc) + 4062: 6884 and r2, r1 + 4064: 3a40 cmpnei r2, 0 + 4066: 0ffd bf 0x4060 // 4060 + SPI0->DR = 0x12; + 4068: 3212 movi r2, 18 + 406a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 406c: 3110 movi r1, 16 + 406e: 9343 ld.w r2, (r3, 0xc) + 4070: 6884 and r2, r1 + 4072: 3a40 cmpnei r2, 0 + 4074: 0bfd bt 0x406e // 406e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 4076: 3102 movi r1, 2 + 4078: 9343 ld.w r2, (r3, 0xc) + 407a: 6884 and r2, r1 + 407c: 3a40 cmpnei r2, 0 + 407e: 0ffd bf 0x4078 // 4078 + SPI0->DR = 0x13; + 4080: 3213 movi r2, 19 + 4082: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 4084: 3110 movi r1, 16 + 4086: 9343 ld.w r2, (r3, 0xc) + 4088: 6884 and r2, r1 + 408a: 3a40 cmpnei r2, 0 + 408c: 0bfd bt 0x4086 // 4086 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 408e: 3102 movi r1, 2 + 4090: 9343 ld.w r2, (r3, 0xc) + 4092: 6884 and r2, r1 + 4094: 3a40 cmpnei r2, 0 + 4096: 0ffd bf 0x4090 // 4090 + SPI0->DR = 0x14; + 4098: 3214 movi r2, 20 + 409a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 409c: 3110 movi r1, 16 + 409e: 9343 ld.w r2, (r3, 0xc) + 40a0: 6884 and r2, r1 + 40a2: 3a40 cmpnei r2, 0 + 40a4: 0bfd bt 0x409e // 409e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 40a6: 3102 movi r1, 2 + 40a8: 9343 ld.w r2, (r3, 0xc) + 40aa: 6884 and r2, r1 + 40ac: 3a40 cmpnei r2, 0 + 40ae: 0ffd bf 0x40a8 // 40a8 + SPI0->DR = 0x15; + 40b0: 3215 movi r2, 21 + 40b2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40b4: 3110 movi r1, 16 + 40b6: 9343 ld.w r2, (r3, 0xc) + 40b8: 6884 and r2, r1 + 40ba: 3a40 cmpnei r2, 0 + 40bc: 0bfd bt 0x40b6 // 40b6 + 40be: 07b8 br 0x402e // 402e + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 40c0: 9343 ld.w r2, (r3, 0xc) + 40c2: 6884 and r2, r1 + 40c4: 3a40 cmpnei r2, 0 + 40c6: 0bb4 bt 0x402e // 402e + SPI0->DR=0x0; //FIFO=0 + 40c8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40ca: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 40cc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40ce: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 40d8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 40da: 9343 ld.w r2, (r3, 0xc) + 40dc: 6884 and r2, r1 + 40de: 3a40 cmpnei r2, 0 + 40e0: 0bfd bt 0x40da // 40da + 40e2: 07a6 br 0x402e // 402e + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 40e4: 9347 ld.w r2, (r3, 0x1c) + 40e6: 3108 movi r1, 8 + 40e8: 6884 and r2, r1 + 40ea: 3a40 cmpnei r2, 0 + 40ec: 0b99 bt 0x401e // 401e + 40ee: 07a0 br 0x402e // 402e + 40f0: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000040f4 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 40f4: 1460 nie + 40f6: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 40f8: 1073 lrw r3, 0x2000002c // 4144 + 40fa: 3104 movi r1, 4 + 40fc: 9360 ld.w r3, (r3, 0x0) + 40fe: 9349 ld.w r2, (r3, 0x24) + 4100: 6884 and r2, r1 + 4102: 3a40 cmpnei r2, 0 + 4104: 0c02 bf 0x4108 // 4108 + { + SIO0->ICR=0X04; + 4106: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 4108: 9349 ld.w r2, (r3, 0x24) + 410a: 3101 movi r1, 1 + 410c: 6884 and r2, r1 + 410e: 3a40 cmpnei r2, 0 + 4110: 0c02 bf 0x4114 // 4114 + { + SIO0->ICR=0X01; + 4112: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 4114: 9349 ld.w r2, (r3, 0x24) + 4116: 3102 movi r1, 2 + 4118: 6884 and r2, r1 + 411a: 3a40 cmpnei r2, 0 + 411c: 0c03 bf 0x4122 // 4122 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 411e: b32b st.w r1, (r3, 0x2c) + } +} + 4120: 0410 br 0x4140 // 4140 + else if(SIO0->MISR&0X08) //RXBUFFULL + 4122: 9349 ld.w r2, (r3, 0x24) + 4124: 3108 movi r1, 8 + 4126: 6884 and r2, r1 + 4128: 3a40 cmpnei r2, 0 + 412a: 0bfa bt 0x411e // 411e + else if(SIO0->MISR&0X010) //BREAK + 412c: 9349 ld.w r2, (r3, 0x24) + 412e: 3110 movi r1, 16 + 4130: 6884 and r2, r1 + 4132: 3a40 cmpnei r2, 0 + 4134: 0bf5 bt 0x411e // 411e + else if(SIO0->MISR&0X020) //TIMEOUT + 4136: 9349 ld.w r2, (r3, 0x24) + 4138: 3120 movi r1, 32 + 413a: 6884 and r2, r1 + 413c: 3a40 cmpnei r2, 0 + 413e: 0bf0 bt 0x411e // 411e +} + 4140: 1463 ipop + 4142: 1461 nir + 4144: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00004148 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 4148: 1460 nie + 414a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 414c: 106a lrw r3, 0x2000005c // 4174 + 414e: 3101 movi r1, 1 + 4150: 9360 ld.w r3, (r3, 0x0) + 4152: 237f addi r3, 128 + 4154: 934c ld.w r2, (r3, 0x30) + 4156: 6884 and r2, r1 + 4158: 3a40 cmpnei r2, 0 + 415a: 0c04 bf 0x4162 // 4162 + { + SYSCON->EXICR = EXI_PIN0; + 415c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 415e: 1463 ipop + 4160: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 4162: 3280 movi r2, 128 + 4164: 932c ld.w r1, (r3, 0x30) + 4166: 4249 lsli r2, r2, 9 + 4168: 6848 and r1, r2 + 416a: 3940 cmpnei r1, 0 + 416c: 0ff9 bf 0x415e // 415e + SYSCON->EXICR = EXI_PIN16; + 416e: b34b st.w r2, (r3, 0x2c) +} + 4170: 07f7 br 0x415e // 415e + 4172: 0000 bkpt + 4174: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00004178 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 4178: 1460 nie + 417a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 417c: 106a lrw r3, 0x2000005c // 41a4 + 417e: 3102 movi r1, 2 + 4180: 9360 ld.w r3, (r3, 0x0) + 4182: 237f addi r3, 128 + 4184: 934c ld.w r2, (r3, 0x30) + 4186: 6884 and r2, r1 + 4188: 3a40 cmpnei r2, 0 + 418a: 0c04 bf 0x4192 // 4192 + { + SYSCON->EXICR = EXI_PIN1; + 418c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 418e: 1463 ipop + 4190: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 4192: 3280 movi r2, 128 + 4194: 932c ld.w r1, (r3, 0x30) + 4196: 424a lsli r2, r2, 10 + 4198: 6848 and r1, r2 + 419a: 3940 cmpnei r1, 0 + 419c: 0ff9 bf 0x418e // 418e + SYSCON->EXICR = EXI_PIN17; + 419e: b34b st.w r2, (r3, 0x2c) +} + 41a0: 07f7 br 0x418e // 418e + 41a2: 0000 bkpt + 41a4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000041a8 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 41a8: 1460 nie + 41aa: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 41ac: 1070 lrw r3, 0x2000005c // 41ec + 41ae: 3104 movi r1, 4 + 41b0: 9360 ld.w r3, (r3, 0x0) + 41b2: 237f addi r3, 128 + 41b4: 934c ld.w r2, (r3, 0x30) + 41b6: 6884 and r2, r1 + 41b8: 3a40 cmpnei r2, 0 + 41ba: 0c04 bf 0x41c2 // 41c2 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 41bc: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 41be: 1463 ipop + 41c0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 41c2: 934c ld.w r2, (r3, 0x30) + 41c4: 3108 movi r1, 8 + 41c6: 6884 and r2, r1 + 41c8: 3a40 cmpnei r2, 0 + 41ca: 0bf9 bt 0x41bc // 41bc + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 41cc: 3280 movi r2, 128 + 41ce: 932c ld.w r1, (r3, 0x30) + 41d0: 424b lsli r2, r2, 11 + 41d2: 6848 and r1, r2 + 41d4: 3940 cmpnei r1, 0 + 41d6: 0c03 bf 0x41dc // 41dc + SYSCON->EXICR = EXI_PIN19; + 41d8: b34b st.w r2, (r3, 0x2c) +} + 41da: 07f2 br 0x41be // 41be + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 41dc: 3280 movi r2, 128 + 41de: 932c ld.w r1, (r3, 0x30) + 41e0: 424c lsli r2, r2, 12 + 41e2: 6848 and r1, r2 + 41e4: 3940 cmpnei r1, 0 + 41e6: 0bf9 bt 0x41d8 // 41d8 + 41e8: 07eb br 0x41be // 41be + 41ea: 0000 bkpt + 41ec: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000041f0 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 41f0: 1460 nie + 41f2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 41f4: 1075 lrw r3, 0x2000005c // 4248 + 41f6: 3280 movi r2, 128 + 41f8: 9360 ld.w r3, (r3, 0x0) + 41fa: 60c8 addu r3, r2 + 41fc: 932c ld.w r1, (r3, 0x30) + 41fe: 3010 movi r0, 16 + 4200: 6840 and r1, r0 + 4202: 3940 cmpnei r1, 0 + 4204: 0c04 bf 0x420c // 420c + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 4206: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 4208: 1463 ipop + 420a: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 420c: 932c ld.w r1, (r3, 0x30) + 420e: 3020 movi r0, 32 + 4210: 6840 and r1, r0 + 4212: 3940 cmpnei r1, 0 + 4214: 0bf9 bt 0x4206 // 4206 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 4216: 932c ld.w r1, (r3, 0x30) + 4218: 3040 movi r0, 64 + 421a: 6840 and r1, r0 + 421c: 3940 cmpnei r1, 0 + 421e: 0bf4 bt 0x4206 // 4206 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 4220: 932c ld.w r1, (r3, 0x30) + 4222: 6848 and r1, r2 + 4224: 3940 cmpnei r1, 0 + 4226: 0c03 bf 0x422c // 422c + SYSCON->EXICR = EXI_PIN9; + 4228: b34b st.w r2, (r3, 0x2c) +} + 422a: 07ef br 0x4208 // 4208 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 422c: 3280 movi r2, 128 + 422e: 932c ld.w r1, (r3, 0x30) + 4230: 4241 lsli r2, r2, 1 + 4232: 6848 and r1, r2 + 4234: 3940 cmpnei r1, 0 + 4236: 0bf9 bt 0x4228 // 4228 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 4238: 3280 movi r2, 128 + 423a: 932c ld.w r1, (r3, 0x30) + 423c: 4242 lsli r2, r2, 2 + 423e: 6848 and r1, r2 + 4240: 3940 cmpnei r1, 0 + 4242: 0bf3 bt 0x4228 // 4228 + 4244: 07e2 br 0x4208 // 4208 + 4246: 0000 bkpt + 4248: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +0000424c : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 424c: 1460 nie + 424e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 4250: 1076 lrw r3, 0x2000005c // 42a8 + 4252: 3280 movi r2, 128 + 4254: 9360 ld.w r3, (r3, 0x0) + 4256: 237f addi r3, 128 + 4258: 932c ld.w r1, (r3, 0x30) + 425a: 4243 lsli r2, r2, 3 + 425c: 6848 and r1, r2 + 425e: 3940 cmpnei r1, 0 + 4260: 0c03 bf 0x4266 // 4266 + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 4262: b34b st.w r2, (r3, 0x2c) + } +} + 4264: 041f br 0x42a2 // 42a2 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 4266: 3280 movi r2, 128 + 4268: 932c ld.w r1, (r3, 0x30) + 426a: 4244 lsli r2, r2, 4 + 426c: 6848 and r1, r2 + 426e: 3940 cmpnei r1, 0 + 4270: 0bf9 bt 0x4262 // 4262 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 4272: 3280 movi r2, 128 + 4274: 932c ld.w r1, (r3, 0x30) + 4276: 4245 lsli r2, r2, 5 + 4278: 6848 and r1, r2 + 427a: 3940 cmpnei r1, 0 + 427c: 0bf3 bt 0x4262 // 4262 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 427e: 3280 movi r2, 128 + 4280: 932c ld.w r1, (r3, 0x30) + 4282: 4246 lsli r2, r2, 6 + 4284: 6848 and r1, r2 + 4286: 3940 cmpnei r1, 0 + 4288: 0bed bt 0x4262 // 4262 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 428a: 3280 movi r2, 128 + 428c: 932c ld.w r1, (r3, 0x30) + 428e: 4247 lsli r2, r2, 7 + 4290: 6848 and r1, r2 + 4292: 3940 cmpnei r1, 0 + 4294: 0be7 bt 0x4262 // 4262 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 4296: 3280 movi r2, 128 + 4298: 932c ld.w r1, (r3, 0x30) + 429a: 4248 lsli r2, r2, 8 + 429c: 6848 and r1, r2 + 429e: 3940 cmpnei r1, 0 + 42a0: 0be1 bt 0x4262 // 4262 +} + 42a2: 1463 ipop + 42a4: 1461 nir + 42a6: 0000 bkpt + 42a8: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000042ac : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 42ac: 1460 nie + 42ae: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 42b0: 106b lrw r3, 0x20000014 // 42dc + 42b2: 3101 movi r1, 1 + 42b4: 9360 ld.w r3, (r3, 0x0) + 42b6: 934e ld.w r2, (r3, 0x38) + 42b8: 6884 and r2, r1 + 42ba: 3a40 cmpnei r2, 0 + 42bc: 0c03 bf 0x42c2 // 42c2 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 42be: b330 st.w r1, (r3, 0x40) + } +} + 42c0: 040b br 0x42d6 // 42d6 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 42c2: 934e ld.w r2, (r3, 0x38) + 42c4: 3102 movi r1, 2 + 42c6: 6884 and r2, r1 + 42c8: 3a40 cmpnei r2, 0 + 42ca: 0bfa bt 0x42be // 42be + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 42cc: 934e ld.w r2, (r3, 0x38) + 42ce: 3104 movi r1, 4 + 42d0: 6884 and r2, r1 + 42d2: 3a40 cmpnei r2, 0 + 42d4: 0bf5 bt 0x42be // 42be +} + 42d6: 1463 ipop + 42d8: 1461 nir + 42da: 0000 bkpt + 42dc: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +000042e0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 42e0: 1460 nie + 42e2: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 42e4: 1071 lrw r3, 0x2000000c // 4328 + 42e6: 3101 movi r1, 1 + 42e8: 9360 ld.w r3, (r3, 0x0) + 42ea: 934c ld.w r2, (r3, 0x30) + 42ec: 6884 and r2, r1 + 42ee: 3a40 cmpnei r2, 0 + 42f0: 0c0a bf 0x4304 // 4304 + { + BT0->ICR = BT_PEND; + 42f2: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 42f4: 9341 ld.w r2, (r3, 0x4) + 42f6: 3a86 bclri r2, 6 + 42f8: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 42fa: 9340 ld.w r2, (r3, 0x0) + 42fc: 3200 movi r2, 0 + 42fe: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 4300: 1463 ipop + 4302: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 4304: 934c ld.w r2, (r3, 0x30) + 4306: 3102 movi r1, 2 + 4308: 6884 and r2, r1 + 430a: 3a40 cmpnei r2, 0 + 430c: 0c03 bf 0x4312 // 4312 + BT0->ICR = BT_EVTRG; + 430e: b32d st.w r1, (r3, 0x34) +} + 4310: 07f8 br 0x4300 // 4300 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 4312: 934c ld.w r2, (r3, 0x30) + 4314: 3104 movi r1, 4 + 4316: 6884 and r2, r1 + 4318: 3a40 cmpnei r2, 0 + 431a: 0bfa bt 0x430e // 430e + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 431c: 934c ld.w r2, (r3, 0x30) + 431e: 3108 movi r1, 8 + 4320: 6884 and r2, r1 + 4322: 3a40 cmpnei r2, 0 + 4324: 0bf5 bt 0x430e // 430e + 4326: 07ed br 0x4300 // 4300 + 4328: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +0000432c : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 432c: 1460 nie + 432e: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 4330: 1076 lrw r3, 0x20000008 // 4388 + 4332: 3101 movi r1, 1 + 4334: 9360 ld.w r3, (r3, 0x0) + 4336: 934c ld.w r2, (r3, 0x30) + 4338: 6884 and r2, r1 + 433a: 3a40 cmpnei r2, 0 + 433c: 0c03 bf 0x4342 // 4342 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 433e: b32d st.w r1, (r3, 0x34) + } +} + 4340: 0416 br 0x436c // 436c + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 4342: 934c ld.w r2, (r3, 0x30) + 4344: 3102 movi r1, 2 + 4346: 6884 and r2, r1 + 4348: 3a40 cmpnei r2, 0 + 434a: 0c13 bf 0x4370 // 4370 + BT1->ICR = BT_CMP; + 434c: b32d st.w r1, (r3, 0x34) + NUM++; + 434e: 1070 lrw r3, 0x200000b0 // 438c + 4350: 8340 ld.b r2, (r3, 0x0) + 4352: 2200 addi r2, 1 + 4354: 7488 zextb r2, r2 + SysTick_100us++; + 4356: 9321 ld.w r1, (r3, 0x4) + 4358: 2100 addi r1, 1 + if(NUM >= 10){ + 435a: 3a09 cmphsi r2, 10 + NUM++; + 435c: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 435e: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 4360: 0c06 bf 0x436c // 436c + NUM = 0; + 4362: 3200 movi r2, 0 + 4364: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 4366: 9342 ld.w r2, (r3, 0x8) + 4368: 2200 addi r2, 1 + 436a: b342 st.w r2, (r3, 0x8) +} + 436c: 1463 ipop + 436e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 4370: 934c ld.w r2, (r3, 0x30) + 4372: 3104 movi r1, 4 + 4374: 6884 and r2, r1 + 4376: 3a40 cmpnei r2, 0 + 4378: 0be3 bt 0x433e // 433e + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 437a: 934c ld.w r2, (r3, 0x30) + 437c: 3108 movi r1, 8 + 437e: 6884 and r2, r1 + 4380: 3a40 cmpnei r2, 0 + 4382: 0bde bt 0x433e // 433e + 4384: 07f4 br 0x436c // 436c + 4386: 0000 bkpt + 4388: 20000008 .long 0x20000008 + 438c: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +00004390 : + 4390: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00004392 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 4392: 1460 nie + 4394: 1462 ipush + // ISR content ... + +} + 4396: 1463 ipop + 4398: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000439a : + 439a: 1460 nie + 439c: 1462 ipush + 439e: 1463 ipop + 43a0: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000043a2 : + 43a2: 1460 nie + 43a4: 1462 ipush + 43a6: 1463 ipop + 43a8: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000043aa : + 43aa: 1460 nie + 43ac: 1462 ipush + 43ae: 1463 ipop + 43b0: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000043b2 : + 43b2: 1460 nie + 43b4: 1462 ipush + 43b6: 1463 ipop + 43b8: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000043ba : + 43ba: 1460 nie + 43bc: 1462 ipush + 43be: 1463 ipop + 43c0: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000043c2 : + 43c2: 1460 nie + 43c4: 1462 ipush + 43c6: 1463 ipop + 43c8: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000043ca : + 43ca: 1460 nie + 43cc: 1462 ipush + 43ce: 1463 ipop + 43d0: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000043d2 : + 43d2: 1460 nie + 43d4: 1462 ipush + 43d6: 1463 ipop + 43d8: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000043da : + 43da: 1460 nie + 43dc: 1462 ipush + 43de: 1463 ipop + 43e0: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +000043e2 : + 43e2: 1460 nie + 43e4: 1462 ipush + 43e6: 1463 ipop + 43e8: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +000043ea : + 43ea: 1460 nie + 43ec: 1462 ipush + 43ee: 1463 ipop + 43f0: 1461 nir + +Disassembly of section .text.__divsi3: + +000043f4 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 43f4: 14c1 push r4 + int PSR; + __asm volatile( + 43f6: c0006023 mfcr r3, cr<0, 0> + 43fa: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 43fe: 1046 lrw r2, 0x20000000 // 4414 <__divsi3+0x20> + 4400: 3400 movi r4, 0 + 4402: 9240 ld.w r2, (r2, 0x0) + 4404: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4406: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4408: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 440a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 440c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4410: 9202 ld.w r0, (r2, 0x8) +} + 4412: 1481 pop r4 + 4414: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00004418 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 4418: 14c1 push r4 + int PSR; + __asm volatile( + 441a: c0006023 mfcr r3, cr<0, 0> + 441e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 4422: 1046 lrw r2, 0x20000000 // 4438 <__udivsi3+0x20> + 4424: 3401 movi r4, 1 + 4426: 9240 ld.w r2, (r2, 0x0) + 4428: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 442a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 442c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 442e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4430: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 4434: 9202 ld.w r0, (r2, 0x8) +} + 4436: 1481 pop r4 + 4438: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +0000443c <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 443c: 14c1 push r4 + int PSR; + __asm volatile( + 443e: c0006023 mfcr r3, cr<0, 0> + 4442: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 4446: 1046 lrw r2, 0x20000000 // 445c <__modsi3+0x20> + 4448: 3400 movi r4, 0 + 444a: 9240 ld.w r2, (r2, 0x0) + 444c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 444e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4450: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4452: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4454: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 4458: 9203 ld.w r0, (r2, 0xc) +} + 445a: 1481 pop r4 + 445c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00004460 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 4460: 14c1 push r4 + int PSR; + __asm volatile( + 4462: c0006023 mfcr r3, cr<0, 0> + 4466: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 446a: 1046 lrw r2, 0x20000000 // 4480 <__umodsi3+0x20> + 446c: 3401 movi r4, 1 + 446e: 9240 ld.w r2, (r2, 0x0) + 4470: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 4472: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 4474: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 4476: b221 st.w r1, (r2, 0x4) + __asm volatile( + 4478: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 447c: 9203 ld.w r0, (r2, 0xc) +} + 447e: 1481 pop r4 + 4480: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00004484 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 4484: c1807420 psrset ee, ie +} + 4488: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +0000448c : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 448c: 14d1 push r4, r15 + switch(uart_id){ + 448e: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 4490: 6d07 mov r4, r1 + switch(uart_id){ + 4492: 0c1a bf 0x44c6 // 44c6 + 4494: 3840 cmpnei r0, 0 + 4496: 0c04 bf 0x449e // 449e + 4498: 3842 cmpnei r0, 2 + 449a: 0c2a bf 0x44ee // 44ee + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 449c: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 449e: e3fff8d9 bsr 0x3650 // 3650 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 44a2: 118a lrw r4, 0x20000040 // 4548 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 44a4: 3100 movi r1, 0 + 44a6: 3000 movi r0, 0 + 44a8: e3fff914 bsr 0x36d0 // 36d0 + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 44ac: 9400 ld.w r0, (r4, 0x0) + 44ae: 3200 movi r2, 0 + 44b0: 1127 lrw r1, 0x2710 // 454c + 44b2: e3fff985 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 44b6: 9400 ld.w r0, (r4, 0x0) + 44b8: 3200 movi r2, 0 + 44ba: 1125 lrw r1, 0x2710 // 454c + 44bc: e3fff988 bsr 0x37cc // 37cc + UART0_Int_Enable(); + 44c0: e3fff8ec bsr 0x3698 // 3698 + break; + 44c4: 07ec br 0x449c // 449c + UART1_DeInit(); //clear all UART Register + 44c6: e3fff8d1 bsr 0x3668 // 3668 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 44ca: 3102 movi r1, 2 + 44cc: 3001 movi r0, 1 + 44ce: e3fff901 bsr 0x36d0 // 36d0 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 44d2: 1180 lrw r4, 0x2000003c // 4550 + 44d4: 31d0 movi r1, 208 + 44d6: 9400 ld.w r0, (r4, 0x0) + 44d8: 3200 movi r2, 0 + 44da: 4121 lsli r1, r1, 1 + 44dc: e3fff970 bsr 0x37bc // 37bc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44e0: 31d0 movi r1, 208 + 44e2: 9400 ld.w r0, (r4, 0x0) + 44e4: 3200 movi r2, 0 + 44e6: 4121 lsli r1, r1, 1 + 44e8: e3fff972 bsr 0x37cc // 37cc + break; + 44ec: 07d8 br 0x449c // 449c + UART2_DeInit(); //clear all UART Register + 44ee: e3fff8c9 bsr 0x3680 // 3680 + UART_IO_Init(IO_UART2,2); //use PA0.13->RXD1, PB0.0->TXD1 + 44f2: 3102 movi r1, 2 + 44f4: 3002 movi r0, 2 + 44f6: e3fff8ed bsr 0x36d0 // 36d0 + UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 44fa: 1077 lrw r3, 0x20000038 // 4554 + 44fc: 31d0 movi r1, 208 + 44fe: 9300 ld.w r0, (r3, 0x0) + 4500: 3200 movi r2, 0 + 4502: 4121 lsli r1, r1, 1 + 4504: e3fff964 bsr 0x37cc // 37cc + UART2_Int_Enable(); + 4508: e3fff8d6 bsr 0x36b4 // 36b4 + memset(&g_uart,0,sizeof(UART_t)); + 450c: 3273 movi r2, 115 + 450e: 3100 movi r1, 0 + 4510: 1012 lrw r0, 0x200003b4 // 4558 + 4512: e3ffea85 bsr 0x1a1c // 1a1c <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 4516: 1072 lrw r3, 0x2000041b // 455c + 4518: 3203 movi r2, 3 + 451a: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 451c: 4c48 lsri r2, r4, 8 + 451e: a388 st.b r4, (r3, 0x8) + 4520: a349 st.b r2, (r3, 0x9) + 4522: 4c50 lsri r2, r4, 16 + 4524: 4c98 lsri r4, r4, 24 + 4526: a38b st.b r4, (r3, 0xb) + 4528: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 452a: 3103 movi r1, 3 + 452c: 108d lrw r4, 0x20000048 // 4560 + 452e: 3200 movi r2, 0 + 4530: 9400 ld.w r0, (r4, 0x0) + 4532: e3fff68d bsr 0x324c // 324c + GPIO_DriveStrength_EN(GPIOB0,3); + 4536: 9400 ld.w r0, (r4, 0x0) + 4538: 3103 movi r1, 3 + 453a: e3fff703 bsr 0x3340 // 3340 + GPIO_Write_Low(GPIOB0,3); + 453e: 9400 ld.w r0, (r4, 0x0) + 4540: 3103 movi r1, 3 + 4542: e3fff70a bsr 0x3356 // 3356 +} + 4546: 07ab br 0x449c // 449c + 4548: 20000040 .long 0x20000040 + 454c: 00002710 .long 0x00002710 + 4550: 2000003c .long 0x2000003c + 4554: 20000038 .long 0x20000038 + 4558: 200003b4 .long 0x200003b4 + 455c: 2000041b .long 0x2000041b + 4560: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00004564 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 4564: 14c2 push r4-r5 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 4566: 1075 lrw r3, 0x20000414 // 45b8 + 4568: 8346 ld.b r2, (r3, 0x6) + 456a: 8325 ld.b r1, (r3, 0x5) + 456c: 4248 lsli r2, r2, 8 + 456e: 6c84 or r2, r1 + 4570: 3162 movi r1, 98 + 4572: 10b3 lrw r5, 0x200003b4 // 45bc + 4574: 3440 movi r4, 64 + 4576: 6485 cmplt r1, r2 + 4578: 6114 addu r4, r5 + 457a: 0c06 bf 0x4586 // 4586 + 457c: 3225 movi r2, 37 + 457e: 6090 addu r2, r4 + 4580: 3100 movi r1, 0 + 4582: a220 st.b r1, (r2, 0x0) + 4584: a221 st.b r1, (r2, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 4586: 8346 ld.b r2, (r3, 0x6) + 4588: 8325 ld.b r1, (r3, 0x5) + 458a: 4248 lsli r2, r2, 8 + 458c: 6c84 or r2, r1 + 458e: 5a22 addi r1, r2, 1 + 4590: 6094 addu r2, r5 + 4592: a200 st.b r0, (r2, 0x0) + 4594: 2424 addi r4, 37 + 4596: 7445 zexth r1, r1 + + g_uart.RecvIdleTiming = SysTick_1ms; + 4598: 104a lrw r2, 0x200000b8 // 45c0 + 459a: 9240 ld.w r2, (r2, 0x0) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 459c: a420 st.b r1, (r4, 0x0) + 459e: 4928 lsri r1, r1, 8 + g_uart.RecvIdleTiming = SysTick_1ms; + 45a0: 4a08 lsri r0, r2, 8 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 45a2: a421 st.b r1, (r4, 0x1) + g_uart.RecvIdleTiming = SysTick_1ms; + 45a4: 1028 lrw r1, 0x2000041f // 45c4 + 45a6: a140 st.b r2, (r1, 0x0) + 45a8: a101 st.b r0, (r1, 0x1) + 45aa: 4a10 lsri r0, r2, 16 + 45ac: 4a58 lsri r2, r2, 24 + 45ae: a143 st.b r2, (r1, 0x3) + g_uart.Receiving = 0x01; + 45b0: 3201 movi r2, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 45b2: a102 st.b r0, (r1, 0x2) + g_uart.Receiving = 0x01; + 45b4: a344 st.b r2, (r3, 0x4) +} + 45b6: 1482 pop r4-r5 + 45b8: 20000414 .long 0x20000414 + 45bc: 200003b4 .long 0x200003b4 + 45c0: 200000b8 .long 0x200000b8 + 45c4: 2000041f .long 0x2000041f + +Disassembly of section .text.Dbg_Println: + +000045c8 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 45c8: 1423 subi r14, r14, 12 + 45ca: b862 st.w r3, (r14, 0x8) + 45cc: b841 st.w r2, (r14, 0x4) + 45ce: b820 st.w r1, (r14, 0x0) + 45d0: 14d2 push r4-r5, r15 + 45d2: 1422 subi r14, r14, 8 + 45d4: 9865 ld.w r3, (r14, 0x14) + 45d6: b861 st.w r3, (r14, 0x4) + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 45d8: 3301 movi r3, 1 + 45da: 105c lrw r2, 0x20000068 // 4648 + 45dc: 70c0 lsl r3, r0 + 45de: 9240 ld.w r2, (r2, 0x0) + 45e0: 68c8 and r3, r2 + 45e2: 3b40 cmpnei r3, 0 + 45e4: 0c2b bf 0x463a // 463a + SysTick_Now = SysTick_1ms; + 45e6: 109a lrw r4, 0x200000bc // 464c + 45e8: 107a lrw r3, 0x200000b8 // 4650 + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45ea: 9445 ld.w r2, (r4, 0x14) + SysTick_Now = SysTick_1ms; + 45ec: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45ee: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 45f0: b464 st.w r3, (r4, 0x10) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 45f2: b446 st.w r2, (r4, 0x18) + SysTick_Last = SysTick_Now; + 45f4: b465 st.w r3, (r4, 0x14) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 45f6: 3180 movi r1, 128 + 45f8: 301c movi r0, 28 + 45fa: b840 st.w r2, (r14, 0x0) + 45fc: 4122 lsli r1, r1, 2 + 45fe: 1056 lrw r2, 0x623b // 4654 + 4600: 6010 addu r0, r4 + 4602: e3ffe9b1 bsr 0x1964 // 1964 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 4606: 10b5 lrw r5, 0x20000038 // 4658 + 4608: 311c movi r1, 28 + 460a: 7481 zexth r2, r0 + 460c: 6050 addu r1, r4 + 460e: 9500 ld.w r0, (r5, 0x0) + 4610: e3fff8e6 bsr 0x37dc // 37dc + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + 4614: 3180 movi r1, 128 + 4616: 301c movi r0, 28 + 4618: 1b06 addi r3, r14, 24 + 461a: 9841 ld.w r2, (r14, 0x4) + 461c: 4122 lsli r1, r1, 2 + 461e: 6010 addu r0, r4 + 4620: e3ffe9d1 bsr 0x19c2 // 19c2 <__cskyvprintfvsnprintf> + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + 4624: 6c53 mov r1, r4 + 4626: 7481 zexth r2, r0 + 4628: 211b addi r1, 28 + 462a: 9500 ld.w r0, (r5, 0x0) + 462c: e3fff8d8 bsr 0x37dc // 37dc + + DBG_Printf("\r\n",2); + 4630: 9500 ld.w r0, (r5, 0x0) + 4632: 3202 movi r2, 2 + 4634: 102a lrw r1, 0x6249 // 465c + 4636: e3fff8d3 bsr 0x37dc // 37dc + + + } + +#endif +} + 463a: 1402 addi r14, r14, 8 + 463c: d9ee2002 ld.w r15, (r14, 0x8) + 4640: 98a1 ld.w r5, (r14, 0x4) + 4642: 9880 ld.w r4, (r14, 0x0) + 4644: 1406 addi r14, r14, 24 + 4646: 783c jmp r15 + 4648: 20000068 .long 0x20000068 + 464c: 200000bc .long 0x200000bc + 4650: 200000b8 .long 0x200000b8 + 4654: 0000623b .long 0x0000623b + 4658: 20000038 .long 0x20000038 + 465c: 00006249 .long 0x00006249 + +Disassembly of section .text.Dbg_Print_Buff: + +00004660 : + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ + 4660: 14d4 push r4-r7, r15 + 4662: 1423 subi r14, r14, 12 + 4664: 6dcb mov r7, r2 + 4666: b861 st.w r3, (r14, 0x4) +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + 4668: 3301 movi r3, 1 + 466a: 105e lrw r2, 0x20000068 // 46e0 + 466c: 70c0 lsl r3, r0 + 466e: 9240 ld.w r2, (r2, 0x0) + 4670: 68c8 and r3, r2 + 4672: 3b40 cmpnei r3, 0 + 4674: 0c25 bf 0x46be // 46be + SysTick_Now = SysTick_1ms; + 4676: 109c lrw r4, 0x200000bc // 46e4 + 4678: 107c lrw r3, 0x200000b8 // 46e8 + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 467a: 9445 ld.w r2, (r4, 0x14) + SysTick_Now = SysTick_1ms; + 467c: 9360 ld.w r3, (r3, 0x0) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 467e: 5b49 subu r2, r3, r2 + SysTick_Now = SysTick_1ms; + 4680: b464 st.w r3, (r4, 0x10) + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + 4682: b446 st.w r2, (r4, 0x18) + SysTick_Last = SysTick_Now; + 4684: b465 st.w r3, (r4, 0x14) + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + 4686: 3180 movi r1, 128 + 4688: 301c movi r0, 28 + 468a: b840 st.w r2, (r14, 0x0) + 468c: 4122 lsli r1, r1, 2 + 468e: 1058 lrw r2, 0x623b // 46ec + 4690: 6010 addu r0, r4 + 4692: e3ffe969 bsr 0x1964 // 1964 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 4696: 10b7 lrw r5, 0x20000038 // 46f0 + 4698: 311c movi r1, 28 + 469a: 7481 zexth r2, r0 + 469c: 6050 addu r1, r4 + 469e: 9500 ld.w r0, (r5, 0x0) + 46a0: e3fff89e bsr 0x37dc // 37dc + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 46a4: 1074 lrw r3, 0x624c // 46f4 + DBG_Printf(Dbg_Buffer,str_offset); + 46a6: 6d9f mov r6, r7 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 46a8: b862 st.w r3, (r14, 0x8) + 46aa: 241b addi r4, 28 + for (uint32_t i = 0; i < len; i++) { + 46ac: 5e7d subu r3, r6, r7 + 46ae: 9841 ld.w r2, (r14, 0x4) + 46b0: 648c cmphs r3, r2 + 46b2: 0c08 bf 0x46c2 // 46c2 + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + 46b4: 9500 ld.w r0, (r5, 0x0) + 46b6: 3202 movi r2, 2 + 46b8: 1030 lrw r1, 0x6249 // 46f8 + 46ba: e3fff891 bsr 0x37dc // 37dc + } + +#endif +} + 46be: 1403 addi r14, r14, 12 + 46c0: 1494 pop r4-r7, r15 + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + 46c2: 3180 movi r1, 128 + 46c4: 8660 ld.b r3, (r6, 0x0) + 46c6: 9842 ld.w r2, (r14, 0x8) + 46c8: 4122 lsli r1, r1, 2 + 46ca: 6c13 mov r0, r4 + 46cc: e3ffe94c bsr 0x1964 // 1964 <__cskyvprintfsnprintf> + DBG_Printf(Dbg_Buffer,str_offset); + 46d0: 7481 zexth r2, r0 + 46d2: 6c53 mov r1, r4 + 46d4: 9500 ld.w r0, (r5, 0x0) + 46d6: e3fff883 bsr 0x37dc // 37dc + 46da: 2600 addi r6, 1 + 46dc: 07e8 br 0x46ac // 46ac + 46de: 0000 bkpt + 46e0: 20000068 .long 0x20000068 + 46e4: 200000bc .long 0x200000bc + 46e8: 200000b8 .long 0x200000b8 + 46ec: 0000623b .long 0x0000623b + 46f0: 20000038 .long 0x20000038 + 46f4: 0000624c .long 0x0000624c + 46f8: 00006249 .long 0x00006249 + +Disassembly of section .text.UART2_TASK: + +000046fc : +void UART2_TASK(void){ + 46fc: 14d1 push r4, r15 + if(g_uart.Receiving == 0x01){ + 46fe: 1189 lrw r4, 0x20000414 // 47a0 + 4700: 8464 ld.b r3, (r4, 0x4) + 4702: 3b41 cmpnei r3, 1 + 4704: 084d bt 0x479e // 479e + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 4706: 844c ld.b r2, (r4, 0xc) + 4708: 846b ld.b r3, (r4, 0xb) + 470a: 4248 lsli r2, r2, 8 + 470c: 6c8c or r2, r3 + 470e: 846d ld.b r3, (r4, 0xd) + 4710: 4370 lsli r3, r3, 16 + 4712: 6c8c or r2, r3 + 4714: 846e ld.b r3, (r4, 0xe) + 4716: 1104 lrw r0, 0x200000b8 // 47a4 + 4718: 4378 lsli r3, r3, 24 + 471a: 6cc8 or r3, r2 + 471c: 9020 ld.w r1, (r0, 0x0) + 471e: 8448 ld.b r2, (r4, 0x8) + 4720: 604e subu r1, r3 + 4722: 4248 lsli r2, r2, 8 + 4724: 8467 ld.b r3, (r4, 0x7) + 4726: 6c8c or r2, r3 + 4728: 8469 ld.b r3, (r4, 0x9) + 472a: 4370 lsli r3, r3, 16 + 472c: 6c8c or r2, r3 + 472e: 846a ld.b r3, (r4, 0xa) + 4730: 4378 lsli r3, r3, 24 + 4732: 6cc8 or r3, r2 + 4734: 644c cmphs r3, r1 + 4736: 0834 bt 0x479e // 479e + g_uart.RecvIdleTiming = SysTick_1ms; + 4738: 9060 ld.w r3, (r0, 0x0) + 473a: 320b movi r2, 11 + 473c: 6090 addu r2, r4 + 473e: 4b28 lsri r1, r3, 8 + 4740: a260 st.b r3, (r2, 0x0) + 4742: a221 st.b r1, (r2, 0x1) + 4744: 4b30 lsri r1, r3, 16 + 4746: 4b78 lsri r3, r3, 24 + 4748: a222 st.b r1, (r2, 0x2) + 474a: a263 st.b r3, (r2, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS, "UART recv Len %d", g_uart.RecvLen); + 474c: 8446 ld.b r2, (r4, 0x6) + 474e: 8465 ld.b r3, (r4, 0x5) + 4750: 4248 lsli r2, r2, 8 + 4752: 6c8c or r2, r3 + 4754: 1035 lrw r1, 0x6252 // 47a8 + 4756: 3000 movi r0, 0 + 4758: e3ffff38 bsr 0x45c8 // 45c8 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART buff",g_uart.RecvBuffer,g_uart.RecvLen); + 475c: 8466 ld.b r3, (r4, 0x6) + 475e: 8445 ld.b r2, (r4, 0x5) + 4760: 4368 lsli r3, r3, 8 + 4762: 6cc8 or r3, r2 + 4764: 1032 lrw r1, 0x6263 // 47ac + 4766: 1053 lrw r2, 0x200003b4 // 47b0 + 4768: 3000 movi r0, 0 + 476a: e3ffff7b bsr 0x4660 // 4660 + if(g_uart.processing_cf != NULL){ + 476e: 8450 ld.b r2, (r4, 0x10) + 4770: 846f ld.b r3, (r4, 0xf) + 4772: 4248 lsli r2, r2, 8 + 4774: 6c8c or r2, r3 + 4776: 8471 ld.b r3, (r4, 0x11) + 4778: 4370 lsli r3, r3, 16 + 477a: 6c8c or r2, r3 + 477c: 8472 ld.b r3, (r4, 0x12) + 477e: 4378 lsli r3, r3, 24 + 4780: 6cc8 or r3, r2 + 4782: 3b40 cmpnei r3, 0 + 4784: 0c07 bf 0x4792 // 4792 + rev = g_uart.processing_cf(g_uart.RecvBuffer,g_uart.RecvLen); + 4786: 8426 ld.b r1, (r4, 0x6) + 4788: 8445 ld.b r2, (r4, 0x5) + 478a: 4128 lsli r1, r1, 8 + 478c: 6c48 or r1, r2 + 478e: 1009 lrw r0, 0x200003b4 // 47b0 + 4790: 7bcd jsr r3 + g_uart.RecvLen = 0; + 4792: 1069 lrw r3, 0x20000419 // 47b4 + 4794: 3200 movi r2, 0 + 4796: a340 st.b r2, (r3, 0x0) + 4798: a341 st.b r2, (r3, 0x1) + g_uart.Receiving = 0; + 479a: 3300 movi r3, 0 + 479c: a464 st.b r3, (r4, 0x4) +} + 479e: 1491 pop r4, r15 + 47a0: 20000414 .long 0x20000414 + 47a4: 200000b8 .long 0x200000b8 + 47a8: 00006252 .long 0x00006252 + 47ac: 00006263 .long 0x00006263 + 47b0: 200003b4 .long 0x200003b4 + 47b4: 20000419 .long 0x20000419 + +Disassembly of section .text.RC522_Delay: + +000047b8 : + * @brief 延时函数,纳秒级 + * @param ns 延时时间 + */ +void RC522_Delay(U32_T ns){ + U32_T i; + for (i = 0; i < ns; i++) { + 47b8: 3300 movi r3, 0 + 47ba: 640e cmpne r3, r0 + 47bc: 0802 bt 0x47c0 // 47c0 + nop; + //延时一个机器周期 + nop; + nop; + } +} + 47be: 783c jmp r15 + nop; + 47c0: 6c03 mov r0, r0 + nop; + 47c2: 6c03 mov r0, r0 + nop; + 47c4: 6c03 mov r0, r0 + for (i = 0; i < ns; i++) { + 47c6: 2300 addi r3, 1 + 47c8: 07f9 br 0x47ba // 47ba + +Disassembly of section .text.RC522_ReadWriteOneByte: + +000047cc : + * @brief 移植接口——SPI读写一个字节 + * @param tx_data:要写入的数据 + * @return 读取的数据 + */ +U8_T RC522_ReadWriteOneByte(U8_T tx_data) +{ + 47cc: 14d4 push r4-r7, r15 + 47ce: 6d83 mov r6, r0 + 47d0: 3508 movi r5, 8 +// delay_nus(1); +// rx_data = SPI0->DR; +// +// return (U8_T)(rx_data & 0xFF); + + U8_T rx_data=0; + 47d2: 3400 movi r4, 0 + U8_T i; + for(i=0;i<8;i++) + { + RC522_SCK_LOW; + 47d4: 10f2 lrw r7, 0x2000004c // 481c + 47d6: 3109 movi r1, 9 + 47d8: 9700 ld.w r0, (r7, 0x0) + 47da: e3fff5be bsr 0x3356 // 3356 + if(tx_data&0x80) RC522_MOSI_HIGH; + 47de: 74da sextb r3, r6 + 47e0: 3bdf btsti r3, 31 + 47e2: 310a movi r1, 10 + 47e4: 9700 ld.w r0, (r7, 0x0) + 47e6: 0c18 bf 0x4816 // 4816 + 47e8: e3fff5b3 bsr 0x334e // 334e + else RC522_MOSI_LOW; + tx_data<<=1; + RC522_SCK_HIGH; + 47ec: 3109 movi r1, 9 + 47ee: 9700 ld.w r0, (r7, 0x0) + 47f0: e3fff5af bsr 0x334e // 334e + rx_data<<=1; + if(RC522_MISO_Read) rx_data|=0x01; + 47f4: 310b movi r1, 11 + 47f6: 9700 ld.w r0, (r7, 0x0) + 47f8: e3fff5be bsr 0x3374 // 3374 + tx_data<<=1; + 47fc: 46c1 lsli r6, r6, 1 + rx_data<<=1; + 47fe: 4481 lsli r4, r4, 1 + if(RC522_MISO_Read) rx_data|=0x01; + 4800: 3840 cmpnei r0, 0 + tx_data<<=1; + 4802: 7598 zextb r6, r6 + rx_data<<=1; + 4804: 7510 zextb r4, r4 + if(RC522_MISO_Read) rx_data|=0x01; + 4806: 0c02 bf 0x480a // 480a + 4808: 3ca0 bseti r4, 0 + 480a: 2d00 subi r5, 1 + 480c: 7554 zextb r5, r5 + for(i=0;i<8;i++) + 480e: 3d40 cmpnei r5, 0 + 4810: 0be3 bt 0x47d6 // 47d6 + } + return rx_data; +} + 4812: 6c13 mov r0, r4 + 4814: 1494 pop r4-r7, r15 + else RC522_MOSI_LOW; + 4816: e3fff5a0 bsr 0x3356 // 3356 + 481a: 07e9 br 0x47ec // 47ec + 481c: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_ReadRawRC: + +00004820 : +{ + 4820: 14d2 push r4-r5, r15 + RC522_CS_LOW; //片选选中RC522 + 4822: 10ad lrw r5, 0x2000004c // 4854 + 4824: 310d movi r1, 13 +{ + 4826: 6d03 mov r4, r0 + RC522_CS_LOW; //片选选中RC522 + 4828: 9500 ld.w r0, (r5, 0x0) + 482a: e3fff596 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E)|0x80; + 482e: 4401 lsli r0, r4, 1 + 4830: 347e movi r4, 126 + 4832: 6810 and r0, r4 + 4834: 3400 movi r4, 0 + 4836: 2c7f subi r4, 128 + 4838: 6c10 or r0, r4 + RC522_ReadWriteOneByte(ucAddr); //发送命令 + 483a: 7400 zextb r0, r0 + 483c: e3ffffc8 bsr 0x47cc // 47cc + ucResult=RC522_ReadWriteOneByte(0); //读取RC522返回的数据 + 4840: 3000 movi r0, 0 + 4842: e3ffffc5 bsr 0x47cc // 47cc + 4846: 6d03 mov r4, r0 + RC522_CS_HIGH; //释放片选线(PF0) + 4848: 310d movi r1, 13 + 484a: 9500 ld.w r0, (r5, 0x0) + 484c: e3fff581 bsr 0x334e // 334e +} + 4850: 6c13 mov r0, r4 + 4852: 1492 pop r4-r5, r15 + 4854: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_WriteRawRC: + +00004858 : +{ + 4858: 14d3 push r4-r6, r15 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 485a: 10ab lrw r5, 0x2000004c // 4884 +{ + 485c: 6d87 mov r6, r1 + 485e: 6d03 mov r4, r0 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 4860: 310d movi r1, 13 + 4862: 9500 ld.w r0, (r5, 0x0) + 4864: e3fff579 bsr 0x3356 // 3356 + ucAddr=((Address<<1)&0x7E); + 4868: 4481 lsli r4, r4, 1 + 486a: 307e movi r0, 126 + RC522_ReadWriteOneByte(ucAddr); //SPI1发送一个字节 + 486c: 6810 and r0, r4 + 486e: e3ffffaf bsr 0x47cc // 47cc + RC522_ReadWriteOneByte(value); //SPI1发送一个字节 + 4872: 6c1b mov r0, r6 + 4874: e3ffffac bsr 0x47cc // 47cc + RC522_CS_HIGH; //PF1写1(SDA)(SPI1片选线) + 4878: 9500 ld.w r0, (r5, 0x0) + 487a: 310d movi r1, 13 + 487c: e3fff569 bsr 0x334e // 334e +} + 4880: 1493 pop r4-r6, r15 + 4882: 0000 bkpt + 4884: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_PcdReset: + +00004888 : +{ + 4888: 14d0 push r15 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 488a: 310f movi r1, 15 + 488c: 3001 movi r0, 1 + 488e: e3ffffe5 bsr 0x4858 // 4858 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 4892: 310f movi r1, 15 + 4894: 3001 movi r0, 1 + 4896: e3ffffe1 bsr 0x4858 // 4858 + RC522_Delay(10); + 489a: 300a movi r0, 10 + 489c: e3ffff8e bsr 0x47b8 // 47b8 + RC522_WriteRawRC(ModeReg,0x3D); //和Mifare卡通讯,CRC初始值0x6363 + 48a0: 313d movi r1, 61 + 48a2: 3011 movi r0, 17 + 48a4: e3ffffda bsr 0x4858 // 4858 + RC522_WriteRawRC(TReloadRegL,30); //写RC632寄存器 + 48a8: 311e movi r1, 30 + 48aa: 302d movi r0, 45 + 48ac: e3ffffd6 bsr 0x4858 // 4858 + RC522_WriteRawRC(TReloadRegH,0); + 48b0: 3100 movi r1, 0 + 48b2: 302c movi r0, 44 + 48b4: e3ffffd2 bsr 0x4858 // 4858 + RC522_WriteRawRC(TModeReg,0x8D); + 48b8: 318d movi r1, 141 + 48ba: 302a movi r0, 42 + 48bc: e3ffffce bsr 0x4858 // 4858 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 48c0: 313e movi r1, 62 + 48c2: 302b movi r0, 43 + 48c4: e3ffffca bsr 0x4858 // 4858 + RC522_WriteRawRC(TxAutoReg,0x40);//必须要 + 48c8: 3140 movi r1, 64 + 48ca: 3015 movi r0, 21 + 48cc: e3ffffc6 bsr 0x4858 // 4858 +} + 48d0: 3000 movi r0, 0 + 48d2: 1490 pop r15 + +Disassembly of section .text.RC522_SetBitMask: + +000048d4 : +{ + 48d4: 14d2 push r4-r5, r15 + 48d6: 6d47 mov r5, r1 + 48d8: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 48da: e3ffffa3 bsr 0x4820 // 4820 + RC522_WriteRawRC(reg,tmp|mask); //写RC632寄存器 + 48de: 6c43 mov r1, r0 + 48e0: 6c54 or r1, r5 + 48e2: 7444 zextb r1, r1 + 48e4: 6c13 mov r0, r4 + 48e6: e3ffffb9 bsr 0x4858 // 4858 +} + 48ea: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOn: + +000048ec : +{ + 48ec: 14d0 push r15 + i=RC522_ReadRawRC(TxControlReg); + 48ee: 3014 movi r0, 20 + 48f0: e3ffff98 bsr 0x4820 // 4820 + if(!(i&0x03)) + 48f4: 3303 movi r3, 3 + 48f6: 680c and r0, r3 + 48f8: 3840 cmpnei r0, 0 + 48fa: 0805 bt 0x4904 // 4904 + RC522_SetBitMask(TxControlReg,0x03); + 48fc: 3103 movi r1, 3 + 48fe: 3014 movi r0, 20 + 4900: e3ffffea bsr 0x48d4 // 48d4 +} + 4904: 1490 pop r15 + +Disassembly of section .text.RC522_ClearBitMask: + +00004906 : +{ + 4906: 14d2 push r4-r5, r15 + 4908: 6d47 mov r5, r1 + 490a: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 490c: e3ffff8a bsr 0x4820 // 4820 + RC522_WriteRawRC(reg,tmp&~mask); // clear bit mask + 4910: 6815 andn r0, r5 + 4912: 7440 zextb r1, r0 + 4914: 6c13 mov r0, r4 + 4916: e3ffffa1 bsr 0x4858 // 4858 +} + 491a: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOff: + +0000491c : +{ + 491c: 14d0 push r15 + RC522_ClearBitMask(TxControlReg,0x03); //清RC522寄存器位 + 491e: 3103 movi r1, 3 + 4920: 3014 movi r0, 20 + 4922: e3fffff2 bsr 0x4906 // 4906 +} + 4926: 1490 pop r15 + +Disassembly of section .text.RC522_Reset: + +00004928 : +void RC522_Reset(void){ + 4928: 14d1 push r4, r15 + RC522_RST_HIGH; //NRSTPD引脚高电平 + 492a: 1090 lrw r4, 0x2000004c // 4968 + 492c: 310c movi r1, 12 + 492e: 9400 ld.w r0, (r4, 0x0) + 4930: e3fff50f bsr 0x334e // 334e + RC522_Delay(1000); //大概时间为850us + 4934: 30fa movi r0, 250 + 4936: 4002 lsli r0, r0, 2 + 4938: e3ffff40 bsr 0x47b8 // 47b8 + RC522_RST_LOW; //Ci522掉电 + 493c: 310c movi r1, 12 + 493e: 9400 ld.w r0, (r4, 0x0) + 4940: e3fff50b bsr 0x3356 // 3356 + RC522_Delay(1000); //大概时间为850us + 4944: 30fa movi r0, 250 + 4946: 4002 lsli r0, r0, 2 + 4948: e3ffff38 bsr 0x47b8 // 47b8 + RC522_RST_HIGH; //NRSTPD引脚高电平 + 494c: 310c movi r1, 12 + 494e: 9400 ld.w r0, (r4, 0x0) + 4950: e3fff4ff bsr 0x334e // 334e + RC522_PcdReset(); //复位RC522 + 4954: e3ffff9a bsr 0x4888 // 4888 + RC522_PcdAntennaOff(); //关闭天线 + 4958: e3ffffe2 bsr 0x491c // 491c + RC522_Delay(2); //延时2毫秒 + 495c: 3002 movi r0, 2 + 495e: e3ffff2d bsr 0x47b8 // 47b8 + RC522_PcdAntennaOn(); //开启天线 + 4962: e3ffffc5 bsr 0x48ec // 48ec +} + 4966: 1491 pop r4, r15 + 4968: 2000004c .long 0x2000004c + +Disassembly of section .text.M500PcdConfigISOType.part.1: + +0000496c : +char M500PcdConfigISOType(U8_T type) + 496c: 14d0 push r15 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 496e: 3108 movi r1, 8 + 4970: 3008 movi r0, 8 + 4972: e3ffffca bsr 0x4906 // 4906 + RC522_SetBitMask(ComIEnReg,BIT7); + 4976: 3180 movi r1, 128 + 4978: 3002 movi r0, 2 + 497a: e3ffffad bsr 0x48d4 // 48d4 + RC522_WriteRawRC(ModeReg,0x3D); + 497e: 313d movi r1, 61 + 4980: 3011 movi r0, 17 + 4982: e3ffff6b bsr 0x4858 // 4858 + RC522_WriteRawRC(TxModeReg,0x00); //设定数据发送传输速率106kbits/s,定义帧格式为ISO/IEC 14443 A/Mifare + 4986: 3100 movi r1, 0 + 4988: 3012 movi r0, 18 + 498a: e3ffff67 bsr 0x4858 // 4858 + RC522_WriteRawRC(RxModeReg,0x00); //设定数据接收传输速率106kbits/s,定义帧格式为ISO/IEC 14443 A/Mifare + 498e: 3100 movi r1, 0 + 4990: 3013 movi r0, 19 + 4992: e3ffff63 bsr 0x4858 // 4858 + RC522_WriteRawRC(ModWidthReg,MODWIDTH); //调制宽度为reset值 + 4996: 3126 movi r1, 38 + 4998: 3024 movi r0, 36 + 499a: e3ffff5f bsr 0x4858 // 4858 + RC522_WriteRawRC(ModeReg,0x3D); //3D--CRC预设值为6363 + 499e: 313d movi r1, 61 + 49a0: 3011 movi r0, 17 + 49a2: e3ffff5b bsr 0x4858 // 4858 + RC522_WriteRawRC(RxThresholdReg,(MINLEVEL_A<<4) | COLLLEVEL_A); //选择位译码器的阈值 + 49a6: 3164 movi r1, 100 + 49a8: 3018 movi r0, 24 + 49aa: e3ffff57 bsr 0x4858 // 4858 + RC522_WriteRawRC(RFCfgReg,0x7F); // 接收增益 + 49ae: 317f movi r1, 127 + 49b0: 3026 movi r0, 38 + 49b2: e3ffff53 bsr 0x4858 // 4858 + RC522_WriteRawRC(TxAutoReg,0x40); //100%ASK传送 + 49b6: 3140 movi r1, 64 + 49b8: 3015 movi r0, 21 + 49ba: e3ffff4f bsr 0x4858 // 4858 + RC522_WriteRawRC(ControlReg,0x10); //接收的最后一个字节所有比特有效 + 49be: 3110 movi r1, 16 + 49c0: 300c movi r0, 12 + 49c2: e3ffff4b bsr 0x4858 // 4858 + RC522_WriteRawRC(TReloadRegL,0x64); //16bit定时器重载值(低位) + 49c6: 3164 movi r1, 100 + 49c8: 302d movi r0, 45 + 49ca: e3ffff47 bsr 0x4858 // 4858 + RC522_WriteRawRC(TReloadRegH,0); //16bit定时器重载值(高位) + 49ce: 3100 movi r1, 0 + 49d0: 302c movi r0, 44 + 49d2: e3ffff43 bsr 0x4858 // 4858 + RC522_WriteRawRC(TModeReg,0x8D); //预分频器开启自动定时器,向下计数,预分频与TPrescalerReg一起决定12bit + 49d6: 318d movi r1, 141 + 49d8: 302a movi r0, 42 + 49da: e3ffff3f bsr 0x4858 // 4858 + RC522_WriteRawRC(TPrescalerReg,0x3e); //12bit 1101 0011 1110 定时器频率2KHz*//* + 49de: 313e movi r1, 62 + 49e0: 302b movi r0, 43 + 49e2: e3ffff3b bsr 0x4858 // 4858 +} + 49e6: 3000 movi r0, 0 + 49e8: 1490 pop r15 + +Disassembly of section .text.RC522_Init: + +000049ec : +{ + 49ec: 14d1 push r4, r15 + nop; + 49ee: 6c03 mov r0, r0 + GPIO_Init(GPIOA0,9,Output); //SCK + 49f0: 118d lrw r4, 0x2000004c // 4aa4 + 49f2: 3200 movi r2, 0 + 49f4: 9400 ld.w r0, (r4, 0x0) + 49f6: 3109 movi r1, 9 + 49f8: e3fff42a bsr 0x324c // 324c + GPIO_Init(GPIOA0,10,Output); //MOSI + 49fc: 3200 movi r2, 0 + 49fe: 9400 ld.w r0, (r4, 0x0) + 4a00: 310a movi r1, 10 + 4a02: e3fff425 bsr 0x324c // 324c + GPIO_PullHigh_Init(GPIOA0,11); + 4a06: 9400 ld.w r0, (r4, 0x0) + 4a08: 310b movi r1, 11 + 4a0a: e3fff491 bsr 0x332c // 332c + GPIO_Init(GPIOA0,11,Intput); //MISO + 4a0e: 9400 ld.w r0, (r4, 0x0) + 4a10: 3201 movi r2, 1 + 4a12: 310b movi r1, 11 + 4a14: e3fff41c bsr 0x324c // 324c + GPIO_Init(GPIOA0,13,Output); //CS + 4a18: 9400 ld.w r0, (r4, 0x0) + 4a1a: 3200 movi r2, 0 + 4a1c: 310d movi r1, 13 + 4a1e: e3fff417 bsr 0x324c // 324c + GPIO_Init(GPIOA0,12,Output); //RST + 4a22: 9400 ld.w r0, (r4, 0x0) + 4a24: 3200 movi r2, 0 + 4a26: 310c movi r1, 12 + 4a28: e3fff412 bsr 0x324c // 324c + GPIO_Init(GPIOA0,8,Intput); //IRQ + 4a2c: 3201 movi r2, 1 + 4a2e: 9400 ld.w r0, (r4, 0x0) + 4a30: 3108 movi r1, 8 + 4a32: e3fff40d bsr 0x324c // 324c + GPIO_Write_High(GPIOA0,13); + 4a36: 9400 ld.w r0, (r4, 0x0) + 4a38: 310d movi r1, 13 + 4a3a: e3fff48a bsr 0x334e // 334e + GPIO_Write_High(GPIOA0,12); + 4a3e: 9400 ld.w r0, (r4, 0x0) + 4a40: 310c movi r1, 12 + 4a42: e3fff486 bsr 0x334e // 334e + RC522_RST_HIGH; //NRSTPD引脚高电平 + 4a46: 310c movi r1, 12 + 4a48: 9400 ld.w r0, (r4, 0x0) + 4a4a: e3fff482 bsr 0x334e // 334e + RC522_Delay(1000); //大概时间为850us + 4a4e: 30fa movi r0, 250 + 4a50: 4002 lsli r0, r0, 2 + 4a52: e3fffeb3 bsr 0x47b8 // 47b8 + RC522_RST_LOW; //Ci522掉电 + 4a56: 310c movi r1, 12 + 4a58: 9400 ld.w r0, (r4, 0x0) + 4a5a: e3fff47e bsr 0x3356 // 3356 + RC522_Delay(1000); //大概时间为850us + 4a5e: 30fa movi r0, 250 + 4a60: 4002 lsli r0, r0, 2 + 4a62: e3fffeab bsr 0x47b8 // 47b8 + RC522_RST_HIGH; //NRSTPD引脚高电平 + 4a66: 310c movi r1, 12 + 4a68: 9400 ld.w r0, (r4, 0x0) + 4a6a: e3fff472 bsr 0x334e // 334e + RC522_PcdReset(); //复位RC522 + 4a6e: e3ffff0d bsr 0x4888 // 4888 + RC522_PcdAntennaOff(); //关闭天线 + 4a72: e3ffff55 bsr 0x491c // 491c + RC522_Delay(2); //延时2毫秒 + 4a76: 3002 movi r0, 2 + 4a78: e3fffea0 bsr 0x47b8 // 47b8 + RC522_PcdAntennaOn(); //开启天线 + 4a7c: e3ffff38 bsr 0x48ec // 48ec + memset(&CardInfo,0x00,sizeof(CardInfo)); + 4a80: 108a lrw r4, 0x20000428 // 4aa8 + 4a82: e3ffff75 bsr 0x496c // 496c + 4a86: 3234 movi r2, 52 + 4a88: 3100 movi r1, 0 + 4a8a: 6c13 mov r0, r4 + 4a8c: e3ffe7c8 bsr 0x1a1c // 1a1c <__memset_fast> + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 4a90: 3318 movi r3, 24 + 4a92: a468 st.b r3, (r4, 0x8) + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 4a94: 3360 movi r3, 96 + 4a96: a47f st.b r3, (r4, 0x1f) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 4a98: 3300 movi r3, 0 + 4a9a: 2b00 subi r3, 1 + 4a9c: b468 st.w r3, (r4, 0x20) + 4a9e: ac72 st.h r3, (r4, 0x24) +} + 4aa0: 1491 pop r4, r15 + 4aa2: 0000 bkpt + 4aa4: 2000004c .long 0x2000004c + 4aa8: 20000428 .long 0x20000428 + +Disassembly of section .text.RC522_PcdComMF522: + +00004aac : +{ + 4aac: 14d4 push r4-r7, r15 + 4aae: 1424 subi r14, r14, 16 + 4ab0: b862 st.w r3, (r14, 0x8) + switch (Command) { + 4ab2: 384c cmpnei r0, 12 +{ + 4ab4: 9869 ld.w r3, (r14, 0x24) + 4ab6: 6d03 mov r4, r0 + 4ab8: 6dc7 mov r7, r1 + 4aba: b860 st.w r3, (r14, 0x0) + switch (Command) { + 4abc: 0c48 bf 0x4b4c // 4b4c + 4abe: 384e cmpnei r0, 14 + 4ac0: 0c49 bf 0x4b52 // 4b52 + U8_T waitFor=0x00; + 4ac2: 3600 movi r6, 0 + U8_T irqEn=0x00; + 4ac4: 3500 movi r5, 0 + RC522_WriteRawRC(ComIEnReg,irqEn|0x80); + 4ac6: 6c57 mov r1, r5 + 4ac8: 39a7 bseti r1, 7 + 4aca: 3002 movi r0, 2 + 4acc: b841 st.w r2, (r14, 0x4) + 4ace: e3fffec5 bsr 0x4858 // 4858 + RC522_ClearBitMask(ComIrqReg,0x80); //清所有中断位 + 4ad2: 3180 movi r1, 128 + 4ad4: 3004 movi r0, 4 + 4ad6: e3ffff18 bsr 0x4906 // 4906 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 4ada: 3100 movi r1, 0 + 4adc: 3001 movi r0, 1 + 4ade: e3fffebd bsr 0x4858 // 4858 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO缓存 + 4ae2: 3180 movi r1, 128 + 4ae4: 300a movi r0, 10 + 4ae6: e3fffef7 bsr 0x48d4 // 48d4 + for(i=0;i + RC522_WriteRawRC(CommandReg,Command); + 4af6: 6c53 mov r1, r4 + 4af8: 3001 movi r0, 1 + 4afa: e3fffeaf bsr 0x4858 // 4858 + if(Command==PCD_TRANSCEIVE) + 4afe: 3c4c cmpnei r4, 12 + 4b00: 0805 bt 0x4b0a // 4b0a + RC522_SetBitMask(BitFramingReg,0x80); //开始传送 + 4b02: 3180 movi r1, 128 + 4b04: 300d movi r0, 13 + 4b06: e3fffee7 bsr 0x48d4 // 48d4 + for(i=0;i + i--; + 4b16: 5f63 subi r3, r7, 1 + 4b18: 75cd zexth r7, r3 + }while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 4b1a: 3f40 cmpnei r7, 0 + n=RC522_ReadRawRC(ComIrqReg); + 4b1c: b801 st.w r0, (r14, 0x4) + }while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 4b1e: 0c05 bf 0x4b28 // 4b28 + 4b20: 6c83 mov r2, r0 + 4b22: 6898 and r2, r6 + 4b24: 3a40 cmpnei r2, 0 + 4b26: 0ff5 bf 0x4b10 // 4b10 + RC522_ClearBitMask(BitFramingReg,0x80); + 4b28: 3180 movi r1, 128 + 4b2a: 300d movi r0, 13 + 4b2c: e3fffeed bsr 0x4906 // 4906 + if(i!=0) + 4b30: 3f40 cmpnei r7, 0 + 4b32: 081f bt 0x4b70 // 4b70 + char stats=MI_ERR; + 4b34: 3502 movi r5, 2 + RC522_SetBitMask(ControlReg,0x80);// stop timer now + 4b36: 3180 movi r1, 128 + 4b38: 300c movi r0, 12 + 4b3a: e3fffecd bsr 0x48d4 // 48d4 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 4b3e: 3100 movi r1, 0 + 4b40: 3001 movi r0, 1 + 4b42: e3fffe8b bsr 0x4858 // 4858 +} + 4b46: 6c17 mov r0, r5 + 4b48: 1404 addi r14, r14, 16 + 4b4a: 1494 pop r4-r7, r15 + waitFor = 0x30; + 4b4c: 3630 movi r6, 48 + irqEn = 0x77; + 4b4e: 3577 movi r5, 119 + break; + 4b50: 07bb br 0x4ac6 // 4ac6 + waitFor = 0x10; + 4b52: 3610 movi r6, 16 + irqEn = 0x12; + 4b54: 3512 movi r5, 18 + 4b56: 07b8 br 0x4ac6 // 4ac6 + RC522_WriteRawRC(FIFODataReg,pIn[i]); + 4b58: 8320 ld.b r1, (r3, 0x0) + 4b5a: 3009 movi r0, 9 + 4b5c: b843 st.w r2, (r14, 0xc) + 4b5e: b861 st.w r3, (r14, 0x4) + for(i=0;i + 4b66: 9861 ld.w r3, (r14, 0x4) + for(i=0;i + if(!(RC522_ReadRawRC(ErrorReg)&0x1B)) + 4b70: 3006 movi r0, 6 + 4b72: e3fffe57 bsr 0x4820 // 4820 + 4b76: 331b movi r3, 27 + 4b78: 680c and r0, r3 + 4b7a: 3840 cmpnei r0, 0 + 4b7c: 0bdc bt 0x4b34 // 4b34 + if(n&irqEn&0x01) + 4b7e: 3301 movi r3, 1 + 4b80: 694c and r5, r3 + 4b82: 9861 ld.w r3, (r14, 0x4) + 4b84: 68d4 and r3, r5 + 4b86: 3b40 cmpnei r3, 0 + 4b88: 0817 bt 0x4bb6 // 4bb6 + if(Command==PCD_TRANSCEIVE) + 4b8a: 3c4c cmpnei r4, 12 + 4b8c: 0c19 bf 0x4bbe // 4bbe + stats=MI_OK; + 4b8e: 3500 movi r5, 0 + 4b90: 07d3 br 0x4b36 // 4b36 + *pOutLenBit=n*8; + 4b92: 4463 lsli r3, r4, 3 + 4b94: 9840 ld.w r2, (r14, 0x0) + 4b96: a260 st.b r3, (r2, 0x0) + 4b98: 042b br 0x4bee // 4bee + if(n==0)n=1; + 4b9a: 3301 movi r3, 1 + 4b9c: 0430 br 0x4bfc // 4bfc + n=RC522_ReadRawRC(FIFOLevelReg); + 4b9e: 300a movi r0, 10 + 4ba0: e3fffe40 bsr 0x4820 // 4820 + 4ba4: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 4ba6: 300c movi r0, 12 + 4ba8: e3fffe3c bsr 0x4820 // 4820 + 4bac: 3307 movi r3, 7 + 4bae: 680c and r0, r3 + stats=MI_NOTAGERR; + 4bb0: 3501 movi r5, 1 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 4bb2: 3c40 cmpnei r4, 0 + 4bb4: 0412 br 0x4bd8 // 4bd8 + if(Command==PCD_TRANSCEIVE) + 4bb6: 3c4c cmpnei r4, 12 + 4bb8: 0ff3 bf 0x4b9e // 4b9e + stats=MI_NOTAGERR; + 4bba: 3501 movi r5, 1 + 4bbc: 07bd br 0x4b36 // 4b36 + n=RC522_ReadRawRC(FIFOLevelReg); + 4bbe: 300a movi r0, 10 + 4bc0: e3fffe30 bsr 0x4820 // 4820 + 4bc4: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 4bc6: 300c movi r0, 12 + 4bc8: e3fffe2c bsr 0x4820 // 4820 + 4bcc: 3307 movi r3, 7 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 4bce: 3c42 cmpnei r4, 2 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 4bd0: 680c and r0, r3 + stats=MI_OK; + 4bd2: 3500 movi r5, 0 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 4bd4: 0c06 bf 0x4be0 // 4be0 + 4bd6: 3c45 cmpnei r4, 5 + 4bd8: 0c04 bf 0x4be0 // 4be0 + FIFOLevelReg_flag = 1; + 4bda: 1070 lrw r3, 0x200002d8 // 4c18 + 4bdc: 3201 movi r2, 1 + 4bde: a340 st.b r2, (r3, 0x0) + if(lastBits) + 4be0: 3840 cmpnei r0, 0 + 4be2: 0fd8 bf 0x4b92 // 4b92 + *pOutLenBit=(n-1)*8+lastBits; + 4be4: 5c63 subi r3, r4, 1 + 4be6: 4363 lsli r3, r3, 3 + 4be8: 600c addu r0, r3 + 4bea: 9860 ld.w r3, (r14, 0x0) + 4bec: a300 st.b r0, (r3, 0x0) + if(n==0)n=1; + 4bee: 3c40 cmpnei r4, 0 + 4bf0: 0fd5 bf 0x4b9a // 4b9a + 4bf2: 3c12 cmphsi r4, 19 + 4bf4: 6cd3 mov r3, r4 + 4bf6: 0c02 bf 0x4bfa // 4bfa + 4bf8: 3312 movi r3, 18 + 4bfa: 74cc zextb r3, r3 + 4bfc: 98e2 ld.w r7, (r14, 0x8) + for(i=0; i + pOut[i]=RC522_ReadRawRC(FIFODataReg); + 4c06: 3009 movi r0, 9 + 4c08: e3fffe0c bsr 0x4820 // 4820 + for(i=0; i + 4c16: 0000 bkpt + 4c18: 200002d8 .long 0x200002d8 + +Disassembly of section .text.RC522_PcdRequest: + +00004c1c : +{ + 4c1c: 14d3 push r4-r6, r15 + 4c1e: 1427 subi r14, r14, 28 + 4c20: 6d03 mov r4, r0 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 4c22: 3212 movi r2, 18 +{ + 4c24: 6d47 mov r5, r1 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 4c26: 1802 addi r0, r14, 8 + 4c28: 3100 movi r1, 0 + 4c2a: e3ffe6f9 bsr 0x1a1c // 1a1c <__memset_fast> + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位,/接收数据命令 + 4c2e: 3108 movi r1, 8 + 4c30: 3008 movi r0, 8 + 4c32: e3fffe6a bsr 0x4906 // 4906 + RC522_WriteRawRC(BitFramingReg,0x07); //写RC632寄存器 + 4c36: 3107 movi r1, 7 + 4c38: 300d movi r0, 13 + 4c3a: e3fffe0f bsr 0x4858 // 4858 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4c3e: 3607 movi r6, 7 + RC522_SetBitMask(TxControlReg,0x03); //置RC522寄存器位 + 4c40: 3103 movi r1, 3 + 4c42: 3014 movi r0, 20 + 4c44: e3fffe48 bsr 0x48d4 // 48d4 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4c48: 61b8 addu r6, r14 + 4c4a: 1b02 addi r3, r14, 8 + 4c4c: b8c0 st.w r6, (r14, 0x0) + 4c4e: 3201 movi r2, 1 + 4c50: 6c4f mov r1, r3 + 4c52: 300c movi r0, 12 + ucComMF522Buf[0]=req_code; //寻卡方式 + 4c54: dc8e0008 st.b r4, (r14, 0x8) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 4c58: e3ffff2a bsr 0x4aac // 4aac + if ((stats == MI_OK) && (unLen == 0x10)) { + 4c5c: 3840 cmpnei r0, 0 + 4c5e: 081b bt 0x4c94 // 4c94 + 4c60: 8660 ld.b r3, (r6, 0x0) + 4c62: 3b50 cmpnei r3, 16 + 4c64: 0818 bt 0x4c94 // 4c94 + *pTagType = ucComMF522Buf[0]; //将数组里的数据赋值给*pTagType + 4c66: d86e0008 ld.b r3, (r14, 0x8) + 4c6a: a560 st.b r3, (r5, 0x0) + *(pTagType + 1) = ucComMF522Buf[1]; + 4c6c: d86e0009 ld.b r3, (r14, 0x9) + 4c70: a561 st.b r3, (r5, 0x1) + if ((ucComMF522Buf[0] == req_code)&&(CardInfo.RC522_Reset_Falg == 0)) { + 4c72: d86e0008 ld.b r3, (r14, 0x8) + 4c76: 650e cmpne r3, r4 + 4c78: 3220 movi r2, 32 + 4c7a: 1069 lrw r3, 0x20000428 // 4c9c + 4c7c: 608c addu r2, r3 + 4c7e: 080d bt 0x4c98 // 4c98 + 4c80: 8228 ld.b r1, (r2, 0x8) + 4c82: 3940 cmpnei r1, 0 + 4c84: 0806 bt 0x4c90 // 4c90 + CardInfo.RC522_Reset_Falg = 1; + 4c86: 3101 movi r1, 1 + CardInfo.RC522_Reset_Falg = 0; + 4c88: a228 st.b r1, (r2, 0x8) + CardInfo.Reset_Tick = SysTick_1ms; + 4c8a: 1046 lrw r2, 0x200000b8 // 4ca0 + 4c8c: 9240 ld.w r2, (r2, 0x0) + 4c8e: b34b st.w r2, (r3, 0x2c) +} + 4c90: 1407 addi r14, r14, 28 + 4c92: 1493 pop r4-r6, r15 + stats = MI_ERR; + 4c94: 3002 movi r0, 2 + 4c96: 07ee br 0x4c72 // 4c72 + CardInfo.RC522_Reset_Falg = 0; + 4c98: 3100 movi r1, 0 + 4c9a: 07f7 br 0x4c88 // 4c88 + 4c9c: 20000428 .long 0x20000428 + 4ca0: 200000b8 .long 0x200000b8 + +Disassembly of section .text.RC522_PcdAnticoll: + +00004ca4 : +{ + 4ca4: 14d2 push r4-r5, r15 + 4ca6: 1427 subi r14, r14, 28 + 4ca8: 6d43 mov r5, r0 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 4caa: 3108 movi r1, 8 + 4cac: 3008 movi r0, 8 + 4cae: e3fffe2c bsr 0x4906 // 4906 + RC522_WriteRawRC(BitFramingReg,0x00); //写 + 4cb2: 3100 movi r1, 0 + 4cb4: 300d movi r0, 13 + 4cb6: e3fffdd1 bsr 0x4858 // 4858 + RC522_ClearBitMask(CollReg,0x80); //清 + 4cba: 3180 movi r1, 128 + 4cbc: 300e movi r0, 14 + 4cbe: e3fffe24 bsr 0x4906 // 4906 + ucComMF522Buf[0]=PICC_ANTICOLL1; //PICC_ANTICOLL1 = 0x93 + 4cc2: 3300 movi r3, 0 + 4cc4: 2b6c subi r3, 109 + 4cc6: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x20; + 4cca: 3320 movi r3, 32 + 4ccc: dc6e0009 st.b r3, (r14, 0x9) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4cd0: 3307 movi r3, 7 + 4cd2: 60f8 addu r3, r14 + 4cd4: b860 st.w r3, (r14, 0x0) + 4cd6: 1b02 addi r3, r14, 8 + 4cd8: 3202 movi r2, 2 + 4cda: 6c4f mov r1, r3 + 4cdc: 300c movi r0, 12 + 4cde: e3fffee7 bsr 0x4aac // 4aac + if(stats==MI_OK) + 4ce2: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 4ce4: 6d03 mov r4, r0 + if(stats==MI_OK) + 4ce6: 0812 bt 0x4d0a // 4d0a + 4ce8: 3300 movi r3, 0 + 4cea: 3200 movi r2, 0 + *(pSnr+i)=ucComMF522Buf[i]; //把读到的卡号赋值给pSnr + 4cec: 1902 addi r1, r14, 8 + 4cee: 604c addu r1, r3 + 4cf0: 8120 ld.b r1, (r1, 0x0) + 4cf2: 5d0c addu r0, r5, r3 + 4cf4: 2300 addi r3, 1 + 4cf6: a020 st.b r1, (r0, 0x0) + for(i=0;i<4;i++) + 4cf8: 3b44 cmpnei r3, 4 + snr_check^=ucComMF522Buf[i]; + 4cfa: 6c49 xor r1, r2 + 4cfc: 6c87 mov r2, r1 + for(i=0;i<4;i++) + 4cfe: 0bf7 bt 0x4cec // 4cec + if(snr_check!=ucComMF522Buf[i]) + 4d00: d86e000c ld.b r3, (r14, 0xc) + 4d04: 644e cmpne r3, r1 + 4d06: 0c02 bf 0x4d0a // 4d0a + stats = MI_ERR; + 4d08: 3402 movi r4, 2 + RC522_SetBitMask(CollReg,0x80); + 4d0a: 3180 movi r1, 128 + 4d0c: 300e movi r0, 14 + 4d0e: e3fffde3 bsr 0x48d4 // 48d4 +} + 4d12: 6c13 mov r0, r4 + 4d14: 1407 addi r14, r14, 28 + 4d16: 1492 pop r4-r5, r15 + +Disassembly of section .text.Card_Read_TasK: + +00004d18 : + + + +//U32_T FailNum = 0; +U32_T scan_tick = 0; +void Card_Read_TasK(void){ + 4d18: 14d3 push r4-r6, r15 + + if(SysTick_1ms - scan_tick >= 100){ + 4d1a: 11a5 lrw r5, 0x200000b8 // 4dac + 4d1c: 1145 lrw r2, 0x200002d8 // 4db0 + 4d1e: 1186 lrw r4, 0x20000428 // 4db4 + 4d20: 9221 ld.w r1, (r2, 0x4) + 4d22: 9560 ld.w r3, (r5, 0x0) + 4d24: 60c6 subu r3, r1 + 4d26: 3163 movi r1, 99 + 4d28: 64c4 cmphs r1, r3 + 4d2a: 081a bt 0x4d5e // 4d5e + //Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,Card Read",SysTick_1ms); + + + + //寻卡: 识别天线范围内全部卡 + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4d2c: 3119 movi r1, 25 + scan_tick = SysTick_1ms; + 4d2e: 9560 ld.w r3, (r5, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4d30: 6050 addu r1, r4 + 4d32: 3052 movi r0, 82 + scan_tick = SysTick_1ms; + 4d34: b261 st.w r3, (r2, 0x4) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 4d36: e3ffff73 bsr 0x4c1c // 4c1c + 4d3a: 3620 movi r6, 32 + 4d3c: 3840 cmpnei r0, 0 + 4d3e: 6190 addu r6, r4 + 4d40: 0829 bt 0x4d92 // 4d92 + //消抖 + //Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_SUCC",SysTick_1ms); + + + //防冲撞:获取IC卡的卡号 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4d42: 301b movi r0, 27 + CardInfo.FailNum = 0x00; + 4d44: 3300 movi r3, 0 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4d46: 6010 addu r0, r4 + CardInfo.FailNum = 0x00; + 4d48: a666 st.b r3, (r6, 0x6) + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 4d4a: e3ffffad bsr 0x4ca4 // 4ca4 + 4d4e: 3840 cmpnei r0, 0 + 4d50: 081c bt 0x4d88 // 4d88 + + + CardInfo.SuccNum++; + if(CardInfo.SuccNum >= 1) + 4d52: 8647 ld.b r2, (r6, 0x7) + 4d54: 33ff movi r3, 255 + 4d56: 64ca cmpne r2, r3 + { + CardInfo.SuccNum = 0 ; + 4d58: 3300 movi r3, 0 + 4d5a: a667 st.b r3, (r6, 0x7) + if(CardInfo.SuccNum >= 1) + 4d5c: 080e bt 0x4d78 // 4d78 + } + } + //} + } + + if(CardInfo.BlockSucc != CardInfo.BlockLast){ + 4d5e: 8467 ld.b r3, (r4, 0x7) + 4d60: 8446 ld.b r2, (r4, 0x6) + 4d62: 64ca cmpne r2, r3 + 4d64: 0c09 bf 0x4d76 // 4d76 + CardInfo.BlockLast = CardInfo.BlockSucc; + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4d66: 3b41 cmpnei r3, 1 + CardInfo.BlockLast = CardInfo.BlockSucc; + 4d68: a466 st.b r3, (r4, 0x6) + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 4d6a: 0c06 bf 0x4d76 // 4d76 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read SUCC"); + + + }else { + Card_Tick = SysTick_1ms; + 4d6c: 9540 ld.w r2, (r5, 0x0) + 4d6e: 1073 lrw r3, 0x200000a4 // 4db8 + 4d70: b340 st.w r2, (r3, 0x0) + CardInfo.reset_tick = SysTick_1ms; + 4d72: 9560 ld.w r3, (r5, 0x0) + 4d74: b46c st.w r3, (r4, 0x30) + } + } + + +} + 4d76: 1493 pop r4-r6, r15 + CardInfo.BlockSucc = BLOCK_READ_SUCC; + 4d78: 3301 movi r3, 1 + 4d7a: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d Card Block_SUCC",SysTick_1ms); + 4d7c: 9540 ld.w r2, (r5, 0x0) + 4d7e: 1030 lrw r1, 0x626d // 4dbc + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_FAILD",SysTick_1ms); + 4d80: 3000 movi r0, 0 + 4d82: e3fffc23 bsr 0x45c8 // 45c8 + 4d86: 07ec br 0x4d5e // 4d5e + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 4d88: 102e lrw r1, 0x628d // 4dc0 + 4d8a: 3000 movi r0, 0 + 4d8c: e3fffc1e bsr 0x45c8 // 45c8 + 4d90: 07e7 br 0x4d5e // 4d5e + if(CardInfo.FailNum >= 5) + 4d92: 8666 ld.b r3, (r6, 0x6) + 4d94: 3b04 cmphsi r3, 5 + 4d96: 0c08 bf 0x4da6 // 4da6 + CardInfo.FailNum = 0; + 4d98: 3300 movi r3, 0 + 4d9a: a666 st.b r3, (r6, 0x6) + CardInfo.SuccNum = 0; + 4d9c: a667 st.b r3, (r6, 0x7) + CardInfo.BlockSucc = BLOCK_READ_FAILD; + 4d9e: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_FAILD",SysTick_1ms); + 4da0: 9540 ld.w r2, (r5, 0x0) + 4da2: 1029 lrw r1, 0x629f // 4dc4 + 4da4: 07ee br 0x4d80 // 4d80 + CardInfo.FailNum++; + 4da6: 2300 addi r3, 1 + 4da8: a666 st.b r3, (r6, 0x6) + 4daa: 07da br 0x4d5e // 4d5e + 4dac: 200000b8 .long 0x200000b8 + 4db0: 200002d8 .long 0x200002d8 + 4db4: 20000428 .long 0x20000428 + 4db8: 200000a4 .long 0x200000a4 + 4dbc: 0000626d .long 0x0000626d + 4dc0: 0000628d .long 0x0000628d + 4dc4: 0000629f .long 0x0000629f + +Disassembly of section .text.Detect_SPI_task: + +00004dc8 : +U32_T HL_tick =0; +void Detect_SPI_task(void){ + 4dc8: 14d1 push r4, r15 + + if (CardInfo.RC522_Reset_Falg == 1) { + 4dca: 109f lrw r4, 0x20000428 // 4e44 + 4dcc: 3320 movi r3, 32 + 4dce: 60d0 addu r3, r4 + 4dd0: 8368 ld.b r3, (r3, 0x8) + 4dd2: 3b41 cmpnei r3, 1 + 4dd4: 0810 bt 0x4df4 // 4df4 + if (SysTick_1ms - CardInfo.Reset_Tick >= 1000) { + 4dd6: 105d lrw r2, 0x200000b8 // 4e48 + 4dd8: 9260 ld.w r3, (r2, 0x0) + 4dda: 942b ld.w r1, (r4, 0x2c) + 4ddc: 60c6 subu r3, r1 + 4dde: 103c lrw r1, 0x3e7 // 4e4c + 4de0: 64c4 cmphs r1, r3 + 4de2: 0809 bt 0x4df4 // 4df4 + CardInfo.Reset_Tick = SysTick_1ms; + 4de4: 9260 ld.w r3, (r2, 0x0) + 4de6: b46b st.w r3, (r4, 0x2c) + RC522_Reset(); + 4de8: e3fffda0 bsr 0x4928 // 4928 + Dbg_Println(DBG_BIT_SYS_STATUS, "SPI INIT"); + 4dec: 1039 lrw r1, 0x62bf // 4e50 + 4dee: 3000 movi r0, 0 + 4df0: e3fffbec bsr 0x45c8 // 45c8 + } + } + + if(1==FIFOLevelReg_flag){ + 4df4: 1078 lrw r3, 0x200002d8 // 4e54 + 4df6: 8340 ld.b r2, (r3, 0x0) + 4df8: 3a41 cmpnei r2, 1 + 4dfa: 0812 bt 0x4e1e // 4e1e +// Dbg_Println(DBG_BIT_SYS_STATUS, "FIFO INIT one"); + if (SysTick_1ms - HL_tick >= 1000) { + 4dfc: 1033 lrw r1, 0x200000b8 // 4e48 + 4dfe: 9140 ld.w r2, (r1, 0x0) + 4e00: 9302 ld.w r0, (r3, 0x8) + 4e02: 6082 subu r2, r0 + 4e04: 1012 lrw r0, 0x3e7 // 4e4c + 4e06: 6480 cmphs r0, r2 + 4e08: 080b bt 0x4e1e // 4e1e + HL_tick = SysTick_1ms; + 4e0a: 9140 ld.w r2, (r1, 0x0) + 4e0c: b342 st.w r2, (r3, 0x8) + FIFOLevelReg_flag = 0; + 4e0e: 3200 movi r2, 0 + 4e10: a340 st.b r2, (r3, 0x0) + + RC522_Reset(); + 4e12: e3fffd8b bsr 0x4928 // 4928 + Dbg_Println(DBG_BIT_SYS_STATUS, "FIFO INIT"); + 4e16: 1031 lrw r1, 0x62c8 // 4e58 + 4e18: 3000 movi r0, 0 + 4e1a: e3fffbd7 bsr 0x45c8 // 45c8 + } + } + + //每10s读不到卡便复位并初始化rc522 + if((CardInfo.BlockSucc == BLOCK_READ_FAILD)&&(SysTick_1ms - CardInfo.reset_tick>= 10000)) { + 4e1e: 8467 ld.b r3, (r4, 0x7) + 4e20: 3b40 cmpnei r3, 0 + 4e22: 0810 bt 0x4e42 // 4e42 + 4e24: 1049 lrw r2, 0x200000b8 // 4e48 + 4e26: 9260 ld.w r3, (r2, 0x0) + 4e28: 942c ld.w r1, (r4, 0x30) + 4e2a: 60c6 subu r3, r1 + 4e2c: 102c lrw r1, 0x270f // 4e5c + 4e2e: 64c4 cmphs r1, r3 + 4e30: 0809 bt 0x4e42 // 4e42 + CardInfo.reset_tick = SysTick_1ms; + 4e32: 9260 ld.w r3, (r2, 0x0) + 4e34: b46c st.w r3, (r4, 0x30) + RC522_Reset(); + 4e36: e3fffd79 bsr 0x4928 // 4928 + Dbg_Println(DBG_BIT_SYS_STATUS, "not read for 10 seconds"); + 4e3a: 102a lrw r1, 0x62d2 // 4e60 + 4e3c: 3000 movi r0, 0 + 4e3e: e3fffbc5 bsr 0x45c8 // 45c8 + + } + + +} + 4e42: 1491 pop r4, r15 + 4e44: 20000428 .long 0x20000428 + 4e48: 200000b8 .long 0x200000b8 + 4e4c: 000003e7 .long 0x000003e7 + 4e50: 000062bf .long 0x000062bf + 4e54: 200002d8 .long 0x200002d8 + 4e58: 000062c8 .long 0x000062c8 + 4e5c: 0000270f .long 0x0000270f + 4e60: 000062d2 .long 0x000062d2 + +Disassembly of section .text.RLY_Light_Ctrl: + +00004e64 : +} + +volatile U32_T Tim_Flag = 0; +///无RF模块继电器和背光控制函数 +void RLY_Light_Ctrl(U8_T state) +{ + 4e64: 14d0 push r15 + if(state == 0x01) + 4e66: 3841 cmpnei r0, 1 + 4e68: 0807 bt 0x4e76 // 4e76 + { +// CTRL_RLY_ON; + GPIO_Write_High(GPIOA0,0); + 4e6a: 106e lrw r3, 0x2000004c // 4ea0 + 4e6c: 3100 movi r1, 0 + 4e6e: 9300 ld.w r0, (r3, 0x0) + 4e70: e3fff26f bsr 0x334e // 334e + else{ + GPIO_Write_Low(GPIOA0,0); + } +// CTRL_RLY_OFF; + } +} + 4e74: 1490 pop r15 + else if(state == 0x00){ + 4e76: 3840 cmpnei r0, 0 + 4e78: 0bfe bt 0x4e74 // 4e74 + if(CardInfo.CTR_PLYFlag == 1) + 4e7a: 106b lrw r3, 0x20000428 // 4ea4 + 4e7c: 8360 ld.b r3, (r3, 0x0) + 4e7e: 3b41 cmpnei r3, 1 + 4e80: 0809 bt 0x4e92 // 4e92 + if(SysTick_1ms - Tim_Flag >= CTR_State_Tick) + 4e82: 106a lrw r3, 0x200000b8 // 4ea8 + 4e84: 104a lrw r2, 0x200002e4 // 4eac + 4e86: 9360 ld.w r3, (r3, 0x0) + 4e88: 9240 ld.w r2, (r2, 0x0) + 4e8a: 60ca subu r3, r2 + 4e8c: 1049 lrw r2, 0x752f // 4eb0 + 4e8e: 64c8 cmphs r2, r3 + 4e90: 0bf2 bt 0x4e74 // 4e74 + GPIO_Write_Low(GPIOA0,0); + 4e92: 1064 lrw r3, 0x2000004c // 4ea0 + 4e94: 3100 movi r1, 0 + 4e96: 9300 ld.w r0, (r3, 0x0) + 4e98: e3fff25f bsr 0x3356 // 3356 +} + 4e9c: 07ec br 0x4e74 // 4e74 + 4e9e: 0000 bkpt + 4ea0: 2000004c .long 0x2000004c + 4ea4: 20000428 .long 0x20000428 + 4ea8: 200000b8 .long 0x200000b8 + 4eac: 200002e4 .long 0x200002e4 + 4eb0: 0000752f .long 0x0000752f + +Disassembly of section .text.KEY1_LONG_PRESS_RELEASE_Handler: + +00004eb4 : +} + + +///无RF模块的门磁长按释放事件 +void KEY1_LONG_PRESS_RELEASE_Handler(void* btn) +{ + 4eb4: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_RELEASE_Handler"); + 4eb6: 1033 lrw r1, 0x62ea // 4f00 + 4eb8: 3000 movi r0, 0 + 4eba: e3fffb87 bsr 0x45c8 // 45c8 + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 4ebe: 1072 lrw r3, 0x20000428 // 4f04 + 4ec0: 8367 ld.b r3, (r3, 0x7) + 4ec2: 3b40 cmpnei r3, 0 + 4ec4: 1091 lrw r4, 0x20000494 // 4f08 + 4ec6: 0819 bt 0x4ef8 // 4ef8 + { + if(READ_RLY_STATE != 0x00) + 4ec8: 1071 lrw r3, 0x20000048 // 4f0c + 4eca: 3100 movi r1, 0 + 4ecc: 9300 ld.w r0, (r3, 0x0) + 4ece: e3fff25b bsr 0x3384 // 3384 + 4ed2: 3840 cmpnei r0, 0 + 4ed4: 0c08 bf 0x4ee4 // 4ee4 + { + RLY_Light_Ctrl(1); + 4ed6: 3001 movi r0, 1 + 4ed8: e3ffffc6 bsr 0x4e64 // 4e64 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 4edc: 102d lrw r1, 0x6305 // 4f10 + 4ede: 3000 movi r0, 0 + 4ee0: e3fffb74 bsr 0x45c8 // 45c8 + } + dm_in.DM_Tick = SysTick_1ms; + 4ee4: 106c lrw r3, 0x200000b8 // 4f14 + 4ee6: 104d lrw r2, 0x20000495 // 4f18 + 4ee8: 9360 ld.w r3, (r3, 0x0) + 4eea: 4b28 lsri r1, r3, 8 + 4eec: a461 st.b r3, (r4, 0x1) + 4eee: a221 st.b r1, (r2, 0x1) + 4ef0: 4b30 lsri r1, r3, 16 + 4ef2: 4b78 lsri r3, r3, 24 + 4ef4: a222 st.b r1, (r2, 0x2) + 4ef6: a263 st.b r3, (r2, 0x3) + } + + dm_in.DM_State = 0x02; + 4ef8: 3302 movi r3, 2 + 4efa: a460 st.b r3, (r4, 0x0) +} + 4efc: 1491 pop r4, r15 + 4efe: 0000 bkpt + 4f00: 000062ea .long 0x000062ea + 4f04: 20000428 .long 0x20000428 + 4f08: 20000494 .long 0x20000494 + 4f0c: 20000048 .long 0x20000048 + 4f10: 00006305 .long 0x00006305 + 4f14: 200000b8 .long 0x200000b8 + 4f18: 20000495 .long 0x20000495 + +Disassembly of section .text.LogicCtrl_Init: + +00004f1c : +{ + 4f1c: 14d2 push r4-r5, r15 + GPIO_Init(GPIOB0,CARD_SENS_PIN,Output); //CARD_SENS + 4f1e: 108d lrw r4, 0x20000048 // 4f50 + 4f20: 3200 movi r2, 0 + 4f22: 9400 ld.w r0, (r4, 0x0) + 4f24: 3101 movi r1, 1 + 4f26: e3fff193 bsr 0x324c // 324c + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4f2a: 10ab lrw r5, 0x2000004c // 4f54 + CTRL_CARD_OUT; + 4f2c: 3101 movi r1, 1 + 4f2e: 9400 ld.w r0, (r4, 0x0) + 4f30: e3fff213 bsr 0x3356 // 3356 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 4f34: 3200 movi r2, 0 + 4f36: 9500 ld.w r0, (r5, 0x0) + 4f38: 3101 movi r1, 1 + 4f3a: e3fff189 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 4f3e: 9500 ld.w r0, (r5, 0x0) + 4f40: 3101 movi r1, 1 + 4f42: e3fff20a bsr 0x3356 // 3356 + CTRL_RLY_OFF; + 4f46: 9400 ld.w r0, (r4, 0x0) + 4f48: 3100 movi r1, 0 + 4f4a: e3fff202 bsr 0x334e // 334e +} + 4f4e: 1492 pop r4-r5, r15 + 4f50: 20000048 .long 0x20000048 + 4f54: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Task: + +00004f58 : +{ + 4f58: 14d4 push r4-r7, r15 + if (start_light == 0){ + 4f5a: 1195 lrw r4, 0x200002e4 // 502c + 4f5c: 8464 ld.b r3, (r4, 0x4) + 4f5e: 3b40 cmpnei r3, 0 + 4f60: 11b4 lrw r5, 0x20000428 // 5030 + 4f62: 0813 bt 0x4f88 // 4f88 + start_light++; //start_light == 1,表示上电后首次进入(有插卡) + 4f64: 3301 movi r3, 1 + 4f66: a464 st.b r3, (r4, 0x4) + if (CardInfo.BlockSucc==BLOCK_READ_FAILD){ + 4f68: 8567 ld.b r3, (r5, 0x7) + 4f6a: 3b40 cmpnei r3, 0 + 4f6c: 080e bt 0x4f88 // 4f88 + GPIO_Init(GPIOA0,0,Output); + 4f6e: 11d2 lrw r6, 0x2000004c // 5034 + 4f70: 3200 movi r2, 0 + 4f72: 3100 movi r1, 0 + 4f74: 9600 ld.w r0, (r6, 0x0) + 4f76: e3fff16b bsr 0x324c // 324c + GPIO_Write_High(GPIOA0,0); + 4f7a: 9600 ld.w r0, (r6, 0x0) + 4f7c: 3100 movi r1, 0 + 4f7e: e3fff1e8 bsr 0x334e // 334e + start_light++; //start_light == 2,表示上电后首次进入时未插卡 目前可能上电时有插卡也意外进入 + 4f82: 8464 ld.b r3, (r4, 0x4) + 4f84: 2300 addi r3, 1 + 4f86: a464 st.b r3, (r4, 0x4) + if((CardInfo.BlockSucc==BLOCK_READ_SUCC) && (READ_CARD_STATE == 0)) + 4f88: 8567 ld.b r3, (r5, 0x7) + 4f8a: 3b41 cmpnei r3, 1 + 4f8c: 0836 bt 0x4ff8 // 4ff8 + 4f8e: 11cb lrw r6, 0x20000048 // 5038 + 4f90: 3101 movi r1, 1 + 4f92: 9600 ld.w r0, (r6, 0x0) + 4f94: e3fff1f8 bsr 0x3384 // 3384 + 4f98: 3840 cmpnei r0, 0 + 4f9a: 082f bt 0x4ff8 // 4ff8 + CTRL_CARD_IN; + 4f9c: 3101 movi r1, 1 + 4f9e: 9600 ld.w r0, (r6, 0x0) + 4fa0: e3fff1d7 bsr 0x334e // 334e + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_IN,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 4fa4: 1166 lrw r3, 0x200000b8 // 503c + 4fa6: 3101 movi r1, 1 + 4fa8: 9600 ld.w r0, (r6, 0x0) + 4faa: 93e0 ld.w r7, (r3, 0x0) + 4fac: e3fff1ec bsr 0x3384 // 3384 + 4fb0: 6cc3 mov r3, r0 + 4fb2: 6c9f mov r2, r7 + 4fb4: 1123 lrw r1, 0x6317 // 5040 + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_OUT,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 4fb6: 3000 movi r0, 0 + 4fb8: e3fffb08 bsr 0x45c8 // 45c8 + if ((CardInfo.BlockSucc==BLOCK_READ_SUCC) && ((start_light > 0)&&(start_light <= 2)) ){ + 4fbc: 8567 ld.b r3, (r5, 0x7) + 4fbe: 3b41 cmpnei r3, 1 + 4fc0: 080a bt 0x4fd4 // 4fd4 + 4fc2: 8444 ld.b r2, (r4, 0x4) + 4fc4: 5a63 subi r3, r2, 1 + 4fc6: 74cc zextb r3, r3 + 4fc8: 3b01 cmphsi r3, 2 + 4fca: 0805 bt 0x4fd4 // 4fd4 + if (start_light > 1){ //上电后首次进入时未插卡 + 4fcc: 3a42 cmpnei r2, 2 + 4fce: 082d bt 0x5028 // 5028 + start_light = 3; //start_light == 3,表示从上电后首次进入未插卡状态转为有插卡状态 + 4fd0: 3303 movi r3, 3 + start_light = 10; //start_light == 10,表示从首次上电时有插卡,变成这个值后不再进入上电判断 + 4fd2: a464 st.b r3, (r4, 0x4) + if ((start_light>=3)&&(start_light<=6)){ + 4fd4: 8464 ld.b r3, (r4, 0x4) + 4fd6: 5b4b subi r2, r3, 3 + 4fd8: 7488 zextb r2, r2 + 4fda: 3a03 cmphsi r2, 4 + 4fdc: 080d bt 0x4ff6 // 4ff6 + start_light++; + 4fde: 2300 addi r3, 1 + 4fe0: 74cc zextb r3, r3 + if (start_light>5){ //延时进入 + 4fe2: 3b05 cmphsi r3, 6 + start_light++; + 4fe4: a464 st.b r3, (r4, 0x4) + if (start_light>5){ //延时进入 + 4fe6: 0c08 bf 0x4ff6 // 4ff6 + GPIO_Write_Low(GPIOA0,0); + 4fe8: 1073 lrw r3, 0x2000004c // 5034 + 4fea: 3100 movi r1, 0 + 4fec: 9300 ld.w r0, (r3, 0x0) + 4fee: e3fff1b4 bsr 0x3356 // 3356 + start_light = 11; //start_light == 11,表示从上电后首次进入未插卡状态转为有插卡状态 + 4ff2: 330b movi r3, 11 + 4ff4: a464 st.b r3, (r4, 0x4) +} + 4ff6: 1494 pop r4-r7, r15 + else if((CardInfo.BlockSucc==BLOCK_READ_FAILD) && (READ_CARD_STATE == 1)) + 4ff8: 8567 ld.b r3, (r5, 0x7) + 4ffa: 3b40 cmpnei r3, 0 + 4ffc: 0be0 bt 0x4fbc // 4fbc + 4ffe: 10cf lrw r6, 0x20000048 // 5038 + 5000: 3101 movi r1, 1 + 5002: 9600 ld.w r0, (r6, 0x0) + 5004: e3fff1c0 bsr 0x3384 // 3384 + 5008: 3841 cmpnei r0, 1 + 500a: 0bd9 bt 0x4fbc // 4fbc + CTRL_CARD_OUT; + 500c: 3101 movi r1, 1 + 500e: 9600 ld.w r0, (r6, 0x0) + 5010: e3fff1a3 bsr 0x3356 // 3356 + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_OUT,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 5014: 106a lrw r3, 0x200000b8 // 503c + 5016: 3101 movi r1, 1 + 5018: 9600 ld.w r0, (r6, 0x0) + 501a: 93e0 ld.w r7, (r3, 0x0) + 501c: e3fff1b4 bsr 0x3384 // 3384 + 5020: 6cc3 mov r3, r0 + 5022: 6c9f mov r2, r7 + 5024: 1028 lrw r1, 0x6345 // 5044 + 5026: 07c8 br 0x4fb6 // 4fb6 + start_light = 10; //start_light == 10,表示从首次上电时有插卡,变成这个值后不再进入上电判断 + 5028: 330a movi r3, 10 + 502a: 07d4 br 0x4fd2 // 4fd2 + 502c: 200002e4 .long 0x200002e4 + 5030: 20000428 .long 0x20000428 + 5034: 2000004c .long 0x2000004c + 5038: 20000048 .long 0x20000048 + 503c: 200000b8 .long 0x200000b8 + 5040: 00006317 .long 0x00006317 + 5044: 00006345 .long 0x00006345 + +Disassembly of section .text.LogicCtrl_NoRF_Init: + +00005048 : + + +///无RF模块的初始化 +void LogicCtrl_NoRF_Init(void) +{ + 5048: 14d1 push r4, r15 + GPIO_Init(GPIOB0,RLY_OUT_PIN,Output); + 504a: 109c lrw r4, 0x20000048 // 50b8 + 504c: 3200 movi r2, 0 + 504e: 9400 ld.w r0, (r4, 0x0) + 5050: 3100 movi r1, 0 + 5052: e3fff0fd bsr 0x324c // 324c + CTRL_RLY_OFF; + 5056: 9400 ld.w r0, (r4, 0x0) + 5058: 3100 movi r1, 0 + 505a: e3fff17a bsr 0x334e // 334e + + memset(&dm_in,0,sizeof(DM_IN_INF)); + + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 505e: 1098 lrw r4, 0x2000004c // 50bc + memset(&dm_in,0,sizeof(DM_IN_INF)); + 5060: 3209 movi r2, 9 + 5062: 3100 movi r1, 0 + 5064: 1017 lrw r0, 0x20000494 // 50c0 + 5066: e3ffe4db bsr 0x1a1c // 1a1c <__memset_fast> + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 506a: 9400 ld.w r0, (r4, 0x0) + 506c: 3201 movi r2, 1 + 506e: 3103 movi r1, 3 + 5070: e3fff0ee bsr 0x324c // 324c + + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 5074: 3200 movi r2, 0 + 5076: 9400 ld.w r0, (r4, 0x0) + 5078: 3101 movi r1, 1 + 507a: e3fff0e9 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 507e: 9400 ld.w r0, (r4, 0x0) + 5080: 3101 movi r1, 1 + 5082: e3fff16a bsr 0x3356 // 3356 + + + GPIO_Init(GPIOA0,0,Output); //继电器,//light + 5086: 3200 movi r2, 0 + 5088: 9400 ld.w r0, (r4, 0x0) + 508a: 3100 movi r1, 0 + 508c: e3fff0e0 bsr 0x324c // 324c + GPIO_Write_Low(GPIOA0,0); //初始拉低断开,插卡拉高打开 + 5090: 9400 ld.w r0, (r4, 0x0) + 5092: 3100 movi r1, 0 + + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 5094: 108c lrw r4, 0x20000464 // 50c4 + GPIO_Write_Low(GPIOA0,0); //初始拉低断开,插卡拉高打开 + 5096: e3fff160 bsr 0x3356 // 3356 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 509a: 3303 movi r3, 3 + 509c: 6c13 mov r0, r4 + 509e: 3200 movi r2, 0 + 50a0: 102a lrw r1, 0x5588 // 50c8 + 50a2: e00001a1 bsr 0x53e4 // 53e4 + + button_attach(&KEY1, LONG_PRESS_RELEASE, KEY1_LONG_PRESS_RELEASE_Handler); + 50a6: 104a lrw r2, 0x4eb4 // 50cc + 50a8: 3107 movi r1, 7 + 50aa: 6c13 mov r0, r4 + 50ac: e00001b9 bsr 0x541e // 541e + button_start(&KEY1); + 50b0: 6c13 mov r0, r4 + 50b2: e000024b bsr 0x5548 // 5548 +} + 50b6: 1491 pop r4, r15 + 50b8: 20000048 .long 0x20000048 + 50bc: 2000004c .long 0x2000004c + 50c0: 20000494 .long 0x20000494 + 50c4: 20000464 .long 0x20000464 + 50c8: 00005588 .long 0x00005588 + 50cc: 00004eb4 .long 0x00004eb4 + +Disassembly of section .text.LogicCtrl_NoRF_Task: + +000050d0 : + + +///无RF模块的轮询任务 +void LogicCtrl_NoRF_Task(void) +{ + 50d0: 14d3 push r4-r6, r15 + static U32_T card_tick = 0; + static U32_T test_tick = 0; + + CardInfo.CTR_PLYFlag = CTR_State_Flag; + 50d2: 3301 movi r3, 1 + 50d4: 11c9 lrw r6, 0x20000428 // 5178 + + if(SysTick_1ms - test_tick > 5) + 50d6: 118a lrw r4, 0x200000b8 // 517c + 50d8: 11aa lrw r5, 0x200002e4 // 5180 + CardInfo.CTR_PLYFlag = CTR_State_Flag; + 50da: a660 st.b r3, (r6, 0x0) + if(SysTick_1ms - test_tick > 5) + 50dc: 9542 ld.w r2, (r5, 0x8) + 50de: 9460 ld.w r3, (r4, 0x0) + 50e0: 60ca subu r3, r2 + 50e2: 3b05 cmphsi r3, 6 + 50e4: 0c05 bf 0x50ee // 50ee + { + test_tick = SysTick_1ms; + 50e6: 9460 ld.w r3, (r4, 0x0) + 50e8: b562 st.w r3, (r5, 0x8) + button_ticks(); + 50ea: e0000241 bsr 0x556c // 556c + } + + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 50ee: 8667 ld.b r3, (r6, 0x7) + 50f0: 3b41 cmpnei r3, 1 + 50f2: 0830 bt 0x5152 // 5152 + { + RLY_Light_Ctrl(1); + 50f4: 3001 movi r0, 1 + 50f6: e3fffeb7 bsr 0x4e64 // 4e64 + card_tick = SysTick_1ms; + 50fa: 9460 ld.w r3, (r4, 0x0) + 50fc: b563 st.w r3, (r5, 0xc) + dm_in.DM_State = 0x00; + 50fe: 3200 movi r2, 0 + 5100: 1161 lrw r3, 0x20000494 // 5184 + 5102: a340 st.b r2, (r3, 0x0) + card_tick = SysTick_1ms; + RLY_Light_Ctrl(0); + + } + + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 5104: 8667 ld.b r3, (r6, 0x7) + 5106: 3b40 cmpnei r3, 0 + 5108: 0824 bt 0x5150 // 5150 + { + + if((dm_in.DM_State == 0x02) && (SysTick_1ms - dm_in.DM_Tick >= 30000)) + 510a: 107f lrw r3, 0x20000494 // 5184 + 510c: 8340 ld.b r2, (r3, 0x0) + 510e: 3a42 cmpnei r2, 2 + 5110: 0820 bt 0x5150 // 5150 + 5112: 8322 ld.b r1, (r3, 0x2) + 5114: 8341 ld.b r2, (r3, 0x1) + 5116: 4128 lsli r1, r1, 8 + 5118: 6c48 or r1, r2 + 511a: 8343 ld.b r2, (r3, 0x3) + 511c: 4250 lsli r2, r2, 16 + 511e: 6c48 or r1, r2 + 5120: 8344 ld.b r2, (r3, 0x4) + 5122: 4258 lsli r2, r2, 24 + 5124: 6c84 or r2, r1 + 5126: 9400 ld.w r0, (r4, 0x0) + 5128: 600a subu r0, r2 + 512a: 1058 lrw r2, 0x752f // 5188 + 512c: 6408 cmphs r2, r0 + 512e: 0811 bt 0x5150 // 5150 + { + dm_in.DM_Tick = SysTick_1ms; + 5130: 9440 ld.w r2, (r4, 0x0) + 5132: 5b22 addi r1, r3, 1 + 5134: a341 st.b r2, (r3, 0x1) + 5136: 4a68 lsri r3, r2, 8 + 5138: a161 st.b r3, (r1, 0x1) + RLY_Light_Ctrl(0); + 513a: 3000 movi r0, 0 + dm_in.DM_Tick = SysTick_1ms; + 513c: 4a70 lsri r3, r2, 16 + 513e: 4a58 lsri r2, r2, 24 + 5140: a162 st.b r3, (r1, 0x2) + 5142: a143 st.b r2, (r1, 0x3) + RLY_Light_Ctrl(0); + 5144: e3fffe90 bsr 0x4e64 // 4e64 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 5148: 1031 lrw r1, 0x6387 // 518c + 514a: 3000 movi r0, 0 + 514c: e3fffa3e bsr 0x45c8 // 45c8 + } + } +} + 5150: 1493 pop r4-r6, r15 + else if((CardInfo.BlockSucc == BLOCK_READ_FAILD) && (dm_in.DM_State == 0x00) && (SysTick_1ms - card_tick >= CTR_State_Tick)) + 5152: 3b40 cmpnei r3, 0 + 5154: 0bd8 bt 0x5104 // 5104 + 5156: 106c lrw r3, 0x20000494 // 5184 + 5158: 8360 ld.b r3, (r3, 0x0) + 515a: 3b40 cmpnei r3, 0 + 515c: 0bd4 bt 0x5104 // 5104 + 515e: 9543 ld.w r2, (r5, 0xc) + 5160: 9460 ld.w r3, (r4, 0x0) + 5162: 60ca subu r3, r2 + 5164: 1049 lrw r2, 0x752f // 5188 + 5166: 64c8 cmphs r2, r3 + 5168: 0bce bt 0x5104 // 5104 + card_tick = SysTick_1ms; + 516a: 9460 ld.w r3, (r4, 0x0) + RLY_Light_Ctrl(0); + 516c: 3000 movi r0, 0 + card_tick = SysTick_1ms; + 516e: b563 st.w r3, (r5, 0xc) + RLY_Light_Ctrl(0); + 5170: e3fffe7a bsr 0x4e64 // 4e64 + 5174: 07c8 br 0x5104 // 5104 + 5176: 0000 bkpt + 5178: 20000428 .long 0x20000428 + 517c: 200000b8 .long 0x200000b8 + 5180: 200002e4 .long 0x200002e4 + 5184: 20000494 .long 0x20000494 + 5188: 0000752f .long 0x0000752f + 518c: 00006387 .long 0x00006387 + +Disassembly of section .text.BackLight_Task: + +00005190 : + +void BackLight_Task(void){ + if (CardInfo.BlockSucc == BLOCK_READ_SUCC) + 5190: 1067 lrw r3, 0x20000428 // 51ac + 5192: 8367 ld.b r3, (r3, 0x7) + 5194: 3b41 cmpnei r3, 1 + 5196: 1067 lrw r3, 0x20000024 // 51b0 + 5198: 0806 bt 0x51a4 // 51a4 + GPT0->CMPA = 2000; + 519a: 9340 ld.w r2, (r3, 0x0) + 519c: 33fa movi r3, 250 + 519e: 4363 lsli r3, r3, 3 + 51a0: b26b st.w r3, (r2, 0x2c) + }else + { + Ctrl_Backlight(0);//开背光 + //Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay led on"); + } +} + 51a2: 783c jmp r15 + GPT0->CMPA = 0; + 51a4: 9360 ld.w r3, (r3, 0x0) + 51a6: 3200 movi r2, 0 + 51a8: b34b st.w r2, (r3, 0x2c) +} + 51aa: 07fc br 0x51a2 // 51a2 + 51ac: 20000428 .long 0x20000428 + 51b0: 20000024 .long 0x20000024 + +Disassembly of section .text.Detect_WIFI_Task: + +000051b4 : +//检测有无WIFI模组,判断10次,每次间隔10ms +void Detect_WIFI_Task(void){ + 51b4: 14d1 push r4, r15 + + if (finish_flag == 1) return; + 51b6: 107c lrw r3, 0x200000a2 // 5224 + 51b8: 8340 ld.b r2, (r3, 0x0) + 51ba: 3a41 cmpnei r2, 1 + 51bc: 0c1c bf 0x51f4 // 51f4 + + if (detect_count <10) { + 51be: 109b lrw r4, 0x200000ac // 5228 + 51c0: 8440 ld.b r2, (r4, 0x0) + 51c2: 3a09 cmphsi r2, 10 + 51c4: 081c bt 0x51fc // 51fc + if(SysTick_1ms - detect_tick >= 10) { + 51c6: 103a lrw r1, 0x200000b8 // 522c + 51c8: 105a lrw r2, 0x200000a8 // 5230 + 51ca: 9160 ld.w r3, (r1, 0x0) + 51cc: 9200 ld.w r0, (r2, 0x0) + 51ce: 60c2 subu r3, r0 + 51d0: 3b09 cmphsi r3, 10 + 51d2: 0c11 bf 0x51f4 // 51f4 + detect_tick = SysTick_1ms; + 51d4: 9160 ld.w r3, (r1, 0x0) + 51d6: b260 st.w r3, (r2, 0x0) + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 51d8: 3102 movi r1, 2 + 51da: 1077 lrw r3, 0x20000048 // 5234 + 51dc: 9300 ld.w r0, (r3, 0x0) + 51de: e3fff0cb bsr 0x3374 // 3374 + 51e2: 1076 lrw r3, 0x200000a0 // 5238 + 51e4: a300 st.b r0, (r3, 0x0) + + if (last_state != rf_exist) { + 51e6: 1076 lrw r3, 0x200000a1 // 523c + 51e8: 8340 ld.b r2, (r3, 0x0) + 51ea: 640a cmpne r2, r0 + 51ec: 0c05 bf 0x51f6 // 51f6 + last_state = rf_exist; + 51ee: a300 st.b r0, (r3, 0x0) + detect_count = 0; + 51f0: 3300 movi r3, 0 + }else { + detect_count++; + 51f2: a460 st.b r3, (r4, 0x0) + { + LogicCtrl_Init(); + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + } + } +} + 51f4: 1491 pop r4, r15 + detect_count++; + 51f6: 8460 ld.b r3, (r4, 0x0) + 51f8: 2300 addi r3, 1 + 51fa: 07fc br 0x51f2 // 51f2 + finish_flag = 1; + 51fc: 3201 movi r2, 1 + 51fe: a340 st.b r2, (r3, 0x0) + if(rf_exist == 0x01) //不带无线模块初始化 + 5200: 106e lrw r3, 0x200000a0 // 5238 + 5202: 8360 ld.b r3, (r3, 0x0) + 5204: 3b41 cmpnei r3, 1 + 5206: 0808 bt 0x5216 // 5216 + LogicCtrl_NoRF_Init(); + 5208: e3ffff20 bsr 0x5048 // 5048 + Dbg_Println(DBG_BIT_SYS_STATUS, "NoRF"); + 520c: 102d lrw r1, 0x6398 // 5240 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 520e: 3000 movi r0, 0 + 5210: e3fff9dc bsr 0x45c8 // 45c8 + 5214: 07f0 br 0x51f4 // 51f4 + else if(rf_exist == 0x00) //带无线模块初始化 + 5216: 3b40 cmpnei r3, 0 + 5218: 0bee bt 0x51f4 // 51f4 + LogicCtrl_Init(); + 521a: e3fffe81 bsr 0x4f1c // 4f1c + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 521e: 102a lrw r1, 0x639a // 5244 + 5220: 07f7 br 0x520e // 520e + 5222: 0000 bkpt + 5224: 200000a2 .long 0x200000a2 + 5228: 200000ac .long 0x200000ac + 522c: 200000b8 .long 0x200000b8 + 5230: 200000a8 .long 0x200000a8 + 5234: 20000048 .long 0x20000048 + 5238: 200000a0 .long 0x200000a0 + 523c: 200000a1 .long 0x200000a1 + 5240: 00006398 .long 0x00006398 + 5244: 0000639a .long 0x0000639a + +Disassembly of section .text.Led_Task: + +00005248 : + + + + +void Led_Task(void){ + 5248: 14d1 push r4, r15 +// { +// GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); +// } +// else +// { + if (CardInfo.RC522_Reset_Falg == 1) + 524a: 1074 lrw r3, 0x20000448 // 5298 + 524c: 8368 ld.b r3, (r3, 0x8) + 524e: 3b41 cmpnei r3, 1 + 5250: 1073 lrw r3, 0x20000494 // 529c + { + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) + 5252: 8326 ld.b r1, (r3, 0x6) + 5254: 8345 ld.b r2, (r3, 0x5) + 5256: 4128 lsli r1, r1, 8 + 5258: 6c48 or r1, r2 + 525a: 8347 ld.b r2, (r3, 0x7) + 525c: 4250 lsli r2, r2, 16 + 525e: 6c48 or r1, r2 + 5260: 8348 ld.b r2, (r3, 0x8) + 5262: 1010 lrw r0, 0x200000b8 // 52a0 + 5264: 4258 lsli r2, r2, 24 + 5266: 9080 ld.w r4, (r0, 0x0) + 5268: 6c84 or r2, r1 + 526a: 610a subu r4, r2 + if (CardInfo.RC522_Reset_Falg == 1) + 526c: 0813 bt 0x5292 // 5292 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) + 526e: 3263 movi r2, 99 + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + } + } + else + { + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) + 5270: 6508 cmphs r2, r4 + 5272: 080f bt 0x5290 // 5290 + { + dm_in.DM_Led_Tick = SysTick_1ms; + 5274: 9040 ld.w r2, (r0, 0x0) + 5276: 5b32 addi r1, r3, 5 + 5278: a345 st.b r2, (r3, 0x5) + 527a: 4a68 lsri r3, r2, 8 + 527c: a161 st.b r3, (r1, 0x1) + 527e: 4a70 lsri r3, r2, 16 + 5280: a162 st.b r3, (r1, 0x2) + 5282: 4a58 lsri r2, r2, 24 + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 5284: 1068 lrw r3, 0x2000004c // 52a4 + 5286: 9300 ld.w r0, (r3, 0x0) + dm_in.DM_Led_Tick = SysTick_1ms; + 5288: a143 st.b r2, (r1, 0x3) + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 528a: 3101 movi r1, 1 + 528c: e3fff069 bsr 0x335e // 335e + } + } +// } +} + 5290: 1491 pop r4, r15 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) + 5292: 1046 lrw r2, 0x1f3 // 52a8 + 5294: 07ee br 0x5270 // 5270 + 5296: 0000 bkpt + 5298: 20000448 .long 0x20000448 + 529c: 20000494 .long 0x20000494 + 52a0: 200000b8 .long 0x200000b8 + 52a4: 2000004c .long 0x2000004c + 52a8: 000001f3 .long 0x000001f3 + +Disassembly of section .text.CRC16: + +000052ac : + +U16_T CRC16(uint8_t *aStr ,U16_T len) +{ + 52ac: 14c3 push r4-r6 + 52ae: 6cc3 mov r3, r0 + 52b0: 6040 addu r1, r0 + xda ^= aStr[i]; + for(j=0;j<8;j++) + { + xdabit = (U8_T)(xda & 0x01); + xda >>= 1; + if( xdabit ) xda ^= xdapoly; + 52b2: 10ac lrw r5, 0xffffa001 // 52e0 + xda = 0xFFFF; + 52b4: 100c lrw r0, 0xffff // 52e4 + for(i=0;i + } + } + return xda; +} + 52ba: 1483 pop r4-r6 + xda ^= aStr[i]; + 52bc: 8340 ld.b r2, (r3, 0x0) + 52be: 6c09 xor r0, r2 + xdabit = (U8_T)(xda & 0x01); + 52c0: 3601 movi r6, 1 + xda ^= aStr[i]; + 52c2: 3208 movi r2, 8 + if( xdabit ) xda ^= xdapoly; + 52c4: 6d03 mov r4, r0 + 52c6: 6918 and r4, r6 + 52c8: 3c40 cmpnei r4, 0 + 52ca: 4801 lsri r0, r0, 1 + 52cc: 0c03 bf 0x52d2 // 52d2 + 52ce: 6c15 xor r0, r5 + 52d0: 7401 zexth r0, r0 + 52d2: 2a00 subi r2, 1 + 52d4: 7489 zexth r2, r2 + for(j=0;j<8;j++) + 52d6: 3a40 cmpnei r2, 0 + 52d8: 0bf6 bt 0x52c4 // 52c4 + 52da: 2300 addi r3, 1 + 52dc: 07ed br 0x52b6 // 52b6 + 52de: 0000 bkpt + 52e0: ffffa001 .long 0xffffa001 + 52e4: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Read_Version_Ack: + +000052e8 : + + +///查询版本号回复 +void Read_Version_Ack(void) +{ + 52e8: 14d1 push r4, r15 + 52ea: 1423 subi r14, r14, 12 + U8_T lens = 12; + U8_T data[lens]; + memset(data,0,sizeof(data)); + 52ec: 6c3b mov r0, r14 + 52ee: 320c movi r2, 12 + 52f0: 3100 movi r1, 0 + 52f2: e3ffe395 bsr 0x1a1c // 1a1c <__memset_fast> + + data[0] = 0x55; + 52f6: 3355 movi r3, 85 + 52f8: dc6e0000 st.b r3, (r14, 0x0) + data[1] = 0x55; + 52fc: dc6e0001 st.b r3, (r14, 0x1) + data[2] = 0xee; + 5300: 3300 movi r3, 0 + 5302: 2b11 subi r3, 18 + 5304: dc6e0002 st.b r3, (r14, 0x2) + data[3] = 0x08; //LENS + 5308: 3308 movi r3, 8 + 530a: dc6e0003 st.b r3, (r14, 0x3) + data[4] = 0x07; //Type + 530e: 3307 movi r3, 7 + 5310: dc6e0004 st.b r3, (r14, 0x4) + data[6] = 0x05; //Fun + data[7] = Project_FW_Version; + data[8] = Project_HW_Version; + data[9] = 0x00; //所处RCU端口 2024-11-26 + + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 5314: 3403 movi r4, 3 + data[6] = 0x05; //Fun + 5316: 3305 movi r3, 5 + 5318: dc6e0006 st.b r3, (r14, 0x6) + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 531c: 6138 addu r4, r14 + data[7] = Project_FW_Version; + 531e: 3302 movi r3, 2 + 5320: dc6e0007 st.b r3, (r14, 0x7) + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 5324: 3107 movi r1, 7 + data[8] = Project_HW_Version; + 5326: 3304 movi r3, 4 + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 5328: 6c13 mov r0, r4 + data[8] = Project_HW_Version; + 532a: dc6e0008 st.b r3, (r14, 0x8) + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 532e: e3ffffbf bsr 0x52ac // 52ac + 5332: dc0e000a st.b r0, (r14, 0xa) + data[lens-1] = (CRC16(&data[3],lens-5)>>8)&0xff; + 5336: 3107 movi r1, 7 + 5338: 6c13 mov r0, r4 + 533a: e3ffffb9 bsr 0x52ac // 52ac + 533e: 4808 lsri r0, r0, 8 + + UARTTransmit(UART2,data,lens); + 5340: 1065 lrw r3, 0x20000038 // 5354 + 5342: 320c movi r2, 12 + data[lens-1] = (CRC16(&data[3],lens-5)>>8)&0xff; + 5344: dc0e000b st.b r0, (r14, 0xb) + UARTTransmit(UART2,data,lens); + 5348: 6c7b mov r1, r14 + 534a: 9300 ld.w r0, (r3, 0x0) + 534c: e3fff248 bsr 0x37dc // 37dc +} + 5350: 1403 addi r14, r14, 12 + 5352: 1491 pop r4, r15 + 5354: 20000038 .long 0x20000038 + +Disassembly of section .text.Card_Recv_Pro: + +00005358 : + +U8_T Card_Recv_Pro(U8_T *data,U16_T lens) +{ + 5358: 14d2 push r4-r5, r15 + U16_T crc_temp = 0; + + if((lens <= 4) || (data[3] != (lens - 3))) //2024-11-11 增加长度判断,避免长度错误导致卡在CRC校验循环里最终开门狗复位 + 535a: 3904 cmphsi r1, 5 +{ + 535c: 6d03 mov r4, r0 + if((lens <= 4) || (data[3] != (lens - 3))) //2024-11-11 增加长度判断,避免长度错误导致卡在CRC校验循环里最终开门狗复位 + 535e: 0c05 bf 0x5368 // 5368 + 5360: 8043 ld.b r2, (r0, 0x3) + 5362: 596b subi r3, r1, 3 + 5364: 64ca cmpne r2, r3 + 5366: 0c07 bf 0x5374 // 5374 + { + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro Lens Err"); + 5368: 103b lrw r1, 0x639d // 53d4 + return 1; + } + + if((data[0] != 0x55) || (data[1] != 0x55) || (data[2] != 0xee)) + { + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro Head Err"); + 536a: 3000 movi r0, 0 + 536c: e3fff92e bsr 0x45c8 // 45c8 + + crc_temp = (data[lens-1]<<8) + data[lens-2]; + if(crc_temp != CRC16(&data[3],lens-5)) + { + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro CRC Err: %04X %04X",crc_temp,CRC16(&data[3],lens-5)); + return 1; + 5370: 3001 movi r0, 1 + case 0x05: //查询版本号 + Read_Version_Ack(); + break; + } + return 0; +} + 5372: 1492 pop r4-r5, r15 + if((data[0] != 0x55) || (data[1] != 0x55) || (data[2] != 0xee)) + 5374: 8060 ld.b r3, (r0, 0x0) + 5376: 3255 movi r2, 85 + 5378: 648e cmpne r3, r2 + 537a: 0808 bt 0x538a // 538a + 537c: 8041 ld.b r2, (r0, 0x1) + 537e: 64ca cmpne r2, r3 + 5380: 0805 bt 0x538a // 538a + 5382: 8042 ld.b r2, (r0, 0x2) + 5384: 33ee movi r3, 238 + 5386: 64ca cmpne r2, r3 + 5388: 0c03 bf 0x538e // 538e + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro Head Err"); + 538a: 1034 lrw r1, 0x63b4 // 53d8 + 538c: 07ef br 0x536a // 536a + if(data[4] != 0x07) + 538e: 8064 ld.b r3, (r0, 0x4) + 5390: 3b47 cmpnei r3, 7 + 5392: 0c03 bf 0x5398 // 5398 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro Type Err"); + 5394: 1032 lrw r1, 0x63cb // 53dc + 5396: 07ea br 0x536a // 536a + crc_temp = (data[lens-1]<<8) + data[lens-2]; + 5398: 5864 addu r3, r0, r1 + 539a: 5b43 subi r2, r3, 1 + 539c: 82a0 ld.b r5, (r2, 0x0) + 539e: 2b01 subi r3, 2 + 53a0: 8340 ld.b r2, (r3, 0x0) + 53a2: 45a8 lsli r5, r5, 8 + if(crc_temp != CRC16(&data[3],lens-5)) + 53a4: 2904 subi r1, 5 + crc_temp = (data[lens-1]<<8) + data[lens-2]; + 53a6: 6148 addu r5, r2 + if(crc_temp != CRC16(&data[3],lens-5)) + 53a8: 7445 zexth r1, r1 + 53aa: 2002 addi r0, 3 + 53ac: e3ffff80 bsr 0x52ac // 52ac + crc_temp = (data[lens-1]<<8) + data[lens-2]; + 53b0: 7555 zexth r5, r5 + if(crc_temp != CRC16(&data[3],lens-5)) + 53b2: 6416 cmpne r5, r0 + 53b4: 6cc3 mov r3, r0 + 53b6: 0c07 bf 0x53c4 // 53c4 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro CRC Err: %04X %04X",crc_temp,CRC16(&data[3],lens-5)); + 53b8: 6c97 mov r2, r5 + 53ba: 102a lrw r1, 0x63e2 // 53e0 + 53bc: 3000 movi r0, 0 + 53be: e3fff905 bsr 0x45c8 // 45c8 + 53c2: 07d7 br 0x5370 // 5370 + switch(data[6]) + 53c4: 8466 ld.b r3, (r4, 0x6) + 53c6: 3b45 cmpnei r3, 5 + 53c8: 0803 bt 0x53ce // 53ce + Read_Version_Ack(); + 53ca: e3ffff8f bsr 0x52e8 // 52e8 + return 0; + 53ce: 3000 movi r0, 0 + 53d0: 07d1 br 0x5372 // 5372 + 53d2: 0000 bkpt + 53d4: 0000639d .long 0x0000639d + 53d8: 000063b4 .long 0x000063b4 + 53dc: 000063cb .long 0x000063cb + 53e0: 000063e2 .long 0x000063e2 + +Disassembly of section .text.button_init: + +000053e4 : + * @param active_level: pressed GPIO level. + * @param button_id: the button id. + * @retval None + */ +void button_init(struct Button* handle, uint8_t(*pin_level)(uint8_t), uint8_t active_level, uint8_t button_id) +{ + 53e4: 14d4 push r4-r7, r15 + 53e6: 6dc7 mov r7, r1 + 53e8: 6d8b mov r6, r2 + memset(handle, 0, sizeof(struct Button)); + 53ea: 3100 movi r1, 0 + 53ec: 3230 movi r2, 48 +{ + 53ee: 6d03 mov r4, r0 + 53f0: 6d4f mov r5, r3 + memset(handle, 0, sizeof(struct Button)); + 53f2: e3ffe315 bsr 0x1a1c // 1a1c <__memset_fast> + handle->event = (uint8_t)NONE_PRESS; + 53f6: 3300 movi r3, 0 + 53f8: 2b6f subi r3, 112 + 53fa: a462 st.b r3, (r4, 0x2) + handle->hal_button_Level = pin_level; + 53fc: b4e2 st.w r7, (r4, 0x8) + handle->button_level = handle->hal_button_Level(button_id); + 53fe: 6c17 mov r0, r5 + 5400: 7bdd jsr r7 + 5402: 8443 ld.b r2, (r4, 0x3) + 5404: 337f movi r3, 127 + 5406: 688c and r2, r3 + 5408: 4007 lsli r0, r0, 7 + 540a: 6c08 or r0, r2 + handle->active_level = active_level; + 540c: 3201 movi r2, 1 + 540e: 6988 and r6, r2 + 5410: 7480 zextb r2, r0 + 5412: 46c6 lsli r6, r6, 6 + 5414: 3a86 bclri r2, 6 + 5416: 6c98 or r2, r6 + 5418: a443 st.b r2, (r4, 0x3) + handle->button_id = button_id; + 541a: a4a4 st.b r5, (r4, 0x4) +} + 541c: 1494 pop r4-r7, r15 + +Disassembly of section .text.button_attach: + +0000541e : + * @param cb: callback function. + * @retval None + */ +void button_attach(struct Button* handle, PressEvent event, BtnCallback cb) +{ + handle->cb[event] = cb; + 541e: 2102 addi r1, 3 + 5420: 4122 lsli r1, r1, 2 + 5422: 6040 addu r1, r0 + 5424: b140 st.w r2, (r1, 0x0) +} + 5426: 783c jmp r15 + +Disassembly of section .text.button_handler: + +00005428 : + + + + +void button_handler(struct Button* handle) +{ + 5428: 14d3 push r4-r6, r15 + 542a: 6d03 mov r4, r0 + uint8_t read_gpio_level = handle->hal_button_Level(handle->button_id); + 542c: 9462 ld.w r3, (r4, 0x8) + 542e: 8004 ld.b r0, (r0, 0x4) + 5430: 7bcd jsr r3 + + //ticks counter working.. + if((handle->state) > 0) handle->ticks++; + 5432: 8463 ld.b r3, (r4, 0x3) + 5434: 433d lsli r1, r3, 29 + 5436: 493d lsri r1, r1, 29 + 5438: 3940 cmpnei r1, 0 + 543a: 0c04 bf 0x5442 // 5442 + 543c: 8c40 ld.h r2, (r4, 0x0) + 543e: 2200 addi r2, 1 + 5440: ac40 st.h r2, (r4, 0x0) + + /*------------button debounce handle---------------*/ + if(read_gpio_level != handle->button_level) { //not equal to prev one + 5442: 4b47 lsri r2, r3, 7 + 5444: 640a cmpne r2, r0 + 5446: 0c21 bf 0x5488 // 5488 + //continue read 3 times same new level change + if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) { + 5448: 435a lsli r2, r3, 26 + 544a: 4a5d lsri r2, r2, 29 + 544c: 3507 movi r5, 7 + 544e: 2200 addi r2, 1 + 5450: 6894 and r2, r5 + 5452: 7488 zextb r2, r2 + 5454: 6948 and r5, r2 + 5456: 45c3 lsli r6, r5, 3 + 5458: 3538 movi r5, 56 + 545a: 68d5 andn r3, r5 + 545c: 6d8c or r6, r3 + 545e: 3a02 cmphsi r2, 3 + 5460: a4c3 st.b r6, (r4, 0x3) + 5462: 0c09 bf 0x5474 // 5474 + handle->button_level = read_gpio_level; + 5464: 4067 lsli r3, r0, 7 + 5466: 327f movi r2, 127 + 5468: 8403 ld.b r0, (r4, 0x3) + 546a: 6808 and r0, r2 + 546c: 6c0c or r0, r3 + handle->debounce_cnt = 0; + 546e: 7400 zextb r0, r0 + 5470: 6815 andn r0, r5 + 5472: a403 st.b r0, (r4, 0x3) + } else { //leved not change ,counter reset. + handle->debounce_cnt = 0; + } + + /*-----------------State machine-------------------*/ + switch (handle->state) { + 5474: 3941 cmpnei r1, 1 + 5476: 0c2f bf 0x54d4 // 54d4 + 5478: 3940 cmpnei r1, 0 + 547a: 0c0b bf 0x5490 // 5490 + 547c: 3945 cmpnei r1, 5 + 547e: 0c53 bf 0x5524 // 5524 +// Dbg_Println(DBG_BIT_SYS_STATUS,"key state long press release"); + handle->state = 0; //reset + } + break; + default: + handle->state = 0; //reset + 5480: 8463 ld.b r3, (r4, 0x3) + 5482: 3207 movi r2, 7 + 5484: 68c9 andn r3, r2 + 5486: 0420 br 0x54c6 // 54c6 + handle->debounce_cnt = 0; + 5488: 3238 movi r2, 56 + 548a: 68c9 andn r3, r2 + 548c: a463 st.b r3, (r4, 0x3) + 548e: 07f3 br 0x5474 // 5474 + if(handle->button_level == handle->active_level) { //start press down + 5490: 8463 ld.b r3, (r4, 0x3) + 5492: 4359 lsli r2, r3, 25 + 5494: 4a5f lsri r2, r2, 31 + 5496: 4b67 lsri r3, r3, 7 + 5498: 648e cmpne r3, r2 + 549a: 8462 ld.b r3, (r4, 0x2) + handle->event = (uint8_t)PRESS_DOWN; + 549c: 320f movi r2, 15 + 549e: 68c8 and r3, r2 + if(handle->button_level == handle->active_level) { //start press down + 54a0: 0815 bt 0x54ca // 54ca + handle->event = (uint8_t)PRESS_DOWN; + 54a2: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_DOWN); + 54a4: 9463 ld.w r3, (r4, 0xc) + 54a6: 3b40 cmpnei r3, 0 + 54a8: 0c03 bf 0x54ae // 54ae + 54aa: 6c13 mov r0, r4 + 54ac: 7bcd jsr r3 + handle->ticks = 0; + 54ae: 3300 movi r3, 0 + handle->repeat = 1; + 54b0: 8442 ld.b r2, (r4, 0x2) + handle->ticks = 0; + 54b2: ac60 st.h r3, (r4, 0x0) + handle->repeat = 1; + 54b4: 330f movi r3, 15 + 54b6: 688d andn r2, r3 + 54b8: 3101 movi r1, 1 + 54ba: 6c84 or r2, r1 + 54bc: a442 st.b r2, (r4, 0x2) + handle->state = 1; + 54be: 8463 ld.b r3, (r4, 0x3) + 54c0: 3207 movi r2, 7 + 54c2: 68c9 andn r3, r2 + 54c4: 6cc4 or r3, r1 + handle->state = 0; //reset + 54c6: a463 st.b r3, (r4, 0x3) + break; + } +} + 54c8: 0405 br 0x54d2 // 54d2 + handle->event = (uint8_t)NONE_PRESS; + 54ca: 3200 movi r2, 0 + 54cc: 2a6f subi r2, 112 + 54ce: 6cc8 or r3, r2 + 54d0: a462 st.b r3, (r4, 0x2) +} + 54d2: 1493 pop r4-r6, r15 + if(handle->button_level != handle->active_level) { //released press up + 54d4: 8463 ld.b r3, (r4, 0x3) + 54d6: 4359 lsli r2, r3, 25 + 54d8: 4a5f lsri r2, r2, 31 + 54da: 4b67 lsri r3, r3, 7 + 54dc: 648e cmpne r3, r2 + 54de: 0c0e bf 0x54fa // 54fa + handle->event = (uint8_t)PRESS_UP; + 54e0: 8462 ld.b r3, (r4, 0x2) + 54e2: 320f movi r2, 15 + 54e4: 68c8 and r3, r2 + 54e6: 3ba4 bseti r3, 4 + 54e8: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_UP); + 54ea: 9464 ld.w r3, (r4, 0x10) + 54ec: 3b40 cmpnei r3, 0 + 54ee: 0c03 bf 0x54f4 // 54f4 + 54f0: 6c13 mov r0, r4 + 54f2: 7bcd jsr r3 + handle->ticks = 0; + 54f4: 3300 movi r3, 0 + 54f6: ac60 st.h r3, (r4, 0x0) + 54f8: 07c4 br 0x5480 // 5480 + } else if(handle->ticks > LONG_TICKS) { + 54fa: 8c40 ld.h r2, (r4, 0x0) + 54fc: 33c8 movi r3, 200 + 54fe: 648c cmphs r3, r2 + 5500: 0be9 bt 0x54d2 // 54d2 + handle->event = (uint8_t)LONG_PRESS_START; + 5502: 8462 ld.b r3, (r4, 0x2) + 5504: 320f movi r2, 15 + 5506: 68c8 and r3, r2 + 5508: 3ba4 bseti r3, 4 + 550a: 3ba6 bseti r3, 6 + 550c: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_START); + 550e: 9468 ld.w r3, (r4, 0x20) + 5510: 3b40 cmpnei r3, 0 + 5512: 0c03 bf 0x5518 // 5518 + 5514: 6c13 mov r0, r4 + 5516: 7bcd jsr r3 + handle->state = 5; + 5518: 8463 ld.b r3, (r4, 0x3) + 551a: 3207 movi r2, 7 + 551c: 68c9 andn r3, r2 + 551e: 3ba0 bseti r3, 0 + 5520: 3ba2 bseti r3, 2 + 5522: 07d2 br 0x54c6 // 54c6 + if(handle->button_level == handle->active_level) { + 5524: 8463 ld.b r3, (r4, 0x3) + 5526: 4359 lsli r2, r3, 25 + 5528: 4a5f lsri r2, r2, 31 + 552a: 4b67 lsri r3, r3, 7 + 552c: 648e cmpne r3, r2 + 552e: 0fd2 bf 0x54d2 // 54d2 + handle->event = (uint8_t)LONG_PRESS_RELEASE; + 5530: 8462 ld.b r3, (r4, 0x2) + 5532: 320f movi r2, 15 + 5534: 68c8 and r3, r2 + 5536: 3270 movi r2, 112 + 5538: 6cc8 or r3, r2 + 553a: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_RELEASE); + 553c: 946a ld.w r3, (r4, 0x28) + 553e: 3b40 cmpnei r3, 0 + 5540: 0fa0 bf 0x5480 // 5480 + 5542: 6c13 mov r0, r4 + 5544: 7bcd jsr r3 + 5546: 079d br 0x5480 // 5480 + +Disassembly of section .text.button_start: + +00005548 : + * @param handle: target handle strcut. + * @retval 0: succeed. -1: already exist. + */ +int button_start(struct Button* handle) +{ + struct Button* target = head_handle; + 5548: 1068 lrw r3, 0x200002f8 // 5568 + 554a: 9320 ld.w r1, (r3, 0x0) + 554c: 6c87 mov r2, r1 + while(target) { + 554e: 3a40 cmpnei r2, 0 + 5550: 0805 bt 0x555a // 555a + if(target == handle) return -1; //already exist. + target = target->next; + } + handle->next = head_handle; + 5552: b02b st.w r1, (r0, 0x2c) + head_handle = handle; + 5554: b300 st.w r0, (r3, 0x0) + return 0; + 5556: 3000 movi r0, 0 +} + 5558: 783c jmp r15 + if(target == handle) return -1; //already exist. + 555a: 640a cmpne r2, r0 + 555c: 0c03 bf 0x5562 // 5562 + target = target->next; + 555e: 924b ld.w r2, (r2, 0x2c) + 5560: 07f7 br 0x554e // 554e + if(target == handle) return -1; //already exist. + 5562: 3000 movi r0, 0 + 5564: 2800 subi r0, 1 + 5566: 07f9 br 0x5558 // 5558 + 5568: 200002f8 .long 0x200002f8 + +Disassembly of section .text.button_ticks: + +0000556c : + * @brief background ticks, timer repeat invoking interval 5ms. + * @param None. + * @retval None + */ +void button_ticks() +{ + 556c: 14d1 push r4, r15 + struct Button* target; + for(target=head_handle; target; target=target->next) { + 556e: 1066 lrw r3, 0x200002f8 // 5584 + 5570: 9380 ld.w r4, (r3, 0x0) + 5572: 3c40 cmpnei r4, 0 + 5574: 0802 bt 0x5578 // 5578 + button_handler(target); + } +} + 5576: 1491 pop r4, r15 + button_handler(target); + 5578: 6c13 mov r0, r4 + 557a: e3ffff57 bsr 0x5428 // 5428 + for(target=head_handle; target; target=target->next) { + 557e: 948b ld.w r4, (r4, 0x2c) + 5580: 07f9 br 0x5572 // 5572 + 5582: 0000 bkpt + 5584: 200002f8 .long 0x200002f8 + +Disassembly of section .text.read_button_GPIO: + +00005588 : + +//////////////////////////////////////////////////////////////////////// + + +uint8_t read_button_GPIO(uint8_t button_id) +{ + 5588: 14d0 push r15 + uint8_t state = 0; + state = GPIO_Read_Status(GPIOA0,button_id); + 558a: 1064 lrw r3, 0x2000004c // 5598 +{ + 558c: 6c43 mov r1, r0 + state = GPIO_Read_Status(GPIOA0,button_id); + 558e: 9300 ld.w r0, (r3, 0x0) + 5590: e3ffeef2 bsr 0x3374 // 3374 + return state; + 5594: 1490 pop r15 + 5596: 0000 bkpt + 5598: 2000004c .long 0x2000004c + +Disassembly of section .text.TK_Sampling_prog: + +0000559c : + 559c: 14c4 push r4-r7 + 559e: 1072 lrw r3, 0x20000054 // 55e4 + 55a0: 1012 lrw r0, 0x20000746 // 55e8 + 55a2: 1093 lrw r4, 0x200005b7 // 55ec + 55a4: 6d83 mov r6, r0 + 55a6: 93a0 ld.w r5, (r3, 0x0) + 55a8: 3300 movi r3, 0 + 55aa: 4342 lsli r2, r3, 2 + 55ac: 6094 addu r2, r5 + 55ae: 9220 ld.w r1, (r2, 0x0) + 55b0: 4341 lsli r2, r3, 1 + 55b2: 6080 addu r2, r0 + 55b4: 7445 zexth r1, r1 + 55b6: aa20 st.h r1, (r2, 0x0) + 55b8: 8440 ld.b r2, (r4, 0x0) + 55ba: 3a41 cmpnei r2, 1 + 55bc: 080f bt 0x55da // 55da + 55be: 3300 movi r3, 0 + 55c0: 10ec lrw r7, 0x200004a0 // 55f0 + 55c2: 4341 lsli r2, r3, 1 + 55c4: 5e28 addu r1, r6, r2 + 55c6: 8920 ld.h r1, (r1, 0x0) + 55c8: 2300 addi r3, 1 + 55ca: 7445 zexth r1, r1 + 55cc: 609c addu r2, r7 + 55ce: 3b51 cmpnei r3, 17 + 55d0: aa20 st.h r1, (r2, 0x0) + 55d2: 0bf8 bt 0x55c2 // 55c2 + 55d4: 3300 movi r3, 0 + 55d6: a460 st.b r3, (r4, 0x0) + 55d8: 3311 movi r3, 17 + 55da: 2300 addi r3, 1 + 55dc: 74cc zextb r3, r3 + 55de: 3b10 cmphsi r3, 17 + 55e0: 0fe5 bf 0x55aa // 55aa + 55e2: 1484 pop r4-r7 + 55e4: 20000054 .long 0x20000054 + 55e8: 20000746 .long 0x20000746 + 55ec: 200005b7 .long 0x200005b7 + 55f0: 200004a0 .long 0x200004a0 + +Disassembly of section .text.TKEYIntHandler: + +000055f4 : + 55f4: 1460 nie + 55f6: 1462 ipush + 55f8: 14d1 push r4, r15 + 55fa: 109e lrw r4, 0x2000006c // 5670 + 55fc: 9460 ld.w r3, (r4, 0x0) + 55fe: 3b40 cmpnei r3, 0 + 5600: 080b bt 0x5616 // 5616 + 5602: 3301 movi r3, 1 + 5604: b460 st.w r3, (r4, 0x0) + 5606: 107c lrw r3, 0x20000534 // 5674 + 5608: 8360 ld.b r3, (r3, 0x0) + 560a: 3b41 cmpnei r3, 1 + 560c: 0805 bt 0x5616 // 5616 + 560e: e3ffffc7 bsr 0x559c // 559c + 5612: 3301 movi r3, 1 + 5614: a464 st.b r3, (r4, 0x4) + 5616: 1079 lrw r3, 0x20000058 // 5678 + 5618: 3101 movi r1, 1 + 561a: 9360 ld.w r3, (r3, 0x0) + 561c: 934a ld.w r2, (r3, 0x28) + 561e: 6884 and r2, r1 + 5620: 3a40 cmpnei r2, 0 + 5622: 0c02 bf 0x5626 // 5626 + 5624: b32c st.w r1, (r3, 0x30) + 5626: 934a ld.w r2, (r3, 0x28) + 5628: 3102 movi r1, 2 + 562a: 6884 and r2, r1 + 562c: 3a40 cmpnei r2, 0 + 562e: 0c02 bf 0x5632 // 5632 + 5630: b32c st.w r1, (r3, 0x30) + 5632: 934a ld.w r2, (r3, 0x28) + 5634: 3104 movi r1, 4 + 5636: 6884 and r2, r1 + 5638: 3a40 cmpnei r2, 0 + 563a: 0c02 bf 0x563e // 563e + 563c: b32c st.w r1, (r3, 0x30) + 563e: 934a ld.w r2, (r3, 0x28) + 5640: 3108 movi r1, 8 + 5642: 6884 and r2, r1 + 5644: 3a40 cmpnei r2, 0 + 5646: 0c02 bf 0x564a // 564a + 5648: b32c st.w r1, (r3, 0x30) + 564a: 934a ld.w r2, (r3, 0x28) + 564c: 3110 movi r1, 16 + 564e: 6884 and r2, r1 + 5650: 3a40 cmpnei r2, 0 + 5652: 0c02 bf 0x5656 // 5656 + 5654: b32c st.w r1, (r3, 0x30) + 5656: 934a ld.w r2, (r3, 0x28) + 5658: 3120 movi r1, 32 + 565a: 6884 and r2, r1 + 565c: 3a40 cmpnei r2, 0 + 565e: 0c02 bf 0x5662 // 5662 + 5660: b32c st.w r1, (r3, 0x30) + 5662: d9ee2001 ld.w r15, (r14, 0x4) + 5666: 9880 ld.w r4, (r14, 0x0) + 5668: 1402 addi r14, r14, 8 + 566a: 1463 ipop + 566c: 1461 nir + 566e: 0000 bkpt + 5670: 2000006c .long 0x2000006c + 5674: 20000534 .long 0x20000534 + 5678: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000567c : + 567c: 14c2 push r4-r5 + 567e: 3200 movi r2, 0 + 5680: 3000 movi r0, 0 + 5682: 1088 lrw r4, 0x200005d4 // 56a0 + 5684: 3501 movi r5, 1 + 5686: 3120 movi r1, 32 + 5688: 9460 ld.w r3, (r4, 0x0) + 568a: 70c9 lsr r3, r2 + 568c: 68d4 and r3, r5 + 568e: 3b40 cmpnei r3, 0 + 5690: 0c02 bf 0x5694 // 5694 + 5692: 2000 addi r0, 1 + 5694: 2200 addi r2, 1 + 5696: 644a cmpne r2, r1 + 5698: 0bf8 bt 0x5688 // 5688 + 569a: 7400 zextb r0, r0 + 569c: 1482 pop r4-r5 + 569e: 0000 bkpt + 56a0: 200005d4 .long 0x200005d4 + +Disassembly of section .text.TK_Scan_Start: + +000056a4 : + 56a4: 1046 lrw r2, 0x2000006c // 56bc + 56a6: 8264 ld.b r3, (r2, 0x4) + 56a8: 74cc zextb r3, r3 + 56aa: 3b41 cmpnei r3, 1 + 56ac: 0807 bt 0x56ba // 56ba + 56ae: 1025 lrw r1, 0x20000058 // 56c0 + 56b0: 9120 ld.w r1, (r1, 0x0) + 56b2: b162 st.w r3, (r1, 0x8) + 56b4: 3300 movi r3, 0 + 56b6: b260 st.w r3, (r2, 0x0) + 56b8: a264 st.b r3, (r2, 0x4) + 56ba: 783c jmp r15 + 56bc: 2000006c .long 0x2000006c + 56c0: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +000056c4 : + 56c4: 14d4 push r4-r7, r15 + 56c6: 1425 subi r14, r14, 20 + 56c8: 1271 lrw r3, 0x20000328 // 580c + 56ca: 8360 ld.b r3, (r3, 0x0) + 56cc: b860 st.w r3, (r14, 0x0) + 56ce: 3400 movi r4, 0 + 56d0: 1270 lrw r3, 0x200002fc // 5810 + 56d2: 8360 ld.b r3, (r3, 0x0) + 56d4: b861 st.w r3, (r14, 0x4) + 56d6: 12f0 lrw r7, 0x2000054a // 5814 + 56d8: 1270 lrw r3, 0x20000305 // 5818 + 56da: 83a0 ld.b r5, (r3, 0x0) + 56dc: 1270 lrw r3, 0x20000304 // 581c + 56de: 8360 ld.b r3, (r3, 0x0) + 56e0: b862 st.w r3, (r14, 0x8) + 56e2: 6d9f mov r6, r7 + 56e4: 126f lrw r3, 0x20000746 // 5820 + 56e6: b863 st.w r3, (r14, 0xc) + 56e8: 4461 lsli r3, r4, 1 + 56ea: 9843 ld.w r2, (r14, 0xc) + 56ec: 608c addu r2, r3 + 56ee: 122e lrw r1, 0x200004a0 // 5824 + 56f0: 604c addu r1, r3 + 56f2: 8a40 ld.h r2, (r2, 0x0) + 56f4: 8920 ld.h r1, (r1, 0x0) + 56f6: 6086 subu r2, r1 + 56f8: 748b sexth r2, r2 + 56fa: 5f2c addu r1, r7, r3 + 56fc: a940 st.h r2, (r1, 0x0) + 56fe: 8940 ld.h r2, (r1, 0x0) + 5700: 748b sexth r2, r2 + 5702: 3adf btsti r2, 31 + 5704: 1249 lrw r2, 0x20000702 // 5828 + 5706: 608c addu r2, r3 + 5708: 0c37 bf 0x5776 // 5776 + 570a: 3100 movi r1, 0 + 570c: aa20 st.h r1, (r2, 0x0) + 570e: 9840 ld.w r2, (r14, 0x0) + 5710: 3a01 cmphsi r2, 2 + 5712: 0c6d bf 0x57ec // 57ec + 5714: 4461 lsli r3, r4, 1 + 5716: 5e2c addu r1, r6, r3 + 5718: 1205 lrw r0, 0x20000356 // 582c + 571a: 8940 ld.h r2, (r1, 0x0) + 571c: 60c0 addu r3, r0 + 571e: 748b sexth r2, r2 + 5720: 8b60 ld.h r3, (r3, 0x0) + 5722: 648d cmplt r3, r2 + 5724: 9840 ld.w r2, (r14, 0x0) + 5726: 7cc8 mult r3, r2 + 5728: 0c2a bf 0x577c // 577c + 572a: 8940 ld.h r2, (r1, 0x0) + 572c: 748b sexth r2, r2 + 572e: 64c9 cmplt r2, r3 + 5730: 0c26 bf 0x577c // 577c + 5732: 1240 lrw r2, 0x20000538 // 5830 + 5734: 6090 addu r2, r4 + 5736: 8260 ld.b r3, (r2, 0x0) + 5738: 2300 addi r3, 1 + 573a: 74cc zextb r3, r3 + 573c: a260 st.b r3, (r2, 0x0) + 573e: 3100 movi r1, 0 + 5740: 117d lrw r3, 0x2000051e // 5834 + 5742: 60d0 addu r3, r4 + 5744: a320 st.b r1, (r3, 0x0) + 5746: 117d lrw r3, 0x200005fa // 5838 + 5748: 60d0 addu r3, r4 + 574a: a320 st.b r1, (r3, 0x0) + 574c: 117c lrw r3, 0x20000674 // 583c + 574e: 60d0 addu r3, r4 + 5750: a320 st.b r1, (r3, 0x0) + 5752: 8260 ld.b r3, (r2, 0x0) + 5754: 9821 ld.w r1, (r14, 0x4) + 5756: 64c4 cmphs r1, r3 + 5758: 081f bt 0x5796 // 5796 + 575a: 3d40 cmpnei r5, 0 + 575c: 0852 bt 0x5800 // 5800 + 575e: 1139 lrw r1, 0x20000530 // 5840 + 5760: 9160 ld.w r3, (r1, 0x0) + 5762: 3b40 cmpnei r3, 0 + 5764: 0806 bt 0x5770 // 5770 + 5766: 9100 ld.w r0, (r1, 0x0) + 5768: 3301 movi r3, 1 + 576a: 70d0 lsl r3, r4 + 576c: 6cc0 or r3, r0 + 576e: b160 st.w r3, (r1, 0x0) + 5770: 3300 movi r3, 0 + 5772: a260 st.b r3, (r2, 0x0) + 5774: 0411 br 0x5796 // 5796 + 5776: 8920 ld.h r1, (r1, 0x0) + 5778: 7445 zexth r1, r1 + 577a: 07c9 br 0x570c // 570c + 577c: 4441 lsli r2, r4, 1 + 577e: 6098 addu r2, r6 + 5780: 8a40 ld.h r2, (r2, 0x0) + 5782: 748b sexth r2, r2 + 5784: 648d cmplt r3, r2 + 5786: 0c08 bf 0x5796 // 5796 + 5788: 3300 movi r3, 0 + 578a: 114e lrw r2, 0x20000530 // 5840 + 578c: 2b01 subi r3, 2 + 578e: 9220 ld.w r1, (r2, 0x0) + 5790: 70d3 rotl r3, r4 + 5792: 68c4 and r3, r1 + 5794: b260 st.w r3, (r2, 0x0) + 5796: 4441 lsli r2, r4, 1 + 5798: 5e68 addu r3, r6, r2 + 579a: 8b60 ld.h r3, (r3, 0x0) + 579c: 74cf sexth r3, r3 + 579e: b864 st.w r3, (r14, 0x10) + 57a0: 3105 movi r1, 5 + 57a2: 1163 lrw r3, 0x20000356 // 582c + 57a4: 608c addu r2, r3 + 57a6: 8a00 ld.h r0, (r2, 0x0) + 57a8: 4002 lsli r0, r0, 2 + 57aa: e3fff625 bsr 0x43f4 // 43f4 <__divsi3> + 57ae: 9864 ld.w r3, (r14, 0x10) + 57b0: 640d cmplt r3, r0 + 57b2: 0c18 bf 0x57e2 // 57e2 + 57b4: 1140 lrw r2, 0x2000051e // 5834 + 57b6: 6090 addu r2, r4 + 57b8: 8260 ld.b r3, (r2, 0x0) + 57ba: 2300 addi r3, 1 + 57bc: 74cc zextb r3, r3 + 57be: a260 st.b r3, (r2, 0x0) + 57c0: 3100 movi r1, 0 + 57c2: 107c lrw r3, 0x20000538 // 5830 + 57c4: 60d0 addu r3, r4 + 57c6: a320 st.b r1, (r3, 0x0) + 57c8: 8260 ld.b r3, (r2, 0x0) + 57ca: 9822 ld.w r1, (r14, 0x8) + 57cc: 64c4 cmphs r1, r3 + 57ce: 080a bt 0x57e2 // 57e2 + 57d0: 3300 movi r3, 0 + 57d2: 103c lrw r1, 0x20000530 // 5840 + 57d4: 2b01 subi r3, 2 + 57d6: 9100 ld.w r0, (r1, 0x0) + 57d8: 70d3 rotl r3, r4 + 57da: 68c0 and r3, r0 + 57dc: b160 st.w r3, (r1, 0x0) + 57de: 3300 movi r3, 0 + 57e0: a260 st.b r3, (r2, 0x0) + 57e2: 2400 addi r4, 1 + 57e4: 3c51 cmpnei r4, 17 + 57e6: 0b81 bt 0x56e8 // 56e8 + 57e8: 1405 addi r14, r14, 20 + 57ea: 1494 pop r4-r7, r15 + 57ec: 60d8 addu r3, r6 + 57ee: 4441 lsli r2, r4, 1 + 57f0: 102f lrw r1, 0x20000356 // 582c + 57f2: 8b60 ld.h r3, (r3, 0x0) + 57f4: 6084 addu r2, r1 + 57f6: 74cf sexth r3, r3 + 57f8: 8a40 ld.h r2, (r2, 0x0) + 57fa: 64c9 cmplt r2, r3 + 57fc: 0fcd bf 0x5796 // 5796 + 57fe: 079a br 0x5732 // 5732 + 5800: 3d41 cmpnei r5, 1 + 5802: 0bb7 bt 0x5770 // 5770 + 5804: 102f lrw r1, 0x20000530 // 5840 + 5806: 6cd7 mov r3, r5 + 5808: 9100 ld.w r0, (r1, 0x0) + 580a: 07b0 br 0x576a // 576a + 580c: 20000328 .long 0x20000328 + 5810: 200002fc .long 0x200002fc + 5814: 2000054a .long 0x2000054a + 5818: 20000305 .long 0x20000305 + 581c: 20000304 .long 0x20000304 + 5820: 20000746 .long 0x20000746 + 5824: 200004a0 .long 0x200004a0 + 5828: 20000702 .long 0x20000702 + 582c: 20000356 .long 0x20000356 + 5830: 20000538 .long 0x20000538 + 5834: 2000051e .long 0x2000051e + 5838: 200005fa .long 0x200005fa + 583c: 20000674 .long 0x20000674 + 5840: 20000530 .long 0x20000530 + +Disassembly of section .text.TK_overflow_predict: + +00005844 : + 5844: 14d4 push r4-r7, r15 + 5846: 1421 subi r14, r14, 4 + 5848: 11d9 lrw r6, 0x2000006c // 592c + 584a: 8665 ld.b r3, (r6, 0x5) + 584c: 3b41 cmpnei r3, 1 + 584e: 085f bt 0x590c // 590c + 5850: 1158 lrw r2, 0x20000650 // 5930 + 5852: 8260 ld.b r3, (r2, 0x0) + 5854: 2300 addi r3, 1 + 5856: 74cc zextb r3, r3 + 5858: a260 st.b r3, (r2, 0x0) + 585a: 8260 ld.b r3, (r2, 0x0) + 585c: 1136 lrw r1, 0x20000329 // 5934 + 585e: 8120 ld.b r1, (r1, 0x0) + 5860: 64c4 cmphs r1, r3 + 5862: 0855 bt 0x590c // 590c + 5864: 3300 movi r3, 0 + 5866: a260 st.b r3, (r2, 0x0) + 5868: 3500 movi r5, 0 + 586a: 11f4 lrw r7, 0x2000032c // 5938 + 586c: 2605 addi r6, 6 + 586e: 9760 ld.w r3, (r7, 0x0) + 5870: 70d5 lsr r3, r5 + 5872: 3201 movi r2, 1 + 5874: 68c8 and r3, r2 + 5876: 3b40 cmpnei r3, 0 + 5878: 0c34 bf 0x58e0 // 58e0 + 587a: 4581 lsli r4, r5, 1 + 587c: 5e70 addu r3, r6, r4 + 587e: 8b00 ld.h r0, (r3, 0x0) + 5880: e3ffde90 bsr 0x15a0 // 15a0 <__floatunsidf> + 5884: 6cc7 mov r3, r1 + 5886: 3180 movi r1, 128 + 5888: 6c83 mov r2, r0 + 588a: 4137 lsli r1, r1, 23 + 588c: 3000 movi r0, 0 + 588e: e3ffd493 bsr 0x1b4 // 1b4 <__GI_pow> + 5892: 116b lrw r3, 0x20000332 // 593c + 5894: 60d0 addu r3, r4 + 5896: 8b60 ld.h r3, (r3, 0x0) + 5898: 4364 lsli r3, r3, 4 + 589a: 230e addi r3, 15 + 589c: b860 st.w r3, (r14, 0x0) + 589e: e3ffda39 bsr 0xd10 // d10 <__fixunsdfsi> + 58a2: 9860 ld.w r3, (r14, 0x0) + 58a4: 7cc0 mult r3, r0 + 58a6: 1147 lrw r2, 0x200006e0 // 5940 + 58a8: 740d zexth r0, r3 + 58aa: 6090 addu r2, r4 + 58ac: 1166 lrw r3, 0x20000746 // 5944 + 58ae: 60d0 addu r3, r4 + 58b0: aa00 st.h r0, (r2, 0x0) + 58b2: 8b60 ld.h r3, (r3, 0x0) + 58b4: 8a00 ld.h r0, (r2, 0x0) + 58b6: 7401 zexth r0, r0 + 58b8: 325f movi r2, 95 + 58ba: 74cd zexth r3, r3 + 58bc: 7c08 mult r0, r2 + 58be: 3164 movi r1, 100 + 58c0: b860 st.w r3, (r14, 0x0) + 58c2: e3fff599 bsr 0x43f4 // 43f4 <__divsi3> + 58c6: 9860 ld.w r3, (r14, 0x0) + 58c8: 64c1 cmplt r0, r3 + 58ca: 0c0b bf 0x58e0 // 58e0 + 58cc: 107f lrw r3, 0x20000306 // 5948 + 58ce: 610c addu r4, r3 + 58d0: 8c60 ld.h r3, (r4, 0x0) + 58d2: 3b06 cmphsi r3, 7 + 58d4: 0806 bt 0x58e0 // 58e0 + 58d6: 2300 addi r3, 1 + 58d8: ac60 st.h r3, (r4, 0x0) + 58da: 3201 movi r2, 1 + 58dc: 107c lrw r3, 0x200005a5 // 594c + 58de: a340 st.b r2, (r3, 0x0) + 58e0: 2500 addi r5, 1 + 58e2: 3d51 cmpnei r5, 17 + 58e4: 0bc5 bt 0x586e // 586e + 58e6: 107a lrw r3, 0x200005a5 // 594c + 58e8: 8340 ld.b r2, (r3, 0x0) + 58ea: 3a41 cmpnei r2, 1 + 58ec: 0810 bt 0x590c // 590c + 58ee: 3200 movi r2, 0 + 58f0: a340 st.b r2, (r3, 0x0) + 58f2: 3200 movi r2, 0 + 58f4: 1077 lrw r3, 0x20000058 // 5950 + 58f6: 1018 lrw r0, 0x20000673 // 5954 + 58f8: 10b8 lrw r5, 0x200006ac // 5958 + 58fa: 10d4 lrw r6, 0x20000306 // 5948 + 58fc: 9360 ld.w r3, (r3, 0x0) + 58fe: b342 st.w r2, (r3, 0x8) + 5900: 1077 lrw r3, 0x20000054 // 595c + 5902: 9380 ld.w r4, (r3, 0x0) + 5904: 3300 movi r3, 0 + 5906: 8040 ld.b r2, (r0, 0x0) + 5908: 648c cmphs r3, r2 + 590a: 0c03 bf 0x5910 // 5910 + 590c: 1401 addi r14, r14, 4 + 590e: 1494 pop r4-r7, r15 + 5910: 5d4c addu r2, r5, r3 + 5912: 8240 ld.b r2, (r2, 0x0) + 5914: 4241 lsli r2, r2, 1 + 5916: 4322 lsli r1, r3, 2 + 5918: 6098 addu r2, r6 + 591a: 6050 addu r1, r4 + 591c: 8a40 ld.h r2, (r2, 0x0) + 591e: 91f2 ld.w r7, (r1, 0x48) + 5920: 4254 lsli r2, r2, 20 + 5922: 6c9c or r2, r7 + 5924: 2300 addi r3, 1 + 5926: b152 st.w r2, (r1, 0x48) + 5928: 74cc zextb r3, r3 + 592a: 07ee br 0x5906 // 5906 + 592c: 2000006c .long 0x2000006c + 5930: 20000650 .long 0x20000650 + 5934: 20000329 .long 0x20000329 + 5938: 2000032c .long 0x2000032c + 593c: 20000332 .long 0x20000332 + 5940: 200006e0 .long 0x200006e0 + 5944: 20000746 .long 0x20000746 + 5948: 20000306 .long 0x20000306 + 594c: 200005a5 .long 0x200005a5 + 5950: 20000058 .long 0x20000058 + 5954: 20000673 .long 0x20000673 + 5958: 200006ac .long 0x200006ac + 595c: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00005960 : + 5960: 14c4 push r4-r7 + 5962: 1422 subi r14, r14, 8 + 5964: 1348 lrw r2, 0x200005d2 // 5b04 + 5966: 8260 ld.b r3, (r2, 0x0) + 5968: 2300 addi r3, 1 + 596a: 74cc zextb r3, r3 + 596c: a260 st.b r3, (r2, 0x0) + 596e: 8260 ld.b r3, (r2, 0x0) + 5970: 1326 lrw r1, 0x20000329 // 5b08 + 5972: 8120 ld.b r1, (r1, 0x0) + 5974: 644c cmphs r3, r1 + 5976: 0cad bf 0x5ad0 // 5ad0 + 5978: 3300 movi r3, 0 + 597a: a260 st.b r3, (r2, 0x0) + 597c: 1364 lrw r3, 0x20000530 // 5b0c + 597e: 9360 ld.w r3, (r3, 0x0) + 5980: 3b40 cmpnei r3, 0 + 5982: 08a7 bt 0x5ad0 // 5ad0 + 5984: 1323 lrw r1, 0x2000054a // 5b10 + 5986: 6dc7 mov r7, r1 + 5988: b820 st.w r1, (r14, 0x0) + 598a: 3200 movi r2, 0 + 598c: 1362 lrw r3, 0x20000356 // 5b14 + 598e: 1323 lrw r1, 0x200004a0 // 5b18 + 5990: 4201 lsli r0, r2, 1 + 5992: 9880 ld.w r4, (r14, 0x0) + 5994: 6100 addu r4, r0 + 5996: 8c80 ld.h r4, (r4, 0x0) + 5998: 7513 sexth r4, r4 + 599a: 3cdf btsti r4, 31 + 599c: 0c27 bf 0x59ea // 59ea + 599e: 13a0 lrw r5, 0x20000746 // 5b1c + 59a0: 5980 addu r4, r1, r0 + 59a2: 6014 addu r0, r5 + 59a4: b881 st.w r4, (r14, 0x4) + 59a6: 8c80 ld.h r4, (r4, 0x0) + 59a8: 88c0 ld.h r6, (r0, 0x0) + 59aa: 7511 zexth r4, r4 + 59ac: 7599 zexth r6, r6 + 59ae: 8ba0 ld.h r5, (r3, 0x0) + 59b0: 611a subu r4, r6 + 59b2: 6551 cmplt r4, r5 + 59b4: 081b bt 0x59ea // 59ea + 59b6: 9881 ld.w r4, (r14, 0x4) + 59b8: 8c80 ld.h r4, (r4, 0x0) + 59ba: 8800 ld.h r0, (r0, 0x0) + 59bc: 7511 zexth r4, r4 + 59be: 7401 zexth r0, r0 + 59c0: 5c01 subu r0, r4, r0 + 59c2: 4581 lsli r4, r5, 1 + 59c4: 6150 addu r5, r4 + 59c6: 6541 cmplt r0, r5 + 59c8: 0c11 bf 0x59ea // 59ea + 59ca: 1296 lrw r4, 0x20000674 // 5b20 + 59cc: 6108 addu r4, r2 + 59ce: 8400 ld.b r0, (r4, 0x0) + 59d0: 2000 addi r0, 1 + 59d2: 7400 zextb r0, r0 + 59d4: a400 st.b r0, (r4, 0x0) + 59d6: 1214 lrw r0, 0x2000008c // 5b24 + 59d8: 84a0 ld.b r5, (r4, 0x0) + 59da: 8008 ld.b r0, (r0, 0x8) + 59dc: 6540 cmphs r0, r5 + 59de: 0806 bt 0x59ea // 59ea + 59e0: 1212 lrw r0, 0x200005b7 // 5b28 + 59e2: 3501 movi r5, 1 + 59e4: a0a0 st.b r5, (r0, 0x0) + 59e6: 3000 movi r0, 0 + 59e8: a400 st.b r0, (r4, 0x0) + 59ea: 4201 lsli r0, r2, 1 + 59ec: 5f80 addu r4, r7, r0 + 59ee: 8c80 ld.h r4, (r4, 0x0) + 59f0: 7513 sexth r4, r4 + 59f2: 3c20 cmplti r4, 1 + 59f4: 0870 bt 0x5ad4 // 5ad4 + 59f6: 128a lrw r4, 0x20000746 // 5b1c + 59f8: 6100 addu r4, r0 + 59fa: 59a0 addu r5, r1, r0 + 59fc: 8c80 ld.h r4, (r4, 0x0) + 59fe: 8da0 ld.h r5, (r5, 0x0) + 5a00: 7555 zexth r5, r5 + 5a02: 7511 zexth r4, r4 + 5a04: 6116 subu r4, r5 + 5a06: 8ba0 ld.h r5, (r3, 0x0) + 5a08: 45a2 lsli r5, r5, 2 + 5a0a: 6551 cmplt r4, r5 + 5a0c: 0864 bt 0x5ad4 // 5ad4 + 5a0e: 1288 lrw r4, 0x200005fa // 5b2c + 5a10: 6108 addu r4, r2 + 5a12: 84a0 ld.b r5, (r4, 0x0) + 5a14: 2500 addi r5, 1 + 5a16: 7554 zextb r5, r5 + 5a18: a4a0 st.b r5, (r4, 0x0) + 5a1a: 12a3 lrw r5, 0x2000008c // 5b24 + 5a1c: 84c0 ld.b r6, (r4, 0x0) + 5a1e: 85a9 ld.b r5, (r5, 0x9) + 5a20: 6594 cmphs r5, r6 + 5a22: 0806 bt 0x5a2e // 5a2e + 5a24: 12a1 lrw r5, 0x200005b7 // 5b28 + 5a26: 3601 movi r6, 1 + 5a28: a5c0 st.b r6, (r5, 0x0) + 5a2a: 3500 movi r5, 0 + 5a2c: a4a0 st.b r5, (r4, 0x0) + 5a2e: 5f80 addu r4, r7, r0 + 5a30: 8c80 ld.h r4, (r4, 0x0) + 5a32: 7513 sexth r4, r4 + 5a34: 3cdf btsti r4, 31 + 5a36: 0c10 bf 0x5a56 // 5a56 + 5a38: 11d9 lrw r6, 0x20000746 // 5b1c + 5a3a: 59a0 addu r5, r1, r0 + 5a3c: 6180 addu r6, r0 + 5a3e: 8d80 ld.h r4, (r5, 0x0) + 5a40: 8ec0 ld.h r6, (r6, 0x0) + 5a42: 7599 zexth r6, r6 + 5a44: 7511 zexth r4, r4 + 5a46: 611a subu r4, r6 + 5a48: 8bc0 ld.h r6, (r3, 0x0) + 5a4a: 6591 cmplt r4, r6 + 5a4c: 0c05 bf 0x5a56 // 5a56 + 5a4e: 8d80 ld.h r4, (r5, 0x0) + 5a50: 2c00 subi r4, 1 + 5a52: 7511 zexth r4, r4 + 5a54: ad80 st.h r4, (r5, 0x0) + 5a56: 5f80 addu r4, r7, r0 + 5a58: 8c80 ld.h r4, (r4, 0x0) + 5a5a: 7513 sexth r4, r4 + 5a5c: 3cdf btsti r4, 31 + 5a5e: 0c11 bf 0x5a80 // 5a80 + 5a60: 11cf lrw r6, 0x20000746 // 5b1c + 5a62: 59a0 addu r5, r1, r0 + 5a64: 6180 addu r6, r0 + 5a66: 8d80 ld.h r4, (r5, 0x0) + 5a68: 8ec0 ld.h r6, (r6, 0x0) + 5a6a: 7599 zexth r6, r6 + 5a6c: 7511 zexth r4, r4 + 5a6e: 611a subu r4, r6 + 5a70: 8bc0 ld.h r6, (r3, 0x0) + 5a72: 4ec1 lsri r6, r6, 1 + 5a74: 6591 cmplt r4, r6 + 5a76: 0805 bt 0x5a80 // 5a80 + 5a78: 8d80 ld.h r4, (r5, 0x0) + 5a7a: 2c01 subi r4, 2 + 5a7c: 7511 zexth r4, r4 + 5a7e: ad80 st.h r4, (r5, 0x0) + 5a80: 5fa0 addu r5, r7, r0 + 5a82: 8d80 ld.h r4, (r5, 0x0) + 5a84: 7513 sexth r4, r4 + 5a86: 3c20 cmplti r4, 1 + 5a88: 080c bt 0x5aa0 // 5aa0 + 5a8a: 8da0 ld.h r5, (r5, 0x0) + 5a8c: 8b80 ld.h r4, (r3, 0x0) + 5a8e: 7557 sexth r5, r5 + 5a90: 4c81 lsri r4, r4, 1 + 5a92: 6515 cmplt r5, r4 + 5a94: 0c06 bf 0x5aa0 // 5aa0 + 5a96: 59a0 addu r5, r1, r0 + 5a98: 8d80 ld.h r4, (r5, 0x0) + 5a9a: 2400 addi r4, 1 + 5a9c: 7511 zexth r4, r4 + 5a9e: ad80 st.h r4, (r5, 0x0) + 5aa0: 5fa0 addu r5, r7, r0 + 5aa2: 8d80 ld.h r4, (r5, 0x0) + 5aa4: 7513 sexth r4, r4 + 5aa6: 3c20 cmplti r4, 1 + 5aa8: 0810 bt 0x5ac8 // 5ac8 + 5aaa: 8dc0 ld.h r6, (r5, 0x0) + 5aac: 759b sexth r6, r6 + 5aae: 8b80 ld.h r4, (r3, 0x0) + 5ab0: 6519 cmplt r6, r4 + 5ab2: 0c0b bf 0x5ac8 // 5ac8 + 5ab4: 8da0 ld.h r5, (r5, 0x0) + 5ab6: 7557 sexth r5, r5 + 5ab8: 4c81 lsri r4, r4, 1 + 5aba: 6515 cmplt r5, r4 + 5abc: 0806 bt 0x5ac8 // 5ac8 + 5abe: 6004 addu r0, r1 + 5ac0: 8880 ld.h r4, (r0, 0x0) + 5ac2: 2401 addi r4, 2 + 5ac4: 7511 zexth r4, r4 + 5ac6: a880 st.h r4, (r0, 0x0) + 5ac8: 2200 addi r2, 1 + 5aca: 3a51 cmpnei r2, 17 + 5acc: 2301 addi r3, 2 + 5ace: 0b61 bt 0x5990 // 5990 + 5ad0: 1402 addi r14, r14, 8 + 5ad2: 1484 pop r4-r7 + 5ad4: 5f80 addu r4, r7, r0 + 5ad6: 8c80 ld.h r4, (r4, 0x0) + 5ad8: 7513 sexth r4, r4 + 5ada: 3cdf btsti r4, 31 + 5adc: 0fa9 bf 0x5a2e // 5a2e + 5ade: 10b0 lrw r5, 0x20000746 // 5b1c + 5ae0: 5980 addu r4, r1, r0 + 5ae2: 6140 addu r5, r0 + 5ae4: 8c80 ld.h r4, (r4, 0x0) + 5ae6: 8da0 ld.h r5, (r5, 0x0) + 5ae8: 7555 zexth r5, r5 + 5aea: 8bc0 ld.h r6, (r3, 0x0) + 5aec: 7511 zexth r4, r4 + 5aee: 6116 subu r4, r5 + 5af0: 46a1 lsli r5, r6, 1 + 5af2: 6158 addu r5, r6 + 5af4: 6551 cmplt r4, r5 + 5af6: 0b9c bt 0x5a2e // 5a2e + 5af8: 108c lrw r4, 0x200005b7 // 5b28 + 5afa: 3501 movi r5, 1 + 5afc: a4a0 st.b r5, (r4, 0x0) + 5afe: 6c03 mov r0, r0 + 5b00: 0797 br 0x5a2e // 5a2e + 5b02: 0000 bkpt + 5b04: 200005d2 .long 0x200005d2 + 5b08: 20000329 .long 0x20000329 + 5b0c: 20000530 .long 0x20000530 + 5b10: 2000054a .long 0x2000054a + 5b14: 20000356 .long 0x20000356 + 5b18: 200004a0 .long 0x200004a0 + 5b1c: 20000746 .long 0x20000746 + 5b20: 20000674 .long 0x20000674 + 5b24: 2000008c .long 0x2000008c + 5b28: 200005b7 .long 0x200005b7 + 5b2c: 200005fa .long 0x200005fa + +Disassembly of section .text.TK_result_prog: + +00005b30 : + 5b30: 14d2 push r4-r5, r15 + 5b32: 1050 lrw r2, 0x20000530 // 5b70 + 5b34: 1090 lrw r4, 0x200005d4 // 5b74 + 5b36: 9260 ld.w r3, (r2, 0x0) + 5b38: 3b40 cmpnei r3, 0 + 5b3a: 0c02 bf 0x5b3e // 5b3e + 5b3c: 9260 ld.w r3, (r2, 0x0) + 5b3e: b460 st.w r3, (r4, 0x0) + 5b40: 9460 ld.w r3, (r4, 0x0) + 5b42: 3b40 cmpnei r3, 0 + 5b44: 10ad lrw r5, 0x200006a8 // 5b78 + 5b46: 0c11 bf 0x5b68 // 5b68 + 5b48: 9440 ld.w r2, (r4, 0x0) + 5b4a: 9560 ld.w r3, (r5, 0x0) + 5b4c: 64ca cmpne r2, r3 + 5b4e: 0c03 bf 0x5b54 // 5b54 + 5b50: 9460 ld.w r3, (r4, 0x0) + 5b52: b560 st.w r3, (r5, 0x0) + 5b54: e3fffd94 bsr 0x567c // 567c + 5b58: 1069 lrw r3, 0x20000330 // 5b7c + 5b5a: 8360 ld.b r3, (r3, 0x0) + 5b5c: 640c cmphs r3, r0 + 5b5e: 0804 bt 0x5b66 // 5b66 + 5b60: 3300 movi r3, 0 + 5b62: b460 st.w r3, (r4, 0x0) + 5b64: b560 st.w r3, (r5, 0x0) + 5b66: 1492 pop r4-r5, r15 + 5b68: 1046 lrw r2, 0x200005cc // 5b80 + 5b6a: b560 st.w r3, (r5, 0x0) + 5b6c: b260 st.w r3, (r2, 0x0) + 5b6e: 07fc br 0x5b66 // 5b66 + 5b70: 20000530 .long 0x20000530 + 5b74: 200005d4 .long 0x200005d4 + 5b78: 200006a8 .long 0x200006a8 + 5b7c: 20000330 .long 0x20000330 + 5b80: 200005cc .long 0x200005cc + +Disassembly of section .text.CORETHandler: + +00005b84 : + 5b84: 1460 nie + 5b86: 1462 ipush + 5b88: 14d1 push r4, r15 + 5b8a: 1077 lrw r3, 0x20000064 // 5be4 + 5b8c: 3400 movi r4, 0 + 5b8e: 9360 ld.w r3, (r3, 0x0) + 5b90: b386 st.w r4, (r3, 0x18) + 5b92: 1076 lrw r3, 0x20000534 // 5be8 + 5b94: 8360 ld.b r3, (r3, 0x0) + 5b96: 3b41 cmpnei r3, 1 + 5b98: 0820 bt 0x5bd8 // 5bd8 + 5b9a: e3fffd85 bsr 0x56a4 // 56a4 + 5b9e: e3fffd93 bsr 0x56c4 // 56c4 + 5ba2: e3fffe51 bsr 0x5844 // 5844 + 5ba6: e3fffedd bsr 0x5960 // 5960 + 5baa: e3ffffc3 bsr 0x5b30 // 5b30 + 5bae: 1070 lrw r3, 0x200005d4 // 5bec + 5bb0: 9360 ld.w r3, (r3, 0x0) + 5bb2: 3b40 cmpnei r3, 0 + 5bb4: 0c12 bf 0x5bd8 // 5bd8 + 5bb6: 106f lrw r3, 0x20000300 // 5bf0 + 5bb8: 9340 ld.w r2, (r3, 0x0) + 5bba: 3a40 cmpnei r2, 0 + 5bbc: 0c0e bf 0x5bd8 // 5bd8 + 5bbe: 106e lrw r3, 0x200005cc // 5bf4 + 5bc0: 3064 movi r0, 100 + 5bc2: 9320 ld.w r1, (r3, 0x0) + 5bc4: 2100 addi r1, 1 + 5bc6: b320 st.w r1, (r3, 0x0) + 5bc8: 9320 ld.w r1, (r3, 0x0) + 5bca: 7c80 mult r2, r0 + 5bcc: 6448 cmphs r2, r1 + 5bce: 0805 bt 0x5bd8 // 5bd8 + 5bd0: 104a lrw r2, 0x200005b7 // 5bf8 + 5bd2: 3101 movi r1, 1 + 5bd4: a220 st.b r1, (r2, 0x0) + 5bd6: b380 st.w r4, (r3, 0x0) + 5bd8: d9ee2001 ld.w r15, (r14, 0x4) + 5bdc: 9880 ld.w r4, (r14, 0x0) + 5bde: 1402 addi r14, r14, 8 + 5be0: 1463 ipop + 5be2: 1461 nir + 5be4: 20000064 .long 0x20000064 + 5be8: 20000534 .long 0x20000534 + 5bec: 200005d4 .long 0x200005d4 + 5bf0: 20000300 .long 0x20000300 + 5bf4: 200005cc .long 0x200005cc + 5bf8: 200005b7 .long 0x200005b7 + +Disassembly of section .text.std_clk_calib: + +00005bfc : + 5bfc: 14d4 push r4-r7, r15 + 5bfe: 142d subi r14, r14, 52 + 5c00: 3201 movi r2, 1 + 5c02: 03ce lrw r6, 0x2000005c // 5e44 + 5c04: 6cc3 mov r3, r0 + 5c06: dc4e000a st.b r2, (r14, 0xa) + 5c0a: 9640 ld.w r2, (r6, 0x0) + 5c0c: 9247 ld.w r2, (r2, 0x1c) + 5c0e: 7488 zextb r2, r2 + 5c10: dc4e0009 st.b r2, (r14, 0x9) + 5c14: d84e0009 ld.b r2, (r14, 0x9) + 5c18: 3a40 cmpnei r2, 0 + 5c1a: 0c08 bf 0x5c2a // 5c2a + 5c1c: d84e0009 ld.b r2, (r14, 0x9) + 5c20: 3a42 cmpnei r2, 2 + 5c22: 0c04 bf 0x5c2a // 5c2a + 5c24: 3000 movi r0, 0 + 5c26: 140d addi r14, r14, 52 + 5c28: 1494 pop r4-r7, r15 + 5c2a: 0397 lrw r4, 0x2000000c // 5e48 + 5c2c: 3209 movi r2, 9 + 5c2e: 9400 ld.w r0, (r4, 0x0) + 5c30: 3b40 cmpnei r3, 0 + 5c32: b041 st.w r2, (r0, 0x4) + 5c34: 0857 bt 0x5ce2 // 5ce2 + 5c36: 3307 movi r3, 7 + 5c38: dc6e000b st.b r3, (r14, 0xb) + 5c3c: 037b lrw r3, 0x2dc6c00 // 5e4c + 5c3e: b863 st.w r3, (r14, 0xc) + 5c40: 3380 movi r3, 128 + 5c42: 4362 lsli r3, r3, 2 + 5c44: b867 st.w r3, (r14, 0x1c) + 5c46: d86e000b ld.b r3, (r14, 0xb) + 5c4a: 74cc zextb r3, r3 + 5c4c: b062 st.w r3, (r0, 0x8) + 5c4e: 037e lrw r3, 0xffff // 5e50 + 5c50: b063 st.w r3, (r0, 0xc) + 5c52: 3201 movi r2, 1 + 5c54: 3101 movi r1, 1 + 5c56: 03bf lrw r5, 0x20000014 // 5e54 + 5c58: e3ffebec bsr 0x3430 // 3430 + 5c5c: 95e0 ld.w r7, (r5, 0x0) + 5c5e: 137f lrw r3, 0xbe9c0005 // 5e58 + 5c60: b760 st.w r3, (r7, 0x0) + 5c62: 135f lrw r2, 0x30010 // 5e5c + 5c64: 3300 movi r3, 0 + 5c66: b762 st.w r3, (r7, 0x8) + 5c68: b743 st.w r2, (r7, 0xc) + 5c6a: 32d8 movi r2, 216 + 5c6c: b745 st.w r2, (r7, 0x14) + 5c6e: 974f ld.w r2, (r7, 0x3c) + 5c70: 3aa2 bseti r2, 2 + 5c72: b74f st.w r2, (r7, 0x3c) + 5c74: 9803 ld.w r0, (r14, 0xc) + 5c76: d82e000b ld.b r1, (r14, 0xb) + 5c7a: 327d movi r2, 125 + 5c7c: 2100 addi r1, 1 + 5c7e: 7c48 mult r1, r2 + 5c80: b861 st.w r3, (r14, 0x4) + 5c82: e3fff3cb bsr 0x4418 // 4418 <__udivsi3> + 5c86: b804 st.w r0, (r14, 0x10) + 5c88: 32fa movi r2, 250 + 5c8a: 9824 ld.w r1, (r14, 0x10) + 5c8c: 4242 lsli r2, r2, 2 + 5c8e: 6448 cmphs r2, r1 + 5c90: 0bca bt 0x5c24 // 5c24 + 5c92: 9844 ld.w r2, (r14, 0x10) + 5c94: 3178 movi r1, 120 + 5c96: 9804 ld.w r0, (r14, 0x10) + 5c98: b840 st.w r2, (r14, 0x0) + 5c9a: e3fff3bf bsr 0x4418 // 4418 <__udivsi3> + 5c9e: 9840 ld.w r2, (r14, 0x0) + 5ca0: 6082 subu r2, r0 + 5ca2: b845 st.w r2, (r14, 0x14) + 5ca4: 9804 ld.w r0, (r14, 0x10) + 5ca6: 3178 movi r1, 120 + 5ca8: 9844 ld.w r2, (r14, 0x10) + 5caa: b840 st.w r2, (r14, 0x0) + 5cac: e3fff3b6 bsr 0x4418 // 4418 <__udivsi3> + 5cb0: 9840 ld.w r2, (r14, 0x0) + 5cb2: 6008 addu r0, r2 + 5cb4: b806 st.w r0, (r14, 0x18) + 5cb6: c0807020 psrclr ie + 5cba: 9640 ld.w r2, (r6, 0x0) + 5cbc: 9254 ld.w r2, (r2, 0x50) + 5cbe: b848 st.w r2, (r14, 0x20) + 5cc0: 9861 ld.w r3, (r14, 0x4) + 5cc2: 9440 ld.w r2, (r4, 0x0) + 5cc4: b260 st.w r3, (r2, 0x0) + 5cc6: b761 st.w r3, (r7, 0x4) + 5cc8: d86e000a ld.b r3, (r14, 0xa) + 5ccc: 3b40 cmpnei r3, 0 + 5cce: 083e bt 0x5d4a // 5d4a + 5cd0: e3ffeb62 bsr 0x3394 // 3394 + 5cd4: 9400 ld.w r0, (r4, 0x0) + 5cd6: e3ffeb83 bsr 0x33dc // 33dc + 5cda: c1807420 psrset ee, ie + 5cde: 3001 movi r0, 1 + 5ce0: 07a3 br 0x5c26 // 5c26 + 5ce2: 3b41 cmpnei r3, 1 + 5ce4: 0806 bt 0x5cf0 // 5cf0 + 5ce6: 3303 movi r3, 3 + 5ce8: dc6e000b st.b r3, (r14, 0xb) + 5cec: 127d lrw r3, 0x16e3600 // 5e60 + 5cee: 07a8 br 0x5c3e // 5c3e + 5cf0: 3b42 cmpnei r3, 2 + 5cf2: 0806 bt 0x5cfe // 5cfe + 5cf4: 3301 movi r3, 1 + 5cf6: dc6e000b st.b r3, (r14, 0xb) + 5cfa: 127b lrw r3, 0xb71b00 // 5e64 + 5cfc: 07a1 br 0x5c3e // 5c3e + 5cfe: 3b43 cmpnei r3, 3 + 5d00: 0806 bt 0x5d0c // 5d0c + 5d02: 3300 movi r3, 0 + 5d04: dc6e000b st.b r3, (r14, 0xb) + 5d08: 1278 lrw r3, 0x5b8d80 // 5e68 + 5d0a: 079a br 0x5c3e // 5c3e + 5d0c: 3b44 cmpnei r3, 4 + 5d0e: 0809 bt 0x5d20 // 5d20 + 5d10: 3300 movi r3, 0 + 5d12: dc6e000b st.b r3, (r14, 0xb) + 5d16: 1276 lrw r3, 0x54c720 // 5e6c + 5d18: b863 st.w r3, (r14, 0xc) + 5d1a: 3380 movi r3, 128 + 5d1c: 4369 lsli r3, r3, 9 + 5d1e: 0793 br 0x5c44 // 5c44 + 5d20: 3b45 cmpnei r3, 5 + 5d22: 0806 bt 0x5d2e // 5d2e + 5d24: 3300 movi r3, 0 + 5d26: dc6e000b st.b r3, (r14, 0xb) + 5d2a: 1272 lrw r3, 0x3ffed0 // 5e70 + 5d2c: 07f6 br 0x5d18 // 5d18 + 5d2e: 3b46 cmpnei r3, 6 + 5d30: 0806 bt 0x5d3c // 5d3c + 5d32: 3300 movi r3, 0 + 5d34: dc6e000b st.b r3, (r14, 0xb) + 5d38: 126f lrw r3, 0x1fff68 // 5e74 + 5d3a: 07ef br 0x5d18 // 5d18 + 5d3c: 3b47 cmpnei r3, 7 + 5d3e: 0b84 bt 0x5c46 // 5c46 + 5d40: 3300 movi r3, 0 + 5d42: dc6e000b st.b r3, (r14, 0xb) + 5d46: 126d lrw r3, 0x1ffb8 // 5e78 + 5d48: 07e8 br 0x5d18 // 5d18 + 5d4a: 9560 ld.w r3, (r5, 0x0) + 5d4c: 3101 movi r1, 1 + 5d4e: 9440 ld.w r2, (r4, 0x0) + 5d50: b321 st.w r1, (r3, 0x4) + 5d52: b220 st.w r1, (r2, 0x0) + 5d54: 3100 movi r1, 0 + 5d56: b327 st.w r1, (r3, 0x1c) + 5d58: 3004 movi r0, 4 + 5d5a: b225 st.w r1, (r2, 0x14) + 5d5c: 932e ld.w r1, (r3, 0x38) + 5d5e: 6840 and r1, r0 + 5d60: 3940 cmpnei r1, 0 + 5d62: 0ffd bf 0x5d5c // 5d5c + 5d64: 9225 ld.w r1, (r2, 0x14) + 5d66: b82a st.w r1, (r14, 0x28) + 5d68: 3100 movi r1, 0 + 5d6a: b310 st.w r0, (r3, 0x40) + 5d6c: b327 st.w r1, (r3, 0x1c) + 5d6e: 3004 movi r0, 4 + 5d70: b225 st.w r1, (r2, 0x14) + 5d72: 932e ld.w r1, (r3, 0x38) + 5d74: 6840 and r1, r0 + 5d76: 3940 cmpnei r1, 0 + 5d78: 0ffd bf 0x5d72 // 5d72 + 5d7a: 9225 ld.w r1, (r2, 0x14) + 5d7c: b82b st.w r1, (r14, 0x2c) + 5d7e: 3100 movi r1, 0 + 5d80: b310 st.w r0, (r3, 0x40) + 5d82: b327 st.w r1, (r3, 0x1c) + 5d84: 3004 movi r0, 4 + 5d86: b225 st.w r1, (r2, 0x14) + 5d88: 932e ld.w r1, (r3, 0x38) + 5d8a: 6840 and r1, r0 + 5d8c: 3940 cmpnei r1, 0 + 5d8e: 0ffd bf 0x5d88 // 5d88 + 5d90: 9225 ld.w r1, (r2, 0x14) + 5d92: b82c st.w r1, (r14, 0x30) + 5d94: b310 st.w r0, (r3, 0x40) + 5d96: 982b ld.w r1, (r14, 0x2c) + 5d98: 980c ld.w r0, (r14, 0x30) + 5d9a: 6040 addu r1, r0 + 5d9c: b829 st.w r1, (r14, 0x24) + 5d9e: 9829 ld.w r1, (r14, 0x24) + 5da0: 4921 lsri r1, r1, 1 + 5da2: b829 st.w r1, (r14, 0x24) + 5da4: 3100 movi r1, 0 + 5da6: b321 st.w r1, (r3, 0x4) + 5da8: b220 st.w r1, (r2, 0x0) + 5daa: b327 st.w r1, (r3, 0x1c) + 5dac: b225 st.w r1, (r2, 0x14) + 5dae: d86e0009 ld.b r3, (r14, 0x9) + 5db2: 3b42 cmpnei r3, 2 + 5db4: 9849 ld.w r2, (r14, 0x24) + 5db6: 082c bt 0x5e0e // 5e0e + 5db8: 1171 lrw r3, 0x7ff // 5e7c + 5dba: 648c cmphs r3, r2 + 5dbc: 0c03 bf 0x5dc2 // 5dc2 + 5dbe: 3300 movi r3, 0 + 5dc0: 040f br 0x5dde // 5dde + 5dc2: 9849 ld.w r2, (r14, 0x24) + 5dc4: 9866 ld.w r3, (r14, 0x18) + 5dc6: 648c cmphs r3, r2 + 5dc8: 080e bt 0x5de4 // 5de4 + 5dca: 9868 ld.w r3, (r14, 0x20) + 5dcc: 9847 ld.w r2, (r14, 0x1c) + 5dce: 60ca subu r3, r2 + 5dd0: b868 st.w r3, (r14, 0x20) + 5dd2: 32fe movi r2, 254 + 5dd4: 9868 ld.w r3, (r14, 0x20) + 5dd6: 4248 lsli r2, r2, 8 + 5dd8: 68c8 and r3, r2 + 5dda: 3b40 cmpnei r3, 0 + 5ddc: 0812 bt 0x5e00 // 5e00 + 5dde: dc6e000a st.b r3, (r14, 0xa) + 5de2: 0721 br 0x5c24 // 5c24 + 5de4: 9849 ld.w r2, (r14, 0x24) + 5de6: 9865 ld.w r3, (r14, 0x14) + 5de8: 64c8 cmphs r2, r3 + 5dea: 0829 bt 0x5e3c // 5e3c + 5dec: 9868 ld.w r3, (r14, 0x20) + 5dee: 9847 ld.w r2, (r14, 0x1c) + 5df0: 60c8 addu r3, r2 + 5df2: b868 st.w r3, (r14, 0x20) + 5df4: 33fe movi r3, 254 + 5df6: 9848 ld.w r2, (r14, 0x20) + 5df8: 4368 lsli r3, r3, 8 + 5dfa: 688c and r2, r3 + 5dfc: 64ca cmpne r2, r3 + 5dfe: 0fe0 bf 0x5dbe // 5dbe + 5e00: 9660 ld.w r3, (r6, 0x0) + 5e02: 9848 ld.w r2, (r14, 0x20) + 5e04: b354 st.w r2, (r3, 0x50) + 5e06: 3001 movi r0, 1 + 5e08: e3ffed4c bsr 0x38a0 // 38a0 + 5e0c: 075e br 0x5cc8 // 5cc8 + 5e0e: 9866 ld.w r3, (r14, 0x18) + 5e10: 648c cmphs r3, r2 + 5e12: 0809 bt 0x5e24 // 5e24 + 5e14: 9868 ld.w r3, (r14, 0x20) + 5e16: 9847 ld.w r2, (r14, 0x1c) + 5e18: 60ca subu r3, r2 + 5e1a: b868 st.w r3, (r14, 0x20) + 5e1c: 32ff movi r2, 255 + 5e1e: 9868 ld.w r3, (r14, 0x20) + 5e20: 4250 lsli r2, r2, 16 + 5e22: 07db br 0x5dd8 // 5dd8 + 5e24: 9849 ld.w r2, (r14, 0x24) + 5e26: 9865 ld.w r3, (r14, 0x14) + 5e28: 64c8 cmphs r2, r3 + 5e2a: 0809 bt 0x5e3c // 5e3c + 5e2c: 9868 ld.w r3, (r14, 0x20) + 5e2e: 9847 ld.w r2, (r14, 0x1c) + 5e30: 60c8 addu r3, r2 + 5e32: b868 st.w r3, (r14, 0x20) + 5e34: 33ff movi r3, 255 + 5e36: 9848 ld.w r2, (r14, 0x20) + 5e38: 4370 lsli r3, r3, 16 + 5e3a: 07e0 br 0x5dfa // 5dfa + 5e3c: 3300 movi r3, 0 + 5e3e: dc6e000a st.b r3, (r14, 0xa) + 5e42: 07e2 br 0x5e06 // 5e06 + 5e44: 2000005c .long 0x2000005c + 5e48: 2000000c .long 0x2000000c + 5e4c: 02dc6c00 .long 0x02dc6c00 + 5e50: 0000ffff .long 0x0000ffff + 5e54: 20000014 .long 0x20000014 + 5e58: be9c0005 .long 0xbe9c0005 + 5e5c: 00030010 .long 0x00030010 + 5e60: 016e3600 .long 0x016e3600 + 5e64: 00b71b00 .long 0x00b71b00 + 5e68: 005b8d80 .long 0x005b8d80 + 5e6c: 0054c720 .long 0x0054c720 + 5e70: 003ffed0 .long 0x003ffed0 + 5e74: 001fff68 .long 0x001fff68 + 5e78: 0001ffb8 .long 0x0001ffb8 + 5e7c: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250102.map b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250102.map new file mode 100644 index 0000000..9e64a1d --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250102.map @@ -0,0 +1,2457 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 328832 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 166 + Section header string table index: 163 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 002f12 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00002f14 003f14 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00002f4c 003f4c 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00002fc0 003fc0 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 0000300c 00400c 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 0000303c 00403c 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 000030c4 0040c4 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 000030ec 0040ec 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00003128 004128 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 0000313c 00413c 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00003154 004154 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00003174 004174 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00003190 004190 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 000031ac 0041ac 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 000031ec 0041ec 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 000031f8 0041f8 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 0000321c 00421c 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 0000324c 00424c 0000e0 00 AX 0 0 4 + [19] .text.GPIO_PullHi PROGBITS 0000332c 00432c 000014 00 AX 0 0 2 + [20] .text.GPIO_DriveS PROGBITS 00003340 004340 00000e 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 0000334e 00434e 000008 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00003356 004356 000008 00 AX 0 0 2 + [23] .text.GPIO_Revers PROGBITS 0000335e 00435e 000016 00 AX 0 0 2 + [24] .text.GPIO_Read_S PROGBITS 00003374 004374 000010 00 AX 0 0 2 + [25] .text.GPIO_Read_O PROGBITS 00003384 004384 000010 00 AX 0 0 2 + [26] .text.LPT_Soft_Re PROGBITS 00003394 004394 000014 00 AX 0 0 4 + [27] .text.WWDT_CNT_Lo PROGBITS 000033a8 0043a8 000010 00 AX 0 0 4 + [28] .text.BT_DeInit PROGBITS 000033b8 0043b8 00001c 00 AX 0 0 2 + [29] .text.BT_Start PROGBITS 000033d4 0043d4 000008 00 AX 0 0 2 + [30] .text.BT_Soft_Res PROGBITS 000033dc 0043dc 00000a 00 AX 0 0 2 + [31] .text.BT_Configur PROGBITS 000033e6 0043e6 000018 00 AX 0 0 2 + [32] .text.BT_ControlS PROGBITS 000033fe 0043fe 00002c 00 AX 0 0 2 + [33] .text.BT_Period_C PROGBITS 0000342a 00442a 000006 00 AX 0 0 2 + [34] .text.BT_ConfigIn PROGBITS 00003430 004430 000012 00 AX 0 0 2 + [35] .text.BT1_INT_ENA PROGBITS 00003444 004444 000010 00 AX 0 0 4 + [36] .text.GPT_IO_Init PROGBITS 00003454 004454 0000a0 00 AX 0 0 4 + [37] .text.GPT_Configu PROGBITS 000034f4 0044f4 000014 00 AX 0 0 4 + [38] .text.GPT_WaveCtr PROGBITS 00003508 004508 000044 00 AX 0 0 4 + [39] .text.GPT_WaveLoa PROGBITS 0000354c 00454c 000014 00 AX 0 0 4 + [40] .text.GPT_WaveOut PROGBITS 00003560 004560 0000b4 00 AX 0 0 4 + [41] .text.GPT_Start PROGBITS 00003614 004614 000010 00 AX 0 0 4 + [42] .text.GPT_Period_ PROGBITS 00003624 004624 000010 00 AX 0 0 4 + [43] .text.GPT_ConfigI PROGBITS 00003634 004634 00001c 00 AX 0 0 4 + [44] .text.UART0_DeIni PROGBITS 00003650 004650 000018 00 AX 0 0 4 + [45] .text.UART1_DeIni PROGBITS 00003668 004668 000018 00 AX 0 0 4 + [46] .text.UART2_DeIni PROGBITS 00003680 004680 000018 00 AX 0 0 4 + [47] .text.UART0_Int_E PROGBITS 00003698 004698 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 000036b4 0046b4 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 000036d0 0046d0 0000ec 00 AX 0 0 4 + [50] .text.UARTInit PROGBITS 000037bc 0047bc 000010 00 AX 0 0 4 + [51] .text.UARTInitRxT PROGBITS 000037cc 0047cc 000010 00 AX 0 0 4 + [52] .text.UARTTransmi PROGBITS 000037dc 0047dc 00001e 00 AX 0 0 2 + [53] .text.EPT_Stop PROGBITS 000037fc 0047fc 000028 00 AX 0 0 4 + [54] .text.startup.mai PROGBITS 00003824 004824 00007c 00 AX 0 0 4 + [55] .text.delay_nms PROGBITS 000038a0 0048a0 00002c 00 AX 0 0 2 + [56] .text.GPT0_CONFIG PROGBITS 000038cc 0048cc 000094 00 AX 0 0 4 + [57] .text.BT_CONFIG PROGBITS 00003960 004960 000060 00 AX 0 0 4 + [58] .text.SYSCON_CONF PROGBITS 000039c0 0049c0 000062 00 AX 0 0 2 + [59] .text.APT32F102_i PROGBITS 00003a24 004a24 00004c 00 AX 0 0 4 + [60] .text.SYSCONIntHa PROGBITS 00003a70 004a70 0000f0 00 AX 0 0 4 + [61] .text.IFCIntHandl PROGBITS 00003b60 004b60 000068 00 AX 0 0 4 + [62] .text.ADCIntHandl PROGBITS 00003bc8 004bc8 000068 00 AX 0 0 4 + [63] .text.EPT0IntHand PROGBITS 00003c30 004c30 0001ac 00 AX 0 0 4 + [64] .text.WWDTHandler PROGBITS 00003ddc 004ddc 000034 00 AX 0 0 4 + [65] .text.GPT0IntHand PROGBITS 00003e10 004e10 000080 00 AX 0 0 4 + [66] .text.RTCIntHandl PROGBITS 00003e90 004e90 000070 00 AX 0 0 4 + [67] .text.UART0IntHan PROGBITS 00003f00 004f00 00003c 00 AX 0 0 4 + [68] .text.UART1IntHan PROGBITS 00003f3c 004f3c 00003c 00 AX 0 0 4 + [69] .text.UART2IntHan PROGBITS 00003f78 004f78 000094 00 AX 0 0 4 + [70] .text.SPI0IntHand PROGBITS 0000400c 00500c 0000e8 00 AX 0 0 4 + [71] .text.SIO0IntHand PROGBITS 000040f4 0050f4 000054 00 AX 0 0 4 + [72] .text.EXI0IntHand PROGBITS 00004148 005148 000030 00 AX 0 0 4 + [73] .text.EXI1IntHand PROGBITS 00004178 005178 000030 00 AX 0 0 4 + [74] .text.EXI2to3IntH PROGBITS 000041a8 0051a8 000048 00 AX 0 0 4 + [75] .text.EXI4to9IntH PROGBITS 000041f0 0051f0 00005c 00 AX 0 0 4 + [76] .text.EXI10to15In PROGBITS 0000424c 00524c 000060 00 AX 0 0 4 + [77] .text.LPTIntHandl PROGBITS 000042ac 0052ac 000034 00 AX 0 0 4 + [78] .text.BT0IntHandl PROGBITS 000042e0 0052e0 00004c 00 AX 0 0 4 + [79] .text.BT1IntHandl PROGBITS 0000432c 00532c 000064 00 AX 0 0 4 + [80] .text.PriviledgeV PROGBITS 00004390 005390 000002 00 AX 0 0 2 + [81] .text.PendTrapHan PROGBITS 00004392 005392 000008 00 AX 0 0 2 + [82] .text.Trap3Handle PROGBITS 0000439a 00539a 000008 00 AX 0 0 2 + [83] .text.Trap2Handle PROGBITS 000043a2 0053a2 000008 00 AX 0 0 2 + [84] .text.Trap1Handle PROGBITS 000043aa 0053aa 000008 00 AX 0 0 2 + [85] .text.Trap0Handle PROGBITS 000043b2 0053b2 000008 00 AX 0 0 2 + [86] .text.UnrecExecpH PROGBITS 000043ba 0053ba 000008 00 AX 0 0 2 + [87] .text.BreakPointH PROGBITS 000043c2 0053c2 000008 00 AX 0 0 2 + [88] .text.AccessErrHa PROGBITS 000043ca 0053ca 000008 00 AX 0 0 2 + [89] .text.IllegalInst PROGBITS 000043d2 0053d2 000008 00 AX 0 0 2 + [90] .text.MisalignedH PROGBITS 000043da 0053da 000008 00 AX 0 0 2 + [91] .text.CNTAIntHand PROGBITS 000043e2 0053e2 000008 00 AX 0 0 2 + [92] .text.I2CIntHandl PROGBITS 000043ea 0053ea 000008 00 AX 0 0 2 + [93] .text.__divsi3 PROGBITS 000043f4 0053f4 000024 00 AX 0 0 4 + [94] .text.__udivsi3 PROGBITS 00004418 005418 000024 00 AX 0 0 4 + [95] .text.__modsi3 PROGBITS 0000443c 00543c 000024 00 AX 0 0 4 + [96] .text.__umodsi3 PROGBITS 00004460 005460 000024 00 AX 0 0 4 + [97] .text.CK_CPU_EnAl PROGBITS 00004484 005484 000006 00 AX 0 0 2 + [98] .text.UARTx_Init PROGBITS 0000448c 00548c 0000d8 00 AX 0 0 4 + [99] .text.UART2_RecvI PROGBITS 00004564 005564 000064 00 AX 0 0 4 + [100] .text.Dbg_Println PROGBITS 000045c8 0055c8 000098 00 AX 0 0 4 + [101] .text.Dbg_Print_B PROGBITS 00004660 005660 00009c 00 AX 0 0 4 + [102] .text.UART2_TASK PROGBITS 000046fc 0056fc 0000bc 00 AX 0 0 4 + [103] .text.RC522_Delay PROGBITS 000047b8 0057b8 000012 00 AX 0 0 2 + [104] .text.RC522_ReadW PROGBITS 000047cc 0057cc 000054 00 AX 0 0 4 + [105] .text.RC522_ReadR PROGBITS 00004820 005820 000038 00 AX 0 0 4 + [106] .text.RC522_Write PROGBITS 00004858 005858 000030 00 AX 0 0 4 + [107] .text.RC522_PcdRe PROGBITS 00004888 005888 00004c 00 AX 0 0 2 + [108] .text.RC522_SetBi PROGBITS 000048d4 0058d4 000018 00 AX 0 0 2 + [109] .text.RC522_PcdAn PROGBITS 000048ec 0058ec 00001a 00 AX 0 0 2 + [110] .text.RC522_Clear PROGBITS 00004906 005906 000016 00 AX 0 0 2 + [111] .text.RC522_PcdAn PROGBITS 0000491c 00591c 00000c 00 AX 0 0 2 + [112] .text.RC522_Reset PROGBITS 00004928 005928 000044 00 AX 0 0 4 + [113] .text.M500PcdConf PROGBITS 0000496c 00596c 00007e 00 AX 0 0 2 + [114] .text.RC522_Init PROGBITS 000049ec 0059ec 0000c0 00 AX 0 0 4 + [115] .text.RC522_PcdCo PROGBITS 00004aac 005aac 000170 00 AX 0 0 4 + [116] .text.RC522_PcdRe PROGBITS 00004c1c 005c1c 000088 00 AX 0 0 4 + [117] .text.RC522_PcdAn PROGBITS 00004ca4 005ca4 000074 00 AX 0 0 2 + [118] .text.Card_Read_T PROGBITS 00004d18 005d18 0000b0 00 AX 0 0 4 + [119] .text.Detect_SPI_ PROGBITS 00004dc8 005dc8 00009c 00 AX 0 0 4 + [120] .text.RLY_Light_C PROGBITS 00004e64 005e64 000050 00 AX 0 0 4 + [121] .text.KEY1_LONG_P PROGBITS 00004eb4 005eb4 000068 00 AX 0 0 4 + [122] .text.LogicCtrl_I PROGBITS 00004f1c 005f1c 00003c 00 AX 0 0 4 + [123] .text.LogicCtrl_T PROGBITS 00004f58 005f58 0000f0 00 AX 0 0 4 + [124] .text.LogicCtrl_N PROGBITS 00005048 006048 000088 00 AX 0 0 4 + [125] .text.LogicCtrl_N PROGBITS 000050d0 0060d0 0000c0 00 AX 0 0 4 + [126] .text.BackLight_T PROGBITS 00005190 006190 000024 00 AX 0 0 4 + [127] .text.Detect_WIFI PROGBITS 000051b4 0061b4 000094 00 AX 0 0 4 + [128] .text.Led_Task PROGBITS 00005248 006248 000064 00 AX 0 0 4 + [129] .text.CRC16 PROGBITS 000052ac 0062ac 00003c 00 AX 0 0 4 + [130] .text.Read_Versio PROGBITS 000052e8 0062e8 000070 00 AX 0 0 4 + [131] .text.Card_Recv_P PROGBITS 00005358 006358 00008c 00 AX 0 0 4 + [132] .text.button_init PROGBITS 000053e4 0063e4 00003a 00 AX 0 0 2 + [133] .text.button_atta PROGBITS 0000541e 00641e 00000a 00 AX 0 0 2 + [134] .text.button_hand PROGBITS 00005428 006428 000120 00 AX 0 0 2 + [135] .text.button_star PROGBITS 00005548 006548 000024 00 AX 0 0 4 + [136] .text.button_tick PROGBITS 0000556c 00656c 00001c 00 AX 0 0 4 + [137] .text.read_button PROGBITS 00005588 006588 000014 00 AX 0 0 4 + [138] .text.TK_Sampling PROGBITS 0000559c 00659c 000058 00 AX 0 0 4 + [139] .text.TKEYIntHand PROGBITS 000055f4 0065f4 000088 00 AX 0 0 4 + [140] .text.get_key_num PROGBITS 0000567c 00667c 000028 00 AX 0 0 4 + [141] .text.TK_Scan_Sta PROGBITS 000056a4 0066a4 000020 00 AX 0 0 4 + [142] .text.TK_Keymap_p PROGBITS 000056c4 0066c4 000180 00 AX 0 0 4 + [143] .text.TK_overflow PROGBITS 00005844 006844 00011c 00 AX 0 0 4 + [144] .text.TK_Baseline PROGBITS 00005960 006960 0001d0 00 AX 0 0 4 + [145] .text.TK_result_p PROGBITS 00005b30 006b30 000054 00 AX 0 0 4 + [146] .text.CORETHandle PROGBITS 00005b84 006b84 000078 00 AX 0 0 4 + [147] .text.std_clk_cal PROGBITS 00005bfc 006bfc 000284 00 AX 0 0 4 + [148] .RomCode PROGBITS 00005e80 0080a0 000000 00 W 0 0 1 + [149] .rodata PROGBITS 00005e80 006e80 000d38 00 A 0 0 4 + [150] .data PROGBITS 20000000 008000 0000a0 00 WA 0 0 4 + [151] .bss NOBITS 200000a0 0080a0 0006d0 00 WA 0 0 4 + [152] .csky.attributes CSKY_ATTRIBUTES 00000000 0080a0 000022 00 0 0 1 + [153] .comment PROGBITS 00000000 0080c2 000042 01 MS 0 0 1 + [154] .csky_stack_size PROGBITS 00000000 008110 0008ec 00 0 0 16 + [155] .debug_line PROGBITS 00000000 0089fc 003a64 00 0 0 1 + [156] .debug_info PROGBITS 00000000 00c460 02c074 00 0 0 1 + [157] .debug_abbrev PROGBITS 00000000 0384d4 002945 00 0 0 1 + [158] .debug_aranges PROGBITS 00000000 03ae20 000cd0 00 0 0 8 + [159] .debug_ranges PROGBITS 00000000 03baf0 000c00 00 0 0 1 + [160] .debug_str PROGBITS 00000000 03c6f0 0088f7 01 MS 0 0 1 + [161] .debug_frame PROGBITS 00000000 044fe8 001e5c 00 0 0 4 + [162] .debug_loc PROGBITS 00000000 046e44 003029 00 0 0 1 + [163] .shstrtab STRTAB 00000000 04f72e 000d50 00 0 0 1 + [164] .symtab SYMTAB 00000000 049e70 004340 10 165 740 4 + [165] .strtab STRTAB 00000000 04e1b0 00157e 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x06bb8 0x06bb8 R E 0x1000 + LOAD 0x008000 0x20000000 0x00006bb8 0x000a0 0x00770 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.SYSCON_Int_Enable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.GPIO_Read_Output .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.startup.main .text.delay_nms .text.GPT0_CONFIG .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__modsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.Dbg_Println .text.Dbg_Print_Buff .text.UART2_TASK .text.RC522_Delay .text.RC522_ReadWriteOneByte .text.RC522_ReadRawRC .text.RC522_WriteRawRC .text.RC522_PcdReset .text.RC522_SetBitMask .text.RC522_PcdAntennaOn .text.RC522_ClearBitMask .text.RC522_PcdAntennaOff .text.RC522_Reset .text.M500PcdConfigISOType.part.1 .text.RC522_Init .text.RC522_PcdComMF522 .text.RC522_PcdRequest .text.RC522_PcdAnticoll .text.Card_Read_TasK .text.Detect_SPI_task .text.RLY_Light_Ctrl .text.KEY1_LONG_PRESS_RELEASE_Handler .text.LogicCtrl_Init .text.LogicCtrl_Task .text.LogicCtrl_NoRF_Init .text.LogicCtrl_NoRF_Task .text.BackLight_Task .text.Detect_WIFI_Task .text.Led_Task .text.CRC16 .text.Read_Version_Ack .text.Card_Recv_Pro .text.button_init .text.button_attach .text.button_handler .text.button_start .text.button_ticks .text.read_button_GPIO .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_button.o(.text.read_button_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_logic_ctrl.o(.text.Read_Version_Ack) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInit) for UARTInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPT0_CONFIG) for GPT0_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + __dtostr.o(.text) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + _udivdi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + _umoddi3.o(.text) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Card_Recv_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_TASK + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_rc522.o(.text.RC522_Reset) for RC522_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Init) for RC522_Init + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) for RC522_PcdRequest + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) for RC522_PcdAnticoll + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) for Card_Read_TasK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) for Detect_SPI_task + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) for LogicCtrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) for LogicCtrl_Task + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) for LogicCtrl_NoRF_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) for LogicCtrl_NoRF_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.BackLight_Task) for BackLight_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) for Detect_WIFI_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) for Led_Task + Obj/SYSTEM_logic_ctrl.o(.text.Read_Version_Ack) refers to Obj/SYSTEM_logic_ctrl.o(.text.CRC16) for CRC16 + Obj/SYSTEM_logic_ctrl.o(.text.Card_Recv_Pro) refers to Obj/SYSTEM_logic_ctrl.o(.text.CRC16) for CRC16 + Obj/SYSTEM_logic_ctrl.o(.text.Card_Recv_Pro) refers to Obj/SYSTEM_logic_ctrl.o(.text.Read_Version_Ack) for Read_Version_Ack + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_init) for button_init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_attach) for button_attach + Obj/SYSTEM_button.o(.text.button_ticks) refers to Obj/SYSTEM_button.o(.text.button_handler) for button_handler + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_start) for button_start + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_button.o(.text.button_ticks) for button_ticks + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + __dtostr.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + __dtostr.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + __dtostr.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + __dtostr.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + __dtostr.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + __dtostr.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _eq_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _lt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _eq_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _lt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) refers to snprintf_required.o(.text) for __cskyvprintfsnprintf + snprintf_required.o(.text) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/SYSTEM_uart.o(.text.Dbg_Println) refers to vsnprintf_required.o(.text) for __cskyvprintfvsnprintf + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.Read_Version_Ack) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_button.o(.text.button_init) refers to memset_fast.o(.text) for memset + vsnprintf_required.o(.text) refers to memcpy_fast.o(.text) for memcpy + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + vsnprintf_required.o(.text) refers to __v2_printfDFHLlMOPpSSsWp.o(.text) for __v2_printf + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _udivdi3.o(.text) for __udivdi3 + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to _umoddi3.o(.text) for __umoddi3 + __dtostr.o(.text) refers to __dtostr.o(.text) for __GI___dtostr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to __dtostr.o(.text) for __dtostr + __dtostr.o(.text) refers to __isnan.o(.text) for __isnan + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strlen_fast.o(.text) for strlen + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strcpy_fast.o(.text) for strcpy + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strchr.o(.text) for strchr + __v2_printfDFHLlMOPpSSsWp.o(.text) refers to strerror.o(.text) for strerror + __dtostr.o(.text) refers to __isinf.o(.text) for __isinf + __dtostr.o(.text) refers to _eq_df.o(.text) for __eqdf2 + __dtostr.o(.text) refers to _lt_df.o(.text) for __ltdf2 + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (491 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2906 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.EXTI_interrupt_CMD(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.GPIO_EXTI_interrupt(Obj/FWlib_apt32f102_syscon.o), (4 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_IntGroup_Set(Obj/FWlib_apt32f102_gpio.o), (268 bytes). + Removing .text.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3100 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3417 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3162 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4130 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3533 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3649 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4849 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4957 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7606 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2855 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.delay_nus(Obj/mcu_initial.o), (34 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (136 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .data(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .text.RC522_CalulateCRC(Obj/SYSTEM_rc522.o), (102 bytes). + Removing .text.M500PcdConfigISOType(Obj/SYSTEM_rc522.o), (18 bytes). + Removing .text.RC522_MFRC522_SelectTag(Obj/SYSTEM_rc522.o), (110 bytes). + Removing .text.RC522_PcdSelect(Obj/SYSTEM_rc522.o), (106 bytes). + Removing .text.RC522_PcdAuthState(Obj/SYSTEM_rc522.o), (88 bytes). + Removing .text.RC522_PcdRead(Obj/SYSTEM_rc522.o), (84 bytes). + Removing .text.RC522_PcdWrite(Obj/SYSTEM_rc522.o), (142 bytes). + Removing .text(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .data(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .text.Ctrl_Backlight(Obj/SYSTEM_logic_ctrl.o), (36 bytes). + Removing .text.Debounce_Task(Obj/SYSTEM_logic_ctrl.o), (2 bytes). + Removing .text.KEY1_LONG_PRESS_START_Handler(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text(Obj/SYSTEM_button.o), (0 bytes). + Removing .data(Obj/SYSTEM_button.o), (0 bytes). + Removing .text.get_button_event(Obj/SYSTEM_button.o), (6 bytes). + Removing .text.button_stop(Obj/SYSTEM_button.o), (32 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (120 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(snprintf_required.o), (0 bytes). + Removing .bss(snprintf_required.o), (0 bytes). + Removing .data(vsnprintf_required.o), (0 bytes). + Removing .bss(vsnprintf_required.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .data(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .bss(__v2_printfDFHLlMOPpSSsWp.o), (0 bytes). + Removing .data(_udivdi3.o), (0 bytes). + Removing .bss(_udivdi3.o), (0 bytes). + Removing .data(_umoddi3.o), (0 bytes). + Removing .bss(_umoddi3.o), (0 bytes). + Removing .text(minilibc_init.o), (60 bytes). + Removing .data(minilibc_init.o), (0 bytes). + Removing .bss(minilibc_init.o), (0 bytes). + Removing .text(critical.o), (16 bytes). + Removing .data(critical.o), (0 bytes). + Removing .bss(critical.o), (0 bytes). + Removing .comment(critical.o), (67 bytes). + Removing .csky.attributes(critical.o), (32 bytes). + Removing .data(__dtostr.o), (0 bytes). + Removing .bss(__dtostr.o), (0 bytes). + Removing .data(__isnan.o), (0 bytes). + Removing .bss(__isnan.o), (0 bytes). + Removing .text(stdinit.o), (0 bytes). + Removing .data(stdinit.o), (96 bytes). + Removing .bss(stdinit.o), (0 bytes). + Removing .comment(stdinit.o), (67 bytes). + Removing .csky.attributes(stdinit.o), (32 bytes). + Removing .data(strlen_fast.o), (0 bytes). + Removing .bss(strlen_fast.o), (0 bytes). + Removing .data(strcpy_fast.o), (0 bytes). + Removing .bss(strcpy_fast.o), (0 bytes). + Removing .data(strchr.o), (0 bytes). + Removing .bss(strchr.o), (0 bytes). + Removing .data(strerror.o), (0 bytes). + Removing .bss(strerror.o), (0 bytes). + Removing .data(__isinf.o), (0 bytes). + Removing .bss(__isinf.o), (0 bytes). + Removing .data(_eq_df.o), (0 bytes). + Removing .bss(_eq_df.o), (0 bytes). + Removing .data(_lt_df.o), (0 bytes). + Removing .bss(_lt_df.o), (0 bytes). + +652 unused seciton(s) (total 179749 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_button.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_logic_ctrl.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_rc522.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + __dtostr.o 0x00000000 df 0 *ABS* + __isinf.o 0x00000000 df 0 *ABS* + __isnan.o 0x00000000 df 0 *ABS* + __v2_printfDFHLlMOPpSSsWp.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _eq_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _lt_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _udivdi3.o 0x00000000 df 0 *ABS* + _umoddi3.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + snprintf_required.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + strchr.o 0x00000000 df 0 *ABS* + strcpy_fast.o 0x00000000 df 0 *ABS* + strerror.o 0x00000000 df 0 *ABS* + strlen_fast.o 0x00000000 df 0 *ABS* + vsnprintf_required.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + swrite 0x00001984 F 62 .text + $d 0x00001984 0 .text + $t 0x00001984 0 .text + $d 0x00001a18 0 .text + $d 0x00001a1c 0 .text + $t 0x00001a1c 0 .text + $d 0x00001aa4 0 .text + $t 0x00001aa4 0 .text + PAD.1851 0x00001b08 F 52 .text + $d 0x00001b08 0 .text + $t 0x00001b08 0 .text + $d 0x000020b0 0 .text + $t 0x000020bc 0 .text + $d 0x00002258 0 .text + $d 0x00002260 0 .text + $t 0x00002260 0 .text + $d 0x00002600 0 .text + $d 0x0000260c 0 .text + $t 0x0000260c 0 .text + $d 0x000029a0 0 .text + copystring 0x000029ac F 38 .text + $d 0x000029ac 0 .text + $t 0x000029ac 0 .text + $d 0x00002cd8 0 .text + $d 0x00002d0c 0 .text + $t 0x00002d0c 0 .text + $d 0x00002d34 0 .text + $d 0x00002d38 0 .text + $t 0x00002d38 0 .text + $d 0x00002d8c 0 .text + $t 0x00002d8c 0 .text + $d 0x00002e3c 0 .text + $t 0x00002e3c 0 .text + $d 0x00002e50 0 .text + $t 0x00002e50 0 .text + $d 0x00002e64 0 .text + $d 0x00002e6c 0 .text + $t 0x00002e6c 0 .text + $d 0x00002e94 0 .text + $d 0x00002e9c 0 .text + $t 0x00002e9c 0 .text + $d 0x00002ed8 0 .text + $t 0x00002ed8 0 .text + $d 0x00002f14 0 .text.__main + $t 0x00002f14 0 .text.__main + $d 0x00002f38 0 .text.__main + SYSCON_General_CMD.part.0 0x00002f4c F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $t 0x00002f4c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fb8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00002fc0 0 .text.SYSCON_RST_VALUE + $t 0x00002fc0 0 .text.SYSCON_RST_VALUE + $d 0x00002ff0 0 .text.SYSCON_RST_VALUE + $d 0x0000300c 0 .text.SYSCON_General_CMD + $t 0x0000300c 0 .text.SYSCON_General_CMD + $d 0x00003038 0 .text.SYSCON_General_CMD + $d 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x0000303c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030b4 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $t 0x000030c4 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030e8 0 .text.SYSCON_HFOSC_SELECTE + $d 0x000030ec 0 .text.SYSCON_WDT_CMD + $t 0x000030ec 0 .text.SYSCON_WDT_CMD + $d 0x0000311c 0 .text.SYSCON_WDT_CMD + $d 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $t 0x00003128 0 .text.SYSCON_IWDCNT_Reload + $d 0x00003138 0 .text.SYSCON_IWDCNT_Reload + $d 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $t 0x0000313c 0 .text.SYSCON_IWDCNT_Config + $d 0x0000314c 0 .text.SYSCON_IWDCNT_Config + $d 0x00003154 0 .text.SYSCON_LVD_Config + $t 0x00003154 0 .text.SYSCON_LVD_Config + $d 0x0000316c 0 .text.SYSCON_LVD_Config + $d 0x00003174 0 .text.LVD_Int_Enable + $t 0x00003174 0 .text.LVD_Int_Enable + $d 0x0000318c 0 .text.LVD_Int_Enable + $d 0x00003190 0 .text.IWDT_Int_Enable + $t 0x00003190 0 .text.IWDT_Int_Enable + $d 0x000031a8 0 .text.IWDT_Int_Enable + $d 0x000031ac 0 .text.EXTI_trigger_CMD + $t 0x000031ac 0 .text.EXTI_trigger_CMD + $d 0x000031e8 0 .text.EXTI_trigger_CMD + $d 0x000031ec 0 .text.SYSCON_Int_Enable + $t 0x000031ec 0 .text.SYSCON_Int_Enable + $d 0x000031f4 0 .text.SYSCON_Int_Enable + $d 0x000031f8 0 .text.SYSCON_INT_Priority + $t 0x000031f8 0 .text.SYSCON_INT_Priority + $d 0x00003210 0 .text.SYSCON_INT_Priority + $d 0x0000321c 0 .text.Set_INT_Priority + $t 0x0000321c 0 .text.Set_INT_Priority + $d 0x00003248 0 .text.Set_INT_Priority + $d 0x0000324c 0 .text.GPIO_Init + $t 0x0000324c 0 .text.GPIO_Init + $d 0x0000325e 0 .text.GPIO_Init + $t 0x00003266 0 .text.GPIO_Init + $d 0x000032c2 0 .text.GPIO_Init + $t 0x000032ca 0 .text.GPIO_Init + $d 0x00003318 0 .text.GPIO_Init + $d 0x0000332c 0 .text.GPIO_PullHigh_Init + $t 0x0000332c 0 .text.GPIO_PullHigh_Init + $d 0x00003340 0 .text.GPIO_DriveStrength_EN + $t 0x00003340 0 .text.GPIO_DriveStrength_EN + $d 0x0000334e 0 .text.GPIO_Write_High + $t 0x0000334e 0 .text.GPIO_Write_High + $d 0x00003356 0 .text.GPIO_Write_Low + $t 0x00003356 0 .text.GPIO_Write_Low + $d 0x0000335e 0 .text.GPIO_Reverse + $t 0x0000335e 0 .text.GPIO_Reverse + $d 0x00003374 0 .text.GPIO_Read_Status + $t 0x00003374 0 .text.GPIO_Read_Status + $d 0x00003384 0 .text.GPIO_Read_Output + $t 0x00003384 0 .text.GPIO_Read_Output + $d 0x00003394 0 .text.LPT_Soft_Reset + $t 0x00003394 0 .text.LPT_Soft_Reset + $d 0x000033a4 0 .text.LPT_Soft_Reset + $d 0x000033a8 0 .text.WWDT_CNT_Load + $t 0x000033a8 0 .text.WWDT_CNT_Load + $d 0x000033b4 0 .text.WWDT_CNT_Load + $d 0x000033b8 0 .text.BT_DeInit + $t 0x000033b8 0 .text.BT_DeInit + $d 0x000033d4 0 .text.BT_Start + $t 0x000033d4 0 .text.BT_Start + $d 0x000033dc 0 .text.BT_Soft_Reset + $t 0x000033dc 0 .text.BT_Soft_Reset + $d 0x000033e6 0 .text.BT_Configure + $t 0x000033e6 0 .text.BT_Configure + $d 0x000033fe 0 .text.BT_ControlSet_Configure + $t 0x000033fe 0 .text.BT_ControlSet_Configure + $d 0x0000342a 0 .text.BT_Period_CMP_Write + $t 0x0000342a 0 .text.BT_Period_CMP_Write + $d 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $t 0x00003430 0 .text.BT_ConfigInterrupt_CMD + $d 0x00003444 0 .text.BT1_INT_ENABLE + $t 0x00003444 0 .text.BT1_INT_ENABLE + $d 0x00003450 0 .text.BT1_INT_ENABLE + $d 0x00003454 0 .text.GPT_IO_Init + $t 0x00003454 0 .text.GPT_IO_Init + $d 0x000034ec 0 .text.GPT_IO_Init + $d 0x000034f4 0 .text.GPT_Configure + $t 0x000034f4 0 .text.GPT_Configure + $d 0x00003504 0 .text.GPT_Configure + $d 0x00003508 0 .text.GPT_WaveCtrl_Configure + $t 0x00003508 0 .text.GPT_WaveCtrl_Configure + $d 0x00003548 0 .text.GPT_WaveCtrl_Configure + $d 0x0000354c 0 .text.GPT_WaveLoad_Configure + $t 0x0000354c 0 .text.GPT_WaveLoad_Configure + $d 0x0000355c 0 .text.GPT_WaveLoad_Configure + $d 0x00003560 0 .text.GPT_WaveOut_Configure + $t 0x00003560 0 .text.GPT_WaveOut_Configure + $d 0x00003610 0 .text.GPT_WaveOut_Configure + $d 0x00003614 0 .text.GPT_Start + $t 0x00003614 0 .text.GPT_Start + $d 0x00003620 0 .text.GPT_Start + $d 0x00003624 0 .text.GPT_Period_CMP_Write + $t 0x00003624 0 .text.GPT_Period_CMP_Write + $d 0x00003630 0 .text.GPT_Period_CMP_Write + $d 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $t 0x00003634 0 .text.GPT_ConfigInterrupt_CMD + $d 0x0000364c 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00003650 0 .text.UART0_DeInit + $t 0x00003650 0 .text.UART0_DeInit + $d 0x00003664 0 .text.UART0_DeInit + $d 0x00003668 0 .text.UART1_DeInit + $t 0x00003668 0 .text.UART1_DeInit + $d 0x0000367c 0 .text.UART1_DeInit + $d 0x00003680 0 .text.UART2_DeInit + $t 0x00003680 0 .text.UART2_DeInit + $d 0x00003694 0 .text.UART2_DeInit + $d 0x00003698 0 .text.UART0_Int_Enable + $t 0x00003698 0 .text.UART0_Int_Enable + $d 0x000036ac 0 .text.UART0_Int_Enable + $d 0x000036b4 0 .text.UART2_Int_Enable + $t 0x000036b4 0 .text.UART2_Int_Enable + $d 0x000036c8 0 .text.UART2_Int_Enable + $d 0x000036d0 0 .text.UART_IO_Init + $t 0x000036d0 0 .text.UART_IO_Init + $d 0x000037b4 0 .text.UART_IO_Init + $d 0x000037bc 0 .text.UARTInit + $t 0x000037bc 0 .text.UARTInit + $d 0x000037c8 0 .text.UARTInit + $d 0x000037cc 0 .text.UARTInitRxTxIntEn + $t 0x000037cc 0 .text.UARTInitRxTxIntEn + $d 0x000037d8 0 .text.UARTInitRxTxIntEn + $d 0x000037dc 0 .text.UARTTransmit + $t 0x000037dc 0 .text.UARTTransmit + $d 0x000037fc 0 .text.EPT_Stop + $t 0x000037fc 0 .text.EPT_Stop + $d 0x0000381c 0 .text.EPT_Stop + $d 0x00003824 0 .text.startup.main + $t 0x00003824 0 .text.startup.main + $d 0x00003894 0 .text.startup.main + $d 0x000038a0 0 .text.delay_nms + $t 0x000038a0 0 .text.delay_nms + $d 0x000038cc 0 .text.GPT0_CONFIG + $t 0x000038cc 0 .text.GPT0_CONFIG + $d 0x0000395c 0 .text.GPT0_CONFIG + $d 0x00003960 0 .text.BT_CONFIG + $t 0x00003960 0 .text.BT_CONFIG + $d 0x000039b8 0 .text.BT_CONFIG + $d 0x000039c0 0 .text.SYSCON_CONFIG + $t 0x000039c0 0 .text.SYSCON_CONFIG + $d 0x00003a24 0 .text.APT32F102_init + $t 0x00003a24 0 .text.APT32F102_init + $d 0x00003a64 0 .text.APT32F102_init + $d 0x00003a70 0 .text.SYSCONIntHandler + $t 0x00003a70 0 .text.SYSCONIntHandler + $d 0x00003b5c 0 .text.SYSCONIntHandler + $d 0x00003b60 0 .text.IFCIntHandler + $t 0x00003b60 0 .text.IFCIntHandler + $d 0x00003bc4 0 .text.IFCIntHandler + $d 0x00003bc8 0 .text.ADCIntHandler + $t 0x00003bc8 0 .text.ADCIntHandler + $d 0x00003c2c 0 .text.ADCIntHandler + $d 0x00003c30 0 .text.EPT0IntHandler + $t 0x00003c30 0 .text.EPT0IntHandler + $d 0x00003dd0 0 .text.EPT0IntHandler + $d 0x00003ddc 0 .text.WWDTHandler + $t 0x00003ddc 0 .text.WWDTHandler + $d 0x00003e0c 0 .text.WWDTHandler + $d 0x00003e10 0 .text.GPT0IntHandler + $t 0x00003e10 0 .text.GPT0IntHandler + $d 0x00003e8c 0 .text.GPT0IntHandler + $d 0x00003e90 0 .text.RTCIntHandler + $t 0x00003e90 0 .text.RTCIntHandler + $d 0x00003ef8 0 .text.RTCIntHandler + $d 0x00003f00 0 .text.UART0IntHandler + $t 0x00003f00 0 .text.UART0IntHandler + $d 0x00003f38 0 .text.UART0IntHandler + $d 0x00003f3c 0 .text.UART1IntHandler + $t 0x00003f3c 0 .text.UART1IntHandler + $d 0x00003f74 0 .text.UART1IntHandler + $d 0x00003f78 0 .text.UART2IntHandler + $t 0x00003f78 0 .text.UART2IntHandler + $d 0x00003ff8 0 .text.UART2IntHandler + $d 0x0000400c 0 .text.SPI0IntHandler + $t 0x0000400c 0 .text.SPI0IntHandler + $d 0x000040f0 0 .text.SPI0IntHandler + $d 0x000040f4 0 .text.SIO0IntHandler + $t 0x000040f4 0 .text.SIO0IntHandler + $d 0x00004144 0 .text.SIO0IntHandler + $d 0x00004148 0 .text.EXI0IntHandler + $t 0x00004148 0 .text.EXI0IntHandler + $d 0x00004174 0 .text.EXI0IntHandler + $d 0x00004178 0 .text.EXI1IntHandler + $t 0x00004178 0 .text.EXI1IntHandler + $d 0x000041a4 0 .text.EXI1IntHandler + $d 0x000041a8 0 .text.EXI2to3IntHandler + $t 0x000041a8 0 .text.EXI2to3IntHandler + $d 0x000041ec 0 .text.EXI2to3IntHandler + $d 0x000041f0 0 .text.EXI4to9IntHandler + $t 0x000041f0 0 .text.EXI4to9IntHandler + $d 0x00004248 0 .text.EXI4to9IntHandler + $d 0x0000424c 0 .text.EXI10to15IntHandler + $t 0x0000424c 0 .text.EXI10to15IntHandler + $d 0x000042a8 0 .text.EXI10to15IntHandler + $d 0x000042ac 0 .text.LPTIntHandler + $t 0x000042ac 0 .text.LPTIntHandler + $d 0x000042dc 0 .text.LPTIntHandler + $d 0x000042e0 0 .text.BT0IntHandler + $t 0x000042e0 0 .text.BT0IntHandler + $d 0x00004328 0 .text.BT0IntHandler + $d 0x0000432c 0 .text.BT1IntHandler + $t 0x0000432c 0 .text.BT1IntHandler + $d 0x00004388 0 .text.BT1IntHandler + $d 0x00004390 0 .text.PriviledgeVioHandler + $t 0x00004390 0 .text.PriviledgeVioHandler + $d 0x00004392 0 .text.PendTrapHandler + $t 0x00004392 0 .text.PendTrapHandler + $d 0x0000439a 0 .text.Trap3Handler + $t 0x0000439a 0 .text.Trap3Handler + $d 0x000043a2 0 .text.Trap2Handler + $t 0x000043a2 0 .text.Trap2Handler + $d 0x000043aa 0 .text.Trap1Handler + $t 0x000043aa 0 .text.Trap1Handler + $d 0x000043b2 0 .text.Trap0Handler + $t 0x000043b2 0 .text.Trap0Handler + $d 0x000043ba 0 .text.UnrecExecpHandler + $t 0x000043ba 0 .text.UnrecExecpHandler + $d 0x000043c2 0 .text.BreakPointHandler + $t 0x000043c2 0 .text.BreakPointHandler + $d 0x000043ca 0 .text.AccessErrHandler + $t 0x000043ca 0 .text.AccessErrHandler + $d 0x000043d2 0 .text.IllegalInstrHandler + $t 0x000043d2 0 .text.IllegalInstrHandler + $d 0x000043da 0 .text.MisalignedHandler + $t 0x000043da 0 .text.MisalignedHandler + $d 0x000043e2 0 .text.CNTAIntHandler + $t 0x000043e2 0 .text.CNTAIntHandler + $d 0x000043ea 0 .text.I2CIntHandler + $t 0x000043ea 0 .text.I2CIntHandler + $d 0x000043f4 0 .text.__divsi3 + $t 0x000043f4 0 .text.__divsi3 + $d 0x00004414 0 .text.__divsi3 + $d 0x00004418 0 .text.__udivsi3 + $t 0x00004418 0 .text.__udivsi3 + $d 0x00004438 0 .text.__udivsi3 + $d 0x0000443c 0 .text.__modsi3 + $t 0x0000443c 0 .text.__modsi3 + $d 0x0000445c 0 .text.__modsi3 + $d 0x00004460 0 .text.__umodsi3 + $t 0x00004460 0 .text.__umodsi3 + $d 0x00004480 0 .text.__umodsi3 + $d 0x00004484 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00004484 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000448c 0 .text.UARTx_Init + $t 0x0000448c 0 .text.UARTx_Init + $d 0x00004548 0 .text.UARTx_Init + $d 0x00004564 0 .text.UART2_RecvINT_Processing + $t 0x00004564 0 .text.UART2_RecvINT_Processing + $d 0x000045b8 0 .text.UART2_RecvINT_Processing + $d 0x000045c8 0 .text.Dbg_Println + $t 0x000045c8 0 .text.Dbg_Println + $d 0x00004648 0 .text.Dbg_Println + $d 0x00004660 0 .text.Dbg_Print_Buff + $t 0x00004660 0 .text.Dbg_Print_Buff + $d 0x000046e0 0 .text.Dbg_Print_Buff + $d 0x000046fc 0 .text.UART2_TASK + $t 0x000046fc 0 .text.UART2_TASK + $d 0x000047a0 0 .text.UART2_TASK + $d 0x000047b8 0 .text.RC522_Delay + $t 0x000047b8 0 .text.RC522_Delay + $d 0x000047cc 0 .text.RC522_ReadWriteOneByte + $t 0x000047cc 0 .text.RC522_ReadWriteOneByte + $d 0x0000481c 0 .text.RC522_ReadWriteOneByte + $d 0x00004820 0 .text.RC522_ReadRawRC + $t 0x00004820 0 .text.RC522_ReadRawRC + $d 0x00004854 0 .text.RC522_ReadRawRC + $d 0x00004858 0 .text.RC522_WriteRawRC + $t 0x00004858 0 .text.RC522_WriteRawRC + $d 0x00004884 0 .text.RC522_WriteRawRC + $d 0x00004888 0 .text.RC522_PcdReset + $t 0x00004888 0 .text.RC522_PcdReset + $d 0x000048d4 0 .text.RC522_SetBitMask + $t 0x000048d4 0 .text.RC522_SetBitMask + $d 0x000048ec 0 .text.RC522_PcdAntennaOn + $t 0x000048ec 0 .text.RC522_PcdAntennaOn + $d 0x00004906 0 .text.RC522_ClearBitMask + $t 0x00004906 0 .text.RC522_ClearBitMask + $d 0x0000491c 0 .text.RC522_PcdAntennaOff + $t 0x0000491c 0 .text.RC522_PcdAntennaOff + $d 0x00004928 0 .text.RC522_Reset + $t 0x00004928 0 .text.RC522_Reset + $d 0x00004968 0 .text.RC522_Reset + M500PcdConfigISOType.part.1 0x0000496c F 126 .text.M500PcdConfigISOType.part.1 + $d 0x0000496c 0 .text.M500PcdConfigISOType.part.1 + $t 0x0000496c 0 .text.M500PcdConfigISOType.part.1 + $d 0x000049ec 0 .text.RC522_Init + $t 0x000049ec 0 .text.RC522_Init + $d 0x00004aa4 0 .text.RC522_Init + $d 0x00004aac 0 .text.RC522_PcdComMF522 + $t 0x00004aac 0 .text.RC522_PcdComMF522 + $d 0x00004c18 0 .text.RC522_PcdComMF522 + $d 0x00004c1c 0 .text.RC522_PcdRequest + $t 0x00004c1c 0 .text.RC522_PcdRequest + $d 0x00004c9c 0 .text.RC522_PcdRequest + $d 0x00004ca4 0 .text.RC522_PcdAnticoll + $t 0x00004ca4 0 .text.RC522_PcdAnticoll + $d 0x00004d18 0 .text.Card_Read_TasK + $t 0x00004d18 0 .text.Card_Read_TasK + $d 0x00004dac 0 .text.Card_Read_TasK + $d 0x00004dc8 0 .text.Detect_SPI_task + $t 0x00004dc8 0 .text.Detect_SPI_task + $d 0x00004e44 0 .text.Detect_SPI_task + $d 0x00004e64 0 .text.RLY_Light_Ctrl + $t 0x00004e64 0 .text.RLY_Light_Ctrl + $d 0x00004ea0 0 .text.RLY_Light_Ctrl + $d 0x00004eb4 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $t 0x00004eb4 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004f00 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x00004f1c 0 .text.LogicCtrl_Init + $t 0x00004f1c 0 .text.LogicCtrl_Init + $d 0x00004f50 0 .text.LogicCtrl_Init + $d 0x00004f58 0 .text.LogicCtrl_Task + $t 0x00004f58 0 .text.LogicCtrl_Task + $d 0x0000502c 0 .text.LogicCtrl_Task + $d 0x00005048 0 .text.LogicCtrl_NoRF_Init + $t 0x00005048 0 .text.LogicCtrl_NoRF_Init + $d 0x000050b8 0 .text.LogicCtrl_NoRF_Init + $d 0x000050d0 0 .text.LogicCtrl_NoRF_Task + $t 0x000050d0 0 .text.LogicCtrl_NoRF_Task + $d 0x00005178 0 .text.LogicCtrl_NoRF_Task + $d 0x00005190 0 .text.BackLight_Task + $t 0x00005190 0 .text.BackLight_Task + $d 0x000051ac 0 .text.BackLight_Task + $d 0x000051b4 0 .text.Detect_WIFI_Task + $t 0x000051b4 0 .text.Detect_WIFI_Task + $d 0x00005224 0 .text.Detect_WIFI_Task + $d 0x00005248 0 .text.Led_Task + $t 0x00005248 0 .text.Led_Task + $d 0x00005298 0 .text.Led_Task + $d 0x000052ac 0 .text.CRC16 + $t 0x000052ac 0 .text.CRC16 + $d 0x000052e0 0 .text.CRC16 + $d 0x000052e8 0 .text.Read_Version_Ack + $t 0x000052e8 0 .text.Read_Version_Ack + $d 0x00005354 0 .text.Read_Version_Ack + $d 0x00005358 0 .text.Card_Recv_Pro + $t 0x00005358 0 .text.Card_Recv_Pro + $d 0x000053d4 0 .text.Card_Recv_Pro + $d 0x000053e4 0 .text.button_init + $t 0x000053e4 0 .text.button_init + $d 0x0000541e 0 .text.button_attach + $t 0x0000541e 0 .text.button_attach + $d 0x00005428 0 .text.button_handler + $t 0x00005428 0 .text.button_handler + $d 0x00005548 0 .text.button_start + $t 0x00005548 0 .text.button_start + $d 0x00005568 0 .text.button_start + $d 0x0000556c 0 .text.button_ticks + $t 0x0000556c 0 .text.button_ticks + $d 0x00005584 0 .text.button_ticks + $d 0x00005588 0 .text.read_button_GPIO + $t 0x00005588 0 .text.read_button_GPIO + $d 0x00005598 0 .text.read_button_GPIO + $d 0x0000559c 0 .text.TK_Sampling_prog + $t 0x0000559c 0 .text.TK_Sampling_prog + $d 0x000055e4 0 .text.TK_Sampling_prog + $d 0x000055f4 0 .text.TKEYIntHandler + $t 0x000055f4 0 .text.TKEYIntHandler + $d 0x00005670 0 .text.TKEYIntHandler + $d 0x0000567c 0 .text.get_key_number + $t 0x0000567c 0 .text.get_key_number + $d 0x000056a0 0 .text.get_key_number + $d 0x000056a4 0 .text.TK_Scan_Start + $t 0x000056a4 0 .text.TK_Scan_Start + $d 0x000056bc 0 .text.TK_Scan_Start + $d 0x000056c4 0 .text.TK_Keymap_prog + $t 0x000056c4 0 .text.TK_Keymap_prog + $d 0x0000580c 0 .text.TK_Keymap_prog + $d 0x00005844 0 .text.TK_overflow_predict + $t 0x00005844 0 .text.TK_overflow_predict + $d 0x0000592c 0 .text.TK_overflow_predict + $d 0x00005960 0 .text.TK_Baseline_tracking + $t 0x00005960 0 .text.TK_Baseline_tracking + $d 0x00005b04 0 .text.TK_Baseline_tracking + $d 0x00005b30 0 .text.TK_result_prog + $t 0x00005b30 0 .text.TK_result_prog + $d 0x00005b70 0 .text.TK_result_prog + $d 0x00005b84 0 .text.CORETHandler + $t 0x00005b84 0 .text.CORETHandler + $d 0x00005be4 0 .text.CORETHandler + $d 0x00005bfc 0 .text.std_clk_calib + $t 0x00005bfc 0 .text.std_clk_calib + $d 0x00005e44 0 .text.std_clk_calib + bp 0x00005e80 O 16 .rodata + dp_l 0x00005e90 O 16 .rodata + dp_h 0x00005ea0 O 16 .rodata + blanks.1847 0x00005fc4 O 16 .rodata + zeroes.1848 0x00005fd4 O 16 .rodata + CSWTCH.1 0x00005fe4 O 576 .rodata + NUM.6038 0x200000b0 O 1 .bss + test_tick.5962 0x200002ec O 4 .bss + card_tick.5961 0x200002f0 O 4 .bss + head_handle 0x200002f8 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __cskyvprintfsnprintf 0x00001964 F 32 .text + __cskyvprintfvsnprintf 0x000019c2 F 90 .text + __memset_fast 0x00001a1c w F 136 .text + memset 0x00001a1c w F 136 .text + __memcpy_fast 0x00001aa4 w F 100 .text + memcpy 0x00001aa4 w F 100 .text + __v2_printf 0x00001b3c F 1828 .text + __v2_printf$DFHLlMOPpSSsWp 0x00001b3c F 1828 .text + __udivdi3 0x00002260 F 940 .text + __umoddi3 0x0000260c F 928 .text + __GI___dtostr 0x000029d2 F 826 .text + __dtostr 0x000029d2 F 826 .text + __isnan 0x00002d0c F 44 .text + __strlen_fast 0x00002d38 w F 82 .text + strlen 0x00002d38 w F 82 .text + __strcpy_fast 0x00002d8c w F 176 .text + strcpy 0x00002d8c w F 176 .text + __GI_strchr 0x00002e3c F 18 .text + strchr 0x00002e3c w F 18 .text + __GI_strerror 0x00002e50 F 28 .text + strerror 0x00002e50 F 28 .text + __isinf 0x00002e6c F 48 .text + __eqdf2 0x00002e9c F 58 .text + __ltdf2 0x00002ed8 F 58 .text + __main 0x00002f14 F 56 .text.__main + SYSCON_RST_VALUE 0x00002fc0 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x0000300c F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x0000303c F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x000030c4 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x000030ec F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00003128 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x0000313c F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00003154 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00003174 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00003190 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x000031ac F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x000031ec F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x000031f8 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x0000321c F 48 .text.Set_INT_Priority + GPIO_Init 0x0000324c F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x0000332c F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00003340 F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x0000334e F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00003356 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x0000335e F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00003374 F 16 .text.GPIO_Read_Status + GPIO_Read_Output 0x00003384 F 16 .text.GPIO_Read_Output + LPT_Soft_Reset 0x00003394 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000033a8 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000033b8 F 28 .text.BT_DeInit + BT_Start 0x000033d4 F 8 .text.BT_Start + BT_Soft_Reset 0x000033dc F 10 .text.BT_Soft_Reset + BT_Configure 0x000033e6 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000033fe F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000342a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00003430 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00003444 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00003454 F 160 .text.GPT_IO_Init + GPT_Configure 0x000034f4 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00003508 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x0000354c F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x00003560 F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x00003614 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x00003624 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x00003634 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x00003650 F 24 .text.UART0_DeInit + UART1_DeInit 0x00003668 F 24 .text.UART1_DeInit + UART2_DeInit 0x00003680 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00003698 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000036b4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x000036d0 F 236 .text.UART_IO_Init + UARTInit 0x000037bc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x000037cc F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000037dc F 30 .text.UARTTransmit + EPT_Stop 0x000037fc F 40 .text.EPT_Stop + main 0x00003824 F 124 .text.startup.main + delay_nms 0x000038a0 F 44 .text.delay_nms + GPT0_CONFIG 0x000038cc F 148 .text.GPT0_CONFIG + BT_CONFIG 0x00003960 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x000039c0 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00003a24 F 76 .text.APT32F102_init + SYSCONIntHandler 0x00003a70 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00003b60 F 104 .text.IFCIntHandler + ADCIntHandler 0x00003bc8 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003c30 F 428 .text.EPT0IntHandler + WWDTHandler 0x00003ddc F 52 .text.WWDTHandler + GPT0IntHandler 0x00003e10 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00003e90 F 112 .text.RTCIntHandler + UART0IntHandler 0x00003f00 F 60 .text.UART0IntHandler + UART1IntHandler 0x00003f3c F 60 .text.UART1IntHandler + UART2IntHandler 0x00003f78 F 148 .text.UART2IntHandler + SPI0IntHandler 0x0000400c F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000040f4 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00004148 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00004178 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000041a8 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000041f0 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x0000424c F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000042ac F 52 .text.LPTIntHandler + BT0IntHandler 0x000042e0 F 76 .text.BT0IntHandler + BT1IntHandler 0x0000432c F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00004390 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00004392 F 8 .text.PendTrapHandler + Trap3Handler 0x0000439a F 8 .text.Trap3Handler + Trap2Handler 0x000043a2 F 8 .text.Trap2Handler + Trap1Handler 0x000043aa F 8 .text.Trap1Handler + Trap0Handler 0x000043b2 F 8 .text.Trap0Handler + UnrecExecpHandler 0x000043ba F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000043c2 F 8 .text.BreakPointHandler + AccessErrHandler 0x000043ca F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000043d2 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000043da F 8 .text.MisalignedHandler + CNTAIntHandler 0x000043e2 F 8 .text.CNTAIntHandler + I2CIntHandler 0x000043ea F 8 .text.I2CIntHandler + __divsi3 0x000043f4 F 36 .text.__divsi3 + __udivsi3 0x00004418 F 36 .text.__udivsi3 + __modsi3 0x0000443c F 36 .text.__modsi3 + __umodsi3 0x00004460 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00004484 F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x0000448c F 216 .text.UARTx_Init + UART2_RecvINT_Processing 0x00004564 F 100 .text.UART2_RecvINT_Processing + Dbg_Println 0x000045c8 F 152 .text.Dbg_Println + Dbg_Print_Buff 0x00004660 F 156 .text.Dbg_Print_Buff + UART2_TASK 0x000046fc F 188 .text.UART2_TASK + RC522_Delay 0x000047b8 F 18 .text.RC522_Delay + RC522_ReadWriteOneByte 0x000047cc F 84 .text.RC522_ReadWriteOneByte + RC522_ReadRawRC 0x00004820 F 56 .text.RC522_ReadRawRC + RC522_WriteRawRC 0x00004858 F 48 .text.RC522_WriteRawRC + RC522_PcdReset 0x00004888 F 76 .text.RC522_PcdReset + RC522_SetBitMask 0x000048d4 F 24 .text.RC522_SetBitMask + RC522_PcdAntennaOn 0x000048ec F 26 .text.RC522_PcdAntennaOn + RC522_ClearBitMask 0x00004906 F 22 .text.RC522_ClearBitMask + RC522_PcdAntennaOff 0x0000491c F 12 .text.RC522_PcdAntennaOff + RC522_Reset 0x00004928 F 68 .text.RC522_Reset + RC522_Init 0x000049ec F 192 .text.RC522_Init + RC522_PcdComMF522 0x00004aac F 368 .text.RC522_PcdComMF522 + RC522_PcdRequest 0x00004c1c F 136 .text.RC522_PcdRequest + RC522_PcdAnticoll 0x00004ca4 F 116 .text.RC522_PcdAnticoll + Card_Read_TasK 0x00004d18 F 176 .text.Card_Read_TasK + Detect_SPI_task 0x00004dc8 F 156 .text.Detect_SPI_task + RLY_Light_Ctrl 0x00004e64 F 80 .text.RLY_Light_Ctrl + KEY1_LONG_PRESS_RELEASE_Handler 0x00004eb4 F 104 .text.KEY1_LONG_PRESS_RELEASE_Handler + LogicCtrl_Init 0x00004f1c F 60 .text.LogicCtrl_Init + LogicCtrl_Task 0x00004f58 F 240 .text.LogicCtrl_Task + LogicCtrl_NoRF_Init 0x00005048 F 136 .text.LogicCtrl_NoRF_Init + LogicCtrl_NoRF_Task 0x000050d0 F 192 .text.LogicCtrl_NoRF_Task + BackLight_Task 0x00005190 F 36 .text.BackLight_Task + Detect_WIFI_Task 0x000051b4 F 148 .text.Detect_WIFI_Task + Led_Task 0x00005248 F 100 .text.Led_Task + CRC16 0x000052ac F 60 .text.CRC16 + Read_Version_Ack 0x000052e8 F 112 .text.Read_Version_Ack + Card_Recv_Pro 0x00005358 F 140 .text.Card_Recv_Pro + button_init 0x000053e4 F 58 .text.button_init + button_attach 0x0000541e F 10 .text.button_attach + button_handler 0x00005428 F 288 .text.button_handler + button_start 0x00005548 F 36 .text.button_start + button_ticks 0x0000556c F 28 .text.button_ticks + read_button_GPIO 0x00005588 F 20 .text.read_button_GPIO + TK_Sampling_prog 0x0000559c F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x000055f4 F 136 .text.TKEYIntHandler + get_key_number 0x0000567c F 40 .text.get_key_number + TK_Scan_Start 0x000056a4 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x000056c4 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00005844 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00005960 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00005b30 F 84 .text.TK_result_prog + CORETHandler 0x00005b84 F 120 .text.CORETHandler + std_clk_calib 0x00005bfc F 644 .text.std_clk_calib + __thenan_df 0x00005eb0 O 20 .rodata + __clz_tab 0x00005ec4 O 256 .rodata + _end_rodata 0x00006bb8 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + Dbg_Switch 0x20000068 O 4 .data + s_tkey 0x2000006c O 4 .data + samp_setover_f 0x20000070 O 1 .data + tk_overflow_en 0x20000071 O 1 .data + tk_div 0x20000072 O 34 .data + neg_build_bounce 0x20000094 O 1 .data + pos_build_bounce 0x20000095 O 1 .data + tk_scan_para0 0x20000098 O 4 .data + scan_step_temp 0x2000009c O 1 .data + _end_data 0x200000a0 0 .data + _bss_start 0x200000a0 0 .bss + rf_exist 0x200000a0 O 1 .bss + last_state 0x200000a1 O 1 .bss + finish_flag 0x200000a2 O 1 .bss + Card_Tick 0x200000a4 O 4 .bss + detect_tick 0x200000a8 O 4 .bss + detect_count 0x200000ac O 1 .bss + test_state 0x200000ad O 1 .bss + SysTick_100us 0x200000b4 O 4 .bss + SysTick_1ms 0x200000b8 O 4 .bss + RS485_Comming 0x200000bc O 4 .bss + RS485_Comm_Flag 0x200000c0 O 4 .bss + RS485_Comm_Start 0x200000c4 O 4 .bss + RS485_Comm_End 0x200000c8 O 4 .bss + SysTick_Now 0x200000cc O 4 .bss + SysTick_Last 0x200000d0 O 4 .bss + SysTick_Diff 0x200000d4 O 4 .bss + Dbg_Buffer 0x200000d8 O 512 .bss + FIFOLevelReg_flag 0x200002d8 O 1 .bss + scan_tick 0x200002dc O 4 .bss + HL_tick 0x200002e0 O 4 .bss + Tim_Flag 0x200002e4 O 4 .bss + start_light 0x200002e8 O 1 .bss + power_tick 0x200002f4 O 4 .bss + Press_debounce_data 0x200002fc O 1 .bss + TK_Lowpower_mode 0x200002fd O 1 .bss + TK_Lowpower_level 0x200002fe O 1 .bss + TK_longpress_time 0x20000300 O 4 .bss + Release_debounce_data 0x20000304 O 1 .bss + Key_mode 0x20000305 O 1 .bss + TK_icon 0x20000306 O 34 .bss + MultiTimes_Filter 0x20000328 O 1 .bss + Base_Speed 0x20000329 O 1 .bss + TK_IO_ENABLE 0x2000032c O 4 .bss + Valid_Key_Num 0x20000330 O 1 .bss + TK_senprd 0x20000332 O 34 .bss + TK_Wakeup_level 0x20000354 O 1 .bss + TK_Triggerlevel 0x20000356 O 34 .bss + TK_EC_LEVEL 0x20000378 O 2 .bss + TK_FVR_LEVEL 0x2000037a O 2 .bss + TK_BaseCnt 0x2000037c O 4 .bss + TK_PSEL_MODE 0x20000380 O 2 .bss + R_CMPB_BUF 0x20000384 O 4 .bss + R_CMPA_BUF 0x20000388 O 4 .bss + R_SIORX_buf 0x2000038c O 40 .bss + g_uart 0x200003b4 O 115 .bss + CardInfo 0x20000428 O 52 .bss + g_read 0x2000045c O 8 .bss + KEY1 0x20000464 O 48 .bss + dm_in 0x20000494 O 9 .bss + baseline_data0 0x200004a0 O 34 .bss + TK_Postive_build2 0x200004c2 O 17 .bss + Key_Map1 0x200004d4 O 4 .bss + offset_data2_abs 0x200004d8 O 34 .bss + scan_f 0x200004fa O 1 .bss + offset_data1_abs 0x200004fc O 34 .bss + Release_debounce0 0x2000051e O 17 .bss + Key_Map0 0x20000530 O 4 .bss + bsae_over_f 0x20000534 O 1 .bss + scan_cnt 0x20000536 O 2 .bss + Press_debounce0 0x20000538 O 17 .bss + offset_data0 0x2000054a O 34 .bss + sampling_data1 0x2000056c O 34 .bss + Key_Map2 0x20000590 O 4 .bss + Release_debounce1 0x20000594 O 17 .bss + tk_overflow_f 0x200005a5 O 1 .bss + TK_Negtive_build2 0x200005a6 O 17 .bss + base_update_f 0x200005b7 O 1 .bss + TK_Postive_build1 0x200005b8 O 17 .bss + time_cnt 0x200005cc O 4 .bss + lpt_scan_pend_cnt 0x200005d0 O 2 .bss + TK_track_cnt 0x200005d2 O 1 .bss + Key_Map 0x200005d4 O 4 .bss + baseline_data1 0x200005d8 O 34 .bss + TK_Postive_build0 0x200005fa O 17 .bss + sampling_data2 0x2000060c O 34 .bss + offset_data1 0x2000062e O 34 .bss + TK_ovrdect_cnt 0x20000650 O 1 .bss + Press_debounce2 0x20000651 O 17 .bss + TK_Negtive_build1 0x20000662 O 17 .bss + tk_num 0x20000673 O 1 .bss + TK_Negtive_build0 0x20000674 O 17 .bss + Press_debounce1 0x20000685 O 17 .bss + Release_debounce2 0x20000696 O 17 .bss + r_Key_Map_Temp 0x200006a8 O 4 .bss + tk_seque 0x200006ac O 17 .bss + scan_step 0x200006bd O 1 .bss + baseline_data2 0x200006be O 34 .bss + tk_sampling_max 0x200006e0 O 34 .bss + offset_data0_abs 0x20000702 O 34 .bss + offset_data2 0x20000724 O 34 .bss + sampling_data0 0x20000746 O 34 .bss + errno 0x20000768 O 4 .bss + __malloc_lock 0x2000076c O 4 .bss + _ebss 0x20000770 0 .bss + _end 0x20000770 0 .bss + end 0x20000770 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00006bb8, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1014 .text pow.o + 0x00000b5e 0x00000006 Code RO 1022 .text fabs.o + 0x00000b64 0x00000020 Code RO 1028 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1035 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1046 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1051 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1058 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1065 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1072 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1079 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1086 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1093 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1100 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1107 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1121 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1128 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1135 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1141 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1148 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1155 .text _fpcmp_parts_df.o + 0x00001964 0x00000020 Code RO 1176 .text snprintf_required.o + 0x00001984 0x00000098 Code RO 1183 .text vsnprintf_required.o + 0x00001a1c 0x00000088 Code RO 1190 .text memset_fast.o + 0x00001aa4 0x00000064 Code RO 1195 .text memcpy_fast.o + 0x00001b08 0x00000758 Code RO 1353 .text __v2_printfDFHLlMOPpSSsWp.o + 0x00002260 0x000003ac Code RO 1412 .text _udivdi3.o + 0x0000260c 0x000003a0 Code RO 1419 .text _umoddi3.o + 0x000029ac 0x00000360 Code RO 1440 .text __dtostr.o + 0x00002d0c 0x0000002c Code RO 1448 .text __isnan.o + 0x00002d38 0x00000052 Code RO 1460 .text strlen_fast.o + 0x00002d8a 0x00000002 PAD + 0x00002d8c 0x000000b0 Code RO 1465 .text strcpy_fast.o + 0x00002e3c 0x00000012 Code RO 1470 .text strchr.o + 0x00002e4e 0x00000002 PAD + 0x00002e50 0x0000001c Code RO 1475 .text strerror.o + 0x00002e6c 0x00000030 Code RO 1483 .text __isinf.o + 0x00002e9c 0x0000003a Code RO 1489 .text _eq_df.o + 0x00002ed6 0x00000002 PAD + 0x00002ed8 0x0000003a Code RO 1496 .text _lt_df.o + 0x00002f14 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00002f4c 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00002fc0 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x0000300c 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000303c 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x000030c4 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x000030ec 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00003128 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x0000313c 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00003154 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00003174 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00003190 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031ac 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x000031ec 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000031f8 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000321c 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x0000324c 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x0000332c 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00003340 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x0000334e 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00003356 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x0000335e 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00003374 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00003384 0x00000010 Code RO 152 .text.GPIO_Read_Output Obj/FWlib_apt32f102_gpio.o + 0x00003394 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000033a8 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000033b8 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000033d4 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000033dc 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000033e6 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000033fe 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000342a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00003430 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00003444 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00003454 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x000034f4 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003508 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000354c 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003560 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x00003614 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x00003624 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x00003634 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x00003650 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003668 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003680 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00003698 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036b4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000036d0 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000037bc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x000037cc 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000037dc 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000037fc 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00003824 0x0000007c Code RO 690 .text.startup.main Obj/main.o + 0x000038a0 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x000038cc 0x00000094 Code RO 711 .text.GPT0_CONFIG Obj/mcu_initial.o + 0x00003960 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x000039c0 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00003a24 0x0000004c Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00003a70 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00003b60 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003bc8 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003c30 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003ddc 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00003e10 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00003e90 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00003f00 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003f3c 0x0000003c Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003f78 0x00000094 Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x0000400c 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000040f4 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00004148 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00004178 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000041a8 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000041f0 0x0000005c Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x0000424c 0x00000060 Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000042ac 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x000042e0 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x0000432c 0x00000064 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00004390 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00004392 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000439a 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000043a2 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000043aa 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000043b2 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000043ba 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000043c2 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000043ca 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000043d2 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000043da 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x000043e2 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x000043ea 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000043f4 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00004418 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x0000443c 0x00000024 Code RO 787 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00004460 0x00000024 Code RO 788 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00004484 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000448c 0x000000d8 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00004564 0x00000064 Code RO 822 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000045c8 0x00000098 Code RO 827 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00004660 0x0000009c Code RO 828 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x000046fc 0x000000bc Code RO 829 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x000047b8 0x00000012 Code RO 848 .text.RC522_Delay Obj/SYSTEM_rc522.o + 0x000047cc 0x00000054 Code RO 849 .text.RC522_ReadWriteOneByte Obj/SYSTEM_rc522.o + 0x00004820 0x00000038 Code RO 850 .text.RC522_ReadRawRC Obj/SYSTEM_rc522.o + 0x00004858 0x00000030 Code RO 851 .text.RC522_WriteRawRC Obj/SYSTEM_rc522.o + 0x00004888 0x0000004c Code RO 852 .text.RC522_PcdReset Obj/SYSTEM_rc522.o + 0x000048d4 0x00000018 Code RO 853 .text.RC522_SetBitMask Obj/SYSTEM_rc522.o + 0x000048ec 0x0000001a Code RO 854 .text.RC522_PcdAntennaOn Obj/SYSTEM_rc522.o + 0x00004906 0x00000016 Code RO 855 .text.RC522_ClearBitMask Obj/SYSTEM_rc522.o + 0x0000491c 0x0000000c Code RO 856 .text.RC522_PcdAntennaOff Obj/SYSTEM_rc522.o + 0x00004928 0x00000044 Code RO 857 .text.RC522_Reset Obj/SYSTEM_rc522.o + 0x0000496c 0x0000007e Code RO 859 .text.M500PcdConfigISOType.part.1 Obj/SYSTEM_rc522.o + 0x000049ec 0x000000c0 Code RO 861 .text.RC522_Init Obj/SYSTEM_rc522.o + 0x00004aac 0x00000170 Code RO 862 .text.RC522_PcdComMF522 Obj/SYSTEM_rc522.o + 0x00004c1c 0x00000088 Code RO 868 .text.RC522_PcdRequest Obj/SYSTEM_rc522.o + 0x00004ca4 0x00000074 Code RO 869 .text.RC522_PcdAnticoll Obj/SYSTEM_rc522.o + 0x00004d18 0x000000b0 Code RO 870 .text.Card_Read_TasK Obj/SYSTEM_rc522.o + 0x00004dc8 0x0000009c Code RO 871 .text.Detect_SPI_task Obj/SYSTEM_rc522.o + 0x00004e64 0x00000050 Code RO 890 .text.RLY_Light_Ctrl Obj/SYSTEM_logic_ctrl.o + 0x00004eb4 0x00000068 Code RO 891 .text.KEY1_LONG_PRESS_RELEASE_Handler Obj/SYSTEM_logic_ctrl.o + 0x00004f1c 0x0000003c Code RO 892 .text.LogicCtrl_Init Obj/SYSTEM_logic_ctrl.o + 0x00004f58 0x000000f0 Code RO 893 .text.LogicCtrl_Task Obj/SYSTEM_logic_ctrl.o + 0x00005048 0x00000088 Code RO 896 .text.LogicCtrl_NoRF_Init Obj/SYSTEM_logic_ctrl.o + 0x000050d0 0x000000c0 Code RO 897 .text.LogicCtrl_NoRF_Task Obj/SYSTEM_logic_ctrl.o + 0x00005190 0x00000024 Code RO 898 .text.BackLight_Task Obj/SYSTEM_logic_ctrl.o + 0x000051b4 0x00000094 Code RO 899 .text.Detect_WIFI_Task Obj/SYSTEM_logic_ctrl.o + 0x00005248 0x00000064 Code RO 900 .text.Led_Task Obj/SYSTEM_logic_ctrl.o + 0x000052ac 0x0000003c Code RO 901 .text.CRC16 Obj/SYSTEM_logic_ctrl.o + 0x000052e8 0x00000070 Code RO 902 .text.Read_Version_Ack Obj/SYSTEM_logic_ctrl.o + 0x00005358 0x0000008c Code RO 903 .text.Card_Recv_Pro Obj/SYSTEM_logic_ctrl.o + 0x000053e4 0x0000003a Code RO 921 .text.button_init Obj/SYSTEM_button.o + 0x0000541e 0x0000000a Code RO 922 .text.button_attach Obj/SYSTEM_button.o + 0x00005428 0x00000120 Code RO 924 .text.button_handler Obj/SYSTEM_button.o + 0x00005548 0x00000024 Code RO 925 .text.button_start Obj/SYSTEM_button.o + 0x0000556c 0x0000001c Code RO 927 .text.button_ticks Obj/SYSTEM_button.o + 0x00005588 0x00000014 Code RO 928 .text.read_button_GPIO Obj/SYSTEM_button.o + 0x0000559c 0x00000058 Code RO 960 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000055f4 0x00000088 Code RO 964 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000567c 0x00000028 Code RO 965 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x000056a4 0x00000020 Code RO 967 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x000056c4 0x00000180 Code RO 968 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00005844 0x0000011c Code RO 969 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00005960 0x000001d0 Code RO 970 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00005b30 0x00000054 Code RO 971 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00005b84 0x00000078 Code RO 972 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00005bfc 0x00000284 Code RO 994 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00005e80 0x00000030 Data RO 1017 .rodata pow.o + 0x00005eb0 0x00000014 Data RO 1117 .rodata _thenan_df.o + 0x00005ec4 0x00000100 Data RO 1165 .rodata _clz.o + 0x00005fc4 0x00000020 Data RO 1356 .rodata __v2_printfDFHLlMOPpSSsWp.o + 0x00005fe4 0x00000240 Data RO 1478 .rodata strerror.o + 0x00006224 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x0000622f 0x0000003e Data RO 831 .rodata.str1.1 Obj/SYSTEM_uart.o + 0x0000626d 0x0000007d Data RO 872 .rodata.str1.1 Obj/SYSTEM_rc522.o + 0x000062ea 0x0000011a Data RO 904 .rodata.str1.1 Obj/SYSTEM_logic_ctrl.o + 0x00006404 0x00000022 Data RO 1357 .rodata.str1.1 __v2_printfDFHLlMOPpSSsWp.o + 0x00006426 0x00000008 Data RO 1443 .rodata.str1.1 __dtostr.o + 0x0000642e 0x00000787 Data RO 1479 .rodata.str1.1 strerror.o + 0x00006bb5 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000770, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000004 Data RW 819 .data Obj/SYSTEM_uart.o + 0x2000006c 0x00000031 Data RW 951 .data FWlib_apt32f102_tkey_c_1_17.o + 0x2000009d 0x00000003 PAD + 0x200000a0 0x0000000e Zero RW 689 .bss Obj/main.o + 0x200000ae 0x00000002 PAD + 0x200000b0 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000bc 0x0000021c Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200002d8 0x0000000c Zero RW 847 .bss Obj/SYSTEM_rc522.o + 0x200002e4 0x00000014 Zero RW 888 .bss Obj/SYSTEM_logic_ctrl.o + 0x200002f8 0x00000004 Zero RW 920 .bss Obj/SYSTEM_button.o + 0x200002fc 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x20000382 0x00000002 PAD + 0x20000384 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x200003b4 0x00000073 Zero RW 844 COMMON Obj/SYSTEM_uart.o + 0x20000427 0x00000001 PAD + 0x20000428 0x00000034 Zero RW 885 COMMON Obj/SYSTEM_rc522.o + 0x2000045c 0x00000041 Zero RW 917 COMMON Obj/SYSTEM_logic_ctrl.o + 0x2000049d 0x00000003 PAD + 0x200004a0 0x000002c8 Zero RW 990 COMMON FWlib_apt32f102_tkey_c_1_17.o + 0x20000768 0x00000008 Zero RW 1433 COMMON minilibc_init.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 281 Obj/arch_crt0.o + 56 0 0 0 817 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21132 Obj/FWlib_apt32f102_syscon.o + 328 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 124 11 0 148 11012 Obj/main.o + 462 0 0 0 16152 Obj/mcu_initial.o + 2434 0 0 60 14290 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 812 62 4 655 13034 Obj/SYSTEM_uart.o + 1704 125 0 64 16121 Obj/SYSTEM_rc522.o + 1408 282 0 85 13194 Obj/SYSTEM_logic_ctrl.o + 440 0 0 4 11568 Obj/SYSTEM_button.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 10286 480 108 1016 242355 Object Totals + 10 3 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + 940 0 0 0 0 _udivdi3.o + 928 0 0 0 0 _umoddi3.o + ------------------------------------------------------------ + 5040 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 32 0 0 0 0 snprintf_required.o + 152 0 0 0 0 vsnprintf_required.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 1880 66 0 0 0 __v2_printfDFHLlMOPpSSsWp.o + 0 0 0 8 0 minilibc_init.o + 0 0 0 0 0 critical.o + 864 8 0 0 0 __dtostr.o + 44 0 0 0 0 __isnan.o + 0 0 0 0 0 stdinit.o + 82 0 0 0 0 strlen_fast.o + 176 0 0 0 0 strcpy_fast.o + 18 0 0 0 0 strchr.o + 28 2503 0 0 0 strerror.o + 48 0 0 0 0 __isinf.o + ------------------------------------------------------------ + 3560 2577 0 8 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 58 0 0 0 0 _eq_df.o + 58 0 0 0 0 _lt_df.o + ------------------------------------------------------------ + 116 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 24176 3384 160 1744 267369 Grand Totals + 24176 3384 160 1744 267369 Elf Image Totals + 24176 3384 160 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 27560 ( 26.91kB) +Total RW Size (RW Data + ZI Data) 1904 ( 1.86kB) +Total ROM Size (Code + RO Data + RW Data) 27720 ( 27.07kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250219.asm b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250219.asm new file mode 100644 index 0000000..7871791 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250219.asm @@ -0,0 +1,11484 @@ + +.//Obj/TRF_TM_CR_V02_20250219.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00002f1e .long 0x00002f1e + 8: 00002f0e .long 0x00002f0e + c: 00000184 .long 0x00000184 + 10: 00002f16 .long 0x00002f16 + 14: 00002ed4 .long 0x00002ed4 + 18: 00000184 .long 0x00000184 + 1c: 00002f06 .long 0x00002f06 + 20: 00002efe .long 0x00002efe + 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: 00002ef6 .long 0x00002ef6 + 44: 00002eee .long 0x00002eee + 48: 00002ee6 .long 0x00002ee6 + 4c: 00002ede .long 0x00002ede + 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: 00002ed6 .long 0x00002ed6 + 80: 000045b0 .long 0x000045b0 + 84: 000025b4 .long 0x000025b4 + 88: 000026a4 .long 0x000026a4 + 8c: 0000270c .long 0x0000270c + 90: 00002774 .long 0x00002774 + 94: 00000184 .long 0x00000184 + 98: 00002920 .long 0x00002920 + 9c: 00002c8c .long 0x00002c8c + a0: 00002cbc .long 0x00002cbc + a4: 00002954 .long 0x00002954 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 000029d4 .long 0x000029d4 + b4: 00002a44 .long 0x00002a44 + b8: 00002a80 .long 0x00002a80 + bc: 00002abc .long 0x00002abc + c0: 00000184 .long 0x00000184 + c4: 00002f2e .long 0x00002f2e + c8: 00000184 .long 0x00000184 + cc: 00002b50 .long 0x00002b50 + d0: 00002c38 .long 0x00002c38 + d4: 00002cec .long 0x00002cec + d8: 00002d34 .long 0x00002d34 + dc: 00002d90 .long 0x00002d90 + e0: 00002f26 .long 0x00002f26 + e4: 00004020 .long 0x00004020 + e8: 00002df0 .long 0x00002df0 + ec: 00000184 .long 0x00000184 + f0: 00002e24 .long 0x00002e24 + f4: 00002e70 .long 0x00002e70 + 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, 0x2360 // 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: 00002360 .long 0x00002360 + 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, 0x48ac // 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: 000048ac .long 0x000048ac + 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, 0x48ac // 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, 0x48ac // 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: 000048ac .long 0x000048ac + 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, 0x48dc // 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: 000048dc .long 0x000048dc + +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, 0x48dc // 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: 000048dc .long 0x000048dc + 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, 0x48dc // 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: 000048dc .long 0x000048dc + +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, 0x48f0 // 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: 000048f0 .long 0x000048f0 + +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, 0x4bb8 // 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, 0x20000560 // 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: 00004bb8 .long 0x00004bb8 + 1a7c: 2000009c .long 0x2000009c + 1a80: 20000560 .long 0x20000560 + 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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 1e9a: 9045 ld.w r2, (r0, 0x14) + 1e9c: 3301 movi r3, 1 + 1e9e: 7085 lsr r2, r1 + 1ea0: 688c and r2, r3 + { + if (dat==1) + 1ea2: 3a40 cmpnei r2, 0 + 1ea4: 70c4 lsl r3, r1 + 1ea6: 0c03 bf 0x1eac // 1eac + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00001eb0 : +/*************************************************************/ +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); + 1ed0: 1064 lrw r3, 0x20000014 // 1ee0 + 1ed2: 9340 ld.w r2, (r3, 0x0) + 1ed4: 9261 ld.w r3, (r2, 0x4) + 1ed6: 3bac bseti r3, 12 + 1ed8: 3bae bseti r3, 14 + 1eda: b261 st.w r3, (r2, 0x4) +} + 1edc: 783c jmp r15 + 1ede: 0000 bkpt + 1ee0: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00001ee4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 1ee4: 1063 lrw r3, 0x20000010 // 1ef0 + 1ee6: 9360 ld.w r3, (r3, 0x0) + 1ee8: 9340 ld.w r2, (r3, 0x0) + 1eea: 6c08 or r0, r2 + 1eec: b300 st.w r0, (r3, 0x0) +} + 1eee: 783c jmp r15 + 1ef0: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00001ef4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 1ef4: 3300 movi r3, 0 + 1ef6: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 1ef8: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 1efa: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 1efc: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 1efe: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 1f00: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 1f02: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 1f04: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 1f06: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 1f08: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 1f0a: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 1f0c: b06d st.w r3, (r0, 0x34) +} + 1f0e: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00001f10 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 1f10: 9060 ld.w r3, (r0, 0x0) + 1f12: 3ba0 bseti r3, 0 + 1f14: b060 st.w r3, (r0, 0x0) +} + 1f16: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00001f18 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 1f18: 9060 ld.w r3, (r0, 0x0) + 1f1a: 3bac bseti r3, 12 + 1f1c: 3bae bseti r3, 14 + 1f1e: b060 st.w r3, (r0, 0x0) +} + 1f20: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00001f22 : +//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) +{ + 1f22: 14c3 push r4-r6 + 1f24: 98a4 ld.w r5, (r14, 0x10) + 1f26: 6d97 mov r6, r5 + 1f28: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 1f2a: 6d18 or r4, r6 + 1f2c: 6cd0 or r3, r4 + 1f2e: 90a1 ld.w r5, (r0, 0x4) + 1f30: 6c4c or r1, r3 + 1f32: 6c54 or r1, r5 + 1f34: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 1f36: b042 st.w r2, (r0, 0x8) +} + 1f38: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +00001f3a : +//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) +{ + 1f3a: 14c4 push r4-r7 + 1f3c: 1421 subi r14, r14, 4 + 1f3e: 9885 ld.w r4, (r14, 0x14) + 1f40: 6dd3 mov r7, r4 + 1f42: 9886 ld.w r4, (r14, 0x18) + 1f44: b880 st.w r4, (r14, 0x0) + 1f46: 9887 ld.w r4, (r14, 0x1c) + 1f48: 6d93 mov r6, r4 + 1f4a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 1f4c: 6d58 or r5, r6 + 1f4e: 98c0 ld.w r6, (r14, 0x0) + 1f50: 6d58 or r5, r6 + 1f52: 6d5c or r5, r7 + 1f54: 6cd4 or r3, r5 + 1f56: 6c8c or r2, r3 + 1f58: 9081 ld.w r4, (r0, 0x4) + 1f5a: 6c48 or r1, r2 + 1f5c: 6d04 or r4, r1 + 1f5e: 6d9f mov r6, r7 + 1f60: b081 st.w r4, (r0, 0x4) +} + 1f62: 1401 addi r14, r14, 4 + 1f64: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00001f66 : +//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; + 1f66: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 1f68: b044 st.w r2, (r0, 0x10) +} + 1f6a: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00001f6c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 1f6c: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 1f6e: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 1f70: 0c04 bf 0x1f78 // 1f78 + BTx->IMCR |= BT_IMSCR_X; + 1f72: 6c8c or r2, r3 + 1f74: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 1f76: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 1f78: 68c9 andn r3, r2 + 1f7a: b06b st.w r3, (r0, 0x2c) +} + 1f7c: 07fd br 0x1f76 // 1f76 + +Disassembly of section .text.BT1_INT_ENABLE: + +00001f80 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 1f80: 3380 movi r3, 128 + 1f82: 4376 lsli r3, r3, 22 + 1f84: 1042 lrw r2, 0xe000e100 // 1f8c + 1f86: b260 st.w r3, (r2, 0x0) +} + 1f88: 783c jmp r15 + 1f8a: 0000 bkpt + 1f8c: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +00001f90 : +//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) + 1f90: 3840 cmpnei r0, 0 + 1f92: 080a bt 0x1fa6 // 1fa6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 1f94: 1165 lrw r3, 0x20000048 // 2028 + 1f96: 31f0 movi r1, 240 + 1f98: 9340 ld.w r2, (r3, 0x0) + 1f9a: 9260 ld.w r3, (r2, 0x0) + 1f9c: 68c5 andn r3, r1 + 1f9e: 3ba4 bseti r3, 4 + 1fa0: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 1fa2: b260 st.w r3, (r2, 0x0) + } +} + 1fa4: 040b br 0x1fba // 1fba + if(IONAME==GPT_CHA_PA09) + 1fa6: 3841 cmpnei r0, 1 + 1fa8: 080a bt 0x1fbc // 1fbc + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 1faa: 1161 lrw r3, 0x2000004c // 202c + 1fac: 31f0 movi r1, 240 + 1fae: 9340 ld.w r2, (r3, 0x0) + 1fb0: 9261 ld.w r3, (r2, 0x4) + 1fb2: 68c5 andn r3, r1 + 1fb4: 3ba4 bseti r3, 4 + 1fb6: 3ba6 bseti r3, 6 + 1fb8: b261 st.w r3, (r2, 0x4) +} + 1fba: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 1fbc: 3842 cmpnei r0, 2 + 1fbe: 080b bt 0x1fd4 // 1fd4 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 1fc0: 107b lrw r3, 0x2000004c // 202c + 1fc2: 32f0 movi r2, 240 + 1fc4: 9320 ld.w r1, (r3, 0x0) + 1fc6: 9161 ld.w r3, (r1, 0x4) + 1fc8: 4244 lsli r2, r2, 4 + 1fca: 68c9 andn r3, r2 + 1fcc: 3ba9 bseti r3, 9 + 1fce: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 1fd0: b161 st.w r3, (r1, 0x4) + 1fd2: 07f4 br 0x1fba // 1fba + if(IONAME==GPT_CHB_PA010) + 1fd4: 3843 cmpnei r0, 3 + 1fd6: 080b bt 0x1fec // 1fec + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 1fd8: 1075 lrw r3, 0x2000004c // 202c + 1fda: 32f0 movi r2, 240 + 1fdc: 9320 ld.w r1, (r3, 0x0) + 1fde: 4244 lsli r2, r2, 4 + 1fe0: 9161 ld.w r3, (r1, 0x4) + 1fe2: 68c9 andn r3, r2 + 1fe4: 32e0 movi r2, 224 + 1fe6: 4243 lsli r2, r2, 3 + 1fe8: 6cc8 or r3, r2 + 1fea: 07f3 br 0x1fd0 // 1fd0 + if(IONAME==GPT_CHB_PA011) + 1fec: 3844 cmpnei r0, 4 + 1fee: 080a bt 0x2002 // 2002 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 1ff0: 106f lrw r3, 0x2000004c // 202c + 1ff2: 32f0 movi r2, 240 + 1ff4: 9320 ld.w r1, (r3, 0x0) + 1ff6: 9161 ld.w r3, (r1, 0x4) + 1ff8: 4248 lsli r2, r2, 8 + 1ffa: 68c9 andn r3, r2 + 1ffc: 3bad bseti r3, 13 + 1ffe: 3bae bseti r3, 14 + 2000: 07e8 br 0x1fd0 // 1fd0 + if(IONAME==GPT_CHB_PB00) + 2002: 3845 cmpnei r0, 5 + 2004: 0808 bt 0x2014 // 2014 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 2006: 1069 lrw r3, 0x20000048 // 2028 + 2008: 310f movi r1, 15 + 200a: 9340 ld.w r2, (r3, 0x0) + 200c: 9260 ld.w r3, (r2, 0x0) + 200e: 68c5 andn r3, r1 + 2010: 3ba2 bseti r3, 2 + 2012: 07c8 br 0x1fa2 // 1fa2 + if(IONAME==GPT_CHB_PB01) + 2014: 3846 cmpnei r0, 6 + 2016: 0bd2 bt 0x1fba // 1fba + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 2018: 1064 lrw r3, 0x20000048 // 2028 + 201a: 31f0 movi r1, 240 + 201c: 9340 ld.w r2, (r3, 0x0) + 201e: 9260 ld.w r3, (r2, 0x0) + 2020: 68c5 andn r3, r1 + 2022: 3ba5 bseti r3, 5 + 2024: 3ba6 bseti r3, 6 + 2026: 07be br 0x1fa2 // 1fa2 + 2028: 20000048 .long 0x20000048 + 202c: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +00002030 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 2030: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 2032: 6c48 or r1, r2 + 2034: 1083 lrw r4, 0x20000024 // 2040 + 2036: 6c04 or r0, r1 + 2038: 9480 ld.w r4, (r4, 0x0) + 203a: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 203c: b462 st.w r3, (r4, 0x8) +} + 203e: 1481 pop r4 + 2040: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +00002044 : +/*************************************************************/ +//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) +{ + 2044: 14c4 push r4-r7 + 2046: 1423 subi r14, r14, 12 + 2048: 9887 ld.w r4, (r14, 0x1c) + 204a: 6dd3 mov r7, r4 + 204c: 9888 ld.w r4, (r14, 0x20) + 204e: b880 st.w r4, (r14, 0x0) + 2050: 9889 ld.w r4, (r14, 0x24) + 2052: b881 st.w r4, (r14, 0x4) + 2054: 988a ld.w r4, (r14, 0x28) + 2056: b882 st.w r4, (r14, 0x8) + 2058: 988b ld.w r4, (r14, 0x2c) + 205a: 6d93 mov r6, r4 + 205c: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 205e: 3cb2 bseti r4, 18 + 2060: 6d18 or r4, r6 + 2062: 98c2 ld.w r6, (r14, 0x8) + 2064: 6d18 or r4, r6 + 2066: 98c1 ld.w r6, (r14, 0x4) + 2068: 6d18 or r4, r6 + 206a: 98c0 ld.w r6, (r14, 0x0) + 206c: 6d18 or r4, r6 + 206e: 6d1c or r4, r7 + 2070: 6cd0 or r3, r4 + 2072: 6c8c or r2, r3 + 2074: 6c48 or r1, r2 + 2076: 10a4 lrw r5, 0x20000024 // 2084 + 2078: 6c04 or r0, r1 + 207a: 95a0 ld.w r5, (r5, 0x0) + 207c: 6d9f mov r6, r7 + 207e: b503 st.w r0, (r5, 0xc) +} + 2080: 1403 addi r14, r14, 12 + 2082: 1484 pop r4-r7 + 2084: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +00002088 : +//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) +{ + 2088: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 208a: 6c8c or r2, r3 + 208c: 6c48 or r1, r2 + 208e: 1083 lrw r4, 0x20000024 // 2098 + 2090: 6c04 or r0, r1 + 2092: 9480 ld.w r4, (r4, 0x0) + 2094: b411 st.w r0, (r4, 0x44) +} + 2096: 1481 pop r4 + 2098: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +0000209c : +//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) +{ + 209c: 14c4 push r4-r7 + 209e: 1425 subi r14, r14, 20 + 20a0: 1c09 addi r4, r14, 36 + 20a2: 8480 ld.b r4, (r4, 0x0) + 20a4: b880 st.w r4, (r14, 0x0) + 20a6: 1c0a addi r4, r14, 40 + 20a8: 8480 ld.b r4, (r4, 0x0) + 20aa: b881 st.w r4, (r14, 0x4) + 20ac: 1c0b addi r4, r14, 44 + 20ae: 8480 ld.b r4, (r4, 0x0) + 20b0: b882 st.w r4, (r14, 0x8) + 20b2: 1c0c addi r4, r14, 48 + 20b4: 8480 ld.b r4, (r4, 0x0) + 20b6: b883 st.w r4, (r14, 0xc) + 20b8: 1c0d addi r4, r14, 52 + 20ba: 8480 ld.b r4, (r4, 0x0) + 20bc: 1e10 addi r6, r14, 64 + 20be: b884 st.w r4, (r14, 0x10) + 20c0: 1d0f addi r5, r14, 60 + 20c2: 1c0e addi r4, r14, 56 + 20c4: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 20c6: 3840 cmpnei r0, 0 +{ + 20c8: 1e11 addi r6, r14, 68 + 20ca: 8480 ld.b r4, (r4, 0x0) + 20cc: 85a0 ld.b r5, (r5, 0x0) + 20ce: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 20d0: 081f bt 0x210e // 210e + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 20d2: 47f0 lsli r7, r7, 16 + 20d4: 46d2 lsli r6, r6, 18 + 20d6: 45ae lsli r5, r5, 14 + 20d8: 6dd8 or r7, r6 + 20da: 6dd4 or r7, r5 + 20dc: 448c lsli r4, r4, 12 + 20de: 6dd0 or r7, r4 + 20e0: 9884 ld.w r4, (r14, 0x10) + 20e2: 448a lsli r4, r4, 10 + 20e4: 6dd0 or r7, r4 + 20e6: 9883 ld.w r4, (r14, 0xc) + 20e8: 4488 lsli r4, r4, 8 + 20ea: 98a2 ld.w r5, (r14, 0x8) + 20ec: 6d1c or r4, r7 + 20ee: 45e6 lsli r7, r5, 6 + 20f0: 6d1c or r4, r7 + 20f2: 6c90 or r2, r4 + 20f4: 6cc8 or r3, r2 + 20f6: 9841 ld.w r2, (r14, 0x4) + 20f8: 4244 lsli r2, r2, 4 + 20fa: 6cc8 or r3, r2 + 20fc: 6c4c or r1, r3 + 20fe: 9860 ld.w r3, (r14, 0x0) + 2100: 4362 lsli r3, r3, 2 + 2102: 1013 lrw r0, 0x20000024 // 214c + 2104: 6c4c or r1, r3 + 2106: 9000 ld.w r0, (r0, 0x0) + 2108: 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); + } +} + 210a: 1405 addi r14, r14, 20 + 210c: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 210e: 3841 cmpnei r0, 1 + 2110: 0bfd bt 0x210a // 210a + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 2112: 47f0 lsli r7, r7, 16 + 2114: 46d2 lsli r6, r6, 18 + 2116: 45ae lsli r5, r5, 14 + 2118: 6dd8 or r7, r6 + 211a: 6dd4 or r7, r5 + 211c: 448c lsli r4, r4, 12 + 211e: 6dd0 or r7, r4 + 2120: 9884 ld.w r4, (r14, 0x10) + 2122: 448a lsli r4, r4, 10 + 2124: 6dd0 or r7, r4 + 2126: 9883 ld.w r4, (r14, 0xc) + 2128: 4488 lsli r4, r4, 8 + 212a: 98a2 ld.w r5, (r14, 0x8) + 212c: 6d1c or r4, r7 + 212e: 45e6 lsli r7, r5, 6 + 2130: 6d1c or r4, r7 + 2132: 6c90 or r2, r4 + 2134: 6cc8 or r3, r2 + 2136: 9841 ld.w r2, (r14, 0x4) + 2138: 4244 lsli r2, r2, 4 + 213a: 6cc8 or r3, r2 + 213c: 6c4c or r1, r3 + 213e: 9860 ld.w r3, (r14, 0x0) + 2140: 4362 lsli r3, r3, 2 + 2142: 1003 lrw r0, 0x20000024 // 214c + 2144: 6c4c or r1, r3 + 2146: 9000 ld.w r0, (r0, 0x0) + 2148: b033 st.w r1, (r0, 0x4c) +} + 214a: 07e0 br 0x210a // 210a + 214c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +00002150 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 2150: 1063 lrw r3, 0x20000024 // 215c + 2152: 9340 ld.w r2, (r3, 0x0) + 2154: 9261 ld.w r3, (r2, 0x4) + 2156: 3ba0 bseti r3, 0 + 2158: b261 st.w r3, (r2, 0x4) +} + 215a: 783c jmp r15 + 215c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +00002160 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 2160: 1063 lrw r3, 0x20000024 // 216c + 2162: 9360 ld.w r3, (r3, 0x0) + 2164: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 2166: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 2168: b34c st.w r2, (r3, 0x30) +} + 216a: 783c jmp r15 + 216c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +00002170 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 2170: 1066 lrw r3, 0x20000024 // 2188 + if (NewState != DISABLE) + 2172: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 2174: 9360 ld.w r3, (r3, 0x0) + 2176: 237f addi r3, 128 + 2178: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 217a: 0c04 bf 0x2182 // 2182 + GPT0->IMCR |= GPT_IMSCR_X; + 217c: 6c48 or r1, r2 + 217e: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 2180: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 2182: 6885 andn r2, r1 + 2184: b356 st.w r2, (r3, 0x58) +} + 2186: 07fd br 0x2180 // 2180 + 2188: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +0000218c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 218c: 1065 lrw r3, 0x20000040 // 21a0 + 218e: 3200 movi r2, 0 + 2190: 9360 ld.w r3, (r3, 0x0) + 2192: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 2194: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 2196: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 2198: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 219a: b344 st.w r2, (r3, 0x10) +} + 219c: 783c jmp r15 + 219e: 0000 bkpt + 21a0: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000021a4 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 21a4: 1065 lrw r3, 0x2000003c // 21b8 + 21a6: 3200 movi r2, 0 + 21a8: 9360 ld.w r3, (r3, 0x0) + 21aa: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 21ac: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 21ae: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 21b0: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 21b2: b344 st.w r2, (r3, 0x10) +} + 21b4: 783c jmp r15 + 21b6: 0000 bkpt + 21b8: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000021bc : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 21bc: 1065 lrw r3, 0x20000038 // 21d0 + 21be: 3200 movi r2, 0 + 21c0: 9360 ld.w r3, (r3, 0x0) + 21c2: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 21c4: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 21c6: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 21c8: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 21ca: b344 st.w r2, (r3, 0x10) +} + 21cc: 783c jmp r15 + 21ce: 0000 bkpt + 21d0: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000021d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 21d4: 1065 lrw r3, 0x20000040 // 21e8 + 21d6: 320f movi r2, 15 + 21d8: 9360 ld.w r3, (r3, 0x0) + 21da: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 21dc: 3380 movi r3, 128 + 21de: 4366 lsli r3, r3, 6 + 21e0: 1043 lrw r2, 0xe000e100 // 21ec + 21e2: b260 st.w r3, (r2, 0x0) +} + 21e4: 783c jmp r15 + 21e6: 0000 bkpt + 21e8: 20000040 .long 0x20000040 + 21ec: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000021f0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 21f0: 1065 lrw r3, 0x20000038 // 2204 + 21f2: 320f movi r2, 15 + 21f4: 9360 ld.w r3, (r3, 0x0) + 21f6: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 21f8: 3380 movi r3, 128 + 21fa: 4368 lsli r3, r3, 8 + 21fc: 1043 lrw r2, 0xe000e100 // 2208 + 21fe: b260 st.w r3, (r2, 0x0) +} + 2200: 783c jmp r15 + 2202: 0000 bkpt + 2204: 20000038 .long 0x20000038 + 2208: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000220c : +//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) + 220c: 3840 cmpnei r0, 0 + 220e: 0821 bt 0x2250 // 2250 + { + if(UART_IO_G==0) + 2210: 3940 cmpnei r1, 0 + 2212: 080a bt 0x2226 // 2226 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2214: 1177 lrw r3, 0x2000004c // 22f0 + 2216: 31ff movi r1, 255 + 2218: 9340 ld.w r2, (r3, 0x0) + 221a: 9260 ld.w r3, (r2, 0x0) + 221c: 68c5 andn r3, r1 + 221e: 3ba2 bseti r3, 2 + 2220: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2222: b260 st.w r3, (r2, 0x0) + 2224: 0415 br 0x224e // 224e + else if(UART_IO_G==1) + 2226: 3941 cmpnei r1, 1 + 2228: 0813 bt 0x224e // 224e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 222a: 1172 lrw r3, 0x2000004c // 22f0 + 222c: 31f0 movi r1, 240 + 222e: 9340 ld.w r2, (r3, 0x0) + 2230: 9260 ld.w r3, (r2, 0x0) + 2232: 4130 lsli r1, r1, 16 + 2234: 68c5 andn r3, r1 + 2236: 31e0 movi r1, 224 + 2238: 412f lsli r1, r1, 15 + 223a: 6cc4 or r3, r1 + 223c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 223e: 31f0 movi r1, 240 + 2240: 9261 ld.w r3, (r2, 0x4) + 2242: 412c lsli r1, r1, 12 + 2244: 68c5 andn r3, r1 + 2246: 31e0 movi r1, 224 + 2248: 412b lsli r1, r1, 11 + 224a: 6cc4 or r3, r1 + 224c: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 224e: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2250: 3841 cmpnei r0, 1 + 2252: 082d bt 0x22ac // 22ac + if(UART_IO_G==0) + 2254: 3940 cmpnei r1, 0 + 2256: 0814 bt 0x227e // 227e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2258: 1167 lrw r3, 0x20000048 // 22f4 + 225a: 310f movi r1, 15 + 225c: 9340 ld.w r2, (r3, 0x0) + 225e: 9260 ld.w r3, (r2, 0x0) + 2260: 68c5 andn r3, r1 + 2262: 3107 movi r1, 7 + 2264: 6cc4 or r3, r1 + 2266: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2268: 32f0 movi r2, 240 + 226a: 1162 lrw r3, 0x2000004c // 22f0 + 226c: 4250 lsli r2, r2, 16 + 226e: 9320 ld.w r1, (r3, 0x0) + 2270: 9161 ld.w r3, (r1, 0x4) + 2272: 68c9 andn r3, r2 + 2274: 32e0 movi r2, 224 + 2276: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2278: 6cc8 or r3, r2 + 227a: b161 st.w r3, (r1, 0x4) + 227c: 07e9 br 0x224e // 224e + else if(UART_IO_G==1) + 227e: 3941 cmpnei r1, 1 + 2280: 080c bt 0x2298 // 2298 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 2282: 107c lrw r3, 0x2000004c // 22f0 + 2284: 32ff movi r2, 255 + 2286: 9320 ld.w r1, (r3, 0x0) + 2288: 424c lsli r2, r2, 12 + 228a: 9160 ld.w r3, (r1, 0x0) + 228c: 68c9 andn r3, r2 + 228e: 32ee movi r2, 238 + 2290: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2292: 6cc8 or r3, r2 + 2294: b160 st.w r3, (r1, 0x0) +} + 2296: 07dc br 0x224e // 224e + else if(UART_IO_G==2) + 2298: 3942 cmpnei r1, 2 + 229a: 0bda bt 0x224e // 224e + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 229c: 1075 lrw r3, 0x2000004c // 22f0 + 229e: 32ee movi r2, 238 + 22a0: 9320 ld.w r1, (r3, 0x0) + 22a2: 9161 ld.w r3, (r1, 0x4) + 22a4: 4368 lsli r3, r3, 8 + 22a6: 4b68 lsri r3, r3, 8 + 22a8: 4257 lsli r2, r2, 23 + 22aa: 07e7 br 0x2278 // 2278 + if (IO_UART_NUM==IO_UART2) + 22ac: 3842 cmpnei r0, 2 + 22ae: 0bd0 bt 0x224e // 224e + if(UART_IO_G==0) + 22b0: 3940 cmpnei r1, 0 + 22b2: 0809 bt 0x22c4 // 22c4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 22b4: 106f lrw r3, 0x2000004c // 22f0 + 22b6: 31ff movi r1, 255 + 22b8: 9340 ld.w r2, (r3, 0x0) + 22ba: 9260 ld.w r3, (r2, 0x0) + 22bc: 68c5 andn r3, r1 + 22be: 3177 movi r1, 119 + 22c0: 6cc4 or r3, r1 + 22c2: 07b0 br 0x2222 // 2222 + else if(UART_IO_G==1) + 22c4: 3941 cmpnei r1, 1 + 22c6: 0809 bt 0x22d8 // 22d8 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 22c8: 106a lrw r3, 0x2000004c // 22f0 + 22ca: 32ee movi r2, 238 + 22cc: 9320 ld.w r1, (r3, 0x0) + 22ce: 9160 ld.w r3, (r1, 0x0) + 22d0: 4368 lsli r3, r3, 8 + 22d2: 4b68 lsri r3, r3, 8 + 22d4: 4257 lsli r2, r2, 23 + 22d6: 07de br 0x2292 // 2292 + else if(UART_IO_G==2) + 22d8: 3942 cmpnei r1, 2 + 22da: 0bba bt 0x224e // 224e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 22dc: 1066 lrw r3, 0x20000048 // 22f4 + 22de: 32ff movi r2, 255 + 22e0: 9320 ld.w r1, (r3, 0x0) + 22e2: 4250 lsli r2, r2, 16 + 22e4: 9160 ld.w r3, (r1, 0x0) + 22e6: 68c9 andn r3, r2 + 22e8: 32cc movi r2, 204 + 22ea: 424f lsli r2, r2, 15 + 22ec: 07d3 br 0x2292 // 2292 + 22ee: 0000 bkpt + 22f0: 2000004c .long 0x2000004c + 22f4: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000022f8 : +//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); + 22f8: 1063 lrw r3, 0x80003 // 2304 + 22fa: 6c8c or r2, r3 + 22fc: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 22fe: b024 st.w r1, (r0, 0x10) +} + 2300: 783c jmp r15 + 2302: 0000 bkpt + 2304: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002308 : +//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); + 2308: 1063 lrw r3, 0x8000f // 2314 + 230a: 6c8c or r2, r3 + 230c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 230e: b024 st.w r1, (r0, 0x10) +} + 2310: 783c jmp r15 + 2312: 0000 bkpt + 2314: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002318 : +//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) +{ + 2318: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 231a: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 231c: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 231e: 5b85 subu r4, r3, r1 + 2320: 6490 cmphs r4, r2 + 2322: 0c02 bf 0x2326 // 2326 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 2324: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 2326: 8380 ld.b r4, (r3, 0x0) + 2328: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 232a: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 232c: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 232e: 3c40 cmpnei r4, 0 + 2330: 0bfd bt 0x232a // 232a + 2332: 2300 addi r3, 1 + 2334: 07f5 br 0x231e // 231e + +Disassembly of section .text.EPT_Stop: + +00002338 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2338: 1068 lrw r3, 0x20000020 // 2358 + 233a: 3280 movi r2, 128 + 233c: 9360 ld.w r3, (r3, 0x0) + 233e: 608c addu r2, r3 + 2340: 1027 lrw r1, 0xa55ac73a // 235c + 2342: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2344: 9341 ld.w r2, (r3, 0x4) + 2346: 31fe movi r1, 254 + 2348: 6884 and r2, r1 + 234a: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 234c: 3101 movi r1, 1 + 234e: 9341 ld.w r2, (r3, 0x4) + 2350: 6884 and r2, r1 + 2352: 3a40 cmpnei r2, 0 + 2354: 0bfd bt 0x234e // 234e +} + 2356: 783c jmp r15 + 2358: 20000020 .long 0x20000020 + 235c: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +00002360
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2360: 14d1 push r4, r15 + delay_nms(2000); + 2362: 30fa movi r0, 250 + + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 2364: 109c lrw r4, 0x20000048 // 23d4 + delay_nms(2000); + 2366: 4003 lsli r0, r0, 3 + 2368: e000003c bsr 0x23e0 // 23e0 + GPIO_Init(GPIOB0,DET_RF_MODULE_PIN,Intput); + 236c: 3201 movi r2, 1 + 236e: 9400 ld.w r0, (r4, 0x0) + 2370: 3102 movi r1, 2 + 2372: e3fffd0b bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOB0,DET_RF_MODULE_PIN); + 2376: 9400 ld.w r0, (r4, 0x0) + 2378: 3102 movi r1, 2 + 237a: e3fffd77 bsr 0x1e68 // 1e68 + + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 237e: 3102 movi r1, 2 + 2380: 9400 ld.w r0, (r4, 0x0) + 2382: e3fffd97 bsr 0x1eb0 // 1eb0 + 2386: 1095 lrw r4, 0x2000009c // 23d8 + last_state = rf_exist; + 2388: a401 st.b r0, (r4, 0x1) + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 238a: a400 st.b r0, (r4, 0x0) + + APT32F102_init(); //102 initial + 238c: e00000ec bsr 0x2564 // 2564 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 2390: 1033 lrw r1, 0x49f0 // 23dc + 2392: 3000 movi r0, 0 + 2394: e00006e2 bsr 0x3158 // 3158 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2398: e3fffc66 bsr 0x1c64 // 1c64 + + UART2_TASK(); + 239c: e0000694 bsr 0x30c4 // 30c4 + + Detect_WIFI_Task(); + 23a0: e0000be0 bsr 0x3b60 // 3b60 + + Detect_SPI_task(); + 23a4: e00009e8 bsr 0x3774 // 3774 + + Led_Task(); + 23a8: e0000c26 bsr 0x3bf4 // 3bf4 + + RLY_Direct_Control(); + 23ac: e0000d00 bsr 0x3dac // 3dac + + if (finish_flag == 1) { + 23b0: 8462 ld.b r3, (r4, 0x2) + 23b2: 3b41 cmpnei r3, 1 + 23b4: 0bf2 bt 0x2398 // 2398 + Card_Read_TasK(); + 23b6: e0000987 bsr 0x36c4 // 36c4 + + if(rf_exist == 0x01) + 23ba: 8460 ld.b r3, (r4, 0x0) + 23bc: 3b41 cmpnei r3, 1 + 23be: 0806 bt 0x23ca // 23ca + { + BackLight_Task(); + 23c0: e0000bbe bsr 0x3b3c // 3b3c + LogicCtrl_NoRF_Task(); //无RF模块轮询任务 + 23c4: e0000b5c bsr 0x3a7c // 3a7c + 23c8: 07e8 br 0x2398 // 2398 + //Dbg_Println(DBG_BIT_SYS_STATUS,"no rf!"); + } + else if(rf_exist == 0x00) + 23ca: 3b40 cmpnei r3, 0 + 23cc: 0be6 bt 0x2398 // 2398 + { +// Debounce_Task(); + LogicCtrl_Task(); //带RF模块执行逻辑 + 23ce: e0000aa7 bsr 0x391c // 391c + 23d2: 07e3 br 0x2398 // 2398 + 23d4: 20000048 .long 0x20000048 + 23d8: 2000009c .long 0x2000009c + 23dc: 000049f0 .long 0x000049f0 + +Disassembly of section .text.delay_nms: + +000023e0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 23e0: 14d0 push r15 + 23e2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 23e4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 23e6: 3300 movi r3, 0 + j = 50* t; + 23e8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 23ea: b862 st.w r3, (r14, 0x8) + j = 50* t; + 23ec: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 23ee: b860 st.w r3, (r14, 0x0) + 23f0: 9840 ld.w r2, (r14, 0x0) + 23f2: 9861 ld.w r3, (r14, 0x4) + 23f4: 64c8 cmphs r2, r3 + 23f6: 0c03 bf 0x23fc // 23fc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 23f8: 1403 addi r14, r14, 12 + 23fa: 1490 pop r15 + k++; + 23fc: 9862 ld.w r3, (r14, 0x8) + 23fe: 2300 addi r3, 1 + 2400: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2402: e3fffc31 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 2406: 9860 ld.w r3, (r14, 0x0) + 2408: 2300 addi r3, 1 + 240a: 07f2 br 0x23ee // 23ee + +Disassembly of section .text.GPT0_CONFIG: + +0000240c : +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + 240c: 14d0 push r15 + 240e: 1429 subi r14, r14, 36 + GPT_IO_Init(GPT_CHA_PB01); + 2410: 3000 movi r0, 0 + 2412: e3fffdbf bsr 0x1f90 // 1f90 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 2416: 3300 movi r3, 0 + 2418: 3240 movi r2, 64 + 241a: 3100 movi r1, 0 + 241c: 3001 movi r0, 1 + 241e: e3fffe09 bsr 0x2030 // 2030 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 2422: 3300 movi r3, 0 + 2424: b865 st.w r3, (r14, 0x14) + 2426: b864 st.w r3, (r14, 0x10) + 2428: b863 st.w r3, (r14, 0xc) + 242a: b862 st.w r3, (r14, 0x8) + 242c: b861 st.w r3, (r14, 0x4) + 242e: b860 st.w r3, (r14, 0x0) + 2430: 3208 movi r2, 8 + 2432: 3100 movi r1, 0 + 2434: 3000 movi r0, 0 + 2436: e3fffe07 bsr 0x2044 // 2044 + if(rf_exist == 0x01) + 243a: 1079 lrw r3, 0x2000009c // 249c + 243c: 8360 ld.b r3, (r3, 0x0) + 243e: 3b41 cmpnei r3, 1 + 2440: 0827 bt 0x248e // 248e + { + GPT_Period_CMP_Write(2000,2000,0); + 2442: 31fa movi r1, 250 + 2444: 4123 lsli r1, r1, 3 + 2446: 3200 movi r2, 0 + 2448: 6c07 mov r0, r1 + } + else if(rf_exist == 0x00) + { + GPT_Period_CMP_Write(2000,0,0); + 244a: e3fffe8b bsr 0x2160 // 2160 + } + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 244e: 3320 movi r3, 32 + 2450: 3204 movi r2, 4 + 2452: 3100 movi r1, 0 + 2454: 3001 movi r0, 1 + 2456: e3fffe19 bsr 0x2088 // 2088 + GPT_WaveOut_Configure(GPT_CHA,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 245a: 3300 movi r3, 0 + 245c: 3201 movi r2, 1 + 245e: b868 st.w r3, (r14, 0x20) + 2460: b867 st.w r3, (r14, 0x1c) + 2462: b866 st.w r3, (r14, 0x18) + 2464: b865 st.w r3, (r14, 0x14) + 2466: b864 st.w r3, (r14, 0x10) + 2468: b863 st.w r3, (r14, 0xc) + 246a: b842 st.w r2, (r14, 0x8) + 246c: b841 st.w r2, (r14, 0x4) + 246e: b860 st.w r3, (r14, 0x0) + 2470: 3200 movi r2, 0 + 2472: 3302 movi r3, 2 + 2474: 3100 movi r1, 0 + 2476: 3000 movi r0, 0 + 2478: e3fffe12 bsr 0x209c // 209c + +// GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPB,2,0,0,0,1,1,0,0,0,0); + //GPT_SyncSet_Configure(GPT_SYNCUSR0_EN,GPT_OST_CONTINUOUS,GPT_TXREARM_DIS,GPT_TRGO0SEL_SR0,GPT_TRG10SEL_SR0,GPT_AREARM_DIS); + //GPT_Trigger_Configure(GPT_SRCSEL_TRGUSR0EN,GPT_BLKINV_DIS,GPT_ALIGNMD_PRD,GPT_CROSSMD_DIS,5,5); + //GPT_EVTRG_Configure(GPT_TRGSRC0_PRD,GPT_TRGSRC1_PRD,GPT_ESYN0OE_EN,GPT_ESYN1OE_EN,GPT_CNT0INIT_EN,GPT_CNT1INIT_EN,3,3,3,3); + GPT_Start(); + 247c: e3fffe6a bsr 0x2150 // 2150 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 2480: 3180 movi r1, 128 + 2482: 4129 lsli r1, r1, 9 + 2484: 3001 movi r0, 1 + 2486: e3fffe75 bsr 0x2170 // 2170 +// GPT_INT_ENABLE(); + //INTC_ISER_WRITE(GPT0_INT); + //INTC_IWER_WRITE(GPT0_INT); +} + 248a: 1409 addi r14, r14, 36 + 248c: 1490 pop r15 + else if(rf_exist == 0x00) + 248e: 3b40 cmpnei r3, 0 + 2490: 0bdf bt 0x244e // 244e + GPT_Period_CMP_Write(2000,0,0); + 2492: 30fa movi r0, 250 + 2494: 3200 movi r2, 0 + 2496: 3100 movi r1, 0 + 2498: 4003 lsli r0, r0, 3 + 249a: 07d8 br 0x244a // 244a + 249c: 2000009c .long 0x2000009c + +Disassembly of section .text.BT_CONFIG: + +000024a0 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 24a0: 14d2 push r4-r5, r15 + 24a2: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 24a4: 1095 lrw r4, 0x20000008 // 24f8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 24a6: 3500 movi r5, 0 + BT_DeInit(BT1); + 24a8: 9400 ld.w r0, (r4, 0x0) + 24aa: e3fffd25 bsr 0x1ef4 // 1ef4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 24ae: 9400 ld.w r0, (r4, 0x0) + 24b0: b8a1 st.w r5, (r14, 0x4) + 24b2: b8a0 st.w r5, (r14, 0x0) + 24b4: 3308 movi r3, 8 + 24b6: 3200 movi r2, 0 + 24b8: 3101 movi r1, 1 + 24ba: e3fffd34 bsr 0x1f22 // 1f22 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 24be: 3380 movi r3, 128 + 24c0: 4363 lsli r3, r3, 3 + 24c2: b861 st.w r3, (r14, 0x4) + 24c4: 9400 ld.w r0, (r4, 0x0) + 24c6: 3300 movi r3, 0 + 24c8: b8a3 st.w r5, (r14, 0xc) + 24ca: b8a2 st.w r5, (r14, 0x8) + 24cc: b8a0 st.w r5, (r14, 0x0) + 24ce: 3200 movi r2, 0 + 24d0: 3180 movi r1, 128 + 24d2: e3fffd34 bsr 0x1f3a // 1f3a + BT_Period_CMP_Write(BT1,4780,1); + 24d6: 3201 movi r2, 1 + 24d8: 1029 lrw r1, 0x12ac // 24fc + 24da: 9400 ld.w r0, (r4, 0x0) + 24dc: e3fffd45 bsr 0x1f66 // 1f66 + BT_Start(BT1); + 24e0: 9400 ld.w r0, (r4, 0x0) + 24e2: e3fffd17 bsr 0x1f10 // 1f10 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 24e6: 9400 ld.w r0, (r4, 0x0) + 24e8: 3202 movi r2, 2 + 24ea: 3101 movi r1, 1 + 24ec: e3fffd40 bsr 0x1f6c // 1f6c + BT1_INT_ENABLE(); + 24f0: e3fffd48 bsr 0x1f80 // 1f80 + +} + 24f4: 1404 addi r14, r14, 16 + 24f6: 1492 pop r4-r5, r15 + 24f8: 20000008 .long 0x20000008 + 24fc: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002500 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2500: 14d0 push r15 + 2502: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2504: e3fffafc bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2508: 3101 movi r1, 1 + 250a: 3001 movi r0, 1 + 250c: e3fffb1e bsr 0x1b48 // 1b48 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 2510: 3000 movi r0, 0 + 2512: e3fffb77 bsr 0x1c00 // 1c00 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 2516: 3180 movi r1, 128 + 2518: 3308 movi r3, 8 + 251a: 3200 movi r2, 0 + 251c: 4121 lsli r1, r1, 1 + 251e: 3002 movi r0, 2 + 2520: e3fffb2c bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2524: 3080 movi r0, 128 + 2526: 3118 movi r1, 24 + 2528: 4002 lsli r0, r0, 2 + 252a: e3fffba7 bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 252e: 3001 movi r0, 1 + 2530: e3fffb7c bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2534: e3fffb98 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2538: e3fffbca bsr 0x1ccc // 1ccc + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 253c: 3340 movi r3, 64 + 253e: b860 st.w r3, (r14, 0x0) + 2540: 31c0 movi r1, 192 + 2542: 3380 movi r3, 128 + 2544: 4364 lsli r3, r3, 4 + 2546: 3200 movi r2, 0 + 2548: 4123 lsli r1, r1, 3 + 254a: 3000 movi r0, 0 + 254c: e3fffba2 bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 2550: e3fffbb0 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2554: e3fffbea bsr 0x1d28 // 1d28 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 2558: 3000 movi r0, 0 + 255a: e0001067 bsr 0x4628 // 4628 + +} + 255e: 1401 addi r14, r14, 4 + 2560: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002564 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2564: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2566: 1071 lrw r3, 0x2000005c // 25a8 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2568: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 256a: 9340 ld.w r2, (r3, 0x0) + 256c: 1070 lrw r3, 0xfffffff // 25ac + 256e: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2570: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2572: 926c ld.w r3, (r2, 0x30) + 2574: 68c4 and r3, r1 + 2576: 3b40 cmpnei r3, 0 + 2578: 0ffd bf 0x2572 // 2572 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 257a: e3ffffc3 bsr 0x2500 // 2500 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 257e: e0000501 bsr 0x2f80 // 2f80 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2582: e3fffbd9 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2586: 3101 movi r1, 1 + 2588: 300f movi r0, 15 + 258a: e3fffbe7 bsr 0x1d58 // 1d58 +// Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 258e: e3ffff89 bsr 0x24a0 // 24a0 + + GPT0_CONFIG(); + 2592: e3ffff3d bsr 0x240c // 240c + + UARTx_Init(UART_2,Card_Recv_Pro); + 2596: 1027 lrw r1, 0x3d04 // 25b0 + 2598: 3002 movi r0, 2 + 259a: e00004f7 bsr 0x2f88 // 2f88 + + RC522_Init(); + 259e: e00006fd bsr 0x3398 // 3398 + + BLV_RLV_Ctrl_Init(); + 25a2: e0000bf7 bsr 0x3d90 // 3d90 + +} + 25a6: 1490 pop r15 + 25a8: 2000005c .long 0x2000005c + 25ac: 0fffffff .long 0x0fffffff + 25b0: 00003d04 .long 0x00003d04 + +Disassembly of section .text.SYSCONIntHandler: + +000025b4 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 25b4: 1460 nie + 25b6: 1462 ipush + // ISR content ... + nop; + 25b8: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 25ba: 117a lrw r3, 0x2000005c // 26a0 + 25bc: 3280 movi r2, 128 + 25be: 9360 ld.w r3, (r3, 0x0) + 25c0: 60c8 addu r3, r2 + 25c2: 9323 ld.w r1, (r3, 0xc) + 25c4: 3001 movi r0, 1 + 25c6: 6840 and r1, r0 + 25c8: 3940 cmpnei r1, 0 + 25ca: 0c04 bf 0x25d2 // 25d2 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 25cc: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 25ce: 1463 ipop + 25d0: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 25d2: 9323 ld.w r1, (r3, 0xc) + 25d4: 3002 movi r0, 2 + 25d6: 6840 and r1, r0 + 25d8: 3940 cmpnei r1, 0 + 25da: 0bf9 bt 0x25cc // 25cc + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 25dc: 9323 ld.w r1, (r3, 0xc) + 25de: 3008 movi r0, 8 + 25e0: 6840 and r1, r0 + 25e2: 3940 cmpnei r1, 0 + 25e4: 0bf4 bt 0x25cc // 25cc + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 25e6: 9323 ld.w r1, (r3, 0xc) + 25e8: 3010 movi r0, 16 + 25ea: 6840 and r1, r0 + 25ec: 3940 cmpnei r1, 0 + 25ee: 0bef bt 0x25cc // 25cc + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 25f0: 9323 ld.w r1, (r3, 0xc) + 25f2: 6848 and r1, r2 + 25f4: 3940 cmpnei r1, 0 + 25f6: 0c03 bf 0x25fc // 25fc + SYSCON->ICR = CMD_ERR_ST; + 25f8: b341 st.w r2, (r3, 0x4) +} + 25fa: 07ea br 0x25ce // 25ce + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 25fc: 3280 movi r2, 128 + 25fe: 9323 ld.w r1, (r3, 0xc) + 2600: 4241 lsli r2, r2, 1 + 2602: 6848 and r1, r2 + 2604: 3940 cmpnei r1, 0 + 2606: 0bf9 bt 0x25f8 // 25f8 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2608: 3280 movi r2, 128 + 260a: 9323 ld.w r1, (r3, 0xc) + 260c: 4242 lsli r2, r2, 2 + 260e: 6848 and r1, r2 + 2610: 3940 cmpnei r1, 0 + 2612: 0bf3 bt 0x25f8 // 25f8 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2614: 3280 movi r2, 128 + 2616: 9323 ld.w r1, (r3, 0xc) + 2618: 4243 lsli r2, r2, 3 + 261a: 6848 and r1, r2 + 261c: 3940 cmpnei r1, 0 + 261e: 0bed bt 0x25f8 // 25f8 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2620: 3280 movi r2, 128 + 2622: 9323 ld.w r1, (r3, 0xc) + 2624: 4244 lsli r2, r2, 4 + 2626: 6848 and r1, r2 + 2628: 3940 cmpnei r1, 0 + 262a: 0c03 bf 0x2630 // 2630 + nop; + 262c: 6c03 mov r0, r0 + 262e: 07e5 br 0x25f8 // 25f8 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2630: 3280 movi r2, 128 + 2632: 9323 ld.w r1, (r3, 0xc) + 2634: 4245 lsli r2, r2, 5 + 2636: 6848 and r1, r2 + 2638: 3940 cmpnei r1, 0 + 263a: 0bdf bt 0x25f8 // 25f8 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 263c: 3280 movi r2, 128 + 263e: 9323 ld.w r1, (r3, 0xc) + 2640: 4246 lsli r2, r2, 6 + 2642: 6848 and r1, r2 + 2644: 3940 cmpnei r1, 0 + 2646: 0bd9 bt 0x25f8 // 25f8 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2648: 3280 movi r2, 128 + 264a: 9323 ld.w r1, (r3, 0xc) + 264c: 4247 lsli r2, r2, 7 + 264e: 6848 and r1, r2 + 2650: 3940 cmpnei r1, 0 + 2652: 0bd3 bt 0x25f8 // 25f8 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2654: 3280 movi r2, 128 + 2656: 9323 ld.w r1, (r3, 0xc) + 2658: 424b lsli r2, r2, 11 + 265a: 6848 and r1, r2 + 265c: 3940 cmpnei r1, 0 + 265e: 0bcd bt 0x25f8 // 25f8 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2660: 3280 movi r2, 128 + 2662: 9323 ld.w r1, (r3, 0xc) + 2664: 424c lsli r2, r2, 12 + 2666: 6848 and r1, r2 + 2668: 3940 cmpnei r1, 0 + 266a: 0bc7 bt 0x25f8 // 25f8 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 266c: 3280 movi r2, 128 + 266e: 9323 ld.w r1, (r3, 0xc) + 2670: 424d lsli r2, r2, 13 + 2672: 6848 and r1, r2 + 2674: 3940 cmpnei r1, 0 + 2676: 0bc1 bt 0x25f8 // 25f8 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2678: 3280 movi r2, 128 + 267a: 9323 ld.w r1, (r3, 0xc) + 267c: 424e lsli r2, r2, 14 + 267e: 6848 and r1, r2 + 2680: 3940 cmpnei r1, 0 + 2682: 0bbb bt 0x25f8 // 25f8 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2684: 3280 movi r2, 128 + 2686: 9323 ld.w r1, (r3, 0xc) + 2688: 424f lsli r2, r2, 15 + 268a: 6848 and r1, r2 + 268c: 3940 cmpnei r1, 0 + 268e: 0bb5 bt 0x25f8 // 25f8 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2690: 3280 movi r2, 128 + 2692: 9323 ld.w r1, (r3, 0xc) + 2694: 4256 lsli r2, r2, 22 + 2696: 6848 and r1, r2 + 2698: 3940 cmpnei r1, 0 + 269a: 0baf bt 0x25f8 // 25f8 + 269c: 0799 br 0x25ce // 25ce + 269e: 0000 bkpt + 26a0: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +000026a4 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 26a4: 1460 nie + 26a6: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 26a8: 1078 lrw r3, 0x20000060 // 2708 + 26aa: 3101 movi r1, 1 + 26ac: 9360 ld.w r3, (r3, 0x0) + 26ae: 934b ld.w r2, (r3, 0x2c) + 26b0: 6884 and r2, r1 + 26b2: 3a40 cmpnei r2, 0 + 26b4: 0c04 bf 0x26bc // 26bc + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 26b6: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 26b8: 1463 ipop + 26ba: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 26bc: 934b ld.w r2, (r3, 0x2c) + 26be: 3102 movi r1, 2 + 26c0: 6884 and r2, r1 + 26c2: 3a40 cmpnei r2, 0 + 26c4: 0bf9 bt 0x26b6 // 26b6 + else if(IFC->MISR&PEP_END_INT) + 26c6: 934b ld.w r2, (r3, 0x2c) + 26c8: 3104 movi r1, 4 + 26ca: 6884 and r2, r1 + 26cc: 3a40 cmpnei r2, 0 + 26ce: 0bf4 bt 0x26b6 // 26b6 + else if(IFC->MISR&PROT_ERR_INT) + 26d0: 3280 movi r2, 128 + 26d2: 932b ld.w r1, (r3, 0x2c) + 26d4: 4245 lsli r2, r2, 5 + 26d6: 6848 and r1, r2 + 26d8: 3940 cmpnei r1, 0 + 26da: 0c03 bf 0x26e0 // 26e0 + IFC->ICR=OVW_ERR_INT; + 26dc: b34c st.w r2, (r3, 0x30) +} + 26de: 07ed br 0x26b8 // 26b8 + else if(IFC->MISR&UDEF_ERR_INT) + 26e0: 3280 movi r2, 128 + 26e2: 932b ld.w r1, (r3, 0x2c) + 26e4: 4246 lsli r2, r2, 6 + 26e6: 6848 and r1, r2 + 26e8: 3940 cmpnei r1, 0 + 26ea: 0bf9 bt 0x26dc // 26dc + else if(IFC->MISR&ADDR_ERR_INT) + 26ec: 3280 movi r2, 128 + 26ee: 932b ld.w r1, (r3, 0x2c) + 26f0: 4247 lsli r2, r2, 7 + 26f2: 6848 and r1, r2 + 26f4: 3940 cmpnei r1, 0 + 26f6: 0bf3 bt 0x26dc // 26dc + else if(IFC->MISR&OVW_ERR_INT) + 26f8: 3280 movi r2, 128 + 26fa: 932b ld.w r1, (r3, 0x2c) + 26fc: 4248 lsli r2, r2, 8 + 26fe: 6848 and r1, r2 + 2700: 3940 cmpnei r1, 0 + 2702: 0bed bt 0x26dc // 26dc + 2704: 07da br 0x26b8 // 26b8 + 2706: 0000 bkpt + 2708: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +0000270c : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 270c: 1460 nie + 270e: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2710: 1078 lrw r3, 0x20000050 // 2770 + 2712: 3101 movi r1, 1 + 2714: 9360 ld.w r3, (r3, 0x0) + 2716: 9348 ld.w r2, (r3, 0x20) + 2718: 6884 and r2, r1 + 271a: 3a40 cmpnei r2, 0 + 271c: 0c04 bf 0x2724 // 2724 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 271e: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 2720: 1463 ipop + 2722: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2724: 9348 ld.w r2, (r3, 0x20) + 2726: 3102 movi r1, 2 + 2728: 6884 and r2, r1 + 272a: 3a40 cmpnei r2, 0 + 272c: 0bf9 bt 0x271e // 271e + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 272e: 9348 ld.w r2, (r3, 0x20) + 2730: 3104 movi r1, 4 + 2732: 6884 and r2, r1 + 2734: 3a40 cmpnei r2, 0 + 2736: 0bf4 bt 0x271e // 271e + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 2738: 9348 ld.w r2, (r3, 0x20) + 273a: 3110 movi r1, 16 + 273c: 6884 and r2, r1 + 273e: 3a40 cmpnei r2, 0 + 2740: 0bef bt 0x271e // 271e + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 2742: 9348 ld.w r2, (r3, 0x20) + 2744: 3120 movi r1, 32 + 2746: 6884 and r2, r1 + 2748: 3a40 cmpnei r2, 0 + 274a: 0bea bt 0x271e // 271e + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 274c: 9348 ld.w r2, (r3, 0x20) + 274e: 3140 movi r1, 64 + 2750: 6884 and r2, r1 + 2752: 3a40 cmpnei r2, 0 + 2754: 0be5 bt 0x271e // 271e + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 2756: 9348 ld.w r2, (r3, 0x20) + 2758: 3180 movi r1, 128 + 275a: 6884 and r2, r1 + 275c: 3a40 cmpnei r2, 0 + 275e: 0be0 bt 0x271e // 271e + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 2760: 3280 movi r2, 128 + 2762: 9328 ld.w r1, (r3, 0x20) + 2764: 4249 lsli r2, r2, 9 + 2766: 6848 and r1, r2 + 2768: 3940 cmpnei r1, 0 + 276a: 0fdb bf 0x2720 // 2720 + ADC0->CSR = ADC12_SEQ_END0; + 276c: b347 st.w r2, (r3, 0x1c) +} + 276e: 07d9 br 0x2720 // 2720 + 2770: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00002774 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 2774: 1460 nie + 2776: 1462 ipush + 2778: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 277a: 1387 lrw r4, 0x20000020 // 2914 + 277c: 3280 movi r2, 128 + 277e: 9460 ld.w r3, (r4, 0x0) + 2780: 60c8 addu r3, r2 + 2782: 9335 ld.w r1, (r3, 0x54) + 2784: 3001 movi r0, 1 + 2786: 6840 and r1, r0 + 2788: 3940 cmpnei r1, 0 + 278a: 0c03 bf 0x2790 // 2790 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 278c: b317 st.w r0, (r3, 0x5c) + 278e: 0424 br 0x27d6 // 27d6 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2790: 9335 ld.w r1, (r3, 0x54) + 2792: 3002 movi r0, 2 + 2794: 6840 and r1, r0 + 2796: 3940 cmpnei r1, 0 + 2798: 0bfa bt 0x278c // 278c + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 279a: 9335 ld.w r1, (r3, 0x54) + 279c: 3004 movi r0, 4 + 279e: 6840 and r1, r0 + 27a0: 3940 cmpnei r1, 0 + 27a2: 0bf5 bt 0x278c // 278c + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 27a4: 9335 ld.w r1, (r3, 0x54) + 27a6: 3008 movi r0, 8 + 27a8: 6840 and r1, r0 + 27aa: 3940 cmpnei r1, 0 + 27ac: 0bf0 bt 0x278c // 278c + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 27ae: 9335 ld.w r1, (r3, 0x54) + 27b0: 3010 movi r0, 16 + 27b2: 6840 and r1, r0 + 27b4: 3940 cmpnei r1, 0 + 27b6: 0c1f bf 0x27f4 // 27f4 + EPT0->ICR=EPT_CAP_LD0; + 27b8: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 27ba: 3200 movi r2, 0 + 27bc: 3101 movi r1, 1 + 27be: 3000 movi r0, 0 + 27c0: e3fffa94 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 27c4: 3201 movi r2, 1 + 27c6: 3101 movi r1, 1 + 27c8: 3001 movi r0, 1 + 27ca: e3fffa8f bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 27ce: 9460 ld.w r3, (r4, 0x0) + 27d0: 934b ld.w r2, (r3, 0x2c) + 27d2: 1272 lrw r3, 0x20000178 // 2918 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 27d4: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 27d6: 9460 ld.w r3, (r4, 0x0) + 27d8: 3280 movi r2, 128 + 27da: 60c8 addu r3, r2 + 27dc: 932b ld.w r1, (r3, 0x2c) + 27de: 3001 movi r0, 1 + 27e0: 6840 and r1, r0 + 27e2: 3940 cmpnei r1, 0 + 27e4: 0c61 bf 0x28a6 // 28a6 + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 27e6: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 27e8: d9ee2001 ld.w r15, (r14, 0x4) + 27ec: 9880 ld.w r4, (r14, 0x0) + 27ee: 1402 addi r14, r14, 8 + 27f0: 1463 ipop + 27f2: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 27f4: 9335 ld.w r1, (r3, 0x54) + 27f6: 3020 movi r0, 32 + 27f8: 6840 and r1, r0 + 27fa: 3940 cmpnei r1, 0 + 27fc: 0c10 bf 0x281c // 281c + EPT0->ICR=EPT_CAP_LD1; + 27fe: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 2800: 3200 movi r2, 0 + 2802: 3101 movi r1, 1 + 2804: 3001 movi r0, 1 + 2806: e3fffa71 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 280a: 3201 movi r2, 1 + 280c: 3101 movi r1, 1 + 280e: 3000 movi r0, 0 + 2810: e3fffa6c bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2814: 9460 ld.w r3, (r4, 0x0) + 2816: 934c ld.w r2, (r3, 0x30) + 2818: 1261 lrw r3, 0x20000174 // 291c + 281a: 07dd br 0x27d4 // 27d4 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 281c: 9335 ld.w r1, (r3, 0x54) + 281e: 3040 movi r0, 64 + 2820: 6840 and r1, r0 + 2822: 3940 cmpnei r1, 0 + 2824: 0bb4 bt 0x278c // 278c + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 2826: 9335 ld.w r1, (r3, 0x54) + 2828: 6848 and r1, r2 + 282a: 3940 cmpnei r1, 0 + 282c: 0c03 bf 0x2832 // 2832 + EPT0->ICR=EPT_CDD; + 282e: b357 st.w r2, (r3, 0x5c) + 2830: 07d3 br 0x27d6 // 27d6 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 2832: 3280 movi r2, 128 + 2834: 9335 ld.w r1, (r3, 0x54) + 2836: 4241 lsli r2, r2, 1 + 2838: 6848 and r1, r2 + 283a: 3940 cmpnei r1, 0 + 283c: 0bf9 bt 0x282e // 282e + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 283e: 3280 movi r2, 128 + 2840: 9335 ld.w r1, (r3, 0x54) + 2842: 4242 lsli r2, r2, 2 + 2844: 6848 and r1, r2 + 2846: 3940 cmpnei r1, 0 + 2848: 0bf3 bt 0x282e // 282e + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 284a: 3280 movi r2, 128 + 284c: 9335 ld.w r1, (r3, 0x54) + 284e: 4243 lsli r2, r2, 3 + 2850: 6848 and r1, r2 + 2852: 3940 cmpnei r1, 0 + 2854: 0bed bt 0x282e // 282e + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 2856: 3280 movi r2, 128 + 2858: 9335 ld.w r1, (r3, 0x54) + 285a: 4244 lsli r2, r2, 4 + 285c: 6848 and r1, r2 + 285e: 3940 cmpnei r1, 0 + 2860: 0be7 bt 0x282e // 282e + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 2862: 3280 movi r2, 128 + 2864: 9335 ld.w r1, (r3, 0x54) + 2866: 4245 lsli r2, r2, 5 + 2868: 6848 and r1, r2 + 286a: 3940 cmpnei r1, 0 + 286c: 0be1 bt 0x282e // 282e + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 286e: 3280 movi r2, 128 + 2870: 9335 ld.w r1, (r3, 0x54) + 2872: 4246 lsli r2, r2, 6 + 2874: 6848 and r1, r2 + 2876: 3940 cmpnei r1, 0 + 2878: 0bdb bt 0x282e // 282e + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 287a: 3280 movi r2, 128 + 287c: 9335 ld.w r1, (r3, 0x54) + 287e: 4247 lsli r2, r2, 7 + 2880: 6848 and r1, r2 + 2882: 3940 cmpnei r1, 0 + 2884: 0bd5 bt 0x282e // 282e + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 2886: 3280 movi r2, 128 + 2888: 9335 ld.w r1, (r3, 0x54) + 288a: 4248 lsli r2, r2, 8 + 288c: 6848 and r1, r2 + 288e: 3940 cmpnei r1, 0 + 2890: 0bcf bt 0x282e // 282e + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 2892: 3280 movi r2, 128 + 2894: 9335 ld.w r1, (r3, 0x54) + 2896: 4249 lsli r2, r2, 9 + 2898: 6848 and r1, r2 + 289a: 3940 cmpnei r1, 0 + 289c: 0f9d bf 0x27d6 // 27d6 + EPT0->ICR=EPT_PEND; + 289e: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 28a0: e3fffd4c bsr 0x2338 // 2338 + 28a4: 0799 br 0x27d6 // 27d6 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 28a6: 932b ld.w r1, (r3, 0x2c) + 28a8: 3002 movi r0, 2 + 28aa: 6840 and r1, r0 + 28ac: 3940 cmpnei r1, 0 + 28ae: 0b9c bt 0x27e6 // 27e6 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 28b0: 932b ld.w r1, (r3, 0x2c) + 28b2: 3004 movi r0, 4 + 28b4: 6840 and r1, r0 + 28b6: 3940 cmpnei r1, 0 + 28b8: 0b97 bt 0x27e6 // 27e6 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 28ba: 932b ld.w r1, (r3, 0x2c) + 28bc: 3008 movi r0, 8 + 28be: 6840 and r1, r0 + 28c0: 3940 cmpnei r1, 0 + 28c2: 0b92 bt 0x27e6 // 27e6 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 28c4: 932b ld.w r1, (r3, 0x2c) + 28c6: 3010 movi r0, 16 + 28c8: 6840 and r1, r0 + 28ca: 3940 cmpnei r1, 0 + 28cc: 0b8d bt 0x27e6 // 27e6 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 28ce: 932b ld.w r1, (r3, 0x2c) + 28d0: 3020 movi r0, 32 + 28d2: 6840 and r1, r0 + 28d4: 3940 cmpnei r1, 0 + 28d6: 0b88 bt 0x27e6 // 27e6 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 28d8: 932b ld.w r1, (r3, 0x2c) + 28da: 3040 movi r0, 64 + 28dc: 6840 and r1, r0 + 28de: 3940 cmpnei r1, 0 + 28e0: 0b83 bt 0x27e6 // 27e6 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 28e2: 932b ld.w r1, (r3, 0x2c) + 28e4: 6848 and r1, r2 + 28e6: 3940 cmpnei r1, 0 + 28e8: 0c03 bf 0x28ee // 28ee + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 28ea: b34d st.w r2, (r3, 0x34) +} + 28ec: 077e br 0x27e8 // 27e8 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 28ee: 3280 movi r2, 128 + 28f0: 932b ld.w r1, (r3, 0x2c) + 28f2: 4241 lsli r2, r2, 1 + 28f4: 6848 and r1, r2 + 28f6: 3940 cmpnei r1, 0 + 28f8: 0bf9 bt 0x28ea // 28ea + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 28fa: 3280 movi r2, 128 + 28fc: 932b ld.w r1, (r3, 0x2c) + 28fe: 4242 lsli r2, r2, 2 + 2900: 6848 and r1, r2 + 2902: 3940 cmpnei r1, 0 + 2904: 0bf3 bt 0x28ea // 28ea + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 2906: 3280 movi r2, 128 + 2908: 932b ld.w r1, (r3, 0x2c) + 290a: 4243 lsli r2, r2, 3 + 290c: 6848 and r1, r2 + 290e: 3940 cmpnei r1, 0 + 2910: 0bed bt 0x28ea // 28ea + 2912: 076b br 0x27e8 // 27e8 + 2914: 20000020 .long 0x20000020 + 2918: 20000178 .long 0x20000178 + 291c: 20000174 .long 0x20000174 + +Disassembly of section .text.WWDTHandler: + +00002920 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 2920: 1460 nie + 2922: 1462 ipush + 2924: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 2926: 10ab lrw r5, 0x20000010 // 2950 + 2928: 3401 movi r4, 1 + 292a: 9560 ld.w r3, (r5, 0x0) + 292c: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 292e: 30ff movi r0, 255 + 2930: e3fffada bsr 0x1ee4 // 1ee4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 2934: 9540 ld.w r2, (r5, 0x0) + 2936: 9263 ld.w r3, (r2, 0xc) + 2938: 68d0 and r3, r4 + 293a: 3b40 cmpnei r3, 0 + 293c: 0c02 bf 0x2940 // 2940 + { + WWDT->ICR = WWDT_EVI; + 293e: b285 st.w r4, (r2, 0x14) + } +} + 2940: d9ee2002 ld.w r15, (r14, 0x8) + 2944: 98a1 ld.w r5, (r14, 0x4) + 2946: 9880 ld.w r4, (r14, 0x0) + 2948: 1403 addi r14, r14, 12 + 294a: 1463 ipop + 294c: 1461 nir + 294e: 0000 bkpt + 2950: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00002954 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 2954: 1460 nie + 2956: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 2958: 107e lrw r3, 0x20000024 // 29d0 + 295a: 3101 movi r1, 1 + 295c: 9360 ld.w r3, (r3, 0x0) + 295e: 237f addi r3, 128 + 2960: 9355 ld.w r2, (r3, 0x54) + 2962: 6884 and r2, r1 + 2964: 3a40 cmpnei r2, 0 + 2966: 0c04 bf 0x296e // 296e + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 2968: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 296a: 1463 ipop + 296c: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 296e: 9355 ld.w r2, (r3, 0x54) + 2970: 3102 movi r1, 2 + 2972: 6884 and r2, r1 + 2974: 3a40 cmpnei r2, 0 + 2976: 0bf9 bt 0x2968 // 2968 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 2978: 9355 ld.w r2, (r3, 0x54) + 297a: 3110 movi r1, 16 + 297c: 6884 and r2, r1 + 297e: 3a40 cmpnei r2, 0 + 2980: 0bf4 bt 0x2968 // 2968 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 2982: 9355 ld.w r2, (r3, 0x54) + 2984: 3120 movi r1, 32 + 2986: 6884 and r2, r1 + 2988: 3a40 cmpnei r2, 0 + 298a: 0bef bt 0x2968 // 2968 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 298c: 3280 movi r2, 128 + 298e: 9335 ld.w r1, (r3, 0x54) + 2990: 4241 lsli r2, r2, 1 + 2992: 6848 and r1, r2 + 2994: 3940 cmpnei r1, 0 + 2996: 0c03 bf 0x299c // 299c + GPT0->ICR = GPT_INT_PEND; + 2998: b357 st.w r2, (r3, 0x5c) +} + 299a: 07e8 br 0x296a // 296a + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 299c: 3280 movi r2, 128 + 299e: 9335 ld.w r1, (r3, 0x54) + 29a0: 4242 lsli r2, r2, 2 + 29a2: 6848 and r1, r2 + 29a4: 3940 cmpnei r1, 0 + 29a6: 0bf9 bt 0x2998 // 2998 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 29a8: 3280 movi r2, 128 + 29aa: 9335 ld.w r1, (r3, 0x54) + 29ac: 4243 lsli r2, r2, 3 + 29ae: 6848 and r1, r2 + 29b0: 3940 cmpnei r1, 0 + 29b2: 0bf3 bt 0x2998 // 2998 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 29b4: 3280 movi r2, 128 + 29b6: 9335 ld.w r1, (r3, 0x54) + 29b8: 4244 lsli r2, r2, 4 + 29ba: 6848 and r1, r2 + 29bc: 3940 cmpnei r1, 0 + 29be: 0bed bt 0x2998 // 2998 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 29c0: 3280 movi r2, 128 + 29c2: 9335 ld.w r1, (r3, 0x54) + 29c4: 4249 lsli r2, r2, 9 + 29c6: 6848 and r1, r2 + 29c8: 3940 cmpnei r1, 0 + 29ca: 0be7 bt 0x2998 // 2998 + 29cc: 07cf br 0x296a // 296a + 29ce: 0000 bkpt + 29d0: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +000029d4 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 29d4: 1460 nie + 29d6: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 29d8: 1079 lrw r3, 0x20000018 // 2a3c + 29da: 3101 movi r1, 1 + 29dc: 9360 ld.w r3, (r3, 0x0) + 29de: 934a ld.w r2, (r3, 0x28) + 29e0: 6884 and r2, r1 + 29e2: 3a40 cmpnei r2, 0 + 29e4: 0c14 bf 0x2a0c // 2a0c + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 29e6: 1057 lrw r2, 0xca53 // 2a40 + RTC->ICR=ALRA_INT; + 29e8: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 29ea: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 29ec: 9342 ld.w r2, (r3, 0x8) + 29ee: 6c84 or r2, r1 + 29f0: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 29f2: 3280 movi r2, 128 + 29f4: 424d lsli r2, r2, 13 + 29f6: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 29f8: 3102 movi r1, 2 + 29fa: 9342 ld.w r2, (r3, 0x8) + 29fc: 6884 and r2, r1 + 29fe: 3a40 cmpnei r2, 0 + 2a00: 0bfd bt 0x29fa // 29fa + RTC->CR &= ~0x1; + 2a02: 9342 ld.w r2, (r3, 0x8) + 2a04: 3a80 bclri r2, 0 + 2a06: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 2a08: 1463 ipop + 2a0a: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 2a0c: 934a ld.w r2, (r3, 0x28) + 2a0e: 3102 movi r1, 2 + 2a10: 6884 and r2, r1 + 2a12: 3a40 cmpnei r2, 0 + 2a14: 0c03 bf 0x2a1a // 2a1a + RTC->ICR=RTC_TRGEV1_INT; + 2a16: b32b st.w r1, (r3, 0x2c) +} + 2a18: 07f8 br 0x2a08 // 2a08 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 2a1a: 934a ld.w r2, (r3, 0x28) + 2a1c: 3104 movi r1, 4 + 2a1e: 6884 and r2, r1 + 2a20: 3a40 cmpnei r2, 0 + 2a22: 0bfa bt 0x2a16 // 2a16 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 2a24: 934a ld.w r2, (r3, 0x28) + 2a26: 3108 movi r1, 8 + 2a28: 6884 and r2, r1 + 2a2a: 3a40 cmpnei r2, 0 + 2a2c: 0bf5 bt 0x2a16 // 2a16 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 2a2e: 934a ld.w r2, (r3, 0x28) + 2a30: 3110 movi r1, 16 + 2a32: 6884 and r2, r1 + 2a34: 3a40 cmpnei r2, 0 + 2a36: 0bf0 bt 0x2a16 // 2a16 + 2a38: 07e8 br 0x2a08 // 2a08 + 2a3a: 0000 bkpt + 2a3c: 20000018 .long 0x20000018 + 2a40: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00002a44 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 2a44: 1460 nie + 2a46: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2a48: 106d lrw r3, 0x20000040 // 2a7c + 2a4a: 3102 movi r1, 2 + 2a4c: 9360 ld.w r3, (r3, 0x0) + 2a4e: 9343 ld.w r2, (r3, 0xc) + 2a50: 6884 and r2, r1 + 2a52: 3a40 cmpnei r2, 0 + 2a54: 0c03 bf 0x2a5a // 2a5a + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 2a56: b323 st.w r1, (r3, 0xc) + } +} + 2a58: 0410 br 0x2a78 // 2a78 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2a5a: 9343 ld.w r2, (r3, 0xc) + 2a5c: 3101 movi r1, 1 + 2a5e: 6884 and r2, r1 + 2a60: 3a40 cmpnei r2, 0 + 2a62: 0bfa bt 0x2a56 // 2a56 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2a64: 9343 ld.w r2, (r3, 0xc) + 2a66: 3108 movi r1, 8 + 2a68: 6884 and r2, r1 + 2a6a: 3a40 cmpnei r2, 0 + 2a6c: 0bf5 bt 0x2a56 // 2a56 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2a6e: 9343 ld.w r2, (r3, 0xc) + 2a70: 3104 movi r1, 4 + 2a72: 6884 and r2, r1 + 2a74: 3a40 cmpnei r2, 0 + 2a76: 0bf0 bt 0x2a56 // 2a56 +} + 2a78: 1463 ipop + 2a7a: 1461 nir + 2a7c: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00002a80 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 2a80: 1460 nie + 2a82: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2a84: 106d lrw r3, 0x2000003c // 2ab8 + 2a86: 3102 movi r1, 2 + 2a88: 9360 ld.w r3, (r3, 0x0) + 2a8a: 9343 ld.w r2, (r3, 0xc) + 2a8c: 6884 and r2, r1 + 2a8e: 3a40 cmpnei r2, 0 + 2a90: 0c03 bf 0x2a96 // 2a96 + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + 2a92: b323 st.w r1, (r3, 0xc) + } +} + 2a94: 0410 br 0x2ab4 // 2ab4 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2a96: 9343 ld.w r2, (r3, 0xc) + 2a98: 3101 movi r1, 1 + 2a9a: 6884 and r2, r1 + 2a9c: 3a40 cmpnei r2, 0 + 2a9e: 0bfa bt 0x2a92 // 2a92 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2aa0: 9343 ld.w r2, (r3, 0xc) + 2aa2: 3108 movi r1, 8 + 2aa4: 6884 and r2, r1 + 2aa6: 3a40 cmpnei r2, 0 + 2aa8: 0bf5 bt 0x2a92 // 2a92 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2aaa: 9343 ld.w r2, (r3, 0xc) + 2aac: 3104 movi r1, 4 + 2aae: 6884 and r2, r1 + 2ab0: 3a40 cmpnei r2, 0 + 2ab2: 0bf0 bt 0x2a92 // 2a92 +} + 2ab4: 1463 ipop + 2ab6: 1461 nir + 2ab8: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00002abc : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 2abc: 1460 nie + 2abe: 1462 ipush + 2ac0: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2ac2: 107f lrw r3, 0x20000038 // 2b3c + 2ac4: 3102 movi r1, 2 + 2ac6: 9360 ld.w r3, (r3, 0x0) + 2ac8: 9343 ld.w r2, (r3, 0xc) + 2aca: 6884 and r2, r1 + 2acc: 3a40 cmpnei r2, 0 + 2ace: 0c0b bf 0x2ae4 // 2ae4 + { + UART2->ISR=UART_RX_INT_S; + 2ad0: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 2ad2: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 2ad4: 7400 zextb r0, r0 + 2ad6: e00002c5 bsr 0x3060 // 3060 + RS485_Comm_End ++; + } + + } + +} + 2ada: d9ee2000 ld.w r15, (r14, 0x0) + 2ade: 1401 addi r14, r14, 4 + 2ae0: 1463 ipop + 2ae2: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2ae4: 9323 ld.w r1, (r3, 0xc) + 2ae6: 3201 movi r2, 1 + 2ae8: 6848 and r1, r2 + 2aea: 3940 cmpnei r1, 0 + 2aec: 0c0d bf 0x2b06 // 2b06 + UART2->ISR=UART_TX_INT_S; + 2aee: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 2af0: 1074 lrw r3, 0x200000b8 // 2b40 + 2af2: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2af4: 1074 lrw r3, 0x200000bc // 2b44 + 2af6: 9360 ld.w r3, (r3, 0x0) + 2af8: 3b41 cmpnei r3, 1 + 2afa: 0bf0 bt 0x2ada // 2ada + RS485_Comm_Start ++; + 2afc: 1053 lrw r2, 0x200000c0 // 2b48 + RS485_Comm_End ++; + 2afe: 9260 ld.w r3, (r2, 0x0) + 2b00: 2300 addi r3, 1 + 2b02: b260 st.w r3, (r2, 0x0) +} + 2b04: 07eb br 0x2ada // 2ada + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2b06: 9343 ld.w r2, (r3, 0xc) + 2b08: 3108 movi r1, 8 + 2b0a: 6884 and r2, r1 + 2b0c: 3a40 cmpnei r2, 0 + 2b0e: 0c03 bf 0x2b14 // 2b14 + UART2->ISR=UART_TX_IOV_S; + 2b10: b323 st.w r1, (r3, 0xc) + 2b12: 07e4 br 0x2ada // 2ada + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2b14: 9343 ld.w r2, (r3, 0xc) + 2b16: 3104 movi r1, 4 + 2b18: 6884 and r2, r1 + 2b1a: 3a40 cmpnei r2, 0 + 2b1c: 0bfa bt 0x2b10 // 2b10 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2b1e: 3180 movi r1, 128 + 2b20: 9303 ld.w r0, (r3, 0xc) + 2b22: 412c lsli r1, r1, 12 + 2b24: 6804 and r0, r1 + 2b26: 3840 cmpnei r0, 0 + 2b28: 0fd9 bf 0x2ada // 2ada + UART2->ISR=UART_TX_DONE_S; + 2b2a: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 2b2c: 1065 lrw r3, 0x200000b8 // 2b40 + 2b2e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2b30: 1065 lrw r3, 0x200000bc // 2b44 + 2b32: 9360 ld.w r3, (r3, 0x0) + 2b34: 3b41 cmpnei r3, 1 + 2b36: 0bd2 bt 0x2ada // 2ada + RS485_Comm_End ++; + 2b38: 1045 lrw r2, 0x200000c4 // 2b4c + 2b3a: 07e2 br 0x2afe // 2afe + 2b3c: 20000038 .long 0x20000038 + 2b40: 200000b8 .long 0x200000b8 + 2b44: 200000bc .long 0x200000bc + 2b48: 200000c0 .long 0x200000c0 + 2b4c: 200000c4 .long 0x200000c4 + +Disassembly of section .text.SPI0IntHandler: + +00002b50 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 2b50: 1460 nie + 2b52: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 2b54: 1178 lrw r3, 0x20000034 // 2c34 + 2b56: 3101 movi r1, 1 + 2b58: 9360 ld.w r3, (r3, 0x0) + 2b5a: 9347 ld.w r2, (r3, 0x1c) + 2b5c: 6884 and r2, r1 + 2b5e: 3a40 cmpnei r2, 0 + 2b60: 0c03 bf 0x2b66 // 2b66 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 2b62: b328 st.w r1, (r3, 0x20) + } + +} + 2b64: 0407 br 0x2b72 // 2b72 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 2b66: 9347 ld.w r2, (r3, 0x1c) + 2b68: 3002 movi r0, 2 + 2b6a: 6880 and r2, r0 + 2b6c: 3a40 cmpnei r2, 0 + 2b6e: 0c04 bf 0x2b76 // 2b76 + SPI0->ICR = SPI_RTIM; + 2b70: b308 st.w r0, (r3, 0x20) +} + 2b72: 1463 ipop + 2b74: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 2b76: 9347 ld.w r2, (r3, 0x1c) + 2b78: 3004 movi r0, 4 + 2b7a: 6880 and r2, r0 + 2b7c: 3a40 cmpnei r2, 0 + 2b7e: 0c55 bf 0x2c28 // 2c28 + SPI0->ICR = SPI_RXIM; + 2b80: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 2b82: 9302 ld.w r0, (r3, 0x8) + 2b84: 32aa movi r2, 170 + 2b86: 6482 cmpne r0, r2 + 2b88: 083e bt 0x2c04 // 2c04 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2b8a: 3102 movi r1, 2 + 2b8c: 9343 ld.w r2, (r3, 0xc) + 2b8e: 6884 and r2, r1 + 2b90: 3a40 cmpnei r2, 0 + 2b92: 0ffd bf 0x2b8c // 2b8c + SPI0->DR = 0x11; + 2b94: 3211 movi r2, 17 + 2b96: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2b98: 3110 movi r1, 16 + 2b9a: 9343 ld.w r2, (r3, 0xc) + 2b9c: 6884 and r2, r1 + 2b9e: 3a40 cmpnei r2, 0 + 2ba0: 0bfd bt 0x2b9a // 2b9a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2ba2: 3102 movi r1, 2 + 2ba4: 9343 ld.w r2, (r3, 0xc) + 2ba6: 6884 and r2, r1 + 2ba8: 3a40 cmpnei r2, 0 + 2baa: 0ffd bf 0x2ba4 // 2ba4 + SPI0->DR = 0x12; + 2bac: 3212 movi r2, 18 + 2bae: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bb0: 3110 movi r1, 16 + 2bb2: 9343 ld.w r2, (r3, 0xc) + 2bb4: 6884 and r2, r1 + 2bb6: 3a40 cmpnei r2, 0 + 2bb8: 0bfd bt 0x2bb2 // 2bb2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2bba: 3102 movi r1, 2 + 2bbc: 9343 ld.w r2, (r3, 0xc) + 2bbe: 6884 and r2, r1 + 2bc0: 3a40 cmpnei r2, 0 + 2bc2: 0ffd bf 0x2bbc // 2bbc + SPI0->DR = 0x13; + 2bc4: 3213 movi r2, 19 + 2bc6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bc8: 3110 movi r1, 16 + 2bca: 9343 ld.w r2, (r3, 0xc) + 2bcc: 6884 and r2, r1 + 2bce: 3a40 cmpnei r2, 0 + 2bd0: 0bfd bt 0x2bca // 2bca + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2bd2: 3102 movi r1, 2 + 2bd4: 9343 ld.w r2, (r3, 0xc) + 2bd6: 6884 and r2, r1 + 2bd8: 3a40 cmpnei r2, 0 + 2bda: 0ffd bf 0x2bd4 // 2bd4 + SPI0->DR = 0x14; + 2bdc: 3214 movi r2, 20 + 2bde: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2be0: 3110 movi r1, 16 + 2be2: 9343 ld.w r2, (r3, 0xc) + 2be4: 6884 and r2, r1 + 2be6: 3a40 cmpnei r2, 0 + 2be8: 0bfd bt 0x2be2 // 2be2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2bea: 3102 movi r1, 2 + 2bec: 9343 ld.w r2, (r3, 0xc) + 2bee: 6884 and r2, r1 + 2bf0: 3a40 cmpnei r2, 0 + 2bf2: 0ffd bf 0x2bec // 2bec + SPI0->DR = 0x15; + 2bf4: 3215 movi r2, 21 + 2bf6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2bf8: 3110 movi r1, 16 + 2bfa: 9343 ld.w r2, (r3, 0xc) + 2bfc: 6884 and r2, r1 + 2bfe: 3a40 cmpnei r2, 0 + 2c00: 0bfd bt 0x2bfa // 2bfa + 2c02: 07b8 br 0x2b72 // 2b72 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 2c04: 9343 ld.w r2, (r3, 0xc) + 2c06: 6884 and r2, r1 + 2c08: 3a40 cmpnei r2, 0 + 2c0a: 0bb4 bt 0x2b72 // 2b72 + SPI0->DR=0x0; //FIFO=0 + 2c0c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2c0e: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 2c10: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2c12: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2c14: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2c16: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2c18: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2c1a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2c1c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2c1e: 9343 ld.w r2, (r3, 0xc) + 2c20: 6884 and r2, r1 + 2c22: 3a40 cmpnei r2, 0 + 2c24: 0bfd bt 0x2c1e // 2c1e + 2c26: 07a6 br 0x2b72 // 2b72 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 2c28: 9347 ld.w r2, (r3, 0x1c) + 2c2a: 3108 movi r1, 8 + 2c2c: 6884 and r2, r1 + 2c2e: 3a40 cmpnei r2, 0 + 2c30: 0b99 bt 0x2b62 // 2b62 + 2c32: 07a0 br 0x2b72 // 2b72 + 2c34: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00002c38 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 2c38: 1460 nie + 2c3a: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 2c3c: 1073 lrw r3, 0x2000002c // 2c88 + 2c3e: 3104 movi r1, 4 + 2c40: 9360 ld.w r3, (r3, 0x0) + 2c42: 9349 ld.w r2, (r3, 0x24) + 2c44: 6884 and r2, r1 + 2c46: 3a40 cmpnei r2, 0 + 2c48: 0c02 bf 0x2c4c // 2c4c + { + SIO0->ICR=0X04; + 2c4a: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 2c4c: 9349 ld.w r2, (r3, 0x24) + 2c4e: 3101 movi r1, 1 + 2c50: 6884 and r2, r1 + 2c52: 3a40 cmpnei r2, 0 + 2c54: 0c02 bf 0x2c58 // 2c58 + { + SIO0->ICR=0X01; + 2c56: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 2c58: 9349 ld.w r2, (r3, 0x24) + 2c5a: 3102 movi r1, 2 + 2c5c: 6884 and r2, r1 + 2c5e: 3a40 cmpnei r2, 0 + 2c60: 0c03 bf 0x2c66 // 2c66 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 2c62: b32b st.w r1, (r3, 0x2c) + } +} + 2c64: 0410 br 0x2c84 // 2c84 + else if(SIO0->MISR&0X08) //RXBUFFULL + 2c66: 9349 ld.w r2, (r3, 0x24) + 2c68: 3108 movi r1, 8 + 2c6a: 6884 and r2, r1 + 2c6c: 3a40 cmpnei r2, 0 + 2c6e: 0bfa bt 0x2c62 // 2c62 + else if(SIO0->MISR&0X010) //BREAK + 2c70: 9349 ld.w r2, (r3, 0x24) + 2c72: 3110 movi r1, 16 + 2c74: 6884 and r2, r1 + 2c76: 3a40 cmpnei r2, 0 + 2c78: 0bf5 bt 0x2c62 // 2c62 + else if(SIO0->MISR&0X020) //TIMEOUT + 2c7a: 9349 ld.w r2, (r3, 0x24) + 2c7c: 3120 movi r1, 32 + 2c7e: 6884 and r2, r1 + 2c80: 3a40 cmpnei r2, 0 + 2c82: 0bf0 bt 0x2c62 // 2c62 +} + 2c84: 1463 ipop + 2c86: 1461 nir + 2c88: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00002c8c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 2c8c: 1460 nie + 2c8e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 2c90: 106a lrw r3, 0x2000005c // 2cb8 + 2c92: 3101 movi r1, 1 + 2c94: 9360 ld.w r3, (r3, 0x0) + 2c96: 237f addi r3, 128 + 2c98: 934c ld.w r2, (r3, 0x30) + 2c9a: 6884 and r2, r1 + 2c9c: 3a40 cmpnei r2, 0 + 2c9e: 0c04 bf 0x2ca6 // 2ca6 + { + SYSCON->EXICR = EXI_PIN0; + 2ca0: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 2ca2: 1463 ipop + 2ca4: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 2ca6: 3280 movi r2, 128 + 2ca8: 932c ld.w r1, (r3, 0x30) + 2caa: 4249 lsli r2, r2, 9 + 2cac: 6848 and r1, r2 + 2cae: 3940 cmpnei r1, 0 + 2cb0: 0ff9 bf 0x2ca2 // 2ca2 + SYSCON->EXICR = EXI_PIN16; + 2cb2: b34b st.w r2, (r3, 0x2c) +} + 2cb4: 07f7 br 0x2ca2 // 2ca2 + 2cb6: 0000 bkpt + 2cb8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00002cbc : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 2cbc: 1460 nie + 2cbe: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 2cc0: 106a lrw r3, 0x2000005c // 2ce8 + 2cc2: 3102 movi r1, 2 + 2cc4: 9360 ld.w r3, (r3, 0x0) + 2cc6: 237f addi r3, 128 + 2cc8: 934c ld.w r2, (r3, 0x30) + 2cca: 6884 and r2, r1 + 2ccc: 3a40 cmpnei r2, 0 + 2cce: 0c04 bf 0x2cd6 // 2cd6 + { + SYSCON->EXICR = EXI_PIN1; + 2cd0: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 2cd2: 1463 ipop + 2cd4: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 2cd6: 3280 movi r2, 128 + 2cd8: 932c ld.w r1, (r3, 0x30) + 2cda: 424a lsli r2, r2, 10 + 2cdc: 6848 and r1, r2 + 2cde: 3940 cmpnei r1, 0 + 2ce0: 0ff9 bf 0x2cd2 // 2cd2 + SYSCON->EXICR = EXI_PIN17; + 2ce2: b34b st.w r2, (r3, 0x2c) +} + 2ce4: 07f7 br 0x2cd2 // 2cd2 + 2ce6: 0000 bkpt + 2ce8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00002cec : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 2cec: 1460 nie + 2cee: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 2cf0: 1070 lrw r3, 0x2000005c // 2d30 + 2cf2: 3104 movi r1, 4 + 2cf4: 9360 ld.w r3, (r3, 0x0) + 2cf6: 237f addi r3, 128 + 2cf8: 934c ld.w r2, (r3, 0x30) + 2cfa: 6884 and r2, r1 + 2cfc: 3a40 cmpnei r2, 0 + 2cfe: 0c04 bf 0x2d06 // 2d06 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 2d00: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 2d02: 1463 ipop + 2d04: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 2d06: 934c ld.w r2, (r3, 0x30) + 2d08: 3108 movi r1, 8 + 2d0a: 6884 and r2, r1 + 2d0c: 3a40 cmpnei r2, 0 + 2d0e: 0bf9 bt 0x2d00 // 2d00 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 2d10: 3280 movi r2, 128 + 2d12: 932c ld.w r1, (r3, 0x30) + 2d14: 424b lsli r2, r2, 11 + 2d16: 6848 and r1, r2 + 2d18: 3940 cmpnei r1, 0 + 2d1a: 0c03 bf 0x2d20 // 2d20 + SYSCON->EXICR = EXI_PIN19; + 2d1c: b34b st.w r2, (r3, 0x2c) +} + 2d1e: 07f2 br 0x2d02 // 2d02 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 2d20: 3280 movi r2, 128 + 2d22: 932c ld.w r1, (r3, 0x30) + 2d24: 424c lsli r2, r2, 12 + 2d26: 6848 and r1, r2 + 2d28: 3940 cmpnei r1, 0 + 2d2a: 0bf9 bt 0x2d1c // 2d1c + 2d2c: 07eb br 0x2d02 // 2d02 + 2d2e: 0000 bkpt + 2d30: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00002d34 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 2d34: 1460 nie + 2d36: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 2d38: 1075 lrw r3, 0x2000005c // 2d8c + 2d3a: 3280 movi r2, 128 + 2d3c: 9360 ld.w r3, (r3, 0x0) + 2d3e: 60c8 addu r3, r2 + 2d40: 932c ld.w r1, (r3, 0x30) + 2d42: 3010 movi r0, 16 + 2d44: 6840 and r1, r0 + 2d46: 3940 cmpnei r1, 0 + 2d48: 0c04 bf 0x2d50 // 2d50 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 2d4a: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 2d4c: 1463 ipop + 2d4e: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 2d50: 932c ld.w r1, (r3, 0x30) + 2d52: 3020 movi r0, 32 + 2d54: 6840 and r1, r0 + 2d56: 3940 cmpnei r1, 0 + 2d58: 0bf9 bt 0x2d4a // 2d4a + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 2d5a: 932c ld.w r1, (r3, 0x30) + 2d5c: 3040 movi r0, 64 + 2d5e: 6840 and r1, r0 + 2d60: 3940 cmpnei r1, 0 + 2d62: 0bf4 bt 0x2d4a // 2d4a + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 2d64: 932c ld.w r1, (r3, 0x30) + 2d66: 6848 and r1, r2 + 2d68: 3940 cmpnei r1, 0 + 2d6a: 0c03 bf 0x2d70 // 2d70 + SYSCON->EXICR = EXI_PIN9; + 2d6c: b34b st.w r2, (r3, 0x2c) +} + 2d6e: 07ef br 0x2d4c // 2d4c + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 2d70: 3280 movi r2, 128 + 2d72: 932c ld.w r1, (r3, 0x30) + 2d74: 4241 lsli r2, r2, 1 + 2d76: 6848 and r1, r2 + 2d78: 3940 cmpnei r1, 0 + 2d7a: 0bf9 bt 0x2d6c // 2d6c + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 2d7c: 3280 movi r2, 128 + 2d7e: 932c ld.w r1, (r3, 0x30) + 2d80: 4242 lsli r2, r2, 2 + 2d82: 6848 and r1, r2 + 2d84: 3940 cmpnei r1, 0 + 2d86: 0bf3 bt 0x2d6c // 2d6c + 2d88: 07e2 br 0x2d4c // 2d4c + 2d8a: 0000 bkpt + 2d8c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00002d90 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 2d90: 1460 nie + 2d92: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 2d94: 1076 lrw r3, 0x2000005c // 2dec + 2d96: 3280 movi r2, 128 + 2d98: 9360 ld.w r3, (r3, 0x0) + 2d9a: 237f addi r3, 128 + 2d9c: 932c ld.w r1, (r3, 0x30) + 2d9e: 4243 lsli r2, r2, 3 + 2da0: 6848 and r1, r2 + 2da2: 3940 cmpnei r1, 0 + 2da4: 0c03 bf 0x2daa // 2daa + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 2da6: b34b st.w r2, (r3, 0x2c) + } +} + 2da8: 041f br 0x2de6 // 2de6 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 2daa: 3280 movi r2, 128 + 2dac: 932c ld.w r1, (r3, 0x30) + 2dae: 4244 lsli r2, r2, 4 + 2db0: 6848 and r1, r2 + 2db2: 3940 cmpnei r1, 0 + 2db4: 0bf9 bt 0x2da6 // 2da6 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 2db6: 3280 movi r2, 128 + 2db8: 932c ld.w r1, (r3, 0x30) + 2dba: 4245 lsli r2, r2, 5 + 2dbc: 6848 and r1, r2 + 2dbe: 3940 cmpnei r1, 0 + 2dc0: 0bf3 bt 0x2da6 // 2da6 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 2dc2: 3280 movi r2, 128 + 2dc4: 932c ld.w r1, (r3, 0x30) + 2dc6: 4246 lsli r2, r2, 6 + 2dc8: 6848 and r1, r2 + 2dca: 3940 cmpnei r1, 0 + 2dcc: 0bed bt 0x2da6 // 2da6 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 2dce: 3280 movi r2, 128 + 2dd0: 932c ld.w r1, (r3, 0x30) + 2dd2: 4247 lsli r2, r2, 7 + 2dd4: 6848 and r1, r2 + 2dd6: 3940 cmpnei r1, 0 + 2dd8: 0be7 bt 0x2da6 // 2da6 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 2dda: 3280 movi r2, 128 + 2ddc: 932c ld.w r1, (r3, 0x30) + 2dde: 4248 lsli r2, r2, 8 + 2de0: 6848 and r1, r2 + 2de2: 3940 cmpnei r1, 0 + 2de4: 0be1 bt 0x2da6 // 2da6 +} + 2de6: 1463 ipop + 2de8: 1461 nir + 2dea: 0000 bkpt + 2dec: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00002df0 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 2df0: 1460 nie + 2df2: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 2df4: 106b lrw r3, 0x20000014 // 2e20 + 2df6: 3101 movi r1, 1 + 2df8: 9360 ld.w r3, (r3, 0x0) + 2dfa: 934e ld.w r2, (r3, 0x38) + 2dfc: 6884 and r2, r1 + 2dfe: 3a40 cmpnei r2, 0 + 2e00: 0c03 bf 0x2e06 // 2e06 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 2e02: b330 st.w r1, (r3, 0x40) + } +} + 2e04: 040b br 0x2e1a // 2e1a + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 2e06: 934e ld.w r2, (r3, 0x38) + 2e08: 3102 movi r1, 2 + 2e0a: 6884 and r2, r1 + 2e0c: 3a40 cmpnei r2, 0 + 2e0e: 0bfa bt 0x2e02 // 2e02 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 2e10: 934e ld.w r2, (r3, 0x38) + 2e12: 3104 movi r1, 4 + 2e14: 6884 and r2, r1 + 2e16: 3a40 cmpnei r2, 0 + 2e18: 0bf5 bt 0x2e02 // 2e02 +} + 2e1a: 1463 ipop + 2e1c: 1461 nir + 2e1e: 0000 bkpt + 2e20: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00002e24 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 2e24: 1460 nie + 2e26: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 2e28: 1071 lrw r3, 0x2000000c // 2e6c + 2e2a: 3101 movi r1, 1 + 2e2c: 9360 ld.w r3, (r3, 0x0) + 2e2e: 934c ld.w r2, (r3, 0x30) + 2e30: 6884 and r2, r1 + 2e32: 3a40 cmpnei r2, 0 + 2e34: 0c0a bf 0x2e48 // 2e48 + { + BT0->ICR = BT_PEND; + 2e36: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 2e38: 9341 ld.w r2, (r3, 0x4) + 2e3a: 3a86 bclri r2, 6 + 2e3c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 2e3e: 9340 ld.w r2, (r3, 0x0) + 2e40: 3200 movi r2, 0 + 2e42: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 2e44: 1463 ipop + 2e46: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 2e48: 934c ld.w r2, (r3, 0x30) + 2e4a: 3102 movi r1, 2 + 2e4c: 6884 and r2, r1 + 2e4e: 3a40 cmpnei r2, 0 + 2e50: 0c03 bf 0x2e56 // 2e56 + BT0->ICR = BT_EVTRG; + 2e52: b32d st.w r1, (r3, 0x34) +} + 2e54: 07f8 br 0x2e44 // 2e44 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 2e56: 934c ld.w r2, (r3, 0x30) + 2e58: 3104 movi r1, 4 + 2e5a: 6884 and r2, r1 + 2e5c: 3a40 cmpnei r2, 0 + 2e5e: 0bfa bt 0x2e52 // 2e52 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 2e60: 934c ld.w r2, (r3, 0x30) + 2e62: 3108 movi r1, 8 + 2e64: 6884 and r2, r1 + 2e66: 3a40 cmpnei r2, 0 + 2e68: 0bf5 bt 0x2e52 // 2e52 + 2e6a: 07ed br 0x2e44 // 2e44 + 2e6c: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00002e70 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 2e70: 1460 nie + 2e72: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 2e74: 1076 lrw r3, 0x20000008 // 2ecc + 2e76: 3101 movi r1, 1 + 2e78: 9360 ld.w r3, (r3, 0x0) + 2e7a: 934c ld.w r2, (r3, 0x30) + 2e7c: 6884 and r2, r1 + 2e7e: 3a40 cmpnei r2, 0 + 2e80: 0c03 bf 0x2e86 // 2e86 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 2e82: b32d st.w r1, (r3, 0x34) + } +} + 2e84: 0416 br 0x2eb0 // 2eb0 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 2e86: 934c ld.w r2, (r3, 0x30) + 2e88: 3102 movi r1, 2 + 2e8a: 6884 and r2, r1 + 2e8c: 3a40 cmpnei r2, 0 + 2e8e: 0c13 bf 0x2eb4 // 2eb4 + BT1->ICR = BT_CMP; + 2e90: b32d st.w r1, (r3, 0x34) + NUM++; + 2e92: 1070 lrw r3, 0x200000ac // 2ed0 + 2e94: 8340 ld.b r2, (r3, 0x0) + 2e96: 2200 addi r2, 1 + 2e98: 7488 zextb r2, r2 + SysTick_100us++; + 2e9a: 9321 ld.w r1, (r3, 0x4) + 2e9c: 2100 addi r1, 1 + if(NUM >= 10){ + 2e9e: 3a09 cmphsi r2, 10 + NUM++; + 2ea0: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 2ea2: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 2ea4: 0c06 bf 0x2eb0 // 2eb0 + NUM = 0; + 2ea6: 3200 movi r2, 0 + 2ea8: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 2eaa: 9342 ld.w r2, (r3, 0x8) + 2eac: 2200 addi r2, 1 + 2eae: b342 st.w r2, (r3, 0x8) +} + 2eb0: 1463 ipop + 2eb2: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 2eb4: 934c ld.w r2, (r3, 0x30) + 2eb6: 3104 movi r1, 4 + 2eb8: 6884 and r2, r1 + 2eba: 3a40 cmpnei r2, 0 + 2ebc: 0be3 bt 0x2e82 // 2e82 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 2ebe: 934c ld.w r2, (r3, 0x30) + 2ec0: 3108 movi r1, 8 + 2ec2: 6884 and r2, r1 + 2ec4: 3a40 cmpnei r2, 0 + 2ec6: 0bde bt 0x2e82 // 2e82 + 2ec8: 07f4 br 0x2eb0 // 2eb0 + 2eca: 0000 bkpt + 2ecc: 20000008 .long 0x20000008 + 2ed0: 200000ac .long 0x200000ac + +Disassembly of section .text.PriviledgeVioHandler: + +00002ed4 : + 2ed4: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00002ed6 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 2ed6: 1460 nie + 2ed8: 1462 ipush + // ISR content ... + +} + 2eda: 1463 ipop + 2edc: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00002ede : + 2ede: 1460 nie + 2ee0: 1462 ipush + 2ee2: 1463 ipop + 2ee4: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00002ee6 : + 2ee6: 1460 nie + 2ee8: 1462 ipush + 2eea: 1463 ipop + 2eec: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00002eee : + 2eee: 1460 nie + 2ef0: 1462 ipush + 2ef2: 1463 ipop + 2ef4: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00002ef6 : + 2ef6: 1460 nie + 2ef8: 1462 ipush + 2efa: 1463 ipop + 2efc: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00002efe : + 2efe: 1460 nie + 2f00: 1462 ipush + 2f02: 1463 ipop + 2f04: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00002f06 : + 2f06: 1460 nie + 2f08: 1462 ipush + 2f0a: 1463 ipop + 2f0c: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00002f0e : + 2f0e: 1460 nie + 2f10: 1462 ipush + 2f12: 1463 ipop + 2f14: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00002f16 : + 2f16: 1460 nie + 2f18: 1462 ipush + 2f1a: 1463 ipop + 2f1c: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00002f1e : + 2f1e: 1460 nie + 2f20: 1462 ipush + 2f22: 1463 ipop + 2f24: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00002f26 : + 2f26: 1460 nie + 2f28: 1462 ipush + 2f2a: 1463 ipop + 2f2c: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00002f2e : + 2f2e: 1460 nie + 2f30: 1462 ipush + 2f32: 1463 ipop + 2f34: 1461 nir + +Disassembly of section .text.__divsi3: + +00002f38 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 2f38: 14c1 push r4 + int PSR; + __asm volatile( + 2f3a: c0006023 mfcr r3, cr<0, 0> + 2f3e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 2f42: 1046 lrw r2, 0x20000000 // 2f58 <__divsi3+0x20> + 2f44: 3400 movi r4, 0 + 2f46: 9240 ld.w r2, (r2, 0x0) + 2f48: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 2f4a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 2f4c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 2f4e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 2f50: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 2f54: 9202 ld.w r0, (r2, 0x8) +} + 2f56: 1481 pop r4 + 2f58: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00002f5c <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 2f5c: 14c1 push r4 + int PSR; + __asm volatile( + 2f5e: c0006023 mfcr r3, cr<0, 0> + 2f62: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 2f66: 1046 lrw r2, 0x20000000 // 2f7c <__udivsi3+0x20> + 2f68: 3401 movi r4, 1 + 2f6a: 9240 ld.w r2, (r2, 0x0) + 2f6c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 2f6e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 2f70: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 2f72: b221 st.w r1, (r2, 0x4) + __asm volatile( + 2f74: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 2f78: 9202 ld.w r0, (r2, 0x8) +} + 2f7a: 1481 pop r4 + 2f7c: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00002f80 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 2f80: c1807420 psrset ee, ie +} + 2f84: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00002f88 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 2f88: 14d1 push r4, r15 + switch(uart_id){ + 2f8a: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 2f8c: 6d07 mov r4, r1 + switch(uart_id){ + 2f8e: 0c1a bf 0x2fc2 // 2fc2 + 2f90: 3840 cmpnei r0, 0 + 2f92: 0c04 bf 0x2f9a // 2f9a + 2f94: 3842 cmpnei r0, 2 + 2f96: 0c2a bf 0x2fea // 2fea + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 2f98: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 2f9a: e3fff8f9 bsr 0x218c // 218c + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 2f9e: 118a lrw r4, 0x20000040 // 3044 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 2fa0: 3100 movi r1, 0 + 2fa2: 3000 movi r0, 0 + 2fa4: e3fff934 bsr 0x220c // 220c + UARTInit(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + 2fa8: 9400 ld.w r0, (r4, 0x0) + 2faa: 3200 movi r2, 0 + 2fac: 1127 lrw r1, 0x2710 // 3048 + 2fae: e3fff9a5 bsr 0x22f8 // 22f8 + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 2fb2: 9400 ld.w r0, (r4, 0x0) + 2fb4: 3200 movi r2, 0 + 2fb6: 1125 lrw r1, 0x2710 // 3048 + 2fb8: e3fff9a8 bsr 0x2308 // 2308 + UART0_Int_Enable(); + 2fbc: e3fff90c bsr 0x21d4 // 21d4 + break; + 2fc0: 07ec br 0x2f98 // 2f98 + UART1_DeInit(); //clear all UART Register + 2fc2: e3fff8f1 bsr 0x21a4 // 21a4 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 2fc6: 3102 movi r1, 2 + 2fc8: 3001 movi r0, 1 + 2fca: e3fff921 bsr 0x220c // 220c + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 2fce: 1180 lrw r4, 0x2000003c // 304c + 2fd0: 31d0 movi r1, 208 + 2fd2: 9400 ld.w r0, (r4, 0x0) + 2fd4: 3200 movi r2, 0 + 2fd6: 4121 lsli r1, r1, 1 + 2fd8: e3fff990 bsr 0x22f8 // 22f8 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 2fdc: 31d0 movi r1, 208 + 2fde: 9400 ld.w r0, (r4, 0x0) + 2fe0: 3200 movi r2, 0 + 2fe2: 4121 lsli r1, r1, 1 + 2fe4: e3fff992 bsr 0x2308 // 2308 + break; + 2fe8: 07d8 br 0x2f98 // 2f98 + UART2_DeInit(); //clear all UART Register + 2fea: e3fff8e9 bsr 0x21bc // 21bc + UART_IO_Init(IO_UART2,2); //use PA0.13->RXD1, PB0.0->TXD1 + 2fee: 3102 movi r1, 2 + 2ff0: 3002 movi r0, 2 + 2ff2: e3fff90d bsr 0x220c // 220c + UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 2ff6: 1077 lrw r3, 0x20000038 // 3050 + 2ff8: 31d0 movi r1, 208 + 2ffa: 9300 ld.w r0, (r3, 0x0) + 2ffc: 3200 movi r2, 0 + 2ffe: 4121 lsli r1, r1, 1 + 3000: e3fff984 bsr 0x2308 // 2308 + UART2_Int_Enable(); + 3004: e3fff8f6 bsr 0x21f0 // 21f0 + memset(&g_uart,0,sizeof(UART_t)); + 3008: 3273 movi r2, 115 + 300a: 3100 movi r1, 0 + 300c: 1012 lrw r0, 0x200001a4 // 3054 + 300e: e3fff4ab bsr 0x1964 // 1964 <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 3012: 1072 lrw r3, 0x2000020b // 3058 + 3014: 3203 movi r2, 3 + 3016: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 3018: 4c48 lsri r2, r4, 8 + 301a: a388 st.b r4, (r3, 0x8) + 301c: a349 st.b r2, (r3, 0x9) + 301e: 4c50 lsri r2, r4, 16 + 3020: 4c98 lsri r4, r4, 24 + 3022: a38b st.b r4, (r3, 0xb) + 3024: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 3026: 3103 movi r1, 3 + 3028: 108d lrw r4, 0x20000048 // 305c + 302a: 3200 movi r2, 0 + 302c: 9400 ld.w r0, (r4, 0x0) + 302e: e3fff6ad bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOB0,3); + 3032: 9400 ld.w r0, (r4, 0x0) + 3034: 3103 movi r1, 3 + 3036: e3fff723 bsr 0x1e7c // 1e7c + GPIO_Write_Low(GPIOB0,3); + 303a: 9400 ld.w r0, (r4, 0x0) + 303c: 3103 movi r1, 3 + 303e: e3fff72a bsr 0x1e92 // 1e92 +} + 3042: 07ab br 0x2f98 // 2f98 + 3044: 20000040 .long 0x20000040 + 3048: 00002710 .long 0x00002710 + 304c: 2000003c .long 0x2000003c + 3050: 20000038 .long 0x20000038 + 3054: 200001a4 .long 0x200001a4 + 3058: 2000020b .long 0x2000020b + 305c: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003060 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3060: 14c2 push r4-r5 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 3062: 1075 lrw r3, 0x20000204 // 30b4 + 3064: 8346 ld.b r2, (r3, 0x6) + 3066: 8325 ld.b r1, (r3, 0x5) + 3068: 4248 lsli r2, r2, 8 + 306a: 6c84 or r2, r1 + 306c: 3162 movi r1, 98 + 306e: 10b3 lrw r5, 0x200001a4 // 30b8 + 3070: 3440 movi r4, 64 + 3072: 6485 cmplt r1, r2 + 3074: 6114 addu r4, r5 + 3076: 0c06 bf 0x3082 // 3082 + 3078: 3225 movi r2, 37 + 307a: 6090 addu r2, r4 + 307c: 3100 movi r1, 0 + 307e: a220 st.b r1, (r2, 0x0) + 3080: a221 st.b r1, (r2, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 3082: 8346 ld.b r2, (r3, 0x6) + 3084: 8325 ld.b r1, (r3, 0x5) + 3086: 4248 lsli r2, r2, 8 + 3088: 6c84 or r2, r1 + 308a: 5a22 addi r1, r2, 1 + 308c: 6094 addu r2, r5 + 308e: a200 st.b r0, (r2, 0x0) + 3090: 2424 addi r4, 37 + 3092: 7445 zexth r1, r1 + + g_uart.RecvIdleTiming = SysTick_1ms; + 3094: 104a lrw r2, 0x200000b4 // 30bc + 3096: 9240 ld.w r2, (r2, 0x0) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 3098: a420 st.b r1, (r4, 0x0) + 309a: 4928 lsri r1, r1, 8 + g_uart.RecvIdleTiming = SysTick_1ms; + 309c: 4a08 lsri r0, r2, 8 + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 309e: a421 st.b r1, (r4, 0x1) + g_uart.RecvIdleTiming = SysTick_1ms; + 30a0: 1028 lrw r1, 0x2000020f // 30c0 + 30a2: a140 st.b r2, (r1, 0x0) + 30a4: a101 st.b r0, (r1, 0x1) + 30a6: 4a10 lsri r0, r2, 16 + 30a8: 4a58 lsri r2, r2, 24 + 30aa: a143 st.b r2, (r1, 0x3) + g_uart.Receiving = 0x01; + 30ac: 3201 movi r2, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 30ae: a102 st.b r0, (r1, 0x2) + g_uart.Receiving = 0x01; + 30b0: a344 st.b r2, (r3, 0x4) +} + 30b2: 1482 pop r4-r5 + 30b4: 20000204 .long 0x20000204 + 30b8: 200001a4 .long 0x200001a4 + 30bc: 200000b4 .long 0x200000b4 + 30c0: 2000020f .long 0x2000020f + +Disassembly of section .text.UART2_TASK: + +000030c4 : + + +void UART2_TASK(void){ + 30c4: 14d1 push r4, r15 + U8_T rev = 0xFF; + if(g_uart.Receiving == 0x01){ + 30c6: 1181 lrw r4, 0x20000204 // 3148 + 30c8: 8464 ld.b r3, (r4, 0x4) + 30ca: 3b41 cmpnei r3, 1 + 30cc: 083c bt 0x3144 // 3144 + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 30ce: 844c ld.b r2, (r4, 0xc) + 30d0: 846b ld.b r3, (r4, 0xb) + 30d2: 4248 lsli r2, r2, 8 + 30d4: 6c8c or r2, r3 + 30d6: 846d ld.b r3, (r4, 0xd) + 30d8: 4370 lsli r3, r3, 16 + 30da: 6c8c or r2, r3 + 30dc: 846e ld.b r3, (r4, 0xe) + 30de: 101c lrw r0, 0x200000b4 // 314c + 30e0: 4378 lsli r3, r3, 24 + 30e2: 6cc8 or r3, r2 + 30e4: 9020 ld.w r1, (r0, 0x0) + 30e6: 8448 ld.b r2, (r4, 0x8) + 30e8: 604e subu r1, r3 + 30ea: 4248 lsli r2, r2, 8 + 30ec: 8467 ld.b r3, (r4, 0x7) + 30ee: 6c8c or r2, r3 + 30f0: 8469 ld.b r3, (r4, 0x9) + 30f2: 4370 lsli r3, r3, 16 + 30f4: 6c8c or r2, r3 + 30f6: 846a ld.b r3, (r4, 0xa) + 30f8: 4378 lsli r3, r3, 24 + 30fa: 6cc8 or r3, r2 + 30fc: 644c cmphs r3, r1 + 30fe: 0823 bt 0x3144 // 3144 + g_uart.RecvIdleTiming = SysTick_1ms; + 3100: 9060 ld.w r3, (r0, 0x0) + 3102: 320b movi r2, 11 + 3104: 6090 addu r2, r4 + 3106: 4b28 lsri r1, r3, 8 + 3108: a260 st.b r3, (r2, 0x0) + 310a: a221 st.b r1, (r2, 0x1) + 310c: 4b30 lsri r1, r3, 16 + 310e: 4b78 lsri r3, r3, 24 + 3110: a222 st.b r1, (r2, 0x2) + 3112: a263 st.b r3, (r2, 0x3) +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART recv Len %d", g_uart.RecvLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART buff",g_uart.RecvBuffer,g_uart.RecvLen); +#endif + + if(g_uart.processing_cf != NULL){ + 3114: 8450 ld.b r2, (r4, 0x10) + 3116: 846f ld.b r3, (r4, 0xf) + 3118: 4248 lsli r2, r2, 8 + 311a: 6c8c or r2, r3 + 311c: 8471 ld.b r3, (r4, 0x11) + 311e: 4370 lsli r3, r3, 16 + 3120: 6c8c or r2, r3 + 3122: 8472 ld.b r3, (r4, 0x12) + 3124: 4378 lsli r3, r3, 24 + 3126: 6cc8 or r3, r2 + 3128: 3b40 cmpnei r3, 0 + 312a: 0c07 bf 0x3138 // 3138 + rev = g_uart.processing_cf(g_uart.RecvBuffer,g_uart.RecvLen); + 312c: 8426 ld.b r1, (r4, 0x6) + 312e: 8445 ld.b r2, (r4, 0x5) + 3130: 4128 lsli r1, r1, 8 + 3132: 6c48 or r1, r2 + 3134: 1007 lrw r0, 0x200001a4 // 3150 + 3136: 7bcd jsr r3 + } + + g_uart.RecvLen = 0; + 3138: 1067 lrw r3, 0x20000209 // 3154 + 313a: 3200 movi r2, 0 + 313c: a340 st.b r2, (r3, 0x0) + 313e: a341 st.b r2, (r3, 0x1) + g_uart.Receiving = 0; + 3140: 3300 movi r3, 0 + 3142: a464 st.b r3, (r4, 0x4) + } + } +} + 3144: 1491 pop r4, r15 + 3146: 0000 bkpt + 3148: 20000204 .long 0x20000204 + 314c: 200000b4 .long 0x200000b4 + 3150: 200001a4 .long 0x200001a4 + 3154: 20000209 .long 0x20000209 + +Disassembly of section .text.Dbg_Println: + +00003158 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3158: 1423 subi r14, r14, 12 + 315a: b862 st.w r3, (r14, 0x8) + 315c: b841 st.w r2, (r14, 0x4) + 315e: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3160: 1403 addi r14, r14, 12 + 3162: 783c jmp r15 + +Disassembly of section .text.RC522_Delay: + +00003164 : + * @brief 延时函数,纳秒级 + * @param ns 延时时间 + */ +void RC522_Delay(U32_T ns){ + U32_T i; + for (i = 0; i < ns; i++) { + 3164: 3300 movi r3, 0 + 3166: 640e cmpne r3, r0 + 3168: 0802 bt 0x316c // 316c + nop; + //延时一个机器周期 + nop; + nop; + } +} + 316a: 783c jmp r15 + nop; + 316c: 6c03 mov r0, r0 + nop; + 316e: 6c03 mov r0, r0 + nop; + 3170: 6c03 mov r0, r0 + for (i = 0; i < ns; i++) { + 3172: 2300 addi r3, 1 + 3174: 07f9 br 0x3166 // 3166 + +Disassembly of section .text.RC522_ReadWriteOneByte: + +00003178 : + * @brief 移植接口——SPI读写一个字节 + * @param tx_data:要写入的数据 + * @return 读取的数据 + */ +U8_T RC522_ReadWriteOneByte(U8_T tx_data) +{ + 3178: 14d4 push r4-r7, r15 + 317a: 6d83 mov r6, r0 + 317c: 3508 movi r5, 8 +// delay_nus(1); +// rx_data = SPI0->DR; +// +// return (U8_T)(rx_data & 0xFF); + + U8_T rx_data=0; + 317e: 3400 movi r4, 0 + U8_T i; + for(i=0;i<8;i++) + { + RC522_SCK_LOW; + 3180: 10f2 lrw r7, 0x2000004c // 31c8 + 3182: 3109 movi r1, 9 + 3184: 9700 ld.w r0, (r7, 0x0) + 3186: e3fff686 bsr 0x1e92 // 1e92 + if(tx_data&0x80) RC522_MOSI_HIGH; + 318a: 74da sextb r3, r6 + 318c: 3bdf btsti r3, 31 + 318e: 310a movi r1, 10 + 3190: 9700 ld.w r0, (r7, 0x0) + 3192: 0c18 bf 0x31c2 // 31c2 + 3194: e3fff67b bsr 0x1e8a // 1e8a + else RC522_MOSI_LOW; + tx_data<<=1; + RC522_SCK_HIGH; + 3198: 3109 movi r1, 9 + 319a: 9700 ld.w r0, (r7, 0x0) + 319c: e3fff677 bsr 0x1e8a // 1e8a + rx_data<<=1; + if(RC522_MISO_Read) rx_data|=0x01; + 31a0: 310b movi r1, 11 + 31a2: 9700 ld.w r0, (r7, 0x0) + 31a4: e3fff686 bsr 0x1eb0 // 1eb0 + tx_data<<=1; + 31a8: 46c1 lsli r6, r6, 1 + rx_data<<=1; + 31aa: 4481 lsli r4, r4, 1 + if(RC522_MISO_Read) rx_data|=0x01; + 31ac: 3840 cmpnei r0, 0 + tx_data<<=1; + 31ae: 7598 zextb r6, r6 + rx_data<<=1; + 31b0: 7510 zextb r4, r4 + if(RC522_MISO_Read) rx_data|=0x01; + 31b2: 0c02 bf 0x31b6 // 31b6 + 31b4: 3ca0 bseti r4, 0 + 31b6: 2d00 subi r5, 1 + 31b8: 7554 zextb r5, r5 + for(i=0;i<8;i++) + 31ba: 3d40 cmpnei r5, 0 + 31bc: 0be3 bt 0x3182 // 3182 + } + return rx_data; +} + 31be: 6c13 mov r0, r4 + 31c0: 1494 pop r4-r7, r15 + else RC522_MOSI_LOW; + 31c2: e3fff668 bsr 0x1e92 // 1e92 + 31c6: 07e9 br 0x3198 // 3198 + 31c8: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_ReadRawRC: + +000031cc : +{ + 31cc: 14d2 push r4-r5, r15 + RC522_CS_LOW; //片选选中RC522 + 31ce: 10ad lrw r5, 0x2000004c // 3200 + 31d0: 310d movi r1, 13 +{ + 31d2: 6d03 mov r4, r0 + RC522_CS_LOW; //片选选中RC522 + 31d4: 9500 ld.w r0, (r5, 0x0) + 31d6: e3fff65e bsr 0x1e92 // 1e92 + ucAddr=((Address<<1)&0x7E)|0x80; + 31da: 4401 lsli r0, r4, 1 + 31dc: 347e movi r4, 126 + 31de: 6810 and r0, r4 + 31e0: 3400 movi r4, 0 + 31e2: 2c7f subi r4, 128 + 31e4: 6c10 or r0, r4 + RC522_ReadWriteOneByte(ucAddr); //发送命令 + 31e6: 7400 zextb r0, r0 + 31e8: e3ffffc8 bsr 0x3178 // 3178 + ucResult=RC522_ReadWriteOneByte(0); //读取RC522返回的数据 + 31ec: 3000 movi r0, 0 + 31ee: e3ffffc5 bsr 0x3178 // 3178 + 31f2: 6d03 mov r4, r0 + RC522_CS_HIGH; //释放片选线(PF0) + 31f4: 310d movi r1, 13 + 31f6: 9500 ld.w r0, (r5, 0x0) + 31f8: e3fff649 bsr 0x1e8a // 1e8a +} + 31fc: 6c13 mov r0, r4 + 31fe: 1492 pop r4-r5, r15 + 3200: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_WriteRawRC: + +00003204 : +{ + 3204: 14d3 push r4-r6, r15 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 3206: 10ab lrw r5, 0x2000004c // 3230 +{ + 3208: 6d87 mov r6, r1 + 320a: 6d03 mov r4, r0 + RC522_CS_LOW; //PF0写 0 (SDA)(SPI1片选线,低电平有效) + 320c: 310d movi r1, 13 + 320e: 9500 ld.w r0, (r5, 0x0) + 3210: e3fff641 bsr 0x1e92 // 1e92 + ucAddr=((Address<<1)&0x7E); + 3214: 4481 lsli r4, r4, 1 + 3216: 307e movi r0, 126 + RC522_ReadWriteOneByte(ucAddr); //SPI1发送一个字节 + 3218: 6810 and r0, r4 + 321a: e3ffffaf bsr 0x3178 // 3178 + RC522_ReadWriteOneByte(value); //SPI1发送一个字节 + 321e: 6c1b mov r0, r6 + 3220: e3ffffac bsr 0x3178 // 3178 + RC522_CS_HIGH; //PF1写1(SDA)(SPI1片选线) + 3224: 9500 ld.w r0, (r5, 0x0) + 3226: 310d movi r1, 13 + 3228: e3fff631 bsr 0x1e8a // 1e8a +} + 322c: 1493 pop r4-r6, r15 + 322e: 0000 bkpt + 3230: 2000004c .long 0x2000004c + +Disassembly of section .text.RC522_PcdReset: + +00003234 : +{ + 3234: 14d0 push r15 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 3236: 310f movi r1, 15 + 3238: 3001 movi r0, 1 + 323a: e3ffffe5 bsr 0x3204 // 3204 + RC522_WriteRawRC(CommandReg,PCD_RESETPHASE); //写RC632寄存器,复位 + 323e: 310f movi r1, 15 + 3240: 3001 movi r0, 1 + 3242: e3ffffe1 bsr 0x3204 // 3204 + RC522_Delay(10); + 3246: 300a movi r0, 10 + 3248: e3ffff8e bsr 0x3164 // 3164 + RC522_WriteRawRC(ModeReg,0x3D); //和Mifare卡通讯,CRC初始值0x6363 + 324c: 313d movi r1, 61 + 324e: 3011 movi r0, 17 + 3250: e3ffffda bsr 0x3204 // 3204 + RC522_WriteRawRC(TReloadRegL,30); //写RC632寄存器 + 3254: 311e movi r1, 30 + 3256: 302d movi r0, 45 + 3258: e3ffffd6 bsr 0x3204 // 3204 + RC522_WriteRawRC(TReloadRegH,0); + 325c: 3100 movi r1, 0 + 325e: 302c movi r0, 44 + 3260: e3ffffd2 bsr 0x3204 // 3204 + RC522_WriteRawRC(TModeReg,0x8D); + 3264: 318d movi r1, 141 + 3266: 302a movi r0, 42 + 3268: e3ffffce bsr 0x3204 // 3204 + RC522_WriteRawRC(TPrescalerReg,0x3E); + 326c: 313e movi r1, 62 + 326e: 302b movi r0, 43 + 3270: e3ffffca bsr 0x3204 // 3204 + RC522_WriteRawRC(TxAutoReg,0x40);//必须要 + 3274: 3140 movi r1, 64 + 3276: 3015 movi r0, 21 + 3278: e3ffffc6 bsr 0x3204 // 3204 +} + 327c: 3000 movi r0, 0 + 327e: 1490 pop r15 + +Disassembly of section .text.RC522_SetBitMask: + +00003280 : +{ + 3280: 14d2 push r4-r5, r15 + 3282: 6d47 mov r5, r1 + 3284: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 3286: e3ffffa3 bsr 0x31cc // 31cc + RC522_WriteRawRC(reg,tmp|mask); //写RC632寄存器 + 328a: 6c43 mov r1, r0 + 328c: 6c54 or r1, r5 + 328e: 7444 zextb r1, r1 + 3290: 6c13 mov r0, r4 + 3292: e3ffffb9 bsr 0x3204 // 3204 +} + 3296: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOn: + +00003298 : +{ + 3298: 14d0 push r15 + i=RC522_ReadRawRC(TxControlReg); + 329a: 3014 movi r0, 20 + 329c: e3ffff98 bsr 0x31cc // 31cc + if(!(i&0x03)) + 32a0: 3303 movi r3, 3 + 32a2: 680c and r0, r3 + 32a4: 3840 cmpnei r0, 0 + 32a6: 0805 bt 0x32b0 // 32b0 + RC522_SetBitMask(TxControlReg,0x03); + 32a8: 3103 movi r1, 3 + 32aa: 3014 movi r0, 20 + 32ac: e3ffffea bsr 0x3280 // 3280 +} + 32b0: 1490 pop r15 + +Disassembly of section .text.RC522_ClearBitMask: + +000032b2 : +{ + 32b2: 14d2 push r4-r5, r15 + 32b4: 6d47 mov r5, r1 + 32b6: 6d03 mov r4, r0 + tmp=RC522_ReadRawRC(reg); //读RC632寄存器 + 32b8: e3ffff8a bsr 0x31cc // 31cc + RC522_WriteRawRC(reg,tmp&~mask); // clear bit mask + 32bc: 6815 andn r0, r5 + 32be: 7440 zextb r1, r0 + 32c0: 6c13 mov r0, r4 + 32c2: e3ffffa1 bsr 0x3204 // 3204 +} + 32c6: 1492 pop r4-r5, r15 + +Disassembly of section .text.RC522_PcdAntennaOff: + +000032c8 : +{ + 32c8: 14d0 push r15 + RC522_ClearBitMask(TxControlReg,0x03); //清RC522寄存器位 + 32ca: 3103 movi r1, 3 + 32cc: 3014 movi r0, 20 + 32ce: e3fffff2 bsr 0x32b2 // 32b2 +} + 32d2: 1490 pop r15 + +Disassembly of section .text.RC522_Reset: + +000032d4 : +void RC522_Reset(void){ + 32d4: 14d1 push r4, r15 + RC522_RST_HIGH; //NRSTPD引脚高电平 + 32d6: 1090 lrw r4, 0x2000004c // 3314 + 32d8: 310c movi r1, 12 + 32da: 9400 ld.w r0, (r4, 0x0) + 32dc: e3fff5d7 bsr 0x1e8a // 1e8a + RC522_Delay(1000); //大概时间为850us + 32e0: 30fa movi r0, 250 + 32e2: 4002 lsli r0, r0, 2 + 32e4: e3ffff40 bsr 0x3164 // 3164 + RC522_RST_LOW; //Ci522掉电 + 32e8: 310c movi r1, 12 + 32ea: 9400 ld.w r0, (r4, 0x0) + 32ec: e3fff5d3 bsr 0x1e92 // 1e92 + RC522_Delay(1000); //大概时间为850us + 32f0: 30fa movi r0, 250 + 32f2: 4002 lsli r0, r0, 2 + 32f4: e3ffff38 bsr 0x3164 // 3164 + RC522_RST_HIGH; //NRSTPD引脚高电平 + 32f8: 310c movi r1, 12 + 32fa: 9400 ld.w r0, (r4, 0x0) + 32fc: e3fff5c7 bsr 0x1e8a // 1e8a + RC522_PcdReset(); //复位RC522 + 3300: e3ffff9a bsr 0x3234 // 3234 + RC522_PcdAntennaOff(); //关闭天线 + 3304: e3ffffe2 bsr 0x32c8 // 32c8 + RC522_Delay(2); //延时2毫秒 + 3308: 3002 movi r0, 2 + 330a: e3ffff2d bsr 0x3164 // 3164 + RC522_PcdAntennaOn(); //开启天线 + 330e: e3ffffc5 bsr 0x3298 // 3298 +} + 3312: 1491 pop r4, r15 + 3314: 2000004c .long 0x2000004c + +Disassembly of section .text.M500PcdConfigISOType.part.1: + +00003318 : +char M500PcdConfigISOType(U8_T type) + 3318: 14d0 push r15 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 331a: 3108 movi r1, 8 + 331c: 3008 movi r0, 8 + 331e: e3ffffca bsr 0x32b2 // 32b2 + RC522_SetBitMask(ComIEnReg,BIT7); + 3322: 3180 movi r1, 128 + 3324: 3002 movi r0, 2 + 3326: e3ffffad bsr 0x3280 // 3280 + RC522_WriteRawRC(ModeReg,0x3D); + 332a: 313d movi r1, 61 + 332c: 3011 movi r0, 17 + 332e: e3ffff6b bsr 0x3204 // 3204 + RC522_WriteRawRC(TxModeReg,0x00); //设定数据发送传输速率106kbits/s,定义帧格式为ISO/IEC 14443 A/Mifare + 3332: 3100 movi r1, 0 + 3334: 3012 movi r0, 18 + 3336: e3ffff67 bsr 0x3204 // 3204 + RC522_WriteRawRC(RxModeReg,0x00); //设定数据接收传输速率106kbits/s,定义帧格式为ISO/IEC 14443 A/Mifare + 333a: 3100 movi r1, 0 + 333c: 3013 movi r0, 19 + 333e: e3ffff63 bsr 0x3204 // 3204 + RC522_WriteRawRC(ModWidthReg,MODWIDTH); //调制宽度为reset值 + 3342: 3126 movi r1, 38 + 3344: 3024 movi r0, 36 + 3346: e3ffff5f bsr 0x3204 // 3204 + RC522_WriteRawRC(ModeReg,0x3D); //3D--CRC预设值为6363 + 334a: 313d movi r1, 61 + 334c: 3011 movi r0, 17 + 334e: e3ffff5b bsr 0x3204 // 3204 + RC522_WriteRawRC(RxThresholdReg,(MINLEVEL_A<<4) | COLLLEVEL_A); //选择位译码器的阈值 + 3352: 3164 movi r1, 100 + 3354: 3018 movi r0, 24 + 3356: e3ffff57 bsr 0x3204 // 3204 + RC522_WriteRawRC(RFCfgReg,0x7F); // 接收增益 + 335a: 317f movi r1, 127 + 335c: 3026 movi r0, 38 + 335e: e3ffff53 bsr 0x3204 // 3204 + RC522_WriteRawRC(TxAutoReg,0x40); //100%ASK传送 + 3362: 3140 movi r1, 64 + 3364: 3015 movi r0, 21 + 3366: e3ffff4f bsr 0x3204 // 3204 + RC522_WriteRawRC(ControlReg,0x10); //接收的最后一个字节所有比特有效 + 336a: 3110 movi r1, 16 + 336c: 300c movi r0, 12 + 336e: e3ffff4b bsr 0x3204 // 3204 + RC522_WriteRawRC(TReloadRegL,0x64); //16bit定时器重载值(低位) + 3372: 3164 movi r1, 100 + 3374: 302d movi r0, 45 + 3376: e3ffff47 bsr 0x3204 // 3204 + RC522_WriteRawRC(TReloadRegH,0); //16bit定时器重载值(高位) + 337a: 3100 movi r1, 0 + 337c: 302c movi r0, 44 + 337e: e3ffff43 bsr 0x3204 // 3204 + RC522_WriteRawRC(TModeReg,0x8D); //预分频器开启自动定时器,向下计数,预分频与TPrescalerReg一起决定12bit + 3382: 318d movi r1, 141 + 3384: 302a movi r0, 42 + 3386: e3ffff3f bsr 0x3204 // 3204 + RC522_WriteRawRC(TPrescalerReg,0x3e); //12bit 1101 0011 1110 定时器频率2KHz*//* + 338a: 313e movi r1, 62 + 338c: 302b movi r0, 43 + 338e: e3ffff3b bsr 0x3204 // 3204 +} + 3392: 3000 movi r0, 0 + 3394: 1490 pop r15 + +Disassembly of section .text.RC522_Init: + +00003398 : +{ + 3398: 14d1 push r4, r15 + nop; + 339a: 6c03 mov r0, r0 + GPIO_Init(GPIOA0,9,Output); //SCK + 339c: 118d lrw r4, 0x2000004c // 3450 + 339e: 3200 movi r2, 0 + 33a0: 9400 ld.w r0, (r4, 0x0) + 33a2: 3109 movi r1, 9 + 33a4: e3fff4f2 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,10,Output); //MOSI + 33a8: 3200 movi r2, 0 + 33aa: 9400 ld.w r0, (r4, 0x0) + 33ac: 310a movi r1, 10 + 33ae: e3fff4ed bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOA0,11); + 33b2: 9400 ld.w r0, (r4, 0x0) + 33b4: 310b movi r1, 11 + 33b6: e3fff559 bsr 0x1e68 // 1e68 + GPIO_Init(GPIOA0,11,Intput); //MISO + 33ba: 9400 ld.w r0, (r4, 0x0) + 33bc: 3201 movi r2, 1 + 33be: 310b movi r1, 11 + 33c0: e3fff4e4 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,13,Output); //CS + 33c4: 9400 ld.w r0, (r4, 0x0) + 33c6: 3200 movi r2, 0 + 33c8: 310d movi r1, 13 + 33ca: e3fff4df bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,12,Output); //RST + 33ce: 9400 ld.w r0, (r4, 0x0) + 33d0: 3200 movi r2, 0 + 33d2: 310c movi r1, 12 + 33d4: e3fff4da bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,8,Intput); //IRQ + 33d8: 3201 movi r2, 1 + 33da: 9400 ld.w r0, (r4, 0x0) + 33dc: 3108 movi r1, 8 + 33de: e3fff4d5 bsr 0x1d88 // 1d88 + GPIO_Write_High(GPIOA0,13); + 33e2: 9400 ld.w r0, (r4, 0x0) + 33e4: 310d movi r1, 13 + 33e6: e3fff552 bsr 0x1e8a // 1e8a + GPIO_Write_High(GPIOA0,12); + 33ea: 9400 ld.w r0, (r4, 0x0) + 33ec: 310c movi r1, 12 + 33ee: e3fff54e bsr 0x1e8a // 1e8a + RC522_RST_HIGH; //NRSTPD引脚高电平 + 33f2: 310c movi r1, 12 + 33f4: 9400 ld.w r0, (r4, 0x0) + 33f6: e3fff54a bsr 0x1e8a // 1e8a + RC522_Delay(1000); //大概时间为850us + 33fa: 30fa movi r0, 250 + 33fc: 4002 lsli r0, r0, 2 + 33fe: e3fffeb3 bsr 0x3164 // 3164 + RC522_RST_LOW; //Ci522掉电 + 3402: 310c movi r1, 12 + 3404: 9400 ld.w r0, (r4, 0x0) + 3406: e3fff546 bsr 0x1e92 // 1e92 + RC522_Delay(1000); //大概时间为850us + 340a: 30fa movi r0, 250 + 340c: 4002 lsli r0, r0, 2 + 340e: e3fffeab bsr 0x3164 // 3164 + RC522_RST_HIGH; //NRSTPD引脚高电平 + 3412: 310c movi r1, 12 + 3414: 9400 ld.w r0, (r4, 0x0) + 3416: e3fff53a bsr 0x1e8a // 1e8a + RC522_PcdReset(); //复位RC522 + 341a: e3ffff0d bsr 0x3234 // 3234 + RC522_PcdAntennaOff(); //关闭天线 + 341e: e3ffff55 bsr 0x32c8 // 32c8 + RC522_Delay(2); //延时2毫秒 + 3422: 3002 movi r0, 2 + 3424: e3fffea0 bsr 0x3164 // 3164 + RC522_PcdAntennaOn(); //开启天线 + 3428: e3ffff38 bsr 0x3298 // 3298 + memset(&CardInfo,0x00,sizeof(CardInfo)); + 342c: 108a lrw r4, 0x20000218 // 3454 + 342e: e3ffff75 bsr 0x3318 // 3318 + 3432: 3234 movi r2, 52 + 3434: 3100 movi r1, 0 + 3436: 6c13 mov r0, r4 + 3438: e3fff296 bsr 0x1964 // 1964 <__memset_fast> + CardInfo.BlockLoc = 0x18; //默认6扇区0块 绝对是第24块 + 343c: 3318 movi r3, 24 + 343e: a468 st.b r3, (r4, 0x8) + CardInfo.CardKeyType = PICC_AUTHENT1A; //密码类型 + 3440: 3360 movi r3, 96 + 3442: a47f st.b r3, (r4, 0x1f) + memset(CardInfo.CardKey, 0xff, 6); //默认密码为6个ff + 3444: 3300 movi r3, 0 + 3446: 2b00 subi r3, 1 + 3448: b468 st.w r3, (r4, 0x20) + 344a: ac72 st.h r3, (r4, 0x24) +} + 344c: 1491 pop r4, r15 + 344e: 0000 bkpt + 3450: 2000004c .long 0x2000004c + 3454: 20000218 .long 0x20000218 + +Disassembly of section .text.RC522_PcdComMF522: + +00003458 : +{ + 3458: 14d4 push r4-r7, r15 + 345a: 1424 subi r14, r14, 16 + 345c: b862 st.w r3, (r14, 0x8) + switch (Command) { + 345e: 384c cmpnei r0, 12 +{ + 3460: 9869 ld.w r3, (r14, 0x24) + 3462: 6d03 mov r4, r0 + 3464: 6dc7 mov r7, r1 + 3466: b860 st.w r3, (r14, 0x0) + switch (Command) { + 3468: 0c48 bf 0x34f8 // 34f8 + 346a: 384e cmpnei r0, 14 + 346c: 0c49 bf 0x34fe // 34fe + U8_T waitFor=0x00; + 346e: 3600 movi r6, 0 + U8_T irqEn=0x00; + 3470: 3500 movi r5, 0 + RC522_WriteRawRC(ComIEnReg,irqEn|0x80); + 3472: 6c57 mov r1, r5 + 3474: 39a7 bseti r1, 7 + 3476: 3002 movi r0, 2 + 3478: b841 st.w r2, (r14, 0x4) + 347a: e3fffec5 bsr 0x3204 // 3204 + RC522_ClearBitMask(ComIrqReg,0x80); //清所有中断位 + 347e: 3180 movi r1, 128 + 3480: 3004 movi r0, 4 + 3482: e3ffff18 bsr 0x32b2 // 32b2 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 3486: 3100 movi r1, 0 + 3488: 3001 movi r0, 1 + 348a: e3fffebd bsr 0x3204 // 3204 + RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO缓存 + 348e: 3180 movi r1, 128 + 3490: 300a movi r0, 10 + 3492: e3fffef7 bsr 0x3280 // 3280 + for(i=0;i + RC522_WriteRawRC(CommandReg,Command); + 34a2: 6c53 mov r1, r4 + 34a4: 3001 movi r0, 1 + 34a6: e3fffeaf bsr 0x3204 // 3204 + if(Command==PCD_TRANSCEIVE) + 34aa: 3c4c cmpnei r4, 12 + 34ac: 0805 bt 0x34b6 // 34b6 + RC522_SetBitMask(BitFramingReg,0x80); //开始传送 + 34ae: 3180 movi r1, 128 + 34b0: 300d movi r0, 13 + 34b2: e3fffee7 bsr 0x3280 // 3280 + for(i=0;i + i--; + 34c2: 5f63 subi r3, r7, 1 + 34c4: 75cd zexth r7, r3 + }while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 34c6: 3f40 cmpnei r7, 0 + n=RC522_ReadRawRC(ComIrqReg); + 34c8: b801 st.w r0, (r14, 0x4) + }while((i!=0)&&!(n&0x01)&&!(n&waitFor)); + 34ca: 0c05 bf 0x34d4 // 34d4 + 34cc: 6c83 mov r2, r0 + 34ce: 6898 and r2, r6 + 34d0: 3a40 cmpnei r2, 0 + 34d2: 0ff5 bf 0x34bc // 34bc + RC522_ClearBitMask(BitFramingReg,0x80); + 34d4: 3180 movi r1, 128 + 34d6: 300d movi r0, 13 + 34d8: e3fffeed bsr 0x32b2 // 32b2 + if(i!=0) + 34dc: 3f40 cmpnei r7, 0 + 34de: 081f bt 0x351c // 351c + char stats=MI_ERR; + 34e0: 3502 movi r5, 2 + RC522_SetBitMask(ControlReg,0x80);// stop timer now + 34e2: 3180 movi r1, 128 + 34e4: 300c movi r0, 12 + 34e6: e3fffecd bsr 0x3280 // 3280 + RC522_WriteRawRC(CommandReg,PCD_IDLE); + 34ea: 3100 movi r1, 0 + 34ec: 3001 movi r0, 1 + 34ee: e3fffe8b bsr 0x3204 // 3204 +} + 34f2: 6c17 mov r0, r5 + 34f4: 1404 addi r14, r14, 16 + 34f6: 1494 pop r4-r7, r15 + waitFor = 0x30; + 34f8: 3630 movi r6, 48 + irqEn = 0x77; + 34fa: 3577 movi r5, 119 + break; + 34fc: 07bb br 0x3472 // 3472 + waitFor = 0x10; + 34fe: 3610 movi r6, 16 + irqEn = 0x12; + 3500: 3512 movi r5, 18 + 3502: 07b8 br 0x3472 // 3472 + RC522_WriteRawRC(FIFODataReg,pIn[i]); + 3504: 8320 ld.b r1, (r3, 0x0) + 3506: 3009 movi r0, 9 + 3508: b843 st.w r2, (r14, 0xc) + 350a: b861 st.w r3, (r14, 0x4) + for(i=0;i + 3512: 9861 ld.w r3, (r14, 0x4) + for(i=0;i + if(!(RC522_ReadRawRC(ErrorReg)&0x1B)) + 351c: 3006 movi r0, 6 + 351e: e3fffe57 bsr 0x31cc // 31cc + 3522: 331b movi r3, 27 + 3524: 680c and r0, r3 + 3526: 3840 cmpnei r0, 0 + 3528: 0bdc bt 0x34e0 // 34e0 + if(n&irqEn&0x01) + 352a: 3301 movi r3, 1 + 352c: 694c and r5, r3 + 352e: 9861 ld.w r3, (r14, 0x4) + 3530: 68d4 and r3, r5 + 3532: 3b40 cmpnei r3, 0 + 3534: 0817 bt 0x3562 // 3562 + if(Command==PCD_TRANSCEIVE) + 3536: 3c4c cmpnei r4, 12 + 3538: 0c19 bf 0x356a // 356a + stats=MI_OK; + 353a: 3500 movi r5, 0 + 353c: 07d3 br 0x34e2 // 34e2 + *pOutLenBit=n*8; + 353e: 4463 lsli r3, r4, 3 + 3540: 9840 ld.w r2, (r14, 0x0) + 3542: a260 st.b r3, (r2, 0x0) + 3544: 042b br 0x359a // 359a + if(n==0)n=1; + 3546: 3301 movi r3, 1 + 3548: 0430 br 0x35a8 // 35a8 + n=RC522_ReadRawRC(FIFOLevelReg); + 354a: 300a movi r0, 10 + 354c: e3fffe40 bsr 0x31cc // 31cc + 3550: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 3552: 300c movi r0, 12 + 3554: e3fffe3c bsr 0x31cc // 31cc + 3558: 3307 movi r3, 7 + 355a: 680c and r0, r3 + stats=MI_NOTAGERR; + 355c: 3501 movi r5, 1 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 355e: 3c40 cmpnei r4, 0 + 3560: 0412 br 0x3584 // 3584 + if(Command==PCD_TRANSCEIVE) + 3562: 3c4c cmpnei r4, 12 + 3564: 0ff3 bf 0x354a // 354a + stats=MI_NOTAGERR; + 3566: 3501 movi r5, 1 + 3568: 07bd br 0x34e2 // 34e2 + n=RC522_ReadRawRC(FIFOLevelReg); + 356a: 300a movi r0, 10 + 356c: e3fffe30 bsr 0x31cc // 31cc + 3570: 6d03 mov r4, r0 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 3572: 300c movi r0, 12 + 3574: e3fffe2c bsr 0x31cc // 31cc + 3578: 3307 movi r3, 7 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 357a: 3c42 cmpnei r4, 2 + lastBits=RC522_ReadRawRC(ControlReg)&0x07; + 357c: 680c and r0, r3 + stats=MI_OK; + 357e: 3500 movi r5, 0 + if (!((0 == stats && (2 == n || 5 == n))||(1 ==stats && 0 == n))){ + 3580: 0c06 bf 0x358c // 358c + 3582: 3c45 cmpnei r4, 5 + 3584: 0c04 bf 0x358c // 358c + FIFOLevelReg_flag = 1; + 3586: 1070 lrw r3, 0x200000c8 // 35c4 + 3588: 3201 movi r2, 1 + 358a: a340 st.b r2, (r3, 0x0) + if(lastBits) + 358c: 3840 cmpnei r0, 0 + 358e: 0fd8 bf 0x353e // 353e + *pOutLenBit=(n-1)*8+lastBits; + 3590: 5c63 subi r3, r4, 1 + 3592: 4363 lsli r3, r3, 3 + 3594: 600c addu r0, r3 + 3596: 9860 ld.w r3, (r14, 0x0) + 3598: a300 st.b r0, (r3, 0x0) + if(n==0)n=1; + 359a: 3c40 cmpnei r4, 0 + 359c: 0fd5 bf 0x3546 // 3546 + 359e: 3c12 cmphsi r4, 19 + 35a0: 6cd3 mov r3, r4 + 35a2: 0c02 bf 0x35a6 // 35a6 + 35a4: 3312 movi r3, 18 + 35a6: 74cc zextb r3, r3 + 35a8: 98e2 ld.w r7, (r14, 0x8) + for(i=0; i + pOut[i]=RC522_ReadRawRC(FIFODataReg); + 35b2: 3009 movi r0, 9 + 35b4: e3fffe0c bsr 0x31cc // 31cc + for(i=0; i + 35c2: 0000 bkpt + 35c4: 200000c8 .long 0x200000c8 + +Disassembly of section .text.RC522_PcdRequest: + +000035c8 : +{ + 35c8: 14d3 push r4-r6, r15 + 35ca: 1427 subi r14, r14, 28 + 35cc: 6d03 mov r4, r0 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 35ce: 3212 movi r2, 18 +{ + 35d0: 6d47 mov r5, r1 + U8_T ucComMF522Buf[MAXRLEN] = {0}; // MAXRLEN 18 + 35d2: 1802 addi r0, r14, 8 + 35d4: 3100 movi r1, 0 + 35d6: e3fff1c7 bsr 0x1964 // 1964 <__memset_fast> + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位,/接收数据命令 + 35da: 3108 movi r1, 8 + 35dc: 3008 movi r0, 8 + 35de: e3fffe6a bsr 0x32b2 // 32b2 + RC522_WriteRawRC(BitFramingReg,0x07); //写RC632寄存器 + 35e2: 3107 movi r1, 7 + 35e4: 300d movi r0, 13 + 35e6: e3fffe0f bsr 0x3204 // 3204 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 35ea: 3607 movi r6, 7 + RC522_SetBitMask(TxControlReg,0x03); //置RC522寄存器位 + 35ec: 3103 movi r1, 3 + 35ee: 3014 movi r0, 20 + 35f0: e3fffe48 bsr 0x3280 // 3280 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 35f4: 61b8 addu r6, r14 + 35f6: 1b02 addi r3, r14, 8 + 35f8: b8c0 st.w r6, (r14, 0x0) + 35fa: 3201 movi r2, 1 + 35fc: 6c4f mov r1, r3 + 35fe: 300c movi r0, 12 + ucComMF522Buf[0]=req_code; //寻卡方式 + 3600: dc8e0008 st.b r4, (r14, 0x8) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通过RC522和ISO14443卡通讯 + 3604: e3ffff2a bsr 0x3458 // 3458 + if ((stats == MI_OK) && (unLen == 0x10)) { + 3608: 3840 cmpnei r0, 0 + 360a: 081b bt 0x3640 // 3640 + 360c: 8660 ld.b r3, (r6, 0x0) + 360e: 3b50 cmpnei r3, 16 + 3610: 0818 bt 0x3640 // 3640 + *pTagType = ucComMF522Buf[0]; //将数组里的数据赋值给*pTagType + 3612: d86e0008 ld.b r3, (r14, 0x8) + 3616: a560 st.b r3, (r5, 0x0) + *(pTagType + 1) = ucComMF522Buf[1]; + 3618: d86e0009 ld.b r3, (r14, 0x9) + 361c: a561 st.b r3, (r5, 0x1) + if ((ucComMF522Buf[0] == req_code)&&(CardInfo.RC522_Reset_Falg == 0)) { + 361e: d86e0008 ld.b r3, (r14, 0x8) + 3622: 650e cmpne r3, r4 + 3624: 3220 movi r2, 32 + 3626: 1069 lrw r3, 0x20000218 // 3648 + 3628: 608c addu r2, r3 + 362a: 080d bt 0x3644 // 3644 + 362c: 8228 ld.b r1, (r2, 0x8) + 362e: 3940 cmpnei r1, 0 + 3630: 0806 bt 0x363c // 363c + CardInfo.RC522_Reset_Falg = 1; + 3632: 3101 movi r1, 1 + CardInfo.RC522_Reset_Falg = 0; + 3634: a228 st.b r1, (r2, 0x8) + CardInfo.Reset_Tick = SysTick_1ms; + 3636: 1046 lrw r2, 0x200000b4 // 364c + 3638: 9240 ld.w r2, (r2, 0x0) + 363a: b34b st.w r2, (r3, 0x2c) +} + 363c: 1407 addi r14, r14, 28 + 363e: 1493 pop r4-r6, r15 + stats = MI_ERR; + 3640: 3002 movi r0, 2 + 3642: 07ee br 0x361e // 361e + CardInfo.RC522_Reset_Falg = 0; + 3644: 3100 movi r1, 0 + 3646: 07f7 br 0x3634 // 3634 + 3648: 20000218 .long 0x20000218 + 364c: 200000b4 .long 0x200000b4 + +Disassembly of section .text.RC522_PcdAnticoll: + +00003650 : +{ + 3650: 14d2 push r4-r5, r15 + 3652: 1427 subi r14, r14, 28 + 3654: 6d43 mov r5, r0 + RC522_ClearBitMask(Status2Reg,0x08); //清RC522寄存器位 + 3656: 3108 movi r1, 8 + 3658: 3008 movi r0, 8 + 365a: e3fffe2c bsr 0x32b2 // 32b2 + RC522_WriteRawRC(BitFramingReg,0x00); //写 + 365e: 3100 movi r1, 0 + 3660: 300d movi r0, 13 + 3662: e3fffdd1 bsr 0x3204 // 3204 + RC522_ClearBitMask(CollReg,0x80); //清 + 3666: 3180 movi r1, 128 + 3668: 300e movi r0, 14 + 366a: e3fffe24 bsr 0x32b2 // 32b2 + ucComMF522Buf[0]=PICC_ANTICOLL1; //PICC_ANTICOLL1 = 0x93 + 366e: 3300 movi r3, 0 + 3670: 2b6c subi r3, 109 + 3672: dc6e0008 st.b r3, (r14, 0x8) + ucComMF522Buf[1]=0x20; + 3676: 3320 movi r3, 32 + 3678: dc6e0009 st.b r3, (r14, 0x9) + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 367c: 3307 movi r3, 7 + 367e: 60f8 addu r3, r14 + 3680: b860 st.w r3, (r14, 0x0) + 3682: 1b02 addi r3, r14, 8 + 3684: 3202 movi r2, 2 + 3686: 6c4f mov r1, r3 + 3688: 300c movi r0, 12 + 368a: e3fffee7 bsr 0x3458 // 3458 + if(stats==MI_OK) + 368e: 3840 cmpnei r0, 0 + stats=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通过RC522和ISO14443卡通讯 + 3690: 6d03 mov r4, r0 + if(stats==MI_OK) + 3692: 0812 bt 0x36b6 // 36b6 + 3694: 3300 movi r3, 0 + 3696: 3200 movi r2, 0 + *(pSnr+i)=ucComMF522Buf[i]; //把读到的卡号赋值给pSnr + 3698: 1902 addi r1, r14, 8 + 369a: 604c addu r1, r3 + 369c: 8120 ld.b r1, (r1, 0x0) + 369e: 5d0c addu r0, r5, r3 + 36a0: 2300 addi r3, 1 + 36a2: a020 st.b r1, (r0, 0x0) + for(i=0;i<4;i++) + 36a4: 3b44 cmpnei r3, 4 + snr_check^=ucComMF522Buf[i]; + 36a6: 6c49 xor r1, r2 + 36a8: 6c87 mov r2, r1 + for(i=0;i<4;i++) + 36aa: 0bf7 bt 0x3698 // 3698 + if(snr_check!=ucComMF522Buf[i]) + 36ac: d86e000c ld.b r3, (r14, 0xc) + 36b0: 644e cmpne r3, r1 + 36b2: 0c02 bf 0x36b6 // 36b6 + stats = MI_ERR; + 36b4: 3402 movi r4, 2 + RC522_SetBitMask(CollReg,0x80); + 36b6: 3180 movi r1, 128 + 36b8: 300e movi r0, 14 + 36ba: e3fffde3 bsr 0x3280 // 3280 +} + 36be: 6c13 mov r0, r4 + 36c0: 1407 addi r14, r14, 28 + 36c2: 1492 pop r4-r5, r15 + +Disassembly of section .text.Card_Read_TasK: + +000036c4 : + + + +//U32_T FailNum = 0; +U32_T scan_tick = 0; +void Card_Read_TasK(void){ + 36c4: 14d3 push r4-r6, r15 + + if(SysTick_1ms - scan_tick >= 100){ + 36c6: 11a5 lrw r5, 0x200000b4 // 3758 + 36c8: 1145 lrw r2, 0x200000c8 // 375c + 36ca: 1186 lrw r4, 0x20000218 // 3760 + 36cc: 9221 ld.w r1, (r2, 0x4) + 36ce: 9560 ld.w r3, (r5, 0x0) + 36d0: 60c6 subu r3, r1 + 36d2: 3163 movi r1, 99 + 36d4: 64c4 cmphs r1, r3 + 36d6: 081a bt 0x370a // 370a + //Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,Card Read",SysTick_1ms); + + + + //寻卡: 识别天线范围内全部卡 + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 36d8: 3119 movi r1, 25 + scan_tick = SysTick_1ms; + 36da: 9560 ld.w r3, (r5, 0x0) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 36dc: 6050 addu r1, r4 + 36de: 3052 movi r0, 82 + scan_tick = SysTick_1ms; + 36e0: b261 st.w r3, (r2, 0x4) + if (RC522_PcdRequest(PICC_REQALL, CardInfo.CT) == MI_OK) { + 36e2: e3ffff73 bsr 0x35c8 // 35c8 + 36e6: 3620 movi r6, 32 + 36e8: 3840 cmpnei r0, 0 + 36ea: 6190 addu r6, r4 + 36ec: 0829 bt 0x373e // 373e + //消抖 + //Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_SUCC",SysTick_1ms); + + + //防冲撞:获取IC卡的卡号 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 36ee: 301b movi r0, 27 + CardInfo.FailNum = 0x00; + 36f0: 3300 movi r3, 0 + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 36f2: 6010 addu r0, r4 + CardInfo.FailNum = 0x00; + 36f4: a666 st.b r3, (r6, 0x6) + if(RC522_PcdAnticoll(CardInfo.SN) == MI_OK){ + 36f6: e3ffffad bsr 0x3650 // 3650 + 36fa: 3840 cmpnei r0, 0 + 36fc: 081c bt 0x3734 // 3734 + + + CardInfo.SuccNum++; + if(CardInfo.SuccNum >= 1) + 36fe: 8647 ld.b r2, (r6, 0x7) + 3700: 33ff movi r3, 255 + 3702: 64ca cmpne r2, r3 + { + CardInfo.SuccNum = 0 ; + 3704: 3300 movi r3, 0 + 3706: a667 st.b r3, (r6, 0x7) + if(CardInfo.SuccNum >= 1) + 3708: 080e bt 0x3724 // 3724 + } + } + //} + } + + if(CardInfo.BlockSucc != CardInfo.BlockLast){ + 370a: 8467 ld.b r3, (r4, 0x7) + 370c: 8446 ld.b r2, (r4, 0x6) + 370e: 64ca cmpne r2, r3 + 3710: 0c09 bf 0x3722 // 3722 + CardInfo.BlockLast = CardInfo.BlockSucc; + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 3712: 3b41 cmpnei r3, 1 + CardInfo.BlockLast = CardInfo.BlockSucc; + 3714: a466 st.b r3, (r4, 0x6) + if(CardInfo.BlockLast == BLOCK_READ_SUCC){ + 3716: 0c06 bf 0x3722 // 3722 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Card Read SUCC"); + + + }else { + Card_Tick = SysTick_1ms; + 3718: 9540 ld.w r2, (r5, 0x0) + 371a: 1073 lrw r3, 0x200000a0 // 3764 + 371c: b340 st.w r2, (r3, 0x0) + CardInfo.reset_tick = SysTick_1ms; + 371e: 9560 ld.w r3, (r5, 0x0) + 3720: b46c st.w r3, (r4, 0x30) + } + } + + +} + 3722: 1493 pop r4-r6, r15 + CardInfo.BlockSucc = BLOCK_READ_SUCC; + 3724: 3301 movi r3, 1 + 3726: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d Card Block_SUCC",SysTick_1ms); + 3728: 9540 ld.w r2, (r5, 0x0) + 372a: 1030 lrw r1, 0x49fb // 3768 + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_FAILD",SysTick_1ms); + 372c: 3000 movi r0, 0 + 372e: e3fffd15 bsr 0x3158 // 3158 + 3732: 07ec br 0x370a // 370a + Dbg_Println(DBG_BIT_SYS_STATUS, "Card Get SN Error"); + 3734: 102e lrw r1, 0x4a1b // 376c + 3736: 3000 movi r0, 0 + 3738: e3fffd10 bsr 0x3158 // 3158 + 373c: 07e7 br 0x370a // 370a + if(CardInfo.FailNum >= 5) + 373e: 8666 ld.b r3, (r6, 0x6) + 3740: 3b04 cmphsi r3, 5 + 3742: 0c08 bf 0x3752 // 3752 + CardInfo.FailNum = 0; + 3744: 3300 movi r3, 0 + 3746: a666 st.b r3, (r6, 0x6) + CardInfo.SuccNum = 0; + 3748: a667 st.b r3, (r6, 0x7) + CardInfo.BlockSucc = BLOCK_READ_FAILD; + 374a: a467 st.b r3, (r4, 0x7) + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d BLOCK_READ_FAILD",SysTick_1ms); + 374c: 9540 ld.w r2, (r5, 0x0) + 374e: 1029 lrw r1, 0x4a2d // 3770 + 3750: 07ee br 0x372c // 372c + CardInfo.FailNum++; + 3752: 2300 addi r3, 1 + 3754: a666 st.b r3, (r6, 0x6) + 3756: 07da br 0x370a // 370a + 3758: 200000b4 .long 0x200000b4 + 375c: 200000c8 .long 0x200000c8 + 3760: 20000218 .long 0x20000218 + 3764: 200000a0 .long 0x200000a0 + 3768: 000049fb .long 0x000049fb + 376c: 00004a1b .long 0x00004a1b + 3770: 00004a2d .long 0x00004a2d + +Disassembly of section .text.Detect_SPI_task: + +00003774 : +U32_T HL_tick =0; +void Detect_SPI_task(void){ + 3774: 14d1 push r4, r15 + + if (CardInfo.RC522_Reset_Falg == 1) { + 3776: 109f lrw r4, 0x20000218 // 37f0 + 3778: 3320 movi r3, 32 + 377a: 60d0 addu r3, r4 + 377c: 8368 ld.b r3, (r3, 0x8) + 377e: 3b41 cmpnei r3, 1 + 3780: 0810 bt 0x37a0 // 37a0 + if (SysTick_1ms - CardInfo.Reset_Tick >= 1000) { + 3782: 105d lrw r2, 0x200000b4 // 37f4 + 3784: 9260 ld.w r3, (r2, 0x0) + 3786: 942b ld.w r1, (r4, 0x2c) + 3788: 60c6 subu r3, r1 + 378a: 103c lrw r1, 0x3e7 // 37f8 + 378c: 64c4 cmphs r1, r3 + 378e: 0809 bt 0x37a0 // 37a0 + CardInfo.Reset_Tick = SysTick_1ms; + 3790: 9260 ld.w r3, (r2, 0x0) + 3792: b46b st.w r3, (r4, 0x2c) + RC522_Reset(); + 3794: e3fffda0 bsr 0x32d4 // 32d4 + Dbg_Println(DBG_BIT_SYS_STATUS, "SPI INIT"); + 3798: 1039 lrw r1, 0x4a4d // 37fc + 379a: 3000 movi r0, 0 + 379c: e3fffcde bsr 0x3158 // 3158 + } + } + + if(1==FIFOLevelReg_flag){ + 37a0: 1078 lrw r3, 0x200000c8 // 3800 + 37a2: 8340 ld.b r2, (r3, 0x0) + 37a4: 3a41 cmpnei r2, 1 + 37a6: 0812 bt 0x37ca // 37ca +// Dbg_Println(DBG_BIT_SYS_STATUS, "FIFO INIT one"); + if (SysTick_1ms - HL_tick >= 1000) { + 37a8: 1033 lrw r1, 0x200000b4 // 37f4 + 37aa: 9140 ld.w r2, (r1, 0x0) + 37ac: 9302 ld.w r0, (r3, 0x8) + 37ae: 6082 subu r2, r0 + 37b0: 1012 lrw r0, 0x3e7 // 37f8 + 37b2: 6480 cmphs r0, r2 + 37b4: 080b bt 0x37ca // 37ca + HL_tick = SysTick_1ms; + 37b6: 9140 ld.w r2, (r1, 0x0) + 37b8: b342 st.w r2, (r3, 0x8) + FIFOLevelReg_flag = 0; + 37ba: 3200 movi r2, 0 + 37bc: a340 st.b r2, (r3, 0x0) + + RC522_Reset(); + 37be: e3fffd8b bsr 0x32d4 // 32d4 + Dbg_Println(DBG_BIT_SYS_STATUS, "FIFO INIT"); + 37c2: 1031 lrw r1, 0x4a56 // 3804 + 37c4: 3000 movi r0, 0 + 37c6: e3fffcc9 bsr 0x3158 // 3158 + } + } + + //每10s读不到卡便复位并初始化rc522 + if((CardInfo.BlockSucc == BLOCK_READ_FAILD)&&(SysTick_1ms - CardInfo.reset_tick>= 10000)) { + 37ca: 8467 ld.b r3, (r4, 0x7) + 37cc: 3b40 cmpnei r3, 0 + 37ce: 0810 bt 0x37ee // 37ee + 37d0: 1049 lrw r2, 0x200000b4 // 37f4 + 37d2: 9260 ld.w r3, (r2, 0x0) + 37d4: 942c ld.w r1, (r4, 0x30) + 37d6: 60c6 subu r3, r1 + 37d8: 102c lrw r1, 0x270f // 3808 + 37da: 64c4 cmphs r1, r3 + 37dc: 0809 bt 0x37ee // 37ee + CardInfo.reset_tick = SysTick_1ms; + 37de: 9260 ld.w r3, (r2, 0x0) + 37e0: b46c st.w r3, (r4, 0x30) + RC522_Reset(); + 37e2: e3fffd79 bsr 0x32d4 // 32d4 + Dbg_Println(DBG_BIT_SYS_STATUS, "not read for 10 seconds"); + 37e6: 102a lrw r1, 0x4a60 // 380c + 37e8: 3000 movi r0, 0 + 37ea: e3fffcb7 bsr 0x3158 // 3158 + + } + + +} + 37ee: 1491 pop r4, r15 + 37f0: 20000218 .long 0x20000218 + 37f4: 200000b4 .long 0x200000b4 + 37f8: 000003e7 .long 0x000003e7 + 37fc: 00004a4d .long 0x00004a4d + 3800: 200000c8 .long 0x200000c8 + 3804: 00004a56 .long 0x00004a56 + 3808: 0000270f .long 0x0000270f + 380c: 00004a60 .long 0x00004a60 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +00003810 : +/******************************************** + *产生继电器控制动作检测 + * rly_id:继电器id,state:继电器要改变的状态 + * + * ********************************************/ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 3810: 14d1 push r4, r15 + //一个标志位,在过零信号的中断里会改变,代表有过零信号 + //c_rly.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + + switch(rly_id) + 3812: 3840 cmpnei r0, 0 + 3814: 1089 lrw r4, 0x2000024c // 3838 + 3816: 080f bt 0x3834 // 3834 + { + case CARD_RLY: + + if(c_rly.rly_state[rly_id] != state){ + 3818: 8463 ld.b r3, (r4, 0x3) + 381a: 644e cmpne r3, r1 + 381c: 0c0b bf 0x3832 // 3832 + c_rly.rly_state[rly_id] = state; + 381e: a423 st.b r1, (r4, 0x3) + + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_RLY_Ctrl_Purpose1--rly_control:%d",c_rly.rly_control); + 3820: 8442 ld.b r2, (r4, 0x2) + 3822: 1027 lrw r1, 0x4a78 // 383c + 3824: e3fffc9a bsr 0x3158 // 3158 +// g_switch.rly_control = 0x01; + + if(c_rly.rly_zero == 0){ + 3828: 8460 ld.b r3, (r4, 0x0) + c_rly.rly_control = 0x02; + 382a: 3b40 cmpnei r3, 0 + 382c: 64c3 mvcv r3 + 382e: 2300 addi r3, 1 + c_rly.rly_control = 0x01; + } + } + break; + default: + c_rly.rly_control = 0x00; + 3830: a462 st.b r3, (r4, 0x2) + break; + + } + +} + 3832: 1491 pop r4, r15 + c_rly.rly_control = 0x00; + 3834: 3300 movi r3, 0 + 3836: 07fd br 0x3830 // 3830 + 3838: 2000024c .long 0x2000024c + 383c: 00004a78 .long 0x00004a78 + +Disassembly of section .text.RLY_Light_Ctrl: + +00003840 : +{ + 3840: 14d0 push r15 + if(state == 0x01) + 3842: 3841 cmpnei r0, 1 + 3844: 0806 bt 0x3850 // 3850 + 3846: 3101 movi r1, 1 + 3848: 3000 movi r0, 0 + 384a: e3ffffe3 bsr 0x3810 // 3810 +} + 384e: 1490 pop r15 + else if(state == 0x00){ + 3850: 3840 cmpnei r0, 0 + 3852: 0bfe bt 0x384e // 384e + if(CardInfo.CTR_PLYFlag == 1){ + 3854: 1067 lrw r3, 0x20000218 // 3870 + 3856: 8360 ld.b r3, (r3, 0x0) + 3858: 3b41 cmpnei r3, 1 + 385a: 0809 bt 0x386c // 386c + if(SysTick_1ms - Tim_Flag >= CTR_State_Tick) + 385c: 1066 lrw r3, 0x200000b4 // 3874 + 385e: 1047 lrw r2, 0x200000d4 // 3878 + 3860: 9360 ld.w r3, (r3, 0x0) + 3862: 9240 ld.w r2, (r2, 0x0) + 3864: 60ca subu r3, r2 + 3866: 1046 lrw r2, 0x752f // 387c + 3868: 64c8 cmphs r2, r3 + 386a: 0bf2 bt 0x384e // 384e + 386c: 3102 movi r1, 2 + 386e: 07ed br 0x3848 // 3848 + 3870: 20000218 .long 0x20000218 + 3874: 200000b4 .long 0x200000b4 + 3878: 200000d4 .long 0x200000d4 + 387c: 0000752f .long 0x0000752f + +Disassembly of section .text.KEY1_LONG_PRESS_RELEASE_Handler: + +00003880 : +{ + 3880: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS, "LONG_PRESS_RELEASE_Handler"); + 3882: 1033 lrw r1, 0x4a9e // 38cc + 3884: 3000 movi r0, 0 + 3886: e3fffc69 bsr 0x3158 // 3158 + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 388a: 1072 lrw r3, 0x20000218 // 38d0 + 388c: 8367 ld.b r3, (r3, 0x7) + 388e: 3b40 cmpnei r3, 0 + 3890: 1091 lrw r4, 0x2000028c // 38d4 + 3892: 0819 bt 0x38c4 // 38c4 + if(READ_RLY_STATE != 0x00) + 3894: 1071 lrw r3, 0x20000048 // 38d8 + 3896: 3100 movi r1, 0 + 3898: 9300 ld.w r0, (r3, 0x0) + 389a: e3fff313 bsr 0x1ec0 // 1ec0 + 389e: 3840 cmpnei r0, 0 + 38a0: 0c08 bf 0x38b0 // 38b0 + RLY_Light_Ctrl(1); + 38a2: 3001 movi r0, 1 + 38a4: e3ffffce bsr 0x3840 // 3840 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Release RLY ON"); + 38a8: 102d lrw r1, 0x4ab9 // 38dc + 38aa: 3000 movi r0, 0 + 38ac: e3fffc56 bsr 0x3158 // 3158 + dm_in.DM_Tick = SysTick_1ms; + 38b0: 106c lrw r3, 0x200000b4 // 38e0 + 38b2: 104d lrw r2, 0x2000028d // 38e4 + 38b4: 9360 ld.w r3, (r3, 0x0) + 38b6: 4b28 lsri r1, r3, 8 + 38b8: a461 st.b r3, (r4, 0x1) + 38ba: a221 st.b r1, (r2, 0x1) + 38bc: 4b30 lsri r1, r3, 16 + 38be: 4b78 lsri r3, r3, 24 + 38c0: a222 st.b r1, (r2, 0x2) + 38c2: a263 st.b r3, (r2, 0x3) + dm_in.DM_State = 0x02; + 38c4: 3302 movi r3, 2 + 38c6: a460 st.b r3, (r4, 0x0) +} + 38c8: 1491 pop r4, r15 + 38ca: 0000 bkpt + 38cc: 00004a9e .long 0x00004a9e + 38d0: 20000218 .long 0x20000218 + 38d4: 2000028c .long 0x2000028c + 38d8: 20000048 .long 0x20000048 + 38dc: 00004ab9 .long 0x00004ab9 + 38e0: 200000b4 .long 0x200000b4 + 38e4: 2000028d .long 0x2000028d + +Disassembly of section .text.LogicCtrl_Init: + +000038e8 : +{ + 38e8: 14d1 push r4, r15 + GPIO_Init(GPIOB0,CARD_SENS_PIN,Output); //CARD_SENS + 38ea: 108b lrw r4, 0x20000048 // 3914 + 38ec: 3200 movi r2, 0 + 38ee: 9400 ld.w r0, (r4, 0x0) + 38f0: 3101 movi r1, 1 + 38f2: e3fff24b bsr 0x1d88 // 1d88 + CTRL_CARD_OUT; + 38f6: 9400 ld.w r0, (r4, 0x0) + 38f8: 3101 movi r1, 1 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 38fa: 1088 lrw r4, 0x2000004c // 3918 + CTRL_CARD_OUT; + 38fc: e3fff2cb bsr 0x1e92 // 1e92 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 3900: 3200 movi r2, 0 + 3902: 9400 ld.w r0, (r4, 0x0) + 3904: 3101 movi r1, 1 + 3906: e3fff241 bsr 0x1d88 // 1d88 + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 390a: 9400 ld.w r0, (r4, 0x0) + 390c: 3101 movi r1, 1 + 390e: e3fff2c2 bsr 0x1e92 // 1e92 +} + 3912: 1491 pop r4, r15 + 3914: 20000048 .long 0x20000048 + 3918: 2000004c .long 0x2000004c + +Disassembly of section .text.LogicCtrl_Task: + +0000391c : +{ + 391c: 14d4 push r4-r7, r15 + if (start_light == 0){ + 391e: 1195 lrw r4, 0x200000d4 // 39f0 + 3920: 8464 ld.b r3, (r4, 0x4) + 3922: 3b40 cmpnei r3, 0 + 3924: 11b4 lrw r5, 0x20000218 // 39f4 + 3926: 0813 bt 0x394c // 394c + start_light++; //start_light == 1,表示上电后首次进入(有插卡) + 3928: 3301 movi r3, 1 + 392a: a464 st.b r3, (r4, 0x4) + if (CardInfo.BlockSucc==BLOCK_READ_FAILD){ + 392c: 8567 ld.b r3, (r5, 0x7) + 392e: 3b40 cmpnei r3, 0 + 3930: 080e bt 0x394c // 394c + GPIO_Init(GPIOA0,0,Output); + 3932: 11d2 lrw r6, 0x2000004c // 39f8 + 3934: 3200 movi r2, 0 + 3936: 3100 movi r1, 0 + 3938: 9600 ld.w r0, (r6, 0x0) + 393a: e3fff227 bsr 0x1d88 // 1d88 + GPIO_Write_High(GPIOA0,0); + 393e: 9600 ld.w r0, (r6, 0x0) + 3940: 3100 movi r1, 0 + 3942: e3fff2a4 bsr 0x1e8a // 1e8a + start_light++; //start_light == 2,表示上电后首次进入时未插卡 目前可能上电时有插卡也意外进入 + 3946: 8464 ld.b r3, (r4, 0x4) + 3948: 2300 addi r3, 1 + 394a: a464 st.b r3, (r4, 0x4) + if((CardInfo.BlockSucc==BLOCK_READ_SUCC) && (READ_CARD_STATE == 0)) + 394c: 8567 ld.b r3, (r5, 0x7) + 394e: 3b41 cmpnei r3, 1 + 3950: 0836 bt 0x39bc // 39bc + 3952: 11cb lrw r6, 0x20000048 // 39fc + 3954: 3101 movi r1, 1 + 3956: 9600 ld.w r0, (r6, 0x0) + 3958: e3fff2b4 bsr 0x1ec0 // 1ec0 + 395c: 3840 cmpnei r0, 0 + 395e: 082f bt 0x39bc // 39bc + CTRL_CARD_IN; + 3960: 3101 movi r1, 1 + 3962: 9600 ld.w r0, (r6, 0x0) + 3964: e3fff293 bsr 0x1e8a // 1e8a + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_IN,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 3968: 1166 lrw r3, 0x200000b4 // 3a00 + 396a: 3101 movi r1, 1 + 396c: 9600 ld.w r0, (r6, 0x0) + 396e: 93e0 ld.w r7, (r3, 0x0) + 3970: e3fff2a8 bsr 0x1ec0 // 1ec0 + 3974: 6cc3 mov r3, r0 + 3976: 6c9f mov r2, r7 + 3978: 1123 lrw r1, 0x4acb // 3a04 + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_OUT,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 397a: 3000 movi r0, 0 + 397c: e3fffbee bsr 0x3158 // 3158 + if ((CardInfo.BlockSucc==BLOCK_READ_SUCC) && ((start_light > 0)&&(start_light <= 2)) ){ + 3980: 8567 ld.b r3, (r5, 0x7) + 3982: 3b41 cmpnei r3, 1 + 3984: 080a bt 0x3998 // 3998 + 3986: 8444 ld.b r2, (r4, 0x4) + 3988: 5a63 subi r3, r2, 1 + 398a: 74cc zextb r3, r3 + 398c: 3b01 cmphsi r3, 2 + 398e: 0805 bt 0x3998 // 3998 + if (start_light > 1){ //上电后首次进入时未插卡 + 3990: 3a42 cmpnei r2, 2 + 3992: 082d bt 0x39ec // 39ec + start_light = 3; //start_light == 3,表示从上电后首次进入未插卡状态转为有插卡状态 + 3994: 3303 movi r3, 3 + start_light = 10; //start_light == 10,表示从首次上电时有插卡,变成这个值后不再进入上电判断 + 3996: a464 st.b r3, (r4, 0x4) + if ((start_light>=3)&&(start_light<=6)){ + 3998: 8464 ld.b r3, (r4, 0x4) + 399a: 5b4b subi r2, r3, 3 + 399c: 7488 zextb r2, r2 + 399e: 3a03 cmphsi r2, 4 + 39a0: 080d bt 0x39ba // 39ba + start_light++; + 39a2: 2300 addi r3, 1 + 39a4: 74cc zextb r3, r3 + if (start_light>5){ //延时进入 + 39a6: 3b05 cmphsi r3, 6 + start_light++; + 39a8: a464 st.b r3, (r4, 0x4) + if (start_light>5){ //延时进入 + 39aa: 0c08 bf 0x39ba // 39ba + GPIO_Write_Low(GPIOA0,0); + 39ac: 1073 lrw r3, 0x2000004c // 39f8 + 39ae: 3100 movi r1, 0 + 39b0: 9300 ld.w r0, (r3, 0x0) + 39b2: e3fff270 bsr 0x1e92 // 1e92 + start_light = 11; //start_light == 11,表示从上电后首次进入未插卡状态转为有插卡状态 + 39b6: 330b movi r3, 11 + 39b8: a464 st.b r3, (r4, 0x4) +} + 39ba: 1494 pop r4-r7, r15 + else if((CardInfo.BlockSucc==BLOCK_READ_FAILD) && (READ_CARD_STATE == 1)) + 39bc: 8567 ld.b r3, (r5, 0x7) + 39be: 3b40 cmpnei r3, 0 + 39c0: 0be0 bt 0x3980 // 3980 + 39c2: 10cf lrw r6, 0x20000048 // 39fc + 39c4: 3101 movi r1, 1 + 39c6: 9600 ld.w r0, (r6, 0x0) + 39c8: e3fff27c bsr 0x1ec0 // 1ec0 + 39cc: 3841 cmpnei r0, 1 + 39ce: 0bd9 bt 0x3980 // 3980 + CTRL_CARD_OUT; + 39d0: 3101 movi r1, 1 + 39d2: 9600 ld.w r0, (r6, 0x0) + 39d4: e3fff25f bsr 0x1e92 // 1e92 + Dbg_Println(DBG_BIT_SYS_STATUS, "SysTick_1ms:%d,CTRL_CARD_OUT,Card Pin State:%d",SysTick_1ms,READ_CARD_STATE); + 39d8: 106a lrw r3, 0x200000b4 // 3a00 + 39da: 3101 movi r1, 1 + 39dc: 9600 ld.w r0, (r6, 0x0) + 39de: 93e0 ld.w r7, (r3, 0x0) + 39e0: e3fff270 bsr 0x1ec0 // 1ec0 + 39e4: 6cc3 mov r3, r0 + 39e6: 6c9f mov r2, r7 + 39e8: 1028 lrw r1, 0x4af9 // 3a08 + 39ea: 07c8 br 0x397a // 397a + start_light = 10; //start_light == 10,表示从首次上电时有插卡,变成这个值后不再进入上电判断 + 39ec: 330a movi r3, 10 + 39ee: 07d4 br 0x3996 // 3996 + 39f0: 200000d4 .long 0x200000d4 + 39f4: 20000218 .long 0x20000218 + 39f8: 2000004c .long 0x2000004c + 39fc: 20000048 .long 0x20000048 + 3a00: 200000b4 .long 0x200000b4 + 3a04: 00004acb .long 0x00004acb + 3a08: 00004af9 .long 0x00004af9 + +Disassembly of section .text.LogicCtrl_NoRF_Init: + +00003a0c : +{ + 3a0c: 14d1 push r4, r15 + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 3a0e: 1097 lrw r4, 0x2000004c // 3a68 + memset(&dm_in,0,sizeof(DM_IN_INF)); + 3a10: 3209 movi r2, 9 + 3a12: 3100 movi r1, 0 + 3a14: 1016 lrw r0, 0x2000028c // 3a6c + 3a16: e3ffefa7 bsr 0x1964 // 1964 <__memset_fast> + GPIO_Init(GPIOA0,DM_IN_PIN,Intput); //DM_IN + 3a1a: 9400 ld.w r0, (r4, 0x0) + 3a1c: 3201 movi r2, 1 + 3a1e: 3103 movi r1, 3 + 3a20: e3fff1b4 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,LED_INPUT_PIN,Output); //LED_IN + 3a24: 3200 movi r2, 0 + 3a26: 9400 ld.w r0, (r4, 0x0) + 3a28: 3101 movi r1, 1 + 3a2a: e3fff1af bsr 0x1d88 // 1d88 + GPIO_Write_Low(GPIOA0,LED_INPUT_PIN); + 3a2e: 9400 ld.w r0, (r4, 0x0) + 3a30: 3101 movi r1, 1 + 3a32: e3fff230 bsr 0x1e92 // 1e92 + GPIO_Init(GPIOA0,BACKLIGHT_PIN,Output); //blacklight + 3a36: 3200 movi r2, 0 + 3a38: 9400 ld.w r0, (r4, 0x0) + 3a3a: 3100 movi r1, 0 + 3a3c: e3fff1a6 bsr 0x1d88 // 1d88 + GPIO_Write_Low(GPIOA0,BACKLIGHT_PIN); //初始拉低断开,插卡拉高打开 + 3a40: 9400 ld.w r0, (r4, 0x0) + 3a42: 3100 movi r1, 0 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 3a44: 108b lrw r4, 0x2000025c // 3a70 + GPIO_Write_Low(GPIOA0,BACKLIGHT_PIN); //初始拉低断开,插卡拉高打开 + 3a46: e3fff226 bsr 0x1e92 // 1e92 + button_init(&KEY1, read_button_GPIO, 0, DM_IN_PIN); + 3a4a: 3303 movi r3, 3 + 3a4c: 6c13 mov r0, r4 + 3a4e: 3200 movi r2, 0 + 3a50: 1029 lrw r1, 0x3fb4 // 3a74 + 3a52: e00001df bsr 0x3e10 // 3e10 + button_attach(&KEY1, LONG_PRESS_RELEASE, KEY1_LONG_PRESS_RELEASE_Handler); + 3a56: 1049 lrw r2, 0x3880 // 3a78 + 3a58: 3107 movi r1, 7 + 3a5a: 6c13 mov r0, r4 + 3a5c: e00001f7 bsr 0x3e4a // 3e4a + button_start(&KEY1); + 3a60: 6c13 mov r0, r4 + 3a62: e0000289 bsr 0x3f74 // 3f74 +} + 3a66: 1491 pop r4, r15 + 3a68: 2000004c .long 0x2000004c + 3a6c: 2000028c .long 0x2000028c + 3a70: 2000025c .long 0x2000025c + 3a74: 00003fb4 .long 0x00003fb4 + 3a78: 00003880 .long 0x00003880 + +Disassembly of section .text.LogicCtrl_NoRF_Task: + +00003a7c : +{ + 3a7c: 14d3 push r4-r6, r15 + CardInfo.CTR_PLYFlag = CTR_State_Flag; + 3a7e: 3301 movi r3, 1 + 3a80: 11c9 lrw r6, 0x20000218 // 3b24 + if(SysTick_1ms - test_tick > 5) + 3a82: 118a lrw r4, 0x200000b4 // 3b28 + 3a84: 11aa lrw r5, 0x200000d4 // 3b2c + CardInfo.CTR_PLYFlag = CTR_State_Flag; + 3a86: a660 st.b r3, (r6, 0x0) + if(SysTick_1ms - test_tick > 5) + 3a88: 9542 ld.w r2, (r5, 0x8) + 3a8a: 9460 ld.w r3, (r4, 0x0) + 3a8c: 60ca subu r3, r2 + 3a8e: 3b05 cmphsi r3, 6 + 3a90: 0c05 bf 0x3a9a // 3a9a + test_tick = SysTick_1ms; + 3a92: 9460 ld.w r3, (r4, 0x0) + 3a94: b562 st.w r3, (r5, 0x8) + button_ticks(); + 3a96: e0000281 bsr 0x3f98 // 3f98 + if(CardInfo.BlockSucc == BLOCK_READ_SUCC) + 3a9a: 8667 ld.b r3, (r6, 0x7) + 3a9c: 3b41 cmpnei r3, 1 + 3a9e: 0830 bt 0x3afe // 3afe + RLY_Light_Ctrl(1); + 3aa0: 3001 movi r0, 1 + 3aa2: e3fffecf bsr 0x3840 // 3840 + card_tick = SysTick_1ms; + 3aa6: 9460 ld.w r3, (r4, 0x0) + 3aa8: b563 st.w r3, (r5, 0xc) + dm_in.DM_State = 0x00; + 3aaa: 3200 movi r2, 0 + 3aac: 1161 lrw r3, 0x2000028c // 3b30 + 3aae: a340 st.b r2, (r3, 0x0) + if(CardInfo.BlockSucc == BLOCK_READ_FAILD) + 3ab0: 8667 ld.b r3, (r6, 0x7) + 3ab2: 3b40 cmpnei r3, 0 + 3ab4: 0824 bt 0x3afc // 3afc + if((dm_in.DM_State == 0x02) && (SysTick_1ms - dm_in.DM_Tick >= 30000)) + 3ab6: 107f lrw r3, 0x2000028c // 3b30 + 3ab8: 8340 ld.b r2, (r3, 0x0) + 3aba: 3a42 cmpnei r2, 2 + 3abc: 0820 bt 0x3afc // 3afc + 3abe: 8322 ld.b r1, (r3, 0x2) + 3ac0: 8341 ld.b r2, (r3, 0x1) + 3ac2: 4128 lsli r1, r1, 8 + 3ac4: 6c48 or r1, r2 + 3ac6: 8343 ld.b r2, (r3, 0x3) + 3ac8: 4250 lsli r2, r2, 16 + 3aca: 6c48 or r1, r2 + 3acc: 8344 ld.b r2, (r3, 0x4) + 3ace: 4258 lsli r2, r2, 24 + 3ad0: 6c84 or r2, r1 + 3ad2: 9400 ld.w r0, (r4, 0x0) + 3ad4: 600a subu r0, r2 + 3ad6: 1058 lrw r2, 0x752f // 3b34 + 3ad8: 6408 cmphs r2, r0 + 3ada: 0811 bt 0x3afc // 3afc + dm_in.DM_Tick = SysTick_1ms; + 3adc: 9440 ld.w r2, (r4, 0x0) + 3ade: 5b22 addi r1, r3, 1 + 3ae0: a341 st.b r2, (r3, 0x1) + 3ae2: 4a68 lsri r3, r2, 8 + 3ae4: a161 st.b r3, (r1, 0x1) + RLY_Light_Ctrl(0); + 3ae6: 3000 movi r0, 0 + dm_in.DM_Tick = SysTick_1ms; + 3ae8: 4a70 lsri r3, r2, 16 + 3aea: 4a58 lsri r2, r2, 24 + 3aec: a162 st.b r3, (r1, 0x2) + 3aee: a143 st.b r2, (r1, 0x3) + RLY_Light_Ctrl(0); + 3af0: e3fffea8 bsr 0x3840 // 3840 + Dbg_Println(DBG_BIT_SYS_STATUS, "DM Delay RLY OFF"); + 3af4: 1031 lrw r1, 0x4b3b // 3b38 + 3af6: 3000 movi r0, 0 + 3af8: e3fffb30 bsr 0x3158 // 3158 +} + 3afc: 1493 pop r4-r6, r15 + else if((CardInfo.BlockSucc == BLOCK_READ_FAILD) && (dm_in.DM_State == 0x00) && (SysTick_1ms - card_tick >= CTR_State_Tick)) + 3afe: 3b40 cmpnei r3, 0 + 3b00: 0bd8 bt 0x3ab0 // 3ab0 + 3b02: 106c lrw r3, 0x2000028c // 3b30 + 3b04: 8360 ld.b r3, (r3, 0x0) + 3b06: 3b40 cmpnei r3, 0 + 3b08: 0bd4 bt 0x3ab0 // 3ab0 + 3b0a: 9543 ld.w r2, (r5, 0xc) + 3b0c: 9460 ld.w r3, (r4, 0x0) + 3b0e: 60ca subu r3, r2 + 3b10: 1049 lrw r2, 0x752f // 3b34 + 3b12: 64c8 cmphs r2, r3 + 3b14: 0bce bt 0x3ab0 // 3ab0 + card_tick = SysTick_1ms; + 3b16: 9460 ld.w r3, (r4, 0x0) + RLY_Light_Ctrl(0); + 3b18: 3000 movi r0, 0 + card_tick = SysTick_1ms; + 3b1a: b563 st.w r3, (r5, 0xc) + RLY_Light_Ctrl(0); + 3b1c: e3fffe92 bsr 0x3840 // 3840 + 3b20: 07c8 br 0x3ab0 // 3ab0 + 3b22: 0000 bkpt + 3b24: 20000218 .long 0x20000218 + 3b28: 200000b4 .long 0x200000b4 + 3b2c: 200000d4 .long 0x200000d4 + 3b30: 2000028c .long 0x2000028c + 3b34: 0000752f .long 0x0000752f + 3b38: 00004b3b .long 0x00004b3b + +Disassembly of section .text.BackLight_Task: + +00003b3c : + if (CardInfo.BlockSucc == BLOCK_READ_SUCC) + 3b3c: 1067 lrw r3, 0x20000218 // 3b58 + 3b3e: 8367 ld.b r3, (r3, 0x7) + 3b40: 3b41 cmpnei r3, 1 + 3b42: 1067 lrw r3, 0x20000024 // 3b5c + 3b44: 0806 bt 0x3b50 // 3b50 + GPT0->CMPA = 2000; + 3b46: 9340 ld.w r2, (r3, 0x0) + 3b48: 33fa movi r3, 250 + 3b4a: 4363 lsli r3, r3, 3 + 3b4c: b26b st.w r3, (r2, 0x2c) +} + 3b4e: 783c jmp r15 + GPT0->CMPA = 0; + 3b50: 9360 ld.w r3, (r3, 0x0) + 3b52: 3200 movi r2, 0 + 3b54: b34b st.w r2, (r3, 0x2c) +} + 3b56: 07fc br 0x3b4e // 3b4e + 3b58: 20000218 .long 0x20000218 + 3b5c: 20000024 .long 0x20000024 + +Disassembly of section .text.Detect_WIFI_Task: + +00003b60 : +void Detect_WIFI_Task(void){ + 3b60: 14d1 push r4, r15 + if (finish_flag == 1) return; + 3b62: 107c lrw r3, 0x2000009e // 3bd0 + 3b64: 8340 ld.b r2, (r3, 0x0) + 3b66: 3a41 cmpnei r2, 1 + 3b68: 0c1c bf 0x3ba0 // 3ba0 + if (detect_count <10) { + 3b6a: 109b lrw r4, 0x200000a8 // 3bd4 + 3b6c: 8440 ld.b r2, (r4, 0x0) + 3b6e: 3a09 cmphsi r2, 10 + 3b70: 081c bt 0x3ba8 // 3ba8 + if(SysTick_1ms - detect_tick >= 10) { + 3b72: 103a lrw r1, 0x200000b4 // 3bd8 + 3b74: 105a lrw r2, 0x200000a4 // 3bdc + 3b76: 9160 ld.w r3, (r1, 0x0) + 3b78: 9200 ld.w r0, (r2, 0x0) + 3b7a: 60c2 subu r3, r0 + 3b7c: 3b09 cmphsi r3, 10 + 3b7e: 0c11 bf 0x3ba0 // 3ba0 + detect_tick = SysTick_1ms; + 3b80: 9160 ld.w r3, (r1, 0x0) + 3b82: b260 st.w r3, (r2, 0x0) + rf_exist = GPIO_Read_Status(GPIOB0,DET_RF_MODULE_PIN); + 3b84: 3102 movi r1, 2 + 3b86: 1077 lrw r3, 0x20000048 // 3be0 + 3b88: 9300 ld.w r0, (r3, 0x0) + 3b8a: e3fff193 bsr 0x1eb0 // 1eb0 + 3b8e: 1076 lrw r3, 0x2000009c // 3be4 + 3b90: a300 st.b r0, (r3, 0x0) + if (last_state != rf_exist) { + 3b92: 1076 lrw r3, 0x2000009d // 3be8 + 3b94: 8340 ld.b r2, (r3, 0x0) + 3b96: 640a cmpne r2, r0 + 3b98: 0c05 bf 0x3ba2 // 3ba2 + last_state = rf_exist; + 3b9a: a300 st.b r0, (r3, 0x0) + detect_count = 0; + 3b9c: 3300 movi r3, 0 + detect_count++; + 3b9e: a460 st.b r3, (r4, 0x0) +} + 3ba0: 1491 pop r4, r15 + detect_count++; + 3ba2: 8460 ld.b r3, (r4, 0x0) + 3ba4: 2300 addi r3, 1 + 3ba6: 07fc br 0x3b9e // 3b9e + finish_flag = 1; + 3ba8: 3201 movi r2, 1 + 3baa: a340 st.b r2, (r3, 0x0) + if(rf_exist == 0x01) //不带无线模块初始化 + 3bac: 106e lrw r3, 0x2000009c // 3be4 + 3bae: 8360 ld.b r3, (r3, 0x0) + 3bb0: 3b41 cmpnei r3, 1 + 3bb2: 0808 bt 0x3bc2 // 3bc2 + LogicCtrl_NoRF_Init(); + 3bb4: e3ffff2c bsr 0x3a0c // 3a0c + Dbg_Println(DBG_BIT_SYS_STATUS, "NoRF"); + 3bb8: 102d lrw r1, 0x4b4c // 3bec + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 3bba: 3000 movi r0, 0 + 3bbc: e3ffface bsr 0x3158 // 3158 + 3bc0: 07f0 br 0x3ba0 // 3ba0 + else if(rf_exist == 0x00) //带无线模块初始化 + 3bc2: 3b40 cmpnei r3, 0 + 3bc4: 0bee bt 0x3ba0 // 3ba0 + LogicCtrl_Init(); + 3bc6: e3fffe91 bsr 0x38e8 // 38e8 + Dbg_Println(DBG_BIT_SYS_STATUS, "RF"); + 3bca: 102a lrw r1, 0x4b4e // 3bf0 + 3bcc: 07f7 br 0x3bba // 3bba + 3bce: 0000 bkpt + 3bd0: 2000009e .long 0x2000009e + 3bd4: 200000a8 .long 0x200000a8 + 3bd8: 200000b4 .long 0x200000b4 + 3bdc: 200000a4 .long 0x200000a4 + 3be0: 20000048 .long 0x20000048 + 3be4: 2000009c .long 0x2000009c + 3be8: 2000009d .long 0x2000009d + 3bec: 00004b4c .long 0x00004b4c + 3bf0: 00004b4e .long 0x00004b4e + +Disassembly of section .text.Led_Task: + +00003bf4 : +void Led_Task(void){ + 3bf4: 14d1 push r4, r15 + if (CardInfo.RC522_Reset_Falg == 1) + 3bf6: 1074 lrw r3, 0x20000238 // 3c44 + 3bf8: 8368 ld.b r3, (r3, 0x8) + 3bfa: 3b41 cmpnei r3, 1 + 3bfc: 1073 lrw r3, 0x2000028c // 3c48 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) + 3bfe: 8326 ld.b r1, (r3, 0x6) + 3c00: 8345 ld.b r2, (r3, 0x5) + 3c02: 4128 lsli r1, r1, 8 + 3c04: 6c48 or r1, r2 + 3c06: 8347 ld.b r2, (r3, 0x7) + 3c08: 4250 lsli r2, r2, 16 + 3c0a: 6c48 or r1, r2 + 3c0c: 8348 ld.b r2, (r3, 0x8) + 3c0e: 1010 lrw r0, 0x200000b4 // 3c4c + 3c10: 4258 lsli r2, r2, 24 + 3c12: 9080 ld.w r4, (r0, 0x0) + 3c14: 6c84 or r2, r1 + 3c16: 610a subu r4, r2 + if (CardInfo.RC522_Reset_Falg == 1) + 3c18: 0813 bt 0x3c3e // 3c3e + if (SysTick_1ms - dm_in.DM_Led_Tick >= 100) + 3c1a: 3263 movi r2, 99 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) + 3c1c: 6508 cmphs r2, r4 + 3c1e: 080f bt 0x3c3c // 3c3c + dm_in.DM_Led_Tick = SysTick_1ms; + 3c20: 9040 ld.w r2, (r0, 0x0) + 3c22: 5b32 addi r1, r3, 5 + 3c24: a345 st.b r2, (r3, 0x5) + 3c26: 4a68 lsri r3, r2, 8 + 3c28: a161 st.b r3, (r1, 0x1) + 3c2a: 4a70 lsri r3, r2, 16 + 3c2c: a162 st.b r3, (r1, 0x2) + 3c2e: 4a58 lsri r2, r2, 24 + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 3c30: 1068 lrw r3, 0x2000004c // 3c50 + 3c32: 9300 ld.w r0, (r3, 0x0) + dm_in.DM_Led_Tick = SysTick_1ms; + 3c34: a143 st.b r2, (r1, 0x3) + GPIO_Reverse(GPIOA0,LED_INPUT_PIN); + 3c36: 3101 movi r1, 1 + 3c38: e3fff131 bsr 0x1e9a // 1e9a +} + 3c3c: 1491 pop r4, r15 + if (SysTick_1ms - dm_in.DM_Led_Tick >= 500) + 3c3e: 1046 lrw r2, 0x1f3 // 3c54 + 3c40: 07ee br 0x3c1c // 3c1c + 3c42: 0000 bkpt + 3c44: 20000238 .long 0x20000238 + 3c48: 2000028c .long 0x2000028c + 3c4c: 200000b4 .long 0x200000b4 + 3c50: 2000004c .long 0x2000004c + 3c54: 000001f3 .long 0x000001f3 + +Disassembly of section .text.CRC16: + +00003c58 : +{ + 3c58: 14c3 push r4-r6 + 3c5a: 6cc3 mov r3, r0 + 3c5c: 6040 addu r1, r0 + if( xdabit ) xda ^= xdapoly; + 3c5e: 10ac lrw r5, 0xffffa001 // 3c8c + xda = 0xFFFF; + 3c60: 100c lrw r0, 0xffff // 3c90 + for(i=0;i +} + 3c66: 1483 pop r4-r6 + xda ^= aStr[i]; + 3c68: 8340 ld.b r2, (r3, 0x0) + 3c6a: 6c09 xor r0, r2 + xdabit = (U8_T)(xda & 0x01); + 3c6c: 3601 movi r6, 1 + xda ^= aStr[i]; + 3c6e: 3208 movi r2, 8 + if( xdabit ) xda ^= xdapoly; + 3c70: 6d03 mov r4, r0 + 3c72: 6918 and r4, r6 + 3c74: 3c40 cmpnei r4, 0 + 3c76: 4801 lsri r0, r0, 1 + 3c78: 0c03 bf 0x3c7e // 3c7e + 3c7a: 6c15 xor r0, r5 + 3c7c: 7401 zexth r0, r0 + 3c7e: 2a00 subi r2, 1 + 3c80: 7489 zexth r2, r2 + for(j=0;j<8;j++) + 3c82: 3a40 cmpnei r2, 0 + 3c84: 0bf6 bt 0x3c70 // 3c70 + 3c86: 2300 addi r3, 1 + 3c88: 07ed br 0x3c62 // 3c62 + 3c8a: 0000 bkpt + 3c8c: ffffa001 .long 0xffffa001 + 3c90: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Read_Version_Ack: + +00003c94 : +{ + 3c94: 14d1 push r4, r15 + 3c96: 1423 subi r14, r14, 12 + memset(data,0,sizeof(data)); + 3c98: 6c3b mov r0, r14 + 3c9a: 320c movi r2, 12 + 3c9c: 3100 movi r1, 0 + 3c9e: e3ffee63 bsr 0x1964 // 1964 <__memset_fast> + data[0] = 0x55; + 3ca2: 3355 movi r3, 85 + 3ca4: dc6e0000 st.b r3, (r14, 0x0) + data[1] = 0x55; + 3ca8: dc6e0001 st.b r3, (r14, 0x1) + data[2] = 0xee; + 3cac: 3300 movi r3, 0 + 3cae: 2b11 subi r3, 18 + 3cb0: dc6e0002 st.b r3, (r14, 0x2) + data[3] = 0x08; //LENS + 3cb4: 3308 movi r3, 8 + 3cb6: dc6e0003 st.b r3, (r14, 0x3) + data[4] = 0x07; //Type + 3cba: 3307 movi r3, 7 + 3cbc: dc6e0004 st.b r3, (r14, 0x4) + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 3cc0: 3403 movi r4, 3 + data[6] = 0x05; //Fun + 3cc2: 3305 movi r3, 5 + 3cc4: dc6e0006 st.b r3, (r14, 0x6) + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 3cc8: 6138 addu r4, r14 + data[7] = Project_FW_Version; + 3cca: 3302 movi r3, 2 + 3ccc: dc6e0007 st.b r3, (r14, 0x7) + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 3cd0: 3107 movi r1, 7 + data[8] = Project_HW_Version; + 3cd2: 3304 movi r3, 4 + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 3cd4: 6c13 mov r0, r4 + data[8] = Project_HW_Version; + 3cd6: dc6e0008 st.b r3, (r14, 0x8) + data[lens-2] = CRC16(&data[3],lens-5)&0xff; + 3cda: e3ffffbf bsr 0x3c58 // 3c58 + 3cde: dc0e000a st.b r0, (r14, 0xa) + data[lens-1] = (CRC16(&data[3],lens-5)>>8)&0xff; + 3ce2: 3107 movi r1, 7 + 3ce4: 6c13 mov r0, r4 + 3ce6: e3ffffb9 bsr 0x3c58 // 3c58 + 3cea: 4808 lsri r0, r0, 8 + UARTTransmit(UART2,data,lens); + 3cec: 1065 lrw r3, 0x20000038 // 3d00 + 3cee: 320c movi r2, 12 + data[lens-1] = (CRC16(&data[3],lens-5)>>8)&0xff; + 3cf0: dc0e000b st.b r0, (r14, 0xb) + UARTTransmit(UART2,data,lens); + 3cf4: 6c7b mov r1, r14 + 3cf6: 9300 ld.w r0, (r3, 0x0) + 3cf8: e3fff310 bsr 0x2318 // 2318 +} + 3cfc: 1403 addi r14, r14, 12 + 3cfe: 1491 pop r4, r15 + 3d00: 20000038 .long 0x20000038 + +Disassembly of section .text.Card_Recv_Pro: + +00003d04 : +{ + 3d04: 14d2 push r4-r5, r15 + if((lens <= 4) || (data[3] != (lens - 3))) //2024-11-11 增加长度判断,避免长度错误导致卡在CRC校验循环里最终开门狗复位 + 3d06: 3904 cmphsi r1, 5 +{ + 3d08: 6d03 mov r4, r0 + if((lens <= 4) || (data[3] != (lens - 3))) //2024-11-11 增加长度判断,避免长度错误导致卡在CRC校验循环里最终开门狗复位 + 3d0a: 0c05 bf 0x3d14 // 3d14 + 3d0c: 8043 ld.b r2, (r0, 0x3) + 3d0e: 596b subi r3, r1, 3 + 3d10: 64ca cmpne r2, r3 + 3d12: 0c07 bf 0x3d20 // 3d20 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro Lens Err"); + 3d14: 103b lrw r1, 0x4b51 // 3d80 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro Head Err"); + 3d16: 3000 movi r0, 0 + 3d18: e3fffa20 bsr 0x3158 // 3158 + return 1; + 3d1c: 3001 movi r0, 1 +} + 3d1e: 1492 pop r4-r5, r15 + if((data[0] != 0x55) || (data[1] != 0x55) || (data[2] != 0xee)) + 3d20: 8060 ld.b r3, (r0, 0x0) + 3d22: 3255 movi r2, 85 + 3d24: 648e cmpne r3, r2 + 3d26: 0808 bt 0x3d36 // 3d36 + 3d28: 8041 ld.b r2, (r0, 0x1) + 3d2a: 64ca cmpne r2, r3 + 3d2c: 0805 bt 0x3d36 // 3d36 + 3d2e: 8042 ld.b r2, (r0, 0x2) + 3d30: 33ee movi r3, 238 + 3d32: 64ca cmpne r2, r3 + 3d34: 0c03 bf 0x3d3a // 3d3a + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro Head Err"); + 3d36: 1034 lrw r1, 0x4b68 // 3d84 + 3d38: 07ef br 0x3d16 // 3d16 + if(data[4] != 0x07) + 3d3a: 8064 ld.b r3, (r0, 0x4) + 3d3c: 3b47 cmpnei r3, 7 + 3d3e: 0c03 bf 0x3d44 // 3d44 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro Type Err"); + 3d40: 1032 lrw r1, 0x4b7f // 3d88 + 3d42: 07ea br 0x3d16 // 3d16 + crc_temp = (data[lens-1]<<8) + data[lens-2]; + 3d44: 5864 addu r3, r0, r1 + 3d46: 5b43 subi r2, r3, 1 + 3d48: 82a0 ld.b r5, (r2, 0x0) + 3d4a: 2b01 subi r3, 2 + 3d4c: 8340 ld.b r2, (r3, 0x0) + 3d4e: 45a8 lsli r5, r5, 8 + if(crc_temp != CRC16(&data[3],lens-5)) + 3d50: 2904 subi r1, 5 + crc_temp = (data[lens-1]<<8) + data[lens-2]; + 3d52: 6148 addu r5, r2 + if(crc_temp != CRC16(&data[3],lens-5)) + 3d54: 7445 zexth r1, r1 + 3d56: 2002 addi r0, 3 + 3d58: e3ffff80 bsr 0x3c58 // 3c58 + crc_temp = (data[lens-1]<<8) + data[lens-2]; + 3d5c: 7555 zexth r5, r5 + if(crc_temp != CRC16(&data[3],lens-5)) + 3d5e: 6416 cmpne r5, r0 + 3d60: 6cc3 mov r3, r0 + 3d62: 0c07 bf 0x3d70 // 3d70 + Dbg_Println(DBG_BIT_SYS_STATUS, "Card_Recv_Pro CRC Err: %04X %04X",crc_temp,CRC16(&data[3],lens-5)); + 3d64: 6c97 mov r2, r5 + 3d66: 102a lrw r1, 0x4b96 // 3d8c + 3d68: 3000 movi r0, 0 + 3d6a: e3fff9f7 bsr 0x3158 // 3158 + 3d6e: 07d7 br 0x3d1c // 3d1c + switch(data[6]) + 3d70: 8466 ld.b r3, (r4, 0x6) + 3d72: 3b45 cmpnei r3, 5 + 3d74: 0803 bt 0x3d7a // 3d7a + Read_Version_Ack(); + 3d76: e3ffff8f bsr 0x3c94 // 3c94 + return 0; + 3d7a: 3000 movi r0, 0 + 3d7c: 07d1 br 0x3d1e // 3d1e + 3d7e: 0000 bkpt + 3d80: 00004b51 .long 0x00004b51 + 3d84: 00004b68 .long 0x00004b68 + 3d88: 00004b7f .long 0x00004b7f + 3d8c: 00004b96 .long 0x00004b96 + +Disassembly of section .text.BLV_RLV_Ctrl_Init: + +00003d90 : +{ + 3d90: 14d0 push r15 + GPIO_Init(GPIOB0,RLY_OUT_PIN,Output); + 3d92: 1066 lrw r3, 0x20000048 // 3da8 + 3d94: 3200 movi r2, 0 + 3d96: 9300 ld.w r0, (r3, 0x0) + 3d98: 3100 movi r1, 0 + 3d9a: e3ffeff7 bsr 0x1d88 // 1d88 + 3d9e: 3102 movi r1, 2 + 3da0: 3000 movi r0, 0 + 3da2: e3fffd37 bsr 0x3810 // 3810 +} + 3da6: 1490 pop r15 + 3da8: 20000048 .long 0x20000048 + +Disassembly of section .text.RLY_Direct_Control: + +00003dac : + * 功能2:无过零信号时直接控制继电器功能 + * + * + ******************************************** */ +void RLY_Direct_Control(void) +{ + 3dac: 14d3 push r4-r6, r15 + + if(SysTick_1ms - c_rly.rly_ctrl_tick >= 50)// 50ms + 3dae: 1056 lrw r2, 0x200000b4 // 3e04 + 3db0: 1096 lrw r4, 0x2000024c // 3e08 + 3db2: 9260 ld.w r3, (r2, 0x0) + 3db4: 9421 ld.w r1, (r4, 0x4) + 3db6: 60c6 subu r3, r1 + 3db8: 3131 movi r1, 49 + 3dba: 64c4 cmphs r1, r3 + 3dbc: 0805 bt 0x3dc6 // 3dc6 + { + c_rly.rly_ctrl_tick = SysTick_1ms; + 3dbe: 9260 ld.w r3, (r2, 0x0) + 3dc0: b461 st.w r3, (r4, 0x4) + if( (c_rly.rly_zCnt >= 2)&&(c_rly.rly_zCnt <= 5)){ //有过零信号 + c_rly.rly_zero = 1; + c_rly.rly_zCnt = 0; + 3dc2: 3300 movi r3, 0 + 3dc4: a461 st.b r3, (r4, 0x1) + c_rly.rly_zCnt = 0; + } + } + + //测试 + c_rly.rly_zero = 0; + 3dc6: 3300 movi r3, 0 + 3dc8: a460 st.b r3, (r4, 0x0) + + if(c_rly.rly_control != 0x02) return; + 3dca: 8462 ld.b r3, (r4, 0x2) + 3dcc: 3b42 cmpnei r3, 2 + 3dce: 0812 bt 0x3df2 // 3df2 + 3dd0: 3500 movi r5, 0 + switch (i) { + case CARD_RLY: + if (c_rly.rly_state[CARD_RLY] == Control_ON) { + CTRL_RLY_ON; + }else if (c_rly.rly_state[CARD_RLY] == Control_OFF) { + CTRL_RLY_OFF; + 3dd2: 10cf lrw r6, 0x20000048 // 3e0c + switch (i) { + 3dd4: 3d40 cmpnei r5, 0 + 3dd6: 0808 bt 0x3de6 // 3de6 + if (c_rly.rly_state[CARD_RLY] == Control_ON) { + 3dd8: 8463 ld.b r3, (r4, 0x3) + 3dda: 3b41 cmpnei r3, 1 + 3ddc: 080c bt 0x3df4 // 3df4 + CTRL_RLY_ON; + 3dde: 3100 movi r1, 0 + 3de0: 9600 ld.w r0, (r6, 0x0) + 3de2: e3fff058 bsr 0x1e92 // 1e92 + for (U8_T i = 0; i < 5; i++) { + 3de6: 2500 addi r5, 1 + 3de8: 7554 zextb r5, r5 + 3dea: 3d45 cmpnei r5, 5 + 3dec: 0bf4 bt 0x3dd4 // 3dd4 + break; + } + + } + + c_rly.rly_control = 0x00; + 3dee: 3300 movi r3, 0 + 3df0: a462 st.b r3, (r4, 0x2) +} + 3df2: 1493 pop r4-r6, r15 + }else if (c_rly.rly_state[CARD_RLY] == Control_OFF) { + 3df4: 3b42 cmpnei r3, 2 + 3df6: 0bf8 bt 0x3de6 // 3de6 + CTRL_RLY_OFF; + 3df8: 3100 movi r1, 0 + 3dfa: 9600 ld.w r0, (r6, 0x0) + 3dfc: e3fff047 bsr 0x1e8a // 1e8a + 3e00: 07f3 br 0x3de6 // 3de6 + 3e02: 0000 bkpt + 3e04: 200000b4 .long 0x200000b4 + 3e08: 2000024c .long 0x2000024c + 3e0c: 20000048 .long 0x20000048 + +Disassembly of section .text.button_init: + +00003e10 : + * @param active_level: pressed GPIO level. + * @param button_id: the button id. + * @retval None + */ +void button_init(struct Button* handle, uint8_t(*pin_level)(uint8_t), uint8_t active_level, uint8_t button_id) +{ + 3e10: 14d4 push r4-r7, r15 + 3e12: 6dc7 mov r7, r1 + 3e14: 6d8b mov r6, r2 + memset(handle, 0, sizeof(struct Button)); + 3e16: 3100 movi r1, 0 + 3e18: 3230 movi r2, 48 +{ + 3e1a: 6d03 mov r4, r0 + 3e1c: 6d4f mov r5, r3 + memset(handle, 0, sizeof(struct Button)); + 3e1e: e3ffeda3 bsr 0x1964 // 1964 <__memset_fast> + handle->event = (uint8_t)NONE_PRESS; + 3e22: 3300 movi r3, 0 + 3e24: 2b6f subi r3, 112 + 3e26: a462 st.b r3, (r4, 0x2) + handle->hal_button_Level = pin_level; + 3e28: b4e2 st.w r7, (r4, 0x8) + handle->button_level = handle->hal_button_Level(button_id); + 3e2a: 6c17 mov r0, r5 + 3e2c: 7bdd jsr r7 + 3e2e: 8443 ld.b r2, (r4, 0x3) + 3e30: 337f movi r3, 127 + 3e32: 688c and r2, r3 + 3e34: 4007 lsli r0, r0, 7 + 3e36: 6c08 or r0, r2 + handle->active_level = active_level; + 3e38: 3201 movi r2, 1 + 3e3a: 6988 and r6, r2 + 3e3c: 7480 zextb r2, r0 + 3e3e: 46c6 lsli r6, r6, 6 + 3e40: 3a86 bclri r2, 6 + 3e42: 6c98 or r2, r6 + 3e44: a443 st.b r2, (r4, 0x3) + handle->button_id = button_id; + 3e46: a4a4 st.b r5, (r4, 0x4) +} + 3e48: 1494 pop r4-r7, r15 + +Disassembly of section .text.button_attach: + +00003e4a : + * @param cb: callback function. + * @retval None + */ +void button_attach(struct Button* handle, PressEvent event, BtnCallback cb) +{ + handle->cb[event] = cb; + 3e4a: 2102 addi r1, 3 + 3e4c: 4122 lsli r1, r1, 2 + 3e4e: 6040 addu r1, r0 + 3e50: b140 st.w r2, (r1, 0x0) +} + 3e52: 783c jmp r15 + +Disassembly of section .text.button_handler: + +00003e54 : + + + + +void button_handler(struct Button* handle) +{ + 3e54: 14d3 push r4-r6, r15 + 3e56: 6d03 mov r4, r0 + uint8_t read_gpio_level = handle->hal_button_Level(handle->button_id); + 3e58: 9462 ld.w r3, (r4, 0x8) + 3e5a: 8004 ld.b r0, (r0, 0x4) + 3e5c: 7bcd jsr r3 + + //ticks counter working.. + if((handle->state) > 0) handle->ticks++; + 3e5e: 8463 ld.b r3, (r4, 0x3) + 3e60: 433d lsli r1, r3, 29 + 3e62: 493d lsri r1, r1, 29 + 3e64: 3940 cmpnei r1, 0 + 3e66: 0c04 bf 0x3e6e // 3e6e + 3e68: 8c40 ld.h r2, (r4, 0x0) + 3e6a: 2200 addi r2, 1 + 3e6c: ac40 st.h r2, (r4, 0x0) + + /*------------button debounce handle---------------*/ + if(read_gpio_level != handle->button_level) { //not equal to prev one + 3e6e: 4b47 lsri r2, r3, 7 + 3e70: 640a cmpne r2, r0 + 3e72: 0c21 bf 0x3eb4 // 3eb4 + //continue read 3 times same new level change + if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) { + 3e74: 435a lsli r2, r3, 26 + 3e76: 4a5d lsri r2, r2, 29 + 3e78: 3507 movi r5, 7 + 3e7a: 2200 addi r2, 1 + 3e7c: 6894 and r2, r5 + 3e7e: 7488 zextb r2, r2 + 3e80: 6948 and r5, r2 + 3e82: 45c3 lsli r6, r5, 3 + 3e84: 3538 movi r5, 56 + 3e86: 68d5 andn r3, r5 + 3e88: 6d8c or r6, r3 + 3e8a: 3a02 cmphsi r2, 3 + 3e8c: a4c3 st.b r6, (r4, 0x3) + 3e8e: 0c09 bf 0x3ea0 // 3ea0 + handle->button_level = read_gpio_level; + 3e90: 4067 lsli r3, r0, 7 + 3e92: 327f movi r2, 127 + 3e94: 8403 ld.b r0, (r4, 0x3) + 3e96: 6808 and r0, r2 + 3e98: 6c0c or r0, r3 + handle->debounce_cnt = 0; + 3e9a: 7400 zextb r0, r0 + 3e9c: 6815 andn r0, r5 + 3e9e: a403 st.b r0, (r4, 0x3) + } else { //leved not change ,counter reset. + handle->debounce_cnt = 0; + } + + /*-----------------State machine-------------------*/ + switch (handle->state) { + 3ea0: 3941 cmpnei r1, 1 + 3ea2: 0c2f bf 0x3f00 // 3f00 + 3ea4: 3940 cmpnei r1, 0 + 3ea6: 0c0b bf 0x3ebc // 3ebc + 3ea8: 3945 cmpnei r1, 5 + 3eaa: 0c53 bf 0x3f50 // 3f50 +// Dbg_Println(DBG_BIT_SYS_STATUS,"key state long press release"); + handle->state = 0; //reset + } + break; + default: + handle->state = 0; //reset + 3eac: 8463 ld.b r3, (r4, 0x3) + 3eae: 3207 movi r2, 7 + 3eb0: 68c9 andn r3, r2 + 3eb2: 0420 br 0x3ef2 // 3ef2 + handle->debounce_cnt = 0; + 3eb4: 3238 movi r2, 56 + 3eb6: 68c9 andn r3, r2 + 3eb8: a463 st.b r3, (r4, 0x3) + 3eba: 07f3 br 0x3ea0 // 3ea0 + if(handle->button_level == handle->active_level) { //start press down + 3ebc: 8463 ld.b r3, (r4, 0x3) + 3ebe: 4359 lsli r2, r3, 25 + 3ec0: 4a5f lsri r2, r2, 31 + 3ec2: 4b67 lsri r3, r3, 7 + 3ec4: 648e cmpne r3, r2 + 3ec6: 8462 ld.b r3, (r4, 0x2) + handle->event = (uint8_t)PRESS_DOWN; + 3ec8: 320f movi r2, 15 + 3eca: 68c8 and r3, r2 + if(handle->button_level == handle->active_level) { //start press down + 3ecc: 0815 bt 0x3ef6 // 3ef6 + handle->event = (uint8_t)PRESS_DOWN; + 3ece: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_DOWN); + 3ed0: 9463 ld.w r3, (r4, 0xc) + 3ed2: 3b40 cmpnei r3, 0 + 3ed4: 0c03 bf 0x3eda // 3eda + 3ed6: 6c13 mov r0, r4 + 3ed8: 7bcd jsr r3 + handle->ticks = 0; + 3eda: 3300 movi r3, 0 + handle->repeat = 1; + 3edc: 8442 ld.b r2, (r4, 0x2) + handle->ticks = 0; + 3ede: ac60 st.h r3, (r4, 0x0) + handle->repeat = 1; + 3ee0: 330f movi r3, 15 + 3ee2: 688d andn r2, r3 + 3ee4: 3101 movi r1, 1 + 3ee6: 6c84 or r2, r1 + 3ee8: a442 st.b r2, (r4, 0x2) + handle->state = 1; + 3eea: 8463 ld.b r3, (r4, 0x3) + 3eec: 3207 movi r2, 7 + 3eee: 68c9 andn r3, r2 + 3ef0: 6cc4 or r3, r1 + handle->state = 0; //reset + 3ef2: a463 st.b r3, (r4, 0x3) + break; + } +} + 3ef4: 0405 br 0x3efe // 3efe + handle->event = (uint8_t)NONE_PRESS; + 3ef6: 3200 movi r2, 0 + 3ef8: 2a6f subi r2, 112 + 3efa: 6cc8 or r3, r2 + 3efc: a462 st.b r3, (r4, 0x2) +} + 3efe: 1493 pop r4-r6, r15 + if(handle->button_level != handle->active_level) { //released press up + 3f00: 8463 ld.b r3, (r4, 0x3) + 3f02: 4359 lsli r2, r3, 25 + 3f04: 4a5f lsri r2, r2, 31 + 3f06: 4b67 lsri r3, r3, 7 + 3f08: 648e cmpne r3, r2 + 3f0a: 0c0e bf 0x3f26 // 3f26 + handle->event = (uint8_t)PRESS_UP; + 3f0c: 8462 ld.b r3, (r4, 0x2) + 3f0e: 320f movi r2, 15 + 3f10: 68c8 and r3, r2 + 3f12: 3ba4 bseti r3, 4 + 3f14: a462 st.b r3, (r4, 0x2) + EVENT_CB(PRESS_UP); + 3f16: 9464 ld.w r3, (r4, 0x10) + 3f18: 3b40 cmpnei r3, 0 + 3f1a: 0c03 bf 0x3f20 // 3f20 + 3f1c: 6c13 mov r0, r4 + 3f1e: 7bcd jsr r3 + handle->ticks = 0; + 3f20: 3300 movi r3, 0 + 3f22: ac60 st.h r3, (r4, 0x0) + 3f24: 07c4 br 0x3eac // 3eac + } else if(handle->ticks > LONG_TICKS) { + 3f26: 8c40 ld.h r2, (r4, 0x0) + 3f28: 33c8 movi r3, 200 + 3f2a: 648c cmphs r3, r2 + 3f2c: 0be9 bt 0x3efe // 3efe + handle->event = (uint8_t)LONG_PRESS_START; + 3f2e: 8462 ld.b r3, (r4, 0x2) + 3f30: 320f movi r2, 15 + 3f32: 68c8 and r3, r2 + 3f34: 3ba4 bseti r3, 4 + 3f36: 3ba6 bseti r3, 6 + 3f38: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_START); + 3f3a: 9468 ld.w r3, (r4, 0x20) + 3f3c: 3b40 cmpnei r3, 0 + 3f3e: 0c03 bf 0x3f44 // 3f44 + 3f40: 6c13 mov r0, r4 + 3f42: 7bcd jsr r3 + handle->state = 5; + 3f44: 8463 ld.b r3, (r4, 0x3) + 3f46: 3207 movi r2, 7 + 3f48: 68c9 andn r3, r2 + 3f4a: 3ba0 bseti r3, 0 + 3f4c: 3ba2 bseti r3, 2 + 3f4e: 07d2 br 0x3ef2 // 3ef2 + if(handle->button_level == handle->active_level) { + 3f50: 8463 ld.b r3, (r4, 0x3) + 3f52: 4359 lsli r2, r3, 25 + 3f54: 4a5f lsri r2, r2, 31 + 3f56: 4b67 lsri r3, r3, 7 + 3f58: 648e cmpne r3, r2 + 3f5a: 0fd2 bf 0x3efe // 3efe + handle->event = (uint8_t)LONG_PRESS_RELEASE; + 3f5c: 8462 ld.b r3, (r4, 0x2) + 3f5e: 320f movi r2, 15 + 3f60: 68c8 and r3, r2 + 3f62: 3270 movi r2, 112 + 3f64: 6cc8 or r3, r2 + 3f66: a462 st.b r3, (r4, 0x2) + EVENT_CB(LONG_PRESS_RELEASE); + 3f68: 946a ld.w r3, (r4, 0x28) + 3f6a: 3b40 cmpnei r3, 0 + 3f6c: 0fa0 bf 0x3eac // 3eac + 3f6e: 6c13 mov r0, r4 + 3f70: 7bcd jsr r3 + 3f72: 079d br 0x3eac // 3eac + +Disassembly of section .text.button_start: + +00003f74 : + * @param handle: target handle strcut. + * @retval 0: succeed. -1: already exist. + */ +int button_start(struct Button* handle) +{ + struct Button* target = head_handle; + 3f74: 1068 lrw r3, 0x200000e8 // 3f94 + 3f76: 9320 ld.w r1, (r3, 0x0) + 3f78: 6c87 mov r2, r1 + while(target) { + 3f7a: 3a40 cmpnei r2, 0 + 3f7c: 0805 bt 0x3f86 // 3f86 + if(target == handle) return -1; //already exist. + target = target->next; + } + handle->next = head_handle; + 3f7e: b02b st.w r1, (r0, 0x2c) + head_handle = handle; + 3f80: b300 st.w r0, (r3, 0x0) + return 0; + 3f82: 3000 movi r0, 0 +} + 3f84: 783c jmp r15 + if(target == handle) return -1; //already exist. + 3f86: 640a cmpne r2, r0 + 3f88: 0c03 bf 0x3f8e // 3f8e + target = target->next; + 3f8a: 924b ld.w r2, (r2, 0x2c) + 3f8c: 07f7 br 0x3f7a // 3f7a + if(target == handle) return -1; //already exist. + 3f8e: 3000 movi r0, 0 + 3f90: 2800 subi r0, 1 + 3f92: 07f9 br 0x3f84 // 3f84 + 3f94: 200000e8 .long 0x200000e8 + +Disassembly of section .text.button_ticks: + +00003f98 : + * @brief background ticks, timer repeat invoking interval 5ms. + * @param None. + * @retval None + */ +void button_ticks() +{ + 3f98: 14d1 push r4, r15 + struct Button* target; + for(target=head_handle; target; target=target->next) { + 3f9a: 1066 lrw r3, 0x200000e8 // 3fb0 + 3f9c: 9380 ld.w r4, (r3, 0x0) + 3f9e: 3c40 cmpnei r4, 0 + 3fa0: 0802 bt 0x3fa4 // 3fa4 + button_handler(target); + } +} + 3fa2: 1491 pop r4, r15 + button_handler(target); + 3fa4: 6c13 mov r0, r4 + 3fa6: e3ffff57 bsr 0x3e54 // 3e54 + for(target=head_handle; target; target=target->next) { + 3faa: 948b ld.w r4, (r4, 0x2c) + 3fac: 07f9 br 0x3f9e // 3f9e + 3fae: 0000 bkpt + 3fb0: 200000e8 .long 0x200000e8 + +Disassembly of section .text.read_button_GPIO: + +00003fb4 : + +//////////////////////////////////////////////////////////////////////// + + +uint8_t read_button_GPIO(uint8_t button_id) +{ + 3fb4: 14d0 push r15 + uint8_t state = 0; + state = GPIO_Read_Status(GPIOA0,button_id); + 3fb6: 1064 lrw r3, 0x2000004c // 3fc4 +{ + 3fb8: 6c43 mov r1, r0 + state = GPIO_Read_Status(GPIOA0,button_id); + 3fba: 9300 ld.w r0, (r3, 0x0) + 3fbc: e3ffef7a bsr 0x1eb0 // 1eb0 + return state; + 3fc0: 1490 pop r15 + 3fc2: 0000 bkpt + 3fc4: 2000004c .long 0x2000004c + +Disassembly of section .text.TK_Sampling_prog: + +00003fc8 : + 3fc8: 14c4 push r4-r7 + 3fca: 1072 lrw r3, 0x20000054 // 4010 + 3fcc: 1012 lrw r0, 0x2000053e // 4014 + 3fce: 1093 lrw r4, 0x200003af // 4018 + 3fd0: 6d83 mov r6, r0 + 3fd2: 93a0 ld.w r5, (r3, 0x0) + 3fd4: 3300 movi r3, 0 + 3fd6: 4342 lsli r2, r3, 2 + 3fd8: 6094 addu r2, r5 + 3fda: 9220 ld.w r1, (r2, 0x0) + 3fdc: 4341 lsli r2, r3, 1 + 3fde: 6080 addu r2, r0 + 3fe0: 7445 zexth r1, r1 + 3fe2: aa20 st.h r1, (r2, 0x0) + 3fe4: 8440 ld.b r2, (r4, 0x0) + 3fe6: 3a41 cmpnei r2, 1 + 3fe8: 080f bt 0x4006 // 4006 + 3fea: 3300 movi r3, 0 + 3fec: 10ec lrw r7, 0x20000298 // 401c + 3fee: 4341 lsli r2, r3, 1 + 3ff0: 5e28 addu r1, r6, r2 + 3ff2: 8920 ld.h r1, (r1, 0x0) + 3ff4: 2300 addi r3, 1 + 3ff6: 7445 zexth r1, r1 + 3ff8: 609c addu r2, r7 + 3ffa: 3b51 cmpnei r3, 17 + 3ffc: aa20 st.h r1, (r2, 0x0) + 3ffe: 0bf8 bt 0x3fee // 3fee + 4000: 3300 movi r3, 0 + 4002: a460 st.b r3, (r4, 0x0) + 4004: 3311 movi r3, 17 + 4006: 2300 addi r3, 1 + 4008: 74cc zextb r3, r3 + 400a: 3b10 cmphsi r3, 17 + 400c: 0fe5 bf 0x3fd6 // 3fd6 + 400e: 1484 pop r4-r7 + 4010: 20000054 .long 0x20000054 + 4014: 2000053e .long 0x2000053e + 4018: 200003af .long 0x200003af + 401c: 20000298 .long 0x20000298 + +Disassembly of section .text.TKEYIntHandler: + +00004020 : + 4020: 1460 nie + 4022: 1462 ipush + 4024: 14d1 push r4, r15 + 4026: 109e lrw r4, 0x20000068 // 409c + 4028: 9460 ld.w r3, (r4, 0x0) + 402a: 3b40 cmpnei r3, 0 + 402c: 080b bt 0x4042 // 4042 + 402e: 3301 movi r3, 1 + 4030: b460 st.w r3, (r4, 0x0) + 4032: 107c lrw r3, 0x2000032c // 40a0 + 4034: 8360 ld.b r3, (r3, 0x0) + 4036: 3b41 cmpnei r3, 1 + 4038: 0805 bt 0x4042 // 4042 + 403a: e3ffffc7 bsr 0x3fc8 // 3fc8 + 403e: 3301 movi r3, 1 + 4040: a464 st.b r3, (r4, 0x4) + 4042: 1079 lrw r3, 0x20000058 // 40a4 + 4044: 3101 movi r1, 1 + 4046: 9360 ld.w r3, (r3, 0x0) + 4048: 934a ld.w r2, (r3, 0x28) + 404a: 6884 and r2, r1 + 404c: 3a40 cmpnei r2, 0 + 404e: 0c02 bf 0x4052 // 4052 + 4050: b32c st.w r1, (r3, 0x30) + 4052: 934a ld.w r2, (r3, 0x28) + 4054: 3102 movi r1, 2 + 4056: 6884 and r2, r1 + 4058: 3a40 cmpnei r2, 0 + 405a: 0c02 bf 0x405e // 405e + 405c: b32c st.w r1, (r3, 0x30) + 405e: 934a ld.w r2, (r3, 0x28) + 4060: 3104 movi r1, 4 + 4062: 6884 and r2, r1 + 4064: 3a40 cmpnei r2, 0 + 4066: 0c02 bf 0x406a // 406a + 4068: b32c st.w r1, (r3, 0x30) + 406a: 934a ld.w r2, (r3, 0x28) + 406c: 3108 movi r1, 8 + 406e: 6884 and r2, r1 + 4070: 3a40 cmpnei r2, 0 + 4072: 0c02 bf 0x4076 // 4076 + 4074: b32c st.w r1, (r3, 0x30) + 4076: 934a ld.w r2, (r3, 0x28) + 4078: 3110 movi r1, 16 + 407a: 6884 and r2, r1 + 407c: 3a40 cmpnei r2, 0 + 407e: 0c02 bf 0x4082 // 4082 + 4080: b32c st.w r1, (r3, 0x30) + 4082: 934a ld.w r2, (r3, 0x28) + 4084: 3120 movi r1, 32 + 4086: 6884 and r2, r1 + 4088: 3a40 cmpnei r2, 0 + 408a: 0c02 bf 0x408e // 408e + 408c: b32c st.w r1, (r3, 0x30) + 408e: d9ee2001 ld.w r15, (r14, 0x4) + 4092: 9880 ld.w r4, (r14, 0x0) + 4094: 1402 addi r14, r14, 8 + 4096: 1463 ipop + 4098: 1461 nir + 409a: 0000 bkpt + 409c: 20000068 .long 0x20000068 + 40a0: 2000032c .long 0x2000032c + 40a4: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +000040a8 : + 40a8: 14c2 push r4-r5 + 40aa: 3200 movi r2, 0 + 40ac: 3000 movi r0, 0 + 40ae: 1088 lrw r4, 0x200003cc // 40cc + 40b0: 3501 movi r5, 1 + 40b2: 3120 movi r1, 32 + 40b4: 9460 ld.w r3, (r4, 0x0) + 40b6: 70c9 lsr r3, r2 + 40b8: 68d4 and r3, r5 + 40ba: 3b40 cmpnei r3, 0 + 40bc: 0c02 bf 0x40c0 // 40c0 + 40be: 2000 addi r0, 1 + 40c0: 2200 addi r2, 1 + 40c2: 644a cmpne r2, r1 + 40c4: 0bf8 bt 0x40b4 // 40b4 + 40c6: 7400 zextb r0, r0 + 40c8: 1482 pop r4-r5 + 40ca: 0000 bkpt + 40cc: 200003cc .long 0x200003cc + +Disassembly of section .text.TK_Scan_Start: + +000040d0 : + 40d0: 1046 lrw r2, 0x20000068 // 40e8 + 40d2: 8264 ld.b r3, (r2, 0x4) + 40d4: 74cc zextb r3, r3 + 40d6: 3b41 cmpnei r3, 1 + 40d8: 0807 bt 0x40e6 // 40e6 + 40da: 1025 lrw r1, 0x20000058 // 40ec + 40dc: 9120 ld.w r1, (r1, 0x0) + 40de: b162 st.w r3, (r1, 0x8) + 40e0: 3300 movi r3, 0 + 40e2: b260 st.w r3, (r2, 0x0) + 40e4: a264 st.b r3, (r2, 0x4) + 40e6: 783c jmp r15 + 40e8: 20000068 .long 0x20000068 + 40ec: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +000040f0 : + 40f0: 14d4 push r4-r7, r15 + 40f2: 1425 subi r14, r14, 20 + 40f4: 1271 lrw r3, 0x20000118 // 4238 + 40f6: 8360 ld.b r3, (r3, 0x0) + 40f8: b860 st.w r3, (r14, 0x0) + 40fa: 3400 movi r4, 0 + 40fc: 1270 lrw r3, 0x200000ec // 423c + 40fe: 8360 ld.b r3, (r3, 0x0) + 4100: b861 st.w r3, (r14, 0x4) + 4102: 12f0 lrw r7, 0x20000342 // 4240 + 4104: 1270 lrw r3, 0x200000f5 // 4244 + 4106: 83a0 ld.b r5, (r3, 0x0) + 4108: 1270 lrw r3, 0x200000f4 // 4248 + 410a: 8360 ld.b r3, (r3, 0x0) + 410c: b862 st.w r3, (r14, 0x8) + 410e: 6d9f mov r6, r7 + 4110: 126f lrw r3, 0x2000053e // 424c + 4112: b863 st.w r3, (r14, 0xc) + 4114: 4461 lsli r3, r4, 1 + 4116: 9843 ld.w r2, (r14, 0xc) + 4118: 608c addu r2, r3 + 411a: 122e lrw r1, 0x20000298 // 4250 + 411c: 604c addu r1, r3 + 411e: 8a40 ld.h r2, (r2, 0x0) + 4120: 8920 ld.h r1, (r1, 0x0) + 4122: 6086 subu r2, r1 + 4124: 748b sexth r2, r2 + 4126: 5f2c addu r1, r7, r3 + 4128: a940 st.h r2, (r1, 0x0) + 412a: 8940 ld.h r2, (r1, 0x0) + 412c: 748b sexth r2, r2 + 412e: 3adf btsti r2, 31 + 4130: 1249 lrw r2, 0x200004fa // 4254 + 4132: 608c addu r2, r3 + 4134: 0c37 bf 0x41a2 // 41a2 + 4136: 3100 movi r1, 0 + 4138: aa20 st.h r1, (r2, 0x0) + 413a: 9840 ld.w r2, (r14, 0x0) + 413c: 3a01 cmphsi r2, 2 + 413e: 0c6d bf 0x4218 // 4218 + 4140: 4461 lsli r3, r4, 1 + 4142: 5e2c addu r1, r6, r3 + 4144: 1205 lrw r0, 0x20000146 // 4258 + 4146: 8940 ld.h r2, (r1, 0x0) + 4148: 60c0 addu r3, r0 + 414a: 748b sexth r2, r2 + 414c: 8b60 ld.h r3, (r3, 0x0) + 414e: 648d cmplt r3, r2 + 4150: 9840 ld.w r2, (r14, 0x0) + 4152: 7cc8 mult r3, r2 + 4154: 0c2a bf 0x41a8 // 41a8 + 4156: 8940 ld.h r2, (r1, 0x0) + 4158: 748b sexth r2, r2 + 415a: 64c9 cmplt r2, r3 + 415c: 0c26 bf 0x41a8 // 41a8 + 415e: 1240 lrw r2, 0x20000330 // 425c + 4160: 6090 addu r2, r4 + 4162: 8260 ld.b r3, (r2, 0x0) + 4164: 2300 addi r3, 1 + 4166: 74cc zextb r3, r3 + 4168: a260 st.b r3, (r2, 0x0) + 416a: 3100 movi r1, 0 + 416c: 117d lrw r3, 0x20000316 // 4260 + 416e: 60d0 addu r3, r4 + 4170: a320 st.b r1, (r3, 0x0) + 4172: 117d lrw r3, 0x200003f2 // 4264 + 4174: 60d0 addu r3, r4 + 4176: a320 st.b r1, (r3, 0x0) + 4178: 117c lrw r3, 0x2000046c // 4268 + 417a: 60d0 addu r3, r4 + 417c: a320 st.b r1, (r3, 0x0) + 417e: 8260 ld.b r3, (r2, 0x0) + 4180: 9821 ld.w r1, (r14, 0x4) + 4182: 64c4 cmphs r1, r3 + 4184: 081f bt 0x41c2 // 41c2 + 4186: 3d40 cmpnei r5, 0 + 4188: 0852 bt 0x422c // 422c + 418a: 1139 lrw r1, 0x20000328 // 426c + 418c: 9160 ld.w r3, (r1, 0x0) + 418e: 3b40 cmpnei r3, 0 + 4190: 0806 bt 0x419c // 419c + 4192: 9100 ld.w r0, (r1, 0x0) + 4194: 3301 movi r3, 1 + 4196: 70d0 lsl r3, r4 + 4198: 6cc0 or r3, r0 + 419a: b160 st.w r3, (r1, 0x0) + 419c: 3300 movi r3, 0 + 419e: a260 st.b r3, (r2, 0x0) + 41a0: 0411 br 0x41c2 // 41c2 + 41a2: 8920 ld.h r1, (r1, 0x0) + 41a4: 7445 zexth r1, r1 + 41a6: 07c9 br 0x4138 // 4138 + 41a8: 4441 lsli r2, r4, 1 + 41aa: 6098 addu r2, r6 + 41ac: 8a40 ld.h r2, (r2, 0x0) + 41ae: 748b sexth r2, r2 + 41b0: 648d cmplt r3, r2 + 41b2: 0c08 bf 0x41c2 // 41c2 + 41b4: 3300 movi r3, 0 + 41b6: 114e lrw r2, 0x20000328 // 426c + 41b8: 2b01 subi r3, 2 + 41ba: 9220 ld.w r1, (r2, 0x0) + 41bc: 70d3 rotl r3, r4 + 41be: 68c4 and r3, r1 + 41c0: b260 st.w r3, (r2, 0x0) + 41c2: 4441 lsli r2, r4, 1 + 41c4: 5e68 addu r3, r6, r2 + 41c6: 8b60 ld.h r3, (r3, 0x0) + 41c8: 74cf sexth r3, r3 + 41ca: b864 st.w r3, (r14, 0x10) + 41cc: 3105 movi r1, 5 + 41ce: 1163 lrw r3, 0x20000146 // 4258 + 41d0: 608c addu r2, r3 + 41d2: 8a00 ld.h r0, (r2, 0x0) + 41d4: 4002 lsli r0, r0, 2 + 41d6: e3fff6b1 bsr 0x2f38 // 2f38 <__divsi3> + 41da: 9864 ld.w r3, (r14, 0x10) + 41dc: 640d cmplt r3, r0 + 41de: 0c18 bf 0x420e // 420e + 41e0: 1140 lrw r2, 0x20000316 // 4260 + 41e2: 6090 addu r2, r4 + 41e4: 8260 ld.b r3, (r2, 0x0) + 41e6: 2300 addi r3, 1 + 41e8: 74cc zextb r3, r3 + 41ea: a260 st.b r3, (r2, 0x0) + 41ec: 3100 movi r1, 0 + 41ee: 107c lrw r3, 0x20000330 // 425c + 41f0: 60d0 addu r3, r4 + 41f2: a320 st.b r1, (r3, 0x0) + 41f4: 8260 ld.b r3, (r2, 0x0) + 41f6: 9822 ld.w r1, (r14, 0x8) + 41f8: 64c4 cmphs r1, r3 + 41fa: 080a bt 0x420e // 420e + 41fc: 3300 movi r3, 0 + 41fe: 103c lrw r1, 0x20000328 // 426c + 4200: 2b01 subi r3, 2 + 4202: 9100 ld.w r0, (r1, 0x0) + 4204: 70d3 rotl r3, r4 + 4206: 68c0 and r3, r0 + 4208: b160 st.w r3, (r1, 0x0) + 420a: 3300 movi r3, 0 + 420c: a260 st.b r3, (r2, 0x0) + 420e: 2400 addi r4, 1 + 4210: 3c51 cmpnei r4, 17 + 4212: 0b81 bt 0x4114 // 4114 + 4214: 1405 addi r14, r14, 20 + 4216: 1494 pop r4-r7, r15 + 4218: 60d8 addu r3, r6 + 421a: 4441 lsli r2, r4, 1 + 421c: 102f lrw r1, 0x20000146 // 4258 + 421e: 8b60 ld.h r3, (r3, 0x0) + 4220: 6084 addu r2, r1 + 4222: 74cf sexth r3, r3 + 4224: 8a40 ld.h r2, (r2, 0x0) + 4226: 64c9 cmplt r2, r3 + 4228: 0fcd bf 0x41c2 // 41c2 + 422a: 079a br 0x415e // 415e + 422c: 3d41 cmpnei r5, 1 + 422e: 0bb7 bt 0x419c // 419c + 4230: 102f lrw r1, 0x20000328 // 426c + 4232: 6cd7 mov r3, r5 + 4234: 9100 ld.w r0, (r1, 0x0) + 4236: 07b0 br 0x4196 // 4196 + 4238: 20000118 .long 0x20000118 + 423c: 200000ec .long 0x200000ec + 4240: 20000342 .long 0x20000342 + 4244: 200000f5 .long 0x200000f5 + 4248: 200000f4 .long 0x200000f4 + 424c: 2000053e .long 0x2000053e + 4250: 20000298 .long 0x20000298 + 4254: 200004fa .long 0x200004fa + 4258: 20000146 .long 0x20000146 + 425c: 20000330 .long 0x20000330 + 4260: 20000316 .long 0x20000316 + 4264: 200003f2 .long 0x200003f2 + 4268: 2000046c .long 0x2000046c + 426c: 20000328 .long 0x20000328 + +Disassembly of section .text.TK_overflow_predict: + +00004270 : + 4270: 14d4 push r4-r7, r15 + 4272: 1421 subi r14, r14, 4 + 4274: 11d9 lrw r6, 0x20000068 // 4358 + 4276: 8665 ld.b r3, (r6, 0x5) + 4278: 3b41 cmpnei r3, 1 + 427a: 085f bt 0x4338 // 4338 + 427c: 1158 lrw r2, 0x20000448 // 435c + 427e: 8260 ld.b r3, (r2, 0x0) + 4280: 2300 addi r3, 1 + 4282: 74cc zextb r3, r3 + 4284: a260 st.b r3, (r2, 0x0) + 4286: 8260 ld.b r3, (r2, 0x0) + 4288: 1136 lrw r1, 0x20000119 // 4360 + 428a: 8120 ld.b r1, (r1, 0x0) + 428c: 64c4 cmphs r1, r3 + 428e: 0855 bt 0x4338 // 4338 + 4290: 3300 movi r3, 0 + 4292: a260 st.b r3, (r2, 0x0) + 4294: 3500 movi r5, 0 + 4296: 11f4 lrw r7, 0x2000011c // 4364 + 4298: 2605 addi r6, 6 + 429a: 9760 ld.w r3, (r7, 0x0) + 429c: 70d5 lsr r3, r5 + 429e: 3201 movi r2, 1 + 42a0: 68c8 and r3, r2 + 42a2: 3b40 cmpnei r3, 0 + 42a4: 0c34 bf 0x430c // 430c + 42a6: 4581 lsli r4, r5, 1 + 42a8: 5e70 addu r3, r6, r4 + 42aa: 8b00 ld.h r0, (r3, 0x0) + 42ac: e3ffe97a bsr 0x15a0 // 15a0 <__floatunsidf> + 42b0: 6cc7 mov r3, r1 + 42b2: 3180 movi r1, 128 + 42b4: 6c83 mov r2, r0 + 42b6: 4137 lsli r1, r1, 23 + 42b8: 3000 movi r0, 0 + 42ba: e3ffdf7d bsr 0x1b4 // 1b4 <__GI_pow> + 42be: 116b lrw r3, 0x20000122 // 4368 + 42c0: 60d0 addu r3, r4 + 42c2: 8b60 ld.h r3, (r3, 0x0) + 42c4: 4364 lsli r3, r3, 4 + 42c6: 230e addi r3, 15 + 42c8: b860 st.w r3, (r14, 0x0) + 42ca: e3ffe523 bsr 0xd10 // d10 <__fixunsdfsi> + 42ce: 9860 ld.w r3, (r14, 0x0) + 42d0: 7cc0 mult r3, r0 + 42d2: 1147 lrw r2, 0x200004d8 // 436c + 42d4: 740d zexth r0, r3 + 42d6: 6090 addu r2, r4 + 42d8: 1166 lrw r3, 0x2000053e // 4370 + 42da: 60d0 addu r3, r4 + 42dc: aa00 st.h r0, (r2, 0x0) + 42de: 8b60 ld.h r3, (r3, 0x0) + 42e0: 8a00 ld.h r0, (r2, 0x0) + 42e2: 7401 zexth r0, r0 + 42e4: 325f movi r2, 95 + 42e6: 74cd zexth r3, r3 + 42e8: 7c08 mult r0, r2 + 42ea: 3164 movi r1, 100 + 42ec: b860 st.w r3, (r14, 0x0) + 42ee: e3fff625 bsr 0x2f38 // 2f38 <__divsi3> + 42f2: 9860 ld.w r3, (r14, 0x0) + 42f4: 64c1 cmplt r0, r3 + 42f6: 0c0b bf 0x430c // 430c + 42f8: 107f lrw r3, 0x200000f6 // 4374 + 42fa: 610c addu r4, r3 + 42fc: 8c60 ld.h r3, (r4, 0x0) + 42fe: 3b06 cmphsi r3, 7 + 4300: 0806 bt 0x430c // 430c + 4302: 2300 addi r3, 1 + 4304: ac60 st.h r3, (r4, 0x0) + 4306: 3201 movi r2, 1 + 4308: 107c lrw r3, 0x2000039d // 4378 + 430a: a340 st.b r2, (r3, 0x0) + 430c: 2500 addi r5, 1 + 430e: 3d51 cmpnei r5, 17 + 4310: 0bc5 bt 0x429a // 429a + 4312: 107a lrw r3, 0x2000039d // 4378 + 4314: 8340 ld.b r2, (r3, 0x0) + 4316: 3a41 cmpnei r2, 1 + 4318: 0810 bt 0x4338 // 4338 + 431a: 3200 movi r2, 0 + 431c: a340 st.b r2, (r3, 0x0) + 431e: 3200 movi r2, 0 + 4320: 1077 lrw r3, 0x20000058 // 437c + 4322: 1018 lrw r0, 0x2000046b // 4380 + 4324: 10b8 lrw r5, 0x200004a4 // 4384 + 4326: 10d4 lrw r6, 0x200000f6 // 4374 + 4328: 9360 ld.w r3, (r3, 0x0) + 432a: b342 st.w r2, (r3, 0x8) + 432c: 1077 lrw r3, 0x20000054 // 4388 + 432e: 9380 ld.w r4, (r3, 0x0) + 4330: 3300 movi r3, 0 + 4332: 8040 ld.b r2, (r0, 0x0) + 4334: 648c cmphs r3, r2 + 4336: 0c03 bf 0x433c // 433c + 4338: 1401 addi r14, r14, 4 + 433a: 1494 pop r4-r7, r15 + 433c: 5d4c addu r2, r5, r3 + 433e: 8240 ld.b r2, (r2, 0x0) + 4340: 4241 lsli r2, r2, 1 + 4342: 4322 lsli r1, r3, 2 + 4344: 6098 addu r2, r6 + 4346: 6050 addu r1, r4 + 4348: 8a40 ld.h r2, (r2, 0x0) + 434a: 91f2 ld.w r7, (r1, 0x48) + 434c: 4254 lsli r2, r2, 20 + 434e: 6c9c or r2, r7 + 4350: 2300 addi r3, 1 + 4352: b152 st.w r2, (r1, 0x48) + 4354: 74cc zextb r3, r3 + 4356: 07ee br 0x4332 // 4332 + 4358: 20000068 .long 0x20000068 + 435c: 20000448 .long 0x20000448 + 4360: 20000119 .long 0x20000119 + 4364: 2000011c .long 0x2000011c + 4368: 20000122 .long 0x20000122 + 436c: 200004d8 .long 0x200004d8 + 4370: 2000053e .long 0x2000053e + 4374: 200000f6 .long 0x200000f6 + 4378: 2000039d .long 0x2000039d + 437c: 20000058 .long 0x20000058 + 4380: 2000046b .long 0x2000046b + 4384: 200004a4 .long 0x200004a4 + 4388: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +0000438c : + 438c: 14c4 push r4-r7 + 438e: 1422 subi r14, r14, 8 + 4390: 1348 lrw r2, 0x200003ca // 4530 + 4392: 8260 ld.b r3, (r2, 0x0) + 4394: 2300 addi r3, 1 + 4396: 74cc zextb r3, r3 + 4398: a260 st.b r3, (r2, 0x0) + 439a: 8260 ld.b r3, (r2, 0x0) + 439c: 1326 lrw r1, 0x20000119 // 4534 + 439e: 8120 ld.b r1, (r1, 0x0) + 43a0: 644c cmphs r3, r1 + 43a2: 0cad bf 0x44fc // 44fc + 43a4: 3300 movi r3, 0 + 43a6: a260 st.b r3, (r2, 0x0) + 43a8: 1364 lrw r3, 0x20000328 // 4538 + 43aa: 9360 ld.w r3, (r3, 0x0) + 43ac: 3b40 cmpnei r3, 0 + 43ae: 08a7 bt 0x44fc // 44fc + 43b0: 1323 lrw r1, 0x20000342 // 453c + 43b2: 6dc7 mov r7, r1 + 43b4: b820 st.w r1, (r14, 0x0) + 43b6: 3200 movi r2, 0 + 43b8: 1362 lrw r3, 0x20000146 // 4540 + 43ba: 1323 lrw r1, 0x20000298 // 4544 + 43bc: 4201 lsli r0, r2, 1 + 43be: 9880 ld.w r4, (r14, 0x0) + 43c0: 6100 addu r4, r0 + 43c2: 8c80 ld.h r4, (r4, 0x0) + 43c4: 7513 sexth r4, r4 + 43c6: 3cdf btsti r4, 31 + 43c8: 0c27 bf 0x4416 // 4416 + 43ca: 13a0 lrw r5, 0x2000053e // 4548 + 43cc: 5980 addu r4, r1, r0 + 43ce: 6014 addu r0, r5 + 43d0: b881 st.w r4, (r14, 0x4) + 43d2: 8c80 ld.h r4, (r4, 0x0) + 43d4: 88c0 ld.h r6, (r0, 0x0) + 43d6: 7511 zexth r4, r4 + 43d8: 7599 zexth r6, r6 + 43da: 8ba0 ld.h r5, (r3, 0x0) + 43dc: 611a subu r4, r6 + 43de: 6551 cmplt r4, r5 + 43e0: 081b bt 0x4416 // 4416 + 43e2: 9881 ld.w r4, (r14, 0x4) + 43e4: 8c80 ld.h r4, (r4, 0x0) + 43e6: 8800 ld.h r0, (r0, 0x0) + 43e8: 7511 zexth r4, r4 + 43ea: 7401 zexth r0, r0 + 43ec: 5c01 subu r0, r4, r0 + 43ee: 4581 lsli r4, r5, 1 + 43f0: 6150 addu r5, r4 + 43f2: 6541 cmplt r0, r5 + 43f4: 0c11 bf 0x4416 // 4416 + 43f6: 1296 lrw r4, 0x2000046c // 454c + 43f8: 6108 addu r4, r2 + 43fa: 8400 ld.b r0, (r4, 0x0) + 43fc: 2000 addi r0, 1 + 43fe: 7400 zextb r0, r0 + 4400: a400 st.b r0, (r4, 0x0) + 4402: 1214 lrw r0, 0x20000088 // 4550 + 4404: 84a0 ld.b r5, (r4, 0x0) + 4406: 8008 ld.b r0, (r0, 0x8) + 4408: 6540 cmphs r0, r5 + 440a: 0806 bt 0x4416 // 4416 + 440c: 1212 lrw r0, 0x200003af // 4554 + 440e: 3501 movi r5, 1 + 4410: a0a0 st.b r5, (r0, 0x0) + 4412: 3000 movi r0, 0 + 4414: a400 st.b r0, (r4, 0x0) + 4416: 4201 lsli r0, r2, 1 + 4418: 5f80 addu r4, r7, r0 + 441a: 8c80 ld.h r4, (r4, 0x0) + 441c: 7513 sexth r4, r4 + 441e: 3c20 cmplti r4, 1 + 4420: 0870 bt 0x4500 // 4500 + 4422: 128a lrw r4, 0x2000053e // 4548 + 4424: 6100 addu r4, r0 + 4426: 59a0 addu r5, r1, r0 + 4428: 8c80 ld.h r4, (r4, 0x0) + 442a: 8da0 ld.h r5, (r5, 0x0) + 442c: 7555 zexth r5, r5 + 442e: 7511 zexth r4, r4 + 4430: 6116 subu r4, r5 + 4432: 8ba0 ld.h r5, (r3, 0x0) + 4434: 45a2 lsli r5, r5, 2 + 4436: 6551 cmplt r4, r5 + 4438: 0864 bt 0x4500 // 4500 + 443a: 1288 lrw r4, 0x200003f2 // 4558 + 443c: 6108 addu r4, r2 + 443e: 84a0 ld.b r5, (r4, 0x0) + 4440: 2500 addi r5, 1 + 4442: 7554 zextb r5, r5 + 4444: a4a0 st.b r5, (r4, 0x0) + 4446: 12a3 lrw r5, 0x20000088 // 4550 + 4448: 84c0 ld.b r6, (r4, 0x0) + 444a: 85a9 ld.b r5, (r5, 0x9) + 444c: 6594 cmphs r5, r6 + 444e: 0806 bt 0x445a // 445a + 4450: 12a1 lrw r5, 0x200003af // 4554 + 4452: 3601 movi r6, 1 + 4454: a5c0 st.b r6, (r5, 0x0) + 4456: 3500 movi r5, 0 + 4458: a4a0 st.b r5, (r4, 0x0) + 445a: 5f80 addu r4, r7, r0 + 445c: 8c80 ld.h r4, (r4, 0x0) + 445e: 7513 sexth r4, r4 + 4460: 3cdf btsti r4, 31 + 4462: 0c10 bf 0x4482 // 4482 + 4464: 11d9 lrw r6, 0x2000053e // 4548 + 4466: 59a0 addu r5, r1, r0 + 4468: 6180 addu r6, r0 + 446a: 8d80 ld.h r4, (r5, 0x0) + 446c: 8ec0 ld.h r6, (r6, 0x0) + 446e: 7599 zexth r6, r6 + 4470: 7511 zexth r4, r4 + 4472: 611a subu r4, r6 + 4474: 8bc0 ld.h r6, (r3, 0x0) + 4476: 6591 cmplt r4, r6 + 4478: 0c05 bf 0x4482 // 4482 + 447a: 8d80 ld.h r4, (r5, 0x0) + 447c: 2c00 subi r4, 1 + 447e: 7511 zexth r4, r4 + 4480: ad80 st.h r4, (r5, 0x0) + 4482: 5f80 addu r4, r7, r0 + 4484: 8c80 ld.h r4, (r4, 0x0) + 4486: 7513 sexth r4, r4 + 4488: 3cdf btsti r4, 31 + 448a: 0c11 bf 0x44ac // 44ac + 448c: 11cf lrw r6, 0x2000053e // 4548 + 448e: 59a0 addu r5, r1, r0 + 4490: 6180 addu r6, r0 + 4492: 8d80 ld.h r4, (r5, 0x0) + 4494: 8ec0 ld.h r6, (r6, 0x0) + 4496: 7599 zexth r6, r6 + 4498: 7511 zexth r4, r4 + 449a: 611a subu r4, r6 + 449c: 8bc0 ld.h r6, (r3, 0x0) + 449e: 4ec1 lsri r6, r6, 1 + 44a0: 6591 cmplt r4, r6 + 44a2: 0805 bt 0x44ac // 44ac + 44a4: 8d80 ld.h r4, (r5, 0x0) + 44a6: 2c01 subi r4, 2 + 44a8: 7511 zexth r4, r4 + 44aa: ad80 st.h r4, (r5, 0x0) + 44ac: 5fa0 addu r5, r7, r0 + 44ae: 8d80 ld.h r4, (r5, 0x0) + 44b0: 7513 sexth r4, r4 + 44b2: 3c20 cmplti r4, 1 + 44b4: 080c bt 0x44cc // 44cc + 44b6: 8da0 ld.h r5, (r5, 0x0) + 44b8: 8b80 ld.h r4, (r3, 0x0) + 44ba: 7557 sexth r5, r5 + 44bc: 4c81 lsri r4, r4, 1 + 44be: 6515 cmplt r5, r4 + 44c0: 0c06 bf 0x44cc // 44cc + 44c2: 59a0 addu r5, r1, r0 + 44c4: 8d80 ld.h r4, (r5, 0x0) + 44c6: 2400 addi r4, 1 + 44c8: 7511 zexth r4, r4 + 44ca: ad80 st.h r4, (r5, 0x0) + 44cc: 5fa0 addu r5, r7, r0 + 44ce: 8d80 ld.h r4, (r5, 0x0) + 44d0: 7513 sexth r4, r4 + 44d2: 3c20 cmplti r4, 1 + 44d4: 0810 bt 0x44f4 // 44f4 + 44d6: 8dc0 ld.h r6, (r5, 0x0) + 44d8: 759b sexth r6, r6 + 44da: 8b80 ld.h r4, (r3, 0x0) + 44dc: 6519 cmplt r6, r4 + 44de: 0c0b bf 0x44f4 // 44f4 + 44e0: 8da0 ld.h r5, (r5, 0x0) + 44e2: 7557 sexth r5, r5 + 44e4: 4c81 lsri r4, r4, 1 + 44e6: 6515 cmplt r5, r4 + 44e8: 0806 bt 0x44f4 // 44f4 + 44ea: 6004 addu r0, r1 + 44ec: 8880 ld.h r4, (r0, 0x0) + 44ee: 2401 addi r4, 2 + 44f0: 7511 zexth r4, r4 + 44f2: a880 st.h r4, (r0, 0x0) + 44f4: 2200 addi r2, 1 + 44f6: 3a51 cmpnei r2, 17 + 44f8: 2301 addi r3, 2 + 44fa: 0b61 bt 0x43bc // 43bc + 44fc: 1402 addi r14, r14, 8 + 44fe: 1484 pop r4-r7 + 4500: 5f80 addu r4, r7, r0 + 4502: 8c80 ld.h r4, (r4, 0x0) + 4504: 7513 sexth r4, r4 + 4506: 3cdf btsti r4, 31 + 4508: 0fa9 bf 0x445a // 445a + 450a: 10b0 lrw r5, 0x2000053e // 4548 + 450c: 5980 addu r4, r1, r0 + 450e: 6140 addu r5, r0 + 4510: 8c80 ld.h r4, (r4, 0x0) + 4512: 8da0 ld.h r5, (r5, 0x0) + 4514: 7555 zexth r5, r5 + 4516: 8bc0 ld.h r6, (r3, 0x0) + 4518: 7511 zexth r4, r4 + 451a: 6116 subu r4, r5 + 451c: 46a1 lsli r5, r6, 1 + 451e: 6158 addu r5, r6 + 4520: 6551 cmplt r4, r5 + 4522: 0b9c bt 0x445a // 445a + 4524: 108c lrw r4, 0x200003af // 4554 + 4526: 3501 movi r5, 1 + 4528: a4a0 st.b r5, (r4, 0x0) + 452a: 6c03 mov r0, r0 + 452c: 0797 br 0x445a // 445a + 452e: 0000 bkpt + 4530: 200003ca .long 0x200003ca + 4534: 20000119 .long 0x20000119 + 4538: 20000328 .long 0x20000328 + 453c: 20000342 .long 0x20000342 + 4540: 20000146 .long 0x20000146 + 4544: 20000298 .long 0x20000298 + 4548: 2000053e .long 0x2000053e + 454c: 2000046c .long 0x2000046c + 4550: 20000088 .long 0x20000088 + 4554: 200003af .long 0x200003af + 4558: 200003f2 .long 0x200003f2 + +Disassembly of section .text.TK_result_prog: + +0000455c : + 455c: 14d2 push r4-r5, r15 + 455e: 1050 lrw r2, 0x20000328 // 459c + 4560: 1090 lrw r4, 0x200003cc // 45a0 + 4562: 9260 ld.w r3, (r2, 0x0) + 4564: 3b40 cmpnei r3, 0 + 4566: 0c02 bf 0x456a // 456a + 4568: 9260 ld.w r3, (r2, 0x0) + 456a: b460 st.w r3, (r4, 0x0) + 456c: 9460 ld.w r3, (r4, 0x0) + 456e: 3b40 cmpnei r3, 0 + 4570: 10ad lrw r5, 0x200004a0 // 45a4 + 4572: 0c11 bf 0x4594 // 4594 + 4574: 9440 ld.w r2, (r4, 0x0) + 4576: 9560 ld.w r3, (r5, 0x0) + 4578: 64ca cmpne r2, r3 + 457a: 0c03 bf 0x4580 // 4580 + 457c: 9460 ld.w r3, (r4, 0x0) + 457e: b560 st.w r3, (r5, 0x0) + 4580: e3fffd94 bsr 0x40a8 // 40a8 + 4584: 1069 lrw r3, 0x20000120 // 45a8 + 4586: 8360 ld.b r3, (r3, 0x0) + 4588: 640c cmphs r3, r0 + 458a: 0804 bt 0x4592 // 4592 + 458c: 3300 movi r3, 0 + 458e: b460 st.w r3, (r4, 0x0) + 4590: b560 st.w r3, (r5, 0x0) + 4592: 1492 pop r4-r5, r15 + 4594: 1046 lrw r2, 0x200003c4 // 45ac + 4596: b560 st.w r3, (r5, 0x0) + 4598: b260 st.w r3, (r2, 0x0) + 459a: 07fc br 0x4592 // 4592 + 459c: 20000328 .long 0x20000328 + 45a0: 200003cc .long 0x200003cc + 45a4: 200004a0 .long 0x200004a0 + 45a8: 20000120 .long 0x20000120 + 45ac: 200003c4 .long 0x200003c4 + +Disassembly of section .text.CORETHandler: + +000045b0 : + 45b0: 1460 nie + 45b2: 1462 ipush + 45b4: 14d1 push r4, r15 + 45b6: 1077 lrw r3, 0x20000064 // 4610 + 45b8: 3400 movi r4, 0 + 45ba: 9360 ld.w r3, (r3, 0x0) + 45bc: b386 st.w r4, (r3, 0x18) + 45be: 1076 lrw r3, 0x2000032c // 4614 + 45c0: 8360 ld.b r3, (r3, 0x0) + 45c2: 3b41 cmpnei r3, 1 + 45c4: 0820 bt 0x4604 // 4604 + 45c6: e3fffd85 bsr 0x40d0 // 40d0 + 45ca: e3fffd93 bsr 0x40f0 // 40f0 + 45ce: e3fffe51 bsr 0x4270 // 4270 + 45d2: e3fffedd bsr 0x438c // 438c + 45d6: e3ffffc3 bsr 0x455c // 455c + 45da: 1070 lrw r3, 0x200003cc // 4618 + 45dc: 9360 ld.w r3, (r3, 0x0) + 45de: 3b40 cmpnei r3, 0 + 45e0: 0c12 bf 0x4604 // 4604 + 45e2: 106f lrw r3, 0x200000f0 // 461c + 45e4: 9340 ld.w r2, (r3, 0x0) + 45e6: 3a40 cmpnei r2, 0 + 45e8: 0c0e bf 0x4604 // 4604 + 45ea: 106e lrw r3, 0x200003c4 // 4620 + 45ec: 3064 movi r0, 100 + 45ee: 9320 ld.w r1, (r3, 0x0) + 45f0: 2100 addi r1, 1 + 45f2: b320 st.w r1, (r3, 0x0) + 45f4: 9320 ld.w r1, (r3, 0x0) + 45f6: 7c80 mult r2, r0 + 45f8: 6448 cmphs r2, r1 + 45fa: 0805 bt 0x4604 // 4604 + 45fc: 104a lrw r2, 0x200003af // 4624 + 45fe: 3101 movi r1, 1 + 4600: a220 st.b r1, (r2, 0x0) + 4602: b380 st.w r4, (r3, 0x0) + 4604: d9ee2001 ld.w r15, (r14, 0x4) + 4608: 9880 ld.w r4, (r14, 0x0) + 460a: 1402 addi r14, r14, 8 + 460c: 1463 ipop + 460e: 1461 nir + 4610: 20000064 .long 0x20000064 + 4614: 2000032c .long 0x2000032c + 4618: 200003cc .long 0x200003cc + 461c: 200000f0 .long 0x200000f0 + 4620: 200003c4 .long 0x200003c4 + 4624: 200003af .long 0x200003af + +Disassembly of section .text.std_clk_calib: + +00004628 : + 4628: 14d4 push r4-r7, r15 + 462a: 142d subi r14, r14, 52 + 462c: 3201 movi r2, 1 + 462e: 03ce lrw r6, 0x2000005c // 4870 + 4630: 6cc3 mov r3, r0 + 4632: dc4e000a st.b r2, (r14, 0xa) + 4636: 9640 ld.w r2, (r6, 0x0) + 4638: 9247 ld.w r2, (r2, 0x1c) + 463a: 7488 zextb r2, r2 + 463c: dc4e0009 st.b r2, (r14, 0x9) + 4640: d84e0009 ld.b r2, (r14, 0x9) + 4644: 3a40 cmpnei r2, 0 + 4646: 0c08 bf 0x4656 // 4656 + 4648: d84e0009 ld.b r2, (r14, 0x9) + 464c: 3a42 cmpnei r2, 2 + 464e: 0c04 bf 0x4656 // 4656 + 4650: 3000 movi r0, 0 + 4652: 140d addi r14, r14, 52 + 4654: 1494 pop r4-r7, r15 + 4656: 0397 lrw r4, 0x2000000c // 4874 + 4658: 3209 movi r2, 9 + 465a: 9400 ld.w r0, (r4, 0x0) + 465c: 3b40 cmpnei r3, 0 + 465e: b041 st.w r2, (r0, 0x4) + 4660: 0857 bt 0x470e // 470e + 4662: 3307 movi r3, 7 + 4664: dc6e000b st.b r3, (r14, 0xb) + 4668: 037b lrw r3, 0x2dc6c00 // 4878 + 466a: b863 st.w r3, (r14, 0xc) + 466c: 3380 movi r3, 128 + 466e: 4362 lsli r3, r3, 2 + 4670: b867 st.w r3, (r14, 0x1c) + 4672: d86e000b ld.b r3, (r14, 0xb) + 4676: 74cc zextb r3, r3 + 4678: b062 st.w r3, (r0, 0x8) + 467a: 037e lrw r3, 0xffff // 487c + 467c: b063 st.w r3, (r0, 0xc) + 467e: 3201 movi r2, 1 + 4680: 3101 movi r1, 1 + 4682: 03bf lrw r5, 0x20000014 // 4880 + 4684: e3ffec74 bsr 0x1f6c // 1f6c + 4688: 95e0 ld.w r7, (r5, 0x0) + 468a: 137f lrw r3, 0xbe9c0005 // 4884 + 468c: b760 st.w r3, (r7, 0x0) + 468e: 135f lrw r2, 0x30010 // 4888 + 4690: 3300 movi r3, 0 + 4692: b762 st.w r3, (r7, 0x8) + 4694: b743 st.w r2, (r7, 0xc) + 4696: 32d8 movi r2, 216 + 4698: b745 st.w r2, (r7, 0x14) + 469a: 974f ld.w r2, (r7, 0x3c) + 469c: 3aa2 bseti r2, 2 + 469e: b74f st.w r2, (r7, 0x3c) + 46a0: 9803 ld.w r0, (r14, 0xc) + 46a2: d82e000b ld.b r1, (r14, 0xb) + 46a6: 327d movi r2, 125 + 46a8: 2100 addi r1, 1 + 46aa: 7c48 mult r1, r2 + 46ac: b861 st.w r3, (r14, 0x4) + 46ae: e3fff457 bsr 0x2f5c // 2f5c <__udivsi3> + 46b2: b804 st.w r0, (r14, 0x10) + 46b4: 32fa movi r2, 250 + 46b6: 9824 ld.w r1, (r14, 0x10) + 46b8: 4242 lsli r2, r2, 2 + 46ba: 6448 cmphs r2, r1 + 46bc: 0bca bt 0x4650 // 4650 + 46be: 9844 ld.w r2, (r14, 0x10) + 46c0: 3178 movi r1, 120 + 46c2: 9804 ld.w r0, (r14, 0x10) + 46c4: b840 st.w r2, (r14, 0x0) + 46c6: e3fff44b bsr 0x2f5c // 2f5c <__udivsi3> + 46ca: 9840 ld.w r2, (r14, 0x0) + 46cc: 6082 subu r2, r0 + 46ce: b845 st.w r2, (r14, 0x14) + 46d0: 9804 ld.w r0, (r14, 0x10) + 46d2: 3178 movi r1, 120 + 46d4: 9844 ld.w r2, (r14, 0x10) + 46d6: b840 st.w r2, (r14, 0x0) + 46d8: e3fff442 bsr 0x2f5c // 2f5c <__udivsi3> + 46dc: 9840 ld.w r2, (r14, 0x0) + 46de: 6008 addu r0, r2 + 46e0: b806 st.w r0, (r14, 0x18) + 46e2: c0807020 psrclr ie + 46e6: 9640 ld.w r2, (r6, 0x0) + 46e8: 9254 ld.w r2, (r2, 0x50) + 46ea: b848 st.w r2, (r14, 0x20) + 46ec: 9861 ld.w r3, (r14, 0x4) + 46ee: 9440 ld.w r2, (r4, 0x0) + 46f0: b260 st.w r3, (r2, 0x0) + 46f2: b761 st.w r3, (r7, 0x4) + 46f4: d86e000a ld.b r3, (r14, 0xa) + 46f8: 3b40 cmpnei r3, 0 + 46fa: 083e bt 0x4776 // 4776 + 46fc: e3ffebea bsr 0x1ed0 // 1ed0 + 4700: 9400 ld.w r0, (r4, 0x0) + 4702: e3ffec0b bsr 0x1f18 // 1f18 + 4706: c1807420 psrset ee, ie + 470a: 3001 movi r0, 1 + 470c: 07a3 br 0x4652 // 4652 + 470e: 3b41 cmpnei r3, 1 + 4710: 0806 bt 0x471c // 471c + 4712: 3303 movi r3, 3 + 4714: dc6e000b st.b r3, (r14, 0xb) + 4718: 127d lrw r3, 0x16e3600 // 488c + 471a: 07a8 br 0x466a // 466a + 471c: 3b42 cmpnei r3, 2 + 471e: 0806 bt 0x472a // 472a + 4720: 3301 movi r3, 1 + 4722: dc6e000b st.b r3, (r14, 0xb) + 4726: 127b lrw r3, 0xb71b00 // 4890 + 4728: 07a1 br 0x466a // 466a + 472a: 3b43 cmpnei r3, 3 + 472c: 0806 bt 0x4738 // 4738 + 472e: 3300 movi r3, 0 + 4730: dc6e000b st.b r3, (r14, 0xb) + 4734: 1278 lrw r3, 0x5b8d80 // 4894 + 4736: 079a br 0x466a // 466a + 4738: 3b44 cmpnei r3, 4 + 473a: 0809 bt 0x474c // 474c + 473c: 3300 movi r3, 0 + 473e: dc6e000b st.b r3, (r14, 0xb) + 4742: 1276 lrw r3, 0x54c720 // 4898 + 4744: b863 st.w r3, (r14, 0xc) + 4746: 3380 movi r3, 128 + 4748: 4369 lsli r3, r3, 9 + 474a: 0793 br 0x4670 // 4670 + 474c: 3b45 cmpnei r3, 5 + 474e: 0806 bt 0x475a // 475a + 4750: 3300 movi r3, 0 + 4752: dc6e000b st.b r3, (r14, 0xb) + 4756: 1272 lrw r3, 0x3ffed0 // 489c + 4758: 07f6 br 0x4744 // 4744 + 475a: 3b46 cmpnei r3, 6 + 475c: 0806 bt 0x4768 // 4768 + 475e: 3300 movi r3, 0 + 4760: dc6e000b st.b r3, (r14, 0xb) + 4764: 126f lrw r3, 0x1fff68 // 48a0 + 4766: 07ef br 0x4744 // 4744 + 4768: 3b47 cmpnei r3, 7 + 476a: 0b84 bt 0x4672 // 4672 + 476c: 3300 movi r3, 0 + 476e: dc6e000b st.b r3, (r14, 0xb) + 4772: 126d lrw r3, 0x1ffb8 // 48a4 + 4774: 07e8 br 0x4744 // 4744 + 4776: 9560 ld.w r3, (r5, 0x0) + 4778: 3101 movi r1, 1 + 477a: 9440 ld.w r2, (r4, 0x0) + 477c: b321 st.w r1, (r3, 0x4) + 477e: b220 st.w r1, (r2, 0x0) + 4780: 3100 movi r1, 0 + 4782: b327 st.w r1, (r3, 0x1c) + 4784: 3004 movi r0, 4 + 4786: b225 st.w r1, (r2, 0x14) + 4788: 932e ld.w r1, (r3, 0x38) + 478a: 6840 and r1, r0 + 478c: 3940 cmpnei r1, 0 + 478e: 0ffd bf 0x4788 // 4788 + 4790: 9225 ld.w r1, (r2, 0x14) + 4792: b82a st.w r1, (r14, 0x28) + 4794: 3100 movi r1, 0 + 4796: b310 st.w r0, (r3, 0x40) + 4798: b327 st.w r1, (r3, 0x1c) + 479a: 3004 movi r0, 4 + 479c: b225 st.w r1, (r2, 0x14) + 479e: 932e ld.w r1, (r3, 0x38) + 47a0: 6840 and r1, r0 + 47a2: 3940 cmpnei r1, 0 + 47a4: 0ffd bf 0x479e // 479e + 47a6: 9225 ld.w r1, (r2, 0x14) + 47a8: b82b st.w r1, (r14, 0x2c) + 47aa: 3100 movi r1, 0 + 47ac: b310 st.w r0, (r3, 0x40) + 47ae: b327 st.w r1, (r3, 0x1c) + 47b0: 3004 movi r0, 4 + 47b2: b225 st.w r1, (r2, 0x14) + 47b4: 932e ld.w r1, (r3, 0x38) + 47b6: 6840 and r1, r0 + 47b8: 3940 cmpnei r1, 0 + 47ba: 0ffd bf 0x47b4 // 47b4 + 47bc: 9225 ld.w r1, (r2, 0x14) + 47be: b82c st.w r1, (r14, 0x30) + 47c0: b310 st.w r0, (r3, 0x40) + 47c2: 982b ld.w r1, (r14, 0x2c) + 47c4: 980c ld.w r0, (r14, 0x30) + 47c6: 6040 addu r1, r0 + 47c8: b829 st.w r1, (r14, 0x24) + 47ca: 9829 ld.w r1, (r14, 0x24) + 47cc: 4921 lsri r1, r1, 1 + 47ce: b829 st.w r1, (r14, 0x24) + 47d0: 3100 movi r1, 0 + 47d2: b321 st.w r1, (r3, 0x4) + 47d4: b220 st.w r1, (r2, 0x0) + 47d6: b327 st.w r1, (r3, 0x1c) + 47d8: b225 st.w r1, (r2, 0x14) + 47da: d86e0009 ld.b r3, (r14, 0x9) + 47de: 3b42 cmpnei r3, 2 + 47e0: 9849 ld.w r2, (r14, 0x24) + 47e2: 082c bt 0x483a // 483a + 47e4: 1171 lrw r3, 0x7ff // 48a8 + 47e6: 648c cmphs r3, r2 + 47e8: 0c03 bf 0x47ee // 47ee + 47ea: 3300 movi r3, 0 + 47ec: 040f br 0x480a // 480a + 47ee: 9849 ld.w r2, (r14, 0x24) + 47f0: 9866 ld.w r3, (r14, 0x18) + 47f2: 648c cmphs r3, r2 + 47f4: 080e bt 0x4810 // 4810 + 47f6: 9868 ld.w r3, (r14, 0x20) + 47f8: 9847 ld.w r2, (r14, 0x1c) + 47fa: 60ca subu r3, r2 + 47fc: b868 st.w r3, (r14, 0x20) + 47fe: 32fe movi r2, 254 + 4800: 9868 ld.w r3, (r14, 0x20) + 4802: 4248 lsli r2, r2, 8 + 4804: 68c8 and r3, r2 + 4806: 3b40 cmpnei r3, 0 + 4808: 0812 bt 0x482c // 482c + 480a: dc6e000a st.b r3, (r14, 0xa) + 480e: 0721 br 0x4650 // 4650 + 4810: 9849 ld.w r2, (r14, 0x24) + 4812: 9865 ld.w r3, (r14, 0x14) + 4814: 64c8 cmphs r2, r3 + 4816: 0829 bt 0x4868 // 4868 + 4818: 9868 ld.w r3, (r14, 0x20) + 481a: 9847 ld.w r2, (r14, 0x1c) + 481c: 60c8 addu r3, r2 + 481e: b868 st.w r3, (r14, 0x20) + 4820: 33fe movi r3, 254 + 4822: 9848 ld.w r2, (r14, 0x20) + 4824: 4368 lsli r3, r3, 8 + 4826: 688c and r2, r3 + 4828: 64ca cmpne r2, r3 + 482a: 0fe0 bf 0x47ea // 47ea + 482c: 9660 ld.w r3, (r6, 0x0) + 482e: 9848 ld.w r2, (r14, 0x20) + 4830: b354 st.w r2, (r3, 0x50) + 4832: 3001 movi r0, 1 + 4834: e3ffedd6 bsr 0x23e0 // 23e0 + 4838: 075e br 0x46f4 // 46f4 + 483a: 9866 ld.w r3, (r14, 0x18) + 483c: 648c cmphs r3, r2 + 483e: 0809 bt 0x4850 // 4850 + 4840: 9868 ld.w r3, (r14, 0x20) + 4842: 9847 ld.w r2, (r14, 0x1c) + 4844: 60ca subu r3, r2 + 4846: b868 st.w r3, (r14, 0x20) + 4848: 32ff movi r2, 255 + 484a: 9868 ld.w r3, (r14, 0x20) + 484c: 4250 lsli r2, r2, 16 + 484e: 07db br 0x4804 // 4804 + 4850: 9849 ld.w r2, (r14, 0x24) + 4852: 9865 ld.w r3, (r14, 0x14) + 4854: 64c8 cmphs r2, r3 + 4856: 0809 bt 0x4868 // 4868 + 4858: 9868 ld.w r3, (r14, 0x20) + 485a: 9847 ld.w r2, (r14, 0x1c) + 485c: 60c8 addu r3, r2 + 485e: b868 st.w r3, (r14, 0x20) + 4860: 33ff movi r3, 255 + 4862: 9848 ld.w r2, (r14, 0x20) + 4864: 4370 lsli r3, r3, 16 + 4866: 07e0 br 0x4826 // 4826 + 4868: 3300 movi r3, 0 + 486a: dc6e000a st.b r3, (r14, 0xa) + 486e: 07e2 br 0x4832 // 4832 + 4870: 2000005c .long 0x2000005c + 4874: 2000000c .long 0x2000000c + 4878: 02dc6c00 .long 0x02dc6c00 + 487c: 0000ffff .long 0x0000ffff + 4880: 20000014 .long 0x20000014 + 4884: be9c0005 .long 0xbe9c0005 + 4888: 00030010 .long 0x00030010 + 488c: 016e3600 .long 0x016e3600 + 4890: 00b71b00 .long 0x00b71b00 + 4894: 005b8d80 .long 0x005b8d80 + 4898: 0054c720 .long 0x0054c720 + 489c: 003ffed0 .long 0x003ffed0 + 48a0: 001fff68 .long 0x001fff68 + 48a4: 0001ffb8 .long 0x0001ffb8 + 48a8: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250219.map b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250219.map new file mode 100644 index 0000000..07258bb --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V02_20250219.map @@ -0,0 +1,2247 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 319808 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 166 + Section header string table index: 163 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 001a50 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001a50 002a50 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001a88 002a88 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001afc 002afc 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001b48 002b48 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001b78 002b78 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c00 002c00 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c28 002c28 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001c64 002c64 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001c78 002c78 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001c90 002c90 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001cb0 002cb0 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001ccc 002ccc 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001ce8 002ce8 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 00001d28 002d28 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 00001d34 002d34 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 00001d58 002d58 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 00001d88 002d88 0000e0 00 AX 0 0 4 + [19] .text.GPIO_PullHi PROGBITS 00001e68 002e68 000014 00 AX 0 0 2 + [20] .text.GPIO_DriveS PROGBITS 00001e7c 002e7c 00000e 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 00001e8a 002e8a 000008 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00001e92 002e92 000008 00 AX 0 0 2 + [23] .text.GPIO_Revers PROGBITS 00001e9a 002e9a 000016 00 AX 0 0 2 + [24] .text.GPIO_Read_S PROGBITS 00001eb0 002eb0 000010 00 AX 0 0 2 + [25] .text.GPIO_Read_O PROGBITS 00001ec0 002ec0 000010 00 AX 0 0 2 + [26] .text.LPT_Soft_Re PROGBITS 00001ed0 002ed0 000014 00 AX 0 0 4 + [27] .text.WWDT_CNT_Lo PROGBITS 00001ee4 002ee4 000010 00 AX 0 0 4 + [28] .text.BT_DeInit PROGBITS 00001ef4 002ef4 00001c 00 AX 0 0 2 + [29] .text.BT_Start PROGBITS 00001f10 002f10 000008 00 AX 0 0 2 + [30] .text.BT_Soft_Res PROGBITS 00001f18 002f18 00000a 00 AX 0 0 2 + [31] .text.BT_Configur PROGBITS 00001f22 002f22 000018 00 AX 0 0 2 + [32] .text.BT_ControlS PROGBITS 00001f3a 002f3a 00002c 00 AX 0 0 2 + [33] .text.BT_Period_C PROGBITS 00001f66 002f66 000006 00 AX 0 0 2 + [34] .text.BT_ConfigIn PROGBITS 00001f6c 002f6c 000012 00 AX 0 0 2 + [35] .text.BT1_INT_ENA PROGBITS 00001f80 002f80 000010 00 AX 0 0 4 + [36] .text.GPT_IO_Init PROGBITS 00001f90 002f90 0000a0 00 AX 0 0 4 + [37] .text.GPT_Configu PROGBITS 00002030 003030 000014 00 AX 0 0 4 + [38] .text.GPT_WaveCtr PROGBITS 00002044 003044 000044 00 AX 0 0 4 + [39] .text.GPT_WaveLoa PROGBITS 00002088 003088 000014 00 AX 0 0 4 + [40] .text.GPT_WaveOut PROGBITS 0000209c 00309c 0000b4 00 AX 0 0 4 + [41] .text.GPT_Start PROGBITS 00002150 003150 000010 00 AX 0 0 4 + [42] .text.GPT_Period_ PROGBITS 00002160 003160 000010 00 AX 0 0 4 + [43] .text.GPT_ConfigI PROGBITS 00002170 003170 00001c 00 AX 0 0 4 + [44] .text.UART0_DeIni PROGBITS 0000218c 00318c 000018 00 AX 0 0 4 + [45] .text.UART1_DeIni PROGBITS 000021a4 0031a4 000018 00 AX 0 0 4 + [46] .text.UART2_DeIni PROGBITS 000021bc 0031bc 000018 00 AX 0 0 4 + [47] .text.UART0_Int_E PROGBITS 000021d4 0031d4 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 000021f0 0031f0 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 0000220c 00320c 0000ec 00 AX 0 0 4 + [50] .text.UARTInit PROGBITS 000022f8 0032f8 000010 00 AX 0 0 4 + [51] .text.UARTInitRxT PROGBITS 00002308 003308 000010 00 AX 0 0 4 + [52] .text.UARTTransmi PROGBITS 00002318 003318 00001e 00 AX 0 0 2 + [53] .text.EPT_Stop PROGBITS 00002338 003338 000028 00 AX 0 0 4 + [54] .text.startup.mai PROGBITS 00002360 003360 000080 00 AX 0 0 4 + [55] .text.delay_nms PROGBITS 000023e0 0033e0 00002c 00 AX 0 0 2 + [56] .text.GPT0_CONFIG PROGBITS 0000240c 00340c 000094 00 AX 0 0 4 + [57] .text.BT_CONFIG PROGBITS 000024a0 0034a0 000060 00 AX 0 0 4 + [58] .text.SYSCON_CONF PROGBITS 00002500 003500 000062 00 AX 0 0 2 + [59] .text.APT32F102_i PROGBITS 00002564 003564 000050 00 AX 0 0 4 + [60] .text.SYSCONIntHa PROGBITS 000025b4 0035b4 0000f0 00 AX 0 0 4 + [61] .text.IFCIntHandl PROGBITS 000026a4 0036a4 000068 00 AX 0 0 4 + [62] .text.ADCIntHandl PROGBITS 0000270c 00370c 000068 00 AX 0 0 4 + [63] .text.EPT0IntHand PROGBITS 00002774 003774 0001ac 00 AX 0 0 4 + [64] .text.WWDTHandler PROGBITS 00002920 003920 000034 00 AX 0 0 4 + [65] .text.GPT0IntHand PROGBITS 00002954 003954 000080 00 AX 0 0 4 + [66] .text.RTCIntHandl PROGBITS 000029d4 0039d4 000070 00 AX 0 0 4 + [67] .text.UART0IntHan PROGBITS 00002a44 003a44 00003c 00 AX 0 0 4 + [68] .text.UART1IntHan PROGBITS 00002a80 003a80 00003c 00 AX 0 0 4 + [69] .text.UART2IntHan PROGBITS 00002abc 003abc 000094 00 AX 0 0 4 + [70] .text.SPI0IntHand PROGBITS 00002b50 003b50 0000e8 00 AX 0 0 4 + [71] .text.SIO0IntHand PROGBITS 00002c38 003c38 000054 00 AX 0 0 4 + [72] .text.EXI0IntHand PROGBITS 00002c8c 003c8c 000030 00 AX 0 0 4 + [73] .text.EXI1IntHand PROGBITS 00002cbc 003cbc 000030 00 AX 0 0 4 + [74] .text.EXI2to3IntH PROGBITS 00002cec 003cec 000048 00 AX 0 0 4 + [75] .text.EXI4to9IntH PROGBITS 00002d34 003d34 00005c 00 AX 0 0 4 + [76] .text.EXI10to15In PROGBITS 00002d90 003d90 000060 00 AX 0 0 4 + [77] .text.LPTIntHandl PROGBITS 00002df0 003df0 000034 00 AX 0 0 4 + [78] .text.BT0IntHandl PROGBITS 00002e24 003e24 00004c 00 AX 0 0 4 + [79] .text.BT1IntHandl PROGBITS 00002e70 003e70 000064 00 AX 0 0 4 + [80] .text.PriviledgeV PROGBITS 00002ed4 003ed4 000002 00 AX 0 0 2 + [81] .text.PendTrapHan PROGBITS 00002ed6 003ed6 000008 00 AX 0 0 2 + [82] .text.Trap3Handle PROGBITS 00002ede 003ede 000008 00 AX 0 0 2 + [83] .text.Trap2Handle PROGBITS 00002ee6 003ee6 000008 00 AX 0 0 2 + [84] .text.Trap1Handle PROGBITS 00002eee 003eee 000008 00 AX 0 0 2 + [85] .text.Trap0Handle PROGBITS 00002ef6 003ef6 000008 00 AX 0 0 2 + [86] .text.UnrecExecpH PROGBITS 00002efe 003efe 000008 00 AX 0 0 2 + [87] .text.BreakPointH PROGBITS 00002f06 003f06 000008 00 AX 0 0 2 + [88] .text.AccessErrHa PROGBITS 00002f0e 003f0e 000008 00 AX 0 0 2 + [89] .text.IllegalInst PROGBITS 00002f16 003f16 000008 00 AX 0 0 2 + [90] .text.MisalignedH PROGBITS 00002f1e 003f1e 000008 00 AX 0 0 2 + [91] .text.CNTAIntHand PROGBITS 00002f26 003f26 000008 00 AX 0 0 2 + [92] .text.I2CIntHandl PROGBITS 00002f2e 003f2e 000008 00 AX 0 0 2 + [93] .text.__divsi3 PROGBITS 00002f38 003f38 000024 00 AX 0 0 4 + [94] .text.__udivsi3 PROGBITS 00002f5c 003f5c 000024 00 AX 0 0 4 + [95] .text.CK_CPU_EnAl PROGBITS 00002f80 003f80 000006 00 AX 0 0 2 + [96] .text.UARTx_Init PROGBITS 00002f88 003f88 0000d8 00 AX 0 0 4 + [97] .text.UART2_RecvI PROGBITS 00003060 004060 000064 00 AX 0 0 4 + [98] .text.UART2_TASK PROGBITS 000030c4 0040c4 000094 00 AX 0 0 4 + [99] .text.Dbg_Println PROGBITS 00003158 004158 00000c 00 AX 0 0 2 + [100] .text.RC522_Delay PROGBITS 00003164 004164 000012 00 AX 0 0 2 + [101] .text.RC522_ReadW PROGBITS 00003178 004178 000054 00 AX 0 0 4 + [102] .text.RC522_ReadR PROGBITS 000031cc 0041cc 000038 00 AX 0 0 4 + [103] .text.RC522_Write PROGBITS 00003204 004204 000030 00 AX 0 0 4 + [104] .text.RC522_PcdRe PROGBITS 00003234 004234 00004c 00 AX 0 0 2 + [105] .text.RC522_SetBi PROGBITS 00003280 004280 000018 00 AX 0 0 2 + [106] .text.RC522_PcdAn PROGBITS 00003298 004298 00001a 00 AX 0 0 2 + [107] .text.RC522_Clear PROGBITS 000032b2 0042b2 000016 00 AX 0 0 2 + [108] .text.RC522_PcdAn PROGBITS 000032c8 0042c8 00000c 00 AX 0 0 2 + [109] .text.RC522_Reset PROGBITS 000032d4 0042d4 000044 00 AX 0 0 4 + [110] .text.M500PcdConf PROGBITS 00003318 004318 00007e 00 AX 0 0 2 + [111] .text.RC522_Init PROGBITS 00003398 004398 0000c0 00 AX 0 0 4 + [112] .text.RC522_PcdCo PROGBITS 00003458 004458 000170 00 AX 0 0 4 + [113] .text.RC522_PcdRe PROGBITS 000035c8 0045c8 000088 00 AX 0 0 4 + [114] .text.RC522_PcdAn PROGBITS 00003650 004650 000074 00 AX 0 0 2 + [115] .text.Card_Read_T PROGBITS 000036c4 0046c4 0000b0 00 AX 0 0 4 + [116] .text.Detect_SPI_ PROGBITS 00003774 004774 00009c 00 AX 0 0 4 + [117] .text.BLV_RLY_Ctr PROGBITS 00003810 004810 000030 00 AX 0 0 4 + [118] .text.RLY_Light_C PROGBITS 00003840 004840 000040 00 AX 0 0 4 + [119] .text.KEY1_LONG_P PROGBITS 00003880 004880 000068 00 AX 0 0 4 + [120] .text.LogicCtrl_I PROGBITS 000038e8 0048e8 000034 00 AX 0 0 4 + [121] .text.LogicCtrl_T PROGBITS 0000391c 00491c 0000f0 00 AX 0 0 4 + [122] .text.LogicCtrl_N PROGBITS 00003a0c 004a0c 000070 00 AX 0 0 4 + [123] .text.LogicCtrl_N PROGBITS 00003a7c 004a7c 0000c0 00 AX 0 0 4 + [124] .text.BackLight_T PROGBITS 00003b3c 004b3c 000024 00 AX 0 0 4 + [125] .text.Detect_WIFI PROGBITS 00003b60 004b60 000094 00 AX 0 0 4 + [126] .text.Led_Task PROGBITS 00003bf4 004bf4 000064 00 AX 0 0 4 + [127] .text.CRC16 PROGBITS 00003c58 004c58 00003c 00 AX 0 0 4 + [128] .text.Read_Versio PROGBITS 00003c94 004c94 000070 00 AX 0 0 4 + [129] .text.Card_Recv_P PROGBITS 00003d04 004d04 00008c 00 AX 0 0 4 + [130] .text.BLV_RLV_Ctr PROGBITS 00003d90 004d90 00001c 00 AX 0 0 4 + [131] .text.RLY_Direct_ PROGBITS 00003dac 004dac 000064 00 AX 0 0 4 + [132] .text.button_init PROGBITS 00003e10 004e10 00003a 00 AX 0 0 2 + [133] .text.button_atta PROGBITS 00003e4a 004e4a 00000a 00 AX 0 0 2 + [134] .text.button_hand PROGBITS 00003e54 004e54 000120 00 AX 0 0 2 + [135] .text.button_star PROGBITS 00003f74 004f74 000024 00 AX 0 0 4 + [136] .text.button_tick PROGBITS 00003f98 004f98 00001c 00 AX 0 0 4 + [137] .text.read_button PROGBITS 00003fb4 004fb4 000014 00 AX 0 0 4 + [138] .text.TK_Sampling PROGBITS 00003fc8 004fc8 000058 00 AX 0 0 4 + [139] .text.TKEYIntHand PROGBITS 00004020 005020 000088 00 AX 0 0 4 + [140] .text.get_key_num PROGBITS 000040a8 0050a8 000028 00 AX 0 0 4 + [141] .text.TK_Scan_Sta PROGBITS 000040d0 0050d0 000020 00 AX 0 0 4 + [142] .text.TK_Keymap_p PROGBITS 000040f0 0050f0 000180 00 AX 0 0 4 + [143] .text.TK_overflow PROGBITS 00004270 005270 00011c 00 AX 0 0 4 + [144] .text.TK_Baseline PROGBITS 0000438c 00538c 0001d0 00 AX 0 0 4 + [145] .text.TK_result_p PROGBITS 0000455c 00555c 000054 00 AX 0 0 4 + [146] .text.CORETHandle PROGBITS 000045b0 0055b0 000078 00 AX 0 0 4 + [147] .text.std_clk_cal PROGBITS 00004628 005628 000284 00 AX 0 0 4 + [148] .RomCode PROGBITS 000048ac 00609c 000000 00 W 0 0 1 + [149] .rodata PROGBITS 000048ac 0058ac 00030c 00 A 0 0 4 + [150] .data PROGBITS 20000000 006000 00009c 00 WA 0 0 4 + [151] .bss NOBITS 2000009c 00609c 0004c4 00 WA 0 0 4 + [152] .csky.attributes CSKY_ATTRIBUTES 00000000 00609c 000022 00 0 0 1 + [153] .comment PROGBITS 00000000 0060be 000042 01 MS 0 0 1 + [154] .csky_stack_size PROGBITS 00000000 006100 00083c 00 0 0 16 + [155] .debug_line PROGBITS 00000000 00693c 003acf 00 0 0 1 + [156] .debug_info PROGBITS 00000000 00a40b 02c43b 00 0 0 1 + [157] .debug_abbrev PROGBITS 00000000 036846 002971 00 0 0 1 + [158] .debug_aranges PROGBITS 00000000 0391b8 000d00 00 0 0 8 + [159] .debug_ranges PROGBITS 00000000 039eb8 000c40 00 0 0 1 + [160] .debug_str PROGBITS 00000000 03aaf8 008942 01 MS 0 0 1 + [161] .debug_frame PROGBITS 00000000 04343c 001ea8 00 0 0 4 + [162] .debug_loc PROGBITS 00000000 0452e4 002f67 00 0 0 1 + [163] .shstrtab STRTAB 00000000 04d3d1 000d6f 00 0 0 1 + [164] .symtab SYMTAB 00000000 04824c 003df0 10 165 682 4 + [165] .strtab STRTAB 00000000 04c03c 001395 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x04bb8 0x04bb8 R E 0x1000 + LOAD 0x006000 0x20000000 0x00004bb8 0x0009c 0x00560 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.SYSCON_Int_Enable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.GPIO_Read_Output .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART0_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.startup.main .text.delay_nms .text.GPT0_CONFIG .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.Dbg_Println .text.RC522_Delay .text.RC522_ReadWriteOneByte .text.RC522_ReadRawRC .text.RC522_WriteRawRC .text.RC522_PcdReset .text.RC522_SetBitMask .text.RC522_PcdAntennaOn .text.RC522_ClearBitMask .text.RC522_PcdAntennaOff .text.RC522_Reset .text.M500PcdConfigISOType.part.1 .text.RC522_Init .text.RC522_PcdComMF522 .text.RC522_PcdRequest .text.RC522_PcdAnticoll .text.Card_Read_TasK .text.Detect_SPI_task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.RLY_Light_Ctrl .text.KEY1_LONG_PRESS_RELEASE_Handler .text.LogicCtrl_Init .text.LogicCtrl_Task .text.LogicCtrl_NoRF_Init .text.LogicCtrl_NoRF_Task .text.BackLight_Task .text.Detect_WIFI_Task .text.Led_Task .text.CRC16 .text.Read_Version_Ack .text.Card_Recv_Pro .text.BLV_RLV_Ctrl_Init .text.RLY_Direct_Control .text.button_init .text.button_attach .text.button_handler .text.button_start .text.button_ticks .text.read_button_GPIO .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_logic_ctrl.o(.text.BLV_RLV_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Direct_Control) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.RLY_Direct_Control) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_button.o(.text.read_button_GPIO) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Output) for GPIO_Read_Output + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/mcu_initial.o(.text.GPT0_CONFIG) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_Int_Enable) for UART0_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInit) for UARTInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_logic_ctrl.o(.text.Read_Version_Ack) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPT0_CONFIG) for GPT0_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART2IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) for UART2_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_TASK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_logic_ctrl.o(.text.Card_Recv_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Delay) for RC522_Delay + Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadWriteOneByte) for RC522_ReadWriteOneByte + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ReadRawRC) for RC522_ReadRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_WriteRawRC) for RC522_WriteRawRC + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdReset) for RC522_PcdReset + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_SetBitMask) for RC522_SetBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOn) for RC522_PcdAntennaOn + Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.M500PcdConfigISOType.part.1) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_ClearBitMask) for RC522_ClearBitMask + Obj/SYSTEM_rc522.o(.text.RC522_Reset) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAntennaOff) for RC522_PcdAntennaOff + Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) refers to Obj/SYSTEM_rc522.o(.text.RC522_Reset) for RC522_Reset + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_rc522.o(.text.RC522_Init) for RC522_Init + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdComMF522) for RC522_PcdComMF522 + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) for RC522_PcdRequest + Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) refers to Obj/SYSTEM_rc522.o(.text.RC522_PcdAnticoll) for RC522_PcdAnticoll + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Card_Read_TasK) for Card_Read_TasK + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_rc522.o(.text.Detect_SPI_task) for Detect_SPI_task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/SYSTEM_logic_ctrl.o(.text.KEY1_LONG_PRESS_RELEASE_Handler) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.RLY_Light_Ctrl) for RLY_Light_Ctrl + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Init) for LogicCtrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_Task) for LogicCtrl_Task + Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) for LogicCtrl_NoRF_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) for LogicCtrl_NoRF_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.BackLight_Task) for BackLight_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Detect_WIFI_Task) for Detect_WIFI_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_logic_ctrl.o(.text.Led_Task) for Led_Task + Obj/SYSTEM_logic_ctrl.o(.text.Read_Version_Ack) refers to Obj/SYSTEM_logic_ctrl.o(.text.CRC16) for CRC16 + Obj/SYSTEM_logic_ctrl.o(.text.Card_Recv_Pro) refers to Obj/SYSTEM_logic_ctrl.o(.text.CRC16) for CRC16 + Obj/SYSTEM_logic_ctrl.o(.text.Card_Recv_Pro) refers to Obj/SYSTEM_logic_ctrl.o(.text.Read_Version_Ack) for Read_Version_Ack + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_logic_ctrl.o(.text.BLV_RLV_Ctrl_Init) for BLV_RLV_Ctrl_Init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_init) for button_init + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_attach) for button_attach + Obj/SYSTEM_button.o(.text.button_ticks) refers to Obj/SYSTEM_button.o(.text.button_handler) for button_handler + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to Obj/SYSTEM_button.o(.text.button_start) for button_start + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Task) refers to Obj/SYSTEM_button.o(.text.button_ticks) for button_ticks + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_rc522.o(.text.RC522_PcdRequest) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.LogicCtrl_NoRF_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_logic_ctrl.o(.text.Read_Version_Ack) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_button.o(.text.button_init) refers to memset_fast.o(.text) for memset + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (491 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2906 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.EXTI_interrupt_CMD(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.GPIO_EXTI_interrupt(Obj/FWlib_apt32f102_syscon.o), (4 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_IntGroup_Set(Obj/FWlib_apt32f102_gpio.o), (268 bytes). + Removing .text.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3100 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3417 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3162 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4130 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3533 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3649 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4849 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4957 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7606 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2855 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.delay_nus(Obj/mcu_initial.o), (34 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text.__modsi3(Obj/drivers_apt32f102.o), (36 bytes). + Removing .text.__umodsi3(Obj/drivers_apt32f102.o), (36 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (4 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (148 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (136 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (2 bytes). + Removing .text(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .data(Obj/SYSTEM_rc522.o), (0 bytes). + Removing .text.RC522_CalulateCRC(Obj/SYSTEM_rc522.o), (102 bytes). + Removing .text.M500PcdConfigISOType(Obj/SYSTEM_rc522.o), (18 bytes). + Removing .text.RC522_MFRC522_SelectTag(Obj/SYSTEM_rc522.o), (110 bytes). + Removing .text.RC522_PcdSelect(Obj/SYSTEM_rc522.o), (106 bytes). + Removing .text.RC522_PcdAuthState(Obj/SYSTEM_rc522.o), (88 bytes). + Removing .text.RC522_PcdRead(Obj/SYSTEM_rc522.o), (84 bytes). + Removing .text.RC522_PcdWrite(Obj/SYSTEM_rc522.o), (142 bytes). + Removing .text(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .data(Obj/SYSTEM_logic_ctrl.o), (0 bytes). + Removing .text.Ctrl_Backlight(Obj/SYSTEM_logic_ctrl.o), (36 bytes). + Removing .text.Debounce_Task(Obj/SYSTEM_logic_ctrl.o), (2 bytes). + Removing .text.KEY1_LONG_PRESS_START_Handler(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text.BLV_RLY_Ctrl_Purpose(Obj/SYSTEM_logic_ctrl.o), (16 bytes). + Removing .text.RLY_Zero_Control(Obj/SYSTEM_logic_ctrl.o), (68 bytes). + Removing .text(Obj/SYSTEM_button.o), (0 bytes). + Removing .data(Obj/SYSTEM_button.o), (0 bytes). + Removing .text.get_button_event(Obj/SYSTEM_button.o), (6 bytes). + Removing .text.button_stop(Obj/SYSTEM_button.o), (32 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (120 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + +617 unused seciton(s) (total 179553 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_button.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_logic_ctrl.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_rc522.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + $d 0x000019ec 0 .text + $t 0x000019ec 0 .text + $d 0x00001a50 0 .text.__main + $t 0x00001a50 0 .text.__main + $d 0x00001a74 0 .text.__main + SYSCON_General_CMD.part.0 0x00001a88 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001a88 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001a88 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001af4 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001afc 0 .text.SYSCON_RST_VALUE + $t 0x00001afc 0 .text.SYSCON_RST_VALUE + $d 0x00001b2c 0 .text.SYSCON_RST_VALUE + $d 0x00001b48 0 .text.SYSCON_General_CMD + $t 0x00001b48 0 .text.SYSCON_General_CMD + $d 0x00001b74 0 .text.SYSCON_General_CMD + $d 0x00001b78 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001b78 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001bf0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c00 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c00 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c24 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c28 0 .text.SYSCON_WDT_CMD + $t 0x00001c28 0 .text.SYSCON_WDT_CMD + $d 0x00001c58 0 .text.SYSCON_WDT_CMD + $d 0x00001c64 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001c64 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001c74 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001c78 0 .text.SYSCON_IWDCNT_Config + $t 0x00001c78 0 .text.SYSCON_IWDCNT_Config + $d 0x00001c88 0 .text.SYSCON_IWDCNT_Config + $d 0x00001c90 0 .text.SYSCON_LVD_Config + $t 0x00001c90 0 .text.SYSCON_LVD_Config + $d 0x00001ca8 0 .text.SYSCON_LVD_Config + $d 0x00001cb0 0 .text.LVD_Int_Enable + $t 0x00001cb0 0 .text.LVD_Int_Enable + $d 0x00001cc8 0 .text.LVD_Int_Enable + $d 0x00001ccc 0 .text.IWDT_Int_Enable + $t 0x00001ccc 0 .text.IWDT_Int_Enable + $d 0x00001ce4 0 .text.IWDT_Int_Enable + $d 0x00001ce8 0 .text.EXTI_trigger_CMD + $t 0x00001ce8 0 .text.EXTI_trigger_CMD + $d 0x00001d24 0 .text.EXTI_trigger_CMD + $d 0x00001d28 0 .text.SYSCON_Int_Enable + $t 0x00001d28 0 .text.SYSCON_Int_Enable + $d 0x00001d30 0 .text.SYSCON_Int_Enable + $d 0x00001d34 0 .text.SYSCON_INT_Priority + $t 0x00001d34 0 .text.SYSCON_INT_Priority + $d 0x00001d4c 0 .text.SYSCON_INT_Priority + $d 0x00001d58 0 .text.Set_INT_Priority + $t 0x00001d58 0 .text.Set_INT_Priority + $d 0x00001d84 0 .text.Set_INT_Priority + $d 0x00001d88 0 .text.GPIO_Init + $t 0x00001d88 0 .text.GPIO_Init + $d 0x00001d9a 0 .text.GPIO_Init + $t 0x00001da2 0 .text.GPIO_Init + $d 0x00001dfe 0 .text.GPIO_Init + $t 0x00001e06 0 .text.GPIO_Init + $d 0x00001e54 0 .text.GPIO_Init + $d 0x00001e68 0 .text.GPIO_PullHigh_Init + $t 0x00001e68 0 .text.GPIO_PullHigh_Init + $d 0x00001e7c 0 .text.GPIO_DriveStrength_EN + $t 0x00001e7c 0 .text.GPIO_DriveStrength_EN + $d 0x00001e8a 0 .text.GPIO_Write_High + $t 0x00001e8a 0 .text.GPIO_Write_High + $d 0x00001e92 0 .text.GPIO_Write_Low + $t 0x00001e92 0 .text.GPIO_Write_Low + $d 0x00001e9a 0 .text.GPIO_Reverse + $t 0x00001e9a 0 .text.GPIO_Reverse + $d 0x00001eb0 0 .text.GPIO_Read_Status + $t 0x00001eb0 0 .text.GPIO_Read_Status + $d 0x00001ec0 0 .text.GPIO_Read_Output + $t 0x00001ec0 0 .text.GPIO_Read_Output + $d 0x00001ed0 0 .text.LPT_Soft_Reset + $t 0x00001ed0 0 .text.LPT_Soft_Reset + $d 0x00001ee0 0 .text.LPT_Soft_Reset + $d 0x00001ee4 0 .text.WWDT_CNT_Load + $t 0x00001ee4 0 .text.WWDT_CNT_Load + $d 0x00001ef0 0 .text.WWDT_CNT_Load + $d 0x00001ef4 0 .text.BT_DeInit + $t 0x00001ef4 0 .text.BT_DeInit + $d 0x00001f10 0 .text.BT_Start + $t 0x00001f10 0 .text.BT_Start + $d 0x00001f18 0 .text.BT_Soft_Reset + $t 0x00001f18 0 .text.BT_Soft_Reset + $d 0x00001f22 0 .text.BT_Configure + $t 0x00001f22 0 .text.BT_Configure + $d 0x00001f3a 0 .text.BT_ControlSet_Configure + $t 0x00001f3a 0 .text.BT_ControlSet_Configure + $d 0x00001f66 0 .text.BT_Period_CMP_Write + $t 0x00001f66 0 .text.BT_Period_CMP_Write + $d 0x00001f6c 0 .text.BT_ConfigInterrupt_CMD + $t 0x00001f6c 0 .text.BT_ConfigInterrupt_CMD + $d 0x00001f80 0 .text.BT1_INT_ENABLE + $t 0x00001f80 0 .text.BT1_INT_ENABLE + $d 0x00001f8c 0 .text.BT1_INT_ENABLE + $d 0x00001f90 0 .text.GPT_IO_Init + $t 0x00001f90 0 .text.GPT_IO_Init + $d 0x00002028 0 .text.GPT_IO_Init + $d 0x00002030 0 .text.GPT_Configure + $t 0x00002030 0 .text.GPT_Configure + $d 0x00002040 0 .text.GPT_Configure + $d 0x00002044 0 .text.GPT_WaveCtrl_Configure + $t 0x00002044 0 .text.GPT_WaveCtrl_Configure + $d 0x00002084 0 .text.GPT_WaveCtrl_Configure + $d 0x00002088 0 .text.GPT_WaveLoad_Configure + $t 0x00002088 0 .text.GPT_WaveLoad_Configure + $d 0x00002098 0 .text.GPT_WaveLoad_Configure + $d 0x0000209c 0 .text.GPT_WaveOut_Configure + $t 0x0000209c 0 .text.GPT_WaveOut_Configure + $d 0x0000214c 0 .text.GPT_WaveOut_Configure + $d 0x00002150 0 .text.GPT_Start + $t 0x00002150 0 .text.GPT_Start + $d 0x0000215c 0 .text.GPT_Start + $d 0x00002160 0 .text.GPT_Period_CMP_Write + $t 0x00002160 0 .text.GPT_Period_CMP_Write + $d 0x0000216c 0 .text.GPT_Period_CMP_Write + $d 0x00002170 0 .text.GPT_ConfigInterrupt_CMD + $t 0x00002170 0 .text.GPT_ConfigInterrupt_CMD + $d 0x00002188 0 .text.GPT_ConfigInterrupt_CMD + $d 0x0000218c 0 .text.UART0_DeInit + $t 0x0000218c 0 .text.UART0_DeInit + $d 0x000021a0 0 .text.UART0_DeInit + $d 0x000021a4 0 .text.UART1_DeInit + $t 0x000021a4 0 .text.UART1_DeInit + $d 0x000021b8 0 .text.UART1_DeInit + $d 0x000021bc 0 .text.UART2_DeInit + $t 0x000021bc 0 .text.UART2_DeInit + $d 0x000021d0 0 .text.UART2_DeInit + $d 0x000021d4 0 .text.UART0_Int_Enable + $t 0x000021d4 0 .text.UART0_Int_Enable + $d 0x000021e8 0 .text.UART0_Int_Enable + $d 0x000021f0 0 .text.UART2_Int_Enable + $t 0x000021f0 0 .text.UART2_Int_Enable + $d 0x00002204 0 .text.UART2_Int_Enable + $d 0x0000220c 0 .text.UART_IO_Init + $t 0x0000220c 0 .text.UART_IO_Init + $d 0x000022f0 0 .text.UART_IO_Init + $d 0x000022f8 0 .text.UARTInit + $t 0x000022f8 0 .text.UARTInit + $d 0x00002304 0 .text.UARTInit + $d 0x00002308 0 .text.UARTInitRxTxIntEn + $t 0x00002308 0 .text.UARTInitRxTxIntEn + $d 0x00002314 0 .text.UARTInitRxTxIntEn + $d 0x00002318 0 .text.UARTTransmit + $t 0x00002318 0 .text.UARTTransmit + $d 0x00002338 0 .text.EPT_Stop + $t 0x00002338 0 .text.EPT_Stop + $d 0x00002358 0 .text.EPT_Stop + $d 0x00002360 0 .text.startup.main + $t 0x00002360 0 .text.startup.main + $d 0x000023d4 0 .text.startup.main + $d 0x000023e0 0 .text.delay_nms + $t 0x000023e0 0 .text.delay_nms + $d 0x0000240c 0 .text.GPT0_CONFIG + $t 0x0000240c 0 .text.GPT0_CONFIG + $d 0x0000249c 0 .text.GPT0_CONFIG + $d 0x000024a0 0 .text.BT_CONFIG + $t 0x000024a0 0 .text.BT_CONFIG + $d 0x000024f8 0 .text.BT_CONFIG + $d 0x00002500 0 .text.SYSCON_CONFIG + $t 0x00002500 0 .text.SYSCON_CONFIG + $d 0x00002564 0 .text.APT32F102_init + $t 0x00002564 0 .text.APT32F102_init + $d 0x000025a8 0 .text.APT32F102_init + $d 0x000025b4 0 .text.SYSCONIntHandler + $t 0x000025b4 0 .text.SYSCONIntHandler + $d 0x000026a0 0 .text.SYSCONIntHandler + $d 0x000026a4 0 .text.IFCIntHandler + $t 0x000026a4 0 .text.IFCIntHandler + $d 0x00002708 0 .text.IFCIntHandler + $d 0x0000270c 0 .text.ADCIntHandler + $t 0x0000270c 0 .text.ADCIntHandler + $d 0x00002770 0 .text.ADCIntHandler + $d 0x00002774 0 .text.EPT0IntHandler + $t 0x00002774 0 .text.EPT0IntHandler + $d 0x00002914 0 .text.EPT0IntHandler + $d 0x00002920 0 .text.WWDTHandler + $t 0x00002920 0 .text.WWDTHandler + $d 0x00002950 0 .text.WWDTHandler + $d 0x00002954 0 .text.GPT0IntHandler + $t 0x00002954 0 .text.GPT0IntHandler + $d 0x000029d0 0 .text.GPT0IntHandler + $d 0x000029d4 0 .text.RTCIntHandler + $t 0x000029d4 0 .text.RTCIntHandler + $d 0x00002a3c 0 .text.RTCIntHandler + $d 0x00002a44 0 .text.UART0IntHandler + $t 0x00002a44 0 .text.UART0IntHandler + $d 0x00002a7c 0 .text.UART0IntHandler + $d 0x00002a80 0 .text.UART1IntHandler + $t 0x00002a80 0 .text.UART1IntHandler + $d 0x00002ab8 0 .text.UART1IntHandler + $d 0x00002abc 0 .text.UART2IntHandler + $t 0x00002abc 0 .text.UART2IntHandler + $d 0x00002b3c 0 .text.UART2IntHandler + $d 0x00002b50 0 .text.SPI0IntHandler + $t 0x00002b50 0 .text.SPI0IntHandler + $d 0x00002c34 0 .text.SPI0IntHandler + $d 0x00002c38 0 .text.SIO0IntHandler + $t 0x00002c38 0 .text.SIO0IntHandler + $d 0x00002c88 0 .text.SIO0IntHandler + $d 0x00002c8c 0 .text.EXI0IntHandler + $t 0x00002c8c 0 .text.EXI0IntHandler + $d 0x00002cb8 0 .text.EXI0IntHandler + $d 0x00002cbc 0 .text.EXI1IntHandler + $t 0x00002cbc 0 .text.EXI1IntHandler + $d 0x00002ce8 0 .text.EXI1IntHandler + $d 0x00002cec 0 .text.EXI2to3IntHandler + $t 0x00002cec 0 .text.EXI2to3IntHandler + $d 0x00002d30 0 .text.EXI2to3IntHandler + $d 0x00002d34 0 .text.EXI4to9IntHandler + $t 0x00002d34 0 .text.EXI4to9IntHandler + $d 0x00002d8c 0 .text.EXI4to9IntHandler + $d 0x00002d90 0 .text.EXI10to15IntHandler + $t 0x00002d90 0 .text.EXI10to15IntHandler + $d 0x00002dec 0 .text.EXI10to15IntHandler + $d 0x00002df0 0 .text.LPTIntHandler + $t 0x00002df0 0 .text.LPTIntHandler + $d 0x00002e20 0 .text.LPTIntHandler + $d 0x00002e24 0 .text.BT0IntHandler + $t 0x00002e24 0 .text.BT0IntHandler + $d 0x00002e6c 0 .text.BT0IntHandler + $d 0x00002e70 0 .text.BT1IntHandler + $t 0x00002e70 0 .text.BT1IntHandler + $d 0x00002ecc 0 .text.BT1IntHandler + $d 0x00002ed4 0 .text.PriviledgeVioHandler + $t 0x00002ed4 0 .text.PriviledgeVioHandler + $d 0x00002ed6 0 .text.PendTrapHandler + $t 0x00002ed6 0 .text.PendTrapHandler + $d 0x00002ede 0 .text.Trap3Handler + $t 0x00002ede 0 .text.Trap3Handler + $d 0x00002ee6 0 .text.Trap2Handler + $t 0x00002ee6 0 .text.Trap2Handler + $d 0x00002eee 0 .text.Trap1Handler + $t 0x00002eee 0 .text.Trap1Handler + $d 0x00002ef6 0 .text.Trap0Handler + $t 0x00002ef6 0 .text.Trap0Handler + $d 0x00002efe 0 .text.UnrecExecpHandler + $t 0x00002efe 0 .text.UnrecExecpHandler + $d 0x00002f06 0 .text.BreakPointHandler + $t 0x00002f06 0 .text.BreakPointHandler + $d 0x00002f0e 0 .text.AccessErrHandler + $t 0x00002f0e 0 .text.AccessErrHandler + $d 0x00002f16 0 .text.IllegalInstrHandler + $t 0x00002f16 0 .text.IllegalInstrHandler + $d 0x00002f1e 0 .text.MisalignedHandler + $t 0x00002f1e 0 .text.MisalignedHandler + $d 0x00002f26 0 .text.CNTAIntHandler + $t 0x00002f26 0 .text.CNTAIntHandler + $d 0x00002f2e 0 .text.I2CIntHandler + $t 0x00002f2e 0 .text.I2CIntHandler + $d 0x00002f38 0 .text.__divsi3 + $t 0x00002f38 0 .text.__divsi3 + $d 0x00002f58 0 .text.__divsi3 + $d 0x00002f5c 0 .text.__udivsi3 + $t 0x00002f5c 0 .text.__udivsi3 + $d 0x00002f7c 0 .text.__udivsi3 + $d 0x00002f80 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00002f80 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00002f88 0 .text.UARTx_Init + $t 0x00002f88 0 .text.UARTx_Init + $d 0x00003044 0 .text.UARTx_Init + $d 0x00003060 0 .text.UART2_RecvINT_Processing + $t 0x00003060 0 .text.UART2_RecvINT_Processing + $d 0x000030b4 0 .text.UART2_RecvINT_Processing + $d 0x000030c4 0 .text.UART2_TASK + $t 0x000030c4 0 .text.UART2_TASK + $d 0x00003148 0 .text.UART2_TASK + $d 0x00003158 0 .text.Dbg_Println + $t 0x00003158 0 .text.Dbg_Println + $d 0x00003164 0 .text.RC522_Delay + $t 0x00003164 0 .text.RC522_Delay + $d 0x00003178 0 .text.RC522_ReadWriteOneByte + $t 0x00003178 0 .text.RC522_ReadWriteOneByte + $d 0x000031c8 0 .text.RC522_ReadWriteOneByte + $d 0x000031cc 0 .text.RC522_ReadRawRC + $t 0x000031cc 0 .text.RC522_ReadRawRC + $d 0x00003200 0 .text.RC522_ReadRawRC + $d 0x00003204 0 .text.RC522_WriteRawRC + $t 0x00003204 0 .text.RC522_WriteRawRC + $d 0x00003230 0 .text.RC522_WriteRawRC + $d 0x00003234 0 .text.RC522_PcdReset + $t 0x00003234 0 .text.RC522_PcdReset + $d 0x00003280 0 .text.RC522_SetBitMask + $t 0x00003280 0 .text.RC522_SetBitMask + $d 0x00003298 0 .text.RC522_PcdAntennaOn + $t 0x00003298 0 .text.RC522_PcdAntennaOn + $d 0x000032b2 0 .text.RC522_ClearBitMask + $t 0x000032b2 0 .text.RC522_ClearBitMask + $d 0x000032c8 0 .text.RC522_PcdAntennaOff + $t 0x000032c8 0 .text.RC522_PcdAntennaOff + $d 0x000032d4 0 .text.RC522_Reset + $t 0x000032d4 0 .text.RC522_Reset + $d 0x00003314 0 .text.RC522_Reset + M500PcdConfigISOType.part.1 0x00003318 F 126 .text.M500PcdConfigISOType.part.1 + $d 0x00003318 0 .text.M500PcdConfigISOType.part.1 + $t 0x00003318 0 .text.M500PcdConfigISOType.part.1 + $d 0x00003398 0 .text.RC522_Init + $t 0x00003398 0 .text.RC522_Init + $d 0x00003450 0 .text.RC522_Init + $d 0x00003458 0 .text.RC522_PcdComMF522 + $t 0x00003458 0 .text.RC522_PcdComMF522 + $d 0x000035c4 0 .text.RC522_PcdComMF522 + $d 0x000035c8 0 .text.RC522_PcdRequest + $t 0x000035c8 0 .text.RC522_PcdRequest + $d 0x00003648 0 .text.RC522_PcdRequest + $d 0x00003650 0 .text.RC522_PcdAnticoll + $t 0x00003650 0 .text.RC522_PcdAnticoll + $d 0x000036c4 0 .text.Card_Read_TasK + $t 0x000036c4 0 .text.Card_Read_TasK + $d 0x00003758 0 .text.Card_Read_TasK + $d 0x00003774 0 .text.Detect_SPI_task + $t 0x00003774 0 .text.Detect_SPI_task + $d 0x000037f0 0 .text.Detect_SPI_task + BLV_RLY_Ctrl_Purpose.part.0 0x00003810 F 48 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00003810 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x00003810 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00003838 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00003840 0 .text.RLY_Light_Ctrl + $t 0x00003840 0 .text.RLY_Light_Ctrl + $d 0x00003870 0 .text.RLY_Light_Ctrl + $d 0x00003880 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $t 0x00003880 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x000038cc 0 .text.KEY1_LONG_PRESS_RELEASE_Handler + $d 0x000038e8 0 .text.LogicCtrl_Init + $t 0x000038e8 0 .text.LogicCtrl_Init + $d 0x00003914 0 .text.LogicCtrl_Init + $d 0x0000391c 0 .text.LogicCtrl_Task + $t 0x0000391c 0 .text.LogicCtrl_Task + $d 0x000039f0 0 .text.LogicCtrl_Task + $d 0x00003a0c 0 .text.LogicCtrl_NoRF_Init + $t 0x00003a0c 0 .text.LogicCtrl_NoRF_Init + $d 0x00003a68 0 .text.LogicCtrl_NoRF_Init + $d 0x00003a7c 0 .text.LogicCtrl_NoRF_Task + $t 0x00003a7c 0 .text.LogicCtrl_NoRF_Task + $d 0x00003b24 0 .text.LogicCtrl_NoRF_Task + $d 0x00003b3c 0 .text.BackLight_Task + $t 0x00003b3c 0 .text.BackLight_Task + $d 0x00003b58 0 .text.BackLight_Task + $d 0x00003b60 0 .text.Detect_WIFI_Task + $t 0x00003b60 0 .text.Detect_WIFI_Task + $d 0x00003bd0 0 .text.Detect_WIFI_Task + $d 0x00003bf4 0 .text.Led_Task + $t 0x00003bf4 0 .text.Led_Task + $d 0x00003c44 0 .text.Led_Task + $d 0x00003c58 0 .text.CRC16 + $t 0x00003c58 0 .text.CRC16 + $d 0x00003c8c 0 .text.CRC16 + $d 0x00003c94 0 .text.Read_Version_Ack + $t 0x00003c94 0 .text.Read_Version_Ack + $d 0x00003d00 0 .text.Read_Version_Ack + $d 0x00003d04 0 .text.Card_Recv_Pro + $t 0x00003d04 0 .text.Card_Recv_Pro + $d 0x00003d80 0 .text.Card_Recv_Pro + $d 0x00003d90 0 .text.BLV_RLV_Ctrl_Init + $t 0x00003d90 0 .text.BLV_RLV_Ctrl_Init + $d 0x00003da8 0 .text.BLV_RLV_Ctrl_Init + $d 0x00003dac 0 .text.RLY_Direct_Control + $t 0x00003dac 0 .text.RLY_Direct_Control + $d 0x00003e04 0 .text.RLY_Direct_Control + $d 0x00003e10 0 .text.button_init + $t 0x00003e10 0 .text.button_init + $d 0x00003e4a 0 .text.button_attach + $t 0x00003e4a 0 .text.button_attach + $d 0x00003e54 0 .text.button_handler + $t 0x00003e54 0 .text.button_handler + $d 0x00003f74 0 .text.button_start + $t 0x00003f74 0 .text.button_start + $d 0x00003f94 0 .text.button_start + $d 0x00003f98 0 .text.button_ticks + $t 0x00003f98 0 .text.button_ticks + $d 0x00003fb0 0 .text.button_ticks + $d 0x00003fb4 0 .text.read_button_GPIO + $t 0x00003fb4 0 .text.read_button_GPIO + $d 0x00003fc4 0 .text.read_button_GPIO + $d 0x00003fc8 0 .text.TK_Sampling_prog + $t 0x00003fc8 0 .text.TK_Sampling_prog + $d 0x00004010 0 .text.TK_Sampling_prog + $d 0x00004020 0 .text.TKEYIntHandler + $t 0x00004020 0 .text.TKEYIntHandler + $d 0x0000409c 0 .text.TKEYIntHandler + $d 0x000040a8 0 .text.get_key_number + $t 0x000040a8 0 .text.get_key_number + $d 0x000040cc 0 .text.get_key_number + $d 0x000040d0 0 .text.TK_Scan_Start + $t 0x000040d0 0 .text.TK_Scan_Start + $d 0x000040e8 0 .text.TK_Scan_Start + $d 0x000040f0 0 .text.TK_Keymap_prog + $t 0x000040f0 0 .text.TK_Keymap_prog + $d 0x00004238 0 .text.TK_Keymap_prog + $d 0x00004270 0 .text.TK_overflow_predict + $t 0x00004270 0 .text.TK_overflow_predict + $d 0x00004358 0 .text.TK_overflow_predict + $d 0x0000438c 0 .text.TK_Baseline_tracking + $t 0x0000438c 0 .text.TK_Baseline_tracking + $d 0x00004530 0 .text.TK_Baseline_tracking + $d 0x0000455c 0 .text.TK_result_prog + $t 0x0000455c 0 .text.TK_result_prog + $d 0x0000459c 0 .text.TK_result_prog + $d 0x000045b0 0 .text.CORETHandler + $t 0x000045b0 0 .text.CORETHandler + $d 0x00004610 0 .text.CORETHandler + $d 0x00004628 0 .text.std_clk_calib + $t 0x00004628 0 .text.std_clk_calib + $d 0x00004870 0 .text.std_clk_calib + bp 0x000048ac O 16 .rodata + dp_l 0x000048bc O 16 .rodata + dp_h 0x000048cc O 16 .rodata + NUM.6059 0x200000ac O 1 .bss + test_tick.5984 0x200000dc O 4 .bss + card_tick.5983 0x200000e0 O 4 .bss + head_handle 0x200000e8 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __memset_fast 0x00001964 w F 136 .text + memset 0x00001964 w F 136 .text + __memcpy_fast 0x000019ec w F 100 .text + memcpy 0x000019ec w F 100 .text + __main 0x00001a50 F 56 .text.__main + SYSCON_RST_VALUE 0x00001afc F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001b48 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001b78 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c00 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c28 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001c64 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001c78 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001c90 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001cb0 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001ccc F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001ce8 F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x00001d28 F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x00001d34 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001d58 F 48 .text.Set_INT_Priority + GPIO_Init 0x00001d88 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001e68 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001e7c F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e8a F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001e92 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00001e9a F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00001eb0 F 16 .text.GPIO_Read_Status + GPIO_Read_Output 0x00001ec0 F 16 .text.GPIO_Read_Output + LPT_Soft_Reset 0x00001ed0 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00001ee4 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00001ef4 F 28 .text.BT_DeInit + BT_Start 0x00001f10 F 8 .text.BT_Start + BT_Soft_Reset 0x00001f18 F 10 .text.BT_Soft_Reset + BT_Configure 0x00001f22 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00001f3a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00001f66 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00001f6c F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00001f80 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x00001f90 F 160 .text.GPT_IO_Init + GPT_Configure 0x00002030 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00002044 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x00002088 F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x0000209c F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x00002150 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x00002160 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x00002170 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x0000218c F 24 .text.UART0_DeInit + UART1_DeInit 0x000021a4 F 24 .text.UART1_DeInit + UART2_DeInit 0x000021bc F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000021d4 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000021f0 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000220c F 236 .text.UART_IO_Init + UARTInit 0x000022f8 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x00002308 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002318 F 30 .text.UARTTransmit + EPT_Stop 0x00002338 F 40 .text.EPT_Stop + main 0x00002360 F 128 .text.startup.main + delay_nms 0x000023e0 F 44 .text.delay_nms + GPT0_CONFIG 0x0000240c F 148 .text.GPT0_CONFIG + BT_CONFIG 0x000024a0 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002500 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002564 F 80 .text.APT32F102_init + SYSCONIntHandler 0x000025b4 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x000026a4 F 104 .text.IFCIntHandler + ADCIntHandler 0x0000270c F 104 .text.ADCIntHandler + EPT0IntHandler 0x00002774 F 428 .text.EPT0IntHandler + WWDTHandler 0x00002920 F 52 .text.WWDTHandler + GPT0IntHandler 0x00002954 F 128 .text.GPT0IntHandler + RTCIntHandler 0x000029d4 F 112 .text.RTCIntHandler + UART0IntHandler 0x00002a44 F 60 .text.UART0IntHandler + UART1IntHandler 0x00002a80 F 60 .text.UART1IntHandler + UART2IntHandler 0x00002abc F 148 .text.UART2IntHandler + SPI0IntHandler 0x00002b50 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00002c38 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00002c8c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00002cbc F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00002cec F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00002d34 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00002d90 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x00002df0 F 52 .text.LPTIntHandler + BT0IntHandler 0x00002e24 F 76 .text.BT0IntHandler + BT1IntHandler 0x00002e70 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00002ed4 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00002ed6 F 8 .text.PendTrapHandler + Trap3Handler 0x00002ede F 8 .text.Trap3Handler + Trap2Handler 0x00002ee6 F 8 .text.Trap2Handler + Trap1Handler 0x00002eee F 8 .text.Trap1Handler + Trap0Handler 0x00002ef6 F 8 .text.Trap0Handler + UnrecExecpHandler 0x00002efe F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00002f06 F 8 .text.BreakPointHandler + AccessErrHandler 0x00002f0e F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00002f16 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00002f1e F 8 .text.MisalignedHandler + CNTAIntHandler 0x00002f26 F 8 .text.CNTAIntHandler + I2CIntHandler 0x00002f2e F 8 .text.I2CIntHandler + __divsi3 0x00002f38 F 36 .text.__divsi3 + __udivsi3 0x00002f5c F 36 .text.__udivsi3 + CK_CPU_EnAllNormalIrq 0x00002f80 F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x00002f88 F 216 .text.UARTx_Init + UART2_RecvINT_Processing 0x00003060 F 100 .text.UART2_RecvINT_Processing + UART2_TASK 0x000030c4 F 148 .text.UART2_TASK + Dbg_Println 0x00003158 F 12 .text.Dbg_Println + RC522_Delay 0x00003164 F 18 .text.RC522_Delay + RC522_ReadWriteOneByte 0x00003178 F 84 .text.RC522_ReadWriteOneByte + RC522_ReadRawRC 0x000031cc F 56 .text.RC522_ReadRawRC + RC522_WriteRawRC 0x00003204 F 48 .text.RC522_WriteRawRC + RC522_PcdReset 0x00003234 F 76 .text.RC522_PcdReset + RC522_SetBitMask 0x00003280 F 24 .text.RC522_SetBitMask + RC522_PcdAntennaOn 0x00003298 F 26 .text.RC522_PcdAntennaOn + RC522_ClearBitMask 0x000032b2 F 22 .text.RC522_ClearBitMask + RC522_PcdAntennaOff 0x000032c8 F 12 .text.RC522_PcdAntennaOff + RC522_Reset 0x000032d4 F 68 .text.RC522_Reset + RC522_Init 0x00003398 F 192 .text.RC522_Init + RC522_PcdComMF522 0x00003458 F 368 .text.RC522_PcdComMF522 + RC522_PcdRequest 0x000035c8 F 136 .text.RC522_PcdRequest + RC522_PcdAnticoll 0x00003650 F 116 .text.RC522_PcdAnticoll + Card_Read_TasK 0x000036c4 F 176 .text.Card_Read_TasK + Detect_SPI_task 0x00003774 F 156 .text.Detect_SPI_task + RLY_Light_Ctrl 0x00003840 F 64 .text.RLY_Light_Ctrl + KEY1_LONG_PRESS_RELEASE_Handler 0x00003880 F 104 .text.KEY1_LONG_PRESS_RELEASE_Handler + LogicCtrl_Init 0x000038e8 F 52 .text.LogicCtrl_Init + LogicCtrl_Task 0x0000391c F 240 .text.LogicCtrl_Task + LogicCtrl_NoRF_Init 0x00003a0c F 112 .text.LogicCtrl_NoRF_Init + LogicCtrl_NoRF_Task 0x00003a7c F 192 .text.LogicCtrl_NoRF_Task + BackLight_Task 0x00003b3c F 36 .text.BackLight_Task + Detect_WIFI_Task 0x00003b60 F 148 .text.Detect_WIFI_Task + Led_Task 0x00003bf4 F 100 .text.Led_Task + CRC16 0x00003c58 F 60 .text.CRC16 + Read_Version_Ack 0x00003c94 F 112 .text.Read_Version_Ack + Card_Recv_Pro 0x00003d04 F 140 .text.Card_Recv_Pro + BLV_RLV_Ctrl_Init 0x00003d90 F 28 .text.BLV_RLV_Ctrl_Init + RLY_Direct_Control 0x00003dac F 100 .text.RLY_Direct_Control + button_init 0x00003e10 F 58 .text.button_init + button_attach 0x00003e4a F 10 .text.button_attach + button_handler 0x00003e54 F 288 .text.button_handler + button_start 0x00003f74 F 36 .text.button_start + button_ticks 0x00003f98 F 28 .text.button_ticks + read_button_GPIO 0x00003fb4 F 20 .text.read_button_GPIO + TK_Sampling_prog 0x00003fc8 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00004020 F 136 .text.TKEYIntHandler + get_key_number 0x000040a8 F 40 .text.get_key_number + TK_Scan_Start 0x000040d0 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x000040f0 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00004270 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000438c F 464 .text.TK_Baseline_tracking + TK_result_prog 0x0000455c F 84 .text.TK_result_prog + CORETHandler 0x000045b0 F 120 .text.CORETHandler + std_clk_calib 0x00004628 F 644 .text.std_clk_calib + __thenan_df 0x000048dc O 20 .rodata + __clz_tab 0x000048f0 O 256 .rodata + _end_rodata 0x00004bb8 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + _bss_start 0x2000009c 0 .bss + rf_exist 0x2000009c O 1 .bss + last_state 0x2000009d O 1 .bss + finish_flag 0x2000009e O 1 .bss + Card_Tick 0x200000a0 O 4 .bss + detect_tick 0x200000a4 O 4 .bss + detect_count 0x200000a8 O 1 .bss + test_state 0x200000a9 O 1 .bss + SysTick_100us 0x200000b0 O 4 .bss + SysTick_1ms 0x200000b4 O 4 .bss + RS485_Comming 0x200000b8 O 4 .bss + RS485_Comm_Flag 0x200000bc O 4 .bss + RS485_Comm_Start 0x200000c0 O 4 .bss + RS485_Comm_End 0x200000c4 O 4 .bss + FIFOLevelReg_flag 0x200000c8 O 1 .bss + scan_tick 0x200000cc O 4 .bss + HL_tick 0x200000d0 O 4 .bss + Tim_Flag 0x200000d4 O 4 .bss + start_light 0x200000d8 O 1 .bss + power_tick 0x200000e4 O 4 .bss + Press_debounce_data 0x200000ec O 1 .bss + TK_Lowpower_mode 0x200000ed O 1 .bss + TK_Lowpower_level 0x200000ee O 1 .bss + TK_longpress_time 0x200000f0 O 4 .bss + Release_debounce_data 0x200000f4 O 1 .bss + Key_mode 0x200000f5 O 1 .bss + TK_icon 0x200000f6 O 34 .bss + MultiTimes_Filter 0x20000118 O 1 .bss + Base_Speed 0x20000119 O 1 .bss + TK_IO_ENABLE 0x2000011c O 4 .bss + Valid_Key_Num 0x20000120 O 1 .bss + TK_senprd 0x20000122 O 34 .bss + TK_Wakeup_level 0x20000144 O 1 .bss + TK_Triggerlevel 0x20000146 O 34 .bss + TK_EC_LEVEL 0x20000168 O 2 .bss + TK_FVR_LEVEL 0x2000016a O 2 .bss + TK_BaseCnt 0x2000016c O 4 .bss + TK_PSEL_MODE 0x20000170 O 2 .bss + R_CMPB_BUF 0x20000174 O 4 .bss + R_CMPA_BUF 0x20000178 O 4 .bss + R_SIORX_buf 0x2000017c O 40 .bss + g_uart 0x200001a4 O 115 .bss + CardInfo 0x20000218 O 52 .bss + c_rly 0x2000024c O 8 .bss + g_read 0x20000254 O 8 .bss + KEY1 0x2000025c O 48 .bss + dm_in 0x2000028c O 9 .bss + baseline_data0 0x20000298 O 34 .bss + TK_Postive_build2 0x200002ba O 17 .bss + Key_Map1 0x200002cc O 4 .bss + offset_data2_abs 0x200002d0 O 34 .bss + scan_f 0x200002f2 O 1 .bss + offset_data1_abs 0x200002f4 O 34 .bss + Release_debounce0 0x20000316 O 17 .bss + Key_Map0 0x20000328 O 4 .bss + bsae_over_f 0x2000032c O 1 .bss + scan_cnt 0x2000032e O 2 .bss + Press_debounce0 0x20000330 O 17 .bss + offset_data0 0x20000342 O 34 .bss + sampling_data1 0x20000364 O 34 .bss + Key_Map2 0x20000388 O 4 .bss + Release_debounce1 0x2000038c O 17 .bss + tk_overflow_f 0x2000039d O 1 .bss + TK_Negtive_build2 0x2000039e O 17 .bss + base_update_f 0x200003af O 1 .bss + TK_Postive_build1 0x200003b0 O 17 .bss + time_cnt 0x200003c4 O 4 .bss + lpt_scan_pend_cnt 0x200003c8 O 2 .bss + TK_track_cnt 0x200003ca O 1 .bss + Key_Map 0x200003cc O 4 .bss + baseline_data1 0x200003d0 O 34 .bss + TK_Postive_build0 0x200003f2 O 17 .bss + sampling_data2 0x20000404 O 34 .bss + offset_data1 0x20000426 O 34 .bss + TK_ovrdect_cnt 0x20000448 O 1 .bss + Press_debounce2 0x20000449 O 17 .bss + TK_Negtive_build1 0x2000045a O 17 .bss + tk_num 0x2000046b O 1 .bss + TK_Negtive_build0 0x2000046c O 17 .bss + Press_debounce1 0x2000047d O 17 .bss + Release_debounce2 0x2000048e O 17 .bss + r_Key_Map_Temp 0x200004a0 O 4 .bss + tk_seque 0x200004a4 O 17 .bss + scan_step 0x200004b5 O 1 .bss + baseline_data2 0x200004b6 O 34 .bss + tk_sampling_max 0x200004d8 O 34 .bss + offset_data0_abs 0x200004fa O 34 .bss + offset_data2 0x2000051c O 34 .bss + sampling_data0 0x2000053e O 34 .bss + _ebss 0x20000560 0 .bss + _end 0x20000560 0 .bss + end 0x20000560 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00004bb8, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1018 .text pow.o + 0x00000b5e 0x00000006 Code RO 1026 .text fabs.o + 0x00000b64 0x00000020 Code RO 1032 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1039 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1050 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1055 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1062 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1069 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1076 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1083 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1090 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1097 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1104 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1111 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1125 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1132 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1139 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1145 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1152 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1159 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1180 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1185 .text memcpy_fast.o + 0x00001a50 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001a88 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001afc 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001b48 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001b78 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c00 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c28 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001c64 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001c78 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c90 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cb0 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001ccc 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001ce8 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d28 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d34 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001d58 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001d88 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001e68 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001e7c 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e8a 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001e92 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001e9a 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00001eb0 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00001ec0 0x00000010 Code RO 152 .text.GPIO_Read_Output Obj/FWlib_apt32f102_gpio.o + 0x00001ed0 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00001ee4 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00001ef4 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00001f10 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00001f18 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00001f22 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f3a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f66 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00001f6c 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00001f80 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00001f90 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x00002030 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002044 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002088 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x0000209c 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002150 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x00002160 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x00002170 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x0000218c 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021a4 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021bc 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021d4 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000021f0 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000220c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000022f8 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x00002308 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002318 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00002338 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002360 0x00000080 Code RO 690 .text.startup.main Obj/main.o + 0x000023e0 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x0000240c 0x00000094 Code RO 711 .text.GPT0_CONFIG Obj/mcu_initial.o + 0x000024a0 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002500 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002564 0x00000050 Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x000025b4 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x000026a4 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x0000270c 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00002774 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00002920 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00002954 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x000029d4 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00002a44 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00002a80 0x0000003c Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00002abc 0x00000094 Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00002b50 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00002c38 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00002c8c 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00002cbc 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00002cec 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00002d34 0x0000005c Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00002d90 0x00000060 Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00002df0 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00002e24 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00002e70 0x00000064 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00002ed4 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00002ed6 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00002ede 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00002ee6 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00002eee 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00002ef6 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00002efe 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00002f06 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00002f0e 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00002f16 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00002f1e 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00002f26 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00002f2e 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00002f38 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00002f5c 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00002f80 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00002f88 0x000000d8 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003060 0x00000064 Code RO 823 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000030c4 0x00000094 Code RO 825 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003158 0x0000000c Code RO 829 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003164 0x00000012 Code RO 847 .text.RC522_Delay Obj/SYSTEM_rc522.o + 0x00003178 0x00000054 Code RO 848 .text.RC522_ReadWriteOneByte Obj/SYSTEM_rc522.o + 0x000031cc 0x00000038 Code RO 849 .text.RC522_ReadRawRC Obj/SYSTEM_rc522.o + 0x00003204 0x00000030 Code RO 850 .text.RC522_WriteRawRC Obj/SYSTEM_rc522.o + 0x00003234 0x0000004c Code RO 851 .text.RC522_PcdReset Obj/SYSTEM_rc522.o + 0x00003280 0x00000018 Code RO 852 .text.RC522_SetBitMask Obj/SYSTEM_rc522.o + 0x00003298 0x0000001a Code RO 853 .text.RC522_PcdAntennaOn Obj/SYSTEM_rc522.o + 0x000032b2 0x00000016 Code RO 854 .text.RC522_ClearBitMask Obj/SYSTEM_rc522.o + 0x000032c8 0x0000000c Code RO 855 .text.RC522_PcdAntennaOff Obj/SYSTEM_rc522.o + 0x000032d4 0x00000044 Code RO 856 .text.RC522_Reset Obj/SYSTEM_rc522.o + 0x00003318 0x0000007e Code RO 858 .text.M500PcdConfigISOType.part.1 Obj/SYSTEM_rc522.o + 0x00003398 0x000000c0 Code RO 860 .text.RC522_Init Obj/SYSTEM_rc522.o + 0x00003458 0x00000170 Code RO 861 .text.RC522_PcdComMF522 Obj/SYSTEM_rc522.o + 0x000035c8 0x00000088 Code RO 867 .text.RC522_PcdRequest Obj/SYSTEM_rc522.o + 0x00003650 0x00000074 Code RO 868 .text.RC522_PcdAnticoll Obj/SYSTEM_rc522.o + 0x000036c4 0x000000b0 Code RO 869 .text.Card_Read_TasK Obj/SYSTEM_rc522.o + 0x00003774 0x0000009c Code RO 870 .text.Detect_SPI_task Obj/SYSTEM_rc522.o + 0x00003810 0x00000030 Code RO 888 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/SYSTEM_logic_ctrl.o + 0x00003840 0x00000040 Code RO 890 .text.RLY_Light_Ctrl Obj/SYSTEM_logic_ctrl.o + 0x00003880 0x00000068 Code RO 891 .text.KEY1_LONG_PRESS_RELEASE_Handler Obj/SYSTEM_logic_ctrl.o + 0x000038e8 0x00000034 Code RO 892 .text.LogicCtrl_Init Obj/SYSTEM_logic_ctrl.o + 0x0000391c 0x000000f0 Code RO 893 .text.LogicCtrl_Task Obj/SYSTEM_logic_ctrl.o + 0x00003a0c 0x00000070 Code RO 896 .text.LogicCtrl_NoRF_Init Obj/SYSTEM_logic_ctrl.o + 0x00003a7c 0x000000c0 Code RO 897 .text.LogicCtrl_NoRF_Task Obj/SYSTEM_logic_ctrl.o + 0x00003b3c 0x00000024 Code RO 898 .text.BackLight_Task Obj/SYSTEM_logic_ctrl.o + 0x00003b60 0x00000094 Code RO 899 .text.Detect_WIFI_Task Obj/SYSTEM_logic_ctrl.o + 0x00003bf4 0x00000064 Code RO 900 .text.Led_Task Obj/SYSTEM_logic_ctrl.o + 0x00003c58 0x0000003c Code RO 901 .text.CRC16 Obj/SYSTEM_logic_ctrl.o + 0x00003c94 0x00000070 Code RO 902 .text.Read_Version_Ack Obj/SYSTEM_logic_ctrl.o + 0x00003d04 0x0000008c Code RO 903 .text.Card_Recv_Pro Obj/SYSTEM_logic_ctrl.o + 0x00003d90 0x0000001c Code RO 904 .text.BLV_RLV_Ctrl_Init Obj/SYSTEM_logic_ctrl.o + 0x00003dac 0x00000064 Code RO 906 .text.RLY_Direct_Control Obj/SYSTEM_logic_ctrl.o + 0x00003e10 0x0000003a Code RO 925 .text.button_init Obj/SYSTEM_button.o + 0x00003e4a 0x0000000a Code RO 926 .text.button_attach Obj/SYSTEM_button.o + 0x00003e54 0x00000120 Code RO 928 .text.button_handler Obj/SYSTEM_button.o + 0x00003f74 0x00000024 Code RO 929 .text.button_start Obj/SYSTEM_button.o + 0x00003f98 0x0000001c Code RO 931 .text.button_ticks Obj/SYSTEM_button.o + 0x00003fb4 0x00000014 Code RO 932 .text.read_button_GPIO Obj/SYSTEM_button.o + 0x00003fc8 0x00000058 Code RO 964 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00004020 0x00000088 Code RO 968 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000040a8 0x00000028 Code RO 969 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x000040d0 0x00000020 Code RO 971 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x000040f0 0x00000180 Code RO 972 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00004270 0x0000011c Code RO 973 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x0000438c 0x000001d0 Code RO 974 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x0000455c 0x00000054 Code RO 975 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000045b0 0x00000078 Code RO 976 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00004628 0x00000284 Code RO 998 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x000048ac 0x00000030 Data RO 1021 .rodata pow.o + 0x000048dc 0x00000014 Data RO 1121 .rodata _thenan_df.o + 0x000048f0 0x00000100 Data RO 1169 .rodata _clz.o + 0x000049f0 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x000049fb 0x0000007d Data RO 871 .rodata.str1.1 Obj/SYSTEM_rc522.o + 0x00004a78 0x00000140 Data RO 908 .rodata.str1.1 Obj/SYSTEM_logic_ctrl.o + + Region RAM (Base: 0x20000000, Size: 0x00000560, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 955 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x0000000e Zero RW 689 .bss Obj/main.o + 0x200000aa 0x00000002 PAD + 0x200000ac 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000b8 0x00000010 Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200000c8 0x0000000c Zero RW 846 .bss Obj/SYSTEM_rc522.o + 0x200000d4 0x00000014 Zero RW 887 .bss Obj/SYSTEM_logic_ctrl.o + 0x200000e8 0x00000004 Zero RW 924 .bss Obj/SYSTEM_button.o + 0x200000ec 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x20000172 0x00000002 PAD + 0x20000174 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x200001a4 0x00000073 Zero RW 843 COMMON Obj/SYSTEM_uart.o + 0x20000217 0x00000001 PAD + 0x20000218 0x00000034 Zero RW 884 COMMON Obj/SYSTEM_rc522.o + 0x2000024c 0x00000049 Zero RW 921 COMMON Obj/SYSTEM_logic_ctrl.o + 0x20000295 0x00000003 PAD + 0x20000298 0x000002c8 Zero RW 994 COMMON FWlib_apt32f102_tkey_c_1_17.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 281 Obj/arch_crt0.o + 56 0 0 0 817 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21132 Obj/FWlib_apt32f102_syscon.o + 328 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 128 11 0 148 11254 Obj/main.o + 466 0 0 0 16278 Obj/mcu_initial.o + 2434 0 0 60 14440 Obj/mcu_interrupt.o + 72 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 476 0 0 131 12213 Obj/SYSTEM_uart.o + 1704 125 0 64 16271 Obj/SYSTEM_rc522.o + 1536 320 0 93 14384 Obj/SYSTEM_logic_ctrl.o + 440 0 0 4 11718 Obj/SYSTEM_button.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 10014 456 104 500 243542 Object Totals + 4 0 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16339 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + ------------------------------------------------------------ + 3172 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/c-sky/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + ------------------------------------------------------------ + 236 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 18590 780 156 1220 268556 Grand Totals + 18590 780 156 1220 268556 Elf Image Totals + 18590 780 156 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 19370 ( 18.92kB) +Total RW Size (RW Data + ZI Data) 1376 ( 1.34kB) +Total ROM Size (Code + RO Data + RW Data) 19526 ( 19.07kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V03_20250221.asm b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V03_20250221.asm new file mode 100644 index 0000000..44d40d5 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V03_20250221.asm @@ -0,0 +1,10850 @@ + +.//Obj/TRF_TM_CR_V03_20250221.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 0000307a .long 0x0000307a + 8: 0000306a .long 0x0000306a + c: 00000184 .long 0x00000184 + 10: 00003072 .long 0x00003072 + 14: 00003030 .long 0x00003030 + 18: 00000184 .long 0x00000184 + 1c: 00003062 .long 0x00003062 + 20: 0000305a .long 0x0000305a + 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: 00003052 .long 0x00003052 + 44: 0000304a .long 0x0000304a + 48: 00003042 .long 0x00003042 + 4c: 0000303a .long 0x0000303a + 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: 00003032 .long 0x00003032 + 80: 00004064 .long 0x00004064 + 84: 00002724 .long 0x00002724 + 88: 00002814 .long 0x00002814 + 8c: 0000287c .long 0x0000287c + 90: 000028e4 .long 0x000028e4 + 94: 00000184 .long 0x00000184 + 98: 00002a90 .long 0x00002a90 + 9c: 00002e0c .long 0x00002e0c + a0: 00002e3c .long 0x00002e3c + a4: 00002ac4 .long 0x00002ac4 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00002b44 .long 0x00002b44 + b4: 00002bb4 .long 0x00002bb4 + b8: 00002bf0 .long 0x00002bf0 + bc: 00002c84 .long 0x00002c84 + c0: 00000184 .long 0x00000184 + c4: 0000308a .long 0x0000308a + c8: 00000184 .long 0x00000184 + cc: 00002cd0 .long 0x00002cd0 + d0: 00002db8 .long 0x00002db8 + d4: 00002e6c .long 0x00002e6c + d8: 00002eb4 .long 0x00002eb4 + dc: 00002ed4 .long 0x00002ed4 + e0: 00003082 .long 0x00003082 + e4: 00003ad4 .long 0x00003ad4 + e8: 00002f40 .long 0x00002f40 + ec: 00000184 .long 0x00000184 + f0: 00002f74 .long 0x00002f74 + f4: 00002fc0 .long 0x00002fc0 + 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, 0x25a0 // 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: 000025a0 .long 0x000025a0 + 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, 0x4360 // 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: 00004360 .long 0x00004360 + 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, 0x4360 // 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, 0x4360 // 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: 00004360 .long 0x00004360 + 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, 0x4390 // 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: 00004390 .long 0x00004390 + +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, 0x4390 // 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: 00004390 .long 0x00004390 + 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, 0x4390 // 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: 00004390 .long 0x00004390 + +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, 0x43a4 // 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: 000043a4 .long 0x000043a4 + +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, 0x4560 // 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, 0x20000648 // 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: 00004560 .long 0x00004560 + 1a7c: 2000009c .long 0x2000009c + 1a80: 20000648 .long 0x20000648 + 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.EXTI_interrupt_CMD: + +00001d28 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d28: 106b lrw r3, 0x2000005c // 1d54 + 1d2a: 104c lrw r2, 0x3fff // 1d58 + 1d2c: 9360 ld.w r3, (r3, 0x0) + 1d2e: 237f addi r3, 128 + if(NewState != DISABLE) + 1d30: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d32: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 1d34: 0c0c bf 0x1d4c // 1d4c + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 1d36: 9347 ld.w r2, (r3, 0x1c) + 1d38: 6c84 or r2, r1 + 1d3a: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 1d3c: 9349 ld.w r2, (r3, 0x24) + 1d3e: 6884 and r2, r1 + 1d40: 3a40 cmpnei r2, 0 + 1d42: 0ffd bf 0x1d3c // 1d3c + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 1d44: 934b ld.w r2, (r3, 0x2c) + 1d46: 6c48 or r1, r2 + 1d48: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 1d4a: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 1d4c: 9348 ld.w r2, (r3, 0x20) + 1d4e: 6c48 or r1, r2 + 1d50: b328 st.w r1, (r3, 0x20) +} + 1d52: 07fc br 0x1d4a // 1d4a + 1d54: 2000005c .long 0x2000005c + 1d58: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00001d5c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 1d5c: b02b st.w r1, (r0, 0x2c) +} + 1d5e: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00001d60 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 1d60: 3380 movi r3, 128 + 1d62: 4370 lsli r3, r3, 16 + 1d64: 1042 lrw r2, 0xe000e100 // 1d6c + 1d66: b260 st.w r3, (r2, 0x0) +} + 1d68: 783c jmp r15 + 1d6a: 0000 bkpt + 1d6c: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00001d70 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 1d70: 3202 movi r2, 2 + 1d72: 1062 lrw r3, 0xe000e100 // 1d78 + 1d74: b340 st.w r2, (r3, 0x0) +} + 1d76: 783c jmp r15 + 1d78: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +00001d7c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 1d7c: 3202 movi r2, 2 + 1d7e: 1062 lrw r3, 0xe000e180 // 1d84 + 1d80: b340 st.w r2, (r3, 0x0) +} + 1d82: 783c jmp r15 + 1d84: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_INT_Priority: + +00001d88 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1d88: 1066 lrw r3, 0xe000e400 // 1da0 + 1d8a: 1047 lrw r2, 0xc0c0c0c0 // 1da4 + 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 + 1d8c: 1027 lrw r1, 0xc0c000c0 // 1da8 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1d8e: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 1d90: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 1d92: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 1d94: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 1d96: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 1d98: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 1d9a: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 1d9c: b347 st.w r2, (r3, 0x1c) +} + 1d9e: 783c jmp r15 + 1da0: e000e400 .long 0xe000e400 + 1da4: c0c0c0c0 .long 0xc0c0c0c0 + 1da8: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +00001dac : +//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) +{ + 1dac: 14c1 push r4 + 1dae: 4862 lsri r3, r0, 2 + 1db0: 4342 lsli r2, r3, 2 + 1db2: 106a lrw r3, 0x20000064 // 1dd8 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 1db4: 3403 movi r4, 3 + 1db6: 9360 ld.w r3, (r3, 0x0) + 1db8: 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)); + 1dca: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 1dce: 7040 lsl r1, r0 + 1dd0: 6c48 or r1, r2 + 1dd2: b320 st.w r1, (r3, 0x0) +} + 1dd4: 1481 pop r4 + 1dd6: 0000 bkpt + 1dd8: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +00001ddc : +//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) +{ + 1ddc: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1dde: 3907 cmphsi r1, 8 +{ + 1de0: 6d03 mov r4, r0 + if(PinNum<8) + 1de2: 0830 bt 0x1e42 // 1e42 + { + switch (PinNum) + 1de4: 5903 subi r0, r1, 1 + 1de6: 3806 cmphsi r0, 7 + 1de8: 0827 bt 0x1e36 // 1e36 + 1dea: e3fff789 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1dee: 1004 .short 0x1004 + 1df0: 1d1a1613 .long 0x1d1a1613 + 1df4: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1df6: 3300 movi r3, 0 + 1df8: 3104 movi r1, 4 + 1dfa: 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) + 1dfc: 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< + 1e12: 07f5 br 0x1dfc // 1dfc + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e14: 310c movi r1, 12 + 1e16: 1166 lrw r3, 0xffff0fff // 1eac + 1e18: 07f2 br 0x1dfc // 1dfc + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e1a: 3110 movi r1, 16 + 1e1c: 1165 lrw r3, 0xfff10000 // 1eb0 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e1e: 2b00 subi r3, 1 + 1e20: 07ee br 0x1dfc // 1dfc + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e22: 3114 movi r1, 20 + 1e24: 1164 lrw r3, 0xff100000 // 1eb4 + 1e26: 07fc br 0x1e1e // 1e1e + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e28: 33f1 movi r3, 241 + 1e2a: 3118 movi r1, 24 + 1e2c: 4378 lsli r3, r3, 24 + 1e2e: 07f8 br 0x1e1e // 1e1e + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e30: 311c movi r1, 28 + 1e32: 1162 lrw r3, 0xfffffff // 1eb8 + 1e34: 07e4 br 0x1dfc // 1dfc + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1e36: 3300 movi r3, 0 + 1e38: 3100 movi r1, 0 + 1e3a: 2b0f subi r3, 16 + 1e3c: 07e0 br 0x1dfc // 1dfc + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1e42: 390f cmphsi r1, 16 + 1e44: 0be4 bt 0x1e0c // 1e0c + switch (PinNum) + 1e46: 2908 subi r1, 9 + 1e48: 3906 cmphsi r1, 7 + 1e4a: 6c07 mov r0, r1 + 1e4c: 0827 bt 0x1e9a // 1e9a + 1e4e: e3fff757 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1e52: 1004 .short 0x1004 + 1e54: 1d1a1613 .long 0x1d1a1613 + 1e58: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e5a: 3300 movi r3, 0 + 1e5c: 3104 movi r1, 4 + 1e5e: 2bf0 subi r3, 241 + if (Dir) + 1e60: 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; + 1e72: 3108 movi r1, 8 + 1e74: 106d lrw r3, 0xfffff0ff // 1ea8 + 1e76: 07f5 br 0x1e60 // 1e60 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e78: 310c movi r1, 12 + 1e7a: 106d lrw r3, 0xffff0fff // 1eac + 1e7c: 07f2 br 0x1e60 // 1e60 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e7e: 3110 movi r1, 16 + 1e80: 106c lrw r3, 0xfff10000 // 1eb0 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e82: 2b00 subi r3, 1 + 1e84: 07ee br 0x1e60 // 1e60 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e86: 3114 movi r1, 20 + 1e88: 106b lrw r3, 0xff100000 // 1eb4 + 1e8a: 07fc br 0x1e82 // 1e82 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e8c: 33f1 movi r3, 241 + 1e8e: 3118 movi r1, 24 + 1e90: 4378 lsli r3, r3, 24 + 1e92: 07f8 br 0x1e82 // 1e82 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e94: 311c movi r1, 28 + 1e96: 1069 lrw r3, 0xfffffff // 1eb8 + 1e98: 07e4 br 0x1e60 // 1e60 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1e9a: 3300 movi r3, 0 + 1e9c: 3100 movi r1, 0 + 1e9e: 2b0f subi r3, 16 + 1ea0: 07e0 br 0x1e60 // 1e60 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1ea6: 0000 bkpt + 1ea8: fffff0ff .long 0xfffff0ff + 1eac: ffff0fff .long 0xffff0fff + 1eb0: fff10000 .long 0xfff10000 + 1eb4: ff100000 .long 0xff100000 + 1eb8: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001ebc : +//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)); + 1ebc: 4121 lsli r1, r1, 1 + 1ebe: 3203 movi r2, 3 + 1ec0: 9068 ld.w r3, (r0, 0x20) + 1ec2: 7084 lsl r2, r1 + 1ec4: 68c9 andn r3, r2 + 1ec6: 3201 movi r2, 1 + 1ec8: 7084 lsl r2, r1 + 1eca: 6cc8 or r3, r2 + 1ecc: b068 st.w r3, (r0, 0x20) +} + 1ece: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001ed0 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1ed0: 4121 lsli r1, r1, 1 + 1ed2: 3301 movi r3, 1 + 1ed4: 9049 ld.w r2, (r0, 0x24) + 1ed6: 70c4 lsl r3, r1 + 1ed8: 6cc8 or r3, r2 + 1eda: b069 st.w r3, (r0, 0x24) +} + 1edc: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001ee0 : +//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) +{ + 1ee0: 14c1 push r4 + 1ee2: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1ee4: 3a0f cmphsi r2, 16 + 1ee6: 084f bt 0x1f84 // 1f84 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1ee8: 6ccb mov r3, r2 + 1eea: 3b83 bclri r3, 3 + 1eec: 3b40 cmpnei r3, 0 + 1eee: 0813 bt 0x1f14 // 1f14 + { + R_data_temp=0xfffffff0; + 1ef0: 2b0f subi r3, 16 + 1ef2: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1ef4: 3300 movi r3, 0 + else if((Selete_EXI_x==7)||(Selete_EXI_x==15)) + { + R_data_temp=0x0fffffff; + R_GPIO_Pin=28; + } + if(Selete_EXI_x<8) + 1ef6: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1ef8: dc6e0003 st.b r3, (r14, 0x3) + 1efc: 1176 lrw r3, 0x20000044 // 1fd4 + if(Selete_EXI_x<8) + 1efe: 0c38 bf 0x1f6e // 1f6e + { + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8)) + { + GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE< + else if((Selete_EXI_x==1)||(Selete_EXI_x==9)) + 1f14: 3b41 cmpnei r3, 1 + 1f16: 0806 bt 0x1f22 // 1f22 + R_data_temp=0xffffff0f; + 1f18: 3300 movi r3, 0 + 1f1a: 2bf0 subi r3, 241 + 1f1c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1f1e: 3304 movi r3, 4 + 1f20: 07eb br 0x1ef6 // 1ef6 + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1f22: 3b42 cmpnei r3, 2 + 1f24: 0805 bt 0x1f2e // 1f2e + R_data_temp=0xfffff0ff; + 1f26: 116d lrw r3, 0xfffff0ff // 1fd8 + 1f28: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1f2a: 3308 movi r3, 8 + 1f2c: 07e5 br 0x1ef6 // 1ef6 + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 1f2e: 3b43 cmpnei r3, 3 + 1f30: 0805 bt 0x1f3a // 1f3a + R_data_temp=0xffff0fff; + 1f32: 116b lrw r3, 0xffff0fff // 1fdc + 1f34: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 1f36: 330c movi r3, 12 + 1f38: 07df br 0x1ef6 // 1ef6 + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 1f3a: 3b44 cmpnei r3, 4 + 1f3c: 0806 bt 0x1f48 // 1f48 + R_data_temp=0xfff0ffff; + 1f3e: 1169 lrw r3, 0xfff10000 // 1fe0 + 1f40: 2b00 subi r3, 1 + 1f42: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 1f44: 3310 movi r3, 16 + 1f46: 07d8 br 0x1ef6 // 1ef6 + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 1f48: 3b45 cmpnei r3, 5 + 1f4a: 0806 bt 0x1f56 // 1f56 + R_data_temp=0xff0fffff; + 1f4c: 1166 lrw r3, 0xff100000 // 1fe4 + 1f4e: 2b00 subi r3, 1 + 1f50: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 1f52: 3314 movi r3, 20 + 1f54: 07d1 br 0x1ef6 // 1ef6 + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 1f56: 3b46 cmpnei r3, 6 + 1f58: 0807 bt 0x1f66 // 1f66 + R_data_temp=0xf0ffffff; + 1f5a: 33f1 movi r3, 241 + 1f5c: 4378 lsli r3, r3, 24 + 1f5e: 2b00 subi r3, 1 + 1f60: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 1f62: 3318 movi r3, 24 + 1f64: 07c9 br 0x1ef6 // 1ef6 + R_data_temp=0x0fffffff; + 1f66: 1161 lrw r3, 0xfffffff // 1fe8 + 1f68: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 1f6a: 331c movi r3, 28 + 1f6c: 07c5 br 0x1ef6 // 1ef6 + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 1f80: 1402 addi r14, r14, 8 + 1f82: 1481 pop r4 + else if(Selete_EXI_x<20) + 1f84: 3a13 cmphsi r2, 20 + 1f86: 0bfd bt 0x1f80 // 1f80 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 1f88: 3840 cmpnei r0, 0 + 1f8a: 0814 bt 0x1fb2 // 1fb2 + 1f8c: 3300 movi r3, 0 + 1f8e: 2b0f subi r3, 16 + 1f90: 60c8 addu r3, r2 + 1f92: 3b01 cmphsi r3, 2 + 1f94: 0bf6 bt 0x1f80 // 1f80 + if(Selete_EXI_x==16) + 1f96: 3a50 cmpnei r2, 16 + 1f98: 106f lrw r3, 0x20000044 // 1fd4 + 1f9a: 0806 bt 0x1fa6 // 1fa6 + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 1f9c: 9340 ld.w r2, (r3, 0x0) + 1f9e: 9262 ld.w r3, (r2, 0x8) + 1fa0: 6c4c or r1, r3 + 1fa2: b222 st.w r1, (r2, 0x8) + 1fa4: 07ee br 0x1f80 // 1f80 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 1fa6: 9360 ld.w r3, (r3, 0x0) + 1fa8: 9342 ld.w r2, (r3, 0x8) + 1faa: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 1fac: 6c48 or r1, r2 + 1fae: b322 st.w r1, (r3, 0x8) +} + 1fb0: 07e8 br 0x1f80 // 1f80 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 1fb2: 3842 cmpnei r0, 2 + 1fb4: 0be6 bt 0x1f80 // 1f80 + 1fb6: 3300 movi r3, 0 + 1fb8: 2b11 subi r3, 18 + 1fba: 60c8 addu r3, r2 + 1fbc: 3b01 cmphsi r3, 2 + 1fbe: 0be1 bt 0x1f80 // 1f80 + 1fc0: 1065 lrw r3, 0x20000044 // 1fd4 + if(Selete_EXI_x==18) + 1fc2: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 1fc4: 9360 ld.w r3, (r3, 0x0) + 1fc6: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 1fc8: 0803 bt 0x1fce // 1fce + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 1fca: 4128 lsli r1, r1, 8 + 1fcc: 07f0 br 0x1fac // 1fac + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 1fce: 412c lsli r1, r1, 12 + 1fd0: 07ee br 0x1fac // 1fac + 1fd2: 0000 bkpt + 1fd4: 20000044 .long 0x20000044 + 1fd8: fffff0ff .long 0xfffff0ff + 1fdc: ffff0fff .long 0xffff0fff + 1fe0: fff10000 .long 0xfff10000 + 1fe4: ff100000 .long 0xff100000 + 1fe8: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00001fec : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 1fec: 14d0 push r15 + switch (EXI_IO) + 1fee: 380f cmphsi r0, 16 + 1ff0: 0812 bt 0x2014 // 2014 + 1ff2: 117d lrw r3, 0x2000004c // 20e4 + 1ff4: e3fff684 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1ff8: 1d150f08 .long 0x1d150f08 + 1ffc: 39322b24 .long 0x39322b24 + 2000: 544c463f .long 0x544c463f + 2004: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2008: 9340 ld.w r2, (r3, 0x0) + 200a: 9260 ld.w r3, (r2, 0x0) + 200c: 310f movi r1, 15 + 200e: 68c5 andn r3, r1 + 2010: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2012: b260 st.w r3, (r2, 0x0) + 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; + } +} + 2014: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2016: 9340 ld.w r2, (r3, 0x0) + 2018: 9260 ld.w r3, (r2, 0x0) + 201a: 31f0 movi r1, 240 + 201c: 68c5 andn r3, r1 + 201e: 3ba4 bseti r3, 4 + 2020: 07f9 br 0x2012 // 2012 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 2022: 9320 ld.w r1, (r3, 0x0) + 2024: 32f0 movi r2, 240 + 2026: 9160 ld.w r3, (r1, 0x0) + 2028: 4244 lsli r2, r2, 4 + 202a: 68c9 andn r3, r2 + 202c: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 202e: b160 st.w r3, (r1, 0x0) + 2030: 07f2 br 0x2014 // 2014 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 2032: 9320 ld.w r1, (r3, 0x0) + 2034: 32f0 movi r2, 240 + 2036: 9160 ld.w r3, (r1, 0x0) + 2038: 4248 lsli r2, r2, 8 + 203a: 68c9 andn r3, r2 + 203c: 3bac bseti r3, 12 + 203e: 07f8 br 0x202e // 202e + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 2040: 9320 ld.w r1, (r3, 0x0) + 2042: 32f0 movi r2, 240 + 2044: 9160 ld.w r3, (r1, 0x0) + 2046: 424c lsli r2, r2, 12 + 2048: 68c9 andn r3, r2 + 204a: 3bb0 bseti r3, 16 + 204c: 07f1 br 0x202e // 202e + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 204e: 9320 ld.w r1, (r3, 0x0) + 2050: 32f0 movi r2, 240 + 2052: 9160 ld.w r3, (r1, 0x0) + 2054: 4250 lsli r2, r2, 16 + 2056: 68c9 andn r3, r2 + 2058: 3bb4 bseti r3, 20 + 205a: 07ea br 0x202e // 202e + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 205c: 9320 ld.w r1, (r3, 0x0) + 205e: 32f0 movi r2, 240 + 2060: 9160 ld.w r3, (r1, 0x0) + 2062: 4254 lsli r2, r2, 20 + 2064: 68c9 andn r3, r2 + 2066: 3bb8 bseti r3, 24 + 2068: 07e3 br 0x202e // 202e + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 206a: 9340 ld.w r2, (r3, 0x0) + 206c: 9260 ld.w r3, (r2, 0x0) + 206e: 4364 lsli r3, r3, 4 + 2070: 4b64 lsri r3, r3, 4 + 2072: 3bbc bseti r3, 28 + 2074: 07cf br 0x2012 // 2012 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 2076: 9340 ld.w r2, (r3, 0x0) + 2078: 9261 ld.w r3, (r2, 0x4) + 207a: 310f movi r1, 15 + 207c: 68c5 andn r3, r1 + 207e: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 2080: b261 st.w r3, (r2, 0x4) +} + 2082: 07c9 br 0x2014 // 2014 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 2084: 9340 ld.w r2, (r3, 0x0) + 2086: 9261 ld.w r3, (r2, 0x4) + 2088: 31f0 movi r1, 240 + 208a: 68c5 andn r3, r1 + 208c: 3ba4 bseti r3, 4 + 208e: 07f9 br 0x2080 // 2080 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 2090: 9320 ld.w r1, (r3, 0x0) + 2092: 32f0 movi r2, 240 + 2094: 9161 ld.w r3, (r1, 0x4) + 2096: 4244 lsli r2, r2, 4 + 2098: 68c9 andn r3, r2 + 209a: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 209c: b161 st.w r3, (r1, 0x4) + 209e: 07bb br 0x2014 // 2014 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 20a0: 9320 ld.w r1, (r3, 0x0) + 20a2: 32f0 movi r2, 240 + 20a4: 9161 ld.w r3, (r1, 0x4) + 20a6: 4248 lsli r2, r2, 8 + 20a8: 68c9 andn r3, r2 + 20aa: 3bac bseti r3, 12 + 20ac: 07f8 br 0x209c // 209c + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 20ae: 9320 ld.w r1, (r3, 0x0) + 20b0: 32f0 movi r2, 240 + 20b2: 9161 ld.w r3, (r1, 0x4) + 20b4: 424c lsli r2, r2, 12 + 20b6: 68c9 andn r3, r2 + 20b8: 3bb0 bseti r3, 16 + 20ba: 07f1 br 0x209c // 209c + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 20bc: 9320 ld.w r1, (r3, 0x0) + 20be: 32f0 movi r2, 240 + 20c0: 9161 ld.w r3, (r1, 0x4) + 20c2: 4250 lsli r2, r2, 16 + 20c4: 68c9 andn r3, r2 + 20c6: 3bb4 bseti r3, 20 + 20c8: 07ea br 0x209c // 209c + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 20ca: 9320 ld.w r1, (r3, 0x0) + 20cc: 32f0 movi r2, 240 + 20ce: 9161 ld.w r3, (r1, 0x4) + 20d0: 4254 lsli r2, r2, 20 + 20d2: 68c9 andn r3, r2 + 20d4: 3bb8 bseti r3, 24 + 20d6: 07e3 br 0x209c // 209c + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 20d8: 9340 ld.w r2, (r3, 0x0) + 20da: 9261 ld.w r3, (r2, 0x4) + 20dc: 4364 lsli r3, r3, 4 + 20de: 4b64 lsri r3, r3, 4 + 20e0: 3bbc bseti r3, 28 + 20e2: 07cf br 0x2080 // 2080 + 20e4: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +000020e8 : +//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<: +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint32_t dat = 0; + dat=((GPIOx)->ODSR>>bit)&1ul; + 20f8: 9045 ld.w r2, (r0, 0x14) + 20fa: 3301 movi r3, 1 + 20fc: 7085 lsr r2, r1 + 20fe: 688c and r2, r3 + { + if (dat==1) + 2100: 3a40 cmpnei r2, 0 + 2102: 70c4 lsl r3, r1 + 2104: 0c03 bf 0x210a // 210a + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +0000210e : +/*************************************************************/ +uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + uint8_t value = 0; + uint32_t dat = 0; + dat=((GPIOx)->PSDR)&(1<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 2120: 1064 lrw r3, 0x20000014 // 2130 + 2122: 9340 ld.w r2, (r3, 0x0) + 2124: 9261 ld.w r3, (r2, 0x4) + 2126: 3bac bseti r3, 12 + 2128: 3bae bseti r3, 14 + 212a: b261 st.w r3, (r2, 0x4) +} + 212c: 783c jmp r15 + 212e: 0000 bkpt + 2130: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002134 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2134: 1063 lrw r3, 0x20000010 // 2140 + 2136: 9360 ld.w r3, (r3, 0x0) + 2138: 9340 ld.w r2, (r3, 0x0) + 213a: 6c08 or r0, r2 + 213c: b300 st.w r0, (r3, 0x0) +} + 213e: 783c jmp r15 + 2140: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002144 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2144: 3300 movi r3, 0 + 2146: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 2148: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 214a: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 214c: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 214e: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2150: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2152: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2154: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 2156: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 2158: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 215a: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 215c: b06d st.w r3, (r0, 0x34) +} + 215e: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00002160 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 2160: 9060 ld.w r3, (r0, 0x0) + 2162: 3ba0 bseti r3, 0 + 2164: b060 st.w r3, (r0, 0x0) +} + 2166: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00002168 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 2168: 9060 ld.w r3, (r0, 0x0) + 216a: 3bac bseti r3, 12 + 216c: 3bae bseti r3, 14 + 216e: b060 st.w r3, (r0, 0x0) +} + 2170: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00002172 : +//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) +{ + 2172: 14c3 push r4-r6 + 2174: 98a4 ld.w r5, (r14, 0x10) + 2176: 6d97 mov r6, r5 + 2178: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 217a: 6d18 or r4, r6 + 217c: 6cd0 or r3, r4 + 217e: 90a1 ld.w r5, (r0, 0x4) + 2180: 6c4c or r1, r3 + 2182: 6c54 or r1, r5 + 2184: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 2186: b042 st.w r2, (r0, 0x8) +} + 2188: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000218a : +//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) +{ + 218a: 14c4 push r4-r7 + 218c: 1421 subi r14, r14, 4 + 218e: 9885 ld.w r4, (r14, 0x14) + 2190: 6dd3 mov r7, r4 + 2192: 9886 ld.w r4, (r14, 0x18) + 2194: b880 st.w r4, (r14, 0x0) + 2196: 9887 ld.w r4, (r14, 0x1c) + 2198: 6d93 mov r6, r4 + 219a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 219c: 6d58 or r5, r6 + 219e: 98c0 ld.w r6, (r14, 0x0) + 21a0: 6d58 or r5, r6 + 21a2: 6d5c or r5, r7 + 21a4: 6cd4 or r3, r5 + 21a6: 6c8c or r2, r3 + 21a8: 9081 ld.w r4, (r0, 0x4) + 21aa: 6c48 or r1, r2 + 21ac: 6d04 or r4, r1 + 21ae: 6d9f mov r6, r7 + 21b0: b081 st.w r4, (r0, 0x4) +} + 21b2: 1401 addi r14, r14, 4 + 21b4: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +000021b6 : +//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; + 21b6: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 21b8: b044 st.w r2, (r0, 0x10) +} + 21ba: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +000021bc : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 21bc: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 21be: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 21c0: 0c04 bf 0x21c8 // 21c8 + BTx->IMCR |= BT_IMSCR_X; + 21c2: 6c8c or r2, r3 + 21c4: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 21c6: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 21c8: 68c9 andn r3, r2 + 21ca: b06b st.w r3, (r0, 0x2c) +} + 21cc: 07fd br 0x21c6 // 21c6 + +Disassembly of section .text.BT1_INT_ENABLE: + +000021d0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 21d0: 3380 movi r3, 128 + 21d2: 4376 lsli r3, r3, 22 + 21d4: 1042 lrw r2, 0xe000e100 // 21dc + 21d6: b260 st.w r3, (r2, 0x0) +} + 21d8: 783c jmp r15 + 21da: 0000 bkpt + 21dc: e000e100 .long 0xe000e100 + +Disassembly of section .text.GPT_IO_Init: + +000021e0 : +//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) + 21e0: 3840 cmpnei r0, 0 + 21e2: 080a bt 0x21f6 // 21f6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050; + 21e4: 1165 lrw r3, 0x20000048 // 2278 + 21e6: 31f0 movi r1, 240 + 21e8: 9340 ld.w r2, (r3, 0x0) + 21ea: 9260 ld.w r3, (r2, 0x0) + 21ec: 68c5 andn r3, r1 + 21ee: 3ba4 bseti r3, 4 + 21f0: 3ba6 bseti r3, 6 + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + } + if(IONAME==GPT_CHB_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 21f2: b260 st.w r3, (r2, 0x0) + } +} + 21f4: 040b br 0x220a // 220a + if(IONAME==GPT_CHA_PA09) + 21f6: 3841 cmpnei r0, 1 + 21f8: 080a bt 0x220c // 220c + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050; + 21fa: 1161 lrw r3, 0x2000004c // 227c + 21fc: 31f0 movi r1, 240 + 21fe: 9340 ld.w r2, (r3, 0x0) + 2200: 9261 ld.w r3, (r2, 0x4) + 2202: 68c5 andn r3, r1 + 2204: 3ba4 bseti r3, 4 + 2206: 3ba6 bseti r3, 6 + 2208: b261 st.w r3, (r2, 0x4) +} + 220a: 783c jmp r15 + if(IONAME==GPT_CHA_PA010) + 220c: 3842 cmpnei r0, 2 + 220e: 080b bt 0x2224 // 2224 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600; + 2210: 107b lrw r3, 0x2000004c // 227c + 2212: 32f0 movi r2, 240 + 2214: 9320 ld.w r1, (r3, 0x0) + 2216: 9161 ld.w r3, (r1, 0x4) + 2218: 4244 lsli r2, r2, 4 + 221a: 68c9 andn r3, r2 + 221c: 3ba9 bseti r3, 9 + 221e: 3baa bseti r3, 10 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 2220: b161 st.w r3, (r1, 0x4) + 2222: 07f4 br 0x220a // 220a + if(IONAME==GPT_CHB_PA010) + 2224: 3843 cmpnei r0, 3 + 2226: 080b bt 0x223c // 223c + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700; + 2228: 1075 lrw r3, 0x2000004c // 227c + 222a: 32f0 movi r2, 240 + 222c: 9320 ld.w r1, (r3, 0x0) + 222e: 4244 lsli r2, r2, 4 + 2230: 9161 ld.w r3, (r1, 0x4) + 2232: 68c9 andn r3, r2 + 2234: 32e0 movi r2, 224 + 2236: 4243 lsli r2, r2, 3 + 2238: 6cc8 or r3, r2 + 223a: 07f3 br 0x2220 // 2220 + if(IONAME==GPT_CHB_PA011) + 223c: 3844 cmpnei r0, 4 + 223e: 080a bt 0x2252 // 2252 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000; + 2240: 106f lrw r3, 0x2000004c // 227c + 2242: 32f0 movi r2, 240 + 2244: 9320 ld.w r1, (r3, 0x0) + 2246: 9161 ld.w r3, (r1, 0x4) + 2248: 4248 lsli r2, r2, 8 + 224a: 68c9 andn r3, r2 + 224c: 3bad bseti r3, 13 + 224e: 3bae bseti r3, 14 + 2250: 07e8 br 0x2220 // 2220 + if(IONAME==GPT_CHB_PB00) + 2252: 3845 cmpnei r0, 5 + 2254: 0808 bt 0x2264 // 2264 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004; + 2256: 1069 lrw r3, 0x20000048 // 2278 + 2258: 310f movi r1, 15 + 225a: 9340 ld.w r2, (r3, 0x0) + 225c: 9260 ld.w r3, (r2, 0x0) + 225e: 68c5 andn r3, r1 + 2260: 3ba2 bseti r3, 2 + 2262: 07c8 br 0x21f2 // 21f2 + if(IONAME==GPT_CHB_PB01) + 2264: 3846 cmpnei r0, 6 + 2266: 0bd2 bt 0x220a // 220a + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060; + 2268: 1064 lrw r3, 0x20000048 // 2278 + 226a: 31f0 movi r1, 240 + 226c: 9340 ld.w r2, (r3, 0x0) + 226e: 9260 ld.w r3, (r2, 0x0) + 2270: 68c5 andn r3, r1 + 2272: 3ba5 bseti r3, 5 + 2274: 3ba6 bseti r3, 6 + 2276: 07be br 0x21f2 // 21f2 + 2278: 20000048 .long 0x20000048 + 227c: 2000004c .long 0x2000004c + +Disassembly of section .text.GPT_Configure: + +00002280 : +//GPT Init +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX) +{ + 2280: 14c1 push r4 + GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX; + 2282: 6c48 or r1, r2 + 2284: 1083 lrw r4, 0x20000024 // 2290 + 2286: 6c04 or r0, r1 + 2288: 9480 ld.w r4, (r4, 0x0) + 228a: b400 st.w r0, (r4, 0x0) + GPT0->PSCR=GPSCX; + 228c: b462 st.w r3, (r4, 0x8) +} + 228e: 1481 pop r4 + 2290: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveCtrl_Configure: + +00002294 : +/*************************************************************/ +//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) +{ + 2294: 14c4 push r4-r7 + 2296: 1423 subi r14, r14, 12 + 2298: 9887 ld.w r4, (r14, 0x1c) + 229a: 6dd3 mov r7, r4 + 229c: 9888 ld.w r4, (r14, 0x20) + 229e: b880 st.w r4, (r14, 0x0) + 22a0: 9889 ld.w r4, (r14, 0x24) + 22a2: b881 st.w r4, (r14, 0x4) + 22a4: 988a ld.w r4, (r14, 0x28) + 22a6: b882 st.w r4, (r14, 0x8) + 22a8: 988b ld.w r4, (r14, 0x2c) + 22aa: 6d93 mov r6, r4 + 22ac: 988c ld.w r4, (r14, 0x30) + GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE; + 22ae: 3cb2 bseti r4, 18 + 22b0: 6d18 or r4, r6 + 22b2: 98c2 ld.w r6, (r14, 0x8) + 22b4: 6d18 or r4, r6 + 22b6: 98c1 ld.w r6, (r14, 0x4) + 22b8: 6d18 or r4, r6 + 22ba: 98c0 ld.w r6, (r14, 0x0) + 22bc: 6d18 or r4, r6 + 22be: 6d1c or r4, r7 + 22c0: 6cd0 or r3, r4 + 22c2: 6c8c or r2, r3 + 22c4: 6c48 or r1, r2 + 22c6: 10a4 lrw r5, 0x20000024 // 22d4 + 22c8: 6c04 or r0, r1 + 22ca: 95a0 ld.w r5, (r5, 0x0) + 22cc: 6d9f mov r6, r7 + 22ce: b503 st.w r0, (r5, 0xc) +} + 22d0: 1403 addi r14, r14, 12 + 22d2: 1484 pop r4-r7 + 22d4: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveLoad_Configure: + +000022d8 : +//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) +{ + 22d8: 14c1 push r4 + GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX; + 22da: 6c8c or r2, r3 + 22dc: 6c48 or r1, r2 + 22de: 1083 lrw r4, 0x20000024 // 22e8 + 22e0: 6c04 or r0, r1 + 22e2: 9480 ld.w r4, (r4, 0x0) + 22e4: b411 st.w r0, (r4, 0x44) +} + 22e6: 1481 pop r4 + 22e8: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_WaveOut_Configure: + +000022ec : +//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) +{ + 22ec: 14c4 push r4-r7 + 22ee: 1425 subi r14, r14, 20 + 22f0: 1c09 addi r4, r14, 36 + 22f2: 8480 ld.b r4, (r4, 0x0) + 22f4: b880 st.w r4, (r14, 0x0) + 22f6: 1c0a addi r4, r14, 40 + 22f8: 8480 ld.b r4, (r4, 0x0) + 22fa: b881 st.w r4, (r14, 0x4) + 22fc: 1c0b addi r4, r14, 44 + 22fe: 8480 ld.b r4, (r4, 0x0) + 2300: b882 st.w r4, (r14, 0x8) + 2302: 1c0c addi r4, r14, 48 + 2304: 8480 ld.b r4, (r4, 0x0) + 2306: b883 st.w r4, (r14, 0xc) + 2308: 1c0d addi r4, r14, 52 + 230a: 8480 ld.b r4, (r4, 0x0) + 230c: 1e10 addi r6, r14, 64 + 230e: b884 st.w r4, (r14, 0x10) + 2310: 1d0f addi r5, r14, 60 + 2312: 1c0e addi r4, r14, 56 + 2314: 86e0 ld.b r7, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 2316: 3840 cmpnei r0, 0 +{ + 2318: 1e11 addi r6, r14, 68 + 231a: 8480 ld.b r4, (r4, 0x0) + 231c: 85a0 ld.b r5, (r5, 0x0) + 231e: 86c0 ld.b r6, (r6, 0x0) + if(GPTCHX==GPT_CHA) + 2320: 081f bt 0x235e // 235e + { + GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 2322: 47f0 lsli r7, r7, 16 + 2324: 46d2 lsli r6, r6, 18 + 2326: 45ae lsli r5, r5, 14 + 2328: 6dd8 or r7, r6 + 232a: 6dd4 or r7, r5 + 232c: 448c lsli r4, r4, 12 + 232e: 6dd0 or r7, r4 + 2330: 9884 ld.w r4, (r14, 0x10) + 2332: 448a lsli r4, r4, 10 + 2334: 6dd0 or r7, r4 + 2336: 9883 ld.w r4, (r14, 0xc) + 2338: 4488 lsli r4, r4, 8 + 233a: 98a2 ld.w r5, (r14, 0x8) + 233c: 6d1c or r4, r7 + 233e: 45e6 lsli r7, r5, 6 + 2340: 6d1c or r4, r7 + 2342: 6c90 or r2, r4 + 2344: 6cc8 or r3, r2 + 2346: 9841 ld.w r2, (r14, 0x4) + 2348: 4244 lsli r2, r2, 4 + 234a: 6cc8 or r3, r2 + 234c: 6c4c or r1, r3 + 234e: 9860 ld.w r3, (r14, 0x0) + 2350: 4362 lsli r3, r3, 2 + 2352: 1013 lrw r0, 0x20000024 // 239c + 2354: 6c4c or r1, r3 + 2356: 9000 ld.w r0, (r0, 0x0) + 2358: 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); + } +} + 235a: 1405 addi r14, r14, 20 + 235c: 1484 pop r4-r7 + if(GPTCHX==GPT_CHB) + 235e: 3841 cmpnei r0, 1 + 2360: 0bfd bt 0x235a // 235a + GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18); + 2362: 47f0 lsli r7, r7, 16 + 2364: 46d2 lsli r6, r6, 18 + 2366: 45ae lsli r5, r5, 14 + 2368: 6dd8 or r7, r6 + 236a: 6dd4 or r7, r5 + 236c: 448c lsli r4, r4, 12 + 236e: 6dd0 or r7, r4 + 2370: 9884 ld.w r4, (r14, 0x10) + 2372: 448a lsli r4, r4, 10 + 2374: 6dd0 or r7, r4 + 2376: 9883 ld.w r4, (r14, 0xc) + 2378: 4488 lsli r4, r4, 8 + 237a: 98a2 ld.w r5, (r14, 0x8) + 237c: 6d1c or r4, r7 + 237e: 45e6 lsli r7, r5, 6 + 2380: 6d1c or r4, r7 + 2382: 6c90 or r2, r4 + 2384: 6cc8 or r3, r2 + 2386: 9841 ld.w r2, (r14, 0x4) + 2388: 4244 lsli r2, r2, 4 + 238a: 6cc8 or r3, r2 + 238c: 6c4c or r1, r3 + 238e: 9860 ld.w r3, (r14, 0x0) + 2390: 4362 lsli r3, r3, 2 + 2392: 1003 lrw r0, 0x20000024 // 239c + 2394: 6c4c or r1, r3 + 2396: 9000 ld.w r0, (r0, 0x0) + 2398: b033 st.w r1, (r0, 0x4c) +} + 239a: 07e0 br 0x235a // 235a + 239c: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Start: + +000023a0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT_Start(void) +{ + GPT0->RSSR |= 0X01; + 23a0: 1063 lrw r3, 0x20000024 // 23ac + 23a2: 9340 ld.w r2, (r3, 0x0) + 23a4: 9261 ld.w r3, (r2, 0x4) + 23a6: 3ba0 bseti r3, 0 + 23a8: b261 st.w r3, (r2, 0x4) +} + 23aa: 783c jmp r15 + 23ac: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_Period_CMP_Write: + +000023b0 : +//EntryParameter: +//ReturnValue:NONE +/*************************************************************/ +void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA) +{ + GPT0->PRDR =PRDR_DATA; + 23b0: 1063 lrw r3, 0x20000024 // 23bc + 23b2: 9360 ld.w r3, (r3, 0x0) + 23b4: b309 st.w r0, (r3, 0x24) + GPT0->CMPA =CMPA_DATA; + 23b6: b32b st.w r1, (r3, 0x2c) + GPT0->CMPB =CMPB_DATA; + 23b8: b34c st.w r2, (r3, 0x30) +} + 23ba: 783c jmp r15 + 23bc: 20000024 .long 0x20000024 + +Disassembly of section .text.GPT_ConfigInterrupt_CMD: + +000023c0 : +//EntryParameter:LPT_IMSCR_X,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X) +{ + 23c0: 1066 lrw r3, 0x20000024 // 23d8 + if (NewState != DISABLE) + 23c2: 3840 cmpnei r0, 0 + { + GPT0->IMCR |= GPT_IMSCR_X; + 23c4: 9360 ld.w r3, (r3, 0x0) + 23c6: 237f addi r3, 128 + 23c8: 9356 ld.w r2, (r3, 0x58) + if (NewState != DISABLE) + 23ca: 0c04 bf 0x23d2 // 23d2 + GPT0->IMCR |= GPT_IMSCR_X; + 23cc: 6c48 or r1, r2 + 23ce: b336 st.w r1, (r3, 0x58) + } + else + { + GPT0->IMCR &= ~GPT_IMSCR_X; + } +} + 23d0: 783c jmp r15 + GPT0->IMCR &= ~GPT_IMSCR_X; + 23d2: 6885 andn r2, r1 + 23d4: b356 st.w r2, (r3, 0x58) +} + 23d6: 07fd br 0x23d0 // 23d0 + 23d8: 20000024 .long 0x20000024 + +Disassembly of section .text.UART0_DeInit: + +000023dc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 23dc: 1065 lrw r3, 0x20000040 // 23f0 + 23de: 3200 movi r2, 0 + 23e0: 9360 ld.w r3, (r3, 0x0) + 23e2: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 23e4: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 23e6: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 23e8: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 23ea: b344 st.w r2, (r3, 0x10) +} + 23ec: 783c jmp r15 + 23ee: 0000 bkpt + 23f0: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000023f4 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 23f4: 1065 lrw r3, 0x2000003c // 2408 + 23f6: 3200 movi r2, 0 + 23f8: 9360 ld.w r3, (r3, 0x0) + 23fa: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 23fc: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 23fe: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 2400: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 2402: b344 st.w r2, (r3, 0x10) +} + 2404: 783c jmp r15 + 2406: 0000 bkpt + 2408: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +0000240c : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 240c: 1065 lrw r3, 0x20000038 // 2420 + 240e: 3200 movi r2, 0 + 2410: 9360 ld.w r3, (r3, 0x0) + 2412: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 2414: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 2416: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 2418: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 241a: b344 st.w r2, (r3, 0x10) +} + 241c: 783c jmp r15 + 241e: 0000 bkpt + 2420: 20000038 .long 0x20000038 + +Disassembly of section .text.UART1_Int_Enable: + +00002424 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 2424: 1065 lrw r3, 0x2000003c // 2438 + 2426: 320f movi r2, 15 + 2428: 9360 ld.w r3, (r3, 0x0) + 242a: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 242c: 3380 movi r3, 128 + 242e: 4367 lsli r3, r3, 7 + 2430: 1043 lrw r2, 0xe000e100 // 243c + 2432: b260 st.w r3, (r2, 0x0) +} + 2434: 783c jmp r15 + 2436: 0000 bkpt + 2438: 2000003c .long 0x2000003c + 243c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002440 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2440: 1065 lrw r3, 0x20000038 // 2454 + 2442: 320f movi r2, 15 + 2444: 9360 ld.w r3, (r3, 0x0) + 2446: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2448: 3380 movi r3, 128 + 244a: 4368 lsli r3, r3, 8 + 244c: 1043 lrw r2, 0xe000e100 // 2458 + 244e: b260 st.w r3, (r2, 0x0) +} + 2450: 783c jmp r15 + 2452: 0000 bkpt + 2454: 20000038 .long 0x20000038 + 2458: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +0000245c : +//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) + 245c: 3840 cmpnei r0, 0 + 245e: 0821 bt 0x24a0 // 24a0 + { + if(UART_IO_G==0) + 2460: 3940 cmpnei r1, 0 + 2462: 080a bt 0x2476 // 2476 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2464: 1177 lrw r3, 0x2000004c // 2540 + 2466: 31ff movi r1, 255 + 2468: 9340 ld.w r2, (r3, 0x0) + 246a: 9260 ld.w r3, (r2, 0x0) + 246c: 68c5 andn r3, r1 + 246e: 3ba2 bseti r3, 2 + 2470: 3ba6 bseti r3, 6 + } + if (IO_UART_NUM==IO_UART2) + { + if(UART_IO_G==0) + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2472: b260 st.w r3, (r2, 0x0) + 2474: 0415 br 0x249e // 249e + else if(UART_IO_G==1) + 2476: 3941 cmpnei r1, 1 + 2478: 0813 bt 0x249e // 249e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 247a: 1172 lrw r3, 0x2000004c // 2540 + 247c: 31f0 movi r1, 240 + 247e: 9340 ld.w r2, (r3, 0x0) + 2480: 9260 ld.w r3, (r2, 0x0) + 2482: 4130 lsli r1, r1, 16 + 2484: 68c5 andn r3, r1 + 2486: 31e0 movi r1, 224 + 2488: 412f lsli r1, r1, 15 + 248a: 6cc4 or r3, r1 + 248c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 248e: 31f0 movi r1, 240 + 2490: 9261 ld.w r3, (r2, 0x4) + 2492: 412c lsli r1, r1, 12 + 2494: 68c5 andn r3, r1 + 2496: 31e0 movi r1, 224 + 2498: 412b lsli r1, r1, 11 + 249a: 6cc4 or r3, r1 + 249c: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 249e: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 24a0: 3841 cmpnei r0, 1 + 24a2: 082d bt 0x24fc // 24fc + if(UART_IO_G==0) + 24a4: 3940 cmpnei r1, 0 + 24a6: 0814 bt 0x24ce // 24ce + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 24a8: 1167 lrw r3, 0x20000048 // 2544 + 24aa: 310f movi r1, 15 + 24ac: 9340 ld.w r2, (r3, 0x0) + 24ae: 9260 ld.w r3, (r2, 0x0) + 24b0: 68c5 andn r3, r1 + 24b2: 3107 movi r1, 7 + 24b4: 6cc4 or r3, r1 + 24b6: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 24b8: 32f0 movi r2, 240 + 24ba: 1162 lrw r3, 0x2000004c // 2540 + 24bc: 4250 lsli r2, r2, 16 + 24be: 9320 ld.w r1, (r3, 0x0) + 24c0: 9161 ld.w r3, (r1, 0x4) + 24c2: 68c9 andn r3, r2 + 24c4: 32e0 movi r2, 224 + 24c6: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 24c8: 6cc8 or r3, r2 + 24ca: b161 st.w r3, (r1, 0x4) + 24cc: 07e9 br 0x249e // 249e + else if(UART_IO_G==1) + 24ce: 3941 cmpnei r1, 1 + 24d0: 080c bt 0x24e8 // 24e8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 24d2: 107c lrw r3, 0x2000004c // 2540 + 24d4: 32ff movi r2, 255 + 24d6: 9320 ld.w r1, (r3, 0x0) + 24d8: 424c lsli r2, r2, 12 + 24da: 9160 ld.w r3, (r1, 0x0) + 24dc: 68c9 andn r3, r2 + 24de: 32ee movi r2, 238 + 24e0: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 24e2: 6cc8 or r3, r2 + 24e4: b160 st.w r3, (r1, 0x0) +} + 24e6: 07dc br 0x249e // 249e + else if(UART_IO_G==2) + 24e8: 3942 cmpnei r1, 2 + 24ea: 0bda bt 0x249e // 249e + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 24ec: 1075 lrw r3, 0x2000004c // 2540 + 24ee: 32ee movi r2, 238 + 24f0: 9320 ld.w r1, (r3, 0x0) + 24f2: 9161 ld.w r3, (r1, 0x4) + 24f4: 4368 lsli r3, r3, 8 + 24f6: 4b68 lsri r3, r3, 8 + 24f8: 4257 lsli r2, r2, 23 + 24fa: 07e7 br 0x24c8 // 24c8 + if (IO_UART_NUM==IO_UART2) + 24fc: 3842 cmpnei r0, 2 + 24fe: 0bd0 bt 0x249e // 249e + if(UART_IO_G==0) + 2500: 3940 cmpnei r1, 0 + 2502: 0809 bt 0x2514 // 2514 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2504: 106f lrw r3, 0x2000004c // 2540 + 2506: 31ff movi r1, 255 + 2508: 9340 ld.w r2, (r3, 0x0) + 250a: 9260 ld.w r3, (r2, 0x0) + 250c: 68c5 andn r3, r1 + 250e: 3177 movi r1, 119 + 2510: 6cc4 or r3, r1 + 2512: 07b0 br 0x2472 // 2472 + else if(UART_IO_G==1) + 2514: 3941 cmpnei r1, 1 + 2516: 0809 bt 0x2528 // 2528 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 2518: 106a lrw r3, 0x2000004c // 2540 + 251a: 32ee movi r2, 238 + 251c: 9320 ld.w r1, (r3, 0x0) + 251e: 9160 ld.w r3, (r1, 0x0) + 2520: 4368 lsli r3, r3, 8 + 2522: 4b68 lsri r3, r3, 8 + 2524: 4257 lsli r2, r2, 23 + 2526: 07de br 0x24e2 // 24e2 + else if(UART_IO_G==2) + 2528: 3942 cmpnei r1, 2 + 252a: 0bba bt 0x249e // 249e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 252c: 1066 lrw r3, 0x20000048 // 2544 + 252e: 32ff movi r2, 255 + 2530: 9320 ld.w r1, (r3, 0x0) + 2532: 4250 lsli r2, r2, 16 + 2534: 9160 ld.w r3, (r1, 0x0) + 2536: 68c9 andn r3, r2 + 2538: 32cc movi r2, 204 + 253a: 424f lsli r2, r2, 15 + 253c: 07d3 br 0x24e2 // 24e2 + 253e: 0000 bkpt + 2540: 2000004c .long 0x2000004c + 2544: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002548 : +//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); + 2548: 1063 lrw r3, 0x8000f // 2554 + 254a: 6c8c or r2, r3 + 254c: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 254e: b024 st.w r1, (r0, 0x10) +} + 2550: 783c jmp r15 + 2552: 0000 bkpt + 2554: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002558 : +//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) +{ + 2558: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 255a: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 255c: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 255e: 5b85 subu r4, r3, r1 + 2560: 6490 cmphs r4, r2 + 2562: 0c02 bf 0x2566 // 2566 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 2564: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 2566: 8380 ld.b r4, (r3, 0x0) + 2568: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 256a: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 256c: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 256e: 3c40 cmpnei r4, 0 + 2570: 0bfd bt 0x256a // 256a + 2572: 2300 addi r3, 1 + 2574: 07f5 br 0x255e // 255e + +Disassembly of section .text.EPT_Stop: + +00002578 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2578: 1068 lrw r3, 0x20000020 // 2598 + 257a: 3280 movi r2, 128 + 257c: 9360 ld.w r3, (r3, 0x0) + 257e: 608c addu r2, r3 + 2580: 1027 lrw r1, 0xa55ac73a // 259c + 2582: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2584: 9341 ld.w r2, (r3, 0x4) + 2586: 31fe movi r1, 254 + 2588: 6884 and r2, r1 + 258a: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 258c: 3101 movi r1, 1 + 258e: 9341 ld.w r2, (r3, 0x4) + 2590: 6884 and r2, r1 + 2592: 3a40 cmpnei r2, 0 + 2594: 0bfd bt 0x258e // 258e +} + 2596: 783c jmp r15 + 2598: 20000020 .long 0x20000020 + 259c: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.startup.main: + +000025a0
: + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 25a0: 14d0 push r15 +// delay_nms(2000); + APT32F102_init(); //102 initial + 25a2: e000009b bsr 0x26d8 // 26d8 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + 25a6: 1027 lrw r1, 0x44a4 // 25c0 + 25a8: 3000 movi r0, 0 + 25aa: e00007ab bsr 0x3500 // 3500 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 25ae: e3fffb5b bsr 0x1c64 // 1c64 + + UART1_TASK(); + 25b2: e0000657 bsr 0x3260 // 3260 + + DIP_ScanTask(); + 25b6: e000080b bsr 0x35cc // 35cc + + BUS485Send_Task(); + 25ba: e0000745 bsr 0x3444 // 3444 + 25be: 07f8 br 0x25ae // 25ae + 25c0: 000044a4 .long 0x000044a4 + +Disassembly of section .text.delay_nms: + +000025c4 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 25c4: 14d0 push r15 + 25c6: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 25c8: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 25ca: 3300 movi r3, 0 + j = 50* t; + 25cc: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 25ce: b862 st.w r3, (r14, 0x8) + j = 50* t; + 25d0: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 25d2: b860 st.w r3, (r14, 0x0) + 25d4: 9840 ld.w r2, (r14, 0x0) + 25d6: 9861 ld.w r3, (r14, 0x4) + 25d8: 64c8 cmphs r2, r3 + 25da: 0c03 bf 0x25e0 // 25e0 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 25dc: 1403 addi r14, r14, 12 + 25de: 1490 pop r15 + k++; + 25e0: 9862 ld.w r3, (r14, 0x8) + 25e2: 2300 addi r3, 1 + 25e4: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 25e6: e3fffb3f bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 25ea: 9860 ld.w r3, (r14, 0x0) + 25ec: 2300 addi r3, 1 + 25ee: 07f2 br 0x25d2 // 25d2 + +Disassembly of section .text.delay_nus: + +000025f0 : +void delay_nus(unsigned int t) +{ + 25f0: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 25f2: 3300 movi r3, 0 + 25f4: b862 st.w r3, (r14, 0x8) + j = 1* t; + 25f6: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 25f8: b860 st.w r3, (r14, 0x0) + 25fa: 9840 ld.w r2, (r14, 0x0) + 25fc: 9861 ld.w r3, (r14, 0x4) + 25fe: 64c8 cmphs r2, r3 + 2600: 0c03 bf 0x2606 // 2606 + { + k++; + } +} + 2602: 1403 addi r14, r14, 12 + 2604: 783c jmp r15 + k++; + 2606: 9862 ld.w r3, (r14, 0x8) + 2608: 2300 addi r3, 1 + 260a: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 260c: 9860 ld.w r3, (r14, 0x0) + 260e: 2300 addi r3, 1 + 2610: 07f4 br 0x25f8 // 25f8 + +Disassembly of section .text.BT_CONFIG: + +00002614 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2614: 14d2 push r4-r5, r15 + 2616: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2618: 1095 lrw r4, 0x20000008 // 266c + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 261a: 3500 movi r5, 0 + BT_DeInit(BT1); + 261c: 9400 ld.w r0, (r4, 0x0) + 261e: e3fffd93 bsr 0x2144 // 2144 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2622: 9400 ld.w r0, (r4, 0x0) + 2624: b8a1 st.w r5, (r14, 0x4) + 2626: b8a0 st.w r5, (r14, 0x0) + 2628: 3308 movi r3, 8 + 262a: 3200 movi r2, 0 + 262c: 3101 movi r1, 1 + 262e: e3fffda2 bsr 0x2172 // 2172 + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + 2632: 3380 movi r3, 128 + 2634: 4363 lsli r3, r3, 3 + 2636: b861 st.w r3, (r14, 0x4) + 2638: 9400 ld.w r0, (r4, 0x0) + 263a: 3300 movi r3, 0 + 263c: b8a3 st.w r5, (r14, 0xc) + 263e: b8a2 st.w r5, (r14, 0x8) + 2640: b8a0 st.w r5, (r14, 0x0) + 2642: 3200 movi r2, 0 + 2644: 3180 movi r1, 128 + 2646: e3fffda2 bsr 0x218a // 218a + BT_Period_CMP_Write(BT1,4780,1); + 264a: 3201 movi r2, 1 + 264c: 1029 lrw r1, 0x12ac // 2670 + 264e: 9400 ld.w r0, (r4, 0x0) + 2650: e3fffdb3 bsr 0x21b6 // 21b6 + BT_Start(BT1); + 2654: 9400 ld.w r0, (r4, 0x0) + 2656: e3fffd85 bsr 0x2160 // 2160 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 265a: 9400 ld.w r0, (r4, 0x0) + 265c: 3202 movi r2, 2 + 265e: 3101 movi r1, 1 + 2660: e3fffdae bsr 0x21bc // 21bc + BT1_INT_ENABLE(); + 2664: e3fffdb6 bsr 0x21d0 // 21d0 + +} + 2668: 1404 addi r14, r14, 16 + 266a: 1492 pop r4-r5, r15 + 266c: 20000008 .long 0x20000008 + 2670: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002674 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2674: 14d0 push r15 + 2676: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2678: e3fffa42 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 267c: 3101 movi r1, 1 + 267e: 3001 movi r0, 1 + 2680: e3fffa64 bsr 0x1b48 // 1b48 + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + 2684: 3000 movi r0, 0 + 2686: e3fffabd bsr 0x1c00 // 1c00 + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div + 268a: 3180 movi r1, 128 + 268c: 3308 movi r3, 8 + 268e: 3200 movi r2, 0 + 2690: 4121 lsli r1, r1, 1 + 2692: 3002 movi r0, 2 + 2694: e3fffa72 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2698: 3080 movi r0, 128 + 269a: 3118 movi r1, 24 + 269c: 4002 lsli r0, r0, 2 + 269e: e3fffaed bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 26a2: 3001 movi r0, 1 + 26a4: e3fffac2 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 26a8: e3fffade bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 26ac: e3fffb10 bsr 0x1ccc // 1ccc + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + 26b0: 3340 movi r3, 64 + 26b2: b860 st.w r3, (r14, 0x0) + 26b4: 31c0 movi r1, 192 + 26b6: 3380 movi r3, 128 + 26b8: 4364 lsli r3, r3, 4 + 26ba: 3200 movi r2, 0 + 26bc: 4123 lsli r1, r1, 3 + 26be: 3000 movi r0, 0 + 26c0: e3fffae8 bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 26c4: e3fffaf6 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 26c8: e3fffb54 bsr 0x1d70 // 1d70 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 26cc: 3000 movi r0, 0 + 26ce: e0000d07 bsr 0x40dc // 40dc + +} + 26d2: 1401 addi r14, r14, 4 + 26d4: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +000026d8 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 26d8: 14d0 push r15 +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 26da: 1070 lrw r3, 0x2000005c // 2718 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 26dc: 3101 movi r1, 1 + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 26de: 9340 ld.w r2, (r3, 0x0) + 26e0: 106f lrw r3, 0xfffffff // 271c + 26e2: b26a st.w r3, (r2, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 26e4: b26d st.w r3, (r2, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 26e6: 926c ld.w r3, (r2, 0x30) + 26e8: 68c4 and r3, r1 + 26ea: 3b40 cmpnei r3, 0 + 26ec: 0ffd bf 0x26e6 // 26e6 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 26ee: e3ffffc3 bsr 0x2674 // 2674 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 26f2: e0000507 bsr 0x3100 // 3100 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 26f6: e3fffb49 bsr 0x1d88 // 1d88 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 26fa: 3101 movi r1, 1 + 26fc: 300e movi r0, 14 + 26fe: e3fffb57 bsr 0x1dac // 1dac + +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 2702: e3ffff89 bsr 0x2614 // 2614 + +// GPT0_CONFIG(); + + UARTx_Init(UART_1,BLV_RLY_RS485_Pro); + 2706: 1027 lrw r1, 0x39cc // 2720 + 2708: 3001 movi r0, 1 + 270a: e0000501 bsr 0x310c // 310c + + DIP_Switch_Init(); + 270e: e0000719 bsr 0x3540 // 3540 + + Relay_Init(); + 2712: e00007a3 bsr 0x3658 // 3658 + +} + 2716: 1490 pop r15 + 2718: 2000005c .long 0x2000005c + 271c: 0fffffff .long 0x0fffffff + 2720: 000039cc .long 0x000039cc + +Disassembly of section .text.SYSCONIntHandler: + +00002724 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2724: 1460 nie + 2726: 1462 ipush + // ISR content ... + nop; + 2728: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 272a: 117a lrw r3, 0x2000005c // 2810 + 272c: 3280 movi r2, 128 + 272e: 9360 ld.w r3, (r3, 0x0) + 2730: 60c8 addu r3, r2 + 2732: 9323 ld.w r1, (r3, 0xc) + 2734: 3001 movi r0, 1 + 2736: 6840 and r1, r0 + 2738: 3940 cmpnei r1, 0 + 273a: 0c04 bf 0x2742 // 2742 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 273c: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 273e: 1463 ipop + 2740: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2742: 9323 ld.w r1, (r3, 0xc) + 2744: 3002 movi r0, 2 + 2746: 6840 and r1, r0 + 2748: 3940 cmpnei r1, 0 + 274a: 0bf9 bt 0x273c // 273c + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 274c: 9323 ld.w r1, (r3, 0xc) + 274e: 3008 movi r0, 8 + 2750: 6840 and r1, r0 + 2752: 3940 cmpnei r1, 0 + 2754: 0bf4 bt 0x273c // 273c + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2756: 9323 ld.w r1, (r3, 0xc) + 2758: 3010 movi r0, 16 + 275a: 6840 and r1, r0 + 275c: 3940 cmpnei r1, 0 + 275e: 0bef bt 0x273c // 273c + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2760: 9323 ld.w r1, (r3, 0xc) + 2762: 6848 and r1, r2 + 2764: 3940 cmpnei r1, 0 + 2766: 0c03 bf 0x276c // 276c + SYSCON->ICR = CMD_ERR_ST; + 2768: b341 st.w r2, (r3, 0x4) +} + 276a: 07ea br 0x273e // 273e + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 276c: 3280 movi r2, 128 + 276e: 9323 ld.w r1, (r3, 0xc) + 2770: 4241 lsli r2, r2, 1 + 2772: 6848 and r1, r2 + 2774: 3940 cmpnei r1, 0 + 2776: 0bf9 bt 0x2768 // 2768 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2778: 3280 movi r2, 128 + 277a: 9323 ld.w r1, (r3, 0xc) + 277c: 4242 lsli r2, r2, 2 + 277e: 6848 and r1, r2 + 2780: 3940 cmpnei r1, 0 + 2782: 0bf3 bt 0x2768 // 2768 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2784: 3280 movi r2, 128 + 2786: 9323 ld.w r1, (r3, 0xc) + 2788: 4243 lsli r2, r2, 3 + 278a: 6848 and r1, r2 + 278c: 3940 cmpnei r1, 0 + 278e: 0bed bt 0x2768 // 2768 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2790: 3280 movi r2, 128 + 2792: 9323 ld.w r1, (r3, 0xc) + 2794: 4244 lsli r2, r2, 4 + 2796: 6848 and r1, r2 + 2798: 3940 cmpnei r1, 0 + 279a: 0c03 bf 0x27a0 // 27a0 + nop; + 279c: 6c03 mov r0, r0 + 279e: 07e5 br 0x2768 // 2768 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 27a0: 3280 movi r2, 128 + 27a2: 9323 ld.w r1, (r3, 0xc) + 27a4: 4245 lsli r2, r2, 5 + 27a6: 6848 and r1, r2 + 27a8: 3940 cmpnei r1, 0 + 27aa: 0bdf bt 0x2768 // 2768 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 27ac: 3280 movi r2, 128 + 27ae: 9323 ld.w r1, (r3, 0xc) + 27b0: 4246 lsli r2, r2, 6 + 27b2: 6848 and r1, r2 + 27b4: 3940 cmpnei r1, 0 + 27b6: 0bd9 bt 0x2768 // 2768 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 27b8: 3280 movi r2, 128 + 27ba: 9323 ld.w r1, (r3, 0xc) + 27bc: 4247 lsli r2, r2, 7 + 27be: 6848 and r1, r2 + 27c0: 3940 cmpnei r1, 0 + 27c2: 0bd3 bt 0x2768 // 2768 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 27c4: 3280 movi r2, 128 + 27c6: 9323 ld.w r1, (r3, 0xc) + 27c8: 424b lsli r2, r2, 11 + 27ca: 6848 and r1, r2 + 27cc: 3940 cmpnei r1, 0 + 27ce: 0bcd bt 0x2768 // 2768 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 27d0: 3280 movi r2, 128 + 27d2: 9323 ld.w r1, (r3, 0xc) + 27d4: 424c lsli r2, r2, 12 + 27d6: 6848 and r1, r2 + 27d8: 3940 cmpnei r1, 0 + 27da: 0bc7 bt 0x2768 // 2768 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 27dc: 3280 movi r2, 128 + 27de: 9323 ld.w r1, (r3, 0xc) + 27e0: 424d lsli r2, r2, 13 + 27e2: 6848 and r1, r2 + 27e4: 3940 cmpnei r1, 0 + 27e6: 0bc1 bt 0x2768 // 2768 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 27e8: 3280 movi r2, 128 + 27ea: 9323 ld.w r1, (r3, 0xc) + 27ec: 424e lsli r2, r2, 14 + 27ee: 6848 and r1, r2 + 27f0: 3940 cmpnei r1, 0 + 27f2: 0bbb bt 0x2768 // 2768 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 27f4: 3280 movi r2, 128 + 27f6: 9323 ld.w r1, (r3, 0xc) + 27f8: 424f lsli r2, r2, 15 + 27fa: 6848 and r1, r2 + 27fc: 3940 cmpnei r1, 0 + 27fe: 0bb5 bt 0x2768 // 2768 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2800: 3280 movi r2, 128 + 2802: 9323 ld.w r1, (r3, 0xc) + 2804: 4256 lsli r2, r2, 22 + 2806: 6848 and r1, r2 + 2808: 3940 cmpnei r1, 0 + 280a: 0baf bt 0x2768 // 2768 + 280c: 0799 br 0x273e // 273e + 280e: 0000 bkpt + 2810: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002814 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2814: 1460 nie + 2816: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2818: 1078 lrw r3, 0x20000060 // 2878 + 281a: 3101 movi r1, 1 + 281c: 9360 ld.w r3, (r3, 0x0) + 281e: 934b ld.w r2, (r3, 0x2c) + 2820: 6884 and r2, r1 + 2822: 3a40 cmpnei r2, 0 + 2824: 0c04 bf 0x282c // 282c + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2826: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2828: 1463 ipop + 282a: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 282c: 934b ld.w r2, (r3, 0x2c) + 282e: 3102 movi r1, 2 + 2830: 6884 and r2, r1 + 2832: 3a40 cmpnei r2, 0 + 2834: 0bf9 bt 0x2826 // 2826 + else if(IFC->MISR&PEP_END_INT) + 2836: 934b ld.w r2, (r3, 0x2c) + 2838: 3104 movi r1, 4 + 283a: 6884 and r2, r1 + 283c: 3a40 cmpnei r2, 0 + 283e: 0bf4 bt 0x2826 // 2826 + else if(IFC->MISR&PROT_ERR_INT) + 2840: 3280 movi r2, 128 + 2842: 932b ld.w r1, (r3, 0x2c) + 2844: 4245 lsli r2, r2, 5 + 2846: 6848 and r1, r2 + 2848: 3940 cmpnei r1, 0 + 284a: 0c03 bf 0x2850 // 2850 + IFC->ICR=OVW_ERR_INT; + 284c: b34c st.w r2, (r3, 0x30) +} + 284e: 07ed br 0x2828 // 2828 + else if(IFC->MISR&UDEF_ERR_INT) + 2850: 3280 movi r2, 128 + 2852: 932b ld.w r1, (r3, 0x2c) + 2854: 4246 lsli r2, r2, 6 + 2856: 6848 and r1, r2 + 2858: 3940 cmpnei r1, 0 + 285a: 0bf9 bt 0x284c // 284c + else if(IFC->MISR&ADDR_ERR_INT) + 285c: 3280 movi r2, 128 + 285e: 932b ld.w r1, (r3, 0x2c) + 2860: 4247 lsli r2, r2, 7 + 2862: 6848 and r1, r2 + 2864: 3940 cmpnei r1, 0 + 2866: 0bf3 bt 0x284c // 284c + else if(IFC->MISR&OVW_ERR_INT) + 2868: 3280 movi r2, 128 + 286a: 932b ld.w r1, (r3, 0x2c) + 286c: 4248 lsli r2, r2, 8 + 286e: 6848 and r1, r2 + 2870: 3940 cmpnei r1, 0 + 2872: 0bed bt 0x284c // 284c + 2874: 07da br 0x2828 // 2828 + 2876: 0000 bkpt + 2878: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +0000287c : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 287c: 1460 nie + 287e: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2880: 1078 lrw r3, 0x20000050 // 28e0 + 2882: 3101 movi r1, 1 + 2884: 9360 ld.w r3, (r3, 0x0) + 2886: 9348 ld.w r2, (r3, 0x20) + 2888: 6884 and r2, r1 + 288a: 3a40 cmpnei r2, 0 + 288c: 0c04 bf 0x2894 // 2894 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 288e: b327 st.w r1, (r3, 0x1c) + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} + 2890: 1463 ipop + 2892: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2894: 9348 ld.w r2, (r3, 0x20) + 2896: 3102 movi r1, 2 + 2898: 6884 and r2, r1 + 289a: 3a40 cmpnei r2, 0 + 289c: 0bf9 bt 0x288e // 288e + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 289e: 9348 ld.w r2, (r3, 0x20) + 28a0: 3104 movi r1, 4 + 28a2: 6884 and r2, r1 + 28a4: 3a40 cmpnei r2, 0 + 28a6: 0bf4 bt 0x288e // 288e + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 28a8: 9348 ld.w r2, (r3, 0x20) + 28aa: 3110 movi r1, 16 + 28ac: 6884 and r2, r1 + 28ae: 3a40 cmpnei r2, 0 + 28b0: 0bef bt 0x288e // 288e + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 28b2: 9348 ld.w r2, (r3, 0x20) + 28b4: 3120 movi r1, 32 + 28b6: 6884 and r2, r1 + 28b8: 3a40 cmpnei r2, 0 + 28ba: 0bea bt 0x288e // 288e + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 28bc: 9348 ld.w r2, (r3, 0x20) + 28be: 3140 movi r1, 64 + 28c0: 6884 and r2, r1 + 28c2: 3a40 cmpnei r2, 0 + 28c4: 0be5 bt 0x288e // 288e + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 28c6: 9348 ld.w r2, (r3, 0x20) + 28c8: 3180 movi r1, 128 + 28ca: 6884 and r2, r1 + 28cc: 3a40 cmpnei r2, 0 + 28ce: 0be0 bt 0x288e // 288e + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + 28d0: 3280 movi r2, 128 + 28d2: 9328 ld.w r1, (r3, 0x20) + 28d4: 4249 lsli r2, r2, 9 + 28d6: 6848 and r1, r2 + 28d8: 3940 cmpnei r1, 0 + 28da: 0fdb bf 0x2890 // 2890 + ADC0->CSR = ADC12_SEQ_END0; + 28dc: b347 st.w r2, (r3, 0x1c) +} + 28de: 07d9 br 0x2890 // 2890 + 28e0: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +000028e4 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 28e4: 1460 nie + 28e6: 1462 ipush + 28e8: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 28ea: 1387 lrw r4, 0x20000020 // 2a84 + 28ec: 3280 movi r2, 128 + 28ee: 9460 ld.w r3, (r4, 0x0) + 28f0: 60c8 addu r3, r2 + 28f2: 9335 ld.w r1, (r3, 0x54) + 28f4: 3001 movi r0, 1 + 28f6: 6840 and r1, r0 + 28f8: 3940 cmpnei r1, 0 + 28fa: 0c03 bf 0x2900 // 2900 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + 28fc: b317 st.w r0, (r3, 0x5c) + 28fe: 0424 br 0x2946 // 2946 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2900: 9335 ld.w r1, (r3, 0x54) + 2902: 3002 movi r0, 2 + 2904: 6840 and r1, r0 + 2906: 3940 cmpnei r1, 0 + 2908: 0bfa bt 0x28fc // 28fc + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 290a: 9335 ld.w r1, (r3, 0x54) + 290c: 3004 movi r0, 4 + 290e: 6840 and r1, r0 + 2910: 3940 cmpnei r1, 0 + 2912: 0bf5 bt 0x28fc // 28fc + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 2914: 9335 ld.w r1, (r3, 0x54) + 2916: 3008 movi r0, 8 + 2918: 6840 and r1, r0 + 291a: 3940 cmpnei r1, 0 + 291c: 0bf0 bt 0x28fc // 28fc + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 291e: 9335 ld.w r1, (r3, 0x54) + 2920: 3010 movi r0, 16 + 2922: 6840 and r1, r0 + 2924: 3940 cmpnei r1, 0 + 2926: 0c1f bf 0x2964 // 2964 + EPT0->ICR=EPT_CAP_LD0; + 2928: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 292a: 3200 movi r2, 0 + 292c: 3101 movi r1, 1 + 292e: 3000 movi r0, 0 + 2930: e3fff9dc bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 2934: 3201 movi r2, 1 + 2936: 3101 movi r1, 1 + 2938: 3001 movi r0, 1 + 293a: e3fff9d7 bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 293e: 9460 ld.w r3, (r4, 0x0) + 2940: 934b ld.w r2, (r3, 0x2c) + 2942: 1272 lrw r3, 0x20000148 // 2a88 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2944: b340 st.w r2, (r3, 0x0) + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + 2946: 9460 ld.w r3, (r4, 0x0) + 2948: 3280 movi r2, 128 + 294a: 60c8 addu r3, r2 + 294c: 932b ld.w r1, (r3, 0x2c) + 294e: 3001 movi r0, 1 + 2950: 6840 and r1, r0 + 2952: 3940 cmpnei r1, 0 + 2954: 0c61 bf 0x2a16 // 2a16 + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + 2956: b30d st.w r0, (r3, 0x34) + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} + 2958: d9ee2001 ld.w r15, (r14, 0x4) + 295c: 9880 ld.w r4, (r14, 0x0) + 295e: 1402 addi r14, r14, 8 + 2960: 1463 ipop + 2962: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 2964: 9335 ld.w r1, (r3, 0x54) + 2966: 3020 movi r0, 32 + 2968: 6840 and r1, r0 + 296a: 3940 cmpnei r1, 0 + 296c: 0c10 bf 0x298c // 298c + EPT0->ICR=EPT_CAP_LD1; + 296e: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 2970: 3200 movi r2, 0 + 2972: 3101 movi r1, 1 + 2974: 3001 movi r0, 1 + 2976: e3fff9b9 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 297a: 3201 movi r2, 1 + 297c: 3101 movi r1, 1 + 297e: 3000 movi r0, 0 + 2980: e3fff9b4 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2984: 9460 ld.w r3, (r4, 0x0) + 2986: 934c ld.w r2, (r3, 0x30) + 2988: 1261 lrw r3, 0x20000144 // 2a8c + 298a: 07dd br 0x2944 // 2944 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 298c: 9335 ld.w r1, (r3, 0x54) + 298e: 3040 movi r0, 64 + 2990: 6840 and r1, r0 + 2992: 3940 cmpnei r1, 0 + 2994: 0bb4 bt 0x28fc // 28fc + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 2996: 9335 ld.w r1, (r3, 0x54) + 2998: 6848 and r1, r2 + 299a: 3940 cmpnei r1, 0 + 299c: 0c03 bf 0x29a2 // 29a2 + EPT0->ICR=EPT_CDD; + 299e: b357 st.w r2, (r3, 0x5c) + 29a0: 07d3 br 0x2946 // 2946 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 29a2: 3280 movi r2, 128 + 29a4: 9335 ld.w r1, (r3, 0x54) + 29a6: 4241 lsli r2, r2, 1 + 29a8: 6848 and r1, r2 + 29aa: 3940 cmpnei r1, 0 + 29ac: 0bf9 bt 0x299e // 299e + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 29ae: 3280 movi r2, 128 + 29b0: 9335 ld.w r1, (r3, 0x54) + 29b2: 4242 lsli r2, r2, 2 + 29b4: 6848 and r1, r2 + 29b6: 3940 cmpnei r1, 0 + 29b8: 0bf3 bt 0x299e // 299e + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 29ba: 3280 movi r2, 128 + 29bc: 9335 ld.w r1, (r3, 0x54) + 29be: 4243 lsli r2, r2, 3 + 29c0: 6848 and r1, r2 + 29c2: 3940 cmpnei r1, 0 + 29c4: 0bed bt 0x299e // 299e + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 29c6: 3280 movi r2, 128 + 29c8: 9335 ld.w r1, (r3, 0x54) + 29ca: 4244 lsli r2, r2, 4 + 29cc: 6848 and r1, r2 + 29ce: 3940 cmpnei r1, 0 + 29d0: 0be7 bt 0x299e // 299e + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 29d2: 3280 movi r2, 128 + 29d4: 9335 ld.w r1, (r3, 0x54) + 29d6: 4245 lsli r2, r2, 5 + 29d8: 6848 and r1, r2 + 29da: 3940 cmpnei r1, 0 + 29dc: 0be1 bt 0x299e // 299e + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 29de: 3280 movi r2, 128 + 29e0: 9335 ld.w r1, (r3, 0x54) + 29e2: 4246 lsli r2, r2, 6 + 29e4: 6848 and r1, r2 + 29e6: 3940 cmpnei r1, 0 + 29e8: 0bdb bt 0x299e // 299e + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 29ea: 3280 movi r2, 128 + 29ec: 9335 ld.w r1, (r3, 0x54) + 29ee: 4247 lsli r2, r2, 7 + 29f0: 6848 and r1, r2 + 29f2: 3940 cmpnei r1, 0 + 29f4: 0bd5 bt 0x299e // 299e + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 29f6: 3280 movi r2, 128 + 29f8: 9335 ld.w r1, (r3, 0x54) + 29fa: 4248 lsli r2, r2, 8 + 29fc: 6848 and r1, r2 + 29fe: 3940 cmpnei r1, 0 + 2a00: 0bcf bt 0x299e // 299e + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 2a02: 3280 movi r2, 128 + 2a04: 9335 ld.w r1, (r3, 0x54) + 2a06: 4249 lsli r2, r2, 9 + 2a08: 6848 and r1, r2 + 2a0a: 3940 cmpnei r1, 0 + 2a0c: 0f9d bf 0x2946 // 2946 + EPT0->ICR=EPT_PEND; + 2a0e: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 2a10: e3fffdb4 bsr 0x2578 // 2578 + 2a14: 0799 br 0x2946 // 2946 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 2a16: 932b ld.w r1, (r3, 0x2c) + 2a18: 3002 movi r0, 2 + 2a1a: 6840 and r1, r0 + 2a1c: 3940 cmpnei r1, 0 + 2a1e: 0b9c bt 0x2956 // 2956 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 2a20: 932b ld.w r1, (r3, 0x2c) + 2a22: 3004 movi r0, 4 + 2a24: 6840 and r1, r0 + 2a26: 3940 cmpnei r1, 0 + 2a28: 0b97 bt 0x2956 // 2956 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 2a2a: 932b ld.w r1, (r3, 0x2c) + 2a2c: 3008 movi r0, 8 + 2a2e: 6840 and r1, r0 + 2a30: 3940 cmpnei r1, 0 + 2a32: 0b92 bt 0x2956 // 2956 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 2a34: 932b ld.w r1, (r3, 0x2c) + 2a36: 3010 movi r0, 16 + 2a38: 6840 and r1, r0 + 2a3a: 3940 cmpnei r1, 0 + 2a3c: 0b8d bt 0x2956 // 2956 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 2a3e: 932b ld.w r1, (r3, 0x2c) + 2a40: 3020 movi r0, 32 + 2a42: 6840 and r1, r0 + 2a44: 3940 cmpnei r1, 0 + 2a46: 0b88 bt 0x2956 // 2956 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 2a48: 932b ld.w r1, (r3, 0x2c) + 2a4a: 3040 movi r0, 64 + 2a4c: 6840 and r1, r0 + 2a4e: 3940 cmpnei r1, 0 + 2a50: 0b83 bt 0x2956 // 2956 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 2a52: 932b ld.w r1, (r3, 0x2c) + 2a54: 6848 and r1, r2 + 2a56: 3940 cmpnei r1, 0 + 2a58: 0c03 bf 0x2a5e // 2a5e + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 2a5a: b34d st.w r2, (r3, 0x34) +} + 2a5c: 077e br 0x2958 // 2958 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 2a5e: 3280 movi r2, 128 + 2a60: 932b ld.w r1, (r3, 0x2c) + 2a62: 4241 lsli r2, r2, 1 + 2a64: 6848 and r1, r2 + 2a66: 3940 cmpnei r1, 0 + 2a68: 0bf9 bt 0x2a5a // 2a5a + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 2a6a: 3280 movi r2, 128 + 2a6c: 932b ld.w r1, (r3, 0x2c) + 2a6e: 4242 lsli r2, r2, 2 + 2a70: 6848 and r1, r2 + 2a72: 3940 cmpnei r1, 0 + 2a74: 0bf3 bt 0x2a5a // 2a5a + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 2a76: 3280 movi r2, 128 + 2a78: 932b ld.w r1, (r3, 0x2c) + 2a7a: 4243 lsli r2, r2, 3 + 2a7c: 6848 and r1, r2 + 2a7e: 3940 cmpnei r1, 0 + 2a80: 0bed bt 0x2a5a // 2a5a + 2a82: 076b br 0x2958 // 2958 + 2a84: 20000020 .long 0x20000020 + 2a88: 20000148 .long 0x20000148 + 2a8c: 20000144 .long 0x20000144 + +Disassembly of section .text.WWDTHandler: + +00002a90 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 2a90: 1460 nie + 2a92: 1462 ipush + 2a94: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 2a96: 10ab lrw r5, 0x20000010 // 2ac0 + 2a98: 3401 movi r4, 1 + 2a9a: 9560 ld.w r3, (r5, 0x0) + 2a9c: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 2a9e: 30ff movi r0, 255 + 2aa0: e3fffb4a bsr 0x2134 // 2134 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 2aa4: 9540 ld.w r2, (r5, 0x0) + 2aa6: 9263 ld.w r3, (r2, 0xc) + 2aa8: 68d0 and r3, r4 + 2aaa: 3b40 cmpnei r3, 0 + 2aac: 0c02 bf 0x2ab0 // 2ab0 + { + WWDT->ICR = WWDT_EVI; + 2aae: b285 st.w r4, (r2, 0x14) + } +} + 2ab0: d9ee2002 ld.w r15, (r14, 0x8) + 2ab4: 98a1 ld.w r5, (r14, 0x4) + 2ab6: 9880 ld.w r4, (r14, 0x0) + 2ab8: 1403 addi r14, r14, 12 + 2aba: 1463 ipop + 2abc: 1461 nir + 2abe: 0000 bkpt + 2ac0: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00002ac4 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 2ac4: 1460 nie + 2ac6: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 2ac8: 107e lrw r3, 0x20000024 // 2b40 + 2aca: 3101 movi r1, 1 + 2acc: 9360 ld.w r3, (r3, 0x0) + 2ace: 237f addi r3, 128 + 2ad0: 9355 ld.w r2, (r3, 0x54) + 2ad2: 6884 and r2, r1 + 2ad4: 3a40 cmpnei r2, 0 + 2ad6: 0c04 bf 0x2ade // 2ade + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + 2ad8: b337 st.w r1, (r3, 0x5c) + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} + 2ada: 1463 ipop + 2adc: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 2ade: 9355 ld.w r2, (r3, 0x54) + 2ae0: 3102 movi r1, 2 + 2ae2: 6884 and r2, r1 + 2ae4: 3a40 cmpnei r2, 0 + 2ae6: 0bf9 bt 0x2ad8 // 2ad8 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 2ae8: 9355 ld.w r2, (r3, 0x54) + 2aea: 3110 movi r1, 16 + 2aec: 6884 and r2, r1 + 2aee: 3a40 cmpnei r2, 0 + 2af0: 0bf4 bt 0x2ad8 // 2ad8 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 2af2: 9355 ld.w r2, (r3, 0x54) + 2af4: 3120 movi r1, 32 + 2af6: 6884 and r2, r1 + 2af8: 3a40 cmpnei r2, 0 + 2afa: 0bef bt 0x2ad8 // 2ad8 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 2afc: 3280 movi r2, 128 + 2afe: 9335 ld.w r1, (r3, 0x54) + 2b00: 4241 lsli r2, r2, 1 + 2b02: 6848 and r1, r2 + 2b04: 3940 cmpnei r1, 0 + 2b06: 0c03 bf 0x2b0c // 2b0c + GPT0->ICR = GPT_INT_PEND; + 2b08: b357 st.w r2, (r3, 0x5c) +} + 2b0a: 07e8 br 0x2ada // 2ada + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 2b0c: 3280 movi r2, 128 + 2b0e: 9335 ld.w r1, (r3, 0x54) + 2b10: 4242 lsli r2, r2, 2 + 2b12: 6848 and r1, r2 + 2b14: 3940 cmpnei r1, 0 + 2b16: 0bf9 bt 0x2b08 // 2b08 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 2b18: 3280 movi r2, 128 + 2b1a: 9335 ld.w r1, (r3, 0x54) + 2b1c: 4243 lsli r2, r2, 3 + 2b1e: 6848 and r1, r2 + 2b20: 3940 cmpnei r1, 0 + 2b22: 0bf3 bt 0x2b08 // 2b08 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 2b24: 3280 movi r2, 128 + 2b26: 9335 ld.w r1, (r3, 0x54) + 2b28: 4244 lsli r2, r2, 4 + 2b2a: 6848 and r1, r2 + 2b2c: 3940 cmpnei r1, 0 + 2b2e: 0bed bt 0x2b08 // 2b08 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 2b30: 3280 movi r2, 128 + 2b32: 9335 ld.w r1, (r3, 0x54) + 2b34: 4249 lsli r2, r2, 9 + 2b36: 6848 and r1, r2 + 2b38: 3940 cmpnei r1, 0 + 2b3a: 0be7 bt 0x2b08 // 2b08 + 2b3c: 07cf br 0x2ada // 2ada + 2b3e: 0000 bkpt + 2b40: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00002b44 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 2b44: 1460 nie + 2b46: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 2b48: 1079 lrw r3, 0x20000018 // 2bac + 2b4a: 3101 movi r1, 1 + 2b4c: 9360 ld.w r3, (r3, 0x0) + 2b4e: 934a ld.w r2, (r3, 0x28) + 2b50: 6884 and r2, r1 + 2b52: 3a40 cmpnei r2, 0 + 2b54: 0c14 bf 0x2b7c // 2b7c + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 2b56: 1057 lrw r2, 0xca53 // 2bb0 + RTC->ICR=ALRA_INT; + 2b58: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 2b5a: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 2b5c: 9342 ld.w r2, (r3, 0x8) + 2b5e: 6c84 or r2, r1 + 2b60: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 2b62: 3280 movi r2, 128 + 2b64: 424d lsli r2, r2, 13 + 2b66: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 2b68: 3102 movi r1, 2 + 2b6a: 9342 ld.w r2, (r3, 0x8) + 2b6c: 6884 and r2, r1 + 2b6e: 3a40 cmpnei r2, 0 + 2b70: 0bfd bt 0x2b6a // 2b6a + RTC->CR &= ~0x1; + 2b72: 9342 ld.w r2, (r3, 0x8) + 2b74: 3a80 bclri r2, 0 + 2b76: b342 st.w r2, (r3, 0x8) + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} + 2b78: 1463 ipop + 2b7a: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 2b7c: 934a ld.w r2, (r3, 0x28) + 2b7e: 3102 movi r1, 2 + 2b80: 6884 and r2, r1 + 2b82: 3a40 cmpnei r2, 0 + 2b84: 0c03 bf 0x2b8a // 2b8a + RTC->ICR=RTC_TRGEV1_INT; + 2b86: b32b st.w r1, (r3, 0x2c) +} + 2b88: 07f8 br 0x2b78 // 2b78 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 2b8a: 934a ld.w r2, (r3, 0x28) + 2b8c: 3104 movi r1, 4 + 2b8e: 6884 and r2, r1 + 2b90: 3a40 cmpnei r2, 0 + 2b92: 0bfa bt 0x2b86 // 2b86 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 2b94: 934a ld.w r2, (r3, 0x28) + 2b96: 3108 movi r1, 8 + 2b98: 6884 and r2, r1 + 2b9a: 3a40 cmpnei r2, 0 + 2b9c: 0bf5 bt 0x2b86 // 2b86 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 2b9e: 934a ld.w r2, (r3, 0x28) + 2ba0: 3110 movi r1, 16 + 2ba2: 6884 and r2, r1 + 2ba4: 3a40 cmpnei r2, 0 + 2ba6: 0bf0 bt 0x2b86 // 2b86 + 2ba8: 07e8 br 0x2b78 // 2b78 + 2baa: 0000 bkpt + 2bac: 20000018 .long 0x20000018 + 2bb0: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00002bb4 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 2bb4: 1460 nie + 2bb6: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2bb8: 106d lrw r3, 0x20000040 // 2bec + 2bba: 3102 movi r1, 2 + 2bbc: 9360 ld.w r3, (r3, 0x0) + 2bbe: 9343 ld.w r2, (r3, 0xc) + 2bc0: 6884 and r2, r1 + 2bc2: 3a40 cmpnei r2, 0 + 2bc4: 0c03 bf 0x2bca // 2bca + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + 2bc6: b323 st.w r1, (r3, 0xc) + } +} + 2bc8: 0410 br 0x2be8 // 2be8 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2bca: 9343 ld.w r2, (r3, 0xc) + 2bcc: 3101 movi r1, 1 + 2bce: 6884 and r2, r1 + 2bd0: 3a40 cmpnei r2, 0 + 2bd2: 0bfa bt 0x2bc6 // 2bc6 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2bd4: 9343 ld.w r2, (r3, 0xc) + 2bd6: 3108 movi r1, 8 + 2bd8: 6884 and r2, r1 + 2bda: 3a40 cmpnei r2, 0 + 2bdc: 0bf5 bt 0x2bc6 // 2bc6 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2bde: 9343 ld.w r2, (r3, 0xc) + 2be0: 3104 movi r1, 4 + 2be2: 6884 and r2, r1 + 2be4: 3a40 cmpnei r2, 0 + 2be6: 0bf0 bt 0x2bc6 // 2bc6 +} + 2be8: 1463 ipop + 2bea: 1461 nir + 2bec: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00002bf0 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 2bf0: 1460 nie + 2bf2: 1462 ipush + 2bf4: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2bf6: 107f lrw r3, 0x2000003c // 2c70 + 2bf8: 3102 movi r1, 2 + 2bfa: 9360 ld.w r3, (r3, 0x0) + 2bfc: 9343 ld.w r2, (r3, 0xc) + 2bfe: 6884 and r2, r1 + 2c00: 3a40 cmpnei r2, 0 + 2c02: 0c0b bf 0x2c18 // 2c18 + { + UART1->ISR=UART_RX_INT_S; + 2c04: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 2c06: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 2c08: 7400 zextb r0, r0 + 2c0a: e0000311 bsr 0x322c // 322c + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} + 2c0e: d9ee2000 ld.w r15, (r14, 0x0) + 2c12: 1401 addi r14, r14, 4 + 2c14: 1463 ipop + 2c16: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2c18: 9323 ld.w r1, (r3, 0xc) + 2c1a: 3201 movi r2, 1 + 2c1c: 6848 and r1, r2 + 2c1e: 3940 cmpnei r1, 0 + 2c20: 0c0d bf 0x2c3a // 2c3a + UART1->ISR=UART_TX_INT_S; + 2c22: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 2c24: 1074 lrw r3, 0x200000a8 // 2c74 + 2c26: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2c28: 1074 lrw r3, 0x200000ac // 2c78 + 2c2a: 9360 ld.w r3, (r3, 0x0) + 2c2c: 3b41 cmpnei r3, 1 + 2c2e: 0bf0 bt 0x2c0e // 2c0e + RS485_Comm_Start ++; + 2c30: 1053 lrw r2, 0x200000b0 // 2c7c + RS485_Comm_End ++; + 2c32: 9260 ld.w r3, (r2, 0x0) + 2c34: 2300 addi r3, 1 + 2c36: b260 st.w r3, (r2, 0x0) +} + 2c38: 07eb br 0x2c0e // 2c0e + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2c3a: 9343 ld.w r2, (r3, 0xc) + 2c3c: 3108 movi r1, 8 + 2c3e: 6884 and r2, r1 + 2c40: 3a40 cmpnei r2, 0 + 2c42: 0c03 bf 0x2c48 // 2c48 + UART1->ISR=UART_TX_IOV_S; + 2c44: b323 st.w r1, (r3, 0xc) + 2c46: 07e4 br 0x2c0e // 2c0e + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2c48: 9343 ld.w r2, (r3, 0xc) + 2c4a: 3104 movi r1, 4 + 2c4c: 6884 and r2, r1 + 2c4e: 3a40 cmpnei r2, 0 + 2c50: 0bfa bt 0x2c44 // 2c44 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2c52: 3180 movi r1, 128 + 2c54: 9303 ld.w r0, (r3, 0xc) + 2c56: 412c lsli r1, r1, 12 + 2c58: 6804 and r0, r1 + 2c5a: 3840 cmpnei r0, 0 + 2c5c: 0fd9 bf 0x2c0e // 2c0e + UART1->ISR=UART_TX_DONE_S; + 2c5e: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 2c60: 1065 lrw r3, 0x200000a8 // 2c74 + 2c62: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2c64: 1065 lrw r3, 0x200000ac // 2c78 + 2c66: 9360 ld.w r3, (r3, 0x0) + 2c68: 3b41 cmpnei r3, 1 + 2c6a: 0bd2 bt 0x2c0e // 2c0e + RS485_Comm_End ++; + 2c6c: 1045 lrw r2, 0x200000b4 // 2c80 + 2c6e: 07e2 br 0x2c32 // 2c32 + 2c70: 2000003c .long 0x2000003c + 2c74: 200000a8 .long 0x200000a8 + 2c78: 200000ac .long 0x200000ac + 2c7c: 200000b0 .long 0x200000b0 + 2c80: 200000b4 .long 0x200000b4 + +Disassembly of section .text.UART2IntHandler: + +00002c84 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 2c84: 1460 nie + 2c86: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2c88: 1071 lrw r3, 0x20000038 // 2ccc + 2c8a: 3102 movi r1, 2 + 2c8c: 9360 ld.w r3, (r3, 0x0) + 2c8e: 9343 ld.w r2, (r3, 0xc) + 2c90: 6884 and r2, r1 + 2c92: 3a40 cmpnei r2, 0 + 2c94: 0c04 bf 0x2c9c // 2c9c + { + UART2->ISR=UART_RX_IOV_S; + } + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART2->ISR=UART_TX_IOV_S; + 2c96: b323 st.w r1, (r3, 0xc) +// RS485_Comm_End ++; +// } + + } + +} + 2c98: 1463 ipop + 2c9a: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2c9c: 9343 ld.w r2, (r3, 0xc) + 2c9e: 3101 movi r1, 1 + 2ca0: 6884 and r2, r1 + 2ca2: 3a40 cmpnei r2, 0 + 2ca4: 0bf9 bt 0x2c96 // 2c96 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2ca6: 9343 ld.w r2, (r3, 0xc) + 2ca8: 3108 movi r1, 8 + 2caa: 6884 and r2, r1 + 2cac: 3a40 cmpnei r2, 0 + 2cae: 0bf4 bt 0x2c96 // 2c96 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2cb0: 9343 ld.w r2, (r3, 0xc) + 2cb2: 3104 movi r1, 4 + 2cb4: 6884 and r2, r1 + 2cb6: 3a40 cmpnei r2, 0 + 2cb8: 0bef bt 0x2c96 // 2c96 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2cba: 3280 movi r2, 128 + 2cbc: 9323 ld.w r1, (r3, 0xc) + 2cbe: 424c lsli r2, r2, 12 + 2cc0: 6848 and r1, r2 + 2cc2: 3940 cmpnei r1, 0 + 2cc4: 0fea bf 0x2c98 // 2c98 + UART2->ISR=UART_TX_DONE_S; + 2cc6: b343 st.w r2, (r3, 0xc) +} + 2cc8: 07e8 br 0x2c98 // 2c98 + 2cca: 0000 bkpt + 2ccc: 20000038 .long 0x20000038 + +Disassembly of section .text.SPI0IntHandler: + +00002cd0 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 2cd0: 1460 nie + 2cd2: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 2cd4: 1178 lrw r3, 0x20000034 // 2db4 + 2cd6: 3101 movi r1, 1 + 2cd8: 9360 ld.w r3, (r3, 0x0) + 2cda: 9347 ld.w r2, (r3, 0x1c) + 2cdc: 6884 and r2, r1 + 2cde: 3a40 cmpnei r2, 0 + 2ce0: 0c03 bf 0x2ce6 // 2ce6 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 2ce2: b328 st.w r1, (r3, 0x20) + } + +} + 2ce4: 0407 br 0x2cf2 // 2cf2 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 2ce6: 9347 ld.w r2, (r3, 0x1c) + 2ce8: 3002 movi r0, 2 + 2cea: 6880 and r2, r0 + 2cec: 3a40 cmpnei r2, 0 + 2cee: 0c04 bf 0x2cf6 // 2cf6 + SPI0->ICR = SPI_RTIM; + 2cf0: b308 st.w r0, (r3, 0x20) +} + 2cf2: 1463 ipop + 2cf4: 1461 nir + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + 2cf6: 9347 ld.w r2, (r3, 0x1c) + 2cf8: 3004 movi r0, 4 + 2cfa: 6880 and r2, r0 + 2cfc: 3a40 cmpnei r2, 0 + 2cfe: 0c55 bf 0x2da8 // 2da8 + SPI0->ICR = SPI_RXIM; + 2d00: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 2d02: 9302 ld.w r0, (r3, 0x8) + 2d04: 32aa movi r2, 170 + 2d06: 6482 cmpne r0, r2 + 2d08: 083e bt 0x2d84 // 2d84 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2d0a: 3102 movi r1, 2 + 2d0c: 9343 ld.w r2, (r3, 0xc) + 2d0e: 6884 and r2, r1 + 2d10: 3a40 cmpnei r2, 0 + 2d12: 0ffd bf 0x2d0c // 2d0c + SPI0->DR = 0x11; + 2d14: 3211 movi r2, 17 + 2d16: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d18: 3110 movi r1, 16 + 2d1a: 9343 ld.w r2, (r3, 0xc) + 2d1c: 6884 and r2, r1 + 2d1e: 3a40 cmpnei r2, 0 + 2d20: 0bfd bt 0x2d1a // 2d1a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2d22: 3102 movi r1, 2 + 2d24: 9343 ld.w r2, (r3, 0xc) + 2d26: 6884 and r2, r1 + 2d28: 3a40 cmpnei r2, 0 + 2d2a: 0ffd bf 0x2d24 // 2d24 + SPI0->DR = 0x12; + 2d2c: 3212 movi r2, 18 + 2d2e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d30: 3110 movi r1, 16 + 2d32: 9343 ld.w r2, (r3, 0xc) + 2d34: 6884 and r2, r1 + 2d36: 3a40 cmpnei r2, 0 + 2d38: 0bfd bt 0x2d32 // 2d32 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2d3a: 3102 movi r1, 2 + 2d3c: 9343 ld.w r2, (r3, 0xc) + 2d3e: 6884 and r2, r1 + 2d40: 3a40 cmpnei r2, 0 + 2d42: 0ffd bf 0x2d3c // 2d3c + SPI0->DR = 0x13; + 2d44: 3213 movi r2, 19 + 2d46: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d48: 3110 movi r1, 16 + 2d4a: 9343 ld.w r2, (r3, 0xc) + 2d4c: 6884 and r2, r1 + 2d4e: 3a40 cmpnei r2, 0 + 2d50: 0bfd bt 0x2d4a // 2d4a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2d52: 3102 movi r1, 2 + 2d54: 9343 ld.w r2, (r3, 0xc) + 2d56: 6884 and r2, r1 + 2d58: 3a40 cmpnei r2, 0 + 2d5a: 0ffd bf 0x2d54 // 2d54 + SPI0->DR = 0x14; + 2d5c: 3214 movi r2, 20 + 2d5e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d60: 3110 movi r1, 16 + 2d62: 9343 ld.w r2, (r3, 0xc) + 2d64: 6884 and r2, r1 + 2d66: 3a40 cmpnei r2, 0 + 2d68: 0bfd bt 0x2d62 // 2d62 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2d6a: 3102 movi r1, 2 + 2d6c: 9343 ld.w r2, (r3, 0xc) + 2d6e: 6884 and r2, r1 + 2d70: 3a40 cmpnei r2, 0 + 2d72: 0ffd bf 0x2d6c // 2d6c + SPI0->DR = 0x15; + 2d74: 3215 movi r2, 21 + 2d76: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d78: 3110 movi r1, 16 + 2d7a: 9343 ld.w r2, (r3, 0xc) + 2d7c: 6884 and r2, r1 + 2d7e: 3a40 cmpnei r2, 0 + 2d80: 0bfd bt 0x2d7a // 2d7a + 2d82: 07b8 br 0x2cf2 // 2cf2 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 2d84: 9343 ld.w r2, (r3, 0xc) + 2d86: 6884 and r2, r1 + 2d88: 3a40 cmpnei r2, 0 + 2d8a: 0bb4 bt 0x2cf2 // 2cf2 + SPI0->DR=0x0; //FIFO=0 + 2d8c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d8e: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 2d90: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d92: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d94: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d96: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d98: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d9a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d9c: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d9e: 9343 ld.w r2, (r3, 0xc) + 2da0: 6884 and r2, r1 + 2da2: 3a40 cmpnei r2, 0 + 2da4: 0bfd bt 0x2d9e // 2d9e + 2da6: 07a6 br 0x2cf2 // 2cf2 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 2da8: 9347 ld.w r2, (r3, 0x1c) + 2daa: 3108 movi r1, 8 + 2dac: 6884 and r2, r1 + 2dae: 3a40 cmpnei r2, 0 + 2db0: 0b99 bt 0x2ce2 // 2ce2 + 2db2: 07a0 br 0x2cf2 // 2cf2 + 2db4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00002db8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 2db8: 1460 nie + 2dba: 1462 ipush + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + 2dbc: 1073 lrw r3, 0x2000002c // 2e08 + 2dbe: 3104 movi r1, 4 + 2dc0: 9360 ld.w r3, (r3, 0x0) + 2dc2: 9349 ld.w r2, (r3, 0x24) + 2dc4: 6884 and r2, r1 + 2dc6: 3a40 cmpnei r2, 0 + 2dc8: 0c02 bf 0x2dcc // 2dcc + { + SIO0->ICR=0X04; + 2dca: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 2dcc: 9349 ld.w r2, (r3, 0x24) + 2dce: 3101 movi r1, 1 + 2dd0: 6884 and r2, r1 + 2dd2: 3a40 cmpnei r2, 0 + 2dd4: 0c02 bf 0x2dd8 // 2dd8 + { + SIO0->ICR=0X01; + 2dd6: b32b st.w r1, (r3, 0x2c) + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + 2dd8: 9349 ld.w r2, (r3, 0x24) + 2dda: 3102 movi r1, 2 + 2ddc: 6884 and r2, r1 + 2dde: 3a40 cmpnei r2, 0 + 2de0: 0c03 bf 0x2de6 // 2de6 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 2de2: b32b st.w r1, (r3, 0x2c) + } +} + 2de4: 0410 br 0x2e04 // 2e04 + else if(SIO0->MISR&0X08) //RXBUFFULL + 2de6: 9349 ld.w r2, (r3, 0x24) + 2de8: 3108 movi r1, 8 + 2dea: 6884 and r2, r1 + 2dec: 3a40 cmpnei r2, 0 + 2dee: 0bfa bt 0x2de2 // 2de2 + else if(SIO0->MISR&0X010) //BREAK + 2df0: 9349 ld.w r2, (r3, 0x24) + 2df2: 3110 movi r1, 16 + 2df4: 6884 and r2, r1 + 2df6: 3a40 cmpnei r2, 0 + 2df8: 0bf5 bt 0x2de2 // 2de2 + else if(SIO0->MISR&0X020) //TIMEOUT + 2dfa: 9349 ld.w r2, (r3, 0x24) + 2dfc: 3120 movi r1, 32 + 2dfe: 6884 and r2, r1 + 2e00: 3a40 cmpnei r2, 0 + 2e02: 0bf0 bt 0x2de2 // 2de2 +} + 2e04: 1463 ipop + 2e06: 1461 nir + 2e08: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00002e0c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 2e0c: 1460 nie + 2e0e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 2e10: 106a lrw r3, 0x2000005c // 2e38 + 2e12: 3101 movi r1, 1 + 2e14: 9360 ld.w r3, (r3, 0x0) + 2e16: 237f addi r3, 128 + 2e18: 934c ld.w r2, (r3, 0x30) + 2e1a: 6884 and r2, r1 + 2e1c: 3a40 cmpnei r2, 0 + 2e1e: 0c04 bf 0x2e26 // 2e26 + { + SYSCON->EXICR = EXI_PIN0; + 2e20: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 2e22: 1463 ipop + 2e24: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 2e26: 3280 movi r2, 128 + 2e28: 932c ld.w r1, (r3, 0x30) + 2e2a: 4249 lsli r2, r2, 9 + 2e2c: 6848 and r1, r2 + 2e2e: 3940 cmpnei r1, 0 + 2e30: 0ff9 bf 0x2e22 // 2e22 + SYSCON->EXICR = EXI_PIN16; + 2e32: b34b st.w r2, (r3, 0x2c) +} + 2e34: 07f7 br 0x2e22 // 2e22 + 2e36: 0000 bkpt + 2e38: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00002e3c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 2e3c: 1460 nie + 2e3e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 2e40: 106a lrw r3, 0x2000005c // 2e68 + 2e42: 3102 movi r1, 2 + 2e44: 9360 ld.w r3, (r3, 0x0) + 2e46: 237f addi r3, 128 + 2e48: 934c ld.w r2, (r3, 0x30) + 2e4a: 6884 and r2, r1 + 2e4c: 3a40 cmpnei r2, 0 + 2e4e: 0c04 bf 0x2e56 // 2e56 + { + SYSCON->EXICR = EXI_PIN1; + 2e50: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 2e52: 1463 ipop + 2e54: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 2e56: 3280 movi r2, 128 + 2e58: 932c ld.w r1, (r3, 0x30) + 2e5a: 424a lsli r2, r2, 10 + 2e5c: 6848 and r1, r2 + 2e5e: 3940 cmpnei r1, 0 + 2e60: 0ff9 bf 0x2e52 // 2e52 + SYSCON->EXICR = EXI_PIN17; + 2e62: b34b st.w r2, (r3, 0x2c) +} + 2e64: 07f7 br 0x2e52 // 2e52 + 2e66: 0000 bkpt + 2e68: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00002e6c : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 2e6c: 1460 nie + 2e6e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 2e70: 1070 lrw r3, 0x2000005c // 2eb0 + 2e72: 3104 movi r1, 4 + 2e74: 9360 ld.w r3, (r3, 0x0) + 2e76: 237f addi r3, 128 + 2e78: 934c ld.w r2, (r3, 0x30) + 2e7a: 6884 and r2, r1 + 2e7c: 3a40 cmpnei r2, 0 + 2e7e: 0c04 bf 0x2e86 // 2e86 + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 2e80: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 2e82: 1463 ipop + 2e84: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 2e86: 934c ld.w r2, (r3, 0x30) + 2e88: 3108 movi r1, 8 + 2e8a: 6884 and r2, r1 + 2e8c: 3a40 cmpnei r2, 0 + 2e8e: 0bf9 bt 0x2e80 // 2e80 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 2e90: 3280 movi r2, 128 + 2e92: 932c ld.w r1, (r3, 0x30) + 2e94: 424b lsli r2, r2, 11 + 2e96: 6848 and r1, r2 + 2e98: 3940 cmpnei r1, 0 + 2e9a: 0c03 bf 0x2ea0 // 2ea0 + SYSCON->EXICR = EXI_PIN19; + 2e9c: b34b st.w r2, (r3, 0x2c) +} + 2e9e: 07f2 br 0x2e82 // 2e82 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 2ea0: 3280 movi r2, 128 + 2ea2: 932c ld.w r1, (r3, 0x30) + 2ea4: 424c lsli r2, r2, 12 + 2ea6: 6848 and r1, r2 + 2ea8: 3940 cmpnei r1, 0 + 2eaa: 0bf9 bt 0x2e9c // 2e9c + 2eac: 07eb br 0x2e82 // 2e82 + 2eae: 0000 bkpt + 2eb0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00002eb4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 2eb4: 1460 nie + 2eb6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 2eb8: 1066 lrw r3, 0x2000005c // 2ed0 + 2eba: 3110 movi r1, 16 + 2ebc: 9360 ld.w r3, (r3, 0x0) + 2ebe: 237f addi r3, 128 + 2ec0: 934c ld.w r2, (r3, 0x30) + 2ec2: 6884 and r2, r1 + 2ec4: 3a40 cmpnei r2, 0 + 2ec6: 0c02 bf 0x2eca // 2eca + { + SYSCON->EXICR = EXI_PIN4; + 2ec8: b32b st.w r1, (r3, 0x2c) +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} + 2eca: 1463 ipop + 2ecc: 1461 nir + 2ece: 0000 bkpt + 2ed0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00002ed4 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 2ed4: 1460 nie + 2ed6: 1462 ipush + 2ed8: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 2eda: 1079 lrw r3, 0x2000005c // 2f3c + 2edc: 3280 movi r2, 128 + 2ede: 9360 ld.w r3, (r3, 0x0) + 2ee0: 237f addi r3, 128 + 2ee2: 932c ld.w r1, (r3, 0x30) + 2ee4: 4243 lsli r2, r2, 3 + 2ee6: 6848 and r1, r2 + 2ee8: 3940 cmpnei r1, 0 + 2eea: 0c07 bf 0x2ef8 // 2ef8 + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + 2eec: b34b st.w r2, (r3, 0x2c) + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} + 2eee: d9ee2000 ld.w r15, (r14, 0x0) + 2ef2: 1401 addi r14, r14, 4 + 2ef4: 1463 ipop + 2ef6: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 2ef8: 3280 movi r2, 128 + 2efa: 932c ld.w r1, (r3, 0x30) + 2efc: 4244 lsli r2, r2, 4 + 2efe: 6848 and r1, r2 + 2f00: 3940 cmpnei r1, 0 + 2f02: 0bf5 bt 0x2eec // 2eec + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 2f04: 3280 movi r2, 128 + 2f06: 932c ld.w r1, (r3, 0x30) + 2f08: 4245 lsli r2, r2, 5 + 2f0a: 6848 and r1, r2 + 2f0c: 3940 cmpnei r1, 0 + 2f0e: 0bef bt 0x2eec // 2eec + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 2f10: 3280 movi r2, 128 + 2f12: 932c ld.w r1, (r3, 0x30) + 2f14: 4246 lsli r2, r2, 6 + 2f16: 6848 and r1, r2 + 2f18: 3940 cmpnei r1, 0 + 2f1a: 0be9 bt 0x2eec // 2eec + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 2f1c: 3280 movi r2, 128 + 2f1e: 932c ld.w r1, (r3, 0x30) + 2f20: 4247 lsli r2, r2, 7 + 2f22: 6848 and r1, r2 + 2f24: 3940 cmpnei r1, 0 + 2f26: 0be3 bt 0x2eec // 2eec + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 2f28: 3280 movi r2, 128 + 2f2a: 932c ld.w r1, (r3, 0x30) + 2f2c: 4248 lsli r2, r2, 8 + 2f2e: 6848 and r1, r2 + 2f30: 3940 cmpnei r1, 0 + 2f32: 0fde bf 0x2eee // 2eee + SYSCON->EXICR = EXI_PIN15; + 2f34: b34b st.w r2, (r3, 0x2c) + BusBusy_Task(); + 2f36: e00002bb bsr 0x34ac // 34ac +} + 2f3a: 07da br 0x2eee // 2eee + 2f3c: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00002f40 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 2f40: 1460 nie + 2f42: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 2f44: 106b lrw r3, 0x20000014 // 2f70 + 2f46: 3101 movi r1, 1 + 2f48: 9360 ld.w r3, (r3, 0x0) + 2f4a: 934e ld.w r2, (r3, 0x38) + 2f4c: 6884 and r2, r1 + 2f4e: 3a40 cmpnei r2, 0 + 2f50: 0c03 bf 0x2f56 // 2f56 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 2f52: b330 st.w r1, (r3, 0x40) + } +} + 2f54: 040b br 0x2f6a // 2f6a + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 2f56: 934e ld.w r2, (r3, 0x38) + 2f58: 3102 movi r1, 2 + 2f5a: 6884 and r2, r1 + 2f5c: 3a40 cmpnei r2, 0 + 2f5e: 0bfa bt 0x2f52 // 2f52 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 2f60: 934e ld.w r2, (r3, 0x38) + 2f62: 3104 movi r1, 4 + 2f64: 6884 and r2, r1 + 2f66: 3a40 cmpnei r2, 0 + 2f68: 0bf5 bt 0x2f52 // 2f52 +} + 2f6a: 1463 ipop + 2f6c: 1461 nir + 2f6e: 0000 bkpt + 2f70: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00002f74 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 2f74: 1460 nie + 2f76: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 2f78: 1071 lrw r3, 0x2000000c // 2fbc + 2f7a: 3101 movi r1, 1 + 2f7c: 9360 ld.w r3, (r3, 0x0) + 2f7e: 934c ld.w r2, (r3, 0x30) + 2f80: 6884 and r2, r1 + 2f82: 3a40 cmpnei r2, 0 + 2f84: 0c0a bf 0x2f98 // 2f98 + { + BT0->ICR = BT_PEND; + 2f86: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 2f88: 9341 ld.w r2, (r3, 0x4) + 2f8a: 3a86 bclri r2, 6 + 2f8c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 2f8e: 9340 ld.w r2, (r3, 0x0) + 2f90: 3200 movi r2, 0 + 2f92: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 2f94: 1463 ipop + 2f96: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 2f98: 934c ld.w r2, (r3, 0x30) + 2f9a: 3102 movi r1, 2 + 2f9c: 6884 and r2, r1 + 2f9e: 3a40 cmpnei r2, 0 + 2fa0: 0c03 bf 0x2fa6 // 2fa6 + BT0->ICR = BT_EVTRG; + 2fa2: b32d st.w r1, (r3, 0x34) +} + 2fa4: 07f8 br 0x2f94 // 2f94 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 2fa6: 934c ld.w r2, (r3, 0x30) + 2fa8: 3104 movi r1, 4 + 2faa: 6884 and r2, r1 + 2fac: 3a40 cmpnei r2, 0 + 2fae: 0bfa bt 0x2fa2 // 2fa2 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 2fb0: 934c ld.w r2, (r3, 0x30) + 2fb2: 3108 movi r1, 8 + 2fb4: 6884 and r2, r1 + 2fb6: 3a40 cmpnei r2, 0 + 2fb8: 0bf5 bt 0x2fa2 // 2fa2 + 2fba: 07ed br 0x2f94 // 2f94 + 2fbc: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00002fc0 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 2fc0: 1460 nie + 2fc2: 1462 ipush + 2fc4: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 2fc6: 1079 lrw r3, 0x20000008 // 3028 + 2fc8: 3101 movi r1, 1 + 2fca: 9360 ld.w r3, (r3, 0x0) + 2fcc: 934c ld.w r2, (r3, 0x30) + 2fce: 6884 and r2, r1 + 2fd0: 3a40 cmpnei r2, 0 + 2fd2: 0c03 bf 0x2fd8 // 2fd8 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 2fd4: b32d st.w r1, (r3, 0x34) + } +} + 2fd6: 0418 br 0x3006 // 3006 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 2fd8: 934c ld.w r2, (r3, 0x30) + 2fda: 3102 movi r1, 2 + 2fdc: 6884 and r2, r1 + 2fde: 3a40 cmpnei r2, 0 + 2fe0: 0c18 bf 0x3010 // 3010 + BT1->ICR = BT_CMP; + 2fe2: b32d st.w r1, (r3, 0x34) + NUM++; + 2fe4: 1072 lrw r3, 0x2000009c // 302c + 2fe6: 8340 ld.b r2, (r3, 0x0) + 2fe8: 2200 addi r2, 1 + 2fea: 7488 zextb r2, r2 + SysTick_100us++; + 2fec: 9321 ld.w r1, (r3, 0x4) + 2fee: 2100 addi r1, 1 + if(NUM >= 10){ + 2ff0: 3a09 cmphsi r2, 10 + NUM++; + 2ff2: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 2ff4: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 2ff6: 0c08 bf 0x3006 // 3006 + NUM = 0; + 2ff8: 3200 movi r2, 0 + 2ffa: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 2ffc: 9342 ld.w r2, (r3, 0x8) + 2ffe: 2200 addi r2, 1 + 3000: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 3002: e0000237 bsr 0x3470 // 3470 +} + 3006: d9ee2000 ld.w r15, (r14, 0x0) + 300a: 1401 addi r14, r14, 4 + 300c: 1463 ipop + 300e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 3010: 934c ld.w r2, (r3, 0x30) + 3012: 3104 movi r1, 4 + 3014: 6884 and r2, r1 + 3016: 3a40 cmpnei r2, 0 + 3018: 0bde bt 0x2fd4 // 2fd4 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 301a: 934c ld.w r2, (r3, 0x30) + 301c: 3108 movi r1, 8 + 301e: 6884 and r2, r1 + 3020: 3a40 cmpnei r2, 0 + 3022: 0bd9 bt 0x2fd4 // 2fd4 + 3024: 07f1 br 0x3006 // 3006 + 3026: 0000 bkpt + 3028: 20000008 .long 0x20000008 + 302c: 2000009c .long 0x2000009c + +Disassembly of section .text.PriviledgeVioHandler: + +00003030 : + 3030: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00003032 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 3032: 1460 nie + 3034: 1462 ipush + // ISR content ... + +} + 3036: 1463 ipop + 3038: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000303a : + 303a: 1460 nie + 303c: 1462 ipush + 303e: 1463 ipop + 3040: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00003042 : + 3042: 1460 nie + 3044: 1462 ipush + 3046: 1463 ipop + 3048: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000304a : + 304a: 1460 nie + 304c: 1462 ipush + 304e: 1463 ipop + 3050: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00003052 : + 3052: 1460 nie + 3054: 1462 ipush + 3056: 1463 ipop + 3058: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000305a : + 305a: 1460 nie + 305c: 1462 ipush + 305e: 1463 ipop + 3060: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00003062 : + 3062: 1460 nie + 3064: 1462 ipush + 3066: 1463 ipop + 3068: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +0000306a : + 306a: 1460 nie + 306c: 1462 ipush + 306e: 1463 ipop + 3070: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00003072 : + 3072: 1460 nie + 3074: 1462 ipush + 3076: 1463 ipop + 3078: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +0000307a : + 307a: 1460 nie + 307c: 1462 ipush + 307e: 1463 ipop + 3080: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00003082 : + 3082: 1460 nie + 3084: 1462 ipush + 3086: 1463 ipop + 3088: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000308a : + 308a: 1460 nie + 308c: 1462 ipush + 308e: 1463 ipop + 3090: 1461 nir + +Disassembly of section .text.__divsi3: + +00003094 <__divsi3>: +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + 3094: 14c1 push r4 + int PSR; + __asm volatile( + 3096: c0006023 mfcr r3, cr<0, 0> + 309a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 309e: 1046 lrw r2, 0x20000000 // 30b4 <__divsi3+0x20> + 30a0: 3400 movi r4, 0 + 30a2: 9240 ld.w r2, (r2, 0x0) + 30a4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 30a6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 30a8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 30aa: b221 st.w r1, (r2, 0x4) + __asm volatile( + 30ac: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 30b0: 9202 ld.w r0, (r2, 0x8) +} + 30b2: 1481 pop r4 + 30b4: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000030b8 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 30b8: 14c1 push r4 + int PSR; + __asm volatile( + 30ba: c0006023 mfcr r3, cr<0, 0> + 30be: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 30c2: 1046 lrw r2, 0x20000000 // 30d8 <__udivsi3+0x20> + 30c4: 3401 movi r4, 1 + 30c6: 9240 ld.w r2, (r2, 0x0) + 30c8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 30ca: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 30cc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 30ce: b221 st.w r1, (r2, 0x4) + __asm volatile( + 30d0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 30d4: 9202 ld.w r0, (r2, 0x8) +} + 30d6: 1481 pop r4 + 30d8: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +000030dc <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 30dc: 14c1 push r4 + int PSR; + __asm volatile( + 30de: c0006023 mfcr r3, cr<0, 0> + 30e2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 30e6: 1046 lrw r2, 0x20000000 // 30fc <__umodsi3+0x20> + 30e8: 3401 movi r4, 1 + 30ea: 9240 ld.w r2, (r2, 0x0) + 30ec: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 30ee: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 30f0: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 30f2: b221 st.w r1, (r2, 0x4) + __asm volatile( + 30f4: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 30f8: 9203 ld.w r0, (r2, 0xc) +} + 30fa: 1481 pop r4 + 30fc: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00003100 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 3100: c1807420 psrset ee, ie +} + 3104: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +00003106 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 3106: c0807020 psrclr ie +} + 310a: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +0000310c : +UART_t g_uart; //空间不足,只能用一个串口 +UART_t g_uart1; //空间不足,只能用一个串口 +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 310c: 14d1 push r4, r15 + switch((U8_T)uart_id){ + 310e: 7400 zextb r0, r0 + 3110: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3112: 6d07 mov r4, r1 + switch((U8_T)uart_id){ + 3114: 0c13 bf 0x313a // 313a + 3116: 3840 cmpnei r0, 0 + 3118: 0c04 bf 0x3120 // 3120 + 311a: 3842 cmpnei r0, 2 + 311c: 0c64 bf 0x31e4 // 31e4 +// GPIO_DriveStrength_EN(GPIOB0,3); +// GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 311e: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 3120: e3fff95e bsr 0x23dc // 23dc + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 3124: 3100 movi r1, 0 + 3126: 3000 movi r0, 0 + 3128: e3fff99a bsr 0x245c // 245c + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 312c: 1176 lrw r3, 0x20000040 // 3204 + 312e: 3200 movi r2, 0 + 3130: 9300 ld.w r0, (r3, 0x0) + 3132: 1136 lrw r1, 0x1388 // 3208 + 3134: e3fffa0a bsr 0x2548 // 2548 + break; + 3138: 07f3 br 0x311e // 311e + memset(&g_uart1,0,sizeof(UART_t)); + 313a: 32a0 movi r2, 160 + 313c: 3100 movi r1, 0 + 313e: 1114 lrw r0, 0x20000214 // 320c + 3140: e3fff412 bsr 0x1964 // 1964 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 3144: 32a4 movi r2, 164 + 3146: 3100 movi r1, 0 + 3148: 1112 lrw r0, 0x200002b4 // 3210 + 314a: e3fff40d bsr 0x1964 // 1964 <__memset_fast> + g_uart1.RecvTimeout = Recv_9600_TimeOut; + 314e: 1172 lrw r3, 0x20000294 // 3214 + 3150: 3203 movi r2, 3 + 3152: b345 st.w r2, (r3, 0x14) + g_uart1.processing_cf = prt_cf; + 3154: b387 st.w r4, (r3, 0x1c) + GPIO_PullHigh_Init(GPIOA0,15); + 3156: 310f movi r1, 15 + m_send.BusState_Tick = SysTick_1ms; + 3158: 1170 lrw r3, 0x200000a4 // 3218 + GPIO_PullHigh_Init(GPIOA0,15); + 315a: 1191 lrw r4, 0x2000004c // 321c + m_send.BusState_Tick = SysTick_1ms; + 315c: 9340 ld.w r2, (r3, 0x0) + 315e: 1171 lrw r3, 0x20000334 // 3220 + 3160: b346 st.w r2, (r3, 0x18) + GPIO_PullHigh_Init(GPIOA0,15); + 3162: 9400 ld.w r0, (r4, 0x0) + m_send.HighBit_Flag = 0x01; + 3164: 3201 movi r2, 1 + 3166: a341 st.b r2, (r3, 0x1) + GPIO_PullHigh_Init(GPIOA0,15); + 3168: e3fff6aa bsr 0x1ebc // 1ebc + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + 316c: 320f movi r2, 15 + 316e: 310f movi r1, 15 + 3170: 3000 movi r0, 0 + 3172: e3fff6b7 bsr 0x1ee0 // 1ee0 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + 3176: 300f movi r0, 15 + 3178: e3fff73a bsr 0x1fec // 1fec + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + 317c: 3180 movi r1, 128 + 317e: 3201 movi r2, 1 + 3180: 4128 lsli r1, r1, 8 + 3182: 3001 movi r0, 1 + 3184: e3fff5b2 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + 3188: 3180 movi r1, 128 + 318a: 3200 movi r2, 0 + 318c: 4128 lsli r1, r1, 8 + 318e: 3001 movi r0, 1 + 3190: e3fff5ac bsr 0x1ce8 // 1ce8 + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + 3194: 3180 movi r1, 128 + 3196: 4128 lsli r1, r1, 8 + 3198: 3001 movi r0, 1 + 319a: e3fff5c7 bsr 0x1d28 // 1d28 + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + 319e: 3180 movi r1, 128 + 31a0: 9400 ld.w r0, (r4, 0x0) + 31a2: 4128 lsli r1, r1, 8 + 31a4: e3fff5dc bsr 0x1d5c // 1d5c + EXI4_Int_Enable(); + 31a8: e3fff5dc bsr 0x1d60 // 1d60 + UART1_DeInit(); //clear all UART Register + 31ac: e3fff924 bsr 0x23f4 // 23f4 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 31b0: 3102 movi r1, 2 + 31b2: 3001 movi r0, 1 + 31b4: e3fff954 bsr 0x245c // 245c + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 31b8: 107b lrw r3, 0x2000003c // 3224 + 31ba: 3200 movi r2, 0 + 31bc: 9300 ld.w r0, (r3, 0x0) + 31be: 1033 lrw r1, 0x1388 // 3208 + 31c0: e3fff9c4 bsr 0x2548 // 2548 + UART1_Int_Enable(); + 31c4: e3fff930 bsr 0x2424 // 2424 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + 31c8: 3200 movi r2, 0 + 31ca: 9400 ld.w r0, (r4, 0x0) + 31cc: 3107 movi r1, 7 + 31ce: e3fff607 bsr 0x1ddc // 1ddc + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + 31d2: 9400 ld.w r0, (r4, 0x0) + 31d4: 3107 movi r1, 7 + 31d6: e3fff67d bsr 0x1ed0 // 1ed0 + WRITE_LOW_DR; + 31da: 9400 ld.w r0, (r4, 0x0) + 31dc: 3107 movi r1, 7 + 31de: e3fff789 bsr 0x20f0 // 20f0 + break; + 31e2: 079e br 0x311e // 311e + UART2_DeInit(); //clear all UART Register + 31e4: e3fff914 bsr 0x240c // 240c + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 31e8: 3102 movi r1, 2 + 31ea: 3002 movi r0, 2 + 31ec: e3fff938 bsr 0x245c // 245c + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 31f0: 106e lrw r3, 0x20000038 // 3228 + 31f2: 3200 movi r2, 0 + 31f4: 9300 ld.w r0, (r3, 0x0) + 31f6: 1025 lrw r1, 0x1388 // 3208 + 31f8: e3fff9a8 bsr 0x2548 // 2548 + UART2_Int_Enable(); + 31fc: e3fff922 bsr 0x2440 // 2440 +} + 3200: 078f br 0x311e // 311e + 3202: 0000 bkpt + 3204: 20000040 .long 0x20000040 + 3208: 00001388 .long 0x00001388 + 320c: 20000214 .long 0x20000214 + 3210: 200002b4 .long 0x200002b4 + 3214: 20000294 .long 0x20000294 + 3218: 200000a4 .long 0x200000a4 + 321c: 2000004c .long 0x2000004c + 3220: 20000334 .long 0x20000334 + 3224: 2000003c .long 0x2000003c + 3228: 20000038 .long 0x20000038 + +Disassembly of section .text.UART1_RecvINT_Processing: + +0000322c : +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + 322c: 106a lrw r3, 0x20000294 // 3254 + 322e: 8b28 ld.h r1, (r3, 0x10) + 3230: 3244 movi r2, 68 + 3232: 6449 cmplt r2, r1 + 3234: 0c03 bf 0x323a // 323a + 3236: 3200 movi r2, 0 + 3238: ab48 st.h r2, (r3, 0x10) + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + 323a: 8b48 ld.h r2, (r3, 0x10) + 323c: 5a22 addi r1, r2, 1 + 323e: ab28 st.h r1, (r3, 0x10) + 3240: 1026 lrw r1, 0x20000214 // 3258 + 3242: 6084 addu r2, r1 + 3244: a200 st.b r0, (r2, 0x0) + + g_uart1.RecvIdleTiming = SysTick_1ms; + 3246: 1046 lrw r2, 0x200000a4 // 325c + 3248: 9240 ld.w r2, (r2, 0x0) + 324a: b346 st.w r2, (r3, 0x18) + g_uart1.Receiving = 0x01; + 324c: 3201 movi r2, 1 + 324e: a34c st.b r2, (r3, 0xc) +} + 3250: 783c jmp r15 + 3252: 0000 bkpt + 3254: 20000294 .long 0x20000294 + 3258: 20000214 .long 0x20000214 + 325c: 200000a4 .long 0x200000a4 + +Disassembly of section .text.UART1_TASK: + +00003260 : + +void UART1_TASK(void){ + 3260: 14d2 push r4-r5, r15 + U8_T rev = 0xFF; + if(g_uart1.Receiving == 0x01){ + 3262: 1094 lrw r4, 0x20000294 // 32b0 + 3264: 846c ld.b r3, (r4, 0xc) + 3266: 3b41 cmpnei r3, 1 + 3268: 0823 bt 0x32ae // 32ae + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + 326a: 10b3 lrw r5, 0x200000a4 // 32b4 + 326c: 9560 ld.w r3, (r5, 0x0) + 326e: 9446 ld.w r2, (r4, 0x18) + 3270: 60ca subu r3, r2 + 3272: 9445 ld.w r2, (r4, 0x14) + 3274: 64c8 cmphs r2, r3 + 3276: 081c bt 0x32ae // 32ae + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 3278: e3fff582 bsr 0x1d7c // 1d7c + g_uart1.RecvIdleTiming = SysTick_1ms; + 327c: 9560 ld.w r3, (r5, 0x0) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 327e: 8c48 ld.h r2, (r4, 0x10) + 3280: 102e lrw r1, 0x20000214 // 32b8 + 3282: 100f lrw r0, 0x2000025a // 32bc + g_uart1.RecvIdleTiming = SysTick_1ms; + 3284: b466 st.w r3, (r4, 0x18) + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + 3286: e3fff3b3 bsr 0x19ec // 19ec <__memcpy_fast> + g_uart1.DealLen = g_uart1.RecvLen; + 328a: 8c68 ld.h r3, (r4, 0x10) + 328c: ac67 st.h r3, (r4, 0xe) + g_uart1.RecvLen = 0; + 328e: 3300 movi r3, 0 + 3290: ac68 st.h r3, (r4, 0x10) + g_uart1.Receiving = 0; + 3292: a46c st.b r3, (r4, 0xc) + SYSCON_Int_Enable(); + 3294: e3fff56e bsr 0x1d70 // 1d70 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); +#endif + if(g_uart1.processing_cf != NULL){ + 3298: 9467 ld.w r3, (r4, 0x1c) + 329a: 3b40 cmpnei r3, 0 + 329c: 0c04 bf 0x32a4 // 32a4 + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + 329e: 8c27 ld.h r1, (r4, 0xe) + 32a0: 1007 lrw r0, 0x2000025a // 32bc + 32a2: 7bcd jsr r3 +// if(rev != 0x00) +// { +// Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); +// } + + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + 32a4: 3246 movi r2, 70 + 32a6: 3100 movi r1, 0 + 32a8: 1005 lrw r0, 0x2000025a // 32bc + 32aa: e3fff35d bsr 0x1964 // 1964 <__memset_fast> + } + } +} + 32ae: 1492 pop r4-r5, r15 + 32b0: 20000294 .long 0x20000294 + 32b4: 200000a4 .long 0x200000a4 + 32b8: 20000214 .long 0x20000214 + 32bc: 2000025a .long 0x2000025a + +Disassembly of section .text.BUS485_Send: + +000032c0 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 32c0: 14d4 push r4-r7, r15 + 32c2: 1423 subi r14, r14, 12 + 32c4: b801 st.w r0, (r14, 0x4) + 32c6: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 32c8: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 32ca: 118a lrw r4, 0x200000a8 // 3370 + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + 32cc: 11ca lrw r6, 0x2000004c // 3374 + while(RS485_Comming == 0x01){ + 32ce: 9460 ld.w r3, (r4, 0x0) + 32d0: 3b41 cmpnei r3, 1 + 32d2: 0c40 bf 0x3352 // 3352 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 32d4: 1169 lrw r3, 0x20000334 // 3378 + 32d6: 83c0 ld.b r6, (r3, 0x0) + 32d8: 3e40 cmpnei r6, 0 + 32da: 6dcf mov r7, r3 + 32dc: 0847 bt 0x336a // 336a + + CK_CPU_DisAllNormalIrq(); + 32de: e3ffff14 bsr 0x3106 // 3106 + + WRITE_HIGH_DR; //485_DR + 32e2: 1165 lrw r3, 0x2000004c // 3374 + 32e4: 3107 movi r1, 7 + 32e6: 9300 ld.w r0, (r3, 0x0) + 32e8: b862 st.w r3, (r14, 0x8) + 32ea: e3fff6ff bsr 0x20e8 // 20e8 + + RS485_Comm_Flag = 0x01; + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 32ee: 3301 movi r3, 1 + RS485_Comm_Flag = 0x01; + 32f0: 3201 movi r2, 1 + 32f2: b441 st.w r2, (r4, 0x4) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 32f4: a760 st.b r3, (r7, 0x0) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 32f6: a762 st.b r3, (r7, 0x2) + RS485_Comm_Start = 0x00; + 32f8: b4c2 st.w r6, (r4, 0x8) + RS485_Comm_End = 0x00; + 32fa: b4c3 st.w r6, (r4, 0xc) + + CK_CPU_EnAllNormalIrq(); + 32fc: e3ffff02 bsr 0x3100 // 3100 + + UARTTransmit(UART1,buff,len); + 3300: 105f lrw r2, 0x2000003c // 337c + 3302: 9200 ld.w r0, (r2, 0x0) + 3304: 9821 ld.w r1, (r14, 0x4) + 3306: 9840 ld.w r2, (r14, 0x0) + 3308: e3fff928 bsr 0x2558 // 2558 + 330c: 9862 ld.w r3, (r14, 0x8) + 330e: b861 st.w r3, (r14, 0x4) + do{ + delay_nus(100); + 3310: 3064 movi r0, 100 + 3312: e3fff96f bsr 0x25f0 // 25f0 + delay_cnt ++; + 3316: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3318: 3363 movi r3, 99 + 331a: 654c cmphs r3, r5 + 331c: 0c08 bf 0x332c // 332c + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 331e: 9462 ld.w r3, (r4, 0x8) + 3320: 9840 ld.w r2, (r14, 0x0) + 3322: 648d cmplt r3, r2 + 3324: 0bf6 bt 0x3310 // 3310 + 3326: 9463 ld.w r3, (r4, 0xc) + 3328: 648d cmplt r3, r2 + 332a: 0bf3 bt 0x3310 // 3310 + + CK_CPU_DisAllNormalIrq(); + 332c: e3fffeed bsr 0x3106 // 3106 + + WRITE_LOW_DR; //485_DR + 3330: 9861 ld.w r3, (r14, 0x4) + 3332: 9300 ld.w r0, (r3, 0x0) + 3334: 3107 movi r1, 7 + 3336: e3fff6dd bsr 0x20f0 // 20f0 + + RS485_Comm_Flag = 0x00; + 333a: 3300 movi r3, 0 + 333c: b461 st.w r3, (r4, 0x4) + + m_send.BusState_Tick = SysTick_1ms; + 333e: 1071 lrw r3, 0x200000a4 // 3380 + 3340: 9360 ld.w r3, (r3, 0x0) + 3342: b766 st.w r3, (r7, 0x18) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 3344: 3300 movi r3, 0 + 3346: a762 st.b r3, (r7, 0x2) + + CK_CPU_EnAllNormalIrq(); + 3348: e3fffedc bsr 0x3100 // 3100 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 334c: 6c1b mov r0, r6 + 334e: 1403 addi r14, r14, 12 + 3350: 1494 pop r4-r7, r15 + delay_nus(100); + 3352: 3064 movi r0, 100 + 3354: e3fff94e bsr 0x25f0 // 25f0 + delay_cnt ++; + 3358: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 335a: 3364 movi r3, 100 + 335c: 64d6 cmpne r5, r3 + 335e: 0fbb bf 0x32d4 // 32d4 + REVERISE_DR; //485_DR + 3360: 3107 movi r1, 7 + 3362: 9600 ld.w r0, (r6, 0x0) + 3364: e3fff6ca bsr 0x20f8 // 20f8 + 3368: 07b3 br 0x32ce // 32ce + return UART_BUSBUSY; //发送失败 + 336a: 3601 movi r6, 1 + 336c: 07f0 br 0x334c // 334c + 336e: 0000 bkpt + 3370: 200000a8 .long 0x200000a8 + 3374: 2000004c .long 0x2000004c + 3378: 20000334 .long 0x20000334 + 337c: 2000003c .long 0x2000003c + 3380: 200000a4 .long 0x200000a4 + +Disassembly of section .text.MultSend_Task: + +00003384 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 3384: 14d3 push r4-r6, r15 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3386: 5963 subi r3, r1, 1 + 3388: 74cd zexth r3, r3 + 338a: 347f movi r4, 127 + 338c: 64d0 cmphs r4, r3 + 338e: 0c23 bf 0x33d4 // 33d4 + + if(DatSd == 0x01) + 3390: 3a41 cmpnei r2, 1 + 3392: 0c03 bf 0x3398 // 3398 + }else{ + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3394: 3001 movi r0, 1 +} + 3396: 1493 pop r4-r6, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 3398: 1092 lrw r4, 0x20000334 // 33e0 + 339a: 8444 ld.b r2, (r4, 0x4) + 339c: 8466 ld.b r3, (r4, 0x6) + 339e: 64c8 cmphs r2, r3 + 33a0: 081c bt 0x33d8 // 33d8 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 33a2: 10b1 lrw r5, 0x200000a4 // 33e4 + 33a4: 9560 ld.w r3, (r5, 0x0) + 33a6: 94c8 ld.w r6, (r4, 0x20) + 33a8: 60da subu r3, r6 + 33aa: 94c5 ld.w r6, (r4, 0x14) + 33ac: 658c cmphs r3, r6 + 33ae: 0817 bt 0x33dc // 33dc + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + 33b0: 3a40 cmpnei r2, 0 + 33b2: 0c07 bf 0x33c0 // 33c0 + 33b4: 9447 ld.w r2, (r4, 0x1c) + 33b6: 9560 ld.w r3, (r5, 0x0) + 33b8: 60ca subu r3, r2 + 33ba: 9444 ld.w r2, (r4, 0x10) + 33bc: 648c cmphs r3, r2 + 33be: 0feb bf 0x3394 // 3394 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 33c0: e3ffff80 bsr 0x32c0 // 32c0 + 33c4: 3840 cmpnei r0, 0 + 33c6: 0be7 bt 0x3394 // 3394 + m_send.ASend_Tick = SysTick_1ms; + 33c8: 9560 ld.w r3, (r5, 0x0) + 33ca: b467 st.w r3, (r4, 0x1c) + m_send.ResendCnt++; + 33cc: 8464 ld.b r3, (r4, 0x4) + 33ce: 2300 addi r3, 1 + 33d0: a464 st.b r3, (r4, 0x4) + 33d2: 07e2 br 0x3396 // 3396 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 33d4: 3004 movi r0, 4 + 33d6: 07e0 br 0x3396 // 3396 + return RETRY_END;//没有重发次数 + 33d8: 3003 movi r0, 3 + 33da: 07de br 0x3396 // 3396 + return DATA_END;//数据有效期结束 + 33dc: 3002 movi r0, 2 + 33de: 07dc br 0x3396 // 3396 + 33e0: 20000334 .long 0x20000334 + 33e4: 200000a4 .long 0x200000a4 + +Disassembly of section .text.Set_GroupSend: + +000033e8 : + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 33e8: 14d4 push r4-r7, r15 + 33ea: 1421 subi r14, r14, 4 + 33ec: 6dcf mov r7, r3 + 33ee: 9866 ld.w r3, (r14, 0x18) + 33f0: b860 st.w r3, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 33f2: 5963 subi r3, r1, 1 +{ + 33f4: 6d4b mov r5, r2 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 33f6: 74cd zexth r3, r3 + 33f8: 327f movi r2, 127 + 33fa: 64c8 cmphs r2, r3 +{ + 33fc: 6d83 mov r6, r0 + 33fe: 6d07 mov r4, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3400: 0c19 bf 0x3432 // 3432 + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 3402: 3280 movi r2, 128 + 3404: 3100 movi r1, 0 + 3406: 100d lrw r0, 0x200002b4 // 3438 + 3408: e3fff2ae bsr 0x1964 // 1964 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 340c: 6c93 mov r2, r4 + 340e: 6c5b mov r1, r6 + 3410: 100a lrw r0, 0x200002b4 // 3438 + 3412: e3fff2ed bsr 0x19ec // 19ec <__memcpy_fast> + m_send.SendLen = sled; + 3416: 106a lrw r3, 0x20000334 // 343c + + m_send.DataValid_Time = indate;//数据有效期 + m_send.TotalCnt = SCnt; //数据发送次数 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3418: 9840 ld.w r2, (r14, 0x0) + 341a: b344 st.w r2, (r3, 0x10) + + m_send.ASend_Flag = 0x01; + 341c: 3201 movi r2, 1 + 341e: a345 st.b r2, (r3, 0x5) + m_send.SendState = BUSSEND_WAIT; + 3420: a343 st.b r2, (r3, 0x3) + m_send.ResendCnt = 0x00; + 3422: 3200 movi r2, 0 + 3424: a344 st.b r2, (r3, 0x4) + m_send.SendLen = sled; + 3426: ab85 st.h r4, (r3, 0xa) + m_send.DataValid_Time = indate;//数据有效期 + 3428: b3e5 st.w r7, (r3, 0x14) + m_send.TotalCnt = SCnt; //数据发送次数 + 342a: a3a6 st.b r5, (r3, 0x6) + m_send.BusbusyTimeout = SysTick_1ms; + 342c: 1045 lrw r2, 0x200000a4 // 3440 + 342e: 9240 ld.w r2, (r2, 0x0) + 3430: b348 st.w r2, (r3, 0x20) +} + 3432: 1401 addi r14, r14, 4 + 3434: 1494 pop r4-r7, r15 + 3436: 0000 bkpt + 3438: 200002b4 .long 0x200002b4 + 343c: 20000334 .long 0x20000334 + 3440: 200000a4 .long 0x200000a4 + +Disassembly of section .text.BUS485Send_Task: + +00003444 : + m_send.Jump_Flag = jump; +} + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 3444: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 3446: 1089 lrw r4, 0x20000334 // 3468 + 3448: 8465 ld.b r3, (r4, 0x5) + 344a: 3b41 cmpnei r3, 1 + 344c: 080d bt 0x3466 // 3466 + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 344e: 8c25 ld.h r1, (r4, 0xa) + 3450: 3201 movi r2, 1 + 3452: 1007 lrw r0, 0x200002b4 // 346c + 3454: e3ffff98 bsr 0x3384 // 3384 + 3458: a403 st.b r0, (r4, 0x3) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 345a: 2801 subi r0, 2 + 345c: 7400 zextb r0, r0 + 345e: 3801 cmphsi r0, 2 + 3460: 0803 bt 0x3466 // 3466 + { + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发送标志位 + 3462: 3300 movi r3, 0 + 3464: a465 st.b r3, (r4, 0x5) + + } + } +} + 3466: 1491 pop r4, r15 + 3468: 20000334 .long 0x20000334 + 346c: 200002b4 .long 0x200002b4 + +Disassembly of section .text.BusIdle_Task: + +00003470 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 3470: 14d1 push r4, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 3472: 108d lrw r4, 0x20000334 // 34a4 + 3474: 8460 ld.b r3, (r4, 0x0) + 3476: 3b40 cmpnei r3, 0 + 3478: 0c15 bf 0x34a2 // 34a2 + 347a: 8462 ld.b r3, (r4, 0x2) + 347c: 3b41 cmpnei r3, 1 + 347e: 0c12 bf 0x34a2 // 34a2 + { + CK_CPU_DisAllNormalIrq(); + 3480: e3fffe43 bsr 0x3106 // 3106 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 3484: 8461 ld.b r3, (r4, 0x1) + 3486: 3b41 cmpnei r3, 1 + 3488: 080b bt 0x349e // 349e + 348a: 1068 lrw r3, 0x200000a4 // 34a8 + 348c: 9340 ld.w r2, (r3, 0x0) + 348e: 9466 ld.w r3, (r4, 0x18) + 3490: 608e subu r2, r3 + 3492: 9463 ld.w r3, (r4, 0xc) + 3494: 2305 addi r3, 6 + 3496: 64c8 cmphs r2, r3 + 3498: 0c03 bf 0x349e // 349e + { + m_send.BusState_Flag = UART_BUSIDLE; + 349a: 3300 movi r3, 0 + 349c: a460 st.b r3, (r4, 0x0) + } + CK_CPU_EnAllNormalIrq(); + 349e: e3fffe31 bsr 0x3100 // 3100 + } +} + 34a2: 1491 pop r4, r15 + 34a4: 20000334 .long 0x20000334 + 34a8: 200000a4 .long 0x200000a4 + +Disassembly of section .text.BusBusy_Task: + +000034ac : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 34ac: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + 34ae: e3fffe2c bsr 0x3106 // 3106 + m_send.BusState_Flag = UART_BUSBUSY; + 34b2: 1091 lrw r4, 0x20000334 // 34f4 + 34b4: 3301 movi r3, 1 + 34b6: a460 st.b r3, (r4, 0x0) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 34b8: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 34ba: 1070 lrw r3, 0x200000a4 // 34f8 + + if(READ_RX_LEVEL_STATE == 0x01){ + 34bc: 10b0 lrw r5, 0x2000004c // 34fc + m_send.BusState_Tick = SysTick_1ms; + 34be: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 34c0: 9300 ld.w r0, (r3, 0x0) + 34c2: 9467 ld.w r3, (r4, 0x1c) + m_send.BusState_Tick = SysTick_1ms; + 34c4: b446 st.w r2, (r4, 0x18) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 34c6: 600e subu r0, r3 + 34c8: e3fffe0a bsr 0x30dc // 30dc <__umodsi3> + 34cc: b403 st.w r0, (r4, 0xc) + if(READ_RX_LEVEL_STATE == 0x01){ + 34ce: 310f movi r1, 15 + 34d0: 9500 ld.w r0, (r5, 0x0) + 34d2: e3fff61e bsr 0x210e // 210e + 34d6: 3841 cmpnei r0, 1 + 34d8: 0806 bt 0x34e4 // 34e4 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 34da: 3301 movi r3, 1 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 34dc: a461 st.b r3, (r4, 0x1) + } + CK_CPU_EnAllNormalIrq(); + 34de: e3fffe11 bsr 0x3100 // 3100 +} + 34e2: 1492 pop r4-r5, r15 + }else if(READ_RX_LEVEL_STATE == 0x00){ + 34e4: 9500 ld.w r0, (r5, 0x0) + 34e6: 310f movi r1, 15 + 34e8: e3fff613 bsr 0x210e // 210e + 34ec: 3840 cmpnei r0, 0 + 34ee: 0bf8 bt 0x34de // 34de + m_send.HighBit_Flag = 0x00; //低电平 + 34f0: 3300 movi r3, 0 + 34f2: 07f5 br 0x34dc // 34dc + 34f4: 20000334 .long 0x20000334 + 34f8: 200000a4 .long 0x200000a4 + 34fc: 2000004c .long 0x2000004c + +Disassembly of section .text.Dbg_Println: + +00003500 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3500: 1423 subi r14, r14, 12 + 3502: b862 st.w r3, (r14, 0x8) + 3504: b841 st.w r2, (r14, 0x4) + 3506: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3508: 1403 addi r14, r14, 12 + 350a: 783c jmp r15 + +Disassembly of section .text.DIP_GetSwitchState: + +0000350c : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 350c: 14d0 push r15 + U8_T val = 0; + + switch (i) + 350e: 3841 cmpnei r0, 1 + 3510: 0c0d bf 0x352a // 352a + 3512: 3840 cmpnei r0, 0 + 3514: 0c05 bf 0x351e // 351e + 3516: 3842 cmpnei r0, 2 + 3518: 0c0d bf 0x3532 // 3532 + U8_T val = 0; + 351a: 3000 movi r0, 0 + 351c: 0406 br 0x3528 // 3528 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + 351e: 1068 lrw r3, 0x2000004c // 353c + 3520: 310a movi r1, 10 + 3522: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + 3524: e3fff5f5 bsr 0x210e // 210e + break; + + } + return val; +} + 3528: 1490 pop r15 + val = GPIO_Read_Status(GPIOA0,9); + 352a: 1065 lrw r3, 0x2000004c // 353c + 352c: 3109 movi r1, 9 + 352e: 9300 ld.w r0, (r3, 0x0) + 3530: 07fa br 0x3524 // 3524 + val = GPIO_Read_Status(GPIOA0,8); + 3532: 1063 lrw r3, 0x2000004c // 353c + 3534: 3108 movi r1, 8 + 3536: 9300 ld.w r0, (r3, 0x0) + 3538: 07f6 br 0x3524 // 3524 + 353a: 0000 bkpt + 353c: 2000004c .long 0x2000004c + +Disassembly of section .text.DIP_Switch_Init: + +00003540 : +void DIP_Switch_Init(void){ + 3540: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,10,Intput); + 3542: 1180 lrw r4, 0x2000004c // 35c0 + 3544: 3201 movi r2, 1 + 3546: 9400 ld.w r0, (r4, 0x0) + 3548: 310a movi r1, 10 + 354a: e3fff449 bsr 0x1ddc // 1ddc + GPIO_Init(GPIOA0,9,Intput); + 354e: 9400 ld.w r0, (r4, 0x0) + 3550: 3201 movi r2, 1 + 3552: 3109 movi r1, 9 + 3554: e3fff444 bsr 0x1ddc // 1ddc + GPIO_Init(GPIOA0,8,Intput); + 3558: 3201 movi r2, 1 + 355a: 9400 ld.w r0, (r4, 0x0) + 355c: 3108 movi r1, 8 + 355e: e3fff43f bsr 0x1ddc // 1ddc + GPIO_PullHigh_Init(GPIOA0,10); + 3562: 9400 ld.w r0, (r4, 0x0) + 3564: 310a movi r1, 10 + 3566: e3fff4ab bsr 0x1ebc // 1ebc + GPIO_PullHigh_Init(GPIOA0,9); + 356a: 9400 ld.w r0, (r4, 0x0) + 356c: 3109 movi r1, 9 + 356e: e3fff4a7 bsr 0x1ebc // 1ebc + GPIO_PullHigh_Init(GPIOA0,8); + 3572: 9400 ld.w r0, (r4, 0x0) + 3574: 3108 movi r1, 8 + 3576: e3fff4a3 bsr 0x1ebc // 1ebc + memset(&g_Dip,0,sizeof(DIP_t)); + 357a: 3210 movi r2, 16 + 357c: 3100 movi r1, 0 + 357e: 1012 lrw r0, 0x20000358 // 35c4 + 3580: e3fff1f2 bsr 0x1964 // 1964 <__memset_fast> + delay_nms(20); + 3584: 3014 movi r0, 20 + 3586: e3fff81f bsr 0x25c4 // 25c4 + 358a: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 358c: 10ae lrw r5, 0x20000358 // 35c4 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 358e: 7410 zextb r0, r4 + 3590: e3ffffbe bsr 0x350c // 350c + 3594: 3840 cmpnei r0, 0 + 3596: 0807 bt 0x35a4 // 35a4 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 3598: 3301 movi r3, 1 + 359a: 70d0 lsl r3, r4 + 359c: 6c8f mov r2, r3 + 359e: 9562 ld.w r3, (r5, 0x8) + 35a0: 6cc8 or r3, r2 + 35a2: b562 st.w r3, (r5, 0x8) + 35a4: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 35a6: 3c43 cmpnei r4, 3 + 35a8: 0bf3 bt 0x358e // 358e + g_Dip.DIP_last_val = g_Dip.DIP_val; + 35aa: 1067 lrw r3, 0x20000358 // 35c4 + g_Dip.addr = g_Dip.DIP_val & 0x07; + 35ac: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 35ae: 9342 ld.w r2, (r3, 0x8) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 35b0: 6848 and r1, r2 + 35b2: a326 st.b r1, (r3, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val); + 35b4: 3000 movi r0, 0 + 35b6: 1025 lrw r1, 0x44af // 35c8 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 35b8: b343 st.w r2, (r3, 0xc) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d",g_Dip.DIP_val); + 35ba: e3ffffa3 bsr 0x3500 // 3500 +} + 35be: 1492 pop r4-r5, r15 + 35c0: 2000004c .long 0x2000004c + 35c4: 20000358 .long 0x20000358 + 35c8: 000044af .long 0x000044af + +Disassembly of section .text.DIP_ScanTask: + +000035cc : + +void DIP_ScanTask(void) +{ + 35cc: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 35ce: 1120 lrw r1, 0x200000a4 // 364c + 35d0: 1140 lrw r2, 0x200000b8 // 3650 + 35d2: 11a1 lrw r5, 0x20000358 // 3654 + 35d4: 9200 ld.w r0, (r2, 0x0) + 35d6: 9160 ld.w r3, (r1, 0x0) + 35d8: 60c2 subu r3, r0 + 35da: 3b14 cmphsi r3, 21 + 35dc: 0806 bt 0x35e8 // 35e8 + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 35de: 9562 ld.w r3, (r5, 0x8) + 35e0: 9543 ld.w r2, (r5, 0xc) + 35e2: 648e cmpne r3, r2 + 35e4: 082e bt 0x3640 // 3640 + g_Dip.addr = g_Dip.DIP_val & 0x07; + + + } + +} + 35e6: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 35e8: 9160 ld.w r3, (r1, 0x0) + 35ea: b260 st.w r3, (r2, 0x0) + 35ec: 6d17 mov r4, r5 + 35ee: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 35f0: 7418 zextb r0, r6 + 35f2: e3ffff8d bsr 0x350c // 350c + 35f6: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 35f8: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 35fa: 0814 bt 0x3622 // 3622 + g_Dip.delayCnt_OFF[i] = 0; + 35fc: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 35fe: 8460 ld.b r3, (r4, 0x0) + 3600: 3b04 cmphsi r3, 5 + 3602: 0808 bt 0x3612 // 3612 + g_Dip.delayCnt_ON[i]++; + 3604: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 3606: a460 st.b r3, (r4, 0x0) + 3608: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 360a: 3e43 cmpnei r6, 3 + 360c: 2400 addi r4, 1 + 360e: 0bf1 bt 0x35f0 // 35f0 + 3610: 07e7 br 0x35de // 35de + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 3612: 3301 movi r3, 1 + 3614: 70d8 lsl r3, r6 + 3616: 6c8f mov r2, r3 + 3618: 9562 ld.w r3, (r5, 0x8) + 361a: 6cc8 or r3, r2 + 361c: b562 st.w r3, (r5, 0x8) + g_Dip.delayCnt_ON[i] = 0; + 361e: 3300 movi r3, 0 + 3620: 07f3 br 0x3606 // 3606 + g_Dip.delayCnt_ON[i] = 0; + 3622: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 3624: 8463 ld.b r3, (r4, 0x3) + 3626: 3b04 cmphsi r3, 5 + 3628: 0804 bt 0x3630 // 3630 + g_Dip.delayCnt_OFF[i]++; + 362a: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 362c: a463 st.b r3, (r4, 0x3) + 362e: 07ed br 0x3608 // 3608 + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 3630: 3300 movi r3, 0 + 3632: 2b01 subi r3, 2 + 3634: 9542 ld.w r2, (r5, 0x8) + 3636: 70db rotl r3, r6 + 3638: 68c8 and r3, r2 + 363a: b562 st.w r3, (r5, 0x8) + g_Dip.delayCnt_OFF[i] = 0; + 363c: 3300 movi r3, 0 + 363e: 07f7 br 0x362c // 362c + g_Dip.addr = g_Dip.DIP_val & 0x07; + 3640: 3207 movi r2, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 3642: b563 st.w r3, (r5, 0xc) + g_Dip.addr = g_Dip.DIP_val & 0x07; + 3644: 68c8 and r3, r2 + 3646: a566 st.b r3, (r5, 0x6) +} + 3648: 07cf br 0x35e6 // 35e6 + 364a: 0000 bkpt + 364c: 200000a4 .long 0x200000a4 + 3650: 200000b8 .long 0x200000b8 + 3654: 20000358 .long 0x20000358 + +Disassembly of section .text.Relay_Init: + +00003658 : +#include "includes.h" + +ZERO_CTRL_RLY c_rly; + +void Relay_Init(void) +{ + 3658: 14d1 push r4, r15 + 365a: 1429 subi r14, r14, 36 + memset(&c_rly,0, sizeof(ZERO_CTRL_RLY)); + 365c: 118d lrw r4, 0x20000368 // 3710 + 365e: 3216 movi r2, 22 + 3660: 3100 movi r1, 0 + 3662: 6c13 mov r0, r4 + 3664: e3fff180 bsr 0x1964 // 1964 <__memset_fast> + c_rly.wind_LOW_vol = 1000; //测试 + 3668: 33fa movi r3, 250 + 366a: 4362 lsli r3, r3, 2 + 366c: ac68 st.h r3, (r4, 0x10) + c_rly.wind_MID_vol = 3000; + 366e: 116c lrw r3, 0xbb8 // 371c + 3670: ac69 st.h r3, (r4, 0x12) + c_rly.wind_HIGH_vol = 5000; + + + GPT_IO_Init(GPT_CHB_PB00); + 3672: 3005 movi r0, 5 + c_rly.wind_HIGH_vol = 5000; + 3674: 116b lrw r3, 0x1388 // 3720 + 3676: ac6a st.h r3, (r4, 0x14) + GPT_IO_Init(GPT_CHB_PB00); + 3678: e3fff5b4 bsr 0x21e0 // 21e0 + + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 367c: 3400 movi r4, 0 + GPT_Configure(GPTCLK_EN,GPT_PCLK,GPT_IMMEDIATE,0); + 367e: 3300 movi r3, 0 + 3680: 3240 movi r2, 64 + 3682: 3100 movi r1, 0 + 3684: 3001 movi r0, 1 + 3686: e3fff5fd bsr 0x2280 // 2280 + GPT_WaveCtrl_Configure(GPT_INCREASE,GPT_SWSYNDIS,GPT_IDLE_LOW,GPT_PRDLD_PEND,GPT_OPM_CONTINUOUS,GPT_BURST_DIS,GPT_CKS_PCLK,GPT_CG_CHAX,GPT_CGFLT_00,GPT_PRDLD_ZERO); + 368a: b885 st.w r4, (r14, 0x14) + 368c: b884 st.w r4, (r14, 0x10) + 368e: b883 st.w r4, (r14, 0xc) + 3690: b882 st.w r4, (r14, 0x8) + 3692: b881 st.w r4, (r14, 0x4) + 3694: b880 st.w r4, (r14, 0x0) + 3696: 3300 movi r3, 0 + 3698: 3208 movi r2, 8 + 369a: 3100 movi r1, 0 + 369c: 3000 movi r0, 0 + 369e: e3fff5fb bsr 0x2294 // 2294 + GPT_Period_CMP_Write(10000,0,0); + 36a2: 3200 movi r2, 0 + 36a4: 3100 movi r1, 0 + 36a6: 101c lrw r0, 0x2710 // 3714 + 36a8: e3fff684 bsr 0x23b0 // 23b0 + GPT_WaveLoad_Configure(GPT_WAVEA_IMMEDIATE,GPT_WAVEB_SHADOW,GPT_AQLDA_ZERO,GPT_AQLDB_ZERO); + 36ac: 3320 movi r3, 32 + 36ae: 3204 movi r2, 4 + 36b0: 3100 movi r1, 0 + 36b2: 3001 movi r0, 1 + 36b4: e3fff612 bsr 0x22d8 // 22d8 + GPT_WaveOut_Configure(GPT_CHB,GPT_CASEL_CMPA,GPT_CBSEL_CMPA,2,0,1,1,0,0,0,0,0,0); + 36b8: 3301 movi r3, 1 + 36ba: 3200 movi r2, 0 + 36bc: b888 st.w r4, (r14, 0x20) + 36be: b887 st.w r4, (r14, 0x1c) + 36c0: b886 st.w r4, (r14, 0x18) + 36c2: b885 st.w r4, (r14, 0x14) + 36c4: b884 st.w r4, (r14, 0x10) + 36c6: b883 st.w r4, (r14, 0xc) + 36c8: b862 st.w r3, (r14, 0x8) + 36ca: b861 st.w r3, (r14, 0x4) + 36cc: b880 st.w r4, (r14, 0x0) + 36ce: 3302 movi r3, 2 + 36d0: 3100 movi r1, 0 + 36d2: 3001 movi r0, 1 + 36d4: e3fff60c bsr 0x22ec // 22ec + GPT_Start(); + 36d8: e3fff664 bsr 0x23a0 // 23a0 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 36dc: 3180 movi r1, 128 + + //真-继电器 + GPIO_Init(GPIOA0,12,Output); + 36de: 108f lrw r4, 0x2000004c // 3718 + GPT_ConfigInterrupt_CMD(ENABLE,GPT_INT_PEND); + 36e0: 4129 lsli r1, r1, 9 + 36e2: 3001 movi r0, 1 + 36e4: e3fff66e bsr 0x23c0 // 23c0 + GPIO_Init(GPIOA0,12,Output); + 36e8: 9400 ld.w r0, (r4, 0x0) + 36ea: 3200 movi r2, 0 + 36ec: 310c movi r1, 12 + 36ee: e3fff377 bsr 0x1ddc // 1ddc + GPIO_Init(GPIOA0,13,Output); + 36f2: 3200 movi r2, 0 + 36f4: 9400 ld.w r0, (r4, 0x0) + 36f6: 310d movi r1, 13 + 36f8: e3fff372 bsr 0x1ddc // 1ddc + + RLY_HOT_CLOSE; + 36fc: 9400 ld.w r0, (r4, 0x0) + 36fe: 310d movi r1, 13 + 3700: e3fff4f4 bsr 0x20e8 // 20e8 + RLY_COOL_CLOSE; + 3704: 9400 ld.w r0, (r4, 0x0) + 3706: 310c movi r1, 12 + 3708: e3fff4f0 bsr 0x20e8 // 20e8 + +} + 370c: 1409 addi r14, r14, 36 + 370e: 1491 pop r4, r15 + 3710: 20000368 .long 0x20000368 + 3714: 00002710 .long 0x00002710 + 3718: 2000004c .long 0x2000004c + 371c: 00000bb8 .long 0x00000bb8 + 3720: 00001388 .long 0x00001388 + +Disassembly of section .text.CheckSum: + +00003724 : + * @param data: 校验数据 + * @param len: 数据长度 + * @retval 和校验值 + ******************************************/ +U8_T CheckSum(U8_T *data,U16_T len) +{ + 3724: 6cc3 mov r3, r0 + 3726: 6040 addu r1, r0 + U8_T data_sum = 0; + 3728: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 372e: 783c jmp r15 + data_sum += data[i]; + 3730: 8340 ld.b r2, (r3, 0x0) + 3732: 6008 addu r0, r2 + 3734: 7400 zextb r0, r0 + 3736: 2300 addi r3, 1 + 3738: 07f9 br 0x372a // 372a + +Disassembly of section .text.Change_OUTV: + +0000373c : + + +//选择输出电压,0 - 10000mV +U8_T Change_OUTV(U16_T VolOut) +{ + if(VolOut > 10000) return 0x01; + 373c: 1065 lrw r3, 0x2710 // 3750 + 373e: 640c cmphs r3, r0 + 3740: 0c06 bf 0x374c // 374c + + GPT0->CMPA = VolOut; + 3742: 1065 lrw r3, 0x20000024 // 3754 + 3744: 9360 ld.w r3, (r3, 0x0) + 3746: b30b st.w r0, (r3, 0x2c) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"CMPA:%d",VolOut); + + return 0x00; + 3748: 3000 movi r0, 0 +} + 374a: 783c jmp r15 + if(VolOut > 10000) return 0x01; + 374c: 3001 movi r0, 1 + 374e: 07fe br 0x374a // 374a + 3750: 00002710 .long 0x00002710 + 3754: 20000024 .long 0x20000024 + +Disassembly of section .text.BLV_VolOut_Ctrl: + +00003758 : + * @param + * @retval None + * */ + +void BLV_VolOut_Ctrl(void) +{ + 3758: 14d1 push r4, r15 + c_rly.wind = WIND_STOP; + 375a: 109f lrw r4, 0x20000368 // 37d4 + 375c: 3300 movi r3, 0 + 375e: a46c st.b r3, (r4, 0xc) + + if(c_rly.rly_state[WINDRLY_HIGH] == Control_ON) + 3760: 8465 ld.b r3, (r4, 0x5) + 3762: 3b41 cmpnei r3, 1 + 3764: 0816 bt 0x3790 // 3790 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_HIGH"); + 3766: 103d lrw r1, 0x44bb // 37d8 + 3768: 3000 movi r0, 0 + 376a: e3fffecb bsr 0x3500 // 3500 + + c_rly.wind = WIND_HIGH; + 376e: 3303 movi r3, 3 + 3770: a46c st.b r3, (r4, 0xc) + c_rly.rly_state[WINDRLY_MID] = Control_OFF; + 3772: 3300 movi r3, 0 + 3774: a464 st.b r3, (r4, 0x4) + }else if(c_rly.rly_state[WINDRLY_MID] == Control_ON) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_MID"); + + c_rly.wind = WIND_MID; + c_rly.rly_state[WINDRLY_LOW] = Control_OFF; + 3776: a463 st.b r3, (r4, 0x3) + Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_LOW"); + + c_rly.wind = WIND_LOW; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"VolOut_Ctrl wind:%d",c_rly.wind); + 3778: 844c ld.b r2, (r4, 0xc) + 377a: 1039 lrw r1, 0x44d7 // 37dc + 377c: 3000 movi r0, 0 + 377e: e3fffec1 bsr 0x3500 // 3500 + + if(c_rly.wind == WIND_STOP){ + 3782: 846c ld.b r3, (r4, 0xc) + 3784: 3b40 cmpnei r3, 0 + 3786: 081a bt 0x37ba // 37ba + Change_OUTV(c_rly.wind_STOP_vol); + 3788: 8c07 ld.h r0, (r4, 0xe) + }else if(c_rly.wind == WIND_LOW){ + Change_OUTV(c_rly.wind_LOW_vol); + }else if(c_rly.wind == WIND_MID){ + Change_OUTV(c_rly.wind_MID_vol); + }else if(c_rly.wind == WIND_HIGH){ + Change_OUTV(c_rly.wind_HIGH_vol); + 378a: e3ffffd9 bsr 0x373c // 373c + } +} + 378e: 1491 pop r4, r15 + }else if(c_rly.rly_state[WINDRLY_MID] == Control_ON) + 3790: 8464 ld.b r3, (r4, 0x4) + 3792: 3b41 cmpnei r3, 1 + 3794: 0809 bt 0x37a6 // 37a6 + Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_MID"); + 3796: 1033 lrw r1, 0x44c5 // 37e0 + 3798: 3000 movi r0, 0 + 379a: e3fffeb3 bsr 0x3500 // 3500 + c_rly.wind = WIND_MID; + 379e: 3302 movi r3, 2 + 37a0: a46c st.b r3, (r4, 0xc) + c_rly.rly_state[WINDRLY_LOW] = Control_OFF; + 37a2: 3300 movi r3, 0 + 37a4: 07e9 br 0x3776 // 3776 + }else if(c_rly.rly_state[WINDRLY_LOW] == Control_ON) // 优先级高>中>抵 , 若同时被控制多个风速继电器,则将按照优先级打开继电器 并自动关闭其他继电器 + 37a6: 8463 ld.b r3, (r4, 0x3) + 37a8: 3b41 cmpnei r3, 1 + 37aa: 0be7 bt 0x3778 // 3778 + Dbg_Println(DBG_BIT_SYS_STATUS,"WIND_LOW"); + 37ac: 102e lrw r1, 0x44ce // 37e4 + 37ae: 3000 movi r0, 0 + 37b0: e3fffea8 bsr 0x3500 // 3500 + c_rly.wind = WIND_LOW; + 37b4: 3301 movi r3, 1 + 37b6: a46c st.b r3, (r4, 0xc) + 37b8: 07e0 br 0x3778 // 3778 + }else if(c_rly.wind == WIND_LOW){ + 37ba: 3b41 cmpnei r3, 1 + 37bc: 0803 bt 0x37c2 // 37c2 + Change_OUTV(c_rly.wind_LOW_vol); + 37be: 8c08 ld.h r0, (r4, 0x10) + 37c0: 07e5 br 0x378a // 378a + }else if(c_rly.wind == WIND_MID){ + 37c2: 3b42 cmpnei r3, 2 + 37c4: 0803 bt 0x37ca // 37ca + Change_OUTV(c_rly.wind_MID_vol); + 37c6: 8c09 ld.h r0, (r4, 0x12) + 37c8: 07e1 br 0x378a // 378a + }else if(c_rly.wind == WIND_HIGH){ + 37ca: 3b43 cmpnei r3, 3 + 37cc: 0be1 bt 0x378e // 378e + Change_OUTV(c_rly.wind_HIGH_vol); + 37ce: 8c0a ld.h r0, (r4, 0x14) + 37d0: 07dd br 0x378a // 378a + 37d2: 0000 bkpt + 37d4: 20000368 .long 0x20000368 + 37d8: 000044bb .long 0x000044bb + 37dc: 000044d7 .long 0x000044d7 + 37e0: 000044c5 .long 0x000044c5 + 37e4: 000044ce .long 0x000044ce + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +000037e8 : + * @param rly_id:继电器id + * @param state:继电器要改变的状态 + * @retval None + * */ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) +{ + 37e8: 14d0 push r15 + if(rly_id >= RLY_MAX) return; + 37ea: 3804 cmphsi r0, 5 + 37ec: 0807 bt 0x37fa // 37fa + + switch(state) + 37ee: 3941 cmpnei r1, 1 + 37f0: 0c06 bf 0x37fc // 37fc + 37f2: 3940 cmpnei r1, 0 + 37f4: 0c13 bf 0x381a // 381a + 37f6: 3942 cmpnei r1, 2 + 37f8: 0c20 bf 0x3838 // 3838 + } + } + break; + } + +} + 37fa: 1490 pop r15 + if(c_rly.rly_state[rly_id] != Control_ON) + 37fc: 1078 lrw r3, 0x20000368 // 385c + 37fe: 60c0 addu r3, r0 + 3800: 8341 ld.b r2, (r3, 0x1) + 3802: 3a41 cmpnei r2, 1 + 3804: 0ffb bf 0x37fa // 37fa + c_rly.rly_state[rly_id] = Control_ON; + 3806: 3201 movi r2, 1 + if(rly_id == CTRL_RLY1){ + 3808: 3840 cmpnei r0, 0 + c_rly.rly_state[rly_id] = Control_ON; + 380a: a341 st.b r2, (r3, 0x1) + if(rly_id == CTRL_RLY1){ + 380c: 0822 bt 0x3850 // 3850 + RLY_HOT_OPEN; + 380e: 1075 lrw r3, 0x2000004c // 3860 + 3810: 310d movi r1, 13 + 3812: 9300 ld.w r0, (r3, 0x0) + RLY_COOL_OPEN; + 3814: e3fff46e bsr 0x20f0 // 20f0 + 3818: 07f1 br 0x37fa // 37fa + if(c_rly.rly_state[rly_id] != Control_OFF) + 381a: 1071 lrw r3, 0x20000368 // 385c + 381c: 60c0 addu r3, r0 + 381e: 8341 ld.b r2, (r3, 0x1) + 3820: 3a40 cmpnei r2, 0 + 3822: 0fec bf 0x37fa // 37fa + c_rly.rly_state[rly_id] = Control_OFF; + 3824: 3200 movi r2, 0 + if(rly_id == CTRL_RLY1){ + 3826: 3840 cmpnei r0, 0 + c_rly.rly_state[rly_id] = Control_OFF; + 3828: a341 st.b r2, (r3, 0x1) + if(rly_id == CTRL_RLY1){ + 382a: 080d bt 0x3844 // 3844 + RLY_HOT_CLOSE; + 382c: 106d lrw r3, 0x2000004c // 3860 + 382e: 310d movi r1, 13 + 3830: 9300 ld.w r0, (r3, 0x0) + RLY_COOL_CLOSE; + 3832: e3fff45b bsr 0x20e8 // 20e8 + 3836: 07e2 br 0x37fa // 37fa + if(c_rly.rly_state[rly_id] != Control_OFF) + 3838: 1069 lrw r3, 0x20000368 // 385c + 383a: 60c0 addu r3, r0 + 383c: 8341 ld.b r2, (r3, 0x1) + 383e: 3a40 cmpnei r2, 0 + 3840: 0fe3 bf 0x3806 // 3806 + 3842: 07f1 br 0x3824 // 3824 + }else if(rly_id == CTRL_RLY2){ + 3844: 3841 cmpnei r0, 1 + 3846: 0bda bt 0x37fa // 37fa + RLY_COOL_CLOSE; + 3848: 1066 lrw r3, 0x2000004c // 3860 + 384a: 310c movi r1, 12 + 384c: 9300 ld.w r0, (r3, 0x0) + 384e: 07f2 br 0x3832 // 3832 + }else if(rly_id == CTRL_RLY2){ + 3850: 3841 cmpnei r0, 1 + 3852: 0bd4 bt 0x37fa // 37fa + RLY_COOL_OPEN; + 3854: 1063 lrw r3, 0x2000004c // 3860 + 3856: 310c movi r1, 12 + 3858: 9300 ld.w r0, (r3, 0x0) + 385a: 07dd br 0x3814 // 3814 + 385c: 20000368 .long 0x20000368 + 3860: 2000004c .long 0x2000004c + +Disassembly of section .text.BLV_RLY_Task: + +00003864 : +//继电器动作处理 +void BLV_RLY_Task(void) +{ + 3864: 14d3 push r4-r6, r15 + if(c_rly.rly_control != 0x01)return; + 3866: 10b3 lrw r5, 0x20000368 // 38b0 + 3868: 8560 ld.b r3, (r5, 0x0) + 386a: 3b41 cmpnei r3, 1 + 386c: 0819 bt 0x389e // 389e + 386e: 6d97 mov r6, r5 + 3870: 3400 movi r4, 0 + + for(U8_T i = 0;i + { + BLV_RLY_Ctrl_Purpose(i,Control_OFF); + 3878: 3100 movi r1, 0 + { + BLV_RLY_Ctrl_Purpose(i,Control_ON); + + }else if(c_rly.rly_ctrl_state[i] == RLY_RES) + { + BLV_RLY_Ctrl_Purpose(i,Cnotrol_RES); + 387a: 6c13 mov r0, r4 + 387c: e3ffffb6 bsr 0x37e8 // 37e8 + for(U8_T i = 0;i + } + + BLV_VolOut_Ctrl(); //风速判断,输出pwm + 388e: e3ffff65 bsr 0x3758 // 3758 + + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_RLY_Task"); + 3892: 1029 lrw r1, 0x44eb // 38b4 + 3894: 3000 movi r0, 0 + 3896: e3fffe35 bsr 0x3500 // 3500 + + c_rly.rly_control = 0x00; + 389a: 3300 movi r3, 0 + 389c: a560 st.b r3, (r5, 0x0) +} + 389e: 1493 pop r4-r6, r15 + else if(c_rly.rly_ctrl_state[i] == RLY_ON) + 38a0: 3b42 cmpnei r3, 2 + 38a2: 0803 bt 0x38a8 // 38a8 + BLV_RLY_Ctrl_Purpose(i,Control_ON); + 38a4: 3101 movi r1, 1 + 38a6: 07ea br 0x387a // 387a + }else if(c_rly.rly_ctrl_state[i] == RLY_RES) + 38a8: 3b43 cmpnei r3, 3 + 38aa: 0beb bt 0x3880 // 3880 + BLV_RLY_Ctrl_Purpose(i,Cnotrol_RES); + 38ac: 3102 movi r1, 2 + 38ae: 07e6 br 0x387a // 387a + 38b0: 20000368 .long 0x20000368 + 38b4: 000044eb .long 0x000044eb + +Disassembly of section .text.BLV_A9RLY_CMD_SET_Processing: + +000038b8 : + +//1、主机下发设置继电器状态 +void BLV_A9RLY_CMD_SET_Processing(U8_T *data,U16_T len) +{ + 38b8: 14d2 push r4-r5, r15 + 38ba: 1426 subi r14, r14, 24 + U16_T SendLen = 0x00; + + U16_T RLY_STATE = 0x00; + U8_T t = 0x00; + + if(len >= 9) + 38bc: 3908 cmphsi r1, 9 +{ + 38be: 6d03 mov r4, r0 + if(len >= 9) + 38c0: 082a bt 0x3914 // 3914 + + } + } + } + + BLV_RLY_Task(); + 38c2: e3ffffd1 bsr 0x3864 // 3864 + + //回复 + SendData[SendLen++] = g_Dip.addr; + 38c6: 1162 lrw r3, 0x20000358 // 394c + 38c8: 8366 ld.b r3, (r3, 0x6) + 38ca: dc6e0004 st.b r3, (r14, 0x4) + SendData[SendLen++] = data[1]; + 38ce: 8461 ld.b r3, (r4, 0x1) + 38d0: dc6e0005 st.b r3, (r14, 0x5) + SendData[SendLen++] = data[2]; + 38d4: 8462 ld.b r3, (r4, 0x2) + 38d6: dc6e0006 st.b r3, (r14, 0x6) + SendData[SendLen++] = data[0]; + 38da: 8460 ld.b r3, (r4, 0x0) + 38dc: dc6e0007 st.b r3, (r14, 0x7) + SendData[SendLen++] = 0x00; //len + SendData[SendLen++] = 0x00; //sum + 38e0: 3300 movi r3, 0 + 38e2: dc6e0009 st.b r3, (r14, 0x9) + SendData[SendLen++] = 0x30; //回复CMD + 38e6: 3330 movi r3, 48 + 38e8: dc6e000a st.b r3, (r14, 0xa) + + SendData[SEND_LEN] = SendLen; //len + SendData[SEND_SUM] = CheckSum(SendData,SendLen); + 38ec: 3107 movi r1, 7 + SendData[SEND_LEN] = SendLen; //len + 38ee: 3307 movi r3, 7 + SendData[SEND_SUM] = CheckSum(SendData,SendLen); + 38f0: 1801 addi r0, r14, 4 + SendData[SEND_LEN] = SendLen; //len + 38f2: dc6e0008 st.b r3, (r14, 0x8) + SendData[SEND_SUM] = CheckSum(SendData,SendLen); + 38f6: e3ffff17 bsr 0x3724 // 3724 + + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 38fa: 3314 movi r3, 20 + 38fc: b860 st.w r3, (r14, 0x0) + 38fe: 3396 movi r3, 150 + SendData[SEND_SUM] = CheckSum(SendData,SendLen); + 3900: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 3904: 4361 lsli r3, r3, 1 + 3906: 3201 movi r2, 1 + 3908: 3107 movi r1, 7 + 390a: 1801 addi r0, r14, 4 + 390c: e3fffd6e bsr 0x33e8 // 33e8 +} + 3910: 1406 addi r14, r14, 24 + 3912: 1492 pop r4-r5, r15 + RLY_STATE =(data[SEND_PARA] + (data[SEND_PARA+1]<<8)); + 3914: 8048 ld.b r2, (r0, 0x8) + 3916: 8067 ld.b r3, (r0, 0x7) + 3918: 4248 lsli r2, r2, 8 + 391a: 608c addu r2, r3 + c_rly.rly_control = 0x01; //继电器控制标志 + 391c: 3101 movi r1, 1 + 391e: 106d lrw r3, 0x20000368 // 3950 + RLY_STATE =(data[SEND_PARA] + (data[SEND_PARA+1]<<8)); + 3920: 7489 zexth r2, r2 + c_rly.rly_control = 0x01; //继电器控制标志 + 3922: a320 st.b r1, (r3, 0x0) + 3924: 3000 movi r0, 0 + t = ((RLY_STATE>>(2*i)) & 0x03); + 3926: 3503 movi r5, 3 + 3928: 6c4b mov r1, r2 + 392a: 7042 asr r1, r0 + 392c: 6854 and r1, r5 + 392e: 7444 zextb r1, r1 + if(t == NO_CTRL){ + 3930: 3940 cmpnei r1, 0 + 3932: 0807 bt 0x3940 // 3940 + 3934: 2001 addi r0, 2 + for(U8_T i = 0;i + 393e: 07c2 br 0x38c2 // 38c2 + }else if(t == RLY_OFF){ + 3940: 3941 cmpnei r1, 1 + 3942: 0ff9 bf 0x3934 // 3934 + }else if(t == RLY_ON){ + 3944: 3942 cmpnei r1, 2 + 3946: 0ff7 bf 0x3934 // 3934 + c_rly.rly_ctrl_state[i] = RLY_RES; + 3948: 3103 movi r1, 3 + 394a: 07f5 br 0x3934 // 3934 + 394c: 20000358 .long 0x20000358 + 3950: 20000368 .long 0x20000368 + +Disassembly of section .text.BLV_A9RLY_CMD_READ_Processing: + +00003954 : + +//2、读取继电器状态的回复 +void BLV_A9RLY_CMD_READ_Processing(U8_T *data,U16_T len) +{ + 3954: 14d1 push r4, r15 + 3956: 1426 subi r14, r14, 24 + 3958: 109b lrw r4, 0x20000368 // 39c4 + 395a: 3200 movi r2, 0 + U8_T SendData[20]; + U16_T SendLen = 0x00; + + U8_T RLY_State = 0x00; + 395c: 3300 movi r3, 0 + + for(U8_T i = 0;i + { + RLY_State |= (0x01< + } + } + + //回复 + SendData[SendLen++] = g_Dip.addr; + 3972: 1056 lrw r2, 0x20000358 // 39c8 + 3974: 8246 ld.b r2, (r2, 0x6) + 3976: dc4e0004 st.b r2, (r14, 0x4) + SendData[SendLen++] = data[1]; + 397a: 8041 ld.b r2, (r0, 0x1) + 397c: dc4e0005 st.b r2, (r14, 0x5) + SendData[SendLen++] = data[2]; + 3980: 8042 ld.b r2, (r0, 0x2) + 3982: dc4e0006 st.b r2, (r14, 0x6) + SendData[SendLen++] = data[0]; + 3986: 8040 ld.b r2, (r0, 0x0) + 3988: dc4e0007 st.b r2, (r14, 0x7) + SendData[SendLen++] = 0x00; //len + SendData[SendLen++] = 0x00; //sum + 398c: 3200 movi r2, 0 + 398e: dc4e0009 st.b r2, (r14, 0x9) + SendData[SendLen++] = 0x34; //回复CMD + SendData[SendLen++] = RLY_State; + 3992: dc6e000b st.b r3, (r14, 0xb) + SendData[SendLen++] = 0x34; //回复CMD + 3996: 3234 movi r2, 52 + + SendData[SEND_LEN] = SendLen; //len + 3998: 3308 movi r3, 8 + SendData[SEND_SUM] = CheckSum(SendData,SendLen); + 399a: 3108 movi r1, 8 + 399c: 1801 addi r0, r14, 4 + SendData[SendLen++] = 0x34; //回复CMD + 399e: dc4e000a st.b r2, (r14, 0xa) + SendData[SEND_LEN] = SendLen; //len + 39a2: dc6e0008 st.b r3, (r14, 0x8) + SendData[SEND_SUM] = CheckSum(SendData,SendLen); + 39a6: e3fffebf bsr 0x3724 // 3724 + + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 39aa: 3314 movi r3, 20 + 39ac: b860 st.w r3, (r14, 0x0) + 39ae: 3396 movi r3, 150 + SendData[SEND_SUM] = CheckSum(SendData,SendLen); + 39b0: dc0e0009 st.b r0, (r14, 0x9) + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 + 39b4: 4361 lsli r3, r3, 1 + 39b6: 3201 movi r2, 1 + 39b8: 3108 movi r1, 8 + 39ba: 1801 addi r0, r14, 4 + 39bc: e3fffd16 bsr 0x33e8 // 33e8 +} + 39c0: 1406 addi r14, r14, 24 + 39c2: 1491 pop r4, r15 + 39c4: 20000368 .long 0x20000368 + 39c8: 20000358 .long 0x20000358 + +Disassembly of section .text.BLV_RLY_RS485_Pro: + +000039cc : + Set_GroupSend(SendData,SendLen,1,BUSSend_WaitTime1,20); //组包 +} + + +U8_T BLV_RLY_RS485_Pro(U8_T *RecData, U16_T Len) +{ + 39cc: 14d2 push r4-r5, r15 + 39ce: 142d subi r14, r14, 52 + U8_T ret = 0x00; + U8_T ckdata[50]; + + if(Len < 0x05) + 39d0: 3904 cmphsi r1, 5 +{ + 39d2: 6d03 mov r4, r0 + if(Len < 0x05) + 39d4: 0808 bt 0x39e4 // 39e4 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Data Len err"); + 39d6: 1124 lrw r1, 0x44f8 // 3a64 + return 0x01; + } + + if(RecData[4] != Len) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check err"); + 39d8: 3000 movi r0, 0 + 39da: e3fffd93 bsr 0x3500 // 3500 + return 0x01; + 39de: 3001 movi r0, 1 + case 0x28: + + break; + } + +} + 39e0: 140d addi r14, r14, 52 + 39e2: 1492 pop r4-r5, r15 + if(RecData[4] != Len) + 39e4: 80a4 ld.b r5, (r0, 0x4) + 39e6: 6456 cmpne r5, r1 + 39e8: 0c03 bf 0x39ee // 39ee + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Check err"); + 39ea: 1120 lrw r1, 0x4505 // 3a68 + 39ec: 07f6 br 0x39d8 // 39d8 + if(RecData[2] != A9EXPANDTYPE) //A9继电器设备类型 + 39ee: 8062 ld.b r3, (r0, 0x2) + 39f0: 3b4e cmpnei r3, 14 + 39f2: 0c07 bf 0x3a00 // 3a00 + Dbg_Println(DBG_BIT_SYS_STATUS,"Type Check err"); + 39f4: 3000 movi r0, 0 + 39f6: 103e lrw r1, 0x4513 // 3a6c + 39f8: e3fffd84 bsr 0x3500 // 3500 + return 0x02; + 39fc: 3002 movi r0, 2 + 39fe: 07f1 br 0x39e0 // 39e0 + if(RecData[3] != g_Dip.addr) //地址校验 + 3a00: 107c lrw r3, 0x20000358 // 3a70 + 3a02: 8043 ld.b r2, (r0, 0x3) + 3a04: 8366 ld.b r3, (r3, 0x6) + 3a06: 64ca cmpne r2, r3 + 3a08: 0c07 bf 0x3a16 // 3a16 + Dbg_Println(DBG_BIT_SYS_STATUS,"Addr Check err "); + 3a0a: 3000 movi r0, 0 + 3a0c: 103a lrw r1, 0x4522 // 3a74 + 3a0e: e3fffd79 bsr 0x3500 // 3500 + return 0x03; + 3a12: 3003 movi r0, 3 + 3a14: 07e6 br 0x39e0 // 39e0 + memcpy(ckdata,RecData,Len); + 3a16: 6c97 mov r2, r5 + 3a18: 6c43 mov r1, r0 + 3a1a: 6c3b mov r0, r14 + 3a1c: e3ffefe8 bsr 0x19ec // 19ec <__memcpy_fast> + ckdata[SEND_SUM] = 0x00; + 3a20: 3300 movi r3, 0 + if(CheckSum(ckdata,Len) != RecData[SEND_SUM]) //和校验 + 3a22: 6c57 mov r1, r5 + 3a24: 6c3b mov r0, r14 + ckdata[SEND_SUM] = 0x00; + 3a26: dc6e0005 st.b r3, (r14, 0x5) + if(CheckSum(ckdata,Len) != RecData[SEND_SUM]) //和校验 + 3a2a: e3fffe7d bsr 0x3724 // 3724 + 3a2e: 8465 ld.b r3, (r4, 0x5) + 3a30: 640e cmpne r3, r0 + 3a32: 6c83 mov r2, r0 + 3a34: 0c07 bf 0x3a42 // 3a42 + Dbg_Println(DBG_BIT_SYS_STATUS,"Sum Check err: %02x",CheckSum(ckdata,Len)); + 3a36: 3000 movi r0, 0 + 3a38: 1030 lrw r1, 0x4532 // 3a78 + 3a3a: e3fffd63 bsr 0x3500 // 3500 + return 0x04; + 3a3e: 3004 movi r0, 4 + 3a40: 07d0 br 0x39e0 // 39e0 + switch(RecData[0x06]) + 3a42: 8466 ld.b r3, (r4, 0x6) + 3a44: 3220 movi r2, 32 + 3a46: 648e cmpne r3, r2 + 3a48: 0c09 bf 0x3a5a // 3a5a + 3a4a: 3224 movi r2, 36 + 3a4c: 648e cmpne r3, r2 + 3a4e: 0bc9 bt 0x39e0 // 39e0 + BLV_A9RLY_CMD_READ_Processing(RecData,Len); + 3a50: 6c13 mov r0, r4 + 3a52: 6c57 mov r1, r5 + 3a54: e3ffff80 bsr 0x3954 // 3954 +} + 3a58: 07c4 br 0x39e0 // 39e0 + BLV_A9RLY_CMD_SET_Processing(RecData,Len); + 3a5a: 6c57 mov r1, r5 + 3a5c: 6c13 mov r0, r4 + 3a5e: e3ffff2d bsr 0x38b8 // 38b8 + break; + 3a62: 07bf br 0x39e0 // 39e0 + 3a64: 000044f8 .long 0x000044f8 + 3a68: 00004505 .long 0x00004505 + 3a6c: 00004513 .long 0x00004513 + 3a70: 20000358 .long 0x20000358 + 3a74: 00004522 .long 0x00004522 + 3a78: 00004532 .long 0x00004532 + +Disassembly of section .text.TK_Sampling_prog: + +00003a7c : + 3a7c: 14c4 push r4-r7 + 3a7e: 1072 lrw r3, 0x20000054 // 3ac4 + 3a80: 1012 lrw r0, 0x20000626 // 3ac8 + 3a82: 1093 lrw r4, 0x20000497 // 3acc + 3a84: 6d83 mov r6, r0 + 3a86: 93a0 ld.w r5, (r3, 0x0) + 3a88: 3300 movi r3, 0 + 3a8a: 4342 lsli r2, r3, 2 + 3a8c: 6094 addu r2, r5 + 3a8e: 9220 ld.w r1, (r2, 0x0) + 3a90: 4341 lsli r2, r3, 1 + 3a92: 6080 addu r2, r0 + 3a94: 7445 zexth r1, r1 + 3a96: aa20 st.h r1, (r2, 0x0) + 3a98: 8440 ld.b r2, (r4, 0x0) + 3a9a: 3a41 cmpnei r2, 1 + 3a9c: 080f bt 0x3aba // 3aba + 3a9e: 3300 movi r3, 0 + 3aa0: 10ec lrw r7, 0x20000380 // 3ad0 + 3aa2: 4341 lsli r2, r3, 1 + 3aa4: 5e28 addu r1, r6, r2 + 3aa6: 8920 ld.h r1, (r1, 0x0) + 3aa8: 2300 addi r3, 1 + 3aaa: 7445 zexth r1, r1 + 3aac: 609c addu r2, r7 + 3aae: 3b51 cmpnei r3, 17 + 3ab0: aa20 st.h r1, (r2, 0x0) + 3ab2: 0bf8 bt 0x3aa2 // 3aa2 + 3ab4: 3300 movi r3, 0 + 3ab6: a460 st.b r3, (r4, 0x0) + 3ab8: 3311 movi r3, 17 + 3aba: 2300 addi r3, 1 + 3abc: 74cc zextb r3, r3 + 3abe: 3b10 cmphsi r3, 17 + 3ac0: 0fe5 bf 0x3a8a // 3a8a + 3ac2: 1484 pop r4-r7 + 3ac4: 20000054 .long 0x20000054 + 3ac8: 20000626 .long 0x20000626 + 3acc: 20000497 .long 0x20000497 + 3ad0: 20000380 .long 0x20000380 + +Disassembly of section .text.TKEYIntHandler: + +00003ad4 : + 3ad4: 1460 nie + 3ad6: 1462 ipush + 3ad8: 14d1 push r4, r15 + 3ada: 109e lrw r4, 0x20000068 // 3b50 + 3adc: 9460 ld.w r3, (r4, 0x0) + 3ade: 3b40 cmpnei r3, 0 + 3ae0: 080b bt 0x3af6 // 3af6 + 3ae2: 3301 movi r3, 1 + 3ae4: b460 st.w r3, (r4, 0x0) + 3ae6: 107c lrw r3, 0x20000414 // 3b54 + 3ae8: 8360 ld.b r3, (r3, 0x0) + 3aea: 3b41 cmpnei r3, 1 + 3aec: 0805 bt 0x3af6 // 3af6 + 3aee: e3ffffc7 bsr 0x3a7c // 3a7c + 3af2: 3301 movi r3, 1 + 3af4: a464 st.b r3, (r4, 0x4) + 3af6: 1079 lrw r3, 0x20000058 // 3b58 + 3af8: 3101 movi r1, 1 + 3afa: 9360 ld.w r3, (r3, 0x0) + 3afc: 934a ld.w r2, (r3, 0x28) + 3afe: 6884 and r2, r1 + 3b00: 3a40 cmpnei r2, 0 + 3b02: 0c02 bf 0x3b06 // 3b06 + 3b04: b32c st.w r1, (r3, 0x30) + 3b06: 934a ld.w r2, (r3, 0x28) + 3b08: 3102 movi r1, 2 + 3b0a: 6884 and r2, r1 + 3b0c: 3a40 cmpnei r2, 0 + 3b0e: 0c02 bf 0x3b12 // 3b12 + 3b10: b32c st.w r1, (r3, 0x30) + 3b12: 934a ld.w r2, (r3, 0x28) + 3b14: 3104 movi r1, 4 + 3b16: 6884 and r2, r1 + 3b18: 3a40 cmpnei r2, 0 + 3b1a: 0c02 bf 0x3b1e // 3b1e + 3b1c: b32c st.w r1, (r3, 0x30) + 3b1e: 934a ld.w r2, (r3, 0x28) + 3b20: 3108 movi r1, 8 + 3b22: 6884 and r2, r1 + 3b24: 3a40 cmpnei r2, 0 + 3b26: 0c02 bf 0x3b2a // 3b2a + 3b28: b32c st.w r1, (r3, 0x30) + 3b2a: 934a ld.w r2, (r3, 0x28) + 3b2c: 3110 movi r1, 16 + 3b2e: 6884 and r2, r1 + 3b30: 3a40 cmpnei r2, 0 + 3b32: 0c02 bf 0x3b36 // 3b36 + 3b34: b32c st.w r1, (r3, 0x30) + 3b36: 934a ld.w r2, (r3, 0x28) + 3b38: 3120 movi r1, 32 + 3b3a: 6884 and r2, r1 + 3b3c: 3a40 cmpnei r2, 0 + 3b3e: 0c02 bf 0x3b42 // 3b42 + 3b40: b32c st.w r1, (r3, 0x30) + 3b42: d9ee2001 ld.w r15, (r14, 0x4) + 3b46: 9880 ld.w r4, (r14, 0x0) + 3b48: 1402 addi r14, r14, 8 + 3b4a: 1463 ipop + 3b4c: 1461 nir + 3b4e: 0000 bkpt + 3b50: 20000068 .long 0x20000068 + 3b54: 20000414 .long 0x20000414 + 3b58: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00003b5c : + 3b5c: 14c2 push r4-r5 + 3b5e: 3200 movi r2, 0 + 3b60: 3000 movi r0, 0 + 3b62: 1088 lrw r4, 0x200004b4 // 3b80 + 3b64: 3501 movi r5, 1 + 3b66: 3120 movi r1, 32 + 3b68: 9460 ld.w r3, (r4, 0x0) + 3b6a: 70c9 lsr r3, r2 + 3b6c: 68d4 and r3, r5 + 3b6e: 3b40 cmpnei r3, 0 + 3b70: 0c02 bf 0x3b74 // 3b74 + 3b72: 2000 addi r0, 1 + 3b74: 2200 addi r2, 1 + 3b76: 644a cmpne r2, r1 + 3b78: 0bf8 bt 0x3b68 // 3b68 + 3b7a: 7400 zextb r0, r0 + 3b7c: 1482 pop r4-r5 + 3b7e: 0000 bkpt + 3b80: 200004b4 .long 0x200004b4 + +Disassembly of section .text.TK_Scan_Start: + +00003b84 : + 3b84: 1046 lrw r2, 0x20000068 // 3b9c + 3b86: 8264 ld.b r3, (r2, 0x4) + 3b88: 74cc zextb r3, r3 + 3b8a: 3b41 cmpnei r3, 1 + 3b8c: 0807 bt 0x3b9a // 3b9a + 3b8e: 1025 lrw r1, 0x20000058 // 3ba0 + 3b90: 9120 ld.w r1, (r1, 0x0) + 3b92: b162 st.w r3, (r1, 0x8) + 3b94: 3300 movi r3, 0 + 3b96: b260 st.w r3, (r2, 0x0) + 3b98: a264 st.b r3, (r2, 0x4) + 3b9a: 783c jmp r15 + 3b9c: 20000068 .long 0x20000068 + 3ba0: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00003ba4 : + 3ba4: 14d4 push r4-r7, r15 + 3ba6: 1425 subi r14, r14, 20 + 3ba8: 1271 lrw r3, 0x200000e8 // 3cec + 3baa: 8360 ld.b r3, (r3, 0x0) + 3bac: b860 st.w r3, (r14, 0x0) + 3bae: 3400 movi r4, 0 + 3bb0: 1270 lrw r3, 0x200000bc // 3cf0 + 3bb2: 8360 ld.b r3, (r3, 0x0) + 3bb4: b861 st.w r3, (r14, 0x4) + 3bb6: 12f0 lrw r7, 0x2000042a // 3cf4 + 3bb8: 1270 lrw r3, 0x200000c5 // 3cf8 + 3bba: 83a0 ld.b r5, (r3, 0x0) + 3bbc: 1270 lrw r3, 0x200000c4 // 3cfc + 3bbe: 8360 ld.b r3, (r3, 0x0) + 3bc0: b862 st.w r3, (r14, 0x8) + 3bc2: 6d9f mov r6, r7 + 3bc4: 126f lrw r3, 0x20000626 // 3d00 + 3bc6: b863 st.w r3, (r14, 0xc) + 3bc8: 4461 lsli r3, r4, 1 + 3bca: 9843 ld.w r2, (r14, 0xc) + 3bcc: 608c addu r2, r3 + 3bce: 122e lrw r1, 0x20000380 // 3d04 + 3bd0: 604c addu r1, r3 + 3bd2: 8a40 ld.h r2, (r2, 0x0) + 3bd4: 8920 ld.h r1, (r1, 0x0) + 3bd6: 6086 subu r2, r1 + 3bd8: 748b sexth r2, r2 + 3bda: 5f2c addu r1, r7, r3 + 3bdc: a940 st.h r2, (r1, 0x0) + 3bde: 8940 ld.h r2, (r1, 0x0) + 3be0: 748b sexth r2, r2 + 3be2: 3adf btsti r2, 31 + 3be4: 1249 lrw r2, 0x200005e2 // 3d08 + 3be6: 608c addu r2, r3 + 3be8: 0c37 bf 0x3c56 // 3c56 + 3bea: 3100 movi r1, 0 + 3bec: aa20 st.h r1, (r2, 0x0) + 3bee: 9840 ld.w r2, (r14, 0x0) + 3bf0: 3a01 cmphsi r2, 2 + 3bf2: 0c6d bf 0x3ccc // 3ccc + 3bf4: 4461 lsli r3, r4, 1 + 3bf6: 5e2c addu r1, r6, r3 + 3bf8: 1205 lrw r0, 0x20000116 // 3d0c + 3bfa: 8940 ld.h r2, (r1, 0x0) + 3bfc: 60c0 addu r3, r0 + 3bfe: 748b sexth r2, r2 + 3c00: 8b60 ld.h r3, (r3, 0x0) + 3c02: 648d cmplt r3, r2 + 3c04: 9840 ld.w r2, (r14, 0x0) + 3c06: 7cc8 mult r3, r2 + 3c08: 0c2a bf 0x3c5c // 3c5c + 3c0a: 8940 ld.h r2, (r1, 0x0) + 3c0c: 748b sexth r2, r2 + 3c0e: 64c9 cmplt r2, r3 + 3c10: 0c26 bf 0x3c5c // 3c5c + 3c12: 1240 lrw r2, 0x20000418 // 3d10 + 3c14: 6090 addu r2, r4 + 3c16: 8260 ld.b r3, (r2, 0x0) + 3c18: 2300 addi r3, 1 + 3c1a: 74cc zextb r3, r3 + 3c1c: a260 st.b r3, (r2, 0x0) + 3c1e: 3100 movi r1, 0 + 3c20: 117d lrw r3, 0x200003fe // 3d14 + 3c22: 60d0 addu r3, r4 + 3c24: a320 st.b r1, (r3, 0x0) + 3c26: 117d lrw r3, 0x200004da // 3d18 + 3c28: 60d0 addu r3, r4 + 3c2a: a320 st.b r1, (r3, 0x0) + 3c2c: 117c lrw r3, 0x20000554 // 3d1c + 3c2e: 60d0 addu r3, r4 + 3c30: a320 st.b r1, (r3, 0x0) + 3c32: 8260 ld.b r3, (r2, 0x0) + 3c34: 9821 ld.w r1, (r14, 0x4) + 3c36: 64c4 cmphs r1, r3 + 3c38: 081f bt 0x3c76 // 3c76 + 3c3a: 3d40 cmpnei r5, 0 + 3c3c: 0852 bt 0x3ce0 // 3ce0 + 3c3e: 1139 lrw r1, 0x20000410 // 3d20 + 3c40: 9160 ld.w r3, (r1, 0x0) + 3c42: 3b40 cmpnei r3, 0 + 3c44: 0806 bt 0x3c50 // 3c50 + 3c46: 9100 ld.w r0, (r1, 0x0) + 3c48: 3301 movi r3, 1 + 3c4a: 70d0 lsl r3, r4 + 3c4c: 6cc0 or r3, r0 + 3c4e: b160 st.w r3, (r1, 0x0) + 3c50: 3300 movi r3, 0 + 3c52: a260 st.b r3, (r2, 0x0) + 3c54: 0411 br 0x3c76 // 3c76 + 3c56: 8920 ld.h r1, (r1, 0x0) + 3c58: 7445 zexth r1, r1 + 3c5a: 07c9 br 0x3bec // 3bec + 3c5c: 4441 lsli r2, r4, 1 + 3c5e: 6098 addu r2, r6 + 3c60: 8a40 ld.h r2, (r2, 0x0) + 3c62: 748b sexth r2, r2 + 3c64: 648d cmplt r3, r2 + 3c66: 0c08 bf 0x3c76 // 3c76 + 3c68: 3300 movi r3, 0 + 3c6a: 114e lrw r2, 0x20000410 // 3d20 + 3c6c: 2b01 subi r3, 2 + 3c6e: 9220 ld.w r1, (r2, 0x0) + 3c70: 70d3 rotl r3, r4 + 3c72: 68c4 and r3, r1 + 3c74: b260 st.w r3, (r2, 0x0) + 3c76: 4441 lsli r2, r4, 1 + 3c78: 5e68 addu r3, r6, r2 + 3c7a: 8b60 ld.h r3, (r3, 0x0) + 3c7c: 74cf sexth r3, r3 + 3c7e: b864 st.w r3, (r14, 0x10) + 3c80: 3105 movi r1, 5 + 3c82: 1163 lrw r3, 0x20000116 // 3d0c + 3c84: 608c addu r2, r3 + 3c86: 8a00 ld.h r0, (r2, 0x0) + 3c88: 4002 lsli r0, r0, 2 + 3c8a: e3fffa05 bsr 0x3094 // 3094 <__divsi3> + 3c8e: 9864 ld.w r3, (r14, 0x10) + 3c90: 640d cmplt r3, r0 + 3c92: 0c18 bf 0x3cc2 // 3cc2 + 3c94: 1140 lrw r2, 0x200003fe // 3d14 + 3c96: 6090 addu r2, r4 + 3c98: 8260 ld.b r3, (r2, 0x0) + 3c9a: 2300 addi r3, 1 + 3c9c: 74cc zextb r3, r3 + 3c9e: a260 st.b r3, (r2, 0x0) + 3ca0: 3100 movi r1, 0 + 3ca2: 107c lrw r3, 0x20000418 // 3d10 + 3ca4: 60d0 addu r3, r4 + 3ca6: a320 st.b r1, (r3, 0x0) + 3ca8: 8260 ld.b r3, (r2, 0x0) + 3caa: 9822 ld.w r1, (r14, 0x8) + 3cac: 64c4 cmphs r1, r3 + 3cae: 080a bt 0x3cc2 // 3cc2 + 3cb0: 3300 movi r3, 0 + 3cb2: 103c lrw r1, 0x20000410 // 3d20 + 3cb4: 2b01 subi r3, 2 + 3cb6: 9100 ld.w r0, (r1, 0x0) + 3cb8: 70d3 rotl r3, r4 + 3cba: 68c0 and r3, r0 + 3cbc: b160 st.w r3, (r1, 0x0) + 3cbe: 3300 movi r3, 0 + 3cc0: a260 st.b r3, (r2, 0x0) + 3cc2: 2400 addi r4, 1 + 3cc4: 3c51 cmpnei r4, 17 + 3cc6: 0b81 bt 0x3bc8 // 3bc8 + 3cc8: 1405 addi r14, r14, 20 + 3cca: 1494 pop r4-r7, r15 + 3ccc: 60d8 addu r3, r6 + 3cce: 4441 lsli r2, r4, 1 + 3cd0: 102f lrw r1, 0x20000116 // 3d0c + 3cd2: 8b60 ld.h r3, (r3, 0x0) + 3cd4: 6084 addu r2, r1 + 3cd6: 74cf sexth r3, r3 + 3cd8: 8a40 ld.h r2, (r2, 0x0) + 3cda: 64c9 cmplt r2, r3 + 3cdc: 0fcd bf 0x3c76 // 3c76 + 3cde: 079a br 0x3c12 // 3c12 + 3ce0: 3d41 cmpnei r5, 1 + 3ce2: 0bb7 bt 0x3c50 // 3c50 + 3ce4: 102f lrw r1, 0x20000410 // 3d20 + 3ce6: 6cd7 mov r3, r5 + 3ce8: 9100 ld.w r0, (r1, 0x0) + 3cea: 07b0 br 0x3c4a // 3c4a + 3cec: 200000e8 .long 0x200000e8 + 3cf0: 200000bc .long 0x200000bc + 3cf4: 2000042a .long 0x2000042a + 3cf8: 200000c5 .long 0x200000c5 + 3cfc: 200000c4 .long 0x200000c4 + 3d00: 20000626 .long 0x20000626 + 3d04: 20000380 .long 0x20000380 + 3d08: 200005e2 .long 0x200005e2 + 3d0c: 20000116 .long 0x20000116 + 3d10: 20000418 .long 0x20000418 + 3d14: 200003fe .long 0x200003fe + 3d18: 200004da .long 0x200004da + 3d1c: 20000554 .long 0x20000554 + 3d20: 20000410 .long 0x20000410 + +Disassembly of section .text.TK_overflow_predict: + +00003d24 : + 3d24: 14d4 push r4-r7, r15 + 3d26: 1421 subi r14, r14, 4 + 3d28: 11d9 lrw r6, 0x20000068 // 3e0c + 3d2a: 8665 ld.b r3, (r6, 0x5) + 3d2c: 3b41 cmpnei r3, 1 + 3d2e: 085f bt 0x3dec // 3dec + 3d30: 1158 lrw r2, 0x20000530 // 3e10 + 3d32: 8260 ld.b r3, (r2, 0x0) + 3d34: 2300 addi r3, 1 + 3d36: 74cc zextb r3, r3 + 3d38: a260 st.b r3, (r2, 0x0) + 3d3a: 8260 ld.b r3, (r2, 0x0) + 3d3c: 1136 lrw r1, 0x200000e9 // 3e14 + 3d3e: 8120 ld.b r1, (r1, 0x0) + 3d40: 64c4 cmphs r1, r3 + 3d42: 0855 bt 0x3dec // 3dec + 3d44: 3300 movi r3, 0 + 3d46: a260 st.b r3, (r2, 0x0) + 3d48: 3500 movi r5, 0 + 3d4a: 11f4 lrw r7, 0x200000ec // 3e18 + 3d4c: 2605 addi r6, 6 + 3d4e: 9760 ld.w r3, (r7, 0x0) + 3d50: 70d5 lsr r3, r5 + 3d52: 3201 movi r2, 1 + 3d54: 68c8 and r3, r2 + 3d56: 3b40 cmpnei r3, 0 + 3d58: 0c34 bf 0x3dc0 // 3dc0 + 3d5a: 4581 lsli r4, r5, 1 + 3d5c: 5e70 addu r3, r6, r4 + 3d5e: 8b00 ld.h r0, (r3, 0x0) + 3d60: e3ffec20 bsr 0x15a0 // 15a0 <__floatunsidf> + 3d64: 6cc7 mov r3, r1 + 3d66: 3180 movi r1, 128 + 3d68: 6c83 mov r2, r0 + 3d6a: 4137 lsli r1, r1, 23 + 3d6c: 3000 movi r0, 0 + 3d6e: e3ffe223 bsr 0x1b4 // 1b4 <__GI_pow> + 3d72: 116b lrw r3, 0x200000f2 // 3e1c + 3d74: 60d0 addu r3, r4 + 3d76: 8b60 ld.h r3, (r3, 0x0) + 3d78: 4364 lsli r3, r3, 4 + 3d7a: 230e addi r3, 15 + 3d7c: b860 st.w r3, (r14, 0x0) + 3d7e: e3ffe7c9 bsr 0xd10 // d10 <__fixunsdfsi> + 3d82: 9860 ld.w r3, (r14, 0x0) + 3d84: 7cc0 mult r3, r0 + 3d86: 1147 lrw r2, 0x200005c0 // 3e20 + 3d88: 740d zexth r0, r3 + 3d8a: 6090 addu r2, r4 + 3d8c: 1166 lrw r3, 0x20000626 // 3e24 + 3d8e: 60d0 addu r3, r4 + 3d90: aa00 st.h r0, (r2, 0x0) + 3d92: 8b60 ld.h r3, (r3, 0x0) + 3d94: 8a00 ld.h r0, (r2, 0x0) + 3d96: 7401 zexth r0, r0 + 3d98: 325f movi r2, 95 + 3d9a: 74cd zexth r3, r3 + 3d9c: 7c08 mult r0, r2 + 3d9e: 3164 movi r1, 100 + 3da0: b860 st.w r3, (r14, 0x0) + 3da2: e3fff979 bsr 0x3094 // 3094 <__divsi3> + 3da6: 9860 ld.w r3, (r14, 0x0) + 3da8: 64c1 cmplt r0, r3 + 3daa: 0c0b bf 0x3dc0 // 3dc0 + 3dac: 107f lrw r3, 0x200000c6 // 3e28 + 3dae: 610c addu r4, r3 + 3db0: 8c60 ld.h r3, (r4, 0x0) + 3db2: 3b06 cmphsi r3, 7 + 3db4: 0806 bt 0x3dc0 // 3dc0 + 3db6: 2300 addi r3, 1 + 3db8: ac60 st.h r3, (r4, 0x0) + 3dba: 3201 movi r2, 1 + 3dbc: 107c lrw r3, 0x20000485 // 3e2c + 3dbe: a340 st.b r2, (r3, 0x0) + 3dc0: 2500 addi r5, 1 + 3dc2: 3d51 cmpnei r5, 17 + 3dc4: 0bc5 bt 0x3d4e // 3d4e + 3dc6: 107a lrw r3, 0x20000485 // 3e2c + 3dc8: 8340 ld.b r2, (r3, 0x0) + 3dca: 3a41 cmpnei r2, 1 + 3dcc: 0810 bt 0x3dec // 3dec + 3dce: 3200 movi r2, 0 + 3dd0: a340 st.b r2, (r3, 0x0) + 3dd2: 3200 movi r2, 0 + 3dd4: 1077 lrw r3, 0x20000058 // 3e30 + 3dd6: 1018 lrw r0, 0x20000553 // 3e34 + 3dd8: 10b8 lrw r5, 0x2000058c // 3e38 + 3dda: 10d4 lrw r6, 0x200000c6 // 3e28 + 3ddc: 9360 ld.w r3, (r3, 0x0) + 3dde: b342 st.w r2, (r3, 0x8) + 3de0: 1077 lrw r3, 0x20000054 // 3e3c + 3de2: 9380 ld.w r4, (r3, 0x0) + 3de4: 3300 movi r3, 0 + 3de6: 8040 ld.b r2, (r0, 0x0) + 3de8: 648c cmphs r3, r2 + 3dea: 0c03 bf 0x3df0 // 3df0 + 3dec: 1401 addi r14, r14, 4 + 3dee: 1494 pop r4-r7, r15 + 3df0: 5d4c addu r2, r5, r3 + 3df2: 8240 ld.b r2, (r2, 0x0) + 3df4: 4241 lsli r2, r2, 1 + 3df6: 4322 lsli r1, r3, 2 + 3df8: 6098 addu r2, r6 + 3dfa: 6050 addu r1, r4 + 3dfc: 8a40 ld.h r2, (r2, 0x0) + 3dfe: 91f2 ld.w r7, (r1, 0x48) + 3e00: 4254 lsli r2, r2, 20 + 3e02: 6c9c or r2, r7 + 3e04: 2300 addi r3, 1 + 3e06: b152 st.w r2, (r1, 0x48) + 3e08: 74cc zextb r3, r3 + 3e0a: 07ee br 0x3de6 // 3de6 + 3e0c: 20000068 .long 0x20000068 + 3e10: 20000530 .long 0x20000530 + 3e14: 200000e9 .long 0x200000e9 + 3e18: 200000ec .long 0x200000ec + 3e1c: 200000f2 .long 0x200000f2 + 3e20: 200005c0 .long 0x200005c0 + 3e24: 20000626 .long 0x20000626 + 3e28: 200000c6 .long 0x200000c6 + 3e2c: 20000485 .long 0x20000485 + 3e30: 20000058 .long 0x20000058 + 3e34: 20000553 .long 0x20000553 + 3e38: 2000058c .long 0x2000058c + 3e3c: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00003e40 : + 3e40: 14c4 push r4-r7 + 3e42: 1422 subi r14, r14, 8 + 3e44: 1348 lrw r2, 0x200004b2 // 3fe4 + 3e46: 8260 ld.b r3, (r2, 0x0) + 3e48: 2300 addi r3, 1 + 3e4a: 74cc zextb r3, r3 + 3e4c: a260 st.b r3, (r2, 0x0) + 3e4e: 8260 ld.b r3, (r2, 0x0) + 3e50: 1326 lrw r1, 0x200000e9 // 3fe8 + 3e52: 8120 ld.b r1, (r1, 0x0) + 3e54: 644c cmphs r3, r1 + 3e56: 0cad bf 0x3fb0 // 3fb0 + 3e58: 3300 movi r3, 0 + 3e5a: a260 st.b r3, (r2, 0x0) + 3e5c: 1364 lrw r3, 0x20000410 // 3fec + 3e5e: 9360 ld.w r3, (r3, 0x0) + 3e60: 3b40 cmpnei r3, 0 + 3e62: 08a7 bt 0x3fb0 // 3fb0 + 3e64: 1323 lrw r1, 0x2000042a // 3ff0 + 3e66: 6dc7 mov r7, r1 + 3e68: b820 st.w r1, (r14, 0x0) + 3e6a: 3200 movi r2, 0 + 3e6c: 1362 lrw r3, 0x20000116 // 3ff4 + 3e6e: 1323 lrw r1, 0x20000380 // 3ff8 + 3e70: 4201 lsli r0, r2, 1 + 3e72: 9880 ld.w r4, (r14, 0x0) + 3e74: 6100 addu r4, r0 + 3e76: 8c80 ld.h r4, (r4, 0x0) + 3e78: 7513 sexth r4, r4 + 3e7a: 3cdf btsti r4, 31 + 3e7c: 0c27 bf 0x3eca // 3eca + 3e7e: 13a0 lrw r5, 0x20000626 // 3ffc + 3e80: 5980 addu r4, r1, r0 + 3e82: 6014 addu r0, r5 + 3e84: b881 st.w r4, (r14, 0x4) + 3e86: 8c80 ld.h r4, (r4, 0x0) + 3e88: 88c0 ld.h r6, (r0, 0x0) + 3e8a: 7511 zexth r4, r4 + 3e8c: 7599 zexth r6, r6 + 3e8e: 8ba0 ld.h r5, (r3, 0x0) + 3e90: 611a subu r4, r6 + 3e92: 6551 cmplt r4, r5 + 3e94: 081b bt 0x3eca // 3eca + 3e96: 9881 ld.w r4, (r14, 0x4) + 3e98: 8c80 ld.h r4, (r4, 0x0) + 3e9a: 8800 ld.h r0, (r0, 0x0) + 3e9c: 7511 zexth r4, r4 + 3e9e: 7401 zexth r0, r0 + 3ea0: 5c01 subu r0, r4, r0 + 3ea2: 4581 lsli r4, r5, 1 + 3ea4: 6150 addu r5, r4 + 3ea6: 6541 cmplt r0, r5 + 3ea8: 0c11 bf 0x3eca // 3eca + 3eaa: 1296 lrw r4, 0x20000554 // 4000 + 3eac: 6108 addu r4, r2 + 3eae: 8400 ld.b r0, (r4, 0x0) + 3eb0: 2000 addi r0, 1 + 3eb2: 7400 zextb r0, r0 + 3eb4: a400 st.b r0, (r4, 0x0) + 3eb6: 1214 lrw r0, 0x20000088 // 4004 + 3eb8: 84a0 ld.b r5, (r4, 0x0) + 3eba: 8008 ld.b r0, (r0, 0x8) + 3ebc: 6540 cmphs r0, r5 + 3ebe: 0806 bt 0x3eca // 3eca + 3ec0: 1212 lrw r0, 0x20000497 // 4008 + 3ec2: 3501 movi r5, 1 + 3ec4: a0a0 st.b r5, (r0, 0x0) + 3ec6: 3000 movi r0, 0 + 3ec8: a400 st.b r0, (r4, 0x0) + 3eca: 4201 lsli r0, r2, 1 + 3ecc: 5f80 addu r4, r7, r0 + 3ece: 8c80 ld.h r4, (r4, 0x0) + 3ed0: 7513 sexth r4, r4 + 3ed2: 3c20 cmplti r4, 1 + 3ed4: 0870 bt 0x3fb4 // 3fb4 + 3ed6: 128a lrw r4, 0x20000626 // 3ffc + 3ed8: 6100 addu r4, r0 + 3eda: 59a0 addu r5, r1, r0 + 3edc: 8c80 ld.h r4, (r4, 0x0) + 3ede: 8da0 ld.h r5, (r5, 0x0) + 3ee0: 7555 zexth r5, r5 + 3ee2: 7511 zexth r4, r4 + 3ee4: 6116 subu r4, r5 + 3ee6: 8ba0 ld.h r5, (r3, 0x0) + 3ee8: 45a2 lsli r5, r5, 2 + 3eea: 6551 cmplt r4, r5 + 3eec: 0864 bt 0x3fb4 // 3fb4 + 3eee: 1288 lrw r4, 0x200004da // 400c + 3ef0: 6108 addu r4, r2 + 3ef2: 84a0 ld.b r5, (r4, 0x0) + 3ef4: 2500 addi r5, 1 + 3ef6: 7554 zextb r5, r5 + 3ef8: a4a0 st.b r5, (r4, 0x0) + 3efa: 12a3 lrw r5, 0x20000088 // 4004 + 3efc: 84c0 ld.b r6, (r4, 0x0) + 3efe: 85a9 ld.b r5, (r5, 0x9) + 3f00: 6594 cmphs r5, r6 + 3f02: 0806 bt 0x3f0e // 3f0e + 3f04: 12a1 lrw r5, 0x20000497 // 4008 + 3f06: 3601 movi r6, 1 + 3f08: a5c0 st.b r6, (r5, 0x0) + 3f0a: 3500 movi r5, 0 + 3f0c: a4a0 st.b r5, (r4, 0x0) + 3f0e: 5f80 addu r4, r7, r0 + 3f10: 8c80 ld.h r4, (r4, 0x0) + 3f12: 7513 sexth r4, r4 + 3f14: 3cdf btsti r4, 31 + 3f16: 0c10 bf 0x3f36 // 3f36 + 3f18: 11d9 lrw r6, 0x20000626 // 3ffc + 3f1a: 59a0 addu r5, r1, r0 + 3f1c: 6180 addu r6, r0 + 3f1e: 8d80 ld.h r4, (r5, 0x0) + 3f20: 8ec0 ld.h r6, (r6, 0x0) + 3f22: 7599 zexth r6, r6 + 3f24: 7511 zexth r4, r4 + 3f26: 611a subu r4, r6 + 3f28: 8bc0 ld.h r6, (r3, 0x0) + 3f2a: 6591 cmplt r4, r6 + 3f2c: 0c05 bf 0x3f36 // 3f36 + 3f2e: 8d80 ld.h r4, (r5, 0x0) + 3f30: 2c00 subi r4, 1 + 3f32: 7511 zexth r4, r4 + 3f34: ad80 st.h r4, (r5, 0x0) + 3f36: 5f80 addu r4, r7, r0 + 3f38: 8c80 ld.h r4, (r4, 0x0) + 3f3a: 7513 sexth r4, r4 + 3f3c: 3cdf btsti r4, 31 + 3f3e: 0c11 bf 0x3f60 // 3f60 + 3f40: 11cf lrw r6, 0x20000626 // 3ffc + 3f42: 59a0 addu r5, r1, r0 + 3f44: 6180 addu r6, r0 + 3f46: 8d80 ld.h r4, (r5, 0x0) + 3f48: 8ec0 ld.h r6, (r6, 0x0) + 3f4a: 7599 zexth r6, r6 + 3f4c: 7511 zexth r4, r4 + 3f4e: 611a subu r4, r6 + 3f50: 8bc0 ld.h r6, (r3, 0x0) + 3f52: 4ec1 lsri r6, r6, 1 + 3f54: 6591 cmplt r4, r6 + 3f56: 0805 bt 0x3f60 // 3f60 + 3f58: 8d80 ld.h r4, (r5, 0x0) + 3f5a: 2c01 subi r4, 2 + 3f5c: 7511 zexth r4, r4 + 3f5e: ad80 st.h r4, (r5, 0x0) + 3f60: 5fa0 addu r5, r7, r0 + 3f62: 8d80 ld.h r4, (r5, 0x0) + 3f64: 7513 sexth r4, r4 + 3f66: 3c20 cmplti r4, 1 + 3f68: 080c bt 0x3f80 // 3f80 + 3f6a: 8da0 ld.h r5, (r5, 0x0) + 3f6c: 8b80 ld.h r4, (r3, 0x0) + 3f6e: 7557 sexth r5, r5 + 3f70: 4c81 lsri r4, r4, 1 + 3f72: 6515 cmplt r5, r4 + 3f74: 0c06 bf 0x3f80 // 3f80 + 3f76: 59a0 addu r5, r1, r0 + 3f78: 8d80 ld.h r4, (r5, 0x0) + 3f7a: 2400 addi r4, 1 + 3f7c: 7511 zexth r4, r4 + 3f7e: ad80 st.h r4, (r5, 0x0) + 3f80: 5fa0 addu r5, r7, r0 + 3f82: 8d80 ld.h r4, (r5, 0x0) + 3f84: 7513 sexth r4, r4 + 3f86: 3c20 cmplti r4, 1 + 3f88: 0810 bt 0x3fa8 // 3fa8 + 3f8a: 8dc0 ld.h r6, (r5, 0x0) + 3f8c: 759b sexth r6, r6 + 3f8e: 8b80 ld.h r4, (r3, 0x0) + 3f90: 6519 cmplt r6, r4 + 3f92: 0c0b bf 0x3fa8 // 3fa8 + 3f94: 8da0 ld.h r5, (r5, 0x0) + 3f96: 7557 sexth r5, r5 + 3f98: 4c81 lsri r4, r4, 1 + 3f9a: 6515 cmplt r5, r4 + 3f9c: 0806 bt 0x3fa8 // 3fa8 + 3f9e: 6004 addu r0, r1 + 3fa0: 8880 ld.h r4, (r0, 0x0) + 3fa2: 2401 addi r4, 2 + 3fa4: 7511 zexth r4, r4 + 3fa6: a880 st.h r4, (r0, 0x0) + 3fa8: 2200 addi r2, 1 + 3faa: 3a51 cmpnei r2, 17 + 3fac: 2301 addi r3, 2 + 3fae: 0b61 bt 0x3e70 // 3e70 + 3fb0: 1402 addi r14, r14, 8 + 3fb2: 1484 pop r4-r7 + 3fb4: 5f80 addu r4, r7, r0 + 3fb6: 8c80 ld.h r4, (r4, 0x0) + 3fb8: 7513 sexth r4, r4 + 3fba: 3cdf btsti r4, 31 + 3fbc: 0fa9 bf 0x3f0e // 3f0e + 3fbe: 10b0 lrw r5, 0x20000626 // 3ffc + 3fc0: 5980 addu r4, r1, r0 + 3fc2: 6140 addu r5, r0 + 3fc4: 8c80 ld.h r4, (r4, 0x0) + 3fc6: 8da0 ld.h r5, (r5, 0x0) + 3fc8: 7555 zexth r5, r5 + 3fca: 8bc0 ld.h r6, (r3, 0x0) + 3fcc: 7511 zexth r4, r4 + 3fce: 6116 subu r4, r5 + 3fd0: 46a1 lsli r5, r6, 1 + 3fd2: 6158 addu r5, r6 + 3fd4: 6551 cmplt r4, r5 + 3fd6: 0b9c bt 0x3f0e // 3f0e + 3fd8: 108c lrw r4, 0x20000497 // 4008 + 3fda: 3501 movi r5, 1 + 3fdc: a4a0 st.b r5, (r4, 0x0) + 3fde: 6c03 mov r0, r0 + 3fe0: 0797 br 0x3f0e // 3f0e + 3fe2: 0000 bkpt + 3fe4: 200004b2 .long 0x200004b2 + 3fe8: 200000e9 .long 0x200000e9 + 3fec: 20000410 .long 0x20000410 + 3ff0: 2000042a .long 0x2000042a + 3ff4: 20000116 .long 0x20000116 + 3ff8: 20000380 .long 0x20000380 + 3ffc: 20000626 .long 0x20000626 + 4000: 20000554 .long 0x20000554 + 4004: 20000088 .long 0x20000088 + 4008: 20000497 .long 0x20000497 + 400c: 200004da .long 0x200004da + +Disassembly of section .text.TK_result_prog: + +00004010 : + 4010: 14d2 push r4-r5, r15 + 4012: 1050 lrw r2, 0x20000410 // 4050 + 4014: 1090 lrw r4, 0x200004b4 // 4054 + 4016: 9260 ld.w r3, (r2, 0x0) + 4018: 3b40 cmpnei r3, 0 + 401a: 0c02 bf 0x401e // 401e + 401c: 9260 ld.w r3, (r2, 0x0) + 401e: b460 st.w r3, (r4, 0x0) + 4020: 9460 ld.w r3, (r4, 0x0) + 4022: 3b40 cmpnei r3, 0 + 4024: 10ad lrw r5, 0x20000588 // 4058 + 4026: 0c11 bf 0x4048 // 4048 + 4028: 9440 ld.w r2, (r4, 0x0) + 402a: 9560 ld.w r3, (r5, 0x0) + 402c: 64ca cmpne r2, r3 + 402e: 0c03 bf 0x4034 // 4034 + 4030: 9460 ld.w r3, (r4, 0x0) + 4032: b560 st.w r3, (r5, 0x0) + 4034: e3fffd94 bsr 0x3b5c // 3b5c + 4038: 1069 lrw r3, 0x200000f0 // 405c + 403a: 8360 ld.b r3, (r3, 0x0) + 403c: 640c cmphs r3, r0 + 403e: 0804 bt 0x4046 // 4046 + 4040: 3300 movi r3, 0 + 4042: b460 st.w r3, (r4, 0x0) + 4044: b560 st.w r3, (r5, 0x0) + 4046: 1492 pop r4-r5, r15 + 4048: 1046 lrw r2, 0x200004ac // 4060 + 404a: b560 st.w r3, (r5, 0x0) + 404c: b260 st.w r3, (r2, 0x0) + 404e: 07fc br 0x4046 // 4046 + 4050: 20000410 .long 0x20000410 + 4054: 200004b4 .long 0x200004b4 + 4058: 20000588 .long 0x20000588 + 405c: 200000f0 .long 0x200000f0 + 4060: 200004ac .long 0x200004ac + +Disassembly of section .text.CORETHandler: + +00004064 : + 4064: 1460 nie + 4066: 1462 ipush + 4068: 14d1 push r4, r15 + 406a: 1077 lrw r3, 0x20000064 // 40c4 + 406c: 3400 movi r4, 0 + 406e: 9360 ld.w r3, (r3, 0x0) + 4070: b386 st.w r4, (r3, 0x18) + 4072: 1076 lrw r3, 0x20000414 // 40c8 + 4074: 8360 ld.b r3, (r3, 0x0) + 4076: 3b41 cmpnei r3, 1 + 4078: 0820 bt 0x40b8 // 40b8 + 407a: e3fffd85 bsr 0x3b84 // 3b84 + 407e: e3fffd93 bsr 0x3ba4 // 3ba4 + 4082: e3fffe51 bsr 0x3d24 // 3d24 + 4086: e3fffedd bsr 0x3e40 // 3e40 + 408a: e3ffffc3 bsr 0x4010 // 4010 + 408e: 1070 lrw r3, 0x200004b4 // 40cc + 4090: 9360 ld.w r3, (r3, 0x0) + 4092: 3b40 cmpnei r3, 0 + 4094: 0c12 bf 0x40b8 // 40b8 + 4096: 106f lrw r3, 0x200000c0 // 40d0 + 4098: 9340 ld.w r2, (r3, 0x0) + 409a: 3a40 cmpnei r2, 0 + 409c: 0c0e bf 0x40b8 // 40b8 + 409e: 106e lrw r3, 0x200004ac // 40d4 + 40a0: 3064 movi r0, 100 + 40a2: 9320 ld.w r1, (r3, 0x0) + 40a4: 2100 addi r1, 1 + 40a6: b320 st.w r1, (r3, 0x0) + 40a8: 9320 ld.w r1, (r3, 0x0) + 40aa: 7c80 mult r2, r0 + 40ac: 6448 cmphs r2, r1 + 40ae: 0805 bt 0x40b8 // 40b8 + 40b0: 104a lrw r2, 0x20000497 // 40d8 + 40b2: 3101 movi r1, 1 + 40b4: a220 st.b r1, (r2, 0x0) + 40b6: b380 st.w r4, (r3, 0x0) + 40b8: d9ee2001 ld.w r15, (r14, 0x4) + 40bc: 9880 ld.w r4, (r14, 0x0) + 40be: 1402 addi r14, r14, 8 + 40c0: 1463 ipop + 40c2: 1461 nir + 40c4: 20000064 .long 0x20000064 + 40c8: 20000414 .long 0x20000414 + 40cc: 200004b4 .long 0x200004b4 + 40d0: 200000c0 .long 0x200000c0 + 40d4: 200004ac .long 0x200004ac + 40d8: 20000497 .long 0x20000497 + +Disassembly of section .text.std_clk_calib: + +000040dc : + 40dc: 14d4 push r4-r7, r15 + 40de: 142d subi r14, r14, 52 + 40e0: 3201 movi r2, 1 + 40e2: 03ce lrw r6, 0x2000005c // 4324 + 40e4: 6cc3 mov r3, r0 + 40e6: dc4e000a st.b r2, (r14, 0xa) + 40ea: 9640 ld.w r2, (r6, 0x0) + 40ec: 9247 ld.w r2, (r2, 0x1c) + 40ee: 7488 zextb r2, r2 + 40f0: dc4e0009 st.b r2, (r14, 0x9) + 40f4: d84e0009 ld.b r2, (r14, 0x9) + 40f8: 3a40 cmpnei r2, 0 + 40fa: 0c08 bf 0x410a // 410a + 40fc: d84e0009 ld.b r2, (r14, 0x9) + 4100: 3a42 cmpnei r2, 2 + 4102: 0c04 bf 0x410a // 410a + 4104: 3000 movi r0, 0 + 4106: 140d addi r14, r14, 52 + 4108: 1494 pop r4-r7, r15 + 410a: 0397 lrw r4, 0x2000000c // 4328 + 410c: 3209 movi r2, 9 + 410e: 9400 ld.w r0, (r4, 0x0) + 4110: 3b40 cmpnei r3, 0 + 4112: b041 st.w r2, (r0, 0x4) + 4114: 0857 bt 0x41c2 // 41c2 + 4116: 3307 movi r3, 7 + 4118: dc6e000b st.b r3, (r14, 0xb) + 411c: 037b lrw r3, 0x2dc6c00 // 432c + 411e: b863 st.w r3, (r14, 0xc) + 4120: 3380 movi r3, 128 + 4122: 4362 lsli r3, r3, 2 + 4124: b867 st.w r3, (r14, 0x1c) + 4126: d86e000b ld.b r3, (r14, 0xb) + 412a: 74cc zextb r3, r3 + 412c: b062 st.w r3, (r0, 0x8) + 412e: 037e lrw r3, 0xffff // 4330 + 4130: b063 st.w r3, (r0, 0xc) + 4132: 3201 movi r2, 1 + 4134: 3101 movi r1, 1 + 4136: 03bf lrw r5, 0x20000014 // 4334 + 4138: e3fff042 bsr 0x21bc // 21bc + 413c: 95e0 ld.w r7, (r5, 0x0) + 413e: 137f lrw r3, 0xbe9c0005 // 4338 + 4140: b760 st.w r3, (r7, 0x0) + 4142: 135f lrw r2, 0x30010 // 433c + 4144: 3300 movi r3, 0 + 4146: b762 st.w r3, (r7, 0x8) + 4148: b743 st.w r2, (r7, 0xc) + 414a: 32d8 movi r2, 216 + 414c: b745 st.w r2, (r7, 0x14) + 414e: 974f ld.w r2, (r7, 0x3c) + 4150: 3aa2 bseti r2, 2 + 4152: b74f st.w r2, (r7, 0x3c) + 4154: 9803 ld.w r0, (r14, 0xc) + 4156: d82e000b ld.b r1, (r14, 0xb) + 415a: 327d movi r2, 125 + 415c: 2100 addi r1, 1 + 415e: 7c48 mult r1, r2 + 4160: b861 st.w r3, (r14, 0x4) + 4162: e3fff7ab bsr 0x30b8 // 30b8 <__udivsi3> + 4166: b804 st.w r0, (r14, 0x10) + 4168: 32fa movi r2, 250 + 416a: 9824 ld.w r1, (r14, 0x10) + 416c: 4242 lsli r2, r2, 2 + 416e: 6448 cmphs r2, r1 + 4170: 0bca bt 0x4104 // 4104 + 4172: 9844 ld.w r2, (r14, 0x10) + 4174: 3178 movi r1, 120 + 4176: 9804 ld.w r0, (r14, 0x10) + 4178: b840 st.w r2, (r14, 0x0) + 417a: e3fff79f bsr 0x30b8 // 30b8 <__udivsi3> + 417e: 9840 ld.w r2, (r14, 0x0) + 4180: 6082 subu r2, r0 + 4182: b845 st.w r2, (r14, 0x14) + 4184: 9804 ld.w r0, (r14, 0x10) + 4186: 3178 movi r1, 120 + 4188: 9844 ld.w r2, (r14, 0x10) + 418a: b840 st.w r2, (r14, 0x0) + 418c: e3fff796 bsr 0x30b8 // 30b8 <__udivsi3> + 4190: 9840 ld.w r2, (r14, 0x0) + 4192: 6008 addu r0, r2 + 4194: b806 st.w r0, (r14, 0x18) + 4196: c0807020 psrclr ie + 419a: 9640 ld.w r2, (r6, 0x0) + 419c: 9254 ld.w r2, (r2, 0x50) + 419e: b848 st.w r2, (r14, 0x20) + 41a0: 9861 ld.w r3, (r14, 0x4) + 41a2: 9440 ld.w r2, (r4, 0x0) + 41a4: b260 st.w r3, (r2, 0x0) + 41a6: b761 st.w r3, (r7, 0x4) + 41a8: d86e000a ld.b r3, (r14, 0xa) + 41ac: 3b40 cmpnei r3, 0 + 41ae: 083e bt 0x422a // 422a + 41b0: e3ffefb8 bsr 0x2120 // 2120 + 41b4: 9400 ld.w r0, (r4, 0x0) + 41b6: e3ffefd9 bsr 0x2168 // 2168 + 41ba: c1807420 psrset ee, ie + 41be: 3001 movi r0, 1 + 41c0: 07a3 br 0x4106 // 4106 + 41c2: 3b41 cmpnei r3, 1 + 41c4: 0806 bt 0x41d0 // 41d0 + 41c6: 3303 movi r3, 3 + 41c8: dc6e000b st.b r3, (r14, 0xb) + 41cc: 127d lrw r3, 0x16e3600 // 4340 + 41ce: 07a8 br 0x411e // 411e + 41d0: 3b42 cmpnei r3, 2 + 41d2: 0806 bt 0x41de // 41de + 41d4: 3301 movi r3, 1 + 41d6: dc6e000b st.b r3, (r14, 0xb) + 41da: 127b lrw r3, 0xb71b00 // 4344 + 41dc: 07a1 br 0x411e // 411e + 41de: 3b43 cmpnei r3, 3 + 41e0: 0806 bt 0x41ec // 41ec + 41e2: 3300 movi r3, 0 + 41e4: dc6e000b st.b r3, (r14, 0xb) + 41e8: 1278 lrw r3, 0x5b8d80 // 4348 + 41ea: 079a br 0x411e // 411e + 41ec: 3b44 cmpnei r3, 4 + 41ee: 0809 bt 0x4200 // 4200 + 41f0: 3300 movi r3, 0 + 41f2: dc6e000b st.b r3, (r14, 0xb) + 41f6: 1276 lrw r3, 0x54c720 // 434c + 41f8: b863 st.w r3, (r14, 0xc) + 41fa: 3380 movi r3, 128 + 41fc: 4369 lsli r3, r3, 9 + 41fe: 0793 br 0x4124 // 4124 + 4200: 3b45 cmpnei r3, 5 + 4202: 0806 bt 0x420e // 420e + 4204: 3300 movi r3, 0 + 4206: dc6e000b st.b r3, (r14, 0xb) + 420a: 1272 lrw r3, 0x3ffed0 // 4350 + 420c: 07f6 br 0x41f8 // 41f8 + 420e: 3b46 cmpnei r3, 6 + 4210: 0806 bt 0x421c // 421c + 4212: 3300 movi r3, 0 + 4214: dc6e000b st.b r3, (r14, 0xb) + 4218: 126f lrw r3, 0x1fff68 // 4354 + 421a: 07ef br 0x41f8 // 41f8 + 421c: 3b47 cmpnei r3, 7 + 421e: 0b84 bt 0x4126 // 4126 + 4220: 3300 movi r3, 0 + 4222: dc6e000b st.b r3, (r14, 0xb) + 4226: 126d lrw r3, 0x1ffb8 // 4358 + 4228: 07e8 br 0x41f8 // 41f8 + 422a: 9560 ld.w r3, (r5, 0x0) + 422c: 3101 movi r1, 1 + 422e: 9440 ld.w r2, (r4, 0x0) + 4230: b321 st.w r1, (r3, 0x4) + 4232: b220 st.w r1, (r2, 0x0) + 4234: 3100 movi r1, 0 + 4236: b327 st.w r1, (r3, 0x1c) + 4238: 3004 movi r0, 4 + 423a: b225 st.w r1, (r2, 0x14) + 423c: 932e ld.w r1, (r3, 0x38) + 423e: 6840 and r1, r0 + 4240: 3940 cmpnei r1, 0 + 4242: 0ffd bf 0x423c // 423c + 4244: 9225 ld.w r1, (r2, 0x14) + 4246: b82a st.w r1, (r14, 0x28) + 4248: 3100 movi r1, 0 + 424a: b310 st.w r0, (r3, 0x40) + 424c: b327 st.w r1, (r3, 0x1c) + 424e: 3004 movi r0, 4 + 4250: b225 st.w r1, (r2, 0x14) + 4252: 932e ld.w r1, (r3, 0x38) + 4254: 6840 and r1, r0 + 4256: 3940 cmpnei r1, 0 + 4258: 0ffd bf 0x4252 // 4252 + 425a: 9225 ld.w r1, (r2, 0x14) + 425c: b82b st.w r1, (r14, 0x2c) + 425e: 3100 movi r1, 0 + 4260: b310 st.w r0, (r3, 0x40) + 4262: b327 st.w r1, (r3, 0x1c) + 4264: 3004 movi r0, 4 + 4266: b225 st.w r1, (r2, 0x14) + 4268: 932e ld.w r1, (r3, 0x38) + 426a: 6840 and r1, r0 + 426c: 3940 cmpnei r1, 0 + 426e: 0ffd bf 0x4268 // 4268 + 4270: 9225 ld.w r1, (r2, 0x14) + 4272: b82c st.w r1, (r14, 0x30) + 4274: b310 st.w r0, (r3, 0x40) + 4276: 982b ld.w r1, (r14, 0x2c) + 4278: 980c ld.w r0, (r14, 0x30) + 427a: 6040 addu r1, r0 + 427c: b829 st.w r1, (r14, 0x24) + 427e: 9829 ld.w r1, (r14, 0x24) + 4280: 4921 lsri r1, r1, 1 + 4282: b829 st.w r1, (r14, 0x24) + 4284: 3100 movi r1, 0 + 4286: b321 st.w r1, (r3, 0x4) + 4288: b220 st.w r1, (r2, 0x0) + 428a: b327 st.w r1, (r3, 0x1c) + 428c: b225 st.w r1, (r2, 0x14) + 428e: d86e0009 ld.b r3, (r14, 0x9) + 4292: 3b42 cmpnei r3, 2 + 4294: 9849 ld.w r2, (r14, 0x24) + 4296: 082c bt 0x42ee // 42ee + 4298: 1171 lrw r3, 0x7ff // 435c + 429a: 648c cmphs r3, r2 + 429c: 0c03 bf 0x42a2 // 42a2 + 429e: 3300 movi r3, 0 + 42a0: 040f br 0x42be // 42be + 42a2: 9849 ld.w r2, (r14, 0x24) + 42a4: 9866 ld.w r3, (r14, 0x18) + 42a6: 648c cmphs r3, r2 + 42a8: 080e bt 0x42c4 // 42c4 + 42aa: 9868 ld.w r3, (r14, 0x20) + 42ac: 9847 ld.w r2, (r14, 0x1c) + 42ae: 60ca subu r3, r2 + 42b0: b868 st.w r3, (r14, 0x20) + 42b2: 32fe movi r2, 254 + 42b4: 9868 ld.w r3, (r14, 0x20) + 42b6: 4248 lsli r2, r2, 8 + 42b8: 68c8 and r3, r2 + 42ba: 3b40 cmpnei r3, 0 + 42bc: 0812 bt 0x42e0 // 42e0 + 42be: dc6e000a st.b r3, (r14, 0xa) + 42c2: 0721 br 0x4104 // 4104 + 42c4: 9849 ld.w r2, (r14, 0x24) + 42c6: 9865 ld.w r3, (r14, 0x14) + 42c8: 64c8 cmphs r2, r3 + 42ca: 0829 bt 0x431c // 431c + 42cc: 9868 ld.w r3, (r14, 0x20) + 42ce: 9847 ld.w r2, (r14, 0x1c) + 42d0: 60c8 addu r3, r2 + 42d2: b868 st.w r3, (r14, 0x20) + 42d4: 33fe movi r3, 254 + 42d6: 9848 ld.w r2, (r14, 0x20) + 42d8: 4368 lsli r3, r3, 8 + 42da: 688c and r2, r3 + 42dc: 64ca cmpne r2, r3 + 42de: 0fe0 bf 0x429e // 429e + 42e0: 9660 ld.w r3, (r6, 0x0) + 42e2: 9848 ld.w r2, (r14, 0x20) + 42e4: b354 st.w r2, (r3, 0x50) + 42e6: 3001 movi r0, 1 + 42e8: e3fff16e bsr 0x25c4 // 25c4 + 42ec: 075e br 0x41a8 // 41a8 + 42ee: 9866 ld.w r3, (r14, 0x18) + 42f0: 648c cmphs r3, r2 + 42f2: 0809 bt 0x4304 // 4304 + 42f4: 9868 ld.w r3, (r14, 0x20) + 42f6: 9847 ld.w r2, (r14, 0x1c) + 42f8: 60ca subu r3, r2 + 42fa: b868 st.w r3, (r14, 0x20) + 42fc: 32ff movi r2, 255 + 42fe: 9868 ld.w r3, (r14, 0x20) + 4300: 4250 lsli r2, r2, 16 + 4302: 07db br 0x42b8 // 42b8 + 4304: 9849 ld.w r2, (r14, 0x24) + 4306: 9865 ld.w r3, (r14, 0x14) + 4308: 64c8 cmphs r2, r3 + 430a: 0809 bt 0x431c // 431c + 430c: 9868 ld.w r3, (r14, 0x20) + 430e: 9847 ld.w r2, (r14, 0x1c) + 4310: 60c8 addu r3, r2 + 4312: b868 st.w r3, (r14, 0x20) + 4314: 33ff movi r3, 255 + 4316: 9848 ld.w r2, (r14, 0x20) + 4318: 4370 lsli r3, r3, 16 + 431a: 07e0 br 0x42da // 42da + 431c: 3300 movi r3, 0 + 431e: dc6e000a st.b r3, (r14, 0xa) + 4322: 07e2 br 0x42e6 // 42e6 + 4324: 2000005c .long 0x2000005c + 4328: 2000000c .long 0x2000000c + 432c: 02dc6c00 .long 0x02dc6c00 + 4330: 0000ffff .long 0x0000ffff + 4334: 20000014 .long 0x20000014 + 4338: be9c0005 .long 0xbe9c0005 + 433c: 00030010 .long 0x00030010 + 4340: 016e3600 .long 0x016e3600 + 4344: 00b71b00 .long 0x00b71b00 + 4348: 005b8d80 .long 0x005b8d80 + 434c: 0054c720 .long 0x0054c720 + 4350: 003ffed0 .long 0x003ffed0 + 4354: 001fff68 .long 0x001fff68 + 4358: 0001ffb8 .long 0x0001ffb8 + 435c: 000007ff .long 0x000007ff diff --git a/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V03_20250221.map b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V03_20250221.map new file mode 100644 index 0000000..8147ec5 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Lst/TRF_TM_CR_V03_20250221.map @@ -0,0 +1,2125 @@ +ELF Header: + Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF32 + Data: 2's complement, little endian + Version: 1 (current) + OS/ABI: UNIX - System V + ABI Version: 0 + Type: EXEC (Executable file) + Machine: CSKY + Version: 0x1 + Entry point address: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 304444 (bytes into file) + Flags: 0x21000000 + Size of this header: 52 (bytes) + Size of program headers: 32 (bytes) + Number of program headers: 2 + Size of section headers: 40 (bytes) + Number of section headers: 152 + Section header string table index: 149 + +Section Headers: + [Nr] Name Type Addr Off Size ES Flg Lk Inf Al + [ 0] NULL 00000000 000000 000000 00 0 0 0 + [ 1] .text PROGBITS 00000000 001000 001a50 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001a50 002a50 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001a88 002a88 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001afc 002afc 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001b48 002b48 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001b78 002b78 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c00 002c00 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c28 002c28 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001c64 002c64 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001c78 002c78 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001c90 002c90 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001cb0 002cb0 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001ccc 002ccc 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001ce8 002ce8 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00001d28 002d28 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00001d5c 002d5c 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00001d60 002d60 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00001d70 002d70 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 00001d7c 002d7c 00000c 00 AX 0 0 4 + [20] .text.SYSCON_INT_ PROGBITS 00001d88 002d88 000024 00 AX 0 0 4 + [21] .text.Set_INT_Pri PROGBITS 00001dac 002dac 000030 00 AX 0 0 4 + [22] .text.GPIO_Init PROGBITS 00001ddc 002ddc 0000e0 00 AX 0 0 4 + [23] .text.GPIO_PullHi PROGBITS 00001ebc 002ebc 000014 00 AX 0 0 2 + [24] .text.GPIO_DriveS PROGBITS 00001ed0 002ed0 00000e 00 AX 0 0 2 + [25] .text.GPIO_IntGro PROGBITS 00001ee0 002ee0 00010c 00 AX 0 0 4 + [26] .text.GPIOA0_EXI_ PROGBITS 00001fec 002fec 0000fc 00 AX 0 0 4 + [27] .text.GPIO_Write_ PROGBITS 000020e8 0030e8 000008 00 AX 0 0 2 + [28] .text.GPIO_Write_ PROGBITS 000020f0 0030f0 000008 00 AX 0 0 2 + [29] .text.GPIO_Revers PROGBITS 000020f8 0030f8 000016 00 AX 0 0 2 + [30] .text.GPIO_Read_S PROGBITS 0000210e 00310e 000010 00 AX 0 0 2 + [31] .text.LPT_Soft_Re PROGBITS 00002120 003120 000014 00 AX 0 0 4 + [32] .text.WWDT_CNT_Lo PROGBITS 00002134 003134 000010 00 AX 0 0 4 + [33] .text.BT_DeInit PROGBITS 00002144 003144 00001c 00 AX 0 0 2 + [34] .text.BT_Start PROGBITS 00002160 003160 000008 00 AX 0 0 2 + [35] .text.BT_Soft_Res PROGBITS 00002168 003168 00000a 00 AX 0 0 2 + [36] .text.BT_Configur PROGBITS 00002172 003172 000018 00 AX 0 0 2 + [37] .text.BT_ControlS PROGBITS 0000218a 00318a 00002c 00 AX 0 0 2 + [38] .text.BT_Period_C PROGBITS 000021b6 0031b6 000006 00 AX 0 0 2 + [39] .text.BT_ConfigIn PROGBITS 000021bc 0031bc 000012 00 AX 0 0 2 + [40] .text.BT1_INT_ENA PROGBITS 000021d0 0031d0 000010 00 AX 0 0 4 + [41] .text.GPT_IO_Init PROGBITS 000021e0 0031e0 0000a0 00 AX 0 0 4 + [42] .text.GPT_Configu PROGBITS 00002280 003280 000014 00 AX 0 0 4 + [43] .text.GPT_WaveCtr PROGBITS 00002294 003294 000044 00 AX 0 0 4 + [44] .text.GPT_WaveLoa PROGBITS 000022d8 0032d8 000014 00 AX 0 0 4 + [45] .text.GPT_WaveOut PROGBITS 000022ec 0032ec 0000b4 00 AX 0 0 4 + [46] .text.GPT_Start PROGBITS 000023a0 0033a0 000010 00 AX 0 0 4 + [47] .text.GPT_Period_ PROGBITS 000023b0 0033b0 000010 00 AX 0 0 4 + [48] .text.GPT_ConfigI PROGBITS 000023c0 0033c0 00001c 00 AX 0 0 4 + [49] .text.UART0_DeIni PROGBITS 000023dc 0033dc 000018 00 AX 0 0 4 + [50] .text.UART1_DeIni PROGBITS 000023f4 0033f4 000018 00 AX 0 0 4 + [51] .text.UART2_DeIni PROGBITS 0000240c 00340c 000018 00 AX 0 0 4 + [52] .text.UART1_Int_E PROGBITS 00002424 003424 00001c 00 AX 0 0 4 + [53] .text.UART2_Int_E PROGBITS 00002440 003440 00001c 00 AX 0 0 4 + [54] .text.UART_IO_Ini PROGBITS 0000245c 00345c 0000ec 00 AX 0 0 4 + [55] .text.UARTInitRxT PROGBITS 00002548 003548 000010 00 AX 0 0 4 + [56] .text.UARTTransmi PROGBITS 00002558 003558 00001e 00 AX 0 0 2 + [57] .text.EPT_Stop PROGBITS 00002578 003578 000028 00 AX 0 0 4 + [58] .text.startup.mai PROGBITS 000025a0 0035a0 000024 00 AX 0 0 4 + [59] .text.delay_nms PROGBITS 000025c4 0035c4 00002c 00 AX 0 0 2 + [60] .text.delay_nus PROGBITS 000025f0 0035f0 000022 00 AX 0 0 2 + [61] .text.BT_CONFIG PROGBITS 00002614 003614 000060 00 AX 0 0 4 + [62] .text.SYSCON_CONF PROGBITS 00002674 003674 000062 00 AX 0 0 2 + [63] .text.APT32F102_i PROGBITS 000026d8 0036d8 00004c 00 AX 0 0 4 + [64] .text.SYSCONIntHa PROGBITS 00002724 003724 0000f0 00 AX 0 0 4 + [65] .text.IFCIntHandl PROGBITS 00002814 003814 000068 00 AX 0 0 4 + [66] .text.ADCIntHandl PROGBITS 0000287c 00387c 000068 00 AX 0 0 4 + [67] .text.EPT0IntHand PROGBITS 000028e4 0038e4 0001ac 00 AX 0 0 4 + [68] .text.WWDTHandler PROGBITS 00002a90 003a90 000034 00 AX 0 0 4 + [69] .text.GPT0IntHand PROGBITS 00002ac4 003ac4 000080 00 AX 0 0 4 + [70] .text.RTCIntHandl PROGBITS 00002b44 003b44 000070 00 AX 0 0 4 + [71] .text.UART0IntHan PROGBITS 00002bb4 003bb4 00003c 00 AX 0 0 4 + [72] .text.UART1IntHan PROGBITS 00002bf0 003bf0 000094 00 AX 0 0 4 + [73] .text.UART2IntHan PROGBITS 00002c84 003c84 00004c 00 AX 0 0 4 + [74] .text.SPI0IntHand PROGBITS 00002cd0 003cd0 0000e8 00 AX 0 0 4 + [75] .text.SIO0IntHand PROGBITS 00002db8 003db8 000054 00 AX 0 0 4 + [76] .text.EXI0IntHand PROGBITS 00002e0c 003e0c 000030 00 AX 0 0 4 + [77] .text.EXI1IntHand PROGBITS 00002e3c 003e3c 000030 00 AX 0 0 4 + [78] .text.EXI2to3IntH PROGBITS 00002e6c 003e6c 000048 00 AX 0 0 4 + [79] .text.EXI4to9IntH PROGBITS 00002eb4 003eb4 000020 00 AX 0 0 4 + [80] .text.EXI10to15In PROGBITS 00002ed4 003ed4 00006c 00 AX 0 0 4 + [81] .text.LPTIntHandl PROGBITS 00002f40 003f40 000034 00 AX 0 0 4 + [82] .text.BT0IntHandl PROGBITS 00002f74 003f74 00004c 00 AX 0 0 4 + [83] .text.BT1IntHandl PROGBITS 00002fc0 003fc0 000070 00 AX 0 0 4 + [84] .text.PriviledgeV PROGBITS 00003030 004030 000002 00 AX 0 0 2 + [85] .text.PendTrapHan PROGBITS 00003032 004032 000008 00 AX 0 0 2 + [86] .text.Trap3Handle PROGBITS 0000303a 00403a 000008 00 AX 0 0 2 + [87] .text.Trap2Handle PROGBITS 00003042 004042 000008 00 AX 0 0 2 + [88] .text.Trap1Handle PROGBITS 0000304a 00404a 000008 00 AX 0 0 2 + [89] .text.Trap0Handle PROGBITS 00003052 004052 000008 00 AX 0 0 2 + [90] .text.UnrecExecpH PROGBITS 0000305a 00405a 000008 00 AX 0 0 2 + [91] .text.BreakPointH PROGBITS 00003062 004062 000008 00 AX 0 0 2 + [92] .text.AccessErrHa PROGBITS 0000306a 00406a 000008 00 AX 0 0 2 + [93] .text.IllegalInst PROGBITS 00003072 004072 000008 00 AX 0 0 2 + [94] .text.MisalignedH PROGBITS 0000307a 00407a 000008 00 AX 0 0 2 + [95] .text.CNTAIntHand PROGBITS 00003082 004082 000008 00 AX 0 0 2 + [96] .text.I2CIntHandl PROGBITS 0000308a 00408a 000008 00 AX 0 0 2 + [97] .text.__divsi3 PROGBITS 00003094 004094 000024 00 AX 0 0 4 + [98] .text.__udivsi3 PROGBITS 000030b8 0040b8 000024 00 AX 0 0 4 + [99] .text.__umodsi3 PROGBITS 000030dc 0040dc 000024 00 AX 0 0 4 + [100] .text.CK_CPU_EnAl PROGBITS 00003100 004100 000006 00 AX 0 0 2 + [101] .text.CK_CPU_DisA PROGBITS 00003106 004106 000006 00 AX 0 0 2 + [102] .text.UARTx_Init PROGBITS 0000310c 00410c 000120 00 AX 0 0 4 + [103] .text.UART1_RecvI PROGBITS 0000322c 00422c 000034 00 AX 0 0 4 + [104] .text.UART1_TASK PROGBITS 00003260 004260 000060 00 AX 0 0 4 + [105] .text.BUS485_Send PROGBITS 000032c0 0042c0 0000c4 00 AX 0 0 4 + [106] .text.MultSend_Ta PROGBITS 00003384 004384 000064 00 AX 0 0 4 + [107] .text.Set_GroupSe PROGBITS 000033e8 0043e8 00005c 00 AX 0 0 4 + [108] .text.BUS485Send_ PROGBITS 00003444 004444 00002c 00 AX 0 0 4 + [109] .text.BusIdle_Tas PROGBITS 00003470 004470 00003c 00 AX 0 0 4 + [110] .text.BusBusy_Tas PROGBITS 000034ac 0044ac 000054 00 AX 0 0 4 + [111] .text.Dbg_Println PROGBITS 00003500 004500 00000c 00 AX 0 0 2 + [112] .text.DIP_GetSwit PROGBITS 0000350c 00450c 000034 00 AX 0 0 4 + [113] .text.DIP_Switch_ PROGBITS 00003540 004540 00008c 00 AX 0 0 4 + [114] .text.DIP_ScanTas PROGBITS 000035cc 0045cc 00008c 00 AX 0 0 4 + [115] .text.Relay_Init PROGBITS 00003658 004658 0000cc 00 AX 0 0 4 + [116] .text.CheckSum PROGBITS 00003724 004724 000016 00 AX 0 0 2 + [117] .text.Change_OUTV PROGBITS 0000373c 00473c 00001c 00 AX 0 0 4 + [118] .text.BLV_VolOut_ PROGBITS 00003758 004758 000090 00 AX 0 0 4 + [119] .text.BLV_RLY_Ctr PROGBITS 000037e8 0047e8 00007c 00 AX 0 0 4 + [120] .text.BLV_RLY_Tas PROGBITS 00003864 004864 000054 00 AX 0 0 4 + [121] .text.BLV_A9RLY_C PROGBITS 000038b8 0048b8 00009c 00 AX 0 0 4 + [122] .text.BLV_A9RLY_C PROGBITS 00003954 004954 000078 00 AX 0 0 4 + [123] .text.BLV_RLY_RS4 PROGBITS 000039cc 0049cc 0000b0 00 AX 0 0 4 + [124] .text.TK_Sampling PROGBITS 00003a7c 004a7c 000058 00 AX 0 0 4 + [125] .text.TKEYIntHand PROGBITS 00003ad4 004ad4 000088 00 AX 0 0 4 + [126] .text.get_key_num PROGBITS 00003b5c 004b5c 000028 00 AX 0 0 4 + [127] .text.TK_Scan_Sta PROGBITS 00003b84 004b84 000020 00 AX 0 0 4 + [128] .text.TK_Keymap_p PROGBITS 00003ba4 004ba4 000180 00 AX 0 0 4 + [129] .text.TK_overflow PROGBITS 00003d24 004d24 00011c 00 AX 0 0 4 + [130] .text.TK_Baseline PROGBITS 00003e40 004e40 0001d0 00 AX 0 0 4 + [131] .text.TK_result_p PROGBITS 00004010 005010 000054 00 AX 0 0 4 + [132] .text.CORETHandle PROGBITS 00004064 005064 000078 00 AX 0 0 4 + [133] .text.std_clk_cal PROGBITS 000040dc 0050dc 000284 00 AX 0 0 4 + [134] .RomCode PROGBITS 00004360 00609c 000000 00 W 0 0 1 + [135] .rodata PROGBITS 00004360 005360 000200 00 A 0 0 4 + [136] .data PROGBITS 20000000 006000 00009c 00 WA 0 0 4 + [137] .bss NOBITS 2000009c 00609c 0005ac 00 WA 0 0 4 + [138] .csky.attributes CSKY_ATTRIBUTES 00000000 00609c 000022 00 0 0 1 + [139] .comment PROGBITS 00000000 0060be 000042 01 MS 0 0 1 + [140] .csky_stack_size PROGBITS 00000000 006100 0007bc 00 0 0 16 + [141] .debug_line PROGBITS 00000000 0068bc 0035d5 00 0 0 1 + [142] .debug_info PROGBITS 00000000 009e91 02a208 00 0 0 1 + [143] .debug_abbrev PROGBITS 00000000 034099 0026cf 00 0 0 1 + [144] .debug_aranges PROGBITS 00000000 036768 000c10 00 0 0 8 + [145] .debug_ranges PROGBITS 00000000 037378 000b58 00 0 0 1 + [146] .debug_str PROGBITS 00000000 037ed0 008721 01 MS 0 0 1 + [147] .debug_frame PROGBITS 00000000 0405f4 001bec 00 0 0 4 + [148] .debug_loc PROGBITS 00000000 0421e0 002c1e 00 0 0 1 + [149] .shstrtab STRTAB 00000000 04990b 000c30 00 0 0 1 + [150] .symtab SYMTAB 00000000 044e00 003920 10 151 631 4 + [151] .strtab STRTAB 00000000 048720 0011eb 00 0 0 1 +Key to Flags: + W (write), A (alloc), X (execute), M (merge), S (strings), I (info), + L (link order), O (extra OS processing required), G (group), T (TLS), + C (compressed), x (unknown), o (OS specific), E (exclude), + p (processor specific) + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00000000 0x00000000 0x04560 0x04560 R E 0x1000 + LOAD 0x006000 0x20000000 0x00004560 0x0009c 0x00648 RW 0x1000 + + Section to Segment mapping: + Segment Sections... + 00 .text .text.__main .text.SYSCON_General_CMD.part.0 .text.SYSCON_RST_VALUE .text.SYSCON_General_CMD .text.SystemCLK_HCLKDIV_PCLKDIV_Config .text.SYSCON_HFOSC_SELECTE .text.SYSCON_WDT_CMD .text.SYSCON_IWDCNT_Reload .text.SYSCON_IWDCNT_Config .text.SYSCON_LVD_Config .text.LVD_Int_Enable .text.IWDT_Int_Enable .text.EXTI_trigger_CMD .text.EXTI_interrupt_CMD .text.GPIO_EXTI_interrupt .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .text.SYSCON_INT_Priority .text.Set_INT_Priority .text.GPIO_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .text.GPIO_Read_Status .text.LPT_Soft_Reset .text.WWDT_CNT_Load .text.BT_DeInit .text.BT_Start .text.BT_Soft_Reset .text.BT_Configure .text.BT_ControlSet_Configure .text.BT_Period_CMP_Write .text.BT_ConfigInterrupt_CMD .text.BT1_INT_ENABLE .text.GPT_IO_Init .text.GPT_Configure .text.GPT_WaveCtrl_Configure .text.GPT_WaveLoad_Configure .text.GPT_WaveOut_Configure .text.GPT_Start .text.GPT_Period_CMP_Write .text.GPT_ConfigInterrupt_CMD .text.UART0_DeInit .text.UART1_DeInit .text.UART2_DeInit .text.UART1_Int_Enable .text.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Stop .text.startup.main .text.delay_nms .text.delay_nus .text.BT_CONFIG .text.SYSCON_CONFIG .text.APT32F102_init .text.SYSCONIntHandler .text.IFCIntHandler .text.ADCIntHandler .text.EPT0IntHandler .text.WWDTHandler .text.GPT0IntHandler .text.RTCIntHandler .text.UART0IntHandler .text.UART1IntHandler .text.UART2IntHandler .text.SPI0IntHandler .text.SIO0IntHandler .text.EXI0IntHandler .text.EXI1IntHandler .text.EXI2to3IntHandler .text.EXI4to9IntHandler .text.EXI10to15IntHandler .text.LPTIntHandler .text.BT0IntHandler .text.BT1IntHandler .text.PriviledgeVioHandler .text.PendTrapHandler .text.Trap3Handler .text.Trap2Handler .text.Trap1Handler .text.Trap0Handler .text.UnrecExecpHandler .text.BreakPointHandler .text.AccessErrHandler .text.IllegalInstrHandler .text.MisalignedHandler .text.CNTAIntHandler .text.I2CIntHandler .text.__divsi3 .text.__udivsi3 .text.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART1_RecvINT_Processing .text.UART1_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.Relay_Init .text.CheckSum .text.Change_OUTV .text.BLV_VolOut_Ctrl .text.BLV_RLY_Ctrl_Purpose .text.BLV_RLY_Task .text.BLV_A9RLY_CMD_SET_Processing .text.BLV_A9RLY_CMD_READ_Processing .text.BLV_RLY_RS485_Pro .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_RST_VALUE) for SYSCON_RST_VALUE + Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_General_CMD) for SYSCON_General_CMD + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SystemCLK_HCLKDIV_PCLKDIV_Config) for SystemCLK_HCLKDIV_PCLKDIV_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_HFOSC_SELECTE) for SYSCON_HFOSC_SELECTE + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_WDT_CMD) for SYSCON_WDT_CMD + Obj/main.o(.text.startup.main) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.delay_nms) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Reload) for SYSCON_IWDCNT_Reload + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_IWDCNT_Config) for SYSCON_IWDCNT_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_LVD_Config) for SYSCON_LVD_Config + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.LVD_Int_Enable) for LVD_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.IWDT_Int_Enable) for IWDT_Int_Enable + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI4_Int_Enable) for EXI4_Int_Enable + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Enable) for SYSCON_Int_Enable + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_Int_Disable) for SYSCON_Int_Disable + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.SYSCON_INT_Priority) for SYSCON_INT_Priority + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/FWlib_apt32f102_syscon.o(.text.Set_INT_Priority) for Set_INT_Priority + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Ctrl_Purpose) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Reverse) for GPIO_Reverse + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Read_Status) for GPIO_Read_Status + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Ctrl_Purpose) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_lpt.o(.text.LPT_Soft_Reset) for LPT_Soft_Reset + Obj/mcu_interrupt.o(.text.WWDTHandler) refers to Obj/FWlib_apt32f102_wwdt.o(.text.WWDT_CNT_Load) for WWDT_CNT_Load + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_DeInit) for BT_DeInit + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Start) for BT_Start + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Soft_Reset) for BT_Soft_Reset + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Configure) for BT_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ControlSet_Configure) for BT_ControlSet_Configure + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_Period_CMP_Write) for BT_Period_CMP_Write + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/FWlib_apt32f102_bt.o(.text.BT_ConfigInterrupt_CMD) for BT_ConfigInterrupt_CMD + Obj/mcu_initial.o(.text.BT_CONFIG) refers to Obj/FWlib_apt32f102_bt.o(.text.BT1_INT_ENABLE) for BT1_INT_ENABLE + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_IO_Init) for GPT_IO_Init + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Configure) for GPT_Configure + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveCtrl_Configure) for GPT_WaveCtrl_Configure + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveLoad_Configure) for GPT_WaveLoad_Configure + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_WaveOut_Configure) for GPT_WaveOut_Configure + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Start) for GPT_Start + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_Period_CMP_Write) for GPT_Period_CMP_Write + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpt.o(.text.GPT_ConfigInterrupt_CMD) for GPT_ConfigInterrupt_CMD + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART0_DeInit) for UART0_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_DeInit) for UART1_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_DeInit) for UART2_DeInit + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART1_Int_Enable) for UART1_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART2_Int_Enable) for UART2_Int_Enable + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UART_IO_Init) for UART_IO_Init + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/mcu_initial.o(.text.delay_nus) for delay_nus + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.BT_CONFIG) for BT_CONFIG + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.SYSCON_CONFIG) for SYSCON_CONFIG + Obj/main.o(.text.startup.main) refers to Obj/mcu_initial.o(.text.APT32F102_init) for APT32F102_init + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_uart.o(.text.BUS485_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusIdle_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_control_rly.o(.text.BLV_VolOut_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_uart.o(.text.UARTx_Init) for UARTx_Init + Obj/mcu_interrupt.o(.text.UART1IntHandler) refers to Obj/SYSTEM_uart.o(.text.UART1_RecvINT_Processing) for UART1_RecvINT_Processing + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART1_TASK) for UART1_TASK + Obj/SYSTEM_uart.o(.text.MultSend_Task) refers to Obj/SYSTEM_uart.o(.text.BUS485_Send) for BUS485_Send + Obj/SYSTEM_uart.o(.text.BUS485Send_Task) refers to Obj/SYSTEM_uart.o(.text.MultSend_Task) for MultSend_Task + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_SET_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_READ_Processing) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.BUS485Send_Task) for BUS485Send_Task + Obj/mcu_interrupt.o(.text.BT1IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusIdle_Task) for BusIdle_Task + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_GetSwitchState) for DIP_GetSwitchState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) for DIP_Switch_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_dip_switch.o(.text.DIP_ScanTask) for DIP_ScanTask + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_control_rly.o(.text.Relay_Init) for Relay_Init + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_SET_Processing) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum) for CheckSum + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_READ_Processing) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum) for CheckSum + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.CheckSum) for CheckSum + Obj/SYSTEM_control_rly.o(.text.BLV_VolOut_Ctrl) refers to Obj/SYSTEM_control_rly.o(.text.Change_OUTV) for Change_OUTV + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Task) refers to Obj/SYSTEM_control_rly.o(.text.BLV_VolOut_Ctrl) for BLV_VolOut_Ctrl + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Task) refers to Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_SET_Processing) refers to Obj/SYSTEM_control_rly.o(.text.BLV_RLY_Task) for BLV_RLY_Task + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_SET_Processing) for BLV_A9RLY_CMD_SET_Processing + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to Obj/SYSTEM_control_rly.o(.text.BLV_A9RLY_CMD_READ_Processing) for BLV_A9RLY_CMD_READ_Processing + FWlib_apt32f102_tkey_c_1_17.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_c_1_17.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_result_prog) for TK_result_prog + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to pow.o(.text) for pow + pow.o(.text) refers to fabs.o(.text) for fabs + pow.o(.text) refers to scalbn.o(.text) for scalbn + pow.o(.text) refers to sqrt.o(.text) for sqrt + Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + pow.o(.text) refers to _addsub_df.o(.text) for __adddf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __adddf3 + pow.o(.text) refers to _addsub_df.o(.text) for __subdf3 + sqrt.o(.text) refers to _addsub_df.o(.text) for __subdf3 + _fixunsdfsi.o(.text) refers to _addsub_df.o(.text) for __subdf3 + pow.o(.text) refers to _mul_df.o(.text) for __muldf3 + sqrt.o(.text) refers to _mul_df.o(.text) for __muldf3 + pow.o(.text) refers to _div_df.o(.text) for __divdf3 + sqrt.o(.text) refers to _div_df.o(.text) for __divdf3 + pow.o(.text) refers to _gt_df.o(.text) for __gtdf2 + _fixunsdfsi.o(.text) refers to _ge_df.o(.text) for __gedf2 + pow.o(.text) refers to _le_df.o(.text) for __ledf2 + pow.o(.text) refers to _si_to_df.o(.text) for __floatsidf + _fixunsdfsi.o(.text) refers to _df_to_si.o(.text) for __fixdfsi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_overflow_predict) refers to _usi_to_df.o(.text) for __floatunsidf + _mul_df.o(.text) refers to _muldi3.o(.text) for __muldi3 + _si_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _usi_to_df.o(.text) refers to _clzsi2.o(.text) for __clzsi2 + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _mul_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _div_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _si_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _usi_to_df.o(.text) refers to _pack_df.o(.text) for __pack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _addsub_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _mul_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _div_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _ge_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _le_df.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _df_to_si.o(.text) refers to _unpack_df.o(.text) for __unpack_d + _gt_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _ge_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + _le_df.o(.text) refers to _fpcmp_parts_df.o(.text) for __fpcmp_parts_d + Obj/arch_mem_init.o(.text.__main) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_dip_switch.o(.text.DIP_Switch_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_control_rly.o(.text.Relay_Init) refers to memset_fast.o(.text) for memset + Obj/arch_mem_init.o(.text.__main) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.UART1_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_uart.o(.text.Set_GroupSend) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_control_rly.o(.text.BLV_RLY_RS485_Pro) refers to memcpy_fast.o(.text) for memcpy + + +====================================================================== + +Removing Unused input sections from the image. + + Removing .data(Obj/arch_crt0.o), (4 bytes). + Removing .bss(Obj/arch_crt0.o), (0 bytes). + Removing .text(Obj/arch_mem_init.o), (0 bytes). + Removing .data(Obj/arch_mem_init.o), (0 bytes). + Removing .bss(Obj/arch_mem_init.o), (0 bytes). + Removing .text(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .data(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .bss(Obj/arch_apt32f102_iostring.o), (0 bytes). + Removing .text.__putchar__(Obj/arch_apt32f102_iostring.o), (16 bytes). + Removing .text.myitoa(Obj/arch_apt32f102_iostring.o), (140 bytes). + Removing .text.my_printf(Obj/arch_apt32f102_iostring.o), (198 bytes). + Removing .debug_info(Obj/arch_apt32f102_iostring.o), (7541 bytes). + Removing .debug_abbrev(Obj/arch_apt32f102_iostring.o), (485 bytes). + Removing .debug_loc(Obj/arch_apt32f102_iostring.o), (653 bytes). + Removing .debug_aranges(Obj/arch_apt32f102_iostring.o), (48 bytes). + Removing .debug_ranges(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .debug_line(Obj/arch_apt32f102_iostring.o), (487 bytes). + Removing .debug_str(Obj/arch_apt32f102_iostring.o), (2911 bytes). + Removing .comment(Obj/arch_apt32f102_iostring.o), (67 bytes). + Removing .debug_frame(Obj/arch_apt32f102_iostring.o), (120 bytes). + Removing .csky.attributes(Obj/arch_apt32f102_iostring.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_syscon.o), (0 bytes). + Removing .text.EMOSC_OSTR_Config(Obj/FWlib_apt32f102_syscon.o), (28 bytes). + Removing .text.SystemCLK_Clear(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.SYSCON_IMOSC_SELECTE(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.LVD_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.IWDT_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.Read_Reset_Status(Obj/FWlib_apt32f102_syscon.o), (24 bytes). + Removing .text.PCLK_goto_idle_mode(Obj/FWlib_apt32f102_syscon.o), (6 bytes). + Removing .text.PCLK_goto_deepsleep_mode(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.EXI0_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_Int_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI0_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI0_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.EXI1_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI1_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI2_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI3_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.EXI4_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_WakeUp_Enable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_CLO_CONFIG(Obj/FWlib_apt32f102_syscon.o), (52 bytes). + Removing .text.SYSCON_CLO_SRC_SET(Obj/FWlib_apt32f102_syscon.o), (32 bytes). + Removing .text.SYSCON_WakeUp_Disable(Obj/FWlib_apt32f102_syscon.o), (12 bytes). + Removing .text.SYSCON_Read_CINF0(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Read_CINF1(Obj/FWlib_apt32f102_syscon.o), (16 bytes). + Removing .text.SYSCON_Software_Reset(Obj/FWlib_apt32f102_syscon.o), (20 bytes). + Removing .text.GPIO_Remap(Obj/FWlib_apt32f102_syscon.o), (652 bytes). + Removing .text(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpio.o), (0 bytes). + Removing .text.GPIO_DeInit(Obj/FWlib_apt32f102_gpio.o), (100 bytes). + Removing .text.GPIO_Init2(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIO_InPutOutPut_Disable(Obj/FWlib_apt32f102_gpio.o), (164 bytes). + Removing .text.GPIO_MODE_Init(Obj/FWlib_apt32f102_gpio.o), (34 bytes). + Removing .text.GPIO_PullLow_Init(Obj/FWlib_apt32f102_gpio.o), (20 bytes). + Removing .text.GPIO_PullHighLow_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_OpenDrain_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_OpenDrain_DIS(Obj/FWlib_apt32f102_gpio.o), (14 bytes). + Removing .text.GPIO_TTL_COSM_Selecte(Obj/FWlib_apt32f102_gpio.o), (72 bytes). + Removing .text.GPIO_DriveStrength_DIS(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text.GPIOB0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (108 bytes). + Removing .text.GPIO_EXI_EN(Obj/FWlib_apt32f102_gpio.o), (12 bytes). + Removing .text.GPIO_Set_Value(Obj/FWlib_apt32f102_gpio.o), (22 bytes). + Removing .text.GPIO_Read_Output(Obj/FWlib_apt32f102_gpio.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_lpt.o), (0 bytes). + Removing .text.LPT_DeInit(Obj/FWlib_apt32f102_lpt.o), (60 bytes). + Removing .text.LPT_IO_Init(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Configure(Obj/FWlib_apt32f102_lpt.o), (44 bytes). + Removing .text.LPT_Debug_Mode(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Period_CMP_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Write(Obj/FWlib_apt32f102_lpt.o), (12 bytes). + Removing .text.LPT_PRDR_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CMP_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_CNT_Read(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_ControlSet_Configure(Obj/FWlib_apt32f102_lpt.o), (40 bytes). + Removing .text.LPT_SyncSet_Configure(Obj/FWlib_apt32f102_lpt.o), (24 bytes). + Removing .text.LPT_Trigger_Configure(Obj/FWlib_apt32f102_lpt.o), (72 bytes). + Removing .text.LPT_Trigger_EVPS(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Trigger_Cnt(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_Soft_Trigger(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Start(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_Stop(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Write(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_REARM_Read(Obj/FWlib_apt32f102_lpt.o), (20 bytes). + Removing .text.LPT_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_lpt.o), (28 bytes). + Removing .text.LPT_INT_ENABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text.LPT_INT_DISABLE(Obj/FWlib_apt32f102_lpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_crc.o), (0 bytes). + Removing .text.CRC_CMD(Obj/FWlib_apt32f102_crc.o), (24 bytes). + Removing .text.CRC_Soft_Reset(Obj/FWlib_apt32f102_crc.o), (16 bytes). + Removing .text.CRC_Configure(Obj/FWlib_apt32f102_crc.o), (36 bytes). + Removing .text.CRC_Seed_Write(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Seed_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Datain(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.CRC_Result_Read(Obj/FWlib_apt32f102_crc.o), (12 bytes). + Removing .text.Chip_CRC_CRC32(Obj/FWlib_apt32f102_crc.o), (28 bytes). + Removing .text.Chip_CRC_CRC16(Obj/FWlib_apt32f102_crc.o), (52 bytes). + Removing .text.Chip_CRC_CRC8(Obj/FWlib_apt32f102_crc.o), (44 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_crc.o), (7732 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_crc.o), (592 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_crc.o), (358 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_crc.o), (104 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_crc.o), (112 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_crc.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_crc.o), (3105 bytes). + Removing .comment(Obj/FWlib_apt32f102_crc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_crc.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_crc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_wwdt.o), (0 bytes). + Removing .text.WWDT_DeInit(Obj/FWlib_apt32f102_wwdt.o), (28 bytes). + Removing .text.WWDT_CONFIG(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_CMD(Obj/FWlib_apt32f102_wwdt.o), (24 bytes). + Removing .text.WWDT_Int_Config(Obj/FWlib_apt32f102_wwdt.o), (52 bytes). + Removing .text(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_countera.o), (0 bytes). + Removing .text.COUNT_DeInit(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Int_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Int_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Enable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Wakeup_Disable(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Init(Obj/FWlib_apt32f102_countera.o), (60 bytes). + Removing .text.COUNTA_Config(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text.COUNTA_Start(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_Stop(Obj/FWlib_apt32f102_countera.o), (16 bytes). + Removing .text.COUNTA_Data_Update(Obj/FWlib_apt32f102_countera.o), (20 bytes). + Removing .text.COUNTA_IO_Init(Obj/FWlib_apt32f102_countera.o), (80 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_countera.o), (7799 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_countera.o), (381 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_countera.o), (336 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_countera.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_countera.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_countera.o), (350 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_countera.o), (3422 bytes). + Removing .comment(Obj/FWlib_apt32f102_countera.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_countera.o), (224 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_countera.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_et.o), (0 bytes). + Removing .text.ET_DeInit(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_ENABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_DISABLE(Obj/FWlib_apt32f102_et.o), (16 bytes). + Removing .text.ET_SWTRG_CMD(Obj/FWlib_apt32f102_et.o), (28 bytes). + Removing .text.ET_CH0_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH0_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH1_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH1_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CH2_SRCSEL(Obj/FWlib_apt32f102_et.o), (108 bytes). + Removing .text.ET_CH2_CONTROL(Obj/FWlib_apt32f102_et.o), (40 bytes). + Removing .text.ET_CHx_CONTROL(Obj/FWlib_apt32f102_et.o), (276 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_et.o), (7781 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_et.o), (410 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_et.o), (1318 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_et.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_et.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_et.o), (463 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_et.o), (3167 bytes). + Removing .comment(Obj/FWlib_apt32f102_et.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_et.o), (204 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_et.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_bt.o), (0 bytes). + Removing .text.BT_IO_Init(Obj/FWlib_apt32f102_bt.o), (332 bytes). + Removing .text.BT_Stop(Obj/FWlib_apt32f102_bt.o), (8 bytes). + Removing .text.BT_Stop_High(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_Stop_Low(Obj/FWlib_apt32f102_bt.o), (14 bytes). + Removing .text.BT_CNT_Write(Obj/FWlib_apt32f102_bt.o), (4 bytes). + Removing .text.BT_PRDR_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CMP_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_CNT_Read(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT_Trigger_Configure(Obj/FWlib_apt32f102_bt.o), (10 bytes). + Removing .text.BT_Soft_Tigger(Obj/FWlib_apt32f102_bt.o), (6 bytes). + Removing .text.BT0_INT_ENABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT0_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text.BT1_INT_DISABLE(Obj/FWlib_apt32f102_bt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_gpt.o), (0 bytes). + Removing .text.GPT_DeInit(Obj/FWlib_apt32f102_gpt.o), (96 bytes). + Removing .text.GPT_Capture_Config(Obj/FWlib_apt32f102_gpt.o), (68 bytes). + Removing .text.GPT_SyncSet_Configure(Obj/FWlib_apt32f102_gpt.o), (36 bytes). + Removing .text.GPT_Trigger_Configure(Obj/FWlib_apt32f102_gpt.o), (44 bytes). + Removing .text.GPT_EVTRG_Configure(Obj/FWlib_apt32f102_gpt.o), (92 bytes). + Removing .text.GPT_OneceForce_Out(Obj/FWlib_apt32f102_gpt.o), (32 bytes). + Removing .text.GPT_Force_Out(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CmpLoad_Configure(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Debug_Mode(Obj/FWlib_apt32f102_gpt.o), (24 bytes). + Removing .text.GPT_Stop(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Soft_Reset(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_Cap_Rearm(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_Mode_CMD(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Write(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_REARM_Read(Obj/FWlib_apt32f102_gpt.o), (20 bytes). + Removing .text.GPT_PRDR_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPA_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CMPB_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_CNT_Read(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_ENABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text.GPT_INT_DISABLE(Obj/FWlib_apt32f102_gpt.o), (16 bytes). + Removing .text(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_sio.o), (0 bytes). + Removing .text.SIO_DeInit(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_IO_Init(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_TX_Init(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_TX_Configure(Obj/FWlib_apt32f102_sio.o), (80 bytes). + Removing .text.SIO_TXBUF_Set(Obj/FWlib_apt32f102_sio.o), (156 bytes). + Removing .text.SIO_RX_Init(Obj/FWlib_apt32f102_sio.o), (20 bytes). + Removing .text.SIO_RX_Configure0(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .text.SIO_RX_Configure1(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text.SIO_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_sio.o), (28 bytes). + Removing .text.SIO_INT_ENABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .text.SIO_INT_DISABLE(Obj/FWlib_apt32f102_sio.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_sio.o), (8669 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_sio.o), (405 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_sio.o), (1996 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_sio.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_sio.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_sio.o), (391 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_sio.o), (4135 bytes). + Removing .comment(Obj/FWlib_apt32f102_sio.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_sio.o), (260 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_sio.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_spi.o), (0 bytes). + Removing .text.SPI_DeInit(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_NSS_IO_Init(Obj/FWlib_apt32f102_spi.o), (52 bytes). + Removing .text.SPI_Master_Init(Obj/FWlib_apt32f102_spi.o), (176 bytes). + Removing .text.SPI_Slave_Init(Obj/FWlib_apt32f102_spi.o), (156 bytes). + Removing .text.SPI_WRITE_BYTE(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text.SPI_READ_BYTE(Obj/FWlib_apt32f102_spi.o), (100 bytes). + Removing .text.SPI_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_spi.o), (28 bytes). + Removing .text.SPI_Int_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Int_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Enable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .text.SPI_Wakeup_Disable(Obj/FWlib_apt32f102_spi.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_spi.o), (7854 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_spi.o), (402 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_spi.o), (641 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_spi.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_spi.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_spi.o), (407 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_spi.o), (3538 bytes). + Removing .comment(Obj/FWlib_apt32f102_spi.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_spi.o), (240 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_spi.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_uart.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_uart.o), (2 bytes). + Removing .text.UART0_Int_Enable(Obj/FWlib_apt32f102_uart.o), (28 bytes). + Removing .text.UART0_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_Int_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART0_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART1_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Enable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UART2_WakeUp_Disable(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInit(Obj/FWlib_apt32f102_uart.o), (16 bytes). + Removing .text.UARTInitRxIntEn(Obj/FWlib_apt32f102_uart.o), (10 bytes). + Removing .text.UARTClose(Obj/FWlib_apt32f102_uart.o), (6 bytes). + Removing .text.UARTTxByte(Obj/FWlib_apt32f102_uart.o), (14 bytes). + Removing .text.UARTTTransmit_data_set(Obj/FWlib_apt32f102_uart.o), (44 bytes). + Removing .text.UARTTransmit_INT_Send(Obj/FWlib_apt32f102_uart.o), (72 bytes). + Removing .text.UARTRxByte(Obj/FWlib_apt32f102_uart.o), (22 bytes). + Removing .text.UART_ReturnRxByte(Obj/FWlib_apt32f102_uart.o), (24 bytes). + Removing .text.UARTReceive(Obj/FWlib_apt32f102_uart.o), (56 bytes). + Removing COMMON(Obj/FWlib_apt32f102_uart.o), (36 bytes). + Removing .text(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_i2c.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_i2c.o), (6 bytes). + Removing .text.I2C_DeInit(Obj/FWlib_apt32f102_i2c.o), (24 bytes). + Removing .text.I2C_Master_CONFIG(Obj/FWlib_apt32f102_i2c.o), (320 bytes). + Removing .text.I2C_Slave_CONFIG(Obj/FWlib_apt32f102_i2c.o), (332 bytes). + Removing .text.I2C_SDA_TSETUP_THOLD_CONFIG(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_FIFO_TriggerData(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Stop(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Enable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Disable(Obj/FWlib_apt32f102_i2c.o), (28 bytes). + Removing .text.I2C_Abort_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Abort_Status(Obj/FWlib_apt32f102_i2c.o), (20 bytes). + Removing .text.I2C_SDA_Recover_EN(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_SDA_Recover_DIS(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Enable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_Int_Disable(Obj/FWlib_apt32f102_i2c.o), (16 bytes). + Removing .text.I2C_WRITE_Byte(Obj/FWlib_apt32f102_i2c.o), (112 bytes). + Removing .text.I2C_WRITE_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_READ_Byte(Obj/FWlib_apt32f102_i2c.o), (100 bytes). + Removing .text.I2C_READ_nByte(Obj/FWlib_apt32f102_i2c.o), (160 bytes). + Removing .text.I2C_Slave_Receive(Obj/FWlib_apt32f102_i2c.o), (384 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_i2c.o), (8426 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_i2c.o), (576 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_i2c.o), (1150 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_i2c.o), (184 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_i2c.o), (168 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_i2c.o), (847 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_i2c.o), (3654 bytes). + Removing .comment(Obj/FWlib_apt32f102_i2c.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_i2c.o), (452 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_i2c.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_i2c.o), (70 bytes). + Removing .text(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ept.o), (0 bytes). + Removing .text.EPT_Software_Prg(Obj/FWlib_apt32f102_ept.o), (32 bytes). + Removing .text.EPT_Start(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_IO_SET(Obj/FWlib_apt32f102_ept.o), (568 bytes). + Removing .text.EPT_PWM_Config(Obj/FWlib_apt32f102_ept.o), (56 bytes). + Removing .text.EPT_CG_gate_Config(Obj/FWlib_apt32f102_ept.o), (116 bytes). + Removing .text.EPT_Capture_Config(Obj/FWlib_apt32f102_ept.o), (104 bytes). + Removing .text.EPT_SYNCR_Config(Obj/FWlib_apt32f102_ept.o), (52 bytes). + Removing .text.EPT_CPCR_Config(Obj/FWlib_apt32f102_ept.o), (80 bytes). + Removing .text.EPT_DBCR_Config(Obj/FWlib_apt32f102_ept.o), (96 bytes). + Removing .text.EPT_DB_CLK_Config(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PWMX_Output_Control(Obj/FWlib_apt32f102_ept.o), (216 bytes). + Removing .text.EPT_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SYNCR_RearmClr(Obj/FWlib_apt32f102_ept.o), (40 bytes). + Removing .text.EPT_Caputure_Rearm(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Globle_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_Globle_SwLoad_CMD(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_PRDR_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_CMP_EventLoad_Config(Obj/FWlib_apt32f102_ept.o), (68 bytes). + Removing .text.EPT_AQCR_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_DB_Eventload_Config(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_TRGSRCX_Config(Obj/FWlib_apt32f102_ept.o), (136 bytes). + Removing .text.EPT_TRGSRCX_SWFTRG(Obj/FWlib_apt32f102_ept.o), (72 bytes). + Removing .text.EPT_Int_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Int_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Enable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_EMInt_Disable(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_Vector_Int_Enable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_Vector_Int_Disable(Obj/FWlib_apt32f102_ept.o), (12 bytes). + Removing .text.EPT_EPX_Config(Obj/FWlib_apt32f102_ept.o), (176 bytes). + Removing .text.EPT_EPIX_POL_Config(Obj/FWlib_apt32f102_ept.o), (24 bytes). + Removing .text.EPT_LKCR_TRG_Config(Obj/FWlib_apt32f102_ept.o), (120 bytes). + Removing .text.EPT_SHLOCK_OUTPUT_Config(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text.EPT_SLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_HLock_CLR(Obj/FWlib_apt32f102_ept.o), (20 bytes). + Removing .text.EPT_SW_Set_lock(Obj/FWlib_apt32f102_ept.o), (28 bytes). + Removing .text(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_rtc.o), (0 bytes). + Removing .text.RTC_RST_VALUE(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_ALM_IO_SET(Obj/FWlib_apt32f102_rtc.o), (64 bytes). + Removing .text.RTCCLK_CONFIG(Obj/FWlib_apt32f102_rtc.o), (72 bytes). + Removing .text.RTC_Function_Config(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Start(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_Stop(Obj/FWlib_apt32f102_rtc.o), (44 bytes). + Removing .text.RTC_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (68 bytes). + Removing .text.RTC_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (84 bytes). + Removing .text.RTC_Alarm_TIMR_DATR_SET(Obj/FWlib_apt32f102_rtc.o), (172 bytes). + Removing .text.RTC_AlarmA_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_AlarmB_TIMR_DATR_Read(Obj/FWlib_apt32f102_rtc.o), (60 bytes). + Removing .text.RTC_TRGSRC0_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC1_Config(Obj/FWlib_apt32f102_rtc.o), (40 bytes). + Removing .text.RTC_TRGSRC0_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_TRGSRC1_SWFTRG(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (20 bytes). + Removing .text.RTC_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_Vector_Int_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Enable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .text.RTC_WakeUp_Disable(Obj/FWlib_apt32f102_rtc.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_rtc.o), (8815 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_rtc.o), (494 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_rtc.o), (535 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_rtc.o), (192 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_rtc.o), (176 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_rtc.o), (606 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_rtc.o), (4854 bytes). + Removing .comment(Obj/FWlib_apt32f102_rtc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_rtc.o), (428 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_rtc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_rtc.o), (15 bytes). + Removing .text(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_adc.o), (0 bytes). + Removing .text.ADC12_RESET_VALUE(Obj/FWlib_apt32f102_adc.o), (100 bytes). + Removing .text.ADC12_Control(Obj/FWlib_apt32f102_adc.o), (16 bytes). + Removing .text.ADC12_CMD.part.0(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CLK_CMD(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC12_Software_Reset(Obj/FWlib_apt32f102_adc.o), (10 bytes). + Removing .text.ADC12_CMD(Obj/FWlib_apt32f102_adc.o), (40 bytes). + Removing .text.ADC12_ready_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_SEQEND_wait(Obj/FWlib_apt32f102_adc.o), (24 bytes). + Removing .text.ADC12_DATA_OUPUT(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_Configure_Mode(Obj/FWlib_apt32f102_adc.o), (124 bytes). + Removing .text.ADC12_Configure_VREF_Selecte(Obj/FWlib_apt32f102_adc.o), (408 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_ConversionChannel_Config(Obj/FWlib_apt32f102_adc.o), (384 bytes). + Removing .text.ADC12_Compare_statue(Obj/FWlib_apt32f102_adc.o), (44 bytes). + Removing .text.ADC_Int_Enable(Obj/FWlib_apt32f102_adc.o), (28 bytes). + Removing .text.ADC_Int_Disable(Obj/FWlib_apt32f102_adc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_adc.o), (8666 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_adc.o), (663 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_adc.o), (936 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_adc.o), (176 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_adc.o), (160 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_adc.o), (684 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_adc.o), (4962 bytes). + Removing .comment(Obj/FWlib_apt32f102_adc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_adc.o), (400 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_ifc.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_ifc.o), (1 bytes). + Removing .text.ChipErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.PageErase(Obj/FWlib_apt32f102_ifc.o), (36 bytes). + Removing .text.Page_ProgramData_int(Obj/FWlib_apt32f102_ifc.o), (156 bytes). + Removing .text.Page_ProgramData(Obj/FWlib_apt32f102_ifc.o), (160 bytes). + Removing .text.Page_ProgramData_U32(Obj/FWlib_apt32f102_ifc.o), (124 bytes). + Removing .text.ReadDataArry(Obj/FWlib_apt32f102_ifc.o), (46 bytes). + Removing .text.ReadDataArry_U8(Obj/FWlib_apt32f102_ifc.o), (42 bytes). + Removing .text.ReadDataArry_U32(Obj/FWlib_apt32f102_ifc.o), (22 bytes). + Removing .text.IFC_interrupt_CMD(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Enable(Obj/FWlib_apt32f102_ifc.o), (28 bytes). + Removing .text.IFC_Int_Disable(Obj/FWlib_apt32f102_ifc.o), (12 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_ifc.o), (9889 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_ifc.o), (525 bytes). + Removing .debug_loc(Obj/FWlib_apt32f102_ifc.o), (403 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_ifc.o), (112 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_ifc.o), (96 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_ifc.o), (470 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_ifc.o), (7611 bytes). + Removing .comment(Obj/FWlib_apt32f102_ifc.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_ifc.o), (268 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_ifc.o), (32 bytes). + Removing COMMON(Obj/FWlib_apt32f102_ifc.o), (4 bytes). + Removing .text(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_coret.o), (0 bytes). + Removing .text.CORET_DeInit(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Enable(Obj/FWlib_apt32f102_coret.o), (24 bytes). + Removing .text.CORET_Int_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Enable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_WakeUp_Disable(Obj/FWlib_apt32f102_coret.o), (12 bytes). + Removing .text.CORET_start(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_EX(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Enable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_reload(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .debug_info(Obj/FWlib_apt32f102_coret.o), (7132 bytes). + Removing .debug_abbrev(Obj/FWlib_apt32f102_coret.o), (295 bytes). + Removing .debug_aranges(Obj/FWlib_apt32f102_coret.o), (120 bytes). + Removing .debug_ranges(Obj/FWlib_apt32f102_coret.o), (104 bytes). + Removing .debug_line(Obj/FWlib_apt32f102_coret.o), (323 bytes). + Removing .debug_str(Obj/FWlib_apt32f102_coret.o), (2860 bytes). + Removing .comment(Obj/FWlib_apt32f102_coret.o), (67 bytes). + Removing .debug_frame(Obj/FWlib_apt32f102_coret.o), (208 bytes). + Removing .csky.attributes(Obj/FWlib_apt32f102_coret.o), (32 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (0 bytes). + Removing .bss(Obj/main.o), (7 bytes). + Removing .text(Obj/mcu_initial.o), (0 bytes). + Removing .data(Obj/mcu_initial.o), (0 bytes). + Removing .bss(Obj/mcu_initial.o), (0 bytes). + Removing .text.GPIO_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (108 bytes). + Removing .text.GPT0_CONFIG(Obj/mcu_initial.o), (2 bytes). + Removing .text.UART0_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART1_CONFIG(Obj/mcu_initial.o), (52 bytes). + Removing .text.UART2_CONFIG(Obj/mcu_initial.o), (36 bytes). + Removing .text.ADC12_CONFIG(Obj/mcu_initial.o), (114 bytes). + Removing .text.SIO_CONFIG(Obj/mcu_initial.o), (64 bytes). + Removing .text(Obj/mcu_interrupt.o), (0 bytes). + Removing .data(Obj/mcu_interrupt.o), (1 bytes). + Removing .text.SystemDesPtr(Obj/mcu_interrupt.o), (2 bytes). + Removing .text(Obj/drivers_apt32f102.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102.o), (0 bytes). + Removing .text.__modsi3(Obj/drivers_apt32f102.o), (36 bytes). + Removing .text(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .data(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .bss(Obj/drivers_apt32f102_ck801.o), (0 bytes). + Removing .text.CK801_Init(Obj/drivers_apt32f102_ck801.o), (108 bytes). + Removing .text.force_interrupt(Obj/drivers_apt32f102_ck801.o), (24 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (4 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (60 bytes). + Removing .text.UART2_RecvINT_Processing(Obj/SYSTEM_uart.o), (52 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (8 bytes). + Removing .text.UART2_TASK(Obj/SYSTEM_uart.o), (96 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (144 bytes). + Removing .text.Clear_SendFlag(Obj/SYSTEM_uart.o), (16 bytes). + Removing .text.BUS485_Jump_Boot(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text.Get_BUS485_Send_State(Obj/SYSTEM_uart.o), (28 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text.Dbg_Print_Buff(Obj/SYSTEM_uart.o), (2 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .text(Obj/SYSTEM_control_rly.o), (0 bytes). + Removing .data(Obj/SYSTEM_control_rly.o), (0 bytes). + Removing .bss(Obj/SYSTEM_control_rly.o), (0 bytes). + Removing .text.CheckSum2(Obj/SYSTEM_control_rly.o), (24 bytes). + Removing .text.BLV_WINDOUT_CMD_SET_Processing(Obj/SYSTEM_control_rly.o), (160 bytes). + Removing .text.set_vol(Obj/SYSTEM_control_rly.o), (124 bytes). + Removing .text(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_CheckSum(Obj/SYSTEM_eeprom.o), (22 bytes). + Removing .text.EEPROM_ReadPara(Obj/SYSTEM_eeprom.o), (428 bytes). + Removing .text.EEPROM_ValidateWrite(Obj/SYSTEM_eeprom.o), (116 bytes). + Removing .text.EEPROM_WritePara(Obj/SYSTEM_eeprom.o), (164 bytes). + Removing .text.EEPROM_ReadMCUDevInfo(Obj/SYSTEM_eeprom.o), (112 bytes). + Removing .text.EEPROM_WriteMCUDevInfo(Obj/SYSTEM_eeprom.o), (64 bytes). + Removing .text.EEPROM_Default_MCUDevInfo(Obj/SYSTEM_eeprom.o), (52 bytes). + Removing .text.EEPROM_Validate_MCUDevInfo(Obj/SYSTEM_eeprom.o), (88 bytes). + Removing .text.EEPROM_Init(Obj/SYSTEM_eeprom.o), (64 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_eeprom.o), (337 bytes). + Removing .debug_info(Obj/SYSTEM_eeprom.o), (9839 bytes). + Removing .debug_abbrev(Obj/SYSTEM_eeprom.o), (626 bytes). + Removing .debug_loc(Obj/SYSTEM_eeprom.o), (403 bytes). + Removing .debug_aranges(Obj/SYSTEM_eeprom.o), (96 bytes). + Removing .debug_ranges(Obj/SYSTEM_eeprom.o), (104 bytes). + Removing .debug_line(Obj/SYSTEM_eeprom.o), (806 bytes). + Removing .debug_str(Obj/SYSTEM_eeprom.o), (4683 bytes). + Removing .comment(Obj/SYSTEM_eeprom.o), (67 bytes). + Removing .debug_frame(Obj/SYSTEM_eeprom.o), (280 bytes). + Removing .csky.attributes(Obj/SYSTEM_eeprom.o), (32 bytes). + Removing COMMON(Obj/SYSTEM_eeprom.o), (37 bytes). + Removing .text(Obj/__rt_entry.o), (240 bytes). + Removing .data(Obj/__rt_entry.o), (0 bytes). + Removing .bss(Obj/__rt_entry.o), (0 bytes). + Removing .debug_line(Obj/__rt_entry.o), (131 bytes). + Removing .debug_info(Obj/__rt_entry.o), (125 bytes). + Removing .debug_abbrev(Obj/__rt_entry.o), (20 bytes). + Removing .debug_aranges(Obj/__rt_entry.o), (32 bytes). + Removing .csky.attributes(Obj/__rt_entry.o), (32 bytes). + Removing .text(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .bss(FWlib_apt32f102_tkey_c_1_17.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_c_1_17.o), (16 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_c_1_17.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_c_1_17.o), (32 bytes). + Removing .text.TK_IO_Enable(FWlib_apt32f102_tkey_c_1_17.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_c_1_17.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_c_1_17.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_c_1_17.o), (132 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_c_1_17.o), (52 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_c_1_17.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_c_1_17.o), (28 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_c_1_17.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_c_1_17.o), (384 bytes). + Removing .text(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .bss(FWlib_apt32f102_clkcalib.o), (0 bytes). + Removing .data(pow.o), (0 bytes). + Removing .bss(pow.o), (0 bytes). + Removing .data(fabs.o), (0 bytes). + Removing .bss(fabs.o), (0 bytes). + Removing .data(scalbn.o), (0 bytes). + Removing .bss(scalbn.o), (0 bytes). + Removing .data(sqrt.o), (0 bytes). + Removing .bss(sqrt.o), (0 bytes). + Removing .data(_csky_case_uqi.o), (0 bytes). + Removing .bss(_csky_case_uqi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_addsub_df.o), (0 bytes). + Removing .bss(_addsub_df.o), (0 bytes). + Removing .data(_mul_df.o), (0 bytes). + Removing .bss(_mul_df.o), (0 bytes). + Removing .data(_div_df.o), (0 bytes). + Removing .bss(_div_df.o), (0 bytes). + Removing .data(_gt_df.o), (0 bytes). + Removing .bss(_gt_df.o), (0 bytes). + Removing .data(_ge_df.o), (0 bytes). + Removing .bss(_ge_df.o), (0 bytes). + Removing .data(_le_df.o), (0 bytes). + Removing .bss(_le_df.o), (0 bytes). + Removing .data(_si_to_df.o), (0 bytes). + Removing .bss(_si_to_df.o), (0 bytes). + Removing .data(_df_to_si.o), (0 bytes). + Removing .bss(_df_to_si.o), (0 bytes). + Removing .text(_thenan_df.o), (0 bytes). + Removing .data(_thenan_df.o), (0 bytes). + Removing .bss(_thenan_df.o), (0 bytes). + Removing .data(_usi_to_df.o), (0 bytes). + Removing .bss(_usi_to_df.o), (0 bytes). + Removing .data(_muldi3.o), (0 bytes). + Removing .bss(_muldi3.o), (0 bytes). + Removing .data(_clzsi2.o), (0 bytes). + Removing .bss(_clzsi2.o), (0 bytes). + Removing .data(_pack_df.o), (0 bytes). + Removing .bss(_pack_df.o), (0 bytes). + Removing .data(_unpack_df.o), (0 bytes). + Removing .bss(_unpack_df.o), (0 bytes). + Removing .data(_fpcmp_parts_df.o), (0 bytes). + Removing .bss(_fpcmp_parts_df.o), (0 bytes). + Removing .text(_clz.o), (0 bytes). + Removing .data(_clz.o), (0 bytes). + Removing .bss(_clz.o), (0 bytes). + Removing .data(memset_fast.o), (0 bytes). + Removing .bss(memset_fast.o), (0 bytes). + Removing .data(memcpy_fast.o), (0 bytes). + Removing .bss(memcpy_fast.o), (0 bytes). + Removing .text(strncmp.o), (38 bytes). + Removing .data(strncmp.o), (0 bytes). + Removing .bss(strncmp.o), (0 bytes). + Removing .csky.attributes(strncmp.o), (32 bytes). + +633 unused seciton(s) (total 197032 bytes) removed from the image. + +====================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Type Size Section + FWlib_apt32f102_clkcalib.o 0x00000000 df 0 *ABS* + FWlib_apt32f102_tkey_c_1_17.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_ept.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_gpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_lpt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_control_rly.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/arch_crt0.o 0x00000000 df 0 *ABS* + Obj/arch_mem_init.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102.o 0x00000000 df 0 *ABS* + Obj/drivers_apt32f102_ck801.o 0x00000000 df 0 *ABS* + Obj/main.o 0x00000000 df 0 *ABS* + Obj/mcu_initial.o 0x00000000 df 0 *ABS* + Obj/mcu_interrupt.o 0x00000000 df 0 *ABS* + _addsub_df.o 0x00000000 df 0 *ABS* + _clzsi2.o 0x00000000 df 0 *ABS* + _csky_case_uqi.o 0x00000000 df 0 *ABS* + _df_to_si.o 0x00000000 df 0 *ABS* + _div_df.o 0x00000000 df 0 *ABS* + _fixunsdfsi.o 0x00000000 df 0 *ABS* + _fpcmp_parts_df.o 0x00000000 df 0 *ABS* + _ge_df.o 0x00000000 df 0 *ABS* + _gt_df.o 0x00000000 df 0 *ABS* + _le_df.o 0x00000000 df 0 *ABS* + _mul_df.o 0x00000000 df 0 *ABS* + _muldi3.o 0x00000000 df 0 *ABS* + _pack_df.o 0x00000000 df 0 *ABS* + _si_to_df.o 0x00000000 df 0 *ABS* + _unpack_df.o 0x00000000 df 0 *ABS* + _usi_to_df.o 0x00000000 df 0 *ABS* + fabs.o 0x00000000 df 0 *ABS* + memcpy_fast.o 0x00000000 df 0 *ABS* + memset_fast.o 0x00000000 df 0 *ABS* + pow.o 0x00000000 df 0 *ABS* + scalbn.o 0x00000000 df 0 *ABS* + sqrt.o 0x00000000 df 0 *ABS* + $d 0x00000000 0 .text + $t 0x0000010c 0 .text + INIT_KERLE_STACK 0x0000013e 0 .text + __to_main 0x00000146 0 .text + __dummy 0x00000182 0 .text + $d 0x00000186 0 .text + $d 0x000001b4 0 .text + $t 0x000001b4 0 .text + $d 0x00000578 0 .text + $t 0x000005e0 0 .text + $d 0x00000aa8 0 .text + $t 0x00000b58 0 .text + $d 0x00000b5e 0 .text + $t 0x00000b5e 0 .text + $d 0x00000b64 0 .text + $t 0x00000b64 0 .text + $d 0x00000b80 0 .text + $d 0x00000b84 0 .text + $t 0x00000b84 0 .text + $d 0x00000cf0 0 .text + $d 0x00000cfc 0 .text + $t 0x00000cfc 0 .text + $d 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d44 0 .text + _fpadd_parts 0x00000d48 F 724 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00001010 0 .text + $t 0x0000101c 0 .text + $d 0x00001084 0 .text + $t 0x00001084 0 .text + $d 0x000012ac 0 .text + $d 0x000012b8 0 .text + $t 0x000012b8 0 .text + $d 0x00001408 0 .text + $d 0x0000140c 0 .text + $t 0x0000140c 0 .text + $d 0x00001448 0 .text + $t 0x00001448 0 .text + $d 0x00001484 0 .text + $t 0x00001484 0 .text + $d 0x000014c0 0 .text + $t 0x000014c0 0 .text + $d 0x0000152c 0 .text + $d 0x00001530 0 .text + $t 0x00001530 0 .text + $d 0x0000159c 0 .text + $d 0x000015a0 0 .text + $t 0x000015a0 0 .text + $d 0x000015f4 0 .text + $t 0x000015f4 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x0000166c 0 .text + $d 0x00001678 0 .text + $t 0x00001678 0 .text + $d 0x00001800 0 .text + $d 0x00001814 0 .text + $t 0x00001814 0 .text + $d 0x000018cc 0 .text + $d 0x000018d8 0 .text + $t 0x000018d8 0 .text + $d 0x00001964 0 .text + $t 0x00001964 0 .text + $d 0x000019ec 0 .text + $t 0x000019ec 0 .text + $d 0x00001a50 0 .text.__main + $t 0x00001a50 0 .text.__main + $d 0x00001a74 0 .text.__main + SYSCON_General_CMD.part.0 0x00001a88 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001a88 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001a88 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001af4 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001afc 0 .text.SYSCON_RST_VALUE + $t 0x00001afc 0 .text.SYSCON_RST_VALUE + $d 0x00001b2c 0 .text.SYSCON_RST_VALUE + $d 0x00001b48 0 .text.SYSCON_General_CMD + $t 0x00001b48 0 .text.SYSCON_General_CMD + $d 0x00001b74 0 .text.SYSCON_General_CMD + $d 0x00001b78 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001b78 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001bf0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c00 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c00 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c24 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c28 0 .text.SYSCON_WDT_CMD + $t 0x00001c28 0 .text.SYSCON_WDT_CMD + $d 0x00001c58 0 .text.SYSCON_WDT_CMD + $d 0x00001c64 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001c64 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001c74 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001c78 0 .text.SYSCON_IWDCNT_Config + $t 0x00001c78 0 .text.SYSCON_IWDCNT_Config + $d 0x00001c88 0 .text.SYSCON_IWDCNT_Config + $d 0x00001c90 0 .text.SYSCON_LVD_Config + $t 0x00001c90 0 .text.SYSCON_LVD_Config + $d 0x00001ca8 0 .text.SYSCON_LVD_Config + $d 0x00001cb0 0 .text.LVD_Int_Enable + $t 0x00001cb0 0 .text.LVD_Int_Enable + $d 0x00001cc8 0 .text.LVD_Int_Enable + $d 0x00001ccc 0 .text.IWDT_Int_Enable + $t 0x00001ccc 0 .text.IWDT_Int_Enable + $d 0x00001ce4 0 .text.IWDT_Int_Enable + $d 0x00001ce8 0 .text.EXTI_trigger_CMD + $t 0x00001ce8 0 .text.EXTI_trigger_CMD + $d 0x00001d24 0 .text.EXTI_trigger_CMD + $d 0x00001d28 0 .text.EXTI_interrupt_CMD + $t 0x00001d28 0 .text.EXTI_interrupt_CMD + $d 0x00001d54 0 .text.EXTI_interrupt_CMD + $d 0x00001d5c 0 .text.GPIO_EXTI_interrupt + $t 0x00001d5c 0 .text.GPIO_EXTI_interrupt + $d 0x00001d60 0 .text.EXI4_Int_Enable + $t 0x00001d60 0 .text.EXI4_Int_Enable + $d 0x00001d6c 0 .text.EXI4_Int_Enable + $d 0x00001d70 0 .text.SYSCON_Int_Enable + $t 0x00001d70 0 .text.SYSCON_Int_Enable + $d 0x00001d78 0 .text.SYSCON_Int_Enable + $d 0x00001d7c 0 .text.SYSCON_Int_Disable + $t 0x00001d7c 0 .text.SYSCON_Int_Disable + $d 0x00001d84 0 .text.SYSCON_Int_Disable + $d 0x00001d88 0 .text.SYSCON_INT_Priority + $t 0x00001d88 0 .text.SYSCON_INT_Priority + $d 0x00001da0 0 .text.SYSCON_INT_Priority + $d 0x00001dac 0 .text.Set_INT_Priority + $t 0x00001dac 0 .text.Set_INT_Priority + $d 0x00001dd8 0 .text.Set_INT_Priority + $d 0x00001ddc 0 .text.GPIO_Init + $t 0x00001ddc 0 .text.GPIO_Init + $d 0x00001dee 0 .text.GPIO_Init + $t 0x00001df6 0 .text.GPIO_Init + $d 0x00001e52 0 .text.GPIO_Init + $t 0x00001e5a 0 .text.GPIO_Init + $d 0x00001ea8 0 .text.GPIO_Init + $d 0x00001ebc 0 .text.GPIO_PullHigh_Init + $t 0x00001ebc 0 .text.GPIO_PullHigh_Init + $d 0x00001ed0 0 .text.GPIO_DriveStrength_EN + $t 0x00001ed0 0 .text.GPIO_DriveStrength_EN + $d 0x00001ee0 0 .text.GPIO_IntGroup_Set + $t 0x00001ee0 0 .text.GPIO_IntGroup_Set + $d 0x00001fd4 0 .text.GPIO_IntGroup_Set + $d 0x00001fec 0 .text.GPIOA0_EXI_Init + $t 0x00001fec 0 .text.GPIOA0_EXI_Init + $d 0x00001ff8 0 .text.GPIOA0_EXI_Init + $t 0x00002008 0 .text.GPIOA0_EXI_Init + $d 0x000020e4 0 .text.GPIOA0_EXI_Init + $d 0x000020e8 0 .text.GPIO_Write_High + $t 0x000020e8 0 .text.GPIO_Write_High + $d 0x000020f0 0 .text.GPIO_Write_Low + $t 0x000020f0 0 .text.GPIO_Write_Low + $d 0x000020f8 0 .text.GPIO_Reverse + $t 0x000020f8 0 .text.GPIO_Reverse + $d 0x0000210e 0 .text.GPIO_Read_Status + $t 0x0000210e 0 .text.GPIO_Read_Status + $d 0x00002120 0 .text.LPT_Soft_Reset + $t 0x00002120 0 .text.LPT_Soft_Reset + $d 0x00002130 0 .text.LPT_Soft_Reset + $d 0x00002134 0 .text.WWDT_CNT_Load + $t 0x00002134 0 .text.WWDT_CNT_Load + $d 0x00002140 0 .text.WWDT_CNT_Load + $d 0x00002144 0 .text.BT_DeInit + $t 0x00002144 0 .text.BT_DeInit + $d 0x00002160 0 .text.BT_Start + $t 0x00002160 0 .text.BT_Start + $d 0x00002168 0 .text.BT_Soft_Reset + $t 0x00002168 0 .text.BT_Soft_Reset + $d 0x00002172 0 .text.BT_Configure + $t 0x00002172 0 .text.BT_Configure + $d 0x0000218a 0 .text.BT_ControlSet_Configure + $t 0x0000218a 0 .text.BT_ControlSet_Configure + $d 0x000021b6 0 .text.BT_Period_CMP_Write + $t 0x000021b6 0 .text.BT_Period_CMP_Write + $d 0x000021bc 0 .text.BT_ConfigInterrupt_CMD + $t 0x000021bc 0 .text.BT_ConfigInterrupt_CMD + $d 0x000021d0 0 .text.BT1_INT_ENABLE + $t 0x000021d0 0 .text.BT1_INT_ENABLE + $d 0x000021dc 0 .text.BT1_INT_ENABLE + $d 0x000021e0 0 .text.GPT_IO_Init + $t 0x000021e0 0 .text.GPT_IO_Init + $d 0x00002278 0 .text.GPT_IO_Init + $d 0x00002280 0 .text.GPT_Configure + $t 0x00002280 0 .text.GPT_Configure + $d 0x00002290 0 .text.GPT_Configure + $d 0x00002294 0 .text.GPT_WaveCtrl_Configure + $t 0x00002294 0 .text.GPT_WaveCtrl_Configure + $d 0x000022d4 0 .text.GPT_WaveCtrl_Configure + $d 0x000022d8 0 .text.GPT_WaveLoad_Configure + $t 0x000022d8 0 .text.GPT_WaveLoad_Configure + $d 0x000022e8 0 .text.GPT_WaveLoad_Configure + $d 0x000022ec 0 .text.GPT_WaveOut_Configure + $t 0x000022ec 0 .text.GPT_WaveOut_Configure + $d 0x0000239c 0 .text.GPT_WaveOut_Configure + $d 0x000023a0 0 .text.GPT_Start + $t 0x000023a0 0 .text.GPT_Start + $d 0x000023ac 0 .text.GPT_Start + $d 0x000023b0 0 .text.GPT_Period_CMP_Write + $t 0x000023b0 0 .text.GPT_Period_CMP_Write + $d 0x000023bc 0 .text.GPT_Period_CMP_Write + $d 0x000023c0 0 .text.GPT_ConfigInterrupt_CMD + $t 0x000023c0 0 .text.GPT_ConfigInterrupt_CMD + $d 0x000023d8 0 .text.GPT_ConfigInterrupt_CMD + $d 0x000023dc 0 .text.UART0_DeInit + $t 0x000023dc 0 .text.UART0_DeInit + $d 0x000023f0 0 .text.UART0_DeInit + $d 0x000023f4 0 .text.UART1_DeInit + $t 0x000023f4 0 .text.UART1_DeInit + $d 0x00002408 0 .text.UART1_DeInit + $d 0x0000240c 0 .text.UART2_DeInit + $t 0x0000240c 0 .text.UART2_DeInit + $d 0x00002420 0 .text.UART2_DeInit + $d 0x00002424 0 .text.UART1_Int_Enable + $t 0x00002424 0 .text.UART1_Int_Enable + $d 0x00002438 0 .text.UART1_Int_Enable + $d 0x00002440 0 .text.UART2_Int_Enable + $t 0x00002440 0 .text.UART2_Int_Enable + $d 0x00002454 0 .text.UART2_Int_Enable + $d 0x0000245c 0 .text.UART_IO_Init + $t 0x0000245c 0 .text.UART_IO_Init + $d 0x00002540 0 .text.UART_IO_Init + $d 0x00002548 0 .text.UARTInitRxTxIntEn + $t 0x00002548 0 .text.UARTInitRxTxIntEn + $d 0x00002554 0 .text.UARTInitRxTxIntEn + $d 0x00002558 0 .text.UARTTransmit + $t 0x00002558 0 .text.UARTTransmit + $d 0x00002578 0 .text.EPT_Stop + $t 0x00002578 0 .text.EPT_Stop + $d 0x00002598 0 .text.EPT_Stop + $d 0x000025a0 0 .text.startup.main + $t 0x000025a0 0 .text.startup.main + $d 0x000025c0 0 .text.startup.main + $d 0x000025c4 0 .text.delay_nms + $t 0x000025c4 0 .text.delay_nms + $d 0x000025f0 0 .text.delay_nus + $t 0x000025f0 0 .text.delay_nus + $d 0x00002614 0 .text.BT_CONFIG + $t 0x00002614 0 .text.BT_CONFIG + $d 0x0000266c 0 .text.BT_CONFIG + $d 0x00002674 0 .text.SYSCON_CONFIG + $t 0x00002674 0 .text.SYSCON_CONFIG + $d 0x000026d8 0 .text.APT32F102_init + $t 0x000026d8 0 .text.APT32F102_init + $d 0x00002718 0 .text.APT32F102_init + $d 0x00002724 0 .text.SYSCONIntHandler + $t 0x00002724 0 .text.SYSCONIntHandler + $d 0x00002810 0 .text.SYSCONIntHandler + $d 0x00002814 0 .text.IFCIntHandler + $t 0x00002814 0 .text.IFCIntHandler + $d 0x00002878 0 .text.IFCIntHandler + $d 0x0000287c 0 .text.ADCIntHandler + $t 0x0000287c 0 .text.ADCIntHandler + $d 0x000028e0 0 .text.ADCIntHandler + $d 0x000028e4 0 .text.EPT0IntHandler + $t 0x000028e4 0 .text.EPT0IntHandler + $d 0x00002a84 0 .text.EPT0IntHandler + $d 0x00002a90 0 .text.WWDTHandler + $t 0x00002a90 0 .text.WWDTHandler + $d 0x00002ac0 0 .text.WWDTHandler + $d 0x00002ac4 0 .text.GPT0IntHandler + $t 0x00002ac4 0 .text.GPT0IntHandler + $d 0x00002b40 0 .text.GPT0IntHandler + $d 0x00002b44 0 .text.RTCIntHandler + $t 0x00002b44 0 .text.RTCIntHandler + $d 0x00002bac 0 .text.RTCIntHandler + $d 0x00002bb4 0 .text.UART0IntHandler + $t 0x00002bb4 0 .text.UART0IntHandler + $d 0x00002bec 0 .text.UART0IntHandler + $d 0x00002bf0 0 .text.UART1IntHandler + $t 0x00002bf0 0 .text.UART1IntHandler + $d 0x00002c70 0 .text.UART1IntHandler + $d 0x00002c84 0 .text.UART2IntHandler + $t 0x00002c84 0 .text.UART2IntHandler + $d 0x00002ccc 0 .text.UART2IntHandler + $d 0x00002cd0 0 .text.SPI0IntHandler + $t 0x00002cd0 0 .text.SPI0IntHandler + $d 0x00002db4 0 .text.SPI0IntHandler + $d 0x00002db8 0 .text.SIO0IntHandler + $t 0x00002db8 0 .text.SIO0IntHandler + $d 0x00002e08 0 .text.SIO0IntHandler + $d 0x00002e0c 0 .text.EXI0IntHandler + $t 0x00002e0c 0 .text.EXI0IntHandler + $d 0x00002e38 0 .text.EXI0IntHandler + $d 0x00002e3c 0 .text.EXI1IntHandler + $t 0x00002e3c 0 .text.EXI1IntHandler + $d 0x00002e68 0 .text.EXI1IntHandler + $d 0x00002e6c 0 .text.EXI2to3IntHandler + $t 0x00002e6c 0 .text.EXI2to3IntHandler + $d 0x00002eb0 0 .text.EXI2to3IntHandler + $d 0x00002eb4 0 .text.EXI4to9IntHandler + $t 0x00002eb4 0 .text.EXI4to9IntHandler + $d 0x00002ed0 0 .text.EXI4to9IntHandler + $d 0x00002ed4 0 .text.EXI10to15IntHandler + $t 0x00002ed4 0 .text.EXI10to15IntHandler + $d 0x00002f3c 0 .text.EXI10to15IntHandler + $d 0x00002f40 0 .text.LPTIntHandler + $t 0x00002f40 0 .text.LPTIntHandler + $d 0x00002f70 0 .text.LPTIntHandler + $d 0x00002f74 0 .text.BT0IntHandler + $t 0x00002f74 0 .text.BT0IntHandler + $d 0x00002fbc 0 .text.BT0IntHandler + $d 0x00002fc0 0 .text.BT1IntHandler + $t 0x00002fc0 0 .text.BT1IntHandler + $d 0x00003028 0 .text.BT1IntHandler + $d 0x00003030 0 .text.PriviledgeVioHandler + $t 0x00003030 0 .text.PriviledgeVioHandler + $d 0x00003032 0 .text.PendTrapHandler + $t 0x00003032 0 .text.PendTrapHandler + $d 0x0000303a 0 .text.Trap3Handler + $t 0x0000303a 0 .text.Trap3Handler + $d 0x00003042 0 .text.Trap2Handler + $t 0x00003042 0 .text.Trap2Handler + $d 0x0000304a 0 .text.Trap1Handler + $t 0x0000304a 0 .text.Trap1Handler + $d 0x00003052 0 .text.Trap0Handler + $t 0x00003052 0 .text.Trap0Handler + $d 0x0000305a 0 .text.UnrecExecpHandler + $t 0x0000305a 0 .text.UnrecExecpHandler + $d 0x00003062 0 .text.BreakPointHandler + $t 0x00003062 0 .text.BreakPointHandler + $d 0x0000306a 0 .text.AccessErrHandler + $t 0x0000306a 0 .text.AccessErrHandler + $d 0x00003072 0 .text.IllegalInstrHandler + $t 0x00003072 0 .text.IllegalInstrHandler + $d 0x0000307a 0 .text.MisalignedHandler + $t 0x0000307a 0 .text.MisalignedHandler + $d 0x00003082 0 .text.CNTAIntHandler + $t 0x00003082 0 .text.CNTAIntHandler + $d 0x0000308a 0 .text.I2CIntHandler + $t 0x0000308a 0 .text.I2CIntHandler + $d 0x00003094 0 .text.__divsi3 + $t 0x00003094 0 .text.__divsi3 + $d 0x000030b4 0 .text.__divsi3 + $d 0x000030b8 0 .text.__udivsi3 + $t 0x000030b8 0 .text.__udivsi3 + $d 0x000030d8 0 .text.__udivsi3 + $d 0x000030dc 0 .text.__umodsi3 + $t 0x000030dc 0 .text.__umodsi3 + $d 0x000030fc 0 .text.__umodsi3 + $d 0x00003100 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00003100 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00003106 0 .text.CK_CPU_DisAllNormalIrq + $t 0x00003106 0 .text.CK_CPU_DisAllNormalIrq + $d 0x0000310c 0 .text.UARTx_Init + $t 0x0000310c 0 .text.UARTx_Init + $d 0x00003204 0 .text.UARTx_Init + $d 0x0000322c 0 .text.UART1_RecvINT_Processing + $t 0x0000322c 0 .text.UART1_RecvINT_Processing + $d 0x00003254 0 .text.UART1_RecvINT_Processing + $d 0x00003260 0 .text.UART1_TASK + $t 0x00003260 0 .text.UART1_TASK + $d 0x000032b0 0 .text.UART1_TASK + $d 0x000032c0 0 .text.BUS485_Send + $t 0x000032c0 0 .text.BUS485_Send + $d 0x00003370 0 .text.BUS485_Send + $d 0x00003384 0 .text.MultSend_Task + $t 0x00003384 0 .text.MultSend_Task + $d 0x000033e0 0 .text.MultSend_Task + $d 0x000033e8 0 .text.Set_GroupSend + $t 0x000033e8 0 .text.Set_GroupSend + $d 0x00003438 0 .text.Set_GroupSend + $d 0x00003444 0 .text.BUS485Send_Task + $t 0x00003444 0 .text.BUS485Send_Task + $d 0x00003468 0 .text.BUS485Send_Task + $d 0x00003470 0 .text.BusIdle_Task + $t 0x00003470 0 .text.BusIdle_Task + $d 0x000034a4 0 .text.BusIdle_Task + $d 0x000034ac 0 .text.BusBusy_Task + $t 0x000034ac 0 .text.BusBusy_Task + $d 0x000034f4 0 .text.BusBusy_Task + $d 0x00003500 0 .text.Dbg_Println + $t 0x00003500 0 .text.Dbg_Println + $d 0x0000350c 0 .text.DIP_GetSwitchState + $t 0x0000350c 0 .text.DIP_GetSwitchState + $d 0x0000353c 0 .text.DIP_GetSwitchState + $d 0x00003540 0 .text.DIP_Switch_Init + $t 0x00003540 0 .text.DIP_Switch_Init + $d 0x000035c0 0 .text.DIP_Switch_Init + $d 0x000035cc 0 .text.DIP_ScanTask + $t 0x000035cc 0 .text.DIP_ScanTask + $d 0x0000364c 0 .text.DIP_ScanTask + $d 0x00003658 0 .text.Relay_Init + $t 0x00003658 0 .text.Relay_Init + $d 0x00003710 0 .text.Relay_Init + $d 0x00003724 0 .text.CheckSum + $t 0x00003724 0 .text.CheckSum + $d 0x0000373c 0 .text.Change_OUTV + $t 0x0000373c 0 .text.Change_OUTV + $d 0x00003750 0 .text.Change_OUTV + $d 0x00003758 0 .text.BLV_VolOut_Ctrl + $t 0x00003758 0 .text.BLV_VolOut_Ctrl + $d 0x000037d4 0 .text.BLV_VolOut_Ctrl + $d 0x000037e8 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x000037e8 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x0000385c 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x00003864 0 .text.BLV_RLY_Task + $t 0x00003864 0 .text.BLV_RLY_Task + $d 0x000038b0 0 .text.BLV_RLY_Task + $d 0x000038b8 0 .text.BLV_A9RLY_CMD_SET_Processing + $t 0x000038b8 0 .text.BLV_A9RLY_CMD_SET_Processing + $d 0x0000394c 0 .text.BLV_A9RLY_CMD_SET_Processing + $d 0x00003954 0 .text.BLV_A9RLY_CMD_READ_Processing + $t 0x00003954 0 .text.BLV_A9RLY_CMD_READ_Processing + $d 0x000039c4 0 .text.BLV_A9RLY_CMD_READ_Processing + $d 0x000039cc 0 .text.BLV_RLY_RS485_Pro + $t 0x000039cc 0 .text.BLV_RLY_RS485_Pro + $d 0x00003a64 0 .text.BLV_RLY_RS485_Pro + $d 0x00003a7c 0 .text.TK_Sampling_prog + $t 0x00003a7c 0 .text.TK_Sampling_prog + $d 0x00003ac4 0 .text.TK_Sampling_prog + $d 0x00003ad4 0 .text.TKEYIntHandler + $t 0x00003ad4 0 .text.TKEYIntHandler + $d 0x00003b50 0 .text.TKEYIntHandler + $d 0x00003b5c 0 .text.get_key_number + $t 0x00003b5c 0 .text.get_key_number + $d 0x00003b80 0 .text.get_key_number + $d 0x00003b84 0 .text.TK_Scan_Start + $t 0x00003b84 0 .text.TK_Scan_Start + $d 0x00003b9c 0 .text.TK_Scan_Start + $d 0x00003ba4 0 .text.TK_Keymap_prog + $t 0x00003ba4 0 .text.TK_Keymap_prog + $d 0x00003cec 0 .text.TK_Keymap_prog + $d 0x00003d24 0 .text.TK_overflow_predict + $t 0x00003d24 0 .text.TK_overflow_predict + $d 0x00003e0c 0 .text.TK_overflow_predict + $d 0x00003e40 0 .text.TK_Baseline_tracking + $t 0x00003e40 0 .text.TK_Baseline_tracking + $d 0x00003fe4 0 .text.TK_Baseline_tracking + $d 0x00004010 0 .text.TK_result_prog + $t 0x00004010 0 .text.TK_result_prog + $d 0x00004050 0 .text.TK_result_prog + $d 0x00004064 0 .text.CORETHandler + $t 0x00004064 0 .text.CORETHandler + $d 0x000040c4 0 .text.CORETHandler + $d 0x000040dc 0 .text.std_clk_calib + $t 0x000040dc 0 .text.std_clk_calib + $d 0x00004324 0 .text.std_clk_calib + bp 0x00004360 O 16 .rodata + dp_l 0x00004370 O 16 .rodata + dp_h 0x00004380 O 16 .rodata + NUM.6030 0x2000009c O 1 .bss + update_20ms.5936 0x200000b8 O 4 .bss + + Global Symbols + + Symbol Name Value Type Size Section + vector_table 0x00000000 0 .text + __start 0x0000010c 0 .text + __exit 0x00000160 0 .text + __fail 0x00000176 0 .text + DummyHandler 0x00000184 0 .text + __GI_pow 0x000001b4 F 2474 .text + pow 0x000001b4 F 2474 .text + __GI_fabs 0x00000b5e F 6 .text + fabs 0x00000b5e F 6 .text + __GI_scalbn 0x00000b64 F 32 .text + scalbn 0x00000b64 F 32 .text + __GI_sqrt 0x00000b84 F 376 .text + sqrt 0x00000b84 F 376 .text + ___gnu_csky_case_uqi 0x00000cfc F 20 .text + __fixunsdfsi 0x00000d10 F 56 .text + __adddf3 0x0000101c F 46 .text + __subdf3 0x0000104c F 54 .text + __muldf3 0x00001084 F 564 .text + __divdf3 0x000012b8 F 340 .text + __gtdf2 0x0000140c F 60 .text + __gedf2 0x00001448 F 60 .text + __ledf2 0x00001484 F 58 .text + __floatsidf 0x000014c0 F 112 .text + __fixdfsi 0x00001530 F 112 .text + __floatunsidf 0x000015a0 F 84 .text + __muldi3 0x000015f4 F 68 .text + __clzsi2 0x00001638 F 64 .text + __pack_d 0x00001678 F 412 .text + __unpack_d 0x00001814 F 196 .text + __fpcmp_parts_d 0x000018d8 F 140 .text + __memset_fast 0x00001964 w F 136 .text + memset 0x00001964 w F 136 .text + __memcpy_fast 0x000019ec w F 100 .text + memcpy 0x000019ec w F 100 .text + __main 0x00001a50 F 56 .text.__main + SYSCON_RST_VALUE 0x00001afc F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001b48 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001b78 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c00 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c28 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001c64 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001c78 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001c90 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001cb0 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001ccc F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001ce8 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00001d28 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00001d5c F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00001d60 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00001d70 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x00001d7c F 12 .text.SYSCON_Int_Disable + SYSCON_INT_Priority 0x00001d88 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001dac F 48 .text.Set_INT_Priority + GPIO_Init 0x00001ddc F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001ebc F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001ed0 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001ee0 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00001fec F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x000020e8 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x000020f0 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x000020f8 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x0000210e F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x00002120 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002134 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002144 F 28 .text.BT_DeInit + BT_Start 0x00002160 F 8 .text.BT_Start + BT_Soft_Reset 0x00002168 F 10 .text.BT_Soft_Reset + BT_Configure 0x00002172 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000218a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x000021b6 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x000021bc F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x000021d0 F 16 .text.BT1_INT_ENABLE + GPT_IO_Init 0x000021e0 F 160 .text.GPT_IO_Init + GPT_Configure 0x00002280 F 20 .text.GPT_Configure + GPT_WaveCtrl_Configure 0x00002294 F 68 .text.GPT_WaveCtrl_Configure + GPT_WaveLoad_Configure 0x000022d8 F 20 .text.GPT_WaveLoad_Configure + GPT_WaveOut_Configure 0x000022ec F 180 .text.GPT_WaveOut_Configure + GPT_Start 0x000023a0 F 16 .text.GPT_Start + GPT_Period_CMP_Write 0x000023b0 F 16 .text.GPT_Period_CMP_Write + GPT_ConfigInterrupt_CMD 0x000023c0 F 28 .text.GPT_ConfigInterrupt_CMD + UART0_DeInit 0x000023dc F 24 .text.UART0_DeInit + UART1_DeInit 0x000023f4 F 24 .text.UART1_DeInit + UART2_DeInit 0x0000240c F 24 .text.UART2_DeInit + UART1_Int_Enable 0x00002424 F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00002440 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x0000245c F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00002548 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002558 F 30 .text.UARTTransmit + EPT_Stop 0x00002578 F 40 .text.EPT_Stop + main 0x000025a0 F 36 .text.startup.main + delay_nms 0x000025c4 F 44 .text.delay_nms + delay_nus 0x000025f0 F 34 .text.delay_nus + BT_CONFIG 0x00002614 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002674 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x000026d8 F 76 .text.APT32F102_init + SYSCONIntHandler 0x00002724 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002814 F 104 .text.IFCIntHandler + ADCIntHandler 0x0000287c F 104 .text.ADCIntHandler + EPT0IntHandler 0x000028e4 F 428 .text.EPT0IntHandler + WWDTHandler 0x00002a90 F 52 .text.WWDTHandler + GPT0IntHandler 0x00002ac4 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00002b44 F 112 .text.RTCIntHandler + UART0IntHandler 0x00002bb4 F 60 .text.UART0IntHandler + UART1IntHandler 0x00002bf0 F 148 .text.UART1IntHandler + UART2IntHandler 0x00002c84 F 76 .text.UART2IntHandler + SPI0IntHandler 0x00002cd0 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00002db8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00002e0c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00002e3c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00002e6c F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00002eb4 F 32 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00002ed4 F 108 .text.EXI10to15IntHandler + LPTIntHandler 0x00002f40 F 52 .text.LPTIntHandler + BT0IntHandler 0x00002f74 F 76 .text.BT0IntHandler + BT1IntHandler 0x00002fc0 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00003030 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00003032 F 8 .text.PendTrapHandler + Trap3Handler 0x0000303a F 8 .text.Trap3Handler + Trap2Handler 0x00003042 F 8 .text.Trap2Handler + Trap1Handler 0x0000304a F 8 .text.Trap1Handler + Trap0Handler 0x00003052 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000305a F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00003062 F 8 .text.BreakPointHandler + AccessErrHandler 0x0000306a F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00003072 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x0000307a F 8 .text.MisalignedHandler + CNTAIntHandler 0x00003082 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000308a F 8 .text.I2CIntHandler + __divsi3 0x00003094 F 36 .text.__divsi3 + __udivsi3 0x000030b8 F 36 .text.__udivsi3 + __umodsi3 0x000030dc F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00003100 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x00003106 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x0000310c F 288 .text.UARTx_Init + UART1_RecvINT_Processing 0x0000322c F 52 .text.UART1_RecvINT_Processing + UART1_TASK 0x00003260 F 96 .text.UART1_TASK + BUS485_Send 0x000032c0 F 196 .text.BUS485_Send + MultSend_Task 0x00003384 F 100 .text.MultSend_Task + Set_GroupSend 0x000033e8 F 92 .text.Set_GroupSend + BUS485Send_Task 0x00003444 F 44 .text.BUS485Send_Task + BusIdle_Task 0x00003470 F 60 .text.BusIdle_Task + BusBusy_Task 0x000034ac F 84 .text.BusBusy_Task + Dbg_Println 0x00003500 F 12 .text.Dbg_Println + DIP_GetSwitchState 0x0000350c F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x00003540 F 140 .text.DIP_Switch_Init + DIP_ScanTask 0x000035cc F 140 .text.DIP_ScanTask + Relay_Init 0x00003658 F 196 .text.Relay_Init + CheckSum 0x00003724 F 22 .text.CheckSum + Change_OUTV 0x0000373c F 28 .text.Change_OUTV + BLV_VolOut_Ctrl 0x00003758 F 144 .text.BLV_VolOut_Ctrl + BLV_RLY_Ctrl_Purpose 0x000037e8 F 124 .text.BLV_RLY_Ctrl_Purpose + BLV_RLY_Task 0x00003864 F 84 .text.BLV_RLY_Task + BLV_A9RLY_CMD_SET_Processing 0x000038b8 F 156 .text.BLV_A9RLY_CMD_SET_Processing + BLV_A9RLY_CMD_READ_Processing 0x00003954 F 120 .text.BLV_A9RLY_CMD_READ_Processing + BLV_RLY_RS485_Pro 0x000039cc F 176 .text.BLV_RLY_RS485_Pro + TK_Sampling_prog 0x00003a7c F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00003ad4 F 136 .text.TKEYIntHandler + get_key_number 0x00003b5c F 40 .text.get_key_number + TK_Scan_Start 0x00003b84 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00003ba4 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00003d24 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00003e40 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00004010 F 84 .text.TK_result_prog + CORETHandler 0x00004064 F 120 .text.CORETHandler + std_clk_calib 0x000040dc F 644 .text.std_clk_calib + __thenan_df 0x00004390 O 20 .rodata + __clz_tab 0x000043a4 O 256 .rodata + _end_rodata 0x00004560 0 .rodata + HWD 0x20000000 O 4 .data + _start_data 0x20000000 0 .data + CRC 0x20000004 O 4 .data + BT1 0x20000008 O 4 .data + BT0 0x2000000c O 4 .data + WWDT 0x20000010 O 4 .data + LPT 0x20000014 O 4 .data + RTC 0x20000018 O 4 .data + ETCB 0x2000001c O 4 .data + EPT0 0x20000020 O 4 .data + GPT0 0x20000024 O 4 .data + CA0 0x20000028 O 4 .data + SIO0 0x2000002c O 4 .data + I2C0 0x20000030 O 4 .data + SPI0 0x20000034 O 4 .data + UART2 0x20000038 O 4 .data + UART1 0x2000003c O 4 .data + UART0 0x20000040 O 4 .data + GPIOGRP 0x20000044 O 4 .data + GPIOB0 0x20000048 O 4 .data + GPIOA0 0x2000004c O 4 .data + ADC0 0x20000050 O 4 .data + TKEYBUF 0x20000054 O 4 .data + TKEY 0x20000058 O 4 .data + SYSCON 0x2000005c O 4 .data + IFC 0x20000060 O 4 .data + CK801 0x20000064 O 4 .data + s_tkey 0x20000068 O 4 .data + samp_setover_f 0x2000006c O 1 .data + tk_overflow_en 0x2000006d O 1 .data + tk_div 0x2000006e O 34 .data + neg_build_bounce 0x20000090 O 1 .data + pos_build_bounce 0x20000091 O 1 .data + tk_scan_para0 0x20000094 O 4 .data + scan_step_temp 0x20000098 O 1 .data + _end_data 0x2000009c 0 .data + _bss_start 0x2000009c 0 .bss + SysTick_100us 0x200000a0 O 4 .bss + SysTick_1ms 0x200000a4 O 4 .bss + RS485_Comming 0x200000a8 O 4 .bss + RS485_Comm_Flag 0x200000ac O 4 .bss + RS485_Comm_Start 0x200000b0 O 4 .bss + RS485_Comm_End 0x200000b4 O 4 .bss + Press_debounce_data 0x200000bc O 1 .bss + TK_Lowpower_mode 0x200000bd O 1 .bss + TK_Lowpower_level 0x200000be O 1 .bss + TK_longpress_time 0x200000c0 O 4 .bss + Release_debounce_data 0x200000c4 O 1 .bss + Key_mode 0x200000c5 O 1 .bss + TK_icon 0x200000c6 O 34 .bss + MultiTimes_Filter 0x200000e8 O 1 .bss + Base_Speed 0x200000e9 O 1 .bss + TK_IO_ENABLE 0x200000ec O 4 .bss + Valid_Key_Num 0x200000f0 O 1 .bss + TK_senprd 0x200000f2 O 34 .bss + TK_Wakeup_level 0x20000114 O 1 .bss + TK_Triggerlevel 0x20000116 O 34 .bss + TK_EC_LEVEL 0x20000138 O 2 .bss + TK_FVR_LEVEL 0x2000013a O 2 .bss + TK_BaseCnt 0x2000013c O 4 .bss + TK_PSEL_MODE 0x20000140 O 2 .bss + R_CMPB_BUF 0x20000144 O 4 .bss + R_CMPA_BUF 0x20000148 O 4 .bss + R_SIORX_buf 0x2000014c O 40 .bss + g_uart 0x20000174 O 160 .bss + g_uart1 0x20000214 O 160 .bss + m_send 0x200002b4 O 164 .bss + g_Dip 0x20000358 O 16 .bss + c_rly 0x20000368 O 22 .bss + baseline_data0 0x20000380 O 34 .bss + TK_Postive_build2 0x200003a2 O 17 .bss + Key_Map1 0x200003b4 O 4 .bss + offset_data2_abs 0x200003b8 O 34 .bss + scan_f 0x200003da O 1 .bss + offset_data1_abs 0x200003dc O 34 .bss + Release_debounce0 0x200003fe O 17 .bss + Key_Map0 0x20000410 O 4 .bss + bsae_over_f 0x20000414 O 1 .bss + scan_cnt 0x20000416 O 2 .bss + Press_debounce0 0x20000418 O 17 .bss + offset_data0 0x2000042a O 34 .bss + sampling_data1 0x2000044c O 34 .bss + Key_Map2 0x20000470 O 4 .bss + Release_debounce1 0x20000474 O 17 .bss + tk_overflow_f 0x20000485 O 1 .bss + TK_Negtive_build2 0x20000486 O 17 .bss + base_update_f 0x20000497 O 1 .bss + TK_Postive_build1 0x20000498 O 17 .bss + time_cnt 0x200004ac O 4 .bss + lpt_scan_pend_cnt 0x200004b0 O 2 .bss + TK_track_cnt 0x200004b2 O 1 .bss + Key_Map 0x200004b4 O 4 .bss + baseline_data1 0x200004b8 O 34 .bss + TK_Postive_build0 0x200004da O 17 .bss + sampling_data2 0x200004ec O 34 .bss + offset_data1 0x2000050e O 34 .bss + TK_ovrdect_cnt 0x20000530 O 1 .bss + Press_debounce2 0x20000531 O 17 .bss + TK_Negtive_build1 0x20000542 O 17 .bss + tk_num 0x20000553 O 1 .bss + TK_Negtive_build0 0x20000554 O 17 .bss + Press_debounce1 0x20000565 O 17 .bss + Release_debounce2 0x20000576 O 17 .bss + r_Key_Map_Temp 0x20000588 O 4 .bss + tk_seque 0x2000058c O 17 .bss + scan_step 0x2000059d O 1 .bss + baseline_data2 0x2000059e O 34 .bss + tk_sampling_max 0x200005c0 O 34 .bss + offset_data0_abs 0x200005e2 O 34 .bss + offset_data2 0x20000604 O 34 .bss + sampling_data0 0x20000626 O 34 .bss + _ebss 0x20000648 0 .bss + _end 0x20000648 0 .bss + end 0x20000648 0 .bss + __kernel_stack 0x20000ff8 0 .text + + (w:Weak d:Deubg F:Function f:File name O:Zero) + + +====================================================================== + +Memory Map of the image + + Image Entry point : 0x0000010c + + Region ROM (Base: 0x00000000, Size: 0x00004560, Max: 0x00010000) + + Base Addr Size Type Attr Idx Section Name Object + 0x00000000 0x000001b4 Code RO 16 .text Obj/arch_crt0.o + 0x000001b4 0x000009aa Code RO 1003 .text pow.o + 0x00000b5e 0x00000006 Code RO 1011 .text fabs.o + 0x00000b64 0x00000020 Code RO 1017 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1024 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1035 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1040 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1047 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1054 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1061 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1068 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1075 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1082 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1089 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1096 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1110 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1117 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1124 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1130 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1137 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1144 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1165 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1170 .text memcpy_fast.o + 0x00001a50 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001a88 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001afc 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001b48 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001b78 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c00 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c28 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001c64 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001c78 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c90 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cb0 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001ccc 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001ce8 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d28 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d5c 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00001d60 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d70 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d7c 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x00001d88 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001dac 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001ddc 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001ebc 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001ed0 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001ee0 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00001fec 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x000020e8 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x000020f0 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x000020f8 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x0000210e 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00002120 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002134 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002144 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00002160 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00002168 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00002172 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000218a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x000021b6 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x000021bc 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x000021d0 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x000021e0 0x000000a0 Code RO 340 .text.GPT_IO_Init Obj/FWlib_apt32f102_gpt.o + 0x00002280 0x00000014 Code RO 341 .text.GPT_Configure Obj/FWlib_apt32f102_gpt.o + 0x00002294 0x00000044 Code RO 342 .text.GPT_WaveCtrl_Configure Obj/FWlib_apt32f102_gpt.o + 0x000022d8 0x00000014 Code RO 343 .text.GPT_WaveLoad_Configure Obj/FWlib_apt32f102_gpt.o + 0x000022ec 0x000000b4 Code RO 344 .text.GPT_WaveOut_Configure Obj/FWlib_apt32f102_gpt.o + 0x000023a0 0x00000010 Code RO 353 .text.GPT_Start Obj/FWlib_apt32f102_gpt.o + 0x000023b0 0x00000010 Code RO 360 .text.GPT_Period_CMP_Write Obj/FWlib_apt32f102_gpt.o + 0x000023c0 0x0000001c Code RO 365 .text.GPT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_gpt.o + 0x000023dc 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000023f4 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x0000240c 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002424 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002440 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000245c 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002548 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002558 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00002578 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000025a0 0x00000024 Code RO 690 .text.startup.main Obj/main.o + 0x000025c4 0x0000002c Code RO 707 .text.delay_nms Obj/mcu_initial.o + 0x000025f0 0x00000022 Code RO 708 .text.delay_nus Obj/mcu_initial.o + 0x00002614 0x00000060 Code RO 712 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002674 0x00000062 Code RO 718 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x000026d8 0x0000004c Code RO 719 .text.APT32F102_init Obj/mcu_initial.o + 0x00002724 0x000000f0 Code RO 735 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002814 0x00000068 Code RO 736 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x0000287c 0x00000068 Code RO 737 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x000028e4 0x000001ac Code RO 738 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00002a90 0x00000034 Code RO 739 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00002ac4 0x00000080 Code RO 740 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00002b44 0x00000070 Code RO 741 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00002bb4 0x0000003c Code RO 742 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00002bf0 0x00000094 Code RO 743 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00002c84 0x0000004c Code RO 744 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00002cd0 0x000000e8 Code RO 745 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00002db8 0x00000054 Code RO 746 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00002e0c 0x00000030 Code RO 747 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00002e3c 0x00000030 Code RO 748 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00002e6c 0x00000048 Code RO 749 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00002eb4 0x00000020 Code RO 750 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00002ed4 0x0000006c Code RO 751 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00002f40 0x00000034 Code RO 752 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00002f74 0x0000004c Code RO 753 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00002fc0 0x00000070 Code RO 754 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00003030 0x00000002 Code RO 755 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00003032 0x00000008 Code RO 757 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000303a 0x00000008 Code RO 758 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00003042 0x00000008 Code RO 759 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000304a 0x00000008 Code RO 760 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00003052 0x00000008 Code RO 761 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000305a 0x00000008 Code RO 762 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00003062 0x00000008 Code RO 763 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x0000306a 0x00000008 Code RO 764 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00003072 0x00000008 Code RO 765 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x0000307a 0x00000008 Code RO 766 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00003082 0x00000008 Code RO 767 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000308a 0x00000008 Code RO 768 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003094 0x00000024 Code RO 785 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000030b8 0x00000024 Code RO 786 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000030dc 0x00000024 Code RO 788 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00003100 0x00000006 Code RO 806 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003106 0x00000006 Code RO 807 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000310c 0x00000120 Code RO 821 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x0000322c 0x00000034 Code RO 823 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003260 0x00000060 Code RO 824 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x000032c0 0x000000c4 Code RO 830 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00003384 0x00000064 Code RO 831 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x000033e8 0x0000005c Code RO 832 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x00003444 0x0000002c Code RO 835 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00003470 0x0000003c Code RO 837 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000034ac 0x00000054 Code RO 838 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00003500 0x0000000c Code RO 840 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x0000350c 0x00000034 Code RO 858 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x00003540 0x0000008c Code RO 859 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x000035cc 0x0000008c Code RO 860 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00003658 0x000000cc Code RO 878 .text.Relay_Init Obj/SYSTEM_control_rly.o + 0x00003724 0x00000016 Code RO 879 .text.CheckSum Obj/SYSTEM_control_rly.o + 0x0000373c 0x0000001c Code RO 881 .text.Change_OUTV Obj/SYSTEM_control_rly.o + 0x00003758 0x00000090 Code RO 882 .text.BLV_VolOut_Ctrl Obj/SYSTEM_control_rly.o + 0x000037e8 0x0000007c Code RO 883 .text.BLV_RLY_Ctrl_Purpose Obj/SYSTEM_control_rly.o + 0x00003864 0x00000054 Code RO 884 .text.BLV_RLY_Task Obj/SYSTEM_control_rly.o + 0x000038b8 0x0000009c Code RO 885 .text.BLV_A9RLY_CMD_SET_Processing Obj/SYSTEM_control_rly.o + 0x00003954 0x00000078 Code RO 886 .text.BLV_A9RLY_CMD_READ_Processing Obj/SYSTEM_control_rly.o + 0x000039cc 0x000000b0 Code RO 888 .text.BLV_RLY_RS485_Pro Obj/SYSTEM_control_rly.o + 0x00003a7c 0x00000058 Code RO 949 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00003ad4 0x00000088 Code RO 953 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00003b5c 0x00000028 Code RO 954 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00003b84 0x00000020 Code RO 956 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00003ba4 0x00000180 Code RO 957 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00003d24 0x0000011c Code RO 958 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00003e40 0x000001d0 Code RO 959 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00004010 0x00000054 Code RO 960 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00004064 0x00000078 Code RO 961 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000040dc 0x00000284 Code RO 983 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00004360 0x00000030 Data RO 1006 .rodata pow.o + 0x00004390 0x00000014 Data RO 1106 .rodata _thenan_df.o + 0x000043a4 0x00000100 Data RO 1154 .rodata _clz.o + 0x000044a4 0x0000000b Data RO 691 .rodata.str1.1 Obj/main.o + 0x000044af 0x0000000c Data RO 861 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x000044bb 0x000000a4 Data RO 890 .rodata.str1.1 Obj/SYSTEM_control_rly.o + 0x0000455f 0x00000001 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000648, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 783 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000031 Data RW 940 .data FWlib_apt32f102_tkey_c_1_17.o + 0x20000099 0x00000003 PAD + 0x2000009c 0x0000000c Zero RW 734 .bss Obj/mcu_interrupt.o + 0x200000a8 0x00000010 Zero RW 820 .bss Obj/SYSTEM_uart.o + 0x200000b8 0x00000004 Zero RW 857 .bss Obj/SYSTEM_dip_switch.o + 0x200000bc 0x00000086 Zero RW 703 COMMON Obj/main.o + 0x20000142 0x00000002 PAD + 0x20000144 0x00000030 Zero RW 781 COMMON Obj/mcu_interrupt.o + 0x20000174 0x000001e4 Zero RW 854 COMMON Obj/SYSTEM_uart.o + 0x20000358 0x00000010 Zero RW 874 COMMON Obj/SYSTEM_dip_switch.o + 0x20000368 0x00000016 Zero RW 903 COMMON Obj/SYSTEM_control_rly.o + 0x2000037e 0x00000002 PAD + 0x20000380 0x000002c8 Zero RW 979 COMMON FWlib_apt32f102_tkey_c_1_17.o + + Region *default* (Base: 0x00000000, Size: 0x00000000, Max: 0xffffffff) + + +====================================================================== + +Image component sizes + + Code RO Data RW Data ZI Data Debug Object Name + + 0 0 0 0 0 linker stubs + 436 0 0 0 286 Obj/arch_crt0.o + 56 0 0 0 820 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 852 0 0 0 21127 Obj/FWlib_apt32f102_syscon.o + 832 0 0 0 13094 Obj/FWlib_apt32f102_gpio.o + 20 0 0 0 13494 Obj/FWlib_apt32f102_lpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_crc.o + 16 0 0 0 8327 Obj/FWlib_apt32f102_wwdt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_countera.o + 0 0 0 0 0 Obj/FWlib_apt32f102_et.o + 154 0 0 0 11840 Obj/FWlib_apt32f102_bt.o + 508 0 0 0 21406 Obj/FWlib_apt32f102_gpt.o + 0 0 0 0 0 Obj/FWlib_apt32f102_sio.o + 0 0 0 0 0 Obj/FWlib_apt32f102_spi.o + 410 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 40 0 0 0 28174 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_adc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_ifc.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 36 11 0 134 11713 Obj/main.o + 348 0 0 0 15894 Obj/mcu_initial.o + 2414 0 0 60 14791 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1024 0 0 500 15080 Obj/SYSTEM_uart.o + 332 12 0 20 10898 Obj/SYSTEM_dip_switch.o + 1058 164 0 22 14912 Obj/SYSTEM_control_rly.o + 0 0 0 0 0 Obj/SYSTEM_eeprom.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 8656 187 104 736 230275 Object Totals + 4 1 3 4 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_c_1_16P0.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 1632 0 49 712 16345 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 1632 0 49 712 16345 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102ClkCalib_1_03.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 644 0 0 0 8675 FWlib_apt32f102_clkcalib.o + ------------------------------------------------------------ + 644 0 0 0 8675 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libm.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 2474 48 0 0 0 pow.o + 6 0 0 0 0 fabs.o + 32 0 0 0 0 scalbn.o + 376 0 0 0 0 sqrt.o + ------------------------------------------------------------ + 2888 48 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/ck801\libgcc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 20 0 0 0 0 _csky_case_uqi.o + 56 0 0 0 0 _fixunsdfsi.o + 826 0 0 0 0 _addsub_df.o + 564 0 0 0 0 _mul_df.o + 340 0 0 0 0 _div_df.o + 60 0 0 0 0 _gt_df.o + 60 0 0 0 0 _ge_df.o + 58 0 0 0 0 _le_df.o + 112 0 0 0 0 _si_to_df.o + 112 0 0 0 0 _df_to_si.o + 0 20 0 0 0 _thenan_df.o + 84 0 0 0 0 _usi_to_df.o + 68 0 0 0 0 _muldi3.o + 64 0 0 0 0 _clzsi2.o + 412 0 0 0 0 _pack_df.o + 196 0 0 0 0 _unpack_df.o + 140 0 0 0 0 _fpcmp_parts_df.o + 0 256 0 0 0 _clz.o + ------------------------------------------------------------ + 3172 276 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: d:/app/cdkrepo/toolchain/ckv2elfminilib/v3.10.29/r/bin/../lib/gcc/csky-elfabiv2/6.3.0/../../../../csky-elfabiv2/lib/ck801\libc.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + 0 0 0 0 0 strncmp.o + ------------------------------------------------------------ + 236 0 0 0 0 Library Totals + 0 0 0 0 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + +====================================================================== + + + Code RO Data RW Data ZI Data Debug + 17232 512 156 1452 255295 Grand Totals + 17232 512 156 1452 255295 Elf Image Totals + 17232 512 156 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 17744 ( 17.33kB) +Total RW Size (RW Data + ZI Data) 1608 ( 1.57kB) +Total ROM Size (Code + RO Data + RW Data) 17900 ( 17.48kB) + +====================================================================== diff --git a/BLV_CS_AC100_V05/Source/MD203F8P.mk b/BLV_CS_AC100_V05/Source/MD203F8P.mk new file mode 100644 index 0000000..5c1f0ee --- /dev/null +++ b/BLV_CS_AC100_V05/Source/MD203F8P.mk @@ -0,0 +1,273 @@ +## +## Auto Generated makefile by CDK +## Do not modify this file, and any manual changes will be erased!!! +## +## BuildSet +ProjectName :=MD203F8P +ConfigurationName :=BuildSet +WorkspacePath :=./ +ProjectPath :=./ +IntermediateDirectory :=Obj +OutDir :=$(IntermediateDirectory) +User :=jane +Date :=06/01/2026 +CDKPath :=D:/app/CDK +ToolchainPath :=D:/app/CDKRepo/Toolchain/CKV2ElfMinilib/V3.10.29/R/ +LinkerName :=csky-elfabiv2-gcc +LinkerNameoption := +SIZE :=csky-elfabiv2-size +READELF :=csky-elfabiv2-readelf +CHECKSUM :=crc32 +SharedObjectLinkerName := +ObjectSuffix :=.o +DependSuffix :=.d +PreprocessSuffix :=.i +DisassemSuffix :=.asm +IHexSuffix :=.ihex +BinSuffix :=.bin +ExeSuffix :=.elf +LibSuffix :=.a +DebugSwitch :=-g +IncludeSwitch :=-I +LibrarySwitch :=-l +OutputSwitch :=-o +ElfInfoSwitch :=-hlS +LibraryPathSwitch :=-L +PreprocessorSwitch :=-D +UnPreprocessorSwitch :=-U +SourceSwitch :=-c +ObjdumpSwitch :=-S +ObjcopySwitch :=-O ihex +ObjcopyBinSwitch :=-O binary +OutputFile :=BLV_CS_AC100_V05 +ObjectSwitch :=-o +ArchiveOutputSwitch := +PreprocessOnlySwitch :=-E +PreprocessOnlyDisableLineSwitch :=-P +ObjectsFileList :=$(IntermediateDirectory)/MD203F8P.txt +MakeDirCommand :=mkdir +LinkOptions := -mcpu=ck801 -nostartfiles -Wl,--gc-sections -T"$(ProjectPath)/ckcpu.ld" -pipe +LinkOtherFlagsOption := -Wl,--ckmap=$(ProjectPath)/Lst/$(OutputFile).map +IncludePackagePath := +IncludeCPath := $(IncludeSwitch)D:/app/CDK/CSKY/csi/csi_core/csi_cdk/ $(IncludeSwitch)D:/app/CDK/CSKY/csi/csi_core/include/ $(IncludeSwitch)D:/app/CDK/CSKY/csi/csi_driver/include/ $(IncludeSwitch). $(IncludeSwitch)SYSTEM/inc $(IncludeSwitch)include +IncludeAPath := $(IncludeSwitch)D:/app/CDK/CSKY/csi/csi_core/csi_cdk/ $(IncludeSwitch)D:/app/CDK/CSKY/csi/csi_core/include/ $(IncludeSwitch)D:/app/CDK/CSKY/csi/csi_driver/include/ $(IncludeSwitch). $(IncludeSwitch)SYSTEM $(IncludeSwitch)SYSTEM/inc +Libs := -Wl,--start-group -Wl,--end-group $(LibrarySwitch)_102TKey_c_1_16P0 $(LibrarySwitch)_102ClkCalib_1_03 $(LibrarySwitch)m +ArLibs := "lib_102TKey_c_1_16P0" "lib_102ClkCalib_1_03" "libm" +PackagesLibPath := +LibPath :=$(LibraryPathSwitch). $(PackagesLibPath) + +## +## Common variables +## AR, CXX, CC, AS, CXXFLAGS and CFLAGS can be overriden using an environment variables +## +AR :=csky-elfabiv2-ar rcu +CXX :=csky-elfabiv2-g++ +CC :=csky-elfabiv2-gcc +AS :=csky-elfabiv2-gcc +OBJDUMP :=csky-elfabiv2-objdump +OBJCOPY :=csky-elfabiv2-objcopy +CXXFLAGS :=-mcpu=ck801 $(PreprocessorSwitch)CONFIG_CSKY_MMU=0 $(UnPreprocessorSwitch)__CSKY_ABIV2__ -Os -g -ffunction-sections -mistack -pipe +CFLAGS :=-mcpu=ck801 $(PreprocessorSwitch)CONFIG_CSKY_MMU=0 $(UnPreprocessorSwitch)__CSKY_ABIV2__ -Os -g -ffunction-sections -mistack -pipe +ASFLAGS :=-mcpu=ck801 $(PreprocessorSwitch)CONFIG_CKCPU_MMU=0 $(UnPreprocessorSwitch)__CSKY_ABIV2__ -Wa,-gdwarf-2 -pipe +PreprocessFlags :=-mcpu=ck801 $(PreprocessorSwitch)CONFIG_CSKY_MMU=0 $(UnPreprocessorSwitch)__CSKY_ABIV2__ -Os -g -ffunction-sections -mistack -pipe + + +Objects0=$(IntermediateDirectory)/arch_crt0$(ObjectSuffix) $(IntermediateDirectory)/arch_mem_init$(ObjectSuffix) $(IntermediateDirectory)/arch_apt32f102_iostring$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_syscon$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_gpio$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_lpt$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_crc$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_wwdt$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_countera$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_et$(ObjectSuffix) \ + $(IntermediateDirectory)/FWlib_apt32f102_bt$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_gpt$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_sio$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_spi$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_uart$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_i2c$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_ept$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_rtc$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_adc$(ObjectSuffix) $(IntermediateDirectory)/FWlib_apt32f102_ifc$(ObjectSuffix) \ + $(IntermediateDirectory)/FWlib_apt32f102_coret$(ObjectSuffix) $(IntermediateDirectory)/main$(ObjectSuffix) $(IntermediateDirectory)/mcu_initial$(ObjectSuffix) $(IntermediateDirectory)/mcu_interrupt$(ObjectSuffix) $(IntermediateDirectory)/drivers_apt32f102$(ObjectSuffix) $(IntermediateDirectory)/drivers_apt32f102_ck801$(ObjectSuffix) $(IntermediateDirectory)/SYSTEM_uart$(ObjectSuffix) $(IntermediateDirectory)/SYSTEM_dip_switch$(ObjectSuffix) $(IntermediateDirectory)/SYSTEM_eeprom$(ObjectSuffix) $(IntermediateDirectory)/SYSTEM_det_energy$(ObjectSuffix) \ + $(IntermediateDirectory)/SYSTEM_Bootload_fun$(ObjectSuffix) $(IntermediateDirectory)/SYSTEM_fram_i2c$(ObjectSuffix) $(IntermediateDirectory)/__rt_entry$(ObjectSuffix) + + + +Objects=$(Objects0) + +## +## Main Build Targets +## +.PHONY: all +all: $(IntermediateDirectory)/$(OutputFile) + +$(IntermediateDirectory)/$(OutputFile): $(Objects) Always_Link + $(LinkerName) $(OutputSwitch) $(IntermediateDirectory)/$(OutputFile)$(ExeSuffix) $(LinkerNameoption) -Wl,--ckmap=$(ProjectPath)/Lst/$(OutputFile).map @$(ObjectsFileList) $(LinkOptions) $(LibPath) $(Libs) $(LinkOtherFlagsOption) + -@mv $(ProjectPath)/Lst/$(OutputFile).map $(ProjectPath)/Lst/$(OutputFile).temp && $(READELF) $(ElfInfoSwitch) $(ProjectPath)/Obj/$(OutputFile)$(ExeSuffix) > $(ProjectPath)/Lst/$(OutputFile).map && echo ====================================================================== >> $(ProjectPath)/Lst/$(OutputFile).map && cat $(ProjectPath)/Lst/$(OutputFile).temp >> $(ProjectPath)/Lst/$(OutputFile).map && rm -rf $(ProjectPath)/Lst/$(OutputFile).temp + $(OBJCOPY) $(ObjcopySwitch) $(ProjectPath)/$(IntermediateDirectory)/$(OutputFile)$(ExeSuffix) $(ProjectPath)/Obj/$(OutputFile)$(IHexSuffix) + $(OBJDUMP) $(ObjdumpSwitch) $(ProjectPath)/$(IntermediateDirectory)/$(OutputFile)$(ExeSuffix) > $(ProjectPath)/Lst/$(OutputFile)$(DisassemSuffix) + @echo size of target: + @$(SIZE) $(ProjectPath)$(IntermediateDirectory)/$(OutputFile)$(ExeSuffix) + @echo -n checksum value of target: + @$(CHECKSUM) $(ProjectPath)/$(IntermediateDirectory)/$(OutputFile)$(ExeSuffix) + @MD203F8P.modify.bat $(IntermediateDirectory) $(OutputFile)$(ExeSuffix) + +Always_Link: + + +## +## Objects +## +$(IntermediateDirectory)/arch_crt0$(ObjectSuffix): arch/crt0.S + $(AS) $(SourceSwitch) arch/crt0.S $(ASFLAGS) -MMD -MP -MT$(IntermediateDirectory)/arch_crt0$(ObjectSuffix) -MF$(IntermediateDirectory)/arch_crt0$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/arch_crt0$(ObjectSuffix) $(IncludeAPath) $(IncludePackagePath) +Lst/arch_crt0$(PreprocessSuffix): arch/crt0.S + $(CC) $(CFLAGS)$(IncludeAPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/arch_crt0$(PreprocessSuffix) arch/crt0.S + +$(IntermediateDirectory)/arch_mem_init$(ObjectSuffix): arch/mem_init.c + $(CC) $(SourceSwitch) arch/mem_init.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/arch_mem_init$(ObjectSuffix) -MF$(IntermediateDirectory)/arch_mem_init$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/arch_mem_init$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/arch_mem_init$(PreprocessSuffix): arch/mem_init.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/arch_mem_init$(PreprocessSuffix) arch/mem_init.c + +$(IntermediateDirectory)/arch_apt32f102_iostring$(ObjectSuffix): arch/apt32f102_iostring.c + $(CC) $(SourceSwitch) arch/apt32f102_iostring.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/arch_apt32f102_iostring$(ObjectSuffix) -MF$(IntermediateDirectory)/arch_apt32f102_iostring$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/arch_apt32f102_iostring$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/arch_apt32f102_iostring$(PreprocessSuffix): arch/apt32f102_iostring.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/arch_apt32f102_iostring$(PreprocessSuffix) arch/apt32f102_iostring.c + +$(IntermediateDirectory)/FWlib_apt32f102_syscon$(ObjectSuffix): FWlib/apt32f102_syscon.c + $(CC) $(SourceSwitch) FWlib/apt32f102_syscon.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_syscon$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_syscon$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_syscon$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_syscon$(PreprocessSuffix): FWlib/apt32f102_syscon.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_syscon$(PreprocessSuffix) FWlib/apt32f102_syscon.c + +$(IntermediateDirectory)/FWlib_apt32f102_gpio$(ObjectSuffix): FWlib/apt32f102_gpio.c + $(CC) $(SourceSwitch) FWlib/apt32f102_gpio.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_gpio$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_gpio$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_gpio$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_gpio$(PreprocessSuffix): FWlib/apt32f102_gpio.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_gpio$(PreprocessSuffix) FWlib/apt32f102_gpio.c + +$(IntermediateDirectory)/FWlib_apt32f102_lpt$(ObjectSuffix): FWlib/apt32f102_lpt.c + $(CC) $(SourceSwitch) FWlib/apt32f102_lpt.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_lpt$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_lpt$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_lpt$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_lpt$(PreprocessSuffix): FWlib/apt32f102_lpt.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_lpt$(PreprocessSuffix) FWlib/apt32f102_lpt.c + +$(IntermediateDirectory)/FWlib_apt32f102_crc$(ObjectSuffix): FWlib/apt32f102_crc.c + $(CC) $(SourceSwitch) FWlib/apt32f102_crc.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_crc$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_crc$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_crc$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_crc$(PreprocessSuffix): FWlib/apt32f102_crc.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_crc$(PreprocessSuffix) FWlib/apt32f102_crc.c + +$(IntermediateDirectory)/FWlib_apt32f102_wwdt$(ObjectSuffix): FWlib/apt32f102_wwdt.c + $(CC) $(SourceSwitch) FWlib/apt32f102_wwdt.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_wwdt$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_wwdt$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_wwdt$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_wwdt$(PreprocessSuffix): FWlib/apt32f102_wwdt.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_wwdt$(PreprocessSuffix) FWlib/apt32f102_wwdt.c + +$(IntermediateDirectory)/FWlib_apt32f102_countera$(ObjectSuffix): FWlib/apt32f102_countera.c + $(CC) $(SourceSwitch) FWlib/apt32f102_countera.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_countera$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_countera$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_countera$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_countera$(PreprocessSuffix): FWlib/apt32f102_countera.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_countera$(PreprocessSuffix) FWlib/apt32f102_countera.c + +$(IntermediateDirectory)/FWlib_apt32f102_et$(ObjectSuffix): FWlib/apt32f102_et.c + $(CC) $(SourceSwitch) FWlib/apt32f102_et.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_et$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_et$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_et$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_et$(PreprocessSuffix): FWlib/apt32f102_et.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_et$(PreprocessSuffix) FWlib/apt32f102_et.c + +$(IntermediateDirectory)/FWlib_apt32f102_bt$(ObjectSuffix): FWlib/apt32f102_bt.c + $(CC) $(SourceSwitch) FWlib/apt32f102_bt.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_bt$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_bt$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_bt$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_bt$(PreprocessSuffix): FWlib/apt32f102_bt.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_bt$(PreprocessSuffix) FWlib/apt32f102_bt.c + +$(IntermediateDirectory)/FWlib_apt32f102_gpt$(ObjectSuffix): FWlib/apt32f102_gpt.c + $(CC) $(SourceSwitch) FWlib/apt32f102_gpt.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_gpt$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_gpt$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_gpt$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_gpt$(PreprocessSuffix): FWlib/apt32f102_gpt.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_gpt$(PreprocessSuffix) FWlib/apt32f102_gpt.c + +$(IntermediateDirectory)/FWlib_apt32f102_sio$(ObjectSuffix): FWlib/apt32f102_sio.c + $(CC) $(SourceSwitch) FWlib/apt32f102_sio.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_sio$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_sio$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_sio$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_sio$(PreprocessSuffix): FWlib/apt32f102_sio.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_sio$(PreprocessSuffix) FWlib/apt32f102_sio.c + +$(IntermediateDirectory)/FWlib_apt32f102_spi$(ObjectSuffix): FWlib/apt32f102_spi.c + $(CC) $(SourceSwitch) FWlib/apt32f102_spi.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_spi$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_spi$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_spi$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_spi$(PreprocessSuffix): FWlib/apt32f102_spi.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_spi$(PreprocessSuffix) FWlib/apt32f102_spi.c + +$(IntermediateDirectory)/FWlib_apt32f102_uart$(ObjectSuffix): FWlib/apt32f102_uart.c + $(CC) $(SourceSwitch) FWlib/apt32f102_uart.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_uart$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_uart$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_uart$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_uart$(PreprocessSuffix): FWlib/apt32f102_uart.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_uart$(PreprocessSuffix) FWlib/apt32f102_uart.c + +$(IntermediateDirectory)/FWlib_apt32f102_i2c$(ObjectSuffix): FWlib/apt32f102_i2c.c + $(CC) $(SourceSwitch) FWlib/apt32f102_i2c.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_i2c$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_i2c$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_i2c$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_i2c$(PreprocessSuffix): FWlib/apt32f102_i2c.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_i2c$(PreprocessSuffix) FWlib/apt32f102_i2c.c + +$(IntermediateDirectory)/FWlib_apt32f102_ept$(ObjectSuffix): FWlib/apt32f102_ept.c + $(CC) $(SourceSwitch) FWlib/apt32f102_ept.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_ept$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_ept$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_ept$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_ept$(PreprocessSuffix): FWlib/apt32f102_ept.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_ept$(PreprocessSuffix) FWlib/apt32f102_ept.c + +$(IntermediateDirectory)/FWlib_apt32f102_rtc$(ObjectSuffix): FWlib/apt32f102_rtc.c + $(CC) $(SourceSwitch) FWlib/apt32f102_rtc.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_rtc$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_rtc$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_rtc$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_rtc$(PreprocessSuffix): FWlib/apt32f102_rtc.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_rtc$(PreprocessSuffix) FWlib/apt32f102_rtc.c + +$(IntermediateDirectory)/FWlib_apt32f102_adc$(ObjectSuffix): FWlib/apt32f102_adc.c + $(CC) $(SourceSwitch) FWlib/apt32f102_adc.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_adc$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_adc$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_adc$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_adc$(PreprocessSuffix): FWlib/apt32f102_adc.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_adc$(PreprocessSuffix) FWlib/apt32f102_adc.c + +$(IntermediateDirectory)/FWlib_apt32f102_ifc$(ObjectSuffix): FWlib/apt32f102_ifc.c + $(CC) $(SourceSwitch) FWlib/apt32f102_ifc.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_ifc$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_ifc$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_ifc$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_ifc$(PreprocessSuffix): FWlib/apt32f102_ifc.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_ifc$(PreprocessSuffix) FWlib/apt32f102_ifc.c + +$(IntermediateDirectory)/FWlib_apt32f102_coret$(ObjectSuffix): FWlib/apt32f102_coret.c + $(CC) $(SourceSwitch) FWlib/apt32f102_coret.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_coret$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_coret$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_coret$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_coret$(PreprocessSuffix): FWlib/apt32f102_coret.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_coret$(PreprocessSuffix) FWlib/apt32f102_coret.c + +$(IntermediateDirectory)/main$(ObjectSuffix): main.c + $(CC) $(SourceSwitch) main.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/main$(ObjectSuffix) -MF$(IntermediateDirectory)/main$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/main$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/main$(PreprocessSuffix): main.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/main$(PreprocessSuffix) main.c + +$(IntermediateDirectory)/mcu_initial$(ObjectSuffix): mcu_initial.c + $(CC) $(SourceSwitch) mcu_initial.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/mcu_initial$(ObjectSuffix) -MF$(IntermediateDirectory)/mcu_initial$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/mcu_initial$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/mcu_initial$(PreprocessSuffix): mcu_initial.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/mcu_initial$(PreprocessSuffix) mcu_initial.c + +$(IntermediateDirectory)/mcu_interrupt$(ObjectSuffix): mcu_interrupt.c + $(CC) $(SourceSwitch) mcu_interrupt.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/mcu_interrupt$(ObjectSuffix) -MF$(IntermediateDirectory)/mcu_interrupt$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/mcu_interrupt$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/mcu_interrupt$(PreprocessSuffix): mcu_interrupt.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/mcu_interrupt$(PreprocessSuffix) mcu_interrupt.c + +$(IntermediateDirectory)/drivers_apt32f102$(ObjectSuffix): drivers/apt32f102.c + $(CC) $(SourceSwitch) drivers/apt32f102.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/drivers_apt32f102$(ObjectSuffix) -MF$(IntermediateDirectory)/drivers_apt32f102$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/drivers_apt32f102$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/drivers_apt32f102$(PreprocessSuffix): drivers/apt32f102.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/drivers_apt32f102$(PreprocessSuffix) drivers/apt32f102.c + +$(IntermediateDirectory)/drivers_apt32f102_ck801$(ObjectSuffix): drivers/apt32f102_ck801.c + $(CC) $(SourceSwitch) drivers/apt32f102_ck801.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/drivers_apt32f102_ck801$(ObjectSuffix) -MF$(IntermediateDirectory)/drivers_apt32f102_ck801$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/drivers_apt32f102_ck801$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/drivers_apt32f102_ck801$(PreprocessSuffix): drivers/apt32f102_ck801.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/drivers_apt32f102_ck801$(PreprocessSuffix) drivers/apt32f102_ck801.c + +$(IntermediateDirectory)/SYSTEM_uart$(ObjectSuffix): SYSTEM/uart.c + $(CC) $(SourceSwitch) SYSTEM/uart.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/SYSTEM_uart$(ObjectSuffix) -MF$(IntermediateDirectory)/SYSTEM_uart$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/SYSTEM_uart$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/SYSTEM_uart$(PreprocessSuffix): SYSTEM/uart.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/SYSTEM_uart$(PreprocessSuffix) SYSTEM/uart.c + +$(IntermediateDirectory)/SYSTEM_dip_switch$(ObjectSuffix): SYSTEM/dip_switch.c + $(CC) $(SourceSwitch) SYSTEM/dip_switch.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/SYSTEM_dip_switch$(ObjectSuffix) -MF$(IntermediateDirectory)/SYSTEM_dip_switch$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/SYSTEM_dip_switch$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/SYSTEM_dip_switch$(PreprocessSuffix): SYSTEM/dip_switch.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/SYSTEM_dip_switch$(PreprocessSuffix) SYSTEM/dip_switch.c + +$(IntermediateDirectory)/SYSTEM_eeprom$(ObjectSuffix): SYSTEM/eeprom.c + $(CC) $(SourceSwitch) SYSTEM/eeprom.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/SYSTEM_eeprom$(ObjectSuffix) -MF$(IntermediateDirectory)/SYSTEM_eeprom$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/SYSTEM_eeprom$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/SYSTEM_eeprom$(PreprocessSuffix): SYSTEM/eeprom.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/SYSTEM_eeprom$(PreprocessSuffix) SYSTEM/eeprom.c + +$(IntermediateDirectory)/SYSTEM_det_energy$(ObjectSuffix): SYSTEM/det_energy.c + $(CC) $(SourceSwitch) SYSTEM/det_energy.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/SYSTEM_det_energy$(ObjectSuffix) -MF$(IntermediateDirectory)/SYSTEM_det_energy$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/SYSTEM_det_energy$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/SYSTEM_det_energy$(PreprocessSuffix): SYSTEM/det_energy.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/SYSTEM_det_energy$(PreprocessSuffix) SYSTEM/det_energy.c + +$(IntermediateDirectory)/SYSTEM_Bootload_fun$(ObjectSuffix): SYSTEM/Bootload_fun.c + $(CC) $(SourceSwitch) SYSTEM/Bootload_fun.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/SYSTEM_Bootload_fun$(ObjectSuffix) -MF$(IntermediateDirectory)/SYSTEM_Bootload_fun$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/SYSTEM_Bootload_fun$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/SYSTEM_Bootload_fun$(PreprocessSuffix): SYSTEM/Bootload_fun.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/SYSTEM_Bootload_fun$(PreprocessSuffix) SYSTEM/Bootload_fun.c + +$(IntermediateDirectory)/SYSTEM_fram_i2c$(ObjectSuffix): SYSTEM/fram_i2c.c + $(CC) $(SourceSwitch) SYSTEM/fram_i2c.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/SYSTEM_fram_i2c$(ObjectSuffix) -MF$(IntermediateDirectory)/SYSTEM_fram_i2c$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/SYSTEM_fram_i2c$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/SYSTEM_fram_i2c$(PreprocessSuffix): SYSTEM/fram_i2c.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/SYSTEM_fram_i2c$(PreprocessSuffix) SYSTEM/fram_i2c.c + + +$(IntermediateDirectory)/__rt_entry$(ObjectSuffix): $(IntermediateDirectory)/__rt_entry$(DependSuffix) + @$(AS) $(SourceSwitch) $(ProjectPath)/$(IntermediateDirectory)/__rt_entry.S $(ASFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/__rt_entry$(ObjectSuffix) $(IncludeAPath) +$(IntermediateDirectory)/__rt_entry$(DependSuffix): + @$(CC) $(CFLAGS) $(IncludeAPath) -MG -MP -MT$(IntermediateDirectory)/__rt_entry$(ObjectSuffix) -MF$(IntermediateDirectory)/__rt_entry$(DependSuffix) -MM $(ProjectPath)/$(IntermediateDirectory)/__rt_entry.S + +-include $(IntermediateDirectory)/*$(DependSuffix) diff --git a/BLV_CS_AC100_V05/Source/MD203F8P.modify.bat b/BLV_CS_AC100_V05/Source/MD203F8P.modify.bat new file mode 100644 index 0000000..fc3c788 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/MD203F8P.modify.bat @@ -0,0 +1,3 @@ +@echo off +SET PATH=%Systemroot%\System32;%PATH% +forfiles.exe -P "%1" -M %2 -C "cmd /c echo %1/%2 is modified at: @fdate @ftime" | findstr modified diff --git a/BLV_CS_AC100_V05/Source/MD203F8P.txt b/BLV_CS_AC100_V05/Source/MD203F8P.txt new file mode 100644 index 0000000..e39585e --- /dev/null +++ b/BLV_CS_AC100_V05/Source/MD203F8P.txt @@ -0,0 +1 @@ +Obj/arch_crt0.o Obj/arch_mem_init.o Obj/arch_apt32f102_iostring.o Obj/FWlib_apt32f102_syscon.o Obj/FWlib_apt32f102_gpio.o Obj/FWlib_apt32f102_lpt.o Obj/FWlib_apt32f102_crc.o Obj/FWlib_apt32f102_wwdt.o Obj/FWlib_apt32f102_countera.o Obj/FWlib_apt32f102_et.o Obj/FWlib_apt32f102_bt.o Obj/FWlib_apt32f102_gpt.o Obj/FWlib_apt32f102_sio.o Obj/FWlib_apt32f102_spi.o Obj/FWlib_apt32f102_uart.o Obj/FWlib_apt32f102_i2c.o Obj/FWlib_apt32f102_ept.o Obj/FWlib_apt32f102_rtc.o Obj/FWlib_apt32f102_adc.o Obj/FWlib_apt32f102_ifc.o Obj/FWlib_apt32f102_coret.o Obj/main.o Obj/mcu_initial.o Obj/mcu_interrupt.o Obj/drivers_apt32f102.o Obj/drivers_apt32f102_ck801.o Obj/SYSTEM_uart.o Obj/SYSTEM_rc522.o Obj/SYSTEM_logic_ctrl.o Obj/SYSTEM_button.o Obj/__rt_entry.o \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/Makefile b/BLV_CS_AC100_V05/Source/Makefile new file mode 100644 index 0000000..dc3cb84 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Makefile @@ -0,0 +1,8 @@ +.PHONY: clean All + +All: + @echo "----------Building project:[ apt32f102 - BuildSet ]----------" + @cd "C:\Users\yupp.APT-HZ\Desktop\APT32F102_Release_V0_50_20190715\Source" && make -f "apt32f102.mk" +clean: + @echo "----------Cleaning project:[ apt32f102 - BuildSet ]----------" + @cd "C:\Users\yupp.APT-HZ\Desktop\APT32F102_Release_V0_50_20190715\Source" && make -f "apt32f102.mk" clean diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201.elf b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201.elf new file mode 100644 index 0000000..592f236 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201.elf differ diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201.ihex b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201.ihex new file mode 100644 index 0000000..8d424cd --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201.ihex @@ -0,0 +1,2344 @@ +:100000000C010000D64C0000C64C0000840100002A +:10001000CE4C00008C4C000084010000BE4C00005F +:10002000B64C00008401000084010000840100003F +:1000300084010000840100008401000084010000AC +:10004000AE4C0000A64C00009E4C0000964C0000F8 +:10005000840100008401000084010000840100008C +:10006000840100008401000084010000840100007C +:100070008401000084010000840100008E4C000017 +:100080008C7300004843000038440000A044000086 +:100090000845000084010000B4460000684A0000E2 +:1000A000984A0000E8460000840100008401000036 +:1000B00068470000D847000038480000CC480000DE +:1000C00084010000E64C0000840100002C4900007F +:1000D000144A0000C84A0000104B0000304B0000DA +:1000E000DE4C0000FC6D00009C4B00008401000011 +:1000F000D04B00001C4C0000840100008401000073 +:100100000500AA550000000000000000003000318A +:100110000032003300340035003600375B1002C077 +:10012000216400C02260A83A02C020643810003266 +:1001300040B1F8109F6FCF5F04338D5F003503240B +:10014000A0B41865FD0B1410C17B036C036C8FEA1F +:10015000130013100078036C036C036C036C036CC6 +:100160009010436DA0B400C021602F1001C02B641B +:100170002E10003020B02E1001C02B642D10003046 +:1001800020B0FA07F90700000000000090EF00E03F +:10019000F80F00205C360000600100000441000000 +:1001A00000300020FFFF0000FF0F0000EEEE000017 +:1001B000EE0E0000D4142D1460B86143814B42B898 +:1001C000906C403AC36D876D030800E86204A1415A +:1001D000A14D550049650C0896640308403808088D +:1001E0000965060892640E08029840380B0C429884 +:1001F00060981F6C5B6C00E09109036D136C0D142B +:100200009414DF3E510C2101002905654B08620161 +:10021000002B0D65490C545404018060343A2108C8 +:100220003433CA6042988D704B6C4C7002984264B3 +:100230003B08013184680233495B0298403841B879 +:100240006208510192641F082F015460C46D403F41 +:100250002D08609800324F6C003000E07709CE071F +:10026000229840394E0814314A60936C86700B6CAA +:1002700004701264030C00E87104013184680230D8 +:10028000695861B82002526425088098DF3C030851 +:1002900000E807049F6CDB6C0030250200E08C0A4C +:1002A000AD070232CB070032C9076902002B4D654A +:1002B0000098080CDF38030800E8EF030034003131 +:1002C0009E07DF38FC0F0034436C803278424C606C +:1002D00096078033174340980A6408089F6CDB6CCC +:1002E0001F6C5B6C00E04E09890776022098C6649B +:1002F0000A08DF3E08081F6C5B6C00E045047E07BF +:10030000003361B81F6C5B6C83B800E02A04403F87 +:10031000036D63982608403D050C424602030A64BB +:1003200020084098DF3A080C936CC76C00302A0311 +:1003300000E0420A036DDF3E620F6B034C610198DF +:10034000406D403D0A08936CC76C0B6C4F6C00E02D +:10035000FD08836CC76CA3074198413A500BB60760 +:100360005F4E002A47B807984198806C403A0408CD +:100370009F6CDB6CEB075703C964BF0C5803C9645F +:100380007F030C0C002B4D650F082098DF39970F69 +:100390005C037B030B6C4F6CA607012B4D65F60FBE +:1003A00018134165050C00982038F30F88070032B8 +:1003B00074131F6C5B6CC03600E0C80857467A1394 +:1003C000436D076D00E0DE08C36D876D571378132A +:1003D000176C536C00E0D60803B824B800327513CC +:1003E000176C536C00E0CE08836CC76C1213331388 +:1003F00000E0AC08976CD36C00E0C408836CC76C59 +:100400000030231300E0A20805B8976CD36C26B81F +:10041000176C536C00E0B608836CC76C059826987F +:1004200000E0B0084613601300E0AC08836CC76CB2 +:100430000398249800E08A08836CC76C436D076DAD +:100440001F6C5B6C00E06A089F6CDB6C003023B8AB +:1004500000E07C08836CC76C176C536C00E0760876 +:10046000076D219800294798486C4039436D020C6C +:10047000F005741261B86098003202984F6C00E089 +:1004800065086398003200E07D08C36D876D42986F +:100490006098176C536C00E07508836CC76C1F6C18 +:1004A0005B6C00E03B08C36D6098876D0032239859 +:1004B000003000E0670802B803B824B8836CC76C4A +:1004C000476D1F6C5B6C00E02908076D3E11002929 +:1004D000056500B8030800E8B3027C11D060C06C69 +:1004E000403B0208B8054E116E110030219800E023 +:1004F00049084B116B11F706D5115965A609136C04 +:1005000000327F1000E03E080037036D476D342F46 +:1005100014553D10AC454C4D04606E111C608D644B +:10052000F81004B8C86D090CCB119964900D836C58 +:1005300000220A1144B8C0610035C3456811234543 +:10054000D860409328B86193136C5F6C45B866B867 +:1005500000E0FC0709B8459866982AB8136C5F6CF0 +:1005600000E0DC07836CC76C0030261000E0240933 +:10057000836CC76C360400000000F07F000040432D +:100580000000F03F01FCFFFF000010C00000E03F52 +:100590000000C0FF0000E0410000F0439C750088AF +:1005A0003CE4377E4715F73F44DF5DF80BAE543E21 +:1005B0000000D03F555555555555D53FFE822B650A +:1005C0000000F0BF00009040000070BFFFFF0F0070 +:1005D0008E98030079B60B000000F0FFA0760000B3 +:1005E0000BB82CB809982A9800E0CC0703B88032E1 +:1005F0000157876DBD382C420460B2454061D76C0D +:1006000000325B6C003000E0BD07836CC76C09985A +:100610002A9800E09B0709B8459866982AB80030E8 +:10062000576C00E09307836CC76C136C5F6C00E041 +:100630008D07DB6C003200E0A507836CC76C09985E +:100640002A9800E083074B986C9800E09B0743983A +:10065000DB6C05B826B80B6C5B6C00E0930782EA94 +:10066000130183EA1301436D076D00E08B0782EAF3 +:10067000110183EA110100E05107976CD36C00E08F +:10068000810782EA0E0183EA0E0100E04707976CBA +:10069000D36C00E0770782EA0B0183EA0B0100E0EC +:1006A0003D07976CD36C00E06D0782EA080183EA8E +:1006B000080100E03307976CD36C00E0630782EA1F +:1006C000050183EA050100E02907C36D976CD36C2F +:1006D00029B8176C536C00E05507836CC76C1F6C0E +:1006E000299800E04F07436D076DDB6C00320398DB +:1006F0005B6C00E013074598669800E04307976C31 +:10070000D36C00E00B07436DDB6C29B800325B6CE7 +:10071000003000E0370700326F00C36D2AB800E0F8 +:10072000FD06976C699800E0F906076DC76C00320A +:100730005B6C003000E026070BB82CB80032780064 +:10074000536C003000E002079F6C6A9800E0FE06E0 +:10075000836CC76C176C299800E0F8064398DB6C33 +:1007600000E01007836D476DD36C00320598269822 +:1007700000E00807836CC76C1B6C576C00E0CE066A +:10078000C36D876D836CC76C0B982C9800E0C60610 +:10079000E033584300306D01076D00E0F30605B803 +:1007A00026B84B986C98536C003000E0CF06836CF1 +:1007B000C76C1F6C5B6C00E0C9065501770100E057 +:1007C000E106C36D476D57017701536C003000E0BF +:1007D000D906836CC76C1F6C576C00E09F06DB0169 +:1007E000489888614496659600E0980609B8049890 +:1007F0002AB800E0E508836D0202476D1F202898A3 +:1008000004608090E19049986A980598269800E0E5 +:100810008506936CDF6C00E081069B6CD76C00E072 +:100820007D069B6CD76C003023B800E08F06936C7C +:10083000DF6C00E08B064598669800E08706836CC5 +:10084000C76C09982A980B060037630601357606AF +:1008500077021106570276021F6C5B6C00E05E06A1 +:1008600005B826B84298D76C0098536C00E06E0625 +:10087000836CC76C0598269800E048082038020869 +:1008800033062144014961030D64FD0C34504203D9 +:10089000803048604D40867090606142354B050362 +:1008A00040606503C6700B6C0D684C42C36C4C4ACB +:1008B0001430B43A25588670DF3C40B8050C409897 +:1008C00000340A6180B800320298576C00E03E069E +:1008D00003B824B803989F6CDB6C249800E01E06D4 +:1008E000003274030030076D00E04C06476D4398FA +:1008F000649802B8536C003000E02806836CC76C23 +:100900001F6C5B6C00E022065D037C0300E03A068E +:10091000C36D876D5E037D03536C003000E03206CB +:10092000836CC76C1F6C5B6C00E0F805076D836C13 +:10093000C76C03B8576C029800E0F0054298D76C7A +:10094000C36D876D00E00206836CC76C0398536C1F +:1009500000E0FC0502B823B89F6CDB6C1F6C5B6C7D +:1009600000E010064F137013436D076D00E00A0698 +:100970004E136F1300E0EA05976CD36C00E002069B +:100980004C136D1300E0CA05976CD36C00E0FA05B8 +:100990004A136B1300E0DA05976CD36C00E0F205A4 +:1009A0004813691300E0BA05976CD36C00E0EA05C0 +:1009B000836CC76C1F6C5B6C00E0C805436D076DF2 +:1009C000836CC76C1F6C5B6C00E0DC05803304B883 +:1009D00025B800327743176C536C00E0B705836C81 +:1009E000C76C0498259800E0E706076D436D4298B0 +:1009F00063981F6C5B6C00E0C5054298639800E04B +:100A00008D05836CC76C176C536C00E09F059F6C61 +:100A1000DB6C00E09B05836CC76C0030351100E097 +:100A2000950540987442C4609453203C2F0C409824 +:100A300000E09A000032619800E856FC01446148E9 +:100A40004212C9641F0F221250600098406C403956 +:100A50000B0C401260120030219800E093055D11EC +:100A60007D1100E841FC4298D76C0098536C00E07F +:100A70006D05836CC76C1F6C5B6C00E083072038CE +:100A8000010FE8070035A0B826074F6CD4070034E3 +:100A9000381000E8B5FB0034209800E8B1FB1F6D6A +:100AA0005B6C00E8ADFB0000EF4E454A287ECA3F74 +:100AB00065DBC9934A86CD3F01411DA96074D13FD2 +:100AC0004D268F515555D53FFFAB6FDBB66DDB3FE4 +:100AD000033333333333E33F0000084009C7EE3FAD +:100AE000FD033ADCF5015B14E02F3EBEA07600006A +:100AF0000000F03FFE822B654715973C0000E03F69 +:100B000002FCFFFF01FCFFFFFFFF0F00432EE63F4B +:100B1000EF39FAFE422EE63F396CA80C615C20BE2C +:100B2000D0A4BE726937663EF16BD2C541BDBB3EF3 +:100B30002CDE25AF6A56113F93BDBE166CC1663FD1 +:100B40003E5555555555C53FFFCB904000346F3F3E +:100B500059F3F8C21F6EA501003300E894FB214150 +:100B600021493C78C114C76CC06C403B080C65102F +:100B7000076D0C69544290604D68486C8114000008 +:100B80000000F07FD41423147A12436D076D076CB4 +:100B90004C68C664976C1208D36C176C536C00E0F9 +:100BA000F104836CC76C176C536C00E0B704436DA1 +:100BB000076D176C536C03149414203C130C6144A0 +:100BC000214B546C4039F60F403C0C0C976CD36CA5 +:100BD000176C536C00E0BA04836CC76C00E0EC0542 +:100BE000E7079454403C12084038760C80350033B7 +:100BF0002D45836D8469403E730C235B203606616E +:100C00008E614B6C5970046C8C707B110C610136D9 +:100C10000C4090690C48403EB438050C3F4AA14056 +:100C2000145941427F4AC060815480360031C0600F +:100C300082B8414216350E4620B880590D65060827 +:100C4000C0988061205CD260C0B8002D9F4A61438B +:100C5000403DD06041420148F10B203680340030E5 +:100C6000C1B89844C564D45C05084E641008886512 +:100C70000E0CDF3EB05E370CDF3D3508E25988656B +:100C8000C6600208002B9A6010605F6CDF4A8C61BE +:100C9000D860C198002E403E4142814CC1B8E30B60 +:100CA000C86C403B090C0033002BC2641E0800983E +:100CB000002000B8003001346098A0980C694155BC +:100CC0002E10403C48600148020CBF38A298944561 +:100CD0000461436D6F070B4A142C5542860701408F +:100CE00000238807C76DCC0700208038E507000087 +:100CF0000000F07F01FCFFFF0000E03F211420B85E +:100D00007F6C406020812141C463209801143C78AD +:100D1000D1149E313741036D00E00C02DF38050C21 +:100D2000136C00E0550291149E313741136C00E0C2 +:100D3000E10000E04D02803378430C609114000024 +:100D4000D21400326C10436D076D00E0FD05DF38F2 +:100D5000060C176C536C00E06B06921400326610A0 +:100D6000176C536C00E0F20300E0620680337843B6 +:100D70000C6092140000E041C41421146090013B07 +:100D80003B0C8091013C3A0C443B760C443C360CC5 +:100D9000423C5C0C423B320CA290E2919D5D639020 +:100DA000DF3C60B8936D63916F083F3E2A085D6534 +:100DB0005F0C0033019021914264330C403820983D +:100DC000540CC660DF3B6308003121B2A2B263B2AB +:100DD000235B9B1104650B08229200296143035B8E +:100DE0001064476D0029FB0B63B2A2B20331DF3BF5 +:100DF00020B221080B6C01148414076C01148414B4 +:100E0000203C4C0801341871002CCF6DD068403B59 +:100E1000019000332191CD60D9714264DC6CCF0B1D +:100E200020984C60C76C23B2DF3B033101B2A2B201 +:100E300020B2E10F0130214BC068C46C63B26292F2 +:100E400000230B6C62B201148414423BD50B60B2D8 +:100E5000619061B2629062B26390219163B26190DD +:100E6000C46861B20B6CC8074E60C76CAC07003435 +:100E70005F6D80B8A007443CBF0B41906191CA648C +:100E8000BB0F1010B907003692619007013121B2F3 +:100E900000316D59A2B263B29C07403C8C0F013403 +:100EA000E0981871D9715861002CC0981869403CBD +:100EB00000341161D06DE0B87E070000FFFFFF3FF6 +:100EC000D0760000D0142E1400B821B83B6C021963 +:100ED00000E0DA060619011800E0D6060A1A06191B +:100EE0000218FFE34BFF00E073060E14901400009D +:100EF000D0142E1400B821B83B6C021900E0C406CF +:100F00000619011800E0C00667980132C96C06197D +:100F10000A1A021867B8FFE331FF00E059060E1401 +:100F200090140000D414301402B823B80218041925 +:100F300000E0AA060819031800E0A6066498013B21 +:100F40004D0C4898013A3D0C443B460C443A370C52 +:100F5000423B440C423A350C679860B86B988F6CF2 +:100F600061B800980033003100E0F005C6984A9857 +:100F70009860C65ACEB8E598C9989E65003411614C +:100F8000DF39C76C436D8DB83F0C0133C468403BFB +:100F90000222110861494EB87F318F6C846840305D +:100FA0000A64270C6FB803336CB80C1800E0100605 +:100FB000101494140148BF38436DED07423B220CD6 +:100FC00069984598CA640033CD60081869B800E094 +:100FD000FF0510149414423A150C45986998CA6498 +:100FE0000033CD60041865B800E0F20510149414C5 +:100FF00080300C684038D70B403DD50FC860C568BD +:10100000D2070D10D4078D105064C70F0022013095 +:10101000536C0504C464A145002A0A0CDF3D0B6D26 +:101020006143F90FC06CC464A145002AF80B8EB867 +:10103000B4070000D0760000FFFFFF3FD1142A1450 +:1010400000B821B83B6C021900E01E060619011811 +:1010500000E01A066298013B2C0C26980139480CD6 +:1010600043980798816C443B43B8280C423B260CBC +:1010700044392C0C4239380C449868988E60099891 +:1010800065980C6444B81E0C80311F32003437411F +:101090000C64030C046DC260002A403A214961438C +:1010A000F80B7F31936C846840300A64140C85B867 +:1010B000021800E08D050A1491144E64FA0B0E100C +:1010C000F907002A614344B8E007003365B864B803 +:1010D0000218F007803010684038EA0B403BE80FF8 +:1010E00008610569E507043362B80218E3070618CA +:1010F000E1070000D0760000D0142A1400B821B80F +:101100003B6C021900E0C0050619011800E0BC059F +:101110006298013B0A0C6698013B070C06190218FD +:1011200000E0F4050A14901401300A149014000031 +:10113000D0142A1400B821B83B6C021900E0A405B1 +:101140000619011800E0A0056298013B0A0C669898 +:10115000013B070C0619021800E0D8050A14901488 +:10116000003000280A149014D1142414033360B8FA +:1011700040387F4861B80808023360B83B6C00E033 +:101180002705041491141E33DF3862B80F08036D6D +:10119000136C00E0FD046358403B140C136C1E32CA +:1011A0000C706D5A03B862B8EA0780337843C264A2 +:1011B0000B0C00340261136C00E0EA046358403BFE +:1011C000EE0B83B8DC07CF301840DC07D0142514B1 +:1011D00000B801193B6C00E057056198023B1B0CFD +:1011E000443B060C6398DF3B16083E3B09086298B7 +:1011F000403B003001606A100C60051490141E32F0 +:101200006D5A04980D706298403BF80F0033015BF3 +:10121000051490140030051490140000FFFFFF7FA8 +:10122000D114261401B80219011800E02D056598A3 +:10123000824B44987E432398029880B800E03004A3 +:1012400006149114C4142A146090013BCB6D670CF2 +:101250004091013A660C443BDE0C443A620C423A3F +:10126000B70C423B5E0C439064908290A29142B8CE +:1012700063B84391649140B861B8755CDF3B8F6C93 +:10128000D2083F369964500C1565BF0C003200330C +:1012900040B861B8619041918E64780C403BAD0CD0 +:1012A000009821984298639800640B604F60DF3982 +:1012B000BD08003361B782B7836CC76C03B724B72E +:1012C0000030003100280029016409604D608F035F +:1012D0005064670C0665FD0C003022970128002938 +:1012E000D40302B8E0B803049665830C01439F4A17 +:1012F000006DA142976CD36C00350034002C002D9A +:10130000116509614D615865076C0029EE0BE09885 +:1013100043B764B7033302B760B71F6C0A14841471 +:10132000076C0A148414203B8C0800331F2BC86000 +:10133000DF3B66B8BB08A1984D71A4B80035A5B8CD +:101340006698DF3B00350036AD0801328C708B6D3E +:1013500000320033002A002B89649560D960A09880 +:10136000C19848698C69976CDB6C8C6C403A00358D +:101370005561976C0033A498C598486D8C6D619049 +:1013800041918E64A0B8C1B88A0B61B700982198CA +:101390004298639889648160C56082B743B764B737 +:1013A000033120B73B12C46410089F43014A106CFC +:1013B00000350134214B9068D468806CC46C43B70D +:1013C00064B76297002362B71F6C0A148414423B0F +:1013D000A60B60B7619061B7629062B7639063B724 +:1013E0006490419164B76190C86861B71F6C9707BA +:1013F000E2981C657C0B8C070298239840986198B2 +:1014000000640B604F60540700320033176D42B820 +:1014100063B84107443A830B41906191CA647F0FDE +:101420001D117D0700328E602D07013361B7003238 +:10143000003388648360C76082B743B764B74107ED +:10144000403B290F00331F2BC860DF3B086166B8A3 +:1014500049086398A698D57064B8003365B8669853 +:10146000DF3B003500363A0801328C708B6D00325C +:101470000033002A002B89649560D960A298C39834 +:1014800048698C69976CDB6C8C6C403A003555610F +:10149000976C0033A498C598486D8C6DA2B8C3B8FA +:1014A000FA060133C8704F6D540761981F36A14387 +:1014B0008A615871A9B8A098C198A7B8C8B86798A8 +:1014C000C970A998D46C64B86898C97065B83907B0 +:1014D000003101290464010B64070133C8704F6DAA +:1014E000C7076398C1431F35695D5B6D4C71A9B82F +:1014F000A298C398A7B8C8B86798C970A998D46CBF +:1015000064B86898C97065B8AB070000FFFFFF0FAB +:10151000FFFFFF1FE0760000D014331400B821B89D +:101520003B6C041963B842B800E0060509190218BB +:1015300000E002050E1A09190418FFE385FE00E019 +:101540002D04131490140000D014331400B821B8E3 +:101550003B6C041942B863B800E0EE0409190218A4 +:1015600000E0EA046A980132C96C09190E1A0418DD +:101570006AB8FFE369FE00E0110413149014000040 +:10158000D4143B1408B829B808180C196BB84AB819 +:1015900000E0D20411190A1800E0CE046C98013B57 +:1015A000AC0C5198013A9C0C443BA50C443A960C67 +:1015B000423BA30C423A940CEF98B49875988F6D07 +:1015C0009F6C0033176C003100E0C00204B825B8EE +:1015D0009F6C00331B6C00319098C2B800E0B602DB +:1015E000836DC76D42980033136C003100E0AE028A +:1015F00006B827B8976C0033136C003100E0A602E0 +:10160000016419605D60C465910C5E648D0C0033EB +:10161000003462B883B88498A5980036C36D936C83 +:10162000D76C89649960DD608B6DCF6D936CD76CDE +:10163000DC64700CCE656C0C876C003306982798C0 +:10164000016409604D60836CC76C02982398016443 +:1016500009604D60836CC76C8E98339804612E5C72 +:1016600038B80D9832984264B01200314560D464A5 +:1016700037B879080424A4B80130003108684C68F0 +:10168000046C403882B80E0C3F47014E046C214F69 +:1016900000B821B88031C098E19800303841806DA1 +:1016A000C46D214BBF43014AC76C2498406DC4648C +:1016B000976C0024E20F229838B8FF300031086898 +:1016C0004C6880340265370C59B87AB8033376B861 +:1016D000161800E063031B149414423B420C7298EA +:1016E0004D98CA640033CD60111872B800E05603FB +:1016F0001B149414423A350C4D987298CA64003306 +:10170000CD600C186DB800E049031B149414986464 +:10171000940B8298A39801320033116509614D61E1 +:1017200082B8A3B88A078065730B0033013462B8AE +:1017300083B872074039C90B80312141486840396C +:10174000C40B5B6C5C6C4039C00F803000310164AD +:1017500009604D60FF34436D5169976CC76CB507E4 +:101760001310B8073310C464A90F022422B81F4A0B +:101770002143A142046CDF3F80B8976CC36C070C17 +:1017800001300031086C4C6C836CC76C21471F4ED4 +:10179000046C2298A146C464976DC36D002CE80BBD +:1017A000209838B88B070000FFFFFF1FE07600008D +:1017B000FFFFFF0FD414321404B825B80418081919 +:1017C00067B846B800E0B8030D19061800E0B40386 +:1017D0006898013B660C2D980139920C49980E9837 +:1017E000816C443B49B8620C423B600C4439620C4A +:1017F0004239820C2A986F984E609098B1984B9815 +:101800006C984C652AB8936DD76D050CD6640B089F +:10181000086509089F4A0143A142006D0029976CA1 +:10182000D36C2AB80030003102B823B880313D347F +:1018300000303541C0B8E1B8A098C1988C65100C53 +:10184000DA64030848650C0CA298C398406D846D57 +:10185000A2B8C3B8A098C19888649760DB60BF4104 +:10186000E148976DA1499C6D576CBF4A1B6C002CD9 +:10187000976DA143946D6142403CCF6D8F6CDB6CE2 +:10188000DC0BFF3000318298A39800694469136C27 +:10189000576C80340265150C629883986BB88CB8CD +:1018A000081800E07B02121494144E64FA0B161010 +:1018B000F907003300346BB88CB86AB80818F2071F +:1018C0004039EB0B803121418298A3985068403910 +:1018D000E40B986C403AE10F80320033136C576C84 +:1018E000016409604D60836CC76C0B6CFF31056847 +:1018F00002B863B8D207043368B80818D3070D18C4 +:10190000D1070000E0760000D0142E1400B821B8F2 +:101910003B6C041963B842B800E00E0309190218C1 +:1019200000E00A036498013B0A0C6998013B070C2C +:101930000919041800E062030E1490140030002806 +:101940000E149014D0142E1400B821B83B6C041956 +:1019500063B842B800E0F0020919021800E0EC0296 +:101960006498013B0A0C6998013B070C091904189B +:1019700000E044030E149014003000280E1490145C +:10198000D0142E1400B821B83B6C041963B842B8C7 +:1019900000E0D2020919021800E0CE026498013B6F +:1019A0000A0C6998013B070C0919041800E026038A +:1019B0000E14901401300E1490140000D11425144C +:1019C000033360B840387F4861B80808023360B814 +:1019D0003B6C00E0E30105149114DF381208036D3D +:1019E000136C00E0D5001D3280600228DF3810083B +:1019F0000071003384B863B83C33CA6062B8E90749 +:101A000080337843C2640D0C00340261EA071F3151 +:101A1000614C4A60136CC570087064B803B8ED0778 +:101A200000302210D90700000000E0C1D0142714B4 +:101A300000B821B83B6C021900E07E026298023BBC +:101A4000200C443B160C6498DF3B1B083E3B110CFA +:101A50003C326D5A00321F2A8C60DF3A1508069816 +:101A600009706398403B0B0C0033015B0714901422 +:101A70006398403B0030016068100C6007149014BC +:101A800000300714901446981F3141424E6005986B +:101A900084700D70086CE607FFFFFF7F2114D114DE +:101AA000251467B86798889800B83B6C21B842B88D +:101AB00063B884B800E072010514EED90120809863 +:101AC00003143C78D014271400B821B83B6C0219D9 +:101AD00000E0320245983E4A669842426243403AEC +:101AE000C46C020CA03B44982398029800E04A0181 +:101AF00007149014D214251440380035036DA1B892 +:101B0000150C033360B800E043001D3280600228EA +:101B1000DF381308007184B8A3B83C33CA603B6C4B +:101B200062B800E03B010514921402333B6C60B8CC +:101B300000E03401051492141F31614C4A60C570F5 +:101B4000087164B883B8EA07C41421140175B04859 +:101B5000C975836D20B8136C304A1C7C047DD47D1C +:101B60001C61447D30480461D065040880312941FE +:101B70004461304CD87C44614F6C6098C87C904480 +:101B80004C60017410605460011484146D100C6476 +:101B9000070CFF330C640F0C2033003206046A106C +:101BA0000C640C0808331832097048100860408033 +:101BB000095B3C7818330832F80710331032F50708 +:101BC000FFFF0000FFFFFF00F4760000C21440900A +:101BD000013A63902190270C443A220C423A1D0CA2 +:101BE000403B1B0C003442907D2C09652A087F3451 +:101BF000916416080C69403552651A0C3E23DF3B90 +:101C00001D087E2202430948C874094077430948E9 +:101C10003F410C6C046C821400330030F707FF3333 +:101C20000030F40703430A48B638FF33EF0780302B +:101C30000C684038E50FD060E307614B7F22E30773 +:101C40000A61393CEA0F01329070002A0F6CC868B3 +:101C5000403B00331170CD60C06C7F300C68403267 +:101C600082640D0880328C68403A020CC0604510D6 +:101C7000C8640243C3640948CC74C8073E23F8070C +:101C8000FFFFFF3FC114618871434090784B038090 +:101C900049420748403B494A01B11108403A1A0CF1 +:101CA000033360B1003347427E2B9610414290646B +:101CB0000F6C002BFC0B02B143B18114FF300E649A +:101CC0000C0C7E2B474262B1BE3A033360B143B184 +:101CD0008114023360B18114403A0D0C80336F439C +:101CE000C868403B0B0C013360B1671047428D68F8 +:101CF00043B18114043360B1811460B1F70700006F +:101D0000FFFFFF3F7F000020C1146090013B120CD9 +:101D10004091013A0F0C443B170C443A0F0C423BE4 +:101D20000B0C423A130C619041918E64140C403BB1 +:101D3000080801308114423A1E0C6191403BFA0BB5 +:101D4000003000288114443A180C6190403BF90B94 +:101D50000130F107829042910965EA0B916407080E +:101D6000039043910864E40F80640508403BE90F49 +:101D70000130E1070030811461914190095B8114C9 +:101D8000D014241400B83B6C21B842B863B8FFE308 +:101D90001FFF041490140000C41422146090013B2F +:101DA000C390E4902190460C443B400C423B270CEE +:101DB000DB6CDC6C403B230C62905A128D6455083E +:101DC0005912C9643308FF34003518695C698032E0 +:101DD00092643F0C7F34003599659161D56153124F +:101DE000C8651A0C90120C611847684F484E806CF9 +:101DF0000C436C480E124B6D006904040034003231 +:101E000000330C430C4874449F41436C4C6C506C41 +:101E10000B6C021484149F47014E006D936D803447 +:101E2000414F8344CB6D0C61E007811200320033D7 +:101E3000E907084E9847006D80350547936C6D485B +:101E40000034AC45906CD46C0C436C489811DA07A4 +:101E5000403DC10B41429868403AC20F8034003582 +:101E600099659161D561BC076D5A3832C964C70B59 +:101E700000321F2A8C60DF3A48081F6C097000B8D6 +:101E8000003001B8DF3A3C080133C8704F6D0033B1 +:101E90000F6D00320033002A002B116509614D617E +:101EA0009069D4699C6D403E00300160836C0033C2 +:101EB0008098A198086D4C6DFF3200339068D4680B +:101EC00080300A641B08403B190880336143D068A6 +:101ED000403B060C80320033116509614D611845A5 +:101EE000484C684D9310806C50650C436C48013031 +:101EF000020C00308E10006985077F32ED07013239 +:101F00008C7000350B6DC6071F340E6101471070D1 +:101F10001B6D0D71006D1F6C0D7080B801B8B3079B +:101F200002FCFFFFFF030000FFFFFF1FFF07000091 +:101F3000FFFFFF0F231480B8C1B8E2B843885142B5 +:101F400061908090554A07806C430748403A6C4B3B +:101F500001B11908936C8C6C403A2D0C584C6843B5 +:101F6000C86C0332084440B18111C2115F4861431B +:101F7000C86CD864936C0140002CF90B42B103B1DA +:101F800064B114041C100A64190C1910806042B169 +:101F90000332E84340B18033584CC86DC844003226 +:101FA0007543886DCC6DC3B1E4B1E298C198809857 +:101FB00003143C78023360B1F907936C8C6C403A9F +:101FC000100C80324C428C68403A0E0C013240B109 +:101FD000584C6843C86C08449B3B03B164B1E607A6 +:101FE000043360B1E30740B1F407000001FCFFFFD8 +:101FF000FFFFFF0FFF070000C1146090013B120CB0 +:102000004091013A0F0C443B170C443A0F0C423BF1 +:102010000B0C423A130C619041918E64140C403BBE +:10202000080801308114423A280C6191403BFA0BB8 +:10203000003000288114443A220C6190403BF90B97 +:102040000130F107829042910965EA0B91640D0815 +:1020500044908390039124918464E20F4A640308BE +:102060000065DE0F48640508403BE30F0130DB07E5 +:10207000866403081064F90F003081146191419067 +:10208000095B8114221461B840B8D01421146298FD +:1020900060B84098031B00E026000114EED9002030 +:1020A00003143C78D3144B6D829541920A61403CF5 +:1020B000876D160C04650208076D6095403B0D0C9A +:1020C000C860436C936C0F6C00E07E000095219516 +:1020D00010600460003240A061950C6181B51B6CFA +:1020E0009314D3142514076D436D4B6C0218003202 +:1020F000403CA0B041B01C0CC35CC2B000B88F6CB7 +:102100000E1001B83B6C00E0BF00403D0F0C403C9E +:102110000D0CDF380B080033002BD2640B0C00656C +:10212000090C1461002C003120A40514931400360E +:10213000E507805DF9070000A4200000C314447483 +:10214000403A1F0C436D036D03361869403C1A0C6E +:1021500020A5002A403A150C0025176D0336186992 +:10216000403C100C20A5002A403A0B0C0025176DAE +:1021700003361869403C060C20A5002A00250204FD +:10218000831468414C6C70414C6C2F3A090820B59F +:1021900021B522B523B50F2A0F252F3AF90F233A7F +:1021A0000608032A20B50325233AFC0F403AE90F1D +:1021B000002A20A5403AE50F002A21A5403AE10F68 +:1021C00022A58314C314836D076D186D03330C6946 +:1021D000403C0B0C403A080C60810021002A60A6AC +:1021E0000026403AFA0B83142F3A0E08A091619111 +:1021F0008291A0B6A39161B682B6A3B60F2A0F2131 +:102200000F262F3AF40F233A08086091032A03217E +:1022100060B60326233AFA0F403AE60F60810021A8 +:10222000002A60A60026F907C114C36C80600C0464 +:10223000808300811260026C002040380808403C16 +:10224000060C002300218C64F40F00308114000080 +:10225000D4142038036D476DF76D0D08836D303E43 +:1022600000970A0C635C244B644140902D5C819084 +:10227000176CD17B9414409061901031176CCD7B1A +:102280000F2EEE07D4143C1426B81219211B10B8D7 +:10229000002100304B6D71B80AB809B82DB8869886 +:1022A0002533C084403E030CDA6445084698C95C77 +:1022B000403E0A0C709840935B6C61930698CD7B0E +:1022C0000998186009B820844039030800E86703BA +:1022D0003736011A00378861E0A600330036002443 +:1022E00000300031002E67B80037425C46B8808469 +:1022F0006433D264900D0D654E082E329264410D08 +:10230000096529082A33D264310D0D651C08203275 +:102310009264250D2333D264270D403C030800E866 +:102320003E03121E3730011A80A60860003480A0D8 +:10233000A5B82C040024B60701302B318698D607A7 +:102340004F6DFD072B329264F80F2D33D264E60BEC +:10235000A23FF50739330D65090831329164340D18 +:102360003033D264DB0BA73FEA0758329264D30CB8 +:1023700063301264D30B3733011A2E5DC0850034ED +:10238000121DC86025B8C0A580A301360035121CF7 +:1023900000E895026D33D2642D0D0D658308683217 +:1023A0009264240D09656F086633D164B70B403819 +:1023B000050C3730011A086020A03E5D25B8009555 +:1023C0002195A798403D0308013367B80032002AE1 +:1023D0009A64580D5B6D679860B8A1B82833121ADB +:1023E00000E09D06003100295A6408B81A0C2E310D +:1023F0000D9800E0C9084038C898480D403D0508D0 +:1024000001315C684039400DC2580025595D80603B +:10241000203A050800266086403BF90B0035A0A64F +:102420006730126422082E31121800E0AD084038DF +:10243000036D1B0C653100E0A708436CC084403E6F +:1024400030094039020C076D3036635C40838A6581 +:102450002A0D2E354A6502080F6D0030403900A460 +:10246000040C136C00E038081219C0812D33DA64B3 +:10247000020CEF05373401182D350061A0A41219A4 +:102480008259EC056933D264C60C6C329264460BF7 +:10249000669840830A65AC088698002486B8A53FF4 +:1024A0004E077133D264FC0F0D651A086F30126449 +:1024B000FC0C70315264320B4E5D0034A09545B86F +:1024C00001193932A3B884B830330F1878358460D5 +:1024D0009501A13F60A0A0A28AB80234F104753230 +:1024E0009264280D7833D264440D73315264160B14 +:1024F000003237300119002A6E5D80950460003586 +:102500009A6465B8A0A00B09D36CC083403E100943 +:10251000D15B7F044038050C3730011B0C6020A0D4 +:10252000280220301C6840382AB82B0D5E5D45B863 +:102530002095419523B844B801301C684038CE0F2F +:10254000A39864984C6D403DC90F3930011D30315E +:102550000F1A146020A280A0A13FC0074039EF0AE3 +:1025600001302031EC06A03FEA068095DF3C6E5D2D +:1025700087B8E70E479800354A61A7B84F6DE9065E +:10258000C69880862A326698926400230B0C65B840 +:10259000003600332F2BD060093B45980C0C46B811 +:1025A000A806C095DF3E8E5D030C0036002E536DED +:1025B00066B8C5060A34187D45988F6D9061808293 +:1025C000002245B8E707003247B867980A32C87C4E +:1025D0002F2C0C6187B800338698425C2F2B8084A7 +:1025E000D060093B46B8F20FDB07A63FA806A43F20 +:1025F000A6064038050C3736011B8C6120A63E0329 +:10260000009100E0CB07036D00E03C07836DA5B8A7 +:10261000003554054038050C3730011A086020A0F9 +:1026200020341C69403C1A0C7E5D2095419565B8AC +:1026300023B844B80498DF380F0C8398A49800326C +:10264000003388649360D76043B864B83732011BA5 +:102650002D358C60A0A2013438041033DC68403B77 +:10266000080C4E5D45B8A0959F55A3B884B8E30704 +:1026700040315C680E5D4039A09505B8F60F57757E +:10268000F4070635A906836DCA0601329C68403AF4 +:10269000C80E121D58612E33003060A501A5C10679 +:1026A0000024CD060F6DD2062033DC68403B240C9D +:1026B0007E5D0095219565B803B824B800343735A0 +:1026C00001180032406140A5003100290398A49808 +:1026D0005A64146CC80C9F6C873A403848B8C608D6 +:1026E000403EAC0C413C680C423C8D0C0033003445 +:1026F00063B884B8BF0410301C684038050C8E5D88 +:1027000085B8A095080440329C682E5D403A25B8F3 +:10271000F90FA08D0034A3B884B8D207B85CD36C8D +:102720004E65770F00834038F40E0023FA0700232C +:10273000ED0620341C69403C090C7E5D20954195D6 +:1027400065B823B844B80134BB071033DC68403B9C +:10275000050C0E5D05B8A095080440315C684E5D1F +:10276000403945B8F90FA08D0034A3B884B8EC0700 +:102770004038050C3733011AC86020A33F10D20639 +:102780001033DC68403B050C0E5D05B8A0950804CD +:1027900040329C682E5D403A25B8F90FA08D003379 +:1027A000A3B864B8CA06D36C67048498403C0B088D +:1027B0004398093A080883982F241A1F87A7121CE8 +:1027C000262478041C1C30350A32003303982498E0 +:1027D00000E0C2021460002C00A40A32039824987E +:1027E000003300E0E30003B824B82398E4985C6C5D +:1027F0004039EB0B5F04000003860000F285000007 +:10280000E40A00200033003463B884B81C1C0F3283 +:1028100003982A9808680460A080002CE498A0A47B +:10282000A49863981C47E44D244BE4B8046C649866 +:1028300003B80C6C4038ED0B3D04403C08080133F4 +:10284000DC68403B040C1A1F3034B9071C1C3204EE +:102850002B329A6402081406121C136C00E0120654 +:10286000836DD7064038E8B83E0F413C9F0F423C8D +:10287000CE0F1C1B073723985C682F2104988474A3 +:102880002398BD4003492498234924B8406D0498F7 +:10289000A3B8406D835B403D40A4860B0137289868 +:1028A000C469403F070C30354A65040C875B303300 +:1028B00060A45B6D1C1E9261E8989565A8B8020C37 +:1028C000C8B83730011B0C604080403A040C28988F +:1028D000002128B802301C6840380BB8040C6898F6 +:1028E000012368B884329C68403A4CB80B08103316 +:1028F0000C1A27980898C86001594F6F2911FFE3F7 +:10290000A9FC3731011840606081403B0B0C3098C6 +:10291000019102B80C1B0B3040910C6001316298A0 +:10292000CD7B4B98403A070C3098409161910F183D +:102930000231CD7B80304C980A640B082798689848 +:102940000D590C1A10314860476F3710FFE382FCB5 +:10295000195D0C1B10354C61576F776D3210FFE31A +:1029600079FC009540906190136C04345B6C1C6999 +:10297000CD7B403C080C2898C798055E576F2910FE +:10298000FFE368FCA79848989564020C4B6D099882 +:10299000146009B8A59800E884FC09981C149414E4 +:1029A000F477000004780000D4142614C76D403B6F +:1029B000036D4F6C8B6D00B85F6D5B089C64740891 +:1029C0003D008464DC0CFF318464020808334B6CE6 +:1029D0004D70000140602081C46020314E6040395C +:1029E000090C536D8470C4714D7104718B6D5C6DF5 +:1029F00080B8904E536C176C00E0B21101B8536C64 +:102A0000176C00E08911D975619820989F6C70430C +:102A10003049807CC46C8C64436D0808D8608C6538 +:102A20002358030C8C648E0D476DCA60536C0F6C79 +:102A300062B800E09511629801B8536C0F6C00E029 +:102A40006B1141986ED800105042CD74C07D8C6CD3 +:102A5000C865036D08089860886563584D0DC865A2 +:102A60004B09012C10450037106C5F6C0614941450 +:102A7000DC64760C6A024C64780869024C64480D88 +:102A80001036C76CD9700D02C06060838C61203035 +:102A90007958403B60B87808C465400D90640F6C6D +:102AA0000D6000375F04403A08080031013061B81A +:102AB00000E03211836D61985B0288655B087A02E1 +:102AC0008C65280D10339B6C3E028D7084604082B3 +:102AD0002C5A20328660403AC008D974995FB04EB3 +:102AE00061B80137576C136C00E03A1102B8576CAB +:102AF000136C00E011116298304360984198704B5C +:102B0000807CC46C8C64036D0808D8608C65235885 +:102B1000030C8C64140D076DCA60576C0F6C63B89E +:102B200000E01E116398576C02B80F6C00E0F410BF +:102B300042986ED8001021985042CD74407CC86CE9 +:102B40004C64436D0808D8608C654358D30C4C64C2 +:102B5000D108012D1044146C5F6C061494140037D6 +:102B600000305F6C06149414FF334C648365C346D5 +:102B70008907FF328865A80B0833A60775138C6494 +:102B8000CB0C103325070098CB6C4B6D4070407117 +:102B9000D970C46CA3B8536D4F6C5971DF6CC071A0 +:102BA0005C6DD970A1B8B04922B8C5750F6C576C6F +:102BB00064B800E0D5106498836D576C0F6C00E02A +:102BC000AB105F6C407C876C3046C198D04E846DF2 +:102BD0009864C36C07082358029880611864A6089B +:102BE000C76C8A61576C1B6C65B800E0B91004B8FB +:102BF000576C1B6C00E0901064989F6CF0436ED88B +:102C000002104D74807CC46D9C6465980708A2987E +:102C1000D4615C6523588508076C70430C6CC174E3 +:102C2000CA61439849753048504A8F6D947DC87C7D +:102C3000447DD460487C504EC8604C6504088032A6 +:102C400049424860504B48605C645F0C5E64560CBF +:102C500000375F6C06149414536DDF6C4571C871B6 +:102C600088715C6DC570D76DA3B8B04E0871576C94 +:102C700099740F6C41B880B862B800E07110629826 +:102C8000036D576C0F6C00E04710C36C9974C87CDF +:102C90005044904F086DD064436C02B80B08186123 +:102CA000876C9065002A490CD0644708002A42B816 +:102CB00018610E61576C136C00E05210C36D576CB5 +:102CC000136C00E029104ED80610D974F04709752E +:102CD000C07CD06DDC640908D8619C6543582B0C1E +:102CE000DC6429080128D8618D5F6298F043C06DCB +:102CF000FA064B6D30070F6DB60640987043997514 +:102D00000871D860D064A50B00280037A3071836D7 +:102D1000B9061833D90618335B060037013022078D +:102D20009C647B0B0128D461790798645A0B012BB2 +:102D3000806158070B6CD90742B8BC07012CD860DA +:102D4000EC06012DD8607206FFFF0000F47600004B +:102D5000FFFFFF00D4142714076D4F6C436D4039FB +:102D6000CF6D0B6CA0B8D36C5A0890647708200123 +:102D70008464D20CFF31846402080837436C5D70B0 +:102D8000C40158602081C46120315E60403921B89F +:102D9000090CD76C836C0471DD7044718470D06C45 +:102DA000A0B8904A536C0F6CC97543B862B800E084 +:102DB000D70F6298436D536C0F6C00E0AD0F4098D5 +:102DC0007045B04A1C7CD46C0C6443980608C860FB +:102DD0008C64030C0C647D0DC260536C0F6C43B8A3 +:102DE00062B800E0BD0F6298436D536C0F6C00E059 +:102DF000930F6ED80010C07DB0450D74406DD46542 +:102E00000708439848619464030CD4655E0D5E61C5 +:102E1000176C61980D7000310714941450646E0C97 +:102E20004D0248646F084C0248643F0D1036876CB1 +:102E30009970F0029C60408288612037DA61403FDF +:102E400070080465030C1464460D015D146406618A +:102E50008364695C4F6C07149414403A060800318F +:102E6000013000E0590F836C7F028C6450087E02B1 +:102E70008C641D0D1037CB6CDD702203C460608341 +:102E8000CC612033DE60403B61B8C208C9740A617E +:102E9000F04A8F6D5F6C136C42B800E0610F436DB8 +:102EA0005F6C136C00E0380F60989045B04B187C55 +:102EB000146D10644298060808619064030C106455 +:102EC000060D02615F6C136C42B800E0490F436D60 +:102ED0005F6C136C00E0200F6ED80010187CB045BA +:102EE0008D75586D14640808429848619464040C08 +:102EF00014640208486142618C07176C536C071414 +:102F00009414FF3248648365C3469207FF338C6490 +:102F1000B30B0837B10737138464CB0C10372F0776 +:102F2000C36C5C70D970C46C576C936C59701C7115 +:102F30009970506C1C70904B5C7103B820B8A4B8A9 +:102F4000536C4D750B6C62B8A1B846B800E0080F21 +:102F5000469805B8536C0B6C00E0DE0E4198807CFF +:102F60006598436D009830437048C46C8C640708C2 +:102F70000298C0600C64235DA308476DCA60536C5F +:102F80000F6C66B800E0EC0E6698536C05B80F6CD9 +:102F900000E0C20E45986ED80010219850420D7581 +:102FA000407C906C4864070882989060086563587C +:102FB00082080F6CB045406DD5740398B04D0F6D0D +:102FC000866041741048047DC07C547CC460407DA0 +:102FD000104CC0604C640408803129414461304B7E +:102FE0004461704311754865D060560C4A65760C93 +:102FF000355A0F6C6498015B0C64C3648D59536D32 +:1030000058711D70536C146C5D7007149414019802 +:10301000576CD36C5D7000718070506CDD70076D03 +:10302000F04A22B849744071876D0F6C5F6C44B8E8 +:10303000A0B863B800E0940E6398436D5F6C0F6CAA +:1030400000E06A0EB045704C187C4C6D14644498D6 +:10305000070848619464040C1464020848614261E2 +:103060005F6C176C43B800E07B0E036D5F6C176CF0 +:1030700000E0520E6ED8041090444D74187C046D1C +:1030800010644398070808619064040C10640208F7 +:103090000861026100072398055B0C642298466171 +:1030A000C3644E61355AA7071836C2061837E406BE +:1030B0001837650648647E0B012890607C078C6495 +:1030C0005D0B012DC0605B074861A2060861FA062E +:1030D000C8608306176C4F6CBF062498C464DC0F6D +:1030E0000F6C003188070000FFFF0000F47600003D +:1030F000FFFFFF00C21400334D6403080F6C8214FD +:10310000AC5A8C580023A085433BA0A4F60B23396E +:10311000F60B003363A00433F207D4142C148F6D24 +:1031200071980AB824B842B86BB8F29800E044022B +:1031300040380A0C44025B6C0298FFE3DDFF09B8DB +:1031400009980C1494140A98249800E085014038DA +:1031500009B8030C4B02F007003200330A98249898 +:1031600000E0420240382D08403F570DA65F5865E9 +:10317000560D403D0B0C2498DF391A0C02982D3265 +:1031800040A0025D01351464160C8298208430330F +:10319000C664003001604298229808602E34546062 +:1031A000003381A0A9B860A1CC070135E507176CF1 +:1031B0000035EA0742989460303480A20025E40785 +:1031C000003200330A98249800E02C02DF388E0C7D +:1031D0008031A298849858412D3360A50861002E53 +:1031E000002500302E03003365B84598CA65810874 +:1031F000836CC76C0A98536CFFE390F10032730341 +:1032000006B827B800E00E02DF38050C303480A580 +:10321000002E002504982140790315490C60FFE336 +:10322000CFF35A037A03FFE3ADF1FFE301F4425811 +:10323000203A48B8E7083D03CB6D003423B80A3F75 +:103240005F08413F68085F137F13136C2398FFE307 +:103250005DF320386A0C6298D6640708403E710F0F +:10326000303240A5002E002505984038CF0822981E +:10327000655D00234B988C64A508403E620F2E3795 +:10328000E0A50B98E25D22980020655F4D58002E66 +:1032900045B805981864550F436D5C61FF365E654F +:1032A000910C936C639806982798FFE385F2FFE3EF +:1032B000BFF33031406020A71868FFE381F3936CBF +:1032C0006398FFE35FF1836CC76C06982798FFE370 +:1032D0003DF106B827B8136C239800327812FFE34B +:1032E0006BF20027036D23B8DB07A29884987A0756 +:1032F00076125712FFE346F1659800237607803077 +:1033000056402398136C7312FFE33CF1036D23B80E +:10331000092F9607136C239800326912FFE332F1EC +:10332000036D23B8002F8E076398936C0698279837 +:10333000FFE342F2FFE37CF3403FC074030C403BE9 +:10334000580C2F23403E60A500254208936C6398DB +:103350000A982498FFE330F245988B9841B880B8DA +:1033600000334298FFE3DBFE4038EB0EC05DFA37D6 +:103370006535026CA0A6036DA25E01310436E247FA +:103380000898C165030C40391108403C080C5F6C7B +:10339000089800E0AF0C2F2000A500255F6C08986E +:1033A00000E0CC0C002C08B8003123B81F6C0A31A7 +:1033B000002E00E09F0C403EC36D2398E20B403C82 +:1033C000C00E42980033895D60A589B8BA060074C2 +:1033D000FFE3F6F2936C6398FFE3D4F0836CC76C61 +:1033E00006982798FFE3B2F006B827B8002E0037FA +:1033F000136C239800327210FFE3DEF1036D23B8E3 +:1034000023071210921003B82707403E9A0E2E375A +:10341000E0A5002EE25D3E07403EC80A0835AC0636 +:1034200014860000188600000000E03F0000F03F16 +:1034300001FCFFFFFF799F501344D33F000024405D +:10344000CDCCCCCCCCCCEC3F9999B93F9A999999F9 +:103450005FA002426C414C4B086C40380E0C0810C7 +:103460004068C76C003026100032816CC56C8C6CD3 +:10347000403A436404743C780030FE070000F07F5B +:10348000436C033208684038080C00304081403AF1 +:10349000200C00210020FB0740910B68040C032145 +:1034A0000320FB07FF31CB6CC468403B120C0020AB +:1034B0001031CB6CC4701831C570403B0A0C002031 +:1034C0000831CB6CC4701831C570403B020C002031 +:1034D0003C780000C114036D876C906C03338C68DA +:1034E000403A080C608160A400210024403BFB0BA3 +:1034F000811460910F682E0C60B461910F681D0CEF +:1035000061B462910F681B0C62B463910F68190C6F +:1035100063B464910F68170C64B465910F68150C5F +:1035200065B466910F68130C66B467910F68110C4F +:1035300067B41F241F21DE0703240C0407240A0498 +:103540000B2408040F240604132404041724020483 +:103550001B2418318F6C8470857040A4403A120C83 +:1035600010318F6C84701831857041A4403A0A0C78 +:1035700008318F6C84701831857042A4403A020C77 +:1035800060B4811440804A64060C403A030C002069 +:10359000FA070B6C3C7800008F330C64060C024079 +:1035A0002310046000903C780210FE07147800009D +:1035B000C97A00004038836CC76C040828104E6438 +:1035C0000B0C00302710816CC56C8C6C403AC364C6 +:1035D00000300E603C780130FE0700000000F07FF4 +:1035E0000000F0FFD0142E1400B821B83B6C041971 +:1035F00063B842B8FFE3A0F409190218FFE39CF492 +:103600006498013B0A0C6998013B070C09190418DE +:10361000FFE3F4F40E14901401300E149014000023 +:10362000D0142E1400B821B83B6C041963B842B80A +:10363000FFE382F409190218FFE37EF46498013B6A +:103640000A0C6998013B070C09190418FFE3D6F42A +:0A3650000E14901401300E149014B3 +:10365C00D014091029104264050C49108260FFE354 +:10366C00ADF5481008100A64050C82600031FFE3C8 +:10367C0061F5901400000020A48D0000A40000202F +:08368C00EC0A0020C40000203C +:1036940048380A087A10FF32209360914C42C96876 +:1036A400AE3BB23B60B1771060934193806C41B301 +:1036B40043938068403AFD0F42380708023144932F +:1036C4008468403AFD0F3C78023809084138FC0B05 +:1036D400013144938468403AFD0FF60748380708DF +:1036E400083144938468403AFD0FEE075038EC0BE0 +:1036F400103144938468403AFD0FE60750000020DF +:043704006000002041 +:103708006C104D10609345B34C1046B34C1047B342 +:103718004C1050B30A3253B32B107F23003245B3F9 +:1037280046B32DB329102EB35DB35EB35FB33C78B7 +:1037380060000020FFFF0000FFFFFF0000002DD207 +:0C374800FF3BFF700C070000FE030000B8 +:10375400D0144038050C076CFFE39CFF90146810EC +:1037640060934293846C42B343938468403AFD0B64 +:103774007F230193406C21B3F20700006000002016 +:10378400C214483B28089D1001358094A1B4043527 +:10379400A5B4835B013C2B0C8B5B043C030C4B3BBF +:1037A400070876100134609381B3003485B3941014 +:1037B400106C7410406C6093803027B301402493E4 +:1037C40040684039FD0F3010486C28B328934A6490 +:1037D400FE0B8214403B030C493B0708871001355C +:1037E4008094A1B40235A5B44A3BD40B83100135AF +:1037F4008094A1B4A5B4D1076400002000002DD2A8 +:083804006000002000003CC33D +:10380C00D114036D10310030FFE3A0FF66106093FC +:10381C00199384388538106C19B31030FFE336FFD8 +:08382C0091140000600000206F +:103834006C10403860937F230A0C4B1080314FB3D7 +:1038440025414D938468403AFD0F3C784710803100 +:103854004FB325414D938468403AFD0BF7070000B0 +:0C3864006000002000008778AA558778DB +:103870006410B43260937F2357424EB33C7800000B +:0438800060000020C4 +:1038840044106510486C6093046C7F230DB33C783E +:083894000000788760000020AD +:10389C00C3148398C510186DD06C8C6C486CA41034 +:1038AC00046CA09513B5831400004BB46000002089 +:1038BC0066108031609380324C60444241B15D931C +:0C38CC00AB3A5DB33C78000060000020C7 +:1038D80066108031609380324C60414241B15D9303 +:0C38E800A83A5DB33C78000060000020AE +:1038F400403A040C413A0E0C3C786D104038609309 +:103904007F234593040C486C25B3F707856845B3BA +:10391400F4076710403860937F234693040C486C87 +:1039240026B3EB07856846B3E80700006000002073 +:103934006B104C1060937F2340384BB30C0C4793AF +:10394400846C47B349938468403AFD0F4B93486CA9 +:103954002BB33C784893486C28B3FC0760000020E4 +:04396400FF3F000021 +:043968002BB03C78CC +:10396C0080337043421060B23C78000000E100E00C +:0C397C000232621040B33C7800E100E031 +:1039880063104410609340B33C780000600000204E +:0439980080001EE1AC +:10399C0066104710271040B341B342B343B344B34E +:1039AC0045B326B347B33C7800E400E0C0C0C0C0C8 +:0439BC00C000C0C0C7 +:1039C000C114624842436A1003346093C860803275 +:1039D00043421068C8600340FF34409300712641A1 +:1039E00091684070486C20B381140000680000208A +:1039F00075103610161040936092784B784360B281 +:103A00002091003361B260B161B162B262B163B260 +:103A100063B164B264B165B265B166B266B107B252 +:103A20003F3007B168B268B169B269B16AB26AB1D0 +:103A30006BB26BB14710409260B261B262B20F33A9 +:103A400063B23C78500000204C000020FFFF0000D3 +:043A5000480000200A +:103A5400D1140739036D3008035906382708FFE3EA +:103A64004DE9041013161A1D210000330431F02B04 +:103A7400403A4094C8681E0C01328470C86C60B42B +:103A8400911408316611F5070C316611F2071031F3 +:103A94006511002BEE0714316411FC07F133183162 +:103AA4007843F8071C316211E407003300310F2B0F +:103AB400E0070232E3070F39E40B08290639076CE3 +:103AC4002708FFE31BE9041013161A1D2100003315 +:103AD4000431F02B403A4194C8681E0C01328470C2 +:103AE400C86C61B4CE0708316D10F5070C316D1048 +:103AF400F20710316C10002BEE0714316B10FC0729 +:103B0400F13318317843F8071C316910E4070033A6 +:103B140000310F2BE0070232E3070000FFF0FFFF44 +:103B2400FF0FFFFF0000F1FF000010FFFFFFFF0F7A +:103B34002141033268908470C96801328470C86C72 +:043B440068B03C78B1 +:0E3B4800214101334990C470C86C69B03C78CB +:103B5800C11422140F3A4F08CB6C833B403B130827 +:103B68000F2B61B80033073A6EDC03007611380C6E +:103B78004093619281982ED80300D06804700C6C31 +:103B880001B23704413B06080033F02B61B8043317 +:103B9800EB07423B05086D1161B80833E507433B65 +:103BA80005086B1161B80C33DF07443B060869113F +:103BB800002B61B81033D807453B06086611002B67 +:103BC80061B81433D107463B0708F1337843002B1B +:103BD80061B81833C907611161B81C33C507409330 +:103BE800609281982ED80300D06804700C6C00B2E3 +:103BF80002148114133AFD0B4038140800330F2BBC +:103C0800C860013BF60B503A6F1006084093629269 +:103C18004C6C22B2EE07609342932441486C22B365 +:103C2800E8074238E60B0033112BC860013BE10B73 +:103C38006510523A6093429303082841F0072C41DB +:103C4800EE07000048000020FFF0FFFFFF0FFFFF16 +:0C3C58000000F1FF000010FFFFFFFF0F55 +:103C6400D0140F3812087D11FFE348E8080F151D22 +:103C7400242B32393F464C545B6269704093609206 +:103C84000F31C568A03B60B2901440936092F0314C +:103C9400C568A43BF9072093F03260914442C96897 +:103CA400A83B60B1F2072093F03260914842C968A2 +:103CB400AC3BF8072093F03260914C42C968B03BAA +:103CC400F1072093F03260915042C968B43BEA078F +:103CD4002093F03260915442C968B83BE3074093A3 +:103CE40060926443644BBC3BCF07409361920F31B5 +:103CF400C568A03B61B2C90740936192F031C568C1 +:103D0400A43BF9072093F03261914442C968A83B6F +:103D140061B1BB072093F03261914842C968AC3B62 +:103D2400F8072093F03261914C42C968B03BF10727 +:103D34002093F03261915042C968B43BEA07209362 +:103D4400F03261915442C968B83BE30740936192F1 +:0C3D54006443644BBC3BCF0750000020D0 +:083D60000133C47063B03C782C +:083D68000133C47064B03C7823 +:103D70004590013385708C68403AC470030C64B080 +:063D80003C7863B0FE0771 +:103D860001334690C4708C68CA64036400743C783E +:103D9800641040936192AC3BAE3B61B23C7800004A +:043DA80018000020DF +:103DAC00631060934093086C00B33C7814000020BF +:103DBC00003360B061B062B063B064B065B066B03F +:0C3DCC0069B06AB06BB06CB06DB03C78B0 +:083DD8006090A03B60B03C7854 +:0A3DE0006090AC3BAE3B60B03C7855 +:103DEA00C314A498976D8398186DD06CA1904C6CED +:083DFA00546C21B042B08314A7 +:103E0200C41421148598D36D869880B88798936DD1 +:103E1200A898586DC098586D5C6DD46C8C6C81906C +:0C3E2200486C046D9F6D81B00114841485 +:063E2E0023B044B03C7813 +:103E340040396B90040C8C6C4BB03C78C9686BB007 +:023E4400FD0778 +:103E480080337643421060B23C78000000E100E025 +:103E580065100032609340B341B342B343B344B3F7 +:083E68003C780000440000203A +:103E700065100032609340B341B342B343B344B3DF +:083E80003C7800004000002026 +:103E880065100032609340B341B342B343B344B3C7 +:083E98003C7800003C00002012 +:103EA00065100F32609343B380336643431060B2B2 +:0C3EB0003C7800004400002000E100E02D +:103EBC0065100F32609343B380336743431060B295 +:0C3ECC003C7800004000002000E100E015 +:103ED80065100F32609343B380336843431060B278 +:0C3EE8003C7800003C00002000E100E0FD +:103EF4004038210840390A087711FF314093609215 +:103F0400C568A23BA63B60B215044139130872117F +:103F1400F031409360923041C568E0312F41C46C68 +:103F240060B2F03161922C41C568E0312B41C46C20 +:103F340061B23C7841382D084039140867110F31BB +:103F440040936092C5680731C46C60B2F03262116C +:103F5400504220936191C968E0324F42C86C61B10C +:103F6400E90741390C087C10FF3220934C426091E0 +:103F7400C968EE324B42C86C60B1DC074239DA0BD7 +:103F84007510EE32209361916843684B5742E707FE +:103F94004238D00B403909086F10FF3140936092CA +:103FA400C5687731C46CB007413909086A10EE322C +:103FB400209360916843684B5742DE074239BA0B3D +:103FC4006610FF32209350426091C968CC324F4250 +:0C3FD400D3070000500000204C0000202B +:103FE00063108C6C42B024B03C7800000F000800D5 +:103FF000C214C76C0135855B9064020C8214808307 +:0E40000080B081901469403CFD0B0023F50751 +:104010006810803260938C6027103AB24193FE3171 +:10402000846841B3013141938468403AFD0B3C7888 +:08403000240000203AC75AA544 +:10403800C414221465118611609388B3073483B3BE +:10404800013406B384B38493403CFE0B0221224919 +:104058002241486020B8295821B820984A64260887 +:1040680006315B1048B323B3013106B324B324935C +:104078004039FE0B48B3013243B306B344B34A9305 +:10408800443AFE0B0231521048B323B3013106B350 +:1040980024B32A934139FE0B48B323B306B324B3A0 +:1040A8004A93423AFE0B02148414E08281828844C7 +:1040B80022821C61A3823041C1985060B845886152 +:1040C800546020B60322CA07640000205A5A5A5A7C +:1040D800C314003303354E64CC5A02088314403BA2 +:1040E800060C0F6D1469403C020803200F6D14691B +:0A40F8000061808480A60023EF071A +:10410400D21400E0E10041112111013000E08408E3 +:104114002011013000E08C09BF108011FFE3A8FBDF +:1041240000E00E0940946095CA605D10C864F70B06 +:10413400609560B4003364A46584403B1408013383 +:1041440065A478102083018B00E0D215413804A4C3 +:104154000508351000E06008E2074238E00B331030 +:104164000130F907413BDB0B023365A46D10018B71 +:1041740000E0E6154038836C04A4D10F2C10013004 +:1041840000E04A08CC070000A4000020547A000094 +:104194006A7A0000D4000020C4000020B70B00009D +:1041A40000000020757A0000857A0000957A0000EE +:1041B400D014231432320033087C62B801B860B8DA +:1041C40040986198C864030C031490146298002307 +:0C41D40062B8FFE34DFB60980023F20787 +:1041E0002314003362B801B860B840986198C8647D +:1041F000030C03143C786298002362B86098002393 +:02420000F407C1 +:10420400D2142414951000350094FFE3D7FD0094D4 +:10421400A1B8A0B8083300320131FFE3E6FD8033D2 +:10422400634361B800940033A3B8A2B8A0B80032C5 +:104234008031FFE3E6FD013229100094FFE3F7FD2E +:104244000094FFE3C9FD009402320131FFE3F2FD63 +:10425400FFE3FAFD041492140C000020AC120000D9 +:10426400D0142114FFE350FA01310130FFE372FA54 +:104274000030FFE3CBFA80310833003221410230B1 +:10428400FFE380FA803018310240FFE3FBFA01308B +:10429400FFE3D0FAFFE3ECFAFFE31EFB403360B820 +:1042A400C03180336443003223410030FFE3F6FA27 +:1042B400FFE304FBFFE362FB003000E0A3180114FA +:0242C400901454 +:1042C800D0147B10013140937A106AB26DB26C92AF +:1042D800C468403BFD0FFFE3C3FF00E04F05FFE369 +:1042E8005BFB01310D30FFE369FB01310E30FFE369 +:1042F80065FB01310F30FFE361FBFFE377FBFFE371 +:104308007FFF2D10003000E03F052C10013000E049 +:104318003B052B10023000E0370500E0BF0800E045 +:104328004F0D00E0B71300E0431390146000002025 +:10433800FFFFFF0F34610000306700009C68000039 +:1043480060146214036C7A1180326093C8602393FE +:10435800013040684039040C01B36314611423939D +:10436800023040684039F90B2393083040684039DF +:10437800F40B2393103040684039EF0B23934868BF +:104388004039030C41B3EA0780322393414248681D +:104398004039F90B80322393424248684039F30B85 +:1043A80080322393434248684039ED0B803223938F +:1043B800444248684039030C036CE5078032239374 +:1043C800454248684039DF0B8032239346424868AB +:1043D8004039D90B80322393474248684039D30B80 +:1043E800803223934B4248684039CD0B8032239367 +:1043F8004C4248684039C70B803223934D42486885 +:104408004039C10B803223934E4248684039BB0B78 +:10441800803223934F4248684039B50B803223934A +:10442800564248684039AF0B9907000060000020E9 +:10443800601462147810013160934B938468403A99 +:10444800040C2CB3631461144B9302318468403A12 +:10445800F90B4B9304318468403AF40B80322B9368 +:10446800454248684039030C4CB3ED0780322B9322 +:10447800464248684039F90B80322B9347424868D6 +:104488004039F30B80322B93484248684039ED0B92 +:08449800DA07000064000020B7 +:1044A0006014621478100131609348938468403A34 +:1044B000040C27B363146114489302318468403AB2 +:1044C000F90B489304318468403AF40B4893103157 +:1044D0008468403AEF0B489320318468403AEA0BF5 +:1044E000489340318468403AE50B489380318468B2 +:1044F000403AE00B80322893494248684039DB0F4C +:0845000047B3D9075400002065 +:1045080060146214D114871380326094C8603593A4 +:10451800013040684039030C17B324043593023046 +:1045280040684039FA0B3593043040684039F50B40 +:104538003593083040684039F00B359310304068A7 +:1045480040391F0C17B3003201310030FFE3D0F9B6 +:10455800013201310130FFE3CBF960944B937212C1 +:1045680040B360948032C8602B9301304068403972 +:10457800610C0DB3EED90120809802146314611404 +:104588003593203040684039100C17B300320131A0 +:104598000130FFE3ADF9013201310030FFE3A8F942 +:1045A80060944C936112DD07359340304068403980 +:1045B800B40B359348684039030C57B3D30780329E +:1045C8003593414248684039F90B8032359342426D +:1045D80048684039F30B8032359343424868403984 +:1045E800ED0B80323593444248684039E70B8032FE +:1045F8003593454248684039E10B8032359346424D +:1046080048684039DB0B8032359347424868403967 +:10461800D50B80323593484248684039CF0B8032F9 +:1046280035934942486840399D0F57B3FFE3EEFC84 +:1046380099072B930230406840399C0B2B93043028 +:1046480040684039970B2B93083040684039920BEB +:104658002B931030406840398D0B2B9320304068E5 +:104668004039880B2B93403040684039830B2B939B +:1046780048684039030C4DB37E0780322B93414282 +:1046880048684039F90B80322B93424248684039D8 +:10469800F30B80322B93434248684039ED0B6B078C +:0C46A8002400002000020020FC01002083 +:1046B40060146214D214AB100134609585B3FF30DA +:1046C400FFE374FB40956392D068403B020C85B2D3 +:1046D400EED90220A1988098031463146114000099 +:0446E400140000209E +:1046E800601462147E10013160937F2355938468AF +:1046F800403A040C37B3631461145593023184684B +:10470800403AF90B559310318468403AF40B5593AD +:1047180020318468403AEF0B803235934142486833 +:104728004039030C57B3E807803235934242486852 +:104738004039F90B80323593434248684039F30BCE +:1047480080323593444248684039ED0B80323593C6 +:10475800494248684039E70BCF070000280000208D +:10476800601462147910013160934A938468403A66 +:10477800140C57102BB34CB34293846C42B3803261 +:104788004D4240B3023142938468403AFD0B429354 +:10479800803A42B3631461144A9302318468403A00 +:1047A800030C2BB3F8074A9304318468403AFA0B98 +:1047B8004A9308318468403AF50B4A93103184686B +:1047C800403AF00BE80700001C00002053CA000024 +:1047D80060146214D0147610023160934393846895 +:1047E800403A0B0C23B30093007400E09303EED916 +:1047F8000020011463146114439301318468403A22 +:10480800030C23B3F507439308318468403AFA0B45 +:10481800439304318468403AF50B803223934C4229 +:1048280048684039E50F43B3E3070000440000201F +:1048380060146214D0147F1002316093439384682B +:10484800403A0B0C23B30093007400E07D03EED9CB +:10485800002001146314611423930132486840391D +:104868000D0C43B3741040B374106093413BF00BCC +:1048780053106092002360B2EB07439308318468B9 +:10488800403A030C23B3E407439304318468403A65 +:10489800FA0B803103932C4104684038D90F23B3B5 +:1048A800651040B365106093413BD20B4510E20799 +:1048B80040000020D8000020DC000020E00000209C +:0448C800E4000020E8 +:1048CC0060146214D01476100231609343938468A0 +:1048DC00403A0B0C23B30093007400E04D03EED967 +:1048EC000020011463146114439301318468403A2D +:1048FC00030C23B3F507439308318468403AFA0B51 +:10490C00439304318468403AF50B803223934C4234 +:10491C0048684039E50F43B3E30700003C00002032 +:10492C006014621478110131609347938468403AA3 +:10493C00030C28B30704479302308068403A040CF8 +:10494C0008B363146114479304308068403A550CE3 +:10495C0008B30293AA3282643E08023143938468FE +:10496C00403AFD0F113242B3103143938468403A00 +:10497C00FD0B023143938468403AFD0F123242B36F +:10498C00103143938468403AFD0B023143938468A1 +:10499C00403AFD0F133242B3103143938468403ACE +:1049AC00FD0B023143938468403AFD0F143242B33D +:1049BC00103143938468403AFD0B02314393846871 +:1049CC00403AFD0F153242B3103143938468403A9C +:1049DC00FD0BB80743938468403AB40B42B31031D3 +:1049EC0042B342B342B342B342B342B342B3439332 +:1049FC008468403AFD0BA607479308318468403A17 +:084A0C00990BA00738000020FF +:104A14006014621473100431609349938468403ABB +:104A2400020C2BB3499301318468403A020C2BB336 +:104A3400499302318468403A030C2BB31004499320 +:104A440008318468403AFA0B499310318468403A3B +:104A5400F50B499320318468403AF00B63146114D8 +:044A640030000020FE +:104A6800601462146A10013160937F234C93846848 +:104A7800403A040C2BB36314611480322C934942DE +:104A880048684039F90F4BB3F70700006000002071 +:104A9800601462146A10023160937F234C93846817 +:104AA800403A040C2BB36314611480322C934A42AD +:104AB80048684039F90F4BB3F70700006000002041 +:104AC800601462147010043160937F234C938468DF +:104AD800403A040C2BB3631461144C930831846876 +:104AE800403AF90B80322C934B4248684039030C0A +:104AF8004BB3F20780322C934C4248684039F90B8B +:084B0800EB0700006000002033 +:104B1000601462146610103160937F234C93846894 +:104B2000403A020C2BB363146114000060000020B3 +:104B300060146214D0147910803260937F232C9318 +:104B4000434248684039070C4BB3EED900200114AA +:104B50006314611480322C93444248684039F50B49 +:104B600080322C93454248684039EF0B80322C93B9 +:104B7000464248684039E90B80322C9347424868E6 +:104B80004039E30B80322C93484248684039DE0FAD +:0C4B90004BB300E01503DA0760000020C2 +:104B9C00601462146B10013160934E938468403A38 +:104BAC00030C30B30B044E9302318468403AFA0B79 +:104BBC004E9304318468403AF50B63146114000081 +:044BCC0018000020AD +:104BD000601462147110013160934C938468403A00 +:104BE0000A0C2DB34193863A41B34093003240B34F +:104BF000631461144C9302318468403A030C2DB362 +:104C0000F8074C9304318468403AFA0B4C9308310E +:0C4C10008468403AF50BED07100000200E +:104C1C0060146214D0147910013160934C93846841 +:104C2C00403A030C2DB318044C9302318468403A7B +:104C3C00180C2DB37210408300228874219300212C +:104C4C00093A40A321B3080C003240A3429300223E +:104C5C0042B300E08F02EED90020011463146114FA +:104C6C004C9304318468403ADE0B4C9308318468D1 +:104C7C00403AD90BF10700000C000020CC000020BA +:024C8C003C7872 +:084C8E00601462146314611448 +:084C9600601462146314611440 +:084C9E00601462146314611438 +:084CA600601462146314611430 +:084CAE00601462146314611428 +:084CB600601462146314611420 +:084CBE00601462146314611418 +:084CC600601462146314611410 +:084CCE00601462146314611408 +:084CD600601462146314611400 +:084CDE006014621463146114F8 +:084CE6006014621463146114F0 +:104CF000C11400C0236080C0207046100034409270 +:104D000084B2BF3B00B221B203C02064029281147E +:044D1000040000207B +:104D1400C11400C0236080C020704610013440924A +:104D240084B2BF3B00B221B203C02064029281145A +:044D34000400002057 +:104D3800C11400C0236080C0207046100034409227 +:104D480084B2BF3B00B221B203C020640392811435 +:044D58000400002033 +:104D5C00C11400C0236080C0207046100134409202 +:104D6C0084B2BF3B00B221B203C020640392811411 +:044D7C00040000200F +:064D800080C120743C78A4 +:064D860080C020703C78A3 +:104D8C00D21400744138476D1F0C4038040C423863 +:104D9C008D0C9214FFE35CF800310030FFE3A6F8B1 +:104DAC006D128032009343422C12FFE315F9FFE39E +:104DBC0073F8943200310A12FFE3BCE96912033232 +:104DCC0042B3A4B3E7078812943200310712FFE311 +:104DDC00B1E988320031136CFFE3ACE964120332A1 +:104DEC0042B3A4B35F2463120F31609367B40133F1 +:104DFC0065A481120094FFE399F60F320F31003055 +:104E0C00FFE3A6F60F30FFE329F78031013228418A +:104E1C000130FFE36BF58031003228410130FFE3B4 +:104E2C0065F5803128410130FFE380F58031009435 +:104E3C002841FFE395F5FFE395F5FFE315F8023103 +:104E4C000130FFE353F86D11003200932311FFE39F +:104E5C00C3F8FFE32FF8009400320B31FFE3F6F5B3 +:104E6C00009400320C31FFE3F1F500320094033171 +:104E7C00FFE3ECF500940B31FFE372F700940C3177 +:104E8C00FFE36EF77E1003310093FFE369F7003206 +:104E9C0000940731FFE3DAF500940731FFE350F695 +:104EAC0000940731FFE35CF77507FFE3E9F7023184 +:104EBC000230FFE31BF87310003200932710FFE35E +:104ECC008BF8FFE305F8943200310F10FFE332E961 +:104EDC006E1076074400002088130000C0020020EA +:104EEC0040030020E803002054030020D4030020DA +:104EFC00D400002050000020400000204C00002076 +:0C4F0C003C0000202C020020AC02002021 +:104F18006A10228B3E324964030C003242AB428B4A +:104F2800225A22AB2610846000A24610409243B356 +:104F3800013240A33C78000040030020C00200205A +:044F4800D400002071 +:104F4C006A10228B3E324964030C003242AB428B16 +:104F5C00225A22AB2610846000A24610409243B322 +:104F6C00013240A33C780000D403002054030020FD +:044F7C00D40000203D +:104F80006A10228B3E324964030C003242AB428BE2 +:104F9000225A22AB2610846000A24610409243B3EE +:104FA000013240A33C780000AC0200202C0200201B +:044FB000D400002009 +:104FB400D414211400B8C76D00359F10DF1060941D +:104FC400413B2D0CFFE3DFFE07310096FFE3C8F6FB +:104FD400013361B4003362B463B4FFE3D1FE7810EB +:104FE4009F6C00932098FFE303F86430FFE3F8F824 +:104FF400002563334C65070C6294CD65F70B63940D +:10500400CD65F40BFFE3BFFE00960731FFE3ACF67A +:10501400003361B4FFE3B4FE011494146430FFE37D +:10502400DFF800256433D664CE0F07310096FFE322 +:105034009FF6C607D8000020500000204000002042 +:10504400D414231402B820B800358911C91160940E +:10505400413B3E0C6811C483403E61B84508E511EC +:10506400FFE391FE07310097FFE37AF6013261987E +:1050740041B444A3C2B446A3C3B4FFE381FE5F10AA +:10508400009222984098FFE3B3F76430FFE3A8F856 +:10509400002563334C65080C629440988D64F60BCC +:1050A40063948D64F30BFFE36EFE00970731FFE317 +:1050B4005BF6003361B47210409372105FB3619871 +:1050C400003246A3FFE35CFE1B6C031494146430AB +:1050D400FFE386F800256433D664BD0F07310096DC +:1050E400FFE346F6B5070136F0070000D8000020BC +:1050F400500000204804002040000020D40000207C +:04510400E80300209C +:10510800D41422148B6D479840B84359476D89745D +:1051180063318464C36D200C911064320031136CC8 +:1051280061B8FFE309E8976C136C5F6CFFE348E82C +:105138004032906061987EB4B7AA60334098D060DE +:105148005DB4013249A347A30032CAA348A37F2410 +:105158006410609361B4021494140000E803002002 +:04516800D40000204F +:10516C006310003249A347A33C7800004804002098 +:10517C00D214AE10603414616484403B150C668408 +:10518C00413B120CFFE3FBFD6584413B0B086810AF +:10519C0040937F958E607C950523C864030C003387 +:1051AC0064A4FFE3E9FD9214E8030020D40000207E +:1051BC00D21494106035FFE3E2FD5061013364A515 +:1051CC000A317110409300938033D06060935FB4C8 +:1051DC000E60FFE3BFFD1CB40F318C100094FFE395 +:1051EC00CEF541380608013365A5FFE3C5FD9214E1 +:1051FC0000940F31FFE3C3F54038F80B0033F5078B +:0C520C00E8030020D40000205000002027 +:10521800231462B841B820B8D1142214649861B834 +:1052280001335910C0704092C868403B250C971054 +:10523800771045946093495B64B446B465B41C30F8 +:1052480040B8803153101060FFE31AE741741C30F6 +:105258001060FFE3ADFE1C30051B419880311060E3 +:10526800FFE33DE74174136C1B20FFE3A1FE02310D +:105278000910FFE39DFE0214EED901208098051461 +:105288003C7800006C000020D8000020D4000020EA +:08529800B97A0000C77A00009A +:1052A000D41421146359CD746334D06400B83C0C19 +:1052B000413A050C01361B6C011494147C106037C4 +:1052C000CC6148878A87086529088034B9100C6149 +:1052D0000194C09582611E9318641A08403A070C25 +:1052E0004095C0949A607D93C864E50F0098FFE3F1 +:1052F000ABFE4038836DDF0B4887002260958874D1 +:105300002D10023060B448A7FFE388FFD5072B10AB +:105310000230FFE383FF0236CF0729100230FFE39C +:105320007DFF0336C9070436C7070000E8030020E5 +:10533000D4000020CA7A0000DD7A0000E67A00007E +:10534000D11493106984413B21087210378B0132CC +:105350001110FFE3A7FF07A4012800740138160805 +:105360002E100230FFE35AFF003369A46C84413BE6 +:105370000D082B100230FFE351FF6A104A106093B2 +:105380004D92FF2343B3FFE301F39114480400203F +:1053900028040020E8030020F37A0000FC7A0000D3 +:0853A00060000020E00600207F +:1053A800D41422148B6DCF6D5A100133C070409203 +:1053B800C868403B200C9810781045946093495B6E +:1053C80064B446B465B41C3040B8803154101060E1 +:1053D800FFE356E641741C301060FFE3E9FD7110ED +:1053E8005B6D61B81B24795DCC65070C02310E102A +:1053F800FFE3DEFD02149414608541988031136C3C +:10540800FFE33EE64174136CFFE3D2FD0025EC0791 +:105418006C000020D8000020D4000020B97A0000D9 +:08542800067B0000C77A0000BA +:10543000231462B841B820B8D0142114629860B81F +:1054400001334910C0704092C868403B070C031BF1 +:10545000409880310510FFE346E60114EED90020A4 +:0C54600004143C786C000020F4000020D4 +:10546C00D01441380D0C4038050C42380D0C00306E +:10547C00060468100A310093FFE381F49014651060 +:10548C0009310093FA07631008310093F607000006 +:04549C00500000209C +:1054A000D2148211013200940A31FFE3D5F2009444 +:1054B00001320931FFE3D0F2013200940831FFE3F9 +:1054C000CBF200940A31FFE337F300940931FFE394 +:1054D00033F300940831FFE32FF31432003114103A +:1054E000FFE32EE61430FFE367F60034B0101074CB +:1054F000FFE3BEFF403807080133D0708F6C63951F +:10550000C86C63B50024433CF30B69100731439327 +:10551000486826A3003144B327A300300033251088 +:10552000FFE37CFE92140000500000207004002075 +:04553000297B0000D3 +:10553400C36C406000304E6402083C7840830860CD +:0655440000740023F907CA +:10554C00D1142F14036D003332320031021860B8BD +:10555C006EDC0210FFE3EEE5BB6C04311F11FFE3C0 +:10556C00B7F54ED80000A633CA64040C01300F14F2 +:10557C0091142ED802006ED8010028414C6C3233A5 +:10558C004C64F50F021A1611FFE3A2F52C31021828 +:10559C00FFE3CCFF6ED803000E64E90B2C3202192A +:1055AC00136CFFE30BE68F11FFE35EF10094FFE356 +:1055BC0033DE836CC76C00302B11FFE329FE0194A2 +:1055CC00FFE32ADE836CC76C00302811FFE320FE5A +:1055DC000294FFE321DE836CC76C00302411FFE3DF +:1055EC0017FE0394FFE318DE836CC76C00302111A7 +:1055FC00FFE30EFE0494FFE30FDE836CC76C0030F8 +:10560C003D10FFE305FE0594FFE306DEC76C836CDB +:10561C003A100030FFE3FCFDFFE326F14694003026 +:10562C003710FFE3F5FD479400303610FFE3F0FD33 +:10563C00489400303410FFE3EBFD499400303310F4 +:10564C00FFE3E6FD00304A943110FFE3E1FDFFE398 +:10565C000BF100308D070000800100108401001058 +:10566C00840400204C7B0000577B0000637B00000F +:10567C006F7B00007A7B00008A7B00009A7B000025 +:10568C00AA7B0000BD7B0000D07B0000E27B000009 +:10569C00D0142E140033592B6EDC00002C336EDC2E +:1056AC00010000336EDC0200011B436C2C320F6CCA +:1056BC00FFE384E52C31FFE339FF0EDC0300BB6C08 +:1056CC0030310410FFE3B4F400300E1490140000D9 +:0456DC008001001039 +:1056E000D414A9128912D4955B6C0194FFE306DDF2 +:1056F0004038800CC1B40136F5955F6C0294FFE32D +:10570000FDDC4038030CE2B40136F3955F6C009485 +:10571000FFE3F4DC4038030CE0B401363695039423 +:10572000FFE3ECDC4038030CE0B401363795049419 +:10573000FFE3E4DC4038030CE0B40136389505940F +:10574000FFE3DCDC4038030CE0B401367995489483 +:10575000CA64030C68B401367B954A94CA64030C8E +:105760006AB401367A954994CA64460C69B4071143 +:10577000FFE396FFFFE37EF025110030FFE34EFDCF +:105780000094FFE34FDD836CC76C00302111FFE311 +:1057900045FD0194FFE346DD836CC76C00303E108D +:1057A000FFE33CFD0294FFE33DDD836CC76C0030FA +:1057B0003A10FFE333FD0394FFE334DD836CC76CE1 +:1057C00000303710FFE32AFD0494FFE32BDD836CE8 +:1057D000C76C00303310FFE321FD0594FFE322DDA9 +:1057E000836CC76C00303010FFE318FDFFE342F01C +:1057F000941400368207413EBB0F2C100030FFE3AB +:105800000DFDF70768050020840400200A7C0000D5 +:10581000507B00005B7B0000677B0000737B000017 +:0C582000F77B0000FF7B0000077C00000D +:10582C00D114FE33764361B062B063B0003364B020 +:10583C0065B0751166B0013367B074116AB080320F +:10584C007311574268B0731140B069B00030321117 +:10585C00FFE3DEFC9111FFE307F00094FFE3DCDCD7 +:10586C00836CC76C00302E11FFE3D2FC0194FFE374 +:10587C00D3DC836CC76C00302A11FFE3C9FC0294A3 +:10588C00FFE3CADC836CC76C00302711FFE3C0FC5C +:10589C000394FFE3C1DC836CC76C00302311FFE37E +:1058AC00B7FC0494FFE3B8DC836CC76C00302011A8 +:1058BC00FFE3AEFC0594FFE3AFDCC76C836C3D10DB +:1058CC000030FFE3A5FCFFE3CFEF469400303A1025 +:1058DC00FFE39EFC479400303810FFE399FC48949A +:1058EC0000303710FFE394FC499400303510FFE38F +:1058FC008FFC4A9400303410FFE38AFCFFE3B4EFD2 +:10590C0091140000409C000080EE3600B80B0000A3 +:10591C00C02709001B7C000084040020337C00009D +:10592C00427C0000527C0000627C0000717C000014 +:10593C00857C0000997C0000AD7C0000C47C0000DC +:08594C00DB7C0000F17C00008F +:10595400D2143014436D0A3200313B6CFFE3EEE3A2 +:10596400323200310318FFE3E9E363118793403CCB +:105974003B0C62110C6186444111B0339060634367 +:105984008C64340CBB6C0431136CFFE3A5F34ED868 +:105994000000A633CA642C082ED802006ED8010079 +:1059A40028414C6C32334C64160C0E5C031AFFE332 +:1059B40093F30C310318FFE3BDFD6ED803000E64AE +:1059C4000C0803190C32176CFFE3FCE32D100030B4 +:1059D400FFE322FC0030060400302B10FFE31CFC24 +:1059E4000430101492140130FD070230FB07033019 +:1059F400F90700008404002008004000C0FDFFEF08 +:085A04000A7D00001F7D000077 +:105A0C00D4142F14C711C36D6796403B430C2696D4 +:105A1C004039420C00320190002A82643F0C002075 +:105A2C00046401B7350860B8FFE370F9002007B6CD +:105A3C00013460985C10A7964861A6455B104865D8 +:105A4C00040867B64B6D00340033592B6EDC040030 +:105A5C000C336EDC050000336EDC0600021B0C32CE +:105A6C000F6C5F6CFFE3AAE30C31FFE35FFD0EDC10 +:105A7C000700011A1031176CFFE3DAF2413C0508FC +:105A8C000810FFE307FE0034136C0F149414003459 +:105A9C00D2070134FA070234F8070334F607000082 +:0C5AAC008404002008004000C007001027 +:105AB800D1143214036D003340320031021860B83B +:105AC8006EDC0210FFE338E38030BB6C0431154014 +:105AD800FFE300F34ED80000AE33CA64040C013073 +:105AE800121491142ED802006ED8010028414C6C73 +:105AF80040334C64F50F021A1B10FFE3EBF225311B +:105B08000218FFE315FD6ED803000E64E90B253279 +:105B18000219136CFFE354E39410FFE3A7EE4084EB +:105B280033100030FFE376FB418432100030FFE38E +:105B380071FB428430100030FFE36CFB43842F106C +:105B48000030FFE367FB44842D100030FFE362FB65 +:105B58000030525C2B10FFE35DFBFFE387EE003063 +:105B6800C007000004000010B0040020877D00007A +:105B7800957D0000A37D0000B47D0000C47D000079 +:045B8800D57D0000C7 +:105B8C00D01432140033512B6EDC000025336EDC44 +:105B9C00010000336EDC0200011B436C25320F6CDC +:105BAC00FFE30CE32531FFE3C1FC0EDC0300803086 +:105BBC001540BB6C2931FFE33BF2003012149014FA +:105BCC00D214003360A0063361A0053363A0B25831 +:105BDC00113364A0036D20320031176CFFE3AAE28D +:105BEC0011322510176CFFE3E9E2136CFFE3CAFFD7 +:085BFC0092140000E37D00009B +:105C0400D3146380453B036D210C053363A0013538 +:105C14006184463B040C063361A401356484513B22 +:105C2400040C113364A40135D25C11322A101B6CAC +:105C3400FFE3FAE240380C0C448427101B6CFFE3AA +:105C4400C1E2136CFFE3A2FF05040035E207413D06 +:085C5400F90F9314E37D000039 +:105C5C00D2147A110132609341B34593A13AB03A10 +:105C6C0045B30A30FFE3A2F2951136110030FFE381 +:105C7C00CFFA25320031136CFFE35CE2136CFFE3C7 +:105C8C0017FF711166834084CA64436D050C136C55 +:105C9C0060A4FFE377FF403D09113508FFE3AEFF39 +:105CAC002A110030FFE3B4FA2C3200310811FFE363 +:105CBC0041E20711FFE346FC036D836C25110030B4 +:105CCC00FFE3A6FA403C040C0111FFE3ABFD2211EB +:105CDC000030FFE39DFA0C3200310011FFE32AE2A1 +:105CEC001E10FFE333FE036D836C3D100030FFE3A9 +:105CFC008FFA403C20083B100030FFE389FA00E0AB +:105D0C0075009214FFE35EFFFFE3AEED361000303A +:105D1C00FFE37EFA428435100030FFE379FA4484C5 +:105D2C0033100030FFE374FA521033100030FFE3ED +:105D3C006FFAB7073110E10764000020B0040020AF +:105D4C00F47D0000700400203D7E000084040020DF +:105D5C00727E00008B7E0000D8040020C17E000003 +:105D6C00D87E0000297E0000A37D0000C47D0000C9 +:0C5D7C00B5040020D57D0000ED7E000085 +:105D8800D4141439836D4B6D076D020C1434D0751F +:105D9800143200310810FFE3CFE19F6C5B6C0610F2 +:105DA800FFE30EE2451001332D8AD470C46C99A22A +:0C5DB8006DAA94146D0500206805002001 +:105DC400D014483200310810FFE3B8E13C3200310E +:105DD4000610FFE3B3E1783200310510FFE3AEE1D2 +:105DE40090140000E40400202C0500206805002025 +:105DF400D314AE118E11C19534941B6CFFE37CD97E +:105E04004038020CD4B4C29535941B6CFFE374D9AA +:105E14004038020CD5B4C09533941B6CFFE36CD9A5 +:105E24004038020CD3B4C39536941B6CFFE364D999 +:105E34004038020CD6B4C49537941B6CFFE35CD98C +:105E44004038020CD7B4C59538941B6CFFE354D981 +:105E54004038020CD8B477108F6D409328944A646C +:105E6400070C3510043048B449B4FFE3E1FA429614 +:105E74006F94CA64060C311004304FB4FFE3D8FAAF +:105E8400689559948E64020C79B46A955B948E6417 +:105E9400020C7BB469955A948E64020C7AB428106F +:105EA4000030FFE3B9F9931484040020680500204E +:105EB400D8040020027F0000117F0000247F00002E +:105EC4004060003342640408CE6C0C743C7840801B +:085ED400C860CC740020F70740 +:105EDC00D3149E10803268945042C868403BBC106A +:105EEC003108FFE303DE00327A10FFE35FDCFFE3EF +:105EFC00E5DD836D008CFFE333D95B6CFFE30ED8DB +:105F0C00E8313641FFE30AD8E6313641FFE306D8E3 +:105F1C003495FFE303D83795FFE3D0D7036D2E10EC +:105F2C00136CFFE3FBD7FFE3EFD60CB5136CFFE369 +:105F3C0073D9836CC76C01302810FFE369F9136CBB +:105F4C0093140034ED0700002C0500206805002098 +:0C5F5C0000408F400000C8424D7F000054 +:105F6800D3149A10803268945042C868403BB810E5 +:105F78002A08FFE3BDDD00327610FFE319DCFFE3FA +:105F88009FDD836D028CFFE3EDD85B6CFFE3C8D720 +:105F9800D2313641FFE3C4D73395FFE3C1D7036D50 +:105FA8002D10136CFFE3BCD7FFE3B0D60BB5136C11 +:105FB800FFE334D9836CC76C01302810FFE32AF95A +:105FC800136C93140034ED072C050020680500209D +:0C5FD800000059400000C842577F000044 +:105FE400D4142214DF38436D030C00301660FFE331 +:105FF400BBD87910E38B036D1F6CFFE3B5D8536CEA +:10600400FFE390D7E0313641FFE38CD7DE319310C4 +:106014003641FFE387D73494FFE384D73694FFE314 +:1060240081D73394FFE37ED73894FFE34BD7836D56 +:10603400FFE36ED60EB41B6CFFE3F2D8836CC76C1F +:10604400E1B8A0B801302610FFE3E6F81B6C021497 +:10605400941400002C05002068050020617F0000D6 +:10606400D41425148E11003370B46F94436D836C73 +:1060740060B8043071942B11FFE3DAF951949464FD +:106084006845460C4842484A495D50B4684B5094B0 +:10609400CF94886171B4CFB41B6C44B8FFE32ADD9C +:1060A400FFE310DD3494FFE33DD73394FFE33AD7A5 +:1060B4007D10668BC36D0F6C63B8FFE355D85F6CBE +:1060C400FFE330D7C4313641FFE32CD73710C36D1B +:1060D400FFE328D7FFE31CD6639808B401B860B87F +:1060E4004498D76CC2B801303110FFE395F86F942F +:1060F40062B8689461B8509404306B10668B60B8D1 +:10610400D76C2B10FFE394F91F6C05149414684B9F +:106114008031495B3141846050B4BA07680500207E +:10612400717F00002C05002000007A44997F000054 +:10613400D414241447598974083A02B8876D090C99 +:10614400876C00302503FFE367F8013004149414CE +:10615400A7034037D4614087403AE3B807080030CA +:106164002A03FFE359F80230F2071E301E320031D1 +:106174001460FFE3E3DF208D85742FAD484A7F313F +:1061840084682034146141B802339B6C7DA4229846 +:106194006ED80400136C7FA5FFE314E03D845860BF +:1061A40044743DA41E30002945741460FFE38AFE44 +:1061B400635EC2988C6120864264836C220C619871 +:1061C40060B80030C76C3D13FFE326F81E327D84AF +:1061D40094603B130230FFE3E7F83D8400291E304E +:1061E40045741460FFE36EFE3F856086836C20B8BF +:1061F40004303413FFE31CF9023362A70430A70709 +:10620400013341980230301382B862A7FFE304F8E7 +:106214005F856F314A647E0C84646298360C533A0D +:10622400700C133A0908413A630C403A510C423A53 +:10623400B40C00308C0726314A64970C8464100C2B +:1062440024314A64F70B00834183484210400860BC +:1062540062830C607D1208B3FFE340FEEB07283134 +:106264004A648F0C2C314A64E50B0083418350420D +:106274001840086042834842086063830C607312CC +:106284000AB3FFE3AFFED60773314A64520C846449 +:106294000D0C71354A65608401842C12460C94649B +:1062A40040086843C06062A9C50775314A644F0C51 +:1062B4004864460C76314A64510C77314A64BA0B0F +:1062C400408348426183C860401267AAB307608470 +:1062D40041846843C860CD745C116AAA5C118E6401 +:1062E40063980408013242A3A5070232FD076084C3 +:1062F40041846843C860CD745411413B6BAAF107D3 +:10630400608441846843C860CD7450116CAA5111F3 +:10631400E707608441846843C8604C1168AA8A070F +:106324006843C06060A986076843C06061A98207AA +:10633400608441846843C860441163AA7B07608415 +:1063440041846843C860411164AA7407608441842D +:106354006843C8605D1065AA6D0740834842618345 +:10636400C8605A1066AA66070084618468431040B6 +:106374000C6062840C60751007B3FFE3F5FD5A07E7 +:106384000083418348421040086062830C606F10B0 +:106394000CB3FFE367FE4E07408348426183C86045 +:1063A4004A106EB24C106EAA45070000D37F00005D +:1063B400E4040020DE7F0000E87F0000FF7F00008F +:1063C400038000001D8000002C050020040A00004A +:0863D4006504000068050020CB +:1063DC00D1142E14011832320031FFE3ABDE7611EA +:1063EC008483FA3200242E9342421075847C0993E4 +:1063FC0028930F3C01595C0884A30034752C8EDC67 +:10640C00040084838EDC050000340B2C8EDC06002B +:10641C004EDC10000EDC14002EDC18008711868474 +:10642C008EDC070002348EDC0A0001348EDC0B009B +:10643C008B936C936EDC0E00684B6EDC0F00684A1D +:10644C006EDC1100704A6EDC120068486EDC1500C0 +:10645C0070486EDC160068496EDC190070496EDC01 +:10646C001A0078496EDC1B000033584A572B8EDC1F +:10647C000C004EDC13006EDC1C0058481933884CA1 +:10648C00193101184EDC17006EDC08008EDC0D0093 +:10649C00FFE314FD323360B896330EDC0900614320 +:1064AC00013219310118FFE32BF60E14911400344C +:0C64BC00A4070000680500207004002008 +:1064C800D21421141139036D476D430C67800132D2 +:1064D800C868403B100C6B804A8050427843C860C3 +:1064E80049804842C8604880C8605B10C864030897 +:1064F8005A1079B26C84403B0033CD60581067A2C3 +:106508006784614B0132C868403B100C70844F842B +:1065180050427843C8604E844842C8604D84C86081 +:106528004D10C86403084D107AB2FFE3D7F814334E +:1065380060B8963361430132576C136CFFE3E2F5A0 +:10654800136C54740632FFE31DFC003001149214DE +:106558000130FD07E70300006805002070040020F3 +:10656800D0142E14011832320031FFE3E5DD611139 +:106578004483002288740F3A3A0844A364836EDC8B +:10658800050000330B2B00326EDC0600752A7A10EA +:106598000B314EDC0400468367834EDC07006EDC5B +:1065A8000D00043200334EDC0A00572B05324EDC56 +:1065B8000B006EDC0E0003320B3301184EDC0C00AE +:1065C8006EDC0800FFE37CFC323360B896330EDCE7 +:1065D80009006143011801320B31FFE393F50632DC +:1065E8000B310118FFE3CEFB0E1490140032C607DE +:0865F80068050020700400207A +:10660000D014053808086A10FFE37AD30306080A95 +:106610000C0E33B30030901434B3FD0735B3FB07D1 +:1066200036B3F90737B3F70738B3F5076805002025 +:10663000D41423140939436D876D360C8780053CCB +:1066400035082880093206398060C76C020C063391 +:10665000D060CC74F710D2640F08FFE343F8143312 +:1066600060B89633176C614301325B6CFFE34EF503 +:1066700000300314941401822082084004602282B6 +:106680003041046062B841B8FFE370D55F6CFFE34E +:10669000D7D4436C136CFFE3B5FF0024419802226A +:1066A00010756298D9070130E5070230E307000052 +:0466B0000050C3478C +:1066B400D41422140939436D876D320C8780053C4C +:1066C40031082880093203398060C76C020C033317 +:1066D400D060CC74F510D2640B08FFE301F8176C9A +:1066E40058740632FFE350FB003002149414018204 +:1066F40020820840046022823041046061B840B8BE +:10670400FFE332D55F6CFFE399D4436C136CFFE372 +:1067140077FF00244098022210756198DD0701304C +:0C672400E5070230E30700000050C34707 +:10673000D41421140739036D876D540C24808665A9 +:106740000A0C4A122A120030FFE368F50235176C72 +:106750000114941440808A33CA6407086458002BDB +:106760004083A833CA64080C401222120030FFE3B1 +:1067700055F50335ED074280F433CA64080C5B110C +:106780003D110030FFE34AF50435E2077B114380F9 +:106790006683CA64080C551139110030FFE33EF5D9 +:1067A0000535D607FFE390FB4038436D080C4F11C9 +:1067B00034110030FFE332F50635CA076184F21167 +:1067C00046843211003064A7FFE328F56684443B19 +:1067D000360C043B0908423B2A0C023B2B08413B88 +:1067E000230C0135B507543B2D0C143B1208533BC9 +:1067F000F90B689769B7661160937CB7143360B87A +:106800009633614301325B6C136CFFE37FF4A007A6 +:10681000553B260C21328E64E50B1F326784C86815 +:106820005C1060B2EC07FFE3A3F49207FFE3D8FD2E +:106830008F075B6C136CFFE349FE8A07FFE396FE4C +:10684000870735100430FFE3F5F50033131062B00D +:1068500068B76FB769B760B0FFE3DAF8D0075B6C71 +:10686000136CFFE3E7FE7407887600007C8200006B +:106870008E8200009C82000070040020AA8200002A +:10688000B8820000680500201D800000D4000020B0 +:0C6890006C000020C7820000D80400202B +:10689C00D3140739036D476D490C24804665080CE9 +:1068AC0039110330FFE3C0F502361B6C93144080A2 +:1068BC008A33CA6407086458002B4083A833CA641F +:1068CC00070C32110330FFE3AFF50336EF074280BC +:1068DC00F433CA64070C2E110330FFE3A5F504361C +:1068EC00E5076C1143806683CA64070C2A110330D8 +:1068FC00FFE39AF50536DA07FFE3E0FA4038836DDB +:10690C00070C26110330FFE38FF50636CF076184A1 +:10691C000F31C468421164A26684443B200C043BD2 +:10692C000708423BC30F433B150C0136BF07553BD1 +:10693C00190C21314E641B0C533BF80B689269B255 +:10694C00781060937CB254740632136CFFE318FA1F +:10695C00AD07576C136CFFE3B3FDA807FFE300FE14 +:10696C00A507576C136CFFE3A1FEA00708326784E0 +:10697C00C868403B6C104093040CA33A40B3E40746 +:10698C00833AFD07CC820000D6820000DE82000034 +:10699C0070040020E6820000EE82000068050020F2 +:0869AC00D40000206C00002063 +:1069B400D2149E32803541420031A1450111FFE3DA +:1069C400BDDB976C00310011FFE3B8DBFA3362439F +:1069D4009E1079ACFFE342F97D106093FF2343934B +:1069E4004974466508087B106DB43B100030FFE322 +:1069F40013F4921441390608FA3361436DB4371025 +:106A0400F607FA334439634304086DB43410EF07CE +:106A1400503904086DB43310EA07403006640408A2 +:106A24006DB43110E407803006646DB403082F1090 +:106A3400DE0789742E100030FFE3EEF3DB0700005D +:106A4400E00500201C070020E00600206000002074 +:106A540088130000F78200000C83000020830000EC +:106A640032830000418300005D83000074830000D2 +:106A7400D0146710003200930D31FFE3EBE765108B +:106A8400003200930031FFE3E5E79014500000204A +:046A94004C00002092 +:106A9800D0146710003200930D31FFE3D9E7651079 +:106AA800003200930031FFE3D3E790145000002038 +:046AB8004C0000206E +:106ABC00D21441380408FFE3D9FF9214AB108C10A8 +:106ACC00013200950D31FFE3C1E701320094003132 +:106ADC00FFE3BCE700950D31FFE328E8009400319B +:106AEC00FFE324E8EB070000500000204C000020DE +:106AFC00036C036C036C036C036C036C036C036C12 +:106B0C00036C036C036C036C036C036C036C036C01 +:106B1C00036C036C036C036C036C036C036C036CF1 +:026B2C003C78B3 +:106B3000D214AE10FFE3A0FF8D100D310095FFE3DE +:106B400011E900940031FFE30DE9FFE3D9FF00955F +:106B50000D31FFE30BE9FFE3D3FF00940031FFE3C6 +:106B600005E9FFE3CDFF9214500000204C00002007 +:106B7000D214AD10FFE380FF8C1000310095FFE3CD +:106B8000F5E800940D31FFE3F1E8FFE3B9FF00956C +:106B90000031FFE3E7E8FFE3B3FF00940D31FFE3CB +:0C6BA000E1E892144C000020500000209E +:106BAC00D1148D10FFE362FF00940031FFE3D8E8AD +:106BBC006A100D310093FFE3CFE8FFE39BFF0094D5 +:106BCC000031FFE3C9E8FFE395FF00940031FFE3D8 +:0C6BDC00C7E891144C000020500000207D +:106BE800D314931000310094FFE3BCE8D1100030B7 +:106BF800FFE362FF0D310096FFE3B0E8FFE37CFF9F +:106C080000310094FFE3AAE8AB100D310096FFE3D2 +:106C1800B8E84138070C00940031FFE3A3E80030DE +:106C28000504002D5575403DF10B93144C000020D0 +:086C380050000020DD05000002 +:106C4000D414436D0834FFE317FFD210F210003163 +:106C50000096FFE38BE8D674DF3B0D310097160CEE +:106C6000FFE380E8FFE34CFF002C00310096FFE3D8 +:106C700079E81075A145FFE343FF403C5475E80BEC +:106C800000960031FFE372E89414FFE36FE8EB072E +:086C90004C0000205000002020 +:106C9800D4140030FFE310FF08350034F110D2108F +:106CA80000310097FFE35EE8FFE326FF003100971D +:106CB800FFE354E8FFE320FF0D310096FFE361E8AE +:106CC8008144413810750208A03C002D5475403DA0 +:106CD800E80B00970031FFE345E8136C94140000BB +:086CE8004C00002050000020C8 +:106CF000D214036D476DFFE31DFF023307540C6888 +:106D000000335F2B0C6C0074FFE39CFFFFE36EFF0E +:106D10004038050CFFE32EFF013092141074FFE39E +:106D200091FFFFE363FF4038F60B176CFFE38AFF28 +:106D3000FFE35CFF4038EF0BFFE31CFF0230EE0780 +:106D4000D2142114436D8755FFE3F4FE023000692D +:106D50001275136CA538A738FFE374FFFFE346FFF5 +:106D60004038060CFFE306FF00300114921414743F +:106D7000FFE368FFFFE33AFF4038F50BFFE3DAFE7D +:106D8000A130106CFFE35EFFFFE330FF4038EB0BF8 +:106D9000FFE384FF00B8FFE30BFFFFE3EBFE009887 +:026DA000E50705 +:106DA400C414721012109310836DA09300334243E5 +:106DB4009460209241438060457420AA4084413A03 +:106DC4000F080033EC104143285E208900234574EA +:106DD4009C60513B20AAF80B003360A411330023BC +:106DE400CC74103BE50F841458000020C20A002024 +:086DF400330900201C080020F7 +:106DFC0060146214D1149E106094403B0B08013354 +:106E0C0060B47C106083413B0508FFE3C7FF01338E +:106E1C0064A47910013160934A938468403A020C5F +:106E2C002CB34A9302318468403A020C2CB34A9337 +:106E3C0004318468403A020C2CB34A9308318468BC +:106E4C00403A020C2CB34A9310318468403A020C3D +:106E5C002CB34A9320318468403A020C2CB3EED9FF +:106E6C00012080980214631461140000700000204B +:086E7C00B00800205C000020BA +:106E8400C214003200308810013520316094C9707A +:106E9400D468403B020C002000224A64F80B0074C2 +:086EA4008214000050090020D7 +:106EAC0046106482CC74413B07082510209162B1D6 +:106EBC00003360B264A23C78700000205C000020BB +:106ECC00D41425147112608360B80034701260837E +:106EDC0061B8F0127012A0837012608362B89F6D5B +:106EEC006F1263B8614443988C602E124C60408AD8 +:106EFC00208986608B742C5F40A940898B74DF3AA3 +:106F0C0049128C60370C003120AA4098013A6D0C64 +:106F1C0061442C5E05124089C0608B74608B8D645B +:106F2C004098C87C2A0C40898B74C964260C40128A +:106F3C00906060820023CC7460A200317D11D0601F +:106F4C0020A37D11D06020A37C11D06020A360828F +:106F5C002198C4641F08403D520839116091403B90 +:106F6C00060800910133D070C06C60B1003360A290 +:106F7C00110420894574C90741449860408A8B7478 +:106F8C008D64080C00334E11012B2092D370C46811 +:106F9C0060B24144685E608BCF7464B80531631194 +:106FAC008C60008A0240FFE39FEE64980D64180C1D +:106FBC004011906060820023CC7460A200317C1080 +:106FCC00D06020A360822298C4640A0800333C106D +:106FDC00012B0091D370C06860B1003360A2002413 +:106FEC00513C810B05149414D86041442F10608BD4 +:106FFC008460CF74408AC964CD0F9A07413DB70BAA +:10700C002F10D76C0091B007A00100207401002054 +:10701C00C60800207D0100207C010020C20A00204F +:10702C001C0800207E0A0020CE010020B40800209D +:10703C009A08002076090020F0090020AC080020F6 +:10704C00D4142114D9116586413B5F085811608214 +:10705C000023CC7460A2608236112081C464550870 +:10706C00003360A20035F41105266097D57001320B +:10707C00C868403B340C8145705E008BFFE336D50D +:10708C00C76C8031836C37410030FFE38FC86B11C4 +:10709C00D060608B64430E2360B8FFE34DCE6098E4 +:1070AC00C07C47110D7490606611D06000AA608B93 +:1070BC00008A01745F32CD74087C643160B8FFE3E0 +:1070CC0013EE6098C1640B0C7F100C61608C063B56 +:1070DC000608002360AC01327C1040A30025513D12 +:1070EC00C50B7A104083413A1008003240A300329D +:1070FC0077101810B810D410609342B377108093A7 +:10710C00003340808C64030C011494144C5D408259 +:10711C004142224398605060408AF29154429C6CE8 +:10712C00002352B1CC74EE0770000020CC09002073 +:10713C00A1010020A4010020AA0100205C0A00206B +:10714C00C20A00207E010020210900205C000020E2 +:0C715C00EF090020280A00205800002045 +:10716800C4142214481360820023CC7460A2608285 +:10717800261320814C64AD0C003360A26413609325 +:10718800403BA7082313C76D20B8003262132313AE +:10719800014280980061808C1375DF3C270CA01396 +:1071A8008059146081B8808CC08811759975A08B3E +:1071B8001A6151651B088198808C008811750174CB +:1071C800015C814550614165110C9612086100848B +:1071D8000020007400A41412A084088040650608EA +:1071E80012120135A0A0003000A40142805F808CFB +:1071F8001375203C70088A120061A059808CA08DFC +:10720800557511751661A08BA245516564088812E1 +:107218000861A08400255475A0A4A312C084A98580 +:1072280094650608A1120136C0A50035A0A4805FA8 +:10723800808C1375DF3C100CD911A0598061808DAA +:10724800C08E997511751A61C08B9165050C808D7A +:10725800002C117580AD805F808C1375DF3C110C9C +:10726800CF11A0598061808DC08E997511751A61F2 +:10727800C08BC14E91650508808D012C117580ADBC +:10728800A05F808D1375203C0C08A08D808B5775EE +:10729800814C1565060CA059808D0024117580ADB0 +:1072A800A05F808D1375203C1008C08D9B75808B66 +:1072B80019650B0CA08D5775814C1565060804607F +:1072C80080880124117580A80022513A0123610B9E +:1072D80002148414805F808C1375DF3CA90FB010F2 +:1072E80080594061808CA08D5575C08B11751661D1 +:1072F800A146586151659C0B8C100135A0A4036C04 +:10730800970700004E090020A1010020AC080020CA +:10731800C6080020CE0100201C080020C20A002058 +:10732800F009002090000020330900207609002091 +:10733800D214501090106092403B020C609260B4DE +:107348006094403BAD10110C40946095CA64030CE6 +:10735800609460B5FFE394FD691060830C640408D1 +:10736800003360B460B59214461060B560B2FC0793 +:10737800AC08002050090020240A0020A8010020A1 +:047388004809002090 +:10738C0060146214D11477100034609386B37610B5 +:10739C006083413B2008FFE385FDFFE393FDFFE3A2 +:1073AC0051FEFFE3DDFEFFE3C3FF70106093403B33 +:1073BC00120C6F104093403A0E0C6E1064302093F8 +:1073CC00002120B32093807C486405084A100131C9 +:1073DC0020A280B3EED901208098021463146114AA +:1073EC0068000020B008002050090020780100201F +:0873FC004809002033090020BC +:10740400D4142D140132CE03C36C4EDC0A00409612 +:10741400479288744EDC09004ED80900403A080CA3 +:107424004ED80900423A040C00300D14941497030A +:1074340009320094403B41B0570807336EDC0B001F +:107444007B0363B88033624367B86ED80B00CC7497 +:1074540062B07E0363B001320131BF03FFE3EAE4AB +:10746400E0957F1360B75F13003362B743B7D83238 +:1074740045B74F97A23A4FB703982ED80B007D32E9 +:107484000021487C61B8FFE345EC04B8FA32249843 +:1074940042424864CA0B44987831049840B8FFE3E8 +:1074A40039EC4098826045B804987831449840B8E3 +:1074B400FFE330EC4098086006B880C02070409626 +:1074C400549248B86198409460B261B76ED80A008B +:1074D400403B3E08FFE360E40094FFE381E480C1A5 +:1074E40020740130A307413B060803336EDC0B0014 +:1074F4007D12A807423B060801336EDC0B007B12A9 +:10750400A107433B060800336EDC0B0078129A0790 +:10751400443B090800336EDC0B00761263B88033F9 +:1075240069439307453B060800336EDC0B00721277 +:10753400F607463B060800336EDC0B006F12EF07BC +:10754400473B840B00336EDC0B006D12E80760953B +:107554000131409421B320B2003127B3043025B265 +:107564002E9340684039FD0F25922AB8003110B39C +:1075740027B3043025B22E9340684039FD0F25927D +:107584002BB8003110B327B3043025B22E934068D2 +:107594004039FD0F25922CB810B32B980C984060FD +:1075A40029B82998214929B8003121B320B227B339 +:1075B40025B26ED80900423B49982C0871118C649D +:1075C400030C00330F04499866988C640E0868987D +:1075D4004798CA6068B8FE3268984842C868403B19 +:1075E40012086EDC0A00210749986598C8642908C6 +:1075F40068984798C86068B8FE33489868438C68B0 +:10760400CA64E00F6096489854B30130FFE3D2E5B2 +:107614005E0766988C64090868984798CA6068B8D9 +:10762400FF3268985042DB0749986598C864090896 +:1076340068984798C86068B8FF3348987043E00773 +:1076440000336EDC0A00E207600000201000002016 +:10765400006CDC02FFFF00001800002005009CBE47 +:107664001000030000366E01001BB700808D5B0024 +:1076740020C75400D0FE3F0068FF1F00B8FF010080 +:04768400FF070000FC +:10768800484C575F343835526563765F50726F6384 +:10769800657373696E670000000000000000F03F2A +:1076A800000000000000F83F00000000000000009B +:1076B80006D0CF43EBFD4C3E000000000000000068 +:1076C8000000004003B8E23F000000000000000096 +:1076D80000000000000000000000000000000000A2 +:1076E800000000000000000000000000000102028D +:1076F8000303030304040404040404040505050542 +:10770800050505050505050505050505060606061D +:107718000606060606060606060606060606060601 +:1077280006060606060606060606060607070707ED +:1077380007070707070707070707070707070707D1 +:1077480007070707070707070707070707070707C1 +:1077580007070707070707070707070707070707B1 +:10776800070707070707070707070707080808089D +:107778000808080808080808080808080808080881 +:107788000808080808080808080808080808080871 +:107798000808080808080808080808080808080861 +:1077A8000808080808080808080808080808080851 +:1077B8000808080808080808080808080808080841 +:1077C8000808080808080808080808080808080831 +:1077D8000808080808080808080808080808080821 +:1077E80008080808080808080808080820202020B1 +:1077F8002020202020202020202020203030303041 +:107808003030303030303030303030301C8600008E +:10781800248600002E860000488600005886000056 +:10782800708600007A86000094860000A686000014 +:10783800B8860000C8860000D4860000E6860000EE +:10784800F786000009870000158700002B870000D5 +:10785800438700004F8700006187000070870000A1 +:10786800808700008F870000A0870000BE87000087 +:10787800D2870000E9870000F88700000788000029 +:107888001F8800002C8800004288000051880000F2 +:107898005D8800006B8800007C88000097880000E5 +:1078A800C97A0000C97A0000C97A0000C97A0000C4 +:1078B800C97A0000C97A0000C97A0000C97A0000B4 +:1078C800AA880000B3880000C97A0000C97A0000BD +:1078D800C97A0000C97A0000C97A0000C97A000094 +:1078E800C97A0000C97A0000C97A0000C97A000084 +:1078F800C97A0000C97A0000C97A0000BB88000074 +:10790800C97A0000C8880000DD880000F1880000FE +:107918000F8900001A8900002D89000045890000A0 +:10792800558900006389000077890000C97A000042 +:10793800C97A000086890000C97A0000C97A000067 +:1079480099890000C97A0000C97A0000C97A000044 +:10795800C97A0000C97A0000A5890000CB89000017 +:10796800F0890000108A00004E8A0000748A000026 +:107978008D8A00009B8A0000AF8A0000CA8A000036 +:10798800C97A0000C97A0000E28A0000C97A0000BA +:10799800C97A0000C97A0000C97A0000C97A0000D3 +:1079A800C97A0000C97A0000C97A0000C97A0000C3 +:1079B800048B00001E8B00004E8B00006D8B0000B6 +:1079C8008C8B0000A38B0000C48B0000D78B0000B9 +:1079D800EE8B00000F8C0000268C00004A8C000003 +:1079E8005F8C00006C8C0000808C00009F8C000075 +:1079F800B88C0000D58C0000E68C0000F78C0000E5 +:107A0800C97A0000C97A0000118D00002D8D000090 +:107A1800C97A0000C97A0000C97A0000C97A000052 +:107A2800C97A0000458D0000C97A0000C97A0000B3 +:107A3800C97A0000C97A0000C97A0000538D000095 +:107A4800668D00007C8D0000908D00004150502014 +:107A580052756E20537461727421203131312025A2 +:107A680073004D4355205374617274210049494392 +:107A7800E58699E585A5E5A4B1E8B4A5004949439B +:107A8800E58699E585A5E68890E58A9F00494943FA +:107A9800E8AFBBE58F96E588B0E695B0E68DAE20F9 +:107AA8003A25303200253864205B2536645D3A205B +:107AB8000025386C64205B25366C645D3A20000D27 +:107AC8000A0053656E64436E743A256420737563C7 +:107AD80063657373006461746120656E6400726528 +:107AE80074727920656E642C25640073656E642059 +:107AF800656E64004A756D7020426F6F74002530A2 +:107B08003258200055415254312072656376204C1A +:107B1800656E2025640055415254312062756666B1 +:107B28000044495020416464722025642C446576E1 +:107B3800506F72743A256400444950205363616E53 +:107B480020256400456E6720565F4B3A2566004540 +:107B58006E6720495F4B313A256600456E672049BC +:107B68005F4B323A256600456E6720505F4B3A25D9 +:107B78006600456E6720495F4F66665365743A250F +:107B88006600456E6720505F4F66665365743A25F8 +:107B98006600456E6720736176655F6D61783A258A +:107BA8006400456E6720736176655F6F666673650E +:107BB800743A256400456E6720436F6C6C65637486 +:107BC8005F54696D3A256400456E67205265706F91 +:107BD80072745F54696D3A256400456E672053617D +:107BE8007665466C6173685F54696D3A256400492F +:107BF8005F4F533A256600505F4F533A2566004E53 +:107C08004F204E656564205361766520456E657228 +:107C1800677900456E6572677920557365204465FC +:107C28006661756C742050617261004465666175A7 +:107C38006C7420565F4B3A25660044656661756C26 +:107C48007420495F4B313A25660044656661756C5E +:107C58007420495F4B323A25660044656661756C4D +:107C68007420505F4B3A25660044656661756C74F4 +:107C780020495F4F66665365743A25660044656619 +:107C880061756C7420505F4F66665365743A25665B +:107C98000044656661756C7420736176655F6D611B +:107CA800783A25640044656661756C742073617662 +:107CB800655F6F66667365743A256400446566613E +:107CC800756C7420436F6C6C6563745F54696D3AAE +:107CD80025640044656661756C74205265706F7226 +:107CE800745F54696D3A25640044656661756C7407 +:107CF8002053617665466C6173685F54696D3A25F7 +:107D08006400546F74616C456E65726779205265C2 +:107D180061645375636300546F74616C456E65727A +:107D2800677920526561644661696C004545505227 +:107D38004F4D5F52656164506172612044656661B0 +:107D4800756C742100454550524F4D5F57726974E8 +:107D580065506172612053617665205061726120BF +:107D680045727200454550524F4D5F5772697465B0 +:107D780050617261205361766520506172610045DF +:107D88004520446576416464723A2564004545207F +:107D9800446576547970653A256400454520446504 +:107DA80076426F6F745665723A25640045452044E3 +:107DB80065764170705665723A25640045452044E1 +:107DC80065764E616D654C656E3A256400454520C3 +:107DD8004465764E616D653A257300424C565F43A3 +:107DE800535F41433130305F563035002F2A2A2AFD +:107DF8002A2A2A2A2A2A2A2A2A3E20496E697420EF +:107E080052656164204D43555F444556203C2A2AFB +:107E18002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2FB5 +:107E28000045452055736520446566616C7574206E +:107E380050617261002F2A2A2A2A2A2A2A2A2A2AE3 +:107E48002A2A3E20496E6974205265616420456E75 +:107E58006750617261203C2A2A2A2A2A2A2A2A2A59 +:107E68002A2A2A2A2A2A2A2A2F00496E69743120A6 +:107E780052656164456E6750617261205265763A59 +:107E88002564002F2A2A2A2A2A2A2A2A2A2A2A2A3A +:107E98003E20496E6974205265616420546F746194 +:107EA8006C456E67203C2A2A2A2A2A2A2A2A2A2A44 +:107EB8002A2A2A2A2A2A2A2F00496E69743220522D +:107EC800656164546F74616C205265763A2564006C +:107ED800496E6974322052656164546F74616C2014 +:107EE8005355434300496E697432205265616454A6 +:107EF8006F74616C204661696C0044656661756CDD +:107F0800745F456E673A25640044656661756C74F4 +:107F18005F526567446174613A256400424C565F5C +:107F2800446574456E657267795F44656661756C12 +:107F38007420496E697400484C57383131302052EA +:107F480065736574004375725265673A2566005615 +:107F58006F6C5265673A256600506F775265673ACD +:107F680025662C25642C25640076616C75653A2598 +:107F7800642C204C6173745265636F72643A256493 +:107F88002C2053756D5F456E67526567313A2564DD +:107F980000646966663A25642C2076616C75653ADA +:107FA80025642C20456E6741433A25642C20546F84 +:107FB80074616C5F456E673A25642C2053756D5F5C +:107FC800456E67526567323A2564004C656E2045F8 +:107FD80072723A2564004E6F74205461636B2000FE +:107FE800435243204572723A25782C25782C434D0C +:107FF800443A25303278003131310043524320452C +:1080080072723A25782C25782C20434D443A253035 +:1080180032782D3E00484C57383131305F52656315 +:108028007620434D443A25303258005245475F5236 +:108038004D535F4941435F414444522045525221C8 +:10804800005245475F524D535F4942435F414444A4 +:10805800522045525221005245475F524D535F55B9 +:10806800435F414444522045525221005245475FE4 +:10807800504F5745525F5041435F41444452204559 +:10808800525221005245475F504F5745525F504268 +:10809800435F414444522045525221005245475FB4 +:1080A800504F5745525F53435F4144445220455215 +:1080B8005221005245475F454E455247595F41435B +:1080C8005F414444522045525221005245475F4582 +:1080D8004E455247595F42435F41444452204552FE +:1080E8005221005245475F434845434B205355436F +:1080F8004321005245475F434845434B2045525270 +:108108003A25782C2578005245475F434845434B2C +:1081180053554D2052656164204552522100524505 +:10812800475F535953434F4E5F4144445220455291 +:108138005221005245475F454D55434F4E315F41EF +:108148004444522045525221005245475F454D55FF +:10815800434F4E325F414444522045525221004819 +:108168004C575F56203A25642031306D5600484CF4 +:10817800575F49203A25642031306D4100484C57FB +:108188005F50203A2564205700484C575F45203AF5 +:10819800256420572F6800484C575F54453A25649A +:1081A80020572F68005374617274436F6C6C3A25C2 +:1081B80064005245475F524D5349415F4144445220 +:1081C8002045525221005245475F524D53555F4159 +:1081D8004444522045525221005245475F504F5760 +:1081E80045525F50415F414444522045525221005C +:1081F8005245475F454E455247595F50415F41449C +:108208004452204552522100563A25646D56004981 +:108218003A25646D4100503A25646D570054453A3B +:108228002564572F6800536176653A25642C2564C8 +:1082380000577454456E673A256400577454456E68 +:10824800675F436E743A25642C54456E673A25641B +:1082580000577454456E675265675F4E554D3A2511 +:1082680064007361766520534E3A25642C4D41585D +:108278003A25640025732044617461204C656E20A2 +:108288004572726F720025732048656164204572DB +:10829800726F720025732054595045204572726FD1 +:1082A800720025732041646472204572726F7200F7 +:1082B800257320436865636B204572726F72005A9C +:1082C80065726F004461744C656E45727200486552 +:1082D8006164457272005459504545727200416498 +:1082E800647245727200436865636B457272002060 +:1082F800426F6F7420736F66747761726520726560 +:1083080073657400426F6F7420706F776572206FA9 +:108318006E20726573657400426F6F742065782DE6 +:1083280070696E20726573657400426F6F74207790 +:10833800647420726573657400426F6F7420657889 +:1083480020636C6F636B20696E76616C6964207260 +:108358006573657400426F6F742063707520726571 +:10836800717565737420726573657400426F6F74FC +:10837800206F746865722072657365742030782583 +:10838800780041434B4275666620004C656E204676 +:1083980061696C2000426F6F745F436F6D6D5F435E +:1083A8006865636B53756D204661696C2000477280 +:1083B8006F7570204461746120534E204469736165 +:1083C8006666696E6974792C50726F636573736938 +:1083D8006E6720446174610047726F757020446154 +:1083E800746120534E205468652053616D652C4E8E +:1083F8006F2050726F63657373696E672044617490 +:10840800610053696E676C65204461746120534E46 +:1084180020446973616666696E6974792C50726F5D +:1084280063657373696E6720446174610053696E94 +:10843800676C65204461746120534E205468652040 +:1084480053616D652C4E6F2050726F63657373694D +:108458006E67204461746100426F6F745F436F6D93 +:108468006D5F5265637654797065202564202D20F0 +:1084780025642000426F6F745F436F6D6D5F5265B6 +:10848800637641646472202564202D2025642000D1 +:1084980042434F4D4D5F434D445F48616E6473687E +:1084A800616B652050726F6563657373696E6720D1 +:1084B8000042434F4D4D5F434D445F4A756D7020F8 +:1084C80050726F6563657373696E67200045525219 +:1084D8003A4A756D705F626F6F7400417070204624 +:1084E8006561747572652053697A653A256400413F +:1084F8007070204665617475726520427566663ACB +:10850800004170702046656174757265204352435E +:10851800204552524F520041707020466561747573 +:10852800726520466C6167204552524F5200417077 +:1085380070204C656E203A256420004170702043FD +:108548005243204C656E203A2564202D2025640076 +:108558004170702043524320414444523A253038F8 +:108568007820253034782D253034780041707020FB +:10857800435243204661696C20414444523A2530B5 +:10858800385820253034582D253034580041707023 +:108598002046656174757265205374617274416414 +:1085A8006472204552524F52004150502061707001 +:1085B8005F73746172745F616464723A25303878ED +:1085C80000415050206170705F656E645F61646443 +:1085D800723A2530387800415050206170705F63DE +:1085E80072635F6C656E3A2564003031323334351E +:1085F8003637383941424344454600303132333406 +:10860800353637383961626364656600696E6600BD +:108618006E616E0053756363657373004E6F7420EB +:108628006F776E6572004E6F207375636820666998 +:108638006C65206F72206469726563746F7279006B +:108648004E6F20737563682070726F636573730073 +:10865800496E746572727570746564207379737489 +:10866800656D2063616C6C00492F4F206572726FD5 +:1086780072004E6F20737563682064657669636560 +:10868800206F7220616464726573730041726720A1 +:108698006C69737420746F6F206C6F6E6700457817 +:1086A800656320666F726D6174206572726F720007 +:1086B8004261642066696C65206E756D6265720042 +:1086C8004E6F206368696C6472656E004E6F206D32 +:1086D8006F72652070726F636573736573004E6F98 +:1086E8007420656E6F7567682073706163650050EC +:1086F80065726D697373696F6E2064656E69656410 +:1087080000426164206164647265737300426C6F37 +:10871800636B20646576696365207265717569723B +:10872800656400446576696365206F7220726573BD +:108738006F7572636520627573790046696C652090 +:108748006578697374730043726F73732D6465760B +:10875800696365206C696E6B004E6F207375636882 +:1087680020646576696365004E6F742061206469D2 +:10877800726563746F72790049732061206469724D +:108788006563746F727900496E76616C6964206103 +:108798007267756D656E7400546F6F206D616E79C8 +:1087A800206F70656E2066696C657320696E207332 +:1087B800797374656D00546F6F206D616E79206FE9 +:1087C80070656E2066696C6573004E6F7420612059 +:1087D8006368617261637465722064657669636554 +:1087E80000546578742066696C6520627573790039 +:1087F80046696C6520746F6F206C61726765004E06 +:108808006F207370616365206C656674206F6E20DD +:1088180064657669636500496C6C6567616C207393 +:1088280065656B00526561642D6F6E6C79206669B1 +:108838006C652073797374656D00546F6F206D617A +:108848006E79206C696E6B730042726F6B656E2077 +:1088580070697065004D61746820617267756D6537 +:108868006E7400526573756C7420746F6F206C6140 +:10887800726765004E6F206D657373616765206F61 +:10888800662064657369726564207479706500494F +:1088980064656E7469666965722072656D6F766568 +:1088A8006400446561646C6F636B004E6F206C6F8D +:1088B800636B004E6F7420612073747265616D0084 +:1088C80053747265616D20696F63746C2074696D8F +:1088D800656F7574004E6F2073747265616D2072D8 +:1088E80065736F7572636573004D616368696E6562 +:1088F800206973206E6F74206F6E20746865206E17 +:108908006574776F726B004E6F207061636B61677F +:1089180065005265736F75726365206973207265AF +:108928006D6F7465005669727475616C2063697245 +:108938006375697420697320676F6E65004164769A +:10894800657274697365206572726F720053726D17 +:108958006F756E74206572726F7200436F6D6D75FE +:108968006E69636174696F6E206572726F72005010 +:10897800726F746F636F6C206572726F72004D75E1 +:108988006C7469686F7020617474656D7074656467 +:1089980000426164206D6573736167650043616EB1 +:1089A8006E6F74206163636573732061206E656503 +:1089B80064656420736861726564206C69627261C1 +:1089C800727900416363657373696E672061206320 +:1089D8006F72727570746564207368617265642063 +:1089E8006C696272617279002E6C696220736563CA +:1089F80074696F6E20696E20612E6F757420636FC5 +:108A08007272757074656400417474656D70746910 +:108A18006E6720746F206C696E6B20696E206D6FB5 +:108A2800726520736861726564206C696272617234 +:108A3800696573207468616E2073797374656D203D +:108A48006C696D69740043616E6E6F74206578653A +:108A580063206120736861726564206C6962726169 +:108A68007279206469726563746C790046756E6307 +:108A780074696F6E206E6F7420696D706C656D65BA +:108A88006E746564004E6F206D6F72652066696C48 +:108A98006573004469726563746F7279206E6F74D0 +:108AA80020656D7074790046696C65206F7220705E +:108AB800617468206E616D6520746F6F206C6F6ED5 +:108AC8006700546F6F206D616E792073796D626FE6 +:108AD8006C6963206C696E6B73004F7065726174AA +:108AE800696F6E206E6F7420737570706F72746525 +:108AF80064206F6E20736F636B6574004E6F206225 +:108B08007566666572207370616365206176616958 +:108B18006C61626C650041646472657373206661A0 +:108B28006D696C79206E6F7420737570706F7274D4 +:108B380065642062792070726F746F636F6C206651 +:108B4800616D696C790050726F746F636F6C207718 +:108B5800726F6E67207479706520666F7220736F0C +:108B6800636B657400536F636B6574206F70657217 +:108B78006174696F6E206F6E206E6F6E2D736F63F8 +:108B88006B65740050726F746F636F6C206E6F74D6 +:108B980020617661696C61626C650043616E27745F +:108BA8002073656E6420616674657220736F636BF1 +:108BB80065742073687574646F776E00436F6E6EAA +:108BC800656374696F6E20726566757365640041CC +:108BD80064647265737320616C726561647920697D +:108BE8006E2075736500536F6674776172652063D4 +:108BF800617573656420636F6E6E656374696F6E0B +:108C08002061626F7274004E6574776F726B2069B1 +:108C18007320756E726561636861626C65004E658C +:108C280074776F726B20696E746572666163652014 +:108C38006973206E6F7420636F6E666967757265FD +:108C48006400436F6E6E656374696F6E2074696D3E +:108C58006564206F757400486F73742069732064AD +:108C68006F776E00486F737420697320756E726534 +:108C780061636861626C6500436F6E6E65637469F9 +:108C88006F6E20616C726561647920696E20707204 +:108C98006F677265737300536F636B657420616CE3 +:108CA800726561647920636F6E6E656374656400D4 +:108CB80044657374696E6174696F6E20616464726F +:108CC800657373207265717569726564004D6573AB +:108CD8007361676520746F6F206C6F6E6700556EE7 +:108CE8006B6E6F776E2070726F746F636F6C00536A +:108CF8006F636B65742074797065206E6F74207370 +:108D08007570706F7274656400536F636B6574205F +:108D1800697320616C726561647920636F6E6E653A +:108D28006374656400536F636B6574206973206EA8 +:108D38006F7420636F6E6E6563746564004E6F7444 +:108D480020737570706F72746564004F706572611E +:108D580074696F6E2063616E63656C65640053743B +:108D6800617465206E6F74207265636F76657261D9 +:108D7800626C650050726576696F7573206F776EE7 +:108D8800657220646965640053747265616D73204F +:0C8D980070697065206572726F720000D7 +:108DA400AA000100000000700000005000200540EF +:108DB4000010054000200640001006400000064058 +:108DC400002001400090054000500540000005408F +:108DD40000000B4000000A40000009400020084049 +:108DE400001008400000084000F00060002000600F +:108DF4000000006000000340001002400000024038 +:108E0400001001400000014000E000E010000000FC +:108E14000100000001010200020002000200020041 +:108E2400020002000200020002000200020002002E +:108E340002000200020002000A0A00000A00080000 +:048E44000300000027 +:108E48002A2A2A4D443230335F426F6F746C6F6147 +:108E58006465725F5630342A2A2A00000000000038 +:040000050000010CEA +:00000001FF diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x0.bin b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x0.bin new file mode 100644 index 0000000..a788cba Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x0.bin differ diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x1000.bin b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x1000.bin new file mode 100644 index 0000000..19080da Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x1000.bin differ diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x2000.bin b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x2000.bin new file mode 100644 index 0000000..b087670 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V04_20251201_0x2000.bin differ diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05.elf b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05.elf new file mode 100644 index 0000000..8e23599 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05.elf differ diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05.ihex b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05.ihex new file mode 100644 index 0000000..7f67282 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05.ihex @@ -0,0 +1,2698 @@ +:102800000C29000076740000667400008429000022 +:102810006E7400002C740000842900005E740000B7 +:1028200056740000842900008429000084290000D7 +:1028300084290000842900008429000084290000E4 +:102840004E740000467400003E74000036740000B0 +:1028500084290000842900008429000084290000C4 +:1028600084290000842900008429000084290000B4 +:102870008429000084290000842900002E740000AF +:10288000D0AF0000E86A0000D86B0000406C000088 +:10289000A86C000084290000546E0000087200003B +:1028A00038720000886E000084290000842900002E +:1028B000086F0000786F0000D86F00006C70000097 +:1028C000842900008674000084290000CC70000078 +:1028D000B471000068720000B0720000D072000095 +:1028E0007E74000040AA00003C73000084290000B0 +:1028F00070730000BC73000084290000842900006C +:102900000500AA5500000000000000000030003162 +:102910000032003300340035003600375B1002C04F +:10292000216400C02260A83A02C02064381000323E +:1029300040B1F8109F6FCF5F04338D5F00350324E3 +:10294000A0B41865FD0B1410C17B036C036C8FEAF7 +:10295000130013100078036C036C036C036C036C9E +:102960009010436DA0B400C021602F1001C02B64F3 +:102970002E10003020B02E1001C02B642D1000301E +:1029800020B0FA07F90700000028000090EF00E0EF +:10299000F80F00205C5E0000602900001069000054 +:1029A00000300020FFFF0000FF0F0000EEEE0000EF +:1029B000EE0E0000D4142D1460B86143814B42B870 +:1029C000906C403AC36D876D030800E86204A14132 +:1029D000A14D550049650C08966403084038080865 +:1029E0000965060892640E08029840380B0C42985C +:1029F00060981F6C5B6C00E09109036D136C0D1403 +:102A00009414DF3E510C2101002905654B08620139 +:102A1000002B0D65490C545404018060343A2108A0 +:102A20003433CA6042988D704B6C4C70029842648B +:102A30003B08013184680233495B0298403841B851 +:102A40006208510192641F082F015460C46D403F19 +:102A50002D08609800324F6C003000E07709CE07F7 +:102A6000229840394E0814314A60936C86700B6C82 +:102A700004701264030C00E87104013184680230B0 +:102A8000695861B82002526425088098DF3C030829 +:102A900000E807049F6CDB6C0030250200E08C0A24 +:102AA000AD070232CB070032C9076902002B4D6522 +:102AB0000098080CDF38030800E8EF030034003109 +:102AC0009E07DF38FC0F0034436C803278424C6044 +:102AD00096078033174340980A6408089F6CDB6CA4 +:102AE0001F6C5B6C00E04E09890776022098C66473 +:102AF0000A08DF3E08081F6C5B6C00E045047E0797 +:102B0000003361B81F6C5B6C83B800E02A04403F5F +:102B1000036D63982608403D050C424602030A6493 +:102B200020084098DF3A080C936CC76C00302A03E9 +:102B300000E0420A036DDF3E620F6B034C610198B7 +:102B4000406D403D0A08936CC76C0B6C4F6C00E005 +:102B5000FD08836CC76CA3074198413A500BB60738 +:102B60005F4E002A47B807984198806C403A0408A5 +:102B70009F6CDB6CEB075703C964BF0C5803C96437 +:102B80007F030C0C002B4D650F082098DF39970F41 +:102B90005C037B030B6C4F6CA607012B4D65F60F96 +:102BA00018134165050C00982038F30F8807003290 +:102BB00074131F6C5B6CC03600E0C80857467A136C +:102BC000436D076D00E0DE08C36D876D5713781302 +:102BD000176C536C00E0D60803B824B800327513A4 +:102BE000176C536C00E0CE08836CC76C1213331360 +:102BF00000E0AC08976CD36C00E0C408836CC76C31 +:102C00000030231300E0A20805B8976CD36C26B8F7 +:102C1000176C536C00E0B608836CC76C0598269857 +:102C200000E0B0084613601300E0AC08836CC76C8A +:102C30000398249800E08A08836CC76C436D076D85 +:102C40001F6C5B6C00E06A089F6CDB6C003023B883 +:102C500000E07C08836CC76C176C536C00E076084E +:102C6000076D219800294798486C4039436D020C44 +:102C7000F005741261B86098003202984F6C00E061 +:102C800065086398003200E07D08C36D876D429847 +:102C90006098176C536C00E07508836CC76C1F6CF0 +:102CA0005B6C00E03B08C36D6098876D0032239831 +:102CB000003000E0670802B803B824B8836CC76C22 +:102CC000476D1F6C5B6C00E02908076D3E11002901 +:102CD000056500B8030800E8B3027C11D060C06C41 +:102CE000403B0208B8054E116E110030219800E0FB +:102CF00049084B116B11F706D5115965A609136CDC +:102D000000327F1000E03E080037036D476D342F1E +:102D100014553D10AC454C4D04606E111C608D6423 +:102D2000F81004B8C86D090CCB119964900D836C30 +:102D300000220A1144B8C0610035C345681123451B +:102D4000D860409328B86193136C5F6C45B866B83F +:102D500000E0FC0709B8459866982AB8136C5F6CC8 +:102D600000E0DC07836CC76C0030261000E024090B +:102D7000836CC76C360400000000F07F0000404305 +:102D80000000F03F01FCFFFF000010C00000E03F2A +:102D90000000C0FF0000E0410000F0439C75008887 +:102DA0003CE4377E4715F73F44DF5DF80BAE543EF9 +:102DB0000000D03F555555555555D53FFE822B65E2 +:102DC0000000F0BF00009040000070BFFFFF0F0048 +:102DD0008E98030079B60B000000F0FFE4B200000B +:102DE0000BB82CB809982A9800E0CC0703B88032B9 +:102DF0000157876DBD382C420460B2454061D76CE5 +:102E000000325B6C003000E0BD07836CC76C099832 +:102E10002A9800E09B0709B8459866982AB80030C0 +:102E2000576C00E09307836CC76C136C5F6C00E019 +:102E30008D07DB6C003200E0A507836CC76C099836 +:102E40002A9800E083074B986C9800E09B07439812 +:102E5000DB6C05B826B80B6C5B6C00E0930782EA6C +:102E6000130183EA1301436D076D00E08B0782EACB +:102E7000110183EA110100E05107976CD36C00E067 +:102E8000810782EA0E0183EA0E0100E04707976C92 +:102E9000D36C00E0770782EA0B0183EA0B0100E0C4 +:102EA0003D07976CD36C00E06D0782EA080183EA66 +:102EB000080100E03307976CD36C00E0630782EAF7 +:102EC000050183EA050100E02907C36D976CD36C07 +:102ED00029B8176C536C00E05507836CC76C1F6CE6 +:102EE000299800E04F07436D076DDB6C00320398B3 +:102EF0005B6C00E013074598669800E04307976C09 +:102F0000D36C00E00B07436DDB6C29B800325B6CBF +:102F1000003000E0370700326F00C36D2AB800E0D0 +:102F2000FD06976C699800E0F906076DC76C0032E2 +:102F30005B6C003000E026070BB82CB8003278003C +:102F4000536C003000E002079F6C6A9800E0FE06B8 +:102F5000836CC76C176C299800E0F8064398DB6C0B +:102F600000E01007836D476DD36C003205982698FA +:102F700000E00807836CC76C1B6C576C00E0CE0642 +:102F8000C36D876D836CC76C0B982C9800E0C606E8 +:102F9000E033584300306D01076D00E0F30605B8DB +:102FA00026B84B986C98536C003000E0CF06836CC9 +:102FB000C76C1F6C5B6C00E0C9065501770100E02F +:102FC000E106C36D476D57017701536C003000E097 +:102FD000D906836CC76C1F6C576C00E09F06DB0141 +:102FE000489888614496659600E0980609B8049868 +:102FF0002AB800E0E508836D0202476D1F2028987B +:1030000004608090E19049986A980598269800E0BD +:103010008506936CDF6C00E081069B6CD76C00E04A +:103020007D069B6CD76C003023B800E08F06936C54 +:10303000DF6C00E08B064598669800E08706836C9D +:10304000C76C09982A980B06003763060135760687 +:1030500077021106570276021F6C5B6C00E05E0679 +:1030600005B826B84298D76C0098536C00E06E06FD +:10307000836CC76C0598269800E048082038020841 +:1030800033062144014961030D64FD0C34504203B1 +:10309000803048604D40867090606142354B05033A +:1030A00040606503C6700B6C0D684C42C36C4C4AA3 +:1030B0001430B43A25588670DF3C40B8050C40986F +:1030C00000340A6180B800320298576C00E03E0676 +:1030D00003B824B803989F6CDB6C249800E01E06AC +:1030E000003274030030076D00E04C06476D4398D2 +:1030F000649802B8536C003000E02806836CC76CFB +:103100001F6C5B6C00E022065D037C0300E03A0666 +:10311000C36D876D5E037D03536C003000E03206A3 +:10312000836CC76C1F6C5B6C00E0F805076D836CEB +:10313000C76C03B8576C029800E0F0054298D76C52 +:10314000C36D876D00E00206836CC76C0398536CF7 +:1031500000E0FC0502B823B89F6CDB6C1F6C5B6C55 +:1031600000E010064F137013436D076D00E00A0670 +:103170004E136F1300E0EA05976CD36C00E0020673 +:103180004C136D1300E0CA05976CD36C00E0FA0590 +:103190004A136B1300E0DA05976CD36C00E0F2057C +:1031A0004813691300E0BA05976CD36C00E0EA0598 +:1031B000836CC76C1F6C5B6C00E0C805436D076DCA +:1031C000836CC76C1F6C5B6C00E0DC05803304B85B +:1031D00025B800327743176C536C00E0B705836C59 +:1031E000C76C0498259800E0E706076D436D429888 +:1031F00063981F6C5B6C00E0C5054298639800E023 +:103200008D05836CC76C176C536C00E09F059F6C39 +:10321000DB6C00E09B05836CC76C0030351100E06F +:10322000950540987442C4609453203C2F0C4098FC +:1032300000E09A000032619800E856FC01446148C1 +:103240004212C9641F0F221250600098406C40392E +:103250000B0C401260120030219800E093055D11C4 +:103260007D1100E841FC4298D76C0098536C00E057 +:103270006D05836CC76C1F6C5B6C00E083072038A6 +:10328000010FE8070035A0B826074F6CD4070034BB +:10329000381000E8B5FB0034209800E8B1FB1F6D42 +:1032A0005B6C00E8ADFB0000EF4E454A287ECA3F4C +:1032B00065DBC9934A86CD3F01411DA96074D13FAA +:1032C0004D268F515555D53FFFAB6FDBB66DDB3FBC +:1032D000033333333333E33F0000084009C7EE3F85 +:1032E000FD033ADCF5015B14E02F3EBEE4B20000C2 +:1032F0000000F03FFE822B654715973C0000E03F41 +:1033000002FCFFFF01FCFFFFFFFF0F00432EE63F23 +:10331000EF39FAFE422EE63F396CA80C615C20BE04 +:10332000D0A4BE726937663EF16BD2C541BDBB3ECB +:103330002CDE25AF6A56113F93BDBE166CC1663FA9 +:103340003E5555555555C53FFFCB904000346F3F16 +:1033500059F3F8C21F6EA501003300E894FB214128 +:1033600021493C78C114C76CC06C403B080C651007 +:10337000076D0C69544290604D68486C81140000E0 +:103380000000F07FD41423147A12436D076D076C8C +:103390004C68C664976C1208D36C176C536C00E0D1 +:1033A000F104836CC76C176C536C00E0B704436D79 +:1033B000076D176C536C03149414203C130C614478 +:1033C000214B546C4039F60F403C0C0C976CD36C7D +:1033D000176C536C00E0BA04836CC76C00E0EC051A +:1033E000E7079454403C12084038760C803500338F +:1033F0002D45836D8469403E730C235B2036066146 +:103400008E614B6C5970046C8C707B110C610136B1 +:103410000C4090690C48403EB438050C3F4AA1402E +:10342000145941427F4AC060815480360031C060E7 +:1034300082B8414216350E4620B880590D650608FF +:10344000C0988061205CD260C0B8002D9F4A614363 +:10345000403DD06041420148F10B203680340030BD +:10346000C1B89844C564D45C05084E6410088865EA +:103470000E0CDF3EB05E370CDF3D3508E259886543 +:10348000C6600208002B9A6010605F6CDF4A8C6196 +:10349000D860C198002E403E4142814CC1B8E30B38 +:1034A000C86C403B090C0033002BC2641E08009816 +:1034B000002000B8003001346098A0980C69415594 +:1034C0002E10403C48600148020CBF38A298944539 +:1034D0000461436D6F070B4A142C55428607014067 +:1034E00000238807C76DCC0700208038E50700005F +:1034F0000000F07F01FCFFFF0000E03F211420B836 +:103500007F6C406020812141C463209801143C7885 +:10351000D1149E313741036D00E00C02DF38050CF9 +:10352000136C00E0550291149E313741136C00E09A +:10353000E10000E04D02803378430C6091140000FC +:10354000D21400326C10436D076D00E0FD05DF38CA +:10355000060C176C536C00E06B0692140032661078 +:10356000176C536C00E0F20300E06206803378438E +:103570000C6092140000E041C41421146090013BDF +:103580003B0C8091013C3A0C443B760C443C360C9D +:10359000423C5C0C423B320CA290E2919D5D6390F8 +:1035A000DF3C60B8936D63916F083F3E2A085D650C +:1035B0005F0C0033019021914264330C4038209815 +:1035C000540CC660DF3B6308003121B2A2B263B283 +:1035D000235B9B1104650B08229200296143035B66 +:1035E0001064476D0029FB0B63B2A2B20331DF3BCD +:1035F00020B221080B6C01148414076C011484148C +:10360000203C4C0801341871002CCF6DD068403B31 +:10361000019000332191CD60D9714264DC6CCF0BF5 +:1036200020984C60C76C23B2DF3B033101B2A2B2D9 +:1036300020B2E10F0130214BC068C46C63B26292CA +:1036400000230B6C62B201148414423BD50B60B2B0 +:10365000619061B2629062B26390219163B26190B5 +:10366000C46861B20B6CC8074E60C76CAC0700340D +:103670005F6D80B8A007443CBF0B41906191CA6464 +:10368000BB0F1010B907003692619007013121B2CB +:1036900000316D59A2B263B29C07403C8C0F0134DB +:1036A000E0981871D9715861002CC0981869403C95 +:1036B00000341161D06DE0B87E070000FFFFFF3FCE +:1036C00014B30000D0142E1400B821B83B6C0219BA +:1036D00000E0DA060619011800E0D6060A1A0619F3 +:1036E0000218FFE34BFF00E073060E149014000075 +:1036F000D0142E1400B821B83B6C021900E0C406A7 +:103700000619011800E0C00667980132C96C061955 +:103710000A1A021867B8FFE331FF00E059060E14D9 +:1037200090140000D414301402B823B802180419FD +:1037300000E0AA060819031800E0A6066498013BF9 +:103740004D0C4898013A3D0C443B460C443A370C2A +:10375000423B440C423A350C679860B86B988F6CCA +:1037600061B800980033003100E0F005C6984A982F +:103770009860C65ACEB8E598C9989E650034116124 +:10378000DF39C76C436D8DB83F0C0133C468403BD3 +:103790000222110861494EB87F318F6C8468403035 +:1037A0000A64270C6FB803336CB80C1800E01006DD +:1037B000101494140148BF38436DED07423B220CAE +:1037C00069984598CA640033CD60081869B800E06C +:1037D000FF0510149414423A150C45986998CA6470 +:1037E0000033CD60041865B800E0F205101494149D +:1037F00080300C684038D70B403DD50FC860C56895 +:10380000D2070D10D4078D105064C70F002201306D +:10381000536C0504C464A145002A0A0CDF3D0B6DFE +:103820006143F90FC06CC464A145002AF80B8EB83F +:10383000B407000014B30000FFFFFF3FD1142A14A7 +:1038400000B821B83B6C021900E01E0606190118E9 +:1038500000E01A066298013B2C0C26980139480CAE +:1038600043980798816C443B43B8280C423B260C94 +:1038700044392C0C4239380C449868988E60099869 +:1038800065980C6444B81E0C80311F3200343741F7 +:103890000C64030C046DC260002A403A2149614364 +:1038A000F80B7F31936C846840300A64140C85B83F +:1038B000021800E08D050A1491144E64FA0B0E10E4 +:1038C000F907002A614344B8E007003365B864B8DB +:1038D0000218F007803010684038EA0B403BE80FD0 +:1038E00008610569E507043362B80218E3070618A2 +:1038F000E107000014B30000D0142A1400B821B866 +:103900003B6C021900E0C0050619011800E0BC0577 +:103910006298013B0A0C6698013B070C06190218D5 +:1039200000E0F4050A14901401300A149014000009 +:10393000D0142A1400B821B83B6C021900E0A40589 +:103940000619011800E0A0056298013B0A0C669870 +:10395000013B070C0619021800E0D8050A14901460 +:10396000003000280A149014D1142414033360B8D2 +:1039700040387F4861B80808023360B83B6C00E00B +:103980002705041491141E33DF3862B80F08036D45 +:10399000136C00E0FD046358403B140C136C1E32A2 +:1039A0000C706D5A03B862B8EA0780337843C2647A +:1039B0000B0C00340261136C00E0EA046358403BD6 +:1039C000EE0B83B8DC07CF301840DC07D014251489 +:1039D00000B801193B6C00E057056198023B1B0CD5 +:1039E000443B060C6398DF3B16083E3B090862988F +:1039F000403B003001606A100C60051490141E32C8 +:103A00006D5A04980D706298403BF80F0033015BCB +:103A1000051490140030051490140000FFFFFF7F80 +:103A2000D114261401B80219011800E02D0565987B +:103A3000824B44987E432398029880B800E030047B +:103A400006149114C4142A146090013BCB6D670CCA +:103A50004091013A660C443BDE0C443A620C423A17 +:103A6000B70C423B5E0C439064908290A29142B8A6 +:103A700063B84391649140B861B8755CDF3B8F6C6B +:103A8000D2083F369964500C1565BF0C00320033E4 +:103A900040B861B8619041918E64780C403BAD0CA8 +:103AA000009821984298639800640B604F60DF395A +:103AB000BD08003361B782B7836CC76C03B724B706 +:103AC0000030003100280029016409604D608F0337 +:103AD0005064670C0665FD0C003022970128002910 +:103AE000D40302B8E0B803049665830C01439F4AEF +:103AF000006DA142976CD36C00350034002C002D72 +:103B0000116509614D615865076C0029EE0BE0985D +:103B100043B764B7033302B760B71F6C0A14841449 +:103B2000076C0A148414203B8C0800331F2BC860D8 +:103B3000DF3B66B8BB08A1984D71A4B80035A5B8A5 +:103B40006698DF3B00350036AD0801328C708B6D16 +:103B500000320033002A002B89649560D960A09858 +:103B6000C19848698C69976CDB6C8C6C403A003565 +:103B70005561976C0033A498C598486D8C6D619021 +:103B800041918E64A0B8C1B88A0B61B700982198A2 +:103B90004298639889648160C56082B743B764B70F +:103BA000033120B73B12C46410089F43014A106CD4 +:103BB00000350134214B9068D468806CC46C43B7E5 +:103BC00064B76297002362B71F6C0A148414423BE7 +:103BD000A60B60B7619061B7629062B7639063B7FC +:103BE0006490419164B76190C86861B71F6C970792 +:103BF000E2981C657C0B8C0702982398409861988A +:103C000000640B604F60540700320033176D42B8F8 +:103C100063B84107443A830B41906191CA647F0FB6 +:103C20001D117D0700328E602D07013361B7003210 +:103C3000003388648360C76082B743B764B74107C5 +:103C4000403B290F00331F2BC860DF3B086166B87B +:103C500049086398A698D57064B8003365B866982B +:103C6000DF3B003500363A0801328C708B6D003234 +:103C70000033002A002B89649560D960A298C3980C +:103C800048698C69976CDB6C8C6C403A00355561E7 +:103C9000976C0033A498C598486D8C6DA2B8C3B8D2 +:103CA000FA060133C8704F6D540761981F36A1435F +:103CB0008A615871A9B8A098C198A7B8C8B8679880 +:103CC000C970A998D46C64B86898C97065B8390788 +:103CD000003101290464010B64070133C8704F6D82 +:103CE000C7076398C1431F35695D5B6D4C71A9B807 +:103CF000A298C398A7B8C8B86798C970A998D46C97 +:103D000064B86898C97065B8AB070000FFFFFF0F83 +:103D1000FFFFFF1F24B30000D014331400B821B8F4 +:103D20003B6C041963B842B800E006050919021893 +:103D300000E002050E1A09190418FFE385FE00E0F1 +:103D40002D04131490140000D014331400B821B8BB +:103D50003B6C041942B863B800E0EE04091902187C +:103D600000E0EA046A980132C96C09190E1A0418B5 +:103D70006AB8FFE369FE00E0110413149014000018 +:103D8000D4143B1408B829B808180C196BB84AB8F1 +:103D900000E0D20411190A1800E0CE046C98013B2F +:103DA000AC0C5198013A9C0C443BA50C443A960C3F +:103DB000423BA30C423A940CEF98B49875988F6DDF +:103DC0009F6C0033176C003100E0C00204B825B8C6 +:103DD0009F6C00331B6C00319098C2B800E0B602B3 +:103DE000836DC76D42980033136C003100E0AE0262 +:103DF00006B827B8976C0033136C003100E0A602B8 +:103E0000016419605D60C465910C5E648D0C0033C3 +:103E1000003462B883B88498A5980036C36D936C5B +:103E2000D76C89649960DD608B6DCF6D936CD76CB6 +:103E3000DC64700CCE656C0C876C00330698279898 +:103E4000016409604D60836CC76C0298239801641B +:103E500009604D60836CC76C8E98339804612E5C4A +:103E600038B80D9832984264B01200314560D4647D +:103E700037B879080424A4B80130003108684C68C8 +:103E8000046C403882B80E0C3F47014E046C214F41 +:103E900000B821B88031C098E19800303841806D79 +:103EA000C46D214BBF43014AC76C2498406DC46464 +:103EB000976C0024E20F229838B8FF300031086870 +:103EC0004C6880340265370C59B87AB8033376B839 +:103ED000161800E063031B149414423B420C7298C2 +:103EE0004D98CA640033CD60111872B800E05603D3 +:103EF0001B149414423A350C4D987298CA640033DE +:103F0000CD600C186DB800E049031B14941498643C +:103F1000940B8298A39801320033116509614D61B9 +:103F200082B8A3B88A078065730B0033013462B886 +:103F300083B872074039C90B803121414868403944 +:103F4000C40B5B6C5C6C4039C00F80300031016485 +:103F500009604D60FF34436D5169976CC76CB507BC +:103F60001310B8073310C464A90F022422B81F4AE3 +:103F70002143A142046CDF3F80B8976CC36C070CEF +:103F800001300031086C4C6C836CC76C21471F4EAC +:103F9000046C2298A146C464976DC36D002CE80B95 +:103FA000209838B88B070000FFFFFF1F24B30000E4 +:103FB000FFFFFF0FD414321404B825B804180819F1 +:103FC00067B846B800E0B8030D19061800E0B4035E +:103FD0006898013B660C2D980139920C49980E980F +:103FE000816C443B49B8620C423B600C4439620C22 +:103FF0004239820C2A986F984E609098B1984B98ED +:104000006C984C652AB8936DD76D050CD6640B0877 +:10401000086509089F4A0143A142006D0029976C79 +:10402000D36C2AB80030003102B823B880313D3457 +:1040300000303541C0B8E1B8A098C1988C65100C2B +:10404000DA64030848650C0CA298C398406D846D2F +:10405000A2B8C3B8A098C19888649760DB60BF41DC +:10406000E148976DA1499C6D576CBF4A1B6C002CB1 +:10407000976DA143946D6142403CCF6D8F6CDB6CBA +:10408000DC0BFF3000318298A39800694469136CFF +:10409000576C80340265150C629883986BB88CB8A5 +:1040A000081800E07B02121494144E64FA0B1610E8 +:1040B000F907003300346BB88CB86AB80818F207F7 +:1040C0004039EB0B803121418298A39850684039E8 +:1040D000E40B986C403AE10F80320033136C576C5C +:1040E000016409604D60836CC76C0B6CFF3105681F +:1040F00002B863B8D207043368B80818D3070D189C +:10410000D107000024B30000D0142E1400B821B849 +:104110003B6C041963B842B800E00E030919021899 +:1041200000E00A036498013B0A0C6998013B070C04 +:104130000919041800E062030E14901400300028DE +:104140000E149014D0142E1400B821B83B6C04192E +:1041500063B842B800E0F0020919021800E0EC026E +:104160006498013B0A0C6998013B070C0919041873 +:1041700000E044030E149014003000280E14901434 +:10418000D0142E1400B821B83B6C041963B842B89F +:1041900000E0D2020919021800E0CE026498013B47 +:1041A0000A0C6998013B070C0919041800E0260362 +:1041B0000E14901401300E1490140000D114251424 +:1041C000033360B840387F4861B80808023360B8EC +:1041D0003B6C00E0E30105149114DF381208036D15 +:1041E000136C00E0D5001D3280600228DF38100813 +:1041F0000071003384B863B83C33CA6062B8E90721 +:1042000080337843C2640D0C00340261EA071F3129 +:10421000614C4A60136CC570087064B803B8ED0750 +:1042200000302210D90700000000E0C1D01427148C +:1042300000B821B83B6C021900E07E026298023B94 +:10424000200C443B160C6498DF3B1B083E3B110CD2 +:104250003C326D5A00321F2A8C60DF3A15080698EE +:1042600009706398403B0B0C0033015B07149014FA +:104270006398403B0030016068100C600714901494 +:1042800000300714901446981F3141424E60059843 +:1042900084700D70086CE607FFFFFF7F2114D114B6 +:1042A000251467B86798889800B83B6C21B842B865 +:1042B00063B884B800E072010514EED9012080983B +:1042C00003143C78D014271400B821B83B6C0219B1 +:1042D00000E0320245983E4A669842426243403AC4 +:1042E000C46C020CA03B44982398029800E04A0159 +:1042F00007149014D214251440380035036DA1B86A +:10430000150C033360B800E043001D3280600228C2 +:10431000DF381308007184B8A3B83C33CA603B6C23 +:1043200062B800E03B010514921402333B6C60B8A4 +:1043300000E03401051492141F31614C4A60C570CD +:10434000087164B883B8EA07C41421140175B04831 +:10435000C975836D20B8136C304A1C7C047DD47DF4 +:104360001C61447D30480461D065040880312941D6 +:104370004461304CD87C44614F6C6098C87C904458 +:104380004C60017410605460011484146D100C644E +:10439000070CFF330C640F0C2033003206046A1044 +:1043A0000C640C080833183209704810086040800B +:1043B000095B3C7818330832F80710331032F507E0 +:1043C000FFFF0000FFFFFF0038B30000C214409061 +:1043D000013A63902190270C443A220C423A1D0C7A +:1043E000403B1B0C003442907D2C09652A087F3429 +:1043F000916416080C69403552651A0C3E23DF3B68 +:104400001D087E2202430948C874094077430948C1 +:104410003F410C6C046C821400330030F707FF330B +:104420000030F40703430A48B638FF33EF07803003 +:104430000C684038E50FD060E307614B7F22E3074B +:104440000A61393CEA0F01329070002A0F6CC8688B +:10445000403B00331170CD60C06C7F300C6840323F +:1044600082640D0880328C68403A020CC0604510AE +:10447000C8640243C3640948CC74C8073E23F807E4 +:10448000FFFFFF3FC114618871434090784B038068 +:1044900049420748403B494A01B11108403A1A0CC9 +:1044A000033360B1003347427E2B96104142906443 +:1044B0000F6C002BFC0B02B143B18114FF300E6472 +:1044C0000C0C7E2B474262B1BE3A033360B143B15C +:1044D0008114023360B18114403A0D0C80336F4374 +:1044E000C868403B0B0C013360B1671047428D68D0 +:1044F00043B18114043360B1811460B1F707000047 +:10450000FFFFFF3F7F000020C1146090013B120CB1 +:104510004091013A0F0C443B170C443A0F0C423BBC +:104520000B0C423A130C619041918E64140C403B89 +:10453000080801308114423A1E0C6191403BFA0B8D +:10454000003000288114443A180C6190403BF90B6C +:104550000130F107829042910965EA0B91640708E6 +:10456000039043910864E40F80640508403BE90F21 +:104570000130E1070030811461914190095B8114A1 +:10458000D014241400B83B6C21B842B863B8FFE3E0 +:104590001FFF041490140000C41422146090013B07 +:1045A000C390E4902190460C443B400C423B270CC6 +:1045B000DB6CDC6C403B230C62905A128D64550816 +:1045C0005912C9643308FF34003518695C698032B8 +:1045D00092643F0C7F34003599659161D561531227 +:1045E000C8651A0C90120C611847684F484E806CD1 +:1045F0000C436C480E124B6D006904040034003209 +:1046000000330C430C4874449F41436C4C6C506C19 +:104610000B6C021484149F47014E006D936D80341F +:10462000414F8344CB6D0C61E007811200320033AF +:10463000E907084E9847006D80350547936C6D4833 +:104640000034AC45906CD46C0C436C489811DA077C +:10465000403DC10B41429868403AC20F803400355A +:1046600099659161D561BC076D5A3832C964C70B31 +:1046700000321F2A8C60DF3A48081F6C097000B8AE +:10468000003001B8DF3A3C080133C8704F6D003389 +:104690000F6D00320033002A002B116509614D6156 +:1046A0009069D4699C6D403E00300160836C00339A +:1046B0008098A198086D4C6DFF3200339068D468E3 +:1046C00080300A641B08403B190880336143D0687E +:1046D000403B060C80320033116509614D6118457D +:1046E000484C684D9310806C50650C436C48013009 +:1046F000020C00308E10006985077F32ED07013211 +:104700008C7000350B6DC6071F340E6101471070A9 +:104710001B6D0D71006D1F6C0D7080B801B8B30773 +:1047200002FCFFFFFF030000FFFFFF1FFF07000069 +:10473000FFFFFF0F231480B8C1B8E2B8438851428D +:1047400061908090554A07806C430748403A6C4B13 +:1047500001B11908936C8C6C403A2D0C584C68438D +:10476000C86C0332084440B18111C2115F486143F3 +:10477000C86CD864936C0140002CF90B42B103B1B2 +:1047800064B114041C100A64190C1910806042B141 +:104790000332E84340B18033584CC86DC8440032FE +:1047A0007543886DCC6DC3B1E4B1E298C19880982F +:1047B00003143C78023360B1F907936C8C6C403A77 +:1047C000100C80324C428C68403A0E0C013240B1E1 +:1047D000584C6843C86C08449B3B03B164B1E6077E +:1047E000043360B1E30740B1F407000001FCFFFFB0 +:1047F000FFFFFF0FFF070000C1146090013B120C88 +:104800004091013A0F0C443B170C443A0F0C423BC9 +:104810000B0C423A130C619041918E64140C403B96 +:10482000080801308114423A280C6191403BFA0B90 +:10483000003000288114443A220C6190403BF90B6F +:104840000130F107829042910965EA0B91640D08ED +:1048500044908390039124918464E20F4A64030896 +:104860000065DE0F48640508403BE30F0130DB07BD +:10487000866403081064F90F00308114619141903F +:10488000095B8114221461B840B8D01421146298D5 +:1048900060B84098031B00E026000114EED9002008 +:1048A00003143C78D3144B6D829541920A61403CCD +:1048B000876D160C04650208076D6095403B0D0C72 +:1048C000C860436C936C0F6C00E07E0000952195EE +:1048D00010600460003240A061950C6181B51B6CD2 +:1048E0009314D3142514076D436D4B6C02180032DA +:1048F000403CA0B041B01C0CC35CC2B000B88F6C8F +:104900000E1001B83B6C00E0BF00403D0F0C403C76 +:104910000D0CDF380B080033002BD2640B0C006544 +:10492000090C1461002C003120A4051493140036E6 +:10493000E507805DF9070000A4480000C314447433 +:10494000403A1F0C436D036D03361869403C1A0C46 +:1049500020A5002A403A150C0025176D033618696A +:10496000403C100C20A5002A403A0B0C0025176D86 +:1049700003361869403C060C20A5002A00250204D5 +:10498000831468414C6C70414C6C2F3A090820B577 +:1049900021B522B523B50F2A0F252F3AF90F233A57 +:1049A0000608032A20B50325233AFC0F403AE90FF5 +:1049B000002A20A5403AE50F002A21A5403AE10F40 +:1049C00022A58314C314836D076D186D03330C691E +:1049D000403C0B0C403A080C60810021002A60A684 +:1049E0000026403AFA0B83142F3A0E08A0916191E9 +:1049F0008291A0B6A39161B682B6A3B60F2A0F2109 +:104A00000F262F3AF40F233A08086091032A032156 +:104A100060B60326233AFA0F403AE60F6081002180 +:104A2000002A60A60026F907C114C36C80600C043C +:104A3000808300811260026C002040380808403CEE +:104A4000060C002300218C64F40F00308114000058 +:104A5000D4142038036D476DF76D0D08836D303E1B +:104A600000970A0C635C244B644140902D5C81905C +:104A7000176CD17B9414409061901031176CCD7BF2 +:104A80000F2EEE07D4143C1426B81219211B10B8AF +:104A9000002100304B6D71B80AB809B82DB886985E +:104AA0002533C084403E030CDA6445084698C95C4F +:104AB000403E0A0C709840935B6C61930698CD7BE6 +:104AC0000998186009B820844039030800E8670392 +:104AD0003736011A00378861E0A60033003600241B +:104AE00000300031002E67B80037425C46B8808441 +:104AF0006433D264900D0D654E082E329264410DE0 +:104B0000096529082A33D264310D0D651C0820324D +:104B10009264250D2333D264270D403C030800E83E +:104B20003E03121E3730011A80A60860003480A0B0 +:104B3000A5B82C040024B60701302B318698D6077F +:104B40004F6DFD072B329264F80F2D33D264E60BC4 +:104B5000A23FF50739330D65090831329164340DF0 +:104B60003033D264DB0BA73FEA0758329264D30C90 +:104B700063301264D30B3733011A2E5DC0850034C5 +:104B8000121DC86025B8C0A580A301360035121CCF +:104B900000E895026D33D2642D0D0D6583086832EF +:104BA0009264240D09656F086633D164B70B4038F1 +:104BB000050C3730011A086020A03E5D25B800952D +:104BC0002195A798403D0308013367B80032002AB9 +:104BD0009A64580D5B6D679860B8A1B82833121AB3 +:104BE00000E09D06003100295A6408B81A0C2E31E5 +:104BF0000D9800E0C9084038C898480D403D0508A8 +:104C000001315C684039400DC2580025595D806013 +:104C1000203A050800266086403BF90B0035A0A627 +:104C20006730126422082E31121800E0AD084038B7 +:104C3000036D1B0C653100E0A708436CC084403E47 +:104C400030094039020C076D3036635C40838A6559 +:104C50002A0D2E354A6502080F6D0030403900A438 +:104C6000040C136C00E038081219C0812D33DA648B +:104C7000020CEF05373401182D350061A0A412197C +:104C80008259EC056933D264C60C6C329264460BCF +:104C9000669840830A65AC088698002486B8A53FCC +:104CA0004E077133D264FC0F0D651A086F30126421 +:104CB000FC0C70315264320B4E5D0034A09545B847 +:104CC00001193932A3B884B830330F1878358460AD +:104CD0009501A13F60A0A0A28AB80234F104753208 +:104CE0009264280D7833D264440D73315264160BEC +:104CF000003237300119002A6E5D8095046000355E +:104D00009A6465B8A0A00B09D36CC083403E10091B +:104D1000D15B7F044038050C3730011B0C6020A0AC +:104D2000280220301C6840382AB82B0D5E5D45B83B +:104D30002095419523B844B801301C684038CE0F07 +:104D4000A39864984C6D403DC90F3930011D303136 +:104D50000F1A146020A280A0A13FC0074039EF0ABB +:104D600001302031EC06A03FEA068095DF3C6E5D05 +:104D700087B8E70E479800354A61A7B84F6DE90636 +:104D8000C69880862A326698926400230B0C65B818 +:104D9000003600332F2BD060093B45980C0C46B8E9 +:104DA000A806C095DF3E8E5D030C0036002E536DC5 +:104DB00066B8C5060A34187D45988F6D906180826B +:104DC000002245B8E707003247B867980A32C87C26 +:104DD0002F2C0C6187B800338698425C2F2B80847F +:104DE000D060093B46B8F20FDB07A63FA806A43FF8 +:104DF000A6064038050C3736011B8C6120A63E0301 +:104E0000009100E0CB07036D00E03C07836DA5B87F +:104E1000003554054038050C3730011A086020A0D1 +:104E200020341C69403C1A0C7E5D2095419565B884 +:104E300023B844B80498DF380F0C8398A498003244 +:104E4000003388649360D76043B864B83732011B7D +:104E50002D358C60A0A2013438041033DC68403B4F +:104E6000080C4E5D45B8A0959F55A3B884B8E307DC +:104E700040315C680E5D4039A09505B8F60F577556 +:104E8000F4070635A906836DCA0601329C68403ACC +:104E9000C80E121D58612E33003060A501A5C10651 +:104EA0000024CD060F6DD2062033DC68403B240C75 +:104EB0007E5D0095219565B803B824B80034373578 +:104EC00001180032406140A5003100290398A498E0 +:104ED0005A64146CC80C9F6C873A403848B8C608AE +:104EE000403EAC0C413C680C423C8D0C003300341D +:104EF00063B884B8BF0410301C684038050C8E5D60 +:104F000085B8A095080440329C682E5D403A25B8CB +:104F1000F90FA08D0034A3B884B8D207B85CD36C65 +:104F20004E65770F00834038F40E0023FA07002304 +:104F3000ED0620341C69403C090C7E5D20954195AE +:104F400065B823B844B80134BB071033DC68403B74 +:104F5000050C0E5D05B8A095080440315C684E5DF7 +:104F6000403945B8F90FA08D0034A3B884B8EC07D8 +:104F70004038050C3733011AC86020A33F10D20611 +:104F80001033DC68403B050C0E5D05B8A0950804A5 +:104F900040329C682E5D403A25B8F90FA08D003351 +:104FA000A3B864B8CA06D36C67048498403C0B0865 +:104FB0004398093A080883982F241A1F87A7121CC0 +:104FC000262478041C1C30350A32003303982498B8 +:104FD00000E0C2021460002C00A40A320398249856 +:104FE000003300E0E30003B824B82398E4985C6C35 +:104FF0004039EB0B5F04000019C3000008C3000038 +:10500000200B00200033003463B884B81C1C0F321E +:1050100003982A9808680460A080002CE498A0A453 +:10502000A49863981C47E44D244BE4B8046C64983E +:1050300003B80C6C4038ED0B3D04403C08080133CC +:10504000DC68403B040C1A1F3034B9071C1C3204C6 +:105050002B329A6402081406121C136C00E012062C +:10506000836DD7064038E8B83E0F413C9F0F423C65 +:10507000CE0F1C1B073723985C682F21049884747B +:105080002398BD4003492498234924B8406D0498CF +:10509000A3B8406D835B403D40A4860B0137289840 +:1050A000C469403F070C30354A65040C875B3033D8 +:1050B00060A45B6D1C1E9261E8989565A8B8020C0F +:1050C000C8B83730011B0C604080403A040C289867 +:1050D000002128B802301C6840380BB8040C6898CE +:1050E000012368B884329C68403A4CB80B081033EE +:1050F0000C1A27980898C86001594F6F2911FFE3CF +:10510000A9FC3731011840606081403B0B0C30989E +:10511000019102B80C1B0B3040910C600131629878 +:10512000CD7B4B98403A070C3098409161910F1815 +:105130000231CD7B80304C980A640B082798689820 +:105140000D590C1A10314860476F3710FFE382FC8D +:10515000195D0C1B10354C61576F776D3210FFE3F2 +:1051600079FC009540906190136C04345B6C1C6971 +:10517000CD7B403C080C2898C798055E576F2910D6 +:10518000FFE368FCA79848989564020C4B6D09985A +:10519000146009B8A59800E884FC09981C149414BC +:1051A00038B4000048B40000D4142614C76D403B46 +:1051B000036D4F6C8B6D00B85F6D5B089C64740869 +:1051C0003D008464DC0CFF318464020808334B6CBE +:1051D0004D70000140602081C46020314E60403934 +:1051E000090C536D8470C4714D7104718B6D5C6DCD +:1051F00080B8904E536C176C00E0821101B8536C6C +:10520000176C00E05911D975619820989F6C704314 +:105210003049807CC46C8C64436D0808D8608C6510 +:105220002358030C8C648E0D476DCA60536C0F6C51 +:1052300062B800E06511629801B8536C0F6C00E031 +:105240003B1141986ED800105042CD74C07D8C6CDB +:10525000C865036D08089860886563584D0DC8657A +:105260004B09012C10450037106C5F6C0614941428 +:10527000DC64760C6A024C64780869024C64480D60 +:105280001036C76CD9700D02C06060838C6120300D +:105290007958403B60B87808C465400D90640F6C45 +:1052A0000D6000375F04403A08080031013061B8F2 +:1052B00000E00211836D61985B0288655B087A02E9 +:1052C0008C65280D10339B6C3E028D70846040828B +:1052D0002C5A20328660403AC008D974995FB04E8B +:1052E00061B80137576C136C00E00A1102B8576CB3 +:1052F000136C00E0E1106298304360984198704B65 +:10530000807CC46C8C64036D0808D8608C6523585D +:10531000030C8C64140D076DCA60576C0F6C63B876 +:1053200000E0EE106398576C02B80F6C00E0C410F8 +:1053300042986ED8001021985042CD74407CC86CC1 +:105340004C64436D0808D8608C654358D30C4C649A +:10535000D108012D1044146C5F6C061494140037AE +:1053600000305F6C06149414FF334C648365C346AD +:105370008907FF328865A80B0833A60775138C646C +:10538000CB0C103325070098CB6C4B6D40704071EF +:10539000D970C46CA3B8536D4F6C5971DF6CC07178 +:1053A0005C6DD970A1B8B04922B8C5750F6C576C47 +:1053B00064B800E0A5106498836D576C0F6C00E032 +:1053C0007B105F6C407C876C3046C198D04E846DFA +:1053D0009864C36C07082358029880611864A60873 +:1053E000C76C8A61576C1B6C65B800E0891004B803 +:1053F000576C1B6C00E0601064989F6CF0436ED893 +:1054000002104D74807CC46D9C6465980708A29856 +:10541000D4615C6523588508076C70430C6CC174BB +:10542000CA61439849753048504A8F6D947DC87C55 +:10543000447DD460487C504EC8604C65040880327E +:1054400049424860504B48605C645F0C5E64560C97 +:1054500000375F6C06149414536DDF6C4571C8718E +:1054600088715C6DC570D76DA3B8B04E0871576C6C +:1054700099740F6C41B880B862B800E0411062982E +:10548000036D576C0F6C00E01710C36C9974C87CE7 +:105490005044904F086DD064436C02B80B081861FB +:1054A000876C9065002A490CD0644708002A42B8EE +:1054B00018610E61576C136C00E02210C36D576CBD +:1054C000136C00E0F90F4ED80610D974F047097537 +:1054D000C07CD06DDC640908D8619C6543582B0CF6 +:1054E000DC6429080128D8618D5F6298F043C06DA3 +:1054F000FA064B6D30070F6DB606409870439975EC +:105500000871D860D064A50B00280037A3071836AF +:10551000B9061833D90618335B0600370130220765 +:105520009C647B0B0128D461790798645A0B012B8A +:10553000806158070B6CD90742B8BC07012CD860B2 +:10554000EC06012DD8607206FFFF000038B30000A2 +:10555000FFFFFF00D4142714076D4F6C436D4039D3 +:10556000CF6D0B6CA0B8D36C5A08906477082001FB +:105570008464D20CFF31846402080837436C5D7088 +:10558000C40158602081C46120315E60403921B877 +:10559000090CD76C836C0471DD7044718470D06C1D +:1055A000A0B8904A536C0F6CC97543B862B800E05C +:1055B000A70F6298436D536C0F6C00E07D0F40980D +:1055C0007045B04A1C7CD46C0C6443980608C860D3 +:1055D0008C64030C0C647D0DC260536C0F6C43B87B +:1055E00062B800E08D0F6298436D536C0F6C00E061 +:1055F000630F6ED80010C07DB0450D74406DD4654A +:105600000708439848619464030CD4655E0D5E619D +:10561000176C61980D7000310714941450646E0C6F +:105620004D0248646F084C0248643F0D1036876C89 +:105630009970F0029C60408288612037DA61403FB7 +:1056400070080465030C1464460D015D1464066162 +:105650008364695C4F6C07149414403A0608003167 +:10566000013000E0290F836C7F028C6450087E02B9 +:105670008C641D0D1037CB6CDD702203C460608319 +:10568000CC612033DE60403B61B8C208C9740A6156 +:10569000F04A8F6D5F6C136C42B800E0310F436DC0 +:1056A0005F6C136C00E0080F60989045B04B187C5D +:1056B000146D10644298060808619064030C10642D +:1056C000060D02615F6C136C42B800E0190F436D68 +:1056D0005F6C136C00E0F00E6ED80010187CB045C3 +:1056E0008D75586D14640808429848619464040CE0 +:1056F00014640208486142618C07176C536C0714EC +:105700009414FF3248648365C3469207FF338C6468 +:10571000B30B0837B10737138464CB0C10372F074E +:10572000C36C5C70D970C46C576C936C59701C71ED +:105730009970506C1C70904B5C7103B820B8A4B881 +:10574000536C4D750B6C62B8A1B846B800E0D80E2A +:10575000469805B8536C0B6C00E0AE0E4198807C07 +:105760006598436D009830437048C46C8C6407089A +:105770000298C0600C64235DA308476DCA60536C37 +:105780000F6C66B800E0BC0E6698536C05B80F6CE1 +:1057900000E0920E45986ED80010219850420D7589 +:1057A000407C906C48640708829890600865635854 +:1057B00082080F6CB045406DD5740398B04D0F6DE5 +:1057C000866041741048047DC07C547CC460407D78 +:1057D000104CC0604C640408803129414461304B56 +:1057E0004461704311754865D060560C4A65760C6B +:1057F000355A0F6C6498015B0C64C3648D59536D0A +:1058000058711D70536C146C5D70071494140198DA +:10581000576CD36C5D7000718070506CDD70076DDB +:10582000F04A22B849744071876D0F6C5F6C44B8C0 +:10583000A0B863B800E0640E6398436D5F6C0F6CB2 +:1058400000E03A0EB045704C187C4C6D14644498DE +:10585000070848619464040C1464020848614261BA +:105860005F6C176C43B800E04B0E036D5F6C176CF8 +:1058700000E0220E6ED8041090444D74187C046D24 +:1058800010644398070808619064040C10640208CF +:105890000861026100072398055B0C642298466149 +:1058A000C3644E61355AA7071836C2061837E40696 +:1058B0001837650648647E0B012890607C078C646D +:1058C0005D0B012DC0605B074861A2060861FA0606 +:1058D000C8608306176C4F6CBF062498C464DC0F45 +:1058E0000F6C003188070000FFFF000038B3000094 +:1058F000FFFFFF00C21400334D6403080F6C8214D5 +:10590000AC5A8C580023A085433BA0A4F60B233946 +:10591000F60B003363A00433F207D4142C148F6DFC +:1059200071980AB824B842B86BB8F29800E0440203 +:1059300040380A0C44025B6C0298FFE3DDFF09B8B3 +:1059400009980C1494140A98249800E085014038B2 +:1059500009B8030C4B02F007003200330A98249870 +:1059600000E0420240382D08403F570DA65F5865C1 +:10597000560D403D0B0C2498DF391A0C02982D323D +:1059800040A0025D01351464160C829820843033E7 +:10599000C664003001604298229808602E3454603A +:1059A000003381A0A9B860A1CC070135E507176CC9 +:1059B0000035EA0742989460303480A20025E4075D +:1059C000003200330A98249800E02C02DF388E0C55 +:1059D0008031A298849858412D3360A50861002E2B +:1059E000002500302E03003365B84598CA6581084C +:1059F000836CC76C0A98536CFFE390F10032730319 +:105A000006B827B800E00E02DF38050C303480A558 +:105A1000002E002504982140790315490C60FFE30E +:105A2000CFF35A037A03FFE3ADF1FFE301F44258E9 +:105A3000203A48B8E7083D03CB6D003423B80A3F4D +:105A40005F08413F68085F137F13136C2398FFE3DF +:105A50005DF320386A0C6298D6640708403E710FE7 +:105A6000303240A5002E002505984038CF082298F6 +:105A7000655D00234B988C64A508403E620F2E376D +:105A8000E0A50B98E25D22980020655F4D58002E3E +:105A900045B805981864550F436D5C61FF365E6527 +:105AA000910C936C639806982798FFE385F2FFE3C7 +:105AB000BFF33031406020A71868FFE381F3936C97 +:105AC0006398FFE35FF1836CC76C06982798FFE348 +:105AD0003DF106B827B8136C239800327812FFE323 +:105AE0006BF20027036D23B8DB07A29884987A072E +:105AF00076125712FFE346F165980023760780304F +:105B000056402398136C7312FFE33CF1036D23B8E6 +:105B1000092F9607136C239800326912FFE332F1C4 +:105B2000036D23B8002F8E076398936C069827980F +:105B3000FFE342F2FFE37CF3403FC074030C403BC1 +:105B4000580C2F23403E60A500254208936C6398B3 +:105B50000A982498FFE330F245988B9841B880B8B2 +:105B600000334298FFE3DBFE4038EB0EC05DFA37AE +:105B70006535026CA0A6036DA25E01310436E247D2 +:105B80000898C165030C40391108403C080C5F6C53 +:105B9000089800E07F0C2F2000A500255F6C089876 +:105BA00000E09C0C002C08B8003123B81F6C0A31AF +:105BB000002E00E06F0C403EC36D2398E20B403C8A +:105BC000C00E42980033895D60A589B8BA0600749A +:105BD000FFE3F6F2936C6398FFE3D4F0836CC76C39 +:105BE00006982798FFE3B2F006B827B8002E0037D2 +:105BF000136C239800327210FFE3DEF1036D23B8BB +:105C000023071210921003B82707403E9A0E2E3732 +:105C1000E0A5002EE25D3E07403EC80A0835AC060E +:105C20002AC300002EC300000000E03F0000F03F48 +:105C300001FCFFFFFF799F501344D33F0000244035 +:105C4000CDCCCCCCCCCCEC3F9999B93F9A999999D1 +:105C50005FA002426C414C4B086C40380E0C08109F +:105C60004068C76C003026100032816CC56C8C6CAB +:105C7000403A436404743C780030FE070000F07F33 +:105C8000436C033208684038080C00304081403AC9 +:105C9000200C00210020FB0740910B68040C03211D +:105CA0000320FB07FF31CB6CC468403B120C002083 +:105CB0001031CB6CC4701831C570403B0A0C002009 +:105CC0000831CB6CC4701831C570403B020C002009 +:105CD0003C780000C114036D876C906C03338C68B2 +:105CE000403A080C608160A400210024403BFB0B7B +:105CF000811460910F682E0C60B461910F681D0CC7 +:105D000061B462910F681B0C62B463910F68190C47 +:105D100063B464910F68170C64B465910F68150C37 +:105D200065B466910F68130C66B467910F68110C27 +:105D300067B41F241F21DE0703240C0407240A0470 +:105D40000B2408040F24060413240404172402045B +:105D50001B2418318F6C8470857040A4403A120C5B +:105D600010318F6C84701831857041A4403A0A0C50 +:105D700008318F6C84701831857042A4403A020C4F +:105D800060B4811440804A64060C403A030C002041 +:105D9000FA070B6C3C7800008F330C64060C024051 +:105DA0002310046000903C780210FE0758B40000F5 +:105DB000D5B600004038836CC76C040828104E64C8 +:105DC0000B0C00302710816CC56C8C6C403AC3649E +:105DD00000300E603C780130FE0700000000F07FCC +:105DE0000000F0FFD0142E1400B821B83B6C041949 +:105DF00063B842B8FFE3A0F409190218FFE39CF46A +:105E00006498013B0A0C6998013B070C09190418B6 +:105E1000FFE3F4F40E14901401300E1490140000FB +:105E2000D0142E1400B821B83B6C041963B842B8E2 +:105E3000FFE382F409190218FFE37EF46498013B42 +:105E40000A0C6998013B070C09190418FFE3D6F402 +:0A5E50000E14901401300E1490148B +:105E5C00D014091029104264050C49108260FFE32C +:105E6C00ADF5481008100A64050C82600031FFE3A0 +:105E7C0061F5901400000020BCCA00009C000020BA +:085E8C00280B0020BC000020DF +:105E940048380A087A10FF32209360914C42C9684E +:105EA400AE3BB23B60B1771060934193806C41B3D9 +:105EB40043938068403AFD0F423807080231449307 +:105EC4008468403AFD0F3C78023809084138FC0BDD +:105ED400013144938468403AFD0FF60748380708B7 +:105EE400083144938468403AFD0FEE075038EC0BB8 +:105EF400103144938468403AFD0FE6074C000020BB +:045F04005C0000201D +:105F08006C104D10609345B34C1046B34C1047B31A +:105F18004C1050B30A3253B32B107F23003245B3D1 +:105F280046B32DB329102EB35DB35EB35FB33C788F +:105F38005C000020FFFF0000FFFFFF0000002DD2E3 +:0C5F4800FF3BFF700C070000FE03000090 +:105F5400D0144038050C076CFFE39CFF90146810C4 +:105F640060934293846C42B343938468403AFD0B3C +:105F74007F230193406C21B3F20700005C000020F2 +:105F8400C214483B28089D1001358094A1B40435FF +:105F9400A5B4835B013C2B0C8B5B043C030C4B3B97 +:105FA400070876100134609381B3003485B39410EC +:105FB400106C7410406C6093803027B301402493BC +:105FC40040684039FD0F3010486C28B328934A6468 +:105FD400FE0B8214403B030C493B07088710013534 +:105FE4008094A1B40235A5B44A3BD40B8310013587 +:105FF4008094A1B4A5B4D1076000002000002DD284 +:086004005C00002000003CC319 +:10600C00D114036D10310030FFE3A0FF66106093D4 +:10601C00199384388538106C19B31030FFE336FFB0 +:08602C00911400005C0000204B +:106034006C10403860937F230A0C4B1080314FB3AF +:1060440025414D938468403AFD0F3C7847108031D8 +:106054004FB325414D938468403AFD0BF707000088 +:0C6064005C00002000008778AA558778B7 +:106070006410B43260937F2357424EB33C780000E3 +:046080005C000020A0 +:1060840044106510486C6093046C7F230DB33C7816 +:08609400000078875C00002089 +:10609C00C3148398C510186DD06C8C6C486CA4100C +:1060AC00046CA09513B5831400004BB45C00002065 +:1060BC0066108031609380324C60444241B15D93F4 +:0C60CC00AB3A5DB33C7800005C000020A3 +:1060D80066108031609380324C60414241B15D93DB +:0C60E800A83A5DB33C7800005C0000208A +:1060F400403A040C413A0E0C3C786D1040386093E1 +:106104007F234593040C486C25B3F707856845B392 +:10611400F4076710403860937F234693040C486C5F +:1061240026B3EB07856846B3E80700005C0000204F +:106134006B104C1060937F2340384BB30C0C479387 +:10614400846C47B349938468403AFD0F4B93486C81 +:106154002BB33C784893486C28B3FC075C000020C0 +:04616400FF3F0000F9 +:046168002BB03C78A4 +:10616C0080337043421060B23C78000000E100E0E4 +:0C617C000232621040B33C7800E100E009 +:0C6188000232621040B33C7880E100E07D +:1061940063104410609340B33C7800005C0000201E +:0461A40080001EE178 +:1061A80066104710271040B341B342B343B344B31A +:1061B80045B326B347B33C7800E400E0C0C0C0C094 +:0461C800C000C0C093 +:1061CC00C114624842436A1003346093C860803241 +:1061DC0043421068C8600340FF344093007126416D +:1061EC0091684070486C20B381140000640000205A +:1061FC0075103610161040936092784B784360B24D +:10620C002091003361B260B161B162B262B163B22C +:10621C0063B164B264B165B265B166B266B107B21E +:10622C003F3007B168B268B169B269B16AB26AB19C +:10623C006BB26BB14710409260B261B262B20F3375 +:10624C0063B23C784C00002048000020FFFF0000A7 +:04625C0044000020DA +:10626000D1140739036D3008035906382708FFE3B6 +:1062700047E9041013161A1D210000330431F02BD6 +:10628000403A4094C8681E0C01328470C86C60B4F7 +:10629000911408316611F5070C316611F2071031BF +:1062A0006511002BEE0714316411FC07F13318312E +:1062B0007843F8071C316211E407003300310F2BDB +:1062C000E0070232E3070F39E40B08290639076CAF +:1062D0002708FFE315E9041013161A1D21000033E7 +:1062E0000431F02B403A4194C8681E0C013284708E +:1062F000C86C61B4CE0708316D10F5070C316D1014 +:10630000F20710316C10002BEE0714316B10FC07F4 +:10631000F13318317843F8071C316910E407003372 +:1063200000310F2BE0070232E3070000FFF0FFFF10 +:10633000FF0FFFFF0000F1FF000010FFFFFFFF0F46 +:106340002141033268908470C96801328470C86C3E +:0463500068B03C787D +:0E635400214101334990C470C86C69B03C7897 +:10636400C11422140F3A4F08CB6C833B403B1308F3 +:106374000F2B61B80033073A6EDC03007611380C3A +:106384004093619281982ED80300D06804700C6CFD +:1063940001B23704413B06080033F02B61B80433E3 +:1063A400EB07423B05086D1161B80833E507433B31 +:1063B40005086B1161B80C33DF07443B060869110B +:1063C400002B61B81033D807453B06086611002B33 +:1063D40061B81433D107463B0708F1337843002BE7 +:1063E40061B81833C907611161B81C33C5074093FC +:1063F400609281982ED80300D06804700C6C00B2AF +:1064040002148114133AFD0B4038140800330F2B87 +:10641400C860013BF60B503A6F1006084093629235 +:106424004C6C22B2EE07609342932441486C22B331 +:10643400E8074238E60B0033112BC860013BE10B3F +:106444006510523A6093429303082841F0072C41A7 +:10645400EE07000044000020FFF0FFFFFF0FFFFFE6 +:0C6464000000F1FF000010FFFFFFFF0F21 +:10647000D0140F3812087D11FFE342E8080F151DF4 +:10648000242B32393F464C545B62697040936092D2 +:106490000F31C568A03B60B2901440936092F03118 +:1064A000C568A43BF9072093F03260914442C96863 +:1064B000A83B60B1F2072093F03260914842C9686E +:1064C000AC3BF8072093F03260914C42C968B03B76 +:1064D000F1072093F03260915042C968B43BEA075B +:1064E0002093F03260915442C968B83BE30740936F +:1064F00060926443644BBC3BCF07409361920F3181 +:10650000C568A03B61B2C90740936192F031C5688C +:10651000A43BF9072093F03261914442C968A83B3B +:1065200061B1BB072093F03261914842C968AC3B2E +:10653000F8072093F03261914C42C968B03BF107F3 +:106540002093F03261915042C968B43BEA0720932E +:10655000F03261915442C968B83BE30740936192BD +:0C6560006443644BBC3BCF074C000020A0 +:08656C000133C47063B03C78F8 +:086574000133C47064B03C78EF +:10657C004590013385708C68403AC470030C64B04C +:06658C003C7863B0FE073D +:1065920001334690C4708C68CA64036400743C780A +:1065A400641040936192AC3BAE3B61B23C78000016 +:0465B40014000020AF +:1065B800631060934093086C00B33C78100000208F +:1065C800003360B061B062B063B064B065B066B00B +:0C65D80069B06AB06BB06CB06DB03C787C +:0865E4006090A03B60B03C7820 +:0A65EC006090AC3BAE3B60B03C7821 +:1065F600C314A498976D8398186DD06CA1904C6CB9 +:08660600546C21B042B0831472 +:10660E00C41421148598D36D869880B88798936D9D +:10661E00A898586DC098586D5C6DD46C8C6C819038 +:0C662E00486C046D9F6D81B00114841451 +:06663A0023B044B03C78DF +:1066400040396B90040C8C6C4BB03C78C9686BB0D3 +:02665000FD0744 +:1066540080337643421060B23C78000000E100E0F1 +:1066640065100032609340B341B342B343B344B3C3 +:086674003C780000400000200A +:10667C0065100032609340B341B342B343B344B3AB +:08668C003C7800003C000020F6 +:1066940065100032609340B341B342B343B344B393 +:0866A4003C78000038000020E2 +:1066AC0065100F32609343B380336643431060B27E +:0C66BC003C7800004000002000E100E0FD +:1066C80065100F32609343B380336743431060B261 +:0C66D8003C7800003C00002000E100E0E5 +:1066E40065100F32609343B380336843431060B244 +:0C66F4003C7800003800002000E100E0CD +:106700004038210840390A087711FF3140936092E0 +:10671000C568A23BA63B60B215044139130872114B +:10672000F031409360923041C568E0312F41C46C34 +:1067300060B2F03161922C41C568E0312B41C46CEC +:1067400061B23C7841382D084039140867110F3187 +:1067500040936092C5680731C46C60B2F032621138 +:10676000504220936191C968E0324F42C86C61B1D8 +:10677000E90741390C087C10FF3220934C426091AC +:10678000C968EE324B42C86C60B1DC074239DA0BA3 +:106790007510EE32209361916843684B5742E707CA +:1067A0004238D00B403909086F10FF314093609296 +:1067B000C5687731C46CB007413909086A10EE32F8 +:1067C000209360916843684B5742DE074239BA0B09 +:1067D0006610FF32209350426091C968CC324F421C +:0C67E000D30700004C00002048000020FF +:1067EC0063108C6C42B024B03C7800000F000800A1 +:1067FC00C214C76C0135855B9064020C82148083D3 +:0E680C0080B081901469403CFD0B0023F5071D +:10681C006810803260938C6027103AB24193FE313D +:10682C00846841B3013141938468403AFD0B3C7854 +:08683C00200000203AC75AA514 +:10684400C414221465118611609388B3073483B38A +:10685400013406B384B38493403CFE0B02212249E5 +:106864002241486020B8295821B820984A64260853 +:1068740006315B1048B323B3013106B324B3249328 +:106884004039FE0B48B3013243B306B344B34A93D1 +:10689400443AFE0B0231521048B323B3013106B31C +:1068A40024B32A934139FE0B48B323B306B324B36C +:1068B4004A93423AFE0B02148414E0828182884493 +:1068C40022821C61A3823041C1985060B84588611E +:1068D400546020B60322CA07600000205A5A5A5A4C +:1068E400C314003303354E64CC5A02088314403B6E +:1068F400060C0F6D1469403C020803200F6D1469E7 +:0A6904000061808480A60023EF07E5 +:10691000D01400E0AB002D1000304D1000E0540901 +:106920002C10003000E05009FFE3A4FB00E0E80673 +:1069300000E0400700E09E0700E0900A00E06619D2 +:1069400000E08209F207000098B600009C000020D9 +:04695000AEB60000DF +:10695400D014231432320033087C62B801B860B812 +:1069640040986198C864030C03149014629800233F +:0C69740062B8FFE37DFB60980023F2078F +:106980002314003362B801B860B840986198C864B5 +:10699000030C03143C786298002362B860980023CB +:0269A000F407FA +:1069A400D2142414951000350094FFE30DFE0094D6 +:1069B400A1B8A0B8083300320131FFE31CFE8033D4 +:1069C400634361B800940033A3B8A2B8A0B80032FE +:1069D4008031FFE31CFE013229100094FFE32DFEF9 +:1069E4000094FFE3FFFD009402320131FFE328FE2F +:1069F400FFE330FE0414921408000020AC120000DF +:106A0400D0142114FFE380FA01310130FFE3A2FA2C +:106A14000030FFE3FBFA80310833003221410230B9 +:106A2400FFE3B0FA803018310240FFE32BFB013062 +:106A3400FFE300FBFFE31CFBFFE34EFB403360B8C6 +:106A4400C03180336443003223410030FFE326FB2E +:106A5400FFE334FBFFE392FB003000E0F522011476 +:026A640090148C +:106A6800D0147B10013140937A106AB26DB26C92E7 +:106A7800C468403BFD0FFFE3C3FF00E04F05FFE3A1 +:106A880091FB01310D30FFE39FFB01310E30FFE335 +:106A98009BFB01310F30FFE397FBFFE3ADFBFFE307 +:106AA8007FFF2D10003000E03F052C10013000E082 +:106AB8003B052B10023000E0370500E0810900E0BB +:106AC8009B0D00E0611F00E0451B90145C00002056 +:106AD800FFFFFF0FA48F0000809E000014A000009D +:106AE80060146214036C7A1180326093C860239337 +:106AF800013040684039040C01B3631461142393D6 +:106B0800023040684039F90B239308304068403917 +:106B1800F40B2393103040684039EF0B23934868F7 +:106B28004039030C41B3EA07803223934142486855 +:106B38004039F90B80322393424248684039F30BBD +:106B480080322393434248684039ED0B80322393C7 +:106B5800444248684039030C036CE50780322393AC +:106B6800454248684039DF0B8032239346424868E3 +:106B78004039D90B80322393474248684039D30BB8 +:106B8800803223934B4248684039CD0B803223939F +:106B98004C4248684039C70B803223934D424868BD +:106BA8004039C10B803223934E4248684039BB0BB1 +:106BB800803223934F4248684039B50B8032239383 +:106BC800564248684039AF0B990700005C00002026 +:106BD800601462147810013160934B938468403AD2 +:106BE800040C2CB3631461144B9302318468403A4B +:106BF800F90B4B9304318468403AF40B80322B93A1 +:106C0800454248684039030C4CB3ED0780322B935A +:106C1800464248684039F90B80322B93474248680E +:106C28004039F30B80322B93484248684039ED0BCA +:086C3800DA07000060000020F3 +:106C40006014621478100131609348938468403A6C +:106C5000040C27B363146114489302318468403AEA +:106C6000F90B489304318468403AF40B489310318F +:106C70008468403AEF0B489320318468403AEA0B2D +:106C8000489340318468403AE50B489380318468EA +:106C9000403AE00B80322893494248684039DB0F84 +:086CA00047B3D90750000020A2 +:106CA80060146214D114871380326094C8603593DD +:106CB800013040684039030C17B32404359302307F +:106CC80040684039FA0B3593043040684039F50B79 +:106CD8003593083040684039F00B359310304068E0 +:106CE80040391F0C17B3003201310030FFE300FABE +:106CF800013201310130FFE3FBF960944B937212CA +:106D080040B360948032C8602B93013040684039AA +:106D1800610C0DB3EED9012080980214631461143C +:106D28003593203040684039100C17B300320131D8 +:106D38000130FFE3DDF9013201310030FFE3D8F91A +:106D480060944C936112DD073593403040684039B8 +:106D5800B40B359348684039030C57B3D3078032D6 +:106D68003593414248684039F90B803235934242A5 +:106D780048684039F30B80323593434248684039BC +:106D8800ED0B80323593444248684039E70B803236 +:106D98003593454248684039E10B80323593464285 +:106DA80048684039DB0B80323593474248684039A0 +:106DB800D50B80323593484248684039CF0B803232 +:106DC80035934942486840399D0F57B3FFE324FD86 +:106DD80099072B930230406840399C0B2B93043061 +:106DE80040684039970B2B93083040684039920B24 +:106DF8002B931030406840398D0B2B93203040681E +:106E08004039880B2B93403040684039830B2B93D3 +:106E180048684039030C4DB37E0780322B934142BA +:106E280048684039F90B80322B9342424868403910 +:106E3800F30B80322B93434248684039ED0B6B07C4 +:0C6E480020000020140200201002002096 +:106E540060146214D214AB100134609585B3FF3012 +:106E6400FFE3AAFB40956392D068403B020C85B2D5 +:106E7400EED90220A19880980314631461140000D1 +:046E840010000020DA +:106E8800601462147E10013160937F2355938468E7 +:106E9800403A040C37B36314611455930231846883 +:106EA800403AF90B559310318468403AF40B5593E6 +:106EB80020318468403AEF0B80323593414248686C +:106EC8004039030C57B3E80780323593424248688B +:106ED8004039F90B80323593434248684039F30B07 +:106EE80080323593444248684039ED0B80323593FF +:106EF800494248684039E70BCF07000024000020CA +:106F0800601462147910013160934A938468403A9E +:106F1800140C57102BB34CB34293846C42B3803299 +:106F28004D4240B3023142938468403AFD0B42938C +:106F3800803A42B3631461144A9302318468403A38 +:106F4800030C2BB3F8074A9304318468403AFA0BD0 +:106F58004A9308318468403AF50B4A9310318468A3 +:106F6800403AF00BE80700001800002053CA000060 +:106F780060146214D01476100231609343938468CD +:106F8800403A0B0C23B30093007400E09303EED94E +:106F98000020011463146114439301318468403A5A +:106FA800030C23B3F507439308318468403AFA0B7E +:106FB800439304318468403AF50B803223934C4262 +:106FC80048684039E50F43B3E3070000400000205C +:106FD80060146214D0147F10023160934393846864 +:106FE800403A0B0C23B30093007400E0BD03EED9C4 +:106FF8000020011463146114239301324868403956 +:107008000D0C43B3741040B374106093413BF00B04 +:1070180053106092002360B2EB07439308318468F1 +:10702800403A030C23B3E407439304318468403A9D +:10703800FA0B803103932C4104684038D90F23B3ED +:10704800651040B365106093413BD20B4510E207D1 +:107058003C000020C8000020CC000020D000002008 +:04706800D400002030 +:10706C0060146214D01476100231609343938468D8 +:10707C00403A0B0C23B30093007400E0D303EED919 +:10708C000020011463146114439301318468403A65 +:10709C00030C23B3F507439308318468403AFA0B89 +:1070AC00439304318468403AF50B803223934C426D +:1070BC0048684039E50F43B3E3070000380000206F +:1070CC006014621478110131609347938468403ADC +:1070DC00030C28B30704479302308068403A040C31 +:1070EC0008B363146114479304308068403A550C1C +:1070FC0008B30293AA3282643E0802314393846837 +:10710C00403AFD0F113242B3103143938468403A38 +:10711C00FD0B023143938468403AFD0F123242B3A7 +:10712C00103143938468403AFD0B023143938468D9 +:10713C00403AFD0F133242B3103143938468403A06 +:10714C00FD0B023143938468403AFD0F143242B375 +:10715C00103143938468403AFD0B023143938468A9 +:10716C00403AFD0F153242B3103143938468403AD4 +:10717C00FD0BB80743938468403AB40B42B310310B +:10718C0042B342B342B342B342B342B342B343936A +:10719C008468403AFD0BA607479308318468403A4F +:0871AC00990BA007340000203C +:1071B4006014621473100431609349938468403AF4 +:1071C400020C2BB3499301318468403A020C2BB36F +:1071D400499302318468403A030C2BB31004499359 +:1071E40008318468403AFA0B499310318468403A74 +:1071F400F50B499320318468403AF00B6314611411 +:047204002C0000203A +:10720800601462146A10013160937F234C93846880 +:10721800403A040C2BB36314611480322C93494216 +:1072280048684039F90F4BB3F70700005C000020AD +:10723800601462146A10023160937F234C9384684F +:10724800403A040C2BB36314611480322C934A42E5 +:1072580048684039F90F4BB3F70700005C0000207D +:10726800601462147010043160937F234C93846817 +:10727800403A040C2BB3631461144C9308318468AE +:10728800403AF90B80322C934B4248684039030C42 +:107298004BB3F20780322C934C4248684039F90BC3 +:0872A800EB0700005C00002070 +:1072B000601462146610103160937F234C938468CD +:1072C000403A020C2BB36314611400005C000020F0 +:1072D00060146214D0147910803260937F232C9351 +:1072E000434248684039070C4BB3EED900200114E3 +:1072F0006314611480322C93444248684039F50B82 +:1073000080322C93454248684039EF0B80322C93F1 +:10731000464248684039E90B80322C93474248681E +:107320004039E30B80322C93484248684039DE0FE5 +:0C7330004BB300E01B04DA075C000020F7 +:10733C00601462146B10013160934E938468403A70 +:10734C00030C30B30B044E9302318468403AFA0BB1 +:10735C004E9304318468403AF50B631461140000B9 +:04736C0014000020E9 +:10737000601462147110013160934C938468403A38 +:107380000A0C2DB34193863A41B34093003240B387 +:10739000631461144C9302318468403A030C2DB39A +:1073A000F8074C9304318468403AFA0B4C93083147 +:0C73B0008468403AF50BED070C0000204B +:1073BC0060146214D0147910013160934C9384687A +:1073CC00403A030C2DB318044C9302318468403AB4 +:1073DC00180C2DB372104083002288742193002165 +:1073EC00093A40A321B3080C003240A34293002277 +:1073FC0042B300E09503EED900200114631461142C +:10740C004C9304318468403ADE0B4C930831846809 +:10741C00403AD90BF107000008000020BC00002006 +:02742C003C78AA +:08742E00601462146314611480 +:08743600601462146314611478 +:08743E00601462146314611470 +:08744600601462146314611468 +:08744E00601462146314611460 +:08745600601462146314611458 +:08745E00601462146314611450 +:08746600601462146314611448 +:08746E00601462146314611440 +:08747600601462146314611438 +:08747E00601462146314611430 +:08748600601462146314611428 +:10749000C11400C0236080C02070461000344092A8 +:1074A00084B2BF3B00B221B203C0206402928114B7 +:0474B00000000020B8 +:1074B400C11400C0236080C0207046100134409283 +:1074C40084B2BF3B00B221B203C020640292811493 +:0474D4000000002094 +:1074D800C11400C0236080C0207046100034409260 +:1074E80084B2BF3B00B221B203C02064039281146E +:0474F8000000002070 +:1074FC00C11400C0236080C020704610013440923B +:10750C0084B2BF3B00B221B203C020640392811449 +:04751C00000000204B +:0675200080C120743C78DC +:0675260080C020703C78DB +:10752C00D21400744138476D1F0C4038040C42389B +:10753C008D0C9214FFE392F800310030FFE3DCF87D +:10754C006D128032009343422C12FFE34BF9FFE3A0 +:10755C00A9F8943200310A12FFE3ECE96912033204 +:10756C0042B3A4B3E7078812943200310712FFE349 +:10757C00E1E988320031136CFFE3DCE96412033279 +:10758C0042B3A4B35F2463120F31609367B4013329 +:10759C0065A4A11281120094FFE3CEF60F320F31D5 +:1075AC000030FFE3DBF60F30FFE35EF78031013292 +:1075BC0028410130FFE39AF5803100322841013037 +:1075CC00FFE394F5803128410130FFE3AFF58031C2 +:1075DC0000942841FFE3C4F5FFE3C4F5FFE34AF848 +:1075EC0002310130FFE388F86D1100320093231152 +:1075FC00FFE3F8F8FFE364F8009400320B31FFE38B +:10760C002BF6009400320C31FFE326F60032009585 +:10761C000331FFE321F600940B31FFE3A7F700944D +:10762C000C31FFE3A3F700950331FFE39FF7003222 +:10763C0000940731FFE310F600940731FFE386F660 +:10764C0000940731FFE392F77507FFE31FF802314F +:10765C000230FFE351F87310003200932710FFE360 +:10766C00C1F8FFE33BF8943200310F10FFE362E9FD +:10767C006E1076074000002088130000D402002012 +:10768C0054030020FC03002068030020E8030020C2 +:10769C00C4000020480000204C0000203C000020CA +:0C76AC003800002040020020C002002036 +:1076B800D1148D10428C3E338D64030C003362ACC0 +:1076C800628C425B42AC0B314810C86000A3681062 +:1076D8000093FFE349F76710609363B4013360A434 +:1076E8009114000054030020D40200204C00002014 +:0476F800C4000020AA +:1076FC00D21497106084413B2808B61060954394CF +:10770C00CA604294C8642108FFE33AF56095428C44 +:10771C003110121063B4FFE351E9628C61AC003399 +:10772C0062AC60A4FFE326F56494403B040C218C0E +:10773C000A10CD7B6A100B310093FFE317F7403230 +:10774C0000310610FFE3F6E8921400005403002009 +:10775C00C4000020D4020020140300204C000020A0 +:10776C00D1148D10428C3E338D64030C003362AC0B +:10777C00628C425B42AC0C314810C86000A36810AC +:10778C000093FFE3EFF66710609363B4013360A4DA +:10779C0091140000E8030020680300204C00002036 +:0477AC00C4000020F5 +:1077B000D2149A106084413B2908B9106095439413 +:1077C000CA604294C8642208FFE3E0F46095428CEA +:1077D0003410151063B4FFE3F7E8628C61AC00333A +:1077E00062AC60A4FFE3CCF46494403B1008218CAD +:1077F0000D1000E065156D100C310093FFE3BCF631 +:10780000403200310810FFE39BE89214218C0610EF +:10781000CD7B4038F10FEC07E8030020C4000020C6 +:0C78200068030020A80300204C0000209A +:10782C00D1148D10428C3E338D64030C003362AC4A +:10783C00628C425B42AC03314810C86000A36810F4 +:10784C000093FFE38FF66710609363B4013360A479 +:10785C0091140000C00200204002002048000020CB +:04786C00C400002034 +:10787000D21497106084413B2808B6106095439459 +:10788000CA604294C8642108FFE380F46095428C8A +:107890003110121063B4FFE397E8628C61AC0033DF +:1078A00062AC60A4FFE36CF46494403B040C218C54 +:1078B0000A10CD7B6A1003310093FFE35DF640327E +:1078C00000310610FFE33CE892140000C0020020E3 +:1078D000C400002040020020800200204800002058 +:1078E000D414211400B8C76D00359F10DF106094C8 +:1078F000413B2D0CFFE319FE07310096FFE338F6FC +:10790000013361B4003362B463B4FFE30BFE78105B +:107910009F6C00932098FFE373F76430FFE332F825 +:10792000002563334C65070C6294CD65F70B6394B7 +:10793000CD65F40BFFE3F9FD00960731FFE31CF67C +:10794000003361B4FFE3EEFD011494146430FFE3EF +:1079500019F800256433D664CE0F07310096FFE393 +:107960000FF6C607C80000204C0000203C00002095 +:10797000D414231402B820B800358911C9116094B9 +:10798000413B3E0C6811C483403E61B84508E51197 +:10799000FFE3CBFD07310097FFE3EAF50132619881 +:1079A00041B444A3C2B446A3C3B4FFE3BBFD5F101C +:1079B000009222984098FFE323F76430FFE3E2F758 +:1079C000002563334C65080C629440988D64F60B77 +:1079D00063948D64F30BFFE3A8FD00970731FFE389 +:1079E000CBF5003361B47210409372105FB36198AD +:1079F000003246A3FFE396FD1B6C0314941464301D +:107A0000FFE3C0F700256433D664BD0F073100964D +:107A1000FFE3B6F5B5070136F0070000C800002007 +:107A20004C0000205C0400203C000020C40000202A +:047A3000FC03002033 +:107A3400D41421146359CD746334D06400B8290C70 +:107A4400413A040C01300114941475106037CC6170 +:107A5400C8874A8798641F088034B2100C61019467 +:107A6400409582601E9308641808403E070C4095B8 +:107A7400C0949A607D93C864E60F0098FFE378FF92 +:107A84004038E10B609560B46887002368A7DC0781 +:107A94000430DA070330D8070230D607FC0300208D +:047AA400C4000020FA +:107AA800D41422148B6D479840B84359476D897494 +:107AB80063318464C36D200C911064320031136CFF +:107AC80061B8FFE339E7976C136C5F6CFFE378E705 +:107AD8004032906061987EB4B7AA60334098D06015 +:107AE8005DB4013249A347A30032CAA348A37F2447 +:107AF8006410609361B4021494140000FC03002025 +:047B0800C400002095 +:107B0C006310003249A347A33C7800005C040020BA +:0C7B1C0062100CA33C7800005C04002008 +:107B2800D214AE10603414616484403B150C668432 +:107B3800413B120CFFE3F5FC6584413B0B086810E0 +:107B480040937F958E607C950523C864030C0033B1 +:107B580064A4FFE3E3FC9214FC030020C4000020AB +:107B6800D21494106035FFE3DCFC5061013364A546 +:107B78000A317110409300938033D06060935FB4F2 +:107B88000E60FFE3B9FC1CB40F318C100094FFE3C6 +:107B9800FEF441380608013365A5FFE3BFFC9214E3 +:107BA80000940F31FFE3F3F44038F80B0033F50786 +:0C7BB800FC030020C40000204C00002052 +:107BC400231462B841B820B8D1142214649861B85F +:107BD40001339810C0704494C868403B240C76105C +:107BE40060934694495B65B447B466B4203040B8AA +:107BF400803152101060FFE345E64174203010607C +:107C0400FFE36EFE2030051B419880311060FFE3D6 +:107C140068E64174136C1F20FFE362FE0231081012 +:107C2400FFE35EFE0214EED90120809805143C782F +:107C3400C8000020C4000020C5B60000D3B6000070 +:107C4400D11493106984413B21087210378B01329F +:107C54001110FFE3EFFE07A4012800740138160891 +:107C64002E100130FFE3AEFF003369A46C84413B66 +:107C74000D082B100130FFE3A5FF6A104A10609332 +:107C84004D92FF2343B3FFE385F291145C0400207B +:107C94003C040020FC030020D6B60000DFB6000040 +:087CA4005C0000200C07002029 +:107CAC00D4142214CF6D9B1001338B6DC07044948F +:107CBC00C868403B1F0C781060934694495B65B4D0 +:107CCC0047B466B4203040B8803154101060FFE3E4 +:107CDC00D5E5417420301060FFE3FEFD70105B6D44 +:107CEC0061B81F24795DCC65070C02310D10FFE3E0 +:107CFC00F3FD02149414608541988031136CFFE3FA +:107D0C00BDE54174136CFFE3E7FD0025EC070000B3 +:107D1C00C8000020C4000020C5B60000E9B6000071 +:047D2C00D3B60000CA +:107D3000231462B841B820B8D2142114649860B8F2 +:107D400001339110C0704494C868403B140C20303B +:107D5000051B409880311060FFE3C5E5AB10536C04 +:107D600081741F210095FFE34BF500950232281026 +:107D7000FFE346F50114EED90220A198809806147D +:107D80003C780000C800002038000020D3B6000076 +:107D9000D01441380D0C4038050C42380D0C003021 +:107DA000060468100A310093FFE3F5F390146510A0 +:107DB00009310093FA07631008310093F6070000B9 +:047DC0004C00002053 +:107DC400D2148211013200940A31FFE349F2009483 +:107DD40001320931FFE344F2013200940831FFE338 +:107DE4003FF200940A31FFE3ABF200940931FFE360 +:107DF400A7F200940831FFE3A3F214320031141007 +:107E0400FFE39CE51430FFE3A5F50034B0101074D3 +:107E1400FFE3BEFF403807080133D0708F6C6395D1 +:107E2400C86C63B50024433CF30B691007314393DA +:107E3400486826A3003144B327A30030003325103B +:107E4400FFE3C0FE921400004C00002084040020D4 +:047E5400EFB6000085 +:107E5800D31422114211A31100926091C260143B05 +:107E6800060843956495CA642E089314609160B21D +:107E7800176D00361874FFE389FF40380033140883 +:107E880063A46084043B0808002360A40026433EE2 +:107E98000024F10BE7070133D8708F6C6395C86C29 +:107EA80063B50033F30760A46384043B040800232C +:107EB80063A4ED070033012B4395DB70C86863B5F5 +:107EC8000033F707073344B500308C68261046A501 +:107ED800FFE376FECB070000C40000206801002005 +:087EE8008404002006B700002D +:107EF000C36C406000304E6402083C7840830860E8 +:067F000000740023F907E4 +:107F0800D1142F14036D003332320031021860B8D7 +:107F18006EDC0210FFE310E5BB6C04310312FFE3D3 +:107F2800DFF44ED80000A633CA64040C01300F14E5 +:107F380091142ED802006ED8010028414C6C3233BF +:107F48004C64F50F021A1A11FFE3CAF43031021813 +:107F5800FFE3CCFF6ED803000E64E90B3032021940 +:107F6800136CFFE32DE59311FFE380F00094FFE32A +:107F780055DD836CC76C00302F11FFE321FE01949F +:107F8800FFE34CDD836CC76C00302C11FFE318FE57 +:107F98000294FFE343DD836CC76C00302811FFE3D4 +:107FA8000FFE0394FFE33ADD836CC76C00302511A4 +:107FB800FFE306FE0494FFE331DD836CC76C0030F9 +:107FC8002111FFE3FDFD0594FFE328DD836CC76CF9 +:107FD80000303E10FFE3F4FD0694FFE31FDDC76C9D +:107FE800836C3B100030FFE3EBFDFFE33FF0479469 +:107FF80000303810FFE3E4FD489400303610FFE30A +:10800800DFFD499400303510FFE3DAFD4A94003073 +:108018003310FFE3D5FD00304B943210FFE3D0FD61 +:10802800FFE324F000308407800100108401001071 +:108038009804002012B700001DB7000029B70000FF +:1080480035B7000041B700004DB700005DB700002C +:108058006DB700007DB7000090B70000A3B700001F +:04806800B5B70000A8 +:10806C00D0142E140033592B6EDC000030336EDC30 +:10807C00010000336EDC0200011B436C30320F6CCC +:10808C00FFE39CE43031FFE32FFF0EDC0300BB6CFD +:10809C0034310410FFE3D2F300300E1490140000BE +:0480AC00800100103F +:1080B000D414D5129512BB96576C0194FFE31EDCC5 +:1080C0004038970CA1B40135FC965F6C0294FFE335 +:1080D00015DC4038030CE2B40135FA965F6C00946D +:1080E000FFE30CDC4038030CE0B40135FD965F6C17 +:1080F0000394FFE303DC4038030CE3B40135FE9640 +:108100005F6C0494FFE3FADB4038030CE4B4013500 +:10811000DF965B6C0594FFE3F1DB4038030CC5B4DC +:108120000135DB11E0965F6C0694FFE3E7DB403836 +:10813000DB6C030CE6B40135419329948664030C8F +:1081400049B4013543932B948664030C4BB4013539 +:1081500062934A94CA644F0C6AB40C11FFE388FF1F +:10816000FFE388EF2B110030FFE32EFD0094FFE3C7 +:1081700059DC836CC76C00302711FFE325FD0194A7 +:10818000FFE350DC836CC76C00302411FFE31CFD5F +:108190000294FFE347DC836CC76C00302011FFE3DF +:1081A00013FD0394FFE33EDC836CC76C00303D108D +:1081B000FFE30AFD0494FFE335DC836CC76C0030F9 +:1081C0003910FFE301FD0594FFE32CDC836CC76CE1 +:1081D00000303610FFE3F8FC0694FFE323DC836CE9 +:1081E000C76C00303210FFE3EFFCFFE343EF941461 +:1081F00000356B07413DB20F2E100030FFE3E4FC69 +:10820000F70700007405002098040020F405002002 +:10821000DDB7000016B7000021B700002DB7000041 +:1082200039B7000045B70000CAB70000D2B7000058 +:04823000DAB70000B9 +:10823400D114FE33764361B062B063B064B00033EE +:1082440065B066B0791167B0013368B078116BB06E +:1082540080327811574269B0771140B06AB000306B +:108264003611FFE3AFFC9611FFE302EF0094FFE346 +:10827400D7DB836CC76C00303211FFE3A3FC01949D +:10828400FFE3CEDB836CC76C00302F11FFE39AFC55 +:108294000294FFE3C5DB836CC76C00302B11FFE352 +:1082A40091FC0394FFE3BCDB836CC76C00302811A2 +:1082B400FFE388FC0494FFE3B3DB836CC76C0030FA +:1082C4002411FFE37FFC0594FFE3AADB836CC76CF6 +:1082D40000302111FFE376FC0694FFE3A1DBC76CB9 +:1082E400836C3E100030FFE36DFCFFE3C1EE479466 +:1082F40000303B10FFE366FC489400303910FFE384 +:1083040061FC499400303810FFE35CFC4A9400306F +:108314003610FFE357FC4B9400303510FFE352FC5A +:10832400FFE3A6EE91140000409C000080EE3600AE +:108334008813000060EA0000F0B7000098040020F1 +:1083440008B8000017B8000027B8000037B80000CC +:1083540047B8000057B800006BB800007FB80000B1 +:1083640093B80000AAB80000C1B80000D7B8000054 +:10837400D1143214036D003340320031021860B856 +:108384006EDC0210FFE3DAE28030BB6C043115408E +:10839400FFE3A8F24ED80000AE33CA64040C0130E7 +:1083A400121491142ED802006ED8010028414C6C8E +:1083B40040334C64F50F021A1B10FFE393F225318E +:1083C4000218FFE395FD6ED803000E64E90B253215 +:1083D4000219136CFFE3F6E29410FFE349EE4084C4 +:1083E40033100030FFE3EEFB418432100030FFE332 +:1083F400E9FB428430100030FFE3E4FB43842F1098 +:108404000030FFE3DFFB44842D100030FFE3DAFB90 +:108414000030525C2B10FFE3D5FBFFE329EE003064 +:10842400C007000004000010C80400206DB900005B +:108434007BB9000089B900009AB90000AAB900000C +:04844400BBB90000C0 +:10844800D01432140033512B6EDC000025336EDC5F +:10845800010000336EDC0200011B436C25320F6CF7 +:10846800FFE3AEE22531FFE341FD0EDC030080307F +:108478001540BB6C2931FFE3E3F10030121490146E +:10848800D214003360A0063361A0053363A0B2584C +:10849800113364A0036D20320031176CFFE34CE206 +:1084A80011322510176CFFE38BE2136CFFE3CAFF50 +:0884B80092140000C9B9000094 +:1084C000D3146380453B036D210C053363A0013554 +:1084D0006184463B040C063361A401356484513B3E +:1084E000040C113364A40135D25C11322A101B6CC8 +:1084F000FFE39CE240380C0C448427101B6CFFE324 +:1085000063E2136CFFE3A2FF05040035E207413D7F +:08851000F90F9314C9B9000032 +:10851800D2146D110132609341B34593A13AB03A38 +:1085280045B30A30FFE314F2881129110030FFE344 +:1085380047FB25320031136CFFE3FEE1136CFFE3C8 +:1085480017FF641166834084CA64436D050C136C7D +:1085580060A4FFE377FF403D1C101D08FFE3AEFF5A +:108568003D100030FFE32CFB303200311B10FFE3DD +:10857800E3E11A10FFE3C6FC036D836C381000308A +:10858800FFE31EFB403C040C1410FFE351FE00E027 +:108598004B009214FFE376FFFFE368ED31100030E3 +:1085A800FFE30EFB428430100030FFE309FB4484F4 +:1085B8002E100030FFE304FB4D102E100030FFE3B7 +:1085C800FFFACF0760000020C8040020DAB90000D5 +:1085D8008404002023BA00009804002058BA000040 +:1085E8000FBA000089B90000AAB90000CD04002024 +:0485F800BBB900000B +:1085FC00D014483200310810FFE39CE13C320031CA +:10860C000610FFE397E1983200310510FFE392E189 +:10861C0090140000F00400203805002074050020A0 +:10862C00D414B4119411C1953B941B6CFFE360D925 +:10863C004038020CDBB4C2953C941B6CFFE358D958 +:10864C004038020CDCB4C0953A941B6CFFE350D953 +:10865C004038020CDAB4C3953D941B6CFFE348D947 +:10866C004038020CDDB4C4953E941B6CFFE340D93A +:10867C004038020CDEB4C5953F941B6CFFE338D92F +:10868C004038020CDFB4FD10C69520971B6CFFE33D +:10869C002FD94038DF6C020CC0B7499521934A643E +:1086AC00020C41B34B9523934A64020C43B34A9595 +:1086BC0022934A64020C42B37110409330944A6482 +:1086CC00030C50B451B4419333944A64030C53B427 +:1086DC0054B4429336944A64020C56B4639358943F +:1086EC008E64020C78B427100030FFE367FA941400 +:1086FC009804002074050020F40500204808002090 +:04870C0071BA00003E +:10871000D1142F106F10509100930A640D0801932B +:1087200093911264090802939691126405080393C9 +:10873000989112640B0C40B3539141B3569142B3DC +:10874000589143B3031000E09F109114740500206A +:0487500048080020B5 +:108754004060003342640408CE6C0C743C78408062 +:08876400C860CC740020F70787 +:10876C00D0142214003360B86EDC040000335A2B92 +:10877C006EDC00000033152B6EDC010000331A2B6D +:10878C0003313B6C6EDC0200FFE3E0FF651004324A +:10879C000EDC03007B6C0093FFE32CF002149014AE +:0487AC004000002069 +:1087B000D0142214003360B86EDC040000335A2B4E +:1087C0006EDC00000033152B6EDC01000033232B20 +:1087D00003313B6C6EDC0200FFE3BEFF6510043228 +:1087E0000EDC03007B6C0093FFE30AF0021490148C +:0487F0004000002025 +:1087F400D0142214003360B86EDC040000335A2B0A +:108804006EDC00000033152B6EDC01000033692B95 +:1088140003313B6C6EDC0200FFE39CFF0EDC0300C3 +:1088240002302610FFE3CEF96510043200937B6C0E +:10883400FFE3E4EF021490148CBA0000400000201F +:10884400D41421149F10C36D476D8B6D00311E32FB +:10885400136CFFE373E000335A2B2032906060A462 +:1088640002337CA200337F2BCC6D4033D0600031C7 +:10887400403DE1A421A322A3CB6D200C023240A3EE +:10888400435D003340B84C650F0C5475C65D987554 +:1088940059740C101861DCA70225FFE35BFF00A4E8 +:1088A400BCA70114941440988E6043425B6C0C5C2A +:1088B4004970002322A0CC74E707013240A3F207D9 +:0488C400F00400209C +:1088C800D114291442381D0875109C83033C170CD9 +:1088D800936C34100118FFE373E011757210618313 +:1088E8004ED8050060B80230D36C3010FFE368F949 +:1088F8006F10936C00930119FFE37EEF0914911434 +:108908004138FD0B6710408BC9744EDC0210684B70 +:108918007F32C8686EDC05000234E10710050020CC +:10892800F0040020300500209ABA00004000002022 +:108938006310003240A342A33C78000030050020B9 +:108948006610028341380408003242A33C7842385A +:0C895800FC0F0030FC0700003005002080 +:108964006610038341380408003243A33C7842383C +:0C897400FC0F0030FC0700003005002064 +:10898000D3148C121E8405381308FFE3B9D50311E4 +:108990002735748268126083413B08086712409350 +:1089A000671240B301337EA40304423BF80F9314D3 +:1089B000A4124033D460003241A342A36083423BFF +:1089C0000A08FFE3D5FE05337EA402337FA43233C9 +:1089D00071B5EE0705337EA40333F9070230FFE3D8 +:1089E00075FF76114093761140B305337EA40333AF +:1089F0007FA43232731151B3D011B11160964095FA +:108A0000CA605111C8642008609660B540356D1188 +:108A10004C614185023A08080130FFE357FF618548 +:108A2000002361A5C507023243A540850531423ABE +:108A30003EA44611070804313FA451B3FFE37EFF73 +:108A4000B7070031FA07FFE381FF4138B10B7D1012 +:108A500040328C60013123A240822096423A053296 +:108A600020B55EA4050804325FA43232E707003265 +:108A70005FA46432E307FFE39DFE05337EA4003369 +:108A800032327FA46F1051B36C1040936C1040B31E +:108A90008F076A104A1060934092CA604910519241 +:108AA0008C64860F7F847EA400337FA4810700003E +:108AB0001005002030050020C40000206C010020BB +:0C8AC000F00400202B010000B80B0000A7 +:108ACC00D3142114BB10803267955042C868403BC8 +:108ADC00D9102D08FFE30ADC00327810FFE366DAC8 +:108AEC00FFE3ECDB036D028DFFE33AD7536CFFE33E +:108AFC0015D6D2313641FFE311D63A96FFE30ED6A6 +:108B0C00036D2F10136CFFE309D6FFE3FDD409B6F8 +:108B1C00136CFFE381D7C76C228D836C20B80230B5 +:108B2C002810FFE34BF8136C011493140034EA077C +:108B3C003805002074050020000059400000C84290 +:048B4C00B2BA0000B9 +:108B5000D3142114BF10803268955042C868403B3E +:108B6000DD103408FFE3C8DB00327C10FFE324DAB9 +:108B7000FFE3AADB036D008DFFE3F8D6536CFFE340 +:108B8000D3D5E8313641FFE3CFD5E6313641FFE3B7 +:108B9000CBD53B96FFE3C8D53F96FFE395D5036D54 +:108BA0002F10136CFFE3C0D5FFE3B4D40AB6136CE7 +:108BB000FFE338D7C76C208D836C20B802302910B2 +:108BC000FFE302F8136C011493140034EA07000069 +:108BD000380500207405002000408F400000C84286 +:048BE000C0BA000017 +:108BE400D3142114BF10803269955042C868403BA9 +:108BF400DD103408FFE37EDB00327C10FFE3DAD9BA +:108C0400FFE360DB036D018DFFE3AED6536CFFE33E +:108C140089D5E8313641FFE385D5E6313641FFE3B6 +:108C240081D53C96FFE37ED53F96FFE34BD5036D9C +:108C34002F10136CFFE376D5FFE36AD40DB6136CE3 +:108C4400FFE3EED6C76C218D836C20B80230291067 +:108C5400FFE3B8F7136C011493140034EA0700001F +:108C6400380500207405002000408F400000C842F1 +:048C7400D0BA000072 +:108C7800D4142214DF38436D030C00301660FFE370 +:108C880071D67B10E38B036D1F6CFFE36BD6536CBF +:108C9800FFE346D5E0313641FFE342D5DE3195109A +:108CA8003641FFE33DD53B94FFE33AD53D94FFE3DE +:108CB80037D53A94FFE334D58033D0602093FFE36F +:108CC800FFD42D10836DFFE32BD5FFE31FD40CB425 +:108CD8001B6CFFE3A3D6836CC76CE1B8A0B8023065 +:108CE8002610FFE36DF71B6C02149414380500205E +:0C8CF8007405002000007A44E0BA00007F +:108D0400D4142214DF38436D030C00301660FFE3E3 +:108D14002BD67B10E48B036D1F6CFFE325D6536CBD +:108D2400FFE300D5E0313641FFE3FCD4DE3195109A +:108D34003641FFE3F7D43C94FFE3F4D43E94FFE3DD +:108D4400F1D43A94FFE3EED48033D0602093FFE370 +:108D5400B9D42D10836DFFE3E5D4FFE3D9D30FB469 +:108D64001B6CFFE35DD6836CC76CE1B8A0B802301E +:108D74002610FFE327F71B6C021494143805002017 +:0C8D84007405002000007A44F4BA0000DE +:108D9000D414251476110C64836D660C95113794E8 +:108DA00040641E0C28412849A55832334C651F08E1 +:108DB00061840023CC74063B61A4090C2E110030A1 +:108DC000FFE302F7003361A4013360A40230618441 +:108DD000976C2A11FFE3F8F6013005149414A840AB +:108DE000A84D8033466171434C61E007F69400332F +:108DF000D46161A4D7B4F6B41F6CFFE37DDAFFE35E +:108E000063DA3B94FFE390D43A94FFE38DD47C1073 +:108E1000668B04B80F6C63B8FFE3A8D52498FFE312 +:108E200083D4C4313641FFE37FD43610FFE37CD4D2 +:108E3000FFE370D36398976C10B401B860B8023048 +:108E4000DB6C3110E2B8FFE3BFF6FFE363FC57943D +:108E50006E108C6407082E100030FFE3B5F6013366 +:108E600060A40030BB070230B9070000FFFFFF001D +:108E70007405002008BB000011BB0000380500206D +:108E800000007A4425BB0000BFE1E40059BB0000AC +:108E9000D414251476110C64836D660C95113994E5 +:108EA00040641E0C28412849A55832334C651F08E0 +:108EB00062840023CC74063B62A4090C2E1100309E +:108EC000FFE382F6003362A4013360A402306284BF +:108ED000976C2A11FFE378F6013005149414A8402A +:108EE000A84D8033466171434C61E007F89400332C +:108EF000D46162A4D9B4F8B41F6CFFE3FDD9FFE3D9 +:108F0000E3D93C94FFE310D43A94FFE30DD47C10F2 +:108F1000678B04B80F6C63B8FFE328D52498FFE390 +:108F200003D4C4313641FFE3FFD33610FFE3FCD353 +:108F3000FFE3F0D26398976C13B401B860B80230C5 +:108F4000DB6C3110E2B8FFE33FF6FFE3E3FB59943B +:108F50006E108C6407082E100030FFE335F60133E5 +:108F600060A40030BB070230B9070000FFFFFF001C +:108F70007405002062BB00006BBB000038050020B8 +:108F800000007A447FBB0000BFE1E400B3BB0000F7 +:108F90006410003241A342A3003257B359B33C7866 +:048FA0007405002034 +:108FA400D41423146759CD74033B036D876D090CE6 +:108FB400876C00303901FFE305F601300314941483 +:108FC400FB014033DC604083403A61B8070800305D +:108FD4003E01FFE3F7F50230F2071E301E32003186 +:108FE4001C60FFE3ABDC608F6FAF4D752033DC603A +:108FF40002325DA3A84D7F324869536C9B6C0F6CA1 +:10900400BFA7FFE3DFDC3D80586029324474486524 +:109014003DA002B8310C2833D4642908533D380CE0 +:10902400133D1F08023D340C00299061457414025D +:10903400002EFFE38FFB6086C264836C370C37021B +:109044000030A0B8FFE3BEF562987D835C02023075 +:109054003B02FFE32BF66198023242A30430AF07D0 +:109064000032232A946002338C64DF0F443EDD0F08 +:109074009B6C220311042C33D464D70F2D334C651D +:10908400100800326E2A946008338C64CE0F433E7D +:10909400CC0F9B6C2A030030FFE394F503308F0759 +:1090A400453EC30F9B6C2D03F7076198013242A321 +:1090B4000230976C3003FFE385F57F872C328E6492 +:1090C400EA0CC864270C24328E64CD0CC8640B0CE3 +:1090D400413B780C403B660C423BB00C533B7B0C51 +:1090E40000306D0726328E64B20C8C64E30C283297 +:1090F4008E64C50C29328E64F40B00846184684349 +:1091040010400C6062840C607B130DB3FFE3C0FE5F +:10911400E80772328E64760CC864250C6F328E6454 +:10912400630CC864130C2D328E64DB0B00846184E1 +:10913400704318400C60628468430C6063840C6064 +:109144006D130BB3FFE3DEFDCC0770328E64530C5A +:1091540071328E64C60B608441846843C8604613D0 +:1091640061AABF0775328E645B0CC8640E0C73323F +:109174008E644F0C74328E64B40B608441846843F3 +:10918400C8605D1264AAAD0776328E64500C7732E3 +:109194008E64A70B608441846843C860561267AA32 +:1091A400A007608441846843C860CD7452126AAADF +:1091B40052128E6461980408013242A3920702326B +:1091C400FD07608441846843C860CD744A126BAA69 +:1091D4004B12F007608441846843C860CD74461222 +:1091E4006CAA4812E707608441846843C86042124D +:1091F40068AA7707608441846843C8605E1160AAE6 +:109204007007608441846843C8605B1162AA69077F +:10921400608441846843C860571163AA620760840C +:1092240041846843C860541165AA5B076084418423 +:109234006843C860501166AA540760844184684337 +:10924400C8604D116EB2501170AA4B07008461843E +:10925400684310400C6062840C60671107B3FFE33D +:1092640035FC3F0700846184684310400C606284CD +:109274000C60611108B3FFE36BFC33070084618465 +:10928400684310400C6062840C607B100CB3FFE3F5 +:109294007FFD270700846184704318400C6062845A +:1092A40068430C6063840C6073100AB3FFE3E4FC4E +:1092B400180700846184684310400C6062840C6069 +:1092C4006D1009B3FFE38EFC0C070000BCBB00006B +:1092D400F0040020C8BB00000E050020F9BB00000C +:1092E4000DBB0000DFBB0000D2BB0000ECBB0000E4 +:1092F40010BC000038050020040F0000031100001A +:08930400FF0F000074050020BA +:10930C0041886088C8604288C8604388C8604488C7 +:10931C00C8604588C8604688C8604788C860003007 +:06932C000E6001743C78A4 +:10933400D3147C0304830A380F6DFB08FFE3DED0EB +:10934400060F1C354B61778DA3B9CF007D13409375 +:109354007D1341B3013364A4FFE34CFA931439132E +:10936400591360910192C2601813C064F80B6091A4 +:1093740061B2023364A4F307FFE3F4FA413803084B +:109384000333F907FFE3EEFA4238060830130030DE +:10939400FFE318F4E4076F136083403BE00B0032F3 +:1093A40000317030FFE34EFADA07FFE3DBFA4138AD +:1093B40003080433E007FFE3D5FA42380508023313 +:1093C40064A42513E50763136083403BC80B003294 +:1093D40000317130E807FFE3C5FA4138030805336B +:1093E400CA07FFE3BFFA42380508023364A43B12FC +:1093F400CF0778126083403BB20B003200317230E9 +:10940400D207FFE3AFFA413803080633B407FFE39A +:10941400A9FA42380508023364A43112B9076D125F +:109424006083403B9C0B003200317330BC07FFE388 +:1094340099FA4138030807339E07FFE393FA423849 +:109444000508023364A42712A30762126083403B19 +:10945400860B003200317430A607FFE383FA4138EB +:10946400030808338807FFE37DFA4238050802330E +:1094740064A43D118D0777116083403B700B00326B +:10948400003175309007FFE36DFA41380308093362 +:109494007207FFE367FA42380508023364A4331104 +:1094A40077076C116083403B5A0B003200317630F1 +:1094B4007A07FFE357FA413803080A335C07FFE3EE +:1094C40051FA42380508023364A429116107611175 +:1094D4006083403B440B0032003177306407FFE384 +:1094E40041FA41381808A311176CFFE30FFFC88D28 +:1094F40000331A6464A40508023363A43E104807C9 +:10950400176CFFE303FFC36C9B6C3C100030FFE35C +:1095140059F32507FFE326FA4238030838103807C1 +:109524006C106083403B1B0B003200316F303B07F3 +:10953400003244A3013243A3120700007405002043 +:10954400C40000206C010020E703000022BC0000DE +:109554003005002038BC00004EBC000063BC000095 +:109564007BBC000093BC0000AABC0000C2BC00008D +:1095740038050020DABC0000EABC0000FEBC000094 +:10958400D1147711058303380F6D6408FFE3B6CF58 +:10959400021C3248FFE3E6F941380408013365A4AC +:1095A4009114FFE3DFF9423806082E110030FFE37F +:1095B40009F3F7076C116083403BF30B4B11023145 +:1095C4000030FFE33FF9ED07FFE3CCF9413803082E +:1095D4000233E607FFE3C6F942380508003365A401 +:1095E4002311E50760116083403BDB0B411102311D +:1095F4000130E807FFE3B6F9413803080333D00725 +:10960400FFE3B0F942380508003365A43A10CF07E8 +:1096140075106083403BC50B581002311330D207DC +:10962400FFE3A0F941380608003365A4033363A4BB +:10963400B807FFE397F942380508003365A43010F2 +:10964400B60769106083403BAC0B00320031023036 +:10965400B907003245A3023243A3A30774050020CF +:1096640015BD000030050020040F00002ABD0000D5 +:109674000311000040BD0000FF0F000056BD0000B4 +:10968400D1149510351000304994FFE39BF26D948A +:109694004A9400303210FFE395F26F944C940030FA +:1096A4003010FFE38FF2549473943194CA60509451 +:1096B400866000302C10FFE385F2739450940030E0 +:1096C4002A10FFE37FF2508C29100030FFE37AF276 +:1096D40091140000740500206CBD00007CBD0000E6 +:1096E40093BD0000A8BD0000BEBD0000D5BD0000B4 +:1096F400D1148413068407381808FFE3FFCE041638 +:10970400324C667C92A84013201360920291C2608E +:109714001F1201900C64090C409242B101333D12B6 +:10972400003066A4FFE34EF29114FFE31BF94138C5 +:109734000408023366A4F907FFE314F94238080861 +:10974400003366A434120030FFE33CF2EE077312D8 +:109754006083403BEA0B003200312630FFE372F8AD +:10976400E40769124093691242B3FFE3FBF84138FE +:1097740003080333E007FFE3F5F842380508003334 +:1097840066A42712E10765126083403BCE0B0032CA +:1097940000312430E4077C1140937C1142B3FFE391 +:1097A400E1F8413803080433C607FFE3DBF8423825 +:1097B4000508003366A43B11C70778116083403B5A +:1097C400B40B003200312530CA07FFE3CBF841382F +:1097D40003080533B007FFE3C5F842380508003332 +:1097E40066A43111B1076D116083403B9E0B0032BA +:1097F40000312830B407FFE3B5F8413803080633D5 +:109804009A07FFE3AFF842380508003366A427112E +:109814009B0762116083403B880B00320031293082 +:109824009E07FFE39FF84138030807338407FFE3EB +:1098340099F842380508003366A43D10850777106F +:109844006083403B720B003200312C308807FFE309 +:1098540089F841380508FFE315FF00336C07FFE37F +:1098640081F842380508003366A432106D076B1086 +:109874006083403B5A0B003200312D3070070000EA +:1098840074050020C40000206C010020F4050020B1 +:10989400DFBD0000ECBD000030050020FFBD00006E +:1098A40013BE000027BE00003FBE000057BE0000EC +:0498B4006EBE000084 +:1098B800D1149610038403381508FFE31DCE021057 +:1098C800131613103310409063918E60FA3362437D +:1098D8008C640808609063B1013363A40304FFE358 +:1098E80027FD9114FFE34CFEFD07FFE301FF6084B1 +:1098F800413BF80B003360A4FFE348FB641040933E +:10990800641043B3EA07000074050020C400002077 +:049918006C010020BE +:10991C00D414033A836D4B6D190C1439076D020C7A +:10992C00143414320031D0750A10FFE303D89F6C45 +:10993C005B6C0810FFE342D8471001332F8AD470B8 +:10994C00C46C9CA26FAA003094140130FE07000076 +:08995C007C05002074050020C9 +:10996400D2142212083260918C68403A0D0C801295 +:109974000012A59040949660BF1194640508409429 +:10998400833B45B060B13D118F890A330130936C3C +:109994008E708068403A170CCC74591164B254111B +:1099A400B71160920595C2609530C06419080092A1 +:1099B40005B5049506385308FFE3A0CD08121E240C +:1099C40030384300002B433BE30BEA070132699133 +:1099D40044B50A328C7C2B110330FFE3A9F19214B5 +:1099E40002326D9144B52A910A32C87C847C2611D6 +:1099F4000330FFE39DF1F407033244B56F914C91BA +:109A04002211F7074092739146B554910430CA600D +:109A140050913191866004B53D10EB0740920530BA +:109A240046B57391509104B53A10E3070695209218 +:109A3400426019104064D40B409246B5003244B5DC +:109A4400CF07863C053040928FA904B546B55C81AA +:109A5400721033100093FFE3D1E6C2071F330C6981 +:109A640003338FA964B5BC07D8000020C4000020CC +:109A7400F40500201FBF0200740500206C010020C3 +:109A840085BE00008CBE000096BE0000A0BE000093 +:109A9400A8BE0000B70B0000380000207C050020A1 +:109AA400D4143114041C01B832320031136CFFE3B6 +:109AB40045D76512C7830026519330939875A959E9 +:109AC400149353930F3E015A7208C7A30036752EA0 +:109AD400C0A4C783C1A400360B2EC2A4B0A434A46E +:109AE400DA11C686C3A4CED80400C6A40336C7A41C +:109AF400C993D875C84E9875C3B8CED80C00C9A4FC +:109B0400CA93E2B8CAA4C84EEED80800CBA4CC933A +:109B1400E8A4E84ECCA4EDA4F04ED84ECFA4C84D92 +:109B2400D1A4D04DB84DB3A4A849B5A4B04938497F +:109B3400EEA4D2A4B6A437A42ED8080038A42ED8F4 +:109B44000C0039A42D933AA46F9328493BA4284BC5 +:109B54007CA43DA4304B784B7FA42033D0603EA43A +:109B6400284821A3304822A3284A44A325A3304AE5 +:109B7400584A47A3003200A3572A184803A326A330 +:109B840048A329312933136C64A4FFE3E3F56198F6 +:109B9400423B05A40E08323360B896336143013268 +:109BA4002931136CFFE380EF1114941400368E07EF +:109BB4006198413BFA0BFA33614360B80332641095 +:109BC400F00700007405002084040020B80B000096 +:109BD400D0146A106783413B0E0869102910409124 +:109BE4000493826002930864060C4091013044B3EC +:109BF400FFE358FF9014000084040020F4050020C3 +:049C0400C400002078 +:109C0800D014FFE357FEFFE3B9F6FFE3E1FFFFE3FC +:049C1800A7FE9014FF +:109C1C00D21421141139036D476D430C6780013246 +:109C2C00C868403B100C6B804A8050427843C86037 +:109C3C0049804842C8604880C8605B10C86403080B +:109C4C005A1061B26C84403B0033CD60581067A24F +:109C5C006784614B0132C868403B100C70844F84A0 +:109C6C0050427843C8604E844842C8604D84C860F6 +:109C7C004D10C86403084D1062B2FFE315F21433A3 +:109C8C0060B8963361430132576C136CFFE308EFF5 +:109C9C0054740632136CFFE33DFE00300114921431 +:109CAC000130FD07E7030000F405002084040020C8 +:109CBC00D0142E14011832320031FFE33BD661115F +:109CCC004783002288740F3A3A0847A367836EDCF7 +:109CDC00050000330B2B00326EDC0600752A7A105F +:109CEC000B314EDC0400468367834EDC07006EDCD0 +:109CFC000D00043200334EDC0A00572B05324EDCCB +:109D0C000B006EDC0E0003320B3301184EDC0C0022 +:109D1C006EDC0800FFE31AF5323360B896330EDCC4 +:109D2C0009006143011801320B31FFE3B9EE063231 +:109D3C000B310118FFE3EEFD0E1490140032C60730 +:089D4C007405002084040020CE +:109D5400D014043808086910FFE3D0CB0306080ABE +:109D64000C003AB3003090143BB3FD073CB3FB073F +:0C9D74003DB3F9073EB3F707740500206B +:109D8000D41423140939436D876D360C8780043C45 +:109D900035082880093205398060C76C020C05330C +:109DA000D060CC74F710D2640F08FFE383F1143352 +:109DB00060B89633176C614301325B6CFFE376EE5B +:109DC000003003149414018220820840046022822F +:109DD0003041046062B841B8FFE3C8CD5F6CFFE377 +:109DE0002FCD436C136CFFE3B7FF00244198022290 +:109DF00010756298D9070130E5070230E3070000CB +:049E00000050C34704 +:109E0400D41422140939436D876D320C8780053CC4 +:109E140031082880093203398060C76C020C03338F +:109E2400D060CC74F510D2640B08FFE341F1587490 +:109E34000632176CFFE372FD0030021494140182A1 +:109E440020820840046022823041046061B840B836 +:109E5400FFE38ACD5F6CFFE3F1CC436C136CFFE34B +:109E640079FF00244098022210756198DD070130C3 +:0C9E7400E5070230E30700000050C34780 +:109E8000D41421140739036D876D540C2480866522 +:109E90000A0C541234120030FFE396EE0235176CB0 +:109EA0000114941440808A33CA6407086458002B54 +:109EB0004083A833CA64080C4A122C120030FFE316 +:109EC00083EE0335ED074280F433CA64080C451273 +:109ED00027120030FFE378EE0435E2076512438075 +:109EE0006683CA64080C5F1123120030FFE36CEE36 +:109EF0000535D607FFE330F44038436D080C59119F +:109F00003E110030FFE360EE0635CA076184FC11A4 +:109F10003C11003067A74684FFE356EE4684443A7E +:109F2000470C043A0908423A3A0C023A3C08413AD2 +:109F3000330C0135B507543A3E0C143A1508533A20 +:109F4000F90B509751B7539754B76F1140936F1156 +:109F500044B3143360B89633614301325B6C136CC5 +:109F6000FFE3A4ED9D07553A360C2133CA64E20B9A +:109F700067841F32C86846115B6C60B2143360B8E6 +:109F8000963361430132136CFFE390ED7E104093F2 +:109F90007E1045B38507FFE3BBED82070230FFE388 +:109FA00083FD7E075B6C136CFFE33AFE7907FFE3EA +:109FB00087FE7607003250B756B751B753B758B738 +:109FC00054B7003110321310FFE3BAD4111000E07F +:109FD0005B04C0075B6C136CFFE3D4FE61070000F9 +:109FE000CCB20000B0BE0000C2BE0000D0BE000077 +:109FF00084040020DEBE0000ECBE000074050020DA +:10A00000FBBE0000C4000020F4050020D8000020A2 +:04A0100048080020DC +:10A01400D21421140739036D876C07082312033007 +:10A02400FFE386EE0135090424808664090C2012BE +:10A034000330FFE37DEE0235176C011492140080A7 +:10A044008A33C2640708645C002B0083A833C264AB +:10A05400070C38110330FFE36BEE0335EE0702847F +:10A06400F433C264070C34110330FFE361EE0435AA +:10A07400E407721103846683C264070C3011033051 +:10A08400FFE356EE0535D907136C40B8FFE362F3DE +:10A094004038436D4098070C2A110330FFE348EE23 +:10A0A4000635CB0721840F304068671127A3268427 +:10A0B4004439210C04390A084239BF0F4339B30B20 +:10A0C4004B6C136CFFE3AAFDB8075539170C21300C +:10A0D4000664190C5339A70B309331B3339334B35B +:10A0E4007A1020937A1024B34874136C0632FFE379 +:10A0F40015FCA307FFE3E2FDA0074B6C136CFFE321 +:10A1040081FE9B0708316784C468403B711020932B +:10A11400080CA33920B36D1020936D1025B3E50707 +:10A12400833920B3E207000011BF00001EBF000006 +:10A1340029BF000031BF00008404002039BF0000A3 +:10A1440041BF000074050020C4000020F405002075 +:04A15400D80000200F +:10A15800D2149E32803541420031A1450111FFE3FE +:10A16800EBD3976C00310011FFE3E6D3FA33624377 +:10A178009E1079ACFFE3CEF17D106093FF234393EB +:10A188004974466508087B106DB43B100030FFE346 +:10A1980017ED921441390608FA3361436DB437104C +:10A1A800F607FA334439634304086DB43410EF07F3 +:10A1B800503904086DB43310EA07403006640408C7 +:10A1C8006DB43110E407803006646DB403082F10B5 +:10A1D800DE0789742E100030FFE3F2ECDB07000085 +:10A1E8000C060020480700200C0700205C00002017 +:10A1F800881300004ABF00005FBF000073BF000063 +:10A2080085BF000094BF0000B0BF0000C7BF0000BA +:10A21800C114003347100029457486640408CE6CC5 +:10A228000C7481148080D060CC740020F507000085 +:04A23800FFFF000024 +:10A23C00D414211480377710E147C06140836183C7 +:10A24C00B88F66A0072574106383557567A062806C +:10A25C006BA0684DCE5844A069A041800033036DBB +:10A26C0045A0A8A06AA0576C1B6CFFE3D1FF0AA401 +:10A27C00D76C9B6C29100030FFE314ED6432798F9E +:10A28C00576C40B81B6C0132FFE30AEC01149414B8 +:0CA29C00C80400200C060020DDBF0000FC +:10A2A8006310409363104EB33C780000C400002054 +:04A2B8000C0700206F +:10A2BC00D4142314658044806843C86C4E64436D89 +:10A2CC0062B8080C00303313FFE378EC0130031450 +:10A2DC0094142298FFE39CFF403801B8070C00301F +:10A2EC002D13FFE36BEC0230F30761858E74DF3ABC +:10A2FC008A1321840F32230CC868C6640B0C2813F4 +:10A30C000030FFE35BEC003360B80137013361B818 +:10A31C00080424130030FFE351EC003360B801371C +:10A32C00C113628541868E64280CFF314E64250C66 +:10A33C0000303E12FFE342EC0330CA078C6886649F +:10A34C00090C3B120030FFE339EC0133003760B8E5 +:10A35C00DF074032C868403B0D0C6B844785CA64EC +:10A36C00C364CC743312003060B8FFE327EC0037C1 +:10A37C00D807003360B8FC07638540868E640A0CEE +:10A38C00FF314E64070C00302B12FFE317EC043046 +:10A39C009F07FFE385FF608563A461850F32C86862 +:10A3AC0061A4C03267858E6462A4060CC1328E64CF +:10A3BC00530C01335F046198413B1D0862980B3BC1 +:10A3CC001A0C3E110030FFE3F9EB498568854842D1 +:10A3DC008C6C7B112D934A64090C093A3B0C4DB3E0 +:10A3EC00FA314D932241847C4DB34B852A854842EA +:10A3FC00846C59AB6098413B6B0B02336CA4628646 +:10A40C006DA463866EA403336FA46E1160937F23D7 +:10A41C00599350A45A9351A47B9372A4448620332D +:10A42C008C64020864A6648673A420333E105B100F +:10A43C00002BCC740581403B14A200210022F90BA7 +:10A44C007F10283258AB403F430B1410FFE3F2FE51 +:10A45C003F070A32C5076198413B10083A1000309B +:10A46C00FFE3ACEB6885413B0E080130FFE352EB98 +:10A47C0000336CA40132721058AB403F290B60982A +:10A48C00413BE30731100030FFE398EB93070000EA +:10A49C00E6BF0000F0BF00000C06002009C0000061 +:10A4AC0033C00000C8040020B3C000005DC0000031 +:10A4BC0088C00000CFC00000EBC000000C070020DB +:0CA4CC005C0000200CC1000028C1000052 +:10A4D800D0146410003200930031FFE3BFDE901403 +:04A4E8004800002008 +:10A4EC00D01441380408FFE3F3FF901464100132D8 +:10A4FC0000930031FFE3B0DEF907000048000020B4 +:10A50C00036C036C036C036C036C036C036C036CC7 +:10A51C00036C036C036C036C036C036C036C036CB7 +:10A52C00036C036C036C036C036C036C036C036CA7 +:0CA53C00036C036C036C036C036C3C7834 +:10A54800D214AE10FFE3C6FF8D1000310095FFE373 +:10A558000BE000940D31FFE307E0FFE3D5FF009522 +:10A568000031FFE305E0FFE3CFFF00940D31FFE387 +:10A57800FFDFFFE3C9FF9214480000204C000020D1 +:10A58800D214AD10FFE3A6FF8C100D310095FFE348 +:10A59800EFDF00940031FFE3EBDFFFE3B5FF009549 +:10A5A8000D31FFE3E1DFFFE3AFFF00940031FFE38C +:0CA5B800DBDF92144C0000204800002063 +:10A5C400D1148D10FFE388FF00940D31FFE3D2DF37 +:10A5D4006A1000310093FFE3CDDFFFE397FF00949F +:10A5E4000D31FFE3C3DFFFE391FF00940D31FFE37F +:0CA5F400C1DF91144C0000204800002042 +:10A60000D1148D10FFE36AFF00940D31FFE3B4DF36 +:10A610006A1000310093FFE3ABDFFFE379FF0094A2 +:10A620000D31FFE3A5DFFFE373FF00940D31FFE37E +:0CA63000A3DF91144C0000204800002023 +:10A63C00D41496100D310094FFE398DF0030FFE343 +:10A64C0051FFFFE35FFF0D310094FFE38BDFFFE36E +:10A65C0059FFAF10EF1000310097FFE396DF413840 +:10A66C00836D070C00940D31FFE380DF0036090485 +:10A67C00002D5575403D070800940D31FFE376DF42 +:10A68C001B6C9414036CE8074C000020E9030000D9 +:04A69C004800002052 +:10A6A000D414436D0834FFE319FFD210F2100D31BA +:10A6B0000096FFE361DFD674DF3B00310097160C94 +:10A6C000FFE356DFFFE324FF002C0D310096FFE38C +:10A6D0004FDF1075A145FFE31BFF403C5475E80BAD +:10A6E00000960D31FFE348DF9414FFE345DFEB07ED +:08A6F0004C000020480000208E +:10A6F800D4140030FFE3F8FE08350034F110D2100E +:10A708000D310097FFE334DFFFE3FEFE0D310097C4 +:10A71800FFE32ADFFFE3F8FE00310096FFE337DFAF +:10A728008144413810750208A03C002D5475403D05 +:10A73800E80B00970D31FFE31BDF136C9414000046 +:08A748004C0000204800002035 +:10A75000D31462110C64436D076D8B6D3B0C803319 +:10A76000806062438D643608403E340C4039320CC0 +:10A77000FFE3ECFE023307550C6800335F2B0C6CD3 +:10A780000074FFE38FFFFFE35BFF4038050CFFE33E +:10A79000FDFE023093141474FFE384FFFFE350FFC7 +:10A7A00040381408906192650508FFE3EFFE013020 +:10A7B000F2070084FFE376FFFFE342FF4038002406 +:10A7C000F30FFFE3E3FE0430E607FFE3DFFE0330B1 +:0CA7D000E2070530E0070000FF01000078 +:10A7DC00D41469110C64436DC76D8B6D4A0C8033B6 +:10A7EC00806062438D644508403E430C4039410C07 +:10A7FC00FFE3A6FE8755023000691275136CA5386D +:10A80C00A738FFE349FFFFE315FF4038050CFFE3D2 +:10A81C00B7FE023094141474FFE33EFFFFE30AFF0B +:10A82C004038050CFFE3ACFE0330F507FFE388FE70 +:10A83C00A130106CFFE330FFFFE3FCFE4038120840 +:10A84C000034A35EFFE354FF705F516500A30E0C50 +:10A85C00FFE3B4FE00249265F60BFFE391FE01309A +:10A86C00DA07FFE38DFE0430D607FFE3C5FEF307DE +:08A87C000530D107FF010000C7 +:10A88400D0142E140033592B6EDC000010336EDC10 +:10A89400010000336EDC02006EDC0300011B436C1C +:10A8A40010320F6CFFE38ED01031FFE321EB0EDC8E +:10A8B400030014327B6C1030FFE34AFF4138080C6C +:10A8C40000302710FFE37EE901300E1490140030AD +:10A8D4002410FFE377E90030F907000045C20000C7 +:04A8E40059C2000055 +:10A8E800D1142F14036D003332320031021860B8CE +:10A8F8006EDC0210FFE320D004327B6C1030FFE3E3 +:10A908006BFF4ED80000A633CA64040C01300F1444 +:10A9180091144ED802006ED8010048428C6C323334 +:10A928008C64F50F02191430FFE356FF103102183A +:10A93800FFE3DCEA6ED803000E64E90B103202195B +:10A94800136CFFE33DD0FFE391DB409400302B1004 +:10A95800FFE336E9419400302910FFE331E94294DE +:10A9680000302810FFE32CE9003043942510FFE362 +:10A9780027E90030CD0700006EC2000080C2000049 +:04A9880092C2000077 +:10A98C00D0147110003200930031FFE365DC6F10BE +:10A99C00003200930D31FFE35FDC103200310C10FC +:10A9AC00FFE3C8CF2B100030FFE308E90810FFE3EA +:10A9BC0097FF403805082810FFE300E99014271092 +:10A9CC000030FB07480000204C0000204808002005 +:0CA9DC00A5C20000E0C20000F4C20000B0 +:10A9E800C414721012109310836DA0930033424365 +:10A9F8009460209241438060457420AA4084413A83 +:10AA08000F080033EC104143285E20890023457469 +:10AA18009C60513B20AAF80B003360A4113300233B +:10AA2800CC74103BE50F841454000020FE0A00206B +:08AA38006F09002058080020FE +:10AA400060146214D1149E106094403B0B080133D3 +:10AA500060B47C106083413B0508FFE3C7FF01330E +:10AA600064A47910013160934A938468403A020CDF +:10AA70002CB34A9302318468403A020C2CB34A93B7 +:10AA800004318468403A020C2CB34A93083184683C +:10AA9000403A020C2CB34A9310318468403A020CBD +:10AAA0002CB34A9320318468403A020C2CB3EED97F +:10AAB00001208098021463146114000068000020D3 +:08AAC000EC0800205800002002 +:10AAC800C214003200308810013520316094C970FA +:10AAD800D468403B020C002000224A64F80B007442 +:08AAE800821400008C0900201B +:10AAF00046106482CC74413B07082510209162B156 +:10AB0000003360B264A23C78680000205800002046 +:10AB1000D41425147112608360B8003470126083FD +:10AB200061B8F0127012A0837012608362B89F6DDA +:10AB30006F1263B8614443988C602E124C60408A57 +:10AB4000208986608B742C5F40A940898B74DF3A22 +:10AB500049128C60370C003120AA4098013A6D0CE4 +:10AB600061442C5E05124089C0608B74608B8D64DB +:10AB70004098C87C2A0C40898B74C964260C40120A +:10AB8000906060820023CC7460A200317D11D0609F +:10AB900020A37D11D06020A37C11D06020A360820F +:10ABA0002198C4641F08403D520839116091403B10 +:10ABB000060800910133D070C06C60B1003360A210 +:10ABC000110420894574C90741449860408A8B74F8 +:10ABD0008D64080C00334E11012B2092D370C46891 +:10ABE00060B24144685E608BCF7464B80531631114 +:10ABF0008C60008A0240FFE34DE464980D64180CF9 +:10AC00004011906060820023CC7460A200317C10FF +:10AC1000D06020A360822298C4640A0800333C10EC +:10AC2000012B0091D370C06860B1003360A2002492 +:10AC3000513C810B05149414D86041442F10608B53 +:10AC40008460CF74408AC964CD0F9A07413DB70B29 +:10AC50002F10D76C0091B007B401002088010020AC +:10AC6000020900209101002090010020FE0A00202E +:10AC700058080020BA0A0020E2010020F008002055 +:10AC8000D6080020B20900202C0A0020E808002085 +:10AC9000D4142114D9116586413B5F085811608294 +:10ACA0000023CC7460A2608236112081C4645508F0 +:10ACB000003360A20035F41105266097D57001328B +:10ACC000C868403B340C8145705E008BFFE314CBB9 +:10ACD000C76C8031836C37410030FFE36DBE6B1170 +:10ACE000D060608B64430E2360B8FFE32BC4609890 +:10ACF000C07C47110D7490606611D06000AA608B13 +:10AD0000008A01745F32CD74087C643160B8FFE35F +:10AD1000C1E36098C1640B0C7F100C61608C063B32 +:10AD20000608002360AC01327C1040A30025513D91 +:10AD3000C50B7A104083413A1008003240A300321C +:10AD400077101810B810D410609342B37710809326 +:10AD5000003340808C64030C011494144C5D4082D9 +:10AD60004142224398605060408AF29154429C6C68 +:10AD7000002352B1CC74EE0768000020080A0020BE +:10AD8000B5010020B8010020BE010020980A002073 +:10AD9000FE0A0020920100205D09002058000020DA +:0CADA0002B0A0020640A00205400002050 +:10ADAC00C4142214481360820023CC7460A2608205 +:10ADBC00261320814C64AD0C003360A264136093A5 +:10ADCC00403BA7082313C76D20B80032621323132E +:10ADDC00014280980061808C1375DF3C270CA01316 +:10ADEC008059146081B8808CC08811759975A08BBE +:10ADFC001A6151651B088198808C0088117501744B +:10AE0C00015C814550614165110C9612086100840A +:10AE1C000020007400A41412A08408804065060869 +:10AE2C0012120135A0A0003000A40142805F808C7A +:10AE3C001375203C70088A120061A059808CA08D7B +:10AE4C00557511751661A08BA24551656408881261 +:10AE5C000861A08400255475A0A4A312C084A98500 +:10AE6C0094650608A1120136C0A50035A0A4805F28 +:10AE7C00808C1375DF3C100CD911A0598061808D2A +:10AE8C00C08E997511751A61C08B9165050C808DFA +:10AE9C00002C117580AD805F808C1375DF3C110C1C +:10AEAC00CF11A0598061808DC08E997511751A6172 +:10AEBC00C08BC14E91650508808D012C117580AD3C +:10AECC00A05F808D1375203C0C08A08D808B57756E +:10AEDC00814C1565060CA059808D0024117580AD30 +:10AEEC00A05F808D1375203C1008C08D9B75808BE6 +:10AEFC0019650B0CA08D5775814C156506080460FF +:10AF0C0080880124117580A80022513A0123610B1D +:10AF1C0002148414805F808C1375DF3CA90FB01071 +:10AF2C0080594061808CA08D5575C08B1175166150 +:10AF3C00A146586151659C0B8C100135A0A4036C83 +:10AF4C00970700008A090020B5010020E8080020BE +:10AF5C0002090020E201002058080020FE0A00200F +:10AF6C002C0A0020880000206F090020B209002064 +:10AF7C00D214501090106092403B020C609260B45E +:10AF8C006094403BAD10110C40946095CA64030C66 +:10AF9C00609460B5FFE394FD691060830C64040851 +:10AFAC00003360B460B59214461060B560B2FC0713 +:10AFBC00E80800208C090020600A0020BC01002059 +:04AFCC0084090020D4 +:10AFD00060146214D11477100034609386B3761035 +:10AFE0006083413B2008FFE385FDFFE393FDFFE322 +:10AFF00051FEFFE3DDFEFFE3C3FF70106093403BB3 +:10B00000120C6F104093403A0E0C6E106430209377 +:10B01000002120B32093807C486405084A10013148 +:10B0200020A280B3EED90120809802146314611429 +:10B0300064000020EC0800208C0900208C01002016 +:08B04000840900206F090020C3 +:10B04800D4142D140132CE03C36C4EDC0A00409692 +:10B05800479288744EDC09004ED80900403A080C23 +:10B068004ED80900423A040C00300D14941497038A +:10B0780009320094403B41B0570807336EDC0B009F +:10B088007B0363B88033624367B86ED80B00CC7417 +:10B0980062B07E0363B001320131BF03FFE3CEDA51 +:10B0A800E0957F1360B75F13003362B743B7D832B8 +:10B0B80045B74F97A23A4FB703982ED80B007D3269 +:10B0C8000021487C61B8FFE3F3E104B8FA32249820 +:10B0D80042424864CA0B44987831049840B8FFE368 +:10B0E800E7E14098826045B804987831449840B8C0 +:10B0F800FFE3DEE14098086006B880C02070409603 +:10B10800549248B86198409460B261B76ED80A000A +:10B11800403B3E08FFE344DA0094FFE365DA80C170 +:10B1280020740130A307413B060803336EDC0B0093 +:10B138007D12A807423B060801336EDC0B007B1228 +:10B14800A107433B060800336EDC0B0078129A0710 +:10B15800443B090800336EDC0B00761263B8803379 +:10B1680069439307453B060800336EDC0B007212F7 +:10B17800F607463B060800336EDC0B006F12EF073C +:10B18800473B840B00336EDC0B006D12E8076095BB +:10B198000131409421B320B2003127B3043025B2E5 +:10B1A8002E9340684039FD0F25922AB8003110B31C +:10B1B80027B3043025B22E9340684039FD0F2592FD +:10B1C8002BB8003110B327B3043025B22E93406852 +:10B1D8004039FD0F25922CB810B32B980C9840607D +:10B1E80029B82998214929B8003121B320B227B3B9 +:10B1F80025B26ED80900423B49982C0871118C641D +:10B20800030C00330F04499866988C640E086898FC +:10B218004798CA6068B8FE3268984842C868403B98 +:10B2280012086EDC0A00210749986598C864290845 +:10B2380068984798C86068B8FE33489868438C682F +:10B24800CA64E00F6096489854B30130FFE380DB8E +:10B258005E0766988C64090868984798CA6068B859 +:10B26800FF3268985042DB0749986598C864090816 +:10B2780068984798C86068B8FF3348987043E007F3 +:10B2880000336EDC0A00E2075C0000200C0000209E +:10B29800006CDC02FFFF00001400002005009CBECB +:10B2A8001000030000366E01001BB700808D5B00A4 +:10B2B80020C75400D0FE3F0068FF1F00B8FF010000 +:04B2C800FF0700007C +:10B2CC00424C565F343835526563765F50726F630B +:10B2DC00657373696E670000000000000000F03FAA +:10B2EC00000000000000F83F00000000000000001B +:10B2FC0006D0CF43EBFD4C3E0000000000000000E8 +:10B30C000000004003B8E23F000000000000000015 +:10B31C000000000000000000000000000000000021 +:10B32C00000000000000000000000000000102020C +:10B33C0003030303040404040404040405050505C1 +:10B34C00050505050505050505050505060606069D +:10B35C000606060606060606060606060606060681 +:10B36C00060606060606060606060606070707076D +:10B37C000707070707070707070707070707070751 +:10B38C000707070707070707070707070707070741 +:10B39C000707070707070707070707070707070731 +:10B3AC00070707070707070707070707080808081D +:10B3BC000808080808080808080808080808080801 +:10B3CC0008080808080808080808080808080808F1 +:10B3DC0008080808080808080808080808080808E1 +:10B3EC0008080808080808080808080808080808D1 +:10B3FC0008080808080808080808080808080808C1 +:10B40C0008080808080808080808080808080808B0 +:10B41C0008080808080808080808080808080808A0 +:10B42C000808080808080808080808082020202030 +:10B43C0020202020202020202020202030303030C0 +:10B44C0030303030303030303030303032C30000BB +:10B45C003AC3000044C300005EC300006EC300008A +:10B46C0086C3000090C30000AAC30000BCC3000048 +:10B47C00CEC30000DEC30000EAC30000FCC3000022 +:10B48C000DC400001FC400002BC4000041C4000008 +:10B49C0059C4000065C4000077C4000086C40000D5 +:10B4AC0096C40000A5C40000B6C40000D4C40000BB +:10B4BC00E8C40000FFC400000EC500001DC500005C +:10B4CC0035C5000042C5000058C5000067C5000026 +:10B4DC0073C5000081C5000092C50000ADC5000019 +:10B4EC00D5B60000D5B60000D5B60000D5B6000024 +:10B4FC00D5B60000D5B60000D5B60000D5B6000014 +:10B50C00C0C50000C9C50000D5B60000D5B6000006 +:10B51C00D5B60000D5B60000D5B60000D5B60000F3 +:10B52C00D5B60000D5B60000D5B60000D5B60000E3 +:10B53C00D5B60000D5B60000D5B60000D1C50000C8 +:10B54C00D5B60000DEC50000F3C5000007C600003C +:10B55C0025C6000030C6000043C600005BC60000D4 +:10B56C006BC6000079C600008DC60000D5B6000081 +:10B57C00D5B600009CC60000D5B60000D5B60000BC +:10B58C00AFC60000D5B60000D5B60000D5B6000099 +:10B59C00D5B60000D5B60000BBC60000E1C6000061 +:10B5AC0006C7000026C7000064C700008AC7000059 +:10B5BC00A3C70000B1C70000C5C70000E0C700006A +:10B5CC00D5B60000D5B60000F8C70000D5B600000F +:10B5DC00D5B60000D5B60000D5B60000D5B6000033 +:10B5EC00D5B60000D5B60000D5B60000D5B6000023 +:10B5FC001AC8000034C8000064C8000083C80000EA +:10B60C00A2C80000B9C80000DAC80000EDC80000EC +:10B61C0004C9000025C900003CC9000060C9000035 +:10B62C0075C9000082C9000096C90000B5C90000A8 +:10B63C00CEC90000EBC90000FCC900000DCA000017 +:10B64C00D5B60000D5B6000027CA000043CA0000DA +:10B65C00D5B60000D5B60000D5B60000D5B60000B2 +:10B66C00D5B600005BCA0000D5B60000D5B6000008 +:10B67C00D5B60000D5B60000D5B6000069CA0000EA +:10B68C007CCA000092CA0000A6CA0000415050209B +:10B69C0052756E2053746172742120313131202522 +:10B6AC0073004D4355205374617274210025386426 +:10B6BC00205B2536645D3A200025386C64205B25C0 +:10B6CC00366C645D3A20000D0A0073656E6420656B +:10B6DC006E64004A756D7020426F6F7400253032B5 +:10B6EC0058200044495020416464722025642C4445 +:10B6FC006576506F72743A25640044495020536348 +:10B70C00616E20256400456E6720565F4B3A2566B6 +:10B71C0000456E672049415F4B3A256600456E67D0 +:10B72C002049425F4B3A256600456E672050415FC9 +:10B73C004B3A256600456E672050425F4B3A2566B2 +:10B74C0000456E6720495F4F66665365743A2566FF +:10B75C0000456E6720505F4F66665365743A2566E8 +:10B76C0000456E6720736176655F6D61783A25647C +:10B77C0000456E6720736176655F6F6666736574EE +:10B78C003A256400456E6720636F6C6C6563745F6B +:10B79C0074696D3A256400456E67207265706F722E +:10B7AC00745F74696D3A256400456E672053617649 +:10B7BC0065466C6173685F54696D3A256400495F36 +:10B7CC004F533A256600505F4F533A2566004E4F53 +:10B7DC00204E656564205361766520456E67506127 +:10B7EC0072616D00456E65726779205573652044F2 +:10B7FC00656661756C7420506172610044656661A8 +:10B80C00756C7420565F4B3A25660044656661750D +:10B81C006C742049415F4B3A25660044656661753E +:10B82C006C742049425F4B3A25660044656661752D +:10B83C006C742050415F4B3A256600446566617517 +:10B84C006C742050425F4B3A256600446566617506 +:10B85C006C7420495F4F66665365743A25660044E4 +:10B86C00656661756C7420505F4F66665365743AFB +:10B87C0025660044656661756C7420736176655F3E +:10B88C006D61783A25640044656661756C7420734B +:10B89C006176655F6F66667365743A25640044650E +:10B8AC006661756C7420636F6C6C6563745F74692E +:10B8BC006D3A25640044656661756C742072657020 +:10B8CC006F72745F74696D3A2564004465666175C6 +:10B8DC006C742073617665466C6173685F74696D16 +:10B8EC003A256400546F74616C456E6572677920FB +:10B8FC00526561645375636300546F74616C456E7B +:10B90C006572677920526561644661696C004545D2 +:10B91C0050524F4D5F5265616450617261204465B5 +:10B92C006661756C742100454550524F4D5F5772DE +:10B93C006974655061726120536176652050617243 +:10B94C00612045727200454550524F4D5F577269E8 +:10B95C00746550617261205361766520506172612B +:10B96C0000454520446576416464723A256400457F +:10B97C004520446576547970653A25640045452028 +:10B98C00446576426F6F745665723A25640045457E +:10B99C00204465764170705665723A2564004545C1 +:10B9AC00204465764E616D654C656E3A25640045A4 +:10B9BC0045204465764E616D653A257300424C56C0 +:10B9CC005F43535F41433130305F563035002F2A8F +:10B9DC002A2A2A2A2A2A2A2A2A2A2A3E20496E690F +:10B9EC00742052656164204D43555F444556203C9C +:10B9FC002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A9B +:10BA0C002A2F0045452055736520446566616C7589 +:10BA1C00742050617261002F2A2A2A2A2A2A2A2A83 +:10BA2C002A2A2A2A3E20496E6974205265616420B4 +:10BA3C00456E6750617261203C2A2A2A2A2A2A2ADA +:10BA4C002A2A2A2A2A2A2A2A2A2A2F00496E697483 +:10BA5C00312052656164456E675061726120526598 +:10BA6C00763A256400424C565F446574456E6572A7 +:10BA7C0067795F44656661756C7420496E69740002 +:10BA8C00484C573831313020526573657400434D42 +:10BA9C00443A253032782C6C656E3A25642C53640C +:10BAAC0043743A256400566F6C5265673A25662CD0 +:10BABC00202564004375725265675F413A25662CF8 +:10BACC00202564004375725265675F423A25662CE7 +:10BADC0020256400506F775265675F413A25662CCC +:10BAEC002025642C20256400506F775265675F42D7 +:10BAFC003A25662C2025642C20256400524553459C +:10BB0C005231313100646966663A25642C207265C5 +:10BB1C0074436E74413A256400646966663A256420 +:10BB2C002C2076616C75653A25642C20456E674136 +:10BB3C00433A25642C20546F6C456E673A25642C6F +:10BB4C002053756D45526567323A25640052455352 +:10BB5C00455232323200524553455233333300642E +:10BB6C006966663A25642C20726574436E74423A99 +:10BB7C00256400646966663A25642C2076616C75D0 +:10BB8C00653A25642C20456E6742433A25642C2087 +:10BB9C00546F6C456E673A25642C2053756D455275 +:10BBAC006567323A256400524553455234343400AB +:10BBBC004C656E30204572723A2564004E6F7420CD +:10BBCC005461636B20004C656E2033204572723AD1 +:10BBDC002564004C656E2034204572723A25640051 +:10BBEC004C656E2035204572723A256400435243F1 +:10BBFC00204572723A25782C25782C434D443A25F1 +:10BC0C0030327800484C575F5265637620434D4480 +:10BC1C003A25303258005245475F524D535F4941E7 +:10BC2C00435F414444522045525221005245475FE4 +:10BC3C00524D535F4942435F414444522045525256 +:10BC4C0021005245475F524D535F55435F41444479 +:10BC5C00522045525221005245475F504F57455292 +:10BC6C005F5041435F41444452204552522100529F +:10BC7C0045475F504F5745525F5042435F414444E4 +:10BC8C00522045525221005245475F504F57455262 +:10BC9C005F53435F41444452204552522100524568 +:10BCAC00475F454E455247595F41435F41444452BB +:10BCBC002045525221005245475F454E4552475947 +:10BCCC005F42435F41444452204552522100524549 +:10BCDC00475F434845434B2053554343210052454E +:10BCEC00475F434845434B204552523A25782C2513 +:10BCFC0078005245475F434845434B53554D2052BE +:10BD0C006561642045525221005245475F53595397 +:10BD1C00434F4E5F414444522045525221005245FC +:10BD2C00475F454D55434F4E315F4144445220458A +:10BD3C00525221005245475F454D55434F4E325F9D +:10BD4C00414444522045525221005245475F4846D7 +:10BD5C00434F4E53545F41444452204552522100AC +:10BD6C00484C575F56203A2564202F31306D5600D1 +:10BD7C00484C575F49413A25642C2049423A256486 +:10BD8C00202F31306D4100484C575F50413A2564AB +:10BD9C002C2050423A2564202F6D5700484C575F99 +:10BDAC0045413A25642C2045423A2564202F572FD3 +:10BDBC006800484C575445413A25642C2054454260 +:10BDCC003A2564202F572F6800484C575F48463A55 +:10BDDC002564005374617274436F6C6C3A25640073 +:10BDEC005245475F524D53555F4144445220455292 +:10BDFC005221005245475F524D5349415F414444E3 +:10BE0C00522045525221005245475F524D534942F0 +:10BE1C005F414444522045525221005245475F45F0 +:10BE2C004E455247595F50415F4144445220455260 +:10BE3C005221005245475F454E455247595F50428B +:10BE4C005F414444522045525221005245475F50B5 +:10BE5C004F5745525F50415F414444522045525226 +:10BE6C0021005245475F504F5745525F50425F414A +:10BE7C00444452204552522100563A25646D5600D6 +:10BE8C00493A25642C25646D4100503A25642C25D3 +:10BE9C00646D5700453A25642C256400543A25649A +:10BEAC002C25640025732044617461204C656E2040 +:10BEBC004572726F7200257320486561642045726B +:10BECC00726F720025732054595045204572726F61 +:10BEDC00720025732041646472204572726F720087 +:10BEEC00257320436865636B204572726F7200483E +:10BEFC004C57383131305F5265637620434D443AAC +:10BF0C0025303258004C656E4D61784572723A2579 +:10BF1C0064004C656E314572723A25640048656167 +:10BF2C006445727200545950454572720041646404 +:10BF3C007245727200436865636B457272002042F1 +:10BF4C006F6F7420736F667477617265207265739E +:10BF5C00657400426F6F7420706F776572206F6E1E +:10BF6C0020726573657400426F6F742065782D7054 +:10BF7C00696E20726573657400426F6F742077640C +:10BF8C007420726573657400426F6F74206578203D +:10BF9C00636C6F636B20696E76616C69642072658B +:10BFAC0073657400426F6F742063707520726571D5 +:10BFBC007565737420726573657400426F6F7420BD +:10BFCC006F7468657220726573657420307825789B +:10BFDC000041434B4275666620004C656E204661FD +:10BFEC00696C2000426F6F745F436F6D6D5F4368C7 +:10BFFC0065636B53756D204661696C200047726FE9 +:10C00C007570204461746120534E204469736166DD +:10C01C0066696E6974792C50726F63657373696E9F +:10C02C006720446174610047726F757020446174BD +:10C03C006120534E205468652053616D652C4E6F02 +:10C04C002050726F63657373696E6720446174610D +:10C05C000053696E676C65204461746120534E20F7 +:10C06C00446973616666696E6974792C50726F638A +:10C07C00657373696E6720446174610053696E6700 +:10C08C006C65204461746120534E205468652053C4 +:10C09C00616D652C4E6F2050726F63657373696EA2 +:10C0AC0067204461746100426F6F745F436F6D6D04 +:10C0BC005F5265637654797065202564202D2025A8 +:10C0CC00642000426F6F745F436F6D6D5F526563E8 +:10C0DC007641646472202564202D20256420004262 +:10C0EC00434F4D4D5F434D445F48616E64736861CF +:10C0FC006B652050726F6563657373696E672000A2 +:10C10C0042434F4D4D5F434D445F4A756D70205017 +:10C11C00726F6563657373696E6720004552523A9E +:10C12C004A756D705F626F6F740041707020466568 +:10C13C0061747572652053697A653A2564004170A3 +:10C14C0070204665617475726520427566663A00AA +:10C15C0041707020466561747572652043524320AE +:10C16C004552524F52004170702046656174757291 +:10C17C006520466C6167204552524F5200417070E9 +:10C18C00204C656E203A256420004170702043528B +:10C19C0043204C656E203A2564202D2025640041F7 +:10C1AC0070702043524320414444523A2530387831 +:10C1BC0020253034782D25303478004170702043A0 +:10C1CC005243204661696C20414444523A25303830 +:10C1DC005820253034582D253034580041707020AB +:10C1EC004665617475726520537461727441646440 +:10C1FC0072204552524F5200415050206170705F76 +:10C20C0073746172745F616464723A2530387800BB +:10C21C00415050206170705F656E645F6164647240 +:10C22C003A2530387800415050206170705F63724D +:10C23C00635F6C656E3A2564007772697463207471 +:10C24C006F74616C5F656E672065727200777269DE +:10C25C00746320746F74616C5F656E6720737563B3 +:10C26C006300746F74616C5F415F656E6709203A9F +:10C27C0020256400746F74616C5F425F656E6709A2 +:10C28C00203A20256400456E675F415F5265674424 +:10C29C00617461203A202564002F2A2A2A2A2A2A2E +:10C2AC002A2A2A2A2A2A3E204672616D5F496E6923 +:10C2BC0074205265616420546F74616C456E672004 +:10C2CC003C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AB0 +:10C2DC002A2A2F00496E697420546F74616C5F4573 +:10C2EC006E67205375636300496E697420546F74D4 +:10C2FC00616C5F456E67204661696C00303132338A +:10C30C0034353637383941424344454600303132B2 +:10C31C003334353637383961626364656600696E6B +:10C32C0066006E616E0053756363657373004E6FC8 +:10C33C0074206F776E6572004E6F20737563682082 +:10C34C0066696C65206F72206469726563746F72C4 +:10C35C0079004E6F20737563682070726F6365731C +:10C36C007300496E746572727570746564207379AC +:10C37C007374656D2063616C6C00492F4F2065727E +:10C38C00726F72004E6F20737563682064657669F6 +:10C39C006365206F7220616464726573730041720F +:10C3AC0067206C69737420746F6F206C6F6E6700FC +:10C3BC004578656320666F726D6174206572726F6B +:10C3CC0072004261642066696C65206E756D6265F1 +:10C3DC0072004E6F206368696C6472656E004E6FFC +:10C3EC00206D6F72652070726F6365737365730077 +:10C3FC004E6F7420656E6F7567682073706163652E +:10C40C00005065726D697373696F6E2064656E6937 +:10C41C0065640042616420616464726573730042F8 +:10C42C006C6F636B206465766963652072657175EA +:10C43C006972656400446576696365206F72207269 +:10C44C0065736F7572636520627573790046696CEC +:10C45C0065206578697374730043726F73732D6410 +:10C46C006576696365206C696E6B004E6F20737521 +:10C47C00636820646576696365004E6F7420612083 +:10C48C006469726563746F7279004973206120640A +:10C49C0069726563746F727900496E76616C696458 +:10C4AC0020617267756D656E7400546F6F206D61DD +:10C4BC006E79206F70656E2066696C657320696E8D +:10C4CC002073797374656D00546F6F206D616E7994 +:10C4DC00206F70656E2066696C6573004E6F7420FA +:10C4EC00612063686172616374657220646576694A +:10C4FC00636500546578742066696C652062757399 +:10C50C00790046696C6520746F6F206C6172676589 +:10C51C00004E6F207370616365206C656674206FCC +:10C52C006E2064657669636500496C6C6567616C47 +:10C53C00207365656B00526561642D6F6E6C79209C +:10C54C0066696C652073797374656D00546F6F2028 +:10C55C006D616E79206C696E6B730042726F6B65E6 +:10C56C006E2070697065004D61746820617267752A +:10C57C006D656E7400526573756C7420746F6F20EA +:10C58C006C61726765004E6F206D657373616765D2 +:10C59C00206F6620646573697265642074797065B8 +:10C5AC00004964656E7469666965722072656D6FA9 +:10C5BC0076656400446561646C6F636B004E6F203C +:10C5CC006C6F636B004E6F742061207374726561C5 +:10C5DC006D0053747265616D20696F63746C2074A7 +:10C5EC00696D656F7574004E6F2073747265616D43 +:10C5FC00207265736F7572636573004D6163686952 +:10C60C006E65206973206E6F74206F6E2074686580 +:10C61C00206E6574776F726B004E6F207061636B68 +:10C62C00616765005265736F75726365206973206D +:10C63C0072656D6F7465005669727475616C2063F8 +:10C64C0069726375697420697320676F6E65004148 +:10C65C006476657274697365206572726F720053CB +:10C66C00726D6F756E74206572726F7200436F6DB0 +:10C67C006D756E69636174696F6E206572726F722D +:10C68C000050726F746F636F6C206572726F720002 +:10C69C004D756C7469686F7020617474656D70741D +:10C6AC00656400426164206D657373616765004366 +:10C6BC00616E6E6F74206163636573732061206EAD +:10C6CC00656564656420736861726564206C696279 +:10C6DC007261727900416363657373696E6720617F +:10C6EC0020636F7272757074656420736861726513 +:10C6FC0064206C696272617279002E6C69622073BD +:10C70C00656374696F6E20696E20612E6F7574207D +:10C71C00636F7272757074656400417474656D70CA +:10C72C0074696E6720746F206C696E6B20696E2063 +:10C73C006D6F726520736861726564206C696272DA +:10C74C006172696573207468616E207379737465A6 +:10C75C006D206C696D69740043616E6E6F74206539 +:10C76C00786563206120736861726564206C69620E +:10C77C0072617279206469726563746C79004675B4 +:10C78C006E6374696F6E206E6F7420696D706C656A +:10C79C006D656E746564004E6F206D6F72652066FA +:10C7AC00696C6573004469726563746F7279206E8D +:10C7BC006F7420656D7074790046696C65206F72BA +:10C7CC002070617468206E616D6520746F6F206CD1 +:10C7DC006F6E6700546F6F206D616E792073796D89 +:10C7EC00626F6C6963206C696E6B73004F7065725D +:10C7FC006174696F6E206E6F7420737570706F72D8 +:10C80C00746564206F6E20736F636B6574004E6F7C +:10C81C00206275666665722073706163652061764F +:10C82C0061696C61626C650041646472657373204C +:10C83C0066616D696C79206E6F7420737570706FA2 +:10C84C00727465642062792070726F746F636F6CA0 +:10C85C002066616D696C790050726F746F636F6CD8 +:10C86C002077726F6E67207479706520666F722006 +:10C87C00736F636B657400536F636B6574206F70BB +:10C88C0065726174696F6E206F6E206E6F6E2D73A2 +:10C89C006F636B65740050726F746F636F6C206E96 +:10C8AC006F7420617661696C61626C650043616EC6 +:10C8BC0027742073656E6420616674657220736FD3 +:10C8CC00636B65742073687574646F776E00436F67 +:10C8DC006E6E656374696F6E2072656675736564E0 +:10C8EC00004164647265737320616C726561647974 +:10C8FC0020696E2075736500536F6674776172657D +:10C90C002063617573656420636F6E6E6563746913 +:10C91C006F6E2061626F7274004E6574776F726B0C +:10C92C0020697320756E726561636861626C650065 +:10C93C004E6574776F726B20696E74657266616395 +:10C94C0065206973206E6F7420636F6E66696775FE +:10C95C0072656400436F6E6E656374696F6E2074EC +:10C96C00696D6564206F757400486F73742069730A +:10C97C0020646F776E00486F737420697320756E36 +:10C98C00726561636861626C6500436F6E6E6563AE +:10C99C0074696F6E20616C726561647920696E20B8 +:10C9AC0070726F677265737300536F636B6574207D +:10C9BC00616C726561647920636F6E6E656374651A +:10C9CC00640044657374696E6174696F6E20616490 +:10C9DC006472657373207265717569726564004D5C +:10C9EC0065737361676520746F6F206C6F6E670081 +:10C9FC00556E6B6E6F776E2070726F746F636F6CA9 +:10CA0C0000536F636B65742074797065206E6F745E +:10CA1C0020737570706F7274656400536F636B650F +:10CA2C007420697320616C726561647920636F6E28 +:10CA3C006E656374656400536F636B657420697312 +:10CA4C00206E6F7420636F6E6E6563746564004E48 +:10CA5C006F7420737570706F72746564004F7065BD +:10CA6C00726174696F6E2063616E63656C656400DE +:10CA7C005374617465206E6F74207265636F766594 +:10CA8C007261626C650050726576696F7573206FA8 +:10CA9C00776E657220646965640053747265616DAC +:10CAAC00732070697065206572726F7200000000EF +:10CABC0000000070000000500020054000100540F0 +:10CACC0000200640001006400000064000200140F7 +:10CADC0000900540005005400000054000000B4050 +:10CAEC0000000A40000009400020084000100840E7 +:10CAFC000000084000F000600020006000000060B2 +:10CB0C0000000340001002400000024000100140F1 +:10CB1C000000014000E000E0010000000101020003 +:10CB2C0002000200020002000200020002000200E9 +:10CB3C0002000200020002000200020002000200D9 +:0CCB4C000A0A00000A00080003000000B4 +:10CB58002A2A2A4D443230335F426F6F746C6F61FA +:10CB68006465725F5630342A2A2A000000000000EB +:040000050000290CC2 +:00000001FF diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05_0x0.bin b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05_0x0.bin new file mode 100644 index 0000000..1469be4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05_0x0.bin differ diff --git a/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05_0x2000.bin b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05_0x2000.bin new file mode 100644 index 0000000..83f37ba Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/BLV_CS_AC100_V05_0x2000.bin differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_adc.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_adc.d new file mode 100644 index 0000000..1b0fd65 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_adc.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_adc.o: FWlib/apt32f102_adc.c include/apt32f102_adc.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_adc.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_adc.o new file mode 100644 index 0000000..93a083a Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_adc.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_bt.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_bt.d new file mode 100644 index 0000000..d3afe77 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_bt.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_bt.o: FWlib/apt32f102_bt.c include/apt32f102_bt.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_bt.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_bt.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_bt.o new file mode 100644 index 0000000..fee9cd4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_bt.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_coret.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_coret.d new file mode 100644 index 0000000..c348c18 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_coret.d @@ -0,0 +1,14 @@ +Obj/FWlib_apt32f102_coret.o: FWlib/apt32f102_coret.c \ + include/apt32f102_coret.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h \ + include/apt32f102_syscon.h + +include/apt32f102_coret.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_syscon.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_coret.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_coret.o new file mode 100644 index 0000000..82f4db3 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_coret.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_countera.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_countera.d new file mode 100644 index 0000000..7e6968f --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_countera.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_countera.o: FWlib/apt32f102_countera.c \ + include/apt32f102_countera.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h + +include/apt32f102_countera.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_countera.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_countera.o new file mode 100644 index 0000000..f17bf09 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_countera.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_crc.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_crc.d new file mode 100644 index 0000000..20a9e11 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_crc.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_crc.o: FWlib/apt32f102_crc.c include/apt32f102_crc.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_crc.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_crc.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_crc.o new file mode 100644 index 0000000..890cd56 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_crc.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ept.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ept.d new file mode 100644 index 0000000..b340f6c --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ept.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_ept.o: FWlib/apt32f102_ept.c include/apt32f102_ept.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_ept.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ept.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ept.o new file mode 100644 index 0000000..a685523 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ept.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_et.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_et.d new file mode 100644 index 0000000..53a2f02 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_et.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_et.o: FWlib/apt32f102_et.c include/apt32f102_et.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_et.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_et.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_et.o new file mode 100644 index 0000000..8d56433 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_et.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpio.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpio.d new file mode 100644 index 0000000..86af067 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpio.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_gpio.o: FWlib/apt32f102_gpio.c \ + include/apt32f102_gpio.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h + +include/apt32f102_gpio.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpio.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpio.o new file mode 100644 index 0000000..48014c4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpio.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpt.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpt.d new file mode 100644 index 0000000..fd9e95c --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpt.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_gpt.o: FWlib/apt32f102_gpt.c include/apt32f102_gpt.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_gpt.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpt.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpt.o new file mode 100644 index 0000000..f005724 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_gpt.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_i2c.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_i2c.d new file mode 100644 index 0000000..d3e7f34 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_i2c.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_i2c.o: FWlib/apt32f102_i2c.c include/apt32f102_i2c.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_i2c.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_i2c.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_i2c.o new file mode 100644 index 0000000..c460aa4 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_i2c.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ifc.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ifc.d new file mode 100644 index 0000000..1913cf8 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ifc.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_ifc.o: FWlib/apt32f102_ifc.c include/apt32f102_ifc.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_ifc.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ifc.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ifc.o new file mode 100644 index 0000000..bf02d33 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_ifc.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_lpt.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_lpt.d new file mode 100644 index 0000000..deda227 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_lpt.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_lpt.o: FWlib/apt32f102_lpt.c include/apt32f102_lpt.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_lpt.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_lpt.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_lpt.o new file mode 100644 index 0000000..c43b16c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_lpt.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_rtc.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_rtc.d new file mode 100644 index 0000000..615321c --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_rtc.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_rtc.o: FWlib/apt32f102_rtc.c include/apt32f102_rtc.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_rtc.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_rtc.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_rtc.o new file mode 100644 index 0000000..440f0ae Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_rtc.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_sio.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_sio.d new file mode 100644 index 0000000..a96733c --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_sio.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_sio.o: FWlib/apt32f102_sio.c include/apt32f102_sio.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_sio.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_sio.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_sio.o new file mode 100644 index 0000000..c5eb1c9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_sio.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_spi.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_spi.d new file mode 100644 index 0000000..097eac5 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_spi.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_spi.o: FWlib/apt32f102_spi.c include/apt32f102_spi.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h + +include/apt32f102_spi.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_spi.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_spi.o new file mode 100644 index 0000000..b4e25d0 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_spi.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_syscon.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_syscon.d new file mode 100644 index 0000000..622babc --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_syscon.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_syscon.o: FWlib/apt32f102_syscon.c \ + include/apt32f102_syscon.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h + +include/apt32f102_syscon.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_syscon.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_syscon.o new file mode 100644 index 0000000..5a1c2e7 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_syscon.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_uart.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_uart.d new file mode 100644 index 0000000..cb50615 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_uart.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_uart.o: FWlib/apt32f102_uart.c \ + include/apt32f102_uart.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h + +include/apt32f102_uart.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_uart.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_uart.o new file mode 100644 index 0000000..dcce53b Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_uart.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_wwdt.d b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_wwdt.d new file mode 100644 index 0000000..671e7e6 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_wwdt.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_wwdt.o: FWlib/apt32f102_wwdt.c \ + include/apt32f102_wwdt.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h + +include/apt32f102_wwdt.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_wwdt.o b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_wwdt.o new file mode 100644 index 0000000..b2e73e9 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/FWlib_apt32f102_wwdt.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/MD203F8P.txt b/BLV_CS_AC100_V05/Source/Obj/MD203F8P.txt new file mode 100644 index 0000000..2a4f999 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/MD203F8P.txt @@ -0,0 +1 @@ +Obj/arch_crt0.o Obj/arch_mem_init.o Obj/arch_apt32f102_iostring.o Obj/FWlib_apt32f102_syscon.o Obj/FWlib_apt32f102_gpio.o Obj/FWlib_apt32f102_lpt.o Obj/FWlib_apt32f102_crc.o Obj/FWlib_apt32f102_wwdt.o Obj/FWlib_apt32f102_countera.o Obj/FWlib_apt32f102_et.o Obj/FWlib_apt32f102_bt.o Obj/FWlib_apt32f102_gpt.o Obj/FWlib_apt32f102_sio.o Obj/FWlib_apt32f102_spi.o Obj/FWlib_apt32f102_uart.o Obj/FWlib_apt32f102_i2c.o Obj/FWlib_apt32f102_ept.o Obj/FWlib_apt32f102_rtc.o Obj/FWlib_apt32f102_adc.o Obj/FWlib_apt32f102_ifc.o Obj/FWlib_apt32f102_coret.o Obj/main.o Obj/mcu_initial.o Obj/mcu_interrupt.o Obj/drivers_apt32f102.o Obj/drivers_apt32f102_ck801.o Obj/SYSTEM_uart.o Obj/SYSTEM_dip_switch.o Obj/SYSTEM_eeprom.o Obj/SYSTEM_det_energy.o Obj/SYSTEM_Bootload_fun.o Obj/SYSTEM_fram_i2c.o Obj/__rt_entry.o \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_Bootload_fun.d b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_Bootload_fun.d new file mode 100644 index 0000000..be18796 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_Bootload_fun.d @@ -0,0 +1,80 @@ +Obj/SYSTEM_Bootload_fun.o: SYSTEM/Bootload_fun.c includes.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h include/apt32f102_adc.h include/apt32f102.h \ + include/apt32f102_bt.h include/apt32f102_coret.h \ + include/apt32f102_countera.h include/apt32f102_crc.h \ + include/apt32f102_ept.h include/apt32f102_et.h include/apt32f102_gpio.h \ + include/apt32f102_gpt.h include/apt32f102_i2c.h include/apt32f102_ifc.h \ + include/apt32f102_lpt.h include/apt32f102_rtc.h include/apt32f102_sio.h \ + include/apt32f102_spi.h include/apt32f102_syscon.h \ + include/apt32f102_uart.h include/apt32f102_wwdt.h \ + include/apt32f102_types_local.h include/apt32f102_clkcalib.h \ + include/apt32f102_tkey.h SYSTEM/inc/uart.h SYSTEM/inc/dip_switch.h \ + SYSTEM/inc/eeprom.h SYSTEM/inc/det_energy.h SYSTEM/inc/Bootload_fun.h \ + SYSTEM/inc/uart.h SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_Bootload_fun.o b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_Bootload_fun.o new file mode 100644 index 0000000..8f7bf27 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_Bootload_fun.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_det_energy.d b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_det_energy.d new file mode 100644 index 0000000..09b99e4 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_det_energy.d @@ -0,0 +1,80 @@ +Obj/SYSTEM_det_energy.o: SYSTEM/det_energy.c includes.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h include/apt32f102_adc.h include/apt32f102.h \ + include/apt32f102_bt.h include/apt32f102_coret.h \ + include/apt32f102_countera.h include/apt32f102_crc.h \ + include/apt32f102_ept.h include/apt32f102_et.h include/apt32f102_gpio.h \ + include/apt32f102_gpt.h include/apt32f102_i2c.h include/apt32f102_ifc.h \ + include/apt32f102_lpt.h include/apt32f102_rtc.h include/apt32f102_sio.h \ + include/apt32f102_spi.h include/apt32f102_syscon.h \ + include/apt32f102_uart.h include/apt32f102_wwdt.h \ + include/apt32f102_types_local.h include/apt32f102_clkcalib.h \ + include/apt32f102_tkey.h SYSTEM/inc/uart.h SYSTEM/inc/dip_switch.h \ + SYSTEM/inc/eeprom.h SYSTEM/inc/det_energy.h SYSTEM/inc/Bootload_fun.h \ + SYSTEM/inc/uart.h SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_det_energy.o b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_det_energy.o new file mode 100644 index 0000000..e91eaba Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_det_energy.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_dip_switch.d b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_dip_switch.d new file mode 100644 index 0000000..0fa2fed --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_dip_switch.d @@ -0,0 +1,80 @@ +Obj/SYSTEM_dip_switch.o: SYSTEM/dip_switch.c includes.h \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h include/apt32f102_adc.h include/apt32f102.h \ + include/apt32f102_bt.h include/apt32f102_coret.h \ + include/apt32f102_countera.h include/apt32f102_crc.h \ + include/apt32f102_ept.h include/apt32f102_et.h include/apt32f102_gpio.h \ + include/apt32f102_gpt.h include/apt32f102_i2c.h include/apt32f102_ifc.h \ + include/apt32f102_lpt.h include/apt32f102_rtc.h include/apt32f102_sio.h \ + include/apt32f102_spi.h include/apt32f102_syscon.h \ + include/apt32f102_uart.h include/apt32f102_wwdt.h \ + include/apt32f102_types_local.h include/apt32f102_clkcalib.h \ + include/apt32f102_tkey.h SYSTEM/inc/uart.h SYSTEM/inc/dip_switch.h \ + SYSTEM/inc/eeprom.h SYSTEM/inc/det_energy.h SYSTEM/inc/Bootload_fun.h \ + SYSTEM/inc/uart.h SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_dip_switch.o b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_dip_switch.o new file mode 100644 index 0000000..8be644e Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_dip_switch.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_eeprom.d b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_eeprom.d new file mode 100644 index 0000000..f005aac --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_eeprom.d @@ -0,0 +1,79 @@ +Obj/SYSTEM_eeprom.o: SYSTEM/eeprom.c includes.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h \ + include/apt32f102_adc.h include/apt32f102.h include/apt32f102_bt.h \ + include/apt32f102_coret.h include/apt32f102_countera.h \ + include/apt32f102_crc.h include/apt32f102_ept.h include/apt32f102_et.h \ + include/apt32f102_gpio.h include/apt32f102_gpt.h include/apt32f102_i2c.h \ + include/apt32f102_ifc.h include/apt32f102_lpt.h include/apt32f102_rtc.h \ + include/apt32f102_sio.h include/apt32f102_spi.h \ + include/apt32f102_syscon.h include/apt32f102_uart.h \ + include/apt32f102_wwdt.h include/apt32f102_types_local.h \ + include/apt32f102_clkcalib.h include/apt32f102_tkey.h SYSTEM/inc/uart.h \ + SYSTEM/inc/dip_switch.h SYSTEM/inc/eeprom.h SYSTEM/inc/det_energy.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.h SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_eeprom.o b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_eeprom.o new file mode 100644 index 0000000..0016117 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_eeprom.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_fram_i2c.d b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_fram_i2c.d new file mode 100644 index 0000000..39ebf9a --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_fram_i2c.d @@ -0,0 +1,79 @@ +Obj/SYSTEM_fram_i2c.o: SYSTEM/fram_i2c.c includes.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h \ + include/apt32f102_adc.h include/apt32f102.h include/apt32f102_bt.h \ + include/apt32f102_coret.h include/apt32f102_countera.h \ + include/apt32f102_crc.h include/apt32f102_ept.h include/apt32f102_et.h \ + include/apt32f102_gpio.h include/apt32f102_gpt.h include/apt32f102_i2c.h \ + include/apt32f102_ifc.h include/apt32f102_lpt.h include/apt32f102_rtc.h \ + include/apt32f102_sio.h include/apt32f102_spi.h \ + include/apt32f102_syscon.h include/apt32f102_uart.h \ + include/apt32f102_wwdt.h include/apt32f102_types_local.h \ + include/apt32f102_clkcalib.h include/apt32f102_tkey.h SYSTEM/inc/uart.h \ + SYSTEM/inc/dip_switch.h SYSTEM/inc/eeprom.h SYSTEM/inc/det_energy.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.h SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_fram_i2c.o b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_fram_i2c.o new file mode 100644 index 0000000..2e3640d Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_fram_i2c.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_uart.d b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_uart.d new file mode 100644 index 0000000..0202970 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_uart.d @@ -0,0 +1,79 @@ +Obj/SYSTEM_uart.o: SYSTEM/uart.c includes.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h \ + include/apt32f102_adc.h include/apt32f102.h include/apt32f102_bt.h \ + include/apt32f102_coret.h include/apt32f102_countera.h \ + include/apt32f102_crc.h include/apt32f102_ept.h include/apt32f102_et.h \ + include/apt32f102_gpio.h include/apt32f102_gpt.h include/apt32f102_i2c.h \ + include/apt32f102_ifc.h include/apt32f102_lpt.h include/apt32f102_rtc.h \ + include/apt32f102_sio.h include/apt32f102_spi.h \ + include/apt32f102_syscon.h include/apt32f102_uart.h \ + include/apt32f102_wwdt.h include/apt32f102_types_local.h \ + include/apt32f102_clkcalib.h include/apt32f102_tkey.h SYSTEM/inc/uart.h \ + SYSTEM/inc/dip_switch.h SYSTEM/inc/eeprom.h SYSTEM/inc/det_energy.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.h SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/SYSTEM_uart.o b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_uart.o new file mode 100644 index 0000000..3956c3f Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/SYSTEM_uart.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/__rt_entry.S b/BLV_CS_AC100_V05/Source/Obj/__rt_entry.S new file mode 100644 index 0000000..8b9bb64 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/__rt_entry.S @@ -0,0 +1,139 @@ + + .global __main + .weak __main + .global __e_rom + .weak __e_rom + .global __s_ram_data_1 + .weak __s_ram_data_1 + .global __e_ram_data_1 + .weak __e_ram_data_1 + .global __s_ram_bss_1 + .weak __s_ram_bss_1 + .global __e_ram_bss_1 + .weak __e_ram_bss_1 + .global __s_ram_data_2 + .weak __s_ram_data_2 + .global __e_ram_data_2 + .weak __e_ram_data_2 + .global __s_ram_bss_2 + .weak __s_ram_bss_2 + .global __e_ram_bss_2 + .weak __e_ram_bss_2 + .global __s_ram_data_3 + .weak __s_ram_data_3 + .global __e_ram_data_3 + .weak __e_ram_data_3 + .global __s_ram_bss_3 + .weak __s_ram_bss_3 + .global __e_ram_bss_3 + .weak __e_ram_bss_3 + .global __s_ram_data_4 + .weak __s_ram_data_4 + .global __e_ram_data_4 + .weak __e_ram_data_4 + .global __s_ram_bss_4 + .weak __s_ram_bss_4 + .global __e_ram_bss_4 + .weak __e_ram_bss_4 + .global __s_ram_data_5 + .weak __s_ram_data_5 + .global __e_ram_data_5 + .weak __e_ram_data_5 + .global __s_ram_bss_5 + .weak __s_ram_bss_5 + .global __e_ram_bss_5 + .weak __e_ram_bss_5 + .global __ChipInitHandler + .weak __ChipInitHandler + + .text + .align 3 + __bss_initialization: + subu a2, a3 + lsri a2, 2 + cmpnei a2, 0 + bf 2f + movi a1, 0 + 1: + stw a1, (a3) + addi a3, 4 + subi a2, 1 + cmpnei a2, 0 + bt 1b + 2: + jmp r15 + + __rom_decompression: + cmphs a1, a2 + bt 4f + 3: + ld.w a3, (a0, 0) + st.w a3, (a1, 0) + addi a0, 4 + addi a1, 4 + cmphs a1, a2 + bf 3b + 4: + jmp r15 + + __main: + mov r6, r15 + lrw a3, __s_ram_bss_1 + lrw a2, __e_ram_bss_1 + bsr __bss_initialization + lrw a3, __s_ram_bss_2 + lrw a2, __e_ram_bss_2 + bsr __bss_initialization + lrw a3, __s_ram_bss_3 + lrw a2, __e_ram_bss_3 + bsr __bss_initialization + lrw a3, __s_ram_bss_4 + lrw a2, __e_ram_bss_4 + bsr __bss_initialization + lrw a3, __s_ram_bss_5 + lrw a2, __e_ram_bss_5 + bsr __bss_initialization + lrw a0, __e_rom + lrw a1, __s_ram_data_1 + lrw a2, __e_ram_data_1 + bsr __rom_decompression + lrw a1, __s_ram_data_2 + lrw a2, __e_ram_data_2 + bsr __rom_decompression + lrw a1, __s_ram_data_3 + lrw a2, __e_ram_data_3 + bsr __rom_decompression + lrw a1, __s_ram_data_4 + lrw a2, __e_ram_data_4 + bsr __rom_decompression + lrw a1, __s_ram_data_5 + lrw a2, __e_ram_data_5 + bsr __rom_decompression + #ifdef __CSKYABIV2__ + subi sp, 4 + stw r6, (sp, 0) + lrw a0, __ChipInitHandler + cmpnei a0, 0 + bf 1f + jsr a0 + 1: + lrw a0, main + jsr a0 + #else + subi sp, 8 + stw r6, (sp, 0) + lrw a0, __ChipInitHandler + cmpnei a0, 0 + bf 1f + jsri __ChipInitHandler + 1: + jsri main + #endif + ldw r15, (sp, 0) + #ifdef __CSKYABIV2__ + addi sp, 4 + #else + addi sp, 8 + #endif + jmp r15 + \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/Obj/__rt_entry.d b/BLV_CS_AC100_V05/Source/Obj/__rt_entry.d new file mode 100644 index 0000000..21afacb --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/__rt_entry.d @@ -0,0 +1 @@ +Obj/__rt_entry.o: Obj/__rt_entry.S diff --git a/BLV_CS_AC100_V05/Source/Obj/__rt_entry.o b/BLV_CS_AC100_V05/Source/Obj/__rt_entry.o new file mode 100644 index 0000000..f6e1dca Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/__rt_entry.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/arch_apt32f102_iostring.d b/BLV_CS_AC100_V05/Source/Obj/arch_apt32f102_iostring.d new file mode 100644 index 0000000..8aea0fc --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/arch_apt32f102_iostring.d @@ -0,0 +1,13 @@ +Obj/arch_apt32f102_iostring.o: arch/apt32f102_iostring.c \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h include/apt32f102_uart.h include/apt32f102.h + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_uart.h: + +include/apt32f102.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/arch_apt32f102_iostring.o b/BLV_CS_AC100_V05/Source/Obj/arch_apt32f102_iostring.o new file mode 100644 index 0000000..a818c11 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/arch_apt32f102_iostring.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/arch_crt0.d b/BLV_CS_AC100_V05/Source/Obj/arch_crt0.d new file mode 100644 index 0000000..430c939 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/arch_crt0.d @@ -0,0 +1 @@ +Obj/arch_crt0.o: arch/crt0.S diff --git a/BLV_CS_AC100_V05/Source/Obj/arch_crt0.o b/BLV_CS_AC100_V05/Source/Obj/arch_crt0.o new file mode 100644 index 0000000..6c1db82 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/arch_crt0.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/arch_mem_init.d b/BLV_CS_AC100_V05/Source/Obj/arch_mem_init.d new file mode 100644 index 0000000..c3cd9c6 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/arch_mem_init.d @@ -0,0 +1 @@ +Obj/arch_mem_init.o: arch/mem_init.c diff --git a/BLV_CS_AC100_V05/Source/Obj/arch_mem_init.o b/BLV_CS_AC100_V05/Source/Obj/arch_mem_init.o new file mode 100644 index 0000000..f586080 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/arch_mem_init.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102.d b/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102.d new file mode 100644 index 0000000..9d7f972 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102.d @@ -0,0 +1,8 @@ +Obj/drivers_apt32f102.o: drivers/apt32f102.c include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102.o b/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102.o new file mode 100644 index 0000000..cbb23c2 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102_ck801.d b/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102_ck801.d new file mode 100644 index 0000000..8d9ab1a --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102_ck801.d @@ -0,0 +1,11 @@ +Obj/drivers_apt32f102_ck801.o: drivers/apt32f102_ck801.c \ + include/apt32f102.h include/apt32f102_types_local.h \ + include/apt32f102_ck801.h include/apt32f102_ck801.h + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_ck801.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102_ck801.o b/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102_ck801.o new file mode 100644 index 0000000..12be8f8 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/drivers_apt32f102_ck801.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/main.d b/BLV_CS_AC100_V05/Source/Obj/main.d new file mode 100644 index 0000000..b225256 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/main.d @@ -0,0 +1,82 @@ +Obj/main.o: main.c includes.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h \ + include/apt32f102_adc.h include/apt32f102.h include/apt32f102_bt.h \ + include/apt32f102_coret.h include/apt32f102_countera.h \ + include/apt32f102_crc.h include/apt32f102_ept.h include/apt32f102_et.h \ + include/apt32f102_gpio.h include/apt32f102_gpt.h include/apt32f102_i2c.h \ + include/apt32f102_ifc.h include/apt32f102_lpt.h include/apt32f102_rtc.h \ + include/apt32f102_sio.h include/apt32f102_spi.h \ + include/apt32f102_syscon.h include/apt32f102_uart.h \ + include/apt32f102_wwdt.h include/apt32f102_types_local.h \ + include/apt32f102_clkcalib.h include/apt32f102_tkey.h SYSTEM/inc/uart.h \ + SYSTEM/inc/dip_switch.h SYSTEM/inc/eeprom.h includes.h \ + SYSTEM/inc/det_energy.h SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.h \ + SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +includes.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/main.o b/BLV_CS_AC100_V05/Source/Obj/main.o new file mode 100644 index 0000000..73df0ed Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/main.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/mcu_initial.d b/BLV_CS_AC100_V05/Source/Obj/mcu_initial.d new file mode 100644 index 0000000..9c78b28 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/mcu_initial.d @@ -0,0 +1,82 @@ +Obj/mcu_initial.o: mcu_initial.c includes.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h \ + include/apt32f102_adc.h include/apt32f102.h include/apt32f102_bt.h \ + include/apt32f102_coret.h include/apt32f102_countera.h \ + include/apt32f102_crc.h include/apt32f102_ept.h include/apt32f102_et.h \ + include/apt32f102_gpio.h include/apt32f102_gpt.h include/apt32f102_i2c.h \ + include/apt32f102_ifc.h include/apt32f102_lpt.h include/apt32f102_rtc.h \ + include/apt32f102_sio.h include/apt32f102_spi.h \ + include/apt32f102_syscon.h include/apt32f102_uart.h \ + include/apt32f102_wwdt.h include/apt32f102_types_local.h \ + include/apt32f102_clkcalib.h include/apt32f102_tkey.h SYSTEM/inc/uart.h \ + SYSTEM/inc/dip_switch.h SYSTEM/inc/eeprom.h includes.h \ + SYSTEM/inc/det_energy.h SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.h \ + SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +includes.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/mcu_initial.o b/BLV_CS_AC100_V05/Source/Obj/mcu_initial.o new file mode 100644 index 0000000..bd9a260 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/mcu_initial.o differ diff --git a/BLV_CS_AC100_V05/Source/Obj/mcu_interrupt.d b/BLV_CS_AC100_V05/Source/Obj/mcu_interrupt.d new file mode 100644 index 0000000..12fd72c --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Obj/mcu_interrupt.d @@ -0,0 +1,82 @@ +Obj/mcu_interrupt.o: mcu_interrupt.c includes.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h \ + include/apt32f102_adc.h include/apt32f102.h include/apt32f102_bt.h \ + include/apt32f102_coret.h include/apt32f102_countera.h \ + include/apt32f102_crc.h include/apt32f102_ept.h include/apt32f102_et.h \ + include/apt32f102_gpio.h include/apt32f102_gpt.h include/apt32f102_i2c.h \ + include/apt32f102_ifc.h include/apt32f102_lpt.h include/apt32f102_rtc.h \ + include/apt32f102_sio.h include/apt32f102_spi.h \ + include/apt32f102_syscon.h include/apt32f102_uart.h \ + include/apt32f102_wwdt.h include/apt32f102_types_local.h \ + include/apt32f102_clkcalib.h include/apt32f102_tkey.h SYSTEM/inc/uart.h \ + SYSTEM/inc/dip_switch.h SYSTEM/inc/eeprom.h includes.h \ + SYSTEM/inc/det_energy.h SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.h \ + SYSTEM/inc/fram_i2c.h + +includes.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: + +include/apt32f102_adc.h: + +include/apt32f102.h: + +include/apt32f102_bt.h: + +include/apt32f102_coret.h: + +include/apt32f102_countera.h: + +include/apt32f102_crc.h: + +include/apt32f102_ept.h: + +include/apt32f102_et.h: + +include/apt32f102_gpio.h: + +include/apt32f102_gpt.h: + +include/apt32f102_i2c.h: + +include/apt32f102_ifc.h: + +include/apt32f102_lpt.h: + +include/apt32f102_rtc.h: + +include/apt32f102_sio.h: + +include/apt32f102_spi.h: + +include/apt32f102_syscon.h: + +include/apt32f102_uart.h: + +include/apt32f102_wwdt.h: + +include/apt32f102_types_local.h: + +include/apt32f102_clkcalib.h: + +include/apt32f102_tkey.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/dip_switch.h: + +SYSTEM/inc/eeprom.h: + +includes.h: + +SYSTEM/inc/det_energy.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/fram_i2c.h: diff --git a/BLV_CS_AC100_V05/Source/Obj/mcu_interrupt.o b/BLV_CS_AC100_V05/Source/Obj/mcu_interrupt.o new file mode 100644 index 0000000..1343219 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Obj/mcu_interrupt.o differ diff --git a/BLV_CS_AC100_V05/Source/Project.cdkproj b/BLV_CS_AC100_V05/Source/Project.cdkproj new file mode 100644 index 0000000..66816f6 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Project.cdkproj @@ -0,0 +1,472 @@ + + + + + + yes + + + + + 101 + 91 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CKV2ElfMinilib + latest + + + + CK801:1;i_temp:1;j_temp:1;k_temp:1;GPIOB0:1;GPIOA0:1;SYSCON:1;test_d:1;LPT:1;BT0:1;Key_Map:1;DFLASH_rdata:1;TKEYBUF:1 + 0x00080140;;; + ;;32;;MHZ; + + SYSCON + + 1 + 0 + layout2|name=Project View;caption=Project View;state=31459324;dir=4;layer=1;row=0;pos=0;prop=68571;bestw=456;besth=277;minw=10;minh=5;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=Debugger;caption=Debugger;state=14682108;dir=3;layer=1;row=0;pos=0;prop=86169;bestw=341;besth=315;minw=10;minh=5;maxw=-1;maxh=-1;floatx=60;floaty=707;floatw=418;floath=340|name=Frame Info;caption=Frame Info;state=14698492;dir=3;layer=1;row=0;pos=1;prop=106705;bestw=400;besth=300;minw=10;minh=5;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=Peripherals;caption=Peripherals;state=31459326;dir=3;layer=1;row=0;pos=4;prop=100000;bestw=11;besth=43;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=Serial Pane;caption=Serial Pane;state=14682110;dir=3;layer=1;row=0;pos=4;prop=100000;bestw=400;besth=300;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=Editor;caption=;state=256;dir=5;layer=0;row=0;pos=0;prop=100000;bestw=20;besth=20;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=Output View;caption=Output View;state=31459326;dir=3;layer=1;row=0;pos=1;prop=100000;bestw=958;besth=244;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=Disassemble;caption=Disassemble;state=2099198;dir=3;layer=1;row=0;pos=2;prop=158373;bestw=200;besth=200;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=1746;floaty=812;floatw=216;floath=236|name=Register;caption=Register;state=2099198;dir=4;layer=1;row=0;pos=1;prop=100000;bestw=200;besth=200;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=83;floaty=444;floatw=218;floath=240|name=Outline;caption=Outline;state=2099198;dir=2;layer=0;row=2;pos=0;prop=100000;bestw=200;besth=200;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=1823;floaty=285;floatw=216;floath=236|dock_size(4,1,0)=210|dock_size(5,0,0)=20|dock_size(3,1,0)=335| + 100:4;100:8;100:8;100:8; + + + + + + + + yes + 0x00000000 + 0x00010000 + + + no + + + + + no + + + + + no + + + + + no + + + + + + + yes + 0x20000000 + 0x20001000 + yes + + + no + + + yes + + + no + + + yes + + + no + + + yes + + + no + + + yes + + + ck801 + yes + little + no + no + no + no + + + BLV_CS_AC100_V05 + Executable + yes + yes + no + yes + no + yes + + + + no + + no + + + no + + no + + + no + + no + + + + + CONFIG_CSKY_MMU=0 + __CSKY_ABIV2__ + Optimize size (-Os) + Default (-g) + $(CDKPath)/CSKY/csi/csi_core/csi_cdk/;$(CDKPath)/CSKY/csi/csi_core/include/;$(CDKPath)/CSKY/csi/csi_driver/include/;$(ProjectPath);$(ProjectPath)/SYSTEM/inc;$(ProjectPath)/include + -mistack + no + no + no + no + no + no + no + no + yes + no + no + + + CONFIG_CKCPU_MMU=0 + __CSKY_ABIV2__ + $(CDKPath)/CSKY/csi/csi_core/csi_cdk/;$(CDKPath)/CSKY/csi/csi_core/include/;$(CDKPath)/CSKY/csi/csi_driver/include/;$(ProjectPath);$(ProjectPath)//SYSTEM;$(ProjectPath)/SYSTEM/inc + + gdwarf2 + + + yes + yes + $(ProjectPath)/ckcpu.ld + lib_102TKey_c_1_16P0;lib_102ClkCalib_1_03;libm + $(ProjectPath) + + no + + no + none + no + + + yes + ICE + yes + main + + + + yes + Soft Reset + abcd1234 + no + + no + $(ProjectPath)/$(ProjectName).cdkcore + + + localhost + 1025 + 0 + 1500 + 10 + 100 + 50 + yes + no + no + yes + Normal + Soft Reset + abcd1234 + Bare Metal + yes + yes + + Local + + yes + 1000 + yes + 1026 + latest + no + + + soccfg/cskyv2/smart_card_802_cfg.xml + + yes + no + no + latest + + + + yes + no + 4444 + no + 6666 + + 5000 + localhost + 3333 + openocd-sifive + latest + + + + + + Erase Full Chip + $(ProjectPath)/FLASHDOWN/APT32F102_FLASHDOWN.elf + yes + yes + yes + Soft Reset + abcd1234 + no + 0 + no + + + + + + diff --git a/BLV_CS_AC100_V05/Source/Project.cdkws b/BLV_CS_AC100_V05/Source/Project.cdkws new file mode 100644 index 0000000..2dd9677 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/Project.cdkws @@ -0,0 +1,11 @@ + + + $(CDKWS)\__workspace_pack__ + + + + + + + + diff --git a/BLV_CS_AC100_V05/Source/Project.tags b/BLV_CS_AC100_V05/Source/Project.tags new file mode 100644 index 0000000..66596bb Binary files /dev/null and b/BLV_CS_AC100_V05/Source/Project.tags differ diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/Bootload_fun.c b/BLV_CS_AC100_V05/Source/SYSTEM/Bootload_fun.c new file mode 100644 index 0000000..51aa690 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/Bootload_fun.c @@ -0,0 +1,504 @@ +/* + ****************************************************************************** + * @file Bootload.c + * @author caocong + * @version V1.00 + * @date 2025/04/03 + * @Description + * MCU空间规划 + * Boot 0x0000 ~ 0x27FF 10K + * APP 0x2800 ~ 0xFEFF 53.8K + * APP_FEATURE 0xFF00 ~ 0xFFFF 256Byte + * EEPROM空间规划 + * APP设备信息 0x10000000 - Size:0x40 - 64Byte + * + */ + +#include "includes.h" +#include +#include +#include + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + + EEPROM_Init(); + + /*读取APP 特征区*/ +// app_ready = Check_APP_Feature(); +//#if DBG_LOG_EN +// if(app_ready == 0x00) +// { +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature SUCC"); +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP app_flag:%d",g_app_feature.app_flag); +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP app_start_addr:%08x",g_app_feature.app_start_addr); +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP app_end_addr:%08x",g_app_feature.app_end_addr); +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP app_crc_size:%d",g_app_feature.app_crc_size); +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP app_crc_len:%d",g_app_feature.app_crc_len); +// Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"APP app_crc:",g_app_feature.app_crc,g_app_feature.app_crc_len); +// +// }else { +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + { + g_boot.bootTimeout = 5000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS," Boot software reset"); +#endif + + }else if(sys_reset_sta == 0x01) //上电复位RPOR + { + g_boot.bootTimeout = 500; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot power on reset"); +#endif + }else if(sys_reset_sta == 0x04) //外部手动复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex-pin reset"); +#endif + }else if(sys_reset_sta == 0x10) //看门狗超时复位 --升级完成复位源 + { + g_boot.bootTimeout = 2000; + + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot wdt reset"); +#endif + }else if(sys_reset_sta == 0x40) //外部时钟无效复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot ex clock invalid reset"); +#endif + }else if(sys_reset_sta == 0x80) //CPU请求复位 - link调试复位 + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot cpu request reset"); +#endif + }else + { + g_boot.bootTimeout = 2000; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + U8_T sum = 0; + U16_T i=0; + + while(len--) + { + sum += buffer[i]; + i++; + } + return (~sum); +} + +U16_T NetCRC16(U8_T * aStr, U16_T len) +{ + U16_T xda , xdapoly ; + U16_T i, j, xdabit ; + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for (i = 0; i < len; i++) + { + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + } + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + +#if DBG_LOG_EN + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"ACKBuff ",ack_uart->ackBuffer,data_len); +#endif + + //MCU485_SendData(ack_uart->ackBuffer, data_len); + Set_GroupSend(ack_uart->ackBuffer,data_len,0x01,ack_uart->ackValidity,100); + + //ack_uart->ackLen = 0x00; +} + +/******************************************************************************* +* Function Name : APP_Flash_AllEase +* Description : 擦除APP Flash空间 +*******************************************************************************/ +void APP_Flash_AllEase(void) +{ + for(U32_T index = APP_Flash_StartAddr; index < APP_Flash_EndAddr;index+=APP_Flash_PageSize){ + SYSCON_IWDCNT_Reload(); + PageErase(index); + } +} + +/******************************************************************************* +* Function Name : MCU_EEPROM_AllEase +* Description : 擦除EEPROM 空间 +*******************************************************************************/ +void MCU_EEPROM_AllEase(void) +{ + for(U32_T index = MCU_EEPROM_StartAddr; index < MCU_EEPROM_EndAddr;index+=MCU_EEPROM_PageSize){ + SYSCON_IWDCNT_Reload(); + PageErase(index); + } +} + +/******************************************************************************* +* Function Name : APP_FEATURE_Flash_Ease +* Description : 擦除APP特征区 Flash空间 +*******************************************************************************/ +void APP_FEATURE_Flash_Ease(void) +{ + PageErase(APP_FEATURE_Flash_Addr); +} + +/******************************************************************************* +* Function Name : Boot_Comm_UpgradeProcess +* Description : Boot通讯数据处理函数 +*******************************************************************************/ +U8_T Boot_Comm_UpgradeProcess(U8_T *data,U16_T len) +{ + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + U16_T data_len = 0,crcNumIndex = 0; + U32_T temp_data = 0,temp_data_2 = 0; + + data_len = data[BCOMM_FMT_LEN_H]; + data_len <<= 8; + data_len |= data[BCOMM_FMT_LEN_L]; + + if(len != data_len) { +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Fail "); +#endif + return 0x01; + } + + if(Boot_Comm_CheckSum(data,len) != 0) { +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_CheckSum Fail "); +#endif + return 0x02; + } + + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + //群发标志位 + group_flag = 0x01; + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + deal_flag = 0x01; +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN Disaffinity,Processing Data"); +#endif + }else { + deal_flag = 0x00; +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Group Data SN The Same,No Processing Data"); +#endif + } + }else { + //单发标志位 + group_flag = 0x00; + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + //包序号不太相同,需要处理 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN Disaffinity,Processing Data"); +#endif + deal_flag = 0x01; + reply_flag = 0x01; + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + //包序号相同,重发标志位置位,不处理,但是需要回复数据,回复上次的数据内容 + deal_flag = 0x00; + + /*重发数据包命令与上一次的命令相同的话,直接回复上一次的数据内容*/ + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + reply_flag = 0x01; + } + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Single Data SN The Same,No Processing Data"); +#endif + } + } + + /*判断类型是否相同,且不是广播类型*/ + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvType %d - %d ",g_mcu_dev.dev_type,data[BCOMM_FMT_TYPE]); +#endif + return 0x03; + } + /*判断是否广播类型与广播地址*/ + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot_Comm_RecvAddr %d - %d ",g_mcu_dev.dev_addr,data[BCOMM_FMT_RXAddr]); +#endif + return 0x04; + } + + Boot_Time_Refresh(); + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + g_boot.cmd = data[BCOMM_FMT_CMD]; + + switch(g_boot.cmd){ + case BCOMM_CMD_Handshake: //握手命令 + + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"BCOMM_CMD_Handshake Proecessing "); +#endif + /*设置Boot 超时时间*/ + temp_data = data[BCOMM_FMT_PARAM + 1]; + temp_data <<= 8; + temp_data |= data[BCOMM_FMT_PARAM]; + + if(temp_data != g_boot.bootTimeout){ + g_boot.bootTimeout = temp_data; + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + } + + /*回复数据的有效期*/ + temp_data = data[BCOMM_FMT_PARAM + 3]; + temp_data <<= 8; + temp_data |= data[BCOMM_FMT_PARAM + 2]; + g_boot.ackValidity = temp_data; + } + + //握手命令 - 需要回复的数据,正常回复 + if(reply_flag != 0x01) break; //不回复,直接退出 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + //MCU UID + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + + //机型编号 - 32Byte 最长32Byte + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + + for(U8_T i=0;i= g_boot.bootTimeout) + { + while(1); //执行看门狗复位 + } +} + +void Jump_To_APP(void) +{ + volatile U32_T EIPaddr = g_app_feature.app_start_addr + 0x010C; + asm("mov r0,%0\n"::"r"(EIPaddr):); // APP入口地址 __start label的值 + asm(" jmp r0 "); +} + + +U8_T Check_APP_Feature(void) +{ + U8_T temp_buff[530]; + U16_T crcNumIndex = 0,temp_data = 0,temp_data_2 = 0; + U32_T crc_data_len = 0,crc_feature_len = 0; + + /*读取APP 特征区*/ + ReadDataArry_U8(APP_FEATURE_Flash_Addr,sizeof(APP_FEATURE_INFO_T),temp_buff); + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"App Feature Size:%d",sizeof(APP_FEATURE_INFO_T)); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"App Feature Buff:",temp_buff,sizeof(APP_FEATURE_INFO_T)); +#endif + + crc_data_len = temp_buff[1]; + crc_data_len <<= 8; + crc_data_len |= temp_buff[0]; + temp_buff[0] = 0x00; + temp_buff[1] = 0x00; + if( NetCRC16((U8_T *)temp_buff,sizeof(APP_FEATURE_INFO_T)) != crc_data_len ) + { +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"App Feature CRC ERROR"); +#endif + return 0x01; + } + + memcpy(&g_app_feature,temp_buff,sizeof(APP_FEATURE_INFO_T)); + g_app_feature.crcL_check = crc_data_len & 0xFF; + g_app_feature.crcH_check = (crc_data_len >> 8) & 0xFF; + + if(g_app_feature.app_flag != App_Procedure_Ready) + { +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"App Feature Flag ERROR"); +#endif + return 0x02; //没有APP标志位 + } + + if( (g_app_feature.app_start_addr >= APP_Flash_StartAddr) + && (g_app_feature.app_end_addr < APP_Flash_EndAddr) + && (g_app_feature.app_end_addr > g_app_feature.app_start_addr) + && (g_app_feature.app_crc_size == 512) ) + { + crc_data_len = g_app_feature.app_end_addr - g_app_feature.app_start_addr; +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"App Len :%d ",crc_data_len); +#endif + if( (crc_data_len % g_app_feature.app_crc_size ) != 0x00 ){ + crc_feature_len = ((crc_data_len / g_app_feature.app_crc_size) + 1) * 2; + }else { + crc_feature_len = (crc_data_len / g_app_feature.app_crc_size) * 2; + } + + if(g_app_feature.app_crc_len != crc_feature_len) { +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"App CRC Len :%d - %d",crc_feature_len,g_app_feature.app_crc_len); +#endif + return 0x03; //APP CRC长度不对 + } + + for(U32_T crc_addr = g_app_feature.app_start_addr; crc_addr < g_app_feature.app_end_addr;crc_addr += g_app_feature.app_crc_size) + { + SYSCON_IWDCNT_Reload(); + + if( g_app_feature.app_end_addr - crc_addr >= g_app_feature.app_crc_size) { + crc_data_len = g_app_feature.app_crc_size; + }else { + crc_data_len = g_app_feature.app_end_addr - crc_addr; + } + + ReadDataArry_U8(crc_addr,crc_data_len,temp_buff); + temp_data = NetCRC16(temp_buff,crc_data_len); + temp_data_2 = g_app_feature.app_crc[crcNumIndex + 1]; + temp_data_2 <<= 8; + temp_data_2 |= g_app_feature.app_crc[crcNumIndex]; + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"App CRC ADDR:%08x %04x-%04x",crc_addr,temp_data,temp_data_2); +#endif + if(temp_data != temp_data_2){ + /*校验失败 - */ +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"App CRC Fail ADDR:%08X %04X-%04X",crc_addr,temp_data,temp_data_2); +#endif + return 0x04; //校验失败 + } + crcNumIndex += 2; + } + }else { +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"App Feature StartAddr ERROR"); + + Dbg_Println(DBG_BIT_SYS_STATUS,"APP app_start_addr:%08x",g_app_feature.app_start_addr); + Dbg_Println(DBG_BIT_SYS_STATUS,"APP app_end_addr:%08x",g_app_feature.app_end_addr); + Dbg_Println(DBG_BIT_SYS_STATUS,"APP app_crc_len:%d",g_app_feature.app_crc_len); +#endif + return 0x05; //起始地址不正确 + } + + return 0x00; +} + + diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/det_energy.c b/BLV_CS_AC100_V05/Source/SYSTEM/det_energy.c new file mode 100644 index 0000000..3e57aea --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/det_energy.c @@ -0,0 +1,1973 @@ +#include "includes.h" +#include "math.h" + +DetUart_t u_det; +HLW8110_REG g_CalFactor; //合力为电参数 +DetEng_Info g_Eng; + +void BLV_DetEnergy_Init(void) +{ + memset(&u_det,0,sizeof(DetUart_t)); + memset(&g_CalFactor,0,sizeof(HLW8110_REG)); + memset(&g_Eng,0,sizeof(DetEng_Info)); + + + +} + +//同步flash中保存的参数 +void BLV_DetEnergy_Default(void) +{ + if(e_save.ia_k_val != g_Eng.IA_K_Val) + { + g_Eng.IA_K_Val = e_save.ia_k_val; + } + + if(e_save.ib_k_val != g_Eng.IB_K_Val) + { + g_Eng.IB_K_Val = e_save.ib_k_val; + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + { + g_Eng.V_K_Val = e_save.v_k_val; + } + + if(e_save.pa_k_val != g_Eng.PA_K_Val) + { + g_Eng.PA_K_Val = e_save.pa_k_val; + } + + if(e_save.pb_k_val != g_Eng.PB_K_Val) + { + g_Eng.PB_K_Val = e_save.pb_k_val; + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + { + g_Eng.I_OffSetVal = e_save.i_OffSetVal; + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + { + g_Eng.P_OffSetVal = e_save.p_OffSetVal; + } + + if(e_save.collect_tim != g_Eng.Collect_Tim) + { + g_Eng.Collect_Tim = e_save.collect_tim; + } + + if(e_save.saveFlash_tim != g_Eng.SaveFlash_Tim) + { + g_Eng.SaveFlash_Tim = e_save.saveFlash_tim; + } + + if(e_save.report_tim != g_Eng.Report_Tim) + { + g_Eng.Report_Tim = e_save.report_tim; + } + + //同步FRAM保存的总能耗 + if(g_engfram.total_A_eng != g_Eng.Total_Eng) + { + g_Eng.Total_Eng = g_engfram.total_A_eng; + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + } + + if(g_engfram.total_B_eng != g_Eng.Total_Eng_B) + { + g_Eng.Total_Eng_B = g_engfram.total_B_eng; + g_Eng.LastPhase_Eng_B = g_Eng.Total_Eng_B; + } + + if(g_engfram.Eng_A_RegData != g_Eng.U32_EnergyA_RegData) + { + g_Eng.U32_EnergyA_RegData = g_engfram.Eng_A_RegData; + } + + if(g_engfram.Eng_B_RegData != g_Eng.U32_EnergyB_RegData) + { + g_Eng.U32_EnergyB_RegData = g_engfram.Eng_B_RegData; + } + + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_DetEnergy_Default Init"); +#endif + +} + +//保存能耗数据到FRAM +void SaveFram_TEng(void) +{ + if( (g_Eng.Total_Eng != g_engfram.total_A_eng) + || (g_Eng.Total_Eng_B != g_engfram.total_B_eng) + || (g_Eng.U32_EnergyA_RegData != g_engfram.Eng_A_RegData) + || (g_Eng.U32_EnergyB_RegData != g_engfram.Eng_B_RegData) ) + { + g_engfram.total_A_eng = g_Eng.Total_Eng; + g_engfram.total_B_eng = g_Eng.Total_Eng_B; + g_engfram.Eng_A_RegData = g_Eng.U32_EnergyA_RegData; + g_engfram.Eng_B_RegData = g_Eng.U32_EnergyB_RegData; + + + FRAM_WriteTotalEng(&g_engfram); + } + +} + + + + + +//校验和取反 +U8_T HLW8110_CheckSum(U8_T *data,U16_T len) +{ + U8_T data_sum = 0; + + for(U16_T i = 0;i 0时是写寄存器 + * @para value : 要写入的数据,len == 0 时无效 + * @retval : None + * */ +void BLV_HLW8110_RWCMD_Packaging(U8_T ADDR_Reg,U16_T len,U32_T value) +{ + memset(u_det.SendBuff,0,REV_BUFFER_SIZE); + u_det.SendLen = 0x00; + + u_det.SendBuff[u_det.SendLen++] = 0xA5; + u_det.SendBuff[u_det.SendLen++] = ADDR_Reg|0x80; + + u_det.Resent = 0x00; + u_det.RevNum = 0x00; + + if( len > 0) + { + u_det.WR_flag = SEND_W; + for (U8_T i = 0; i < len; i++) + { + u_det.SendBuff[i + u_det.SendLen] = (value >> ((len - 1 - i) * 8)) & 0xFF; + } + + u_det.SendLen += len; + u_det.SendBuff[u_det.SendLen] = HLW8110_CheckSum(u_det.SendBuff,u_det.SendLen); + u_det.SendLen += 1; + + } + else + { + u_det.WR_flag = SEND_R; + } + +} + + +/*************************************** + * @brief 发送命令, + * @para WR_SelFlag:读/写寄存器选择 + * + * @retval None + * */ +void HLW8110_RWCMD_Send(U8_T WR_SelFlag) +{ + U8_T SendData[30]; + U16_T SendLen = 0x00; + + + if( (WR_SelFlag == SEND_W)&&(u_det.SendLen > 3) ) + { + memcpy(SendData,u_det.SendBuff,u_det.SendLen); + SendLen = u_det.SendLen; + + } + else if(WR_SelFlag == SEND_R) + { + memcpy(SendData,u_det.SendBuff,2); + SendData[1] = (SendData[1] &0x7f ); + SendLen = 2; + } + else + { + return; + } + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_Debug_STATUS,"CMD:%02x,len:%d,SdCt:%d",SendData[1],SendLen,u_det.Resent); +// Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"SendBuff:",SendData,SendLen); +#endif + + + UARTTransmit(UART0,SendData,SendLen); +} + + +//清除发送标志位 +U8_T HLW8110_CleanSdFlag(void) +{ + u_det.WR_flag = SEND_NONE; + u_det.RevNum = REV_NONE; +} + + +//返回回复状态 +U8_T Get_RevState(void) +{ + U8_T ret = 0x00; + + if(u_det.RevNum == REV_OK) + { + u_det.RevNum = REV_NONE; + return REV_OK; + } + else if(u_det.RevNum == REV_ERR) + { + u_det.RevNum = REV_NONE; + return REV_ERR; + } + return REV_NONE; +} + + +//返回发送状态 +U8_T Get_SendState(void) +{ + if(u_det.SendState == SEND_STATE_SUCC) + { + u_det.SendState = SEND_STATE_NONE; + return SEND_STATE_SUCC; + } + else if(u_det.SendState == SEND_STATE_FAIL) + { + u_det.SendState = SEND_STATE_NONE; + return SEND_STATE_FAIL; + } + + return SEND_STATE_NONE; + +} + + + +//等待时间,以及跳转下一状态 +void HLW8110_ToWaitState(U8_T NextState,U32_T WaitTime) +{ + u_det.State = HLW_WAIT; + u_det.Pub_NextState = NextState; + u_det.Pub_WaitTim = WaitTime; + +} + + +//发送 读/写寄存器状态机 +void BLV_HLW8110_SendData_Tack(void) +{ + static U32_T HLW8110_Sned_Tisk = 0x00; //发送读写寄存器的时间戳 + + switch(u_det.State) + { + case HLW_IDLE: + if(u_det.WR_flag == SEND_R) //读,需要等待回复校验 + { + HLW8110_Sned_Tisk = SysTick_1ms; + u_det.State = HLW_SEND_INIT; + } + else if(u_det.WR_flag == SEND_W) //写,需要先写使能 + { + HLW8110_Sned_Tisk = SysTick_1ms; + u_det.State = HLW_SEND_INIT; + } + break; + case HLW_SEND_INIT: + //发送初始化 + u_det.Resent = 0x00; + u_det.RevNum = 0x00; + + if(u_det.WR_flag == SEND_W){ + HLW8110_WriteREG_EN();//发 写使能,等待20ms+ + HLW8110_ToWaitState(HLW_WTREG,50); + }else{ + HLW8110_ToWaitState(HLW_SEND,50); + } + break; + case HLW_WTREG: + //先写寄存器,写完再读校验 + HLW8110_RWCMD_Send(SEND_W); + HLW8110_Sned_Tisk = SysTick_1ms; + HLW8110_ToWaitState(HLW_SEND,50); + case HLW_SEND: + if(SysTick_1ms - HLW8110_Sned_Tisk >= SEND_TIME) + { + HLW8110_Sned_Tisk = SysTick_1ms; + + if(u_det.Resent < 3) + { + //发送读取寄存器指令 + HLW8110_RWCMD_Send(SEND_R); + u_det.Resent++; + }else{ //没有重发次数,可能有错误,3S等待时间防止频繁操作 + u_det.SendState = SEND_STATE_FAIL; + if(u_det.WR_flag == SEND_W){ + HLW8110_ToWaitState(HLW_WRITE_DIS,3000); + HLW8110_CleanSdFlag(); + }else{ + HLW8110_ToWaitState(HLW_IDLE,3000); + HLW8110_CleanSdFlag(); + } + } + }else{ //有回复且校验成功 + if(Get_RevState() == REV_OK) + { //发送成功 + u_det.SendState = SEND_STATE_SUCC; + HLW8110_Sned_Tisk = SysTick_1ms; + + if(u_det.WR_flag == SEND_W){ + HLW8110_ToWaitState(HLW_WRITE_DIS,50); + HLW8110_CleanSdFlag(); + }else{ + HLW8110_ToWaitState(HLW_IDLE,100); + HLW8110_CleanSdFlag(); + } + } + } + break; + case HLW_WRITE_DIS: + //发 写失能,等待10ms+ + HLW8110_WriteREG_DIS(); + HLW8110_ToWaitState(HLW_IDLE,50); + HLW8110_Sned_Tisk = SysTick_1ms; + break; + case HLW_WAIT: + //公用,等待时间区域 + if(SysTick_1ms - HLW8110_Sned_Tisk >= u_det.Pub_WaitTim) + { //跳出等待区 + u_det.State = u_det.Pub_NextState; + u_det.Pub_NextState = 0x00; + } + break; + } + +} + + +//转换电压值 +F32_T HLW8110_Convert_VoltageReg_Value(U32_T value) +{ + F32_T Conv_Val = 0.0; + + if( (g_CalFactor.U24_Voltage_RegData&0x800000) == 0x800000) + { + //g_Eng.det_ectA = 0x00; + Conv_Val = 0; + } + else + { + Conv_Val = value / 100.0; + Conv_Val = Conv_Val * g_CalFactor.U16_RMSUC_RegData; + Conv_Val = Conv_Val / 0x400000; + Conv_Val = Conv_Val * g_Eng.V_K_Val;//VK_Val; + } + + g_Eng.det_V = (Conv_Val * 100); //单位:10mV + + Dbg_Println(DBG_BIT_Debug_STATUS,"VolReg:%f, %d",Conv_Val,g_CalFactor.U16_RMSUC_RegData); + + return Conv_Val; +} + + +//转换A通道电流值 +F32_T HLW8110_Convert_CurrentRegA_Value(U32_T value) +{ + F32_T Conv_Val = 0.0; + + if( (g_CalFactor.U24_CurrentA_RegData&0x800000) == 0x800000) + { + Conv_Val = 0; + } + else + { + //此处需要换算电流值 + Conv_Val = value / 1000.0; + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIAC_RegData; + Conv_Val = Conv_Val / 0x800; + Conv_Val = Conv_Val / 0x1000; + Conv_Val = Conv_Val * g_Eng.IA_K_Val; + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + } + + g_Eng.det_ectA = (Conv_Val * 100); //单位10mA + + + Dbg_Println(DBG_BIT_Debug_STATUS,"CurReg_A:%f, %d",Conv_Val,g_CalFactor.U16_RMSIAC_RegData); + + return Conv_Val; +} + + +//转换B通道电流值 +F32_T HLW8110_Convert_CurrentRegB_Value(U32_T value) +{ + F32_T Conv_Val = 0.0; + + if( (g_CalFactor.U24_CurrentB_RegData&0x800000) == 0x800000) + { + Conv_Val = 0; + } + else + { + //此处需要换算电流值 + Conv_Val = value / 1000.0; + Conv_Val = Conv_Val * g_CalFactor.U16_RMSIBC_RegData; + Conv_Val = Conv_Val / 0x800; + Conv_Val = Conv_Val / 0x1000; + Conv_Val = Conv_Val * g_Eng.IB_K_Val; + Conv_Val = Conv_Val + g_Eng.I_OffSetVal; + } + + g_Eng.det_ectB = (Conv_Val * 100); //单位10mA + + + Dbg_Println(DBG_BIT_Debug_STATUS,"CurReg_B:%f, %d",Conv_Val,g_CalFactor.U16_RMSIBC_RegData); + + return Conv_Val; +} + + + +//转换A通道有功功率 +F32_T HLW8110_Convert_PowerRegA_Value(U32_T value) +{ + F32_T Conv_Val = 0.0; + + Conv_Val = abs((int)value); + + Conv_Val = Conv_Val / 1.0; //电流系数 + Conv_Val = Conv_Val / 1.0; //电压系数 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPAC_RegData; + Conv_Val = Conv_Val / 0x8000; + Conv_Val = Conv_Val / 0x10000; + Conv_Val = Conv_Val * g_Eng.IA_K_Val * g_Eng.PA_K_Val * g_Eng.V_K_Val; + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + + g_Eng.det_powA = (Conv_Val*1000); //单位:mW + + + Dbg_Println(DBG_BIT_Debug_STATUS,"PowReg_A:%f, %d, %d",Conv_Val,value,g_CalFactor.U16_PowerPAC_RegData); + + return Conv_Val; +} + + +//转换B通道有功功率 +F32_T HLW8110_Convert_PowerRegB_Value(U32_T value) +{ + F32_T Conv_Val = 0.0; + + Conv_Val = abs((int)value); + + Conv_Val = Conv_Val / 1.0; //电流系数 + Conv_Val = Conv_Val / 1.0; //电压系数 + Conv_Val = Conv_Val * g_CalFactor.U16_PowerPBC_RegData; + Conv_Val = Conv_Val / 0x8000; + Conv_Val = Conv_Val / 0x10000; + Conv_Val = Conv_Val * g_Eng.IB_K_Val * g_Eng.PB_K_Val * g_Eng.V_K_Val; + Conv_Val = Conv_Val + g_Eng.P_OffSetVal; + + g_Eng.det_powB = (Conv_Val*1000); //单位:mW + + Dbg_Println(DBG_BIT_Debug_STATUS,"PowReg_B:%f, %d, %d",Conv_Val,value,g_CalFactor.U16_PowerPBC_RegData); + + return Conv_Val; +} + + +//转换A通道电能能耗 +U8_T HLW8110_Convert_EnergyRegA_Value(U32_T value) +{ + F32_T Conv_Val = 0.0; + U32_T EnergyA_RegData_Diff = 0x00; //本次读取电量寄存器值和上次读取到的电量寄存器值的差值 + + if(value > 0xFFFFFF){ + return 0x02; + } + +// Dbg_BT_Println(DBG_BIT_BTDebug_STATUS," valA:%d, Last:%d, SumRg1:%d",value,g_Eng.U32_EnergyA_RegData_LastRecord,g_Eng.U32_EnergyA_RegData); + + if( g_Eng.U32_EnergyA_RegData_LastRecord <= value ) //记录的上次读取的电能寄存器值小于此次读取到的电能寄存器值 + { + EnergyA_RegData_Diff = ( value - (g_Eng.U32_EnergyA_RegData_LastRecord & 0x00FFFFFF) ); + }else { + EnergyA_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyA_RegData_LastRecord ); + } + + + if(EnergyA_RegData_Diff > REG_DEBUG_NUM){ //差值大,不处理 + g_Eng.EnergyA_reset_cnt++; + if(g_Eng.EnergyA_reset_cnt >= REG_DEBUG_CNT){ //连续7次差值过大,复位HLW的IC + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER111"); + g_Eng.EnergyA_reset_cnt = 0x00; + g_Eng.tack_reset_flag = 0x01; + } + + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, retCntA:%d",EnergyA_RegData_Diff,g_Eng.EnergyA_reset_cnt); + return 0x01; + } + + g_Eng.EnergyA_reset_cnt = 0x00; + + g_Eng.U32_EnergyA_RegData_LastRecord = (value & 0xFFFFFF); + g_Eng.U32_EnergyA_RegData += EnergyA_RegData_Diff; + + Conv_Val = g_Eng.U32_EnergyA_RegData / 1.0; + Conv_Val = Conv_Val * g_Eng.IA_K_Val * g_Eng.V_K_Val; + + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyAC_RegData; + Conv_Val = Conv_Val / 0x20000000; + + g_Eng.Total_Eng = (Conv_Val * 1000); //累计值,单位,W/H + +#if DBG_LOG_EN + //2025-12-01, 打印:与上次的差值、寄存器值、电能转换系数(寄存器值不变)、总电能值(单位:W/H) + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, value:%d, EngAC:%d, TolEng:%d, SumEReg2:%d",EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng,g_Eng.U32_EnergyA_RegData); + //蓝牙临时调试信息打印通道 +// Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"dif:%d, val:%d, EngAC:%d, TlE:%d, SumRg2:%d",EnergyA_RegData_Diff, value, g_CalFactor.U16_EnergyAC_RegData, g_Eng.Total_Eng,g_Eng.U32_EnergyA_RegData); +#endif + + //保存总能耗 + SaveFram_TEng(); + + //超过阈值,复位芯片 + if(g_Eng.U32_EnergyA_RegData_LastRecord >= REG_SUM_MAX){ + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER222"); + g_Eng.tack_reset_flag = 0x01; + } + + return 0x00; +} + + + +//转换B通道电能能耗 +U8_T HLW8110_Convert_EnergyRegB_Value(U32_T value) +{ + F32_T Conv_Val = 0.0; + U32_T EnergyB_RegData_Diff = 0x00; //本次读取电量寄存器值和上次读取到的电量寄存器值的差值 + + if(value > 0xFFFFFF){ + return 0x02; + } + +// Dbg_BT_Println(DBG_BIT_BTDebug_STATUS," valB:%d, Last:%d, SumRg1:%d",value,g_Eng.U32_EnergyB_RegData_LastRecord,g_Eng.U32_EnergyB_RegData); + + if( g_Eng.U32_EnergyB_RegData_LastRecord <= value ) //记录的上次读取的电能寄存器值小于此次读取到的电能寄存器值 + { + EnergyB_RegData_Diff = ( value - (g_Eng.U32_EnergyB_RegData_LastRecord & 0x00FFFFFF) ); + }else { + EnergyB_RegData_Diff = ( ((value & 0x00FFFFFF)+ 0x01000000) - g_Eng.U32_EnergyB_RegData_LastRecord ); + } + + if(EnergyB_RegData_Diff > REG_DEBUG_NUM){ //差值大,不处理,要结合硬件修改 + g_Eng.EnergyB_reset_cnt++; + if(g_Eng.EnergyB_reset_cnt >= REG_DEBUG_CNT){ + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER333"); + g_Eng.EnergyB_reset_cnt = 0x00; + g_Eng.tack_reset_flag = 0x01; + } + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, retCntB:%d",EnergyB_RegData_Diff,g_Eng.EnergyB_reset_cnt); + return 0x01; + } + + g_Eng.EnergyB_reset_cnt = 0x00; + + g_Eng.U32_EnergyB_RegData_LastRecord = (value & 0xFFFFFF); + g_Eng.U32_EnergyB_RegData += EnergyB_RegData_Diff; + + Conv_Val = g_Eng.U32_EnergyB_RegData / 1.0; + Conv_Val = Conv_Val * g_Eng.IB_K_Val * g_Eng.V_K_Val; + + Conv_Val = Conv_Val * g_CalFactor.U16_EnergyBC_RegData; + Conv_Val = Conv_Val / 0x20000000; + + g_Eng.Total_Eng_B = (Conv_Val * 1000); //累计值,单位,W/H + +#if DBG_LOG_EN + //2025-12-01, 打印:与上次的差值、寄存器值、电能转换系数、换算总电能值(单位:W/H) + Dbg_Println(DBG_BIT_Debug_STATUS,"diff:%d, value:%d, EngBC:%d, TolEng:%d, SumEReg2:%d",EnergyB_RegData_Diff, value, g_CalFactor.U16_EnergyBC_RegData, g_Eng.Total_Eng_B,g_Eng.U32_EnergyB_RegData); + //蓝牙临时调试信息打印通道 +// Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"dif:%d, val:%d, EngBC:%d, TlE:%d, SumRg2:%d",EnergyB_RegData_Diff, value, g_CalFactor.U16_EnergyBC_RegData, g_Eng.Total_Eng_B,g_Eng.U32_EnergyB_RegData); +#endif + + //保存总能耗 + SaveFram_TEng(); + + //超过阈值,复位芯片 + if(g_Eng.U32_EnergyB_RegData_LastRecord >= REG_SUM_MAX){ + Dbg_Println(DBG_BIT_SYS_STATUS,"RESER444"); + g_Eng.tack_reset_flag = 0x01; + } + + return 0x00; +} + + +//复位HLW8110前,清除各种数据 +void HLW8110_ClearFlag(void) +{ + g_Eng.EnergyA_reset_cnt = 0x00; + g_Eng.EnergyB_reset_cnt = 0x00; + g_Eng.U32_EnergyA_RegData_LastRecord = 0x00; + g_Eng.U32_EnergyB_RegData_LastRecord = 0x00; + +} + + +//接收处理 +U8_T HLW8110_RecvData_Processing(U8_T *RecvData,U16_T RecvLen) +{ + //必定有1校验+1数据 + if((RecvLen < 0x02)||(RecvLen > 0x05) ) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Len0 Err:%d",RecvLen); + return 0x01; + } + + if(u_det.WR_flag == SEND_NONE) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Not Tack "); + return 0x02; + } + + memset(u_det.RevBuff,0,REV_BUFFER_SIZE); //清零接收缓冲 + u_det.RevLen = 0; + + memcpy(u_det.RevBuff,u_det.SendBuff,2); //发送的帧头、地址 + u_det.RevLen += 2; + u_det.RevBuff[1] = (u_det.RevBuff[1]&0x7f ); + + memcpy(&u_det.RevBuff[2],RecvData,RecvLen); //接收的数据位校验位 + u_det.RevLen += RecvLen; + + + //接收数据长度限制 + switch(u_det.RevBuff[1]) + { + case REG_SYSCON_ADDR: + case REG_EMUCON1_ADDR: + case REG_EMUCON2_ADDR: + case REG_CHECKSUM_ADDR: + case REG_RMS_IAC_ADDR: + case REG_RMS_IBC_ADDR: + case REG_RMS_UC_ADDR: + case REG_POWER_PAC_ADDR: + case REG_POWER_PBC_ADDR: + case REG_POWER_SC_ADDR: + case REG_ENERGY_AC_ADDR: + case REG_ENERGY_BC_ADDR: + case REG_HFCONST_ADDR: + if(RecvLen != 0x03){ + Dbg_Println(DBG_BIT_SYS_STATUS,"Len 3 Err:%d",RecvLen); + return 0x03; + } + break; + case REG_RMSU_ADDR: + case REG_RMSIA_ADDR: + case REG_ENERGY_PA_ADDR: + case REG_RMSIB_ADDR: + case REG_ENERGY_PB_ADDR: + if(RecvLen != 0x04){ + Dbg_Println(DBG_BIT_SYS_STATUS,"Len 4 Err:%d",RecvLen); + return 0x03; + } + break; + case REG_POWER_PA_ADDR: + case REG_POWER_PB_ADDR: + if(RecvLen != 0x05){ + Dbg_Println(DBG_BIT_SYS_STATUS,"Len 5 Err:%d",RecvLen); + return 0x03; + } + break; + default: + + break; + } + + + if(HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1) != RecvData[RecvLen-1]) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"CRC Err:%x,%x,CMD:%02x",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); +// Dbg_BT_Println(DBG_BIT_BTDebug_STATUS,"CRC Err:%x,%x, CMD:%02x->",HLW8110_CheckSum(u_det.RevBuff,u_det.RevLen-1),RecvData[RecvLen-1],u_det.RevBuff[1]); + u_det.RevNum = REV_ERR; + return 0x04; + }else{ + //读寄存器校验成功。 + u_det.RevNum = REV_OK; + } + + //解析指令 + Dbg_Println(DBG_BIT_Debug_STATUS,"HLW_Recv CMD:%02X",u_det.RevBuff[1]); +// Dbg_Print_Buff(DBG_BIT_Debug_STATUS,"111",u_det.RevBuff,u_det.RevLen); + + switch(u_det.RevBuff[1]) + { + /*******************************<----- 系统寄存器 ----->**********************************************/ + case REG_SYSCON_ADDR: //系统控制寄存器 + g_CalFactor.U16_Check_SysconReg_Data = ( (RecvData[0]<<8) + RecvData[1] ); + if(g_CalFactor.U16_Check_SysconReg_Data == SYSCON_DEFAULT){ + u_det.RevNum = REV_OK; //写寄存器后的回读校验 + }else{ + u_det.RevNum = REV_ERR; + } + break; + case REG_EMUCON1_ADDR: //写计量控制寄存器1 + g_CalFactor.U16_Check_Emucon1Reg_Data = ( (RecvData[0]<<8) + RecvData[1] ); + if(g_CalFactor.U16_Check_Emucon1Reg_Data == EMUCON1_DEFAULT){ + u_det.RevNum = REV_OK; + }else{ + u_det.RevNum = REV_ERR; + } + break; + case REG_EMUCON2_ADDR: //计量控制寄存器2 + g_CalFactor.U16_Check_Emucon2Reg_Data = ( (RecvData[0]<<8) + RecvData[1] ); + if(g_CalFactor.U16_Check_Emucon2Reg_Data == EMUCON2_DEFAULT){ + u_det.RevNum = REV_OK; + }else{ + u_det.RevNum = REV_ERR; + } + break; + /***********************************<----- 系数寄存器 ----->**********************************************/ + case REG_CHECKSUM_ADDR: //校表系数校验和 + g_CalFactor.U16_CheckSUM_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_RMS_IAC_ADDR: //电流通道A有效值转换系数 + g_CalFactor.U16_RMSIAC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_RMS_IBC_ADDR: //电流通道B有效值转换系数 + g_CalFactor.U16_RMSIBC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_RMS_UC_ADDR: //电压通道U有效值转换系数 + g_CalFactor.U16_RMSUC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_POWER_PAC_ADDR: //电流通道A有功功率转换系数 + g_CalFactor.U16_PowerPAC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_POWER_PBC_ADDR: //电流通道B有功功率转换系数 + g_CalFactor.U16_PowerPBC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_POWER_SC_ADDR: //视在功率转换系数 + g_CalFactor.U16_PowerSC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_ENERGY_AC_ADDR: //A通道能量转换系数 + g_CalFactor.U16_EnergyAC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_ENERGY_BC_ADDR: //B通道能量转换系数 + g_CalFactor.U16_EnergyBC_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + break; + case REG_HFCONST_ADDR: //脉冲常量 + g_CalFactor.U16_HFConst_RegData = ( (RecvData[0]<<8) + RecvData[1] ); + g_Eng.hfcount = g_CalFactor.U16_HFConst_RegData; + break; + /***********************************<----- 采集电能相关寄存器 ----->**********************************************/ + case REG_RMSU_ADDR: //电压有效值 + g_CalFactor.U24_Voltage_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + + HLW8110_Convert_VoltageReg_Value(g_CalFactor.U24_Voltage_RegData); + break; + case REG_RMSIA_ADDR: //通道A电流有效值 + g_CalFactor.U24_CurrentA_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + + HLW8110_Convert_CurrentRegA_Value(g_CalFactor.U24_CurrentA_RegData); + break; + case REG_ENERGY_PA_ADDR: //通道A有功电能 + g_CalFactor.U24_EnergyA_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + + HLW8110_Convert_EnergyRegA_Value(g_CalFactor.U24_EnergyA_RegData); + break; + case REG_POWER_PA_ADDR: //通道A有功功率 + g_CalFactor.U32_PowerA_RegData = ( (RecvData[0]<<24) + (RecvData[1]<<16) + (RecvData[2]<<8) + RecvData[3] ); + + HLW8110_Convert_PowerRegA_Value(g_CalFactor.U32_PowerA_RegData); + break; + case REG_RMSIB_ADDR: //通道B电流 + g_CalFactor.U24_CurrentB_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + + HLW8110_Convert_CurrentRegB_Value(g_CalFactor.U24_CurrentB_RegData); + break; + case REG_ENERGY_PB_ADDR: //通道B有功电能 + g_CalFactor.U24_EnergyB_RegData = ( (RecvData[0]<<16) + (RecvData[1]<<8) + RecvData[2] ); + + HLW8110_Convert_EnergyRegB_Value(g_CalFactor.U24_EnergyB_RegData); + break; + case REG_POWER_PB_ADDR: //通道B有功功率 + g_CalFactor.U32_PowerB_RegData = ( (RecvData[0]<<24) + (RecvData[1]<<16) + (RecvData[2]<<8) + RecvData[3] ); + + HLW8110_Convert_PowerRegB_Value(g_CalFactor.U32_PowerB_RegData); + break; + default: + break; + } + + return 0x00; + +} + +//系数寄存器内容校验 +U16_T HLW8110_SysPara_Check(HLW8110_REG *g_CC) +{ + U16_T CRC_p = 0x00; + + CRC_p = ~(0xffff+g_CC->U16_RMSIAC_RegData + g_CC->U16_RMSIBC_RegData + g_CC->U16_RMSUC_RegData + + g_CC->U16_PowerPAC_RegData + g_CC->U16_PowerPBC_RegData + g_CC->U16_PowerSC_RegData + + g_CC->U16_EnergyAC_RegData + g_CC->U16_EnergyBC_RegData ); + CRC_p = (CRC_p&0xFFFF); + + return CRC_p; +} + + + + + +//系统系数读取 +void HLW8110_ReadSysPara(void) +{ + static U32_T HLW8110_Reset_Tack = 0x00; + + switch(g_Eng.rWCh_Num) + { + case 0x00: + HLW8110_Reset_Tack = SysTick_1ms; + g_Eng.rWCh_Num = 0x01; + HLW8110_Reset(); + break; + case 0x01: + if(SysTick_1ms - HLW8110_Reset_Tack >= 1000) //复位HLW8110时间 + { + HLW8110_Reset_Tack = SysTick_1ms; + g_Eng.rWCh_Num = 0x02; + } + break; + case 0x02: //读电流通道A有效值转换系数 + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWCh_Num = 0x03; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IAC_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IAC_ADDR,0,0); + break; + } + break; + case 0x03: + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWCh_Num = 0x04; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWCh_Num = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_IBC_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_RMS_IBC_ADDR,0,0); + break; + } + break; + case 0x04: + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWCh_Num = 0x05; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWCh_Num = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMS_UC_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_RMS_UC_ADDR,0,0); + break; + } + break; + case 0x05: + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWCh_Num = 0x06; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWCh_Num = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PAC_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PAC_ADDR,0,0); + break; + } + break; + case 0x06: + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWCh_Num = 0x07; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWCh_Num = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PBC_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PBC_ADDR,0,0); + break; + } + break; + case 0x07: + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWCh_Num = 0x08; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWCh_Num = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_SC_ADDR ERR!"); + break; + } + + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_POWER_SC_ADDR,0,0); + break; + } + break; + case 0x08: + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWCh_Num = 0x09; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWCh_Num = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_AC_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_AC_ADDR,0,0); + break; + } + break; + case 0x09: + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWCh_Num = 0x0A; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWCh_Num = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_BC_ADDR ERR!"); + break; + } + + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_BC_ADDR,0,0); + break; + } + break; + case 0x0A: //校表系数校验和 + if(Get_SendState() == SEND_STATE_SUCC) + { + if(g_CalFactor.U16_CheckSUM_RegData == HLW8110_SysPara_Check(&g_CalFactor)) + { + //校验系数成功 + //状态机,读完所有系数切换读取系数寄存器读取完到下一状态,记录到flash + g_Eng.rWCh_Num = 0x00; + g_Eng.Tack_State = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK SUCC!"); + break; + } + else + { + g_Eng.rWCh_Num = 0x00; + // g_Eng.Tack_State = 0x02; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECK ERR:%x,%x",g_CalFactor.U16_CheckSUM_RegData,HLW8110_SysPara_Check(&g_CalFactor)); + break; + } + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_CHECKSUM Read ERR!"); + break; + } + + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_CHECKSUM_ADDR,0,0); + break; + } + break; + default: + g_Eng.rWCh_Num = 0x00; + g_Eng.Tack_State = 0x01; + break; + } + +} + +//写系统控制、计量控制寄存器 +void HLW8110_ReadSysCtrlPara(void) +{ + switch(g_Eng.rWSysCtrl) + { + case 0x00: //写系统控制寄存器 + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWSysCtrl = 0x01; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_SYSCON_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_SYSCON_ADDR,2,SYSCON_DEFAULT); + break; + } + break; + case 0x01: //写计量控制寄存器1 + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWSysCtrl = 0x02; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWSysCtrl = 0x00; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON1_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON1_ADDR,2,EMUCON1_DEFAULT); + break; + } + break; + case 0x02: //写计量控制寄存器2 + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWSysCtrl = 0x03; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWSysCtrl = 0x00; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_EMUCON2_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_EMUCON2_ADDR,2,EMUCON2_DEFAULT); + break; + } + break; + case 0x03: //读取HFCONST常数,如果要使用就调整到此处 + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rWSysCtrl = 0x00; + g_Eng.Tack_State = 0x03; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rWSysCtrl = 0x00; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_HFCONST_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_HFCONST_ADDR,0,0); + break; + } + break; + default: + g_Eng.rWSysCtrl = 0x00; + g_Eng.Tack_State = 0x02; + break; + } +} + +//读取电压电流有效值寄存器 +void HLW8110_ReadValue(void) +{ + static U32_T Wait_ReadValue_Tisk = 0x00; + + switch(g_Eng.rDValue_State) + { + case READ_IDLE: //等待时间 + if(SysTick_1ms - Wait_ReadValue_Tisk >= g_Eng.Collect_Tim) //S读取一次 + { + Wait_ReadValue_Tisk = SysTick_1ms; + + g_Eng.rDValue_State = READ_U; + Dbg_Println(DBG_BIT_SYS_STATUS,"StartColl:%d",Wait_ReadValue_Tisk); + } + break; + case READ_U: //读取电压寄存器 + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rDValue_State = READ_IA; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rDValue_State = READ_IDLE; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSU_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_RMSU_ADDR,0,0); + } + break; + case READ_IA: //读取A通道电流 + Wait_ReadValue_Tisk = SysTick_1ms; + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rDValue_State = READ_IB; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rDValue_State = READ_IDLE; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIA_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_RMSIA_ADDR,0,0); + } + break; + case READ_IB: //读取B通道电流 + Wait_ReadValue_Tisk = SysTick_1ms; + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rDValue_State = READ_EA; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rDValue_State = READ_IDLE; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_RMSIB_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_RMSIB_ADDR,0,0); + } + break; + case READ_EA: //读取A通道有功电量寄存器 + if(Get_SendState() == SEND_STATE_SUCC) + { + + g_Eng.rDValue_State = READ_EB; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rDValue_State = READ_IDLE; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PA_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PA_ADDR,0,0); + } + break; + case READ_EB: //读取B通道有功电量寄存器 + if(Get_SendState() == SEND_STATE_SUCC) + { + + g_Eng.rDValue_State = READ_PA; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rDValue_State = READ_IDLE; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_ENERGY_PB_ADDR ERR!"); + break; + } + + + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_ENERGY_PB_ADDR,0,0); + } + break; + case READ_PA: //读取A通道有功功率寄存器 + if(Get_SendState() == SEND_STATE_SUCC) + { + g_Eng.rDValue_State = READ_PB; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rDValue_State = READ_IDLE; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PA_ADDR ERR!"); + break; + } + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PA_ADDR,0,0); + } + break; + case READ_PB: //读取B通道有功功率寄存器 + if(Get_SendState() == SEND_STATE_SUCC) + { + GetEnergy_Para(); + g_Eng.rDValue_State = READ_IDLE; + break; + } + else if(Get_SendState() == SEND_STATE_FAIL) + { + g_Eng.rDValue_State = READ_IDLE; + Dbg_Println(DBG_BIT_SYS_STATUS,"REG_POWER_PB_ADDR ERR!"); + break; + } + + //当前没有发送任务 + if(u_det.WR_flag == SEND_NONE) + { + BLV_HLW8110_RWCMD_Packaging(REG_POWER_PB_ADDR,0,0); + } + break; + default: + break; + + } +} + +//HLW8110能耗执行任务 +void BLV_HLW8110_Tack(void) +{ + //初始化1、2、3 + //1、读取系数寄存器的参数,比对,存入flash + //2、设置系统控制寄存器、计量控制寄存器1、计量控制寄存器2 + + //3、开始读取电压电流有效值(定时采集) + static U32_T HLW_State_Tisk = 0x00; + + + switch(g_Eng.Tack_State) + { + case 0x00: //待机或定时,开机1000ms不设置 + if(SysTick_1ms - HLW_State_Tisk > 1000) + { + HLW_State_Tisk = SysTick_1ms; + g_Eng.Tack_State = 0x01; + } + break; + case 0x01: //读取系数寄存器的参数 + HLW8110_ReadSysPara(); + break; + case 0x02: //设置系统控制寄存器 + HLW8110_ReadSysCtrlPara(); + break; + case 0x03: //开始读取电压电流有效值 + //定时读取电压、电流,时间可设置 + HLW8110_ReadValue(); + + //标志位成立,复位HLW8112芯片 + if(g_Eng.tack_reset_flag == 0x01) + { + g_Eng.tack_reset_flag = 0x00; + + HLW8110_ClearFlag(); + HLW_State_Tisk = SysTick_1ms; + g_Eng.Tack_State = 0x01; + + } + + break; + default: + + break; + } + +} + +//打印采集数据 +void GetEnergy_Para(void) +{ + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_V :%d /10mV",g_Eng.det_V); + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_IA:%d, IB:%d /10mA",g_Eng.det_ectA,g_Eng.det_ectB); + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_PA:%d, PB:%d /mW",g_Eng.det_powA,g_Eng.det_powB); + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_EA:%d, EB:%d /W/h",(g_Eng.Total_Eng - g_Eng.LastPhase_Eng),(g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B) ); + Dbg_Println(DBG_BIT_SYS_STATUS,"HLWTEA:%d, TEB:%d /W/h",g_Eng.Total_Eng,g_Eng.Total_Eng_B); + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW_HF:%d",g_Eng.hfcount); +} + + + +//电能参数处理,主动上报标志、定时存储总电能 +void BLV_ElectricPara_Processing(void) +{ + static U32_T Eng_Save_Tim = 0x00; + static U8_T WriteEng_rev = 0x00; + + + //2、定时上报 + if( (g_Dip.Dev_Port == Active_Port)&&(SysTick_1ms - g_Eng.Eng_Report_Tim >= g_Eng.Report_Tim) ) + { + g_Eng.Eng_Report_Tim = SysTick_1ms; + + BLV_Energy_PassiveRep_Packing(0x01); + } + +} + + +//组包发送,用于蓝牙设置的回复 +U8_T BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag) +{ + if(flag <= 3 ) return 0x01; + + U8_T BT_Len = len; + + if(BT_Len > 20){ + BT_Len = 20; + } + + memset(g_Eng.BT_SdBuff,0,20); + memcpy(g_Eng.BT_SdBuff, data, BT_Len); + g_Eng.BT_SdLen = BT_Len; + + g_Eng.BT_SendFlag |= (0x01 << flag); + + return 0x00; +} + + + +//蓝牙打印调试 +void BT_UART_Print(void) +{ + static U32_T BT_State = 0x00; + static U32_T BT_WaitOutTim = 0x00; + static U32_T BT_Print_Tim = 0x00; + + if( ((Dbg_Switch&0x08) != 0x00)&&(SysTick_1ms - g_Eng.BT_Print_valid >= 180000) ) + { + g_Eng.BT_Print_valid = SysTick_1ms; + + Dbg_Switch &= (~0x08); + } + + + for(U8_T i = 10;i > 3;i--) + { + if( (g_Eng.BT_SendFlag & (0x01 << i )) != 0x00 ) + { + BT_State = i; + break; + } + } + + if(SysTick_1ms - BT_Print_Tim >= 150) + { + BT_Print_Tim = SysTick_1ms; + switch(BT_State) + { + case 0x00: + BT_State = 0x01; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"V:%dmV",g_Eng.det_V*10); + break; + case 0x01: + BT_State = 0x02; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"I:%d,%dmA",(g_Eng.det_ectA*10),(g_Eng.det_ectB*10)); + break; + case 0x02: + BT_State = 0x03; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"P:%d,%dmW",g_Eng.det_powA,g_Eng.det_powB); + break; + case 0x03: + BT_State = 0x04; + BT_WaitOutTim = SysTick_1ms; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"E:%d,%d",(g_Eng.Total_Eng - g_Eng.LastPhase_Eng),(g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B)); + break; + case 0x04: + BT_State = 0x05; + BT_WaitOutTim = SysTick_1ms; + Dbg_BT_Println(DBG_BIT_BT_STATUS,"T:%d,%d",g_Eng.Total_Eng,g_Eng.Total_Eng_B); + break; + case 0x05: + if(SysTick_1ms - BT_WaitOutTim >= 3000) + { + BT_WaitOutTim = SysTick_1ms; + BT_State = 0x00; + } + break; + case REG_BTDEBUG_FLAG: + g_Eng.BT_SendFlag &= (~(0x01 << REG_BTDEBUG_FLAG)); + + BT_State = 0x05; + BT_WaitOutTim = SysTick_1ms; + DBG_BTPrintf(g_Eng.BT_SdBuff,g_Eng.BT_SdLen ); + break; + default: + g_Eng.BT_SendFlag &= (~0xFFE0); + BT_State = 0x03; + break; + } + + } +} + +//能耗检测总任务函数 +void BLV_EngDetect_Tack(void) +{ + //1、HLW初始化设置、读取 + BLV_HLW8110_Tack(); + + //2、HLW发送命令状态机 + BLV_HLW8110_SendData_Tack(); + + //3、保存、上报任务 + BLV_ElectricPara_Processing(); + + //4、蓝牙打印 + BT_UART_Print(); + +} + + + + + + + +//电参数查询回复组包 +void BLV_Energy_PassiveRep_Packing(U8_T cmd) +{ + U8_T send_data[50] = {0}; + U16_T send_len = 0x00; + U32_T Energy_A_Rep = 0,Energy_B_Rep = 0; + + Energy_A_Rep = g_Eng.Total_Eng - g_Eng.LastPhase_Eng; + Energy_B_Rep = g_Eng.Total_Eng_B - g_Eng.LastPhase_Eng_B; + + + g_Eng.SdSN++; + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + + send_data[send_len++] = ENERGY_HEAD; //帧 + send_data[send_len++] = g_Eng.SdSN; //sn; + send_data[send_len++] = DEV_TYPE; //type + send_data[send_len++] = g_Dip.addr; + send_data[send_len++] = 0x00; //LEN + send_data[send_len++] = 0x00; //sum + send_data[send_len++] = cmd; //cmd,0x01:主动上报,0x02:轮询回复 + + send_data[send_len++] = 0x03; //采集通道,一个bit置1代表一个通道 + + send_data[send_len++] = ( (g_Eng.det_V) & 0xff); + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = ( g_Eng.det_ectA & 0xff); + send_data[send_len++] = ((g_Eng.det_ectA >> 8) & 0xff); + + send_data[send_len++] = ( g_Eng.det_powA & 0xff); + send_data[send_len++] = ((g_Eng.det_powA >> 8) & 0xff); + send_data[send_len++] = ((g_Eng.det_powA >> 16) & 0xff); + send_data[send_len++] = ((g_Eng.det_powA >> 24) & 0xff); + + send_data[send_len++] = ( Energy_A_Rep & 0xff); + send_data[send_len++] = ((Energy_A_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_A_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_A_Rep>> 24) & 0xff); + + send_data[send_len++] = ( g_Eng.Total_Eng & 0xff); + send_data[send_len++] = ((g_Eng.Total_Eng >> 8) & 0xff); + send_data[send_len++] = ((g_Eng.Total_Eng >> 16) & 0xff); + send_data[send_len++] = ((g_Eng.Total_Eng >> 24) & 0xff); + + + /*** B通道 ***/ + send_data[send_len++] = ( (g_Eng.det_V) & 0xff); + send_data[send_len++] = (((g_Eng.det_V)>>8) & 0xff); + + send_data[send_len++] = ( g_Eng.det_ectB & 0xff); + send_data[send_len++] = ((g_Eng.det_ectB >> 8) & 0xff); + + send_data[send_len++] = ( g_Eng.det_powB & 0xff); + send_data[send_len++] = ((g_Eng.det_powB >> 8) & 0xff); + send_data[send_len++] = ((g_Eng.det_powB >> 16) & 0xff); + send_data[send_len++] = ((g_Eng.det_powB >> 24) & 0xff); + + send_data[send_len++] = ( Energy_B_Rep & 0xff); + send_data[send_len++] = ((Energy_B_Rep>> 8) & 0xff); + send_data[send_len++] = ((Energy_B_Rep >> 16) & 0xff); + send_data[send_len++] = ((Energy_B_Rep>> 24) & 0xff); + + send_data[send_len++] = ( g_Eng.Total_Eng_B & 0xff); + send_data[send_len++] = ((g_Eng.Total_Eng_B >> 8) & 0xff); + send_data[send_len++] = ((g_Eng.Total_Eng_B >> 16) & 0xff); + send_data[send_len++] = ((g_Eng.Total_Eng_B >> 24) & 0xff); + + + send_data[send_len++] = ENERGY_TAIL; //帧尾 + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + + if(cmd == 0x02){ + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //轮询回复组包 + }else if(cmd == 0x01){ + Set_GroupSend(send_data,send_len,BUSSendCnt1,BUSSend_WaitTime2,BUSSend_Tick); //主动上报组包 + } + + +} + +//MCU设置周期 +U8_T BLV_Energy_SetTime_Packing(U8_T *data,U16_T lens) +{ + if(lens < 18) return 0x01; + + U32_T temp_T = 0; + + if( ( (data[7])&0x01) == 0x01) + { + temp_T = (data[11]<<24) + (data[10]<<16) + (data[9]<<8) + data[8]; + if(temp_T >= 1000){ + g_Eng.Collect_Tim = temp_T; + } + } + + if(data[12] == 0x00) + { + g_Dip.Dev_Port = Passive_Port; + } + else{ + g_Dip.Dev_Port = Active_Port; + } + + if( ((data[7] >> 1)&0x01) == 0x01) + { + temp_T = (data[16]<<24) + (data[15]<<16) + (data[14]<<8) + data[13]; + if(temp_T >= 1000){ + g_Eng.Report_Tim = temp_T; + } + } + + //保存参数 + EEPROM_ENERGY_Validate(); + + //数据原样返回 + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + BT_Uart_Packing(data,lens,REG_BTDEBUG_FLAG); + + return 0x00; +} + +//版本查询回复组包 +void BLV_Energy_QueryVersion_Packing(void) +{ + U8_T send_data[50] = {0}; + U16_T send_len = 0x00; + + g_Eng.SdSN++; + if(g_Eng.SdSN > 0x0F) g_Eng.SdSN = 0x00; + + send_data[send_len++] = ENERGY_HEAD; + send_data[send_len++] = g_Eng.SdSN; //sn; + send_data[send_len++] = DEV_TYPE; //type + send_data[send_len++] = g_Dip.addr; + send_data[send_len++] = 0x00; //LEN + send_data[send_len++] = 0x00; //sum + + send_data[send_len++] = 0x04; //cmd + + send_data[send_len++] = Project_FW_Version; + send_data[send_len++] = Project_HW_Version; + send_data[send_len++] = g_Dip.Dev_Port; + + send_data[send_len++] = ENERGY_TAIL; + + send_data[4] = send_len; + send_data[5] = HLW8110_CheckSum(send_data,send_len); + + Set_GroupSend(send_data,send_len,1,BUSSend_WaitTime1,50); //组包 + BT_Uart_Packing(send_data,send_len,REG_BTDEBUG_FLAG); +} + + +//串口设置硬件校准系数 +U8_T SetCalibFactor_Switch(U8_T ch,F32_T value) +{ + switch(ch) + { + case 0x00: + g_Eng.V_K_Val = value; + break; + case 0x01: + g_Eng.IA_K_Val = value; + break; + case 0x02: + g_Eng.IB_K_Val = value; + break; + case 0x03: + g_Eng.PA_K_Val = value; + break; + case 0x04: + g_Eng.PB_K_Val = value; + break; + default: + break; + } + return 0; +} + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor(U8_T *data,U16_T lens) +{ + if(lens < 10) return 0x01; + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x04) return 0x02; + if(temp_num > 5) + { + temp_num = 5; + } + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + + Set_GroupSend(data,lens,1,BUSSend_WaitTime1,20); //组包 + + return 0x00; +} + +//设置硬件校准值 +U8_T BLV_Energy_SetCalibFactor_2(U8_T *data,U16_T lens) +{ + if(lens < 10) return 0x01; + + F32_T temp_T = 0.0; + + U8_T ctrl_num = ((data[7])&0xff); + U8_T temp_num = ((data[8])&0xff); + + if( ctrl_num > 0x05) return 0x02; + if(temp_num > 3) + { + temp_num = 3; + } + + for(U8_T i = 0;i< temp_num;i++) + { + temp_T = 0.0; + temp_T = ( data[(i*3+9)] + (data[(i*3+10)]<<8) + (data[(i*3+11)]<<16) ); + temp_T /= 100000.0; + SetCalibFactor_Switch(ctrl_num+i,temp_T); + } + + //保存参数 + EEPROM_ENERGY_Validate(); + + //数据原样返回 + BT_Uart_Packing(data,lens,REG_BTDEBUG_FLAG); //蓝牙发送 + + return 0x00; +} + + +//485处理函数 +U8_T BLV_485Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + + if(RecvLen < 8){ + return 0x01; + } + + if(RecvData[4] != RecvLen){ + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Data Len Error",__func__); + return 0x02; + } + + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Head Error",__func__); + return 0x03; + } + + if(RecvData[2] != DEV_TYPE){// + Dbg_Println(DBG_BIT_SYS_STATUS,"%s TYPE Error",__func__); + return 0x04; + } + + if(RecvData[3] != g_Dip.addr){// + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error",__func__); + return 0x05; + } + + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + return 0x06; + } + + g_Eng.SdSN = RecvData[1]; //序列号 + + //解析指令 + Dbg_Println(DBG_BIT_SYS_STATUS,"HLW8110_Recv CMD:%02X",RecvData[6]); + switch(RecvData[6]) + { + case 0x01: //主动上报的回复 + Clear_SendFlag(); + break; + case 0x02: //查询 + BLV_Energy_PassiveRep_Packing(0x02); + break; + case 0x3: //设置采集周期 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + break; + case 0x04: //查询版本号 + BLV_Energy_QueryVersion_Packing(); + break; + case 0x13: //清零上报能耗 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + g_Eng.LastPhase_Eng_B = g_Eng.Total_Eng_B; + + g_Eng.Eng_Report_Tim = SysTick_1ms; + + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + break; + case 0x14: //清零总能耗 + + g_Eng.Total_Eng = 0; + g_Eng.U32_EnergyA_RegData = 0x00; + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + + g_Eng.Total_Eng_B = 0; + g_Eng.U32_EnergyB_RegData = 0x00; + g_Eng.LastPhase_Eng_B = g_Eng.Total_Eng_B; + + memset(&g_engfram,0,sizeof(FRAM_ENG_t)); + FRAM_WriteTotalEng(&g_engfram); + + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + break; + case 0x15: //设置校准系数 + BLV_Energy_SetCalibFactor(RecvData,RecvLen); + break; + case 0x21: //开关打印信息 + Dbg_Switch = (RecvData[7]&0x1f); + Set_GroupSend(RecvData,RecvLen,1,BUSSend_WaitTime1,20); //组包 + g_Eng.BT_Print_valid = SysTick_1ms; + break; + default: + return 0x01; + break; + } + + return 0; +} + + + +//BT处理函数 +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen) +{ + if(RecvLen < 8){ + Dbg_BT_Println(DBG_BIT_BT_STATUS,"LenMaxErr:%d",RecvLen); + return 0x01; + } + + if(RecvData[4] != RecvLen){ + Dbg_BT_Println(DBG_BIT_BT_STATUS,"Len1Err:%d",RecvLen); + return 0x02; + } + + if( (RecvData[0] != ENERGY_HEAD) || (RecvData[RecvLen -1] != ENERGY_TAIL) ){ + Dbg_BT_Println(DBG_BIT_BT_STATUS,"HeadErr"); + return 0x03; + } + + if(RecvData[2] != DEV_TYPE){// + Dbg_BT_Println(DBG_BIT_BT_STATUS,"TYPEErr"); + return 0x04; + } + + if(RecvData[3] != g_Dip.addr){// + Dbg_BT_Println(DBG_BIT_BT_STATUS,"AddrErr"); + return 0x05; + } + + if( HLW8110_CheckSum(RecvData,RecvLen) != 0x00 ){ + Dbg_BT_Println(DBG_BIT_BT_STATUS,"CheckErr"); + return 0x06; + } + + g_Eng.SdSN = (RecvData[1]&0x0F); //序列号 + + //解析指令 + //Dbg_BT_Println(DBG_BIT_BT_STATUS,"Recv CMD:%02X",RecvData[6]); + switch(RecvData[6]) + { + case 0x02: //查询 + //BLV_Energy_PassiveRep_Packing(); + break; + case 0x3: //设置采集周期 + BLV_Energy_SetTime_Packing(RecvData,RecvLen); + break; + case 0x04: //查询版本号 + BLV_Energy_QueryVersion_Packing(); + break; + case 0x13: //清零上报能耗 + g_Eng.LastPhase_Eng = g_Eng.Total_Eng; + g_Eng.LastPhase_Eng_B = g_Eng.Total_Eng_B; + g_Eng.Eng_Report_Tim = SysTick_1ms; + BT_Uart_Packing(RecvData,RecvLen,REG_BTDEBUG_FLAG); + break; + case 0x15: //设置校准系数 + BLV_Energy_SetCalibFactor_2(RecvData,RecvLen); + break; + case 0x21: //开启打印 + if( (RecvData[7]&0x08) != 0x00 ){ + Dbg_Switch |= 0x08; + g_Eng.BT_Print_valid = SysTick_1ms; + }else{ + Dbg_Switch &= (~0x08); + } + BT_Uart_Packing(RecvData,RecvLen,REG_BTDEBUG_FLAG); + break; + default: + return 0x01; + break; + } + + return 0; +} + + diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/dip_switch.c b/BLV_CS_AC100_V05/Source/SYSTEM/dip_switch.c new file mode 100644 index 0000000..60aa0ff --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/dip_switch.c @@ -0,0 +1,106 @@ +#include "includes.h" + +DIP_t g_Dip; + +void DIP_Switch_Init(void){ + + GPIO_Init(GPIOA0,10,Intput); + GPIO_Init(GPIOA0,9,Intput); + GPIO_Init(GPIOA0,8,Intput); + + + GPIO_PullHigh_Init(GPIOA0,10); + GPIO_PullHigh_Init(GPIOA0,9); + GPIO_PullHigh_Init(GPIOA0,8); + + memset(&g_Dip,0,sizeof(DIP_t)); + + delay_nms(20); + + /*上电读取拨码状态*/ + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + if(DIP_GetSwitchState(i) == DIP_PRESS){ + g_Dip.DIP_val |= DIP_VAL_ON << i; + } + } + + g_Dip.DIP_last_val = g_Dip.DIP_val; + g_Dip.addr = g_Dip.DIP_val & 0x07; + g_Dip.Dev_Port = Passive_Port; + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr %d,DevPort:%d",g_Dip.DIP_val,g_Dip.Dev_Port); +} + +U8_T DIP_GetSwitchState(U8_T i){ + U8_T val = 0; + + switch (i) + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOA0,10); + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOA0,9); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOA0,8); + break; + + } + return val; +} + +void DIP_ScanTask(void) +{ + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + { + update_20ms = SysTick_1ms; + + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + { + if (DIP_GetSwitchState(i) == DIP_PRESS) + { + g_Dip.delayCnt_OFF[i] = 0; + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + { + g_Dip.delayCnt_ON[i]++; + } + else + { + g_Dip.DIP_val |= (DIP_VAL_ON << i); + g_Dip.delayCnt_ON[i] = 0; + } + } + else + { + g_Dip.delayCnt_ON[i] = 0; + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + { + g_Dip.delayCnt_OFF[i]++; + } + else + { + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + g_Dip.delayCnt_OFF[i] = 0; + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + { + g_Dip.DIP_last_val = g_Dip.DIP_val; + + /*拨码开关 - Bit0~Bit3:设备地址*/ + g_Dip.addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Scan %d",g_Dip.addr); + } + +} + + + diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/eeprom.c b/BLV_CS_AC100_V05/Source/SYSTEM/eeprom.c new file mode 100644 index 0000000..55d43e8 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/eeprom.c @@ -0,0 +1,685 @@ +#include "includes.h" + +E_MCU_DEV_INFO g_mcu_dev; +ENERGY_SAVE_PARA e_save; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + U8_T data_sum = 0; + + for(U16_T i = 0;iMR |= 0x10002; //高速模式,延迟 2 个周期 + + delay_nms(10); + + + //// 0、读取boot设备相关信息 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read MCU_DEV <*****************/"); + memset(&g_mcu_dev,0,sizeof(E_MCU_DEV_INFO)); + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + if(g_Dip.addr != g_mcu_dev.dev_addr){ + g_mcu_dev.dev_addr = g_Dip.addr; + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + } + + if(rev == 0x00){ + //读取成功,开始校验以下参数 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + }else{ + //读取失败,恢复默认参数 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE Use Defalut Para"); + + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); +#endif + } + + + ////// 1、读取电能参数 + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Init Read EngPara <*****************/"); + memset(&e_save,0,sizeof(ENERGY_SAVE_PARA)); + eng_rev = EEOROM_ENERGY_ReadSet(&e_save); //电能检测参数,读取 +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Init1 ReadEngPara Rev:%d",eng_rev); +#endif + if(eng_rev == 0) + { + //读取成功,第一次上电读取必定失败 + }else{ + //读取失败恢复默认值 + EEPROM_Default_ENERGY(&e_save); + } + + + //// 3、能耗检测参数初始化 + BLV_DetEnergy_Default(); + +} + +/***************************************** +* Function Name : EEOROM_ENERGY_ReadSet +* Description : 读取电能检测参数 +* Parameter : +* info :读取参数指针 +*******************************************************************/ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info) +{ + U8_T read_info[6]; + U8_T para_data[EEPROM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr,4,read_info); + + if(read_info[0] == EEPROM_ENERGY_SAVE_FLAG){ + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if(read_len <= EEPROM_ENERGY_SIZE){ + + ReadDataArry_U8(EEPROM_ENERGE_PARA_SaveAddr+EEPROM_Offset_Data,read_len,para_data); + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE_PARA)) == read_info[3]){ + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE_PARA)); + +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng V_K:%f",e_save.v_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng IA_K:%f",e_save.ia_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng IB_K:%f",e_save.ib_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng PA_K:%f",e_save.pa_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng PB_K:%f",e_save.pb_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng I_OffSet:%f",e_save.i_OffSetVal); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng P_OffSet:%f",e_save.p_OffSetVal); + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_max:%d",e_save.eng_save_max); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng save_offset:%d",e_save.eng_save_offset); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng collect_tim:%d",e_save.collect_tim); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng report_tim:%d",e_save.report_tim); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng SaveFlash_Tim:%d",e_save.saveFlash_tim); + + SYSCON_IWDCNT_Reload(); +#endif + return 0x00; + } + } + } + + return 0x01; + +} +/******************************************************************************* +* Function Name : EEOROM_ENERGY_WriteSet +* Description : 将电能设置参数写入到EEPROM中 +*******************************************************************************/ +U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info) +{ + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(ENERGY_SAVE_PARA); + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + save_data[1] = save_len & 0xFF; + save_data[2] = (save_len >> 8) & 0xFF; + + memcpy(&save_data[4],(uint8_t *)info,save_len); + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + + save_len+=4; + + Page_ProgramData(EEPROM_ENERGE_PARA_SaveAddr,save_len,save_data); + + return 0; +} +/******************************************************************************* +* Function Name : EEPROM_ENERGY_Validate +* Description : 比对当前参数,确认是否有改变需要写入 +*******************************************************************************/ +void EEPROM_ENERGY_Validate(void) +{ + U8_T save_flag = 0; + + if(e_save.ia_k_val != g_Eng.IA_K_Val) + { + e_save.ia_k_val = g_Eng.IA_K_Val; + save_flag = 1; + } + + if(e_save.ib_k_val != g_Eng.IB_K_Val) + { + e_save.ib_k_val = g_Eng.IB_K_Val; + save_flag = 1; + } + + if(e_save.v_k_val != g_Eng.V_K_Val) + { + e_save.v_k_val = g_Eng.V_K_Val; + save_flag = 1; + } + + if(e_save.pa_k_val != g_Eng.PA_K_Val) + { + e_save.pa_k_val = g_Eng.PA_K_Val; + save_flag = 1; + } + + if(e_save.pb_k_val != g_Eng.PB_K_Val) + { + e_save.pb_k_val = g_Eng.PB_K_Val; + save_flag = 1; + } + + if(e_save.i_OffSetVal != g_Eng.I_OffSetVal) + { + e_save.i_OffSetVal = g_Eng.I_OffSetVal; + save_flag = 1; + } + + if(e_save.p_OffSetVal != g_Eng.P_OffSetVal) + { + e_save.p_OffSetVal = g_Eng.P_OffSetVal; + save_flag = 1; + } + + if(e_save.collect_tim != g_Eng.Collect_Tim) + { + e_save.collect_tim = g_Eng.Collect_Tim; + save_flag = 1; + } + + if(e_save.saveFlash_tim != g_Eng.SaveFlash_Tim) + { + e_save.saveFlash_tim = g_Eng.SaveFlash_Tim; + save_flag = 1; + } + + if(e_save.report_tim != g_Eng.Report_Tim) + { + e_save.report_tim = g_Eng.Report_Tim; + save_flag = 1; + } + + if(save_flag == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + + #if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Need Save EngParam"); + Dbg_Println(DBG_BIT_SYS_STATUS,"V_K:%f",e_save.v_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"IA_K:%f",e_save.ia_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"IB_K:%f",e_save.ib_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"PA_K:%f",e_save.pa_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"PB_K:%f",e_save.pb_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"I_OS:%f",e_save.i_OffSetVal); + Dbg_Println(DBG_BIT_SYS_STATUS,"P_OS:%f",e_save.p_OffSetVal); + SYSCON_IWDCNT_Reload(); + #endif + } + else + { + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"NO Need Save EngParam"); + #endif + } +} +/******************************************************************************* +* Function Name : EEPROM_Default_ENERGY +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info) +{ + /*APP 区域*/ + info->ia_k_val = 1; + info->ib_k_val = 1; + info->v_k_val = 2; + info->pa_k_val = 1; + info->pb_k_val = 1; + info->i_OffSetVal = 0; + info->p_OffSetVal = 0; + info->eng_save_max = EEPROM_SAVEADDR_CNT; + info->eng_save_offset = 1; //存储偏移编号从1开始 + info->saveFlash_tim = EEPROM_SAVETIME; + info->collect_tim = EEPROM_COLLTIME; + info->report_tim = EEPROM_REPTIME; + + +// EEOROM_ENERGY_WriteSet(info); + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Energy Use Default Para"); + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default V_K:%f",e_save.v_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default IA_K:%f",e_save.ia_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default IB_K:%f",e_save.ib_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default PA_K:%f",e_save.pa_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default PB_K:%f",e_save.pb_k_val); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default I_OffSet:%f",e_save.i_OffSetVal); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default P_OffSet:%f",e_save.p_OffSetVal); + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_max:%d",e_save.eng_save_max); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default save_offset:%d",e_save.eng_save_offset); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default collect_tim:%d",e_save.collect_tim); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default report_tim:%d",e_save.report_tim); + Dbg_Println(DBG_BIT_SYS_STATUS,"Default saveFlash_tim:%d",e_save.saveFlash_tim); + + SYSCON_IWDCNT_Reload(); + +#endif + +} +/********************************************************************* + * Function Name : EEPROM_ReadTotalEng + * Description : 读取总电量、存储总次数 + *********************************************************************/ +U8_T EEPROM_ReadTotalEng(ENERGY_SAVE *info) +{ + U32_T temp_addr = EEPROM_EngSave_StartAddr; //存储地址 + U8_T read_info[10]; //帧头 + U8_T para_data[EEPROM_ENERGY_SIZE]; //存储数据 + UINT16 read_len = 0; //存储数据长度 + uint32_t save_block = 0; //存储扇区编号 + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + + temp_addr = EEPROM_EngSave_StartAddr + (save_block - 1) * EEPROM_OFFSET_ADDRSIZE; //通过扇区编号计算当前总能耗存储扇区地址 + + if( ( temp_addr < EEPROM_EngSave_StartAddr ) || (temp_addr > EEPROM_EngSave_EndAddr) ) return 0x02; + + ReadDataArry_U8(temp_addr,4,read_info); //读取目标地址的标志位和存储数据长度 + + if(read_info[0] != EEPROM_ENERGY_SAVE_FLAG) return 0x03; + + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if(read_len <= EEPROM_ENERGY_SIZE){ + + ReadDataArry_U8(temp_addr+EEPROM_Offset_Data,read_len,para_data); + + if(EEPROM_CheckSum(para_data,sizeof(ENERGY_SAVE)) == read_info[3]){ + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(ENERGY_SAVE)); + + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadSucc"); + #endif + return 0x00; + }else{ + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TotalEnergy ReadFail"); + #endif + return 0x04; + } + + } + + return 0x00; +} +/********************************************************************* + * Function Name : EEPROM_WriteTotalEng + * Description : 写入总电量 + *********************************************************************/ +U8_T EEPROM_WriteTotalEng(ENERGY_SAVE *info) +{ + U8_T save_data[EEPROM_ENERGY_SIZE + 6]; + U8_T savepara_falg = 0x00; + U32_T temp_addr = EEPROM_EngSave_StartAddr; + U16_T save_len = sizeof(ENERGY_SAVE); + uint32_t save_block = 0,save_cnt = 0; + + save_block = e_save.eng_save_offset; //从其他扇区读取的总电量扇区读取编号 + save_cnt = info->eng_save_cnt; //单扇区最大存储次数 + + if(e_save.eng_save_offset == 0) return 0x01; //起始扇区编号从1开始,0为未存储过 + if(e_save.eng_save_max == 0) return 0x02; + + if(info->eng_save_cnt >= 0xFFFFFFFF){ + return 0x03; + } + info->eng_save_cnt++; + + if(info->eng_save_cnt > e_save.eng_save_max) + { + e_save.eng_save_offset = (info->eng_save_cnt/e_save.eng_save_max)+1; //更新扇区编号 + savepara_falg = 0x01; + + } + + //通过扇区编号计算当前总能耗存储扇区地址 + temp_addr = EEPROM_EngSave_StartAddr + (e_save.eng_save_offset - 1) * EEPROM_OFFSET_ADDRSIZE; + + if(temp_addr > EEPROM_EngSave_EndAddr ) //超限,不再改变存储扇区 + { + e_save.eng_save_offset = save_block; + savepara_falg = 0x00; + //info->eng_save_cnt = save_cnt; + temp_addr = EEPROM_EngSave_EndAddr; + } + + if(save_len >= EEPROM_ENERGY_SIZE) save_len = EEPROM_ENERGY_SIZE; + + save_data[0] = EEPROM_ENERGY_SAVE_FLAG; + save_data[1] = save_len & 0xFF; + save_data[2] = (save_len >> 8) & 0xFF; + + memcpy(&save_data[4],(uint8_t *)info,save_len); + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + + save_len+=4; + + Page_ProgramData(temp_addr,save_len,save_data); + + + if(savepara_falg == 0x01) + { + EEOROM_ENERGY_WriteSet(&e_save); + } + + return 0; +} + + + + +/***********************************************************************************************************************************/ + + +/******************************************************************************* +* Function Name : EEPROM_ReadPara +* Description : 读取参数 +* Parameter : +* info :读取参数指针 +*******************************************************************************/ +U8_T EEPROM_ReadPara(void) +{ + U32_T temp_addr = EEPROM_PARA_SaveAddr; + U8_T read_info[10]; + U8_T para_data[EEPROM_PARA_Size]; + UINT16 read_len = 0; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + ReadDataArry_U8(temp_addr,4,read_info); + + if(read_info[0] == EEPROM_SAVE_Flag){ + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if((read_len <= EEPROM_PARA_Size) && (read_len == 0x0A)){ //校验要保存数据的长度 + temp_addr += EEPROM_Data_Offset; + ReadDataArry_U8(temp_addr,read_len,para_data); + if(EEPROM_CheckSum(para_data,read_len) == read_info[3]){ + //校验成功 - 读取参数 + + return 0x00; + } + } + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadPara Default!"); + //数据读取失败,使用默认参数 + + return 0x01; +} + +/******************************************************************************* +* Function Name : EEPROM_ValidateWrite +* Description : 校验写入参数 +*******************************************************************************/ +U8_T EEPROM_ValidateWrite(U32_T Eeprom_Write_SaveAddr,U8_T* Write_Data,U16_T Write_Len){ + U8_T Read_para[Write_Len]; + U16_T i = 0; + + memset(Read_para,0,sizeof(Read_para)); + + ReadDataArry_U8(Eeprom_Write_SaveAddr,Write_Len,Read_para); + for(i=0;i= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SAVE_Flag; + save_para[1] = save_len & 0xFF; + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + + if(EEPROM_ValidateWrite(temp_addr,save_para,save_len)){ + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para Err"); + return 0x01; + } + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_WritePara Save Para"); + return 0; +} + + + + + + + + + +/****************************<------- boot ------ -->***************************************************/ + +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + U8_T read_info[6]; + U8_T para_data[EEPROM_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + + if(read_info[0] == EEPROM_SVAE_FLAG){ + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if(read_len <= EEPROM_DATA_Size_Max){ + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + +#if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAddr:%d",g_mcu_dev.dev_addr); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevType:%d",g_mcu_dev.dev_type); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevBootVer:%d",g_mcu_dev.dev_boot_ver); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevAppVer:%d",g_mcu_dev.dev_app_ver); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevNameLen:%d",g_mcu_dev.dev_name_len); + Dbg_Println(DBG_BIT_SYS_STATUS,"EE DevName:%s",g_mcu_dev.dev_name); + SYSCON_IWDCNT_Reload(); +#endif + return 0x00; + } + } + } + + return 0x01; +} + +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_MCU_DEV_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + save_data[1] = save_len & 0xFF; + save_data[2] = (save_len >> 8) & 0xFF; + + memcpy(&save_data[4],(uint8_t *)info,save_len); + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + + return 0; +} + +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ +#if (Project_Area == 0x01) + /*Boot 区域*/ + info->dev_addr = 0x00; + info->dev_type = 0x00; + info->dev_app_ver = 0x00; + info->dev_boot_ver = Project_FW_Version; + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#elif (Project_Area == 0x02) + /*APP 区域*/ + info->dev_addr = 0x00; + info->dev_type = Project_Type; + info->dev_app_ver = Project_FW_Version; + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + + EEPROM_WriteMCUDevInfo(info); +#endif +} + +/******************************************************************************* +* Function Name : EEPROM_Validate_MCUDevInfo +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ +#if (Project_Area == 0x01) + /*Boot 区域*/ + U8_T save_flag = 0; + + if(info->dev_boot_ver != Project_FW_Version) + { + info->dev_boot_ver = Project_FW_Version; + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + { + info->dev_app_ver = Project_FW_Version; + save_flag = 0x01; + } + + if(info->dev_type != Project_Type) + { + info->dev_type = Project_Type; + save_flag = 0x01; + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + { + info->dev_name_len = sizeof(Peoject_Name); + save_flag = 0x01; + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + } +#endif +} + + + + + + + + diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/fram_i2c.c b/BLV_CS_AC100_V05/Source/SYSTEM/fram_i2c.c new file mode 100644 index 0000000..ef2a4af --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/fram_i2c.c @@ -0,0 +1,593 @@ +/*************************************************************** + * FeRAM铁电存储器IIC通讯驱动文件 + * @time : 2025-12-25 + * @auther : Ye YangWen + * @model : MB85RC04V-SOIC-8 + * @note : + * 1、内存空间 : 512字节 + * 2、设备地址 : 硬件A1、A2引脚,00 + * 3、设备类型码 : 1010 + * + * 4、引脚定义 : + * IIC_SCL : PA13 + * IIC_SDA : PB0 + * */ +#include "includes.h" + + +FRAM_ENG_t g_engfram; + +void Bsp_I2C_Fram_Init(void) +{ + U8_T rev = 0xFF; + + //软件IIC引脚 + GPIO_Init(GPIOB0,FRAM_IIC_SDA,Output); + GPIO_Init(GPIOA0,FRAM_IIC_SCL,Output); + + memset(&g_engfram,0,sizeof(FRAM_ENG_t)); + + + Dbg_Println(DBG_BIT_SYS_STATUS,"/************> Fram_Init Read TotalEng <*****************/"); + rev = FRAM_ReadTotalEng(&g_engfram); + if(rev == 0x00) + { //读取成功 + Dbg_Println(DBG_BIT_SYS_STATUS,"Init Total_Eng Succ"); + }else{ + Dbg_Println(DBG_BIT_SYS_STATUS,"Init Total_Eng Fail"); + } + +} + + + + +/******************************************************************************* + * @name : Fram_SDA_GPIO + * @brief : 修改IIC通讯的SDA输入/输出模式 + * @param : state : 0x01,输出模式; other : 输入模式(有硬件上拉) + * @retval : 无 + * @note : 注意输入模式要上拉 +*******************************************************************************/ +void Fram_SDA_GPIO(U8_T state) +{ + if(state == 0x01) + { + //设置为输出模式 + GPIO_Init(GPIOB0,FRAM_IIC_SDA,Output); + }else { + //设置为输入上拉模式 + GPIO_Init(GPIOB0,FRAM_IIC_SDA,Intput); + } +} + + +/******************************************************************************* + * @name : IIC_Wait + * @brief : IIC通讯等待时间 + * @param : + * @retval : 无 + * @note : + * 1、本项目主频48M, 时钟周期nop约为20.8ns + * 2、IIC快速模式延时需要0.6亅= 29个nop +*******************************************************************************/ +void IIC_Wait(void) +{ + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); + asm volatile("nop");asm volatile("nop");asm volatile("nop");asm volatile("nop"); +} + + +/******************************************************************************* + * @name : IIC_Start + * @brief : IIC通讯开始 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_Start(void) +{ + Fram_SDA_GPIO(0x01); + SDA_ON; + SCL_ON; + IIC_Wait(); + SDA_OFF; + IIC_Wait(); + SCL_OFF; + IIC_Wait(); +} + + +/******************************************************************************* + * @name : IIC_Stop + * @brief : IIC通讯结束 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_Stop(void) +{ + Fram_SDA_GPIO(0x01); + SCL_OFF; + SDA_OFF; + IIC_Wait(); + SCL_ON; + IIC_Wait(); + SDA_ON; +} + + +/******************************************************************************* + * @name : IIC_ACK + * @brief : IIC通讯应答 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_ACK(void) +{ + Fram_SDA_GPIO(0x01); + SCL_OFF; + SDA_OFF; + IIC_Wait(); + SCL_ON; + IIC_Wait(); + SCL_OFF; +} + + +/******************************************************************************* + * @name : IIC_NoACK + * @brief : IIC通讯接收数据结束 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_NoACK(void) +{ + Fram_SDA_GPIO(0x01); + SCL_OFF; + SDA_ON; + IIC_Wait(); + SCL_ON; + IIC_Wait(); + SCL_OFF; +} + + +/******************************************************************************* + * @name : IIC_Wait_ACK2 + * @brief : IIC通讯等待应答 + * @retval : 无 + * @note : +*******************************************************************************/ +uint8_t IIC_Wait_ACK2(void) +{ + U16_T temp = 0; + SCL_OFF; + Fram_SDA_GPIO(0x00); + SDA_ON; + IIC_Wait(); + SCL_ON; + while(SDA_READ == 1) + { + temp++; + if(temp > 1500) return 1; //超时退出 + } + SCL_OFF; + + return 0; +} + + +/******************************************************************************* + * @name : IIC_Wait_ACK + * @brief : IIC通讯等待应答 + * @retval : 无 + * @note : +*******************************************************************************/ +uint8_t IIC_Wait_ACK(void) +{ + U16_T temp = 0; + const U16_T ACK_TIMEOUT = 1000; + + // 确保SCL初始状态为低电平 + SCL_OFF; + Fram_SDA_GPIO(0x00); + IIC_Wait(); + SCL_ON; // 拉高SCL,开始ACK检测 + IIC_Wait(); + while(SDA_READ == 1) + { + temp++; + if(temp > ACK_TIMEOUT) + { + SCL_OFF; // 超时处理:恢复总线状态 + return 1; // 超时退出 + } + asm volatile("nop");// 添加小延时,避免CPU过度占用 + } + + // 检测到ACK,拉低SCL结束周期 + SCL_OFF; + return 0; +} + + +/******************************************************************************* + * @name : IIC_Send_Byte + * @brief : IIC通讯 - 发送1个字节数据 + * @param : txd : 写入字节 + * @retval : 无 + * @note : +*******************************************************************************/ +void IIC_Send_Byte(uint8_t txd) +{ + uint8_t t; + Fram_SDA_GPIO(0x01); + for(t=0;t<8;t++) + { + SCL_OFF; + if((txd&0x80)) + { + SDA_ON; + }else{ + SDA_OFF; + } + txd<<=1; + IIC_Wait(); + SCL_ON; + IIC_Wait(); + } + SCL_OFF; +} + + +/******************************************************************************* + * @name : IIC_Read_Byte + * @brief : IIC通讯 - 检测接收1个字节数据 + * @param : + * @retval : data : 接收到的数据 + * @note : +*******************************************************************************/ +uint8_t IIC_Read_Byte(void) +{ + uint8_t i = 0,data = 0; + Fram_SDA_GPIO(0x00); + + for(i = 0;i < 8;i++) + { + data <<= 1; + SCL_OFF; + IIC_Wait(); + SCL_ON; + IIC_Wait(); + if(SDA_READ == 1) data |= 0x01; + } + SCL_OFF; + + return data; +} + + +/******************************************************************************* + * @name : Fram_I2C_WriteByte + * @brief : IIC通讯 - 给FeRAM指定地址写入一个字节 + * @param : addr :写入地址 + data :写入数据 + * @retval : 1:成功, 2~4:写入失败, 5:写入地址越界 + * @note : + * 发送流程 : + * 1、发送设备地址码1010 (C1)(C0)(A8)(W/R = 0), + * 2、等待应答 + * 2、发送要写入的内存地址低8位,A7~A0 + * 3、等待应答 + * 4、发送待写入的数据 + * 5、等待应答 + * 6、发送停止 +*******************************************************************************/ +U8_T Fram_I2C_WriteByte(U16_T addr, U8_T data) +{ + U8_T dev_addr; + + if(addr > 0x1FF) + { + return 5; // 地址越界 + } + + // 计算设备地址:1010 (C1)(C0)(A8)(W/R) + // C1=C0=0, A8是addr的最高位, W/R=0(写) + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + + IIC_Start(); + IIC_Send_Byte(dev_addr); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 2; // 写入失败 + } + + // 发送低8位地址 + IIC_Send_Byte((U8_T)(addr & 0xFF)); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 3; // 写入失败 + } + + // 发送数据 + IIC_Send_Byte(data); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 4; // 写入失败 + } + + IIC_Stop(); + return 1; // 写入成功 +} + + + +/******************************************************************************* + * @name : Fram_I2C_ReadByte + * @brief : IIC通讯 - 在FeRAM指定地址读取一个字节 + * @param : addr :读取地址 + data :读取数据 + * @retval : 1:成功, 2~4:读取失败, 5:读取地址越界 + * @note : +*******************************************************************************/ +U8_T Fram_I2C_ReadByte(U16_T addr, U8_T *data) +{ + U8_T dev_addr; + + // 地址范围检查 + if(addr > 0x1FF) + { + return 5; // 地址越界 + } + + // 第一步:写入要读取的地址 + IIC_Start(); + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + IIC_Send_Byte(dev_addr); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 2; // 读取失败 + } + + // 发送低8位地址 + IIC_Send_Byte((U8_T)(addr & 0xFF)); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 3; // 读取失败 + } + + // 第二步:读取数据 + IIC_Start(); + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x01; // W/R=1 + IIC_Send_Byte(dev_addr); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 4; // 读取失败 + } + + // 读取数据,发送NAK + *data = IIC_Read_Byte(); + IIC_NoACK(); + IIC_Stop(); + + return 1; // 读取成功 +} + + +/******************************************************************************* + * @name : Fram_I2C_WriteBytes + * @brief : IIC通讯 - 在FeRAM指定地址写入多个字节 + * @param : addr : 写入地址 + data : 写入数据缓存 + * len : 写入数据长度 + * @retval : 1:成功, 2~4:写入失败, 5:写入地址越界、结束地址越界、长度越界、数据指针为空 + * @note : +*******************************************************************************/ +U8_T Fram_I2C_WriteBytes(U16_T addr, U8_T *data, U16_T len) +{ + + U8_T dev_addr; + U16_T i; + + if((addr > 0x1FF) || ((addr + len) > 0x200) || (len == 0) || (data == NULL)) + { + return 5; // 长度或地址错误 + } + + // 计算设备地址:1010 (C1)(C0)(A8)(W/R) + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + + IIC_Start(); + IIC_Send_Byte(dev_addr); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 2; // 发送设备类型码失败 + } + + // 发送低8位地址 + IIC_Send_Byte((U8_T)(addr & 0xFF)); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 3; // 发送内存地址失败 + } + + // 连续写入多个字节 + for(i = 0; i < len; i++) + { + IIC_Send_Byte(data[i]); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 4; // 写入数据失败 + } + } + + IIC_Stop(); + return 1; // 写入成功 +} + + + +/******************************************************************************* + * @name : Fram_I2C_ReadBytes + * @brief : IIC通讯 - 在FeRAM指定地址开始读取多个字节 + * @param : addr : 读取地址 + data : 读取数据缓存 + * len : 读取数据长度 + * @retval : 1:成功, 2~4:读取失败, 5:读取地址越界、结束地址越界、长度越界、接收数据指针为空 + * @note : +*******************************************************************************/ +U8_T Fram_I2C_ReadBytes(U16_T addr, U8_T *buf, U16_T len) +{ + U8_T dev_addr; + U16_T i; + + if((addr > 0x1FF) || ((addr + len) > 0x200) || (len == 0) || (buf == NULL)) + { + return 5; // 长度或地址错误 + } + + // 第一步:写入要读取的地址 + IIC_Start(); + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x00; + IIC_Send_Byte(dev_addr); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 2; // 发送设备类型码失败 + } + + // 发送低8位地址 + IIC_Send_Byte((U8_T)(addr & 0xFF)); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 3; // 发送内存地址失败 + } + + // 第二步:读取多个字节 + IIC_Start(); + dev_addr = 0xA0 | ((addr & 0x100) >> 7) | 0x01; // W/R=1(读) + IIC_Send_Byte(dev_addr); + if(IIC_Wait_ACK()) + { + IIC_Stop(); + return 4; // 发送读取 + } + + // 连续读取多个字节 + for(i = 0; i < len; i++) + { + buf[i] = IIC_Read_Byte(); + // 最后一个字节发送NAK,其他发送ACK + if(i < len - 1) + { + IIC_ACK(); + } + else + { + IIC_NoACK(); + } + } + + IIC_Stop(); + return 1; // 读取成功 +} + + + + + + /******************************************************************************* + * @name : FRAM_WriteTotalEng + * @brief : 写入总电量 + * @param : info : 电量结构体 + * @retval : 0x00 : 写入成功, + * @note : +*******************************************************************************/ +U8_T FRAM_WriteTotalEng(FRAM_ENG_t *info) +{ + U8_T rev = 0x00; + U8_T save_data[FRAM_ENERGY_SIZE + 6]; + U16_T save_len = sizeof(FRAM_ENG_t); + + if(save_len >= FRAM_ENERGY_SIZE) save_len = FRAM_ENERGY_SIZE; + + save_data[0] = FRAM_ENERGY_SAVE_FLAG; + save_data[1] = save_len & 0xFF; + save_data[2] = (save_len >> 8) & 0xFF; + save_data[3] = 0x00; //和校验字 + + memcpy(&save_data[4],(uint8_t *)info,save_len); + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + + save_len += 4; + rev = Fram_I2C_WriteBytes(FRAM_ENERGY_SAVE_ADDR,save_data,save_len); + + if(rev != 0x01){ + Dbg_Println(DBG_BIT_SYS_STATUS, "writc total_eng err"); + return 0x01; + } + + Dbg_Println(DBG_BIT_SYS_STATUS, "writc total_eng succ"); + return 0x00; +} + + /******************************************************************************* + * @name : ReadTotalEng + * @brief : 读取总电量 + * @param : info : 电量结构体 + * @retval : 0x00 : 读取成功, + * @note : +*******************************************************************************/ +U8_T FRAM_ReadTotalEng(FRAM_ENG_t *info) +{ + U8_T read_info[6]; + U8_T para_data[FRAM_ENERGY_SIZE]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + Fram_I2C_ReadBytes(FRAM_ENERGY_SAVE_ADDR,read_info,4); + + if(read_info[0] == FRAM_ENERGY_SAVE_FLAG){ + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if(read_len <= FRAM_ENERGY_SIZE){ + + Fram_I2C_ReadBytes(FRAM_ENERGY_SAVE_ADDR + PRAM_Offset_Data,para_data,read_len); + if(EEPROM_CheckSum(para_data,sizeof(FRAM_ENG_t)) == read_info[3]){ + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(FRAM_ENG_t)); + + #if DBG_LOG_EN + SYSCON_IWDCNT_Reload(); + Dbg_Println(DBG_BIT_SYS_STATUS,"total_A_eng : %d",info->total_A_eng); + Dbg_Println(DBG_BIT_SYS_STATUS,"total_B_eng : %d",info->total_B_eng); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng_A_RegData : %d",info->Eng_A_RegData); + Dbg_Println(DBG_BIT_SYS_STATUS,"Eng_A_RegData : %d",info->Eng_B_RegData); + #endif + return 0x00; + } + } + } + + return 0x01; +} + diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/inc/Bootload_fun.h b/BLV_CS_AC100_V05/Source/SYSTEM/inc/Bootload_fun.h new file mode 100644 index 0000000..2a186f9 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/inc/Bootload_fun.h @@ -0,0 +1,88 @@ +#ifndef _BOOTLOAD_FUNCTION_H_ +#define _BOOTLOAD_FUNCTION_H_ + +#include "apt32f102.h" +#include "apt32f102_ifc.h" +#include "apt32f102_syscon.h" +#include "uart.h" + +#define App_Procedure_Ready 0x66 //APP准备就绪标志位 + +#define APP_Flash_PageSize 0x100 + +#if DBG_LOG_EN +#define APP_Flash_StartAddr PROM_PageAdd96 //调试APP起始地址 +#else +#define APP_Flash_StartAddr PROM_PageAdd40 +#endif + +#define APP_Flash_EndAddr PROM_PageAdd255 +#define APP_FEATURE_Flash_Addr PROM_PageAdd255 + +#define MCU_EEPROM_PageSize 0x40 +#define MCU_EEPROM_StartAddr DROM_PageAdd0 +#define MCU_EEPROM_EndAddr (DROM_PageAdd31 + MCU_EEPROM_PageSize) + +#define BCOMM_CMD_Handshake 0xC0 +#define BCOMM_CMD_Jump 0xC1 +#define BCOMM_CMD_SetInfo 0xC2 +#define BCOMM_CMD_WriteFlash 0xC3 +#define BCOMM_CMD_ReadFlash 0xC4 +#define BCOMM_CMD_EraseFlash 0xC5 +#define BCOMM_CMD_WriteEEPROM 0xC6 +#define BCOMM_CMD_ReadEEPROM 0xC7 +#define BCOMM_CMD_EraseEEPROM 0xC8 +#define BCOMM_CMD_CheckData 0xC9 + +#define BCOMM_CMD_ReplySUCC 0x00 +#define BCOMM_CMD_ReplyFAIL 0x01 + +#define BCOMM_ACKSize 300 +#define BCOMM_ParaSize 280 + +typedef enum +{ + BCOMM_FMT_TXAddr, + BCOMM_FMT_SN, + BCOMM_FMT_TYPE, + BCOMM_FMT_RXAddr, + BCOMM_FMT_LEN_L, + BCOMM_FMT_LEN_H, + BCOMM_FMT_CKS, + BCOMM_FMT_CMD, + BCOMM_FMT_PARAM, +}BOOT_COMM_FMT_e; + +typedef struct{ + U8_T jump_start; + U8_T sn; + U8_T cmd; + U8_T pc_addr; + U8_T ackBuffer[BCOMM_ACKSize]; + U16_T ackLen; + U16_T ackValidity; //数据回复有效期 + + U32_T bootTimeout; + U32_T bootTick; +}BOOT_INFO_T; + +typedef struct{ + U8_T crcL_check; + U8_T crcH_check; + U8_T app_flag; + U8_T app_crc[241]; + U16_T app_crc_size; + U16_T app_crc_len; + U32_T app_start_addr; + U32_T app_end_addr; +}APP_FEATURE_INFO_T; /*字节空间是256Byte*/ + +extern BOOT_INFO_T g_boot; + +void Boot_Function_Init(void); +U8_T Boot_Comm_UpgradeProcess(U8_T *data,U16_T len); +void Boot_Time_Refresh(void); +void Boot_TimeOut_Task(void); +void Jump_To_APP(void); +U8_T Check_APP_Feature(void); +#endif diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/inc/det_energy.h b/BLV_CS_AC100_V05/Source/SYSTEM/inc/det_energy.h new file mode 100644 index 0000000..59e98a3 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/inc/det_energy.h @@ -0,0 +1,246 @@ +#ifndef _DET_ENERGY_ +#define _DET_ENERGY_ + +#include "apt32f102.h" +#include "apt32f102_gpio.h" + +#define BT_NAME_DEFAULT "BLV_0000" +#define ENERGY_HEAD 0x8A //校验头 +#define DEV_TYPE 0xF4 +#define ENERGY_TAIL 0xA8 //校验尾 + + + +#define REV_NONE 0x00 +#define REV_OK 0x01 +#define REV_ERR 0x02 + +//发送读/写 寄存器状态机的返回 +#define SEND_STATE_NONE 0x00 +#define SEND_STATE_SUCC 0x01 +#define SEND_STATE_FAIL 0x02 + +#define SEND_W 0x02//写寄存器指令发送 +#define SEND_R 0x01//读寄存器指令发送 +#define SEND_NONE 0x00//发送空闲 +#define SEND_TIME 300 + +/*< 系统设置寄存器默认值 >*/ +#define SYSCON_DEFAULT 0x0f04 //0x0a04 //开启A通道,关闭B通道,电压通道PGA = 1,电流通道PGA = 16 //2023-10-13 +#define EMUCON1_DEFAULT 0x1103 //0x0001 //1,使能PFA 脉冲输出和有功电能寄存器累加; +#define EMUCON2_DEFAULT 0x0fff //0x0465 //0x0001是EMUCON2的默认值,waveEn = 1,zxEn = 1,A通道电量寄存器,读后不清0,EPA_CB = 1;打开功率因素检测 + + + +/*< 寄存器 >*/ +//8112/8110 reg define +#define REG_SYSCON_ADDR 0x00 //系统控制寄存器 +#define REG_EMUCON1_ADDR 0x01 //计量控制寄存器1 +#define REG_HFCONST_ADDR 0x02 //脉冲频率寄存器 +#define REG_EMUCON2_ADDR 0x13 //计量控制寄存器2 +#define REG_ANGLE_ADDR 0x22 //相角寄存器 电流与电压之间的相角,通过命令选择:电流通道 A与电压通道的相角或电流通道 B 与电压通道的相角 +#define REG_UFREQ_ADDR 0x23 //市电线性频率地址 +#define REG_RMSIA_ADDR 0x24 //通道A电流有效值 +#define REG_RMSIB_ADDR 0x25 //通道B电流有效值 +#define REG_RMSU_ADDR 0x26 //电压有效值 +#define REG_PF_ADDR 0x27 //功率因素寄存器,通过命令选择:通道A或通道B的功率因素 +#define REG_ENERGY_PA_ADDR 0x28 //通道A有功电能,设置为读后不清零 +#define REG_ENERGY_PB_ADDR 0x29 //通道B有功电能,设置为读后不清零 +#define REG_POWER_PA_ADDR 0x2C //通道A有功功率 +#define REG_POWER_PB_ADDR 0x2D //通道B有功功率 + +#define REG_POWER_PS_ADDR 0x2E +#define REG_SAGCYC_ADDR 0x17 +#define REG_SAGLVL_ADDR 0x18 +#define REG_OVLVL_ADDR 0x19 +#define REG_OIALVL_ADDR 0x1a +#define REG_INT_ADDR 0x1D +#define REG_IE_ADDR 0x40 +#define REG_IF_ADDR 0x41 +#define REG_RIF_ADDR 0x42 +#define REG_RDATA_ADDR 0x44 + + +#define REG_CHECKSUM_ADDR 0x6f //校表系数校验和 +#define REG_RMS_IAC_ADDR 0x70 //电流通道A有效值转换系数 +#define REG_RMS_IBC_ADDR 0x71 //电流通道B有效值转换系数 +#define REG_RMS_UC_ADDR 0x72 //电压通道U有效值转换系数 +#define REG_POWER_PAC_ADDR 0x73 //电流通道A有功功率转换系数 +#define REG_POWER_PBC_ADDR 0x74 //电流通道B有功功率转换系数 +#define REG_POWER_SC_ADDR 0x75 //视在功率转换系数 +#define REG_ENERGY_AC_ADDR 0x76 //A通道能量转换系数 +#define REG_ENERGY_BC_ADDR 0x77 //B通道能量转换系数 + + + +#define REV_BUFFER_SIZE 30 +#define REG_SUM_MAX 15000000 +#define REG_DEBUG_NUM 50 //过大的寄存器差值,要根据硬件的采集电阻确认 +#define REG_DEBUG_CNT 7 //连续读错次数 + +#define REG_BTDEBUG_FLAG 0x06 //蓝牙正常打印标志 + +//发送状态 +typedef enum +{ + HLW_IDLE = 0x00, //空闲 + HLW_SEND_INIT, //发送初始化 + HLW_WTREG, //写寄存器 + HLW_SEND, //发送读写 + HLW_WRITE_DIS, //写失能 + + HLW_WAIT, //跳转等待 +}DetState_IDX; + + +typedef enum +{ + READ_IDLE = 0x00, // + READ_U, // + READ_IA, // + READ_IB, // + READ_EA, // + READ_EB, // + READ_PA, // + READ_PB, // + +}ReadValue_n; + + +//HLW8110发送/接收 +typedef struct{ + U8_T SendBuff[REV_BUFFER_SIZE]; //发送缓冲区 + U8_T RevBuff[REV_BUFFER_SIZE]; //接收处理缓存 + U8_T SendLen; //发送缓冲字节大小 + U8_T RevLen; //接收缓冲 + + U8_T State; //发送状态机 + U8_T Pub_NextState; //等待时间结束后要跳转的状态 + U8_T WR_flag; //发送读\写命令的判断标志 + + U8_T Resent; //重发次数 + U8_T RevNum; //回复校验状态,只有读寄存器才有回复,写寄存器后要读一下校验 + U8_T SendState; //发送状态 + + U32_T Pub_WaitTim; //等待区的等待时间 + +}DetUart_t; + +//HLW8110寄存器 +typedef struct +{ + //系数寄存器.只读 + U16_T U16_RMSIAC_RegData; // A通道电流转换系数 + U16_T U16_RMSIBC_RegData; // B通道电流转换系数 + U16_T U16_RMSUC_RegData; // 电压通道转换系数 + U16_T U16_PowerPAC_RegData; // A通道功率转换系数 + U16_T U16_PowerPBC_RegData; // B通道功率转换系数 + U16_T U16_PowerSC_RegData; // 视在功率转换系数,如果选择A通道,则是A通道视在功率转换系数。A和B通道只能二者选其一 + U16_T U16_EnergyAC_RegData; // A通道有功电能(量)转换系数 + U16_T U16_EnergyBC_RegData; // A通道有功电能(量)转换系数 + U16_T U16_CheckSUM_RegData; // 转换系数的CheckSum + U16_T CheckSUM_Data; // MCU转换系数计算出来的CheckSum + + //系统控制寄存器,需要写入 + U16_T U16_Check_SysconReg_Data; //系统寄存器 + U16_T U16_Check_Emucon1Reg_Data; //计数1寄存器 + U16_T U16_Check_Emucon2Reg_Data; //计数2寄存器 + + + //电流、电压有效值寄存器,只读,第24位为符号位 + U32_T U24_Voltage_RegData; //电压有效值,单位: + U32_T U24_CurrentA_RegData; //A通道电流有效值,单位: + U32_T U24_CurrentB_RegData; //B通道电流有效值,单位: + U32_T U32_PowerA_RegData; //A通道有功功率有效值,单位: + U32_T U32_PowerB_RegData; //B通道有功功率有效值,单位: + U32_T U24_EnergyA_RegData; //A通道有功电能有效值,单位: + U32_T U24_EnergyB_RegData; //B通道有功电能有效值,单位: + U32_T U16_HFConst_RegData; //脉冲频率寄存器值 - 用于计算能耗使用,本设备计算已经约去,如果本参数读取值不为4096则需要重写计算公式 + +}HLW8110_REG; + + + + +//HLW8110有效值寄存器值 +typedef struct{ + + U8_T tack_reset_flag; //复位标志,1:复位 + U8_T EnergyA_reset_cnt; + U8_T EnergyB_reset_cnt; + U8_T Tack_State; //设备执行任务状态机 + + U8_T rWCh_Num; //读转换系数状态机 + U8_T rWSysCtrl; //写系统控制寄存器状态机 + U8_T rDValue_State; //读取电压电流有效值状态机 + + U8_T SdSN; + + U8_T BT_SdBuff[20]; + U8_T BT_SdLen; + U16_T BT_SendFlag; //蓝牙发送标记 + + U16_T hfcount; + + + U32_T det_V; //电压,单位:10mV + U32_T det_ectA; //电流A,单位:10mA + U32_T det_engA; //电量A + U32_T det_powA; //有功功率A,单位: mW + U32_T det_ectB; //电流B,单位:10mA + U32_T det_engB; //电量B + U32_T det_powB; //有功功率B,单位: mW + + + + U32_T Total_Eng; //设备记录总能耗 + U32_T LastPhase_Eng; //上次上报的总能耗 + U32_T LastSave_Total_Eng; //设备上次记录能耗 + + U32_T Total_Eng_B; //设备记录总能耗 + U32_T LastPhase_Eng_B; //上次上报的总能耗 + U32_T LastSave_Total_Eng_B; //设备上次记录能耗 + + U32_T U32_EnergyA_RegData; //A通道有功电能有效值寄存器累计值,单位: + U32_T U32_EnergyA_RegData_LastRecord; //上次d读取的A通道有功电能有效值寄存器值,单位: + + U32_T U32_EnergyB_RegData; //B通道有功电能有效值寄存器累计值,单位: + U32_T U32_EnergyB_RegData_LastRecord; //上次读取到的B通道有功电能有效值寄存器值,单位: + + + F32_T V_K_Val; //电压系数 + F32_T IA_K_Val; //电流A系数 + F32_T IB_K_Val; //电流B系数 + F32_T PA_K_Val; //功率A系数 + F32_T PB_K_Val; //功率B系数 + F32_T I_OffSetVal; //电流偏差 + F32_T P_OffSetVal; //功率偏差 + + U32_T Collect_Tim; //采集间隔,默认5秒钟 + U32_T Report_Tim; //上报间隔,默认10分钟 + U32_T SaveFlash_Tim; //保存时间,默认1小时 + + U32_T Eng_Report_Tim; //定时上报时间搓 + U32_T BT_Print_valid; //蓝牙打印时间戳 + + +}DetEng_Info; + +extern DetEng_Info g_Eng; + +void BLV_DetEnergy_Init(void); +void BLV_DetEnergy_Default(void); +U8_T HLW8110_RecvData_Processing(U8_T *RecvData,U16_T RecvLen); +void BLV_HLW8110_RWCMD_Packaging(U8_T ADDR_Reg,U16_T len,U32_T value); +void BLV_HLW8110_SendData_Tack(void); +void BLV_HLW8110_Tack(void); +void GetEnergy_Para(void); +void BLV_EngDetect_Tack(void); +void SaveFram_TEng(void); + +void BLV_Energy_PassiveRep_Packing(U8_T cmd); +U8_T BLV_485Recv_Processing(U8_T *RecvData,U16_T RecvLen); +U8_T BT_Recv_Processing(U8_T *RecvData,U16_T RecvLen); +U8_T BT_Uart_Packing(U8_T *data,U8_T len,U8_T flag); +#endif + diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/inc/dip_switch.h b/BLV_CS_AC100_V05/Source/SYSTEM/inc/dip_switch.h new file mode 100644 index 0000000..7c3b3f9 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/inc/dip_switch.h @@ -0,0 +1,50 @@ +#ifndef _DIP_SWITCH_H_ +#define _DIP_SWITCH_H_ + +#include "apt32f102.h" +#include "apt32f102_gpio.h" + +#define DIP_PRESS 0x00 //按键按下为低 +#define DIP_LOOSEN 0x01 //按键松开为高 +#define DIP_DELAY_COUNT 5 //扫描次数 +#define DIP_SCAN_Time 20 //每次扫描时间 + +#define Active_Port 0x01 //主动 +#define Passive_Port 0x00 //轮询 + +typedef enum +{ + DIP_CH1, + DIP_CH2, + DIP_CH3, + + DIP_CHN_MAX, +}DIP_CHN_e; + +typedef enum +{ + DIP_VAL_OFF, //松开 + DIP_VAL_ON, //按下 +}DIP_VAL_e; + +typedef struct +{ + U8_T delayCnt_ON[DIP_CHN_MAX]; + U8_T delayCnt_OFF[DIP_CHN_MAX]; + + U8_T addr; //2025-06-23 + U8_T Dev_Port; //端口,主动,轮询 + + U8_T BT_Print_flag; //通讯标志位 + + U32_T DIP_val; + U32_T DIP_last_val; +}DIP_t; + +extern DIP_t g_Dip; + +void DIP_Switch_Init(void); +uint8_t DIP_GetSwitchState(uint8_t i); +void DIP_ScanTask(void); + +#endif diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/inc/eeprom.h b/BLV_CS_AC100_V05/Source/SYSTEM/inc/eeprom.h new file mode 100644 index 0000000..44ea6d5 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/inc/eeprom.h @@ -0,0 +1,112 @@ +#ifndef _EEPROM_H_ +#define _EEPROM_H_ +#include "includes.h" +#include "apt32f102.h" + +/*地址范围:0x10000000~0x100007FF*/ +#define EEPROM_MCUDevInfo_Address 0x10000000 //MCU 设备信息地址固定为0x10000000,大小为0x40 此区域不可改动 + +#define EEPROM_PARA_SaveAddr 0x10000100 + +#define EEPROM_ENERGE_PARA_SaveAddr 0x10000180 //电能参数 + +#define EEPROM_EngSaveCnt_SaveAddr 0x10000200 //保存总电能保存次数 + +#define EEPROM_EngSave_StartAddr DROM_PageAdd9 //总电能保存起始地址 +#define EEPROM_EngSave_EndAddr DROM_PageAdd31 +#define EEPROM_OFFSET_ADDRSIZE 0x00000040 //偏移地址大小(单扇区大小) + + +/* EEPROM 保存数据格式: + * FLAG - 1Byte 保存标志位 + * LEN - 2Byte 保存数据长度 + * CHECK - 1Byte 保存数据校验 + * DATA - nByte 保存数据内容 + * + * */ + +//电能参数保存 +#define EEPROM_ENERGY_SAVE_FLAG 0xA6 //电能检测参数保存 +#define EEPROM_ENERGY_SIZE 50 //最大长度 +#define EEPROM_SAVEADDR_CNT 40000 //单个地址的存储次数 +#define EEPROM_SAVETIME 3600000 //默认自动保存时间,1小时 +#define EEPROM_COLLTIME 5000 //默认采集时间,5S +#define EEPROM_REPTIME 60000 //默认主动上报时间,1min + +#define EEPROM_SAVE_Flag 0xA5 //EEPROM保存标志位 +//#define EEPROM_PARA_Size 50 +#define EEPROM_Data_Offset 0x04 + +/*boot*/ +#define EEPROM_Offset_SaveFlag 0x00 +#define EEPROM_Offset_Datalen 0x01 +#define EEPROM_Offset_Check 0x03 +#define EEPROM_Offset_Data 0x04 + + +#define EEPROM_SVAE_FLAG 0xAE +#define EEPROM_DATA_Size_Max 0x40 //目前保存数据内容最长为100Byte +#define EEPROM_PARA_Size 50 +#define EEPROM_DEV_NAME_Size 32 + +typedef struct{ + + F32_T v_k_val; //电压系数 + F32_T ia_k_val; //电流系数A + F32_T ib_k_val; //电流系数B + F32_T pa_k_val; //功率系数A + F32_T pb_k_val; //功率系数B + F32_T i_OffSetVal; //电流偏差 + F32_T p_OffSetVal; //功率偏差 + + U32_T eng_save_max; //单扇区存储次数上限 + U32_T eng_save_offset; //存储扇区编号,从1开始 + + U32_T collect_tim; //采集间隔,默认5秒钟 + U32_T report_tim; //上报间隔,默认10分钟 + U32_T saveFlash_tim; //保存时间,默认1小时 + +}ENERGY_SAVE_PARA; + +typedef struct{ + + U32_T eng_total; //总能耗,单位:w/h + U32_T eng_save_cnt; //当前存储总次数 + U32_T U32_EnergyA_RegData; //A通道有功电能有效值寄存器累计值,单位: + +}ENERGY_SAVE; + +typedef struct{ + + U8_T dev_addr; //设备地址 + U8_T dev_type; //设备类型 + U8_T dev_boot_ver; //设备Boot的软件版本号 + U8_T dev_app_ver; //设备APP的软件版本号 + U8_T dev_name_len; //设备名称的长度 + U8_T dev_name[EEPROM_DEV_NAME_Size]; //设备名称 + +}E_MCU_DEV_INFO; + +extern E_MCU_DEV_INFO g_mcu_dev; +extern ENERGY_SAVE_PARA e_save; + + +void EEPROM_Init(void); +U8_T EEPROM_ReadPara(void); +U8_T EEPROM_WritePara(void); +void EEPROM_TouchPara_Printf(); +U8_T EEPROM_CheckSum(U8_T *data,U16_T len); +/*boot*/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info); +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info); +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info); +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info); + +/* energy */ +U8_T EEOROM_ENERGY_ReadSet(ENERGY_SAVE_PARA *info); +//U8_T EEOROM_ENERGY_WriteSet(ENERGY_SAVE_PARA *info); +void EEPROM_ENERGY_Validate(void); +void EEPROM_Default_ENERGY(ENERGY_SAVE_PARA *info); +U8_T EEPROM_ReadTotalEng(ENERGY_SAVE *info); +U8_T EEPROM_WriteTotalEng(ENERGY_SAVE *info); +#endif diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/inc/fram_i2c.h b/BLV_CS_AC100_V05/Source/SYSTEM/inc/fram_i2c.h new file mode 100644 index 0000000..e1b3b65 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/inc/fram_i2c.h @@ -0,0 +1,52 @@ +#ifndef _FRAM_I2C_H_ +#define _FRAM_I2C_H_ + +#include "apt32f102.h" +#include "apt32f102_gpio.h" + +#define FRAM_IIC_SCL 13 //PA13 +#define FRAM_IIC_SDA 0 //PB0 + + +#define SDA_ON GPIO_Write_High(GPIOB0,FRAM_IIC_SDA) +#define SCL_ON GPIO_Write_High(GPIOA0,FRAM_IIC_SCL) + +#define SDA_OFF GPIO_Write_Low(GPIOB0,FRAM_IIC_SDA) +#define SCL_OFF GPIO_Write_Low(GPIOA0,FRAM_IIC_SCL) + +#define SDA_READ GPIO_Read_Status(GPIOB0,FRAM_IIC_SDA) + + +#define FRAM_ENERGY_SAVE_ADDR 0x0010 //存储地址 +#define FRAM_ENERGY_SAVE_FLAG 0xA6 //电能检测参数保存标志 +#define FRAM_ENERGY_SIZE 50 //存储最大长度 +#define PRAM_Offset_Data 0x04 //读取地址偏移 + + + + +typedef struct{ + + U32_T total_A_eng; //A通道总能耗,单位:w/h + U32_T total_B_eng; //B通道总能耗,单位:w/h + U32_T Eng_A_RegData; //A通道有功电能寄存器累计值 + U32_T Eng_B_RegData; //B通道有功电能寄存器累计值 + +}FRAM_ENG_t; + + + +extern FRAM_ENG_t g_engfram; + +void Bsp_I2C_Fram_Init(void); +U8_T Fram_I2C_WriteByte(U16_T addr, U8_T data); +U8_T Fram_I2C_ReadByte(U16_T addr, U8_T *data); +U8_T Fram_I2C_WriteBytes(U16_T addr, U8_T *data, U16_T len); +U8_T Fram_I2C_ReadBytes(U16_T addr, U8_T *buf, U16_T len); +U8_T FRAM_WriteTotalEng(FRAM_ENG_t *info); +U8_T FRAM_ReadTotalEng(FRAM_ENG_t *info); + + +#endif + + diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/inc/uart.h b/BLV_CS_AC100_V05/Source/SYSTEM/inc/uart.h new file mode 100644 index 0000000..7d1adaa --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/inc/uart.h @@ -0,0 +1,179 @@ +#ifndef _UART_H_ +#define _UART_H_ + +#include "apt32f102.h" +#include "apt32f102_uart.h" + +#define Recv_2400_TimeOut 3 //ms +#define Recv_9600_TimeOut 3 //ms +#define Recv_115200_TimeOut 3 //ms + +#define USART_BUFFER_NUM 3 +#define USART_BUFFER_SIZE 64 +#define USART_SEND_SIZE 100 + +#define UART_SEND_BUFFER_NUM 10 +#define UART_SEND_BUFFER_SIZE 20 + +#define UART485_TX_PIN +#define UART485_RX_PIN 15 //PA0.15 +#define UART485_DR_PIN 7 //PA0.7 + +#define READ_RX_LEVEL_STATE GPIO_Read_Status(GPIOA0,UART485_RX_PIN) //485总线RX引脚 + +#define WRITE_HIGH_DR GPIO_Write_High(GPIOA0,UART485_DR_PIN) //485 DR +#define WRITE_LOW_DR GPIO_Write_Low(GPIOA0,UART485_DR_PIN) //485 DR +#define REVERISE_DR GPIO_Reverse(GPIOA0,UART485_DR_PIN) //485 DR + +#define LED_HLW_PIN 11//PA0.11 +#define LED_BUS_PIN 12//PA0.12 +#define LED_STATUS_PIN 3//PB.3 + +#define HLW_LED_ON GPIO_Write_Low(GPIOA0,LED_HLW_PIN) +#define HLW_LED_OFF GPIO_Write_High(GPIOA0,LED_HLW_PIN) + +#define BUS_LED_ON GPIO_Write_Low(GPIOA0,LED_BUS_PIN) +#define BUS_LED_OFF GPIO_Write_High(GPIOA0,LED_BUS_PIN) + +#define STATUS_LED_ON GPIO_Write_Low(GPIOB0,LED_STATUS_PIN) +#define STATUS_LED_OFF GPIO_Write_High(GPIOB0,LED_STATUS_PIN) +#define REVERISE_STATUS GPIO_Reverse(GPIOB0,LED_STATUS_PIN) + + +#define UART_BUSBUSY 0x01 //总线繁忙 +#define UART_BUSIDLE 0x00 //总线空闲 + +#define BUSSend_WaitTime1 300 //数据有效期: +#define BUSSend_WaitTime2 3000 //数据有效期: +#define BUSSend_WaitTime3 60000 //数据有效期: + +#define BUSSendCnt1 3 //数据上报次数 +#define BUSSend_Tick 500 //数据发送间隔 + + +/*调试信息相关定义*/ +#ifndef DBG_LOG_EN +#define DBG_LOG_EN 1 //DEBUG LOG 输出总开关 +#endif + +/*调试信息初始状态*/ +#define DBG_OPT_BTDebug_STATUS 0 // +#define DBG_OPT_BT_STATUS 0 //蓝牙调试信息打印开关 +#define DBG_OPT_Debug_STATUS 0 //临时调试信息打印开关 +#define DBG_OPT_DEVICE_STATUS 0 //设备驱动层打印调试信息打印开关 +#define DBG_OPT_SYS_STATUS 0 //系统调试信息打印开关 + +/*调试信息输出控制位*/ +#define DBG_BIT_BTDebug_STATUS 4 +#define DBG_BIT_BT_STATUS 3 +#define DBG_BIT_Debug_STATUS 2 +#define DBG_BIT_DEVICE_STATUS 1 +#define DBG_BIT_SYS_STATUS 0 +#if DBG_LOG_EN +#define DBG_SendByte(data) //UARTTxByte(UART2,data) +//#define DBG_Printf(data,len) UARTTransmit(UART2,data,len) + +#define DBG_Printf(data,len) MCU485_SendData(data,len) +#define DBG_BTPrintf(data,len) UARTTransmit(UART2,data,len) +#else +#define DBG_SendByte(data) +#define DBG_Printf //MCU485_SendData(data,len) +#define DBG_BTPrintf +#endif + +typedef U8_T (*Uart_prt)(U8_T *,U16_T); + +typedef enum +{ + UART_0, + UART_1, + UART_2, + UART_3, + UART_MAX, +}UART_IDX; + +typedef enum +{ + BUSSEND_SUCC = 0x00, //等待发送机会 + BUSSEND_WAIT, //发送成功 + DATA_END, //数据有效期结束 + RETRY_END, //重发结束 + LEN_ERR, //长度错误 +}BUSSEND_REV; + +typedef struct{ + + U8_T RecvBuffer[USART_BUFFER_SIZE]; + U8_T DealBuffer[USART_BUFFER_SIZE]; //数据处理缓冲 + + U8_T Receiving; + U16_T DealLen; + + U16_T RecvLen; + + U32_T RecvTimeout; + U32_T RecvIdleTiming; + + Uart_prt processing_cf; //处理函数指针 +}UART_t; + + +typedef struct{ //总线繁忙判断 + U8_T SendBuffer[USART_SEND_SIZE]; //发送缓冲 + + U8_T BusState_Flag; //总线繁忙标记位, 0x01:总线繁忙,0x00:总线空闲 + U8_T HighBit_Flag; //串口RX高电平标记位,默认是高电平0x01. + U8_T BUSBUSY_LOCK; //锁定总线繁忙状态 + + U8_T SendState; //当前发送状态 + U8_T ResendCnt; //当前发送次数 + U8_T ASend_Flag; //主动上报发送标记 + U8_T TotalCnt; //发送总次数 + U8_T SetBaudFlag; //设置波特率 + U8_T Jump_Flag; //跳转标志位 + + U16_T SendLen; //发送缓冲区数据长度 + + U32_T Bus_DelayTime; //总线繁忙转换到空闲状态的随机延时时间 + U32_T DataWait_Time; //上报数据间隔 + U32_T DataValid_Time; //上报数据有效期 + + + U32_T BusState_Tick; //总线繁忙状态判断时间戳 + U32_T ASend_Tick; //主动上报发送间隔判断时间戳 + U32_T BusbusyTimeout; //上报数据有效期判断时间戳 + +}MULIT_t; + + +extern MULIT_t m_send; +extern UART_t g_uart; +extern U32_T Dbg_Switch; + + +extern volatile int RS485_Comm_Flag,RS485_Comm_Start,RS485_Comm_End,RS485_Comming; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf); +void UART0_RecvINT_Processing(char data); +void UART0_TASK(void); +void UART1_RecvINT_Processing(char data); +void UART1_TASK(void); +void UART2_RecvINT_Processing(char data); +void UART2_TASK(void); +void MCU485_SendData(U8_T *buff,U16_T len); + +void Dbg_Print(int DbgOptBit, const char *cmd, ...); +void Dbg_Println(int DbgOptBit, const char *cmd, ...); +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len); +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...); + +void BusIdle_Task(void); +void BusBusy_Task(void); +void BUS485Send_Task(void); +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd); +U8_T BUS485_Send(U8_T *buff,U16_T len); +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val); +void Clear_SendFlag(void); +void BUS485_Jump_Boot(U8_T jump); + +#endif diff --git a/BLV_CS_AC100_V05/Source/SYSTEM/uart.c b/BLV_CS_AC100_V05/Source/SYSTEM/uart.c new file mode 100644 index 0000000..a2370b4 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/SYSTEM/uart.c @@ -0,0 +1,610 @@ +#include "includes.h" +#include +#include + +/** + * BLV_C8_PB 串口使用情况 + * UART1 用与RCU进行双向通讯 115200 -> 对应设置 416 + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ +UART_t g_uart0; +UART_t g_uart1; +UART_t g_uart; +MULIT_t m_send; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + switch((U8_T)uart_id){ + case UART_0: + UART0_DeInit(); //clear all UART Register + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 +// UARTInit(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_EVEN); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + UART0_Int_Enable(); + + memset(&g_uart0,0,sizeof(UART_t)); + + g_uart0.RecvTimeout = Recv_9600_TimeOut; + g_uart0.processing_cf = prt_cf; + + break; + case UART_1: + memset(&g_uart1,0,sizeof(UART_t)); + memset(&m_send,0,sizeof(MULIT_t)); + + g_uart1.RecvTimeout = Recv_9600_TimeOut; + g_uart1.processing_cf = prt_cf; + + m_send.BusState_Tick = SysTick_1ms; + m_send.HighBit_Flag = 0x01; + + //串口1-RX接收中断,用于串口2的通讯总线繁忙状态判断,2025-04-16 + GPIO_PullHigh_Init(GPIOA0,15); + GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 + GPIOA0_EXI_Init(EXI15); //PB0.2 as input + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge + EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); + EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI + GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI + EXI4_Int_Enable(); + + + UART1_DeInit(); //clear all UART Register + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + //UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + UART1_Int_Enable(); + + + GPIO_Init(GPIOA0,LED_HLW_PIN,Output); + GPIO_Init(GPIOA0,LED_BUS_PIN,Output); + GPIO_Init(GPIOB0,LED_STATUS_PIN,Output); + HLW_LED_ON; + BUS_LED_ON; + STATUS_LED_ON; + + //485使能引脚初始化 + GPIO_Init(GPIOA0,UART485_DR_PIN,Output); + GPIO_DriveStrength_EN(GPIOA0,UART485_DR_PIN); + WRITE_LOW_DR; + + break; + case UART_2: + UART2_DeInit(); //clear all UART Register + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + //UARTInit(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled , + //CSP_UART_SET_CTRL(UART2,UART_TX_DONE_INT); //UART_PAR_EVEN,偶校验. + UART2_Int_Enable(); + + memset(&g_uart,0,sizeof(UART_t)); + + g_uart.RecvTimeout = Recv_9600_TimeOut; + g_uart.processing_cf = prt_cf; + + break; + } +} + + +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + if((g_uart0.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart0.RecvLen = 0; + g_uart0.RecvBuffer[g_uart0.RecvLen++] = (U8_T)data; + + HLW_LED_OFF; + + g_uart0.RecvIdleTiming = SysTick_1ms; + g_uart0.Receiving = 0x01; +} + +void UART0_TASK(void){ + U8_T rev = 0xFF; + if(g_uart0.Receiving == 0x01){ + if(SysTick_1ms - g_uart0.RecvIdleTiming > g_uart0.RecvTimeout){ + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + g_uart0.RecvIdleTiming = SysTick_1ms; + memcpy(g_uart0.DealBuffer,g_uart0.RecvBuffer,g_uart0.RecvLen); + g_uart0.DealLen = g_uart0.RecvLen; + g_uart0.RecvLen = 0; + g_uart0.Receiving = 0; + SYSCON_Int_Enable(); + +#if DBG_LOG_EN + // Dbg_Println(DBG_BIT_SYS_STATUS, "UART0 revLen %d", g_uart0.DealLen); + // Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART0 buff",g_uart0.DealBuffer,g_uart0.DealLen); +#endif + if(g_uart0.processing_cf != NULL){ + rev = g_uart0.processing_cf(g_uart0.DealBuffer,g_uart0.DealLen); + } + HLW_LED_ON; + memset(g_uart0.DealBuffer,0,USART_BUFFER_SIZE); + } + } +} + + +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart1.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart1.RecvLen = 0; + g_uart1.RecvBuffer[g_uart1.RecvLen++] = (U8_T)data; + BUS_LED_OFF; + g_uart1.RecvIdleTiming = SysTick_1ms; + g_uart1.Receiving = 0x01; + +} + +void UART1_TASK(void){ + U8_T rev = 0xFF; + if(g_uart1.Receiving == 0x01){ + if(SysTick_1ms - g_uart1.RecvIdleTiming > g_uart1.RecvTimeout){ + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + g_uart1.RecvIdleTiming = SysTick_1ms; + memcpy(g_uart1.DealBuffer,g_uart1.RecvBuffer,g_uart1.RecvLen); + g_uart1.DealLen = g_uart1.RecvLen; + g_uart1.RecvLen = 0; + g_uart1.Receiving = 0; + SYSCON_Int_Enable(); + +#if DBG_LOG_EN + // Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", g_uart1.DealLen); + // Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",g_uart1.DealBuffer,g_uart1.DealLen); +#endif + if(g_uart1.processing_cf != NULL){ + rev = g_uart1.processing_cf(g_uart1.DealBuffer,g_uart1.DealLen); + } + /*Boot处理函数 */ + if(rev != 0x00) + { + Boot_Comm_UpgradeProcess(g_uart1.DealBuffer,g_uart1.DealLen); + } + + BUS_LED_ON; + memset(g_uart1.DealBuffer,0,USART_BUFFER_SIZE); + } + } +} + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + STATUS_LED_OFF; + g_uart.RecvIdleTiming = SysTick_1ms; + g_uart.Receiving = 0x01; +} + +void UART2_TASK(void){ + U8_T rev = 0xFF; + if(g_uart.Receiving == 0x01){ + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + g_uart.RecvIdleTiming = SysTick_1ms; + memcpy(g_uart.DealBuffer,g_uart.RecvBuffer,g_uart.RecvLen); + g_uart.DealLen = g_uart.RecvLen; + g_uart.RecvLen = 0; + g_uart.Receiving = 0; + SYSCON_Int_Enable(); + +#if DBG_LOG_EN + // Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 revLen %d", g_uart.DealLen); + // Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart.DealBuffer,g_uart.DealLen); +#endif + if(g_uart.processing_cf != NULL){ + rev = g_uart.processing_cf(g_uart.DealBuffer,g_uart.DealLen); + } + + if(rev != 0x00) + { + //UARTTransmit(UART2,g_uart.DealBuffer,g_uart.DealLen);//回返 + // BT_Uart_Packing(g_uart.DealBuffer,g_uart.DealLen,REG_BTDEBUG_FLAG); + } + STATUS_LED_ON; + memset(g_uart.DealBuffer,0,USART_BUFFER_SIZE); + + } + } +} + + +/*因为开启了UART_TX_DONE_S 中断,发送完成需要清楚该中断标志位,因此每次调用串口输出后,需调用该函数,否则会在中断出不来 + * 已取消 + * */ +void UART_Waiting_For_Send(CSP_UART_T *uart){ + unsigned int Dataval = 0,delay_cnt = 0; + + do{ + Dataval = CSP_UART_GET_ISR(uart); + + Dataval = Dataval & UART_TX_DONE_S; + delay_cnt ++; + if(delay_cnt >= 50000){ + break; + } + }while(Dataval == 0x00); //发送完成 + uart->ISR=UART_TX_DONE_S; +} + +volatile int RS485_Comm_Flag = 0,RS485_Comm_Start = 0,RS485_Comm_End = 0,RS485_Comming = 0; +void MCU485_SendData(U8_T *buff,U16_T len){ + unsigned int Dataval = 0,delay_cnt = 0; + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + delay_nus(100); + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR;//GPIO_Reverse(GPIOA0,7); + } + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //GPIO_Write_High(GPIOA0,7); + + RS485_Comm_Flag = 0x01; + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + CK_CPU_EnAllNormalIrq(); + + UARTTransmit(UART1,buff,len); + + do{ + delay_nus(100); + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + + CK_CPU_DisAllNormalIrq(); + WRITE_LOW_DR; //GPIO_Write_Low(GPIOA0,7); + + RS485_Comm_Flag = 0x00; + CK_CPU_EnAllNormalIrq(); +} + +/********************************************************** + * @brief 带总线状态判断的485发送 + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + unsigned int Dataval = 0,delay_cnt = 0; + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + delay_nus(100); + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + REVERISE_DR; //485_DR + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + + CK_CPU_DisAllNormalIrq(); + + WRITE_HIGH_DR; //485_DR + + RS485_Comm_Flag = 0x01; + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + + CK_CPU_EnAllNormalIrq(); + + UARTTransmit(UART1,buff,len); + do{ + delay_nus(100); + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + + CK_CPU_DisAllNormalIrq(); + + WRITE_LOW_DR; //485_DR + + RS485_Comm_Flag = 0x00; + + m_send.BusState_Tick = SysTick_1ms; + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + + CK_CPU_EnAllNormalIrq(); + + return UART_BUSIDLE; //发送成功 + } + else //总线繁忙 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + +/********************************************************** + * @brief 重发、数据有效期、超时发送判断,2025-03-25 + * buff:发送数据 + * len:数据长度 + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + + if(DatSd == 0x01) + { + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + { + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + { + if((m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)){//数据发送间隔 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + m_send.ASend_Tick = SysTick_1ms; + m_send.ResendCnt++; + + return BUSSEND_SUCC;//数据发送成功 + } + } + }else{ + return DATA_END;//数据有效期结束 + } + }else{ + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 +} +/********************************************************** + * @brief 设置发送标志、组包、选择数据有效期档位,2025-03-25 + * data : 发送数据 + * sled : 数据长度 + * SCnt : 设置数据发送次数 + * indate : 设置数据有效期 + * tim_val : 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + memcpy(m_send.SendBuffer,data,sled); + m_send.SendLen = sled; + + m_send.DataValid_Time = indate;//数据有效期 + m_send.TotalCnt = SCnt; //数据发送次数 + m_send.DataWait_Time = tim_val;//发送数据间隔 + + m_send.ASend_Flag = 0x01; + m_send.SendState = BUSSEND_WAIT; + m_send.ResendCnt = 0x00; + m_send.BusbusyTimeout = SysTick_1ms; +} +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + m_send.SendState = BUSSEND_SUCC; +} + +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; +} + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + //空闲等待 + if(m_send.ASend_Flag == 0x01) + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + { + Dbg_Println(DBG_BIT_DEVICE_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发送标志位 + /*设置波特率*/ + + + if(m_send.Jump_Flag == 0x01){ + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Jump Boot"); + + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + + SYSCON_Software_Reset(); + } + } + } +} +//获取当前BUS485 发送状态,获取完状态后清除当前状态 +U8_T Get_BUS485_Send_State(void) +{ + U8_T rev_state = 0x0F; + + if(m_send.ASend_Flag == 0x01){ + + rev_state |= 0x80; + } + + rev_state |= (m_send.SendState & 0x0F); + + return rev_state; +} +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + { + CK_CPU_DisAllNormalIrq(); + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + { + m_send.BusState_Flag = UART_BUSIDLE; + } + CK_CPU_EnAllNormalIrq(); + } +} +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + + if(READ_RX_LEVEL_STATE == 0x01){ + m_send.HighBit_Flag = 0x01; //高电平标志置位 + }else if(READ_RX_LEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + } + CK_CPU_EnAllNormalIrq(); +} + + +/*调试信息输出接口*/ +U32_T Dbg_Switch = (DBG_OPT_Debug_STATUS << DBG_BIT_Debug_STATUS) + + (DBG_OPT_DEVICE_STATUS << DBG_BIT_DEVICE_STATUS) + + (DBG_OPT_SYS_STATUS << DBG_BIT_SYS_STATUS) + + (DBG_OPT_BT_STATUS << DBG_BIT_BT_STATUS) + + (DBG_OPT_BTDebug_STATUS << DBG_BIT_BTDebug_STATUS); + +#if DBG_LOG_EN + +char Dbg_Buffer[128] = {0}; +U32_T SysTick_Now = 0, SysTick_Last = 0, SysTick_Diff = 0; + +#endif + +void Dbg_Print(int DbgOptBit, const char *cmd, ...){ + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + SysTick_Now = SysTick_1ms; + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + SysTick_Last = SysTick_Now; + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer),"%8d [%6d]: ", SysTick_Now, SysTick_Diff); + DBG_Printf(Dbg_Buffer,str_offset); + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + SysTick_Now = SysTick_1ms; + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + SysTick_Last = SysTick_Now; + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + DBG_Printf(Dbg_Buffer,str_offset); + + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + va_end(args); //结束可变参数的获取 + + DBG_Printf(Dbg_Buffer,str_offset); + + DBG_Printf("\r\n",2); + + + } + +#endif +} + + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len){ +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + SysTick_Now = SysTick_1ms; + SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差 + SysTick_Last = SysTick_Now; + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%8ld [%6ld]: ", SysTick_Now, SysTick_Diff); + DBG_Printf(Dbg_Buffer,str_offset); + + for (uint32_t i = 0; i < len; i++) { + str_offset = snprintf(Dbg_Buffer, sizeof(Dbg_Buffer) , "%02X ", buff[i]); + DBG_Printf(Dbg_Buffer,str_offset); + } + + DBG_Printf("\r\n",2); + } + +#endif +} + +void Dbg_BT_Println(int DbgOptBit, const char *cmd, ...){ +#if DBG_LOG_EN + U16_T str_offset = 0; + + if (Dbg_Switch & (1 << DbgOptBit)) { + va_list args; //定义一个va_list类型的变量,用来储存单个参数 + va_start(args, cmd); //使args指向可变参数的第一个参数 + str_offset = vsnprintf(Dbg_Buffer, sizeof(Dbg_Buffer) ,cmd, args); //必须用vprintf等带V的 + va_end(args); //结束可变参数的获取 + + DBG_BTPrintf(Dbg_Buffer,str_offset); + + DBG_BTPrintf("\r\n",2); + } + +#endif +} + + + + + diff --git a/BLV_CS_AC100_V05/Source/arch/apt32f102_iostring.c b/BLV_CS_AC100_V05/Source/arch/apt32f102_iostring.c new file mode 100644 index 0000000..71147a1 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/arch/apt32f102_iostring.c @@ -0,0 +1,143 @@ +/* + ****************************************************************************** + * @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" +#define LDCC_DATA_P 0xe001105c /* LDCC Register. */ +#define LDCC_BIT_STATUS 0x80000000 /* LDCC Status bit. */ +//#define _debug_uart_io +/****************************************************************************** +* Main code +******************************************************************************/ +void __putchar__ (char ch) +{ +#ifdef _debug_uart_io + //UARTTxByte(UART0,s); //uart 0 + UARTTxByte(UART1,s); //uart 1 +#else + //select debug serial Pane + volatile unsigned int *pdata = (unsigned int *)LDCC_DATA_P; + while (*pdata & LDCC_BIT_STATUS); //Waiting for data read. + *pdata = ch; +#endif +} + +int *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 int *); + 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/BLV_CS_AC100_V05/Source/arch/apt32f102a.svc b/BLV_CS_AC100_V05/Source/arch/apt32f102a.svc new file mode 100644 index 0000000..e6d8764 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/arch/apt32f102a.svc @@ -0,0 +1,3453 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/arch/crt0.S b/BLV_CS_AC100_V05/Source/arch/crt0.S new file mode 100644 index 0000000..cc28c85 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/arch/crt0.S @@ -0,0 +1,213 @@ +//start from __start, +//(0)initialize vector table +//(1)initialize all registers +//(2)prepare initial reg values for user process +//(3)initialize supervisor mode stack pointer +//(4)construct ASID Table +//(5)prepare PTE entry for user process start virtual address +//(6)creat a mapping between VPN:0 and PFN:0 for kernel +//(7)set VBR register +//(8)enable EE and MMU +//(9)jump to the main procedure using jsri main + + +#define UserOption 0x55aa0005 +.export vector_table +//.import VecTable +.align 10 +vector_table: //totally 256 entries +// .long __start +// .rept 128 +// .long __dummy +// .endr + +.long __start +.long MisalignedHandler +.long AccessErrHandler +.long DummyHandler +.long IllegalInstrHandler +.long PriviledgeVioHandler +.long DummyHandler +.long BreakPointHandler +.long UnrecExecpHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long Trap0Handler +.long Trap1Handler +.long Trap2Handler +.long Trap3Handler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long DummyHandler +.long PendTrapHandler +.long CORETHandler +.long SYSCONIntHandler +.long IFCIntHandler +.long ADCIntHandler +.long EPT0IntHandler +.long DummyHandler//EPT0EMIntHandler +.long WWDTHandler +.long EXI0IntHandler +.long EXI1IntHandler +.long GPT0IntHandler +.long DummyHandler//GPT1IntHandler +.long DummyHandler +.long RTCIntHandler +.long UART0IntHandler +.long UART1IntHandler +.long UART2IntHandler//USARTIntHandler +.long DummyHandler +.long I2CIntHandler +.long DummyHandler +.long SPI0IntHandler +.long SIO0IntHandler +.long EXI2to3IntHandler +.long EXI4to9IntHandler +.long EXI10to15IntHandler +.long CNTAIntHandler +.long TKEYIntHandler +.long LPTIntHandler +.long DummyHandler//LEDIntHandler +.long BT0IntHandler +.long BT1IntHandler +.long DummyHandler//BT2IntHandler +.long DummyHandler//BT3IntHandler +.long UserOption + +.text +.export __start +.long 0x00000000 +.long 0x00000000 +// .long __start +__start: + + + //initialize all registers + movi r0, 0 + movi r1, 0 + movi r2, 0 + movi r3, 0 + movi r4, 0 + movi r5, 0 + movi r6, 0 + movi r7, 0 + //movi r8, 0 + //movi r9, 0 + //movi r10, 0 + //movi r11, 0 + //movi r12, 0 + //movi r13, 0 + //movi r14, 0 + //movi r15, 0 + +//set VBR + lrw r2, vector_table + mtcr r2, cr<1,0> + +//enable EE bit of psr + mfcr r2, cr<0,0> + bseti r2, r2, 8 + mtcr r2, cr<0,0> + +////set rom access delay +// lrw r1, 0xe00000 +// lrw r2, 0x7 +// st.w r2, (r1,0x0) + +////enable cache +// lrw r1, 0xe000f000 +// movi r2, 0x2 +// st.w r2, (r1,0x0) +// lrw r2, 0x29 +// st.w r2, (r1,0x4) +// movi r2, 0x1 +// st.w r2, (r1,0x0) + +//disable power peak + lrw r1, 0xe000ef90 + movi r2, 0x0 + st.w r2, (r1, 0x0) + + + +//initialize kernel stack + lrw r7, __kernel_stack + mov r14,r7 + subi r6,r7,0x4 + + //lrw r3, 0x40 + lrw r3, 0x04 + + subu r4, r7, r3 + lrw r5, 0x0 +INIT_KERLE_STACK: + addi r4, 0x4 + st.w r5, (r4) + //cmphs r7, r4 + cmphs r6, r4 + bt INIT_KERLE_STACK + +__to_main: + lrw r0,__main + jsr r0 + mov r0, r0 + mov r0, r0 + + + + lrw r15, __exit + lrw r0,main + jmp r0 + mov r0, r0 + mov r0, r0 + mov r0, r0 + mov r0, r0 + mov r0, r0 + +.export __exit +__exit: + + lrw r4, 0x20003000 + //lrw r5, 0x0 + mov r5, r0 + st.w r5, (r4) + + mfcr r1, cr<0,0> + lrw r1, 0xFFFF + mtcr r1, cr<11,0> + lrw r1, 0xFFF + movi r0, 0x0 + st r1, (r0) + +.export __fail +__fail: + lrw r1, 0xEEEE + mtcr r1, cr<11,0> + lrw r1, 0xEEE + movi r0, 0x0 + st r1, (r0) + +__dummy: + br __fail + +.export DummyHandler +DummyHandler: + br __fail + + +.data +.align 10 +.long __start diff --git a/BLV_CS_AC100_V05/Source/arch/mem_init.c b/BLV_CS_AC100_V05/Source/arch/mem_init.c new file mode 100644 index 0000000..d9d8c00 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/arch/mem_init.c @@ -0,0 +1,44 @@ +/* + * Filename : mem_init.c + * + * Memory Initialization + * + * Copyrights 2015 @ APTCHIP + * + * + */ +#include "string.h" + +extern char _end_rodata[]; +extern char _start_data[]; +extern char _end_data[]; + +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + + char *dst = _start_data; + char *src = _end_rodata; + + /* 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 ) { +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + } + + +} + diff --git a/BLV_CS_AC100_V05/Source/cdkws.mk b/BLV_CS_AC100_V05/Source/cdkws.mk new file mode 100644 index 0000000..c897709 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/cdkws.mk @@ -0,0 +1,14 @@ +.PHONY: clean All Project_Title Project_Build + +All: Project_Title Project_Build + +Project_Title: + @echo "----------Building project:[ MD203F8P - BuildSet ]----------" + +Project_Build: + @make -r -f MD203F8P.mk -j 8 -C ./ + + +clean: + @echo "----------Cleaning project:[ MD203F8P - BuildSet ]----------" + diff --git a/BLV_CS_AC100_V05/Source/ckcpu.ld b/BLV_CS_AC100_V05/Source/ckcpu.ld new file mode 100644 index 0000000..fc4f237 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/ckcpu.ld @@ -0,0 +1,58 @@ +MEMORY +{ +ROM(RX) : ORIGIN = 0x00002800, LENGTH = 54K +RAM(RWX) : ORIGIN = 0x20000000, LENGTH = 4K +} +__kernel_stack = ORIGIN(RAM) + LENGTH(RAM) -8 ; +ENTRY(__start) + +SECTIONS { + .text : + { + . = ALIGN(0x4) ; + *crt0.o (.text) + *(.text) + } >ROM + + .RomCode : + { + . = ALIGN(0x4) ; + *(.text) + } >ROM + + .rodata : + { + . = ALIGN(0x4) ; + *(.rodata) + *(.rodata.*) + . = ALIGN(0x4) ; + _end_rodata = .; + } >ROM + + .data : AT(_end_rodata) + { + . = ALIGN(0x4) ; + _start_data = .; + *( .data ); + . = ALIGN(0x4) ; + _end_data = .; + } >RAM + + .bss : + { + . = ALIGN(0x4) ; + _bss_start = . ; + *(.sbss) + *(.sbss.*) + *(.scommon) + *(.bss) + *(.bss.*) + *(COMMON) + . = ALIGN(0x4) ; + _ebss = . ; + _end = . ; + end = . ; + } >RAM + +} + diff --git a/BLV_CS_AC100_V05/Source/doc/APT32F102_Lib_Fix_Log.md b/BLV_CS_AC100_V05/Source/doc/APT32F102_Lib_Fix_Log.md new file mode 100644 index 0000000..f4df6c0 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/doc/APT32F102_Lib_Fix_Log.md @@ -0,0 +1,84 @@ +#20180129 V1.00 初版 + +#20180131 V1.02: + 1.apt32f102_i2c.h,修改I2C_Slave_CONFIG(); PA0.1定义错误 + 2.apt32f102_i2c.c,修改void I2C_Slave_Receive(void) + 3.apt32f102_interrupt.c,修改LPTIntHandler(); + 4.syscon.h,修改“SYSCON_SCLKCR_RST ((CSP_REGISTER_T)0xD22Dul<<16)” + 5.syscon.C, SYSCON_RST_VALUE(void) ; + 5.EPT.C &EPT.H 修改 + 6.syscon.h,修改 INTDET_POL_X_TypeDef枚举; + 7.apt32f102_initial.c ,修改EPT0_Config(); + 8.apt32f102_interrupt.c,修改EPT0IntHandler(); + 9.修改了CRC输入函数,分32/16/8bit数据输入 + 10.增加了GPT同步及触发事件函数 + 11.增加了WWDT初始化函数 +#20201124 V1.02: + 1.修改UART_IO_Init(); PA0.15 PA0.14初始化 + 2.删除SYSCON_CONFIG();"EVTRG function 程序屏蔽" + 3.删除了tkey相关残留的程序 +#20201124 V1.03: + 1.增加了touch key库文件 +#20201202 V1.04: + 1.修改了SYSCON_General_CMD();函数,fix 使用外部晶振后调试口被占用的问题 + 2.修改了BT PB0.0配置错误的问题 + 3.修改了外部中断向量EXI9错误的问题 + 4.修改了外部中断向量EXI4to9IntHandle,EXI10to15IntHandler + 5.修改了GPT.h中PB0.1定义错误的问题 + 6.增加了IFC读ReadDataArry_U8函数,读数据时字节长度可不按4的倍数 + 7.修改了spi.c中PA0.8配置错误的问题 +#20200121 V1.05: + 1.修改了ADC初始化中的错误 + 2.修改了apt32f102_interrupt.c中EXI15的错误 + 3.修改了BT.c中BT0和BT1混淆的问题 + 4.修复了使用触摸FVR参考时,调用ADC造成触摸失灵的问题 + 5.增加了tkey的睡眠睡醒功能 + 6.修改了1.04 .s文件中外部中断定义错误的问题 +#20210601 V1.06: + 1.修改了COUNTERA IO配置错误 + 2.修改了BT中IO配置错误 + 3.修改了EPT PB0.5 CHAY配置错误 + 4.修改了EPT 外部触发端口使能配置相反的错误 + 5.增加了I2C做从机时配置i2c中断优先级为最高的配置 + 6.修改了调用GPIO_DeInit后调试口被修改的问题 + 7.修复了TK在FVR模式以外开启TCH3后触摸初始化卡死的问题 + 8.修改了TK参数配置中,使能TK的方式,采用更直观的方式 + 9.修改了TK参数配置中,EC默认电压为3V,FVR参考默认2.048V,防止客户使用3.3V工作电压时一开始TK无法工作的问题 +#20210621 V1.08: + 1.解决了触摸长时间睡眠后,唤醒失败的问题(功耗增加10uA) + 2.修改了注释为英文 + 3.修改了不同版本的触摸库文件方便不同应用 +#20210801 V1.09: + 1.修改了syscon.c,解决了系统主频在切换时偶尔遇到的时钟卡死问题 + 2.增加了IO remap功能函数 + 3.修正1_09和1_09M这两个版本.a库,多键模式按键误清零的问题 + 4.删除之前版本initial.c中对EVTRG function的配置,以解决因此产生的某些情况下睡眠后功耗异常的问题 +#20210825 V1.10: + 1.修改了SPI做从机时,PA0.14/PA0.15配置错误的问题 + 2.修改了RTC中参数的定义为volatile,解决某些意外情况下进位时小时位出现错误值的问题 + 3.增加了BT中控制波形stop时输出高/低电平函数 + 4.修改gpio.c中配置外部组扩展配置时PB0组IO无法配置的问题,增加了EXI16~19的中断函数 + 5.syscon中加入clo输出配置函数 + 6.在syscon.c中增加Set_INT_Priority();函数,可直接配置中断优先级 + 7.在fwlib文件夹增加了iostring.c文件 + 8.修改库文件包名称为APT32F102x_StdPeriph_Lib +#20211101 V1.11: + 1.修改了SIO做RX时,配置错误的问题 + 2.增加了debug print功能 + 3.增加了芯片svc文件,方便查看芯片register内容 + 4.解决了TK和ADC选择不同参考源时造成的互相影响的问题,修改了ADC.c和TK库文件 + 5.修改了EPT中EVTRG配置移位错误 +#20211122 V1.12: + 1.修改了GPT 同步触发模式的配置定义错误 + 2.增加了频率校准函数std_clk_calib();支持HFOSC IMOSC频率软件校准; + 3.lib_102ClkCalib_1_03,修改了1.02的校准库在与触摸低功耗共同使用时,会造成睡眠功耗偏大到1.2mA的问题 +#20211213 V1.13: + 1.修改了在使用ADC时,因为配置ADC序列和序列个数不一致而可能引起的ADC卡死问题 + 2.修改了UART初始化使能函数,解决了因配置顺序导致INT_TX_DONE中断无法进入的问题 + 3.修改了IFC_MR中不同时钟频率下WAIT和SPEED默认值 + 4.解除了TK使用FVR模式参考电压固定选择4.096V的限制,可选择2.048V"抗干扰能力低于4.096V" +#20220825 V1.15: + 1.修改去除部分编译中出现的警告 + 2.修改触摸库函数,增加因异常情况overflow后造成的按键扫描卡住问题 + 3.修改部分代码中注释的书写问题 + 4.修改了uart初始化中奇偶校验错误的问题 \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/doc/APT32F102_TKLib_Version.md b/BLV_CS_AC100_V05/Source/doc/APT32F102_TKLib_Version.md new file mode 100644 index 0000000..0c108e4 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/doc/APT32F102_TKLib_Version.md @@ -0,0 +1,16 @@ +#Touch Key库最新版本V1.15 +#Touch Key中断扫描版本 +lib_102TKey_1_15.a 触摸库文件完整版(默认库文件) +lib_102TKey_1_15C.a 触摸库文件精简版,程序占用空间更小,扫描速度更快,抗干扰性能降低,睡眠功耗更低 +#Touch Key主循环扫描版本 +lib_102TKey_1_15M.a 触摸库文件主循环扫描完整版,不支持睡眠唤醒 +lib_102TKey_1_15MC.a 触摸库文件主循环扫描精简版,程序占用空间更小,扫描速度更快,抗干扰性能降低,去除coret占用,没有长按强制更新功能,不支持睡眠唤醒 +#说明: +C---Compression +M---Main Loop +#注意: +1. 使用Touch Key主循环扫描版本,需要在主循环中添加tk_prgm();函数,每次执行时间在1~1.8ms之间 +2. 未使用coret功能的版本,需要在apt32f102_interrupt.c中重新打开CORETHandler()入口 +3. 中断扫描版本:每一轮的按键扫描时间可控,触摸体验良好;会占用中断资源,如果有高时序要求的中断,没有配置中断好中断优先级的话会影响高时序要求的中断 +4. 主循环版本:不会占用中断资源,对别的中断不会有影响;每一轮的按键扫描时间不可控,如果主循环一次循环里有函数占用大量时间,会影响按键的触摸体验 +5. 使用1.15版本,必须在linker中包含libm数学库 diff --git a/BLV_CS_AC100_V05/Source/drivers/apt32f102.c b/BLV_CS_AC100_V05/Source/drivers/apt32f102.c new file mode 100644 index 0000000..0eb4720 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/drivers/apt32f102.c @@ -0,0 +1,146 @@ +/* + ****************************************************************************** + * @file apt32f102.c + * @author APT AE Team + * @version V1.01 + * @date 2019/04/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.h" + + +/** + * @addtogroup Struct pointer assignment Functions + * @{ + */ +CSP_CK801_T *CK801 = (CSP_CK801_T *)CK801_BASEADDR ; + +CSP_IFC_T *IFC = (CSP_IFC_T *)APB_IFCBase ; +CSP_SYSCON_T *SYSCON = (CSP_SYSCON_T *)APB_SYSCONBase ; + +CSP_TKEY_T *TKEY = (CSP_TKEY_T *)APB_TKEYBase ; +CSP_TKEYBUF_T *TKEYBUF = (CSP_TKEYBUF_T *)APB_TKEYBUFBase; +CSP_ADC12_T *ADC0 = (CSP_ADC12_T *)APB_ADC0Base ; + +CSP_GPIO_T *GPIOA0 = (CSP_GPIO_T *)APB_GPIOA0Base ; // A0 +CSP_GPIO_T *GPIOB0 = (CSP_GPIO_T *)APB_GPIOB0Base ; // B0 +CSP_IGRP_T *GPIOGRP = (CSP_IGRP_T *)APB_IGRPBase; + +CSP_UART_T *UART0 = (CSP_UART_T *)APB_UART0Base ; +CSP_UART_T *UART1 = (CSP_UART_T *)APB_UART1Base ; +CSP_UART_T *UART2 = (CSP_UART_T *)APB_UART2Base ; +CSP_SSP_T *SPI0 = (CSP_SSP_T *)APB_SPI0Base ; +CSP_I2C_T *I2C0 = (CSP_I2C_T *)APB_I2C0Base ; +CSP_SIO_T *SIO0 = (CSP_SIO_T *)APB_SIO0Base ; +CSP_CA_T *CA0 = (CSP_CA_T *)APB_CNTABase ; + +CSP_GPT_T *GPT0 = (CSP_GPT_T *)APB_GPT0Base; +CSP_EPT_T *EPT0 = (CSP_EPT_T *)APB_EPT0Base ; +CSP_ETCB_T *ETCB = (CSP_ETCB_T *)APB_ETCBBase ; +CSP_RTC_T *RTC = (CSP_RTC_T *)APB_RTCBase ; +CSP_LPT_T *LPT = (CSP_LPT_T *)APB_LPTBase ; +CSP_WWDT_T *WWDT = (CSP_WWDT_T *)APB_WWDTBase ; +CSP_BT_T *BT0 = (CSP_BT_T *)APB_BT0Base ; +CSP_BT_T *BT1 = (CSP_BT_T *)APB_BT1Base ; +CSP_CRC_T *CRC = (CSP_CRC_T *)AHB_CRCBase ; +CSP_HWD_T *HWD = (CSP_HWD_T *)APB_HWDBase ; + +int __divsi3 ( int a, int b) +{ + int PSR; + __asm volatile( + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + __asm volatile( + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; +} + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + int PSR; + __asm volatile( + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + __asm volatile( + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; +} + +int __modsi3 ( int a, int b) +{ + int PSR; + __asm volatile( + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + __asm volatile( + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + int PSR; + __asm volatile( + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + __asm volatile( + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; +} +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/drivers/apt32f102_ck801.c b/BLV_CS_AC100_V05/Source/drivers/apt32f102_ck801.c new file mode 100644 index 0000000..3cf5be2 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/drivers/apt32f102_ck801.c @@ -0,0 +1,275 @@ +/* + ****************************************************************************** + * @file apt32f102_ck801.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.h" +#include "apt32f102_ck801.h" + +void CK801_Init(void) +{ + /* Initial the Interrupt source priority level registers */ + CK801->IPR[0] = 0xC0804000; + CK801->IPR[1] = 0xC0004000; + CK801->IPR[2] = 0xC0804000; + CK801->IPR[3] = 0xC0804000; + CK801->IPR[4] = 0xC0804000; + CK801->IPR[5] = 0xC0804000; + CK801->IPR[6] = 0xC0804000; + CK801->IPR[7] = 0xC0804000; + + CK801->IPTR = 0x00000000;//disable threshold +} + +void force_interrupt(IRQn_Type IRQn) +{ + CK801->ISPR = (1 << (uint32_t)(IRQn)); +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); +} + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); +} + +/* ########################## NVIC functions #################################### */ + + +/** + * @brief Enable Interrupt in NVIC Interrupt Controller + * + * @param IRQn The positive number of the external interrupt to enable + * + * Enable a device specific interupt in the NVIC interrupt controller. + * The interrupt number cannot be a negative value. + */ +__INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + + CK801->ISER = 1 << (uint32_t)(IRQn); +} + +/** + * @brief Disable the interrupt line for external interrupt specified + * + * @param IRQn The positive number of the external interrupt to disable + * + * Disable a device specific interupt in the NVIC interrupt controller. + * The interrupt number cannot be a negative value. + */ +__INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + CK801->ICER = 1 << (uint32_t)(IRQn); +} + +/** + * @brief Read the interrupt pending bit for a device specific interrupt source + * + * @param IRQn The number of the device specifc interrupt + * @return always 0 + */ +__INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return (uint32_t)(CK801->ISPR); +} + +/** + * @brief Set the pending bit for an external interrupt + * + * @param IRQn The number of the interrupt for set pending + * + * No effect. + */ +__INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + CK801->ISPR = (1 << (uint32_t)(IRQn)); +} +/** + * @brief Clear the pending bit for an external interrupt + * + * @param IRQn The number of the interrupt for clear pending + * + * No effect. + */ +__INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + CK801->ICPR = (1 << (uint32_t)(IRQn)); +} + +/** + * @brief Read the active bit for an external interrupt + * + * @return always 0 + * + */ +__INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return (CK801->IABR & (1 << IRQn)); +} + +__INLINE uint32_t NVIC_GetActiveVector(void) +{ + unsigned int vectactive = 0; + //isr low 8bits gives the active vector + vectactive = (CK801 ->ISR & 0xff); + return vectactive; +} + +/** + * @brief Set the priority for an interrupt + * + * @param IRQn The number of the interrupt for set priority + * @param priority The priority to set ,the number rang: [0-3] + * + * Set the priority for the specified interrupt. The interrupt + * number must be positive to specify an external (device specific) + * interrupt. + */ +__INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + + uint32_t tmp = ((IRQn & 0x03) << 3); + uint8_t index = IRQn>>2; + if(IRQn >= 0) { + CK801->IPR[index] &= ~(0xff << tmp); + CK801->IPR[index] |= priority << (tmp+6); + } + +} +/** + * @brief Read the priority for an interrupt + * + * @param IRQn The number of the interrupt for get priority + * @return The priority for the interrupt + * + * Read the priority for the specified interrupt. The interrupt + * number must be positive to specify an external (device specific) + * interrupt. + */ +__INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) +{ + uint32_t tmp = ((IRQn & 0x03) << 3); + uint8_t index = IRQn>>2; + return (uint32_t)(CK801->IPR[index])>>(tmp + 6); +} + + +/*###################################################################*/ +/*############# Threshold Enable & Set Threshold ###############*/ +/*###################################################################*/ + +/************************************************************ + * @brief enable NVIC threshold + * @name: NVIC_EnableThreshold + * @no param + * + */ + +__INLINE void NVIC_EnableThreshold(void) +{ + CK801 ->IPTR |= 0x80000000; +} + +/************************************************************ + * @brief disnable NVIC threshold + * @name: NVIC_DisableThreshold + * @no param + * + */ + +__INLINE void NVIC_DisableThreshold(void) +{ + CK801 ->IPTR &= ~0x80000000; +} + + +/************************************************************ + * @brief set NVIC Priothreshold + * @name: NVIC_SetPrioThreshold + * @param prioshreshold the priority of threshold[0,3] + * + */ + +__INLINE void NVIC_SetPrioThreshold(uint8_t prioshreshold) +{ + CK801 -> IPTR &= 0xffffff00; + CK801 -> IPTR |= (prioshreshold << 6); +} + +/************************************************************ + * @brief set NVIC Vectthreshold + * @name: NVIC_SetVectThreshold + * @param vectthreshold the vector of threshold[0,31] + * + */ + +__INLINE void NVIC_SetVectThreshold(uint8_t vectthreshold) +{ + CK801 -> IPTR &= 0xffff00ff; + CK801 -> IPTR |= ((vectthreshold + 32) << 8); +} + + +/*###################################################################*/ +/*################ Low Power Wakeup Enable ###################*/ +/*###################################################################*/ + +/************************************************************* + * @name: NVIC_PowerWakeUp_Enable + * @brief: enable the bit for Power wake up + * @param: irqn the irqnumber,eg:CK802_CORETIM_IRQn + */ +__INLINE void NVIC_PowerWakeUp_Enable(IRQn_Type irqn) +{ + CK801->IWER |= (1 << irqn); +} + +/************************************************************* + * @name: NVIC_PowerWakeUp_Disable + * @func: disable the bit for Power wake up + * @param: irqn the irqnumber,eg:CK802_CORETIM_IRQn + */ +__INLINE void NVIC_PowerWakeUp_Disable(IRQn_Type irqn) +{ + CK801->IWDR |= (1 << irqn); +} + +/************************************************************* + * @name: NVIC_PowerWakeUp_EnableAll + * @func: enable all bits for Power wake up + * @param: none + */ +__INLINE void NVIC_PowerWakeUp_EnableAll(void) +{ + CK801->IWER = 0xffffffff; +} + +/************************************************************* + * @name: NVIC_PowerWakeUp_EnableAll + * @func: disable all bits for Power wake up + * @param: none + */ +__INLINE void NVIC_PowerWakeUp_DisableAll(void) +{ + CK801->IWDR = 0xffffffff; +} + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102.h b/BLV_CS_AC100_V05/Source/include/apt32f102.h new file mode 100644 index 0000000..05a3ad0 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102.h @@ -0,0 +1,774 @@ +/* + ****************************************************************************** + * @file apt32f102_initial.c + * @author APT AE Team + * @version V1.08 + * @date 2018/11/01 + ****************************************************************************** + *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 -------------------------------------*/ +#ifndef _apt32f102_H +#define _apt32f102_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102_types_local.h" +#include "apt32f102_ck801.h" + +/** +@brief CK801 bits Structure +*/ +typedef struct { + volatile unsigned int ReservedA[4]; //0xE000E000 + volatile unsigned int CORET_CSR; //0xE000E010 + volatile unsigned int CORET_RVR; //0xE000E014 + volatile unsigned int CORET_CVR; //0xE000E018 + volatile unsigned int CORET_CALIB; //0xE000E01C + volatile unsigned int ReservedB[56]; //0xE000E020 + volatile unsigned int ISER; //0xE000E100 + volatile unsigned int ReservedC[15]; // + volatile unsigned int IWER; //0xE000E140 + volatile unsigned int ReservedD[15]; // + volatile unsigned int ICER; //0xE000E180 + volatile unsigned int ReservedE[15]; // + volatile unsigned int IWDR; //0xE000E1C0 + volatile unsigned int ReservedF[15]; // + volatile unsigned int ISPR; //0xE000E200 + volatile unsigned int ReservedG[31]; // + volatile unsigned int ICPR; //0xE000E280 + volatile unsigned int ReservedH[31]; // + volatile unsigned int IABR; //0xE000E300 + volatile unsigned int ReservedI[63]; // + volatile unsigned int IPR[8]; //0xE000E400 ~ 0xE000E41C + volatile unsigned int ReservedJ[504]; // + volatile unsigned int ISR; //0xE000EC00 + volatile unsigned int IPTR; //0xE000EC04 +} CSP_CK801_T; +/** +@brief IFC bits Structure +*/ +typedef volatile struct { + volatile unsigned int IDR ; + volatile unsigned int CEDR ; + volatile unsigned int SRR ; + volatile unsigned int CMR ; + volatile unsigned int CR ; + volatile unsigned int MR ; + volatile unsigned int FM_ADDR ; + volatile unsigned int Reserved ; + volatile unsigned int KR ; + volatile unsigned int IMCR ; + volatile unsigned int RISR ; + volatile unsigned int MISR ; + volatile unsigned int ICR ; +} CSP_IFC_T ; +/** +@brief SYSCON bits Structure +*/ +typedef volatile struct { /*!< SYSCON Structure */ + volatile unsigned int IDCCR; /*!< 0x000: Identification & System Controller Clock Control Register */ + volatile unsigned int GCER; /*!< 0x004: System Controller General Control Enable Register */ + volatile unsigned int GCDR; /*!< 0x008: System Controller General Control Disable Register */ + volatile unsigned int GCSR; /*!< 0x00C: System Controller General Control Status Register */ + volatile unsigned int CKST; /*!< 0x010*/ + volatile unsigned int RAMCHK; /*!< 0x014*/ + volatile unsigned int EFLCHK; /*!< 0x018*/ + volatile unsigned int SCLKCR; /*!< 0x01C: System Controller System Clock Selection & Division Register */ + volatile unsigned int PCLKCR; /*!< 0x020: System Controller Peripheral Clock Selection & Division Register */ + volatile unsigned int _RSVD0; /*!< 0x024*/ + volatile unsigned int PCER0; /*!< 0x028: System Controller Peripheral Clock Enable Register */ + volatile unsigned int PCDR0; /*!< 0x02C: System Controller Peripheral Clock Disable Register */ + volatile unsigned int PCSR0; /*!< 0x030: System Controller Peripheral Clock Status Register */ + volatile unsigned int PCER1; /*!< 0x034: System Controller Peripheral Clock Enable Register */ + volatile unsigned int PCDR1; /*!< 0x038: System Controller Peripheral Clock Disable Register */ + volatile unsigned int PCSR1; /*!< 0x03C: System Controller Peripheral Clock Status Register */ + volatile unsigned int OSTR; /*!< 0x040: System Controller External OSC Stable Time Control Register */ + volatile unsigned int _RSVD1; /*!< 0x044: System Controller PLL Stable Time Control Register */ + volatile unsigned int _RSVD2; /*!< 0x048: System Controller PLL PMS Value Control Register */ + volatile unsigned int LVDCR; /*!< 0x04C: System Controller LVD Control Register */ + volatile unsigned int CLCR; /*!< 0x050: System Controller IMOSC Fine Adjustment Register*/ + volatile unsigned int PWRCR; /*!< 0x054: System Controller Power Control Register */ + volatile unsigned int PWRKEY; /*!< 0x058: System Controller Power Control Register */ + volatile unsigned int _RSVD3; /*!< 0x05C: */ + volatile unsigned int _RSVD4; /*!< 0x060: */ + volatile unsigned int OPT1; /*!< 0x064: System Controller OSC Trim Control Register */ + volatile unsigned int OPT0; /*!< 0x068: System Controller Protection Control Register */ + volatile unsigned int WKCR; /*!< 0x06C: System Controller Clock Quality Check Control Register */ + volatile unsigned int _RSVD5; /*!< 0x070: System Controller Clock Quality Check Control Register */ + volatile unsigned int IMER; /*!< 0x074: System Controller Interrupt Enable Register */ + volatile unsigned int IMDR; /*!< 0x078: System Controller Interrupt Disable Register */ + volatile unsigned int IMCR; /*!< 0x07C: System Controller Interrupt Mask Register */ + volatile unsigned int IAR; /*!< 0x080: System Controller Interrupt Active Register */ + volatile unsigned int ICR; /*!< 0x084: System Controller Clear Status Register */ + volatile unsigned int RISR; /*!< 0x088: System Controller Raw Interrupt Status Register */ + volatile unsigned int MISR; /*!< 0x08C: System Controller Raw Interrupt Status Register */ + volatile unsigned int RSR; /*!< 0x090: System Controller Raw Interrupt Status Register */ + volatile unsigned int EXIRT; /*!< 0x094: System Controller Reset Status Register */ + volatile unsigned int EXIFT; /*!< 0x098: System Controller External Interrupt Mode 1 (Positive Edge) Register */ + volatile unsigned int EXIER; /*!< 0x09C: System Controller External Interrupt Mode 2 (Negative Edge) Register */ + volatile unsigned int EXIDR; /*!< 0x0A0: System Controller External Interrupt Enable Register */ + volatile unsigned int EXIMR; /*!< 0x0A4: System Controller External Interrupt Disable Register */ + volatile unsigned int EXIAR; /*!< 0x0A8: System Controller External Interrupt Mask Register */ + volatile unsigned int EXICR; /*!< 0x0AC: System Controller External Interrupt Active Register */ + volatile unsigned int EXIRS; /*!< 0x0B0: System Controller External Interrupt Clear Status Register */ + volatile unsigned int IWDCR; /*!< 0x0B4: System Controller Independent Watchdog Control Register */ + volatile unsigned int IWDCNT; /*!< 0x0B8: SystCem Controller Independent Watchdog Counter Value Register */ + volatile unsigned int IWDEDR; /*!< 0x0BC: System Controller Independent Watchdog Enable/disable Register*/ + volatile unsigned int IOMAP0; /*!< 0x0C0: Customer Information Content mirror of 1st byte*/ + volatile unsigned int IOMAP1; /*!< 0x0C4: Customer Information Content mirror of 1st byte*/ + volatile unsigned int CINF0; /*!< 0x0C8: Customer Information Content mirror of 1st byte*/ + volatile unsigned int CINF1; /*!< 0x0CC: Customer Information Content mirror of 1st byte*/ + volatile unsigned int FINF0; /*!< 0x0D0: Customer Information Content mirror of 1st byte*/ + volatile unsigned int FINF1; /*!< 0x0D4: Customer Information Content mirror of 1st byte*/ + volatile unsigned int FINF2; /*!< 0x0D8: Customer Information Content mirror of 1st byte*/ + volatile unsigned int _RSVD6; /*!< 0x0DC: Customer Information Content mirror of 1st byte*/ + volatile unsigned int ERRINF; /*!< 0x0E0:*/ + volatile unsigned int UID0 ; /*!< 0x0E4: Customer Information Content mirror of 1st byte*/ + volatile unsigned int UID1 ; /*!< 0x0E8: Customer Information Content mirror of 1st byte*/ + volatile unsigned int UID2 ; /*!< 0x0EC: Customer Information Content mirror of 1st byte*/ + volatile unsigned int PWROPT; /*!< 0x0F0: Power recovery timmming control */ + volatile unsigned int EVTRG; /*!< 0x0F4: Trigger gen */ + volatile unsigned int EVPS; /*!< 0x0F8: Trigger prs */ + volatile unsigned int EVSWF; /*!< 0x0FC: Trigger software force */ + volatile unsigned int UREG0; /*!< 0x100: User defined reg0 */ + volatile unsigned int UREG1; /*!< 0x104: User defined reg1 */ + volatile unsigned int UREG2; /*!< 0x108: User defined reg0 */ + volatile unsigned int UREG3; /*!< 0x10C: User defined reg1 */ +} CSP_SYSCON_T; +/** +@brief ETCB bits Structure +*/ + typedef volatile struct + { + volatile unsigned int EN; /* ETCB Enable */ + volatile unsigned int SWTRG; /* ETCB Software Trigger Generator */ + volatile unsigned int CH0CON0; /* ETCB Channel 0 Control Register 0 */ + volatile unsigned int CH0CON1; /* ETCB Channel 0 Control Register 1 */ + volatile unsigned int CH1CON0; /* ETCB Channel 1 Control Register 0 */ + volatile unsigned int CH1CON1; /* ETCB Channel 1 Control Register 1 */ + volatile unsigned int CH2CON0; /* ETCB Channel 2 Control Register 0 */ + volatile unsigned int CH2CON1; /* ETCB Channel 2 Control Register 1 */ + volatile unsigned int _RSVD0; + volatile unsigned int _RSVD1; + volatile unsigned int _RSVD2; + volatile unsigned int _RSVD3; + volatile unsigned int CH3CON; /* ETCB Channel 3 Control Register */ + volatile unsigned int CH4CON; /* ETCB Channel 3 Control Register */ + volatile unsigned int CH5CON; /* ETCB Channel 3 Control Register */ + volatile unsigned int CH6CON; /* ETCB Channel 3 Control Register */ + volatile unsigned int CH7CON; /* ETCB Channel 3 Control Register */ + } CSP_ETCB_T, *CSP_ETCB_PTR; +/** +@brief TKEY bits Structure +*/ +typedef volatile struct +{ + volatile unsigned int TCH_CCR; /* Control Register */ + volatile unsigned int TCH_CON0; /* Control Register */ + volatile unsigned int TCH_CON1; /* Control Register */ + volatile unsigned int TCH_SCCR; /* Hardmacro control */ + volatile unsigned int TCH_SENPRD; /* Sensing target value */ + volatile unsigned int TCH_VALBUF; /* Reference value capture value*/ + volatile unsigned int TCH_SENCNT; /* Sensing counter value*/ + volatile unsigned int TCH_TCHCNT; /* Reference counter value*/ + volatile unsigned int TCH_THR; /* Match Status */ + volatile unsigned int Reserved0; + volatile unsigned int TCH_RISR; /* Interrupt Enable */ + volatile unsigned int TCH_IER; /* Interrupt Clear */ + volatile unsigned int TCH_ICR; /* Sensing target value */ + volatile unsigned int TCH_RWSR; /* Reference value capture value*/ + volatile unsigned int TCH_OVW_THR; /* Sensing counter value*/ + volatile unsigned int TCH_OVF; /* Reference counter value*/ + volatile unsigned int TCH_OVT; /* Match Status */ + volatile unsigned int TCH_SYNCR; /* Interrupt Enable */ + volatile unsigned int TCH_EVTRG; /* Interrupt Clear */ + volatile unsigned int TCH_EVPS; /* Sensing target value */ + volatile unsigned int TCH_EVSWF; /* Reference value capture value*/ +} CSP_TKEY_T, *CSP_TKEY_PTR; +/** +@brief TKEY advance bits Structure +*/ +typedef volatile struct +{ + volatile unsigned int TCH_CHVAL[18]; /* Reference value capture value */ + volatile unsigned int TCH_SEQCON[18]; /* SEQ Hardmacro control */ +} CSP_TKEYBUF_T, *CSP_TKEYBUF_PTR; +/** +@brief ADC0 bits Structure +*/ + typedef volatile struct + { + volatile unsigned int ECR; /**< Clock Enable Register */ + volatile unsigned int DCR; /**< Clock Disable Register */ + volatile unsigned int PMSR; /**< Power Management Status Register */ + volatile unsigned int Reserved0; + volatile unsigned int CR; /**< Control Register */ + volatile unsigned int MR; /**< Mode Register */ + volatile unsigned int SHR; + volatile unsigned int CSR; /**< Clear Status Register */ + volatile unsigned int SR; /**< Status Register */ + volatile unsigned int IER; /**< Interrupt Enable Register */ + volatile unsigned int IDR; /**< Interrupt Disable Register */ + volatile unsigned int IMR; /**< Interrupt Mask Register */ + volatile unsigned int SEQ[16]; /**< Conversion Mode Register 0~11 */ + volatile unsigned int PRI; /**< Conversion Priority Register */ + volatile unsigned int TDL0; /**< Trigger Delay control Register */ + volatile unsigned int TDL1; /**< Trigger Delay control Register */ + volatile unsigned int SYNCR; /**< Sync Control Register */ + volatile unsigned int Reserved1; /**< Trigger Filter Control Register */ + volatile unsigned int Reserved2; /**< Trigger Filter Window Register */ + volatile unsigned int EVTRG; /**< Event Trigger Control Register */ + volatile unsigned int EVPS; /**< Event Prescale Register */ + volatile unsigned int EVSWF; /**< Event Softtrig Register */ + volatile unsigned int ReservedD[27]; + volatile unsigned int DR[16]; /**< Convert Data Register */ + volatile unsigned int CMP0; /**< Comparison Data Register */ + volatile unsigned int CMP1; /**< Comparison Data Register */ + volatile unsigned int DRMASK; + } CSP_ADC12_T, *CSP_ADC12_PTR; +/** +@brief GPIOX bits Structure +*/ + typedef volatile struct + { + volatile unsigned int CONLR; /**< Control Low Register */ + volatile unsigned int CONHR; /**< Control High Register */ + volatile unsigned int WODR; /**< Write Output Data Register */ + volatile unsigned int SODR; /**< Set Output Data (bit-wise) Register */ + volatile unsigned int CODR; /**< Clear Output Data (bit-wise) Register*/ + volatile unsigned int ODSR; /**< Output Data Status Register */ + volatile unsigned int PSDR; /**< Pin Data Status Register */ + volatile unsigned int FLTEN; + volatile unsigned int PUDR; /**< IO Pullup_Pulldown Register */ + volatile unsigned int DSCR; /**< Output Driving Strength Register */ + volatile unsigned int OMCR; /**< Slew-rate, Open-Drain Control */ + volatile unsigned int IECR; /**< EXI enable control */ + volatile unsigned int IEER; + volatile unsigned int IEDR; + } CSP_GPIO_T, *CSP_GPIO_PTR; + + typedef volatile struct + { + volatile unsigned int IGRPL; /**< EXI group control */ + volatile unsigned int IGRPH; /**< EXI group control */ + volatile unsigned int IGREX; + volatile unsigned int IO_CLKEN; + } CSP_IGRP_T, *CSP_IGRP_PTR; +/** +@brief UART0~UART1 bits Structure +*/ + typedef volatile struct + { + volatile unsigned int DATA; /**< Write and Read Data Register */ + volatile unsigned int SR; /**< Status Register */ + volatile unsigned int CTRL; /**< Control Register */ + volatile unsigned int ISR; /**< Interrupt Status Register */ + volatile unsigned int BRDIV; /**< Baud Rate Generator Register */ + volatile unsigned int ReservedA[20]; + } CSP_UART_T, *CSP_UART_PTR; +/** +@brief SPI0 bits Structure +*/ +typedef struct +{ + volatile unsigned int CR0; /**< Control Register 0 */ + volatile unsigned int CR1; /**< Control Register 1 */ + volatile unsigned int DR; /**< Receive FIFO(read) and transmit FIFO data register(write) */ + volatile unsigned int SR; /**< Status register */ + volatile unsigned int CPSR; /**< Clock prescale register */ + volatile unsigned int IMSCR; /**< Interrupt mask set and clear register */ + volatile unsigned int RISR; /**< Raw interrupt status register */ + volatile unsigned int MISR; /**< Masked interrupt status register */ + volatile unsigned int ICR; /**< Interrupt clear register */ +} CSP_SSP_T, *CSP_SSP_PTR; +/** +@brief SIO0 bits Structure +*/ +typedef struct +{ + volatile unsigned int CR; + volatile unsigned int TXCR0; + volatile unsigned int TXCR1; + volatile unsigned int TXBUF; + volatile unsigned int RXCR0; + volatile unsigned int RXCR1; + volatile unsigned int RXCR2; + volatile unsigned int RXBUF; + volatile unsigned int RISR; + volatile unsigned int MISR; + volatile unsigned int IMCR; + volatile unsigned int ICR; +} CSP_SIO_T, *CSP_SIO_PTR; +/** +@brief I2C0 bits Structure +*/ + typedef volatile struct + { + unsigned int CR; /* I2C Control */ + unsigned int TADDR; /* I2C Target Address */ + unsigned int SADDR; /* I2C Slave Address */ + unsigned int ReservedD; + unsigned int DATA_CMD; /* I2C Rx/Tx Data Buffer and Command */ + unsigned int SS_SCLH; /* I2C Standard Speed SCL High Count */ + unsigned int SS_SCLL; /* I2C Standard Speed SCL Low Count */ + unsigned int FS_SCLH; /* I2C Fast mode and Fast Plus SCL High Count*/ + unsigned int FS_SCLL; /* I2C Fast mode and Fast Plus SCL Low Count*/ + unsigned int ReservedA; /* I2C High Speed SCL High Count */ + unsigned int ReservedC; /* I2C High Speed SCL Low Count */ + unsigned int RX_FLSEL; /* I2C Receive FIFO Threshold */ + unsigned int TX_FLSEL; /* I2C Transmit FIFO Threshold */ + unsigned int RX_FL; /* I2C Receive FIFO Level */ + unsigned int TX_FL; /* I2C Transmit FIFO Level */ + unsigned int ENABLE; /* I2C Enable */ + unsigned int STATUS; /* I2C Status */ + unsigned int ReservedB; /* I2C Enable Status */ + unsigned int SDA_TSETUP; /* I2C SDA Setup Time */ + unsigned int SDA_THOLD; /* I2C SDA hold time length */ + unsigned int SPKLEN; /* I2C SS and FS Spike Suppression Limit */ + //unsigned int HS_SPKLEN; /* I2C HS Spike Suppression Limit */ + unsigned int ReservedE; + unsigned int MISR; /* I2C Masked Interrupt Status */ + unsigned int IMSCR; /* I2C Interrupt Enable */ + unsigned int RISR; /* I2C Raw Interrupt Status */ + unsigned int ICR; /* I2C Interrupt Clear */ + unsigned int ReservedF; + unsigned int SCL_TOUT; /* I2C SCL Stuck at Low Timeout */ + unsigned int SDA_TOUT; /* I2C SDA Stuck at Low Timeout */ + unsigned int TX_ABRT; /* I2C Transmit Abort Status */ + unsigned int GCALL; /* I2C ACK General Call */ + unsigned int NACK; /* I2C Generate SLV_DATA_NACK */ + } CSP_I2C_T, *CSP_I2C_PTR; +/** +@brief CA0 bits Structure +*/ + typedef struct + { + volatile unsigned int CADATAH; /**< DATA High Register */ + volatile unsigned int CADATAL; /**< DATA Low Register */ + volatile unsigned int CACON; /**< Control Register */ + volatile unsigned int INTMASK; /**< Interrupt Mask CR */ + } CSP_CA_T, *CSP_CA_PTR; +/** +@brief GPTX bits Structure +*/ + typedef struct + { + volatile unsigned int CEDR; //0x0000 Clock control & ID + volatile unsigned int RSSR; //0x0004 Start & Stop Ctrl + volatile unsigned int PSCR; //0x0008 Clock prescaler + volatile unsigned int CR; //0x000C Control register + volatile unsigned int SYNCR; //0x0010 Synchronization control reg + volatile unsigned int GLDCR; //0x0014 Global load control reg + volatile unsigned int GLDCFG; //0x0018 Global load config + volatile unsigned int GLDCR2; //0x001C Global load control reg2 + volatile unsigned int Reserved0; //0x0020 + volatile unsigned int PRDR; //0x0024 Period reg + volatile unsigned int Reserved1; //0x0028 + volatile unsigned int CMPA; //0x002C Compare Value A + volatile unsigned int CMPB; //0x0030 Compare Value B + volatile unsigned int Reserved2; //0x0034 + volatile unsigned int Reserved3; //0x0038 + volatile unsigned int CMPLDR; //0x003C Cmp reg load control + volatile unsigned int CNT; //0x0040 Counter reg + volatile unsigned int AQLDR; //0x0044 AQ reg load control + volatile unsigned int AQCRA; //0x0048 Action qualify of ch-A + volatile unsigned int AQCRB; //0x004C Action qualify of ch-B + volatile unsigned int Reserved4; //0x0050 + volatile unsigned int Reserved5; //0x0054 + volatile unsigned int Reserved6; //0x0058 + volatile unsigned int AQOSF; //0x005C AQ output one-shot software forcing + volatile unsigned int AQCSF; //0x0060 AQ output conti-software forcing + volatile unsigned int Reserved7; //0x0064 + volatile unsigned int Reserved8; //0x0068 + volatile unsigned int Reserved9; //0x006c + volatile unsigned int Reserved10; //0x0070 + volatile unsigned int Reserved11; //0x0074 + volatile unsigned int Reserved12; //0x0078 + volatile unsigned int Reserved13; //0x007c + volatile unsigned int Reserved14; //0x0080 + volatile unsigned int Reserved15; //0x0084 + volatile unsigned int Reserved16; //0x0088 + volatile unsigned int Reserved17; //0x008c + volatile unsigned int Reserved18; //0x0090 + volatile unsigned int Reserved19; //0x0094 + volatile unsigned int Reserved20; //0x0098 + volatile unsigned int Reserved21; //0x009c + volatile unsigned int Reserved22; //0x00a0 + volatile unsigned int Reserved23; //0x00a4 + volatile unsigned int Reserved24; //0x00a8 + volatile unsigned int Reserved25; //0x00ac + volatile unsigned int Reserved26; //0x00b0 + volatile unsigned int Reserved27; //0x00b4 + volatile unsigned int TRGFTCR; //0x00B8 Trigger Filter control reg + volatile unsigned int TRGFTWR; //0x00BC Trigger filter window + volatile unsigned int EVTRG; //0x00C0 Event trigger setting + volatile unsigned int EVPS; //0x00C4 Event presaler + volatile unsigned int EVCNTINIT; //0x00C8 + volatile unsigned int EVSWF; //0x00CC Event software forcing + volatile unsigned int RISR; //0x00D0 Interrupt RISR + volatile unsigned int MISR; //0x00D4 Interrupt MISR + volatile unsigned int IMCR; //0x00D8 Interrupt IMCR + volatile unsigned int ICR; //0x00DC Interrupt clear + volatile unsigned int REGLINK; //0x00E0 Register link + + }CSP_GPT_T,*CSP_GPT_PTR; +/** +@brief EPT0 bits Structure +*/ + typedef struct + { + volatile unsigned int CEDR; //0x0000 Clock control & ID + volatile unsigned int RSSR; //0x0004 Start & Stop Ctrl + volatile unsigned int PSCR; //0x0008 Clock prescaler + volatile unsigned int CR; //0x000C Control register + volatile unsigned int SYNCR; //0x0010 Synchronization control reg + volatile unsigned int GLDCR; //0x0014 Global load control reg + volatile unsigned int GLDCFG; //0x0018 Global load config + volatile unsigned int GLDCR2; //0x001C Global load control reg2 + volatile unsigned int HRCFG; //0x0020 + volatile unsigned int PRDR; //0x0024 Period reg + volatile unsigned int PHSR; //0x0028 Phase control reg + volatile unsigned int CMPA; //0x002C Compare Value A + volatile unsigned int CMPB; //0x0030 Compare Value B + volatile unsigned int CMPC; //0x0034 Compare Value C + volatile unsigned int CMPD; //0x0038 Compare Value D + volatile unsigned int CMPLDR; //0x003C Cmp reg load control + volatile unsigned int CNT; //0x0040 Counter reg + volatile unsigned int AQLDR; //0x0044 AQ reg load control + volatile unsigned int AQCRA; //0x0048 Action qualify of ch-A + volatile unsigned int AQCRB; //0x004C Action qualify of ch-B + volatile unsigned int AQCRC; //0x0050 Action qualify of ch-C + volatile unsigned int AQCRD; //0x0054 Action qualify of ch-D + volatile unsigned int AQTSCR; //0x0058 T event selection + volatile unsigned int AQOSF; //0x005C AQ output one-shot software forcing + volatile unsigned int AQCSF; //0x0060 AQ output conti-software forcing + volatile unsigned int DBLDR; //0x0064 Deadband control reg load control + volatile unsigned int DBCR; //0x0068 Deadband control reg + volatile unsigned int DPSCR; //0x006C Deadband clock prescaler + volatile unsigned int DBDTR; //0x0070 Deadband rising delay control + volatile unsigned int DBDTF; //0x0074 Deadband falling delay control + volatile unsigned int CPCR; //0x0078 Chop control + volatile unsigned int EMSRC; //0x007C EM source setting + volatile unsigned int EMSRC2; //0x0080 EM source setting + volatile unsigned int EMPOL; //0x0084 EM polarity setting + volatile unsigned int EMECR; //0x0088 EM enable control + volatile unsigned int EMOSR; //0x008C EM trip out status setting + volatile unsigned int Reserved; //0x0090 Reserved + volatile unsigned int EMSLSR; //0x0094 Softlock status + volatile unsigned int EMSLCLR; //0x0098 Softlock clear + volatile unsigned int EMHLSR; //0x009C Hardlock status + volatile unsigned int EMHLCLR; //0x00A0 Hardlock clear + volatile unsigned int EMFRCR; //0x00A4 Software forcing EM + volatile unsigned int EMRISR; //0x00A8 EM RISR + volatile unsigned int EMMISR; //0x00AC EM MISR + volatile unsigned int EMIMCR; //0x00B0 EM masking enable + volatile unsigned int EMICR; //0x00B4 EM pending clear + volatile unsigned int TRGFTCR; //0x00B8 Trigger Filter control reg + volatile unsigned int TRGFTWR; //0x00BC Trigger filter window + volatile unsigned int EVTRG; //0x00C0 Event trigger setting + volatile unsigned int EVPS; //0x00C4 Event presaler + volatile unsigned int EVCNTINIT; //0x00C8 + volatile unsigned int EVSWF; //0x00CC Event software forcing + volatile unsigned int RISR; //0x00D0 Interrupt RISR + volatile unsigned int MISR; //0x00D4 Interrupt MISR + volatile unsigned int IMCR; //0x00D8 Interrupt IMCR + volatile unsigned int ICR; //0x00DC Interrupt clear + volatile unsigned int REGLINK; //0x00E0 Register link + volatile unsigned int REGLINK2; //0x00E4 Register link2 + volatile unsigned int REGPROT; //0x00E8 Register protection +} CSP_EPT_T, *CSP_EPT_PTR; +/** +@brief LPT bits Structure +*/ + typedef volatile struct + { + volatile unsigned int CEDR; //0x0000 Clock control & ID + volatile unsigned int RSSR; //0x0004 Start & Stop Ctrl + volatile unsigned int PSCR; //0x0008 Clock prescaler + volatile unsigned int CR; //0x000C Control register + volatile unsigned int SYNCR; //0x0010 Synchronization control reg + volatile unsigned int PRDR; //0x0024 Period reg + volatile unsigned int CMP; //0x002C Compare Value A + volatile unsigned int CNT; //0x0040 Counter reg + volatile unsigned int TRGFTCR; //0x00B8 Trigger Filter control reg + volatile unsigned int TRGFTWR; //0x00BC Trigger filter window + volatile unsigned int EVTRG; //0x00C0 Event trigger setting + volatile unsigned int EVPS; //0x00C4 Event presaler + volatile unsigned int EVSWF; //0x00C8 Event software forcing + volatile unsigned int RISR; //0x00CC Interrupt RISR + volatile unsigned int MISR; //0x00D0 Interrupt MISR + volatile unsigned int IMCR; //0x00D4 Interrupt IMCR + volatile unsigned int ICR; //0x00D8 Interrupt clear +} CSP_LPT_T, *CSP_LPT_PTR; +/** +@brief BT0 bits Structure +*/ + typedef struct + { + volatile unsigned int RSSR; //0x0000 Reset/Start Control + volatile unsigned int CR; //0x0004 General Control + volatile unsigned int PSCR; //0x0008 Prescaler + volatile unsigned int PRDR; //0x000C Period + volatile unsigned int CMP; //0X0010 + volatile unsigned int CNT; //0x0014 Counter + volatile unsigned int EVTRG; //0x0018 Event Trigger + volatile unsigned int EVPS; //0x001C Event Prescaler + volatile unsigned int EVCNTINTI; //0x0020 Event Counter + volatile unsigned int EVSWF; //0x0024 Software force Event Trigger + volatile unsigned int RISR; //0x0028 + volatile unsigned int IMCR; //0x002C + volatile unsigned int MISR; //0x0030 + volatile unsigned int ICR; //0x0034 +} CSP_BT_T, *CSP_BT_PTR; +/** +@brief CRC bits Structure +*/ +typedef struct +{ + volatile unsigned int IDR; /**< ID Register */ + volatile unsigned int CEDR; /**< Clock Enable/Disable Register */ + volatile unsigned int SRR; /**< Software Reset Register */ + volatile unsigned int CR; /**< Control Register */ + volatile unsigned int SEED; /**< Seed Value Register */ + volatile unsigned int DATAIN; /**< Data in Value Register */ + volatile unsigned int DATAOUT; /**< Data out Value Register */ + // TBD... // +} CSP_CRC_T, *CSP_CRC_PTR; +/** +@brief RTC bits Structure +*/ + typedef struct + { + volatile unsigned int TIMR; //0x0000 Time Control Register + volatile unsigned int DATR; //0x0004 Date Control Register + volatile unsigned int CR; //0x0008 Control Register + volatile unsigned int CCR; //0x000C Clock Control register + volatile unsigned int ALRAR; //0x0010 Alarm A + volatile unsigned int ALRBR; //0x0014 Alarm B + volatile unsigned int SSR; //0x0018 Sub second + volatile unsigned int CAL; //0x001C Calibration + volatile unsigned int RISR; //0x0020 + volatile unsigned int IMCR; //0x0024 + volatile unsigned int MISR; //0x0028 + volatile unsigned int ICR; //0x002C + volatile unsigned int KEY; //0x0030 + volatile unsigned int EVTRG; //0x0034 + volatile unsigned int EVPS; //0x0038 + volatile unsigned int EVSWF; //0x003C +} CSP_RTC_T, *CSP_RTC_PTR; + +/** +@brief WWDT bits Structure +*/ + typedef struct + { + volatile unsigned int CR; + volatile unsigned int CFGR; + volatile unsigned int RISR; + volatile unsigned int MISR; + volatile unsigned int IMCR; + volatile unsigned int ICR; + }CSP_WWDT_T,*CSP_WWDT_PTR; +/** +@brief HWD bits Structure +*/ + typedef struct + { + volatile S32_T DIVIDENT; + volatile S32_T DIVISOR; + volatile S32_T QUOTIENT; + volatile S32_T REMAIN; + volatile unsigned int CR; + }CSP_HWD_T,*CSP_HWD_PTR; + + #define FLASHBase 0x00000000 + #define FLASHSize 0x00010000 + #define FLASHLimit (FLASHBase + FLASHSize) + #define DFLASHBase 0x10000000 + #define DFLASHSize 0x10001000 + #define DFLASHLimit (FLASHBase + FLASHSize) + +#ifdef REMAP + #define SRAMBase 0x00000000 + #define SRAMSize 0x00000800 + #define SRAMLimit (SRAMBase + SRAMSize) + #define MEMVectorBase 0x00000700 + #define MEMVectorSize (0x50<<2) +#else + #define SRAMBase 0x20000000 + #define SRAMSize 0x00001000 + #define SRAMLimit (SRAMBase + SRAMSize) + #define MEMVectorBase 0x20000F00 + #define MEMVectorSize (0x50<<2) +#endif + +//--Peripheral Address Setting +#define APBPeriBase 0x40000000 + +//--Each Peripheral Address Setting +//#define APB_SFMBase (APBPeriBase + 0x10000) +#define APB_IFCBase (APBPeriBase + 0x10000) +#define APB_SYSCONBase (APBPeriBase + 0x11000) +#define APB_ETCBBase (APBPeriBase + 0x12000) + +#define APB_TKEYBase (APBPeriBase + 0x20000) +#define APB_TKEYBUFBase (APBPeriBase + 0x21000) +#define APB_ADC0Base (APBPeriBase + 0x30000) + +#define AHBGPIOBase 0x60000000 +#define APB_GPIOA0Base (AHBGPIOBase + 0x0000) //A0 +#define APB_GPIOB0Base (AHBGPIOBase + 0x2000) //B0 +#define APB_IGRPBase (AHBGPIOBase + 0xF000) + +#define APB_BT1Base (APBPeriBase + 0x52000) +#define APB_BT0Base (APBPeriBase + 0x51000) +#define APB_CNTABase (APBPeriBase + 0x50000) + +#define APB_GPT0Base (APBPeriBase + 0x55000) + +#define APB_EPT0Base (APBPeriBase + 0x59000) + +#define APB_RTCBase (APBPeriBase + 0x60000) +#define APB_LPTBase (APBPeriBase + 0x61000) +#define APB_WWDTBase (APBPeriBase + 0x62000) + +#define APB_UART0Base (APBPeriBase + 0x80000) +#define APB_UART1Base (APBPeriBase + 0x81000) +#define APB_UART2Base (APBPeriBase + 0x82000) + +#define APB_SPI0Base (APBPeriBase + 0x90000) +#define APB_SIO0Base (APBPeriBase + 0xB0000) + +#define APB_I2C0Base (APBPeriBase + 0xA0000) + + + +#define AHB_CRCBase 0x50000000 +#define APB_HWDBase 0x70000000 + +//--Interrupt Bit Position +#define CORET_INT (0x01ul<<0) //IRQ0 +#define SYSCON_INT (0x01ul<<1) //IRQ1 +#define IFC_INT (0x01ul<<2) //IRQ2 +#define ADC_INT (0x01ul<<3) //IRQ3 +#define EPT0_INT (0x01ul<<4) //IRQ4 +//DUMMY //IRQ5 +#define WWDT_INT (0x01ul<<6) //IRQ6 +#define EXI0_INT (0x01ul<<7) //IRQ7 +#define EXI1_INT (0x01ul<<8) //IRQ8 +#define GPT0_INT (0x01ul<<9) //IRQ9 +//DUMMY //IRQ10 +//DUMMY //IRQ11 +#define RTC_INT (0x01ul<<12) //IRQ12 +#define UART0_INT (0x01ul<<13) //IRQ13 +#define UART1_INT (0x01ul<<14) //IRQ14 +#define UART2_INT (0x01ul<<15) //IRQ15 +//DUMMY //IRQ16 +#define I2C_INT (0x01ul<<17) //IRQ17 +//DUMMY //IRQ18 +#define SPI_INT (0x01ul<<19) //IRQ19 +#define SIO_INT (0x01ul<<20) //IRQ20 +#define EXI2_INT (0x01ul<<21) //IRQ21 +#define EXI3_INT (0x01ul<<22) //IRQ22 +#define EXI4_INT (0x01ul<<23) //IRQ23 +#define CA_INT (0x01ul<<24) //IRQ24 +#define TKEY_INT (0x01ul<<25) //IRQ25 +#define LPT_INT (0x01ul<<26) //IRQ26 +//DUMMY //IRQ27 +#define BT0_INT (0x01ul<<28) //IRQ28 +#define BT1_INT (0x01ul<<29) //IRQ29 +//DUMMY //IRQ30 +//DUMMY //IRQ31 + + +extern CSP_CK801_T *CK801 ; + +extern CSP_IFC_T *IFC ; +extern CSP_SYSCON_T *SYSCON ; +extern CSP_ETCB_T *ETCB ; + +extern CSP_TKEY_T *TKEY ; +extern CSP_TKEYBUF_T *TKEYBUF ; +extern CSP_ADC12_T *ADC0 ; + +extern CSP_GPIO_T *GPIOA0 ; +extern CSP_GPIO_T *GPIOB0 ; +extern CSP_IGRP_T *GPIOGRP ; + +extern CSP_UART_T *UART0 ; +extern CSP_UART_T *UART1 ; +extern CSP_UART_T *UART2 ; +extern CSP_SSP_T *SPI0 ; +extern CSP_SIO_T *SIO0 ; +extern CSP_I2C_T *I2C0 ; +extern CSP_CA_T *CA0 ; + +extern CSP_GPT_T *GPT0 ; + +extern CSP_EPT_T *EPT0 ; + +extern CSP_LPT_T *LPT ; +extern CSP_HWD_T *HWD ; +extern CSP_WWDT_T *WWDT ; +extern CSP_BT_T *BT0 ; +extern CSP_BT_T *BT1 ; + +extern CSP_CRC_T *CRC ; +extern CSP_RTC_T *RTC ; + +//ISR Define for generating special interrupt related ASM (CK802), with compile option -mistack +void MisalignedHandler(void) __attribute__((isr)); +void IllegalInstrHandler(void) __attribute__((isr)); +void AccessErrHandler(void) __attribute__((isr)); +void BreakPointHandler(void) __attribute__((isr)); +void UnrecExecpHandler(void) __attribute__((isr)); +void Trap0Handler(void) __attribute__((isr)); +void Trap1Handler(void) __attribute__((isr)); +void Trap2Handler(void) __attribute__((isr)); +void Trap3Handler(void) __attribute__((isr)); +void PendTrapHandler(void) __attribute__((isr)); + +void CORETHandler(void) __attribute__((isr)); +void SYSCONIntHandler(void) __attribute__((isr)); +void IFCIntHandler(void) __attribute__((isr)); +void ADCIntHandler(void) __attribute__((isr)); +void EPT0IntHandler(void) __attribute__((isr)); +void WWDTHandler(void) __attribute__((isr)); +void EXI0IntHandler(void) __attribute__((isr)); +void EXI1IntHandler(void) __attribute__((isr)); +void EXI2to3IntHandler(void) __attribute__((isr)); +void EXI4to9IntHandler(void) __attribute__((isr)); +void EXI10to15IntHandler(void) __attribute__((isr)); +void UART0IntHandler(void) __attribute__((isr)); +void UART1IntHandler(void) __attribute__((isr)); +void UART2IntHandler(void) __attribute__((isr)); +void I2CIntHandler(void) __attribute__((isr)); +void GPT0IntHandler(void) __attribute__((isr)); +void LEDIntHandler(void) __attribute__((isr)); +void TKEYIntHandler(void) __attribute__((isr)); +void SPI0IntHandler(void) __attribute__((isr)); +void SIO0IntHandler(void) __attribute__((isr)); +void CNTAIntHandler(void) __attribute__((isr)); +void RTCIntHandler(void) __attribute__((isr)); +void LPTIntHandler(void) __attribute__((isr)); +void BT0IntHandler(void) __attribute__((isr)); +void BT1IntHandler(void) __attribute__((isr)); + +extern int __divsi3 (int a, int b); +extern unsigned int __udivsi3 (unsigned int a, unsigned int b); +extern int __modsi3 (int a, int b); +extern unsigned int __umodsi3 (unsigned int a, unsigned int b); +extern void delay_nms(unsigned int t); +extern void delay_nus(unsigned int t); + +#endif + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_adc.h b/BLV_CS_AC100_V05/Source/include/apt32f102_adc.h new file mode 100644 index 0000000..97896bf --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_adc.h @@ -0,0 +1,236 @@ +/* + ****************************************************************************** + * @file apt32f102_adc.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_adc_H +#define _apt32f102_adc_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + + +/****************************************************************************** +************************* ADC12 Registers reset value ************************ +******************************************************************************/ + #define ADC_ECR_RST (0x00000000ul) /**< ECR reset value */ + #define ADC_DCR_RST (0x00000000ul) /**< DCR reset value */ + #define ADC_PMSR_RST (0x00000000ul) /**< PMSR reset value */ + #define ADC_CR_RST (0x80000000ul) /**< CR reset value */ + #define ADC_MR_RST (0x00000000ul) /**< MR reset value */ + #define ADC_CSR_RST (0x00000000ul) /**< CSR reset value */ + #define ADC_SR_RST (0x00000000ul) /**< SR reset value */ + #define ADC_IER_RST (0x00000000ul) /**< IER reset value */ + #define ADC_IDR_RST (0x00000000ul) /**< IDR reset value */ + #define ADC_IMR_RST (0x00000000ul) /**< IMR reset value */ + #define ADC_SEQx_RST (0x00000000ul) /**< SEQx reset value */ + #define ADC_DR_RST (0x00000000ul) /**< DR reset value */ + #define ADC_CMP0_RST (0x00000000ul) /**< CMP0 reset value */ + #define ADC_CMP1_RST (0x00000000ul) /**< CMP1 reset value */ +/** + * @brief ADC12 Control register + */ +typedef enum +{ + ADC12_SWRST = ((CSP_REGISTER_T)(0x01ul << 0)), /**< Software Reset */ + ADC12_ADCEN = ((CSP_REGISTER_T)(0x01ul << 1)), /**< ADC Enable */ + ADC12_ADCDIS = ((CSP_REGISTER_T)(0x01ul << 2)), /**< ADC Disable */ + ADC12_START = ((CSP_REGISTER_T)(0x01ul << 3)), /**< Start Conversion */ + ADC12_STOP = ((CSP_REGISTER_T)(0x01ul << 4)), /**< Stop Conversion */ + ADC12_SWTRG = ((CSP_REGISTER_T)(0x01ul << 5)), /**< Stop Conversion */ + ADC12_AVGEN = ((CSP_REGISTER_T)(0x01ul << 12)), /**< Conversion data get average */ + ADC12_AVGDIS = ((CSP_REGISTER_T)(0x00ul << 12)), /**< Conversion data get last one */ +}ADC12_Control_TypeDef; +/** + * @brief ADC12 IMR register + */ +typedef enum +{ + //CSR SR, IER, IDR, IMR Registers + ADC12_EOC = ((CSP_REGISTER_T)(0x01ul << 0)), /**< End Of Conversion */ + ADC12_READY = ((CSP_REGISTER_T)(0x01ul << 1)), /**< Ready to Start */ + ADC12_OVR = ((CSP_REGISTER_T)(0x01ul << 2)), /**< Over Run */ + ADC12_CMP0H = ((CSP_REGISTER_T)(0x01ul << 4)), /**< Higher than CMP1 */ + ADC12_CMP0L = ((CSP_REGISTER_T)(0x01ul << 5)), /**< Lower than CMP1 */ + ADC12_CMP1H = ((CSP_REGISTER_T)(0x01ul << 6)), /**< Higher than CMP2 */ + ADC12_CMP1L = ((CSP_REGISTER_T)(0x01ul << 7)), /**< Lower than CMP2 */ + ADC12_SEQ_END0 = ((CSP_REGISTER_T)(0x01ul << 16)), /**< SEQ0 Convert end */ + ADC12_SEQ_END1 = ((CSP_REGISTER_T)(0x01ul << 17)), /**< SEQ1 Convert end */ + ADC12_SEQ_END2 = ((CSP_REGISTER_T)(0x01ul << 18)), /**< SEQ2 Convert end */ + ADC12_SEQ_END3 = ((CSP_REGISTER_T)(0x01ul << 19)), /**< SEQ3 Convert end */ + ADC12_SEQ_END4 = ((CSP_REGISTER_T)(0x01ul << 20)), /**< SEQ4 Convert end */ + ADC12_SEQ_END5 = ((CSP_REGISTER_T)(0x01ul << 21)), /**< SEQ5 Convert end */ + ADC12_SEQ_END6 = ((CSP_REGISTER_T)(0x01ul << 22)), /**< SEQ6 Convert end */ + ADC12_SEQ_END7 = ((CSP_REGISTER_T)(0x01ul << 23)), /**< SEQ7 Convert end */ + ADC12_SEQ_END8 = ((CSP_REGISTER_T)(0x01ul << 24)), /**< SEQ8 Convert end */ + ADC12_SEQ_END9 = ((CSP_REGISTER_T)(0x01ul << 25)), /**< SEQ9 Convert end */ + ADC12_SEQ_END10 = ((CSP_REGISTER_T)(0x01ul << 26)), /**< SEQ10 Convert end */ + ADC12_SEQ_END11 = ((CSP_REGISTER_T)(0x01ul << 27)), /**< SEQ11 Convert end */ + ADC12_SEQ_END12 = ((CSP_REGISTER_T)(0x01ul << 28)), /**< SEQ12 Convert end */ + ADC12_SEQ_END13 = ((CSP_REGISTER_T)(0x01ul << 29)), /**< SEQ13 Convert end */ + ADC12_SEQ_END14 = ((CSP_REGISTER_T)(0x01ul << 30)), /**< SEQ14 Convert end */ + ADC12_SEQ_END15 = ((CSP_REGISTER_T)(0x01ul << 31)), /**< SEQ15 Convert end */ + /* SR Register Only */ + ADC12_ADCENS = ((CSP_REGISTER_T)(0x01ul << 8)), /**< ADC Enable Status */ + ADC12_CTCVS = ((CSP_REGISTER_T)(0x01ul << 9)) /**< Continuous Conversion Status*/ +} +ADC12_IMR_TypeDef; +/** + * @brief ADC12 CLK ENABLE AND DISABLE + */ +typedef enum +{ + ADC_CLK_CR = ((CSP_REGISTER_T)(0x01ul << 1)), /**< ADC Clock */ + ADC12_IPIDCODE_MASK = ((CSP_REGISTER_T)(0x3FFFFFFul << 4)), /**< ADC IPIDCODE mask */ + ADC_DEBUG_MODE = ((CSP_REGISTER_T)(0x01ul << 31)) /**< Debug Mode Enable */ +} +ADC12_CLK_TypeDef; +/** + * @brief ADC12 Bit slection + */ +typedef enum +{ + ADC12_12BIT = 1, /**< 12bit mode */ + ADC12_10BIT = 0, /**< 10bit mode */ + ADC12_10BITor12BIT = ((CSP_REGISTER_T)(0x01ul<<31)) +}ADC12_10bitor12bit_TypeDef; +/** + * @brief ADC12 Convertion mode + */ +typedef enum +{ + One_shot_mode = 0, + Continuous_mode = 1, + CONTCV = (CSP_REGISTER_T)0x01<<31 //Continuous Conversion 0: One shot mode. 1: Continuous mode. +}ADC12_ConverMode_TypeDef; +/** + * @brief ADC12 NBRCMPx selection + */ +typedef enum +{ + NBRCMP0_TypeDef = 0, + NBRCMP1_TypeDef = 1 +} +ADC12_NBRCMPx_TypeDef; +/** + * @brief ADC12 NBRCMPx_HorL selection + */ +typedef enum +{ + NBRCMPX_L_TypeDef = 0, + NBRCMPX_H_TypeDef = 1 +} +ADC12_NBRCMPx_HorL_TypeDef; +/** + * @brief ADC12 SEQx register + */ +typedef enum +{ + ADC12_ADCIN0 = (CSP_REGISTER_T)(0x0ul), /**< ADC Analog Input 0 */ + ADC12_ADCIN1 = (CSP_REGISTER_T)(0x1ul), /**< ADC Analog Input 1 */ + ADC12_ADCIN2 = (CSP_REGISTER_T)(0x2ul), /**< ADC Analog Input 2 */ + ADC12_ADCIN3 = (CSP_REGISTER_T)(0x3ul), /**< ADC Analog Input 3 */ + ADC12_ADCIN4 = (CSP_REGISTER_T)(0x4ul), /**< ADC Analog Input 4 */ + ADC12_ADCIN5 = (CSP_REGISTER_T)(0x5ul), /**< ADC Analog Input 5 */ + ADC12_ADCIN6 = (CSP_REGISTER_T)(0x6ul), /**< ADC Analog Input 6 */ + ADC12_ADCIN7 = (CSP_REGISTER_T)(0x7ul), /**< ADC Analog Input 7 */ + ADC12_ADCIN8 = (CSP_REGISTER_T)(0x8ul), /**< ADC Analog Input 8 */ + ADC12_ADCIN9 = (CSP_REGISTER_T)(0x9ul), /**< ADC Analog Input 9 */ + ADC12_ADCIN10 = (CSP_REGISTER_T)(0x0Aul), /**< ADC Analog Input 10 */ + ADC12_ADCIN11 = (CSP_REGISTER_T)(0x0Bul), /**< ADC Analog Input 11 */ + ADC12_ADCIN12 = (CSP_REGISTER_T)(0x0Cul), /**< ADC Analog Input 12 */ + ADC12_ADCIN13 = (CSP_REGISTER_T)(0x0Dul), /**< ADC Analog Input 13 */ + ADC12_ADCIN14 = (CSP_REGISTER_T)(0x0Eul), /**< ADC Analog Input 14 */ + ADC12_ADCIN15 = (CSP_REGISTER_T)(0x0Ful), /**< ADC Analog Input 15 */ + //ADC12_ADCIN16 = (CSP_REGISTER_T)(0x10ul), /**< ADC Analog Input 16 */ + //ADC12_ADCIN17 = (CSP_REGISTER_T)(0x11ul), /**< ADC Analog Input 17 */ + //ADC12_ADCIN18 = (CSP_REGISTER_T)(0x12ul), /**< ADC Analog Input 18 */ + //ADC12_ADCIN19 = (CSP_REGISTER_T)(0x13ul), /**< ADC Analog Input 19 */ + //ADC12_ADCIN20 = (CSP_REGISTER_T)(0x14ul), /**< ADC Analog Input 20 */ + //ADC12_ADCIN21 = (CSP_REGISTER_T)(0x15ul), /**< ADC Analog Input 21 */ + //ADC12_ADCIN22 = (CSP_REGISTER_T)(0x16ul), /**< ADC Analog Input 22 */ + //ADC12_ADCIN23 = (CSP_REGISTER_T)(0x17ul), /**< ADC Analog Input 23 */ + //ADC12_ADCIN24 = (CSP_REGISTER_T)(0x18ul), /**< ADC Analog Input 24 */ + //ADC12_ADCIN25 = (CSP_REGISTER_T)(0x19ul), /**< ADC Analog Input 25 */ + //ADC12_ADCIN26 = (CSP_REGISTER_T)(0x1Aul), /**< ADC Analog Input 26 */ + //ADC12_ADCIN27 = (CSP_REGISTER_T)(0x1Bul) /**< ADC Analog Input 27 */ + ADC12_INTVREF = (CSP_REGISTER_T)(0x1Cul), + ADC12_DIV4_VDD = (CSP_REGISTER_T)(0x1Dul), + ADC12_VSS = (CSP_REGISTER_T)(0x1Eul), +} +ADC12_InputSet_TypeDef; + +/** + * @brief ADC12 Convertion repeat number + */ +typedef enum +{ + ADC12_CV_RepeatNum1 = (CSP_REGISTER_T)(0x0ul<<8)|(0x0ul<<13), /**< ADC Convertion number 1 */ + ADC12_CV_RepeatNum2 = (CSP_REGISTER_T)(0x1ul<<8)|(0x1ul<<13), /**< ADC Convertion number 2 */ + ADC12_CV_RepeatNum4 = (CSP_REGISTER_T)(0x2ul<<8)|(0x2ul<<13), /**< ADC Convertion number 4 */ + ADC12_CV_RepeatNum8 = (CSP_REGISTER_T)(0x3ul<<8)|(0x3ul<<13), /**< ADC Convertion number 8 */ + ADC12_CV_RepeatNum16 = (CSP_REGISTER_T)(0x4ul<<8)|(0x4ul<<13), /**< ADC Convertion number 16 */ + ADC12_CV_RepeatNum32 = (CSP_REGISTER_T)(0x5ul<<8)|(0x5ul<<13), /**< ADC Convertion number 32 */ + ADC12_CV_RepeatNum64 = (CSP_REGISTER_T)(0x6ul<<8)|(0x6ul<<13), /**< ADC Convertion number 64 */ + ADC12_CV_RepeatNum128 = (CSP_REGISTER_T)(0x7ul<<8)|(0x7ul<<13), /**< ADC Convertion number 128 */ + ADC12_CV_RepeatNum256 = (CSP_REGISTER_T)(0x8ul<<8)|(0x8ul<<13), /**< ADC Convertion number 256 */ + ADC12_CV_RepeatNum512 = (CSP_REGISTER_T)(0x9ul<<8)|(0x9ul<<13) /**< ADC Convertion number 512 */ +}ADC12_CV_RepeatNum_TypeDef; + +/** + * @brief ADC12 VREFP VREFN Selecte + */ +typedef enum +{ + ADC12_VREFP_VDD_VREFN_VSS = 0, + ADC12_VREFP_EXIT_VREFN_VSS = 1, + ADC12_VREFP_FVR2048_VREFN_VSS = 2, + ADC12_VREFP_FVR4096_VREFN_VSS = 3, + //ADC12_VREFP_INTVREF0750_VREFN_VSS = 4, + ADC12_VREFP_INTVREF1000_VREFN_VSS = 5, + ADC12_VREFP_VDD_VREFN_EXIT = 6, + ADC12_VREFP_EXIT_VREFN_EXIT = 7, + ADC12_VREFP_FVR2048_VREFN_EXIT = 8, + ADC12_VREFP_FVR4096_VREFN_EXIT = 9, + //ADC12_VREFP_INTVREF0750_VREFN_EXIT = 10, + ADC12_VREFP_INTVREF1000_VREFN_EXIT = 11 +}ADC12_VREFP_VREFN_Selected_TypeDef; + +extern void ADC12_RESET_VALUE(void); +extern void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ); +extern void ADC12_ConfigInterrupt_CMD( ADC12_IMR_TypeDef ADC_IMR_X , FunctionalStatus NewState); +extern uint8_t ADC12_Read_IntEnStatus(ADC12_IMR_TypeDef EnStatus_bit); +extern void ADC12_CLK_CMD(ADC12_CLK_TypeDef ADC_CLK_CMD , FunctionalStatus NewState); +extern void ADC12_Software_Reset(void); +extern void ADC12_CMD(FunctionalStatus NewState); +extern void ADC12_ready_wait(void); +extern void ADC12_EOC_wait(void); +extern void ADC12_SEQEND_wait(U8_T val); +extern U16_T ADC12_DATA_OUPUT(U16_T Data_index ); +extern 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 ); +extern void ADC12_Configure_VREF_Selecte(ADC12_VREFP_VREFN_Selected_TypeDef ADC12_VREFP_X_VREFN_X ); +extern void ADC12_CompareFunction_set(U8_T ConverNum_CM0 , U8_T ConverNum_CM1 , U16_T CMP0_data , U16_T CMP1_data ); +extern void ADC12_ConversionChannel_Config(ADC12_InputSet_TypeDef ADC12_ADCINX , + ADC12_CV_RepeatNum_TypeDef CV_RepeatTime, ADC12_Control_TypeDef AVG_Set, U8_T SEQx); +extern U8_T ADC12_Compare_statue(ADC12_NBRCMPx_TypeDef ADC12_NBRCMPx, ADC12_NBRCMPx_HorL_TypeDef ADC12_NBRCMPx_HorL); +extern void ADC_Int_Enable(void); +extern void ADC_Int_Disable(void); +extern void ADC12_CONFIG(void); +extern void adc12_SHR_SET(U8_T adc12_SHR); + +#endif /**< apt32f102_adc_H */ + +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_bt.h b/BLV_CS_AC100_V05/Source/include/apt32f102_bt.h new file mode 100644 index 0000000..cb203fc --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_bt.h @@ -0,0 +1,193 @@ +/* + ****************************************************************************** + * @file apt32f102_bt.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_bt_H +#define _apt32f102_bt_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + +#define BT_RESET_VALUE (0x00000000) + + +/** + * @brief bt pin numbner + */ +typedef enum +{ + BT0_PA00 = 0, /*!< Pin 0 selected */ + BT0_PA02 = 1, /*!< Pin 1 selected */ + BT0_PA05 = 2, /*!< Pin 2 selected */ + BT0_PB02 = 3, /*!< Pin 3 selected */ + BT0_PB05 = 4, /*!< Pin 4 selected */ + BT0_PA11 = 5, /*!< Pin 5 selected */ + BT0_PA13 = 6, /*!< Pin 6 selected */ + BT0_PA15 = 7, /*!< Pin 7 selected */ + BT1_PA01 = 8, /*!< Pin 8 selected */ + BT1_PA06 = 9, /*!< Pin 9 selected */ + BT1_PA08 = 10, /*!< Pin 10 selected */ + BT1_PA12 = 11, /*!< Pin 11 selected */ + BT1_PA14 = 12, /*!< Pin 12 selected */ + BT1_PB00 = 13, /*!< Pin 13 selected */ + BT1_PB04 = 14, /*!< Pin 13 selected */ +}BT_Pin_TypeDef; +/** + * @brief BT CLK EN register + */ +typedef enum +{ + BTCLK_DIS = 0, + BTCLK_EN = 1, +}BT_CLK_TypeDef; +/** + * @brief BT START SHADOW register + */ +typedef enum +{ + BT_SHADOW = (0<<3), + BT_IMMEDIATE= (1<<3), +}BT_SHDWSTP_TypeDef; +/** + * @brief BT OPM register + */ +typedef enum +{ + BT_CONTINUOUS= (0<<4), + BT_ONCE= (1<<4), +}BT_OPM_TypeDef; +/** + * @brief BT EXTCKM register + */ +typedef enum +{ + BT_PCLKDIV= (0<<5), + BT_EXTCKM= (1<<5), +}BT_EXTCKM_TypeDef; +/** + * @brief BT IDLEST register + */ +typedef enum +{ + BT_IDLE_LOW= (0<<6), + BT_IDLE_HIGH= (1<<6), +}BT_IDLEST_TypeDef; +/** + * @brief BT STARTST register + */ +typedef enum +{ + BT_START_LOW= (0<<7), + BT_START_HIGH= (1<<7), +}BT_STARTST_TypeDef; +/** + * @brief BT STARTST register + */ +typedef enum +{ + BT_SYNC_DIS= (0<<8), + BT_SYNC_EN= (1<<8), +}BT_SYNCEN_TypeDef; +/** + * @brief BT OSTMDX register + */ +typedef enum +{ + BT_OSTMDX_CONTINUOUS= (0<<10), + BT_OSTMDX_ONCE= (1<<10), +}BT_OSTMDX_TypeDef; +/** + * @brief BT AREARM register + */ +typedef enum +{ + BT_AREARM_DIS= (0<<14), + BT_AREARM_EN= (1<<14), +}BT_AREARM_TypeDef; +/** + * @brief BT SYNCMD register + */ +typedef enum +{ + BT_SYNCMD_DIS= (0<<15), + BT_SYNCMD_EN= (1<<15), +}BT_SYNCMD_TypeDef; +/** + * @brief BT CNTRLD register + */ +typedef enum +{ + BT_CNTRLD_EN= (0<<16), + BT_CNTRLD_DIS= (1<<16), +}BT_CNTRLD_TypeDef; +/** + * @brief BT CNTRLD register + */ +typedef enum +{ + BT_TRGSRC_DIS= (0<<0), + BT_TRGSRC_PEND= (1<<0), + BT_TRGSRC_CMP= (2<<0), + BT_TRGSRC_OVF= (3<<0), +}BT_TRGSRC_TypeDef; +/** + * @brief BT CNTRLD register + */ +typedef enum +{ + BT_TRGOE_DIS= (0<<20), + BT_TRGOE_EN= (1<<20), +}BT_TRGOE_TypeDef; +/** + * @brief BT INT MASK SET/CLR Set + */ +typedef enum +{ + BT_PEND = (0x01 << 0), + BT_CMP = (0x01 << 1), + BT_OVF = (0x01 << 2), + BT_EVTRG = (0x01 << 3), +}BT_IMSCR_TypeDef; + + +extern void BT_DeInit(CSP_BT_T *BTx); +extern void BT_IO_Init(BT_Pin_TypeDef BT_IONAME); +extern void BT_Start(CSP_BT_T *BTx); +extern void BT_Stop(CSP_BT_T *BTx); +extern void BT_Soft_Reset(CSP_BT_T *BTx); +extern 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); +extern 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); +extern void BT_Period_CMP_Write(CSP_BT_T *BTx,U16_T BTPRDR_DATA,U16_T BTCMP_DATA); +extern void BT_CNT_Write(CSP_BT_T *BTx,U16_T BTCNT_DATA); +extern U16_T BT_PRDR_Read(CSP_BT_T *BTx); +extern U16_T BT_CMP_Read(CSP_BT_T *BTx); +extern U16_T BT_CNT_Read(CSP_BT_T *BTx); +extern void BT_Trigger_Configure(CSP_BT_T *BTx,BT_TRGSRC_TypeDef BTTRG,BT_TRGOE_TypeDef BTTRGOE); +extern void BT_Soft_Tigger(CSP_BT_T *BTx); +extern void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X); +extern void BT0_INT_ENABLE(void); +extern void BT0_INT_DISABLE(void); +extern void BT1_INT_ENABLE(void); +extern void BT1_INT_DISABLE(void); +extern void BT_Stop_High(CSP_BT_T *BTx); +extern void BT_Stop_Low(CSP_BT_T *BTx); + + +#endif /**< apt32f102_bt_H */ + +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_ck801.h b/BLV_CS_AC100_V05/Source/include/apt32f102_ck801.h new file mode 100644 index 0000000..1d99c9e --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_ck801.h @@ -0,0 +1,130 @@ +/* + ****************************************************************************** + * @file apt32f102_ck801.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_ck801_H +#define _apt32f102_ck801_H + +//---------------------------------------------------------------------------- +// Interrupt Controller +//---------------------------------------------------------------------------- +//#define CK801_BASEADDR ((unsigned int) 0xE000E000) +#define CK801_BASEADDR 0xE000E000 + +#define INTC_ISER CK801_BASEADDR+0x100 //INTC interrupt enable register +#define INTC_IWER CK801_BASEADDR+0x140 //INTC wake-up interrupt enable register +#define INTC_ICER CK801_BASEADDR+0x180 //INTC interrupt enable clear register +#define INTC_IWDR CK801_BASEADDR+0x1C0 //INTC wake-up interrupt enable clear register +#define INTC_ISPR CK801_BASEADDR+0x200 //INTC interrupt pending register +#define INTC_ICPR CK801_BASEADDR+0x280 //INTC interrupt pending clear register +#define INTC_IABR CK801_BASEADDR+0x300 //INTC interrupt acknowledge status register +#define INTC_IPR0 CK801_BASEADDR+0x400 //INTC interrupt priority register +#define INTC_IPR1 CK801_BASEADDR+0x404 //INTC interrupt priority register +#define INTC_IPR2 CK801_BASEADDR+0x408 //INTC interrupt priority register +#define INTC_IPR3 CK801_BASEADDR+0x40C //INTC interrupt priority register +#define INTC_IPR4 CK801_BASEADDR+0x410 //INTC interrupt priority register +#define INTC_IPR5 CK801_BASEADDR+0x414 //INTC interrupt priority register +#define INTC_IPR6 CK801_BASEADDR+0x418 //INTC interrupt priority register +#define INTC_IPR7 CK801_BASEADDR+0x41C //INTC interrupt priority register +#define INTC_ISR CK801_BASEADDR+0xC00 //INTC interrupt status register +#define INTC_IPTR CK801_BASEADDR+0xC04 //INTC interrupt pending threshold register + + +#define INTC_ISER_WRITE(val) *(volatile UINT32 *) (INTC_ISER ) = val +#define INTC_IWER_WRITE(val) *(volatile UINT32 *) (INTC_IWER ) = val +#define INTC_ICER_WRITE(val) *(volatile UINT32 *) (INTC_ICER ) = val +#define INTC_IWDR_WRITE(val) *(volatile UINT32 *) (INTC_IWDR ) = val +#define INTC_ISPR_WRITE(val) *(volatile UINT32 *) (INTC_ISPR ) = val +#define INTC_ICPR_WRITE(val) *(volatile UINT32 *) (INTC_ICPR ) = val +#define INTC_IABR_WRITE(val) *(volatile UINT32 *) (INTC_IABR ) = val +#define INTC_IPR0_WRITE(val) *(volatile UINT32 *) (INTC_IPR0 ) = val +#define INTC_IPR1_WRITE(val) *(volatile UINT32 *) (INTC_IPR1 ) = val +#define INTC_IPR2_WRITE(val) *(volatile UINT32 *) (INTC_IPR2 ) = val +#define INTC_IPR3_WRITE(val) *(volatile UINT32 *) (INTC_IPR3 ) = val +#define INTC_IPR4_WRITE(val) *(volatile UINT32 *) (INTC_IPR4 ) = val +#define INTC_IPR5_WRITE(val) *(volatile UINT32 *) (INTC_IPR5 ) = val +#define INTC_IPR6_WRITE(val) *(volatile UINT32 *) (INTC_IPR6 ) = val +#define INTC_IPR7_WRITE(val) *(volatile UINT32 *) (INTC_IPR7 ) = val +#define INTC_ISR_WRITE(val) *(volatile UINT32 *) (INTC_ISR ) = val +#define INTC_IPTR_WRITE(val) *(volatile UINT32 *) (INTC_IPTR ) = val + + +#define INTC_ISER_READ(intc) (intc->ISER ) +#define INTC_IWER_READ(intc) (intc->IWER ) +#define INTC_ICER_READ(intc) (intc->ICER ) +#define INTC_IWDR_READ(intc) (intc->IWDR ) +#define INTC_ISPR_READ(intc) (intc->ISPR ) +#define INTC_ICPR_READ(intc) (intc->ICPR ) +#define INTC_IABR_READ(intc) (intc->IABR ) +#define INTC_IPR0_READ(intc) (intc->IPR0 ) +#define INTC_IPR1_READ(intc) (intc->IPR1 ) +#define INTC_IPR2_READ(intc) (intc->IPR2 ) +#define INTC_IPR3_READ(intc) (intc->IPR3 ) +#define INTC_IPR4_READ(intc) (intc->IPR4 ) +#define INTC_IPR5_READ(intc) (intc->IPR5 ) +#define INTC_IPR6_READ(intc) (intc->IPR6 ) +#define INTC_IPR7_READ(intc) (intc->IPR7 ) +#define INTC_ISR_READ(intc) (intc->ISR ) +#define INTC_IPTR_READ(intc) (intc->IPTR ) + + +typedef enum IRQn +{ + + ISR_Restart = -32, + ISR_Misaligned_Access = -31, + ISR_Access_Error = -30, + ISR_Divided_By_Zero = -29, + ISR_Illegal = -28, + ISR_Privlege_Violation = -27, + ISR_Trace_Exection = -26, + ISR_Breakpoint_Exception = -25, + ISR_Unrecoverable_Error = -24, + ISR_Idly4_Error = -23, + ISR_Auto_INT = -22, + ISR_Auto_FINT = -21, + ISR_Reserved_HAI = -20, + ISR_Reserved_FP = -19, + ISR_TLB_Ins_Empty = -18, + ISR_TLB_Data_Empty = -17, + + INTC_CORETIM_IRQn = 0, + INTC_TIME1_IRQn = 1, + INTC_UART0_IRQn = 2, + INTC_GPIOA2_IRQn = 8, +} IRQn_Type; + + +void INTC_Init(void); +void force_interrupt(IRQn_Type IRQn); + +void CK_CPU_EnAllNormalIrq(void); +void CK_CPU_DisAllNormalIrq(void); + +#ifndef __INLINE +#define __INLINE inline +#endif +#ifndef uint32_t +#define uint32_t unsigned int +#endif + +#ifndef uint8_t +#define uint8_t unsigned char +#endif + +#endif +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_clkcalib.h b/BLV_CS_AC100_V05/Source/include/apt32f102_clkcalib.h new file mode 100644 index 0000000..17bfa98 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_clkcalib.h @@ -0,0 +1,37 @@ + /****************************************************************************** + * @file apt32f102_clkcalib.h + * @author APT AE Team + * @version V1.22 + * @date 2021/11/22 + ****************************************************************************** + *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.h" + + +/** + * @brief CALIB OSC SELECTE SET + */ +typedef enum +{ + CLK_HFOSC_48M = (0x0ul), + CLK_HFOSC_24M = (0x1ul), + CLK_HFOSC_12M = (0x2ul), + CLK_HFOSC_6M = (0x3ul), + CLK_IMOSC_5556K = (0x4ul), + CLK_IMOSC_4194K = (0x5ul), + CLK_IMOSC_2097K = (0x6ul), + CLK_IMOSC_131K = (0x7ul) +}CALIB_OSC_SELECTE_TypeDef; + + +extern U8_T std_clk_calib(CALIB_OSC_SELECTE_TypeDef OSC_CALIB_X); \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_coret.h b/BLV_CS_AC100_V05/Source/include/apt32f102_coret.h new file mode 100644 index 0000000..190130e --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_coret.h @@ -0,0 +1,51 @@ +/* + ****************************************************************************** + * @file apt32f102_CORET.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_CORET_H +#define _apt32f102_CORET_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + +/****************************************************************************** +************************* syscon Registers Definition ************************* +******************************************************************************/ +#define CORET_CSR_RST ((CSP_REGISTER_T)0x00000004) +#define CORET_RVR_RST ((CSP_REGISTER_T)0x00000000) +#define CORET_CVR_RST ((CSP_REGISTER_T)0x00000000) +#define CORET_CALIB_RST ((CSP_REGISTER_T)0x00000000) + + + + +extern void CORET_DeInit(void); +extern void CORET_Int_Enable(void); +extern void CORET_Int_Disable(void); +extern void CORET_WakeUp_Enable(void); +extern void CORET_WakeUp_Disable(void); +extern void CORET_start(void); +extern void CORET_stop(void); +extern void CORET_CLKSOURCE_EX(void); +extern void CORET_CLKSOURCE_IN(void); +extern void CORET_TICKINT_Enable(void); +extern void CORET_TICKINT_Disable(void); +extern void CORET_reload(void); + +#endif /**< apt32f102_coret_H */ + +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_countera.h b/BLV_CS_AC100_V05/Source/include/apt32f102_countera.h new file mode 100644 index 0000000..6492c35 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_countera.h @@ -0,0 +1,150 @@ +/* + ****************************************************************************** + * @file apt32f102_countera.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_countera_H +#define _apt32f102_countera_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + + +#define CA_RESET_VALUE (0x00000000) +//-------------------------------------------------------------------------------- +//-----------------------------countA value enum define-------------------------- +//-------------------------------------------------------------------------------- +/** + * @brief countA Period int + */ +typedef enum +{ + Period_NA = 0, //Interrupt enable/disable for High/low period elapsed + Period_H = 1, + Period_L = 2, + Period_H_L = 3, +}CA_INT_TypeDef; +/** + * @brief countA DIV + */ +typedef enum +{ + DIV1 = ((0 & 0x03ul)<<4) , //Counter A input clock frequency selection + DIV2 = ((1 & 0x03ul)<<4) , + DIV4 = ((2 & 0x03ul)<<4) , + DIV8 = ((3 & 0x03ul)<<4) , +}CA_CLKDIV_TypeDef; +/** + * @brief countA mode + */ +typedef enum +{ + ONESHOT_MODE = (0x00ul << 1), //Mode Selection:oneshotmode/repeat mode + REPEAT_MODE = (0x01ul << 1), +}CA_Mode_TypeDef; +/** + * @brief countA carrier setting + */ +typedef enum +{ + CARRIER_OFF = (0x00ul << 25), //Carrier signal + CARRIER_ON = (0x01ul << 25), +}CA_CARRIER_TypeDef; +/** + * @brief Carrier Waveform Output Starting Polarity + */ +typedef enum +{ + OSP_LOW = 0, //Carrier Waveform Output Starting Polarity + OSP_HIGH = 1, +}CA_OSP_TypeDef; +/** + * @brief Carrier register load + */ +typedef enum +{ + HW_STROBE_0 = (0x01ul<<17), //Counter A data register Hardware/software load enable. + HW_STROBE_1 = (0x01ul<<18), + SW_STROBE = (0x01ul<<16), +}CA_STROBE_TypeDef; +/** + * @brief Carrier rem output signal + */ +typedef enum +{ + ENVELOPE_0 = (0x00ul << 24), //REM output signal selection bit + ENVELOPE_1 = (0x01ul << 24), +}CA_ENVELOPE_TypeDef; +/** + * @brief Carrier PENDREM + */ +typedef enum +{ + PENDREM_OFF = ((0 & 0x03ul)<<21), + PENDREM_1 = ((1 & 0x03ul)<<21), + PENDREM_2 = ((2 & 0x03ul)<<21), +}CA_PENDREM_TypeDef; +/** + * @brief Carrier ATCHREM + */ +typedef enum +{ + MATCHREM_OFF = ((0 & 0x03ul)<<19), + MATCHREM_1 = ((1 & 0x03ul)<<19), + MATCHREM_2 = ((2 & 0x03ul)<<19), +}CA_MATCHREM_TypeDef; +/** + * @brief Carrier REMSTAT + */ +typedef enum +{ + REMSTAT_0 = ((0 & 0x01ul)<<23), + REMSTAT_1 = ((1 & 0x01ul)<<23), +}CA_REMSTAT_TypeDef; +/** + * @brief counterA IO + */ +typedef enum +{ + COUNTA_PB01 = 0, + COUNTA_PA05 = 1, + COUNTA_PA11 = 2, +}CA_COUNTAIO_TypeDef; + + + +extern 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) ; +extern 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 ); +extern void COUNT_DeInit(void); +extern void COUNTA_Start(void); +extern void COUNTA_Stop(void); +extern void COUNTA_Int_Disable(void); +extern void COUNTA_Int_Enable(void); +extern void COUNTA_Wakeup_Disable(void); +extern void COUNTA_Wakeup_Enable(void); +extern void COUNTA_IO_Init(CA_COUNTAIO_TypeDef COUNTA_IO_G); +extern void COUNTA_Data_Update(uint32_t Data_H,uint32_t Data_L); + + + +/*************************************************************/ + +#endif /**< apt32f102_countera_H */ + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_crc.h b/BLV_CS_AC100_V05/Source/include/apt32f102_crc.h new file mode 100644 index 0000000..8516a64 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_crc.h @@ -0,0 +1,87 @@ +/* + ****************************************************************************** + * @file apt32f102_crc.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_crc_H +#define _apt32f102_crc_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + +#define CRC_RESET_VALUE (0x00000000) +//-------------------------------------------------------------------------------- +//-----------------------------CRC value enum define-------------------------- +//-------------------------------------------------------------------------------- +/** + * @brief CRC COMPIN register + */ +typedef enum +{ + XORIN_DIS = 0, + XORIN_EN = 1, +}CRC_COMPIN_TypeDef; +/** + * @brief CRC COMPOUT register + */ +typedef enum +{ + XOROUT_DIS = (0<<1), + XOROUT_EN = (1<<1), +}CRC_COMPOUT_TypeDef; +/** + * @brief CRC ENDIANIN register + */ +typedef enum +{ + REFIN_DIS = (0<<2), + REFIN_EN = (1<<2), +}CRC_ENDIANIN_TypeDef; +/** + * @brief CRC ENDIANOUT register + */ +typedef enum +{ + REFOUT_DIS = (0<<3), + REFOUT_EN = (1<<3), +}CRC_ENDIANOUT_TypeDef; +/** + * @brief CRC poly register + */ +typedef enum +{ + POLY_CCITT = (0<<4), + POLY_16 = (2<<4), + POLY_32 = (3<<4), +}CRC_POLY_TypeDef; + + +extern void CRC_CMD(FunctionalStatus NewState); +extern void CRC_Soft_Reset(void); +extern void CRC_Configure(CRC_COMPIN_TypeDef COMPINX,CRC_COMPOUT_TypeDef COMPOUTX,CRC_ENDIANIN_TypeDef ENDIANINX, + CRC_ENDIANOUT_TypeDef ENDIANOUT,CRC_POLY_TypeDef POLYX); +extern void CRC_Seed_Write(U32_T seed_data); +extern U32_T CRC_Seed_Read(void); +extern void CRC_Datain(U32_T data_in); +extern U32_T CRC_Result_Read(void); +extern U32_T Chip_CRC_CRC32(U32_T *data, U32_T words); +extern U32_T Chip_CRC_CRC16(U16_T *data, U32_T size); +extern U32_T Chip_CRC_CRC8(U8_T *data, U32_T size); +/*************************************************************/ + +#endif /**< apt32f102_crc_H */ + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_ept.h b/BLV_CS_AC100_V05/Source/include/apt32f102_ept.h new file mode 100644 index 0000000..d172a14 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_ept.h @@ -0,0 +1,783 @@ +/* + ****************************************************************************** + * @file apt32f102_ept.h + * @author APT AE Team + * @version V1.020 + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_ept_H +#define _apt32f102_ept_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" +/****************************************************************************** +************************* ept Registers Definition ************************* +******************************************************************************/ +/** + * @brief EPT io Mode set + */ +typedef enum +{ + EPT_IO_CHAX = 0, + EPT_IO_CHAY = 1, + EPT_IO_CHBX = 2, + EPT_IO_CHBY = 3, + EPT_IO_CHCX = 4, + EPT_IO_CHCY = 5, + EPT_IO_CHD = 6, + EPT_IO_EPI = 7 +}EPT_IO_Mode_Type; +/** + * @brief EPT io NUM set + */ +typedef enum +{ + IO_NUM_PA07 = 0X10, + IO_NUM_PA10 = 0X11, + IO_NUM_PA15 = 0X12, + IO_NUM_PB03 = 0X13, + IO_NUM_PB05 = 0X14, + IO_NUM_PA12 = 0X15, + IO_NUM_PB02 = 0X16, + IO_NUM_PA11 = 0X17, + IO_NUM_PA14 = 0X18, + IO_NUM_PB04 = 0X19, + IO_NUM_PA05 = 0X1A, + IO_NUM_PA08 = 0X1B, + IO_NUM_PA03 = 0X1C, + IO_NUM_PB00 = 0X1D, + IO_NUM_PA04 = 0X1E, + IO_NUM_PA09 = 0X1F, + IO_NUM_PA013 = 0X20 +}EPT_IO_NUM_Type; +/** + * @brief EPT TCLK selected + */ +typedef enum +{ + EPT_Selecte_PCLK = 0<<3, + EPT_Selecte_SYNCUSR3 = 1<<3 +}EPT_TCLK_Selecte_Type; +/** + * @brief EPT TIN selected + */ +typedef enum +{ + EPT_CGSRC_TIN_BT0OUT = 0, + EPT_CGSRC_TIN_BT1OUT = 1, + EPT_CGSRC_CHAX = 2, //设置CHAX CHBX后对应管脚将不能输出PWM + EPT_CGSRC_CHBX = 3, + EPT_CGSRC_DIS = 4 +}EPT_CGSRC_TIN_Selecte_Type; + +typedef enum +{ + EPT_BURST_ENABLE = 1<<9, + EPT_BURST_DIABLE = 0<<9 +}EPT_BURST_CMD_Type; +/** + * @brief EPT CNTMD selected + */ +typedef enum +{ + EPT_CNTMD_increase = ((CSP_REGISTER_T)(0x00ul << 0)), + EPT_CNTMD_decrease = ((CSP_REGISTER_T)(0x01ul << 0)), + EPT_CNTMD_increaseTOdecrease = ((CSP_REGISTER_T)(0x02ul << 0)) +}EPT_CNTMD_SELECTE_Type; +/** + * @brief EPT OPM selected + */ +typedef enum +{ + EPT_OPM_Once = ((CSP_REGISTER_T)(0x01ul << 6)), + EPT_OPM_Continue = ((CSP_REGISTER_T)(0x00ul << 6)) +}EPT_OPM_SELECTE_Type; +/** + * @brief EPT CAP CMD + */ +typedef enum +{ + EPT_CAP_EN = ((CSP_REGISTER_T)(0x01ul << 8)), + EPT_CAP_DIS = ((CSP_REGISTER_T)(0x00ul << 8)) +}EPT_CAPLDEN_CMD_Type; + +/** + * @brief EPT CAPMD selected + */ +typedef enum +{ + EPT_CAPMD_Once = ((CSP_REGISTER_T)(0x01ul << 20)), + EPT_CAPMD_Continue = ((CSP_REGISTER_T)(0x00ul << 20)) +}EPT_CAPMD_SELECTE_Type; + +/** + * @brief EPT CMPA RST CMD + */ +typedef enum +{ + EPT_LDARST_EN = ((CSP_REGISTER_T)(0x00ul << 23)), + EPT_LDARST_DIS = ((CSP_REGISTER_T)(0x01ul << 23)) +}EPT_LOAD_CMPA_RST_CMD_Type; +/** + * @brief EPT CMPB RST CMD + */ +typedef enum +{ + EPT_LDBRST_EN = ((CSP_REGISTER_T)(0x00ul << 24)), + EPT_LDBRST_DIS = ((CSP_REGISTER_T)(0x01ul << 24)) +}EPT_LOAD_CMPB_RST_CMD_Type; +/** + * @brief EPT CMPC RST CMD + */ +typedef enum +{ + EPT_LDCRST_EN = ((CSP_REGISTER_T)(0x00ul << 25)), + EPT_LDCRST_DIS = ((CSP_REGISTER_T)(0x01ul << 25)) +}EPT_LOAD_CMPC_RST_CMD_Type; +/** + * @brief EPT CMPD RST CMD + */ +typedef enum +{ + EPT_LDDRST_EN = ((CSP_REGISTER_T)(0x00ul << 26)), + EPT_LDDRST_DIS = ((CSP_REGISTER_T)(0x01ul << 26)) +}EPT_LOAD_CMPD_RST_CMD_Type; +/** + * @brief EPT FLT CMD + */ +typedef enum +{ + EPT_FLT_DIS = ((CSP_REGISTER_T)(0x00ul << 10)), + EPT_FLT_EN = ((CSP_REGISTER_T)(0x01ul << 10)) +}EPT_FLT_CMD_Type; +/** + * @brief EPT FLT CGFLT + */ +typedef enum +{ + EPT_FLT_Bypass = ((CSP_REGISTER_T)(0x00ul << 13)), + EPT_FLT_2 = ((CSP_REGISTER_T)(0x01ul << 13)), + EPT_FLT_3 = ((CSP_REGISTER_T)(0x02ul << 13)), + EPT_FLT_4 = ((CSP_REGISTER_T)(0x03ul << 13)), + EPT_FLT_6 = ((CSP_REGISTER_T)(0x04ul << 13)), + EPT_FLT_8 = ((CSP_REGISTER_T)(0x05ul << 13)), + EPT_FLT_16 = ((CSP_REGISTER_T)(0x06ul << 13)), + EPT_FLT_32 = ((CSP_REGISTER_T)(0x07ul << 13)) +}EPT_FLT_CGFLT_Type; +/** + * @brief EPT Triggle Mode + */ +typedef enum +{ + EPT_Triggle_Continue = ((CSP_REGISTER_T)(0x00ul << 8)), + EPT_Triggle_Once = ((CSP_REGISTER_T)(0x01ul << 8)) +}EPT_Triggle_Mode_Type; +/** + * @brief EPT Rearm select + */ +typedef enum +{ + EPT_REARM_SYNCEN0 = ((CSP_REGISTER_T)(0x01ul << 16)), + EPT_REARM_SYNCEN1 = ((CSP_REGISTER_T)(0x02ul << 16)), + EPT_REARM_SYNCEN2 = ((CSP_REGISTER_T)(0x04ul << 16)), + EPT_REARM_SYNCEN3 = ((CSP_REGISTER_T)(0x08ul << 16)), + EPT_REARM_SYNCEN4 = ((CSP_REGISTER_T)(0x10ul << 16)), + EPT_REARM_SYNCEN5 = ((CSP_REGISTER_T)(0x20ul << 16)) +}EPT_REARMX_Type; +/** + * @brief EPT Rearm select + */ +typedef enum +{ + EPT_REARM_Selected_DIS = ((CSP_REGISTER_T)(0x00ul << 30)), + EPT_REARM_Selected_ZRO_AUTO = ((CSP_REGISTER_T)(0x01ul << 30)), + EPT_REARM_Selected_PRD_AUTO = ((CSP_REGISTER_T)(0x02ul << 30)), + EPT_REARM_Selected_ZRO_PRD_AUTO = ((CSP_REGISTER_T)(0x03ul << 30)) +}EPT_REARM_MODE_Type; +/** + * @brief EPT Syncusr0 Trig select + */ +typedef enum +{ + EPT_SYNCUSR0_REARMTrig_DIS = ((CSP_REGISTER_T)(0x00ul << 22)), + EPT_SYNCUSR0_REARMTrig_T1 = ((CSP_REGISTER_T)(0x01ul << 22)), + EPT_SYNCUSR0_REARMTrig_T2 = ((CSP_REGISTER_T)(0x02ul << 22)), + EPT_SYNCUSR0_REARMTrig_T1T2 = ((CSP_REGISTER_T)(0x03ul << 22)) +}EPT_SYNCUSR0_REARMTrig_Selecte_Type; +/** + * @brief EPT TRGSRC0 ExtSync Selected + */ +typedef enum +{ + EPT_TRGSRC0_ExtSync_SYNCUSR0 = ((CSP_REGISTER_T)(0x00ul << 24)), + EPT_TRGSRC0_ExtSync_SYNCUSR1 = ((CSP_REGISTER_T)(0x01ul << 24)), + EPT_TRGSRC0_ExtSync_SYNCUSR2 = ((CSP_REGISTER_T)(0x02ul << 24)), + EPT_TRGSRC0_ExtSync_SYNCUSR3 = ((CSP_REGISTER_T)(0x03ul << 24)), + EPT_TRGSRC0_ExtSync_SYNCUSR4 = ((CSP_REGISTER_T)(0x04ul << 24)), + EPT_TRGSRC0_ExtSync_SYNCUSR5 = ((CSP_REGISTER_T)(0x05ul << 24)) +}EPT_TRGSRC0_ExtSync_Selected_Type; +/** + * @brief EPT TRGSRC1 ExtSync Selected + */ +typedef enum +{ + EPT_TRGSRC1_ExtSync_SYNCUSR0 = ((CSP_REGISTER_T)(0x00ul << 27)), + EPT_TRGSRC1_ExtSync_SYNCUSR1 = ((CSP_REGISTER_T)(0x01ul << 27)), + EPT_TRGSRC1_ExtSync_SYNCUSR2 = ((CSP_REGISTER_T)(0x02ul << 27)), + EPT_TRGSRC1_ExtSync_SYNCUSR3 = ((CSP_REGISTER_T)(0x03ul << 27)), + EPT_TRGSRC1_ExtSync_SYNCUSR4 = ((CSP_REGISTER_T)(0x04ul << 27)), + EPT_TRGSRC1_ExtSync_SYNCUSR5 = ((CSP_REGISTER_T)(0x05ul << 27)) +}EPT_TRGSRC1_ExtSync_Selected_Type; +/** + * @brief EPT PHSEN CMD + */ +typedef enum +{ + EPT_PHSEN_DIS = ((CSP_REGISTER_T)(0x00ul << 8)), + EPT_PHSEN_EN = ((CSP_REGISTER_T)(0x01ul << 8)) +}EPT_PHSEN_CMD_Type; +/** + * @brief EPT PHSDIR selecte + */ +typedef enum +{ + EPT_PHSDIR_increase = ((CSP_REGISTER_T)(0x01ul << 31)), + EPT_PHSEN_decrease = ((CSP_REGISTER_T)(0x00ul << 31)) +}EPT_PHSDIR_Type; +/** + * @brief EPT GLDCR Config + */ +typedef enum +{ + EPT_GLDMD_Selecte_ZRO = ((CSP_REGISTER_T)(0x00ul << 1)), + EPT_GLDMD_Selecte_PRD = ((CSP_REGISTER_T)(0x01ul << 1)), + EPT_GLDMD_Selecte_ZRO_PRD = ((CSP_REGISTER_T)(0x02ul << 1)), + EPT_GLDMD_Selecte_ZRO_ExiLoad_SYNC = ((CSP_REGISTER_T)(0x03ul << 1)), + EPT_GLDMD_Selecte_PRD_ExiLoad_SYNC = ((CSP_REGISTER_T)(0x04ul << 1)), + EPT_GLDMD_Selecte_ZRO_PRD_ExiLoad_SYNC = ((CSP_REGISTER_T)(0x05ul << 1)), + EPT_GLDMD_Selecte_SW = ((CSP_REGISTER_T)(0x0Ful << 1)) +}EPT_GLDMD_Selecte_Type; +/** + * @brief EPT OSTMD Selecte + */ +typedef enum +{ + EPT_GLD_OneShot_DIS = ((CSP_REGISTER_T)(0x00ul << 5)), + EPT_GLD_OneShot_EN = ((CSP_REGISTER_T)(0x01ul << 5)) +}EPT_GLD_OneShot_CMD_Type; +/** + * @brief EPT PRDR Event Load + */ +typedef enum +{ + EPT_PRDR_EventLoad_PEND = ((CSP_REGISTER_T)(0x00ul << 4)), + EPT_PRDR_EventLoad_ExiLoad_SYNC = ((CSP_REGISTER_T)(0x01ul << 4)), + EPT_PRDR_EventLoad_Zro_ExiLoad_SYNC = ((CSP_REGISTER_T)(0x02ul << 4)), + EPT_PRDR_EventLoad_Immediate = ((CSP_REGISTER_T)(0x03ul << 4)) +} EPT_PRDR_EventLoad_Type; + +/** + * @brief EPT CMPX Event load + */ +typedef enum +{ + EPT_CMPX_EventLoad_DIS = 0, + EPT_CMPX_EventLoad_Immediate = 1, + EPT_CMPX_EventLoad_ZRO = 2, + EPT_CMPX_EventLoad_PRD = 3, + EPT_CMPX_EventLoad_ExiLoad_SYNC = 4 +}EPT_CMPX_EventLoad_Type; +/** + * @brief EPT AQCRX Event load + */ +typedef enum +{ + EPT_AQCRX_EventLoad_DIS = 0, + EPT_AQCRX_EventLoad_Immediate = 1, + EPT_AQCRX_EventLoad_ZRO = 2, + EPT_AQCRX_EventLoad_PRD = 3, + EPT_AQCRX_EventLoad_ExiLoad_SYNC = 4 +}EPT_AQCRX_EventLoad_Type; +/** + * @brief EPT PWMX Selecte + */ +typedef enum +{ + EPT_PWMA = 0, + EPT_PWMB = 1, + EPT_PWMC = 2, + EPT_PWMD = 3 +}EPT_PWMX_Selecte_Type; +/** + * @brief EPT CA Selecte + */ +typedef enum +{ + EPT_CA_Selecte_CMPA = ((CSP_REGISTER_T)(0x00ul << 20)), + EPT_CA_Selecte_CMPB = ((CSP_REGISTER_T)(0x01ul << 20)), + EPT_CA_Selecte_CMPC = ((CSP_REGISTER_T)(0x02ul << 20)), + EPT_CA_Selecte_CMPD = ((CSP_REGISTER_T)(0x03ul << 20)) +}EPT_CA_Selecte_Type; +/** + * @brief EPT CB Selecte + */ +typedef enum +{ + EPT_CB_Selecte_CMPA = ((CSP_REGISTER_T)(0x00ul << 22)), + EPT_CB_Selecte_CMPB = ((CSP_REGISTER_T)(0x01ul << 22)), + EPT_CB_Selecte_CMPC = ((CSP_REGISTER_T)(0x02ul << 22)), + EPT_CB_Selecte_CMPD = ((CSP_REGISTER_T)(0x03ul << 22)) +}EPT_CB_Selecte_Type; +/** + * @brief EPT PWM ZRO Output + */ +typedef enum +{ + EPT_PWM_ZRO_Event_Nochange = ((CSP_REGISTER_T)(0x00ul )), + EPT_PWM_ZRO_Event_OutLow = ((CSP_REGISTER_T)(0x01ul )), + EPT_PWM_ZRO_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul )), + EPT_PWM_ZRO_Event_Negate = ((CSP_REGISTER_T)(0x03ul )) +}EPT_PWM_ZRO_Output_Type; +/** + * @brief EPT PWM PRD Output + */ +typedef enum +{ + EPT_PWM_PRD_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<2 )), + EPT_PWM_PRD_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<2 )), + EPT_PWM_PRD_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<2 )), + EPT_PWM_PRD_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<2 )) +}EPT_PWM_PRD_Output_Type; +/** + * @brief EPT PWM CAU Output + */ +typedef enum +{ + EPT_PWM_CAU_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<4 )), + EPT_PWM_CAU_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<4 )), + EPT_PWM_CAU_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<4 )), + EPT_PWM_CAU_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<4 )) +}EPT_PWM_CAU_Output_Type; +/** + * @brief EPT PWM CAD Output + */ +typedef enum +{ + EPT_PWM_CAD_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<6 )), + EPT_PWM_CAD_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<6 )), + EPT_PWM_CAD_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<6 )), + EPT_PWM_CAD_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<6 )) +}EPT_PWM_CAD_Output_Type; +/** + * @brief EPT PWM CBU Output + */ +typedef enum +{ + EPT_PWM_CBU_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<8 )), + EPT_PWM_CBU_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<8 )), + EPT_PWM_CBU_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<8 )), + EPT_PWM_CBU_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<8 )) +}EPT_PWM_CBU_Output_Type; +/** + * @brief EPT PWM CBD Output + */ +typedef enum +{ + EPT_PWM_CBD_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<10 )), + EPT_PWM_CBD_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<10 )), + EPT_PWM_CBD_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<10 )), + EPT_PWM_CBD_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<10 )) +}EPT_PWM_CBD_Output_Type; +/** + * @brief EPT PWM T1U Output + */ +typedef enum +{ + EPT_PWM_T1U_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<12 )), + EPT_PWM_T1U_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<12 )), + EPT_PWM_T1U_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<12 )), + EPT_PWM_T1U_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<12 )) +}EPT_PWM_T1U_Output_Type; +/** + * @brief EPT PWM T1D Output + */ +typedef enum +{ + EPT_PWM_T1D_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<14 )), + EPT_PWM_T1D_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<14 )), + EPT_PWM_T1D_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<14 )), + EPT_PWM_T1D_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<14 )) +}EPT_PWM_T1D_Output_Type; +/** + * @brief EPT PWM T2U Output + */ +typedef enum +{ + EPT_PWM_T2U_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<16 )), + EPT_PWM_T2U_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<16 )), + EPT_PWM_T2U_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<16 )), + EPT_PWM_T2U_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<16 )) +}EPT_PWM_T2U_Output_Type; +/** + * @brief EPT PWM T2D Output + */ +typedef enum +{ + EPT_PWM_T2D_Event_Nochange = ((CSP_REGISTER_T)(0x00ul<<18 )), + EPT_PWM_T2D_Event_OutLow = ((CSP_REGISTER_T)(0x01ul<<18 )), + EPT_PWM_T2D_Event_OutHigh = ((CSP_REGISTER_T)(0x02ul<<18 )), + EPT_PWM_T2D_Event_Negate = ((CSP_REGISTER_T)(0x03ul<<18 )) +}EPT_PWM_T2D_Output_Type; +/** + * @brief EPT CPCR CMD + */ +typedef enum +{ + EPT_CPCR_ENALBE = ((CSP_REGISTER_T)(0x01ul<<16 )), + EPT_CPCR_Disable = ((CSP_REGISTER_T)(0x00ul<<16 )) +}EPT_CPCR_CMD_Type; +/** + * @brief EPT CPCR Source Selecte + */ +typedef enum +{ + EPT_CPCR_Source_TCLK = ((CSP_REGISTER_T)(0)), + EPT_CPCR_Source_TIN_BT0OUT = ((CSP_REGISTER_T)(1)), + EPT_CPCR_Source_TIN_BT1OUT = ((CSP_REGISTER_T)(2)) +}EPT_CPCR_Source_Selecte_Type; +/** + * @brief EPT CPCR CDUTY + */ +typedef enum +{ + EPT_CDUTY_DIS = ((CSP_REGISTER_T)(0<<11)), + EPT_CDUTY_7_8 = ((CSP_REGISTER_T)(1<<11)), + EPT_CDUTY_6_8 = ((CSP_REGISTER_T)(2<<11)), + EPT_CDUTY_5_8 = ((CSP_REGISTER_T)(3<<11)), + EPT_CDUTY_4_8 = ((CSP_REGISTER_T)(4<<11)), + EPT_CDUTY_3_8 = ((CSP_REGISTER_T)(5<<11)), + EPT_CDUTY_2_8 = ((CSP_REGISTER_T)(6<<11)), + EPT_CDUTY_1_8 = ((CSP_REGISTER_T)(7<<11)) +}EPT_CDUTY_Type; +/** + * @brief EPT EPX + */ +typedef enum +{ + EPT_EP0 = 0, + EPT_EP1 = 1, + EPT_EP2 = 2, + EPT_EP3 = 3, + EPT_EP4 = 4, + EPT_EP5 = 5, + EPT_EP6 = 6, + EPT_EP7 = 7 +}EPT_EPX_Type; +/** + * @brief EPT Input selecte + */ +typedef enum +{ + EPT_Input_selecte_EPI0 = ((CSP_REGISTER_T)(1)), + EPT_Input_selecte_EPI1 = ((CSP_REGISTER_T)(2)), + EPT_Input_selecte_EPI2 = ((CSP_REGISTER_T)(3)), + EPT_Input_selecte_EPI3 = ((CSP_REGISTER_T)(4)), + EPT_Input_selecte_EPI4 = ((CSP_REGISTER_T)(5)), + EPT_Input_selecte_ORL0 = ((CSP_REGISTER_T)(0XE)), + EPT_Input_selecte_ORL1 = ((CSP_REGISTER_T)(0XF)) +}EPT_Input_selecte_Type; +/** + * @brief EPT FLT PACE0 + */ +typedef enum +{ + EPT_FLT_PACE0_DIS = ((CSP_REGISTER_T)(0<<8)), + EPT_FLT_PACE0_2CLK = ((CSP_REGISTER_T)(1<<8)), + EPT_FLT_PACE0_3CLK = ((CSP_REGISTER_T)(2<<8)), + EPT_FLT_PACE0_4CLK = ((CSP_REGISTER_T)(3<<8)) +}EPT_FLT_PACE0_Type; +/** + * @brief EPT FLT PACE1 + */ +typedef enum +{ + EPT_FLT_PACE1_DIS = ((CSP_REGISTER_T)(0<<10)), + EPT_FLT_PACE1_2CLK = ((CSP_REGISTER_T)(1<<10)), + EPT_FLT_PACE1_3CLK = ((CSP_REGISTER_T)(2<<10)), + EPT_FLT_PACE1_4CLK = ((CSP_REGISTER_T)(3<<10)) +}EPT_FLT_PACE1_Type; +/** + * @brief EPT DB EventLoad + */ +typedef enum +{ + EPT_DB_EventLoad_DIS = 0, + EPT_DB_EventLoad_Immediate = 1, + EPT_DB_EventLoad_ZRO = 2, + EPT_DB_EventLoad_PRD = 3, + EPT_DB_EventLoad_ZRO_PRD = 4 +}EPT_DB_EventLoad_Type; +/** + * @brief EPT CHX Selecte + */ +typedef enum +{ + EPT_CHA_Selecte = 0, + EPT_CHB_Selecte = 1, + EPT_CHC_Selecte = 2, +}EPT_CHX_Selecte_Type; +/** + * @brief EPT INSEL + */ +typedef enum +{ + EPT_CHAINSEL_PWMA_RISE_FALL = ((CSP_REGISTER_T)(0<<4)), + EPT_CHAINSEL_PWMB_RISE_PWMA_FALL = ((CSP_REGISTER_T)(1<<4)), + EPT_CHAINSEL_PWMA_RISE_PWMB_FALL = ((CSP_REGISTER_T)(2<<4)), + EPT_CHAINSEL_PWMB_RISE_FALL = ((CSP_REGISTER_T)(3<<4)), + EPT_CHBINSEL_PWMB_RISE_FALL = ((CSP_REGISTER_T)(0<<12)), + EPT_CHBINSEL_PWMC_RISE_PWMB_FALL = ((CSP_REGISTER_T)(1<<12)), + EPT_CHBINSEL_PWMB_RISE_PWMC_FALL = ((CSP_REGISTER_T)(2<<12)), + EPT_CHBINSEL_PWMC_RISE_FALL = ((CSP_REGISTER_T)(3<<12)), + EPT_CHCINSEL_PWMC_RISE_FALL = ((CSP_REGISTER_T)(0<<20)), + EPT_CHCINSEL_PWMD_RISE_PWMC_FALL = ((CSP_REGISTER_T)(1<<20)), + EPT_CHCINSEL_PWMC_RISE_PWMD_FALL = ((CSP_REGISTER_T)(2<<20)), + EPT_CHCINSEL_PWMD_RISE_FALL = ((CSP_REGISTER_T)(3<<20)) +}EPT_INSEL_Type; +/** + * @brief EPT OUTSEL + */ +typedef enum +{ + EPT_CHA_OUTSEL_PWMA_PWMB_Bypass = ((CSP_REGISTER_T)(0)), + EPT_CHA_OUTSEL_DisRise_EnFall = ((CSP_REGISTER_T)(1)), + EPT_CHA_OUTSEL_EnRise_DisFall = ((CSP_REGISTER_T)(2)), + EPT_CHA_OUTSEL_EnRise_EnFall = ((CSP_REGISTER_T)(3)), + EPT_CHB_OUTSEL_PWMB_PWMC_Bypass = ((CSP_REGISTER_T)(0<<8)), + EPT_CHB_OUTSEL_DisRise_EnFall = ((CSP_REGISTER_T)(1<<8)), + EPT_CHB_OUTSEL_EnRise_DisFall = ((CSP_REGISTER_T)(2<<8)), + EPT_CHB_OUTSEL_EnRise_EnFall = ((CSP_REGISTER_T)(3<<8)), + EPT_CHC_OUTSEL_PWMC_PWMD_Bypass = ((CSP_REGISTER_T)(0<<16)), + EPT_CHC_OUTSEL_DisRise_EnFall = ((CSP_REGISTER_T)(1<<16)), + EPT_CHC_OUTSEL_EnRise_DisFall = ((CSP_REGISTER_T)(2<<16)), + EPT_CHC_OUTSEL_EnRise_EnFall = ((CSP_REGISTER_T)(3<<16)) +}EPT_OUTSEL_Type; +/** + * @brief EPT OUT POLARITY + */ +typedef enum +{ + EPT_PA_PB_OUT_Direct = ((CSP_REGISTER_T)(0)), + EPT_PA_OUT_Reverse = ((CSP_REGISTER_T)(1)), + EPT_PB_OUT_Reverse = ((CSP_REGISTER_T)(2)), + EPT_PA_PB_OUT_Reverse = ((CSP_REGISTER_T)(3)) +}EPT_OUT_POLARITY_Type; +/** + * @brief EPT OUT SWAP + */ +typedef enum +{ + EPT_PAtoCHX_PBtoCHY = ((CSP_REGISTER_T)(0)), + EPT_PBtoCHX_PBtoCHY = ((CSP_REGISTER_T)(1)), + EPT_PAtoCHX_PAtoCHY = ((CSP_REGISTER_T)(2)), + EPT_PBtoCHX_PAtoCHY = ((CSP_REGISTER_T)(3)) +}EPT_OUT_SWAP_Type; +/** + * @brief EPT TRGSRCX Selecte + */ +typedef enum +{ + EPT_TRGSRC0 = 0, + EPT_TRGSRC1 = 1, + EPT_TRGSRC2 = 2, + EPT_TRGSRC3 = 3 +}EPT_TRGSRCX_Select_Type; +/** + * @brief EPT EVTRG TRGSRCX SET + */ + typedef enum +{ + EPT_EVTRG_TRGSRCX_DIS = ((CSP_REGISTER_T)(0x00ul )), + EPT_EVTRG_TRGSRCX_ZRO = ((CSP_REGISTER_T)(0x01ul )), + EPT_EVTRG_TRGSRCX_PRD = ((CSP_REGISTER_T)(0x02ul )), + EPT_EVTRG_TRGSRCX_ZROorPRD = ((CSP_REGISTER_T)(0x03ul )), + EPT_EVTRG_TRGSRCX_CMPAU = ((CSP_REGISTER_T)(0x04ul )), + EPT_EVTRG_TRGSRCX_CMPAD = ((CSP_REGISTER_T)(0x05ul )), + EPT_EVTRG_TRGSRCX_CMPBU = ((CSP_REGISTER_T)(0x06ul )), + EPT_EVTRG_TRGSRCX_CMPBD = ((CSP_REGISTER_T)(0x07ul )), + EPT_EVTRG_TRGSRCX_CMPCU = ((CSP_REGISTER_T)(0x08ul )), + EPT_EVTRG_TRGSRCX_CMPCD = ((CSP_REGISTER_T)(0x09ul )), + EPT_EVTRG_TRGSRCX_CMPDU = ((CSP_REGISTER_T)(0x0Aul )), + EPT_EVTRG_TRGSRCX_CMPDD = ((CSP_REGISTER_T)(0x0Bul )), + EPT_EVTRG_TRGSRC01_ExtSync = ((CSP_REGISTER_T)(0x0Cul )), + EPT_EVTRG_TRGSRC23_PeriodEnd = ((CSP_REGISTER_T)(0x0Cul )), + EPT_EVTRG_TRGSRCX_PE0 = ((CSP_REGISTER_T)(0x0Dul )), + EPT_EVTRG_TRGSRCX_PE1 = ((CSP_REGISTER_T)(0x0Eul )), + EPT_EVTRG_TRGSRCX_PE2 = ((CSP_REGISTER_T)(0x0Ful )) +}EPT_EVTRG_TRGSRCX_TypeDef; + typedef enum +{ + EPT_TRGSRCX_EN = ((CSP_REGISTER_T)0x01ul), + EPT_TRGSRCX_DIS = ((CSP_REGISTER_T)0x00ul) +}EPT_TRGSRCX_CMD_TypeDef; +/** + * @brief EPT INT register + */ +typedef enum +{ + //RISR IMCR MISR ICR + EPT_TRGEV0_INT = ((CSP_REGISTER_T)(0x01ul << 0)), + EPT_TRGEV1_INT = ((CSP_REGISTER_T)(0x01ul << 1)), + EPT_TRGEV2_INT = ((CSP_REGISTER_T)(0x01ul << 2)), + EPT_TRGEV3_INT = ((CSP_REGISTER_T)(0x01ul << 3)), + EPT_CAP_LD0 = ((CSP_REGISTER_T)(0x01ul << 4)), + EPT_CAP_LD1 = ((CSP_REGISTER_T)(0x01ul << 5)), + EPT_CAP_LD2 = ((CSP_REGISTER_T)(0x01ul << 6)), + EPT_CAP_LD3 = ((CSP_REGISTER_T)(0x01ul << 7)), + EPT_CAU = ((CSP_REGISTER_T)(0x01ul <<8)), + EPT_CAD = ((CSP_REGISTER_T)(0x01ul <<9)), + EPT_CBU = ((CSP_REGISTER_T)(0x01ul <<10)), + EPT_CBD = ((CSP_REGISTER_T)(0x01ul <<11)), + EPT_CCU = ((CSP_REGISTER_T)(0x01ul <<12)), + EPT_CCD = ((CSP_REGISTER_T)(0x01ul <<13)), + EPT_CDU = ((CSP_REGISTER_T)(0x01ul <<14)), + EPT_CDD = ((CSP_REGISTER_T)(0x01ul <<15)), + EPT_PEND = ((CSP_REGISTER_T)(0x01ul <<16)) +}EPT_INT_TypeDef; +/** + * @brief EPT EMINT register + */ +typedef enum +{ + //EMRISR EMIMCR EMMISR EMICR + EPT_EP0_EMINT = ((CSP_REGISTER_T)(0x01ul << 0)), + EPT_EP1_EMINT = ((CSP_REGISTER_T)(0x01ul << 1)), + EPT_EP2_EMINT = ((CSP_REGISTER_T)(0x01ul << 2)), + EPT_EP3_EMINT = ((CSP_REGISTER_T)(0x01ul << 3)), + EPT_EP4_EMINT = ((CSP_REGISTER_T)(0x01ul << 4)), + EPT_EP5_EMINT = ((CSP_REGISTER_T)(0x01ul << 5)), + EPT_EP6_EMINT = ((CSP_REGISTER_T)(0x01ul << 6)), + EPT_EP7_EMINT = ((CSP_REGISTER_T)(0x01ul << 7)), + EPT_CPU_FAULT_EMINT = ((CSP_REGISTER_T)(0x01ul << 8)), + EPT_MEM_FAULT_EMINT = ((CSP_REGISTER_T)(0x01ul << 9)), + EPT_EOM_FAULT_EMINT = ((CSP_REGISTER_T)(0x01ul << 10)) +}EPT_EMINT_TypeDef; +/** + * @brief EPT LKCR TRG Source + */ +typedef enum +{ + EPT_LKCR_TRG_EP0 = 0, + EPT_LKCR_TRG_EP1 = 2, + EPT_LKCR_TRG_EP2 = 4, + EPT_LKCR_TRG_EP3 = 6, + EPT_LKCR_TRG_EP4 = 8, + EPT_LKCR_TRG_EP5 = 10, + EPT_LKCR_TRG_EP6 = 12, + EPT_LKCR_TRG_EP7 = 14, + EPT_LKCR_TRG_CPU_FAULT = 15, + EPT_LKCR_TRG_MEM_FAULT = 16, + EPT_LKCR_TRG_EOM_FAULT = 17 +}EPT_LKCR_TRG_Source_Type; +/** + * @brief EPT LKCR Mode Selecte + */ +typedef enum +{ + EPT_LKCR_Mode_LOCK_DIS = ((CSP_REGISTER_T)0x00ul), + EPT_LKCR_Mode_SLOCK_EN = ((CSP_REGISTER_T)0x01ul), + EPT_LKCR_Mode_HLOCK_EN = ((CSP_REGISTER_T)0x02ul), + EPT_LKCR_TRG_X_FAULT_HLOCK_EN = ((CSP_REGISTER_T)0x03ul), + EPT_LKCR_TRG_X_FAULT_HLOCK_DIS = ((CSP_REGISTER_T)0x04ul), +}EPT_LKCR_Mode_Type; +/** + * @brief EPT OUTPUT Channel + */ +typedef enum +{ + EPT_OUTPUT_Channel_CHAX = 0, + EPT_OUTPUT_Channel_CHBX = 2, + EPT_OUTPUT_Channel_CHCX = 4, + EPT_OUTPUT_Channel_CHD = 6, + EPT_OUTPUT_Channel_CHAY = 8, + EPT_OUTPUT_Channel_CHBY = 10, + EPT_OUTPUT_Channel_CHCY = 12 +}EPT_OUTPUT_Channel_Type; +/** + * @brief EPT SHLOCK OUTPUT Statue + */ +typedef enum +{ + EPT_SHLOCK_OUTPUT_HImpedance = 0, + EPT_SHLOCK_OUTPUT_High = 1, + EPT_SHLOCK_OUTPUT_Low = 2, + EPT_SHLOCK_OUTPUT_Nochange = 3 +}EPT_SHLOCK_OUTPUT_Statue_Type; + +/** @addtogroup EPT_Exported_functions + * @{ + */ +extern void EPT_Software_Prg(void); +extern void EPT_Start(void); +extern void EPT_Stop(void); +extern void EPT_IO_SET(EPT_IO_Mode_Type EPT_IO_X , EPT_IO_NUM_Type IO_Num_X); +extern 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); +extern 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); +extern 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); +extern 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); +extern void EPT_PHSEN_Config(EPT_PHSEN_CMD_Type EPT_PHSEN_CMD , EPT_PHSDIR_Type EPT_PHSDIR , U16_T PHSR); +extern void EPT_SYNCR_RearmClr(EPT_REARMX_Type EPT_REARMX ); +extern void EPT_Caputure_Rearm(void); +extern 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); +extern void EPT_Globle_SwLoad_CMD(void); +extern 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); +extern 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 + ); +extern void EPT_Tevent_Selecte( U8_T EPT_T1_Selecte, U8_T EPT_T2_Selecte); +extern 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); +extern void EPT_PRDR_EventLoad_Config(EPT_PRDR_EventLoad_Type EPT_PRDR_EventLoad_x); +extern void EPT_CMP_EventLoad_Config(EPT_CMPX_EventLoad_Type EPT_CMPX_EventLoad_x); +extern void EPT_AQCR_Eventload_Config(EPT_AQCRX_EventLoad_Type EPT_AQCRX_EventLoad_X); +extern 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); +extern void EPT_EPIX_POL_Config(U8_T EPT_EPIX_POL); +extern void EPT_DB_Eventload_Config(EPT_DB_EventLoad_Type EPT_DB_EventLoad_X); +extern 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); +extern void EPT_DB_CLK_Config(U16_T DPSC , U16_T DTR , U16_T DTF); +extern 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); +extern void EPT_TRGSRCX_SWFTRG(EPT_TRGSRCX_Select_Type EPT_TRGSRCX_Select); +extern void EPT_Int_Enable(EPT_INT_TypeDef EPT_X_INT); +extern void EPT_Int_Disable(EPT_INT_TypeDef EPT_X_INT); +extern void EPT_EMInt_Enable(EPT_EMINT_TypeDef EPT_X_EMINT); +extern void EPT_EMInt_Disable(EPT_EMINT_TypeDef EPT_X_EMINT); +extern void EPT_Vector_Int_Enable(void); +extern void EPT_Vector_Int_Disable(void); +extern void EPT_SLock_CLR(EPT_EMINT_TypeDef EPT_X_EMINT); +extern void EPT_HLock_CLR(EPT_EMINT_TypeDef EPT_X_EMINT); +extern void EPT_SW_Set_lock(EPT_EMINT_TypeDef EPT_X_EMINT); +extern void EPT_LKCR_TRG_Config(EPT_LKCR_TRG_Source_Type EPT_LKCR_TRG_X , EPT_LKCR_Mode_Type EPT_LKCR_Mode_X); +extern void EPT_SHLOCK_OUTPUT_Config(EPT_OUTPUT_Channel_Type EPT_OUTPUT_Channel_X , EPT_SHLOCK_OUTPUT_Statue_Type EPT_SHLOCK_OUTPUT_X); + +#endif /**< apt32f102_ept_H */ + +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_et.h b/BLV_CS_AC100_V05/Source/include/apt32f102_et.h new file mode 100644 index 0000000..8c66ee3 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_et.h @@ -0,0 +1,146 @@ +/* + ****************************************************************************** + * @file apt32f102_et.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_et_H +#define _apt32f102_et_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + + +#define ET_RESET_VALUE (0x00000000) +//-------------------------------------------------------------------------------- +//-----------------------------ET value enum define-------------------------- +//-------------------------------------------------------------------------------- +/** + * @brief ET SWTRG register + */ +typedef enum +{ + ET_SWTRG_CH0 = 0, + ET_SWTRG_CH1 = (1<<1), + ET_SWTRG_CH2 = (1<<2), + ET_SWTRG_CH3 = (1<<3), + ET_SWTRG_CH4 = (1<<4), + ET_SWTRG_CH5 = (1<<5), + ET_SWTRG_CH6 = (1<<6), + ET_SWTRG_CH7 = (1<<7), +}CRC_ETSWTRG_TypeDef; +/** + * @brief SRCSEL register + */ +typedef enum +{ + ET_SRC0 = 0, + ET_SRC1 = 1, + ET_SRC2 = 2, +}CRC_ESRCSEL_TypeDef; +/** + * @brief SRCSEL register + */ +typedef enum +{ + ET_DST0 = 0, + ET_DST1 = 1, + ET_DST2 = 2, +}CRC_DSTSEL_TypeDef; +/** + * @brief SRCSEL register + */ +typedef enum +{ + ET_CH3 = 0, + ET_CH4 = 1, + ET_CH5 = 2, + ET_CH6 = 3, + ET_CH7 = 4, +}CRC_ETCHX_TypeDef; +/** + * @brief TRIG MODE register + */ +typedef enum +{ + TRG_HW = (0X00<<1), + TRG_SW = (0X01<<1), +}CRC_TRIGMODE_TypeDef; + +//Source IP Event +#define ET_LPT_SYNC (0X0) +#define ET_EXI_SYNC0 (0X4) +#define ET_EXI_SYNC1 (0X5) +#define ET_EXI_SYNC2 (0X6) +#define ET_EXI_SYNC3 (0X7) +#define ET_EXI_SYNC4 (0X8) +#define ET_EXI_SYNC5 (0X9) +#define ET_RTC_SYNC0 (0XA) +#define ET_RTC_SYNC1 (0XB) +#define ET_BT_SYNC0 (0XC) +#define ET_BT_SYNC1 (0XD) +#define ET_EPT0_SYNC0 (0X10) +#define ET_EPT0_SYNC1 (0X11) +#define ET_EPT0_SYNC2 (0X12) +#define ET_EPT0_SYNC3 (0X13) +#define ET_GPT0_SYNC0 (0X20) +#define ET_GPT0_SYNC1 (0X21) +#define ET_ADC_SYNC0 (0X30) +#define ET_ADC_SYNC1 (0X31) +#define ET_TOUCH_SYNC (0X3C) +//Destination IP Event +#define ET_LPT_TRGSRC (0X0) +#define ET_BT0_TRGSRC0 (0X2) +#define ET_BT0_TRGSRC1 (0X3) +#define ET_BT1_TRGSRC0 (0X4) +#define ET_BT1_TRGSRC1 (0X5) +#define ET_ADC_TRGSRC0 (0X6) +#define ET_ADC_TRGSRC1 (0X7) +#define ET_ADC_TRGSRC2 (0X8) +#define ET_ADC_TRGSRC3 (0X9) +#define ET_ADC_TRGSRC4 (0XA) +#define ET_ADC_TRGSRC5 (0XB) +#define ET_EPT0_TRGSRC0 (0X10) +#define ET_EPT0_TRGSRC1 (0X11) +#define ET_EPT0_TRGSRC2 (0X12) +#define ET_EPT0_TRGSRC3 (0X13) +#define ET_EPT0_TRGSRC4 (0X14) +#define ET_EPT0_TRGSRC5 (0X15) +#define ET_GPT0_TRGSRC0 (0X24) +#define ET_GPT0_TRGSRC1 (0X25) +#define ET_GPT0_TRGSRC2 (0X26) +#define ET_GPT0_TRGSRC3 (0X27) +#define ET_GPT0_TRGSRC4 (0X28) +#define ET_GPT0_TRGSRC5 (0X29) +#define ET_TOUCH_TRGSRC (0X3C) + + + + +extern void ET_DeInit(void); +extern void ET_ENABLE(void); +extern void ET_DISABLE(void); +extern void ET_SWTRG_CMD(CRC_ETSWTRG_TypeDef ETSWTRG_X,FunctionalStatus NewState); +extern void ET_CH0_SRCSEL(CRC_ESRCSEL_TypeDef ESRCSEL_X,FunctionalStatus NewState,U8_T SRCSEL_X); +extern void ET_CH0_CONTROL(FunctionalStatus NewState,CRC_TRIGMODE_TypeDef TRIGMODEX,U8_T DSTSEL_X); +extern void ET_CH1_SRCSEL(CRC_DSTSEL_TypeDef DST_X,FunctionalStatus NewState,U8_T DSTSEL_X); +extern void ET_CH1_CONTROL(FunctionalStatus NewState,CRC_TRIGMODE_TypeDef TRIGMODEX,U8_T DSTSEL_X); +extern void ET_CH2_SRCSEL(CRC_DSTSEL_TypeDef DST_X,FunctionalStatus NewState,U8_T DSTSEL_X); +extern void ET_CH2_CONTROL(FunctionalStatus NewState,CRC_TRIGMODE_TypeDef TRIGMODEX,U8_T DSTSEL_X); +extern void ET_CHx_CONTROL(CRC_ETCHX_TypeDef ETCHX,FunctionalStatus NewState,CRC_TRIGMODE_TypeDef TRIGMODEX,U8_T SRCSEL_X,U8_T DSTSEL_X); + + + +#endif /**< apt32f102_crc_H */ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_gpio.h b/BLV_CS_AC100_V05/Source/include/apt32f102_gpio.h new file mode 100644 index 0000000..5e6994a --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_gpio.h @@ -0,0 +1,221 @@ +/* + ****************************************************************************** + * @file main.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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_gpio_H +#define _apt32f102_gpio_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + + +#define GPIO_RESET_VALUE (0x00000000) +//-------------------------------------------------------------------------------- +//-----------------------------GPIO value enum define-------------------------- +//-------------------------------------------------------------------------------- +/** + * @brief GPIO pin numbner + */ +typedef enum +{ + PIN_0 = 0, /*!< Pin 0 selected */ + PIN_1 = 4, /*!< Pin 1 selected */ + PIN_2 = 8, /*!< Pin 2 selected */ + PIN_3 = 12, /*!< Pin 3 selected */ + PIN_4 = 16, /*!< Pin 4 selected */ + PIN_5 = 20, /*!< Pin 5 selected */ + PIN_6 = 24, /*!< Pin 6 selected */ + PIN_7 = 28, /*!< Pin 7 selected */ + PIN_8 = 0, /*!< Pin 8 selected */ + PIN_9 = 4, /*!< Pin 9 selected */ + PIN_10 = 8, /*!< Pin 10 selected */ + PIN_11 = 12, /*!< Pin 11 selected */ + PIN_12 = 16, /*!< Pin 12 selected */ + PIN_13 = 20, /*!< Pin 13 selected */ + PIN_14 = 24, /*!< Pin 13 selected */ + PIN_15 = 28, /*!< Pin 13 selected */ +}GPIO_Pin_TypeDef; +/** + * @brief GPIO high/low register + */ +typedef enum +{ + LowByte = 0, + HighByte = 1, +}GPIO_byte_TypeDef; +/** + * @brief GPIO IO status + */ +typedef enum +{ + Intput = 1, + Output = 0, +}GPIO_Dir_TypeDef; +/** + * @brief GPIO IO mode + */ +typedef enum +{ + PUDR = 0, //pull high or low + DSCR =1, //drive strenth + OMCR =2, //open drain + IECR =3, //int +}GPIO_Mode_TypeDef; +/** + * @brief GPIO IO Group + */ +typedef enum +{ + PA0 = 0, + PB0 = 2, + GPIOA = 0, + GPIOB = 2, +}GPIO_Group_TypeDef; +/** + * @brief GPIO exi number + */ +typedef enum +{ + EXI0 = 0, + EXI1 = 1, + EXI2 = 2, + EXI3 = 3, + EXI4 = 4, + EXI5 = 5, + EXI6 = 6, + EXI7 = 7, + EXI8 = 8, + EXI9 = 9, + EXI10 = 10, + EXI11 = 11, + EXI12 = 12, + EXI13 = 13, + EXI14 = 14, + EXI15 = 15, +}GPIO_EXI_TypeDef; + +/** + * @brief EXI PIN + */ +typedef enum +{ + Selete_EXI_PIN0 = (CSP_REGISTER_T)(0), + Selete_EXI_PIN1 = (CSP_REGISTER_T)(1), + Selete_EXI_PIN2 = (CSP_REGISTER_T)(2), + Selete_EXI_PIN3 = (CSP_REGISTER_T)(3), + Selete_EXI_PIN4 = (CSP_REGISTER_T)(4), + Selete_EXI_PIN5 = (CSP_REGISTER_T)(5), + Selete_EXI_PIN6 = (CSP_REGISTER_T)(6), + Selete_EXI_PIN7 = (CSP_REGISTER_T)(7), + Selete_EXI_PIN8 = (CSP_REGISTER_T)(8), + Selete_EXI_PIN9 = (CSP_REGISTER_T)(9), + Selete_EXI_PIN10 = (CSP_REGISTER_T)(10), + Selete_EXI_PIN11 = (CSP_REGISTER_T)(11), + Selete_EXI_PIN12 = (CSP_REGISTER_T)(12), + Selete_EXI_PIN13 = (CSP_REGISTER_T)(13), + Selete_EXI_PIN14 = (CSP_REGISTER_T)(14), + Selete_EXI_PIN15 = (CSP_REGISTER_T)(15), + Selete_EXI_PIN16 = (CSP_REGISTER_T)(16), + Selete_EXI_PIN17 = (CSP_REGISTER_T)(17), + Selete_EXI_PIN18 = (CSP_REGISTER_T)(18), + Selete_EXI_PIN19 = (CSP_REGISTER_T)(19) +}GPIO_EXIPIN_TypeDef; + + +/** + * @brief GPIO INPUT MODE SETECTED + */ +typedef enum +{ + INPUT_MODE_SETECTED_CMOS = 0, + INPUT_MODE_SETECTED_TTL1 = 1, + INPUT_MODE_SETECTED_TTL2 = 2 +}INPUT_MODE_SETECTED_TypeDef; + +#define nop asm ("nop") + +#define SetPA0(n) (GPIOA0->SODR = (1ul<CODR = (1ul<SODR = (1ul<CODR = (1ul<PSDR)>>n) & 1ul) +#define PB0in(n) (((GPIOB0->PSDR)>>n) & 1ul) + + +#define CSP_GPIO_SET_CONLR(cm,val) ((cm)->CONLR = val) +#define CSP_GPIO_GET_CONLR(cm) ((cm)->CONLR) + +#define CSP_GPIO_SET_CONHR(cm,val) ((cm)->CONHR = val) +#define CSP_GPIO_GET_CONHR(cm) ((cm)->CONHR) + +#define CSP_GPIO_SET_WODR(cm,val) ((cm)->WODR = val) +#define CSP_GPIO_SET_SODR(cm,val) ((cm)->SODR = val) +#define CSP_GPIO_SET_CODR(cm,val) ((cm)->CODR = val) +#define CSP_GPIO_GET_PSDR(cm) ((cm)->PSDR) + +#define CSP_GPIO_SET_PUDR(cm,val) ((cm)->PUDR = val) +#define CSP_GPIO_GET_PUDR(cm) ((cm)->PUDR) + +#define CSP_GPIO_SET_DSCR(cm,val) ((cm)->DSCR = val) +#define CSP_GPIO_GET_DSCR(cm) ((cm)->DSCR) + +#define CSP_GPIO_SET_OMCR(cm,val) ((cm)->OMCR = val) +#define CSP_GPIO_GET_OMCR(cm) ((cm)->OMCR) + +#define CSP_GPIO_SET_IECR(cm,val) ((cm)->IECR = val) +#define CSP_GPIO_GET_IECR(cm) ((cm)->IECR) + +#define CSP_GPIO_SET_IGRP(cm,val) ((cm)->IGRP = val) +#define CSP_GPIO_GET_IGRP(cm) ((cm)->IGRP) + +/****************************************************************************** +************************** Exported functions ************************ +******************************************************************************/ +extern void GPIOA0_DeInit(GPIO_Pin_TypeDef GPIO_Pin); +extern void GPIO_DeInit(void); +extern void GPIO_TTL_COSM_Selecte(CSP_GPIO_T *GPIOx,uint8_t bit,INPUT_MODE_SETECTED_TypeDef INPUT_MODE_SETECTED_X); +extern void GPIO_Init2(CSP_GPIO_T *GPIOx,GPIO_byte_TypeDef byte,uint32_t val); +extern void GPIO_InPutOutPut_Disable(CSP_GPIO_T *GPIOx,uint8_t PinNum); +extern void GPIO_Init(CSP_GPIO_T *GPIOx,uint8_t PinNum,GPIO_Dir_TypeDef Dir); +extern void GPIO_Write_Low(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_Write_High(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_MODE_Init(CSP_GPIO_T *GPIOx,GPIO_Mode_TypeDef IO_MODE,uint32_t val); +extern uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit); +extern uint8_t GPIO_Read_Output(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_Set_Value(CSP_GPIO_T *GPIOx,uint8_t bitposi,uint8_t bitval); +extern void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO); +extern void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO); +extern void GPIO_EXI_EN(CSP_GPIO_T *GPIOx,GPIO_EXI_TypeDef EXI_IO); +extern void GPIO_Debug_IO_12_13(void); +extern void GPIO_Debug_IO_01_02(void); +extern void GPIO_IntGroup_Set(GPIO_Group_TypeDef IO_MODE , uint8_t PinNum , GPIO_EXIPIN_TypeDef EXIPIN_x); +extern void GPIOA00_Set_ResetPin(); +extern void GPIO_PullHigh_Init(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_PullLow_Init(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_PullHighLow_DIS(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_OpenDrain_EN(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_OpenDrain_DIS(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit); +extern void GPIO_DriveStrength_DIS(CSP_GPIO_T *GPIOx,uint8_t bit); +/*************************************************************/ + +#endif /**< apt32f102_gpio_H */ + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_gpt.h b/BLV_CS_AC100_V05/Source/include/apt32f102_gpt.h new file mode 100644 index 0000000..ad6a874 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_gpt.h @@ -0,0 +1,695 @@ +/* + ****************************************************************************** + * @file apt32f102_gpt.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_gpt_H +#define _apt32f102_gpt_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + + +#define GPT_RESET_VALUE (0x00000000) +//-------------------------------------------------------------------------------- +//-----------------------------GPT value enum define-------------------------- +//-------------------------------------------------------------------------------- +/** + * @brief GPT CLK EN register + */ +typedef enum +{ + GPTCLK_DIS = 0, + GPTCLK_EN = 1, +}GPT_CLK_TypeDef; +/** + * @brief GPT CLK SOURCE register + */ +typedef enum +{ + GPT_PCLK = (0<<3), + GPT_TRGUSR3 = (1<<3), +}GPT_CSS_TypeDef; +/** + * @brief GPT START SHADOW register + */ +typedef enum +{ + GPT_SHADOW = (0<<6), + GPT_IMMEDIATE= (1<<6), +}GPT_SHDWSTP_TypeDef; +/** + * @brief GPT COUNT EDGE register + */ +typedef enum +{ + DIR_INCREASE = (0<<3), + DIR_DECREASE= (1<<3), +}GPT_CNTDIR_TypeDef; +/** + * @brief GPT COUNT EDGE register + */ +typedef enum +{ + GPT_INCREASE = (0<<0), + GPT_DECREASE= (1<<0), + GPT_IN_DECREASE= (2<<0), +}GPT_CNTMD_TypeDef; +/** + * @brief GPT START SYN EN register + */ +typedef enum +{ + GPT_SWSYNDIS= (0<<2), + GPT_SWSYNEN= (1<<2), +}GPT_SWSYN_TypeDef; +/** + * @brief GPT ILDE IO Status register + */ +typedef enum +{ + GPT_IDLE_Z= (0<<3), + GPT_IDLE_LOW= (1<<3), +}GPT_IDLEST_TypeDef; +/** + * @brief GPT PRDLD register + */ +typedef enum +{ + GPT_PRDLD_PEND= (0<<4), + GPT_PRDLD_LOAD_SYNC= (1<<4), + GPT_PRDLD_ZERO_LOAD_SYNC= (2<<4), + GPT_PRDLD_IMMEDIATELY= (3<<4), +}GPT_PRDLD0_TypeDef; +/** + * @brief GPT CAPLDEN register + */ +typedef enum +{ + GPT_CAP_DIS= (0<<8), + GPT_CAP_EN= (1<<8), +}GPT_CAPLDEN_TypeDef; +/** + * @brief GPT BURST register + */ +typedef enum +{ + GPT_BURST_DIS= (0<<9), + GPT_BURST_EN= (1<<9), +}GPT_BURST_TypeDef; +/** + * @brief GPT BURST register + */ +typedef enum +{ + GPT_CG_CHAX= (0<<11), + GPT_CG_CHBX= (1<<11), +}GPT_CGSRC_TypeDef; +/** + * @brief GPT CGFLT register + */ +typedef enum +{ + GPT_CGFLT_00= (0<<13), + GPT_CGFLT_02= (1<<13), + GPT_CGFLT_03= (2<<13), + GPT_CGFLT_04= (3<<13), + GPT_CGFLT_06= (4<<13), + GPT_CGFLT_08= (5<<13), + GPT_CGFLT_16= (6<<13), + GPT_CGFLT_32= (7<<13), +}GPT_CGFLT_TypeDef; +/** + * @brief GPT PSCLD register + */ +typedef enum +{ + GPT_PRDLD_ZERO= (0<<16), + GPT_PRDLD_PRD= (1<<16), + GPT_PRDLD_ZERO_PRD= (2<<16), + GPT_PRDLD_NONE= (3<<16), +}GPT_PSCLD_TypeDef; +/** + * @brief GPT CAPMD register + */ +typedef enum +{ + GPT_CAPMD_CONTINUOUS= (0<<20), + GPT_CAPMD_ONCE= (1<<20), +}GPT_CAPMD_TypeDef; +/** + * @brief GPT LDARST register + */ +typedef enum +{ + GPT_LDARST_EN= (0<<23), + GPT_LDARST_DIS= (1<<23), +}GPT_LDARST_TypeDef; +/** + * @brief GPT LDBRST register + */ +typedef enum +{ + GPT_LDBRST_EN= (0<<24), + GPT_LDBRST_DIS= (1<<24), +}GPT_LDBRST_TypeDef; +/** + * @brief GPT OPM register + */ +typedef enum +{ + GPT_OPM_CONTINUOUS= (0<<6), + GPT_OPM_ONCE= (1<<6), +}GPT_OPM_TypeDef; +/** + * @brief GPT CKS register + */ +typedef enum +{ + GPT_CKS_PCLK= (0<<10), + GPT_CKS_PCLKDIV2= (1<<10), +}GPT_CKS_TypeDef; +/** + * @brief GPT WAVE register + */ +typedef enum +{ + GPT_CAPTURE_MODE= (0<<18), + GPT_WAVE_MODE= (1<<18), +}GPT_WAVE_TypeDef; +/** + * @brief GPT SYNCEN register + */ +typedef enum +{ + GPT_SYNCUSR0_EN= (1<<0), + GPT_SYNCUSR1_EN= (1<<1), + GPT_SYNCUSR2_EN= (1<<2), + GPT_SYNCUSR3_EN= (1<<3), + GPT_SYNCUSR4_EN= (1<<4), + GPT_SYNCUSR5_EN= (1<<5) +}GPT_SYNCENX_TypeDef; + +/** + * @brief GPT OSTMDX register + */ +typedef enum +{ + GPT_OSTMD0_CONTINUOUS= (0<<8), + GPT_OSTMD0_ONCE= (1<<8), + GPT_OSTMD1_CONTINUOUS= (0<<9), + GPT_OSTMD1_ONCE= (1<<9), + GPT_OSTMD2_CONTINUOUS= (0<<10), + GPT_OSTMD2_ONCE= (1<<10), + GPT_OSTMD3_CONTINUOUS= (0<<11), + GPT_OSTMD3_ONCE= (1<<11), + GPT_OSTMD4_CONTINUOUS= (0<<12), + GPT_OSTMD4_ONCE= (1<<12), + GPT_OSTMD5_CONTINUOUS= (0<<13), + GPT_OSTMD5_ONCE= (1<<13), +}GPT_OSTMDX_TypeDef; +/** + * @brief GPT TXREARM0 register + */ +typedef enum +{ + GPT_TXREARM_DIS= (0<<22), + GPT_TXREARM_T1= (1<<22), + GPT_TXREARM_T2= (2<<22), + GPT_TXREARM_T1_T2= (3<<22), +}GPT_TXREARM0_TypeDef; + +/** + * @brief GPT TRGO0SEL register + */ +typedef enum +{ + GPT_TRGO0SEL_SR0= (0<<24), + GPT_TRGO0SEL_SR1= (1<<24), + GPT_TRGO0SEL_SR2= (2<<24), + GPT_TRGO0SEL_SR3= (3<<24), + GPT_TRGO0SEL_SR4= (4<<24), + GPT_TRGO0SEL_SR5= (5<<24), + GPT_TRGO0SEL_RSVD= (6<<24), +}GPT_TRGO0SEL_TypeDef; + +/** + * @brief GPT TRGO0SEL register + */ +typedef enum +{ + GPT_TRG10SEL_SR0= (0<<27), + GPT_TRG10SEL_SR1= (1<<27), + GPT_TRG10SEL_SR2= (2<<27), + GPT_TRG10SEL_SR3= (3<<27), + GPT_TRG10SEL_SR4= (4<<27), + GPT_TRG10SEL_SR5= (5<<27), + GPT_TRG10SEL_RSVD= (6<<27), +}GPT_TRGO1SEL_TypeDef; +/** + * @brief GPT AREARM register + */ +typedef enum +{ + GPT_AREARM_DIS= (0<<30), + GPT_AREARM_ZERO= (1<<30), + GPT_AREARM_PRD= (2<<30), + GPT_AREARM_ZERO_PRD= (3<<30), +}GPT_AREARM_TypeDef; +/** + * @brief BT INT MASK SET/CLR Set + */ +typedef enum +{ + GPT_TRGEV0 = (0x01 << 0), + GPT_TRGEV1 = (0x01 << 1), + GPT_TRGEV2 = (0x01 << 2), + GPT_TRGEV3 = (0x01 << 3), +}GPT_IMSCR_TypeDef; +/** + * @brief GPT IO Set + */ +typedef enum +{ + GPT_CHA_PB01 = 0, + GPT_CHA_PA09 = 1, + GPT_CHA_PA010 = 2, + GPT_CHB_PA010 = 3, + GPT_CHB_PA011 = 4, + GPT_CHB_PB00 = 5, + GPT_CHB_PB01 = 6, +}GPT_IOSET_TypeDef; +/** + * @brief CMPA SHADOW/IMMEDIATE + */ +typedef enum +{ + GPT_CMPA_SHADOW = (0x00 << 0), + GPT_CMPA_IMMEDIATE = (0x01 << 0), +}GPT_SHDWCMPA_TypeDef; +/** + * @brief CMPB SHADOW/IMMEDIATE + */ +typedef enum +{ + GPT_CMPB_SHADOW = (0x00 << 1), + GPT_CMPB_IMMEDIATE = (0x01 << 1), +}GPT_SHDWCMPB_TypeDef; +/** + * @brief CMPA LOAD MODE + */ +typedef enum +{ + GPT_LoadA_ZERO = (0x01 << 4), + GPT_LoadA_PRD = (0x02 << 4), + GPT_LoadA_EXT_SYNC = (0x04 << 4), + GPT_LoadA_NONE = (0x00 << 4), +}GPT_LDAMD_TypeDef; +/** + * @brief CMPB LOAD MODE + */ +typedef enum +{ + GPT_LoadB_ZERO = (0x01 << 4), + GPT_LoadB_PRD = (0x02 << 4), + GPT_LoadB_EXT_SYNC = (0x04 << 4), + GPT_LoadB_NONE = (0x00 << 4), +}GPT_LDBMD_TypeDef; + +/** + * @brief WAVEA SHADOW/IMMEDIATE + */ +typedef enum +{ + GPT_WAVEA_SHADOW = (0x00 << 0), + GPT_WAVEA_IMMEDIATE = (0x01 << 0), +}GPT_SHDWAQA_TypeDef; +/** + * @brief WAVEB SHADOW/IMMEDIATE + */ +typedef enum +{ + GPT_WAVEB_SHADOW = (0x00 << 1), + GPT_WAVEB_IMMEDIATE = (0x01 << 1), +}GPT_SHDWAQB_TypeDef; +/** + * @brief ACTIVE A LOAD MODE + */ +typedef enum +{ + GPT_AQLDA_ZERO = (0x01 << 2), + GPT_AQLDA_PRD = (0x02 << 2), + GPT_AQLDA_EXT_SYNC = (0x04 << 2), + GPT_AQLDA_NONE = (0x00 << 2), +}GPT_AQLDA_TypeDef; +/** + * @brief ACTIVE B LOAD MODE + */ +typedef enum +{ + GPT_AQLDB_ZERO = (0x01 << 5), + GPT_AQLDB_PRD = (0x02 << 5), + GPT_AQLDB_EXT_SYNC = (0x04 << 5), + GPT_AQLDB_NONE = (0x00 << 5), +}GPT_AQLDB_TypeDef; +/** + * @brief CASEL MODE + */ +typedef enum +{ + GPT_CASEL_CMPA = (0x00 << 20), + GPT_CASEL_CMPB = (0x01 << 20), +}GPT_CASEL_TypeDef; +/** + * @brief CBSEL MODE + */ +typedef enum +{ + GPT_CBSEL_CMPA = (0x00 << 22), + GPT_CBSEL_CMPB = (0x01 << 22), +}GPT_CBSEL_TypeDef; +/** + * @brief CBSEL MODE + */ +typedef enum +{ + GPT_CHA = 0, + GPT_CHB = 1, +}GPT_GPTCHX_TypeDef; +/** + * @brief A FORCE ENABLE + */ +typedef enum +{ + GPT_CHA_FORCE_DIS = 0, + GPT_CHA_FORCE_EN = 1, +}GPT_CHAFORCE_TypeDef; +/** + * @brief B FORCE ENABLE + */ +typedef enum +{ + GPT_CHB_FORCE_DIS = 0<<4, + GPT_CHB_FORCE_EN = 1<<4, +}GPT_CHBFORCE_TypeDef; +/** + * @brief FORCE LOAD + */ +typedef enum +{ + GPT_FORCELD_ZERO = (0<<16), + GPT_FORCELD_PRD = (1<<16), + GPT_FORCELD__ZERO_PRD = (3<<16), +}GPT_FORCELD_TypeDef; +/** + * @brief FORCE A + */ +typedef enum +{ + GPT_FORCECHA_LOW = (1<<0), + GPT_FORCECHA_HIGH = (2<<0), +}GPT_FORCEA_TypeDef; +/** + * @brief FORCE B + */ +typedef enum +{ + GPT_FORCECHB_LOW = (1<<2), + GPT_FORCECHB_HIGH = (2<<2), +}GPT_FORCEB_TypeDef; +/** + * @brief GPT SRCSEL register + */ +typedef enum +{ + GPT_SRCSEL_DIS= (0<<0), + GPT_SRCSEL_TRGUSR0EN= (1<<0), + GPT_SRCSEL_TRGUSR1EN= (2<<0), + GPT_SRCSEL_TRGUSR2EN= (3<<0), + GPT_SRCSEL_TRGUSR3EN= (4<<0), + GPT_SRCSEL_TRGUSR4EN= (5<<0), + GPT_SRCSEL_TRGUSR5EN= (6<<0) +}GPT_SRCSEL_TypeDef; +/** + * @brief GPT BLKINV register + */ +typedef enum +{ + GPT_BLKINV_DIS= (0<<4), + GPT_BLKINV_EN= (1<<4), +}GPT_BLKINV_TypeDef; +/** + * @brief GPT CROSSMD register + */ +typedef enum +{ + GPT_ALIGNMD_PRD= (0<<5), + GPT_ALIGNMD_ZRO= (1<<5), + GPT_ALIGNMD_PRD_ZRO= (2<<5), + GPT_ALIGNMD_T1= (3<<5), +}GPT_ALIGNMD_TypeDef; +/** + * @brief GPT CROSSMD register + */ +typedef enum +{ + GPT_CROSSMD_DIS= (0<<7), + GPT_CROSSMD_EN= (1<<7), +}GPT_CROSSMD_TypeDef; +/** + * @brief GPT TRGSRC0 register + */ +typedef enum +{ + GPT_TRGSRC0_DIS= (0<<0), + GPT_TRGSRC0_ZRO= (1<<0), + GPT_TRGSRC0_PRD= (2<<0), + GPT_TRGSRC0_ZRO_PRD= (3<<0), + GPT_TRGSRC0_CMPA_INC= (4<<0), + GPT_TRGSRC0_CMPA_DEC= (5<<0), + GPT_TRGSRC0_CMPB_INC= (6<<0), + GPT_TRGSRC0_CMPB_DEC= (7<<0), + GPT_TRGSRC0_EXTSYNC= (0X0C<<0), + GPT_TRGSRC0_PE0= (0X0D<<0), + GPT_TRGSRC0_PE1= (0X0E<<0), + GPT_TRGSRC0_PE2= (0X0F<<0), +}GPT_TRGSRC0_TypeDef; +/** + * @brief GPT TRGSRC1 register + */ +typedef enum +{ + GPT_TRGSRC1_DIS= (0<<4), + GPT_TRGSRC1_ZRO= (1<<4), + GPT_TRGSRC1_PRD= (2<<4), + GPT_TRGSRC1_ZRO_PRD= (3<<4), + GPT_TRGSRC1_CMPA_INC= (4<<4), + GPT_TRGSRC1_CMPA_DEC= (5<<4), + GPT_TRGSRC1_CMPB_INC= (6<<4), + GPT_TRGSRC1_CMPB_DEC= (7<<4), + GPT_TRGSRC1_EXTSYNC= (0X0C<<4), + GPT_TRGSRC1_PE0= (0X0D<<4), + GPT_TRGSRC1_PE1= (0X0E<<4), + GPT_TRGSRC1_PE2= (0X0F<<4), +}GPT_TRGSRC1_TypeDef; + +/** + * @brief GPT CNT0INITEN register + */ +typedef enum +{ + GPT_CNT0INIT_DIS= (0<<16), + GPT_CNT0INIT_EN= (1<<16), +}GPT_CNT0INIT_TypeDef; + +/** + * @brief GPT CNT1INITEN register + */ +typedef enum +{ + GPT_CNT1INIT_DIS= (0<<17), + GPT_CNT1INIT_EN= (1<<17), +}GPT_CNT1INIT_TypeDef; + +/** + * @brief GPT ESYN0OE register + */ +typedef enum +{ + GPT_ESYN0OE_DIS= (0<<20), + GPT_ESYN0OE_EN= (1<<20), +}GPT_ESYN0OE_TypeDef; + +/** + * @brief GPT ESYN1OE register + */ +typedef enum +{ + GPT_ESYN1OE_DIS= (0<<21), + GPT_ESYN1OE_EN= (1<<21), +}GPT_ESYN1OE_TypeDef; + + +/** + * @brief GPT CNTMD selected + */ +typedef enum +{ + GPT_CNTMD_increase = ((CSP_REGISTER_T)(0x00ul << 0)), + GPT_CNTMD_decrease = ((CSP_REGISTER_T)(0x01ul << 0)), + GPT_CNTMD_increaseTOdecrease = ((CSP_REGISTER_T)(0x02ul << 0)) +}GPT_CNTMD_SELECTE_Type; + +/** + * @brief GPT CAPMD selected + */ +typedef enum +{ + GPT_CAPMD_Once = ((CSP_REGISTER_T)(0x01ul << 20)), + GPT_CAPMD_Continue = ((CSP_REGISTER_T)(0x00ul << 20)) +}GPT_CAPMD_SELECTE_Type; + +/** + * @brief GPT CMPC RST CMD + */ +typedef enum +{ + GPT_LDCRST_EN = ((CSP_REGISTER_T)(0x00ul << 25)), + GPT_LDCRST_DIS = ((CSP_REGISTER_T)(0x01ul << 25)) +}GPT_LOAD_CMPC_RST_CMD_Type; +/** + * @brief GPT CMPD RST CMD + */ +typedef enum +{ + GPT_LDDRST_EN = ((CSP_REGISTER_T)(0x00ul << 26)), + GPT_LDDRST_DIS = ((CSP_REGISTER_T)(0x01ul << 26)) +}GPT_LOAD_CMPD_RST_CMD_Type; + +#define CH_ZRO_NONE (0X00) +#define CH_ZRO_LOW (0X01) +#define CH_ZRO_HIGH (0X02) +#define CH_ZRO_REVS (0X03) +#define CH_PRD_NONE (0X00) +#define CH_PRD_LOW (0X01) +#define CH_PRD_HIGH (0X02) +#define CH_PRD_REVS (0X03) +#define CH_CAU_NONE (0X00) +#define CH_CAU_LOW (0X01) +#define CH_CAU_HIGH (0X02) +#define CH_CAU_REVS (0X03) +#define CH_CAD_NONE (0X00) +#define CH_CAD_LOW (0X01) +#define CH_CAD_HIGH (0X02) +#define CH_CAD_REVS (0X03) +#define CH_CBU_NONE (0X00) +#define CH_CBU_LOW (0X01) +#define CH_CBU_HIGH (0X02) +#define CH_CBU_REVS (0X03) +#define CH_CBD_NONE (0X00) +#define CH_CBD_LOW (0X01) +#define CH_CBD_HIGH (0X02) +#define CH_CBD_REVS (0X03) +#define CH_T1U_NONE (0X00) +#define CH_T1U_LOW (0X01) +#define CH_T1U_HIGH (0X02) +#define CH_T1U_REVS (0X03) +#define CH_T1D_NONE (0X00) +#define CH_T1D_LOW (0X01) +#define CH_T1D_HIGH (0X02) +#define CH_T1D_REVS (0X03) +#define CH_T2U_NONE (0X00) +#define CH_T2U_LOW (0X01) +#define CH_T2U_HIGH (0X02) +#define CH_T2U_REVS (0X03) +#define CH_T2D_NONE (0X00) +#define CH_T2D_LOW (0X01) +#define CH_T2D_HIGH (0X02) +#define CH_T2D_REVS (0X03) + + +#define FORCE_ACT_NONE 0 +#define FORCE_ACT_LOW 1 +#define FORCE_ACT_HIGH 2 +#define FORCE_ACT_REVS 3 + + +#define GPT_INT_TRGEV0 (0X01) +#define GPT_INT_TRGEV1 (0X01<<1) +#define GPT_INT_TRGEV2 (0X01<<2) +#define GPT_INT_TRGEV3 (0X01<<3) +#define GPT_INT_CAPLD0 (0X01<<4) +#define GPT_INT_CAPLD1 (0X01<<5) +#define GPT_INT_CAPLD2 (0X01<<6) +#define GPT_INT_CAPLD3 (0X01<<7) +#define GPT_INT_CAU (0X01<<8) +#define GPT_INT_CAD (0X01<<9) +#define GPT_INT_CBU (0X01<<10) +#define GPT_INT_CBD (0X01<<11) +#define GPT_INT_PEND (0X01<<16) + + + +#define GPT_SYNCUSR0 (0X01) +#define GPT_SYNCUSR1 (0X01<<1) +#define GPT_SYNCUSR2 (0X01<<2) +#define GPT_SYNCUSR3 (0X01<<3) +#define GPT_SYNCUSR4 (0X01<<4) +#define GPT_SYNCUSR5 (0X01<<5) +#define GPT_DEBUG_MODE (0x01<<1) + + + +extern void GPT_DeInit(void); +extern void GPT_IO_Init(GPT_IOSET_TypeDef IONAME); +extern void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX); +extern 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); +extern void GPT_WaveLoad_Configure(GPT_SHDWAQA_TypeDef SHDWAQAX,GPT_SHDWAQB_TypeDef SHDWAQBX,GPT_AQLDA_TypeDef AQLDAX, GPT_AQLDB_TypeDef AQLDBX); +extern 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); +extern void GPT_OneceForce_Out(GPT_CHAFORCE_TypeDef CHAFORCEX,U8_T AFORCE_STATUS,GPT_CHBFORCE_TypeDef CHBFORCEX,U8_T BFORCE_STATUS,GPT_FORCELD_TypeDef FORCELDX); +extern void GPT_Force_Out(GPT_FORCEA_TypeDef FORCEAX,GPT_FORCEB_TypeDef FORCEBX); +extern void GPT_CmpLoad_Configure(GPT_SHDWCMPA_TypeDef SHDWCMPAX,GPT_SHDWCMPB_TypeDef SHDWCMPBX,GPT_LDAMD_TypeDef LDAMDX,GPT_LDBMD_TypeDef LDBMDX); +extern void GPT_Debug_Mode(FunctionalStatus NewState); +extern void GPT_Start(void); +extern void GPT_Stop(void); +extern void GPT_Soft_Reset(void); +extern void GPT_Cap_Rearm(void); +extern void GPT_REARM_Write(void); +extern U8_T GPT_REARM_Read(void); +extern void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA); +extern U16_T GPT_PRDR_Read(void); +extern U16_T GPT_CMPA_Read(void); +extern U16_T GPT_CMPB_Read(void); +extern U16_T GPT_CNT_Read(void); +extern void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X); +extern void GPT_INT_ENABLE(void); +extern void GPT_INT_DISABLE(void); +extern 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); +extern 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); +extern 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); +extern 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 ); +/*************************************************************/ + +#endif /**< apt32f102_gpt_H */ + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_hwdiv.h b/BLV_CS_AC100_V05/Source/include/apt32f102_hwdiv.h new file mode 100644 index 0000000..821f6d9 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_hwdiv.h @@ -0,0 +1,51 @@ +/* + ****************************************************************************** + * @file apt32f102_hwdiv.h + * @author APT AE Team + * @version V1.02 + * @date 2019/04/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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_hwdiv_H +#define _apt32f102_hwdiv_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + + +#define HWDIV_RESET_VALUE (0x00000000) +//-------------------------------------------------------------------------------- +//-----------------------------HWDIV value enum define-------------------------- +//-------------------------------------------------------------------------------- +#define HWDIV_UNSIGN_BIT (0X01<<0) + +extern U32_T HWDIV_Calc_Remain(void); +extern U32_T HWDIV_Calc_Quotient(void); +extern void HWDIV_Calc_UNSIGN(U32_T DIVIDENDx,U32_T DIVISOR_x); +extern void HWDIV_UNSIGN_CMD(FunctionalStatus NewState); +extern void HWDIV_DeInit(void); +extern void HWDIV_Calc_SIGN(long DIVIDENDx,long DIVISOR_x); +extern void HWDIV_Calc_float(float DIVIDENDx,float DIVISOR_x); + + + + + + + + + + +#endif /**< apt32f102_hwdiv_H */ + +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_i2c.h b/BLV_CS_AC100_V05/Source/include/apt32f102_i2c.h new file mode 100644 index 0000000..474e5a1 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_i2c.h @@ -0,0 +1,250 @@ +/* + ****************************************************************************** + * @file apt32f102_i2c.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_i2c_H +#define _apt32f102_i2c_H + +/* Includes ------------------------------------------------------------------*/ + +#include "apt32f102.h" + +#define BUFSIZE 32 + + +/****************************************************************************** +************************** I2C Structure Definition *************************** +******************************************************************************/ + + +/** +******************************************************************************* +@brief description CSP_I2C_T and CSP_I2C_PTR +******************************************************************************* +*/ + + +/****************************************************************************** +************************** I2C Registers Definition *************************** +******************************************************************************/ + + +/****************************************************************************** +* CR : I2C Control Register +******************************************************************************/ + #define I2C_MASTER_EN (0x01ul << 0) /**< I2C Master Mode */ + #define I2C_MASTER_DIS (0x00ul << 0) /**< I2C Master Mode */ + #define I2C_SS (0x01ul << 1) /**< I2C Standard Speed Mode */ + #define I2C_FS (0x02ul << 1) /**< I2C Fast Speed Mode */ + #define I2C_HS (0x03ul << 1) /**< I2C High Speed Mode */ + #define I2C_10BIT_SLAVE (0x01ul << 3) /**< I2C 10bit or 7bit in Slave */ + #define I2C_7BIT_SLAVE (0x00ul << 3) /**< I2C 10bit or 7bit in Slave */ + #define I2C_10BIT_MASTER (0x01ul << 4) /**< I2C 10bit or 7bit in Master */ + #define I2C_7BIT_MASTER (0x00ul << 4) /**< I2C 10bit or 7bit in Master */ + #define I2C_RESTART_EN (0x01ul << 5) /**< I2C Restart Enable */ + #define I2C_RESTART_DIS (0x00ul << 5) /**< I2C Restart Disable */ + #define I2C_SLAVE_EN (0x00ul << 6) /**< I2C Slave Enable */ + #define I2C_SLAVE_DIS (0x01ul << 6) /**< I2C Slave Disable */ + #define I2C_STOPDET_IFADD (0x01ul << 7) /**< I2C STOPDET If Addressed */ + #define I2C_STOPDET_ALS (0x00ul << 7) /**< I2C STOPDET Always */ + #define I2C_TX_EMPTY_CTRL (0x01ul << 8) /**< I2C TX_EMPTY Control */ + #define I2C_TX_EMPTY_DONE (0x00ul << 8) /**< I2C TX_EMPTY and Send Done */ + #define I2C_RX_HOLD_CTRL (0x01ul << 9) /**< I2C Rx Hold Ctrl @FIFO Full */ + #define I2C_RX_HOLD_NONE (0x00ul << 9) /**< I2C Rx Hold None @FIFO Full */ + #define I2C_STOPDET_MM (0x01ul <<10) /**< I2C STOPDET only in Master */ + #define I2C_BUSCLR_EN (0x01ul <<11) /**< I2C Enable Bus Clear Feature*/ + #define I2C_BUSCLR_DIS (0x00ul <<11) /**< I2C Disable Bus Clear Feature*/ + + +/****************************************************************************** +* DATA_CMD : I2C Data and Command Register +******************************************************************************/ + #define I2C_CMD_READ (0x01ul << 8) /**< I2C Read Command */ + #define I2C_CMD_WRITE (0x00ul << 8) /**< I2C Write Command */ + #define I2C_CMD_STOP (0x01ul << 9) /**< I2C Stop after this byte */ + #define I2C_CMD_NONESTOP (0x00ul << 9) /**< I2C None Stop When FIFO Empty or Not */ + #define I2C_CMD_RESTART0 (0x00ul <<10) /**< I2C Restart Mode0 */ + #define I2C_CMD_RESTART1 (0x01ul <<10) /**< I2C Restart Mode1 */ + //#define I2C_CMD_1stDATA (0x01ul <<11) /**< I2C First Data Byte */ + #define I2C_DATA(val) (((val) & 0xFFul) << 0) /**< Data Writing Macro */ + +/***************************************************************************** +* ENABLE : I2C Enable Register +******************************************************************************/ + #define I2C_ENABLE (0x01ul << 0) /**< I2C Enable */ + #define I2C_DISABLE (0x00ul << 0) /**< I2C Enable */ + #define I2C_ABORT (0x01ul << 1) /**< I2C Abort Transfer */ + #define I2C_ABORT_OV (0x00ul << 1) /**< I2C Abort Transfer Over or No Abort */ + //#define I2C_TX_CMD_BLOCK (0x01ul << 2) /**< I2C Block Transmission */ + #define I2C_SDA_REC_EN (0x01ul << 3) /**< I2C Enable Stuck Recovery */ + #define I2C_SDA_REC_DIS (0x00ul << 3) /**< I2C Enable Stuck Recovery */ + +/***************************************************************************** +* STATUS : I2C STATUS Register +******************************************************************************/ + #define I2C_BUSY (0x01ul << 0) /**< I2C Activity */ + #define I2C_FREE (0x00ul << 0) /**< I2C Activity */ + #define I2C_TFNF (0x01ul << 1) /**< I2C Transmit FIFO Not Full */ + #define I2C_TFNF_FULL (0x00ul << 1) /**< I2C Transmit FIFO Is Full */ + #define I2C_TFE (0x01ul << 2) /**< I2C Transmit FIFO Empty */ + #define I2C_TFE_NOT (0x00ul << 2) /**< I2C Transmit FIFO Not Empty */ + #define I2C_RFNE (0x01ul << 3) /**< I2C Receive FIFO Not Empty */ + #define I2C_RFNE_EMPTY (0x00ul << 3) /**< I2C Receive FIFO Is Empty */ + #define I2C_RFF (0x01ul << 4) /**< I2C Receive FIFO Full */ + #define I2C_MST_BUSY (0x01ul << 5) /**< I2C Master FSM Activity */ + #define I2C_MST_FREE (0x00ul << 5) /**< I2C Master FSM Free */ + #define I2C_SLV_BUSY (0x01ul << 6) /**< I2C Slave FSM Activity */ + #define I2C_SLV_FREE (0x01ul << 6) /**< I2C Slave FSM Free */ + #define I2C_REC_FREE (0x00ul << 6) /**< I2C Recovery No FAIL */ + #define I2C_REC_FAIL (0x01ul << 11) /**< I2C Recovery FAIL */ + +/***************************************************************************** +* RISR/MISR/IMSCR/ICR : I2C Interrupt Mask/Status Register +******************************************************************************/ + #define I2C_RX_UNDER (0x01ul << 0) /**< I2C Interrupt Status */ + #define I2C_RX_OVER (0x01ul << 1) /**< I2C Interrupt Status */ + #define I2C_RX_FULL (0x01ul << 2) /**< I2C Interrupt Status */ + #define I2C_TX_OVER (0x01ul << 3) /**< I2C Interrupt Status */ + #define I2C_TX_EMPTY (0x01ul << 4) /**< I2C Interrupt Status */ + #define I2C_RD_REQ (0x01ul << 5) /**< I2C Interrupt Status */ + #define I2C_TX_ABRT (0x01ul << 6) /**< I2C Interrupt Status */ + #define I2C_RX_DONE (0x01ul << 7) /**< I2C Interrupt Status */ + #define I2C_INT_BUSY (0x01ul << 8) /**< I2C Interrupt Status */ + #define I2C_STOP_DET (0x01ul << 9) /**< I2C Interrupt Status */ + #define I2C_START_DET (0x01ul <<10) /**< I2C Interrupt Status */ + #define I2C_GEN_CALL (0x01ul <<11) /**< I2C Interrupt Status */ + #define I2C_RESTART_DET (0x01ul <<12) /**< I2C Interrupt Status */ + #define I2C_MST_ON_HOLD (0x01ul <<13) /**< I2C Interrupt Status */ + #define I2C_SCL_SLOW (0x01ul <<14) /**< I2C Interrupt Status */ + + +/***************************************************************************** +* SDA_HOLD/SETUP : I2C SDA hold/setup Timing Register +******************************************************************************/ + #define I2C_TX_HOLD(val) (((val) & 0xFFul) << 0) /**< SDA TX Hold Delay */ + #define I2C_RX_HOLD(val) (((val) & 0xFFul) <<16) /**< SDA RX Hold Delay */ + #define I2C_SETUP(val) (((val) & 0xFFul) << 0) /**< SDA Setup Delay */ + +/***************************************************************************** +* I2C_SPKLEN : I2C Burr Interference Filter Control Register +******************************************************************************/ + #define I2C_SPKLEN(val) (((val) & 0xFFul) << 0) /**CEDR = (IFC_CLK_EN)) +#define DisIFCClk (IFC->CEDR = (IFC_CLK_DIS)) + +#define USER_KEY (0x5A5A5A5Aul) +#define SetUserKey (IFC->KR = (USER_KEY)) +#define StartOp (0x01ul) + +#define IFC_CLKEN (0x01ul) //IFC CLKEN +#define IFC_SWRST (0x01ul) //IFC SWRST + +#define HIDM0 ((0x0ul)<<8) //HID0 +#define HIDM1 ((0x1ul)<<8) //HID1 +#define HIDM2 ((0x2ul)<<8) //HID2 +#define HIDM3 ((0x3ul)<<8) //HID3 + +// IFC Command +#define PROGRAM (0x01ul) +#define PAGE_ERASE (0x02ul) +#define CHIP_ERASE (0x04ul) +#define OPTION_ERASE (0x05ul) +#define PEP_ENABLE (0x06ul) //预编程设定 +#define PAGE_BUF_CLR (0x07ul) //页缓存清除 +#define DIS_SWD_SET (0x0Dul) //SWD 禁止重映射 +#define EN_SWD_SET (0x0Eul) //SWD 使能重映射 +#define USER_OPTION (0x0Ful) //User OPTION操作 + +#define USER_KEY (0x5A5A5A5Aul) +#define CSP_IFC_SET_KR(ifc, val) (ifc->KR = (val)) + +// +#define StartErase (IFC->CR=(StartOp)) +#define EnChipErase (IFC->CMR=(CHIP_ERASE|HIDM1)) +#define EnPageErase (IFC->CMR=(PAGE_ERASE|HIDM0)) + +/** + * @brief IFC page address + */ +typedef enum +{ + PROM_PageAdd0 = ((CSP_REGISTER_T)0x00000000), //PROM 每页256BYTE + PROM_PageAdd1 = ((CSP_REGISTER_T)0x00000100), + PROM_PageAdd2 = ((CSP_REGISTER_T)0x00000200), + PROM_PageAdd3 = ((CSP_REGISTER_T)0x00000300), + PROM_PageAdd4 = ((CSP_REGISTER_T)0x00000400), + PROM_PageAdd5 = ((CSP_REGISTER_T)0x00000500), + PROM_PageAdd6 = ((CSP_REGISTER_T)0x00000600), + PROM_PageAdd7 = ((CSP_REGISTER_T)0x00000700), + PROM_PageAdd8 = ((CSP_REGISTER_T)0x00000800), + PROM_PageAdd9 = ((CSP_REGISTER_T)0x00000900), + + PROM_PageAdd10 = ((CSP_REGISTER_T)0x00000A00), + PROM_PageAdd11 = ((CSP_REGISTER_T)0x00000B00), + PROM_PageAdd12 = ((CSP_REGISTER_T)0x00000C00), + PROM_PageAdd13 = ((CSP_REGISTER_T)0x00000D00), + PROM_PageAdd14 = ((CSP_REGISTER_T)0x00000E00), + PROM_PageAdd15 = ((CSP_REGISTER_T)0x00000F00), + PROM_PageAdd16 = ((CSP_REGISTER_T)0x00001000), + PROM_PageAdd17 = ((CSP_REGISTER_T)0x00001100), + PROM_PageAdd18 = ((CSP_REGISTER_T)0x00001200), + PROM_PageAdd19 = ((CSP_REGISTER_T)0x00001300), + + PROM_PageAdd20 = ((CSP_REGISTER_T)0x00001400), + PROM_PageAdd21 = ((CSP_REGISTER_T)0x00001500), + PROM_PageAdd22 = ((CSP_REGISTER_T)0x00001600), + PROM_PageAdd23 = ((CSP_REGISTER_T)0x00001700), + PROM_PageAdd24 = ((CSP_REGISTER_T)0x00001800), + PROM_PageAdd25 = ((CSP_REGISTER_T)0x00001900), + PROM_PageAdd26 = ((CSP_REGISTER_T)0x00001A00), + PROM_PageAdd27 = ((CSP_REGISTER_T)0x00001B00), + PROM_PageAdd28 = ((CSP_REGISTER_T)0x00001C00), + PROM_PageAdd29 = ((CSP_REGISTER_T)0x00001D00), + + PROM_PageAdd30 = ((CSP_REGISTER_T)0x00001E00), + PROM_PageAdd31 = ((CSP_REGISTER_T)0x00001F00), + PROM_PageAdd32 = ((CSP_REGISTER_T)0x00002000), + PROM_PageAdd33 = ((CSP_REGISTER_T)0x00002100), + PROM_PageAdd34 = ((CSP_REGISTER_T)0x00002200), + PROM_PageAdd35 = ((CSP_REGISTER_T)0x00002300), + PROM_PageAdd36 = ((CSP_REGISTER_T)0x00002400), + PROM_PageAdd37 = ((CSP_REGISTER_T)0x00002500), + PROM_PageAdd38 = ((CSP_REGISTER_T)0x00002600), + PROM_PageAdd39 = ((CSP_REGISTER_T)0x00002700), + + PROM_PageAdd40 = ((CSP_REGISTER_T)0x00002800), + PROM_PageAdd41 = ((CSP_REGISTER_T)0x00002900), + PROM_PageAdd42 = ((CSP_REGISTER_T)0x00002A00), + PROM_PageAdd43 = ((CSP_REGISTER_T)0x00002B00), + PROM_PageAdd44 = ((CSP_REGISTER_T)0x00002C00), + PROM_PageAdd45 = ((CSP_REGISTER_T)0x00002D00), + PROM_PageAdd46 = ((CSP_REGISTER_T)0x00002E00), + PROM_PageAdd47 = ((CSP_REGISTER_T)0x00002F00), + PROM_PageAdd48 = ((CSP_REGISTER_T)0x00003000), + PROM_PageAdd49 = ((CSP_REGISTER_T)0x00003100), + + PROM_PageAdd50 = ((CSP_REGISTER_T)0x00003200), + PROM_PageAdd51 = ((CSP_REGISTER_T)0x00003300), + PROM_PageAdd52 = ((CSP_REGISTER_T)0x00003400), + PROM_PageAdd53 = ((CSP_REGISTER_T)0x00003500), + PROM_PageAdd54 = ((CSP_REGISTER_T)0x00003600), + PROM_PageAdd55 = ((CSP_REGISTER_T)0x00003700), + PROM_PageAdd56 = ((CSP_REGISTER_T)0x00003800), + PROM_PageAdd57 = ((CSP_REGISTER_T)0x00003900), + PROM_PageAdd58 = ((CSP_REGISTER_T)0x00003A00), + PROM_PageAdd59 = ((CSP_REGISTER_T)0x00003B00), + + PROM_PageAdd60 = ((CSP_REGISTER_T)0x00003C00), + PROM_PageAdd61 = ((CSP_REGISTER_T)0x00003D00), + PROM_PageAdd62 = ((CSP_REGISTER_T)0x00003E00), + PROM_PageAdd63 = ((CSP_REGISTER_T)0x00003F00), + PROM_PageAdd64 = ((CSP_REGISTER_T)0x00004000), + PROM_PageAdd65 = ((CSP_REGISTER_T)0x00004100), + PROM_PageAdd66 = ((CSP_REGISTER_T)0x00004200), + PROM_PageAdd67 = ((CSP_REGISTER_T)0x00004300), + PROM_PageAdd68 = ((CSP_REGISTER_T)0x00004400), + PROM_PageAdd69 = ((CSP_REGISTER_T)0x00004500), + + PROM_PageAdd70 = ((CSP_REGISTER_T)0x00004600), + PROM_PageAdd71 = ((CSP_REGISTER_T)0x00004700), + PROM_PageAdd72 = ((CSP_REGISTER_T)0x00004800), + PROM_PageAdd73 = ((CSP_REGISTER_T)0x00004900), + PROM_PageAdd74 = ((CSP_REGISTER_T)0x00004A00), + PROM_PageAdd75 = ((CSP_REGISTER_T)0x00004B00), + PROM_PageAdd76 = ((CSP_REGISTER_T)0x00004C00), + PROM_PageAdd77 = ((CSP_REGISTER_T)0x00004D00), + PROM_PageAdd78 = ((CSP_REGISTER_T)0x00004E00), + PROM_PageAdd79 = ((CSP_REGISTER_T)0x00004F00), + + PROM_PageAdd80 = ((CSP_REGISTER_T)0x00005000), + PROM_PageAdd81 = ((CSP_REGISTER_T)0x00005100), + PROM_PageAdd82 = ((CSP_REGISTER_T)0x00005200), + PROM_PageAdd83 = ((CSP_REGISTER_T)0x00005300), + PROM_PageAdd84 = ((CSP_REGISTER_T)0x00005400), + PROM_PageAdd85 = ((CSP_REGISTER_T)0x00005500), + PROM_PageAdd86 = ((CSP_REGISTER_T)0x00005600), + PROM_PageAdd87 = ((CSP_REGISTER_T)0x00005700), + PROM_PageAdd88 = ((CSP_REGISTER_T)0x00005800), + PROM_PageAdd89 = ((CSP_REGISTER_T)0x00005900), + + PROM_PageAdd90 = ((CSP_REGISTER_T)0x00005A00), + PROM_PageAdd91 = ((CSP_REGISTER_T)0x00005B00), + PROM_PageAdd92 = ((CSP_REGISTER_T)0x00005C00), + PROM_PageAdd93 = ((CSP_REGISTER_T)0x00005D00), + PROM_PageAdd94 = ((CSP_REGISTER_T)0x00005E00), + PROM_PageAdd95 = ((CSP_REGISTER_T)0x00005F00), + PROM_PageAdd96 = ((CSP_REGISTER_T)0x00006000), + PROM_PageAdd97 = ((CSP_REGISTER_T)0x00006100), + PROM_PageAdd98 = ((CSP_REGISTER_T)0x00006200), + PROM_PageAdd99 = ((CSP_REGISTER_T)0x00006300), + + PROM_PageAdd100 = ((CSP_REGISTER_T)0x00006400), + PROM_PageAdd101 = ((CSP_REGISTER_T)0x00006500), + PROM_PageAdd102 = ((CSP_REGISTER_T)0x00006600), + PROM_PageAdd103 = ((CSP_REGISTER_T)0x00006700), + PROM_PageAdd104 = ((CSP_REGISTER_T)0x00006800), + PROM_PageAdd105 = ((CSP_REGISTER_T)0x00006900), + PROM_PageAdd106 = ((CSP_REGISTER_T)0x00006A00), + PROM_PageAdd107 = ((CSP_REGISTER_T)0x00006B00), + PROM_PageAdd108 = ((CSP_REGISTER_T)0x00006C00), + PROM_PageAdd109 = ((CSP_REGISTER_T)0x00006D00), + + PROM_PageAdd110 = ((CSP_REGISTER_T)0x00006E00), + PROM_PageAdd111 = ((CSP_REGISTER_T)0x00006F00), + PROM_PageAdd112 = ((CSP_REGISTER_T)0x00007000), + PROM_PageAdd113 = ((CSP_REGISTER_T)0x00007100), + PROM_PageAdd114 = ((CSP_REGISTER_T)0x00007200), + PROM_PageAdd115 = ((CSP_REGISTER_T)0x00007300), + PROM_PageAdd116 = ((CSP_REGISTER_T)0x00007400), + PROM_PageAdd117 = ((CSP_REGISTER_T)0x00007500), + PROM_PageAdd118 = ((CSP_REGISTER_T)0x00007600), + PROM_PageAdd119 = ((CSP_REGISTER_T)0x00007700), + + PROM_PageAdd120 = ((CSP_REGISTER_T)0x00007800), + PROM_PageAdd121 = ((CSP_REGISTER_T)0x00007900), + PROM_PageAdd122 = ((CSP_REGISTER_T)0x00007A00), + PROM_PageAdd123 = ((CSP_REGISTER_T)0x00007B00), + PROM_PageAdd124 = ((CSP_REGISTER_T)0x00007C00), + PROM_PageAdd125 = ((CSP_REGISTER_T)0x00007D00), + PROM_PageAdd126 = ((CSP_REGISTER_T)0x00007E00), + PROM_PageAdd127 = ((CSP_REGISTER_T)0x00007F00), + PROM_PageAdd128 = ((CSP_REGISTER_T)0x00008000), + PROM_PageAdd129 = ((CSP_REGISTER_T)0x00008100), + + PROM_PageAdd130 = ((CSP_REGISTER_T)0x00008200), + PROM_PageAdd131 = ((CSP_REGISTER_T)0x00008300), + PROM_PageAdd132 = ((CSP_REGISTER_T)0x00008400), + PROM_PageAdd133 = ((CSP_REGISTER_T)0x00008500), + PROM_PageAdd134 = ((CSP_REGISTER_T)0x00008600), + PROM_PageAdd135 = ((CSP_REGISTER_T)0x00008700), + PROM_PageAdd136 = ((CSP_REGISTER_T)0x00008800), + PROM_PageAdd137 = ((CSP_REGISTER_T)0x00008900), + PROM_PageAdd138 = ((CSP_REGISTER_T)0x00008A00), + PROM_PageAdd139 = ((CSP_REGISTER_T)0x00008B00), + + PROM_PageAdd140 = ((CSP_REGISTER_T)0x00008C00), + PROM_PageAdd141 = ((CSP_REGISTER_T)0x00008D00), + PROM_PageAdd142 = ((CSP_REGISTER_T)0x00008E00), + PROM_PageAdd143 = ((CSP_REGISTER_T)0x00008F00), + PROM_PageAdd144 = ((CSP_REGISTER_T)0x00009000), + PROM_PageAdd145 = ((CSP_REGISTER_T)0x00009100), + PROM_PageAdd146 = ((CSP_REGISTER_T)0x00009200), + PROM_PageAdd147 = ((CSP_REGISTER_T)0x00009300), + PROM_PageAdd148 = ((CSP_REGISTER_T)0x00009400), + PROM_PageAdd149 = ((CSP_REGISTER_T)0x00009500), + + PROM_PageAdd150 = ((CSP_REGISTER_T)0x00009600), + PROM_PageAdd151 = ((CSP_REGISTER_T)0x00009700), + PROM_PageAdd152 = ((CSP_REGISTER_T)0x00009800), + PROM_PageAdd153 = ((CSP_REGISTER_T)0x00009900), + PROM_PageAdd154 = ((CSP_REGISTER_T)0x00009A00), + PROM_PageAdd155 = ((CSP_REGISTER_T)0x00009B00), + PROM_PageAdd156 = ((CSP_REGISTER_T)0x00009C00), + PROM_PageAdd157 = ((CSP_REGISTER_T)0x00009D00), + PROM_PageAdd158 = ((CSP_REGISTER_T)0x00009E00), + PROM_PageAdd159 = ((CSP_REGISTER_T)0x00009F00), + + PROM_PageAdd160 = ((CSP_REGISTER_T)0x0000A000), + PROM_PageAdd161 = ((CSP_REGISTER_T)0x0000A100), + PROM_PageAdd162 = ((CSP_REGISTER_T)0x0000A200), + PROM_PageAdd163 = ((CSP_REGISTER_T)0x0000A300), + PROM_PageAdd164 = ((CSP_REGISTER_T)0x0000A400), + PROM_PageAdd165 = ((CSP_REGISTER_T)0x0000A500), + PROM_PageAdd166 = ((CSP_REGISTER_T)0x0000A600), + PROM_PageAdd167 = ((CSP_REGISTER_T)0x0000A700), + PROM_PageAdd168 = ((CSP_REGISTER_T)0x0000A800), + PROM_PageAdd169 = ((CSP_REGISTER_T)0x0000A900), + + PROM_PageAdd170 = ((CSP_REGISTER_T)0x0000AA00), + PROM_PageAdd171 = ((CSP_REGISTER_T)0x0000AB00), + PROM_PageAdd172 = ((CSP_REGISTER_T)0x0000AC00), + PROM_PageAdd173 = ((CSP_REGISTER_T)0x0000AD00), + PROM_PageAdd174 = ((CSP_REGISTER_T)0x0000AE00), + PROM_PageAdd175 = ((CSP_REGISTER_T)0x0000AF00), + PROM_PageAdd176 = ((CSP_REGISTER_T)0x0000B000), + PROM_PageAdd177 = ((CSP_REGISTER_T)0x0000B100), + PROM_PageAdd178 = ((CSP_REGISTER_T)0x0000B200), + PROM_PageAdd179 = ((CSP_REGISTER_T)0x0000B300), + + PROM_PageAdd180 = ((CSP_REGISTER_T)0x0000B400), + PROM_PageAdd181 = ((CSP_REGISTER_T)0x0000B500), + PROM_PageAdd182 = ((CSP_REGISTER_T)0x0000B600), + PROM_PageAdd183 = ((CSP_REGISTER_T)0x0000B700), + PROM_PageAdd184 = ((CSP_REGISTER_T)0x0000B800), + PROM_PageAdd185 = ((CSP_REGISTER_T)0x0000B900), + PROM_PageAdd186 = ((CSP_REGISTER_T)0x0000BA00), + PROM_PageAdd187 = ((CSP_REGISTER_T)0x0000BB00), + PROM_PageAdd188 = ((CSP_REGISTER_T)0x0000BC00), + PROM_PageAdd189 = ((CSP_REGISTER_T)0x0000BD00), + + PROM_PageAdd190 = ((CSP_REGISTER_T)0x0000BE00), + PROM_PageAdd191 = ((CSP_REGISTER_T)0x0000BF00), + PROM_PageAdd192 = ((CSP_REGISTER_T)0x0000C000), + PROM_PageAdd193 = ((CSP_REGISTER_T)0x0000C100), + PROM_PageAdd194 = ((CSP_REGISTER_T)0x0000C200), + PROM_PageAdd195 = ((CSP_REGISTER_T)0x0000C300), + PROM_PageAdd196 = ((CSP_REGISTER_T)0x0000C400), + PROM_PageAdd197 = ((CSP_REGISTER_T)0x0000C500), + PROM_PageAdd198 = ((CSP_REGISTER_T)0x0000C600), + PROM_PageAdd199 = ((CSP_REGISTER_T)0x0000C700), + + PROM_PageAdd200 = ((CSP_REGISTER_T)0x0000C800), + PROM_PageAdd201 = ((CSP_REGISTER_T)0x0000C900), + PROM_PageAdd202 = ((CSP_REGISTER_T)0x0000CA00), + PROM_PageAdd203 = ((CSP_REGISTER_T)0x0000CB00), + PROM_PageAdd204 = ((CSP_REGISTER_T)0x0000CC00), + PROM_PageAdd205 = ((CSP_REGISTER_T)0x0000CD00), + PROM_PageAdd206 = ((CSP_REGISTER_T)0x0000CE00), + PROM_PageAdd207 = ((CSP_REGISTER_T)0x0000CF00), + PROM_PageAdd208 = ((CSP_REGISTER_T)0x0000D000), + PROM_PageAdd209 = ((CSP_REGISTER_T)0x0000D100), + + PROM_PageAdd210 = ((CSP_REGISTER_T)0x0000D200), + PROM_PageAdd211 = ((CSP_REGISTER_T)0x0000D300), + PROM_PageAdd212 = ((CSP_REGISTER_T)0x0000D400), + PROM_PageAdd213 = ((CSP_REGISTER_T)0x0000D500), + PROM_PageAdd214 = ((CSP_REGISTER_T)0x0000D600), + PROM_PageAdd215 = ((CSP_REGISTER_T)0x0000D700), + PROM_PageAdd216 = ((CSP_REGISTER_T)0x0000D800), + PROM_PageAdd217 = ((CSP_REGISTER_T)0x0000D900), + PROM_PageAdd218 = ((CSP_REGISTER_T)0x0000DA00), + PROM_PageAdd219 = ((CSP_REGISTER_T)0x0000DB00), + + PROM_PageAdd220 = ((CSP_REGISTER_T)0x0000DC00), + PROM_PageAdd221 = ((CSP_REGISTER_T)0x0000DD00), + PROM_PageAdd222 = ((CSP_REGISTER_T)0x0000DE00), + PROM_PageAdd223 = ((CSP_REGISTER_T)0x0000DF00), + PROM_PageAdd224 = ((CSP_REGISTER_T)0x0000E000), + PROM_PageAdd225 = ((CSP_REGISTER_T)0x0000E100), + PROM_PageAdd226 = ((CSP_REGISTER_T)0x0000E200), + PROM_PageAdd227 = ((CSP_REGISTER_T)0x0000E300), + PROM_PageAdd228 = ((CSP_REGISTER_T)0x0000E400), + PROM_PageAdd229 = ((CSP_REGISTER_T)0x0000E500), + + PROM_PageAdd230 = ((CSP_REGISTER_T)0x0000E600), + PROM_PageAdd231 = ((CSP_REGISTER_T)0x0000E700), + PROM_PageAdd232 = ((CSP_REGISTER_T)0x0000E800), + PROM_PageAdd233 = ((CSP_REGISTER_T)0x0000E900), + PROM_PageAdd234 = ((CSP_REGISTER_T)0x0000EA00), + PROM_PageAdd235 = ((CSP_REGISTER_T)0x0000EB00), + PROM_PageAdd236 = ((CSP_REGISTER_T)0x0000EC00), + PROM_PageAdd237 = ((CSP_REGISTER_T)0x0000ED00), + PROM_PageAdd238 = ((CSP_REGISTER_T)0x0000EE00), + PROM_PageAdd239 = ((CSP_REGISTER_T)0x0000EF00), + + PROM_PageAdd240 = ((CSP_REGISTER_T)0x0000F000), + PROM_PageAdd241 = ((CSP_REGISTER_T)0x0000F100), + PROM_PageAdd242 = ((CSP_REGISTER_T)0x0000F200), + PROM_PageAdd243 = ((CSP_REGISTER_T)0x0000F300), + PROM_PageAdd244 = ((CSP_REGISTER_T)0x0000F400), + PROM_PageAdd245 = ((CSP_REGISTER_T)0x0000F50), + PROM_PageAdd246 = ((CSP_REGISTER_T)0x0000F600), + PROM_PageAdd247 = ((CSP_REGISTER_T)0x0000F700), + PROM_PageAdd248 = ((CSP_REGISTER_T)0x0000F800), + PROM_PageAdd249 = ((CSP_REGISTER_T)0x0000F900), + + PROM_PageAdd250 = ((CSP_REGISTER_T)0x0000FA00), + PROM_PageAdd251 = ((CSP_REGISTER_T)0x0000FB00), + PROM_PageAdd252 = ((CSP_REGISTER_T)0x0000FC00), + PROM_PageAdd253 = ((CSP_REGISTER_T)0x0000FD00), + PROM_PageAdd254 = ((CSP_REGISTER_T)0x0000FE00), + PROM_PageAdd255 = ((CSP_REGISTER_T)0x0000FF00), + + DROM_PageAdd0 = ((CSP_REGISTER_T)0x10000000), //DROM 每页64BYTE + DROM_PageAdd1 = ((CSP_REGISTER_T)0x10000040), + DROM_PageAdd2 = ((CSP_REGISTER_T)0x10000080), + DROM_PageAdd3 = ((CSP_REGISTER_T)0x100000C0), + DROM_PageAdd4 = ((CSP_REGISTER_T)0x10000100), + DROM_PageAdd5 = ((CSP_REGISTER_T)0x10000140), + DROM_PageAdd6 = ((CSP_REGISTER_T)0x10000180), + DROM_PageAdd7 = ((CSP_REGISTER_T)0x100001C0), + DROM_PageAdd8 = ((CSP_REGISTER_T)0x10000200), + DROM_PageAdd9 = ((CSP_REGISTER_T)0x10000240), + + DROM_PageAdd10 = ((CSP_REGISTER_T)0x10000280), + DROM_PageAdd11 = ((CSP_REGISTER_T)0x100002C0), + DROM_PageAdd12 = ((CSP_REGISTER_T)0x10000300), + DROM_PageAdd13 = ((CSP_REGISTER_T)0x10000340), + DROM_PageAdd14 = ((CSP_REGISTER_T)0x10000380), + DROM_PageAdd15 = ((CSP_REGISTER_T)0x100003C0), + DROM_PageAdd16 = ((CSP_REGISTER_T)0x10000400), + DROM_PageAdd17 = ((CSP_REGISTER_T)0x10000440), + DROM_PageAdd18 = ((CSP_REGISTER_T)0x10000480), + DROM_PageAdd19 = ((CSP_REGISTER_T)0x100004C0), + + DROM_PageAdd20 = ((CSP_REGISTER_T)0x10000500), + DROM_PageAdd21 = ((CSP_REGISTER_T)0x10000540), + DROM_PageAdd22 = ((CSP_REGISTER_T)0x10000580), + DROM_PageAdd23 = ((CSP_REGISTER_T)0x100005C0), + DROM_PageAdd24 = ((CSP_REGISTER_T)0x10000600), + DROM_PageAdd25 = ((CSP_REGISTER_T)0x10000640), + DROM_PageAdd26 = ((CSP_REGISTER_T)0x10000680), + DROM_PageAdd27 = ((CSP_REGISTER_T)0x100006C0), + DROM_PageAdd28 = ((CSP_REGISTER_T)0x10000700), + DROM_PageAdd29 = ((CSP_REGISTER_T)0x10000740), + + DROM_PageAdd30 = ((CSP_REGISTER_T)0x10000780), + DROM_PageAdd31 = ((CSP_REGISTER_T)0x100007C0) +}IFC_ROMSELETED_TypeDef; + +/** + * @brief IFC INT mode + */ +typedef enum +{ + ERS_END_INT = (0x01ul), + RGM_END_INT = ((0x01ul)<<1), + PEP_END_INT = ((0x01ul)<<2), + PROT_ERR_INT = ((0x01ul)<<12), + UDEF_ERR_INT = ((0x01ul)<<13), + ADDR_ERR_INT = ((0x01ul)<<14), + OVW_ERR_INT = ((0x01ul)<<15) +}IFC_INT_TypeDef; + + +extern void ChipErase(void); +extern void PageErase(IFC_ROMSELETED_TypeDef XROM_PageAd); +extern void IFC_interrupt_CMD(FunctionalStatus NewState ,IFC_INT_TypeDef IFC_INT_x); +extern void IFC_Int_Enable(void); +extern void IFC_Int_Disable(void); +extern void Page_ProgramData(unsigned int FlashAdd,unsigned int DataSize,volatile unsigned char *BufArry); +extern void Page_ProgramData_int(unsigned int FlashAdd,unsigned int DataSize,volatile unsigned char *BufArry); +extern void ReadDataArry(unsigned int RdStartAdd,unsigned int DataLength,volatile unsigned char *DataArryPoint); +extern void ReadDataArry_U8(unsigned int RdStartAdd,unsigned int DataLength,volatile unsigned char *DataArryPoint); +extern volatile unsigned int R_INT_FlashAdd; +extern volatile unsigned char f_Drom_write_complete; +extern volatile unsigned char f_Drom_writing; +extern volatile unsigned char ifc_step; +extern void Page_ProgramData_U32(unsigned int FlashAdd,unsigned int DataSize,volatile U32_T *BufArry); +extern void ReadDataArry_U32(unsigned int RdStartAdd,unsigned int DataLength,volatile U32_T *DataArryPoint); +#endif /**< apt32f102_ifc_H */ + +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_lpt.h b/BLV_CS_AC100_V05/Source/include/apt32f102_lpt.h new file mode 100644 index 0000000..7226993 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_lpt.h @@ -0,0 +1,280 @@ +/* + ****************************************************************************** + * @file apt32f102_lpt.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_lpt_H +#define _apt32f102_lpt_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + + +#define LPT_RESET_VALUE (0x00000000) +//-------------------------------------------------------------------------------- +//-----------------------------LPT value enum define-------------------------- +//-------------------------------------------------------------------------------- +/** + * @brief LPT CLK EN register + */ +typedef enum +{ + LPTCLK_DIS = 0, + LPTCLK_EN = 1, +}LPT_CLK_TypeDef; +/** + * @brief LPT CLK source register + */ +typedef enum +{ + LPT_PCLK_DIV4= (0<<2), + LPT_ISCLK = (1<<2), + LPT_IMCLK_DIV4 = (2<<2), + LPT_EMCLK = (3<<2), + LPT_IN_RISE = (4<<2), + LPT_IN_FALL = (5<<2), +}LPT_CSS_TypeDef; +/** + * @brief LPT START SHADOW register + */ +typedef enum +{ + LPT_SHADOW = (0<<6), + LPT_IMMEDIATE= (1<<6), +}LPT_SHDWSTP_TypeDef; +/** + * @brief LPT CLK div register + */ +typedef enum +{ + LPT_PSC_DIV0= 0, + LPT_PSC_DIV2= 1, + LPT_PSC_DIV4= 2, + LPT_PSC_DIV8= 3, + LPT_PSC_DIV16= 4, + LPT_PSC_DIV32= 5, + LPT_PSC_DIV64= 6, + LPT_PSC_DIV128= 7, + LPT_PSC_DIV256= 8, + LPT_PSC_DIV512= 9, + LPT_PSC_DIV1024= 0X0A, + LPT_PSC_DIV2048= 0X0B, + LPT_PSC_DIV4096= 0X0C, +}LPT_PSCDIV_TypeDef; +/** + * @brief LPT START SYN EN register + */ +typedef enum +{ + LPT_SWSYNDIS= (0<<2), + LPT_SWSYNEN= (1<<2), +}LPT_SWSYN_TypeDef; +/** + * @brief LPT IO stop status register + */ +typedef enum +{ + LPT_IDLE_Z= (0<<3), //High-impedance output + LPT_IDLE_LOW= (1<<3), +}LPT_IDLEST_TypeDef; +/** + * @brief LPT PRDLD register + */ +typedef enum +{ + LPT_PRDLD_IMMEDIATELY= (0<<4), + LPT_PRDLD_DUTY_END= (1<<4), +}LPT_PRDLD_TypeDef; +/** + * @brief LPT POL register + */ +typedef enum +{ + LPT_POL_HIGH= (0<<5), + LPT_POL_LOW= (1<<5), +}LPT_POL_TypeDef; +/** + * @brief LPT OPM register + */ +typedef enum +{ + LPT_OPM_CONTINUOUS= (0<<6), + LPT_OPM_ONCE= (1<<6), +}LPT_OPM_TypeDef; +/** + * @brief LPT FLTIPSCLD register + */ +typedef enum +{ + LPT_FLTIPSCLD_NULL= (0<<10), + LPT_FLTIPSCLD_EN= (1<<10), +}LPT_FLTIPSCLD_TypeDef; +/** + * @brief LPT FLTDEB register + */ +typedef enum +{ + LPT_FLTDEB_00= (0<<13), + LPT_FLTDEB_02= (1<<13), + LPT_FLTDEB_03= (2<<13), + LPT_FLTDEB_04= (3<<13), + LPT_FLTDEB_06= (4<<13), + LPT_FLTDEB_08= (5<<13), + LPT_FLTDEB_16= (6<<13), + LPT_FLTDEB_32= (7<<13), +}LPT_FLTDEB_TypeDef; +/** + * @brief LPT PSCLD register + */ +typedef enum +{ + LPT_PSCLD_0= (0<<16), //PSCR + LPT_PSCLD_1= (1<<16), +}LPT_PSCLD_TypeDef; +/** + * @brief LPT CMPLD register + */ +typedef enum +{ + LPT_CMPLD_IMMEDIATELY= (0<<17), + LPT_CMPLD_DUTY_END= (1<<17), +}LPT_CMPLD_TypeDef; +/** + * @brief LPT TRGENX register + */ +typedef enum +{ + LPT_TRGEN_DIS= (0<<0), + LPT_TRGEN_EN= (1<<0), +}LPT_TRGENX_TypeDef; +/** + * @brief LPT OSTMDX register + */ +typedef enum +{ + LPT_OSTMD_CONTINUOUS= (0<<8), + LPT_OSTMD_ONCE= (1<<8), +}LPT_OSTMDX_TypeDef; +/** + * @brief LPT AREARM register + */ +typedef enum +{ + LPT_AREARM_DIS= (0<<30), + LPT_AREARM_EN= (1<<30), +}LPT_AREARM_TypeDef; +/** + * @brief LPT SRCSEL register + */ +typedef enum +{ + LPT_SRCSEL_DIS= (0<<0), + LPT_SRCSEL_EN= (1<<0), +}LPT_SRCSEL_TypeDef; +/** + * @brief LPT BLKINV register + */ +typedef enum +{ + LPT_BLKINV_DIS= (0<<4), + LPT_BLKINV_EN= (1<<4), +}LPT_BLKINV_TypeDef; +/** + * @brief LPT CROSSMD register + */ +typedef enum +{ + LPT_CROSSMD_DIS= (0<<7), + LPT_CROSSMD_EN= (1<<7), +}LPT_CROSSMD_TypeDef; +/** + * @brief LPT TRGSRC0 register + */ +typedef enum +{ + LPT_TRGSRC0_DIS= (0<<0), + LPT_TRGSRC0_ZRO= (1<<0), + LPT_TRGSRC0_PRD= (2<<0), + LPT_TRGSRC0_ZRO_PRD= (3<<0), + LPT_TRGSRC0_CMP= (4<<0), +}LPT_TRGSRC0_TypeDef; +/** + * @brief LPT ESYN0OE register + */ +typedef enum +{ + LPT_ESYN0OE_DIS= (0<<20), + LPT_ESYN0OE_EN= (1<<20), +}LPT_ESYN0OE_TypeDef; + +/** + * @brief LPT INT MASK SET/CLR Set + */ +typedef enum +{ + LPT_TRGEV0 = (0x01 << 0), + LPT_MATCH = (0x01 << 1), + LPT_PEND = (0x01 << 2), +}LPT_IMSCR_TypeDef; + +/** + * @brief LPT IO Set + */ +typedef enum +{ + LPT_OUT_PA09 = 0, + LPT_OUT_PB01 = 1, + LPT_IN_PA10 = 2, +}LPT_IOSET_TypeDef; + + +#define LPT_DEBUG_MODE (0X01<<1) + + +extern void LPT_DeInit(void); +extern void LPT_IO_Init(LPT_IOSET_TypeDef IONAME); +extern 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); +extern void LPT_Debug_Mode(FunctionalStatus NewState); +extern void LPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMP_DATA); +extern void LPT_CNT_Write(U16_T CNT_DATA); +extern U16_T LPT_PRDR_Read(void); +extern U16_T LPT_CMP_Read(void); +extern U16_T LPT_CNT_Read(void); +extern 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); +extern void LPT_SyncSet_Configure(LPT_TRGENX_TypeDef TRGENX,LPT_OSTMDX_TypeDef OSTMDX,LPT_AREARM_TypeDef AREARMX); +extern 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); +extern void LPT_Trigger_Cnt(U8_T TRGEV0CNT_DATA); +extern void LPT_Trigger_EVPS(U8_T TRGEC0PRD_DATA,U8_T TRGEV0CNT_DATA); +extern void LPT_Soft_Trigger(void); +extern void LPT_Start(void); +extern void LPT_Stop(void); +extern void LPT_Soft_Reset(void); +extern void LPT_REARM_Write(void); +extern U8_T LPT_REARM_Read(void); +extern void LPT_ConfigInterrupt_CMD(FunctionalStatus NewState,LPT_IMSCR_TypeDef LPT_IMSCR_X); +extern void LPT_INT_ENABLE(void); +extern void LPT_INT_DISABLE(void); + + + +/*************************************************************/ + +#endif /**< apt32f102_lpt_H */ + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_rtc.h b/BLV_CS_AC100_V05/Source/include/apt32f102_rtc.h new file mode 100644 index 0000000..746da50 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_rtc.h @@ -0,0 +1,254 @@ +/* + ****************************************************************************** + * @file apt32f102_interrupt.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 -------------------------------------*/ +#ifndef _apt32f102_rtc_H +#define _apt32f102_rtc_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" +/****************************************************************************** +************************* rtc Registers Definition ************************* +******************************************************************************/ +/** @addtogroup RTC Registers Reset Value + * @{ + */ + +#define RTC_TIMR_RST ((CSP_REGISTER_T)0x00000000) +#define RTC_DATR_RST ((CSP_REGISTER_T)0x00000000) +#define RTC_CR_RST ((CSP_REGISTER_T)0x00000001) +#define RTC_CCR_RST ((CSP_REGISTER_T)0x00800000) +#define RTC_ALRAR_RST ((CSP_REGISTER_T)0x00000000) +#define RTC_ALRBR_RST ((CSP_REGISTER_T)0x00000000) +#define RTC_SSR_RST ((CSP_REGISTER_T)0x00000000) +#define RTC_CAL_RST ((CSP_REGISTER_T)0x00000000) +#define RTC_IMCR_RST ((CSP_REGISTER_T)0x00000000) +#define RTC_EVTRG_RST ((CSP_REGISTER_T)0x00000000) +#define RTC_EVPS_RST ((CSP_REGISTER_T)0x00000000) + +//RTC KEY +#define RTC_KEY (0XCA53ul) + +/** + * @brief RTC DIVS Control + */ +typedef enum +{ + CLKSRC_ISOSC = (CSP_REGISTER_T)(0x00ul<<24), + CLKSRC_IMOSC_4div = (CSP_REGISTER_T)(0x01ul<<24), + CLKSRC_EMOSC = (CSP_REGISTER_T)(0x02ul<<24), + CLKSRC_EMOSC_4div = (CSP_REGISTER_T)(0x03ul<<24) +}RTC_CLKSRC_TypeDef; + + +/** + * @brief RTC INT register + */ +typedef enum +{ + //RISR IMCR MISR ICR + ALRA_INT = ((CSP_REGISTER_T)(0x01ul << 0)), + ALRB_INT = ((CSP_REGISTER_T)(0x01ul << 1)), + CPRD_INT = ((CSP_REGISTER_T)(0x01ul << 2)), + RTC_TRGEV0_INT = ((CSP_REGISTER_T)(0x01ul << 3)), + RTC_TRGEV1_INT = ((CSP_REGISTER_T)(0x01ul << 4)) +}RTC_INT_TypeDef; + +/** + * @brief RTC Alarm SEC MIN DAY mask + */ + typedef enum +{ + Alarm_Second_Compare_EN = ((CSP_REGISTER_T)(0x00ul << 7)), + Alarm_Second_Compare_DIS = ((CSP_REGISTER_T)(0x01ul << 7)), +} RTC_Alarm_Second_mask_TypeDef; + typedef enum +{ + Alarm_Minute_Compare_EN = ((CSP_REGISTER_T)(0x00ul << 15)), + Alarm_Minute_Compare_DIS = ((CSP_REGISTER_T)(0x01ul << 15)), +} RTC_Alarm_Minute_mask_TypeDef; + typedef enum +{ + Alarm_Hour_Compare_EN = ((CSP_REGISTER_T)(0x00ul << 23)), + Alarm_Hour_Compare_DIS = ((CSP_REGISTER_T)(0x01ul << 23)), +} RTC_Alarm_Hour_mask_TypeDef; + typedef enum +{ + Alarm_DataOrWeek_Compare_EN = ((CSP_REGISTER_T)(0x00ul << 31)), + Alarm_DataOrWeek_Compare_DIS = ((CSP_REGISTER_T)(0x01ul << 31)) +} RTC_Alarm_DataOrWeek_mask_TypeDef; ; +/** + * @brief RTC Alarm week data select + */ + typedef enum +{ + Alarm_data_selecte = ((CSP_REGISTER_T)(0x00ul << 30)), + Alarm_week_selecte = ((CSP_REGISTER_T)(0x01ul << 30)) +} RTC_Alarm_WeekData_select_TypeDef; +/** + * @brief RTC Alarm Register select + */ + typedef enum +{ + Alarm_A = 0, + Alarm_B = 1 +}RTC_Alarm_Register_select_TypeDef; + +/** + * @brief RTC Alarm io output mode + */ + typedef enum +{ + Alarm_A_pulse_output = ((CSP_REGISTER_T)(0x00ul << 10)), + Alarm_A_High = ((CSP_REGISTER_T)(0x01ul << 10)), + Alarm_A_Low = ((CSP_REGISTER_T)(0x02ul << 10)), + Alarm_B_pulse_output = ((CSP_REGISTER_T)(0x04ul << 10)), + Alarm_B_High = ((CSP_REGISTER_T)(0x05ul << 10)), + Alarm_B_Low = ((CSP_REGISTER_T)(0x06ul << 10)), +}Rtc_Output_Mode_TypeDef; +/** + * @brief RTC Alarm IO clock outpu + */ + typedef enum +{ + COSEL_Cali_512hz = ((CSP_REGISTER_T)(0x00ul << 8)), + COSEL_Cali_1hz = ((CSP_REGISTER_T)(0x01ul << 8)), + COSEL_NoCali_512hz = ((CSP_REGISTER_T)(0x02ul << 8)), + COSEL_NoCali_1hz = ((CSP_REGISTER_T)(0x03ul << 8)), +} +Rtc_ClockOutput_Mode_TypeDef; +/** + * @brief RTC AlarmA cmd select + */ + typedef enum +{ + Alarm_A_EN = ((CSP_REGISTER_T)(0x01ul << 3)), + Alarm_A_DIS = ((CSP_REGISTER_T)(0x00ul << 3)), + +}RTC_AlarmA_CMD_TypeDef; +/** + * @brief RTC AlarmB cmd select + */ + typedef enum +{ + Alarm_B_EN = ((CSP_REGISTER_T)(0x01ul << 4)), + Alarm_B_DIS = ((CSP_REGISTER_T)(0x00ul << 4)), +}RTC_AlarmB_CMD_TypeDef; +/** + * @brief RTC FMT mode select + */ + typedef enum +{ + RTC_24H = ((CSP_REGISTER_T)(0x00ul << 5)), + RTC_12H = ((CSP_REGISTER_T)(0x01ul << 5)), +}RTC_FMT_MODE_TypeDef; +/** + * @brief RTC CPRD select + */ + typedef enum +{ + CPRD_NONE = ((CSP_REGISTER_T)(0x00ul << 13)), + CPRD_05S = ((CSP_REGISTER_T)(0x01ul << 13)), + CPRD_1S = ((CSP_REGISTER_T)(0x02ul << 13)), + CPRD_1MIN = ((CSP_REGISTER_T)(0x03ul << 13)), + CPRD_1HOUR = ((CSP_REGISTER_T)(0x04ul << 13)), + CPRD_1DAY = ((CSP_REGISTER_T)(0x05ul << 13)), + CPRD_1MONTH = ((CSP_REGISTER_T)(0x06ul << 13)), +}RTC_CPRD_TypeDef; +/** + * @brief RTC EVTRG TRGSRC0 SET + */ + typedef enum +{ + RTC_EVTRG_TRGSRC0_DIS = ((CSP_REGISTER_T)(0x00ul )), + RTC_EVTRG_TRGSRC0_AlarmA = ((CSP_REGISTER_T)(0x01ul )), + RTC_EVTRG_TRGSRC0_AlarmB = ((CSP_REGISTER_T)(0x02ul )), + RTC_EVTRG_TRGSRC0_AlarmAB = ((CSP_REGISTER_T)(0x03ul )), + RTC_EVTRG_TRGSRC0_CPRD = ((CSP_REGISTER_T)(0x04ul )), +}RTC_EVTRG_TRGSRC0_TypeDef; +/** + * @brief RTC EVTRG TRGSRC1 SET + */ + typedef enum +{ + RTC_EVTRG_TRGSRC1_DIS = ((CSP_REGISTER_T)(0x00ul<<4 )), + RTC_EVTRG_TRGSRC1_AlarmA = ((CSP_REGISTER_T)(0x01ul<<4 )), + RTC_EVTRG_TRGSRC1_AlarmB = ((CSP_REGISTER_T)(0x02ul<<4 )), + RTC_EVTRG_TRGSRC1_AlarmAB = ((CSP_REGISTER_T)(0x03ul<<4 )), + RTC_EVTRG_TRGSRC1_CPRD = ((CSP_REGISTER_T)(0x04ul<<4 )), +}RTC_EVTRG_TRGSRC1_TypeDef; + typedef enum +{ + RTC_TRGSRC0_EN = ((CSP_REGISTER_T)(0x00ul<<20 )), + RTC_TRGSRC0_DIS = ((CSP_REGISTER_T)(0x01ul<<20 )), + RTC_TRGSRC1_EN = ((CSP_REGISTER_T)(0x00ul<<21 )), + RTC_TRGSRC1_DIS = ((CSP_REGISTER_T)(0x01ul<<21 )), +}RTC_TRGSRCX_CMD_TypeDef; +typedef struct +{ + volatile uint8_t u8Second; ///<闹钟分钟 + volatile uint8_t u8Minute; ///<闹钟分钟 + volatile uint8_t u8Hour; ///<闹钟小时 + volatile uint8_t u8WeekOrData; ///<闹钟周 +}RTC_Alarmset_T; + +typedef struct +{ + volatile uint8_t u8Second; ///<秒 + volatile uint8_t u8Minute; ///<分 + volatile uint8_t u8Hour; ///<时 + volatile uint8_t u8DayOfWeek; ///<周 + volatile uint8_t u8Day; ///<日 + volatile uint8_t u8Month; ///<月 + volatile uint8_t u8Year; ///<年 +} RTC_time_t; + + +/** @addtogroup RTC_Exported_functions + * @{ + */ +extern void RTC_RST_VALUE(void); +extern void RTCCLK_CONFIG(U16_T DIVS , U16_T DIVA , RTC_CLKSRC_TypeDef CLKSRC_X); +extern void RTC_ALM_IO_SET(Rtc_Output_Mode_TypeDef Rtc_Output_Mode_x ); +extern void RTC_TIMR_DATR_SET(RTC_time_t *RTC_TimeDate); +extern void RTC_TIMR_DATR_Read(RTC_time_t *RTC_TimeDate); +extern 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); +extern void RTC_Function_Config(RTC_FMT_MODE_TypeDef RTC_FMT_MODE , RTC_CPRD_TypeDef RTC_CPRD_x , Rtc_ClockOutput_Mode_TypeDef Rtc_ClockOutput_x); +extern void RTC_TRGSRC0_Config(RTC_EVTRG_TRGSRC0_TypeDef RTC_EVTRG_TRGSRC0_x , RTC_TRGSRCX_CMD_TypeDef RTC_TRGSRCX_CMD , U8_T Trgev0Prd); +extern void RTC_TRGSRC1_Config(RTC_EVTRG_TRGSRC1_TypeDef RTC_EVTRG_TRGSRC1_x , RTC_TRGSRCX_CMD_TypeDef RTC_TRGSRCX_CMD , U8_T Trgev1Prd); +extern void RTC_TRGSRC0_SWFTRG(void); +extern void RTC_TRGSRC1_SWFTRG(void); +extern void RTC_Start(void); +extern void RTC_Stop(void); +extern void RTC_AlarmA_TIMR_DATR_Read(RTC_Alarmset_T *RTC_AlarmA); +extern void RTC_AlarmB_TIMR_DATR_Read(RTC_Alarmset_T *RTC_AlarmB); +extern void RTC_Int_Enable(RTC_INT_TypeDef RTC_X_INT); +extern void RTC_Int_Disable(RTC_INT_TypeDef RTC_X_INT); +extern void RTC_Vector_Int_Enable(void); +extern void RTC_Vector_Int_Disable(void); +extern void RTC_WakeUp_Enable(void); +extern void RTC_WakeUp_Disable(void); +extern RTC_time_t RTC_TimeDate_buf; +extern RTC_Alarmset_T RTC_AlarmA_buf; +extern RTC_Alarmset_T RTC_AlarmB_buf; + +#endif /**< apt32f102_rtc_H */ + +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_sio.h b/BLV_CS_AC100_V05/Source/include/apt32f102_sio.h new file mode 100644 index 0000000..e090013 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_sio.h @@ -0,0 +1,211 @@ +/* + ****************************************************************************** + * @file apt32f102_sio.h + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_sio_H +#define _apt32f102_sio_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + + +#define SIO_RESET_VALUE (0x00000000) + + +//-------------------------------------------------------------------------------- +//-----------------------------SIO value enum define-------------------------- +//-------------------------------------------------------------------------------- +/** + * @brief SIO IO group register + */ +typedef enum +{ + SIO_PA02 = 0, + SIO_PA03 = 1, + SIO_PA012 = 2, + SIO_PB01 = 3, +}SIO_IOG_TypeDef; +/** + * @brief SIO CLK EN register + */ +typedef enum +{ + SIOCLK_DIS = 0, + SIOCLK_EN = 1, +}SIO_CLK_TypeDef; +/** + * @brief SIO TXDEB register + */ +typedef enum +{ + SIO_TXDEB_1CYCLE = (0<<1), + SIO_TXDEB_2CYCLE = (1<<1), + SIO_TXDEB_3CYCLE = (2<<1), + SIO_TXDEB_4CYCLE = (3<<1), + SIO_TXDEB_5CYCLE = (4<<1), + SIO_TXDEB_6CYCLE = (5<<1), + SIO_TXDEB_7CYCLE = (6<<1), + SIO_TXDEB_8CYCLE = (7<<1), +}SIO_RXDEB_TypeDef; +/** + * @brief SIO IO IDLE STATUS register + */ +typedef enum +{ + SIO_IDLE_Z = 0, + SIO_IDLE_HIGH = 1, + SIO_IDLE_LOW = 2, +}SIO_IDLEST_TypeDef; +/** + * @brief SIO TX DIR register + */ +typedef enum +{ + SIO_TX_LSB = (0<<2), + SIO_TX_MSB = (1<<2), +}SIO_TXDIR_TypeDef; +/** + * @brief SIO LENOBH register + */ +typedef enum +{ + SIO_OBH_1BIT = (0<<8), + SIO_OBH_2BIT = (1<<8), + SIO_OBH_3BIT = (2<<8), + SIO_OBH_4BIT = (3<<8), + SIO_OBH_5BIT = (4<<8), + SIO_OBH_6BIT = (5<<8), + SIO_OBH_7BIT = (6<<8), + SIO_OBH_8BIT = (7<<8), +}SIO_LENOBH_TypeDef; +/** + * @brief SIO LENOBL register + */ +typedef enum +{ + SIO_OBL_1BIT = (0<<11), + SIO_OBL_2BIT = (1<<11), + SIO_OBL_3BIT = (2<<11), + SIO_OBL_4BIT = (3<<11), + SIO_OBL_5BIT = (4<<11), + SIO_OBL_6BIT = (5<<11), + SIO_OBL_7BIT = (6<<11), + SIO_OBL_8BIT = (7<<11), +}SIO_LENOBL_TypeDef; +/** + * @brief SIO RX EDGE register + */ +typedef enum +{ + SIO_RX_RISE = 0, + SIO_RX_FALL = 1, + SIO_RX_RISE_FALL = 2, +}SIO_BSTSEL_TypeDef; +/** + * @brief SIO RX TRG MODE register + */ +typedef enum +{ + SIO_RX_DEB = (0<<3), + SIO_RX_FLT30NS = (1<<3), +}SIO_TRGMODE_TypeDef; +/** + * @brief SIO RX ALIGNEN register + */ +typedef enum +{ + SIO_RX_ALIGNDIS = (0<<28), + SIO_RX_ALIGNEN = (1<<28), +}SIO_ALIGNEN_TypeDef; +/** + * @brief SIO RX DIR register + */ +typedef enum +{ + SIO_RX_MSB = (0<<29), + SIO_RX_LSB = (1<<29), +}SIO_RXDIR_TypeDef; +/** + * @brief SIO RX MODE register + */ +typedef enum +{ + SIO_RMODE0 = (0<<30), + SIO_RMODE1 = (1<<30), +}SIO_RXMODE_TypeDef; +/** + * @brief SIO BREAKEN register + */ +typedef enum +{ + SIO_BREAKDIS = (0<<0), + SIO_BREAKEN = (1<<0), +}SIO_BREAKEN_TypeDef; +/** + * @brief SIO BREAKLVL register + */ +typedef enum +{ + SIO_BREAKLVL_LOW = (0<<1), + SIO_BREAKLVL_HIGH = (1<<1), +}SIO_BREAKLVL_TypeDef; +/** + * @brief SIO TORSTEN register + */ +typedef enum +{ + SIO_TORSTDIS = (0<<15), + SIO_TORSTEN = (1<<15), +}SIO_TORSTEN_TypeDef; +/** + * @brief LPT INT MASK SET/CLR Set + */ +typedef enum +{ + SIO_TXDNE = (0x01 << 0), + SIO_RXDNE = (0x01 << 1), + SIO_TXBUFEMPT = (0x01 << 2), + SIO_RXBUFEMPT = (0x01 << 3), + SIO_BREAK = (0x01 << 4), + SIO_TIME = (0x01 << 5), +}SIO_IMSCR_TypeDef; + + + +#define TX_D0 (0X00) +#define TX_D1 (0X01) +#define TX_DL (0X02) +#define TX_DH (0X03) + + +extern void SIO_DeInit(void); +extern void SIO_IO_Init(SIO_IOG_TypeDef IOGx); +extern void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX); +extern 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); +extern 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); +extern void SIO_RX_Init(SIO_CLK_TypeDef CLKX,SIO_RXDEB_TypeDef RXDEBX,U8_T DEBCKSX); +extern 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); +extern void SIO_RX_Configure1(SIO_BREAKEN_TypeDef BREAKX,SIO_BREAKLVL_TypeDef BREAKLVLX,U8_T BREKCNTX,SIO_TORSTEN_TypeDef TORSTX,U8_T TOCNTX); +extern void SIO_ConfigInterrupt_CMD(FunctionalStatus NewState,SIO_IMSCR_TypeDef SIO_IMSCR_X); +extern void SIO_INT_ENABLE(void); +extern void SIO_INT_DISABLE(void); +/*************************************************************/ + +#endif /**< apt32f102_sio_H */ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_spi.h b/BLV_CS_AC100_V05/Source/include/apt32f102_spi.h new file mode 100644 index 0000000..0829ccd --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_spi.h @@ -0,0 +1,293 @@ +/* + ****************************************************************************** + * @file apt32f102_spi.c + * @author APT AE Team + * @version V1.025 + * @date 2020/06/08 + ****************************************************************************** + *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 -------------------------------------*/ +#ifndef _apt32f102_spi_H +#define _apt32f102_spi_H +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + +/****************************************************************************** +************************** spi Registers Definition **************************** +******************************************************************************/ +/******************************************************************************* +* SSPCR0 : Control Register 0 +*******************************************************************************/ +#define SSP_DSS(val) (((val-1) & 0x0Ful) << 0) /**< Data Size Select */ +#define SSP_FRF(val) (((val) & 0x03ul) << 4) /**< Frame Format */ +#define SSP_SPO (0x01ul << 6) /**< SSPCLK Polarity */ +#define SSP_SPH (0x01ul << 7) /**< SSPCLK Phase */ +#define SSP_SCR(val) (((val) & 0x0FFul) << 8) /**< Serial Clock Rate */ + +/******************************************************************************* +* SSPCR1 : Control Register 1 +*******************************************************************************/ +#define SSP_LBM (0x01ul << 0) /**< Loopback mode */ +#define SSP_SSE (0x01ul << 1) /**< Synchronous Serial Port Enable */ +#define SSP_MS (0x01ul << 2) /**< Master or Slave Mode Select */ +#define SSP_SOD (0x01ul << 3) /**< Slave Mode Output Disable */ +#define SSP_RXIFLSELFRF(val) (((val) & 0x07ul) << 4) + /**< Receive interrupt FIFO level select */ + +/******************************************************************************* +* SSPDR : Data Register +*******************************************************************************/ +#define SSP_DATA(val) (((val) & 0x0FFFF) << 0) /**< Transmit/Receive FIFO */ + +/******************************************************************************* +* SSPSR : Status Register +*******************************************************************************/ +#define SSP_TFE (0x01ul << 0) /**< Transmit FIFO Empty */ +#define SSP_TNF (0x01ul << 1) /**< Transmit FIFO is not Full */ +#define SSP_RNE (0x01ul << 2) /**< Receive is not Empty */ +#define SSP_RFF (0x01ul << 3) /**< Receive FIFO Full */ +#define SSP_BSY (0x01ul << 4) /**< PrimeCell SSP Busy Flag */ + +/******************************************************************************* +* SSPCPSR : Clock prescale register +*******************************************************************************/ +#define SSP_CPSDVSR(val) (((val) & 0x0FF) << 0) /**< Clock Prescale Devisor */ + +/******************************************************************************* +* SSPIMSC : Interrupt mask set and clear register +*******************************************************************************/ +#define SSP_RORIM (0x01ul << 0) /**< Receive Overrun Interrupt Mask */ +#define SSP_RTIM (0x01ul << 1) /**< Receive Timeout Interrupt Mask */ +#define SSP_RXIM (0x01ul << 2) /**< Receive FIFO Interrupt Mask */ +#define SSP_TXIM (0x01ul << 3) /**< Transmit FIFO interrupt Mask */ + +/******************************************************************************* +* SSPRIS : Raw interrupt status register +*******************************************************************************/ +#define SSP_RORRIS (0x01ul << 0) + /**< Gives the Raw Interrupt Status of the SSPRORINTR Interrupt */ +#define SSP_RTRIS (0x01ul << 1) + /**< Gives the raw interrupt state of the SSPRTINTR interrupt */ +#define SSP_RXRIS (0x01ul << 2) + /**< Gives the raw interrupt state of the SSPRXINTR interrupt */ +#define SSP_TXRIS (0x01ul << 3) + /**< Gives the raw interrupt state of the SSPTXINTR interrupt */ + +/******************************************************************************* +* SSPMIS : Masked interrupt status register +*******************************************************************************/ +#define SSP_RORRIS (0x01ul << 0) +/**CR0 = (val & 0xFFFFFFCFul)) + +/** Get CR0 register */ +#define CSP_SSP_GET_CR0(ssp) ((ssp)->CR0) + +/** Set CR1 register */ +#define CSP_SSP_SET_CR1(ssp, val) ((ssp)->CR1 = (val & 0xFFFF000Ful)) + +/** Get CR1 register */ +#define CSP_SSP_GET_CR1(ssp) ((ssp)->CR1) + +/** Set DR register */ +#define CSP_SSP_SET_DR(ssp, val) ((ssp)->DR = (val)) + +/** Get DR register */ +#define CSP_SSP_GET_DR(ssp) ((ssp)->DR) + +/** Get SR register */ +#define CSP_SSP_GET_SR(ssp) ((ssp)->SR) + +/** Set CPSR register */ +#define CSP_SSP_SET_CPSR(ssp, val) ((ssp)->CPSR = (val & 0xFFFF00FFul)) + +/** Get CPSR register */ +#define CSP_SSP_GET_CPSR(ssp) ((ssp)->CPSR) + +/** Set IMSC register */ +#define CSP_SSP_SET_IMSCR(ssp, val) ((ssp)->IMSC = (val & 0xFFFF000Ful)) + +/** Get IMSC register */ +#define CSP_SSP_GET_IMSCR(ssp) ((ssp)->IMSCR) + +/** Get RIS register */ +#define CSP_SSP_GET_RISR(ssp) ((ssp)->RISR) + +/** Get MIS register */ +#define CSP_SSP_GET_MISR(ssp) ((ssp)->MISR + +/** Set ICR register */ +#define CSP_SSP_SET_ICR(ssp, val) ((ssp)->ICR = (val & 0xFFFF0003ul)) + + + +/** @addtogroup spi Registers RST Value + * @{ + */ +#define SPI_CR0_RST (0x00000000) /**< CR0 reset value */ +#define SPI_CR1_RST (0x00000000) /**< CR1 reset value */ +#define SPI_DR_RST (0x00000000) /**< DR reset value */ +#define SPI_SR_RST (0x00000003) /**< SR reset value */ +#define SPI_CPSR_RST (0x00000000) /**< CPSR reset value */ +#define SPI_IMSCR_RST (0x00000000) /**< IMSCR reset value */ +#define SPI_RISR_RST (0x00000008) /**< RISR reset value */ +#define SPI_MISR_RST (0x00000000) /**< MISR reset value */ +#define SPI_ICR_RST (0x00000000) /**< ICR reset value */ + +/** + * @brief SPI INT MASK SET/CLR Set + */ +typedef enum +{ + SPI_PORIM = ((CSP_REGISTER_T)(0x01ul << 0)), /**< Receive overflow Interrupt */ + SPI_RTIM = ((CSP_REGISTER_T)(0x01ul << 1)), /**< Receive timeout Interrupt */ + SPI_RXIM = ((CSP_REGISTER_T)(0x01ul << 2)), /**< Receive FIFO Interrupt */ + SPI_TXIM = ((CSP_REGISTER_T)(0x01ul << 3)) /**< transmit FIFO Interrupt */ +}SPI_IMSCR_TypeDef; + +/** + * @brief SPI IO selection + */ +typedef enum +{ + SPI_G0 = 0, + SPI_G1 = 1, + SPI_G2 = 2 +}SPI_IO_TypeDef; + +/** + * @brief SPI Data Size selection + */ +typedef enum +{ + SPI_DATA_SIZE_4BIT = 3, + SPI_DATA_SIZE_5BIT = 4, + SPI_DATA_SIZE_6BIT = 5, + SPI_DATA_SIZE_7BIT = 6, + SPI_DATA_SIZE_8BIT = 7, + SPI_DATA_SIZE_9BIT = 8, + SPI_DATA_SIZE_10BIT = 9, + SPI_DATA_SIZE_11BIT = 10, + SPI_DATA_SIZE_12BIT = 11, + SPI_DATA_SIZE_13BIT = 12, + SPI_DATA_SIZE_14BIT = 13, + SPI_DATA_SIZE_15BIT = 14, + SPI_DATA_SIZE_16BIT = 15 +}SPI_DATA_SIZE_TypeDef; + +/** + * @brief SPI SPO selection + */ +typedef enum +{ + SPI_SPO_0 = 0, + SPI_SPO_1 = 1 +}SPI_SPO_TypeDef; + +/** + * @brief SPI SPH selection + */ +typedef enum +{ + SPI_SPH_0 = 0, + SPI_SPH_1 = 1 +}SPI_SPH_TypeDef; + +/** + * @brief SPI LBM selection + */ +typedef enum +{ + SPI_LBM_0 = 0, + SPI_LBM_1 = 1 +}SPI_LBM_TypeDef; + +/** + * @brief SPI RXIFLSEL selection + */ +typedef enum +{ + SPI_RXIFLSEL_1_8 = 0x01, + SPI_RXIFLSEL_1_4 = 0x02, + SPI_RXIFLSEL_1_2 = 0x04 +}SPI_RXIFLSEL_TypeDef; +/****************************************************************************** +********************** SPI External Functions Declaration ********************** +******************************************************************************/ +extern void SPI_DeInit(void); +extern void SPI_NSS_IO_Init(U8_T SPI_NSS_IO_GROUP); +extern 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 ); +extern 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); +extern void SPI_WRITE_BYTE(U16_T wdata); +extern void SPI_READ_BYTE(U16_T wdata , volatile U16_T *rdata , U8_T Longth); +extern void SPI_ConfigInterrupt_CMD(FunctionalStatus NewState,SPI_IMSCR_TypeDef SPI_IMSCR_X); +extern void SPI_Int_Enable(void); +extern void SPI_Int_Disable(void); +extern void SPI_Wakeup_Enable(void); +extern void SPI_Wakeup_Disable(void); + +#endif /**< apt32f102_spi_H */ + +/******************* (C) COPYRIGHT 2018 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_syscon.h b/BLV_CS_AC100_V05/Source/include/apt32f102_syscon.h new file mode 100644 index 0000000..f023b74 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_syscon.h @@ -0,0 +1,526 @@ +/* + ****************************************************************************** + * @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 + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef _apt32f102_syscon_H +#define _apt32f102_syscon_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" +/****************************************************************************** +************************* syscon Registers Definition ************************* +******************************************************************************/ +/** @addtogroup SYSCON Registers Reset Value + * @{ + */ + +#define SYSCON_IDCCR_RST ((CSP_REGISTER_T)0x00000001) +#define SYSCON_GCER_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_GCDR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_GCSR_RST ((CSP_REGISTER_T)0x00081103) +#define SYSCON_CKST_RST ((CSP_REGISTER_T)0x00000103) +#define SYSCON_RAMCHK_RST ((CSP_REGISTER_T)0x0000ffff) +#define SYSCON_EFLCHK_RST ((CSP_REGISTER_T)(0X0<<24)|0xffffff) +#define SYSCON_SCLKCR_RST ((CSP_REGISTER_T)0xD22Dul<<16) +#define SYSCON_PCLKCR_RST ((CSP_REGISTER_T)0x00000100) +#define SYSCON_PCER0_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_PCDR0_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_PCSR0_RST ((CSP_REGISTER_T)0x005107d1) +#define SYSCON_PCER1_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_PCDR1_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_PCSR1_RST ((CSP_REGISTER_T)0x3023f80) +#define SYSCON_OSTR_RST ((CSP_REGISTER_T)0x70ff3bff) +#define SYSCON_LVDCR_RST ((CSP_REGISTER_T)0x0000000a) +#define SYSCON_CLCR_RST ((CSP_REGISTER_T)0x00000100) +#define SYSCON_PWRCR_RST ((CSP_REGISTER_T)0x141f1f00) +#define SYSCON_IMER_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_IMDR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_IMCR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_IAR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_ICR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_RISR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_MISR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EXIRT_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EXIFT_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EXIER_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EXIDR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EXIMR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EXIAR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EXICR_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EXIRS_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_IWDCR_RST ((CSP_REGISTER_T)0x0000070C) +#define SYSCON_IWDCNT_RST ((CSP_REGISTER_T)0x000003fe) +#define SYSCON_PWROPT_RST ((CSP_REGISTER_T)0x00004040) +#define SYSCON_EVTRG_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EVPS_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_EVSWF_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_UREG0_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_UREG1_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_UREG2_RST ((CSP_REGISTER_T)0x00000000) +#define SYSCON_UREG3_RST ((CSP_REGISTER_T)0x00000000) + +//SCLKCR +#define SYSCLK_KEY (0xD22Dul<<16) + +//PCLK CONTROL +#define PCLK_KEY (0xC33Cul<<16) + +//IDCCR +#define CLKEN (0X01ul) +#define CPUFTRST_EN (0X00<<1) +#define CPUFTRST_DIS (0XA<<1) +#define SWRST (0X01ul<<7) +#define IDCCR_KEY (0xE11Eul<<16) + +//LVDCR +#define LVDFLAG (0x01ul<<15) //0: VDD is higher than LVD threshold selected with INTDET_LVL bits. 1: VDD is lower than LVD threshold selected with INTDET_LVL bits +#define LVD_KEY (0xB44Bul<<16) + +//IECR IEDR IAR ICR IMSR RISR ISR +//Interrupt Enable/Disable/Active/Clear Control Register +//Interrupt Masking/Raw Interrupt/Masked Status Register +#define ISOSC_ST (0x01ul) +#define IMOSC_ST (0x01ul<<1) +#define ESOSC_ST (0x01ul<<2) +#define EMOSC_ST (0x01ul<<3) +#define HFOSC_ST (0x01ul<<4) +#define SYSCLK_ST (0x01ul<<7) +#define IWDT_INT_ST (0x01ul<<8) +#define WKI_INT_ST (0x01ul<<9) +#define RAMERRINT_ST (0X01ul<<10) +#define LVD_INT_ST (0x01ul<<11) +#define HWD_ERR_ST (0X01ul<<12) +#define EFL_ERR_ST (0X01ul<<13) +#define OPTERR_INT (0X01ul<<14) +#define EM_CMLST_ST (0x01ul<<18) +#define EM_EVTRG0_ST (0x01ul<<19) +#define EM_EVTRG1_ST (0x01ul<<20) +#define EM_EVTRG2_ST (0x01ul<<21) +#define EM_EVTRG3_ST (0x01ul<<22) +#define CMD_ERR_ST (0x01ul<<29) + +//RSR +//SYSCON Reset Status Register +#define PORST (0X01ul) +#define LVRRST (0X01ul<<1) +#define EXTRST (0X01ul<<2) +#define ALVRST (0X01ul<<3) +#define IWDRST (0X01ul<<4) +#define EMCMRST (0X01ul<<6) +#define CPURSTREQ (0X01ul<<7) +#define SWRST_RSR (0X01ul<<8) +#define CPUFAULT_RSR (0X01ul<<9) +#define SRAM_RSR (0X01ul<<11) +#define EFL_ERR (0X01ul<<12) +#define WWDTRST (0X01ul<<13) + +//IWDCR +#define Check_IWDT_BUSY (0x01ul<<12) //Indicates the independent watchdog operation +#define IWDT_KEY (0x8778ul<<16) + +//IWDCNT +#define CLR_IWDT (0x5aul<<24) + +//IWDEDR +#define Enable_IWDT (0x0) +#define Disable_IWDT (0x55aa) +#define IWDTEDR_KEY (0x7887ul<<16) + +#define CORET_IRQ 0 +#define SYSCON_IRQ 1 +#define IFC_IRQ 2 +#define ADC_IRQ 3 +#define EPT0_IRQ 4 +#define WWDT_IRQ 6 +#define EXI0_IRQ 7 +#define EXI1_IRQ 8 +#define GPT0_IRQ 9 +#define RTC_IRQ 12 +#define UART0_IRQ 13 +#define UART1_IRQ 14 +#define UART2_IRQ 15 +#define I2C_IRQ 17 +#define SPI_IRQ 19 +#define SIO_IRQ 20 +#define EXI2_IRQ 21 +#define EXI3_IRQ 22 +#define EXI4_IRQ 23 +#define CA_IRQ 24 +#define TKEY_IRQ 25 +#define LPT_IRQ 26 +#define BT0_IRQ 28 +#define BT1_IRQ 29 + +/** + * @brief SYSCON General Control + */ +typedef enum +{ + ENDIS_ISOSC = (CSP_REGISTER_T)(0x01ul), + ENDIS_IMOSC = (CSP_REGISTER_T)(0x01ul<<1), + ENDIS_EMOSC = (CSP_REGISTER_T)(0x01ul<<3), + ENDIS_HFOSC = (CSP_REGISTER_T)(0x01ul<<4), + ENDIS_IDLE_PCLK = (CSP_REGISTER_T)(0x01ul<<8), + ENDIS_SYSTICK = (CSP_REGISTER_T)(0x01ul<<11) +}SYSCON_General_CMD_TypeDef; + +/** + * @brief Selected SYSCON CLK + */ +typedef enum +{ + SYSCLK_IMOSC = (CSP_REGISTER_T)0x0ul, //IMOSC selected + SYSCLK_EMOSC = (CSP_REGISTER_T)0x1ul, //EMOSC selected + SYSCLK_HFOSC = (CSP_REGISTER_T)0x2ul, //HFOSC selected + SYSCLK_ISOSC = (CSP_REGISTER_T)0x4ul //ISOSC selected +}SystemCLK_TypeDef; +/** + * @brief SYSCON CLK Div + */ +typedef enum +{ + HCLK_DIV_1 = (CSP_REGISTER_T)(0x1ul<<8), + HCLK_DIV_2 = (CSP_REGISTER_T)(0x2ul<<8), + HCLK_DIV_3 = (CSP_REGISTER_T)(0x3ul<<8), + HCLK_DIV_4 = (CSP_REGISTER_T)(0x4ul<<8), + HCLK_DIV_5 = (CSP_REGISTER_T)(0x5ul<<8), + HCLK_DIV_6 = (CSP_REGISTER_T)(0x6ul<<8), + HCLK_DIV_7 = (CSP_REGISTER_T)(0x7ul<<8), + HCLK_DIV_8 = (CSP_REGISTER_T)(0x8ul<<8), + HCLK_DIV_12 = (CSP_REGISTER_T)(0x9ul<<8), + HCLK_DIV_16 = (CSP_REGISTER_T)(0xAul<<8), + HCLK_DIV_24 = (CSP_REGISTER_T)(0xBul<<8), + HCLK_DIV_32 = (CSP_REGISTER_T)(0xCul<<8), + HCLK_DIV_64 = (CSP_REGISTER_T)(0xDul<<8), + HCLK_DIV_128 = (CSP_REGISTER_T)(0xEul<<8), + HCLK_DIV_256 = (CSP_REGISTER_T)(0xFul<<8) +}SystemCLK_Div_TypeDef; + +/** + * @brief PCLK Div + */ +typedef enum +{ + PCLK_DIV_1 = (CSP_REGISTER_T)(0x00ul<<8), + PCLK_DIV_2 = (CSP_REGISTER_T)(0x01ul<<8), + PCLK_DIV_4 = (CSP_REGISTER_T)(0x02ul<<8), + PCLK_DIV_8 = (CSP_REGISTER_T)(0x04ul<<8), + PCLK_DIV_16 = (CSP_REGISTER_T)(0x08ul<<8) +}PCLK_Div_TypeDef; + +/** + * @brief LVD enable and disable + */ +typedef enum +{ + ENABLE_LVDEN = (CSP_REGISTER_T)0x00, //Power down LVD module + DISABLE_LVDEN = (CSP_REGISTER_T)0x0a //Power down LVD module +}X_LVDEN_TypeDef; + +/** + * @brief Detection voltage level to trigger the LVD interrupt + */ +typedef enum +{ + INTDET_LVL_2_1V = (CSP_REGISTER_T)(0X00ul<<8), //2.1V + INTDET_LVL_2_4V = (CSP_REGISTER_T)(0X01ul<<8), //2.4V + INTDET_LVL_2_7V = (CSP_REGISTER_T)(0X02ul<<8), //2.7V + INTDET_LVL_3_0V = (CSP_REGISTER_T)(0X03ul<<8), //3.0V + INTDET_LVL_3_3V = (CSP_REGISTER_T)(0X04ul<<8), //3.3V + INTDET_LVL_3_6V = (CSP_REGISTER_T)(0X05ul<<8), //3.6V + INTDET_LVL_3_9V = (CSP_REGISTER_T)(0X06ul<<8), //3.9V +}INTDET_LVL_X_TypeDef; + +/** + * @brief Detection voltage level to generate reset + */ +typedef enum +{ + RSTDET_LVL_1_9V = (CSP_REGISTER_T)(0X00ul<<12), //1.9V + RSTDET_LVL_2_2V = (CSP_REGISTER_T)(0X01ul<<12), //2.2V + RSTDET_LVL_2_5V = (CSP_REGISTER_T)(0X02ul<<12), //2.5V + RSTDET_LVL_2_8V = (CSP_REGISTER_T)(0X03ul<<12), //2.8V + RSTDET_LVL_3_1V = (CSP_REGISTER_T)(0X04ul<<12), //3.1V + RSTDET_LVL_3_4V = (CSP_REGISTER_T)(0X05ul<<12), //3.4V + RSTDET_LVL_3_7V = (CSP_REGISTER_T)(0X06ul<<12), //3.7V + RSTDET_LVL_4_0V = (CSP_REGISTER_T)(0X07ul<<12) //4.0V +}RSTDET_LVL_X_TypeDef; + +/** + * @brief Detection voltage level to trigger the LVD interrupt + */ +typedef enum +{ + ENABLE_LVD_INT = (CSP_REGISTER_T)(0X01ul<<11), //ENABLE LVD INT + DISABLE_LVD_INT = (CSP_REGISTER_T)(0X00ul<<11) //DISABLE LVD INT +}X_LVD_INT_TypeDef; + +/** + * @brief EXI PIN + */ +typedef enum +{ + EXI_PIN0 = (CSP_REGISTER_T)(0X01ul), + EXI_PIN1 = (CSP_REGISTER_T)(0X01ul<<1), + EXI_PIN2 = (CSP_REGISTER_T)(0X01ul<<2), + EXI_PIN3 = (CSP_REGISTER_T)(0X01ul<<3), + EXI_PIN4 = (CSP_REGISTER_T)(0X01ul<<4), + EXI_PIN5 = (CSP_REGISTER_T)(0X01ul<<5), + EXI_PIN6 = (CSP_REGISTER_T)(0X01ul<<6), + EXI_PIN7 = (CSP_REGISTER_T)(0X01ul<<7), + EXI_PIN8 = (CSP_REGISTER_T)(0X01ul<<8), + EXI_PIN9 = (CSP_REGISTER_T)(0X01ul<<9), + EXI_PIN10 = (CSP_REGISTER_T)(0X01ul<<10), + EXI_PIN11 = (CSP_REGISTER_T)(0X01ul<<11), + EXI_PIN12 = (CSP_REGISTER_T)(0X01ul<<12), + EXI_PIN13 = (CSP_REGISTER_T)(0X01ul<<13), + EXI_PIN14 = (CSP_REGISTER_T)(0X01ul<<14), + EXI_PIN15 = (CSP_REGISTER_T)(0X01ul<<15), + EXI_PIN16 = (CSP_REGISTER_T)(0X01ul<<16), + EXI_PIN17 = (CSP_REGISTER_T)(0X01ul<<17), + EXI_PIN18 = (CSP_REGISTER_T)(0X01ul<<18), + EXI_PIN19 = (CSP_REGISTER_T)(0X01ul<<19), +}SYSCON_EXIPIN_TypeDef; + +/** + * @brief EXT register + */ +typedef enum +{ + _EXIRT = 0, + _EXIFT = 1, +}EXI_tringer_mode_TypeDef; + + +/** + * @brief SYSON IWDT TIME SET + */ +typedef enum +{ + IWDT_TIME_125MS = (CSP_REGISTER_T)(0x00ul<<8), //IWDT_TIME 0x00fff + IWDT_TIME_250MS = (CSP_REGISTER_T)(0x01ul<<8), //IWDT_TIME 0x01fff + IWDT_TIME_500MS = (CSP_REGISTER_T)(0x02ul<<8), //IWDT_TIME 0x03fff + IWDT_TIME_1S = (CSP_REGISTER_T)(0x03ul<<8), //IWDT_TIME 0x07fff + IWDT_TIME_2S = (CSP_REGISTER_T)(0x04ul<<8), //IWDT_TIME 0x0ffff //2M ISOSC 2sec + IWDT_TIME_3S = (CSP_REGISTER_T)(0x05ul<<8), //IWDT_TIME 0x16fff + IWDT_TIME_4S = (CSP_REGISTER_T)(0x06ul<<8), //IWDT_TIME 0x1ffff + IWDT_TIME_8S = (CSP_REGISTER_T)(0x07ul<<8) //IWDT_TIME 0x3ffff +}IWDT_TIME_TypeDef; + +/** + * @brief SYSON IWDT TIME DIV SET + */ +typedef enum +{ + IWDT_INTW_DIV_1 = (0x00ul<<2), //1/8 of IWDT_TIME + IWDT_INTW_DIV_2 = (0x01ul<<2), //2/8 of IWDT_TIME + IWDT_INTW_DIV_3 = (0x02ul<<2), //3/8 of IWDT_TIME + IWDT_INTW_DIV_4 = (0x03ul<<2), //4/8 of IWDT_TIME + IWDT_INTW_DIV_5 = (0x04ul<<2), //5/8 of IWDT_TIME + IWDT_INTW_DIV_6 = (0x05ul<<2), //6/8 of IWDT_TIME + IWDT_INTW_DIV_7 = (0x06ul<<2) //7/8 of IWDT_TIME +}IWDT_TIMEDIV_TypeDef; + +/** + * @brief IMOSC SELECTE SET + */ +typedef enum +{ + IMOSC_SELECTE_5556K = (0x00ul<<0), + IMOSC_SELECTE_4194K = (0x01ul<<0), + IMOSC_SELECTE_2097K = (0x02ul<<0), + IMOSC_SELECTE_131K = (0x03ul<<0) +}IMOSC_SELECTE_TypeDef; + +/** + * @brief HFOSC SELECTE SET + */ +typedef enum +{ + HFOSC_SELECTE_48M = (0x0ul<<4), + HFOSC_SELECTE_24M = (0x1ul<<4), + HFOSC_SELECTE_12M = (0x2ul<<4), + HFOSC_SELECTE_6M = (0x3ul<<4) +}HFOSC_SELECTE_TypeDef; + +/** + * @brief EM Filter set + */ +typedef enum +{ + EM_FLSEL_5ns = (0x0ul<<26), + EM_FLSEL_10ns = (0x1ul<<26), + EM_FLSEL_15ns = (0x2ul<<26), + EM_FLSEL_20ns = (0x3ul<<26) +}EM_Filter_TypeDef; +/** + * @brief EM Filter CMD + */ +typedef enum +{ + EM_FLEN_DIS = (0x0ul<<25), + EM_FLEN_EN = (0x1ul<<25) +}EM_Filter_CMD_TypeDef; +/** + * @brief EM LFSEL BIT + */ +typedef enum +{ + EM_LFSEL_DIS = (0x0ul<<10), + EM_LFSEL_EN = (0x1ul<<10) +}EM_LFSEL_TypeDef; +/** + * @brief EM Systemclk data + */ +typedef enum +{ + EMOSC_24M = 0, + EMOSC_16M = 1, + EMOSC_12M = 2, + EMOSC_8M = 3, + EMOSC_4M = 4, + EMOSC_36K = 5, + IMOSC = 6, + ISOSC = 7, + HFOSC_48M = 8, + HFOSC_24M = 9, + HFOSC_12M = 10, + HFOSC_6M = 11 +}SystemClk_data_TypeDef; +typedef enum +{ + CLO_PA02 = 0, //PA0.0 as clo + CLO_PA08 = 1, //PA0.8 as clo +}CLO_IO_TypeDef; + +typedef enum +{ + INTDET_POL_fall = (1<<6), //fall Trigger + INTDET_POL_X_rise = (2<<6), //rise Trigger + INTDET_POL_X_riseORfall = (3<<6), //fall or rise Trigger +}INTDET_POL_X_TypeDef; + +typedef enum +{ + //IOMAP0 + PIN_I2C_SCL = 0X00, // + PIN_I2C_SDA = 0X01, // + PIN_GPT_CHA = 0X02, // + PIN_GPT_CHB = 0X03, // + PIN_SPI_MOSI = 0X04, // + PIN_SPI_MISO = 0X05, // + PIN_SPI_SCK = 0X06, // + PIN_SPI_NSS = 0X07, // + //IOMAP1 + PIN_UART0_RX = 0X10, // + PIN_UART0_TX = 0X11, // + PIN_EPT_CHAX = 0X12, // + PIN_EPT_CHBX = 0X13, // + PIN_EPT_CHCX = 0X14, // + PIN_EPT_CHAY = 0X15, // + PIN_EPT_CHBY = 0X16, // + PIN_EPT_CHCY = 0X17, // +}IOMAP_DIR_TypeDef; + +/** + * @brief CLOMX Systemclk data + */ +typedef enum +{ + CLO_ISCLK = 0, + CLO_IMCLK = 1, + CLO_EMCLK = 3, + CLO_HFCLK = 4, + CLO_RTCCLK = 6, + CLO_PCLK = 7, + CLO_HCLK = 8, + CLO_IWDTCLK = 9, + CLO_SYSCLK = 0X0D, +}SystemClk_CLOMX_TypeDef; + +/** + * @brief CLOMX Systemclk data + */ +typedef enum +{ + CLO_DIV0 = 1, + CLO_DIV4 = 0, + CLO_DIV2 = 2, + CLO_DIV8 = 4, + CLO_DIV16 = 5, +}SystemClk_CLODIV_TypeDef; + +/** @addtogroup SYSCON_Exported_functions + * @{ + */ +extern void SYSCON_RST_VALUE(void); +extern void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ); +extern 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); +extern 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 ); +extern void SYSCON_WDT_CMD(FunctionalStatus NewState); +extern void SYSCON_IWDCNT_Reload(void); +extern void SYSCON_IWDCNT_Config(IWDT_TIME_TypeDef IWDT_TIME_X , IWDT_TIMEDIV_TypeDef IWDT_INTW_DIV_X ); +extern 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); +extern void EXTI_trigger_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN , EXI_tringer_mode_TypeDef EXI_tringer_mode); +extern void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN); +extern void SYSCON_CLO_CONFIG(CLO_IO_TypeDef clo_io); +extern U32_T SYSCON_Read_CINF0(void); +extern U32_T SYSCON_Read_CINF1(void); +extern void SYSCON_INT_Priority(void); +extern void EXI0_Int_Enable(void); +extern void EXI0_Int_Disable(void); +extern void EXI1_Int_Enable(void); +extern void EXI1_Int_Disable(void); +extern void EXI2_Int_Enable(void); +extern void EXI2_Int_Disable(void); +extern void EXI3_Int_Enable(void); +extern void EXI3_Int_Disable(void); +extern void EXI4_Int_Enable(void); +extern void EXI4_Int_Disable(void); +extern void SYSCON_Int_Enable(void); +extern void SYSCON_Int_Disable(void); +extern void PCLK_goto_idle_mode(void); +extern void PCLK_goto_deepsleep_mode(void); +extern void LVD_Int_Enable(void); +extern void LVD_Int_Disable(void); +extern void IWDT_Int_Enable(void); +extern void IWDT_Int_Disable(void); +extern void EXI0_WakeUp_Enable(void); +extern void EXI0_WakeUp_Disable(void); +extern void EXI1_WakeUp_Enable(void); +extern void EXI1_WakeUp_Disable(void); +extern void EXI2_WakeUp_Enable(void); +extern void EXI2_WakeUp_Disable(void); +extern void EXI3_WakeUp_Enable(void); +extern void EXI3_WakeUp_Disable(void); +extern void EXI4_WakeUp_Enable(void); +extern void EXI4_WakeUp_Disable(void); +extern void SYSCON_WakeUp_Enable(void); +extern void SYSCON_WakeUp_Disable(void); +extern void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE); +extern void SYSCON_Software_Reset(void); +extern void SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_TypeDef HFOSC_SELECTE_X); +extern void SYSCON_IMOSC_SELECTE(IMOSC_SELECTE_TypeDef IMOSC_SELECTE_X); +extern void SystemCLK_Clear(void); +extern void GPIO_Remap(CSP_GPIO_T *GPIOx,uint8_t bit,IOMAP_DIR_TypeDef iomap_data); +extern void SYSCON_CLO_SRC_SET(SystemClk_CLOMX_TypeDef clomxr,SystemClk_CLODIV_TypeDef clodivr); +extern void Set_INT_Priority(U8_T int_name,U8_T int_level); + +extern U32_T Read_Reset_Status(void); +#endif /**< apt32f102_syscon_H */ + +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_tkey.h b/BLV_CS_AC100_V05/Source/include/apt32f102_tkey.h new file mode 100644 index 0000000..bf1cf36 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_tkey.h @@ -0,0 +1,184 @@ +/* + ****************************************************************************** + * @file apt32f102_tkey.h + * @author APT AE Team + * @version V1.01 + * @date 2019/04/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 + ****************************************************************************** + */ + +#ifndef _apt32f102_TK_H +#define _apt32f102_TK_H + +#include "apt32f102.h" + +/** + * @brief tkey mode register + */ +typedef enum +{ + TK_HM_DIS = 0<<0, + TK_HM_EN = 1<<0, +}TKEY_HMEN_TypeDef; +/** + * @brief tkey mode register + */ +typedef enum +{ + TK_SINGLE = 0<<1, + TK_SEQ = 1<<1, +}TKEY_MODE_TypeDef; +/** + * @brief tkey ckspr register + */ +typedef enum +{ + TK_CKSPR_DIS = 0<<9, + TK_CKSPR_EN = 1<<9, +}TKEY_CKSPR_TypeDef; +/** + * @brief tkey CKRND register + */ +typedef enum +{ + TK_CKRND_DIS = 0<<10, + TK_CKRND_EN = 1<<10, +}TKEY_CKRND_TypeDef; +/** + * @brief tkey CKFEQ register + */ +typedef enum +{ + TK_CKFEQ_LOW = 0<<11, + TK_CKREQ_HIGH = 1<<11, +}TKEY_CKFEQ_TypeDef; + +/** + * @brief tkey RSSEL register + */ +typedef enum +{ + TK_RSSEL_OVW = 0<<12, + TK_RSSEL_OverTHR = 1<<12, +}TKEY_RSSEL_TypeDef; +/** + * @brief tkey IDLEP register + */ +typedef enum +{ + TK_IDLEP_DIS = 0<<14, + TK_IDLEP_EN = 1<<14, +}TKEY_IDLEP_TypeDef; + +/** + * @brief tkey DSR register + */ +typedef enum +{ + TK_DSR_Z = 0<<16, + TK_DSR_LOW = 1<<16, + TK_DSR_HIGH = 2<<16, +}TKEY_DSR_TypeDef; + +/** + * @brief tkey TSCANSTB register + */ +typedef enum +{ + TK_STB_1 = 0<<20, + TK_STB_2 = 1<<20, + TK_STB_3 = 2<<20, + TK_STB_4 = 3<<20, +}TKEY_TSSTB_TypeDef; + +/** + * @brief tkey OTHRCN register + */ +typedef enum +{ + TK_DCKDIV_0 = 0<<12, + TK_DCKDIV_2 = 1<<12, + TK_DCKDIV_4 = 2<<12, + TK_DCKDIV_8 = 3<<12, +}TKEY_DCKDIV_TypeDef; +#define TK_PSEL_FVR 0 +#define TK_PSEL_AVDD 1 +#define TK_FVR_2048V 0 +#define TK_FVR_4096V 1 +#define TK_EC_1V 0 +#define TK_EC_2V 1 +#define TK_EC_3V 2 +#define TK_EC_3_6V 3 + +U32_T TK_IO_ENABLE; //Tkey IO使能 bit=1 表示使能对应的 TCHx 做 touch key 功能,低位至高位的顺序对应 TCH0~TCH16 +U16_T TK_senprd[17]; //Tkey 通道扫描周期配置 值越大灵敏度越高,但不能超过理论值否则按键无法扫描通过,常用值不大于 150 +U16_T TK_Triggerlevel[17]; //Tkey 通道触发门槛值配置 值越大门槛值越高,取值范围为按键差值的 50%~60%,未使用的通道设置成 0xFF +U8_T Press_debounce_data; //Tkey 触发去抖配置 按下去抖 1~10,默认配置为 5 +U8_T Release_debounce_data; //Tkey 释放去抖配置 释放去抖 1~10,默认配置为 5 +U16_T TK_icon[17]; +U8_T MultiTimes_Filter; //OFFSET 滤波倍数 大于等于 4 时,表示开启相应的倍数滤波;小于 4 时表示倍数滤波关闭;默认配置关闭 +U8_T Valid_Key_Num; //最多有效按键个数 此配置表示允许同时按下按键时最多有效个数。默认为 4 +U8_T Key_mode; //Tkey 按键模式 0 表示单键模式,1 表示多键模式 +U8_T Base_Speed; //Baseline 更新速度 数值越小,baseline 更新速度越快;数值越大,baseline 更新速度越慢;默认为 10 约 100ms +U32_T TK_longpress_time; //按键长按强制更新时间设置 长按键强制更新配置。时间= TK_longpress_time*1s;默认 16 秒 +U32_T TK_BaseCnt; //按键扫描基准时间配置 若系统时钟修改时需要修改此参数,保证基准时间为 10ms;计算公式 TK_BaseCnt=10ms*PCLK/8-1,默认 59999 数值基于 48MHz +U16_T TK_PSEL_MODE; +U16_T TK_FVR_LEVEL; +U16_T TK_EC_LEVEL; +U8_T TK_Lowpower_mode; +U8_T TK_Lowpower_level; +U8_T TK_Wakeup_level; +//**************************************************************** +#define TK_CLK_EN (TKEY->CLKEN|=0X01) +#define TK_CLK_DIS (TKEY->CLKEN&=0XFFE) +#define TK_SCANTIME_DIS (0<<12) +#define TK_SCANTIME_1ms (1<<12) +#define TK_SCANTIME_1_5ms (2<<12) +#define TK_SCANTIME_2ms (3<<12) +#define TK_SCANTIME_3ms (4<<12) +#define TK_SCANTIME_5ms (5<<12) +#define TK_SCANTIME_10ms (6<<12) +#define TK_SCANTIME_100ms (7<<12) + +#define TKEY_TCHEN(val) (val) /**< TKEY CH Enable */ +#define TKEY_ICON(val) (((val) & 0x0Ful) << 8) +#define TKEY_START (0x01ul << 0) + +#define TKEY_SINDNE (0x01ul << 0) +#define TKEY_DNE (0x01ul << 1) +#define TKEY_THR (0x01ul << 2) +#define TKEY_FLW (0x01ul << 3) +#define TKEY_OVW (0x01ul << 4) +#define TKEY_TIME (0x01ul << 5) +#define TCH_EN(val) (0x01<= 8 bits + short >= 16 bits + long >= 32 bits + (from Harbison & Steele, "C, A Ref. Manual" 3rd ed. p. 99) + + so all ANSI C compliant compilers will accept the following. +**************************************************************************/ +#ifndef CSP_TYPES_H +#define CSP_TYPES_H + + +/* Signed Types */ +typedef signed char S8_T; +typedef short S16_T; +typedef long S32_T; + +/* Unsigned Types */ +typedef unsigned char U8_T; +typedef unsigned short U16_T; +typedef unsigned long U32_T; +typedef unsigned long long U64_T; + +/* Float Types */ +typedef float F32_T; +typedef double F64_T; + +/* Boolean types declared as U8_T, as enums are generated as 16 bit */ +typedef U8_T B_T; + +/* Definitions for the two members of the Boolean type */ +#ifndef FALSE +#define FALSE ((B_T) 0) +#endif + +#ifndef TRUE +#define TRUE ((B_T) 1) +#endif + +/* UNUSED Definition for unused Interrupt numbers * and unused PDC channels */ +/* in the CHIP structure. (cf. CSP.C file) */ +#ifndef UNUSED +#define UNUSED ((U8_T) 0xFF) +#endif + +/* NULL definition */ +#ifndef NULL +#define NULL 0 +#endif + +typedef enum {ENABLE = 1, DISABLE = !ENABLE} ClockStatus, FunctionalStatus; +typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; +typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; + +/****************************************************************************** +* Peripherals Type +******************************************************************************/ +typedef volatile U32_T CSP_REGISTER_T; +typedef volatile U16_T CSP_REGISTER16_T; +typedef volatile U8_T CSP_REGISTER8_T; + +#endif /* CSP_TYPE_H */ + +/* define 8 bit types */ +typedef unsigned char UINT8; +typedef signed char SINT8; + +/* define 16 bit types */ +typedef unsigned short UINT16; +typedef signed short SINT16; + +/* define 32 bit types */ +typedef unsigned long UINT32; +typedef signed long SINT32; + +typedef void VOID; +typedef signed char CHAR; /* be careful of EOF!!! (EOF = -1) */ +typedef unsigned char BOOL; +typedef signed long TIME_T; + +typedef float SINGLE; +#ifdef DOUBLE +#undef DOUBLE +#endif +typedef double DOUBLE; + +typedef struct +{ + unsigned bit0 : 1; + unsigned bit1 : 1; + unsigned bit2 : 1; + unsigned bit3 : 1; + unsigned bit4 : 1; + unsigned bit5 : 1; + unsigned bit6 : 1; + unsigned bit7 : 1; +} REG8; + +typedef struct +{ + unsigned bit0 : 1; + unsigned bit1 : 1; + unsigned bit2 : 1; + unsigned bit3 : 1; + unsigned bit4 : 1; + unsigned bit5 : 1; + unsigned bit6 : 1; + unsigned bit7 : 1; + unsigned bit8 : 1; + unsigned bit9 : 1; + unsigned bit10: 1; + unsigned bit11: 1; + unsigned bit12: 1; + unsigned bit13: 1; + unsigned bit14: 1; + unsigned bit15: 1; +} REG16; + + + +/************************************************************************** +STANDARD STRING TYPEDEFS +**************************************************************************/ +typedef char STRING_3[4]; +typedef char STRING_5[6]; +typedef char STRING_8[9]; +typedef char STRING_10[11]; +typedef char STRING_12[13]; +typedef char STRING_16[17]; +typedef char STRING_24[25]; +typedef char STRING_30[31]; +typedef char STRING_32[33]; +typedef char STRING_48[49]; +typedef char STRING_50[51]; +typedef char STRING_60[61]; +typedef char STRING_80[81]; +typedef char STRING_132[133]; +typedef char STRING_256[257]; +typedef char STRING_512[513]; + + +/********************************************/ +/* STANDARD SYSTEM SIZES */ +/********************************************/ +#define SIZE_UINT8 (size_t)(sizeof (UINT8 )) +#define SIZE_SINT8 (size_t)(sizeof (SINT8 )) + +#define SIZE_UINT16 (size_t)(sizeof (UINT16)) +#define SIZE_SINT16 (size_t)(sizeof (SINT16)) + +#define SIZE_UINT32 (size_t)(sizeof (UINT32)) +#define SIZE_SINT32 (size_t)(sizeof (SINT32)) + +#define SIZE_VOID (size_t)(sizeof (VOID )) +#define SIZE_CHAR (size_t)(sizeof (CHAR )) +#define SIZE_BOOL (size_t)(sizeof (BOOL )) +#define SIZE_TIME_T (size_t)(sizeof (TIME_T)) + +#define SIZE_SINGLE (size_t)(sizeof (SINGLE)) +#define SIZE_DOUBLE (size_t)(sizeof (DOUBLE)) + +#define SIZE_STRING_3 (size_t)(sizeof (STRING_3 )) +#define SIZE_STRING_5 (size_t)(sizeof (STRING_5 )) +#define SIZE_STRING_8 (size_t)(sizeof (STRING_8 )) +#define SIZE_STRING_10 (size_t)(sizeof (STRING_10 )) +#define SIZE_STRING_12 (size_t)(sizeof (STRING_12 )) +#define SIZE_STRING_16 (size_t)(sizeof (STRING_16 )) +#define SIZE_STRING_24 (size_t)(sizeof (STRING_24 )) +#define SIZE_STRING_30 (size_t)(sizeof (STRING_30 )) +#define SIZE_STRING_32 (size_t)(sizeof (STRING_32 )) +#define SIZE_STRING_48 (size_t)(sizeof (STRING_48 )) +#define SIZE_STRING_50 (size_t)(sizeof (STRING_50 )) +#define SIZE_STRING_60 (size_t)(sizeof (STRING_60 )) +#define SIZE_STRING_80 (size_t)(sizeof (STRING_80 )) +#define SIZE_STRING_132 (size_t)(sizeof (STRING_132)) +#define SIZE_STRING_256 (size_t)(sizeof (STRING_256)) +#define SIZE_STRING_512 (size_t)(sizeof (STRING_512)) + + +/************************************************************************** +STANDARD BIT MANIPULATIONS +**************************************************************************/ +#define SETBIT( target, bit ) ((target) |= (1u << (bit))) +#define CLRBIT( target, bit ) ((target) &= ~(1u << (bit))) +#define TOGBIT( target, bit ) ((target) ^= (1u << (bit))) + +#define ISBITSET( target, bit ) (!!((target) & (1u << (bit)))) +#define ISBITCLR( target, bit ) ( !((target) & (1u << (bit)))) + + +/**************************************************************************/ +#endif + + + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_uart.h b/BLV_CS_AC100_V05/Source/include/apt32f102_uart.h new file mode 100644 index 0000000..03502ad --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_uart.h @@ -0,0 +1,145 @@ +/* + ****************************************************************************** + * @file apt32f102_uart.h + * @author APT AE Team + * @version V1.13 + * @date 2021/12/13 + ****************************************************************************** + *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 -------------------------------------*/ +#ifndef _apt32f102_uart_H +#define _apt32f102_uart_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + +typedef enum +{ + UART_PAR_NONE =0<<8, //无校验位 + UART_PAR_EVEN =4<<8, //偶校验位 + UART_PAR_ODD =5<<8, //奇校验位 + UART_PAR_SPACE =6<<8, //0校验位 + UART_PAR_MARK =7<<8 //1校验位 +}UART_PAR_TypeDef; +/** + * @brief UART IO setting + */ +typedef enum +{ + IO_UART0 = 0, + IO_UART1 = 1, + IO_UART2 = 2, +}UART_NUM_TypeDef; +/***************************************************************************** +************************** UART Function defined ***************************** +******************************************************************************/ +#define UART_RESET_VALUE (0x00000000) +/** SR : UART Status Register */ +#define UART_TX_FULL (0x01ul << 0) /**< Transmitter full */ +#define UART_RX_FULL (0x01ul << 1) /**< Receiver full */ +#define UART_TX_OVER (0x01ul << 2) /**< Transmitter buff over */ +#define UART_RX_OVER (0x01ul << 3) /**< Receiver buff over */ + +/** CTRL : UART Control Register */ +#define UART_TX (0x01ul << 0) /**< Transmitter Enable/disable */ +#define UART_RX (0x01ul << 1) /**< Receiver Enable/disable */ +#define UART_TX_INT (0x01ul << 2) /**< Transmitter INT Enable/disable */ +#define UART_RX_INT (0x01ul << 3) /**< Receiver INT Enable/disable */ +#define UART_TX_IOV (0x01ul << 4) /**< Transmitter INTOver Enable/disable*/ +#define UART_RX_IOV (0x01ul << 5) /**< Receiver INTOver Enable/disable */ +#define UART_PARUTY_ERR_INT (0x01ul << 7) /**< PARUTY ERROR Status */ +#define UART_TX_FIFO_INT (0x01ul << 12) /**< TX fifo int Enable/disable */ +#define UART_RX_FIFO_INT (0x01ul << 13) /**< RX fifo int Enable/disable */ +#define UART_RX_FIFOOV_INT (0x01ul << 18) /**< RX fifo int over Enable/disable */ +#define UART_TX_DONE_INT (0x01ul << 19) /**< Receiver TX done Enable/disable */ + +//#define UART_TEST_MODE (0x01ul << 6) /**< =1 Test mode */ + +/** ISR : UART Interrupt Status Register */ +#define UART_TX_INT_S (0x01ul << 0) /**< Transmitter INT Status */ +#define UART_RX_INT_S (0x01ul << 1) /**< Receiver INTStatus */ +#define UART_TX_IOV_S (0x01ul << 2) /**< Transmitter INTOver Status */ +#define UART_RX_IOV_S (0x01ul << 3) /**< Receiver INTOver Status */ +#define UART_PARUTY_ERR_S (0x01ul << 4) /**< PARUTY ERROR Status */ +#define UART_TXMIS_S (0x01ul << 5) /**< tx fifo Status */ +#define UART_RXMIS_S (0x01ul << 6) /**< rx fifo Status */ +#define UART_RORMIS_S (0x01ul << 7) /**< rx fifo over Status */ +#define UART_TX_DONE_S (0x01ul << 19) /**< Receiver INTOver Status */ + +/** Set DATA register */ +#define CSP_UART_SET_DATA(uart, val) ((uart)->DATA = (val)) +/** Get DATA register */ +#define CSP_UART_GET_DATA(uart) ((uart)->DATA) + +/** Set SR register */ +#define CSP_UART_SET_SR(uart, val) ((uart)->SR = (val)) +/** Get SR register */ +#define CSP_UART_GET_SR(uart) ((uart)->SR) + +/** Set CTRL register */ +#define CSP_UART_SET_CTRL(uart, val) ((uart)->CTRL = (val)) +/** Get CTRL register */ +#define CSP_UART_GET_CTRL(uart) ((uart)->CTRL) + +/** Set ISR register */ +#define CSP_UART_SET_ISR(uart, val) ((uart)->ISR = (val)) +/** Get ISR register */ +#define CSP_UART_GET_ISR(uart) ((uart)->ISR) + +/** Set BRDIV register */ +#define CSP_UART_SET_BRDIV(uart, val) ((uart)->BRDIV = (val)) +/** Get BRDIV register */ +#define CSP_UART_GET_BRDIV(uart) ((uart)->BRDIV) +/** UART External Variable Declaration */ +#define UART_BUFSIZE 32 +extern volatile U16_T RxDataBuf[12]; +extern volatile U16_T RxDataPtr; +extern volatile U16_T TxDataPtr; +extern volatile U8_T RxDataFlag; +extern volatile U8_T TxDataFlag; +extern volatile U8_T Uart_send_Length; +extern volatile U16_T Uart_send_Length_temp; +extern volatile U8_T Uart_buffer[UART_BUFSIZE]; + /** UART External Functions Declaration */ +extern void UARTInit(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT); +extern void UARTClose(CSP_UART_T *uart); +extern void UARTInitRxIntEn(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT); +extern void UARTInitRxTxIntEn(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT); +extern void UARTTxByte(CSP_UART_T *uart,U8_T txdata_u8); +extern void UARTTransmit(CSP_UART_T *uart,U8_T *sourceAddress_u16,U16_T length_u16); +extern U16_T UARTRxByte(CSP_UART_T *uart,U8_T *Rxdata_u16); +extern U8_T UART_ReturnRxByte(CSP_UART_T *uart); +extern U16_T UARTReceive(CSP_UART_T *uart,U8_T *destAddress_u16,U16_T length_u16); +extern void UART0_DeInit(void); +extern void UART1_DeInit(void); +extern void UART2_DeInit(void); +extern void UART_IO_Init(UART_NUM_TypeDef IO_UART_NUM , U8_T UART_IO_G); +extern void UART0_Int_Enable(void); +extern void UART1_Int_Enable(void); +extern void UART2_Int_Enable(void); +extern void UART0_Int_Disable(void); +extern void UART1_Int_Disable(void); +extern void UART2_Int_Disable(void); +extern void UART0_WakeUp_Enable(void); +extern void UART1_WakeUp_Enable(void); +extern void UART2_WakeUp_Enable(void); +extern void UART0_WakeUp_Disable(void); +extern void UART1_WakeUp_Disable(void); +extern void UART2_WakeUp_Disable(void); +extern void UART0_CONFIG(void); +extern void UART1_CONFIG(void); +extern void UART2_CONFIG(void); +extern void UARTTTransmit_data_set(CSP_UART_T *uart ); +extern void UARTTransmit_INT_Send(CSP_UART_T *uart ); +#endif /**< apt32f102_types_local_H */ + +/******************* (C) COPYRIGHT 2016 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/include/apt32f102_wwdt.h b/BLV_CS_AC100_V05/Source/include/apt32f102_wwdt.h new file mode 100644 index 0000000..3afc329 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/include/apt32f102_wwdt.h @@ -0,0 +1,65 @@ +/* + ****************************************************************************** + * @file apt32f102_wwdt.h + * @author APT AE Team + * @version V1.02 + * @date 2020/11/20 + ****************************************************************************** + *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 -------------------------------------*/ +#ifndef _apt32f102_wwdt_H +#define _apt32f102_wwdt_H + +/* Includes ------------------------------------------------------------------*/ +#include "apt32f102.h" + +#define WWDT_RESET_VALUE (0x00000000) + + +//-------------------------------------------------------------------------------- +//-----------------------------wwdt value enum define-------------------------- +//-------------------------------------------------------------------------------- +/** + * @brief PSC DIV register + */ +typedef enum +{ + PCLK_4096_DIV0 = (0<<8), + PCLK_4096_DIV2 = (1<<8), + PCLK_4096_DIV4 = (2<<8), + PCLK_4096_DIV8 = (3<<8), +}WWDT_PSCDIV_TypeDef; +/** + * @brief WWDT DEBUG MODE register + */ +typedef enum +{ + WWDT_DBGDIS = (0<<10), + WWDT_DBGEN = (1<<10), +}WWDT_DBGEN_TypeDef; + +#define WWDT_EVI 0X01 + + +extern void WWDT_DeInit(void); +extern void WWDT_CONFIG(WWDT_PSCDIV_TypeDef PSCDIVX,U8_T WND_DATA,WWDT_DBGEN_TypeDef DBGENX); +extern void WWDT_CMD(FunctionalStatus NewState); +extern void WWDT_CNT_Load(U8_T cnt_data); +extern void WWDT_Int_Config(FunctionalStatus NewState); + + + +/*************************************************************/ + +#endif /**< apt32f102_wwdt_H */ + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/includes.h b/BLV_CS_AC100_V05/Source/includes.h new file mode 100644 index 0000000..989b1d4 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/includes.h @@ -0,0 +1,56 @@ +#ifndef _INCLUDES_H_ +#define _INCLUDES_H_ + +#include "apt32f102.h" +#include "apt32f102_adc.h" +#include "apt32f102_bt.h" +#include "apt32f102_coret.h" +#include "apt32f102_countera.h" +#include "apt32f102_crc.h" +#include "apt32f102_ept.h" +#include "apt32f102_et.h" +#include "apt32f102_gpio.h" +#include "apt32f102_gpt.h" +#include "apt32f102_i2c.h" +#include "apt32f102_ifc.h" +#include "apt32f102_lpt.h" +#include "apt32f102_rtc.h" +#include "apt32f102_sio.h" +#include "apt32f102_spi.h" +#include "apt32f102_syscon.h" +#include "apt32f102_uart.h" +#include "apt32f102_wwdt.h" +#include "apt32f102_types_local.h" +#include "apt32f102_clkcalib.h" +#include "apt32f102_tkey.h" + +#include +#include +#include + +/*应用代码头文件*/ +#include "uart.h" +#include "dip_switch.h" +#include "eeprom.h" +#include "det_energy.h" +#include "Bootload_fun.h" +#include "fram_i2c.h" + +/*工程名称及软件版本号 + 此定义在每个工程中必须定义,用于识别当前工程对应的机型 + Boot中会通过读取EEPROM中保存的设备信息来判断当前是什么机型 + 如果EEPROM 中没有保存设备信息,那么当前就是Boot程序,设备地址为0x00,设备类型为0x00 +*/ +#define Project_Area 0x02 //工程所处区域为APP区域 0x01:Boot区域;0x02:APP区域 +#define Peoject_Name "BLV_CS_AC100_V05" //工程名称 +#define Project_Type 0x06 //工程对应的设备类型 Boot默认设备类型 + +#define Project_FW_Version 0x05 //工程对应的软件版本号 +#define Project_HW_Version 0x03 //软件对应的硬件版本号 + + +extern volatile U32_T SysTick_100us; +extern volatile U32_T SysTick_1ms; + + +#endif diff --git a/BLV_CS_AC100_V05/Source/lib_102ClkCalib_1_03.a b/BLV_CS_AC100_V05/Source/lib_102ClkCalib_1_03.a new file mode 100644 index 0000000..fe1f46c Binary files /dev/null and b/BLV_CS_AC100_V05/Source/lib_102ClkCalib_1_03.a differ diff --git a/BLV_CS_AC100_V05/Source/lib_102TKey_1_15.a b/BLV_CS_AC100_V05/Source/lib_102TKey_1_15.a new file mode 100644 index 0000000..c4b7504 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/lib_102TKey_1_15.a differ diff --git a/BLV_CS_AC100_V05/Source/lib_102TKey_1_15C.a b/BLV_CS_AC100_V05/Source/lib_102TKey_1_15C.a new file mode 100644 index 0000000..78b7518 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/lib_102TKey_1_15C.a differ diff --git a/BLV_CS_AC100_V05/Source/lib_102TKey_1_15M.a b/BLV_CS_AC100_V05/Source/lib_102TKey_1_15M.a new file mode 100644 index 0000000..d442d99 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/lib_102TKey_1_15M.a differ diff --git a/BLV_CS_AC100_V05/Source/lib_102TKey_1_15MC.a b/BLV_CS_AC100_V05/Source/lib_102TKey_1_15MC.a new file mode 100644 index 0000000..bb55e43 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/lib_102TKey_1_15MC.a differ diff --git a/BLV_CS_AC100_V05/Source/lib_102TKey_c_1_16P0.a b/BLV_CS_AC100_V05/Source/lib_102TKey_c_1_16P0.a new file mode 100644 index 0000000..4f1cc58 Binary files /dev/null and b/BLV_CS_AC100_V05/Source/lib_102TKey_c_1_16P0.a differ diff --git a/BLV_CS_AC100_V05/Source/main.c b/BLV_CS_AC100_V05/Source/main.c new file mode 100644 index 0000000..2e13ab1 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/main.c @@ -0,0 +1,40 @@ +#include "includes.h" + + +extern void delay_nms(unsigned int t); +extern void APT32F102_init(void); + +//本项目对应的Boot软件版本号,必须要 +const volatile char Project_Boot_Support[32] __attribute__ ((section(".textcsky.VinFlash"))) = "***MD203_Bootloader_V04***"; + +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ +// delay_nms(2000); + APT32F102_init(); //102 initial + + Dbg_Println(DBG_BIT_SYS_STATUS,"APP Run Start! 111 %s",Project_Boot_Support); + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start!"); + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + + UART0_TASK(); + + UART1_TASK(); + + UART2_TASK(); + + DIP_ScanTask(); + + BLV_EngDetect_Tack(); + + BUS485Send_Task(); + + } +} + + diff --git a/BLV_CS_AC100_V05/Source/mcu_initial.c b/BLV_CS_AC100_V05/Source/mcu_initial.c new file mode 100644 index 0000000..0823245 --- /dev/null +++ b/BLV_CS_AC100_V05/Source/mcu_initial.c @@ -0,0 +1,335 @@ +#include "includes.h" + + +/*************************************************************/ +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + volatile unsigned int i,j ,k=0; + j = 50* t; + for ( i = 0; i < j; i++ ) + { + k++; + SYSCON_IWDCNT_Reload(); + } +} +void delay_nus(unsigned int t) +{ + volatile unsigned int i,j ,k=0; + j = 1* t; + for ( i = 0; i < j; i++ ) + { + k++; + } +} +/*************************************************************/ +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + +// //外部中断初始化 +// GPIO_PullHigh_Init(GPIOA0,4); //PA0.14 +// +// GPIO_IntGroup_Set(PA0,4,Selete_EXI_PIN4); //EXI0 set PB0.2 +// GPIOA0_EXI_Init(EXI4); //PB0.2 as input +//// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 +// EXTI_trigger_CMD(ENABLE,EXI_PIN4,_EXIRT); +// EXTI_interrupt_CMD(ENABLE,EXI_PIN4); //enable EXI +// GPIO_EXTI_interrupt(GPIOA0,0b0000000000010000); //enable GPIOB02 as EXI +// EXI3_Int_Enable(); + +// //串口1-RX接收中断,用于串口2的通讯总线繁忙状态判断,2025-04-16 +// GPIO_PullHigh_Init(GPIOA0,15); +// +// GPIO_IntGroup_Set(PA0,15,Selete_EXI_PIN15); //EXI0 set PB0.2 +// GPIOA0_EXI_Init(EXI15); //PB0.2 as input +// EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIFT); //ENABLE falling edge +// EXTI_trigger_CMD(ENABLE,EXI_PIN15,_EXIRT); +// EXTI_interrupt_CMD(ENABLE,EXI_PIN15); //enable EXI +// GPIO_EXTI_interrupt(GPIOA0,0b1000000000000000); //enable GPIOB02 as EXI +// +// EXI4_Int_Enable(); + + +} + +/*************************************************************/ +//ETP0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0_CONFIG(void) +{ + //4路 PWM初始化 + EPT_Software_Prg(); //EPT software reset +//------------ EPT GPIO Setting --------------------------------/ + //EPT_IO_SET(EPT_IO_CHAX,IO_NUM_PA10); //AX channel selection + EPT_IO_SET(EPT_IO_CHBX,IO_NUM_PB02); //BX channel selection + //EPT_IO_SET(EPT_IO_CHCX,IO_NUM_PB05); //CX channel selection + //EPT_IO_SET(EPT_IO_CHD,IO_NUM_PA08); //D channel selection +//------------ EPT Control --------------------------------/ + EPT_PWM_Config(EPT_Selecte_PCLK,EPT_CNTMD_increase,EPT_OPM_Continue,0);//PCLK as clock,increasing mode,continuous mode,TCLK=PCLK/(0+1) + +// EPT_PWMX_Output_Control(EPT_PWMA,EPT_CA_Selecte_CMPA,EPT_CB_Selecte_CMPA,EPT_PWM_ZRO_Event_OutLow,EPT_PWM_PRD_Event_Nochange, +// EPT_PWM_CAU_Event_OutHigh,EPT_PWM_CAD_Event_OutHigh, +// EPT_PWM_CBU_Event_Nochange,EPT_PWM_CBD_Event_Nochange, +// EPT_PWM_T1U_Event_Nochange,EPT_PWM_T1D_Event_Nochange, +// EPT_PWM_T2U_Event_Nochange,EPT_PWM_T2D_Event_Nochange); + EPT_PWMX_Output_Control(EPT_PWMB,EPT_CA_Selecte_CMPB,EPT_CB_Selecte_CMPB,EPT_PWM_ZRO_Event_OutLow,EPT_PWM_PRD_Event_OutLow, + EPT_PWM_CAU_Event_OutHigh,EPT_PWM_CAD_Event_OutHigh, + EPT_PWM_CBU_Event_Nochange,EPT_PWM_CBD_Event_Nochange, + EPT_PWM_T1U_Event_Nochange,EPT_PWM_T1D_Event_Nochange, + EPT_PWM_T2U_Event_Nochange,EPT_PWM_T2D_Event_Nochange); +// EPT_PWMX_Output_Control(EPT_PWMC,EPT_CA_Selecte_CMPC,EPT_CB_Selecte_CMPC,EPT_PWM_ZRO_Event_OutLow,EPT_PWM_PRD_Event_Nochange, +// EPT_PWM_CAU_Event_OutHigh,EPT_PWM_CAD_Event_OutHigh, +// EPT_PWM_CBU_Event_Nochange,EPT_PWM_CBD_Event_Nochange, +// EPT_PWM_T1U_Event_Nochange,EPT_PWM_T1D_Event_Nochange, +// EPT_PWM_T2U_Event_Nochange,EPT_PWM_T2D_Event_Nochange); +// EPT_PWMX_Output_Control(EPT_PWMD,EPT_CA_Selecte_CMPD,EPT_CB_Selecte_CMPD,EPT_PWM_ZRO_Event_OutLow,EPT_PWM_PRD_Event_Nochange, +// EPT_PWM_CAU_Event_OutHigh,EPT_PWM_CAD_Event_OutHigh, +// EPT_PWM_CBU_Event_Nochange,EPT_PWM_CBD_Event_Nochange, +// EPT_PWM_T1U_Event_Nochange,EPT_PWM_T1D_Event_Nochange, +// EPT_PWM_T2U_Event_Nochange,EPT_PWM_T2D_Event_Nochange); + + EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(3000,0,10,0,0);//PRDR=2400,CMPA=1200,CMPB=600,CMPC=2400,CMPD=0 + + EPT_Int_Enable(EPT_PEND);//End of cycle interrupt request raw status + EPT_Vector_Int_Enable(); //开启EPT中断 +//------------ EPT start --------------------------------/ + EPT_Start(); + +} + +/*************************************************************/ +//GPT0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0_CONFIG(void) +{ + + +} + +/*************************************************************/ +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + //PB 保护电流PWM_CURR_LMT +// BT_DeInit(BT0); +// BT_IO_Init(BT0_PB02); +// BT_Configure(BT0,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV);//TCLK=PCLK/(0+1) +// BT_ControlSet_Configure(BT0,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); +// //BT_ControlSet_Configure(BT0,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_EN,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); +// //BT_Trigger_Configure(BT0,BT_TRGSRC_PEND,BT_TRGOE_EN); +// BT_Period_CMP_Write(BT0,50,1); +// BT_Start(BT0); +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + BT_ControlSet_Configure(BT1,BT_START_HIGH,BT_IDLE_LOW,BT_SYNC_DIS,BT_SYNCMD_DIS,BT_OSTMDX_ONCE,BT_AREARM_DIS,BT_CNTRLD_EN); + BT_Period_CMP_Write(BT1,4780,1); + BT_Start(BT1); + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + BT1_INT_ENABLE(); + +} + + + +/*************************************************************/ +//UART0 CONFIG +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_CONFIG(void) +{ + UART0_DeInit(); //clear all UART Register + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + UARTInit(UART0,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + + UARTInitRxTxIntEn(UART0,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200,tx rx int enabled + UART0_Int_Enable(); +} +/*************************************************************/ +//UART1 CONFIG +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_CONFIG(void) +{ + UART1_DeInit(); //clear all UART Register + UART_IO_Init(IO_UART1,0); //use PA0.13->RXD1, PB0.0->TXD1 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + UART1_Int_Enable(); +} +/*************************************************************/ +//UART2 CONFIG +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_CONFIG(void) +{ + UART2_DeInit(); //clear all UART Register + UART_IO_Init(IO_UART2,2); //use PA0.7->RXD2, PA0.6->TXD2 + UARTInit(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + //UARTInitRxTxIntEn(UART2,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + //UART2_Int_Enable(); +} +/*************************************************************/ +//adc config +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CONFIG(void) +{ + + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + ADC12_Software_Reset(); //ADC软件复位 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,4); + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_VDD_VREFN_VSS); + + ADC12_ConversionChannel_Config(ADC12_ADCIN4,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + ADC12_ConversionChannel_Config(ADC12_ADCIN7,ADC12_CV_RepeatNum1,ADC12_AVGDIS,1); + ADC12_ConversionChannel_Config(ADC12_ADCIN8,ADC12_CV_RepeatNum1,ADC12_AVGDIS,2); + ADC12_ConversionChannel_Config(ADC12_ADCIN10,ADC12_CV_RepeatNum1,ADC12_AVGDIS,3); + + + ADC12_CMD(ENABLE); + + ADC12_ready_wait(); + + ADC12_Control(ADC12_START); +} + +/*************************************************************/ +//SIO Functions +//EntryParameter:NONE +//ReturnValue:NONE +// sio 驱动RGB LED(ws2812), RGB DATA = 24bit; 驱动数据输出排列方式:GRB +/*************************************************************/ +void SIO_CONFIG(void) +{ + SIO_DeInit(); + // + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + //tx clk =4MHz, Ttxshift = 1/4 = 250ns;发送每bit时间是250ns + SIO_TX_Init(SIOCLK_EN,9); // + //TXCR1 TXCR0--空闲输出L + //TXBUFLEN = 8-1 TXCNT =24-1 + // D0 D1 不使用 + // + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + //SIO_TXBUF_Set(TX_DH,TX_DL,TX_DH,TX_DL,TX_DH,TX_DL,TX_DH,TX_DL,TX_D1,TX_D0,TX_D1,TX_D0,TX_D1,TX_D0,TX_D1,TX_D0); +// SIO_ConfigInterrupt_CMD(ENABLE,SIO_TXDNE); //配置 +// SIO_INT_ENABLE(); +} + +/*************************************************************/ +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + //EMOSC_OSTR_Config(0XAD,0X1f,EM_LFSEL_EN,EM_FLEN_EN,EM_FLSEL_10ns); //EM_CNT=0X3FF,0xAD(36K),EM_GM=0,Low F modedisable,EM filter disable,if enable,cont set 5ns + //SYSCON_General_CMD(ENABLE,ENDIS_EMOSC); + SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_48M); //HFOSC selected 48MHz + SystemCLK_HCLKDIV_PCLKDIV_Config(SYSCLK_HFOSC,HCLK_DIV_1,PCLK_DIV_1,HFOSC_48M);//system clock set, Hclk div ,Pclk div set system clock=SystemCLK/Hclk div/Pclk div +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_500MS,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + SYSCON_IWDCNT_Reload(); //reload WDT + IWDT_Int_Enable(); +//------------ WWDT FUNTION --------------------------------/ +// WWDT_CNT_Load(0xFF); +// WWDT_CONFIG(PCLK_4096_DIV0,0xFF,WWDT_DBGDIS); +// WWDT_Int_Config(ENABLE); + //WWDT_CMD(ENABLE); //enable wwdt +//------------ CLO Output --------------------------------/ + //SYSCON_CLO_CONFIG(CLO_PA08); //CLO output setting + //SYSCON_CLO_SRC_SET(CLO_HFCLK,CLO_DIV16); //CLO output clock and div +//------------ LVD FUNTION --------------------------------/ + SYSCON_LVD_Config(ENABLE_LVDEN,INTDET_LVL_3_9V,RSTDET_LVL_1_9V,ENABLE_LVD_INT,INTDET_POL_fall); //LVD LVR Enable/Disable + LVD_Int_Enable(); +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + +} +/*********************************************************************************/ +/*********************************************************************************/ +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + CK_CPU_EnAllNormalIrq(); //enable all IRQ + SYSCON_INT_Priority(); //initial all Priority=0xC0 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART0_IRQ,1); + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + Set_INT_Priority(UART2_IRQ,1); + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + + UARTx_Init(UART_0,HLW8110_RecvData_Processing); + UARTx_Init(UART_1,BLV_485Recv_Processing); + UARTx_Init(UART_2,BT_Recv_Processing); + + DIP_Switch_Init(); + + BLV_DetEnergy_Init(); + + Bsp_I2C_Fram_Init(); + + Boot_Function_Init(); +} + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/BLV_CS_AC100_V05/Source/mcu_interrupt.c b/BLV_CS_AC100_V05/Source/mcu_interrupt.c new file mode 100644 index 0000000..d74f3cc --- /dev/null +++ b/BLV_CS_AC100_V05/Source/mcu_interrupt.c @@ -0,0 +1,1000 @@ +#include "includes.h" + +/**************************************************** +//define +*****************************************************/ +volatile int R_CMPA_BUF,R_CMPB_BUF; +//volatile int R_SIOTX_count,R_SIORX_count; +volatile int R_SIORX_buf[10]; + +/**************************************************** +//extern +*****************************************************/ +extern void delay_nms(unsigned int t); +/*************************************************************/ +//CORET Interrupt +//If you use a touch library file that does not contain coret +//you need to open this interrupt entry +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +//void CORETHandler(void) +//{ +// // ISR content ... +//} +/*************************************************************/ +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + // ISR content ... + nop; + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + { + SYSCON->ICR = ISOSC_ST; + } + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + { + SYSCON->ICR = IMOSC_ST; + } + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + } + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + { + SYSCON->ICR = SYSCLK_ST; + } + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + { + SYSCON->ICR = IWDT_INT_ST; +// SYSCON->IWDCNT=0x5aul<<24; + } + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + { + SYSCON->ICR = WKI_INT_ST; + } + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + { + SYSCON->ICR = RAMERRINT_ST; + } + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + { + nop; + SYSCON->ICR = LVD_INT_ST; + } + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + { + SYSCON->ICR = HWD_ERR_ST; + } + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + { + SYSCON->ICR = EFL_ERR_ST; + } + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + { + SYSCON->ICR = OPTERR_INT; + } + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + { + SYSCON->ICR = EM_CMLST_ST; + } + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + { + SYSCON->ICR = EM_EVTRG0_ST; + } + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + { + SYSCON->ICR = EM_EVTRG1_ST; + } + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + { + SYSCON->ICR = EM_EVTRG2_ST; + } + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + { + SYSCON->ICR = EM_EVTRG3_ST; + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} +/*************************************************************/ +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + // ISR content ... + if(IFC->MISR&ERS_END_INT) + { + IFC->ICR=ERS_END_INT; + } + else if(IFC->MISR&RGM_END_INT) + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + } + else if(IFC->MISR&PROT_ERR_INT) + { + IFC->ICR=PROT_ERR_INT; + } + else if(IFC->MISR&UDEF_ERR_INT) + { + IFC->ICR=UDEF_ERR_INT; + } + else if(IFC->MISR&ADDR_ERR_INT) + { + IFC->ICR=ADDR_ERR_INT; + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} +/*************************************************************/ +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + { + ADC0->CSR = ADC12_EOC; + } + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + { + ADC0->CSR = ADC12_READY; + } + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + { + ADC0->CSR = ADC12_OVR; + } + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + { + ADC0->CSR = ADC12_CMP0H; + } + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + { + ADC0->CSR = ADC12_CMP0L; + } + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + } + else if((ADC0->SR&ADC12_SEQ_END0)==ADC12_SEQ_END0) //ADC SEQ0 interrupt,SEQ1~SEQ15 replace the parameter with ADC12_SEQ_END1~ADC12_SEQ_END15 + { + ADC0->CSR = ADC12_SEQ_END0; + } +} +/*************************************************************/ +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + { + EPT0->ICR=EPT_TRGEV0_INT; + } + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + { + EPT0->ICR=EPT_TRGEV1_INT; + } + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + { + EPT0->ICR=EPT_TRGEV2_INT; + } + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + { + EPT0->ICR=EPT_TRGEV3_INT; + } + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + { + EPT0->ICR=EPT_CAP_LD0; + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + } + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + { + EPT0->ICR=EPT_CAP_LD1; + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + R_CMPB_BUF=EPT0->CMPB; //Duty counter + } + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + { + EPT0->ICR=EPT_CAP_LD2; + } + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + { + EPT0->ICR=EPT_CAP_LD3; + } + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + { + EPT0->ICR=EPT_CAU; + } + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + { + EPT0->ICR=EPT_CAD; + } + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + { + EPT0->ICR=EPT_CBU; + } + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + { + EPT0->ICR=EPT_CBD; + } + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + { + EPT0->ICR=EPT_CCU; + } + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + { + EPT0->ICR=EPT_CCD; + } + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + { + EPT0->ICR=EPT_CDU; + } + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + { + EPT0->ICR=EPT_CDD; + } + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + { + EPT0->ICR=EPT_PEND; + //EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(50,0,50,0,0); + EPT_Stop(); + } + //Emergency interruption + if((EPT0->EMMISR&EPT_EP0_EMINT)==EPT_EP0_EMINT) //interrupt flag of EP0 event + { + EPT0->EMICR=EPT_EP0_EMINT; + } + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + { + EPT0->EMICR=EPT_EP1_EMINT; + } + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + { + EPT0->EMICR=EPT_EP2_EMINT; + } + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + { + EPT0->EMICR=EPT_EP3_EMINT; + } + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + { + EPT0->EMICR=EPT_EP4_EMINT; + } + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + { + EPT0->EMICR=EPT_EP5_EMINT; + } + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + { + EPT0->EMICR=EPT_EP6_EMINT; + } + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + { + EPT0->EMICR=EPT_EP7_EMINT; + } + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + { + EPT0->EMICR=EPT_CPU_FAULT_EMINT; + } + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + { + EPT0->EMICR=EPT_MEM_FAULT_EMINT; + } + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + { + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + } +} +/*************************************************************/ +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + WWDT->ICR=0X01; + WWDT_CNT_Load(0xFF); + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + { + WWDT->ICR = WWDT_EVI; + } +} +/*************************************************************/ +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + { + GPT0->ICR = GPT_INT_TRGEV0; + } + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + { + GPT0->ICR = GPT_INT_TRGEV1; + } + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + { + GPT0->ICR = GPT_INT_CAPLD0; + } + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + { + GPT0->ICR = GPT_INT_CAPLD1; + } + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + { + GPT0->ICR = GPT_INT_CAU; + } + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + { + GPT0->ICR = GPT_INT_CAD; + } + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + { + GPT0->ICR = GPT_INT_CBU; + } + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + { + GPT0->ICR = GPT_INT_CBD; + } + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + { + GPT0->ICR = GPT_INT_PEND; + } +} +/*************************************************************/ +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + RTC->CR=RTC->CR|0x01; + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + RTC->CR &= ~0x1; + } + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + { + RTC->ICR=ALRB_INT; + } + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + { + RTC->ICR=CPRD_INT; + } + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + { + RTC->ICR=RTC_TRGEV0_INT; + } + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + { + RTC->ICR=RTC_TRGEV1_INT; + } +} +/*************************************************************/ +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + { + UART0->ISR=UART_RX_INT_S; + inchar = CSP_UART_GET_DATA(UART0); + UART0_RecvINT_Processing(inchar); + } + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + { + UART0->ISR=UART_TX_INT_S; + //TxDataFlag = TRUE; + } + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + { + UART0->ISR=UART_RX_IOV_S; + } + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART0->ISR=UART_TX_IOV_S; + } + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } +} +/*************************************************************/ +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + { + UART1->ISR=UART_RX_INT_S; + inchar = CSP_UART_GET_DATA(UART1); + UART1_RecvINT_Processing(inchar); + + } + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + { + UART1->ISR=UART_TX_INT_S; + //TxDataFlag = TRUE; + + RS485_Comming = 0x01; + + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_Start ++; + } + } + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + { + UART1->ISR=UART_RX_IOV_S; + } + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART1->ISR=UART_TX_IOV_S; + } + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART1->ISR=UART_TX_DONE_S; + + RS485_Comming = 0x00; + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } +} +/*************************************************************/ +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + { + UART2->ISR=UART_RX_INT_S; + inchar = CSP_UART_GET_DATA(UART2); + UART2_RecvINT_Processing(inchar); + } + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + { + UART2->ISR=UART_TX_INT_S; + //TxDataFlag = TRUE; + } + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + { + UART2->ISR=UART_RX_IOV_S; + } + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + { + UART2->ISR=UART_TX_IOV_S; + } + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART2->ISR=UART_TX_DONE_S; + } + +} +/*************************************************************/ +//I2C Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void I2CIntHandler(void) +{ + // ISR content ... + //I2C_Slave_Receive(); //I2C slave receive function in interruption +} +/*************************************************************/ +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + { + SPI0->ICR = SPI_PORIM; + } + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + { + SPI0->ICR = SPI_RTIM; + } + else if((SPI0->MISR&SPI_RXIM)==SPI_RXIM) //Receive FIFO Interrupt,FIFO can be set 1/8,1/4,1/2 FIFO Interrupt + { + SPI0->ICR = SPI_RXIM; + if(SPI0->DR==0xaa) + { + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + SPI0->DR = 0x11; + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + SPI0->DR = 0x12; + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + SPI0->DR = 0x13; + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + SPI0->DR = 0x14; + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + SPI0->DR = 0x15; + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + +/* while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + SPI0->DR = 0x16; + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + SPI0->DR = 0x17; + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + SPI0->DR = 0x18; + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over?*/ + } + else + { + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + { + SPI0->DR=0x0; //FIFO=0 + SPI0->DR=0x0; //FIFO=0 + SPI0->DR=0x0; //FIFO=0 + SPI0->DR=0x0; //FIFO=0 + SPI0->DR=0x0; //FIFO=0 + SPI0->DR=0x0; //FIFO=0 + SPI0->DR=0x0; //FIFO=0 + SPI0->DR=0x0; //FIFO=0 + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + } + +} +/*************************************************************/ +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + // ISR content ... + //The sequence is more than 16bit to send the program + //1.disable interrupt in main loop 2.set the highest priority in the interrupt + /*CK801->IPR[0]=0X40404040; + CK801->IPR[1]=0X40404040; + CK801->IPR[2]=0X40404040; + CK801->IPR[3]=0X40404040; + CK801->IPR[4]=0X40404040; + CK801->IPR[5]=0X40404000; + CK801->IPR[6]=0X40404040; + CK801->IPR[7]=0X40404040;*/ + //TXBUFEMPT The sequence length exceeds 15bit needs to be updated into this interrupt + if(SIO0->MISR&0X04) + { + SIO0->ICR=0X04; + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + { + SIO0->ICR=0X01; + //SIO0->TXBUF=0x00; //0:D0,1:D1,2:DL,3:DH; + + //tm1812_param.write_cnt=0; + + //INTC_ICER_WRITE(SIO_INT); + + } + + //The sequence is less than 16bit to send the program + /*if(SIO0->MISR&0X01) //TXDNE + { + SIO0->ICR=0X01; + delay_nms(10); + SIO0->TXBUF=(0x03<<30)|(0x02<<28)|(0x03<<26)|(0x02<<24)|(0x03<<22)|(0x02<<20)|(0x03<<18)|(0x02<<16)| + (0x01<<14)|(0x00<<12)|(0x01<<10)|(0x00<<8)|(0x01<<6)|(0x00<<4)|(0x01<<2)|(0x0<<0); //0:D0,1:D1,2:DL,3:DH; + }*/ + + if(SIO0->MISR&0X02) //RXDNE + { + SIO0->ICR=0X02; +// if(R_SIORX_count>=1) +// { +// R_SIORX_buf[R_SIORX_count]=SIO0->RXBUF&0xff000000; //8bit +// nop; +// R_SIORX_count=0; +// } + } + else if(SIO0->MISR&0X08) //RXBUFFULL + { + SIO0->ICR=0X08; +// if(R_SIORX_count<1) +// { +// R_SIORX_buf[R_SIORX_count]=SIO0->RXBUF; //32bit +// R_SIORX_count++; +// } + } + else if(SIO0->MISR&0X010) //BREAK + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + } +} +/*************************************************************/ +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + { + SYSCON->EXICR = EXI_PIN0; + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} +/*************************************************************/ +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + { + SYSCON->EXICR = EXI_PIN1; + + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} +/*************************************************************/ +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + } + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + { + SYSCON->EXICR = EXI_PIN18; + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} +/*************************************************************/ +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + { + SYSCON->EXICR = EXI_PIN4; + + + } +// else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt +// { +// SYSCON->EXICR = EXI_PIN5; +// } +// else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt +// { +// SYSCON->EXICR = EXI_PIN6; +// } +// else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt +// { +// SYSCON->EXICR = EXI_PIN7; +// } +// else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt +// { +// SYSCON->EXICR = EXI_PIN8; +// } +// else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt +// { +// SYSCON->EXICR = EXI_PIN9; +// } + +} +/*************************************************************/ +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + { + SYSCON->EXICR = EXI_PIN10; + } + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + { + SYSCON->EXICR = EXI_PIN11; + } + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + { + SYSCON->EXICR = EXI_PIN12; + } + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + { + SYSCON->EXICR = EXI_PIN13; + } + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + + BusBusy_Task(); + } +} +/*************************************************************/ +//CONTA Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CNTAIntHandler(void) +{ + // ISR content ... +} +/*************************************************************/ +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + { + LPT->ICR = LPT_TRGEV0; + } + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + } +} + + +/*************************************************************/ +//BT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + { + BT0->ICR = BT_PEND; + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + BT0->RSSR &=0X0; + } + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + { + BT0->ICR = BT_CMP; + + } + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + { + BT0->ICR = BT_OVF; + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + +volatile U32_T SysTick_100us = 0; +volatile U32_T SysTick_1ms = 0; + +/*************************************************************/ +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + { + BT1->ICR = BT_PEND; + } + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + { + BT1->ICR = BT_CMP; + + NUM++; + SysTick_100us++; + + if(NUM >= 10){ + NUM = 0; + SysTick_1ms++; + + BusIdle_Task(); + } + + } + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + } +} +/*************************************************************/ +/*************************************************************/ +/*************************************************************/ +//void TKEYIntHandler(void) +//{ +// // ISR content ... +// +//} + +void PriviledgeVioHandler(void) +{ + // ISR content ... + +} + +void SystemDesPtr(void) +{ + // ISR content ... + +} + +void MisalignedHandler(void) +{ + // ISR content ... + +} + +void IllegalInstrHandler(void) +{ + // ISR content ... + +} + +void AccessErrHandler(void) +{ + // ISR content ... + +} + +void BreakPointHandler(void) +{ + // ISR content ... + +} + +void UnrecExecpHandler(void) +{ + // ISR content ... + +} + +void Trap0Handler(void) +{ + // ISR content ... + +} + +void Trap1Handler(void) +{ + // ISR content ... + +} + +void Trap2Handler(void) +{ + // ISR content ... + +} + +void Trap3Handler(void) +{ + // ISR content ... + +} + +void PendTrapHandler(void) +{ + // ISR content ... + +} +/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/ + diff --git a/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.session b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.session new file mode 100644 index 0000000..ed59b42 --- /dev/null +++ b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.session @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.tags b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.tags new file mode 100644 index 0000000..6755c29 Binary files /dev/null and b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.tags differ diff --git a/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/refactoring.db b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/refactoring.db new file mode 100644 index 0000000..602adc9 Binary files /dev/null and b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/.cdk/refactoring.db differ diff --git a/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/APT32F102x_StdPeriph_Lib.cdkws b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/APT32F102x_StdPeriph_Lib.cdkws new file mode 100644 index 0000000..9af6a88 --- /dev/null +++ b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/APT32F102x_StdPeriph_Lib.cdkws @@ -0,0 +1,11 @@ + + + $(CDKWS)\__workspace_pack__ + + + + + + + + diff --git a/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/cdkws.mk b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/cdkws.mk new file mode 100644 index 0000000..f0f7a3b --- /dev/null +++ b/BLV_CS_AC100_V05/Workspace/APT32F102x_StdPeriph_Lib/cdkws.mk @@ -0,0 +1,14 @@ +.PHONY: clean All Project_Title Project_Build + +All: Project_Title Project_Build + +Project_Title: + @echo "----------Building project:[ apt32f102 - BuildSet ]----------" + +Project_Build: + @make -r -f apt32f102.mk -j 8 -C D:/MyCode/APT/Project_Code/APT32F1023_Test_20230728/Source + + +clean: + @echo "----------Cleaning project:[ apt32f102 - BuildSet ]----------" +